@standardagents/builder 0.15.3 → 0.17.0-next.a4b7340
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 +362 -281
- package/dist/built-in-routes.js.map +1 -1
- package/dist/client/ApiKeysView.js +1 -1
- package/dist/client/CenteredContentView.js +1 -1
- package/dist/client/CompositionView.js +1 -1
- package/dist/client/ConfirmDialog.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/client/CopyButton.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/client/DataTable.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/client/JsonViewer.js +1 -1
- package/dist/client/LoginView.js +1 -1
- package/dist/client/Modal.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/client/ModelModal.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/client/ModelsView.js +1 -1
- package/dist/client/PromptEditView.js +1 -1
- package/dist/client/PromptModal.js +1 -1
- package/dist/client/PromptsView.js +1 -1
- package/dist/client/ProvidersView.js +2 -2
- package/dist/client/ThreadInspectorPane.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/client/ToolsView.js +1 -1
- package/dist/client/UsersView.js +1 -1
- package/dist/client/VariablesView.js +1 -1
- package/dist/client/assets/index.css +1 -1
- package/dist/client/index.js +3 -3
- package/dist/{discovery-DVviz3By.d.ts → discovery-DiMJWisl.d.ts} +1 -1
- package/dist/{index-BwqQtJ4r.d.ts → index-EaxysUHv.d.ts} +2 -5
- package/dist/index.d.ts +116 -3402
- package/dist/index.js +190 -324
- package/dist/index.js.map +1 -1
- package/dist/packing.d.ts +3 -3
- package/dist/plugin.d.ts +5 -4
- package/dist/plugin.js +143 -78
- package/dist/plugin.js.map +1 -1
- package/dist/runtime.d.ts +3124 -0
- package/dist/runtime.js +21218 -0
- package/dist/runtime.js.map +1 -0
- package/dist/test.d.ts +2 -2
- package/dist/{types-DH3Egc5l.d.ts → types-Bpe7IANZ.d.ts} +1 -1
- package/package.json +10 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as _e,c as O,b as $,e as p,m as ue,g as lo,r as B,Y as xn,X as Zn,w as Pe,h as He,t as Yr,A as nt,f as h,o as ea,a as Et,K as Me,j as Q,q as W,J as I,u as K,F as $e,l as Ie,s as pe,z as ce,Z as io,k as ye,ac as qr,ad as Gr,B as lt,O as At,n as De,P as Fe,V as Wr,R as Pa,a3 as Qr,U as Ln,ae as Jr,x as Zr,af as Ne,_ as ta,ag as uo,ah as co,W as La,ai as es,aj as ts,ak as Ra}from"./vue.js";import{I as tt,f as ns,h as na,i as vt,j as as,u as Kt,k as aa,m as fo,n as $t,o as oa,a as Ve,p as Ft,q as mo,t as ho,v as os,w as po,x as rs,y as ss,z as Oa,A as ls,B as ht,C as ze,_ as St,d as st,e as _t,D as is,E as ds,F as Rn,G as us,T as cs}from"./index.js";import{f as Qe,b as at,a as ot,s as fs,u as ms,c as hs,d as vo,g as ra,e as sa,A as go,_ as ps,h as Da,i as vs,C as gs}from"./ThreadInspectorPane.vue_vue_type_script_setup_true_lang.js";import{I as xo}from"./plus.js";import{I as On,a as Dn,b as Bn,c as xs,d as yo}from"./chevron-right.js";import{I as sn,a as Yn,P as ys}from"./PromptModal.js";import{_ as bs}from"./ModelModal.vue_vue_type_script_setup_true_lang.js";import{e as cn}from"./vendor.js";import{_ as la}from"./Modal.vue_vue_type_script_setup_true_lang.js";import{_ as ks}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang.js";import"./formkit.js";import"./syntax.js";import"./monaco.js";import"./CopyButton.vue_vue_type_script_setup_true_lang.js";import"./check.js";import"./JsonViewer.js";const It=_e({__name:"UiBadge",props:{variant:{default:"default"},size:{default:"sm"},pill:{type:Boolean,default:!1}},setup(e){const t=e,n=O(()=>{switch(t.variant){case"default":return"bg-neutral-100 dark:bg-neutral-800 text-neutral-700 dark:text-neutral-300";case"primary":return"bg-black dark:bg-white text-white dark:text-black";case"secondary":return"bg-neutral-200 dark:bg-neutral-700 text-neutral-600 dark:text-neutral-300";case"success":return"bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-300";case"warning":return"bg-yellow-100 dark:bg-yellow-900/30 text-yellow-700 dark:text-yellow-300";case"error":return"bg-red-100 dark:bg-red-900/30 text-red-700 dark:text-red-300";case"accent":return"bg-accent-100 dark:bg-accent-900/30 text-accent-700 dark:text-accent-300";default:return""}}),o=O(()=>{switch(t.size){case"sm":return"px-2 py-0.5 text-xs";case"md":return"px-2.5 py-1 text-sm";default:return""}});return(a,l)=>(p(),$("span",{class:ue(["inline-flex items-center font-medium",n.value,o.value,e.pill?"rounded-full":"rounded"])},[lo(a.$slots,"default")],2))}});function ws(){const e=B([]),t=B({}),n=B({}),o=B({}),a=B(!0),l=B(null),s=B(""),r=O(()=>{const c=s.value.trim().toLowerCase();return c?e.value.filter(d=>d.name.toLowerCase().includes(c)||d.title.toLowerCase().includes(c)||d.type.toLowerCase().includes(c)):e.value});async function i(){a.value=!0,l.value=null;try{const[c,d,f,v]=await Promise.all([Qe("/agents"),Qe("/models"),Qe("/tools"),Qe("/hooks")]);e.value=(c.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 $s(e){const t=xn(),n=Zn(),o=B(null),a=B(null),l=B(null),s=B(null),r=B(null),i=B({}),c=B(!1),d=B(null);let f=0,v=0,x=0;function g(){return{models:e.models.value,toolsCatalog:e.toolsCatalog.value,hooks:e.hooks.value}}const u=O(()=>{const q=a.value;return q?[at(q,"a",l.value,g()),at(q,"b",s.value,g())]:[]}),y=O(()=>{const q=u.value;return{promptCount:q.filter(D=>!!D.prompt).length,toolCount:q.reduce((D,C)=>D+C.tools.length,0),outgoingCount:q.reduce((D,C)=>D+C.outgoingAgents.length,0),variableCount:q.reduce((D,C)=>D+C.variables.length,0)}});function S(q,D){return q===f&&o.value===D}async function _(q){const D=++x;try{await n.replace({query:{...t.query,agent:q}})}catch{}finally{D===x&&(x=0)}}function M(){return x>0}async function k(q,D,C){const T=++v,b=new Set;for(const G of q)for(const Y of G.outgoingAgents)Y.kind==="subagent"&&b.add(Y.name);if(b.size===0){T===v&&S(D,C)&&(i.value={});return}const A={};await Promise.all([...b].map(async G=>{if(e.agents.value.find(H=>H.name===G&&!H.packed))try{const E=(await Qe(`/agents/${encodeURIComponent(G)}`)).agent,[F,j]=await Promise.all([ot(E.side_a_agent_prompt),ot(E.side_b_agent_prompt)]);if(T!==v||!S(D,C))return;A[G]={agentName:G,agent:E,sides:[at(E,"a",F,g()),at(E,"b",j,g())]}}catch{}})),T===v&&S(D,C)&&(i.value=A)}async function N(q,D=!0){const C=e.agents.value.find(b=>b.id===q||b.name===q);if(!C)return;const T=++f;if(o.value=C.id,r.value={type:"agent",value:C},i.value={},!fs(C)){a.value=null,l.value=null,s.value=null,d.value="Packed agents are not yet supported in the composition browser.",c.value=!1,D&&_(C.id);return}c.value=!0,d.value=null,D&&_(C.id);try{const b=await Qe(`/agents/${encodeURIComponent(C.name)}`),[A,G]=await Promise.all([ot(b.agent.side_a_agent_prompt),ot(b.agent.side_b_agent_prompt)]);if(!S(T,C.id))return;a.value=b.agent,l.value=A,s.value=G,r.value={type:"agent",value:b.agent};const Y=[at(b.agent,"a",A,g()),at(b.agent,"b",G,g())];k(Y,T,C.id)}catch{if(!S(T,C.id))return;d.value="Unable to load the selected agent composition.",a.value=null,l.value=null,s.value=null}finally{S(T,C.id)&&(c.value=!1)}}function P(q){r.value=q}function L(){a.value?r.value={type:"agent",value:a.value}:r.value=null}async function ne(){const q=a.value,D=o.value;if(!q||!D)return!1;const C=++f;try{const T=await Qe(`/agents/${encodeURIComponent(q.name)}`),[b,A]=await Promise.all([ot(T.agent.side_a_agent_prompt),ot(T.agent.side_b_agent_prompt)]);if(!S(C,D))return!1;const G=(l.value?.tools?.length??0)+(s.value?.tools?.length??0),Y=(b?.tools?.length??0)+(A?.tools?.length??0),E=T.agent.side_a_agent_prompt!==q.side_a_agent_prompt||T.agent.side_b_agent_prompt!==q.side_b_agent_prompt||G!==Y;a.value=T.agent,l.value=b,s.value=A;const F=[at(T.agent,"a",b,g()),at(T.agent,"b",A,g())];return k(F,C,D),E}catch{return!0}}return{selectedAgentId:o,selectedAgentDetail:a,selectedNode:r,sideCompositions:u,subagentCompositions:i,compositionSummary:y,loadingComposition:c,compositionError:d,selectAgent:N,selectInspectorNode:P,deselectNode:L,refreshComposition:ne,isRouteSyncing:M}}function Ms(){const e=xn(),t=ws(),n=$s({agents:t.agents,models:t.models,toolsCatalog:t.toolsCatalog,hooks:t.hooks}),o=O(()=>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;r?await n.selectAgent(r.id,!1):t.agents.value.length>0&&await n.selectAgent(t.agents.value[0].id)}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 Ba="__";function bo(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 ko(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"item"}function qn(e,t,n){const o=n===void 0?"":`-${n}`;return`${e}-${ko(t)}-${bo(t)}${o}`}function wo(e,...t){return`${e}${t.join(Ba)}${Ba}`}function $o(e){return wo(qn("agent",e))}function Mo(e,t,n,o,a){return wo(e,qn("side",t),qn("tool",`${o}:${a}`,n))}const fn=e=>`${e}agent`,ia=(e,t)=>`${e}side-${t}`,ln=(e,t,n)=>`${e}tool-${t}-${n}`,Ts=e=>`${e}group`,To=(e,t)=>`${e}model-${ko(t)}-${bo(t)}`,Cs=280,Ss=132,Va=320,_s=72,Is=200,Es=72,As=360,Ns=220,Ps=320,Ls=240,Rs=280,Os=132,Ua=64,ut=36,Zt=56,kt=36,Vn=52,Ds=64,dn=220,Bs=84,qe=72,Ha=112,ct=28;function Vs(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 u of e.modelUsages){const y=`${u.model.id}|${u.consumerNodeId}`;if(s.has(y))continue;s.add(y);const S=l.get(u.model.id);S?S.push(u):l.set(u.model.id,[u])}const r=new Map;for(const u of e.nodes)r.set(u.id,u);const i=e.width,c=0,d=[],f=e.groups.map(u=>({x:u.x,y:u.y,w:u.width,h:u.height}));function v(u,y){return y.x>=u.x&&y.y>=u.y&&y.x+y.w<=u.x+u.w&&y.y+y.h<=u.y+u.h}function x(u,y,S,_,M=16){const k=Math.min(y,S),N=Math.max(y,S);return _.some(P=>N>P.x-M&&k<P.x+P.w+M&&u>P.y-M&&u<P.y+P.h+M)}function g(u,y,S,_,M=16){const k=Math.min(y,S),N=Math.max(y,S);return _.some(P=>N>P.y-M&&k<P.y+P.h+M&&u>P.x-M&&u<P.x+P.w+M)}for(const[u,y]of l){const S=y.map(E=>({usage:E,node:r.get(E.consumerNodeId)})).filter(E=>!!E.node);if(S.length===0)continue;const _=S.map(E=>Hs(E.node,n)),M=S.map(E=>ft(E.node,n)),k=f.filter(E=>M.every(F=>v(E,F))),N=f.filter(E=>!k.includes(E)),P=y[0].model,L=To(t,u),ne=n[L],q=ne?.w??dn,D=ne?.h??Bs;let C=0,T=0,b;if(S.length===1){const E=S[0],F=ft(E.node,n),j=za(E.node),X=j||E.usage.sideId==="a"?"outboard-left":"outboard-right",he=F.y+F.h/2-D/2,se=X==="outboard-left"?F.x-qe-q:F.x+F.w+qe,fe=F.x+F.w/2-q/2,z=F.y+F.h+qe,U=new Set(S.map(te=>te.node.id)),J=[...d,...e.nodes.filter(te=>!U.has(te.id)).map(te=>ft(te,n)),...N],le=[se],ie=[he],ve=[fe],ee=[z];for(const te of J)X==="outboard-left"?le.push(te.x-qe-q):le.push(te.x+te.w+qe),ie.push(te.y-D-ct),ie.push(te.y+te.h+ct),ve.push(te.x-q-ct),ve.push(te.x+te.w+ct),ee.push(te.y-D-ct),ee.push(te.y+te.h+ct);let Z=se,m=he,w=Number.POSITIVE_INFINITY,V=null;const oe=new Set,de=[{mode:X,xs:le,ys:ie},{mode:"below-row",xs:ve,ys:ee}];for(const te of de)for(const re of te.xs)for(const be of te.ys){const ke=`${te.mode}:${Math.round(re)}:${Math.round(be)}`;if(oe.has(ke)||(oe.add(ke),te.mode==="outboard-left"&&re+q>F.x-8)||te.mode==="outboard-right"&&re<F.x+F.w+8)continue;const ge=J.filter(xe=>Un({x:re,y:be,w:q,h:D},{x:xe.x,y:xe.y,w:xe.w,h:xe.h})).length,Se=te.mode==="below-row"?g(F.x+F.w/2,F.y+F.h,be,J):x(F.y+F.h/2,te.mode==="outboard-left"?re+q:F.x+F.w,te.mode==="outboard-left"?F.x:re,J),we=ge*1e4+(Se?12e3:0)+Math.abs(re-se)/10+Math.abs(be-(te.mode==="below-row"?z:he))+(te.mode==="below-row"?10:0);if(j&&te.mode!=="below-row"&&ge===0){const xe=(Se?1e3:0)+Math.abs(re-se)/10+Math.abs(be-he);(!V||xe<V.penalty)&&(V={x:re,y:be,penalty:xe,mode:te.mode})}we<w&&(w=we,Z=re,m=be,b=te.mode)}V&&(Z=V.x,m=V.y,b=V.mode),b||(b=X),C=Z,T=m}else{let E=1/0,F=-1/0,j=1/0,X=-1/0;for(const U of S){const J=ft(U.node,n);J.x<E&&(E=J.x),J.x+J.w>F&&(F=J.x+J.w),J.y<j&&(j=J.y),J.y+J.h>X&&(X=J.y+J.h)}const he=F-E,se=X-j,fe=Fa(_.map(U=>U.x)),z=Fa(_.map(U=>U.y));if(he>=se){const U=fe-q/2,J=new Set(S.map(V=>V.node.id)),le=e.nodes.filter(V=>!J.has(V.id)).map(V=>ft(V,n)).filter(V=>V.y+V.h>X),ie=N.filter(V=>V.y+V.h>X),ve=[...le,...ie],ee=[U];for(const V of ve)ee.push(V.x-qe-q),ee.push(V.x+V.w+qe);let Z=U,m=1/0;const w=new Set;for(const V of ee){const oe=Math.round(V);if(w.has(oe))continue;w.add(oe);const de=ve.filter(be=>Un({x:V,y:X+qe,w:q,h:D},{x:be.x,y:be.y,w:be.w,h:be.h})).length,te=Math.abs(V-U)/1e3,re=de+te;re<m&&(m=re,Z=V)}C=Z,T=X+qe,b="below-row"}else{const U=S.every(ve=>za(ve.node)),J=S.filter(ve=>ve.usage.sideId==="a").length,le=S.length-J,ie=!U&&le>=J;C=ie?Math.max(i,F)+Ha:Math.min(c,E)-Ha-q,T=z-D/2,b=ie?"sidebar-right":"sidebar-left"}}const A=D+ct,G=8;let Y=0;const H=[...d,...e.nodes.map(E=>{const F=ft(E,n);return{x:F.x,y:F.y,w:F.w,h:F.h}}),...N];for(;Y<G&&H.some(E=>Un({x:C,y:T,w:q,h:D},E));)T+=A,Y++;d.push({x:C,y:T,w:q,h:D}),o.push({id:L,type:"model",x:C,y:T,width:q,height:D,placementMode:b,data:P});for(const E of S)a.push({id:`${E.node.id}-to-${L}`,from:E.node.id,to:L,sideId:E.usage.sideId,kind:"model"})}return{modelNodes:o,modelEdges:a}}function Us(e,t,n){if(t.length===0||e.length===0)return;const o=new Map;for(const i of n){const c=o.get(i.to);c?c.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,c)=>c.id.length-i.id.length);for(const i of r){const c=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(c)))continue;const x=Math.min(i.x,v.x-l),g=Math.min(i.y,v.y-l),u=Math.max(i.x+i.width,v.x+v.width+l),y=Math.max(i.y+i.height,v.y+v.height+l);i.x=x,i.y=g,i.width=u-x,i.height=y-g}}for(const i of r){const c=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(c)||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 Hs(e,t){const n=ft(e,t);return{x:n.x+n.w/2,y:n.y+n.h/2}}function za(e){return e.type==="prompt"||e.type==="side"&&e.data.mode==="ai"||e.type==="tool"&&e.data.kind==="prompt"}function Fa(e){if(e.length===0)return 0;let t=0;for(const n of e)t+=n;return t/e.length}function Un(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 Co(e,t,n,o,a,l){const s=[],r=[],i=[],c=[];function d(w){if(!w)return null;const V=l[w];if(V)return V;for(const oe of Object.values(l))if(oe.name===w)return oe;return null}const f=fn(o),v=a[f],x=v?.w??Cs,g=v?.h??Ss,u=0,y=g+Ua;function S(w,V){const oe=a[V];if(oe)return oe;if(w.mode==="human")return{w:Va,h:_s};const de=240,te=w.variables.length*24,re=w.tools.length*32,be=de+Math.max(te,re),ke=7,ge=w.tools.length>0;let Se=200;w.prompt&&(Se=Math.max(Se,w.prompt.name.length*ke+80));let we=ge?160:0;if(ge)for(const Te of w.tools)we=Math.max(we,Te.displayName.length*ke+40);return{w:Math.max(Va,ge?Se+we:Se),h:be}}const _=t.filter(w=>w.id==="a"),M=t.filter(w=>w.id==="b");function k(w){return w.map(V=>{const oe=V.tools.filter(ke=>ke.kind==="tool"||ke.kind==="subagent"||ke.kind==="handoff"||ke.kind==="prompt"),de=[];for(let ke=0;ke<oe.length;ke++){const ge=oe[ke];if(ge.kind==="subagent"&&!!n[ge.name]){const we=Mo(o,V.id,ke,ge.kind,ge.name),xe=n[ge.name],Te=Co(xe.agent,xe.sides,n,we,a,l),Ce=(dn+qe+12)*2;de.push({width:Te.width+kt*2+Ce,height:Te.height+Vn+kt,isSubagent:!0,modelReserveLeft:Ce,modelReserveRight:0,subagentName:ge.name,subagentNodeId:fn(we),subagentGroupId:Ts(we),subTree:Te})}else{const we=ln(o,V.id,ke),xe=a[we];de.push({width:xe?.w??(ge.kind==="tool"?As:ge.kind==="prompt"?Ps:ge.kind==="handoff"?Rs:Is),height:xe?.h??(ge.kind==="tool"?Ns:ge.kind==="prompt"?Ls:ge.kind==="handoff"?Os:Es),isSubagent:!1})}}const te=ia(o,V.id),{w:re,h:be}=S(V,te);return{side:V,leaves:de,sideH:be,sideW:re,sideNodeId:te,externalTools:oe}})}const N=k(_),P=k(M),L=new Map,ne=new Set;function q(w,V,oe){if(!w)return;const de=`${w.id}|${oe}`;if(ne.has(de))return;ne.add(de);const te=L.get(w.id);if(te){V==="a"?te.hasLeftConsumer=!0:te.hasRightConsumer=!0;return}L.set(w.id,{hasLeftConsumer:V==="a",hasRightConsumer:V==="b"})}for(const w of[...N,...P]){q(w.side.model,w.side.id,w.sideNodeId);for(let V=0;V<w.externalTools.length;V++){const oe=w.externalTools[V];oe.kind==="prompt"&&q(d(oe.model),w.side.id,ln(o,w.side.id,V))}for(const V of w.leaves)if(!(!V.isSubagent||!V.subTree))for(const oe of V.subTree.modelUsages)q(oe.model,oe.sideId,oe.consumerNodeId)}function D(w){if(!w)return!1;const V=L.get(w.id);return!!V?.hasRightConsumer&&!V?.hasLeftConsumer}function C(w,V){if(w.length===0)return{card:{minX:0,maxX:0},leaves:null,full:{minX:0,maxX:0}};let oe=0,de=1/0,te=-1/0,re=1/0,be=-1/0;for(const ge of w){const{side:Se,leaves:we,sideW:xe,externalTools:Te}=ge,Ce=V==="left"?oe-xe:oe,Je=V==="right"&&D(Se.model)?dn+qe:0;if(de=Math.min(de,Ce-Je),te=Math.max(te,Ce+xe),Te.length>0){const Le=T(Ce,xe,Te,we);for(let je=0;je<we.length;je++){const xt=V==="right"&&Te[je]?.kind==="prompt"&&D(d(Te[je]?.model))?dn+qe:0,it=Le[je];re=Math.min(re,it.x-xt),be=Math.max(be,it.x+we[je].width)}}oe+=(V==="left"?-1:1)*(xe+Zt)}const ke=re!==1/0;return{card:{minX:de,maxX:te},leaves:ke?{minX:re,maxX:be}:null,full:{minX:ke?Math.min(de,re):de,maxX:ke?Math.max(te,be):te}}}function T(w,V,oe,de){const te=new Array(de.length),re=de.map((xe,Te)=>({index:Te,leaf:xe,tool:oe[Te]})),be=re.filter(xe=>b(xe.tool)),ke=new Set(be.map(xe=>xe.index)),ge=[];be.length>0&&ge.push(A(be,V*3));for(const xe of re)ke.has(xe.index)||ge.push(A([xe],Number.POSITIVE_INFINITY));ge.sort((xe,Te)=>xe.firstIndex-Te.firstIndex);const Se=ge.reduce((xe,Te)=>xe+Te.width,0)+Math.max(0,ge.length-1)*ut;let we=w+V/2-Se/2;for(const xe of ge){for(const Te of xe.positions)te[Te.index]={x:we+Te.x,yOffset:Te.yOffset};we+=xe.width+ut}return te}function b(w){return w?.kind==="tool"||w?.kind==="provider"||w?.kind==="mcp"}function A(w,V){const oe=Math.max(...w.map(we=>we.leaf.width),0),de=Number.isFinite(V)?Math.max(V,oe):Number.POSITIVE_INFINITY,te=[];let re=null;const be=()=>{re&&re.items.length>0&&te.push(re),re={items:[],width:0,height:0}};be();for(const we of w){re||be();const xe=re.items.length===0?we.leaf.width:re.width+ut+we.leaf.width;re.items.length>0&&xe>de&&be(),re.items.push(we),re.width=re.items.length===1?we.leaf.width:re.width+ut+we.leaf.width,re.height=Math.max(re.height,we.leaf.height)}re&&re.items.length>0&&te.push(re);const ke=Math.max(...te.map(we=>we.width),0),ge=[];let Se=0;for(const we of te){let xe=(ke-we.width)/2;for(const Te of we.items)ge.push({index:Te.index,x:xe,yOffset:Se}),xe+=Te.leaf.width+ut;Se+=we.height+ut}return{firstIndex:Math.min(...w.map(we=>we.index)),width:ke,height:te.reduce((we,xe)=>we+xe.height,0)+Math.max(0,te.length-1)*ut,positions:ge}}const G=C(N,"left"),Y=C(P,"right"),H=G.card.maxX-Y.card.minX+Zt,E=G.leaves&&Y.leaves?G.leaves.maxX-Y.leaves.minX+Zt:0,F=Math.max(Ds,H,E),j=Math.max(x/2,F/2-G.full.minX);let X=y;function he(w,V,oe,de,te,re,be){const ke=ln(o,V,be);if(!de.isSubagent||!de.subTree){if(s.push({id:ke,type:"tool",x:te,y:re,width:de.width,height:de.height,data:oe,sideId:V}),r.push({id:`${w}-to-${ke}`,from:w,to:ke,sideId:V,toolKind:oe.kind}),oe.kind==="prompt"){const Ce=d(oe.model);Ce&&c.push({consumerNodeId:ke,sideId:V,model:Ce})}X=Math.max(X,re+de.height);return}const ge=de.subTree,Se=te+(de.modelReserveLeft??0),we=re+Vn;for(const Ce of ge.nodes){const Le=Ce.type==="agent"&&Ce.id===de.subagentNodeId&&"type"in Ce.data?{...Ce.data,_isSubagent:!0}:Ce.data;s.push({...Ce,x:Ce.x+Se,y:Ce.y+we,data:Le})}for(const Ce of ge.edges)r.push(Ce);for(const Ce of ge.groups)i.push({...Ce,x:Ce.x+Se,y:Ce.y+we});for(const Ce of ge.modelUsages)c.push(Ce);r.push({id:`${w}-to-${de.subagentNodeId}`,from:w,to:de.subagentNodeId,sideId:V,toolKind:oe.kind});const xe=oe.config||{},Te=xe.resumable;i.push({id:de.subagentGroupId,label:n[de.subagentName]?.agent.title||de.subagentName,x:Se-kt,y:re,width:ge.width+kt*2,height:ge.height+Vn+kt,sideId:V,subagent:{blocking:!!xe.blocking,resumable:!!Te,multiInstance:!!Te&&typeof Te=="object"&&(Te.max_instances===null||(Te.max_instances??0)>1),immediate:!!xe.immediate}}),X=Math.max(X,we+ge.height+kt)}function se(w,V){let oe=V==="left"?j-F/2:j+F/2;for(const de of w){const{side:te,leaves:re,sideH:be,sideW:ke,sideNodeId:ge,externalTools:Se}=de,we=Se.filter(b).length,xe=we>5?(we-5)*10:0,Te=y+be+Ua+xe,Ce=V==="left"?oe-ke:oe;if(s.push({id:ge,type:"side",x:Ce,y,width:ke,height:be,data:te,sideId:te.id}),r.push({id:`${f}-to-${ge}`,from:f,to:ge,sideId:te.id}),te.model&&c.push({consumerNodeId:ge,sideId:te.id,model:te.model}),X=Math.max(X,y+be),Se.length>0){const Je=T(Ce,ke,Se,re);for(let Le=0;Le<Se.length;Le++){const je=Je[Le];he(ge,te.id,Se[Le],re[Le],je.x,Te+je.yOffset,Le)}}oe+=(V==="left"?-1:1)*(ke+Zt)}}se(N,"left"),se(P,"right");const fe=new Set(Object.keys(e.env||{})),z=new Set,U=t.flatMap(w=>w.variables).filter(w=>fe.has(w.name)).filter(w=>z.has(w.name)?!1:(z.add(w.name),!0)),J=U.length>0?{...e,_variables:U}:e;s.push({id:f,type:"agent",x:j-x/2,y:u,width:x,height:g,data:J});let le=1/0,ie=1/0,ve=-1/0,ee=-1/0;for(const w of s)le=Math.min(le,w.x),ie=Math.min(ie,w.y),ve=Math.max(ve,w.x+w.width),ee=Math.max(ee,w.y+w.height);for(const w of i)le=Math.min(le,w.x),ie=Math.min(ie,w.y),ve=Math.max(ve,w.x+w.width),ee=Math.max(ee,w.y+w.height);const Z=ve-le,m=ee-ie;for(const w of s)w.x-=le,w.y-=ie;for(const w of i)w.x-=le,w.y-=ie;return{nodes:s,edges:r,groups:i,modelUsages:c,width:Z,height:m}}function zs(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=$o(e.id||e.name),s=Co(e,t,n,l,o,a),r=[...s.nodes],i=[...s.edges],c=[...s.groups],{modelNodes:d,modelEdges:f}=Vs(s,l,o);r.push(...d),i.push(...f),Us(c,d,f);let v=0,x=0,g=s.width,u=s.height;for(const y of d)y.x<v&&(v=y.x),y.y<x&&(x=y.y),y.x+y.width>g&&(g=y.x+y.width),y.y+y.height>u&&(u=y.y+y.height);for(const y of c)y.x<v&&(v=y.x),y.y<x&&(x=y.y),y.x+y.width>g&&(g=y.x+y.width),y.y+y.height>u&&(u=y.y+y.height);if(v<0||x<0){const y=-Math.min(v,0),S=-Math.min(x,0);for(const _ of r)_.x+=y,_.y+=S;for(const _ of c)_.x+=y,_.y+=S;g+=y,u+=S}return{nodes:r,edges:i,groups:c,bounds:{x:0,y:0,width:g,height:u}}}function Fs(e,t,n,o,a){return O(()=>zs(e.value,t.value,n.value,o.value,a.value))}function js(e){const{selectedAgentId:t,threadListPaneRef:n,messagesPaneRef:o,logsPaneRef:a}=e,l=xn(),s=Zn(),r=()=>typeof l.query.thread=="string"?l.query.thread:null,i=U=>{s.replace({path:l.path,query:{...l.query,thread:U||void 0},hash:l.hash})},c=U=>{s.replace({path:l.path,query:{...l.query,inspector:U},hash:l.hash})},d=r(),f=B(d),v=B(null),x="__draft_new_thread__",g=B(!1);let u=!1;Pe(f,U=>{if(u||U===x)return;const J=r();U!==J&&i(U)}),Pe(()=>l.query.thread,U=>{if(u)return;const J=typeof U=="string"?U:null;if(J&&v.value&&!v.value.has(J)){u=!0,f.value=null,i(null),He(()=>{u=!1});return}J!==f.value&&(f.value=J)},{immediate:!0});const y=B(null),S=B(null),_=B(null),M=B(null),k=B(null),N=B(null),P=B(null),L=B(!1),ne=B(null),{thread:q}=ms(O(()=>f.value===x?null:f.value));let D=!1;Pe(t,()=>{if(!D){D=!0;return}u=!0,f.value=null,y.value=null,S.value=null,_.value=null,M.value=null,k.value=null,N.value=null,P.value=null,He(()=>{u=!1})}),Pe(f,()=>{y.value=null,S.value=null,_.value=null,M.value=null,k.value=null});const C=U=>{N.value=U,P.value=U},T=U=>{const J=o.value,le=a.value;if(!J||!le)return null;if(J.hasWorkblockForLogId(U))return U;let ie=U;const ve=10;for(let ee=0;ee<ve&&ie;ee++){const Z=le.getLog(ie);if(!Z)break;const m=Z.parent_log_id;if(!m)break;if(J.hasWorkblockForLogId(m))return m;ie=m}return null};return{selectedThreadId:f,selectedThread:q,selectedMessageId:y,selectedLogId:S,selectedEffectId:_,selectedEffectRef:M,highlightedWorkblockLogId:k,hoveredLogId:N,hoveredWorkblockLogId:P,showThreadModal:L,editingThread:ne,draftThreadId:x,isCreatingThreadDraft:g,handleThreadSelect:U=>{f.value=U},handleThreadsLoaded:(U,J)=>{u=!1,v.value=J?new Set(J):null,f.value&&v.value&&!v.value.has(f.value)&&(f.value=null),U&&!f.value?f.value=U:!U&&!f.value&&r()&&i(null)},handleMessageClick:async(U,J,le)=>{if(y.value=U,le){_.value=le.id??null,M.value=le,S.value=null,k.value=null,c("effects"),await He(),a.value?.selectEffectByReference(le);return}if(_.value=null,M.value=null,!J){S.value=null,k.value=null;return}const ie=a.value;if(!ie){S.value=J,k.value=J;return}const ve=!ie.hasLog(J);if(ve&&ie.setLoadingForLog(!0),S.value=J,k.value=J,ve&&!await ie.loadUntilLogId(J)){ie.setLoadingForLog(!1);return}await ie.waitForLogRow(J)&&(ie.scrollToLog(J),ie.selectLogById(J))},handleMessageHover:C,handleLogClick:U=>{S.value=U,_.value=null,M.value=null,y.value=null;const J=o.value;if(!J){k.value=U;return}if(J.scrollToLogId(U)){k.value=U;return}const le=T(U);le&&le!==U&&J.scrollToLogId(le),k.value=le??U},handleLogHover:U=>{if(N.value=U,!U){P.value=null;return}P.value=T(U)??U},handleLogsLoaded:U=>{U&&(S.value=U)},handleLogsDeleted:U=>{a.value?.removeLogsByIds(U)},handleThreadDeleted:U=>{f.value=null,y.value=null,S.value=null,_.value=null,M.value=null,k.value=null,N.value=null,P.value=null,n.value?.refetch()},handleEditThread:()=>{q.value&&(ne.value=q.value,L.value=!0)},handleCreateThread:()=>{ne.value=null,L.value=!1,g.value=!0,f.value=x},handleThreadCreated:U=>{g.value=!1,n.value?.refetch(),f.value=U,He(()=>o.value?.focusComposer())},handleCancelCreateThread:()=>{g.value=!1,f.value===x&&(f.value=null)},handleThreadUpdated:()=>{n.value?.refetch()}}}function Xs(e){return Array.from(new Set(e.map(t=>t.id))).sort()}function Ks(e){const t=B({}),n=B(!1),o=B(null),a=O(()=>Xs(Yr(e))),l=O(()=>a.value.join(""));let s=0;async function r(i={}){const c=++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 u=await Qe(`/threads?agent_id=${encodeURIComponent(g)}&limit=1`);return[g,u.total??0]}catch{return[g,0]}}));if(c!==s)return;for(const[g,u]of x)f[g]=u;t.value=f}catch{c===s&&(o.value="Unable to load thread counts.")}finally{c===s&&(n.value=!1)}}return Pe(l,()=>{r()},{immediate:!0}),{threadCounts:t,loadingThreadCounts:n,threadCountsError:o,refreshThreadCounts:()=>r({force:!0})}}const Ys={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function qs(e,t){return p(),$("svg",Ys,[...t[0]||(t[0]=[h("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[h("path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73zm1 .27V12"}),h("path",{d:"M3.29 7L12 12l8.71-5M7.5 4.27l9 5.15"})],-1)])])}const Hn=nt({name:"lucide-package",render:qs}),Gs={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ws(e,t){return p(),$("svg",Gs,[...t[0]||(t[0]=[h("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[h("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"}),h("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"}),h("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 Qs=nt({name:"lucide-package-open",render:Ws}),Js={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Zs(e,t){return p(),$("svg",Js,[...t[0]||(t[0]=[h("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[h("circle",{cx:"12",cy:"12",r:"1"}),h("circle",{cx:"12",cy:"5",r:"1"}),h("circle",{cx:"12",cy:"19",r:"1"})],-1)])])}const el=nt({name:"lucide-ellipsis-vertical",render:Zs}),tl={class:"px-4 py-3 border-b border-neutral-200 dark:border-neutral-800"},nl={class:"flex items-center justify-between"},al={class:"flex items-center gap-2"},ol={key:0,class:"text-xs font-mono text-neutral-500 dark:text-neutral-400"},rl={class:"flex items-center gap-2 border-b border-neutral-200 px-5 py-2.5 dark:border-neutral-800"},sl={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"},ll=["value"],il={class:"flex shrink-0 overflow-hidden rounded-md border border-neutral-200 text-[11px] dark:border-neutral-700"},dl=["onClick"],ul={class:"grid grid-cols-[36px_1fr_72px_80px_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"},cl={key:0,class:"flex-1 px-5 py-5 text-sm text-neutral-500 dark:text-neutral-400"},fl={key:1,class:"flex-1 px-5 py-5 text-sm text-neutral-500 dark:text-neutral-400"},ml={key:2,class:"flex-1 overflow-y-auto"},hl=["data-agent-id","onClick"],pl={class:"flex items-center justify-center"},vl=["src"],gl={class:"flex min-w-0 items-center gap-2"},xl=["onClick","aria-label"],yl={key:0,class:"text-[11px] font-mono"},bl={class:"min-w-0"},kl={key:0,class:"relative flex items-center justify-center","data-agent-menu":""},wl=["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"},Ml=["onClick"],Tl=["onClick"],Cl=["onClick"],Sl=["onClick"],_l=["onClick"],Il=_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=B(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()}ea(()=>document.addEventListener("click",l)),Et(()=>document.removeEventListener("click",l));const s=t,r=[{value:"all",label:"All"},{value:"ai_human",label:"AI+Human"},{value:"dual_ai",label:"Dual AI"}];function i(d){return d==="dual_ai"?"Dual AI":"AI+Human"}function c(d,f){return f==="a"?d.side_a_agent_prompt||"-":d.type==="ai_human"?"Human":d.side_b_agent_prompt||"-"}return(d,f)=>(p(),$("aside",{class:"flex h-full w-[90cqi] max-w-[780px] flex-col",onClick:f[5]||(f[5]=Me(()=>{},["stop"]))},[h("div",tl,[h("div",nl,[h("div",al,[Q(I(tt),{class:"h-[18px] w-[18px] shrink-0 opacity-60"}),f[6]||(f[6]=h("h2",{class:"text-base font-bold"},"Agents",-1)),!e.loading&&e.agents.length>0?(p(),$("span",ol," ("+K(e.agents.length)+") ",1)):W("",!0)])])]),h("div",rl,[h("label",sl,[Q(I(ns),{class:"h-4 w-4 shrink-0 text-neutral-400"}),h("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,ll)]),h("div",il,[(p(),$($e,null,Ie(r,v=>h("button",{key:v.value,type:"button",class:ue(["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)},K(v.label),11,dl)),64))]),e.readonly?W("",!0):(p(),$("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(I(xo),{class:"h-3.5 w-3.5"}),f[7]||(f[7]=pe(" New Agent ",-1))]))]),h("div",ul,[f[11]||(f[11]=h("div",null,null,-1)),h("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]=pe(" Title ",-1)),e.sortBy==="title"&&e.sortDir==="asc"?(p(),ce(I(On),{key:0,class:"h-3 w-3"})):e.sortBy==="title"&&e.sortDir==="desc"?(p(),ce(I(Dn),{key:1,class:"h-3 w-3"})):(p(),ce(I(Bn),{key:2,class:"h-3 w-3 opacity-40"}))]),h("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]=pe(" Threads ",-1)),e.sortBy==="threads"&&e.sortDir==="asc"?(p(),ce(I(On),{key:0,class:"h-3 w-3"})):e.sortBy==="threads"&&e.sortDir==="desc"?(p(),ce(I(Dn),{key:1,class:"h-3 w-3"})):(p(),ce(I(Bn),{key:2,class:"h-3 w-3 opacity-40"}))]),h("button",{type:"button",class:"flex items-center gap-1 text-left",onClick:f[4]||(f[4]=v=>d.$emit("sort","type"))},[f[10]||(f[10]=pe(" Type ",-1)),e.sortBy==="type"&&e.sortDir==="asc"?(p(),ce(I(On),{key:0,class:"h-3 w-3"})):e.sortBy==="type"&&e.sortDir==="desc"?(p(),ce(I(Dn),{key:1,class:"h-3 w-3"})):(p(),ce(I(Bn),{key:2,class:"h-3 w-3 opacity-40"}))]),f[12]||(f[12]=h("div",null,"Sides",-1)),f[13]||(f[13]=h("div",null,null,-1))]),e.loading?(p(),$("div",cl," Loading agents... ")):e.agents.length===0?(p(),$("div",fl," No agents match this search. ")):(p(),$("div",ml,[(p(!0),$($e,null,Ie(e.agents,v=>(p(),$("div",{key:v.id,"data-agent-id":v.id,class:ue(["grid w-full cursor-pointer grid-cols-[36px_1fr_72px_80px_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)},[h("div",pl,[h("img",{src:v.icon||I(na)(v.id),alt:"",class:"h-9 w-9 rounded-md object-cover"},null,8,vl)]),h("div",gl,[v.packed?(p(),ce(I(Hn),{key:0,class:"h-4 w-4 shrink-0 text-blue-500",title:`Packed agent from ${v.packageId}`},null,8,["title"])):W("",!0),h("span",{class:ue(["truncate font-medium",e.selectedId===v.id?"agents-text-selected":"text-neutral-900 dark:text-neutral-100"])},K(v.title),3)]),h("button",{type:"button",class:ue(["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:Me(x=>s("view-threads",v.id),["stop"]),title:"View threads","aria-label":`View threads for ${v.title}`},[Q(I(vt),{class:"h-3.5 w-3.5"}),e.threadCounts[v.id]>0?(p(),$("span",yl,K(e.threadCounts[v.id]),1)):W("",!0)],10,xl),h("div",{class:ue(e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400")},K(i(v.type)),3),h("div",bl,[h("div",{class:ue(["truncate",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400"])},[h("span",{class:ue(["text-[10px] font-semibold uppercase tracking-wider",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-400 dark:text-neutral-500"])},"A",2),pe(" "+K(c(v,"a")),1)],2),h("div",{class:ue(["truncate",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400"])},[h("span",{class:ue(["text-[10px] font-semibold uppercase tracking-wider",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-400 dark:text-neutral-500"])},"B",2),pe(" "+K(c(v,"b")),1)],2)]),e.readonly?W("",!0):(p(),$("div",kl,[h("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:Me(x=>o(v.id),["stop"])},[Q(I(el),{class:"h-4 w-4"})],8,wl),Q(io,{"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:ye(()=>[n.value===v.id?(p(),$("div",$l,[v.packed?W("",!0):(p(),$("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:Me(x=>{d.$emit("edit",v),a()},["stop"])},[Q(I(as),{class:"h-4 w-4 text-neutral-400"}),f[14]||(f[14]=pe(" Edit ",-1))],8,Ml)),v.packed?W("",!0):(p(),$("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:Me(x=>{d.$emit("pack",v),a()},["stop"])},[Q(I(Hn),{class:"h-4 w-4 text-neutral-400"}),f[15]||(f[15]=pe(" Pack ",-1))],8,Tl)),v.packed?(p(),$("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:Me(x=>{d.$emit("unpack",v),a()},["stop"])},[Q(I(Qs),{class:"h-4 w-4 text-neutral-400"}),f[16]||(f[16]=pe(" Unpack ",-1))],8,Cl)):W("",!0),v.packed?(p(),$("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:Me(x=>{d.$emit("publish",v),a()},["stop"])},[Q(I(Hn),{class:"h-4 w-4 text-neutral-400"}),f[17]||(f[17]=pe(" Publish Package ",-1))],8,Sl)):W("",!0),f[18]||(f[18]=h("div",{class:"my-1 border-t border-neutral-100 dark:border-neutral-800"},null,-1)),h("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:Me(x=>{d.$emit("delete",v),a()},["stop"])},[Q(I(xs),{class:"h-4 w-4"}),pe(" "+K(v.packed?"Delete Package":"Delete"),1)],8,_l)])):W("",!0)]),_:2},1024)]))],10,hl))),128))]))]))}});function ja(e){return Math.round(e*1e3)/1e3}function zn(e){return e?Object.entries(e).sort(([t],[n])=>t.localeCompare(n)).map(([t,n])=>`${t}:${n.left}:${n.width}`).join("|"):""}function Fn(e,t){return Number.isFinite(e)?!Number.isFinite(t)||t<=0?ja(e):ja(e/t):e}function El(e,t,n,o,a){const l=B(!1),s=B(new Map);let r=null,i=null,c=null,d=null,f="",v="",x=null;const g=new Map;function u(){return e.value.nodes.filter(G=>G.type!=="hook").map(G=>G.id)}function y(){const G=u();return G.length>0&&G.every(Y=>s.value.has(Y))}function S(){return Array.from(s.value.entries()).sort(([G],[Y])=>G.localeCompare(Y)).map(([G,Y])=>`${G}:${Y.w}x${Y.h}:${Y.modelAnchorY??""}:${zn(Y.toolColumns)}`).join("|")}function _(){return new Set(e.value.nodes.map(G=>G.id))}function M(){r&&clearTimeout(r),i&&clearTimeout(i),c&&clearTimeout(c),r=null,i=null,c=null}function k(){return typeof ResizeObserver>"u"?null:x||(x=new ResizeObserver(G=>{for(const Y of G)for(const[H,E]of g)if(E===Y.target){b(H,E);break}}),x)}function N(G,Y){const H=g.get(G);if(H===Y)return;const E=k();H&&E?.unobserve(H),g.set(G,Y),E?.observe(Y)}function P(){const G=_();for(const[Y,H]of g)G.has(Y)||(x?.unobserve(H),g.delete(Y),s.value.delete(Y))}function L(){He(()=>{P();for(const[G,Y]of g)b(G,Y)})}function ne(){c&&clearTimeout(c),c=setTimeout(()=>{t.value||l.value||e.value.nodes.length===0||!y()||He(()=>{l.value=!0,n(C())})},800)}Pe(t,G=>{if(G){l.value=!1,s.value.clear(),v="",a?.(),M();return}e.value.nodes.length>0&&(L(),ne())}),Pe(()=>e.value.nodes.map(G=>G.id).join(","),G=>{G!==f&&(f=G,G&&(l.value=!1,v="",a?.(),M(),L(),ne()))});const q=O(()=>e.value.nodes.map(G=>{const Y=s.value.get(G.id);return Y?{...G,width:Y.w,height:Y.h}:G})),D=O(()=>{const G={};for(const[Y,H]of s.value)(H.modelAnchorY!==void 0||H.toolColumns)&&(G[Y]={modelAnchorY:H.modelAnchorY,toolColumns:H.toolColumns});return G});function C(){const G=q.value,Y=e.value.groups;if(G.length===0)return e.value.bounds;let H=1/0,E=1/0,F=-1/0,j=-1/0;for(const X of G)H=Math.min(H,X.x),E=Math.min(E,X.y),F=Math.max(F,X.x+X.width),j=Math.max(j,X.y+X.height);for(const X of Y)H=Math.min(H,X.x),E=Math.min(E,X.y),F=Math.max(F,X.x+X.width),j=Math.max(j,X.y+X.height);return{x:H,y:E,width:F-H,height:j-E}}function T(){d&&cancelAnimationFrame(d),d=requestAnimationFrame(()=>{const G=S();G!==v&&(v=G,o(Object.fromEntries(s.value))),!(t.value||!y())&&(r&&clearTimeout(r),r=setTimeout(()=>{t.value||!y()||(c&&clearTimeout(c),c=null,l.value=!0,He(()=>{n(C()),i&&clearTimeout(i),i=setTimeout(()=>n(C()),220)}))},180))})}function b(G,Y){He(()=>{const H=Y.offsetWidth,E=Y.offsetHeight;if(H<=0||E<=0)return;const F=Y.getBoundingClientRect(),j=H>0&&F.width>0?F.width/H:1,X=E>0&&F.height>0?F.height/E:1;let he;const se=Y.querySelector("[data-model-anchor]");if(se&&F.height>0){const le=se.getBoundingClientRect();le.height>0&&(he=Fn(le.top+le.height/2-F.top,X))}let fe;const z=Y.querySelectorAll("[data-tool-column]");if(z.length>0&&F.width>0){fe={};for(const le of z){const ie=le.dataset.toolColumn;if(!ie)continue;const ve=le.getBoundingClientRect();fe[ie]={left:Fn(ve.left-F.left,j),width:Fn(ve.width,j)}}}const U=s.value.get(G),J=U?.w!==H||U?.h!==E;if(!(U?.w===H&&U?.h===E&&U?.modelAnchorY===he&&zn(U?.toolColumns)===zn(fe))){if(s.value.set(G,{w:H,h:E,modelAnchorY:he,toolColumns:fe}),l.value&&!J){const le=S();le!==v&&(v=le,o(Object.fromEntries(s.value)));return}T()}})}function A(G,Y){N(G,Y),b(G,Y)}return Et(()=>{r&&clearTimeout(r),i&&clearTimeout(i),c&&clearTimeout(c),d&&cancelAnimationFrame(d),x?.disconnect(),x=null,g.clear()}),{layoutStable:l,measurements:s,nodesWithMeasuredSizes:q,nodeMetrics:D,measureNode:A,measuredBounds:C}}function Al(e){const t=B(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 c(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 u=Date.now(),y=u-n<350&&o===x.id;if(n=u,o=x.id,!y){e.focusNode(x);return}const S=e.containerRef.value;if(!S)return;const _=S.getBoundingClientRect(),M=40,k=(_.width-M*2)/x.width,N=(_.height-M*2)/x.height;e.focusNode(x,Math.min(k,N,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(),u=g-a<350&&l===v.id;a=g,l=v.id,e.focusNode(x,u?1.2:void 0)}return Pe(e.selectedNodeId,(v,x)=>{if(!v){t.value=null,x&&e.restoreViewport();return}const g=e.layout.value.nodes.find(u=>u.id===v);g&&(t.value=i(g))}),ea(()=>{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 u=e.viewportState.value.scale;const y=60;if(v.width>0&&v.height>0){const S=(g.width-y*2)/v.width,_=(g.height-y*2)/v.height,M=Math.min(S,_);u>M&&M>.1&&(u=M)}e.focusNode(v,u)},320)}),e.containerRef.value&&s.observe(e.containerRef.value)}),Et(()=>{s?.disconnect(),r&&clearTimeout(r)}),{handleCanvasClick:c,handleGroupClick:d,handleNodeSelect:f}}const en=6,Nl=250;function Pl(e,t={}){const{minScale:n=.1,maxScale:o=2.5,padding:a=80,panPadding:l=a}=t,s=B({x:0,y:0,scale:1}),r=B(!1),i=B(!1),c={x:0,y:0,viewX:0,viewY:0},d={x:0,y:0,time:0};let f=null,v=!1,x=0,g=null,u=null,y=null;const S=150;function _(){i.value=!0,u&&clearTimeout(u),u=setTimeout(()=>{i.value=!1,u=null},S)}let M=null,k=!1,N=!1,P=null;function L(){k=!0,N=!0}function ne(){g&&clearTimeout(g),g=setTimeout(()=>{const{x:m,y:w,scale:V}=s.value,oe=Math.round(m/V)*V,de=Math.round(w/V)*V;(oe!==m||de!==w)&&(s.value=b({x:oe,y:de,scale:V}))},120)}const q=O(()=>{const{x:m,y:w,scale:V}=s.value;return i.value?{transform:`translate3d(${m}px, ${w}px, 0) scale(${V})`,transformOrigin:"0 0",willChange:"transform"}:{transform:`translate3d(${m/V}px, ${w/V}px, 0)`,zoom:V,transformOrigin:"0 0",willChange:"transform"}}),D=O(()=>Math.round(s.value.scale*100));function C(m){return Math.min(o,Math.max(n,m))}function T(m,w,V){return Math.min(V,Math.max(w,m))}function b(m){const w=C(m.scale),V=e.value,oe=P;if(!V||!oe||oe.width<=0||oe.height<=0)return{...m,scale:w};const de=V.getBoundingClientRect();if(de.width<=0||de.height<=0)return{...m,scale:w};const te=Math.max(0,l)/w,re=Math.max(0,l)/w,be=(de.width/2-m.x)/w,ke=(de.height/2-m.y)/w,ge=T(be,oe.x-te,oe.x+oe.width+te),Se=T(ke,oe.y-re,oe.y+oe.height+re);return{x:de.width/2-ge*w,y:de.height/2-Se*w,scale:w}}function A(m,w=!1){s.value=b(m),w&&ne()}function G(m,w,V){const oe=C(m),de=s.value,te=oe/de.scale;A({x:w-(w-s.value.x)*te,y:V-(V-s.value.y)*te,scale:oe},!0)}function Y(m){const w=e.value;if(w){if(m.ctrlKey||m.metaKey){m.preventDefault(),m.stopPropagation?.(),L(),_();const V=w.getBoundingClientRect(),oe=m.clientX-V.left,de=m.clientY-V.top,te=Math.min(Math.abs(m.deltaY),10)/10,be=1+(m.deltaY>0?-1:1)*.03*te;G(s.value.scale*be,oe,de);return}m.preventDefault(),m.stopPropagation?.(),L(),_(),A({...s.value,x:s.value.x-m.deltaX,y:s.value.y-m.deltaY},!0)}}function H(m){m.button!==0&&m.button!==1||(f=m.pointerId,r.value=!1,c.x=m.clientX,c.y=m.clientY,c.viewX=s.value.x,c.viewY=s.value.y,d.x=m.clientX,d.y=m.clientY,d.time=Date.now(),v=!1)}function E(m){if(f!==m.pointerId)return;const w=m.clientX-d.x,V=m.clientY-d.y,oe=w*w+V*V;!r.value&&oe>en*en&&(r.value=!0,v||(m.currentTarget.setPointerCapture(m.pointerId),v=!0)),r.value&&(_(),A({...s.value,x:c.viewX+(m.clientX-c.x),y:c.viewY+(m.clientY-c.y)}))}function F(m){if(f!==m.pointerId)return;const w=m.clientX-d.x,V=m.clientY-d.y,oe=w*w+V*V,de=Date.now()-d.time<=Nl&&oe<=en*en;r.value&&L(),de||(x=Date.now()+32),r.value=!1,f=null,v&&(m.currentTarget?.releasePointerCapture(m.pointerId),v=!1),ne()}function j(){return Date.now()>=x}function X(){const m=e.value;if(!m)return{cx:0,cy:0};const w=m.getBoundingClientRect();return{cx:w.width/2,cy:w.height/2}}function he(){L(),_();const{cx:m,cy:w}=X();G(s.value.scale+.1,m,w)}function se(){L(),_();const{cx:m,cy:w}=X();G(s.value.scale-.1,m,w)}function fe(m,w={}){P=m.width>0&&m.height>0?{...m}:null;const V=e.value;if(!V||m.width===0||m.height===0||!w.force&&N)return;const oe=V.getBoundingClientRect(),de=(oe.width-a*2)/m.width,te=(oe.height-a*2)/m.height,re=C(Math.min(de,te,1));A({x:(oe.width-m.width*re)/2-m.x*re,y:(oe.height-m.height*re)/2-m.y*re,scale:re}),N=!1}function z(){N=!1}function U(){A({x:0,y:0,scale:1})}function J(m){P=m&&m.width>0&&m.height>0?{...m}:null,P&&(s.value=b(s.value))}function le(){M={...s.value},k=!1}function ie(){const m=M;M=null,!(!m||k)&&ve(m)}function ve(m,w){g&&(clearTimeout(g),g=null);const V={...s.value},oe=300,de=performance.now();y&&cancelAnimationFrame(y);function te(re){const be=Math.min((re-de)/oe,1),ke=1-Math.pow(1-be,3);_(),s.value=b({x:V.x+(m.x-V.x)*ke,y:V.y+(m.y-V.y)*ke,scale:V.scale+(m.scale-V.scale)*ke}),be<1?y=requestAnimationFrame(te):(s.value=b(w?w():m),y=null)}y=requestAnimationFrame(te)}function ee(){g&&(clearTimeout(g),g=null),u&&(clearTimeout(u),u=null),y&&(cancelAnimationFrame(y),y=null),f=null,v=!1,r.value=!1,i.value=!1}qr()&&Gr(ee);function Z(m,w){const V=e.value;if(!V)return;const oe=C(w??s.value.scale),de=m.x+m.width/2,te=m.y+m.height/2;function re(){const be=V.getBoundingClientRect();return{x:be.width/2-de*oe,y:be.height/2-te*oe,scale:oe}}ve(re(),re)}return{state:s,isPanning:r,transformStyle:q,scalePercent:D,onWheel:Y,onPointerDown:H,onPointerMove:E,onPointerUp:F,shouldHandleClick:j,zoomIn:he,zoomOut:se,fitToView:fe,resetAutoFitLock:z,focusNode:Z,resetView:U,setContentBounds:J,saveViewport:le,restoreViewport:ie}}function Ll(e){return!e.hasAgent||e.hasError?!1:e.loadingComposition?!0:e.hasRevealedStableDiagram?!1:!e.layoutStable||e.loadingAsyncDetail}const Rl={class:"pointer-events-none absolute inset-0 h-full w-full","aria-hidden":"true"},Ol=_e({__name:"CanvasGrid",setup(e){return(t,n)=>(p(),$("svg",Rl,[...n[0]||(n[0]=[h("defs",null,[h("pattern",{id:"canvas-dot-grid",x:"0",y:"0",width:"24",height:"24",patternUnits:"userSpaceOnUse"},[h("circle",{cx:"12",cy:"12",r:"1",class:"fill-neutral-400/20 dark:fill-neutral-500/20"})])],-1),h("rect",{width:"100%",height:"100%",fill:"url(#canvas-dot-grid)"},null,-1)])]))}}),Oe=8,Be=20,Ee=20,tn=18,Ge=20,nn=8,rt=8,Dl=12,Re=10,Bl=10,an=16,on=24,Vl=38,Xa=44,Ul=12;function Ka(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},(c,d)=>s+d*i)}function Hl(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 yn(e){return{id:e.id,x:e.x-tn,y:e.y-tn,width:e.width+tn*2,height:e.height+tn*2}}function Ht(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 mn(e,t,n){return t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height}function Ya(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function un(e,t,n){const o=Ya(e),a=Ya(t);return n.map(yn).filter(l=>mn(l,o.x,o.y)&&!mn(l,a.x,a.y))}function zl(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(yn).filter(r=>!mn(r,e.x+e.width/2,e.y+e.height/2)&&!mn(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 Mt(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(yn)}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,c=r.x+r.width+Ee,d=r.y-Ee,f=r.y+r.height+Ee;if(e>=d&&e<=f&&s>=i&&l<=c)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 c of o){if(a.has(c.id))continue;const d=c.x-l,f=c.x+c.width+l,v=c.y-s,x=c.y+c.height+s;if(e>=d&&e<=f&&i>=v&&r<=x)return c}return null}function Gn(e,t,n,o,a,l,s){const r=Math.min(o,a),i=Math.max(o,a);let c=e;for(let d=0;d<6;d++){const f=Ze(c,t,n,l,s);if(!f)return c;const v=f.y-Ee-Ge,x=f.y+f.height+Ee+Ge,g=Math.abs(v-c)<=Math.abs(x-c)?v:x;c=Math.max(r-200,Math.min(i+200,g))}return c}function hn(e,t,n,o,a,l,s,r,i){let c=r<0?Math.min(e,i-1):Math.max(e,i+1);for(let d=0;d<6;d++){const f=Ze(c,t,n,l,s);if(!f)return c;c=r<0?f.y-Ee-Ge:f.y+f.height+Ee+Ge}return c}function So(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n);return _o(e,da(l,s,o,a))}function da(e,t,n,o,a=Ee+Ge,l=Ee){const s=[];for(const i of n){if(o.has(i.id))continue;const c=i.y-l;i.y+i.height+l<e||c>t||s.push([i.x-a,i.x+i.width+a])}if(s.length===0)return s;s.sort((i,c)=>i[0]-c[0]);const r=[s[0]];for(let i=1;i<s.length;i++){const c=r[r.length-1],d=s[i];d[0]<=c[1]?c[1]=Math.max(c[1],d[1]):r.push(d)}return r}function _o(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 jt(e,t,n,o,a,l,s,r=Ee+Ge,i=Ee){const c=da(Math.min(t,n),Math.max(t,n),o,a,r,i);if(c.length===0)return e;let d=l<0?Math.min(e,s-1):Math.max(e,s+1);for(let f=0;f<c.length;f++){const v=c.find(([x,g])=>d>=x&&d<=g);if(!v)return d;d=l<0?v[0]-1:v[1]+1}return d}function qa(e,t){return e<=1?[0]:Array.from({length:e},(n,o)=>o*t)}function Io(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 Io(a))t.push([n,...l])}),t}function ua(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 Fl(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 jl(e,t,n,o,a){if(Math.abs(e-n)<1)return`M ${e} ${t} L ${n} ${o}`;const l=Math.min(Oe,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 Xl(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 bn(e,t,n){return{d:`M ${e} ${t} L ${n} ${t}`,segments:[{orientation:"horizontal",x1:e,y1:t,x2:n,y2:t}]}}function ca(e,t,n){return{d:`M ${e} ${t} L ${e} ${n}`,segments:[{orientation:"vertical",x1:e,y1:t,x2:e,y2:n}]}}function Ga(e,t,n,o){if(Math.abs(t-o)<1)return bn(e,t,n);if(Math.abs(e-n)<1)return ca(e,t,o);const a=n>e?1:-1,l=o>t?1:-1,s=Math.min(Oe,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 Kl(e,t,n,o,a){if(Math.abs(t-a)<1)return bn(e,t,o);const l=n>e?1:-1,s=o>n?1:-1,r=a>t?1:-1,i=Math.min(Oe,Math.abs(n-e)/2||Oe,Math.abs(a-t)/2||Oe,Math.abs(o-n)/2||Oe);return Math.abs(n-e)<2?Wn(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 Wn(e,t,n,o){if(Math.abs(e-n)<1)return ca(e,t,o);if(Math.abs(t-o)<1)return bn(e,t,n);const a=n>e?1:-1,l=o>t?1:-1,s=Math.min(Oe,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 Yl(e,t,n,o,a,l,s){if(Math.abs(t-o)<1&&!Ze(t,e,n,a,l))return bn(e,t,n);if(Math.abs(e-n)<1&&!Ct(e,t,o,a,l))return ca(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"?Ga(e,t,n,o):Wn(e,t,n,o):r?Ga(e,t,n,o):i?Wn(e,t,n,o):null}function ql(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 Eo(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-nn,width:l-a,height:nn*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-nn,y:n,width:nn*2,height:o-n}}function Wa(e,t,n){return e.some((o,a)=>{const l=Eo(o,`segment-${a}`);return l?t.some(s=>n.has(s.id)?!1:ql(l,s)):!1})}function Gl(e){const t=[];for(const n of e)n.segments.forEach((o,a)=>{const l=Eo(o,`edge:${n.id}:${a}`);l&&t.push(l)});return t}function jn(e,t,n,o,a){const l=[...un(e,t,n),...zl(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+Ge)):Math.min(o,...s.map(r=>r.y-Ee-Ge))}function pt(e,t){const n=t?.[e.id],o=e.type==="model"?Vl:e.type==="side"||e.type==="prompt"||e.type==="tool"&&e.data.kind==="prompt"?Xa:e.height/2,a=n?.modelAnchorY??o;return e.y+Math.max(Be,Math.min(e.height-Be,a))}function pn(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 c=i.y-Ee,d=i.y+i.height+Ee;if(!(t<c||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 Wl(e,t,n,o,a,l){const s=t.y,r=t.x,i=[];for(const d of[-1,1]){const f=pn(e,s,d,a,l,Dl),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=pn(e,s,d,a,l,14);i.push(jt(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 Ql(e,t,n,o,a,l,s,r){const i=t.x,c=t.y,d=o.x,f=o.y,v=Yl(i,c,d,f,s,r,"horizontal");if(v&&v.segments.length===1&&!Wa(v.segments,s,r))return v;const x=t.side==="left"?-1:1,u=pn(e,c,x,s,r,14),y=i+x*u,S=G=>!Ze(c,i,G,s,r),_=jt(y,c,f,s,r,x,i);if((d-i)*x>=0&&Math.abs(_-i)>1&&Math.abs(_-d)>1&&S(_)&&!Ct(_,c,f,s,r)&&!Ze(f,_,d,s,r)){const G=Kl(i,c,_,d,f);if(!Wa(G.segments,s,r))return G}let k=Gn(a,y,d,c,f,s,r),N=jt(y,c,k,s,r,x,i);S(N)||(N=S(y)?y:i),k=Gn(a,N,d,c,f,s,r);const P=Math.abs(N-i),L=o.side==="left"?n.x-(Be+24):n.x+n.width+Be+24,ne=l??So(L,k,f,s,r),q=N>i?1:-1,D=k>c?1:-1,C=ne>N?1:-1,T=f>k?1:-1,b=d>ne?1:-1,A=Math.min(Oe,Math.abs(P)/2||Oe,Math.abs(k-c)/2||Oe,Math.abs(ne-N)/2||Oe,Math.abs(f-k)/2||Oe,Math.abs(d-ne)/2||Oe);return P<2?{d:[`M ${i} ${c}`,`L ${i} ${k-A*D}`,`Q ${i} ${k} ${i+A*C} ${k}`,`L ${ne-A*C} ${k}`,`Q ${ne} ${k} ${ne} ${k+A*T}`,`L ${ne} ${f-A*T}`,`Q ${ne} ${f} ${ne+A*b} ${f}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"vertical",x1:i,y1:c,x2:i,y2:k},{orientation:"horizontal",x1:i,y1:k,x2:ne,y2:k},{orientation:"vertical",x1:ne,y1:k,x2:ne,y2:f},{orientation:"horizontal",x1:ne,y1:f,x2:d,y2:f}]}:{d:[`M ${i} ${c}`,`L ${N-A*q} ${c}`,`Q ${N} ${c} ${N} ${c+A*D}`,`L ${N} ${k-A*D}`,`Q ${N} ${k} ${N+A*C} ${k}`,`L ${ne-A*C} ${k}`,`Q ${ne} ${k} ${ne} ${k+A*T}`,`L ${ne} ${f-A*T}`,`Q ${ne} ${f} ${ne+A*b} ${f}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"horizontal",x1:i,y1:c,x2:N,y2:c},{orientation:"vertical",x1:N,y1:c,x2:N,y2:k},{orientation:"horizontal",x1:N,y1:k,x2:ne,y2:k},{orientation:"vertical",x1:ne,y1:k,x2:ne,y2:f},{orientation:"horizontal",x1:ne,y1:f,x2:d,y2:f}]}}function Jl(e,t,n,o,a,l,s,r){const i=t.x,c=t.y,d=n.x,f=n.y,v=t.side==="left"?-1:1,x=pn(e,c,v,s,r,14),g=i+v*x,u=a??jt(g,c,o,l,r,v,i,rt,rt),y=a!==null?o:hn(o,u,d,c,f,s,r,f>=c?1:-1,c),S=Math.abs(u-i),_=u>i?1:-1,M=y>c?1:-1,k=d>u?1:-1,N=f>y?1:-1,P=Math.min(Oe,Math.abs(S)/2||Oe,Math.abs(y-c)/2||Oe,Math.abs(d-u)/2||Oe,Math.abs(f-y)/2||Oe);return S<2?{d:[`M ${i} ${c}`,`L ${i} ${y-P*M}`,`Q ${i} ${y} ${i+P*k} ${y}`,`L ${d-P*k} ${y}`,`Q ${d} ${y} ${d} ${y+P*N}`,`L ${d} ${f}`].join(" "),segments:segmentsViaMidY(i,c,d,f,y)}:{d:[`M ${i} ${c}`,`L ${u-P*_} ${c}`,`Q ${u} ${c} ${u} ${c+P*M}`,`L ${u} ${y-P*M}`,`Q ${u} ${y} ${u+P*k} ${y}`,`L ${d-P*k} ${y}`,`Q ${d} ${y} ${d} ${y+P*N}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"horizontal",x1:i,y1:c,x2:u,y2:c},{orientation:"vertical",x1:u,y1:c,x2:u,y2:y},{orientation:"horizontal",x1:u,y1:y,x2:d,y2:y},{orientation:"vertical",x1:d,y1:y,x2:d,y2:f}]}}function Zl(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 mt(e,t,n){if((n&&n.type==="model"?n.placementMode:void 0)==="below-row"){const r=e.x+e.width/2,c=(n?n.x+n.width/2:r)>=r?"right":"left";return{side:c,x:c==="right"?e.x+e.width:e.x,y:pt(e,t)}}if(n?.type==="model"&&ei(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 ei(e){return e.type==="prompt"||e.type==="side"&&e.data.mode==="ai"||e.type==="tool"&&e.data.kind==="prompt"}const We=8,vn=6,ti=12,Qa=6;function Ye(e){return e.x+e.width/2}function ni(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),c=Math.abs(r.x-s.x)+Math.abs(r.y-s.y),d=Math.min(Oe,i/2,c/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),u={x:s.x-f*d,y:s.y-v*d},y={x:s.x+x*d,y:s.y+g*d};n.push(`L ${u.x} ${u.y}`),n.push(`Q ${s.x} ${s.y} ${y.x} ${y.y}`)}const o=t[t.length-1];return n.push(`L ${o.x} ${o.y}`),n.join(" ")}function ai(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 ni(t)}function Ja(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 oi(e){return e==="tool"||e==="provider"||e==="mcp"}function ri(e){return Math.round(e/ti)}function Qn(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 Za(e,t,n,o,a,l,s){const r=a.rowLaneY,i=Qn([{x:e,y:t},{x:e,y:r},{x:n,y:r},{x:n,y:o}]),c=si(e,t,r,l,s),d=li(r,e,n,l,s)??ii(r,e,n,l,s),f=c??d;if(!f)return{d:Ja(i),segments:i};const v=n<e?-1:1,x=vn+Math.abs(a.aisleOffset),g=v<0?f.x-x:f.x+f.width+x,u=f.y+f.height+vn,y=a.rowIndex>0?u:Math.min(a.sourceLaneY,Math.max(r+We/2,u)),S=r>=t?Math.max(t+We,a.escapeLaneY):Math.min(t-We,y),_=Qn([{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:Ja(_),segments:_}}function Ao(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),c=Math.max(t.x1,t.x2);return Math.max(0,Math.min(r,c)-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 si(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,c=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<c&&(i=d,c=v)}return i}function li(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,c=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<c&&(i=d,c=v)}return i}function ii(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,c=Number.POSITIVE_INFINITY;for(const d of o)if(!(a.has(d.id)||!d.id.includes("__model-"))&&e>d.y-We*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<c&&(i=d,c=v)}return i}function di(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)ua(a,l)&&(t+=1e4),t+=Ao(a,l)*25;return t}function eo(e,t){let n=0;for(const o of t)for(const a of e)for(const l of o.segments)ua(a,l)&&(n+=1e5),n+=Ao(a,l)*1e3;return n}function ui(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 ci(e,t,n,o,a,l,s,r){const i=Xl(e,t,n,o,a);if(!ui(i,s,r))return{d:jl(e,t,n,o,a),segments:i};const c=_o(n+l,da(a,o,s,r,10,10)),d=hn(o-Math.min(Math.max((o-a)/4,Be),48),c,n,a,o,s,r,-1,o),f=Qn([{x:e,y:t},{x:e,y:a},{x:c,y:a},{x:c,y:d},{x:n,y:d},{x:n,y:o}]);return{d:ai(f),segments:f}}function to(e,t,n,o){return[...n,...Mt(e,t,o)]}function fi(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 u=s.get(x.to);u?u.push(x):s.set(x.to,[x])}for(const[,x]of l)x.sort((g,u)=>{const y=a.get(g.to),S=a.get(u.to);return y.x+y.width/2-(S.x+S.width/2)});for(const[,x]of s)x.sort((g,u)=>{const y=a.get(g.from),S=a.get(u.from);return y.x+y.width/2-(S.x+S.width/2)});const r=new Map,i=new Map;for(const[x,g]of l){const u=a.get(x);if(u.type==="agent"){g.forEach(y=>{const S=y.sideId==="a"?u.x+u.width*.25:u.x+u.width*.75;r.set(y.id,S)});continue}if(u.type==="side"&&g.some(y=>y.toolKind)){const S=u.data.tools||[],_=[];S.some(L=>L.kind==="tool"||L.kind==="provider"||L.kind==="mcp")&&_.push("function"),S.some(L=>L.kind==="prompt")&&_.push("prompt"),S.some(L=>L.kind==="subagent")&&_.push("subagent"),S.some(L=>L.kind==="handoff")&&_.push("handoff");const M=_.length>0?.45:1,k=_.length>0?(1-M)/_.length:0,N=new Map;for(const L of g){if(!L.toolKind||_.length===0)continue;const ne=L.toolKind==="tool"||L.toolKind==="provider"||L.toolKind==="mcp"?"function":L.toolKind,q=N.get(ne);q?q.push(L):N.set(ne,[L])}for(const[L,ne]of N)ne.sort((q,D)=>{const C=a.get(q.to),T=a.get(D.to);if(L==="function"){const b=C.y-T.y;if(Math.abs(b)>1)return b}return Ye(C)-Ye(T)});const P=o?.[u.id]?.toolColumns;for(const[L,ne]of N){let q,D;const C=P?.[L];if(C)q=u.x+C.left,D=u.x+C.left+C.width;else{const G=_.indexOf(L);if(G<0)continue;q=u.x+u.width*(M+G*k),D=u.x+u.width*(M+(G+1)*k)}const T=q+Be,b=D-Be,A=ne.length;ne.forEach((G,Y)=>{const H=A===1?(q+D)/2:T+(b-T)*Y/(A-1);r.set(G.id,H)})}g.forEach(L=>{if(r.has(L.id))return;if(L.toolKind&&_.length>0){const D=L.toolKind==="tool"||L.toolKind==="provider"||L.toolKind==="mcp"?"function":L.toolKind,C=_.indexOf(D);if(C>=0){const T=M+C*k+k/2;r.set(L.id,u.x+u.width*T);return}}const ne=a.get(L.to),q=ne.x+ne.width/2;r.set(L.id,Math.max(u.x+Be,Math.min(u.x+u.width-Be,q)))});continue}g.forEach(y=>{const S=a.get(y.to),_=S.x+S.width/2;r.set(y.id,Math.max(u.x+Be,Math.min(u.x+u.width-Be,_)))})}for(const[x,g]of s){const u=a.get(x),y=u.x+u.width/2;g.forEach(S=>i.set(S.id,y))}for(const[x,g]of l){const u=a.get(x);if(!u||g.length<=1)continue;const y=new Map;for(const S of g){const _=r.get(S.id);if(_===void 0)continue;const M=Math.round(_),k=y.get(M);k?k.push(S):y.set(M,[S])}for(const[S,_]of y){if(_.length<=1)continue;_.sort((k,N)=>{const P=a.get(k.to),L=a.get(N.to);return Ye(P)-Ye(L)});const M=r.get(_[0].id)??S;_.forEach((k,N)=>{const P=(N-(_.length-1)/2)*We;r.set(k.id,Math.max(u.x+Be,Math.min(u.x+u.width-Be,M+P)))})}}const c=Array.from(a.values()),d=new Map;for(const x of t){const g=a.get(x.from),u=a.get(x.to);if(!g||!u)continue;const y=d.get(x.from);y?y.push(x):d.set(x.from,[x])}for(const[,x]of d)x.sort((g,u)=>{const y=a.get(g.to),S=a.get(u.to),_=y.y-S.y;return Math.abs(_)>1?_:y.x+y.width/2-(S.x+S.width/2)});const f=new Map,v=new Map;for(const[x,g]of d){const u=a.get(x);if(!u||u.type!=="side")continue;const y=g.filter(Y=>oi(Y.toolKind)).filter(Y=>!!a.get(Y.to)).sort((Y,H)=>{const E=a.get(Y.to),F=a.get(H.to),j=E.y-F.y;return Math.abs(j)>1?j:E.x+E.width/2-(F.x+F.width/2)});if(y.length<=1)continue;const S=y.reduce((Y,H)=>Y+(r.get(H.id)??Ye(u)),0)/y.length,M=y.reduce((Y,H)=>Y+Ye(a.get(H.to)),0)/y.length<S,k=[],N=new Map;for(const Y of y){const H=a.get(Y.to),E=ri(H.y),F=N.get(E);if(F)F.push(Y);else{const j=[Y];N.set(E,j),k.push(j)}}k.sort((Y,H)=>a.get(Y[0].to).y-a.get(H[0].to).y);const P=Math.min(...y.map(Y=>a.get(Y.to).y)),L=u.y+u.height+8,ne=Math.max(L,P-8),q=y.length<=1?0:(ne-L)/(y.length-1);v.set(u.id,ne),k.forEach(Y=>{Y.sort((H,E)=>{const F=a.get(H.to),j=a.get(E.to);return Ye(F)-Ye(j)})});const D=[...y].sort((Y,H)=>(r.get(Y.id)??Ye(u))-(r.get(H.id)??Ye(u))),C=M,T=!M,b=[];for(const Y of[C,!C])for(const H of[T,!T])for(const E of[!1,!0])b.push({sourceReversed:Y,rowReversed:H,aisleReversed:E,preference:(Y===C?0:2)+(H===T?0:1)});let A=new Map,G=Number.POSITIVE_INFINITY;for(const Y of b){const H=new Map,E=new Map;D.forEach((se,fe)=>{H.set(se.id,fe),E.set(se.id,Y.sourceReversed?y.length-1-fe:fe)});const F=new Map,j=k[0]?.length??0;k.forEach((se,fe)=>{const z=Math.min(...se.map(ve=>a.get(ve.to).y)),U=Math.max(L,z-34),J=Math.max(U,z-10),le=se.length<=1?0:(J-U)/(se.length-1),ie=M?1:-1;se.forEach((ve,ee)=>{const Z=E.get(ve.id)??ee,m=Y.rowReversed?se.length-1-ee:ee,w=Y.aisleReversed?y.length-1-(H.get(ve.id)??ee):H.get(ve.id)??ee,V=fe===0&&se.length>1?L+ee*q:L+Z*q,oe=H.get(ve.id)??ee,de=fe===0?Math.max(V,U+m*le-We/2):ne-We+Math.max(0,oe-j)*2,te=M?u.x+u.width+vn:u.x-vn,re=(M?1:-1)*w*We,be=U+m*le,ke=Math.min(z-4,Math.max(be,V+We/2));F.set(ve.id,{rowIndex:fe,sourceLaneY:V,escapeLaneY:de,rowLaneY:ke,aisleX:te,aisleOffset:re,aisleDirection:ie})})});const X=y.map(se=>{const fe=a.get(se.to),z=r.get(se.id)??Ye(u),U=u.y+u.height,J=i.get(se.id)??Ye(fe),le=fe.y,ie=new Set([u.id,fe.id]),ve=to(u,fe,c,n);return Za(z,U,J,le,F.get(se.id),ve,ie)}),he=di(X)+Y.preference;he<G&&(G=he,A=F)}for(const[Y,H]of A)f.set(Y,H)}return t.map(x=>{const g=a.get(x.from),u=a.get(x.to);if(!g||!u)return null;const y=r.get(x.id)??g.x+g.width/2,S=g.y+g.height,_=i.get(x.id)??u.x+u.width/2,M=u.y,k=d.get(x.from)??[x],P=Math.max(0,k.findIndex(G=>G.id===x.id))-(k.length-1)/2,L=S+Math.min((M-S)/2,24)+P*We,q=v.get(x.from)&&g.type==="side"&&!f.has(x.id)?S:L,D=[...c,...Mt(g,u,n)],C=new Set([g.id,u.id]),T=f.get(x.id),b=T?to(g,u,c,n):D,A=T?Za(y,S,_,M,T,b,C):ci(y,S,_,M,Gn(q,y,_,S,M,D,C),P*We,D,C);return{id:x.id,d:A.d,sideId:x.sideId,kind:x.kind??"structural",toolKind:x.toolKind,sourceAnchor:{side:"bottom",x:y,y:S},targetAnchor:{side:"top",x:_,y:M},segments:A.segments}}).filter(x=>!!x)}function mi(e,t,n,o,a,l,s,r){if(e.length<=1)return t;const i=Io(t);let c=t,d=Number.POSITIVE_INFINITY;for(const f of i){const v=e.map((g,u)=>{const y=a.get(g.from),S=mt(y,l,n);return Fl(S.x,S.y,s.get(g.id)??S.x,r.get(g.id)??S.y,f[u],o)});let x=0;for(let g=0;g<v.length;g++)for(let u=g+1;u<v.length;u++)for(const y of v[g])for(const S of v[u])ua(y,S)&&(x+=1e3);x+=f.reduce((g,u,y)=>{const S=e[y];return g+Math.abs(u-(s.get(S.id)??u))},0),x<d&&(d=x,c=f)}return c}function hi(e,t,n){return{side:t,x:t==="right"?e.x+e.width:e.x,y:pt(e,n)}}function rn(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 no(e){return e.reduce((t,n)=>t+Math.abs(n.x2-n.x1)+Math.abs(n.y2-n.y1),0)}function pi(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 u=s.get(g.to);if(!u||u.type!=="model")continue;const y=u.placementMode,S=`${u.id}|${y??"side"}`,_=i.get(S);_?_.push(g):i.set(S,[g])}const c=new Map,d=new Map,f=new Map,v=new Map;for(const[,g]of i){const u=s.get(g[0].to),y=u.placementMode,S=Zl(y),_=[...g];if(S==="top"){_.sort((j,X)=>{const he=s.get(j.from),se=s.get(X.from);return he.x+he.width/2-(se.x+se.width/2)});const k=u.x+u.width/2,N=_.filter(j=>{const X=s.get(j.from);return X.x+X.width/2<k}),P=_.filter(j=>{const X=s.get(j.from);return X.x+X.width/2>=k}),L=[...N].reverse(),ne=[...P],q=[...L,...ne],D=Ka(u,q.length,"top"),C=q.every(j=>u.y>=mt(s.get(j.from),o,u).y),T=C?Math.max(...q.map(j=>{const X=s.get(j.from),he=mt(X,o,u),se=X.y+X.height+Ee+Ge,fe=jn(X,u,n,se,!0);return hn(fe,he.x,u.x+u.width/2,he.y,u.y,Ht([...r,...Mt(X,u,n),...un(X,u,n)],an,on),new Set([X.id,u.id]),1,he.y)})):Math.min(...q.map(j=>{const X=s.get(j.from),he=mt(X,o,u),se=X.y-Ee-Ge,fe=jn(X,u,n,se,!1);return hn(fe,he.x,u.x+u.width/2,he.y,u.y,Ht([...r,...Mt(X,u,n),...un(X,u,n)],an,on),new Set([X.id,u.id]),-1,he.y)})),b=qa(q.length,Re),A=b[b.length-1]??0,G=u.y-Bl,Y=C?G-A:T,H=[{isLeftApproach:!0,edges:N,startIndex:0,assignOrder:(j,X)=>{const he=s.get(j.from);return s.get(X.from).x-he.x}},{isLeftApproach:!1,edges:P,startIndex:L.length,assignOrder:(j,X)=>{const he=s.get(j.from),se=s.get(X.from);return he.x-se.x}}];for(const j of H){const X=j.edges;if(X.length===0)continue;const he=[...X].sort(j.assignOrder),se=[];for(const fe of he){const z=s.get(fe.from),U=mt(z,o,u),J=f.get(fe.id)??Y,le=new Set([z.id,u.id]),ie=Ht([...r,...Mt(z,u,n)],an,on);let ve=Wl(z,U,J,u.x+u.width/2,ie,le);const ee=Math.min(U.y,J),Z=Math.max(U.y,J);for(let m=0;m<6;m++){const w=se.find(oe=>Math.max(ee,oe.minY)<Math.min(Z,oe.maxY)&&Math.abs(ve-oe.exitX)<Re);if(!w)break;const V=w.exitX<=U.x?-1:1;ve=jt(w.exitX+V*Re,U.y,J,ie,le,V,U.x,rt,rt)}v.set(fe.id,ve),se.push({exitX:ve,minY:ee,maxY:Z})}}[...q].sort((j,X)=>{const he=s.get(j.from),se=s.get(X.from),fe=he.x+he.width/2,z=se.x+se.width/2,U=fe<k,J=z<k,le=v.get(j.id)??fe,ie=v.get(X.id)??z;return U!==J?Math.abs(le-k)-Math.abs(ie-k):U?C?ie-le:le-ie:C?le-ie:ie-le}).forEach((j,X)=>f.set(j.id,C?Y+b[X]:Y-b[X]));const F=mi(q,D,u,u.y,s,o,v,f);q.forEach((j,X)=>c.set(j.id,{side:"top",x:F[X],y:u.y}));continue}_.sort((k,N)=>{const P=s.get(k.from),L=s.get(N.from),ne=pt(P,o)-pt(L,o);return ne!==0?ne:P.x+P.width/2-(L.x+L.width/2)});const M=Ka(u,_.length,S);if(_.forEach((k,N)=>{const P=pt(u,o),L=_.length===1?mt(s.get(k.from),o,u).y:null;c.set(k.id,{side:S,x:S==="left"?u.x:u.x+u.width,y:_.length===1&&L!==null&&Math.abs(L-P)<=Ul?L:_.length===1?P:M[N]})}),_.length>1){const k=new Set([u.id,..._.map(C=>C.from)]),N=[...r,...n.filter(C=>![{x:u.x+u.width/2,y:u.y+u.height/2},..._.map(b=>{const A=s.get(b.from);return{x:A.x+A.width/2,y:A.y+A.height/2}})].some(b=>b.x>=C.x&&b.x<=C.x+C.width&&b.y>=C.y&&b.y<=C.y+C.height)).map(yn),...a],P=_.map(C=>c.get(C.id).y),L=S==="left"?u.x-(Be+24):u.x+u.width+Be+24,ne=So(L,Math.min(...P),Math.max(...P),N,k),q=qa(_.length,Re),D=S==="left"?-1:1;_.forEach((C,T)=>d.set(C.id,ne+D*q[T]))}}const x=[];return t.map(g=>{if(g.from===g.to)return null;const u=s.get(g.from),y=s.get(g.to);if(!u||!y||y.type!=="model")return null;const S=mt(u,o,y),_=c.get(g.id);if(!_)return null;const k=[...Ht([...r,...Mt(u,y,n),...un(u,y,n)],an,on),...a],N=new Set([u.id,y.id]),P=Ht(r.filter(H=>!N.has(H.id)),Qa,Qa),L=_.y>=S.y,ne=L?u.y+u.height+Ee+Ge:u.y-Ee-Ge,q=jn(u,y,n,ne,L),D=f.get(g.id)??q;let C=S,T=null;const b=S.side,G=[S,hi(u,b==="left"?"right":"left",o)],Y=[D,D-Re,D-Re*2,D-Re*4,D-Re*8,D-Re*16,D-Re*24,D+Re,D+Re*2,D+Re*4,D+Re*8,D+Re*16,D+Re*24];if(_.side==="top"){let H=Number.POSITIVE_INFINITY;const E=v.get(g.id)??null,F=E===null?[null]:[E,null];for(const j of G)for(const X of F)for(const he of Y){const se=Jl(u,j,_,he,X,k,k,N),fe=eo(se.segments,[...l,...x])+rn(se.segments,P)*5e4+rn(se.segments,a)*1e4+no(se.segments)*.01+Math.abs(he-D)*.2+(j.side===b?0:25)+(X===E?0:10);fe<H&&(H=fe,C=j,T=se)}}if(!T){let H=Number.POSITIVE_INFINITY;const E=d.get(g.id)??null,F=E===null?[null]:[E,null],j=L?1:-1,X=[D,D+j*Re,D+j*Re*2,D+j*Re*4,D+j*Re*8,D-j*Re];for(const he of G)for(const se of F)for(const fe of X){const z=Ql(u,he,y,_,fe,se,k,N),U=eo(z.segments,[...l,...x])+rn(z.segments,P)*5e4+rn(z.segments,a)*1e4+no(z.segments)*.01+Math.abs(fe-D)*.2+(he.side===b?0:25)+(se===E?0:10);U<H&&(H=U,C=he,T=z)}}return x.push({d:T.d,segments:T.segments}),{id:g.id,d:T.d,sideId:g.sideId,kind:"model",toolKind:g.toolKind,sourceAnchor:C,targetAnchor:_,segments:T.segments}}).filter(g=>!!g)}function vi(e){const t=Hl(e.edges),n=t.filter(l=>l.kind!=="model"),o=t.filter(l=>l.kind==="model"),a=fi(e.nodes,n,e.groups,e.nodeMetrics);return[...a,...pi(e.nodes,o,e.groups,e.nodeMetrics,Gl(a),a)]}const gi={class:"pointer-events-none absolute left-0 top-0 overflow-visible",width:"1",height:"1"},xi=["data-edge-id","data-edge-kind","data-edge-tool-kind","d","stroke-width","stroke-dasharray"],yi=_e({__name:"CanvasEdges",props:{nodes:{},edges:{},groups:{},selectedNodeId:{},hoveredNodeId:{},nodeMetrics:{}},setup(e){const t=e,n=O(()=>{const l=new Map;for(const s of t.edges)l.set(s.id,s);return l}),o=O(()=>vi({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)=>(p(),$("svg",gi,[(p(!0),$($e,null,Ie(o.value,r=>(p(),$("path",{key:r.id,"data-edge-id":r.id,"data-edge-kind":r.kind,"data-edge-tool-kind":r.toolKind,d:r.d,class:ue(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,xi))),128))]))}}),bi={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ki(e,t){return p(),$("svg",bi,[...t[0]||(t[0]=[h("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14"},null,-1)])])}const wi=nt({name:"lucide-minus",render:ki}),$i={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Mi(e,t){return p(),$("svg",$i,[...t[0]||(t[0]=[h("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 Ti=nt({name:"lucide-maximize",render:Mi}),Ci={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"},Si={class:"min-w-[3rem] text-center text-[11px] font-medium tabular-nums text-neutral-500 dark:text-neutral-400"},_i=_e({__name:"CanvasControls",props:{scalePercent:{}},emits:["zoom-in","zoom-out","fit-view"],setup(e){return(t,n)=>(p(),$("div",Ci,[h("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(I(wi),{class:"h-3.5 w-3.5"})]),h("span",Si,K(e.scalePercent)+"% ",1),h("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(I(xo),{class:"h-3.5 w-3.5"})]),n[3]||(n[3]=h("div",{class:"mx-0.5 h-4 w-px bg-neutral-200 dark:bg-neutral-700"},null,-1)),h("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(I(Ti),{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,c){o("open",{target:r,anchorEl:i.currentTarget,editData:c})}function l(r,i){i.key!=="Enter"&&i.key!==" "||(i.preventDefault(),a(r,i,editData))}const s=O(()=>["group/edit-region cursor-pointer focus-visible:outline-none",n.positioned?"relative":""]);return(r,i)=>(p(),ce(lt(e.as||"div"),{role:"button",tabindex:"0","data-edit-active":e.active||null,class:ue(s.value),onClick:i[0]||(i[0]=Me(c=>a(e.target,c,e.editData),["stop"])),onKeydown:i[1]||(i[1]=c=>l(e.target,c)),onMouseenter:i[2]||(i[2]=c=>o("hover-target",e.target)),onMouseleave:i[3]||(i[3]=c=>o("hover-target",null))},{default:ye(()=>[i[4]||(i[4]=h("div",{class:"composition-edit-region-overlay"},null,-1)),lo(r.$slots,"default")]),_:3},40,["data-edit-active","class"]))}}),Ii={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ei(e,t){return p(),$("svg",Ii,[...t[0]||(t[0]=[h("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 Jn=nt({name:"lucide-variable",render:Ei}),Ai={key:0,class:"mt-1.5 w-full border-collapse text-[11px]"},Ni={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"},fa=_e({__name:"VariablesList",props:{variables:{},muted:{type:Boolean},flaggedNames:{default:()=>[]},flagLabel:{default:"env"}},setup(e){const t=e,n=O(()=>new Set(t.flaggedNames));return(o,a)=>(p(),$("div",null,[h("div",{class:ue(["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(I(Jn),{class:"h-3 w-3"}),a[0]||(a[0]=pe(" Variables ",-1))],2),t.variables.length>0?(p(),$("table",Ai,[(p(!0),$($e,null,Ie(t.variables,l=>(p(),$("tr",{key:l.name},[h("td",{class:ue(["whitespace-nowrap pr-4 py-px font-mono",t.muted?"opacity-80":"text-neutral-800 dark:text-neutral-200"])},[h("span",null,K(l.name),1),n.value.has(l.name)?(p(),$("span",Ni,K(t.flagLabel),1)):W("",!0)],2),h("td",{class:ue(["whitespace-nowrap py-px text-right",t.muted?"opacity-40":"text-neutral-400 dark:text-neutral-500"])},K(l.type)+K(l.required?" *":""),3)]))),128))])):(p(),$("div",{key:1,class:ue(["mt-1.5 text-[11px] italic",t.muted?"opacity-40":"text-neutral-400 dark:text-neutral-600"])}," None ",2))]))}}),Pi="ring-2 agents-ring-selected ring-offset-2 ring-offset-white shadow-md dark:ring-offset-neutral-900",Li="ring-[3px] agents-ring-selected ring-offset-[6px] ring-offset-white shadow-lg dark:ring-offset-neutral-950";function gt(e,t){return e?Pi:t?Li:""}const Ri={class:"flex border-b border-neutral-200 dark:border-neutral-700"},Oi={class:"flex items-center justify-between gap-3 px-5 pt-3.5 pb-2"},Di={class:"ml-1 shrink-0 rounded-full border border-current/60 px-1.5 py-px text-[9.5px] font-semibold tracking-wider"},Bi={class:"flex items-center gap-3.5 px-5 pt-1 pb-3.5"},Vi=["src"],Ui={class:"min-w-0"},Hi={class:"whitespace-nowrap text-[16px] font-semibold leading-tight"},zi={class:"mt-0.5 whitespace-nowrap font-mono text-xs text-neutral-400 dark:text-neutral-500"},Fi={key:0,class:"px-5 pb-3"},ji={key:0,class:"mb-2 flex flex-wrap gap-1"},Xi={key:1,class:"max-w-[280px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Ki={class:"mt-1 max-w-[280px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Yi={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"},Gi={class:"mt-0.5 whitespace-nowrap font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},Wi={class:"mt-1.5 grid grid-cols-[auto_1fr] gap-x-3 text-[11px]"},Qi={class:"whitespace-nowrap py-[1px] text-neutral-400 dark:text-neutral-500"},Ji=["title"],Zi={class:"flex items-center gap-1.5 whitespace-nowrap text-[10px] font-bold uppercase tracking-[0.15em] text-amber-600 dark:text-amber-400"},ed={key:0,class:"mt-0.5 whitespace-nowrap font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},td={key:1,class:"mt-0.5 text-[11px] text-neutral-400 dark:text-neutral-500"},nd={key:2,class:"mt-1.5 grid grid-cols-[auto_1fr] gap-x-3 text-[11px]"},ad={class:"whitespace-nowrap py-[1px] text-neutral-400 dark:text-neutral-500"},od=["title"],No=_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}=Kt();function l(C){const T=a.value?.target;return!T||T.entityType!=="agent"||T.entityId!==n.data.name?!1:T.section===C}function s(C){if(l(C))return!0;const T=n.hoveredEditTarget;return!T||T.entityType!=="agent"||T.entityId!==n.data.name?!1:T.section===C}function r(C){return{entityType:"agent",entityId:n.data.name,section:C}}const i=O(()=>n.data.type==="dual_ai"),c=O(()=>i.value?"Dual AI":"AI + Human"),d=O(()=>n.kindLabel?n.kindLabel:n.data._isSubagent?"Sub-agent":"Agent"),f=O(()=>n.accentTextClass?n.accentTextClass:n.data._isSubagent?"text-emerald-600 dark:text-emerald-400":"text-neutral-500 dark:text-neutral-400"),v=O(()=>n.data.side_a_label||"Side A"),x=O(()=>n.data.side_b_label||(i.value?"Side B":"Human")),g=O(()=>q({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})),u=O(()=>q({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})),y=O(()=>n.data._variables||[]),S=O(()=>Object.keys(n.data.env||{}).filter(C=>C.trim().length>0)),_=O(()=>{const C=new Set(y.value.map(T=>T.name));return S.value.filter(T=>C.has(T))}),M=O(()=>n.data.expose_as_tool&&n.data.tool_description?.trim()||null),k=O(()=>n.data._isSubagent&&M.value?M.value:n.data.description||null),N=O(()=>!n.data._isSubagent&&!!M.value),P=O(()=>{if(!i.value)return null;const C=n.data.max_session_turns;return typeof C!="number"?"unlimited session turns":`max ${C} session turn${C===1?"":"s"}`}),L=O(()=>{const C=[];return n.data.expose_as_tool&&!n.data._isSubagent&&C.push("tool"),P.value&&C.push(P.value),S.value.length>0&&C.push(`${S.value.length} env override${S.value.length===1?"":"s"}`),C}),ne=O(()=>!!k.value||N.value||L.value.length>0);function q(C){return[{key:"stop_on_response",label:"Stop on response",value:C.stopOnResponse?"On":"Off",active:C.stopOnResponse},{key:"stop_tool",label:"Stop tool",value:C.stopTool||"Off",active:!!C.stopTool},{key:"max_steps",label:"Max steps",value:D(C.maxSteps),active:C.maxSteps!==null&&C.maxSteps!==void 0},{key:"end_conversation",label:"End conversation tool",value:C.endConversationTool||"Off",active:!!C.endConversationTool}]}function D(C){return typeof C=="number"?String(C):"Unlimited"}return(C,T)=>(p(),$("div",{"data-canvas-node":"",class:ue(["absolute flex flex-col rounded-xl border text-neutral-900 transition-shadow select-none dark:text-neutral-100",e.borderClass,e.backgroundClass,I(gt)(e.selected,e.hovered)]),style:{width:"max-content"}},[h("div",Ri,[Q(Xe,{class:"min-w-0 flex-1",target:r("identity"),active:s("identity"),onOpen:T[1]||(T[1]=b=>o("edit-surface",b)),onHoverTarget:T[2]||(T[2]=b=>o("hover-edit-target",b))},{default:ye(()=>[h("div",Oi,[h("div",{class:ue(["flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.2em]",f.value])},[Q(I(tt),{class:"h-3 w-3"}),h("span",null,K(d.value),1),h("span",Di,K(c.value),1)],2),e.actionLabel?(p(),$("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]=Me(b=>C.$emit("action"),["stop"]))},K(e.actionLabel),1)):W("",!0)]),h("div",Bi,[h("img",{src:e.data.icon||I(na)(e.data.name),alt:"",class:"h-10 w-10 shrink-0 rounded-lg object-cover"},null,8,Vi),h("div",Ui,[h("div",Hi,K(e.data.title),1),h("div",zi,K(e.data.name),1)])]),ne.value?(p(),$("div",Fi,[L.value.length>0?(p(),$("div",ji,[(p(!0),$($e,null,Ie(L.value,b=>(p(),$("span",{key:b,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"},K(b),1))),128))])):W("",!0),k.value?(p(),$("p",Xi,K(k.value),1)):W("",!0),N.value?(p(),$("div",{key:2,class:ue(k.value?"mt-2":"")},[T[9]||(T[9]=h("div",{class:"text-[10px] font-bold uppercase tracking-[0.16em] text-neutral-400 dark:text-neutral-500"}," Tool use ",-1)),h("p",Ki,K(M.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]=b=>o("edit-surface",b)),onHoverTarget:T[4]||(T[4]=b=>o("hover-edit-target",b))},{default:ye(()=>[Q(fa,{variables:y.value,"flagged-names":_.value,"flag-label":"env"},null,8,["variables","flagged-names"])]),_:1},8,["target","active"])]),h("div",Yi,[Q(Xe,{class:"px-3 py-2",target:r("side-a"),active:s("side-a"),onOpen:T[5]||(T[5]=b=>o("edit-surface",b)),onHoverTarget:T[6]||(T[6]=b=>o("hover-edit-target",b))},{default:ye(()=>[h("div",qi,[Q(I(tt),{class:"h-3 w-3"}),pe(" "+K(v.value),1)]),h("div",Gi,K(e.data.side_a_agent_prompt),1),h("dl",Wi,[(p(!0),$($e,null,Ie(g.value,b=>(p(),$($e,{key:b.key},[h("dt",Qi,K(b.label),1),h("dd",{class:ue(["whitespace-nowrap py-[1px] text-right font-mono",b.active?"text-sky-600 dark:text-sky-400":"text-neutral-400 dark:text-neutral-600"]),title:b.value},K(b.value),11,Ji)],64))),128))])]),_:1},8,["target","active"]),T[10]||(T[10]=h("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]=b=>o("edit-surface",b)),onHoverTarget:T[8]||(T[8]=b=>o("hover-edit-target",b))},{default:ye(()=>[h("div",Zi,[(p(),ce(lt(i.value?I(tt):I(aa)),{class:"h-3 w-3"})),pe(" "+K(x.value),1)]),e.data.side_b_agent_prompt?(p(),$("div",ed,K(e.data.side_b_agent_prompt),1)):(p(),$("div",td,"No prompt")),e.data.side_b_agent_prompt?(p(),$("dl",nd,[(p(!0),$($e,null,Ie(u.value,b=>(p(),$($e,{key:b.key},[h("dt",ad,K(b.label),1),h("dd",{class:ue(["whitespace-nowrap py-[1px] text-right font-mono",b.active?"text-amber-600 dark:text-amber-400":"text-neutral-400 dark:text-neutral-600"]),title:b.value},K(b.value),11,od)],64))),128))])):W("",!0)]),_:1},8,["target","active"])])],2))}}),rd=_e({__name:"AgentNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{}},emits:["select","edit-surface","hover-edit-target"],setup(e){return(t,n)=>(p(),ce(No,{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"]))}}),sd={},ld={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 id(e,t){return p(),$("svg",ld,[...t[0]||(t[0]=[h("rect",{width:"128",height:"128",rx:"6",fill:"#3178c6"},null,-1),h("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 Xt=fo(sd,[["render",id]]),dd={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ud(e,t){return p(),$("svg",dd,[...t[0]||(t[0]=[h("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[h("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"}),h("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 Po=nt({name:"lucide-file-pen-line",render:ud}),cd={class:"relative"},fd={class:"flex items-start gap-1.5"},md=["aria-label"],hd={key:1,class:"mt-0.5 inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center"},pd={class:"min-w-0 flex-1"},vd={class:"flex min-w-0 flex-wrap items-center gap-x-1.5 gap-y-1"},gd={key:0,class:"text-[12px] leading-none font-semibold text-rose-500 dark:text-rose-400","aria-label":"Required"},xd={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"},yd={key:0,class:"mt-0.5 max-w-[32rem] break-words text-[10px] leading-relaxed text-neutral-400 dark:text-neutral-500"},bd={key:0},kd=_e({__name:"DataTreeRow",props:{node:{},depth:{},collapsed:{}},emits:["toggle"],setup(e,{emit:t}){const n=e,o=t,a=O(()=>(n.node.children?.length??0)>0),l=O(()=>a.value?!n.collapsed.has(n.node.id):!1),s=O(()=>({paddingLeft:`${n.depth*20}px`})),r=O(()=>n.depth===0);return(i,c)=>{const d=At("DataTreeRow",!0);return p(),$("div",cd,[h("div",{style:De(s.value),class:"py-1.5"},[h("div",fd,[a.value?(p(),$("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:c[0]||(c[0]=Me(f=>o("toggle",e.node.id),["stop"]))},[Q(I(yo),{class:ue(["h-3 w-3 transition-transform",l.value?"rotate-90":""])},null,8,["class"])],8,md)):(p(),$("span",hd,[...c[2]||(c[2]=[h("span",{class:"inline-block h-1.5 w-1.5 rounded-full bg-neutral-300 dark:bg-neutral-600"},null,-1)])])),h("div",pd,[h("div",vd,[h("span",{class:ue(["truncate font-mono",r.value?"text-[12px] text-neutral-900 dark:text-neutral-100":"text-[11px] text-neutral-700 dark:text-neutral-300"])},K(e.node.label),3),e.node.required?(p(),$("span",gd," * ")):W("",!0),e.node.value?(p(),$("span",xd,K(e.node.value),1)):W("",!0)]),e.node.description?(p(),$("div",yd,K(e.node.description),1)):W("",!0)])])],4),a.value&&l.value?(p(),$("div",bd,[(p(!0),$($e,null,Ie(e.node.children,f=>(p(),ce(d,{key:f.id,node:f,depth:e.depth+1,collapsed:e.collapsed,onToggle:c[1]||(c[1]=v=>o("toggle",v))},null,8,["node","depth","collapsed"]))),128))])):W("",!0),a.value&&l.value?(p(),$("div",{key:1,class:"pointer-events-none absolute bottom-0 w-px bg-neutral-200 dark:bg-neutral-800",style:De({top:"22px",left:`${e.depth*20+7}px`})},null,4)):W("",!0)])}}}),wd={key:0,class:"text-[11px] italic text-neutral-400 dark:text-neutral-600"},$d={key:1},Lo=_e({__name:"DataTreeView",props:{nodes:{},emptyLabel:{default:"No fields"}},setup(e){const t=e,n=B(new Set);function o(l,s){for(const r of l)s(r),r.children?.length&&o(r.children,s)}Pe(()=>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?(p(),$("div",wd,K(e.emptyLabel),1)):(p(),$("div",$d,[(p(!0),$($e,null,Ie(e.nodes,r=>(p(),ce(kd,{key:r.id,node:r,depth:0,collapsed:n.value,onToggle:a},null,8,["node","collapsed"]))),128))]))}});function zt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function ao(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 Md(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 Tt(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])=>Tt(r,zt(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)=>Tt(s.length===1?"items":`item ${i+1}`,zt(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,c)=>Tt(`${s} ${c+1}`,zt(i)?i:{},`${n}.${s}.${c}`,!0)));zt(t.additionalProperties)&&a.push(Tt("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(ao).join(", "),r=t.enum.length>3?", …":"";l.push(s+r)}else"const"in t&&l.push(ao(t.const));return{id:n,label:e,value:Md(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])=>Tt(o,zt(a)?a:{},`schema.${o}`,n.has(o)))}return[Tt("value",e,"schema.value",!0)]}function Td(e){const t=e.reasoning?.effort;return t==="low"||t==="medium"||t==="high"?t:"off"}function Cd(e){const t=e.reasoning?.maxTokens;return typeof t=="number"?t.toLocaleString():"—"}function Ro(e,t){const n=Td(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:Cd(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 oo(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 Oo(e){const[t,n]=await Promise.all([e.toolsCatalog?Promise.resolve(e.toolsCatalog):Qe("/tools"),e.models?Promise.resolve(e.models):Qe("/models").then(o=>Object.fromEntries(o.models.map(a=>[a.id,a])))]);return{toolsCatalog:t,models:n}}async function Sd(e,t={}){const n=await ot(e);if(!n)return null;try{const{toolsCatalog:o,models:a}=await Oo(t);return Bo(n,{toolsCatalog:o,models:a})}catch{return{prompt:n,nestedTools:[],model:null}}}async function Do(e,t={}){if(e.length===0)return[];const n=await Oo(t).catch(()=>null);return(await Promise.all(e.map(async a=>[a,await ot(a)]))).map(([a,l])=>l?n?[a,Bo(l,n)]:[a,{prompt:l,nestedTools:[],model:null}]:[a,null])}function Bo(e,t){const n=e.tools.map(a=>hs(a,t.toolsCatalog,t.models)),o=oo(e.model_id,t.models)||oo(e.model_name,t.models);return{prompt:e,nestedTools:n,model:o}}async function Vo(e){try{return(await Qe(`/agents/${encodeURIComponent(e)}`)).agent}catch{return null}}async function _d(e,t={}){const[n,o,a]=await Promise.all([e.kind==="tool"?vo(e.name):Promise.resolve(null),e.kind==="prompt"?Sd(e.name,t):Promise.resolve(null),e.kind==="handoff"?Vo(e.name):Promise.resolve(null)]);return{functionTool:n,promptTool:o,handoffAgent:a}}async function Id(e,t){const[n,o,a]=await Promise.all([Promise.all(e.functionTools.map(async l=>[l,await vo(l)])),Do(e.promptTools,t),Promise.all(e.handoffs.map(async l=>[l,await Vo(l)]))]);return{functionTools:Object.fromEntries(n),promptTools:Object.fromEntries(o),handoffs:Object.fromEntries(a)}}const Ed={class:"flex"},Ad={class:"flex min-w-0 flex-1 flex-col"},Nd={class:"flex items-start justify-between gap-4 px-5 py-3.5"},Pd={class:"min-w-0 flex-1"},Ld={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"},Rd={class:"mt-3"},Od={class:"whitespace-nowrap font-mono text-[14px] font-semibold text-neutral-900 dark:text-neutral-100"},Dd={key:0,class:"mt-1 max-w-[220px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Bd={class:"flex shrink-0 items-start gap-2"},Vd=["onKeydown"],Ud={"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"},Hd={class:"flex items-start gap-2"},zd=["src"],Fd={class:"leading-tight"},jd={class:"whitespace-nowrap text-[13px] font-semibold text-neutral-900 dark:text-neutral-100"},Xd={class:"whitespace-nowrap font-mono text-[10px] text-neutral-400 dark:text-neutral-500"},Kd={key:0,class:"group relative border-l border-neutral-200 pl-3 dark:border-neutral-800"},Yd={class:"grid shrink-0 grid-cols-2 gap-x-1.5 gap-y-1","aria-label":"Model capabilities"},qd=["aria-label"],Gd={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"},Wd={class:"grid grid-cols-[auto_1fr] items-center gap-x-2 gap-y-1 text-[11px]"},Qd={class:"flex items-center"},Jd={class:"flex min-h-0 flex-1"},Zd={class:"text-[9px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},eu={class:"mt-1 space-y-[2px] text-[11px]"},tu={class:"whitespace-nowrap text-neutral-500 dark:text-neutral-400"},nu={class:"flex min-w-0 flex-1 flex-col border-l border-neutral-200 dark:border-neutral-700"},au={class:"mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},ou={class:"flex shrink-0 min-w-[12rem] max-w-64 flex-col border-l border-neutral-200 dark:border-neutral-700"},ru={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},su={key:0,class:"mt-1.5 space-y-1"},lu={class:"flex flex-wrap items-center gap-x-1.5 gap-y-0.5"},iu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},du={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"},uu={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-fuchsia-500 dark:text-fuchsia-400"},fu={key:0,class:"mt-1.5 space-y-1"},mu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},hu={key:0,class:"mt-1 flex items-center gap-1.5 text-[10px] text-neutral-400 dark:text-neutral-500"},pu=["src"],vu={class:"font-medium text-neutral-500 dark:text-neutral-400"},gu={key:1,class:"truncate"},xu={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},yu={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-sky-500 dark:text-sky-400"},bu={key:0,class:"mt-1.5 space-y-1"},ku={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},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-emerald-500 dark:text-emerald-400"},Mu={key:0,class:"mt-1.5 space-y-1"},Tu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},Cu={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},Uo=_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:{}},emits:["select","edit-surface","hover-edit-target"],setup(e,{emit:t}){const n=e,o=t,a=O(()=>n.tools.filter(T=>T.kind==="tool"||T.kind==="provider"||T.kind==="mcp")),l=O(()=>n.tools.filter(T=>T.kind==="prompt")),s=O(()=>n.tools.filter(T=>T.kind==="subagent")),r=O(()=>n.tools.filter(T=>T.kind==="handoff")),i=O(()=>n.variables||ra(n.prompt)),c=O(()=>n.variableEnvNames||sa(n.prompt)),d=O(()=>!!n.label),f=O(()=>n.toolConfig?"Sub-prompt":"Prompt"),v=O(()=>n.modelName||n.prompt.model_name);O(()=>n.modelProvider||n.prompt.model_provider);const x=O(()=>n.modelActual||n.prompt.model_id),g=O(()=>{const T=n.modelCapabilities||{};return[{key:"images",label:"Vision",enabled:T.supportsImages===!0},{key:"tools",label:"Tool Calls",enabled:T.supportsToolCalls===!0},{key:"stream",label:"Streaming",enabled:T.supportsStreaming===!0},{key:"json",label:"JSON",enabled:T.supportsJsonMode===!0}]}),u=O(()=>!!n.modelCapabilities&&Object.keys(n.modelCapabilities).length>0),y=O(()=>ma(n.prompt.required_schema)),S=B({}),_=O(()=>Ro(n.prompt,n.toolConfig));Pe(()=>[l.value.map(T=>T.name).join(""),n.refreshEpoch??0],async()=>{const T=l.value.map(A=>A.name);if(T.length===0){S.value={};return}const b=await Do(T);S.value=Object.fromEntries(b)},{immediate:!0});function M(T){return S.value[T.name]?.model||T.resolvedModel||null}function k(T){const b=M(T);if(b)return Ve(`/api/providers/${encodeURIComponent(b.provider)}/icon?model=${encodeURIComponent(b.model)}`);const A=S.value[T.name];return A?.prompt?Ve(`/api/providers/${encodeURIComponent(A.prompt.model_provider)}/icon?model=${encodeURIComponent(A.prompt.model_id)}`):""}function N(T){const b=M(T);return b?b.name:S.value[T.name]?.prompt.model_name||T.model||null}function P(T){const b=M(T);return b?b.provider:S.value[T.name]?.prompt.model_provider||null}function L(T,b){return{entityType:"prompt",entityId:n.prompt.name,section:T,defaultToolTab:b}}const{activeSurface:ne}=Kt();function q(T,b){const A=ne.value?.target;return!(!A||A.entityType!=="prompt"||A.entityId!==n.prompt.name||A.section!==T||b!==void 0&&A.defaultToolTab!==b)}function D(T,b){if(q(T,b))return!0;const A=n.hoveredEditTarget;return!(!A||A.entityType!=="prompt"||A.entityId!==n.prompt.name||A.section!==T||b!==void 0&&A.defaultToolTab!==b)}function C(T){const b=T.currentTarget;b instanceof HTMLElement&&o("edit-surface",{target:L("prompt"),anchorEl:b})}return(T,b)=>(p(),$("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:b[18]||(b[18]=Me(A=>T.$emit("select"),["stop"])),onKeydown:[b[19]||(b[19]=Fe(Me(A=>T.$emit("select"),["prevent","stop"]),["enter"])),b[20]||(b[20]=Fe(Me(A=>T.$emit("select"),["prevent","stop"]),["space"]))],class:ue(["absolute cursor-pointer rounded-xl border bg-white transition-shadow select-none dark:bg-neutral-950",e.borderClass,I(gt)(e.selected,e.hovered)])},[h("div",Ed,[h("div",Ad,[Q(Xe,{as:"header",class:"border-b border-neutral-200 dark:border-neutral-700",target:L("basic"),active:D("basic"),onOpen:b[2]||(b[2]=A=>o("edit-surface",A)),onHoverTarget:b[3]||(b[3]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",Nd,[h("div",Pd,[h("div",{class:ue(["flex items-center gap-1.5 whitespace-nowrap text-[10px] font-bold uppercase tracking-[0.2em]",e.accentTextClass])},[Q(I(vt),{class:"h-3 w-3"}),h("span",null,K(f.value),1),d.value?(p(),$("span",Ld,K(e.label),1)):W("",!0)],2),h("div",Rd,[h("div",Od,K(e.prompt.name),1),e.prompt.tool_description?(p(),$("div",Dd,K(e.prompt.tool_description),1)):W("",!0)])]),h("div",Bd,[h("button",{type:"button",class:ue(["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",D("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:Me(C,["stop"]),onKeydown:[Fe(Me(C,["prevent","stop"]),["enter"]),Fe(Me(C,["prevent","stop"]),["space"])],onMouseenter:b[0]||(b[0]=Me(A=>o("hover-edit-target",L("prompt")),["stop"])),onMouseleave:b[1]||(b[1]=Me(A=>o("hover-edit-target",null),["stop"]))},[Q(I(Po),{class:"h-3.5 w-3.5"})],42,Vd),h("div",Ud,[h("div",Hd,[e.modelIconSrc?(p(),$("img",{key:0,src:e.modelIconSrc,alt:"",class:"mt-[3px] h-4 w-4 shrink-0 rounded-sm"},null,8,zd)):W("",!0),h("div",Fd,[h("div",jd,K(v.value),1),h("div",Xd,K(x.value),1)])]),u.value?(p(),$("div",Kd,[h("div",Yd,[(p(!0),$($e,null,Ie(g.value,A=>(p(),$("span",{key:A.key,"aria-label":`${A.label}: ${A.enabled?"supported":"not supported"}`,class:ue(["h-1.5 w-1.5 rounded-full",A.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,10,qd))),128))]),h("div",Gd,[b[21]||(b[21]=h("div",{class:"mb-1.5 text-[9px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"}," Capabilities ",-1)),h("dl",Wd,[(p(!0),$($e,null,Ie(g.value,A=>(p(),$($e,{key:A.key},[h("dt",Qd,[h("span",{class:ue(["h-1.5 w-1.5 rounded-full",A.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,2)]),h("dd",{class:ue(["whitespace-nowrap",A.enabled?"text-neutral-800 dark:text-neutral-200":"text-neutral-400 dark:text-neutral-600"])},K(A.label),3)],64))),128))])])])):W("",!0)])])])]),_:1},8,["target","active"]),h("div",Jd,[Q(Xe,{class:"shrink-0 px-5 py-3",target:L("behavior"),active:D("behavior"),onOpen:b[4]||(b[4]=A=>o("edit-surface",A)),onHoverTarget:b[5]||(b[5]=A=>o("hover-edit-target",A))},{default:ye(()=>[(p(!0),$($e,null,Ie(_.value,(A,G)=>(p(),$("div",{key:A.key,class:ue(["py-2",G>0?"border-t border-neutral-200 dark:border-neutral-700":""])},[h("div",Zd,K(A.label),1),h("dl",eu,[(p(!0),$($e,null,Ie(A.rows,Y=>(p(),$("div",{key:Y.label,class:"flex items-baseline justify-between gap-x-6"},[h("dt",tu,K(Y.label),1),Y.kind==="toggle"?(p(),$("dd",{key:0,class:ue(["whitespace-nowrap font-mono",Y.enabled?"text-emerald-600 dark:text-emerald-400":"text-neutral-400 dark:text-neutral-600"])},K(Y.enabled?"on":"off"),3)):(p(),$("dd",{key:1,class:ue(["whitespace-nowrap font-mono",Y.active?"text-neutral-800 dark:text-neutral-200":"text-neutral-400 dark:text-neutral-600"])},K(Y.value),3))]))),128))])],2))),128))]),_:1},8,["target","active"]),h("div",nu,[Q(Xe,{class:"flex-[1_1_auto] px-5 py-3",target:L("schema"),active:D("schema"),onOpen:b[6]||(b[6]=A=>o("edit-surface",A)),onHoverTarget:b[7]||(b[7]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",au,[Q(I($t),{class:"h-3 w-3"}),b[22]||(b[22]=pe(" Input schema ",-1))]),Q(Lo,{nodes:y.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:L("variables"),active:D("variables"),onOpen:b[8]||(b[8]=A=>o("edit-surface",A)),onHoverTarget:b[9]||(b[9]=A=>o("hover-edit-target",A))},{default:ye(()=>[Q(fa,{variables:i.value,"flagged-names":c.value},null,8,["variables","flagged-names"])]),_:1},8,["target","active"])])])]),h("div",ou,[Q(Xe,{"data-tool-column":"function",class:"flex-[1_1_25%] px-4 py-3",target:L("tools","functions"),active:D("tools","functions"),onOpen:b[10]||(b[10]=A=>o("edit-surface",A)),onHoverTarget:b[11]||(b[11]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",ru,[Q(Xt,{class:"h-3 w-3"}),b[23]||(b[23]=pe(" Functions ",-1))]),a.value.length>0?(p(),$("div",su,[(p(!0),$($e,null,Ie(a.value,A=>(p(),$("div",{key:A.name,class:"text-[11px]"},[h("div",lu,[h("span",iu,K(A.displayName),1),A.config.immediate?(p(),$("span",du," immediate ")):W("",!0)])]))),128))])):(p(),$("div",uu,"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:L("tools","sub-prompts"),active:D("tools","sub-prompts"),onOpen:b[12]||(b[12]=A=>o("edit-surface",A)),onHoverTarget:b[13]||(b[13]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",cu,[Q(I(vt),{class:"h-3 w-3"}),b[24]||(b[24]=pe(" Sub-prompts ",-1))]),l.value.length>0?(p(),$("div",fu,[(p(!0),$($e,null,Ie(l.value,A=>(p(),$("div",{key:A.name,class:"text-[11px]"},[h("div",mu,K(A.displayName),1),N(A)?(p(),$("div",hu,[k(A)?(p(),$("img",{key:0,src:k(A),alt:"",class:"h-3.5 w-3.5 shrink-0 rounded-sm"},null,8,pu)):W("",!0),h("span",vu,K(N(A)),1),P(A)?(p(),$("span",gu,K(P(A)),1)):W("",!0)])):W("",!0)]))),128))])):(p(),$("div",xu,"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:L("tools","handoffs"),active:D("tools","handoffs"),onOpen:b[14]||(b[14]=A=>o("edit-surface",A)),onHoverTarget:b[15]||(b[15]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",yu,[Q(I(oa),{class:"h-3 w-3"}),b[25]||(b[25]=pe(" Handoffs ",-1))]),r.value.length>0?(p(),$("div",bu,[(p(!0),$($e,null,Ie(r.value,A=>(p(),$("div",{key:A.name,class:"text-[11px]"},[h("div",ku,K(A.displayName),1)]))),128))])):(p(),$("div",wu,"None"))]),_:1},8,["target","active"]),Q(Xe,{"data-tool-column":"subagent",class:"flex-[1_1_25%] border-t border-neutral-200 px-4 py-3 dark:border-neutral-700",target:L("tools","sub-agents"),active:D("tools","sub-agents"),onOpen:b[16]||(b[16]=A=>o("edit-surface",A)),onHoverTarget:b[17]||(b[17]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",$u,[Q(I(tt),{class:"h-3 w-3"}),b[26]||(b[26]=pe(" Sub-agents ",-1))]),s.value.length>0?(p(),$("div",Mu,[(p(!0),$($e,null,Ie(s.value,A=>(p(),$("div",{key:A.name,class:"text-[11px]"},[h("div",Tu,K(A.displayName),1)]))),128))])):(p(),$("div",Cu,"None"))]),_:1},8,["target","active"])])])],34))}}),Su={class:"flex items-center gap-2.5 px-5 pt-4 pb-3"},_u={class:"text-[15px] font-semibold text-neutral-900 dark:text-neutral-100"},Iu=_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=O(()=>t.data.mode==="human"),o=O(()=>{const s=t.data.model;return s?Ve(`/api/providers/${encodeURIComponent(s.provider)}/icon?model=${encodeURIComponent(s.model)}`):t.data.prompt?Ve(`/api/providers/${encodeURIComponent(t.data.prompt.model_provider)}/icon?model=${encodeURIComponent(t.data.prompt.model_id)}`):""}),a=O(()=>t.data.id==="a"?"border-sky-500 dark:border-sky-600":"border-amber-500 dark:border-amber-600"),l=O(()=>t.data.id==="a"?"text-sky-600 dark:text-sky-400":"text-amber-600 dark:text-amber-400");return(s,r)=>n.value?(p(),$("div",{key:0,"data-canvas-node":"",role:"button",tabindex:"0",onClick:r[0]||(r[0]=Me(i=>s.$emit("select"),["stop"])),onKeydown:[r[1]||(r[1]=Fe(Me(i=>s.$emit("select"),["prevent","stop"]),["enter"])),r[2]||(r[2]=Fe(Me(i=>s.$emit("select"),["prevent","stop"]),["space"]))],class:ue(["absolute cursor-pointer rounded-xl border bg-white transition-shadow select-none dark:bg-neutral-950",a.value,I(gt)(e.selected,e.hovered)])},[h("div",Su,[Q(I(aa),{class:ue(["h-5 w-5 shrink-0",l.value])},null,8,["class"]),h("span",_u,K(e.data.label),1)]),r[6]||(r[6]=h("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)):e.data.prompt?(p(),ce(Uo,{key:1,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":o.value,"model-capabilities":e.data.model?.capabilities,"border-class":a.value,"accent-text-class":l.value,selected:e.selected,hovered:e.hovered,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,onSelect:r[3]||(r[3]=i=>s.$emit("select")),onEditSurface:r[4]||(r[4]=i=>s.$emit("edit-surface",i)),onHoverEditTarget:r[5]||(r[5]=i=>s.$emit("hover-edit-target",i))},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"])):W("",!0)}}),Eu={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Au(e,t){return p(),$("svg",Eu,[...t[0]||(t[0]=[Wr('<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 Nu=nt({name:"lucide-git-branch",render:Au}),Pu={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Lu(e,t){return p(),$("svg",Pu,[...t[0]||(t[0]=[h("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 ro=nt({name:"lucide-plug",render:Lu}),Ru={class:"border-b border-neutral-200 dark:border-neutral-700"},Ou={class:"flex items-center justify-between gap-3 px-4 pt-3 pb-1.5"},Du={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.2em] text-neutral-500 dark:text-neutral-400"},Bu={key:0,class:"flex flex-wrap items-center gap-1"},Vu={class:"flex items-start justify-between gap-5 px-4 pt-1 pb-3"},Uu={class:"min-w-0 flex-1"},Hu={class:"truncate font-mono text-[13px] font-semibold text-neutral-900 dark:text-neutral-100"},zu={key:0,class:"w-56 shrink-0 text-balance text-left text-[10.5px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Fu={key:0,class:"px-5 py-3"},ju={class:"min-w-[320px] max-w-[380px]"},Xu={class:"mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},Ku=_e({__name:"FunctionToolCard",props:{tool:{},detail:{},selected:{type:Boolean},hovered:{type:Boolean}},emits:["select"],setup(e){const t=e,n=O(()=>ma(t.detail.schema)),o=O(()=>t.detail.variables.length>0),a=O(()=>n.value.length>0),l=O(()=>{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)=>(p(),$("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:r[0]||(r[0]=Me(i=>s.$emit("select"),["stop"])),onKeydown:[r[1]||(r[1]=Fe(Me(i=>s.$emit("select"),["prevent","stop"]),["enter"])),r[2]||(r[2]=Fe(Me(i=>s.$emit("select"),["prevent","stop"]),["space"]))],class:ue(["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",I(gt)(e.selected,e.hovered)]),style:{width:"max-content"}},[h("header",Ru,[h("div",Ou,[h("div",Du,[Q(Xt,{class:"h-3 w-3"}),r[3]||(r[3]=h("span",null,"Function",-1))]),l.value.length>0?(p(),$("div",Bu,[(p(!0),$($e,null,Ie(l.value,i=>(p(),$("span",{key:i.label,class:ue(["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"])},K(i.label),3))),128))])):W("",!0)]),h("div",Vu,[h("div",Uu,[h("div",Hu,K(e.tool.displayName),1)]),e.detail.description?(p(),$("p",zu,K(e.detail.description),1)):W("",!0)])]),o.value||a.value?(p(),$("div",Fu,[h("div",ju,[o.value?(p(),ce(fa,{key:0,variables:e.detail.variables},null,8,["variables"])):W("",!0),a.value?(p(),$("div",{key:1,class:ue([o.value?"mt-3 border-t border-neutral-200 pt-3 dark:border-neutral-700":""])},[h("div",Xu,[Q(I($t),{class:"h-3 w-3"}),r[4]||(r[4]=pe(" Args ",-1))]),Q(Lo,{nodes:n.value,"empty-label":"No args"},null,8,["nodes"])],2)):W("",!0)])])):W("",!0)],34))}}),Yu={class:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.2em] opacity-60"},qu={class:"mt-1.5 truncate text-sm font-semibold text-neutral-900 dark:text-neutral-100"},Gu={key:0,class:"mt-0.5 truncate text-[11px] text-neutral-500 dark:text-neutral-400"},Wu=_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:Xt},prompt:{label:"Prompt Tool",classes:"border-fuchsia-300 bg-fuchsia-50/90 dark:border-fuchsia-700 dark:bg-fuchsia-950/30",icon:vt},subagent:{label:"Subagent",classes:"border-emerald-300 bg-emerald-50/90 dark:border-emerald-700 dark:bg-emerald-950/30",icon:Nu},handoff:{label:"Handoff",classes:"border-sky-300 bg-sky-50/90 dark:border-sky-700 dark:bg-sky-950/30",icon:oa},provider:{label:"Provider",classes:"border-amber-300 bg-amber-50/90 dark:border-amber-700 dark:bg-amber-950/30",icon:ro},mcp:{label:"MCP",classes:"border-violet-300 bg-violet-50/90 dark:border-violet-700 dark:bg-violet-950/30",icon:ro},unknown:{label:"Tool",classes:"border-neutral-300 bg-white dark:border-neutral-700 dark:bg-neutral-950",icon:sn}},l=O(()=>a[n.data.kind]||a.unknown),s=O(()=>n.data.kind==="tool"),r=O(()=>n.data.kind==="prompt"),i=O(()=>n.data.kind==="handoff"),c=O(()=>{const N=n.data.description;return N?N.length>48?N.slice(0,45)+"...":N:""}),d=B(null),f=B(null),v=B([]),x=B(null),g=B(null),u=O(()=>n.data.kind==="tool"||n.data.kind==="prompt"||n.data.kind==="handoff");let y=0;Pe(()=>[n.data.name,n.refreshEpoch??0],async()=>{const N=++y;u.value&&o("detail-loading",!0);try{const P=await _d(n.data);if(N!==y)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{N===y&&u.value&&o("detail-loading",!1)}},{immediate:!0});const S=O(()=>g.value?Ve(`/api/providers/${encodeURIComponent(g.value.provider)}/icon?model=${encodeURIComponent(g.value.model)}`):d.value?Ve(`/api/providers/${encodeURIComponent(d.value.model_provider)}/icon?model=${encodeURIComponent(d.value.model_id)}`):""),_=O(()=>g.value?.name||d.value?.model_name),M=O(()=>g.value?.provider||d.value?.model_provider),k=O(()=>g.value?.model||d.value?.model_id||null);return(N,P)=>s.value&&f.value?(p(),ce(Ku,{key:0,tool:e.data,detail:f.value,selected:e.selected,hovered:e.hovered,onSelect:P[0]||(P[0]=L=>o("select"))},null,8,["tool","detail","selected","hovered"])):r.value&&d.value?(p(),ce(Uo,{key:1,prompt:d.value,tools:v.value,"tool-config":e.data.config,variables:I(ra)(d.value),"variable-env-names":I(sa)(d.value),"model-name":_.value,"model-provider":M.value,"model-actual":k.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]=L=>o("select")),onEditSurface:P[2]||(P[2]=L=>o("edit-surface",L)),onHoverEditTarget:P[3]||(P[3]=L=>o("hover-edit-target",L)),"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?(p(),ce(No,{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]=L=>o("select")),onAction:P[5]||(P[5]=L=>o("view-agent",x.value.name)),onEditSurface:P[6]||(P[6]=L=>o("edit-surface",L)),onHoverEditTarget:P[7]||(P[7]=L=>o("hover-edit-target",L))},null,8,["data","selected","hovered","hovered-edit-target"])):(p(),$("div",{key:3,"data-canvas-node":"",role:"button",tabindex:"0",onClick:P[8]||(P[8]=Me(L=>o("select"),["stop"])),onKeydown:[P[9]||(P[9]=Fe(Me(L=>o("select"),["prevent","stop"]),["enter"])),P[10]||(P[10]=Fe(Me(L=>o("select"),["prevent","stop"]),["space"]))],class:ue(["absolute cursor-pointer rounded-xl border px-4 py-3 transition-shadow select-none",l.value.classes,I(gt)(e.selected,e.hovered)])},[h("div",Yu,[(p(),ce(lt(l.value.icon),{class:"h-3.5 w-3.5"})),pe(" "+K(l.value.label),1)]),h("div",qu,K(e.data.displayName),1),c.value?(p(),$("div",Gu,K(c.value),1)):W("",!0)],34))}}),Qu={class:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.2em] text-neutral-500 dark:text-neutral-400"},Ju={class:"mt-1.5 truncate text-sm font-medium text-neutral-900 dark:text-neutral-100"},Zu=_e({__name:"HookNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean}},emits:["select"],setup(e){return(t,n)=>(p(),$("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:n[0]||(n[0]=Me(o=>t.$emit("select"),["stop"])),onKeydown:[n[1]||(n[1]=Fe(Me(o=>t.$emit("select"),["prevent","stop"]),["enter"])),n[2]||(n[2]=Fe(Me(o=>t.$emit("select"),["prevent","stop"]),["space"]))],class:ue(["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",I(gt)(e.selected,e.hovered)])},[h("div",Qu,[Q(I(Yn),{class:"h-3.5 w-3.5"}),n[3]||(n[3]=pe(" Hook ",-1))]),h("div",Ju,K(e.data.hook),1)],34))}}),ec={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"},tc={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"},nc={"data-model-anchor":"",class:"flex items-center gap-2 px-4 pt-0.5 pb-3"},ac=["src"],oc={class:"min-w-0"},rc={class:"truncate text-[14px] font-semibold text-neutral-900 dark:text-neutral-100"},sc={key:0,class:"truncate font-mono text-[10px] text-neutral-400 dark:text-neutral-500"},lc={key:1,class:"truncate text-[10px] text-neutral-400 dark:text-neutral-500"},ic={key:0},dc={key:1,class:"text-neutral-300 dark:text-neutral-600 mx-1"},uc={key:2},cc={key:0,class:"grid grid-cols-2 border-t border-neutral-200 dark:border-neutral-700"},fc={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"},mc={class:"text-[9px] uppercase leading-tight tracking-[0.14em]"},hc={class:"mt-0.5 font-mono text-[11px] leading-tight text-neutral-600 dark:text-neutral-300"},pc={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"},vc={class:"uppercase tracking-[0.16em]"},gc={class:"min-w-0 truncate font-mono text-right"},xc=_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}=Kt(),l=O(()=>({entityType:"model",entityId:n.data.id})),s=O(()=>Ft(a.value?.target,l.value)||Ft(n.hoveredEditTarget,l.value)),r=O(()=>Ve(`/api/providers/${encodeURIComponent(n.data.provider)}/icon?model=${encodeURIComponent(n.data.model||"")}`)),i=O(()=>{const _=n.data.capabilities||{};return[{key:"images",label:"Vision",enabled:_.supportsImages===!0},{key:"tools",label:"Tool Calls",enabled:_.supportsToolCalls===!0},{key:"stream",label:"Streaming",enabled:_.supportsStreaming===!0},{key:"json",label:"JSON",enabled:_.supportsJsonMode===!0}]}),c=O(()=>n.data.providerTools||[]),d=O(()=>n.data.fallbacks||[]),f=O(()=>{const _=n.data.capabilities||{},M=[];return typeof _.maxContextTokens=="number"&&M.push({label:"Max context",value:_.maxContextTokens.toLocaleString()}),typeof _.maxOutputTokens=="number"&&M.push({label:"Max output",value:_.maxOutputTokens.toLocaleString()}),M}),v=_=>{if(_==null||Number.isNaN(_))return null;if(_===0)return"$0";const M=_>=1?_.toFixed(2):_.toFixed(4);return`$${parseFloat(M)}`},x=_=>{if(!_)return null;const M=v(_.min),k=v(_.max);return!M||!k?null:M===k?M:`${M}-${k}`},g=O(()=>{const _=n.data.pricing_range?.input;return _?x(_):v(n.data.input_price)}),u=O(()=>{const _=n.data.pricing_range?.output;return _?x(_):v(n.data.output_price)}),y=O(()=>!!(g.value||u.value)),S=O(()=>{const _=[];if(c.value.length>0){const M=c.value.slice(0,2).join(", "),k=c.value.length>2?", …":"";_.push({label:"Provider tools",value:M+k})}if(d.value.length>0){const M=d.value.slice(0,2).map(N=>N.name).join(", "),k=d.value.length>2?", …":"";_.push({label:"Fallbacks",value:M+k})}return _});return(_,M)=>(p(),ce(Xe,{"data-canvas-node":"","data-canvas-model-node":"",target:l.value,active:s.value,"edit-data":e.data,positioned:!1,class:ue(["absolute overflow-hidden rounded-xl border border-neutral-300 bg-white transition-shadow select-none dark:border-neutral-700 dark:bg-neutral-950",I(gt)(e.selected,e.hovered)]),onOpen:M[1]||(M[1]=k=>o("edit-surface",k)),onHoverTarget:M[2]||(M[2]=k=>o("hover-edit-target",k))},{default:ye(()=>[h("header",null,[h("div",ec,[Q(I(mo),{class:"h-3 w-3"}),M[3]||(M[3]=h("span",null,"Model",-1)),e.data.provider?(p(),$("span",tc,K(e.data.provider),1)):W("",!0)]),h("div",nc,[h("img",{src:r.value,alt:"",class:"h-5 w-5 shrink-0 rounded-sm",onError:M[0]||(M[0]=k=>k.target.style.visibility="hidden")},null,40,ac),h("div",oc,[h("div",rc,K(e.data.name),1),e.data.model&&e.data.model!==e.data.name?(p(),$("div",sc,K(e.data.model),1)):W("",!0),y.value?(p(),$("div",lc,[g.value?(p(),$("span",ic,[M[4]||(M[4]=h("span",{class:"text-neutral-300 dark:text-neutral-600"},"in",-1)),pe(" "+K(g.value)+"/M ",1)])):W("",!0),g.value&&u.value?(p(),$("span",dc,"·")):W("",!0),u.value?(p(),$("span",uc,[M[5]||(M[5]=h("span",{class:"text-neutral-300 dark:text-neutral-600"},"out",-1)),pe(" "+K(u.value)+"/M ",1)])):W("",!0)])):W("",!0)])])]),i.value.length>0?(p(),$("div",cc,[(p(!0),$($e,null,Ie(i.value,(k,N)=>(p(),$("div",{key:k.key,class:ue(["flex items-center gap-2 px-4 py-2",N%2===1?"border-l border-neutral-200 dark:border-neutral-700":"",N>=2?"border-t border-neutral-200 dark:border-neutral-700":""])},[h("span",{class:ue(["h-1.5 w-1.5 shrink-0 rounded-full",k.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,2),h("span",{class:ue(["text-[11px] leading-tight",k.enabled?"text-neutral-700 dark:text-neutral-300":"text-neutral-400 dark:text-neutral-500"])},K(k.label),3)],2))),128))])):W("",!0),f.value.length>0?(p(),$("div",fc,[(p(!0),$($e,null,Ie(f.value,(k,N)=>(p(),$("div",{key:k.label,class:ue(["px-4 py-2",N>0?"border-l border-neutral-200 dark:border-neutral-700":""])},[h("div",mc,K(k.label),1),h("div",hc,K(k.value),1)],2))),128))])):W("",!0),S.value.length>0?(p(),$("div",pc,[(p(!0),$($e,null,Ie(S.value,k=>(p(),$("div",{key:k.label,class:"flex items-baseline justify-between gap-3"},[h("span",vc,K(k.label),1),h("span",gc,K(k.value),1)]))),128))])):W("",!0)]),_:1},8,["target","active","edit-data","class"]))}}),yc={class:"relative flex-1 overflow-hidden bg-neutral-100/50 dark:bg-neutral-950/50"},bc=["aria-label","onClick","onKeydown"],kc={class:"pointer-events-none absolute inset-0 h-full w-full","aria-hidden":"true"},wc=["id"],$c=["fill"],Mc={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"},Tc={class:"text-[10px] font-semibold uppercase tracking-wider text-neutral-600 dark:text-neutral-300"},Cc={key:0,class:"absolute inset-0 z-10 flex items-center justify-center bg-neutral-100 dark:bg-neutral-950"},Sc={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"},_c={key:1,class:"absolute inset-0 flex flex-col items-center justify-center gap-3 text-neutral-400 dark:text-neutral-600"},Ic=_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=B(null),l=B(new Set);Pe(()=>n.layout.nodes.map(ee=>ee.id).join(","),ee=>{const Z=new Set(ee?ee.split(","):[]);l.value=new Set([...l.value].filter(m=>Z.has(m)))},{immediate:!0});function s(ee,Z){const m=new Set(l.value);Z?m.add(ee):m.delete(ee),l.value=m}const r=O(()=>l.value.size>0),i=B(!1),{state:c,isPanning:d,transformStyle:f,scalePercent:v,onWheel:x,onPointerDown:g,onPointerMove:u,onPointerUp:y,shouldHandleClick:S,zoomIn:_,zoomOut:M,fitToView:k,resetAutoFitLock:N,focusNode:P,setContentBounds:L,saveViewport:ne,restoreViewport:q}=Pl(a,{maxScale:1.2,panPadding:40});Pe(c,()=>os(),{deep:!0,flush:"post"}),Pa(ee=>{const Z=a.value;Z&&(Z.addEventListener("wheel",x,{passive:!1}),ee(()=>Z.removeEventListener("wheel",x)))}),Qr(()=>{a.value?.removeEventListener("wheel",x)});const D=Ln(n,"layout"),C=Ln(n,"loading"),T=Ln(n,"selectedNodeId"),{layoutStable:b,measurements:A,nodesWithMeasuredSizes:G,nodeMetrics:Y,measureNode:H,measuredBounds:E}=El(D,C,ee=>k(ee,{force:!1}),ee=>o("nodes-measured",ee),N);Pe(()=>n.loading,ee=>{ee&&(i.value=!1)}),Pe([b,r],([ee,Z])=>{ee&&!Z&&(i.value=!0)},{immediate:!0});const F=O(()=>Ll({hasAgent:n.hasAgent,hasError:!!n.error,loadingComposition:n.loading,layoutStable:b.value,loadingAsyncDetail:r.value,hasRevealedStableDiagram:i.value}));function j(ee,Z){if(Z instanceof HTMLElement){H(ee,Z);return}if(!Z||typeof Z!="object"||!("$el"in Z))return;const m=Z.$el;m instanceof HTMLElement&&H(ee,m)}Pa(()=>{if(!n.hasAgent||n.layout.nodes.length===0){L(null);return}L(E())});function X(ee){if(ee.type==="agent"||ee.type==="side"||ee.type==="model")return!0;if(ee.type!=="tool")return!1;const Z=ee.data.kind;return Z==="prompt"||Z==="handoff"}const he=O(()=>{const ee=n.hoveredNodeId;if(!ee)return null;const Z=n.layout.nodes.find(w=>w.id===ee);if(!Z||!X(Z))return null;const m=new Set([ee]);for(const w of n.layout.edges)w.from===ee&&m.add(w.to),w.to===ee&&m.add(w.from);return m});function se(ee){const Z=he.value;return Z?Z.has(ee)?{}:{opacity:"0.25",transition:"opacity 120ms ease-out"}:{}}function fe(ee){const Z=he.value;if(!Z)return!0;const m=n.layout.groups.find(w=>w.id===ee);if(!m)return!0;for(const w of n.layout.nodes)if(Z.has(w.id)&&w.x>=m.x&&w.y>=m.y&&w.x+w.width<=m.x+m.width&&w.y+w.height<=m.y+m.height)return!0;return!1}const{handleCanvasClick:z,handleGroupClick:U,handleNodeSelect:J}=Al({containerRef:a,layout:D,selectedNodeId:T,layoutStable:b,measurements:A,viewportState:c,shouldHandleClick:S,focusNode:P,saveViewport:ne,restoreViewport:q,onSelectNode:ee=>o("select-node",ee),onDeselect:()=>o("deselect")});function le(ee,Z){o("open-edit-surface",{...Z,node:ee})}function ie(ee,Z){o("hover-node",ee.id,Z)}function ve(ee,Z){ee.key!=="Enter"&&ee.key!==" "||(ee.preventDefault(),ee.stopPropagation(),U(ee,Z))}return(ee,Z)=>(p(),$("div",yc,[h("div",{ref_key:"containerRef",ref:a,class:ue(["absolute inset-0",I(d)?"cursor-grabbing":"cursor-grab"]),onPointerdown:Z[6]||(Z[6]=(...m)=>I(g)&&I(g)(...m)),onPointermove:Z[7]||(Z[7]=(...m)=>I(u)&&I(u)(...m)),onPointerup:Z[8]||(Z[8]=(...m)=>I(y)&&I(y)(...m)),onPointercancel:Z[9]||(Z[9]=(...m)=>I(y)&&I(y)(...m)),onClick:Z[10]||(Z[10]=(...m)=>I(z)&&I(z)(...m))},[Q(Ol),h("div",{class:"absolute origin-top-left will-change-transform",style:De({...I(f),opacity:I(b)?1:0,transition:I(b)?"opacity 200ms ease-out":"none",pointerEvents:I(b)?"auto":"none"})},[(p(!0),$($e,null,Ie(e.layout.groups,m=>(p(),$($e,{key:m.id},[m.subagent?.multiInstance?(p(),$("div",{key:0,class:"absolute border border-neutral-200/40 bg-[#f3f3f3] dark:border-neutral-700/25 dark:bg-[#1a1a1a]",style:De({left:`${m.x+6}px`,top:`${m.y+6}px`,width:`${m.width}px`,height:`${m.height}px`,borderRadius:"8px"})},null,4)):W("",!0),m.subagent?.multiInstance?(p(),$("div",{key:1,class:"absolute border border-neutral-200/50 bg-[#f5f5f5] dark:border-neutral-700/35 dark:bg-[#1c1c1c]",style:De({left:`${m.x+3}px`,top:`${m.y+3}px`,width:`${m.width}px`,height:`${m.height}px`,borderRadius:"8px"})},null,4)):W("",!0),h("div",{"data-canvas-group":"",class:"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]",role:"button",tabindex:"0","aria-label":`Focus ${m.label}`,onClick:Me(w=>I(U)(w,m),["stop"]),onKeydown:w=>ve(w,m),style:De({left:`${m.x}px`,top:`${m.y}px`,width:`${m.width}px`,height:`${m.height}px`,borderRadius:"8px",opacity:fe(m.id)?1:.3})},[(p(),$("svg",kc,[h("defs",null,[h("pattern",{id:"subgrid-"+m.id,x:"0",y:"0",width:"20",height:"20",patternUnits:"userSpaceOnUse"},[...Z[12]||(Z[12]=[h("circle",{cx:"10",cy:"10",r:"0.75",class:"fill-neutral-400/15 dark:fill-neutral-500/15"},null,-1)])],8,wc)]),h("rect",{width:"100%",height:"100%",fill:`url(#subgrid-${m.id})`},null,8,$c)])),h("div",Mc,[h("span",Tc,K(m.label),1),m.subagent?(p(),$($e,{key:0},[h("span",{class:ue(["inline-flex items-center rounded-full px-1.5 py-px text-[9px] font-medium",m.subagent.resumable?"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"])},K(m.subagent.resumable?"Resumable":"Blocking"),3),h("span",{class:ue(["inline-flex items-center rounded-full px-1.5 py-px text-[9px] font-medium",m.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"])},K(m.subagent.multiInstance?"Multi":"Single"),3)],64)):W("",!0)])],44,bc)],64))),128)),e.layout.nodes.length>0?(p(),ce(yi,{key:0,nodes:I(G),edges:e.layout.edges,groups:e.layout.groups,"node-metrics":I(Y),"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),(p(!0),$($e,null,Ie(e.layout.nodes,m=>(p(),$($e,{key:m.id},[m.type==="agent"?(p(),ce(rd,{key:0,ref_for:!0,ref:w=>j(m.id,w),"data-canvas-node-id":m.id,data:m.data,selected:e.selectedNodeId===m.id,hovered:e.hoveredNodeId===m.id,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,style:De({left:`${m.x}px`,top:`${m.y}px`,width:"max-content",minWidth:`${m.width}px`,...se(m.id)}),onSelect:w=>I(J)(m),onEditSurface:w=>le(m,w),onHoverEditTarget:w=>ie(m,w),onMouseenter:w=>o("hover-node",m.id),onMouseleave:Z[0]||(Z[0]=w=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","refresh-epoch","style","onSelect","onEditSurface","onHoverEditTarget","onMouseenter"])):m.type==="side"?(p(),ce(Iu,{key:1,ref_for:!0,ref:w=>j(m.id,w),"data-canvas-node-id":m.id,data:m.data,selected:e.selectedNodeId===m.id,hovered:e.hoveredNodeId===m.id,"hovered-edit-target":e.hoveredEditTarget,style:De({left:`${m.x}px`,top:`${m.y}px`,width:"max-content",minWidth:`${m.width}px`,...se(m.id)}),onSelect:w=>I(J)(m),onEditSurface:w=>le(m,w),onHoverEditTarget:w=>ie(m,w),onMouseenter:w=>o("hover-node",m.id),onMouseleave:Z[1]||(Z[1]=w=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","style","onSelect","onEditSurface","onHoverEditTarget","onMouseenter"])):m.type==="tool"?(p(),ce(Wu,{key:2,ref_for:!0,ref:w=>j(m.id,w),"data-canvas-node-id":m.id,data:m.data,selected:e.selectedNodeId===m.id,hovered:e.hoveredNodeId===m.id,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,style:De(m.data.kind==="tool"?{left:`${m.x}px`,top:`${m.y}px`,width:"max-content",minWidth:`${m.width}px`,...se(m.id)}:["prompt","handoff"].includes(m.data.kind)?{left:`${m.x}px`,top:`${m.y}px`,width:"max-content",minWidth:`${m.width}px`,...se(m.id)}:{left:`${m.x}px`,top:`${m.y}px`,width:`${m.width}px`,height:`${m.height}px`,...se(m.id)}),onSelect:w=>I(J)(m),onEditSurface:w=>le(m,w),onHoverEditTarget:w=>ie(m,w),onViewAgent:Z[2]||(Z[2]=w=>o("view-agent",w)),onDetailLoading:w=>s(m.id,w),onMouseenter:w=>o("hover-node",m.id),onMouseleave:Z[3]||(Z[3]=w=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","refresh-epoch","style","onSelect","onEditSurface","onHoverEditTarget","onDetailLoading","onMouseenter"])):m.type==="hook"?(p(),ce(Zu,{key:3,"data-canvas-node-id":m.id,data:m.data,selected:e.selectedNodeId===m.id,hovered:e.hoveredNodeId===m.id,style:De({left:`${m.x}px`,top:`${m.y}px`,width:`${m.width}px`,height:`${m.height}px`,...se(m.id)}),onSelect:w=>I(J)(m),onMouseenter:w=>o("hover-node",m.id),onMouseleave:Z[4]||(Z[4]=w=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","style","onSelect","onMouseenter"])):m.type==="model"?(p(),ce(xc,{key:4,ref_for:!0,ref:w=>j(m.id,w),"data-canvas-node-id":m.id,data:m.data,selected:e.selectedNodeId===m.id,hovered:e.hoveredNodeId===m.id,"hovered-edit-target":e.hoveredEditTarget,style:De({left:`${m.x}px`,top:`${m.y}px`,width:`${m.width}px`,minHeight:`${m.height}px`,...se(m.id)}),onSelect:w=>I(J)(m),onEditSurface:w=>le(m,w),onHoverEditTarget:w=>ie(m,w),onMouseenter:w=>o("hover-node",m.id),onMouseleave:Z[5]||(Z[5]=w=>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===m.id?(p(),$("div",{key:5,class:"absolute flex items-center justify-center rounded-xl bg-white/70 dark:bg-neutral-950/70",style:De({left:`${m.x}px`,top:`${m.y}px`,width:`${I(A).get(m.id)?.w??m.width}px`,height:`${I(A).get(m.id)?.h??m.height}px`})},[...Z[13]||(Z[13]=[h("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(io,{"leave-active-class":"transition-opacity duration-200 ease-out","leave-to-class":"opacity-0"},{default:ye(()=>[F.value?(p(),$("div",Cc,[...Z[14]||(Z[14]=[h("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"},[h("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"}),pe(" Preparing diagram ")],-1)])])):W("",!0)]),_:1}),e.error?(p(),$("div",Sc,K(e.error),1)):W("",!0),!e.hasAgent&&!e.loading&&!e.error?(p(),$("div",_c,[Q(I(ho),{class:"h-12 w-12 opacity-40"}),Z[15]||(Z[15]=h("div",{class:"text-sm"},"Select an agent to view its composition",-1))])):W("",!0),e.hasAgent&&I(b)?(p(),ce(_i,{key:2,"scale-percent":I(v),onZoomIn:I(_),onZoomOut:I(M),onFitView:Z[11]||(Z[11]=m=>I(k)(I(E)(),{force:!0}))},null,8,["scale-percent","onZoomIn","onZoomOut"])):W("",!0)]))}}),Ec=_e({__name:"InspectorPanel",props:{node:{},compositionSummary:{}},emits:["saved","close"],setup(e,{emit:t}){const n=e,o=t,a=B("inspect"),l=B(null),s=B(null),r=B(null),i=B(null),{saving:c,apiError:d,saveAgent:f,clearAgentError:v}=po(),{saving:x,apiError:g,savePrompt:u,clearPromptError:y}=rs(),{saving:S,apiError:_,saveModel:M,clearModelError:k}=ss(),N=O(()=>c.value||x.value||S.value),P=O(()=>a.value==="edit-prompt"?g.value:a.value==="edit-model"?_.value:d.value);function L(T){return T?.id||T?.name||null}Pe(()=>n.node,T=>{if(v(),y(),k(),!T){a.value="inspect",l.value=null;return}if(T.type==="agent")l.value=T.value,a.value="edit-agent";else if(T.type==="side"){const b=T.value;b.prompt?(l.value=b.prompt,a.value="edit-prompt"):(a.value="inspect",l.value=null)}else T.type==="model"?(l.value=T.value,a.value="edit-model"):(a.value="inspect",l.value=null)});async function ne(T){(await f({mode:"edit",data:T,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(T){const b=L(l.value);(await u({mode:"edit",data:T,editingId:b,formNode:r.value?.formNode})).ok&&(a.value="inspect",l.value=null,o("saved"))}async function D(T){const b=L(l.value);(await M({mode:"edit",data:T,editingId:b,formNode:i.value?.formNode})).ok&&(a.value="inspect",l.value=null,o("saved"))}function C(){a.value="inspect",l.value=null,v(),y(),k(),o("close")}return(T,b)=>(p(),$("div",null,[a.value==="edit-agent"?(p(),ce(go,{key:0,ref_key:"agentModalRef",ref:s,"model-value":!0,"edit-agent":l.value,mode:"edit",saving:N.value,"api-error":P.value,onSave:ne,"onUpdate:modelValue":C},null,8,["edit-agent","saving","api-error"])):W("",!0),a.value==="edit-prompt"?(p(),ce(ys,{key:1,ref_key:"promptModalRef",ref:r,"model-value":!0,"edit-prompt":l.value,mode:"edit",saving:N.value,onSave:q,"onUpdate:modelValue":C},null,8,["edit-prompt","saving"])):W("",!0),a.value==="edit-model"?(p(),ce(bs,{key:2,ref_key:"modelModalRef",ref:i,"model-value":!0,"edit-model":l.value,mode:"edit",saving:N.value,onSave:D,"onUpdate:modelValue":C},null,8,["edit-model","saving"])):W("",!0)]))}}),Ac={class:"relative"},Nc={key:1,class:"mt-[2px] inline-block h-3 w-3 shrink-0"},Pc=["src"],Lc={class:"min-w-0 flex-1"},Rc={class:"flex min-w-0 items-start gap-2"},Oc={key:0,class:"mt-[1px] shrink-0 text-[11px] leading-none font-semibold text-rose-500 dark:text-rose-400","aria-label":"Required"},Dc=["onKeydown"],Bc={key:2,class:"ml-auto shrink-0 truncate pl-2 text-[10px] text-neutral-400 dark:text-neutral-500",style:{"max-width":"35%"}},Vc={key:0,class:"mt-1 flex flex-wrap gap-1"},Uc={key:2,class:"mt-1 grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-[10.5px]"},Hc={class:"truncate text-neutral-400 dark:text-neutral-500"},zc={key:0,class:"relative"},Fc=10,jc=_e({__name:"StructureTreeRow",props:{node:{},depth:{},collapsed:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{},hoveredEditTarget:{},inheritedEditSurface:{},inheritedAnchorEl:{}},emits:["select","edit","hover","toggle"],setup(e,{emit:t}){const n={tool:Xt,prompt:vt,subagent:tt,handoff:oa,provider:$t,mcp:$t,unknown:sn},o={agent:tt,side:tt,prompt:vt,model:mo,variables:Jn,variable:Jn,hooks:Yn,hook:Yn,tools:sn,tool:Xt,subagent:tt,config:Oa,section:Oa,schema:$t},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:c}=Kt(),d=B(null),f=B(!1),v=O(()=>r.node.editSurface??r.inheritedEditSurface??null),x=O(()=>r.node.editSurface?d.value:r.inheritedAnchorEl??null),g=O(()=>{const z=r.node.editSurface;return z?.entityType!=="prompt"||r.node.kind!=="prompt"&&r.node.toolKind!=="prompt"?null:{entityType:"prompt",entityId:z.entityId,section:"prompt"}}),u=O(()=>!!r.node.children&&r.node.children.length>0),y=O(()=>u.value||r.node.collapsibleBody===!0),S=O(()=>!!r.node.isRoot),_=O(()=>S.value?!0:!r.collapsed.has(r.node.id)),M=O(()=>r.selectedCanvasNodeId===r.node.canvasNodeId);function k(z){if(!z)return!1;const U=[...r.node.children||[]];for(;U.length>0;){const J=U.pop();if(J.cardBacked===!0&&J.canvasNodeId===z)return!0;J.children?.length&&U.push(...J.children)}return!1}const N=O(()=>d.value&&c.value?.anchorEl===d.value?!0:!r.node.editSurface||r.node.anchorOnlyEditSurface?!1:Ft(r.node.editSurface,c.value?.target)?!0:c.value?!1:r.node.cardBacked===!0&&M.value&&!k(r.selectedCanvasNodeId)),P=O(()=>c.value||r.node.anchorOnlyEditSurface?!1:Ft(r.node.editSurface,r.hoveredEditTarget)?!0:r.hoveredEditTarget?!1:r.node.cardBacked===!0&&r.hoveredCanvasNodeId===r.node.canvasNodeId&&!k(r.hoveredCanvasNodeId??null)),L=O(()=>Ft(c.value?.target,g.value)),ne=O(()=>S.value?0:Math.max(0,r.depth-1)),q=O(()=>ne.value*Fc),D=O(()=>{const z=r.node;return(z.kind==="tools"||z.kind==="tool")&&z.toolKind?n[z.toolKind]||sn:z.kind==="side"&&z.detail==="Human"?aa:o[z.kind]||$t}),C=O(()=>{const z=r.node;return z.kind!=="agent"&&z.kind!=="subagent"?null:z.avatarSrc?z.avatarSrc:z.avatarSeed?na(z.avatarSeed):null}),T=O(()=>{const z=r.node;return z.kind==="agent"?"text-neutral-700 dark:text-neutral-200":z.kind==="side"?z.id.endsWith("side-a")?"text-sky-600 dark:text-sky-400":"text-amber-600 dark:text-amber-400":z.kind==="prompt"&&z.tone?s[z.tone]:z.kind==="prompt"||z.kind==="model"?"text-neutral-500 dark:text-neutral-400":z.kind==="subagent"?"text-emerald-600 dark:text-emerald-400":z.kind==="hook"||z.kind==="hooks"?"text-neutral-500 dark:text-neutral-400":(z.kind==="tool"||z.kind==="tools")&&z.toolKind?a[z.toolKind]||"text-neutral-500":"text-neutral-500 dark:text-neutral-400"}),b=O(()=>{const z=r.node;return z.kind==="agent"||z.kind==="subagent"||z.kind==="tool"&&z.toolKind==="handoff"}),A=O(()=>{const z=["group relative flex items-start gap-1.5 px-2 cursor-pointer select-none transition-colors"];return z.push(b.value?"py-[6px] text-[12.5px]":"py-[4px]"),b.value&&z.push("relative z-[1] structure-row-agent-bg"),N.value?z.push("rounded-r-md structure-row-active"):P.value?z.push("rounded-md structure-row-hover"):b.value?z.push("rounded-md"):z.push("rounded-md agents-surface-hover"),r.node.virtual&&!M.value&&!N.value&&z.push("text-neutral-600 dark:text-neutral-400"),z.join(" ")}),G=O(()=>{const z=r.node,U=["truncate"],J=z.kind==="tool"&&z.toolKind==="handoff",le=z.kind==="variable"||z.kind==="schema"&&z.hideIcon===!0||z.kind==="tool"&&!J;return z.cardBacked?U.push(le?"font-semibold text-neutral-900 dark:text-neutral-50":"font-medium text-neutral-900 dark:text-neutral-50"):U.push("font-normal text-neutral-700 dark:text-neutral-300"),le&&U.push("font-mono text-[11.5px]"),U.join(" ")});function Y(z){return["rounded px-1.5 py-px text-[9px] font-semibold lowercase tracking-wide",z.mono?"font-mono":"",l[z.tone||"neutral"]].join(" ")}function H(z){return z.active===!1?"text-neutral-400 dark:text-neutral-600":s[z.tone||"neutral"]||s.neutral}function E(z){z.stopPropagation(),!S.value&&i("toggle",r.node.id)}function F(z){z.stopPropagation(),j()}function j(){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&&y.value&&!_.value&&i("toggle",r.node.id)}function X(z){z.key!=="Enter"&&z.key!==" "||(z.preventDefault(),z.stopPropagation(),j())}function he(z){z.button===0&&(!v.value||!x.value||(z.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(z){z.stopPropagation();const U=g.value,J=z.currentTarget;!U||!(J instanceof HTMLElement)||i("edit",U,J,r.node.canvasNodeId,r.node.editData)}return(z,U)=>{const J=At("StructureTreeRow",!0),le=Jr("auto-animate");return p(),$("div",Ac,[h("div",{class:"mx-1",style:De({paddingLeft:`${q.value}px`})},[N.value?(p(),$("div",{key:0,class:ue(["pointer-events-none absolute bottom-0 top-0 z-[2] w-px bg-accent-500"]),style:De({left:`${q.value+5}px`})},null,4)):W("",!0),h("div",{ref_key:"rowRef",ref:d,class:ue(A.value),role:"button",tabindex:"0",onClick:F,onKeydown:X,onPointerdown:he,onMouseenter:se},[y.value&&!S.value?(p(),ce(I(yo),{key:0,class:ue(["mt-[2px] h-3 w-3 shrink-0 text-neutral-400 transition-transform",_.value?"rotate-90":""]),onClick:E},null,8,["class"])):S.value?W("",!0):(p(),$("span",Nc)),C.value?(p(),$("img",{key:2,src:C.value,alt:"",class:"mt-[1px] h-4 w-4 shrink-0 rounded object-cover"},null,8,Pc)):e.node.hideIcon?W("",!0):(p(),ce(lt(D.value),{key:3,class:ue(["mt-[1px] h-3.5 w-3.5 shrink-0",T.value])},null,8,["class"])),h("div",Lc,[h("div",Rc,[h("span",{class:ue(G.value)},K(e.node.label),3),e.node.required?(p(),$("span",Oc," * ")):W("",!0),g.value?(p(),ce(I(ls),{key:1,content:"Edit prompt text",position:"right",disabled:L.value},{default:ye(()=>[h("button",{type:"button",class:ue(["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",L.value?"text-accent-700 dark:text-accent-300":""]),"aria-label":"Edit prompt text",onClick:fe,onPointerdown:U[0]||(U[0]=Me(()=>{},["stop"])),onKeydown:[Fe(Me(fe,["prevent","stop"]),["enter"]),Fe(Me(fe,["prevent","stop"]),["space"])],onMouseenter:U[1]||(U[1]=Me(ie=>i("hover",e.node.canvasNodeId,g.value),["stop"])),onMouseleave:U[2]||(U[2]=Me(ie=>i("hover",e.node.canvasNodeId,v.value),["stop"]))},[Q(I(Po),{class:"h-3.5 w-3.5"})],42,Dc)]),_:1},8,["disabled"])):W("",!0),e.node.detail?(p(),$("span",Bc,K(e.node.detail),1)):W("",!0)]),(!e.node.collapsibleBody||_.value)&&e.node.badges&&e.node.badges.length>0?(p(),$("div",Vc,[(p(!0),$($e,null,Ie(e.node.badges,ie=>(p(),$("span",{key:ie.label,class:ue(Y(ie))},K(ie.label),3))),128))])):W("",!0),(!e.node.collapsibleBody||_.value)&&e.node.description?(p(),$("div",{key:1,class:ue(["mt-1 text-[10.5px] leading-relaxed text-neutral-500 dark:text-neutral-400",e.node.virtual&&!M.value?"opacity-90":""])},K(e.node.description),3)):W("",!0),(!e.node.collapsibleBody||_.value)&&e.node.metaRows&&e.node.metaRows.length>0?(p(),$("dl",Uc,[(p(!0),$($e,null,Ie(e.node.metaRows,ie=>(p(),$($e,{key:ie.label},[h("dt",Hc,K(ie.label),1),h("dd",{class:ue(["truncate text-right",ie.mono!==!1?"font-mono":"",H(ie)])},K(ie.value),3)],64))),128))])):W("",!0)])],34)],4),u.value?Zr((p(),$("div",zc,[_.value?(p(!0),$($e,{key:0},Ie(e.node.children,ie=>(p(),ce(J,{key:ie.id,node:ie,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:U[3]||(U[3]=ve=>i("select",ve)),onEdit:U[4]||(U[4]=(ve,ee,Z,m)=>i("edit",ve,ee,Z,m)),onHover:U[5]||(U[5]=(ve,ee)=>i("hover",ve,ee)),onToggle:U[6]||(U[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),_.value&&!S.value?(p(),$("div",{key:1,class:"pointer-events-none absolute bottom-0 top-0 w-px bg-neutral-200 dark:bg-neutral-800",style:De({left:`${q.value+14}px`})},null,4)):W("",!0)])),[[le,{duration:60,easing:"ease-out"}]]):W("",!0)])}}});function Xc(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 Kc={class:"structure-tree flex h-full flex-col overflow-hidden border-r border-neutral-200 dark:border-neutral-800"},Yc={key:0,class:"px-3 py-4 text-xs text-neutral-400 dark:text-neutral-500"},qc=_e({__name:"StructureTree",props:{root:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{},hoveredEditTarget:{}},emits:["select","edit","hover"],setup(e,{emit:t}){const n=e,o=t,a=B(new Set),l=B(null),s=B(new Set);function r(d){return Xc(d,a.value,s.value)}Pe(()=>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 c=O(()=>!!n.root);return(d,f)=>(p(),$("div",Kc,[h("div",{class:"flex-1 overflow-y-auto py-1.5 text-[12px]",onMouseleave:f[3]||(f[3]=v=>o("hover",null,null))},[c.value?(p(),ce(jc,{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,u)=>o("edit",v,x,g,u)),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"])):(p(),$("div",Yc," Select an agent to view its structure. "))],32)]))}});function Ke(e,t,n){return{entityType:"prompt",entityId:e,section:t,defaultToolTab:n}}function gn(e,t){return{entityType:"agent",entityId:e,section:t}}function Gc(e){return{entityType:"model",entityId:e.id}}function Wc(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 Ho(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?Ho(o.children,t,`${n}${o.id}__`):void 0}))}function ha(e,t,n,o){const a=ma(e);return{id:`${n}schema`,kind:"schema",label:"Input schema",detail:a.length>0?`${Wc(a)}`:"None",canvasNodeId:t,virtual:!0,editSurface:o,defaultCollapsed:a.length>0,children:a.length>0?Ho(a,t,`${n}schema__`):void 0}}function zo(e){const t=[];if(e.expose_as_tool&&t.push({label:"tool",tone:"neutral",mono:!0}),e.type==="dual_ai"){const o=e.max_session_turns;t.push({label:typeof o=="number"?`max ${o} session turn${o===1?"":"s"}`:"unlimited session turns",tone:"neutral",mono:!0})}const n=Object.keys(e.env||{}).filter(o=>o.trim().length>0);return n.length>0&&t.push({label:`${n.length} env override${n.length===1?"":"s"}`,tone:"sky",mono:!0}),t}function kn(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 Fo(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 wt(e){const t=[];return 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}),t}function jo(e,t,n,o,a){const l=Ke(o,"behavior"),s=Ro(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(Qc)}));return{id:`${n}config`,kind:"config",label:"Prompt Config",canvasNodeId:t,virtual:!0,editSurface:l,defaultCollapsed:!0,children:s}}function Qc(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 Xo(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(", "),c=e.model.providerTools.length>2?", …":"";l.push({label:"Provider tools",value:i+c,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?To(t,e.model.id):n,virtual:!e.model,cardBacked:!!e.model,editSurface:e.model?Gc(e.model):a,editData:e.model||void 0}}function Jc(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 Zc(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"},{key:"subagent",label:"Sub-agents"}].map(({key:r,label:i})=>{const c=a[r]||[],d=r==="prompt"?"sub-prompts":r==="handoff"?"handoffs":r==="subagent"?"sub-agents":"functions";return{id:`${n}group-${r}`,kind:"tools",toolKind:r,label:i,detail:`${c.length}`,canvasNodeId:t,virtual:!0,editSurface:Ke(o,"tools",d),children:c.length>0?c.map((f,v)=>({id:`${n}${r}-${v}-${f.name}`,kind:f.kind==="subagent"?"subagent":"tool",label:f.displayName||f.name,detail:f.kind==="prompt"&&(f.resolvedModel?.name||f.model)||void 0,badges:wt(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 ef(e,t,n){const o=[],a=ha(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(kn(e.variables,t,`${n}detail__`)),o}function tf(e,t,n,o,a){const l=[],s=t.prompt.name,r=Ke(s,"basic"),i=Xo({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(jo(t.prompt,n,`${a}prompt__`,s,e.config)),l.push(ha(t.prompt.required_schema,n,`${a}prompt__`,Ke(s,"schema"))),l.push(kn(ra(t.prompt),n,`${a}prompt__`,sa(t.prompt),Ke(s,"variables"))),l.push(...Zc(t.nestedTools,n,`${a}prompt__`,s));const c=Fo(t.prompt.hooks.map(d=>({id:d,hook:d})),n,`${a}prompt__`);return c&&l.push(c),l}function nf(e,t,n){return[{id:"a",label:e.side_a_label||"Side A",promptName:e.side_a_agent_prompt,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",label:e.side_b_label||(e.type==="dual_ai"?"Side B":"Human"),promptName:e.side_b_agent_prompt,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.promptName||"No prompt",canvasNodeId:t,virtual:!0,editSurface:gn(e.name,a.id==="a"?"side-a":"side-b"),metaRows: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 af(e,t,n,o,a,l,s){if(!e.prompt)return null;const r=e.prompt.name,i=`${l}prompt__`,c=[],d=Ke(r,"basic"),f=Ke(r,"schema"),v=Ke(r,"variables"),x=Ke(r,"tools"),g=Xo({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&&c.push(g),c.push(jo(e.prompt,a,i,r)),c.push(ha(e.prompt.required_schema,a,i,f)),c.push(kn(e.variables,a,i,e.variableEnvNames||[],v));const u={};for(const M of e.tools){const k=M.kind==="provider"||M.kind==="mcp"?"tool":M.kind;(u[k]||=[]).push(M)}const y=new Map;e.tools.forEach((M,k)=>y.set(M,k));const S=[{key:"tool",label:"Functions"},{key:"prompt",label:"Sub-prompts"},{key:"handoff",label:"Handoffs"},{key:"subagent",label:"Sub-agents"}];c.push({id:`${i}tools`,kind:"tools",label:"Tools",detail:`${e.tools.length}`,canvasNodeId:a,virtual:!0,editSurface:x,children:S.map(({key:M,label:k})=>{const N=u[M]||[],P=M==="prompt"?"sub-prompts":M==="handoff"?"handoffs":M==="subagent"?"sub-agents":"functions";return{id:`${i}group-${M}`,kind:"tools",toolKind:M,label:k,detail:`${N.length}`,canvasNodeId:a,virtual:!0,editSurface:Ke(r,"tools",P),children:N.length>0?N.map(L=>of(i,n,o,e,L,y.get(L),r,t,s)):void 0}})});const _=Fo(e.hooks,a,i);return _&&c.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:c}}function of(e,t,n,o,a,l,s,r,i){const d=a.kind==="subagent"||a.kind==="handoff"||a.kind==="prompt"?ln(t,o.id,l):ia(t,o.id),f=`${e}tool-${o.id}-${l}-${a.name}`,v=a.kind==="prompt"?"sub-prompts":a.kind==="handoff"?"handoffs":a.kind==="subagent"?"sub-agents":"functions",x=Ke(s,"tools",v);if(a.kind==="subagent"&&r[a.name]){const g=r[a.name],u=Mo(t,o.id,l,a.kind,a.name),y=a.config.resumable,S=wt(a);return y&&typeof y=="object"&&S.push({label:y.max_instances===null||(y.max_instances??0)>1?"multi":"single",tone:"sky",mono:!0}),{id:f,kind:"subagent",label:g.agent.title||a.displayName,detail:a.name,badges:S.length>0?S:void 0,canvasNodeId:fn(u),toolKind:a.kind,avatarSrc:g.agent.icon||void 0,avatarSeed:g.agent.name,cardBacked:!0,editSurface:x,children:Ko(g.agent,g.sides,r,u,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:wt(a),canvasNodeId:d,toolKind:a.kind,cardBacked:!0,editSurface:Ke(a.name,"basic"),children:g?tf(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?zo(g):wt(a),canvasNodeId:d,toolKind:a.kind,defaultCollapsed:g?!0:void 0,cardBacked:!0,editSurface:x,children:g?nf(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:wt(a),canvasNodeId:d,toolKind:a.kind,defaultCollapsed:g?!0:void 0,cardBacked:!0,editSurface:x,children:g?ef(g,d,`${f}__`):void 0,hideIcon:!0}}return{id:f,kind:"tool",label:a.displayName||a.name,badges:wt(a),canvasNodeId:d,toolKind:a.kind,hideIcon:!0,editSurface:x}}function rf(e,t,n,o,a,l,s){const r=ia(o,t.id),i=`${l}side-${t.id}__`,c=gn(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:c,children:[]};d.push(Jc(t,r,i,c));const f=af(t,n,o,a,r,i,s);return f&&d.push(f),{id:`${l}side-${t.id}`,kind:"side",label:t.label,canvasNodeId:r,editSurface:c,children:d}}function Ko(e,t,n,o,a,l,s,r=!1){const i=fn(o),c=gn(e.name,"variables"),d=[kn(e._variables||[],i,`${l}agent__`,Object.keys(e.env||{}),c),...t.map(f=>rf(e.name,f,n,o,a,l,s))];return{id:`${l}agent`,kind:"agent",label:e.title||e.name,detail:e.name,badges:zo(e),canvasNodeId:i,avatarSrc:e.icon||void 0,avatarSeed:e.name,isRoot:r||void 0,cardBacked:!0,editSurface:gn(e.name,"identity"),children:d}}function sf(e,t,n,o){const a=$o(e.id||e.name),l=`${e.id||e.name}__`;return Ko(e,t,n,a,a,l,o,!0)}function lf(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 c of i.tools)if(c.kind==="tool"&&n.add(c.name),c.kind==="prompt"&&o.add(c.name),c.kind==="handoff"&&a.add(c.name),c.kind==="subagent"){const d=t[c.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 df(e,t,n,o,a,l){const s=B({functionTools:{},promptTools:{},handoffs:{}});let r=0;return Pe(()=>e.value?{agentId:e.value.id||e.value.name,plan:lf(t.value,n.value),modelKeys:Object.keys(o.value),toolKeys:Object.keys(a.value),refreshEpoch:l?.value??0}:null,async i=>{const c=e.value;if(!i||!c){s.value={functionTools:{},promptTools:{},handoffs:{}};return}const d=++r,f=await Id(i.plan,{toolsCatalog:a.value,models:o.value});d===r&&(s.value=f)},{immediate:!0}),O(()=>{const i=e.value;return i?sf(i,t.value,n.value,s.value):null})}const Yo=_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=At("FormKit");return p(),ce(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"])}}}),uf={class:"font-mono text-sm"},cf={class:"flex items-center gap-2 py-1.5"},ff={class:"text-neutral-600 dark:text-neutral-400"},mf={class:"ml-auto"},qo=_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(It,{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(Yo,{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(qo,{children:t.children,getSelection:e.getSelection,setSelection:e.setSelection,isShared:e.isShared,getTypeColor:e.getTypeColor}):null])])))}}),hf=_e({__name:"DependencyTree",props:{analysis:{},selections:{}},emits:["update:selection"],setup(e,{emit:t}){const n=e,o=t,a=O(()=>{const d=n.analysis,f=[];let v=0;const x=(M,k)=>{for(const N of M){const P=`${k}:${N.name}`;f.push({...N,type:k,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,u=`agent:${d.agent}`;for(const M of f){const k=M.parentKey||u;`${M.type}:${M.name}`===u&&!M.parentKey||(g.has(k)||g.set(k,[]),g.get(k).push(M))}const y=new Set,S=M=>{const k=`${M.type}:${M.name}`,N=y.has(k);y.add(k);const P=[],L=g.get(k)||[];for(const ne of L)P.push(S(ne));return{name:M.name,type:M.type,filePath:M.filePath,sharedWith:M.sharedWith,discoveredVia:M.discoveredVia,children:P,uid:M.uid,isDuplicate:N}},_=f.find(M=>M.type==="agent"&&M.name===d.agent&&!M.parentKey);return _?S(_):{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,c=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)=>(p(),$("div",uf,[h("div",cf,[h("span",ff,K(a.value.name),1),Q(I(It),{variant:c(a.value.type),size:"sm"},{default:ye(()=>[pe(K(a.value.type),1)]),_:1},8,["variant"]),h("div",mf,[Q(Yo,{value:s(a.value),"onUpdate:value":f[0]||(f[0]=v=>r(a.value,v))},null,8,["value"])])]),(p(),ce(lt(I(qo)),{children:a.value.children,"get-selection":s,"set-selection":r,"is-shared":i,"get-type-color":c},null,8,["children"]))]))}}),pf={key:0,class:"flex items-center justify-center py-12"},vf={key:1,class:"py-4"},gf={key:2,class:"py-4 space-y-4"},xf={class:"space-y-2"},yf={class:"text-sm opacity-80"},bf={class:"text-sm opacity-80"},kf={class:"space-y-4"},wf={class:"grid grid-cols-2 gap-4"},$f={class:"col-span-2"},Mf={class:"col-span-2"},Tf={class:"col-span-2"},Cf={key:0,class:"mt-3 space-y-3"},Sf={class:"flex gap-2 border-b border-neutral-200 dark:border-neutral-700"},_f={key:0},If=["innerHTML"],Ef={class:"space-y-4"},Af={class:"list-disc list-inside space-y-1"},Nf={class:"border border-neutral-200 dark:border-neutral-700 rounded-lg p-4 bg-neutral-50 dark:bg-neutral-900/50"},Pf={class:"flex justify-between"},Lf=_e({__name:"PackModal",props:{modelValue:{type:Boolean},agent:{}},emits:["update:modelValue","packed"],setup(e,{emit:t}){cn.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=O({get:()=>o.modelValue,set:H=>a("update:modelValue",H)}),s=B(null),r=B(!1),i=B(!1),c=B(null),d=B(null);let f=null;const v=B(""),x=B("1.0.0"),g=B("MIT"),u=B(""),y=B(null),S=B(""),_=B("edit"),M=B(!1),k=O(()=>S.value?cn(S.value):""),N=B(new Map);Pe(()=>o.modelValue,async H=>{H&&o.agent?await Promise.all([L(),ne()]):P()});const P=()=>{Y(),s.value=null,c.value=null,d.value=null,N.value=new Map,v.value="",x.value="1.0.0",g.value="MIT",u.value="",S.value="",_.value="edit",M.value=!1,st(y)},L=async()=>{if(o.agent){r.value=!0,c.value=null;try{const H=await fetch(Ve(`/api/pack/${o.agent.id}/analyze`)),E=await H.json();if(!H.ok){c.value=E.error||"Failed to analyze agent";return}if(s.value=E,E.generatedReadme)S.value=E.generatedReadme;else{const F=q(o.agent?.id||"agent");S.value=D(F,o.agent?.id||"agent",E.agentDescription)}T(E)}catch(H){c.value=H instanceof Error?H.message:"Failed to analyze agent"}finally{r.value=!1}}},ne=async()=>{if(o.agent)try{const H=await fetch(Ve(`/api/pack/${o.agent.id}/metadata`));if(H.ok){const E=await H.json();v.value=E.packageName,x.value=C(E.version),g.value=E.license||"MIT",u.value=E.licenseOwner||""}else v.value=q(o.agent.id),x.value="1.0.0",g.value="MIT",u.value=""}catch{v.value=q(o.agent?.id||"agent"),x.value="1.0.0",g.value="MIT",u.value=""}},q=H=>`standardagent-${H.toLowerCase().replace(/_/g,"-")}`,D=(H,E,F)=>`# ${H}
|
|
1
|
+
import{d as _e,c as O,b as $,e as p,m as ue,g as lo,r as B,Y as xn,X as Zn,w as Pe,h as He,t as Yr,A as nt,f as h,o as ea,a as Et,K as Me,j as Q,q as W,J as I,u as K,F as $e,l as Ie,s as pe,z as ce,Z as io,k as ye,ac as qr,ad as Gr,B as lt,O as At,n as De,P as Fe,V as Wr,R as Pa,a3 as Qr,U as Ln,ae as Jr,x as Zr,af as Ne,_ as ta,ag as uo,ah as co,W as La,ai as es,aj as ts,ak as Ra}from"./vue.js";import{I as tt,f as ns,g as na,h as vt,i as as,u as Kt,j as aa,k as fo,m as $t,n as oa,a as Ve,o as Ft,p as mo,q as ho,t as os,v as po,w as rs,x as ss,y as Oa,z as ls,A as ht,B as ze,_ as St,d as st,e as _t,C as is,D as ds,E as Rn,F as us,T as cs}from"./index.js";import{f as Qe,b as at,a as ot,s as fs,u as ms,c as hs,d as vo,g as ra,e as sa,A as go,_ as ps,h as Da,i as vs,C as gs}from"./ThreadInspectorPane.vue_vue_type_script_setup_true_lang.js";import{I as xo}from"./plus.js";import{I as On,a as Dn,b as Bn,c as xs,d as yo}from"./chevron-right.js";import{I as sn,a as Yn,P as ys}from"./PromptModal.js";import{_ as bs}from"./ModelModal.vue_vue_type_script_setup_true_lang.js";import{e as cn}from"./vendor.js";import{_ as la}from"./Modal.vue_vue_type_script_setup_true_lang.js";import{_ as ks}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang.js";import"./formkit.js";import"./syntax.js";import"./monaco.js";import"./CopyButton.vue_vue_type_script_setup_true_lang.js";import"./check.js";import"./JsonViewer.js";const It=_e({__name:"UiBadge",props:{variant:{default:"default"},size:{default:"sm"},pill:{type:Boolean,default:!1}},setup(e){const t=e,n=O(()=>{switch(t.variant){case"default":return"bg-neutral-100 dark:bg-neutral-800 text-neutral-700 dark:text-neutral-300";case"primary":return"bg-black dark:bg-white text-white dark:text-black";case"secondary":return"bg-neutral-200 dark:bg-neutral-700 text-neutral-600 dark:text-neutral-300";case"success":return"bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-300";case"warning":return"bg-yellow-100 dark:bg-yellow-900/30 text-yellow-700 dark:text-yellow-300";case"error":return"bg-red-100 dark:bg-red-900/30 text-red-700 dark:text-red-300";case"accent":return"bg-accent-100 dark:bg-accent-900/30 text-accent-700 dark:text-accent-300";default:return""}}),o=O(()=>{switch(t.size){case"sm":return"px-2 py-0.5 text-xs";case"md":return"px-2.5 py-1 text-sm";default:return""}});return(a,l)=>(p(),$("span",{class:ue(["inline-flex items-center font-medium",n.value,o.value,e.pill?"rounded-full":"rounded"])},[lo(a.$slots,"default")],2))}});function ws(){const e=B([]),t=B({}),n=B({}),o=B({}),a=B(!0),l=B(null),s=B(""),r=O(()=>{const c=s.value.trim().toLowerCase();return c?e.value.filter(d=>d.name.toLowerCase().includes(c)||d.title.toLowerCase().includes(c)||d.type.toLowerCase().includes(c)):e.value});async function i(){a.value=!0,l.value=null;try{const[c,d,f,v]=await Promise.all([Qe("/agents"),Qe("/models"),Qe("/tools"),Qe("/hooks")]);e.value=(c.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 $s(e){const t=xn(),n=Zn(),o=B(null),a=B(null),l=B(null),s=B(null),r=B(null),i=B({}),c=B(!1),d=B(null);let f=0,v=0,x=0;function g(){return{models:e.models.value,toolsCatalog:e.toolsCatalog.value,hooks:e.hooks.value}}const u=O(()=>{const q=a.value;return q?[at(q,"a",l.value,g()),at(q,"b",s.value,g())]:[]}),y=O(()=>{const q=u.value;return{promptCount:q.filter(D=>!!D.prompt).length,toolCount:q.reduce((D,C)=>D+C.tools.length,0),outgoingCount:q.reduce((D,C)=>D+C.outgoingAgents.length,0),variableCount:q.reduce((D,C)=>D+C.variables.length,0)}});function S(q,D){return q===f&&o.value===D}async function _(q){const D=++x;try{await n.replace({query:{...t.query,agent:q}})}catch{}finally{D===x&&(x=0)}}function M(){return x>0}async function k(q,D,C){const T=++v,b=new Set;for(const G of q)for(const Y of G.outgoingAgents)Y.kind==="subagent"&&b.add(Y.name);if(b.size===0){T===v&&S(D,C)&&(i.value={});return}const A={};await Promise.all([...b].map(async G=>{if(e.agents.value.find(H=>H.name===G&&!H.packed))try{const E=(await Qe(`/agents/${encodeURIComponent(G)}`)).agent,[F,j]=await Promise.all([ot(E.side_a_agent_prompt),ot(E.side_b_agent_prompt)]);if(T!==v||!S(D,C))return;A[G]={agentName:G,agent:E,sides:[at(E,"a",F,g()),at(E,"b",j,g())]}}catch{}})),T===v&&S(D,C)&&(i.value=A)}async function N(q,D=!0){const C=e.agents.value.find(b=>b.id===q||b.name===q);if(!C)return;const T=++f;if(o.value=C.id,r.value={type:"agent",value:C},i.value={},!fs(C)){a.value=null,l.value=null,s.value=null,d.value="Packed agents are not yet supported in the composition browser.",c.value=!1,D&&_(C.id);return}c.value=!0,d.value=null,D&&_(C.id);try{const b=await Qe(`/agents/${encodeURIComponent(C.name)}`),[A,G]=await Promise.all([ot(b.agent.side_a_agent_prompt),ot(b.agent.side_b_agent_prompt)]);if(!S(T,C.id))return;a.value=b.agent,l.value=A,s.value=G,r.value={type:"agent",value:b.agent};const Y=[at(b.agent,"a",A,g()),at(b.agent,"b",G,g())];k(Y,T,C.id)}catch{if(!S(T,C.id))return;d.value="Unable to load the selected agent composition.",a.value=null,l.value=null,s.value=null}finally{S(T,C.id)&&(c.value=!1)}}function P(q){r.value=q}function L(){a.value?r.value={type:"agent",value:a.value}:r.value=null}async function ne(){const q=a.value,D=o.value;if(!q||!D)return!1;const C=++f;try{const T=await Qe(`/agents/${encodeURIComponent(q.name)}`),[b,A]=await Promise.all([ot(T.agent.side_a_agent_prompt),ot(T.agent.side_b_agent_prompt)]);if(!S(C,D))return!1;const G=(l.value?.tools?.length??0)+(s.value?.tools?.length??0),Y=(b?.tools?.length??0)+(A?.tools?.length??0),E=T.agent.side_a_agent_prompt!==q.side_a_agent_prompt||T.agent.side_b_agent_prompt!==q.side_b_agent_prompt||G!==Y;a.value=T.agent,l.value=b,s.value=A;const F=[at(T.agent,"a",b,g()),at(T.agent,"b",A,g())];return k(F,C,D),E}catch{return!0}}return{selectedAgentId:o,selectedAgentDetail:a,selectedNode:r,sideCompositions:u,subagentCompositions:i,compositionSummary:y,loadingComposition:c,compositionError:d,selectAgent:N,selectInspectorNode:P,deselectNode:L,refreshComposition:ne,isRouteSyncing:M}}function Ms(){const e=xn(),t=ws(),n=$s({agents:t.agents,models:t.models,toolsCatalog:t.toolsCatalog,hooks:t.hooks}),o=O(()=>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;r?await n.selectAgent(r.id,!1):t.agents.value.length>0&&await n.selectAgent(t.agents.value[0].id)}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 Ba="__";function bo(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 ko(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"item"}function qn(e,t,n){const o=n===void 0?"":`-${n}`;return`${e}-${ko(t)}-${bo(t)}${o}`}function wo(e,...t){return`${e}${t.join(Ba)}${Ba}`}function $o(e){return wo(qn("agent",e))}function Mo(e,t,n,o,a){return wo(e,qn("side",t),qn("tool",`${o}:${a}`,n))}const fn=e=>`${e}agent`,ia=(e,t)=>`${e}side-${t}`,ln=(e,t,n)=>`${e}tool-${t}-${n}`,Ts=e=>`${e}group`,To=(e,t)=>`${e}model-${ko(t)}-${bo(t)}`,Cs=280,Ss=132,Va=320,_s=72,Is=200,Es=72,As=360,Ns=220,Ps=320,Ls=240,Rs=280,Os=132,Ua=64,ut=36,Zt=56,kt=36,Vn=52,Ds=64,dn=220,Bs=84,qe=72,Ha=112,ct=28;function Vs(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 u of e.modelUsages){const y=`${u.model.id}|${u.consumerNodeId}`;if(s.has(y))continue;s.add(y);const S=l.get(u.model.id);S?S.push(u):l.set(u.model.id,[u])}const r=new Map;for(const u of e.nodes)r.set(u.id,u);const i=e.width,c=0,d=[],f=e.groups.map(u=>({x:u.x,y:u.y,w:u.width,h:u.height}));function v(u,y){return y.x>=u.x&&y.y>=u.y&&y.x+y.w<=u.x+u.w&&y.y+y.h<=u.y+u.h}function x(u,y,S,_,M=16){const k=Math.min(y,S),N=Math.max(y,S);return _.some(P=>N>P.x-M&&k<P.x+P.w+M&&u>P.y-M&&u<P.y+P.h+M)}function g(u,y,S,_,M=16){const k=Math.min(y,S),N=Math.max(y,S);return _.some(P=>N>P.y-M&&k<P.y+P.h+M&&u>P.x-M&&u<P.x+P.w+M)}for(const[u,y]of l){const S=y.map(E=>({usage:E,node:r.get(E.consumerNodeId)})).filter(E=>!!E.node);if(S.length===0)continue;const _=S.map(E=>Hs(E.node,n)),M=S.map(E=>ft(E.node,n)),k=f.filter(E=>M.every(F=>v(E,F))),N=f.filter(E=>!k.includes(E)),P=y[0].model,L=To(t,u),ne=n[L],q=ne?.w??dn,D=ne?.h??Bs;let C=0,T=0,b;if(S.length===1){const E=S[0],F=ft(E.node,n),j=za(E.node),X=j||E.usage.sideId==="a"?"outboard-left":"outboard-right",he=F.y+F.h/2-D/2,se=X==="outboard-left"?F.x-qe-q:F.x+F.w+qe,fe=F.x+F.w/2-q/2,z=F.y+F.h+qe,U=new Set(S.map(te=>te.node.id)),J=[...d,...e.nodes.filter(te=>!U.has(te.id)).map(te=>ft(te,n)),...N],le=[se],ie=[he],ve=[fe],ee=[z];for(const te of J)X==="outboard-left"?le.push(te.x-qe-q):le.push(te.x+te.w+qe),ie.push(te.y-D-ct),ie.push(te.y+te.h+ct),ve.push(te.x-q-ct),ve.push(te.x+te.w+ct),ee.push(te.y-D-ct),ee.push(te.y+te.h+ct);let Z=se,m=he,w=Number.POSITIVE_INFINITY,V=null;const oe=new Set,de=[{mode:X,xs:le,ys:ie},{mode:"below-row",xs:ve,ys:ee}];for(const te of de)for(const re of te.xs)for(const be of te.ys){const ke=`${te.mode}:${Math.round(re)}:${Math.round(be)}`;if(oe.has(ke)||(oe.add(ke),te.mode==="outboard-left"&&re+q>F.x-8)||te.mode==="outboard-right"&&re<F.x+F.w+8)continue;const ge=J.filter(xe=>Un({x:re,y:be,w:q,h:D},{x:xe.x,y:xe.y,w:xe.w,h:xe.h})).length,Se=te.mode==="below-row"?g(F.x+F.w/2,F.y+F.h,be,J):x(F.y+F.h/2,te.mode==="outboard-left"?re+q:F.x+F.w,te.mode==="outboard-left"?F.x:re,J),we=ge*1e4+(Se?12e3:0)+Math.abs(re-se)/10+Math.abs(be-(te.mode==="below-row"?z:he))+(te.mode==="below-row"?10:0);if(j&&te.mode!=="below-row"&&ge===0){const xe=(Se?1e3:0)+Math.abs(re-se)/10+Math.abs(be-he);(!V||xe<V.penalty)&&(V={x:re,y:be,penalty:xe,mode:te.mode})}we<w&&(w=we,Z=re,m=be,b=te.mode)}V&&(Z=V.x,m=V.y,b=V.mode),b||(b=X),C=Z,T=m}else{let E=1/0,F=-1/0,j=1/0,X=-1/0;for(const U of S){const J=ft(U.node,n);J.x<E&&(E=J.x),J.x+J.w>F&&(F=J.x+J.w),J.y<j&&(j=J.y),J.y+J.h>X&&(X=J.y+J.h)}const he=F-E,se=X-j,fe=Fa(_.map(U=>U.x)),z=Fa(_.map(U=>U.y));if(he>=se){const U=fe-q/2,J=new Set(S.map(V=>V.node.id)),le=e.nodes.filter(V=>!J.has(V.id)).map(V=>ft(V,n)).filter(V=>V.y+V.h>X),ie=N.filter(V=>V.y+V.h>X),ve=[...le,...ie],ee=[U];for(const V of ve)ee.push(V.x-qe-q),ee.push(V.x+V.w+qe);let Z=U,m=1/0;const w=new Set;for(const V of ee){const oe=Math.round(V);if(w.has(oe))continue;w.add(oe);const de=ve.filter(be=>Un({x:V,y:X+qe,w:q,h:D},{x:be.x,y:be.y,w:be.w,h:be.h})).length,te=Math.abs(V-U)/1e3,re=de+te;re<m&&(m=re,Z=V)}C=Z,T=X+qe,b="below-row"}else{const U=S.every(ve=>za(ve.node)),J=S.filter(ve=>ve.usage.sideId==="a").length,le=S.length-J,ie=!U&&le>=J;C=ie?Math.max(i,F)+Ha:Math.min(c,E)-Ha-q,T=z-D/2,b=ie?"sidebar-right":"sidebar-left"}}const A=D+ct,G=8;let Y=0;const H=[...d,...e.nodes.map(E=>{const F=ft(E,n);return{x:F.x,y:F.y,w:F.w,h:F.h}}),...N];for(;Y<G&&H.some(E=>Un({x:C,y:T,w:q,h:D},E));)T+=A,Y++;d.push({x:C,y:T,w:q,h:D}),o.push({id:L,type:"model",x:C,y:T,width:q,height:D,placementMode:b,data:P});for(const E of S)a.push({id:`${E.node.id}-to-${L}`,from:E.node.id,to:L,sideId:E.usage.sideId,kind:"model"})}return{modelNodes:o,modelEdges:a}}function Us(e,t,n){if(t.length===0||e.length===0)return;const o=new Map;for(const i of n){const c=o.get(i.to);c?c.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,c)=>c.id.length-i.id.length);for(const i of r){const c=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(c)))continue;const x=Math.min(i.x,v.x-l),g=Math.min(i.y,v.y-l),u=Math.max(i.x+i.width,v.x+v.width+l),y=Math.max(i.y+i.height,v.y+v.height+l);i.x=x,i.y=g,i.width=u-x,i.height=y-g}}for(const i of r){const c=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(c)||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 Hs(e,t){const n=ft(e,t);return{x:n.x+n.w/2,y:n.y+n.h/2}}function za(e){return e.type==="prompt"||e.type==="side"&&e.data.mode==="ai"||e.type==="tool"&&e.data.kind==="prompt"}function Fa(e){if(e.length===0)return 0;let t=0;for(const n of e)t+=n;return t/e.length}function Un(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 Co(e,t,n,o,a,l){const s=[],r=[],i=[],c=[];function d(w){if(!w)return null;const V=l[w];if(V)return V;for(const oe of Object.values(l))if(oe.name===w)return oe;return null}const f=fn(o),v=a[f],x=v?.w??Cs,g=v?.h??Ss,u=0,y=g+Ua;function S(w,V){const oe=a[V];if(oe)return oe;if(w.mode==="human")return{w:Va,h:_s};const de=240,te=w.variables.length*24,re=w.tools.length*32,be=de+Math.max(te,re),ke=7,ge=w.tools.length>0;let Se=200;w.prompt&&(Se=Math.max(Se,w.prompt.name.length*ke+80));let we=ge?160:0;if(ge)for(const Te of w.tools)we=Math.max(we,Te.displayName.length*ke+40);return{w:Math.max(Va,ge?Se+we:Se),h:be}}const _=t.filter(w=>w.id==="a"),M=t.filter(w=>w.id==="b");function k(w){return w.map(V=>{const oe=V.tools.filter(ke=>ke.kind==="tool"||ke.kind==="subagent"||ke.kind==="handoff"||ke.kind==="prompt"),de=[];for(let ke=0;ke<oe.length;ke++){const ge=oe[ke];if(ge.kind==="subagent"&&!!n[ge.name]){const we=Mo(o,V.id,ke,ge.kind,ge.name),xe=n[ge.name],Te=Co(xe.agent,xe.sides,n,we,a,l),Ce=(dn+qe+12)*2;de.push({width:Te.width+kt*2+Ce,height:Te.height+Vn+kt,isSubagent:!0,modelReserveLeft:Ce,modelReserveRight:0,subagentName:ge.name,subagentNodeId:fn(we),subagentGroupId:Ts(we),subTree:Te})}else{const we=ln(o,V.id,ke),xe=a[we];de.push({width:xe?.w??(ge.kind==="tool"?As:ge.kind==="prompt"?Ps:ge.kind==="handoff"?Rs:Is),height:xe?.h??(ge.kind==="tool"?Ns:ge.kind==="prompt"?Ls:ge.kind==="handoff"?Os:Es),isSubagent:!1})}}const te=ia(o,V.id),{w:re,h:be}=S(V,te);return{side:V,leaves:de,sideH:be,sideW:re,sideNodeId:te,externalTools:oe}})}const N=k(_),P=k(M),L=new Map,ne=new Set;function q(w,V,oe){if(!w)return;const de=`${w.id}|${oe}`;if(ne.has(de))return;ne.add(de);const te=L.get(w.id);if(te){V==="a"?te.hasLeftConsumer=!0:te.hasRightConsumer=!0;return}L.set(w.id,{hasLeftConsumer:V==="a",hasRightConsumer:V==="b"})}for(const w of[...N,...P]){q(w.side.model,w.side.id,w.sideNodeId);for(let V=0;V<w.externalTools.length;V++){const oe=w.externalTools[V];oe.kind==="prompt"&&q(d(oe.model),w.side.id,ln(o,w.side.id,V))}for(const V of w.leaves)if(!(!V.isSubagent||!V.subTree))for(const oe of V.subTree.modelUsages)q(oe.model,oe.sideId,oe.consumerNodeId)}function D(w){if(!w)return!1;const V=L.get(w.id);return!!V?.hasRightConsumer&&!V?.hasLeftConsumer}function C(w,V){if(w.length===0)return{card:{minX:0,maxX:0},leaves:null,full:{minX:0,maxX:0}};let oe=0,de=1/0,te=-1/0,re=1/0,be=-1/0;for(const ge of w){const{side:Se,leaves:we,sideW:xe,externalTools:Te}=ge,Ce=V==="left"?oe-xe:oe,Je=V==="right"&&D(Se.model)?dn+qe:0;if(de=Math.min(de,Ce-Je),te=Math.max(te,Ce+xe),Te.length>0){const Le=T(Ce,xe,Te,we);for(let je=0;je<we.length;je++){const xt=V==="right"&&Te[je]?.kind==="prompt"&&D(d(Te[je]?.model))?dn+qe:0,it=Le[je];re=Math.min(re,it.x-xt),be=Math.max(be,it.x+we[je].width)}}oe+=(V==="left"?-1:1)*(xe+Zt)}const ke=re!==1/0;return{card:{minX:de,maxX:te},leaves:ke?{minX:re,maxX:be}:null,full:{minX:ke?Math.min(de,re):de,maxX:ke?Math.max(te,be):te}}}function T(w,V,oe,de){const te=new Array(de.length),re=de.map((xe,Te)=>({index:Te,leaf:xe,tool:oe[Te]})),be=re.filter(xe=>b(xe.tool)),ke=new Set(be.map(xe=>xe.index)),ge=[];be.length>0&&ge.push(A(be,V*3));for(const xe of re)ke.has(xe.index)||ge.push(A([xe],Number.POSITIVE_INFINITY));ge.sort((xe,Te)=>xe.firstIndex-Te.firstIndex);const Se=ge.reduce((xe,Te)=>xe+Te.width,0)+Math.max(0,ge.length-1)*ut;let we=w+V/2-Se/2;for(const xe of ge){for(const Te of xe.positions)te[Te.index]={x:we+Te.x,yOffset:Te.yOffset};we+=xe.width+ut}return te}function b(w){return w?.kind==="tool"||w?.kind==="provider"||w?.kind==="mcp"}function A(w,V){const oe=Math.max(...w.map(we=>we.leaf.width),0),de=Number.isFinite(V)?Math.max(V,oe):Number.POSITIVE_INFINITY,te=[];let re=null;const be=()=>{re&&re.items.length>0&&te.push(re),re={items:[],width:0,height:0}};be();for(const we of w){re||be();const xe=re.items.length===0?we.leaf.width:re.width+ut+we.leaf.width;re.items.length>0&&xe>de&&be(),re.items.push(we),re.width=re.items.length===1?we.leaf.width:re.width+ut+we.leaf.width,re.height=Math.max(re.height,we.leaf.height)}re&&re.items.length>0&&te.push(re);const ke=Math.max(...te.map(we=>we.width),0),ge=[];let Se=0;for(const we of te){let xe=(ke-we.width)/2;for(const Te of we.items)ge.push({index:Te.index,x:xe,yOffset:Se}),xe+=Te.leaf.width+ut;Se+=we.height+ut}return{firstIndex:Math.min(...w.map(we=>we.index)),width:ke,height:te.reduce((we,xe)=>we+xe.height,0)+Math.max(0,te.length-1)*ut,positions:ge}}const G=C(N,"left"),Y=C(P,"right"),H=G.card.maxX-Y.card.minX+Zt,E=G.leaves&&Y.leaves?G.leaves.maxX-Y.leaves.minX+Zt:0,F=Math.max(Ds,H,E),j=Math.max(x/2,F/2-G.full.minX);let X=y;function he(w,V,oe,de,te,re,be){const ke=ln(o,V,be);if(!de.isSubagent||!de.subTree){if(s.push({id:ke,type:"tool",x:te,y:re,width:de.width,height:de.height,data:oe,sideId:V}),r.push({id:`${w}-to-${ke}`,from:w,to:ke,sideId:V,toolKind:oe.kind}),oe.kind==="prompt"){const Ce=d(oe.model);Ce&&c.push({consumerNodeId:ke,sideId:V,model:Ce})}X=Math.max(X,re+de.height);return}const ge=de.subTree,Se=te+(de.modelReserveLeft??0),we=re+Vn;for(const Ce of ge.nodes){const Le=Ce.type==="agent"&&Ce.id===de.subagentNodeId&&"type"in Ce.data?{...Ce.data,_isSubagent:!0}:Ce.data;s.push({...Ce,x:Ce.x+Se,y:Ce.y+we,data:Le})}for(const Ce of ge.edges)r.push(Ce);for(const Ce of ge.groups)i.push({...Ce,x:Ce.x+Se,y:Ce.y+we});for(const Ce of ge.modelUsages)c.push(Ce);r.push({id:`${w}-to-${de.subagentNodeId}`,from:w,to:de.subagentNodeId,sideId:V,toolKind:oe.kind});const xe=oe.config||{},Te=xe.resumable;i.push({id:de.subagentGroupId,label:n[de.subagentName]?.agent.title||de.subagentName,x:Se-kt,y:re,width:ge.width+kt*2,height:ge.height+Vn+kt,sideId:V,subagent:{blocking:!!xe.blocking,resumable:!!Te,multiInstance:!!Te&&typeof Te=="object"&&(Te.max_instances===null||(Te.max_instances??0)>1),immediate:!!xe.immediate}}),X=Math.max(X,we+ge.height+kt)}function se(w,V){let oe=V==="left"?j-F/2:j+F/2;for(const de of w){const{side:te,leaves:re,sideH:be,sideW:ke,sideNodeId:ge,externalTools:Se}=de,we=Se.filter(b).length,xe=we>5?(we-5)*10:0,Te=y+be+Ua+xe,Ce=V==="left"?oe-ke:oe;if(s.push({id:ge,type:"side",x:Ce,y,width:ke,height:be,data:te,sideId:te.id}),r.push({id:`${f}-to-${ge}`,from:f,to:ge,sideId:te.id}),te.model&&c.push({consumerNodeId:ge,sideId:te.id,model:te.model}),X=Math.max(X,y+be),Se.length>0){const Je=T(Ce,ke,Se,re);for(let Le=0;Le<Se.length;Le++){const je=Je[Le];he(ge,te.id,Se[Le],re[Le],je.x,Te+je.yOffset,Le)}}oe+=(V==="left"?-1:1)*(ke+Zt)}}se(N,"left"),se(P,"right");const fe=new Set(Object.keys(e.env||{})),z=new Set,U=t.flatMap(w=>w.variables).filter(w=>fe.has(w.name)).filter(w=>z.has(w.name)?!1:(z.add(w.name),!0)),J=U.length>0?{...e,_variables:U}:e;s.push({id:f,type:"agent",x:j-x/2,y:u,width:x,height:g,data:J});let le=1/0,ie=1/0,ve=-1/0,ee=-1/0;for(const w of s)le=Math.min(le,w.x),ie=Math.min(ie,w.y),ve=Math.max(ve,w.x+w.width),ee=Math.max(ee,w.y+w.height);for(const w of i)le=Math.min(le,w.x),ie=Math.min(ie,w.y),ve=Math.max(ve,w.x+w.width),ee=Math.max(ee,w.y+w.height);const Z=ve-le,m=ee-ie;for(const w of s)w.x-=le,w.y-=ie;for(const w of i)w.x-=le,w.y-=ie;return{nodes:s,edges:r,groups:i,modelUsages:c,width:Z,height:m}}function zs(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=$o(e.id||e.name),s=Co(e,t,n,l,o,a),r=[...s.nodes],i=[...s.edges],c=[...s.groups],{modelNodes:d,modelEdges:f}=Vs(s,l,o);r.push(...d),i.push(...f),Us(c,d,f);let v=0,x=0,g=s.width,u=s.height;for(const y of d)y.x<v&&(v=y.x),y.y<x&&(x=y.y),y.x+y.width>g&&(g=y.x+y.width),y.y+y.height>u&&(u=y.y+y.height);for(const y of c)y.x<v&&(v=y.x),y.y<x&&(x=y.y),y.x+y.width>g&&(g=y.x+y.width),y.y+y.height>u&&(u=y.y+y.height);if(v<0||x<0){const y=-Math.min(v,0),S=-Math.min(x,0);for(const _ of r)_.x+=y,_.y+=S;for(const _ of c)_.x+=y,_.y+=S;g+=y,u+=S}return{nodes:r,edges:i,groups:c,bounds:{x:0,y:0,width:g,height:u}}}function Fs(e,t,n,o,a){return O(()=>zs(e.value,t.value,n.value,o.value,a.value))}function js(e){const{selectedAgentId:t,threadListPaneRef:n,messagesPaneRef:o,logsPaneRef:a}=e,l=xn(),s=Zn(),r=()=>typeof l.query.thread=="string"?l.query.thread:null,i=U=>{s.replace({path:l.path,query:{...l.query,thread:U||void 0},hash:l.hash})},c=U=>{s.replace({path:l.path,query:{...l.query,inspector:U},hash:l.hash})},d=r(),f=B(d),v=B(null),x="__draft_new_thread__",g=B(!1);let u=!1;Pe(f,U=>{if(u||U===x)return;const J=r();U!==J&&i(U)}),Pe(()=>l.query.thread,U=>{if(u)return;const J=typeof U=="string"?U:null;if(J&&v.value&&!v.value.has(J)){u=!0,f.value=null,i(null),He(()=>{u=!1});return}J!==f.value&&(f.value=J)},{immediate:!0});const y=B(null),S=B(null),_=B(null),M=B(null),k=B(null),N=B(null),P=B(null),L=B(!1),ne=B(null),{thread:q}=ms(O(()=>f.value===x?null:f.value));let D=!1;Pe(t,()=>{if(!D){D=!0;return}u=!0,f.value=null,y.value=null,S.value=null,_.value=null,M.value=null,k.value=null,N.value=null,P.value=null,He(()=>{u=!1})}),Pe(f,()=>{y.value=null,S.value=null,_.value=null,M.value=null,k.value=null});const C=U=>{N.value=U,P.value=U},T=U=>{const J=o.value,le=a.value;if(!J||!le)return null;if(J.hasWorkblockForLogId(U))return U;let ie=U;const ve=10;for(let ee=0;ee<ve&&ie;ee++){const Z=le.getLog(ie);if(!Z)break;const m=Z.parent_log_id;if(!m)break;if(J.hasWorkblockForLogId(m))return m;ie=m}return null};return{selectedThreadId:f,selectedThread:q,selectedMessageId:y,selectedLogId:S,selectedEffectId:_,selectedEffectRef:M,highlightedWorkblockLogId:k,hoveredLogId:N,hoveredWorkblockLogId:P,showThreadModal:L,editingThread:ne,draftThreadId:x,isCreatingThreadDraft:g,handleThreadSelect:U=>{f.value=U},handleThreadsLoaded:(U,J)=>{u=!1,v.value=J?new Set(J):null,f.value&&v.value&&!v.value.has(f.value)&&(f.value=null),U&&!f.value?f.value=U:!U&&!f.value&&r()&&i(null)},handleMessageClick:async(U,J,le)=>{if(y.value=U,le){_.value=le.id??null,M.value=le,S.value=null,k.value=null,c("effects"),await He(),a.value?.selectEffectByReference(le);return}if(_.value=null,M.value=null,!J){S.value=null,k.value=null;return}const ie=a.value;if(!ie){S.value=J,k.value=J;return}const ve=!ie.hasLog(J);if(ve&&ie.setLoadingForLog(!0),S.value=J,k.value=J,ve&&!await ie.loadUntilLogId(J)){ie.setLoadingForLog(!1);return}await ie.waitForLogRow(J)&&(ie.scrollToLog(J),ie.selectLogById(J))},handleMessageHover:C,handleLogClick:U=>{S.value=U,_.value=null,M.value=null,y.value=null;const J=o.value;if(!J){k.value=U;return}if(J.scrollToLogId(U)){k.value=U;return}const le=T(U);le&&le!==U&&J.scrollToLogId(le),k.value=le??U},handleLogHover:U=>{if(N.value=U,!U){P.value=null;return}P.value=T(U)??U},handleLogsLoaded:U=>{U&&(S.value=U)},handleLogsDeleted:U=>{a.value?.removeLogsByIds(U)},handleThreadDeleted:U=>{f.value=null,y.value=null,S.value=null,_.value=null,M.value=null,k.value=null,N.value=null,P.value=null,n.value?.refetch()},handleEditThread:()=>{q.value&&(ne.value=q.value,L.value=!0)},handleCreateThread:()=>{ne.value=null,L.value=!1,g.value=!0,f.value=x},handleThreadCreated:U=>{g.value=!1,n.value?.refetch(),f.value=U,He(()=>o.value?.focusComposer())},handleCancelCreateThread:()=>{g.value=!1,f.value===x&&(f.value=null)},handleThreadUpdated:()=>{n.value?.refetch()}}}function Xs(e){return Array.from(new Set(e.map(t=>t.id))).sort()}function Ks(e){const t=B({}),n=B(!1),o=B(null),a=O(()=>Xs(Yr(e))),l=O(()=>a.value.join(""));let s=0;async function r(i={}){const c=++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 u=await Qe(`/threads?agent_id=${encodeURIComponent(g)}&limit=1`);return[g,u.total??0]}catch{return[g,0]}}));if(c!==s)return;for(const[g,u]of x)f[g]=u;t.value=f}catch{c===s&&(o.value="Unable to load thread counts.")}finally{c===s&&(n.value=!1)}}return Pe(l,()=>{r()},{immediate:!0}),{threadCounts:t,loadingThreadCounts:n,threadCountsError:o,refreshThreadCounts:()=>r({force:!0})}}const Ys={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function qs(e,t){return p(),$("svg",Ys,[...t[0]||(t[0]=[h("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[h("path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73zm1 .27V12"}),h("path",{d:"M3.29 7L12 12l8.71-5M7.5 4.27l9 5.15"})],-1)])])}const Hn=nt({name:"lucide-package",render:qs}),Gs={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ws(e,t){return p(),$("svg",Gs,[...t[0]||(t[0]=[h("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[h("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"}),h("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"}),h("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 Qs=nt({name:"lucide-package-open",render:Ws}),Js={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Zs(e,t){return p(),$("svg",Js,[...t[0]||(t[0]=[h("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[h("circle",{cx:"12",cy:"12",r:"1"}),h("circle",{cx:"12",cy:"5",r:"1"}),h("circle",{cx:"12",cy:"19",r:"1"})],-1)])])}const el=nt({name:"lucide-ellipsis-vertical",render:Zs}),tl={class:"px-4 py-3 border-b border-neutral-200 dark:border-neutral-800"},nl={class:"flex items-center justify-between"},al={class:"flex items-center gap-2"},ol={key:0,class:"text-xs font-mono text-neutral-500 dark:text-neutral-400"},rl={class:"flex items-center gap-2 border-b border-neutral-200 px-5 py-2.5 dark:border-neutral-800"},sl={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"},ll=["value"],il={class:"flex shrink-0 overflow-hidden rounded-md border border-neutral-200 text-[11px] dark:border-neutral-700"},dl=["onClick"],ul={class:"grid grid-cols-[36px_1fr_72px_80px_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"},cl={key:0,class:"flex-1 px-5 py-5 text-sm text-neutral-500 dark:text-neutral-400"},fl={key:1,class:"flex-1 px-5 py-5 text-sm text-neutral-500 dark:text-neutral-400"},ml={key:2,class:"flex-1 overflow-y-auto"},hl=["data-agent-id","onClick"],pl={class:"flex items-center justify-center"},vl=["src"],gl={class:"flex min-w-0 items-center gap-2"},xl=["onClick","aria-label"],yl={key:0,class:"text-[11px] font-mono"},bl={class:"min-w-0"},kl={key:0,class:"relative flex items-center justify-center","data-agent-menu":""},wl=["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"},Ml=["onClick"],Tl=["onClick"],Cl=["onClick"],Sl=["onClick"],_l=["onClick"],Il=_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=B(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()}ea(()=>document.addEventListener("click",l)),Et(()=>document.removeEventListener("click",l));const s=t,r=[{value:"all",label:"All"},{value:"ai_human",label:"AI+Human"},{value:"dual_ai",label:"Dual AI"}];function i(d){return d==="dual_ai"?"Dual AI":"AI+Human"}function c(d,f){return f==="a"?d.side_a_agent_prompt||"-":d.type==="ai_human"?"Human":d.side_b_agent_prompt||"-"}return(d,f)=>(p(),$("aside",{class:"flex h-full w-[90cqi] max-w-[780px] flex-col",onClick:f[5]||(f[5]=Me(()=>{},["stop"]))},[h("div",tl,[h("div",nl,[h("div",al,[Q(I(tt),{class:"h-[18px] w-[18px] shrink-0 opacity-60"}),f[6]||(f[6]=h("h2",{class:"text-base font-bold"},"Agents",-1)),!e.loading&&e.agents.length>0?(p(),$("span",ol," ("+K(e.agents.length)+") ",1)):W("",!0)])])]),h("div",rl,[h("label",sl,[Q(I(ns),{class:"h-4 w-4 shrink-0 text-neutral-400"}),h("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,ll)]),h("div",il,[(p(),$($e,null,Ie(r,v=>h("button",{key:v.value,type:"button",class:ue(["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)},K(v.label),11,dl)),64))]),e.readonly?W("",!0):(p(),$("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(I(xo),{class:"h-3.5 w-3.5"}),f[7]||(f[7]=pe(" New Agent ",-1))]))]),h("div",ul,[f[11]||(f[11]=h("div",null,null,-1)),h("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]=pe(" Title ",-1)),e.sortBy==="title"&&e.sortDir==="asc"?(p(),ce(I(On),{key:0,class:"h-3 w-3"})):e.sortBy==="title"&&e.sortDir==="desc"?(p(),ce(I(Dn),{key:1,class:"h-3 w-3"})):(p(),ce(I(Bn),{key:2,class:"h-3 w-3 opacity-40"}))]),h("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]=pe(" Threads ",-1)),e.sortBy==="threads"&&e.sortDir==="asc"?(p(),ce(I(On),{key:0,class:"h-3 w-3"})):e.sortBy==="threads"&&e.sortDir==="desc"?(p(),ce(I(Dn),{key:1,class:"h-3 w-3"})):(p(),ce(I(Bn),{key:2,class:"h-3 w-3 opacity-40"}))]),h("button",{type:"button",class:"flex items-center gap-1 text-left",onClick:f[4]||(f[4]=v=>d.$emit("sort","type"))},[f[10]||(f[10]=pe(" Type ",-1)),e.sortBy==="type"&&e.sortDir==="asc"?(p(),ce(I(On),{key:0,class:"h-3 w-3"})):e.sortBy==="type"&&e.sortDir==="desc"?(p(),ce(I(Dn),{key:1,class:"h-3 w-3"})):(p(),ce(I(Bn),{key:2,class:"h-3 w-3 opacity-40"}))]),f[12]||(f[12]=h("div",null,"Sides",-1)),f[13]||(f[13]=h("div",null,null,-1))]),e.loading?(p(),$("div",cl," Loading agents... ")):e.agents.length===0?(p(),$("div",fl," No agents match this search. ")):(p(),$("div",ml,[(p(!0),$($e,null,Ie(e.agents,v=>(p(),$("div",{key:v.id,"data-agent-id":v.id,class:ue(["grid w-full cursor-pointer grid-cols-[36px_1fr_72px_80px_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)},[h("div",pl,[h("img",{src:v.icon||I(na)(v.id),alt:"",class:"h-9 w-9 rounded-md object-cover"},null,8,vl)]),h("div",gl,[v.packed?(p(),ce(I(Hn),{key:0,class:"h-4 w-4 shrink-0 text-blue-500",title:`Packed agent from ${v.packageId}`},null,8,["title"])):W("",!0),h("span",{class:ue(["truncate font-medium",e.selectedId===v.id?"agents-text-selected":"text-neutral-900 dark:text-neutral-100"])},K(v.title),3)]),h("button",{type:"button",class:ue(["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:Me(x=>s("view-threads",v.id),["stop"]),title:"View threads","aria-label":`View threads for ${v.title}`},[Q(I(vt),{class:"h-3.5 w-3.5"}),e.threadCounts[v.id]>0?(p(),$("span",yl,K(e.threadCounts[v.id]),1)):W("",!0)],10,xl),h("div",{class:ue(e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400")},K(i(v.type)),3),h("div",bl,[h("div",{class:ue(["truncate",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400"])},[h("span",{class:ue(["text-[10px] font-semibold uppercase tracking-wider",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-400 dark:text-neutral-500"])},"A",2),pe(" "+K(c(v,"a")),1)],2),h("div",{class:ue(["truncate",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-500 dark:text-neutral-400"])},[h("span",{class:ue(["text-[10px] font-semibold uppercase tracking-wider",e.selectedId===v.id?"agents-text-selected-muted":"text-neutral-400 dark:text-neutral-500"])},"B",2),pe(" "+K(c(v,"b")),1)],2)]),e.readonly?W("",!0):(p(),$("div",kl,[h("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:Me(x=>o(v.id),["stop"])},[Q(I(el),{class:"h-4 w-4"})],8,wl),Q(io,{"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:ye(()=>[n.value===v.id?(p(),$("div",$l,[v.packed?W("",!0):(p(),$("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:Me(x=>{d.$emit("edit",v),a()},["stop"])},[Q(I(as),{class:"h-4 w-4 text-neutral-400"}),f[14]||(f[14]=pe(" Edit ",-1))],8,Ml)),v.packed?W("",!0):(p(),$("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:Me(x=>{d.$emit("pack",v),a()},["stop"])},[Q(I(Hn),{class:"h-4 w-4 text-neutral-400"}),f[15]||(f[15]=pe(" Pack ",-1))],8,Tl)),v.packed?(p(),$("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:Me(x=>{d.$emit("unpack",v),a()},["stop"])},[Q(I(Qs),{class:"h-4 w-4 text-neutral-400"}),f[16]||(f[16]=pe(" Unpack ",-1))],8,Cl)):W("",!0),v.packed?(p(),$("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:Me(x=>{d.$emit("publish",v),a()},["stop"])},[Q(I(Hn),{class:"h-4 w-4 text-neutral-400"}),f[17]||(f[17]=pe(" Publish Package ",-1))],8,Sl)):W("",!0),f[18]||(f[18]=h("div",{class:"my-1 border-t border-neutral-100 dark:border-neutral-800"},null,-1)),h("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:Me(x=>{d.$emit("delete",v),a()},["stop"])},[Q(I(xs),{class:"h-4 w-4"}),pe(" "+K(v.packed?"Delete Package":"Delete"),1)],8,_l)])):W("",!0)]),_:2},1024)]))],10,hl))),128))]))]))}});function ja(e){return Math.round(e*1e3)/1e3}function zn(e){return e?Object.entries(e).sort(([t],[n])=>t.localeCompare(n)).map(([t,n])=>`${t}:${n.left}:${n.width}`).join("|"):""}function Fn(e,t){return Number.isFinite(e)?!Number.isFinite(t)||t<=0?ja(e):ja(e/t):e}function El(e,t,n,o,a){const l=B(!1),s=B(new Map);let r=null,i=null,c=null,d=null,f="",v="",x=null;const g=new Map;function u(){return e.value.nodes.filter(G=>G.type!=="hook").map(G=>G.id)}function y(){const G=u();return G.length>0&&G.every(Y=>s.value.has(Y))}function S(){return Array.from(s.value.entries()).sort(([G],[Y])=>G.localeCompare(Y)).map(([G,Y])=>`${G}:${Y.w}x${Y.h}:${Y.modelAnchorY??""}:${zn(Y.toolColumns)}`).join("|")}function _(){return new Set(e.value.nodes.map(G=>G.id))}function M(){r&&clearTimeout(r),i&&clearTimeout(i),c&&clearTimeout(c),r=null,i=null,c=null}function k(){return typeof ResizeObserver>"u"?null:x||(x=new ResizeObserver(G=>{for(const Y of G)for(const[H,E]of g)if(E===Y.target){b(H,E);break}}),x)}function N(G,Y){const H=g.get(G);if(H===Y)return;const E=k();H&&E?.unobserve(H),g.set(G,Y),E?.observe(Y)}function P(){const G=_();for(const[Y,H]of g)G.has(Y)||(x?.unobserve(H),g.delete(Y),s.value.delete(Y))}function L(){He(()=>{P();for(const[G,Y]of g)b(G,Y)})}function ne(){c&&clearTimeout(c),c=setTimeout(()=>{t.value||l.value||e.value.nodes.length===0||!y()||He(()=>{l.value=!0,n(C())})},800)}Pe(t,G=>{if(G){l.value=!1,s.value.clear(),v="",a?.(),M();return}e.value.nodes.length>0&&(L(),ne())}),Pe(()=>e.value.nodes.map(G=>G.id).join(","),G=>{G!==f&&(f=G,G&&(l.value=!1,v="",a?.(),M(),L(),ne()))});const q=O(()=>e.value.nodes.map(G=>{const Y=s.value.get(G.id);return Y?{...G,width:Y.w,height:Y.h}:G})),D=O(()=>{const G={};for(const[Y,H]of s.value)(H.modelAnchorY!==void 0||H.toolColumns)&&(G[Y]={modelAnchorY:H.modelAnchorY,toolColumns:H.toolColumns});return G});function C(){const G=q.value,Y=e.value.groups;if(G.length===0)return e.value.bounds;let H=1/0,E=1/0,F=-1/0,j=-1/0;for(const X of G)H=Math.min(H,X.x),E=Math.min(E,X.y),F=Math.max(F,X.x+X.width),j=Math.max(j,X.y+X.height);for(const X of Y)H=Math.min(H,X.x),E=Math.min(E,X.y),F=Math.max(F,X.x+X.width),j=Math.max(j,X.y+X.height);return{x:H,y:E,width:F-H,height:j-E}}function T(){d&&cancelAnimationFrame(d),d=requestAnimationFrame(()=>{const G=S();G!==v&&(v=G,o(Object.fromEntries(s.value))),!(t.value||!y())&&(r&&clearTimeout(r),r=setTimeout(()=>{t.value||!y()||(c&&clearTimeout(c),c=null,l.value=!0,He(()=>{n(C()),i&&clearTimeout(i),i=setTimeout(()=>n(C()),220)}))},180))})}function b(G,Y){He(()=>{const H=Y.offsetWidth,E=Y.offsetHeight;if(H<=0||E<=0)return;const F=Y.getBoundingClientRect(),j=H>0&&F.width>0?F.width/H:1,X=E>0&&F.height>0?F.height/E:1;let he;const se=Y.querySelector("[data-model-anchor]");if(se&&F.height>0){const le=se.getBoundingClientRect();le.height>0&&(he=Fn(le.top+le.height/2-F.top,X))}let fe;const z=Y.querySelectorAll("[data-tool-column]");if(z.length>0&&F.width>0){fe={};for(const le of z){const ie=le.dataset.toolColumn;if(!ie)continue;const ve=le.getBoundingClientRect();fe[ie]={left:Fn(ve.left-F.left,j),width:Fn(ve.width,j)}}}const U=s.value.get(G),J=U?.w!==H||U?.h!==E;if(!(U?.w===H&&U?.h===E&&U?.modelAnchorY===he&&zn(U?.toolColumns)===zn(fe))){if(s.value.set(G,{w:H,h:E,modelAnchorY:he,toolColumns:fe}),l.value&&!J){const le=S();le!==v&&(v=le,o(Object.fromEntries(s.value)));return}T()}})}function A(G,Y){N(G,Y),b(G,Y)}return Et(()=>{r&&clearTimeout(r),i&&clearTimeout(i),c&&clearTimeout(c),d&&cancelAnimationFrame(d),x?.disconnect(),x=null,g.clear()}),{layoutStable:l,measurements:s,nodesWithMeasuredSizes:q,nodeMetrics:D,measureNode:A,measuredBounds:C}}function Al(e){const t=B(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 c(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 u=Date.now(),y=u-n<350&&o===x.id;if(n=u,o=x.id,!y){e.focusNode(x);return}const S=e.containerRef.value;if(!S)return;const _=S.getBoundingClientRect(),M=40,k=(_.width-M*2)/x.width,N=(_.height-M*2)/x.height;e.focusNode(x,Math.min(k,N,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(),u=g-a<350&&l===v.id;a=g,l=v.id,e.focusNode(x,u?1.2:void 0)}return Pe(e.selectedNodeId,(v,x)=>{if(!v){t.value=null,x&&e.restoreViewport();return}const g=e.layout.value.nodes.find(u=>u.id===v);g&&(t.value=i(g))}),ea(()=>{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 u=e.viewportState.value.scale;const y=60;if(v.width>0&&v.height>0){const S=(g.width-y*2)/v.width,_=(g.height-y*2)/v.height,M=Math.min(S,_);u>M&&M>.1&&(u=M)}e.focusNode(v,u)},320)}),e.containerRef.value&&s.observe(e.containerRef.value)}),Et(()=>{s?.disconnect(),r&&clearTimeout(r)}),{handleCanvasClick:c,handleGroupClick:d,handleNodeSelect:f}}const en=6,Nl=250;function Pl(e,t={}){const{minScale:n=.1,maxScale:o=2.5,padding:a=80,panPadding:l=a}=t,s=B({x:0,y:0,scale:1}),r=B(!1),i=B(!1),c={x:0,y:0,viewX:0,viewY:0},d={x:0,y:0,time:0};let f=null,v=!1,x=0,g=null,u=null,y=null;const S=150;function _(){i.value=!0,u&&clearTimeout(u),u=setTimeout(()=>{i.value=!1,u=null},S)}let M=null,k=!1,N=!1,P=null;function L(){k=!0,N=!0}function ne(){g&&clearTimeout(g),g=setTimeout(()=>{const{x:m,y:w,scale:V}=s.value,oe=Math.round(m/V)*V,de=Math.round(w/V)*V;(oe!==m||de!==w)&&(s.value=b({x:oe,y:de,scale:V}))},120)}const q=O(()=>{const{x:m,y:w,scale:V}=s.value;return i.value?{transform:`translate3d(${m}px, ${w}px, 0) scale(${V})`,transformOrigin:"0 0",willChange:"transform"}:{transform:`translate3d(${m/V}px, ${w/V}px, 0)`,zoom:V,transformOrigin:"0 0",willChange:"transform"}}),D=O(()=>Math.round(s.value.scale*100));function C(m){return Math.min(o,Math.max(n,m))}function T(m,w,V){return Math.min(V,Math.max(w,m))}function b(m){const w=C(m.scale),V=e.value,oe=P;if(!V||!oe||oe.width<=0||oe.height<=0)return{...m,scale:w};const de=V.getBoundingClientRect();if(de.width<=0||de.height<=0)return{...m,scale:w};const te=Math.max(0,l)/w,re=Math.max(0,l)/w,be=(de.width/2-m.x)/w,ke=(de.height/2-m.y)/w,ge=T(be,oe.x-te,oe.x+oe.width+te),Se=T(ke,oe.y-re,oe.y+oe.height+re);return{x:de.width/2-ge*w,y:de.height/2-Se*w,scale:w}}function A(m,w=!1){s.value=b(m),w&&ne()}function G(m,w,V){const oe=C(m),de=s.value,te=oe/de.scale;A({x:w-(w-s.value.x)*te,y:V-(V-s.value.y)*te,scale:oe},!0)}function Y(m){const w=e.value;if(w){if(m.ctrlKey||m.metaKey){m.preventDefault(),m.stopPropagation?.(),L(),_();const V=w.getBoundingClientRect(),oe=m.clientX-V.left,de=m.clientY-V.top,te=Math.min(Math.abs(m.deltaY),10)/10,be=1+(m.deltaY>0?-1:1)*.03*te;G(s.value.scale*be,oe,de);return}m.preventDefault(),m.stopPropagation?.(),L(),_(),A({...s.value,x:s.value.x-m.deltaX,y:s.value.y-m.deltaY},!0)}}function H(m){m.button!==0&&m.button!==1||(f=m.pointerId,r.value=!1,c.x=m.clientX,c.y=m.clientY,c.viewX=s.value.x,c.viewY=s.value.y,d.x=m.clientX,d.y=m.clientY,d.time=Date.now(),v=!1)}function E(m){if(f!==m.pointerId)return;const w=m.clientX-d.x,V=m.clientY-d.y,oe=w*w+V*V;!r.value&&oe>en*en&&(r.value=!0,v||(m.currentTarget.setPointerCapture(m.pointerId),v=!0)),r.value&&(_(),A({...s.value,x:c.viewX+(m.clientX-c.x),y:c.viewY+(m.clientY-c.y)}))}function F(m){if(f!==m.pointerId)return;const w=m.clientX-d.x,V=m.clientY-d.y,oe=w*w+V*V,de=Date.now()-d.time<=Nl&&oe<=en*en;r.value&&L(),de||(x=Date.now()+32),r.value=!1,f=null,v&&(m.currentTarget?.releasePointerCapture(m.pointerId),v=!1),ne()}function j(){return Date.now()>=x}function X(){const m=e.value;if(!m)return{cx:0,cy:0};const w=m.getBoundingClientRect();return{cx:w.width/2,cy:w.height/2}}function he(){L(),_();const{cx:m,cy:w}=X();G(s.value.scale+.1,m,w)}function se(){L(),_();const{cx:m,cy:w}=X();G(s.value.scale-.1,m,w)}function fe(m,w={}){P=m.width>0&&m.height>0?{...m}:null;const V=e.value;if(!V||m.width===0||m.height===0||!w.force&&N)return;const oe=V.getBoundingClientRect(),de=(oe.width-a*2)/m.width,te=(oe.height-a*2)/m.height,re=C(Math.min(de,te,1));A({x:(oe.width-m.width*re)/2-m.x*re,y:(oe.height-m.height*re)/2-m.y*re,scale:re}),N=!1}function z(){N=!1}function U(){A({x:0,y:0,scale:1})}function J(m){P=m&&m.width>0&&m.height>0?{...m}:null,P&&(s.value=b(s.value))}function le(){M={...s.value},k=!1}function ie(){const m=M;M=null,!(!m||k)&&ve(m)}function ve(m,w){g&&(clearTimeout(g),g=null);const V={...s.value},oe=300,de=performance.now();y&&cancelAnimationFrame(y);function te(re){const be=Math.min((re-de)/oe,1),ke=1-Math.pow(1-be,3);_(),s.value=b({x:V.x+(m.x-V.x)*ke,y:V.y+(m.y-V.y)*ke,scale:V.scale+(m.scale-V.scale)*ke}),be<1?y=requestAnimationFrame(te):(s.value=b(w?w():m),y=null)}y=requestAnimationFrame(te)}function ee(){g&&(clearTimeout(g),g=null),u&&(clearTimeout(u),u=null),y&&(cancelAnimationFrame(y),y=null),f=null,v=!1,r.value=!1,i.value=!1}qr()&&Gr(ee);function Z(m,w){const V=e.value;if(!V)return;const oe=C(w??s.value.scale),de=m.x+m.width/2,te=m.y+m.height/2;function re(){const be=V.getBoundingClientRect();return{x:be.width/2-de*oe,y:be.height/2-te*oe,scale:oe}}ve(re(),re)}return{state:s,isPanning:r,transformStyle:q,scalePercent:D,onWheel:Y,onPointerDown:H,onPointerMove:E,onPointerUp:F,shouldHandleClick:j,zoomIn:he,zoomOut:se,fitToView:fe,resetAutoFitLock:z,focusNode:Z,resetView:U,setContentBounds:J,saveViewport:le,restoreViewport:ie}}function Ll(e){return!e.hasAgent||e.hasError?!1:e.loadingComposition?!0:e.hasRevealedStableDiagram?!1:!e.layoutStable||e.loadingAsyncDetail}const Rl={class:"pointer-events-none absolute inset-0 h-full w-full","aria-hidden":"true"},Ol=_e({__name:"CanvasGrid",setup(e){return(t,n)=>(p(),$("svg",Rl,[...n[0]||(n[0]=[h("defs",null,[h("pattern",{id:"canvas-dot-grid",x:"0",y:"0",width:"24",height:"24",patternUnits:"userSpaceOnUse"},[h("circle",{cx:"12",cy:"12",r:"1",class:"fill-neutral-400/20 dark:fill-neutral-500/20"})])],-1),h("rect",{width:"100%",height:"100%",fill:"url(#canvas-dot-grid)"},null,-1)])]))}}),Oe=8,Be=20,Ee=20,tn=18,Ge=20,nn=8,rt=8,Dl=12,Re=10,Bl=10,an=16,on=24,Vl=38,Xa=44,Ul=12;function Ka(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},(c,d)=>s+d*i)}function Hl(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 yn(e){return{id:e.id,x:e.x-tn,y:e.y-tn,width:e.width+tn*2,height:e.height+tn*2}}function Ht(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 mn(e,t,n){return t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height}function Ya(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function un(e,t,n){const o=Ya(e),a=Ya(t);return n.map(yn).filter(l=>mn(l,o.x,o.y)&&!mn(l,a.x,a.y))}function zl(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(yn).filter(r=>!mn(r,e.x+e.width/2,e.y+e.height/2)&&!mn(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 Mt(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(yn)}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,c=r.x+r.width+Ee,d=r.y-Ee,f=r.y+r.height+Ee;if(e>=d&&e<=f&&s>=i&&l<=c)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 c of o){if(a.has(c.id))continue;const d=c.x-l,f=c.x+c.width+l,v=c.y-s,x=c.y+c.height+s;if(e>=d&&e<=f&&i>=v&&r<=x)return c}return null}function Gn(e,t,n,o,a,l,s){const r=Math.min(o,a),i=Math.max(o,a);let c=e;for(let d=0;d<6;d++){const f=Ze(c,t,n,l,s);if(!f)return c;const v=f.y-Ee-Ge,x=f.y+f.height+Ee+Ge,g=Math.abs(v-c)<=Math.abs(x-c)?v:x;c=Math.max(r-200,Math.min(i+200,g))}return c}function hn(e,t,n,o,a,l,s,r,i){let c=r<0?Math.min(e,i-1):Math.max(e,i+1);for(let d=0;d<6;d++){const f=Ze(c,t,n,l,s);if(!f)return c;c=r<0?f.y-Ee-Ge:f.y+f.height+Ee+Ge}return c}function So(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n);return _o(e,da(l,s,o,a))}function da(e,t,n,o,a=Ee+Ge,l=Ee){const s=[];for(const i of n){if(o.has(i.id))continue;const c=i.y-l;i.y+i.height+l<e||c>t||s.push([i.x-a,i.x+i.width+a])}if(s.length===0)return s;s.sort((i,c)=>i[0]-c[0]);const r=[s[0]];for(let i=1;i<s.length;i++){const c=r[r.length-1],d=s[i];d[0]<=c[1]?c[1]=Math.max(c[1],d[1]):r.push(d)}return r}function _o(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 jt(e,t,n,o,a,l,s,r=Ee+Ge,i=Ee){const c=da(Math.min(t,n),Math.max(t,n),o,a,r,i);if(c.length===0)return e;let d=l<0?Math.min(e,s-1):Math.max(e,s+1);for(let f=0;f<c.length;f++){const v=c.find(([x,g])=>d>=x&&d<=g);if(!v)return d;d=l<0?v[0]-1:v[1]+1}return d}function qa(e,t){return e<=1?[0]:Array.from({length:e},(n,o)=>o*t)}function Io(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 Io(a))t.push([n,...l])}),t}function ua(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 Fl(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 jl(e,t,n,o,a){if(Math.abs(e-n)<1)return`M ${e} ${t} L ${n} ${o}`;const l=Math.min(Oe,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 Xl(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 bn(e,t,n){return{d:`M ${e} ${t} L ${n} ${t}`,segments:[{orientation:"horizontal",x1:e,y1:t,x2:n,y2:t}]}}function ca(e,t,n){return{d:`M ${e} ${t} L ${e} ${n}`,segments:[{orientation:"vertical",x1:e,y1:t,x2:e,y2:n}]}}function Ga(e,t,n,o){if(Math.abs(t-o)<1)return bn(e,t,n);if(Math.abs(e-n)<1)return ca(e,t,o);const a=n>e?1:-1,l=o>t?1:-1,s=Math.min(Oe,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 Kl(e,t,n,o,a){if(Math.abs(t-a)<1)return bn(e,t,o);const l=n>e?1:-1,s=o>n?1:-1,r=a>t?1:-1,i=Math.min(Oe,Math.abs(n-e)/2||Oe,Math.abs(a-t)/2||Oe,Math.abs(o-n)/2||Oe);return Math.abs(n-e)<2?Wn(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 Wn(e,t,n,o){if(Math.abs(e-n)<1)return ca(e,t,o);if(Math.abs(t-o)<1)return bn(e,t,n);const a=n>e?1:-1,l=o>t?1:-1,s=Math.min(Oe,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 Yl(e,t,n,o,a,l,s){if(Math.abs(t-o)<1&&!Ze(t,e,n,a,l))return bn(e,t,n);if(Math.abs(e-n)<1&&!Ct(e,t,o,a,l))return ca(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"?Ga(e,t,n,o):Wn(e,t,n,o):r?Ga(e,t,n,o):i?Wn(e,t,n,o):null}function ql(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 Eo(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-nn,width:l-a,height:nn*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-nn,y:n,width:nn*2,height:o-n}}function Wa(e,t,n){return e.some((o,a)=>{const l=Eo(o,`segment-${a}`);return l?t.some(s=>n.has(s.id)?!1:ql(l,s)):!1})}function Gl(e){const t=[];for(const n of e)n.segments.forEach((o,a)=>{const l=Eo(o,`edge:${n.id}:${a}`);l&&t.push(l)});return t}function jn(e,t,n,o,a){const l=[...un(e,t,n),...zl(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+Ge)):Math.min(o,...s.map(r=>r.y-Ee-Ge))}function pt(e,t){const n=t?.[e.id],o=e.type==="model"?Vl:e.type==="side"||e.type==="prompt"||e.type==="tool"&&e.data.kind==="prompt"?Xa:e.height/2,a=n?.modelAnchorY??o;return e.y+Math.max(Be,Math.min(e.height-Be,a))}function pn(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 c=i.y-Ee,d=i.y+i.height+Ee;if(!(t<c||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 Wl(e,t,n,o,a,l){const s=t.y,r=t.x,i=[];for(const d of[-1,1]){const f=pn(e,s,d,a,l,Dl),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=pn(e,s,d,a,l,14);i.push(jt(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 Ql(e,t,n,o,a,l,s,r){const i=t.x,c=t.y,d=o.x,f=o.y,v=Yl(i,c,d,f,s,r,"horizontal");if(v&&v.segments.length===1&&!Wa(v.segments,s,r))return v;const x=t.side==="left"?-1:1,u=pn(e,c,x,s,r,14),y=i+x*u,S=G=>!Ze(c,i,G,s,r),_=jt(y,c,f,s,r,x,i);if((d-i)*x>=0&&Math.abs(_-i)>1&&Math.abs(_-d)>1&&S(_)&&!Ct(_,c,f,s,r)&&!Ze(f,_,d,s,r)){const G=Kl(i,c,_,d,f);if(!Wa(G.segments,s,r))return G}let k=Gn(a,y,d,c,f,s,r),N=jt(y,c,k,s,r,x,i);S(N)||(N=S(y)?y:i),k=Gn(a,N,d,c,f,s,r);const P=Math.abs(N-i),L=o.side==="left"?n.x-(Be+24):n.x+n.width+Be+24,ne=l??So(L,k,f,s,r),q=N>i?1:-1,D=k>c?1:-1,C=ne>N?1:-1,T=f>k?1:-1,b=d>ne?1:-1,A=Math.min(Oe,Math.abs(P)/2||Oe,Math.abs(k-c)/2||Oe,Math.abs(ne-N)/2||Oe,Math.abs(f-k)/2||Oe,Math.abs(d-ne)/2||Oe);return P<2?{d:[`M ${i} ${c}`,`L ${i} ${k-A*D}`,`Q ${i} ${k} ${i+A*C} ${k}`,`L ${ne-A*C} ${k}`,`Q ${ne} ${k} ${ne} ${k+A*T}`,`L ${ne} ${f-A*T}`,`Q ${ne} ${f} ${ne+A*b} ${f}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"vertical",x1:i,y1:c,x2:i,y2:k},{orientation:"horizontal",x1:i,y1:k,x2:ne,y2:k},{orientation:"vertical",x1:ne,y1:k,x2:ne,y2:f},{orientation:"horizontal",x1:ne,y1:f,x2:d,y2:f}]}:{d:[`M ${i} ${c}`,`L ${N-A*q} ${c}`,`Q ${N} ${c} ${N} ${c+A*D}`,`L ${N} ${k-A*D}`,`Q ${N} ${k} ${N+A*C} ${k}`,`L ${ne-A*C} ${k}`,`Q ${ne} ${k} ${ne} ${k+A*T}`,`L ${ne} ${f-A*T}`,`Q ${ne} ${f} ${ne+A*b} ${f}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"horizontal",x1:i,y1:c,x2:N,y2:c},{orientation:"vertical",x1:N,y1:c,x2:N,y2:k},{orientation:"horizontal",x1:N,y1:k,x2:ne,y2:k},{orientation:"vertical",x1:ne,y1:k,x2:ne,y2:f},{orientation:"horizontal",x1:ne,y1:f,x2:d,y2:f}]}}function Jl(e,t,n,o,a,l,s,r){const i=t.x,c=t.y,d=n.x,f=n.y,v=t.side==="left"?-1:1,x=pn(e,c,v,s,r,14),g=i+v*x,u=a??jt(g,c,o,l,r,v,i,rt,rt),y=a!==null?o:hn(o,u,d,c,f,s,r,f>=c?1:-1,c),S=Math.abs(u-i),_=u>i?1:-1,M=y>c?1:-1,k=d>u?1:-1,N=f>y?1:-1,P=Math.min(Oe,Math.abs(S)/2||Oe,Math.abs(y-c)/2||Oe,Math.abs(d-u)/2||Oe,Math.abs(f-y)/2||Oe);return S<2?{d:[`M ${i} ${c}`,`L ${i} ${y-P*M}`,`Q ${i} ${y} ${i+P*k} ${y}`,`L ${d-P*k} ${y}`,`Q ${d} ${y} ${d} ${y+P*N}`,`L ${d} ${f}`].join(" "),segments:segmentsViaMidY(i,c,d,f,y)}:{d:[`M ${i} ${c}`,`L ${u-P*_} ${c}`,`Q ${u} ${c} ${u} ${c+P*M}`,`L ${u} ${y-P*M}`,`Q ${u} ${y} ${u+P*k} ${y}`,`L ${d-P*k} ${y}`,`Q ${d} ${y} ${d} ${y+P*N}`,`L ${d} ${f}`].join(" "),segments:[{orientation:"horizontal",x1:i,y1:c,x2:u,y2:c},{orientation:"vertical",x1:u,y1:c,x2:u,y2:y},{orientation:"horizontal",x1:u,y1:y,x2:d,y2:y},{orientation:"vertical",x1:d,y1:y,x2:d,y2:f}]}}function Zl(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 mt(e,t,n){if((n&&n.type==="model"?n.placementMode:void 0)==="below-row"){const r=e.x+e.width/2,c=(n?n.x+n.width/2:r)>=r?"right":"left";return{side:c,x:c==="right"?e.x+e.width:e.x,y:pt(e,t)}}if(n?.type==="model"&&ei(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 ei(e){return e.type==="prompt"||e.type==="side"&&e.data.mode==="ai"||e.type==="tool"&&e.data.kind==="prompt"}const We=8,vn=6,ti=12,Qa=6;function Ye(e){return e.x+e.width/2}function ni(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),c=Math.abs(r.x-s.x)+Math.abs(r.y-s.y),d=Math.min(Oe,i/2,c/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),u={x:s.x-f*d,y:s.y-v*d},y={x:s.x+x*d,y:s.y+g*d};n.push(`L ${u.x} ${u.y}`),n.push(`Q ${s.x} ${s.y} ${y.x} ${y.y}`)}const o=t[t.length-1];return n.push(`L ${o.x} ${o.y}`),n.join(" ")}function ai(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 ni(t)}function Ja(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 oi(e){return e==="tool"||e==="provider"||e==="mcp"}function ri(e){return Math.round(e/ti)}function Qn(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 Za(e,t,n,o,a,l,s){const r=a.rowLaneY,i=Qn([{x:e,y:t},{x:e,y:r},{x:n,y:r},{x:n,y:o}]),c=si(e,t,r,l,s),d=li(r,e,n,l,s)??ii(r,e,n,l,s),f=c??d;if(!f)return{d:Ja(i),segments:i};const v=n<e?-1:1,x=vn+Math.abs(a.aisleOffset),g=v<0?f.x-x:f.x+f.width+x,u=f.y+f.height+vn,y=a.rowIndex>0?u:Math.min(a.sourceLaneY,Math.max(r+We/2,u)),S=r>=t?Math.max(t+We,a.escapeLaneY):Math.min(t-We,y),_=Qn([{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:Ja(_),segments:_}}function Ao(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),c=Math.max(t.x1,t.x2);return Math.max(0,Math.min(r,c)-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 si(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,c=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<c&&(i=d,c=v)}return i}function li(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,c=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<c&&(i=d,c=v)}return i}function ii(e,t,n,o,a){const l=Math.min(t,n),s=Math.max(t,n),r=n>=t?1:-1;let i=null,c=Number.POSITIVE_INFINITY;for(const d of o)if(!(a.has(d.id)||!d.id.includes("__model-"))&&e>d.y-We*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<c&&(i=d,c=v)}return i}function di(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)ua(a,l)&&(t+=1e4),t+=Ao(a,l)*25;return t}function eo(e,t){let n=0;for(const o of t)for(const a of e)for(const l of o.segments)ua(a,l)&&(n+=1e5),n+=Ao(a,l)*1e3;return n}function ui(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 ci(e,t,n,o,a,l,s,r){const i=Xl(e,t,n,o,a);if(!ui(i,s,r))return{d:jl(e,t,n,o,a),segments:i};const c=_o(n+l,da(a,o,s,r,10,10)),d=hn(o-Math.min(Math.max((o-a)/4,Be),48),c,n,a,o,s,r,-1,o),f=Qn([{x:e,y:t},{x:e,y:a},{x:c,y:a},{x:c,y:d},{x:n,y:d},{x:n,y:o}]);return{d:ai(f),segments:f}}function to(e,t,n,o){return[...n,...Mt(e,t,o)]}function fi(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 u=s.get(x.to);u?u.push(x):s.set(x.to,[x])}for(const[,x]of l)x.sort((g,u)=>{const y=a.get(g.to),S=a.get(u.to);return y.x+y.width/2-(S.x+S.width/2)});for(const[,x]of s)x.sort((g,u)=>{const y=a.get(g.from),S=a.get(u.from);return y.x+y.width/2-(S.x+S.width/2)});const r=new Map,i=new Map;for(const[x,g]of l){const u=a.get(x);if(u.type==="agent"){g.forEach(y=>{const S=y.sideId==="a"?u.x+u.width*.25:u.x+u.width*.75;r.set(y.id,S)});continue}if(u.type==="side"&&g.some(y=>y.toolKind)){const S=u.data.tools||[],_=[];S.some(L=>L.kind==="tool"||L.kind==="provider"||L.kind==="mcp")&&_.push("function"),S.some(L=>L.kind==="prompt")&&_.push("prompt"),S.some(L=>L.kind==="subagent")&&_.push("subagent"),S.some(L=>L.kind==="handoff")&&_.push("handoff");const M=_.length>0?.45:1,k=_.length>0?(1-M)/_.length:0,N=new Map;for(const L of g){if(!L.toolKind||_.length===0)continue;const ne=L.toolKind==="tool"||L.toolKind==="provider"||L.toolKind==="mcp"?"function":L.toolKind,q=N.get(ne);q?q.push(L):N.set(ne,[L])}for(const[L,ne]of N)ne.sort((q,D)=>{const C=a.get(q.to),T=a.get(D.to);if(L==="function"){const b=C.y-T.y;if(Math.abs(b)>1)return b}return Ye(C)-Ye(T)});const P=o?.[u.id]?.toolColumns;for(const[L,ne]of N){let q,D;const C=P?.[L];if(C)q=u.x+C.left,D=u.x+C.left+C.width;else{const G=_.indexOf(L);if(G<0)continue;q=u.x+u.width*(M+G*k),D=u.x+u.width*(M+(G+1)*k)}const T=q+Be,b=D-Be,A=ne.length;ne.forEach((G,Y)=>{const H=A===1?(q+D)/2:T+(b-T)*Y/(A-1);r.set(G.id,H)})}g.forEach(L=>{if(r.has(L.id))return;if(L.toolKind&&_.length>0){const D=L.toolKind==="tool"||L.toolKind==="provider"||L.toolKind==="mcp"?"function":L.toolKind,C=_.indexOf(D);if(C>=0){const T=M+C*k+k/2;r.set(L.id,u.x+u.width*T);return}}const ne=a.get(L.to),q=ne.x+ne.width/2;r.set(L.id,Math.max(u.x+Be,Math.min(u.x+u.width-Be,q)))});continue}g.forEach(y=>{const S=a.get(y.to),_=S.x+S.width/2;r.set(y.id,Math.max(u.x+Be,Math.min(u.x+u.width-Be,_)))})}for(const[x,g]of s){const u=a.get(x),y=u.x+u.width/2;g.forEach(S=>i.set(S.id,y))}for(const[x,g]of l){const u=a.get(x);if(!u||g.length<=1)continue;const y=new Map;for(const S of g){const _=r.get(S.id);if(_===void 0)continue;const M=Math.round(_),k=y.get(M);k?k.push(S):y.set(M,[S])}for(const[S,_]of y){if(_.length<=1)continue;_.sort((k,N)=>{const P=a.get(k.to),L=a.get(N.to);return Ye(P)-Ye(L)});const M=r.get(_[0].id)??S;_.forEach((k,N)=>{const P=(N-(_.length-1)/2)*We;r.set(k.id,Math.max(u.x+Be,Math.min(u.x+u.width-Be,M+P)))})}}const c=Array.from(a.values()),d=new Map;for(const x of t){const g=a.get(x.from),u=a.get(x.to);if(!g||!u)continue;const y=d.get(x.from);y?y.push(x):d.set(x.from,[x])}for(const[,x]of d)x.sort((g,u)=>{const y=a.get(g.to),S=a.get(u.to),_=y.y-S.y;return Math.abs(_)>1?_:y.x+y.width/2-(S.x+S.width/2)});const f=new Map,v=new Map;for(const[x,g]of d){const u=a.get(x);if(!u||u.type!=="side")continue;const y=g.filter(Y=>oi(Y.toolKind)).filter(Y=>!!a.get(Y.to)).sort((Y,H)=>{const E=a.get(Y.to),F=a.get(H.to),j=E.y-F.y;return Math.abs(j)>1?j:E.x+E.width/2-(F.x+F.width/2)});if(y.length<=1)continue;const S=y.reduce((Y,H)=>Y+(r.get(H.id)??Ye(u)),0)/y.length,M=y.reduce((Y,H)=>Y+Ye(a.get(H.to)),0)/y.length<S,k=[],N=new Map;for(const Y of y){const H=a.get(Y.to),E=ri(H.y),F=N.get(E);if(F)F.push(Y);else{const j=[Y];N.set(E,j),k.push(j)}}k.sort((Y,H)=>a.get(Y[0].to).y-a.get(H[0].to).y);const P=Math.min(...y.map(Y=>a.get(Y.to).y)),L=u.y+u.height+8,ne=Math.max(L,P-8),q=y.length<=1?0:(ne-L)/(y.length-1);v.set(u.id,ne),k.forEach(Y=>{Y.sort((H,E)=>{const F=a.get(H.to),j=a.get(E.to);return Ye(F)-Ye(j)})});const D=[...y].sort((Y,H)=>(r.get(Y.id)??Ye(u))-(r.get(H.id)??Ye(u))),C=M,T=!M,b=[];for(const Y of[C,!C])for(const H of[T,!T])for(const E of[!1,!0])b.push({sourceReversed:Y,rowReversed:H,aisleReversed:E,preference:(Y===C?0:2)+(H===T?0:1)});let A=new Map,G=Number.POSITIVE_INFINITY;for(const Y of b){const H=new Map,E=new Map;D.forEach((se,fe)=>{H.set(se.id,fe),E.set(se.id,Y.sourceReversed?y.length-1-fe:fe)});const F=new Map,j=k[0]?.length??0;k.forEach((se,fe)=>{const z=Math.min(...se.map(ve=>a.get(ve.to).y)),U=Math.max(L,z-34),J=Math.max(U,z-10),le=se.length<=1?0:(J-U)/(se.length-1),ie=M?1:-1;se.forEach((ve,ee)=>{const Z=E.get(ve.id)??ee,m=Y.rowReversed?se.length-1-ee:ee,w=Y.aisleReversed?y.length-1-(H.get(ve.id)??ee):H.get(ve.id)??ee,V=fe===0&&se.length>1?L+ee*q:L+Z*q,oe=H.get(ve.id)??ee,de=fe===0?Math.max(V,U+m*le-We/2):ne-We+Math.max(0,oe-j)*2,te=M?u.x+u.width+vn:u.x-vn,re=(M?1:-1)*w*We,be=U+m*le,ke=Math.min(z-4,Math.max(be,V+We/2));F.set(ve.id,{rowIndex:fe,sourceLaneY:V,escapeLaneY:de,rowLaneY:ke,aisleX:te,aisleOffset:re,aisleDirection:ie})})});const X=y.map(se=>{const fe=a.get(se.to),z=r.get(se.id)??Ye(u),U=u.y+u.height,J=i.get(se.id)??Ye(fe),le=fe.y,ie=new Set([u.id,fe.id]),ve=to(u,fe,c,n);return Za(z,U,J,le,F.get(se.id),ve,ie)}),he=di(X)+Y.preference;he<G&&(G=he,A=F)}for(const[Y,H]of A)f.set(Y,H)}return t.map(x=>{const g=a.get(x.from),u=a.get(x.to);if(!g||!u)return null;const y=r.get(x.id)??g.x+g.width/2,S=g.y+g.height,_=i.get(x.id)??u.x+u.width/2,M=u.y,k=d.get(x.from)??[x],P=Math.max(0,k.findIndex(G=>G.id===x.id))-(k.length-1)/2,L=S+Math.min((M-S)/2,24)+P*We,q=v.get(x.from)&&g.type==="side"&&!f.has(x.id)?S:L,D=[...c,...Mt(g,u,n)],C=new Set([g.id,u.id]),T=f.get(x.id),b=T?to(g,u,c,n):D,A=T?Za(y,S,_,M,T,b,C):ci(y,S,_,M,Gn(q,y,_,S,M,D,C),P*We,D,C);return{id:x.id,d:A.d,sideId:x.sideId,kind:x.kind??"structural",toolKind:x.toolKind,sourceAnchor:{side:"bottom",x:y,y:S},targetAnchor:{side:"top",x:_,y:M},segments:A.segments}}).filter(x=>!!x)}function mi(e,t,n,o,a,l,s,r){if(e.length<=1)return t;const i=Io(t);let c=t,d=Number.POSITIVE_INFINITY;for(const f of i){const v=e.map((g,u)=>{const y=a.get(g.from),S=mt(y,l,n);return Fl(S.x,S.y,s.get(g.id)??S.x,r.get(g.id)??S.y,f[u],o)});let x=0;for(let g=0;g<v.length;g++)for(let u=g+1;u<v.length;u++)for(const y of v[g])for(const S of v[u])ua(y,S)&&(x+=1e3);x+=f.reduce((g,u,y)=>{const S=e[y];return g+Math.abs(u-(s.get(S.id)??u))},0),x<d&&(d=x,c=f)}return c}function hi(e,t,n){return{side:t,x:t==="right"?e.x+e.width:e.x,y:pt(e,n)}}function rn(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 no(e){return e.reduce((t,n)=>t+Math.abs(n.x2-n.x1)+Math.abs(n.y2-n.y1),0)}function pi(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 u=s.get(g.to);if(!u||u.type!=="model")continue;const y=u.placementMode,S=`${u.id}|${y??"side"}`,_=i.get(S);_?_.push(g):i.set(S,[g])}const c=new Map,d=new Map,f=new Map,v=new Map;for(const[,g]of i){const u=s.get(g[0].to),y=u.placementMode,S=Zl(y),_=[...g];if(S==="top"){_.sort((j,X)=>{const he=s.get(j.from),se=s.get(X.from);return he.x+he.width/2-(se.x+se.width/2)});const k=u.x+u.width/2,N=_.filter(j=>{const X=s.get(j.from);return X.x+X.width/2<k}),P=_.filter(j=>{const X=s.get(j.from);return X.x+X.width/2>=k}),L=[...N].reverse(),ne=[...P],q=[...L,...ne],D=Ka(u,q.length,"top"),C=q.every(j=>u.y>=mt(s.get(j.from),o,u).y),T=C?Math.max(...q.map(j=>{const X=s.get(j.from),he=mt(X,o,u),se=X.y+X.height+Ee+Ge,fe=jn(X,u,n,se,!0);return hn(fe,he.x,u.x+u.width/2,he.y,u.y,Ht([...r,...Mt(X,u,n),...un(X,u,n)],an,on),new Set([X.id,u.id]),1,he.y)})):Math.min(...q.map(j=>{const X=s.get(j.from),he=mt(X,o,u),se=X.y-Ee-Ge,fe=jn(X,u,n,se,!1);return hn(fe,he.x,u.x+u.width/2,he.y,u.y,Ht([...r,...Mt(X,u,n),...un(X,u,n)],an,on),new Set([X.id,u.id]),-1,he.y)})),b=qa(q.length,Re),A=b[b.length-1]??0,G=u.y-Bl,Y=C?G-A:T,H=[{isLeftApproach:!0,edges:N,startIndex:0,assignOrder:(j,X)=>{const he=s.get(j.from);return s.get(X.from).x-he.x}},{isLeftApproach:!1,edges:P,startIndex:L.length,assignOrder:(j,X)=>{const he=s.get(j.from),se=s.get(X.from);return he.x-se.x}}];for(const j of H){const X=j.edges;if(X.length===0)continue;const he=[...X].sort(j.assignOrder),se=[];for(const fe of he){const z=s.get(fe.from),U=mt(z,o,u),J=f.get(fe.id)??Y,le=new Set([z.id,u.id]),ie=Ht([...r,...Mt(z,u,n)],an,on);let ve=Wl(z,U,J,u.x+u.width/2,ie,le);const ee=Math.min(U.y,J),Z=Math.max(U.y,J);for(let m=0;m<6;m++){const w=se.find(oe=>Math.max(ee,oe.minY)<Math.min(Z,oe.maxY)&&Math.abs(ve-oe.exitX)<Re);if(!w)break;const V=w.exitX<=U.x?-1:1;ve=jt(w.exitX+V*Re,U.y,J,ie,le,V,U.x,rt,rt)}v.set(fe.id,ve),se.push({exitX:ve,minY:ee,maxY:Z})}}[...q].sort((j,X)=>{const he=s.get(j.from),se=s.get(X.from),fe=he.x+he.width/2,z=se.x+se.width/2,U=fe<k,J=z<k,le=v.get(j.id)??fe,ie=v.get(X.id)??z;return U!==J?Math.abs(le-k)-Math.abs(ie-k):U?C?ie-le:le-ie:C?le-ie:ie-le}).forEach((j,X)=>f.set(j.id,C?Y+b[X]:Y-b[X]));const F=mi(q,D,u,u.y,s,o,v,f);q.forEach((j,X)=>c.set(j.id,{side:"top",x:F[X],y:u.y}));continue}_.sort((k,N)=>{const P=s.get(k.from),L=s.get(N.from),ne=pt(P,o)-pt(L,o);return ne!==0?ne:P.x+P.width/2-(L.x+L.width/2)});const M=Ka(u,_.length,S);if(_.forEach((k,N)=>{const P=pt(u,o),L=_.length===1?mt(s.get(k.from),o,u).y:null;c.set(k.id,{side:S,x:S==="left"?u.x:u.x+u.width,y:_.length===1&&L!==null&&Math.abs(L-P)<=Ul?L:_.length===1?P:M[N]})}),_.length>1){const k=new Set([u.id,..._.map(C=>C.from)]),N=[...r,...n.filter(C=>![{x:u.x+u.width/2,y:u.y+u.height/2},..._.map(b=>{const A=s.get(b.from);return{x:A.x+A.width/2,y:A.y+A.height/2}})].some(b=>b.x>=C.x&&b.x<=C.x+C.width&&b.y>=C.y&&b.y<=C.y+C.height)).map(yn),...a],P=_.map(C=>c.get(C.id).y),L=S==="left"?u.x-(Be+24):u.x+u.width+Be+24,ne=So(L,Math.min(...P),Math.max(...P),N,k),q=qa(_.length,Re),D=S==="left"?-1:1;_.forEach((C,T)=>d.set(C.id,ne+D*q[T]))}}const x=[];return t.map(g=>{if(g.from===g.to)return null;const u=s.get(g.from),y=s.get(g.to);if(!u||!y||y.type!=="model")return null;const S=mt(u,o,y),_=c.get(g.id);if(!_)return null;const k=[...Ht([...r,...Mt(u,y,n),...un(u,y,n)],an,on),...a],N=new Set([u.id,y.id]),P=Ht(r.filter(H=>!N.has(H.id)),Qa,Qa),L=_.y>=S.y,ne=L?u.y+u.height+Ee+Ge:u.y-Ee-Ge,q=jn(u,y,n,ne,L),D=f.get(g.id)??q;let C=S,T=null;const b=S.side,G=[S,hi(u,b==="left"?"right":"left",o)],Y=[D,D-Re,D-Re*2,D-Re*4,D-Re*8,D-Re*16,D-Re*24,D+Re,D+Re*2,D+Re*4,D+Re*8,D+Re*16,D+Re*24];if(_.side==="top"){let H=Number.POSITIVE_INFINITY;const E=v.get(g.id)??null,F=E===null?[null]:[E,null];for(const j of G)for(const X of F)for(const he of Y){const se=Jl(u,j,_,he,X,k,k,N),fe=eo(se.segments,[...l,...x])+rn(se.segments,P)*5e4+rn(se.segments,a)*1e4+no(se.segments)*.01+Math.abs(he-D)*.2+(j.side===b?0:25)+(X===E?0:10);fe<H&&(H=fe,C=j,T=se)}}if(!T){let H=Number.POSITIVE_INFINITY;const E=d.get(g.id)??null,F=E===null?[null]:[E,null],j=L?1:-1,X=[D,D+j*Re,D+j*Re*2,D+j*Re*4,D+j*Re*8,D-j*Re];for(const he of G)for(const se of F)for(const fe of X){const z=Ql(u,he,y,_,fe,se,k,N),U=eo(z.segments,[...l,...x])+rn(z.segments,P)*5e4+rn(z.segments,a)*1e4+no(z.segments)*.01+Math.abs(fe-D)*.2+(he.side===b?0:25)+(se===E?0:10);U<H&&(H=U,C=he,T=z)}}return x.push({d:T.d,segments:T.segments}),{id:g.id,d:T.d,sideId:g.sideId,kind:"model",toolKind:g.toolKind,sourceAnchor:C,targetAnchor:_,segments:T.segments}}).filter(g=>!!g)}function vi(e){const t=Hl(e.edges),n=t.filter(l=>l.kind!=="model"),o=t.filter(l=>l.kind==="model"),a=fi(e.nodes,n,e.groups,e.nodeMetrics);return[...a,...pi(e.nodes,o,e.groups,e.nodeMetrics,Gl(a),a)]}const gi={class:"pointer-events-none absolute left-0 top-0 overflow-visible",width:"1",height:"1"},xi=["data-edge-id","data-edge-kind","data-edge-tool-kind","d","stroke-width","stroke-dasharray"],yi=_e({__name:"CanvasEdges",props:{nodes:{},edges:{},groups:{},selectedNodeId:{},hoveredNodeId:{},nodeMetrics:{}},setup(e){const t=e,n=O(()=>{const l=new Map;for(const s of t.edges)l.set(s.id,s);return l}),o=O(()=>vi({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)=>(p(),$("svg",gi,[(p(!0),$($e,null,Ie(o.value,r=>(p(),$("path",{key:r.id,"data-edge-id":r.id,"data-edge-kind":r.kind,"data-edge-tool-kind":r.toolKind,d:r.d,class:ue(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,xi))),128))]))}}),bi={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ki(e,t){return p(),$("svg",bi,[...t[0]||(t[0]=[h("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14"},null,-1)])])}const wi=nt({name:"lucide-minus",render:ki}),$i={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Mi(e,t){return p(),$("svg",$i,[...t[0]||(t[0]=[h("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 Ti=nt({name:"lucide-maximize",render:Mi}),Ci={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"},Si={class:"min-w-[3rem] text-center text-[11px] font-medium tabular-nums text-neutral-500 dark:text-neutral-400"},_i=_e({__name:"CanvasControls",props:{scalePercent:{}},emits:["zoom-in","zoom-out","fit-view"],setup(e){return(t,n)=>(p(),$("div",Ci,[h("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(I(wi),{class:"h-3.5 w-3.5"})]),h("span",Si,K(e.scalePercent)+"% ",1),h("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(I(xo),{class:"h-3.5 w-3.5"})]),n[3]||(n[3]=h("div",{class:"mx-0.5 h-4 w-px bg-neutral-200 dark:bg-neutral-700"},null,-1)),h("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(I(Ti),{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,c){o("open",{target:r,anchorEl:i.currentTarget,editData:c})}function l(r,i){i.key!=="Enter"&&i.key!==" "||(i.preventDefault(),a(r,i,editData))}const s=O(()=>["group/edit-region cursor-pointer focus-visible:outline-none",n.positioned?"relative":""]);return(r,i)=>(p(),ce(lt(e.as||"div"),{role:"button",tabindex:"0","data-edit-active":e.active||null,class:ue(s.value),onClick:i[0]||(i[0]=Me(c=>a(e.target,c,e.editData),["stop"])),onKeydown:i[1]||(i[1]=c=>l(e.target,c)),onMouseenter:i[2]||(i[2]=c=>o("hover-target",e.target)),onMouseleave:i[3]||(i[3]=c=>o("hover-target",null))},{default:ye(()=>[i[4]||(i[4]=h("div",{class:"composition-edit-region-overlay"},null,-1)),lo(r.$slots,"default")]),_:3},40,["data-edit-active","class"]))}}),Ii={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ei(e,t){return p(),$("svg",Ii,[...t[0]||(t[0]=[h("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 Jn=nt({name:"lucide-variable",render:Ei}),Ai={key:0,class:"mt-1.5 w-full border-collapse text-[11px]"},Ni={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"},fa=_e({__name:"VariablesList",props:{variables:{},muted:{type:Boolean},flaggedNames:{default:()=>[]},flagLabel:{default:"env"}},setup(e){const t=e,n=O(()=>new Set(t.flaggedNames));return(o,a)=>(p(),$("div",null,[h("div",{class:ue(["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(I(Jn),{class:"h-3 w-3"}),a[0]||(a[0]=pe(" Variables ",-1))],2),t.variables.length>0?(p(),$("table",Ai,[(p(!0),$($e,null,Ie(t.variables,l=>(p(),$("tr",{key:l.name},[h("td",{class:ue(["whitespace-nowrap pr-4 py-px font-mono",t.muted?"opacity-80":"text-neutral-800 dark:text-neutral-200"])},[h("span",null,K(l.name),1),n.value.has(l.name)?(p(),$("span",Ni,K(t.flagLabel),1)):W("",!0)],2),h("td",{class:ue(["whitespace-nowrap py-px text-right",t.muted?"opacity-40":"text-neutral-400 dark:text-neutral-500"])},K(l.type)+K(l.required?" *":""),3)]))),128))])):(p(),$("div",{key:1,class:ue(["mt-1.5 text-[11px] italic",t.muted?"opacity-40":"text-neutral-400 dark:text-neutral-600"])}," None ",2))]))}}),Pi="ring-2 agents-ring-selected ring-offset-2 ring-offset-white shadow-md dark:ring-offset-neutral-900",Li="ring-[3px] agents-ring-selected ring-offset-[6px] ring-offset-white shadow-lg dark:ring-offset-neutral-950";function gt(e,t){return e?Pi:t?Li:""}const Ri={class:"flex border-b border-neutral-200 dark:border-neutral-700"},Oi={class:"flex items-center justify-between gap-3 px-5 pt-3.5 pb-2"},Di={class:"ml-1 shrink-0 rounded-full border border-current/60 px-1.5 py-px text-[9.5px] font-semibold tracking-wider"},Bi={class:"flex items-center gap-3.5 px-5 pt-1 pb-3.5"},Vi=["src"],Ui={class:"min-w-0"},Hi={class:"whitespace-nowrap text-[16px] font-semibold leading-tight"},zi={class:"mt-0.5 whitespace-nowrap font-mono text-xs text-neutral-400 dark:text-neutral-500"},Fi={key:0,class:"px-5 pb-3"},ji={key:0,class:"mb-2 flex flex-wrap gap-1"},Xi={key:1,class:"max-w-[280px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Ki={class:"mt-1 max-w-[280px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Yi={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"},Gi={class:"mt-0.5 whitespace-nowrap font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},Wi={class:"mt-1.5 grid grid-cols-[auto_1fr] gap-x-3 text-[11px]"},Qi={class:"whitespace-nowrap py-[1px] text-neutral-400 dark:text-neutral-500"},Ji=["title"],Zi={class:"flex items-center gap-1.5 whitespace-nowrap text-[10px] font-bold uppercase tracking-[0.15em] text-amber-600 dark:text-amber-400"},ed={key:0,class:"mt-0.5 whitespace-nowrap font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},td={key:1,class:"mt-0.5 text-[11px] text-neutral-400 dark:text-neutral-500"},nd={key:2,class:"mt-1.5 grid grid-cols-[auto_1fr] gap-x-3 text-[11px]"},ad={class:"whitespace-nowrap py-[1px] text-neutral-400 dark:text-neutral-500"},od=["title"],No=_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}=Kt();function l(C){const T=a.value?.target;return!T||T.entityType!=="agent"||T.entityId!==n.data.name?!1:T.section===C}function s(C){if(l(C))return!0;const T=n.hoveredEditTarget;return!T||T.entityType!=="agent"||T.entityId!==n.data.name?!1:T.section===C}function r(C){return{entityType:"agent",entityId:n.data.name,section:C}}const i=O(()=>n.data.type==="dual_ai"),c=O(()=>i.value?"Dual AI":"AI + Human"),d=O(()=>n.kindLabel?n.kindLabel:n.data._isSubagent?"Sub-agent":"Agent"),f=O(()=>n.accentTextClass?n.accentTextClass:n.data._isSubagent?"text-emerald-600 dark:text-emerald-400":"text-neutral-500 dark:text-neutral-400"),v=O(()=>n.data.side_a_label||"Side A"),x=O(()=>n.data.side_b_label||(i.value?"Side B":"Human")),g=O(()=>q({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})),u=O(()=>q({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})),y=O(()=>n.data._variables||[]),S=O(()=>Object.keys(n.data.env||{}).filter(C=>C.trim().length>0)),_=O(()=>{const C=new Set(y.value.map(T=>T.name));return S.value.filter(T=>C.has(T))}),M=O(()=>n.data.expose_as_tool&&n.data.tool_description?.trim()||null),k=O(()=>n.data._isSubagent&&M.value?M.value:n.data.description||null),N=O(()=>!n.data._isSubagent&&!!M.value),P=O(()=>{if(!i.value)return null;const C=n.data.max_session_turns;return typeof C!="number"?"unlimited session turns":`max ${C} session turn${C===1?"":"s"}`}),L=O(()=>{const C=[];return n.data.expose_as_tool&&!n.data._isSubagent&&C.push("tool"),P.value&&C.push(P.value),S.value.length>0&&C.push(`${S.value.length} env override${S.value.length===1?"":"s"}`),C}),ne=O(()=>!!k.value||N.value||L.value.length>0);function q(C){return[{key:"stop_on_response",label:"Stop on response",value:C.stopOnResponse?"On":"Off",active:C.stopOnResponse},{key:"stop_tool",label:"Stop tool",value:C.stopTool||"Off",active:!!C.stopTool},{key:"max_steps",label:"Max steps",value:D(C.maxSteps),active:C.maxSteps!==null&&C.maxSteps!==void 0},{key:"end_conversation",label:"End conversation tool",value:C.endConversationTool||"Off",active:!!C.endConversationTool}]}function D(C){return typeof C=="number"?String(C):"Unlimited"}return(C,T)=>(p(),$("div",{"data-canvas-node":"",class:ue(["absolute flex flex-col rounded-xl border text-neutral-900 transition-shadow select-none dark:text-neutral-100",e.borderClass,e.backgroundClass,I(gt)(e.selected,e.hovered)]),style:{width:"max-content"}},[h("div",Ri,[Q(Xe,{class:"min-w-0 flex-1",target:r("identity"),active:s("identity"),onOpen:T[1]||(T[1]=b=>o("edit-surface",b)),onHoverTarget:T[2]||(T[2]=b=>o("hover-edit-target",b))},{default:ye(()=>[h("div",Oi,[h("div",{class:ue(["flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.2em]",f.value])},[Q(I(tt),{class:"h-3 w-3"}),h("span",null,K(d.value),1),h("span",Di,K(c.value),1)],2),e.actionLabel?(p(),$("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]=Me(b=>C.$emit("action"),["stop"]))},K(e.actionLabel),1)):W("",!0)]),h("div",Bi,[h("img",{src:e.data.icon||I(na)(e.data.name),alt:"",class:"h-10 w-10 shrink-0 rounded-lg object-cover"},null,8,Vi),h("div",Ui,[h("div",Hi,K(e.data.title),1),h("div",zi,K(e.data.name),1)])]),ne.value?(p(),$("div",Fi,[L.value.length>0?(p(),$("div",ji,[(p(!0),$($e,null,Ie(L.value,b=>(p(),$("span",{key:b,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"},K(b),1))),128))])):W("",!0),k.value?(p(),$("p",Xi,K(k.value),1)):W("",!0),N.value?(p(),$("div",{key:2,class:ue(k.value?"mt-2":"")},[T[9]||(T[9]=h("div",{class:"text-[10px] font-bold uppercase tracking-[0.16em] text-neutral-400 dark:text-neutral-500"}," Tool use ",-1)),h("p",Ki,K(M.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]=b=>o("edit-surface",b)),onHoverTarget:T[4]||(T[4]=b=>o("hover-edit-target",b))},{default:ye(()=>[Q(fa,{variables:y.value,"flagged-names":_.value,"flag-label":"env"},null,8,["variables","flagged-names"])]),_:1},8,["target","active"])]),h("div",Yi,[Q(Xe,{class:"px-3 py-2",target:r("side-a"),active:s("side-a"),onOpen:T[5]||(T[5]=b=>o("edit-surface",b)),onHoverTarget:T[6]||(T[6]=b=>o("hover-edit-target",b))},{default:ye(()=>[h("div",qi,[Q(I(tt),{class:"h-3 w-3"}),pe(" "+K(v.value),1)]),h("div",Gi,K(e.data.side_a_agent_prompt),1),h("dl",Wi,[(p(!0),$($e,null,Ie(g.value,b=>(p(),$($e,{key:b.key},[h("dt",Qi,K(b.label),1),h("dd",{class:ue(["whitespace-nowrap py-[1px] text-right font-mono",b.active?"text-sky-600 dark:text-sky-400":"text-neutral-400 dark:text-neutral-600"]),title:b.value},K(b.value),11,Ji)],64))),128))])]),_:1},8,["target","active"]),T[10]||(T[10]=h("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]=b=>o("edit-surface",b)),onHoverTarget:T[8]||(T[8]=b=>o("hover-edit-target",b))},{default:ye(()=>[h("div",Zi,[(p(),ce(lt(i.value?I(tt):I(aa)),{class:"h-3 w-3"})),pe(" "+K(x.value),1)]),e.data.side_b_agent_prompt?(p(),$("div",ed,K(e.data.side_b_agent_prompt),1)):(p(),$("div",td,"No prompt")),e.data.side_b_agent_prompt?(p(),$("dl",nd,[(p(!0),$($e,null,Ie(u.value,b=>(p(),$($e,{key:b.key},[h("dt",ad,K(b.label),1),h("dd",{class:ue(["whitespace-nowrap py-[1px] text-right font-mono",b.active?"text-amber-600 dark:text-amber-400":"text-neutral-400 dark:text-neutral-600"]),title:b.value},K(b.value),11,od)],64))),128))])):W("",!0)]),_:1},8,["target","active"])])],2))}}),rd=_e({__name:"AgentNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean},hoveredEditTarget:{}},emits:["select","edit-surface","hover-edit-target"],setup(e){return(t,n)=>(p(),ce(No,{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"]))}}),sd={},ld={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 id(e,t){return p(),$("svg",ld,[...t[0]||(t[0]=[h("rect",{width:"128",height:"128",rx:"6",fill:"#3178c6"},null,-1),h("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 Xt=fo(sd,[["render",id]]),dd={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ud(e,t){return p(),$("svg",dd,[...t[0]||(t[0]=[h("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[h("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"}),h("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 Po=nt({name:"lucide-file-pen-line",render:ud}),cd={class:"relative"},fd={class:"flex items-start gap-1.5"},md=["aria-label"],hd={key:1,class:"mt-0.5 inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center"},pd={class:"min-w-0 flex-1"},vd={class:"flex min-w-0 flex-wrap items-center gap-x-1.5 gap-y-1"},gd={key:0,class:"text-[12px] leading-none font-semibold text-rose-500 dark:text-rose-400","aria-label":"Required"},xd={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"},yd={key:0,class:"mt-0.5 max-w-[32rem] break-words text-[10px] leading-relaxed text-neutral-400 dark:text-neutral-500"},bd={key:0},kd=_e({__name:"DataTreeRow",props:{node:{},depth:{},collapsed:{}},emits:["toggle"],setup(e,{emit:t}){const n=e,o=t,a=O(()=>(n.node.children?.length??0)>0),l=O(()=>a.value?!n.collapsed.has(n.node.id):!1),s=O(()=>({paddingLeft:`${n.depth*20}px`})),r=O(()=>n.depth===0);return(i,c)=>{const d=At("DataTreeRow",!0);return p(),$("div",cd,[h("div",{style:De(s.value),class:"py-1.5"},[h("div",fd,[a.value?(p(),$("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:c[0]||(c[0]=Me(f=>o("toggle",e.node.id),["stop"]))},[Q(I(yo),{class:ue(["h-3 w-3 transition-transform",l.value?"rotate-90":""])},null,8,["class"])],8,md)):(p(),$("span",hd,[...c[2]||(c[2]=[h("span",{class:"inline-block h-1.5 w-1.5 rounded-full bg-neutral-300 dark:bg-neutral-600"},null,-1)])])),h("div",pd,[h("div",vd,[h("span",{class:ue(["truncate font-mono",r.value?"text-[12px] text-neutral-900 dark:text-neutral-100":"text-[11px] text-neutral-700 dark:text-neutral-300"])},K(e.node.label),3),e.node.required?(p(),$("span",gd," * ")):W("",!0),e.node.value?(p(),$("span",xd,K(e.node.value),1)):W("",!0)]),e.node.description?(p(),$("div",yd,K(e.node.description),1)):W("",!0)])])],4),a.value&&l.value?(p(),$("div",bd,[(p(!0),$($e,null,Ie(e.node.children,f=>(p(),ce(d,{key:f.id,node:f,depth:e.depth+1,collapsed:e.collapsed,onToggle:c[1]||(c[1]=v=>o("toggle",v))},null,8,["node","depth","collapsed"]))),128))])):W("",!0),a.value&&l.value?(p(),$("div",{key:1,class:"pointer-events-none absolute bottom-0 w-px bg-neutral-200 dark:bg-neutral-800",style:De({top:"22px",left:`${e.depth*20+7}px`})},null,4)):W("",!0)])}}}),wd={key:0,class:"text-[11px] italic text-neutral-400 dark:text-neutral-600"},$d={key:1},Lo=_e({__name:"DataTreeView",props:{nodes:{},emptyLabel:{default:"No fields"}},setup(e){const t=e,n=B(new Set);function o(l,s){for(const r of l)s(r),r.children?.length&&o(r.children,s)}Pe(()=>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?(p(),$("div",wd,K(e.emptyLabel),1)):(p(),$("div",$d,[(p(!0),$($e,null,Ie(e.nodes,r=>(p(),ce(kd,{key:r.id,node:r,depth:0,collapsed:n.value,onToggle:a},null,8,["node","collapsed"]))),128))]))}});function zt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function ao(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 Md(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 Tt(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])=>Tt(r,zt(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)=>Tt(s.length===1?"items":`item ${i+1}`,zt(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,c)=>Tt(`${s} ${c+1}`,zt(i)?i:{},`${n}.${s}.${c}`,!0)));zt(t.additionalProperties)&&a.push(Tt("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(ao).join(", "),r=t.enum.length>3?", …":"";l.push(s+r)}else"const"in t&&l.push(ao(t.const));return{id:n,label:e,value:Md(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])=>Tt(o,zt(a)?a:{},`schema.${o}`,n.has(o)))}return[Tt("value",e,"schema.value",!0)]}function Td(e){const t=e.reasoning?.effort;return t==="low"||t==="medium"||t==="high"?t:"off"}function Cd(e){const t=e.reasoning?.maxTokens;return typeof t=="number"?t.toLocaleString():"—"}function Ro(e,t){const n=Td(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:Cd(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 oo(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 Oo(e){const[t,n]=await Promise.all([e.toolsCatalog?Promise.resolve(e.toolsCatalog):Qe("/tools"),e.models?Promise.resolve(e.models):Qe("/models").then(o=>Object.fromEntries(o.models.map(a=>[a.id,a])))]);return{toolsCatalog:t,models:n}}async function Sd(e,t={}){const n=await ot(e);if(!n)return null;try{const{toolsCatalog:o,models:a}=await Oo(t);return Bo(n,{toolsCatalog:o,models:a})}catch{return{prompt:n,nestedTools:[],model:null}}}async function Do(e,t={}){if(e.length===0)return[];const n=await Oo(t).catch(()=>null);return(await Promise.all(e.map(async a=>[a,await ot(a)]))).map(([a,l])=>l?n?[a,Bo(l,n)]:[a,{prompt:l,nestedTools:[],model:null}]:[a,null])}function Bo(e,t){const n=e.tools.map(a=>hs(a,t.toolsCatalog,t.models)),o=oo(e.model_id,t.models)||oo(e.model_name,t.models);return{prompt:e,nestedTools:n,model:o}}async function Vo(e){try{return(await Qe(`/agents/${encodeURIComponent(e)}`)).agent}catch{return null}}async function _d(e,t={}){const[n,o,a]=await Promise.all([e.kind==="tool"?vo(e.name):Promise.resolve(null),e.kind==="prompt"?Sd(e.name,t):Promise.resolve(null),e.kind==="handoff"?Vo(e.name):Promise.resolve(null)]);return{functionTool:n,promptTool:o,handoffAgent:a}}async function Id(e,t){const[n,o,a]=await Promise.all([Promise.all(e.functionTools.map(async l=>[l,await vo(l)])),Do(e.promptTools,t),Promise.all(e.handoffs.map(async l=>[l,await Vo(l)]))]);return{functionTools:Object.fromEntries(n),promptTools:Object.fromEntries(o),handoffs:Object.fromEntries(a)}}const Ed={class:"flex"},Ad={class:"flex min-w-0 flex-1 flex-col"},Nd={class:"flex items-start justify-between gap-4 px-5 py-3.5"},Pd={class:"min-w-0 flex-1"},Ld={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"},Rd={class:"mt-3"},Od={class:"whitespace-nowrap font-mono text-[14px] font-semibold text-neutral-900 dark:text-neutral-100"},Dd={key:0,class:"mt-1 max-w-[220px] text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Bd={class:"flex shrink-0 items-start gap-2"},Vd=["onKeydown"],Ud={"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"},Hd={class:"flex items-start gap-2"},zd=["src"],Fd={class:"leading-tight"},jd={class:"whitespace-nowrap text-[13px] font-semibold text-neutral-900 dark:text-neutral-100"},Xd={class:"whitespace-nowrap font-mono text-[10px] text-neutral-400 dark:text-neutral-500"},Kd={key:0,class:"group relative border-l border-neutral-200 pl-3 dark:border-neutral-800"},Yd={class:"grid shrink-0 grid-cols-2 gap-x-1.5 gap-y-1","aria-label":"Model capabilities"},qd=["aria-label"],Gd={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"},Wd={class:"grid grid-cols-[auto_1fr] items-center gap-x-2 gap-y-1 text-[11px]"},Qd={class:"flex items-center"},Jd={class:"flex min-h-0 flex-1"},Zd={class:"text-[9px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},eu={class:"mt-1 space-y-[2px] text-[11px]"},tu={class:"whitespace-nowrap text-neutral-500 dark:text-neutral-400"},nu={class:"flex min-w-0 flex-1 flex-col border-l border-neutral-200 dark:border-neutral-700"},au={class:"mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},ou={class:"flex shrink-0 min-w-[12rem] max-w-64 flex-col border-l border-neutral-200 dark:border-neutral-700"},ru={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},su={key:0,class:"mt-1.5 space-y-1"},lu={class:"flex flex-wrap items-center gap-x-1.5 gap-y-0.5"},iu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},du={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"},uu={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-fuchsia-500 dark:text-fuchsia-400"},fu={key:0,class:"mt-1.5 space-y-1"},mu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},hu={key:0,class:"mt-1 flex items-center gap-1.5 text-[10px] text-neutral-400 dark:text-neutral-500"},pu=["src"],vu={class:"font-medium text-neutral-500 dark:text-neutral-400"},gu={key:1,class:"truncate"},xu={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},yu={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-sky-500 dark:text-sky-400"},bu={key:0,class:"mt-1.5 space-y-1"},ku={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},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-emerald-500 dark:text-emerald-400"},Mu={key:0,class:"mt-1.5 space-y-1"},Tu={class:"font-mono font-medium text-neutral-800 dark:text-neutral-200"},Cu={key:1,class:"mt-1.5 text-[11px] italic text-neutral-400 dark:text-neutral-600"},Uo=_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:{}},emits:["select","edit-surface","hover-edit-target"],setup(e,{emit:t}){const n=e,o=t,a=O(()=>n.tools.filter(T=>T.kind==="tool"||T.kind==="provider"||T.kind==="mcp")),l=O(()=>n.tools.filter(T=>T.kind==="prompt")),s=O(()=>n.tools.filter(T=>T.kind==="subagent")),r=O(()=>n.tools.filter(T=>T.kind==="handoff")),i=O(()=>n.variables||ra(n.prompt)),c=O(()=>n.variableEnvNames||sa(n.prompt)),d=O(()=>!!n.label),f=O(()=>n.toolConfig?"Sub-prompt":"Prompt"),v=O(()=>n.modelName||n.prompt.model_name);O(()=>n.modelProvider||n.prompt.model_provider);const x=O(()=>n.modelActual||n.prompt.model_id),g=O(()=>{const T=n.modelCapabilities||{};return[{key:"images",label:"Vision",enabled:T.supportsImages===!0},{key:"tools",label:"Tool Calls",enabled:T.supportsToolCalls===!0},{key:"stream",label:"Streaming",enabled:T.supportsStreaming===!0},{key:"json",label:"JSON",enabled:T.supportsJsonMode===!0}]}),u=O(()=>!!n.modelCapabilities&&Object.keys(n.modelCapabilities).length>0),y=O(()=>ma(n.prompt.required_schema)),S=B({}),_=O(()=>Ro(n.prompt,n.toolConfig));Pe(()=>[l.value.map(T=>T.name).join(""),n.refreshEpoch??0],async()=>{const T=l.value.map(A=>A.name);if(T.length===0){S.value={};return}const b=await Do(T);S.value=Object.fromEntries(b)},{immediate:!0});function M(T){return S.value[T.name]?.model||T.resolvedModel||null}function k(T){const b=M(T);if(b)return Ve(`/api/providers/${encodeURIComponent(b.provider)}/icon?model=${encodeURIComponent(b.model)}`);const A=S.value[T.name];return A?.prompt?Ve(`/api/providers/${encodeURIComponent(A.prompt.model_provider)}/icon?model=${encodeURIComponent(A.prompt.model_id)}`):""}function N(T){const b=M(T);return b?b.name:S.value[T.name]?.prompt.model_name||T.model||null}function P(T){const b=M(T);return b?b.provider:S.value[T.name]?.prompt.model_provider||null}function L(T,b){return{entityType:"prompt",entityId:n.prompt.name,section:T,defaultToolTab:b}}const{activeSurface:ne}=Kt();function q(T,b){const A=ne.value?.target;return!(!A||A.entityType!=="prompt"||A.entityId!==n.prompt.name||A.section!==T||b!==void 0&&A.defaultToolTab!==b)}function D(T,b){if(q(T,b))return!0;const A=n.hoveredEditTarget;return!(!A||A.entityType!=="prompt"||A.entityId!==n.prompt.name||A.section!==T||b!==void 0&&A.defaultToolTab!==b)}function C(T){const b=T.currentTarget;b instanceof HTMLElement&&o("edit-surface",{target:L("prompt"),anchorEl:b})}return(T,b)=>(p(),$("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:b[18]||(b[18]=Me(A=>T.$emit("select"),["stop"])),onKeydown:[b[19]||(b[19]=Fe(Me(A=>T.$emit("select"),["prevent","stop"]),["enter"])),b[20]||(b[20]=Fe(Me(A=>T.$emit("select"),["prevent","stop"]),["space"]))],class:ue(["absolute cursor-pointer rounded-xl border bg-white transition-shadow select-none dark:bg-neutral-950",e.borderClass,I(gt)(e.selected,e.hovered)])},[h("div",Ed,[h("div",Ad,[Q(Xe,{as:"header",class:"border-b border-neutral-200 dark:border-neutral-700",target:L("basic"),active:D("basic"),onOpen:b[2]||(b[2]=A=>o("edit-surface",A)),onHoverTarget:b[3]||(b[3]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",Nd,[h("div",Pd,[h("div",{class:ue(["flex items-center gap-1.5 whitespace-nowrap text-[10px] font-bold uppercase tracking-[0.2em]",e.accentTextClass])},[Q(I(vt),{class:"h-3 w-3"}),h("span",null,K(f.value),1),d.value?(p(),$("span",Ld,K(e.label),1)):W("",!0)],2),h("div",Rd,[h("div",Od,K(e.prompt.name),1),e.prompt.tool_description?(p(),$("div",Dd,K(e.prompt.tool_description),1)):W("",!0)])]),h("div",Bd,[h("button",{type:"button",class:ue(["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",D("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:Me(C,["stop"]),onKeydown:[Fe(Me(C,["prevent","stop"]),["enter"]),Fe(Me(C,["prevent","stop"]),["space"])],onMouseenter:b[0]||(b[0]=Me(A=>o("hover-edit-target",L("prompt")),["stop"])),onMouseleave:b[1]||(b[1]=Me(A=>o("hover-edit-target",null),["stop"]))},[Q(I(Po),{class:"h-3.5 w-3.5"})],42,Vd),h("div",Ud,[h("div",Hd,[e.modelIconSrc?(p(),$("img",{key:0,src:e.modelIconSrc,alt:"",class:"mt-[3px] h-4 w-4 shrink-0 rounded-sm"},null,8,zd)):W("",!0),h("div",Fd,[h("div",jd,K(v.value),1),h("div",Xd,K(x.value),1)])]),u.value?(p(),$("div",Kd,[h("div",Yd,[(p(!0),$($e,null,Ie(g.value,A=>(p(),$("span",{key:A.key,"aria-label":`${A.label}: ${A.enabled?"supported":"not supported"}`,class:ue(["h-1.5 w-1.5 rounded-full",A.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,10,qd))),128))]),h("div",Gd,[b[21]||(b[21]=h("div",{class:"mb-1.5 text-[9px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"}," Capabilities ",-1)),h("dl",Wd,[(p(!0),$($e,null,Ie(g.value,A=>(p(),$($e,{key:A.key},[h("dt",Qd,[h("span",{class:ue(["h-1.5 w-1.5 rounded-full",A.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,2)]),h("dd",{class:ue(["whitespace-nowrap",A.enabled?"text-neutral-800 dark:text-neutral-200":"text-neutral-400 dark:text-neutral-600"])},K(A.label),3)],64))),128))])])])):W("",!0)])])])]),_:1},8,["target","active"]),h("div",Jd,[Q(Xe,{class:"shrink-0 px-5 py-3",target:L("behavior"),active:D("behavior"),onOpen:b[4]||(b[4]=A=>o("edit-surface",A)),onHoverTarget:b[5]||(b[5]=A=>o("hover-edit-target",A))},{default:ye(()=>[(p(!0),$($e,null,Ie(_.value,(A,G)=>(p(),$("div",{key:A.key,class:ue(["py-2",G>0?"border-t border-neutral-200 dark:border-neutral-700":""])},[h("div",Zd,K(A.label),1),h("dl",eu,[(p(!0),$($e,null,Ie(A.rows,Y=>(p(),$("div",{key:Y.label,class:"flex items-baseline justify-between gap-x-6"},[h("dt",tu,K(Y.label),1),Y.kind==="toggle"?(p(),$("dd",{key:0,class:ue(["whitespace-nowrap font-mono",Y.enabled?"text-emerald-600 dark:text-emerald-400":"text-neutral-400 dark:text-neutral-600"])},K(Y.enabled?"on":"off"),3)):(p(),$("dd",{key:1,class:ue(["whitespace-nowrap font-mono",Y.active?"text-neutral-800 dark:text-neutral-200":"text-neutral-400 dark:text-neutral-600"])},K(Y.value),3))]))),128))])],2))),128))]),_:1},8,["target","active"]),h("div",nu,[Q(Xe,{class:"flex-[1_1_auto] px-5 py-3",target:L("schema"),active:D("schema"),onOpen:b[6]||(b[6]=A=>o("edit-surface",A)),onHoverTarget:b[7]||(b[7]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",au,[Q(I($t),{class:"h-3 w-3"}),b[22]||(b[22]=pe(" Input schema ",-1))]),Q(Lo,{nodes:y.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:L("variables"),active:D("variables"),onOpen:b[8]||(b[8]=A=>o("edit-surface",A)),onHoverTarget:b[9]||(b[9]=A=>o("hover-edit-target",A))},{default:ye(()=>[Q(fa,{variables:i.value,"flagged-names":c.value},null,8,["variables","flagged-names"])]),_:1},8,["target","active"])])])]),h("div",ou,[Q(Xe,{"data-tool-column":"function",class:"flex-[1_1_25%] px-4 py-3",target:L("tools","functions"),active:D("tools","functions"),onOpen:b[10]||(b[10]=A=>o("edit-surface",A)),onHoverTarget:b[11]||(b[11]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",ru,[Q(Xt,{class:"h-3 w-3"}),b[23]||(b[23]=pe(" Functions ",-1))]),a.value.length>0?(p(),$("div",su,[(p(!0),$($e,null,Ie(a.value,A=>(p(),$("div",{key:A.name,class:"text-[11px]"},[h("div",lu,[h("span",iu,K(A.displayName),1),A.config.immediate?(p(),$("span",du," immediate ")):W("",!0)])]))),128))])):(p(),$("div",uu,"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:L("tools","sub-prompts"),active:D("tools","sub-prompts"),onOpen:b[12]||(b[12]=A=>o("edit-surface",A)),onHoverTarget:b[13]||(b[13]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",cu,[Q(I(vt),{class:"h-3 w-3"}),b[24]||(b[24]=pe(" Sub-prompts ",-1))]),l.value.length>0?(p(),$("div",fu,[(p(!0),$($e,null,Ie(l.value,A=>(p(),$("div",{key:A.name,class:"text-[11px]"},[h("div",mu,K(A.displayName),1),N(A)?(p(),$("div",hu,[k(A)?(p(),$("img",{key:0,src:k(A),alt:"",class:"h-3.5 w-3.5 shrink-0 rounded-sm"},null,8,pu)):W("",!0),h("span",vu,K(N(A)),1),P(A)?(p(),$("span",gu,K(P(A)),1)):W("",!0)])):W("",!0)]))),128))])):(p(),$("div",xu,"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:L("tools","handoffs"),active:D("tools","handoffs"),onOpen:b[14]||(b[14]=A=>o("edit-surface",A)),onHoverTarget:b[15]||(b[15]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",yu,[Q(I(oa),{class:"h-3 w-3"}),b[25]||(b[25]=pe(" Handoffs ",-1))]),r.value.length>0?(p(),$("div",bu,[(p(!0),$($e,null,Ie(r.value,A=>(p(),$("div",{key:A.name,class:"text-[11px]"},[h("div",ku,K(A.displayName),1)]))),128))])):(p(),$("div",wu,"None"))]),_:1},8,["target","active"]),Q(Xe,{"data-tool-column":"subagent",class:"flex-[1_1_25%] border-t border-neutral-200 px-4 py-3 dark:border-neutral-700",target:L("tools","sub-agents"),active:D("tools","sub-agents"),onOpen:b[16]||(b[16]=A=>o("edit-surface",A)),onHoverTarget:b[17]||(b[17]=A=>o("hover-edit-target",A))},{default:ye(()=>[h("div",$u,[Q(I(tt),{class:"h-3 w-3"}),b[26]||(b[26]=pe(" Sub-agents ",-1))]),s.value.length>0?(p(),$("div",Mu,[(p(!0),$($e,null,Ie(s.value,A=>(p(),$("div",{key:A.name,class:"text-[11px]"},[h("div",Tu,K(A.displayName),1)]))),128))])):(p(),$("div",Cu,"None"))]),_:1},8,["target","active"])])])],34))}}),Su={class:"flex items-center gap-2.5 px-5 pt-4 pb-3"},_u={class:"text-[15px] font-semibold text-neutral-900 dark:text-neutral-100"},Iu=_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=O(()=>t.data.mode==="human"),o=O(()=>{const s=t.data.model;return s?Ve(`/api/providers/${encodeURIComponent(s.provider)}/icon?model=${encodeURIComponent(s.model)}`):t.data.prompt?Ve(`/api/providers/${encodeURIComponent(t.data.prompt.model_provider)}/icon?model=${encodeURIComponent(t.data.prompt.model_id)}`):""}),a=O(()=>t.data.id==="a"?"border-sky-500 dark:border-sky-600":"border-amber-500 dark:border-amber-600"),l=O(()=>t.data.id==="a"?"text-sky-600 dark:text-sky-400":"text-amber-600 dark:text-amber-400");return(s,r)=>n.value?(p(),$("div",{key:0,"data-canvas-node":"",role:"button",tabindex:"0",onClick:r[0]||(r[0]=Me(i=>s.$emit("select"),["stop"])),onKeydown:[r[1]||(r[1]=Fe(Me(i=>s.$emit("select"),["prevent","stop"]),["enter"])),r[2]||(r[2]=Fe(Me(i=>s.$emit("select"),["prevent","stop"]),["space"]))],class:ue(["absolute cursor-pointer rounded-xl border bg-white transition-shadow select-none dark:bg-neutral-950",a.value,I(gt)(e.selected,e.hovered)])},[h("div",Su,[Q(I(aa),{class:ue(["h-5 w-5 shrink-0",l.value])},null,8,["class"]),h("span",_u,K(e.data.label),1)]),r[6]||(r[6]=h("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)):e.data.prompt?(p(),ce(Uo,{key:1,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":o.value,"model-capabilities":e.data.model?.capabilities,"border-class":a.value,"accent-text-class":l.value,selected:e.selected,hovered:e.hovered,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,onSelect:r[3]||(r[3]=i=>s.$emit("select")),onEditSurface:r[4]||(r[4]=i=>s.$emit("edit-surface",i)),onHoverEditTarget:r[5]||(r[5]=i=>s.$emit("hover-edit-target",i))},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"])):W("",!0)}}),Eu={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Au(e,t){return p(),$("svg",Eu,[...t[0]||(t[0]=[Wr('<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 Nu=nt({name:"lucide-git-branch",render:Au}),Pu={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Lu(e,t){return p(),$("svg",Pu,[...t[0]||(t[0]=[h("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 ro=nt({name:"lucide-plug",render:Lu}),Ru={class:"border-b border-neutral-200 dark:border-neutral-700"},Ou={class:"flex items-center justify-between gap-3 px-4 pt-3 pb-1.5"},Du={class:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.2em] text-neutral-500 dark:text-neutral-400"},Bu={key:0,class:"flex flex-wrap items-center gap-1"},Vu={class:"flex items-start justify-between gap-5 px-4 pt-1 pb-3"},Uu={class:"min-w-0 flex-1"},Hu={class:"truncate font-mono text-[13px] font-semibold text-neutral-900 dark:text-neutral-100"},zu={key:0,class:"w-56 shrink-0 text-balance text-left text-[10.5px] leading-relaxed text-neutral-500 dark:text-neutral-400"},Fu={key:0,class:"px-5 py-3"},ju={class:"min-w-[320px] max-w-[380px]"},Xu={class:"mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.18em] text-neutral-400 dark:text-neutral-500"},Ku=_e({__name:"FunctionToolCard",props:{tool:{},detail:{},selected:{type:Boolean},hovered:{type:Boolean}},emits:["select"],setup(e){const t=e,n=O(()=>ma(t.detail.schema)),o=O(()=>t.detail.variables.length>0),a=O(()=>n.value.length>0),l=O(()=>{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)=>(p(),$("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:r[0]||(r[0]=Me(i=>s.$emit("select"),["stop"])),onKeydown:[r[1]||(r[1]=Fe(Me(i=>s.$emit("select"),["prevent","stop"]),["enter"])),r[2]||(r[2]=Fe(Me(i=>s.$emit("select"),["prevent","stop"]),["space"]))],class:ue(["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",I(gt)(e.selected,e.hovered)]),style:{width:"max-content"}},[h("header",Ru,[h("div",Ou,[h("div",Du,[Q(Xt,{class:"h-3 w-3"}),r[3]||(r[3]=h("span",null,"Function",-1))]),l.value.length>0?(p(),$("div",Bu,[(p(!0),$($e,null,Ie(l.value,i=>(p(),$("span",{key:i.label,class:ue(["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"])},K(i.label),3))),128))])):W("",!0)]),h("div",Vu,[h("div",Uu,[h("div",Hu,K(e.tool.displayName),1)]),e.detail.description?(p(),$("p",zu,K(e.detail.description),1)):W("",!0)])]),o.value||a.value?(p(),$("div",Fu,[h("div",ju,[o.value?(p(),ce(fa,{key:0,variables:e.detail.variables},null,8,["variables"])):W("",!0),a.value?(p(),$("div",{key:1,class:ue([o.value?"mt-3 border-t border-neutral-200 pt-3 dark:border-neutral-700":""])},[h("div",Xu,[Q(I($t),{class:"h-3 w-3"}),r[4]||(r[4]=pe(" Args ",-1))]),Q(Lo,{nodes:n.value,"empty-label":"No args"},null,8,["nodes"])],2)):W("",!0)])])):W("",!0)],34))}}),Yu={class:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.2em] opacity-60"},qu={class:"mt-1.5 truncate text-sm font-semibold text-neutral-900 dark:text-neutral-100"},Gu={key:0,class:"mt-0.5 truncate text-[11px] text-neutral-500 dark:text-neutral-400"},Wu=_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:Xt},prompt:{label:"Prompt Tool",classes:"border-fuchsia-300 bg-fuchsia-50/90 dark:border-fuchsia-700 dark:bg-fuchsia-950/30",icon:vt},subagent:{label:"Subagent",classes:"border-emerald-300 bg-emerald-50/90 dark:border-emerald-700 dark:bg-emerald-950/30",icon:Nu},handoff:{label:"Handoff",classes:"border-sky-300 bg-sky-50/90 dark:border-sky-700 dark:bg-sky-950/30",icon:oa},provider:{label:"Provider",classes:"border-amber-300 bg-amber-50/90 dark:border-amber-700 dark:bg-amber-950/30",icon:ro},mcp:{label:"MCP",classes:"border-violet-300 bg-violet-50/90 dark:border-violet-700 dark:bg-violet-950/30",icon:ro},unknown:{label:"Tool",classes:"border-neutral-300 bg-white dark:border-neutral-700 dark:bg-neutral-950",icon:sn}},l=O(()=>a[n.data.kind]||a.unknown),s=O(()=>n.data.kind==="tool"),r=O(()=>n.data.kind==="prompt"),i=O(()=>n.data.kind==="handoff"),c=O(()=>{const N=n.data.description;return N?N.length>48?N.slice(0,45)+"...":N:""}),d=B(null),f=B(null),v=B([]),x=B(null),g=B(null),u=O(()=>n.data.kind==="tool"||n.data.kind==="prompt"||n.data.kind==="handoff");let y=0;Pe(()=>[n.data.name,n.refreshEpoch??0],async()=>{const N=++y;u.value&&o("detail-loading",!0);try{const P=await _d(n.data);if(N!==y)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{N===y&&u.value&&o("detail-loading",!1)}},{immediate:!0});const S=O(()=>g.value?Ve(`/api/providers/${encodeURIComponent(g.value.provider)}/icon?model=${encodeURIComponent(g.value.model)}`):d.value?Ve(`/api/providers/${encodeURIComponent(d.value.model_provider)}/icon?model=${encodeURIComponent(d.value.model_id)}`):""),_=O(()=>g.value?.name||d.value?.model_name),M=O(()=>g.value?.provider||d.value?.model_provider),k=O(()=>g.value?.model||d.value?.model_id||null);return(N,P)=>s.value&&f.value?(p(),ce(Ku,{key:0,tool:e.data,detail:f.value,selected:e.selected,hovered:e.hovered,onSelect:P[0]||(P[0]=L=>o("select"))},null,8,["tool","detail","selected","hovered"])):r.value&&d.value?(p(),ce(Uo,{key:1,prompt:d.value,tools:v.value,"tool-config":e.data.config,variables:I(ra)(d.value),"variable-env-names":I(sa)(d.value),"model-name":_.value,"model-provider":M.value,"model-actual":k.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]=L=>o("select")),onEditSurface:P[2]||(P[2]=L=>o("edit-surface",L)),onHoverEditTarget:P[3]||(P[3]=L=>o("hover-edit-target",L)),"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?(p(),ce(No,{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]=L=>o("select")),onAction:P[5]||(P[5]=L=>o("view-agent",x.value.name)),onEditSurface:P[6]||(P[6]=L=>o("edit-surface",L)),onHoverEditTarget:P[7]||(P[7]=L=>o("hover-edit-target",L))},null,8,["data","selected","hovered","hovered-edit-target"])):(p(),$("div",{key:3,"data-canvas-node":"",role:"button",tabindex:"0",onClick:P[8]||(P[8]=Me(L=>o("select"),["stop"])),onKeydown:[P[9]||(P[9]=Fe(Me(L=>o("select"),["prevent","stop"]),["enter"])),P[10]||(P[10]=Fe(Me(L=>o("select"),["prevent","stop"]),["space"]))],class:ue(["absolute cursor-pointer rounded-xl border px-4 py-3 transition-shadow select-none",l.value.classes,I(gt)(e.selected,e.hovered)])},[h("div",Yu,[(p(),ce(lt(l.value.icon),{class:"h-3.5 w-3.5"})),pe(" "+K(l.value.label),1)]),h("div",qu,K(e.data.displayName),1),c.value?(p(),$("div",Gu,K(c.value),1)):W("",!0)],34))}}),Qu={class:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.2em] text-neutral-500 dark:text-neutral-400"},Ju={class:"mt-1.5 truncate text-sm font-medium text-neutral-900 dark:text-neutral-100"},Zu=_e({__name:"HookNode",props:{data:{},selected:{type:Boolean},hovered:{type:Boolean}},emits:["select"],setup(e){return(t,n)=>(p(),$("div",{"data-canvas-node":"",role:"button",tabindex:"0",onClick:n[0]||(n[0]=Me(o=>t.$emit("select"),["stop"])),onKeydown:[n[1]||(n[1]=Fe(Me(o=>t.$emit("select"),["prevent","stop"]),["enter"])),n[2]||(n[2]=Fe(Me(o=>t.$emit("select"),["prevent","stop"]),["space"]))],class:ue(["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",I(gt)(e.selected,e.hovered)])},[h("div",Qu,[Q(I(Yn),{class:"h-3.5 w-3.5"}),n[3]||(n[3]=pe(" Hook ",-1))]),h("div",Ju,K(e.data.hook),1)],34))}}),ec={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"},tc={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"},nc={"data-model-anchor":"",class:"flex items-center gap-2 px-4 pt-0.5 pb-3"},ac=["src"],oc={class:"min-w-0"},rc={class:"truncate text-[14px] font-semibold text-neutral-900 dark:text-neutral-100"},sc={key:0,class:"truncate font-mono text-[10px] text-neutral-400 dark:text-neutral-500"},lc={key:1,class:"truncate text-[10px] text-neutral-400 dark:text-neutral-500"},ic={key:0},dc={key:1,class:"text-neutral-300 dark:text-neutral-600 mx-1"},uc={key:2},cc={key:0,class:"grid grid-cols-2 border-t border-neutral-200 dark:border-neutral-700"},fc={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"},mc={class:"text-[9px] uppercase leading-tight tracking-[0.14em]"},hc={class:"mt-0.5 font-mono text-[11px] leading-tight text-neutral-600 dark:text-neutral-300"},pc={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"},vc={class:"uppercase tracking-[0.16em]"},gc={class:"min-w-0 truncate font-mono text-right"},xc=_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}=Kt(),l=O(()=>({entityType:"model",entityId:n.data.id})),s=O(()=>Ft(a.value?.target,l.value)||Ft(n.hoveredEditTarget,l.value)),r=O(()=>Ve(`/api/providers/${encodeURIComponent(n.data.provider)}/icon?model=${encodeURIComponent(n.data.model||"")}`)),i=O(()=>{const _=n.data.capabilities||{};return[{key:"images",label:"Vision",enabled:_.supportsImages===!0},{key:"tools",label:"Tool Calls",enabled:_.supportsToolCalls===!0},{key:"stream",label:"Streaming",enabled:_.supportsStreaming===!0},{key:"json",label:"JSON",enabled:_.supportsJsonMode===!0}]}),c=O(()=>n.data.providerTools||[]),d=O(()=>n.data.fallbacks||[]),f=O(()=>{const _=n.data.capabilities||{},M=[];return typeof _.maxContextTokens=="number"&&M.push({label:"Max context",value:_.maxContextTokens.toLocaleString()}),typeof _.maxOutputTokens=="number"&&M.push({label:"Max output",value:_.maxOutputTokens.toLocaleString()}),M}),v=_=>{if(_==null||Number.isNaN(_))return null;if(_===0)return"$0";const M=_>=1?_.toFixed(2):_.toFixed(4);return`$${parseFloat(M)}`},x=_=>{if(!_)return null;const M=v(_.min),k=v(_.max);return!M||!k?null:M===k?M:`${M}-${k}`},g=O(()=>{const _=n.data.pricing_range?.input;return _?x(_):v(n.data.input_price)}),u=O(()=>{const _=n.data.pricing_range?.output;return _?x(_):v(n.data.output_price)}),y=O(()=>!!(g.value||u.value)),S=O(()=>{const _=[];if(c.value.length>0){const M=c.value.slice(0,2).join(", "),k=c.value.length>2?", …":"";_.push({label:"Provider tools",value:M+k})}if(d.value.length>0){const M=d.value.slice(0,2).map(N=>N.name).join(", "),k=d.value.length>2?", …":"";_.push({label:"Fallbacks",value:M+k})}return _});return(_,M)=>(p(),ce(Xe,{"data-canvas-node":"","data-canvas-model-node":"",target:l.value,active:s.value,"edit-data":e.data,positioned:!1,class:ue(["absolute overflow-hidden rounded-xl border border-neutral-300 bg-white transition-shadow select-none dark:border-neutral-700 dark:bg-neutral-950",I(gt)(e.selected,e.hovered)]),onOpen:M[1]||(M[1]=k=>o("edit-surface",k)),onHoverTarget:M[2]||(M[2]=k=>o("hover-edit-target",k))},{default:ye(()=>[h("header",null,[h("div",ec,[Q(I(mo),{class:"h-3 w-3"}),M[3]||(M[3]=h("span",null,"Model",-1)),e.data.provider?(p(),$("span",tc,K(e.data.provider),1)):W("",!0)]),h("div",nc,[h("img",{src:r.value,alt:"",class:"h-5 w-5 shrink-0 rounded-sm",onError:M[0]||(M[0]=k=>k.target.style.visibility="hidden")},null,40,ac),h("div",oc,[h("div",rc,K(e.data.name),1),e.data.model&&e.data.model!==e.data.name?(p(),$("div",sc,K(e.data.model),1)):W("",!0),y.value?(p(),$("div",lc,[g.value?(p(),$("span",ic,[M[4]||(M[4]=h("span",{class:"text-neutral-300 dark:text-neutral-600"},"in",-1)),pe(" "+K(g.value)+"/M ",1)])):W("",!0),g.value&&u.value?(p(),$("span",dc,"·")):W("",!0),u.value?(p(),$("span",uc,[M[5]||(M[5]=h("span",{class:"text-neutral-300 dark:text-neutral-600"},"out",-1)),pe(" "+K(u.value)+"/M ",1)])):W("",!0)])):W("",!0)])])]),i.value.length>0?(p(),$("div",cc,[(p(!0),$($e,null,Ie(i.value,(k,N)=>(p(),$("div",{key:k.key,class:ue(["flex items-center gap-2 px-4 py-2",N%2===1?"border-l border-neutral-200 dark:border-neutral-700":"",N>=2?"border-t border-neutral-200 dark:border-neutral-700":""])},[h("span",{class:ue(["h-1.5 w-1.5 shrink-0 rounded-full",k.enabled?"bg-emerald-500 shadow-[0_0_0_2px_rgba(16,185,129,0.16)]":"bg-neutral-300 dark:bg-neutral-700"])},null,2),h("span",{class:ue(["text-[11px] leading-tight",k.enabled?"text-neutral-700 dark:text-neutral-300":"text-neutral-400 dark:text-neutral-500"])},K(k.label),3)],2))),128))])):W("",!0),f.value.length>0?(p(),$("div",fc,[(p(!0),$($e,null,Ie(f.value,(k,N)=>(p(),$("div",{key:k.label,class:ue(["px-4 py-2",N>0?"border-l border-neutral-200 dark:border-neutral-700":""])},[h("div",mc,K(k.label),1),h("div",hc,K(k.value),1)],2))),128))])):W("",!0),S.value.length>0?(p(),$("div",pc,[(p(!0),$($e,null,Ie(S.value,k=>(p(),$("div",{key:k.label,class:"flex items-baseline justify-between gap-3"},[h("span",vc,K(k.label),1),h("span",gc,K(k.value),1)]))),128))])):W("",!0)]),_:1},8,["target","active","edit-data","class"]))}}),yc={class:"relative flex-1 overflow-hidden bg-neutral-100/50 dark:bg-neutral-950/50"},bc=["aria-label","onClick","onKeydown"],kc={class:"pointer-events-none absolute inset-0 h-full w-full","aria-hidden":"true"},wc=["id"],$c=["fill"],Mc={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"},Tc={class:"text-[10px] font-semibold uppercase tracking-wider text-neutral-600 dark:text-neutral-300"},Cc={key:0,class:"absolute inset-0 z-10 flex items-center justify-center bg-neutral-100 dark:bg-neutral-950"},Sc={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"},_c={key:1,class:"absolute inset-0 flex flex-col items-center justify-center gap-3 text-neutral-400 dark:text-neutral-600"},Ic=_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=B(null),l=B(new Set);Pe(()=>n.layout.nodes.map(ee=>ee.id).join(","),ee=>{const Z=new Set(ee?ee.split(","):[]);l.value=new Set([...l.value].filter(m=>Z.has(m)))},{immediate:!0});function s(ee,Z){const m=new Set(l.value);Z?m.add(ee):m.delete(ee),l.value=m}const r=O(()=>l.value.size>0),i=B(!1),{state:c,isPanning:d,transformStyle:f,scalePercent:v,onWheel:x,onPointerDown:g,onPointerMove:u,onPointerUp:y,shouldHandleClick:S,zoomIn:_,zoomOut:M,fitToView:k,resetAutoFitLock:N,focusNode:P,setContentBounds:L,saveViewport:ne,restoreViewport:q}=Pl(a,{maxScale:1.2,panPadding:40});Pe(c,()=>os(),{deep:!0,flush:"post"}),Pa(ee=>{const Z=a.value;Z&&(Z.addEventListener("wheel",x,{passive:!1}),ee(()=>Z.removeEventListener("wheel",x)))}),Qr(()=>{a.value?.removeEventListener("wheel",x)});const D=Ln(n,"layout"),C=Ln(n,"loading"),T=Ln(n,"selectedNodeId"),{layoutStable:b,measurements:A,nodesWithMeasuredSizes:G,nodeMetrics:Y,measureNode:H,measuredBounds:E}=El(D,C,ee=>k(ee,{force:!1}),ee=>o("nodes-measured",ee),N);Pe(()=>n.loading,ee=>{ee&&(i.value=!1)}),Pe([b,r],([ee,Z])=>{ee&&!Z&&(i.value=!0)},{immediate:!0});const F=O(()=>Ll({hasAgent:n.hasAgent,hasError:!!n.error,loadingComposition:n.loading,layoutStable:b.value,loadingAsyncDetail:r.value,hasRevealedStableDiagram:i.value}));function j(ee,Z){if(Z instanceof HTMLElement){H(ee,Z);return}if(!Z||typeof Z!="object"||!("$el"in Z))return;const m=Z.$el;m instanceof HTMLElement&&H(ee,m)}Pa(()=>{if(!n.hasAgent||n.layout.nodes.length===0){L(null);return}L(E())});function X(ee){if(ee.type==="agent"||ee.type==="side"||ee.type==="model")return!0;if(ee.type!=="tool")return!1;const Z=ee.data.kind;return Z==="prompt"||Z==="handoff"}const he=O(()=>{const ee=n.hoveredNodeId;if(!ee)return null;const Z=n.layout.nodes.find(w=>w.id===ee);if(!Z||!X(Z))return null;const m=new Set([ee]);for(const w of n.layout.edges)w.from===ee&&m.add(w.to),w.to===ee&&m.add(w.from);return m});function se(ee){const Z=he.value;return Z?Z.has(ee)?{}:{opacity:"0.25",transition:"opacity 120ms ease-out"}:{}}function fe(ee){const Z=he.value;if(!Z)return!0;const m=n.layout.groups.find(w=>w.id===ee);if(!m)return!0;for(const w of n.layout.nodes)if(Z.has(w.id)&&w.x>=m.x&&w.y>=m.y&&w.x+w.width<=m.x+m.width&&w.y+w.height<=m.y+m.height)return!0;return!1}const{handleCanvasClick:z,handleGroupClick:U,handleNodeSelect:J}=Al({containerRef:a,layout:D,selectedNodeId:T,layoutStable:b,measurements:A,viewportState:c,shouldHandleClick:S,focusNode:P,saveViewport:ne,restoreViewport:q,onSelectNode:ee=>o("select-node",ee),onDeselect:()=>o("deselect")});function le(ee,Z){o("open-edit-surface",{...Z,node:ee})}function ie(ee,Z){o("hover-node",ee.id,Z)}function ve(ee,Z){ee.key!=="Enter"&&ee.key!==" "||(ee.preventDefault(),ee.stopPropagation(),U(ee,Z))}return(ee,Z)=>(p(),$("div",yc,[h("div",{ref_key:"containerRef",ref:a,class:ue(["absolute inset-0",I(d)?"cursor-grabbing":"cursor-grab"]),onPointerdown:Z[6]||(Z[6]=(...m)=>I(g)&&I(g)(...m)),onPointermove:Z[7]||(Z[7]=(...m)=>I(u)&&I(u)(...m)),onPointerup:Z[8]||(Z[8]=(...m)=>I(y)&&I(y)(...m)),onPointercancel:Z[9]||(Z[9]=(...m)=>I(y)&&I(y)(...m)),onClick:Z[10]||(Z[10]=(...m)=>I(z)&&I(z)(...m))},[Q(Ol),h("div",{class:"absolute origin-top-left will-change-transform",style:De({...I(f),opacity:I(b)?1:0,transition:I(b)?"opacity 200ms ease-out":"none",pointerEvents:I(b)?"auto":"none"})},[(p(!0),$($e,null,Ie(e.layout.groups,m=>(p(),$($e,{key:m.id},[m.subagent?.multiInstance?(p(),$("div",{key:0,class:"absolute border border-neutral-200/40 bg-[#f3f3f3] dark:border-neutral-700/25 dark:bg-[#1a1a1a]",style:De({left:`${m.x+6}px`,top:`${m.y+6}px`,width:`${m.width}px`,height:`${m.height}px`,borderRadius:"8px"})},null,4)):W("",!0),m.subagent?.multiInstance?(p(),$("div",{key:1,class:"absolute border border-neutral-200/50 bg-[#f5f5f5] dark:border-neutral-700/35 dark:bg-[#1c1c1c]",style:De({left:`${m.x+3}px`,top:`${m.y+3}px`,width:`${m.width}px`,height:`${m.height}px`,borderRadius:"8px"})},null,4)):W("",!0),h("div",{"data-canvas-group":"",class:"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]",role:"button",tabindex:"0","aria-label":`Focus ${m.label}`,onClick:Me(w=>I(U)(w,m),["stop"]),onKeydown:w=>ve(w,m),style:De({left:`${m.x}px`,top:`${m.y}px`,width:`${m.width}px`,height:`${m.height}px`,borderRadius:"8px",opacity:fe(m.id)?1:.3})},[(p(),$("svg",kc,[h("defs",null,[h("pattern",{id:"subgrid-"+m.id,x:"0",y:"0",width:"20",height:"20",patternUnits:"userSpaceOnUse"},[...Z[12]||(Z[12]=[h("circle",{cx:"10",cy:"10",r:"0.75",class:"fill-neutral-400/15 dark:fill-neutral-500/15"},null,-1)])],8,wc)]),h("rect",{width:"100%",height:"100%",fill:`url(#subgrid-${m.id})`},null,8,$c)])),h("div",Mc,[h("span",Tc,K(m.label),1),m.subagent?(p(),$($e,{key:0},[h("span",{class:ue(["inline-flex items-center rounded-full px-1.5 py-px text-[9px] font-medium",m.subagent.resumable?"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"])},K(m.subagent.resumable?"Resumable":"Blocking"),3),h("span",{class:ue(["inline-flex items-center rounded-full px-1.5 py-px text-[9px] font-medium",m.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"])},K(m.subagent.multiInstance?"Multi":"Single"),3)],64)):W("",!0)])],44,bc)],64))),128)),e.layout.nodes.length>0?(p(),ce(yi,{key:0,nodes:I(G),edges:e.layout.edges,groups:e.layout.groups,"node-metrics":I(Y),"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),(p(!0),$($e,null,Ie(e.layout.nodes,m=>(p(),$($e,{key:m.id},[m.type==="agent"?(p(),ce(rd,{key:0,ref_for:!0,ref:w=>j(m.id,w),"data-canvas-node-id":m.id,data:m.data,selected:e.selectedNodeId===m.id,hovered:e.hoveredNodeId===m.id,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,style:De({left:`${m.x}px`,top:`${m.y}px`,width:"max-content",minWidth:`${m.width}px`,...se(m.id)}),onSelect:w=>I(J)(m),onEditSurface:w=>le(m,w),onHoverEditTarget:w=>ie(m,w),onMouseenter:w=>o("hover-node",m.id),onMouseleave:Z[0]||(Z[0]=w=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","refresh-epoch","style","onSelect","onEditSurface","onHoverEditTarget","onMouseenter"])):m.type==="side"?(p(),ce(Iu,{key:1,ref_for:!0,ref:w=>j(m.id,w),"data-canvas-node-id":m.id,data:m.data,selected:e.selectedNodeId===m.id,hovered:e.hoveredNodeId===m.id,"hovered-edit-target":e.hoveredEditTarget,style:De({left:`${m.x}px`,top:`${m.y}px`,width:"max-content",minWidth:`${m.width}px`,...se(m.id)}),onSelect:w=>I(J)(m),onEditSurface:w=>le(m,w),onHoverEditTarget:w=>ie(m,w),onMouseenter:w=>o("hover-node",m.id),onMouseleave:Z[1]||(Z[1]=w=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","style","onSelect","onEditSurface","onHoverEditTarget","onMouseenter"])):m.type==="tool"?(p(),ce(Wu,{key:2,ref_for:!0,ref:w=>j(m.id,w),"data-canvas-node-id":m.id,data:m.data,selected:e.selectedNodeId===m.id,hovered:e.hoveredNodeId===m.id,"hovered-edit-target":e.hoveredEditTarget,"refresh-epoch":e.refreshEpoch,style:De(m.data.kind==="tool"?{left:`${m.x}px`,top:`${m.y}px`,width:"max-content",minWidth:`${m.width}px`,...se(m.id)}:["prompt","handoff"].includes(m.data.kind)?{left:`${m.x}px`,top:`${m.y}px`,width:"max-content",minWidth:`${m.width}px`,...se(m.id)}:{left:`${m.x}px`,top:`${m.y}px`,width:`${m.width}px`,height:`${m.height}px`,...se(m.id)}),onSelect:w=>I(J)(m),onEditSurface:w=>le(m,w),onHoverEditTarget:w=>ie(m,w),onViewAgent:Z[2]||(Z[2]=w=>o("view-agent",w)),onDetailLoading:w=>s(m.id,w),onMouseenter:w=>o("hover-node",m.id),onMouseleave:Z[3]||(Z[3]=w=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","hovered-edit-target","refresh-epoch","style","onSelect","onEditSurface","onHoverEditTarget","onDetailLoading","onMouseenter"])):m.type==="hook"?(p(),ce(Zu,{key:3,"data-canvas-node-id":m.id,data:m.data,selected:e.selectedNodeId===m.id,hovered:e.hoveredNodeId===m.id,style:De({left:`${m.x}px`,top:`${m.y}px`,width:`${m.width}px`,height:`${m.height}px`,...se(m.id)}),onSelect:w=>I(J)(m),onMouseenter:w=>o("hover-node",m.id),onMouseleave:Z[4]||(Z[4]=w=>o("hover-node",null))},null,8,["data-canvas-node-id","data","selected","hovered","style","onSelect","onMouseenter"])):m.type==="model"?(p(),ce(xc,{key:4,ref_for:!0,ref:w=>j(m.id,w),"data-canvas-node-id":m.id,data:m.data,selected:e.selectedNodeId===m.id,hovered:e.hoveredNodeId===m.id,"hovered-edit-target":e.hoveredEditTarget,style:De({left:`${m.x}px`,top:`${m.y}px`,width:`${m.width}px`,minHeight:`${m.height}px`,...se(m.id)}),onSelect:w=>I(J)(m),onEditSurface:w=>le(m,w),onHoverEditTarget:w=>ie(m,w),onMouseenter:w=>o("hover-node",m.id),onMouseleave:Z[5]||(Z[5]=w=>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===m.id?(p(),$("div",{key:5,class:"absolute flex items-center justify-center rounded-xl bg-white/70 dark:bg-neutral-950/70",style:De({left:`${m.x}px`,top:`${m.y}px`,width:`${I(A).get(m.id)?.w??m.width}px`,height:`${I(A).get(m.id)?.h??m.height}px`})},[...Z[13]||(Z[13]=[h("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(io,{"leave-active-class":"transition-opacity duration-200 ease-out","leave-to-class":"opacity-0"},{default:ye(()=>[F.value?(p(),$("div",Cc,[...Z[14]||(Z[14]=[h("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"},[h("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"}),pe(" Preparing diagram ")],-1)])])):W("",!0)]),_:1}),e.error?(p(),$("div",Sc,K(e.error),1)):W("",!0),!e.hasAgent&&!e.loading&&!e.error?(p(),$("div",_c,[Q(I(ho),{class:"h-12 w-12 opacity-40"}),Z[15]||(Z[15]=h("div",{class:"text-sm"},"Select an agent to view its composition",-1))])):W("",!0),e.hasAgent&&I(b)?(p(),ce(_i,{key:2,"scale-percent":I(v),onZoomIn:I(_),onZoomOut:I(M),onFitView:Z[11]||(Z[11]=m=>I(k)(I(E)(),{force:!0}))},null,8,["scale-percent","onZoomIn","onZoomOut"])):W("",!0)]))}}),Ec=_e({__name:"InspectorPanel",props:{node:{},compositionSummary:{}},emits:["saved","close"],setup(e,{emit:t}){const n=e,o=t,a=B("inspect"),l=B(null),s=B(null),r=B(null),i=B(null),{saving:c,apiError:d,saveAgent:f,clearAgentError:v}=po(),{saving:x,apiError:g,savePrompt:u,clearPromptError:y}=rs(),{saving:S,apiError:_,saveModel:M,clearModelError:k}=ss(),N=O(()=>c.value||x.value||S.value),P=O(()=>a.value==="edit-prompt"?g.value:a.value==="edit-model"?_.value:d.value);function L(T){return T?.id||T?.name||null}Pe(()=>n.node,T=>{if(v(),y(),k(),!T){a.value="inspect",l.value=null;return}if(T.type==="agent")l.value=T.value,a.value="edit-agent";else if(T.type==="side"){const b=T.value;b.prompt?(l.value=b.prompt,a.value="edit-prompt"):(a.value="inspect",l.value=null)}else T.type==="model"?(l.value=T.value,a.value="edit-model"):(a.value="inspect",l.value=null)});async function ne(T){(await f({mode:"edit",data:T,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(T){const b=L(l.value);(await u({mode:"edit",data:T,editingId:b,formNode:r.value?.formNode})).ok&&(a.value="inspect",l.value=null,o("saved"))}async function D(T){const b=L(l.value);(await M({mode:"edit",data:T,editingId:b,formNode:i.value?.formNode})).ok&&(a.value="inspect",l.value=null,o("saved"))}function C(){a.value="inspect",l.value=null,v(),y(),k(),o("close")}return(T,b)=>(p(),$("div",null,[a.value==="edit-agent"?(p(),ce(go,{key:0,ref_key:"agentModalRef",ref:s,"model-value":!0,"edit-agent":l.value,mode:"edit",saving:N.value,"api-error":P.value,onSave:ne,"onUpdate:modelValue":C},null,8,["edit-agent","saving","api-error"])):W("",!0),a.value==="edit-prompt"?(p(),ce(ys,{key:1,ref_key:"promptModalRef",ref:r,"model-value":!0,"edit-prompt":l.value,mode:"edit",saving:N.value,onSave:q,"onUpdate:modelValue":C},null,8,["edit-prompt","saving"])):W("",!0),a.value==="edit-model"?(p(),ce(bs,{key:2,ref_key:"modelModalRef",ref:i,"model-value":!0,"edit-model":l.value,mode:"edit",saving:N.value,onSave:D,"onUpdate:modelValue":C},null,8,["edit-model","saving"])):W("",!0)]))}}),Ac={class:"relative"},Nc={key:1,class:"mt-[2px] inline-block h-3 w-3 shrink-0"},Pc=["src"],Lc={class:"min-w-0 flex-1"},Rc={class:"flex min-w-0 items-start gap-2"},Oc={key:0,class:"mt-[1px] shrink-0 text-[11px] leading-none font-semibold text-rose-500 dark:text-rose-400","aria-label":"Required"},Dc=["onKeydown"],Bc={key:2,class:"ml-auto shrink-0 truncate pl-2 text-[10px] text-neutral-400 dark:text-neutral-500",style:{"max-width":"35%"}},Vc={key:0,class:"mt-1 flex flex-wrap gap-1"},Uc={key:2,class:"mt-1 grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-[10.5px]"},Hc={class:"truncate text-neutral-400 dark:text-neutral-500"},zc={key:0,class:"relative"},Fc=10,jc=_e({__name:"StructureTreeRow",props:{node:{},depth:{},collapsed:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{},hoveredEditTarget:{},inheritedEditSurface:{},inheritedAnchorEl:{}},emits:["select","edit","hover","toggle"],setup(e,{emit:t}){const n={tool:Xt,prompt:vt,subagent:tt,handoff:oa,provider:$t,mcp:$t,unknown:sn},o={agent:tt,side:tt,prompt:vt,model:mo,variables:Jn,variable:Jn,hooks:Yn,hook:Yn,tools:sn,tool:Xt,subagent:tt,config:Oa,section:Oa,schema:$t},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:c}=Kt(),d=B(null),f=B(!1),v=O(()=>r.node.editSurface??r.inheritedEditSurface??null),x=O(()=>r.node.editSurface?d.value:r.inheritedAnchorEl??null),g=O(()=>{const z=r.node.editSurface;return z?.entityType!=="prompt"||r.node.kind!=="prompt"&&r.node.toolKind!=="prompt"?null:{entityType:"prompt",entityId:z.entityId,section:"prompt"}}),u=O(()=>!!r.node.children&&r.node.children.length>0),y=O(()=>u.value||r.node.collapsibleBody===!0),S=O(()=>!!r.node.isRoot),_=O(()=>S.value?!0:!r.collapsed.has(r.node.id)),M=O(()=>r.selectedCanvasNodeId===r.node.canvasNodeId);function k(z){if(!z)return!1;const U=[...r.node.children||[]];for(;U.length>0;){const J=U.pop();if(J.cardBacked===!0&&J.canvasNodeId===z)return!0;J.children?.length&&U.push(...J.children)}return!1}const N=O(()=>d.value&&c.value?.anchorEl===d.value?!0:!r.node.editSurface||r.node.anchorOnlyEditSurface?!1:Ft(r.node.editSurface,c.value?.target)?!0:c.value?!1:r.node.cardBacked===!0&&M.value&&!k(r.selectedCanvasNodeId)),P=O(()=>c.value||r.node.anchorOnlyEditSurface?!1:Ft(r.node.editSurface,r.hoveredEditTarget)?!0:r.hoveredEditTarget?!1:r.node.cardBacked===!0&&r.hoveredCanvasNodeId===r.node.canvasNodeId&&!k(r.hoveredCanvasNodeId??null)),L=O(()=>Ft(c.value?.target,g.value)),ne=O(()=>S.value?0:Math.max(0,r.depth-1)),q=O(()=>ne.value*Fc),D=O(()=>{const z=r.node;return(z.kind==="tools"||z.kind==="tool")&&z.toolKind?n[z.toolKind]||sn:z.kind==="side"&&z.detail==="Human"?aa:o[z.kind]||$t}),C=O(()=>{const z=r.node;return z.kind!=="agent"&&z.kind!=="subagent"?null:z.avatarSrc?z.avatarSrc:z.avatarSeed?na(z.avatarSeed):null}),T=O(()=>{const z=r.node;return z.kind==="agent"?"text-neutral-700 dark:text-neutral-200":z.kind==="side"?z.id.endsWith("side-a")?"text-sky-600 dark:text-sky-400":"text-amber-600 dark:text-amber-400":z.kind==="prompt"&&z.tone?s[z.tone]:z.kind==="prompt"||z.kind==="model"?"text-neutral-500 dark:text-neutral-400":z.kind==="subagent"?"text-emerald-600 dark:text-emerald-400":z.kind==="hook"||z.kind==="hooks"?"text-neutral-500 dark:text-neutral-400":(z.kind==="tool"||z.kind==="tools")&&z.toolKind?a[z.toolKind]||"text-neutral-500":"text-neutral-500 dark:text-neutral-400"}),b=O(()=>{const z=r.node;return z.kind==="agent"||z.kind==="subagent"||z.kind==="tool"&&z.toolKind==="handoff"}),A=O(()=>{const z=["group relative flex items-start gap-1.5 px-2 cursor-pointer select-none transition-colors"];return z.push(b.value?"py-[6px] text-[12.5px]":"py-[4px]"),b.value&&z.push("relative z-[1] structure-row-agent-bg"),N.value?z.push("rounded-r-md structure-row-active"):P.value?z.push("rounded-md structure-row-hover"):b.value?z.push("rounded-md"):z.push("rounded-md agents-surface-hover"),r.node.virtual&&!M.value&&!N.value&&z.push("text-neutral-600 dark:text-neutral-400"),z.join(" ")}),G=O(()=>{const z=r.node,U=["truncate"],J=z.kind==="tool"&&z.toolKind==="handoff",le=z.kind==="variable"||z.kind==="schema"&&z.hideIcon===!0||z.kind==="tool"&&!J;return z.cardBacked?U.push(le?"font-semibold text-neutral-900 dark:text-neutral-50":"font-medium text-neutral-900 dark:text-neutral-50"):U.push("font-normal text-neutral-700 dark:text-neutral-300"),le&&U.push("font-mono text-[11.5px]"),U.join(" ")});function Y(z){return["rounded px-1.5 py-px text-[9px] font-semibold lowercase tracking-wide",z.mono?"font-mono":"",l[z.tone||"neutral"]].join(" ")}function H(z){return z.active===!1?"text-neutral-400 dark:text-neutral-600":s[z.tone||"neutral"]||s.neutral}function E(z){z.stopPropagation(),!S.value&&i("toggle",r.node.id)}function F(z){z.stopPropagation(),j()}function j(){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&&y.value&&!_.value&&i("toggle",r.node.id)}function X(z){z.key!=="Enter"&&z.key!==" "||(z.preventDefault(),z.stopPropagation(),j())}function he(z){z.button===0&&(!v.value||!x.value||(z.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(z){z.stopPropagation();const U=g.value,J=z.currentTarget;!U||!(J instanceof HTMLElement)||i("edit",U,J,r.node.canvasNodeId,r.node.editData)}return(z,U)=>{const J=At("StructureTreeRow",!0),le=Jr("auto-animate");return p(),$("div",Ac,[h("div",{class:"mx-1",style:De({paddingLeft:`${q.value}px`})},[N.value?(p(),$("div",{key:0,class:ue(["pointer-events-none absolute bottom-0 top-0 z-[2] w-px bg-accent-500"]),style:De({left:`${q.value+5}px`})},null,4)):W("",!0),h("div",{ref_key:"rowRef",ref:d,class:ue(A.value),role:"button",tabindex:"0",onClick:F,onKeydown:X,onPointerdown:he,onMouseenter:se},[y.value&&!S.value?(p(),ce(I(yo),{key:0,class:ue(["mt-[2px] h-3 w-3 shrink-0 text-neutral-400 transition-transform",_.value?"rotate-90":""]),onClick:E},null,8,["class"])):S.value?W("",!0):(p(),$("span",Nc)),C.value?(p(),$("img",{key:2,src:C.value,alt:"",class:"mt-[1px] h-4 w-4 shrink-0 rounded object-cover"},null,8,Pc)):e.node.hideIcon?W("",!0):(p(),ce(lt(D.value),{key:3,class:ue(["mt-[1px] h-3.5 w-3.5 shrink-0",T.value])},null,8,["class"])),h("div",Lc,[h("div",Rc,[h("span",{class:ue(G.value)},K(e.node.label),3),e.node.required?(p(),$("span",Oc," * ")):W("",!0),g.value?(p(),ce(I(ls),{key:1,content:"Edit prompt text",position:"right",disabled:L.value},{default:ye(()=>[h("button",{type:"button",class:ue(["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",L.value?"text-accent-700 dark:text-accent-300":""]),"aria-label":"Edit prompt text",onClick:fe,onPointerdown:U[0]||(U[0]=Me(()=>{},["stop"])),onKeydown:[Fe(Me(fe,["prevent","stop"]),["enter"]),Fe(Me(fe,["prevent","stop"]),["space"])],onMouseenter:U[1]||(U[1]=Me(ie=>i("hover",e.node.canvasNodeId,g.value),["stop"])),onMouseleave:U[2]||(U[2]=Me(ie=>i("hover",e.node.canvasNodeId,v.value),["stop"]))},[Q(I(Po),{class:"h-3.5 w-3.5"})],42,Dc)]),_:1},8,["disabled"])):W("",!0),e.node.detail?(p(),$("span",Bc,K(e.node.detail),1)):W("",!0)]),(!e.node.collapsibleBody||_.value)&&e.node.badges&&e.node.badges.length>0?(p(),$("div",Vc,[(p(!0),$($e,null,Ie(e.node.badges,ie=>(p(),$("span",{key:ie.label,class:ue(Y(ie))},K(ie.label),3))),128))])):W("",!0),(!e.node.collapsibleBody||_.value)&&e.node.description?(p(),$("div",{key:1,class:ue(["mt-1 text-[10.5px] leading-relaxed text-neutral-500 dark:text-neutral-400",e.node.virtual&&!M.value?"opacity-90":""])},K(e.node.description),3)):W("",!0),(!e.node.collapsibleBody||_.value)&&e.node.metaRows&&e.node.metaRows.length>0?(p(),$("dl",Uc,[(p(!0),$($e,null,Ie(e.node.metaRows,ie=>(p(),$($e,{key:ie.label},[h("dt",Hc,K(ie.label),1),h("dd",{class:ue(["truncate text-right",ie.mono!==!1?"font-mono":"",H(ie)])},K(ie.value),3)],64))),128))])):W("",!0)])],34)],4),u.value?Zr((p(),$("div",zc,[_.value?(p(!0),$($e,{key:0},Ie(e.node.children,ie=>(p(),ce(J,{key:ie.id,node:ie,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:U[3]||(U[3]=ve=>i("select",ve)),onEdit:U[4]||(U[4]=(ve,ee,Z,m)=>i("edit",ve,ee,Z,m)),onHover:U[5]||(U[5]=(ve,ee)=>i("hover",ve,ee)),onToggle:U[6]||(U[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),_.value&&!S.value?(p(),$("div",{key:1,class:"pointer-events-none absolute bottom-0 top-0 w-px bg-neutral-200 dark:bg-neutral-800",style:De({left:`${q.value+14}px`})},null,4)):W("",!0)])),[[le,{duration:60,easing:"ease-out"}]]):W("",!0)])}}});function Xc(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 Kc={class:"structure-tree flex h-full flex-col overflow-hidden border-r border-neutral-200 dark:border-neutral-800"},Yc={key:0,class:"px-3 py-4 text-xs text-neutral-400 dark:text-neutral-500"},qc=_e({__name:"StructureTree",props:{root:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{},hoveredEditTarget:{}},emits:["select","edit","hover"],setup(e,{emit:t}){const n=e,o=t,a=B(new Set),l=B(null),s=B(new Set);function r(d){return Xc(d,a.value,s.value)}Pe(()=>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 c=O(()=>!!n.root);return(d,f)=>(p(),$("div",Kc,[h("div",{class:"flex-1 overflow-y-auto py-1.5 text-[12px]",onMouseleave:f[3]||(f[3]=v=>o("hover",null,null))},[c.value?(p(),ce(jc,{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,u)=>o("edit",v,x,g,u)),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"])):(p(),$("div",Yc," Select an agent to view its structure. "))],32)]))}});function Ke(e,t,n){return{entityType:"prompt",entityId:e,section:t,defaultToolTab:n}}function gn(e,t){return{entityType:"agent",entityId:e,section:t}}function Gc(e){return{entityType:"model",entityId:e.id}}function Wc(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 Ho(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?Ho(o.children,t,`${n}${o.id}__`):void 0}))}function ha(e,t,n,o){const a=ma(e);return{id:`${n}schema`,kind:"schema",label:"Input schema",detail:a.length>0?`${Wc(a)}`:"None",canvasNodeId:t,virtual:!0,editSurface:o,defaultCollapsed:a.length>0,children:a.length>0?Ho(a,t,`${n}schema__`):void 0}}function zo(e){const t=[];if(e.expose_as_tool&&t.push({label:"tool",tone:"neutral",mono:!0}),e.type==="dual_ai"){const o=e.max_session_turns;t.push({label:typeof o=="number"?`max ${o} session turn${o===1?"":"s"}`:"unlimited session turns",tone:"neutral",mono:!0})}const n=Object.keys(e.env||{}).filter(o=>o.trim().length>0);return n.length>0&&t.push({label:`${n.length} env override${n.length===1?"":"s"}`,tone:"sky",mono:!0}),t}function kn(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 Fo(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 wt(e){const t=[];return 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}),t}function jo(e,t,n,o,a){const l=Ke(o,"behavior"),s=Ro(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(Qc)}));return{id:`${n}config`,kind:"config",label:"Prompt Config",canvasNodeId:t,virtual:!0,editSurface:l,defaultCollapsed:!0,children:s}}function Qc(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 Xo(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(", "),c=e.model.providerTools.length>2?", …":"";l.push({label:"Provider tools",value:i+c,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?To(t,e.model.id):n,virtual:!e.model,cardBacked:!!e.model,editSurface:e.model?Gc(e.model):a,editData:e.model||void 0}}function Jc(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 Zc(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"},{key:"subagent",label:"Sub-agents"}].map(({key:r,label:i})=>{const c=a[r]||[],d=r==="prompt"?"sub-prompts":r==="handoff"?"handoffs":r==="subagent"?"sub-agents":"functions";return{id:`${n}group-${r}`,kind:"tools",toolKind:r,label:i,detail:`${c.length}`,canvasNodeId:t,virtual:!0,editSurface:Ke(o,"tools",d),children:c.length>0?c.map((f,v)=>({id:`${n}${r}-${v}-${f.name}`,kind:f.kind==="subagent"?"subagent":"tool",label:f.displayName||f.name,detail:f.kind==="prompt"&&(f.resolvedModel?.name||f.model)||void 0,badges:wt(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 ef(e,t,n){const o=[],a=ha(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(kn(e.variables,t,`${n}detail__`)),o}function tf(e,t,n,o,a){const l=[],s=t.prompt.name,r=Ke(s,"basic"),i=Xo({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(jo(t.prompt,n,`${a}prompt__`,s,e.config)),l.push(ha(t.prompt.required_schema,n,`${a}prompt__`,Ke(s,"schema"))),l.push(kn(ra(t.prompt),n,`${a}prompt__`,sa(t.prompt),Ke(s,"variables"))),l.push(...Zc(t.nestedTools,n,`${a}prompt__`,s));const c=Fo(t.prompt.hooks.map(d=>({id:d,hook:d})),n,`${a}prompt__`);return c&&l.push(c),l}function nf(e,t,n){return[{id:"a",label:e.side_a_label||"Side A",promptName:e.side_a_agent_prompt,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",label:e.side_b_label||(e.type==="dual_ai"?"Side B":"Human"),promptName:e.side_b_agent_prompt,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.promptName||"No prompt",canvasNodeId:t,virtual:!0,editSurface:gn(e.name,a.id==="a"?"side-a":"side-b"),metaRows: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 af(e,t,n,o,a,l,s){if(!e.prompt)return null;const r=e.prompt.name,i=`${l}prompt__`,c=[],d=Ke(r,"basic"),f=Ke(r,"schema"),v=Ke(r,"variables"),x=Ke(r,"tools"),g=Xo({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&&c.push(g),c.push(jo(e.prompt,a,i,r)),c.push(ha(e.prompt.required_schema,a,i,f)),c.push(kn(e.variables,a,i,e.variableEnvNames||[],v));const u={};for(const M of e.tools){const k=M.kind==="provider"||M.kind==="mcp"?"tool":M.kind;(u[k]||=[]).push(M)}const y=new Map;e.tools.forEach((M,k)=>y.set(M,k));const S=[{key:"tool",label:"Functions"},{key:"prompt",label:"Sub-prompts"},{key:"handoff",label:"Handoffs"},{key:"subagent",label:"Sub-agents"}];c.push({id:`${i}tools`,kind:"tools",label:"Tools",detail:`${e.tools.length}`,canvasNodeId:a,virtual:!0,editSurface:x,children:S.map(({key:M,label:k})=>{const N=u[M]||[],P=M==="prompt"?"sub-prompts":M==="handoff"?"handoffs":M==="subagent"?"sub-agents":"functions";return{id:`${i}group-${M}`,kind:"tools",toolKind:M,label:k,detail:`${N.length}`,canvasNodeId:a,virtual:!0,editSurface:Ke(r,"tools",P),children:N.length>0?N.map(L=>of(i,n,o,e,L,y.get(L),r,t,s)):void 0}})});const _=Fo(e.hooks,a,i);return _&&c.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:c}}function of(e,t,n,o,a,l,s,r,i){const d=a.kind==="subagent"||a.kind==="handoff"||a.kind==="prompt"?ln(t,o.id,l):ia(t,o.id),f=`${e}tool-${o.id}-${l}-${a.name}`,v=a.kind==="prompt"?"sub-prompts":a.kind==="handoff"?"handoffs":a.kind==="subagent"?"sub-agents":"functions",x=Ke(s,"tools",v);if(a.kind==="subagent"&&r[a.name]){const g=r[a.name],u=Mo(t,o.id,l,a.kind,a.name),y=a.config.resumable,S=wt(a);return y&&typeof y=="object"&&S.push({label:y.max_instances===null||(y.max_instances??0)>1?"multi":"single",tone:"sky",mono:!0}),{id:f,kind:"subagent",label:g.agent.title||a.displayName,detail:a.name,badges:S.length>0?S:void 0,canvasNodeId:fn(u),toolKind:a.kind,avatarSrc:g.agent.icon||void 0,avatarSeed:g.agent.name,cardBacked:!0,editSurface:x,children:Ko(g.agent,g.sides,r,u,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:wt(a),canvasNodeId:d,toolKind:a.kind,cardBacked:!0,editSurface:Ke(a.name,"basic"),children:g?tf(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?zo(g):wt(a),canvasNodeId:d,toolKind:a.kind,defaultCollapsed:g?!0:void 0,cardBacked:!0,editSurface:x,children:g?nf(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:wt(a),canvasNodeId:d,toolKind:a.kind,defaultCollapsed:g?!0:void 0,cardBacked:!0,editSurface:x,children:g?ef(g,d,`${f}__`):void 0,hideIcon:!0}}return{id:f,kind:"tool",label:a.displayName||a.name,badges:wt(a),canvasNodeId:d,toolKind:a.kind,hideIcon:!0,editSurface:x}}function rf(e,t,n,o,a,l,s){const r=ia(o,t.id),i=`${l}side-${t.id}__`,c=gn(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:c,children:[]};d.push(Jc(t,r,i,c));const f=af(t,n,o,a,r,i,s);return f&&d.push(f),{id:`${l}side-${t.id}`,kind:"side",label:t.label,canvasNodeId:r,editSurface:c,children:d}}function Ko(e,t,n,o,a,l,s,r=!1){const i=fn(o),c=gn(e.name,"variables"),d=[kn(e._variables||[],i,`${l}agent__`,Object.keys(e.env||{}),c),...t.map(f=>rf(e.name,f,n,o,a,l,s))];return{id:`${l}agent`,kind:"agent",label:e.title||e.name,detail:e.name,badges:zo(e),canvasNodeId:i,avatarSrc:e.icon||void 0,avatarSeed:e.name,isRoot:r||void 0,cardBacked:!0,editSurface:gn(e.name,"identity"),children:d}}function sf(e,t,n,o){const a=$o(e.id||e.name),l=`${e.id||e.name}__`;return Ko(e,t,n,a,a,l,o,!0)}function lf(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 c of i.tools)if(c.kind==="tool"&&n.add(c.name),c.kind==="prompt"&&o.add(c.name),c.kind==="handoff"&&a.add(c.name),c.kind==="subagent"){const d=t[c.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 df(e,t,n,o,a,l){const s=B({functionTools:{},promptTools:{},handoffs:{}});let r=0;return Pe(()=>e.value?{agentId:e.value.id||e.value.name,plan:lf(t.value,n.value),modelKeys:Object.keys(o.value),toolKeys:Object.keys(a.value),refreshEpoch:l?.value??0}:null,async i=>{const c=e.value;if(!i||!c){s.value={functionTools:{},promptTools:{},handoffs:{}};return}const d=++r,f=await Id(i.plan,{toolsCatalog:a.value,models:o.value});d===r&&(s.value=f)},{immediate:!0}),O(()=>{const i=e.value;return i?sf(i,t.value,n.value,s.value):null})}const Yo=_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=At("FormKit");return p(),ce(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"])}}}),uf={class:"font-mono text-sm"},cf={class:"flex items-center gap-2 py-1.5"},ff={class:"text-neutral-600 dark:text-neutral-400"},mf={class:"ml-auto"},qo=_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(It,{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(Yo,{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(qo,{children:t.children,getSelection:e.getSelection,setSelection:e.setSelection,isShared:e.isShared,getTypeColor:e.getTypeColor}):null])])))}}),hf=_e({__name:"DependencyTree",props:{analysis:{},selections:{}},emits:["update:selection"],setup(e,{emit:t}){const n=e,o=t,a=O(()=>{const d=n.analysis,f=[];let v=0;const x=(M,k)=>{for(const N of M){const P=`${k}:${N.name}`;f.push({...N,type:k,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,u=`agent:${d.agent}`;for(const M of f){const k=M.parentKey||u;`${M.type}:${M.name}`===u&&!M.parentKey||(g.has(k)||g.set(k,[]),g.get(k).push(M))}const y=new Set,S=M=>{const k=`${M.type}:${M.name}`,N=y.has(k);y.add(k);const P=[],L=g.get(k)||[];for(const ne of L)P.push(S(ne));return{name:M.name,type:M.type,filePath:M.filePath,sharedWith:M.sharedWith,discoveredVia:M.discoveredVia,children:P,uid:M.uid,isDuplicate:N}},_=f.find(M=>M.type==="agent"&&M.name===d.agent&&!M.parentKey);return _?S(_):{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,c=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)=>(p(),$("div",uf,[h("div",cf,[h("span",ff,K(a.value.name),1),Q(I(It),{variant:c(a.value.type),size:"sm"},{default:ye(()=>[pe(K(a.value.type),1)]),_:1},8,["variant"]),h("div",mf,[Q(Yo,{value:s(a.value),"onUpdate:value":f[0]||(f[0]=v=>r(a.value,v))},null,8,["value"])])]),(p(),ce(lt(I(qo)),{children:a.value.children,"get-selection":s,"set-selection":r,"is-shared":i,"get-type-color":c},null,8,["children"]))]))}}),pf={key:0,class:"flex items-center justify-center py-12"},vf={key:1,class:"py-4"},gf={key:2,class:"py-4 space-y-4"},xf={class:"space-y-2"},yf={class:"text-sm opacity-80"},bf={class:"text-sm opacity-80"},kf={class:"space-y-4"},wf={class:"grid grid-cols-2 gap-4"},$f={class:"col-span-2"},Mf={class:"col-span-2"},Tf={class:"col-span-2"},Cf={key:0,class:"mt-3 space-y-3"},Sf={class:"flex gap-2 border-b border-neutral-200 dark:border-neutral-700"},_f={key:0},If=["innerHTML"],Ef={class:"space-y-4"},Af={class:"list-disc list-inside space-y-1"},Nf={class:"border border-neutral-200 dark:border-neutral-700 rounded-lg p-4 bg-neutral-50 dark:bg-neutral-900/50"},Pf={class:"flex justify-between"},Lf=_e({__name:"PackModal",props:{modelValue:{type:Boolean},agent:{}},emits:["update:modelValue","packed"],setup(e,{emit:t}){cn.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=O({get:()=>o.modelValue,set:H=>a("update:modelValue",H)}),s=B(null),r=B(!1),i=B(!1),c=B(null),d=B(null);let f=null;const v=B(""),x=B("1.0.0"),g=B("MIT"),u=B(""),y=B(null),S=B(""),_=B("edit"),M=B(!1),k=O(()=>S.value?cn(S.value):""),N=B(new Map);Pe(()=>o.modelValue,async H=>{H&&o.agent?await Promise.all([L(),ne()]):P()});const P=()=>{Y(),s.value=null,c.value=null,d.value=null,N.value=new Map,v.value="",x.value="1.0.0",g.value="MIT",u.value="",S.value="",_.value="edit",M.value=!1,st(y)},L=async()=>{if(o.agent){r.value=!0,c.value=null;try{const H=await fetch(Ve(`/api/pack/${o.agent.id}/analyze`)),E=await H.json();if(!H.ok){c.value=E.error||"Failed to analyze agent";return}if(s.value=E,E.generatedReadme)S.value=E.generatedReadme;else{const F=q(o.agent?.id||"agent");S.value=D(F,o.agent?.id||"agent",E.agentDescription)}T(E)}catch(H){c.value=H instanceof Error?H.message:"Failed to analyze agent"}finally{r.value=!1}}},ne=async()=>{if(o.agent)try{const H=await fetch(Ve(`/api/pack/${o.agent.id}/metadata`));if(H.ok){const E=await H.json();v.value=E.packageName,x.value=C(E.version),g.value=E.license||"MIT",u.value=E.licenseOwner||""}else v.value=q(o.agent.id),x.value="1.0.0",g.value="MIT",u.value=""}catch{v.value=q(o.agent?.id||"agent"),x.value="1.0.0",g.value="MIT",u.value=""}},q=H=>`standardagent-${H.toLowerCase().replace(/_/g,"-")}`,D=(H,E,F)=>`# ${H}
|
|
2
2
|
|
|
3
3
|
${F||"A Standard Agent package."}
|
|
4
4
|
|