@standardagents/builder 0.45.8 → 0.45.9
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/README.md +1 -0
- package/dist/built-in-routes.js +1 -1
- package/dist/client/{ApiKeysView-BcqUvH1N.js → ApiKeysView-BwDYd2nU.js} +1 -1
- package/dist/client/{CodeEditor-C9bQ4Z3b.js → CodeEditor-xwWkV1-c.js} +3 -3
- package/dist/client/CompositionView-D1bxg5aS.js +72 -0
- package/dist/client/{CopyButton.vue_vue_type_script_setup_true_lang-DX9-shOV.js → CopyButton.vue_vue_type_script_setup_true_lang-CLj4kYi5.js} +1 -1
- package/dist/client/{DataTable.vue_vue_type_script_setup_true_lang-B85c2lO4.js → DataTable.vue_vue_type_script_setup_true_lang-CkugFRtR.js} +1 -1
- package/dist/client/{DefinitionSource-Bpge2u90.js → DefinitionSource-BbqSJUnU.js} +3 -3
- package/dist/client/{DefinitionUsedBy.vue_vue_type_script_setup_true_lang-BVz1zKTE.js → DefinitionUsedBy.vue_vue_type_script_setup_true_lang-BMGuiEk7.js} +1 -1
- package/dist/client/{LoginView-rym24zTR.js → LoginView-0OVTMU2S.js} +1 -1
- package/dist/client/{MarketplaceView-iAUImVOg.js → MarketplaceView-BuQxQaUp.js} +1 -1
- package/dist/client/{Modal.vue_vue_type_script_setup_true_lang-DOTIR3w5.js → Modal.vue_vue_type_script_setup_true_lang-UlrwSOT8.js} +1 -1
- package/dist/client/{ModelsView-D-GX47Hw.js → ModelsView-B9nRyP5Y.js} +1 -1
- package/dist/client/{PromptView-C_KoH5Mj.js → PromptView-3MXx3DhS.js} +1 -1
- package/dist/client/{PromptsView-CDiHQ75x.js → PromptsView-CaS5lNVN.js} +1 -1
- package/dist/client/{ProvidersView-COIzWC9J.js → ProvidersView-jwLDm5PC.js} +1 -1
- package/dist/client/{ToolsView-DgQIHbKB.js → ToolsView-DfaKB3DJ.js} +1 -1
- package/dist/client/{UiButton.vue_vue_type_script_setup_true_lang-BezveAaR.js → UiButton.vue_vue_type_script_setup_true_lang-CVyrFcWg.js} +1 -1
- package/dist/client/{UiEmptyState.vue_vue_type_script_setup_true_lang-n9hcWKvI.js → UiEmptyState.vue_vue_type_script_setup_true_lang-BD_dt9VV.js} +1 -1
- package/dist/client/{UiFilterMenu.vue_vue_type_script_setup_true_lang-CcYZv4bj.js → UiFilterMenu.vue_vue_type_script_setup_true_lang-BE1kHACC.js} +1 -1
- package/dist/client/{UiPageFrame-CeuT1rer.js → UiPageFrame-CP9KRIIM.js} +1 -1
- package/dist/client/{UsersView-C0283pU_.js → UsersView-SCr3Ls5P.js} +1 -1
- package/dist/client/{VariablesView-DljSo_RS.js → VariablesView-DGyxj9Ow.js} +1 -1
- package/dist/client/assets/{index-BBzCGX26.css → index-D0bcj_gk.css} +1 -1
- package/dist/client/{form-errors-cxIParHK.js → form-errors-D9RXsjd2.js} +1 -1
- package/dist/client/{index-CgCqkjVa.js → index-BkfWiMo-.js} +1 -1
- package/dist/client/index-BwlCQIem.js +5 -0
- package/dist/client/{index-er6dD-sT.js → index-C4-LP0pJ.js} +1 -1
- package/dist/client/{index-BEnYvzGi.js → index-CDCQWHe2.js} +1 -1
- package/dist/client/{index-CzsbmDuv.js → index-ChLk4ONU.js} +1 -1
- package/dist/client/{index-BFKj1V0c.js → index-CmfTs1yz.js} +1 -1
- package/dist/client/{index-C7gIQnkU.js → index-CwBC9sTn.js} +1 -1
- package/dist/client/{index-Dj5tjGFV.js → index-D4_R8FnR.js} +1 -1
- package/dist/client/{index-DfVgpfCm.js → index-DcCqDioc.js} +1 -1
- package/dist/client/{index-BcQ5zdWM.js → index-b4VUAUvJ.js} +1 -1
- package/dist/client/{index-DvSYq8lz.js → index-jI_N1y04.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/{schemaArguments-B2ppewpv.js → schemaArguments-DnkXBmpq.js} +1 -1
- package/dist/client/{toolReference-B96xiDXn.js → toolReference-Dnhl8D6k.js} +1 -1
- package/dist/client/{useDefinitionUsage-BxmZT4nk.js → useDefinitionUsage-CkISuMRg.js} +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts +10 -0
- package/dist/plugin.js +20 -0
- package/dist/plugin.js.map +1 -1
- package/package.json +7 -6
- package/dist/client/CompositionView-GlnAWxhl.js +0 -72
- package/dist/client/index-DnlG7hIl.js +0 -5
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["CodeEditor-C9bQ4Z3b.js","vendor-L6I0G397.js","Modal.vue_vue_type_script_setup_true_lang-DOTIR3w5.js","vue-CnrejLtC.js","formkit-B1fIUqP-.js","syntax-XeetdF8c.js","index-DnlG7hIl.js","assets/index-BBzCGX26.css","UiFilterMenu.vue_vue_type_script_setup_true_lang-CcYZv4bj.js","UiButton.vue_vue_type_script_setup_true_lang-BezveAaR.js","assets/CodeEditor-BRqHbzJv.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{s as ao,a as C0,b as Be,u as wa,c as gl,d as vl,e as Ve,A as en,f as Oo,i as yl,g as Kn,P as Yd,h as Es,t as T0,j as M0,k as A0,l as L0,r as R0,m as E0,n as P0,o as N0,p as O0,q as D0,D as B0,v as F0,w as _t,x as pa,_ as ot,y as Mn,z as Wn,I as Gn,B as Vr,E as Do,C as j0,F as q0,G as xn,H as z0,J as V0,K as Zd,L as H0,M as Bo,N as Qd,O as ec,Q as bl,T as Ps,R as tc,S as U0,U as K0,V as Rr,W as nc,X as xl,Y as Ns,Z as Jn,$ as oo,a0 as W0,a1 as G0,a2 as He,a3 as J0,a4 as X0,a5 as Y0,a6 as Z0,a7 as rc,a8 as Er,a9 as ac,aa as Os,ab as so,ac as lo,ad as io,ae as kl,af as Q0,ag as eh,ah as oc,ai as th,aj as et,ak as Ds,al as sc,am as wl,an as nh,ao as rh,ap as ns,aq as ah,ar as oh,as as sh,at as lh,au as ih,av as uh,aw as Ii,ax as lc,ay as dh,az as ch,aA as fh,aB as ph,aC as ic,aD as hh,aE as Si,aF as mh,aG as _l,aH as $l,aI as Il,aJ as gh,aK as fr,aL as uc,aM as vh,aN as yh,aO as bh,aP as dc,aQ as Bs,aR as Ci,aS as xh,aT as Ba,aU as kh,aV as wh,aW as Fs,aX as _h,aY as $h,aZ as Ih,a_ as Sh,a$ as Ch,b0 as js,b1 as Th,b2 as uo,b3 as Mh,b4 as Ah,b5 as Lh,b6 as Rh,b7 as cc,b8 as fc,b9 as Ti,ba as pc,bb as hc,bc as Eh,bd as Ph,be as Sl,bf as Mi,bg as Nh,bh as Ai,bi as Oh,bj as rs,bk as Dh,bl as Bh,bm as Fh,bn as jh,bo as qh,bp as zh,bq as Vh,br as Hh,bs as Uh,bt as Kh,bu as Wh,bv as Gh,bw as Jh}from"./index-DnlG7hIl.js";import{d as we,b as c,e as l,g as gt,D as j,f as u,A as h,a7 as Cl,q as M,z as w,F as te,B as Ie,y as Ce,k as K,x as ct,n as J,l as be,G as Sn,H as Pr,c as x,r as R,R as rr,S as _a,w as ve,j as Qe,_ as Xh,a as Hr,Q as Xn,o as an,N as Yn,m as Ye,T as $a,h as nt,s as Dt,a8 as Ft,W as Ur,a9 as Fo,$ as jo,X as co,V as Yh,t as Zh,E as ar,M as Ia,C as Je,aa as Qh,ab as It,ac as xt,ad as ut,ae as Sa,af as Tl,ag as Et,ah as em,O as tm,P as mc,ai as Li,aj as qo,J as $t,ak as nm,L as dn,I as rm,al as am,K as fo,am as om,an as gc,ao as zt,ap as po,aq as cn,ar as sm,as as Bn,at as vc,a5 as lm,au as im,av as um,aw as yc,ax as bc,ay as dm,az as xc,aA as cm,aB as fm,aC as pm,aD as hm,i as mm,aE as vr,aF as ho,aG as Ml,aH as zo,aI as kc,aJ as gm,aK as vm,aL as ym,aM as as,aN as bm,aO as xm,aP as km,aQ as wm,aR as mo,aS as _m,aT as $m,aU as Im,aV as Sm,aW as Cm,aX as Ri,aY as Ei,aZ as Tm,a_ as Mm,a$ as Am,b0 as Lm,b1 as Rm,b2 as Pi,b3 as Em,b4 as Pm,b5 as Nm,b6 as Ni,p as Om,b7 as Dm}from"./vue-CnrejLtC.js";import{n as Bm}from"./promptReasoningLevel-BrUFPP1Z.js";import{_ as wc,U as Fm}from"./UiPageFrame-CeuT1rer.js";import{I as Al,a as jm,b as qm,_ as Xr,c as zm,d as Vm}from"./UiFilterMenu.vue_vue_type_script_setup_true_lang-CcYZv4bj.js";import{_ as _c,a as Hm}from"./UiEmptyState.vue_vue_type_script_setup_true_lang-n9hcWKvI.js";import{I as Oi}from"./corner-down-right-wgTcgBsB.js";import{u as $c,_ as Ct}from"./useClipboardCopy-DURjq7gM.js";import{I as qs,_ as Zn,t as Um,u as Km}from"./timeAgo-Dw5sbUU-.js";import{_ as Wm,D as Gm,a as Cn}from"./DefinitionSource-Bpge2u90.js";import{e as go,B as Jm,p as Xm}from"./vendor-L6I0G397.js";import{_ as Ll}from"./Modal.vue_vue_type_script_setup_true_lang-DOTIR3w5.js";import{_ as Tn}from"./UiButton.vue_vue_type_script_setup_true_lang-BezveAaR.js";import{c as Bt,a as Rl,b as El}from"./form-errors-cxIParHK.js";import{X as Ym,W as Zm,Y as Qm}from"./formkit-B1fIUqP-.js";import{_ as Ca}from"./CopyButton.vue_vue_type_script_setup_true_lang-DX9-shOV.js";import"./syntax-XeetdF8c.js";const eg={class:"text-xs text-neutral-500 dark:text-neutral-400"},os=we({__name:"UiHelpText",setup(e){return(t,n)=>(l(),c("p",eg,[gt(t.$slots,"default")]))}}),tg={class:"flex items-start gap-2 text-xs"},ng={class:"min-w-0"},rg={class:"font-medium text-amber-700 dark:text-amber-300"},ag={key:0,class:"mt-0.5 text-neutral-600 dark:text-neutral-400"},Pl=we({__name:"UiNotice",props:{title:{},lines:{}},setup(e){return(t,n)=>(l(),c("div",tg,[j(h(Cl),{size:14,class:"mt-px shrink-0 text-amber-600 dark:text-amber-400","aria-hidden":"true"}),u("div",ng,[u("div",rg,w(e.title),1),e.lines?.length?(l(),c("div",ag,[(l(!0),c(te,null,Ie(e.lines,(r,a)=>(l(),c(te,{key:a},[Ce(w(a>0?" ":"")+w(r),1)],64))),128))])):M("",!0),gt(t.$slots,"default")])]))}}),og=we({__name:"UiMenuItem",props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},as:{default:"button"}},emits:["click"],setup(e,{emit:t}){const n=e,r=t;function a(o){n.disabled||r("click",o)}return(o,s)=>(l(),K(ct(e.as),{type:e.as==="button"?"button":void 0,disabled:e.as==="button"?e.disabled:void 0,onClick:a,class:J(["w-full flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors",[e.disabled?"opacity-50 cursor-not-allowed":"hover:bg-neutral-100 dark:hover:bg-neutral-800 cursor-pointer",e.active?"bg-accent-50 dark:bg-accent-950/30":""]])},{default:be(()=>[gt(o.$slots,"default")]),_:3},8,["type","disabled","class"]))}}),sg={class:"size-1.5 shrink-0 rounded-full bg-accent-500 motion-safe:animate-pulse","aria-hidden":"true"},Nr=we({__name:"UiLiveDot",setup(e){return(t,n)=>(l(),c("span",sg))}}),lg=["aria-checked","title"],ig={class:"whitespace-nowrap"},Di=we({__name:"UiSwitch",props:Sn({label:{},title:{}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=Pr(e,"modelValue");return(n,r)=>(l(),c("button",{type:"button",role:"switch","aria-checked":t.value,title:e.title,class:"inline-flex shrink-0 items-center gap-1.5 rounded-md px-1 py-0.5 text-[12px] text-neutral-600 outline-none transition-colors hover:text-neutral-900 focus-visible:ring-2 focus-visible:ring-accent-500 dark:text-neutral-300 dark:hover:text-white",onClick:r[0]||(r[0]=a=>t.value=!t.value)},[u("span",{class:J(["relative inline-flex h-3.5 w-6 shrink-0 items-center rounded-full transition-colors motion-reduce:transition-none",t.value?"bg-accent-600 dark:bg-accent-500":"bg-neutral-300 dark:bg-neutral-600"]),"aria-hidden":"true"},[u("span",{class:J(["absolute left-0.5 size-2.5 rounded-full bg-white shadow-sm transition-transform motion-reduce:transition-none",t.value?"translate-x-2.5":""])},null,2)],2),u("span",ig,w(e.label),1)],8,lg))}});async function mn(e){return Be.getJson(`/api${e}`)}async function Fn(e){if(!e)return null;try{return(await mn(`/prompts/${encodeURIComponent(e)}`)).prompt}catch{return null}}async function ug(e){if(!e)return null;try{return await mn(`/tools/${encodeURIComponent(e)}`)}catch{return null}}function dg(e){const t=e?.env??e?.tenvs;return!t||typeof t!="object"?{}:t}function Nl(e){return Object.keys(dg(e)).filter(t=>t.trim().length>0)}function Ic(e){const t=e?.variables||[],n=new Map;for(const r of t){const a=r.name?.trim();a&&n.set(a,{...r,name:a})}for(const r of Nl(e))n.has(r)||n.set(r,{name:r,type:"text",required:!1,description:"Default value set on this prompt."});return Array.from(n.values())}function cg(e){return e?!e.packed&&e.id===e.name:!1}function fg(e,t){return t?.type?t.type:e.startsWith("provider:")?"provider":e.startsWith("mcp:")?"mcp":"unknown"}function pg(e){return e.startsWith("provider:")?e.slice(9):e.startsWith("mcp:")?e.slice(4):e}function hg(e,t){if(!e)return null;const n=t[e];if(n)return n;for(const r of Object.values(t))if(r.name===e)return r;return null}function Sc(e,t,n={}){const r=t[e.name],a=r?.model;return{name:e.name,displayName:pg(e.name),kind:fg(e.name,r),description:r?.description||"",variables:r?.variables||[],model:a,resolvedModel:hg(a,n),config:e}}function mg(e){return e.as?.trim()||e.agent}function gg(e){const t=mg(e);return{name:t,displayName:t,kind:"subagent",description:e.description||"",variables:[],config:{name:t},relationship:e}}function Or(e,t,n,r){const a=t==="a"?e.side_a_backing:e.side_b_backing,o=ao(t,a,t==="a"?e.side_a_label:e.side_b_label),s=(t==="a"?e.side_a_handler:e.side_b_handler)||null,i=(t==="a"?e.side_a_subagents:e.side_b_subagents)||[],d=t==="a"?e.side_a_agent_prompt:e.side_b_agent_prompt,p=t==="a"?e.side_a_stop_on_response:e.side_b_stop_on_response,f=t==="a"?e.side_a_stop_tool:e.side_b_stop_tool,m=t==="a"?e.side_a_max_steps:e.side_b_max_steps,g=[t==="a"?e.side_a_session_stop_tool:e.side_b_session_stop_tool,t==="a"?e.side_a_session_fail_tool:e.side_b_session_fail_tool,t==="a"?e.side_a_session_status_tool:e.side_b_session_status_tool].filter(y=>!!y),v=(n?.tools||[]).map(y=>Sc(y,r.toolsCatalog,r.models)),_=i.map(gg),b=[...v,..._],C=b.filter(y=>y.kind==="handoff"||y.kind==="subagent");return{id:t,agentName:e.name,label:o,mode:a==="human"?"human":a==="handler"?"handler":"ai",backing:a,handlerName:s,promptName:d||null,stopOnResponse:p,stopTool:f,maxSteps:m,sessionStopTool:t==="a"?e.side_a_session_stop_tool:e.side_b_session_stop_tool,sessionTools:g,prompt:n,model:n&&r.models[n.model_id]||null,tools:b,hooks:(n?.hooks||[]).map(y=>r.hooks[y]||{id:y,hook:"unknown"}),variables:Ic(n),variableEnvNames:Nl(n),outgoingAgents:C,toolHistoryFinding:C0(e.definition_diagnostics,t)}}function vg(){const e=wa(),t=gl(),n=x(()=>[...e.items.value].sort((v,_)=>v.name.localeCompare(_.name))),r=x(()=>Object.fromEntries(t.items.value.map(v=>[v.id,v]))),a=R({}),o=R({}),s=R(!0),i=R(!1),d=x(()=>s.value&&!i.value||e.initialLoading.value||t.initialLoading.value),p=x(()=>vl(e)),f=R(null),m=x(()=>f.value||e.error.value||t.error.value);async function g(){s.value=!0,f.value=null;try{const[,,v,_]=await Promise.all([e.ensureLoaded(),t.ensureLoaded(),mn("/tools"),mn("/hooks")]);a.value=v||{},o.value=Object.fromEntries((_.hooks||[]).map(b=>[b.id,b])),i.value=!0}catch(v){f.value=`Unable to load composition data. ${Ve(v)}`}finally{s.value=!1}}return{agents:n,models:r,toolsCatalog:a,hooks:o,loadingIndex:d,agentsKnown:p,loadError:m,loadIndex:g}}function yg(e){const t=rr(),n=_a(),r=R(null),a=R(null),o=R(null),s=R(null),i=R(!1),d=R(null);let p=0,f=0;function m(){return{models:e.models.value,toolsCatalog:e.toolsCatalog.value,hooks:e.hooks.value}}const g=x(()=>{const A=a.value;return A?[Or(A,"a",o.value,m()),Or(A,"b",s.value,m())]:[]});function v(A,L){return A===p&&r.value===L}async function _(A){const L=++f;try{await n.replace({query:{...t.query,agent:A}})}catch{}finally{L===f&&(f=0)}}function b(){return f>0}async function C(A,L=!0){const k=e.agents.value.find(T=>T.id===A||T.name===A);if(!k)return;const S=++p;if(r.value=k.id,!cg(k)){a.value=null,o.value=null,s.value=null,d.value="Packed agents are not yet supported in the composition browser.",i.value=!1,L&&_(k.id);return}i.value=!0,d.value=null,L&&_(k.id);try{const T=await mn(`/agents/${encodeURIComponent(k.name)}`),[B,q]=await Promise.all([Fn(T.agent.side_a_agent_prompt),Fn(T.agent.side_b_agent_prompt)]);if(!v(S,k.id))return;a.value=T.agent,o.value=B,s.value=q}catch{if(!v(S,k.id))return;d.value="Unable to load the selected agent composition.",a.value=null,o.value=null,s.value=null}finally{v(S,k.id)&&(i.value=!1)}}async function y(){const A=a.value,L=r.value;if(!A||!L)return!1;const k=++p;try{const S=await mn(`/agents/${encodeURIComponent(A.name)}`),[T,B]=await Promise.all([Fn(S.agent.side_a_agent_prompt),Fn(S.agent.side_b_agent_prompt)]);if(!v(k,L))return!1;const q=(o.value?.tools?.length??0)+(s.value?.tools?.length??0),H=(T?.tools?.length??0)+(B?.tools?.length??0),N=(A.side_a_subagents?.length??0)+(A.side_b_subagents?.length??0),P=(S.agent.side_a_subagents?.length??0)+(S.agent.side_b_subagents?.length??0),V=S.agent.side_a_agent_prompt!==A.side_a_agent_prompt||S.agent.side_b_agent_prompt!==A.side_b_agent_prompt||q!==H||N!==P;return a.value=S.agent,o.value=T,s.value=B,V}catch{return!0}}return{selectedAgentId:r,selectedAgentDetail:a,sideCompositions:g,loadingComposition:i,compositionError:d,selectAgent:C,refreshComposition:y,isRouteSyncing:b}}function bg(){const e=rr(),t=vg(),n=yg({agents:t.agents,models:t.models,toolsCatalog:t.toolsCatalog,hooks:t.hooks}),r=x(()=>t.agents.value.find(s=>s.id===n.selectedAgentId.value)||null);async function a(){if(await t.loadIndex(),t.loadError.value)return;const s=e.path===en&&typeof e.query.agent=="string"?e.query.agent:null,i=s?t.agents.value.find(d=>d.id===s)||t.agents.value.find(d=>d.name===s):null;if(i)await n.selectAgent(i.id,!1);else if(s)n.selectedAgentId.value=s;else if(t.agents.value.length>0){const d=t.agents.value.find(p=>p.primary!==!1)??t.agents.value[0];await n.selectAgent(d.id,!1)}}async function o(){await t.loadIndex()}return{selectedAgentId:n.selectedAgentId,selectedAgentDetail:n.selectedAgentDetail,selectedAgentSummary:r,sideCompositions:n.sideCompositions,models:t.models,toolsCatalog:t.toolsCatalog,agents:t.agents,hooks:t.hooks,loadingIndex:t.loadingIndex,agentsKnown:t.agentsKnown,loadingComposition:n.loadingComposition,loadError:t.loadError,compositionError:n.compositionError,loadIndex:a,refreshIndex:o,selectAgent:n.selectAgent,refreshComposition:n.refreshComposition,isRouteSyncing:n.isRouteSyncing}}function xg(e){const{selectedAgentId:t,reloadThreads:n,messagesPaneRef:r,logsPaneRef:a}=e,o=rr(),s=_a(),i=()=>typeof o.query.thread=="string"?o.query.thread:null,d=ae=>{s.replace({path:o.path,query:{...o.query,thread:ae||void 0},hash:o.hash})},p=ae=>{s.replace({path:o.path,query:{...o.query,inspector:ae},hash:o.hash})},f=i(),m=R(f),g=R(null),v="__draft_new_thread__",_=R(!1);let b=!1;ve(m,ae=>{if(b||ae===v)return;const xe=i();ae!==xe&&d(ae)}),ve(()=>o.query.thread,ae=>{if(b)return;const xe=typeof ae=="string"?ae:null;if(xe&&g.value&&!g.value.has(xe)){b=!0,m.value=null,d(null),Qe(()=>{b=!1});return}xe!==m.value&&(m.value=xe)},{immediate:!0});const C=R(null),y=R(null),A=R(null),L=R(null),k=R(null),S=R(null),T=R(null),{thread:B}=Oo(x(()=>m.value===v?null:m.value));let q=!1;ve(t,ae=>{if(!q){q=!0;return}b=!0,m.value=o.query.agent===ae||yl(o.query)?i():null,C.value=null,y.value=null,A.value=null,L.value=null,k.value=null,S.value=null,T.value=null,Qe(()=>{b=!1})}),ve(m,()=>{C.value=null,y.value=null,A.value=null,L.value=null,k.value=null});const H=ae=>{S.value=ae,T.value=ae},N=ae=>{const xe=r.value,Re=a.value;if(!xe||!Re)return null;if(xe.hasWorkblockForLogId(ae))return ae;let Me=ae;const Ee=10;for(let ke=0;ke<Ee&&Me;ke++){const ie=Re.getLog(Me);if(!ie)break;const se=ie.parent_log_id;if(!se)break;if(xe.hasWorkblockForLogId(se))return se;Me=se}return null};return{selectedThreadId:m,selectedThread:B,selectedMessageId:C,selectedLogId:y,selectedEffectId:A,selectedEffectRef:L,highlightedWorkblockLogId:k,hoveredLogId:S,hoveredWorkblockLogId:T,draftThreadId:v,isCreatingThreadDraft:_,handleThreadSelect:ae=>{m.value=ae},handleThreadsLoaded:(ae,xe)=>{b=!1,g.value=xe?new Set(xe):null,m.value&&g.value&&!g.value.has(m.value)&&(m.value=null),ae&&!m.value?m.value=ae:!ae&&!m.value&&i()&&d(null)},handleMessageClick:async(ae,xe,Re)=>{if(C.value=ae,Re){A.value=Re.id??null,L.value=Re,y.value=null,k.value=null,p("effects"),await Qe(),a.value?.selectEffectByReference(Re);return}if(A.value=null,L.value=null,!xe){y.value=null,k.value=null;return}const Me=a.value;if(!Me){y.value=xe,k.value=xe;return}const Ee=!Me.hasLog(xe);if(Ee&&Me.setLoadingForLog(!0),y.value=xe,k.value=xe,Ee&&!await Me.loadUntilLogId(xe)){Me.setLoadingForLog(!1);return}await Me.waitForLogRow(xe)&&(Me.scrollToLog(xe),Me.selectLogById(xe))},handleMessageHover:H,handleLogClick:ae=>{y.value=ae,A.value=null,L.value=null,C.value=null;const xe=r.value;if(!xe){k.value=ae;return}if(xe.scrollToLogId(ae)){k.value=ae;return}const Re=N(ae);Re&&Re!==ae&&xe.scrollToLogId(Re),k.value=Re??ae},handleLogHover:ae=>{if(S.value=ae,!ae){T.value=null;return}T.value=N(ae)??ae},handleLogsLoaded:ae=>{ae&&(y.value=ae)},handleLogsDeleted:ae=>{a.value?.removeLogsByIds(ae)},handleThreadDeleted:()=>{m.value=null,C.value=null,y.value=null,A.value=null,L.value=null,k.value=null,S.value=null,T.value=null,n()},handleCreateThread:()=>{_.value=!0,m.value=v},handleThreadCreated:ae=>{_.value=!1,n(),m.value=ae,Qe(()=>r.value?.focusComposer())},handleCancelCreateThread:()=>{_.value=!1,m.value===v&&(m.value=null)},endThreadDraft:()=>{_.value&&(_.value=!1,m.value=i())},handleThreadUpdated:()=>{n()}}}function Bi(e,t){if(!e)return null;const n=t[e];if(n)return n;for(const r of Object.values(t))if(r.name===e)return r;return null}async function kg(e){const[t,n]=await Promise.all([e.toolsCatalog?Promise.resolve(e.toolsCatalog):mn("/tools"),e.models?Promise.resolve(e.models):Kn.models.ensureLoaded().then(()=>Object.fromEntries(Kn.models.items.value.map(r=>[r.id,r])))]);return{toolsCatalog:t,models:n}}async function wg(e,t={}){if(e.length===0)return[];const n=await kg(t).catch(()=>null);return(await Promise.all(e.map(async a=>[a,await Fn(a)]))).map(([a,o])=>o?n?[a,Cc(o,n)]:[a,{prompt:o,nestedTools:[],model:null}]:[a,null])}function Cc(e,t){const n=e.tools.map(a=>Sc(a,t.toolsCatalog,t.models)),r=Bi(e.model_id,t.models)||Bi(e.model_name,t.models);return{prompt:e,nestedTools:n,model:r}}async function _g(e){try{return(await mn(`/agents/${encodeURIComponent(e)}`)).agent}catch{return null}}async function $g(e,t){const[n,r,a]=await Promise.all([Promise.all(e.functionTools.map(async o=>[o,await ug(o)])),wg(e.promptTools,t),Promise.all(e.handoffs.map(async o=>[o,await _g(o)]))]);return{functionTools:Object.fromEntries(n),promptTools:Object.fromEntries(r),handoffs:Object.fromEntries(a)}}const Fi={functionTools:{},promptTools:{},handoffs:{}};function Tc(e){const t=new Set,n=new Set,r=new Set;for(const a of e)for(const o of a)for(const s of o.tools)s.kind==="tool"&&t.add(s.name),s.kind==="prompt"&&n.add(s.name),s.kind==="handoff"&&r.add(s.name);return{functionTools:[...t].sort(),promptTools:[...n].sort(),handoffs:[...r].sort()}}let ss=null;function Ig(e,t,n,r){if(ss?.key===e)return ss.promise;const a=$g(t,{models:n,toolsCatalog:r});return ss={key:e,promise:a},a}function Mc(e,t,n,r,a){const o=R(Fi);let s=0;return ve(()=>e.value?{agentId:e.value.id||e.value.name,plan:Tc(t.value),modelKeys:Object.keys(n.value),toolKeys:Object.keys(r.value),refreshEpoch:a?.value??0}:null,async i=>{if(!i||!e.value){o.value=Fi;return}const d=++s,p=await Ig(JSON.stringify(i),i.plan,n.value,r.value);d===s&&(o.value=p)},{immediate:!0}),o}const ha="__";function Ac(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 Lc(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"item"}function zs(e,t,n){const r=n===void 0?"":`-${n}`;return`${e}-${Lc(t)}-${Ac(t)}${r}`}function Rc(e,...t){return`${e}${t.join(ha)}${ha}`}function Ta(e){return Rc(zs("agent",e))}function Ol(e,t,n,r,a){return Rc(e,zs("side",t),zs("tool",`${r}:${a}`,n))}const Ma=e=>`${e}agent`,Dl=(e,t)=>`${e}side-${t}`,Ec=(e,t,n)=>`${e}tool-${t}-${n}`,Vs=(e,t)=>`${e}model-${Lc(t)}-${Ac(t)}`,Bl=(e,t)=>`${e}prompt-${t}`,Pc=(e,t,n)=>`${e}hook-${t}-${n}`,Nc=(e,t)=>`${e}${ha}tool-${t}`,Oc=(e,t)=>`${e}${ha}hook-${t}`,ji=new RegExp(`${ha}(?:tool|hook)-\\d+$`),Sg=/^(.*)(?:prompt|hook|tool)-(a|b)(?:-\d+)?$/;function Dc(e){const t=[];let n=e;for(;ji.test(n);)n=n.replace(ji,""),t.push(n);const r=Sg.exec(n);return r&&t.push(Dl(r[1],r[2]==="a"?"a":"b")),t}function Cg(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function xr(e){return e.kind?null:e.model_name||e.model||null}function at(e){return Cg(e)?e:{}}function Dr(e){return typeof e=="string"?e:""}function Tg(e){const t=at(e);return Dr(at(t.function).name)||Dr(t.name)||"Unknown"}function qi(e){const t=at(e);return Dr(at(t.function).description)||Dr(t.description)}function zi(e){return Dr(at(at(e).image_url).url)||null}function Mg(e){return(Dr(at(e).type)||"unknown").replace("reasoning.","")}function or(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function Bc(e){if(!e)return"N/A";const t=or(e);return t===null?e:JSON.stringify(t,null,2)}function Br(e){const t=or(e);return Array.isArray(t)?t:[]}function Ag(e){const t=at(or(e)),n=Array.isArray(t.choices)?t.choices:[],r=at(n[0]),a=at(r.message);return Array.isArray(a.tool_calls)?a.tool_calls:[]}function Lg(e){const t=at(or(e)),n=Array.isArray(t.choices)?t.choices:[],r=at(n[0]),a=at(r.message);return Array.isArray(a.reasoning_details)?a.reasoning_details:[]}function Rg(e){const t=at(or(e)),n=Array.isArray(t.choices)?t.choices:[],r=at(n[0]),a=at(r.message);return typeof a.content=="string"?a.content:""}function Eg(e){const t=at(or(e)),n=Array.isArray(t.choices)?t.choices:[],r=at(n[0]),a=at(r.message);return Array.isArray(a.images)?a.images:[]}function Pg(e){const t=new Map,n=Br(e);for(const r of n){const a=at(r),o=a.tool_call_id;typeof o=="string"&&t.set(o,{content:a.content,status:typeof a.status=="string"?a.status:void 0,tool_name:typeof a.tool_name=="string"?a.tool_name:void 0,timestamp:typeof a.timestamp=="number"?a.timestamp:void 0})}return t}function Vi(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Ng(e){const t=[],n=new Set,r=Br(e);for(const a of r){const o=at(a),s=typeof o.id=="string"?o.id:null;if(!s||n.has(s))continue;const i=typeof o.name=="string"?o.name:null,d=Vi(o.scheduledAt),p=Vi(o.createdAt),f=typeof o.status=="string"?o.status:null;n.add(s),t.push({id:s,name:i,scheduledAt:d,createdAt:p,status:f,reference:{id:s,name:i}})}return t}function Og(e){const t=at(e);return typeof t.id=="string"&&(typeof t.type=="string"||typeof t.name=="string")&&typeof t.status=="string"}function Dg(e){return Br(e).filter(Og).map(t=>{const n=at(t),r=t.name??t.type;return{...t,name:r,type:t.type??r,raw:n}})}function Bg(e){const t=[];for(const n of e.toolCalls){const r=at(n),a=at(r.function);t.push({id:typeof r.id=="string"?r.id:`tool-${t.length}`,name:typeof a.name=="string"?a.name:"Unknown",isProvider:!1,isQueued:!1,function:{name:typeof a.name=="string"?a.name:"Unknown",arguments:typeof a.arguments=="string"?a.arguments:void 0}})}for(const n of e.queuedTools){const r=at(n),a=at(r.function);t.push({id:typeof r.id=="string"?r.id:`queued-${t.length}`,name:typeof a.name=="string"?a.name:"Unknown",isProvider:!1,isQueued:!0,function:{name:typeof a.name=="string"?a.name:"Unknown",arguments:typeof a.arguments=="string"?a.arguments:void 0},queuedAt:typeof r.queued_at=="number"?r.queued_at:void 0})}for(const n of e.providerToolCalls){const r=n.name??n.type;t.push({id:n.id,name:r,isProvider:!0,isQueued:!1,providerType:r,status:n.status,rawProviderTool:n.raw,result:n.result,metadata:n.metadata})}return t}function Fg(e){switch(e){case"completed":return"Completed";case"failed":return"Failed";case"in_progress":return"In progress"}}function jg(e){if(e.rawProviderTool)return JSON.stringify(e.rawProviderTool,null,2);const t={id:e.id,name:e.name,type:e.providerType??e.name,status:e.status??"completed"};return e.result!==void 0&&(t.result=e.result),e.metadata!==void 0&&(t.metadata=e.metadata),JSON.stringify(t,null,2)}function qg(e){return e?e.replace(/\\n/g,`
|
|
3
|
-
`).replace(/\\t/g," ").replace(/\n{3,}/g,`
|
|
4
|
-
|
|
5
|
-
`).trim():""}function zg(e){const t=at(or(e)),n=at(t._metadata),r=at(n.visionFiltering);if(r.enabled!==!0)return null;const a=Number(r.removedUserImageParts||0),o=Number(r.removedToolImageAttachments||0),s=a+o;return s>0?{removedUserImageParts:a,removedToolImageAttachments:o,totalRemoved:s}:null}function Fl(e){return{baseten:"Baseten",cloudflare:"Cloudflare",cerebras:"Cerebras",google:"Google",groq:"Groq",openai:"OpenAI",openrouter:"OpenRouter",xai:"xAI"}[e]||e.charAt(0).toUpperCase()+e.slice(1)}const Fc=["baseten","cloudflare","cerebras","google","groq","openai","openrouter","xai"];function jc(e){return typeof e=="string"&&Fc.some(t=>t===e)}function Hi(e){const t=e?.toLowerCase();return jc(t)?t:"standard"}function jl(e){return e?`Provider tools · ${Fl(e)}`:"Provider tools"}function qc(e){return`${e?`The model provider, ${Fl(e)},`:"The model provider"} runs this tool. Its calls do not reach this instance.`}function na(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ui(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 Vg(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 kr(e,t,n,r=!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(([i,d])=>kr(i,na(d)?d:{},`${n}.properties.${i}`,s.has(i))))}if(t.items){const s=Array.isArray(t.items)?t.items:[t.items];a.push(...s.map((i,d)=>kr(s.length===1?"items":`item ${d+1}`,na(i)?i:{},`${n}.items.${d}`,!0)))}for(const[s,i]of[["oneOf",t.oneOf],["anyOf",t.anyOf],["allOf",t.allOf]])!Array.isArray(i)||i.length===0||a.push(...i.map((d,p)=>kr(`${s} ${p+1}`,na(d)?d:{},`${n}.${s}.${p}`,!0)));na(t.additionalProperties)&&a.push(kr("additional",t.additionalProperties,`${n}.additional`,!1));const o=[];if(typeof t.description=="string"&&t.description.trim()&&o.push(t.description.trim()),Array.isArray(t.enum)&&t.enum.length>0){const s=t.enum.slice(0,3).map(Ui).join(", "),i=t.enum.length>3?", …":"";o.push(s+i)}else"const"in t&&o.push(Ui(t.const));return{id:n,label:e,value:Vg(t),description:o.join(" • ")||null,required:r,children:a.length>0?a:void 0,defaultExpanded:n.split(".").length<=3}}function Hg(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(([r,a])=>kr(r,na(a)?a:{},`schema.${r}`,n.has(r)))}return[kr("value",e,"schema.value",!0)]}function Ug(e){return e===null?"default":e===0?"minimum":String(e)}function Kg(e){const t=e.reasoning?.maxTokens;return typeof t=="number"?t.toLocaleString():"—"}function Wg(e,t){const n=Bm(e.reasoning?.level),r=[{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:Yd,enabled:e.include_past_tools},{kind:"toggle",label:"Reasoning in history",enabled:e.include_reasoning}]},{key:"reasoning",label:"Reasoning",rows:[{kind:"value",label:"Level",value:Ug(n),active:n!==null},{kind:"value",label:"Max tokens",value:Kg(e),active:typeof e.reasoning?.maxTokens=="number"},{kind:"toggle",label:"Exclude from response",enabled:e.reasoning?.exclude===!0}]}];return t&&r.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}]}),r}function zc(e){return e.kind==="mcp"||e.kind==="unknown"?void 0:{kind:"tool",name:e.name}}function Gg(e){let t=0;function n(r){for(const a of r)t+=1,a.children?.length&&n(a.children)}return n(e),t}function Vc(e,t,n){return e.map(r=>({id:`${n}${r.id}`,kind:"schema",label:r.label,detail:r.value||void 0,required:r.required,canvasNodeId:t,virtual:!0,hideIcon:!0,defaultCollapsed:(r.children?.length??0)>0?!r.defaultExpanded:void 0,children:r.children?.length?Vc(r.children,t,`${n}${r.id}__`):void 0}))}function ql(e,t,n){const r=Hg(e);return{id:`${n}schema`,kind:"schema",label:"Input schema",detail:r.length>0?`${Gg(r)}`:"None",canvasNodeId:t,virtual:!0,defaultCollapsed:r.length>0,children:r.length>0?Vc(r,t,`${n}schema__`):void 0}}function Hc(e){const t=[];e.expose_as_tool&&t.push({label:"tool",mono:!0});const n=e.max_session_turns;typeof n=="number"&&t.push({label:`max ${n} session turn${n===1?"":"s"}`,mono:!0});const r=Object.keys(e.env||{}).filter(a=>a.trim().length>0);return r.length>0&&t.push({label:`${r.length} env override${r.length===1?"":"s"}`,mono:!0}),t}function Vo(e,t,n,r=[]){const a=new Set(r);return{id:`${n}variables`,kind:"variables",label:"Variables",detail:e.length>0?`${e.length}`:"None",canvasNodeId:t,virtual:!0,defaultCollapsed:e.length>0,children:e.length>0?e.map(o=>{const s=[];return o.required&&s.push({label:"required",required:!0,mono:!0}),o.scoped&&s.push({label:"scoped",mono:!0}),a.has(o.name)&&s.push({label:"env",mono:!0}),{id:`${n}variable-${o.name}`,kind:"variable",label:o.name,detail:o.type,badges:s.length>0?s:void 0,required:o.required,canvasNodeId:t,virtual:!0,hideIcon:!0}}):void 0}}function Uc(e,t,n,r){return e.length===0?null:{id:`${n}hooks`,kind:"hooks",label:"Hooks",detail:`${e.length}`,canvasNodeId:t,virtual:!0,children:e.map((a,o)=>({id:`${n}hook-${o}-${a.id}`,kind:"hook",label:a.hook,detail:a.id!==a.hook?a.id:void 0,canvasNodeId:r(o),cardBacked:!0,hideIcon:!0}))}}function yr(e){const t=[],n=e.relationship;return n&&(typeof n.blocking=="boolean"&&t.push({label:n.blocking?"blocking":"background",mono:!0}),n.optional&&t.push({label:"optional",mono:!0}),n.immediate&&t.push({label:"immediate",mono:!0}),t.push({label:n.maxInstances==null||n.maxInstances>1?"multi":"single",mono:!0}),n.hidden&&t.push({label:"hidden",mono:!0})),t}function Kc(e,t,n,r,a){const o=Wg(e,a).map(s=>({id:`${n}${s.key==="tool"?"tooling":s.key}`,kind:"section",label:s.label,canvasNodeId:t,virtual:!0,hideIcon:!0,metaRows:s.rows.map(Jg)}));return{id:`${n}config`,kind:"config",label:"Prompt config",canvasNodeId:t,virtual:!0,defaultCollapsed:!0,children:o}}function Jg(e){return e.kind==="toggle"?{label:e.label,value:e.enabled?"on":"off",active:e.enabled,mono:!0}:{label:e.label,value:e.value,active:e.active,mono:!0}}function Wc(e,t,n,r){if(!e.model&&!e.modelName)return null;const a=[];if((e.model?.providerTools||[]).length>0){const i=e.model.providerTools.slice(0,2).join(", "),d=e.model.providerTools.length>2?", …":"";a.push({label:"Provider tools",value:i+d,active:!0,mono:!0})}const o=e.modelActual||e.model?.model||void 0,s=o&&o!==(e.modelName||e.model?.name||"Model")?o:void 0;return{id:`${r}model`,kind:"model",label:e.modelName||e.model?.name||"Model",detail:s,metaRows:a.length>0?a:void 0,canvasNodeId:e.model?Vs(t,e.model.id):n,virtual:!e.model,cardBacked:!!e.model,reference:e.model?{kind:"model",name:e.model.name}:void 0}}function Xg(e,t,n){return{id:`${n}config`,kind:"config",label:"Side config",canvasNodeId:t,virtual:!0,defaultCollapsed:!0,collapsibleBody:!0,metaRows:[{label:"Stop on response",value:e.stopOnResponse?"On":"Off",active:e.stopOnResponse,mono:!0},{label:"Stop tool",value:e.stopTool||"Off",active:!!e.stopTool,mono:!0},{label:"Max steps",value:typeof e.maxSteps=="number"?String(e.maxSteps):"Unlimited",active:typeof e.maxSteps=="number",mono:!0},{label:"End conversation tool",value:e.sessionStopTool||"Off",active:!!e.sessionStopTool,mono:!0}]}}function Gc(e){return e.kind==="mcp"?"tool":e.kind}function Jc(e,t){const n=e.some(r=>r.kind==="provider");return[{key:"tool",label:"Functions"},...n?[{key:"provider",label:jl(t),hint:qc(t)}]:[],{key:"prompt",label:"Sub-prompts"},{key:"handoff",label:"Handoffs"}]}function Yg(e,t,n,r,a=null){const o={};for(const i of e)(o[Gc(i)]||=[]).push(i);const s=Jc(e,a).map(({key:i,label:d,hint:p})=>{const f=o[i]||[];return{id:`${n}group-${i}`,kind:"tools",toolKind:i,label:d,hint:p,detail:`${f.length}`,canvasNodeId:t,virtual:!0,children:f.length>0?f.map((m,g)=>({id:`${n}${i}-${g}-${m.name}`,kind:"tool",label:m.displayName||m.name,hint:p,detail:m.kind==="prompt"&&(m.resolvedModel?.name||m.model)||void 0,badges:yr(m),canvasNodeId:r(e.indexOf(m)),cardBacked:!0,toolKind:m.kind,hideIcon:!0,reference:zc(m)})):void 0}});return[{id:`${n}tools`,kind:"tools",label:"Tools",detail:`${e.length}`,canvasNodeId:t,virtual:!0,children:s}]}function Zg(e,t,n){const r=[],a=ql(e.schema,t,`${n}args__`);return a.label="Args",a.defaultCollapsed=(a.children?.length??0)>0?!0:void 0,(a.children?.length??0)>0&&r.push(a),e.variables.length>0&&r.push(Vo(e.variables,t,`${n}detail__`)),r}function Qg(e,t,n,r,a){const o=[],s=t.prompt.name,i=Wc({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},r,n,`${a}prompt__`);i&&o.push(i),o.push(Kc(t.prompt,n,`${a}prompt__`,s,e.config)),o.push(ql(t.prompt.required_schema,n,`${a}prompt__`)),o.push(Vo(Ic(t.prompt),n,`${a}prompt__`,Nl(t.prompt))),o.push(...Yg(t.nestedTools,n,`${a}prompt__`,p=>Nc(n,p),t.model?.provider??t.prompt.model_provider??null));const d=Uc(t.prompt.hooks.map(p=>({id:p,hook:p})),n,`${a}prompt__`,p=>Oc(n,p));return d&&o.push(d),o}function ev(e,t,n){return[{id:"a",backing:e.side_a_backing,label:ao("a",e.side_a_backing,e.side_a_label),promptName:e.side_a_agent_prompt,handlerName:e.side_a_handler||null,stopOnResponse:e.side_a_stop_on_response,stopTool:e.side_a_stop_tool,maxSteps:e.side_a_max_steps,sessionStopTool:e.side_a_session_stop_tool},{id:"b",backing:e.side_b_backing,label:ao("b",e.side_b_backing,e.side_b_label),promptName:e.side_b_agent_prompt,handlerName:e.side_b_handler||null,stopOnResponse:e.side_b_stop_on_response,stopTool:e.side_b_stop_tool,maxSteps:e.side_b_max_steps,sessionStopTool:e.side_b_session_stop_tool}].map(a=>({id:`${n}side-${a.id}`,kind:"side",label:a.label,detail:a.backing==="human"?"Human":a.backing==="handler"?a.handlerName||"Handler":a.promptName||"No prompt",canvasNodeId:t,virtual:!0,reference:a.backing==="prompt"&&a.promptName?{kind:"prompt",name:a.promptName}:void 0,metaRows:a.backing==="prompt"&&a.promptName?[{label:"Stop on response",value:a.stopOnResponse?"On":"Off",active:a.stopOnResponse,mono:!0},{label:"Stop tool",value:a.stopTool||"Off",active:!!a.stopTool,mono:!0},{label:"Max steps",value:typeof a.maxSteps=="number"?String(a.maxSteps):"Unlimited",active:typeof a.maxSteps=="number",mono:!0},{label:"End conversation tool",value:a.sessionStopTool||"Off",active:!!a.sessionStopTool,mono:!0}]:void 0}))}function tv(e,t,n,r,a,o,s,i){if(!e.prompt)return null;const d=e.prompt.name,p=`${s}prompt__`,f=Bl(r,e.id),m=[],g=Wc({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},a,f,p);g&&m.push(g),m.push(Kc(e.prompt,f,p)),m.push(ql(e.prompt.required_schema,f,p)),m.push(Vo(e.variables,f,p,e.variableEnvNames||[]));const v=e.tools.filter(L=>L.kind!=="subagent"),_={};for(const L of v)(_[Gc(L)]||=[]).push(L);const b=new Map;e.tools.forEach((L,k)=>b.set(L,k));const C=Jc(v,e.model?.provider||e.prompt.model_provider);m.push({id:`${p}tools`,kind:"tools",label:"Tools",detail:`${v.length}`,canvasNodeId:f,virtual:!0,children:C.map(({key:L,label:k,hint:S})=>{const T=_[L]||[];return{id:`${p}group-${L}`,kind:"tools",toolKind:L,label:k,hint:S,detail:`${T.length}`,canvasNodeId:f,virtual:!0,children:T.length>0?T.map(B=>({hint:S,...Xc(p,r,a,e,B,b.get(B),t,n,i)})):void 0}})});const y=Uc(e.hooks,f,p,L=>Pc(r,e.id,L));y&&m.push(y);const A=e.toolHistoryFinding;return{id:`${s}prompt`,kind:"prompt",label:e.prompt.name,canvasNodeId:f,cardBacked:!0,...A?{badges:[{label:Es,mono:!0,warning:!0}]}:{},reference:{kind:"prompt",name:d},children:m}}function Xc(e,t,n,r,a,o,s,i,d){const p=Ec(t,r.id,o),f=`${e}tool-${r.id}-${o}-${a.name}`,m=zc(a);if(a.kind==="subagent"){const g=Ol(t,r.id,o,a.kind,a.name),v=Ma(g),_=s[v],b=_?.status==="loaded"?_:null,C=_?.status==="cycle"?i.find(A=>A.agentName===_.agentName)?.canvasId:void 0,y=yr(a);return{id:f,kind:"subagent",label:b?.agent.title||a.displayName||a.name,detail:a.name,badges:y.length>0?y:void 0,canvasNodeId:C??v,toolKind:a.kind,avatarSrc:b?.agent.icon||void 0,avatarSeed:_?.agentName??a.relationship?.agent??a.name,cardBacked:!0,reference:{kind:"agent",name:b?.agent.id||_?.agentName||a.relationship?.agent||a.name},children:b?Yc(b.agent,b.sides,s,i,g,n,`${f}__`,d).children:void 0}}if(a.kind==="prompt"){const g=d.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:yr(a),canvasNodeId:p,toolKind:a.kind,cardBacked:!0,reference:m,children:g?Qg(a,g,p,n,`${f}__`):void 0,hideIcon:!0}}if(a.kind==="handoff"){const g=d.handoffs[a.name];return{id:f,kind:"tool",label:g?.title||a.displayName||a.name,detail:g?.name||void 0,badges:g?Hc(g):yr(a),canvasNodeId:p,toolKind:a.kind,defaultCollapsed:g?!0:void 0,cardBacked:!0,reference:m,children:g?ev(g,p,`${f}__`):void 0,hideIcon:!0}}if(a.kind==="tool"||a.kind==="provider"||a.kind==="mcp"){const g=d.functionTools[a.name];return{id:f,kind:"tool",label:a.displayName||a.name,badges:yr(a),canvasNodeId:p,toolKind:a.kind,defaultCollapsed:g?!0:void 0,cardBacked:!0,reference:m,children:g?Zg(g,p,`${f}__`):void 0,hideIcon:!0}}return{id:f,kind:"tool",label:a.displayName||a.name,badges:yr(a),canvasNodeId:p,toolKind:a.kind,hideIcon:!0,reference:m}}function Ki(e,t,n,r,a,o,s,i){const d=e.tools.map((p,f)=>({tool:p,index:f})).filter(({tool:p})=>p.kind==="subagent");return d.length===0?null:{id:`${s}subagents`,kind:"tools",toolKind:"subagent",label:"Sub-agents",detail:`${d.length}`,canvasNodeId:o,virtual:!0,children:d.map(({tool:p,index:f})=>Xc(s,r,a,e,p,f,t,n,i))}}function nv(e,t,n,r,a,o,s){const i=Dl(r,e.id),d=`${o}side-${e.id}__`,p=[];if(e.mode==="human")return{id:`${o}side-${e.id}`,kind:"side",label:e.label,detail:"Human",canvasNodeId:i,cardBacked:!0,children:[]};if(e.mode==="handler"){const g=Ki(e,t,n,r,a,i,d,s);return{id:`${o}side-${e.id}`,kind:"side",label:e.label,detail:e.handlerName||"Handler",canvasNodeId:i,cardBacked:!0,children:g?[g]:[]}}p.push(Xg(e,i,d));const f=tv(e,t,n,r,a,i,d,s);f&&p.push(f);const m=Ki(e,t,n,r,a,i,d,s);return m&&p.push(m),{id:`${o}side-${e.id}`,kind:"side",label:e.label,canvasNodeId:i,children:p}}function Yc(e,t,n,r,a,o,s,i,d=!1){const p=Ma(a),f=[Vo(e._variables||[],p,`${s}agent__`,Object.keys(e.env||{})),...t.map(m=>nv(m,n,[...r,{agentName:e.name,canvasId:p}],a,o,s,i))];return{id:`${s}agent`,kind:"agent",label:e.title||e.name,detail:e.name,badges:Hc(e),canvasNodeId:p,avatarSrc:e.icon||void 0,avatarSeed:e.name,isRoot:d||void 0,cardBacked:!0,children:f}}function rv(e,t,n,r){const a=Ta(e.id||e.name),o=`${e.id||e.name}__`;return Yc(e,t,n,[],a,a,o,r,!0)}function av(e,t,n,r,a,o){const s=x(()=>[t.value,...Object.values(n.value).flatMap(d=>d.status==="loaded"?[d.sides]:[])]),i=Mc(e,s,r,a,o);return x(()=>{const d=e.value;return d?rv(d,t.value,n.value,i.value):null})}async function ov(e,t){const n=await mn(`/agents/${encodeURIComponent(e)}`),[r,a]=await Promise.all([Fn(n.agent.side_a_agent_prompt),Fn(n.agent.side_b_agent_prompt)]);return{agent:n.agent,sides:[Or(n.agent,"a",r,t),Or(n.agent,"b",a,t)]}}async function Zc(e,t,n,r){const a={},o=new Map;function s(d){let p=o.get(d);return p||(p=r.loadComposition(d),o.set(d,p)),p}async function i(d,p,f){const m=[];for(const g of p)g.tools.forEach((v,_)=>{if(v.kind!=="subagent")return;const b=Ol(d,g.id,_,v.kind,v.name),C=Ma(b),y=v.relationship?.agent??v.name;if(f.includes(y)){a[C]={status:"cycle",agentName:y};return}const A=r.catalog.find(L=>L.name===y);if(!A){a[C]={status:"missing",agentName:y};return}if(A.packed){a[C]={status:"packed",agentName:y};return}m.push(s(y).then(async L=>{a[C]={status:"loaded",agentName:y,...L},await i(b,L.sides,[...f,y])},L=>{a[C]={status:"failed",agentName:y,message:L instanceof Error?L.message:"Unable to load this agent."}}))});await Promise.all(m)}return await i(e,n,[t]),a}function sv(e){const t=R({});let n=0;const r=x(()=>({models:e.models.value,toolsCatalog:e.toolsCatalog.value,hooks:e.hooks.value}));return ve([e.agent,e.sides,e.agents,r,e.refreshEpoch],async()=>{const a=++n,o=e.agent.value;if(!o){t.value={};return}const s=Ta(o.id||o.name),i=await Zc(s,o.name,e.sides.value,{catalog:e.agents.value,loadComposition:d=>ov(d,r.value)});a===n&&(t.value=i)},{immediate:!0}),t}function Qc(){const e=wa();return{agents:e.items,error:e.error,isFetching:e.initialLoading,isFinished:e.loaded,refetch:e.refresh}}const lv=["child_count","failed_descendant_count","cost_total","input_tokens","output_tokens","last_model","run_seconds","started_by","awaiting_human_at"];function ef(e){const t={};for(const n of lv)e[n]!==void 0&&Object.assign(t,{[n]:e[n]});return t}function Wi(e,t){const n=t.find(a=>a.name===e.agent_name),r=e.agent;return{id:e.id,agent_id:e.agent_name,origin_agent_id:e.origin_agent_name??e.agent_name,user_id:e.user_id,tags:e.tags||[],parent:e.parent??null,terminated:e.terminated??null,created_at:e.created_at,last_activity_at:e.last_activity_at??e.created_at,executing:e.executing===!0,...e.status?{status:e.status,status_reason:e.status_reason??null}:{},last_message_preview:e.last_message_preview??null,last_message_at:e.last_message_at??null,...ef(e),agent:{name:e.agent_name,title:r?.title||n?.title,side_a_backing:r?.side_a_backing??n?.side_a_backing??null,side_b_backing:r?.side_b_backing??n?.side_b_backing??null}}}function iv(e,t){return{...e,...t.last_activity_at!==void 0?{last_activity_at:t.last_activity_at}:{},...t.executing!==void 0?{executing:t.executing}:{},...t.status!==void 0?{status:t.status,status_reason:t.status==="failed"?t.status_reason??null:null}:{},...t.last_message_preview!==void 0?{last_message_preview:t.last_message_preview}:{},...t.last_message_at!==void 0?{last_message_at:t.last_message_at}:{},...ef(t)}}function uv(e,t){if(!t)return e;const n=(t.last_message_at??0)>(e.last_message_at??0),r=(t.last_activity_at??0)>(e.last_activity_at??0);return!n&&!r?e:{...e,...n?{last_message_at:t.last_message_at,last_message_preview:t.last_message_preview}:{},...r?{last_activity_at:t.last_activity_at,executing:t.executing,status:t.status,status_reason:t.status_reason}:{}}}const dv=100,cv=250;function fv(e,t={}){const n=R(""),r=Xh(n,cv),a=x(()=>r.value.trim()||null),o=x(()=>e.value.agent),s=x(()=>e.value.status),i=x(()=>e.value.owner),d=x(()=>T0(e.value.days,Math.floor(Date.now()/1e3),new Date().getTimezoneOffset())),p=x($=>{const D=M0(e.value);return $&&JSON.stringify($)===JSON.stringify(D)?$:D}),f=R(0),m=R([]),g=R([]),v=R(new Set);let _=null;const{agents:b}=Qc(),{threads:C,hasMore:y,isFetching:A,isFinished:L,error:k,refetch:S}=A0({limit:dv,offset:f,agentId:o,userId:i,status:s,startDate:d,search:a,sort:"activity",extraParams:p});ve([o,i,s,d,a,p],()=>{f.value=0,m.value=[],g.value=[],_=null,v.value=new Set}),ve(C,$=>{if(f.value===0){const W=new Map([...m.value,...g.value].map(E=>[E.id,E]));if(_){const E=_;_=null,g.value=g.value.filter(X=>!E.has(X.id))}m.value=$.map(E=>uv(E,W.get(E.id)));return}const D=new Set(m.value.map(W=>W.id));m.value=[...m.value,...$.filter(W=>!D.has(W.id))]});const T=x(()=>{const $=m.value.filter(E=>!v.value.has(E.id)),D=new Set($.map(E=>E.id));return[...g.value.filter(E=>!D.has(E.id)&&!v.value.has(E.id)),...$]});function B(){A.value||!y.value||(f.value=m.value.length)}function q(){f.value===0?S():f.value=0}function H($){return!a.value&&E0($,e.value,d.value)?!0:!!$.parent&&T.value.some(D=>D.id===$.parent)}function N($,D){const W=E=>{const X=E.findIndex(re=>re.id===$);X!==-1&&(E[X]=D(E[X]))};W(m.value),W(g.value)}function P($){if($.type==="thread_created"){const D=Wi($.thread,b.value);H(D)&&(g.value=[D,...g.value])}else if($.type==="thread_updated"){const D=Wi($.thread,b.value);T.value.some(E=>E.id===D.id)?N(D.id,()=>D):H(D)&&(g.value=[D,...g.value])}else $.type==="thread_activity"?N($.threadId,D=>iv(D,$)):$.type==="thread_deleted"&&(v.value=new Set([...v.value,$.threadId]))}const{wsConnected:U,connect:V}=L0({autoConnect:!1,onEvent:$=>{P($),t.onEvent?.($)},onReconnect:()=>{_=new Set(g.value.map($=>$.id)),q(),t.onReconnect?.()}});let Y=!1;return Hr(()=>{Y=!0}),R0().then($=>{Y||V($)}),{threads:T,query:n,hasMore:y,isLoading:x(()=>A.value&&m.value.length===0),isLoadingMore:x(()=>A.value&&m.value.length>0),isFinished:L,error:k,wsConnected:U,loadMore:B,reload:q}}function pv(e,t){const n=R(B0),r=R("lastActive"),a=R("desc");function o(f){r.value===f?a.value=a.value==="asc"?"desc":"asc":(r.value=f,a.value=f==="title"?"asc":"desc")}const s=x(()=>P0(e.value)),i=x(()=>e.value.filter(f=>N0(f,n.value,s.value))),d=x(()=>O0(e.value,s.value)),p=x(()=>[...i.value].sort((f,m)=>D0(f,m,r.value,a.value,t.value)));return{typeFilter:n,sortBy:r,sortDir:a,handleSort:o,sortedAgents:p,filterTabs:d}}const hv=380,tf=1e5;function Gi(e){return e==="files"||e==="kv"||e==="effects"||e==="info"||e==="logs"?e:"logs"}function Ji(e){return typeof e=="string"&&e?e:"/"}function Xi(e){return Number.isFinite(e)?Math.max(hv,e):tf}function mv(){const e=rr(),t=_a(),n=Xn("agents.inspectorDrawer.open",!1),r=Xn("agents.inspectorDrawer.preferredWidth",tf);r.value=Xi(r.value);const a=R(Gi(e.query.inspector)),o=R(Ji(e.query.filePath));ve(()=>e.query.inspector,v=>{a.value=Gi(v)}),ve(()=>e.query.filePath,v=>{o.value=Ji(v)});function s(v){t.replace({path:e.path,query:{...e.query,...v},hash:e.hash})}function i(v){a.value=v,s({inspector:v})}function d(v){o.value=v,s({filePath:v})}function p(v){v&&v!==a.value&&i(v),n.value=!0}function f(){n.value=!1}function m(){n.value=!n.value}function g(v){r.value=Xi(v)}return{isOpen:n,width:x(()=>r.value),tab:a,filePath:o,open:p,close:f,toggle:m,setTab:i,setFilePath:d,setWidth:g}}function gv(e){const t=R(!1),n=R(!1),r=R(!1),a=R(null),o=R(null),s=R(null);function i(v){e.available.value&&(a.value=v,t.value=!0)}function d(v){e.available.value&&(o.value=v,n.value=!0)}function p(v){e.available.value&&(s.value=v,r.value=!0)}function f(){t.value=!1,a.value=null,e.reloadAgents()}function m(){n.value=!1,o.value=null,e.reloadAgents()}function g(){r.value=!1,s.value=null}return{showPackModal:t,showUnpackModal:n,showPublishModal:r,packingAgent:a,unpackingAgent:o,publishingAgent:s,packAgent:i,unpackAgent:d,publishAgent:p,finishPack:f,finishUnpack:m,finishPublish:g}}const vv=2048;function yv(e){if(/[\s\\]/.test(e))return!0;for(let t=0;t<e.length;t+=1){const n=e.charCodeAt(t);if(n<32||n===127)return!0}return!1}function bv(e,t){if(typeof e!="string")return null;const n=e.trim();if(!n||n.length>vv||yv(n))return null;if(n.startsWith("/"))return t.allowRelative&&!n.startsWith("//")&&!n.includes("#")?n:null;try{const r=new URL(n);return r.protocol!=="https:"||r.username||r.password||r.hash?null:r.toString()}catch{return null}}const nf={development:"Development",production:"Production",hosted:"Hosted"};function Yi(e){if(typeof e!="string"||!e)return null;const t=Date.parse(e);return Number.isFinite(t)?Math.floor(t/1e3):null}function Fa(e,t){const n=e[t];return typeof n=="string"&&n.trim()?n.trim():null}function zl(e){return bv(e,{allowRelative:!0})}function xv(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e,n=Fa(t,"name");if(!n)return null;const r=Fa(t,"environment"),a=Yi(t.deployed_at),o=Yi(t.built_at),s=Fa(t,"git_ref"),i=Fa(t,"git_sha");return{name:n,logoUrl:zl(t.logo_url),environment:r?nf[r]??null:null,deployedAt:a??o,builtOnly:a===null&&o!==null,source:s&&i?`${s} @ ${i}`:s??i}}function Zi(e){return{name:e.configuredName?.trim()||e.hostname,logoUrl:zl(e.configuredLogoUrl),environment:e.hosted?"Hosted":null,deployedAt:null,builtOnly:!1,source:null}}function kv(e){return e.environment===nf.development}function wv(e){if(!e||typeof e!="object"||!("deviceApproval"in e))return null;const t=e.deviceApproval;return!t||typeof t!="object"||!("name"in t)?null:typeof t.name=="string"&&t.name.trim()?t.name.trim():null}function _v(e){return!e||typeof e!="object"||!("logoUrl"in e)?null:zl(e.logoUrl)}function $v(){const e=R(Zi({configuredName:null,hostname:window.location.hostname,hosted:!1}));return an(async()=>{const t=xv(await Be.getJson("/api/workspace").catch(()=>null));if(t){e.value=t;return}const[n,r]=await Promise.all([Be.getJson("/api/config").catch(()=>null),F0()]);e.value=Zi({configuredName:wv(n),configuredLogoUrl:_v(n),hostname:window.location.hostname,hosted:r.hosted})}),e}function Iv(e){Yn(window,"keydown",t=>{if(!(t.metaKey||t.ctrlKey)||t.altKey||t.shiftKey)return;const n=t.key.toLowerCase(),a={j:e.inspector,b:e.sessions,i:e.info}[n];a&&(t.preventDefault(),a())})}const Sv={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Cv(e,t){return l(),c("svg",Sv,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M21 8a2 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.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"}),u("path",{d:"m3.3 7l8.7 5l8.7-5M12 22V12"})],-1)])])}const ra=Ye({name:"lucide-box",render:Cv}),rf=we({__name:"ReadoutChip",props:{x:{},y:{},boundsWidth:{},boundsLeft:{default:0},fixed:{type:Boolean,default:!1}},setup(e){const t=e,n=x(()=>{const r=(t.x-t.boundsLeft)/Math.max(1,t.boundsWidth);return r>.7?"-translate-x-full":r<.3?"":"-translate-x-1/2"});return(r,a)=>(l(),K($a,{to:"body",disabled:!e.fixed},[u("div",{role:"status",class:J(["pointer-events-none z-50 -translate-y-full whitespace-nowrap ui-border rounded-md border bg-white px-2 py-1 text-[11px] leading-[1.45] text-neutral-700 shadow-[0_2px_8px_rgba(0,0,0,.08)] dark:bg-neutral-900 dark:text-neutral-200",[e.fixed?"fixed":"absolute",n.value]]),style:nt({left:`${e.x}px`,top:`${e.y-8}px`})},[gt(r.$slots,"default")],6)],8,["disabled"]))}}),Tv={class:"font-medium text-neutral-900 dark:text-neutral-100"},Mv={class:"mt-0.5 grid grid-cols-[auto_auto] gap-x-4 tabular-nums"},Av={class:"text-right"},Lv={class:"text-right"},Rv={class:"text-right"},Ev={class:"text-right"},af=we({__name:"DayReadout",props:{start:{},started:{},failed:{},cost:{},costWithSubagents:{},recorded:{type:Boolean},averageRun:{}},setup(e){const t=new Intl.DateTimeFormat(void 0,{weekday:"long",month:"short",day:"numeric"});return(n,r)=>(l(),c(te,null,[u("div",Tv,w(h(t).format(new Date(e.start*1e3))),1),u("dl",Mv,[r[2]||(r[2]=u("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Threads",-1)),u("dd",Av,w(e.started),1),r[3]||(r[3]=u("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Failed",-1)),u("dd",{class:J(["text-right",e.failed>0?"text-red-600 dark:text-red-400":""])},w(e.failed),3),r[4]||(r[4]=u("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Cost",-1)),u("dd",Lv,w(e.recorded?h(_t)(e.cost):"Not recorded"),1),e.recorded&&e.costWithSubagents!==void 0&&e.costWithSubagents-e.cost>=5e-4?(l(),c(te,{key:0},[r[0]||(r[0]=u("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Incl. subagents",-1)),u("dd",Rv,w(h(_t)(e.costWithSubagents)),1)],64)):M("",!0),e.averageRun!==void 0?(l(),c(te,{key:1},[r[1]||(r[1]=u("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Average run",-1)),u("dd",Ev,w(e.averageRun===null?"No runs":h(pa)(e.averageRun)),1)],64)):M("",!0)])],64))}}),Pv=10,Nv=2,Ov=.35;function of(e){const t=e.filter(r=>Number.isFinite(r)).sort((r,a)=>r-a);if(!t.length)return 0;const n=Math.floor(t.length/2);return t.length%2?t[n]:(t[n-1]+t[n])/2}function Dv(e){if(!(e>0))return 0;const n=10**Math.floor(Math.log10(e)),r=e/n,a=r>=5?5:r>=2?2:1;return ga(a*n)}function Bv(e){if(!(e>0))return 0;const n=10**Math.floor(Math.log10(e)),r=e/n,a=r<=1?1:r<=2?2:r<=5?5:10;return ga(a*n)}function Fv(e){const t=e.filter(a=>Number.isFinite(a)&&a>0),n=of(t),r=Math.max(0,...t);return t.length>=3&&n>0&&r>Pv*n?"logarithmic":"linear"}function jv(e,t="auto",n={}){const r=e.filter(i=>Number.isFinite(i)&&i>=0),a=Math.max(0,...r);if((t==="auto"?Fv(r):t)==="linear")return sf(a,n);const s=of(r.filter(i=>i>0))*Nv;return zv(a,qv(a,s))}function qv(e,t,n=Ov){if(!(e>0)||!(t>0)||t/e>=n)return t;let r=e*1e-7,a=e;for(let o=0;o<48;o+=1){const s=Math.sqrt(r*a);Math.log10(1+t/s)/Math.log10(1+e/s)>n?r=s:a=s}return Math.sqrt(r*a)}function sf(e,t={}){const n=e>0?e*1.05:1,r=Dv(n/5)||n/5,a=t.integer?Math.max(1,Math.round(r)):r,o=ga(Math.ceil(n/a-1e-9)*a)||1,s=[];for(let i=0;i<o-a/2;i+=a)s.push(ga(i));return s.push(o),{kind:"linear",max:o,knee:0,ticks:s,position:i=>ma(i/o),invert:i=>ma(i)*o}}function zv(e,t){const n=Bv(e*1.05),r=t>0?t:n/100,a=Math.log10(1+n/r),o=p=>ma(Math.log10(1+Math.max(0,p)/r)/a),s=p=>r*(10**(ma(p)*a)-1),i=[0];let d=10**Math.floor(Math.log10(r));for(;d<n;){for(const p of[1,2,5]){const f=ga(p*d);f>=r/2&&f<n&&o(f)-o(i[i.length-1])>=.07&&i.push(f)}d*=10}return o(n)-o(i[i.length-1])<.05&&i.pop(),i.push(n),{kind:"symlog",max:n,knee:r,ticks:i,position:o,invert:s}}function Vv(e,t,n){const r=ma(n),a=i=>e.position(i)+(t.position(i)-e.position(i))*r,o=Math.max(e.max,t.max),s=i=>{let d=0,p=o;for(let f=0;f<32;f+=1){const m=(d+p)/2;a(m)<i?d=m:p=m}return(d+p)/2};return{kind:t.kind,max:e.max+(t.max-e.max)*r,knee:e.knee+(t.knee-e.knee)*r,ticks:t.ticks,position:a,invert:s}}function Hv(e,t){return e.kind===t.kind&&e.max===t.max&&e.knee===t.knee&&e.ticks.length===t.ticks.length&&e.ticks.every((n,r)=>n===t.ticks[r])}function ma(e){return Math.min(1,Math.max(0,Number.isFinite(e)?e:0))}function ga(e){return Number(e.toPrecision(12))}const lf=new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1});function Uv(e){return e>0?e>=1e3?`$${lf.format(e)}`:e<.01?`$${Number(e.toPrecision(1))}`:Number.isInteger(e)?`$${e}`:e<10?`$${e.toFixed(2)}`:`$${Math.round(e)}`:"$0"}function Kv(e){return e>0?e>=1e3?lf.format(e):String(Math.round(e*100)/100):"0"}function Wv(e){return e>0?e<60?`${Math.round(e)}s`:e<3600?`${Math.round(e/60*10)/10}m`:`${Math.round(e/3600*10)/10}h`:"0"}function Gv(e,t,n={}){const r=e>0?t/e:0,a=Math.min(n.maxBar??1/0,r*(n.fill??.6));return Array.from({length:e},(o,s)=>({start:s*r,center:s*r+r/2,width:r,barWidth:a}))}function Jv(e,t){return e.map((n,r)=>({x:t.x(r),y:t.y(n)}))}function st(e){return Math.round(e*100)/100}function uf(e){return e.map((t,n)=>`${n?"L":"M"}${st(t.x)},${st(t.y)}`).join("")}function Xv(e,t){if(!e.length)return"";const n=e[0],r=e[e.length-1];return`${uf(e)}L${st(r.x)},${st(t)}L${st(n.x)},${st(t)}Z`}function ls(e,t,n,r,a=4){const o=Math.max(0,r-n),s=Math.min(a,t/2,o),i=st(e-t/2),d=st(e+t/2);return`M${i},${st(r)}V${st(n+s)}Q${i},${st(n)} ${st(e-t/2+s)},${st(n)}H${st(e+t/2-s)}Q${d},${st(n)} ${d},${st(n+s)}V${st(r)}Z`}function Yv(e,t){const{width:n,height:r,max:a,inset:o}=t,s=Math.max(0,n-o*2),i=r-o,d=Jv(e,{x:p=>e.length>1?o+p*s/(e.length-1):n/2,y:p=>a>0?i-Math.min(p,a)/a*(r-o*2):i});return{points:d,line:uf(d),area:Xv(d,i)}}function Zv(e,t){let n=null;for(let r=0;r<e.length;r+=1)(n===null||Math.abs(e[r].x-t)<Math.abs(e[n].x-t))&&(n=r);return n}function Qv(e){const t=e.length,n=e.slice(1).map((o,s)=>{const i=o.x-e[s].x;return i===0?0:(o.y-e[s].y)/i}),r=new Array(t).fill(0);for(let o=1;o<t-1;o+=1){const s=n[o-1],i=n[o];if(s===0||i===0||Math.sign(s)!==Math.sign(i))continue;const d=e[o].x-e[o-1].x,p=e[o+1].x-e[o].x,f=(s*p+i*d)/(d+p);r[o]=Math.sign(s)*Math.min(Math.abs(s),Math.abs(i),.5*Math.abs(f))}const a=(o,s)=>{const i=(3*o-s)/2;return Math.sign(i)!==Math.sign(o)?0:Math.abs(i)>3*Math.abs(o)?3*o:i};return t>1&&(r[0]=t>2?a(n[0],r[1]):n[0],r[t-1]=t>2?a(n[t-2],r[t-2]):n[0]),r}function df(e){if(!e.length)return"";const t=Qv(e);let n=`M${st(e[0].x)},${st(e[0].y)}`;for(let r=1;r<e.length;r+=1){const a=e[r-1],o=e[r],s=(o.x-a.x)/3;n+=`C${st(a.x+s)},${st(a.y+s*t[r-1])} ${st(o.x-s)},${st(o.y-s*t[r])} ${st(o.x)},${st(o.y)}`}return n}function ey(e,t){if(!e.length)return"";const n=e[0],r=e[e.length-1];return`${df(e)}L${st(r.x)},${st(t)}L${st(n.x)},${st(t)}Z`}function ty(e,t,n){return e<=0||t<=0?1:Math.max(1,Math.ceil(e*n/t))}function ny(e){return e<=0?0:Math.min(4.5,1.75+.6*Math.sqrt(e-1))}const ry=320;function Qi(e){const t=Dt(e.value),n=R(!1);let r=0;const a=()=>{r&&cancelAnimationFrame(r),r=0};return ve(e,o=>{a();const s=t.value,i=globalThis.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1;if(Hv(s,o)||i||typeof requestAnimationFrame>"u"){t.value=o,n.value=!1;return}const d=performance.now();n.value=!0;const p=f=>{const m=Math.min(1,(f-d)/ry),g=1-(1-m)**3;t.value=m<1?Vv(s,o,g):o,m<1?r=requestAnimationFrame(p):(r=0,n.value=!1)};r=requestAnimationFrame(p)}),Ft(a),{axis:t,animating:n}}const ay={class:"overview-chart-surface flex min-w-0 flex-col gap-3 rounded-xl px-5 pb-3 pt-4"},oy={class:"flex flex-wrap items-baseline justify-between gap-x-6 gap-y-1"},sy={class:"flex min-w-0 flex-wrap items-baseline gap-x-2"},ly={class:"text-sm font-semibold text-neutral-900 dark:text-neutral-100"},iy={class:"text-sm tabular-nums text-neutral-500 dark:text-neutral-400"},uy={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},dy={class:"flex items-center gap-4 text-xs text-neutral-500 dark:text-neutral-400"},cy={class:"inline-flex items-center gap-1.5"},fy=["width","height"],py={key:0,class:"fill-neutral-900/[0.05] dark:fill-white/[0.05]"},hy=["d"],my=["x2"],gy={key:1,class:"text-[10px] tabular-nums"},vy=["x2","y1","y2","stroke-dasharray"],yy=["x","y"],by=["x","y"],xy=["x1","x2"],ky=["d"],wy=["d"],_y=["d","fill"],$y=["d"],Iy=["cx","cy"],Sy=["x","y"],Cy=["x","width","onMouseenter"],Ty={class:"overview-chart-surface rounded-xl px-5 py-3 text-center text-[13px] text-neutral-500 shadow-sm ring-1 ring-black/[0.05] dark:text-neutral-400 dark:ring-white/[0.08]"},My={class:"font-medium text-neutral-800 dark:text-neutral-100"},Ay={class:"sr-only"},Ly={scope:"row"},Rn=200,Yr=8,is=22,Zt=36,Ry=52,Ey=2,Py=we({__name:"ThreadsCostChart",props:{days:{},usageSince:{},focus:{default:null}},setup(e){const t=e,n=R(null),{width:r}=Ur(n),a=`threads-cost-${Fo()}`,o=new Intl.DateTimeFormat(void 0,{weekday:"short"}),s=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric"}),i=ne=>(t.days.length<=7?o:s).format(new Date(ne*1e3)),d=x(()=>Math.max(0,r.value-Zt-Ry)),p=Yr+Rn,f=x(()=>t.focus==="runTime"),m=ne=>ne.runs>0?ne.runSeconds/ne.runs:0,g=ne=>f.value?m(ne):ne.cost,v=ne=>f.value?Wv(ne):Uv(ne),_=x(()=>sf(Math.max(0,...t.days.map(ne=>ne.started)),{integer:!0})),b=x(()=>jv(t.days.map(g))),{axis:C}=Qi(_),{axis:y}=Qi(b),A=x(()=>({ok:t.focus==="failed"||t.focus==="cost"||t.focus==="runTime",failed:t.focus==="cost"||t.focus==="runTime",line:t.focus==="threads"||t.focus==="failed"})),L=ne=>p-C.value.position(ne)*Rn,k=ne=>p-y.value.position(ne)*Rn,S=x(()=>Gv(t.days.length,d.value,{maxBar:28})),T=x(()=>t.days.map((ne,de)=>{const ue=S.value[de],ae=Zt+ue.center,xe=Math.max(0,ne.started-ne.failed),Re=L(xe),Me=L(ne.started);return{center:ae,ok:xe>0?ls(ae,ue.barWidth,Re,p,ne.failed>0?0:4):null,failed:ne.failed>0?ls(ae,ue.barWidth,Me,xe>0?Re-Ey:p):null,top:ne.started>0?Me:p}})),B=x(()=>t.days.map((ne,de)=>({x:T.value[de].center,y:k(g(ne))}))),q=x(()=>t.days.some(ne=>g(ne)>0)),H=x(()=>ty(t.days.length,d.value,56)),N=ne=>(t.days.length-1-ne)%H.value===0,P=x(()=>{const ne=t.days.reduce((ue,ae)=>ue+ae.runs,0),de=t.days.reduce((ue,ae)=>ue+ae.runSeconds,0);return{threads:t.days.reduce((ue,ae)=>ue+ae.started,0),cost:t.days.reduce((ue,ae)=>ue+ae.cost,0),averageRun:ne>0?de/ne:null}}),U=x(()=>f.value?"Average run time":"Cost"),V=x(()=>f.value?P.value.averageRun===null?"no runs":`${pa(P.value.averageRun)} average run`:_t(P.value.cost)),Y=x(()=>t.usageSince!==null&&t.days.some(ne=>!ne.recorded)?s.format(new Date(t.usageSince*1e3)):null),$=x(()=>P.value.threads===0&&P.value.cost===0),D=[.32,.5,.42,.66,.58,.8,.46,.7,.9,.62,.74,.52],W=x(()=>$.value?S.value.map((ne,de)=>ls(Zt+ne.center,ne.barWidth,p-D[de%D.length]*Rn,p,4)):[]),E=R(null),X=x(()=>E.value===null?null:t.days[E.value]),re=x(()=>E.value===null?0:Math.min(T.value[E.value].top,k(g(t.days[E.value]))));return(ne,de)=>(l(),c("figure",ay,[u("figcaption",oy,[u("div",sy,[u("span",ly,"Threads and "+w(U.value.toLowerCase())+", last "+w(e.days.length)+" days",1),u("span",iy,w(P.value.threads)+" threads · "+w(V.value),1),Y.value&&!f.value?(l(),c("span",uy,"Cost recorded since "+w(Y.value),1)):M("",!0)]),u("span",dy,[de[2]||(de[2]=u("span",{class:"inline-flex items-center gap-1.5"},[u("span",{class:"h-2 w-2 rounded-sm bg-neutral-300 dark:bg-neutral-600"}),Ce("Threads")],-1)),de[3]||(de[3]=u("span",{class:"inline-flex items-center gap-1.5"},[u("span",{class:"h-2 w-2 rounded-sm bg-red-500 dark:bg-red-400"}),Ce("Failed")],-1)),u("span",cy,[de[1]||(de[1]=u("span",{class:"h-0.5 w-3 rounded-full bg-accent-500 dark:bg-accent-400"},null,-1)),Ce(w(U.value),1)])])]),u("div",{ref_key:"root",ref:n,class:"relative w-full",style:nt({height:`${Yr+Rn+is}px`}),onMouseleave:de[0]||(de[0]=ue=>E.value=null)},[h(r)>0?(l(),c("svg",{key:0,class:"block overflow-visible text-accent-500 dark:text-accent-400",width:h(r),height:Yr+Rn+is,"aria-hidden":"true"},[u("defs",null,[u("linearGradient",{id:a,x1:"0",y1:"0",x2:"0",y2:"1"},[...de[4]||(de[4]=[u("stop",{offset:"0","stop-color":"currentColor","stop-opacity":"0.18"},null,-1),u("stop",{offset:"1","stop-color":"currentColor","stop-opacity":"0"},null,-1)])])]),$.value?(l(),c("g",py,[(l(!0),c(te,null,Ie(W.value,(ue,ae)=>(l(),c("path",{key:`g${ae}`,d:ue},null,8,hy))),128)),u("line",{x1:Zt,x2:Zt+d.value,y1:p,y2:p,stroke:"var(--color-border)"},null,8,my)])):M("",!0),$.value?M("",!0):(l(),c("g",gy,[(l(!0),c(te,null,Ie(h(C).ticks,ue=>(l(),c(te,{key:`t${ue}`},[u("line",{x1:Zt,x2:Zt+d.value,y1:L(ue),y2:L(ue),stroke:"var(--color-border)","stroke-dasharray":ue===0?void 0:"3 5"},null,8,vy),u("text",{x:Zt-8,y:L(ue)+3,"text-anchor":"end",class:"fill-neutral-500 dark:fill-neutral-400"},w(h(Kv)(ue)),9,yy)],64))),128)),(l(!0),c(te,null,Ie(q.value?h(y).ticks:[],ue=>(l(),c("text",{key:`c${ue}`,x:Zt+d.value+8,y:k(ue)+3,class:"fill-accent-600 dark:fill-accent-400"},w(v(ue)),9,by))),128))])),E.value!==null?(l(),c("line",{key:2,x1:T.value[E.value].center,x2:T.value[E.value].center,y1:Yr,y2:p,stroke:"var(--color-border)"},null,8,xy)):M("",!0),(l(!0),c(te,null,Ie(T.value,(ue,ae)=>(l(),c("g",{key:ae,class:J(E.value===null||E.value===ae?"":"opacity-60")},[ue.ok?(l(),c("path",{key:0,d:ue.ok,class:J(["fill-neutral-300 transition-opacity dark:fill-neutral-600",A.value.ok?"opacity-40":""])},null,10,ky)):M("",!0),ue.failed?(l(),c("path",{key:1,d:ue.failed,class:J(["fill-red-500 transition-opacity dark:fill-red-400",A.value.failed?"opacity-40":""])},null,10,wy)):M("",!0)],2))),128)),B.value.length&&!$.value?(l(),c("g",{key:3,class:J(["transition-opacity",A.value.line?"opacity-30":""])},[u("path",{d:h(ey)(B.value,p),fill:`url(#${a})`},null,8,_y),u("path",{d:h(df)(B.value),fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linejoin":"round","stroke-linecap":"round"},null,8,$y),E.value!==null?(l(),c("circle",{key:0,cx:B.value[E.value].x,cy:B.value[E.value].y,r:"4",class:"fill-white dark:fill-neutral-950",stroke:"currentColor","stroke-width":"2"},null,8,Iy)):M("",!0)],2)):M("",!0),(l(!0),c(te,null,Ie(T.value,(ue,ae)=>(l(),c(te,{key:`d${ae}`},[N(ae)?(l(),c("text",{key:0,x:ue.center,y:p+15,"text-anchor":"middle",class:"fill-neutral-500 text-[11px] tabular-nums dark:fill-neutral-400"},w(i(e.days[ae].start)),9,Sy)):M("",!0)],64))),128)),(l(!0),c(te,null,Ie(S.value,(ue,ae)=>(l(),c("rect",{key:`h${ae}`,x:Zt+ue.start,y:Yr,width:ue.width,height:Rn,fill:"transparent",onMouseenter:xe=>E.value=ae},null,40,Cy))),128))],8,fy)):M("",!0),$.value?(l(),c("div",{key:1,class:"pointer-events-none absolute inset-0 grid place-content-center",style:nt({paddingBottom:`${is}px`})},[u("div",Ty,[u("p",My,"No threads in the last "+w(e.days.length)+" days",1),de[5]||(de[5]=u("p",{class:"mt-0.5"},"Threads and their cost appear here as agents run.",-1))])],4)):M("",!0),X.value&&E.value!==null&&!$.value?(l(),K(rf,{key:2,x:T.value[E.value].center,y:re.value,"bounds-width":h(r)},{default:be(()=>[j(af,{start:X.value.start,started:X.value.started,failed:X.value.failed,cost:X.value.cost,recorded:X.value.recorded,"average-run":f.value?X.value.runs>0?m(X.value):null:void 0},null,8,["start","started","failed","cost","recorded","average-run"])]),_:1},8,["x","y","bounds-width"])):M("",!0)],36),u("table",Ay,[de[6]||(de[6]=u("caption",null,"Threads started, failed, cost, and average run time per day",-1)),de[7]||(de[7]=u("thead",null,[u("tr",null,[u("th",{scope:"col"},"Day"),u("th",{scope:"col"},"Started"),u("th",{scope:"col"},"Failed"),u("th",{scope:"col"},"Cost"),u("th",{scope:"col"},"Average run")])],-1)),u("tbody",null,[(l(!0),c(te,null,Ie(e.days,ue=>(l(),c("tr",{key:ue.start},[u("th",Ly,w(h(s).format(new Date(ue.start*1e3))),1),u("td",null,w(ue.started),1),u("td",null,w(ue.failed),1),u("td",null,w(ue.recorded?h(_t)(ue.cost):"Not recorded"),1),u("td",null,w(ue.runs>0?h(pa)(m(ue)):"No runs"),1)]))),128))])])]))}}),Ny=ot(Py,[["__scopeId","data-v-a33f9a82"]]),Oy={class:"ui-divide grid grid-cols-2 gap-y-6 sm:grid-cols-5 sm:divide-x",role:"group","aria-label":"Project figures"},Dy={class:"block text-xs text-neutral-500 group-hover:text-neutral-800 dark:text-neutral-400 dark:group-hover:text-neutral-200"},By={class:"mt-1 block truncate text-xs text-neutral-500 dark:text-neutral-400"},Fy="threads",jy="group min-w-0 text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent-500 sm:px-6 sm:first:pl-0",qy=we({__name:"ActivityFigures",props:Sn({figures:{}},{focus:{required:!0},focusModifiers:{}}),emits:["update:focus"],setup(e){const t=Pr(e,"focus");function n(r){t.value=t.value===r?Fy:r}return(r,a)=>(l(),c("div",Oy,[(l(!0),c(te,null,Ie(e.figures,o=>(l(),K(ct(o.to?h(jo):"button"),co({key:o.id},{ref_for:!0},o.to?{to:o.to}:{type:"button","aria-pressed":t.value===o.focus},{class:jy,onClick:s=>!o.to&&o.focus?n(o.focus):void 0}),{default:be(()=>[u("span",Dy,w(o.label),1),u("span",{class:J(["relative mt-1 inline-block pb-1.5 text-2xl font-semibold tabular-nums tracking-tight text-neutral-900 dark:text-neutral-100",o.focus&&t.value===o.focus?"after:absolute after:inset-x-0 after:bottom-0 after:h-0.5 after:rounded-full after:bg-accent-500 dark:after:bg-accent-400":""])},w(o.value),3),u("span",By,w(o.detail),1)]),_:2},1040,["onClick"]))),128))]))}}),zy=["aria-labelledby"],Vy={class:"ui-border flex items-baseline justify-between gap-3 border-b pb-2"},Hy=["id"],Uy={class:"truncate text-xs text-neutral-500 dark:text-neutral-400"},Ky={key:0,class:"mt-1 flex flex-col"},Wy={class:"py-2 text-[13px] text-neutral-500 dark:text-neutral-400"},Gy={class:"flex items-center gap-2.5"},Jy={key:1,class:"-mx-2 mt-1 flex flex-col"},Xy={class:"flex min-w-0 items-center gap-2.5"},Yy={class:"flex min-w-0 flex-col"},Zy={class:"flex min-w-0 items-center gap-1.5"},Qy={class:"truncate font-medium text-neutral-900 dark:text-neutral-100"},eb={key:0,class:"truncate text-xs text-neutral-500 dark:text-neutral-400"},tb={class:"h-1.5 overflow-hidden rounded-full bg-black/[0.05] dark:bg-white/[0.08]","aria-hidden":"true"},nb={class:"text-right font-medium tabular-nums text-neutral-900 dark:text-neutral-100"},rb=we({__name:"DigInCard",props:{card:{},agents:{},agentsKnown:{type:Boolean}},setup(e){const t=["46%","34%","40%"],n=e;function r(a){return Vr({known:n.agentsKnown,agents:[...n.agents.values()]},a)}return(a,o)=>(l(),c("section",{class:"flex min-w-0 flex-col","aria-labelledby":`dig-in-${e.card.id}`},[u("div",Vy,[u("h3",{id:`dig-in-${e.card.id}`,class:"text-sm font-semibold text-neutral-900 dark:text-neutral-100"},w(e.card.title),9,Hy),u("span",Uy,w(e.card.note),1)]),e.card.rows.length===0?(l(),c("div",Ky,[u("p",Wy,w(e.card.empty),1),(l(),c(te,null,Ie(t,s=>u("div",{key:s,class:"grid grid-cols-[minmax(0,1fr)_72px_64px] items-center gap-3 py-2.5","aria-hidden":"true"},[u("span",Gy,[o[0]||(o[0]=u("span",{class:"size-6 shrink-0 rounded-md bg-black/[0.05] dark:bg-white/[0.06]"},null,-1)),u("span",{class:"h-2.5 rounded-full bg-black/[0.05] dark:bg-white/[0.06]",style:nt({width:s})},null,4)]),o[1]||(o[1]=u("span",{class:"h-1.5 rounded-full bg-black/[0.04] dark:bg-white/[0.05]"},null,-1)),o[2]||(o[2]=u("span",{class:"ml-auto h-2.5 w-8 rounded-full bg-black/[0.05] dark:bg-white/[0.06]"},null,-1))])),64))])):(l(),c("ul",Jy,[(l(!0),c(te,null,Ie(e.card.rows,s=>(l(),c("li",{key:s.key},[j(h(jo),{to:s.to,class:"agents-surface-hover grid grid-cols-[minmax(0,1fr)_72px_64px_14px] items-center gap-3 rounded-md px-2 py-2 text-[13px]"},{default:be(()=>[u("span",Xy,[s.agent?(l(),K(Mn,{key:0,icon:e.agents.get(s.agent)?.icon,seed:s.agent,class:"size-6 shrink-0 rounded-md object-cover"},null,8,["icon","seed"])):M("",!0),u("span",Yy,[u("span",Zy,[u("span",Qy,w(s.label),1),r(s.agent)?(l(),K(Wn,{key:0,compact:""})):M("",!0)]),s.detail?(l(),c("span",eb,w(s.detail),1)):M("",!0)])]),u("span",tb,[u("span",{class:J(["block h-full rounded-full",e.card.tone==="failed"?"bg-red-500 dark:bg-red-400":"bg-accent-500 dark:bg-accent-400"]),style:nt({width:`${Math.max(4,Math.round(s.share*100))}%`})},null,6)]),u("span",nb,w(s.value),1),j(h(Gn),{class:"size-3.5 text-neutral-400","aria-hidden":"true"})]),_:2},1032,["to"])]))),128))]))],8,zy))}}),ab={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ob(e,t){return l(),c("svg",ab,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09M12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2"}),u("path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0m1 7v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"})],-1)])])}const eu=Ye({name:"lucide-rocket",render:ob}),sb={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function lb(e,t){return l(),c("svg",sb,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m16 16l3-8l3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1M2 16l3-8l3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1m5 5h10M12 3v18M3 7h2c2 0 5-1 7-2c2 1 5 2 7 2h2"},null,-1)])])}const ib=Ye({name:"lucide-scale",render:lb}),ub={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function db(e,t){return l(),c("svg",ub,[...t[0]||(t[0]=[Yh('<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="6" height="6" x="16" y="16" rx="1"></rect><rect width="6" height="6" x="2" y="16" rx="1"></rect><rect width="6" height="6" x="9" y="2" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3m-7-4V8"></path></g>',1)])])}const cf=Ye({name:"lucide-network",render:db}),cb=["aria-label"],fb={class:"flex w-full items-center gap-2.5"},pb={class:"flex size-8 shrink-0 items-center justify-center rounded-lg bg-accent-600/10 text-accent-700 dark:bg-accent-400/15 dark:text-accent-300","aria-hidden":"true"},hb={class:"min-w-0 flex-1"},mb={class:"block truncate text-sm font-medium text-neutral-900 dark:text-neutral-100"},gb={class:"block truncate text-xs text-neutral-500 dark:text-neutral-400"},vb={class:"min-w-0 flex-1 rounded-lg bg-black/[0.035] px-3 py-2.5 font-mono text-xs leading-5 text-neutral-700 dark:bg-white/[0.05] dark:text-neutral-300"},tu=we({__name:"StarterAgentCard",props:{starter:{},icon:{},stacked:{type:Boolean},copied:{type:Boolean}},emits:["copy"],setup(e){const t=Do.ui;return(n,r)=>(l(),c("button",{type:"button",class:"group flex w-full flex-col gap-3 rounded-xl bg-white p-4 text-left shadow-sm ring-1 ring-black/[0.06] transition-shadow hover:shadow-md hover:ring-black/[0.12] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent-500 dark:bg-neutral-900 dark:ring-white/[0.08] dark:hover:ring-white/[0.18]","aria-label":`${h(t).copyPrompt}: ${e.starter.title}`,onClick:r[0]||(r[0]=a=>n.$emit("copy"))},[u("span",fb,[u("span",pb,[(l(),K(ct(e.icon),{class:"size-4"}))]),u("span",hb,[u("span",mb,w(e.starter.title),1),u("span",gb,w(e.starter.shows),1)])]),u("span",{class:J(["flex w-full flex-1 flex-col gap-x-5 gap-y-3",e.stacked?"":"sm:flex-row sm:items-stretch"])},[u("span",vb,w(e.starter.prompt),1),gt(n.$slots,"default")],2),u("span",{class:J(["inline-flex h-7 items-center gap-1.5 self-start rounded-md px-2 text-xs font-medium ring-1 transition-colors",e.copied?"text-emerald-700 ring-emerald-600/30 dark:text-emerald-400 dark:ring-emerald-400/30":"text-neutral-700 ring-black/10 group-hover:bg-black/[0.04] dark:text-neutral-200 dark:ring-white/15 dark:group-hover:bg-white/[0.06]"]),"aria-live":"polite"},[(l(),K(ct(e.copied?h(j0):h(q0)),{class:"size-3.5","aria-hidden":"true"})),Ce(" "+w(e.copied?h(t).copied:h(t).copyPrompt),1)],2)],8,cb))}}),yb={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function bb(e,t){return l(),c("svg",yb,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("circle",{cx:"8",cy:"8",r:"6"}),u("path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18M7 6h1v4"}),u("path",{d:"m16.71 13.88l.7.71l-2.82 2.82"})],-1)])])}const Hs=Ye({name:"lucide-coins",render:bb}),xb={class:"flex shrink-0 flex-col justify-center gap-1.5 sm:w-52"},kb={class:"flex items-center gap-2 text-[13px] font-medium text-neutral-900 dark:text-neutral-100"},wb={class:"flex items-center gap-2 pl-1 text-[13px] text-neutral-700 dark:text-neutral-200"},_b={class:"mt-2 flex items-center gap-2 text-[13px] font-medium text-neutral-900 dark:text-neutral-100"},$b=["aria-label"],Ib={class:"pl-6 text-[13px] tabular-nums text-neutral-700 dark:text-neutral-200"},nu=we({__name:"StarterAgentStructure",props:{structure:{},cost:{}},setup(e){const t=Do.ui;return(n,r)=>(l(),c("span",xb,[u("span",kb,[j(h(xn),{class:"size-4 shrink-0 text-neutral-500 dark:text-neutral-400","aria-hidden":"true"}),Ce(" "+w(e.structure.lead),1)]),(l(!0),c(te,null,Ie(e.structure.parts,a=>(l(),c(te,{key:a.name},[u("span",wb,[j(h(Oi),{class:"size-3.5 shrink-0 text-neutral-400 dark:text-neutral-500","aria-hidden":"true"}),Ce(" "+w(a.name),1)]),(l(!0),c(te,null,Ie(a.parts,o=>(l(),c("span",{key:o,class:"flex items-center gap-2 pl-6 text-xs text-neutral-500 dark:text-neutral-400"},[j(h(Oi),{class:"size-3 shrink-0 text-neutral-400 dark:text-neutral-500","aria-hidden":"true"}),Ce(" "+w(o),1)]))),128))],64))),128)),u("span",_b,[j(h(Hs),{class:"size-4 shrink-0 text-neutral-500 dark:text-neutral-400","aria-hidden":"true"}),Ce(" "+w(h(t).starterCostLabel)+" ",1),u("span",{class:"rounded-md bg-black/[0.05] px-1.5 py-px text-[12px] tracking-wide dark:bg-white/[0.08]","aria-label":`${e.cost.level} of 3`},[(l(),c(te,null,Ie(3,a=>u("span",{key:a,class:J(a<=e.cost.level?"text-neutral-900 dark:text-neutral-100":"text-neutral-300 dark:text-neutral-600"),"aria-hidden":"true"},"$",2)),64))],8,$b)]),u("span",Ib,w(e.cost.range)+" "+w(e.cost.unit),1)]))}}),Sb={class:"flex min-w-0 flex-col gap-3"},Cb=["aria-labelledby"],ff=we({__name:"StarterAgentGrid",props:{labelledBy:{}},setup(e){const t=z0(),n={"x-sentiment":V0,debate:ib,"pixel-art":cf},{copied:r,copy:a}=$c(),o=R(null);async function s(i){o.value=i.id,await a(i.prompt)}return(i,d)=>(l(),c("div",Sb,[u("ul",{class:"grid grid-cols-1 gap-3 md:grid-cols-2","aria-labelledby":e.labelledBy},[(l(!0),c(te,null,Ie(h(t).ideas,p=>(l(),c("li",{key:p.id,class:"flex min-w-0"},[j(tu,{stacked:"",starter:p,icon:n[p.id]??h(xn),copied:h(r)&&o.value===p.id,onCopy:f=>s(p)},{default:be(()=>[j(nu,{structure:p.structure,cost:p.cost},null,8,["structure","cost"])]),_:2},1032,["starter","icon","copied","onCopy"])]))),128))],8,Cb),j(tu,{starter:h(t).composition,icon:n[h(t).composition.id]??h(xn),copied:h(r)&&o.value===h(t).composition.id,onCopy:d[0]||(d[0]=p=>s(h(t).composition))},{default:be(()=>[j(nu,{structure:h(t).composition.structure,cost:h(t).composition.cost},null,8,["structure","cost"])]),_:1},8,["starter","icon","copied"])]))}}),ru="agents.home.starters",au="dismissed";function Tb(e,t=Zd()){function n(){try{return t?.getItem(ru)===au}catch{return!1}}const r=R(n()),a=R(null),o=x(()=>a.value??!Zh(e));return{collapsed:o,dismissed:r,toggle:()=>{a.value=!o.value},dismiss:()=>{r.value=!0;try{t?.setItem(ru,au)}catch{}}}}const Mb={key:0,class:"relative w-full min-w-0 rounded-2xl bg-black/[0.03] p-5 lg:p-6 dark:bg-white/[0.04]","aria-labelledby":"home-starters-heading"},Ab=["aria-label","title","aria-expanded"],Lb=["aria-label","title"],Rb={key:0,class:"flex min-w-0 items-center gap-3 pr-20"},Eb={class:"flex size-8 shrink-0 items-center justify-center rounded-lg bg-neutral-900 text-white dark:bg-neutral-100 dark:text-neutral-900","aria-hidden":"true"},Pb={id:"home-starters-heading",class:"min-w-0 text-base font-semibold text-neutral-900 dark:text-neutral-100"},Nb={key:1,id:"home-starters-body",class:"grid min-w-0 grid-cols-1 gap-x-10 gap-y-6 lg:grid-cols-[17rem_minmax(0,1fr)]"},Ob={class:"flex min-w-0 flex-col gap-5"},Db={class:"pr-20 lg:pr-0"},Bb={class:"mb-3 flex size-8 items-center justify-center rounded-lg bg-neutral-900 text-white dark:bg-neutral-100 dark:text-neutral-900","aria-hidden":"true"},Fb={id:"home-starters-heading",class:"text-base font-semibold text-neutral-900 dark:text-neutral-100"},jb={class:"mt-1 text-[13px] leading-5 text-neutral-600 dark:text-neutral-400"},qb={class:"flex flex-col gap-3"},zb={class:"mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-full bg-black/[0.07] text-[11px] font-semibold tabular-nums text-neutral-600 dark:bg-white/[0.1] dark:text-neutral-300","aria-hidden":"true"},Vb={class:"min-w-0 flex-1"},Hb={class:"text-[13px] font-medium text-neutral-900 dark:text-neutral-100"},Ub={class:"mt-0.5 text-[13px] leading-5 text-neutral-500 dark:text-neutral-400"},Kb={class:"flex flex-col items-start gap-2"},Wb={class:"text-[13px] leading-5 text-neutral-500 dark:text-neutral-400"},ou="flex size-7 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-black/[0.06] hover:text-neutral-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent-500 dark:text-neutral-400 dark:hover:bg-white/10 dark:hover:text-neutral-100",Gb=we({__name:"HomeStarterAgents",props:{firstRun:{type:Boolean}},setup(e){const t=e,n=x(()=>H0({firstRun:t.firstRun})),{collapsed:r,dismissed:a,toggle:o,dismiss:s}=Tb(()=>t.firstRun);return(i,d)=>h(a)?M("",!0):(l(),c("section",Mb,[u("div",{class:J(["absolute right-3 flex items-center gap-1 lg:right-4",h(r)?"top-1/2 -translate-y-1/2":"top-3 lg:top-4"])},[u("button",{type:"button",class:J(ou),"aria-label":h(r)?n.value.expand:n.value.collapse,title:h(r)?n.value.expand:n.value.collapse,"aria-expanded":!h(r),"aria-controls":"home-starters-body",onClick:d[0]||(d[0]=(...p)=>h(o)&&h(o)(...p))},[j(h(Al),{class:J(["size-4 transition-transform motion-reduce:transition-none",h(r)?"-rotate-90":""]),"aria-hidden":"true"},null,8,["class"])],8,Ab),u("button",{type:"button",class:J(ou),"aria-label":n.value.dismiss,title:n.value.dismiss,onClick:d[1]||(d[1]=(...p)=>h(s)&&h(s)(...p))},[j(h(Bo),{class:"size-4","aria-hidden":"true"})],8,Lb)],2),h(r)?(l(),c("div",Rb,[u("span",Eb,[j(h(eu),{class:"size-4"})]),u("h2",Pb,w(n.value.heading),1)])):(l(),c("div",Nb,[u("div",Ob,[u("div",Db,[u("span",Bb,[j(h(eu),{class:"size-4"})]),u("h2",Fb,w(n.value.heading),1),u("p",jb,w(n.value.intro),1)]),u("ol",qb,[(l(!0),c(te,null,Ie(n.value.steps,(p,f)=>(l(),c("li",{key:p.title,class:"flex gap-3"},[u("span",zb,w(f+1),1),u("div",Vb,[u("p",Hb,w(p.title),1),u("p",Ub,w(p.body),1)])]))),128))]),u("div",Kb,[u("p",Wb,w(n.value.inference),1),j(h(_c),{docs:n.value.docs},null,8,["docs"])])]),j(ff,{class:"lg:pt-9","labelled-by":"home-starters-heading"})]))]))}});function Xa(e){return e.display_name?.trim()||e.username?.trim()||e.email?.trim()||"Unknown person"}function Jb(e){return new Map(e.flatMap(t=>t.user_id?[[t.user_id,Xa(t)]]:[]))}const Xb=5,qt=e=>e.reduce((t,n)=>t+n,0);function Ya(e,t,n){return bl({allAgents:!n.agent,filters:n,origin:{card:e,row:t}})}function pf(e){return e.agents.map(t=>({agent:t.agent,threads:qt(t.started),failed:qt(t.failed),cost:qt(t.usage.cost),runs:qt(t.usage.runs),runSeconds:qt(t.usage.run_seconds)}))}function Za(e,t,n){const r=e.filter(o=>t(o)>0).sort((o,s)=>t(s)-t(o)).slice(0,Xb),a=r.length>0?t(r[0]):0;return r.map(o=>n(o,a>0?t(o)/a:0))}function vo(e,t,n){return`${e} ${e===1?t:n}`}function Yb(e,t,n,r){const a=e.some(o=>o.cost>0);return{id:"agents",title:"Agents",note:`${a?"Spend":"Threads"}, ${t}`,tone:"accent",empty:"No agent ran in this window.",rows:Za(e,o=>a?o.cost:o.threads,(o,s)=>({key:o.agent,label:n(o.agent),detail:[a?vo(o.threads,"thread","threads"):null,o.failed>0?`${o.failed} failed`:null].filter(Boolean).join(" · "),value:a?_t(o.cost):String(o.threads),share:s,agent:o.agent,to:Ya("agents",n(o.agent),{agent:o.agent,days:r})}))}}function Zb(e,t,n,r){const a=Qd(e,t),o=Ps.find(f=>f===a.days)??null,s=`last ${a.days} days`,i=pf(a),d=n.filter(f=>!!f.user_id),p=[Yb(i,s,r,o),{id:"failures",title:"Failures",note:`Failed threads, ${s}`,tone:"failed",empty:"No thread failed in this window.",rows:Za(i,f=>f.failed,(f,m)=>({key:f.agent,label:r(f.agent),detail:`${Math.round(f.failed/Math.max(1,f.threads)*100)}% of ${vo(f.threads,"thread","threads")}`,value:String(f.failed),share:m,agent:f.agent,to:Ya("failures",r(f.agent),{agent:f.agent,status:"failed",days:o})}))},{id:"run-time",title:"Run time",note:`Average run, ${s}`,tone:"accent",empty:"No runs in this window.",rows:Za(i.filter(f=>f.runs>0),f=>f.runSeconds/f.runs,(f,m)=>({key:f.agent,label:r(f.agent),detail:vo(f.runs,"run","runs"),value:pa(f.runSeconds/f.runs),share:m,agent:f.agent,to:Ya("run-time",r(f.agent),{agent:f.agent,days:o})}))}];return d.length>1&&p.push({id:"people",title:"People",note:"Threads, all time",tone:"accent",empty:"",rows:Za(d,f=>f.thread_count,(f,m)=>({key:f.user_id,label:Xa(f),detail:f.email&&f.email!==Xa(f)?f.email:"",value:String(f.thread_count),share:m,agent:null,to:Ya("people",Xa(f),{owner:f.user_id})}))}),p}function Qb(e,t,n){const r=Qd(e,t),a=pf(r),o=r.days-1,s=qt(a.map(m=>m.threads)),i=qt(a.map(m=>m.failed)),d=qt(a.map(m=>m.runs)),p=qt(a.map(m=>m.runSeconds)),f=`${r.days} days`;return[{id:"agents",to:ec,label:"Agents",value:String(n),detail:`${a.filter(m=>m.threads>0).length} ran, ${f}`},{id:"threads",focus:"threads",to:bl({allAgents:!0,filters:{}}),label:`Threads, ${f}`,value:String(s),detail:`${qt(r.agents.map(m=>m.started[o]??0))} today`},{id:"cost",focus:"cost",label:`Spend, ${f}`,value:_t(qt(a.map(m=>m.cost))),detail:`${_t(qt(r.agents.map(m=>m.usage.cost[o]??0)))} today`},{id:"failed",focus:"failed",label:`Failed, ${f}`,value:String(i),detail:s>0?`${Math.round(i/s*100)}% of threads`:"No threads"},{id:"runTime",focus:"runTime",label:"Average run time",value:d>0?pa(p/d):"None",detail:vo(d,"run","runs")}]}const ex={class:"h-full w-full overflow-y-auto"},tx={class:"mx-auto flex w-full max-w-[1760px] flex-col gap-10 px-4 py-6 lg:px-8 min-[1920px]:px-12"},nx={key:0,class:"mt-0.5 flex size-10 shrink-0 items-center justify-center overflow-hidden rounded-lg bg-white p-1 ring-1 ring-black/10 dark:ring-white/15","aria-hidden":"true"},rx=["src"],ax={key:1,class:"mt-0.5 flex size-10 shrink-0 items-center justify-center rounded-lg bg-accent-600 text-lg font-semibold text-white dark:bg-accent-500","aria-hidden":"true"},ox={class:"rounded-full bg-black/[0.05] px-2 py-0.5 text-xs font-medium text-neutral-600 dark:bg-white/[0.08] dark:text-neutral-300"},sx={key:0,class:"-mt-6 text-[13px] text-red-700 dark:text-red-300",role:"alert"},lx={class:"flex min-w-0 flex-col gap-6","aria-label":"Activity and cost"},ix={class:"flex min-w-0 flex-col gap-4","aria-labelledby":"home-dig-in-heading"},ux={class:"flex items-baseline justify-between gap-4"},dx={class:"grid grid-cols-1 gap-x-12 gap-y-8 lg:grid-cols-2 min-[1600px]:grid-cols-3"},cx=we({__name:"HomePage",props:{allAgents:{},agentsKnown:{type:Boolean},overview:{},overviewError:{},nowSeconds:{},owners:{},identity:{}},setup(e){const t=e,n=x(()=>t.identity),r=bl({allAgents:!0,filters:{}}),a=x(()=>new Map(t.allAgents.map(y=>[y.id,y]))),o=y=>a.value.get(y)?.title??y,s=x(()=>t.owners.filter(y=>y.user_id).length),i=x(()=>{const y=n.value.name.trim().charAt(0);return new RegExp("\\p{L}","u").test(y)?y.toUpperCase():null}),d=R(null),p=x(()=>{const y=n.value.logoUrl;return y&&y!==d.value?y:null});ve(()=>n.value.logoUrl,()=>{d.value=null});const f=x(()=>{const{deployedAt:y,builtOnly:A,source:L}=n.value,k=y!==null?`${A?"Built":"Deployed"} ${tc(y,t.nowSeconds)}`:null;return k&&L?`${k} from ${L}`:k??L}),m=x(()=>[f.value,`${t.allAgents.length} ${t.allAgents.length===1?"agent":"agents"}`,s.value>0?`${s.value} ${s.value===1?"person":"people"}`:null].filter(Boolean).join(" · ")),g=x(()=>U0({known:t.agentsKnown,agentCount:t.allAgents.length})),v=R("threads"),_=x(()=>t.overview?Qb(t.overview,t.nowSeconds,t.allAgents.length):[]),b=x(()=>t.overview?K0(t.overview,t.nowSeconds,t.overview.days):[]),C=x(()=>t.overview?Zb(t.overview,t.nowSeconds,t.owners,o):[]);return(y,A)=>(l(),c("div",ex,[u("div",tx,[j(wc,{title:n.value.name,description:m.value},ar({leading:be(()=>[p.value?(l(),c("span",nx,[u("img",{src:p.value,alt:"",class:"size-full object-contain",referrerpolicy:"no-referrer",onError:A[0]||(A[0]=L=>d.value=p.value)},null,40,rx)])):(l(),c("span",ax,[i.value?(l(),c(te,{key:0},[Ce(w(i.value),1)],64)):(l(),K(h(ra),{key:1,class:"size-5"}))]))]),_:2},[n.value.environment?{name:"badge",fn:be(()=>[u("span",ox,w(n.value.environment),1)]),key:"0"}:void 0]),1032,["title","description"]),e.overviewError?(l(),c("p",sx," Activity is unavailable: "+w(h(Ve)(e.overviewError)),1)):M("",!0),j(Gb,{"first-run":g.value},null,8,["first-run"]),e.overview?(l(),c(te,{key:1},[u("section",lx,[j(qy,{focus:v.value,"onUpdate:focus":A[1]||(A[1]=L=>v.value=L),figures:_.value},null,8,["focus","figures"]),j(Ny,{days:b.value,"usage-since":e.overview.usage_since,focus:v.value},null,8,["days","usage-since","focus"])]),u("section",ix,[u("div",ux,[A[3]||(A[3]=u("h2",{id:"home-dig-in-heading",class:"text-base font-semibold text-neutral-900 dark:text-neutral-100"},"Dig in",-1)),j(h(jo),{to:h(r),class:"text-[13px] font-medium text-accent-700 hover:text-accent-900 dark:text-accent-300 dark:hover:text-accent-100"},{default:be(()=>[...A[2]||(A[2]=[Ce(" All threads ",-1)])]),_:1},8,["to"])]),u("div",dx,[(l(!0),c(te,null,Ie(C.value,L=>(l(),K(rb,{key:L.id,card:L,agents:a.value,"agents-known":e.agentsKnown},null,8,["card","agents","agents-known"]))),128))])])],64)):M("",!0)])]))}}),fx={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function px(e,t){return l(),c("svg",fx,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("circle",{cx:"12",cy:"12",r:"1"}),u("circle",{cx:"19",cy:"12",r:"1"}),u("circle",{cx:"5",cy:"12",r:"1"})],-1)])])}const hf=Ye({name:"lucide-ellipsis",render:px}),hx={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function mx(e,t){return l(),c("svg",hx,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("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"}),u("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"}),u("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 gx=Ye({name:"lucide-package-open",render:mx}),vx=["aria-expanded","aria-label"],us="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",yx=we({__name:"AgentActionsMenu",props:{agent:{}},emits:["pack","unpack","publish"],setup(e,{emit:t}){const n=t,r=R(!1),a=R(null),o=R(null),s=R({top:0,right:0});function i(){if(!r.value&&a.value){const f=a.value.getBoundingClientRect();s.value={top:f.bottom+4,right:window.innerWidth-f.right}}r.value=!r.value}function d(){r.value=!1}Ia(o,d,{ignore:[a]}),Yn(window,"scroll",d,{capture:!0,passive:!0}),Yn(window,"resize",d,{passive:!0});function p(f){r.value=!1,n(f==="pack"?"pack":f==="unpack"?"unpack":"publish")}return(f,m)=>(l(),c(te,null,[u("button",{ref_key:"buttonRef",ref:a,type:"button",class:"inline-flex h-8 w-8 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-black/5 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/10 dark:hover:text-white","aria-expanded":r.value,"aria-haspopup":"menu","aria-label":`Actions for ${e.agent.title}`,onClick:Je(i,["stop"])},[j(h(hf),{class:"h-4 w-4"})],8,vx),(l(),K($a,{to:"body"},[r.value?(l(),c("div",{key:0,ref_key:"menuRef",ref:o,class:"fixed z-50 min-w-[180px] rounded-lg border border-neutral-200 bg-white py-1 shadow-lg dark:border-neutral-700 dark:bg-neutral-900",style:nt({top:`${s.value.top}px`,right:`${s.value.right}px`}),role:"menu",onClick:m[3]||(m[3]=Je(()=>{},["stop"]))},[e.agent.packed?M("",!0):(l(),c("button",{key:0,type:"button",role:"menuitem",class:J(us),onClick:m[0]||(m[0]=g=>p("pack"))},[j(h(qs),{class:"h-4 w-4 text-neutral-400"}),m[4]||(m[4]=Ce(" Pack ",-1))])),e.agent.packed?(l(),c("button",{key:1,type:"button",role:"menuitem",class:J(us),onClick:m[1]||(m[1]=g=>p("unpack"))},[j(h(gx),{class:"h-4 w-4 text-neutral-400"}),m[5]||(m[5]=Ce(" Unpack ",-1))])):M("",!0),e.agent.packed?(l(),c("button",{key:2,type:"button",role:"menuitem",class:J(us),onClick:m[2]||(m[2]=g=>p("publish"))},[j(h(qs),{class:"h-4 w-4 text-neutral-400"}),m[6]||(m[6]=Ce(" Publish package ",-1))])):M("",!0)],4)):M("",!0)]))],64))}}),bx=["width","height","role","aria-label","aria-hidden"],xx=["d","fill"],kx=["d"],wx=["x1","x2","y2"],_x=["cx","cy","r"],$x=["cx","cy"],Ix=3,Sx=we({__name:"SparklineChart",props:{values:{},max:{},marks:{default:()=>[]},height:{default:28},label:{default:void 0}},setup(e){const t=e,n=Qh(),r=R(null),{width:a}=Ur(r),o=`sparkline-${Fo()}`,s=x(()=>Yv(t.values,{width:Math.max(1,a.value),height:t.height,max:t.max,inset:Ix})),i=R(null),d=R(null);function p(g){if(!n.readout||!r.value)return;const v=r.value.getBoundingClientRect(),_=Zv(s.value.points,g.clientX-v.left);i.value=_;const b=_===null?null:s.value.points[_];d.value=b?{x:v.left+b.x,y:v.top+b.y}:null}const f=x(()=>d.value?window.innerWidth:0);function m(){i.value=null,d.value=null}return(g,v)=>(l(),c("div",{ref_key:"root",ref:r,class:"relative w-full",style:nt({height:`${e.height}px`}),onPointermove:p,onPointerleave:m},[h(a)>0?(l(),c("svg",{key:0,class:"block overflow-visible text-neutral-400 dark:text-neutral-500",width:h(a),height:e.height,role:e.label?"img":void 0,"aria-label":e.label,"aria-hidden":e.label?void 0:"true"},[u("defs",null,[u("linearGradient",{id:o,x1:"0",y1:"0",x2:"0",y2:"1"},[...v[0]||(v[0]=[u("stop",{offset:"0","stop-color":"currentColor","stop-opacity":"0.24"},null,-1),u("stop",{offset:"1","stop-color":"currentColor","stop-opacity":"0"},null,-1)])])]),u("path",{d:s.value.area,fill:`url(#${o})`},null,8,xx),u("path",{d:s.value.line,fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linejoin":"round","stroke-linecap":"round"},null,8,kx),i.value!==null?(l(),c("line",{key:0,x1:s.value.points[i.value].x,x2:s.value.points[i.value].x,y1:0,y2:e.height,stroke:"var(--color-border)"},null,8,wx)):M("",!0),(l(!0),c(te,null,Ie(s.value.points,(_,b)=>(l(),c(te,{key:b},[(e.marks[b]??0)>0?(l(),c("circle",{key:0,cx:_.x,cy:_.y,r:e.marks[b],class:"fill-red-500 dark:fill-red-400","fill-opacity":"0.55"},null,8,_x)):i.value===b?(l(),c("circle",{key:1,cx:_.x,cy:_.y,r:"2.5",fill:"currentColor"},null,8,$x)):M("",!0)],64))),128))],8,bx)):M("",!0),d.value&&i.value!==null?(l(),K(rf,{key:1,fixed:"",x:d.value.x,y:d.value.y,"bounds-width":f.value},{default:be(()=>[gt(g.$slots,"readout",{index:i.value})]),_:3},8,["x","y","bounds-width"])):M("",!0)],36))}}),Cx=we({__name:"AgentActivityCell",props:{week:{},max:{}},setup(e){const t=e,n=x(()=>t.week.reduce((r,a)=>r+a.started,0));return(r,a)=>(l(),K(Sx,{values:e.week.map(o=>o.started),marks:e.week.map(o=>h(ny)(o.failed)),max:e.max,label:`${n.value} threads in the last 7 days`},{readout:be(({index:o})=>[j(af,{start:e.week[o].start,started:e.week[o].started,failed:e.week[o].failed,cost:e.week[o].cost,"cost-with-subagents":e.week[o].costWithSubagents,recorded:e.week[o].recorded},null,8,["start","started","failed","cost","cost-with-subagents","recorded"])]),_:1},8,["values","marks","max","label"]))}}),Tx={key:0,class:"flex min-w-0 flex-col gap-1"},Mx={class:"flex min-w-0 items-center gap-1.5 leading-5"},Ax=["src"],Lx={key:1,class:"h-3.5 w-3.5 shrink-0","aria-hidden":"true"},Rx={key:3,class:"min-w-0 truncate text-neutral-700 dark:text-neutral-200"},Ex={class:"flex min-w-0 flex-col"},Px={class:"min-w-0 truncate leading-5 text-neutral-500 dark:text-neutral-400"},Nx=["title"],Ox={key:1,class:"text-neutral-400 dark:text-neutral-500"},Dx=we({__name:"AgentModelsCell",props:{models:{},lastModel:{}},setup(e){const t=e,n=x(()=>{if(t.models.length===0){const a=t.lastModel;return a?[{name:a.model,defined:!1,provider:a.provider??null,modelId:null,icon:null}]:[]}const r=t.models.length===1;return t.models.map(a=>({name:a.name,defined:!0,provider:(r?t.lastModel?.provider:null)??a.provider,modelId:a.modelId&&a.modelId!==a.name?a.modelId:null,icon:a.icon}))});return(r,a)=>{const o=It("RouterLink");return n.value.length?(l(),c("ul",Tx,[(l(!0),c(te,null,Ie(n.value,s=>(l(),c("li",{key:s.name,class:"grid min-w-0 grid-cols-[minmax(0,9.5rem)_minmax(0,1fr)] items-center gap-x-3"},[u("span",Mx,[s.icon?(l(),c("img",{key:0,src:s.icon,alt:"",class:"h-3.5 w-3.5 shrink-0 rounded-sm object-contain"},null,8,Ax)):(l(),c("span",Lx)),s.defined?(l(),K(o,{key:2,to:h(Rr).model(s.name),class:"min-w-0 truncate text-neutral-700 hover:underline dark:text-neutral-200",onClick:a[0]||(a[0]=Je(()=>{},["stop"]))},{default:be(()=>[Ce(w(s.name),1)]),_:2},1032,["to"])):(l(),c("span",Rx,w(s.name),1))]),u("span",Ex,[u("span",Px,w(s.provider),1),s.modelId?(l(),c("span",{key:0,class:"min-w-0 truncate font-mono text-[11px] leading-4 text-neutral-400 dark:text-neutral-500",title:s.modelId},w(s.modelId),9,Nx)):M("",!0)])]))),128))])):(l(),c("span",Ox,"No model"))}}}),Bx={class:"flex flex-col gap-1.5"},Fx={class:"flex min-w-0 items-center gap-1.5"},jx=["src"],qx={class:"truncate text-neutral-800 dark:text-neutral-200"},zx={key:0,class:"truncate pl-5 font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},Vx={key:0,class:"mt-2 text-neutral-500 dark:text-neutral-400"},Hx={class:"text-neutral-800 dark:text-neutral-200"},Ux=we({__name:"AgentModelsList",props:{models:{},lastModel:{}},setup(e){return(t,n)=>(l(),c(te,null,[u("ul",Bx,[(l(!0),c(te,null,Ie(e.models,r=>(l(),c("li",{key:r.name,class:"min-w-0"},[u("div",Fx,[r.icon?(l(),c("img",{key:0,src:r.icon,alt:"",class:"h-3.5 w-3.5 shrink-0 rounded-sm object-contain"},null,8,jx)):M("",!0),u("span",qx,w(r.name),1)]),r.modelId?(l(),c("div",zx,w(r.modelId),1)):M("",!0)]))),128))]),e.lastModel?(l(),c("p",Vx,[n[0]||(n[0]=Ce(" Last run: ",-1)),u("span",Hx,w(e.lastModel.model),1),e.lastModel.provider?(l(),c(te,{key:0},[Ce(" via "+w(e.lastModel.provider),1)],64)):M("",!0)])):M("",!0)],64))}}),Kx=we({__name:"OverviewHoverCard",props:{testId:{}},setup(e){const t=R(null),n=R(null);function r(){const o=t.value?.getBoundingClientRect();o&&(n.value={top:o.bottom+6,left:Math.min(o.left,window.innerWidth-300)})}function a(){n.value=null}return Yn(window,"scroll",a,{capture:!0,passive:!0}),(o,s)=>(l(),c(te,null,[u("span",{ref_key:"triggerRef",ref:t,class:"inline-flex min-w-0 max-w-full",onMouseenter:r,onMouseleave:a,onFocusin:r,onFocusout:a},[gt(o.$slots,"default")],544),(l(),K($a,{to:"body"},[n.value?(l(),c("div",{key:0,class:"pointer-events-none fixed z-50 w-72 ui-border rounded-lg border bg-white p-3 text-[12px] shadow-lg dark:bg-neutral-900",style:nt({top:`${n.value.top}px`,left:`${n.value.left}px`}),role:"tooltip"},[gt(o.$slots,"card")],4)):M("",!0)]))],64))}}),Wx={class:"truncate font-medium text-neutral-900 dark:text-neutral-100"},Gx={class:"mb-2 truncate font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},Jx={key:0,class:"mb-2 line-clamp-3 text-neutral-500 dark:text-neutral-400"},Xx={class:"grid grid-cols-[auto_minmax(0,1fr)] gap-x-3 gap-y-1"},Yx={class:"text-neutral-500 dark:text-neutral-400"},Zx={class:"truncate text-neutral-800 dark:text-neutral-200"},Qx=we({__name:"AgentShapeHoverCard",props:{agent:{}},setup(e){const t=e;function n(o){const s=t.agent,i=o==="a"?s.side_a_backing:s.side_b_backing;return i==="human"?"Human":i==="handler"?(o==="a"?s.side_a_handler:s.side_b_handler)||"Handler":(o==="a"?s.side_a_agent_prompt:s.side_b_agent_prompt)||"Prompt"}const r=x(()=>nc(t.agent.definition_diagnostics).map(o=>xl(o))),a=x(()=>[{label:"Shape",value:Ns(t.agent.side_a_backing,t.agent.side_b_backing)||"Unknown"},{label:t.agent.side_a_label||"Side A",value:n("a")},{label:t.agent.side_b_label||"Side B",value:n("b")}]);return(o,s)=>(l(),K(Kx,{"test-id":"agent-shape-card"},{card:be(()=>[u("div",Wx,w(e.agent.title),1),u("div",Gx,w(e.agent.name),1),e.agent.description?(l(),c("p",Jx,w(e.agent.description),1)):M("",!0),u("dl",Xx,[(l(!0),c(te,null,Ie(a.value,i=>(l(),c(te,{key:i.label},[u("dt",Yx,w(i.label),1),u("dd",Zx,w(i.value),1)],64))),128)),gt(o.$slots,"details")]),(l(!0),c(te,null,Ie(r.value,i=>(l(),K(Pl,{key:i.summary,class:"mt-2.5",title:i.title,lines:[i.summary,i.fix]},null,8,["title","lines"]))),128))]),default:be(()=>[gt(o.$slots,"default")]),_:3}))}}),ek={class:"ui-border border-b text-left text-xs text-neutral-500 dark:text-neutral-400"},tk=["aria-sort"],nk=["onClick"],rk={key:0,scope:"col",class:"w-[40px]"},ak=["data-agent-id","onClick"],ok={class:"pr-3"},sk={class:"flex min-w-0 items-center gap-3"},lk={class:"min-w-0 flex-1"},ik={class:"flex min-w-0 items-center gap-1.5"},uk=["onClick"],dk={class:"tabular-nums text-neutral-800 dark:text-neutral-200"},ck={class:"min-w-0"},fk=["aria-label"],pk=["title"],hk={class:"px-3"},mk={class:"whitespace-nowrap px-3 tabular-nums text-neutral-600 dark:text-neutral-300"},gk={key:0,class:"inline-flex items-center gap-1.5 text-accent-700 dark:text-accent-300"},vk=["title"],yk={key:0,class:"whitespace-nowrap px-3 text-right tabular-nums text-neutral-600 dark:text-neutral-300"},bk={key:1,class:"pl-6 pr-3"},Zr="text-neutral-400 dark:text-neutral-500",su="text-neutral-800 dark:text-neutral-100",xk=we({__name:"AgentOverviewTable",props:{agents:{},metrics:{},models:{},usedBy:{},nowSeconds:{},hasOverview:{type:Boolean},idleWeek:{},compact:{type:Boolean},sortBy:{},sortDir:{},packaging:{type:Boolean}},emits:["sort","select","pack","unpack","publish"],setup(e){const t=e,n=[{key:"title",label:"Agent",class:""},{key:null,label:"Activity 7d",class:"w-[112px]"},{key:"lastActive",label:"Last active",class:"w-[100px]"},{key:"threads",label:"Threads",class:"w-[80px] text-right"},{key:"failed",label:"Failed",class:"w-[88px] text-right"},{key:"cost",label:"Cost 7d",class:"w-[84px] text-right"},{key:"avgCost",label:"Avg / thread",class:"w-[100px] text-right",wide:!0},{key:null,label:"Model",class:"w-[clamp(140px,16%,220px)] pl-6",wide:!0}],r=x(()=>n.filter(f=>!(t.compact&&f.wide))),a=x(()=>Math.max(1,...[...t.metrics.values()].flatMap(f=>f.week.map(m=>m.started))));function o(f){if(!(!f||t.sortBy!==f))return t.sortDir==="asc"?"ascending":"descending"}function s(f){const m=t.usedBy.get(f.id)??[];if(!m.length)return null;const g=`Used by ${m.length===1?m[0].title:`${m.length} agents`}`;return W0(f,m)?`Subagent only · ${g}`:g}function i(f){const m=nc(f.definition_diagnostics);return m.length?m.map(G0).join(" "):null}function d(f){if(!f)return;const m=[`${f.runs7d} runs, ${f.failedRuns7d} failed`];return f.inputTokens7d+f.outputTokens7d>0&&m.push(`${f.inputTokens7d.toLocaleString()} input and ${f.outputTokens7d.toLocaleString()} output tokens`),f.avgRunSeconds!==null&&m.push(`Average run ${Math.round(f.avgRunSeconds)}s`),f.costWithSubagents7d-f.cost7d>=5e-4&&m.push(`${_t(f.costWithSubagents7d)} including subagents`),m.join(`
|
|
6
|
-
`)}function p(f){return f?.avgCostPerThread!=null?_t(f.avgCostPerThread):"–"}return(f,m)=>(l(),c("table",{class:J(["w-full table-fixed border-collapse text-[13px]",e.compact?"min-w-[720px]":"min-w-[920px]"])},[u("thead",null,[u("tr",ek,[(l(!0),c(te,null,Ie(r.value,g=>(l(),c("th",{key:g.label,scope:"col",class:J(["h-9 whitespace-nowrap px-3 font-medium first:pl-0",g.class]),"aria-sort":o(g.key)},[g.key?(l(),c("button",{key:0,type:"button",class:"inline-flex items-center gap-1 hover:text-neutral-800 dark:hover:text-neutral-200",onClick:v=>f.$emit("sort",g.key)},[Ce(w(g.label)+" ",1),e.sortBy===g.key&&e.sortDir==="asc"?(l(),K(h(jm),{key:0,class:"h-3 w-3"})):e.sortBy===g.key?(l(),K(h(Al),{key:1,class:"h-3 w-3"})):(l(),K(h(qm),{key:2,class:"h-3 w-3 opacity-40"}))],8,nk)):(l(),c(te,{key:1},[Ce(w(g.label),1)],64))],10,tk))),128)),e.packaging?(l(),c("th",rk,[...m[1]||(m[1]=[u("span",{class:"sr-only"},"Actions",-1)])])):M("",!0)])]),u("tbody",null,[(l(!0),c(te,null,Ie(e.agents,g=>(l(),c("tr",{key:g.id,"data-agent-id":g.id,class:"agents-surface-hover ui-border-subtle h-[56px] cursor-pointer border-b",onClick:v=>f.$emit("select",g.id)},[u("td",ok,[u("div",sk,[j(Mn,{icon:g.icon,seed:g.id,class:"h-9 w-9 shrink-0 rounded-lg object-cover"},null,8,["icon","seed"]),u("div",lk,[u("div",ik,[j(Qx,{agent:g},ar({default:be(()=>[u("button",{type:"button",class:"truncate rounded text-left font-medium text-neutral-900 focus-visible:outline-2 focus-visible:outline-offset-2 dark:text-neutral-100",onClick:Je(v=>f.$emit("select",g.id),["stop"])},w(g.title),9,uk)]),_:2},[e.compact?{name:"details",fn:be(()=>[m[2]||(m[2]=u("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Avg / thread",-1)),u("dd",dk,w(p(e.metrics.get(g.id))),1),m[3]||(m[3]=u("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Models",-1)),u("dd",ck,[j(Ux,{models:e.models.get(g.id)??[],"last-model":e.metrics.get(g.id)?.lastModel??null},null,8,["models","last-model"])])]),key:"0"}:void 0]),1032,["agent"]),g.packed?(l(),K(h(qs),{key:0,class:"h-3.5 w-3.5 shrink-0 text-neutral-400","aria-label":`Packed agent from ${g.packageId}`},null,8,["aria-label"])):M("",!0),i(g)?(l(),K(Jn,{key:1,content:i(g),position:"bottom",wide:""},{default:be(()=>[u("span",{class:"inline-flex shrink-0",role:"img","aria-label":i(g)},[j(h(oo),{class:"h-3.5 w-3.5 text-amber-600 dark:text-amber-400","aria-hidden":"true"})],8,fk)]),_:2},1032,["content"])):M("",!0)]),s(g)?(l(),c("div",{key:0,class:"mt-0.5 truncate text-[12px] text-neutral-500 dark:text-neutral-400",title:`Used by ${e.usedBy.get(g.id)?.map(v=>v.title).join(", ")}`},w(s(g)),9,pk)):M("",!0)])])]),u("td",hk,[e.hasOverview?(l(),K(Cx,{key:0,week:e.metrics.get(g.id)?.week??e.idleWeek,max:a.value},null,8,["week","max"])):M("",!0)]),u("td",mk,[(e.metrics.get(g.id)?.running??0)>0?(l(),c("span",gk,[j(Nr),Ce(" "+w(e.metrics.get(g.id)?.running)+" running ",1)])):e.metrics.get(g.id)?.lastActiveAt?(l(),c(te,{key:1},[Ce(w(h(tc)(e.metrics.get(g.id)?.lastActiveAt??null,e.nowSeconds)),1)],64)):e.hasOverview?(l(),c("span",{key:2,class:J(Zr)},"Never")):M("",!0)]),u("td",{class:J(["px-3 text-right tabular-nums",(e.metrics.get(g.id)?.threads7d??0)>0?su:Zr])},w(e.hasOverview?e.metrics.get(g.id)?.threads7d??0:""),3),u("td",{class:J(["whitespace-nowrap px-3 text-right tabular-nums",(e.metrics.get(g.id)?.failed7d??0)>0?"text-red-600 dark:text-red-400":Zr])},[e.hasOverview&&(e.metrics.get(g.id)?.failed7d??0)>0?(l(),c(te,{key:0},[Ce(w(e.metrics.get(g.id)?.failed7d),1),u("span",{class:J(Zr)}," · "+w(Math.round((e.metrics.get(g.id)?.failedRate??0)*100))+"%",1)],64)):e.hasOverview?(l(),c(te,{key:1},[Ce("0")],64)):M("",!0)],2),u("td",{class:J(["whitespace-nowrap px-3 text-right tabular-nums",(e.metrics.get(g.id)?.cost7d??0)>0?su:Zr]),title:d(e.metrics.get(g.id))},w(e.hasOverview?h(_t)(e.metrics.get(g.id)?.cost7d??0):""),11,vk),e.compact?M("",!0):(l(),c("td",yk,w(e.hasOverview?p(e.metrics.get(g.id)):""),1)),e.compact?M("",!0):(l(),c("td",bk,[j(Dx,{models:e.models.get(g.id)??[],"last-model":e.metrics.get(g.id)?.lastModel??null},null,8,["models","last-model"])])),e.packaging?(l(),c("td",{key:2,class:"pl-1",onClick:m[0]||(m[0]=Je(()=>{},["stop"]))},[j(yx,{agent:g,onPack:v=>f.$emit("pack",g),onUnpack:v=>f.$emit("unpack",g),onPublish:v=>f.$emit("publish",g)},null,8,["agent","onPack","onUnpack","onPublish"])])):M("",!0)],8,ak))),128))])],2))}});function kk(e){const t=Kn.prompts,n=Kn.models,r=x(()=>e.value.some(a=>a.side_a_agent_prompt||a.side_b_agent_prompt));return ve(r,a=>{a&&(t.ensureLoaded(),n.ensureLoaded())},{immediate:!0}),x(()=>{const a=new Map(t.items.value.map(i=>[i.name,i])),o=new Map(n.items.value.map(i=>[i.name,i])),s=i=>{const d=a.get(i);if(!d)return null;const p=o.get(d.model_name),f=p?.provider??d.model_provider??null,m=p?.model??null;return{name:d.model_name,modelId:m,provider:f,icon:p?.iconId??(f?He(`/api/providers/${encodeURIComponent(f)}/icon${m?`?model=${encodeURIComponent(m)}`:""}`):null)}};return new Map(e.value.map(i=>{const d=new Set,p=[i.side_a_agent_prompt,i.side_b_agent_prompt].map(f=>f?s(f):null).filter(f=>!f||d.has(f.name)?!1:(d.add(f.name),!0));return[i.id,p]}))})}const wk={class:"overflow-x-auto"},_k={key:0,class:"py-5 text-[13px] text-neutral-500 dark:text-neutral-400"},$k={key:1,class:"flex max-w-5xl flex-col gap-5 py-6"},Ik={id:"agents-empty-heading",class:"text-sm font-medium text-neutral-900 dark:text-neutral-100"},Sk={class:"mt-1 text-sm text-neutral-500 dark:text-neutral-400"},Ck=we({__name:"AgentsListPage",props:{agents:{},allAgents:{},loading:{type:Boolean},agentsKnown:{type:Boolean},overview:{},metrics:{},nowSeconds:{},typeFilter:{},filterTabs:{},sortBy:{},sortDir:{},packaging:{type:Boolean}},emits:["update:typeFilter","sort","select","pack","unpack","publish"],setup(e){const t=e,n=R(null),{width:r}=Ur(n),a=x(()=>r.value>0&&r.value<1040),o=kk(xt(t,"allAgents")),s=x(()=>J0(t.allAgents)),i=x(()=>t.overview?X0(t.overview,t.nowSeconds):[]),d=x(()=>Y0({loading:t.loading,known:t.agentsKnown,total:t.allAgents.length,shown:t.agents.length})),p=Z0("agents"),f=x(()=>t.loading?t.filterTabs.map(m=>({...m,count:null})):t.filterTabs);return(m,g)=>(l(),K(Fm,null,{default:be(()=>[j(wc,{title:"Agents",count:e.loading?null:e.allAgents.length,description:"Agents defined in your codebase. Open an agent to see its threads and structure."},null,8,["count"]),u("section",{ref_key:"tableSection",ref:n,class:"flex min-w-0 flex-col pt-2","aria-label":"Agents"},[j(rc,{class:"ui-border border-b",label:"Type",variant:"underline",options:f.value,"model-value":e.typeFilter,"onUpdate:modelValue":g[0]||(g[0]=v=>m.$emit("update:typeFilter",v))},null,8,["options","model-value"]),u("div",wk,[d.value==="loading"?(l(),c("p",_k,"Loading agents…")):d.value==="project"?(l(),c("div",$k,[u("div",null,[u("h2",Ik,w(h(p).message),1),u("p",Sk,w(h(p).description),1)]),j(ff,{class:"rounded-2xl bg-black/[0.03] p-3 dark:bg-white/[0.04]","labelled-by":"agents-empty-heading"}),j(h(_c),{class:"self-start",docs:h(p).docs},null,8,["docs"])])):d.value==="filter"?(l(),K(h(Hm),{key:2,align:"start",message:h(Do).filtered.agents},null,8,["message"])):(l(),K(xk,{key:3,agents:e.agents,metrics:e.metrics,models:h(o),"used-by":s.value,"now-seconds":e.nowSeconds,"has-overview":!!e.overview,"idle-week":i.value,compact:a.value,"sort-by":e.sortBy,"sort-dir":e.sortDir,packaging:e.packaging,onSort:g[1]||(g[1]=v=>m.$emit("sort",v)),onSelect:g[2]||(g[2]=v=>m.$emit("select",v)),onPack:g[3]||(g[3]=v=>m.$emit("pack",v)),onUnpack:g[4]||(g[4]=v=>m.$emit("unpack",v)),onPublish:g[5]||(g[5]=v=>m.$emit("publish",v))},null,8,["agents","metrics","models","used-by","now-seconds","has-overview","idle-week","compact","sort-by","sort-dir","packaging"]))])],512)]),_:1}))}}),Tk={class:"flex min-w-0 items-center gap-1 text-[13px]","aria-label":"Agent"},Mk=["aria-expanded"],Ak={class:"truncate"},Lk=["aria-selected","onClick"],Rk=["title","aria-pressed"],Ek={class:"hidden font-sans text-[11px] text-neutral-400 lg:inline"},lu=40,Pk="inline-flex h-8 items-center gap-1.5 rounded-md px-2 text-[12px] text-neutral-600 transition-colors hover:bg-black/5 hover:text-neutral-900 dark:text-neutral-300 dark:hover:bg-white/10 dark:hover:text-white",Nk=we({__name:"AgentPageBar",props:{mode:{},agent:{},agentId:{},agents:{},agentMissing:{type:Boolean},inspectorOpen:{type:Boolean}},emits:["setMode","selectAgent","selectAll","toggleInspector"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>n.agent?.title||n.agentId||"All agents"),o=Er("j"),s=ac(),i=x(()=>({pinnedIds:s.pinnedIds.value,canPinMore:s.canPinMore(),error:s.error.value})),d=R(!1),p=R(null),f=R(null),m=R(0);Ia(p,()=>{d.value=!1});function g(){const A=p.value?.getBoundingClientRect().top??0;m.value=th(A+lu,window.innerHeight)}function v(){d.value||g(),d.value=!d.value}Yn(window,"resize",()=>{d.value&&g()});function _(){d.value=!1,f.value?.focus()}function b(A){d.value=!1,r("selectAgent",A)}function C(){d.value=!1,r("selectAll")}const y=[{value:"threads",label:"Threads"},{value:"structure",label:"Structure"}];return(A,L)=>(l(),K(Wm,null,ar({left:be(()=>[u("nav",Tk,[u("button",{type:"button",class:"shrink-0 rounded px-1.5 py-1 text-neutral-500 transition-colors hover:bg-black/5 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/10 dark:hover:text-white",onClick:L[0]||(L[0]=k=>r("setMode","catalog"))}," Agents "),L[2]||(L[2]=u("span",{class:"text-neutral-300 dark:text-neutral-600"},"/",-1)),u("div",{ref_key:"switcherRef",ref:p,class:"relative min-w-0"},[u("button",{ref_key:"switcherButtonRef",ref:f,type:"button",class:"flex min-w-0 items-center gap-2 rounded-md px-1.5 py-1 font-medium text-neutral-900 transition-colors hover:bg-black/5 dark:text-neutral-50 dark:hover:bg-white/10","aria-expanded":d.value,"aria-haspopup":"listbox",onClick:v},[e.agentId?(l(),K(Mn,{key:0,icon:e.agent?.icon,seed:e.agentId,class:"h-5 w-5 shrink-0 rounded"},null,8,["icon","seed"])):(l(),K(h(eh),{key:1,class:"h-4 w-4 shrink-0 text-neutral-500 dark:text-neutral-400","aria-hidden":"true"})),u("span",Ak,w(a.value),1),e.agentMissing?(l(),K(Wn,{key:2})):M("",!0),j(h(Al),{class:"h-3.5 w-3.5 shrink-0 text-neutral-400"})],8,Mk),d.value?(l(),K(oc,{key:0,class:"absolute left-0 z-50",style:nt({top:`${lu}px`}),agents:e.agents,"max-height":m.value,"selected-id":e.agentId,pins:i.value,"all-option":"",onPick:b,onPickAll:C,onTogglePin:h(s).togglePin,onClose:_},null,8,["style","agents","max-height","selected-id","pins","onTogglePin"])):M("",!0)],512)])]),actions:be(()=>[e.mode==="threads"?(l(),c("button",{key:0,type:"button",class:J([Pk,e.inspectorOpen?"bg-black/5 text-neutral-900 dark:bg-white/10 dark:text-white":""]),title:`Inspector: logs, files, KV, effects, settings (${h(o)})`,"aria-pressed":e.inspectorOpen,onClick:L[1]||(L[1]=k=>r("toggleInspector"))},[j(h(Q0),{class:"h-4 w-4"}),L[3]||(L[3]=u("span",{class:"hidden lg:inline"},"Inspector",-1)),u("kbd",Ek,w(h(o)),1)],10,Rk)):M("",!0),gt(A.$slots,"thread-actions")]),_:2},[e.agentId!==null?{name:"center",fn:be(()=>[u("div",{class:J(h(kl)),role:"tablist","aria-label":"Agent view"},[(l(),c(te,null,Ie(y,k=>u("button",{key:k.value,type:"button",role:"tab","aria-selected":e.mode===k.value,class:J([h(Os),e.mode===k.value?[h(so),h(lo)]:h(io)]),onClick:S=>r("setMode",k.value)},w(k.label),11,Lk)),64))],2)]),key:"0"}:void 0]),1024))}}),mf=we({__name:"ExtractCopyToggle",props:{value:{},disabled:{type:Boolean}},emits:["update:value"],setup(e,{emit:t}){const n=t,r=a=>{a!=="extract"&&a!=="copy"||n("update:value",a)};return(a,o)=>{const s=It("FormKit");return l(),K(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:r},null,8,["value","disabled"])}}}),Vl=e=>[{type:"agent",items:e.constituents.agents},{type:"prompt",items:e.constituents.prompts},{type:"tool",items:e.constituents.tools},{type:"model",items:e.constituents.models},{type:"hook",items:e.constituents.hooks},{type:"handler",items:e.constituents.handlers}];function Ok(e){const t=new Map;for(const{type:n,items:r}of Vl(e))for(const a of r){const o=`${n}:${a.name}`;t.has(o)||t.set(o,a.sharedWith.length>0?"copy":"extract")}return t}function Dk(e,t){const n=[],r=new Set;for(const{type:a,items:o}of Vl(t))for(const s of o){const i=`${a}:${s.name}`,d=e.get(i);!d||r.has(i)||(r.add(i),n.push({name:s.name,type:a,filePath:s.filePath,mode:d}))}return n}function Bk(e){const t=[];let n=0;for(const{type:d,items:p}of Vl(e))for(const f of p)t.push({...f,type:d,uid:`${d}:${f.name}:${n++}`});const r=new Map,a=`agent:${e.agent}`;for(const d of t){if(`${d.type}:${d.name}`===a&&!d.parentKey)continue;const p=d.parentKey||a;r.has(p)||r.set(p,[]),r.get(p).push(d)}const o=new Set,s=d=>{const p=`${d.type}:${d.name}`,f=o.has(p);return o.add(p),{name:d.name,type:d.type,filePath:d.filePath,sharedWith:d.sharedWith,discoveredVia:d.discoveredVia,children:f?[]:(r.get(p)||[]).map(s),uid:d.uid,isDuplicate:f}},i=t.find(d=>d.type==="agent"&&d.name===e.agent&&!d.parentKey);return i?s(i):{name:e.agent,type:"agent",filePath:"",sharedWith:[],discoveredVia:"static",children:[],uid:"root",isDuplicate:!1}}const Fk={class:"font-mono text-sm"},jk={class:"flex items-center gap-2 py-1.5"},qk={class:"text-neutral-600 dark:text-neutral-400"},zk={class:"ml-auto"},gf=we({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:ut("div",{class:"ml-4"},e.children.map((t,n)=>ut("div",{class:"relative",key:t.uid},[n<e.children.length-1?ut("div",{class:"absolute left-0 top-0 bottom-0 border-l border-neutral-300 dark:border-neutral-700"}):ut("div",{class:"absolute left-0 top-0 h-3 border-l border-neutral-300 dark:border-neutral-700"}),ut("div",{class:"absolute left-0 top-3 w-4 border-t border-neutral-300 dark:border-neutral-700"}),ut("div",{class:"pl-5"},[ut("div",{class:"flex items-center gap-2 py-1.5"},[ut("span",{class:"text-neutral-600 dark:text-neutral-400"},t.name),ut(Zn,{variant:e.getTypeColor(t.type),size:"sm"},()=>t.type),e.isShared(t)?ut("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:ut("div",{class:"ml-auto"},[ut(mf,{value:e.getSelection(t),disabled:e.isShared(t),"onUpdate:value":r=>e.setSelection(t,r),title:e.isShared(t)?"Cannot extract items shared with other agents":""})])]),t.children.length>0?ut(gf,{children:t.children,getSelection:e.getSelection,setSelection:e.setSelection,isShared:e.isShared,getTypeColor:e.getTypeColor}):null])])))}}),Vk=we({__name:"DependencyTree",props:{analysis:{},selections:{}},emits:["update:selection"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>Bk(n.analysis)),o=f=>`${f.type}:${f.name}`,s=f=>n.selections.get(o(f))||"extract",i=(f,m)=>{r("update:selection",o(f),m)},d=f=>f.sharedWith.length>0,p=f=>{switch(f){case"agent":return"accent";case"prompt":return"secondary";case"tool":return"success";case"model":return"warning";case"hook":return"default";case"handler":return"primary"}};return(f,m)=>(l(),c("div",Fk,[u("div",jk,[u("span",qk,w(a.value.name),1),j(h(Zn),{variant:p(a.value.type),size:"sm"},{default:be(()=>[Ce(w(a.value.type),1)]),_:1},8,["variant"]),u("div",zk,[j(mf,{value:s(a.value),"onUpdate:value":m[0]||(m[0]=g=>i(a.value,g))},null,8,["value"])])]),(l(),K(ct(h(gf)),{children:a.value.children,"get-selection":s,"set-selection":i,"is-shared":d,"get-type-color":p},null,8,["children"]))]))}}),Hk={key:0,class:"flex items-center justify-center py-12"},Uk={key:1,class:"py-4"},Kk={key:2,class:"py-4 space-y-4"},Wk={class:"space-y-2"},Gk={class:"text-sm opacity-80"},Jk={class:"text-sm opacity-80"},Xk={class:"space-y-4"},Yk={class:"grid grid-cols-2 gap-4"},Zk={class:"col-span-2"},Qk={class:"col-span-2"},e1={class:"col-span-2"},t1={key:0,class:"mt-3 space-y-3"},n1={class:"flex gap-2 border-b border-neutral-200 dark:border-neutral-700"},r1={key:0},a1=["innerHTML"],o1={class:"space-y-4"},s1={class:"list-disc list-inside space-y-1"},l1={class:"border border-neutral-200 dark:border-neutral-700 rounded-lg p-4 bg-neutral-50 dark:bg-neutral-900/50"},i1={class:"flex justify-between"},u1=we({__name:"PackModal",props:{modelValue:{type:Boolean},agent:{}},emits:["update:modelValue","packed"],setup(e,{emit:t}){go.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"}],r=e,a=t,o=x({get:()=>r.modelValue,set:D=>a("update:modelValue",D)}),s=R(null),i=R(!1),d=R(!1),p=R(null),f=R(null);let m=null;const g=R(""),v=R("1.0.0"),_=R("MIT"),b=R(""),C=R(null),y=R(""),A=R("edit"),L=R(!1),k=x(()=>y.value?go(y.value):""),S=R(new Map);ve(()=>r.modelValue,async D=>{D&&r.agent?await Promise.all([B(),q()]):T()});const T=()=>{$(),s.value=null,p.value=null,f.value=null,S.value=new Map,g.value="",v.value="1.0.0",_.value="MIT",b.value="",y.value="",A.value="edit",L.value=!1,Bt(C)},B=async()=>{if(r.agent){i.value=!0,p.value=null;try{const D=await Be.request(He(`/api/pack/${r.agent.id}/analyze`)),W=await Be.readJson(D);if(s.value=W,W.generatedReadme)y.value=W.generatedReadme;else{const E=H(r.agent?.id||"agent");y.value=N(E,r.agent?.id||"agent",W.agentDescription)}S.value=Ok(W)}catch(D){p.value=Ve(D)}finally{i.value=!1}}},q=async()=>{if(r.agent)try{const D=await Be.request(He(`/api/pack/${r.agent.id}/metadata`)),W=await Be.readJson(D);g.value=W.packageName,v.value=P(W.version),_.value=W.license||"MIT",b.value=W.licenseOwner||""}catch{g.value=H(r.agent?.id||"agent"),v.value="1.0.0",_.value="MIT",b.value=""}},H=D=>`standardagent-${D.toLowerCase().replace(/_/g,"-")}`,N=(D,W,E)=>`# ${D}
|
|
7
|
-
|
|
8
|
-
${E||"A Standard Agent package."}
|
|
9
|
-
|
|
10
|
-
## Installation
|
|
11
|
-
|
|
12
|
-
\`\`\`bash
|
|
13
|
-
npm install ${D}
|
|
14
|
-
\`\`\`
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
|
|
18
|
-
This is a [Standard Agent](https://standardagents.ai) package. To use it:
|
|
19
|
-
|
|
20
|
-
1. Install in your Standard Agents project
|
|
21
|
-
2. The agent will be automatically discovered and available
|
|
22
|
-
|
|
23
|
-
\`\`\`typescript
|
|
24
|
-
// Create a thread with this agent
|
|
25
|
-
const thread = await client.createThread({
|
|
26
|
-
agent_id: '${D}/${W}'
|
|
27
|
-
});
|
|
28
|
-
\`\`\`
|
|
29
|
-
|
|
30
|
-
## License
|
|
31
|
-
|
|
32
|
-
MIT
|
|
33
|
-
`,P=D=>{const W=D.split(".");if(W.length<3)return`${D}.1`;const E=parseInt(W[2],10);return`${W[0]}.${W[1]}.${E+1}`},U=(D,W)=>{S.value.set(D,W),S.value=new Map(S.value)},V=async()=>{if(!(!r.agent||!s.value)){Bt(C),d.value=!0,p.value=null,f.value=null;try{const D=await Be.request(He(`/api/pack/${r.agent.id}`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({itemSelections:Dk(S.value,s.value),packageName:g.value,version:v.value,license:_.value,licenseOwner:b.value,readme:y.value})}),W=await Be.readJson(D);await Kn.invalidateAll(),f.value={success:!0,outputPath:W.outputPath,filesCreated:W.filesCreated,packageId:W.packageId},$(),m=setTimeout(()=>{a("packed",{outputPath:W.outputPath,packageId:W.packageId}),m=null},1500)}catch(D){const W=Ve(D);Rl(D,C)||(p.value=W)}finally{d.value=!1}}},Y=()=>{$(),o.value=!1};function $(){m&&(clearTimeout(m),m=null)}return Hr($),(D,W)=>{const E=It("FormKit");return l(),K(Ll,{modelValue:o.value,"onUpdate:modelValue":W[9]||(W[9]=X=>o.value=X),title:`Pack Agent: ${e.agent?.title||e.agent?.id||""}`,width:"max-w-2xl","min-height":"min-h-[min(20rem,85vh)]"},{footer:be(()=>[u("div",i1,[j(h(Tn),{variant:"ghost",onClick:Y},{default:be(()=>[...W[16]||(W[16]=[Ce(" Cancel ",-1)])]),_:1}),j(h(Tn),{variant:"primary",disabled:i.value||d.value||!s.value||f.value?.success,type:"submit",form:"pack-agent-form"},{default:be(()=>[d.value?(l(),c(te,{key:0},[j(et,{size:"sm",class:"mr-2"}),W[17]||(W[17]=Ce(" Packing... ",-1))],64)):(l(),c(te,{key:1},[Ce(" Pack agent ")],64))]),_:1},8,["disabled"])])]),default:be(()=>[i.value?(l(),c("div",Hk,[j(et)])):p.value&&!s.value?(l(),c("div",Uk,[j(h(Ct),{variant:"error"},{default:be(()=>[Ce(w(h(Ve)(p.value)),1)]),_:1})])):f.value?.success?(l(),c("div",Kk,[j(h(Ct),{variant:"success"},{default:be(()=>[u("div",Wk,[W[10]||(W[10]=u("p",{class:"font-medium"},"Agent packed",-1)),u("p",Gk," Output: "+w(f.value.outputPath),1),u("p",Jk,w(f.value.filesCreated?.length)+" files created ",1)])]),_:1})])):s.value?(l(),K(E,{key:3,type:"form",id:"pack-agent-form",actions:!1,disabled:d.value,onSubmit:V,onNode:W[8]||(W[8]=X=>C.value=X),"form-class":"$reset space-y-6"},{default:be(()=>[j(h(Sa),{node:C.value||void 0},null,8,["node"]),u("div",Xk,[W[12]||(W[12]=u("h3",{class:"text-sm font-medium text-neutral-700 dark:text-neutral-300"}," Package details ",-1)),u("div",Yk,[u("div",Zk,[j(E,{type:"text",name:"packageName",modelValue:g.value,"onUpdate:modelValue":W[0]||(W[0]=X=>g.value=X),label:"Package name",help:"npm package name (lowercase, no spaces)",placeholder:"standardagent-my-agent",validation:"required|npmPackageName","validation-visibility":"submit"},null,8,["modelValue"])]),j(E,{type:"text",name:"version",modelValue:v.value,"onUpdate:modelValue":W[1]||(W[1]=X=>v.value=X),label:"Version",help:"Semver format (X.Y.Z)",placeholder:"1.0.0",validation:"required|semverVersion","validation-visibility":"submit"},null,8,["modelValue"]),j(E,{type:"selectSearch",name:"license",modelValue:_.value,"onUpdate:modelValue":W[2]||(W[2]=X=>_.value=X),label:"License",options:n,clearable:!1},null,8,["modelValue"]),u("div",Qk,[j(E,{type:"text",name:"licenseOwner",modelValue:b.value,"onUpdate:modelValue":W[3]||(W[3]=X=>b.value=X),label:"License owner",help:"Copyright holder name (e.g., your name or company)",placeholder:"Your Name or Company"},null,8,["modelValue"])]),u("div",e1,[u("button",{type:"button",class:"flex items-center gap-2 text-sm font-medium text-neutral-700 dark:text-neutral-300 hover:text-neutral-900 dark:hover:text-neutral-100",onClick:W[4]||(W[4]=X=>L.value=!L.value)},[(l(),K(ct(L.value?h(Tl):h(Et)),{class:"w-4 h-4"})),W[11]||(W[11]=Ce(" README ",-1))]),L.value?(l(),c("div",t1,[u("div",n1,[u("button",{type:"button",class:J(["px-3 py-1.5 text-sm font-medium border-b-2 -mb-px transition-colors",A.value==="edit"?"border-primary-500 text-primary-600 dark:text-primary-400":"border-transparent text-neutral-500 hover:text-neutral-700 dark:hover:text-neutral-300"]),onClick:W[5]||(W[5]=X=>A.value="edit")}," Edit ",2),u("button",{type:"button",class:J(["px-3 py-1.5 text-sm font-medium border-b-2 -mb-px transition-colors",A.value==="preview"?"border-primary-500 text-primary-600 dark:text-primary-400":"border-transparent text-neutral-500 hover:text-neutral-700 dark:hover:text-neutral-300"]),onClick:W[6]||(W[6]=X=>A.value="preview")}," Preview ",2)]),A.value==="edit"?(l(),c("div",r1,[j(E,{type:"textarea",name:"readme",modelValue:y.value,"onUpdate:modelValue":W[7]||(W[7]=X=>y.value=X),rows:10,"outer-class":"$reset mb-0",placeholder:`# Package Name
|
|
34
|
-
|
|
35
|
-
Description...`},null,8,["modelValue"])])):(l(),c("div",{key:1,class:"prose prose-sm dark:prose-invert max-w-none p-4 rounded-md border border-neutral-200 dark:border-neutral-700 bg-white dark:bg-neutral-800 min-h-[200px] max-h-[400px] overflow-y-auto",innerHTML:k.value},null,8,a1))])):M("",!0)])])]),W[15]||(W[15]=u("hr",{class:"border-neutral-200 dark:border-neutral-700"},null,-1)),u("div",o1,[W[14]||(W[14]=u("h3",{class:"text-sm font-medium text-neutral-700 dark:text-neutral-300"}," Items to Include ",-1)),j(h(Ct),{variant:"info"},{default:be(()=>[...W[13]||(W[13]=[u("div",{class:"space-y-1"},[u("p",null,[u("strong",null,"Extract"),Ce(": Moves the file into the package and removes it from your workspace. Use this for items only used by this agent. ")]),u("p",null,[u("strong",null,"Copy"),Ce(": Copies the file into the package but keeps the original. Required for items shared with other agents. ")])],-1)])]),_:1}),p.value?(l(),K(h(Ct),{key:0,variant:"error"},{default:be(()=>[Ce(w(h(Ve)(p.value)),1)]),_:1})):M("",!0),s.value.warnings.length>0?(l(),K(h(Ct),{key:1,variant:"warning"},{default:be(()=>[u("ul",s1,[(l(!0),c(te,null,Ie(s.value.warnings,X=>(l(),c("li",{key:X},w(X),1))),128))])]),_:1})):M("",!0),u("div",l1,[j(Vk,{analysis:s.value,selections:S.value,"onUpdate:selection":U},null,8,["analysis","selections"])])])]),_:1},8,["disabled"])):M("",!0)]),_:1},8,["modelValue","title"])}}});function d1(e){const t=e.items.map((d,p)=>({...d,uid:`${d.type}:${d.name}:${p}`})),n=new Map,r=[];for(const d of t)d.parentKey?(n.has(d.parentKey)||n.set(d.parentKey,[]),n.get(d.parentKey).push(d)):r.push(d);const a=new Set,o=d=>{const p=`${d.type}:${d.name}`,f=a.has(p);return a.add(p),{name:d.name,type:d.type,existsGlobally:d.existsGlobally,action:d.action,children:f?[]:(n.get(p)||[]).map(o),uid:d.uid,isDuplicate:f}},s=new Set(t.filter(d=>d.parentKey).map(d=>`${d.type}:${d.name}`)),i=r.filter(d=>d.type==="agent"||!s.has(`${d.type}:${d.name}`)).map(o);return i.length>0?i:r.map(o)}const c1={class:"font-mono text-sm"},f1={class:"mb-3 text-xs text-neutral-500 dark:text-neutral-400"},p1={class:"flex items-center gap-2 py-1.5"},h1={class:"text-neutral-600 dark:text-neutral-400"},m1={key:0,class:"ml-auto text-xs text-amber-600 dark:text-amber-400"},g1={key:1,class:"ml-auto text-xs text-emerald-600 dark:text-emerald-400"},v1={key:0,class:"text-center py-8 text-neutral-500 dark:text-neutral-400"},vf=we({name:"TreeChildren",props:{children:{type:Array,required:!0},getTypeColor:{type:Function,required:!0}},setup(e){return()=>e.children.length===0?null:ut("div",{class:"ml-4"},e.children.map((t,n)=>ut("div",{class:"relative",key:t.uid},[n<e.children.length-1?ut("div",{class:"absolute left-0 top-0 bottom-0 border-l border-neutral-300 dark:border-neutral-700"}):ut("div",{class:"absolute left-0 top-0 h-3 border-l border-neutral-300 dark:border-neutral-700"}),ut("div",{class:"absolute left-0 top-3 w-4 border-t border-neutral-300 dark:border-neutral-700"}),ut("div",{class:"pl-5"},[ut("div",{class:"flex items-center gap-2 py-1.5"},[ut("span",{class:"text-neutral-600 dark:text-neutral-400"},t.name),ut(Zn,{variant:e.getTypeColor(t.type),size:"sm"},()=>t.type),t.isDuplicate?null:t.existsGlobally?ut("span",{class:"ml-auto text-xs text-amber-600 dark:text-amber-400"},"already exists"):ut("span",{class:"ml-auto text-xs text-emerald-600 dark:text-emerald-400"},"will unpack")]),t.children.length>0?ut(vf,{children:t.children,getTypeColor:e.getTypeColor}):null])])))}}),y1=we({__name:"UnpackTree",props:{analysis:{}},setup(e){const t=e,n=x(()=>d1(t.analysis)),r=s=>{switch(s){case"agent":return"accent";case"prompt":return"secondary";case"tool":return"success";case"model":return"warning";case"hook":return"default";case"handler":return"primary";case"effect":return"default";case"thread-endpoint":return"default"}},a=x(()=>{const s=new Set;for(const i of t.analysis.items)s.add(`${i.type}:${i.name}`);return s.size}),o=x(()=>{const s=new Set;let i=0;for(const d of t.analysis.items){const p=`${d.type}:${d.name}`;s.has(p)||(s.add(p),d.existsGlobally||i++)}return i});return(s,i)=>(l(),c("div",c1,[u("div",f1,w(o.value)+" of "+w(a.value)+" items will be unpacked ",1),(l(!0),c(te,null,Ie(n.value,d=>(l(),c("div",{key:d.uid},[u("div",p1,[u("span",h1,w(d.name),1),j(h(Zn),{variant:r(d.type),size:"sm"},{default:be(()=>[Ce(w(d.type),1)]),_:2},1032,["variant"]),d.existsGlobally?(l(),c("span",m1," already exists ")):(l(),c("span",g1," will unpack "))]),(l(),K(ct(h(vf)),{children:d.children,"get-type-color":r},null,8,["children"]))]))),128)),n.value.length===0?(l(),c("div",v1," No items found in this package. ")):M("",!0)]))}}),b1={key:0,class:"flex items-center justify-center py-12"},x1={key:1,class:"py-4"},k1={key:2,class:"py-4"},w1={class:"space-y-2"},_1={class:"text-sm opacity-80"},$1={key:0,class:"text-sm opacity-80"},I1={key:1,class:"text-sm opacity-80"},S1={class:"text-sm text-neutral-600 dark:text-neutral-400"},C1={class:"font-mono"},T1={class:"list-disc list-inside space-y-1"},M1={class:"border border-neutral-200 dark:border-neutral-700 rounded-lg p-4 bg-neutral-50 dark:bg-neutral-900/50 max-h-80 overflow-y-auto"},A1={key:2,class:"flex items-center gap-2"},L1={class:"flex justify-between"},R1=we({__name:"UnpackModal",props:{modelValue:{type:Boolean},agent:{}},emits:["update:modelValue","unpacked"],setup(e,{emit:t}){const n=e,r=t,a=x({get:()=>n.modelValue,set:L=>r("update:modelValue",L)}),o=R(null),s=R(!1),i=R(!1),d=R(null),p=R(null);let f=null;const m=R(!1),g=R(null);ve(()=>n.modelValue,async L=>{L&&n.agent?.packageId?await v():(C(),o.value=null,d.value=null,p.value=null,m.value=!1,Bt(g))});const v=async()=>{if(n.agent?.packageId){s.value=!0,d.value=null;try{const L=await Be.request(He(`/api/unpack/${encodeURIComponent(n.agent.packageId)}/analyze`)),k=await Be.readJson(L);o.value=k}catch(L){d.value=Ve(L)}finally{s.value=!1}}},_=async()=>{if(!(!n.agent?.packageId||!o.value)){i.value=!0,d.value=null,p.value=null,Bt(g);try{const L=o.value.items.filter((T,B,q)=>q.findIndex(H=>H.type===T.type&&H.name===T.name)===B).map(T=>({name:T.name,type:T.type,action:T.existsGlobally?"skip":"generate"})),k=await Be.request(He(`/api/unpack/${encodeURIComponent(n.agent.packageId)}`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({itemSelections:L,deletePackage:m.value})}),S=await Be.readJson(k);await Kn.invalidateAll(),p.value={success:!0,filesGenerated:S.filesGenerated,filesSkipped:S.filesSkipped,packageDeleted:S.packageDeleted},C(),f=setTimeout(()=>{r("unpacked"),f=null},1500)}catch(L){const k=Ve(L);Rl(L,g)||(d.value=k)}finally{i.value=!1}}},b=()=>{C(),Bt(g),a.value=!1};function C(){f&&(clearTimeout(f),f=null)}Hr(C);const y=x(()=>{if(!o.value)return 0;const L=new Set;let k=0;for(const S of o.value.items){const T=`${S.type}:${S.name}`;L.has(T)||(L.add(T),S.existsGlobally||k++)}return k}),A=x(()=>o.value?.source==="local");return(L,k)=>{const S=It("FormKit");return l(),K(Ll,{modelValue:a.value,"onUpdate:modelValue":k[2]||(k[2]=T=>a.value=T),title:`Unpack: ${e.agent?.title||e.agent?.id||""}`,width:"max-w-2xl","min-height":"min-h-[min(20rem,85vh)]"},{footer:be(()=>[u("div",L1,[j(h(Tn),{variant:"ghost",onClick:b},{default:be(()=>[...k[6]||(k[6]=[Ce(" Cancel ",-1)])]),_:1}),j(h(Tn),{variant:"primary",disabled:s.value||i.value||!o.value||p.value?.success||y.value===0,type:"submit",form:"unpack-agent-form"},{default:be(()=>[i.value?(l(),c(te,{key:0},[j(et,{size:"sm",class:"mr-2"}),k[7]||(k[7]=Ce(" Unpacking... ",-1))],64)):(l(),c(te,{key:1},[Ce(" Unpack "+w(y.value)+" "+w(y.value===1?"item":"items"),1)],64))]),_:1},8,["disabled"])])]),default:be(()=>[s.value?(l(),c("div",b1,[j(et)])):d.value&&!o.value?(l(),c("div",x1,[j(h(Ct),{variant:"error"},{default:be(()=>[Ce(w(h(Ve)(d.value)),1)]),_:1})])):p.value?.success?(l(),c("div",k1,[j(h(Ct),{variant:"success"},{default:be(()=>[u("div",w1,[k[3]||(k[3]=u("p",{class:"font-medium"},"Agent unpacked",-1)),u("p",_1,w(p.value.filesGenerated?.length||0)+" files unpacked ",1),(p.value.filesSkipped?.length||0)>0?(l(),c("p",$1,w(p.value.filesSkipped?.length)+" files skipped (already exist) ",1)):M("",!0),p.value.packageDeleted?(l(),c("p",I1," Package was deleted from agents/packed/ ")):M("",!0)])]),_:1})])):o.value?(l(),K(S,{key:3,type:"form",id:"unpack-agent-form",actions:!1,disabled:i.value,onSubmit:_,onNode:k[1]||(k[1]=T=>g.value=T),"form-class":"$reset space-y-4"},{default:be(()=>[j(h(Sa),{node:g.value||void 0},null,8,["node"]),u("div",S1,[u("p",null,[k[4]||(k[4]=Ce("Package: ",-1)),u("span",C1,w(o.value.packageId),1),Ce(" v"+w(o.value.version),1)]),u("p",null,"Source: "+w(o.value.source==="npm"?"npm package":"local (agents/packed/)"),1)]),d.value?(l(),K(h(Ct),{key:0,variant:"error"},{default:be(()=>[Ce(w(h(Ve)(d.value)),1)]),_:1})):M("",!0),o.value.warnings.length>0?(l(),K(h(Ct),{key:1,variant:"warning"},{default:be(()=>[u("ul",T1,[(l(!0),c(te,null,Ie(o.value.warnings,T=>(l(),c("li",{key:T},w(T),1))),128))])]),_:1})):M("",!0),u("div",M1,[j(y1,{analysis:o.value},null,8,["analysis"])]),A.value?(l(),c("div",A1,[j(S,{type:"checkbox",name:"deletePackage",modelValue:m.value,"onUpdate:modelValue":k[0]||(k[0]=T=>m.value=T),label:"Delete package after unpacking","outer-class":"$reset mb-0"},null,8,["modelValue"]),k[5]||(k[5]=u("span",{class:"text-xs text-neutral-500"},"(removes from agents/packed/)",-1))])):M("",!0)]),_:1},8,["disabled"])):M("",!0)]),_:1},8,["modelValue","title"])}}}),E1={key:0,class:"space-y-4"},P1={class:"space-y-2"},N1={class:"font-medium"},O1={key:0,class:"text-sm opacity-80"},D1={key:1,class:"text-sm opacity-70"},B1={key:2,class:"text-sm opacity-70"},F1={key:3,class:"text-sm"},j1={key:4,class:"text-sm"},q1=["href"],z1={key:0,class:"space-y-2"},V1={class:"text-xs bg-neutral-100 dark:bg-neutral-800 p-3 rounded-md overflow-x-auto max-h-40 whitespace-pre-wrap"},H1={class:"space-y-3"},U1={key:0,class:"flex items-center gap-2 text-neutral-500"},K1={key:2,class:"p-4 rounded-lg border border-neutral-200 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-900/50"},W1={class:"flex items-center gap-3 mb-3"},G1={class:"text-lg font-semibold text-neutral-900 dark:text-neutral-100"},J1={key:0,class:"text-sm text-neutral-600 dark:text-neutral-400 mb-3"},X1={key:1,class:"mt-3"},Y1=["innerHTML"],Z1={key:0,class:"border-neutral-200 dark:border-neutral-700"},Q1={key:2,class:"flex items-center gap-2 text-neutral-500"},ew={class:"space-y-2 text-sm"},tw={class:"bg-neutral-200 dark:bg-neutral-700 px-1 rounded"},nw={class:"list-decimal list-inside space-y-1 ml-2"},rw={class:"whitespace-pre-wrap text-sm"},aw={class:"flex justify-between"},ow="https://registry.npmjs.org",sw=we({__name:"PublishModal",props:{modelValue:{type:Boolean},packageId:{},outputPath:{}},emits:["update:modelValue","published"],setup(e,{emit:t}){go.setOptions({gfm:!0,breaks:!0});const n=e,r=t,a=x({get:()=>n.modelValue,set:U=>r("update:modelValue",U)}),o=R(null),s=R(!1),i=R(null),d=R(!1),p=R(null),f=R(!1),m=x(()=>o.value?.readme?go(o.value.readme):""),g=R(""),v=R("standard"),_=R(""),b=x(()=>v.value!=="standard"),C=R(!1),y=R(null),A=R(!1),L=R(null),k=R(null),S=async()=>{s.value=!0,i.value=null;try{const U=await Be.request(He(`/api/pack/${encodeURIComponent(n.packageId)}/packed-info`));o.value=await Be.readJson(U)}catch(U){i.value=Ve(U)}finally{s.value=!1}},T=async()=>{f.value=!0;try{const U=await Be.request(He("/api/pack/npm-token-status"));p.value=await Be.readJson(U)}catch{p.value=null}finally{f.value=!1}};ve(()=>n.modelValue,U=>{U&&(g.value="",v.value="standard",_.value="",C.value=!1,L.value=null,k.value=null,Bt(y),p.value=null,o.value=null,i.value=null,d.value=!1,S(),T())});const B=x(()=>v.value==="npm"?ow:_.value),q=x(()=>{const U=k.value?.url;return U&&U.startsWith("/marketplace/")?U:null}),H=async()=>{Bt(y),A.value=!0,L.value=null,k.value=null;try{const U={dryRun:C.value};v.value==="standard"?U.target="standard-agents":(U.registry=B.value,g.value.trim()&&(U.token=g.value.trim()));const V=await Be.request(He(`/api/pack/${encodeURIComponent(n.packageId)}/publish`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(U)}),Y=await Be.readJson(V);k.value={success:!0,packageName:Y.packageName,version:Y.version,output:Y.output,url:Y.url,tokenSource:Y.tokenSource},C.value||r("published",{packageName:Y.packageName,version:Y.version,url:Y.url})}catch(U){const V=Ve(U),Y=U instanceof Ds&&"output"in U.body?U.body.output:void 0;(U instanceof Ds&&typeof Y=="string"?El({...U.body,error:`${V}
|
|
36
|
-
|
|
37
|
-
${Y}`},y):Rl(U,y))||(L.value=V)}finally{A.value=!1}},N=()=>{Bt(y),a.value=!1},P=()=>C.value?"Dry run completed successfully!":"Package published successfully!";return(U,V)=>{const Y=It("router-link"),$=It("FormKit");return l(),K(Ll,{modelValue:a.value,"onUpdate:modelValue":V[6]||(V[6]=D=>a.value=D),title:"Publish package",width:"max-w-lg","min-height":"min-h-[min(16rem,85vh)]"},{footer:be(()=>[u("div",aw,[j(h(Tn),{variant:"ghost",onClick:N},{default:be(()=>[Ce(w(k.value?.success?"Close":"Cancel"),1)]),_:1}),k.value?.success?M("",!0):(l(),K(h(Tn),{key:0,variant:"primary",disabled:A.value||f.value,type:"submit",form:"publish-package-form"},{default:be(()=>[A.value?(l(),c(te,{key:0},[j(et,{size:"sm",class:"mr-2"}),V[21]||(V[21]=Ce(" Publishing... ",-1))],64)):(l(),c(te,{key:1},[Ce(w(C.value?"Validate":"Publish"),1)],64))]),_:1},8,["disabled"]))])]),default:be(()=>[k.value?.success?(l(),c("div",E1,[j(h(Ct),{variant:C.value?"info":"success"},{default:be(()=>[u("div",P1,[u("p",N1,w(P()),1),k.value.packageName?(l(),c("p",O1," Package: "+w(k.value.packageName)+"@"+w(k.value.version),1)):M("",!0),k.value.tokenSource==="environment"?(l(),c("p",D1," Token: from NPM_TOKEN environment variable ")):k.value.tokenSource==="platform"?(l(),c("p",B1," Signed with this instance's Standard Agents API key ")):M("",!0),q.value&&!C.value?(l(),c("p",F1,[j(Y,{to:q.value,class:"text-primary-600 dark:text-primary-400 hover:underline",onClick:N},{default:be(()=>[...V[7]||(V[7]=[Ce(" View in Marketplace ",-1)])]),_:1},8,["to"])])):k.value.url&&!C.value?(l(),c("p",j1,[u("a",{href:k.value.url,target:"_blank",rel:"noopener noreferrer",class:"text-primary-600 dark:text-primary-400 hover:underline"}," View on npm ",8,q1)])):M("",!0)])]),_:1},8,["variant"]),k.value.output?(l(),c("div",z1,[V[8]||(V[8]=u("p",{class:"text-sm font-medium text-neutral-700 dark:text-neutral-300"},"Output:",-1)),u("pre",V1,w(k.value.output),1)])):M("",!0)])):(l(),K($,{key:1,type:"form",id:"publish-package-form",actions:!1,disabled:A.value,onSubmit:H,onNode:V[5]||(V[5]=D=>y.value=D),"form-class":"$reset space-y-4"},{default:be(()=>[j(h(Sa),{node:y.value||void 0},null,8,["node"]),u("div",H1,[s.value?(l(),c("div",U1,[j(et,{size:"sm"}),V[9]||(V[9]=u("span",{class:"text-sm"},"Loading package info...",-1))])):i.value?(l(),K(h(Ct),{key:1,variant:"error"},{default:be(()=>[Ce(w(h(Ve)(i.value)),1)]),_:1})):o.value?(l(),c("div",K1,[u("div",W1,[u("h3",G1,w(o.value.packageName),1),j(h(Zn),{variant:"secondary"},{default:be(()=>[Ce("v"+w(o.value.version),1)]),_:1}),o.value.license?(l(),K(h(Zn),{key:0,variant:"default"},{default:be(()=>[Ce(w(o.value.license),1)]),_:1})):M("",!0)]),o.value.author?(l(),c("p",J1," by "+w(o.value.author),1)):M("",!0),o.value.readme?(l(),c("div",X1,[u("button",{type:"button",class:"flex items-center gap-2 text-sm font-medium text-neutral-600 dark:text-neutral-400 hover:text-neutral-800 dark:hover:text-neutral-200",onClick:V[0]||(V[0]=D=>d.value=!d.value)},[(l(),K(ct(d.value?h(Tl):h(Et)),{class:"w-4 h-4"})),V[10]||(V[10]=Ce(" README ",-1))]),d.value?(l(),c("div",{key:0,class:"mt-2 prose prose-sm dark:prose-invert max-w-none p-3 rounded-md border border-neutral-200 dark:border-neutral-700 bg-white dark:bg-neutral-800 max-h-[200px] overflow-y-auto",innerHTML:m.value},null,8,Y1)):M("",!0)])):M("",!0)])):M("",!0)]),o.value?(l(),c("hr",Z1)):M("",!0),j($,{type:"radio",name:"registryType",modelValue:v.value,"onUpdate:modelValue":V[1]||(V[1]=D=>v.value=D),label:"Publish to",options:[{value:"standard",label:"Standard Agents Marketplace (@agents)"},{value:"npm",label:"npm (registry.npmjs.org)"},{value:"custom",label:"Custom registry"}]},null,8,["modelValue"]),b.value?M("",!0):(l(),K(h(Ct),{key:1,variant:"info"},{default:be(()=>[...V[11]||(V[11]=[u("p",{class:"text-sm"},[Ce(" Publishes with this instance's "),u("strong",null,"Standard Agents API key"),Ce(" — no npm token needed. Public packages require a description and an icon ("),u("code",{class:"bg-neutral-200 dark:bg-neutral-700 px-1 rounded"},"icon.svg"),Ce(" / "),u("code",{class:"bg-neutral-200 dark:bg-neutral-700 px-1 rounded"},"icon.png"),Ce(" in the package, or an "),u("code",{class:"bg-neutral-200 dark:bg-neutral-700 px-1 rounded"},"icon"),Ce(" field in package.json) and appear in every instance's Marketplace. ")],-1)])]),_:1})),b.value&&f.value?(l(),c("div",Q1,[j(et,{size:"sm"}),V[12]||(V[12]=u("span",{class:"text-sm"},"Checking npm token configuration...",-1))])):b.value&&p.value?.hasToken?(l(),K(h(Ct),{key:3,variant:"success"},{default:be(()=>[...V[13]||(V[13]=[u("p",{class:"text-sm"},[u("strong",null,"NPM_TOKEN found"),Ce(" in your environment. Your token will be used automatically. ")],-1)])]),_:1})):b.value&&p.value&&!p.value.hasToken?(l(),K(h(Ct),{key:4,variant:"warning"},{default:be(()=>[u("div",ew,[V[19]||(V[19]=u("p",null,[u("strong",null,"No NPM_TOKEN configured.")],-1)),u("p",null,[V[14]||(V[14]=Ce("To publish packages, create an npm token and add it to your ",-1)),u("code",tw,w(p.value.envFile),1),V[15]||(V[15]=Ce(" file:",-1))]),u("ol",nw,[V[17]||(V[17]=u("li",null,[Ce("Run: "),u("code",{class:"bg-neutral-200 dark:bg-neutral-700 px-1 rounded"},"npm token create")],-1)),u("li",null,[Ce("Add to "+w(p.value.envFile)+": ",1),V[16]||(V[16]=u("code",{class:"bg-neutral-200 dark:bg-neutral-700 px-1 rounded"},"NPM_TOKEN=npm_xxxxx",-1))]),V[18]||(V[18]=u("li",null,"Restart the dev server",-1))]),V[20]||(V[20]=u("p",{class:"pt-2"},"Or enter a token below for this session only:",-1))])]),_:1})):M("",!0),L.value?(l(),K(h(Ct),{key:5,variant:"error"},{default:be(()=>[u("pre",rw,w(h(Ve)(L.value)),1)]),_:1})):M("",!0),b.value&&!p.value?.hasToken&&!f.value?(l(),K($,{key:6,type:"password",name:"token",modelValue:g.value,"onUpdate:modelValue":V[2]||(V[2]=D=>g.value=D),label:"npm Token",help:"Create a token at npmjs.com/settings/tokens",placeholder:"npm_xxxxxxxxxxxx",autocomplete:"off",validation:"required|apiKey","validation-visibility":"submit","validation-messages":{required:"npm token is required"}},null,8,["modelValue"])):M("",!0),v.value==="custom"?(l(),K($,{key:7,type:"url",name:"customRegistry",modelValue:_.value,"onUpdate:modelValue":V[3]||(V[3]=D=>_.value=D),label:"Custom registry URL",placeholder:"https://registry.example.com",validation:"required|httpsUrl","validation-visibility":"submit","validation-messages":{required:"Registry URL is required"}},null,8,["modelValue"])):M("",!0),j($,{type:"checkbox",name:"dryRun",modelValue:C.value,"onUpdate:modelValue":V[4]||(V[4]=D=>C.value=D),label:"Dry run (validate without publishing)"},null,8,["modelValue"])]),_:1},8,["disabled"]))]),_:1},8,["modelValue"])}}}),ja=24;function lw(e,t){return e.width+ja*2<=t.width&&e.height+ja*2<=t.height?{x:(t.width-e.width)/2-e.x,y:(t.height-e.height)/2-e.y,scale:1}:{x:ja-e.x,y:ja-e.y,scale:1}}const ua=1e-4;function Qa(e,t,n="round"){const r=e*100,a=n==="floor"?Math.floor(r+ua):Math.round(r),o=Math.ceil(t.min*100-ua),s=Math.floor(t.max*100+ua);return Math.min(s,Math.max(o,a))/100}const iu=10;function iw(e,t,n){const r=e*100/iu,a=t>0?Math.floor(r+ua)+1:Math.ceil(r-ua)-1;return Qa(a*iu/100,n)}function uu(e,t,n){const r=n>0?n:1;return Math.round((t+e)*r)/r-t}function uw(e,t,n){return{x:uu(e.x,t.x,n),y:uu(e.y,t.y,n),scale:Math.round(e.scale*100)/100}}const du=.5,dw=.001;function cu(e,t){return t&&Math.abs(e.x-t.x)<=du&&Math.abs(e.y-t.y)<=du&&Math.abs(e.scale-t.scale)<=dw?"actual":"fit"}function cw(e,t,n){const r=Math.max(1,t.width),a=Math.max(1,t.height),o=Math.min(Math.max(1,r-n*2)/Math.max(1,e.width),Math.max(1,a-n*2)/Math.max(1,e.height)),s=r/o,i=a/o;return{x:e.x+e.width/2-s/2,y:e.y+e.height/2-i/2,width:s,height:i}}function fw(e,t){const n=Math.min(t.width/e.width,t.height/e.height);return{scale:n,width:e.width*n,height:e.height*n}}function pw(e,t){return{x:-e.x/e.scale,y:-e.y/e.scale,width:t.width/e.scale,height:t.height/e.scale}}function hw(e,t,n){return{x:t.x+e.x/n.scale,y:t.y+e.y/n.scale}}function yf(e,t,n){return{x:n.width/2-e.x*t,y:n.height/2-e.y*t,scale:t}}const mw=.2;function gw(e,t,n,r=mw){const a=(i,d)=>{const p=d*r;return i<p?p-i:i>d-p?d-p-i:0},o=a(t.x*e.scale+e.x,n.width),s=a(t.y*e.scale+e.y,n.height);return o===0&&s===0?null:{x:e.x+o,y:e.y+s,scale:e.scale}}const qa=6,vw=250,yw=150;function bw(e,t={}){const{minScale:n=.1,maxScale:r=2.5,padding:a=80,panPadding:o=a}=t,s={min:n,max:r},i=R({x:0,y:0,scale:1}),d=R(!1),p=R(!1),f={x:0,y:0,viewX:0,viewY:0},m={x:0,y:0,time:0};let g=null,v=!1,_=0,b=null,C=null,y=null,A=null,L=!1,k=!1,S=null;function T(){L=!0,k=!0}const B=x(()=>{const{x:F,y:ce,scale:he}=i.value;return p.value?{transform:`translate3d(${F}px, ${ce}px, 0) scale(${he})`,zoom:1,transformOrigin:"0 0",willChange:"transform"}:{transform:`translate(${F/he}px, ${ce/he}px)`,zoom:he,transformOrigin:"0 0",willChange:"auto"}}),q=x(()=>Math.round(i.value.scale*100));function H(F){return Math.min(r,Math.max(n,F))}function N(F,ce,he){return Math.min(he,Math.max(ce,F))}function P(F){const ce=H(F.scale),he=e.value,Pe=S;if(!he||!Pe||Pe.width<=0||Pe.height<=0)return{...F,scale:ce};const We=he.getBoundingClientRect();if(We.width<=0||We.height<=0)return{...F,scale:ce};const Ue=Math.max(0,o)/ce,Se=Math.max(0,o)/ce,ge=(We.width/2-F.x)/ce,$e=(We.height/2-F.y)/ce,_e=N(ge,Pe.x-Ue,Pe.x+Pe.width+Ue),De=N($e,Pe.y-Se,Pe.y+Pe.height+Se);return{x:We.width/2-_e*ce,y:We.height/2-De*ce,scale:ce}}function U(){const F=e.value?.getBoundingClientRect();return{x:F?.left??0,y:F?.top??0}}function V(F){return uw(P(F),U(),globalThis.devicePixelRatio||1)}function Y(){b&&clearTimeout(b),b=null}function $(){C&&cancelAnimationFrame(C),C=null}function D(){Y(),y=null,i.value=V(i.value),p.value=!1}function W(){p.value||(i.value=V(i.value))}function E(F,ce={}){if(ce.motion){p.value=!0,i.value=P(F);return}$(),i.value=V(F),p.value=!1}function X(F,ce,he){const{x:Pe,y:We}=i.value,Ue=F/i.value.scale;return{x:ce-(ce-Pe)*Ue,y:he-(he-We)*Ue,scale:F}}function re(){Y(),b=setTimeout(D,yw)}function ne(F){const ce=e.value;if(ce){if(F.ctrlKey||F.metaKey){F.preventDefault(),F.stopPropagation?.(),T(),$();const he=ce.getBoundingClientRect(),Pe=F.clientX-he.left,We=F.clientY-he.top,Ue=Math.min(Math.abs(F.deltaY),10)/10,ge=1+(F.deltaY>0?-1:1)*.03*Ue;y=H((y??i.value.scale)*ge),E(X(Qa(y,s),Pe,We),{motion:!0}),re();return}F.preventDefault(),F.stopPropagation?.(),T(),$(),E({...i.value,x:i.value.x-F.deltaX,y:i.value.y-F.deltaY},{motion:!0}),re()}}function de(F){F.button!==0&&F.button!==1||(g=F.pointerId,d.value=!1,f.x=F.clientX,f.y=F.clientY,f.viewX=i.value.x,f.viewY=i.value.y,m.x=F.clientX,m.y=F.clientY,m.time=Date.now(),v=!1)}function ue(F){if(g!==F.pointerId)return;const ce=F.clientX-m.x,he=F.clientY-m.y,Pe=ce*ce+he*he;!d.value&&Pe>qa*qa&&(d.value=!0,v||(F.currentTarget.setPointerCapture(F.pointerId),v=!0)),d.value&&($(),E({...i.value,x:f.viewX+(F.clientX-f.x),y:f.viewY+(F.clientY-f.y)},{motion:!0}))}function ae(F){if(g!==F.pointerId)return;const ce=F.clientX-m.x,he=F.clientY-m.y,Pe=ce*ce+he*he,We=Date.now()-m.time<=vw&&Pe<=qa*qa,Ue=d.value;Ue&&T(),We||(_=Date.now()+32),d.value=!1,g=null,v&&(F.currentTarget?.releasePointerCapture(F.pointerId),v=!1),Ue&&D()}function xe(){return Date.now()>=_}function Re(){const F=e.value;if(!F)return{cx:0,cy:0};const ce=F.getBoundingClientRect();return{cx:ce.width/2,cy:ce.height/2}}function Me(F){T(),Y(),y=null;const{cx:ce,cy:he}=Re();E(X(iw(i.value.scale,F,s),ce,he))}function Ee(){Me(1)}function ke(){Me(-1)}function ie(F,ce={}){S=F.width>0&&F.height>0?{...F}:null;const he=e.value;if(!he||F.width===0||F.height===0||!ce.force&&k)return;const Pe=he.getBoundingClientRect(),We=(Pe.width-a*2)/F.width,Ue=(Pe.height-a*2)/F.height,Se=Qa(Math.min(We,Ue,1),s,"floor");E({x:(Pe.width-F.width*Se)/2-F.x*Se,y:(Pe.height-F.height*Se)/2-F.y*Se,scale:Se}),k=!1}function se(){k=!1}function me(){E({x:0,y:0,scale:1})}function pe(F){S=F&&F.width>0&&F.height>0?{...F}:null,S&&(i.value=p.value?P(i.value):V(i.value))}function Fe(){A={...i.value},L=!1}function fe(){const F=A;A=null,!(!F||L)&&Te(F)}function Te(F,ce){Y(),y=null;const he={...i.value},Pe=300,We=performance.now();$();function Ue(Se){const ge=Math.min((Se-We)/Pe,1),$e=1-Math.pow(1-ge,3);ge<1?(E({x:he.x+(F.x-he.x)*$e,y:he.y+(F.y-he.y)*$e,scale:he.scale+(F.scale-he.scale)*$e},{motion:!0}),C=requestAnimationFrame(Ue)):(C=null,E(ce?ce():F))}C=requestAnimationFrame(Ue)}em(e,W);let Z=null;function ee(){if(typeof globalThis.matchMedia!="function")return;const F=globalThis.matchMedia(`(resolution: ${globalThis.devicePixelRatio||1}dppx)`),ce=()=>{Z?.(),W(),ee()};F.addEventListener("change",ce,{once:!0}),Z=()=>F.removeEventListener("change",ce)}ee();function oe(){Y(),$(),Z?.(),Z=null,y=null,g=null,v=!1,d.value=!1,p.value=!1}tm()&&mc(oe);function Oe(F,ce){const he=e.value;if(!he)return;const Pe=Qa(ce??i.value.scale,s),We=F.x+F.width/2,Ue=F.y+F.height/2;function Se(){const ge=he.getBoundingClientRect();return{x:ge.width/2-We*Pe,y:ge.height/2-Ue*Pe,scale:Pe}}Te(Se(),Se)}return{state:i,isPanning:d,transformStyle:B,scalePercent:q,onWheel:ne,onPointerDown:de,onPointerMove:ue,onPointerUp:ae,shouldHandleClick:xe,zoomIn:Ee,zoomOut:ke,fitToView:ie,setViewport:E,settle:D,resetAutoFitLock:se,focusNode:Oe,resetView:me,setContentBounds:pe,saveViewport:Fe,restoreViewport:fe}}const xw={class:"pointer-events-none absolute inset-0 h-full w-full","aria-hidden":"true"},kw=we({__name:"CanvasGrid",setup(e){return(t,n)=>(l(),c("svg",xw,[...n[0]||(n[0]=[u("defs",null,[u("pattern",{id:"canvas-dot-grid",x:"0",y:"0",width:"24",height:"24",patternUnits:"userSpaceOnUse"},[u("circle",{cx:"12",cy:"12",r:"1",class:"fill-neutral-400/20 dark:fill-neutral-500/20"})])],-1),u("rect",{width:"100%",height:"100%",fill:"url(#canvas-dot-grid)"},null,-1)])]))}}),ww={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function _w(e,t){return l(),c("svg",ww,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14m-7-7v14"},null,-1)])])}const $w=Ye({name:"lucide-plus",render:_w}),Iw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Sw(e,t){return l(),c("svg",Iw,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14"},null,-1)])])}const Cw=Ye({name:"lucide-minus",render:Sw}),Tw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Mw(e,t){return l(),c("svg",Tw,[...t[0]||(t[0]=[u("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 Aw=Ye({name:"lucide-maximize",render:Mw}),Lw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Rw(e,t){return l(),c("svg",Lw,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M3 7V5a2 2 0 0 1 2-2h2m10 0h2a2 2 0 0 1 2 2v2m0 10v2a2 2 0 0 1-2 2h-2M7 21H5a2 2 0 0 1-2-2v-2"}),u("circle",{cx:"12",cy:"12",r:"3"}),u("path",{d:"m16 16l-1.9-1.9"})],-1)])])}const Ew=Ye({name:"lucide-scan-search",render:Rw}),Pw={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"},Nw={class:"min-w-[3rem] text-center text-[11px] font-medium tabular-nums text-neutral-500 dark:text-neutral-400"},Ow=["title","aria-label"],Dw=we({__name:"CanvasControls",props:{scalePercent:{},fitAction:{}},emits:["zoom-in","zoom-out","toggle-fit"],setup(e){const t=e,n=x(()=>t.fitAction==="fit"?"Fit to view":"Actual size (100%)");return(r,a)=>(l(),c("div",Pw,[u("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:a[0]||(a[0]=o=>r.$emit("zoom-out"))},[j(h(Cw),{class:"h-3.5 w-3.5"})]),u("span",Nw,w(e.scalePercent)+"% ",1),u("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:a[1]||(a[1]=o=>r.$emit("zoom-in"))},[j(h($w),{class:"h-3.5 w-3.5"})]),a[3]||(a[3]=u("div",{class:"mx-0.5 h-4 w-px bg-neutral-200 dark:bg-neutral-700"},null,-1)),u("button",{class:"flex h-7 w-7 items-center justify-center rounded transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-800",title:n.value,"aria-label":n.value,onClick:a[2]||(a[2]=o=>r.$emit("toggle-fit"))},[e.fitAction==="fit"?(l(),K(h(Aw),{key:0,class:"h-3.5 w-3.5"})):(l(),K(h(Ew),{key:1,class:"h-3.5 w-3.5"}))],8,Ow)]))}}),Bw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Fw(e,t){return l(),c("svg",Bw,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"},null,-1)])])}const Us=Ye({name:"lucide-message-square",render:Fw}),jw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function qw(e,t){return l(),c("svg",jw,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"}),u("path",{d:"m10 8l-3 3l3 3m4 0l3-3l-3-3"})],-1)])])}const zw=Ye({name:"lucide-message-square-code",render:qw}),Vw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Hw(e,t){return l(),c("svg",Vw,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}),u("path",{d:"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3m-6 4.2h5.7"})],-1)])])}const Uw=Ye({name:"lucide-square-function",render:Hw}),Kw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ww(e,t){return l(),c("svg",Kw,[...t[0]||(t[0]=[u("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 Gw=Ye({name:"lucide-plug",render:Ww}),Jw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Xw(e,t){return l(),c("svg",Jw,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m16 3l4 4l-4 4m4-4H4m4 14l-4-4l4-4m-4 4h16"},null,-1)])])}const bf=Ye({name:"lucide-arrow-right-left",render:Xw}),Yw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Zw(e,t){return l(),c("svg",Yw,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2"}),u("path",{d:"m6 17l3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06"}),u("path",{d:"m12 6l3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8"})],-1)])])}const Qw=Ye({name:"lucide-webhook",render:Zw}),e_={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function t_(e,t){return l(),c("svg",e_,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 19h8M4 17l6-6l-6-6"},null,-1)])])}const n_=Ye({name:"lucide-terminal",render:t_}),r_={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function a_(e,t){return l(),c("svg",r_,[...t[0]||(t[0]=[u("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 Ks=Ye({name:"lucide-variable",render:a_}),o_={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function s_(e,t){return l(),c("svg",o_,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("rect",{width:"8",height:"8",x:"3",y:"3",rx:"2"}),u("path",{d:"M7 11v4a2 2 0 0 0 2 2h4"}),u("rect",{width:"8",height:"8",x:"13",y:"13",rx:"2"})],-1)])])}const l_=Ye({name:"lucide-workflow",render:s_}),i_={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function u_(e,t){return l(),c("svg",i_,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m10 17l5-5l-5-5m5 5H3m12-9h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"},null,-1)])])}const d_=Ye({name:"lucide-log-in",render:u_}),xf={agent:xn,variables:Ks,side:null,bank:null,person:wl,handler:n_,prompt:Us,model:sc,function:Uw,"provider-tool":Gw,subprompt:zw,subagent:l_,handoff:bf,hook:Qw,source:d_},Un=4,Ze=e=>e*Un,dt=Ze(8),c_=Ze(11),ds=Ze(6),cs=dt,fn=Ze(5),f_=Ze(4),St=Ze(4),za=6,kf=Ze(28),p_=Ze(70),h_=Ze(90),m_=Ze(90),g_=Ze(44),v_=Ze(32),y_=Ze(42),jn=Ze(3),Ho=Ze(2),va=jn+St+Ho+jn,wf=Ho+St,mt=Ze(3),pn=dt,wn=Ze(6),pr=Ze(4),b_=Ze(3),x_=Ze(2),fu=Ze(5),gn=Ze(3),Ot=Ze(2),Kr=Ze(6),Jt=Ze(1),Cr=Ze(2),wr=20,Va=20,k_=33,Hl=14,pu=wr-7,br=3,Ws=e=>e-Jt-fn+Hl,Ul=e=>e+Jt+Hl,vn={kicker:{size:11,weight:600,mono:!1},note:{size:11,weight:400,mono:!1},name:{size:12,weight:400,mono:!0},caption:{size:10,weight:400,mono:!0},pill:{size:11,weight:400,mono:!0},title:{size:14,weight:600,mono:!1},badge:{size:10,weight:600,mono:!1}};function w_(){const e={};for(const[t,n]of Object.entries(vn))e[`--cc-size-${t}`]=`${n.size}px`,e[`--cc-weight-${t}`]=`${n.weight}`;return e}const __=.6,$_=1.03;function sr(e){return Math.round(e.size*__*$_*10)/10}const Aa=sr(vn.name),Uo=sr(vn.kicker),Qn=sr(vn.note),_f=sr(vn.caption),I_=sr(vn.pill),S_=sr(vn.title),C_=sr(vn.badge);function Tt(e,t){return Math.ceil(e.length*t)}function $f(e,t,n){const r=Math.max(1,Math.floor(t/n));return e.length<=r?e:`${e.slice(0,Math.max(1,r-1))}…`}const T_=["transform","data-circuit-id","data-canvas-node-id","aria-label","aria-pressed"],M_=["width","height","rx"],A_=["x","y","width","height"],L_=["x","y"],R_=["x","y"],E_=["x","y"],P_=["y"],N_=["width","height","rx"],O_=["width","height","rx"],D_=["y"],B_=["width","height","rx"],F_=["x","y","width","height"],j_=["x","y"],q_=["x","y"],z_=["width","height","rx"],V_=["y"],H_=["y"],U_=we({__name:"CircuitSymbol",props:{component:{},selected:{type:Boolean},hovered:{type:Boolean},mark:{},dimmed:{type:Boolean}},emits:["select","hover"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>n.component),o=x(()=>xf[a.value.kind]),s=x(()=>["side","person","handler","bank"].includes(a.value.kind)),i=x(()=>a.value.kind==="function"||a.value.kind==="provider-tool"),d=x(()=>a.value.kind==="agent"),p=x(()=>a.value.height/2),f=x(()=>wn+Tt(a.value.kicker??"",Uo)+Ot),m=jn+St+Ho,g=x(()=>a.value.caption?Va:p.value+Va-dt/2),v=x(()=>g.value-Va+(dt-St)/2),_=pn+(dt-St)/2,b=x(()=>a.value.kind==="person"?pn+dt/2+Math.round(vn.title.size*.7/2):pn+Va),C=x(()=>{const A=`${a.value.summary.kind}: ${a.value.fullLabel}`;return a.value.summary.notice?`${A}. ${a.value.summary.notice.title}`:A});function y(A){(A.key==="Enter"||A.key===" ")&&(A.preventDefault(),r("select",a.value))}return(A,L)=>(l(),c("g",{class:J(["circuit-symbol",`circuit-symbol--${a.value.kind}`,e.selected?"is-selected":"",e.hovered?"is-hovered":"",e.mark?`is-trace-${e.mark}`:"",e.dimmed?"is-dimmed":"",a.value.unoffered?"is-unoffered":""]),transform:`translate(${a.value.x} ${a.value.y})`,"data-circuit-id":a.value.id,"data-canvas-node-id":a.value.selectionId,role:"button",tabindex:"0","aria-label":C.value,"aria-pressed":e.selected,onClick:L[0]||(L[0]=Je(k=>r("select",a.value),["stop"])),onKeydown:y,onMouseenter:L[1]||(L[1]=k=>r("hover",a.value)),onMouseleave:L[2]||(L[2]=k=>r("hover",null)),onFocus:L[3]||(L[3]=k=>r("hover",a.value)),onBlur:L[4]||(L[4]=k=>r("hover",null))},[s.value?(l(),c(te,{key:0},[u("rect",{class:"cs-panel",x:".5",y:".5",width:a.value.width-1,height:a.value.height-1,rx:h(br)},null,8,M_),u("rect",{class:"cs-mark",x:h(mt),y:h(pu),width:h(za),height:h(za)},null,8,A_),u("text",{class:"cs-kicker",x:h(wn),y:h(wr)},w(a.value.kicker),9,L_),a.value.kind==="side"||a.value.kind==="bank"?(l(),c(te,{key:0},[u("text",{class:"cs-note",x:f.value,y:h(wr)},w(a.value.label),9,R_),(l(!0),c(te,null,Ie(a.value.sections??[],k=>(l(),c("text",{key:k.label,class:"cs-section",x:h(mt),y:k.y},w(k.label),9,E_))),128))],64)):(l(),c(te,{key:1},[(l(),K(ct(o.value),{class:"cs-icon",x:h(mt),y:_,width:h(St),height:h(St)},null,8,["x","width","height"])),u("text",{class:J(a.value.kind==="person"?"cs-title":"cs-name"),x:m,y:b.value},w(a.value.label),11,P_)],64))],64)):i.value?(l(),c(te,{key:1},[a.value.kind==="provider-tool"?(l(),c("rect",{key:0,class:"cs-bar",x:".5",y:".5",width:a.value.width-1,height:a.value.height-1,rx:h(br)},null,8,N_)):(l(),c("rect",{key:1,class:"cs-bar",width:a.value.width,height:a.value.height,rx:h(br)},null,8,O_)),(l(),K(ct(o.value),{class:"cs-bar-icon",x:h(jn),y:v.value,width:h(St),height:h(St)},null,8,["x","y","width","height"])),u("text",{class:"cs-bar-text",x:m,y:g.value},w(a.value.label),9,D_)],64)):d.value?(l(),c(te,{key:2},[u("rect",{class:"cs-tag",x:".5",y:".5",width:a.value.width-1,height:a.value.height-1,rx:h(br)},null,8,B_),u("rect",{class:"cs-mark",x:h(mt),y:h(pu),width:h(za),height:h(za)},null,8,F_),u("text",{class:"cs-kicker",x:h(wn),y:h(wr)},w(a.value.kicker),9,j_),u("text",{class:"cs-name",x:f.value,y:h(wr)},w(a.value.label),9,q_)],64)):(l(),c(te,{key:3},[u("rect",{class:"cs-chip",x:".5",y:".5",width:a.value.width-1,height:a.value.height-1,rx:h(br)},null,8,z_),(l(),K(ct(o.value),{class:"cs-icon",x:h(jn),y:v.value,width:h(St),height:h(St)},null,8,["x","y","width","height"])),u("text",{class:"cs-name",x:m,y:g.value},w(a.value.label),9,V_),a.value.caption?(l(),c("text",{key:0,class:"cs-caption",x:m,y:h(k_)},w(a.value.caption),9,H_)):M("",!0),a.value.warning?(l(),K(h(oo),{key:1,class:"cs-warning",x:a.value.width-h(jn)-h(St),y:v.value,width:h(St),height:h(St),"aria-hidden":"true"},null,8,["x","y","width","height"])):M("",!0)],64))],42,T_))}}),hu=ot(U_,[["__scopeId","data-v-f7b3e347"]]),K_={class:"text-[11px] font-medium text-neutral-500 dark:text-neutral-400"},W_={class:"mt-0.5 break-all font-mono text-[12.5px] font-semibold text-neutral-900 dark:text-neutral-50"},G_={key:0,class:"break-all font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},J_={key:1,class:"mt-1.5 line-clamp-3 text-neutral-600 dark:text-neutral-300"},X_={key:2,class:"mt-2 flex items-start gap-1.5"},Y_={class:"min-w-0"},Z_={class:"font-medium text-amber-700 dark:text-amber-300"},Q_={class:"text-neutral-600 dark:text-neutral-300"},e2={key:3,class:"mt-2 grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5"},t2={class:"text-neutral-500 dark:text-neutral-400"},n2={class:"truncate text-right font-mono text-neutral-800 dark:text-neutral-200"},r2=we({__name:"CircuitHoverCard",props:{summary:{},left:{},top:{}},setup(e){return(t,n)=>(l(),c("div",{class:"pointer-events-none absolute z-20 w-72 rounded-lg border border-neutral-200 bg-white/95 px-3 py-2.5 text-xs shadow-lg backdrop-blur-sm dark:border-neutral-700 dark:bg-neutral-900/95",style:nt({left:`${e.left}px`,top:`${e.top}px`}),role:"tooltip"},[u("div",K_,w(e.summary.kind),1),u("div",W_,w(e.summary.title),1),e.summary.subtitle?(l(),c("div",G_,w(e.summary.subtitle),1)):M("",!0),e.summary.description?(l(),c("p",J_,w(e.summary.description),1)):M("",!0),e.summary.notice?(l(),c("div",X_,[j(h(Cl),{size:13,class:"mt-px shrink-0 text-amber-600 dark:text-amber-400","aria-hidden":"true"}),u("div",Y_,[u("div",Z_,w(e.summary.notice.title),1),u("div",Q_,w(e.summary.notice.text),1)])])):M("",!0),e.summary.rows.length>0?(l(),c("dl",e2,[(l(!0),c(te,null,Ie(e.summary.rows,r=>(l(),c(te,{key:r.label},[u("dt",t2,w(r.label),1),u("dd",n2,w(r.value),1)],64))),128))])):M("",!0)],4))}}),Kl=4,Wt=.5,mu=8,fs=e=>`${Math.round(e.x*2)/2},${Math.round(e.y*2)/2}`,If=(e,t)=>Math.abs(e.y-t.y)<Wt&&Math.abs(e.x-t.x)>=Wt,a2=(e,t)=>Math.abs(e.x-t.x)<Wt&&Math.abs(e.y-t.y)>=Wt,eo=(e,t,n,r)=>e>Math.min(t,n)+r&&e<Math.max(t,n)-r,ps=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),Tr=(e,t,n)=>ps(t,e)+ps(e,n)-ps(t,n)<Wt;function o2(e,t,n=[],r=Kl){const a=[],o=[];for(const m of e)for(let g=1;g<m.points.length;g++){const v={a:m.points[g-1],b:m.points[g]};If(v.a,v.b)?a.push(v):a2(v.a,v.b)&&o.push(v)}const s=[...e.flatMap(m=>m.points),...t],i=new Set(s.map(fs)),d=r+1,p=new Map;for(const m of a)for(const g of o){const v={x:g.a.x,y:m.a.y};if(!eo(v.x,m.a.x,m.b.x,d)||!eo(v.y,g.a.y,g.b.y,Wt)||i.has(fs(v)))continue;s.some(b=>Math.abs(b.y-v.y)<Wt&&Math.abs(b.x-v.x)<d)||n.some(b=>eo(v.y,b.y,b.y+b.height,-Wt)&&[b.x,b.x+b.width].some(C=>Math.abs(C-v.x)<d))||p.set(fs(v),v)}const f=[...p.values()];return f.filter(m=>!f.some(g=>g!==m&&Math.abs(g.y-m.y)<Wt&&Math.abs(g.x-m.x)<2*d))}function Sf(e,t,n,r){if(!If(e,t)||n.length===0)return[];const a=Math.sign(t.x-e.x);return n.filter(o=>Math.abs(o.y-e.y)<Wt&&eo(o.x,e.x,t.x,r-Wt)).sort((o,s)=>(o.x-s.x)*a)}function Gs(e,t,n=Kl){if(t.length===0||e.length<2)return[...e];const r=[e[0]];for(let a=1;a<e.length;a++){const o=e[a-1],s=e[a],i=Math.sign(s.x-o.x);for(const d of Sf(o,s,t,n))for(let p=0;p<=mu;p++){const f=Math.PI*p/mu;r.push({x:d.x-i*n*Math.cos(f),y:d.y-n*Math.sin(f)})}r.push(s)}return r}function s2(e,t,n=Kl){let r=e.length>0?`M${e[0].x} ${e[0].y}`:"";for(let a=1;a<e.length;a++){const o=e[a-1],s=e[a],i=Math.sign(s.x-o.x);for(const d of Sf(o,s,t,n))r+=`L${d.x-i*n} ${d.y}A${n} ${n} 0 0 ${i>0?1:0} ${d.x+i*n} ${d.y}`;r+=`L${s.x} ${s.y}`}return r}const Cf=e=>`junction:${e}`,l2=["width","height","viewBox","aria-label"],i2=["id"],u2={"aria-hidden":"true"},d2=["x","y","width","height"],c2=["d","marker-end"],f2=["cx","cy"],p2=["x","y","text-anchor"],h2=["transform"],m2=["width","height","rx"],g2=["x","y"],v2={key:1,class:"absolute inset-0 z-10 flex items-center justify-center bg-neutral-100 dark:bg-neutral-950"},y2={key:2,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"},b2={key:3,class:"absolute inset-0 flex flex-col items-center justify-center gap-3 text-neutral-400 dark:text-neutral-600"},x2=we({__name:"CircuitCanvas",props:{agent:{},diagram:{},highlight:{},selectedNodeId:{},hoveredNodeId:{},loading:{type:Boolean},error:{}},emits:["select","deselect","hover-node"],setup(e,{expose:t,emit:n}){const r=e,a=n,o=x(()=>r.diagram.layout.value),s=w_(),i=R(null),{state:d,isPanning:p,transformStyle:f,scalePercent:m,onWheel:g,onPointerDown:v,onPointerMove:_,onPointerUp:b,shouldHandleClick:C,zoomIn:y,zoomOut:A,fitToView:L,setViewport:k,settle:S,focusNode:T,setContentBounds:B}=bw(i,{maxScale:1.6,padding:40,panPadding:40});Li(Z=>{const ee=i.value;ee&&(ee.addEventListener("wheel",g,{passive:!1}),Z(()=>ee.removeEventListener("wheel",g)))});const q=x(()=>o.value?.bounds??null);Li(()=>B(q.value));const{width:H,height:N}=Ur(i),P=x(()=>({width:H.value,height:N.value})),U=new Set(["bank","side","person","handler"]),V=x(()=>o.value?.frames.find(Z=>Z.kind==="agent")??null),Y=R(null);let $=null;const D=R(null);function W(){V.value&&(k(lw(V.value,P.value)),$={...d.value},D.value=null)}ve([()=>r.agent?.id??null,V,P],([Z])=>{if(!Z||!V.value||P.value.width===0||P.value.height===0)return;const ee=$!==null&&cu(d.value,$)==="actual";Y.value===Z&&!ee||(Y.value=Z,W())},{immediate:!0});const E=x(()=>cu(d.value,D.value));function X(){if(E.value==="actual"||!q.value){W();return}L(q.value,{force:!0}),D.value={...d.value},$=null}const re=x(()=>o.value?{layout:o.value,state:d.value,view:P.value}:null),ne=R(null),de=x(()=>ne.value?.selectionId??r.hoveredNodeId??r.selectedNodeId),ue=x(()=>{const Z=new Map;for(const ee of o.value?.components??[])Z.set(ee.id,ee.selectionId);return Z});function ae(Z){const ee=de.value;return ee?ue.value.get(Z.from)===ee||ue.value.get(Z.to)===ee:!1}const xe=Z=>Z==="failed"?"failed":Z==="retried"?"retried":"trace",Re=x(()=>{const Z=new Map,ee=r.highlight?.wires;if(!ee||ee.size===0||!o.value)return Z;for(const oe of o.value.wires){const Oe=ee.get(oe.id);Oe&&o.value.junctions.forEach((F,ce)=>{Z.get(ce)!=="failed"&&oe.points.some((he,Pe)=>Pe>0&&Tr(F,oe.points[Pe-1],he))&&Z.set(ce,xe(Oe))})}return Z});function Me(Z){if(!Z.arrow)return;const ee=r.highlight?.wires.get(Z.id);return ee?`url(#circuit-arrow-${xe(ee)})`:ae(Z)?"url(#circuit-arrow-active)":"url(#circuit-arrow)"}function Ee(Z){return s2(Z,o.value?.hops??[])}function ke(Z){p.value||(ne.value=Z,a("hover-node",Z?.selectionId??null))}function ie(Z){C()&&a("select",Z)}function se(){C()&&r.selectedNodeId&&a("deselect")}const me=x(()=>{const Z=ne.value,ee=i.value;if(!Z||!ee||p.value)return null;const{x:oe,y:Oe,scale:F}=d.value,ce=288,he=(Z.x+Z.width)*F+oe+10,Pe=he+ce<ee.clientWidth?he:Math.max(8,Z.x*F+oe-ce-10),We=Math.min(Math.max(8,Z.y*F+Oe),Math.max(8,ee.clientHeight-200));return{summary:Z.summary,left:Pe,top:We}});function pe(Z){const ee=r.diagram.componentsFor(Z)[0];return ee?(a("select",ee),T(ee),!0):!1}function Fe(Z){const ee=gw(d.value,Z,P.value);ee&&k(ee,{motion:!0})}const fe=qo();function Te(Z){if(fe.value==="reduce"){const ee={x:Z.x+Z.width/2,y:Z.y+Z.height/2};k(yf(ee,d.value.scale,P.value))}else T(Z)}return t({selectById:pe,followPoint:Fe,centerOn:Te,settleFollow:S,navigator:re,panTo:Z=>k(Z)}),(Z,ee)=>(l(),c("div",{class:"circuit-canvas relative flex-1 overflow-hidden",style:nt(h(s))},[u("div",{ref_key:"containerRef",ref:i,class:J(["absolute inset-0",h(p)?"cursor-grabbing":"cursor-grab"]),onPointerdown:ee[0]||(ee[0]=(...oe)=>h(v)&&h(v)(...oe)),onPointermove:ee[1]||(ee[1]=(...oe)=>h(_)&&h(_)(...oe)),onPointerup:ee[2]||(ee[2]=(...oe)=>h(b)&&h(b)(...oe)),onPointercancel:ee[3]||(ee[3]=(...oe)=>h(b)&&h(b)(...oe)),onClick:se},[j(kw),o.value?(l(),c("div",{key:0,class:"absolute origin-top-left",style:nt(h(f))},[(l(),c("svg",{class:J(["circuit-svg overflow-visible",e.highlight?"is-tracing":""]),width:o.value.bounds.width,height:o.value.bounds.height,viewBox:`0 0 ${o.value.bounds.width} ${o.value.bounds.height}`,role:"group","aria-label":`Circuit diagram for ${e.agent?.title||e.agent?.name||"agent"}`},[u("defs",null,[ee[4]||(ee[4]=u("marker",{id:"circuit-arrow",viewBox:"0 0 8 8",refX:"7.5",refY:"4",markerWidth:"8",markerHeight:"8",markerUnits:"userSpaceOnUse",orient:"auto"},[u("path",{class:"cc-arrowhead",d:"M0 .5 7.5 4 0 7.5z"})],-1)),ee[5]||(ee[5]=u("marker",{id:"circuit-arrow-active",viewBox:"0 0 8 8",refX:"7.5",refY:"4",markerWidth:"8",markerHeight:"8",markerUnits:"userSpaceOnUse",orient:"auto"},[u("path",{class:"cc-arrowhead cc-arrowhead--active",d:"M0 .5 7.5 4 0 7.5z"})],-1)),(l(),c(te,null,Ie(["trace","failed","retried"],oe=>u("marker",{id:`circuit-arrow-${oe}`,key:oe,viewBox:"0 0 8 8",refX:"7.5",refY:"4",markerWidth:"8",markerHeight:"8",markerUnits:"userSpaceOnUse",orient:"auto"},[u("path",{class:J(["cc-arrowhead",`cc-arrowhead--${oe}`]),d:"M0 .5 7.5 4 0 7.5z"},null,2)],8,i2)),64))]),(l(!0),c(te,null,Ie(o.value.components.filter(oe=>h(U).has(oe.kind)),oe=>(l(),K(hu,{key:oe.id,component:oe,selected:oe.selectionId===e.selectedNodeId,hovered:oe.selectionId===(ne.value?.selectionId??e.hoveredNodeId),mark:e.highlight?.components.get(oe.id)??null,dimmed:!!e.highlight&&!e.highlight?.components.has(oe.id)&&!e.highlight?.focus.has(oe.id),onSelect:ie,onHover:ke},null,8,["component","selected","hovered","mark","dimmed"]))),128)),u("g",u2,[(l(!0),c(te,null,Ie(o.value.frames,oe=>(l(),c("rect",{key:oe.id,class:J(["cc-frame",`cc-frame--${oe.kind}`,e.highlight?.frames.has(oe.id)?`is-trace-${e.highlight.frames.get(oe.id)}`:"",e.highlight?.focus.has(oe.id)?"is-focus":""]),x:oe.x+.5,y:oe.y+.5,width:oe.width-1,height:oe.height-1,rx:"6"},null,10,d2))),128)),(l(!0),c(te,null,Ie(o.value.wires,oe=>(l(),c("path",{key:oe.id,class:J(["cc-wire",`cc-wire--${oe.style}`,ae(oe)?"is-active":"",e.highlight?.wires.has(oe.id)?`is-trace-${e.highlight.wires.get(oe.id)}`:"",e.highlight?.focus.has(oe.id)?"is-focus":""]),d:Ee(oe.points),"marker-end":Me(oe)},null,10,c2))),128)),(l(!0),c(te,null,Ie(o.value.junctions,(oe,Oe)=>(l(),c("circle",{key:`j-${Oe}`,class:J(["cc-junction",e.highlight?.focus.has(h(Cf)(Oe))?"is-focus":"",Re.value.has(Oe)?`is-trace-${Re.value.get(Oe)}`:""]),cx:oe.x,cy:oe.y,r:"2.75"},null,10,f2))),128)),(l(!0),c(te,null,Ie(o.value.texts,oe=>(l(),c("text",{key:oe.id,class:J(["cc-label",e.highlight?.focus.has(oe.id)?"is-focus":""]),x:oe.x,y:oe.y,"text-anchor":oe.anchor},w(oe.text),11,p2))),128)),(l(!0),c(te,null,Ie(o.value.pills,oe=>(l(),c("g",{key:oe.id,class:J(["cc-pill-group",e.highlight?.focus.has(oe.id)?"is-focus":"",e.highlight?.pills.has(oe.id)?`is-trace-${e.highlight.pills.get(oe.id)}`:""]),transform:`translate(${oe.x} ${oe.y})`},[u("rect",{class:J(["cc-pill",`cc-pill--${oe.tone}`]),x:".5",y:".5",width:oe.width-1,height:oe.height-1,rx:oe.height/2},null,10,m2),u("text",{class:"cc-pill-text",x:oe.width/2,y:h(Hl)},w(oe.text),9,g2)],10,h2))),128))]),(l(!0),c(te,null,Ie(o.value.components.filter(oe=>!h(U).has(oe.kind)),oe=>(l(),K(hu,{key:oe.id,component:oe,selected:oe.selectionId===e.selectedNodeId,hovered:oe.selectionId===(ne.value?.selectionId??e.hoveredNodeId),mark:e.highlight?.components.get(oe.id)??null,dimmed:!!e.highlight&&!e.highlight?.components.has(oe.id)&&!e.highlight?.focus.has(oe.id),onSelect:ie,onHover:ke},null,8,["component","selected","hovered","mark","dimmed"]))),128)),gt(Z.$slots,"overlay",{layout:o.value},void 0,!0)],10,l2))],4)):M("",!0)],34),me.value?(l(),K(r2,{key:0,summary:me.value.summary,left:me.value.left,top:me.value.top},null,8,["summary","left","top"])):M("",!0),e.loading&&!o.value?(l(),c("div",v2,[...ee[6]||(ee[6]=[u("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"},[u("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"}),Ce(" Preparing diagram ")],-1)])])):M("",!0),e.error?(l(),c("div",y2,w(e.error),1)):M("",!0),!e.agent&&!e.loading&&!e.error?(l(),c("div",b2,[j(h(cf),{class:"h-12 w-12 opacity-40"}),ee[7]||(ee[7]=u("div",{class:"text-sm"},"Select an agent to view its composition",-1))])):M("",!0),o.value?(l(),K(Dw,{key:4,"scale-percent":h(m),"fit-action":E.value,onZoomIn:h(y),onZoomOut:h(A),onToggleFit:X},null,8,["scale-percent","fit-action","onZoomIn","onZoomOut"])):M("",!0)],4))}}),Tf=ot(x2,[["__scopeId","data-v-9353a7bd"]]),Mf=["before_create_message","after_create_message","before_update_message","after_update_message"],k2=new Set(Mf),Af=["after_system_message","filter_messages","prefilter_llm_history"],w2=new Set(Af),_2=["after_thread_created","after_subagent_created"],Lf=["tool_call_started","tool_call_done","after_tool_call_success","after_tool_call_failure","before_store_tool_result"],Rf=new Set(["tool_call_started"]),$2=new Set(Lf.filter(e=>!Rf.has(e))),I2=new Set(["user_client_attached","user_client_detached","user_value_changed"]);function lr(e){return k2.has(e)?"message":w2.has(e)?"request":Rf.has(e)?"toolCall":$2.has(e)?"toolResult":"thread"}function Ko(e,t,n){const r=a=>{const o=e.indexOf(n(a));return o<0?e.length:o};return t.map((a,o)=>({hook:a,index:o})).sort((a,o)=>r(a.hook)-r(o.hook)||a.index-o.index).map(a=>a.hook)}function S2(e,t){return Ko(Lf,e,t)}function C2(e,t){return Ko(Af,e,t)}function T2(e,t){return Ko(Mf,e,t)}function Js(e,t){return Ko(_2,e,t)}const M2={message:"Runs when a message is stored or updated, on the turn wires between the sides",request:"Runs once per model request, while the runtime assembles the prompt it sends",toolCall:"Runs on a tool call before the tool executes",toolResult:"Runs on a tool result on its way back to the model",thread:"Runs when the thread or one of its subagents is created, before any turn"};function A2(e){return I2.has(e)?"Runs in the user's hub, outside this thread's turns":M2[lr(e)]}function yo(e,t,n){return t?{selectionId:Vs(e.rootPrefix,t.id),model:t,name:t.name}:n?{selectionId:Vs(e.rootPrefix,n),model:null,name:n}:null}function L2(e,t){return e.input.hooks[t]||{id:t,hook:"unknown"}}function Ef(e){return e.kind==="handoff"?"handoff":e.kind==="tool"?"function":"provider-tool"}function Pf(e,t,n,r){const a=e.input.external.promptTools[t.name];if(!a)return null;const o=new Set(r).add(t.name),s=a.nestedTools.map((i,d)=>{const p=Nc(n,d);return i.kind==="prompt"?{kind:"subprompt",selectionId:p,tool:i,circuit:o.has(i.name)?null:Pf(e,i,p,o),model:yo(e,i.resolvedModel,i.model)}:{kind:Ef(i),selectionId:p,tool:i}});return{selectionId:n,name:a.prompt.name,prompt:a.prompt,model:yo(e,a.model,a.prompt.model_name),hooks:a.prompt.hooks.map((i,d)=>{const p=L2(e,i);return{selectionId:Oc(n,d),entry:p,target:lr(p.hook)}}),items:s}}function R2(e,t,n,r){return t.tools.map((a,o)=>{if(a.kind==="subagent"){const i=Ol(n,t.id,o,a.kind,a.name),d=Ma(i),p=e.input.children[d]??null;return{kind:"subagent",selectionId:d,tool:a,occurrence:p,agent:p?.status==="loaded"?Nf(e,p.agent,p.sides,i,a,r):null,referenceId:p?.status==="cycle"?r.find(f=>f.agentName===p.agentName)?.selectionId??null:null}}const s=Ec(n,t.id,o);return a.kind==="prompt"?{kind:"subprompt",selectionId:s,tool:a,circuit:Pf(e,a,s,new Set([t.promptName||""])),model:yo(e,a.resolvedModel,a.model)}:{kind:Ef(a),selectionId:s,tool:a}})}function gu(e,t,n,r){if(!t)return null;const a=R2(e,t,n,r),o=Dl(n,t.id);return t.mode!=="ai"||!t.prompt?{selectionId:o,side:t,circuit:null,items:a}:{selectionId:o,side:t,items:[],circuit:{selectionId:Bl(n,t.id),name:t.prompt.name,prompt:t.prompt,model:yo(e,t.model,t.prompt.model_name),hooks:t.hooks.map((s,i)=>({selectionId:Pc(n,t.id,i),entry:s,target:lr(s.hook)})),items:a}}}function Nf(e,t,n,r,a,o){const s=Ma(r),i=[...o,{agentName:t.name,selectionId:s}];return{selectionId:s,agent:t,relationship:a,sideA:gu(e,n.find(d=>d.id==="a"),r,i),sideB:gu(e,n.find(d=>d.id==="b"),r,i)}}function Of(e){const t=Ta(e.agent.id||e.agent.name);return Nf({input:e,rootPrefix:t},e.agent,e.sides,t,null,[])}function ft(e,t){return t==null||t===""?[]:[{label:e,value:String(t)}]}function Fr(e,t){return t?[{label:e,value:"yes"}]:[]}function E2(e){return e.input_price==null&&e.output_price==null?null:`$${e.input_price??"?"} in / $${e.output_price??"?"} out per 1M`}function Df(e,t){const n=t?.relationship;return{kind:t?"Subagent":"Agent",title:e.title||e.name,subtitle:e.name,description:n?.description||e.description||void 0,rows:[...ft("Relationship",t?.name),...n?ft("Runs",n.blocking?"blocking":"background"):[],...ft("Max instances",n?.maxInstances),...Fr("Immediate",!!n?.immediate),...Fr("Hidden from model",n?.hidden),...ft("Max session turns",e.max_session_turns),...ft("Variables",e._variables?.length||null)]}}function Bf(e){const t=e.mode==="ai"?"Prompt":e.mode==="handler"?"Handler":"Human";return{kind:`Side ${e.id.toUpperCase()}`,title:e.label,subtitle:t,rows:[...ft("Prompt",e.promptName),...ft("Handler",e.handlerName),...Fr("Stop on response",e.stopOnResponse),...ft("Stop tool",e.stopTool),...ft("Max steps",e.maxSteps),...ft("Session tools",e.sessionTools.join(", "))]}}function P2(e,t,n=null){const r=n?xl(n):null;return{kind:"Prompt",title:t,description:e?.tool_description||void 0,...r?{notice:{title:r.title,text:r.fix}}:{},rows:e?[...ft("Model",e.model_name),...ft("Tool choice",e.tool_choice),...ft("Tools",e.tools.length||null),...ft("Hooks",e.hooks.length||null),...ft("Variables",e.variables.length||null),...Fr("Includes chat",e.include_chat),...ft(Yd,nh(e))]:[]}}function N2(e,t){return{kind:"Model",title:t,subtitle:e?.model,rows:e?[...ft("Provider",e.provider),...ft("Price",E2(e)),...ft("Fallbacks",e.fallbacks?.map(n=>n.name).join(", ")),...ft("Provider tools",e.providerTools?.join(", "))]:[]}}const O2={tool:"Function tool",prompt:"Sub-prompt",provider:"Provider tool",mcp:"MCP tool",handoff:"Handoff",subagent:"Subagent",unknown:"Tool"};function Wl(e,t=null){return{kind:O2[e.kind],title:e.displayName||e.name,description:e.kind==="provider"?qc(t):e.description||void 0,rows:[...ft("Model",e.kind==="prompt"?e.resolvedModel?.name||e.model:null),...Fr("Blocking",e.relationship?.blocking),...Fr("Immediate",!!e.relationship?.immediate),...ft("Optional when",e.relationship?.optional),...ft("Variables",e.variables.length||null)]}}function D2(e,t){const n=e.filter(r=>r.kind==="provider").length;return{kind:"Tools",title:`${e.length} tools`,description:"Tools without sub-prompts, subagents, or hooks of their own, on one bus branch.",rows:[...ft("Functions",e.length-n||null),...ft(jl(t),n||null)]}}function B2(e){return{kind:"Hook",title:e.entry.id,subtitle:e.entry.hook,description:A2(e.entry.hook),rows:[]}}function F2(e){return{kind:"Variables",title:`${e._variables?.length??0} variables`,rows:(e._variables||[]).slice(0,6).map(t=>({label:t.name,value:`${t.type}${t.required?", required":""}`}))}}const vu=10,j2=3;class Xt{components=[];wires=[];junctions=[];texts=[];pills=[];frames=[];ports=[];place(t,n,r){const a=o=>({...o,x:o.x+n,y:o.y+r});this.components.push(...t.components.map(a)),this.frames.push(...t.frames.map(a)),this.pills.push(...t.pills.map(a)),this.texts.push(...t.texts.map(a)),this.junctions.push(...t.junctions.map(a)),this.ports.push(...t.ports.map(a)),this.wires.push(...t.wires.map(o=>({...o,points:o.points.map(a)})))}bounds(){const t=[...this.components,...this.frames,...this.pills,...this.texts.map(s=>{const i=Tt(s.text,Qn);return{x:s.anchor==="middle"?s.x-i/2:s.x,y:s.y-vu,width:i,height:vu+j2}}),...this.wires.flatMap(s=>s.points.map(i=>({...i,width:0,height:0})))];if(t.length===0)return{x:0,y:0,width:0,height:0};let n=1/0,r=1/0,a=-1/0,o=-1/0;for(const s of t)n=Math.min(n,s.x),r=Math.min(r,s.y),a=Math.max(a,s.x+s.width),o=Math.max(o,s.y+s.height);return{x:n,y:r,width:a-n,height:o-r}}toFragment(){const t=this.bounds(),n=new Xt;return n.place({width:t.width,height:t.height,components:this.components,wires:this.wires,junctions:this.junctions,texts:this.texts,pills:this.pills,frames:this.frames,ports:this.ports},-t.x,-t.y),{fragment:{width:t.width,height:t.height,components:n.components,wires:n.wires,junctions:n.junctions,texts:n.texts,pills:n.pills,frames:n.frames,ports:n.ports},offset:{x:-t.x,y:-t.y}}}}const q2=2,yu=2,z2=3,aa=mt,Ha=pn,V2=pn,bo=gn,hs=gn,H2=200*Un,U2=e=>`${e}::bank`;function bu(e){return e.kind==="function"||e.kind==="provider-tool"}function K2(e){const t=e.filter(bu);if(t.length<q2)return e.map(r=>({kind:"item",item:r}));const n=[];for(const r of e)bu(r)?r===t[0]&&n.push({kind:"bank",items:t}):n.push({kind:"item",item:r});return n}function W2(e,t,n){const r=Math.floor((n-aa*2+bo)/(t+bo));let a=Math.min(e,z2,Math.max(yu,r));for(;a>yu&&Math.ceil(e/(a-1))===Math.ceil(e/a);)a--;return a}function G2(e,t){return Array.from({length:e},(n,r)=>({column:r%t,row:Math.floor(r/t)}))}function J2(e){return{tools:e.filter(t=>t.tool.kind!=="provider"),providerTools:e.filter(t=>t.tool.kind==="provider")}}const Pt=c_,Ff=pn+dt+mt,X2=Kr,Gl=Kr,Y2=Ze(4),Z2=Jt+fn+gn,jf=gn,Xs=Kr,Q2=jn+St/2,Ys=Ze(4),qf=Ze(3),oa=Ze(2),e$=Pt/2+gn,zf=Ze(2),Vf=Ze(4),sa=Ze(4),qn=Ze(4),xo=pn+dt/2,Jl=xo+gn,t$=Ze(4),n$=Ze(2),r$=Ze(1),a$=Ze(4),o$=Ze(2),xu="spawns",s$="returns",bn=Un,Ua=Kr,ms=Ze(10),Zs=Jt+fn+Jt,ku=Zs+bn+Jt+fn+Jt,l$=Kr,hr=b_,wu=Ze(3),_u=Ze(2),_r=Ze(4),Qr=Ze(4),i$=Kr,u$=gn,d$=Ze(4),Hf=e=>`${e}::model`,Uf=e=>`${e}::chip`,it={busStub:e=>`${e}::bus-stub`,busTap:e=>`${e}::bus-tap`,bus:e=>`${e}::bus`,busReturn:e=>`${e}::return`,message:e=>`${e}::message`,reply:e=>`${e}::reply`,entry:e=>`${e}::entry`,blockReturn:e=>`${e}::return`,link:e=>`${e}::link`,linkOn:e=>`${e}::link-on`,returns:e=>`${e}::returns`,source:e=>`${e}::wire`},_n={stopOnResponse:(e,t)=>`${e}::stop-${t}`,sessionTurns:e=>`${e}::turns`,busRule:e=>`${e}::bus-rule`,pastTools:e=>`${e}::past-tools`};function rn(e,t,n,r=Aa){return{id:e.id,selectionId:e.selectionId,kind:e.kind,label:$f(e.name,n,r),fullLabel:e.name,kicker:e.kicker,caption:e.caption,containerId:e.containerId,summary:e.summary,...e.unoffered?{unoffered:!0}:{},...e.warning?{warning:!0}:{},...t}}function er(e,t=!1){return Math.min(p_,Math.max(kf,va+(t?wf:0)+Tt(e,Aa)))}function La(e,t=!1){return e-va-(t?wf:0)}function jr(e,t,n,r=er(e.name,e.warning)){return rn(e,{x:t,y:n,width:r,height:dt},La(r,e.warning))}function tr(e){return Math.min(h_,Math.max(kf,va+Math.max(Tt(e.entry.id,Aa),Tt(e.entry.hook,_f))))}function qr(e,t,n,r=tr(e)){return rn({id:e.selectionId,selectionId:e.selectionId,kind:"hook",name:e.entry.id,caption:$f(e.entry.hook,r-va,_f),summary:B2(e)},{x:t,y:n,width:r,height:Pt},r-va)}function Kf(e){return Tt(e,I_)+x_*2}function $r(e,t,n,r,a){return{id:e,text:t,x:n,y:r,width:Kf(t),height:fn,tone:a}}function pt(e,t,n,r,a,o,s){e.wires.push({id:t,points:n,style:r,arrow:a,from:o,to:s})}function Wf(e){return e.length===0?0:Ys+Math.max(...e.map(tr))}function c$(e){return e.length===0?0:Vf+e.length*Pt+(e.length-1)*zf}function Gf(e,t,n,r,a="right"){if(t.length===0)return;let o=n.y;t.forEach((s,i)=>{const d=n.y-Vf-(i+1)*Pt-i*zf,p=tr(s),f=a==="right"?n.x+Ys:n.x-Ys-p;e.components.push(qr(s,f,d));const m=d+Pt/2,g=a==="right"?f:f+p;pt(e,`${s.selectionId}::stub`,[{x:n.x,y:m},{x:g,y:m}],"tap",!1,r,s.selectionId),i<t.length-1&&e.junctions.push({x:n.x,y:m}),o=m}),pt(e,`${t[0].selectionId}::spine`,[n,{x:n.x,y:o}],"tap",!1,r,t[t.length-1].selectionId),e.junctions.push(n)}function Qs(e,t,n,r,a){return jr({id:Hf(e),selectionId:t.selectionId,kind:"model",name:t.name,summary:N2(t.model,t.name)},n,r,a)}function Jf(e,t){return{id:e.selectionId,selectionId:e.selectionId,kind:e.kind,name:e.tool.displayName||e.tool.name,summary:Wl(e.tool,t),...e.tool.unoffered?{unoffered:!0}:{}}}function f$(e,t){const n=new Xt,r=Jf(e,t);if(e.kind==="handoff")return n.components.push(jr(r,0,0)),{fragment:n.toFragment().fragment,anchor:{x:0,y:dt/2},headId:e.selectionId};const a=er(r.name);return n.components.push(rn(r,{x:0,y:0,width:a,height:dt},La(a))),{fragment:n.toFragment().fragment,anchor:{x:0,y:dt/2},headId:e.selectionId}}function Xf(e){return{id:e.selectionId,selectionId:e.selectionId,kind:"subprompt",name:e.tool.displayName||e.tool.name,summary:Wl(e.tool)}}function p$(e){return!!(e&&(e.items.length>0||e.hooks.length>0))}function h$(e){const t=new Xt,n=jr(Xf(e),0,0);if(t.components.push(n),e.model){const r=Qs(e.selectionId,e.model,n.width+Xs,0);t.components.push(r),pt(t,`${e.selectionId}::model-wire`,[{x:n.width,y:dt/2},{x:r.x,y:dt/2}],"model",!0,n.id,r.id)}return{fragment:t.toFragment().fragment,head:{x:0,y:0}}}function m$(e){const t=p$(e.circuit)?Zf(e.circuit,{kind:"chip",spec:Xf(e)},"right",e.circuit.hooks):h$(e),n=new Xt,r=t.fragment.width+hr*2,a=t.fragment.height+hr*2;return n.frames.push({id:`${e.selectionId}::frame`,kind:"subprompt",ownerId:e.selectionId,x:0,y:0,width:r,height:a}),n.place(t.fragment,hr,hr),{fragment:n.toFragment().fragment,anchor:{x:hr+t.head.x,y:hr+t.head.y+dt/2},headId:e.selectionId}}function g$(e){const t=e.occurrence;if(!t)return"loading";switch(t.status){case"loaded":return;case"packed":return"packed agent";case"missing":return"agent not found";case"cycle":return`cycle: ${t.agentName}`;case"failed":return"failed to load"}}function v$(e){const t=new Xt,r={id:!!e.agent?Uf(e.selectionId):e.selectionId,selectionId:e.referenceId??e.selectionId,kind:"subagent",name:e.tool.displayName||e.tool.name,caption:g$(e),summary:e.agent?Df(e.agent.agent,e.tool):Wl(e.tool)},a=er(r.name),o=r.caption?Pt:dt;return t.components.push(rn(r,{x:0,y:0,width:a,height:o},La(a))),e.agent&&t.ports.push({chipId:r.id,blockId:e.agent.selectionId,x:a,y:o/2}),{fragment:t.toFragment().fragment,anchor:{x:0,y:o/2},headId:r.id}}function y$(e,t,n,r){const a=new Xt,o=U2(t),s=J2(e),i=jl(r),d=new Map(e.map(A=>[A,{...Jf(A,r),containerId:o}])),p=Math.ceil(Math.max(...[...d.values()].map(A=>er(A.name)))),f=W2(Math.max(s.tools.length,s.providerTools.length),p,n),m=aa*2+f*p+(f-1)*bo;let g=Ha;const v=[],_=aa/2,b=A=>{const L=Math.ceil(A.length/f);L!==0&&(G2(A.length,f).forEach(({column:k,row:S},T)=>{const B={x:aa+k*(p+bo),y:g+S*(dt+hs),width:p,height:dt},q=d.get(A[T]);if(q){a.components.push(rn(q,B,La(p)));const H=B.x+Math.round(B.width/2),N=B.y-hs/2;pt(a,`${q.id}::bank-wire`,[{x:0,y:Ha/2},{x:_,y:Ha/2},{x:_,y:N},{x:H,y:N},{x:H,y:B.y}],"bus",!1,o,q.id)}}),g+=L*dt+(L-1)*hs)};b(s.tools),s.providerTools.length>0&&(s.tools.length>0&&(v.push({label:i,y:g+wr}),g+=V2),b(s.providerTools));const C=g+aa,y=rn({id:o,selectionId:o,kind:"bank",name:`${e.length}`,kicker:s.tools.length>0?"Tools":i,summary:D2(e.map(A=>A.tool),r)},{x:0,y:0,width:m,height:C},m);return a.components.unshift(v.length>0?{...y,sections:v}:y),{fragment:a.toFragment().fragment,anchor:{x:0,y:Ha/2},headId:o}}function b$(e,t){return e.kind==="subprompt"?m$(e):e.kind==="subagent"?v$(e):f$(e,t)}function x$(e){return e.toolHistoryFinding?{text:Es,tone:"warning"}:rh(e.prompt)?{text:Es,tone:"rule"}:void 0}function Yf(e,t,n,r,a){if(n.length===0&&r.length===0&&a.length===0)return;const o=t.rect.x+t.inset,s=t.rect.y+t.rect.height;if(t.label){const k=o+Cr;e.texts.push({id:`${t.id}::bus-label`,text:t.label,x:k,y:Ul(s),anchor:"start"});let S=k+Tt(t.label,Qn)+Ot;const T=s+Jt;if(t.rule){const B=$r(_n.busRule(t.id),t.rule,S,T,"rule");e.pills.push(B),S=B.x+B.width+Ot}t.pastTools&&e.pills.push($r(_n.pastTools(t.id),t.pastTools.text,S,T,t.pastTools.tone))}const i=o+X2;let d=s+t.headBand;const p=Math.max(0,...[...r,...a].map(tr)),f=k=>{e.components.push(qr(k,i,d,p));const S=d+Pt/2;return pt(e,it.busTap(k.selectionId),[{x:o,y:S},{x:i,y:S}],"tap",!1,t.id,k.selectionId),d+=Pt+gn,S},m=r.map(f),g=K2(n),v=t.provider??null,_=g.map(k=>k.kind==="item"?b$(k.item,v):null),b=Math.max(H2,..._.map(k=>k?.fragment.width??0));for(const[k,S]of g.entries()){const T=_[k]??(S.kind==="bank"?y$(S.items,t.id,b,v):null);if(!T)continue;e.place(T.fragment,i,d);const B=d+T.anchor.y;pt(e,it.busStub(T.headId),[{x:o,y:B},{x:i+T.anchor.x,y:B}],"bus",!0,t.id,T.headId),m.push(B),d+=T.fragment.height+gn}const C=m.length>0?Math.max(...m):s+t.headBand;if(m.length>0&&pt(e,it.bus(t.id),[{x:o,y:s},{x:o,y:C}],"bus",!1,t.id,t.id),a.length===0){for(const k of m)k!==C&&e.junctions.push({x:o,y:k});return}d+=oa;const y=a.map(f),A=Math.max(...y)+e$,L=o-qf;for(const k of[...m,...y])e.junctions.push({x:o,y:k});pt(e,it.busReturn(t.id),[{x:o,y:C},{x:o,y:A},{x:L,y:A},{x:L,y:s}],"return",!0,t.id,t.id)}function zn(e,t){return e.filter(n=>t.includes(n.target))}function Zf(e,t,n,r){const a=new Xt,o=C2(zn(r,["request"]),C=>C.entry.hook);let s,i,d;if(t.kind==="panel"){const C=`Side ${t.side.id.toUpperCase()}`,y=t.side.toolHistoryFinding??null,A=Tt(C,Uo),L=Math.max(g_,er(e.name,!!y)+mt*2,e.model?er(e.model.name)+mt*2:0,...o.map(W=>tr(W)+mt*2),wn+A+Ot+Tt(t.side.label,Qn)+mt),k=L-mt*2;i=t.sideSelectionId;const S=jr({id:e.selectionId,selectionId:e.selectionId,kind:"prompt",name:e.name,containerId:t.sideSelectionId,summary:P2(e.prompt,e.name,y),...y?{warning:!0}:{}},mt,pn,k),T=mt+Q2;let B=pn+dt,q=S.id;const H=[];for(const W of o){const E={...qr(W,mt,B+fu,k),containerId:t.sideSelectionId};pt(a,`${W.selectionId}::request-in`,[{x:T,y:B},{x:T,y:E.y}],"model",!0,q,E.id),H.push(E),q=E.id,B=E.y+Pt}const N=e.model?{...Qs(e.selectionId,e.model,mt,B+fu,k),containerId:t.sideSelectionId}:null;N&&(pt(a,`${e.selectionId}::model-wire`,[{x:T,y:B},{x:T,y:N.y}],"model",!0,q,N.id),B=N.y+dt),s={x:0,y:0,width:L,height:N||H.length>0?B+mt:Ff},a.components.push(rn({id:t.sideSelectionId,selectionId:t.sideSelectionId,kind:"side",name:t.side.label,kicker:C,summary:Bf(t.side)},s,L-wn-A-Ot-mt,Qn),S,...H,...N?[N]:[]);const P=n==="right",U=P?0:L,V=W=>P?W.x:W.x+W.width,Y=P?xo:Jl,$=Y>S.y&&Y<S.y+dt?Y:S.y+dt/2;pt(a,`${e.selectionId}::inlet`,[{x:U,y:$},{x:V(S),y:$}],"signal",!1,i,S.id);const D=N??H[H.length-1];if(D){const W=D.y+D.height/2;pt(a,`${e.selectionId}::outlet`,[{x:V(D),y:W},{x:U,y:W}],"signal",!1,D.id,i)}d={rect:s,id:i}}else{const C=jr(t.spec,0,0);a.components.push(C),s={x:0,y:0,width:C.width,height:dt},i=C.id,d={rect:s,id:i};const y=dt/2;let A=s.width,L=C.id;for(const k of o){const S=qr(k,A+Xs,y-Pt/2);a.components.push(S),pt(a,`${k.selectionId}::request-in`,[{x:A,y},{x:S.x,y}],"model",!0,L,S.id),L=S.id,A=S.x+S.width}if(e.model){const k=Qs(e.selectionId,e.model,A+Xs,0);a.components.push(k),pt(a,`${e.selectionId}::model-wire`,[{x:A,y},{x:k.x,y}],"model",!0,L,k.id),d={rect:k,id:k.id}}}t.kind==="chip"&&Gf(a,zn(r,["thread","message"]),{x:s.x+20,y:s.y},i);const p=C=>S2(C,y=>y.entry.hook),f=p(zn(r,["toolCall"])),m=p(zn(r,["toolResult"])),g=t.kind==="panel",v=Y2+(m.length>0?qf:0);Yf(a,{rect:d.rect,id:d.id,inset:g?Gl:v,headBand:g?Z2:jf,label:g?"tool calls":void 0,rule:g&&t.side.maxSteps?`maxSteps: ${t.side.maxSteps}`:void 0,pastTools:g?x$(t.side):void 0,provider:e.model?.model?.provider??null},e.items,f,m);const{fragment:_,offset:b}=a.toFragment();return{fragment:_,head:{...s,x:s.x+b.x,y:s.y+b.y}}}function $u(e){const{side:t}=e;if(e.circuit){const f=Zf(e.circuit,{kind:"panel",side:t,sideSelectionId:e.selectionId},t.id==="b"?"left":"right",e.circuit.hooks.filter(m=>m.target!=="message"&&m.target!=="thread"));return{fragment:f.fragment,panel:f.head}}const n=new Xt,r=t.mode==="handler",a=r&&t.handlerName||t.label,o=`Side ${t.id.toUpperCase()}`,s=mt+St+Ho,i=r?Aa:S_,d=Math.max(v_,s+Tt(a,i)+mt,wn+Tt(o,Uo)+mt),p={x:0,y:0,width:d,height:Ff};return n.components.push(rn({id:e.selectionId,selectionId:e.selectionId,kind:r?"handler":"person",name:a,kicker:o,summary:Bf(t)},p,d-s-mt,i)),Yf(n,{rect:p,id:e.selectionId,inset:Gl,headBand:jf},e.items,[],[]),{fragment:n.toFragment().fragment,panel:p}}function Iu(e){if(!e.relationship)return!1;if(e.relationship.relationship?.parentCommunication!=="explicit")return!0;const{agent:t}=e;return[t.side_a_session_stop_tool,t.side_a_session_fail_tool,t.side_a_session_status_tool,t.side_b_session_stop_tool,t.side_b_session_fail_tool,t.side_b_session_status_tool].some(Boolean)}function Qf(e,t){const n=e.slice(1).map((r,a)=>{const o=e[a],s=Math.sign(r.x-o.x);return{x:-Math.sign(r.y-o.y)*t,y:s*t}});return e.map((r,a)=>{const o=n[a-1]??{x:0,y:0},s=n[a]??{x:0,y:0},i=o.x===s.x&&o.y===s.y;return{x:r.x+s.x+(i?0:o.x),y:r.y+s.y+(i?0:o.y)}})}function k$(e,t){const n=t.relationship;if(!n)return[];const r=[];return n.agent&&n.agent!==e&&r.push(`agent: ${n.agent}`),r.push(n.blocking?"blocking":"background"),n.maxInstances&&r.push(`maxInstances: ${n.maxInstances}`),n.parentCommunication==="explicit"&&r.push("parentCommunication: explicit"),n.hidden&&r.push("hidden"),r}function ko(e){return e?.circuit?T2(zn(e.circuit.hooks,["message"]),t=>t.entry.hook):[]}function w$(e){return!!(e&&[...e.items,...e.circuit?.items??[]].some(t=>t.kind==="subagent"&&t.agent))}function wo(e){return!e?.circuit||!w$(e)?[]:zn(e.circuit.hooks,["thread"]).filter(t=>t.entry.hook==="after_subagent_created")}function _$(e){const t=new Set([...wo(e.sideA),...wo(e.sideB)]),n=[e.sideB,e.sideA].flatMap(r=>r?.circuit?zn(r.circuit.hooks,["thread"]):[]).filter(r=>!t.has(r));return Js(n,r=>r.entry.hook)}const el="stops on response";function _o(e,t){const n=t?Ot+Kf(el):0;return Tt(e,Qn)+n}function $$(e){const t=_r+Cr,n=_r+qn/2+Cr,r=e.entrySources??[],a=e.sideB?.circuit?t:qn;return{messageLeft:e.relationship!==null||r.some(o=>o.side==="a")?n:a,messageRight:r.some(o=>o.side==="b")?n:qn,replyLeft:a,replyRight:e.sideA?.circuit?t:qn}}function I$(e,t,n){const a=[...ko(e.sideB),...ko(e.sideA)].reduce((o,s)=>o+sa+Wf([s]),0);return Math.max(y_,n.messageLeft+_o("message",t.message)+a+n.messageRight,n.replyLeft+_o("reply",t.reply)+n.replyRight)}const S$=Jl+Jt+fn;function C$(e,t){const n=[...e.components,...e.pills,...e.frames].filter(a=>a.y<t),r=e.wires.flatMap(a=>a.points).filter(a=>a.y<t);return Math.max(0,...n.map(a=>a.x+a.width),...r.map(a=>a.x))}function T$(e){const{agent:t,relationship:n}=e,r=n!==null,a=new Xt,o=r?"Subagent":"Agent",s=r?n.displayName||n.name:t.title||t.name,i=Tt(o,Uo),d=Math.min(m_,wn+i+Ot+Tt(s,Aa)+mt),p=_$(e),f=p.length>0?Pt:cs,m=pr+f/2,g=rn({id:e.selectionId,selectionId:e.selectionId,kind:"agent",name:s,kicker:o,summary:Df(t,n)},{x:pr,y:m-cs/2,width:d,height:cs},d-wn-i-Ot-mt);a.components.push(g);let v=g.x+g.width,_=g.id;for(const F of p){const ce=qr(F,v+l$,m-Pt/2);a.components.push(ce),pt(a,`${F.selectionId}::lane-in`,[{x:v,y:m},{x:ce.x,y:m}],"signal",!0,_,ce.id),_=ce.id,v=ce.x+ce.width}for(const[F,ce]of(n?k$(s,n):[]).entries()){const he=$r(`${e.selectionId}::relationship-${F}`,ce,v+Ot,m-fn/2,"rule");a.pills.push(he),v=he.x+he.width}if(t.max_session_turns){const F=$r(_n.sessionTurns(e.selectionId),`maxSessionTurns: ${t.max_session_turns}`,v+Ot,m-fn/2,"rule");a.pills.push(F),v=F.x+F.width}const b=t._variables?.length??0;if(b>0){const F=jr({id:`${e.selectionId}::variables`,selectionId:e.selectionId,kind:"variables",name:`${b} variable${b===1?"":"s"}`,summary:F2(t)},v+Ot,m-dt/2);a.components.push(F),v=F.x+F.width}const C=e.sideB?$u(e.sideB):null,y=e.sideA?$u(e.sideA):null,A={message:!!(e.sideB?.side.stopOnResponse&&e.sideB.circuit),reply:!!e.sideA?.side.stopOnResponse},L=ko(e.sideB),k=ko(e.sideA),S=$$(e),T=I$(e,A,S),B=c$([...L,...k].slice(0,1)),q=Math.max(C?.panel.y??0,y?.panel.y??0,B-xo+Un),N=pr+f+wu,P=N+wu,U=pr,V=U+(C?.fragment.width??0),Y=C?U+C$(C.fragment,C.panel.y+Math.max(C.panel.height,S$)):U,$=Y+T,D=P+q,W=y?Math.max($-y.panel.x,V+sa):$;C&&a.place(C.fragment,U,D-C.panel.y);const E=a.ports.splice(0);y&&a.place(y.fragment,W,D-y.panel.y);const X=a.ports.splice(0),re=C?U+C.panel.x+C.panel.width:Y,ne=y?W+y.panel.x:$,de=D+xo,ue=D+Jl,ae=e.sideB?.selectionId??e.selectionId,xe=e.sideA?.selectionId??e.selectionId,Re=(F,ce)=>{const he=F?.circuit?a.wires.find(Pe=>Pe.id===`${F.circuit?.selectionId}::${ce}`)?.points:void 0;return he?ce==="inlet"?he[0]:he[he.length-1]:null},Me=(F,ce,he)=>F&&F.y!==ce?[F,{x:F.x+he,y:F.y},{x:F.x+he,y:ce}]:[],Ee=Math.max(Y+qn/2,re+_r+qn/2);if(y&&C){const F=Me(Re(e.sideB,"outlet"),de,_r),ce=Me(Re(e.sideA,"inlet"),de,-_u).reverse(),he=Me(Re(e.sideA,"outlet"),ue,-_r),Pe=Me(Re(e.sideB,"inlet"),ue,_u).reverse(),We=[...F.length>0?F:[{x:re,y:de}],...ce.length>0?ce:[{x:ne,y:de}]],Ue=[...he.length>0?he:[{x:ne,y:ue}],...Pe.length>0?Pe:[{x:re,y:ue}]];pt(a,it.message(e.selectionId),We,"signal",!0,ae,xe),pt(a,it.reply(e.selectionId),Ue,"signal",!0,xe,ae);const Se=Y+S.messageLeft;if(a.texts.push({id:`${e.selectionId}::message-label`,text:"message",x:Se,y:Ws(de),anchor:"start"}),A.message){const Xe=Se+Tt("message",Qn)+Ot;a.pills.push($r(_n.stopOnResponse(e.selectionId,"b"),el,Xe,de-Jt-fn,"rule"))}const ge=Y+S.replyLeft,$e=ne-S.replyRight,_e=Math.round((ge+$e)/2-_o("reply",A.reply)/2);if(a.texts.push({id:`${e.selectionId}::reply-label`,text:"reply",x:_e,y:Ul(ue),anchor:"start"}),A.reply){const Xe=_e+Tt("reply",Qn)+Ot;a.pills.push($r(_n.stopOnResponse(e.selectionId,"a"),el,Xe,ue+Jt,"rule"))}let De=Se+_o("message",A.message)+sa;for(const[Xe,rt]of[[L,ae],[k,xe]])for(const kt of Xe)Gf(a,[kt],{x:De,y:de},rt),De+=Wf([kt])+sa;if(r){const Xe=g.y+g.height,rt=N,kt=Ee,At=Mr([{x:g.x+Ua,y:Xe},{x:g.x+Ua,y:rt},{x:kt,y:rt},{x:kt,y:de}]);if(pt(a,it.entry(e.selectionId),At,"subagent",!1,e.selectionId,xe),a.junctions.push({x:kt,y:de}),Iu(e)){const Lt=Qf(At,bn).reverse();pt(a,it.blockReturn(e.selectionId),Lt,"subagent",!1,xe,e.selectionId),a.junctions.push(Lt[0])}}}const ke=N;let ie=v+i$;for(const F of e.entrySources??[]){const ce=F.side==="a"?y:C;if(!ce)continue;const he=er(F.label),Pe=rn({id:F.id,selectionId:e.selectionId,kind:"source",name:F.label,summary:{kind:"Entry source",title:F.label,description:"Starts runs from outside the drawn parts",rows:[]}},{x:ie,y:-d$-ds,width:he,height:ds},La(he));a.components.push(Pe),ie+=he+u$;const We=F.side==="a"?xe:ae,Ue=y&&C,Se=Ue?F.side==="a"?{x:Ee,y:de}:{x:ne-_r-qn/2,y:ue}:{x:(F.side==="a"?W:U)+ce.panel.x+Gl,y:D},ge=Pe.x+Math.round(he/2),$e=Mr([{x:ge,y:Pe.y+ds},{x:ge,y:ke},{x:Se.x,y:ke},Se]);pt(a,it.source(F.id),$e,"signal",!0,F.id,We),Ue&&a.junctions.push(Se)}const se=a.bounds(),me=se.y+se.height,pe=F=>me+t$+F*n$,Fe=Math.max(se.x+se.width,v)+pr,fe=(E.length>0?pe(E.length-1):me)+pr;a.frames.push({id:`${e.selectionId}::frame`,kind:r?"subagent":"agent",ownerId:e.selectionId,x:0,y:0,width:Fe,height:fe});const Te=Math.min(r$,(sa-8)/Math.max(1,E.length)),Z=[...X.map(F=>({chipId:F.chipId,blockId:F.blockId,hooks:Js(wo(e.sideA),ce=>ce.entry.hook),points:[{x:F.x,y:F.y},{x:Fe,y:F.y}]})),...E.map((F,ce)=>{const he=V+4+ce*Te;return{chipId:F.chipId,blockId:F.blockId,hooks:Js(wo(e.sideB),Pe=>Pe.entry.hook),points:[{x:F.x,y:F.y},{x:he,y:F.y},{x:he,y:pe(ce)},{x:Fe,y:pe(ce)}]}})].sort((F,ce)=>F.points[F.points.length-1].y-ce.points[ce.points.length-1].y),{fragment:ee,offset:oe}=a.toFragment(),Oe=F=>({x:F.x+oe.x,y:F.y+oe.y});return{fragment:ee,entry:Oe({x:g.x+Ua,y:g.y}),returnStart:r&&Iu(e)?Oe({x:g.x+Ua-bn,y:g.y}):null,exits:Z.map(F=>({...F,points:F.points.map(Oe)}))}}function Mr(e){const t=e.filter((n,r)=>r===0||n.x!==e[r-1].x||n.y!==e[r-1].y);return t.filter((n,r)=>{if(r===0||r===t.length-1)return!0;const a=t[r-1],o=t[r+1];return!(a.x===n.x&&n.x===o.x||a.y===n.y&&n.y===o.y)})}const ep=(e,t)=>`${e}::spawn:${t}`;function M$(e,t,n,r,a){const o=[e[0]];for(let s=1;s<e.length;s++){const i=e[s-1],d=e[s],p=Math.min(i.y,d.y),f=Math.max(i.y,d.y);if(i.x===t&&d.x===t&&p<n&&f>r){const[m,g]=i.y<d.y?[n,r]:[r,n];o.push({x:t,y:m},{x:a,y:m},{x:a,y:g},{x:t,y:g})}o.push(d)}return Mr(o)}function tp(e){const t=T$(e);if(t.exits.length===0)return t;const n=A$(e),r=new Xt;r.place(t.fragment,0,0);const o=Math.max(...t.exits.map(v=>v.points[v.points.length-1].y))+Qr,s=Math.max(...t.exits.map(v=>v.hooks.length)),i=o+s*(Pt+Qr)-Qr;let d=Math.max(t.fragment.height+ku,s>0?i+2*Qr+Zs:0);const p=t.exits.flatMap(v=>{const _=n.find(A=>A.selectionId===v.blockId);if(!_)return[];const b=tp(_);r.place(b.fragment,ms,d);const C={x:ms+b.entry.x,y:d+b.entry.y},y=d-Zs;return d+=b.fragment.height+ku,[{exit:v,entry:C,laneY:y,returns:b.returnStart!==null,right:ms+b.fragment.width}]});let f=t.fragment.width;p.forEach(({exit:v,entry:_,laneY:b,returns:C,right:y},A)=>{const L=Math.max(0,...v.hooks.map(q=>tr(q))),k=f+a$+A*o$+Math.ceil(L/2);f=Math.max(f,y,v.hooks.length>0?k+Math.ceil(L/2):0);const S=v.points[v.points.length-1].y,T=Mr([...v.points,{x:k,y:S},{x:k,y:b},{x:_.x,y:b},_]);if(v.hooks.length===0)pt(r,it.link(v.blockId),T,"subagent",!0,v.chipId,v.blockId);else{const q=v.hooks.map((P,U)=>{const V=tr(P),Y={...qr(P,k-Math.round(V/2),o+U*(Pt+Qr)),id:ep(P.selectionId,v.blockId)};return r.components.push(Y),Y}),H=q[0],N=q[q.length-1];pt(r,it.link(v.blockId),Mr([...v.points,{x:k,y:S},{x:k,y:H.y}]),"subagent",!0,v.chipId,H.id),q.slice(1).forEach((P,U)=>{const V=q[U];pt(r,`${P.id}::in`,[{x:k,y:V.y+V.height},{x:k,y:P.y}],"subagent",!0,V.id,P.id)}),pt(r,it.linkOn(v.blockId),Mr([{x:k,y:N.y+N.height},{x:k,y:b},{x:_.x,y:b},_]),"subagent",!0,N.id,v.blockId)}if(!C){r.texts.push({id:`${v.blockId}::link-label`,text:xu,x:_.x+Cr,y:Ws(b),anchor:"start"});return}let B=Qf(T,bn).reverse();if(v.hooks.length>0){const q=B.some(N=>N.x===k+bn)?k+bn:k-bn,H=q<k?k-Math.ceil(L/2)-oa:k+Math.ceil(L/2)+oa;B=M$(B,q,o-oa,i+oa,H)}pt(r,it.returns(v.blockId),B,"subagent",!0,v.blockId,v.chipId),r.texts.push({id:`${v.blockId}::link-label`,text:xu,x:_.x+Cr,y:Ul(b),anchor:"start"}),r.texts.push({id:`${v.blockId}::returns-label`,text:s$,x:_.x+Cr,y:Ws(b-bn),anchor:"start"})});const{fragment:m,offset:g}=r.toFragment();return{fragment:m,entry:{x:t.entry.x+g.x,y:t.entry.y+g.y},returnStart:t.returnStart?{x:t.returnStart.x+g.x,y:t.returnStart.y+g.y}:null,exits:[]}}function A$(e){const t=[];for(const n of[e.sideB,e.sideA])if(n)for(const r of[...n.items,...n.circuit?.items??[]])r.kind==="subagent"&&r.agent&&t.push(r.agent);return t}function $o(e){const{fragment:t}=tp(e);return{components:t.components,wires:t.wires,junctions:t.junctions,hops:o2(t.wires,t.junctions,t.frames),texts:t.texts,pills:t.pills,frames:t.frames,bounds:{x:0,y:0,width:t.width,height:t.height}}}function np(e){const t=e.children,n=x(()=>[e.sides.value,...Object.values(t.value).flatMap(i=>i.status==="loaded"?[i.sides]:[])]),r=Mc(e.agent,n,e.models,e.toolsCatalog,e.refreshEpoch),a=x(()=>{const i=e.agent.value;return i?Of({agent:i,sides:e.sides.value,children:t.value,external:r.value,hooks:e.hooks.value}):null}),o=x(()=>a.value?$o(a.value):null);function s(i){return o.value?.components.filter(d=>d.selectionId===i)??[]}return{model:a,layout:o,componentsFor:s}}const L$={class:"shrink-0 border-b border-neutral-200 p-3 dark:border-neutral-800","aria-label":"Navigator"},R$=["width","height","viewBox"],E$=["x","y","width","height"],P$=["points"],N$=["x","y","width","height"],O$=["x","y","width","height"],Su=180,D$=10,B$=we({__name:"CircuitNavigator",props:{layout:{},state:{},view:{}},emits:["pan"],setup(e,{emit:t}){const n=e,r=t,a=R(null),{width:o,height:s}=Ur(a),i=x(()=>pw(n.state,n.view)),d=x(()=>({width:o.value,height:s.value||Su})),p=x(()=>cw(n.layout.bounds,d.value,D$)),f=x(()=>fw(p.value,d.value)),m=x(()=>{const{x:k,y:S,width:T,height:B}=p.value;return`${k} ${S} ${T} ${B}`});function g(k){return k.map(S=>`${S.x},${S.y}`).join(" ")}const v=R(null);let _=null;function b(k){const S=v.value?.getBoundingClientRect();return S?hw({x:k.clientX-S.left,y:k.clientY-S.top},p.value,f.value):null}function C(k){r("pan",yf(k,n.state.scale,n.view))}function y(k){if(k.button!==0)return;const S=b(k);if(!S)return;const T=i.value,B=S.x>=T.x&&S.x<=T.x+T.width&&S.y>=T.y&&S.y<=T.y+T.height,q={x:T.x+T.width/2,y:T.y+T.height/2};_=B?{x:S.x-q.x,y:S.y-q.y}:{x:0,y:0},k.currentTarget.setPointerCapture(k.pointerId),C({x:S.x-_.x,y:S.y-_.y})}function A(k){if(!_)return;const S=b(k);S&&C({x:S.x-_.x,y:S.y-_.y})}function L(k){_&&(_=null,k.currentTarget.releasePointerCapture(k.pointerId))}return(k,S)=>(l(),c("section",L$,[u("div",{ref_key:"frameRef",ref:a,class:"overflow-hidden rounded-md border border-neutral-200 bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-900/60",style:nt({height:`${Su}px`})},[(l(),c("svg",{ref_key:"svgRef",ref:v,class:"block cursor-pointer touch-none",width:f.value.width,height:f.value.height,viewBox:m.value,role:"img","aria-label":"Diagram overview. Click or drag to move the view.",onPointerdown:y,onPointermove:A,onPointerup:L,onPointercancel:L},[(l(!0),c(te,null,Ie(e.layout.frames,T=>(l(),c("rect",{key:T.id,class:J(["fill-none",T.kind==="subprompt"?"stroke-amber-400/70":"stroke-neutral-300 dark:stroke-neutral-600"]),x:T.x,y:T.y,width:T.width,height:T.height,rx:"6","stroke-width":"1","vector-effect":"non-scaling-stroke"},null,10,E$))),128)),(l(!0),c(te,null,Ie(e.layout.wires,T=>(l(),c("polyline",{key:T.id,class:"fill-none stroke-neutral-300 dark:stroke-neutral-600",points:g(T.points),"stroke-width":"0.75","vector-effect":"non-scaling-stroke"},null,8,P$))),128)),(l(!0),c(te,null,Ie(e.layout.components,T=>(l(),c("rect",{key:T.id,class:"fill-neutral-400/70 dark:fill-neutral-500/70",x:T.x,y:T.y,width:T.width,height:T.height,rx:"2"},null,8,N$))),128)),u("rect",{class:"cursor-grab fill-accent-500/10 stroke-accent-500",x:i.value.x,y:i.value.y,width:i.value.width,height:i.value.height,"stroke-width":"1.5","vector-effect":"non-scaling-stroke"},null,8,O$)],40,R$))],4)]))}}),F$={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function j$(e,t){return l(),c("svg",F$,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"},null,-1)])])}const Cu=Ye({name:"lucide-zap",render:j$}),q$={},z$={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 V$(e,t){return l(),c("svg",z$,[...t[0]||(t[0]=[u("rect",{width:"128",height:"128",rx:"6",fill:"#3178c6"},null,-1),u("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 Tu=ot(q$,[["render",V$]]),H$={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function U$(e,t){return l(),c("svg",H$,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 5H3m9 14H3M14 3v4m2 10v4m5-9h-9m9 7h-5m5-14h-7m-6 5v4m0-2H3"},null,-1)])])}const Mu=Ye({name:"lucide-sliders-horizontal",render:U$}),K$={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function W$(e,t){return l(),c("svg",K$,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M7 7h10v10M7 17L17 7"},null,-1)])])}const Xl=Ye({name:"lucide-arrow-up-right",render:W$}),G$={class:"relative"},J$=["aria-pressed"],X$={key:1,class:"mt-[2px] inline-block h-3 w-3 shrink-0"},Y$={class:"min-w-0 flex-1"},Z$={class:"flex min-w-0 items-start gap-2"},Q$={key:2,class:"mt-[1px] shrink-0 text-[11px] leading-none font-medium text-red-600 dark:text-red-400","aria-label":"Required"},e5={key:4,class:"ml-auto shrink-0 truncate pl-2 text-[11px] text-neutral-400 dark:text-neutral-500",style:{"max-width":"35%"}},t5={key:0,class:"mt-0.5 flex flex-wrap gap-x-2"},n5={key:2,class:"mt-1 grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-[11px]"},r5={class:"truncate text-neutral-400 dark:text-neutral-500"},a5={key:0,class:"relative"},o5="text-neutral-500 dark:text-neutral-400",s5="text-neutral-700 dark:text-neutral-300",l5="text-red-600 dark:text-red-400",i5=10,u5=we({__name:"StructureTreeRow",props:{node:{},depth:{},collapsed:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{},activeRowId:{}},emits:["select","hover","toggle"],setup(e,{emit:t}){const n={tool:Tu,prompt:Us,subagent:xn,handoff:bf,provider:ra,mcp:ra,unknown:ns},r={agent:xn,side:xn,prompt:Us,model:sc,variables:Ks,variable:Ks,hooks:Cu,hook:Cu,tools:ns,tool:Tu,subagent:xn,config:Mu,section:Mu,schema:ra},a=e,o=t,s={agent:"Open agent",prompt:"Open prompt page",model:"Open model page",tool:"Open tool page"},i=x(()=>{const $=a.node.reference;return $?{to:Rr[$.kind]($.name),label:s[$.kind]}:null}),d=x(()=>!!a.node.children&&a.node.children.length>0),p=x(()=>d.value||a.node.collapsibleBody===!0),f=x(()=>!!a.node.isRoot),m=x(()=>f.value?!0:!a.collapsed.has(a.node.id)),g=x(()=>a.selectedCanvasNodeId===a.node.canvasNodeId);function v($){if(!$)return!1;const D=[...a.node.children||[]];for(;D.length>0;){const W=D.pop();if(W.cardBacked===!0&&W.canvasNodeId===$)return!0;W.children?.length&&D.push(...W.children)}return!1}const _=x(()=>a.activeRowId?a.activeRowId===a.node.id:a.node.cardBacked===!0&&g.value&&!v(a.selectedCanvasNodeId)),b=x(()=>a.node.cardBacked===!0&&a.hoveredCanvasNodeId===a.node.canvasNodeId&&!v(a.hoveredCanvasNodeId??null)),C=x(()=>f.value?0:Math.max(0,a.depth-1)),y=x(()=>C.value*i5),A=x(()=>{const $=a.node;return($.kind==="tools"||$.kind==="tool")&&$.toolKind?n[$.toolKind]||ns:$.kind==="side"&&$.detail==="Human"?wl:r[$.kind]||ra}),L=x(()=>{const $=a.node;return($.kind==="agent"||$.kind==="subagent")&&!!($.avatarSrc||$.avatarSeed)}),k=x(()=>a.node.kind==="agent"?"text-neutral-700 dark:text-neutral-200":o5),S=x(()=>{const $=a.node;return $.kind==="agent"||$.kind==="subagent"||$.kind==="tool"&&$.toolKind==="handoff"}),T=x(()=>{const $=["group relative flex items-start gap-1.5 px-2 cursor-pointer select-none transition-colors"];return $.push(S.value?"py-[6px] text-[12.5px]":"py-[4px]"),S.value&&$.push("relative z-[1] structure-row-agent-bg"),_.value?$.push("rounded-r-md structure-row-active"):b.value?$.push("rounded-md structure-row-hover"):S.value?$.push("rounded-md"):$.push("rounded-md agents-surface-hover"),a.node.virtual&&!g.value&&!_.value&&$.push("text-neutral-600 dark:text-neutral-400"),$.join(" ")}),B=x(()=>{const $=a.node,D=["truncate"],W=$.kind==="tool"&&$.toolKind==="handoff",E=$.kind==="variable"||$.kind==="schema"&&$.hideIcon===!0||$.kind==="tool"&&!W;return $.cardBacked?D.push("font-medium text-neutral-900 dark:text-neutral-50"):D.push("font-normal text-neutral-700 dark:text-neutral-300"),E&&D.push("font-mono text-[11.5px]"),D.join(" ")});function q($){return[$.warning?"text-[11px]":"text-[11px] lowercase",$.mono?"font-mono":"",$.required?l5:$.warning?"text-amber-700 dark:text-amber-300":"text-neutral-500 dark:text-neutral-400"].join(" ")}function H($){return $.active===!1?"text-neutral-400 dark:text-neutral-600":s5}function N($){$.stopPropagation(),!f.value&&o("toggle",a.node.id)}function P($){$.stopPropagation(),U()}function U(){o("select",a.node.id,a.node.canvasNodeId),!f.value&&p.value&&!m.value&&o("toggle",a.node.id)}function V($){$.key!=="Enter"&&$.key!==" "||($.preventDefault(),$.stopPropagation(),U())}function Y(){o("hover",a.node.canvasNodeId)}return($,D)=>{const W=It("RouterLink"),E=It("StructureTreeRow",!0),X=nm("auto-animate");return l(),c("div",G$,[u("div",{class:"mx-1",style:nt({paddingLeft:`${y.value}px`})},[_.value?(l(),c("div",{key:0,class:J(["pointer-events-none absolute bottom-0 top-0 z-[2] w-px bg-accent-500"]),style:nt({left:`${y.value+5}px`})},null,4)):M("",!0),u("div",{class:J(T.value),role:"button",tabindex:"0","aria-pressed":_.value,onClick:P,onKeydown:V,onMouseenter:Y},[p.value&&!f.value?(l(),K(h(Gn),{key:0,class:J(["mt-[2px] h-3 w-3 shrink-0 text-neutral-400 transition-transform",m.value?"rotate-90":""]),onClick:N},null,8,["class"])):f.value?M("",!0):(l(),c("span",X$)),L.value?(l(),K(Mn,{key:2,icon:e.node.avatarSrc,seed:e.node.avatarSeed??"",class:"mt-[1px] h-4 w-4 shrink-0 rounded object-cover"},null,8,["icon","seed"])):e.node.hideIcon?M("",!0):(l(),K(ct(A.value),{key:3,class:J(["mt-[1px] h-3.5 w-3.5 shrink-0",k.value])},null,8,["class"])),u("div",Y$,[u("div",Z$,[e.node.hint?(l(),K(h(Jn),{key:0,content:e.node.hint,position:"right"},{default:be(()=>[u("span",{class:J(B.value)},w(e.node.label),3)]),_:1},8,["content"])):(l(),c("span",{key:1,class:J(B.value)},w(e.node.label),3)),e.node.required?(l(),c("span",Q$," * ")):M("",!0),i.value?(l(),K(h(Jn),{key:3,content:i.value.label,position:"right"},{default:be(()=>[j(W,{to:i.value.to,class:J(["mt-[-2px] inline-flex h-5 w-5 shrink-0 items-center justify-center rounded text-neutral-400 opacity-0 transition hover:text-neutral-900 focus-visible:opacity-100 group-hover:opacity-100 dark:text-neutral-500 dark:hover:text-neutral-100",_.value?"opacity-100":""]),"aria-label":`${i.value.label}: ${e.node.label}`,onClick:D[0]||(D[0]=Je(()=>{},["stop"])),onKeydown:D[1]||(D[1]=Je(()=>{},["stop"]))},{default:be(()=>[j(h(Xl),{class:"h-3.5 w-3.5"})]),_:1},8,["to","class","aria-label"])]),_:1},8,["content"])):M("",!0),e.node.detail?(l(),c("span",e5,w(e.node.detail),1)):M("",!0)]),(!e.node.collapsibleBody||m.value)&&e.node.badges&&e.node.badges.length>0?(l(),c("div",t5,[(l(!0),c(te,null,Ie(e.node.badges,re=>(l(),c("span",{key:re.label,class:J(q(re))},w(re.label),3))),128))])):M("",!0),(!e.node.collapsibleBody||m.value)&&e.node.description?(l(),c("div",{key:1,class:J(["mt-1 text-[11px] leading-relaxed text-neutral-500 dark:text-neutral-400",e.node.virtual&&!g.value?"opacity-90":""])},w(e.node.description),3)):M("",!0),(!e.node.collapsibleBody||m.value)&&e.node.metaRows&&e.node.metaRows.length>0?(l(),c("dl",n5,[(l(!0),c(te,null,Ie(e.node.metaRows,re=>(l(),c(te,{key:re.label},[u("dt",r5,w(re.label),1),u("dd",{class:J(["truncate text-right",re.mono!==!1?"font-mono":"",H(re)])},w(re.value),3)],64))),128))])):M("",!0)])],42,J$)],4),d.value?$t((l(),c("div",a5,[m.value?(l(!0),c(te,{key:0},Ie(e.node.children,re=>(l(),K(E,{key:re.id,node:re,depth:e.depth+1,collapsed:e.collapsed,"selected-canvas-node-id":e.selectedCanvasNodeId,"hovered-canvas-node-id":e.hoveredCanvasNodeId,"active-row-id":e.activeRowId,onSelect:D[2]||(D[2]=(ne,de)=>o("select",ne,de)),onHover:D[3]||(D[3]=ne=>o("hover",ne)),onToggle:D[4]||(D[4]=ne=>o("toggle",ne))},null,8,["node","depth","collapsed","selected-canvas-node-id","hovered-canvas-node-id","active-row-id"]))),128)):M("",!0),m.value&&!f.value?(l(),c("div",{key:1,class:"pointer-events-none absolute bottom-0 top-0 w-px bg-neutral-200 dark:bg-neutral-800",style:nt({left:`${y.value+14}px`})},null,4)):M("",!0)])),[[X,{duration:60,easing:"ease-out"}]]):M("",!0)])}}});function d5(e,t,n){let r=!1;function a(o){if(o.defaultCollapsed&&!n.has(o.id)&&(n.add(o.id),t.has(o.id)||(t.add(o.id),r=!0)),o.children)for(const s of o.children)a(s)}return a(e),r}const c5={class:"structure-tree flex h-full flex-col overflow-hidden border-r border-neutral-200 dark:border-neutral-800"},f5={key:0,class:"px-3 py-4 text-xs text-neutral-400 dark:text-neutral-500"},p5=we({__name:"StructureTree",props:{root:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{}},emits:["select","hover"],setup(e,{emit:t}){const n=e,r=t,a=R(null);ve(()=>n.selectedCanvasNodeId,g=>{const v=a.value;v&&(g&&[v.canvasNodeId,...Dc(v.canvasNodeId)].includes(g)||(a.value=null))});function o(g,v){a.value={id:g,canvasNodeId:v},r("select",v)}const s=R(new Set),i=R(null),d=R(new Set);function p(g){return d5(g,s.value,d.value)}ve(()=>n.root,g=>{g&&(g.id!==i.value&&(s.value=new Set,d.value=new Set,i.value=g.id),p(g)&&(s.value=new Set(s.value)))},{immediate:!0});function f(g){const v=new Set(s.value);v.has(g)?v.delete(g):v.add(g),s.value=v,d.value=new Set(d.value).add(g)}const m=x(()=>!!n.root);return(g,v)=>(l(),c("div",c5,[u("div",{class:"flex-1 overflow-y-auto py-1.5 text-[12px]",onMouseleave:v[1]||(v[1]=_=>r("hover",null))},[m.value?(l(),K(u5,{key:1,node:e.root,depth:0,collapsed:s.value,"selected-canvas-node-id":e.selectedCanvasNodeId,"hovered-canvas-node-id":e.hoveredCanvasNodeId,"active-row-id":a.value?.id??null,onSelect:o,onHover:v[0]||(v[0]=_=>r("hover",_)),onToggle:f},null,8,["node","collapsed","selected-canvas-node-id","hovered-canvas-node-id","active-row-id"])):(l(),c("div",f5," Select an agent to view its structure. ")),m.value?gt(g.$slots,"details",{key:2}):M("",!0)],32)]))}}),h5={key:0,class:"space-y-3 border-b border-neutral-200 px-3 py-3 dark:border-neutral-800","aria-label":"Definition findings"},m5={class:"mt-0.5 flex min-w-0 items-center gap-1 text-neutral-500 dark:text-neutral-400"},g5={class:"shrink-0"},v5=["title","onClick"],y5={class:"mt-1 text-neutral-600 dark:text-neutral-400"},b5={class:"mt-1 text-neutral-800 dark:text-neutral-200"},x5=we({__name:"StructureFindings",props:{agent:{},sides:{}},emits:["select"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>{const o=Ta(n.agent.id||n.agent.name);return n.sides.flatMap(s=>s.toolHistoryFinding?[{key:s.id,canvasNodeId:Bl(o,s.id),notice:xl(s.toolHistoryFinding,s.label)}]:[])});return(o,s)=>a.value.length>0?(l(),c("section",h5,[(l(!0),c(te,null,Ie(a.value,i=>(l(),K(Pl,{key:i.key,title:i.notice.title},{default:be(()=>[u("p",m5,[u("span",g5,w(i.notice.side)+" ·",1),u("button",{type:"button",class:"truncate rounded font-mono text-[11.5px] text-neutral-800 underline decoration-neutral-300 underline-offset-2 hover:text-neutral-950 hover:decoration-neutral-500 dark:text-neutral-200 dark:decoration-neutral-600 dark:hover:text-white",title:`Select ${i.notice.prompt} in the diagram`,onClick:d=>r("select",i.canvasNodeId)},w(i.notice.prompt),9,v5)]),u("p",y5,w(i.notice.consequence.join(" ")),1),u("p",b5,w(i.notice.fix),1)]),_:2},1032,["title"]))),128))])):M("",!0)}}),k5={class:"relative flex min-w-0 flex-1"},w5={key:0,class:"absolute bottom-4 left-4 z-10 flex max-w-[calc(100%-2rem)] items-center gap-3 rounded-lg border border-neutral-200 bg-white py-1.5 pl-3 pr-1.5 text-[12.5px] shadow-sm dark:border-neutral-800 dark:bg-neutral-900"},_5={class:"shrink-0 text-neutral-500 dark:text-neutral-400"},$5={class:"truncate font-medium text-neutral-900 dark:text-neutral-50"},I5={class:"flex min-h-0 flex-1 flex-col"},S5=200,C5=560,T5=320,M5=we({__name:"AgentStructureView",props:{tree:{},selectedNodeId:{},hoveredNodeId:{},refreshEpoch:{},loading:{type:Boolean},error:{},agent:{},sides:{},subagentTree:{},models:{},toolsCatalog:{},hooks:{}},emits:["select","hover","deselect"],setup(e,{emit:t}){const n=e,r=t,a=R(null),o=np({agent:xt(n,"agent"),sides:xt(n,"sides"),children:xt(n,"subagentTree"),models:xt(n,"models"),toolsCatalog:xt(n,"toolsCatalog"),hooks:xt(n,"hooks"),refreshEpoch:xt(n,"refreshEpoch")});function s(b){r("select",b.selectionId)}function i(b){for(const C of[b,...Dc(b)])if(a.value?.selectById(C))return;r("select",b)}const d={agent:{kind:"Agent",open:"Open agent"},prompt:{kind:"Prompt",open:"Open prompt page"},model:{kind:"Model",open:"Open model page"},tool:{kind:"Tool",open:"Open tool page"}};function p(b,C){for(const y of b.children??[]){const A=p(y,C);if(A)return A}return b.canvasNodeId===C&&b.cardBacked&&b.reference?b:null}const f=x(()=>{const b=n.selectedNodeId;if(!b||!n.tree)return null;const C=p(n.tree,b);if(!C?.reference)return null;const y=d[C.reference.kind];return{kind:y.kind,open:y.open,name:C.label,to:Rr[C.reference.kind](C.reference.name)}}),m=Xn("composition.structureTreeWidth",T5),g=R(!1);function v(b){return Math.min(C5,Math.max(S5,b))}m.value=v(m.value);function _(b){b.preventDefault();const C=b.clientX,y=m.value;g.value=!0;const A=Yn(window,"pointermove",k=>{m.value=v(y-(k.clientX-C))}),L=Yn(window,["pointerup","pointercancel"],()=>{g.value=!1,A(),L()})}return(b,C)=>{const y=It("RouterLink");return l(),c("div",{class:J(["flex h-full min-h-0 flex-1",g.value?"select-none":""])},[u("div",k5,[j(Tf,{class:"min-w-0",ref_key:"circuitRef",ref:a,agent:e.agent,diagram:h(o),"selected-node-id":e.selectedNodeId,"hovered-node-id":e.hoveredNodeId,loading:e.loading,error:e.error,onSelect:s,onDeselect:C[0]||(C[0]=A=>r("deselect")),onHoverNode:C[1]||(C[1]=A=>r("hover",A))},null,8,["agent","diagram","selected-node-id","hovered-node-id","loading","error"]),f.value?(l(),c("div",w5,[u("span",_5,w(f.value.kind),1),u("span",$5,w(f.value.name),1),j(y,{to:f.value.to,class:"inline-flex shrink-0 items-center gap-1 rounded-md px-2 py-1 text-neutral-700 transition-colors hover:bg-black/5 hover:text-neutral-950 dark:text-neutral-200 dark:hover:bg-white/10 dark:hover:text-white"},{default:be(()=>[Ce(w(f.value.open)+" ",1),j(h(Xl),{class:"h-3.5 w-3.5"})]),_:1},8,["to"])])):M("",!0)]),u("div",{class:"structure-tree-resizer group relative z-10 -mx-[2px] h-full w-[5px] shrink-0 cursor-col-resize",role:"separator","aria-orientation":"vertical","aria-label":"Resize structure sidebar",onPointerdown:_},[u("div",{class:J(["pointer-events-none absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-neutral-200 transition-colors group-hover:bg-accent-500/60 dark:bg-neutral-800",g.value?"!bg-accent-500":""])},null,2)],32),u("aside",{class:"flex h-full min-h-0 shrink-0 flex-col",style:nt({width:`${h(m)}px`})},[a.value?.navigator?(l(),K(B$,{key:0,layout:a.value.navigator.layout,state:a.value.navigator.state,view:a.value.navigator.view,onPan:C[2]||(C[2]=A=>a.value?.panTo(A))},null,8,["layout","state","view"])):M("",!0),e.agent?(l(),K(x5,{key:1,agent:e.agent,sides:e.sides,onSelect:i},null,8,["agent","sides"])):M("",!0),u("div",I5,[j(p5,{root:e.tree,"selected-canvas-node-id":e.selectedNodeId,"hovered-canvas-node-id":e.hoveredNodeId,onSelect:i,onHover:C[3]||(C[3]=A=>r("hover",A))},{details:be(()=>[e.agent?(l(),K(Gm,{key:0,kind:"agents",name:e.agent.name,preview:"",class:"border-t border-neutral-200 px-3 dark:border-neutral-800"},null,8,["name"])):M("",!0)]),_:1},8,["root","selected-canvas-node-id","hovered-canvas-node-id"])])],4)],2)}}});function A5(e){const t=new Map;let n=null,r=null;ve(e.key,(a,o)=>{const s=e.element.value;o&&s&&t.set(o,s.scrollTop),n=a,r=e.items.value},{flush:"sync"}),ve([e.items,e.loading],async()=>{const a=n;if(!a||e.loading.value||e.items.value===r)return;n=null;const o=t.get(a);if(o===void 0)return;await Qe();const s=e.element.value;s&&(s.scrollTop=o)},{flush:"post"})}const L5={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function R5(e,t){return l(),c("svg",L5,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),u("path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z"})],-1)])])}const E5=Ye({name:"lucide-square-pen",render:R5}),P5=["data-run-state"],N5={key:0,class:"absolute -right-0.5 -bottom-0.5 size-2 rounded-full bg-accent-500 ring-2 ring-white animate-pulse dark:ring-neutral-950","aria-label":"Running"},O5={key:1,class:"absolute -right-0.5 -bottom-0.5 size-2 rounded-full bg-red-500 ring-2 ring-white dark:ring-neutral-950","aria-label":"Failed"},D5={key:2,class:"absolute -right-0.5 -bottom-0.5 size-2 rounded-full border-[1.5px] border-neutral-400 bg-white ring-2 ring-white dark:border-neutral-500 dark:bg-neutral-950 dark:ring-neutral-950","aria-label":"Idle"},da=we({__name:"AgentStatusAvatar",props:{avatar:{},state:{default:null},size:{default:16}},setup(e){return(t,n)=>(l(),c("span",{class:"relative inline-flex shrink-0",style:nt({width:`${e.size}px`,height:`${e.size}px`}),"data-run-state":e.state??void 0},[j(Mn,{icon:e.avatar.icon,seed:e.avatar.seed,class:"size-full rounded object-cover"},null,8,["icon","seed"]),e.state==="running"?(l(),c("span",N5)):e.state==="failed"?(l(),c("span",O5)):e.state==="idle"?(l(),c("span",D5)):M("",!0)],12,P5))}}),B5={class:"flex size-4 shrink-0 items-center justify-center","aria-hidden":"true"},F5={key:2,class:"size-2 rounded-full border-[1.5px] border-neutral-400 dark:border-neutral-500"},j5=we({__name:"SessionStatusIcon",props:{state:{}},setup(e){return(t,n)=>(l(),c("span",B5,[e.state==="running"?(l(),K(Nr,{key:0})):e.state==="failed"?(l(),K(h(ah),{key:1,class:"size-3.5 text-red-600 dark:text-red-400"})):(l(),c("span",F5))]))}});function Ar(e,t){const n=t?e.find(r=>r.name===t||r.id===t):void 0;return n?{icon:n.icon??null,seed:n.id}:{icon:null,seed:t||"agent"}}const q5=["title","aria-current","data-session-id"],z5=["aria-expanded","aria-label","title"],V5=["title","aria-label"],H5={class:"min-w-6 shrink-0 whitespace-nowrap text-right text-[11px] tabular-nums text-neutral-400 dark:text-neutral-500"},U5={key:0,class:"pl-5"},K5=we({__name:"SessionRow",props:{node:{},depth:{},selectedId:{},expandedIds:{},nowSeconds:{},agents:{},agentsKnown:{type:Boolean},showAgent:{type:Boolean}},emits:["select","toggle"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>n.node.thread.id===n.selectedId),o=x(()=>n.expandedIds.has(n.node.thread.id)),s=x(()=>n.node.children.length>0),i=x(()=>oh(n.node,n.depth,n.showAgent)),d=x(()=>sh(n.node,n.depth,n.showAgent)),p=x(()=>d.value.kind==="avatar"&&Vr({known:n.agentsKnown,agents:n.agents},d.value.agentName)),f=x(()=>o.value?"idle":lh(n.node)),m=x(()=>s.value?0:n.node.thread.failed_descendant_count??0),g=x(()=>`${m.value} failed ${m.value===1?"subagent thread":"subagent threads"}`),v=x(()=>{const _=n.node.descendantCount,b=_===1?"subagent thread":"subagent threads";return`${o.value?"Hide":"Show"} ${_} ${b}`});return(_,b)=>{const C=It("SessionRow",!0);return l(),c("div",null,[u("div",{class:J(["group relative flex h-8 items-center gap-2 rounded-md px-2 transition-colors",a.value?"bg-black/[0.07] dark:bg-white/[0.10]":"hover:bg-black/[0.04] dark:hover:bg-white/[0.05]"])},[d.value.kind==="avatar"?(l(),K(da,{key:0,avatar:h(Ar)(e.agents,d.value.agentName),state:d.value.state},null,8,["avatar","state"])):(l(),K(j5,{key:1,state:d.value.state},null,8,["state"])),u("button",{type:"button",class:J(["min-w-0 truncate text-left text-[13px] leading-5 outline-none before:absolute before:inset-0 before:rounded-md focus-visible:before:ring-2 focus-visible:before:ring-inset focus-visible:before:ring-accent-500",[a.value?"font-medium text-neutral-950 dark:text-white":e.depth>0?"text-neutral-600 dark:text-neutral-400":"text-neutral-800 dark:text-neutral-200"]]),title:i.value,"aria-current":a.value?"page":void 0,"data-session-id":e.node.thread.id,onClick:b[0]||(b[0]=y=>r("select",e.node.thread.id))},w(e.node.title),11,q5),p.value?(l(),K(Wn,{key:2,compact:""})):M("",!0),b[4]||(b[4]=u("span",{class:"flex-1","aria-hidden":"true"},null,-1)),s.value?(l(),c("button",{key:3,type:"button",class:J(["relative z-10 flex h-5 shrink-0 items-center gap-0.5 rounded px-1 text-[11px] tabular-nums outline-none transition-colors focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent-500",f.value==="running"?"text-accent-700 hover:bg-accent-500/10 dark:text-accent-300":f.value==="failed"?"text-red-600 hover:bg-red-500/10 dark:text-red-400":"text-neutral-500 hover:bg-black/[0.06] hover:text-neutral-800 dark:text-neutral-400 dark:hover:bg-white/[0.08] dark:hover:text-neutral-200"]),"aria-expanded":o.value,"aria-label":v.value,title:v.value,onClick:b[1]||(b[1]=y=>r("toggle",e.node.thread.id))},[Ce(w(e.node.descendantCount)+" ",1),j(h(Gn),{class:J(["size-3 transition-transform motion-reduce:transition-none",o.value?"rotate-90":""])},null,8,["class"])],10,z5)):M("",!0),m.value>0?(l(),c("span",{key:4,class:"relative z-10 flex h-5 shrink-0 items-center rounded px-1 text-[11px] tabular-nums text-red-600 dark:text-red-400",title:g.value,"aria-label":g.value},w(m.value)+" failed ",9,V5)):M("",!0),u("span",H5,w(h(ih)(e.node.activityAt,e.nowSeconds)),1)],2),o.value&&s.value?(l(),c("div",U5,[(l(!0),c(te,null,Ie(e.node.children,y=>(l(),K(C,{key:y.thread.id,node:y,depth:e.depth+1,"selected-id":e.selectedId,"expanded-ids":e.expandedIds,"now-seconds":e.nowSeconds,agents:e.agents,"agents-known":e.agentsKnown,onSelect:b[2]||(b[2]=A=>r("select",A)),onToggle:b[3]||(b[3]=A=>r("toggle",A))},null,8,["node","depth","selected-id","expanded-ids","now-seconds","agents","agents-known"]))),128))])):M("",!0)])}}}),W5={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function G5(e,t){return l(),c("svg",W5,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2 5h20M6 12h12m-9 7h6"},null,-1)])])}const J5=Ye({name:"lucide-list-filter",render:G5}),X5=["aria-label","title","aria-expanded"],Y5={key:0,class:"min-w-4 rounded-full bg-accent-500 px-1 text-center text-[10px] font-semibold leading-4 text-white tabular-nums","aria-hidden":"true"},Z5={key:0,class:"absolute inset-x-2 top-full z-40 mt-1 rounded-xl border border-neutral-200 bg-white shadow-lg dark:border-neutral-700 dark:bg-neutral-900",role:"dialog","aria-label":"Filters"},Q5={class:"flex h-10 items-center justify-between gap-2 border-b border-neutral-200 px-3 dark:border-neutral-800"},eI={class:"flex flex-wrap items-center gap-1 p-2"},tI=["aria-label","onClick"],nI=we({__name:"SessionFilters",props:{filters:{},allAgents:{type:Boolean},agents:{},agentsKnown:{type:Boolean},owners:{},models:{}},emits:["update:filters"],setup(e,{emit:t}){const n=e,r=t;function a(Y){r("update:filters",{...n.filters,...Y})}const o=R(!1),s=R(null),i=R(null);Ia(s,()=>{o.value=!1});function d(){o.value=!1,i.value?.focus()}const p=x(()=>uh(n.filters,n.allAgents)),f=x(()=>p.value>0?`Filters, ${p.value} active`:"Filters");function m(){r("update:filters",{...lc,status:n.filters.status,agent:n.allAgents?null:n.filters.agent})}const g=ac(),v=x(()=>({pinnedIds:g.pinnedIds.value,canPinMore:g.canPinMore(),error:g.error.value})),_=x(()=>n.agents.map(Y=>({value:Y.id,label:Y.title}))),b=x({get:()=>n.filters.agent??"",set:Y=>a({agent:Y||null})}),C=x(()=>Vr({known:n.agentsKnown,agents:n.agents},n.filters.agent)),y=x(()=>Jb(n.owners)),A=x(()=>n.owners.flatMap(Y=>Y.user_id?[{value:Y.user_id,label:y.value.get(Y.user_id)??Y.user_id,count:Y.thread_count}]:[])),L=x(()=>A.value.length>1||!!n.filters.owner),k=x({get:()=>n.filters.owner??"",set:Y=>a({owner:Y||null})}),S={1:"Today",7:"Last 7 days",14:"Last 14 days",30:"Last 30 days"},T=Ps.map(Y=>({value:String(Y),label:S[Y]})),B=x({get:()=>n.filters.days?String(n.filters.days):"",set:Y=>a({days:Ps.find($=>String($)===Y)??null})}),q={person:"A person",effect:"A scheduled effect",endpoint:"An endpoint",subagent:"A parent thread",thread_creation:"Thread creation"},H=Ii.map(Y=>({value:Y,label:q[Y]})),N=x({get:()=>n.filters.startedBy??"",set:Y=>a({startedBy:Ii.find($=>$===Y)??null})}),P=x(()=>(n.filters.model&&!n.models.includes(n.filters.model)?[...n.models,n.filters.model]:n.models).map($=>({value:$,label:$}))),U=x({get:()=>n.filters.model??"",set:Y=>a({model:Y||null})}),V=x(()=>[{key:"waiting",label:"Waiting for a person",on:n.filters.waiting,set:Y=>a({waiting:Y})},{key:"child-failed",label:"Failed subagent",on:n.filters.childFailed,set:Y=>a({childFailed:Y})}]);return(Y,$)=>(l(),c("div",{ref_key:"rootRef",ref:s,class:"shrink-0",onKeydown:dn(d,["esc"])},[u("button",{ref_key:"buttonRef",ref:i,type:"button",class:J(["flex h-8 min-w-8 items-center justify-center gap-1 rounded-md px-2 transition-colors focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-accent-500",p.value>0||o.value?"bg-black/[0.05] text-neutral-900 dark:bg-white/[0.08] dark:text-white":"text-neutral-500 hover:bg-black/5 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/10 dark:hover:text-white"]),"aria-label":f.value,title:f.value,"aria-expanded":o.value,"aria-haspopup":"dialog",onClick:$[0]||($[0]=D=>o.value=!o.value)},[j(h(J5),{class:"size-4 shrink-0","aria-hidden":"true"}),p.value>0?(l(),c("span",Y5,w(p.value),1)):M("",!0)],10,X5),o.value?(l(),c("div",Z5,[u("div",Q5,[$[6]||($[6]=u("h2",{class:"text-[13px] font-semibold text-neutral-900 dark:text-neutral-100"},"Filters",-1)),p.value>0?(l(),c("button",{key:0,type:"button",class:"text-xs font-medium text-accent-700 hover:text-accent-900 dark:text-accent-300 dark:hover:text-accent-100",onClick:m}," Clear all ")):M("",!0)]),u("div",eI,[e.allAgents?(l(),K(Xr,{key:0,modelValue:b.value,"onUpdate:modelValue":$[1]||($[1]=D=>b.value=D),label:"Agent",options:_.value},{panel:be(({choose:D,maxHeight:W})=>[j(oc,{class:"absolute left-0 z-30 mt-1",agents:e.agents,"selected-id":e.filters.agent,"max-height":W,pins:v.value,"all-option":"",placeholder:"Filter by agent…",onPick:D,onPickAll:E=>D(""),onTogglePin:h(g).togglePin},null,8,["agents","selected-id","max-height","pins","onPick","onPickAll","onTogglePin"])]),_:1},8,["modelValue","options"])):M("",!0),e.allAgents&&C.value?(l(),K(Wn,{key:1})):M("",!0),L.value?(l(),K(Xr,{key:2,modelValue:k.value,"onUpdate:modelValue":$[2]||($[2]=D=>k.value=D),label:"Owner",options:A.value},null,8,["modelValue","options"])):M("",!0),j(Xr,{modelValue:B.value,"onUpdate:modelValue":$[3]||($[3]=D=>B.value=D),label:"Started",options:h(T)},null,8,["modelValue","options"]),j(Xr,{modelValue:N.value,"onUpdate:modelValue":$[4]||($[4]=D=>N.value=D),label:"Started by",options:h(H)},null,8,["modelValue","options"]),P.value.length>0?(l(),K(Xr,{key:3,modelValue:U.value,"onUpdate:modelValue":$[5]||($[5]=D=>U.value=D),label:"Model",options:P.value},null,8,["modelValue","options"])):M("",!0),(l(!0),c(te,null,Ie(V.value,D=>(l(),c("div",{key:D.key,class:"flex items-stretch"},[j(zm,{pressed:D.on,"aria-pressed":D.on,class:J(D.on?"rounded-r-none":""),onClick:W=>D.set(!D.on)},{default:be(()=>[Ce(w(D.label),1)]),_:2},1032,["pressed","aria-pressed","class","onClick"]),D.on?(l(),c("button",{key:0,type:"button",class:"inline-flex items-center rounded-r-md border border-l-0 border-neutral-300 bg-black/[0.05] px-1.5 text-neutral-500 hover:text-neutral-900 dark:border-neutral-600 dark:bg-white/[0.08] dark:hover:text-white","aria-label":`Clear ${D.label} filter`,onClick:W=>D.set(!1)},[j(h(Bo),{class:"h-3 w-3"})],8,tI)):M("",!0)]))),128))])])):M("",!0)],544))}}),rI={class:"flex h-full min-h-0 w-full flex-col","aria-label":"Threads"},aI={class:"flex items-center gap-1 px-2 pt-3"},oI={class:"flex flex-1 items-center gap-0.5",role:"radiogroup","aria-label":"Run state"},sI=["aria-checked","onClick"],lI=["title"],iI={class:"relative flex items-center gap-1 px-2 pt-2"},uI={class:"flex h-8 min-w-0 flex-1 items-center gap-2 rounded-md border border-neutral-200 bg-white px-2 text-[13px] focus-within:border-neutral-400 dark:border-neutral-800 dark:bg-neutral-900 dark:focus-within:border-neutral-600"},dI={key:0,class:"flex items-baseline justify-between gap-2 px-4 pt-2 text-xs text-neutral-500 dark:text-neutral-400"},cI=["title"],fI={key:0,class:"flex justify-center py-8"},pI={key:1,class:"px-2 py-6 text-[13px] text-red-600 dark:text-red-400"},hI={key:2,class:"px-2 py-6 text-[13px] text-neutral-500 dark:text-neutral-400"},mI={class:"sticky top-0 z-20 flex h-7 items-end bg-neutral-50 px-2 pb-1 text-[12px] font-semibold leading-4 text-neutral-500 dark:bg-neutral-950 dark:text-neutral-400"},gI={key:3,class:"flex justify-center py-3"},vI=we({__name:"SessionSidebar",props:Sn({threads:{},selectedThreadId:{},isLoading:{type:Boolean},isLoadingMore:{type:Boolean},hasMore:{type:Boolean},error:{},agents:{},agentsKnown:{type:Boolean},scrollKey:{},filters:{},allAgents:{type:Boolean},origin:{},owners:{},models:{}},{query:{required:!0},queryModifiers:{}}),emits:Sn(["select","create","loadMore","collapse","update:filters"],["update:query"]),setup(e,{expose:t,emit:n}){const r=e,a=Pr(e,"query"),o=n,s=x(()=>r.filters.status??"all");function i(H){o("update:filters",{...r.filters,status:H==="all"?null:H})}function d(){o("update:filters",{...lc,agent:r.allAgents?null:r.filters.agent})}const p=[{value:"all",label:"All"},{value:"running",label:"Running"},{value:"failed",label:"Failed"}],f=rm({interval:6e4}),m=x(()=>Math.floor(f.value.getTime()/1e3)),g=x(()=>dh(r.threads)),v=x(()=>ch(g.value,a.value,s.value)),_=x(()=>fh(v.value,m.value)),b=x(()=>a.value.trim()!==""||s.value!=="all"),C=x(()=>a.value.trim()!==""||ph(r.filters,r.allAgents)?"No threads match.":s.value==="running"?"No running threads.":s.value==="failed"?"No failed threads.":"No threads yet."),y=R(new Set);function A(H){const N=new Set(y.value);N.has(H)?N.delete(H):N.add(H),y.value=N}const L=x(()=>{if(!b.value)return y.value;const H=new Set(y.value),N=P=>{for(const U of P)U.children.length>0&&H.add(U.thread.id),N(U.children)};return N(v.value),H});ve(()=>[r.selectedThreadId,r.threads],([H,N])=>{const P=mh(N,H);P.every(U=>y.value.has(U))||(y.value=new Set([...y.value,...P]))},{immediate:!0});const k=R(null),{arrivedState:S}=am(k,{offset:{bottom:240}});A5({key:xt(r,"scrollKey"),element:k,items:xt(r,"threads"),loading:xt(r,"isLoading")}),ve(()=>S.bottom,H=>{H&&r.hasMore&&!r.isLoadingMore&&o("loadMore")});const T=R(null);async function B(){await Qe(),T.value?.focus(),T.value?.select()}t({focusSearch:B});const q=Er("b");return(H,N)=>(l(),c("aside",rI,[u("div",aI,[u("div",oI,[(l(),c(te,null,Ie(p,P=>u("button",{key:P.value,type:"button",role:"radio","aria-checked":s.value===P.value,class:J(["h-7 rounded-md px-2 text-[13px] leading-5 transition-colors",s.value===P.value?"bg-black/[0.07] font-medium text-neutral-950 dark:bg-white/[0.10] dark:text-white":"text-neutral-500 hover:bg-black/[0.04] hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/[0.06] dark:hover:text-white"]),onClick:U=>i(P.value)},w(P.label),11,sI)),64))]),e.allAgents?M("",!0):(l(),c("button",{key:0,type:"button",class:"flex size-7 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-black/5 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/10 dark:hover:text-white",title:"New thread","aria-label":"New thread",onClick:N[0]||(N[0]=P=>o("create"))},[j(h(E5),{class:"size-4"})])),u("button",{type:"button",class:"flex size-7 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-black/5 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/10 dark:hover:text-white",title:`Hide threads (${h(q)})`,"aria-label":"Hide threads",onClick:N[1]||(N[1]=P=>o("collapse"))},[j(h(ic),{class:"size-4"})],8,lI)]),u("div",iI,[u("label",uI,[j(h(hh),{class:"size-4 shrink-0 text-neutral-400"}),$t(u("input",{ref_key:"searchRef",ref:T,"onUpdate:modelValue":N[2]||(N[2]=P=>a.value=P),type:"search",placeholder:"Search threads","aria-label":"Search threads",class:"min-w-0 flex-1 bg-transparent outline-none placeholder:text-neutral-400 [&::-webkit-search-cancel-button]:hidden",onKeydown:N[3]||(N[3]=dn(P=>a.value="",["esc"]))},null,544),[[fo,a.value]]),a.value?(l(),c("button",{key:0,type:"button",class:"text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-200","aria-label":"Clear search",onClick:N[4]||(N[4]=P=>a.value="")},[j(h(Bo),{class:"size-3.5"})])):M("",!0)]),j(nI,{filters:e.filters,"all-agents":e.allAgents,agents:e.agents,"agents-known":e.agentsKnown,owners:e.owners,models:e.models,"onUpdate:filters":N[5]||(N[5]=P=>o("update:filters",P))},null,8,["filters","all-agents","agents","agents-known","owners","models"])]),e.origin?(l(),c("p",dI,[u("span",{class:"min-w-0 truncate",title:h(Si)(e.origin)},w(h(Si)(e.origin)),9,cI),u("button",{type:"button",class:"shrink-0 font-medium text-accent-700 hover:text-accent-900 dark:text-accent-300 dark:hover:text-accent-100",onClick:d}," Clear filters ")])):M("",!0),u("div",{ref_key:"listRef",ref:k,class:"mt-1 min-h-0 flex-1 overflow-y-auto px-2 pb-4"},[e.isLoading?(l(),c("div",fI,[j(et)])):e.error&&e.threads.length===0?(l(),c("p",pI," Threads could not be loaded. ")):_.value.length===0?(l(),c("p",hI,w(C.value),1)):M("",!0),(l(!0),c(te,null,Ie(_.value,P=>(l(),c("section",{key:P.key,class:"mt-3"},[u("h3",mI,w(P.label),1),(l(!0),c(te,null,Ie(P.sessions,U=>(l(),K(K5,{key:U.thread.id,node:U,depth:0,"selected-id":e.selectedThreadId,"expanded-ids":L.value,"now-seconds":m.value,agents:e.agents,"agents-known":e.agentsKnown,"show-agent":e.allAgents,onSelect:N[6]||(N[6]=V=>o("select",V)),onToggle:A},null,8,["node","selected-id","expanded-ids","now-seconds","agents","agents-known","show-agent"]))),128))]))),128)),e.isLoadingMore?(l(),c("div",gI,[j(et)])):M("",!0)],512)]))}}),yI={class:"absolute inset-0 overflow-clip"},bI=240,xI=200,kI=we({__name:"InspectorDrawer",props:{open:{type:Boolean},width:{}},emits:["resize","presence"],setup(e,{emit:t}){const n=e,r=t,a=qo(),o=R(n.open),s=R(n.open),i=R("idle");let d=0,p;function f(){cancelAnimationFrame(d),clearTimeout(p)}function m(){f(),i.value="idle",s.value||(o.value=!1)}function g(y){i.value=y,s.value=y==="opening",p=setTimeout(m,(y==="opening"?bI:xI)+100)}ve(()=>n.open,y=>{if(f(),a.value==="reduce"){i.value="idle",o.value=y,s.value=y;return}if(y&&!o.value){o.value=!0,i.value="opening",d=requestAnimationFrame(()=>{d=requestAnimationFrame(()=>g("opening"))});return}o.value&&g(y?"opening":"closing")}),ve(o,y=>r("presence",y)),an(()=>r("presence",o.value));function v(y){y.propertyName==="width"&&m()}const _=R(!1);let b=null;function C(y){y.preventDefault();const A=y.clientX,L=n.width;_.value=!0,document.body.style.cursor="col-resize",document.body.style.userSelect="none";const k=T=>r("resize",L+(A-T.clientX)),S=()=>{_.value=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("pointermove",k),window.removeEventListener("pointerup",S),window.removeEventListener("pointercancel",S),b=null};window.addEventListener("pointermove",k),window.addEventListener("pointerup",S),window.addEventListener("pointercancel",S),b=S}return Ft(()=>{f(),b?.(),r("presence",!1)}),(y,A)=>o.value?(l(),c("aside",{key:0,class:J(["inspector-drawer relative h-full min-h-0 shrink-0 border-l border-neutral-200 bg-white dark:border-neutral-800 dark:bg-neutral-900",[i.value==="idle"?"":`is-${i.value}`,s.value?"":"is-collapsed"]]),style:nt({width:s.value?`${e.width}px`:"0px"}),"aria-label":"Thread inspector",onTransitionend:Je(v,["self"])},[u("div",yI,[u("div",{class:"inspector-drawer-content absolute inset-y-0 right-0 flex min-h-0 flex-col",style:nt({width:`${Math.max(0,e.width-1)}px`})},[gt(y.$slots,"default",{},void 0,!0)],4)]),u("div",{class:J(["inspector-drawer-handle absolute inset-y-0 -left-1 z-20 w-2 cursor-col-resize touch-none",_.value?"bg-accent-500/30":"hover:bg-accent-500/20"]),role:"separator","aria-orientation":"vertical","aria-label":"Resize inspector",onPointerdown:C},null,34)],38)):M("",!0)}}),wI=ot(kI,[["__scopeId","data-v-10dcc95a"]]),_I=we({name:"ThreadWorkspaceProvider",props:{threadId:{type:String,default:null}},setup(e,{slots:t}){return()=>ut(gh,{threadId:e.threadId??"",preload:!0,live:!0,includeSilent:!0,useWorkblocks:!0,useSubagentBlocks:!0,reconnectAuthGate:$l,canReconnect:()=>!Il(),onAuthorized:_l},t)}}),$I={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function II(e,t){return l(),c("svg",$I,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}),u("path",{d:"M9 3v18"})],-1)])])}const SI=Ye({name:"lucide-panel-left",render:II}),CI=["title"],TI={key:0,class:"font-normal opacity-80"},gs="inline-flex h-6 shrink-0 items-center gap-1.5 rounded-full px-2.5 text-[12px] font-medium ring-1 ring-inset",MI=we({__name:"RunStatusBadge",props:{state:{},reason:{},showIdle:{type:Boolean}},setup(e){return(t,n)=>e.state==="running"?(l(),c("span",{key:0,class:J([gs,"bg-accent-500/10 text-accent-700 ring-accent-500/20 dark:text-accent-300 dark:ring-accent-400/25"])},[j(Nr),n[0]||(n[0]=Ce(" Running ",-1))],2)):e.state==="failed"?(l(),c("span",{key:1,class:J([gs,"bg-red-500/10 text-red-700 ring-red-500/20 dark:bg-red-500/15 dark:text-red-300 dark:ring-red-400/25"]),title:e.reason?`Failed: ${e.reason.replace(/_/g," ")}`:"Failed"},[n[1]||(n[1]=u("span",{class:"size-1.5 rounded-full bg-red-500 dark:bg-red-400","aria-hidden":"true"},null,-1)),n[2]||(n[2]=Ce(" Failed",-1)),e.reason?(l(),c("span",TI,"· "+w(e.reason.replace(/_/g," ")),1)):M("",!0)],10,CI)):e.showIdle?(l(),c("span",{key:2,class:J([gs,"bg-neutral-500/5 text-neutral-600 ring-neutral-500/15 dark:text-neutral-400"])}," Idle ",2)):M("",!0)}});function AI(e){return e.length<=2?{visible:e,folded:[]}:{visible:[e[0],e[e.length-1]],folded:e.slice(1,-1)}}const LI=["title"],RI={key:1,class:"flex min-w-0 flex-1 items-center gap-1.5 text-[14px] leading-5","aria-label":"Thread path"},EI=["title","onClick"],PI=["title"],NI=["title"],OI=["aria-expanded","title"],DI={key:0,class:"absolute left-0 top-8 z-40 w-64 rounded-lg border border-neutral-200 bg-white py-1 shadow-lg dark:border-neutral-700 dark:bg-neutral-900"},BI=["title","onClick"],FI=["title"],jI={class:"truncate"},qI={class:"flex min-w-[6rem] shrink items-center gap-1.5"},zI=["title"],VI=["title"],HI={key:2,class:"flex min-w-0 flex-1 items-center gap-2"},UI=["title"],Au="flex size-7 shrink-0 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-black/5 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/10 dark:hover:text-white",KI=we({__name:"ThreadReviewHeader",props:{threadId:{},thread:{},ancestors:{},agents:{},agentsKnown:{type:Boolean},pageAgentId:{},sessionsCollapsed:{type:Boolean},contentEnd:{},infoVisible:{type:Boolean},cost:{}},emits:["showSessions","selectThread","openCost"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>n.thread?fr(n.thread):`Thread ${n.threadId.slice(0,8)}`),o=x(()=>n.thread?uc(n.thread):"idle"),s=x(()=>n.thread?.status_reason??null),i=x(()=>AI(n.ancestors)),d=x(()=>{const A=n.thread?.agent.name;return!A||A===n.pageAgentId?!1:Vr({known:n.agentsKnown??!1,agents:n.agents},A)}),p=x(()=>n.ancestors[n.ancestors.length-1]?.id??null);function f(A){return A.agent.title||A.agent.name}function m(A){return A.id===p.value?"Open parent thread":`Open ${fr(A)}`}const g=R(!1),v=R(null);function _(A){v.value=A instanceof HTMLElement?A:null}Ia(v,()=>{g.value=!1});function b(A){g.value=!1,r("selectThread",A)}const C=x(()=>n.contentEnd?{maxWidth:`calc(${n.contentEnd} + 1.25rem)`}:void 0),y=Er("b");return(A,L)=>(l(),c("header",{class:J(["flex h-12 shrink-0 items-center gap-3 pr-5",e.sessionsCollapsed?"pl-3":"pl-5"]),style:nt(C.value)},[e.sessionsCollapsed?(l(),c("button",{key:0,type:"button",class:J([Au,"-mr-1"]),title:`Show threads (${h(y)})`,"aria-label":"Show threads",onClick:L[0]||(L[0]=k=>r("showSessions"))},[j(h(SI),{class:"size-4"})],10,LI)):M("",!0),i.value.visible.length>0?(l(),c("nav",RI,[(l(!0),c(te,null,Ie(i.value.visible,(k,S)=>(l(),c(te,{key:k.id},[u("button",{type:"button",class:"flex min-w-0 shrink-[3] items-center gap-1.5 text-neutral-500 hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-white",title:m(k),onClick:T=>b(k.id)},[u("span",{title:f(k),class:"inline-flex"},[j(da,{avatar:h(Ar)(e.agents,k.agent.name)},null,8,["avatar"])],8,PI),u("span",{class:"truncate hover:underline",title:h(fr)(k)},w(h(fr)(k)),9,NI)],8,EI),j(h(Gn),{class:"size-3.5 shrink-0 text-neutral-400 dark:text-neutral-500","aria-hidden":"true"}),S===0&&i.value.folded.length>0?(l(),c("div",{key:0,ref_for:!0,ref:_,class:"relative flex shrink-0 items-center gap-1.5"},[u("button",{type:"button",class:J(Au),"aria-expanded":g.value,title:`${i.value.folded.length} more ancestor threads`,"aria-label":"Show more ancestor threads",onClick:L[1]||(L[1]=T=>g.value=!g.value)},[j(h(hf),{class:"size-4"})],8,OI),j(h(Gn),{class:"size-3.5 shrink-0 text-neutral-400 dark:text-neutral-500","aria-hidden":"true"}),g.value?(l(),c("ul",DI,[(l(!0),c(te,null,Ie(i.value.folded,T=>(l(),c("li",{key:T.id},[u("button",{type:"button",class:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-[13px] text-neutral-700 hover:bg-neutral-50 dark:text-neutral-200 dark:hover:bg-neutral-800",title:`Open ${h(fr)(T)}`,onClick:B=>b(T.id)},[u("span",{title:f(T),class:"inline-flex"},[j(da,{avatar:h(Ar)(e.agents,T.agent.name)},null,8,["avatar"])],8,FI),u("span",jI,w(h(fr)(T)),1)],8,BI)]))),128))])):M("",!0)])):M("",!0)],64))),128)),u("span",qI,[e.thread?(l(),c("span",{key:0,title:f(e.thread),class:"inline-flex"},[j(da,{avatar:h(Ar)(e.agents,e.thread.agent.name)},null,8,["avatar"])],8,zI)):M("",!0),u("h1",{class:"truncate font-medium text-neutral-900 dark:text-neutral-50",title:a.value},w(a.value),9,VI),d.value?(l(),K(Wn,{key:1})):M("",!0)])])):(l(),c("div",HI,[u("h1",{class:"min-w-0 truncate text-[14px] font-medium leading-5 text-neutral-900 dark:text-neutral-50",title:a.value},w(a.value),9,UI),d.value?(l(),K(Wn,{key:0})):M("",!0)])),!e.infoVisible&&e.cost?(l(),c("button",{key:3,type:"button",class:"shrink-0 rounded-md px-1.5 py-0.5 text-[13px] tabular-nums text-neutral-500 transition-colors hover:bg-black/5 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/10 dark:hover:text-white",title:"Show the cost breakdown","data-thread-info-toggle":"",onClick:L[2]||(L[2]=k=>r("openCost"))},w(e.cost),1)):M("",!0),e.infoVisible?M("",!0):(l(),K(MI,{key:4,state:o.value,reason:s.value},null,8,["state","reason"]))],6))}}),WI={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function GI(e,t){return l(),c("svg",WI,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497zM15 5l4 4"},null,-1)])])}const rp=Ye({name:"lucide-pencil",render:GI}),JI={class:"flex shrink-0 items-center gap-1"},XI=["aria-pressed"],YI=["title","aria-pressed"],Lu="inline-flex size-8 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-black/5 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/10 dark:hover:text-white",Ru="bg-black/5 text-neutral-900 dark:bg-white/10 dark:text-white",ZI=we({__name:"ThreadPageActions",props:{canEdit:{type:Boolean},editMode:{type:Boolean},infoOpen:{type:Boolean}},emits:["toggleEditMode","toggleInfo"],setup(e,{emit:t}){const n=t,r=Er("i");return(a,o)=>(l(),c("div",JI,[e.canEdit?(l(),c("button",{key:0,type:"button",class:J([Lu,e.editMode?Ru:""]),title:"Edit messages","aria-label":"Edit messages","aria-pressed":e.editMode,onClick:o[0]||(o[0]=s=>n("toggleEditMode"))},[j(h(rp),{class:"size-4"})],10,XI)):M("",!0),u("button",{type:"button",class:J([Lu,e.infoOpen?Ru:""]),title:`Thread info (${h(r)})`,"aria-label":"Thread info","aria-pressed":e.infoOpen,"data-thread-info-toggle":"",onClick:o[1]||(o[1]=Je(s=>n("toggleInfo"),["stop"]))},[j(h(vh),{class:"size-4"})],10,YI)]))}});function ap(e,t){const n=t??0,r=e-n;return n>0&&r>0?e/r:1}function QI(e){return(e.estimatedCost??0)>0||(e.unpricedRequestCount??0)>0?`~${_t(e.totalCost)}`:_t(e.totalCost)}function e4(e){const t=[];if((e.estimatedCost??0)>0){const n=e.estimatedRequestCount??0,r=_t(e.estimatedCost??0);t.push({label:"Estimated",value:n>0?`${r} in ${Io(n)}`:r})}return(e.unpricedRequestCount??0)>0&&t.push({label:"Unknown cost",value:Io(e.unpricedRequestCount??0)}),t}function t4(e){if(e.isRoot)return"This thread";const t=e.agentName||"subagent";return e.threadName?`${t} · ${e.threadName}`:t}function Io(e){return`${e} ${e===1?"request":"requests"}`}function Eu(e){return[...e].sort((t,n)=>n.totalCost-t.totalCost)}function n4(e){const t=e.totalCost-(e.routerFeeCost??0),n=ap(e.totalCost,e.routerFeeCost),a=[["Input tokens",e.inputCost??0],["Cached input tokens",e.cachedCost??0],["Output tokens",e.outputCost??0],["App logs",e.appCost??0]].filter(([,s])=>s>0);if(a.length===0)return[];const o=t-a.reduce((s,[,i])=>s+i,0);return o>t*.005&&a.push(["Other",o]),a.map(([s,i])=>({label:s,value:_t(i*n)}))}function r4(e){const t=r=>e.totalCost>0?Math.min(1,r/e.totalCost):0,n=e.threads??[];return{total:QI(e),open:e4(e),models:Eu(e.modelBreakdown).map(r=>({key:r.modelName,label:r.modelName,detail:Io(r.requestCount),cost:_t(r.totalCost),share:t(r.totalCost),threadId:null})),threads:n.length>1?Eu(n).map(r=>({key:r.threadId,label:t4(r),detail:Io(r.requestCount),cost:_t(r.totalCost),share:t(r.totalCost),threadId:r.isRoot?null:r.threadId})):[],parts:n4(e),averagePerMessage:e.messageCount>0?_t(e.avgCostPerMessage):null,truncated:e.truncated===!0}}const a4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function o4(e,t){return l(),c("svg",a4,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2a2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1m8 0h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1"},null,-1)])])}const s4=Ye({name:"lucide-braces",render:o4}),l4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function i4(e,t){return l(),c("svg",l4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("circle",{cx:"12",cy:"12",r:"10"}),u("circle",{cx:"12",cy:"12",r:"1"})],-1)])])}const u4=Ye({name:"lucide-circle-dot",render:i4}),d4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function c4(e,t){return l(),c("svg",d4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M16 14v2.2l1.6 1M16 2v4m5 1.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5M3 10h5m0-8v4"}),u("circle",{cx:"16",cy:"16",r:"6"})],-1)])])}const f4=Ye({name:"lucide-calendar-clock",render:c4}),p4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function h4(e,t){return l(),c("svg",p4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),u("path",{d:"M3 5v14a9 3 0 0 0 18 0V5"}),u("path",{d:"M3 12a9 3 0 0 0 18 0"})],-1)])])}const m4=Ye({name:"lucide-database",render:h4}),g4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function v4(e,t){return l(),c("svg",g4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("circle",{cx:"12",cy:"12",r:"10"}),u("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01"})],-1)])])}const y4=Ye({name:"lucide-circle-help",render:v4}),b4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function x4(e,t){return l(),c("svg",b4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M12 6v6l4 2"}),u("circle",{cx:"12",cy:"12",r:"10"})],-1)])])}const k4=Ye({name:"lucide-clock",render:x4}),w4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function _4(e,t){return l(),c("svg",w4,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 12a9 9 0 1 1-6.219-8.56"},null,-1)])])}const $4=Ye({name:"lucide-loader-circle",render:_4});function I4(e){return e==="running"?"running":e==="failed"?"failed":"idle"}function S4(e){return e.map((t,n)=>({thread:t,index:n})).sort((t,n)=>{const r=t.thread.lastActivityAt,a=n.thread.lastActivityAt;return r===a?t.index-n.index:r===null?1:a===null?-1:a-r}).map(({thread:t})=>t)}function C4(e,t=()=>null){const n=new Map;for(const r of e){const a=r.relationship||r.agent_name||"subagent";let o=n.get(a);o||(o={relationship:a,agentName:r.agent_name,total:0,counts:{running:0,idle:0,failed:0},threads:[]},n.set(a,o));const s=I4(r.status);o.total+=1,o.counts[s]+=1,o.threads.push({id:r.id,title:r.threadName||r.title||r.agent_name||r.id.slice(0,8),state:s,lastActivityAt:t(r.id)})}for(const r of n.values())r.threads=S4(r.threads);return[...n.values()]}function T4(e){return e.counts.running>0?`${e.counts.running} running`:e.counts.failed>0?`${e.counts.failed} failed`:e.total===1?"1 thread":`${e.total} threads`}function M4(e,t){const n=t.catalog,r=t.compositions?.every(a=>a.agentName===e.name)?t.compositions:null;return["a","b"].map(a=>{const o=r?.find(m=>m.id===a)??null,s=a==="a",i=(s?e.side_a_backing:e.side_b_backing)??(s?n?.side_a_backing:n?.side_b_backing)??o?.backing??null,d=(s?e.side_a_label:e.side_b_label)??(s?n?.side_a_label:n?.side_b_label)??null,p=(s?e.side_a_agent_prompt:e.side_b_agent_prompt)??(s?n?.side_a_agent_prompt:n?.side_b_agent_prompt)??o?.promptName??null,f=(s?n?.side_a_handler:n?.side_b_handler)??o?.handlerName??null;return{side:a==="a"?"A":"B",label:ao(a,i,d),backing:i,name:i==="human"?null:i==="handler"?f:p,model:i==="prompt"?o?.model?.name??null:null}})}const tl=300,A4=320,Lr=768,ya=24,op=16,ba=ya+tl+op,L4=ya+Lr+ba;function R4(e){return e>=L4}const E4=`min(max(0px, 100% - ${Lr+ba-ya}px), max(${ba-ya}px, (100% - ${Lr}px) / 2))`,P4=`calc(min(max(${ya}px, 100% - ${Lr+ba}px), max(${ba}px, (100% - ${Lr}px) / 2)) + ${Lr}px)`,N4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function O4(e,t){return l(),c("svg",N4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),u("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"})],-1)])])}const D4=Ye({name:"lucide-file",render:O4}),B4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function F4(e,t){return l(),c("svg",B4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M17.5 22h.5a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3"}),u("path",{d:"M14 2v4a2 2 0 0 0 2 2h4M2 19a2 2 0 1 1 4 0v1a2 2 0 1 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 1 1-4 0v-1a2 2 0 1 1 4 0"})],-1)])])}const j4=Ye({name:"lucide-file-audio",render:F4}),q4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function z4(e,t){return l(),c("svg",q4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M10 12.5L8 15l2 2.5m4-5l2 2.5l-2 2.5M14 2v4a2 2 0 0 0 2 2h4"}),u("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z"})],-1)])])}const V4=Ye({name:"lucide-file-code",render:z4}),H4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function U4(e,t){return l(),c("svg",H4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),u("path",{d:"M14 2v4a2 2 0 0 0 2 2h4M10 9H8m8 4H8m8 4H8"})],-1)])])}const K4=Ye({name:"lucide-file-text",render:U4}),W4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function G4(e,t){return l(),c("svg",W4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"}),u("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z"}),u("path",{d:"M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z"})],-1)])])}const J4=Ye({name:"lucide-file-video",render:G4}),X4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Y4(e,t){return l(),c("svg",X4,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}),u("circle",{cx:"9",cy:"9",r:"2"}),u("path",{d:"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21"})],-1)])])}const Z4=Ye({name:"lucide-image",render:Y4}),Q4=/\.(json|jsonc|js|mjs|cjs|ts|tsx|jsx|vue|py|rb|go|rs|sh|sql|ya?ml|toml|html|css|xml)$/i,eS=/\.(md|markdown|txt|csv|tsv|log)$/i;function tS(e){const t=e.mimeType??"";return t.startsWith("image/")?Z4:t.startsWith("audio/")?j4:t.startsWith("video/")?J4:t.includes("json")||t.includes("javascript")||t.includes("typescript")||t.includes("xml")||Q4.test(e.name)?V4:t.startsWith("text/")||eS.test(e.name)?K4:D4}function Wr(e,t,n=""){const r=t.replace(/^\/+/,"").split("/").map(a=>encodeURIComponent(a)).join("/");return He(`/api/threads/${e}/fs/${r}${n?`?${n}`:""}`)}const nS=4,rS=2;function Pu(e){return e.updatedAt??e.createdAt??0}function aS(e){const t=e.filter(r=>!r.isDirectory).sort((r,a)=>Pu(a)-Pu(r)||r.path.localeCompare(a.path)),n=nS*rS;return t.length<=n?{tiles:t,more:null}:{tiles:t.slice(0,n-1),more:t.length}}function oS(e){if(!e)return{files:null,keys:null,upcomingEffects:null};const t=aS(e.files);return{files:t.tiles.length>0?t:null,keys:e.kvCount?e.kvCount:null,upcomingEffects:e.effects?.upcomingCount?e.effects.upcomingCount:null}}function sS(e){let t=null,n=!1;async function r(){do{n=!1;try{await e()}catch{}}while(n);t=null}return()=>t?(n=!0,t):(t=r(),t)}const lS={class:"flex flex-col text-[13px] text-neutral-800 dark:text-neutral-200"},iS=["title"],uS={class:"info-name"},dS={key:0,class:"info-value"},cS=["title"],fS={class:"info-value"},pS=["aria-expanded"],hS={class:"info-value tabular-nums"},mS={key:2,class:"info-row"},gS={class:"info-value"},vS={key:3,class:"flex flex-col pb-1 pl-8"},yS={class:"info-sublabel"},bS={class:"flex w-full min-w-0 items-baseline gap-2"},xS={class:"min-w-0 flex-1 break-words text-neutral-800 dark:text-neutral-200"},kS={class:"shrink-0 tabular-nums text-neutral-800 dark:text-neutral-200"},wS={class:"flex w-full items-center gap-2"},_S={class:"h-1 min-w-0 flex-1 overflow-hidden rounded-full bg-black/[0.06] dark:bg-white/[0.08]","aria-hidden":"true"},$S={class:"shrink-0 text-[11px] text-neutral-500 dark:text-neutral-400"},IS={class:"info-name"},SS={class:"info-value tabular-nums"},CS={class:"info-name"},TS={class:"info-value tabular-nums"},MS={key:1,class:"info-row info-subrow mt-1"},AS={class:"info-value tabular-nums"},LS={key:2,class:"px-2 py-1 text-[12px] text-neutral-500 dark:text-neutral-400"},RS={class:"info-value"},ES={class:"info-value"},PS={class:"flex min-w-0 flex-1 flex-col"},NS={class:"break-words"},OS={key:0,class:"break-words text-[12px] text-neutral-500 dark:text-neutral-400"},DS={key:6,class:"info-label"},BS=["aria-expanded","onClick"],FS={class:"info-name"},jS={class:"info-value"},qS=["title","onClick"],zS={class:"info-name text-neutral-800 dark:text-neutral-200"},VS={class:"info-value"},HS=["onClick"],US={class:"info-name"},KS={key:7,class:"info-label"},WS={key:8,class:"flex flex-wrap gap-1.5 px-2 pb-1"},GS={class:"grid grid-cols-4 gap-1.5 px-2 pb-1"},JS=["title","aria-label","onClick"],XS=["src","onError"],YS={class:"font-medium"},Nu=5,ZS=we({__name:"ThreadInfoPanel",props:{thread:{},cost:{},costLoading:{type:Boolean},sides:{},subagentGroups:{},agents:{},isExpanded:{type:Function},workspace:{}},emits:["selectThread","toggle","openWorkspace"],setup(e,{emit:t}){const n=e,r=t;function a(L){return n.isExpanded(`all:${L.relationship}`)?L.threads:L.threads.slice(0,Nu)}function o(L){return L?Um(L*1e6):""}const s={running:{label:"Running",icon:$4,iconClass:"animate-spin text-accent-600 dark:text-accent-400"},failed:{label:"Failed",icon:yh,iconClass:"text-red-600 dark:text-red-400"},idle:{label:"Idle",icon:u4,iconClass:""}},i=x(()=>oS(n.workspace??null)),d=R(new Map);function p(L){const k=n.thread?.id,S=d.value.get(L.path)??0;return!k||!L.mimeType.startsWith("image/")||S>1?null:Wr(k,L.path,S===0?"thumbnail=1":"")}function f(L){const k=new Map(d.value);k.set(L,(k.get(L)??0)+1),d.value=k}const m=x(()=>n.cost?r4(n.cost):null),g=x(()=>s[n.thread?uc(n.thread):"idle"]);function v(L){return new Date(L*1e3).toLocaleString(void 0,{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"})}const _=x(()=>o(n.thread?.last_activity_at??n.thread?.created_at??null)),b=x(()=>{const L=n.thread;if(!L)return"";const k=[`Created ${v(L.created_at)}`];return L.last_activity_at&&k.push(`Last activity ${v(L.last_activity_at)}`),k.join(`
|
|
38
|
-
`)}),C={human:wl,prompt:bh,handler:s4};function y(L){return L.backing&&C[L.backing]||y4}const A=x(()=>(n.thread?.tags??[]).filter(L=>!L.startsWith("name:")&&!L.startsWith("seed:")));return(L,k)=>(l(),c("div",lS,[k[13]||(k[13]=u("h2",{class:"info-label"},"Run",-1)),u("div",{class:"info-row",title:e.thread?.status_reason??void 0},[(l(),K(ct(g.value.icon),{class:J(["info-icon",g.value.iconClass])},null,8,["class"])),u("span",uS,w(g.value.label),1),e.thread?.status_reason?(l(),c("span",dS,w(e.thread.status_reason.replace(/_/g," ")),1)):M("",!0)],8,iS),e.thread?(l(),c("div",{key:0,class:"info-row",title:b.value},[j(h(k4),{class:"info-icon"}),k[4]||(k[4]=u("span",{class:"info-name"},"Last activity",-1)),u("span",fS,w(_.value),1)],8,cS)):M("",!0),m.value?(l(),c("button",{key:1,type:"button",class:"info-row info-row-button","aria-expanded":e.isExpanded("cost"),onClick:k[0]||(k[0]=S=>r("toggle","cost"))},[j(h(Hs),{class:"info-icon"}),k[5]||(k[5]=u("span",{class:"info-name"},"Cost",-1)),u("span",hS,w(m.value.total),1),j(h(Gn),{class:J(["info-chevron",e.isExpanded("cost")?"rotate-90":""])},null,8,["class"])],8,pS)):(l(),c("div",mS,[j(h(Hs),{class:"info-icon"}),k[6]||(k[6]=u("span",{class:"info-name"},"Cost",-1)),u("span",gS,w(e.costLoading?"Loading…":"None"),1)])),m.value&&e.isExpanded("cost")?(l(),c("div",vS,[(l(!0),c(te,null,Ie([{title:"By model",rows:m.value.models},{title:"By thread",rows:m.value.threads}],S=>(l(),c(te,{key:S.title},[S.rows.length>0?(l(),c(te,{key:0},[u("h3",yS,w(S.title),1),(l(!0),c(te,null,Ie(S.rows,T=>(l(),K(ct(T.threadId?"button":"div"),{key:T.key,type:T.threadId?"button":void 0,class:J(["flex w-full min-w-0 flex-col gap-1 rounded-lg px-2 py-1.5 text-left text-[12px]",T.threadId?"info-row-button":""]),title:T.threadId?`Open ${T.label}`:T.label,onClick:B=>T.threadId&&r("selectThread",T.threadId)},{default:be(()=>[u("span",bS,[u("span",xS,w(T.label),1),u("span",kS,w(T.cost),1)]),u("span",wS,[u("span",_S,[u("span",{class:"block h-full rounded-full bg-neutral-400 dark:bg-neutral-500",style:nt({width:`${Math.max(2,T.share*100)}%`})},null,4)]),u("span",$S,w(T.detail),1)])]),_:2},1032,["type","class","title","onClick"]))),128))],64)):M("",!0)],64))),128)),m.value.parts.length>0?(l(),c(te,{key:0},[k[7]||(k[7]=u("h3",{class:"info-sublabel"},"By charge",-1)),(l(!0),c(te,null,Ie(m.value.parts,S=>(l(),c("div",{key:S.label,class:"info-row info-subrow"},[u("span",IS,w(S.label),1),u("span",SS,w(S.value),1)]))),128))],64)):M("",!0),(l(!0),c(te,null,Ie(m.value.open,S=>(l(),c("div",{key:S.label,class:"info-row info-subrow"},[u("span",CS,w(S.label),1),u("span",TS,w(S.value),1)]))),128)),m.value.averagePerMessage?(l(),c("div",MS,[k[8]||(k[8]=u("span",{class:"info-name"},"Average per message",-1)),u("span",AS,w(m.value.averagePerMessage),1)])):M("",!0),m.value.truncated?(l(),c("p",LS," Large subtree: some subagent threads are not included. ")):M("",!0)])):M("",!0),i.value.keys?(l(),c("button",{key:4,type:"button",class:"info-row info-row-button",onClick:k[1]||(k[1]=S=>r("openWorkspace",{tab:"kv"}))},[j(h(m4),{class:"info-icon"}),k[9]||(k[9]=u("span",{class:"info-name"},"KV store",-1)),u("span",RS,w(i.value.keys)+" "+w(i.value.keys===1?"entry":"entries"),1)])):M("",!0),i.value.upcomingEffects?(l(),c("button",{key:5,type:"button",class:"info-row info-row-button",onClick:k[2]||(k[2]=S=>r("openWorkspace",{tab:"effects"}))},[j(h(f4),{class:"info-icon"}),k[10]||(k[10]=u("span",{class:"info-name"},"Upcoming effects",-1)),u("span",ES,w(i.value.upcomingEffects),1)])):M("",!0),k[14]||(k[14]=u("h2",{class:"info-label"},"Sides",-1)),(l(!0),c(te,null,Ie(e.sides,S=>(l(),K(ct(S.backing==="prompt"&&S.name?h(jo):"div"),co({key:S.side},{ref_for:!0},S.backing==="prompt"&&S.name?{to:h(Rr).prompt(S.name)}:{},{class:["info-row info-row-stacked",S.backing==="prompt"&&S.name?"info-row-button":""]}),{default:be(()=>[(l(),K(ct(y(S)),{class:"info-icon mt-0.5"})),u("span",PS,[u("span",NS,w(S.name||S.label),1),S.name||S.model?(l(),c("span",OS,w([S.name?S.label:null,S.model].filter(Boolean).join(" · ")),1)):M("",!0)])]),_:2},1040,["class"]))),128)),e.subagentGroups.length>0?(l(),c("h2",DS,"Subagents")):M("",!0),(l(!0),c(te,null,Ie(e.subagentGroups,S=>(l(),c(te,{key:S.relationship},[u("button",{type:"button",class:"info-row info-row-button","aria-expanded":e.isExpanded(`subagent:${S.relationship}`),onClick:T=>r("toggle",`subagent:${S.relationship}`)},[j(da,{avatar:h(Ar)(e.agents,S.agentName)},null,8,["avatar"]),u("span",FS,w(S.relationship),1),u("span",jS,w(h(T4)(S)),1),j(h(Gn),{class:J(["info-chevron",e.isExpanded(`subagent:${S.relationship}`)?"rotate-90":""])},null,8,["class"])],8,BS),e.isExpanded(`subagent:${S.relationship}`)?(l(),c(te,{key:0},[(l(!0),c(te,null,Ie(a(S),T=>(l(),c("button",{key:T.id,type:"button",class:"info-row info-row-button info-subrow pl-8",title:T.title,onClick:B=>r("selectThread",T.id)},[(l(),K(ct(s[T.state].icon),{class:J(["size-3.5 shrink-0 text-neutral-500 dark:text-neutral-400",s[T.state].iconClass])},null,8,["class"])),u("span",zS,w(T.title),1),u("span",VS,w(o(T.lastActivityAt)),1)],8,qS))),128)),S.threads.length>Nu?(l(),c("button",{key:0,type:"button",class:"info-row info-row-button info-subrow pl-8",onClick:T=>r("toggle",`all:${S.relationship}`)},[u("span",US,w(e.isExpanded(`all:${S.relationship}`)?"Show fewer":`Show all ${S.threads.length}`),1)],8,HS)):M("",!0)],64)):M("",!0)],64))),128)),A.value.length>0?(l(),c("h2",KS,"Tags")):M("",!0),A.value.length>0?(l(),c("ul",WS,[(l(!0),c(te,null,Ie(A.value,S=>(l(),c("li",{key:S,class:"rounded-md bg-neutral-100 px-1.5 py-0.5 text-[12px] text-neutral-600 dark:bg-neutral-800 dark:text-neutral-300"},w(S),1))),128))])):M("",!0),i.value.files?(l(),c(te,{key:9},[k[12]||(k[12]=u("h2",{class:"info-label"},"Files",-1)),u("div",GS,[(l(!0),c(te,null,Ie(i.value.files.tiles,S=>(l(),c("button",{key:S.path,type:"button",class:"file-tile",title:S.name,"aria-label":S.name,onClick:T=>r("openWorkspace",{tab:"files",path:S.path})},[p(S)?(l(),c("img",{key:0,src:p(S)??void 0,alt:"",class:"size-full object-cover",loading:"lazy",onError:T=>f(S.path)},null,40,XS)):(l(),K(ct(h(tS)(S)),{key:1,class:"size-5 text-neutral-500 dark:text-neutral-400"}))],8,JS))),128)),i.value.files.more?(l(),c("button",{key:0,type:"button",class:"file-tile flex-col text-[11px] leading-tight text-neutral-600 dark:text-neutral-300",onClick:k[3]||(k[3]=S=>r("openWorkspace",{tab:"files"}))},[k[11]||(k[11]=u("span",null,"Show all",-1)),u("span",YS,w(i.value.files.more),1)])):M("",!0)])],64)):M("",!0)]))}}),Ou=ot(ZS,[["__scopeId","data-v-36099014"]]);function Wo(e){let t=null;try{t=dc()}catch{return{available:!1}}const n=Object.entries(e.events).map(([o,s])=>t.onEvent(o,s)),r=ve(t.status,(o,s)=>{o==="connected"&&s!=="connected"&&e.onConnected()}),a=()=>{r();for(const o of n)try{o()}catch{}};return om()&&Hr(a),{available:!0}}const $n=e=>(e.startsWith("/")?e:`/${e}`).replace(/\/+/g,"/"),to=(e,t,n)=>{const r=$n(e),a=$n(t),o=$n(n);return r===a?o:r.startsWith(`${a}/`)?`${o}${r.slice(a.length)}`:r},vs=e=>e.mimeType.startsWith("image/"),Go=(e,t)=>vs(e)!==vs(t)?vs(e)?-1:1:e.path.localeCompare(t.path);function So(e,t){const n=t,r=typeof n?.path=="string"?n.path:null,a=n?.file;if(!r||!a||typeof a!="object"||a.isDirectory)return null;const o=$n(r),s={path:o,name:typeof a.name=="string"&&a.name?a.name:o.split("/").filter(Boolean).pop()??o,mimeType:typeof a.mimeType=="string"&&a.mimeType?a.mimeType:"application/octet-stream",size:typeof a.size=="number"?a.size:0,isDirectory:!1,createdAt:typeof a.createdAt=="number"?a.createdAt:void 0,updatedAt:typeof a.updatedAt=="number"?a.updatedAt:void 0},i=e.filter(d=>d.path!==o);return i.push(s),i.sort(Go)}function sp(e,t){const n=t;if(typeof n?.path!="string")return null;const r=$n(n.path),a=`${r}/`;return e.filter(o=>o.path!==r&&!o.path.startsWith(a))}function lp(e,t){const n=t;if(typeof n?.from!="string"||typeof n.path!="string")return null;const r=$n(n.from),a=$n(n.path);let o=e.map(s=>{const i=to(s.path,r,a);return i===s.path?s:{...s,path:i,name:i.split("/").filter(Boolean).pop()??i}});return n.file&&n.file.isDirectory!==!0&&(o=So(o,{path:a,file:n.file})??o),o.sort(Go)}function QS(e,t,n){const r=new Map(t.map(s=>[s.path,s])),a=new Map(n.map(s=>[s.path,s])),o=new Set(e.map(s=>s.path));for(const s of a.keys())o.has(s)||r.delete(s);for(const s of e)a.get(s.path)!==s&&r.set(s.path,s);return[...r.values()].sort(Go)}const eC=new Set(["pending","processing","completed","failed","agent_canceled","user_canceled"]);function En(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function Du(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function tC(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function nC(e){return typeof e=="string"&&eC.has(e)?e:"pending"}function ip(e){const t=e&&typeof e=="object"?e:{},r=(Array.isArray(t.effects)?t.effects:[]).filter(a=>!!a&&typeof a=="object").filter(a=>typeof a.id=="string"&&typeof a.name=="string").map(a=>({id:a.id,name:a.name,args:tC(a.args),scheduledAt:En(a.scheduledAt,0),createdAt:En(a.createdAt,0),status:nC(a.status),attempts:En(a.attempts,0),error:typeof a.error=="string"?a.error:null,completedAt:Du(a.completedAt),manualRun:a.manualRun===!0,manualRunAt:Du(a.manualRunAt),replayedFrom:typeof a.replayedFrom=="string"?a.replayedFrom:null}));return{effects:r,total:En(t.total,r.length),upcomingCount:En(t.upcomingCount,r.filter(a=>a.status==="pending").length),limit:En(t.limit,r.length),offset:En(t.offset,0)}}function Co(e){return!Number.isFinite(e)||e<=0?0:e>9999999999?Math.floor(e/1e3):e}function sn(e){if(!e)return"Unknown";const t=Co(e);return t?new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(t)):"Unknown"}function rC(e){const t=Math.abs(Math.trunc(e)),n=Math.max(1,Math.round(t/1e3));if(n<60)return`${n}s`;const r=Math.floor(n/60),a=n%60;if(r<60)return a>0?`${r}m ${a}s`:`${r}m`;const o=Math.floor(r/60),s=r%60;if(o<24)return s>0?`${o}h ${s}m`:`${o}h`;const i=Math.floor(o/24),d=o%24;return d>0?`${i}d ${d}h`:`${i}d`}function aC(e){if(!e.completedAt)return"";const t=Co(e.scheduledAt),n=Co(e.completedAt);if(!t||!n)return"";const r=n-t;if(r===0||Math.abs(r)<5e3)return"";const a=r>0?"+":"-",o=r>0?"late":"early";return`${a}${rC(r)} ${o}`}function oC(e,t=Date.now()){const n=Co(e);if(!n)return"";const r=n-t;return r<=0?"Due now":r<6e4?`in ${Math.ceil(r/1e3)}s`:r<60*6e4?`in ${Math.ceil(r/6e4)}m`:r<1440*6e4?`in ${Math.ceil(r/(60*6e4))}h`:`in ${Math.ceil(r/(1440*6e4))}d`}function Bu(e){const t=JSON.stringify(e,null,2);return t===void 0?"{}":t}function sC(e){const t=Object.keys(e);if(t.length===0)return"No arguments";const n=JSON.stringify(e);return n?n.length>96?`${n.slice(0,93)}...`:n:`${t.length} ${t.length===1?"argument":"arguments"}`}function Ir(e){return e.status==="pending"||e.status==="processing"}function Ka(e,t){return e<t?-1:e>t?1:0}function yn(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function lC(e,t){const n=Ir(e),r=Ir(t);return n!==r?n?-1:1:n&&r?Ka(yn(e.scheduledAt),yn(t.scheduledAt))||Ka(yn(e.createdAt),yn(t.createdAt))||e.id.localeCompare(t.id):Ka(yn(t.createdAt),yn(e.createdAt))||Ka(yn(t.scheduledAt),yn(e.scheduledAt))||e.id.localeCompare(t.id)}function iC(e){return[...e].sort(lC)}function Fu(e,t){return e.id===t.id}function up(e){const t=e&&typeof e=="object"?e:{},n=Array.isArray(t.values)?t.values:[];return{values:n.filter(r=>!!r&&typeof r=="object").filter(r=>typeof r.key=="string").map(r=>({key:r.key,value:r.value,serialized:typeof r.serialized=="string"?r.serialized:dp(r.value),size:typeof r.size=="number"&&Number.isFinite(r.size)?r.size:0,updatedAt:typeof r.updatedAt=="number"&&Number.isFinite(r.updatedAt)?r.updatedAt:0,parseError:typeof r.parseError=="string"?r.parseError:void 0})),total:typeof t.total=="number"&&Number.isFinite(t.total)?t.total:n.length,limit:typeof t.limit=="number"&&Number.isFinite(t.limit)?t.limit:n.length,offset:typeof t.offset=="number"&&Number.isFinite(t.offset)?t.offset:0,search:typeof t.search=="string"?t.search:null}}function dp(e){const t=JSON.stringify(e,null,2);return t===void 0?"":t}function uC(e){try{const t=JSON.parse(e);return t===null?{ok:!1,error:"Use delete to remove a key"}:{ok:!0,value:t}}catch(t){return{ok:!1,error:t instanceof Error?t.message:"Invalid JSON"}}}function ys(e,t){return t?"unknown":Array.isArray(e)?"array":typeof e=="string"?"string":typeof e=="number"?"number":typeof e=="boolean"?"boolean":e&&typeof e=="object"?"object":"unknown"}function dC(e,t){if(t)return"Stored value is not valid JSON";if(Array.isArray(e))return`${e.length} ${e.length===1?"item":"items"}`;if(typeof e=="string")return e.length>80?`${e.slice(0,77)}...`:e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(e&&typeof e=="object"){const n=Object.keys(e).length;return`${n} ${n===1?"key":"keys"}`}return"Unknown"}function ju(e){if(!Number.isFinite(e)||e<=0)return"0 B";const t=["B","KB","MB"],n=Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1);return`${(e/1024**n).toFixed(n===0?0:1)} ${t[n]}`}function qu(e){if(!Number.isFinite(e)||e<=0)return"Unknown";const t=e>9999999999?Math.floor(e/1e3):e;return new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(t))}const cC=500,zu={files:[],kvCount:null,effects:null};function fC(e){const t=Dt(zu);function n(p,f){e.value===f&&(t.value={...t.value,...p})}function r(p){return sS(async()=>{const f=e.value;f&&n(await p(f),f)})}const a=r(async p=>({files:((await Be.getJson(`/api/threads/${encodeURIComponent(p)}/fs?find=**/*&type=file&limit=${cC}`)).files??[]).map(m=>({...m,path:$n(m.path)}))})),o=r(async p=>({kvCount:up(await Be.getJson(`/api/threads/${encodeURIComponent(p)}/kv?limit=1`)).total})),s=r(async p=>({effects:ip(await Be.getJson(`/api/threads/${encodeURIComponent(p)}/effects?limit=1`))}));function i(){a(),o(),s()}function d(p){return f=>{const m=p([...t.value.files],f);m&&(t.value={...t.value,files:m})}}return Wo({events:{file_created:d(So),file_updated:d(So),file_deleted:d(sp),file_moved:d(lp),kv_changed:()=>void o(),effect_changed:()=>void s()},onConnected:i}),ve(e,p=>{t.value=zu,p&&i()},{immediate:!0}),{snapshot:t}}const pC=we({name:"ThreadWorkspaceSummarySource",props:{threadId:{type:String,default:null}},emits:{update:e=>!0},setup(e,{emit:t}){const{snapshot:n}=fC(xt(e,"threadId"));return ve(n,r=>t("update",r),{immediate:!0}),()=>null}});function hC(e){const t=R({});function n(o){const s=e.value;return!!s&&(t.value[s]??[]).includes(o)}function r(o){const s=e.value;if(!s)return;const i=t.value[s]??[];t.value={...t.value,[s]:i.includes(o)?i.filter(d=>d!==o):[...i,o]}}function a(o){n(o)||r(o)}return{isExpanded:n,toggle:r,expand:a}}const mC=4e3;function gC(e){const t=R(null),n=R(!1);let r=!1,a=!1,o=null;async function s(){const d=e.value;if(!d){t.value=null;return}if(r){a=!0;return}r=!0,n.value=!0;try{const p=await Be.getJson(He(`/api/threads/${d}/cost`));e.value===d&&(t.value=p)}catch{e.value===d&&(t.value=null)}finally{n.value=!1,r=!1,a&&(a=!1,i())}}function i(){e.value&&(o&&clearTimeout(o),o=setTimeout(()=>{o=null,s()},mC))}return ve(e,d=>{o&&clearTimeout(o),o=null,t.value=null,d&&s()},{immediate:!0}),Ft(()=>{o&&clearTimeout(o)}),{report:t,isFetching:n,refresh:s,scheduleRefresh:i}}function vC(e,t,n){return e.type==="thread_created"?e.thread.parent===t:e.type==="thread_updated"?e.thread.parent===t||n.has(e.thread.id):n.has(e.threadId)}function yC(e){const t=R([]);let n=!1,r=!1;async function a(){const i=e.value;if(!i){t.value=[];return}if(n){r=!0;return}n=!0;try{const d=await Be.getJson(He(`/api/threads/${i}/subagents`));e.value===i&&(t.value=d.subagents??[])}catch{e.value===i&&(t.value=[])}finally{n=!1,r&&(r=!1,a())}}ve(e,i=>{t.value=[],i&&a()},{immediate:!0});const o=x(()=>new Set(t.value.map(i=>i.id)));function s(i){const d=e.value;return!d||!vC(i,d,o.value)?!1:(a(),!0)}return{entries:t,refresh:a,handleRegistryEvent:s}}function bC(e){const t=gC(e.threadId),n=yC(e.threadId);function r(o){n.handleRegistryEvent(o)&&t.scheduleRefresh()}function a(){n.refresh(),t.refresh()}return{cost:t,subagentGroups:x(()=>{const o=new Map(e.threads.value.map(s=>[s.id,s.last_activity_at??null]));return C4(n.entries.value,s=>o.get(s)??null)}),sides:x(()=>{const o=e.thread.value?.agent;if(!o)return[];const s=e.agents.value.find(i=>i.name===o.name||i.id===o.id)??null;return M4(o,{catalog:s,compositions:e.sideCompositions.value})}),handleRegistryEvent:r,handleReconnect:a}}function xC(e){const t=rr(),n=_a();function r(g,v){return(v?n.push(g):n.replace(g)).then(()=>{})}function a(){return t.path===en?t.query:{}}function o(){return xh(a())}function s(g,v){return r({path:en,query:{...o(),agent:g,thread:void 0},hash:Ba(v)},!0)}function i(g){const v=Bs(t,!!e.agentId.value);return t.query.thread===g&&v==="threads"?Promise.resolve():r({path:en,query:{...a(),thread:g},hash:Ba("threads")},!0)}function d(g,v){return r({path:en,query:{...o(),agent:g,thread:v},hash:Ba("threads")},!0)}function p(g){return r({path:en,query:Ci(g)},!0)}function f(g){const v=yl(t.query),_=typeof t.query.thread=="string"?t.query.thread:null;return r({path:en,query:{...o(),...Ci({allAgents:v,filters:g,thread:_})},hash:t.hash},!1)}function m(g){const v=Bs(t,!!e.agentId.value);if(g===v)return Promise.resolve();if(g==="home")return r(kh,!0);if(g==="catalog")return r(ec,!0);const _=v==="threads"||v==="structure";return r({path:en,query:{...o(),agent:e.agentId.value??void 0},hash:Ba(g)},!_)}return{openAgent:s,openThread:i,openAgentThread:d,openThreadView:p,setThreadListFilters:f,setMode:m}}const kC={class:"flex flex-1 flex-col items-center justify-center gap-3 px-6 text-center text-[13px] text-neutral-500 dark:text-neutral-400"},wC={key:0,class:"mt-1"},_C=we({__name:"ThreadViewEmpty",props:{loading:{type:Boolean},hasThreads:{type:Boolean},canCreate:{type:Boolean},agentMissing:{type:Boolean},sessionsCollapsed:{type:Boolean},showSessionsShortcut:{}},emits:["newThread","showSessions"],setup(e){const t=e,n=Do.threadView,r=x(()=>t.agentMissing?{title:n.agentMissing,body:n.agentMissingBody}:t.loading?{title:n.loading,body:null}:t.hasThreads?{title:n.select,body:null}:t.canCreate?{title:n.agentEmpty,body:n.agentEmptyBody}:{title:n.projectEmpty,body:null});return(a,o)=>(l(),c("div",kC,[u("div",null,[u("p",{class:J(r.value.body?"text-sm font-medium text-neutral-900 dark:text-neutral-100":"")},w(r.value.title),3),r.value.body?(l(),c("p",wC,w(r.value.body),1)):M("",!0)]),e.canCreate&&!e.loading&&!e.agentMissing?(l(),c("button",{key:0,type:"button",class:"inline-flex h-8 items-center gap-1.5 rounded-md bg-neutral-900 px-3 text-[13px] font-medium text-white transition-colors hover:bg-neutral-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent-500 focus-visible:ring-offset-2 dark:bg-neutral-100 dark:text-neutral-900 dark:hover:bg-white dark:focus-visible:ring-offset-neutral-900",onClick:o[0]||(o[0]=s=>a.$emit("newThread"))},[j(h(wh),{class:"size-4","aria-hidden":"true"}),Ce(" "+w(h(n).newThread),1)])):M("",!0),e.sessionsCollapsed?(l(),c("button",{key:1,type:"button",class:"rounded-md px-2 py-1 text-neutral-700 transition-colors hover:bg-black/5 dark:text-neutral-200 dark:hover:bg-white/10",onClick:o[1]||(o[1]=s=>a.$emit("showSessions"))}," Show threads ("+w(e.showSessionsShortcut)+") ",1)):M("",!0)]))}});function nl(e){return!!e&&typeof e=="object"}function $C(e){if(nl(e)&&!Array.isArray(e))return e;if(typeof e=="string")try{const t=JSON.parse(e);return nl(t)&&!Array.isArray(t)?t:void 0}catch{return}}function IC(e){const t=R(null),n=R(!1),r=R(null);let a=null;try{a=dc()}catch{}const o=a?.messages??R([]),s=x(()=>a?.groupedMessages?.value?a.groupedMessages.value:a?.workblocks?.value?a.workblocks.value:o.value),i=x(()=>a?.status.value==="connected"),d=R(null),p=x(()=>{const $=a?.runStatus?.value;return $?$.state==="running":o.value.some(D=>D.status==="pending")});function f($){if(!t.value?.agent||$==="system")return null;const D=t.value.agent,W=$==="assistant"?"A":"B";return W==="A"&&D.side_a_label?D.side_a_label:W==="B"&&D.side_b_label?D.side_b_label:null}function m($){const D=$.path??"",W=$.name??D.split("/").pop()??"attachment";return{id:$.id||`att-${D||W||Math.random().toString(36).slice(2)}`,type:"file",path:D,name:W,mimeType:$.mimeType||$.mediaType||"application/octet-stream",width:$.width,height:$.height,description:$.description}}function g($){if($){if(Array.isArray($))return $.length>0?$.map(m):void 0;try{const D=JSON.parse($);return Array.isArray(D)&&D.length>0?D.filter(nl).map(m):void 0}catch{return}}}function v($){const D=[];$.reasoning_content&&D.push({id:`${$.id}-reasoning`,type:"reasoning",content:$.reasoning_content,created_at:$.created_at});const W=new Map;for(const re of $.workItems)re.type==="tool_result"&&re.tool_call_id&&W.set(re.tool_call_id,re);for(const re of $.workItems){if(re.type==="content"){if(!re.content)continue;D.push({id:re.id,type:"content",content:re.content,created_at:re.created_at??$.created_at});continue}if(re.type!=="tool_call")continue;const ne=re.tool_call_id||re.id,de=W.get(ne);let ue="pending";if(de){const ae=(de.content||"").toLowerCase(),xe=ae.includes("failed")||ae.includes("error"),Re=ae.length<500;ue=de.status==="error"||xe&&Re?"failed":"success"}D.push({id:re.id,type:"tool_call",content:re.name||"",created_at:$.created_at,tool_name:re.name,tool_call_id:ne,tool_arguments:re.content||void 0,response:de?.content||null,response_status:ue,response_log_id:null,log_id:null})}const E=D.some(re=>re.type==="tool_call"&&re.response_status==="pending"),X=$.status!=="pending"&&!E;return{type:"work",id:$.id,role:"assistant",items:D,created_at:$.created_at,updated_at:$.updated_at??$.response_completed_at??$.created_at,request_sent_at:$.request_sent_at??$.created_at,response_completed_at:$.response_completed_at??(X?$.updated_at??$.created_at:null),isComplete:X,sideLabel:f("assistant"),status:$.status}}function _($){return $==="assistant"?"assistant":"user"}function b($){for(let D=$.length-1;D>=0;D--){const W=($[D].content||"").trim();if(W.length>0)return W}return""}function C($){const D=new Set,W=[];for(const E of $){const X=g(E.attachments);if(X?.length)for(const re of X)D.has(re.path)||(D.add(re.path),W.push(re))}return W.length>0?W:void 0}function y($){if(!$)return!1;if($.tool_status==="error"||$.status==="failed")return!0;const D=($.content||"").toLowerCase();return D?D.includes("failed to execute tool")||D.includes("has reported a failure")||D.includes("execution stopped before completion"):!1}function A($){const D=$.messages||[],W=D[D.length-1],E=W?_(W.role):"assistant",X=W?.log_id??null,re=($.subagent_status||"").toLowerCase(),ne=y(W)||re.includes("error")||re.includes("failed"),de=b(D),ue=C(D),ae=D.filter(xe=>{const Re=g(xe.attachments);return!!xe.content||!!xe.status||!!(Re&&Re.length>0)}).map(xe=>({id:xe.id,role:xe.role,content:xe.content||"",created_at:xe.created_at,silent:xe.silent,attachments:g(xe.attachments)}));return{type:"subagent",id:$.id,role:E,created_at:$.created_at,updated_at:$.updated_at,subagentId:$.subagent_id,subagentName:$.subagent_name??null,subagentTitle:$.subagent_title??null,subagentThreadName:$.subagent_thread_name??null,subagentStatus:$.subagent_status??null,subagentHasError:ne,subagentRelationship:$.subagent_relationship??null,subagentBlocking:$.subagent_blocking??null,messages:ae,messageCount:D.length,latestContent:de,attachments:ue,log_id:X,sideLabel:f(E),silent:D.length>0&&D.every(xe=>!!xe.silent)}}function L($){const D=($.subagents||[]).map(E=>A(E)),W=D.reduce((E,X)=>E?X.updated_at>E.updated_at?X:E:X,null);return{type:"subagent_group",id:$.id,role:W?.role??"assistant",created_at:$.created_at,updated_at:$.updated_at,subagents:D,count:D.length,log_id:W?.log_id??null,sideLabel:W?.sideLabel??f("assistant"),silent:D.every(E=>!!E.silent)}}function k($){return{type:"status",id:$.id,role:"system",content:$.content,created_at:$.created_at,statusKind:$.status_kind??null,subagentId:$.subagent_id??null}}const S=x(()=>{const $=[],W=s.value.filter(X=>(X.depth??0)===0);let E=[];for(let X=0;X<W.length;X++){const re=W[X];if("type"in re&&re.type==="workblock"){const xe=v(re);$.push(xe),re.attachments&&re.attachments.length>0&&E.push(...re.attachments.map(m));continue}if("type"in re&&re.type==="subagent_block"){E=[],$.push(A(re));continue}if("type"in re&&re.type==="subagent_group_block"){E=[],$.push(L(re));continue}if("type"in re&&re.type==="status"){E=[],$.push(k(re));continue}const ne=re,de=ne.role;if(ne.role==="tool")continue;const ue=g(ne.attachments);let ae;if((E.length>0||ue)&&(ae=[...E,...ue||[]],E=[]),ne.content||de==="system"||ne.status==="pending"||ae?.length){const xe={type:"text",id:ne.id,role:de,content:ne.content||"",attachments:ae?.length?ae:void 0,created_at:ne.created_at,log_id:ne.log_id||null,sideLabel:f(de),isOptimistic:ne.isOptimistic,status:ne.status??void 0,silent:ne.silent,metadata:$C(ne.metadata)};$.push(xe)}}return $});async function T(){if(!e.value){t.value=null;return}try{const $=await Be.request(He(`/api/threads/${e.value}`));t.value=await Be.readJson($)}catch{t.value=null}}async function B($){if(e.value){if(a?.deleteMessage){await a.deleteMessage($);return}await Be.request(He(`/api/threads/${e.value}/messages/${$}`),{method:"DELETE"})}}async function q($,D){e.value&&await Be.request(He(`/api/threads/${e.value}/messages/${$}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:D})})}ve(e,async $=>{$?(n.value=!0,await T(),n.value=!1):t.value=null},{immediate:!0});const H=a?.sendMessage,N=a?.stopExecution,P=a?.attachments??R([]),U=a?.addAttachment??(()=>{}),V=a?.removeAttachment??(()=>{}),Y=a?.clearAttachments??(()=>{});return{messages:S,threadInfo:t,isFetching:n,error:r,wsConnected:i,wsError:d,isExecuting:p,sendMessage:H,stopThread:N,attachments:P,addAttachment:U,removeAttachment:V,clearAttachments:Y,deleteMessageById:B,updateMessageContent:q}}const SC={key:0,class:"absolute inset-0 flex items-center justify-center bg-neutral-100 dark:bg-neutral-800"},CC={key:1,class:"absolute inset-0 flex items-center justify-center bg-neutral-100 dark:bg-neutral-800 text-neutral-400"},TC=["src","alt"],MC={key:2,class:"pointer-events-none absolute inset-0 flex items-center justify-center bg-black/0 group-hover:bg-black/35 transition-colors"},AC={class:"text-xs text-neutral-600 dark:text-neutral-300 truncate max-w-[100px]"},cp=we({__name:"FileAttachment",props:{attachment:{},threadId:{},showRemove:{type:Boolean}},emits:["remove"],setup(e,{emit:t}){const n=_a(),r=rr(),a=e,o=t,s=R(!0),i=R(!1),d=x(()=>a.attachment.mimeType.startsWith("image/")),p=x(()=>!!a.attachment.thumbnailBase64),f=x(()=>!a.threadId||!a.attachment.path?"":Wr(a.threadId,a.attachment.path)),m=x(()=>d.value?a.attachment.thumbnailBase64?`data:image/webp;base64,${a.attachment.thumbnailBase64}`:f.value:"");function g(){s.value=!1,i.value=!1}function v(){s.value=!1,i.value=!0}function _(){o("remove",a.attachment.id)}function b(){if(!a.attachment.path){f.value&&window.open(f.value,"_blank");return}n.replace({query:{...r.query,inspector:"files",filePath:a.attachment.path},hash:r.hash})}return(C,y)=>(l(),c("div",{class:J(["relative group inline-flex items-center overflow-hidden rounded-2xl bg-neutral-100 dark:bg-neutral-800/60 ring-1 ring-black/5 dark:ring-white/10 transition-[box-shadow] hover:ring-black/10 dark:hover:ring-white/20 hover:shadow-sm",{"w-[256px] h-[256px]":d.value,"px-2.5 py-1.5":!d.value,"cursor-pointer":d.value&&f.value}]),onClick:y[0]||(y[0]=A=>d.value&&f.value?b():void 0)},[d.value?(l(),c(te,{key:0},[s.value&&!i.value&&!p.value?(l(),c("div",SC,[...y[1]||(y[1]=[u("div",{class:"w-4 h-4 border-2 border-neutral-300 border-t-neutral-600 rounded-full animate-spin"},null,-1)])])):M("",!0),i.value&&!p.value?(l(),c("div",CC,[j(h(gc),{size:24})])):M("",!0),$t(u("img",{src:m.value||f.value,alt:e.attachment.name,class:"w-full h-full object-cover",onLoad:g,onError:v},null,40,TC),[[zt,!s.value&&!i.value||p.value]]),f.value?(l(),c("div",MC,[...y[2]||(y[2]=[u("span",{class:"rounded-full bg-white/90 px-3 py-1 text-xs font-medium text-neutral-900 opacity-0 group-hover:opacity-100 transition-opacity shadow-sm"}," View ",-1)])])):M("",!0)],64)):(l(),c(te,{key:1},[j(h(po),{size:14,class:"text-neutral-500 mr-1 flex-shrink-0"}),u("span",AC,w(e.attachment.name),1)],64)),e.showRemove?(l(),c("button",{key:2,onClick:Je(_,["stop"]),class:"absolute -top-1 -right-1 w-4 h-4 rounded-full bg-red-500 text-white flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity"},[j(h(cn),{size:10})])):M("",!0)],2))}});let bs=null,Vu=null;function LC(){return typeof window>"u"?null:((!bs||Vu!==window)&&(bs=Xm(window),Vu=window),bs)}function rl(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function RC(e){return((e??"").trim().split(/\s+/)[0]?.replace(/[^\w+#.-]/g,"")??"").slice(0,32)}function EC(e){const t=Array.from(e.trim()).filter(n=>{const r=n.charCodeAt(0);return r>32&&r!==127}).join("");return/^data:image\/(?:gif|jpe?g|png|webp);base64,/i.test(t)||/^(?:https?:|mailto:|tel:)/i.test(t)||/^[#/?]/.test(t)?!0:t.length>0&&!t.includes(":")&&!t.includes("&")}const PC=new Jm({async:!1,gfm:!0,breaks:!0,renderer:{html({text:e}){return rl(e)},code({text:e,lang:t}){const n=RC(t),r=n?` class="language-${n}"`:"";return`<div class="md-code"><div class="md-code-header"><span class="md-code-lang">${n||"text"}</span><span class="md-code-copy" role="button" tabindex="0" data-md-copy>Copy</span></div><pre><code${r}>${rl(e)}
|
|
39
|
-
</code></pre></div>`}},walkTokens(e){(e.type==="link"||e.type==="image")&&"href"in e&&typeof e.href=="string"&&!EC(e.href)&&(e.href="")}});function NC(e){const t=PC.parse((e??"").trim()),n=LC();return n?.isSupported?n.sanitize(t,{USE_PROFILES:{html:!0},FORBID_TAGS:["style","form","input","button"],FORBID_ATTR:["style"]}):rl(t)}const OC=["innerHTML"],DC=1500,BC=we({__name:"TranscriptMarkdown",props:{content:{},variant:{default:"body"}},setup(e){const t=e,n=x(()=>NC(t.content)),r=new Set;async function a(d){const p=d.closest(".md-code")?.querySelector("pre code")?.textContent??"";try{await navigator.clipboard.writeText(p.replace(/\n$/,""))}catch{d.textContent="Copy failed"}d.textContent==="Copy"&&(d.textContent="Copied");const f=setTimeout(()=>{d.textContent="Copy",r.delete(f)},DC);r.add(f)}function o(d){const p=d.target;return p instanceof Element?p.closest("[data-md-copy]"):null}function s(d){const p=o(d);p&&(d.stopPropagation(),a(p))}function i(d){if(d.key!=="Enter"&&d.key!==" ")return;const p=o(d);p&&(d.preventDefault(),d.stopPropagation(),a(p))}return Ft(()=>{for(const d of r)clearTimeout(d);r.clear()}),(d,p)=>(l(),c("div",{class:J(["transcript-md",`transcript-md--${e.variant}`]),onClick:s,onKeydown:i,innerHTML:n.value},null,42,OC))}}),Jo=ot(BC,[["__scopeId","data-v-e9ce40c0"]]);function FC(e){const t=r=>!!r.path&&(r.mimeType||"").startsWith("image/"),n=[...e.attachments||[]].reverse().find(t);if(n)return n;for(let r=e.messages.length-1;r>=0;r--){const a=[...e.messages[r].attachments||[]].reverse().find(t);if(a)return a}return null}const jC=/^The subagent was initiated successfully\. Reference:\s+[\w-]+$/;function Yl(e){if(e.subagentHasError===!0)return"error";const t=(e.subagentStatus||"running").toLowerCase();return t==="pending"||t==="queued"?"queued":t==="awaiting_human"?"awaiting_human":t!=="idle"&&t!=="terminated"?"running":"complete"}const qC={error:"error",queued:"queued",awaiting_human:"awaiting human",running:"running",complete:"complete"},zC={error:"Reported failure to parent",queued:"Queued",awaiting_human:"Waiting for human input",running:"Working",complete:"Returned result to parent"};function VC(e){return qC[Yl(e)]}function fp(e){return e.subagentThreadName||e.subagentTitle||e.subagentRelationship||e.subagentName||"Subagent"}function HC(e,t){return[e.subagentName,e.subagentRelationship].filter(a=>!!a).map(a=>t.find(o=>o.name===a)?.title).find(a=>!!a)||e.subagentTitle||e.subagentName||e.subagentRelationship||"Subagent"}function pp(e){return e.slice(0,8)}function UC(e){const t=[zC[Yl(e)]],n=e.subagentRelationship;return n&&n!==fp(e)&&t.push(n),t.push(`ref ${pp(e.subagentId)}`),t.join(" · ")}function KC(e){const t=(e.latestContent||"").trim().split(`
|
|
40
|
-
`).find(Boolean)?.trim()??"";return!t||jC.test(t)?null:t}function WC(e){return e==="tool"?"Initialization":e==="user"?"Subagent":e==="assistant"?"Assistant":"System"}function GC(e,t){return[e.subagentName,e.subagentRelationship].filter(a=>!!a).map(a=>t.find(o=>o.name===a)?.icon).find(a=>!!a)||Fs(e.subagentName||e.subagentTitle||e.subagentId)}const JC={class:"flex min-w-0 items-center gap-2 px-3 py-2.5"},XC=["aria-expanded"],YC=["src"],ZC={class:"min-w-0 flex-1"},QC={class:"flex min-w-0 items-center gap-2"},e3={class:"truncate"},t3={class:"font-medium text-neutral-900 dark:text-neutral-100"},n3={key:0,class:"text-neutral-500 dark:text-neutral-400"},r3={key:0,class:"block truncate text-[12px] text-neutral-500 dark:text-neutral-400"},a3=["src"],o3={key:0,class:"-mt-1 truncate pb-2.5 pl-[3.25rem] pr-3 text-neutral-600 dark:text-neutral-400"},s3={key:1,class:"divide-y divide-neutral-100 border-t border-neutral-100 dark:divide-neutral-800/70 dark:border-neutral-800/70"},l3={class:"flex items-center gap-2 text-[11px] text-neutral-500 dark:text-neutral-400"},i3={class:"font-medium text-neutral-700 dark:text-neutral-300"},u3={class:"tabular-nums"},d3={key:0,class:"italic"},c3={key:1,class:"mt-2 flex flex-wrap gap-2"},hp=we({__name:"SubagentCard",props:{message:{},threadId:{},embedded:{type:Boolean},highlighted:{type:Boolean}},emits:["openSubagent"],setup(e,{emit:t}){const n=e,r=t,a=R(!1),o=wa(),s=x(()=>GC(n.message,o.items.value)),i=x(()=>HC(n.message,o.items.value)),d=x(()=>!n.message.subagentId.startsWith("pending:")),p=x(()=>d.value&&Vr({known:vl(o),agents:o.items.value},n.message.subagentName)),f=x(()=>d.value?i.value:n.message.subagentThreadName||"Subagent"),m=x(()=>fp(n.message)),g=x(()=>KC(n.message)),v=x(()=>Yl(n.message)),_=x(()=>{if(!n.threadId)return null;const y=FC(n.message);return y?Wr(n.threadId,y.path):null}),b={error:"bg-red-50 text-red-700 dark:bg-red-950/50 dark:text-red-300",awaiting_human:"bg-amber-50 text-amber-700 dark:bg-amber-950/50 dark:text-amber-300",running:"bg-blue-50 text-blue-700 dark:bg-blue-950/50 dark:text-blue-300",queued:"bg-neutral-100 text-neutral-600 dark:bg-neutral-800 dark:text-neutral-300",complete:"bg-emerald-50 text-emerald-700 dark:bg-emerald-950/50 dark:text-emerald-300"};function C(y){return new Date(y/1e3).toLocaleTimeString()}return(y,A)=>(l(),c("div",{class:J(["min-w-0 text-[13px] leading-5",[e.embedded?"":"rounded-xl border border-neutral-200 dark:border-neutral-800",{"border-dashed":e.message.silent&&!e.embedded,"agents-ring-selected ring-2":e.highlighted}]])},[u("div",JC,[u("button",{type:"button",class:"-m-1 flex min-w-0 flex-1 items-center gap-3 rounded-lg p-1 text-left transition-colors hover:bg-neutral-50 dark:hover:bg-neutral-900","aria-expanded":a.value,onClick:A[0]||(A[0]=Je(L=>a.value=!a.value,["stop"]))},[u("img",{src:s.value,alt:"",class:"size-7 shrink-0 rounded-md object-cover"},null,8,YC),u("span",ZC,[u("span",QC,[u("span",e3,[u("span",t3,w(f.value),1),d.value&&m.value!==i.value?(l(),c("span",n3," · "+w(m.value),1)):M("",!0)]),p.value?(l(),K(Wn,{key:0,compact:""})):M("",!0),u("span",{class:J(["shrink-0 rounded-full px-1.5 text-[11px] leading-[18px]",b[v.value]])},w(d.value?h(VC)(e.message):"Starting"),3)]),d.value?(l(),c("span",r3,w(h(UC)(e.message))+" · "+w(e.message.messageCount)+" message"+w(e.message.messageCount===1?"":"s"),1)):M("",!0)]),_.value?(l(),c("img",{key:0,src:_.value,alt:"",loading:"lazy",class:"size-7 shrink-0 rounded-md object-cover ring-1 ring-neutral-200 dark:ring-neutral-800"},null,8,a3)):M("",!0),d.value?(l(),K(h(Et),{key:1,size:14,class:J(["shrink-0 text-neutral-400 transition-transform",{"rotate-90":a.value}])},null,8,["class"])):M("",!0)],8,XC),d.value?(l(),c("button",{key:0,type:"button",class:"inline-flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-[12px] font-medium text-neutral-500 transition-colors hover:bg-neutral-100 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-neutral-800 dark:hover:text-neutral-100",title:"Open the subagent's thread",onClick:A[1]||(A[1]=Je(L=>r("openSubagent",e.message.subagentId),["stop"]))},[A[2]||(A[2]=Ce(" Open ",-1)),j(h(sm),{size:12})])):M("",!0)]),g.value&&!a.value?(l(),c("p",o3,w(g.value),1)):M("",!0),a.value?(l(),c("ol",s3,[(l(!0),c(te,null,Ie(e.message.messages,L=>(l(),c("li",{key:L.id,class:"px-3 py-2 pl-[3.25rem]"},[u("div",l3,[u("span",i3,w(h(WC)(L.role)),1),u("time",u3,w(C(L.created_at)),1),L.silent?(l(),c("span",d3,"silent")):M("",!0)]),L.content?(l(),K(Jo,{key:0,content:L.content,variant:"compact",class:"mt-0.5 text-neutral-700 dark:text-neutral-300"},null,8,["content"])):M("",!0),L.attachments?.length&&e.threadId?(l(),c("div",c3,[(l(!0),c(te,null,Ie(L.attachments,k=>(l(),K(cp,{key:k.id,attachment:k,threadId:e.threadId},null,8,["attachment","threadId"]))),128))])):M("",!0)]))),128))])):M("",!0)],2))}}),f3={class:"flex items-center justify-between gap-3 border-b border-neutral-100 px-3 py-2 text-[12px] dark:border-neutral-800/70"},p3={class:"text-neutral-500 dark:text-neutral-400"},h3={class:"divide-y divide-neutral-100 dark:divide-neutral-800/70"},m3=we({__name:"SubagentGroup",props:{message:{},threadId:{},highlighted:{type:Boolean}},emits:["openSubagent"],setup(e,{emit:t}){const n=t;return(r,a)=>(l(),c("div",{class:J(["w-full overflow-hidden rounded-xl border border-neutral-200 dark:border-neutral-800",{"border-dashed":e.message.silent,"agents-ring-selected ring-2":e.highlighted}])},[u("div",f3,[a[1]||(a[1]=u("span",{class:"font-medium text-neutral-700 dark:text-neutral-300"},"Subagent activity",-1)),u("span",p3,w(e.message.count)+" active profile"+w(e.message.count===1?"":"s"),1)]),u("div",h3,[(l(!0),c(te,null,Ie(e.message.subagents,o=>(l(),K(hp,{key:o.id,message:o,"thread-id":e.threadId,embedded:"",onOpenSubagent:a[0]||(a[0]=s=>n("openSubagent",s))},null,8,["message","thread-id"]))),128))])],2))}}),g3=/https:\/\/[^\s"'<>()\][]+/g;function mp(e){if(!e)return null;const t=e.match(g3);if(!t)return null;for(const n of t){const r=n.replace(/[.,;:!?]+$/,"");let a;try{a=new URL(r)}catch{continue}if(a.protocol==="https:"&&a.pathname.endsWith("/settings/billing"))return a.toString()}return null}const v3={none:"",prompt:"pt-8",reply:"pt-6",status:"pt-4",step:"pt-3"};function Kt(e){return e.type==="status"?"status":e.type==="text"&&e.silent?"agent":e.role==="system"?"status":e.type==="text"&&e.role==="user"&&!e.silent?"prompt":"agent"}function y3(e,t){if(t<=0)return"none";const n=Kt(e[t]),r=Kt(e[t-1]);return n==="status"||r==="status"?"status":n==="prompt"?"prompt":r==="prompt"?"reply":"step"}function Pn(e){return e.type==="work"||e.type==="status"?null:e.log_id}function b3(e){return e.type!=="status"&&e.silent===!0}function al(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Hu(e){const t=e.content??"";return e.status!=="failed"&&!t.includes("[ERROR]")?null:mp(t)}function Zl(e){if(e.type!=="text")return null;const t=e.metadata;if(!al(t))return null;const n=t.scheduledEffect;return al(n)?n:null}function Ql(e){const t=Zl(e);return typeof t?.id=="string"?t.id:null}function x3(e){const t=Zl(e);return typeof t?.name=="string"?t.name:null}function ea(e){return Ql(e)!==null}function k3(e){const t=Ql(e),n=x3(e);return n&&t?`${n} (${t})`:n||"Scheduled effect"}function xs(e){if(e.type!=="text")return null;const t=Zl(e),n=typeof t?.id=="string"?t.id:null;return n?{id:n,name:typeof t?.name=="string"?t.name:null}:null}function gp(e){return new Date(e/1e3).toLocaleTimeString()}function w3(e){return e?e.trim():""}const vp={prompt:"justify-end",agent:"justify-start",status:"justify-center"};function _3(e){const t=Kt(e);return t!=="prompt"?`relative mt-1.5 ${vp[t]}`:e.sideLabel?"relative mt-1.5 justify-end":"absolute right-1 top-full mt-1 justify-end"}function $3(e){return e.silent?`${Kt(e)==="status"?"w-full":"w-fit max-w-full"} rounded-xl border border-dashed border-neutral-300 px-3 py-1.5 text-neutral-500 dark:border-neutral-700 dark:text-neutral-400`:e.role==="assistant"?"text-neutral-900 dark:text-neutral-100":e.role==="user"?"rounded-[18px] bg-neutral-100 px-4 py-2.5 text-neutral-900 dark:bg-neutral-800 dark:text-neutral-100":"rounded-xl border border-neutral-200 px-3 py-1.5 text-neutral-600 dark:border-neutral-800 dark:text-neutral-400"}function Uu(e,t,n){if(e.type!=="text")return;const r=e.attachments;if(!r?.length)return;if(e.silent)return r;const a=n[t-1];if(!a||a.type!=="text"||!a.silent||!(a.content||"").trim().startsWith("Initial asset attachment path:"))return r;const s=new Set((a.attachments||[]).map(d=>d.path));if(s.size===0)return r;const i=r.filter(d=>!s.has(d.path));return i.length>0?i:void 0}function I3(e){if(e.type==="status")return!0;if(e.type!=="text"||e.role!=="system")return!1;if(yp(e)!==null)return!0;const t=e.content||"";return t.includes("Execution stopped")?!0:/subagents?\s+started:/i.test(t)}function yp(e){if(e.type!=="text"||e.role!=="system")return null;const t=e.metadata;return!al(t)||t.user_command!==!0?null:((e.content||"").split(`
|
|
41
|
-
`,1)[0]??"").replace(/^\$\s*/,"").trim()||"(command)"}function S3(e){const t=yp(e);return t!==null?`User ran command: ${t}`:(e.type==="text"||e.type==="status")&&e.content||""}function C3(e){const t=e?.trim();return t?t.charAt(0).toUpperCase():"A"}function T3(e){if(e.silent!==!0||!e.metadata)return null;const t=e.metadata.subagent_id??e.metadata.subagentId;if(typeof t!="string")return null;const n=t.trim();return n.length>0?n:null}const M3=/^Runtime hook (\S+)$/;function bp(e){const t=e[0];if(t!=="{"&&t!=="[")return null;try{const n=JSON.parse(e);return n!==null&&typeof n=="object"?n:null}catch{return null}}function A3(e){const t=(e??"").trim();if(!t)return{prose:"",json:null};const n=t.split(`
|
|
42
|
-
`);for(let r=0;r<n.length;r++){const a=n[r][0];if(a!=="{"&&a!=="[")continue;const o=bp(n.slice(r).join(`
|
|
43
|
-
`).trim());if(o)return{prose:n.slice(0,r).join(`
|
|
44
|
-
`).trim(),json:JSON.stringify(o,null,2)}}return{prose:t,json:null}}function L3(e){return e.role!=="system"?null:M3.exec((e.content??"").trim())?.[1]??null}function R3(e){return e.metadata?.subagentInitialArguments===!0}function E3(e){const t=e?bp(e):null,n=t&&!Array.isArray(t)?Object.keys(t).length:0;return n===0?"Arguments":`${n} argument${n===1?"":"s"}`}function P3(e){const t=L3(e);if(t)return{source:{label:`hook ${t}`,title:null},prose:"",json:null,collapsedSummary:null};const n=A3(e.content);if(R3(e))return{...n,source:{label:"subagent arguments",title:null},collapsedSummary:E3(n.json)};const r=T3(e);return{...n,source:r?{label:`subagent ref ${pp(r)}`,title:r}:null,collapsedSummary:null}}const N3={class:"min-w-0 text-[13px] leading-5 text-neutral-500 dark:text-neutral-400","data-silent-note":""},O3={class:"flex min-w-0 flex-wrap items-center gap-x-1.5 text-xs leading-5"},D3=["title"],B3={class:"shrink-0 tabular-nums"},F3=["aria-expanded","aria-controls"],j3=["id"],q3={key:1,class:"silent-note-data",tabindex:"0","aria-label":"Structured data"},z3=we({__name:"SilentNote",props:{message:{},headerOnly:{type:Boolean}},setup(e){const t=e,n=x(()=>P3(t.message)),r=x(()=>!t.headerOnly&&n.value.collapsedSummary!==null),a=R(!1),o=Fo(),s=x(()=>t.headerOnly||!n.value.prose&&!n.value.json?!1:!r.value||a.value);return(i,d)=>(l(),c("div",N3,[u("div",O3,[d[4]||(d[4]=u("span",null,"Silent",-1)),n.value.source?(l(),c(te,{key:0},[d[1]||(d[1]=u("span",{class:"silent-note-separator","aria-hidden":"true"},"·",-1)),u("span",{class:"min-w-0 truncate",title:n.value.source.title??void 0},w(n.value.source.label),9,D3)],64)):M("",!0),e.message.created_at?(l(),c(te,{key:1},[d[2]||(d[2]=u("span",{class:"silent-note-separator","aria-hidden":"true"},"·",-1)),u("time",B3,w(h(gp)(e.message.created_at)),1)],64)):M("",!0),r.value?(l(),c(te,{key:2},[d[3]||(d[3]=u("span",{class:"silent-note-separator","aria-hidden":"true"},"·",-1)),u("button",{type:"button",class:"silent-note-toggle -mx-1 inline-flex shrink-0 items-center gap-1 rounded-md px-1 transition-colors hover:bg-neutral-100 hover:text-neutral-800 dark:hover:bg-neutral-800/70 dark:hover:text-neutral-100","aria-expanded":a.value,"aria-controls":h(o),onClick:d[0]||(d[0]=Je(p=>a.value=!a.value,["stop"]))},[u("span",null,w(n.value.collapsedSummary),1),j(h(Et),{size:14,class:J(["shrink-0 opacity-60 transition-transform",{"rotate-90":a.value}]),"aria-hidden":"true"},null,8,["class"])],8,F3)],64)):M("",!0)]),s.value?(l(),c("div",{key:0,id:h(o),class:"mt-1 min-w-0 space-y-2"},[n.value.prose?(l(),K(Jo,{key:0,content:n.value.prose,variant:"compact"},null,8,["content"])):M("",!0),n.value.json?(l(),c("pre",q3,[u("code",null,w(n.value.json),1)])):M("",!0)],8,j3)):M("",!0)]))}}),V3=ot(z3,[["__scopeId","data-v-fa1a5f65"]]),H3={bash:"bash",css:"css",html:"html",js:"javascript",jsx:"jsx",json:"json",md:"markdown",mjs:"javascript",sh:"bash",ts:"typescript",tsx:"tsx",vue:"vue",yaml:"yaml",yml:"yaml"},U3=120;function To(e){return e?e.trim():""}function xp(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function ei(e){try{return JSON.parse(e)}catch{return null}}function kp(e){const t=ei(e);return t===null?null:JSON.stringify(t,null,2)}function ir(e){return e.replace(/\\r\\n/g,`
|
|
45
|
-
`).replace(/\\n/g,`
|
|
46
|
-
`).replace(/\\t/g," ")}function Ku(e,t=U3){const n=e.trim().split(`
|
|
47
|
-
`)[0]??"";return n.length>t?n.substring(0,t):n}function wp(e){if(!e)return{};const t=ei(e);return t===null?{raw:e}:xp(t)??{raw:t}}function Wu(e){if(!e)return null;const t=wp(e),n=Object.keys(t);if(n.length===0)return null;const r=t[n[0]];return Ku(typeof r=="string"?ir(r):JSON.stringify(r))}function _p(e){if(typeof e!="string")return null;const t=e.split("?")[0]?.split("#")[0]?.split(".").pop()?.toLowerCase();return t?H3[t]??null:null}function $p(e){if(typeof e!="string")return null;const t=e.toLowerCase();return t.includes("json")?"json":t.includes("typescript")?"typescript":t.includes("javascript")?"javascript":t.includes("html")?"html":t.includes("css")?"css":t.includes("markdown")?"markdown":t.includes("yaml")||t.includes("yml")?"yaml":t.includes("shell")||t.includes("bash")?"bash":null}function K3(e){const t=ir(e);return t.includes(`
|
|
48
|
-
`)||/(^|\s)(import|export|const|let|function|async|return|class|interface|type)\s/.test(t)||/<\/?[a-z][\s\S]*>/i.test(t)||/\b(Response|Request|fetch|console)\b/.test(t)}function ol(e){const t=ir(e).trim();return t?/^\s*</.test(t)||/<\/[a-z][\s\S]*>/i.test(t)?"html":/^\s*[{[]/.test(t)&&kp(t)?"json":/\b(interface|type|Request|Response)\b/.test(t)||/\bimport\s+.+\s+from\s+["']/.test(t)||/\bexport\s+(default\s+)?(async\s+)?function\b/.test(t)?"typescript":/\b(import|export|const|let|function|async|return|class)\b/.test(t)?"javascript":/^#!.*\b(bash|sh)\b/.test(t)?"bash":null:null}function Mo(e,t,n){for(const r of t){const a=n(e[r]);if(a)return a}return null}function W3(e,t,n){const r=e.toLowerCase(),a=Mo(n,["path","filePath","filename","name"],_p),o=Mo(n,["mimeType","mime_type","contentType","content_type"],$p);return typeof t=="string"&&(r.includes("content")||r.includes("code")||r.includes("source"))?o||a||ol(t)||"text":typeof t!="string"?"json":ol(t)||"text"}function G3(e,t,n){if(Array.isArray(t)||t&&typeof t=="object")return!0;if(typeof t!="string")return!1;const r=e.toLowerCase();return n!=="text"||t.length>120||K3(t)||r.includes("content")||r.includes("body")||r.includes("schema")||r.includes("payload")}function J3(e,t){return typeof e!="string"?JSON.stringify(e,null,2):t==="json"?kp(e)||e:ir(e)}function X3(e){const t=wp(e);return Object.entries(t).map(([n,r])=>{const a=W3(n,r,t);return{key:n,language:a,code:J3(r,a),isBlock:G3(n,r,a)}})}function Y3(e){const t=xp(e);if(!t||typeof t.content!="string")return null;const n=Mo(t,["mimeType","mime_type","contentType","content_type"],$p)||Mo(t,["path","filePath","name"],_p)||ol(t.content)||"text";return{code:ir(t.content),language:n}}function Gu(e){const t=To(e),n=ei(t),r=Y3(n);if(r)return r;if(n!==null)return{code:JSON.stringify(n,null,2),language:"json"};const a=ir(t);return{code:a,language:a.includes("```")?"markdown":"text"}}function Z3(e){return ir(To(e))}function Q3(e){return e.type==="tool_call"?e.response_status==="failed"?"failed":e.response_status==="success"?"success":"pending":e.type==="content"?"success":"neutral"}function eT(e){if(e.type!=="tool_call")return e.type;const t=e.tool_name||"Tool call";return e.response_status==="failed"?`${t} failed`:e.response_status==="success"?`${t} succeeded`:`${t} pending`}function tT(e){const t=Math.round(e/1e6);return t<1?"< 1s":t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function nT(e){if(!e.isComplete)return"Working…";const t=e.request_sent_at&&e.response_completed_at?e.response_completed_at-e.request_sent_at:e.updated_at-e.created_at;return`Worked for ${tT(t)}`}function rT(e){for(const t of["content","reasoning"]){const n=e.filter(a=>a.type===t&&To(a.content)),r=n[n.length-1];if(r)return To(r.content).split(`
|
|
49
|
-
`)[0]??null}return null}function aT(e){const t=nT(e),n=rT(e.items),r=e.items.filter(a=>a.type==="tool_call");return{label:n??t,duration:n?t:null,toolCount:r.length,failedCount:r.filter(a=>a.response_status==="failed").length,active:!e.isComplete}}function oT(e){const t=[];for(const n of e.items)n.log_id&&t.push(n.log_id),n.response_log_id&&t.push(n.response_log_id);return t}function Sr(e,t){return!!t&&(e.log_id===t||e.response_log_id===t)}const sT={class:"min-w-0 text-[13px] leading-5"},lT=["aria-expanded"],iT={key:0,class:"shrink-0 opacity-70"},uT={key:1,class:"shrink-0 opacity-70"},dT={key:2,class:"shrink-0 text-rose-600 dark:text-rose-400"},cT={key:0,class:"mt-1 ml-0.5 space-y-0.5 border-l border-neutral-200 pl-3.5 dark:border-neutral-800"},fT=["aria-expanded","onClick","onMouseenter"],pT=["title"],hT={class:"shrink-0 font-mono text-[12px] font-medium text-neutral-800 dark:text-neutral-200"},mT={key:0,class:"min-w-0 flex-1 truncate text-neutral-500 dark:text-neutral-400"},gT={key:0,class:"mt-1 mb-2 space-y-2.5 pl-3.5"},vT={key:0},yT={class:"work-detail-surface divide-y divide-neutral-200/70 dark:divide-neutral-800"},bT={class:"truncate pt-0.5 font-mono text-[12px] text-neutral-500"},xT={class:"min-w-0"},kT={key:1,class:"break-words text-neutral-800 dark:text-neutral-200"},wT={key:1},_T={class:"work-detail-label"},$T=["onClick","onMouseenter"],IT={key:0,class:"m-0 whitespace-pre-wrap break-words font-mono text-[12px] leading-5"},ST=["aria-expanded","onClick"],CT={key:0,class:"mb-2 whitespace-pre-wrap break-words pl-3.5 text-neutral-600 dark:text-neutral-400"},TT=we({__name:"WorkBlock",props:{message:{},isEditMode:{type:Boolean},selectedMessageId:{},selectedLogId:{},hoveredLogId:{}},emits:["messageClick","messageHover"],setup(e,{emit:t}){const n=e,r=t,a=R(!1),o=R(new Set),s=x(()=>aT(n.message)),i=x(()=>oT(n.message)),d=x(()=>n.isEditMode?!1:n.selectedMessageId===n.message.id?!0:n.message.items.some(b=>Sr(b,n.selectedLogId)||Sr(b,n.hoveredLogId)));function p(){if(n.isEditMode)return;a.value=!a.value;const b=i.value[0];b&&r("messageClick",n.message.id,b)}function f(b){n.isEditMode||r("messageHover",b?i.value[0]??null:null)}function m(b){const C=new Set(o.value);C.has(b.id)?C.delete(b.id):C.add(b.id),o.value=C,b.log_id&&r("messageClick",n.message.id,b.log_id)}function g(b){return Sr(b,n.selectedLogId)||Sr(b,n.hoveredLogId)}function v(b){const C=b.response_log_id;return!!C&&(C===n.selectedLogId||C===n.hoveredLogId)}const _={success:"bg-emerald-500/70 dark:bg-emerald-400/70",failed:"bg-rose-500 dark:bg-rose-400",pending:"bg-neutral-400 animate-pulse dark:bg-neutral-500",neutral:"bg-neutral-300 dark:bg-neutral-600"};return(b,C)=>(l(),c("div",sT,[u("button",{type:"button",class:J(["work-block-toggle -ml-1.5 inline-flex max-w-full items-center gap-1.5 rounded-md px-1.5 py-0.5 text-left transition-colors",[d.value?"agents-surface-selected agents-text-selected":"text-neutral-500 hover:bg-neutral-100 hover:text-neutral-800 dark:text-neutral-400 dark:hover:bg-neutral-800/70 dark:hover:text-neutral-100",{"cursor-default":e.isEditMode}]]),"aria-expanded":a.value,onClick:Je(p,["stop"]),onMouseenter:C[0]||(C[0]=y=>f(!0)),onMouseleave:C[1]||(C[1]=y=>f(!1))},[u("span",{class:J(["min-w-0 truncate",{"work-block-active":s.value.active}])},w(s.value.label),3),s.value.duration?(l(),c("span",iT,"· "+w(s.value.duration),1)):M("",!0),s.value.toolCount?(l(),c("span",uT," · "+w(s.value.toolCount)+" tool call"+w(s.value.toolCount===1?"":"s"),1)):M("",!0),s.value.failedCount?(l(),c("span",dT," · "+w(s.value.failedCount)+" failed ",1)):M("",!0),j(h(Et),{size:14,class:J(["shrink-0 opacity-60 transition-transform",{"rotate-90":a.value}])},null,8,["class"])],42,lT),a.value?(l(),c("div",cT,[(l(!0),c(te,null,Ie(e.message.items,y=>(l(),c("div",{key:y.id,class:"min-w-0"},[y.type==="tool_call"?(l(),c(te,{key:0},[u("button",{type:"button",class:J(["-ml-1.5 flex w-full min-w-0 items-center gap-2 rounded-md px-1.5 py-1 text-left transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-800/70",{"agents-surface-selected":g(y)}]),"aria-expanded":o.value.has(y.id),onClick:Je(A=>m(y),["stop"]),onMouseenter:Je(A=>y.log_id&&r("messageHover",y.log_id),["stop"]),onMouseleave:C[2]||(C[2]=Je(A=>r("messageHover",null),["stop"]))},[u("span",{class:J(["size-1.5 shrink-0 rounded-full",_[h(Q3)(y)]]),title:h(eT)(y)},null,10,pT),u("span",hT,w(y.tool_name),1),h(Wu)(y.tool_arguments)?(l(),c("span",mT,w(h(Wu)(y.tool_arguments)),1)):M("",!0)],42,fT),o.value.has(y.id)?(l(),c("div",gT,[y.tool_arguments?(l(),c("section",vT,[C[4]||(C[4]=u("h4",{class:"work-detail-label"},"Arguments",-1)),u("dl",yT,[(l(!0),c(te,null,Ie(h(X3)(y.tool_arguments),A=>(l(),c("div",{key:A.key,class:"grid grid-cols-[6rem_minmax(0,1fr)] gap-x-3 px-3 py-1.5"},[u("dt",bT,w(A.key),1),u("dd",xT,[A.isBlock?(l(),K(Cn,{key:0,code:A.code,language:A.language},null,8,["code","language"])):(l(),c("span",kT,w(A.code),1))])]))),128))])])):M("",!0),y.response?(l(),c("section",wT,[u("h4",_T,w(y.response_status==="failed"?"Error":"Response"),1),u("div",{class:J(["work-detail-surface cursor-pointer px-3 py-2",[y.response_status==="failed"?"!bg-rose-50/70 text-rose-800 dark:!bg-rose-950/30 dark:text-rose-200":"text-neutral-800 dark:text-neutral-200",{"agents-ring-selected ring-1":v(y)}]]),onClick:Je(A=>y.response_log_id&&r("messageClick",e.message.id,y.response_log_id),["stop"]),onMouseenter:Je(A=>y.response_log_id&&r("messageHover",y.response_log_id),["stop"]),onMouseleave:C[3]||(C[3]=Je(A=>r("messageHover",null),["stop"]))},[y.response_status==="failed"?(l(),c("pre",IT,w(h(Z3)(y.response)),1)):(l(),K(Cn,{key:1,code:h(Gu)(y.response).code,language:h(Gu)(y.response).language},null,8,["code","language"]))],42,$T)])):M("",!0)])):M("",!0)],64)):y.type==="reasoning"?(l(),c(te,{key:1},[u("button",{type:"button",class:"-ml-1.5 flex items-center gap-1.5 rounded-md px-1.5 py-1 italic text-neutral-500 transition-colors hover:bg-neutral-100 hover:text-neutral-800 dark:text-neutral-400 dark:hover:bg-neutral-800/70 dark:hover:text-neutral-100","aria-expanded":o.value.has(y.id),onClick:Je(A=>m(y),["stop"])},[C[5]||(C[5]=Ce(" Reasoning ",-1)),j(h(Et),{size:12,class:J(["opacity-60 transition-transform",{"rotate-90":o.value.has(y.id)}])},null,8,["class"])],8,ST),o.value.has(y.id)?(l(),c("div",CT,w(y.content?.trim()),1)):M("",!0)],64)):y.type==="content"&&y.content?(l(),K(Jo,{key:2,content:y.content,variant:"compact",class:"py-1 text-neutral-600 dark:text-neutral-400"},null,8,["content"])):M("",!0)]))),128))])):M("",!0)]))}}),MT=ot(TT,[["__scopeId","data-v-ca518e17"]]),AT={class:"flex flex-col"},LT=["onMouseenter","onMouseleave","onClick"],RT=["onClick"],ET={key:0,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"3",stroke:"currentColor",class:"w-3 h-3 text-white"},PT={key:1,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"2.5",stroke:"currentColor",class:"w-3 h-3 text-white"},NT={key:0,class:"w-full py-1 text-center text-xs text-neutral-400 dark:text-neutral-500"},OT=["contenteditable","onInput"],DT=["href"],BT={key:4,class:"inline-flex items-center gap-1 rounded-full bg-neutral-100 px-3 py-2 dark:bg-neutral-800/60"},FT={key:0,class:"inline-flex items-center gap-1.5 text-neutral-500 dark:text-neutral-400"},jT={key:1,class:"inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-[4px] border agents-border-selected agents-surface-selected text-[8px] font-semibold leading-none agents-text-selected","aria-hidden":"true"},qT={key:1,class:"text-neutral-500 dark:text-neutral-400"},zT=["title","onClick"],VT={class:"tabular-nums"},HT=["onClick"],UT={key:0,class:"mt-2 flex flex-wrap gap-2"},KT=we({__name:"AgentMessages",props:{messages:{},threadId:{},selectedMessageId:{},selectedLogId:{},selectedEffectId:{},hoveredLogId:{},isEditMode:{type:Boolean},selectedForDelete:{},editedMessages:{},assistantAvatarSrc:{},userAvatarSrc:{}},emits:["messageClick","messageHover","selectionChange","messageEdit","openTurnLogs","openSubagent"],setup(e,{expose:t,emit:n}){const r=e,a=n;function o(q){const H=r.selectedForDelete?.has(q)??!1;a("selectionChange",q,!H)}function s(q,H){if(!(q.target instanceof HTMLElement))return;const N=q.target.innerText;a("messageEdit",H,N)}function i(q){return r.editedMessages?.has(q)??!1}const d=R(new Map);function p(q,H){H?d.value.set(q,H):d.value.delete(q)}function f(q,H){p(q,H instanceof HTMLElement?H:null)}function m(q){const H=r.messages.findIndex(N=>Pn(N)===q);if(H<=0)return-1;for(let N=H-1;N>=0;N--){const P=r.messages[N];if(P.role==="user")return N;if(P.role==="assistant"&&Pn(P))break}return-1}function g(q){for(let H=0;H<r.messages.length;H++){const N=r.messages[H];if(Pn(N)===q||N.type==="work"&&N.items.some(P=>Sr(P,q)))return H}return-1}function v(q,H){const P=g(q);if(P===-1)return!1;const U=d.value.get(P);if(!U)return!1;const V=r.messages[P];let Y=null;const $=Pn(V);if(V.role==="assistant"&&$){const E=m($);Y=E!==-1?d.value.get(E)??null:null}const D=H.getBoundingClientRect(),W=U.getBoundingClientRect();if(W.top<D.top){const re=(Y||U).getBoundingClientRect().top-D.top-10;H.scrollBy({top:re,behavior:"smooth"})}else if(W.bottom>D.bottom){const E=W.bottom-D.bottom+10;H.scrollBy({top:E,behavior:"smooth"})}else if(Y){const E=Y.getBoundingClientRect();if(E.top<D.top){const X=E.top-D.top-10;H.scrollBy({top:X,behavior:"smooth"})}}return!0}function _(q){for(const H of r.messages)if(H.type==="work"&&H.items.some(N=>Sr(N,q)))return!0;return!1}t({scrollToLogId:v,hasWorkblockForLogId:_});function b(q){const H=r.messages[q],N=Pn(H);if(N)return N;if(H.role==="user")for(let P=q+1;P<r.messages.length;P++){const U=r.messages[P],V=Pn(U);if(V)return V;if(U.role==="user")break}return null}function C(q,H){return H?b(q)===H:!1}function y(q,H){if(r.isEditMode||b3(q)||q.role==="user"&&!ea(q))return"";const N=Ql(q),P=!!b(H)||ea(q);return C(H,r.selectedLogId??null)||N&&N===r.selectedEffectId?"message-log-state message-log-state--selected":b(H)&&C(H,r.hoveredLogId??null)?"message-log-state message-log-state--hovered":P?"message-log-state":""}function A(q){const H=b(q);H&&a("messageHover",H)}function L(q){b(q)&&a("messageHover",null)}function k(q){const H=r.messages[q],N=b(q),P=xs(H);(N||P)&&a("messageClick",H.id,N,P)}function S(q){const H=r.messages[q],N=xs(H);N&&a("messageClick",H.id,b(q),N)}function T(q){return r.isEditMode?!1:C(q,r.selectedLogId??null)||C(q,r.hoveredLogId??null)}function B(q){return q.role==="assistant"?r.assistantAvatarSrc??null:q.role==="user"?r.userAvatarSrc??null:null}return(q,H)=>(l(),c("div",AT,[(l(!0),c(te,null,Ie(e.messages,(N,P)=>(l(),c("div",{key:N.id,ref_for:!0,ref:U=>f(P,U),class:J(["group/message flex min-w-0 items-start gap-3",h(v3)[h(y3)(e.messages,P)]]),onMouseenter:U=>A(P),onMouseleave:U=>L(P),onClick:U=>e.isEditMode?o(N.id):k(P)},[e.isEditMode&&N.role!=="system"?(l(),c("button",{key:0,onClick:Je(U=>o(N.id),["stop"]),class:J(["mt-0.5 flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full border-2 transition-colors",{"border-red-500 bg-red-500":e.selectedForDelete?.has(N.id),"border-green-500 bg-green-500":!e.selectedForDelete?.has(N.id)&&i(N.id),"border-neutral-400 dark:border-neutral-500 bg-transparent hover:border-neutral-500 dark:hover:border-neutral-400":!e.selectedForDelete?.has(N.id)&&!i(N.id)}])},[e.selectedForDelete?.has(N.id)?(l(),c("svg",ET,[...H[6]||(H[6]=[u("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4.5 12.75l6 6 9-13.5"},null,-1)])])):i(N.id)?(l(),c("svg",PT,[...H[7]||(H[7]=[u("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"},null,-1)])])):M("",!0)],10,RT)):M("",!0),u("div",{class:J(["flex min-w-0 flex-1",[h(vp)[h(Kt)(N)],{"cursor-pointer":(b(P)||h(xs)(N))&&!e.isEditMode}]])},[h(I3)(N)?(l(),c("div",NT,w(h(S3)(N)),1)):N.type==="text"?(l(),c("div",{key:1,class:J(["flex min-w-0 flex-col",{"w-full items-start":h(Kt)(N)==="agent","max-w-[80%] items-end":h(Kt)(N)==="prompt","w-[30rem] max-w-[85%] items-center":h(Kt)(N)==="status"}])},[u("div",{class:J(["message-text-frame",[y(N,P),{"w-full":h(Kt)(N)==="agent"||h(Kt)(N)==="status","message-log-state--chip":h(Kt)(N)==="status"||N.silent===!0}]])},[u("div",{class:J(["message-text-surface",[h($3)(N),{"opacity-60":N.isOptimistic},{"message-edit-outline message-edit-outline--edited":e.isEditMode&&i(N.id),"message-edit-outline":e.isEditMode&&N.role!=="system"&&!i(N.id)}]])},[N.silent?(l(),K(V3,{key:0,message:N,"header-only":e.isEditMode},null,8,["message","header-only"])):M("",!0),e.isEditMode?(l(),c("div",{key:1,class:J(["whitespace-pre-wrap break-words outline-none",N.silent?"mt-1 text-[13px] leading-5":"text-[15px] leading-6"]),contenteditable:N.role!=="system",onInput:U=>s(U,N.id),onClick:H[0]||(H[0]=Je(()=>{},["stop"]))},w(h(w3)(N.content)),43,OT)):N.content&&!N.silent?(l(),K(Jo,{key:2,content:N.content,variant:N.role==="system"?"compact":"body"},null,8,["content","variant"])):M("",!0),!e.isEditMode&&h(Hu)(N)?(l(),c("a",{key:3,href:h(Hu)(N),target:"_blank",rel:"noopener noreferrer",class:"mt-2 inline-flex items-center gap-1.5 rounded-full bg-red-600 px-3.5 py-1.5 text-xs font-semibold text-white transition-colors hover:bg-red-700 dark:bg-red-500 dark:text-red-950 dark:hover:bg-red-400",onClick:H[1]||(H[1]=Je(()=>{},["stop"]))},[...H[8]||(H[8]=[Ce(" Add credits ",-1),u("svg",{class:"h-3 w-3",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},[u("path",{"fill-rule":"evenodd",d:"M4.25 5.5a.75.75 0 0 0-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-4a.75.75 0 0 1 1.5 0v4A2.25 2.25 0 0 1 12.75 17h-8.5A2.25 2.25 0 0 1 2 14.75v-8.5A2.25 2.25 0 0 1 4.25 4h5a.75.75 0 0 1 0 1.5h-5Z","clip-rule":"evenodd"}),u("path",{"fill-rule":"evenodd",d:"M6.194 12.753a.75.75 0 0 0 1.06.053L16.5 4.44v2.81a.75.75 0 0 0 1.5 0v-4.5a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0 0 1.5h2.553l-9.056 8.194a.75.75 0 0 0-.053 1.06Z","clip-rule":"evenodd"})],-1)])],8,DT)):N.status==="pending"?(l(),c("div",BT,[...H[9]||(H[9]=[u("span",{class:"typing-dot",style:{"animation-delay":"0ms"}},null,-1),u("span",{class:"typing-dot",style:{"animation-delay":"150ms"}},null,-1),u("span",{class:"typing-dot",style:{"animation-delay":"300ms"}},null,-1)])])):M("",!0)],2),N.status!=="pending"&&!N.silent?(l(),c("div",{key:0,class:J(["flex h-5 items-center gap-2 text-xs text-neutral-400 dark:text-neutral-500",h(_3)(N)])},[N.sideLabel&&!h(ea)(N)?(l(),c("span",FT,[B(N)?(l(),K(Mn,{key:0,icon:B(N),seed:N.sideLabel,class:"h-4 w-4 shrink-0 rounded-[4px] object-cover"},null,8,["icon","seed"])):(l(),c("span",jT,w(h(C3)(N.sideLabel)),1)),u("span",null,w(N.sideLabel),1)])):N.role==="system"&&!h(ea)(N)?(l(),c("span",qT,"System")):M("",!0),h(ea)(N)?(l(),c("button",{key:2,type:"button",class:"inline-flex cursor-pointer items-center gap-1 rounded px-0.5 text-neutral-500 transition-colors hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100",title:h(k3)(N),onClick:Je(U=>S(P),["stop"])},[j(h(Bn),{size:12,class:"shrink-0"}),H[10]||(H[10]=u("span",null,"via Scheduled Effect",-1))],8,zT)):M("",!0),u("time",VT,w(h(gp)(N.created_at)),1),(N.role==="assistant"?b(P):N.role==="user"&&h(Pn)(N))?(l(),c("button",{key:3,type:"button",class:"inline-flex items-center gap-1 rounded px-1 text-neutral-500 hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100",title:"Logs for this turn",onClick:Je(U=>a("openTurnLogs",N.id,b(P)),["stop"])},[j(h(vc),{size:12,class:"shrink-0"}),H[11]||(H[11]=u("span",null,"Logs",-1))],8,HT)):M("",!0)],2)):M("",!0)],2),h(Uu)(N,P,e.messages)?.length&&e.threadId?(l(),c("div",UT,[(l(!0),c(te,null,Ie(h(Uu)(N,P,e.messages),U=>(l(),K(cp,{key:U.id,attachment:U,threadId:e.threadId},null,8,["attachment","threadId"]))),128))])):M("",!0)],2)):N.type==="work"?(l(),K(MT,{key:2,class:J(["w-full",{"opacity-80":N.silent}]),message:N,"is-edit-mode":e.isEditMode,"selected-message-id":e.selectedMessageId,"selected-log-id":e.selectedLogId,"hovered-log-id":e.hoveredLogId,onMessageClick:H[2]||(H[2]=(U,V)=>a("messageClick",U,V)),onMessageHover:H[3]||(H[3]=U=>a("messageHover",U))},null,8,["class","message","is-edit-mode","selected-message-id","selected-log-id","hovered-log-id"])):N.type==="subagent_group"?(l(),K(m3,{key:3,message:N,"thread-id":e.threadId,highlighted:T(P),onOpenSubagent:H[4]||(H[4]=U=>a("openSubagent",U))},null,8,["message","thread-id","highlighted"])):N.type==="subagent"?(l(),K(hp,{key:4,class:"w-full",message:N,"thread-id":e.threadId,highlighted:T(P),onOpenSubagent:H[5]||(H[5]=U=>a("openSubagent",U))},null,8,["message","thread-id","highlighted"])):M("",!0)],2)],42,LT))),128))]))}}),WT=ot(KT,[["__scopeId","data-v-a62be12f"]]);function GT(e,t){const n=`${t.props.type}__${e}`,r=`formkit-${e}`,a=t.props.family?`family:${t.props.family}__${e}`:"",o=`${n}__${a}`;if(!(o in Nn)){const s=Nn[n]??JT[e]??{};s[r]=!0,a in Nn?Nn[o]={...Nn[a],...s}:Nn[o]=s}return Nn[o]??{[r]:!0}}const Nn={"family:button__wrapper":{"group-data-[disabled=true]:grayscale":!0},"family:button__input":{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"font-bold":!0,"rounded-xs":!0,"outline-hidden":!0,flex:!0,"!text-xs":!0,"px-6":!0,"py-3":!0,"items-center":!0,"mb-1.5":!0,"text-xs":!0,"ring-accent-500":!0,"focus-visible:ring-2":!0,"focus-visible:ring-offset-2":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"shadow-none":!0,"group-data-[prefix-icon]:pl-4":!0,"group-data-[suffix-icon]:pr-4":!0,border:!0,"border-accent-600":!0,"text-accent-600":!0,"group-[&]/repeater:shadow-none":!0,"group-[&]/multistep:shadow-none":!0,"dark:border-accent-500":!0},"family:box__wrapper":{"inline-flex":!0,"items-center":!0,"mb-0.5":!0,"group-data-[multiple]:mb-0":!0},"family:box__legend":{block:!0,"text-gray-700":!0,"text-xs":!0,"font-bold":!0,"dark:text-gray-300":!0,"mb-1.5":!0},"family:box__input":{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,peer:!0,"pointer-events-none":!0,absolute:!0,"h-0":!0,"w-0":!0,"overflow-hidden":!0,"opacity-0":!0},"family:box__decorator":{"mr-1.5":!0,"bg-white":!0,"ring-accent-500":!0,"peer-checked:border-accent-600":!0,relative:!0,block:!0,"text-base":!0,"w-[1em]":!0,"aspect-[1/1]":!0,border:!0,"border-gray-300":!0,"text-transparent":!0,"peer-checked:bg-accent-50":!0,"peer-checked:text-accent-600":!0,"peer-focus-visible:ring-2":!0,"peer-focus-visible:ring-offset-1":!0,"select-none":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"peer-disabled:bg-gray-100":!0,"group-data-[disabled]:grayscale":!0,"shadow-none":!0,"peer-disabled:cursor-not-allowed":!0,"group-[&]/repeater:shadow-none":!0,"group-[&]/multistep:shadow-none":!0,"dark:border-gray-700":!0,"dark:bg-transparent":!0,"dark:ring-offset-accent-500":!0,"dark:peer-focus-visible:ring-1":!0,"dark:peer-disabled:bg-gray-600/50":!0,"dark:peer-checked:bg-accent-900":!0,"dark:peer-checked:text-accent-400":!0},"family:box__decoratorIcon":{absolute:!0,"left-1/2":!0,"top-1/2":!0,flex:!0,"h-full":!0,"w-full":!0,"-translate-x-1/2":!0,"-translate-y-1/2":!0},"family:box__option":{"mb-1":!0,"last:mb-0":!0,"data-[disabled]:opacity-50":!0,"data-[disabled]:select-none":!0,"group-data-[disabled]:data-[disabled]:opacity-100":!0},"family:box__label":{block:!0,"text-gray-700":!0,"text-xs":!0,"font-bold":!0,"mb-0.5":!0,"!mb-0":!0,"!font-normal":!0,"!text-sm":!0,"dark:text-gray-300":!0},"family:box__optionHelp":{"text-gray-500":!0,"text-[11px]":!0,"[line-height:1em]":!0,"-mt-1":!0,"mb-1.5":!0,"ml-[min(2em,1.7rem)]":!0,relative:!0,"left-0":!0},"family:box__help":{"text-gray-500":!0,"text-[11px]":!0,"[line-height:1em]":!0,"dark:text-gray-400":!0,"mb-0.5":!0,"group-data-[multiple]:mb-1.5":!0,"group-data-[multiple]:-mt-1.5":!0},"family:text__wrapper":{flex:!0,"flex-col":!0,"items-start":!0,"justify-start":!0,"mb-1":!0,"last:mb-0":!0},"family:text__label":{block:!0,"text-gray-700":!0,"text-xs":!0,"font-bold":!0,"dark:text-gray-300":!0,"!inline-flex":!0,"mb-1":!0},"family:text__inner":{"text-sm":!0,flex:!0,"items-center":!0,"w-full":!0,"py-1.5":!0,"px-2.5":!0,"rounded-xs":!0,border:!0,"border-gray-300":!0,"bg-white":!0,"focus-within:ring-1":!0,"focus-within:!ring-accent-500":!0,"focus-within:!border-accent-500":!0,"group-data-[invalid]:border-red-500":!0,"group-data-[invalid]:ring-1":!0,"group-data-[invalid]:ring-red-500":!0,"group-data-[disabled]:bg-gray-100":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"shadow-none":!0,"group-[&]/repeater:shadow-none":!0,"group-[&]/multistep:shadow-none":!0,"dark:bg-transparent":!0,"dark:border-gray-700":!0,"dark:group-data-[disabled]:bg-gray-800/5":!0,"dark:group-data-[invalid]:border-red-500":!0,"dark:group-data-[invalid]:ring-red-500":!0},"family:text__input":{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"text-sm":!0,"text-gray-700":!0,"min-w-0":!0,"min-h-[1.5em]":!0,grow:!0,"outline-hidden":!0,"bg-transparent":!0,"selection:bg-accent-100":!0,"placeholder:text-gray-400":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"dark:placeholder-gray-400/50":!0,"dark:text-gray-300":!0,"border-none":!0,"p-0":!0,"focus:ring-0":!0},"family:text__prefixIcon":{flex:!0,"items-center":!0,"-ml-0.5":!0,"mr-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"text-gray-600":!0,"dark:text-gray-300":!0},"family:text__suffixIcon":{flex:!0,"items-center":!0,"-mr-0.5":!0,"ml-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"text-gray-600":!0,"dark:text-gray-300":!0},"family:dropdown__wrapper":{"mb-1.5":!0},"family:dropdown__inner":{relative:!0,flex:!0,"items-center":!0,"bg-white":!0,border:!0,"border-gray-300":!0,"rounded-xs":!0,"group-data-[is-multiline]:!rounded-xs":!0,"focus-within:ring-1":!0,"focus-within:!ring-accent-500":!0,"focus-within:!border-accent-500":!0,"group-data-[invalid]:border-red-500":!0,"group-data-[invalid]:ring-1":!0,"group-data-[invalid]:ring-red-500":!0,"group-data-[disabled]:bg-gray-100":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"shadow-none":!0,"group-[&]/repeater:shadow-none":!0,"group-[&]/multistep:shadow-none":!0,"dark:bg-transparent":!0,"dark:border-gray-700":!0,"dark:group-data-[disabled]:bg-gray-700/40":!0,"dark:group-data-[invalid]:border-red-500":!0,"dark:group-data-[invalid]:ring-red-500":!0},"family:dropdown__input":{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,grow:!0,"p-1.5":!0,"pr-0":!0,"pl-2.5":!0,"text-sm":!0,"text-gray-700":!0,"text-ellipsis":!0,"min-w-0":!0,"outline-hidden":!0,"bg-transparent":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"group-data-[prefix-icon]:!pl-0":!0,"group-data-[suffix-icon]:!pr-0":!0,"placeholder:text-gray-400":!0,"selection:bg-accent-100":!0,"dark:placeholder:text-gray-500":!0,"dark:text-gray-300":!0,"border-none":!0,"focus:ring-0":!0,"bg-none":!0},"family:dropdown__listboxButton":{"w-[2.5em]":!0,"self-stretch":!0,"text-sm":!0,flex:!0,"items-center":!0,"text-gray-700":!0,"z-10":!0,"dark:text-gray-300":!0,"data-[disabled]:cursor-not-allowed":!0},"family:dropdown__removeSelection":{"w-[2.5em]":!0,"self-stretch":!0,"text-sm":!0,flex:!0,"items-center":!0,"text-gray-700":!0,"hover:text-red-400":!0,"z-10":!0,"dark:text-gray-300":!0},"family:dropdown__controlLabel":{absolute:!0,"opacity-0":!0,"pointer-events-none":!0,"text-[0px]":!0},"family:dropdown__selectIcon":{"text-sm":!0,"inline-flex":!0,"justify-center":!0,"w-[2.5em]":!0,relative:!0,"my-auto":!0,"[&>svg]:w-[1em]":!0,"[&>svg]:mx-auto":!0},"family:dropdown__closeIcon":{"text-sm":!0,"w-[0.75em]":!0,relative:!0,"m-auto":!0},"family:dropdown__prefixIcon":{flex:!0,"items-center":!0,"-ml-0.5":!0,"mr-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"!ml-1.5":!0,"!mr-0":!0,"text-gray-600":!0,"dark:text-gray-300":!0},"family:dropdown__suffixIcon":{flex:!0,"items-center":!0,"-mr-0.5":!0,"ml-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"!mr-1.5":!0,"!ml-0":!0,"text-gray-600":!0,"dark:text-gray-300":!0},"family:dropdown__dropdownWrapper":{"rounded-xs":!0,"shadow-md":!0,"mt-0.5":!0,"overflow-clip":!0,"empty:hidden":!0,border:!0,"border-gray-200":!0,"dark:border-gray-700":!0,"group-data-[expanded]:opacity-100":!0,"group-data-[overscroll]:m-0":!0,"group-data-[overscroll]:shadow-none":!0,"group-data-[overscroll]:border-none":!0},"family:dropdown__listitemGroup":{"group/optgroup":!0,"last:pb-0":!0,"border-t":!0,"border-b":!0,"-mb-px":!0,"border-gray-200":!0,"dark:border-gray-700":!0},"family:dropdown__groupLabel":{block:!0,"pt-1":!0,"pb-0.5":!0,"px-2":!0,"font-bold":!0,"pointer-events-none":!0,"text-gray-500":!0,"dark:text-gray-500":!0},"family:dropdown__listbox":{"bg-white":!0,"rounded-xs":!0,"empty:hidden":!0,"dark:bg-gray-800":!0,"group-data-[overscroll]:shadow-md":!0,"group-data-[overscroll]:border":!0,"group-data-[overscroll]:border-gray-200":!0,"group-data-[overscroll]:dark:border-gray-700":!0},"family:dropdown__listitem":{relative:!0,flex:!0,"items-center":!0,"px-1.5":!0,"py-1":!0,"first:pt-1.5":!0,"last:pb-1.5":!0,"text-gray-700":!0,"text-sm":!0,"data-[is-active]:bg-accent-100":!0,"dark:text-gray-200":!0,"dark:data-[is-active]:text-gray-700":!0,"before:content-['']":!0,"before:absolute":!0,"before:inset-0":!0,"data-[is-active]:first:before:rounded-xs":!0,"data-[is-active]:first:before:rounded-b-none":!0,"data-[is-active]:last:before:rounded-xs":!0,"data-[is-active]:last:before:rounded-t-none":!0,"data-[is-active]:first:last:before:rounded-xs":!0,"data-[is-active]:before:ring-1":!0,"data-[is-active]:before:ring-accent-500":!0,"data-[is-active]:before:ring-inset":!0,"data-[is-active]:before:ring-offset-accent-100":!0,"group-[&]/optgroup:first:before:!rounded-none":!0,"group-[&]/optgroup:last:before:!rounded-none":!0},"family:dropdown__selectedIcon":{flex:!0,absolute:!0,"items-center":!0,"text-accent-600":!0,"left-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0},"family:dropdown__option":{"ml-[1.5em]":!0},"family:dropdown__loadMore":{"data-[is-active]:bg-accent-100":!0},"family:dropdown__loadMoreInner":{flex:!0,"text-xs":!0,"text-gray-500":!0,"p-1.5":!0,"items-center":!0,"justify-center":!0,"[&>span]:mr-1.5":!0,"cursor-pointer":!0,"dark:text-gray-200":!0,"dark:hover:text-accent-500":!0},"family:dropdown__selectionWrapper":{grow:!0,flex:!0,"items-center":!0,"text-gray-700":!0},"family:dropdown__selection":{grow:!0,"text-gray-700":!0,"group-data-[multiple]:p-1.5":!0,"dark:text-gray-300":!0},"family:dropdown__tagsWrapper":{"w-full":!0},"family:dropdown__tagWrapper":{"group/tag":!0,"rounded-sm":!0,"mr-0.5":!0,"mb-0.5":!0,"outline-hidden":!0,"data-[active-selection=true]:ring-2":!0,"data-[active-selection=true]:ring-accent-500":!0},"family:dropdown__tags":{"inline-flex":!0,"flex-wrap":!0,"items-center":!0,"w-full":!0,"-mb-0.5":!0,"empty:mb-0":!0},"family:dropdown__tag":{flex:!0,"items-center":!0,"cursor-default":!0,"rounded-sm":!0,"text-xs":!0,"px-1":!0,"py-0.5":!0,"bg-accent-600":!0,"text-white":!0,"[&>[type=button]]:!w-[0.5em]":!0,"[&>[type=button]]:aspect-[1/1]":!0,"[&>[type=button]]:!text-inherit":!0,"[&>[type=button]]:cursor-pointer":!0,"group-data-[active-selection=true]/tag:bg-accent-400":!0,"group-data-[active-selection=true]/tag:text-gray-700":!0},"family:dropdown__tagLabel":{"mr-1":!0},"family:dropdown__emptyMessage":{flex:!0,"items-center":!0,"px-1.5":!0,"py-1":!0,"first:pt-1.5":!0,"last:pb-1.5":!0,"text-gray-700":!0,"text-xs":!0,"aria-selected:text-white":!0,"aria-selected:bg-accent-600":!0},button__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"bg-accent-50":!0,"hover:bg-accent-100":!0,"dark:text-accent-500":!0,"dark:bg-transparent":!0,"dark:hover:bg-accent-50/5":!0},checkbox__decorator:{"rounded-xs":!0},checkbox__decoratorIcon:{"max-w-[66.66%]":!0},color__inner:{"!w-auto":!0,"!p-1.5":!0,"!inline-flex":!0,"group-data-[prefix-icon]:border":!0,"group-data-[prefix-icon]:border-gray-300":!0,"group-data-[suffix-icon]:border":!0,"group-data-[suffix-icon]:border-gray-300":!0,"dark:group-data-[prefix-icon]:border-gray-700":!0,"dark:group-data-[suffix-icon]:border-gray-700":!0},color__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"!w-14":!0,"bg-transparent":!0,"cursor-pointer":!0,"rounded-xs":!0,"overflow-clip":!0,"[&::-webkit-color-swatch-wrapper]:p-0":!0,"[&::-webkit-color-swatch]:border-none":!0,"[&::-moz-color-swatch]:border-none":!0,"group-data-[prefix-icon]:mx-1.5":!0,"group-data-[suffix-icon]:mx-1.5":!0},color__prefixIcon:{flex:!0,"items-center":!0,"-ml-0.5":!0,"mr-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"group-data-[prefix-icon]:m-1.5":!0,"group-data-[prefix-icon]:mr-0":!0},color__suffixIcon:{flex:!0,"items-center":!0,"-mr-0.5":!0,"ml-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"group-data-[suffix-icon]:m-1.5":!0,"group-data-[prefix-icon]:ml-0":!0},date__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"focus:[&::-webkit-datetime-edit-day-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-month-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-year-field]:bg-accent-100":!0},"datetime-local__input":{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"focus:[&::-webkit-datetime-edit-day-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-month-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-year-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-hour-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-minute-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-ampm-field]:bg-accent-100":!0},file__fileList:{"group/list":!0,peer:!0,"w-full":!0,"min-w-0":!0,"data-[has-multiple]:mb-[1.25em]":!0},file__fileItemIcon:{"h-[1em]":!0,"w-[1em]":!0,"mr-1.5":!0,"shrink-0":!0},file__fileItem:{flex:!0,"min-w-0":!0,"items-center":!0,"text-gray-700":!0,"mb-1.5":!0,"last:mb-0":!0,"dark:text-gray-300":!0},file__fileName:{truncate:!0,"min-w-0":!0,"w-full":!0,shrink:!0,"leading-5":!0,"group-data-[has-multiple]/list:text-xs":!0},file__fileRemove:{"right-1.5":!0,"ring-accent-500":!0,"rounded-xs":!0,"z-20":!0,flex:!0,"appearance-none":!0,"items-center":!0,"text-[0px]":!0,"outline-hidden":!0,"hover:!text-red-500":!0,"focus-visible:ring-2":!0,"group-data-[disabled]:pointer-events-none":!0,"group-data-[disabled]:!text-gray-500":!0,"peer-data-[has-multiple]:absolute":!0,"peer-data-[has-multiple]:bottom-[max(0.5em,8px)]":!0,"peer-data-[has-multiple]:left-2.5":!0,"peer-data-[has-multiple]:text-accent-600":!0,"peer-data-[has-multiple]:text-[11px]":!0,"[line-height:1em]":!0,"peer-data-[has-multiple]:whitespace-nowrap":!0,"group-data-[prefix-icon]:peer-data-[has-multiple]:left-1.5":!0,"dark:hover:!text-red-400":!0},file__fileRemoveIcon:{block:!0,"text-base":!0,"w-[0.75em]":!0,relative:!0,"z-10":!0},file__inner:{relative:!0,"cursor-pointer":!0,"group-data-[has-multiple]:rounded-xs":!0},file__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"cursor-pointer":!0,"text-transparent":!0,absolute:!0,"inset-0":!0,"opacity-0":!0,"z-10":!0,"file:pointer-events-none":!0,"file:w-0":!0,"file:h-0":!0,"file:overflow-hidden":!0},file__noFiles:{flex:!0,"w-full":!0,"items-center":!0,"text-gray-400":!0,"dark:text-gray-500":!0},file__noFilesIcon:{"w-[1em]":!0,"mr-1.5":!0},form__form:{"group/form":!0},form__actions:{"":!0},form__summaryInner:{"group/summary":!0,border:!0,"border-gray-300":!0,"bg-white":!0,"rounded-xs":!0,"py-1.5":!0,"px-2.5":!0,"shadow-none":!0,"dark:bg-transparent":!0,"dark:border-gray-700":!0},form__summaryHeader:{"text-base":!0,"text-gray-700":!0,"font-bold":!0,"mb-1.5":!0,"dark:text-gray-300":!0},form__messages:{"":!0},form__message:{"text-red-600":!0,"mb-1.5":!0,"text-[11px]":!0,"[line-height:1em]":!0,"dark:text-red-400":!0,"group-[&]/summary:text-xs":!0},form__messageLink:{"group-[&]/summary:outline-hidden":!0,"group-[&]/summary:focus-visible:ring-2":!0,"group-[&]/summary:ring-accent-600":!0},month__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"focus:[&::-webkit-datetime-edit-month-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-year-field]:bg-accent-100":!0},radio__decorator:{"rounded-full":!0},radio__decoratorIcon:{"max-w-[50%]":!0},range__inner:{relative:!0,"!border-none":!0,"!ring-0":!0,"!px-0":!0,"!bg-transparent":!0,"!shadow-none":!0},range__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"group/input":!0,"cursor-pointer":!0,"[&::-webkit-slider-runnable-track]:bg-gray-300/50":!0,"[&::-webkit-slider-runnable-track]:h-[0.25em]":!0,"[&::-webkit-slider-runnable-track]:rounded-xs":!0,"dark:[&::-webkit-slider-runnable-track]:bg-gray-600/50":!0,"[&::-webkit-slider-thumb]:appearance-none":!0,"[&::-webkit-slider-thumb]:w-[0.85em]":!0,"[&::-webkit-slider-thumb]:aspect-[1/1]":!0,"[&::-webkit-slider-thumb]:bg-accent-600":!0,"[&::-webkit-slider-thumb]:rounded-full":!0,"[&::-webkit-slider-thumb]:relative":!0,"[&::-webkit-slider-thumb]:top-1/2":!0,"[&::-webkit-slider-thumb]:-translate-y-1/2":!0,"[&::-webkit-slider-thumb]:group-data-[disabled]:bg-gray-500":!0,"[&::-webkit-slider-thumb]:group-data-[disabled]:!ring-gray-200":!0,"[&::-webkit-slider-thumb]:focus-visible:ring-2":!0,"[&::-webkit-slider-thumb]:focus:!ring-accent-500":!0,"[&::-webkit-slider-thumb]:focus:ring-offset-2":!0,"[&::-webkit-slider-thumb]:shadow-none":!0,"dark:[&::-webkit-slider-thumb]:group-data-[disabled]:!ring-gray-700":!0,"dark:[&::-webkit-slider-thumb]:focus:ring-offset-gray-700":!0,"[&::-moz-range-track]:bg-gray-300/50":!0,"[&::-moz-range-track]:h-[0.25]":!0,"[&::-moz-range-track]:rounded-xs":!0,"dark:[&::-moz-range-track]:bg-gray-600/50":!0,"[&::-moz-range-thumb]:appearance-none":!0,"[&::-moz-range-thumb]:border-none":!0,"[&::-moz-range-thumb]:w-[0.85em]":!0,"[&::-moz-range-thumb]:h-[0.85em]":!0,"[&::-moz-range-thumb]:bg-accent-600":!0,"[&::-moz-range-thumb]:rounded-full":!0,"[&::-moz-range-thumb]:group-data-[disabled]:bg-gray-500":!0,"[&::-moz-range-thumb]:group-data-[disabled]:!ring-gray-300":!0,"[&::-moz-range-thumb]:focus-visible:ring-2":!0,"[&::-moz-range-thumb]:focus:!ring-accent-500":!0,"[&::-moz-range-thumb]:focus:ring-offset-2":!0,"[&::-moz-range-thumb]:shadow-none":!0,"dark:[&::-moz-range-thumb]:group-data-[disabled]:!ring-gray-500":!0,"dark:[&::-moz-range-thumb]:focus:ring-offset-gray-700":!0},select__wrapper:{"mb-1.5":!0},select__inner:{relative:!0,flex:!0,"items-center":!0,"bg-white":!0,border:!0,"border-gray-300":!0,"rounded-xs":!0,"focus-within:ring-1":!0,"focus-within:!ring-accent-500":!0,"focus-within:!border-accent-500":!0,"group-data-[invalid]:border-red-500":!0,"group-data-[invalid]:ring-1":!0,"group-data-[invalid]:ring-red-500":!0,"group-data-[disabled]:bg-gray-100":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"shadow-none":!0,"group-[&]/repeater:shadow-none":!0,"group-[&]/multistep:shadow-none":!0,"group-data-[multiple]:rounded-xs":!0,"dark:bg-transparent":!0,"dark:border-gray-700":!0,"dark:group-data-[disabled]:bg-gray-800/5":!0,"dark:group-data-[invalid]:border-red-500":!0,"dark:group-data-[invalid]:ring-red-500":!0},select__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,grow:!0,"p-1.5":!0,"py-1.5":!0,"px-2.5":!0,"pr-[2em]":!0,"text-sm":!0,"text-gray-700":!0,"text-ellipsis":!0,"min-w-0":!0,"outline-hidden":!0,"bg-transparent":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"group-data-[prefix-icon]:!pl-0":!0,"group-data-[suffix-icon]:!pr-0":!0,"data-[placeholder]:text-gray-400":!0,"group-data-[multiple]:!p-0":!0,"selection:bg-accent-100":!0,"dark:data-[placeholder]:text-gray-400/50":!0,"dark:text-gray-300":!0,"border-none":!0,"focus:ring-0":!0,"bg-none":!0},select__selectIcon:{absolute:!0,"w-[1em]":!0,"text-gray-700":!0,"pointer-events-none":!0,"right-1.5":!0,"group-data-[suffix-icon]:mr-[1.5em]":!0,"dark:text-gray-300":!0},select__optGroup:{"bg-white":!0,"text-gray-700":!0,"group/optgroup":!0,"group-data-[multiple]:px-1.5":!0,"pt-1.5":!0,"font-bold":!0,"text-xs":!0,"dark:bg-gray-800":!0,"dark:text-gray-300":!0},select__option:{"bg-white":!0,"text-gray-700":!0,"group-data-[disabled]:opacity-50":!0,"group-data-[disabled]:select-none":!0,"group-data-[multiple]:checked:bg-accent-100":!0,"group-data-[multiple]:focus:bg-accent-100":!0,"group-data-[multiple]:text-xs":!0,"group-data-[multiple]:outline-hidden":!0,"group-data-[multiple]:border-none":!0,"group-data-[multiple]:py-1.5":!0,"group-data-[multiple]:px-1.5":!0,"dark:bg-gray-800":!0,"dark:text-gray-300":!0,"dark:group-data-[multiple]:focus:bg-accent-800":!0,"dark:group-data-[multiple]:checked:bg-accent-800":!0},select__prefixIcon:{flex:!0,"items-center":!0,"mr-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"ml-1.5":!0,"text-gray-600":!0,"dark:text-gray-300":!0},select__suffixIcon:{flex:!0,"items-center":!0,"ml-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"mr-1.5":!0,"text-gray-600":!0,"dark:text-gray-300":!0},submit__outer:{group:!0,"max-w-none":!0,"min-w-0":!0,grow:!0,"mb-3.5":!0,"data-[disabled]:select-none":!0,"text-sm":!0,"data-[disabled]:opacity-100":!0},submit__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"bg-accent-600":!0,"!text-white":!0,"active:text-accent-100":!0,"active:bg-accent-700":!0,"hover:bg-accent-700":!0,"disabled:border-gray-300":!0,"disabled:bg-gray-400":!0,"disabled:text-gray-100":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"dark:disabled:border-gray-100":!0,"dark:disabled:bg-gray-500":!0,"dark:disabled:text-gray-200":!0,"dark:text-white":!0,"dark:ring-offset-accent-500":!0,"before:transition-all":!0,"group-data-[loading=true]/form:before:content['']":!0,"group-data-[loading=true]/form:before:block":!0,"group-data-[loading=true]/form:before:animate-spin":!0,"group-data-[loading=true]/form:before:w-5":!0,"group-data-[loading=true]/form:before:h-5":!0,"group-data-[loading=true]/form:before:rounded-full":!0,"group-data-[loading=true]/form:before:mr-2.5":!0,"group-data-[loading=true]/form:before:-ml-1":!0,"group-data-[loading=true]/form:before:border-2":!0,"group-data-[loading=true]/form:before:border-solid":!0,"group-data-[loading=true]/form:before:border-white":!0,"group-data-[loading=true]/form:before:border-r-transparent":!0},submit__prefixIcon:{flex:!0,"items-center":!0,"-ml-0.5":!0,"mr-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"text-gray-100":!0},submit__suffixIcon:{flex:!0,"items-center":!0,"-mr-0.5":!0,"ml-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"text-gray-100":!0},textarea__inner:{flex:!0,"items-center":!0,"mb-1.5":!0,"bg-white":!0,border:!0,"border-gray-300":!0,"rounded-xs":!0,"focus-within:ring-1":!0,"focus-within:!ring-accent-500":!0,"focus-within:!border-accent-500":!0,"group-data-[invalid]:border-red-500":!0,"group-data-[invalid]:ring-1":!0,"group-data-[invalid]:ring-red-500":!0,"group-data-[disabled]:bg-gray-100":!0,"shadow-none":!0,"group-[&]/repeater:shadow-none":!0,"group-[&]/multistep:shadow-none":!0,"dark:border-gray-700":!0,"dark:group-data-[disabled]:bg-gray-800/5":!0,"dark:group-data-[invalid]:border-red-500":!0,"dark:group-data-[invalid]:ring-red-500":!0,"dark:bg-transparent":!0},textarea__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"text-sm":!0,"h-20":!0,"text-gray-700":!0,"min-w-0":!0,grow:!0,shrink:!0,"!py-1.5":!0,"!px-2.5":!0,"outline-hidden":!0,"bg-transparent":!0,"selection:bg-accent-100":!0,"placeholder:text-gray-400":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"dark:placeholder-gray-400/50":!0,"dark:text-gray-300":!0,"p-0":!0,"border-none":!0,"focus:ring-0":!0},textarea__prefixIcon:{flex:!0,"items-center":!0,"-ml-0.5":!0,"mr-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"!ml-1.5":!0,"!mr-0":!0,"text-gray-600":!0,"dark:text-gray-300":!0},textarea__suffixIcon:{flex:!0,"items-center":!0,"-mr-0.5":!0,"ml-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"!mr-1.5":!0,"!ml-0":!0,"text-gray-600":!0,"dark:text-gray-300":!0},time__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"focus:[&::-webkit-datetime-edit-hour-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-minute-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-ampm-field]:bg-accent-100":!0},week__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"focus:[&::-webkit-datetime-edit-week-field]:bg-accent-100":!0,"focus:[&::-webkit-datetime-edit-year-field]:bg-accent-100":!0},autocomplete__selections:{flex:!0,absolute:!0,"inset-0":!0,"group-data-[multiple]:static":!0,"group-data-[multiple]:block":!0,"group-data-[empty]:hidden":!0,"group-data-[multiple]:mt-1":!0},autocomplete__selectionWrapper:{"bg-gray-100":!0,"rounded-xs":!0,"group-data-[multiple]:border":!0,"group-data-[multiple]:border-gray-200":!0,"group-data-[multiple]:mb-1":!0,"outline-hidden":!0,"data-[active-selection=true]:ring-2":!0,"data-[active-selection=true]:ring-accent-500":!0,"dark:bg-gray-600":!0,"dark:group-data-[multiple]:border-gray-700":!0,"[&.formkit-dropZone]:opacity-25":!0,"[&.formkit-touchDropZone]:opacity-25":!0,"[&.formkit-touchDragging]:!flex":!0,"[&.formkit-longTouch]:opacity-25":!0},autocomplete__selection:{"rounded-xs":!0,just:!0,"pl-1.5":!0,"[&>*]:ml-0":!0,"dark:text-gray-200":!0},colorpicker__outer:{group:!0,"max-w-none":!0,"min-w-0":!0,grow:!0,"mb-3.5":!0,"data-[disabled]:select-none":!0,"data-[disabled]:opacity-50":!0,"text-sm":!0,"data-[disabled]:cursor-not-allowed":!0,"data-[disabled]:pointer-events-none":!0},colorpicker__help:{"text-gray-500":!0,"text-[11px]":!0,"[line-height:1em]":!0,"dark:text-gray-400":!0,"group-data-[inline]:-mt-1":!0,"group-data-[inline]:mb-1.5":!0},colorpicker__inner:{relative:!0,"inline-flex":!0,"!w-auto":!0,"pl-1.5":!0,"group-data-[inline]:border-none":!0,"group-data-[inline]:shadow-none":!0,"group-data-[inline]:p-0":!0,"group-data-[inline]:bg-transparent":!0,"group-data-[inline]:outline-hidden":!0,"group-data-[inline]:!ring-0":!0,"group-data-[inline]:!w-full":!0,"group-data-[inline]:rounded-xs":!0},colorpicker__swatchPreview:{"w-full":!0,flex:!0,"justify-start":!0,"items-center":!0,"rounded-xs":!0,"text-sm":!0,"cursor-pointer":!0,"outline-hidden":!0},colorpicker__canvasSwatchPreviewWrapper:{relative:!0,"before:content-['']":!0,"before:absolute":!0,"before:inset-0":!0,"before:rounded-xs":!0,"before:shadow-[inset_0_0_0_1px_rgba(0,0,0,0.2)]":!0,"before:z-[2]":!0},colorpicker__canvasSwatchPreview:{"text-sm":!0,"rounded-xs":!0,"aspect-[1/1]":!0,"shrink-0":!0,grow:!0,"!w-[1.5em]":!0},colorpicker__valueString:{"text-sm":!0,"text-gray-700":!0,"selection:bg-accent-100":!0,"font-mono":!0,"inline-block":!0,"ml-1.5":!0,"mr-1.5":!0,"dark:text-gray-300":!0,"dark:selection:text-gray-700":!0},colorpicker__panel:{absolute:!0,"left-0":!0,"top-full":!0,"z-[99]":!0,flex:!0,"w-[100vw]":!0,"max-w-[18.5em]":!0,"touch-manipulation":!0,"flex-col":!0,"rounded-xs":!0,border:!0,"bg-white":!0,"p-1.5":!0,"shadow-xs":!0,"group-data-[inline]:static":!0,"group-data-[inline]:max-w-none":!0,"border-gray-300":!0,"group-data-[inline]:z-auto":!0,"group-data-[inline]:w-full":!0,"group-data-[inline]:shadow-none":!0,"group-data-[inline]:group-data-[disabled]:!cursor-not-allowed":!0,"group-data-[inline]:group-data-[disabled]:!pointer-events-none":!0,"group-data-[inline]:[&:has([id^=swatches]:first-child:last-child)]:w-auto":!0,"group-data-[inline]:[&:has([id^=swatches]:first-child:last-child)_[id^=swatches]>div]:w-[1.5em]":!0,"dark:bg-gray-800":!0,"dark:border-gray-700":!0,"dark:group-data-[inline]:bg-transparent":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:!fixed":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:top-auto":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:max-w-none":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:bottom-0":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:left-0":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:rounded-none":!0},colorpicker__panelClose:{flex:!0,"justify-end":!0,"items-center":!0,"text-gray-600":!0,"mb-1.5":!0,"-mt-1":!0,"border-none":!0,"bg-none":!0,"border-b":!0,"border-gray-200":!0,"w-[calc(100%+1rem)]":!0,"-ml-2":!0,"pt-0":!0,"pr-1.5":!0,"pb-1.5":!0,"pl-1.5":!0,"dark:border-gray-800":!0},colorpicker__closeIcon:{"w-[2rem]":!0,"aspect-[1/1]":!0,"p-1":!0,"rounded-xs":!0,border:!0,"[&>svg]:w-full":!0,"[&>svg]:aspect-[1/1]":!0,"[&>svg]:max-w-none":!0,"[&>svg]:max-h-none":!0},colorpicker__controlGroup:{grid:!0,"[grid-template-areas:'a_a_a'_'b_c_e'_'b_d_e']":!0,"mb-1.5":!0},colorpicker__LS:{"[grid-area:a]":!0,relative:!0,"mb-1.5":!0},colorpicker__canvas:{block:!0,"w-full":!0},colorpicker__canvasLS:{"aspect-[2/1]":!0,"cursor-pointer":!0,"rounded-none":!0},colorpicker__canvasHue:{"rounded-none":!0},colorpicker__canvasAlpha:{"rounded-none":!0},colorpicker__preview:{"rounded-xs":!0,"after:rounded-xs":!0,relative:!0,"inline-flex":!0,"aspect-[1/1]":!0,"overflow-hidden":!0,"[grid-area:b]":!0,"mr-1.5":!0,"after:absolute":!0,"after:left-0":!0,"after:top-0":!0,"after:h-full":!0,"after:w-full":!0,"after:shadow-[inset_0_0_0_1px_rgba(0,0,0,0.2)]":!0,"after:content-['']":!0,"w-[2em]":!0,"dark:after:shadow-[inset_0_0_0_1px_rgba(255,255,255,0.25)]":!0},colorpicker__hue:{"[grid-area:c]":!0,relative:!0,"inline-flex":!0,"h-3/4":!0},colorpicker__alpha:{"[grid-area:d]":!0,relative:!0,"inline-flex":!0,"h-3/4":!0},colorpicker__eyeDropper:{"[grid-area:e]":!0,"w-[2em]":!0,"ml-1.5":!0,"inline-flex":!0,"self-center":!0,"justify-center":!0,"justify-self-center":!0,"aspect-[1/1]":!0,"rounded-xs":!0,border:!0,"border-gray-200":!0,"cursor-pointer":!0,"content-center":!0,"items-center":!0,"text-gray-600":!0,"dark:border-gray-800":!0},colorpicker__eyeDropperIcon:{"w-auto":!0,"[&>svg]:w-[1em]":!0,"dark:text-gray-400":!0},colorpicker__control:{absolute:!0,"bg-white":!0,"shadow-[0_0_0_2px_rgba(255,255,255,1),0_0_0_3px_rgba(0,0,0,0.2)]":!0,"-translate-y-1/2":!0,"-translate-x-1/2":!0,"pointer-events-none":!0,"data-[prevent-focus-style]:shadow-[0_0_0_2px_rgba(255,255,255,1),0_0_0_3px_rgba(0,0,0,0.2)]":!0,"focus-visible:outline-hidden":!0,"focus-visible:ring-2":!0,"focus-visible:ring-offset-2":!0,"focus-visible:ring-accent-500":!0},colorpicker__controlLS:{"w-[10px]":!0,"h-[10px]":!0,"rounded-full":!0},colorpicker__controlHue:{"w-[4px]":!0,"h-[calc(100%-2px)]":!0,"top-1/2":!0,"rounded-xs":!0},colorpicker__controlAlpha:{"w-[4px]":!0,"h-[calc(100%-2px)]":!0,"top-1/2":!0,"rounded-xs":!0},colorpicker__formatField:{flex:!0,"items-center":!0,"justify-center":!0,grow:!0},colorpicker__colorField:{"bg-transparent":!0,"text-gray-700":!0,border:!0,"border-gray-200":!0,"dark:border-gray-800":!0,"dark:text-gray-300":!0,"dark:selection:text-gray-700":!0},colorpicker__colorInputGroup:{flex:!0,"items-center":!0,"justify-center":!0,grow:!0},colorpicker__fieldGroup:{flex:!0,"flex-col":!0,"items-center":!0,"justify-center":!0,"w-full":!0,"mr-0.5":!0,"[&>input]:p-1":!0,"[&>input]:text-sm":!0,"[&>input]:text-gray-700":!0,"[&>input]:selection:bg-accent-100":!0,"[&>input]:m-0":!0,"[&>input]:grow":!0,"[&>input]:shrink":!0,"[&>input]:w-full":!0,"[&>input]:border":!0,"[&>input]:border-gray-200":!0,"[&>input]:rounded-xs":!0,"[&>input]:text-center":!0,"[&>input]:appearance-none":!0,"[&>input::-webkit-outer-spin-button]:appearance-none":!0,"[&>input::-webkit-inner-spin-button]:appearance-none":!0,"[&>input::-webkit-inner-spin-button]:m-0":!0,"[&>input:focus]:outline-hidden":!0,"[&>input:focus]:ring-1":!0,"[&>input:focus]:ring-accent-600":!0,"[&>input:focus]:border-accent-600":!0,"max-[431px]:[&>input]:text-base":!0},colorpicker__fieldLabel:{"text-xs":!0,"text-gray-500":!0,"mt-1.5":!0,"dark:text-gray-400":!0},colorpicker__formatSwitcher:{flex:!0,"justify-end":!0,"self-start":!0,uppercase:!0,"shrink-0":!0,"p-1":!0,"mt-0.5":!0,"text-gray-600":!0,"rounded-xs":!0,"select-none":!0,"dark:text-gray-400":!0},colorpicker__switchIcon:{"[&>svg]:w-3":!0},colorpicker__swatches:{"inline-flex":!0,"flex-wrap":!0,"w-full":!0,"justify-self-center":!0,"min-w-0":!0,"mx-auto":!0,"px-[1px]":!0,"pt-1.5":!0,"pb-1.5":!0,"mt-1.5":!0,"-mb-1.5":!0,"border-t":!0,"border-gray-200":!0,"overflow-auto":!0,"max-h-[200px]":!0,"select-none":!0,"first:-mt-[3px]":!0,"first:last:-mb-[3px]":!0,"first:last:pb-[2px]":!0,"first:pt-px":!0,"first:border-t-0":!0,"dark:border-gray-800":!0},colorpicker__swatchGroup:{flex:!0,"flex-wrap":!0,"w-full":!0,"mb-1.5":!0,"last:mb-0":!0},colorpicker__swatchGroupLabel:{"ml-1":!0,block:!0,"w-full":!0,"text-xs":!0,"text-gray-500":!0,"dark:text-gray-400":!0},colorpicker__swatch:{relative:!0,"text-sm":!0,"w-[calc((100%/10)-0.5em)]":!0,"max-w-[22px]":!0,"m-[0.16em]":!0,"cursor-pointer":!0,"before:content-['']":!0,"before:absolute":!0,"before:inset-0":!0,"before:rounded-sm":!0,"before:shadow-[inset_0_0_0_1px_rgba(0,0,0,0.2)]":!0,"before:pointer-events-none":!0,"before:z-[2]":!0,"dark:before:shadow-[inset_0_0_0_1px_rgba(255,255,255,0.25)]":!0,"data-[active=true]:after:content-['']":!0,"data-[active=true]:after:block":!0,"data-[active=true]:after:absolute":!0,"data-[active=true]:after:w-1.5":!0,"data-[active=true]:after:h-1.5":!0,"data-[active=true]:after:top-1/2":!0,"data-[active=true]:after:left-1/2":!0,"data-[active=true]:after:pointer-events-none":!0,"data-[active=true]:after:rounded-full":!0,"data-[active=true]:after:-translate-x-1/2":!0,"data-[active=true]:after:-translate-y-1/2":!0,"data-[active=true]:after:bg-white":!0,"data-[active=true]:after:z-[2]":!0,"data-[active=true]:after:ring-1":!0,"data-[active=true]:after:ring-[rgba(0,0,0,0.33)]":!0,"[&>canvas]:block":!0,"[&>canvas]:w-full":!0,"[&>canvas]:aspect-[1/1]":!0,"[&>canvas]:rounded-sm":!0,"[&>canvas:focus-visible]:outline-hidden":!0,"[&>canvas:focus-visible]:ring-2":!0,"[&>canvas:focus-visible]:ring-accent-500":!0,"[&>canvas:focus-visible]:ring-offset-2":!0,"[&>canvas:focus-visible]:ring-offset-white":!0,"dark:[&>canvas:focus-visible]:ring-offset-gray-700":!0},datepicker__inner:{relative:!0},datepicker__removeSelection:{"self-stretch":!0,"text-sm":!0,flex:!0,"items-center":!0,"ml-0.5":!0,"mr-1.5":!0,"text-gray-700":!0,"hover:text-red-400":!0,"z-10":!0,"dark:text-gray-300":!0},datepicker__clearIcon:{"[&>svg]:w-[0.75em]":!0},datepicker__panelWrapper:{"group/panel":!0,absolute:!0,"min-w-[20em]":!0,"top-[calc(100%_+_0.5em)]":!0,"left-0":!0,"shadow-[0_0_1.25em_rgba(0,0,0,.25)]":!0,"rounded-xs":!0,"p-3.5":!0,"bg-white":!0,"z-10":!0,"dark:bg-gray-800":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:!fixed":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:top-auto":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:max-w-none":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:bottom-0":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:left-0":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:rounded-none":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:w-full":!0},datepicker__panelHeader:{grid:!0,"grid-cols-[2.5em_1fr_2.5em]":!0,"justify-center":!0,"items-center":!0,"border-b-2":!0,"border-gray-200":!0,"mb-1.5":!0,"pb-2":!0,"dark:border-gray-700":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:grid-cols-[2.5em_1fr_2.5em_2.5em]":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:group-data-[panel=time]/panel:grid-cols-[2.5em_1fr_2.5em]":!0,"[@media(max-width:431px)_and_(hover:none)]:group-[&:not([data-inline])]:group-data-[panel=month]/panel:grid-cols-[2.5em_1fr_2.5em]":!0},datepicker__panelClose:{"aspect-[1/1]":!0,border:!0,"border-gray-200":!0,"rounded-xs":!0,flex:!0,"items-center":!0,"justify-center":!0,"text-gray-700":!0,"[&_svg]:w-[1.25em]":!0,"dark:text-gray-300":!0,"dark:border-gray-800":!0,"[@media(max-width:431px)_and_(hover:none)]:group-data-[panel=time]/panel:col-start-3":!0,"[@media(max-width:431px)_and_(hover:none)]:group-data-[panel=month]/panel:col-start-3":!0},datepicker__panel:{flex:!0,"justify-center":!0},datepicker__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"placeholder:text-gray-400":!0},datepicker__monthsHeader:{flex:!0,"items-center":!0,"justify-center":!0,"col-start-2":!0,"col-end-2":!0},datepicker__timeHeader:{flex:!0,"items-center":!0,"justify-center":!0,"col-start-2":!0,"col-end-2":!0},datepicker__months:{grid:!0,"grid-cols-3":!0,"w-full":!0},datepicker__month:{"m-1.5":!0,"p-1.5":!0,"text-center":!0,"text-gray-700":!0,"rounded-xs":!0,"bg-gray-200":!0,"aria-selected:!bg-accent-600":!0,"aria-selected:!text-white":!0,"focus:outline":!0,"focus:outline-2":!0,"focus:outline-accent-600":!0,"focus:outline-offset-2":!0,"focus:bg-white":!0,"focus:text-gray-700":!0,"data-[is-extra=true]:opacity-25":!0,"group-data-[disabled=true]:opacity-50":!0,"group-data-[disabled=true]:cursor-default":!0,"group-data-[disabled=true]:pointer-events-none":!0,"dark:bg-gray-700":!0,"dark:text-gray-300":!0},datepicker__yearsHeader:{flex:!0,"items-center":!0,"justify-center":!0,"text-gray-700":!0,"col-start-2":!0,"col-end-2":!0,"dark:text-gray-300":!0},datepicker__years:{grid:!0,"grid-cols-5":!0,"w-full":!0},datepicker__year:{"text-sm":!0,"text-center":!0,"text-gray-700":!0,"items-center":!0,"m-1.5":!0,"p-1.5":!0,"rounded-xs":!0,"bg-gray-200":!0,"aria-selected:!bg-accent-600":!0,"aria-selected:!text-white":!0,"focus:outline":!0,"focus:outline-2":!0,"focus:outline-accent-600":!0,"focus:outline-offset-2":!0,"focus:bg-white":!0,"data-[is-extra=true]:opacity-25":!0,"group-data-[disabled=true]:opacity-50":!0,"group-data-[disabled=true]:cursor-default":!0,"group-data-[disabled=true]:pointer-events-none":!0,"dark:bg-gray-700":!0,"dark:text-gray-300":!0},datepicker__weekDays:{grid:!0,"grid-cols-7":!0},datepicker__weekDay:{"w-[2.25em]":!0,"text-gray-700":!0,"m-1.5":!0,"rounded-xs":!0,"font-medium":!0,lowercase:!0,"dark:text-gray-500":!0},datepicker__calendarWeeks:{"":!0},datepicker__week:{grid:!0,"grid-cols-7":!0,"group-data-[disabled=true]:opacity-50":!0,"group-data-[disabled=true]:cursor-default":!0,"group-data-[disabled=true]:pointer-events-none":!0},datepicker__dayCell:{flex:!0,"items-center":!0,"justify-center":!0,"text-center":!0,"text-gray-700":!0,"w-[2.25em]":!0,"h-[2.25em]":!0,"m-1":!0,"p-1.5":!0,"rounded-xs":!0,"bg-gray-200":!0,"aria-selected:bg-accent-600":!0,"aria-selected:text-white":!0,"focus:outline":!0,"focus:outline-2":!0,"focus:outline-accent-600":!0,"focus:outline-offset-2":!0,"focus:bg-white":!0,"data-[is-extra=true]:opacity-25":!0,"data-[disabled=true]:opacity-50":!0,"data-[disabled=true]:cursor-default":!0,"data-[disabled=true]:pointer-events-none":!0,"dark:bg-gray-600":!0,"dark:text-gray-300":!0,"dark:aria-selected:bg-accent-600":!0,"dark:aria-selected:text-white":!0,"dark:focus:outline-accent-600":!0,"dark:focus:bg-gray-200":!0,"dark:focus:text-gray-700":!0},datepicker__timeInput:{"w-full":!0,"border-2":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"text-gray-700":!0,"border-gray-200":!0,"rounded-xs":!0,"p-1.5":!0,"my-2":!0,"focus-visible:outline-accent-600":!0,"dark:text-gray-300":!0,"dark:bg-transparent":!0,"dark:border-gray-700":!0},datepicker__daysHeader:{flex:!0,"items-center":!0,"justify-center":!0},datepicker__prev:{"mr-auto":!0,"px-2":!0,"py-px":!0,"hover:bg-gray-100":!0,"rounded-xs":!0,"col-start-1":!0,"col-end-1":!0,"focus-visible:outline-hidden":!0,"focus-visible:ring-2":!0,"focus-visible:ring-accent-500":!0,"focus-visible:ring-offset-2":!0},datepicker__prevLabel:{hidden:!0},datepicker__prevIcon:{flex:!0,"w-[0.75em]":!0,"select-none":!0,"text-gray-700":!0,"[&>svg]:w-full":!0,"dark:text-gray-300":!0},datepicker__dayButton:{"appearance-none":!0,"text-gray-700":!0,"cursor-pointer":!0,"px-2":!0,"py-px":!0,"border-2":!0,"border-gray-200":!0,"rounded-xs":!0,"mx-1":!0,"hover:border-accent-600":!0,"focus-visible:outline-hidden":!0,"focus-visible:ring-2":!0,"focus-visible:ring-accent-500":!0,"focus-visible:ring-offset-2":!0,"dark:text-gray-300":!0,"dark:border-gray-700":!0,"dark:hover:border-accent-500":!0},datepicker__monthButton:{"appearance-none":!0,"text-gray-700":!0,"cursor-pointer":!0,"px-2":!0,"py-px":!0,"border-2":!0,"border-gray-200":!0,"rounded-xs":!0,"mx-1":!0,"hover:border-accent-600":!0,"focus-visible:outline-hidden":!0,"focus-visible:ring-2":!0,"focus-visible:ring-accent-500":!0,"focus-visible:ring-offset-2":!0,"dark:text-gray-300":!0,"dark:border-gray-700":!0,"dark:hover:border-accent-500":!0},datepicker__yearButton:{"appearance-none":!0,"text-gray-700":!0,"cursor-pointer":!0,"px-2":!0,"py-px":!0,"border-2":!0,"border-gray-200":!0,"rounded-xs":!0,"mx-1":!0,"hover:border-accent-600":!0,"focus-visible:outline-hidden":!0,"focus-visible:ring-2":!0,"focus-visible:ring-accent-500":!0,"focus-visible:ring-offset-2":!0,"dark:text-gray-300":!0,"dark:border-gray-700":!0,"dark:hover:border-accent-500":!0},datepicker__next:{"ml-auto":!0,"px-2":!0,"py-px":!0,"rounded-xs":!0,"hover:bg-gray-100":!0,"hover:rounded-sm":!0,"col-start-3":!0,"col-end-3":!0,"focus-visible:outline-hidden":!0,"focus-visible:ring-2":!0,"focus-visible:ring-accent-500":!0,"focus-visible:ring-offset-2":!0},datepicker__nextLabel:{hidden:!0},datepicker__nextIcon:{flex:!0,"w-[0.75em]":!0,"select-none":!0,"text-gray-700":!0,"[&>svg]:w-full":!0,"dark:text-gray-300":!0},datepicker__openButton:{"appearance-none":!0,"border-0":!0,"bg-transparent":!0,flex:!0,"p-0":!0,"self-stretch":!0,"cursor-pointer":!0,"focus-visible:outline-hidden":!0,"focus-visible:ring-2":!0,"focus-visible:ring-accent-500":!0,"focus-visible:ring-offset-2":!0,"focus-visible:rounded-xs":!0},datepicker__calendarIcon:{"text-gray-600":!0,"focus-visible:text-accent-600":!0,flex:!0,"w-[1em]":!0,"grow-0":!0,"shrink-0":!0,"self-stretch":!0,"select-none":!0,"[&>svg]:w-full":!0,"[&>svg]:m-auto":!0,"[&>svg]:max-h-[1em]":!0,"[&>svg]:max-w-[1em]":!0},dropdown__placeholder:{"text-gray-400":!0,grow:!0,"dark:text-gray-400/50":!0},dropdown__selector:{flex:!0,grow:!0,"justify-between":!0,"w-full":!0,"py-1.5":!0,"pl-2.5":!0,"pr-0":!0,"text-sm":!0,"text-gray-700":!0,"text-left":!0,"group-data-[disabled]:!cursor-not-allowed":!0,"group-data-[prefix-icon]:!pl-0":!0,"group-data-[suffix-icon]:!pr-0":!0,"data-[placeholder]:text-gray-400":!0,"selection:bg-accent-100":!0,"dark:data-[placeholder]:text-gray-400/50":!0,"dark:text-gray-300":!0},dropdown__selectIcon:{"shrink-0":!0},dropdown__selectionsWrapper:{"w-[85%]":!0,"overflow-hidden":!0},dropdown__selection:{"[&>*]:ml-0":!0},dropdown__selections:{"inline-flex":!0,"items-center":!0},dropdown__selectionsItem:{"whitespace-nowrap":!0,"mr-1":!0},dropdown__tagWrapper:{"[&.formkit-dropZone_.formkit-tag]:opacity-25":!0,"[&.formkit-touchDropZone_.formkit-tag]:opacity-25":!0},dropdown__truncationCount:{flex:!0,"items-center":!0,"justify-center":!0,"h-[1.5em]":!0,"rounded-xs":!0,"bg-gray-400":!0,"text-white":!0,"whitespace-nowrap":!0,"text-[11px]":!0,"[line-height:1em]":!0,"tracking-tighter":!0,"leading-0":!0,"py-1":!0,"px-1":!0,"shrink-0":!0,"my-auto":!0},mask__inner:{relative:!0},mask__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"group-data-[has-overlay]:!caret-gray-700":!0,"dark:group-data-[has-overlay]:!caret-gray-300":!0},rating__inner:{"text-gray-300":!0},rating__itemsWrapper:{relative:!0,"inline-flex":!0,"focus:border-accent-600":!0},rating__onItemRow:{"h-full":!0,"w-full":!0},rating__offItemRow:{"h-full":!0,"w-full":!0},rating__onItemWrapper:{"[&>*]:w-full":!0,"[&>*]:h-full":!0,"w-full":!0,"h-full":!0,"text-yellow-400":!0},rating__offItemWrapper:{"text-gray-300":!0,"w-full":!0,"h-full":!0,"[&>*]:w-full":!0,"[&>*]:h-full":!0,"dark:text-gray-600":!0},rating__ratingItem:{relative:!0,"focus-within:outline":!0,"focus-within:outline-accent-600":!0,"w-[1.5em]":!0,"h-[1.5em]":!0},rating__itemLabelInner:{"h-px":!0,"w-px":!0,"overflow-hidden":!0,absolute:!0,"white-space-nowrap":!0},rating__itemLabel:{absolute:!0,"h-full":!0},rating__ratingIcon:{"w-[1.5em]":!0,"h-[1.5em]":!0,flex:!0},rating__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"outline-hidden":!0},rating__messages:{"mt-1.5":!0},repeater__outer:{"min-w-0":!0,grow:!0,"mb-3.5":!0,"text-sm":!0,"group/repeater":!0,"max-w-full":!0},repeater__fieldset:{"min-w-0":!0},repeater__legend:{block:!0,"text-gray-700":!0,"text-xs":!0,"font-bold":!0,"dark:text-gray-300":!0,"mb-1.5":!0},repeater__content:{"min-w-0":!0,grow:!0,"p-4":!0,flex:!0,"flex-col":!0,"align-center":!0,"[&>div[data-type]]:max-w-none":!0,"[&>div[data-type]:last-child]:mb-0":!0},repeater__addButton:{"!mb-0":!0,"group-data-[disabled]/repeater:pointer-events-none":!0,"group-data-[disabled]/repeater:opacity-50":!0,"group-data-[disabled]/repeater:grayscale":!0},repeater__controlLabel:{absolute:!0,"opacity-0":!0,"pointer-events-none":!0,"text-[0px]":!0},repeater__controls:{flex:!0,"flex-col":!0,"items-center":!0,"justify-center":!0,"bg-gray-50":!0,"p-1.5":!0,"[&>li]:aspect-[1/1]":!0,"dark:bg-gray-800":!0,"rounded-xs":!0,"rounded-tl-none":!0,"rounded-bl-none":!0},repeater__downControl:{"w-[1.5em]":!0,"h-[1.5em]":!0,"my-1.5":!0,"mx-auto":!0,flex:!0,"items-center":!0,"appearance-none":!0,"justify-center":!0,"aspect-[1/1]":!0,"text-gray-500":!0,"hover:text-accent-600":!0,"disabled:hover:text-inherit":!0,"disabled:opacity-25":!0,"disabled:!text-gray-500":!0,"dark:text-gray-300":!0,"dark:disabled:!text-gray-300":!0,"dark:hover:text-accent-500":!0},repeater__upControl:{"w-[1.5em]":!0,"h-[1.5em]":!0,"my-1.5":!0,"mx-auto":!0,flex:!0,"items-center":!0,"appearance-none":!0,"justify-center":!0,"aspect-[1/1]":!0,"text-gray-500":!0,"hover:text-accent-600":!0,"disabled:hover:text-inherit":!0,"disabled:opacity-25":!0,"disabled:!text-gray-500":!0,"dark:text-gray-300":!0,"dark:disabled:!text-gray-300":!0,"dark:hover:text-accent-500":!0},repeater__removeControl:{"w-[1.5em]":!0,"h-[1.5em]":!0,"my-1.5":!0,"mx-auto":!0,flex:!0,"items-center":!0,"appearance-none":!0,"justify-center":!0,"aspect-[1/1]":!0,"text-gray-500":!0,"hover:text-accent-600":!0,"disabled:hover:text-inherit":!0,"disabled:opacity-25":!0,"disabled:!text-gray-500":!0,"dark:text-gray-300":!0,"dark:disabled:!text-gray-300":!0,"dark:hover:text-accent-500":!0},repeater__insertControl:{"w-[1.5em]":!0,"h-[1.5em]":!0,"my-1.5":!0,"mx-auto":!0,flex:!0,"items-center":!0,"appearance-none":!0,"justify-center":!0,"aspect-[1/1]":!0,"text-gray-500":!0,"hover:text-accent-600":!0,"disabled:hover:text-inherit":!0,"disabled:opacity-25":!0,"disabled:!text-gray-500":!0,"dark:text-gray-300":!0,"dark:disabled:!text-gray-300":!0,"dark:hover:text-accent-500":!0},repeater__help:{"text-gray-500":!0,"text-[11px]":!0,"[line-height:1em]":!0,"dark:text-gray-400":!0,"mb-1.5":!0,"-mt-1":!0},repeater__item:{flex:!0,relative:!0,"w-full":!0,"mb-1.5":!0,"bg-white":!0,border:!0,"border-gray-200":!0,"rounded-xs":!0,"shadow-none":!0,"dark:border-gray-700":!0,"dark:bg-transparent":!0,"[&.formkit-dropZone]:opacity-30":!0,"[&.formkit-dropZone]:blur-[2px]":!0},repeater__dragHandleWrapper:{relative:!0,"w-8":!0,"bg-gray-50":!0,"rounded-xs":!0,"rounded-tr-none":!0,"rounded-br-none":!0,"dark:bg-gray-800":!0},repeater__dragHandle:{"w-full":!0,"h-full":!0,flex:!0,absolute:!0,"top-0":!0,"left-0":!0,"cursor-grab":!0,"active:cursor-grabbing":!0},repeater__dragHandleIcon:{"w-2":!0,"m-auto":!0,"text-gray-400":!0,"dark:text-gray-600":!0,"[&>svg>path]:fill-current":!0},repeater__moveDownIcon:{block:!0,"w-[0.75em]":!0,"aspect-[1/1]":!0},repeater__moveUpIcon:{block:!0,"w-[0.75em]":!0,"aspect-[1/1]":!0},repeater__removeIcon:{block:!0,"w-[1.25em]":!0,"aspect-[1/1]":!0},repeater__addIcon:{block:!0,"w-[1.25em]":!0,"aspect-[1/1]":!0},slider__outer:{group:!0,"max-w-none":!0,"min-w-0":!0,grow:!0,"mb-3.5":!0,"data-[disabled]:select-none":!0,"data-[disabled]:opacity-50":!0,"text-sm":!0,"data-[disabled]:pointer-events-none":!0},slider__help:{"text-gray-500":!0,"text-[11px]":!0,"[line-height:1em]":!0,"dark:text-gray-400":!0,"-mt-0.5":!0,"mb-1.5":!0},slider__sliderInner:{flex:!0,"items-center":!0,"[&>[data-type=number]]:mb-0":!0,"[&>[data-type=number]]:ml-2.5":!0,"[&>[data-type=number]]:shrink":!0,"[&>[data-type=number]]:grow-0":!0,"[&[data-has-mark-labels=true]_[id^=track]]:mb-4":!0},slider__track:{grow:!0,relative:!0,"z-20":!0,"py-2":!0,"select-none":!0},slider__trackWrapper:{"px-[2px]":!0,"rounded-full":!0,"bg-gray-300":!0,"dark:bg-gray-500":!0},slider__trackInner:{"h-1":!0,"mx-0.5":!0,relative:!0},slider__prefixIcon:{flex:!0,"items-center":!0,"-ml-0.5":!0,"mr-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"text-gray-600":!0,"dark:text-gray-300":!0},slider__suffixIcon:{flex:!0,"items-center":!0,"-mr-0.5":!0,"ml-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0,"text-gray-600":!0,"dark:text-gray-300":!0},slider__fill:{"h-full":!0,"rounded-full":!0,absolute:!0,"top-0":!0,"-mx-1":!0,"bg-accent-600":!0,"group-data-[disabled]:bg-gray-500":!0},slider__marks:{absolute:!0,"pointer-events-none":!0,"inset-0":!0},slider__mark:{absolute:!0,"top-1/2":!0,"w-[3px]":!0,"h-[3px]":!0,"rounded-full":!0,"-translate-x-1/2":!0,"-translate-y-1/2":!0,"bg-gray-400":!0,"data-[active=true]:bg-white":!0},slider__markLabel:{absolute:!0,"top-[calc(100%+0.5em)]":!0,"left-1/2":!0,"text-gray-400":!0,"text-[11px]":!0,"[line-height:1em]":!0,"-translate-x-1/2":!0},slider__handles:{"m-0":!0,"p-0":!0,"list-none":!0},slider__handle:{group:!0,"select-none":!0,"w-4":!0,"h-4":!0,"rounded-full":!0,"bg-white":!0,absolute:!0,"top-1/2":!0,"left-0":!0,"z-30":!0,"-translate-x-1/2":!0,"-translate-y-1/2":!0,"shadow-[inset_0_0_0_1px_rgba(0,0,0,0.1),0_1px_2px_0_rgba(0,0,0,0.5)]":!0,"focus-visible:outline-0":!0,"focus-visible:ring-2":!0,"ring-accent-600":!0,"data-[is-target=true]:z-20":!0,"dark:bg-gray-200":!0},slider__tooltip:{absolute:!0,"bottom-full":!0,"left-1/2":!0,"-translate-x-1/2":!0,"-translate-y-[4px]":!0,"bg-accent-600":!0,"text-white":!0,"py-1":!0,"px-1":!0,"text-xs":!0,"leading-none":!0,"whitespace-nowrap":!0,"rounded-xs":!0,"opacity-0":!0,"pointer-events-none":!0,"transition-opacity":!0,'after:content-[""]':!0,"after:absolute":!0,"after:top-full":!0,"after:left-1/2":!0,"after:-translate-x-1/2":!0,"after:-translate-y-[1px]":!0,"after:border-4":!0,"after:border-transparent":!0,"after:border-t-accent-600":!0,"group-hover:opacity-100":!0,"group-focus-visible:opacity-100":!0,"group-data-[show-tooltip=true]:opacity-100":!0},slider__linkedValues:{flex:!0,"items-start":!0,"justify-between":!0},slider__minValue:{grow:!0,"!max-w-[45%]":!0,"mb-0":!0,"[&>div>div]:relative":!0,'[&>div>div::after]:content-[""]':!0,"[&>div>div::after]:absolute":!0,"[&>div>div::after]:top-1/2":!0,"[&>div>div::after]:left-[105.5%]":!0,"[&>div>div::after]:w-[12%]":!0,"[&>div>div::after]:h-[1px]":!0,"[&>div>div::after]:bg-gray-300":!0,"dark:[&>div>div::after]:bg-gray-700":!0},slider__maxValue:{grow:!0,"!max-w-[45%]":!0,"mb-0":!0,relative:!0},slider__chart:{relative:!0,"z-20":!0,"mb-2":!0,flex:!0,"justify-between":!0,"items-center":!0,"w-full":!0,"aspect-[3/1]":!0},slider__chartBar:{absolute:!0,"bottom-0":!0,"h-full":!0,"bg-gray-400":!0,"data-[active=false]:bg-gray-300":!0,"dark:bg-gray-500":!0,"dark:data-[active=false]:bg-gray-600":!0},taglist__inner:{"py-1.5":!0,"pr-0":!0,"pl-0":!0},taglist__tags:{"pl-2.5":!0},taglist__tagWrapper:{"[&.formkit-dropZone_.formkit-tag]:opacity-25":!0,"[&.formkit-touchDropZone_.formkit-tag]:opacity-25":!0},taglist__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"!p-0":!0,"!w-[0%]":!0,"min-w-[1em]":!0,"inline-block":!0,"-mt-0.5":!0,"first:mt-0":!0,"first:mb-0.5":!0},taglist__listboxButton:{"ml-auto":!0,"shrink-0":!0},toggle__outer:{group:!0,"min-w-0":!0,grow:!0,"mb-3.5":!0,"data-[disabled]:select-none":!0,"data-[disabled]:opacity-50":!0,"text-sm":!0,"max-w-none":!0},toggle__altLabel:{block:!0,"w-full":!0,"mb-1.5":!0,"font-bold":!0,"text-[11px]":!0,"[line-height:1em]":!0,"text-gray-700":!0,"dark:text-gray-300":!0},toggle__inner:{peer:!0,"inline-block":!0,"mr-1.5":!0},toggle__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,peer:!0,absolute:!0,"opacity-0":!0,"w-0":!0,"h-0":!0},toggle__label:{block:!0,"text-gray-700":!0,"text-xs":!0,"font-bold":!0,"mb-0.5":!0,"dark:text-gray-300":!0,"peer-first:font-normal":!0,"peer-first:mb-0":!0},toggle__innerLabel:{absolute:!0,"text-gray-200":!0,"text-[10px]":!0,"font-bold":!0,"select-none":!0,"left-full":!0,"top-1/2":!0,"-translate-x-full":!0,"-translate-y-1/2":!0,"px-1":!0},toggle__thumb:{relative:!0,"p-0.5":!0,"left-0":!0,"aspect-[1/1]":!0,"rounded-full":!0,"transition-all":!0,"w-[1.25em]":!0,"bg-gray-50":!0,"text-gray-600":!0,"shadow-base":!0},toggle__track:{"p-0.5":!0,"min-w-[3em]":!0,relative:!0,"cursor-pointer":!0,"select-none":!0,"rounded-full":!0,"transition-all":!0,"bg-gray-400":!0,"peer-checked:bg-accent-600":!0,"peer-checked:[&>div:last-child]:left-full":!0,"peer-checked:[&>div:last-child]:-translate-x-full":!0,"peer-checked:[&>div:first-child:not(:last-child)]:left-0":!0,"peer-checked:[&>div:first-child:not(:last-child)]:translate-x-0":!0,"shadow-none":!0,"peer-focus-visible:ring-2":!0,"peer-focus-visible:ring-accent-500":!0,"peer-focus-visible:ring-offset-2":!0,"dark:bg-gray-500":!0},toggle__valueLabel:{"font-bold":!0,"text-[11px]":!0,"[line-height:1em]":!0,"text-gray-700":!0,"dark:text-gray-300":!0},toggle__wrapper:{flex:!0,"flex-wrap":!0,"items-center":!0,"mb-1.5":!0},togglebuttons__wrapper:{"mb-1.5":!0},togglebuttons__options:{"group/options":!0,"inline-flex":!0,"data-[vertical=true]:flex-col":!0},togglebuttons__option:{"group/option":!0},togglebuttons__input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0,"!px-3.5":!0,"!mb-0":!0,relative:!0,"focus:z-10":!0,"group-data-[vertical=true]/options:w-full":!0,"justify-center":!0,"bg-accent-50":!0,"disabled:opacity-50":!0,"disabled:cursor-not-allowed":!0,"group-data-[disabled]:disabled:opacity-100":!0,"dark:bg-transparent":!0,"dark:disabled:bg-transparent":!0,"dark:disabled:text-accent-500":!0,"dark:text-accent-500":!0,"aria-[pressed=true]:bg-accent-600":!0,"aria-[pressed=true]:text-white":!0,"dark:aria-[pressed=true]:bg-accent-600":!0,"dark:aria-[pressed=true]:text-white":!0,"group-[&]/option:!rounded-none":!0,"group-data-[vertical=false]/options:group-first/option:!rounded-xs":!0,"group-data-[vertical=true]/options:group-first/option:!rounded-xs":!0,"group-data-[vertical=false]/options:group-first/option:!rounded-tr-none":!0,"group-data-[vertical=false]/options:group-first/option:!rounded-br-none":!0,"group-data-[vertical=true]/options:group-first/option:!rounded-bl-none":!0,"group-data-[vertical=true]/options:group-first/option:!rounded-br-none":!0,"group-data-[vertical=false]/options:group-last/option:!rounded-xs":!0,"group-data-[vertical=true]/options:group-last/option:!rounded-xs":!0,"group-data-[vertical=false]/options:group-last/option:!rounded-tl-none":!0,"group-data-[vertical=false]/options:group-last/option:!rounded-bl-none":!0,"group-data-[vertical=true]/options:group-last/option:!rounded-tl-none":!0,"group-data-[vertical=true]/options:group-last/option:!rounded-tr-none":!0,"group-data-[vertical=false]/options:group-[&]/option:!border-r-0":!0,"group-data-[vertical=false]/options:group-last/option:!border-r":!0,"group-data-[vertical=false]/options:group-[&]/option:aria-[pressed=true]:border-x-accent-500":!0,"group-data-[vertical=false]/options:group-first/option:aria-[pressed=true]:border-l-accent-600":!0,"group-data-[vertical=false]/options:group-last/option:aria-[pressed=true]:border-r-accent-600":!0,"dark:group-data-[vertical=false]/options:group-[&]/option:aria-[pressed=true]:border-x-accent-600":!0,"dark:group-data-[vertical=false]/options:group-first/option:aria-[pressed=true]:border-l-accent-600":!0,"dark:group-data-[vertical=false]/options:group-last/option:aria-[pressed=true]:border-r-accent-600":!0,"group-data-[vertical=true]/options:group-[&]/option:!border-b-0":!0,"group-data-[vertical=true]/options:group-last/option:!border-b":!0,"group-data-[vertical=true]/options:group-[&]/option:aria-[pressed=true]:border-y-accent-500":!0,"group-data-[vertical=true]/options:group-first/option:aria-[pressed=true]:border-t-accent-600":!0,"group-data-[vertical=true]/options:group-last/option:aria-[pressed=true]:border-b-accent-600":!0,"dark:group-data-[vertical=true]/options:group-[&]/option:aria-[pressed=true]:border-y-accent-600":!0,"dark:group-data-[vertical=true]/options:group-first/option:aria-[pressed=true]:border-t-accent-600":!0,"dark:group-data-[vertical=true]/options:group-last/option:aria-[pressed=true]:border-b-accent-600":!0},transferlist__outer:{group:!0,"min-w-0":!0,grow:!0,"mb-3.5":!0,"data-[disabled]:select-none":!0,"data-[disabled]:opacity-50":!0,"text-sm":!0,"max-w-none":!0,"[&_.dnd-placeholder]:bg-accent-600":!0,"[&_.dnd-placeholder]:text-white":!0},transferlist__wrapper:{flex:!0,"flex-col":!0,"sm:flex-row":!0,"justify-between":!0,"w-full":!0,"max-w-none":!0},transferlist__help:{"text-gray-500":!0,"text-[11px]":!0,"[line-height:1em]":!0,"dark:text-gray-400":!0,"pb-1.5":!0},transferlist__transferlist:{grow:!0,shrink:!0,"min-w-0":!0,"shadow-none":!0,"group-[&]/repeater:shadow-none":!0,"group-[&]/multistep:shadow-none":!0,"aspect-[4/5]":!0,flex:!0,"flex-col":!0,"h-[350px]":!0,border:!0,"border-gray-200":!0,"rounded-xs":!0,"overflow-hidden":!0,"select-none":!0,"[&:has(:focus-visible)]:ring-1":!0,"[&:has(:focus-visible)]:ring-accent-500":!0,"dark:border-gray-800":!0,"dark:bg-gray-900/50":!0},transferlist__transferlistHeader:{flex:!0,"bg-gray-100":!0,"text-gray-600":!0,"text-xs":!0,"justify-between":!0,"items-center":!0,"border-b":!0,"border-gray-200":!0,"py-1.5":!0,"px-2":!0,"dark:bg-gray-700":!0,"dark:border-gray-800":!0,"dark:text-gray-400":!0},transferlist__transferlistHeaderItemCount:{"ml-auto":!0,"text-xs":!0,"min-w-[1.5em]":!0,"[line-height:1.5em]":!0,"px-1.5":!0,"text-center":!0,"rounded-md":!0,"bg-gray-200":!0,"text-gray-700":!0,"dark:bg-gray-500":!0,"dark:text-gray-300":!0},transferlist__transferlistListItems:{"list-none":!0,"bg-white":!0,"h-full":!0,"overflow-x-hidden":!0,"overflow-y-auto":!0,"dark:bg-transparent":!0,"outline-hidden":!0},transferlist__transferlistListItem:{"py-1.5":!0,"px-1.5":!0,"text-gray-700":!0,"ring-1":!0,"ring-gray-200":!0,"aria-selected:bg-accent-100":!0,"data-[is-active=true]:bg-accent-100":!0,"data-[is-active=true]:ring-accent-200":!0,"aria-selected:ring-accent-200":!0,relative:!0,flex:!0,"cursor-pointer":!0,"items-center":!0,"bg-white":!0,"pl-[1.5em]":!0,"first:-mt-px":!0,"first:border-t":!0,"aria-selected:z-[2]":!0,"aria-selected:border-transparent":!0,"aria-selected:ring-1":!0,"data-[is-active=true]:z-[2]":!0,"data-[is-active=true]:border-transparent":!0,"data-[is-active=true]:ring-1":!0,"group-data-[is-max=true]:cursor-not-allowed":!0,"dark:bg-gray-800":!0,"dark:text-gray-300":!0,"dark:data-[is-active=true]:bg-accent-900":!0,"dark:aria-selected:bg-accent-900":!0,"dark:ring-gray-700":!0,"dark:data-[is-active=true]:ring-accent-600":!0,"dark:aria-selected:ring-accent-600":!0,"[&.formkit-dropZone]:bg-accent-100":!0,"[&.formkit-selectionDropZone]:bg-accent-100":!0,"[&.formkit-touchDropZone]:bg-accent-100":!0,"[&.formkit-touchSelectionDropZone]:bg-accent-100":!0,"[&.formkit-longTouch]:bg-accent-100":!0,"dark:[&.formkit-dropZone]:bg-accent-900":!0,"dark:[&.formkit-selectionDropZone]:bg-accent-900":!0,"dark:[&.formkit-touchDropZone]:bg-accent-900":!0,"dark:[&.formkit-touchSelectionDropZone]:bg-accent-900":!0,"dark:[&.formkit-longTouch]:bg-accent-900":!0},transferlist__transferlistOption:{"text-xs":!0},transferlist__transferControls:{"inline-flex":!0,"grow-0":!0,shrink:!0,border:!0,"border-gray-200":!0,"flex-row":!0,"sm:flex-col":!0,"justify-center":!0,"my-1.5":!0,"sm:my-auto":!0,"mx-auto":!0,"sm:mx-1.5":!0,"rounded-xs":!0,"overflow-clip":!0,"shadow-none":!0,"group-[&]/repeater:shadow-none":!0,"group-[&]/multistep:shadow-none":!0,"dark:border-gray-800":!0},transferlist__sourceEmptyMessage:{"appearance-none":!0,"border-none":!0,"w-full":!0,"my-1.5":!0,"text-center":!0,"text-gray-500":!0,italic:!0},transferlist__sourceListItems:{"group-data-[is-max=true]:opacity-50":!0},transferlist__targetEmptyMessage:{"appearance-none":!0,"border-none":!0,"w-full":!0,"my-1.5":!0,"text-center":!0,"text-gray-500":!0,italic:!0},transferlist__emptyMessageInner:{flex:!0,"items-center":!0,"justify-center":!0,"p-1.5":!0,"text-sm":!0},transferlist__transferlistControls:{"bg-white":!0,"p-1.5":!0,"border-b":!0,"border-gray-200":!0,"dark:bg-gray-700":!0,"dark:border-gray-700":!0},transferlist__transferlistSearch:{flex:!0,border:!0,"border-gray-200":!0,"rounded-xs":!0,"items-center":!0,"text-gray-700":!0,"selection:bg-accent-100":!0,"dark:border-gray-800":!0,"dark:text-gray-300":!0,"dark:selection:bg-accent-100":!0,"dark:selection:text-gray-700":!0,"dark:bg-gray-800":!0},transferlist__transferlistSearchInput:{"border-none":!0,"px-1.5":!0,"py-1.5":!0,"w-full":!0,"bg-transparent":!0,"outline-hidden":!0,"text-xs":!0},transferlist__transferlistSearchClear:{flex:!0,"w-[0.75em]":!0,"mr-1.5":!0,"[&_svg]:w-full":!0},transferlist__controlLabel:{absolute:!0,"opacity-0":!0,"pointer-events-none":!0,"text-[0px]":!0},transferlist__selectedIcon:{"w-[0.75em]":!0,absolute:!0,"left-[0.5em]":!0,"select-none":!0,"text-accent-600":!0,"dark:text-accent-500":!0},transferlist__transferlistButton:{"sm:w-5":!0,relative:!0,flex:!0,"justify-center":!0,"text-sm":!0,"shrink-0":!0,"box-content":!0,"text-gray-700":!0,"disabled:bg-gray-200":!0,"disabled:!text-gray-400":!0,"bg-gray-50":!0,"hover:text-accent-600":!0,"cursor-pointer":!0,"appearance-none":!0,"border-none":!0,"p-2.5":!0,"hover:z-10":!0,"disabled:cursor-not-allowed":!0,"disabled:opacity-50":!0,"disabled:hover:text-current":!0,"disabled:hover:outline-hidden":!0,"focus-visible:ring-1":!0,"focus-visible:ring-accent-500":!0,"focus-visible:z-10":!0,"dark:bg-gray-800":!0,"dark:text-gray-400":!0,"dark:disabled:!text-gray-600":!0,"dark:disabled:bg-gray-900":!0,"dark:disabled:hover:text-current":!0,"dark:disabled:hover:outline-hidden":!0,"dark:hover:text-accent-500":!0},transferlist__fastForwardIcon:{"w-4":!0,flex:!0,"select-none":!0,"[&>svg]:m-auto":!0,"[&>svg]:w-full":!0,"[&>svg]:max-w-[1rem]":!0,"[&>svg]:max-h-[1rem]":!0,"rotate-90":!0,"sm:rotate-0":!0},transferlist__moveRightIcon:{"w-4":!0,flex:!0,"select-none":!0,"[&>svg]:m-auto":!0,"[&>svg]:w-full":!0,"[&>svg]:max-w-[1rem]":!0,"[&>svg]:max-h-[1rem]":!0,"rotate-90":!0,"sm:rotate-0":!0},transferlist__moveLeftIcon:{"w-4":!0,flex:!0,"select-none":!0,"[&>svg]:m-auto":!0,"[&>svg]:w-full":!0,"[&>svg]:max-w-[1rem]":!0,"[&>svg]:max-h-[1rem]":!0,"rotate-90":!0,"sm:rotate-0":!0},transferlist__rewindIcon:{"w-4":!0,flex:!0,"select-none":!0,"[&>svg]:m-auto":!0,"[&>svg]:w-full":!0,"[&>svg]:max-w-[1rem]":!0,"[&>svg]:max-h-[1rem]":!0,"rotate-90":!0,"sm:rotate-0":!0},transferlist__messages:{"mt-1.5":!0},barcode__barcodeIcon:{"w-[1.5em]":!0,"text-gray-700":!0,"cursor-pointer":!0,"dark:text-gray-300":!0},barcode__dialog:{"border-none":!0,"outline-hidden":!0,"overflow-clip":!0,"p-0":!0,"bg-black":!0,"rounded-xs":!0,"w-[100%-2rem]":!0,"max-w-[30rem]":!0,"[&::backdrop]:bg-gray-800/50":!0},barcode__video:{"w-full":!0,"aspect-[1/1]":!0,"object-cover":!0,block:!0,"pointer-events-none":!0},barcode__closeIcon:{"cursor-pointer":!0,absolute:!0,"bg-white":!0,"color-gray-700":!0,"w-[1.5em]":!0,"h-[1.5em]":!0,"rounded-xs":!0,flex:!0,"top-1.5":!0,"right-1.5":!0,"z-20":!0,"[&>svg]:w-[1.25em]":!0,"[&>svg]:h-[1.25em]":!0,"[&>svg]:m-auto":!0},barcode__overlay:{"text-gray-700":!0,"dark:text-gray-300":!0,absolute:!0,"top-1/2":!0,"left-1/2":!0,"w-[min(20em,75%)]":!0,"aspect-[1/1]":!0,"-translate-x-1/2":!0,"-translate-y-1/2":!0,"rounded-xs":!0,"pointer-events-none":!0,"shadow-[0_0_0_999em_rgba(0,0,0,0.5)]":!0},barcode__overlayDecorators:{absolute:!0,"inset-0":!0,"z-10":!0},barcode__overlayDecoratorTopLeft:{absolute:!0,"w-[1.5rem]":!0,"h-[1.5rem]":!0,"rounded-xs":!0,"top-0":!0,"left-0":!0,"border-l-4":!0,"border-t-4":!0,"rounded-tr-none":!0,"rounded-bl-none":!0},barcode__overlayDecoratorTopRight:{absolute:!0,"w-[1.5rem]":!0,"h-[1.5rem]":!0,"rounded-xs":!0,"top-0":!0,"right-0":!0,"border-r-4":!0,"border-t-4":!0,"rounded-tl-none":!0,"rounded-br-none":!0},barcode__overlayDecoratorBottomRight:{absolute:!0,"w-[1.5rem]":!0,"h-[1.5rem]":!0,"rounded-xs":!0,"bottom-0":!0,"right-0":!0,"border-r-4":!0,"border-b-4":!0,"rounded-tr-none":!0,"rounded-bl-none":!0},barcode__overlayDecoratorBottomLeft:{absolute:!0,"w-[1.5rem]":!0,"h-[1.5rem]":!0,"rounded-xs":!0,"bottom-0":!0,"left-0":!0,"border-l-4":!0,"border-b-4":!0,"rounded-tl-none":!0,"rounded-br-none":!0},"multi-step__outer":{group:!0,"min-w-0":!0,grow:!0,"mb-3.5":!0,"data-[disabled]:select-none":!0,"data-[disabled]:opacity-50":!0,"text-sm":!0,"group/multistep":!0,"max-w-[32rem]":!0},"multi-step__wrapper":{"group/wrapper":!0,"data-[tab-style=tab]:shadow-none":!0,"data-[tab-style=tab]:rounded-xs":!0},"multi-step__tabs":{flex:!0,"items-center":!0,"group-data-[tab-style=tab]/wrapper:overflow-auto":!0,"group-data-[tab-style=tab]/wrapper:border":!0,"group-data-[tab-style=tab]/wrapper:border-b-0":!0,"group-data-[tab-style=tab]/wrapper:border-gray-200":!0,"group-data-[tab-style=tab]/wrapper:rounded-xs":!0,"group-data-[tab-style=tab]/wrapper:rounded-bl-none":!0,"group-data-[tab-style=tab]/wrapper:rounded-br-none":!0,"dark:group-data-[tab-style=tab]/wrapper:border-gray-800":!0,"group-data-[tab-style=progress]/wrapper:my-5":!0,"group-data-[tab-style=progress]/wrapper:justify-around":!0,"group-data-[tab-style=progress]/wrapper:overflow-visible":!0,"group-data-[tab-style=progress]/wrapper:group-data-[hide-labels=true]/wrapper:mb-3":!0},"multi-step__tab":{"group/tab":!0,"group-data-[tab-style=tab]/wrapper:relative":!0,"group-data-[tab-style=tab]/wrapper:flex":!0,"group-data-[tab-style=tab]/wrapper:grow":!0,"group-data-[tab-style=tab]/wrapper:text-xs":!0,"group-data-[tab-style=tab]/wrapper:items-center":!0,"group-data-[tab-style=tab]/wrapper:justify-center":!0,"group-data-[tab-style=tab]/wrapper:cursor-pointer":!0,"group-data-[tab-style=tab]/wrapper:text-gray-700":!0,"group-data-[tab-style=tab]/wrapper:bg-gray-100":!0,"group-data-[tab-style=tab]/wrapper:py-3":!0,"group-data-[tab-style=tab]/wrapper:px-3.5":!0,"group-data-[tab-style=tab]/wrapper:border-r":!0,"group-data-[tab-style=tab]/wrapper:border-b":!0,"group-data-[tab-style=tab]/wrapper:border-gray-200":!0,"group-data-[tab-style=tab]/wrapper:last:border-r-0":!0,"group-data-[tab-style=tab]/wrapper:shadow-[inset_0_-0.5em_0.5em_-0.5em_rgba(0,0,0,0.1)]":!0,"group-data-[tab-style=tab]/wrapper:data-[active=true]:bg-white":!0,"group-data-[tab-style=tab]/wrapper:data-[active=true]:font-bold":!0,"group-data-[tab-style=tab]/wrapper:data-[active=true]:border-b-white":!0,"group-data-[tab-style=tab]/wrapper:data-[active=true]:z-10":!0,"group-data-[tab-style=tab]/wrapper:data-[active=true]:shadow-[0_0_0.5em_0_rgba(0,0,0,0.1)]":!0,"dark:group-data-[tab-style=tab]/wrapper:text-gray-300":!0,"dark:group-data-[tab-style=tab]/wrapper:bg-gray-950/20":!0,"dark:group-data-[tab-style=tab]/wrapper:data-[active=true]:bg-transparent":!0,"dark:group-data-[tab-style=tab]/wrapper:data-[active=true]:border-b-transparent":!0,"dark:group-data-[tab-style=tab]/wrapper:border-gray-800":!0,"group-data-[tab-style=progress]/wrapper:flex":!0,"group-data-[tab-style=progress]/wrapper:flex-col":!0,"group-data-[tab-style=progress]/wrapper:items-center":!0,"group-data-[tab-style=progress]/wrapper:grow":!0,"group-data-[tab-style=progress]/wrapper:shrink-0":!0,"group-data-[tab-style=progress]/wrapper:relative":!0,"group-data-[tab-style=progress]/wrapper:before:block":!0,"group-data-[tab-style=progress]/wrapper:before:text-xs":!0,"group-data-[tab-style=progress]/wrapper:before:w-[1.25rem]":!0,"group-data-[tab-style=progress]/wrapper:before:h-[1.25rem]":!0,"group-data-[tab-style=progress]/wrapper:before:border-4":!0,"group-data-[tab-style=progress]/wrapper:before:border-gray-300":!0,"group-data-[tab-style=progress]/wrapper:before:rounded-full":!0,"group-data-[tab-style=progress]/wrapper:before:bg-white":!0,"group-data-[tab-style=progress]/wrapper:before:z-10":!0,"dark:group-data-[tab-style=progress]/wrapper:before:border-gray-800":!0,"dark:group-data-[tab-style=progress]/wrapper:before:bg-gray-950":!0,"group-data-[tab-style=progress]/wrapper:after:block":!0,"group-data-[tab-style=progress]/wrapper:after:h-1":!0,"group-data-[tab-style=progress]/wrapper:after:w-full":!0,"group-data-[tab-style=progress]/wrapper:after:absolute":!0,"group-data-[tab-style=progress]/wrapper:after:top-[0.5em]":!0,"group-data-[tab-style=progress]/wrapper:after:left-[calc(50%+0.5em)]":!0,"group-data-[tab-style=progress]/wrapper:after:bg-gray-300":!0,"group-data-[tab-style=progress]/wrapper:data-[valid=true]:data-[visited=true]:after:bg-accent-600":!0,"group-data-[tab-style=progress]/wrapper:last:after:hidden":!0,"dark:group-data-[tab-style=progress]/wrapper:after:bg-gray-800":!0,"dark:group-data-[tab-style=progress]/wrapper:data-[valid=true]:data-[visited=true]:after:bg-accent-600":!0},"multi-step__tabLabel":{"group-data-[tab-style=progress]/wrapper:absolute":!0,"group-data-[tab-style=progress]/wrapper:text-gray-800":!0,"group-data-[tab-style=progress]/wrapper:top-full":!0,"group-data-[tab-style=progress]/wrapper:w-full":!0,"group-data-[tab-style=progress]/wrapper:whitespace-nowrap":!0,"group-data-[tab-style=progress]/wrapper:text-[11px]":!0,"[line-height:1em]":!0,"dark:group-data-[tab-style=progress]/wrapper:text-gray-300":!0},"multi-step__badge":{"bg-red-600":!0,absolute:!0,"font-mono":!0,"font-bold":!0,flex:!0,"items-center":!0,"justify-center":!0,"aspect-[1/1]":!0,"[line-height:1.25rem]":!0,"text-white":!0,"rounded-full":!0,"group-data-[valid=true]/tab:bg-accent-600":!0,"group-data-[tab-style=tab]/wrapper:text-[0.66rem]":!0,"group-data-[tab-style=tab]/wrapper:p-1.5":!0,"group-data-[tab-style=tab]/wrapper:w-5":!0,"group-data-[tab-style=tab]/wrapper:h-5":!0,"group-data-[tab-style=tab]/wrapper:top-1":!0,"group-data-[tab-style=tab]/wrapper:right-1":!0,"group-data-[tab-style=progress]/wrapper:w-[1.25rem]":!0,"group-data-[tab-style=progress]/wrapper:h-[1.25rem]":!0,"group-data-[tab-style=progress]/wrapper:p-1":!0,"group-data-[tab-style=progress]/wrapper:text-[10px]":!0,"group-data-[tab-style=progress]/wrapper:[line-height:0]":!0,"group-data-[tab-style=progress]/wrapper:z-10":!0},"multi-step__validStepIcon":{"w-full":!0,"h-full":!0,"mt-0.5":!0},"multi-step__steps":{"px-9":!0,"pt-7":!0,"pb-3.5":!0,"bg-white":!0,border:!0,"border-gray-200":!0,"rounded-xs":!0,"dark:bg-transparent":!0,"dark:border-gray-800":!0,"group-data-[tab-style=tab]/wrapper:border-t-0":!0,"group-data-[tab-style=tab]/wrapper:rounded-tl-none":!0,"group-data-[tab-style=tab]/wrapper:rounded-tr-none":!0,"group-data-[tab-style=progress]/wrapper:shadow-none":!0,"[&_[data-type]]:max-w-none":!0},step__stepActions:{flex:!0,"justify-between":!0,"[&>*]:grow-0":!0},step__stepPrevious:{"mr-1":!0},step__stepNext:{"ml-auto":!0}},JT={outer:{group:!0,"max-w-none":!0,"min-w-0":!0,grow:!0,"mb-3.5":!0,"data-[disabled]:select-none":!0,"data-[disabled]:opacity-50":!0,"text-sm":!0},label:{block:!0,"text-gray-700":!0,"text-xs":!0,"font-bold":!0,"mb-0.5":!0,"dark:text-gray-300":!0},legend:{block:!0,"text-gray-700":!0,"text-xs":!0,"font-bold":!0,"dark:text-gray-300":!0},input:{"appearance-none":!0,"[color-scheme:light]":!0,"dark:[color-scheme:dark]":!0,"selection:bg-accent-100":!0,"selection:text-gray-700":!0,"group-data-[has-overlay]:selection:!text-transparent":!0},prefixIcon:{flex:!0,"items-center":!0,"-ml-0.5":!0,"mr-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0},suffixIcon:{flex:!0,"items-center":!0,"-mr-0.5":!0,"ml-1.5":!0,"text-sm":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0},loaderIcon:{"animate-spin":!0,flex:!0,"items-center":!0,"my-auto":!0,"ml-1.5":!0,"text-sm":!0,"text-gray-500":!0,"h-[1em]":!0,"w-[1em]":!0,"shrink-0":!0,"[&>svg]:w-full":!0},loadMoreInner:{flex:!0,"text-xs":!0,"text-gray-500":!0,"p-1.5":!0,"items-center":!0,"justify-center":!0,"[&>span]:mr-1.5":!0},help:{"text-gray-500":!0,"text-[11px]":!0,"[line-height:1em]":!0,"dark:text-gray-400":!0},message:{"text-red-600":!0,"mb-1.5":!0,"text-[11px]":!0,"[line-height:1em]":!0,"dark:text-red-400":!0},overlay:{"text-gray-700":!0,"dark:text-gray-300":!0},overlayPlaceholder:{"text-gray-400":!0,"dark:text-gray-400/50":!0},overlayLiteral:{"text-gray-700":!0,"dark:text-gray-300":!0},overlayChar:{"text-gray-700":!0,"dark:text-gray-300":!0},overlayEnum:{"text-gray-700":!0,"dark:text-gray-300":!0}},Ju={"data-1p-ignore":"","data-lpignore":"true","data-bwignore":"","data-form-type":"other",autocomplete:"off"};function XT(e){e.type==="input"&&(e.hook.prop((t,n)=>(t.prop==="attrs"&&(t.value={...t.value??{},...Ju}),n(t))),e.props.attrs={...e.props.attrs??{},...Ju})}const YT=Ch(GT),ZT=Zm("fk-2d3e4e0bb",Qm),QT="h-8",e8=new Set(["textarea","repeater","list","group","form"]);function t8(e,t){const n={...YT(e,t)},r=t.props.family,a=t.props.type;if(e==="label"&&r==="dropdown"&&(n["mb-0.5"]=!1,n["mb-1"]=!0,n["!inline-flex"]=!0),e==="inner"){r==="dropdown"&&(n["py-1.5"]=!0,n["px-2.5"]=!0,n["text-sm"]=!0,n["w-full"]=!0,n["text-gray-700"]=!0,n["dark:text-gray-300"]=!0);const o=!!t.props.richRowComponent;!e8.has(a??"")&&r!=="box"&&a!=="toggle"&&!o&&(n[QT]=!0)}return e==="input"&&r==="dropdown"&&(n["pl-2.5"]=!1,n["p-1.5"]=!1,n["py-1.5"]=!1),e==="selection"&&a==="autocomplete"&&(n["pl-1.5"]=!1),e==="content"&&a==="repeater"&&(n["p-4"]=!1,n["py-2"]=!0),e==="wrapper"&&a==="toggle"&&(n["mb-1.5"]=!1),e==="outer"&&(n["mb-3.5"]=!1,n["mb-2.5"]=!1,n["mb-2"]=!1,n["mb-1.5"]=!1,n["mb-1"]=!1,n["mb-0.5"]=!1),n}const n8={config:{rootClasses:t8,popover:!0,openOnClick:!0,openOnRemove:!0,clearSearchOnOpen:!0,selectionAppearance:"option",emptyMessage:"No results found."},plugins:[ZT,Sh,XT],rules:Ih,messages:{en:{validation:$h}},inputs:_h,icons:{...Ym}},r8=lm(n8);function a8(e){return e.flatMap(t=>{const n=JSON.stringify(t);return n===void 0?[]:[{value:n,label:typeof t=="string"&&t?t:n}]})}function o8(e,t){const n={...e};for(const r of t){const a=n[r.name];if(!r.enum||typeof a!="string"||a==="")continue;const o=[];for(const i of r.enum){const d=JSON.stringify(i);d!==void 0&&o.push([d,i])}const s=new Map(o);s.has(a)&&(n[r.name]=s.get(a))}return n}const s8={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function l8(e,t){return l(),c("svg",s8,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2"}),u("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})],-1)])])}const i8=Ye({name:"lucide-lock",render:l8}),u8={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function d8(e,t){return l(),c("svg",u8,[...t[0]||(t[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 5h1m-1 7h1m-1 7h1M8 5h1m-1 7h1m-1 7h1m4-14h8m-8 7h8m-8 7h8"},null,-1)])])}const c8=Ye({name:"lucide-logs",render:d8}),f8=["aria-label","title","disabled"],Ip=we({__name:"VariableTypeIconButton",props:{modelValue:{},editable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},allowSecret:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>n.modelValue==="secret"?"secret":"text"),o=x(()=>n.editable&&n.allowSecret&&!n.disabled),s=x(()=>a.value==="secret"?o.value?"Secret variable. Click to switch to text.":"Secret variable":o.value?"Text variable. Click to switch to secret.":"Text variable"),i=()=>{o.value&&r("update:modelValue",a.value==="secret"?"text":"secret")};return(d,p)=>(l(),c("button",{type:"button",class:J(["h-8 w-8 inline-flex items-center justify-center rounded border border-neutral-300 bg-white text-neutral-700 transition-colors dark:border-neutral-700 dark:bg-neutral-900 dark:text-neutral-200",o.value?"hover:border-neutral-500 hover:bg-neutral-50 dark:hover:border-neutral-500 dark:hover:bg-neutral-800":"cursor-not-allowed bg-zinc-100 text-neutral-400 dark:bg-zinc-700/40 dark:text-neutral-500"]),"aria-label":s.value,title:s.value,disabled:!o.value,onClick:i},[a.value==="secret"?(l(),K(h(i8),{key:0,class:"h-4 w-4","aria-hidden":"true"})):(l(),K(h(c8),{key:1,class:"h-4 w-4","aria-hidden":"true"}))],10,f8))}}),p8={key:0,class:"justify-self-center"},h8=["disabled","onClick"],m8=["disabled"],g8=we({__name:"VariableCustomRows",props:{showCustomRows:{type:Boolean},customRows:{},disabled:{type:Boolean},allowDeclarationEdit:{type:Boolean},allowSecretDeclarations:{type:Boolean},allowSecretValues:{type:Boolean},typeOptions:{},thin:{type:Boolean},variableGridColumns:{},getTextClasses:{type:Function},getSelectClasses:{type:Function}},emits:["node","input","updateType","remove","add"],setup(e,{emit:t}){const n=t;return(r,a)=>{const o=It("FormKit");return l(),c(te,null,[e.showCustomRows?(l(),K(o,{key:0,type:"repeater","model-value":e.customRows,min:0,"add-button":!1,"insert-control":!1,"up-control":!1,"down-control":!1,"remove-control":!1,"outer-class":"$reset",classes:{outer:"$remove:mb-4 mb-0",wrapper:"$remove",fieldset:"$remove:border-0 p-0 m-0 min-w-0",legend:"$remove:hidden",content:"$remove:p-5 $remove:p-4 $remove:space-y-2 $remove:py-2 p-0 space-y-1",item:"$remove:bg-white $remove:border $remove:border-zinc-200 $remove:rounded-sm $remove:dark:border-zinc-700 $remove:dark:bg-transparent $remove:mb-2 mb-0 border-0 bg-transparent rounded-none",controls:"$remove:hidden",help:"$remove:hidden",messages:"$remove:formkit-messages hidden"},onNode:a[0]||(a[0]=s=>n("node",s)),onInput:a[1]||(a[1]=s=>n("input",s))},{default:be(({index:s})=>[u("div",{class:J(["variable-editor-row-grid grid gap-2 items-start",[e.variableGridColumns,e.thin?"variable-editor-row-grid--thin":""]])},[j(o,{type:"text",name:"name",placeholder:"VARIABLE_NAME",disabled:e.disabled,"outer-class":"$reset",classes:e.getTextClasses({disabled:e.disabled})},null,8,["disabled","classes"]),e.thin?(l(),c("div",p8,[j(o,{type:"hidden",name:"type",value:e.customRows[Number(s)]?.type||"text","outer-class":"$reset hidden"},null,8,["value"]),j(Ip,{"model-value":e.customRows[Number(s)]?.type||"text",editable:e.allowDeclarationEdit,disabled:e.disabled||!e.allowDeclarationEdit,"allow-secret":e.allowSecretDeclarations,"onUpdate:modelValue":i=>n("updateType",Number(s),i)},null,8,["model-value","editable","disabled","allow-secret","onUpdate:modelValue"])])):(l(),K(o,{key:1,type:"selectSearch",name:"type",options:e.allowSecretDeclarations?e.typeOptions:e.typeOptions.filter(i=>i.value!=="secret"),disabled:e.disabled||!e.allowDeclarationEdit,"outer-class":"$reset",classes:e.getSelectClasses(e.disabled||!e.allowDeclarationEdit)},null,8,["options","disabled","classes"])),j(o,{type:e.customRows[s]?.type==="secret"?"password":"text",name:"value",placeholder:"Enter value...",disabled:e.disabled||e.customRows[s]?.type==="secret"&&!e.allowSecretValues,"outer-class":"$reset",classes:e.getTextClasses({disabled:e.disabled||e.customRows[s]?.type==="secret"&&!e.allowSecretValues})},null,8,["type","disabled","classes"]),j(o,{type:"checkbox",name:"required",disabled:e.disabled||!e.allowDeclarationEdit,classes:{outer:"$remove:mb-4 $remove:mb-3.5 !mb-0 h-8 w-full flex items-center justify-center justify-self-center",wrapper:"$remove:items-center flex items-center justify-center",decorator:"$remove:mr-1.5 mr-0",label:"$remove:hidden",help:"$remove:hidden",messages:"$remove:formkit-messages hidden"}},null,8,["disabled"]),u("button",{type:"button",class:"justify-self-center h-8 w-7 flex items-center justify-center text-neutral-500 dark:text-white/70 hover:text-red-500 dark:hover:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/30 rounded transition-colors disabled:opacity-50",disabled:e.disabled,title:"Remove variable",onClick:i=>n("remove",s)},[...a[3]||(a[3]=[u("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[u("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,h8)],2)]),_:1},8,["model-value"])):M("",!0),e.showCustomRows?(l(),c("button",{key:1,type:"button",class:"w-full rounded-sm border border-dashed border-neutral-300 dark:border-neutral-700 px-3 py-2 text-sm text-neutral-600 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-900",disabled:e.disabled,onClick:a[2]||(a[2]=s=>n("add"))}," + Add custom variable ",8,m8)):M("",!0)],64)}}}),v8=ot(g8,[["__scopeId","data-v-344d8c76"]]),y8={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function b8(e,t){return l(),c("svg",y8,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M3 12a9 9 0 1 0 9-9a9.75 9.75 0 0 0-6.74 2.74L3 8"}),u("path",{d:"M3 3v5h5"})],-1)])])}const x8=Ye({name:"lucide-rotate-ccw",render:b8});function k8(e){return e.name==="local"?`this ${e.type}`:`the ${e.name} ${e.type}`}function w8(e){return e.length===0?"":e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(", ")}, and ${e[e.length-1]}`}function _8(e){return(e.type==="agent"||e.type==="prompt")&&e.name?`the ${e.name} ${e.type}`:e.type==="thread"?"the thread":e.type==="account"?"the user account":e.type==="instance"?"the instance":`the ${e.type}`}function $8(e,t){if(e.declared.length!==1)return!1;const[n]=e.declared;return n.type===t.type&&n.name===t.name}function Xu(e,t=!1,n=!0){const r=e.required?"Required by":"Requested by",a=e.declared.length?w8(e.declared.map(k8)):"this configuration";return!e.defined||t||!n?`${r} ${a}.`:$8(e,e.defined)?`${e.required?"Required":"Requested"} and set by ${a}.`:`${r} ${a}, value provided by ${_8(e.defined)}.`}const I8=["data-variable-property"],S8={class:"relative"},C8=["disabled","title"],T8=["disabled"],M8={key:3,class:"h-[34px] w-7 justify-self-center"},A8={class:"text-xs text-neutral-400 dark:text-neutral-500 px-1"},L8={key:0,class:"text-xs text-neutral-400 dark:text-neutral-500 px-1"},R8=["data-enabler-property"],E8={class:"text-[11px] text-neutral-500 dark:text-neutral-400"},P8={key:0,class:"text-[11px] text-neutral-500 dark:text-neutral-400"},N8={class:"space-y-2"},O8={class:"flex items-center justify-between"},D8={class:"text-xs text-neutral-500 dark:text-neutral-400"},B8=["disabled","onClick"],F8={class:"variable-editor-optional-row grid gap-2 items-start grid-cols-[minmax(180px,1fr)_minmax(220px,1fr)]"},j8={class:"text-xs text-neutral-400 dark:text-neutral-500 px-1"},q8=["disabled"],z8=we({__name:"VariableDeclaredRow",props:{row:{},thin:{type:Boolean},variableGridColumns:{},typeOptions:{},allowSecretDeclarations:{type:Boolean},allowSecretValues:{type:Boolean},requireRequiredValues:{type:Boolean},disabled:{type:Boolean},groupedOptionalRows:{},getSelectClasses:{type:Function},getTextClasses:{type:Function},getRowDisplayType:{type:Function},getRowStorageType:{type:Function},getDeclaredValue:{type:Function},getDeclaredPlaceholder:{type:Function},canEditDeclarationMetadata:{type:Function},canEditDeclaredName:{type:Function},canEditDeclaredValue:{type:Function},canToggleValueOverride:{type:Function},isValueOverrideActive:{type:Function},isValueInherited:{type:Function},shouldShowSecretValueUnavailable:{type:Function},canRemoveLocalDeclaration:{type:Function},isMissingRequired:{type:Function},isOptionalGateEnabled:{type:Function},getOptionalGroupMaxInstances:{type:Function},getOptionalGroupRows:{type:Function}},emits:["updateDeclaredName","updateDeclaredType","updateDeclaredValue","updateDeclaredRequired","toggleValueOverride","removeLocalDeclaration","persistOptionalGroupRows","removeOptionalGroupRow","addOptionalGroupRow"],setup(e,{emit:t}){const n=t;return(r,a)=>{const o=It("FormKit");return l(),c("div",{class:"space-y-1","data-variable-property":e.row.property},[u("div",{class:J(["variable-editor-row-grid grid gap-2 items-start",[e.variableGridColumns,e.thin?"variable-editor-row-grid--thin":""]])},[j(o,{type:"text",value:e.row.property,disabled:!e.canEditDeclaredName(e.row),"outer-class":"$reset",classes:e.getTextClasses({disabled:!e.canEditDeclaredName(e.row)}),onInput:a[0]||(a[0]=s=>n("updateDeclaredName",e.row.property,String(s??"")))},null,8,["value","disabled","classes"]),e.thin?(l(),K(Ip,{key:0,"model-value":e.getRowDisplayType(e.row),editable:e.canEditDeclarationMetadata(e.row),disabled:e.disabled||!e.canEditDeclarationMetadata(e.row),"allow-secret":e.allowSecretDeclarations,"onUpdate:modelValue":a[1]||(a[1]=s=>n("updateDeclaredType",e.row.property,s??""))},null,8,["model-value","editable","disabled","allow-secret"])):(l(),K(o,{key:1,type:"selectSearch",value:e.getRowDisplayType(e.row),options:e.allowSecretDeclarations?e.typeOptions:e.typeOptions.filter(s=>s.value!=="secret"),disabled:!e.canEditDeclarationMetadata(e.row),"outer-class":"$reset",classes:e.getSelectClasses(!e.canEditDeclarationMetadata(e.row)),onInput:a[2]||(a[2]=s=>n("updateDeclaredType",e.row.property,s??""))},null,8,["value","options","disabled","classes"])),u("div",S8,[j(o,{type:e.getRowStorageType(e.row)==="secret"?"password":"text","model-value":e.getDeclaredValue(e.row),placeholder:e.getDeclaredPlaceholder(e.row),disabled:!e.canEditDeclaredValue(e.row),validation:e.requireRequiredValues&&e.row.required&&!e.row.defined?"required":"","validation-label":"Value","validation-visibility":"submit","outer-class":"$reset",classes:e.getTextClasses({insetRight:e.canToggleValueOverride(e.row),requiredHighlight:e.isMissingRequired(e.row),disabled:!e.canEditDeclaredValue(e.row)}),onInput:a[3]||(a[3]=s=>n("updateDeclaredValue",e.row.property,String(s??"")))},null,8,["type","model-value","placeholder","disabled","validation","classes"]),e.canToggleValueOverride(e.row)?(l(),c("button",{key:0,type:"button",class:"absolute top-1/2 right-1 -translate-y-1/2 h-6 w-6 flex items-center justify-center rounded text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-200 hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50",disabled:e.disabled,title:e.isValueOverrideActive(e.row)?"Use inherited value":"Override value",onMousedown:a[4]||(a[4]=Je(()=>{},["prevent"])),onClick:a[5]||(a[5]=s=>n("toggleValueOverride",e.row))},[e.isValueOverrideActive(e.row)?(l(),K(h(x8),{key:0,class:"h-4 w-4"})):(l(),K(h(rp),{key:1,class:"h-4 w-4"}))],40,C8)):M("",!0)]),j(o,{type:"checkbox",value:e.row.required,disabled:!e.canEditDeclarationMetadata(e.row),classes:{outer:"$remove:mb-4 $remove:mb-3.5 !mb-0 h-8 w-full flex items-center justify-center justify-self-center",wrapper:"$remove:items-center flex items-center justify-center",decorator:"$remove:mr-1.5 mr-0",label:"$remove:hidden",help:"$remove:hidden",messages:"$remove:formkit-messages hidden"},onInput:a[6]||(a[6]=s=>n("updateDeclaredRequired",e.row.property,!!s))},null,8,["value","disabled"]),e.canRemoveLocalDeclaration(e.row)?(l(),c("button",{key:2,type:"button",class:"justify-self-center h-8 w-7 flex items-center justify-center text-neutral-500 dark:text-white/70 hover:text-red-500 dark:hover:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/30 rounded transition-colors disabled:opacity-50",disabled:e.disabled,title:"Remove variable",onClick:a[7]||(a[7]=s=>n("removeLocalDeclaration",e.row.property))},[...a[10]||(a[10]=[u("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[u("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,T8)):(l(),c("span",M8))],2),u("p",A8,w(h(Xu)(e.row,e.isValueOverrideActive(e.row),e.isValueInherited(e.row))),1),e.shouldShowSecretValueUnavailable(e.row)?(l(),c("p",L8," Secret values cannot be set here. ")):M("",!0),(e.groupedOptionalRows.get(e.row.property)||[]).length>0?(l(),K(o,{key:1,type:"group",name:`optional-group-${e.row.property}`,"outer-class":"$reset",classes:{outer:"$remove:mb-4 mb-0"}},{default:be(()=>[e.isOptionalGateEnabled(e.row.property)?(l(),c("div",{key:0,class:"ml-5 space-y-2","data-enabler-property":e.row.property},[u("p",E8,[a[11]||(a[11]=Ce(" Optional branch enabled by ",-1)),u("code",null,w(e.row.property),1)]),typeof e.getOptionalGroupMaxInstances(e.row.property)=="number"?(l(),c("p",P8," Max instances: "+w(e.getOptionalGroupMaxInstances(e.row.property)),1)):M("",!0),j(o,{type:"repeater",name:`optional-repeater-${e.row.property}`,"model-value":e.getOptionalGroupRows(e.row.property),min:1,max:e.getOptionalGroupMaxInstances(e.row.property),"add-button":!1,"insert-control":!1,"up-control":!1,"down-control":!1,"remove-control":!1,"outer-class":"$reset",classes:{outer:"$remove:mb-4 mb-0",wrapper:"$remove",fieldset:"$remove:border-0 p-0 m-0 min-w-0",legend:"$remove:hidden",content:"$remove:p-5 $remove:p-4 $remove:space-y-2 $remove:py-2 p-0 space-y-1",item:"$remove:bg-white $remove:border $remove:border-zinc-200 $remove:rounded-sm $remove:dark:border-zinc-700 $remove:dark:bg-transparent $remove:mb-2 mb-0 border border-neutral-200 dark:border-neutral-700 bg-transparent rounded-sm p-2",help:"$remove:hidden",messages:"$remove:formkit-messages hidden"},onInput:a[8]||(a[8]=s=>n("persistOptionalGroupRows",e.row.property,s))},{default:be(({index:s})=>[u("div",N8,[u("div",O8,[u("p",D8," Instance "+w(Number(s)+1),1),u("button",{type:"button",class:"h-5 px-1.5 text-[10px] rounded-sm border border-neutral-500/40 dark:border-neutral-600 text-neutral-500 dark:text-neutral-400 hover:text-neutral-200 hover:border-neutral-400 disabled:opacity-50",disabled:e.disabled||e.getOptionalGroupRows(e.row.property).length<=1,onClick:i=>n("removeOptionalGroupRow",e.row.property,Number(s))}," Remove ",8,B8)]),(l(!0),c(te,null,Ie(e.groupedOptionalRows.get(e.row.property)||[],i=>(l(),c("div",{key:`${e.row.property}-${i.property}-${s}`,class:"space-y-1"},[u("div",F8,[j(o,{type:"text",value:i.property,disabled:!0,"outer-class":"$reset",classes:e.getTextClasses({disabled:!0})},null,8,["value","classes"]),j(o,{name:i.property,type:e.getRowStorageType(i)==="secret"?"password":"text",placeholder:i.description||"Enter value...",disabled:e.disabled||e.getRowStorageType(i)==="secret"&&!e.allowSecretValues,validation:e.requireRequiredValues&&i.required?"required":"","validation-label":"Value","validation-visibility":"submit","outer-class":"$reset",classes:e.getTextClasses({disabled:e.disabled||e.getRowStorageType(i)==="secret"&&!e.allowSecretValues})},null,8,["name","type","placeholder","disabled","validation","classes"])]),u("p",j8,w(h(Xu)(i,e.isValueOverrideActive(i),e.isValueInherited(i))),1)]))),128))])]),_:1},8,["name","model-value","max"]),e.getOptionalGroupMaxInstances(e.row.property)!==1&&(e.getOptionalGroupMaxInstances(e.row.property)===void 0||e.getOptionalGroupRows(e.row.property).length<(e.getOptionalGroupMaxInstances(e.row.property)||0))?(l(),c("button",{key:1,type:"button",class:"inline-flex h-5 px-2 text-[10px] rounded-sm border border-neutral-500/40 dark:border-neutral-600 text-neutral-500 dark:text-neutral-400 hover:text-neutral-200 hover:border-neutral-400 disabled:opacity-50",disabled:e.disabled,onClick:a[9]||(a[9]=s=>n("addOptionalGroupRow",e.row.property))}," Add instance ",8,q8)):M("",!0)],8,R8)):M("",!0)]),_:1},8,["name"])):M("",!0)],8,I8)}}}),V8=ot(z8,[["__scopeId","data-v-271f80e8"]]),Sp=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},la=e=>!!e.defined,H8=(e,t)=>{const n=Sp(e);return Object.prototype.hasOwnProperty.call(n,t)&&n[t]!==void 0&&n[t]!==null},U8=(e,t)=>{const r=Sp(e)[t];return r==null?"":String(r)},K8=e=>e.type==="secret"||e.value===void 0||e.value===null?"":String(e.value),W8=e=>e.defined?e.defined.type==="thread"?"From Thread":e.defined.type==="account"?"From User Acct":e.defined.type==="instance"?"From Instance":e.defined.type==="agent"?"From Agent":e.defined.type==="prompt"?"From Prompt":"Inherited":"Inherited",G8=(e,t)=>la(e)&&!t?.locallyDefined&&!t?.overrideActive?W8(e):e.description||"Enter value...",Yu=e=>{if(!e.optionalOnly)return null;const t=e.optionalBranches?.[0];return t?.gate?t.gate:null},Zu=e=>{if(e==null)return!1;const t=String(e).trim().toLowerCase();return t==="true"||t==="1"||t==="yes"};function J8(e){const t=x(()=>{const y=new Map;for(const A of e.declaredRows.value){const L=Yu(A);L&&(y.has(L)||y.set(L,[]),y.get(L).push(A))}for(const A of y.values())A.sort((L,k)=>L.property.localeCompare(k.property));return y}),n=x(()=>e.declaredRows.value.filter(y=>!Yu(y))),r=y=>(t.value.get(y)||[]).map(A=>A.property),a=y=>{const A=t.value.get(y)||[],L=[];for(const k of A){const S=k.optionalBranches||[];for(const T of S)T.gate===y&&typeof T.maxInstances=="number"&&T.maxInstances>0&&L.push(T.maxInstances)}if(L.length!==0)return Math.min(...L)},o=y=>{for(const A of t.value.values())for(const L of A){const k=`${L.property}__`;if(!y.startsWith(k))continue;const S=y.slice(k.length);if(/^\d+$/.test(S))return!0}return!1},s=(y,A)=>{for(const L of r(y)){const k=`${L}__`;if(!A.startsWith(k))continue;const S=A.slice(k.length);if(/^\d+$/.test(S))return!0}return!1},i=y=>{const A={};for(const L of r(y))A[L]="";return A},d=(y,A,L)=>{const k=r(y),S=a(y),T=[];if(Array.isArray(A))for(const q of A){const H=q&&typeof q=="object"?q:{},N=i(y);for(const P of k){const U=H[P];N[P]=U==null?"":String(U)}T.push(N)}const B=typeof S=="number"&&S>0?T.slice(0,S):T;return B.length===0&&k.length>0&&B.push(i(y)),B},p=(y,A)=>{const L=r(y);if(L.length===0)return[];const k=new Map;for(const T of L){const B=A[T];B!=null&&B!==""&&(k.has(0)||k.set(0,i(y)),k.get(0)[T]=String(B));const q=`${T}__`;for(const[H,N]of Object.entries(A||{})){if(!H.startsWith(q))continue;const P=H.slice(q.length);if(!/^\d+$/.test(P))continue;const U=Number.parseInt(P,10);if(!Number.isFinite(U)||U<2)continue;const V=U-1;k.has(V)||k.set(V,i(y)),k.get(V)[T]=N==null?"":String(N)}}k.size>0&&!k.has(0)&&k.set(0,i(y));const S=Array.from(k.entries()).sort((T,B)=>T[0]-B[0]).map(T=>T[1]);return d(y,S)},f=y=>{const L=e.modelValue()[y];if(L!=null)return String(L);const k=e.scannedMap.value.get(y);return k?.value!==void 0&&k.value!==null?String(k.value):""},m=y=>Zu(f(y)),g=y=>m(y)?p(y,e.modelValue()||{}):[],v=(y,A)=>{const L=r(y);if(L.length===0)return!1;let k=!1;for(const S of Object.keys(A))(L.includes(S)||s(y,S))&&(delete A[S],k=!0);return k},_=(y,A)=>{const L=d(y,A),k=r(y);if(k.length===0)return;const S=e.modelValue()||{},T={...S};v(y,T);for(let B=0;B<L.length;B++){const q=L[B]||{};for(const H of k){const N=q[H],P=B===0?H:`${H}__${B+1}`;if(B===0){N&&(T[P]=N);continue}T[P]=N||""}}e.serializeEnvRecord(T)!==e.serializeEnvRecord(S)&&e.emitModelValue(T)};return{addOptionalGroupRow:y=>{const A=g(y),L=a(y);typeof L=="number"&&L>0&&A.length>=L||_(y,[...A,i(y)])},clearOptionalGroupValuesInModel:v,getOptionalGroupMaxInstances:a,getOptionalGroupRows:g,groupedOptionalRows:t,isEnabledEnvFlag:Zu,isOptionalGateEnabled:m,isOptionalInstanceKey:o,persistOptionalGroupRows:_,removeOptionalGroupRow:(y,A)=>{const L=[...g(y)];if(L.length<=1){_(y,[i(y)]);return}A<0||A>=L.length||(L.splice(A,1),_(y,L))},rootRows:n}}const Qu=[{value:"text",label:"text",icon:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 7h16M4 12h10M4 17h16'/%3E%3C/svg%3E"},{value:"secret",label:"secret",icon:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 10V7a5 5 0 1110 0v3m-9 0h8a2 2 0 012 2v6a2 2 0 01-2 2H8a2 2 0 01-2-2v-6a2 2 0 012-2z'/%3E%3C/svg%3E"}],X8="grid-cols-[minmax(180px,1fr)_140px_minmax(220px,1fr)_56px_28px]",Y8="grid-cols-[minmax(140px,1fr)_minmax(160px,1.2fr)_32px_56px_28px]",Z8={class:"variable-scan-editor space-y-3"},Q8=we({__name:"VariableScanEditor",props:{modelValue:{},declarations:{default:()=>[]},scanned:{default:()=>[]},allowDeclarationEdit:{type:Boolean,default:!1},allowSecretValues:{type:Boolean,default:!0},allowSecretDeclarations:{type:Boolean,default:!0},requireRequiredValues:{type:Boolean,default:!1},showCustomRows:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},thin:{type:Boolean,default:!1},localSourceType:{default:void 0},localSourceName:{default:""}},emits:["update:modelValue","update:declarations"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>n.thin?Y8:X8),o=G=>G==="secret"&&n.allowSecretDeclarations?"secret":"text",s=G=>({name:G.name||"",type:o(G.type),required:!!G.required,description:G.description||""}),i=G=>G.filter(le=>le.name?.trim()).map(le=>({name:le.name.trim(),type:o(le.type),required:!!le.required,description:le.description||""})),d=G=>JSON.stringify(i(G)),p=G=>!!(n.scanned||[]).some(le=>le.property===G),f=R((n.declarations||[]).map(G=>s(G)).filter(G=>{const le=G.name.trim();return le&&p(le)})),m=R(!1);ve(f,G=>{const le=i(G),I=i((n.declarations||[]).map(ye=>s(ye))),O=I.filter(ye=>{const Q=ye.name.trim();return Q&&!p(Q)}),z=[...le,...O];if(m.value){if(m.value=!1,d(z)===d(I))return}else if(d(z)===d(I))return;r("update:declarations",z)},{deep:!0,flush:"sync"}),ve([()=>n.declarations,()=>n.scanned],([G])=>{const le=(G||[]).map(I=>s(I)).filter(I=>{const O=I.name.trim();return O&&p(O)});d(le)!==d(f.value)&&(m.value=!0,f.value=le)},{deep:!0,immediate:!0});const g=x(()=>{const G=new Map;for(const le of n.scanned||[]){const I=Array.isArray(le.optionalBranches)?le.optionalBranches.map(O=>{const z=typeof O?.gate=="string"?O.gate.trim():"",ye=typeof O?.tool=="string"?O.tool.trim():"";return!z||!ye?null:{gate:z,tool:ye,immediate:!!O.immediate,maxInstances:typeof O.maxInstances=="number"&&O.maxInstances>0?O.maxInstances:void 0}}).filter(O=>!!O):[];G.set(le.property,{...le,type:le.type==="secret"?"secret":"text",required:!!le.required,description:le.description||"",optionalOnly:!!le.optionalOnly,optionalBranches:I.length>0?I:void 0})}return G}),v=x(()=>{const G=new Map;for(const le of f.value){const I=le.name?.trim();I&&G.set(I,{...le,name:I,type:o(le.type),required:!!le.required,description:le.description||""})}return G}),_=x(()=>{const G=new Map;for(const[le,I]of g.value.entries())G.set(le,{...I});for(const[le,I]of v.value.entries()){if(!G.has(le)){G.set(le,{property:le,declared:[{type:"prompt",name:"local"}],defined:!1,type:I.type,required:I.required,description:I.description,optionalOnly:!1});continue}const O=G.get(le);O.declared.some(z=>z.type==="prompt"&&z.name==="local")||(O.declared=[...O.declared,{type:"prompt",name:"local"}]),O.required=O.required||I.required,I.type==="secret"&&(O.type="secret"),!O.description&&I.description&&(O.description=I.description)}return Array.from(G.values())}),b=x(()=>new Set(_.value.map(G=>G.property))),C=G=>({name:G.name||"",value:G.value===void 0||G.value===null?"":String(G.value),type:o(G.type),required:!!G.required}),y=G=>G.map(le=>C(le)),A=G=>JSON.stringify(y(G).map(le=>({name:le.name,value:le.value,type:le.type,required:le.required}))),L=G=>JSON.stringify(Object.keys(G).sort((le,I)=>le.localeCompare(I)).map(le=>[le,G[le]===void 0||G[le]===null?"":String(G[le])])),{addOptionalGroupRow:k,clearOptionalGroupValuesInModel:S,getOptionalGroupMaxInstances:T,getOptionalGroupRows:B,groupedOptionalRows:q,isEnabledEnvFlag:H,isOptionalGateEnabled:N,isOptionalInstanceKey:P,persistOptionalGroupRows:U,removeOptionalGroupRow:V,rootRows:Y}=J8({declaredRows:_,scannedMap:g,modelValue:()=>n.modelValue||{},emitModelValue:G=>r("update:modelValue",G),serializeEnvRecord:L}),$=R([]),D=R(null),W=R(!1),E=G=>{const le=Array.isArray(G)?G:[],I=y(le);A(I)!==A($.value)&&($.value=I)},X=G=>{D.value=G},re=G=>{const le=y(G);A(le)!==A($.value)&&($.value=le,D.value&&D.value.input(le))},ne=G=>y(G).map(le=>{const I=le.name.trim();return!I||p(I)?null:{name:I,type:o(le.type),required:!!le.required,description:""}}).filter(le=>!!le);function de(){const G=new Map;for(const[O,z]of Object.entries(n.modelValue||{}))b.value.has(O)||P(O)||z==null||z===""||G.set(O,String(z));const le=new Map;for(const O of i((n.declarations||[]).map(z=>s(z)))){const z=O.name.trim();!z||p(z)||le.set(z,{type:o(O.type),required:!!O.required})}const I=[];for(const O of $.value.map(z=>C(z))){const z=O.name.trim();if(!z){I.push(O);continue}if(!b.value.has(z)){if(le.has(z)){const ye=le.get(z);O.type=ye.type,O.required=ye.required,le.delete(z)}G.has(z)&&(O.value=G.get(z)||"",G.delete(z)),I.push(O)}}for(const[O,z]of le.entries()){const ye=G.get(O)||"";G.delete(O),I.push({name:O,value:ye,type:z.type,required:z.required})}for(const[O,z]of G.entries())I.push({name:O,value:z,type:"text",required:!1});A(I)!==A($.value)&&(W.value=!0,$.value=I)}ve($,G=>{const le=y(G);if(W.value&&(W.value=!1,A(le)===A($.value)))return;if(A(le)!==A($.value)){W.value=!0,$.value=le;return}const I={...n.modelValue};for(const O of Object.keys(I))!b.value.has(O)&&!P(O)&&delete I[O];for(const O of le){const z=O.name.trim();!z||b.value.has(z)||!O.value||(I[z]=O.value)}if(L(I)!==L(n.modelValue||{})&&r("update:modelValue",I),n.allowDeclarationEdit){const O=[...i(f.value),...ne(le)],z=i((n.declarations||[]).map(ye=>s(ye)));d(O)!==d(z)&&r("update:declarations",O)}},{deep:!0,flush:"sync"}),ve([()=>n.modelValue,()=>n.declarations,()=>n.scanned,b],(G,le)=>{const[I,O,z,ye]=G,[Q,Ae,Ne,Ke]=le||[],qe=O!==Ae||z!==Ne||ye!==Ke,ht=(()=>{if(!Q||typeof Q!="object")return!0;const lt=I||{},vt=Q,An=new Set([...Object.keys(lt),...Object.keys(vt)]);for(const Ht of An){const ur=lt[Ht],Gr=vt[Ht],Ut=ur==null?"":String(ur),Pa=Gr==null?"":String(Gr);if(Ut!==Pa&&!(b.value.has(Ht)||P(Ht)))return!0}return!1})();!qe&&!ht||de()},{deep:!0,immediate:!0});const ue=R(new Set),ae=R(new Set),xe=R(new Set),Re=G=>{if(ae.value.has(G))return;const le=new Set(ae.value);le.add(G),ae.value=le},Me=G=>{if(!ae.value.has(G))return!1;const le=new Set(ae.value);return le.delete(G),ae.value=le,!0},Ee=G=>({outer:"$remove:mb-4 group mb-0",wrapper:"$remove:flex-1 flex-1",inner:G?"!bg-zinc-100 dark:!bg-zinc-700/40 !cursor-not-allowed":""}),ke=G=>({outer:"$remove:mb-4 group mb-0",wrapper:"$remove:flex-1 flex-1",inner:[G?.insetRight?"!pr-8":"",G?.requiredHighlight?"!border-amber-400 dark:!border-amber-500":"",G?.disabled?"!bg-zinc-100 dark:!bg-zinc-700/40 !cursor-not-allowed":""].filter(Boolean).join(" ")}),ie=G=>H8(n.modelValue||{},G),se=G=>{const le=n.localSourceName?.trim();return!le||!n.localSourceType||!G.defined||G.defined.type!==n.localSourceType?!1:G.defined.name===le},me=G=>la(G)&&!se(G),pe=G=>{const le=v.value.get(G.property);return le?o(le.type):G.type==="secret"?"secret":"text"},Fe=G=>{const le=v.value.get(G.property);return le?o(le.type):G.type==="secret"?"secret":"text"},fe=G=>n.requireRequiredValues&&G.required&&!la(G)&&!ie(G.property),Te=G=>pe(G)!=="secret"||n.allowSecretValues||oe(G),Z=G=>n.disabled||!Te(G)?!1:!!(ie(G.property)||se(G)||!me(G)||ue.value.has(G.property)),ee=G=>me(G)&&!n.disabled,oe=G=>me(G)&&(ie(G.property)||ue.value.has(G.property)),Oe=G=>pe(G)==="secret"&&!n.allowSecretValues&&!ee(G)&&!oe(G),F=G=>n.allowDeclarationEdit&&v.value.has(G.property)&&!n.disabled,ce=G=>F(G),he=G=>F(G),Pe=G=>ie(G.property)?U8(n.modelValue||{},G.property):se(G)&&G.value!==void 0&&G.value!==null?String(G.value):la(G)&&!ue.value.has(G.property)?K8(G):(la(G)&&ue.value.has(G.property),""),We=G=>G8(G,{locallyDefined:ie(G.property)||se(G),overrideActive:ue.value.has(G.property)}),Ue=(G,le)=>{const I=new Set(xe.value);le?I.add(G):I.delete(G),xe.value=I};ve([()=>n.scanned,()=>n.modelValue,()=>n.localSourceType,()=>n.localSourceName],()=>{const G={...n.modelValue||{}};let le=!1;for(const I of n.scanned||[])se(I)&&(I.value===void 0||I.value===null||ie(I.property)||xe.value.has(I.property)||(G[I.property]=I.value,le=!0));le&&L(G)!==L(n.modelValue||{})&&r("update:modelValue",G)},{deep:!0,immediate:!0});const Se=(G,le)=>{if(!n.allowDeclarationEdit)return;const I=G.trim();if(!I)return;let O=!1;f.value=f.value.map(z=>z.name.trim()!==I?z:(O=!0,{...z,name:I,type:o(le.type??z.type),required:le.required??!!z.required,description:le.description??(z.description||"")})),O||(f.value=[...f.value,{name:I,type:o(le.type??"text"),required:!!le.required,description:le.description||""}])},ge=G=>{const le=G.trim();le&&(f.value=f.value.filter(I=>I.name.trim()!==le))},$e=(G,le)=>{Se(G,{type:o(le)})},_e=(G,le)=>$e(G,le==="secret"?"secret":"text"),De=(G,le)=>{if(!n.allowDeclarationEdit||n.disabled)return;const I=G.trim(),O=le.trim();if(!I||!O||I===O||b.value.has(O))return;let z=!1;if(f.value=f.value.map(Ae=>Ae.name.trim()!==I?Ae:(z=!0,{...Ae,name:O})),!z)return;Ue(I,!0),Ue(O,!1);const ye=_.value.find(Ae=>Ae.property===I),Q={...n.modelValue};Object.prototype.hasOwnProperty.call(Q,I)?(Q[O]=Q[I],delete Q[I]):ye&&se(ye)&&ye.value!==void 0&&ye.value!==null&&(Q[O]=ye.value),L(Q)!==L(n.modelValue||{})&&r("update:modelValue",Q)},Xe=(G,le)=>{Se(G,{required:!!le})},rt=(G,le)=>{if(Me(G))return;const I=_.value.find(z=>z.property===G);if(I&&!Z(I)||I&&!Te(I))return;I&&se(I)&&Ue(G,!le);const O={...n.modelValue};le?O[G]=le:delete O[G],q.value.has(G)&&!H(le)&&S(G,O),L(O)!==L(n.modelValue||{})&&r("update:modelValue",O)},kt=G=>{if(ue.value.has(G))return;const le=new Set(ue.value);le.add(G),ue.value=le},At=G=>{if(n.disabled||!ee(G))return;if(oe(G)){Lt(G.property);return}const le={...n.modelValue};delete le[G.property],r("update:modelValue",le),kt(G.property)},Lt=G=>{Re(G);const le={...n.modelValue};if(delete le[G],r("update:modelValue",le),!ue.value.has(G))return;const I=new Set(ue.value);I.delete(G),ue.value=I},Yt=G=>{const le=_.value.find(I=>I.property===G);le&&se(le)&&Ue(G,!0),ge(G),Lt(G)},on=()=>{re([...$.value,{name:"",value:"",type:"text",required:!1}])},wt=G=>{if(G<0||G>=$.value.length)return;const le=[...$.value];le.splice(G,1),re(le)},jt=(G,le)=>{if(G<0||G>=$.value.length)return;const I=[...$.value];I[G]={...I[G],type:o(le)},re(I)};return(G,le)=>(l(),c("div",Z8,[u("div",{class:J(["variable-editor-header grid gap-2 text-xs font-medium text-neutral-500 dark:text-neutral-400 px-1",[a.value,e.thin?"variable-editor-header--thin":""]])},[...le[0]||(le[0]=[u("span",null,"Name",-1),u("span",null,"Type",-1),u("span",null,"Value",-1),u("span",{class:"self-center text-center"},"Required",-1),u("span",null,null,-1)])],2),(l(!0),c(te,null,Ie(h(Y),I=>(l(),K(V8,{key:I.property,row:I,thin:e.thin,"variable-grid-columns":a.value,"type-options":h(Qu),"allow-secret-declarations":e.allowSecretDeclarations,"allow-secret-values":e.allowSecretValues,"require-required-values":e.requireRequiredValues,disabled:e.disabled,"grouped-optional-rows":h(q),"get-select-classes":Ee,"get-text-classes":ke,"get-row-display-type":Fe,"get-row-storage-type":pe,"get-declared-value":Pe,"get-declared-placeholder":We,"can-edit-declaration-metadata":F,"can-edit-declared-name":ce,"can-edit-declared-value":Z,"can-toggle-value-override":ee,"is-value-override-active":oe,"is-value-inherited":me,"should-show-secret-value-unavailable":Oe,"can-remove-local-declaration":he,"is-missing-required":fe,"is-optional-gate-enabled":h(N),"get-optional-group-max-instances":h(T),"get-optional-group-rows":h(B),onUpdateDeclaredName:De,onUpdateDeclaredType:_e,onUpdateDeclaredValue:rt,onUpdateDeclaredRequired:Xe,onToggleValueOverride:At,onRemoveLocalDeclaration:Yt,onPersistOptionalGroupRows:h(U),onRemoveOptionalGroupRow:h(V),onAddOptionalGroupRow:h(k)},null,8,["row","thin","variable-grid-columns","type-options","allow-secret-declarations","allow-secret-values","require-required-values","disabled","grouped-optional-rows","is-optional-gate-enabled","get-optional-group-max-instances","get-optional-group-rows","onPersistOptionalGroupRows","onRemoveOptionalGroupRow","onAddOptionalGroupRow"]))),128)),j(v8,{"show-custom-rows":e.showCustomRows,"custom-rows":$.value,disabled:e.disabled,"allow-declaration-edit":e.allowDeclarationEdit,"allow-secret-declarations":e.allowSecretDeclarations,"allow-secret-values":e.allowSecretValues,"type-options":h(Qu),thin:e.thin,"variable-grid-columns":a.value,"get-text-classes":ke,"get-select-classes":Ee,onNode:X,onInput:E,onUpdateType:jt,onRemove:wt,onAdd:on},null,8,["show-custom-rows","custom-rows","disabled","allow-declaration-edit","allow-secret-declarations","allow-secret-values","type-options","thin","variable-grid-columns"])]))}}),eM=ot(Q8,[["__scopeId","data-v-57b4e07c"]]),tM=we({__name:"ThreadVariableForm",props:{modelValue:{},scanned:{default:()=>[]},disabled:{type:Boolean,default:!1},requireRequiredValues:{type:Boolean,default:!0},groupName:{default:"env"}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,r=t,a=s=>s&&typeof s=="object"&&!Array.isArray(s)?s:{},o=x({get:()=>a(n.modelValue),set:s=>r("update:modelValue",a(s))});return(s,i)=>{const d=It("FormKit");return l(),K(d,{type:"group",name:e.groupName,modelValue:o.value,"onUpdate:modelValue":i[1]||(i[1]=p=>o.value=p),"outer-class":"$reset",classes:{outer:"$remove:mb-4 mb-0"}},{default:be(()=>[j(eM,{modelValue:o.value,"onUpdate:modelValue":i[0]||(i[0]=p=>o.value=p),scanned:e.scanned,"allow-declaration-edit":!1,"allow-secret-values":!0,"allow-secret-declarations":!0,"require-required-values":e.requireRequiredValues,"show-custom-rows":!1,disabled:e.disabled,thin:""},null,8,["modelValue","scanned","require-required-values","disabled"])]),_:1},8,["name","modelValue"])}}}),nM={class:"create-thread-shell flex h-full min-h-0 flex-col bg-white dark:bg-neutral-950"},rM={key:0,class:"create-thread-inline-header flex h-12 shrink-0 items-center px-5"},aM={key:1,class:"px-5 pt-2 text-sm text-neutral-500 dark:text-neutral-400","aria-live":"polite"},oM={class:"flex flex-1 min-h-0 flex-col"},sM={class:"hidden"},lM={class:"create-thread-scroll flex-1 overflow-y-auto px-5 pb-10 pt-12"},iM={class:"create-thread-card mx-auto w-full max-w-xl space-y-6 rounded-2xl border border-neutral-200 bg-white p-6 shadow-sm dark:border-neutral-800 dark:bg-neutral-900"},uM={key:2},dM={class:"flex items-center justify-between mb-1"},cM={class:"flex items-center gap-1.5 ml-auto"},fM={key:3,class:"space-y-4"},pM={key:4,class:"text-center text-sm text-neutral-500"},hM={key:5,class:"space-y-3"},mM={key:6,class:"text-center text-sm text-neutral-500"},gM={class:"create-thread-inline-actions flex flex-col items-end gap-2"},vM={class:"create-thread-action-buttons flex gap-2"},ed="__optional__",yM=we({__name:"CreateThreadForm",props:{lockedAgentId:{}},emits:["thread-created","cancel"],setup(e,{emit:t}){const n=e,r=t,a=R(""),o=R(!1),s=R(!1),i=R(""),d=R([]),p=R(!1),f=R({}),m=R(null),g=R(n.lockedAgentId?"deciding":"form"),v=ke=>ke&&typeof ke=="object"&&!Array.isArray(ke)?ke:{},_=ke=>ke==null?"":String(ke),b=ke=>_(ke).split(",").map(ie=>ie.trim()).filter(ie=>ie.length>0),C=ke=>{const ie=v(ke),se={};for(const[me,pe]of Object.entries(ie)){if(me.startsWith(ed)||/^(text|checkbox)_\d+$/.test(me))continue;const Fe=_(pe);Fe&&(se[me]=Fe)}for(const[me,pe]of Object.entries(ie)){if(!me.startsWith(ed)||!Array.isArray(pe))continue;let Fe=0;for(const fe of pe){const Te=v(fe);if(Object.values(Te).some(ee=>_(ee).trim().length>0)){for(const[ee,oe]of Object.entries(Te)){if(/^(text|checkbox)_\d+$/.test(ee))continue;const Oe=_(oe),F=Fe===0?ee:`${ee}__${Fe+1}`;if(Fe===0){Oe&&(se[F]=Oe);continue}se[F]=Oe}Fe+=1}}}return se},y=(ke,ie)=>{const se=new Map;for(const pe of ie||[])se.set(pe.property,pe.type==="secret"?"secret":"text");const me={};for(const pe of Object.keys(ke)){const Fe=pe.replace(/__\d+$/,"");me[pe]=se.get(Fe)||"secret"}return me},A=ke=>{const ie=new URL(He(`/api/variables/agents/${encodeURIComponent(ke)}`),window.location.origin);return ie.searchParams.set("include_optional_disabled","1"),ie.toString()},L=()=>({include_subagents:!1,agent_id:n.lockedAgentId||"",tags_csv:"",data:{},env:{}}),k=ke=>{m.value=ke},S=ke=>{const ie=v(ke),se=_(ie.agent_id),me=!!ie.include_subagents;return a.value!==se&&(a.value=se),o.value!==me&&(o.value=me),""},T=wa(),{items:B,initialLoading:q,error:H,ensureLoaded:N}=T,P=x(()=>o.value?B.value:B.value.filter(ke=>js(ke))),U=x(()=>Th({known:vl(T),total:B.value.length,selectable:P.value.length,includeSubagents:o.value})),V=()=>P.value.map(ke=>({value:ke.id,label:ke.title})),Y=x(()=>a.value&&B.value.find(ke=>ke.id===a.value)||null),{data:$,isFetching:D,execute:W}=uo(x(()=>Y.value?.side_a_agent_prompt?He(`/api/prompts/${encodeURIComponent(Y.value.side_a_agent_prompt)}`):""),{immediate:!1}).json(),E=x(()=>{if(!$.value)return null;const ie=($.value.prompt||$.value).required_schema;if(!ie)return null;try{return typeof ie=="string"?JSON.parse(ie):ie}catch{return null}}),X=x(()=>{const ke=E.value;return!ke||!ke.properties?[]:Object.entries(ke.properties).map(([ie,se])=>({name:ie,type:Array.isArray(se.type)?se.type[0]||"string":se.type||"string",description:typeof se.description=="string"?se.description:"",required:ke.required?.includes(ie)||!1,enum:se.enum,enumOptions:se.enum?a8(se.enum):void 0}))}),re=x(()=>d.value.length>0),ne=async ke=>{if(!ke){d.value=[];return}p.value=!0;try{const ie=await Be.request(A(ke)),se=await Be.readJson(ie);d.value=se.variables||[]}catch{d.value=[]}finally{p.value=!1}};async function de(ke){f.value={},ke&&Y.value?.side_a_agent_prompt?await W():$.value=null,ke?await ne(ke):d.value=[]}ve(a,de),ve([o,P],()=>{n.lockedAgentId||!a.value||P.value.some(ie=>ie.id===a.value)||(a.value="",m.value?.at("agent_id")?.input(""))});const ue=()=>{a.value=n.lockedAgentId||"",o.value=!1,i.value="",f.value={},Bt(m),d.value=[],$.value=null,m.value?.reset(L())};async function ae(ke){const ie=await Be.request(He("/api/threads"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ke)}),se=await Be.readJson(ie);if(!se.threadId)throw new Error("Thread created but ID not found in response");return se.threadId}const xe=async ke=>{s.value=!0,i.value="",Bt(m);const ie=v(ke),se=b(ie.tags_csv);try{const me={agent_id:_(ie.agent_id),tags:se.length>0?se:void 0},pe=o8(v(ie.data),X.value);Object.keys(pe).length>0&&(me.data=pe);const Fe=C(ie.env);Object.keys(Fe).length>0&&(me.env=Fe,me.env_types=y(Fe,d.value));const fe=await ae(me);r("thread-created",fe),ue()}catch(me){const pe=Ve(me)||"Failed to create thread";El(me instanceof Ds?me.body:{error:pe},m)||(i.value=pe)}finally{s.value=!1}},Re=()=>{ue(),r("cancel")};async function Me(){n.lockedAgentId&&(o.value=!0),await N(),n.lockedAgentId&&(a.value=n.lockedAgentId,await Qe(),m.value?.at("agent_id")?.input(n.lockedAgentId),await de(n.lockedAgentId),await Ee(n.lockedAgentId))}async function Ee(ke){if(X.value.length>0||re.value||H.value){g.value="form";return}g.value="creating";try{const se=await ae({agent_id:ke});r("thread-created",se)}catch(se){i.value=Ve(se)||"Failed to create thread",g.value="form"}}return Me(),(ke,ie)=>{const se=It("FormKit");return l(),c("div",nM,[j(h(im),{config:h(r8)},{default:be(()=>[g.value!=="form"?(l(),c("div",rM,[...ie[1]||(ie[1]=[u("h3",{class:"text-base font-medium text-neutral-900 dark:text-neutral-100"}," New thread ",-1)])])):M("",!0),g.value!=="form"?(l(),c("div",aM,w(g.value==="creating"?"Creating thread…":"Loading agent requirements…"),1)):M("",!0),$t(u("div",oM,[j(se,{type:"form",id:"create-thread-form",actions:!1,onSubmit:xe,onNode:k,"form-class":"$reset flex-1 min-h-0 flex flex-col"},{default:be(({value:me})=>[u("span",sM,w(S(me)),1),u("div",lM,[u("div",iM,[ie[9]||(ie[9]=u("h3",{class:"text-base font-semibold text-neutral-900 dark:text-neutral-100"},"New thread",-1)),i.value||h(H)?(l(),K(h(Ct),{key:0,variant:"error"},{default:be(()=>[Ce(w(h(Ve)(i.value||h(H))),1)]),_:1})):M("",!0),e.lockedAgentId?(l(),K(se,{key:1,type:"hidden",name:"agent_id",value:e.lockedAgentId},null,8,["value"])):(l(),c("div",uM,[u("div",dM,[ie[3]||(ie[3]=u("label",{class:"block text-sm font-medium text-neutral-800 dark:text-neutral-200"}," Agent ",-1)),u("div",cM,[ie[2]||(ie[2]=u("span",{class:"text-xs text-neutral-500 dark:text-neutral-400"}," Include subagents ",-1)),j(se,{type:"toggle",name:"include_subagents",value:!1,"on-value":!0,"off-value":!1,"on-value-label":"","off-value-label":"",disabled:h(q),classes:{outer:"$remove:mb-4 mb-0",wrapper:"$remove:items-center flex items-center",label:"$remove:hidden",inner:"h-4",track:"h-4 w-7 rounded-full",thumb:"h-3 w-3",valueLabel:"$remove:hidden"}},null,8,["disabled"])])]),j(se,{type:"selectSearch",name:"agent_id",value:a.value,options:V,disabled:h(q),placeholder:"Select an agent",validation:"required","validation-visibility":"submit"},null,8,["value","disabled"]),j(h(os),{class:"mt-1"},{default:be(()=>[Ce(w(U.value.text),1)]),_:1})])),X.value.length>0&&!h(D)?(l(),c("div",fM,[ie[4]||(ie[4]=u("h4",{class:"text-sm font-medium text-neutral-800 dark:text-neutral-200"}," Required information ",-1)),j(se,{type:"group",name:"data","outer-class":"$reset",classes:{outer:"$remove:mb-4 mb-0"}},{default:be(()=>[(l(!0),c(te,null,Ie(X.value,pe=>(l(),c("div",{key:pe.name,class:"space-y-2"},[pe.enum?(l(),K(se,{key:0,type:"selectSearch",name:pe.name,label:pe.name,options:[{value:"",label:"Select..."},...pe.enumOptions||[]],validation:pe.required?"required":"","validation-visibility":"submit"},null,8,["name","label","options","validation"])):pe.type==="string"?(l(),K(se,{key:1,type:"text",name:pe.name,label:pe.name,placeholder:pe.description,validation:pe.required?"required":"","validation-visibility":"submit"},null,8,["name","label","placeholder","validation"])):pe.type==="number"||pe.type==="integer"?(l(),K(se,{key:2,type:"number",name:pe.name,label:pe.name,placeholder:pe.description,validation:pe.required?"required":"","validation-visibility":"submit"},null,8,["name","label","placeholder","validation"])):pe.type==="boolean"?(l(),K(se,{key:3,type:"checkbox",name:pe.name,label:pe.name,validation:pe.required?"required":"","validation-visibility":"submit"},null,8,["name","label","validation"])):(l(),K(se,{key:4,type:"textarea",name:pe.name,label:pe.name,placeholder:pe.description||`Enter ${pe.name} (JSON format)`,validation:pe.required?"required":"","validation-visibility":"submit",rows:3},null,8,["name","label","placeholder","validation"])),pe.description?(l(),K(h(os),{key:5,class:"mt-1"},{default:be(()=>[Ce(w(pe.description),1)]),_:2},1024)):M("",!0)]))),128))]),_:1})])):M("",!0),h(D)?(l(),c("div",pM," Loading agent requirements… ")):M("",!0),re.value?(l(),c("div",hM,[ie[5]||(ie[5]=u("div",{class:"space-y-1"},[u("h4",{class:"text-sm font-medium text-neutral-800 dark:text-neutral-200"}," Variables "),u("p",{class:"text-xs text-neutral-500 dark:text-neutral-400"}," The thread can start once every required variable has a value. ")],-1)),j(tM,{modelValue:f.value,"onUpdate:modelValue":ie[0]||(ie[0]=pe=>f.value=pe),"group-name":"env",scanned:d.value,disabled:s.value,"require-required-values":!0},null,8,["modelValue","scanned","disabled"])])):M("",!0),p.value?(l(),c("div",mM," Scanning environment variables… ")):M("",!0),u("div",null,[j(se,{type:"text",name:"tags_csv",value:"",label:"Tags",placeholder:"research, urgent, production"}),j(h(os),{class:"mt-1"},{default:be(()=>[...ie[6]||(ie[6]=[Ce(" Separate tags with commas. ",-1)])]),_:1})]),u("div",gM,[j(h(Sa),{node:m.value||void 0},null,8,["node"]),u("div",vM,[j(h(Tn),{variant:"ghost",size:"sm",disabled:s.value,onClick:Re},{default:be(()=>[...ie[7]||(ie[7]=[Ce(" Cancel ",-1)])]),_:1},8,["disabled"]),j(h(Tn),{variant:"primary",size:"sm",disabled:s.value||h(q),loading:s.value,type:"submit",form:"create-thread-form"},{default:be(()=>[...ie[8]||(ie[8]=[Ce(" Create thread ",-1)])]),_:1},8,["disabled","loading"])])])])])]),_:1})],512),[[zt,g.value==="form"]])]),_:1},8,["config"])])}}}),bM=ot(yM,[["__scopeId","data-v-5c972579"]]),xM=["accept"],kM=["disabled"],wM=we({__name:"FileUpload",props:{isProcessing:{type:Boolean},accept:{},buttonClass:{}},emits:["filesSelected"],setup(e,{expose:t,emit:n}){const r=e,a=n,o=R(null),s=x(()=>r.accept||"image/*,.pdf,.txt,.md,.json,.csv");function i(){o.value?.click()}function d(f){const m=f.target;m.files&&m.files.length>0&&(a("filesSelected",m.files),m.value="")}function p(f){const m=f.clipboardData?.items;if(!m)return;const g=[];for(let v=0;v<m.length;v++){const _=m[v];if(_.kind==="file"){const b=_.getAsFile();b&&g.push(b)}}if(g.length>0){const v=new DataTransfer;g.forEach(_=>v.items.add(_)),a("filesSelected",v.files)}}return t({handlePaste:p}),(f,m)=>(l(),c(te,null,[u("input",{ref_key:"fileInputRef",ref:o,type:"file",accept:s.value,multiple:"",class:"hidden",onChange:d},null,40,xM),u("button",{type:"button",onClick:i,class:J(["p-1.5 hover:bg-neutral-100 dark:hover:bg-neutral-800 rounded-lg transition-colors text-neutral-500 hover:text-neutral-700 dark:hover:text-neutral-300",[e.buttonClass,{"opacity-50 cursor-not-allowed":e.isProcessing}]]),disabled:e.isProcessing,title:"Attach files","aria-label":"Attach files"},[j(h(um),{size:18})],10,kM)],64))}}),_M={class:"absolute bottom-0 left-6 right-6 z-20 pb-4 pt-8 min-w-0 overflow-hidden bg-gradient-to-t from-white via-white/95 to-white/0 dark:from-neutral-900 dark:via-neutral-900/95 dark:to-neutral-900/0"},$M={key:0,class:"mb-2 rounded-md border border-red-200 bg-red-50 px-3 py-2 text-xs text-red-700 dark:border-red-900/60 dark:bg-red-950/30 dark:text-red-300"},IM={key:1,class:"mb-2 flex flex-wrap gap-2"},SM={key:0,class:"w-16 h-16 rounded-lg overflow-hidden border border-neutral-200 dark:border-neutral-700 bg-neutral-100 dark:bg-neutral-800"},CM=["src","alt"],TM={key:1,class:"w-full h-full flex items-center justify-center"},MM={key:1,class:"h-16 px-3 rounded-lg border border-neutral-200 dark:border-neutral-700 bg-neutral-100 dark:bg-neutral-800 flex items-center gap-2"},AM=["title"],LM=["onClick"],RM=["title","aria-label"],EM=["src"],PM=["disabled","placeholder"],NM=["disabled"],OM={key:0,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",class:"w-4 h-4"},DM={key:1,class:"w-4 h-4"},BM=we({__name:"MessageComposer",props:{attachments:{},assistantAvatarSrc:{},assistantAvatarSeed:{},userAvatarSrc:{},sideALabel:{},sideBLabel:{},isExecuting:{type:Boolean},isProcessingFiles:{type:Boolean},sendMessage:{type:Function},stopThread:{type:Function},addFiles:{type:Function},removeAttachment:{type:Function}},emits:["sent"],setup(e,{expose:t,emit:n}){const r=e,a=n,o=R(null),s=R(null),i=R(""),d=R("B"),p=R(!1),f=R(!1),m=R(null),g=x(()=>r.attachments.length>0),v=x(()=>d.value==="A"?r.sideALabel:r.sideBLabel),_=x(()=>`Message from ${v.value}`),b=(S=s.value)=>{if(!S){p.value=!1;return}const T=S.style.minHeight;S.style.minHeight="0px",S.style.height="auto";const B=S.scrollHeight,q=Math.min(B,160);S.style.height=`${q}px`,S.style.minHeight=T,p.value=B>52||i.value.includes(`
|
|
50
|
-
`)},C=S=>{b(S.target instanceof HTMLTextAreaElement?S.target:void 0)};ve(i,async()=>{await Qe(),b()});const y=async()=>{d.value=d.value==="A"?"B":"A",await Qe(),s.value?.focus()},A=async()=>{if(!(i.value.trim().length>0)&&!g.value||f.value)return;m.value=null;const T=i.value,B=d.value==="A"?"assistant":"user";i.value="",p.value=!1,await Qe(),b(),f.value=!0;try{await r.sendMessage({role:B,content:T}),a("sent")}catch{m.value="Message could not be sent. Please try again."}finally{f.value=!1,await Qe(),s.value?.focus()}},L=S=>{S.key==="Enter"&&!S.shiftKey&&(S.preventDefault(),A())},k=async()=>{try{m.value=null,await r.stopThread()}catch{m.value="Thread execution could not be stopped. Please try again."}};return t({focusInput:async()=>{await Qe(),s.value?.focus()}}),(S,T)=>(l(),c("div",_M,[m.value?(l(),c("div",$M,w(h(Ve)(m.value)),1)):M("",!0),e.attachments.length>0?(l(),c("div",IM,[(l(!0),c(te,null,Ie(e.attachments,B=>(l(),c("div",{key:B.id,class:"relative group"},[B.isImage?(l(),c("div",SM,[B.previewUrl?(l(),c("img",{key:0,src:B.previewUrl,alt:B.name,class:"w-full h-full object-cover"},null,8,CM)):(l(),c("div",TM,[...T[2]||(T[2]=[u("div",{class:"w-4 h-4 border-2 border-neutral-300 border-t-neutral-600 rounded-full animate-spin"},null,-1)])]))])):(l(),c("div",MM,[u("span",{class:"text-xs text-neutral-600 dark:text-neutral-300 max-w-[80px] truncate",title:B.name},w(B.name),9,AM)])),u("button",{onClick:Je(q=>e.removeAttachment(B.id),["stop"]),type:"button",class:"absolute -top-1 -right-1 w-4 h-4 rounded-full bg-neutral-600 dark:bg-neutral-500 text-white flex items-center justify-center opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity hover:bg-red-500","aria-label":"Remove attachment",title:"Remove attachment"},[j(h(cn),{size:10,"stroke-width":2.5})],8,LM)]))),128))])):M("",!0),u("div",{class:J(["composer-column max-w-3xl rounded-[28px] border border-neutral-200 bg-white/95 p-2 backdrop-blur transition-[border-radius] dark:border-neutral-700 dark:bg-neutral-900/95",p.value?"grid grid-cols-[auto_auto_1fr_auto] grid-rows-[auto_auto] gap-x-2 gap-y-2":"flex items-end gap-2"])},[u("button",{onClick:y,type:"button",class:J(["sender-avatar-switch relative h-8 w-9 shrink-0 self-center",p.value?"col-start-1 row-start-2":""]),title:`Sending as ${v.value}. Click to switch.`,"aria-label":`Sending as ${v.value}. Click to switch.`},[j(Mn,{icon:e.assistantAvatarSrc,seed:e.assistantAvatarSeed??e.sideALabel,class:J(["sender-avatar rounded-lg border-2 border-white bg-white object-cover shadow-sm ring-1 ring-black/10 dark:border-neutral-900 dark:bg-neutral-900 dark:ring-white/15",d.value==="A"?"sender-avatar--front":"sender-avatar--back"])},null,8,["icon","seed","class"]),u("img",{src:e.userAvatarSrc,alt:"",class:J(["sender-avatar rounded-lg border-2 border-white bg-white object-cover shadow-sm ring-1 ring-black/10 dark:border-neutral-900 dark:bg-neutral-900 dark:ring-white/15",d.value==="B"?"sender-avatar--front":"sender-avatar--back"])},null,10,EM)],10,RM),u("div",{class:J(p.value?"col-start-2 row-start-2 self-center":"")},[j(wM,{ref_key:"fileUploadRef",ref:o,"is-processing":!1,"button-class":p.value?"":"-translate-y-[0.1875rem]",onFilesSelected:e.addFiles},null,8,["button-class","onFilesSelected"])],2),$t(u("textarea",{ref_key:"messageTextarea",ref:s,"onUpdate:modelValue":T[0]||(T[0]=B=>i.value=B),onKeydown:L,onPaste:T[1]||(T[1]=B=>o.value?.handlePaste(B)),disabled:f.value,placeholder:_.value,rows:"1",class:J(["resize-none bg-transparent text-[15px] leading-6 text-black focus:outline-none disabled:opacity-50 dark:text-white",p.value?"col-span-4 row-start-1 min-h-24 w-full px-3 py-3":"min-h-9 flex-1 px-1 py-1.5"]),style:{"max-height":"160px"},onInput:C},null,42,PM),[[fo,i.value]]),e.isExecuting?(l(),c("button",{key:1,id:"stop-thread-button",onClick:k,class:J(["h-9 w-9 shrink-0 rounded-full flex items-center justify-center transition-colors bg-red-600 text-white dark:bg-red-500 hover:bg-red-700 dark:hover:bg-red-600",p.value?"col-start-4 row-start-2 justify-self-end":""]),title:"Stop execution"},[...T[4]||(T[4]=[u("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",class:"w-4 h-4"},[u("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5.25 7.5A2.25 2.25 0 017.5 5.25h9a2.25 2.25 0 012.25 2.25v9a2.25 2.25 0 01-2.25 2.25h-9a2.25 2.25 0 01-2.25-2.25v-9z"})],-1)])],2)):(l(),c("button",{key:0,id:"send-message-button",onClick:A,disabled:!i.value.trim()&&!g.value||f.value||e.isProcessingFiles,class:J(["h-9 w-9 shrink-0 rounded-full flex items-center justify-center transition-colors",[p.value?"col-start-4 row-start-2 justify-self-end":"",{"bg-accent-600 text-white hover:bg-accent-700 dark:bg-accent-500 dark:hover:bg-accent-400":(i.value.trim()||g.value)&&!f.value&&!e.isProcessingFiles,"bg-neutral-200 text-neutral-400 dark:bg-neutral-700 dark:text-neutral-600":!i.value.trim()&&!g.value||f.value||e.isProcessingFiles}]]),title:"Send message (Enter)"},[f.value?(l(),c("div",DM,[j(et)])):(l(),c("svg",OM,[...T[3]||(T[3]=[u("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4.5 10.5 12 3m0 0 7.5 7.5M12 3v18"},null,-1)])]))],10,NM))],2)]))}}),FM=ot(BM,[["__scopeId","data-v-9b1b181d"]]);function jM(e){return typeof document>"u"||typeof getComputedStyle!="function"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()}const qM={class:"flex-1 min-h-0 flex flex-col overflow-hidden relative"},zM={key:0,class:"text-neutral-500 dark:text-neutral-400 text-center py-8"},VM={key:1,class:"flex justify-center py-8"},HM={key:2,class:"text-red-600 dark:text-red-400 text-center py-8"},UM={key:0,class:"text-neutral-500 dark:text-neutral-400 text-center py-8"},KM={key:0,class:"p-3 bg-white dark:bg-neutral-900 border-t border-neutral-300 dark:border-neutral-700"},WM={key:0,class:"mb-2 rounded-md border border-red-200 bg-red-50 px-3 py-2 text-xs text-red-700 dark:border-red-900/60 dark:bg-red-950/30 dark:text-red-300"},GM={class:"flex items-center justify-end gap-2"},JM=["disabled"],XM=we({__name:"MessagesPane",props:Sn({threadId:{},selectedMessageId:{},selectedLogId:{},selectedEffectId:{},hoveredLogId:{},createThreadDraft:{type:Boolean},cost:{},transcriptMargin:{},lockedAgentId:{}},{editMode:{type:Boolean,default:!1},editModeModifiers:{}}),emits:Sn(["messageClick","messageHover","messageCountChanged","logsDeleted","cancelCreateThread","threadCreated","filesChanged","openTurnLogs","openSubagent"],["update:editMode"]),setup(e,{expose:t,emit:n}){const r=e,a=n,o=Pr(e,"editMode"),s=R(new Set),i=R(new Map);ve(o,fe=>{fe||(s.value=new Set,i.value=new Map)});const d=(fe,Te)=>{const Z=new Set(s.value);Te?Z.add(fe):Z.delete(fe),s.value=Z},p=(fe,Te)=>{const Z=new Map(i.value);Z.set(fe,Te),i.value=Z},f=()=>{o.value=!1,s.value=new Set,i.value=new Map},m=x(()=>s.value.size),g=x(()=>{let fe=0;for(const[Te]of i.value)s.value.has(Te)||fe++;return fe}),v=x(()=>{const fe=m.value,Te=g.value;return fe>0&&Te>0?`Delete (${fe}), Update (${Te})`:fe>0?`Delete (${fe})`:Te>0?`Save changes (${Te})`:"Delete"}),_=x(()=>m.value>0||g.value>0),b=async()=>{if(!r.threadId||!_.value)return;ae.value=null;const fe=[];for(const Te of s.value){const Z=C.value.find(ee=>ee.id===Te);Z&&"log_id"in Z&&Z.log_id&&fe.push(Z.log_id)}try{for(const[Te,Z]of i.value)s.value.has(Te)||await q(Te,Z);for(const Te of s.value)await B(Te);fe.length>0&&a("logsDeleted",fe)}catch{ae.value="Message changes could not be applied. Please try again."}finally{f()}},{messages:C,threadInfo:y,isFetching:A,error:L,wsConnected:k,wsError:S,isExecuting:T,deleteMessageById:B,updateMessageContent:q,stopThread:H,sendMessage:N,attachments:P,addAttachment:U,removeAttachment:V}=IC(x(()=>r.threadId)),{thread:Y}=Oo(x(()=>r.threadId)),{theme:$}=Mh();ve(()=>C.value.length,fe=>a("messageCountChanged",fe),{immediate:!0});const D=x(()=>{const fe=[];for(const Te of C.value){const Z=Te,ee=Z.attachments||[];for(const oe of ee)oe.path&&fe.push(oe.path);if(typeof Z.content=="string")for(const oe of Z.content.matchAll(/\/attachments\/[^\s"'`),]+/g))fe.push(oe[0])}for(const Te of P.value)Te.path&&fe.push(Te.path);return fe.sort().join(`
|
|
51
|
-
`)});ve(D,(fe,Te)=>{fe&&fe!==Te&&a("filesChanged")});const W=x(()=>!1),E=fe=>{U(fe)},X=R(null),re=R(null),ne=R(null);t({scrollToLogId:fe=>re.value&&X.value?re.value.scrollToLogId(fe,X.value):!1,hasWorkblockForLogId:fe=>re.value?re.value.hasWorkblockForLogId(fe):!1,messageCount:x(()=>C.value.length),focusComposer:()=>ne.value?.focusInput()});const ae=R(null),xe=async()=>{await Qe(),X.value&&(X.value.scrollTop=X.value.scrollHeight)};ve(()=>C.value.length,async()=>{await xe()}),ve(()=>r.threadId,async fe=>{fe&&await xe()}),ve(()=>C.value.length,(fe,Te)=>{Te!==void 0&&r.cost?.scheduleRefresh()}),ve(A,async(fe,Te)=>{Te&&!fe&&await xe()});const Re=fe=>{const Te=y.value?.agent||Y.value?.agent;return Lh(fe==="A"?"a":"b",Te)},Me=x(()=>Re("A")),Ee=x(()=>Re("B")),ke=()=>{const fe=y.value?.agent||Y.value?.agent;return fe?typeof fe.id=="string"?fe.id:typeof fe.name=="string"?fe.name:r.threadId||"thread":r.threadId||"thread"},ie=x(()=>{const fe=y.value?.agent||Y.value?.agent;if(!fe)return null;const Te=typeof fe.icon=="string"?fe.icon:"",Z=typeof fe.id=="string"?fe.id:typeof fe.name=="string"?fe.name:"";return Te||(Z?Fs(Z):null)}),se=(fe,Te)=>jM(fe)||Te,me=x(()=>{const fe=y.value?.agent||Y.value?.agent;return typeof fe?.side_b_agent_prompt=="string"&&fe.side_b_agent_prompt.length>0?ie.value??Fs(`${ke()}:side-b:${Re("B")}`):($.value,Ah({bg:se("--accent-100","#f5f5f5"),fg:se("--accent-600","#737373"),border:se("--accent-300","#d4d4d4")}))}),pe=async fe=>{if(!r.threadId||!N)throw new Error("Thread is not ready for messages");await N(fe),await xe()},Fe=async()=>{r.threadId&&H&&await H()};return(fe,Te)=>(l(),c("div",{class:"flex flex-col h-full min-w-0 overflow-hidden",style:nt(e.transcriptMargin?{"--transcript-offset":e.transcriptMargin}:void 0)},[gt(fe.$slots,"header",{wsConnected:h(k),wsError:h(S)},void 0,!0),u("div",qM,[u("div",{ref_key:"messagesContainer",ref:X,class:J(["flex-1 min-h-0 overflow-y-auto overflow-x-hidden space-y-4",e.createThreadDraft?"":"review-transcript px-6 pt-8 pb-40"])},[e.createThreadDraft?(l(),K(bM,{key:0,"locked-agent-id":e.lockedAgentId,onCancel:Te[0]||(Te[0]=Z=>a("cancelCreateThread")),onThreadCreated:Te[1]||(Te[1]=Z=>a("threadCreated",Z))},null,8,["locked-agent-id"])):(l(),c(te,{key:1},[e.threadId?h(A)?(l(),c("div",VM,[j(et)])):h(L)?(l(),c("div",HM," Error loading messages: "+w(h(Ve)(h(L))),1)):(l(),c(te,{key:3},[e.threadId&&h(C).length===0?(l(),c("div",UM," No messages yet ")):(l(),K(WT,{key:1,ref_key:"agentMessagesRef",ref:re,messages:h(C),threadId:e.threadId,selectedMessageId:e.selectedMessageId,selectedLogId:e.selectedLogId,selectedEffectId:e.selectedEffectId,hoveredLogId:e.hoveredLogId,isEditMode:o.value,selectedForDelete:s.value,editedMessages:i.value,assistantAvatarSrc:ie.value,userAvatarSrc:me.value,onMessageClick:Te[2]||(Te[2]=(Z,ee,oe)=>a("messageClick",Z,ee,oe)),onMessageHover:Te[3]||(Te[3]=Z=>a("messageHover",Z)),onSelectionChange:d,onMessageEdit:p,onOpenTurnLogs:Te[4]||(Te[4]=(Z,ee)=>a("openTurnLogs",Z,ee)),onOpenSubagent:Te[5]||(Te[5]=Z=>a("openSubagent",Z))},null,8,["messages","threadId","selectedMessageId","selectedLogId","selectedEffectId","hoveredLogId","isEditMode","selectedForDelete","editedMessages","assistantAvatarSrc","userAvatarSrc"]))],64)):(l(),c("div",zM," Select a thread to view messages "))],64))],2),e.threadId&&o.value?(l(),c("div",KM,[ae.value?(l(),c("div",WM,w(h(Ve)(ae.value)),1)):M("",!0),u("div",GM,[u("button",{onClick:f,class:"px-4 py-2 rounded-lg font-medium text-sm transition-colors bg-neutral-200 text-black hover:bg-neutral-300 dark:bg-neutral-700 dark:text-white dark:hover:bg-neutral-600"}," Cancel "),u("button",{onClick:b,disabled:!_.value,class:J(["px-4 py-2 rounded-lg font-medium text-sm transition-colors",{"bg-red-600 text-white hover:bg-red-700":_.value&&m.value>0,"bg-black text-white hover:bg-neutral-800 dark:bg-white dark:text-black dark:hover:bg-neutral-200":_.value&&m.value===0,"bg-neutral-200 text-neutral-400 dark:bg-neutral-700 dark:text-neutral-500 cursor-not-allowed":!_.value}])},w(v.value),11,JM)])])):e.threadId?(l(),K(FM,{key:1,ref_key:"messageComposerRef",ref:ne,attachments:h(P),"assistant-avatar-src":ie.value,"assistant-avatar-seed":ke(),"user-avatar-src":me.value,"side-a-label":Me.value,"side-b-label":Ee.value,"is-executing":h(T),"is-processing-files":W.value,"send-message":pe,"stop-thread":Fe,"add-files":E,"remove-attachment":h(V),onSent:xe},null,8,["attachments","assistant-avatar-src","assistant-avatar-seed","user-avatar-src","side-a-label","side-b-label","is-executing","is-processing-files","remove-attachment"])):M("",!0)])],4))}}),td=ot(XM,[["__scopeId","data-v-8e50acab"]]);function nd(e){return!!e&&typeof e=="object"}function yt(e){return typeof e=="string"?e:null}function bt(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function YM(e){return typeof e!="string"?null:/^(?:platform-router|runtime|(?:provider|tool|hook):[A-Za-z0-9._/@-]+)$/.test(e)?e:null}function Ge(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Cp(e){if(!nd(e))return null;const t=e.type,n=e.log_id;return typeof n!="string"||n.length===0?null:t==="log_queued_tools"?typeof e.queued_tools=="string"?{type:t,log_id:n,queued_tools:e.queued_tools}:null:t==="log_data"&&nd(e.data)?{type:t,log_id:n,data:eA(e.data)}:null}const ZM=["app_level","app_message","app_data","app_status","app_request","app_response","app_error","app_trigger"],QM=["side","stop_code","definition_hash","hook_runs","run_id","trigger_kind","endpoint_name","trigger_source_id","trigger_thread_id","trigger_log_id","trigger_action_id","action_id","parent_action_id","effect_run_id","tool_results"];function eA(e){const t={};if(Ge(e,"message_id")){const n=yt(e.message_id);(n!==null||e.message_id===null)&&(t.message_id=n)}if(Ge(e,"provider")){const n=yt(e.provider);n!==null&&(t.provider=n)}if(Ge(e,"actual_provider")&&(t.actual_provider=yt(e.actual_provider)),Ge(e,"standard_agents_router_used")&&typeof e.standard_agents_router_used=="boolean"&&(t.standard_agents_router_used=e.standard_agents_router_used),Ge(e,"model")){const n=yt(e.model);n!==null&&(t.model=n)}Ge(e,"model_name")&&(t.model_name=yt(e.model_name)),Ge(e,"prompt_name")&&(t.prompt_name=yt(e.prompt_name)),Ge(e,"tools_called")&&(t.tools_called=yt(e.tools_called)),Ge(e,"queued_tools")&&(t.queued_tools=yt(e.queued_tools)),Ge(e,"provider_tools")&&(t.provider_tools=yt(e.provider_tools)),Ge(e,"parent_log_id")&&(t.parent_log_id=yt(e.parent_log_id)),Ge(e,"retry_of_log_id")&&(t.retry_of_log_id=yt(e.retry_of_log_id)),Ge(e,"error")&&(t.error=yt(e.error)),Ge(e,"error_origin")&&(t.error_origin=YM(e.error_origin)),Ge(e,"cost_total")&&(t.cost_total=bt(e.cost_total)),Ge(e,"router_request_id")&&(t.router_request_id=yt(e.router_request_id)),Ge(e,"router_client_request_id")&&(t.router_client_request_id=yt(e.router_client_request_id)),Ge(e,"cost_provider")&&(t.cost_provider=bt(e.cost_provider)),Ge(e,"cost_source")&&(t.cost_source=e.cost_source==="router"||e.cost_source==="estimated"?e.cost_source:null),Ge(e,"cost_status")&&(t.cost_status=e.cost_status==="pending"||e.cost_status==="final"?e.cost_status:null),Ge(e,"cost_router_fee")&&(t.cost_router_fee=bt(e.cost_router_fee)),Ge(e,"router_fee_percent")&&(t.router_fee_percent=bt(e.router_fee_percent)),Ge(e,"input_tokens")&&(t.input_tokens=bt(e.input_tokens)),Ge(e,"cached_tokens")&&(t.cached_tokens=bt(e.cached_tokens)),Ge(e,"output_tokens")&&(t.output_tokens=bt(e.output_tokens)),Ge(e,"reasoning_tokens")&&(t.reasoning_tokens=bt(e.reasoning_tokens)),Ge(e,"total_tokens")&&(t.total_tokens=bt(e.total_tokens)),Ge(e,"latency_ms")&&(t.latency_ms=bt(e.latency_ms)),Ge(e,"time_to_first_token_ms")&&(t.time_to_first_token_ms=bt(e.time_to_first_token_ms)),Ge(e,"generation_ms")&&(t.generation_ms=bt(e.generation_ms)),Ge(e,"finish_reason")&&(t.finish_reason=yt(e.finish_reason)),Ge(e,"error_type")&&(t.error_type=yt(e.error_type)),Ge(e,"cost_input")&&(t.cost_input=bt(e.cost_input)),Ge(e,"cost_cached")&&(t.cost_cached=bt(e.cost_cached)),Ge(e,"cost_output")&&(t.cost_output=bt(e.cost_output)),Ge(e,"kind")&&(t.kind=yt(e.kind));for(const n of ZM)Ge(e,n)&&(t[n]=yt(e[n]));Ge(e,"app_duration_ms")&&(t.app_duration_ms=bt(e.app_duration_ms));for(const n of QM)Ge(e,n)&&(t[n]=yt(e[n]));if(Ge(e,"turn")&&(t.turn=bt(e.turn)),Ge(e,"session")&&(t.session=bt(e.session)),Ge(e,"action_sequence")&&(t.action_sequence=bt(e.action_sequence)),Ge(e,"app_cost")&&(t.app_cost=bt(e.app_cost)),Ge(e,"content")&&(t.content=yt(e.content)),Ge(e,"reasoning_content")&&(t.reasoning_content=yt(e.reasoning_content)),Ge(e,"is_complete")&&typeof e.is_complete=="boolean"&&(t.is_complete=e.is_complete),Ge(e,"created_at")){const n=bt(e.created_at);n!==null&&(t.created_at=n)}return t}function tA(e,t){return{id:e,message_id:t.message_id??null,provider:t.provider??"",actual_provider:t.actual_provider??null,standard_agents_router_used:t.standard_agents_router_used??!1,model:t.model??"",model_name:t.model_name??null,prompt_name:t.prompt_name??null,tools_called:t.tools_called??null,queued_tools:t.queued_tools??null,provider_tools:t.provider_tools??null,parent_log_id:t.parent_log_id??null,retry_of_log_id:t.retry_of_log_id??null,error:t.error??null,error_origin:t.error_origin??null,cost_total:t.cost_total??null,is_complete:t.is_complete??!1,created_at:t.created_at??0}}function nA(e,t,n){if(t.type==="log_queued_tools")return{...e,queued_tools:t.queued_tools};const r=n.get(t.log_id);return r?{...e,queued_tools:r}:e}function Tp(e,t){const n=new Map(e.pendingQueuedTools),r=e.realtimeLogs.findIndex(p=>p.id===t.log_id),a=r>=0?e.realtimeLogs[r]:null,o=e.httpLogs.find(p=>p.id===t.log_id)??null;if(t.type==="log_queued_tools"&&!a&&!o)return n.set(t.log_id,t.queued_tools),{...e,pendingQueuedTools:n};const s=a??o??tA(t.log_id,t.type==="log_data"?t.data:{}),i=nA(t.type==="log_data"?{...s,...t.data,id:t.log_id}:s,t,n);n.delete(t.log_id);const d=r>=0?e.realtimeLogs.map((p,f)=>f===r?i:p):[...e.realtimeLogs,i];return{...e,realtimeLogs:d,pendingQueuedTools:n}}function Mp(e,t){const{limit:n=100,offset:r=0,order:a="desc",autoFetch:o=!0,enableWebSocket:s=!1}=t||{},i=x(()=>{const E=typeof e=="string"?e:e?.value;if(!E)return"";const X=new URLSearchParams,re=typeof n=="number"?n:n.value,ne=typeof r=="number"?r:r.value,de=typeof a=="string"?a:a.value;return X.append("limit",re.toString()),X.append("offset",ne.toString()),X.append("order",de),He(`/api/threads/${E}/logs?${X.toString()}`)}),{data:d,error:p,isFetching:f,isFinished:m,execute:g,abort:v}=uo(i,{immediate:!1}).get().json();ve([i,()=>o],([E,X])=>{E&&X&&g()},{immediate:!0});const _=x(()=>Rh(p.value)?null:p.value),b=x(()=>d.value?.logs||[]),C=R(null),y=x(()=>C.value?.total??d.value?.total??0),A=x(()=>(typeof r=="number"?r:r.value)===0?C.value?.hasMore??d.value?.hasMore??!1:d.value?.hasMore??!1),L=R(!1),k=R(null),S=R([]),T=new Map,B=x(()=>{const E=typeof e=="string"?e:e?.value,X=typeof n=="number"?n:n.value;return E?He(`/api/threads/${E}/logs?limit=${X}&offset=0&order=desc`):""}),{data:q,error:H,execute:N,abort:P}=uo(B,{immediate:!1}).get().json();let U=0;const V=async()=>{const E=++U,X=new Map(S.value.map(ne=>[ne.id,ne]));if(await N(),E!==U)return;if(H.value){k.value=Ve(H.value);return}C.value=q.value,k.value=null;const re=new Map((q.value?.logs??[]).map(ne=>[ne.id,ne]));for(const ne of S.value)(!re.has(ne.id)||X.get(ne.id)!==ne)&&re.set(ne.id,ne);S.value=[...re.values()]},Y=new cc({url:E=>{const X=typeof e=="string"?e:e?.value;if(!X)throw new Error("A thread is required for log streaming");const re=window.location.protocol==="https:"?"wss:":"ws:";return fc(`${re}//${window.location.host}${He(`/api/threads/${X}/logs`)}`,E)}},{onStatusChange:E=>{L.value=E==="connected"},onReconnected:()=>{k.value=null,V()},onError:E=>{k.value=E.message},onFrame:E=>{try{const X=Cp(JSON.parse(E.data));if(!X)return;const re=Tp({realtimeLogs:S.value,httpLogs:b.value,pendingQueuedTools:T},X);S.value=re.realtimeLogs,T.clear(),re.pendingQueuedTools.forEach((ne,de)=>T.set(de,ne))}catch{k.value="Failed to parse log update"}}},{reconnectAuthGate:$l,canReconnect:()=>!Il(),onAuthorized:_l}),$=()=>{U++,P(),q.value=null,C.value=null,Y.disconnect(),S.value=[],T.clear()},D=()=>{!(typeof e=="string"?e:e?.value)||!s||($(),Y.connect())};return Hr($),{logs:x(()=>{if(!s)return b.value;const E=new Map;b.value.forEach(ne=>E.set(ne.id,ne)),S.value.forEach(ne=>E.set(ne.id,ne));const X=typeof a=="string"?a:a.value;return Array.from(E.values()).sort((ne,de)=>X==="desc"?de.created_at-ne.created_at:ne.created_at-de.created_at)}),total:y,hasMore:A,error:_,isFetching:f,isFinished:x(()=>m.value||C.value!==null),refetch:g,abort:v,wsConnected:L,wsError:k,connectWebSocket:D,disconnectWebSocket:$}}function rA(e){if(!e)return null;try{const t=JSON.parse(e);return t.messages===void 0?null:JSON.stringify(t.messages)}catch{return null}}function aA(e,t){const n=x(()=>{const d=e.value,p=t.value;return!d||!p?"":He(`/api/threads/${d}/logs/${p}`)}),{data:r,error:a,isFetching:o,execute:s}=uo(n,{immediate:!1}).get().json();return ve([e,t],([d,p])=>{d&&p&&s()},{immediate:!0}),{logDetails:x(()=>{const d=r.value;return!d||d.id!==t.value?null:d.message_history!=null?d:{...d,message_history:rA(d.request_body)}}),error:a,isFetching:o,refetch:s}}function oA(e){const t=new Set,n=new Map;for(const r of e){const a=r.cached_tokens;if(a==null||!r.prompt_name)continue;const o=`${r.prompt_name}::${r.model_name??r.model}`,s=n.get(o);s!==void 0&&a<s&&t.add(r.id),n.set(o,a)}return t}const sA={class:"min-h-0 flex-1 overflow-hidden"},lA=["aria-valuenow","title"],iA={class:"relative h-full overflow-hidden"},uA=we({__name:"InspectorResizablePane",props:{heightPercent:{},storageKey:{},minMainHeight:{default:180},minDetailHeight:{default:260},title:{default:"Resize details"}},emits:["update:heightPercent"],setup(e,{emit:t}){const n=e,r=t,a=R(null),o=R(!1),s=(_,b,C)=>Math.min(C,Math.max(b,_)),i=_=>s(_,20,80),d=()=>{if(!n.storageKey||typeof window>"u")return;const _=window.localStorage.getItem(n.storageKey),b=_?Number.parseFloat(_):Number.NaN;Number.isFinite(b)&&r("update:heightPercent",i(b))},p=()=>{!n.storageKey||typeof window>"u"||window.localStorage.setItem(n.storageKey,n.heightPercent.toFixed(2))},f=_=>{if(!a.value)return;const b=a.value.getBoundingClientRect();if(b.height<=0)return;const C=b.bottom-_.clientY,y=n.minDetailHeight/b.height*100,A=100-n.minMainHeight/b.height*100;r("update:heightPercent",s(C/b.height*100,Math.min(y,A),Math.max(y,A)))},m=()=>{o.value&&(o.value=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("pointermove",f),window.removeEventListener("pointerup",m),window.removeEventListener("pointercancel",m),p())},g=_=>{_.preventDefault(),_.currentTarget instanceof HTMLElement&&_.currentTarget.setPointerCapture(_.pointerId),o.value=!0,document.body.style.cursor="row-resize",document.body.style.userSelect="none",f(_),window.addEventListener("pointermove",f),window.addEventListener("pointerup",m),window.addEventListener("pointercancel",m)},v=_=>{const b=_.shiftKey?10:4;_.key==="ArrowUp"?(_.preventDefault(),r("update:heightPercent",i(n.heightPercent+b)),p()):_.key==="ArrowDown"&&(_.preventDefault(),r("update:heightPercent",i(n.heightPercent-b)),p())};return an(d),Ft(m),(_,b)=>(l(),c("div",{ref_key:"root",ref:a,class:"flex h-full min-h-0 flex-col overflow-hidden"},[u("div",sA,[gt(_.$slots,"main",{},void 0,!0)]),j(yc,{name:"inspector-slide-up"},{default:be(()=>[_.$slots.detail?(l(),c("div",{key:0,class:"ui-border relative shrink-0 overflow-hidden border-t bg-white dark:bg-neutral-900",style:nt({height:`${e.heightPercent}%`})},[u("div",{class:J(["absolute inset-x-0 top-0 z-20 h-2 -translate-y-1 cursor-row-resize transition-colors hover:bg-neutral-200/70 dark:hover:bg-neutral-800/70",o.value?"bg-neutral-200/70 dark:bg-neutral-800/70":""]),role:"separator","aria-orientation":"horizontal","aria-valuenow":Math.round(e.heightPercent),"aria-valuemin":"20","aria-valuemax":"80",tabindex:"0",title:e.title,onPointerdown:g,onKeydown:v},null,42,lA),u("div",iA,[gt(_.$slots,"detail",{},void 0,!0)])],4)):M("",!0)]),_:3})],512))}}),Xo=ot(uA,[["__scopeId","data-v-163a279f"]]),dA={key:0,class:"flex items-start gap-2"},cA={class:"min-w-0 flex-1"},fA={class:"flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-0.5"},pA={class:"text-sm font-semibold text-red-700 dark:text-red-300"},hA={key:0,class:"font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},mA={key:1,class:"font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},gA={key:2,class:"text-[11px] text-neutral-500 dark:text-neutral-400"},vA={key:0,class:"mt-1 whitespace-pre-wrap break-words text-sm leading-relaxed text-neutral-800 dark:text-neutral-200"},yA=["href"],bA={key:2,class:"mt-1"},xA={class:"font-medium text-red-700 dark:text-red-300"},kA={key:0,class:"ml-1 font-mono text-[11px]"},wA={key:0,class:"whitespace-pre-wrap break-words py-1 text-sm leading-relaxed text-neutral-800 dark:text-neutral-200"},_A={key:1,class:"pl-3"},ks="cursor-pointer select-none py-1 text-xs text-neutral-500 hover:text-neutral-800 dark:text-neutral-400 dark:hover:text-neutral-200",rd="m-0 max-h-[400px] overflow-auto whitespace-pre-wrap break-words py-2 font-mono text-[11px] leading-relaxed text-neutral-700 dark:text-neutral-300",$A=we({__name:"LogErrorSummary",props:{summaries:{},route:{},billingUrl:{}},setup(e){return(t,n)=>e.summaries.length>0?(l(),c("div",dA,[j(h(bc),{size:15,class:"mt-0.5 shrink-0 text-red-600 dark:text-red-400"}),u("div",cA,[u("div",fA,[u("span",pA,w(e.summaries[0].type||"error"),1),e.summaries[0].originLabel?(l(),c("span",hA,w(e.summaries[0].originLabel),1)):M("",!0),e.route?(l(),c("span",mA,w(e.route),1)):M("",!0),e.summaries.length>1?(l(),c("span",gA,w(e.summaries.length)+" errors ",1)):M("",!0)]),e.summaries[0].human?(l(),c("p",vA,w(e.summaries[0].human),1)):M("",!0),e.billingUrl?(l(),c("a",{key:1,href:e.billingUrl,target:"_blank",rel:"noopener noreferrer",class:"mt-2 inline-flex items-center gap-1 text-xs font-semibold text-red-700 underline-offset-2 hover:underline dark:text-red-300"},[n[0]||(n[0]=Ce(" Add credits ",-1)),j(h(dm),{size:12,"aria-hidden":"true"})],8,yA)):M("",!0),e.summaries[0].hasMoreDetails?(l(),c("details",bA,[u("summary",{class:J(ks)},"Show full details"),e.summaries[0].details.isJson?(l(),K(Cn,{key:0,code:e.summaries[0].details.text,language:"json"},null,8,["code"])):(l(),c("pre",{key:1,class:J(rd)},w(e.summaries[0].details.text),1))])):M("",!0),(l(!0),c(te,null,Ie(e.summaries.slice(1),(r,a)=>(l(),c("details",{key:a,class:"mt-1"},[u("summary",{class:J(ks)},[u("span",xA,w(r.type),1),r.originLabel?(l(),c("span",kA,"· "+w(r.originLabel),1)):M("",!0)]),r.human?(l(),c("p",wA,w(r.human),1)):M("",!0),r.hasMoreDetails?(l(),c("details",_A,[u("summary",{class:J(ks)},"Show full details"),r.details.isJson?(l(),K(Cn,{key:0,code:r.details.text,language:"json"},null,8,["code"])):(l(),c("pre",{key:1,class:J(rd)},w(r.details.text),1))])):M("",!0)]))),128))]),e.summaries[0].human?(l(),K(Ca,{key:0,content:e.summaries[0].human,variant:"ghost",size:"xs"},null,8,["content"])):M("",!0)])):M("",!0)}}),IA={openai:"OpenAI",openrouter:"OpenRouter",xai:"xAI"};function ti(e){const t=e.trim(),n=IA[t.toLowerCase()];return n||t.replace(/[_-]+/g," ").replace(/\b\w/g,r=>r.toUpperCase())}function SA(e){return typeof e!="string"?null:/^(?:platform-router|runtime|(?:provider|tool|hook):[A-Za-z0-9._/@-]+)$/.test(e)?e:null}function CA(e){return e?.startsWith("tool:")?e.slice(5):null}function no(e){if(!e)return null;if(e==="platform-router")return"Platform router";if(e==="runtime")return"Runtime";const t=e.indexOf(":"),n=e.slice(0,t),r=ti(e.slice(t+1));return n==="provider"?r:n==="tool"?`Tool · ${r}`:`Hook · ${r}`}function TA(e,t){if(!t)return e;if(t==="platform-router")return`Platform router error: ${e}`;if(t==="runtime")return`Runtime error: ${e}`;const n=t.indexOf(":"),r=t.slice(0,n),a=ti(t.slice(n+1));return r==="provider"?`${a} error: ${e}`:r==="tool"?`Tool error (${a}): ${e}`:`Hook error (${a}): ${e}`}function MA(e){const t=e.actual_provider||e.provider;if(!t)return e.standard_agents_router_used?"Platform router":null;const n=ti(t);return e.standard_agents_router_used?`Platform router → ${n}`:`Direct → ${n}`}function Ap(e){const t=Br(e.errors).map(n=>{if(typeof n=="string")return{type:e.error_type||"error",origin:e.error_origin??null,message:n};if(!n||typeof n!="object")return{type:e.error_type||"error",origin:e.error_origin??null,message:String(n??"")};const r=at(n);return{type:typeof r.type=="string"?r.type:e.error_type||"error",origin:SA(r.origin)??e.error_origin??null,message:typeof r.message=="string"?r.message:JSON.stringify(r)}}).filter(n=>n.message);return t.length>0?t:e.error?[{type:e.error_type||"error",origin:e.error_origin??null,message:e.error}]:[]}const Lp=e=>/\\[nrt"\\]/.test(e),Rp=e=>{const t="__AGENTBUILDER_ESCAPED_BACKSLASH__";return e.replace(/\\\\/g,t).replace(/\\n/g,`
|
|
52
|
-
`).replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\"/g,'"').replace(new RegExp(t,"g"),"\\")},AA=e=>{const t=e.trim();if(!t.startsWith("{")&&!t.startsWith("["))return null;const n=t[0],r=n==="{"?"}":"]";let a=0,o=!1,s=!1;for(let i=0;i<t.length;i++){const d=t[i];if(s){s=!1;continue}if(o){d==="\\"?s=!0:d==='"'&&(o=!1);continue}if(d==='"'){o=!0;continue}if(d===n)a++;else if(d===r&&(a--,a===0)){const p=t.slice(0,i+1);try{return{value:JSON.parse(p),rest:t.slice(i+1)}}catch{return null}}}return null},ad=e=>{const t=e.indexOf(`
|
|
53
|
-
|
|
54
|
-
Stack trace:`),n=e.indexOf(`
|
|
55
|
-
|
|
56
|
-
Error Details:`);let r=e.length;return t>=0&&(r=Math.min(r,t)),n>=0&&(r=Math.min(r,n)),e.slice(0,r)},LA=e=>{let t=ad(e).trim(),n=!1;for(let s=0;s<5&&!(!t.startsWith("{")&&!t.startsWith("["));s++){const i=AA(t);if(!i||typeof i.value!="object"||i.value===null)break;const d=at(i.value),p=d.error,f=typeof p=="object"&&p!==null?at(p).message:typeof p=="string"?p:d.message;if(typeof f!="string"||f.trim().length===0)break;n=!0,t=f.trim()}if(n)return t;const r=Lp(e)?Rp(e):e,a=ad(r).trim(),o=a.split(`
|
|
57
|
-
`).find(s=>s.trim().length>0);return o&&o.length<600?o.trim():a},RA=e=>{if(!e)return{isJson:!1,text:""};const t=e.trim();if(t.startsWith("{")||t.startsWith("["))try{const r=JSON.parse(t);if(r&&typeof r=="object")return{isJson:!0,text:JSON.stringify(r,null,2)}}catch{}return{isJson:!1,text:Lp(e)?Rp(e):e}};function EA(e){return e.map(t=>{const n=LA(t.message),r=TA(n,t.origin),a=RA(t.message),o=a.text.trim().length>0&&a.text.trim()!==n.trim();return{...t,originLabel:no(t.origin),human:r,details:a,hasMoreDetails:o}})}function PA(e,t){const n=t[0]?.origin;return n&&n!=="platform-router"&&!n.startsWith("provider:")?null:MA(e)}function NA(e){for(const t of e){const n=mp(t.message);if(n)return n}return null}const ta=new WeakMap,OA=e=>1-Math.pow(1-e,3),DA=()=>typeof window<"u"&&window.matchMedia?.("(prefers-reduced-motion: reduce)").matches,ws=(e,t,n)=>Math.min(Math.max(e,t),n),Ao=(e,t)=>{const n=t.duration??80,r=Math.max(0,e.scrollHeight-e.clientHeight),a=Math.max(0,e.scrollWidth-e.clientWidth),o=t.top===void 0?e.scrollTop:ws(t.top,0,r),s=t.left===void 0?e.scrollLeft:ws(t.left,0,a),i=ta.get(e);if(i!==void 0&&(window.cancelAnimationFrame(i),ta.delete(e)),n<=0||DA()){e.scrollTo({top:o,left:s,behavior:"auto"});return}const d=e.scrollTop,p=e.scrollLeft,f=o-d,m=s-p;if(Math.abs(f)<1&&Math.abs(m)<1){e.scrollTo({top:o,left:s,behavior:"auto"});return}const g=window.performance.now(),v=_=>{const b=ws((_-g)/n,0,1),C=OA(b);e.scrollTo({top:d+f*C,left:p+m*C,behavior:"auto"}),b<1?ta.set(e,window.requestAnimationFrame(v)):ta.delete(e)};ta.set(e,window.requestAnimationFrame(v))},BA={class:"json-viewer relative bg-white dark:bg-neutral-900"},FA={key:0,class:"absolute top-[5px] right-[5px] z-10"},jA=["innerHTML"],qA=["src","alt"],zA="__agentbuilder_json_viewer_interactive_string__",VA=we({__name:"JsonViewer",props:{json:{},threadId:{},showCopyButton:{type:Boolean},actions:{}},emits:["action"],setup(e,{emit:t}){const n=e,r=t,a=R(null),o=R(null),s=k=>!!k&&typeof k=="object"&&k.__agentbuilderJsonViewerKind===zA&&typeof k.value=="string",i=k=>[".jpg",".jpeg",".png",".gif",".webp",".svg",".bmp"].some(T=>k.toLowerCase().endsWith(T)),d=k=>n.threadId?Wr(n.threadId,k):null,p=x(()=>{if(!n.json)return"";if(typeof n.json=="string")try{return JSON.stringify(JSON.parse(n.json),null,2)}catch{return n.json}return JSON.stringify(n.json,null,2)}),f=k=>k.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),m=k=>{const S=f(k.label),T=f(k.title||k.label);return`<button type="button" class="json-inline-action json-inline-action--${f(k.action)}" data-action="${f(k.action)}" data-index="${k.index??""}" title="${T}">${S}</button>`},g=k=>{if(!k)return"";const S=(n.actions||[]).find(T=>T.token===k);return S?m(S):""},v=k=>{let S="",T=f(k);for(const B of n.actions||[]){const q=f(B.token),H=m(B);B.placement==="before"?(T.includes(q)&&(S+=H),T=T.split(q).join("")):T=T.split(q).join(H)}return{before:S,content:T}},_=(k,S,T={})=>{const{before:B,content:q}=v(k),H=g(T.beforeActionToken),N=T.afterLabel?` <span class="json-fold-marker">${f(T.afterLabel)}</span>`:"";return n.threadId&&i(k)&&k.startsWith("/attachments/")?`${H}${B}${S('"')}<span class="json-image-path" data-path="${f(k)}">${q}</span>${S('"')}${N}`:`${H}${B}${S('"')}<span class="json-string">${q}</span>${S('"')}${N}`},b=(k,S=0)=>{const T=" ".repeat(S),B=q=>`<span class="json-punct">${q}</span>`;if(k===null)return'<span class="json-null">null</span>';if(typeof k=="boolean")return`<span class="json-boolean">${k}</span>`;if(typeof k=="number")return`<span class="json-number">${k}</span>`;if(typeof k=="string")return _(k,B);if(s(k))return _(k.value,B,{beforeActionToken:k.beforeActionToken,afterLabel:k.afterLabel});if(Array.isArray(k)){if(k.length===0)return`${B("[")}${B("]")}`;const q=k.map((H,N)=>{const P=N<k.length-1?B(","):"";return`${T} ${b(H,S+1)}${P}`});return`${B("[")}
|
|
58
|
-
${q.join(`
|
|
59
|
-
`)}
|
|
60
|
-
${T}${B("]")}`}if(typeof k=="object"){const q=Object.entries(k);if(q.length===0)return`${B("{")}${B("}")}`;const H=q.map(([N,P],U)=>{const V=U<q.length-1?B(","):"",Y=`${B('"')}<span class="json-key">${f(N)}</span>${B('"')}`;return`${T} ${Y}${B(":")} ${b(P,S+1)}${V}`});return`${B("{")}
|
|
61
|
-
${H.join(`
|
|
62
|
-
`)}
|
|
63
|
-
${T}${B("}")}`}return String(k)},C=x(()=>{if(!n.json)return'<span class="json-null">null</span>';let k;if(typeof n.json=="string")try{k=JSON.parse(n.json)}catch{return f(n.json)}else k=n.json;return b(k)}),y=k=>{const S=k.target;if(S.classList.contains("json-image-path")){const T=S.dataset.path;if(T&&n.threadId){a.value=T;const B=S.getBoundingClientRect();o.value={x:B.left,y:B.top}}}},A=k=>{k.target.classList.contains("json-image-path")&&(a.value=null,o.value=null)},L=k=>{const S=k.target;if(!S.classList.contains("json-inline-action"))return;const T=S.dataset.action;if(!T)return;const B=S.dataset.index,q=B?Number.parseInt(B,10):void 0;r("action",{action:T,index:Number.isFinite(q)?q:void 0})};return(k,S)=>(l(),c("div",BA,[e.showCopyButton?(l(),c("div",FA,[j(Ca,{content:p.value,variant:"ghost",size:"xs"},null,8,["content"])])):M("",!0),u("pre",{class:"text-xs font-mono p-3 overflow-x-auto",onClick:L,onMouseover:y,onMouseout:A,innerHTML:C.value},null,40,jA),(l(),K($a,{to:"body"},[a.value&&o.value&&e.threadId?(l(),c("div",{key:0,class:"fixed z-50 bg-white dark:bg-neutral-800 border border-neutral-300 dark:border-neutral-600 rounded-lg shadow-lg p-1 pointer-events-none",style:nt({left:`${o.value.x}px`,top:`${o.value.y-160}px`})},[u("img",{src:d(a.value),alt:a.value,class:"max-w-[200px] max-h-[150px] rounded object-contain",onError:S[0]||(S[0]=T=>T.target.style.display="none")},null,40,qA)],4)):M("",!0)]))]))}}),ca=ot(VA,[["__scopeId","data-v-a28e6bda"]]),HA=["data-section"],UA={class:"log-section-title group/title sticky z-[5] flex h-9 items-center gap-2 bg-white dark:bg-neutral-900"},KA=["aria-expanded","aria-describedby"],WA={key:0,class:"log-section-live h-1.5 w-1.5 shrink-0 rounded-full bg-amber-500","aria-label":"Streaming"},GA={class:"truncate"},JA={key:1,class:"shrink-0 tabular-nums text-neutral-400 dark:text-neutral-500"},XA={key:2,class:"truncate font-normal text-neutral-400 dark:text-neutral-500"},YA=["data-badge"],ZA={class:"group/actions flex shrink-0 items-center gap-0.5"},QA={key:0,class:"flex items-center gap-0.5 opacity-0 transition-opacity group-hover/title:opacity-100 group-focus-within/actions:opacity-100 [@media(hover:none)]:opacity-100"},od="inline-flex h-6 items-center rounded px-1.5 text-[11px] text-neutral-500 transition-colors hover:bg-black/[0.05] hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/[0.07] dark:hover:text-neutral-100",eL=we({__name:"LogDetailSection",props:{title:{},count:{},subtitle:{},sectionId:{},expanded:{type:Boolean},scrollContainer:{},copyContent:{},stickyOffset:{},live:{type:Boolean},badges:{}},emits:["toggle"],setup(e,{expose:t,emit:n}){const r=e,a={neutral:"default",warning:"warning",error:"error"},o=`log-section-badges-${Fo()}`,s=x(()=>(r.badges??[]).map(y=>`${y.label}: ${y.hint}`).join(" ")),i=n,d=R(null),p=R(!1);let f=null,m=null;const g=()=>{f?.disconnect(),m?.disconnect(),f=null,m=null},v=()=>{Qe(()=>{if(!r.expanded||!d.value||!r.scrollContainer){p.value=!1;return}p.value=d.value.scrollHeight>r.scrollContainer.clientHeight*2})},_=()=>{g(),!(typeof ResizeObserver>"u")&&(d.value&&(f=new ResizeObserver(v),f.observe(d.value)),r.scrollContainer&&(m=new ResizeObserver(v),m.observe(r.scrollContainer)))};ve(()=>[r.expanded,r.scrollContainer],async([y])=>{await Qe(),_(),y?v():p.value=!1},{immediate:!0,flush:"post"}),an(async()=>{await Qe(),_(),v()}),Ft(g);const b=()=>{!d.value||!r.scrollContainer||Ao(r.scrollContainer,{top:d.value.offsetTop-(r.stickyOffset??88)})},C=()=>{if(!d.value||!r.scrollContainer)return;const y=d.value.offsetTop+d.value.offsetHeight;Ao(r.scrollContainer,{top:y-r.scrollContainer.clientHeight})};return t({checkHeight:v,contentRef:d}),(y,A)=>(l(),c("section",{"data-section":e.sectionId},[u("div",UA,[u("button",{type:"button",class:"flex h-full min-w-0 flex-1 items-center gap-1.5 text-left text-xs font-medium text-neutral-800 outline-none focus-visible:underline dark:text-neutral-200","aria-expanded":e.expanded,"aria-describedby":s.value?o:void 0,onClick:A[0]||(A[0]=L=>i("toggle"))},[j(h(Et),{size:14,class:J(["shrink-0 text-neutral-400 transition-transform duration-150 dark:text-neutral-500",e.expanded?"rotate-90":""])},null,8,["class"]),e.live?(l(),c("span",WA)):M("",!0),u("span",GA,w(e.title),1),e.count!==null&&e.count!==void 0?(l(),c("span",JA,w(e.count),1)):M("",!0),e.subtitle?(l(),c("span",XA,w(e.subtitle),1)):M("",!0),(l(!0),c(te,null,Ie(e.badges,L=>(l(),c("span",{key:L.key,class:"inline-flex shrink-0","data-badge":L.key},[j(Jn,{content:L.hint,position:"bottom",wide:""},{default:be(()=>[j(Zn,{variant:a[L.tone],class:"!font-normal"},{default:be(()=>[Ce(w(L.label),1)]),_:2},1032,["variant"])]),_:2},1032,["content"])],8,YA))),128))],8,KA),s.value?(l(),c("span",{key:0,id:o,class:"sr-only"},w(s.value),1)):M("",!0),u("div",ZA,[p.value&&e.expanded?(l(),c("div",QA,[u("button",{type:"button",class:J(od),onClick:b},"Top"),u("button",{type:"button",class:J(od),onClick:C},"Bottom")])):M("",!0),e.copyContent?(l(),K(Ca,{key:1,content:e.copyContent,variant:"ghost",size:"xs"},null,8,["content"])):M("",!0)])]),$t(u("div",{ref_key:"contentRef",ref:d,class:"pb-3"},[gt(y.$slots,"default",{},void 0,!0)],512),[[zt,e.expanded]])],8,HA))}}),Nt=ot(eL,[["__scopeId","data-v-1482c480"]]);function tL(e){return[{value:"standard",label:"Standard Agents",icon:e?Ti.mark.dark:Ti.mark.light},...Fc.map(t=>({value:t,label:Fl(t),icon:He(`/api/providers/${encodeURIComponent(t)}/icon`)}))]}const nL={class:"@container"},rL={class:"grid grid-cols-2 gap-x-6 gap-y-3 @md:grid-cols-4"},aL={class:"flex h-4 items-center gap-1.5 text-xs text-neutral-500 dark:text-neutral-400"},oL={class:"mt-1 min-w-0"},sL=["tabindex"],lL={class:"text-[15px] font-semibold leading-5 tabular-nums text-neutral-900 dark:text-neutral-100"},iL={class:"whitespace-nowrap"},Ep=we({__name:"LogDetailFigures",props:{figures:{}},setup(e){return(t,n)=>(l(),c("div",nL,[u("dl",rL,[(l(!0),c(te,null,Ie(e.figures,r=>(l(),c("div",{key:r.id,class:"min-w-0"},[u("dt",aL,[gt(t.$slots,"label",{figure:r},()=>[Ce(w(r.label),1)])]),u("dd",oL,[j(h(Jn),{content:r.detail??"",disabled:!r.detail,position:"bottom",wide:""},{default:be(()=>[u("span",{class:"flex min-w-0 flex-col",tabindex:r.detail?0:void 0},[u("span",lL,[r.pending&&!r.value?(l(),K(et,{key:0,size:"xs"})):(l(),c(te,{key:1},[Ce(w(r.value??"–"),1)],64))]),r.sub?(l(),c("span",{key:0,class:J(["mt-0.5 text-xs tabular-nums text-neutral-500 dark:text-neutral-400",r.detail?"underline decoration-neutral-300 decoration-dotted underline-offset-2 dark:decoration-neutral-600":""])},[(l(!0),c(te,null,Ie(r.sub.split(" · "),(a,o)=>(l(),c(te,{key:o},[o>0?(l(),c(te,{key:0},[Ce(" · ")],64)):M("",!0),u("span",iL,w(a),1)],64))),128))],2)):M("",!0)],8,sL)]),_:2},1032,["content","disabled"])])]))),128))])]))}}),Ra=we({__name:"TimeAgo",props:{timestamp:{}},setup(e){const t=e,n=Km(()=>t.timestamp);return(r,a)=>(l(),c("span",null,w(h(n)),1))}}),uL=["aria-expanded","onClick"],dL={class:"truncate font-mono font-medium text-neutral-900 dark:text-neutral-100"},cL={class:"shrink-0 font-mono text-[11px] text-neutral-400 dark:text-neutral-500"},fL={key:0,class:"shrink-0 text-[11px] text-neutral-500 dark:text-neutral-400",title:"Programmatically called with state.queueTool()"},pL={class:"@container pt-1 pb-3 pl-10"},hL={key:0,class:"grid grid-cols-1 gap-x-6 gap-y-3 @[640px]:grid-cols-2"},mL={class:"min-w-0"},gL={key:0,class:"ml-1 tabular-nums"},vL={class:"min-w-0"},yL={key:0,class:"m-0 max-h-[400px] overflow-auto whitespace-pre-wrap break-words p-2 font-mono text-[11px] leading-relaxed text-neutral-800 dark:text-neutral-200"},bL={key:1,class:"p-2 font-mono text-[11px] text-neutral-400 dark:text-neutral-500"},xL={key:1,class:"min-w-0"},_s="mb-1 text-[11px] text-neutral-500 dark:text-neutral-400",kL=we({__name:"LogToolCalls",props:{toolCalls:{},toolResults:{}},setup(e){const t=R(new Set),n=s=>{const i=new Set(t.value);i.has(s)?i.delete(s):i.add(s),t.value=i},r=s=>s.length>10?`${s.slice(0,8)}…`:s,a=s=>{const i=s?.content;return i==null||i===""?"No content":typeof i=="string"?i:JSON.stringify(i,null,2)},o=s=>s==="completed"?"text-emerald-600 dark:text-emerald-400":s==="failed"?"text-red-600 dark:text-red-400":"text-amber-600 dark:text-amber-400";return(s,i)=>(l(),c("div",null,[(l(!0),c(te,null,Ie(e.toolCalls,d=>(l(),c("div",{key:d.id},[u("button",{type:"button",class:"flex h-8 w-full items-center gap-2 rounded-md pr-2 pl-5 text-left text-xs transition-colors hover:bg-black/[0.035] dark:hover:bg-white/[0.04]","aria-expanded":t.value.has(d.id),onClick:p=>n(d.id)},[j(h(Et),{size:12,class:J(["shrink-0 text-neutral-400 transition-transform duration-150 dark:text-neutral-500",t.value.has(d.id)?"rotate-90":""])},null,8,["class"]),u("span",dL,w(d.name),1),u("span",cL,w(r(d.id)),1),i[1]||(i[1]=u("span",{class:"flex-1"},null,-1)),d.isQueued?(l(),c("span",fL,"queued")):M("",!0),d.isProvider?(l(),K(h(Jn),{key:1,content:"Model tool call from the upstream provider's native response, before Standard Agents Builder normalization.",position:"top",wide:""},{default:be(()=>[...i[0]||(i[0]=[u("span",{class:"text-[11px] text-neutral-500 dark:text-neutral-400"},"provider",-1)])]),_:1})):M("",!0),d.isProvider&&d.status?(l(),c("span",{key:2,class:J(["shrink-0 text-[11px] font-medium",o(d.status)])},w(h(Fg)(d.status)),3)):M("",!0),d.isProvider?M("",!0):(l(),c("span",{key:3,class:J(["shrink-0 text-[11px] font-medium",e.toolResults.has(d.id)?"text-emerald-600 dark:text-emerald-400":"text-neutral-400 dark:text-neutral-500"])},w(e.toolResults.has(d.id)?"Returned":"No result"),3))],8,uL),$t(u("div",pL,[d.isProvider?(l(),c("div",xL,[u("div",{class:J(_s)},"Provider payload"),j(Cn,{code:h(jg)(d),language:"json"},null,8,["code"])])):(l(),c("div",hL,[u("div",mL,[u("div",{class:J(_s)},[i[3]||(i[3]=Ce(" Arguments ",-1)),d.isQueued&&d.queuedAt?(l(),c("span",gL,[i[2]||(i[2]=Ce(" · queued ",-1)),j(Ra,{timestamp:d.queuedAt},null,8,["timestamp"])])):M("",!0)]),j(Cn,{code:h(Bc)(d.function?.arguments||"{}"),language:"json"},null,8,["code"])]),u("div",vL,[u("div",{class:J(_s)},"Result"),e.toolResults.has(d.id)?(l(),c("pre",yL,w(a(e.toolResults.get(d.id))),1)):(l(),c("div",bL,"No result captured"))])]))],512),[[zt,t.value.has(d.id)]])]))),128))]))}}),wL={class:"space-y-4 pl-5"},_L={class:"mb-1 font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},$L={key:0,class:"mt-2"},IL={class:"break-all font-mono text-[11px] text-neutral-700 dark:text-neutral-300"},SL={key:2,class:"break-all font-mono text-[11px] text-neutral-700 dark:text-neutral-300"},CL={key:3,class:"m-0 overflow-x-auto whitespace-pre-wrap break-words font-mono text-[11px] leading-relaxed text-neutral-700 dark:text-neutral-300"},sd="whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-neutral-800 dark:text-neutral-200",TL=we({__name:"LogReasoningDetails",props:{details:{}},setup(e){const t=r=>typeof r=="string"&&r?r:null,n=r=>{const a=[Mg(r)];return t(r.id)&&a.push(`id ${r.id}`),t(r.format)&&a.push(String(r.format)),typeof r.index=="number"&&a.push(`index ${r.index}`),a};return(r,a)=>(l(),c("div",wL,[(l(!0),c(te,null,Ie(e.details,(o,s)=>(l(),c("div",{key:s,class:"min-w-0"},[u("div",_L,w(n(o).join(" · ")),1),o.type==="reasoning.summary"&&t(o.summary)?(l(),c("div",{key:0,class:J(sd)},w(o.summary),1)):o.type==="reasoning.text"&&t(o.text)?(l(),c(te,{key:1},[u("div",{class:J(sd)},w(o.text),1),t(o.signature)?(l(),c("div",$L,[a[0]||(a[0]=u("div",{class:"text-[11px] text-neutral-500 dark:text-neutral-400"},"Signature",-1)),u("div",IL,w(o.signature),1)])):M("",!0)],64)):o.type==="reasoning.encrypted"&&t(o.data)?(l(),c("div",SL,w(o.data),1)):(l(),c("pre",CL,w(JSON.stringify(o,null,2)),1))]))),128))]))}}),ML={class:"pl-3"},AL=["onClick"],LL={class:"flex min-w-0 items-baseline gap-2"},RL={class:"min-w-0 truncate font-mono text-xs font-medium text-neutral-800 dark:text-neutral-100"},EL={class:"truncate font-mono text-[11px] text-neutral-400 dark:text-neutral-500"},PL={key:0,class:"mt-0.5 block truncate text-[11px] text-neutral-500 dark:text-neutral-400"},NL=we({__name:"LogScheduledEffects",props:{effects:{}},emits:["open"],setup(e,{emit:t}){const n=t,r=a=>{const o=[];return a.scheduledAt&&o.push(`scheduled ${sn(a.scheduledAt)}`),a.createdAt&&o.push(`created ${sn(a.createdAt)}`),a.status&&o.push(a.status),o};return(a,o)=>(l(),c("div",ML,[(l(!0),c(te,null,Ie(e.effects,s=>(l(),c("button",{key:s.id,type:"button",class:"block w-full rounded-md px-2 py-1.5 text-left transition-colors hover:bg-black/[0.035] dark:hover:bg-white/[0.04]",title:"Open scheduled effect",onClick:i=>n("open",s.reference)},[u("span",LL,[u("span",RL,w(s.name||"scheduled_effect"),1),u("span",EL,w(s.id),1)]),r(s).length>0?(l(),c("span",PL,w(r(s).join(" · ")),1)):M("",!0)],8,AL))),128))]))}}),OL=["width","height","aria-label"],DL=["stroke-dasharray"],$s=2.5,BL=we({__name:"ContextWindowDonut",props:{pct:{},size:{default:20}},setup(e){const t=e,n=(20-$s)/2,r=2*Math.PI*n,a=x(()=>Math.max(0,Math.min(100,t.pct))),o=x(()=>{const i=a.value/100*r;return`${a.value>0?Math.max(i,1.5):0} ${r}`}),s=x(()=>a.value>=90?"stroke-red-500 dark:stroke-red-400":a.value>=75?"stroke-amber-500 dark:stroke-amber-400":"stroke-blue-500 dark:stroke-blue-400");return(i,d)=>(l(),c("svg",{width:e.size,height:e.size,viewBox:"0 0 20 20",class:"shrink-0 -rotate-90",role:"img","aria-label":`${a.value}% of context window used`},[u("circle",{cx:"10",cy:"10",r:n,fill:"none","stroke-width":$s,class:"stroke-neutral-200 dark:stroke-neutral-700"}),u("circle",{cx:"10",cy:"10",r:n,fill:"none","stroke-width":$s,"stroke-linecap":"round","stroke-dasharray":o.value,class:J(s.value)},null,10,DL)],8,OL))}}),FL=new Set(["success","error","skipped"]),jL=new Set(["debug","info","warn","error"]);function ni(e){return e.kind==="app"}function Pp(e){try{return{ok:!0,value:JSON.parse(e)}}catch{return{ok:!1}}}function ld(e){if(e==null||e==="")return null;const t=Pp(e);return t.ok?typeof t.value=="string"?{format:"text",content:t.value}:{format:"json",content:JSON.stringify(t.value,null,2)}:{format:"text",content:e}}function qL(e){if(!e)return null;const t=Pp(e);if(!t.ok||!t.value||typeof t.value!="object")return null;const n=t.value;return typeof n.kind!="string"||n.kind.length===0?null:{kind:n.kind,id:typeof n.id=="string"&&n.id?n.id:null,summary:typeof n.summary=="string"&&n.summary?n.summary:null}}function zL(e){return e==null||!Number.isFinite(e)?null:e>=1e4?`${(e/1e3).toFixed(1)} s`:`${Math.round(e).toLocaleString("en-US")} ms`}function Np(e){return e==null||!Number.isFinite(e)?null:`$${e.toFixed(6)}`}function Yo(e){const t=e.app_level&&jL.has(e.app_level)?e.app_level:"info",n=e.app_status&&FL.has(e.app_status)?e.app_status:null,r=qL(e.app_trigger),a=e.app_message||null;return{name:e.model,badge:n??t,tone:n??t,level:t,message:a,trigger:r,triggerLine:r?[r.kind,r.summary,r.id].filter(Boolean).join(" · "):null,summary:a??r?.summary??null,durationLabel:zL(e.app_duration_ms),costLabel:Np(e.app_cost),request:ld(e.app_request),response:ld(e.app_response),error:e.app_error||null,data:e.app_data||null}}const VL={success:"text-neutral-700 dark:text-neutral-300",error:"text-red-600 dark:text-red-400",skipped:"text-neutral-400 dark:text-neutral-500",warn:"text-amber-700 dark:text-amber-400",info:"text-neutral-700 dark:text-neutral-300",debug:"text-neutral-400 dark:text-neutral-500"},HL={charged:"Charged by the Standard Agents router, fee included.",provisional:"Provisional router charge. The router corrects it to the provider's exact cost within about an hour.",estimated:"Estimated from the runtime's pricing tables. The router has not reported a charge for this request.",unknown:"The router has not priced this request yet."};function Lo(e){const t=UL(e);return{kind:t,estimated:t==="provisional"||t==="estimated",note:t==="direct"?null:HL[t]}}function UL(e){return e.cost_source==="router"?e.cost_status==="final"?"charged":"provisional":e.cost_source==="estimated"?"estimated":!(e.cost_total!==null&&e.cost_total!==void 0)&&e.cost_status==="pending"?"unknown":"direct"}function id(e){const t=Np(e.cost_total);return t===null?null:Lo(e).estimated?`~${t}`:t}const KL=/interrupted by user|stopped by user/i;function WL(e,t){return e.error_type==="user_interrupted"||!e.error_type&&KL.test(e.error??"")?{tone:"neutral",label:"Stopped"}:e.error||t?{tone:"error",label:"Failed"}:e.is_complete?{tone:"success",label:"Success"}:{tone:"live",label:"Live"}}function GL(e){return e==="success"?"success":e==="error"?"error":e==="warn"?"warn":"neutral"}const Qt=e=>e.toLocaleString("en-US"),On=e=>`$${e.toFixed(6)}`,ud=e=>`${Qt(e)} ms`,kn=e=>e!=null;function Op(e,t){return kn(e)&&!(e===0&&t)}function JL(e){const t=[],n=e.generation_ms,r=e.output_tokens;if(n&&n>0&&r&&r>0){const a=r/(n/1e3);t.push(`${a>=10?Math.round(a):a.toFixed(1)} tok/s`)}return kn(e.latency_ms)&&t.push(`${ud(e.latency_ms)} total`),{id:"latency",label:"Latency",value:kn(e.time_to_first_token_ms)?ud(e.time_to_first_token_ms):null,sub:t.length>0?t.join(" · "):null,detail:null,pending:!e.is_complete&&!e.time_to_first_token_ms}}function XL(e,t){const n=e.total_tokens;if(!Op(n,t))return{id:"tokens",label:"Tokens",value:null,sub:null,detail:null,pending:!e.is_complete};const r=e.input_tokens??0,a=e.output_tokens??0,o=[`${Qt(r)} input`,`${Qt(a)} output`];e.reasoning_tokens&&e.reasoning_tokens>0&&o.push(`${Qt(e.reasoning_tokens)} reasoning`);const s=e.cached_tokens;return s&&s>0&&o.push(r>0?`${Qt(s)} cached (${Math.round(s/r*100)}%)`:`${Qt(s)} cached`),{id:"tokens",label:"Tokens",value:Qt(n),sub:`${Qt(r)} in · ${Qt(a)} out`,detail:o.join(" · "),pending:!1}}const YL={charged:"charged by router",provisional:"estimated · router charge pending",estimated:"estimated · no router charge",unknown:"unknown · router charge pending"};function ZL(e,t){const n=e.cost_total,r=Lo(e),a=YL[r.kind]??null,o=r.kind==="charged"||r.kind==="provisional";if(!kn(n)||!(o||Op(n,t)))return{id:"cost",label:"Cost",value:null,sub:a,detail:r.note,pending:!e.is_complete};const s=r.estimated?`~${On(n)}`:On(n);if(o)return{id:"cost",label:"Cost",value:s,sub:a,detail:r.note,pending:!1};if(!kn(e.cost_input)||!kn(e.cost_output))return{id:"cost",label:"Cost",value:s,sub:a,detail:r.note,pending:!1};const i=ap(n,e.cost_router_fee),d=e.cost_input*i,p=e.cost_output*i,f=[`${On(d)} input`];return kn(e.cost_cached)&&f.push(`${On(e.cost_cached*i)} cached`),f.push(`${On(p)} output`),r.note&&f.push(r.note),{id:"cost",label:"Cost",value:s,sub:a??`${On(d)} in · ${On(p)} out`,detail:f.join(" · "),pending:!1}}function QL(e,t){const n=e.message_history_length;return{id:"context",label:"Context",value:kn(n)?`${Qt(n)} ${n===1?"message":"messages"}`:null,sub:t>0?`${t} ${t===1?"tool":"tools"} available`:null,detail:null,pending:!1}}function eR(e,t){const n=!!e.error||t.hasErrors;return[JL(e),XL(e,n),ZL(e,n),QL(e,t.toolCount)]}async function tR(){const e=Kn.models;return await e.ensureLoaded(),e.error.value?null:e.items.value}function nR(e,t){if(!t)return e;const n=`${t}/`;return e.startsWith(n)?e.slice(n.length):e}function Dp(e,t){const n=t.model,r=t.model_name||t.model;if(!n&&!r)return null;const a=nR(r,t.provider);return e.find(o=>o.id===n)||e.find(o=>o.name===n)||e.find(o=>o.model===t.model)||e.find(o=>o.id===r)||e.find(o=>o.name===r)||e.find(o=>o.model===a)||null}function rR(e,t){if(!e||e<=0)return null;const n=t?.capabilities?.maxContextTokens;return!n||n<=0?null:{pct:Math.min(100,Math.round(e/n*100)),inputTokens:e,maxContextTokens:n}}function Bp(e,t){ve(t,(n,r)=>{if(n===r)return;const a=e();a&&(a.scrollTop=0)},{flush:"post"})}const ri=[{stage:"after_system_message",section:"system_prompt",effect:"An after_system_message hook can replace the system prompt."},{stage:"filter_messages",section:"messages",effect:"A filter_messages hook can filter, sort, or add to the history this request loads."},{stage:"prefilter_llm_history",section:"messages",effect:"A prefilter_llm_history hook can change the provider messages before the request is sent."}];function aR(e){if(!e)return[];let t;try{t=JSON.parse(e)}catch{return[]}return Array.isArray(t)?t.flatMap(n=>{if(typeof n!="object"||n===null)return[];const{hook:r,stage:a,outcome:o}=n;return typeof r!="string"||typeof a!="string"?[]:ri.some(s=>s.stage===a)?[{hook:r,stage:a,outcome:typeof o=="string"?o:"ok"}]:[]}):[]}const oR={ok:"ran",error:"failed",blocked:"blocked the run"};function dd(e){if(e.length===0)return null;const t=ri.filter(n=>e.some(r=>r.stage===n.stage));return{key:"hooks",label:e.length===1?`hook ${e[0].hook}`:`${e.length} hooks`,tone:e.some(n=>n.outcome!=="ok")?"error":"neutral",hint:[...e.map(n=>`Hook ${n.hook} ${oR[n.outcome]??"ran"} at ${n.stage} before this request.`),...t.map(n=>n.effect)].join(" ")}}function sR(e){const t=pc(e.requestBody);if(!t)return null;const n=hc(t,e.promptName);return{key:"past-tools",label:"tool results left out",tone:n.warning?"warning":"neutral",hint:n.body.join(" ")}}function lR(e){return e.promptSettings?.includeChat!==!1?null:{key:"chat-history",label:"chat history off",tone:"neutral",hint:[`${e.promptName?`Prompt ${e.promptName}`:"The prompt"} leaves includeChat off.`,"This request leaves out chat history from before this run.","Set includeChat: true on that prompt when the request needs earlier chat history."].join(" ")}}function iR(e){const t=aR(e.hookRuns),n=a=>t.filter(o=>ri.find(s=>s.stage===o.stage)?.section===a),r=a=>a.filter(o=>o!==null);return{messages:r([sR(e),lR(e),dd(n("messages"))]),system_prompt:r([dd(n("system_prompt"))])}}const hn=e=>!!e&&typeof e=="object"&&!Array.isArray(e),tt=e=>typeof e=="string"?e:null,fa=e=>typeof e=="number"?e:null,Vt=(e,t)=>typeof e=="boolean"?e:t,uR=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):[],Fp=e=>Array.isArray(e)?e.filter(hn):[],Wa=e=>hn(e)?Object.entries(e).filter(t=>hn(t[1])):[];function cd(e){return e==="human"||e==="handler"?e:"prompt"}function dR(e){const t=tt(e.agent);if(!t)return null;const n=e.parentCommunication;return{agent:t,as:tt(e.as),maxInstances:fa(e.maxInstances),immediate:e.immediate===!0||hn(e.immediate),blocking:Vt(e.blocking,!1),parentCommunication:n==="explicit"?"explicit":"implicit",initUserMessageProperty:tt(e.initUserMessageProperty),initAttachmentsProperty:tt(e.initAttachmentsProperty),initAgentNameProperty:tt(e.initAgentNameProperty),optional:tt(e.optional),hidden:Vt(e.hidden,!1)}}const fd=e=>Fp(e).flatMap(t=>{const n=dR(t);return n?[n]:[]});function cR(e){const t=tt(e.name);return t?{id:tt(e.id)??t,name:t,title:tt(e.title)??t,description:null,icon:null,tool_description:null,expose_as_tool:Vt(e.expose_as_tool,!1),max_session_turns:fa(e.max_session_turns),side_a_backing:cd(e.side_a_backing),side_a_handler:tt(e.side_a_handler),side_a_subagents:fd(e.side_a_subagents),side_a_label:tt(e.side_a_label),side_a_agent_prompt:tt(e.side_a_agent_prompt),side_a_stop_on_response:Vt(e.side_a_stop_on_response,!0),side_a_stop_tool:tt(e.side_a_stop_tool),side_a_max_steps:fa(e.side_a_max_steps),side_a_session_stop_tool:tt(e.side_a_session_stop_tool),side_a_session_fail_tool:tt(e.side_a_session_fail_tool),side_a_session_status_tool:tt(e.side_a_session_status_tool),side_b_backing:cd(e.side_b_backing),side_b_handler:tt(e.side_b_handler),side_b_subagents:fd(e.side_b_subagents),side_b_label:tt(e.side_b_label),side_b_agent_prompt:tt(e.side_b_agent_prompt),side_b_stop_on_response:Vt(e.side_b_stop_on_response,!0),side_b_stop_tool:tt(e.side_b_stop_tool),side_b_max_steps:fa(e.side_b_max_steps),side_b_session_stop_tool:tt(e.side_b_session_stop_tool),side_b_session_fail_tool:tt(e.side_b_session_fail_tool),side_b_session_status_tool:tt(e.side_b_session_status_tool)}:null}function fR(e){const t=tt(e.name);return t?{name:t,include_text_response:Vt(e.include_text_response,!0),include_tool_calls:Vt(e.include_tool_calls,!0),include_errors:Vt(e.include_errors,!0),init_user_message_property:tt(e.init_user_message_property),init_attachments_property:tt(e.init_attachments_property)}:null}const pR=["auto","none","required","function"],hR=e=>pR.some(t=>t===e);function mR(e){const t=tt(e.name),n=tt(e.model_id);return!t||!n?null:{id:tt(e.id)??t,name:t,tool_description:"",prompt:"",required_schema:null,model_id:n,model_name:tt(e.model_name)??n,model_provider:tt(e.model_provider)??"unknown",include_chat:Vt(e.include_chat,!1),include_past_tools:Vt(e.include_past_tools,!1),include_reasoning:Vt(e.include_reasoning,!1),parallel_tool_calls:Vt(e.parallel_tool_calls,!1),tool_choice:hR(e.tool_choice)?e.tool_choice:"auto",history_limit:fa(e.history_limit),tools:Fp(e.tools).flatMap(r=>{const a=fR(r);return a?[a]:[]}),variables:[],hooks:uR(e.hooks)}}const gR=["tool","prompt","handoff"],vR=e=>gR.some(t=>t===e);function yR(e){if(!hn(e)||e.version!==1)return null;const t=tt(e.agent);if(!t)return null;const n=new Map,r=[];for(const[d,p]of Wa(e.agents)){if(p.packed===!0){r.push({id:d,name:d,title:d,side_a_backing:"prompt",side_b_backing:"prompt",packed:!0});continue}const f=cR(p);f&&(n.set(d,f),r.push({id:f.id,name:f.name,title:f.title,side_a_backing:f.side_a_backing,side_b_backing:f.side_b_backing}))}const a=new Map;for(const[d,p]of Wa(e.prompts)){const f=mR(p);f&&a.set(d,f)}const o={};for(const[d,p]of Wa(e.models))o[d]={id:d,name:tt(p.name)??d,provider:tt(p.provider)??"unknown",model:tt(p.model)??d};const s={};for(const[d,p]of Wa(e.tools)){const f=tt(p.model);s[d]={description:"",...vR(p.type)?{type:p.type}:{},...f?{model:f}:{}}}const i={};if(hn(e.hooks))for(const[d,p]of Object.entries(e.hooks))typeof p=="string"&&(i[d]={id:d,hook:p});return{root:t,agents:n,catalog:r,prompts:a,lookup:{models:o,toolsCatalog:s,hooks:i}}}function pd(e,t){if(!t||!hn(e)||e.version!==1||!hn(e.prompts))return null;const n=e.prompts[t];return!hn(n)||typeof n.include_chat!="boolean"||typeof n.include_past_tools!="boolean"?null:{includeChat:n.include_chat,includePastTools:n.include_past_tools}}async function bR(e){const t=yR(e);if(!t)return null;const{agents:n,prompts:r,lookup:a}=t,o=g=>g?r.get(g)??null:null;function s(g){const v=n.get(g);return v?{agent:v,sides:[Or(v,"a",o(v.side_a_agent_prompt),a),Or(v,"b",o(v.side_b_agent_prompt),a)]}:null}const i=s(t.root);if(!i)return null;const d=await Zc(Ta(i.agent.id||i.agent.name),i.agent.name,i.sides,{catalog:t.catalog,loadComposition:async g=>{const v=s(g);if(!v)throw new Error(`The snapshot has no agent named ${g}.`);return v}}),p=[i.sides,...Object.values(d).flatMap(g=>g.status==="loaded"?[g.sides]:[])],f={models:a.models,toolsCatalog:a.toolsCatalog},m=Object.fromEntries(Tc(p).promptTools.map(g=>{const v=r.get(g);return[g,v?Cc(v,f):null]}));return Of({agent:i.agent,sides:i.sides,children:d,external:{functionTools:{},handoffs:{},promptTools:m},hooks:a.hooks})}function xR(e,t){const n=Dt(null),r=new Map,a=new Map;let o=0;return ve(()=>[e.value??null,t.value.definition_hash??null,t.value.prompt_name??null],async([s,i,d])=>{const p=++o;if(!s||!i||!d){n.value=null;return}const f=`${s}\0${i}`;if(a.has(f)){n.value=pd(a.get(f),d);return}n.value=null;let m=r.get(f);m||(m=Be.getJson(He(`/api/threads/${encodeURIComponent(s)}/definition-snapshots/${encodeURIComponent(i)}`)).then(g=>g.snapshot),r.set(f,m));try{const g=await m;a.set(f,g),p===o&&(n.value=pd(g,d))}catch{r.delete(f)}},{immediate:!0}),n}const kR={class:"space-y-4 px-4 pt-4 pb-4"},wR={key:0,class:"truncate font-mono text-neutral-700 dark:text-neutral-200"},_R={class:"truncate font-mono text-[11px] text-neutral-400 dark:text-neutral-500"},$R={class:"flex flex-wrap items-center gap-2 py-3"},IR={key:1,class:"text-xs text-red-600 dark:text-red-400"},SR={class:"ui-divide divide-y"},CR=["aria-expanded","onClick"],TR={class:"truncate font-mono text-neutral-900 dark:text-neutral-100"},MR={class:"pt-1 pb-3 pl-10"},AR={key:0,class:"mb-2 text-xs text-neutral-600 dark:text-neutral-400"},LR={class:"ui-divide divide-y pt-1"},RR={class:"m-0 max-h-[280px] overflow-auto whitespace-pre-wrap break-words pl-5 font-mono text-xs leading-relaxed text-neutral-600 dark:text-neutral-400"},ER={class:"m-0 max-h-[480px] overflow-auto whitespace-pre-wrap break-words pl-5 font-mono text-xs leading-relaxed text-neutral-800 dark:text-neutral-200"},PR={class:"flex flex-wrap gap-2 pl-5"},NR=["src","alt"],OR={key:1,class:"text-xs text-neutral-500 dark:text-neutral-400"},DR={class:"m-0 max-h-[480px] overflow-auto whitespace-pre-wrap break-words pl-5 font-mono text-xs leading-relaxed text-neutral-800 dark:text-neutral-200"},Rt=0,BR=36,FR=8,hd="__agentbuilder_system_prompt_view__",jR=we({__name:"LogDetails",props:{log:{},threadId:{},tab:{default:"response"}},emits:["effectClick"],setup(e,{emit:t}){const n=e,r=t,a=R(new Set),s=gl().items,i=R(null),d=R(null),p=R(null),f=R(null),m=R(null),g=R(null),v=R(new Set(["system_prompt","request_body","tools","reasoning_content","reasoning_details"])),_=ge=>n.threadId?ge.startsWith("data:")||ge.startsWith("http")?ge:Wr(n.threadId,ge):null,b=ge=>{const $e=zi(ge);return $e?_($e)||$e:void 0},C=x(()=>Br(n.log.tools_schema)),y=x(()=>Ag(n.log.response_body)),A=x(()=>Pg(n.log.tool_results)),L=x(()=>Lg(n.log.response_body).map(at)),k=x(()=>qg(n.log.reasoning_content)),S=x(()=>Eg(n.log.response_body)),T=x(()=>!n.log.is_complete),B=x(()=>n.log.is_complete?Rg(n.log.response_body)||n.log.content||"":n.log.content??""),q=x(()=>Dg(n.log.provider_tools)),H=x(()=>Br(n.log.queued_tools)),N=x(()=>Bg({toolCalls:y.value,queuedTools:H.value,providerToolCalls:q.value})),P=ge=>{a.value.has(ge)?a.value.delete(ge):a.value.add(ge)},U=ge=>{v.value.has(ge)?v.value.delete(ge):v.value.add(ge)},V=ge=>!v.value.has(ge),Y=x(()=>Ap(n.log)),$=x(()=>EA(Y.value)),D=x(()=>PA(n.log,$.value)),W=x(()=>NA($.value)),E=R("standard"),X=R(null),re=R(!1),ne=R(null);let de=0;const ue=x(()=>tL(Eh.value)),ae=()=>{E.value=Hi(n.log.provider)},xe=async(ge,$e)=>{const _e=++de;if(ge==="standard"){X.value=null,ne.value=null,re.value=!1;return}if(!n.threadId||!$e){ne.value="Missing thread or log ID",re.value=!1;return}re.value=!0,ne.value=null;try{const De=await Be.request(He(`/api/threads/${n.threadId}/logs/${$e}/inspect/${ge}`));if(_e!==de)return;X.value=await Be.readJson(De)}catch(De){if(_e!==de)return;ne.value=Ve(De),X.value=null}finally{_e===de&&(re.value=!1)}};ve(()=>n.log.id,ae,{immediate:!0}),Bp(()=>i.value,()=>n.log.id),ve([()=>n.log.id,E],async([ge,$e])=>{X.value=null,ne.value=null,await xe($e,ge)},{immediate:!0}),ve(()=>n.tab,async()=>{await Qe();const ge=i.value,$e=d.value;if(!ge||!$e)return;const _e=ge.getBoundingClientRect(),De=$e.getBoundingClientRect(),Xe=ge.scrollTop+(De.top-_e.top)-Rt;ge.scrollTop>Xe&&Ao(ge,{top:Xe})});const Re=x(()=>{if(E.value==="standard"||!X.value)return n.log.message_history;const{body:ge,messagesPath:$e}=X.value,_e=$e&&ge?ge[$e]:ge;return JSON.stringify(_e,null,2)}),Me=ge=>{if(!ge)return null;try{return JSON.parse(ge)}catch{return ge}},Ee=ge=>!!ge&&typeof ge=="object"&&!Array.isArray(ge),ke=x(()=>{const ge=Me(n.log.source_message_metadata);return Ee(ge)?ge:null}),ie=x(()=>{const ge=ke.value;if(!ge)return null;const $e=ge.scheduledEffect;if(!Ee($e))return null;const _e=typeof $e.id=="string"?$e.id:null,De=typeof $e.name=="string"?$e.name:null;return _e?{id:_e,name:De,reference:{id:_e,name:De}}:null}),se=x(()=>Ng(n.log.scheduled_effects)),me=x(()=>{const ge=Me(Re.value);return Array.isArray(ge)?ge.filter($e=>!!$e&&typeof $e=="object").map($e=>({role:typeof $e.role=="string"?$e.role:"message",raw:$e})):[]}),pe=ge=>ge.role==="system"&&typeof ge.raw.content=="string"&&typeof n.log.system_prompt=="string"&&ge.raw.content.trim()===n.log.system_prompt.trim(),Fe=x(()=>me.value.some(ge=>pe(ge))),fe=x(()=>me.value.length===0?Re.value:me.value.map(ge=>{const $e={...ge.raw};return pe(ge)&&($e.content=`[${hd}]`),$e})),Te=x(()=>{const ge=[];return Fe.value&&ge.push({token:hd,label:"view system prompt",action:"view-system-prompt"}),ge}),Z=ge=>{ge.action==="view-system-prompt"&&ee()},ee=async()=>{v.value.has("system_prompt")&&(v.value.delete("system_prompt"),v.value=new Set(v.value)),await Qe();const ge=i.value,$e=m.value?.contentRef;!ge||!$e||Ao(ge,{top:$e.offsetTop-Rt-BR-FR})},oe=x(()=>E.value==="standard"||!X.value?n.log.request_body:JSON.stringify(X.value.body,null,2)),Oe=x(()=>E.value==="standard"||!X.value?null:`${E.value} format`),F=x(()=>zg(n.log.request_body)),ce=xR(xt(n,"threadId"),xt(n,"log")),he=x(()=>iR({requestBody:n.log.request_body,promptName:n.log.prompt_name,promptSettings:ce.value,hookRuns:n.log.hook_runs}));ve(()=>n.log,()=>{Qe(()=>{p.value?.checkHeight(),f.value?.checkHeight(),m.value?.checkHeight(),g.value?.checkHeight()})});const Pe=x(()=>eR(n.log,{hasErrors:Y.value.length>0,toolCount:C.value.length})),We=async()=>await tR()??s.value;an(()=>{We().catch(()=>{})});const Ue=x(()=>{const ge=s.value;return ge?rR(n.log.input_tokens,Dp(ge,n.log)):null}),Se=x(()=>{const ge=Ue.value;return ge?`${ge.pct}% of context window: ${ge.inputTokens.toLocaleString("en-US")} of ${ge.maxContextTokens.toLocaleString("en-US")} tokens`:""});return(ge,$e)=>(l(),c("div",{ref_key:"scrollContainer",ref:i,class:"log-details-root h-full overflow-y-auto bg-white dark:bg-neutral-900"},[u("div",kR,[j(Ep,{figures:Pe.value},{label:be(({figure:_e})=>[_e.id==="tokens"&&Ue.value?(l(),K(h(Jn),{key:0,content:Se.value},{default:be(()=>[j(BL,{pct:Ue.value.pct},null,8,["pct"])]),_:1},8,["content"])):M("",!0),Ce(" "+w(_e.label),1)]),_:1},8,["figures"]),ie.value?(l(),c("button",{key:0,type:"button",class:"flex max-w-full items-center gap-1.5 text-xs text-neutral-500 transition-colors hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100",title:"Open responsible scheduled effect",onClick:$e[0]||($e[0]=_e=>r("effectClick",ie.value.reference))},[j(h(Bn),{size:13,class:"shrink-0"}),$e[15]||($e[15]=u("span",{class:"shrink-0"},"via scheduled effect",-1)),ie.value.name?(l(),c("span",wR,w(ie.value.name),1)):M("",!0),u("span",_R,w(ie.value.id),1)])):M("",!0),j($A,{summaries:$.value,route:D.value,"billing-url":W.value},null,8,["summaries","route","billing-url"]),se.value.length>0?(l(),K(Nt,{key:1,title:"Scheduled effects created",count:se.value.length,"section-id":"scheduled_effects",expanded:V("scheduled_effects"),"scroll-container":i.value,"sticky-offset":Rt,onToggle:$e[2]||($e[2]=_e=>U("scheduled_effects"))},{default:be(()=>[j(NL,{effects:se.value,onOpen:$e[1]||($e[1]=_e=>r("effectClick",_e))},null,8,["effects"])]),_:1},8,["count","expanded","scroll-container"])):M("",!0)]),u("div",{ref_key:"tabContentRef",ref:d,class:"ui-border border-t px-4 pb-6"},[$t(u("div",null,[u("div",$R,[$e[16]||($e[16]=u("span",{class:"text-xs text-neutral-500 dark:text-neutral-400"},"View as",-1)),j(Ph,{class:"w-52",size:"sm",clearable:!1,"model-value":E.value,options:ue.value,"search-placeholder":"Find a format","onUpdate:modelValue":$e[3]||($e[3]=_e=>E.value=h(Hi)(_e))},null,8,["model-value","options"]),re.value?(l(),K(et,{key:0,size:"xs"})):M("",!0),ne.value?(l(),c("span",IR,w(h(Ve)(ne.value)),1)):M("",!0)]),F.value?(l(),K(Pl,{key:0,class:"mb-3",title:"Vision input filtered for this request",lines:["This model does not support image input.",`Removed ${F.value.removedUserImageParts} user image part(s) and ${F.value.removedToolImageAttachments} tool image attachment(s) before sending the request.`,"Stored thread messages remain unchanged."]},null,8,["lines"])):M("",!0),u("div",SR,[C.value.length>0?(l(),K(Nt,{key:0,ref_key:"toolsSectionRef",ref:p,title:"Available tools",count:C.value.length,"section-id":"tools",expanded:V("tools"),"scroll-container":i.value,"sticky-offset":Rt,onToggle:$e[4]||($e[4]=_e=>U("tools"))},{default:be(()=>[(l(!0),c(te,null,Ie(C.value,(_e,De)=>(l(),c("div",{key:De},[u("button",{type:"button",class:"flex h-8 w-full items-center gap-2 rounded-md pr-2 pl-5 text-left text-xs transition-colors hover:bg-black/[0.035] dark:hover:bg-white/[0.04]","aria-expanded":a.value.has(De),onClick:Xe=>P(De)},[j(h(Et),{size:12,class:J(["shrink-0 text-neutral-400 transition-transform duration-150 dark:text-neutral-500",a.value.has(De)?"rotate-90":""])},null,8,["class"]),u("span",TR,w(h(Tg)(_e)),1)],8,CR),$t(u("div",MR,[h(qi)(_e)?(l(),c("p",AR,w(h(qi)(_e)),1)):M("",!0),j(Cn,{code:JSON.stringify(_e,null,2),language:"json"},null,8,["code"])],512),[[zt,a.value.has(De)]])]))),128))]),_:1},8,["count","expanded","scroll-container"])):M("",!0),e.log.message_history?(l(),K(Nt,{key:1,ref_key:"messagesSectionRef",ref:f,title:"Messages",count:e.log.message_history_length||0,subtitle:Oe.value,badges:he.value.messages,"section-id":"messages",expanded:V("messages"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":Re.value,onToggle:$e[5]||($e[5]=_e=>U("messages"))},{default:be(()=>[j(ca,{json:fe.value,"thread-id":e.threadId,actions:Te.value,onAction:Z},null,8,["json","thread-id","actions"])]),_:1},8,["count","subtitle","badges","expanded","scroll-container","copy-content"])):M("",!0),e.log.system_prompt?(l(),K(Nt,{key:2,ref_key:"systemPromptSectionRef",ref:m,title:"System prompt",badges:he.value.system_prompt,"section-id":"system_prompt",expanded:V("system_prompt"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":e.log.system_prompt,onToggle:$e[6]||($e[6]=_e=>U("system_prompt"))},{default:be(()=>[j(Cn,{code:e.log.system_prompt,language:"markdown"},null,8,["code"])]),_:1},8,["badges","expanded","scroll-container","copy-content"])):M("",!0),e.log.request_body?(l(),K(Nt,{key:3,ref_key:"requestBodySectionRef",ref:g,title:"Full request body",subtitle:Oe.value,"section-id":"request_body",expanded:V("request_body"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":oe.value,onToggle:$e[7]||($e[7]=_e=>U("request_body"))},{default:be(()=>[j(ca,{json:oe.value,"thread-id":e.threadId},null,8,["json","thread-id"])]),_:1},8,["subtitle","expanded","scroll-container","copy-content"])):M("",!0)])],512),[[zt,e.tab==="request"]]),$t(u("div",LR,[T.value&&e.log.reasoning_content?(l(),K(Nt,{key:0,title:"Thinking","section-id":"thinking",live:"",expanded:V("thinking"),"scroll-container":i.value,"sticky-offset":Rt,onToggle:$e[8]||($e[8]=_e=>U("thinking"))},{default:be(()=>[u("pre",RR,w(k.value),1)]),_:1},8,["expanded","scroll-container"])):M("",!0),B.value?(l(),K(Nt,{key:1,title:"Response text","section-id":"assistant_text",live:T.value,expanded:V("assistant_text"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":B.value,onToggle:$e[9]||($e[9]=_e=>U("assistant_text"))},{default:be(()=>[u("pre",ER,w(B.value),1)]),_:1},8,["live","expanded","scroll-container","copy-content"])):M("",!0),N.value.length>0?(l(),K(Nt,{key:2,title:"Tools called",count:N.value.length,"section-id":"tools_called",expanded:V("tools_called"),"scroll-container":i.value,"sticky-offset":Rt,onToggle:$e[10]||($e[10]=_e=>U("tools_called"))},{default:be(()=>[j(kL,{"tool-calls":N.value,"tool-results":A.value},null,8,["tool-calls","tool-results"])]),_:1},8,["count","expanded","scroll-container"])):M("",!0),S.value.length>0?(l(),K(Nt,{key:3,title:"Generated images",count:S.value.length,subtitle:"returned by the model","section-id":"generated_images",expanded:V("generated_images"),"scroll-container":i.value,"sticky-offset":Rt,onToggle:$e[11]||($e[11]=_e=>U("generated_images"))},{default:be(()=>[u("div",PR,[(l(!0),c(te,null,Ie(S.value,(_e,De)=>(l(),c(te,{key:De},[h(zi)(_e)?(l(),c("img",{key:0,src:b(_e),alt:`Generated image ${De+1}`,class:"max-h-[300px] max-w-[300px] rounded-md object-contain"},null,8,NR)):(l(),c("span",OR,"Image "+w(De+1)+" has no URL",1))],64))),128))])]),_:1},8,["count","expanded","scroll-container"])):M("",!0),e.log.reasoning_content&&!T.value?(l(),K(Nt,{key:4,title:"Reasoning",subtitle:"internal trace, not shown to users","section-id":"reasoning_content",expanded:V("reasoning_content"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":k.value||e.log.reasoning_content,onToggle:$e[12]||($e[12]=_e=>U("reasoning_content"))},{default:be(()=>[u("pre",DR,w(k.value),1)]),_:1},8,["expanded","scroll-container","copy-content"])):M("",!0),L.value.length>0?(l(),K(Nt,{key:5,title:"Reasoning details",count:L.value.length,subtitle:"structured trace from the provider","section-id":"reasoning_details",expanded:V("reasoning_details"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":JSON.stringify(L.value,null,2),onToggle:$e[13]||($e[13]=_e=>U("reasoning_details"))},{default:be(()=>[j(TL,{details:L.value},null,8,["details"])]),_:1},8,["count","expanded","scroll-container","copy-content"])):M("",!0),e.log.response_body?(l(),K(Nt,{key:6,title:"Full response body","section-id":"response_body",expanded:V("response_body"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":e.log.response_body,onToggle:$e[14]||($e[14]=_e=>U("response_body"))},{default:be(()=>[j(ca,{json:e.log.response_body,"thread-id":e.threadId},null,8,["json","thread-id"])]),_:1},8,["expanded","scroll-container","copy-content"])):M("",!0)],512),[[zt,e.tab==="response"]])],512)],512))}}),qR=ot(jR,[["__scopeId","data-v-d36eb756"]]),zR={class:"space-y-4 px-4 pt-4 pb-4"},VR={key:0,class:"whitespace-pre-wrap break-words text-sm text-neutral-800 dark:text-neutral-200"},HR={class:"ui-border space-y-3 border-t px-4 pt-3 pb-6"},UR={key:0,class:"flex items-start gap-2"},KR={class:"min-w-0 flex-1"},WR={class:"mt-1 whitespace-pre-wrap break-words text-sm leading-relaxed text-neutral-800 dark:text-neutral-200"},GR={key:1,class:"m-0 whitespace-pre-wrap break-words font-mono text-xs text-neutral-800 dark:text-neutral-200"},JR={key:2,class:"py-4 text-center text-xs text-neutral-500 dark:text-neutral-400"},XR=we({__name:"AppLogDetails",props:{log:{},threadId:{},tab:{default:"response"}},setup(e){const t=e,n=x(()=>Yo(t.log)),r=x(()=>[{id:"duration",label:"Duration",value:n.value.durationLabel},{id:"cost",label:"Cost",value:n.value.costLabel},{id:"level",label:"Level",value:n.value.level}]),a=x(()=>t.tab==="request"?n.value.request:n.value.response),o=R(!1),s=R(null);return Bp(()=>s.value,()=>t.log.id),(i,d)=>(l(),c("div",{ref_key:"scrollContainer",ref:s,class:"h-full overflow-y-auto bg-white dark:bg-neutral-900"},[u("div",zR,[n.value.message?(l(),c("p",VR,w(n.value.message),1)):M("",!0),j(Ep,{figures:r.value},null,8,["figures"])]),u("div",HR,[e.tab==="response"&&n.value.error?(l(),c("div",UR,[j(h(bc),{size:15,class:"mt-0.5 shrink-0 text-red-600 dark:text-red-400"}),u("div",KR,[d[1]||(d[1]=u("div",{class:"text-sm font-semibold text-red-700 dark:text-red-300"},"Error",-1)),u("p",WR,w(n.value.error),1)]),j(Ca,{content:n.value.error,variant:"ghost",size:"xs"},null,8,["content"])])):M("",!0),a.value?(l(),c(te,{key:1},[a.value.format==="json"?(l(),K(ca,{key:0,json:a.value.content,"thread-id":e.threadId,"show-copy-button":""},null,8,["json","thread-id"])):(l(),c("pre",GR,w(a.value.content),1))],64)):e.tab==="response"&&n.value.error?M("",!0):(l(),c("p",JR," No "+w(e.tab)+" recorded for this entry. ",1)),n.value.data?(l(),K(Nt,{key:3,title:"Data","section-id":"app_data",expanded:o.value,class:"ui-border border-t",onToggle:d[0]||(d[0]=p=>o.value=!o.value)},{default:be(()=>[j(ca,{json:n.value.data,"thread-id":e.threadId},null,8,["json","thread-id"])]),_:1},8,["expanded"])):M("",!0)])],512))}});function YR(e){return`'${e.replace(/'/g,"'\\''")}'`}function ZR(e,t){return e.split(/\r?\n/).some(n=>n===t)}function QR(e){const t="AGENTBUILDER_JSON";let n=t,r=2;for(;ZR(e,n);)n=`${t}_${r}`,r+=1;return n}function eE(e,t){const n=QR(t),r=`${e.trim()} <<'${n}'`,a=`node -e ${YR(["let s='';","process.stdin.on('data',c=>s+=c);","process.stdin.on('end',()=>{"," const m=s.match(/\\r?\\n\\r?\\n/);"," if(!m){process.stdout.write(s);return;}"," const head=s.slice(0,m.index);"," const body=s.slice(m.index+m[0].length).trim();"," process.stdout.write(head+'\\n\\n');"," try{process.stdout.write(JSON.stringify(JSON.parse(body),null,2)+'\\n');}"," catch{process.stdout.write(body+'\\n');}","});"].join(""))}`;return[`${r} | ${a}`,t,n].join(`
|
|
64
|
-
`)}function tE(e,t){const{copying:n,copied:r,error:a,copy:o}=$c();ve(()=>e()?.id,()=>{a.value=null});async function s(d){const p=d.provider?.toLowerCase(),f=t();if(!f||!d.id||!p||!jc(p))return null;try{const m=await Be.request(He(`/api/threads/${f}/logs/${d.id}/inspect/${p}`));return await Be.readJson(m)}catch{return null}}async function i(){const d=e();try{if(!d?.request_body||!d.model)throw new Error("Missing request data");const p=await Be.request(He(`/api/models/${encodeURIComponent(d.model)}/curl-data`)),f=await Be.readJson(p),m=await s(d),g=m?.body?JSON.stringify(m.body,null,2):Bc(d.request_body);await o(eE(f.curl,g))}catch(p){a.value=`Failed to copy cURL: ${Ve(p)}`}}return{copying:n,copied:r,error:a,copyCurl:i}}const nE="provider:";function rE(e){return e?.toLowerCase()==="openrouter"}function aE(e){if(e.actual_provider&&rE(e.provider))return{provider:"openrouter",model:`${nE}${e.actual_provider}`};const t=e.actual_provider||e.provider;return t?{provider:t}:null}function oE(e){const t=e.provider||e.actual_provider;if(!t)return null;const n=e.model_name||e.model||void 0;return n?{provider:t,model:n}:{provider:t}}function sE(e){if(!e)return null;if(ni(e)){const t=Yo(e);return{kind:"app",title:t.name,mono:!0,status:{tone:GL(t.tone),label:t.badge},curl:!1}}return{kind:"llm",title:e.prompt_name||e.model_name||e.model,mono:!1,status:WL(e,Ap(e).length>0),curl:!!(e.request_body&&e.model)}}function jp(e){return e.length>10?`${e.slice(0,8)}…`:e}const lE={key:0,class:"inline-flex min-w-0 items-center gap-1.5"},iE=["src","alt"],uE={class:"truncate"},dE={key:1,class:"inline-flex min-w-0 items-center gap-1.5"},cE=["src","alt"],fE={class:"truncate font-mono text-[11px]"},pE={key:2,class:"truncate font-mono text-[11px]"},hE={key:2},mE=["title"],gE={key:4,class:"font-mono text-[11px]"},vE={class:"truncate font-mono text-[11px]"},md="inline-flex min-w-0 items-center gap-1 rounded transition-colors hover:text-neutral-900 dark:hover:text-neutral-100",yE=we({__name:"LlmLogMeta",props:{log:{}},setup(e){const t=e,n=gl();an(()=>void n.ensureLoaded());const r=x(()=>Dp(n.items.value,t.log)),a=x(()=>{const i=pc(t.log.request_body);return i?hc(i,t.log.prompt_name):null}),o=x(()=>{const i=aE(t.log);if(!i)return null;const d=i.model?`?model=${encodeURIComponent(i.model)}`:"";return He(`/api/providers/${encodeURIComponent(i.provider)}/icon${d}`)}),s=x(()=>{const i=oE(t.log);return i?.model?He(`/api/providers/${encodeURIComponent(i.provider)}/icon?model=${encodeURIComponent(i.model)}`):null});return(i,d)=>{const p=It("RouterLink");return l(),c(te,null,[e.log.actual_provider||e.log.provider?(l(),c("span",lE,[o.value?(l(),c("img",{key:0,src:o.value,alt:e.log.actual_provider||e.log.provider||"provider",class:"h-3.5 w-3.5 shrink-0 rounded-[2px] object-contain"},null,8,iE)):M("",!0),u("span",uE,w(e.log.actual_provider||e.log.provider),1)])):M("",!0),h(xr)(e.log)?(l(),c("span",dE,[s.value?(l(),c("img",{key:0,src:s.value,alt:h(xr)(e.log)??"model",class:"h-3.5 w-3.5 shrink-0 rounded-[2px] object-contain"},null,8,cE)):M("",!0),r.value?(l(),K(p,{key:1,to:h(Rr).model(r.value.name),class:J(md),title:`Open the ${r.value.name} model page`,onClick:d[0]||(d[0]=Je(()=>{},["stop"]))},{default:be(()=>[u("span",fE,w(h(xr)(e.log)),1)]),_:1},8,["to","title"])):(l(),c("span",pE,w(h(xr)(e.log)),1))])):M("",!0),j(Ra,{timestamp:e.log.created_at,class:"tabular-nums"},null,8,["timestamp"]),e.log.finish_reason?(l(),c("span",hE,"finish: "+w(e.log.finish_reason),1)):M("",!0),a.value?(l(),c("span",{key:3,class:J(["inline-flex items-center gap-1",a.value.warning?"text-amber-700 dark:text-amber-300":""]),title:a.value.headerHint},[a.value.warning?(l(),K(h(Cl),{key:0,size:12,class:"shrink-0","aria-hidden":"true"})):M("",!0),Ce(" "+w(a.value.header),1)],10,mE)):M("",!0),e.log.id?(l(),c("span",gE,"log "+w(h(jp)(e.log.id)),1)):M("",!0),gt(i.$slots,"default"),e.log.prompt_name?(l(),K(p,{key:5,to:h(Rr).prompt(e.log.prompt_name),class:J(["ml-auto",md]),onClick:d[1]||(d[1]=Je(()=>{},["stop"]))},{default:be(()=>[d[2]||(d[2]=Ce(" Prompt ",-1)),u("span",vE,w(e.log.prompt_name),1),j(h(Xl),{class:"h-3 w-3 shrink-0"})]),_:1},8,["to","class"])):M("",!0)],64)}}}),bE=we({__name:"LogStatusLabel",props:{tone:{},label:{}},setup(e){const t={live:"bg-amber-500 log-status-pulse",success:"bg-emerald-500",error:"bg-red-500",warn:"bg-amber-500",neutral:"bg-neutral-400 dark:bg-neutral-500"},n={live:"text-neutral-700 dark:text-neutral-300",success:"text-neutral-700 dark:text-neutral-300",error:"text-red-700 dark:text-red-300",warn:"text-amber-700 dark:text-amber-300",neutral:"text-neutral-500 dark:text-neutral-400"};return(r,a)=>(l(),c("span",{class:J(["inline-flex shrink-0 items-center gap-1.5 text-xs font-medium",n[e.tone]])},[u("span",{class:J(["inline-block h-1.5 w-1.5 rounded-full",t[e.tone]]),"aria-hidden":"true"},null,2),Ce(" "+w(e.label),1)],2))}}),xE=ot(bE,[["__scopeId","data-v-c24bfd8b"]]),kE={class:"shrink-0 bg-white px-2 pt-2 pb-2 dark:bg-neutral-900"},wE={class:"flex min-w-0 items-center gap-1"},_E=["disabled"],$E=["disabled"],IE={class:"ml-1 flex min-w-0 flex-1 items-center gap-2.5"},SE={class:"flex shrink-0 items-center gap-0.5"},CE=["disabled","title"],TE={key:1},ME={key:0,class:"mt-1 flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 pl-2 text-xs text-neutral-500 dark:text-neutral-400"},AE={key:0,class:"flex min-w-0 items-center gap-1.5"},LE=["title"],RE={class:"font-mono text-[11px]"},EE={key:0,class:"text-red-600 dark:text-red-400"},Is="inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-black/[0.05] hover:text-neutral-900 disabled:pointer-events-none disabled:opacity-30 dark:text-neutral-400 dark:hover:bg-white/[0.07] dark:hover:text-neutral-100",PE=we({__name:"LogDetailHeader",props:{log:{},threadId:{},hasPrevious:{type:Boolean},hasNext:{type:Boolean}},emits:["previous","next","close"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>sE(n.log)),o=x(()=>n.log&&a.value?.kind==="app"?Yo(n.log):null),s=tE(()=>n.log,()=>n.threadId),i=x(()=>s.error.value?s.error.value:a.value?.curl?"Copy cURL command":"No request data available");return(d,p)=>(l(),c("header",kE,[u("div",wE,[u("button",{type:"button",class:J(Is),disabled:!e.hasPrevious,"aria-label":"Previous log",title:"Previous log",onClick:p[0]||(p[0]=f=>r("previous"))},[j(h(xc),{size:15})],8,_E),u("button",{type:"button",class:J(Is),disabled:!e.hasNext,"aria-label":"Next log",title:"Next log",onClick:p[1]||(p[1]=f=>r("next"))},[j(h(Et),{size:15})],8,$E),u("div",IE,[a.value?(l(),K(xE,{key:0,tone:a.value.status.tone,label:a.value.status.label},null,8,["tone","label"])):M("",!0),u("h3",{class:J(["min-w-0 flex-1 truncate text-[15px] font-medium text-neutral-900 dark:text-neutral-100",a.value?.mono?"font-mono":""])},w(a.value?.title??""),3)]),u("div",SE,[u("button",{type:"button",class:"inline-flex h-7 items-center rounded-md px-2 text-xs font-medium text-neutral-600 transition-colors hover:bg-black/[0.05] hover:text-neutral-900 disabled:pointer-events-none disabled:opacity-40 dark:text-neutral-300 dark:hover:bg-white/[0.07] dark:hover:text-neutral-100",disabled:h(s).copying.value||!a.value?.curl,title:i.value,onClick:p[2]||(p[2]=(...f)=>h(s).copyCurl&&h(s).copyCurl(...f))},[h(s).copying.value?(l(),K(et,{key:0,size:"xs"})):(l(),c("span",TE,w(h(s).copied.value?"Copied":"Copy cURL"),1))],8,CE),u("button",{type:"button",class:J(Is),"aria-label":"Close details",title:"Close",onClick:p[3]||(p[3]=f=>r("close"))},[j(h(cn),{size:15})])])]),e.log?(l(),c("div",ME,[o.value?(l(),c(te,{key:0},[o.value.triggerLine?(l(),c("span",AE,[p[4]||(p[4]=u("span",null,"Trigger",-1)),u("span",{class:"truncate font-mono text-[11px]",title:o.value.triggerLine},w(o.value.triggerLine),9,LE)])):M("",!0),j(Ra,{timestamp:e.log.created_at,class:"tabular-nums"},null,8,["timestamp"]),u("span",RE,"log "+w(h(jp)(e.log.id)),1)],64)):(l(),K(yE,{key:1,log:e.log},{default:be(()=>[h(s).error.value?(l(),c("span",EE,w(h(Ve)(h(s).error.value)),1)):M("",!0)]),_:1},8,["log"]))])):M("",!0)]))}}),NE={role:"cell",class:"whitespace-nowrap px-3 py-2 text-xs"},OE=["title"],DE={key:1,class:"text-neutral-400"},qp=we({__name:"LogSideCell",props:{label:{}},setup(e){return(t,n)=>(l(),c("div",NE,[e.label?(l(),c("span",{key:0,class:"block max-w-40 truncate text-neutral-600 dark:text-neutral-400",title:e.label},w(e.label),9,OE)):(l(),c("span",DE,"—"))]))}}),BE=["aria-selected","data-log-level"],FE={role:"cell",class:"whitespace-nowrap px-3 py-2 text-xs"},jE={class:"flex min-w-0 items-center gap-1 whitespace-nowrap"},qE={key:0,class:"mr-1 text-neutral-400 dark:text-neutral-600"},zE={role:"cell",class:"min-w-0 overflow-hidden whitespace-nowrap px-3 py-2"},VE=["title"],HE={role:"cell",class:"whitespace-nowrap px-3 py-2 font-mono text-xs"},UE={key:1,class:"font-sans text-neutral-400"},KE={class:"flex min-w-0 items-center gap-1.5"},WE=["title"],GE={key:0,class:"shrink-0 font-mono text-[11px] text-neutral-400 dark:text-neutral-500"},JE=we({__name:"AppLogRow",props:{log:{},depth:{},sideLabel:{},selected:{type:Boolean},highlighted:{type:Boolean},detailsOpen:{type:Boolean}},emits:["select","navigate","hover"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>Yo(n.log));return(o,s)=>(l(),c("div",{role:"row",tabindex:"0","aria-selected":e.selected,"data-log-level":a.value.level,class:J(["logs-grid-row logs-row ui-border-subtle group relative cursor-pointer border-b transition-colors",{"last:border-b-0":e.detailsOpen,"logs-row-error":a.value.tone==="error","logs-row-selected":e.selected,"agents-surface-selected agents-text-selected agents-border-selected":e.selected,"agents-surface-hover":!e.selected&&e.highlighted}]),onClick:s[0]||(s[0]=i=>r("select")),onKeydown:s[1]||(s[1]=i=>r("navigate",i)),onMouseenter:s[2]||(s[2]=i=>r("hover",!0)),onMouseleave:s[3]||(s[3]=i=>r("hover",!1))},[u("div",FE,[u("div",jE,[e.depth>0?(l(),c("span",qE,"└─")):M("",!0),u("span",{class:J(["font-mono text-[11px] font-medium",h(VL)[a.value.tone]])},w(a.value.badge),3)])]),j(qp,{label:e.sideLabel},null,8,["label"]),u("div",zE,[u("span",{class:"block truncate font-mono text-xs",title:a.value.name},w(a.value.name),9,VE)]),u("div",HE,[a.value.costLabel?(l(),c(te,{key:0},[Ce(w(a.value.costLabel),1)],64)):(l(),c("span",UE,"—"))]),u("div",{role:"cell",class:J(["min-w-0 overflow-hidden whitespace-nowrap px-3 py-2 text-xs",e.selected?"text-neutral-800 dark:text-neutral-100":"text-neutral-600 dark:text-neutral-400"])},[u("span",KE,[u("span",{class:"min-w-0 truncate",title:a.value.summary??void 0},w(a.value.summary??"—"),9,WE),a.value.durationLabel?(l(),c("span",GE,w(a.value.durationLabel),1)):M("",!0)])],2),u("div",{role:"cell",class:J(["whitespace-nowrap px-3 py-2 text-right text-xs",e.selected?"text-neutral-800 dark:text-neutral-100":"text-neutral-500 dark:text-neutral-500"])},[j(Ra,{timestamp:e.log.created_at},null,8,["timestamp"])],2)],42,BE))}}),XE=ot(JE,[["__scopeId","data-v-06ba4fe2"]]),YE={class:"min-w-full"},ZE=["disabled"],QE={key:1},e6={key:2},t6={key:3},n6={role:"table",class:"logs-grid w-full text-sm"},r6={role:"row",class:"logs-grid-row sticky top-0 z-20 bg-white after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-(--color-border) dark:bg-neutral-900"},a6=["aria-selected","data-child-thread","onClick","onKeydown","onMouseenter"],o6={role:"cell",class:"whitespace-nowrap px-3 py-2 text-xs"},s6=["title"],l6=["aria-expanded","aria-label","title","onClick"],i6={key:1,class:"size-4 shrink-0","aria-hidden":"true"},u6={key:3,class:"text-neutral-400 dark:text-neutral-600 mr-1"},d6={key:6},c6={role:"cell",class:"min-w-0 overflow-hidden whitespace-nowrap px-3 py-2"},f6={class:"flex min-w-0 items-center gap-2 whitespace-nowrap"},p6={key:0,class:"inline-flex shrink-0 text-neutral-500 dark:text-neutral-400",title:"Stopped by user"},h6={key:1,class:"shrink-0 text-red-600 dark:text-red-400",title:"Error"},m6=["title"],g6=["title"],v6={role:"cell",class:"whitespace-nowrap px-3 py-2 font-mono text-xs"},y6={key:1,class:"inline-flex items-center gap-1"},b6=["title"],x6=["title"],k6={key:2,class:"inline-flex shrink-0",title:"Cached tokens dropped vs the previous request for this prompt (prompt cache miss)","aria-label":"Cached tokens dropped vs the previous request for this prompt (prompt cache miss)"},w6={key:1,class:"text-neutral-400"},_6=["title"],$6={class:"min-w-0 overflow-hidden text-ellipsis whitespace-nowrap"},I6={key:0,class:"text-emerald-600 dark:text-emerald-400",title:"Programmatically called with state.queueTool()"},S6=["title"],C6={key:2},T6={key:0,class:"shrink-0 rounded border border-neutral-200 bg-neutral-50 px-1 py-px text-[11px] font-medium text-neutral-500 dark:border-neutral-800 dark:bg-neutral-900 dark:text-neutral-400"},M6=we({__name:"LogsTable",props:{logs:{},hasMore:{type:Boolean},isLoadingMore:{type:Boolean},isLoadingForLog:{type:Boolean},autoLoadEnabled:{type:Boolean},detailsOpen:{type:Boolean},selectedLogIdForDetails:{},selectedLogId:{},hoveredLogId:{},cacheDecreasedLogIds:{}},emits:["loadMore","selectLog","navigateLog","logHover","rowRef","toggleChildren"],setup(e,{emit:t}){const n=e;function r(P){if(P instanceof Element)return P;if(P&&typeof P=="object"&&"$el"in P){const U=P.$el;return U instanceof Element?U:null}return null}function a(P){return P.error_type==="user_interrupted"?!0:!P.error_type&&/interrupted by user|stopped by user/i.test(P.error??"")}const o=t,s=x(()=>n.logs.some(P=>P.children)),i=P=>`${P?"Hide":"Show"} the child thread's log rows`,d=P=>P.nested?`${P.nested.label}${P.nested.inferred?" (inferred: no row records which call started this child run)":""}`:void 0,p=R(null),f=R(0),m=R(null);let g=null,v=!1;const _=()=>{g?.disconnect(),g=null,v=!1;const P=m.value;if(!P||typeof IntersectionObserver>"u")return;const U=P.closest(".logs-list-container");U&&(g=new IntersectionObserver(V=>{v=V.some(Y=>Y.isIntersecting),v&&n.autoLoadEnabled&&!n.isLoadingMore&&o("loadMore")},{root:U,threshold:0}),g.observe(P))};ve(m,()=>_()),ve(()=>n.isLoadingMore,async(P,U)=>{!U||P||(await Qe(),v&&n.hasMore&&n.autoLoadEnabled&&o("loadMore"))}),Ft(()=>{g?.disconnect(),g=null});let b=null,C=null;const y=new Map,A=P=>{if(!P)return[];try{const U=JSON.parse(P);return Array.isArray(U)?U:[]}catch{return[]}},L=P=>{const U=P.error?CA(P.error_origin):null;return[...A(P.tools_called).map(V=>({name:V,isProgrammatic:!1})),...A(P.provider_tools).map(V=>({name:V.name||V.type||"provider_tool",isProgrammatic:!1})),...A(P.queued_tools).map(V=>({name:V.function?.name||"unknown",isProgrammatic:!0}))].map(V=>({...V,failed:V.name===U}))},k=P=>P.map(U=>U.name).join(", "),S=()=>C||(typeof document>"u"?null:(C=document.createElement("canvas").getContext("2d"),C&&(C.font="12px ui-sans-serif, system-ui, sans-serif"),C)),T=P=>{const U=y.get(P);if(U!==void 0)return U;const Y=S()?.measureText(P).width??P.length*7;return y.set(P,Y),Y},B=(P,U)=>{const V=T(k(P)),Y=P.filter(W=>W.isProgrammatic).length*14,$=U>0?T(`+${U} more`)+18:0,D=U>0?6:0;return V+Y+$+D},q=P=>{const U=k(P);if(P.length<=1)return{tools:P,hiddenCount:0,title:U};const V=f.value-24;if(V<=0)return{tools:P.slice(0,1),hiddenCount:P.length-1,title:U};for(let Y=P.length;Y>0;Y-=1){const $=P.slice(0,Y),D=P.length-Y;if(B($,D)<=V)return{tools:$,hiddenCount:D,title:U}}return{tools:P.slice(0,1),hiddenCount:P.length-1,title:U}},H=P=>q(L(P)).tools.some(U=>U.failed),N=()=>{f.value=p.value?.clientWidth??0};return an(async()=>{await Qe(),N(),typeof ResizeObserver<"u"&&p.value&&(b=new ResizeObserver(N),b.observe(p.value))}),Ft(()=>{b?.disconnect(),b=null}),(P,U)=>(l(),c("div",YE,[e.hasMore?(l(),c("div",{key:0,ref_key:"loadOlderSentinelRef",ref:m,class:"border-b border-neutral-200 dark:border-neutral-800"},[u("button",{onClick:U[0]||(U[0]=V=>o("loadMore")),disabled:e.isLoadingMore||e.isLoadingForLog,type:"button",class:"w-full px-3 py-2 text-xs font-medium text-neutral-500 dark:text-neutral-400 hover:bg-neutral-100 dark:hover:bg-neutral-900 transition-colors disabled:cursor-not-allowed flex items-center justify-center gap-2"},[e.isLoadingMore||e.isLoadingForLog?(l(),K(et,{key:0,size:"xs"})):M("",!0),e.isLoadingForLog?(l(),c("span",QE,"Loading to find log...")):e.isLoadingMore?(l(),c("span",e6,"Loading older logs...")):(l(),c("span",t6,"Load older logs"))],8,ZE)],512)):M("",!0),u("div",n6,[u("div",r6,[U[3]||(U[3]=u("div",{role:"columnheader",class:"whitespace-nowrap px-3 py-1.5 text-left text-xs font-medium"}," Prompt ",-1)),U[4]||(U[4]=u("div",{role:"columnheader",class:"whitespace-nowrap px-3 py-1.5 text-left text-xs font-medium"}," Side ",-1)),U[5]||(U[5]=u("div",{role:"columnheader",class:"whitespace-nowrap px-3 py-1.5 text-left text-xs font-medium"}," Model ",-1)),U[6]||(U[6]=u("div",{role:"columnheader",class:"whitespace-nowrap px-3 py-1.5 text-left text-xs font-medium"}," Cost ",-1)),u("div",{ref_key:"toolsHeaderRef",ref:p,role:"columnheader",class:"min-w-0 truncate px-3 py-1.5 text-left text-xs font-medium",title:"Tools called"}," Tools called ",512),U[7]||(U[7]=u("div",{role:"columnheader",class:"whitespace-nowrap px-3 py-1.5 text-right text-xs font-medium"}," Called at ",-1))]),(l(!0),c(te,null,Ie(e.logs,V=>(l(),c(te,{key:V.id},[h(ni)(V)?(l(),K(XE,{key:0,ref_for:!0,ref:Y=>o("rowRef",V.id,r(Y)),log:V,depth:V.depth,"side-label":V.sideLabel,selected:e.selectedLogIdForDetails===V.id,highlighted:V.id===n.selectedLogId||V.id===n.hoveredLogId,"details-open":e.detailsOpen,onSelect:Y=>o("selectLog",V),onNavigate:Y=>o("navigateLog",Y,V),onHover:Y=>o("logHover",Y?V.id:null)},null,8,["log","depth","side-label","selected","highlighted","details-open","onSelect","onNavigate","onHover"])):(l(),c("div",{key:1,ref_for:!0,ref:Y=>o("rowRef",V.id,r(Y)),role:"row",tabindex:"0","aria-selected":e.selectedLogIdForDetails===V.id,"data-child-thread":V.nested?.threadId,class:J(["logs-grid-row logs-row ui-border-subtle group relative cursor-pointer border-b transition-colors",{"last:border-b-0":e.detailsOpen,"logs-row-error":V.error&&!a(V),"logs-row-selected":e.selectedLogIdForDetails===V.id,"agents-surface-selected agents-text-selected agents-border-selected":e.selectedLogIdForDetails===V.id,"agents-surface-hover":e.selectedLogIdForDetails!==V.id&&(V.id===n.selectedLogId||V.id===n.hoveredLogId)}]),onClick:Y=>o("selectLog",V),onKeydown:Y=>o("navigateLog",Y,V),onMouseenter:Y=>o("logHover",V.id),onMouseleave:U[2]||(U[2]=Y=>o("logHover",null))},[u("div",o6,[u("div",{class:"flex min-w-0 items-center gap-1 whitespace-nowrap",style:nt(V.nested?{paddingLeft:`${V.depth*20}px`}:void 0),title:d(V)},[V.children?(l(),c("button",{key:0,type:"button",class:"flex size-4 shrink-0 items-center justify-center rounded text-neutral-500 outline-none transition-colors hover:bg-black/[0.06] hover:text-neutral-800 focus-visible:ring-2 focus-visible:ring-accent-500 dark:text-neutral-400 dark:hover:bg-white/[0.08] dark:hover:text-neutral-200","aria-expanded":V.children.expanded,"aria-label":i(V.children.expanded),title:i(V.children.expanded),onClick:Je(Y=>o("toggleChildren",V),["stop"]),onKeydown:U[1]||(U[1]=Je(()=>{},["stop"]))},[V.children.loading?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(Et),{key:1,size:12,class:J(["transition-transform motion-reduce:transition-none",V.children.expanded?"rotate-90":""])},null,8,["class"]))],40,l6)):s.value&&!V.nested?(l(),c("span",i6)):M("",!0),V.nested?(l(),K(Mn,{key:2,icon:V.nested.avatar.icon,seed:V.nested.avatar.seed,class:"mr-0.5 size-4 shrink-0 rounded object-cover"},null,8,["icon","seed"])):V.depth>0?(l(),c("span",u6,"└─")):M("",!0),V.retry_of_log_id?(l(),K(h(cm),{key:4,size:14,class:"text-neutral-500 dark:text-neutral-400 flex-shrink-0"})):M("",!0),!V.is_complete&&!V.prompt_name?(l(),K(et,{key:5,size:"xs"})):(l(),c("span",d6,w(V.prompt_name||"—"),1))],12,s6)]),j(qp,{label:V.sideLabel},null,8,["label"]),u("div",c6,[u("div",f6,[a(V)?(l(),c("span",p6,[j(h(fm),{size:12,class:"mt-0.5"})])):V.error&&!H(V)?(l(),c("span",h6," ✕ ")):M("",!0),V.error&&!a(V)&&!H(V)&&h(no)(V.error_origin)?(l(),c("span",{key:2,class:"max-w-28 truncate font-mono text-[11px] font-medium text-red-600 dark:text-red-400",title:`Error origin: ${h(no)(V.error_origin)}`},w(h(no)(V.error_origin)),9,m6)):M("",!0),u("span",{class:"min-w-0 truncate font-mono text-xs",title:h(xr)(V)??void 0},w(h(xr)(V)),9,g6)])]),u("div",v6,[!V.is_complete&&(V.cost_total===null||V.cost_total===void 0)?(l(),K(et,{key:0,size:"xs"})):(l(),c("span",y6,[h(id)(V)?(l(),c("span",{key:0,title:h(Lo)(V).note??void 0},w(h(id)(V)),9,b6)):(l(),c("span",{key:1,class:"font-sans text-neutral-400",title:h(Lo)(V).note??void 0},"—",8,x6)),e.cacheDecreasedLogIds?.has(V.id)?(l(),c("span",k6,[j(h(pm),{size:12,class:"text-amber-500 dark:text-amber-400"})])):M("",!0)]))]),u("div",{role:"cell",class:J(["min-w-0 overflow-hidden whitespace-nowrap px-3 py-2 text-xs",e.selectedLogIdForDetails===V.id?"text-neutral-800 dark:text-neutral-100":"text-neutral-600 dark:text-neutral-400"])},[!V.is_complete&&L(V).length===0?(l(),K(et,{key:0,size:"xs"})):L(V).length===0?(l(),c("span",w6,"—")):(l(),c("span",{key:2,class:"flex min-w-0 items-center gap-1.5",title:q(L(V)).title},[u("span",$6,[(l(!0),c(te,null,Ie(q(L(V)).tools,(Y,$)=>(l(),c(te,{key:$},[Y.isProgrammatic?(l(),c("span",I6,[j(h(hm),{size:11,class:"inline-block -mt-0.5 mr-0.5"}),Ce(w(Y.name),1)])):(l(),c("span",{key:1,class:J({"text-red-600 dark:text-red-400":Y.failed}),title:Y.failed?"This tool failed":void 0},w(Y.name),11,S6)),$<q(L(V)).tools.length-1?(l(),c("span",C6,", ")):M("",!0)],64))),128))]),q(L(V)).hiddenCount>0?(l(),c("span",T6," +"+w(q(L(V)).hiddenCount)+" more ",1)):M("",!0)],8,_6))],2),u("div",{role:"cell",class:J(["whitespace-nowrap px-3 py-2 text-right text-xs",e.selectedLogIdForDetails===V.id?"text-neutral-800 dark:text-neutral-100":"text-neutral-500 dark:text-neutral-500"])},[j(Ra,{timestamp:V.created_at},null,8,["timestamp"])],2)],42,a6))],64))),128))])]))}}),A6=ot(M6,[["__scopeId","data-v-bcd99a9b"]]),zp=Symbol("logDetailView"),L6="agents.logs.detailView",R6=["request","response","trace"];function E6(e){return R6.find(t=>t===e)??"response"}function P6(e){return[{value:"request",label:"Request"},{value:"response",label:"Response"},...e?[{value:"trace",label:"Trace"}]:[]]}function N6(e,t){return e==="trace"&&!t?"response":e}const In=new Set(["subagent_create","subagent_message"]),Vp=e=>!!e&&typeof e=="object"&&!Array.isArray(e),ro=e=>typeof e=="string"&&e.length>0?e:null,Hp=e=>typeof e=="number"&&Number.isFinite(e)?e:null;function xa(e,t,n,r){if(!e)return[];try{const a=JSON.parse(e);if(Array.isArray(a))return a}catch{}return r.push({logId:t,field:n,message:"Expected a JSON array"}),[]}function O6(e){const t=[],n=xa(e.tools_called,e.id,"tools_called",t),a=[...xa(e.tool_results,e.id,"tool_results",t).filter(Vp)],o=n.flatMap((s,i)=>{if(typeof s!="string")return t.push({logId:e.id,field:"tools_called",message:"Expected a tool name"}),[];const d=a.findIndex(g=>g.tool_name===s),p=d<0?null:a.splice(d,1)[0],f=p?ro(p.action_id):null,m=p?.status==="error"||p?.status==="failed"||e.error_origin===`tool:${s}`&&n.lastIndexOf(s)===i;return[{id:f??`${e.id}:tool:${i}`,name:s,sequence:p?Hp(p.action_sequence):null,outcome:m?"failed":p||e.is_complete?"ok":"running",inferred:!f}]});return a.length&&t.push({logId:e.id,field:"tool_results",message:"A result has no matching call"}),{calls:o,errors:t}}function ai(e){if(e.tool_results==null)return{id:e.id,tool_results:e.tool_results};const t=[],n=xa(e.tool_results,e.id,"tool_results",t).filter(Vp);return{id:e.id,tool_results:t.length>0?"invalid":JSON.stringify(n.map(r=>({tool_name:ro(r.tool_name)??void 0,action_id:ro(r.action_id)??void 0,action_sequence:Hp(r.action_sequence)??void 0,status:ro(r.status)??void 0})))}}function D6(e,t){const n=e.tool_results??(t?.id===e.id?t.tool_results:void 0);return n==null?e:{...e,tool_results:ai({id:e.id,tool_results:n}).tool_results}}function Up(e){if(!e.tools_called)return[];try{const t=JSON.parse(e.tools_called);return Array.isArray(t)?t.filter(n=>typeof n=="string"):[]}catch{return[]}}function Kp(e){return Up(e).some(t=>In.has(t))}const Ss=e=>Up(e).filter(t=>t==="subagent_create").length,Wp=(e,t)=>e.created_at-t.created_at;function B6(e,t,n,r){const a=new Set,o=(s,i)=>s.trigger_log_id===e&&(!s.trigger_thread_id||s.trigger_thread_id===t)||!!s.trigger_log_id&&i.has(s.trigger_log_id)&&s.trigger_thread_id===n;for(;;){const s=new Set(r.filter(d=>d.run_id&&a.has(d.run_id)).map(d=>d.id)),i=r.filter(d=>d.run_id&&!a.has(d.run_id)&&o(d,s));if(i.length===0)break;for(const d of i)d.run_id&&a.add(d.run_id)}return r.filter(s=>s.run_id&&a.has(s.run_id))}function F6(e,t,n,r,a){const o=r.flatMap(m=>{const g=a.get(m.threadId)??[],v=B6(e.id,t,m.threadId,g);return v.length>0?[{child:m,rows:v,inferred:!1}]:[]});if(o.length>0)return o;const s=n.filter(Kp).sort(Wp),i=s.findIndex(m=>m.id===e.id);if(i<0)return[];const d=s.slice(0,i).reduce((m,g)=>m+Ss(g),0),p=Ss(e)>0?r.slice(d,d+Ss(e)):[],f=s[i+1]?.created_at??Number.POSITIVE_INFINITY;return(p.length>0?p:r).flatMap(m=>{const g=(a.get(m.threadId)??[]).filter(v=>v.created_at>=e.created_at&&v.created_at<f);return g.length>0?[{child:m,rows:g,inferred:!0}]:[]})}const j6=e=>[e.relationship??e.agentName??"Subagent",e.instance].filter(t=>!!t).join(" · ");function q6(e,t,n){return e.flatMap(r=>{const a=(t.get(r.id)??[]).flatMap(o=>[...o.rows].sort(Wp).map(s=>({...s,depth:r.depth+1,nested:{threadId:o.child.threadId,agentName:o.child.agentName,label:j6(o.child),avatar:n(o.child),inferred:o.inferred}})));return[r,...a]})}const oi=1e3,tn=e=>typeof e=="string"&&e?e:null;function z6(e){return(e.subagents??[]).flatMap(t=>{const n=tn(t.id);return n?[{threadId:n,relationship:tn(t.relationship),agentName:tn(t.agent_name),title:tn(t.threadName)??tn(t.title),instance:tn(t.threadName)}]:[]})}async function sl(e){const t=await Be.getJson(He(`/api/threads/${encodeURIComponent(e)}/subagents`));return z6(t)}async function ll(e){return(await Be.getJson(He(`/api/threads/${encodeURIComponent(e)}/logs?limit=${oi}&offset=0&order=asc`))).logs??[]}async function V6(e){const t=await Be.getJson(He(`/api/threads/${encodeURIComponent(e)}/effects?limit=500&offset=0`));return new Map((t.effects??[]).flatMap(n=>{const r=tn(n.id),a=tn(n.name);return r&&a?[[r,a]]:[]}))}async function H6(e,t){const n=new URLSearchParams({ids:t.join(","),includeSilent:"true"}),r=await Be.getJson(He(`/api/threads/${encodeURIComponent(e)}/messages?${n}`));return new Map((r.messages??[]).flatMap(a=>{const o=tn(a.id),s=tn(a.role);return o&&s?[[o,{role:s,silent:a.silent===!0}]]:[]}))}function U6(e,t){const n=R(new Set),r=R(new Set),a=Dt(new Map),o=R(null);let s=0;ve(e,()=>{s++,n.value=new Set,r.value=new Set,a.value=new Map,o.value=null});const i=(m,g)=>new Set([...m].filter(v=>v!==g));async function d(m){const g=e.value;if(!g)return;const v=s;n.value=new Set([...n.value,m.id]),r.value=new Set([...r.value,m.id]),o.value=null;try{const _=await sl(g),b=new Map(await Promise.all(_.map(async C=>[C.threadId,await ll(C.threadId)])));if(v!==s||!n.value.has(m.id))return;a.value=new Map([...a.value,[m.id,F6(m,g,t.value,_,b)]])}catch(_){v===s&&(o.value=Ve(_))}finally{v===s&&(r.value=i(r.value,m.id))}}function p(m){n.value=i(n.value,m);const g=new Map(a.value);g.delete(m),a.value=g}function f(m){n.value.has(m.id)?p(m.id):d(m)}return{expanded:n,loading:r,groups:a,error:o,toggle:f}}function K6(e,t){const n=e?.toLowerCase();if(n!=="a"&&n!=="b")return null;const r=(n==="a"?t?.side_a_label:t?.side_b_label)?.trim();return r?`${n.toUpperCase()} · ${r}`:n.toUpperCase()}function W6(e,t,n){const r=o=>o?n.find(s=>s.name===o||s.id===o):void 0,a=r(t);return e.map(o=>({...o,sideLabel:K6(o.side,o.nested?r(o.nested.agentName):a)}))}const G6={key:0,class:"text-neutral-500 dark:text-neutral-400 text-center py-12"},J6={key:1,class:"flex justify-center py-12"},X6={key:2,class:"text-red-600 dark:text-red-400 text-center py-12"},Y6={key:3,class:"text-neutral-500 dark:text-neutral-400 text-center py-12"},Z6={key:0,class:"px-3 py-2 text-xs text-red-600 dark:text-red-400"},Q6={class:"flex h-full min-h-0 flex-col"},e7={class:"ui-border flex shrink-0 justify-center border-b bg-white px-2 pb-2 dark:bg-neutral-900"},t7={class:"relative min-h-0 flex-1"},n7={key:1,class:"flex h-full flex-col items-center justify-center gap-3 text-neutral-500 dark:text-neutral-400"},r7={key:4,class:"absolute inset-0 flex items-center justify-center bg-white/20 pointer-events-none dark:bg-black/20"},gd=20,a7=20,vd="agentbuilder.threads.logDetailsHeightPercent",yd=50,o7=600,s7=we({__name:"LogsPane",props:{threadId:{},agentName:{},selectedLogId:{},hoveredLogId:{}},emits:["logClick","logHover","logsLoaded","effectClick","nestedLogSelect","logEvidence"],setup(e,{expose:t,emit:n}){const r=e,a=n,o=R(0),s=R(gd),{logs:i,hasMore:d,isFetching:p,error:f,connectWebSocket:m,disconnectWebSocket:g,refetch:v}=Mp(x(()=>r.threadId),{limit:x(()=>s.value),offset:x(()=>o.value),enableWebSocket:!0,order:"desc"}),_=R([]),b=R(!0),C=R(null),y=R(null),A=R(null),L=R(!1),k=R(!1);let S=null;const T=R(new Map),H=R(((Q,Ae,Ne)=>Math.min(Ne,Math.max(Ae,Q)))(((Q,Ae)=>{if(typeof window>"u")return Ae;const Ne=window.localStorage.getItem(Q),Ke=Ne?Number.parseFloat(Ne):Number.NaN;return Number.isFinite(Ke)?Ke:Ae})(vd,70),35,80)),N=async()=>{await Qe(),y.value&&(G(),y.value.scrollTop=y.value.scrollHeight)},P=()=>{const Q=y.value;Q&&(L.value||S||(G(),Q.scrollTop=Q.scrollHeight))};let U=null;const V=()=>{U?.disconnect(),!(typeof ResizeObserver>"u")&&U&&(y.value&&U.observe(y.value),A.value&&U.observe(A.value))};an(()=>{typeof ResizeObserver<"u"&&(U=new ResizeObserver(()=>P()),V())}),ve([y,A],()=>V()),Ft(()=>{U?.disconnect(),U=null});const Y=R(null);ve(i,async Q=>{if(o.value===0){const Ae=_.value.length;_.value=[...Q].reverse(),b.value&&_.value.length>0?(await N(),b.value=!1):!L.value&&_.value.length>Ae&&await N()}else{const Ae=[...Q].reverse(),Ne=new Map,Ke=_.value[0]?.created_at??Number.POSITIVE_INFINITY;_.value.forEach(lt=>Ne.set(lt.id,lt)),Ae.forEach(lt=>Ne.set(lt.id,lt));const qe=Array.from(Ne.values()).sort((lt,vt)=>lt.created_at-vt.created_at),ht=qe.filter(lt=>lt.created_at<Ke).length;if(_.value=qe,S&&ht>0){const lt=S;S=null,await Qe();const vt=y.value;vt&&(G(),vt.scrollTop=lt.scrollTop+(vt.scrollHeight-lt.scrollHeight)),k.value=!1}}},{deep:!0,immediate:!0}),ve(p,(Q,Ae)=>{if(Ae&&!Q&&o.value===0&&r.threadId&&Y.value!==r.threadId&&_.value.length>0){Y.value=r.threadId;const Ne=_.value[_.value.length-1];a("logsLoaded",Ne?.id??null)}});const $=x(()=>{const Q=new Map,Ae=new Map;_.value.forEach(qe=>{Q.set(qe.id,qe);const ht=qe.parent_log_id;ht&&(Ae.has(ht)||Ae.set(ht,[]),Ae.get(ht).push(qe))});const Ne=[],Ke=(qe,ht)=>{Ne.push({...qe,depth:ht}),(Ae.get(qe.id)||[]).forEach(vt=>{Ke(vt,ht+1)})};return _.value.forEach(qe=>{qe.parent_log_id||Ke(qe,0)}),Ne}),D=wa(),W=U6(x(()=>r.threadId),_),E=x(()=>W6(q6($.value.map(Q=>({...Q,children:Kp(Q)?{expanded:W.expanded.value.has(Q.id),loading:W.loading.value.has(Q.id)}:null})),W.groups.value,Q=>Ar(D.items.value,Q.agentName)),r.agentName,D.items.value)),X=R(null),re=x(()=>X.value?.nested?.threadId??r.threadId),{logDetails:ne,isFetching:de,refetch:ue}=aA(re,x(()=>C.value)),ae=Q=>({endpoint:null,request_body:null,request_headers:null,response_body:null,response_headers:null,status_code:null,reasoning_content:null,input_tokens:null,cached_tokens:null,output_tokens:null,reasoning_tokens:null,total_tokens:null,latency_ms:null,time_to_first_token_ms:null,generation_ms:null,finish_reason:null,error_type:null,cost_input:null,cost_cached:null,cost_output:null,cost_router_fee:null,router_fee_percent:null,message_history_length:null,tools_available:null,tools_schema:null,message_history:null,system_prompt:null,errors:null,tool_results:null,scheduled_effects:null,source_message_role:null,source_message_content:null,source_message_created_at:null,source_message_metadata:null,...Q}),xe=x(()=>C.value?_.value.find(Q=>Q.id===C.value)??X.value:null),Re=x(()=>{const Q=xe.value;return Q?ne.value?{...ne.value,...Q}:ae(Q):null});ve(Re,Q=>{Q&&re.value&&a("logEvidence",re.value,ai(Q))},{immediate:!0}),ve(()=>({id:xe.value?.id??null,isComplete:xe.value?.is_complete??!1}),(Q,Ae)=>{!Q.id||!Q.isComplete||Ae?.id!==Q.id||Ae.isComplete||ue()});const Me=R(null),Ee=mm(zp,null),ke=R("response"),ie=x({get:()=>Ee?.view.value??ke.value,set:Q=>{Ee?Ee.view.value=Q:ke.value=Q}}),se=x(()=>!!(r.threadId&&Ee?.traceAvailable.value)),me=x(()=>P6(se.value)),pe=x(()=>N6(ie.value,se.value)),Fe=x(()=>pe.value==="request"?"request":"response"),fe=R(!1),Te=x(()=>pe.value==="trace"&&!fe.value);ve(C,Q=>{Q&&(fe.value=!1)});const Z=()=>{X.value=null,C.value=null,fe.value=!0};ve(Re,Q=>{Q?Me.value=Q:C.value||(Me.value=null)},{immediate:!0});const ee=x(()=>C.value?E.value.findIndex(Q=>Q.id===C.value):-1),oe=x(()=>ee.value>0),Oe=x(()=>ee.value>=0&&ee.value<E.value.length-1),F=()=>{if(oe.value){const Q=E.value[ee.value-1];Ue(Q)}},ce=()=>{if(Oe.value){const Q=E.value[ee.value+1];Ue(Q)}},he=async Q=>{await Qe(),T.value.get(Q)?.focus({preventScroll:!0})},Pe=(Q,Ae)=>{const Ne=E.value.findIndex(ht=>ht.id===Ae.id);if(Ne<0)return;let Ke=Ne;if(Q.key==="ArrowDown")Ke=Math.min(E.value.length-1,Ne+1);else if(Q.key==="ArrowUp")Ke=Math.max(0,Ne-1);else if(Q.key==="Home")Ke=0;else if(Q.key==="End")Ke=E.value.length-1;else return;Q.preventDefault();const qe=E.value[Ke];qe&&(Ue(qe),he(qe.id))},We=Q=>{if(!y.value)return;const Ae=T.value.get(Q);if(!Ae)return;const Ne=y.value,Ke=Ae.getBoundingClientRect(),qe=Ne.getBoundingClientRect(),ht=Ne.querySelectorAll(".sticky");let lt=0;ht.forEach(Ht=>{lt+=Ht.getBoundingClientRect().height}),lt+=16;const vt=Ke.top<qe.top+lt,An=Ke.bottom>qe.bottom;vt?(G(),Ne.scrollBy({top:Ke.top-qe.top-lt,behavior:"smooth"})):An&&(G(),Ne.scrollBy({top:Ke.bottom-qe.bottom,behavior:"smooth"}))},Ue=Q=>{const Ae=E.value.find(qe=>qe.id===Q.id),Ne=Ae?.nested;X.value=Ne&&Ae?Ae:null,Ne?a("nestedLogSelect",{threadId:Ne.threadId,logId:Q.id,agentName:Ne.agentName}):(a("nestedLogSelect",null),a("logClick",Q.id)),C.value=Q.id;const Ke=_.value[_.value.length-1];Ke&&Ke.id!==Q.id&&(L.value=!0)},Se=(Q,Ae)=>{Ae?T.value.set(Q,Ae):T.value.delete(Q)},ge=(Q,Ae)=>{Se(Q,Ae instanceof HTMLElement?Ae:null)};ve(C,async Q=>{Q&&(await Qe(),We(Q))}),ve(()=>r.selectedLogId,Q=>{Q&&(X.value=null,a("nestedLogSelect",null),C.value=Q)},{immediate:!0});const $e=Q=>{X.value=null,C.value=Q},_e=async Q=>{await Qe();const Ae=T.value.get(Q);if(Ae&&y.value){const Ne=y.value,Ke=Ae.getBoundingClientRect(),qe=Ne.getBoundingClientRect(),ht=Ne.querySelector("thead"),lt=Ne.querySelector(":scope > div > div.sticky");let vt=0;ht&&(vt+=ht.getBoundingClientRect().height),lt&&(vt+=lt.getBoundingClientRect().height),vt+=40;const An=Ke.top<qe.top+vt,Ht=Ke.bottom>qe.bottom;An?(G(),Ne.scrollBy({top:Ke.top-qe.top-vt,behavior:"smooth"})):Ht&&(G(),Ne.scrollBy({top:Ke.bottom-qe.bottom,behavior:"smooth"}))}},De=Q=>{if(Q.length===0)return;const Ae=new Set(Q);_.value=_.value.filter(Ne=>!Ae.has(Ne.id))},Xe=R(!1),rt=Q=>_.value.some(Ae=>Ae.id===Q),kt=Q=>_.value.find(Ae=>Ae.id===Q)??null,At=(Q,Ae=3e3)=>new Promise(Ne=>{const Ke=ve(()=>_.value.length,ht=>{ht!==Q&&(clearTimeout(qe),Ke(),Ne(!0))}),qe=setTimeout(()=>{Ke(),Ne(!1)},Ae)});t({scrollToLog:_e,selectLogById:$e,removeLogsByIds:De,loadUntilLogId:async Q=>{if(rt(Q))return!0;if(!d.value)return!1;Xe.value=!0;const Ae=100,Ne=50,Ke=s.value;try{let qe=0;for(;d.value&&!rt(Q)&&qe<Ne;){qe++;const ht=_.value.length;if(o.value+=s.value,s.value=Ae,await v(),!await At(ht))break}return rt(Q)}finally{s.value=Ke,o.value=Math.max(0,_.value.length-Ke),Xe.value=!1}},hasLog:rt,getLog:kt,setLoadingForLog:Q=>{Xe.value=Q},waitForLogRow:async(Q,Ae=2e3)=>{const Ne=Date.now();for(;Date.now()-Ne<Ae;){if(T.value.has(Q))return!0;if(!$.value.some(qe=>qe.id===Q)){await Qe(),await new Promise(qe=>setTimeout(qe,16));continue}await Qe(),await new Promise(qe=>setTimeout(qe,16))}return!1}});const wt=()=>{if(k.value||!d.value||p.value)return;k.value=!0;const Q=y.value;S={scrollHeight:Q?.scrollHeight??0,scrollTop:Q?.scrollTop??0},o.value+=s.value,s.value=a7};ve(p,(Q,Ae)=>{Ae&&!Q&&k.value&&setTimeout(()=>{S&&(S=null,k.value=!1)},300)}),ve(()=>r.threadId,async Q=>{Q?(g(),m()):g(),o.value=0,s.value=gd,_.value=[],X.value=null,C.value=null,L.value=!1,b.value=!0,S=null,k.value=!1},{immediate:!0});let jt=0;const G=()=>{jt=Date.now()},le=Q=>Q.scrollHeight-Q.scrollTop-Q.clientHeight,I=()=>{const Q=y.value;if(Q){if(le(Q)<yd){L.value=!1;return}Date.now()-jt>o7&&(L.value=!0)}},O=Q=>{Q.deltaY<0&&(L.value=!0)},z=()=>{const Q=y.value;Q&&le(Q)>=yd&&(L.value=!0)},ye=x(()=>oA(_.value));return(Q,Ae)=>(l(),K(Xo,{"height-percent":H.value,"onUpdate:heightPercent":Ae[3]||(Ae[3]=Ne=>H.value=Ne),"storage-key":vd,title:"Resize logs and details"},ar({main:be(()=>[u("div",{ref_key:"logsScrollContainer",ref:y,class:"logs-list-container h-full overflow-y-auto overflow-x-auto",onScroll:I,onWheelPassive:O,onTouchmovePassive:z},[e.threadId?h(p)&&o.value===0?(l(),c("div",J6,[j(et)])):h(f)?(l(),c("div",X6," Error loading logs: "+w(h(Ve)(h(f))),1)):_.value.length===0?(l(),c("div",Y6," No logs yet ")):(l(),c("div",{key:4,ref_key:"logsContentRef",ref:A},[j(A6,{logs:E.value,"has-more":h(d),"is-loading-more":k.value,"is-loading-for-log":Xe.value,"auto-load-enabled":!b.value&&!Xe.value,"cache-decreased-log-ids":ye.value,"details-open":!!Re.value||Te.value,"selected-log-id-for-details":C.value,"selected-log-id":r.selectedLogId,"hovered-log-id":r.hoveredLogId,onLoadMore:wt,onSelectLog:Ue,onNavigateLog:Pe,onLogHover:Ae[0]||(Ae[0]=Ne=>a("logHover",Ne)),onRowRef:ge,onToggleChildren:h(W).toggle},null,8,["logs","has-more","is-loading-more","is-loading-for-log","auto-load-enabled","cache-decreased-log-ids","details-open","selected-log-id-for-details","selected-log-id","hovered-log-id","onToggleChildren"]),h(W).error.value?(l(),c("p",Z6," Could not read the child thread's log rows: "+w(h(W).error.value),1)):M("",!0)],512)):(l(),c("div",G6," Select a thread to view logs "))],544)]),_:2},[Te.value||Me.value||Xe.value&&C.value?{name:"detail",fn:be(()=>[u("div",Q6,[j(PE,{log:Me.value,"thread-id":re.value,"has-previous":oe.value,"has-next":Oe.value,onPrevious:F,onNext:ce,onClose:Z},null,8,["log","thread-id","has-previous","has-next"]),u("div",e7,[j(rc,{modelValue:ie.value,"onUpdate:modelValue":Ae[1]||(Ae[1]=Ne=>ie.value=Ne),variant:"segmented",label:"Log view",options:me.value},null,8,["modelValue","options"])]),u("div",t7,[Te.value?gt(Q.$slots,"trace",{key:0,hasPreviousLog:oe.value,hasNextLog:Oe.value,previousLog:F,nextLog:ce},void 0,!0):Xe.value&&!Re.value?(l(),c("div",n7,[j(et),Ae[4]||(Ae[4]=u("span",{class:"text-sm"},"Loading log...",-1))])):Me.value&&h(ni)(Me.value)?(l(),K(XR,{key:2,log:Me.value,tab:Fe.value,"thread-id":re.value},null,8,["log","tab","thread-id"])):Me.value?(l(),K(qR,{key:3,log:Me.value,tab:Fe.value,"thread-id":re.value,onEffectClick:Ae[2]||(Ae[2]=Ne=>a("effectClick",Ne))},null,8,["log","tab","thread-id"])):M("",!0),h(de)&&Me.value&&!Te.value?(l(),c("div",r7,[j(et)])):M("",!0)])])]),key:"0"}:void 0]),1032,["height-percent"]))}}),l7=ot(s7,[["__scopeId","data-v-e5b32ba6"]]);function Gp(e){const t=e.delayMs??150,n=e.isHidden??(()=>typeof document<"u"&&document.visibilityState==="hidden");let r=null,a=!1,o=!1,s=!1;const i=()=>{r||o||s||!a||n()||(r=setTimeout(()=>{if(r=null,s||!a||n())return;a=!1,o=!0;let p=!1;Promise.resolve().then(()=>e.refresh()).then(f=>{p=f!==!1,p||(a=!0)}).catch(()=>{a=!0}).finally(()=>{o=!1,p&&a&&i()})},t))},d=()=>{!a||n()||i()};return{notify(){a=!0,i()},onVisible(){d()},flush(){d()},cancel(){s=!0,r&&clearTimeout(r),r=null,a=!1}}}function si(e){const t=R(!1);return ve(e,n=>{n!==!1&&(t.value=!0)},{immediate:!0}),t}const i7={class:"h-full min-h-0 overflow-hidden"},u7={class:"flex h-full min-h-0 flex-col overflow-hidden"},d7={class:"flex items-center gap-2 border-b border-neutral-200 px-3 py-2 dark:border-neutral-800"},c7={class:"min-w-0 flex-1 truncate text-xs tabular-nums text-neutral-500 dark:text-neutral-400"},f7=["disabled"],p7={class:"min-h-0 flex-1 overflow-auto"},h7={key:0,class:"py-12 text-center text-sm text-neutral-500"},m7={key:1,class:"flex justify-center py-12"},g7={key:2,class:"py-12 text-center text-sm text-red-600 dark:text-red-400"},v7={key:3,class:"py-12 text-center text-sm text-neutral-500"},y7={key:4,class:"flex h-full min-h-0 flex-col"},b7={key:0,class:"border-b border-neutral-200 px-3 py-2 text-xs text-red-600 dark:border-neutral-800 dark:text-red-400"},x7={class:"min-h-0 flex-1 overflow-auto bg-white dark:bg-neutral-950"},k7={class:"w-full min-w-[60rem] table-fixed text-left text-xs"},w7={class:"divide-y divide-(--color-border-subtle)"},_7={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},$7={scope:"rowgroup",colspan:"8",class:"sticky top-8 z-[9] border-y border-neutral-200 bg-neutral-50/95 px-4 py-2 text-left font-medium dark:border-neutral-800 dark:bg-neutral-900/95"},I7={class:"text-neutral-700 dark:text-neutral-300"},S7={class:"ml-2 tabular-nums"},C7=["aria-selected","onClick","onKeydown"],T7={class:"whitespace-nowrap px-4 py-2 align-middle"},M7={class:"flex items-center gap-1.5"},A7=["disabled","title","aria-label","onClick"],L7=["disabled","title","aria-label","onClick"],R7={class:"whitespace-nowrap px-4 py-2 align-middle"},E7={class:"min-w-0 px-3 py-2 align-middle"},P7={class:"truncate font-mono text-xs text-neutral-950 dark:text-neutral-100"},N7=["title"],O7={key:0,class:"mt-0.5 truncate text-xs text-neutral-500 dark:text-neutral-400"},D7={key:1,class:"mt-0.5 flex max-w-full items-center gap-1 text-xs text-neutral-500 dark:text-neutral-400"},B7={class:"truncate"},F7={class:"whitespace-nowrap px-3 py-2 align-middle text-xs text-neutral-500 dark:text-neutral-400"},j7={class:"whitespace-nowrap px-3 py-2 align-middle"},q7={class:"text-xs font-medium text-neutral-800 dark:text-neutral-100"},z7={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},V7={class:"whitespace-nowrap px-3 py-2 align-middle text-xs text-neutral-500 dark:text-neutral-400"},H7={key:0,class:"mt-0.5 text-xs text-neutral-500 dark:text-neutral-400"},U7={class:"whitespace-nowrap px-3 py-2 text-right align-middle text-xs tabular-nums text-neutral-500"},K7={class:"min-w-0 px-4 py-2 align-middle"},W7=["title"],G7={key:0,class:"mt-0.5 truncate text-xs text-red-600 dark:text-red-400"},J7=["disabled"],X7={class:"flex h-full min-h-0 flex-col overflow-hidden"},Y7={class:"flex items-center gap-3 border-b border-neutral-200 px-3 py-2 dark:border-neutral-800"},Z7={class:"min-w-0 flex-1"},Q7={class:"truncate font-mono text-sm font-medium text-neutral-950 dark:text-neutral-100"},eP={class:"truncate font-mono text-xs text-neutral-500 dark:text-neutral-400"},tP={key:0,class:"mt-0.5 text-xs text-neutral-500 dark:text-neutral-400"},nP={class:"flex shrink-0 items-center gap-2"},rP=["disabled","title","aria-label"],aP=["disabled","title","aria-label"],oP={class:"grid shrink-0 grid-cols-2 gap-x-6 gap-y-3 border-b border-neutral-200 px-3 py-3 text-xs dark:border-neutral-800"},sP={class:"mt-0.5 text-neutral-900 dark:text-neutral-100"},lP={class:"mt-0.5 text-neutral-900 dark:text-neutral-100"},iP={class:"mt-0.5 text-neutral-900 dark:text-neutral-100"},uP={key:0,class:"mt-0.5 text-xs text-neutral-500 dark:text-neutral-400"},dP={class:"mt-0.5 tabular-nums text-neutral-900 dark:text-neutral-100"},cP={class:"mt-0.5"},fP={key:0,class:"inline-flex items-center gap-1 text-neutral-900 dark:text-neutral-100"},pP={key:1,class:"text-neutral-900 dark:text-neutral-100"},hP={key:0,class:"mt-0.5 text-neutral-500 dark:text-neutral-400"},mP={key:0},gP={class:"mt-0.5 flex max-w-full items-center gap-1 text-neutral-900 dark:text-neutral-100"},vP={class:"truncate font-mono"},yP={key:0,class:"border-b border-neutral-200 px-3 py-2 text-xs text-red-600 dark:border-neutral-800 dark:text-red-400"},bP={class:"flex min-h-0 flex-1 flex-col overflow-hidden"},xP={class:"flex items-start gap-2"},kP={class:"min-w-0"},wP={class:"font-medium text-neutral-950 dark:text-neutral-100"},_P={class:"mt-1 text-neutral-500 dark:text-neutral-400"},$P={class:"mt-1 truncate text-neutral-500 dark:text-neutral-400"},IP={class:"font-mono text-neutral-700 dark:text-neutral-200"},SP={class:"mt-1 truncate font-mono text-xs text-neutral-500 dark:text-neutral-400"},CP={class:"mt-3 flex justify-end gap-2"},bd=100,TP=1e3,MP="agentbuilder.threads.effectDetailSplitPercent",AP=260,LP=we({__name:"ThreadEffectsPane",props:{threadId:{},active:{type:Boolean,default:!0},selectedEffectId:{},selectedEffectRef:{}},emits:["count-changed"],setup(e,{expose:t,emit:n}){const r=Ml(()=>Sl(()=>import("./CodeEditor-C9bQ4Z3b.js").then(I=>I.K),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),a=e,o=si(()=>a.active),s=n,i=R([]),d=R(0),p=R(0),f=R(!1),m=R(!1),g=R(null),v=R(null),_=R(Date.now()),b=R(null),C=R(50),y=R(new Map),A=R(null),L=R(null),k=R(null),S=R("run"),T=R(null),B=R(null);let q=null,H=!1,N=0;const P=x(()=>i.value.length<d.value),U=x(()=>i.value.filter(Ir)),V=x(()=>i.value.filter(I=>!Ir(I))),Y=x(()=>{const I=[];return U.value.length>0&&(I.push({type:"section",key:"section-upcoming",label:"Upcoming",count:U.value.length}),I.push(...U.value.map(O=>({type:"effect",key:O.id,effect:O})))),V.value.length>0&&(I.push({type:"section",key:"section-history",label:"History",count:V.value.length}),I.push(...V.value.map(O=>({type:"effect",key:O.id,effect:O})))),I}),$=x(()=>b.value?i.value.find(I=>I.id===b.value)??null:null),D=x(()=>k.value?i.value.find(I=>I.id===k.value)??null:null),W=x(()=>B.value?{top:`${B.value.top}px`,left:`${B.value.left}px`}:{}),E=x(()=>!!$.value),X=x(()=>$.value?Bu($.value.args):"{}"),re=x(()=>{if(!a.threadId)return"";if(d.value===0)return"No effects";const I=Math.max(d.value-p.value,V.value.length),O=i.value.length<d.value?` · ${i.value.length} of ${d.value} shown`:"";return`${p.value} upcoming · ${I} past${O}`});function ne(){return!!a.threadId&&a.active!==!1&&!f.value&&!m.value&&!H}function de(I){const O=I?i.value.find(z=>z.id===I):null;if(O){b.value=O.id;return}if(I){b.value=I;return}b.value&&i.value.some(z=>z.id===b.value)||(b.value=i.value[0]?.id??null)}function ue(I){b.value=I.id}function ae(I,O){O instanceof HTMLElement?y.value.set(I,O):y.value.delete(I)}async function xe(I){await Qe(),y.value.get(I)?.focus({preventScroll:!0})}async function Re(I){await Qe();const O=y.value.get(I);O?.scrollIntoView({block:"nearest"}),O?.focus({preventScroll:!0})}async function Me(I){b.value=I,de(I),await Re(I)}async function Ee(I){if(I.id){await Me(I.id);return}const O=i.value.find(z=>Fu(z,I));O&&await Me(O.id)}function ke(I){if(I.id)return de(I.id),!0;const O=i.value.find(z=>Fu(z,I));return O?(de(O.id),!0):!1}function ie(I,O){const z=i.value.findIndex(Ae=>Ae.id===O.id);if(z<0)return;let ye=z;if(I.key==="ArrowDown")ye=Math.min(i.value.length-1,z+1);else if(I.key==="ArrowUp")ye=Math.max(0,z-1);else if(I.key==="Home")ye=0;else if(I.key==="End")ye=i.value.length-1;else return;I.preventDefault();const Q=i.value[ye];Q&&(ue(Q),xe(Q.id))}function se(I){switch(I){case"pending":return"Pending";case"processing":return"Running";case"completed":return"Completed";case"failed":return"Failed";case"agent_canceled":case"user_canceled":return"Cancelled"}}function me(I){switch(I){case"failed":return"text-red-600 dark:text-red-400";case"pending":case"processing":return"text-neutral-800 dark:text-neutral-200";case"completed":case"agent_canceled":case"user_canceled":return"text-neutral-500 dark:text-neutral-400"}}function pe(I){return Ir(I)?oC(I.scheduledAt,_.value):sn(I.scheduledAt)}function Fe(I){return Ir(I)?sn(I.scheduledAt):""}function fe(I){return I.status==="pending"?"Not run":I.status==="processing"?"Running":Z(I)?"-":sn(I.completedAt)}function Te(I){return I.split("-")[0]||I}function Z(I){return I.status==="agent_canceled"||I.status==="user_canceled"}function ee(I){return I.status==="agent_canceled"?"agent cancelled":I.status==="user_canceled"?"user cancelled":""}function oe(I){return I.replayedFrom?"Manual rerun":I.manualRun?"Manual run":""}function Oe(I){return I.replayedFrom?`Manual rerun of ${Te(I.replayedFrom)}`:I.manualRun?"Manual run":""}function F(I){return Z(I)?"":aC(I)}function ce(I){return I.status==="pending"?(I.scheduledAt>9999999999?Math.floor(I.scheduledAt/1e3):I.scheduledAt)<=_.value?"Complete overdue effect":"Run scheduled effect now":I.status==="completed"||I.status==="failed"||Z(I)?"Replay effect":"Effect is running"}function he(I){return I.status==="pending"?(I.scheduledAt>9999999999?Math.floor(I.scheduledAt/1e3):I.scheduledAt)<=_.value?"Complete":"Run now":I.status==="completed"||I.status==="failed"||Z(I)?"Replay":"Run"}function Pe(I){return I.status==="pending"||I.status==="completed"||I.status==="failed"||Z(I)}function We(I){return I.status==="pending"}function Ue(I){return We(I)?"Cancel scheduled effect":"Effect cannot be cancelled"}function Se(I){return S.value==="cancel"?Ue(I):ce(I)}function ge(I){return S.value==="cancel"?"Cancel effect":he(I)}function $e(I){return S.value==="cancel"?"This will keep the effect in history as user cancelled.":I.status==="pending"?"This will execute the scheduled effect now for this thread.":"This will create a new immediate run linked back to this effect."}function _e(I,O){return k.value===I.id&&S.value===O}function De(I){const O=I.getBoundingClientRect(),z=8,ye=Math.min(Math.max(O.right+z,z),Math.max(z,window.innerWidth-AP-z)),Q=Math.min(Math.max(O.top-z,z),Math.max(z,window.innerHeight-160));B.value={top:Q,left:ye}}function Xe(I,O,z="run"){if(!(z==="cancel"?We(I):Pe(I))||A.value)return;const Q=O.currentTarget;Q instanceof HTMLElement&&(rt(),k.value=I.id,S.value=z,De(Q),document.addEventListener("pointerdown",kt),document.addEventListener("keydown",At),window.addEventListener("resize",rt),window.addEventListener("scroll",rt,!0))}function rt(){k.value=null,S.value="run",B.value=null,document.removeEventListener("pointerdown",kt),document.removeEventListener("keydown",At),window.removeEventListener("resize",rt),window.removeEventListener("scroll",rt,!0)}function kt(I){const O=I.target;O instanceof Node&&(T.value?.contains(O)||rt())}function At(I){I.key==="Escape"&&rt()}async function Lt(I){if(!(!a.threadId||!Pe(I)||A.value)){rt(),g.value=null,A.value=I.id,L.value="run";try{await Be.request(He(`/api/threads/${a.threadId}/effects/${I.id}/run`),{method:"POST"}),await wt()}catch(O){g.value=Ve(O),await wt({quiet:!0})}finally{A.value=null,L.value=null}}}async function Yt(I){if(!(!a.threadId||!We(I)||A.value)){rt(),g.value=null,A.value=I.id,L.value="cancel";try{await Be.request(He(`/api/threads/${a.threadId}/effects/${I.id}/cancel`),{method:"POST"}),await wt()}catch(O){g.value=Ve(O),await wt({quiet:!0})}finally{A.value=null,L.value=null}}}async function on(I){if(S.value==="cancel"){await Yt(I);return}await Lt(I)}async function wt(I={}){if(!a.threadId){i.value=[],d.value=0,p.value=0,b.value=null;return}const O=++N,z=I.append===!0,ye=I.quiet===!0;ye&&(H=!0),ye||(z?m.value=!0:f.value=!0),ye||(v.value=null),ye||(g.value=null);const Q=new URLSearchParams,Ae=Math.min(Math.max(i.value.length,bd),200);Q.set("limit",String(z?bd:Ae)),Q.set("offset",String(z?i.value.length:0));try{const Ne=await Be.request(He(`/api/threads/${a.threadId}/effects?${Q}`)),Ke=ip(await Be.readJson(Ne));return O!==N?void 0:(i.value=iC(z?[...i.value,...Ke.effects]:Ke.effects),d.value=Ke.total,p.value=Ke.upcomingCount,_.value=Date.now(),a.selectedEffectRef?!ye&&a.active!==!1?await Ee(a.selectedEffectRef):ke(a.selectedEffectRef):de(a.selectedEffectId||b.value),!0)}catch(Ne){return O===N&&(!ye||i.value.length===0)&&(v.value=Ve(Ne)),!1}finally{ye&&(H=!1),O===N&&!ye&&(f.value=!1,m.value=!1)}}const jt=()=>{typeof document<"u"&&document.visibilityState==="visible"&&G.onVisible()},G=Gp({refresh:async()=>ne()?(_.value=Date.now(),await wt({quiet:!0})):!1}),le=Wo({events:{effect_changed:()=>G.notify()},onConnected:()=>G.notify()});return ve(()=>a.threadId,()=>{i.value=[],d.value=0,p.value=0,b.value=null,v.value=null,g.value=null,rt(),wt()},{immediate:!0}),ve(()=>a.selectedEffectId,I=>{I&&Me(I)}),ve(()=>a.selectedEffectRef,I=>{I&&Ee(I)}),ve(p,I=>s("count-changed",I),{immediate:!0}),ve(()=>[a.threadId,a.active!==!1,U.value.length>0],([I,O,z])=>{q&&clearInterval(q),q=null,!(!I||!O||!z)&&(q=setInterval(()=>{_.value=Date.now()},TP))},{immediate:!0}),ve(()=>a.active,I=>{if(!I){rt();return}le.available||G.notify(),G.flush()}),ve(ne,I=>{I&&G.flush()}),typeof document<"u"&&document.addEventListener("visibilitychange",jt),Ft(()=>{q&&clearInterval(q),G.cancel(),rt(),typeof document<"u"&&document.removeEventListener("visibilitychange",jt)}),t({selectEffectById:Me,selectEffectByReference:Ee}),(I,O)=>(l(),c("div",i7,[j(Xo,{"height-percent":C.value,"onUpdate:heightPercent":O[4]||(O[4]=z=>C.value=z),"storage-key":MP,title:"Resize effects browser and detail"},ar({main:be(()=>[u("div",u7,[u("div",d7,[u("div",c7,w(re.value),1),u("button",{type:"button",class:"inline-flex h-8 w-8 items-center justify-center rounded text-neutral-500 transition-colors hover:bg-neutral-100 hover:text-neutral-950 disabled:opacity-50 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",disabled:!e.threadId||f.value,title:"Refresh effects","aria-label":"Refresh effects",onClick:O[0]||(O[0]=z=>wt())},[f.value?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(zo),{key:1,size:15}))],8,f7)]),u("div",p7,[e.threadId?f.value&&i.value.length===0?(l(),c("div",m7,[j(et)])):v.value?(l(),c("div",g7,w(h(Ve)(v.value)),1)):i.value.length===0?(l(),c("div",v7,[j(h(Bn),{class:"mx-auto mb-2 h-8 w-8 opacity-40"}),O[7]||(O[7]=Ce(" No effects scheduled or completed ",-1))])):(l(),c("div",y7,[g.value?(l(),c("div",b7,w(h(Ve)(g.value)),1)):M("",!0),u("div",x7,[u("table",k7,[O[8]||(O[8]=u("colgroup",null,[u("col",{class:"w-20"}),u("col",{class:"w-24"}),u("col",{class:"w-48"}),u("col",{class:"w-36"}),u("col",{class:"w-36"}),u("col",{class:"w-32"}),u("col",{class:"w-20"}),u("col")],-1)),O[9]||(O[9]=u("thead",{class:"sticky top-0 z-10 border-b border-neutral-200 bg-neutral-50 text-xs leading-4 font-medium text-neutral-500 dark:border-neutral-800 dark:bg-neutral-900/60 dark:text-neutral-400"},[u("tr",null,[u("th",{scope:"col",class:"px-4 py-2 font-medium"}," Actions "),u("th",{scope:"col",class:"px-4 py-2 font-medium"},"Status"),u("th",{scope:"col",class:"px-3 py-2 font-medium"},"Effect"),u("th",{scope:"col",class:"px-3 py-2 font-medium"},"Created"),u("th",{scope:"col",class:"px-3 py-2 font-medium"}," Scheduled "),u("th",{scope:"col",class:"px-3 py-2 font-medium"}," Completed "),u("th",{scope:"col",class:"px-3 py-2 text-right font-medium"}," Attempts "),u("th",{scope:"col",class:"px-4 py-2 font-medium"}," Arguments ")])],-1)),u("tbody",w7,[(l(!0),c(te,null,Ie(Y.value,z=>(l(),c(te,{key:z.key},[z.type==="section"?(l(),c("tr",_7,[u("th",$7,[u("span",I7,w(z.label),1),u("span",S7,w(z.count),1)])])):(l(),c("tr",{key:1,ref_for:!0,ref:ye=>ae(z.effect.id,ye),tabindex:"0","aria-selected":b.value===z.effect.id,class:J(["cursor-pointer transition-colors focus:outline-none",b.value===z.effect.id?"agents-surface-selected":"hover:bg-neutral-50 dark:hover:bg-neutral-900"]),onClick:ye=>ue(z.effect),onKeydown:[dn(Je(ye=>ue(z.effect),["prevent"]),["enter"]),dn(Je(ye=>ue(z.effect),["prevent"]),["space"]),ye=>ie(ye,z.effect)]},[u("td",T7,[u("div",M7,[Pe(z.effect)?(l(),c("button",{key:0,type:"button",class:J(["inline-flex h-7 w-7 items-center justify-center rounded-md border border-neutral-200 text-neutral-700 transition-colors hover:bg-neutral-50 hover:text-neutral-950 disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-200 dark:hover:bg-neutral-800",{"bg-neutral-100 dark:bg-neutral-800":_e(z.effect,"run")}]),disabled:!Pe(z.effect)||!!A.value,title:ce(z.effect),"aria-label":ce(z.effect),onClick:Je(ye=>Xe(z.effect,ye,"run"),["stop"])},[A.value===z.effect.id&&L.value==="run"?(l(),K(et,{key:0,size:"xs"})):z.effect.status==="completed"||z.effect.status==="failed"||Z(z.effect)?(l(),K(h(vr),{key:1,size:14})):(l(),K(h(ho),{key:2,size:14}))],10,A7)):M("",!0),We(z.effect)?(l(),c("button",{key:1,type:"button",class:J(["inline-flex h-7 w-7 items-center justify-center rounded-md border border-neutral-200 text-red-600 transition-colors hover:bg-red-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:text-red-400 dark:hover:bg-red-950/40",{"bg-red-50 dark:bg-red-950/40":_e(z.effect,"cancel")}]),disabled:!!A.value,title:Ue(z.effect),"aria-label":Ue(z.effect),onClick:Je(ye=>Xe(z.effect,ye,"cancel"),["stop"])},[A.value===z.effect.id&&L.value==="cancel"?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(cn),{key:1,size:14}))],10,L7)):M("",!0)])]),u("td",R7,[u("span",{class:J(["inline-flex items-center gap-1.5 text-xs",me(z.effect.status)])},[z.effect.status==="processing"?(l(),K(Nr,{key:0})):M("",!0),Ce(" "+w(se(z.effect.status)),1)],2)]),u("td",E7,[u("div",P7,w(z.effect.name),1),u("div",{class:"truncate font-mono text-xs text-neutral-500 dark:text-neutral-400",title:z.effect.id},w(Te(z.effect.id)),9,N7),ee(z.effect)?(l(),c("div",O7,w(ee(z.effect)),1)):M("",!0),Oe(z.effect)?(l(),c("div",D7,[z.effect.replayedFrom?(l(),K(h(vr),{key:0,size:12,class:"shrink-0"})):(l(),K(h(Bn),{key:1,size:12,class:"shrink-0"})),u("span",B7,w(Oe(z.effect)),1)])):M("",!0)]),u("td",F7,w(h(sn)(z.effect.createdAt)),1),u("td",j7,[u("div",q7,w(pe(z.effect)),1),Fe(z.effect)?(l(),c("div",z7,w(Fe(z.effect)),1)):M("",!0)]),u("td",V7,[u("div",null,w(fe(z.effect)),1),F(z.effect)?(l(),c("div",H7,w(F(z.effect)),1)):M("",!0)]),u("td",U7,w(z.effect.attempts),1),u("td",K7,[u("div",{class:"truncate font-mono text-xs text-neutral-500 dark:text-neutral-400",title:h(Bu)(z.effect.args)},w(h(sC)(z.effect.args)),9,W7),z.effect.error?(l(),c("div",G7,w(z.effect.error),1)):M("",!0)])],42,C7))],64))),128))])])]),P.value?(l(),c("button",{key:1,type:"button",class:"m-3 flex items-center justify-center gap-2 rounded-md border border-neutral-200 px-3 py-1.5 text-xs font-medium text-neutral-700 transition-colors hover:bg-neutral-50 disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-300 dark:hover:bg-neutral-900",disabled:m.value,onClick:O[1]||(O[1]=z=>wt({append:!0}))},[m.value?(l(),K(et,{key:0,size:"xs"})):M("",!0),O[10]||(O[10]=u("span",null,"Load more",-1))],8,J7)):M("",!0)])):(l(),c("div",h7," Select a thread to view effects "))])])]),_:2},[E.value&&$.value?{name:"detail",fn:be(()=>[u("div",X7,[u("div",Y7,[u("div",Z7,[u("div",Q7,w($.value.name),1),u("div",eP,w($.value.id),1),ee($.value)?(l(),c("div",tP,w(ee($.value)),1)):M("",!0)]),u("span",{class:J(["inline-flex shrink-0 items-center gap-1.5 text-xs",me($.value.status)])},[$.value.status==="processing"?(l(),K(Nr,{key:0})):M("",!0),Ce(" "+w(se($.value.status)),1)],2),u("div",nP,[Pe($.value)?(l(),c("button",{key:0,type:"button",class:J(["inline-flex h-8 shrink-0 items-center gap-1.5 rounded-md border border-neutral-200 px-3 text-xs font-medium text-neutral-800 transition-colors hover:bg-neutral-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-200 dark:hover:bg-neutral-800",{"bg-neutral-100 dark:bg-neutral-800":_e($.value,"run")}]),disabled:!Pe($.value)||!!A.value,title:ce($.value),"aria-label":ce($.value),onClick:O[2]||(O[2]=Je(z=>Xe($.value,z,"run"),["stop"]))},[A.value===$.value.id&&L.value==="run"?(l(),K(et,{key:0,size:"xs"})):$.value.status==="completed"||$.value.status==="failed"||Z($.value)?(l(),K(h(vr),{key:1,size:14})):(l(),K(h(ho),{key:2,size:14})),u("span",null,w(he($.value)),1)],10,rP)):M("",!0),We($.value)?(l(),c("button",{key:1,type:"button",class:J(["inline-flex h-8 shrink-0 items-center gap-1.5 rounded-md border border-neutral-200 px-3 text-xs font-medium text-red-600 transition-colors hover:bg-red-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:text-red-400 dark:hover:bg-red-950/40",{"bg-red-50 dark:bg-red-950/40":_e($.value,"cancel")}]),disabled:!!A.value,title:Ue($.value),"aria-label":Ue($.value),onClick:O[3]||(O[3]=Je(z=>Xe($.value,z,"cancel"),["stop"]))},[A.value===$.value.id&&L.value==="cancel"?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(cn),{key:1,size:14})),O[11]||(O[11]=u("span",null,"Cancel",-1))],10,aP)):M("",!0)])]),u("div",oP,[u("div",null,[O[12]||(O[12]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Created ",-1)),u("div",sP,w(h(sn)($.value.createdAt)),1)]),u("div",null,[O[13]||(O[13]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Scheduled ",-1)),u("div",lP,w(h(sn)($.value.scheduledAt)),1)]),u("div",null,[O[14]||(O[14]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Completed ",-1)),u("div",iP,w(fe($.value)),1),F($.value)?(l(),c("div",uP,w(F($.value)),1)):M("",!0)]),u("div",null,[O[15]||(O[15]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Attempts ",-1)),u("div",dP,w($.value.attempts),1)]),u("div",null,[O[16]||(O[16]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Source ",-1)),u("div",cP,[oe($.value)?(l(),c("span",fP,[$.value.replayedFrom?(l(),K(h(vr),{key:0,size:12,class:"shrink-0 text-neutral-500"})):(l(),K(h(Bn),{key:1,size:12,class:"shrink-0 text-neutral-500"})),Ce(" "+w(oe($.value)),1)])):(l(),c("span",pP,"Automatic"))]),$.value.manualRunAt?(l(),c("div",hP,w(h(sn)($.value.manualRunAt)),1)):M("",!0)]),$.value.replayedFrom?(l(),c("div",mP,[O[17]||(O[17]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Rerun of ",-1)),u("div",gP,[j(h(vr),{size:12,class:"shrink-0 text-neutral-500"}),u("span",vP,w($.value.replayedFrom),1)])])):M("",!0)]),$.value.error?(l(),c("div",yP,w($.value.error),1)):M("",!0),u("div",bP,[O[18]||(O[18]=u("div",{class:"border-b border-neutral-200 px-3 py-2 text-xs font-medium text-neutral-700 dark:border-neutral-800 dark:text-neutral-300"}," Arguments ",-1)),h(o)?(l(),K(h(r),{key:0,"model-value":X.value,class:"min-h-0 flex-1",language:"json",readonly:"","word-wrap":"on",framed:!1},null,8,["model-value"])):M("",!0)])])]),key:"0"}:void 0]),1032,["height-percent"]),(l(),K($a,{to:"body"},[e.active&&D.value&&B.value?(l(),c("div",{key:0,ref_key:"actionPopoverRef",ref:T,class:"fixed z-[9999] w-[260px] rounded-lg border border-neutral-200 bg-white p-3 text-xs shadow-[0_8px_24px_rgba(0,0,0,0.08)] dark:border-neutral-800 dark:bg-neutral-950",style:nt(W.value),onClick:O[6]||(O[6]=Je(()=>{},["stop"]))},[u("div",xP,[S.value==="cancel"?(l(),K(h(cn),{key:0,size:14,class:"mt-0.5 shrink-0 text-red-600 dark:text-red-400"})):(l(),K(h(Bn),{key:1,size:14,class:"mt-0.5 shrink-0 text-neutral-500 dark:text-neutral-400"})),u("div",kP,[u("div",wP,w(Se(D.value)),1),u("div",_P,w($e(D.value)),1),u("div",$P,[u("span",IP,w(D.value.name),1)]),u("div",SP,w(D.value.id),1)])]),u("div",CP,[u("button",{type:"button",class:"rounded-md border border-neutral-200 px-2.5 py-1 text-neutral-700 transition-colors hover:bg-neutral-50 hover:text-neutral-950 dark:border-neutral-800 dark:text-neutral-300 dark:hover:bg-neutral-900 dark:hover:text-neutral-50",onClick:rt},w(S.value==="cancel"?"Keep scheduled":"Cancel"),1),u("button",{type:"button",class:J(["rounded-md px-2.5 py-1 font-medium transition-opacity hover:opacity-85",S.value==="cancel"?"bg-red-600 text-white hover:opacity-85 dark:bg-red-500 dark:text-white":"bg-neutral-900 text-white dark:bg-neutral-100 dark:text-neutral-950"]),onClick:O[5]||(O[5]=z=>on(D.value))},w(ge(D.value)),3)])],4)):M("",!0)]))]))}}),RP={class:"flex h-full min-h-0 flex-col overflow-hidden"},EP={class:"ui-border flex items-center justify-between gap-3 border-b px-3 py-2"},PP={class:"min-w-0 flex items-center gap-1 overflow-hidden text-xs","aria-label":"File path"},NP=["aria-current","onClick"],OP={class:"flex shrink-0 items-center gap-1"},DP=["aria-checked"],BP=["aria-checked"],FP=["disabled"],jP=["disabled"],qP={class:"min-h-0 flex-1 overflow-auto p-3"},zP={key:0,class:"py-12 text-center text-sm text-neutral-500"},VP={key:1,class:"flex justify-center py-12"},HP={key:2,class:"py-12 text-center text-sm text-red-600 dark:text-red-400"},UP={key:3,class:"py-12 text-center text-sm text-neutral-500"},KP={key:4,class:"space-y-0.5"},WP=["onClick","onDblclick","onKeydown"],GP={key:1,class:"w-3 shrink-0"},JP={key:3,class:"flex h-7 w-7 shrink-0 items-center justify-center overflow-hidden rounded border border-neutral-200 bg-neutral-100 dark:border-neutral-700 dark:bg-neutral-900"},XP=["src","alt"],YP={key:4,class:"flex h-7 w-7 shrink-0 items-center justify-center rounded border border-neutral-200 bg-neutral-100 dark:border-neutral-700 dark:bg-neutral-900"},ZP={class:"min-w-0 flex-1 truncate"},QP={key:5,class:"text-[11px] text-neutral-400"},eN={key:6,class:"text-[11px] text-neutral-400"},tN={key:5,class:"grid grid-cols-[repeat(auto-fill,minmax(112px,1fr))] gap-3"},nN=["onClick","onKeydown"],rN={class:"mb-2 flex aspect-square items-center justify-center overflow-hidden rounded bg-neutral-100 dark:bg-neutral-950"},aN=["src","alt"],oN={class:"truncate text-xs font-medium"},sN={class:"mt-0.5 text-[11px] text-neutral-400"},lN={class:"flex h-full min-h-0 flex-col overflow-hidden"},iN={class:"flex items-center justify-between border-b border-neutral-200 px-3 py-2 dark:border-neutral-800"},uN={class:"min-w-0"},dN={class:"truncate text-sm font-medium"},cN={class:"truncate text-[11px] font-mono text-neutral-500"},fN={class:"flex shrink-0 items-center gap-1.5"},pN=["disabled"],hN=["href","download"],mN={key:0,class:"grid grid-cols-[120px_minmax(0,1fr)] gap-2 text-sm"},gN={class:"font-mono"},vN={class:"break-all font-mono"},yN={key:1,class:"flex h-full items-center justify-center"},bN={key:2,class:"text-sm text-red-600 dark:text-red-400"},xN=["src","alt"],kN={key:0,class:"mb-3 rounded border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-red-900/70 dark:bg-red-950/30 dark:text-red-300"},wN={key:5,class:"grid grid-cols-[120px_minmax(0,1fr)] gap-2 text-sm"},_N={class:"font-mono"},$N={class:"font-mono"},IN={class:"break-all font-mono"},SN="agentbuilder.threads.filePreviewSplitPercent",CN=we({__name:"ThreadFilesPane",props:{threadId:{},path:{},refreshKey:{},active:{type:Boolean,default:!0}},emits:["update:path","count-changed"],setup(e,{emit:t}){const n=Ml(()=>Sl(()=>import("./CodeEditor-C9bQ4Z3b.js").then(I=>I.K),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),r=e,a=si(()=>r.active),o=t,s=R([]),i=R(!1),d=R(!1),p=R(!1),f=R(null),m=R("tree"),g=R("/"),v=R(null),_=R(new Set(["/"])),b=R(!1),C=R(null),y=R(!1),A=R(null),L=R(""),k=R(null),S=R(50),T=R(null),B=R(new Map);let q=null,H=0;const N=I=>(I.startsWith("/")?I:`/${I}`).replace(/\/+/g,"/"),P=(I,O="")=>{const z=typeof I=="string"?I:I.path;return r.threadId?Wr(r.threadId,z,O):""},U=I=>P(I),V=I=>{const O=I.name.toLowerCase();return O.endsWith(".vue")?"html":I.mimeType.includes("json")||O.endsWith(".json")?"json":O.endsWith(".md")||O.endsWith(".markdown")?"markdown":O.endsWith(".ts")||O.endsWith(".tsx")?"typescript":O.endsWith(".js")||O.endsWith(".jsx")?"javascript":O.endsWith(".css")?"css":O.endsWith(".scss")?"scss":O.endsWith(".html")?"html":O.endsWith(".yml")||O.endsWith(".yaml")?"yaml":O.endsWith(".sh")||O.endsWith(".bash")?"shell":O.endsWith(".py")?"python":O.endsWith(".xml")||I.mimeType.includes("xml")?"xml":"plaintext"},Y=I=>{if(!I)return"0 B";const O=["B","KB","MB","GB"],z=Math.min(Math.floor(Math.log(I)/Math.log(1024)),O.length-1);return`${(I/1024**z).toFixed(z===0?0:1)} ${O[z]}`},$=I=>`${I} ${I===1?"item":"items"}`,D=I=>!!I?.mimeType?.startsWith("image/"),W=new Set([".bash",".css",".html",".js",".jsx",".json",".md",".markdown",".py",".scss",".sh",".ts",".tsx",".txt",".vue",".xml",".yaml",".yml"]),E=I=>{if(!I)return!1;const O=I.name.toLowerCase();return I.mimeType.startsWith("text/")||I.mimeType.includes("json")||I.mimeType.includes("xml")||I.mimeType.includes("javascript")||I.mimeType.includes("typescript")||[...W].some(z=>O.endsWith(z))},X=I=>I?D(I)?gc:I.mimeType.startsWith("audio/")?bm:I.mimeType.startsWith("video/")?xm:E(I)?I.mimeType.includes("json")||I.mimeType.includes("javascript")?km:wm:po:po,re=()=>{const I=new Set(["/"]);for(const O of s.value){const z=N(O.path).split("/").filter(Boolean);let ye="";for(const Q of z.slice(0,-1))ye+="/"+Q,I.add(ye)}return I},ne=()=>{_.value=re()},de=I=>I?`${I.path}|${I.size}|${I.updatedAt??""}|${I.mimeType}`:"",ue=async(I={})=>{const O=r.threadId;if(!r.threadId){H++,q=null,i.value=!1,s.value=[];return}const z=I.quiet===!0;if(z&&q!==null)return;const ye=++H,Q=s.value;z?q=ye:(i.value=!0,f.value=null);try{const Ae=await Be.request(He(`/api/threads/${O}/fs?find=**/*&type=file`)),Ne=await Be.readJson(Ae);if(ye!==H||O!==r.threadId)return;const Ke=(Ne.files||[]).filter(qe=>!qe.isDirectory).map(qe=>({...qe,path:N(qe.path)})).sort(Go);s.value=QS(s.value,Ke,Q),m.value==="tree"&&s.value.length>0&&!b.value&&(ne(),b.value=!0)}catch(Ae){!z&&ye===H&&(f.value=Ve(Ae))}finally{q===ye&&(q=null),ye===H&&(i.value=!1)}},ae=x(()=>{const I={type:"directory",name:"",path:"/",children:[]},O=new Map([["/",I]]);for(const ye of s.value){const Q=N(ye.path).split("/").filter(Boolean);let Ae=I,Ne="";for(const Ke of Q.slice(0,-1)){Ne=`${Ne}/${Ke}`;let qe=O.get(Ne);qe||(qe={type:"directory",name:Ke,path:Ne,children:[]},O.set(Ne,qe),Ae.children.push(qe)),Ae=qe}Ae.children.push({type:"file",name:ye.name||Q[Q.length-1],path:ye.path,file:ye,children:[]})}const z=ye=>{ye.children.sort((Q,Ae)=>Q.type!==Ae.type?Q.type==="directory"?-1:1:Q.name.localeCompare(Ae.name)),ye.children.forEach(z)};return z(I),I}),xe=x(()=>{if(g.value==="/")return ae.value;const I=g.value.split("/").filter(Boolean);let O=ae.value;for(const z of I){const ye=O.children.find(Q=>Q.type==="directory"&&Q.name===z);if(!ye)return ae.value;O=ye}return O}),Re=x(()=>xe.value.children),Me=x(()=>[...Re.value].sort((I,O)=>I.type!==O.type?I.type==="file"?-1:1:I.file&&O.file&&D(I.file)!==D(O.file)?D(I.file)?-1:1:I.name.localeCompare(O.name))),Ee=x(()=>{const I=[],O=(z,ye)=>{for(const Q of z)I.push({node:Q,depth:ye}),Q.type==="directory"&&_.value.has(Q.path)&&O(Q.children,ye+1)};return O(xe.value.children,0),I}),ke=x(()=>{if(m.value==="tree"){const I=g.value!=="/"?[{key:"__up__",kind:"up"}]:[];return I.push(...Ee.value.map(O=>({key:O.node.path,kind:"node",node:O.node}))),I}return Me.value.map(I=>({key:I.path,kind:"node",node:I}))}),ie=x(()=>v.value?s.value.find(I=>I.path===v.value)??null:null),se=x(()=>ie.value?V(ie.value):"plaintext"),me=x(()=>de(ie.value)),pe=x(()=>!!ie.value&&C.value!==null&&E(ie.value)),Fe=x(()=>pe.value&&L.value!==(C.value??"")),fe=x(()=>{const I=ie.value;if(!I)return!1;const O=I.mimeType.toLowerCase();return D(I)||E(I)||O==="application/pdf"||O.startsWith("audio/")||O.startsWith("video/")}),Te=(I,O)=>{if(I.path===O)return I;for(const z of I.children){const ye=Te(z,O);if(ye)return ye}return null},Z=x(()=>{if(!v.value)return null;const I=Te(ae.value,v.value);return I?.type==="directory"?I:null}),ee=x(()=>{const I=g.value.split("/").filter(Boolean),O=[{label:"Files",path:"/"}];let z="";for(const ye of I)z+=`/${ye}`,O.push({label:ye,path:z});return O}),oe=I=>{if(v.value=I.path,I.type==="directory"){g.value=I.path,_.value.add(I.path),_.value=new Set(_.value);return}},Oe=I=>{v.value=I.path,_.value.has(I.path)?_.value.delete(I.path):_.value.add(I.path),_.value=new Set(_.value)},F=async(I,O={})=>{const z=O.quiet===!0;if(!(Fe.value&&v.value===I.path)&&(z||(C.value=null,A.value=null,L.value=""),!!E(I))){z||(y.value=!0);try{const ye=await Be.getText(P(I));v.value===I.path&&!Fe.value&&(C.value=ye,L.value=ye,A.value=null)}catch(ye){z||(A.value=Ve(ye))}finally{z||(y.value=!1)}}},ce=async()=>{!ie.value||!E(ie.value)||Fe.value||await F(ie.value,{quiet:!0})},he=async()=>{!r.threadId||d.value||p.value||(await ue({quiet:!0}),await ce())},Pe=I=>{const O=So(s.value,I);if(!O)return;s.value=O;const z=I?.path;typeof z=="string"&&v.value===N(z)&&ce()},Se=Wo({events:{file_moved:I=>{const O=lp(s.value,I),z=I;!O||typeof z?.from!="string"||typeof z.path!="string"||(s.value=O,g.value=to(g.value,z.from,z.path),v.value&&(v.value=to(v.value,z.from,z.path)),_.value=new Set([..._.value].map(ye=>to(ye,z.from,z.path))))},file_created:Pe,file_updated:Pe,file_deleted:I=>{const O=sp(s.value,I);O&&(s.value=O)}},onConnected:()=>{he()}}),ge=I=>{const O=new TextEncoder().encode(I);let z="";for(const ye of O)z+=String.fromCharCode(ye);return btoa(z)},$e=()=>{L.value=C.value??"",k.value=null},_e=async()=>{const I=ie.value;if(!(!I||!r.threadId)){p.value=!0,k.value=null;try{await Be.request(P(I),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:ge(L.value),mimeType:I.mimeType||"text/plain"})}),C.value=L.value,await ue({quiet:!0})}catch(O){k.value=Ve(O)}finally{p.value=!1}}},De=async I=>{const O=I.target;if(!(!r.threadId||!O.files?.length)){d.value=!0,f.value=null;try{for(const z of Array.from(O.files)){const ye=g.value==="/"?`/${z.name}`:`${g.value}/${z.name}`;await Be.request(P(ye),{method:"POST",headers:{"Content-Type":z.type||"application/octet-stream"},body:z})}await ue()}catch(z){f.value=Ve(z)}finally{d.value=!1,O.value=""}}},Xe=R(new Set);ve(()=>r.threadId,()=>{q=null,g.value=N(r.path||"/"),v.value=null,C.value=null,A.value=null,L.value="",k.value=null,_.value=new Set(["/"]),b.value=!1,Xe.value=new Set,ue()},{immediate:!0}),ve(s,I=>{o("count-changed",I.length)},{immediate:!0}),ve(()=>r.refreshKey,()=>{r.threadId&&ue()}),ve(()=>r.active,I=>{I&&!Se.available&&he()});const rt=R(!1),kt=I=>{const O=I.lastIndexOf("/");return O<=0?"/":I.slice(0,O)},At=I=>{const O=I.split("/").filter(Boolean);let z="";_.value.add("/");for(let ye=0;ye<O.length-1;ye++)z+="/"+O[ye],_.value.add(z);_.value=new Set(_.value)},Lt=()=>{const I=kt(g.value);g.value=I,v.value=I==="/"?null:I,_.value.add(I),_.value=new Set(_.value)},Yt=(I,O)=>{O instanceof HTMLElement?B.value.set(I,O):B.value.delete(I)},on=async I=>{await Qe(),B.value.get(I)?.focus({preventScroll:!0})},wt=I=>{I.kind==="node"&&oe(I.node)},jt=(I,O)=>{const z=ke.value,ye=z.findIndex(Ae=>Ae.key===I);if(ye<0)return;const Q=z[Math.min(z.length-1,Math.max(0,ye+O))];Q&&(wt(Q),on(Q.key))},G=I=>{const O=ke.value,z=I==="start"?O[0]:O[O.length-1];z&&(wt(z),on(z.key))},le=(I,O)=>{if(I.key==="ArrowDown"){I.preventDefault(),jt(O.key,1);return}if(I.key==="ArrowUp"){I.preventDefault(),jt(O.key,-1);return}if(I.key==="Home"){I.preventDefault(),G("start");return}if(I.key==="End"){I.preventDefault(),G("end");return}m.value!=="tree"||O.kind!=="node"||O.node.type!=="directory"||(I.key==="ArrowRight"&&!_.value.has(O.node.path)?(I.preventDefault(),_.value.add(O.node.path),_.value=new Set(_.value)):I.key==="ArrowLeft"&&_.value.has(O.node.path)&&(I.preventDefault(),_.value.delete(O.node.path),_.value=new Set(_.value)))};return ve([()=>r.path,s],async([I])=>{const O=N(I||"/");let z=s.value.find(Q=>Q.path===O&&!Q.isDirectory);const ye=O!=="/"&&/\.[a-z0-9]+$/i.test(O);if(!z&&ye&&I&&!Xe.value.has(O)&&(Xe.value.add(O),await ue(),z=s.value.find(Q=>Q.path===O&&!Q.isDirectory)),z){const Q=m.value==="tree"?"/":kt(O);v.value=O,At(O),g.value!==Q&&(rt.value=!0,g.value=Q)}else g.value!==O&&(rt.value=!0,g.value=O)}),ve(m,I=>{I==="tree"&&(s.value.length>0&&!b.value&&(ne(),b.value=!0),ie.value&&g.value!=="/"&&(At(ie.value.path),rt.value=!0,g.value="/"))}),ve(g,I=>{if(rt.value){rt.value=!1;return}o("update:path",N(I))}),ve(v,()=>{C.value=null,A.value=null,L.value="",k.value=null}),ve(me,()=>{const I=ie.value;I?F(I):(L.value="",k.value=null,C.value=null,A.value=null)}),ve(Z,()=>{L.value="",k.value=null,C.value=null,A.value=null}),(I,O)=>(l(),K(Xo,{"height-percent":S.value,"onUpdate:heightPercent":O[6]||(O[6]=z=>S.value=z),"storage-key":SN,title:"Resize files and preview"},ar({main:be(()=>[u("div",RP,[u("div",EP,[u("nav",PP,[(l(!0),c(te,null,Ie(ee.value,(z,ye)=>(l(),c(te,{key:z.path},[ye>0?(l(),K(h(Et),{key:0,size:13,class:"shrink-0 text-neutral-300 dark:text-neutral-600"})):M("",!0),u("button",{type:"button",class:J(["min-w-0 truncate rounded-md px-1.5 py-1 font-medium transition-colors",ye===ee.value.length-1?"text-neutral-900 dark:text-neutral-100":"text-neutral-500 hover:bg-neutral-100 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-neutral-800 dark:hover:text-neutral-100"]),"aria-current":ye===ee.value.length-1?"location":void 0,onClick:Q=>g.value=z.path},w(z.label),11,NP)],64))),128))]),u("div",OP,[u("div",{class:J(h(kl)),role:"radiogroup","aria-label":"File view"},[u("button",{type:"button",role:"radio","aria-checked":m.value==="tree",class:J([h(Mi),m.value==="tree"?[h(so),h(lo)]:h(io)]),"aria-label":"Tree view",title:"Tree view",onClick:O[0]||(O[0]=z=>m.value="tree")},[j(h(gm),{size:14})],10,DP),u("button",{type:"button",role:"radio","aria-checked":m.value==="grid",class:J([h(Mi),m.value==="grid"?[h(so),h(lo)]:h(io)]),"aria-label":"Grid view",title:"Grid view",onClick:O[1]||(O[1]=z=>m.value="grid")},[j(h(vm),{size:14})],10,BP)],2),u("button",{type:"button",class:"inline-flex h-7 w-7 items-center justify-center rounded text-neutral-500 hover:bg-neutral-100 hover:text-neutral-950 disabled:opacity-50 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",disabled:!e.threadId||i.value,title:"Refresh files",onClick:O[2]||(O[2]=z=>ue())},[i.value?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(zo),{key:1,size:15}))],8,FP),u("input",{ref_key:"fileInput",ref:T,type:"file",multiple:"",class:"hidden",onChange:De},null,544),u("button",{type:"button",class:"inline-flex h-7 w-7 items-center justify-center rounded text-neutral-500 hover:bg-neutral-100 hover:text-neutral-950 disabled:opacity-50 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",disabled:!e.threadId||d.value,title:"Upload files",onClick:O[3]||(O[3]=z=>T.value?.click())},[d.value?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(ym),{key:1,size:15}))],8,jP)])]),u("div",qP,[e.threadId?i.value?(l(),c("div",VP,[j(et)])):f.value?(l(),c("div",HP,w(h(Ve)(f.value)),1)):s.value.length===0?(l(),c("div",UP," No files yet ")):m.value==="tree"?(l(),c("div",KP,[g.value!=="/"?(l(),c("button",{key:0,ref:z=>Yt("__up__",z),type:"button",class:"flex w-full items-center gap-2 rounded py-1.5 pr-2 text-left text-xs hover:bg-neutral-100 dark:hover:bg-neutral-800",style:{paddingLeft:"8px"},onClick:Lt,onKeydown:O[4]||(O[4]=z=>le(z,{key:"__up__",kind:"up"}))},[O[7]||(O[7]=u("span",{class:"w-3 shrink-0"},null,-1)),j(h(as),{size:15,class:"shrink-0 text-amber-500"}),O[8]||(O[8]=u("span",{class:"min-w-0 flex-1 font-mono"},"..",-1))],544)):M("",!0),(l(!0),c(te,null,Ie(Ee.value,z=>(l(),c("button",{key:z.node.path,ref_for:!0,ref:ye=>Yt(z.node.path,ye),type:"button",class:J(["flex w-full items-center gap-2 rounded py-1.5 pr-2 text-left text-xs",v.value===z.node.path?"agents-surface-selected agents-text-selected":"hover:bg-neutral-100 dark:hover:bg-neutral-800"]),style:nt({paddingLeft:`${8+z.depth*18}px`}),onClick:ye=>z.node.type==="directory"?Oe(z.node):oe(z.node),onDblclick:ye=>z.node.type==="directory"?oe(z.node):void 0,onKeydown:ye=>le(ye,{key:z.node.path,kind:"node",node:z.node})},[z.node.type==="directory"?(l(),K(h(Et),{key:0,size:12,class:J(["shrink-0 text-neutral-400 transition-transform",_.value.has(z.node.path)?"rotate-90":""])},null,8,["class"])):(l(),c("span",GP)),z.node.type==="directory"?(l(),K(h(as),{key:2,size:15,class:"shrink-0 text-amber-500"})):z.node.file&&D(z.node.file)?(l(),c("span",JP,[u("img",{src:U(z.node.file),alt:z.node.name,class:"h-full w-full object-cover",loading:"lazy"},null,8,XP)])):(l(),c("span",YP,[(l(),K(ct(X(z.node.file)),{size:15,class:"text-neutral-500"}))])),u("span",ZP,w(z.node.name),1),z.node.type==="directory"?(l(),c("span",QP,w($(z.node.children.length)),1)):(l(),c("span",eN,w(Y(z.node.file?.size||0)),1))],46,WP))),128))])):(l(),c("div",tN,[(l(!0),c(te,null,Ie(Me.value,z=>(l(),c("button",{key:z.path,ref_for:!0,ref:ye=>Yt(z.path,ye),type:"button",class:J(["group min-w-0 rounded-lg border p-2 text-left",v.value===z.path?"agents-border-selected agents-surface-selected":"border-neutral-200 bg-white hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-900 dark:hover:border-neutral-700 dark:hover:bg-neutral-800"]),onClick:ye=>oe(z),onKeydown:ye=>le(ye,{key:z.path,kind:"node",node:z})},[u("div",rN,[z.file&&D(z.file)?(l(),c("img",{key:0,src:U(z.file),alt:z.name,class:"h-full w-full object-cover",loading:"lazy"},null,8,aN)):z.type==="directory"?(l(),K(h(as),{key:1,size:28,class:"text-amber-500"})):(l(),K(ct(X(z.file)),{key:2,size:28,class:"text-neutral-500"}))]),u("div",oN,w(z.name),1),u("div",sN,w(z.type==="directory"?$(z.children.length):Y(z.file?.size||0)),1)],42,nN))),128))])):(l(),c("div",zP," Select a thread to view files "))])])]),_:2},[ie.value||Z.value?{name:"detail",fn:be(()=>[u("div",lN,[u("div",iN,[u("div",uN,[u("div",dN,w(ie.value?.name||Z.value?.name||"Files"),1),u("div",cN,w(ie.value?.path||Z.value?.path),1)]),u("div",fN,[ie.value&&pe.value?(l(),c(te,{key:0},[u("button",{type:"button",class:"inline-flex h-8 items-center gap-1.5 rounded bg-neutral-900 px-2.5 text-sm font-medium text-white transition-colors hover:bg-neutral-700 disabled:opacity-50 dark:bg-neutral-100 dark:text-neutral-950 dark:hover:bg-neutral-300",disabled:p.value||!Fe.value,onClick:_e},[p.value?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(kc),{key:1,size:14})),O[9]||(O[9]=u("span",null,"Save",-1))],8,pN),Fe.value?(l(),c("button",{key:0,type:"button",class:"inline-flex h-8 w-8 items-center justify-center rounded text-neutral-500 transition-colors hover:bg-neutral-100 hover:text-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",title:"Cancel","aria-label":"Cancel file edit",onClick:$e},[j(h(cn),{size:15})])):M("",!0)],64)):M("",!0),ie.value?(l(),c("a",{key:1,href:P(ie.value),target:"_blank",rel:"noopener noreferrer",download:fe.value?void 0:ie.value.name,class:"shrink-0 rounded border border-neutral-200 px-2 py-1 text-xs font-medium hover:bg-neutral-50 dark:border-neutral-700 dark:hover:bg-neutral-800"},w(fe.value?"Open":"Download"),9,hN)):M("",!0)])]),u("div",{class:J(["min-h-0 flex-1",C.value!==null&&!y.value&&!A.value&&!Z.value&&!D(ie.value)?"flex flex-col overflow-hidden p-3":"overflow-auto p-3"])},[Z.value?(l(),c("dl",mN,[O[10]||(O[10]=u("dt",{class:"text-neutral-500"},"Type",-1)),O[11]||(O[11]=u("dd",{class:"font-mono"},"directory",-1)),O[12]||(O[12]=u("dt",{class:"text-neutral-500"},"Items",-1)),u("dd",gN,w($(Z.value.children.length)),1),O[13]||(O[13]=u("dt",{class:"text-neutral-500"},"Path",-1)),u("dd",vN,w(Z.value.path),1)])):y.value?(l(),c("div",yN,[j(et)])):A.value?(l(),c("div",bN,w(h(Ve)(A.value)),1)):D(ie.value)?(l(),c("img",{key:3,src:P(ie.value),alt:ie.value.name,class:"mx-auto max-h-full max-w-full rounded border border-neutral-200 object-contain dark:border-neutral-800"},null,8,xN)):C.value!==null?(l(),c(te,{key:4},[k.value?(l(),c("div",kN,w(h(Ve)(k.value)),1)):M("",!0),pe.value&&h(a)?(l(),K(h(n),{key:1,modelValue:L.value,"onUpdate:modelValue":O[5]||(O[5]=z=>L.value=z),language:se.value,class:"min-h-[12rem] flex-1",framed:!1},null,8,["modelValue","language"])):M("",!0)],64)):ie.value?(l(),c("dl",wN,[O[14]||(O[14]=u("dt",{class:"text-neutral-500"},"Type",-1)),u("dd",_N,w(ie.value.mimeType||"application/octet-stream"),1),O[15]||(O[15]=u("dt",{class:"text-neutral-500"},"Size",-1)),u("dd",$N,w(Y(ie.value.size)),1),O[16]||(O[16]=u("dt",{class:"text-neutral-500"},"Path",-1)),u("dd",IN,w(ie.value.path),1)])):M("",!0)],2)])]),key:"0"}:void 0]),1032,["height-percent"]))}}),TN={class:"flex h-full min-h-0 flex-col overflow-hidden"},MN={class:"flex items-center gap-2 border-b border-neutral-200 px-3 py-2 dark:border-neutral-800"},AN={class:"relative min-w-0 flex-1"},LN={class:"hidden shrink-0 text-xs tabular-nums text-neutral-500 sm:block"},RN=["disabled"],EN=["disabled"],PN={class:"min-h-0 flex-1 overflow-auto"},NN={key:0,class:"py-12 text-center text-sm text-neutral-500"},ON={key:1,class:"flex justify-center py-12"},DN={key:2,class:"py-12 text-center text-sm text-red-600 dark:text-red-400"},BN={key:3,class:"py-12 text-center text-sm text-neutral-500"},FN={key:4,class:"flex min-h-full flex-col"},jN={class:"min-h-0 flex-1 overflow-auto bg-white dark:bg-neutral-950"},qN={class:"w-full min-w-[40rem] table-fixed text-left text-xs"},zN={class:"divide-y divide-(--color-border-subtle)"},VN=["aria-selected","onClick","onKeydown"],HN={class:"min-w-0 px-4 py-2 align-middle"},UN=["title"],KN={class:"min-w-0 px-3 py-2 align-middle"},WN={class:"truncate text-xs text-neutral-500 dark:text-neutral-400"},GN={class:"whitespace-nowrap px-3 py-2 align-middle"},JN={class:"whitespace-nowrap px-3 py-2 text-right align-middle text-xs tabular-nums text-neutral-500 dark:text-neutral-400"},XN={class:"whitespace-nowrap px-4 py-2 text-right align-middle text-xs text-neutral-500 dark:text-neutral-400"},YN=["disabled"],ZN={class:"flex h-full min-h-0 flex-col overflow-hidden"},QN={class:"flex items-center justify-between gap-3 border-b border-neutral-200 px-3 py-2 dark:border-neutral-800"},eO={class:"min-w-0 flex-1"},tO={key:0,class:"flex items-center gap-2"},nO={key:1,class:"mt-1 truncate text-xs text-neutral-500 dark:text-neutral-400"},rO={class:"flex shrink-0 items-center gap-1.5"},aO=["disabled"],oO=["disabled"],sO={class:"flex min-h-0 flex-1 flex-col overflow-hidden p-3"},lO={key:0,class:"mb-3 text-xs text-red-600 dark:text-red-400"},iO="agentbuilder.threads.kvStoreDetailSplitPercent",xd=100,mr=`{
|
|
65
|
-
|
|
66
|
-
}`,uO=we({__name:"ThreadKvStorePane",props:{threadId:{},active:{type:Boolean,default:!0}},emits:["count-changed"],setup(e,{emit:t}){const n=Ml(()=>Sl(()=>import("./CodeEditor-C9bQ4Z3b.js").then(Z=>Z.K),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),r=e,a=si(()=>r.active),o=t,s=R([]),i=R(0),d=R(""),p=R(!1),f=R(!1),m=R(!1),g=R(!1),v=R(null),_=R(null),b=R(null),C=R("view"),y=R(""),A=R(mr),L=R(null),k=R(mr),S=R(50),T=R(new Map);let B=null,q=!1,H=0;const N=()=>{typeof document<"u"&&document.visibilityState==="visible"&&fe.onVisible()},P=x(()=>b.value?s.value.find(Z=>Z.key===b.value)??null:null),U=x(()=>s.value.length<i.value),V=x(()=>{const Z=s.value.length;return r.threadId?i.value===0?d.value.trim()?"No matches":"No values":`${Z} of ${i.value}`:""}),Y=x(()=>ys(P.value?.value,P.value?.parseError)),$=x(()=>P.value?.parseError?"text":"json"),D=x(()=>C.value==="create"),W=x(()=>D.value||!!P.value),E=x(()=>W.value&&(y.value!==(L.value??"")||A.value!==k.value)),X=x(()=>!E.value&&P.value?.parseError?P.value.parseError:null);function re(Z){switch(Z){case"object":case"array":case"string":case"number":case"boolean":return"text-neutral-500 dark:text-neutral-400";default:return"text-red-600 dark:text-red-400"}}function ne(Z){if(D.value||E.value)return;const ee=Z?s.value.find(oe=>oe.key===Z):null;if(ee){b.value=ee.key;return}b.value&&s.value.some(oe=>oe.key===b.value)||(b.value=s.value[0]?.key??null)}function de(){return!!r.threadId&&r.active&&!D.value&&!E.value&&!p.value&&!f.value&&!m.value&&!g.value&&!q}async function ue(Z={}){if(!r.threadId){s.value=[],i.value=0,b.value=null;return}const ee=++H,oe=Z.append===!0,Oe=Z.quiet===!0;Oe&&(q=!0),Oe||(oe?f.value=!0:p.value=!0),Oe||(v.value=null);const F=new URLSearchParams,ce=Math.min(Math.max(s.value.length,xd),200);F.set("limit",String(oe?xd:ce)),F.set("offset",String(oe?s.value.length:0));const he=d.value.trim();he&&F.set("search",he);try{const Pe=await Be.request(He(`/api/threads/${r.threadId}/kv?${F}`)),We=up(await Be.readJson(Pe));return ee!==H?void 0:(s.value=oe?[...s.value,...We.values]:We.values,i.value=We.total,ne(Z.preferredKey),!0)}catch(Pe){return ee===H&&(!Oe||s.value.length===0)&&(v.value=Ve(Pe)),!1}finally{Oe&&(q=!1),ee===H&&!Oe&&(p.value=!1,f.value=!1)}}function ae(){B&&clearTimeout(B),B=setTimeout(()=>{ue()},250)}function xe(Z){b.value=Z.key,C.value="view",_.value=null,Me(Z)}function Re(){L.value=null,k.value=mr,y.value="",A.value=mr}function Me(Z){if(!Z){Re();return}const ee=Z.parseError?Z.serialized:dp(Z.value);L.value=Z.key,k.value=ee,y.value=Z.key,A.value=ee,_.value=null}function Ee(Z,ee){ee instanceof HTMLElement?T.value.set(Z,ee):T.value.delete(Z)}async function ke(Z){await Qe(),T.value.get(Z)?.focus({preventScroll:!0})}function ie(Z,ee){const oe=s.value.findIndex(ce=>ce.key===ee.key);if(oe<0)return;let Oe=oe;if(Z.key==="ArrowDown")Oe=Math.min(s.value.length-1,oe+1);else if(Z.key==="ArrowUp")Oe=Math.max(0,oe-1);else if(Z.key==="Home")Oe=0;else if(Z.key==="End")Oe=s.value.length-1;else return;Z.preventDefault();const F=s.value[Oe];F&&(xe(F),ke(F.key))}function se(){b.value=null,L.value=null,k.value=mr,y.value="",A.value=mr,_.value=null,C.value="create"}function me(){if(_.value=null,D.value){C.value="view",ne();return}Me(P.value)}async function pe(){if(!r.threadId)return;const Z=y.value;if(!Z.trim()){_.value="Key is required";return}const ee=A.value,oe=uC(ee);if(!oe.ok){_.value=oe.error;return}m.value=!0,_.value=null;try{await Be.request(He(`/api/threads/${r.threadId}/kv`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:Z,value:oe.value,previousKey:D.value?void 0:L.value})}),L.value=Z,k.value=ee,b.value=Z,C.value="view",await ue({preferredKey:Z})}catch(Oe){_.value=Ve(Oe)}finally{m.value=!1}}async function Fe(){if(!r.threadId||!P.value)return;const Z=P.value.key;if(window.confirm(`Delete ${Z}?`)){g.value=!0,v.value=null;try{const ee=new URLSearchParams({key:Z});await Be.request(He(`/api/threads/${r.threadId}/kv?${ee}`),{method:"DELETE"}),b.value=null,C.value="view",Re(),await ue()}catch(ee){v.value=Ve(ee)}finally{g.value=!1}}}ve(()=>r.threadId,()=>{d.value="",C.value="view",_.value=null,Re(),ue()},{immediate:!0}),ve(d,ae),ve(i,Z=>{d.value.trim()||o("count-changed",Z)},{immediate:!0}),ve(P,Z=>{D.value||E.value||Me(Z)});const fe=Gp({refresh:async()=>de()?await ue({preferredKey:b.value,quiet:!0}):!1}),Te=Wo({events:{kv_changed:()=>fe.notify()},onConnected:()=>fe.notify()});return ve(()=>r.active,Z=>{Z&&(Te.available||fe.notify(),fe.flush())}),ve(de,Z=>{Z&&fe.flush()}),typeof document<"u"&&document.addEventListener("visibilitychange",N),Ft(()=>{B&&clearTimeout(B),fe.cancel(),typeof document<"u"&&document.removeEventListener("visibilitychange",N)}),(Z,ee)=>(l(),K(Xo,{"height-percent":S.value,"onUpdate:heightPercent":ee[6]||(ee[6]=oe=>S.value=oe),"storage-key":iO,title:"Resize key-value browser and detail"},ar({main:be(()=>[u("div",TN,[u("div",MN,[u("div",AN,[j(h(_m),{size:14,class:"pointer-events-none absolute left-2 top-1/2 -translate-y-1/2 text-neutral-400"}),$t(u("input",{"onUpdate:modelValue":ee[0]||(ee[0]=oe=>d.value=oe),type:"search",class:"h-8 w-full rounded-md border border-neutral-200 bg-white pl-7 pr-2 text-sm outline-none focus:border-accent-500 focus:ring-1 focus:ring-accent-500 dark:border-neutral-800 dark:bg-neutral-950",placeholder:"Search keys and values",onKeydown:ee[1]||(ee[1]=dn(Je(oe=>ue(),["prevent"]),["enter"]))},null,544),[[fo,d.value]])]),u("div",LN,w(V.value),1),u("button",{type:"button",class:"inline-flex h-8 w-8 items-center justify-center rounded text-neutral-500 transition-colors hover:bg-neutral-100 hover:text-neutral-950 disabled:opacity-50 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",disabled:!e.threadId||p.value,title:"Refresh values","aria-label":"Refresh values",onClick:ee[2]||(ee[2]=oe=>ue())},[p.value?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(zo),{key:1,size:15}))],8,RN),u("button",{type:"button",class:"inline-flex h-8 items-center gap-1.5 rounded-md border border-neutral-200 px-3 text-xs font-medium text-neutral-800 transition-colors hover:bg-neutral-50 disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-200 dark:hover:bg-neutral-800",disabled:!e.threadId,onClick:se},[j(h($m),{size:14}),ee[7]||(ee[7]=u("span",null,"New value",-1))],8,EN)]),u("div",PN,[e.threadId?p.value&&s.value.length===0?(l(),c("div",ON,[j(et)])):v.value?(l(),c("div",DN,w(h(Ve)(v.value)),1)):s.value.length===0?(l(),c("div",BN,[j(h(Im),{class:"mx-auto mb-2 h-8 w-8 opacity-40"}),Ce(" "+w(d.value.trim()?"No matching values":"No stored values"),1)])):(l(),c("div",FN,[u("div",jN,[u("table",qN,[ee[8]||(ee[8]=u("colgroup",null,[u("col",{class:"w-[40%]"}),u("col"),u("col",{class:"w-20"}),u("col",{class:"w-20"}),u("col",{class:"w-36"})],-1)),ee[9]||(ee[9]=u("thead",{class:"sticky top-0 z-10 border-b border-neutral-200 bg-neutral-50 text-xs font-medium text-neutral-500 dark:border-neutral-800 dark:bg-neutral-900/60 dark:text-neutral-400"},[u("tr",null,[u("th",{scope:"col",class:"px-4 py-2 font-medium"},"Key"),u("th",{scope:"col",class:"px-3 py-2 font-medium"},"Value"),u("th",{scope:"col",class:"px-3 py-2 text-left font-medium"},"Type"),u("th",{scope:"col",class:"px-3 py-2 text-right font-medium"},"Size"),u("th",{scope:"col",class:"px-4 py-2 text-right font-medium"},"Updated")])],-1)),u("tbody",zN,[(l(!0),c(te,null,Ie(s.value,oe=>(l(),c("tr",{key:oe.key,ref_for:!0,ref:Oe=>Ee(oe.key,Oe),tabindex:"0","aria-selected":b.value===oe.key,class:J(["cursor-pointer transition-colors focus:outline-none",b.value===oe.key?"agents-surface-selected":"hover:bg-neutral-50 dark:hover:bg-neutral-900"]),onClick:Oe=>xe(oe),onKeydown:[dn(Je(Oe=>xe(oe),["prevent"]),["enter"]),dn(Je(Oe=>xe(oe),["prevent"]),["space"]),Oe=>ie(Oe,oe)]},[u("td",HN,[u("div",{class:"truncate font-mono text-xs font-normal text-neutral-950 dark:text-neutral-100",title:oe.key},w(oe.key),9,UN)]),u("td",KN,[u("div",WN,w(h(dC)(oe.value,oe.parseError)),1)]),u("td",GN,[u("span",{class:J(["font-mono text-xs",re(h(ys)(oe.value,oe.parseError))])},w(h(ys)(oe.value,oe.parseError)),3)]),u("td",JN,w(h(ju)(oe.size)),1),u("td",XN,w(h(qu)(oe.updatedAt)),1)],42,VN))),128))])])]),U.value?(l(),c("button",{key:0,type:"button",class:"m-3 flex items-center justify-center gap-2 rounded-md border border-neutral-200 px-3 py-1.5 text-xs font-medium text-neutral-700 transition-colors hover:bg-neutral-50 disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-300 dark:hover:bg-neutral-900",disabled:f.value,onClick:ee[3]||(ee[3]=oe=>ue({append:!0}))},[f.value?(l(),K(et,{key:0,size:"xs"})):M("",!0),ee[10]||(ee[10]=u("span",null,"Load more",-1))],8,YN)):M("",!0)])):(l(),c("div",NN," Select a thread to view its key-value store "))])])]),_:2},[W.value?{name:"detail",fn:be(()=>[u("div",ZN,[u("div",QN,[u("div",eO,[W.value?(l(),c("div",tO,[$t(u("input",{"onUpdate:modelValue":ee[4]||(ee[4]=oe=>y.value=oe),type:"text",class:"h-8 min-w-0 flex-1 rounded-md border border-neutral-200 bg-white px-2 font-mono text-sm outline-none focus:border-accent-500 focus:ring-1 focus:ring-accent-500 dark:border-neutral-800 dark:bg-neutral-950",placeholder:"key"},null,512),[[fo,y.value]]),P.value?(l(),c("span",{key:0,class:J(["shrink-0 font-mono text-xs",re(Y.value)])},w(Y.value),3)):M("",!0)])):M("",!0),P.value?(l(),c("div",nO,w(h(ju)(P.value.size))+" · Updated "+w(h(qu)(P.value.updatedAt)),1)):M("",!0)]),u("div",rO,[W.value?(l(),c(te,{key:0},[u("button",{type:"button",class:"inline-flex h-8 items-center gap-1.5 rounded-md border border-neutral-200 px-3 text-xs font-medium text-neutral-800 transition-colors hover:bg-neutral-50 disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-200 dark:hover:bg-neutral-800",disabled:m.value||!E.value,onClick:pe},[m.value?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(kc),{key:1,size:14})),ee[11]||(ee[11]=u("span",null,"Save",-1))],8,aO),E.value?(l(),c("button",{key:0,type:"button",class:"inline-flex h-8 w-8 items-center justify-center rounded text-neutral-500 transition-colors hover:bg-neutral-100 hover:text-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",title:"Cancel","aria-label":"Cancel",onClick:me},[j(h(cn),{size:15})])):M("",!0),P.value?(l(),K(Ca,{key:1,content:A.value,variant:"ghost",size:"xs"},null,8,["content"])):M("",!0),P.value?(l(),c("button",{key:2,type:"button",class:"inline-flex h-8 w-8 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:text-neutral-400 dark:hover:bg-red-950/30 dark:hover:text-red-400",disabled:g.value,title:"Delete value","aria-label":"Delete value",onClick:Fe},[g.value?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(mo),{key:1,size:15}))],8,oO)):M("",!0)],64)):M("",!0)])]),u("div",sO,[_.value?(l(),c("div",lO,w(h(Ve)(_.value)),1)):M("",!0),W.value&&h(a)?(l(),K(h(n),{key:1,modelValue:A.value,"onUpdate:modelValue":ee[5]||(ee[5]=oe=>A.value=oe),class:"min-h-0 flex-1",language:$.value,error:X.value,"word-wrap":"on","format-on-blur":"",framed:!1,placeholder:"{\\n \\n}"},null,8,["modelValue","language","error"])):M("",!0)])])]),key:"0"}:void 0]),1032,["height-percent"]))}}),dO=["onClick"],cO=["value","placeholder","disabled"],fO=we({__name:"TagInput",props:{modelValue:{},placeholder:{},disabled:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,r=t,a=R(""),o=R(null),s=m=>{const g=m.trim().toLowerCase();g&&!n.modelValue.includes(g)&&r("update:modelValue",[...n.modelValue,g]),a.value="",Qe(()=>o.value?.focus())},i=m=>{const g=[...n.modelValue];g.splice(m,1),r("update:modelValue",g)},d=m=>{const g=m.target.value;if(g.includes(",")){const v=g.split(",");v.forEach((_,b)=>{b<v.length-1?s(_):a.value=_})}else a.value=g},p=m=>{m.key==="Enter"?(m.preventDefault(),s(a.value)):m.key==="Backspace"&&!a.value&&n.modelValue.length>0&&i(n.modelValue.length-1)},f=()=>{o.value?.focus()};return(m,g)=>(l(),c("div",{class:J(["flex flex-wrap items-center gap-1.5 min-h-[32px] px-2 py-1.5 bg-white dark:bg-neutral-950 border border-neutral-200 dark:border-neutral-800 rounded-md cursor-text focus-within:ring-2 focus-within:ring-accent-500/20 focus-within:border-accent-500 transition-colors",{"opacity-50 cursor-not-allowed":e.disabled}]),onClick:f},[(l(!0),c(te,null,Ie(e.modelValue,(v,_)=>(l(),c("span",{key:v,class:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium bg-accent-100 dark:bg-accent-900/30 text-accent-700 dark:text-accent-300 rounded"},[Ce(w(v)+" ",1),e.disabled?M("",!0):(l(),c("button",{key:0,type:"button",onClick:Je(b=>i(_),["stop"]),class:"hover:text-accent-900 dark:hover:text-accent-100 transition-colors"},[j(h(cn),{size:12})],8,dO))]))),128)),u("input",{ref_key:"inputRef",ref:o,type:"text",value:a.value,placeholder:e.modelValue.length===0?e.placeholder:"",disabled:e.disabled,class:"flex-1 min-w-[60px] bg-transparent border-none outline-none text-xs text-neutral-900 dark:text-neutral-100 placeholder:text-neutral-400 disabled:cursor-not-allowed",onInput:d,onKeydown:p},null,40,cO)],2))}}),pO={class:"thread-basic-info space-y-3"},hO={class:"text-xs text-neutral-500 dark:text-neutral-400"},mO=["title"],gO={class:"flex-1 truncate font-mono text-xs text-neutral-600 dark:text-neutral-400"},vO={class:"thread-basic-info-row flex items-center gap-3"},yO={class:"thread-basic-info-control flex min-w-0 flex-1 items-center gap-3"},bO={key:1,class:"text-sm text-neutral-800 dark:text-neutral-200"},xO={key:2,class:"shrink-0 text-xs text-neutral-500 dark:text-neutral-400"},kO={class:"thread-basic-info-row flex items-start gap-3"},wO=we({__name:"ThreadBasicInfoCard",props:{thread:{},copiedId:{type:Boolean},canChangeAgent:{type:Boolean},localAgentId:{},agentOptions:{},isFetchingAgents:{type:Boolean},isSavingAgent:{type:Boolean},localTags:{},isSavingTags:{type:Boolean}},emits:["copyId","agentChange","tagsChange"],setup(e,{emit:t}){const n=t,r=a=>new Date(a*1e3).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});return(a,o)=>{const s=It("FormKit");return l(),c("section",pO,[u("div",hO," Created "+w(r(e.thread.created_at)),1),u("button",{type:"button",class:"group flex w-full items-center gap-2 rounded-md border border-neutral-200 bg-neutral-50 px-2.5 py-1.5 text-left transition-colors hover:border-neutral-300 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700",title:e.copiedId?"Copied":"Copy thread ID",onClick:o[0]||(o[0]=i=>n("copyId"))},[u("code",gO,w(e.thread.id),1),u("span",{class:J(["shrink-0 transition-colors",e.copiedId?"text-green-600 dark:text-green-400":"text-neutral-400 group-hover:text-neutral-600 dark:group-hover:text-neutral-300"])},[e.copiedId?(l(),K(h(Sm),{key:0,size:14})):(l(),K(h(Cm),{key:1,size:14}))],2)],8,mO),u("div",vO,[o[3]||(o[3]=u("label",{class:"thread-basic-info-label w-12 shrink-0 text-xs text-neutral-500 dark:text-neutral-400"},"Agent",-1)),u("div",yO,[e.canChangeAgent?(l(),K(s,{key:0,type:"selectSearch","model-value":e.localAgentId,options:e.agentOptions,loading:e.isFetchingAgents||e.isSavingAgent,disabled:e.isSavingAgent,size:"sm",placeholder:"Select agent","outer-class":"!mb-0 flex-1",onInput:o[1]||(o[1]=i=>n("agentChange",String(i)))},null,8,["model-value","options","loading","disabled"])):(l(),c("span",bO,w(e.thread.agent.title),1)),h(Ns)(e.thread.agent.side_a_backing,e.thread.agent.side_b_backing)?(l(),c("span",xO,w(h(Ns)(e.thread.agent.side_a_backing,e.thread.agent.side_b_backing)),1)):M("",!0)])]),u("div",kO,[o[4]||(o[4]=u("label",{class:"thread-basic-info-label w-12 shrink-0 pt-2 text-xs text-neutral-500 dark:text-neutral-400"},"Tags",-1)),j(fO,{"model-value":e.localTags,"onUpdate:modelValue":o[2]||(o[2]=i=>n("tagsChange",i)),disabled:e.isSavingTags,placeholder:"Add tags",class:"min-w-0 flex-1"},null,8,["model-value","disabled"])])])}}}),_O=ot(wO,[["__scopeId","data-v-a18073eb"]]),$O={class:"thread-dev-tools space-y-3"},IO=["aria-expanded"],SO={key:0,class:"space-y-4"},CO={class:"space-y-1.5"},TO={class:"thread-dev-tools-action-row flex items-center gap-2"},MO=["value"],AO=["disabled"],LO=["disabled"],RO=we({__name:"ThreadDeveloperToolsCard",props:{expanded:{type:Boolean},showSideSelector:{type:Boolean},selectedSide:{},isContinuing:{type:Boolean},isDeleting:{type:Boolean}},emits:["toggle","updateSelectedSide","continueExecution","deleteThread"],setup(e,{emit:t}){const n=t;return(r,a)=>(l(),c("section",$O,[u("button",{onClick:a[0]||(a[0]=o=>n("toggle")),type:"button",class:"flex w-full items-center gap-2 text-left","aria-expanded":e.expanded},[a[4]||(a[4]=u("span",{class:"flex-1 text-sm font-medium text-neutral-900 dark:text-neutral-100"},"Developer tools",-1)),j(h(Tl),{size:16,class:J(["shrink-0 text-neutral-400 transition-transform duration-150",{"-rotate-180":e.expanded}])},null,8,["class"])],8,IO),j(yc,{"enter-active-class":"transition-opacity duration-150","enter-from-class":"opacity-0","leave-active-class":"transition-opacity duration-100","leave-to-class":"opacity-0"},{default:be(()=>[e.expanded?(l(),c("div",SO,[u("div",CO,[u("div",TO,[e.showSideSelector?(l(),c("select",{key:0,value:e.selectedSide,class:"h-8 rounded-md border border-neutral-200 bg-white px-2 text-xs text-neutral-700 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-300",onChange:a[1]||(a[1]=o=>n("updateSelectedSide",o.target.value))},[...a[5]||(a[5]=[u("option",{value:"a"},"Side A",-1),u("option",{value:"b"},"Side B",-1)])],40,MO)):M("",!0),u("button",{onClick:a[2]||(a[2]=o=>n("continueExecution")),disabled:e.isContinuing,type:"button",class:"inline-flex h-8 items-center gap-1.5 rounded-md border border-neutral-200 px-3 text-xs font-medium text-neutral-800 transition-colors hover:bg-neutral-50 disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-200 dark:hover:bg-neutral-800"},[j(h(ho),{size:14}),u("span",null,w(e.isContinuing?"Running…":"Continue"),1)],8,AO)]),a[6]||(a[6]=u("p",{class:"text-xs text-neutral-500 dark:text-neutral-400"},"The run will resume without a new message.",-1))]),u("button",{onClick:a[3]||(a[3]=o=>n("deleteThread")),disabled:e.isDeleting,type:"button",class:"inline-flex items-center gap-1.5 text-xs font-medium text-red-600 transition-colors hover:text-red-700 disabled:opacity-50 dark:text-red-400 dark:hover:text-red-300"},[j(h(mo),{size:14}),u("span",null,w(e.isDeleting?"Deleting…":"Delete thread"),1)],8,LO)])):M("",!0)]),_:1})]))}}),EO=ot(RO,[["__scopeId","data-v-188fdd71"]]),PO=new Set(["healthy","observing","recovered","parked","idle","unreachable"]);function NO(e){if(!e||typeof e!="object")return{available:!1,armed:!1,checkins:[]};const t=e,n=Array.isArray(t.history)?t.history:[],r=[];for(const a of n){if(!a||typeof a!="object")continue;const o=a,s=typeof o.at=="number"&&Number.isFinite(o.at)?o.at:null,i=typeof o.verdict=="string"&&PO.has(o.verdict)?o.verdict:null;s===null||i===null||r.push({at:s,verdict:i,action:typeof o.action=="string"?o.action:"",executing:typeof o.executing=="boolean"?o.executing:null,incompleteLogs:typeof o.incompleteLogs=="number"?o.incompleteLogs:null,silenceMs:typeof o.silenceMs=="number"?o.silenceMs:null,probeMs:typeof o.probeMs=="number"?o.probeMs:0,error:typeof o.error=="string"?o.error:void 0})}return{available:!0,armed:t.armed===!0,checkins:r}}function OO(e){switch(e){case"healthy":return"Healthy";case"observing":return"Observing";case"recovered":return"Recovered";case"parked":return"Parked";case"idle":return"Stood down";case"unreachable":return"Unreachable"}}function DO(e){switch(e){case"recovered":return"text-green-700 dark:text-green-400";case"healthy":return"text-neutral-700 dark:text-neutral-300";case"observing":return"text-amber-700 dark:text-amber-400";case"parked":case"unreachable":return"text-red-600 dark:text-red-400";case"idle":return"text-neutral-500 dark:text-neutral-400"}}function BO(e){const t=new Date(e);if(Number.isNaN(t.getTime()))return"—";const n=r=>String(r).padStart(2,"0");return`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}const FO={class:"space-y-3"},jO={class:"flex items-center gap-2"},qO={key:0,class:"inline-flex items-center gap-1.5 text-xs text-neutral-500 dark:text-neutral-400"},zO={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},VO={key:1,class:"text-xs text-neutral-500 dark:text-neutral-400"},HO={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},UO={key:1,class:"space-y-1"},KO=["title"],WO={class:"shrink-0 font-mono tabular-nums text-neutral-500 dark:text-neutral-400"},GO={class:"min-w-0 truncate text-neutral-600 dark:text-neutral-300"},JO={class:"space-y-1.5"},XO=["disabled"],YO={key:2,class:"text-xs text-red-600 dark:text-red-400"},ZO=5,QO=we({__name:"ThreadWatchdogCard",props:{watchdog:{},isChecking:{type:Boolean},checkError:{}},emits:["runCheck"],setup(e,{emit:t}){const n=t;return(r,a)=>(l(),c("section",FO,[u("div",jO,[a[1]||(a[1]=u("h3",{class:"flex-1 text-sm font-medium text-neutral-900 dark:text-neutral-100"},"Watchdog",-1)),e.watchdog?.available?(l(),c("span",qO,[e.watchdog.armed?(l(),K(Nr,{key:0})):M("",!0),Ce(" "+w(e.watchdog.armed?"Armed":"Standing by"),1)])):M("",!0)]),e.watchdog?e.watchdog.available?(l(),c(te,{key:2},[e.watchdog.checkins.length===0?(l(),c("p",HO," No check-ins yet. The watchdog arms when the thread runs. ")):(l(),c("ul",UO,[(l(!0),c(te,null,Ie(e.watchdog.checkins.slice(0,ZO),o=>(l(),c("li",{key:o.at,class:"flex items-baseline gap-3 text-xs",title:o.error},[u("span",WO,w(h(BO)(o.at)),1),u("span",{class:J(["shrink-0 font-medium",h(DO)(o.verdict)])},w(h(OO)(o.verdict)),3),u("span",GO,w(o.action),1)],8,KO))),128))])),u("div",JO,[u("button",{onClick:a[0]||(a[0]=o=>n("runCheck")),disabled:e.isChecking,type:"button",class:"inline-flex h-8 items-center gap-1.5 rounded-md border border-neutral-200 px-3 text-xs font-medium text-neutral-800 transition-colors hover:bg-neutral-50 disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-200 dark:hover:bg-neutral-800"},[j(h(zo),{size:14,class:J({"animate-spin":e.isChecking})},null,8,["class"]),u("span",null,w(e.isChecking?"Checking…":"Run check now"),1)],8,XO),a[2]||(a[2]=u("p",{class:"text-xs text-neutral-500 dark:text-neutral-400"}," Lost requests will finish and a stuck thread will resume. A healthy thread stays unchanged. ",-1))]),e.checkError?(l(),c("p",YO,w(h(Ve)(e.checkError)),1)):M("",!0)],64)):(l(),c("p",VO," Not available on this deployment (requires builder 0.26+). ")):(l(),c("p",zO," Loading watchdog state… "))]))}}),e9={key:0,class:"thread-settings-pane h-full overflow-y-auto"},t9={class:"thread-settings-layout grid grid-cols-1 gap-x-10 gap-y-8 p-4"},n9={key:0,class:"flex justify-center py-6"},r9={key:1,class:"py-4 text-center text-xs text-red-600 dark:text-red-400"},a9={class:"thread-settings-variables space-y-3"},o9={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},s9={key:1,class:"space-y-2"},l9={class:"thread-settings-variable-name flex min-w-0 items-baseline gap-2"},i9=["title"],u9={key:0,class:"shrink-0 text-xs text-neutral-500 dark:text-neutral-400"},d9=["disabled","onClick","title"],c9=["disabled","onClick"],f9={key:1,class:"h-7 w-7"},p9={class:"mt-2 space-y-2"},h9=["disabled","onClick","title"],m9=["disabled","onClick"],g9={class:"flex items-center justify-between gap-2 pt-1"},v9=["disabled"],y9=["disabled"],b9={key:1},x9={key:0,class:"text-xs text-red-600 dark:text-red-400"},kd="**********",k9=we({__name:"MetadataSlidePane",props:{threadId:{},show:{type:Boolean}},emits:["close","threadDeleted","threadUpdated"],setup(e,{emit:t}){const n=e,r=t,{thread:a,isFetching:o,error:s,refetch:i}=Oo(x(()=>n.threadId)),{agents:d,isFetching:p}=Qc(),f=R(!1),m=R(!1),g=R(!1),v=R(!1),_=R(!0),b=R(!1),C=R("a"),y=R(!1),A=R(!1);let L=null,k=0;const S=()=>({id:`new-env-${k++}`,name:"",value:"",secret:!0}),T=R([]),B=R({}),q=R({}),H=R({}),N=R({}),P=R({}),U=R([S()]),V=R(null),Y=R(null),$=R(null),D=R(""),W=R([]),E=R(!1),X=(Se,ge)=>{El(ge?{error:Se,fieldErrors:ge}:{error:Se},$)||(Y.value=Se)},re=x(()=>d.value?d.value.filter(Se=>js(Se)).map(Se=>({value:Se.id,label:Se.title})):[]),ne=x(()=>a.value?js(a.value.agent):!1),de=x(()=>a.value?Nh(a.value.agent):!1),ue=x(()=>T.value.filter(Se=>!P.value[Se.property])),ae=async()=>{a.value&&(await navigator.clipboard.writeText(a.value.id),y.value=!0,L&&clearTimeout(L),L=setTimeout(()=>{y.value=!1,L=null},2e3))};Hr(()=>{L&&clearTimeout(L)});const xe=async Se=>{if(!(!n.threadId||!Se||Se===a.value?.agent.id)){g.value=!0;try{await Be.request(He(`/api/threads/${n.threadId}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent_id:Se})}),await i(),r("threadUpdated")}catch{D.value=a.value?.agent.id||""}finally{g.value=!1}}},Re=async Se=>{if(n.threadId){W.value=Se,E.value=!0,v.value=!0;try{await Be.request(He(`/api/threads/${n.threadId}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tags:Se})}),r("threadUpdated")}catch{W.value=a.value?.tags||[]}finally{v.value=!1,E.value=!1}}},Me=()=>{_.value=!0},Ee=Se=>Se.defined?(Se.defined.type==="agent"||Se.defined.type==="prompt")&&Se.defined.name?`${Se.defined.type}:${Se.defined.name}`:Se.defined.type==="account"?"user":Se.defined.type:"missing",ke=Se=>/^[A-Za-z_][A-Za-z0-9_]*$/.test(Se.trim()),ie=(Se={})=>({outer:"$remove:mb-4 $remove:mb-3.5 !mb-0 min-w-0",wrapper:"$reset flex min-w-0",inner:"$reset w-full min-w-0",input:["$reset block h-8 w-full min-w-0 rounded-md border border-neutral-200 bg-white px-2 py-1.5 text-xs text-neutral-800 placeholder:text-neutral-400 disabled:opacity-60 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-200",Se.mono?"font-mono":""].filter(Boolean).join(" "),help:"$remove:hidden hidden",messages:"$remove:formkit-messages hidden"}),se=Se=>{const ge={},$e={};for(const _e of Se)ge[_e.property]=_e.type==="secret"&&_e.defined?kd:_e.value??"",$e[_e.property]=_e.type==="secret";B.value=ge,q.value=$e,H.value={},N.value={},P.value={}},me=Se=>{q.value={...q.value,[Se]:!q.value[Se]},N.value={...N.value,[Se]:!0}},pe=Se=>{H.value={...H.value,[Se]:!0}},Fe=Se=>{P.value={...P.value,[Se]:!0},Y.value=null,Bt($)},fe=()=>{U.value=[...U.value,S()]},Te=Se=>{const ge=U.value.filter($e=>$e.id!==Se);U.value=ge.length>0?ge:[S()]},Z=async()=>{if(!n.threadId||!a.value?.agent?.id){T.value=[],se([]);return}A.value=!0;try{const Se=await Be.request(He(`/api/variables/agents/${encodeURIComponent(a.value.agent.id)}?thread_id=${encodeURIComponent(n.threadId)}`)),ge=await Be.readJson(Se);T.value=ge.variables||[],se(T.value)}catch{T.value=[],se([])}finally{A.value=!1}},ee=async(Se,ge=[],$e={})=>{n.threadId&&(Y.value=null,await Be.request(He(`/api/threads/${n.threadId}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({env_patch:Se,env_type_patch:$e,env_delete:ge})}),await i(),await Z(),r("threadUpdated"))},oe=async()=>{if(V.value)return;const Se={},ge={},$e=Object.keys(P.value).filter(De=>P.value[De]);for(const De of ue.value){if(!H.value[De.property]&&!N.value[De.property])continue;if(!ke(De.property)){X(`Invalid env name: ${De.property}`,{[`env_${De.property}`]:`Invalid env name: ${De.property}`});return}const Xe=B.value[De.property]??"";Xe!==kd&&(Se[De.property]=Xe),(N.value[De.property]||H.value[De.property])&&(ge[De.property]=q.value[De.property]?"secret":"text")}const _e=new Set;for(const De of U.value){const Xe=De.name.trim(),rt=De.value.length>0;if(!(!Xe&&!rt)){if(!Xe||!ke(Xe)){X("Use a valid env name like WEATHER_API_KEY",{[`${De.id}_name`]:"Use a valid env name like WEATHER_API_KEY"});return}if(_e.has(Xe)){X(`Duplicate env name: ${Xe}`,{[`${De.id}_name`]:`Duplicate env name: ${Xe}`});return}_e.add(Xe),Se[Xe]=De.value,ge[Xe]=De.secret?"secret":"text"}}if(Object.keys(Se).length===0&&Object.keys(ge).length===0&&$e.length===0){X("No env changes to save");return}V.value="__all__";try{await ee(Se,$e,ge),U.value=[S()]}catch(De){X(Ve(De))}finally{V.value=null}},Oe=R(null),F=R(!1),ce=R(null),he=async()=>{if(n.threadId)try{const Se=await Be.request(He(`/api/threads/${n.threadId}/diagnostics`)),ge=await Be.readJson(Se);Oe.value=NO(ge?.watchdog??null)}catch{Oe.value={available:!1,armed:!1,checkins:[]}}},Pe=async()=>{if(!(!n.threadId||F.value)){F.value=!0,ce.value=null;try{await Be.request(He(`/api/threads/${n.threadId}/revive`),{method:"POST"})}catch(Se){ce.value=Ve(Se)}finally{F.value=!1,await he()}}},We=async()=>{if(n.threadId){b.value=!0;try{await Be.request(He(`/api/threads/${n.threadId}/continue`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({side:C.value})})}catch{C.value="a"}finally{b.value=!1}}},Ue=async()=>{if(n.threadId){m.value=!0;try{await Be.request(He(`/api/threads/${n.threadId}`),{method:"DELETE"}),r("threadDeleted",n.threadId)}catch{f.value=!1}finally{m.value=!1}}};return ve(()=>a.value,Se=>{Se&&(D.value=Se.agent.id,E.value||(W.value=Se.tags||[]))},{immediate:!0}),ve(()=>n.show,Se=>{Se?(Z(),he(),Me()):(_.value=!1,T.value=[],B.value={},q.value={},H.value={},N.value={},P.value={},U.value=[S()],Y.value=null,Bt($),A.value=!1,Oe.value=null,ce.value=null)},{immediate:!0}),ve(()=>n.threadId,()=>{_.value=!1,T.value=[],B.value={},q.value={},H.value={},N.value={},P.value={},U.value=[S()],Y.value=null,Bt($),Oe.value=null,ce.value=null,n.show&&(Z(),he(),Me())}),ve(()=>a.value?.agent?.id,()=>{n.show&&(Z(),Me())}),(Se,ge)=>{const $e=It("FormKit");return e.show&&e.threadId?(l(),c("div",e9,[u("div",t9,[h(o)?(l(),c("div",n9,[j(et)])):h(s)?(l(),c("div",r9,w(h(Ve)(h(s))),1)):h(a)?(l(),c(te,{key:2},[j(_O,{thread:h(a),"copied-id":y.value,"can-change-agent":ne.value,"local-agent-id":D.value,"agent-options":re.value,"is-fetching-agents":h(p),"is-saving-agent":g.value,"local-tags":W.value,"is-saving-tags":v.value,onCopyId:ae,onAgentChange:xe,onTagsChange:Re},null,8,["thread","copied-id","can-change-agent","local-agent-id","agent-options","is-fetching-agents","is-saving-agent","local-tags","is-saving-tags"]),u("section",a9,[ge[5]||(ge[5]=u("h3",{class:"text-sm font-medium text-neutral-900 dark:text-neutral-100"},"Variables",-1)),j($e,{type:"form",id:"thread-variable-form",actions:!1,disabled:V.value!==null,onSubmit:oe,onNode:ge[0]||(ge[0]=_e=>$.value=_e),"form-class":"$reset"},{default:be(()=>[j(h(Sa),{node:$.value||void 0},null,8,["node"]),A.value?(l(),c("div",o9," Loading variables… ")):M("",!0),!A.value&&ue.value.length>0?(l(),c("div",s9,[(l(!0),c(te,null,Ie(ue.value,_e=>(l(),c("div",{key:_e.property,class:"thread-settings-variable-row grid grid-cols-[minmax(96px,1fr)_minmax(0,1.6fr)_auto_auto] items-center gap-2"},[u("div",l9,[u("span",{class:"truncate font-mono text-xs text-neutral-800 dark:text-neutral-200",title:`${_e.property} (${Ee(_e)})`},w(_e.property),9,i9),_e.required?(l(),c("span",u9," Required ")):M("",!0)]),j($e,{type:q.value[_e.property]?"password":"text",name:`env_${_e.property}`,modelValue:B.value[_e.property],"onUpdate:modelValue":De=>B.value[_e.property]=De,placeholder:"Value",disabled:V.value!==null,"outer-class":"$reset mb-0",classes:ie(),onInput:De=>pe(_e.property)},null,8,["type","name","modelValue","onUpdate:modelValue","disabled","classes","onInput"]),u("button",{type:"button",class:J(["inline-flex h-7 w-7 shrink-0 items-center justify-center rounded hover:bg-neutral-50 disabled:opacity-50 dark:hover:bg-neutral-800",q.value[_e.property]?"text-neutral-950 dark:text-neutral-50":"text-neutral-300 dark:text-neutral-600"]),disabled:V.value!==null,onClick:De=>me(_e.property),title:q.value[_e.property]?"Treat as secret":"Treat as text"},[q.value[_e.property]?(l(),K(h(Ri),{key:0,size:13})):(l(),K(h(Ei),{key:1,size:13}))],10,d9),_e.defined&&_e.defined.type==="thread"?(l(),c("button",{key:0,type:"button",class:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded text-neutral-300 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:text-neutral-600 dark:hover:bg-red-950 dark:hover:text-red-400",disabled:V.value!==null,onClick:De=>Fe(_e.property),title:"Remove variable"},[j(h(mo),{size:13})],8,c9)):(l(),c("div",f9))]))),128))])):M("",!0),u("div",p9,[(l(!0),c(te,null,Ie(U.value,_e=>(l(),c("div",{key:_e.id,class:"thread-settings-new-env-row grid grid-cols-[minmax(96px,1fr)_minmax(0,1.6fr)_auto_auto] items-center gap-2"},[j($e,{type:"text",name:`${_e.id}_name`,modelValue:_e.name,"onUpdate:modelValue":De=>_e.name=De,placeholder:"NAME",disabled:V.value!==null,validation:"envName","validation-visibility":"submit","outer-class":"$reset mb-0",classes:ie({mono:!0}),onKeydown:dn(Je(oe,["prevent"]),["enter"])},null,8,["name","modelValue","onUpdate:modelValue","disabled","classes","onKeydown"]),j($e,{type:_e.secret?"password":"text",name:`${_e.id}_value`,modelValue:_e.value,"onUpdate:modelValue":De=>_e.value=De,placeholder:"Value",disabled:V.value!==null,"outer-class":"$reset mb-0",classes:ie(),onKeydown:dn(Je(oe,["prevent"]),["enter"])},null,8,["type","name","modelValue","onUpdate:modelValue","disabled","classes","onKeydown"]),u("button",{type:"button",class:J(["inline-flex h-7 w-7 shrink-0 items-center justify-center rounded hover:bg-neutral-50 disabled:opacity-50 dark:hover:bg-neutral-800",_e.secret?"text-neutral-950 dark:text-neutral-50":"text-neutral-300 dark:text-neutral-600"]),disabled:V.value!==null,onClick:De=>_e.secret=!_e.secret,title:_e.secret?"Treat as secret":"Treat as text"},[_e.secret?(l(),K(h(Ri),{key:0,size:13})):(l(),K(h(Ei),{key:1,size:13}))],10,h9),u("button",{type:"button",class:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded text-neutral-300 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:text-neutral-600 dark:hover:bg-red-950 dark:hover:text-red-400",disabled:V.value!==null,onClick:De=>Te(_e.id),title:"Remove row"},[j(h(mo),{size:13})],8,m9)]))),128)),u("div",g9,[u("button",{type:"button",class:"text-xs font-medium text-neutral-500 transition-colors hover:text-neutral-800 disabled:opacity-50 dark:text-neutral-400 dark:hover:text-neutral-200",disabled:V.value!==null,onClick:fe}," Add variable ",8,v9),u("button",{type:"submit",form:"thread-variable-form",class:"inline-flex h-8 items-center justify-center rounded-md border border-neutral-200 px-3 text-xs font-medium text-neutral-800 transition-colors hover:bg-neutral-50 disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-200 dark:hover:bg-neutral-800",disabled:V.value!==null},[V.value==="__all__"?(l(),K(et,{key:0,size:"xs"})):(l(),c("span",b9,"Save variables"))],8,y9)]),Y.value?(l(),c("p",x9,w(h(Ve)(Y.value)),1)):M("",!0)])]),_:1},8,["disabled"])]),j(QO,{watchdog:Oe.value,"is-checking":F.value,"check-error":ce.value,onRunCheck:Pe},null,8,["watchdog","is-checking","check-error"]),j(EO,{expanded:_.value,"show-side-selector":de.value,"selected-side":C.value,"is-continuing":b.value,"is-deleting":m.value,onToggle:ge[1]||(ge[1]=_e=>_.value=!_.value),onUpdateSelectedSide:ge[2]||(ge[2]=_e=>C.value=_e),onContinueExecution:We,onDeleteThread:ge[3]||(ge[3]=_e=>f.value=!0)},null,8,["expanded","show-side-selector","selected-side","is-continuing","is-deleting"])],64)):M("",!0)]),j(Vm,{modelValue:f.value,"onUpdate:modelValue":ge[4]||(ge[4]=_e=>f.value=_e),title:"Delete this thread?",message:"Its messages, logs and other data will be deleted permanently. You cannot undo this.","confirm-text":"Delete","cancel-text":"Cancel",onConfirm:Ue},null,8,["modelValue"])])):M("",!0)}}}),w9=ot(k9,[["__scopeId","data-v-9ba43a04"]]),_9=["y2"],$9=["d"],I9=["transform"],S9=["width","height"],C9=["x","y"],gr=3.5,T9=we({__name:"TraceFlagShape",props:{kind:{}},setup(e){const t=[0,1,2,3].flatMap(n=>[0,1].map(r=>({column:n,row:r}))).filter(({column:n,row:r})=>(n+r)%2===0);return(n,r)=>(l(),c("g",null,[u("line",{class:"trace-flag-pole",x1:"0",y1:"0",x2:"0",y2:-18},null,8,_9),e.kind==="start"?(l(),c("path",{key:0,class:"trace-flag-start",d:`M 0 -18 L -13 -17 L -11 ${-18+4.5} L -13 -10 L 0 -11 Z`},null,8,$9)):(l(),c("g",{key:1,transform:"translate(0.75 -18)"},[u("rect",{class:"trace-flag-cloth",x:"0",y:"0",width:gr*4,height:gr*2},null,8,S9),(l(!0),c(te,null,Ie(h(t),a=>(l(),c("rect",{key:`${a.column}:${a.row}`,class:"trace-flag-check",x:a.column*gr,y:a.row*gr,width:gr,height:gr},null,8,C9))),128))],8,I9))]))}}),li=ot(T9,[["__scopeId","data-v-ef4c591c"]]),M9={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function A9(e,t){return l(),c("svg",M9,[...t[0]||(t[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M15 12h-5m5-4h-5m9 9V5a2 2 0 0 0-2-2H4"}),u("path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3"})],-1)])])}const L9=Ye({name:"lucide-scroll-text",render:A9}),R9=new Set(["function","subprompt","subagent","handoff","provider-tool"]);function E9(e,t){switch(e){case"request":return"prompt";case"hook":return"hook";case"provider-tool":return"provider-tool";case"handler":return"handler";case"tool":case"invoke":return t&&R9.has(t)?t:"function";case"reply":return t==="person"?"person":"prompt"}}function Jp(e,t){return e==="runtime"?oo:e==="app"?L9:xf[E9(e,t)]??oo}const Mt=.5;function Vn(e){return`${Math.round(e.x*2)/2},${Math.round(e.y*2)/2}`}const il=(e,t)=>Math.abs(e.x-t.x)+Math.abs(e.y-t.y);function zr(e,t,n){return e>=Math.min(t,n)-Mt&&e<=Math.max(t,n)+Mt}function P9(e,t,n){return Math.abs(t.x-n.x)<Mt?Math.abs(e.x-t.x)<Mt&&zr(e.y,t.y,n.y):Math.abs(t.y-n.y)<Mt?Math.abs(e.y-t.y)<Mt&&zr(e.x,t.x,n.x):!1}function ul(e,t){const n=t.x+t.width,r=t.y+t.height;if(zr(e.x,t.x,n)){if(Math.abs(e.y-t.y)<Mt)return"top";if(Math.abs(e.y-r)<Mt)return"bottom"}if(zr(e.y,t.y,r)){if(Math.abs(e.x-t.x)<Mt)return"left";if(Math.abs(e.x-n)<Mt)return"right"}return null}function Cs(e,t){return e.x>t.x+Mt&&e.x<t.x+t.width-Mt&&e.y>t.y+Mt&&e.y<t.y+t.height-Mt}function Ro(e,t){return e.x>=t.x&&e.y>=t.y&&e.x+e.width<=t.x+t.width&&e.y+e.height<=t.y+t.height&&(e.width<t.width||e.height<t.height)}function Eo(e,t){const{x:n,y:r,width:a,height:o}=t;switch(ul(e,t)){case"top":return e.x-n;case"right":return a+(e.y-r);case"bottom":return a+o+(n+a-e.x);default:return 2*a+o+(r+o-e.y)}}function N9(e,t,n){const{x:r,y:a,width:o,height:s}=e,i=[{at:o,point:{x:r+o,y:a}},{at:o+s,point:{x:r+o,y:a+s}},{at:2*o+s,point:{x:r,y:a+s}},{at:2*(o+s),point:{x:r,y:a}}],d=2*(o+s),p=Eo(t,e);let f=Eo(n,e);f<=p&&(f+=d);const m=[t];for(const g of[0,d])for(const v of i){const _=v.at+g;_>p&&_<f&&m.push(v.point)}return m.push(n),m}function O9(e){let t=0;for(let n=1;n<e.length;n++)t+=il(e[n-1],e[n]);return t}function D9(e,t,n){const r=n.x+n.width,a=n.y+n.height;return Math.abs(e.x-t.x)<Mt?e.x<=n.x||e.x>=r?[]:[n.y,a].filter(o=>zr(o,e.y,t.y)).map(o=>({x:e.x,y:o})):Math.abs(e.y-t.y)<Mt?e.y<=n.y||e.y>=a?[]:[n.x,r].filter(o=>zr(o,e.x,t.x)).map(o=>({x:o,y:e.y})):[]}const wd=new WeakMap;function Zo(e){const t=wd.get(e);if(t)return t;const n={nodes:new Map,edges:new Map,components:new Map(e.components.map(i=>[i.id,i])),ports:new Map,framePorts:new Map,frames:e.frames},r=i=>{const d=Vn(i);return n.nodes.has(d)||n.nodes.set(d,i),d},a=(i,d,p,f=!1)=>{const m=r(i[0]),g=r(i[i.length-1]);if(m===g)return;const v=O9(i);n.edges.set(m,[...n.edges.get(m)??[],{to:g,length:v,points:i,wireId:d,tap:p}]),!f&&n.edges.set(g,[...n.edges.get(g)??[],{to:m,length:v,points:[...i].reverse(),wireId:d,tap:p}])},o=[...e.wires.flatMap(i=>i.points),...e.junctions];for(const i of e.wires)for(let d=1;d<i.points.length;d++){const p=i.points[d-1],f=i.points[d],m=[p,f,...o.filter(g=>P9(g,p,f)),...e.frames.flatMap(g=>D9(p,f,g))].sort((g,v)=>il(p,g)-il(p,v));for(let g=1;g<m.length;g++)Vn(m[g-1])!==Vn(m[g])&&a([m[g-1],m[g]],i.id,i.style==="tap",i.style==="return")}const s=[...n.nodes];for(const i of e.components)n.ports.set(i.id,s.filter(([,d])=>ul(d,i)).map(([d])=>d));for(const i of e.frames)n.framePorts.set(i.id,s.filter(([,d])=>ul(d,i)).map(([d])=>d));for(const i of e.components){const d=[...new Set(n.ports.get(i.id)??[])].map(p=>({key:p,point:n.nodes.get(p)})).filter(p=>!!p.point).sort((p,f)=>Eo(p.point,i)-Eo(f.point,i));d.length<2||d.forEach((p,f)=>{const m=d[(f+1)%d.length];a(N9(i,p.point,m.point),null,!1)})}return wd.set(e,n),n}function dl(e,t,n,r={}){const a=new Map,o=new Map,s=[];for(const i of t)e.nodes.has(i)&&(a.set(i,0),s.push({key:i,cost:0}));for(;s.length>0;){let i=0;for(let f=1;f<s.length;f++)s[f].cost<s[i].cost&&(i=f);const{key:d,cost:p}=s.splice(i,1)[0];if(!(p>(a.get(d)??1/0))){if(n(d))return B9(e,d,o,p);for(const f of e.edges.get(d)??[]){if(r.tapOnly&&!f.tap||r.blocked?.(f.to))continue;const m=p+f.length;m>=(a.get(f.to)??1/0)||(a.set(f.to,m),o.set(f.to,{from:d,edge:f}),s.push({key:f.to,cost:m}))}}}return null}function B9(e,t,n,r){const a=[t],o=[];for(let p=n.get(t);p;p=n.get(p.from))a.unshift(p.from),o.unshift(p.edge);const s=e.nodes.get(a[0]),i=s?[s]:[];for(const p of o)i.push(...p.points.slice(1));const d=[...new Set(o.flatMap(p=>p.wireId?[p.wireId]:[]))];return{keys:a,points:i,wireIds:d,length:r}}function ii(e,t){return e.frames.filter(n=>n.kind!=="agent"&&!t.scopeIds.includes(n.ownerId))}function ui(e,t){let n=null;for(const r of t)Ro(e,r)&&(!n||r.width*r.height>n.width*n.height)&&(n=r);return n}function F9(e,t){const n=e.ports.get(t.id)??[];return n.length>0||!t.containerId?n:e.ports.get(t.containerId)??[]}const _d=new WeakMap;function cl(e,t){let n=_d.get(e);if(n||(n=new Map,_d.set(e,n)),n.has(t))return n.get(t)??null;const r=new Set(e.ports.get(t)??[]),a=new Set([...e.ports].flatMap(([i,d])=>e.components.get(i)?.kind==="hook"?d:[])),o=i=>(e.edges.get(i)??[]).filter(d=>d.tap).length,s=dl(e,[...r],i=>!r.has(i)&&!a.has(i)&&o(i)===1,{tapOnly:!0});return n.set(t,s),s}const Qo=new Set(["side","person","handler"]),$d=(e,t)=>e.x>=t.x&&e.x<=t.x+t.width&&e.y>=t.y&&e.y<=t.y+t.height;function j9(e,t,n){const r=new Set(n),a=s=>t.some(i=>Ro(s,i)),o=s=>t.some(i=>$d(s,i));for(const s of e.components)a(s)&&r.add(s.id);for(const s of e.frames)a(s)&&r.add(s.id);for(const s of e.pills)a(s)&&r.add(s.id);for(const s of e.texts)o(s)&&r.add(s.id);for(const s of e.wires)t.some(i=>s.points.every(d=>$d(d,i)))&&r.add(s.id);return e.junctions.forEach((s,i)=>{o(s)&&r.add(Cf(i))}),r}function Xp(e,t){if(t.kind==="trigger")return[];const{components:n}=Zo(e);return t.containerIds.filter(r=>Qo.has(n.get(r)?.kind??""))}function q9(e,t,n=new Set){const r=new Map,a=new Map,o=new Map;if(!e||!t)return{components:r,wires:a,frames:o,pills:new Map,focus:new Set};const s=Zo(t),i=ii(s,e),d=y=>{const A=s.components.get(y);return A?ui(A,i):null},p=new Set(e.calledIds),f=e.route.filter(y=>s.components.has(y)),m=y=>{if(s.components.get(y)?.kind==="hook")return y;const A=s.components.get(y)?.containerId,L=A?s.components.get(A)?.kind:void 0;return A&&L&&Qo.has(L)?A:y};for(const y of f){const A=d(y),L=m(y);A?o.set(A.id,"current"):r.get(L)!=="current"&&r.set(L,p.has(y)?"called":"current")}const g=e.actions.find(y=>y.kind==="request"&&y.depth===0),v=g?.status==="failed"?"failed":e.retry?"retried":"current",_=g?.componentId?m(g.componentId):null;v!=="current"&&_&&r.has(_)&&r.set(_,v);for(const y of e.actions){if(y.status!=="failed"||!y.componentId||!s.components.has(y.componentId))continue;const A=d(y.componentId);A?o.set(A.id,"failed"):r.set(m(y.componentId),"failed")}if(e.retry&&e.kind==="trigger")for(const y of r.keys())r.set(y,"retried");for(const y of e.hookMarks)if(!(!n.has(y.id)||!s.components.has(y.id))){r.has(y.id)||r.set(y.id,y.mark);for(const A of cl(s,y.id)?.wireIds??[])a.set(A,y.mark)}const b=[...[...r.keys()].flatMap(y=>s.components.get(y)??[]),...t.frames.filter(y=>o.has(y.id))],C=j9(t,b,[...r.keys(),...o.keys()]);for(const y of z9(t,e,b))C.add(y);return{components:r,wires:a,frames:o,pills:new Map,focus:C}}function z9(e,t,n){const r=new Set(e.components.map(a=>a.id));return[...t.containerIds.filter(a=>r.has(a)),...e.components.filter(a=>n.some(o=>Ro(o,a))).map(a=>a.id),...e.frames.filter(a=>n.some(o=>Ro(o,a))).map(a=>a.id)]}function Yp(e,t){return Math.abs(e.at-t.at)<.01?0:e.at-t.at}const Gt=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),V9=(e,t)=>Gt(e,t)<.5;function H9(e,t){const n=t.containerId?e.components.get(t.containerId):void 0;return n&&Qo.has(n.kind)?n:null}const Id=new WeakMap;function U9(e,t){const n=Id.get(e);if(n)return n;const r=new Map,a=new Map(e.wires.flatMap(o=>o.style==="model"?[[o.from,o.to]]:[]));for(const o of e.components){if(o.kind!=="subprompt")continue;const s=[o];for(let i=a.get(o.id);i!==void 0&&s.length<=e.components.length;i=a.get(i)){const d=t.components.get(i);if(!d||s.includes(d))break;s.push(d)}if(s.length>1)for(const i of s)r.set(i.id,s)}return Id.set(e,r),r}function Sd(e,t,n){const r=t.x-e.x,a=t.y-e.y;let o=0,s=1;const i=[[-r,e.x-(n.x-.5)],[r,n.x+n.width+.5-e.x],[-a,e.y-(n.y-.5)],[a,n.y+n.height+.5-e.y]];for(const[d,p]of i){if(d===0){if(p<0)return null;continue}const f=p/d;if(d<0){if(f>s)return null;o=Math.max(o,f)}else{if(f<o)return null;s=Math.min(s,f)}}return o*Math.hypot(r,a)}function K9(e,t){let n=0;for(const r of e){if(r.length===1&&Sd(r[0],r[0],t)!==null)return n;for(let a=1;a<r.length;a++){const o=Sd(r[a-1],r[a],t);if(o!==null)return n+o;n+=Gt(r[a-1],r[a])}}return null}function W9(e,t,n){const r=[],a=[],o=[];if(!e||!n)return{segments:r,cues:a,breaks:o};const s=Zo(e),i=ii(s,n),d=e.components.filter($=>Qo.has($.kind)),p=e.hops;let f=0;const m=U9(e,s),g=$=>ui($,i)??H9(s,$),v=$=>{const D=m.get($.id);return D&&D[0]!==$?D:null},_=$=>g($)??v($)?.[0]??null,b=$=>{const D=g($);if(D)return s.framePorts.get(D.id)??s.ports.get(D.id)??[];const W=v($);return W?W.flatMap(E=>s.ports.get(E.id)??[]):F9(s,$)},C=$=>{const D=g($);return D?[D]:v($)??[$]};let y=[];const A=t?.componentId?s.components.get(t.componentId):void 0,L=t?.point?d.some($=>Cs(t.point,$)):!1;t?.point&&s.nodes.has(Vn(t.point))&&!L?y=[Vn(t.point)]:A&&(y=b(A));let k=t?.componentId??null,S=y.length>0;const T=$=>{r.length===0&&r.push([]);const D=r[r.length-1];for(const W of $){const E=D[D.length-1];if(E&&V9(E,W))continue;const X=E?Gs([E,W],p).slice(1):[W];for(const re of X){const ne=D[D.length-1];ne&&(f+=Gt(ne,re)),D.push(re)}}},B=$=>{$.kind==="component"?a.push({at:f,hookId:null,ordinal:$.ordinal,step:null,componentId:$.id}):($.kind==="hook"||$.ordinal!==null)&&a.push({at:f,hookId:$.kind==="hook"?$.id:null,ordinal:$.ordinal,step:null})},q=$=>{const D=[...i,...d],W=D.filter(E=>$.some(X=>{const re=s.nodes.get(X);return re?Cs(re,E):!1}));return E=>{const X=s.nodes.get(E);return!!(X&&D.some(re=>!W.includes(re)&&Cs(X,re)))}},H=($,D)=>{o.push({from:k,to:$.id,reason:D}),$.ordinal!==null&&a.push({at:f,hookId:$.kind==="hook"?$.id:null,ordinal:$.ordinal,step:null})},N=($,D,W)=>{o.push({from:k,to:$.id,reason:D});const E=r.length===0?s.nodes.get(y[0]??""):void 0;E&&T([E]),r.push(W?[W]:[])};let P=null;const U=new Set;for(const[$,D]of n.stops.entries()){if(U.has($))continue;let W,E;if(D.kind==="wire"){const de=e.wires.find(me=>me.id===D.id),ue=de?Gs(D.reverse?[...de.points].reverse():de.points,p):[];if(!de||ue.length===0){H(D,"undrawn-wire");continue}const ae=y.length===1?s.nodes.get(y[0]):void 0,xe=ae?Ts(ue,ae):null,Re=xe!==null&&xe>.5&&xe<nr([ue])-.5?xe:null,Me=ae&&Re!==null?[ae,...ue.filter(me=>(Ts(ue,me)??0)>Re)]:ue,Ee=Vn(Me[0]),ke=y.length>0&&!y.includes(Ee)?dl(s,y,me=>me===Ee,{blocked:q(y)}):null;ke?T(ke.points):S&&!y.includes(Ee)&&N(D,"no-route",null);const ie=Re??0,se=f-ie;T(Me),y=[Vn(ue[ue.length-1])],P=null,S=!0,k=D.id,a.push({at:f,hookId:null,ordinal:D.ordinal,step:null,wireId:D.id}),n.stops.forEach((me,pe)=>{if(pe<=$||me.kind!=="hook")return;const Fe=cl(s,me.id)?.keys??[],fe=s.nodes.get(Fe[Fe.length-1]??""),Te=fe?Ts(ue,fe):null;Te===null||Te<ie||(U.add(pe),a.push({at:se+Te,hookId:me.id,ordinal:me.ordinal,step:null}))});continue}const X=D.kind==="hook"?s.components.get(D.id):void 0,re=D.kind==="hook"?cl(s,D.id)?.keys??[]:[];if(D.kind==="hook"&&re.length>0){const de=re[re.length-1];W=[de],E=s.nodes.get(de)??null,P=null}else if(D.kind==="hook"&&!X){H(D,"undrawn-part");continue}else{const de=X??s.components.get(D.id);if(!de){H(D,"undrawn-part");continue}const ue=_(de);if(ue&&ue.id===P){k=D.id,B(D);continue}P=ue?.id??de.id,W=b(de),E=ue?{x:ue.x+ue.width/2,y:ue.y}:{x:de.x+de.width/2,y:de.y+de.height/2}}const ne=new Set(W);if(!S)y=W,y.length===0&&(o.push({from:k,to:D.id,reason:"no-port"}),E&&T([E]));else if(y.length===0||!y.every(de=>ne.has(de))){const de=W.length>0&&y.length>0?dl(s,y,ue=>ne.has(ue),{blocked:q(y)}):null;de?(T(de.points),y=[de.keys[de.keys.length-1]]):(N(D,W.length===0?"no-port":"no-route",W.length>0?s.nodes.get(W[0])??E:E),y=W.slice(0,1))}S=!0,k=D.id,B(D)}if(r.length===0&&y.length>0){const $=s.nodes.get(y[0]);$&&r.push([$])}const V=new Set(a.flatMap($=>$.componentId?[$.componentId]:[])),Y=[];for(const $ of[...n.route,...Xp(e,n)]){const D=s.components.get($);if(!D||V.has($))continue;V.add($);const W=C(D).flatMap(E=>K9(r,E)??[]);W.length>0&&Y.push({at:Math.min(...W),hookId:null,ordinal:null,step:null,componentId:$})}return{segments:r,cues:[...Y,...a].sort(Yp),breaks:o}}function Ts(e,t){let n=0;for(let r=1;r<e.length;r++){const a=e[r-1],o=e[r],s=Gt(a,o);if(Math.abs(Gt(a,t)+Gt(t,o)-s)<.5)return n+Gt(a,t);n+=s}return null}function nr(e){let t=0;for(const n of e)for(let r=1;r<n.length;r++)t+=Gt(n[r-1],n[r]);return t}function Ms(e,t){const n=e.filter(o=>o.length>0);if(n.length===0)return null;let r=Math.max(0,t);if(r===0)return n[0][0];for(const o of n)for(let s=1;s<o.length;s++){const i=o[s-1],d=o[s],p=Gt(i,d);if(r<=p){const f=p===0?1:r/p;return{x:i.x+(d.x-i.x)*f,y:i.y+(d.y-i.y)*f}}r-=p}const a=n[n.length-1];return a[a.length-1]}function G9(e,t){if(!e)return[];const n=e.wires.filter(s=>s.style==="subagent").map(s=>Gs(s.points,e.hops));if(n.length===0)return[];const r=(s,i)=>n.some(d=>d.some((p,f)=>{const m=d[f+1];return m!==void 0&&Tr(s,p,m)&&Tr(i,p,m)})),a=[];let o=0;for(const s of t)for(let i=1;i<s.length;i++){const d=Gt(s[i-1],s[i]);if(d>0&&r(s[i-1],s[i])){const p=a[a.length-1];p&&Math.abs(p[1]-o)<.01?p[1]=o+d:a.push([o,o+d])}o+=d}return a}function Cd(e,t,n){const r=[];if(n<=t)return r;let a=0;for(const o of e){const s=[];for(let i=1;i<o.length;i++){const d=o[i-1],p=o[i],f=Gt(d,p),m=a,g=a+f;if(a=g,g<=t||m>=n||f===0)continue;const v=C=>{const y=(C-m)/f;return{x:d.x+(p.x-d.x)*y,y:d.y+(p.y-d.y)*y}},_=m>=t?d:v(t),b=g<=n?p:v(n);s.length===0&&s.push(_),s.push(b)}if(s.length>1&&r.push(s),a>=n)break}return r}function J9(e,t){if(t.length===0)return e;const n=(r,a)=>{const o=new Map;for(const s of a)for(const[i,d]of s)o.get(i)!=="failed"&&o.set(i,d==="failed"||d==="retried"?d:"visited");for(const[s,i]of r)o.get(s)!=="failed"&&o.set(s,i);return o};return{components:n(e.components,t.map(r=>r.components)),wires:n(e.wires,t.map(r=>r.wires)),frames:n(e.frames,t.map(r=>r.frames)),pills:n(e.pills,t.map(r=>r.pills)),focus:new Set([...e.focus,...t.flatMap(r=>[...r.focus])])}}function X9(e,t,n){const r=n?.target;if(!r||!t)return e;const a=n.failed?"failed":"current";return r.kind==="pill"?t.pills.some(o=>o.id===r.id)?{...e,pills:new Map([...e.pills,[r.id,a]]),focus:new Set([...e.focus,r.id])}:e:t.components.some(o=>o.id===r.id)?{...e,components:new Map([...e.components,[r.id,a]]),focus:new Set([...e.focus,r.id])}:e}function di(e,t,n){const r=Zo(e),a=n.componentId?r.components.get(n.componentId):void 0,s=(n.kind==="request"?(n.entryComponentId?r.components.get(n.entryComponentId):void 0)??(a?.containerId?r.components.get(a.containerId):void 0):void 0)??a;return s?ui(s,ii(r,t))??s:null}const Po="✕",Y9=3;function Z9(e,t=null){const n=e.counts.filter(o=>!o.failed),r=e.counts.filter(o=>o.failed),a=[];if(n.length>0&&e.counts.length<=Y9)a.push({text:n.map(o=>o.count).join(" · "),failed:!1});else if(n.length>0){const o=n.find(s=>s.ordinal===t)??n[n.length-1];a.push({text:n.length>1?`${o.count} +${n.length-1}`:`${o.count}`,failed:!1})}return r.length>0&&a.push({text:r.length>1?`${Po} +${r.length-1}`:Po,failed:!0}),a}function Q9(e){const t=e.counts.map(n=>n.failed?`${Po} (failed)`:`${n.count}`);return`${e.counts.length===1?"Action":"Actions"} ${t.join(", ")}`}const eD=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y)<.5;function tD(e,t){const n=[],r=[],a=[],o=[];let s=0,i=null,d=null;for(const[p,f]of t.entries()){a.push(s);const m=nr(n);r.push({at:m,hookId:null,ordinal:null,step:p});const g=d?{point:i,componentId:d.route[d.route.length-1]??null}:null,v=W9(e,g,f);for(const[b,C]of v.segments.entries()){const y=n[n.length-1],A=y?.[y.length-1];b===0&&A&&C[0]&&eD(A,C[0])?y.push(...C.slice(1)):C.length>0&&(b===0&&A&&o.push({from:g?.componentId??null,to:f.stops[0]?.id??f.id,reason:"no-route"}),n.push([...C]))}o.push(...v.breaks);for(const b of v.cues)r.push({...b,at:m+b.at,ordinal:b.ordinal===null?null:b.ordinal+s});const _=n[n.length-1];i=_?.[_.length-1]??i,s+=f.actions.length,d=f}return r.sort(Yp),{segments:n,cues:r,actions:oD(t,a,r,nr(n)),offsets:a,breaks:o}}function nD(e,t){if(t.length===0)return null;const n=r=>r===null?"the start":e?.components.find(a=>a.id===r)?.fullLabel??r;return{text:`The diagram has no line for ${t.length} ${t.length===1?"stretch":"stretches"} of this path`,title:t.map(r=>`${n(r.from)} to ${n(r.to)}`).join(`
|
|
67
|
-
`)}}function rD(e,t){const n=new Map;for(const a of e.cues)a.step!==null&&!n.has(a.step)&&n.set(a.step,a.at);const r=nr(e.segments);return t.flatMap((a,o)=>{if(a.kind!=="trigger"||!a.run.trigger.silent)return[];const s=n.get(o)??0,i=n.get(o+1)??r;return i>s?[[s,i]]:[]})}function aD(e,t){const n=new Map,r=new Map;for(const o of e.cues)o.step!==null&&!n.has(o.step)&&n.set(o.step,o.at),o.ordinal!==null&&!r.has(o.ordinal)&&r.set(o.ordinal,o.at);const a=nr(e.segments);return Zp(t.flatMap((o,s)=>{if(!o.retry)return[];const i=n.get(s)??0,p=(o.actions[0]?r.get(e.offsets[s]+o.actions[0].ordinal):void 0)??n.get(s+1)??a;return p>i?[[i,p]]:[]}))}function Zp(e){const t=[];for(const[n,r]of[...e].sort((a,o)=>a[0]-o[0])){const a=t[t.length-1];a&&n<=a[1]+.01?a[1]=Math.max(a[1],r):t.push([n,r])}return t}function oD(e,t,n,r){const a=e.flatMap((m,g)=>m.actions.map(v=>({action:v,step:m,stepIndex:g,ordinal:t[g]+v.ordinal}))),o=new Map;for(const m of n)m.ordinal!==null&&!o.has(m.ordinal)&&o.set(m.ordinal,m.at);const s=a[0],i=a[a.length-1],d=s&&(o.get(s.ordinal)??Number.POSITIVE_INFINITY)<.5?s.ordinal:null,p=i&&i.ordinal!==d&&(o.get(i.ordinal)??Number.NEGATIVE_INFINITY)>r-.5?i.ordinal:null;let f=0;return a.map(m=>{let g;return m.action.status==="failed"?g="failed":m.ordinal===d?g="start":m.ordinal===p?g="finish":g=++f,{...m,mark:g}})}function sD(e,t){if(!e)return[];const n=new Map;for(const r of t){if(typeof r.mark!="number"&&r.mark!=="failed")continue;const a=di(e,r.step,r.action);if(!a)continue;const o={x:a.x,y:a.y,width:a.width,height:a.height},s=n.get(a.id)??{id:a.id,x:a.x+a.width,y:a.y,rect:o,counts:[]};s.counts.push({ordinal:r.ordinal,count:typeof r.mark=="number"?r.mark:null,failed:r.mark==="failed"}),n.set(a.id,s)}return[...n.values()]}function lD(e,t){return e?t.filter(n=>n.action.kind!=="app"&&!di(e,n.step,n.action)):[]}function iD(e,t,n){if(!e)return[];const r=new Set(e.components.map(o=>o.id)),a=new Set(t.cues.flatMap(o=>o.componentId?[o.componentId]:[]));return[...new Set(n.flatMap(o=>o.route))].filter(o=>r.has(o)&&!a.has(o))}function uD(e,t){if(t.length===0)return null;const n=r=>e?.components.find(a=>a.id===r)?.fullLabel??r;return{text:`The path does not reach ${t.length} ${t.length===1?"part":"parts"} of this entry`,title:t.map(n).join(`
|
|
68
|
-
`)}}const dD=new Set(["tool","provider-tool","invoke"]);function cD(e,t,n=null){if(n)return{verb:"called by",label:n,title:`Called by ${n}`};if(t){const r=[...new Set(t.actions.filter(o=>dD.has(o.kind)).map(o=>o.name))],a=r.length>0?`Tool results of ${r.join(", ")}`:t.label;return{verb:"after",label:a,title:a}}return e?{verb:"trigger",label:e.label,title:e.label}:null}const fD={class:"relative col-span-2 grid grid-cols-subgrid"},pD={key:0,"aria-hidden":"true",class:"pointer-events-none absolute inset-y-0 left-[34px] border-l border-neutral-200 dark:border-neutral-700"},hD=["aria-current"],mD={class:"flex h-4 items-center justify-center tabular-nums text-neutral-400"},gD=["viewBox"],vD={key:1,class:"font-semibold text-red-600 dark:text-red-300"},yD=["title"],bD={class:"sr-only"},xD={class:"flex min-w-0 flex-col"},kD=["title"],wD={key:0,class:"flex min-w-0 flex-wrap items-baseline gap-x-2 text-[11px] text-neutral-400"},_D={key:0,"aria-hidden":"true"},$D=["title"],ID={key:2,class:"whitespace-nowrap"},SD={key:3,class:"text-red-600 dark:text-red-300"},CD={key:4},TD=["title"],Td=we({__name:"TraceActionRow",props:{row:{},active:{type:Boolean},nested:{type:Boolean},part:{},subagent:{},stop:{}},emits:["select","hover"],setup(e,{emit:t}){const n=e,r=t,a={hook:"hook",request:"request",tool:"call","provider-tool":"provider tool",invoke:"call",handler:"handler",app:"log",runtime:"runtime failure",reply:"reply to"},o={start:"-14.5 -19.5 16 20",finish:"-1.5 -19.5 17 20"},s=x(()=>n.row.entry.action),i=x(()=>n.row.entry.mark),d=x(()=>s.value.status==="failed"),p=x(()=>Jp(s.value.kind,n.part)),f=x(()=>s.value.kind==="reply"),m=x(()=>!!(s.value.detail||s.value.attempt||d.value||s.value.status==="running"||f.value||n.subagent||n.stop)),g=x(()=>n.active?d.value?"bg-red-50 dark:bg-red-500/15":"bg-accent-50 dark:bg-accent-500/15":"");return(v,_)=>(l(),c("li",fD,[e.nested?(l(),c("span",pD)):M("",!0),u("button",{type:"button",class:J(["col-span-2 grid grid-cols-subgrid items-start rounded py-[3px] text-left leading-4",g.value]),"aria-current":e.active?"step":void 0,onClick:_[0]||(_[0]=b=>r("select",e.row.step,e.row.entry.ordinal)),onMouseenter:_[1]||(_[1]=b=>r("hover",e.row.entry.ordinal)),onFocus:_[2]||(_[2]=b=>r("hover",e.row.entry.ordinal)),onBlur:_[3]||(_[3]=b=>r("hover",null))},[u("span",mD,[i.value==="start"||i.value==="finish"?(l(),c("svg",{key:0,width:"14",height:"16",viewBox:o[i.value],"aria-hidden":"true"},[j(li,{kind:i.value},null,8,["kind"])],8,gD)):i.value==="failed"?(l(),c("span",vD,w(h(Po)),1)):(l(),c(te,{key:2},[Ce(w(i.value),1)],64))]),u("span",{class:J(["flex min-w-0 items-start gap-1.5",e.nested?"pl-5":""])},[u("span",{class:"flex h-4 shrink-0 items-center",title:a[s.value.kind]},[(l(),K(ct(p.value),{class:J(["size-3.5",d.value?"text-red-500 dark:text-red-300":"text-neutral-400 dark:text-neutral-500"]),"aria-hidden":"true"},null,8,["class"]))],8,yD),u("span",bD,w(a[s.value.kind]),1),u("span",xD,[u("span",{class:J(["truncate font-mono text-[11px]",d.value?"text-red-600 dark:text-red-300":"text-neutral-700 dark:text-neutral-200"]),title:s.value.name},w(s.value.name),11,kD),m.value?(l(),c("span",wD,[f.value?(l(),c("span",_D,"reply")):M("",!0),s.value.detail?(l(),c("span",{key:1,class:"min-w-0 max-w-full truncate",title:s.value.detail},w(s.value.detail),9,$D)):M("",!0),s.value.attempt?(l(),c("span",ID,"attempt "+w(s.value.attempt),1)):M("",!0),d.value?(l(),c("span",SD,"failed")):s.value.status==="running"?(l(),c("span",CD,"running")):M("",!0),e.subagent?(l(),c("span",{key:5,class:"min-w-0 max-w-full truncate",title:e.subagent},w(e.subagent),9,TD)):M("",!0),e.stop?(l(),c("span",{key:6,class:J(["font-mono",e.stop.failed?"text-red-600 dark:text-red-300":"text-accent-700 dark:text-accent-300"])},"stop "+w(e.stop.code),3)):M("",!0)])):M("",!0)])],2)],42,hD)]))}});function Qp(e){const t=e.filter(r=>r.step.subagent===null),n=Math.min(...t.map(r=>r.action.depth));return r=>r.step.subagent!==null||r.action.depth>n}function e0(e,t){const n=Qp(e),r=[];for(const a of e){const o=r[r.length-1];!t&&n(a)&&o!==void 0&&!n(o[0])?o.push(a):r.push([a])}return r}function MD(e,t){const{cues:n}=e,r=nr(e.segments),a=e0(e.actions,t);let o=-1;return a.map((s,i)=>{const d=s[s.length-1].ordinal;for(let f=o+1;f<n.length;f++){const m=n[f].ordinal;m!==null&&m<=d&&(o=f)}const p=i===a.length-1;return p&&(o=n.length-1),{actions:s,stopCue:o,at:p?r:o>=0?n[o].at:0}})}function Ga(e,t){const n=e[t-1];return n?{cue:n.stopCue,at:n.at}:{cue:-1,at:0}}function Md(e,t){let n=0;for(;n<e.length&&e[n].stopCue<=t;)n++;return n}function AD(e,t){return!Number.isFinite(e)||t<=0?0:Math.min(t,Math.max(0,Math.round(e*t)))}function LD(e,t){const n=Qp(e),r=new Map;e0(e,t).forEach((o,s)=>{for(const i of o)r.set(i.ordinal,s+1)});const a=[];for(const o of e){const s={entry:o,step:r.get(o.ordinal)??0,children:[]},i=a[a.length-1];n(o)&&i&&!n(i.entry)?i.children.push(s):a.push(s)}return a}function RD(e){if(e.children.length===0)return null;const t=e.children[0].entry.step.subagent;if(!t)return{kind:"nested",label:e.entry.action.name,count:e.children.length};const n=new Set(e.children.flatMap(a=>{const o=a.entry.step.subagent;return o?.label===t.label?[o.instance]:[]})),[r]=n;return{kind:"subagent",label:t.label,count:e.children.length,...n.size===1&&r?{instance:r}:{},...t.agent?{agent:t.agent}:{}}}function Ad(e,t){const n=e.entry.step.subagent;return n?t?.kind==="subagent"&&t.label===n.label?n.instance&&n.instance!==t.instance?n.instance:null:n.instance?`in ${n.label} · ${n.instance}`:`in ${n.label}`:null}const ED={key:0,class:"col-span-2 grid grid-cols-subgrid pb-1"},PD=["title"],ND={class:"truncate font-medium text-neutral-700 dark:text-neutral-200"},OD={key:1,class:"col-span-2 grid grid-cols-subgrid"},DD=["aria-current"],BD={class:"flex h-4 items-center justify-center"},FD={class:"flex min-w-0 flex-wrap gap-x-1.5"},jD={class:"whitespace-nowrap"},qD={class:"min-w-0 break-words text-neutral-700 dark:text-neutral-200"},zD=["title"],VD={class:"col-start-2 flex min-w-0 items-start gap-1.5 pl-5"},HD={key:1,class:"flex h-4 shrink-0 items-center"},UD={class:"flex min-w-0 flex-col"},KD={class:"flex min-w-0 items-baseline gap-1.5"},WD={class:"truncate font-medium text-neutral-700 dark:text-neutral-200"},GD={class:"shrink-0 text-[11px] text-neutral-400"},JD=["title"],XD="-14.5 -19.5 16 20",YD=we({__name:"TraceActionsList",props:{rows:{},leadIn:{},position:{},includeNested:{type:Boolean},stop:{},agent:{default:null},faces:{default:()=>new Map},partKinds:{default:()=>new Map}},emits:["select","hover"],setup(e,{emit:t}){const n=e,r=t;function a(b){const C=b.agent??b.label;return n.faces.get(C)??{name:C,title:C,icon:null}}const o=x(()=>n.rows.map(b=>{const C=RD(b);return{row:b,group:C,face:C?.kind==="subagent"?a(C):null}})),s=b=>n.partKinds.get(b.entry.ordinal)??null,i=x(()=>Math.max(...n.rows.flatMap(b=>[b.entry.ordinal,...n.includeNested?b.children.map(C=>C.entry.ordinal):[]]))),d=b=>n.stop!==null&&b.entry.ordinal===i.value?n.stop:null,p=x(()=>n.leadIn!==null&&!n.rows.some(b=>b.entry.mark==="start")),f=x(()=>{for(const b of n.rows){const C=n.includeNested?b.children.find(y=>y.step===n.position):void 0;if(C)return C;if(b.step===n.position)return b}return null}),m=b=>f.value===b,g=new Map,v=(b,C)=>{const y=C instanceof Element?C:C?.$el;y instanceof Element?g.set(b,y):g.delete(b)},_=qo();return ve(f,async b=>{b&&(await Qe(),g.get(b.entry.ordinal)?.scrollIntoView({block:"nearest",behavior:_.value==="reduce"?"auto":"smooth"}))},{immediate:!0}),(b,C)=>(l(),c("ol",{class:"mt-0.5 grid grid-cols-[20px_minmax(0,1fr)] gap-x-2",onMouseleave:C[5]||(C[5]=y=>r("hover",null))},[e.agent?(l(),c("li",ED,[u("span",{class:"col-start-2 flex min-w-0 items-center gap-1.5",title:e.agent.name},[j(Ai,{icon:e.agent.icon,seed:e.agent.name,class:"size-4 rounded"},null,8,["icon","seed"]),u("span",ND,w(e.agent.title),1)],8,PD)])):M("",!0),p.value?(l(),c("li",OD,[u("button",{type:"button",class:J(["col-span-2 grid grid-cols-subgrid items-start rounded py-[3px] text-left leading-4",e.position===0?"bg-accent-50 dark:bg-accent-500/15":""]),"aria-current":e.position===0?"step":void 0,onClick:C[0]||(C[0]=y=>r("select",0,null))},[u("span",BD,[(l(),c("svg",{width:"14",height:"16",viewBox:XD,"aria-hidden":"true"},[j(li,{kind:"start"})]))]),u("span",FD,[u("span",jD,w(e.leadIn?.verb),1),u("span",qD,w(e.leadIn?.label),1)])],10,DD)])):M("",!0),(l(!0),c(te,null,Ie(o.value,({row:y,group:A,face:L})=>(l(),c(te,{key:y.entry.ordinal},[j(Td,{ref_for:!0,ref:k=>v(y.entry.ordinal,k),row:y,active:m(y),nested:!1,part:s(y),subagent:h(Ad)(y,null),stop:d(y),onSelect:C[1]||(C[1]=(k,S)=>r("select",k,S)),onHover:C[2]||(C[2]=k=>r("hover",k))},null,8,["row","active","part","subagent","stop"]),A?(l(),c("li",{key:0,class:"relative col-span-2 grid grid-cols-subgrid py-1 leading-4",title:L?.title},[C[6]||(C[6]=u("span",{"aria-hidden":"true",class:"pointer-events-none absolute inset-y-0 left-[34px] border-l border-neutral-200 dark:border-neutral-700"},null,-1)),u("span",VD,[L?(l(),K(Ai,{key:0,icon:L.icon,seed:L.name,class:"size-4 rounded"},null,8,["icon","seed"])):(l(),c("span",HD,[(l(),K(ct(h(Jp)(y.entry.action.kind,s(y))),{class:"size-3.5 text-neutral-400 dark:text-neutral-500","aria-hidden":"true"}))])),u("span",UD,[u("span",KD,[u("span",WD,[A.kind==="nested"?(l(),c(te,{key:0},[Ce("nested in ")],64)):M("",!0),Ce(w(A.label),1)]),u("span",GD,w(A.count)+" "+w(A.count===1?"step":"steps"),1)]),A.instance?(l(),c("span",{key:0,class:"truncate text-[11px] text-neutral-400",title:A.instance},w(A.instance),9,JD)):M("",!0)])])],8,zD)):M("",!0),e.includeNested?(l(!0),c(te,{key:1},Ie(y.children,k=>(l(),K(Td,{key:k.entry.ordinal,ref_for:!0,ref:S=>v(k.entry.ordinal,S),row:k,active:m(k),nested:!0,part:s(k),subagent:h(Ad)(k,A),stop:d(k),onSelect:C[3]||(C[3]=(S,T)=>r("select",S,T)),onHover:C[4]||(C[4]=S=>r("hover",S))},null,8,["row","active","part","subagent","stop"]))),128)):M("",!0)],64))),128))],32))}}),ZD=["aria-valuemax","aria-valuenow","aria-valuetext","aria-disabled"],QD=we({__name:"TraceSlider",props:{count:{},position:{},disabled:{type:Boolean}},emits:["seek"],setup(e,{emit:t}){const n=e,r=t,a=R(null),o=R(!1),s=_=>n.count>0?_/n.count*100:0,i=x(()=>Array.from({length:n.count},(_,b)=>b+1));function d(_){const b=a.value?.getBoundingClientRect();return!b||b.width===0?n.position:AD((_-b.left)/b.width,n.count)}function p(_){_!==n.position&&r("seek",_)}function f(_){if(n.disabled||n.count===0||_.button!==0)return;o.value=!0;const b=_.currentTarget;b instanceof HTMLElement&&b.setPointerCapture(_.pointerId),p(d(_.clientX))}function m(_){o.value&&p(d(_.clientX))}function g(_){o.value=!1;const b=_.currentTarget;b instanceof HTMLElement&&b.hasPointerCapture(_.pointerId)&&b.releasePointerCapture(_.pointerId)}function v(_){const C={ArrowLeft:n.position-1,ArrowDown:n.position-1,ArrowRight:n.position+1,ArrowUp:n.position+1,Home:0,End:n.count}[_.key];C===void 0||n.disabled||(_.preventDefault(),p(Math.min(n.count,Math.max(0,C))))}return(_,b)=>(l(),c("div",{class:J(["group relative flex h-6 min-w-24 flex-1 cursor-pointer touch-none items-center rounded outline-none focus-visible:ring-2 focus-visible:ring-accent-500",e.disabled?"pointer-events-none opacity-40":""]),role:"slider",tabindex:"0","aria-label":"Playback step","aria-valuemin":"0","aria-valuemax":e.count,"aria-valuenow":e.position,"aria-valuetext":`Step ${e.position} of ${e.count}`,"aria-disabled":e.disabled||void 0,onPointerdown:f,onPointermove:m,onPointerup:g,onPointercancel:g,onKeydown:v},[u("div",{ref_key:"track",ref:a,class:"relative mx-1.5 h-1 flex-1 rounded-full bg-neutral-200 dark:bg-neutral-700"},[u("div",{class:"absolute inset-y-0 left-0 rounded-full bg-accent-600 dark:bg-accent-400",style:nt({width:`${s(e.position)}%`})},null,4),(l(!0),c(te,null,Ie(i.value,C=>(l(),c("span",{key:C,class:J(["absolute top-1/2 h-2 w-px -translate-x-1/2 -translate-y-1/2",C<=e.position?"bg-accent-700 dark:bg-accent-300":"bg-neutral-400 dark:bg-neutral-500"]),style:nt({left:`${s(C)}%`}),"aria-hidden":"true"},null,6))),128)),u("span",{class:"absolute top-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white bg-accent-600 shadow-sm dark:border-neutral-900 dark:bg-accent-400",style:nt({left:`${s(e.position)}%`}),"aria-hidden":"true"},null,4)],512)],42,ZD))}}),eB={class:"flex min-w-0 flex-wrap items-center gap-x-1 gap-y-1 border-b border-neutral-200 px-3 py-1.5 dark:border-neutral-800",role:"toolbar","aria-label":"Trace controls"},tB=["disabled"],nB=["disabled"],rB=["disabled","title","aria-label","data-state"],aB=["disabled"],oB=["disabled"],sB={class:"w-12 shrink-0 text-right text-[11.5px] tabular-nums text-neutral-500 dark:text-neutral-400"},lB=["disabled"],iB=["disabled"],Dn="inline-flex size-7 shrink-0 items-center justify-center rounded-md text-neutral-700 transition-colors hover:bg-neutral-100 disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:bg-transparent dark:text-neutral-200 dark:hover:bg-neutral-800",uB=we({__name:"TraceControls",props:Sn({count:{},position:{},playing:{type:Boolean},finished:{type:Boolean},hasPreviousLog:{type:Boolean},hasNextLog:{type:Boolean}},{includeNested:{type:Boolean,required:!0},includeNestedModifiers:{},autoplay:{type:Boolean,required:!0},autoplayModifiers:{}}),emits:Sn(["play","pause","replay","first-step","previous-step","next-step","last-step","seek","previous-log","next-log"],["update:includeNested","update:autoplay"]),setup(e,{emit:t}){const n=e,r=Pr(e,"includeNested"),a=Pr(e,"autoplay"),o=t;function s(){n.finished?o("replay"):n.playing?o("pause"):o("play")}return(i,d)=>(l(),c("div",eB,[u("button",{type:"button",class:J(Dn),disabled:e.count===0||e.position===0,title:"First step (Home)","aria-label":"First step",onClick:d[0]||(d[0]=p=>o("first-step"))},[j(h(Tm),{size:16})],8,tB),u("button",{type:"button",class:J(Dn),disabled:e.count===0||e.position===0,title:"Previous step (←)","aria-label":"Previous step",onClick:d[1]||(d[1]=p=>o("previous-step"))},[j(h(xc),{size:16})],8,nB),u("button",{type:"button",class:J(Dn),disabled:e.count===0,title:e.finished?"Replay (Space)":e.playing?"Pause (Space)":"Play (Space)","aria-label":e.finished?"Replay":e.playing?"Pause":"Play","data-state":e.finished?"finished":e.playing?"playing":"paused",onClick:s},[e.finished?(l(),K(h(vr),{key:0,size:14})):e.playing?(l(),K(h(Mm),{key:1,size:14})):(l(),K(h(ho),{key:2,size:14}))],8,rB),u("button",{type:"button",class:J(Dn),disabled:e.count===0||e.position===e.count,title:"Next step (→)","aria-label":"Next step",onClick:d[2]||(d[2]=p=>o("next-step"))},[j(h(Et),{size:16})],8,aB),u("button",{type:"button",class:J(Dn),disabled:e.count===0||e.finished,title:"Last step (End)","aria-label":"Last step",onClick:d[3]||(d[3]=p=>o("last-step"))},[j(h(Am),{size:16})],8,oB),j(QD,{class:"mx-1",count:e.count,position:e.position,disabled:e.count===0,onSeek:d[4]||(d[4]=p=>o("seek",p))},null,8,["count","position","disabled"]),u("span",sB,w(e.position)+" / "+w(e.count),1),d[9]||(d[9]=u("span",{class:"mx-1 h-4 w-px shrink-0 bg-neutral-200 dark:bg-neutral-700","aria-hidden":"true"},null,-1)),u("button",{type:"button",class:J(Dn),disabled:!e.hasPreviousLog,title:"Previous log entry","aria-label":"Previous log entry",onClick:d[5]||(d[5]=p=>o("previous-log"))},[j(h(Lm),{size:16})],8,lB),u("button",{type:"button",class:J(Dn),disabled:!e.hasNextLog,title:"Next log entry","aria-label":"Next log entry",onClick:d[6]||(d[6]=p=>o("next-log"))},[j(h(Rm),{size:16})],8,iB),d[10]||(d[10]=u("span",{class:"mx-1 h-4 w-px shrink-0 bg-neutral-200 dark:bg-neutral-700","aria-hidden":"true"},null,-1)),j(Di,{modelValue:r.value,"onUpdate:modelValue":d[7]||(d[7]=p=>r.value=p),label:"Nested actions",title:"Include subagent actions and nested rows' actions in playback, stepping, and the slider"},null,8,["modelValue"]),j(Di,{modelValue:a.value,"onUpdate:modelValue":d[8]||(d[8]=p=>a.value=p),label:"Autoplay",title:"On, a selected log entry plays from its start. Off, it opens at its finish."},null,8,["modelValue"])]))}}),dB={class:"trace-badges","aria-hidden":"true","pointer-events":"none"},cB=["x","y","width","height"],fB=["transform"],pB=["transform"],hB=["width","height","rx"],mB=["x","y"],gB=we({__name:"TraceBadges",props:{badges:{},focus:{},ring:{}},setup(e){const t=e,n=f_,r=Un,a=Un/2,o=Un,s=br+o,i=p=>Math.max(n,Math.round(p.length*C_+r*2)),d=x(()=>t.badges.map(p=>{const f=Z9(p,t.focus),m=f.map(_=>i(_.text)),g=m.reduce((_,b)=>_+b,0)+a*Math.max(0,f.length-1);let v=0;return{badge:p,title:Q9(p),x:Math.round(p.x-g/2),y:Math.round(p.y-n/2),pills:f.map((_,b)=>{const C={..._,x:v,width:m[b]};return v+=m[b]+a,C})}}));return(p,f)=>(l(),c("g",dB,[e.ring?(l(),c("rect",{key:0,class:"trace-ring",x:e.ring.x-h(o),y:e.ring.y-h(o),width:e.ring.width+h(o)*2,height:e.ring.height+h(o)*2,rx:s},null,8,cB)):M("",!0),(l(!0),c(te,null,Ie(d.value,m=>(l(),c("g",{key:m.badge.id,transform:`translate(${m.x} ${m.y})`,"pointer-events":"all"},[u("title",null,w(m.title),1),(l(!0),c(te,null,Ie(m.pills,(g,v)=>(l(),c("g",{key:v,transform:`translate(${g.x} 0)`,class:J(g.failed?"is-failed":"")},[u("rect",{class:"trace-badge-fill",width:g.width,height:h(n),rx:h(n)/2},null,8,hB),u("text",{class:"trace-badge-text",x:g.width/2,y:h(n)/2,"text-anchor":"middle","dominant-baseline":"central"},w(g.text),9,mB)],10,pB))),128))],8,fB))),128))]))}}),vB=ot(gB,[["__scopeId","data-v-b6150f8a"]]),yB={"aria-hidden":"true","pointer-events":"none"},Ld=14,bB=we({__name:"TraceFlags",props:{flags:{}},setup(e){const t={start:"left",finish:"right"};function n(r){const a=(r.lean==="left"?-Ld:Ld)*(r.hangs?-1:1),o=t[r.kind]===r.lean?1:-1,s=r.hangs?-1:1,i=o===1&&s===1?"":` scale(${o} ${s})`;return`translate(${r.x} ${r.y}) rotate(${a})${i}`}return(r,a)=>(l(),c("g",yB,[(l(!0),c(te,null,Ie(e.flags,o=>(l(),K(li,{key:o.kind,kind:o.kind,transform:n(o),"data-lean":o.lean,"data-hangs":o.hangs||void 0},null,8,["kind","transform","data-lean","data-hangs"]))),128))]))}}),fl=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y);function Rd(e,t){let n=0;for(const r of e){if(r.length===1&&t(r[0],r[0]))return n;for(let a=1;a<r.length;a++){const[o,s]=[r[a-1],r[a]],i=t(o,s);if(i)return n+fl(o,i);n+=fl(o,s)}}return null}function xB(e,t){if(!e||t.length===0)return[];const n=[];e.junctions.forEach((r,a)=>{const o=Rd(t,(s,i)=>Tr(r,s,i)?r:null);o!==null&&n.push({kind:"junction",key:String(a),point:r,angle:0,at:o})});for(const r of e.wires){const a=r.points[r.points.length-1],o=r.points[r.points.length-2];if(!r.arrow||!a||!o)continue;const s=Rd(t,(i,d)=>Tr(a,i,d)&&fl(i,a)>.5&&Tr(i,o,a)?a:null);s!==null&&n.push({kind:"arrow",key:r.id,point:a,angle:Math.atan2(a.y-o.y,a.x-o.x)*180/Math.PI,at:s})}return n.sort((r,a)=>r.at-a.at)}const kB=(e,t)=>e.at<=t+.01,wB={"aria-hidden":"true","pointer-events":"none"},_B=["cx","cy"],$B=["transform"],IB=480,SB=we({__name:"TraceMarker",props:{motion:{},travel:{},flags:{},finished:{type:Boolean}},emits:["move","cue","arrive"],setup(e,{emit:t}){const n=e,r=t,a=R(null),o=R(null),s=R(null),i=R(null),d=R(null),p=R(null),f=qo();let m=0,g=0,v=-1,_=null;function b(T){T&&(a.value?.setAttribute("transform",`translate(${T.x} ${T.y})`),r("move",T))}const C=T=>T.map(B=>B.map((q,H)=>`${H===0?"M":"L"}${q.x} ${q.y}`).join(" ")).join(" "),y=(T,B)=>T.some(([q,H])=>B>=q&&B<=H);function A(T){const B=[...T.dashed,...T.retried].flat().filter(Y=>Y>0&&Y<g),q=[...new Set([0,...B,g])].sort((Y,$)=>Y-$),H=new Map([[o.value,[]],[s.value,[]],[i.value,[]],[d.value,[]]]);let N=0,P=null;const U=Y=>{Y>N&&H.get(P)?.push(...Cd(T.segments,N,Y)),N=Y};for(let Y=1;Y<q.length;Y++){const $=(q[Y-1]+q[Y])/2,D=y(T.dashed,$),W=y(T.retried,$)?D?d.value:i.value:D?s.value:o.value;W!==P&&U(q[Y-1]),P=W}U(g),g===0&&H.get(o.value)?.push(...Cd(T.segments,0,0));for(const[Y,$]of H)Y?.setAttribute("d",C($));const V=p.value?.children??[];T.marks.forEach((Y,$)=>V[$]?.setAttribute("visibility",kB(Y,g)?"visible":"hidden"))}function L(T,B){for(;v<B&&v+1<T.cues.length&&T.cues[v+1].at<=g+.01;)v+=1,r("cue",v)}function k(T,B){if(cancelAnimationFrame(m),g=B.to,b(Ms(T.segments,g)),B.instant)v=B.toCue;else for(;v<B.toCue;)v+=1,r("cue",v);A(T),r("arrive",B.id)}function S(T){cancelAnimationFrame(m);const B=n.motion;if(!B||!T)return;B.key!==_&&(_=B.key,g=0,v=-1),T.from!==null&&(g=T.from,v=T.fromCue??-1);const q=nr(B.segments);if(T.instant||f.value==="reduce"||T.to<=g||q===0){k(B,T);return}const H=performance.now(),N=g,P=U=>{if(g=Math.min(T.to,N+(U-H)/1e3*IB),b(Ms(B.segments,g)),L(B,T.toCue),A(B),g<T.to){m=requestAnimationFrame(P);return}k(B,T)};b(Ms(B.segments,g)),L(B,T.toCue),m=requestAnimationFrame(P)}return ve(()=>n.travel,S,{flush:"post"}),ve(a,T=>{T&&S(n.travel)}),Ft(()=>cancelAnimationFrame(m)),(T,B)=>(l(),c("g",wB,[e.motion&&e.motion.segments.length>0?(l(),c(te,{key:0},[u("path",{ref_key:"fill",ref:o,class:"trace-fill",d:""},null,512),u("path",{ref_key:"dashedFill",ref:s,class:"trace-fill is-dashed",d:""},null,512),u("path",{ref_key:"retriedFill",ref:i,class:"trace-fill is-retried",d:""},null,512),u("path",{ref_key:"retriedDashedFill",ref:d,class:"trace-fill is-retried is-dashed",d:""},null,512),u("g",{ref_key:"marks",ref:p},[(l(!0),c(te,null,Ie(e.motion.marks,q=>(l(),c(te,{key:`${q.kind}:${q.key}`},[q.kind==="junction"?(l(),c("circle",{key:0,class:J(["trace-mark",y(e.motion.retried,q.at)?"is-retried":""]),cx:q.point.x,cy:q.point.y,r:"3",visibility:"hidden"},null,10,_B)):(l(),c("path",{key:1,class:J(["trace-mark",y(e.motion.retried,q.at)?"is-retried":""]),d:"M0 .5 7.5 4 0 7.5z",transform:`translate(${q.point.x} ${q.point.y}) rotate(${q.angle}) translate(-7.5 -4)`,visibility:"hidden"},null,10,$B))],64))),128))],512)],64)):M("",!0),gt(T.$slots,"beneath-flags",{},void 0,!0),j(bB,{flags:e.flags},null,8,["flags"]),e.motion&&e.motion.segments.length>0?(l(),c("g",{key:1,ref_key:"marker",ref:a,class:J(["trace-marker",e.motion.failed?"is-failed":"",e.finished?"is-finished":""])},[...B[0]||(B[0]=[u("circle",{class:"trace-marker-dot",r:"4.5"},null,-1)])],2)):M("",!0)]))}}),CB=ot(SB,[["__scopeId","data-v-22225991"]]),Ed="agents.trace.actionsCollapsed";function TB(e=Zd()){function t(){try{return e?.getItem(Ed)==="true"}catch{return!1}}const n=R(t());return ve(n,r=>{try{e?.setItem(Ed,String(r))}catch{}}),{collapsed:n,collapse:()=>{n.value=!0},expand:()=>{n.value=!1}}}const MB={class:"flex min-h-0 flex-1"},AB={key:0,class:"relative flex w-[clamp(176px,34%,320px)] shrink-0 flex-col border-r border-neutral-200 text-[11.5px] leading-snug text-neutral-500 dark:border-neutral-800 dark:text-neutral-400"},LB={class:"flex shrink-0 flex-col gap-0.5 pb-1 pl-3 pr-9 pt-2"},RB={class:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-0.5"},EB={key:0,class:"font-medium text-neutral-700 dark:text-neutral-200"},PB={key:1,class:"rounded border border-neutral-300 px-1 text-[10.5px] dark:border-neutral-700",title:"No log row records this run's trigger. The trace infers it from the rows' side and type."},NB={key:0},OB={key:1},DB={class:"font-mono"},BB={key:2,class:"mt-1 font-medium text-neutral-700 dark:text-neutral-200"},FB={key:0,class:"min-h-0 flex-1 overflow-y-auto px-3 pb-2"},jB={key:1,class:"flex-1"},qB={key:1,class:"flex-1"},zB={key:2,class:"flex max-h-[40%] shrink-0 flex-col gap-1 overflow-y-auto border-t border-neutral-200 px-3 py-1.5 dark:border-neutral-800"},VB=["title"],HB=["title"],UB={key:1,class:"text-sky-700 dark:text-sky-300"},KB={key:2},WB={key:3,class:"text-amber-700 dark:text-amber-300"},GB={key:4,class:"text-amber-700 dark:text-amber-300"},JB={key:1,class:"line-clamp-3 text-amber-700 dark:text-amber-300"},XB=["title"],YB=["title"],ZB=["title"],QB={key:5},eF={class:"relative flex min-w-0 flex-1"},tF={key:1,class:"pointer-events-none absolute inset-x-0 bottom-3 flex justify-center"},nF={class:"rounded-full bg-white/90 px-3 py-1 text-[12px] text-neutral-500 shadow-sm dark:bg-neutral-900/90 dark:text-neutral-400"},rF=we({__name:"TraceStage",props:{trace:{},agent:{},loading:{type:Boolean},error:{},hasPreviousLog:{type:Boolean},hasNextLog:{type:Boolean}},emits:["previous-log","next-log"],setup(e,{emit:t}){const n=e,r=t,a=R(null),{session:o,data:s,includeNested:i,autoplay:d}=n.trace,p=TB(),f=x(()=>n.trace.steps.value),m=x(()=>[...new Set(f.value.flatMap(H=>H.error?[H.error]:[]))]),g=x(()=>n.trace.diagnostics.value),v=x(()=>f.value[f.value.length-1]?.stopCode??null),_=x(()=>f.value.find(H=>H.kind==="trigger")??null),b=x(()=>cD(_.value,n.trace.lead.value,n.trace.caller.value)),C=H=>f.value.some(N=>N.provenance===H),y=x(()=>f.value.some(H=>H.definitionChanged)),A=x(()=>uD(o.layout.value,o.unreached.value)),L=x(()=>!!(n.trace.current.value&&(m.value.length>0||g.value.length>0||y.value||C("loading")||C("unavailable")||C("current"))||s.error.value||s.truncated.value||o.unplaced.value.length>0||A.value||o.breaks.value)),k=R(null),S=x(()=>k.value??(o.travelling.value||o.finished.value?null:o.currentOrdinal.value)),T=x(()=>o.partFor(S.value)),B=x(()=>o.actions.value.length);async function q(H,N){o.seek(H),await Qe();const P=o.partFor(N);P&&a.value?.centerOn(P)}return(H,N)=>(l(),c("div",{class:"flex h-full min-h-0 flex-col bg-white outline-none dark:bg-neutral-900",tabindex:"-1",onKeydown:N[11]||(N[11]=(...P)=>e.trace.handleKeydown&&e.trace.handleKeydown(...P))},[j(uB,{"include-nested":h(i),"onUpdate:includeNested":N[0]||(N[0]=P=>Pi(i)?i.value=P:null),autoplay:h(d),"onUpdate:autoplay":N[1]||(N[1]=P=>Pi(d)?d.value=P:null),count:h(o).stepCount.value,position:h(o).position.value,playing:h(o).playing.value,finished:h(o).finished.value,"has-previous-log":e.hasPreviousLog,"has-next-log":e.hasNextLog,onPlay:h(o).play,onPause:h(o).pause,onReplay:h(o).replay,onFirstStep:N[2]||(N[2]=P=>h(o).seek(0)),onPreviousStep:h(o).previous,onNextStep:h(o).next,onLastStep:N[3]||(N[3]=P=>h(o).seek(h(o).stepCount.value)),onSeek:h(o).seek,onPreviousLog:N[4]||(N[4]=P=>r("previous-log")),onNextLog:N[5]||(N[5]=P=>r("next-log"))},null,8,["include-nested","autoplay","count","position","playing","finished","has-previous-log","has-next-log","onPlay","onPause","onReplay","onPreviousStep","onNextStep","onSeek"]),u("div",MB,[h(p).collapsed.value?M("",!0):(l(),c("aside",AB,[u("button",{type:"button",class:"absolute right-1.5 top-1.5 z-10 flex size-7 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-black/5 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-white/10 dark:hover:text-white",title:"Hide actions","aria-label":"Hide actions",onClick:N[6]||(N[6]=(...P)=>h(p).collapse&&h(p).collapse(...P))},[j(h(ic),{class:"size-4"})]),e.trace.current.value?(l(),c(te,{key:0},[u("div",LB,[u("div",RB,[b.value?(l(),c("span",EB,w(b.value.title),1)):M("",!0),_.value?.run.trigger.inferred?(l(),c("span",PB,"inferred")):M("",!0)]),e.trace.placement.value?(l(),c("span",NB,w(e.trace.placement.value),1)):M("",!0),v.value?(l(),c("span",OB,[N[12]||(N[12]=Ce("Stop reason ",-1)),u("span",DB,w(v.value),1)])):M("",!0),B.value>0?(l(),c("div",BB,w(B.value)+" "+w(B.value===1?"action":"actions"),1)):M("",!0)]),B.value>0?(l(),c("div",FB,[j(YD,{rows:h(o).rows.value,"lead-in":b.value,position:h(o).position.value,"include-nested":h(i),stop:h(o).stopBoundary.value,agent:e.trace.agent.value,faces:e.trace.faces.value,"part-kinds":h(o).partKinds.value,onSelect:q,onHover:N[7]||(N[7]=P=>k.value=P)},null,8,["rows","lead-in","position","include-nested","stop","agent","faces","part-kinds"])])):(l(),c("div",jB))],64)):(l(),c("div",qB)),L.value?(l(),c("div",zB,[e.trace.current.value?(l(),c(te,{key:0},[(l(!0),c(te,null,Ie(m.value,(P,U)=>(l(),c("p",{key:U,class:"line-clamp-3 break-words text-red-600 dark:text-red-300",title:P},w(P),9,VB))),128)),g.value.length?(l(),c("p",{key:0,class:"text-red-600 dark:text-red-300",title:g.value.map(P=>`${P.logId}: ${P.message}`).join(`
|
|
69
|
-
`)}," Trace evidence has an invalid transition. ",8,HB)):M("",!0),y.value?(l(),c("p",UB," The agent's definitions changed during this log entry. ")):M("",!0),C("loading")?(l(),c("p",KB," Loading the definition snapshot for this log entry. ")):C("unavailable")?(l(),c("p",WB," The definition snapshot for this log entry could not be read. The diagram shows the current definitions. ")):C("current")?(l(),c("p",GB," No definition snapshot is stored for this log entry. The diagram shows the current definitions. ")):M("",!0)],64)):M("",!0),h(s).error.value?(l(),c("p",JB,w(h(s).error.value),1)):M("",!0),h(o).unplaced.value.length>0?(l(),c("p",{key:2,title:h(o).unplaced.value.map(P=>P.action.name).join(", ")},w(h(o).unplaced.value.length)+" "+w(h(o).unplaced.value.length===1?"action has":"actions have")+" no part on this diagram ",9,XB)):M("",!0),A.value?(l(),c("p",{key:3,title:A.value.title},w(A.value.text),9,YB)):M("",!0),h(o).breaks.value?(l(),c("p",{key:4,class:"text-amber-700 dark:text-amber-300",title:h(o).breaks.value.title},w(h(o).breaks.value.text),9,ZB)):M("",!0),h(s).truncated.value?(l(),c("p",QB,"The trace includes the first "+w(h(oi))+" rows plus recent recovery rows and live updates. Some entries may be missing.",1)):M("",!0)])):M("",!0)])),u("div",eF,[h(p).collapsed.value?(l(),c("button",{key:0,type:"button",class:"absolute left-3 top-3 z-10 flex size-8 items-center justify-center rounded-lg border border-neutral-200 bg-white/90 text-neutral-500 shadow-sm backdrop-blur-sm transition-colors hover:text-neutral-900 dark:border-neutral-700 dark:bg-neutral-900/90 dark:text-neutral-400 dark:hover:text-white",title:"Show actions","aria-label":"Show actions",onClick:N[8]||(N[8]=(...P)=>h(p).expand&&h(p).expand(...P))},[j(h(Oh),{class:"size-4"})])):M("",!0),j(Tf,{ref_key:"canvasRef",ref:a,class:"min-w-0",agent:e.agent,diagram:e.trace.shown,highlight:h(o).highlight.value,"selected-node-id":null,"hovered-node-id":null,loading:e.loading,error:e.error},{overlay:be(()=>[j(CB,{motion:h(o).motion.value,travel:h(o).travel.value,flags:h(o).flags.value,finished:h(o).finished.value,onMove:N[9]||(N[9]=P=>a.value?.followPoint(P)),onCue:h(o).reach,onArrive:N[10]||(N[10]=P=>{h(o).arrive(P),a.value?.settleFollow()})},{"beneath-flags":be(()=>[j(vB,{badges:h(o).badges.value,focus:k.value??h(o).currentOrdinal.value,ring:T.value},null,8,["badges","focus","ring"])]),_:1},8,["motion","travel","flags","finished","onCue"])]),_:1},8,["agent","diagram","highlight","loading","error"]),h(s).isLoading.value||e.trace.steps.value.length===0?(l(),c("div",tF,[u("span",nF,w(h(s).isLoading.value?"Loading steps…":e.trace.outsideRead.value?"This log entry is outside the rows the trace read.":"This log entry has no steps to trace yet."),1)])):M("",!0)])])],32))}});function t0(e){if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}const ci=(e,t)=>t in e?Reflect.get(e,t):void 0,Hn=(e,t)=>{const n=ci(e,t);return typeof n=="string"&&n?n:null},n0=(e,t)=>{const n=ci(e,t);return typeof n=="number"&&Number.isFinite(n)?n:null},aF=new Set(["ok","error","blocked"]);function oF(e){return typeof e=="string"&&aF.has(e)}function Pd(e){return t0(e).flatMap(t=>{if(!t||typeof t!="object")return[];const n=Hn(t,"hook"),r=Hn(t,"stage"),a=ci(t,"outcome");return!n||!r||!oF(a)?[]:[{hook:n,stage:r,outcome:a,actionId:Hn(t,"action_id"),sequence:n0(t,"action_sequence")}]})}function r0(e){return t0(e).flatMap(t=>{if(!t||typeof t!="object")return[];const n=Hn(t,"name")??Hn(t,"type");if(!n)return[];const r=Hn(t,"status");return[{name:n,failed:r==="failed"||r==="error",actionId:Hn(t,"action_id"),sequence:n0(t,"action_sequence")}]})}function sF(e,t){const n=e.log.action_sequence,r=t.log.action_sequence;return typeof n=="number"&&typeof r=="number"&&e.log.run_id&&e.log.run_id===t.log.run_id&&n!==r?n-r:e.log.created_at-t.log.created_at||e.position-t.position}function lF(e){return e.map((t,n)=>({log:t,position:n})).sort((t,n)=>t.log.created_at-n.log.created_at||t.position-n.position).map(t=>t.log)}function iF(e,t){const n=e.indexOf(":");return n>0?t.get(e.slice(0,n))??null:null}function a0(e){const t=new Map,n=new Map,r=new Map,a=[],o=[],s=lF(e);for(const f of s)t.set(f.id,{log:f,children:[],aliases:[]});const i=new Map;for(const f of t.values()){const m=new Set([f.log.id]);let g=f.log.retry_of_log_id;for(;g;){if(m.has(g)){f.errors=["Cyclic request retry chain"];break}m.add(g),g=t.get(g)?.log.retry_of_log_id??null}}s.forEach((f,m)=>{const g=t.get(f.id);if(!g)return;const v=f.action_id?n.get(f.action_id):void 0;if(v){(v.log.kind!==f.kind||(v.log.prompt_name||v.log.model)!==(f.prompt_name||f.model))&&(v.errors=[...v.errors??[],"Conflicting rows share an action ID"]),v.aliases.push(f),t.set(f.id,v);return}f.action_id&&n.set(f.action_id,g),o.push({node:g,position:m});let _=null;f.parent_action_id&&(_=n.get(f.parent_action_id)??iF(f.parent_action_id,t)),!_&&f.parent_log_id&&(_=t.get(f.parent_log_id)??null),!_&&!f.run_id&&!f.kind&&f.message_id&&(_=r.get(f.message_id)??null);let b=_;for(;b&&b!==g;)b=i.get(b)??null;b===g&&(g.errors=[...g.errors??[],"Cyclic invocation ancestry"],_=null),_&&_!==g?(_.children.push(g),i.set(g,_)):a.push({node:g,position:m}),f.kind==="tool_execution"&&f.message_id&&r.set(f.message_id,g)});const d=new Map(o.map(f=>[f.node,f.position])),p=f=>f.map(m=>({node:m,log:m.log,position:d.get(m)??0})).sort(sF).map(m=>m.node);for(const{node:f}of o)f.children=p(f.children);return p(a.map(f=>f.node))}function Ea(e){return[e.log,...e.aliases,...e.children.flatMap(Ea)]}function uF(e){return e.side==null&&e.turn==null&&e.session==null?null:`turn:${e.session??"-"}:${e.turn??"-"}:${e.side??"-"}`}function fi(e){return!e.kind&&!e.prompt_name&&e.error_origin==="runtime"}function dF(e){const t=[],n=new Map;let r=null;for(const a of e){const o=a.log,s=o.run_id;if(s){let p=n.get(s);p||(p={key:s,attributed:!0,nodes:[]},n.set(s,p),t.push(p)),p.nodes.push(a),r=null;continue}const i=uF(o);if(!(r!==null&&(i?i===r.turnKey&&!r.ended:o.kind==="app"||!!(o.message_id&&r.messages.has(o.message_id))||!!(o.retry_of_log_id&&r.logs.has(o.retry_of_log_id))))||!r){const p={key:i&&!t.some(f=>f.key===i)?i:`row:${o.id}`,attributed:!1,nodes:[]};t.push(p),r={group:p,turnKey:i,messages:new Set,logs:new Set,ended:!1}}r.group.nodes.push(a),r.turnKey??=i,o.message_id&&r.messages.add(o.message_id);for(const p of Ea(a))r.logs.add(p.id);r.ended=!!o.stop_code||fi(o)}return t}function cF(e){const t=new Map(e.map(a=>[a.id,a])),n=new Map,r=(a,o)=>{const s=n.get(a.id);if(s!==void 0)return s;const i=a.retry_of_log_id?t.get(a.retry_of_log_id):void 0,d=i&&!o.has(i.id)?r(i,new Set([...o,a.id]))+1:a.retry_of_log_id?2:1;return n.set(a.id,d),d};for(const a of e)r(a,new Set);return n}const fF={start:["entry","message","assembly","request","tool","spawn","dispatch","result","failure","finish"],entry:["entry","message","assembly","request","tool","failure","finish"],message:["message","assembly","request","tool","failure","finish"],assembly:["assembly","request","failure","finish"],request:["dispatch","tool","provider-tool","reply","failure","finish"],dispatch:["dispatch","tool","provider-tool","spawn","failure","finish"],tool:["dispatch","tool","spawn","result","return","failure","finish"],"provider-tool":["provider-tool","dispatch","tool","reply","failure","finish"],spawn:["spawn","child","result","tool","failure","finish"],child:["return","failure","finish"],return:["message","assembly","request","dispatch","tool","result","reply","finish"],result:["result","dispatch","tool","reply","failure","finish"],reply:["finish"],failure:["spawn","child","result","return","tool","failure","finish"],finish:[]},pF={stop_tool:"tool",session_stop:"tool",session_fail:"tool",hook_blocked:"hook"},o0=["after_system_message","filter_messages","prefilter_llm_history"],s0=["before_create_message","after_create_message","before_update_message","after_update_message"],hF=["tool_call_done","after_tool_call_success","after_tool_call_failure","before_store_tool_result"];class mF{phase="start";diagnostics=[];station=-1;move(t,n,r=null,a){const s=a?(t==="assembly"?o0:t==="message"?s0:t==="result"?hF:[]).indexOf(a):-1;return!fF[this.phase].includes(t)||this.phase===t&&s>=0&&s<this.station?(this.diagnostics.push({logId:n,actionId:r,message:`Illegal trace transition ${this.phase} → ${t}${a?` (${a})`:""}`}),!1):(this.station=this.phase===t?Math.max(this.station,s):s,this.phase=t,!0)}}const Nd=e=>e.error?"failed":e.is_complete?"ok":"running";function Ja(e){if(e==="after_subagent_created")return"spawn";switch(lr(e)){case"message":return"message";case"request":return"assembly";case"toolCall":return"dispatch";case"toolResult":return"result";case"thread":return"entry"}}function gF(e,t,n=null,r="reply"){const a=[],o=new Set;function s(m,g,v,_){const b=m.log;if(m.errors?.length)return a.push(...m.errors.map(P=>({logId:b.id,actionId:b.action_id??null,message:P}))),[];const C=[],y=Pd(b.hook_runs),A=r0(b.provider_tools),L=xa(b.hook_runs,b.id,"hook_runs",C),k=xa(b.provider_tools,b.id,"provider_tools",C);if(y.length!==L.length&&C.push({logId:b.id,field:"hook_runs",message:"Invalid hook fact"}),A.length!==k.length&&C.push({logId:b.id,field:"provider_tools",message:"Invalid provider fact"}),C.length)return a.push(...C.map(P=>({logId:b.id,actionId:null,message:`${P.field}: ${P.message}`}))),[];const S=b.action_sequence??0,T=[],B=b.action_sequence!=null,q=(P,U)=>T.push({events:P,sequence:B?U:T.length}),H=(P,U,V,Y={})=>({phase:V,row:b,caller:g,invocationId:_,action:{id:b.action_id??b.id,kind:P,name:U,detail:null,status:Nd(b),sequence:b.action_sequence??null,logId:b.id,depth:v,attempt:null,...Y}}),N=(P,U)=>H("hook",P.hook,Ja(P.stage),{id:P.actionId??`${b.id}:hook:${U}`,detail:P.stage,status:P.outcome==="ok"?"ok":"failed",sequence:P.sequence});if(!B){const P=["after_thread_created",...s0,...o0],U=V=>P.includes(V.stage)?P.indexOf(V.stage):P.length;y.sort((V,Y)=>U(V)-U(Y))}if(fi(b))return[H("runtime","Runtime error","failure",{detail:b.model||null,status:"failed"})];if(b.kind==="app")return[H("app",b.model,"entry",{detail:b.app_message??null,status:b.app_status==="error"||b.app_level==="error"?"failed":"ok"})];if(b.kind==="handler_execution")return[H("handler",b.model,"tool")];if(b.kind==="hook")return y.length?y.map(N):[N({hook:b.model,stage:b.prompt_name??"",outcome:b.error?"error":"ok",actionId:b.action_id??null,sequence:b.action_sequence??null},0)];if(b.kind==="tool_execution")q([H("invoke",b.prompt_name||b.model,"tool")],S),y.forEach((P,U)=>q([N(P,U)],P.sequence??S+1)),m.children.forEach(P=>q(s(P,g,v+1,b.action_id??b.id),P.log.action_sequence??S+1));else{const P=b.prompt_name,{calls:U,errors:V}=O6(b);a.push(...V.map(E=>({logId:E.logId,actionId:null,message:`${E.field}: ${E.message}`})));const Y=H("request",P||b.model_name||b.model||"Request","request",{detail:b.model_name||b.model||null,status:b.error_origin?.startsWith("tool:")?b.is_complete?"ok":"running":Nd(b),attempt:(t.get(b.id)??1)>1||b.retry_of_log_id?t.get(b.id)??2:null});y.forEach((E,X)=>{const re=Ja(E.stage);["entry","message","assembly"].includes(re)&&q([N(E,X)],E.sequence??S-1)}),q([Y],S);let $=S;y.forEach((E,X)=>{Ja(E.stage)==="dispatch"&&($=Math.max($,E.sequence??S),q([N(E,X)],E.sequence??S+1))}),A.forEach((E,X)=>{$=Math.max($,E.sequence??S),q([H("provider-tool",E.name,"provider-tool",{id:E.actionId??`${b.id}:provider:${X}`,sequence:E.sequence,status:E.failed?"failed":"ok"})],E.sequence??S+1)});const D=[...m.children];U.forEach((E,X)=>{const re=D.filter(Ee=>Ee.log.parent_action_id===E.id||Ee.log.action_id===E.id),ne=D.find(Ee=>(Ee.log.prompt_name||Ee.log.model)===E.name),de=re.length?re:ne?[ne]:[];E.name==="subagent_create"&&X===U.findIndex(Ee=>Ee.name==="subagent_create")&&de.push(...D.filter(Ee=>!de.includes(Ee)&&Ee.log.kind==="hook"&&Pd(Ee.log.hook_runs).some(ke=>ke.stage==="after_subagent_created")));for(const Ee of de)D.splice(D.indexOf(Ee),1);const ue=de.find(Ee=>Ee.log.kind==="tool_execution"),ae=de.find(Ee=>Ee.log.parent_action_id?.startsWith(`${b.id}:`))?.log.parent_action_id,xe=H("tool",E.name,"tool",{id:E.inferred&&ae?ae:E.id,sequence:E.sequence,status:E.outcome}),Re=ue?s(ue,P,v,E.id):[xe,...de.flatMap(Ee=>s(Ee,P,v+1,E.id))],Me=y.flatMap((Ee,ke)=>{if(Ee.stage!=="after_subagent_created"||E.name!=="subagent_create")return[];const ie=U.filter(me=>me.name==="subagent_create"&&(me.sequence??0)<=(Ee.sequence??0)),se=ie[ie.length-1];return se===E||!se&&X===U.findIndex(me=>me.name==="subagent_create")?[N(Ee,ke)]:[]});q([...Re,...Me],E.sequence??de[0]?.log.action_sequence??$+1+X)}),D.forEach(E=>q(s(E,P,v+1,_),E.log.action_sequence??Number.MAX_SAFE_INTEGER-1)),y.forEach((E,X)=>{Ja(E.stage)==="result"&&q([N(E,X)],E.sequence??Number.MAX_SAFE_INTEGER)});const W=b.side??n;r==="reply"&&v===0&&U.length===0&&!b.error&&b.is_complete&&W&&q([H("reply",`Side ${W==="a"?"B":"A"}`,"reply",{id:`${b.id}:reply`,detail:null,sequence:null,status:"ok"})],Number.MAX_SAFE_INTEGER)}return T.sort((P,U)=>P.sequence-U.sequence).flatMap(P=>P.events)}const i=s(e,null,0,null),d=new Map,p=new Set,f=[];for(const m of i){if(p.has(m.row.id)||o.has(m.action.id))continue;o.add(m.action.id);let g=d.get(m.row.id);if(g||(g=new mF,d.set(m.row.id,g)),!g.move(m.phase,m.row.id,m.action.id,m.action.kind==="hook"?m.action.detail??void 0:void 0)){a.push(...g.diagnostics.splice(0)),p.add(m.row.id);continue}f.push(m)}for(const[m,g]of d)i.find(v=>v.row.id===m)?.row.is_complete&&g.move("finish",m);return{events:f,diagnostics:a,stop:vF(e.log,d.get(e.log.id)??null,f)}}function vF(e,t,n){if(!e.stop_code||!e.is_complete||t&&t.phase!=="finish")return null;const r=pF[e.stop_code],a=r?[...n].reverse().find(o=>o.action.kind===r&&o.action.depth===0&&(r!=="hook"||o.action.status==="failed")):void 0;return{code:e.stop_code,logId:e.id,actionId:a?.action.id??null}}function pi(e){return{selectionId:e.selectionId,name:e.name,model:e.model,items:e.items,hooks:e.hooks,subPrompt:!1}}function es(e){return e.flatMap(t=>{if(t.kind!=="subprompt")return[];const n=t.circuit?{...pi(t.circuit),name:t.tool.name,model:t.circuit.model??t.model,subPrompt:!0}:{selectionId:t.selectionId,name:t.tool.name,model:t.model,items:[],hooks:[],subPrompt:!0};return[n,...es(n.items)]})}function l0(e){const t=[];for(const n of[e.sideA,e.sideB]){if(!n?.circuit)continue;const r=pi(n.circuit);t.push(r,...es(r.items))}return{block:e,prompts:t}}const yF=(e,t)=>e.agent.name===t||e.agent.id===t,hi=e=>[e.sideA,e.sideB].flatMap(t=>[...t?.items??[],...t?.circuit?.items??[]]);function i0(e,t){if(yF(e,t))return[e];for(const n of hi(e)){if(n.kind!=="subagent"||!n.agent)continue;const r=i0(n.agent,t);if(r)return[e,...r]}return null}function u0(e,t){return e?(t?i0(e,t):null)??[e]:[]}function bF(e,t){const n=u0(e,t),r=n[n.length-1];return r?l0(r):null}function As(e,t,n){if(!e||!t)return null;if(n){const r=es(n.items).find(a=>a.name===t);if(r)return r}return e.prompts.find(r=>r.name===t)??null}function No(e){return e.kind==="subagent"&&e.agent?Uf(e.selectionId):e.selectionId}const Od="provider:",Dd=e=>e.startsWith(Od)?e.slice(Od.length):e;function xF(e,t){const n=Dd(t);for(const r of e){const a=r.items.find(o=>o.tool.name===t||Dd(o.tool.name)===n);if(a)return a}return null}function kF(e,t,n){if(!e)return null;const r=t&&e.block.sideA?.circuit?.selectionId===t.selectionId?e.block.sideA:t&&e.block.sideB?.circuit?.selectionId===t.selectionId?e.block.sideB:nn(e,n),o=(r?[...r.items,...r.circuit?.items??[]]:hi(e.block)).filter(s=>s.kind==="subagent");return o.length===1?o[0]:null}function d0(e){return e.model?Hf(e.selectionId):null}function wF(e,t){for(const n of e){const r=n.hooks.find(a=>a.entry.id===t);if(r)return r}return null}function nn(e,t){return!e||!t?null:t==="a"?e.block.sideA:t==="b"?e.block.sideB:null}function ka(e,t){return!e||t!=="a"&&t!=="b"||!e.block.sideA||!e.block.sideB?null:t==="a"?it.message(e.block.selectionId):it.reply(e.block.selectionId)}function _F(e,t,n){if(!e)return null;const r=hi(e.block).filter(s=>s.kind==="subagent"),a=r.find(s=>s.tool.name===t);if(a)return a;const o=r.filter(s=>s.tool.relationship?.agent===n);return o.length===1?o[0]:null}function $F(e){const t=new Set([e.selectionId]);for(const r of e.items)t.add(No(r));if(!e.circuit)return t;const n=pi(e.circuit);for(const r of[n,...es(n.items)]){t.add(r.selectionId);const a=d0(r);a&&t.add(a);for(const o of r.items)t.add(No(o));for(const o of r.hooks)t.add(o.selectionId)}return t}function c0(e,t){if(!e||t.length===0)return null;for(const n of[e.block.sideA,e.block.sideB]){if(!n)continue;const r=$F(n);if(t.some(a=>r.has(a)))return n}return null}function Bd(e,t){const n=d0(t);return n||(t.subPrompt||!e?t.selectionId:[e.block.sideA,e.block.sideB].find(a=>a?.circuit?.selectionId===t.selectionId)?.selectionId??t.selectionId)}const IF=new Set(["session_fail","hook_blocked","repeated_tool_error","step_error"]);function SF(e,t,n,r){const a=t?.block.selectionId,o=nn(t,n),s=d=>({kind:"pill",id:d}),i=d=>d?{kind:"component",id:d}:null;switch(e.code){case"stop_on_response":return a&&o?s(_n.stopOnResponse(a,o.side.id)):null;case"max_session_turns":return a?s(_n.sessionTurns(a)):null;case"max_side_steps":return o?s(_n.busRule(o.selectionId)):null;case"stop_tool":case"session_stop":case"session_fail":case"hook_blocked":return i(r.find(d=>d.id===e.actionId)?.componentId);case"awaiting_human":return i([t?.block.sideA,t?.block.sideB].find(d=>d?.side.mode==="human")?.selectionId);default:return null}}function CF(e,t){const n=As(t.index,e.log.prompt_name,null),r=t.continues||n?.subPrompt||nn(t.index,e.log.side??t.side)?.side.stopOnResponse===!1?"continue":"reply",a=gF(e,t.attempts,t.side,r),o=[],s=[],i=new Set,d=new Set,p=new Set,f=new Map;for(const g of a.events){const{row:v,action:_}=g,b=As(t.index,g.caller,null),C=As(t.index,v.prompt_name,b),y=C?[C]:b?[b]:t.index?.prompts??[];let A=null,L,k=null,S=!1,T=!1;switch(_.kind){case"hook":{A=wF(y,_.name)?.selectionId??null,S=!0,A&&f.get(A)?.mark!=="failed"&&f.set(A,{id:A,mark:_.status==="failed"?"failed":"called"});break}case"request":A=C?Bd(t.index,C):null,C?.subPrompt&&(L=C.selectionId,p.add(C.selectionId)),C&&d.add(C.selectionId),C?.model&&d.add(C.model.selectionId);break;case"tool":case"invoke":case"provider-tool":{const q=_.kind==="invoke"?b?[b]:t.index?.prompts??[]:y,H=q.flatMap(P=>P.items).find(P=>P.tool.name===_.name)??null,N=(_.kind==="provider-tool"?xF(q,_.name):H)??(In.has(_.name)?kF(t.index,C??b,v.side??t.side):null);T=_.kind!=="provider-tool"&&!In.has(_.name)&&(!!N?.tool.unoffered||!N&&C!==null),A=N?No(N):T&&C?Bd(t.index,C):null,A&&!T&&i.add(A),N&&d.add(N.selectionId);break}case"reply":{if(C?.subPrompt)continue;const q=(v.side??t.side)==="a"?"b":"a";if(k=ka(t.index,q),A=nn(t.index,q)?.selectionId??null,!k||!A)continue;break}case"handler":{A=[t.index?.block.sideA,t.index?.block.sideB].find(H=>H?.side.mode==="handler"&&H.side.handlerName===v.model)?.selectionId??nn(t.index,v.side??t.side)?.selectionId??null;break}case"runtime":A=nn(t.index,v.side??t.side)?.selectionId??null;break}const B=o.length+1;o.push({..._,executionPhase:g.phase,componentId:A,ordinal:B,...L?{entryComponentId:L}:{},...T?{status:"failed",detail:"not offered to this prompt"}:{}}),k?s.push({kind:"wire",id:k,ordinal:B}):A&&s.push({kind:S?"hook":"component",id:A,ordinal:B}),A&&_.kind!=="request"&&d.add(A)}const m=a.stop?{code:a.stop.code,target:SF(a.stop,t.index,e.log.side??t.side,o),failed:IF.has(a.stop.code)}:null;return{actions:o,stops:s,calledIds:[...i],nodeIds:[...d],scopeIds:[...p],hookMarks:[...f.values()],subagentCalls:o.filter(g=>In.has(g.name)).length,diagnostics:a.diagnostics,stopBoundary:m}}const TF=new Set(["human_message","api","side_reply","effect","endpoint","subagent_result","subagent_activation","thread_created","parent_message","runtime"]);function MF(e){return TF.has(e)}const mi=e=>e==="a"?"b":e==="b"?"a":null;function pl(e,t,n){const r=mi(t);switch(e){case"human_message":return"Human message";case"api":return n?`API · ${n} message`:"API message";case"side_reply":return r?`Reply from side ${r.toUpperCase()}`:"Reply from the other side";case"effect":return n?`Effect · ${n}`:"Scheduled effect";case"endpoint":return n?`Endpoint · ${n}`:"Endpoint call";case"subagent_result":return"Subagent result";case"subagent_activation":return"Call from the parent thread";case"thread_created":return"Thread created";case"parent_message":return"Message from the parent thread";case"runtime":return"Runtime event";case"unknown":return"Unknown source"}}function AF(e,t){const n=nn(t,mi(e));return n&&n.side.mode!=="human"?"side_reply":"unknown"}function LF(e,t,n,r){const a=e.nodes[0].log,o=e.attributed&&a.trigger_kind?a.trigger_kind:null,s=o?MF(o)?o:"runtime":AF(t,n),i=a.trigger_source_id??null,d=i?r?.messages.get(i):void 0,p=s==="effect"&&i?r?.effects.get(i)??null:s==="api"?d?.role??null:s==="endpoint"?a.endpoint_name??null:null;return{kind:s,label:pl(s,t,p),inferred:!o,sourceId:i,threadId:a.trigger_thread_id??null,logId:a.trigger_log_id??null,silent:d?.silent??!1}}const RF={tool_execution:"tool",handler_execution:"handler",hook:"hook",app:"app"};function EF(e){return fi(e)?"runtime":RF[e.kind??""]??"request"}function PF(e,t){if(t==="runtime")return{label:"Runtime error",detail:e.model||null};if(t==="request"){const n=e.model_name||e.model||null,r=e.prompt_name||n||"Request";return{label:r,detail:n===r?null:n}}return t==="tool"?{label:e.prompt_name||e.model,detail:null}:t==="hook"?{label:e.model,detail:e.prompt_name}:t==="app"?{label:e.model,detail:e.app_message??null}:{label:e.model,detail:null}}function Fd(e,t,n,r){const a=u0(e,t),o=a[a.length-1];return{index:o?l0(o):null,diagramKey:n,provenance:r,outerBlocks:a.slice(1).map(s=>s.selectionId),blockTags:a.map(s=>s.selectionId)}}function jd(e){return Ea(e).find(t=>t.definition_hash)?.definition_hash??null}function NF(e,t){return t||e.some(n=>n.error)?"failed":e.some(n=>!n.is_complete)?"running":"ok"}function OF(e,t,n,r,a,o){const s=e.log,i=Ea(e),d=EF(s),p=CF(e,{index:r.index,attempts:a,side:n.side,continues:o}),f=p.stops.filter(g=>g.kind==="component").map(g=>g.id),m=nn(r.index,s.side??n.side)??c0(r.index,f);return{id:`${t}:${s.id}`,kind:d,logId:s.id,logIds:[...new Set(i.map(g=>g.id))],threadId:t,run:n,workIndex:0,workCount:0,...PF(s,d),createdAt:s.created_at,status:NF(i,p.actions.some(g=>g.status==="failed")),retry:!!s.retry_of_log_id,error:i.find(g=>g.error)?.error??null,actions:p.actions,stops:p.stops,route:f,calledIds:p.calledIds,nodeIds:p.nodeIds,scopeIds:[...new Set([...r.outerBlocks,...p.scopeIds])],containerIds:[...m?[m.selectionId]:[],...r.blockTags],hookMarks:p.hookMarks,diagramKey:r.diagramKey,provenance:r.provenance,definitionChanged:!1,side:s.side??null,turn:s.turn??null,session:s.session??null,stopCode:[...i].reverse().find(g=>g.stop_code)?.stop_code??null,stopBoundary:p.stopBoundary,subagentCalls:p.subagentCalls,subagent:null,diagnostics:p.diagnostics}}const qd=new Set(["parent_message","subagent_activation","subagent_result"]),DF=(e,t)=>`${e}::source:${t}`;function BF(e){return[e.block.sideA,e.block.sideB].some(t=>t?.circuit?.hooks.some(n=>lr(n.entry.hook)==="thread"))}function FF(e,t,n){const r=e.trigger.kind,a=nn(n,e.side)??c0(n,t.route),o=nn(n,mi(e.side)),s=ka(n,e.side);if((r==="side_reply"||qd.has(r)||r==="human_message"&&o?.side.mode==="human")&&s&&o&&a)return{stops:[{kind:"wire",id:s,ordinal:null}],route:[o.selectionId,a.selectionId]};if(n&&r==="thread_created"&&BF(n)){const v=n.block.selectionId;return{stops:[{kind:"component",id:v,ordinal:null}],route:[v]}}const d=a&&n?a===n.block.sideA?"a":a===n.block.sideB?"b":null:null;if(!n||!a||!d||qd.has(r)){const v=a?[a.selectionId]:t.route.slice(0,1);return{stops:v.map(_=>({kind:"component",id:_,ordinal:null})),route:v}}const p=r==="thread_created"?"Thread created":r==="endpoint"&&e.trigger.label===pl("endpoint",null,null)?"Endpoint":r==="effect"&&e.trigger.label===pl("effect",null,null)?"Effect":r==="runtime"?"Runtime":r==="side_reply"?"Unknown source":e.trigger.label,f={id:DF(n.block.selectionId,`${d}:${p}`),label:p,side:d},m=[{kind:"component",id:f.id,ordinal:null},{kind:"wire",id:it.source(f.id),ordinal:null}],g=ka(n,d);return g&&n.block.sideA&&n.block.sideB&&m.push({kind:"wire",id:g,ordinal:null}),{stops:m,route:[f.id,a.selectionId],entrySource:{blockId:n.block.selectionId,source:f}}}function jF(e,t,n,r){const{stops:a,route:o,entrySource:s}=FF(t,n,r);return{...n,id:`${e}:trigger:${t.id}`,kind:"trigger",logId:n.logId,logIds:[],workIndex:0,label:t.trigger.label,detail:null,status:"ok",retry:!1,error:null,actions:[],stops:a,route:o,calledIds:[],nodeIds:o,scopeIds:n.scopeIds,hookMarks:[],definitionChanged:!1,stopCode:null,stopBoundary:null,subagentCalls:0,...s?{entrySource:s}:{}}}function qF(e,t,n){const r=new Set([ka(n,"a"),ka(n,"b")]);if(!e.stops.some(f=>f.kind==="wire"&&r.has(f.id)))return[e,t];let a=0;for(const f of t.actions){if(f.kind!=="hook"||f.depth!==0||lr(f.detail??"")!=="message")break;a+=1}if(a===0)return[e,t];const o=t.stops.findIndex(f=>f.ordinal===a),s=t.stops.slice(0,o+1),i=t.stops.slice(o+1).map(f=>({...f,ordinal:f.ordinal===null?null:f.ordinal-a})),d=new Set(s.filter(f=>f.kind==="hook").map(f=>f.id)),p=new Set(i.filter(f=>f.kind==="hook").map(f=>f.id));return[{...e,actions:t.actions.slice(0,a),stops:[...e.stops,...s],hookMarks:t.hookMarks.filter(f=>d.has(f.id))},{...t,actions:t.actions.slice(a).map(f=>({...f,ordinal:f.ordinal-a})),stops:i,route:i.filter(f=>f.kind==="component").map(f=>f.id),hookMarks:t.hookMarks.filter(f=>p.has(f.id))}]}function zd(e){const t=e.root.threadId,n=e.root.logs,r=cF(n),a=e.inherit,o=Fd(a?.model??e.model,e.agentName,a?.diagramKey??null,a?.provenance??"current"),s=new Map;function i(f){if(a||!f)return o;const m=e.snapshots?.get(f);if(!m)return{...o,provenance:e.failedSnapshots?.has(f)?"unavailable":"loading"};let g=s.get(f);return g||(g=Fd(m,e.agentName,f,"stored"),s.set(f,g)),g}const d=[];let p=null;for(const f of dF(a0(n))){const m=i(jd(f.nodes[0])),g=new Set(f.nodes.map(L=>L.log.prompt_name)),v=[m.index?.block.sideA,m.index?.block.sideB].find(L=>L?.circuit&&g.has(L.circuit.name)),_=f.nodes.find(L=>L.log.side)?.log.side??v?.side.id??null,b={id:f.key,trigger:LF(f,_,m.index,e.details),side:_},C=f.nodes.map((L,k)=>{const S=a?null:jd(L),T=f.nodes.slice(k+1).some(H=>!H.log.kind&&H.log.prompt_name===L.log.prompt_name),B=OF(L,t,b,k===0?m:i(S),r,T),q=!!(S&&p&&S!==p);return S&&(p=S),{...B,workIndex:k+1,workCount:f.nodes.length,definitionChanged:q}}),[y,A]=qF(jF(t,b,C[0],m.index),C[0],m.index);d.push(y,A,...C.slice(1))}return d}const zF=e=>{if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>typeof n=="string"):[]}catch{return[]}};function VF(e){const t=new Map;for(const n of e){if(!n.prompt_name||n.kind)continue;const r=zF(n.tools_called).filter(o=>!In.has(o));if(r.length===0)continue;const a=t.get(n.prompt_name)??new Set;for(const o of r)a.add(o);t.set(n.prompt_name,a)}return t}const HF=(e,t)=>`${e.selectionId}::unoffered:${t}`;function f0(e,t,n){const r=new Set(e.items.map(f=>f.tool.name)),a=[...t.get(e.name)??[]].filter(f=>!r.has(f)),o=e.items.map(f=>p0(f,t,n)),s=[...n.get(e.name)??[]].filter(f=>!e.items.some(m=>m.tool.name.replace(/^provider:/,"")===f)),i=o.some((f,m)=>f!==e.items[m]);if(a.length===0&&s.length===0&&!i)return e;const d=a.map(f=>({kind:"function",selectionId:HF(e,f),tool:{name:f,displayName:f,kind:"tool",description:"Not offered to this prompt",variables:[],config:{name:f},unoffered:!0}})),p=s.map(f=>({kind:"provider-tool",selectionId:`${e.selectionId}::output:${f}`,tool:{name:f,displayName:f,kind:"provider",description:"Recorded provider output",variables:[],config:{name:f}}}));return{...e,items:[...o,...d,...p]}}function p0(e,t,n){if(e.kind==="subprompt"&&e.circuit){const r=f0(e.circuit,t,n);return r===e.circuit?e:{...e,circuit:r}}if(e.kind==="subagent"&&e.agent){const r=h0(e.agent,t,n);return r===e.agent?e:{...e,agent:r}}return e}function Vd(e,t,n){if(!e)return e;const r=e.circuit?f0(e.circuit,t,n):null,a=e.items.map(s=>p0(s,t,n));return r!==e.circuit||a.some((s,i)=>s!==e.items[i])?{...e,circuit:r,items:a}:e}function h0(e,t,n){const r=Vd(e.sideA,t,n),a=Vd(e.sideB,t,n);return r===e.sideA&&a===e.sideB?e:{...e,sideA:r,sideB:a}}function UF(e,t){const n=VF(t),r=new Map;for(const a of t){if(!a.prompt_name||a.kind)continue;const o=r.get(a.prompt_name)??new Set;for(const s of r0(a.provider_tools))o.add(s.name);o.size&&r.set(a.prompt_name,o)}return n.size===0&&r.size===0?e:h0(e,n,r)}function KF(e){const t=new Map;for(const n of e){if(!n.entrySource)continue;const{blockId:r,source:a}=n.entrySource,o=t.get(r)??new Map;o.set(a.id,a),t.set(r,o)}return new Map([...t].map(([n,r])=>[n,[...r.values()].sort((a,o)=>a.id.localeCompare(o.id))]))}function Hd(e){return[...e].sort(([t],[n])=>t.localeCompare(n)).map(([t,n])=>`${t}=${n.map(r=>r.id).join(",")}`).join("|")}function hl(e,t){if(e.kind==="subprompt"&&e.circuit){const n=e.circuit.items.map(r=>hl(r,t));return n.some((r,a)=>r!==e.circuit?.items[a])?{...e,circuit:{...e.circuit,items:n}}:e}if(e.kind==="subagent"&&e.agent){const n=m0(e.agent,t);return n===e.agent?e:{...e,agent:n}}return e}function Ud(e,t){if(!e)return e;const n=e.items.map(s=>hl(s,t)),r=e.circuit?.items.map(s=>hl(s,t))??[],a=r.some((s,i)=>s!==e.circuit?.items[i]);return a||n.some((s,i)=>s!==e.items[i])?{...e,items:n,circuit:e.circuit&&a?{...e.circuit,items:r}:e.circuit}:e}function m0(e,t){const n=Ud(e.sideA,t),r=Ud(e.sideB,t),a=t.get(e.selectionId);return!a&&n===e.sideA&&r===e.sideB?e:{...e,sideA:n,sideB:r,...a?{entrySources:a}:{}}}function WF(e,t){return t.size===0?e:m0(e,t)}const GF="subagent_create",g0=e=>e.relationship||e.agentName||e.title||"Subagent";function JF(e,t,n,r){const a=new Set(e.logIds),o=[];for(const s of n){const i=new Map;for(const d of r.get(s.threadId)?.logs??[])!d.run_id||!d.trigger_log_id||!a.has(d.trigger_log_id)||d.trigger_thread_id&&d.trigger_thread_id!==t||i.set(d.run_id,d.trigger_action_id??null);for(const[d,p]of i)o.push({threadId:s.threadId,label:g0(s),runId:d,inferred:!1,...p?{actionId:p}:{}})}return o}function XF(e,t,n){const r=o=>({threadId:o.threadId,label:g0(o),runId:null,inferred:!0});let a=0;for(const o of t){if(o.threadId!==e.threadId||o.kind==="trigger")continue;const s=o.actions.filter(i=>i.name===GF).length;if(o.id===e.id){if(s===0)return[];const i=n.slice(a,a+s);return(i.length>0?i:n).map(r)}a+=s}return[]}function YF(e,t,n,r){if(!e||!n||e.subagentCalls===0)return[];const a=JF(e,n.threadId,n.children,r);return a.length>0?a:XF(e,t,n.children)}function ZF(e,t,n){return!t||!n?-1:e.findIndex(r=>r.threadId===t&&r.logIds.includes(n))}const QF=12,ej=4,v0=(e,t)=>e.filter(n=>n.run.id===t);function tj(e,t,n){const r=e.find(o=>o.kind==="trigger"&&(t.runId?o.run.id===t.runId:o.createdAt>=n.createdAt));if(!r)return[];if(r.session===null)return v0(e,r.run.id);const a=[];for(const o of e)if(!(o.createdAt<r.createdAt||o.session!==r.session)&&(a.push(o),o.stopCode&&(!t.runId||["session_stop","session_fail","max_session_turns"].includes(o.stopCode))))break;return a.filter(o=>o.id===r.id||o.kind!=="trigger"||o.actions.length>0)}function Ls(e,t,n){const r=e.actions.slice(t,n).map((i,d)=>({...i,ordinal:d+1})),a=e.stops.findIndex(i=>!i.leadIn),s=[...t===0?e.stops.slice(0,a<0?e.stops.length:a):[],...e.stops.filter(i=>i.ordinal!==null&&i.ordinal>t&&i.ordinal<=n).map(i=>({...i,ordinal:i.ordinal===null?null:i.ordinal-t}))];return{...e,id:t===0?e.id:`${e.id}:after:${t}`,actions:r,stops:s,route:s.filter(i=>i.kind==="component").map(i=>i.id),calledIds:e.calledIds.filter(i=>s.some(d=>d.id===i)),hookMarks:e.hookMarks.filter(i=>s.some(d=>d.kind==="hook"&&d.id===i.id))}}function y0(e,t){for(const n of e){if(n.log.id===t||n.aliases.some(a=>a.id===t))return[n];const r=y0(n.children,t);if(r.length>0)return[n,...r]}return[]}function nj(e){const t=e.log.prompt_name||e.log.model_name||e.log.model||null;return t&&e.log.kind==="tool_execution"?`tool ${t}`:t}const ln=e=>({kind:e.kind,id:e.id,ordinal:null,leadIn:!0}),rj=e=>({...e,stops:e.stops.map(t=>t.ordinal===null?{...t,leadIn:!0}:t)});function aj(e,t,n,r){const a=y0(a0(t.logs),n),o=a[a.length-1],s=a[a.length-2],i=new Set((o?Ea(o):[]).map(C=>C.id)),d=e.actions.filter(C=>i.has(C.logId));if(d.length===0)return null;const p=new Map(d.map((C,y)=>[C.ordinal,y+1])),f=d.map(C=>({...C,ordinal:p.get(C.ordinal)??C.ordinal})),m=d.find(C=>C.entryComponentId)?.entryComponentId??d[0].componentId,g=m?r?.branch(m)??null:null,_=[...m?g?[ln({kind:"component",id:g.ownerId}),ln({kind:"wire",id:g.wireId}),ln({kind:"component",id:m})]:[ln({kind:"wire",id:it.busStub(m)}),ln({kind:"component",id:m})]:[],...e.stops.flatMap(C=>{const y=C.ordinal===null?void 0:p.get(C.ordinal);return y===void 0?[]:[{...C,ordinal:y}]})],b=new Set(_.map(C=>C.id));return{step:{...e,id:`${e.id}:row:${n}`,logId:n,logIds:[...i],actions:f,stops:_,route:_.filter(C=>C.kind==="component").map(C=>C.id),calledIds:e.calledIds.filter(C=>b.has(C)),hookMarks:e.hookMarks.filter(C=>b.has(C.id)),subagentCalls:d.filter(C=>In.has(C.name)).length},origin:g?.ownerId??m??null,caller:s?nj(s):null}}function Kd(e,t,n){if(!e.retry||!e.logId)return e;const r=new Map(n.logs.map(i=>[i.id,i.retry_of_log_id??null])),a=new Set;let o=e.logId;for(let i=r.get(o);i&&!a.has(i);i=r.get(o))a.add(o),o=i;const s=t.findIndex(i=>i.kind!=="trigger"&&i.logIds.includes(o));return s>=0&&s<t.indexOf(e)?t[s]:e}function b0(e,t,n){const r=n?.wireEnds(e.id);return r?t==="from"!=!!e.reverse?r.from:r.to:null}function oj(e,t){const n=e.find(a=>a.stops.length>0),r=n?.stops[0];return!n||!r?e[0]?.route[0]??null:r.kind==="wire"?b0(r,"from",t)??n.route[0]??null:r.id}function sj(e,t){const n=[...e].reverse().find(a=>a.stops.length>0),r=n?.stops[n.stops.length-1];return!n||!r?null:r.kind!=="wire"?r.id:b0(r,"to",t)??n.actions.find(a=>a.ordinal===r.ordinal)?.componentId??n.route[n.route.length-1]??null}function lj(e,t){const n=e[e.length-1],r=n?.stops[n.stops.length-1];if(!n||r?.kind!=="hook"||r.ordinal===null)return e;const a=n.actions.find(s=>s.ordinal===r.ordinal);if(a?.kind!=="hook"||lr(a.detail??"")!=="toolResult")return e;const o=t?.returnPath(r.id);return o?[...e.slice(0,-1),{...n,stops:[...n.stops,{kind:"wire",id:o.wireId,ordinal:null}]}]:e}function ij(e,t,n){const r=e[ZF(e,t,n)];if(n!==null)return r?.id??null;const a=[...e].reverse().find(o=>o.kind!=="trigger")??e[e.length-1];return(r??a)?.id??null}function uj(e){const{data:t,entryId:n}=e,r=n===null?void 0:e.steps.find(T=>T.id===n);if(!t||!r)return{entryId:null,steps:[],lead:null,origin:null,landing:null,caller:null,wanted:[],diagnostics:[]};const a=e.diagram?.(r)??null,o=new Set,s=[],i=T=>e.loaded.has(T)||e.failed.has(T);function d(T,B,q,H,N){return T.flatMap(P=>{const U=P;if(s.push(...U.diagnostics??[]),U.subagentCalls===0||H>=ej)return[U];const V=q.children.slice(0,QF).filter(ae=>!N.has(ae.threadId)),Y=V.filter(ae=>!i(ae.threadId));for(const ae of Y)o.add(ae.threadId);if(Y.length>0)return[U];const $=YF(U,B,q,e.loaded).flatMap(ae=>{const xe=V.find(ke=>ke.threadId===ae.threadId),Re=e.loaded.get(ae.threadId);if(!xe||!Re)return[];const Me=e.childSteps(xe,Re,U),Ee=tj(Me,ae,U);return Ee.length>0?[{link:ae,child:xe,data:Re,all:Me,run:Ee}]:[]}),D=ae=>ae.run[0]?.createdAt??0,W=$.every(ae=>ae.link.inferred)?[...$].sort((ae,xe)=>D(ae)-D(xe)).slice(0,U.subagentCalls):$,E=new Set([...N,q.threadId]),X=[...W],re=[];let ne=0,de=[];const ue=ae=>(de.length>0&&(ae.stops=[...de,...ae.stops]),de=[],ae);for(const[ae,xe]of U.actions.entries()){if(ae<ne||!In.has(xe.name))continue;const Re=X.findIndex(fe=>fe.link.actionId===xe.id),Me=U.actions.filter(fe=>fe.logId===xe.logId&&In.has(fe.name)).length,Ee=Re>=0?Re:X.findIndex(fe=>!fe.link.actionId||Me===1&&fe.link.actionId.startsWith(`${xe.logId}:`));if(Ee<0)continue;const ke=X.splice(Ee,1)[0],ie=e.relationship?.(U,ke.child);let se=ae+1;for(;U.actions[se]?.kind==="hook"&&U.actions[se]?.detail==="after_subagent_created";)se+=1;const me=Ls(U,ne,se),pe=me.actions.slice(ae+1-ne);if(ie&&pe.length>0){const fe=new Map(pe.flatMap(ee=>ee.componentId?[[ee.componentId,ep(ee.componentId,ie.blockId)]]:[])),Te=new Set(pe.map(ee=>ee.ordinal));for(const ee of pe)ee.componentId&&(ee.componentId=fe.get(ee.componentId)??ee.componentId);me.stops=me.stops.map(ee=>ee.kind==="hook"&&ee.ordinal!==null&&Te.has(ee.ordinal)?{...ee,id:fe.get(ee.id)??ee.id}:ee),me.hookMarks=me.hookMarks.map(ee=>({...ee,id:fe.get(ee.id)??ee.id}));const Z=me.stops.filter(ee=>ee.ordinal!==null&&Te.has(ee.ordinal));me.stops=[...me.stops.filter(ee=>!(ee.ordinal!==null&&Te.has(ee.ordinal))),...Z]}if(ie){const fe=me.actions[ae-ne],Te=fe.componentId;fe.componentId=ie.chipId;const Z=me.stops.filter(ee=>ee.ordinal!==null&&ee.ordinal>fe.ordinal);me.stops=[...me.stops.filter(ee=>ee.ordinal!==fe.ordinal&&!Z.includes(ee)),{kind:"component",id:ie.chipId,ordinal:fe.ordinal},...Z],me.route=me.stops.filter(ee=>ee.kind==="component").map(ee=>ee.id),me.calledIds=[...me.calledIds.filter(ee=>ee!==Te),ie.chipId]}re.push(ue(me));const Fe=d(ke.run,ke.all,ke.data,H+1,E);re.push(...Fe.map((fe,Te)=>{const Z=Te===0&&ie?[{kind:"wire",id:pe.length>0?it.linkOn(ie.blockId):it.link(ie.blockId),ordinal:null},{kind:"component",id:ie.blockId,ordinal:null},{kind:"wire",id:it.entry(ie.blockId),ordinal:null}]:[];return{...fe,stops:[...Z,...fe.stops],subagent:fe.subagent??{label:ke.link.label,inferred:ke.link.inferred,...ke.child.instance?{instance:ke.child.instance}:{},...ke.child.agentName?{agent:ke.child.agentName}:{}}}})),de=ie?[it.blockReturn(ie.blockId),it.returns(ie.blockId)].map(fe=>({kind:"wire",id:fe,ordinal:null})):[],ne=se}return ne<U.actions.length?re.push(ue(Ls(U,ne,U.actions.length))):de.length>0&&re.push(ue(Ls(U,ne,ne))),re.length>0?re:[U]})}const p=(T,B,q)=>{const H=lj(T,a);return{entryId:r.id,steps:H,lead:B,origin:q?.origin??oj(H,a),landing:sj(H,a),caller:q?.caller??null,wanted:[...o],diagnostics:s}},f=e.logId&&e.logId!==r.logId&&r.logIds.includes(e.logId)?aj(r,t,e.logId,a):null;if(f)return p(d([f.step],e.steps,t,0,new Set),null,f);const m=v0(e.steps,r.run.id),g=Kd(r,m,t)!==r,v=m.slice(0,m.indexOf(Kd(r,m,t))),_=v.filter(T=>T.kind!=="trigger"),b=_[_.length-1]??null,C=b?[...b.actions].reverse().find(T=>["tool","provider-tool","invoke"].includes(T.kind)&&T.depth===0)??[...b.actions].reverse().find(T=>T.entryComponentId):void 0,y=r.kind==="tool"&&C?.kind==="invoke",A=y?null:b,L=v.filter(T=>T.kind==="trigger"),k=y||g?L.map(T=>({...T,id:`${T.id}:lead:${r.logId}`,actions:[],stops:T.stops.filter(B=>B.ordinal===null).map(ln),hookMarks:[],retry:g})):L.map(rj),S=d(A?[r]:[...k,r],e.steps,t,0,new Set);if(A&&S[0]){const T=C?.entryComponentId??C?.componentId;T&&(S[0]={...S[0],stops:[ln({kind:"component",id:T}),...S[0].stops]})}if(!A&&r.run.trigger.kind==="subagent_result"){const T=t.children.find(H=>H.threadId===r.run.trigger.threadId),B=T?e.relationship?.(r,T):null,q=S.findIndex(H=>H.kind==="trigger");B&&q>=0&&(S[q]={...S[q],stops:[ln({kind:"component",id:B.blockId}),ln({kind:"wire",id:it.returns(B.blockId)})],route:[B.blockId,B.chipId],scopeIds:[...new Set([...S[q].scopeIds,B.blockId])]})}return p(S,A,null)}const Wd=new WeakMap;function dj(e){if(!e)return null;const t=Wd.get(e);if(t)return t;const n=new Map(e.wires.map(o=>[o.id,o])),r=new Map(e.components.map(o=>[o.id,o.containerId??null])),a={branch(o){const s=r.get(o),i=n.get(it.busStub(o))??(s?n.get(it.busStub(s)):void 0);return i?{ownerId:i.from,wireId:i.id}:null},returnPath(o){const s=n.get(it.busTap(o)),i=s?n.get(it.busReturn(s.from)):void 0;return i?.style==="return"?{wireId:i.id}:null},wireEnds(o){const s=n.get(o);return s?{from:s.from,to:s.to}:null}};return Wd.set(e,a),a}function cj(e,t,n,r,a){let o=t,s=0,i=null;const d=new Map,p=(m,g)=>{const v=Tp({realtimeLogs:m,httpLogs:[],pendingQueuedTools:d},g);return d.clear(),v.pendingQueuedTools.forEach((_,b)=>d.set(b,_)),v.realtimeLogs.sort((_,b)=>_.created_at-b.created_at)},f=new cc({url:m=>{const g=window.location.protocol==="https:"?"wss:":"ws:";return fc(`${g}//${window.location.host}${He(`/api/threads/${encodeURIComponent(e)}/logs`)}`,m)}},{onFrame:m=>{try{const g=Cp(JSON.parse(m.data));if(!g)return;i?.push(g),o=p(o,g),r(o)}catch{a("Failed to parse child log update")}},onReconnected:()=>{const m=++s,g=[];i=g,n().then(v=>{m===s&&(o=g.reduce(p,v),i=null,r(o))}).catch(v=>{m===s&&(i=null,a(v instanceof Error?v.message:"Child log recovery failed"))})},onError:m=>a(m.message)},{reconnectAuthGate:$l,canReconnect:()=>!Il(),onAuthorized:_l});return f.connect(),()=>{s++,i=null,f.disconnect()}}const fj=e=>e.reduce((t,n)=>t+(n.tools_called?.includes("subagent_create")?1:0),0);function pj(e){const t=Mp(e,{limit:oi,order:"asc",enableWebSocket:!0}),n=Dt([]),r=Dt(new Map),a=R(new Set),o=Dt(new Set),s=R(null),i=new Map,d=new Map,p=()=>{for(const S of d.values())S();d.clear()};mc(()=>{C++,p()});const f=Dt({effects:new Map,messages:new Map}),m=Dt(new Map);function g(S,T){const B=`${S}:${T.id}`,q=ai(T),H={id:T.id,tool_results:q.tool_results??m.value.get(B)?.tool_results};m.value=new Map([...m.value,[B,H]]),m.value.size>128&&m.value.delete(m.value.keys().next().value??"")}const v=(S,T)=>T.map(B=>D6(B,m.value.get(`${S}:${B.id}`))),_=new Set;let b=!1,C=0;async function y(S){const T=C;try{const B=await sl(S);T===C&&(n.value=B)}catch(B){T===C&&(s.value=Ve(B))}}ve(e,S=>{C++,p(),m.value=new Map([...m.value].filter(([T])=>S&&T.startsWith(`${S}:`))),n.value=[],r.value=new Map,a.value=new Set,o.value=new Set,s.value=null,i.clear(),f.value={effects:new Map,messages:new Map},_.clear(),b=!1,t.disconnectWebSocket(),S&&(t.connectWebSocket(),y(S))},{immediate:!0}),ve(()=>fj(t.logs.value),(S,T)=>{const B=e.value;B&&T!==void 0&&S>T&&y(B)}),ve(()=>t.logs.value.some(S=>S.trigger_kind==="effect"),S=>{const T=e.value;if(!T||!S||b)return;b=!0;const B=C;V6(T).then(q=>{B===C&&(f.value={...f.value,effects:q})}).catch(()=>{})},{immediate:!0});function A(S,T){const B=`${S}:${T}`;if(_.has(B))return;_.add(B);const q=C;H6(S,[T]).then(H=>{q!==C||H.size===0||(f.value={...f.value,messages:new Map([...f.value.messages,...H])})}).catch(()=>{})}function L(S){if(r.value.has(S)||o.value.has(S))return Promise.resolve();const T=i.get(S);if(T)return T;const B=C;a.value=new Set([...a.value,S]);const q=Promise.all([ll(S),sl(S)]).then(([H,N])=>{B===C&&(r.value=new Map([...r.value,[S,{threadId:S,logs:H,children:N}]]),d.set(S,cj(S,H,()=>ll(S),P=>{B===C&&(r.value=new Map([...r.value,[S,{threadId:S,logs:P,children:N}]]))},P=>{B===C&&(s.value=P)})))}).catch(H=>{B===C&&(s.value=Ve(H),o.value=new Set([...o.value,S]))}).finally(()=>{i.delete(S);const H=new Set(a.value);H.delete(S),a.value=H});return i.set(S,q),q}return{root:x(()=>e.value?{threadId:e.value,logs:v(e.value,t.logs.value),children:n.value}:null),loadedChildren:x(()=>new Map([...r.value].map(([S,T])=>[S,{...T,logs:v(S,T.logs)}]))),rememberDetail:g,loadingChildren:a,failedChildren:o,loadChild:L,details:f,loadTriggerMessage:A,isLoading:x(()=>t.isFetching.value&&t.logs.value.length===0),live:t.wsConnected,error:x(()=>{const S=t.error.value;return S?Ve(S):s.value??t.wsError.value}),truncated:x(()=>t.hasMore.value)}}const ia=1.5,un=(e,t)=>Math.abs(e-t)<=ia;function hj(e,t){const n=t.x+t.width,r=t.y+t.height,a=e.x>=t.x-ia&&e.x<=n+ia,o=e.y>=t.y-ia&&e.y<=r+ia;return!a||!o?!1:un(e.x,t.x)||un(e.x,n)||un(e.y,t.y)||un(e.y,r)}function mj(e,t){let n=null;for(const r of[...e.components,...e.frames])hj(t,r)&&(!n||r.width*r.height<n.width*n.height)&&(n=r);return n}function gj(e,t){return un(e.y,t.y+t.height)&&!un(e.x,t.x)&&!un(e.x,t.x+t.width)}function vj(e,t){const n=un(e.x,t.x),r=un(e.x,t.x+t.width);if(n!==r)return n?"left":"right";const a=t.x+t.width/2;return Math.abs(e.x-a)<.5?null:e.x<a?"left":"right"}function yj(e,t){const n=e==="start"?t:[...t].reverse(),r=n[0];if(!r)return null;const a=n.find(o=>Math.abs(o.x-r.x)>=.5);return a?a.x>r.x?"left":"right":null}const ml={start:"left",finish:"right"},bj=2;function Gd(e,t,n){const r=t==="start"?n[0]:n[n.length-1],a=e?mj(e,r):null,o=(a?vj(r,a):null)??yj(t,n)??ml[t];return{kind:t,x:r.x,y:r.y,lean:o,hangs:a?gj(r,a):!1}}function xj(e,t){const n=t.filter(i=>i.length>0),r=n[0],a=n[n.length-1];if(!r||!a)return[];const o=Gd(e,"start",r),s=Gd(e,"finish",a);return Math.hypot(s.x-o.x,s.y-o.y)>bj?[o,s]:[{...o,lean:ml.start},{...s,lean:ml.finish}]}function kj(e,t){const n=e.stops.findIndex(r=>r.ordinal!==null&&r.ordinal>=t);return n<0?e.stops:e.stops[n].ordinal===t?e.stops.slice(0,n+1):e.stops.slice(0,n)}function wj(e,t,n,r=[]){const o=(e.actions.every(d=>d.ordinal<=t)?e.stops:kj(e,t)).filter(d=>d.kind!=="component"||d.ordinal!==null||n.has(d.id)),s=new Set(o.map(d=>d.id)),i=[...new Set([...o.filter(d=>d.kind==="component").map(d=>d.id),...e.route,...r])];return{...e,actions:e.actions.filter(d=>d.ordinal<=t),stops:o,route:i.filter(d=>n.has(d)),calledIds:e.calledIds.filter(d=>s.has(d)),hookMarks:e.hookMarks.filter(d=>s.has(d.id))}}function _j(e){const{steps:t,layoutFor:n}=e,r=e.includeNested??R(!0),a=x(()=>t.value.find(se=>se.kind!=="trigger")??t.value[0]??null),o=x(()=>n(a.value)),s=x(()=>tD(o.value,t.value)),i=x(()=>MD(s.value,r.value)),d=x(()=>i.value.length),p=x(()=>{const se=t.value[0];return se?{key:se.id,segments:s.value.segments,cues:s.value.cues,failed:t.value.some(me=>me.status==="failed"),dashed:Zp([...G9(o.value,s.value.segments),...rD(s.value,t.value)]),retried:aD(s.value,t.value),marks:xB(o.value,s.value.segments)}:null}),f=R(0),m=R(0),g=R(-1),v=R(!1),_=R(!1),b=Dt(null);let C=0;function y(se){const me=Math.min(d.value,Math.max(0,Math.round(se))),pe=Ga(i.value,me);f.value=me,m.value=me,g.value=pe.cue,v.value=!1,_.value=!1,b.value={id:++C,from:pe.at,fromCue:pe.cue,to:pe.at,toCue:pe.cue,instant:!0}}function A(se){const me=Math.min(d.value,Math.max(f.value,se)),pe=Ga(i.value,me),fe=!v.value?Ga(i.value,f.value):null;m.value=me,v.value=!0,b.value={id:++C,from:fe?fe.at:null,fromCue:fe?g.value:null,to:pe.at,toCue:pe.cue,instant:!1}}function L(se){se<=g.value||(g.value=se,f.value=Math.max(f.value,Math.min(m.value,Md(i.value,se))))}function k(se){se!==b.value?.id||!v.value||(v.value=!1,_.value=!1,f.value=m.value,g.value=Math.max(g.value,Ga(i.value,m.value).cue))}const S=x(()=>d.value>0&&f.value===d.value&&!v.value),T=x(()=>v.value&&_.value);function B(){d.value!==0&&(S.value&&y(0),A(d.value),_.value=!0)}function q(){v.value&&(_.value=!1,A(f.value+1))}function H(){y(0),B()}function N(){const se=T.value||!v.value?f.value:m.value;_.value=!1,A(se+1)}function P(){y(v.value?f.value:f.value-1)}function U(se){if(!se){y(d.value);return}y(0),B()}ve(()=>p.value,(se,me)=>{if(!se||!me||se.key!==me.key){y(0);return}v.value?A(m.value):y(f.value)}),ve(r,()=>{const se=T.value;y(Md(i.value,g.value)),se&&B()});const V=x(()=>s.value.cues.slice(0,g.value+1)),Y=x(()=>new Set(V.value.flatMap(se=>se.hookId?[se.hookId]:[]))),$=x(()=>new Set(V.value.flatMap(se=>se.step!==null?[se.step]:[]))),D=x(()=>new Set(V.value.flatMap(se=>se.componentId?[se.componentId]:[]))),W=x(()=>S.value?Number.POSITIVE_INFINITY:Math.max(0,...V.value.map(se=>se.ordinal??0))),E=x(()=>{const se=o.value,me=t.value.flatMap((fe,Te)=>{if(!S.value&&!$.value.has(Te))return[];const Z=W.value-s.value.offsets[Te],oe=S.value||Z>=fe.actions.length?new Set(fe.hookMarks.map(F=>F.id)):Y.value,Oe=se?Xp(se,fe):[];return[q9(wj(fe,Z,D.value,Oe),se,oe)]}),pe=me[me.length-1];if(!pe)return null;const Fe=J9(pe,me.slice(0,-1));return S.value?X9(Fe,se,X.value):Fe}),X=x(()=>t.value[t.value.length-1]?.stopBoundary??null),re=x(()=>xj(o.value,s.value.segments).filter(se=>se.kind==="start"||S.value)),ne=x(()=>s.value.actions),de=x(()=>LD(ne.value,r.value)),ue=x(()=>i.value[f.value-1]?.actions[0]?.ordinal??null),ae=x(()=>sD(o.value,ne.value));function xe(se){const me=se===null?void 0:ne.value.find(Fe=>Fe.ordinal===se),pe=me&&o.value?di(o.value,me.step,me.action):null;return pe?{x:pe.x,y:pe.y,width:pe.width,height:pe.height}:null}const Re=x(()=>{const se=new Map((o.value?.components??[]).map(me=>[me.id,me.kind]));return new Map(ne.value.flatMap(me=>{const pe=me.action.componentId?se.get(me.action.componentId):void 0;return pe?[[me.ordinal,pe]]:[]}))}),Me=x(()=>ae.value.flatMap(se=>{const me=se.counts.filter(pe=>pe.ordinal<=W.value);return me.length>0?[{...se,counts:me}]:[]})),Ee=x(()=>lD(o.value,ne.value)),ke=x(()=>iD(o.value,s.value,t.value)),ie=x(()=>nD(o.value,s.value.breaks));return{entryStep:a,stopBoundary:X,layout:o,actions:ne,rows:de,unplaced:Ee,unreached:ke,breaks:ie,highlight:E,flags:re,badges:Me,partFor:xe,partKinds:Re,motion:p,travel:b,stepCount:d,position:f,progress:W,currentOrdinal:ue,travelling:v,playing:T,finished:S,reach:L,arrive:k,seek:y,play:B,pause:q,replay:H,next:N,previous:P,enter:U}}function $j(e){return[...new Set(e.flatMap(t=>t.definition_hash?[t.definition_hash]:[]))]}function Ij(e,t){const n=Dt(new Map),r=Dt(new Set),a=new Set;let o=null,s=0;async function i(p,f,m){try{const g=await Be.getJson(He(`/api/threads/${encodeURIComponent(p)}/definition-snapshots/${encodeURIComponent(f)}`)),v=await bR(g.snapshot);if(m!==s)return;if(!v){r.value=new Set([...r.value,f]);return}n.value=new Map([...n.value,[f,{model:v,layout:$o(v)}]])}catch{m===s&&(r.value=new Set([...r.value,f]))}}ve(()=>({id:e.value,hashes:$j(t.value)}),({id:p,hashes:f})=>{if(p!==o&&(o=p,s++,a.clear(),n.value=new Map,r.value=new Set),!!p)for(const m of f)a.has(m)||(a.add(m),i(p,m,s))},{immediate:!0});const d=x(()=>new Map([...n.value].map(([p,f])=>[p,f.model])));return{diagrams:n,models:d,failed:r}}function Sj(e){const t=x(e.diagram),n=np({agent:xt(()=>t.value.agent),sides:xt(()=>t.value.sides),children:xt(()=>t.value.children),models:xt(()=>t.value.models),toolsCatalog:xt(()=>t.value.toolsCatalog),hooks:xt(()=>t.value.hooks),refreshEpoch:xt(()=>t.value.refreshEpoch)}),r=pj(e.rootThreadId),a=Ij(e.rootThreadId,x(()=>r.root.value?.logs??[])),o=x(()=>[...r.root.value?.logs??[],...[...r.loadedChildren.value.values()].flatMap(E=>E.logs)]),s=(E,X)=>{const re=UF(E,o.value);return{model:re,layout:re===E?X:$o(re)}},i=x(()=>{const E=n.model.value;return E?s(E,n.layout.value):{model:null,layout:n.layout.value}}),d=x(()=>new Map([...a.diagrams.value].map(([E,X])=>[E,s(X.model,X.layout)]))),p=x(()=>new Map([...d.value].map(([E,X])=>[E,X.model]))),f=x(()=>{const E=r.root.value;return E?zd({root:E,model:i.value.model,snapshots:p.value,failedSnapshots:a.failed.value,agentName:e.agentName.value,details:r.details.value}):[]}),m=E=>(E?p.value.get(E)??null:null)??i.value.model,g=x(()=>ij(f.value,e.rootThreadId.value,e.selectedLogId.value)),v=x(()=>{const E=new Map,X=(re,ne,de)=>{const ue=`${re.threadId}|${de.diagramKey??""}|${de.provenance}`;let ae=E.get(ue);return ae||(ae=zd({root:ne,model:i.value.model,agentName:re.agentName??re.relationship,inherit:{model:m(de.diagramKey),diagramKey:de.diagramKey,provenance:de.provenance},details:r.details.value}),E.set(ue,ae)),ae};return uj({steps:f.value,data:r.root.value,entryId:g.value,logId:e.selectedLogId.value,loaded:r.loadedChildren.value,failed:r.failedChildren.value,childSteps:X,diagram:re=>dj((re.diagramKey?d.value.get(re.diagramKey)?.layout:null)??i.value.layout),relationship:(re,ne)=>{const de=re.threadId===e.rootThreadId.value?e.agentName.value:[...r.loadedChildren.value.values()].flatMap(ae=>ae.children).concat(r.root.value?.children??[]).find(ae=>ae.threadId===re.threadId)?.agentName??null,ue=_F(bF(m(re.diagramKey),de),ne.relationship,ne.agentName);return ue?.agent?{chipId:No(ue),blockId:ue.agent.selectionId}:null}})}),_=x(()=>v.value.steps),b=new Set(["human_message","api","side_reply","parent_message"]);ve(()=>_.value.flatMap(E=>{const X=E.kind==="trigger"?E.run.trigger:null;return X?.sourceId&&b.has(X.kind)?[`${E.threadId}
|
|
70
|
-
${X.sourceId}`]:[]}).join(" "),E=>{for(const X of E?E.split(" "):[]){const[re,ne]=X.split(`
|
|
71
|
-
`);r.loadTriggerMessage(re,ne)}},{immediate:!0});const C=x(E=>{const X=KF([...f.value,..._.value]);return E&&Hd(E)===Hd(X)?E:X}),y=E=>{if(!E.model||C.value.size===0)return E;const X=WF(E.model,C.value);return{model:X,layout:$o(X)}},A=x(()=>y(i.value)),L=x(()=>new Map([...d.value].map(([E,X])=>[E,y(X)])));ve(()=>v.value.wanted.join(`
|
|
72
|
-
`),()=>{for(const E of v.value.wanted)r.loadChild(E)},{immediate:!0});const k=E=>E?.diagramKey?L.value.get(E.diagramKey)??null:null,S=E=>k(E)?.layout??A.value.layout,T=Xn("agents.trace.includeSubagents",!0),B=Xn("agents.trace.autoplay",!0),q=_j({steps:_,layoutFor:S,includeNested:T}),H=x(()=>!r.isLoading.value&&_.value.length>0&&v.value.wanted.length===0),N=q.entryStep,P=x(()=>S(N.value)),U={model:x(()=>k(N.value)?.model??A.value.model),layout:P,componentsFor:E=>P.value?.components.filter(X=>X.selectionId===E)??[]},V=x(()=>{const E=new Map,X=ne=>E.set(ne.name,{name:ne.name,title:ne.title||ne.name,icon:ne.icon}),re=t.value.agent;re&&X(re);for(const ne of Object.values(t.value.children))ne.status==="loaded"&&X(ne.agent);return E}),Y=x(()=>{const E=e.agentName.value;return E?V.value.get(E)??{name:E,title:E,icon:null}:null}),$=x(()=>{const E=N.value;if(!E)return null;const X=[E.side?`Side ${E.side.toUpperCase()}`:null,E.turn!==null?`turn ${E.turn}`:null,E.session!==null?`session ${E.session}`:null].filter(re=>re!==null);return X.length>0?X.join(" · "):null}),D=()=>q.enter(B.value);function W(E){const X=E.target;X instanceof HTMLInputElement||X instanceof HTMLTextAreaElement||X instanceof HTMLElement&&X.getAttribute("role")==="slider"||E.metaKey||E.ctrlKey||E.altKey||(E.key===" "?(E.preventDefault(),q.playing.value?q.pause():q.play()):E.key==="ArrowRight"?(E.preventDefault(),q.next()):E.key==="ArrowLeft"?(E.preventDefault(),q.previous()):E.key==="Home"?(E.preventDefault(),q.seek(0)):E.key==="End"&&(E.preventDefault(),q.seek(q.stepCount.value)))}return{data:r,steps:_,session:q,current:N,shown:U,placement:$,lead:x(()=>v.value.lead),caller:x(()=>v.value.caller),diagnostics:x(()=>v.value.diagnostics),ready:H,outsideRead:x(()=>!r.isLoading.value&&e.selectedLogId.value!==null&&g.value===null),includeNested:T,autoplay:B,agent:Y,faces:V,enterEntry:D,handleKeydown:W}}const Jd=4,Cj=4,Tj=88;function Mj(e,t){const{available:n,widths:r,overflowWidth:a,active:o}=t;if(!n)return[...e];const s=g=>r[g]??Tj;if(e.reduce((g,v)=>g+s(v),0)+Jd<=n)return[...e];const d=Math.max(0,n-Jd-a-Cj),p=[];let f=0;for(const g of e)f+s(g)<=d&&(p.push(g),f+=s(g));if(e.includes(o)&&!p.includes(o)){for(;p.length>0&&f+s(o)>d;){const g=p.pop();if(g===void 0)break;f-=s(g)}p.push(o)}const m=new Set(p);return e.filter(g=>m.has(g))}const Aj={class:"flex h-full min-h-0 flex-col overflow-hidden"},Lj={class:"ui-border relative z-30 flex h-12 shrink-0 items-center border-b px-4"},Rj=["id","aria-selected","aria-controls","onClick"],Ej={class:"min-w-0 max-w-[11rem] truncate"},Pj=["aria-expanded"],Nj={key:0,class:"absolute right-0 top-full z-50 mt-1"},Oj={class:"min-w-0 truncate"},Dj={class:"pointer-events-none absolute -left-[9999px] top-0 flex h-8 items-center gap-1 opacity-0"},Bj={class:"max-w-[11rem] truncate"},Fj={type:"button",tabindex:"-1",class:"inline-flex h-7 w-7 items-center justify-center rounded-md"},jj={class:"min-h-0 flex-1 overflow-hidden"},qj=we({__name:"ThreadInspectorPane",props:{threadId:{},agentId:{},agentName:{},selectedLogId:{},selectedEffectId:{},selectedEffectRef:{},hoveredLogId:{},activeTab:{},filePath:{},filesRefreshKey:{},diagram:{},diagramLoading:{type:Boolean},diagramError:{}},emits:["logClick","logHover","logsLoaded","threadDeleted","threadUpdated","update:activeTab","update:filePath"],setup(e,{expose:t,emit:n}){const r=e,a=n,o=R(r.activeTab??"logs"),s=R(null),i=R(null),{thread:d}=Oo(x(()=>r.threadId)),p=R(0),f=R(0),m=R(0),g=x(()=>d.value?.agent?.id||r.agentId||null),v=x(()=>d.value?.agent?.name||r.agentName||g.value||null),_=x(()=>[{id:"logs",label:"Logs",icon:vc},{id:"files",label:"Files",icon:po,count:p.value},{id:"kv",label:"KV store",icon:Em,count:f.value},{id:"effects",label:"Effects",icon:Bn,count:m.value},{id:"info",label:"Thread settings",icon:Pm}]),b=R({}),C=R({}),y=R(null),A=R(null),L=R(0),k=R(null),S=R(null),T=R(0),B=R({}),q=R(36),H=R({left:0,width:0}),N=R(!1);let P=null;const U=F=>(F.id==="files"||F.id==="kv"||F.id==="effects")&&typeof F.count=="number"&&F.count>0,V=F=>F>99?"99+":String(F),Y=(F,ce)=>{ce instanceof HTMLButtonElement?b.value[F]=ce:delete b.value[F]},$=(F,ce)=>{ce instanceof HTMLButtonElement?C.value[F]=ce:delete C.value[F]},D=F=>{const ce=F instanceof HTMLButtonElement?F:null;k.value=ce},W=()=>{const F={};for(const ce of _.value){const he=C.value[ce.id];he&&(F[ce.id]=Math.ceil(he.getBoundingClientRect().width))}B.value=F,k.value&&(q.value=Math.ceil(k.value.getBoundingClientRect().width))},E=()=>{T.value=Math.floor(y.value?.getBoundingClientRect().width??0)},X=()=>{L.value=Math.ceil(A.value?.getBoundingClientRect().width??0),E(),W(),Qe(Re)},re=x(()=>{const F=Mj(_.value.map(he=>he.id),{available:T.value,widths:B.value,overflowWidth:q.value,active:o.value}),ce=new Set(F);return _.value.filter(he=>ce.has(he.id))}),ne=x(()=>{const F=new Set(re.value.map(ce=>ce.id));return _.value.filter(ce=>!F.has(ce.id))}),de=()=>{N.value=!1},ue=()=>{N.value=!N.value},ae=F=>{if(!N.value)return;const ce=F.target;S.value?.contains(ce)||de()},xe=F=>{F.key==="Escape"&&N.value&&(de(),k.value?.focus())},Re=()=>{const F=b.value[o.value];if(!F||!re.value.some(ce=>ce.id===o.value)){H.value={left:0,width:0};return}H.value={left:F.offsetLeft,width:F.offsetWidth}},Me=F=>(Oe("logs"),F()),Ee=Nm(L6,"response",{serializer:{read:E6,write:F=>F}}),ke=x(()=>!!r.diagram);Om(zp,{view:Ee,traceAvailable:ke});const ie=x(()=>ke.value&&Ee.value==="trace"&&o.value==="logs"&&!!r.threadId),se={agent:null,sides:[],children:{},models:{},toolsCatalog:{},hooks:{},refreshEpoch:0},me=R(!1),pe=R(null),Fe=Sj({rootThreadId:x(()=>me.value?pe.value?.threadId??r.threadId??null:null),agentName:x(()=>pe.value?.agentName??v.value),diagram:()=>r.diagram??se,selectedLogId:x(()=>pe.value?.logId??r.selectedLogId??null)});ve(()=>r.threadId,()=>{pe.value=null,me.value=ie.value}),ve(ie,F=>{F&&(me.value=!0)},{immediate:!0}),ve(()=>ie.value&&Fe.ready.value?`${r.threadId??""}|${r.selectedLogId??""}|${pe.value?.logId??""}`:null,F=>{F!==null&&Fe.enterEntry()},{flush:"post"});const fe=F=>(Oe("effects"),F()),Te=F=>{p.value=F},Z=F=>{f.value=F},ee=F=>{m.value=F},oe=F=>{fe(()=>i.value?.selectEffectByReference(F))},Oe=F=>{_.value.some(ce=>ce.id===F)||(F="logs"),o.value=F,de(),Qe(Re),a("update:activeTab",F)};return ve(()=>r.activeTab,F=>{F&&F!==o.value&&(o.value=F),Qe(Re)}),ve(_,F=>{F.some(ce=>ce.id===o.value)?Qe(X):Oe("logs")}),ve(()=>r.threadId,()=>{p.value=0,f.value=0,m.value=0}),ve(re,()=>{Qe(Re)}),ve(ne,F=>{F.length===0&&de()}),an(()=>{Qe(X),y.value&&(P=new ResizeObserver(X),P.observe(y.value)),window.addEventListener("resize",X),document.addEventListener("pointerdown",ae),document.addEventListener("keydown",xe)}),Ft(()=>{P?.disconnect(),window.removeEventListener("resize",X),document.removeEventListener("pointerdown",ae),document.removeEventListener("keydown",xe)}),t({scrollToLog:F=>Me(()=>s.value?.scrollToLog(F)),selectLogById:F=>Me(()=>s.value?.selectLogById(F)),removeLogsByIds:F=>s.value?.removeLogsByIds(F),loadUntilLogId:F=>Me(()=>s.value?.loadUntilLogId(F)),hasLog:F=>s.value?.hasLog(F)??!1,getLog:F=>s.value?.getLog(F)??null,setLoadingForLog:F=>Me(()=>s.value?.setLoadingForLog(F)),waitForLogRow:F=>Me(()=>s.value?.waitForLogRow(F)),selectEffectById:F=>fe(()=>i.value?.selectEffectById(F)),selectEffectByReference:F=>fe(()=>i.value?.selectEffectByReference(F))}),(F,ce)=>(l(),c("div",Aj,[u("div",Lj,[F.$slots["header-actions"]?(l(),c("div",{key:0,"aria-hidden":"true",class:"mr-2 shrink-0",style:nt({width:`${L.value}px`})},null,4)):M("",!0),u("div",{ref_key:"tabListRef",ref:y,class:"flex h-8 min-w-0 flex-1 items-center justify-center gap-1 overflow-visible"},[u("div",{class:J([h(kl),"min-w-0"]),role:"tablist","aria-label":"Thread inspector"},[u("div",{class:J(["pointer-events-none absolute bottom-0.5 left-0 top-0.5 rounded-md transition-transform duration-200 ease-out motion-reduce:transition-none",[h(so),H.value.width>0?"opacity-100":"opacity-0"]]),style:nt({width:`${H.value.width}px`,transform:`translateX(${H.value.left}px)`})},null,6),(l(!0),c(te,null,Ie(re.value,he=>(l(),c("button",{key:he.id,ref_for:!0,ref:Pe=>Y(he.id,Pe),id:`thread-inspector-tab-${he.id}`,type:"button",role:"tab","aria-selected":o.value===he.id,"aria-controls":`thread-inspector-panel-${he.id}`,class:J([h(Os),"relative z-10 min-w-0 shrink",o.value===he.id?h(lo):h(io)]),onClick:Pe=>Oe(he.id)},[(l(),K(ct(he.icon),{size:14,class:"shrink-0"})),u("span",Ej,w(he.label),1),U(he)?(l(),c("span",{key:0,class:J(["shrink-0",h(rs)])},w(V(he.count??0)),3)):M("",!0)],10,Rj))),128))],2),ne.value.length>0?(l(),c("div",{key:0,ref_key:"overflowRootRef",ref:S,class:"relative z-20 shrink-0"},[u("button",{ref:D,type:"button",class:J(["inline-flex h-7 w-7 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-neutral-100 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-neutral-800 dark:hover:text-neutral-100",N.value?"bg-neutral-100 text-neutral-900 dark:bg-neutral-800 dark:text-neutral-100":""]),"aria-label":"More inspector tabs","aria-expanded":N.value,"aria-haspopup":"menu",onClick:Je(ue,["stop"])},[j(h(Ni),{size:17})],10,Pj),N.value?(l(),c("div",Nj,[j(h(Dh),{width:"w-56",shadow:{offsetX:4,offsetY:4,intensity:.32}},{default:be(()=>[(l(!0),c(te,null,Ie(ne.value,he=>(l(),K(h(og),{key:he.id,active:o.value===he.id,onClick:Pe=>Oe(he.id)},{default:be(()=>[(l(),K(ct(he.icon),{class:"h-4 w-4 shrink-0 text-neutral-500 dark:text-neutral-400"})),u("span",Oj,w(he.label),1),U(he)?(l(),c("span",{key:0,class:J(["ml-auto shrink-0",h(rs)])},w(V(he.count??0)),3)):M("",!0)]),_:2},1032,["active","onClick"]))),128))]),_:1})])):M("",!0)],512)):M("",!0),u("div",Dj,[(l(!0),c(te,null,Ie(_.value,he=>(l(),c("button",{key:`measure-${he.id}`,ref_for:!0,ref:Pe=>$(he.id,Pe),type:"button",tabindex:"-1",class:J(h(Os))},[(l(),K(ct(he.icon),{size:14,class:"shrink-0"})),u("span",Bj,w(he.label),1),U(he)?(l(),c("span",{key:0,class:J(["shrink-0",h(rs)])},w(V(he.count??0)),3)):M("",!0)],2))),128)),u("button",Fj,[j(h(Ni),{size:17})])])],512),F.$slots["header-actions"]?(l(),c("div",{key:1,ref_key:"headerActionsRef",ref:A,class:"ml-2 flex shrink-0 items-center"},[gt(F.$slots,"header-actions")],512)):M("",!0)]),u("div",jj,[$t(j(l7,{id:"thread-inspector-panel-logs",role:"tabpanel","aria-labelledby":"thread-inspector-tab-logs",ref_key:"logsPaneRef",ref:s,class:"h-full","thread-id":e.threadId,"agent-name":v.value,"selected-log-id":e.selectedLogId,"hovered-log-id":e.hoveredLogId,onLogClick:ce[0]||(ce[0]=he=>a("logClick",he)),onLogHover:ce[1]||(ce[1]=he=>a("logHover",he)),onLogsLoaded:ce[2]||(ce[2]=he=>a("logsLoaded",he)),onEffectClick:oe,onNestedLogSelect:ce[3]||(ce[3]=he=>pe.value=he),onLogEvidence:h(Fe).data.rememberDetail},{trace:be(({hasPreviousLog:he,hasNextLog:Pe,previousLog:We,nextLog:Ue})=>[j(rF,{trace:h(Fe),agent:e.diagram?.agent??null,loading:e.diagramLoading??!1,error:e.diagramError??null,"has-previous-log":he,"has-next-log":Pe,onPreviousLog:We,onNextLog:Ue},null,8,["trace","agent","loading","error","has-previous-log","has-next-log","onPreviousLog","onNextLog"])]),_:1},8,["thread-id","agent-name","selected-log-id","hovered-log-id","onLogEvidence"]),[[zt,o.value==="logs"]]),$t(j(CN,{id:"thread-inspector-panel-files",role:"tabpanel","aria-labelledby":"thread-inspector-tab-files",class:"h-full","thread-id":e.threadId,path:e.filePath,"refresh-key":e.filesRefreshKey,active:o.value==="files","onUpdate:path":ce[4]||(ce[4]=he=>a("update:filePath",he)),onCountChanged:Te},null,8,["thread-id","path","refresh-key","active"]),[[zt,o.value==="files"]]),$t(j(uO,{id:"thread-inspector-panel-kv",role:"tabpanel","aria-labelledby":"thread-inspector-tab-kv",class:"h-full","thread-id":e.threadId,active:o.value==="kv",onCountChanged:Z},null,8,["thread-id","active"]),[[zt,o.value==="kv"]]),$t(j(LP,{id:"thread-inspector-panel-effects",role:"tabpanel","aria-labelledby":"thread-inspector-tab-effects",ref_key:"effectsPaneRef",ref:i,class:"h-full","thread-id":e.threadId,active:o.value==="effects","selected-effect-id":e.selectedEffectId,"selected-effect-ref":e.selectedEffectRef,onCountChanged:ee},null,8,["thread-id","active","selected-effect-id","selected-effect-ref"]),[[zt,o.value==="effects"]]),$t(j(w9,{id:"thread-inspector-panel-info",role:"tabpanel","aria-labelledby":"thread-inspector-tab-info",class:"h-full","thread-id":e.threadId,show:o.value==="info",onThreadDeleted:ce[5]||(ce[5]=he=>a("threadDeleted",he)),onThreadUpdated:ce[6]||(ce[6]=he=>a("threadUpdated"))},null,8,["thread-id","show"]),[[zt,o.value==="info"]])])]))}}),zj={class:"relative flex h-full min-h-0 flex-col overflow-hidden"},Vj={key:0,class:"border-b border-red-200 bg-red-50 px-6 py-3 text-sm text-red-800 dark:border-red-800 dark:bg-red-950/80 dark:text-red-100"},Hj={class:"relative flex min-w-0 flex-1 flex-col","aria-label":"Conversation"},Uj=["title"],Rs=288,Xd="rounded-2xl border border-neutral-200/80 bg-white p-2 shadow-lg shadow-black/5 dark:border-neutral-800 dark:bg-neutral-900 dark:shadow-black/40",uq=we({__name:"CompositionView",setup(e){const t=rr(),{selectedAgentId:n,setSelectedAgent:r}=Bh(),{selectedAgentId:a,selectedAgentDetail:o,selectedAgentSummary:s,sideCompositions:i,models:d,toolsCatalog:p,agents:f,hooks:m,loadingIndex:g,agentsKnown:v,loadingComposition:_,loadError:b,compositionError:C,loadIndex:y,refreshIndex:A,selectAgent:L,refreshComposition:k,isRouteSyncing:S}=bg(),T=x(()=>a.value||n.value),B=x(()=>Bs(t,!!T.value)),q=xC({agentId:T});function H(je){q.setMode(je)}const N=jh,P=x(()=>N.overview.value?Fh(N.overview.value,N.nowSeconds.value):new Map),{typeFilter:U,sortBy:V,sortDir:Y,handleSort:$,sortedAgents:D,filterTabs:W}=pv(f,P),E=x(()=>f.value.find(je=>je.id===T.value)??null),X=R(null),re=x(()=>B.value==="structure"?"structure":"threads"),ne=x(()=>B.value==="threads"||B.value==="structure"),de=x(()=>t.path===en&&yl(t.query)),ue=x(()=>!de.value&&Vr({known:v.value,agents:f.value},T.value));function ae(je,Le=re.value){if(je===a.value&&!de.value){Le!==B.value&&H(Le);return}X.value=null,r(je),q.openAgent(je,Le),L(je,!1)}ve(()=>t.query.agent,je=>{if(t.path!==en||g.value||S())return;const Le=typeof je=="string"?je:null;!Le||Le===a.value||(r(Le),L(Le,!1))});const xe=$v(),Re=x(()=>kv(xe.value)),Me=gv({available:Re,reloadAgents:()=>void y()}),Ee=x(()=>qh(t.query)),ke=x(je=>{const Le=zh(t.query),ze=de.value?Le:{...Le,agent:T.value};return je&&Vh(je,ze)?je:ze}),ie=Hh(),se=fv(ke,{onEvent:je=>{ye.handleRegistryEvent(je)},onReconnect:()=>{ye.handleReconnect(),ie.refetch(),b.value&&y()}}),me=Xn("agents.sessionSidebar.collapsed",!1),pe=mv(),Fe=R(null),fe=R(null),Te=R(0),{selectedThreadId:Z,selectedThread:ee,selectedMessageId:oe,selectedLogId:Oe,selectedEffectId:F,selectedEffectRef:ce,highlightedWorkblockLogId:he,hoveredLogId:Pe,hoveredWorkblockLogId:We,draftThreadId:Ue,isCreatingThreadDraft:Se,handleThreadsLoaded:ge,handleMessageClick:$e,handleMessageHover:_e,handleLogClick:De,handleLogHover:Xe,handleLogsLoaded:rt,handleLogsDeleted:kt,handleThreadDeleted:At,handleCreateThread:Lt,handleThreadCreated:Yt,handleCancelCreateThread:on,endThreadDraft:wt,handleThreadUpdated:jt}=xg({selectedAgentId:a,reloadThreads:se.reload,messagesPaneRef:Fe,logsPaneRef:fe}),G=x(()=>Uh(se.threads.value,ke.value)),le=x(()=>Z.value===Ue?null:Z.value),I=x(()=>se.threads.value.find(je=>je.id===le.value)??null),O=R(!1),z=R(0);ve(le,()=>{O.value=!1});const ye=bC({threadId:le,thread:I,threads:se.threads,sideCompositions:i,agents:f}),Q=hC(le),Ae=x(()=>{const je=new Map(se.threads.value.map(Ln=>[Ln.id,Ln])),Le=[];let ze=I.value?.parent?je.get(I.value.parent):void 0;for(;ze&&!Le.includes(ze);)Le.unshift(ze),ze=ze.parent?je.get(ze.parent):void 0;return Le});ve(()=>[se.isFinished.value,T.value,B.value,de.value,G.value],([je,Le,ze,Ln,$i])=>{if(!je||ze!=="threads"||!Le&&!Ln||Z.value)return;const I0=new Set($i.map(cr=>cr.id)),S0=$i.find(cr=>(!cr.parent||!I0.has(cr.parent))&&(Ln||cr.agent_id===Le||cr.origin_agent_id===Le))??null;ge(S0?.id??null)});function Ne(je){wt(),q.openThread(je)}function Ke(je,Le){if(de.value||ne.value&&je===T.value){Ne(Le);return}wt(),q.openAgentThread(je,Le)}Kh(Ke),Wh(()=>N.overview.value?.attention??null),Gh(()=>B.value!=="threads"||!T.value?[]:[{id:"new-thread",title:"New thread",subtitle:s.value?.title??void 0,keywords:["start","chat"],icon:"message-square-plus",run:Lt},{id:"toggle-inspector",title:"Toggle the inspector",subtitle:"Logs, files, and settings",keywords:["logs","panel"],icon:"panel-right",run:pe.toggle}]),ve(()=>[ee.value,a.value],([je,Le])=>{!je||je.parent||!Le||de.value||je.id!==le.value||je.agent_id===Le||Ke(je.agent_id,je.id)}),ve(()=>[de.value,ee.value,g.value],([je,Le,ze])=>{!je||!Le||ze||Le.id!==le.value||Le.agent_id!==a.value&&f.value.some(Ln=>Ln.id===Le.agent_id)&&L(Le.agent_id,!1)});function qe(je,Le,ze){if(ze){pe.open("effects"),Qe(()=>$e(je,Le,ze));return}pe.isOpen.value&&$e(je,Le)}async function ht(je,Le){pe.open("logs"),await Qe(),await $e(je,Le)}async function lt(){jt(),await A(),await k()}const vt=x(()=>o.value?.id||s.value?.id||T.value||null),An=x(()=>o.value?.name||s.value?.name||vt.value||null),Ht=R(null),{width:ur}=Ur(Ht),Gr=x(()=>{const je=me.value?0:Rs,Le=ur.value-je-A4;return Math.max(360,Math.min(pe.width.value,Le))}),Ut=R(!1),Pa=R(null),Na=Xn("agents.threadInfo.dockedHidden",!1),Oa=x(()=>!!le.value&&!Se.value),gi=R(pe.isOpen.value),dr=x(()=>Oa.value&&!pe.isOpen.value&&!gi.value&&R4(ur.value-(me.value?0:Rs))),Da=x(()=>dr.value&&!Na.value),vi=x(()=>dr.value?Da.value:Ut.value);function yi(){dr.value?Na.value=!Na.value:Ut.value=!Ut.value}function x0(){Q.expand("cost"),dr.value?Na.value=!1:Ut.value=!0}const k0=x(()=>{const je=ye.cost.report.value;return je&&je.totalCost>0?_t(je.totalCost):null});ve([dr,le],()=>{Ut.value=!1}),Ia(Pa,()=>{Ut.value=!1},{ignore:["[data-thread-info-toggle]"]}),Dm("Escape",()=>{Ut.value=!1});const bi=Dt(null),xi=x(()=>Oa.value&&vi.value);function ki(je){Ut.value=!1,pe.open(je.tab),je.tab==="files"&&je.path&&pe.setFilePath(je.path)}const wi=x(()=>({thread:I.value,cost:ye.cost.report.value,costLoading:ye.cost.isFetching.value,sides:ye.sides.value,subagentGroups:ye.subagentGroups.value,agents:f.value,isExpanded:Q.isExpanded,workspace:bi.value})),w0=R(null);Iv({inspector:()=>{B.value==="threads"&&pe.toggle()},info:()=>{B.value==="threads"&&le.value&&yi()},sessions:()=>{B.value==="threads"&&(me.value=!me.value)}});const Jr=R(0),ts=sv({agent:o,sides:i,agents:f,models:d,toolsCatalog:p,hooks:m,refreshEpoch:Jr}),_0=av(o,i,ts,d,p,Jr),$0=x(()=>({agent:o.value,sides:i.value,children:ts.value,models:d.value,toolsCatalog:p.value,hooks:m.value,refreshEpoch:Jr.value})),_i=R(null);return ve(f,async(je,Le)=>{if(!Le||Le.length===0||!a.value)return;const ze=await k();Jr.value+=1,ze&&a.value&&(_.value=!0,L(a.value,!1))}),an(()=>{y()}),(je,Le)=>(l(),c("div",zj,[h(b)?(l(),c("div",Vj,w(h(Ve)(h(b))),1)):M("",!0),B.value==="home"?(l(),K(cx,{key:1,class:"min-h-0 flex-1","all-agents":h(f),"agents-known":h(v),overview:h(N).overview.value,"overview-error":h(N).error.value,"now-seconds":h(N).nowSeconds.value,owners:h(ie).owners.value,identity:h(xe)},null,8,["all-agents","agents-known","overview","overview-error","now-seconds","owners","identity"])):B.value==="catalog"?(l(),K(Ck,{key:2,class:"min-h-0 flex-1",agents:h(D),"all-agents":h(f),loading:h(g),"agents-known":h(v),overview:h(N).overview.value,metrics:P.value,"now-seconds":h(N).nowSeconds.value,"type-filter":h(U),"filter-tabs":h(W),"sort-by":h(V),"sort-dir":h(Y),packaging:Re.value,"onUpdate:typeFilter":Le[0]||(Le[0]=ze=>U.value=ze),onSort:h($),onSelect:Le[1]||(Le[1]=ze=>ae(ze,"threads")),onPack:h(Me).packAgent,onUnpack:h(Me).unpackAgent,onPublish:h(Me).publishAgent},null,8,["agents","all-agents","loading","agents-known","overview","metrics","now-seconds","type-filter","filter-tabs","sort-by","sort-dir","packaging","onSort","onPack","onUnpack","onPublish"])):T.value||de.value?(l(),c(te,{key:3},[j(Nk,{mode:re.value,agent:de.value?null:E.value,"agent-id":de.value?null:T.value,agents:h(f),"agent-missing":ue.value,"inspector-open":h(pe).isOpen.value,onSetMode:H,onSelectAgent:Le[3]||(Le[3]=ze=>ae(ze,"threads")),onSelectAll:Le[4]||(Le[4]=ze=>h(q).openThreadView({allAgents:!0,filters:{}})),onToggleInspector:h(pe).toggle},{"thread-actions":be(()=>[B.value==="threads"&&Oa.value?(l(),K(ZI,{key:0,"can-edit":z.value>0,"edit-mode":O.value,"info-open":vi.value,onToggleEditMode:Le[2]||(Le[2]=ze=>O.value=!O.value),onToggleInfo:yi},null,8,["can-edit","edit-mode","info-open"])):M("",!0)]),_:1},8,["mode","agent","agent-id","agents","agent-missing","inspector-open","onToggleInspector"]),B.value==="threads"?(l(),c("div",{key:0,ref_key:"pageBodyRef",ref:Ht,class:"relative flex min-h-0 flex-1"},[h(me)?M("",!0):(l(),c("div",{key:0,class:"flex h-full shrink-0 border-r border-neutral-200 bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950",style:nt({width:`${Rs}px`})},[j(vI,{ref_key:"sessionSidebarRef",ref:w0,query:h(se).query.value,"onUpdate:query":Le[5]||(Le[5]=ze=>h(se).query.value=ze),threads:G.value,"selected-thread-id":h(Z),"is-loading":h(se).isLoading.value,"is-loading-more":h(se).isLoadingMore.value,"has-more":h(se).hasMore.value,error:h(se).error.value,agents:h(f),"agents-known":h(v),"scroll-key":de.value?null:T.value,filters:ke.value,"all-agents":de.value,origin:Ee.value,owners:h(ie).owners.value,models:h(Jh)(h(N).overview.value,ke.value.agent),"onUpdate:filters":h(q).setThreadListFilters,onSelect:Ne,onCreate:h(Lt),onLoadMore:h(se).loadMore,onCollapse:Le[6]||(Le[6]=ze=>me.value=!0)},null,8,["query","threads","selected-thread-id","is-loading","is-loading-more","has-more","error","agents","agents-known","scroll-key","filters","all-agents","origin","owners","models","onUpdate:filters","onCreate","onLoadMore"])],4)),j(h(_I),{"thread-id":h(Se)?null:le.value},{default:be(()=>[xi.value?(l(),K(h(pC),{key:0,"thread-id":le.value,onUpdate:Le[7]||(Le[7]=ze=>bi.value=ze)},null,8,["thread-id"])):M("",!0),u("section",Hj,[le.value&&!h(Se)?(l(),K(td,{key:0,ref_key:"messagesPaneRef",ref:Fe,"thread-id":le.value,"selected-message-id":h(oe),"selected-log-id":h(pe).isOpen.value?h(he):null,"selected-effect-id":h(F),"hovered-log-id":h(pe).isOpen.value?h(We):null,cost:h(ye).cost,"edit-mode":O.value,"onUpdate:editMode":Le[9]||(Le[9]=ze=>O.value=ze),"transcript-margin":Da.value?h(E4):null,onMessageCountChanged:Le[10]||(Le[10]=ze=>z.value=ze),onMessageClick:qe,onMessageHover:h(_e),onLogsDeleted:h(kt),onFilesChanged:Le[11]||(Le[11]=ze=>Te.value+=1),onOpenTurnLogs:ht,onOpenSubagent:Ne},{header:be(()=>[j(KI,{"thread-id":le.value,thread:I.value,ancestors:Ae.value,agents:h(f),"agents-known":h(v),"page-agent-id":de.value?null:T.value,"sessions-collapsed":h(me),"content-end":Da.value?h(P4):null,"info-visible":xi.value,cost:k0.value,onOpenCost:x0,onShowSessions:Le[8]||(Le[8]=ze=>me.value=!1),onSelectThread:Ne},null,8,["thread-id","thread","ancestors","agents","agents-known","page-agent-id","sessions-collapsed","content-end","info-visible","cost"])]),_:1},8,["thread-id","selected-message-id","selected-log-id","selected-effect-id","hovered-log-id","cost","edit-mode","transcript-margin","onMessageHover","onLogsDeleted"])):h(Se)&&!ue.value?(l(),K(td,{key:1,ref_key:"messagesPaneRef",ref:Fe,"thread-id":null,"create-thread-draft":!0,"locked-agent-id":T.value,onCancelCreateThread:h(on),onThreadCreated:h(Yt)},null,8,["locked-agent-id","onCancelCreateThread","onThreadCreated"])):(l(),K(_C,{key:2,loading:h(se).isLoading.value,"has-threads":h(se).threads.value.length>0,"can-create":!!T.value,"agent-missing":ue.value,"sessions-collapsed":h(me),"show-sessions-shortcut":h(Er)("b"),onNewThread:h(Lt),onShowSessions:Le[12]||(Le[12]=ze=>me.value=!1)},null,8,["loading","has-threads","can-create","agent-missing","sessions-collapsed","show-sessions-shortcut","onNewThread"])),Da.value?(l(),c("div",{key:3,class:J(["absolute top-2 z-20 max-h-[calc(100%-1.5rem)] overflow-y-auto",Xd]),style:nt({width:`${h(tl)}px`,right:`${h(op)}px`}),role:"complementary","aria-label":"Thread info"},[j(Ou,co(wi.value,{onSelectThread:Ne,onToggle:h(Q).toggle,onOpenWorkspace:ki}),null,16,["onToggle"])],4)):M("",!0)]),j(wI,{open:h(pe).isOpen.value,width:Gr.value,onResize:h(pe).setWidth,onPresence:Le[14]||(Le[14]=ze=>gi.value=ze)},{default:be(()=>[j(qj,{ref_key:"logsPaneRef",ref:fe,"thread-id":le.value,"agent-id":vt.value,"agent-name":An.value,"selected-log-id":h(Oe),"selected-effect-id":h(F),"selected-effect-ref":h(ce),"hovered-log-id":h(Pe),"active-tab":h(pe).tab.value,"file-path":h(pe).filePath.value,"files-refresh-key":Te.value,diagram:$0.value,"diagram-loading":h(_),"diagram-error":h(C),"onUpdate:activeTab":h(pe).setTab,"onUpdate:filePath":h(pe).setFilePath,onLogClick:h(De),onLogHover:h(Xe),onLogsLoaded:h(rt),onThreadDeleted:h(At),onThreadUpdated:lt},{"header-actions":be(()=>[u("button",{type:"button",class:"inline-flex h-8 w-8 items-center justify-center rounded-md text-neutral-500 transition-colors hover:bg-neutral-100 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-neutral-800 dark:hover:text-neutral-100",title:`Close inspector (${h(Er)("j")})`,"aria-label":"Close inspector",onClick:Le[13]||(Le[13]=(...ze)=>h(pe).close&&h(pe).close(...ze))},[j(h(Bo),{class:"h-4 w-4"})],8,Uj)]),_:1},8,["thread-id","agent-id","agent-name","selected-log-id","selected-effect-id","selected-effect-ref","hovered-log-id","active-tab","file-path","files-refresh-key","diagram","diagram-loading","diagram-error","onUpdate:activeTab","onUpdate:filePath","onLogClick","onLogHover","onLogsLoaded","onThreadDeleted"])]),_:1},8,["open","width","onResize"])]),_:1},8,["thread-id"]),Oa.value&&!dr.value&&Ut.value?(l(),c("div",{key:1,ref_key:"infoPopoverRef",ref:Pa,class:J(["absolute right-3 top-3 z-30 max-h-[calc(100%-1.5rem)] overflow-y-auto",Xd]),style:nt({width:`${h(tl)}px`}),role:"dialog","aria-label":"Thread info"},[j(Ou,co(wi.value,{onSelectThread:Ne,onToggle:h(Q).toggle,onOpenWorkspace:ki}),null,16,["onToggle"])],4)):M("",!0)],512)):(l(),K(M5,{key:1,tree:h(_0),"selected-node-id":X.value,"hovered-node-id":_i.value,"refresh-epoch":Jr.value,loading:h(_),error:h(C),agent:h(o),sides:h(i),"subagent-tree":h(ts),models:h(d),"tools-catalog":h(p),hooks:h(m),onSelect:Le[15]||(Le[15]=ze=>X.value=ze),onHover:Le[16]||(Le[16]=ze=>_i.value=ze),onDeselect:Le[17]||(Le[17]=ze=>X.value=null)},null,8,["tree","selected-node-id","hovered-node-id","refresh-epoch","loading","error","agent","sides","subagent-tree","models","tools-catalog","hooks"]))],64)):M("",!0),Re.value?(l(),c(te,{key:4},[j(u1,{modelValue:h(Me).showPackModal.value,"onUpdate:modelValue":Le[18]||(Le[18]=ze=>h(Me).showPackModal.value=ze),agent:h(Me).packingAgent.value,onPacked:h(Me).finishPack},null,8,["modelValue","agent","onPacked"]),j(R1,{modelValue:h(Me).showUnpackModal.value,"onUpdate:modelValue":Le[19]||(Le[19]=ze=>h(Me).showUnpackModal.value=ze),agent:h(Me).unpackingAgent.value,onUnpacked:h(Me).finishUnpack},null,8,["modelValue","agent","onUnpacked"]),j(sw,{modelValue:h(Me).showPublishModal.value,"onUpdate:modelValue":Le[20]||(Le[20]=ze=>h(Me).showPublishModal.value=ze),"package-id":h(Me).publishingAgent.value?.packageId??"","output-path":"agents/packed/"+(h(Me).publishingAgent.value?.packageId??""),onPublished:h(Me).finishPublish},null,8,["modelValue","package-id","output-path","onPublished"])],64)):M("",!0)]))}});export{uq as default};
|