@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
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["CodeEditor-xwWkV1-c.js","vendor-L6I0G397.js","Modal.vue_vue_type_script_setup_true_lang-UlrwSOT8.js","vue-CnrejLtC.js","formkit-B1fIUqP-.js","syntax-XeetdF8c.js","index-BwlCQIem.js","assets/index-D0bcj_gk.css","UiFilterMenu.vue_vue_type_script_setup_true_lang-BE1kHACC.js","UiButton.vue_vue_type_script_setup_true_lang-CVyrFcWg.js","assets/CodeEditor-BRqHbzJv.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{s as ao,a as T0,b as Be,u as wa,c as gl,d as vl,e as ze,A as en,f as Do,i as yl,g as Kn,P as Zd,h as Ps,t as M0,j as A0,k as L0,l as R0,r as E0,m as P0,n as N0,o as O0,p as D0,q as B0,D as F0,v as j0,w as _t,x as pa,_ as ot,y as Mn,z as Wn,I as Gn,B as Vr,E as Bo,C as q0,F as z0,G as xn,H as V0,J as H0,K as Qd,L as U0,M as Fo,N as ec,O as tc,Q as bl,T as Ns,R as nc,S as K0,U as W0,V as Rr,W as rc,X as xl,Y as Os,Z as Jn,$ as oo,a0 as G0,a1 as J0,a2 as He,a3 as X0,a4 as Y0,a5 as Z0,a6 as Q0,a7 as ac,a8 as Er,a9 as oc,aa as Ds,ab as so,ac as lo,ad as io,ae as kl,af as eh,ag as th,ah as sc,ai as nh,aj as et,ak as Bs,al as lc,am as wl,an as rh,ao as ah,ap as rs,aq as oh,ar as sh,as as lh,at as ih,au as uh,av as dh,aw as Si,ax as ic,ay as ch,az as fh,aA as ph,aB as hh,aC as uc,aD as mh,aE as Ci,aF as gh,aG as _l,aH as $l,aI as Il,aJ as vh,aK as fr,aL as dc,aM as yh,aN as bh,aO as xh,aP as cc,aQ as Fs,aR as Ti,aS as kh,aT as Ba,aU as wh,aV as _h,aW as js,aX as $h,aY as Ih,aZ as Sh,a_ as Ch,a$ as Th,b0 as qs,b1 as Mh,b2 as uo,b3 as Ah,b4 as Lh,b5 as Rh,b6 as Eh,b7 as fc,b8 as pc,b9 as Mi,ba as hc,bb as mc,bc as Ph,bd as Nh,be as Oh,bf as Sl,bg as Ai,bh as Dh,bi as Li,bj as Bh,bk as as,bl as Fh,bm as jh,bn as qh,bo as zh,bp as Vh,bq as Hh,br as Uh,bs as Kh,bt as Wh,bu as Gh,bv as Jh,bw as Xh,bx as Yh}from"./index-BwlCQIem.js";import{d as we,b as c,e as l,g as gt,D as q,f as u,A as h,a7 as Cl,q as M,z as _,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 Zh,a as Hr,Q as Xn,o as an,N as Yn,m as Ye,T as $a,h as nt,s as Et,a8 as Ft,W as Ur,a9 as jo,$ as qo,X as co,V as Qh,t as em,E as ar,M as Ia,C as Je,aa as tm,ab as It,ac as xt,ad as ut,ae as Sa,af as Tl,ag as Pt,ah as nm,O as rm,P as Ml,ai as Ri,aj as zo,J as $t,ak as am,L as dn,I as om,al as sm,K as fo,am as lm,an as gc,ao as zt,ap as po,aq as cn,ar as im,as as Bn,at as vc,a5 as um,au as dm,av as cm,aw as yc,ax as bc,ay as fm,az as xc,aA as pm,aB as hm,aC as mm,aD as gm,i as vm,aE as vr,aF as ho,aG as Al,aH as Vo,aI as kc,aJ as ym,aK as bm,aL as xm,aM as os,aN as km,aO as wm,aP as _m,aQ as $m,aR as mo,aS as Im,aT as Sm,aU as Cm,aV as Tm,aW as Mm,aX as Ei,aY as Pi,aZ as Am,a_ as Lm,a$ as Rm,b0 as Em,b1 as Pm,b2 as Ni,b3 as Nm,b4 as Om,b5 as Dm,b6 as Oi,p as Bm,b7 as Fm}from"./vue-CnrejLtC.js";import{n as jm}from"./promptReasoningLevel-BrUFPP1Z.js";import{_ as wc,U as qm}from"./UiPageFrame-CP9KRIIM.js";import{I as Ll,a as zm,b as Vm,_ as Xr,c as Hm,d as Um}from"./UiFilterMenu.vue_vue_type_script_setup_true_lang-BE1kHACC.js";import{_ as _c,a as Km}from"./UiEmptyState.vue_vue_type_script_setup_true_lang-BD_dt9VV.js";import{I as Di}from"./corner-down-right-wgTcgBsB.js";import{u as $c,_ as Ct}from"./useClipboardCopy-DURjq7gM.js";import{I as zs,_ as Zn,t as Wm,u as Gm}from"./timeAgo-Dw5sbUU-.js";import{_ as Jm,D as Xm,a as Cn}from"./DefinitionSource-BbqSJUnU.js";import{e as go,B as Ym,p as Zm}from"./vendor-L6I0G397.js";import{_ as Rl}from"./Modal.vue_vue_type_script_setup_true_lang-UlrwSOT8.js";import{_ as Tn}from"./UiButton.vue_vue_type_script_setup_true_lang-CVyrFcWg.js";import{c as Bt,a as El,b as Pl}from"./form-errors-D9RXsjd2.js";import{X as Qm,W as eg,Y as tg}from"./formkit-B1fIUqP-.js";import{_ as Ca}from"./CopyButton.vue_vue_type_script_setup_true_lang-CLj4kYi5.js";import"./syntax-XeetdF8c.js";const ng={class:"text-xs text-neutral-500 dark:text-neutral-400"},ss=we({__name:"UiHelpText",setup(e){return(t,n)=>(l(),c("p",ng,[gt(t.$slots,"default")]))}}),rg={class:"flex items-start gap-2 text-xs"},ag={class:"min-w-0"},og={class:"font-medium text-amber-700 dark:text-amber-300"},sg={key:0,class:"mt-0.5 text-neutral-600 dark:text-neutral-400"},Nl=we({__name:"UiNotice",props:{title:{},lines:{}},setup(e){return(t,n)=>(l(),c("div",rg,[q(h(Cl),{size:14,class:"mt-px shrink-0 text-amber-600 dark:text-amber-400","aria-hidden":"true"}),u("div",ag,[u("div",og,_(e.title),1),e.lines?.length?(l(),c("div",sg,[(l(!0),c(te,null,Ie(e.lines,(r,a)=>(l(),c(te,{key:a},[Ce(_(a>0?" ":"")+_(r),1)],64))),128))])):M("",!0),gt(t.$slots,"default")])]))}}),lg=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"]))}}),ig={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",ig))}}),ug=["aria-checked","title"],dg={class:"whitespace-nowrap"},Bi=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",dg,_(e.label),1)],8,ug))}});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 cg(e){if(!e)return null;try{return await mn(`/tools/${encodeURIComponent(e)}`)}catch{return null}}function fg(e){const t=e?.env??e?.tenvs;return!t||typeof t!="object"?{}:t}function Ol(e){return Object.keys(fg(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 Ol(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 pg(e){return e?!e.packed&&e.id===e.name:!1}function hg(e,t){return t?.type?t.type:e.startsWith("provider:")?"provider":e.startsWith("mcp:")?"mcp":"unknown"}function mg(e){return e.startsWith("provider:")?e.slice(9):e.startsWith("mcp:")?e.slice(4):e}function gg(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:mg(e.name),kind:hg(e.name,r),description:r?.description||"",variables:r?.variables||[],model:a,resolvedModel:gg(a,n),config:e}}function vg(e){return e.as?.trim()||e.agent}function yg(e){const t=vg(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(yg),b=[...v,...$],T=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:Ol(n),outgoingAgents:T,toolHistoryFinding:T0(e.definition_diagnostics,t)}}function bg(){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. ${ze(v)}`}finally{s.value=!1}}return{agents:n,models:r,toolsCatalog:a,hooks:o,loadingIndex:d,agentsKnown:p,loadError:m,loadIndex:g}}function xg(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 T(A,L=!0){const k=e.agents.value.find(w=>w.id===A||w.name===A);if(!k)return;const C=++p;if(r.value=k.id,!pg(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 w=await mn(`/agents/${encodeURIComponent(k.name)}`),[D,F]=await Promise.all([Fn(w.agent.side_a_agent_prompt),Fn(w.agent.side_b_agent_prompt)]);if(!v(C,k.id))return;a.value=w.agent,o.value=D,s.value=F}catch{if(!v(C,k.id))return;d.value="Unable to load the selected agent composition.",a.value=null,o.value=null,s.value=null}finally{v(C,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 C=await mn(`/agents/${encodeURIComponent(A.name)}`),[w,D]=await Promise.all([Fn(C.agent.side_a_agent_prompt),Fn(C.agent.side_b_agent_prompt)]);if(!v(k,L))return!1;const F=(o.value?.tools?.length??0)+(s.value?.tools?.length??0),U=(w?.tools?.length??0)+(D?.tools?.length??0),N=(A.side_a_subagents?.length??0)+(A.side_b_subagents?.length??0),E=(C.agent.side_a_subagents?.length??0)+(C.agent.side_b_subagents?.length??0),z=C.agent.side_a_agent_prompt!==A.side_a_agent_prompt||C.agent.side_b_agent_prompt!==A.side_b_agent_prompt||F!==U||N!==E;return a.value=C.agent,o.value=w,s.value=D,z}catch{return!0}}return{selectedAgentId:r,selectedAgentDetail:a,sideCompositions:g,loadingComposition:i,compositionError:d,selectAgent:T,refreshComposition:y,isRouteSyncing:b}}function kg(){const e=rr(),t=bg(),n=xg({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 wg(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 T=R(null),y=R(null),A=R(null),L=R(null),k=R(null),C=R(null),w=R(null),{thread:D}=Do(x(()=>m.value===v?null:m.value));let F=!1;ve(t,ae=>{if(!F){F=!0;return}b=!0,m.value=o.query.agent===ae||yl(o.query)?i():null,T.value=null,y.value=null,A.value=null,L.value=null,k.value=null,C.value=null,w.value=null,Qe(()=>{b=!1})}),ve(m,()=>{T.value=null,y.value=null,A.value=null,L.value=null,k.value=null});const U=ae=>{C.value=ae,w.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:D,selectedMessageId:T,selectedLogId:y,selectedEffectId:A,selectedEffectRef:L,highlightedWorkblockLogId:k,hoveredLogId:C,hoveredWorkblockLogId:w,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(T.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:U,handleLogClick:ae=>{y.value=ae,A.value=null,L.value=null,T.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(C.value=ae,!ae){w.value=null;return}w.value=N(ae)??ae},handleLogsLoaded:ae=>{ae&&(y.value=ae)},handleLogsDeleted:ae=>{a.value?.removeLogsByIds(ae)},handleThreadDeleted:()=>{m.value=null,T.value=null,y.value=null,A.value=null,L.value=null,k.value=null,C.value=null,w.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 Fi(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 _g(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 $g(e,t={}){if(e.length===0)return[];const n=await _g(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=Fi(e.model_id,t.models)||Fi(e.model_name,t.models);return{prompt:e,nestedTools:n,model:r}}async function Ig(e){try{return(await mn(`/agents/${encodeURIComponent(e)}`)).agent}catch{return null}}async function Sg(e,t){const[n,r,a]=await Promise.all([Promise.all(e.functionTools.map(async o=>[o,await cg(o)])),$g(e.promptTools,t),Promise.all(e.handoffs.map(async o=>[o,await Ig(o)]))]);return{functionTools:Object.fromEntries(n),promptTools:Object.fromEntries(r),handoffs:Object.fromEntries(a)}}const ji={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 ls=null;function Cg(e,t,n,r){if(ls?.key===e)return ls.promise;const a=Sg(t,{models:n,toolsCatalog:r});return ls={key:e,promise:a},a}function Mc(e,t,n,r,a){const o=R(ji);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=ji;return}const d=++s,p=await Cg(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 Vs(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(Vs("agent",e))}function Dl(e,t,n,r,a){return Rc(e,Vs("side",t),Vs("tool",`${r}:${a}`,n))}const Ma=e=>`${e}agent`,Bl=(e,t)=>`${e}side-${t}`,Ec=(e,t,n)=>`${e}tool-${t}-${n}`,Hs=(e,t)=>`${e}model-${Lc(t)}-${Ac(t)}`,Fl=(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}`,qi=new RegExp(`${ha}(?:tool|hook)-\\d+$`),Tg=/^(.*)(?:prompt|hook|tool)-(a|b)(?:-\d+)?$/;function Dc(e){const t=[];let n=e;for(;qi.test(n);)n=n.replace(qi,""),t.push(n);const r=Tg.exec(n);return r&&t.push(Bl(r[1],r[2]==="a"?"a":"b")),t}function Mg(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 Mg(e)?e:{}}function Dr(e){return typeof e=="string"?e:""}function Ag(e){const t=at(e);return Dr(at(t.function).name)||Dr(t.name)||"Unknown"}function zi(e){const t=at(e);return Dr(at(t.function).description)||Dr(t.description)}function Vi(e){return Dr(at(at(e).image_url).url)||null}function Lg(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 Rg(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 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.reasoning_details)?a.reasoning_details:[]}function Pg(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 Ng(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 Og(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 Hi(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Dg(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=Hi(o.scheduledAt),p=Hi(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 Bg(e){const t=at(e);return typeof t.id=="string"&&(typeof t.type=="string"||typeof t.name=="string")&&typeof t.status=="string"}function Fg(e){return Br(e).filter(Bg).map(t=>{const n=at(t),r=t.name??t.type;return{...t,name:r,type:t.type??r,raw:n}})}function jg(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 qg(e){switch(e){case"completed":return"Completed";case"failed":return"Failed";case"in_progress":return"In progress"}}function zg(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 Vg(e){return e?e.replace(/\\n/g,`
|
|
3
|
+
`).replace(/\\t/g," ").replace(/\n{3,}/g,`
|
|
4
|
+
|
|
5
|
+
`).trim():""}function Hg(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 jl(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 Ui(e){const t=e?.toLowerCase();return jc(t)?t:"standard"}function ql(e){return e?`Provider tools · ${jl(e)}`:"Provider tools"}function qc(e){return`${e?`The model provider, ${jl(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 Ki(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 Ug(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(Ki).join(", "),i=t.enum.length>3?", …":"";o.push(s+i)}else"const"in t&&o.push(Ki(t.const));return{id:n,label:e,value:Ug(t),description:o.join(" • ")||null,required:r,children:a.length>0?a:void 0,defaultExpanded:n.split(".").length<=3}}function Kg(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 Wg(e){return e===null?"default":e===0?"minimum":String(e)}function Gg(e){const t=e.reasoning?.maxTokens;return typeof t=="number"?t.toLocaleString():"—"}function Jg(e,t){const n=jm(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:Zd,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:Wg(n),active:n!==null},{kind:"value",label:"Max tokens",value:Gg(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 Xg(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 zl(e,t,n){const r=Kg(e);return{id:`${n}schema`,kind:"schema",label:"Input schema",detail:r.length>0?`${Xg(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 Ho(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=Jg(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(Yg)}));return{id:`${n}config`,kind:"config",label:"Prompt config",canvasNodeId:t,virtual:!0,defaultCollapsed:!0,children:o}}function Yg(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?Hs(t,e.model.id):n,virtual:!e.model,cardBacked:!!e.model,reference:e.model?{kind:"model",name:e.model.name}:void 0}}function Zg(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:ql(t),hint:qc(t)}]:[],{key:"prompt",label:"Sub-prompts"},{key:"handoff",label:"Handoffs"}]}function Qg(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 ev(e,t,n){const r=[],a=zl(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(Ho(e.variables,t,`${n}detail__`)),r}function tv(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(zl(t.prompt.required_schema,n,`${a}prompt__`)),o.push(Ho(Ic(t.prompt),n,`${a}prompt__`,Ol(t.prompt))),o.push(...Qg(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 nv(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 rv(e,t,n,r,a,o,s,i){if(!e.prompt)return null;const d=e.prompt.name,p=`${s}prompt__`,f=Fl(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(zl(e.prompt.required_schema,f,p)),m.push(Ho(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 T=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:T.map(({key:L,label:k,hint:C})=>{const w=$[L]||[];return{id:`${p}group-${L}`,kind:"tools",toolKind:L,label:k,hint:C,detail:`${w.length}`,canvasNodeId:f,virtual:!0,children:w.length>0?w.map(D=>({hint:C,...Xc(p,r,a,e,D,b.get(D),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:Ps,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=Dl(t,r.id,o,a.kind,a.name),v=Ma(g),$=s[v],b=$?.status==="loaded"?$:null,T=$?.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:T??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?tv(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?nv(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?ev(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 Wi(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 av(e,t,n,r,a,o,s){const i=Bl(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=Wi(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(Zg(e,i,d));const f=rv(e,t,n,r,a,i,d,s);f&&p.push(f);const m=Wi(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=[Ho(e._variables||[],p,`${s}agent__`,Object.keys(e.env||{})),...t.map(m=>av(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 ov(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 sv(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?ov(d,t.value,n.value,i.value):null})}async function lv(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=Dl(d,g.id,$,v.kind,v.name),T=Ma(b),y=v.relationship?.agent??v.name;if(f.includes(y)){a[T]={status:"cycle",agentName:y};return}const A=r.catalog.find(L=>L.name===y);if(!A){a[T]={status:"missing",agentName:y};return}if(A.packed){a[T]={status:"packed",agentName:y};return}m.push(s(y).then(async L=>{a[T]={status:"loaded",agentName:y,...L},await i(b,L.sides,[...f,y])},L=>{a[T]={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 iv(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=>lv(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 uv=["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 uv)e[n]!==void 0&&Object.assign(t,{[n]:e[n]});return t}function Gi(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 dv(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 cv(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 fv=100,pv=250;function hv(e,t={}){const n=R(""),r=Zh(n,pv),a=x(()=>r.value.trim()||null),o=x(()=>e.value.agent),s=x(()=>e.value.status),i=x(()=>e.value.owner),d=x(()=>M0(e.value.days,Math.floor(Date.now()/1e3),new Date().getTimezoneOffset())),p=x(I=>{const B=A0(e.value);return I&&JSON.stringify(I)===JSON.stringify(B)?I:B}),f=R(0),m=R([]),g=R([]),v=R(new Set);let $=null;const{agents:b}=Qc(),{threads:T,hasMore:y,isFetching:A,isFinished:L,error:k,refetch:C}=L0({limit:fv,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(T,I=>{if(f.value===0){const W=new Map([...m.value,...g.value].map(P=>[P.id,P]));if($){const P=$;$=null,g.value=g.value.filter(X=>!P.has(X.id))}m.value=I.map(P=>cv(P,W.get(P.id)));return}const B=new Set(m.value.map(W=>W.id));m.value=[...m.value,...I.filter(W=>!B.has(W.id))]});const w=x(()=>{const I=m.value.filter(P=>!v.value.has(P.id)),B=new Set(I.map(P=>P.id));return[...g.value.filter(P=>!B.has(P.id)&&!v.value.has(P.id)),...I]});function D(){A.value||!y.value||(f.value=m.value.length)}function F(){f.value===0?C():f.value=0}function U(I){return!a.value&&P0(I,e.value,d.value)?!0:!!I.parent&&w.value.some(B=>B.id===I.parent)}function N(I,B){const W=P=>{const X=P.findIndex(re=>re.id===I);X!==-1&&(P[X]=B(P[X]))};W(m.value),W(g.value)}function E(I){if(I.type==="thread_created"){const B=Gi(I.thread,b.value);U(B)&&(g.value=[B,...g.value])}else if(I.type==="thread_updated"){const B=Gi(I.thread,b.value);w.value.some(P=>P.id===B.id)?N(B.id,()=>B):U(B)&&(g.value=[B,...g.value])}else I.type==="thread_activity"?N(I.threadId,B=>dv(B,I)):I.type==="thread_deleted"&&(v.value=new Set([...v.value,I.threadId]))}const{wsConnected:V,connect:z}=R0({autoConnect:!1,onEvent:I=>{E(I),t.onEvent?.(I)},onReconnect:()=>{$=new Set(g.value.map(I=>I.id)),F(),t.onReconnect?.()}});let Y=!1;return Hr(()=>{Y=!0}),E0().then(I=>{Y||z(I)}),{threads:w,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:V,loadMore:D,reload:F}}function mv(e,t){const n=R(F0),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(()=>N0(e.value)),i=x(()=>e.value.filter(f=>O0(f,n.value,s.value))),d=x(()=>D0(e.value,s.value)),p=x(()=>[...i.value].sort((f,m)=>B0(f,m,r.value,a.value,t.value)));return{typeFilter:n,sortBy:r,sortDir:a,handleSort:o,sortedAgents:p,filterTabs:d}}const gv=380,tf=1e5;function Ji(e){return e==="files"||e==="kv"||e==="effects"||e==="info"||e==="logs"?e:"logs"}function Xi(e){return typeof e=="string"&&e?e:"/"}function Yi(e){return Number.isFinite(e)?Math.max(gv,e):tf}function vv(){const e=rr(),t=_a(),n=Xn("agents.inspectorDrawer.open",!1),r=Xn("agents.inspectorDrawer.preferredWidth",tf);r.value=Yi(r.value);const a=R(Ji(e.query.inspector)),o=R(Xi(e.query.filePath));ve(()=>e.query.inspector,v=>{a.value=Ji(v)}),ve(()=>e.query.filePath,v=>{o.value=Xi(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=Yi(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 yv(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 bv=2048;function xv(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 kv(e,t){if(typeof e!="string")return null;const n=e.trim();if(!n||n.length>bv||xv(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 Zi(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 Vl(e){return kv(e,{allowRelative:!0})}function wv(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=Zi(t.deployed_at),o=Zi(t.built_at),s=Fa(t,"git_ref"),i=Fa(t,"git_sha");return{name:n,logoUrl:Vl(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 Qi(e){return{name:e.configuredName?.trim()||e.hostname,logoUrl:Vl(e.configuredLogoUrl),environment:e.hosted?"Hosted":null,deployedAt:null,builtOnly:!1,source:null}}function _v(e){return e.environment===nf.development}function $v(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 Iv(e){return!e||typeof e!="object"||!("logoUrl"in e)?null:Vl(e.logoUrl)}function Sv(){const e=R(Qi({configuredName:null,hostname:window.location.hostname,hosted:!1}));return an(async()=>{const t=wv(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),j0()]);e.value=Qi({configuredName:$v(n),configuredLogoUrl:Iv(n),hostname:window.location.hostname,hosted:r.hosted})}),e}function Cv(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 Tv={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Mv(e,t){return l(),c("svg",Tv,[...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:Mv}),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"]))}}),Av={class:"font-medium text-neutral-900 dark:text-neutral-100"},Lv={class:"mt-0.5 grid grid-cols-[auto_auto] gap-x-4 tabular-nums"},Rv={class:"text-right"},Ev={class:"text-right"},Pv={class:"text-right"},Nv={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",Av,_(h(t).format(new Date(e.start*1e3))),1),u("dl",Lv,[r[2]||(r[2]=u("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Threads",-1)),u("dd",Rv,_(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":""])},_(e.failed),3),r[4]||(r[4]=u("dt",{class:"text-neutral-500 dark:text-neutral-400"},"Cost",-1)),u("dd",Ev,_(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",Pv,_(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",Nv,_(e.averageRun===null?"No runs":h(pa)(e.averageRun)),1)],64)):M("",!0)])],64))}}),Ov=10,Dv=2,Bv=.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 Fv(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 jv(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 qv(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>Ov*n?"logarithmic":"linear"}function zv(e,t="auto",n={}){const r=e.filter(i=>Number.isFinite(i)&&i>=0),a=Math.max(0,...r);if((t==="auto"?qv(r):t)==="linear")return sf(a,n);const s=of(r.filter(i=>i>0))*Dv;return Hv(a,Vv(a,s))}function Vv(e,t,n=Bv){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=Fv(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 Hv(e,t){const n=jv(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 Uv(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 Kv(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 Wv(e){if(!(e>0))return"$0";if(e>=1e3)return`$${lf.format(e)}`;if(e<.01)return`$${Number(e.toPrecision(1))}`;if(Number.isInteger(e))return`$${e}`;if(e>=10)return`$${Math.round(e)}`;const t=e.toFixed(2);return Math.abs(Number(t)-e)<1e-9?`$${t}`:`$${Number(e.toPrecision(2))}`}function Gv(e){return e>0?e>=1e3?lf.format(e):String(Math.round(e*100)/100):"0"}function Jv(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 Xv(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 Yv(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 Zv(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 is(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 Qv(e,t){const{width:n,height:r,max:a,inset:o}=t,s=Math.max(0,n-o*2),i=r-o,d=Yv(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:Zv(d,i)}}function ey(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 ty(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=ty(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 ny(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 ry(e,t,n){return e<=0||t<=0?1:Math.max(1,Math.ceil(e*n/t))}function ay(e){return e<=0?0:Math.min(4.5,1.75+.6*Math.sqrt(e-1))}const oy=320;function eu(e){const t=Et(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(Kv(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)/oy),g=1-(1-m)**3;t.value=m<1?Uv(s,o,g):o,m<1?r=requestAnimationFrame(p):(r=0,n.value=!1)};r=requestAnimationFrame(p)}),Ft(a),{axis:t,animating:n}}const sy={class:"overview-chart-surface flex min-w-0 flex-col gap-3 rounded-xl px-5 pb-3 pt-4"},ly={class:"flex flex-wrap items-baseline justify-between gap-x-6 gap-y-1"},iy={class:"flex min-w-0 flex-wrap items-baseline gap-x-2"},uy={class:"text-sm font-semibold text-neutral-900 dark:text-neutral-100"},dy={class:"text-sm tabular-nums text-neutral-500 dark:text-neutral-400"},cy={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},fy={class:"flex items-center gap-4 text-xs text-neutral-500 dark:text-neutral-400"},py={class:"inline-flex items-center gap-1.5"},hy=["width","height"],my={key:0,class:"fill-neutral-900/[0.05] dark:fill-white/[0.05]"},gy=["d"],vy=["x2"],yy={key:1,class:"text-[10px] tabular-nums"},by=["x2","y1","y2","stroke-dasharray"],xy=["x","y"],ky=["x","y"],wy=["x1","x2"],_y=["d"],$y=["d"],Iy=["d","fill"],Sy=["d"],Cy=["cx","cy"],Ty=["x","y"],My=["x","width","onMouseenter"],Ay={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]"},Ly={class:"font-medium text-neutral-800 dark:text-neutral-100"},Ry={class:"sr-only"},Ey={scope:"row"},Rn=200,Yr=8,us=22,Zt=36,Py=52,Ny=2,Oy=we({__name:"ThreadsCostChart",props:{days:{},usageSince:{},focus:{default:null}},setup(e){const t=e,n=R(null),{width:r}=Ur(n),a=`threads-cost-${jo()}`,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-Py)),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?Jv(ne):Wv(ne),$=x(()=>sf(Math.max(0,...t.days.map(ne=>ne.started)),{integer:!0})),b=x(()=>zv(t.days.map(g))),{axis:T}=eu($),{axis:y}=eu(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-T.value.position(ne)*Rn,k=ne=>p-y.value.position(ne)*Rn,C=x(()=>Xv(t.days.length,d.value,{maxBar:28})),w=x(()=>t.days.map((ne,de)=>{const ue=C.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?is(ae,ue.barWidth,Re,p,ne.failed>0?0:4):null,failed:ne.failed>0?is(ae,ue.barWidth,Me,xe>0?Re-Ny:p):null,top:ne.started>0?Me:p}})),D=x(()=>t.days.map((ne,de)=>({x:w.value[de].center,y:k(g(ne))}))),F=x(()=>t.days.some(ne=>g(ne)>0)),U=x(()=>ry(t.days.length,d.value,56)),N=ne=>(t.days.length-1-ne)%U.value===0,E=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}}),V=x(()=>f.value?"Average run time":"Cost"),z=x(()=>f.value?E.value.averageRun===null?"no runs":`${pa(E.value.averageRun)} average run`:_t(E.value.cost)),Y=x(()=>t.usageSince!==null&&t.days.some(ne=>!ne.recorded)?s.format(new Date(t.usageSince*1e3)):null),I=x(()=>E.value.threads===0&&E.value.cost===0),B=[.32,.5,.42,.66,.58,.8,.46,.7,.9,.62,.74,.52],W=x(()=>I.value?C.value.map((ne,de)=>is(Zt+ne.center,ne.barWidth,p-B[de%B.length]*Rn,p,4)):[]),P=R(null),X=x(()=>P.value===null?null:t.days[P.value]),re=x(()=>P.value===null?0:Math.min(w.value[P.value].top,k(g(t.days[P.value]))));return(ne,de)=>(l(),c("figure",sy,[u("figcaption",ly,[u("div",iy,[u("span",uy,"Threads and "+_(V.value.toLowerCase())+", last "+_(e.days.length)+" days",1),u("span",dy,_(E.value.threads)+" threads · "+_(z.value),1),Y.value&&!f.value?(l(),c("span",cy,"Cost recorded since "+_(Y.value),1)):M("",!0)]),u("span",fy,[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",py,[de[1]||(de[1]=u("span",{class:"h-0.5 w-3 rounded-full bg-accent-500 dark:bg-accent-400"},null,-1)),Ce(_(V.value),1)])])]),u("div",{ref_key:"root",ref:n,class:"relative w-full",style:nt({height:`${Yr+Rn+us}px`}),onMouseleave:de[0]||(de[0]=ue=>P.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+us,"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)])])]),I.value?(l(),c("g",my,[(l(!0),c(te,null,Ie(W.value,(ue,ae)=>(l(),c("path",{key:`g${ae}`,d:ue},null,8,gy))),128)),u("line",{x1:Zt,x2:Zt+d.value,y1:p,y2:p,stroke:"var(--color-border)"},null,8,vy)])):M("",!0),I.value?M("",!0):(l(),c("g",yy,[(l(!0),c(te,null,Ie(h(T).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,by),u("text",{x:Zt-8,y:L(ue)+3,"text-anchor":"end",class:"fill-neutral-500 dark:fill-neutral-400"},_(h(Gv)(ue)),9,xy)],64))),128)),(l(!0),c(te,null,Ie(F.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"},_(v(ue)),9,ky))),128))])),P.value!==null?(l(),c("line",{key:2,x1:w.value[P.value].center,x2:w.value[P.value].center,y1:Yr,y2:p,stroke:"var(--color-border)"},null,8,wy)):M("",!0),(l(!0),c(te,null,Ie(w.value,(ue,ae)=>(l(),c("g",{key:ae,class:J(P.value===null||P.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,_y)):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,$y)):M("",!0)],2))),128)),D.value.length&&!I.value?(l(),c("g",{key:3,class:J(["transition-opacity",A.value.line?"opacity-30":""])},[u("path",{d:h(ny)(D.value,p),fill:`url(#${a})`},null,8,Iy),u("path",{d:h(df)(D.value),fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linejoin":"round","stroke-linecap":"round"},null,8,Sy),P.value!==null?(l(),c("circle",{key:0,cx:D.value[P.value].x,cy:D.value[P.value].y,r:"4",class:"fill-white dark:fill-neutral-950",stroke:"currentColor","stroke-width":"2"},null,8,Cy)):M("",!0)],2)):M("",!0),(l(!0),c(te,null,Ie(w.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"},_(i(e.days[ae].start)),9,Ty)):M("",!0)],64))),128)),(l(!0),c(te,null,Ie(C.value,(ue,ae)=>(l(),c("rect",{key:`h${ae}`,x:Zt+ue.start,y:Yr,width:ue.width,height:Rn,fill:"transparent",onMouseenter:xe=>P.value=ae},null,40,My))),128))],8,hy)):M("",!0),I.value?(l(),c("div",{key:1,class:"pointer-events-none absolute inset-0 grid place-content-center",style:nt({paddingBottom:`${us}px`})},[u("div",Ay,[u("p",Ly,"No threads in the last "+_(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&&P.value!==null&&!I.value?(l(),K(rf,{key:2,x:w.value[P.value].center,y:re.value,"bounds-width":h(r)},{default:be(()=>[q(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",Ry,[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",Ey,_(h(s).format(new Date(ue.start*1e3))),1),u("td",null,_(ue.started),1),u("td",null,_(ue.failed),1),u("td",null,_(ue.recorded?h(_t)(ue.cost):"Not recorded"),1),u("td",null,_(ue.runs>0?h(pa)(m(ue)):"No runs"),1)]))),128))])])]))}}),Dy=ot(Oy,[["__scopeId","data-v-a33f9a82"]]),By={class:"ui-divide grid grid-cols-2 gap-y-6 sm:grid-cols-5 sm:divide-x",role:"group","aria-label":"Project figures"},Fy={class:"block text-xs text-neutral-500 group-hover:text-neutral-800 dark:text-neutral-400 dark:group-hover:text-neutral-200"},jy={class:"mt-1 block truncate text-xs text-neutral-500 dark:text-neutral-400"},qy="threads",zy="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",Vy=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?qy:r}return(r,a)=>(l(),c("div",By,[(l(!0),c(te,null,Ie(e.figures,o=>(l(),K(ct(o.to?h(qo):"button"),co({key:o.id},{ref_for:!0},o.to?{to:o.to}:{type:"button","aria-pressed":t.value===o.focus},{class:zy,onClick:s=>!o.to&&o.focus?n(o.focus):void 0}),{default:be(()=>[u("span",Fy,_(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":""])},_(o.value),3),u("span",jy,_(o.detail),1)]),_:2},1040,["onClick"]))),128))]))}}),Hy=["aria-labelledby"],Uy={class:"ui-border flex items-baseline justify-between gap-3 border-b pb-2"},Ky=["id"],Wy={class:"truncate text-xs text-neutral-500 dark:text-neutral-400"},Gy={key:0,class:"mt-1 flex flex-col"},Jy={class:"py-2 text-[13px] text-neutral-500 dark:text-neutral-400"},Xy={class:"flex items-center gap-2.5"},Yy={key:1,class:"-mx-2 mt-1 flex flex-col"},Zy={class:"flex min-w-0 items-center gap-2.5"},Qy={class:"flex min-w-0 flex-col"},eb={class:"flex min-w-0 items-center gap-1.5"},tb={class:"truncate font-medium text-neutral-900 dark:text-neutral-100"},nb={key:0,class:"truncate text-xs text-neutral-500 dark:text-neutral-400"},rb={class:"h-1.5 overflow-hidden rounded-full bg-black/[0.05] dark:bg-white/[0.08]","aria-hidden":"true"},ab={class:"whitespace-nowrap text-right font-medium tabular-nums text-neutral-900 dark:text-neutral-100"},ob=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",Uy,[u("h3",{id:`dig-in-${e.card.id}`,class:"text-sm font-semibold text-neutral-900 dark:text-neutral-100"},_(e.card.title),9,Ky),u("span",Wy,_(e.card.note),1)]),e.card.rows.length===0?(l(),c("div",Gy,[u("p",Jy,_(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",Xy,[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",Yy,[(l(!0),c(te,null,Ie(e.card.rows,s=>(l(),c("li",{key:s.key},[q(h(qo),{to:s.to,class:"agents-surface-hover grid grid-cols-[minmax(0,1fr)_72px_84px_14px] items-center gap-3 rounded-md px-2 py-2 text-[13px]"},{default:be(()=>[u("span",Zy,[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",Qy,[u("span",eb,[u("span",tb,_(s.label),1),r(s.agent)?(l(),K(Wn,{key:0,compact:""})):M("",!0)]),s.detail?(l(),c("span",nb,_(s.detail),1)):M("",!0)])]),u("span",rb,[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",ab,_(s.value),1),q(h(Gn),{class:"size-3.5 text-neutral-400","aria-hidden":"true"})]),_:2},1032,["to"])]))),128))]))],8,Hy))}}),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("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 tu=Ye({name:"lucide-rocket",render:lb}),ib={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ub(e,t){return l(),c("svg",ib,[...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 db=Ye({name:"lucide-scale",render:ub}),cb={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function fb(e,t){return l(),c("svg",cb,[...t[0]||(t[0]=[Qh('<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:fb}),pb=["aria-label"],hb={class:"flex w-full items-center gap-2.5"},mb={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"},gb={class:"min-w-0 flex-1"},vb={class:"block truncate text-sm font-medium text-neutral-900 dark:text-neutral-100"},yb={class:"block truncate text-xs text-neutral-500 dark:text-neutral-400"},bb={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"},nu=we({__name:"StarterAgentCard",props:{starter:{},icon:{},stacked:{type:Boolean},copied:{type:Boolean}},emits:["copy"],setup(e){const t=Bo.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",hb,[u("span",mb,[(l(),K(ct(e.icon),{class:"size-4"}))]),u("span",gb,[u("span",vb,_(e.starter.title),1),u("span",yb,_(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",bb,_(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(q0):h(z0)),{class:"size-3.5","aria-hidden":"true"})),Ce(" "+_(e.copied?h(t).copied:h(t).copyPrompt),1)],2)],8,pb))}}),xb={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function kb(e,t){return l(),c("svg",xb,[...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 Us=Ye({name:"lucide-coins",render:kb}),wb={class:"flex shrink-0 flex-col justify-center gap-1.5 sm:w-52"},_b={class:"flex items-center gap-2 text-[13px] font-medium text-neutral-900 dark:text-neutral-100"},$b={class:"flex items-center gap-2 pl-1 text-[13px] text-neutral-700 dark:text-neutral-200"},Ib={class:"mt-2 flex items-center gap-2 text-[13px] font-medium text-neutral-900 dark:text-neutral-100"},Sb=["aria-label"],Cb={class:"pl-6 text-[13px] tabular-nums text-neutral-700 dark:text-neutral-200"},ru=we({__name:"StarterAgentStructure",props:{structure:{},cost:{}},setup(e){const t=Bo.ui;return(n,r)=>(l(),c("span",wb,[u("span",_b,[q(h(xn),{class:"size-4 shrink-0 text-neutral-500 dark:text-neutral-400","aria-hidden":"true"}),Ce(" "+_(e.structure.lead),1)]),(l(!0),c(te,null,Ie(e.structure.parts,a=>(l(),c(te,{key:a.name},[u("span",$b,[q(h(Di),{class:"size-3.5 shrink-0 text-neutral-400 dark:text-neutral-500","aria-hidden":"true"}),Ce(" "+_(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"},[q(h(Di),{class:"size-3 shrink-0 text-neutral-400 dark:text-neutral-500","aria-hidden":"true"}),Ce(" "+_(o),1)]))),128))],64))),128)),u("span",Ib,[q(h(Us),{class:"size-4 shrink-0 text-neutral-500 dark:text-neutral-400","aria-hidden":"true"}),Ce(" "+_(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,Sb)]),u("span",Cb,_(e.cost.range)+" "+_(e.cost.unit),1)]))}}),Tb={class:"flex min-w-0 flex-col gap-3"},Mb=["aria-labelledby"],ff=we({__name:"StarterAgentGrid",props:{labelledBy:{}},setup(e){const t=V0(),n={"x-sentiment":H0,debate:db,"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",Tb,[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"},[q(nu,{stacked:"",starter:p,icon:n[p.id]??h(xn),copied:h(r)&&o.value===p.id,onCopy:f=>s(p)},{default:be(()=>[q(ru,{structure:p.structure,cost:p.cost},null,8,["structure","cost"])]),_:2},1032,["starter","icon","copied","onCopy"])]))),128))],8,Mb),q(nu,{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(()=>[q(ru,{structure:h(t).composition.structure,cost:h(t).composition.cost},null,8,["structure","cost"])]),_:1},8,["starter","icon","copied"])]))}}),au="agents.home.starters",ou="dismissed";function Ab(e,t=Qd()){function n(){try{return t?.getItem(au)===ou}catch{return!1}}const r=R(n()),a=R(null),o=x(()=>a.value??!em(e));return{collapsed:o,dismissed:r,toggle:()=>{a.value=!o.value},dismiss:()=>{r.value=!0;try{t?.setItem(au,ou)}catch{}}}}const Lb={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"},Rb=["aria-label","title","aria-expanded"],Eb=["aria-label","title"],Pb={key:0,class:"flex min-w-0 items-center gap-3 pr-20"},Nb={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"},Ob={id:"home-starters-heading",class:"min-w-0 text-base font-semibold text-neutral-900 dark:text-neutral-100"},Db={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)]"},Bb={class:"flex min-w-0 flex-col gap-5"},Fb={class:"pr-20 lg:pr-0"},jb={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"},qb={id:"home-starters-heading",class:"text-base font-semibold text-neutral-900 dark:text-neutral-100"},zb={class:"mt-1 text-[13px] leading-5 text-neutral-600 dark:text-neutral-400"},Vb={class:"flex flex-col gap-3"},Hb={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"},Ub={class:"min-w-0 flex-1"},Kb={class:"text-[13px] font-medium text-neutral-900 dark:text-neutral-100"},Wb={class:"mt-0.5 text-[13px] leading-5 text-neutral-500 dark:text-neutral-400"},Gb={class:"flex flex-col items-start gap-2"},Jb={class:"text-[13px] leading-5 text-neutral-500 dark:text-neutral-400"},su="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",Xb=we({__name:"HomeStarterAgents",props:{firstRun:{type:Boolean}},setup(e){const t=e,n=x(()=>U0({firstRun:t.firstRun})),{collapsed:r,dismissed:a,toggle:o,dismiss:s}=Ab(()=>t.firstRun);return(i,d)=>h(a)?M("",!0):(l(),c("section",Lb,[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(su),"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))},[q(h(Ll),{class:J(["size-4 transition-transform motion-reduce:transition-none",h(r)?"-rotate-90":""]),"aria-hidden":"true"},null,8,["class"])],8,Rb),u("button",{type:"button",class:J(su),"aria-label":n.value.dismiss,title:n.value.dismiss,onClick:d[1]||(d[1]=(...p)=>h(s)&&h(s)(...p))},[q(h(Fo),{class:"size-4","aria-hidden":"true"})],8,Eb)],2),h(r)?(l(),c("div",Pb,[u("span",Nb,[q(h(tu),{class:"size-4"})]),u("h2",Ob,_(n.value.heading),1)])):(l(),c("div",Db,[u("div",Bb,[u("div",Fb,[u("span",jb,[q(h(tu),{class:"size-4"})]),u("h2",qb,_(n.value.heading),1),u("p",zb,_(n.value.intro),1)]),u("ol",Vb,[(l(!0),c(te,null,Ie(n.value.steps,(p,f)=>(l(),c("li",{key:p.title,class:"flex gap-3"},[u("span",Hb,_(f+1),1),u("div",Ub,[u("p",Kb,_(p.title),1),u("p",Wb,_(p.body),1)])]))),128))]),u("div",Gb,[u("p",Jb,_(n.value.inference),1),q(h(_c),{docs:n.value.docs},null,8,["docs"])])]),q(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 Yb(e){return new Map(e.flatMap(t=>t.user_id?[[t.user_id,Xa(t)]]:[]))}const Zb=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,Zb),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 Qb(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 ex(e,t,n,r){const a=ec(e,t),o=Ns.find(f=>f===a.days)??null,s=`last ${a.days} days`,i=pf(a),d=n.filter(f=>!!f.user_id),p=[Qb(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 tx(e,t,n){const r=ec(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:tc,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 nx={class:"h-full w-full overflow-y-auto"},rx={class:"mx-auto flex w-full max-w-[1760px] flex-col gap-10 px-4 py-6 lg:px-8 min-[1920px]:px-12"},ax={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"},ox=["src"],sx={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"},lx={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"},ix={key:0,class:"-mt-6 text-[13px] text-red-700 dark:text-red-300",role:"alert"},ux={class:"flex min-w-0 flex-col gap-6","aria-label":"Activity and cost"},dx={class:"flex min-w-0 flex-col gap-4","aria-labelledby":"home-dig-in-heading"},cx={class:"flex items-baseline justify-between gap-4"},fx={class:"grid grid-cols-1 gap-x-12 gap-y-8 lg:grid-cols-2 min-[1600px]:grid-cols-3"},px=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"} ${nc(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(()=>K0({known:t.agentsKnown,agentCount:t.allAgents.length})),v=R("threads"),$=x(()=>t.overview?tx(t.overview,t.nowSeconds,t.allAgents.length):[]),b=x(()=>t.overview?W0(t.overview,t.nowSeconds,t.overview.days):[]),T=x(()=>t.overview?ex(t.overview,t.nowSeconds,t.owners,o):[]);return(y,A)=>(l(),c("div",nx,[u("div",rx,[q(wc,{title:n.value.name,description:m.value},ar({leading:be(()=>[p.value?(l(),c("span",ax,[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,ox)])):(l(),c("span",sx,[i.value?(l(),c(te,{key:0},[Ce(_(i.value),1)],64)):(l(),K(h(ra),{key:1,class:"size-5"}))]))]),_:2},[n.value.environment?{name:"badge",fn:be(()=>[u("span",lx,_(n.value.environment),1)]),key:"0"}:void 0]),1032,["title","description"]),e.overviewError?(l(),c("p",ix," Activity is unavailable: "+_(h(ze)(e.overviewError)),1)):M("",!0),q(Xb,{"first-run":g.value},null,8,["first-run"]),e.overview?(l(),c(te,{key:1},[u("section",ux,[q(Vy,{focus:v.value,"onUpdate:focus":A[1]||(A[1]=L=>v.value=L),figures:$.value},null,8,["focus","figures"]),q(Dy,{days:b.value,"usage-since":e.overview.usage_since,focus:v.value},null,8,["days","usage-since","focus"])]),u("section",dx,[u("div",cx,[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)),q(h(qo),{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",fx,[(l(!0),c(te,null,Ie(T.value,L=>(l(),K(ob,{key:L.id,card:L,agents:a.value,"agents-known":e.agentsKnown},null,8,["card","agents","agents-known"]))),128))])])],64)):M("",!0)])]))}}),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("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:mx}),gx={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function vx(e,t){return l(),c("svg",gx,[...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 yx=Ye({name:"lucide-package-open",render:vx}),bx=["aria-expanded","aria-label"],ds="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",xx=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"])},[q(h(hf),{class:"h-4 w-4"})],8,bx),(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(ds),onClick:m[0]||(m[0]=g=>p("pack"))},[q(h(zs),{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(ds),onClick:m[1]||(m[1]=g=>p("unpack"))},[q(h(yx),{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(ds),onClick:m[2]||(m[2]=g=>p("publish"))},[q(h(zs),{class:"h-4 w-4 text-neutral-400"}),m[6]||(m[6]=Ce(" Publish package ",-1))])):M("",!0)],4)):M("",!0)]))],64))}}),kx=["width","height","role","aria-label","aria-hidden"],wx=["d","fill"],_x=["d"],$x=["x1","x2","y2"],Ix=["cx","cy","r"],Sx=["cx","cy"],Cx=3,Tx=we({__name:"SparklineChart",props:{values:{},max:{},marks:{default:()=>[]},height:{default:28},label:{default:void 0}},setup(e){const t=e,n=tm(),r=R(null),{width:a}=Ur(r),o=`sparkline-${jo()}`,s=x(()=>Qv(t.values,{width:Math.max(1,a.value),height:t.height,max:t.max,inset:Cx})),i=R(null),d=R(null);function p(g){if(!n.readout||!r.value)return;const v=r.value.getBoundingClientRect(),$=ey(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,wx),u("path",{d:s.value.line,fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linejoin":"round","stroke-linecap":"round"},null,8,_x),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,$x)):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,Ix)):i.value===b?(l(),c("circle",{key:1,cx:$.x,cy:$.y,r:"2.5",fill:"currentColor"},null,8,Sx)):M("",!0)],64))),128))],8,kx)):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))}}),Mx=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(Tx,{values:e.week.map(o=>o.started),marks:e.week.map(o=>h(ay)(o.failed)),max:e.max,label:`${n.value} threads in the last 7 days`},{readout:be(({index:o})=>[q(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"]))}}),Ax={key:0,class:"flex min-w-0 flex-col gap-1"},Lx={class:"flex min-w-0 items-center gap-1.5 leading-5"},Rx=["src"],Ex={key:1,class:"h-3.5 w-3.5 shrink-0","aria-hidden":"true"},Px={key:3,class:"min-w-0 truncate text-neutral-700 dark:text-neutral-200"},Nx={class:"flex min-w-0 flex-col"},Ox={class:"min-w-0 truncate leading-5 text-neutral-500 dark:text-neutral-400"},Dx=["title"],Bx={key:1,class:"text-neutral-400 dark:text-neutral-500"},Fx=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",Ax,[(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",Lx,[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,Rx)):(l(),c("span",Ex)),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(_(s.name),1)]),_:2},1032,["to"])):(l(),c("span",Px,_(s.name),1))]),u("span",Nx,[u("span",Ox,_(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},_(s.modelId),9,Dx)):M("",!0)])]))),128))])):(l(),c("span",Bx,"No model"))}}}),jx={class:"flex flex-col gap-1.5"},qx={class:"flex min-w-0 items-center gap-1.5"},zx=["src"],Vx={class:"truncate text-neutral-800 dark:text-neutral-200"},Hx={key:0,class:"truncate pl-5 font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},Ux={key:0,class:"mt-2 text-neutral-500 dark:text-neutral-400"},Kx={class:"text-neutral-800 dark:text-neutral-200"},Wx=we({__name:"AgentModelsList",props:{models:{},lastModel:{}},setup(e){return(t,n)=>(l(),c(te,null,[u("ul",jx,[(l(!0),c(te,null,Ie(e.models,r=>(l(),c("li",{key:r.name,class:"min-w-0"},[u("div",qx,[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,zx)):M("",!0),u("span",Vx,_(r.name),1)]),r.modelId?(l(),c("div",Hx,_(r.modelId),1)):M("",!0)]))),128))]),e.lastModel?(l(),c("p",Ux,[n[0]||(n[0]=Ce(" Last run: ",-1)),u("span",Kx,_(e.lastModel.model),1),e.lastModel.provider?(l(),c(te,{key:0},[Ce(" via "+_(e.lastModel.provider),1)],64)):M("",!0)])):M("",!0)],64))}}),Gx=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))}}),Jx={class:"truncate font-medium text-neutral-900 dark:text-neutral-100"},Xx={class:"mb-2 truncate font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},Yx={key:0,class:"mb-2 line-clamp-3 text-neutral-500 dark:text-neutral-400"},Zx={class:"grid grid-cols-[auto_minmax(0,1fr)] gap-x-3 gap-y-1"},Qx={class:"text-neutral-500 dark:text-neutral-400"},ek={class:"truncate text-neutral-800 dark:text-neutral-200"},tk=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(()=>rc(t.agent.definition_diagnostics).map(o=>xl(o))),a=x(()=>[{label:"Shape",value:Os(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(Gx,{"test-id":"agent-shape-card"},{card:be(()=>[u("div",Jx,_(e.agent.title),1),u("div",Xx,_(e.agent.name),1),e.agent.description?(l(),c("p",Yx,_(e.agent.description),1)):M("",!0),u("dl",Zx,[(l(!0),c(te,null,Ie(a.value,i=>(l(),c(te,{key:i.label},[u("dt",Qx,_(i.label),1),u("dd",ek,_(i.value),1)],64))),128)),gt(o.$slots,"details")]),(l(!0),c(te,null,Ie(r.value,i=>(l(),K(Nl,{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}))}}),nk={class:"ui-border border-b text-left text-xs text-neutral-500 dark:text-neutral-400"},rk=["aria-sort"],ak=["onClick"],ok={key:0,scope:"col",class:"w-[40px]"},sk=["data-agent-id","onClick"],lk={class:"pr-3"},ik={class:"flex min-w-0 items-center gap-3"},uk={class:"min-w-0 flex-1"},dk={class:"flex min-w-0 items-center gap-1.5"},ck=["onClick"],fk={class:"tabular-nums text-neutral-800 dark:text-neutral-200"},pk={class:"min-w-0"},hk=["aria-label"],mk=["title"],gk={class:"px-3"},vk={class:"whitespace-nowrap px-3 tabular-nums text-neutral-600 dark:text-neutral-300"},yk={key:0,class:"inline-flex items-center gap-1.5 text-accent-700 dark:text-accent-300"},bk=["title"],xk={key:0,class:"whitespace-nowrap px-3 text-right tabular-nums text-neutral-600 dark:text-neutral-300"},kk={key:1,class:"pl-6 pr-3"},Zr="text-neutral-400 dark:text-neutral-500",lu="text-neutral-800 dark:text-neutral-100",wk=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 G0(f,m)?`Subagent only · ${g}`:g}function i(f){const m=rc(f.definition_diagnostics);return m.length?m.map(J0).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",nk,[(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(_(g.label)+" ",1),e.sortBy===g.key&&e.sortDir==="asc"?(l(),K(h(zm),{key:0,class:"h-3 w-3"})):e.sortBy===g.key?(l(),K(h(Ll),{key:1,class:"h-3 w-3"})):(l(),K(h(Vm),{key:2,class:"h-3 w-3 opacity-40"}))],8,ak)):(l(),c(te,{key:1},[Ce(_(g.label),1)],64))],10,rk))),128)),e.packaging?(l(),c("th",ok,[...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",lk,[u("div",ik,[q(Mn,{icon:g.icon,seed:g.id,class:"h-9 w-9 shrink-0 rounded-lg object-cover"},null,8,["icon","seed"]),u("div",uk,[u("div",dk,[q(tk,{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"])},_(g.title),9,ck)]),_: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",fk,_(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",pk,[q(Wx,{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(zs),{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)},[q(h(oo),{class:"h-3.5 w-3.5 text-amber-600 dark:text-amber-400","aria-hidden":"true"})],8,hk)]),_: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(", ")}`},_(s(g)),9,mk)):M("",!0)])])]),u("td",gk,[e.hasOverview?(l(),K(Mx,{key:0,week:e.metrics.get(g.id)?.week??e.idleWeek,max:a.value},null,8,["week","max"])):M("",!0)]),u("td",vk,[(e.metrics.get(g.id)?.running??0)>0?(l(),c("span",yk,[q(Nr),Ce(" "+_(e.metrics.get(g.id)?.running)+" running ",1)])):e.metrics.get(g.id)?.lastActiveAt?(l(),c(te,{key:1},[Ce(_(h(nc)(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?lu:Zr])},_(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(_(e.metrics.get(g.id)?.failed7d),1),u("span",{class:J(Zr)}," · "+_(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?lu:Zr]),title:d(e.metrics.get(g.id))},_(e.hasOverview?h(_t)(e.metrics.get(g.id)?.cost7d??0):""),11,bk),e.compact?M("",!0):(l(),c("td",xk,_(e.hasOverview?p(e.metrics.get(g.id)):""),1)),e.compact?M("",!0):(l(),c("td",kk,[q(Fx,{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"]))},[q(xx,{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,sk))),128))])],2))}});function _k(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 $k={class:"overflow-x-auto"},Ik={key:0,class:"py-5 text-[13px] text-neutral-500 dark:text-neutral-400"},Sk={key:1,class:"flex max-w-5xl flex-col gap-5 py-6"},Ck={id:"agents-empty-heading",class:"text-sm font-medium text-neutral-900 dark:text-neutral-100"},Tk={class:"mt-1 text-sm text-neutral-500 dark:text-neutral-400"},Mk=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=_k(xt(t,"allAgents")),s=x(()=>X0(t.allAgents)),i=x(()=>t.overview?Y0(t.overview,t.nowSeconds):[]),d=x(()=>Z0({loading:t.loading,known:t.agentsKnown,total:t.allAgents.length,shown:t.agents.length})),p=Q0("agents"),f=x(()=>t.loading?t.filterTabs.map(m=>({...m,count:null})):t.filterTabs);return(m,g)=>(l(),K(qm,null,{default:be(()=>[q(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"},[q(ac,{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",$k,[d.value==="loading"?(l(),c("p",Ik,"Loading agents…")):d.value==="project"?(l(),c("div",Sk,[u("div",null,[u("h2",Ck,_(h(p).message),1),u("p",Tk,_(h(p).description),1)]),q(ff,{class:"rounded-2xl bg-black/[0.03] p-3 dark:bg-white/[0.04]","labelled-by":"agents-empty-heading"}),q(h(_c),{class:"self-start",docs:h(p).docs},null,8,["docs"])])):d.value==="filter"?(l(),K(h(Km),{key:2,align:"start",message:h(Bo).filtered.agents},null,8,["message"])):(l(),K(wk,{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}))}}),Ak={class:"flex min-w-0 items-center gap-1 text-[13px]","aria-label":"Agent"},Lk=["aria-expanded"],Rk={class:"truncate"},Ek=["aria-selected","onClick"],Pk=["title","aria-pressed"],Nk={class:"hidden font-sans text-[11px] text-neutral-400 lg:inline"},iu=40,Ok="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",Dk=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=oc(),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=nh(A+iu,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 T(){d.value=!1,r("selectAll")}const y=[{value:"threads",label:"Threads"},{value:"structure",label:"Structure"}];return(A,L)=>(l(),K(Jm,null,ar({left:be(()=>[u("nav",Ak,[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(th),{key:1,class:"h-4 w-4 shrink-0 text-neutral-500 dark:text-neutral-400","aria-hidden":"true"})),u("span",Rk,_(a.value),1),e.agentMissing?(l(),K(Wn,{key:2})):M("",!0),q(h(Ll),{class:"h-3.5 w-3.5 shrink-0 text-neutral-400"})],8,Lk),d.value?(l(),K(sc,{key:0,class:"absolute left-0 z-50",style:nt({top:`${iu}px`}),agents:e.agents,"max-height":m.value,"selected-id":e.agentId,pins:i.value,"all-option":"",onPick:b,onPickAll:T,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([Ok,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"))},[q(h(eh),{class:"h-4 w-4"}),L[3]||(L[3]=u("span",{class:"hidden lg:inline"},"Inspector",-1)),u("kbd",Nk,_(h(o)),1)],10,Pk)):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(Ds),e.mode===k.value?[h(so),h(lo)]:h(io)]),onClick:C=>r("setMode",k.value)},_(k.label),11,Ek)),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"])}}}),Hl=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 Bk(e){const t=new Map;for(const{type:n,items:r}of Hl(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 Fk(e,t){const n=[],r=new Set;for(const{type:a,items:o}of Hl(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 jk(e){const t=[];let n=0;for(const{type:d,items:p}of Hl(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 qk={class:"font-mono text-sm"},zk={class:"flex items-center gap-2 py-1.5"},Vk={class:"text-neutral-600 dark:text-neutral-400"},Hk={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])])))}}),Uk=we({__name:"DependencyTree",props:{analysis:{},selections:{}},emits:["update:selection"],setup(e,{emit:t}){const n=e,r=t,a=x(()=>jk(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",qk,[u("div",zk,[u("span",Vk,_(a.value.name),1),q(h(Zn),{variant:p(a.value.type),size:"sm"},{default:be(()=>[Ce(_(a.value.type),1)]),_:1},8,["variant"]),u("div",Hk,[q(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"]))]))}}),Kk={key:0,class:"flex items-center justify-center py-12"},Wk={key:1,class:"py-4"},Gk={key:2,class:"py-4 space-y-4"},Jk={class:"space-y-2"},Xk={class:"text-sm opacity-80"},Yk={class:"text-sm opacity-80"},Zk={class:"space-y-4"},Qk={class:"grid grid-cols-2 gap-4"},e1={class:"col-span-2"},t1={class:"col-span-2"},n1={class:"col-span-2"},r1={key:0,class:"mt-3 space-y-3"},a1={class:"flex gap-2 border-b border-neutral-200 dark:border-neutral-700"},o1={key:0},s1=["innerHTML"],l1={class:"space-y-4"},i1={class:"list-disc list-inside space-y-1"},u1={class:"border border-neutral-200 dark:border-neutral-700 rounded-lg p-4 bg-neutral-50 dark:bg-neutral-900/50"},d1={class:"flex justify-between"},c1=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:B=>a("update:modelValue",B)}),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(""),T=R(null),y=R(""),A=R("edit"),L=R(!1),k=x(()=>y.value?go(y.value):""),C=R(new Map);ve(()=>r.modelValue,async B=>{B&&r.agent?await Promise.all([D(),F()]):w()});const w=()=>{I(),s.value=null,p.value=null,f.value=null,C.value=new Map,g.value="",v.value="1.0.0",$.value="MIT",b.value="",y.value="",A.value="edit",L.value=!1,Bt(T)},D=async()=>{if(r.agent){i.value=!0,p.value=null;try{const B=await Be.request(He(`/api/pack/${r.agent.id}/analyze`)),W=await Be.readJson(B);if(s.value=W,W.generatedReadme)y.value=W.generatedReadme;else{const P=U(r.agent?.id||"agent");y.value=N(P,r.agent?.id||"agent",W.agentDescription)}C.value=Bk(W)}catch(B){p.value=ze(B)}finally{i.value=!1}}},F=async()=>{if(r.agent)try{const B=await Be.request(He(`/api/pack/${r.agent.id}/metadata`)),W=await Be.readJson(B);g.value=W.packageName,v.value=E(W.version),$.value=W.license||"MIT",b.value=W.licenseOwner||""}catch{g.value=U(r.agent?.id||"agent"),v.value="1.0.0",$.value="MIT",b.value=""}},U=B=>`standardagent-${B.toLowerCase().replace(/_/g,"-")}`,N=(B,W,P)=>`# ${B}
|
|
7
|
+
|
|
8
|
+
${P||"A Standard Agent package."}
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
\`\`\`bash
|
|
13
|
+
npm install ${B}
|
|
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: '${B}/${W}'
|
|
27
|
+
});
|
|
28
|
+
\`\`\`
|
|
29
|
+
|
|
30
|
+
## License
|
|
31
|
+
|
|
32
|
+
MIT
|
|
33
|
+
`,E=B=>{const W=B.split(".");if(W.length<3)return`${B}.1`;const P=parseInt(W[2],10);return`${W[0]}.${W[1]}.${P+1}`},V=(B,W)=>{C.value.set(B,W),C.value=new Map(C.value)},z=async()=>{if(!(!r.agent||!s.value)){Bt(T),d.value=!0,p.value=null,f.value=null;try{const B=await Be.request(He(`/api/pack/${r.agent.id}`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({itemSelections:Fk(C.value,s.value),packageName:g.value,version:v.value,license:$.value,licenseOwner:b.value,readme:y.value})}),W=await Be.readJson(B);await Kn.invalidateAll(),f.value={success:!0,outputPath:W.outputPath,filesCreated:W.filesCreated,packageId:W.packageId},I(),m=setTimeout(()=>{a("packed",{outputPath:W.outputPath,packageId:W.packageId}),m=null},1500)}catch(B){const W=ze(B);El(B,T)||(p.value=W)}finally{d.value=!1}}},Y=()=>{I(),o.value=!1};function I(){m&&(clearTimeout(m),m=null)}return Hr(I),(B,W)=>{const P=It("FormKit");return l(),K(Rl,{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",d1,[q(h(Tn),{variant:"ghost",onClick:Y},{default:be(()=>[...W[16]||(W[16]=[Ce(" Cancel ",-1)])]),_:1}),q(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},[q(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",Kk,[q(et)])):p.value&&!s.value?(l(),c("div",Wk,[q(h(Ct),{variant:"error"},{default:be(()=>[Ce(_(h(ze)(p.value)),1)]),_:1})])):f.value?.success?(l(),c("div",Gk,[q(h(Ct),{variant:"success"},{default:be(()=>[u("div",Jk,[W[10]||(W[10]=u("p",{class:"font-medium"},"Agent packed",-1)),u("p",Xk," Output: "+_(f.value.outputPath),1),u("p",Yk,_(f.value.filesCreated?.length)+" files created ",1)])]),_:1})])):s.value?(l(),K(P,{key:3,type:"form",id:"pack-agent-form",actions:!1,disabled:d.value,onSubmit:z,onNode:W[8]||(W[8]=X=>T.value=X),"form-class":"$reset space-y-6"},{default:be(()=>[q(h(Sa),{node:T.value||void 0},null,8,["node"]),u("div",Zk,[W[12]||(W[12]=u("h3",{class:"text-sm font-medium text-neutral-700 dark:text-neutral-300"}," Package details ",-1)),u("div",Qk,[u("div",e1,[q(P,{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"])]),q(P,{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"]),q(P,{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",t1,[q(P,{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",n1,[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(Pt)),{class:"w-4 h-4"})),W[11]||(W[11]=Ce(" README ",-1))]),L.value?(l(),c("div",r1,[u("div",a1,[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",o1,[q(P,{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,s1))])):M("",!0)])])]),W[15]||(W[15]=u("hr",{class:"border-neutral-200 dark:border-neutral-700"},null,-1)),u("div",l1,[W[14]||(W[14]=u("h3",{class:"text-sm font-medium text-neutral-700 dark:text-neutral-300"}," Items to Include ",-1)),q(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(_(h(ze)(p.value)),1)]),_:1})):M("",!0),s.value.warnings.length>0?(l(),K(h(Ct),{key:1,variant:"warning"},{default:be(()=>[u("ul",i1,[(l(!0),c(te,null,Ie(s.value.warnings,X=>(l(),c("li",{key:X},_(X),1))),128))])]),_:1})):M("",!0),u("div",u1,[q(Uk,{analysis:s.value,selections:C.value,"onUpdate:selection":V},null,8,["analysis","selections"])])])]),_:1},8,["disabled"])):M("",!0)]),_:1},8,["modelValue","title"])}}});function f1(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 p1={class:"font-mono text-sm"},h1={class:"mb-3 text-xs text-neutral-500 dark:text-neutral-400"},m1={class:"flex items-center gap-2 py-1.5"},g1={class:"text-neutral-600 dark:text-neutral-400"},v1={key:0,class:"ml-auto text-xs text-amber-600 dark:text-amber-400"},y1={key:1,class:"ml-auto text-xs text-emerald-600 dark:text-emerald-400"},b1={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])])))}}),x1=we({__name:"UnpackTree",props:{analysis:{}},setup(e){const t=e,n=x(()=>f1(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",p1,[u("div",h1,_(o.value)+" of "+_(a.value)+" items will be unpacked ",1),(l(!0),c(te,null,Ie(n.value,d=>(l(),c("div",{key:d.uid},[u("div",m1,[u("span",g1,_(d.name),1),q(h(Zn),{variant:r(d.type),size:"sm"},{default:be(()=>[Ce(_(d.type),1)]),_:2},1032,["variant"]),d.existsGlobally?(l(),c("span",v1," already exists ")):(l(),c("span",y1," 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",b1," No items found in this package. ")):M("",!0)]))}}),k1={key:0,class:"flex items-center justify-center py-12"},w1={key:1,class:"py-4"},_1={key:2,class:"py-4"},$1={class:"space-y-2"},I1={class:"text-sm opacity-80"},S1={key:0,class:"text-sm opacity-80"},C1={key:1,class:"text-sm opacity-80"},T1={class:"text-sm text-neutral-600 dark:text-neutral-400"},M1={class:"font-mono"},A1={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 max-h-80 overflow-y-auto"},R1={key:2,class:"flex items-center gap-2"},E1={class:"flex justify-between"},P1=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():(T(),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=ze(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((w,D,F)=>F.findIndex(U=>U.type===w.type&&U.name===w.name)===D).map(w=>({name:w.name,type:w.type,action:w.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})}),C=await Be.readJson(k);await Kn.invalidateAll(),p.value={success:!0,filesGenerated:C.filesGenerated,filesSkipped:C.filesSkipped,packageDeleted:C.packageDeleted},T(),f=setTimeout(()=>{r("unpacked"),f=null},1500)}catch(L){const k=ze(L);El(L,g)||(d.value=k)}finally{i.value=!1}}},b=()=>{T(),Bt(g),a.value=!1};function T(){f&&(clearTimeout(f),f=null)}Hr(T);const y=x(()=>{if(!o.value)return 0;const L=new Set;let k=0;for(const C of o.value.items){const w=`${C.type}:${C.name}`;L.has(w)||(L.add(w),C.existsGlobally||k++)}return k}),A=x(()=>o.value?.source==="local");return(L,k)=>{const C=It("FormKit");return l(),K(Rl,{modelValue:a.value,"onUpdate:modelValue":k[2]||(k[2]=w=>a.value=w),title:`Unpack: ${e.agent?.title||e.agent?.id||""}`,width:"max-w-2xl","min-height":"min-h-[min(20rem,85vh)]"},{footer:be(()=>[u("div",E1,[q(h(Tn),{variant:"ghost",onClick:b},{default:be(()=>[...k[6]||(k[6]=[Ce(" Cancel ",-1)])]),_:1}),q(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},[q(et,{size:"sm",class:"mr-2"}),k[7]||(k[7]=Ce(" Unpacking... ",-1))],64)):(l(),c(te,{key:1},[Ce(" Unpack "+_(y.value)+" "+_(y.value===1?"item":"items"),1)],64))]),_:1},8,["disabled"])])]),default:be(()=>[s.value?(l(),c("div",k1,[q(et)])):d.value&&!o.value?(l(),c("div",w1,[q(h(Ct),{variant:"error"},{default:be(()=>[Ce(_(h(ze)(d.value)),1)]),_:1})])):p.value?.success?(l(),c("div",_1,[q(h(Ct),{variant:"success"},{default:be(()=>[u("div",$1,[k[3]||(k[3]=u("p",{class:"font-medium"},"Agent unpacked",-1)),u("p",I1,_(p.value.filesGenerated?.length||0)+" files unpacked ",1),(p.value.filesSkipped?.length||0)>0?(l(),c("p",S1,_(p.value.filesSkipped?.length)+" files skipped (already exist) ",1)):M("",!0),p.value.packageDeleted?(l(),c("p",C1," Package was deleted from agents/packed/ ")):M("",!0)])]),_:1})])):o.value?(l(),K(C,{key:3,type:"form",id:"unpack-agent-form",actions:!1,disabled:i.value,onSubmit:$,onNode:k[1]||(k[1]=w=>g.value=w),"form-class":"$reset space-y-4"},{default:be(()=>[q(h(Sa),{node:g.value||void 0},null,8,["node"]),u("div",T1,[u("p",null,[k[4]||(k[4]=Ce("Package: ",-1)),u("span",M1,_(o.value.packageId),1),Ce(" v"+_(o.value.version),1)]),u("p",null,"Source: "+_(o.value.source==="npm"?"npm package":"local (agents/packed/)"),1)]),d.value?(l(),K(h(Ct),{key:0,variant:"error"},{default:be(()=>[Ce(_(h(ze)(d.value)),1)]),_:1})):M("",!0),o.value.warnings.length>0?(l(),K(h(Ct),{key:1,variant:"warning"},{default:be(()=>[u("ul",A1,[(l(!0),c(te,null,Ie(o.value.warnings,w=>(l(),c("li",{key:w},_(w),1))),128))])]),_:1})):M("",!0),u("div",L1,[q(x1,{analysis:o.value},null,8,["analysis"])]),A.value?(l(),c("div",R1,[q(C,{type:"checkbox",name:"deletePackage",modelValue:m.value,"onUpdate:modelValue":k[0]||(k[0]=w=>m.value=w),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"])}}}),N1={key:0,class:"space-y-4"},O1={class:"space-y-2"},D1={class:"font-medium"},B1={key:0,class:"text-sm opacity-80"},F1={key:1,class:"text-sm opacity-70"},j1={key:2,class:"text-sm opacity-70"},q1={key:3,class:"text-sm"},z1={key:4,class:"text-sm"},V1=["href"],H1={key:0,class:"space-y-2"},U1={class:"text-xs bg-neutral-100 dark:bg-neutral-800 p-3 rounded-md overflow-x-auto max-h-40 whitespace-pre-wrap"},K1={class:"space-y-3"},W1={key:0,class:"flex items-center gap-2 text-neutral-500"},G1={key:2,class:"p-4 rounded-lg border border-neutral-200 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-900/50"},J1={class:"flex items-center gap-3 mb-3"},X1={class:"text-lg font-semibold text-neutral-900 dark:text-neutral-100"},Y1={key:0,class:"text-sm text-neutral-600 dark:text-neutral-400 mb-3"},Z1={key:1,class:"mt-3"},Q1=["innerHTML"],ew={key:0,class:"border-neutral-200 dark:border-neutral-700"},tw={key:2,class:"flex items-center gap-2 text-neutral-500"},nw={class:"space-y-2 text-sm"},rw={class:"bg-neutral-200 dark:bg-neutral-700 px-1 rounded"},aw={class:"list-decimal list-inside space-y-1 ml-2"},ow={class:"whitespace-pre-wrap text-sm"},sw={class:"flex justify-between"},lw="https://registry.npmjs.org",iw=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:V=>r("update:modelValue",V)}),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"),T=R(!1),y=R(null),A=R(!1),L=R(null),k=R(null),C=async()=>{s.value=!0,i.value=null;try{const V=await Be.request(He(`/api/pack/${encodeURIComponent(n.packageId)}/packed-info`));o.value=await Be.readJson(V)}catch(V){i.value=ze(V)}finally{s.value=!1}},w=async()=>{f.value=!0;try{const V=await Be.request(He("/api/pack/npm-token-status"));p.value=await Be.readJson(V)}catch{p.value=null}finally{f.value=!1}};ve(()=>n.modelValue,V=>{V&&(g.value="",v.value="standard",$.value="",T.value=!1,L.value=null,k.value=null,Bt(y),p.value=null,o.value=null,i.value=null,d.value=!1,C(),w())});const D=x(()=>v.value==="npm"?lw:$.value),F=x(()=>{const V=k.value?.url;return V&&V.startsWith("/marketplace/")?V:null}),U=async()=>{Bt(y),A.value=!0,L.value=null,k.value=null;try{const V={dryRun:T.value};v.value==="standard"?V.target="standard-agents":(V.registry=D.value,g.value.trim()&&(V.token=g.value.trim()));const z=await Be.request(He(`/api/pack/${encodeURIComponent(n.packageId)}/publish`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(V)}),Y=await Be.readJson(z);k.value={success:!0,packageName:Y.packageName,version:Y.version,output:Y.output,url:Y.url,tokenSource:Y.tokenSource},T.value||r("published",{packageName:Y.packageName,version:Y.version,url:Y.url})}catch(V){const z=ze(V),Y=V instanceof Bs&&"output"in V.body?V.body.output:void 0;(V instanceof Bs&&typeof Y=="string"?Pl({...V.body,error:`${z}
|
|
36
|
+
|
|
37
|
+
${Y}`},y):El(V,y))||(L.value=z)}finally{A.value=!1}},N=()=>{Bt(y),a.value=!1},E=()=>T.value?"Dry run completed successfully!":"Package published successfully!";return(V,z)=>{const Y=It("router-link"),I=It("FormKit");return l(),K(Rl,{modelValue:a.value,"onUpdate:modelValue":z[6]||(z[6]=B=>a.value=B),title:"Publish package",width:"max-w-lg","min-height":"min-h-[min(16rem,85vh)]"},{footer:be(()=>[u("div",sw,[q(h(Tn),{variant:"ghost",onClick:N},{default:be(()=>[Ce(_(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},[q(et,{size:"sm",class:"mr-2"}),z[21]||(z[21]=Ce(" Publishing... ",-1))],64)):(l(),c(te,{key:1},[Ce(_(T.value?"Validate":"Publish"),1)],64))]),_:1},8,["disabled"]))])]),default:be(()=>[k.value?.success?(l(),c("div",N1,[q(h(Ct),{variant:T.value?"info":"success"},{default:be(()=>[u("div",O1,[u("p",D1,_(E()),1),k.value.packageName?(l(),c("p",B1," Package: "+_(k.value.packageName)+"@"+_(k.value.version),1)):M("",!0),k.value.tokenSource==="environment"?(l(),c("p",F1," Token: from NPM_TOKEN environment variable ")):k.value.tokenSource==="platform"?(l(),c("p",j1," Signed with this instance's Standard Agents API key ")):M("",!0),F.value&&!T.value?(l(),c("p",q1,[q(Y,{to:F.value,class:"text-primary-600 dark:text-primary-400 hover:underline",onClick:N},{default:be(()=>[...z[7]||(z[7]=[Ce(" View in Marketplace ",-1)])]),_:1},8,["to"])])):k.value.url&&!T.value?(l(),c("p",z1,[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,V1)])):M("",!0)])]),_:1},8,["variant"]),k.value.output?(l(),c("div",H1,[z[8]||(z[8]=u("p",{class:"text-sm font-medium text-neutral-700 dark:text-neutral-300"},"Output:",-1)),u("pre",U1,_(k.value.output),1)])):M("",!0)])):(l(),K(I,{key:1,type:"form",id:"publish-package-form",actions:!1,disabled:A.value,onSubmit:U,onNode:z[5]||(z[5]=B=>y.value=B),"form-class":"$reset space-y-4"},{default:be(()=>[q(h(Sa),{node:y.value||void 0},null,8,["node"]),u("div",K1,[s.value?(l(),c("div",W1,[q(et,{size:"sm"}),z[9]||(z[9]=u("span",{class:"text-sm"},"Loading package info...",-1))])):i.value?(l(),K(h(Ct),{key:1,variant:"error"},{default:be(()=>[Ce(_(h(ze)(i.value)),1)]),_:1})):o.value?(l(),c("div",G1,[u("div",J1,[u("h3",X1,_(o.value.packageName),1),q(h(Zn),{variant:"secondary"},{default:be(()=>[Ce("v"+_(o.value.version),1)]),_:1}),o.value.license?(l(),K(h(Zn),{key:0,variant:"default"},{default:be(()=>[Ce(_(o.value.license),1)]),_:1})):M("",!0)]),o.value.author?(l(),c("p",Y1," by "+_(o.value.author),1)):M("",!0),o.value.readme?(l(),c("div",Z1,[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:z[0]||(z[0]=B=>d.value=!d.value)},[(l(),K(ct(d.value?h(Tl):h(Pt)),{class:"w-4 h-4"})),z[10]||(z[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,Q1)):M("",!0)])):M("",!0)])):M("",!0)]),o.value?(l(),c("hr",ew)):M("",!0),q(I,{type:"radio",name:"registryType",modelValue:v.value,"onUpdate:modelValue":z[1]||(z[1]=B=>v.value=B),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(()=>[...z[11]||(z[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",tw,[q(et,{size:"sm"}),z[12]||(z[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(()=>[...z[13]||(z[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",nw,[z[19]||(z[19]=u("p",null,[u("strong",null,"No NPM_TOKEN configured.")],-1)),u("p",null,[z[14]||(z[14]=Ce("To publish packages, create an npm token and add it to your ",-1)),u("code",rw,_(p.value.envFile),1),z[15]||(z[15]=Ce(" file:",-1))]),u("ol",aw,[z[17]||(z[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 "+_(p.value.envFile)+": ",1),z[16]||(z[16]=u("code",{class:"bg-neutral-200 dark:bg-neutral-700 px-1 rounded"},"NPM_TOKEN=npm_xxxxx",-1))]),z[18]||(z[18]=u("li",null,"Restart the dev server",-1))]),z[20]||(z[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",ow,_(h(ze)(L.value)),1)]),_:1})):M("",!0),b.value&&!p.value?.hasToken&&!f.value?(l(),K(I,{key:6,type:"password",name:"token",modelValue:g.value,"onUpdate:modelValue":z[2]||(z[2]=B=>g.value=B),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(I,{key:7,type:"url",name:"customRegistry",modelValue:$.value,"onUpdate:modelValue":z[3]||(z[3]=B=>$.value=B),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),q(I,{type:"checkbox",name:"dryRun",modelValue:T.value,"onUpdate:modelValue":z[4]||(z[4]=B=>T.value=B),label:"Dry run (validate without publishing)"},null,8,["modelValue"])]),_:1},8,["disabled"]))]),_:1},8,["modelValue"])}}}),ja=24;function uw(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 uu=10;function dw(e,t,n){const r=e*100/uu,a=t>0?Math.floor(r+ua)+1:Math.ceil(r-ua)-1;return Qa(a*uu/100,n)}function du(e,t,n){const r=n>0?n:1;return Math.round((t+e)*r)/r-t}function cw(e,t,n){return{x:du(e.x,t.x,n),y:du(e.y,t.y,n),scale:Math.round(e.scale*100)/100}}const cu=.5,fw=.001;function fu(e,t){return t&&Math.abs(e.x-t.x)<=cu&&Math.abs(e.y-t.y)<=cu&&Math.abs(e.scale-t.scale)<=fw?"actual":"fit"}function pw(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 hw(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 mw(e,t){return{x:-e.x/e.scale,y:-e.y/e.scale,width:t.width/e.scale,height:t.height/e.scale}}function gw(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 vw=.2;function yw(e,t,n,r=vw){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,bw=250,xw=150;function kw(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,T=null,y=null,A=null,L=!1,k=!1,C=null;function w(){L=!0,k=!0}const D=x(()=>{const{x:j,y:ce,scale:he}=i.value;return p.value?{transform:`translate3d(${j}px, ${ce}px, 0) scale(${he})`,zoom:1,transformOrigin:"0 0",willChange:"transform"}:{transform:`translate(${j/he}px, ${ce/he}px)`,zoom:he,transformOrigin:"0 0",willChange:"auto"}}),F=x(()=>Math.round(i.value.scale*100));function U(j){return Math.min(r,Math.max(n,j))}function N(j,ce,he){return Math.min(he,Math.max(ce,j))}function E(j){const ce=U(j.scale),he=e.value,Pe=C;if(!he||!Pe||Pe.width<=0||Pe.height<=0)return{...j,scale:ce};const We=he.getBoundingClientRect();if(We.width<=0||We.height<=0)return{...j,scale:ce};const Ue=Math.max(0,o)/ce,Se=Math.max(0,o)/ce,ge=(We.width/2-j.x)/ce,$e=(We.height/2-j.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 V(){const j=e.value?.getBoundingClientRect();return{x:j?.left??0,y:j?.top??0}}function z(j){return cw(E(j),V(),globalThis.devicePixelRatio||1)}function Y(){b&&clearTimeout(b),b=null}function I(){T&&cancelAnimationFrame(T),T=null}function B(){Y(),y=null,i.value=z(i.value),p.value=!1}function W(){p.value||(i.value=z(i.value))}function P(j,ce={}){if(ce.motion){p.value=!0,i.value=E(j);return}I(),i.value=z(j),p.value=!1}function X(j,ce,he){const{x:Pe,y:We}=i.value,Ue=j/i.value.scale;return{x:ce-(ce-Pe)*Ue,y:he-(he-We)*Ue,scale:j}}function re(){Y(),b=setTimeout(B,xw)}function ne(j){const ce=e.value;if(ce){if(j.ctrlKey||j.metaKey){j.preventDefault(),j.stopPropagation?.(),w(),I();const he=ce.getBoundingClientRect(),Pe=j.clientX-he.left,We=j.clientY-he.top,Ue=Math.min(Math.abs(j.deltaY),10)/10,ge=1+(j.deltaY>0?-1:1)*.03*Ue;y=U((y??i.value.scale)*ge),P(X(Qa(y,s),Pe,We),{motion:!0}),re();return}j.preventDefault(),j.stopPropagation?.(),w(),I(),P({...i.value,x:i.value.x-j.deltaX,y:i.value.y-j.deltaY},{motion:!0}),re()}}function de(j){j.button!==0&&j.button!==1||(g=j.pointerId,d.value=!1,f.x=j.clientX,f.y=j.clientY,f.viewX=i.value.x,f.viewY=i.value.y,m.x=j.clientX,m.y=j.clientY,m.time=Date.now(),v=!1)}function ue(j){if(g!==j.pointerId)return;const ce=j.clientX-m.x,he=j.clientY-m.y,Pe=ce*ce+he*he;!d.value&&Pe>qa*qa&&(d.value=!0,v||(j.currentTarget.setPointerCapture(j.pointerId),v=!0)),d.value&&(I(),P({...i.value,x:f.viewX+(j.clientX-f.x),y:f.viewY+(j.clientY-f.y)},{motion:!0}))}function ae(j){if(g!==j.pointerId)return;const ce=j.clientX-m.x,he=j.clientY-m.y,Pe=ce*ce+he*he,We=Date.now()-m.time<=bw&&Pe<=qa*qa,Ue=d.value;Ue&&w(),We||($=Date.now()+32),d.value=!1,g=null,v&&(j.currentTarget?.releasePointerCapture(j.pointerId),v=!1),Ue&&B()}function xe(){return Date.now()>=$}function Re(){const j=e.value;if(!j)return{cx:0,cy:0};const ce=j.getBoundingClientRect();return{cx:ce.width/2,cy:ce.height/2}}function Me(j){w(),Y(),y=null;const{cx:ce,cy:he}=Re();P(X(dw(i.value.scale,j,s),ce,he))}function Ee(){Me(1)}function ke(){Me(-1)}function ie(j,ce={}){C=j.width>0&&j.height>0?{...j}:null;const he=e.value;if(!he||j.width===0||j.height===0||!ce.force&&k)return;const Pe=he.getBoundingClientRect(),We=(Pe.width-a*2)/j.width,Ue=(Pe.height-a*2)/j.height,Se=Qa(Math.min(We,Ue,1),s,"floor");P({x:(Pe.width-j.width*Se)/2-j.x*Se,y:(Pe.height-j.height*Se)/2-j.y*Se,scale:Se}),k=!1}function se(){k=!1}function me(){P({x:0,y:0,scale:1})}function pe(j){C=j&&j.width>0&&j.height>0?{...j}:null,C&&(i.value=p.value?E(i.value):z(i.value))}function Fe(){A={...i.value},L=!1}function fe(){const j=A;A=null,!(!j||L)&&Te(j)}function Te(j,ce){Y(),y=null;const he={...i.value},Pe=300,We=performance.now();I();function Ue(Se){const ge=Math.min((Se-We)/Pe,1),$e=1-Math.pow(1-ge,3);ge<1?(P({x:he.x+(j.x-he.x)*$e,y:he.y+(j.y-he.y)*$e,scale:he.scale+(j.scale-he.scale)*$e},{motion:!0}),T=requestAnimationFrame(Ue)):(T=null,P(ce?ce():j))}T=requestAnimationFrame(Ue)}nm(e,W);let Z=null;function ee(){if(typeof globalThis.matchMedia!="function")return;const j=globalThis.matchMedia(`(resolution: ${globalThis.devicePixelRatio||1}dppx)`),ce=()=>{Z?.(),W(),ee()};j.addEventListener("change",ce,{once:!0}),Z=()=>j.removeEventListener("change",ce)}ee();function oe(){Y(),I(),Z?.(),Z=null,y=null,g=null,v=!1,d.value=!1,p.value=!1}rm()&&Ml(oe);function Oe(j,ce){const he=e.value;if(!he)return;const Pe=Qa(ce??i.value.scale,s),We=j.x+j.width/2,Ue=j.y+j.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:D,scalePercent:F,onWheel:ne,onPointerDown:de,onPointerMove:ue,onPointerUp:ae,shouldHandleClick:xe,zoomIn:Ee,zoomOut:ke,fitToView:ie,setViewport:P,settle:B,resetAutoFitLock:se,focusNode:Oe,resetView:me,setContentBounds:pe,saveViewport:Fe,restoreViewport:fe}}const ww={class:"pointer-events-none absolute inset-0 h-full w-full","aria-hidden":"true"},_w=we({__name:"CanvasGrid",setup(e){return(t,n)=>(l(),c("svg",ww,[...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)])]))}}),$w={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Iw(e,t){return l(),c("svg",$w,[...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 Sw=Ye({name:"lucide-plus",render:Iw}),Cw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Tw(e,t){return l(),c("svg",Cw,[...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 Mw=Ye({name:"lucide-minus",render:Tw}),Aw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Lw(e,t){return l(),c("svg",Aw,[...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 Rw=Ye({name:"lucide-maximize",render:Lw}),Ew={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Pw(e,t){return l(),c("svg",Ew,[...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 Nw=Ye({name:"lucide-scan-search",render:Pw}),Ow={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"},Dw={class:"min-w-[3rem] text-center text-[11px] font-medium tabular-nums text-neutral-500 dark:text-neutral-400"},Bw=["title","aria-label"],Fw=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",Ow,[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"))},[q(h(Mw),{class:"h-3.5 w-3.5"})]),u("span",Dw,_(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"))},[q(h(Sw),{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(Rw),{key:0,class:"h-3.5 w-3.5"})):(l(),K(h(Nw),{key:1,class:"h-3.5 w-3.5"}))],8,Bw)]))}}),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("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 Ks=Ye({name:"lucide-message-square",render:qw}),zw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Vw(e,t){return l(),c("svg",zw,[...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 Hw=Ye({name:"lucide-message-square-code",render:Vw}),Uw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Kw(e,t){return l(),c("svg",Uw,[...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 Ww=Ye({name:"lucide-square-function",render:Kw}),Gw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Jw(e,t){return l(),c("svg",Gw,[...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 Xw=Ye({name:"lucide-plug",render:Jw}),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("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:Zw}),Qw={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function e_(e,t){return l(),c("svg",Qw,[...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 t_=Ye({name:"lucide-webhook",render:e_}),n_={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function r_(e,t){return l(),c("svg",n_,[...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 a_=Ye({name:"lucide-terminal",render:r_}),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("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 Ws=Ye({name:"lucide-variable",render:s_}),l_={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function i_(e,t){return l(),c("svg",l_,[...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 u_=Ye({name:"lucide-workflow",render:i_}),d_={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function c_(e,t){return l(),c("svg",d_,[...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 f_=Ye({name:"lucide-log-in",render:c_}),xf={agent:xn,variables:Ws,side:null,bank:null,person:wl,handler:a_,prompt:Ks,model:lc,function:Ww,"provider-tool":Xw,subprompt:Hw,subagent:u_,handoff:bf,hook:t_,source:f_},Un=4,Ze=e=>e*Un,dt=Ze(8),p_=Ze(11),cs=Ze(6),fs=dt,fn=Ze(5),h_=Ze(4),St=Ze(4),za=6,kf=Ze(28),m_=Ze(70),g_=Ze(90),v_=Ze(90),y_=Ze(44),b_=Ze(32),x_=Ze(42),jn=Ze(3),Uo=Ze(2),va=jn+St+Uo+jn,wf=Uo+St,mt=Ze(3),pn=dt,wn=Ze(6),pr=Ze(4),k_=Ze(3),w_=Ze(2),pu=Ze(5),gn=Ze(3),Dt=Ze(2),Kr=Ze(6),Jt=Ze(1),Cr=Ze(2),wr=20,Va=20,__=33,Ul=14,hu=wr-7,br=3,Gs=e=>e-Jt-fn+Ul,Kl=e=>e+Jt+Ul,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 $_(){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 I_=.6,S_=1.03;function sr(e){return Math.round(e.size*I_*S_*10)/10}const Aa=sr(vn.name),Ko=sr(vn.kicker),Qn=sr(vn.note),_f=sr(vn.caption),C_=sr(vn.pill),T_=sr(vn.title),M_=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 A_=["transform","data-circuit-id","data-canvas-node-id","aria-label","aria-pressed"],L_=["width","height","rx"],R_=["x","y","width","height"],E_=["x","y"],P_=["x","y"],N_=["x","y"],O_=["y"],D_=["width","height","rx"],B_=["width","height","rx"],F_=["y"],j_=["width","height","rx"],q_=["x","y","width","height"],z_=["x","y"],V_=["x","y"],H_=["width","height","rx"],U_=["y"],K_=["y"],W_=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??"",Ko)+Dt),m=jn+St+Uo,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),T=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":T.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,L_),u("rect",{class:"cs-mark",x:h(mt),y:h(hu),width:h(za),height:h(za)},null,8,R_),u("text",{class:"cs-kicker",x:h(wn),y:h(wr)},_(a.value.kicker),9,E_),a.value.kind==="side"||a.value.kind==="bank"?(l(),c(te,{key:0},[u("text",{class:"cs-note",x:f.value,y:h(wr)},_(a.value.label),9,P_),(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},_(k.label),9,N_))),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},_(a.value.label),11,O_)],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,D_)):(l(),c("rect",{key:1,class:"cs-bar",width:a.value.width,height:a.value.height,rx:h(br)},null,8,B_)),(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},_(a.value.label),9,F_)],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,j_),u("rect",{class:"cs-mark",x:h(mt),y:h(hu),width:h(za),height:h(za)},null,8,q_),u("text",{class:"cs-kicker",x:h(wn),y:h(wr)},_(a.value.kicker),9,z_),u("text",{class:"cs-name",x:f.value,y:h(wr)},_(a.value.label),9,V_)],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,H_),(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},_(a.value.label),9,U_),a.value.caption?(l(),c("text",{key:0,class:"cs-caption",x:m,y:h(__)},_(a.value.caption),9,K_)):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,A_))}}),mu=ot(W_,[["__scopeId","data-v-f7b3e347"]]),G_={class:"text-[11px] font-medium text-neutral-500 dark:text-neutral-400"},J_={class:"mt-0.5 break-all font-mono text-[12.5px] font-semibold text-neutral-900 dark:text-neutral-50"},X_={key:0,class:"break-all font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},Y_={key:1,class:"mt-1.5 line-clamp-3 text-neutral-600 dark:text-neutral-300"},Z_={key:2,class:"mt-2 flex items-start gap-1.5"},Q_={class:"min-w-0"},e2={class:"font-medium text-amber-700 dark:text-amber-300"},t2={class:"text-neutral-600 dark:text-neutral-300"},n2={key:3,class:"mt-2 grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5"},r2={class:"text-neutral-500 dark:text-neutral-400"},a2={class:"truncate text-right font-mono text-neutral-800 dark:text-neutral-200"},o2=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",G_,_(e.summary.kind),1),u("div",J_,_(e.summary.title),1),e.summary.subtitle?(l(),c("div",X_,_(e.summary.subtitle),1)):M("",!0),e.summary.description?(l(),c("p",Y_,_(e.summary.description),1)):M("",!0),e.summary.notice?(l(),c("div",Z_,[q(h(Cl),{size:13,class:"mt-px shrink-0 text-amber-600 dark:text-amber-400","aria-hidden":"true"}),u("div",Q_,[u("div",e2,_(e.summary.notice.title),1),u("div",t2,_(e.summary.notice.text),1)])])):M("",!0),e.summary.rows.length>0?(l(),c("dl",n2,[(l(!0),c(te,null,Ie(e.summary.rows,r=>(l(),c(te,{key:r.label},[u("dt",r2,_(r.label),1),u("dd",a2,_(r.value),1)],64))),128))])):M("",!0)],4))}}),Wl=4,Wt=.5,gu=8,ps=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,s2=(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,hs=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),Tr=(e,t,n)=>hs(t,e)+hs(e,n)-hs(t,n)<Wt;function l2(e,t,n=[],r=Wl){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):s2(v.a,v.b)&&o.push(v)}const s=[...e.flatMap(m=>m.points),...t],i=new Set(s.map(ps)),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(ps(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(T=>Math.abs(T-v.x)<d))||p.set(ps(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 Js(e,t,n=Wl){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<=gu;p++){const f=Math.PI*p/gu;r.push({x:d.x-i*n*Math.cos(f),y:d.y-n*Math.sin(f)})}r.push(s)}return r}function i2(e,t,n=Wl){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}`,u2=["width","height","viewBox","aria-label"],d2=["id"],c2={"aria-hidden":"true"},f2=["x","y","width","height"],p2=["d","marker-end"],h2=["cx","cy"],m2=["x","y","text-anchor"],g2=["transform"],v2=["width","height","rx"],y2=["x","y"],b2={key:1,class:"absolute inset-0 z-10 flex items-center justify-center bg-neutral-100 dark:bg-neutral-950"},x2={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"},k2={key:3,class:"absolute inset-0 flex flex-col items-center justify-center gap-3 text-neutral-400 dark:text-neutral-600"},w2=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=$_(),i=R(null),{state:d,isPanning:p,transformStyle:f,scalePercent:m,onWheel:g,onPointerDown:v,onPointerMove:$,onPointerUp:b,shouldHandleClick:T,zoomIn:y,zoomOut:A,fitToView:L,setViewport:k,settle:C,focusNode:w,setContentBounds:D}=kw(i,{maxScale:1.6,padding:40,panPadding:40});Ri(Z=>{const ee=i.value;ee&&(ee.addEventListener("wheel",g,{passive:!1}),Z(()=>ee.removeEventListener("wheel",g)))});const F=x(()=>o.value?.bounds??null);Ri(()=>D(F.value));const{width:U,height:N}=Ur(i),E=x(()=>({width:U.value,height:N.value})),V=new Set(["bank","side","person","handler"]),z=x(()=>o.value?.frames.find(Z=>Z.kind==="agent")??null),Y=R(null);let I=null;const B=R(null);function W(){z.value&&(k(uw(z.value,E.value)),I={...d.value},B.value=null)}ve([()=>r.agent?.id??null,z,E],([Z])=>{if(!Z||!z.value||E.value.width===0||E.value.height===0)return;const ee=I!==null&&fu(d.value,I)==="actual";Y.value===Z&&!ee||(Y.value=Z,W())},{immediate:!0});const P=x(()=>fu(d.value,B.value));function X(){if(P.value==="actual"||!F.value){W();return}L(F.value,{force:!0}),B.value={...d.value},I=null}const re=x(()=>o.value?{layout:o.value,state:d.value,view:E.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((j,ce)=>{Z.get(ce)!=="failed"&&oe.points.some((he,Pe)=>Pe>0&&Tr(j,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 i2(Z,o.value?.hops??[])}function ke(Z){p.value||(ne.value=Z,a("hover-node",Z?.selectionId??null))}function ie(Z){T()&&a("select",Z)}function se(){T()&&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:j}=d.value,ce=288,he=(Z.x+Z.width)*j+oe+10,Pe=he+ce<ee.clientWidth?he:Math.max(8,Z.x*j+oe-ce-10),We=Math.min(Math.max(8,Z.y*j+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),w(ee),!0):!1}function Fe(Z){const ee=yw(d.value,Z,E.value);ee&&k(ee,{motion:!0})}const fe=zo();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,E.value))}else w(Z)}return t({selectById:pe,followPoint:Fe,centerOn:Te,settleFollow:C,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},[q(_w),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,d2)),64))]),(l(!0),c(te,null,Ie(o.value.components.filter(oe=>h(V).has(oe.kind)),oe=>(l(),K(mu,{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",c2,[(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,f2))),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,p2))),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,h2))),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},_(oe.text),11,m2))),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,v2),u("text",{class:"cc-pill-text",x:oe.width/2,y:h(Ul)},_(oe.text),9,y2)],10,g2))),128))]),(l(!0),c(te,null,Ie(o.value.components.filter(oe=>!h(V).has(oe.kind)),oe=>(l(),K(mu,{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,u2))],4)):M("",!0)],34),me.value?(l(),K(o2,{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",b2,[...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",x2,_(e.error),1)):M("",!0),!e.agent&&!e.loading&&!e.error?(l(),c("div",k2,[q(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(Fw,{key:4,"scale-percent":h(m),"fit-action":P.value,onZoomIn:h(y),onZoomOut:h(A),onToggleFit:X},null,8,["scale-percent","fit-action","onZoomIn","onZoomOut"])):M("",!0)],4))}}),Tf=ot(w2,[["__scopeId","data-v-9353a7bd"]]),Mf=["before_create_message","after_create_message","before_update_message","after_update_message"],_2=new Set(Mf),Af=["after_system_message","filter_messages","prefilter_llm_history"],$2=new Set(Af),I2=["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"]),S2=new Set(Lf.filter(e=>!Rf.has(e))),C2=new Set(["user_client_attached","user_client_detached","user_value_changed"]);function lr(e){return _2.has(e)?"message":$2.has(e)?"request":Rf.has(e)?"toolCall":S2.has(e)?"toolResult":"thread"}function Wo(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 T2(e,t){return Wo(Lf,e,t)}function M2(e,t){return Wo(Af,e,t)}function A2(e,t){return Wo(Mf,e,t)}function Xs(e,t){return Wo(I2,e,t)}const L2={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 R2(e){return C2.has(e)?"Runs in the user's hub, outside this thread's turns":L2[lr(e)]}function yo(e,t,n){return t?{selectionId:Hs(e.rootPrefix,t.id),model:t,name:t.name}:n?{selectionId:Hs(e.rootPrefix,n),model:null,name:n}:null}function E2(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=E2(e,i);return{selectionId:Oc(n,d),entry:p,target:lr(p.hook)}}),items:s}}function P2(e,t,n,r){return t.tools.map((a,o)=>{if(a.kind==="subagent"){const i=Dl(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 vu(e,t,n,r){if(!t)return null;const a=P2(e,t,n,r),o=Bl(n,t.id);return t.mode!=="ai"||!t.prompt?{selectionId:o,side:t,circuit:null,items:a}:{selectionId:o,side:t,items:[],circuit:{selectionId:Fl(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:vu(e,n.find(d=>d.id==="a"),r,i),sideB:vu(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 N2(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 O2(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(Zd,rh(e))]:[]}}function D2(e,t){return{kind:"Model",title:t,subtitle:e?.model,rows:e?[...ft("Provider",e.provider),...ft("Price",N2(e)),...ft("Fallbacks",e.fallbacks?.map(n=>n.name).join(", ")),...ft("Provider tools",e.providerTools?.join(", "))]:[]}}const B2={tool:"Function tool",prompt:"Sub-prompt",provider:"Provider tool",mcp:"MCP tool",handoff:"Handoff",subagent:"Subagent",unknown:"Tool"};function Gl(e,t=null){return{kind:B2[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 F2(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(ql(t),n||null)]}}function j2(e){return{kind:"Hook",title:e.entry.id,subtitle:e.entry.hook,description:R2(e.entry.hook),rows:[]}}function q2(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 yu=10,z2=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-yu,width:i,height:yu+z2}}),...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 V2=2,bu=2,H2=3,aa=mt,Ha=pn,U2=pn,bo=gn,ms=gn,K2=200*Un,W2=e=>`${e}::bank`;function xu(e){return e.kind==="function"||e.kind==="provider-tool"}function G2(e){const t=e.filter(xu);if(t.length<V2)return e.map(r=>({kind:"item",item:r}));const n=[];for(const r of e)xu(r)?r===t[0]&&n.push({kind:"bank",items:t}):n.push({kind:"item",item:r});return n}function J2(e,t,n){const r=Math.floor((n-aa*2+bo)/(t+bo));let a=Math.min(e,H2,Math.max(bu,r));for(;a>bu&&Math.ceil(e/(a-1))===Math.ceil(e/a);)a--;return a}function X2(e,t){return Array.from({length:e},(n,r)=>({column:r%t,row:Math.floor(r/t)}))}function Y2(e){return{tools:e.filter(t=>t.tool.kind!=="provider"),providerTools:e.filter(t=>t.tool.kind==="provider")}}const Nt=p_,Ff=pn+dt+mt,Z2=Kr,Jl=Kr,Q2=Ze(4),e$=Jt+fn+gn,jf=gn,Ys=Kr,t$=jn+St/2,Zs=Ze(4),qf=Ze(3),oa=Ze(2),n$=Nt/2+gn,zf=Ze(2),Vf=Ze(4),sa=Ze(4),qn=Ze(4),xo=pn+dt/2,Xl=xo+gn,r$=Ze(4),a$=Ze(2),o$=Ze(1),s$=Ze(4),l$=Ze(2),ku="spawns",i$="returns",bn=Un,Ua=Kr,gs=Ze(10),Qs=Jt+fn+Jt,wu=Qs+bn+Jt+fn+Jt,u$=Kr,hr=k_,_u=Ze(3),$u=Ze(2),_r=Ze(4),Qr=Ze(4),d$=Kr,c$=gn,f$=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(m_,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(g_,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:j2(e)},{x:t,y:n,width:r,height:Nt},r-va)}function Kf(e){return Tt(e,C_)+w_*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:Zs+Math.max(...e.map(tr))}function p$(e){return e.length===0?0:Vf+e.length*Nt+(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)*Nt-i*zf,p=tr(s),f=a==="right"?n.x+Zs:n.x-Zs-p;e.components.push(qr(s,f,d));const m=d+Nt/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 el(e,t,n,r,a){return jr({id:Hf(e),selectionId:t.selectionId,kind:"model",name:t.name,summary:D2(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:Gl(e.tool,t),...e.tool.unoffered?{unoffered:!0}:{}}}function h$(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:Gl(e.tool)}}function m$(e){return!!(e&&(e.items.length>0||e.hooks.length>0))}function g$(e){const t=new Xt,n=jr(Xf(e),0,0);if(t.components.push(n),e.model){const r=el(e.selectionId,e.model,n.width+Ys,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 v$(e){const t=m$(e.circuit)?Zf(e.circuit,{kind:"chip",spec:Xf(e)},"right",e.circuit.hooks):g$(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 y$(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 b$(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:y$(e),summary:e.agent?Df(e.agent.agent,e.tool):Gl(e.tool)},a=er(r.name),o=r.caption?Nt: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 x$(e,t,n,r){const a=new Xt,o=W2(t),s=Y2(e),i=ql(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=J2(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&&(X2(A.length,f).forEach(({column:k,row:C},w)=>{const D={x:aa+k*(p+bo),y:g+C*(dt+ms),width:p,height:dt},F=d.get(A[w]);if(F){a.components.push(rn(F,D,La(p)));const U=D.x+Math.round(D.width/2),N=D.y-ms/2;pt(a,`${F.id}::bank-wire`,[{x:0,y:Ha/2},{x:$,y:Ha/2},{x:$,y:N},{x:U,y:N},{x:U,y:D.y}],"bus",!1,o,F.id)}}),g+=L*dt+(L-1)*ms)};b(s.tools),s.providerTools.length>0&&(s.tools.length>0&&(v.push({label:i,y:g+wr}),g+=U2),b(s.providerTools));const T=g+aa,y=rn({id:o,selectionId:o,kind:"bank",name:`${e.length}`,kicker:s.tools.length>0?"Tools":i,summary:F2(e.map(A=>A.tool),r)},{x:0,y:0,width:m,height:T},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 k$(e,t){return e.kind==="subprompt"?v$(e):e.kind==="subagent"?b$(e):h$(e,t)}function w$(e){return e.toolHistoryFinding?{text:Ps,tone:"warning"}:ah(e.prompt)?{text:Ps,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:Kl(s),anchor:"start"});let C=k+Tt(t.label,Qn)+Dt;const w=s+Jt;if(t.rule){const D=$r(_n.busRule(t.id),t.rule,C,w,"rule");e.pills.push(D),C=D.x+D.width+Dt}t.pastTools&&e.pills.push($r(_n.pastTools(t.id),t.pastTools.text,C,w,t.pastTools.tone))}const i=o+Z2;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 C=d+Nt/2;return pt(e,it.busTap(k.selectionId),[{x:o,y:C},{x:i,y:C}],"tap",!1,t.id,k.selectionId),d+=Nt+gn,C},m=r.map(f),g=G2(n),v=t.provider??null,$=g.map(k=>k.kind==="item"?k$(k.item,v):null),b=Math.max(K2,...$.map(k=>k?.fragment.width??0));for(const[k,C]of g.entries()){const w=$[k]??(C.kind==="bank"?x$(C.items,t.id,b,v):null);if(!w)continue;e.place(w.fragment,i,d);const D=d+w.anchor.y;pt(e,it.busStub(w.headId),[{x:o,y:D},{x:i+w.anchor.x,y:D}],"bus",!0,t.id,w.headId),m.push(D),d+=w.fragment.height+gn}const T=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:T}],"bus",!1,t.id,t.id),a.length===0){for(const k of m)k!==T&&e.junctions.push({x:o,y:k});return}d+=oa;const y=a.map(f),A=Math.max(...y)+n$,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:T},{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=M2(zn(r,["request"]),T=>T.entry.hook);let s,i,d;if(t.kind==="panel"){const T=`Side ${t.side.id.toUpperCase()}`,y=t.side.toolHistoryFinding??null,A=Tt(T,Ko),L=Math.max(y_,er(e.name,!!y)+mt*2,e.model?er(e.model.name)+mt*2:0,...o.map(W=>tr(W)+mt*2),wn+A+Dt+Tt(t.side.label,Qn)+mt),k=L-mt*2;i=t.sideSelectionId;const C=jr({id:e.selectionId,selectionId:e.selectionId,kind:"prompt",name:e.name,containerId:t.sideSelectionId,summary:O2(e.prompt,e.name,y),...y?{warning:!0}:{}},mt,pn,k),w=mt+t$;let D=pn+dt,F=C.id;const U=[];for(const W of o){const P={...qr(W,mt,D+pu,k),containerId:t.sideSelectionId};pt(a,`${W.selectionId}::request-in`,[{x:w,y:D},{x:w,y:P.y}],"model",!0,F,P.id),U.push(P),F=P.id,D=P.y+Nt}const N=e.model?{...el(e.selectionId,e.model,mt,D+pu,k),containerId:t.sideSelectionId}:null;N&&(pt(a,`${e.selectionId}::model-wire`,[{x:w,y:D},{x:w,y:N.y}],"model",!0,F,N.id),D=N.y+dt),s={x:0,y:0,width:L,height:N||U.length>0?D+mt:Ff},a.components.push(rn({id:t.sideSelectionId,selectionId:t.sideSelectionId,kind:"side",name:t.side.label,kicker:T,summary:Bf(t.side)},s,L-wn-A-Dt-mt,Qn),C,...U,...N?[N]:[]);const E=n==="right",V=E?0:L,z=W=>E?W.x:W.x+W.width,Y=E?xo:Xl,I=Y>C.y&&Y<C.y+dt?Y:C.y+dt/2;pt(a,`${e.selectionId}::inlet`,[{x:V,y:I},{x:z(C),y:I}],"signal",!1,i,C.id);const B=N??U[U.length-1];if(B){const W=B.y+B.height/2;pt(a,`${e.selectionId}::outlet`,[{x:z(B),y:W},{x:V,y:W}],"signal",!1,B.id,i)}d={rect:s,id:i}}else{const T=jr(t.spec,0,0);a.components.push(T),s={x:0,y:0,width:T.width,height:dt},i=T.id,d={rect:s,id:i};const y=dt/2;let A=s.width,L=T.id;for(const k of o){const C=qr(k,A+Ys,y-Nt/2);a.components.push(C),pt(a,`${k.selectionId}::request-in`,[{x:A,y},{x:C.x,y}],"model",!0,L,C.id),L=C.id,A=C.x+C.width}if(e.model){const k=el(e.selectionId,e.model,A+Ys,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=T=>T2(T,y=>y.entry.hook),f=p(zn(r,["toolCall"])),m=p(zn(r,["toolResult"])),g=t.kind==="panel",v=Q2+(m.length>0?qf:0);Yf(a,{rect:d.rect,id:d.id,inset:g?Jl:v,headBand:g?e$:jf,label:g?"tool calls":void 0,rule:g&&t.side.maxSteps?`maxSteps: ${t.side.maxSteps}`:void 0,pastTools:g?w$(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 Iu(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+Uo,i=r?Aa:T_,d=Math.max(b_,s+Tt(a,i)+mt,wn+Tt(o,Ko)+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:Jl,headBand:jf},e.items,[],[]),{fragment:n.toFragment().fragment,panel:p}}function Su(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 _$(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?A2(zn(e.circuit.hooks,["message"]),t=>t.entry.hook):[]}function $$(e){return!!(e&&[...e.items,...e.circuit?.items??[]].some(t=>t.kind==="subagent"&&t.agent))}function wo(e){return!e?.circuit||!$$(e)?[]:zn(e.circuit.hooks,["thread"]).filter(t=>t.entry.hook==="after_subagent_created")}function I$(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 Xs(n,r=>r.entry.hook)}const tl="stops on response";function _o(e,t){const n=t?Dt+Kf(tl):0;return Tt(e,Qn)+n}function S$(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 C$(e,t,n){const a=[...ko(e.sideB),...ko(e.sideA)].reduce((o,s)=>o+sa+Wf([s]),0);return Math.max(x_,n.messageLeft+_o("message",t.message)+a+n.messageRight,n.replyLeft+_o("reply",t.reply)+n.replyRight)}const T$=Xl+Jt+fn;function M$(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 A$(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,Ko),d=Math.min(v_,wn+i+Dt+Tt(s,Aa)+mt),p=I$(e),f=p.length>0?Nt:fs,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-fs/2,width:d,height:fs},d-wn-i-Dt-mt);a.components.push(g);let v=g.x+g.width,$=g.id;for(const j of p){const ce=qr(j,v+u$,m-Nt/2);a.components.push(ce),pt(a,`${j.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[j,ce]of(n?_$(s,n):[]).entries()){const he=$r(`${e.selectionId}::relationship-${j}`,ce,v+Dt,m-fn/2,"rule");a.pills.push(he),v=he.x+he.width}if(t.max_session_turns){const j=$r(_n.sessionTurns(e.selectionId),`maxSessionTurns: ${t.max_session_turns}`,v+Dt,m-fn/2,"rule");a.pills.push(j),v=j.x+j.width}const b=t._variables?.length??0;if(b>0){const j=jr({id:`${e.selectionId}::variables`,selectionId:e.selectionId,kind:"variables",name:`${b} variable${b===1?"":"s"}`,summary:q2(t)},v+Dt,m-dt/2);a.components.push(j),v=j.x+j.width}const T=e.sideB?Iu(e.sideB):null,y=e.sideA?Iu(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),C=S$(e),w=C$(e,A,C),D=p$([...L,...k].slice(0,1)),F=Math.max(T?.panel.y??0,y?.panel.y??0,D-xo+Un),N=pr+f+_u,E=N+_u,V=pr,z=V+(T?.fragment.width??0),Y=T?V+M$(T.fragment,T.panel.y+Math.max(T.panel.height,T$)):V,I=Y+w,B=E+F,W=y?Math.max(I-y.panel.x,z+sa):I;T&&a.place(T.fragment,V,B-T.panel.y);const P=a.ports.splice(0);y&&a.place(y.fragment,W,B-y.panel.y);const X=a.ports.splice(0),re=T?V+T.panel.x+T.panel.width:Y,ne=y?W+y.panel.x:I,de=B+xo,ue=B+Xl,ae=e.sideB?.selectionId??e.selectionId,xe=e.sideA?.selectionId??e.selectionId,Re=(j,ce)=>{const he=j?.circuit?a.wires.find(Pe=>Pe.id===`${j.circuit?.selectionId}::${ce}`)?.points:void 0;return he?ce==="inlet"?he[0]:he[he.length-1]:null},Me=(j,ce,he)=>j&&j.y!==ce?[j,{x:j.x+he,y:j.y},{x:j.x+he,y:ce}]:[],Ee=Math.max(Y+qn/2,re+_r+qn/2);if(y&&T){const j=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=[...j.length>0?j:[{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+C.messageLeft;if(a.texts.push({id:`${e.selectionId}::message-label`,text:"message",x:Se,y:Gs(de),anchor:"start"}),A.message){const Xe=Se+Tt("message",Qn)+Dt;a.pills.push($r(_n.stopOnResponse(e.selectionId,"b"),tl,Xe,de-Jt-fn,"rule"))}const ge=Y+C.replyLeft,$e=ne-C.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:Kl(ue),anchor:"start"}),A.reply){const Xe=_e+Tt("reply",Qn)+Dt;a.pills.push($r(_n.stopOnResponse(e.selectionId,"a"),tl,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}),Su(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+d$;for(const j of e.entrySources??[]){const ce=j.side==="a"?y:T;if(!ce)continue;const he=er(j.label),Pe=rn({id:j.id,selectionId:e.selectionId,kind:"source",name:j.label,summary:{kind:"Entry source",title:j.label,description:"Starts runs from outside the drawn parts",rows:[]}},{x:ie,y:-f$-cs,width:he,height:cs},La(he));a.components.push(Pe),ie+=he+c$;const We=j.side==="a"?xe:ae,Ue=y&&T,Se=Ue?j.side==="a"?{x:Ee,y:de}:{x:ne-_r-qn/2,y:ue}:{x:(j.side==="a"?W:V)+ce.panel.x+Jl,y:B},ge=Pe.x+Math.round(he/2),$e=Mr([{x:ge,y:Pe.y+cs},{x:ge,y:ke},{x:Se.x,y:ke},Se]);pt(a,it.source(j.id),$e,"signal",!0,j.id,We),Ue&&a.junctions.push(Se)}const se=a.bounds(),me=se.y+se.height,pe=j=>me+r$+j*a$,Fe=Math.max(se.x+se.width,v)+pr,fe=(P.length>0?pe(P.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(o$,(sa-8)/Math.max(1,P.length)),Z=[...X.map(j=>({chipId:j.chipId,blockId:j.blockId,hooks:Xs(wo(e.sideA),ce=>ce.entry.hook),points:[{x:j.x,y:j.y},{x:Fe,y:j.y}]})),...P.map((j,ce)=>{const he=z+4+ce*Te;return{chipId:j.chipId,blockId:j.blockId,hooks:Xs(wo(e.sideB),Pe=>Pe.entry.hook),points:[{x:j.x,y:j.y},{x:he,y:j.y},{x:he,y:pe(ce)},{x:Fe,y:pe(ce)}]}})].sort((j,ce)=>j.points[j.points.length-1].y-ce.points[ce.points.length-1].y),{fragment:ee,offset:oe}=a.toFragment(),Oe=j=>({x:j.x+oe.x,y:j.y+oe.y});return{fragment:ee,entry:Oe({x:g.x+Ua,y:g.y}),returnStart:r&&Su(e)?Oe({x:g.x+Ua-bn,y:g.y}):null,exits:Z.map(j=>({...j,points:j.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 L$(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=A$(e);if(t.exits.length===0)return t;const n=R$(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*(Nt+Qr)-Qr;let d=Math.max(t.fragment.height+wu,s>0?i+2*Qr+Qs:0);const p=t.exits.flatMap(v=>{const $=n.find(A=>A.selectionId===v.blockId);if(!$)return[];const b=tp($);r.place(b.fragment,gs,d);const T={x:gs+b.entry.x,y:d+b.entry.y},y=d-Qs;return d+=b.fragment.height+wu,[{exit:v,entry:T,laneY:y,returns:b.returnStart!==null,right:gs+b.fragment.width}]});let f=t.fragment.width;p.forEach(({exit:v,entry:$,laneY:b,returns:T,right:y},A)=>{const L=Math.max(0,...v.hooks.map(F=>tr(F))),k=f+s$+A*l$+Math.ceil(L/2);f=Math.max(f,y,v.hooks.length>0?k+Math.ceil(L/2):0);const C=v.points[v.points.length-1].y,w=Mr([...v.points,{x:k,y:C},{x:k,y:b},{x:$.x,y:b},$]);if(v.hooks.length===0)pt(r,it.link(v.blockId),w,"subagent",!0,v.chipId,v.blockId);else{const F=v.hooks.map((E,V)=>{const z=tr(E),Y={...qr(E,k-Math.round(z/2),o+V*(Nt+Qr)),id:ep(E.selectionId,v.blockId)};return r.components.push(Y),Y}),U=F[0],N=F[F.length-1];pt(r,it.link(v.blockId),Mr([...v.points,{x:k,y:C},{x:k,y:U.y}]),"subagent",!0,v.chipId,U.id),F.slice(1).forEach((E,V)=>{const z=F[V];pt(r,`${E.id}::in`,[{x:k,y:z.y+z.height},{x:k,y:E.y}],"subagent",!0,z.id,E.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(!T){r.texts.push({id:`${v.blockId}::link-label`,text:ku,x:$.x+Cr,y:Gs(b),anchor:"start"});return}let D=Qf(w,bn).reverse();if(v.hooks.length>0){const F=D.some(N=>N.x===k+bn)?k+bn:k-bn,U=F<k?k-Math.ceil(L/2)-oa:k+Math.ceil(L/2)+oa;D=L$(D,F,o-oa,i+oa,U)}pt(r,it.returns(v.blockId),D,"subagent",!0,v.blockId,v.chipId),r.texts.push({id:`${v.blockId}::link-label`,text:ku,x:$.x+Cr,y:Kl(b),anchor:"start"}),r.texts.push({id:`${v.blockId}::returns-label`,text:i$,x:$.x+Cr,y:Gs(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 R$(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:l2(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 E$={class:"shrink-0 border-b border-neutral-200 p-3 dark:border-neutral-800","aria-label":"Navigator"},P$=["width","height","viewBox"],N$=["x","y","width","height"],O$=["points"],D$=["x","y","width","height"],B$=["x","y","width","height"],Cu=180,F$=10,j$=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(()=>mw(n.state,n.view)),d=x(()=>({width:o.value,height:s.value||Cu})),p=x(()=>pw(n.layout.bounds,d.value,F$)),f=x(()=>hw(p.value,d.value)),m=x(()=>{const{x:k,y:C,width:w,height:D}=p.value;return`${k} ${C} ${w} ${D}`});function g(k){return k.map(C=>`${C.x},${C.y}`).join(" ")}const v=R(null);let $=null;function b(k){const C=v.value?.getBoundingClientRect();return C?gw({x:k.clientX-C.left,y:k.clientY-C.top},p.value,f.value):null}function T(k){r("pan",yf(k,n.state.scale,n.view))}function y(k){if(k.button!==0)return;const C=b(k);if(!C)return;const w=i.value,D=C.x>=w.x&&C.x<=w.x+w.width&&C.y>=w.y&&C.y<=w.y+w.height,F={x:w.x+w.width/2,y:w.y+w.height/2};$=D?{x:C.x-F.x,y:C.y-F.y}:{x:0,y:0},k.currentTarget.setPointerCapture(k.pointerId),T({x:C.x-$.x,y:C.y-$.y})}function A(k){if(!$)return;const C=b(k);C&&T({x:C.x-$.x,y:C.y-$.y})}function L(k){$&&($=null,k.currentTarget.releasePointerCapture(k.pointerId))}return(k,C)=>(l(),c("section",E$,[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:`${Cu}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,w=>(l(),c("rect",{key:w.id,class:J(["fill-none",w.kind==="subprompt"?"stroke-amber-400/70":"stroke-neutral-300 dark:stroke-neutral-600"]),x:w.x,y:w.y,width:w.width,height:w.height,rx:"6","stroke-width":"1","vector-effect":"non-scaling-stroke"},null,10,N$))),128)),(l(!0),c(te,null,Ie(e.layout.wires,w=>(l(),c("polyline",{key:w.id,class:"fill-none stroke-neutral-300 dark:stroke-neutral-600",points:g(w.points),"stroke-width":"0.75","vector-effect":"non-scaling-stroke"},null,8,O$))),128)),(l(!0),c(te,null,Ie(e.layout.components,w=>(l(),c("rect",{key:w.id,class:"fill-neutral-400/70 dark:fill-neutral-500/70",x:w.x,y:w.y,width:w.width,height:w.height,rx:"2"},null,8,D$))),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,B$)],40,P$))],4)]))}}),q$={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function z$(e,t){return l(),c("svg",q$,[...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 Tu=Ye({name:"lucide-zap",render:z$}),V$={},H$={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 U$(e,t){return l(),c("svg",H$,[...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 Mu=ot(V$,[["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:"M10 5H3m9 14H3M14 3v4m2 10v4m5-9h-9m9 7h-5m5-14h-7m-6 5v4m0-2H3"},null,-1)])])}const Au=Ye({name:"lucide-sliders-horizontal",render:W$}),G$={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function J$(e,t){return l(),c("svg",G$,[...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 Yl=Ye({name:"lucide-arrow-up-right",render:J$}),X$={class:"relative"},Y$=["aria-pressed"],Z$={key:1,class:"mt-[2px] inline-block h-3 w-3 shrink-0"},Q$={class:"min-w-0 flex-1"},e5={class:"flex min-w-0 items-start gap-2"},t5={key:2,class:"mt-[1px] shrink-0 text-[11px] leading-none font-medium text-red-600 dark:text-red-400","aria-label":"Required"},n5={key:4,class:"ml-auto shrink-0 truncate pl-2 text-[11px] text-neutral-400 dark:text-neutral-500",style:{"max-width":"35%"}},r5={key:0,class:"mt-0.5 flex flex-wrap gap-x-2"},a5={key:2,class:"mt-1 grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-[11px]"},o5={class:"truncate text-neutral-400 dark:text-neutral-500"},s5={key:0,class:"relative"},l5="text-neutral-500 dark:text-neutral-400",i5="text-neutral-700 dark:text-neutral-300",u5="text-red-600 dark:text-red-400",d5=10,c5=we({__name:"StructureTreeRow",props:{node:{},depth:{},collapsed:{},selectedCanvasNodeId:{},hoveredCanvasNodeId:{},activeRowId:{}},emits:["select","hover","toggle"],setup(e,{emit:t}){const n={tool:Mu,prompt:Ks,subagent:xn,handoff:bf,provider:ra,mcp:ra,unknown:rs},r={agent:xn,side:xn,prompt:Ks,model:lc,variables:Ws,variable:Ws,hooks:Tu,hook:Tu,tools:rs,tool:Mu,subagent:xn,config:Au,section:Au,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 I=a.node.reference;return I?{to:Rr[I.kind](I.name),label:s[I.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(I){if(!I)return!1;const B=[...a.node.children||[]];for(;B.length>0;){const W=B.pop();if(W.cardBacked===!0&&W.canvasNodeId===I)return!0;W.children?.length&&B.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)),T=x(()=>f.value?0:Math.max(0,a.depth-1)),y=x(()=>T.value*d5),A=x(()=>{const I=a.node;return(I.kind==="tools"||I.kind==="tool")&&I.toolKind?n[I.toolKind]||rs:I.kind==="side"&&I.detail==="Human"?wl:r[I.kind]||ra}),L=x(()=>{const I=a.node;return(I.kind==="agent"||I.kind==="subagent")&&!!(I.avatarSrc||I.avatarSeed)}),k=x(()=>a.node.kind==="agent"?"text-neutral-700 dark:text-neutral-200":l5),C=x(()=>{const I=a.node;return I.kind==="agent"||I.kind==="subagent"||I.kind==="tool"&&I.toolKind==="handoff"}),w=x(()=>{const I=["group relative flex items-start gap-1.5 px-2 cursor-pointer select-none transition-colors"];return I.push(C.value?"py-[6px] text-[12.5px]":"py-[4px]"),C.value&&I.push("relative z-[1] structure-row-agent-bg"),$.value?I.push("rounded-r-md structure-row-active"):b.value?I.push("rounded-md structure-row-hover"):C.value?I.push("rounded-md"):I.push("rounded-md agents-surface-hover"),a.node.virtual&&!g.value&&!$.value&&I.push("text-neutral-600 dark:text-neutral-400"),I.join(" ")}),D=x(()=>{const I=a.node,B=["truncate"],W=I.kind==="tool"&&I.toolKind==="handoff",P=I.kind==="variable"||I.kind==="schema"&&I.hideIcon===!0||I.kind==="tool"&&!W;return I.cardBacked?B.push("font-medium text-neutral-900 dark:text-neutral-50"):B.push("font-normal text-neutral-700 dark:text-neutral-300"),P&&B.push("font-mono text-[11.5px]"),B.join(" ")});function F(I){return[I.warning?"text-[11px]":"text-[11px] lowercase",I.mono?"font-mono":"",I.required?u5:I.warning?"text-amber-700 dark:text-amber-300":"text-neutral-500 dark:text-neutral-400"].join(" ")}function U(I){return I.active===!1?"text-neutral-400 dark:text-neutral-600":i5}function N(I){I.stopPropagation(),!f.value&&o("toggle",a.node.id)}function E(I){I.stopPropagation(),V()}function V(){o("select",a.node.id,a.node.canvasNodeId),!f.value&&p.value&&!m.value&&o("toggle",a.node.id)}function z(I){I.key!=="Enter"&&I.key!==" "||(I.preventDefault(),I.stopPropagation(),V())}function Y(){o("hover",a.node.canvasNodeId)}return(I,B)=>{const W=It("RouterLink"),P=It("StructureTreeRow",!0),X=am("auto-animate");return l(),c("div",X$,[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(w.value),role:"button",tabindex:"0","aria-pressed":$.value,onClick:E,onKeydown:z,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",Z$)),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",Q$,[u("div",e5,[e.node.hint?(l(),K(h(Jn),{key:0,content:e.node.hint,position:"right"},{default:be(()=>[u("span",{class:J(D.value)},_(e.node.label),3)]),_:1},8,["content"])):(l(),c("span",{key:1,class:J(D.value)},_(e.node.label),3)),e.node.required?(l(),c("span",t5," * ")):M("",!0),i.value?(l(),K(h(Jn),{key:3,content:i.value.label,position:"right"},{default:be(()=>[q(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:B[0]||(B[0]=Je(()=>{},["stop"])),onKeydown:B[1]||(B[1]=Je(()=>{},["stop"]))},{default:be(()=>[q(h(Yl),{class:"h-3.5 w-3.5"})]),_:1},8,["to","class","aria-label"])]),_:1},8,["content"])):M("",!0),e.node.detail?(l(),c("span",n5,_(e.node.detail),1)):M("",!0)]),(!e.node.collapsibleBody||m.value)&&e.node.badges&&e.node.badges.length>0?(l(),c("div",r5,[(l(!0),c(te,null,Ie(e.node.badges,re=>(l(),c("span",{key:re.label,class:J(F(re))},_(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":""])},_(e.node.description),3)):M("",!0),(!e.node.collapsibleBody||m.value)&&e.node.metaRows&&e.node.metaRows.length>0?(l(),c("dl",a5,[(l(!0),c(te,null,Ie(e.node.metaRows,re=>(l(),c(te,{key:re.label},[u("dt",o5,_(re.label),1),u("dd",{class:J(["truncate text-right",re.mono!==!1?"font-mono":"",U(re)])},_(re.value),3)],64))),128))])):M("",!0)])],42,Y$)],4),d.value?$t((l(),c("div",s5,[m.value?(l(!0),c(te,{key:0},Ie(e.node.children,re=>(l(),K(P,{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:B[2]||(B[2]=(ne,de)=>o("select",ne,de)),onHover:B[3]||(B[3]=ne=>o("hover",ne)),onToggle:B[4]||(B[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 f5(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 p5={class:"structure-tree flex h-full flex-col overflow-hidden border-r border-neutral-200 dark:border-neutral-800"},h5={key:0,class:"px-3 py-4 text-xs text-neutral-400 dark:text-neutral-500"},m5=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 f5(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",p5,[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(c5,{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",h5," Select an agent to view its structure. ")),m.value?gt(g.$slots,"details",{key:2}):M("",!0)],32)]))}}),g5={key:0,class:"space-y-3 border-b border-neutral-200 px-3 py-3 dark:border-neutral-800","aria-label":"Definition findings"},v5={class:"mt-0.5 flex min-w-0 items-center gap-1 text-neutral-500 dark:text-neutral-400"},y5={class:"shrink-0"},b5=["title","onClick"],x5={class:"mt-1 text-neutral-600 dark:text-neutral-400"},k5={class:"mt-1 text-neutral-800 dark:text-neutral-200"},w5=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:Fl(o,s.id),notice:xl(s.toolHistoryFinding,s.label)}]:[])});return(o,s)=>a.value.length>0?(l(),c("section",g5,[(l(!0),c(te,null,Ie(a.value,i=>(l(),K(Nl,{key:i.key,title:i.notice.title},{default:be(()=>[u("p",v5,[u("span",y5,_(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)},_(i.notice.prompt),9,b5)]),u("p",x5,_(i.notice.consequence.join(" ")),1),u("p",k5,_(i.notice.fix),1)]),_:2},1032,["title"]))),128))])):M("",!0)}}),_5={class:"relative flex min-w-0 flex-1"},$5={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"},I5={class:"shrink-0 text-neutral-500 dark:text-neutral-400"},S5={class:"truncate font-medium text-neutral-900 dark:text-neutral-50"},C5={class:"flex min-h-0 flex-1 flex-col"},T5=200,M5=560,A5=320,L5=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 T of[b,...Dc(b)])if(a.value?.selectById(T))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,T){for(const y of b.children??[]){const A=p(y,T);if(A)return A}return b.canvasNodeId===T&&b.cardBacked&&b.reference?b:null}const f=x(()=>{const b=n.selectedNodeId;if(!b||!n.tree)return null;const T=p(n.tree,b);if(!T?.reference)return null;const y=d[T.reference.kind];return{kind:y.kind,open:y.open,name:T.label,to:Rr[T.reference.kind](T.reference.name)}}),m=Xn("composition.structureTreeWidth",A5),g=R(!1);function v(b){return Math.min(M5,Math.max(T5,b))}m.value=v(m.value);function $(b){b.preventDefault();const T=b.clientX,y=m.value;g.value=!0;const A=Yn(window,"pointermove",k=>{m.value=v(y-(k.clientX-T))}),L=Yn(window,["pointerup","pointercancel"],()=>{g.value=!1,A(),L()})}return(b,T)=>{const y=It("RouterLink");return l(),c("div",{class:J(["flex h-full min-h-0 flex-1",g.value?"select-none":""])},[u("div",_5,[q(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:T[0]||(T[0]=A=>r("deselect")),onHoverNode:T[1]||(T[1]=A=>r("hover",A))},null,8,["agent","diagram","selected-node-id","hovered-node-id","loading","error"]),f.value?(l(),c("div",$5,[u("span",I5,_(f.value.kind),1),u("span",S5,_(f.value.name),1),q(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(_(f.value.open)+" ",1),q(h(Yl),{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(j$,{key:0,layout:a.value.navigator.layout,state:a.value.navigator.state,view:a.value.navigator.view,onPan:T[2]||(T[2]=A=>a.value?.panTo(A))},null,8,["layout","state","view"])):M("",!0),e.agent?(l(),K(w5,{key:1,agent:e.agent,sides:e.sides,onSelect:i},null,8,["agent","sides"])):M("",!0),u("div",C5,[q(m5,{root:e.tree,"selected-canvas-node-id":e.selectedNodeId,"hovered-canvas-node-id":e.hoveredNodeId,onSelect:i,onHover:T[3]||(T[3]=A=>r("hover",A))},{details:be(()=>[e.agent?(l(),K(Xm,{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 R5(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 E5={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function P5(e,t){return l(),c("svg",E5,[...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 N5=Ye({name:"lucide-square-pen",render:P5}),O5=["data-run-state"],D5={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"},B5={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"},F5={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},[q(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",D5)):e.state==="failed"?(l(),c("span",B5)):e.state==="idle"?(l(),c("span",F5)):M("",!0)],12,O5))}}),j5={class:"flex size-4 shrink-0 items-center justify-center","aria-hidden":"true"},q5={key:2,class:"size-2 rounded-full border-[1.5px] border-neutral-400 dark:border-neutral-500"},z5=we({__name:"SessionStatusIcon",props:{state:{}},setup(e){return(t,n)=>(l(),c("span",j5,[e.state==="running"?(l(),K(Nr,{key:0})):e.state==="failed"?(l(),K(h(oh),{key:1,class:"size-3.5 text-red-600 dark:text-red-400"})):(l(),c("span",q5))]))}});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 V5=["title","aria-current","data-session-id"],H5=["aria-expanded","aria-label","title"],U5=["title","aria-label"],K5={class:"min-w-6 shrink-0 whitespace-nowrap text-right text-[11px] tabular-nums text-neutral-400 dark:text-neutral-500"},W5={key:0,class:"pl-5"},G5=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(()=>sh(n.node,n.depth,n.showAgent)),d=x(()=>lh(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":ih(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 T=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(z5,{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))},_(e.node.title),11,V5),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(_(e.node.descendantCount)+" ",1),q(h(Gn),{class:J(["size-3 transition-transform motion-reduce:transition-none",o.value?"rotate-90":""])},null,8,["class"])],10,H5)):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},_(m.value)+" failed ",9,U5)):M("",!0),u("span",K5,_(h(uh)(e.node.activityAt,e.nowSeconds)),1)],2),o.value&&s.value?(l(),c("div",W5,[(l(!0),c(te,null,Ie(e.node.children,y=>(l(),K(T,{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)])}}}),J5={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function X5(e,t){return l(),c("svg",J5,[...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 Y5=Ye({name:"lucide-list-filter",render:X5}),Z5=["aria-label","title","aria-expanded"],Q5={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"},eI={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"},tI={class:"flex h-10 items-center justify-between gap-2 border-b border-neutral-200 px-3 dark:border-neutral-800"},nI={class:"flex flex-wrap items-center gap-1 p-2"},rI=["aria-label","onClick"],aI=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(()=>dh(n.filters,n.allAgents)),f=x(()=>p.value>0?`Filters, ${p.value} active`:"Filters");function m(){r("update:filters",{...ic,status:n.filters.status,agent:n.allAgents?null:n.filters.agent})}const g=oc(),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})}),T=x(()=>Vr({known:n.agentsKnown,agents:n.agents},n.filters.agent)),y=x(()=>Yb(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})}),C={1:"Today",7:"Last 7 days",14:"Last 14 days",30:"Last 30 days"},w=Ns.map(Y=>({value:String(Y),label:C[Y]})),D=x({get:()=>n.filters.days?String(n.filters.days):"",set:Y=>a({days:Ns.find(I=>String(I)===Y)??null})}),F={person:"A person",effect:"A scheduled effect",endpoint:"An endpoint",subagent:"A parent thread",thread_creation:"Thread creation"},U=Si.map(Y=>({value:Y,label:F[Y]})),N=x({get:()=>n.filters.startedBy??"",set:Y=>a({startedBy:Si.find(I=>I===Y)??null})}),E=x(()=>(n.filters.model&&!n.models.includes(n.filters.model)?[...n.models,n.filters.model]:n.models).map(I=>({value:I,label:I}))),V=x({get:()=>n.filters.model??"",set:Y=>a({model:Y||null})}),z=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,I)=>(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:I[0]||(I[0]=B=>o.value=!o.value)},[q(h(Y5),{class:"size-4 shrink-0","aria-hidden":"true"}),p.value>0?(l(),c("span",Q5,_(p.value),1)):M("",!0)],10,Z5),o.value?(l(),c("div",eI,[u("div",tI,[I[6]||(I[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",nI,[e.allAgents?(l(),K(Xr,{key:0,modelValue:b.value,"onUpdate:modelValue":I[1]||(I[1]=B=>b.value=B),label:"Agent",options:$.value},{panel:be(({choose:B,maxHeight:W})=>[q(sc,{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:B,onPickAll:P=>B(""),onTogglePin:h(g).togglePin},null,8,["agents","selected-id","max-height","pins","onPick","onPickAll","onTogglePin"])]),_:1},8,["modelValue","options"])):M("",!0),e.allAgents&&T.value?(l(),K(Wn,{key:1})):M("",!0),L.value?(l(),K(Xr,{key:2,modelValue:k.value,"onUpdate:modelValue":I[2]||(I[2]=B=>k.value=B),label:"Owner",options:A.value},null,8,["modelValue","options"])):M("",!0),q(Xr,{modelValue:D.value,"onUpdate:modelValue":I[3]||(I[3]=B=>D.value=B),label:"Started",options:h(w)},null,8,["modelValue","options"]),q(Xr,{modelValue:N.value,"onUpdate:modelValue":I[4]||(I[4]=B=>N.value=B),label:"Started by",options:h(U)},null,8,["modelValue","options"]),E.value.length>0?(l(),K(Xr,{key:3,modelValue:V.value,"onUpdate:modelValue":I[5]||(I[5]=B=>V.value=B),label:"Model",options:E.value},null,8,["modelValue","options"])):M("",!0),(l(!0),c(te,null,Ie(z.value,B=>(l(),c("div",{key:B.key,class:"flex items-stretch"},[q(Hm,{pressed:B.on,"aria-pressed":B.on,class:J(B.on?"rounded-r-none":""),onClick:W=>B.set(!B.on)},{default:be(()=>[Ce(_(B.label),1)]),_:2},1032,["pressed","aria-pressed","class","onClick"]),B.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 ${B.label} filter`,onClick:W=>B.set(!1)},[q(h(Fo),{class:"h-3 w-3"})],8,rI)):M("",!0)]))),128))])])):M("",!0)],544))}}),oI={class:"flex h-full min-h-0 w-full flex-col","aria-label":"Threads"},sI={class:"flex items-center gap-1 px-2 pt-3"},lI={class:"flex flex-1 items-center gap-0.5",role:"radiogroup","aria-label":"Run state"},iI=["aria-checked","onClick"],uI=["title"],dI={class:"relative flex items-center gap-1 px-2 pt-2"},cI={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"},fI={key:0,class:"flex items-baseline justify-between gap-2 px-4 pt-2 text-xs text-neutral-500 dark:text-neutral-400"},pI=["title"],hI={key:0,class:"flex justify-center py-8"},mI={key:1,class:"px-2 py-6 text-[13px] text-red-600 dark:text-red-400"},gI={key:2,class:"px-2 py-6 text-[13px] text-neutral-500 dark:text-neutral-400"},vI={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"},yI={key:3,class:"flex justify-center py-3"},bI=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(U){o("update:filters",{...r.filters,status:U==="all"?null:U})}function d(){o("update:filters",{...ic,agent:r.allAgents?null:r.filters.agent})}const p=[{value:"all",label:"All"},{value:"running",label:"Running"},{value:"failed",label:"Failed"}],f=om({interval:6e4}),m=x(()=>Math.floor(f.value.getTime()/1e3)),g=x(()=>ch(r.threads)),v=x(()=>fh(g.value,a.value,s.value)),$=x(()=>ph(v.value,m.value)),b=x(()=>a.value.trim()!==""||s.value!=="all"),T=x(()=>a.value.trim()!==""||hh(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(U){const N=new Set(y.value);N.has(U)?N.delete(U):N.add(U),y.value=N}const L=x(()=>{if(!b.value)return y.value;const U=new Set(y.value),N=E=>{for(const V of E)V.children.length>0&&U.add(V.thread.id),N(V.children)};return N(v.value),U});ve(()=>[r.selectedThreadId,r.threads],([U,N])=>{const E=gh(N,U);E.every(V=>y.value.has(V))||(y.value=new Set([...y.value,...E]))},{immediate:!0});const k=R(null),{arrivedState:C}=sm(k,{offset:{bottom:240}});R5({key:xt(r,"scrollKey"),element:k,items:xt(r,"threads"),loading:xt(r,"isLoading")}),ve(()=>C.bottom,U=>{U&&r.hasMore&&!r.isLoadingMore&&o("loadMore")});const w=R(null);async function D(){await Qe(),w.value?.focus(),w.value?.select()}t({focusSearch:D});const F=Er("b");return(U,N)=>(l(),c("aside",oI,[u("div",sI,[u("div",lI,[(l(),c(te,null,Ie(p,E=>u("button",{key:E.value,type:"button",role:"radio","aria-checked":s.value===E.value,class:J(["h-7 rounded-md px-2 text-[13px] leading-5 transition-colors",s.value===E.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:V=>i(E.value)},_(E.label),11,iI)),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]=E=>o("create"))},[q(h(N5),{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(F)})`,"aria-label":"Hide threads",onClick:N[1]||(N[1]=E=>o("collapse"))},[q(h(uc),{class:"size-4"})],8,uI)]),u("div",dI,[u("label",cI,[q(h(mh),{class:"size-4 shrink-0 text-neutral-400"}),$t(u("input",{ref_key:"searchRef",ref:w,"onUpdate:modelValue":N[2]||(N[2]=E=>a.value=E),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(E=>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]=E=>a.value="")},[q(h(Fo),{class:"size-3.5"})])):M("",!0)]),q(aI,{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]=E=>o("update:filters",E))},null,8,["filters","all-agents","agents","agents-known","owners","models"])]),e.origin?(l(),c("p",fI,[u("span",{class:"min-w-0 truncate",title:h(Ci)(e.origin)},_(h(Ci)(e.origin)),9,pI),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",hI,[q(et)])):e.error&&e.threads.length===0?(l(),c("p",mI," Threads could not be loaded. ")):$.value.length===0?(l(),c("p",gI,_(T.value),1)):M("",!0),(l(!0),c(te,null,Ie($.value,E=>(l(),c("section",{key:E.key,class:"mt-3"},[u("h3",vI,_(E.label),1),(l(!0),c(te,null,Ie(E.sessions,V=>(l(),K(G5,{key:V.thread.id,node:V,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]=z=>o("select",z)),onToggle:A},null,8,["node","selected-id","expanded-ids","now-seconds","agents","agents-known","show-agent"]))),128))]))),128)),e.isLoadingMore?(l(),c("div",yI,[q(et)])):M("",!0)],512)]))}}),xI={class:"absolute inset-0 overflow-clip"},kI=240,wI=200,_I=we({__name:"InspectorDrawer",props:{open:{type:Boolean},width:{}},emits:["resize","presence"],setup(e,{emit:t}){const n=e,r=t,a=zo(),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"?kI:wI)+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 T(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=w=>r("resize",L+(A-w.clientX)),C=()=>{$.value=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("pointermove",k),window.removeEventListener("pointerup",C),window.removeEventListener("pointercancel",C),b=null};window.addEventListener("pointermove",k),window.addEventListener("pointerup",C),window.addEventListener("pointercancel",C),b=C}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",xI,[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:T},null,34)],38)):M("",!0)}}),$I=ot(_I,[["__scopeId","data-v-10dcc95a"]]),II=we({name:"ThreadWorkspaceProvider",props:{threadId:{type:String,default:null}},setup(e,{slots:t}){return()=>ut(vh,{threadId:e.threadId??"",preload:!0,live:!0,includeSilent:!0,useWorkblocks:!0,useSubagentBlocks:!0,reconnectAuthGate:$l,canReconnect:()=>!Il(),onAuthorized:_l},t)}}),SI={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function CI(e,t){return l(),c("svg",SI,[...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 TI=Ye({name:"lucide-panel-left",render:CI}),MI=["title"],AI={key:0,class:"font-normal opacity-80"},vs="inline-flex h-6 shrink-0 items-center gap-1.5 rounded-full px-2.5 text-[12px] font-medium ring-1 ring-inset",LI=we({__name:"RunStatusBadge",props:{state:{},reason:{},showIdle:{type:Boolean}},setup(e){return(t,n)=>e.state==="running"?(l(),c("span",{key:0,class:J([vs,"bg-accent-500/10 text-accent-700 ring-accent-500/20 dark:text-accent-300 dark:ring-accent-400/25"])},[q(Nr),n[0]||(n[0]=Ce(" Running ",-1))],2)):e.state==="failed"?(l(),c("span",{key:1,class:J([vs,"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",AI,"· "+_(e.reason.replace(/_/g," ")),1)):M("",!0)],10,MI)):e.showIdle?(l(),c("span",{key:2,class:J([vs,"bg-neutral-500/5 text-neutral-600 ring-neutral-500/15 dark:text-neutral-400"])}," Idle ",2)):M("",!0)}});function RI(e){return e.length<=2?{visible:e,folded:[]}:{visible:[e[0],e[e.length-1]],folded:e.slice(1,-1)}}const EI=["title"],PI={key:1,class:"flex min-w-0 flex-1 items-center gap-1.5 text-[14px] leading-5","aria-label":"Thread path"},NI=["title","onClick"],OI=["title"],DI=["title"],BI=["aria-expanded","title"],FI={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"},jI=["title","onClick"],qI=["title"],zI={class:"truncate"},VI={class:"flex min-w-[6rem] shrink items-center gap-1.5"},HI=["title"],UI=["title"],KI={key:2,class:"flex min-w-0 flex-1 items-center gap-2"},WI=["title"],Lu="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",GI=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?dc(n.thread):"idle"),s=x(()=>n.thread?.status_reason??null),i=x(()=>RI(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 T=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(T.value)},[e.sessionsCollapsed?(l(),c("button",{key:0,type:"button",class:J([Lu,"-mr-1"]),title:`Show threads (${h(y)})`,"aria-label":"Show threads",onClick:L[0]||(L[0]=k=>r("showSessions"))},[q(h(TI),{class:"size-4"})],10,EI)):M("",!0),i.value.visible.length>0?(l(),c("nav",PI,[(l(!0),c(te,null,Ie(i.value.visible,(k,C)=>(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:w=>b(k.id)},[u("span",{title:f(k),class:"inline-flex"},[q(da,{avatar:h(Ar)(e.agents,k.agent.name)},null,8,["avatar"])],8,OI),u("span",{class:"truncate hover:underline",title:h(fr)(k)},_(h(fr)(k)),9,DI)],8,NI),q(h(Gn),{class:"size-3.5 shrink-0 text-neutral-400 dark:text-neutral-500","aria-hidden":"true"}),C===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(Lu),"aria-expanded":g.value,title:`${i.value.folded.length} more ancestor threads`,"aria-label":"Show more ancestor threads",onClick:L[1]||(L[1]=w=>g.value=!g.value)},[q(h(hf),{class:"size-4"})],8,BI),q(h(Gn),{class:"size-3.5 shrink-0 text-neutral-400 dark:text-neutral-500","aria-hidden":"true"}),g.value?(l(),c("ul",FI,[(l(!0),c(te,null,Ie(i.value.folded,w=>(l(),c("li",{key:w.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)(w)}`,onClick:D=>b(w.id)},[u("span",{title:f(w),class:"inline-flex"},[q(da,{avatar:h(Ar)(e.agents,w.agent.name)},null,8,["avatar"])],8,qI),u("span",zI,_(h(fr)(w)),1)],8,jI)]))),128))])):M("",!0)])):M("",!0)],64))),128)),u("span",VI,[e.thread?(l(),c("span",{key:0,title:f(e.thread),class:"inline-flex"},[q(da,{avatar:h(Ar)(e.agents,e.thread.agent.name)},null,8,["avatar"])],8,HI)):M("",!0),u("h1",{class:"truncate font-medium text-neutral-900 dark:text-neutral-50",title:a.value},_(a.value),9,UI),d.value?(l(),K(Wn,{key:1})):M("",!0)])])):(l(),c("div",KI,[u("h1",{class:"min-w-0 truncate text-[14px] font-medium leading-5 text-neutral-900 dark:text-neutral-50",title:a.value},_(a.value),9,WI),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"))},_(e.cost),1)):M("",!0),e.infoVisible?M("",!0):(l(),K(LI,{key:4,state:o.value,reason:s.value},null,8,["state","reason"]))],6))}}),JI={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function XI(e,t){return l(),c("svg",JI,[...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:XI}),YI={class:"flex shrink-0 items-center gap-1"},ZI=["aria-pressed"],QI=["title","aria-pressed"],Ru="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",Eu="bg-black/5 text-neutral-900 dark:bg-white/10 dark:text-white",e4=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",YI,[e.canEdit?(l(),c("button",{key:0,type:"button",class:J([Ru,e.editMode?Eu:""]),title:"Edit messages","aria-label":"Edit messages","aria-pressed":e.editMode,onClick:o[0]||(o[0]=s=>n("toggleEditMode"))},[q(h(rp),{class:"size-4"})],10,ZI)):M("",!0),u("button",{type:"button",class:J([Ru,e.infoOpen?Eu:""]),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"]))},[q(h(yh),{class:"size-4"})],10,QI)]))}});function ap(e,t){const n=t??0,r=e-n;return n>0&&r>0?e/r:1}function t4(e){return(e.estimatedCost??0)>0||(e.unpricedRequestCount??0)>0?`~${_t(e.totalCost)}`:_t(e.totalCost)}function n4(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 r4(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 Pu(e){return[...e].sort((t,n)=>n.totalCost-t.totalCost)}function a4(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 o4(e){const t=r=>e.totalCost>0?Math.min(1,r/e.totalCost):0,n=e.threads??[];return{total:t4(e),open:n4(e),models:Pu(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?Pu(n).map(r=>({key:r.threadId,label:r4(r),detail:Io(r.requestCount),cost:_t(r.totalCost),share:t(r.totalCost),threadId:r.isRoot?null:r.threadId})):[],parts:a4(e),averagePerMessage:e.messageCount>0?_t(e.avgCostPerMessage):null,truncated:e.truncated===!0}}const s4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function l4(e,t){return l(),c("svg",s4,[...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 i4=Ye({name:"lucide-braces",render:l4}),u4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function d4(e,t){return l(),c("svg",u4,[...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 c4=Ye({name:"lucide-circle-dot",render:d4}),f4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function p4(e,t){return l(),c("svg",f4,[...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 h4=Ye({name:"lucide-calendar-clock",render:p4}),m4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function g4(e,t){return l(),c("svg",m4,[...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 v4=Ye({name:"lucide-database",render:g4}),y4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function b4(e,t){return l(),c("svg",y4,[...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 x4=Ye({name:"lucide-circle-help",render:b4}),k4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function w4(e,t){return l(),c("svg",k4,[...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 _4=Ye({name:"lucide-clock",render:w4}),$4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function I4(e,t){return l(),c("svg",$4,[...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 S4=Ye({name:"lucide-loader-circle",render:I4});function C4(e){return e==="running"?"running":e==="failed"?"failed":"idle"}function T4(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 M4(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=C4(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=T4(r.threads);return[...n.values()]}function A4(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 L4(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 nl=300,R4=320,Lr=768,ya=24,op=16,ba=ya+nl+op,E4=ya+Lr+ba;function P4(e){return e>=E4}const N4=`min(max(0px, 100% - ${Lr+ba-ya}px), max(${ba-ya}px, (100% - ${Lr}px) / 2))`,O4=`calc(min(max(${ya}px, 100% - ${Lr+ba}px), max(${ba}px, (100% - ${Lr}px) / 2)) + ${Lr}px)`,D4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function B4(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:"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 F4=Ye({name:"lucide-file",render:B4}),j4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function q4(e,t){return l(),c("svg",j4,[...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 z4=Ye({name:"lucide-file-audio",render:q4}),V4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function H4(e,t){return l(),c("svg",V4,[...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 U4=Ye({name:"lucide-file-code",render:H4}),K4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function W4(e,t){return l(),c("svg",K4,[...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 G4=Ye({name:"lucide-file-text",render:W4}),J4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function X4(e,t){return l(),c("svg",J4,[...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 Y4=Ye({name:"lucide-file-video",render:X4}),Z4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Q4(e,t){return l(),c("svg",Z4,[...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 eS=Ye({name:"lucide-image",render:Q4}),tS=/\.(json|jsonc|js|mjs|cjs|ts|tsx|jsx|vue|py|rb|go|rs|sh|sql|ya?ml|toml|html|css|xml)$/i,nS=/\.(md|markdown|txt|csv|tsv|log)$/i;function rS(e){const t=e.mimeType??"";return t.startsWith("image/")?eS:t.startsWith("audio/")?z4:t.startsWith("video/")?Y4:t.includes("json")||t.includes("javascript")||t.includes("typescript")||t.includes("xml")||tS.test(e.name)?U4:t.startsWith("text/")||nS.test(e.name)?G4:F4}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 aS=4,oS=2;function Nu(e){return e.updatedAt??e.createdAt??0}function sS(e){const t=e.filter(r=>!r.isDirectory).sort((r,a)=>Nu(a)-Nu(r)||r.path.localeCompare(a.path)),n=aS*oS;return t.length<=n?{tiles:t,more:null}:{tiles:t.slice(0,n-1),more:t.length}}function lS(e){if(!e)return{files:null,keys:null,upcomingEffects:null};const t=sS(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 iS(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 uS={class:"flex flex-col text-[13px] text-neutral-800 dark:text-neutral-200"},dS=["title"],cS={class:"info-name"},fS={key:0,class:"info-value"},pS=["title"],hS={class:"info-value"},mS=["aria-expanded"],gS={class:"info-value tabular-nums"},vS={key:2,class:"info-row"},yS={class:"info-value"},bS={key:3,class:"flex flex-col pb-1 pl-8"},xS={class:"info-sublabel"},kS={class:"flex w-full min-w-0 items-baseline gap-2"},wS={class:"min-w-0 flex-1 break-words text-neutral-800 dark:text-neutral-200"},_S={class:"shrink-0 tabular-nums text-neutral-800 dark:text-neutral-200"},$S={class:"flex w-full items-center gap-2"},IS={class:"h-1 min-w-0 flex-1 overflow-hidden rounded-full bg-black/[0.06] dark:bg-white/[0.08]","aria-hidden":"true"},SS={class:"shrink-0 text-[11px] text-neutral-500 dark:text-neutral-400"},CS={class:"info-name"},TS={class:"info-value tabular-nums"},MS={class:"info-name"},AS={class:"info-value tabular-nums"},LS={key:1,class:"info-row info-subrow mt-1"},RS={class:"info-value tabular-nums"},ES={key:2,class:"px-2 py-1 text-[12px] text-neutral-500 dark:text-neutral-400"},PS={class:"info-value"},NS={class:"info-value"},OS={class:"flex min-w-0 flex-1 flex-col"},DS={class:"break-words"},BS={key:0,class:"break-words text-[12px] text-neutral-500 dark:text-neutral-400"},FS={key:6,class:"info-label"},jS=["aria-expanded","onClick"],qS={class:"info-name"},zS={class:"info-value"},VS=["title","onClick"],HS={class:"info-name text-neutral-800 dark:text-neutral-200"},US={class:"info-value"},KS=["onClick"],WS={class:"info-name"},GS={key:7,class:"info-label"},JS={key:8,class:"flex flex-wrap gap-1.5 px-2 pb-1"},XS={class:"grid grid-cols-4 gap-1.5 px-2 pb-1"},YS=["title","aria-label","onClick"],ZS=["src","onError"],QS={class:"font-medium"},Ou=5,eC=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,Ou)}function o(L){return L?Wm(L*1e6):""}const s={running:{label:"Running",icon:S4,iconClass:"animate-spin text-accent-600 dark:text-accent-400"},failed:{label:"Failed",icon:bh,iconClass:"text-red-600 dark:text-red-400"},idle:{label:"Idle",icon:c4,iconClass:""}},i=x(()=>lS(n.workspace??null)),d=R(new Map);function p(L){const k=n.thread?.id,C=d.value.get(L.path)??0;return!k||!L.mimeType.startsWith("image/")||C>1?null:Wr(k,L.path,C===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?o4(n.cost):null),g=x(()=>s[n.thread?dc(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
|
+
`)}),T={human:wl,prompt:xh,handler:i4};function y(L){return L.backing&&T[L.backing]||x4}const A=x(()=>(n.thread?.tags??[]).filter(L=>!L.startsWith("name:")&&!L.startsWith("seed:")));return(L,k)=>(l(),c("div",uS,[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",cS,_(g.value.label),1),e.thread?.status_reason?(l(),c("span",fS,_(e.thread.status_reason.replace(/_/g," ")),1)):M("",!0)],8,dS),e.thread?(l(),c("div",{key:0,class:"info-row",title:b.value},[q(h(_4),{class:"info-icon"}),k[4]||(k[4]=u("span",{class:"info-name"},"Last activity",-1)),u("span",hS,_($.value),1)],8,pS)):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]=C=>r("toggle","cost"))},[q(h(Us),{class:"info-icon"}),k[5]||(k[5]=u("span",{class:"info-name"},"Cost",-1)),u("span",gS,_(m.value.total),1),q(h(Gn),{class:J(["info-chevron",e.isExpanded("cost")?"rotate-90":""])},null,8,["class"])],8,mS)):(l(),c("div",vS,[q(h(Us),{class:"info-icon"}),k[6]||(k[6]=u("span",{class:"info-name"},"Cost",-1)),u("span",yS,_(e.costLoading?"Loading…":"None"),1)])),m.value&&e.isExpanded("cost")?(l(),c("div",bS,[(l(!0),c(te,null,Ie([{title:"By model",rows:m.value.models},{title:"By thread",rows:m.value.threads}],C=>(l(),c(te,{key:C.title},[C.rows.length>0?(l(),c(te,{key:0},[u("h3",xS,_(C.title),1),(l(!0),c(te,null,Ie(C.rows,w=>(l(),K(ct(w.threadId?"button":"div"),{key:w.key,type:w.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]",w.threadId?"info-row-button":""]),title:w.threadId?`Open ${w.label}`:w.label,onClick:D=>w.threadId&&r("selectThread",w.threadId)},{default:be(()=>[u("span",kS,[u("span",wS,_(w.label),1),u("span",_S,_(w.cost),1)]),u("span",$S,[u("span",IS,[u("span",{class:"block h-full rounded-full bg-neutral-400 dark:bg-neutral-500",style:nt({width:`${Math.max(2,w.share*100)}%`})},null,4)]),u("span",SS,_(w.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,C=>(l(),c("div",{key:C.label,class:"info-row info-subrow"},[u("span",CS,_(C.label),1),u("span",TS,_(C.value),1)]))),128))],64)):M("",!0),(l(!0),c(te,null,Ie(m.value.open,C=>(l(),c("div",{key:C.label,class:"info-row info-subrow"},[u("span",MS,_(C.label),1),u("span",AS,_(C.value),1)]))),128)),m.value.averagePerMessage?(l(),c("div",LS,[k[8]||(k[8]=u("span",{class:"info-name"},"Average per message",-1)),u("span",RS,_(m.value.averagePerMessage),1)])):M("",!0),m.value.truncated?(l(),c("p",ES," 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]=C=>r("openWorkspace",{tab:"kv"}))},[q(h(v4),{class:"info-icon"}),k[9]||(k[9]=u("span",{class:"info-name"},"KV store",-1)),u("span",PS,_(i.value.keys)+" "+_(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]=C=>r("openWorkspace",{tab:"effects"}))},[q(h(h4),{class:"info-icon"}),k[10]||(k[10]=u("span",{class:"info-name"},"Upcoming effects",-1)),u("span",NS,_(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,C=>(l(),K(ct(C.backing==="prompt"&&C.name?h(qo):"div"),co({key:C.side},{ref_for:!0},C.backing==="prompt"&&C.name?{to:h(Rr).prompt(C.name)}:{},{class:["info-row info-row-stacked",C.backing==="prompt"&&C.name?"info-row-button":""]}),{default:be(()=>[(l(),K(ct(y(C)),{class:"info-icon mt-0.5"})),u("span",OS,[u("span",DS,_(C.name||C.label),1),C.name||C.model?(l(),c("span",BS,_([C.name?C.label:null,C.model].filter(Boolean).join(" · ")),1)):M("",!0)])]),_:2},1040,["class"]))),128)),e.subagentGroups.length>0?(l(),c("h2",FS,"Subagents")):M("",!0),(l(!0),c(te,null,Ie(e.subagentGroups,C=>(l(),c(te,{key:C.relationship},[u("button",{type:"button",class:"info-row info-row-button","aria-expanded":e.isExpanded(`subagent:${C.relationship}`),onClick:w=>r("toggle",`subagent:${C.relationship}`)},[q(da,{avatar:h(Ar)(e.agents,C.agentName)},null,8,["avatar"]),u("span",qS,_(C.relationship),1),u("span",zS,_(h(A4)(C)),1),q(h(Gn),{class:J(["info-chevron",e.isExpanded(`subagent:${C.relationship}`)?"rotate-90":""])},null,8,["class"])],8,jS),e.isExpanded(`subagent:${C.relationship}`)?(l(),c(te,{key:0},[(l(!0),c(te,null,Ie(a(C),w=>(l(),c("button",{key:w.id,type:"button",class:"info-row info-row-button info-subrow pl-8",title:w.title,onClick:D=>r("selectThread",w.id)},[(l(),K(ct(s[w.state].icon),{class:J(["size-3.5 shrink-0 text-neutral-500 dark:text-neutral-400",s[w.state].iconClass])},null,8,["class"])),u("span",HS,_(w.title),1),u("span",US,_(o(w.lastActivityAt)),1)],8,VS))),128)),C.threads.length>Ou?(l(),c("button",{key:0,type:"button",class:"info-row info-row-button info-subrow pl-8",onClick:w=>r("toggle",`all:${C.relationship}`)},[u("span",WS,_(e.isExpanded(`all:${C.relationship}`)?"Show fewer":`Show all ${C.threads.length}`),1)],8,KS)):M("",!0)],64)):M("",!0)],64))),128)),A.value.length>0?(l(),c("h2",GS,"Tags")):M("",!0),A.value.length>0?(l(),c("ul",JS,[(l(!0),c(te,null,Ie(A.value,C=>(l(),c("li",{key:C,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"},_(C),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",XS,[(l(!0),c(te,null,Ie(i.value.files.tiles,C=>(l(),c("button",{key:C.path,type:"button",class:"file-tile",title:C.name,"aria-label":C.name,onClick:w=>r("openWorkspace",{tab:"files",path:C.path})},[p(C)?(l(),c("img",{key:0,src:p(C)??void 0,alt:"",class:"size-full object-cover",loading:"lazy",onError:w=>f(C.path)},null,40,ZS)):(l(),K(ct(h(rS)(C)),{key:1,class:"size-5 text-neutral-500 dark:text-neutral-400"}))],8,YS))),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]=C=>r("openWorkspace",{tab:"files"}))},[k[11]||(k[11]=u("span",null,"Show all",-1)),u("span",QS,_(i.value.files.more),1)])):M("",!0)])],64)):M("",!0)]))}}),Du=ot(eC,[["__scopeId","data-v-36099014"]]);function Go(e){let t=null;try{t=cc()}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 lm()&&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},ys=e=>e.mimeType.startsWith("image/"),Jo=(e,t)=>ys(e)!==ys(t)?ys(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(Jo)}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(Jo)}function tC(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(Jo)}const nC=new Set(["pending","processing","completed","failed","agent_canceled","user_canceled"]);function En(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function Bu(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function rC(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function aC(e){return typeof e=="string"&&nC.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:rC(a.args),scheduledAt:En(a.scheduledAt,0),createdAt:En(a.createdAt,0),status:aC(a.status),attempts:En(a.attempts,0),error:typeof a.error=="string"?a.error:null,completedAt:Bu(a.completedAt),manualRun:a.manualRun===!0,manualRunAt:Bu(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 oC(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 sC(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}${oC(r)} ${o}`}function lC(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 Fu(e){const t=JSON.stringify(e,null,2);return t===void 0?"{}":t}function iC(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 uC(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 dC(e){return[...e].sort(uC)}function ju(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 cC(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 bs(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 fC(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 qu(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 zu(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 pC=500,Vu={files:[],kvCount:null,effects:null};function hC(e){const t=Et(Vu);function n(p,f){e.value===f&&(t.value={...t.value,...p})}function r(p){return iS(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=${pC}`)).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 Go({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=Vu,p&&i()},{immediate:!0}),{snapshot:t}}const mC=we({name:"ThreadWorkspaceSummarySource",props:{threadId:{type:String,default:null}},emits:{update:e=>!0},setup(e,{emit:t}){const{snapshot:n}=hC(xt(e,"threadId"));return ve(n,r=>t("update",r),{immediate:!0}),()=>null}});function gC(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 vC=4e3;function yC(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()},vC))}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 bC(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 xC(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||!bC(i,d,o.value)?!1:(a(),!0)}return{entries:t,refresh:a,handleRegistryEvent:s}}function kC(e){const t=yC(e.threadId),n=xC(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 M4(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 L4(o,{catalog:s,compositions:e.sideCompositions.value})}),handleRegistryEvent:r,handleReconnect:a}}function wC(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 kh(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=Fs(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:Ti(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(),...Ti({allAgents:v,filters:g,thread:$})},hash:t.hash},!1)}function m(g){const v=Fs(t,!!e.agentId.value);if(g===v)return Promise.resolve();if(g==="home")return r(wh,!0);if(g==="catalog")return r(tc,!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 _C={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"},$C={key:0,class:"mt-1"},IC=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=Bo.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",_C,[u("div",null,[u("p",{class:J(r.value.body?"text-sm font-medium text-neutral-900 dark:text-neutral-100":"")},_(r.value.title),3),r.value.body?(l(),c("p",$C,_(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"))},[q(h(_h),{class:"size-4","aria-hidden":"true"}),Ce(" "+_(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 ("+_(e.showSessionsShortcut)+") ",1)):M("",!0)]))}});function rl(e){return!!e&&typeof e=="object"}function SC(e){if(rl(e)&&!Array.isArray(e))return e;if(typeof e=="string")try{const t=JSON.parse(e);return rl(t)&&!Array.isArray(t)?t:void 0}catch{return}}function CC(e){const t=R(null),n=R(!1),r=R(null);let a=null;try{a=cc()}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 I=a?.runStatus?.value;return I?I.state==="running":o.value.some(B=>B.status==="pending")});function f(I){if(!t.value?.agent||I==="system")return null;const B=t.value.agent,W=I==="assistant"?"A":"B";return W==="A"&&B.side_a_label?B.side_a_label:W==="B"&&B.side_b_label?B.side_b_label:null}function m(I){const B=I.path??"",W=I.name??B.split("/").pop()??"attachment";return{id:I.id||`att-${B||W||Math.random().toString(36).slice(2)}`,type:"file",path:B,name:W,mimeType:I.mimeType||I.mediaType||"application/octet-stream",width:I.width,height:I.height,description:I.description}}function g(I){if(I){if(Array.isArray(I))return I.length>0?I.map(m):void 0;try{const B=JSON.parse(I);return Array.isArray(B)&&B.length>0?B.filter(rl).map(m):void 0}catch{return}}}function v(I){const B=[];I.reasoning_content&&B.push({id:`${I.id}-reasoning`,type:"reasoning",content:I.reasoning_content,created_at:I.created_at});const W=new Map;for(const re of I.workItems)re.type==="tool_result"&&re.tool_call_id&&W.set(re.tool_call_id,re);for(const re of I.workItems){if(re.type==="content"){if(!re.content)continue;B.push({id:re.id,type:"content",content:re.content,created_at:re.created_at??I.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"}B.push({id:re.id,type:"tool_call",content:re.name||"",created_at:I.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 P=B.some(re=>re.type==="tool_call"&&re.response_status==="pending"),X=I.status!=="pending"&&!P;return{type:"work",id:I.id,role:"assistant",items:B,created_at:I.created_at,updated_at:I.updated_at??I.response_completed_at??I.created_at,request_sent_at:I.request_sent_at??I.created_at,response_completed_at:I.response_completed_at??(X?I.updated_at??I.created_at:null),isComplete:X,sideLabel:f("assistant"),status:I.status}}function $(I){return I==="assistant"?"assistant":"user"}function b(I){for(let B=I.length-1;B>=0;B--){const W=(I[B].content||"").trim();if(W.length>0)return W}return""}function T(I){const B=new Set,W=[];for(const P of I){const X=g(P.attachments);if(X?.length)for(const re of X)B.has(re.path)||(B.add(re.path),W.push(re))}return W.length>0?W:void 0}function y(I){if(!I)return!1;if(I.tool_status==="error"||I.status==="failed")return!0;const B=(I.content||"").toLowerCase();return B?B.includes("failed to execute tool")||B.includes("has reported a failure")||B.includes("execution stopped before completion"):!1}function A(I){const B=I.messages||[],W=B[B.length-1],P=W?$(W.role):"assistant",X=W?.log_id??null,re=(I.subagent_status||"").toLowerCase(),ne=y(W)||re.includes("error")||re.includes("failed"),de=b(B),ue=T(B),ae=B.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:I.id,role:P,created_at:I.created_at,updated_at:I.updated_at,subagentId:I.subagent_id,subagentName:I.subagent_name??null,subagentTitle:I.subagent_title??null,subagentThreadName:I.subagent_thread_name??null,subagentStatus:I.subagent_status??null,subagentHasError:ne,subagentRelationship:I.subagent_relationship??null,subagentBlocking:I.subagent_blocking??null,messages:ae,messageCount:B.length,latestContent:de,attachments:ue,log_id:X,sideLabel:f(P),silent:B.length>0&&B.every(xe=>!!xe.silent)}}function L(I){const B=(I.subagents||[]).map(P=>A(P)),W=B.reduce((P,X)=>P?X.updated_at>P.updated_at?X:P:X,null);return{type:"subagent_group",id:I.id,role:W?.role??"assistant",created_at:I.created_at,updated_at:I.updated_at,subagents:B,count:B.length,log_id:W?.log_id??null,sideLabel:W?.sideLabel??f("assistant"),silent:B.every(P=>!!P.silent)}}function k(I){return{type:"status",id:I.id,role:"system",content:I.content,created_at:I.created_at,statusKind:I.status_kind??null,subagentId:I.subagent_id??null}}const C=x(()=>{const I=[],W=s.value.filter(X=>(X.depth??0)===0);let P=[];for(let X=0;X<W.length;X++){const re=W[X];if("type"in re&&re.type==="workblock"){const xe=v(re);I.push(xe),re.attachments&&re.attachments.length>0&&P.push(...re.attachments.map(m));continue}if("type"in re&&re.type==="subagent_block"){P=[],I.push(A(re));continue}if("type"in re&&re.type==="subagent_group_block"){P=[],I.push(L(re));continue}if("type"in re&&re.type==="status"){P=[],I.push(k(re));continue}const ne=re,de=ne.role;if(ne.role==="tool")continue;const ue=g(ne.attachments);let ae;if((P.length>0||ue)&&(ae=[...P,...ue||[]],P=[]),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:SC(ne.metadata)};I.push(xe)}}return I});async function w(){if(!e.value){t.value=null;return}try{const I=await Be.request(He(`/api/threads/${e.value}`));t.value=await Be.readJson(I)}catch{t.value=null}}async function D(I){if(e.value){if(a?.deleteMessage){await a.deleteMessage(I);return}await Be.request(He(`/api/threads/${e.value}/messages/${I}`),{method:"DELETE"})}}async function F(I,B){e.value&&await Be.request(He(`/api/threads/${e.value}/messages/${I}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:B})})}ve(e,async I=>{I?(n.value=!0,await w(),n.value=!1):t.value=null},{immediate:!0});const U=a?.sendMessage,N=a?.stopExecution,E=a?.attachments??R([]),V=a?.addAttachment??(()=>{}),z=a?.removeAttachment??(()=>{}),Y=a?.clearAttachments??(()=>{});return{messages:C,threadInfo:t,isFetching:n,error:r,wsConnected:i,wsError:d,isExecuting:p,sendMessage:U,stopThread:N,attachments:E,addAttachment:V,removeAttachment:z,clearAttachments:Y,deleteMessageById:D,updateMessageContent:F}}const TC={key:0,class:"absolute inset-0 flex items-center justify-center bg-neutral-100 dark:bg-neutral-800"},MC={key:1,class:"absolute inset-0 flex items-center justify-center bg-neutral-100 dark:bg-neutral-800 text-neutral-400"},AC=["src","alt"],LC={key:2,class:"pointer-events-none absolute inset-0 flex items-center justify-center bg-black/0 group-hover:bg-black/35 transition-colors"},RC={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(T,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",TC,[...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",MC,[q(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,AC),[[zt,!s.value&&!i.value||p.value]]),f.value?(l(),c("div",LC,[...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},[q(h(po),{size:14,class:"text-neutral-500 mr-1 flex-shrink-0"}),u("span",RC,_(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"},[q(h(cn),{size:10})])):M("",!0)],2))}});let xs=null,Hu=null;function EC(){return typeof window>"u"?null:((!xs||Hu!==window)&&(xs=Zm(window),Hu=window),xs)}function al(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function PC(e){return((e??"").trim().split(/\s+/)[0]?.replace(/[^\w+#.-]/g,"")??"").slice(0,32)}function NC(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 OC=new Ym({async:!1,gfm:!0,breaks:!0,renderer:{html({text:e}){return al(e)},code({text:e,lang:t}){const n=PC(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}>${al(e)}
|
|
39
|
+
</code></pre></div>`}},walkTokens(e){(e.type==="link"||e.type==="image")&&"href"in e&&typeof e.href=="string"&&!NC(e.href)&&(e.href="")}});function DC(e){const t=OC.parse((e??"").trim()),n=EC();return n?.isSupported?n.sanitize(t,{USE_PROFILES:{html:!0},FORBID_TAGS:["style","form","input","button"],FORBID_ATTR:["style"]}):al(t)}const BC=["innerHTML"],FC=1500,jC=we({__name:"TranscriptMarkdown",props:{content:{},variant:{default:"body"}},setup(e){const t=e,n=x(()=>DC(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)},FC);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,BC))}}),Xo=ot(jC,[["__scopeId","data-v-e9ce40c0"]]);function qC(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 zC=/^The subagent was initiated successfully\. Reference:\s+[\w-]+$/;function Zl(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 VC={error:"error",queued:"queued",awaiting_human:"awaiting human",running:"running",complete:"complete"},HC={error:"Reported failure to parent",queued:"Queued",awaiting_human:"Waiting for human input",running:"Working",complete:"Returned result to parent"};function UC(e){return VC[Zl(e)]}function fp(e){return e.subagentThreadName||e.subagentTitle||e.subagentRelationship||e.subagentName||"Subagent"}function KC(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 WC(e){const t=[HC[Zl(e)]],n=e.subagentRelationship;return n&&n!==fp(e)&&t.push(n),t.push(`ref ${pp(e.subagentId)}`),t.join(" · ")}function GC(e){const t=(e.latestContent||"").trim().split(`
|
|
40
|
+
`).find(Boolean)?.trim()??"";return!t||zC.test(t)?null:t}function JC(e){return e==="tool"?"Initialization":e==="user"?"Subagent":e==="assistant"?"Assistant":"System"}function XC(e,t){return[e.subagentName,e.subagentRelationship].filter(a=>!!a).map(a=>t.find(o=>o.name===a)?.icon).find(a=>!!a)||js(e.subagentName||e.subagentTitle||e.subagentId)}const YC={class:"flex min-w-0 items-center gap-2 px-3 py-2.5"},ZC=["aria-expanded"],QC=["src"],e3={class:"min-w-0 flex-1"},t3={class:"flex min-w-0 items-center gap-2"},n3={class:"truncate"},r3={class:"font-medium text-neutral-900 dark:text-neutral-100"},a3={key:0,class:"text-neutral-500 dark:text-neutral-400"},o3={key:0,class:"block truncate text-[12px] text-neutral-500 dark:text-neutral-400"},s3=["src"],l3={key:0,class:"-mt-1 truncate pb-2.5 pl-[3.25rem] pr-3 text-neutral-600 dark:text-neutral-400"},i3={key:1,class:"divide-y divide-neutral-100 border-t border-neutral-100 dark:divide-neutral-800/70 dark:border-neutral-800/70"},u3={class:"flex items-center gap-2 text-[11px] text-neutral-500 dark:text-neutral-400"},d3={class:"font-medium text-neutral-700 dark:text-neutral-300"},c3={class:"tabular-nums"},f3={key:0,class:"italic"},p3={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(()=>XC(n.message,o.items.value)),i=x(()=>KC(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(()=>GC(n.message)),v=x(()=>Zl(n.message)),$=x(()=>{if(!n.threadId)return null;const y=qC(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 T(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",YC,[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,QC),u("span",e3,[u("span",t3,[u("span",n3,[u("span",r3,_(f.value),1),d.value&&m.value!==i.value?(l(),c("span",a3," · "+_(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]])},_(d.value?h(UC)(e.message):"Starting"),3)]),d.value?(l(),c("span",o3,_(h(WC)(e.message))+" · "+_(e.message.messageCount)+" message"+_(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,s3)):M("",!0),d.value?(l(),K(h(Pt),{key:1,size:14,class:J(["shrink-0 text-neutral-400 transition-transform",{"rotate-90":a.value}])},null,8,["class"])):M("",!0)],8,ZC),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)),q(h(im),{size:12})])):M("",!0)]),g.value&&!a.value?(l(),c("p",l3,_(g.value),1)):M("",!0),a.value?(l(),c("ol",i3,[(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",u3,[u("span",d3,_(h(JC)(L.role)),1),u("time",c3,_(T(L.created_at)),1),L.silent?(l(),c("span",f3,"silent")):M("",!0)]),L.content?(l(),K(Xo,{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",p3,[(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))}}),h3={class:"flex items-center justify-between gap-3 border-b border-neutral-100 px-3 py-2 text-[12px] dark:border-neutral-800/70"},m3={class:"text-neutral-500 dark:text-neutral-400"},g3={class:"divide-y divide-neutral-100 dark:divide-neutral-800/70"},v3=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",h3,[a[1]||(a[1]=u("span",{class:"font-medium text-neutral-700 dark:text-neutral-300"},"Subagent activity",-1)),u("span",m3,_(e.message.count)+" active profile"+_(e.message.count===1?"":"s"),1)]),u("div",g3,[(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))}}),y3=/https:\/\/[^\s"'<>()\][]+/g;function mp(e){if(!e)return null;const t=e.match(y3);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 b3={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 x3(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 k3(e){return e.type!=="status"&&e.silent===!0}function ol(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Uu(e){const t=e.content??"";return e.status!=="failed"&&!t.includes("[ERROR]")?null:mp(t)}function Ql(e){if(e.type!=="text")return null;const t=e.metadata;if(!ol(t))return null;const n=t.scheduledEffect;return ol(n)?n:null}function ei(e){const t=Ql(e);return typeof t?.id=="string"?t.id:null}function w3(e){const t=Ql(e);return typeof t?.name=="string"?t.name:null}function ea(e){return ei(e)!==null}function _3(e){const t=ei(e),n=w3(e);return n&&t?`${n} (${t})`:n||"Scheduled effect"}function ks(e){if(e.type!=="text")return null;const t=Ql(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 $3(e){return e?e.trim():""}const vp={prompt:"justify-end",agent:"justify-start",status:"justify-center"};function I3(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 S3(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 Ku(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 C3(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!ol(t)||t.user_command!==!0?null:((e.content||"").split(`
|
|
41
|
+
`,1)[0]??"").replace(/^\$\s*/,"").trim()||"(command)"}function T3(e){const t=yp(e);return t!==null?`User ran command: ${t}`:(e.type==="text"||e.type==="status")&&e.content||""}function M3(e){const t=e?.trim();return t?t.charAt(0).toUpperCase():"A"}function A3(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 L3=/^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 R3(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 E3(e){return e.role!=="system"?null:L3.exec((e.content??"").trim())?.[1]??null}function P3(e){return e.metadata?.subagentInitialArguments===!0}function N3(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 O3(e){const t=E3(e);if(t)return{source:{label:`hook ${t}`,title:null},prose:"",json:null,collapsedSummary:null};const n=R3(e.content);if(P3(e))return{...n,source:{label:"subagent arguments",title:null},collapsedSummary:N3(n.json)};const r=A3(e);return{...n,source:r?{label:`subagent ref ${pp(r)}`,title:r}:null,collapsedSummary:null}}const D3={class:"min-w-0 text-[13px] leading-5 text-neutral-500 dark:text-neutral-400","data-silent-note":""},B3={class:"flex min-w-0 flex-wrap items-center gap-x-1.5 text-xs leading-5"},F3=["title"],j3={class:"shrink-0 tabular-nums"},q3=["aria-expanded","aria-controls"],z3=["id"],V3={key:1,class:"silent-note-data",tabindex:"0","aria-label":"Structured data"},H3=we({__name:"SilentNote",props:{message:{},headerOnly:{type:Boolean}},setup(e){const t=e,n=x(()=>O3(t.message)),r=x(()=>!t.headerOnly&&n.value.collapsedSummary!==null),a=R(!1),o=jo(),s=x(()=>t.headerOnly||!n.value.prose&&!n.value.json?!1:!r.value||a.value);return(i,d)=>(l(),c("div",D3,[u("div",B3,[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},_(n.value.source.label),9,F3)],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",j3,_(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,_(n.value.collapsedSummary),1),q(h(Pt),{size:14,class:J(["shrink-0 opacity-60 transition-transform",{"rotate-90":a.value}]),"aria-hidden":"true"},null,8,["class"])],8,q3)],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(Xo,{key:0,content:n.value.prose,variant:"compact"},null,8,["content"])):M("",!0),n.value.json?(l(),c("pre",V3,[u("code",null,_(n.value.json),1)])):M("",!0)],8,z3)):M("",!0)]))}}),U3=ot(H3,[["__scopeId","data-v-fa1a5f65"]]),K3={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"},W3=120;function To(e){return e?e.trim():""}function xp(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function ti(e){try{return JSON.parse(e)}catch{return null}}function kp(e){const t=ti(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 Wu(e,t=W3){const n=e.trim().split(`
|
|
47
|
+
`)[0]??"";return n.length>t?n.substring(0,t):n}function wp(e){if(!e)return{};const t=ti(e);return t===null?{raw:e}:xp(t)??{raw:t}}function Gu(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 Wu(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?K3[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 G3(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 sl(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 J3(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||sl(t)||"text":typeof t!="string"?"json":sl(t)||"text"}function X3(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||G3(t)||r.includes("content")||r.includes("body")||r.includes("schema")||r.includes("payload")}function Y3(e,t){return typeof e!="string"?JSON.stringify(e,null,2):t==="json"?kp(e)||e:ir(e)}function Z3(e){const t=wp(e);return Object.entries(t).map(([n,r])=>{const a=J3(n,r,t);return{key:n,language:a,code:Y3(r,a),isBlock:X3(n,r,a)}})}function Q3(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)||sl(t.content)||"text";return{code:ir(t.content),language:n}}function Ju(e){const t=To(e),n=ti(t),r=Q3(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 eT(e){return ir(To(e))}function tT(e){return e.type==="tool_call"?e.response_status==="failed"?"failed":e.response_status==="success"?"success":"pending":e.type==="content"?"success":"neutral"}function nT(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 rT(e){const t=Math.round(e/1e6);return t<1?"< 1s":t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function aT(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 ${rT(t)}`}function oT(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 sT(e){const t=aT(e),n=oT(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 lT(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 iT={class:"min-w-0 text-[13px] leading-5"},uT=["aria-expanded"],dT={key:0,class:"shrink-0 opacity-70"},cT={key:1,class:"shrink-0 opacity-70"},fT={key:2,class:"shrink-0 text-rose-600 dark:text-rose-400"},pT={key:0,class:"mt-1 ml-0.5 space-y-0.5 border-l border-neutral-200 pl-3.5 dark:border-neutral-800"},hT=["aria-expanded","onClick","onMouseenter"],mT=["title"],gT={class:"shrink-0 font-mono text-[12px] font-medium text-neutral-800 dark:text-neutral-200"},vT={key:0,class:"min-w-0 flex-1 truncate text-neutral-500 dark:text-neutral-400"},yT={key:0,class:"mt-1 mb-2 space-y-2.5 pl-3.5"},bT={key:0},xT={class:"work-detail-surface divide-y divide-neutral-200/70 dark:divide-neutral-800"},kT={class:"truncate pt-0.5 font-mono text-[12px] text-neutral-500"},wT={class:"min-w-0"},_T={key:1,class:"break-words text-neutral-800 dark:text-neutral-200"},$T={key:1},IT={class:"work-detail-label"},ST=["onClick","onMouseenter"],CT={key:0,class:"m-0 whitespace-pre-wrap break-words font-mono text-[12px] leading-5"},TT=["aria-expanded","onClick"],MT={key:0,class:"mb-2 whitespace-pre-wrap break-words pl-3.5 text-neutral-600 dark:text-neutral-400"},AT=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(()=>sT(n.message)),i=x(()=>lT(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 T=new Set(o.value);T.has(b.id)?T.delete(b.id):T.add(b.id),o.value=T,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 T=b.response_log_id;return!!T&&(T===n.selectedLogId||T===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,T)=>(l(),c("div",iT,[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:T[0]||(T[0]=y=>f(!0)),onMouseleave:T[1]||(T[1]=y=>f(!1))},[u("span",{class:J(["min-w-0 truncate",{"work-block-active":s.value.active}])},_(s.value.label),3),s.value.duration?(l(),c("span",dT,"· "+_(s.value.duration),1)):M("",!0),s.value.toolCount?(l(),c("span",cT," · "+_(s.value.toolCount)+" tool call"+_(s.value.toolCount===1?"":"s"),1)):M("",!0),s.value.failedCount?(l(),c("span",fT," · "+_(s.value.failedCount)+" failed ",1)):M("",!0),q(h(Pt),{size:14,class:J(["shrink-0 opacity-60 transition-transform",{"rotate-90":a.value}])},null,8,["class"])],42,uT),a.value?(l(),c("div",pT,[(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:T[2]||(T[2]=Je(A=>r("messageHover",null),["stop"]))},[u("span",{class:J(["size-1.5 shrink-0 rounded-full",$[h(tT)(y)]]),title:h(nT)(y)},null,10,mT),u("span",gT,_(y.tool_name),1),h(Gu)(y.tool_arguments)?(l(),c("span",vT,_(h(Gu)(y.tool_arguments)),1)):M("",!0)],42,hT),o.value.has(y.id)?(l(),c("div",yT,[y.tool_arguments?(l(),c("section",bT,[T[4]||(T[4]=u("h4",{class:"work-detail-label"},"Arguments",-1)),u("dl",xT,[(l(!0),c(te,null,Ie(h(Z3)(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",kT,_(A.key),1),u("dd",wT,[A.isBlock?(l(),K(Cn,{key:0,code:A.code,language:A.language},null,8,["code","language"])):(l(),c("span",_T,_(A.code),1))])]))),128))])])):M("",!0),y.response?(l(),c("section",$T,[u("h4",IT,_(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:T[3]||(T[3]=Je(A=>r("messageHover",null),["stop"]))},[y.response_status==="failed"?(l(),c("pre",CT,_(h(eT)(y.response)),1)):(l(),K(Cn,{key:1,code:h(Ju)(y.response).code,language:h(Ju)(y.response).language},null,8,["code","language"]))],42,ST)])):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"])},[T[5]||(T[5]=Ce(" Reasoning ",-1)),q(h(Pt),{size:12,class:J(["opacity-60 transition-transform",{"rotate-90":o.value.has(y.id)}])},null,8,["class"])],8,TT),o.value.has(y.id)?(l(),c("div",MT,_(y.content?.trim()),1)):M("",!0)],64)):y.type==="content"&&y.content?(l(),K(Xo,{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)]))}}),LT=ot(AT,[["__scopeId","data-v-ca518e17"]]),RT={class:"flex flex-col"},ET=["onMouseenter","onMouseleave","onClick"],PT=["onClick"],NT={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"},OT={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"},DT={key:0,class:"w-full py-1 text-center text-xs text-neutral-400 dark:text-neutral-500"},BT=["contenteditable","onInput"],FT=["href"],jT={key:4,class:"inline-flex items-center gap-1 rounded-full bg-neutral-100 px-3 py-2 dark:bg-neutral-800/60"},qT={key:0,class:"inline-flex items-center gap-1.5 text-neutral-500 dark:text-neutral-400"},zT={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"},VT={key:1,class:"text-neutral-500 dark:text-neutral-400"},HT=["title","onClick"],UT={class:"tabular-nums"},KT=["onClick"],WT={key:0,class:"mt-2 flex flex-wrap gap-2"},GT=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(F){const U=r.selectedForDelete?.has(F)??!1;a("selectionChange",F,!U)}function s(F,U){if(!(F.target instanceof HTMLElement))return;const N=F.target.innerText;a("messageEdit",U,N)}function i(F){return r.editedMessages?.has(F)??!1}const d=R(new Map);function p(F,U){U?d.value.set(F,U):d.value.delete(F)}function f(F,U){p(F,U instanceof HTMLElement?U:null)}function m(F){const U=r.messages.findIndex(N=>Pn(N)===F);if(U<=0)return-1;for(let N=U-1;N>=0;N--){const E=r.messages[N];if(E.role==="user")return N;if(E.role==="assistant"&&Pn(E))break}return-1}function g(F){for(let U=0;U<r.messages.length;U++){const N=r.messages[U];if(Pn(N)===F||N.type==="work"&&N.items.some(E=>Sr(E,F)))return U}return-1}function v(F,U){const E=g(F);if(E===-1)return!1;const V=d.value.get(E);if(!V)return!1;const z=r.messages[E];let Y=null;const I=Pn(z);if(z.role==="assistant"&&I){const P=m(I);Y=P!==-1?d.value.get(P)??null:null}const B=U.getBoundingClientRect(),W=V.getBoundingClientRect();if(W.top<B.top){const re=(Y||V).getBoundingClientRect().top-B.top-10;U.scrollBy({top:re,behavior:"smooth"})}else if(W.bottom>B.bottom){const P=W.bottom-B.bottom+10;U.scrollBy({top:P,behavior:"smooth"})}else if(Y){const P=Y.getBoundingClientRect();if(P.top<B.top){const X=P.top-B.top-10;U.scrollBy({top:X,behavior:"smooth"})}}return!0}function $(F){for(const U of r.messages)if(U.type==="work"&&U.items.some(N=>Sr(N,F)))return!0;return!1}t({scrollToLogId:v,hasWorkblockForLogId:$});function b(F){const U=r.messages[F],N=Pn(U);if(N)return N;if(U.role==="user")for(let E=F+1;E<r.messages.length;E++){const V=r.messages[E],z=Pn(V);if(z)return z;if(V.role==="user")break}return null}function T(F,U){return U?b(F)===U:!1}function y(F,U){if(r.isEditMode||k3(F)||F.role==="user"&&!ea(F))return"";const N=ei(F),E=!!b(U)||ea(F);return T(U,r.selectedLogId??null)||N&&N===r.selectedEffectId?"message-log-state message-log-state--selected":b(U)&&T(U,r.hoveredLogId??null)?"message-log-state message-log-state--hovered":E?"message-log-state":""}function A(F){const U=b(F);U&&a("messageHover",U)}function L(F){b(F)&&a("messageHover",null)}function k(F){const U=r.messages[F],N=b(F),E=ks(U);(N||E)&&a("messageClick",U.id,N,E)}function C(F){const U=r.messages[F],N=ks(U);N&&a("messageClick",U.id,b(F),N)}function w(F){return r.isEditMode?!1:T(F,r.selectedLogId??null)||T(F,r.hoveredLogId??null)}function D(F){return F.role==="assistant"?r.assistantAvatarSrc??null:F.role==="user"?r.userAvatarSrc??null:null}return(F,U)=>(l(),c("div",RT,[(l(!0),c(te,null,Ie(e.messages,(N,E)=>(l(),c("div",{key:N.id,ref_for:!0,ref:V=>f(E,V),class:J(["group/message flex min-w-0 items-start gap-3",h(b3)[h(x3)(e.messages,E)]]),onMouseenter:V=>A(E),onMouseleave:V=>L(E),onClick:V=>e.isEditMode?o(N.id):k(E)},[e.isEditMode&&N.role!=="system"?(l(),c("button",{key:0,onClick:Je(V=>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",NT,[...U[6]||(U[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",OT,[...U[7]||(U[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,PT)):M("",!0),u("div",{class:J(["flex min-w-0 flex-1",[h(vp)[h(Kt)(N)],{"cursor-pointer":(b(E)||h(ks)(N))&&!e.isEditMode}]])},[h(C3)(N)?(l(),c("div",DT,_(h(T3)(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,E),{"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(S3)(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(U3,{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:V=>s(V,N.id),onClick:U[0]||(U[0]=Je(()=>{},["stop"]))},_(h($3)(N.content)),43,BT)):N.content&&!N.silent?(l(),K(Xo,{key:2,content:N.content,variant:N.role==="system"?"compact":"body"},null,8,["content","variant"])):M("",!0),!e.isEditMode&&h(Uu)(N)?(l(),c("a",{key:3,href:h(Uu)(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:U[1]||(U[1]=Je(()=>{},["stop"]))},[...U[8]||(U[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,FT)):N.status==="pending"?(l(),c("div",jT,[...U[9]||(U[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(I3)(N)])},[N.sideLabel&&!h(ea)(N)?(l(),c("span",qT,[D(N)?(l(),K(Mn,{key:0,icon:D(N),seed:N.sideLabel,class:"h-4 w-4 shrink-0 rounded-[4px] object-cover"},null,8,["icon","seed"])):(l(),c("span",zT,_(h(M3)(N.sideLabel)),1)),u("span",null,_(N.sideLabel),1)])):N.role==="system"&&!h(ea)(N)?(l(),c("span",VT,"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(_3)(N),onClick:Je(V=>C(E),["stop"])},[q(h(Bn),{size:12,class:"shrink-0"}),U[10]||(U[10]=u("span",null,"via Scheduled Effect",-1))],8,HT)):M("",!0),u("time",UT,_(h(gp)(N.created_at)),1),(N.role==="assistant"?b(E):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(V=>a("openTurnLogs",N.id,b(E)),["stop"])},[q(h(vc),{size:12,class:"shrink-0"}),U[11]||(U[11]=u("span",null,"Logs",-1))],8,KT)):M("",!0)],2)):M("",!0)],2),h(Ku)(N,E,e.messages)?.length&&e.threadId?(l(),c("div",WT,[(l(!0),c(te,null,Ie(h(Ku)(N,E,e.messages),V=>(l(),K(cp,{key:V.id,attachment:V,threadId:e.threadId},null,8,["attachment","threadId"]))),128))])):M("",!0)],2)):N.type==="work"?(l(),K(LT,{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:U[2]||(U[2]=(V,z)=>a("messageClick",V,z)),onMessageHover:U[3]||(U[3]=V=>a("messageHover",V))},null,8,["class","message","is-edit-mode","selected-message-id","selected-log-id","hovered-log-id"])):N.type==="subagent_group"?(l(),K(v3,{key:3,message:N,"thread-id":e.threadId,highlighted:w(E),onOpenSubagent:U[4]||(U[4]=V=>a("openSubagent",V))},null,8,["message","thread-id","highlighted"])):N.type==="subagent"?(l(),K(hp,{key:4,class:"w-full",message:N,"thread-id":e.threadId,highlighted:w(E),onOpenSubagent:U[5]||(U[5]=V=>a("openSubagent",V))},null,8,["message","thread-id","highlighted"])):M("",!0)],2)],42,ET))),128))]))}}),JT=ot(GT,[["__scopeId","data-v-a62be12f"]]);function XT(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]??YT[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}},YT={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}},Xu={"data-1p-ignore":"","data-lpignore":"true","data-bwignore":"","data-form-type":"other",autocomplete:"off"};function ZT(e){e.type==="input"&&(e.hook.prop((t,n)=>(t.prop==="attrs"&&(t.value={...t.value??{},...Xu}),n(t))),e.props.attrs={...e.props.attrs??{},...Xu})}const QT=Th(XT),e8=eg("fk-2d3e4e0bb",tg),t8="h-8",n8=new Set(["textarea","repeater","list","group","form"]);function r8(e,t){const n={...QT(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;!n8.has(a??"")&&r!=="box"&&a!=="toggle"&&!o&&(n[t8]=!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 a8={config:{rootClasses:r8,popover:!0,openOnClick:!0,openOnRemove:!0,clearSearchOnOpen:!0,selectionAppearance:"option",emptyMessage:"No results found."},plugins:[e8,Ch,ZT],rules:Sh,messages:{en:{validation:Ih}},inputs:$h,icons:{...Qm}},o8=um(a8);function s8(e){return e.flatMap(t=>{const n=JSON.stringify(t);return n===void 0?[]:[{value:n,label:typeof t=="string"&&t?t:n}]})}function l8(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 i8={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function u8(e,t){return l(),c("svg",i8,[...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 d8=Ye({name:"lucide-lock",render:u8}),c8={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function f8(e,t){return l(),c("svg",c8,[...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 p8=Ye({name:"lucide-logs",render:f8}),h8=["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(d8),{key:0,class:"h-4 w-4","aria-hidden":"true"})):(l(),K(h(p8),{key:1,class:"h-4 w-4","aria-hidden":"true"}))],10,h8))}}),m8={key:0,class:"justify-self-center"},g8=["disabled","onClick"],v8=["disabled"],y8=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":""]])},[q(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",m8,[q(o,{type:"hidden",name:"type",value:e.customRows[Number(s)]?.type||"text","outer-class":"$reset hidden"},null,8,["value"]),q(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"])),q(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"]),q(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,g8)],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,v8)):M("",!0)],64)}}}),b8=ot(y8,[["__scopeId","data-v-344d8c76"]]),x8={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function k8(e,t){return l(),c("svg",x8,[...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 w8=Ye({name:"lucide-rotate-ccw",render:k8});function _8(e){return e.name==="local"?`this ${e.type}`:`the ${e.name} ${e.type}`}function $8(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 I8(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 S8(e,t){if(e.declared.length!==1)return!1;const[n]=e.declared;return n.type===t.type&&n.name===t.name}function Yu(e,t=!1,n=!0){const r=e.required?"Required by":"Requested by",a=e.declared.length?$8(e.declared.map(_8)):"this configuration";return!e.defined||t||!n?`${r} ${a}.`:S8(e,e.defined)?`${e.required?"Required":"Requested"} and set by ${a}.`:`${r} ${a}, value provided by ${I8(e.defined)}.`}const C8=["data-variable-property"],T8={class:"relative"},M8=["disabled","title"],A8=["disabled"],L8={key:3,class:"h-[34px] w-7 justify-self-center"},R8={class:"text-xs text-neutral-400 dark:text-neutral-500 px-1"},E8={key:0,class:"text-xs text-neutral-400 dark:text-neutral-500 px-1"},P8=["data-enabler-property"],N8={class:"text-[11px] text-neutral-500 dark:text-neutral-400"},O8={key:0,class:"text-[11px] text-neutral-500 dark:text-neutral-400"},D8={class:"space-y-2"},B8={class:"flex items-center justify-between"},F8={class:"text-xs text-neutral-500 dark:text-neutral-400"},j8=["disabled","onClick"],q8={class:"variable-editor-optional-row grid gap-2 items-start grid-cols-[minmax(180px,1fr)_minmax(220px,1fr)]"},z8={class:"text-xs text-neutral-400 dark:text-neutral-500 px-1"},V8=["disabled"],H8=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":""]])},[q(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",T8,[q(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(w8),{key:0,class:"h-4 w-4"})):(l(),K(h(rp),{key:1,class:"h-4 w-4"}))],40,M8)):M("",!0)]),q(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,A8)):(l(),c("span",L8))],2),u("p",R8,_(h(Yu)(e.row,e.isValueOverrideActive(e.row),e.isValueInherited(e.row))),1),e.shouldShowSecretValueUnavailable(e.row)?(l(),c("p",E8," 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",N8,[a[11]||(a[11]=Ce(" Optional branch enabled by ",-1)),u("code",null,_(e.row.property),1)]),typeof e.getOptionalGroupMaxInstances(e.row.property)=="number"?(l(),c("p",O8," Max instances: "+_(e.getOptionalGroupMaxInstances(e.row.property)),1)):M("",!0),q(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",D8,[u("div",B8,[u("p",F8," Instance "+_(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,j8)]),(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",q8,[q(o,{type:"text",value:i.property,disabled:!0,"outer-class":"$reset",classes:e.getTextClasses({disabled:!0})},null,8,["value","classes"]),q(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",z8,_(h(Yu)(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,V8)):M("",!0)],8,P8)):M("",!0)]),_:1},8,["name"])):M("",!0)],8,C8)}}}),U8=ot(H8,[["__scopeId","data-v-271f80e8"]]),Sp=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},la=e=>!!e.defined,K8=(e,t)=>{const n=Sp(e);return Object.prototype.hasOwnProperty.call(n,t)&&n[t]!==void 0&&n[t]!==null},W8=(e,t)=>{const r=Sp(e)[t];return r==null?"":String(r)},G8=e=>e.type==="secret"||e.value===void 0||e.value===null?"":String(e.value),J8=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",X8=(e,t)=>la(e)&&!t?.locallyDefined&&!t?.overrideActive?J8(e):e.description||"Enter value...",Zu=e=>{if(!e.optionalOnly)return null;const t=e.optionalBranches?.[0];return t?.gate?t.gate:null},Qu=e=>{if(e==null)return!1;const t=String(e).trim().toLowerCase();return t==="true"||t==="1"||t==="yes"};function Y8(e){const t=x(()=>{const y=new Map;for(const A of e.declaredRows.value){const L=Zu(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=>!Zu(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 C=k.optionalBranches||[];for(const w of C)w.gate===y&&typeof w.maxInstances=="number"&&w.maxInstances>0&&L.push(w.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 C=y.slice(k.length);if(/^\d+$/.test(C))return!0}return!1},s=(y,A)=>{for(const L of r(y)){const k=`${L}__`;if(!A.startsWith(k))continue;const C=A.slice(k.length);if(/^\d+$/.test(C))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),C=a(y),w=[];if(Array.isArray(A))for(const F of A){const U=F&&typeof F=="object"?F:{},N=i(y);for(const E of k){const V=U[E];N[E]=V==null?"":String(V)}w.push(N)}const D=typeof C=="number"&&C>0?w.slice(0,C):w;return D.length===0&&k.length>0&&D.push(i(y)),D},p=(y,A)=>{const L=r(y);if(L.length===0)return[];const k=new Map;for(const w of L){const D=A[w];D!=null&&D!==""&&(k.has(0)||k.set(0,i(y)),k.get(0)[w]=String(D));const F=`${w}__`;for(const[U,N]of Object.entries(A||{})){if(!U.startsWith(F))continue;const E=U.slice(F.length);if(!/^\d+$/.test(E))continue;const V=Number.parseInt(E,10);if(!Number.isFinite(V)||V<2)continue;const z=V-1;k.has(z)||k.set(z,i(y)),k.get(z)[w]=N==null?"":String(N)}}k.size>0&&!k.has(0)&&k.set(0,i(y));const C=Array.from(k.entries()).sort((w,D)=>w[0]-D[0]).map(w=>w[1]);return d(y,C)},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=>Qu(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 C of Object.keys(A))(L.includes(C)||s(y,C))&&(delete A[C],k=!0);return k},$=(y,A)=>{const L=d(y,A),k=r(y);if(k.length===0)return;const C=e.modelValue()||{},w={...C};v(y,w);for(let D=0;D<L.length;D++){const F=L[D]||{};for(const U of k){const N=F[U],E=D===0?U:`${U}__${D+1}`;if(D===0){N&&(w[E]=N);continue}w[E]=N||""}}e.serializeEnvRecord(w)!==e.serializeEnvRecord(C)&&e.emitModelValue(w)};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:Qu,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 ed=[{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"}],Z8="grid-cols-[minmax(180px,1fr)_140px_minmax(220px,1fr)_56px_28px]",Q8="grid-cols-[minmax(140px,1fr)_minmax(160px,1.2fr)_32px_56px_28px]",eM={class:"variable-scan-editor space-y-3"},tM=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?Q8:Z8),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),S=i((n.declarations||[]).map(ye=>s(ye))),O=S.filter(ye=>{const Q=ye.name.trim();return Q&&!p(Q)}),H=[...le,...O];if(m.value){if(m.value=!1,d(H)===d(S))return}else if(d(H)===d(S))return;r("update:declarations",H)},{deep:!0,flush:"sync"}),ve([()=>n.declarations,()=>n.scanned],([G])=>{const le=(G||[]).map(S=>s(S)).filter(S=>{const O=S.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 S=Array.isArray(le.optionalBranches)?le.optionalBranches.map(O=>{const H=typeof O?.gate=="string"?O.gate.trim():"",ye=typeof O?.tool=="string"?O.tool.trim():"";return!H||!ye?null:{gate:H,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:S.length>0?S:void 0})}return G}),v=x(()=>{const G=new Map;for(const le of f.value){const S=le.name?.trim();S&&G.set(S,{...le,name:S,type:o(le.type),required:!!le.required,description:le.description||""})}return G}),$=x(()=>{const G=new Map;for(const[le,S]of g.value.entries())G.set(le,{...S});for(const[le,S]of v.value.entries()){if(!G.has(le)){G.set(le,{property:le,declared:[{type:"prompt",name:"local"}],defined:!1,type:S.type,required:S.required,description:S.description,optionalOnly:!1});continue}const O=G.get(le);O.declared.some(H=>H.type==="prompt"&&H.name==="local")||(O.declared=[...O.declared,{type:"prompt",name:"local"}]),O.required=O.required||S.required,S.type==="secret"&&(O.type="secret"),!O.description&&S.description&&(O.description=S.description)}return Array.from(G.values())}),b=x(()=>new Set($.value.map(G=>G.property))),T=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=>T(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,S)=>le.localeCompare(S)).map(le=>[le,G[le]===void 0||G[le]===null?"":String(G[le])])),{addOptionalGroupRow:k,clearOptionalGroupValuesInModel:C,getOptionalGroupMaxInstances:w,getOptionalGroupRows:D,groupedOptionalRows:F,isEnabledEnvFlag:U,isOptionalGateEnabled:N,isOptionalInstanceKey:E,persistOptionalGroupRows:V,removeOptionalGroupRow:z,rootRows:Y}=Y8({declaredRows:$,scannedMap:g,modelValue:()=>n.modelValue||{},emitModelValue:G=>r("update:modelValue",G),serializeEnvRecord:L}),I=R([]),B=R(null),W=R(!1),P=G=>{const le=Array.isArray(G)?G:[],S=y(le);A(S)!==A(I.value)&&(I.value=S)},X=G=>{B.value=G},re=G=>{const le=y(G);A(le)!==A(I.value)&&(I.value=le,B.value&&B.value.input(le))},ne=G=>y(G).map(le=>{const S=le.name.trim();return!S||p(S)?null:{name:S,type:o(le.type),required:!!le.required,description:""}}).filter(le=>!!le);function de(){const G=new Map;for(const[O,H]of Object.entries(n.modelValue||{}))b.value.has(O)||E(O)||H==null||H===""||G.set(O,String(H));const le=new Map;for(const O of i((n.declarations||[]).map(H=>s(H)))){const H=O.name.trim();!H||p(H)||le.set(H,{type:o(O.type),required:!!O.required})}const S=[];for(const O of I.value.map(H=>T(H))){const H=O.name.trim();if(!H){S.push(O);continue}if(!b.value.has(H)){if(le.has(H)){const ye=le.get(H);O.type=ye.type,O.required=ye.required,le.delete(H)}G.has(H)&&(O.value=G.get(H)||"",G.delete(H)),S.push(O)}}for(const[O,H]of le.entries()){const ye=G.get(O)||"";G.delete(O),S.push({name:O,value:ye,type:H.type,required:H.required})}for(const[O,H]of G.entries())S.push({name:O,value:H,type:"text",required:!1});A(S)!==A(I.value)&&(W.value=!0,I.value=S)}ve(I,G=>{const le=y(G);if(W.value&&(W.value=!1,A(le)===A(I.value)))return;if(A(le)!==A(I.value)){W.value=!0,I.value=le;return}const S={...n.modelValue};for(const O of Object.keys(S))!b.value.has(O)&&!E(O)&&delete S[O];for(const O of le){const H=O.name.trim();!H||b.value.has(H)||!O.value||(S[H]=O.value)}if(L(S)!==L(n.modelValue||{})&&r("update:modelValue",S),n.allowDeclarationEdit){const O=[...i(f.value),...ne(le)],H=i((n.declarations||[]).map(ye=>s(ye)));d(O)!==d(H)&&r("update:declarations",O)}},{deep:!0,flush:"sync"}),ve([()=>n.modelValue,()=>n.declarations,()=>n.scanned,b],(G,le)=>{const[S,O,H,ye]=G,[Q,Ae,Ne,Ke]=le||[],qe=O!==Ae||H!==Ne||ye!==Ke,ht=(()=>{if(!Q||typeof Q!="object")return!0;const lt=S||{},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)||E(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=>K8(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),j=G=>n.allowDeclarationEdit&&v.value.has(G.property)&&!n.disabled,ce=G=>j(G),he=G=>j(G),Pe=G=>ie(G.property)?W8(n.modelValue||{},G.property):se(G)&&G.value!==void 0&&G.value!==null?String(G.value):la(G)&&!ue.value.has(G.property)?G8(G):(la(G)&&ue.value.has(G.property),""),We=G=>X8(G,{locallyDefined:ie(G.property)||se(G),overrideActive:ue.value.has(G.property)}),Ue=(G,le)=>{const S=new Set(xe.value);le?S.add(G):S.delete(G),xe.value=S};ve([()=>n.scanned,()=>n.modelValue,()=>n.localSourceType,()=>n.localSourceName],()=>{const G={...n.modelValue||{}};let le=!1;for(const S of n.scanned||[])se(S)&&(S.value===void 0||S.value===null||ie(S.property)||xe.value.has(S.property)||(G[S.property]=S.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 S=G.trim();if(!S)return;let O=!1;f.value=f.value.map(H=>H.name.trim()!==S?H:(O=!0,{...H,name:S,type:o(le.type??H.type),required:le.required??!!H.required,description:le.description??(H.description||"")})),O||(f.value=[...f.value,{name:S,type:o(le.type??"text"),required:!!le.required,description:le.description||""}])},ge=G=>{const le=G.trim();le&&(f.value=f.value.filter(S=>S.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 S=G.trim(),O=le.trim();if(!S||!O||S===O||b.value.has(O))return;let H=!1;if(f.value=f.value.map(Ae=>Ae.name.trim()!==S?Ae:(H=!0,{...Ae,name:O})),!H)return;Ue(S,!0),Ue(O,!1);const ye=$.value.find(Ae=>Ae.property===S),Q={...n.modelValue};Object.prototype.hasOwnProperty.call(Q,S)?(Q[O]=Q[S],delete Q[S]):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 S=$.value.find(H=>H.property===G);if(S&&!Z(S)||S&&!Te(S))return;S&&se(S)&&Ue(G,!le);const O={...n.modelValue};le?O[G]=le:delete O[G],F.value.has(G)&&!U(le)&&C(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 S=new Set(ue.value);S.delete(G),ue.value=S},Yt=G=>{const le=$.value.find(S=>S.property===G);le&&se(le)&&Ue(G,!0),ge(G),Lt(G)},on=()=>{re([...I.value,{name:"",value:"",type:"text",required:!1}])},wt=G=>{if(G<0||G>=I.value.length)return;const le=[...I.value];le.splice(G,1),re(le)},jt=(G,le)=>{if(G<0||G>=I.value.length)return;const S=[...I.value];S[G]={...S[G],type:o(le)},re(S)};return(G,le)=>(l(),c("div",eM,[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),S=>(l(),K(U8,{key:S.property,row:S,thin:e.thin,"variable-grid-columns":a.value,"type-options":h(ed),"allow-secret-declarations":e.allowSecretDeclarations,"allow-secret-values":e.allowSecretValues,"require-required-values":e.requireRequiredValues,disabled:e.disabled,"grouped-optional-rows":h(F),"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":j,"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(w),"get-optional-group-rows":h(D),onUpdateDeclaredName:De,onUpdateDeclaredType:_e,onUpdateDeclaredValue:rt,onUpdateDeclaredRequired:Xe,onToggleValueOverride:At,onRemoveLocalDeclaration:Yt,onPersistOptionalGroupRows:h(V),onRemoveOptionalGroupRow:h(z),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)),q(b8,{"show-custom-rows":e.showCustomRows,"custom-rows":I.value,disabled:e.disabled,"allow-declaration-edit":e.allowDeclarationEdit,"allow-secret-declarations":e.allowSecretDeclarations,"allow-secret-values":e.allowSecretValues,"type-options":h(ed),thin:e.thin,"variable-grid-columns":a.value,"get-text-classes":ke,"get-select-classes":Ee,onNode:X,onInput:P,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"])]))}}),nM=ot(tM,[["__scopeId","data-v-57b4e07c"]]),rM=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(()=>[q(nM,{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"])}}}),aM={class:"create-thread-shell flex h-full min-h-0 flex-col bg-white dark:bg-neutral-950"},oM={key:0,class:"create-thread-inline-header flex h-12 shrink-0 items-center px-5"},sM={key:1,class:"px-5 pt-2 text-sm text-neutral-500 dark:text-neutral-400","aria-live":"polite"},lM={class:"flex flex-1 min-h-0 flex-col"},iM={class:"hidden"},uM={class:"create-thread-scroll flex-1 overflow-y-auto px-5 pb-10 pt-12"},dM={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"},cM={key:2},fM={class:"flex items-center justify-between mb-1"},pM={class:"flex items-center gap-1.5 ml-auto"},hM={key:3,class:"space-y-4"},mM={key:4,class:"text-center text-sm text-neutral-500"},gM={key:5,class:"space-y-3"},vM={key:6,class:"text-center text-sm text-neutral-500"},yM={class:"create-thread-inline-actions flex flex-col items-end gap-2"},bM={class:"create-thread-action-buttons flex gap-2"},td="__optional__",xM=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),T=ke=>{const ie=v(ke),se={};for(const[me,pe]of Object.entries(ie)){if(me.startsWith(td)||/^(text|checkbox)_\d+$/.test(me))continue;const Fe=$(pe);Fe&&(se[me]=Fe)}for(const[me,pe]of Object.entries(ie)){if(!me.startsWith(td)||!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),j=Fe===0?ee:`${ee}__${Fe+1}`;if(Fe===0){Oe&&(se[j]=Oe);continue}se[j]=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},C=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),""},w=wa(),{items:D,initialLoading:F,error:U,ensureLoaded:N}=w,E=x(()=>o.value?D.value:D.value.filter(ke=>qs(ke))),V=x(()=>Mh({known:vl(w),total:D.value.length,selectable:E.value.length,includeSubagents:o.value})),z=()=>E.value.map(ke=>({value:ke.id,label:ke.title})),Y=x(()=>a.value&&D.value.find(ke=>ke.id===a.value)||null),{data:I,isFetching:B,execute:W}=uo(x(()=>Y.value?.side_a_agent_prompt?He(`/api/prompts/${encodeURIComponent(Y.value.side_a_agent_prompt)}`):""),{immediate:!1}).json(),P=x(()=>{if(!I.value)return null;const ie=(I.value.prompt||I.value).required_schema;if(!ie)return null;try{return typeof ie=="string"?JSON.parse(ie):ie}catch{return null}}),X=x(()=>{const ke=P.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?s8(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():I.value=null,ke?await ne(ke):d.value=[]}ve(a,de),ve([o,E],()=>{n.lockedAgentId||!a.value||E.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=[],I.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=l8(v(ie.data),X.value);Object.keys(pe).length>0&&(me.data=pe);const Fe=T(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=ze(me)||"Failed to create thread";Pl(me instanceof Bs?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||U.value){g.value="form";return}g.value="creating";try{const se=await ae({agent_id:ke});r("thread-created",se)}catch(se){i.value=ze(se)||"Failed to create thread",g.value="form"}}return Me(),(ke,ie)=>{const se=It("FormKit");return l(),c("div",aM,[q(h(dm),{config:h(o8)},{default:be(()=>[g.value!=="form"?(l(),c("div",oM,[...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",sM,_(g.value==="creating"?"Creating thread…":"Loading agent requirements…"),1)):M("",!0),$t(u("div",lM,[q(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",iM,_(C(me)),1),u("div",uM,[u("div",dM,[ie[9]||(ie[9]=u("h3",{class:"text-base font-semibold text-neutral-900 dark:text-neutral-100"},"New thread",-1)),i.value||h(U)?(l(),K(h(Ct),{key:0,variant:"error"},{default:be(()=>[Ce(_(h(ze)(i.value||h(U))),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",cM,[u("div",fM,[ie[3]||(ie[3]=u("label",{class:"block text-sm font-medium text-neutral-800 dark:text-neutral-200"}," Agent ",-1)),u("div",pM,[ie[2]||(ie[2]=u("span",{class:"text-xs text-neutral-500 dark:text-neutral-400"}," Include subagents ",-1)),q(se,{type:"toggle",name:"include_subagents",value:!1,"on-value":!0,"off-value":!1,"on-value-label":"","off-value-label":"",disabled:h(F),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"])])]),q(se,{type:"selectSearch",name:"agent_id",value:a.value,options:z,disabled:h(F),placeholder:"Select an agent",validation:"required","validation-visibility":"submit"},null,8,["value","disabled"]),q(h(ss),{class:"mt-1"},{default:be(()=>[Ce(_(V.value.text),1)]),_:1})])),X.value.length>0&&!h(B)?(l(),c("div",hM,[ie[4]||(ie[4]=u("h4",{class:"text-sm font-medium text-neutral-800 dark:text-neutral-200"}," Required information ",-1)),q(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(ss),{key:5,class:"mt-1"},{default:be(()=>[Ce(_(pe.description),1)]),_:2},1024)):M("",!0)]))),128))]),_:1})])):M("",!0),h(B)?(l(),c("div",mM," Loading agent requirements… ")):M("",!0),re.value?(l(),c("div",gM,[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)),q(rM,{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",vM," Scanning environment variables… ")):M("",!0),u("div",null,[q(se,{type:"text",name:"tags_csv",value:"",label:"Tags",placeholder:"research, urgent, production"}),q(h(ss),{class:"mt-1"},{default:be(()=>[...ie[6]||(ie[6]=[Ce(" Separate tags with commas. ",-1)])]),_:1})]),u("div",yM,[q(h(Sa),{node:m.value||void 0},null,8,["node"]),u("div",bM,[q(h(Tn),{variant:"ghost",size:"sm",disabled:s.value,onClick:Re},{default:be(()=>[...ie[7]||(ie[7]=[Ce(" Cancel ",-1)])]),_:1},8,["disabled"]),q(h(Tn),{variant:"primary",size:"sm",disabled:s.value||h(F),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"])])}}}),kM=ot(xM,[["__scopeId","data-v-5c972579"]]),wM=["accept"],_M=["disabled"],$M=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,wM),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"},[q(h(cm),{size:18})],10,_M)],64))}}),IM={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"},SM={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"},CM={key:1,class:"mb-2 flex flex-wrap gap-2"},TM={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"},MM=["src","alt"],AM={key:1,class:"w-full h-full flex items-center justify-center"},LM={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"},RM=["title"],EM=["onClick"],PM=["title","aria-label"],NM=["src"],OM=["disabled","placeholder"],DM=["disabled"],BM={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"},FM={key:1,class:"w-4 h-4"},jM=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=(C=s.value)=>{if(!C){p.value=!1;return}const w=C.style.minHeight;C.style.minHeight="0px",C.style.height="auto";const D=C.scrollHeight,F=Math.min(D,160);C.style.height=`${F}px`,C.style.minHeight=w,p.value=D>52||i.value.includes(`
|
|
50
|
+
`)},T=C=>{b(C.target instanceof HTMLTextAreaElement?C.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 w=i.value,D=d.value==="A"?"assistant":"user";i.value="",p.value=!1,await Qe(),b(),f.value=!0;try{await r.sendMessage({role:D,content:w}),a("sent")}catch{m.value="Message could not be sent. Please try again."}finally{f.value=!1,await Qe(),s.value?.focus()}},L=C=>{C.key==="Enter"&&!C.shiftKey&&(C.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()}}),(C,w)=>(l(),c("div",IM,[m.value?(l(),c("div",SM,_(h(ze)(m.value)),1)):M("",!0),e.attachments.length>0?(l(),c("div",CM,[(l(!0),c(te,null,Ie(e.attachments,D=>(l(),c("div",{key:D.id,class:"relative group"},[D.isImage?(l(),c("div",TM,[D.previewUrl?(l(),c("img",{key:0,src:D.previewUrl,alt:D.name,class:"w-full h-full object-cover"},null,8,MM)):(l(),c("div",AM,[...w[2]||(w[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",LM,[u("span",{class:"text-xs text-neutral-600 dark:text-neutral-300 max-w-[80px] truncate",title:D.name},_(D.name),9,RM)])),u("button",{onClick:Je(F=>e.removeAttachment(D.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"},[q(h(cn),{size:10,"stroke-width":2.5})],8,EM)]))),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.`},[q(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,NM)],10,PM),u("div",{class:J(p.value?"col-start-2 row-start-2 self-center":"")},[q($M,{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":w[0]||(w[0]=D=>i.value=D),onKeydown:L,onPaste:w[1]||(w[1]=D=>o.value?.handlePaste(D)),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:T},null,42,OM),[[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"},[...w[4]||(w[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",FM,[q(et)])):(l(),c("svg",BM,[...w[3]||(w[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,DM))],2)]))}}),qM=ot(jM,[["__scopeId","data-v-9b1b181d"]]);function zM(e){return typeof document>"u"||typeof getComputedStyle!="function"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()}const VM={class:"flex-1 min-h-0 flex flex-col overflow-hidden relative"},HM={key:0,class:"text-neutral-500 dark:text-neutral-400 text-center py-8"},UM={key:1,class:"flex justify-center py-8"},KM={key:2,class:"text-red-600 dark:text-red-400 text-center py-8"},WM={key:0,class:"text-neutral-500 dark:text-neutral-400 text-center py-8"},GM={key:0,class:"p-3 bg-white dark:bg-neutral-900 border-t border-neutral-300 dark:border-neutral-700"},JM={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"},XM={class:"flex items-center justify-end gap-2"},YM=["disabled"],ZM=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=T.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 F(Te,Z);for(const Te of s.value)await D(Te);fe.length>0&&a("logsDeleted",fe)}catch{ae.value="Message changes could not be applied. Please try again."}finally{f()}},{messages:T,threadInfo:y,isFetching:A,error:L,wsConnected:k,wsError:C,isExecuting:w,deleteMessageById:D,updateMessageContent:F,stopThread:U,sendMessage:N,attachments:E,addAttachment:V,removeAttachment:z}=CC(x(()=>r.threadId)),{thread:Y}=Do(x(()=>r.threadId)),{theme:I}=Ah();ve(()=>T.value.length,fe=>a("messageCountChanged",fe),{immediate:!0});const B=x(()=>{const fe=[];for(const Te of T.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 E.value)Te.path&&fe.push(Te.path);return fe.sort().join(`
|
|
51
|
+
`)});ve(B,(fe,Te)=>{fe&&fe!==Te&&a("filesChanged")});const W=x(()=>!1),P=fe=>{V(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(()=>T.value.length),focusComposer:()=>ne.value?.focusInput()});const ae=R(null),xe=async()=>{await Qe(),X.value&&(X.value.scrollTop=X.value.scrollHeight)};ve(()=>T.value.length,async()=>{await xe()}),ve(()=>r.threadId,async fe=>{fe&&await xe()}),ve(()=>T.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 Rh(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?js(Z):null)}),se=(fe,Te)=>zM(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??js(`${ke()}:side-b:${Re("B")}`):(I.value,Lh({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&&U&&await U()};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(C)},void 0,!0),u("div",VM,[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(kM,{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",UM,[q(et)])):h(L)?(l(),c("div",KM," Error loading messages: "+_(h(ze)(h(L))),1)):(l(),c(te,{key:3},[e.threadId&&h(T).length===0?(l(),c("div",WM," No messages yet ")):(l(),K(JT,{key:1,ref_key:"agentMessagesRef",ref:re,messages:h(T),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",HM," Select a thread to view messages "))],64))],2),e.threadId&&o.value?(l(),c("div",GM,[ae.value?(l(),c("div",JM,_(h(ze)(ae.value)),1)):M("",!0),u("div",XM,[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}])},_(v.value),11,YM)])])):e.threadId?(l(),K(qM,{key:1,ref_key:"messageComposerRef",ref:ne,attachments:h(E),"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(w),"is-processing-files":W.value,"send-message":pe,"stop-thread":Fe,"add-files":P,"remove-attachment":h(z),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))}}),nd=ot(ZM,[["__scopeId","data-v-8e50acab"]]);function rd(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 QM(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(!rd(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"&&rd(e.data)?{type:t,log_id:n,data:nA(e.data)}:null}const eA=["app_level","app_message","app_data","app_status","app_request","app_response","app_error","app_trigger"],tA=["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 nA(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=QM(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 eA)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 tA)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 rA(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 aA(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??rA(t.log_id,t.type==="log_data"?t.data:{}),i=aA(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 P=typeof e=="string"?e:e?.value;if(!P)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/${P}/logs?${X.toString()}`)}),{data:d,error:p,isFetching:f,isFinished:m,execute:g,abort:v}=uo(i,{immediate:!1}).get().json();ve([i,()=>o],([P,X])=>{P&&X&&g()},{immediate:!0});const $=x(()=>Eh(p.value)?null:p.value),b=x(()=>d.value?.logs||[]),T=R(null),y=x(()=>T.value?.total??d.value?.total??0),A=x(()=>(typeof r=="number"?r:r.value)===0?T.value?.hasMore??d.value?.hasMore??!1:d.value?.hasMore??!1),L=R(!1),k=R(null),C=R([]),w=new Map,D=x(()=>{const P=typeof e=="string"?e:e?.value,X=typeof n=="number"?n:n.value;return P?He(`/api/threads/${P}/logs?limit=${X}&offset=0&order=desc`):""}),{data:F,error:U,execute:N,abort:E}=uo(D,{immediate:!1}).get().json();let V=0;const z=async()=>{const P=++V,X=new Map(C.value.map(ne=>[ne.id,ne]));if(await N(),P!==V)return;if(U.value){k.value=ze(U.value);return}T.value=F.value,k.value=null;const re=new Map((F.value?.logs??[]).map(ne=>[ne.id,ne]));for(const ne of C.value)(!re.has(ne.id)||X.get(ne.id)!==ne)&&re.set(ne.id,ne);C.value=[...re.values()]},Y=new fc({url:P=>{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 pc(`${re}//${window.location.host}${He(`/api/threads/${X}/logs`)}`,P)}},{onStatusChange:P=>{L.value=P==="connected"},onReconnected:()=>{k.value=null,z()},onError:P=>{k.value=P.message},onFrame:P=>{try{const X=Cp(JSON.parse(P.data));if(!X)return;const re=Tp({realtimeLogs:C.value,httpLogs:b.value,pendingQueuedTools:w},X);C.value=re.realtimeLogs,w.clear(),re.pendingQueuedTools.forEach((ne,de)=>w.set(de,ne))}catch{k.value="Failed to parse log update"}}},{reconnectAuthGate:$l,canReconnect:()=>!Il(),onAuthorized:_l}),I=()=>{V++,E(),F.value=null,T.value=null,Y.disconnect(),C.value=[],w.clear()},B=()=>{!(typeof e=="string"?e:e?.value)||!s||(I(),Y.connect())};return Hr(I),{logs:x(()=>{if(!s)return b.value;const P=new Map;b.value.forEach(ne=>P.set(ne.id,ne)),C.value.forEach(ne=>P.set(ne.id,ne));const X=typeof a=="string"?a:a.value;return Array.from(P.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||T.value!==null),refetch:g,abort:v,wsConnected:L,wsError:k,connectWebSocket:B,disconnectWebSocket:I}}function oA(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 sA(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:oA(d.request_body)}}),error:a,isFetching:o,refetch:s}}function lA(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 iA={class:"min-h-0 flex-1 overflow-hidden"},uA=["aria-valuenow","title"],dA={class:"relative h-full overflow-hidden"},cA=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,T)=>Math.min(T,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 T=b.bottom-$.clientY,y=n.minDetailHeight/b.height*100,A=100-n.minMainHeight/b.height*100;r("update:heightPercent",s(T/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",iA,[gt($.$slots,"main",{},void 0,!0)]),q(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,uA),u("div",dA,[gt($.$slots,"detail",{},void 0,!0)])],4)):M("",!0)]),_:3})],512))}}),Yo=ot(cA,[["__scopeId","data-v-163a279f"]]),fA={key:0,class:"flex items-start gap-2"},pA={class:"min-w-0 flex-1"},hA={class:"flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-0.5"},mA={class:"text-sm font-semibold text-red-700 dark:text-red-300"},gA={key:0,class:"font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},vA={key:1,class:"font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},yA={key:2,class:"text-[11px] text-neutral-500 dark:text-neutral-400"},bA={key:0,class:"mt-1 whitespace-pre-wrap break-words text-sm leading-relaxed text-neutral-800 dark:text-neutral-200"},xA=["href"],kA={key:2,class:"mt-1"},wA={class:"font-medium text-red-700 dark:text-red-300"},_A={key:0,class:"ml-1 font-mono text-[11px]"},$A={key:0,class:"whitespace-pre-wrap break-words py-1 text-sm leading-relaxed text-neutral-800 dark:text-neutral-200"},IA={key:1,class:"pl-3"},ws="cursor-pointer select-none py-1 text-xs text-neutral-500 hover:text-neutral-800 dark:text-neutral-400 dark:hover:text-neutral-200",ad="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",SA=we({__name:"LogErrorSummary",props:{summaries:{},route:{},billingUrl:{}},setup(e){return(t,n)=>e.summaries.length>0?(l(),c("div",fA,[q(h(bc),{size:15,class:"mt-0.5 shrink-0 text-red-600 dark:text-red-400"}),u("div",pA,[u("div",hA,[u("span",mA,_(e.summaries[0].type||"error"),1),e.summaries[0].originLabel?(l(),c("span",gA,_(e.summaries[0].originLabel),1)):M("",!0),e.route?(l(),c("span",vA,_(e.route),1)):M("",!0),e.summaries.length>1?(l(),c("span",yA,_(e.summaries.length)+" errors ",1)):M("",!0)]),e.summaries[0].human?(l(),c("p",bA,_(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)),q(h(fm),{size:12,"aria-hidden":"true"})],8,xA)):M("",!0),e.summaries[0].hasMoreDetails?(l(),c("details",kA,[u("summary",{class:J(ws)},"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(ad)},_(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(ws)},[u("span",wA,_(r.type),1),r.originLabel?(l(),c("span",_A,"· "+_(r.originLabel),1)):M("",!0)]),r.human?(l(),c("p",$A,_(r.human),1)):M("",!0),r.hasMoreDetails?(l(),c("details",IA,[u("summary",{class:J(ws)},"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(ad)},_(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)}}),CA={openai:"OpenAI",openrouter:"OpenRouter",xai:"xAI"};function ni(e){const t=e.trim(),n=CA[t.toLowerCase()];return n||t.replace(/[_-]+/g," ").replace(/\b\w/g,r=>r.toUpperCase())}function TA(e){return typeof e!="string"?null:/^(?:platform-router|runtime|(?:provider|tool|hook):[A-Za-z0-9._/@-]+)$/.test(e)?e:null}function MA(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=ni(e.slice(t+1));return n==="provider"?r:n==="tool"?`Tool · ${r}`:`Hook · ${r}`}function AA(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=ni(t.slice(n+1));return r==="provider"?`${a} error: ${e}`:r==="tool"?`Tool error (${a}): ${e}`:`Hook error (${a}): ${e}`}function LA(e){const t=e.actual_provider||e.provider;if(!t)return e.standard_agents_router_used?"Platform router":null;const n=ni(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:TA(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"),"\\")},RA=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},od=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)},EA=e=>{let t=od(e).trim(),n=!1;for(let s=0;s<5&&!(!t.startsWith("{")&&!t.startsWith("["));s++){const i=RA(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=od(r).trim(),o=a.split(`
|
|
57
|
+
`).find(s=>s.trim().length>0);return o&&o.length<600?o.trim():a},PA=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 NA(e){return e.map(t=>{const n=EA(t.message),r=AA(n,t.origin),a=PA(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 OA(e,t){const n=t[0]?.origin;return n&&n!=="platform-router"&&!n.startsWith("provider:")?null:LA(e)}function DA(e){for(const t of e){const n=mp(t.message);if(n)return n}return null}const ta=new WeakMap,BA=e=>1-Math.pow(1-e,3),FA=()=>typeof window<"u"&&window.matchMedia?.("(prefers-reduced-motion: reduce)").matches,_s=(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:_s(t.top,0,r),s=t.left===void 0?e.scrollLeft:_s(t.left,0,a),i=ta.get(e);if(i!==void 0&&(window.cancelAnimationFrame(i),ta.delete(e)),n<=0||FA()){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=_s(($-g)/n,0,1),T=BA(b);e.scrollTo({top:d+f*T,left:p+m*T,behavior:"auto"}),b<1?ta.set(e,window.requestAnimationFrame(v)):ta.delete(e)};ta.set(e,window.requestAnimationFrame(v))},jA={class:"json-viewer relative bg-white dark:bg-neutral-900"},qA={key:0,class:"absolute top-[5px] right-[5px] z-10"},zA=["innerHTML"],VA=["src","alt"],HA="__agentbuilder_json_viewer_interactive_string__",UA=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===HA&&typeof k.value=="string",i=k=>[".jpg",".jpeg",".png",".gif",".webp",".svg",".bmp"].some(w=>k.toLowerCase().endsWith(w)),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 C=f(k.label),w=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="${w}">${C}</button>`},g=k=>{if(!k)return"";const C=(n.actions||[]).find(w=>w.token===k);return C?m(C):""},v=k=>{let C="",w=f(k);for(const D of n.actions||[]){const F=f(D.token),U=m(D);D.placement==="before"?(w.includes(F)&&(C+=U),w=w.split(F).join("")):w=w.split(F).join(U)}return{before:C,content:w}},$=(k,C,w={})=>{const{before:D,content:F}=v(k),U=g(w.beforeActionToken),N=w.afterLabel?` <span class="json-fold-marker">${f(w.afterLabel)}</span>`:"";return n.threadId&&i(k)&&k.startsWith("/attachments/")?`${U}${D}${C('"')}<span class="json-image-path" data-path="${f(k)}">${F}</span>${C('"')}${N}`:`${U}${D}${C('"')}<span class="json-string">${F}</span>${C('"')}${N}`},b=(k,C=0)=>{const w=" ".repeat(C),D=F=>`<span class="json-punct">${F}</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,D);if(s(k))return $(k.value,D,{beforeActionToken:k.beforeActionToken,afterLabel:k.afterLabel});if(Array.isArray(k)){if(k.length===0)return`${D("[")}${D("]")}`;const F=k.map((U,N)=>{const E=N<k.length-1?D(","):"";return`${w} ${b(U,C+1)}${E}`});return`${D("[")}
|
|
58
|
+
${F.join(`
|
|
59
|
+
`)}
|
|
60
|
+
${w}${D("]")}`}if(typeof k=="object"){const F=Object.entries(k);if(F.length===0)return`${D("{")}${D("}")}`;const U=F.map(([N,E],V)=>{const z=V<F.length-1?D(","):"",Y=`${D('"')}<span class="json-key">${f(N)}</span>${D('"')}`;return`${w} ${Y}${D(":")} ${b(E,C+1)}${z}`});return`${D("{")}
|
|
61
|
+
${U.join(`
|
|
62
|
+
`)}
|
|
63
|
+
${w}${D("}")}`}return String(k)},T=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 C=k.target;if(C.classList.contains("json-image-path")){const w=C.dataset.path;if(w&&n.threadId){a.value=w;const D=C.getBoundingClientRect();o.value={x:D.left,y:D.top}}}},A=k=>{k.target.classList.contains("json-image-path")&&(a.value=null,o.value=null)},L=k=>{const C=k.target;if(!C.classList.contains("json-inline-action"))return;const w=C.dataset.action;if(!w)return;const D=C.dataset.index,F=D?Number.parseInt(D,10):void 0;r("action",{action:w,index:Number.isFinite(F)?F:void 0})};return(k,C)=>(l(),c("div",jA,[e.showCopyButton?(l(),c("div",qA,[q(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:T.value},null,40,zA),(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:C[0]||(C[0]=w=>w.target.style.display="none")},null,40,VA)],4)):M("",!0)]))]))}}),ca=ot(UA,[["__scopeId","data-v-a28e6bda"]]),KA=["data-section"],WA={class:"log-section-title group/title sticky z-[5] flex h-9 items-center gap-2 bg-white dark:bg-neutral-900"},GA=["aria-expanded","aria-describedby"],JA={key:0,class:"log-section-live h-1.5 w-1.5 shrink-0 rounded-full bg-amber-500","aria-label":"Streaming"},XA={class:"truncate"},YA={key:1,class:"shrink-0 tabular-nums text-neutral-400 dark:text-neutral-500"},ZA={key:2,class:"truncate font-normal text-neutral-400 dark:text-neutral-500"},QA=["data-badge"],eL={class:"group/actions flex shrink-0 items-center gap-0.5"},tL={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"},sd="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",nL=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-${jo()}`,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)})},T=()=>{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",WA,[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"))},[q(h(Pt),{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",JA)):M("",!0),u("span",XA,_(e.title),1),e.count!==null&&e.count!==void 0?(l(),c("span",YA,_(e.count),1)):M("",!0),e.subtitle?(l(),c("span",ZA,_(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},[q(Jn,{content:L.hint,position:"bottom",wide:""},{default:be(()=>[q(Zn,{variant:a[L.tone],class:"!font-normal"},{default:be(()=>[Ce(_(L.label),1)]),_:2},1032,["variant"])]),_:2},1032,["content"])],8,QA))),128))],8,GA),s.value?(l(),c("span",{key:0,id:o,class:"sr-only"},_(s.value),1)):M("",!0),u("div",eL,[p.value&&e.expanded?(l(),c("div",tL,[u("button",{type:"button",class:J(sd),onClick:b},"Top"),u("button",{type:"button",class:J(sd),onClick:T},"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,KA))}}),Ot=ot(nL,[["__scopeId","data-v-1482c480"]]);function rL(e){return[{value:"standard",label:"Standard Agents",icon:e?Mi.mark.dark:Mi.mark.light},...Fc.map(t=>({value:t,label:jl(t),icon:He(`/api/providers/${encodeURIComponent(t)}/icon`)}))]}const aL={class:"@container"},oL={class:"grid grid-cols-2 gap-x-6 gap-y-3 @md:grid-cols-4"},sL={class:"flex h-4 items-center gap-1.5 text-xs text-neutral-500 dark:text-neutral-400"},lL={class:"mt-1 min-w-0"},iL=["tabindex"],uL={class:"text-[15px] font-semibold leading-5 tabular-nums text-neutral-900 dark:text-neutral-100"},dL={class:"whitespace-nowrap"},Ep=we({__name:"LogDetailFigures",props:{figures:{}},setup(e){return(t,n)=>(l(),c("div",aL,[u("dl",oL,[(l(!0),c(te,null,Ie(e.figures,r=>(l(),c("div",{key:r.id,class:"min-w-0"},[u("dt",sL,[gt(t.$slots,"label",{figure:r},()=>[Ce(_(r.label),1)])]),u("dd",lL,[q(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",uL,[r.pending&&!r.value?(l(),K(et,{key:0,size:"xs"})):(l(),c(te,{key:1},[Ce(_(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",dL,_(a),1)],64))),128))],2)):M("",!0)],8,iL)]),_:2},1032,["content","disabled"])])]))),128))])]))}}),Ra=we({__name:"TimeAgo",props:{timestamp:{}},setup(e){const t=e,n=Gm(()=>t.timestamp);return(r,a)=>(l(),c("span",null,_(h(n)),1))}}),cL=["aria-expanded","onClick"],fL={class:"truncate font-mono font-medium text-neutral-900 dark:text-neutral-100"},pL={class:"shrink-0 font-mono text-[11px] text-neutral-400 dark:text-neutral-500"},hL={key:0,class:"shrink-0 text-[11px] text-neutral-500 dark:text-neutral-400",title:"Programmatically called with state.queueTool()"},mL={class:"@container pt-1 pb-3 pl-10"},gL={key:0,class:"grid grid-cols-1 gap-x-6 gap-y-3 @[640px]:grid-cols-2"},vL={class:"min-w-0"},yL={key:0,class:"ml-1 tabular-nums"},bL={class:"min-w-0"},xL={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"},kL={key:1,class:"p-2 font-mono text-[11px] text-neutral-400 dark:text-neutral-500"},wL={key:1,class:"min-w-0"},$s="mb-1 text-[11px] text-neutral-500 dark:text-neutral-400",_L=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)},[q(h(Pt),{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",fL,_(d.name),1),u("span",pL,_(r(d.id)),1),i[1]||(i[1]=u("span",{class:"flex-1"},null,-1)),d.isQueued?(l(),c("span",hL,"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)])},_(h(qg)(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"])},_(e.toolResults.has(d.id)?"Returned":"No result"),3))],8,cL),$t(u("div",mL,[d.isProvider?(l(),c("div",wL,[u("div",{class:J($s)},"Provider payload"),q(Cn,{code:h(zg)(d),language:"json"},null,8,["code"])])):(l(),c("div",gL,[u("div",vL,[u("div",{class:J($s)},[i[3]||(i[3]=Ce(" Arguments ",-1)),d.isQueued&&d.queuedAt?(l(),c("span",yL,[i[2]||(i[2]=Ce(" · queued ",-1)),q(Ra,{timestamp:d.queuedAt},null,8,["timestamp"])])):M("",!0)]),q(Cn,{code:h(Bc)(d.function?.arguments||"{}"),language:"json"},null,8,["code"])]),u("div",bL,[u("div",{class:J($s)},"Result"),e.toolResults.has(d.id)?(l(),c("pre",xL,_(a(e.toolResults.get(d.id))),1)):(l(),c("div",kL,"No result captured"))])]))],512),[[zt,t.value.has(d.id)]])]))),128))]))}}),$L={class:"space-y-4 pl-5"},IL={class:"mb-1 font-mono text-[11px] text-neutral-500 dark:text-neutral-400"},SL={key:0,class:"mt-2"},CL={class:"break-all font-mono text-[11px] text-neutral-700 dark:text-neutral-300"},TL={key:2,class:"break-all font-mono text-[11px] text-neutral-700 dark:text-neutral-300"},ML={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"},ld="whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-neutral-800 dark:text-neutral-200",AL=we({__name:"LogReasoningDetails",props:{details:{}},setup(e){const t=r=>typeof r=="string"&&r?r:null,n=r=>{const a=[Lg(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",$L,[(l(!0),c(te,null,Ie(e.details,(o,s)=>(l(),c("div",{key:s,class:"min-w-0"},[u("div",IL,_(n(o).join(" · ")),1),o.type==="reasoning.summary"&&t(o.summary)?(l(),c("div",{key:0,class:J(ld)},_(o.summary),1)):o.type==="reasoning.text"&&t(o.text)?(l(),c(te,{key:1},[u("div",{class:J(ld)},_(o.text),1),t(o.signature)?(l(),c("div",SL,[a[0]||(a[0]=u("div",{class:"text-[11px] text-neutral-500 dark:text-neutral-400"},"Signature",-1)),u("div",CL,_(o.signature),1)])):M("",!0)],64)):o.type==="reasoning.encrypted"&&t(o.data)?(l(),c("div",TL,_(o.data),1)):(l(),c("pre",ML,_(JSON.stringify(o,null,2)),1))]))),128))]))}}),LL={class:"pl-3"},RL=["onClick"],EL={class:"flex min-w-0 items-baseline gap-2"},PL={class:"min-w-0 truncate font-mono text-xs font-medium text-neutral-800 dark:text-neutral-100"},NL={class:"truncate font-mono text-[11px] text-neutral-400 dark:text-neutral-500"},OL={key:0,class:"mt-0.5 block truncate text-[11px] text-neutral-500 dark:text-neutral-400"},DL=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",LL,[(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",EL,[u("span",PL,_(s.name||"scheduled_effect"),1),u("span",NL,_(s.id),1)]),r(s).length>0?(l(),c("span",OL,_(r(s).join(" · ")),1)):M("",!0)],8,RL))),128))]))}}),BL=["width","height","aria-label"],FL=["stroke-dasharray"],Is=2.5,jL=we({__name:"ContextWindowDonut",props:{pct:{},size:{default:20}},setup(e){const t=e,n=(20-Is)/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":Is,class:"stroke-neutral-200 dark:stroke-neutral-700"}),u("circle",{cx:"10",cy:"10",r:n,fill:"none","stroke-width":Is,"stroke-linecap":"round","stroke-dasharray":o.value,class:J(s.value)},null,10,FL)],8,BL))}}),qL=new Set(["success","error","skipped"]),zL=new Set(["debug","info","warn","error"]);function ri(e){return e.kind==="app"}function Pp(e){try{return{ok:!0,value:JSON.parse(e)}}catch{return{ok:!1}}}function id(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 VL(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 HL(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 Zo(e){const t=e.app_level&&zL.has(e.app_level)?e.app_level:"info",n=e.app_status&&qL.has(e.app_status)?e.app_status:null,r=VL(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:HL(e.app_duration_ms),costLabel:Np(e.app_cost),request:id(e.app_request),response:id(e.app_response),error:e.app_error||null,data:e.app_data||null}}const UL={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"},KL={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=WL(e);return{kind:t,estimated:t==="provisional"||t==="estimated",note:t==="direct"?null:KL[t]}}function WL(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 ud(e){const t=Np(e.cost_total);return t===null?null:Lo(e).estimated?`~${t}`:t}const GL=/interrupted by user|stopped by user/i;function JL(e,t){return e.error_type==="user_interrupted"||!e.error_type&&GL.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 XL(e){return e==="success"?"success":e==="error"?"error":e==="warn"?"warn":"neutral"}const Qt=e=>e.toLocaleString("en-US"),On=e=>`$${e.toFixed(6)}`,dd=e=>`${Qt(e)} ms`,kn=e=>e!=null;function Op(e,t){return kn(e)&&!(e===0&&t)}function YL(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(`${dd(e.latency_ms)} total`),{id:"latency",label:"Latency",value:kn(e.time_to_first_token_ms)?dd(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 ZL(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 QL={charged:"charged by router",provisional:"estimated · router charge pending",estimated:"estimated · no router charge",unknown:"unknown · router charge pending"};function eR(e,t){const n=e.cost_total,r=Lo(e),a=QL[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 tR(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 nR(e,t){const n=!!e.error||t.hasErrors;return[YL(e),ZL(e,n),eR(e,n),tR(e,t.toolCount)]}async function rR(){const e=Kn.models;return await e.ensureLoaded(),e.error.value?null:e.items.value}function aR(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=aR(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 oR(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 ai=[{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 sR(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"?[]:ai.some(s=>s.stage===a)?[{hook:r,stage:a,outcome:typeof o=="string"?o:"ok"}]:[]}):[]}const lR={ok:"ran",error:"failed",blocked:"blocked the run"};function cd(e){if(e.length===0)return null;const t=ai.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} ${lR[n.outcome]??"ran"} at ${n.stage} before this request.`),...t.map(n=>n.effect)].join(" ")}}function iR(e){const t=hc(e.requestBody);if(!t)return null;const n=mc(t,e.promptName);return{key:"past-tools",label:"tool results left out",tone:n.warning?"warning":"neutral",hint:n.body.join(" ")}}function uR(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 dR(e){const t=sR(e.hookRuns),n=a=>t.filter(o=>ai.find(s=>s.stage===o.stage)?.section===a),r=a=>a.filter(o=>o!==null);return{messages:r([iR(e),uR(e),cd(n("messages"))]),system_prompt:r([cd(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,cR=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 fd(e){return e==="human"||e==="handler"?e:"prompt"}function fR(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 pd=e=>Fp(e).flatMap(t=>{const n=fR(t);return n?[n]:[]});function pR(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:fd(e.side_a_backing),side_a_handler:tt(e.side_a_handler),side_a_subagents:pd(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:fd(e.side_b_backing),side_b_handler:tt(e.side_b_handler),side_b_subagents:pd(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 hR(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 mR=["auto","none","required","function"],gR=e=>mR.some(t=>t===e);function vR(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:gR(e.tool_choice)?e.tool_choice:"auto",history_limit:fa(e.history_limit),tools:Fp(e.tools).flatMap(r=>{const a=hR(r);return a?[a]:[]}),variables:[],hooks:cR(e.hooks)}}const yR=["tool","prompt","handoff"],bR=e=>yR.some(t=>t===e);function xR(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=pR(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=vR(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:"",...bR(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 hd(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 kR(e){const t=xR(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 wR(e,t){const n=Et(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=hd(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=hd(g,d))}catch{r.delete(f)}},{immediate:!0}),n}const _R={class:"space-y-4 px-4 pt-4 pb-4"},$R={key:0,class:"truncate font-mono text-neutral-700 dark:text-neutral-200"},IR={class:"truncate font-mono text-[11px] text-neutral-400 dark:text-neutral-500"},SR={class:"flex flex-wrap items-center gap-2 py-3"},CR={key:1,class:"text-xs text-red-600 dark:text-red-400"},TR={class:"ui-divide divide-y"},MR=["aria-expanded","onClick"],AR={class:"truncate font-mono text-neutral-900 dark:text-neutral-100"},LR={class:"pt-1 pb-3 pl-10"},RR={key:0,class:"mb-2 text-xs text-neutral-600 dark:text-neutral-400"},ER={class:"ui-divide divide-y pt-1"},PR={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"},NR={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"},OR={class:"flex flex-wrap gap-2 pl-5"},DR=["src","alt"],BR={key:1,class:"text-xs text-neutral-500 dark:text-neutral-400"},FR={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,jR=36,qR=8,md="__agentbuilder_system_prompt_view__",zR=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=Vi(ge);return $e?$($e)||$e:void 0},T=x(()=>Br(n.log.tools_schema)),y=x(()=>Rg(n.log.response_body)),A=x(()=>Og(n.log.tool_results)),L=x(()=>Eg(n.log.response_body).map(at)),k=x(()=>Vg(n.log.reasoning_content)),C=x(()=>Ng(n.log.response_body)),w=x(()=>!n.log.is_complete),D=x(()=>n.log.is_complete?Pg(n.log.response_body)||n.log.content||"":n.log.content??""),F=x(()=>Fg(n.log.provider_tools)),U=x(()=>Br(n.log.queued_tools)),N=x(()=>jg({toolCalls:y.value,queuedTools:U.value,providerToolCalls:F.value})),E=ge=>{a.value.has(ge)?a.value.delete(ge):a.value.add(ge)},V=ge=>{v.value.has(ge)?v.value.delete(ge):v.value.add(ge)},z=ge=>!v.value.has(ge),Y=x(()=>Ap(n.log)),I=x(()=>NA(Y.value)),B=x(()=>OA(n.log,I.value)),W=x(()=>DA(I.value)),P=R("standard"),X=R(null),re=R(!1),ne=R(null);let de=0;const ue=x(()=>rL(Ph.value)),ae=()=>{P.value=Ui(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=ze(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,P],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(P.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(()=>Dg(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=`[${md}]`),$e})),Te=x(()=>{const ge=[];return Fe.value&&ge.push({token:md,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-jR-qR})},oe=x(()=>P.value==="standard"||!X.value?n.log.request_body:JSON.stringify(X.value.body,null,2)),Oe=x(()=>P.value==="standard"||!X.value?null:`${P.value} format`),j=x(()=>Hg(n.log.request_body)),ce=wR(xt(n,"threadId"),xt(n,"log")),he=x(()=>dR({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(()=>nR(n.log,{hasErrors:Y.value.length>0,toolCount:T.value.length})),We=async()=>await rR()??s.value;an(()=>{We().catch(()=>{})});const Ue=x(()=>{const ge=s.value;return ge?oR(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",_R,[q(Ep,{figures:Pe.value},{label:be(({figure:_e})=>[_e.id==="tokens"&&Ue.value?(l(),K(h(Jn),{key:0,content:Se.value},{default:be(()=>[q(jL,{pct:Ue.value.pct},null,8,["pct"])]),_:1},8,["content"])):M("",!0),Ce(" "+_(_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))},[q(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",$R,_(ie.value.name),1)):M("",!0),u("span",IR,_(ie.value.id),1)])):M("",!0),q(SA,{summaries:I.value,route:B.value,"billing-url":W.value},null,8,["summaries","route","billing-url"]),se.value.length>0?(l(),K(Ot,{key:1,title:"Scheduled effects created",count:se.value.length,"section-id":"scheduled_effects",expanded:z("scheduled_effects"),"scroll-container":i.value,"sticky-offset":Rt,onToggle:$e[2]||($e[2]=_e=>V("scheduled_effects"))},{default:be(()=>[q(DL,{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",SR,[$e[16]||($e[16]=u("span",{class:"text-xs text-neutral-500 dark:text-neutral-400"},"View as",-1)),q(Nh,{class:"w-52",size:"sm",clearable:!1,"model-value":P.value,options:ue.value,"search-placeholder":"Find a format","onUpdate:modelValue":$e[3]||($e[3]=_e=>P.value=h(Ui)(_e))},null,8,["model-value","options"]),re.value?(l(),K(et,{key:0,size:"xs"})):M("",!0),ne.value?(l(),c("span",CR,_(h(ze)(ne.value)),1)):M("",!0)]),j.value?(l(),K(Nl,{key:0,class:"mb-3",title:"Vision input filtered for this request",lines:["This model does not support image input.",`Removed ${j.value.removedUserImageParts} user image part(s) and ${j.value.removedToolImageAttachments} tool image attachment(s) before sending the request.`,"Stored thread messages remain unchanged."]},null,8,["lines"])):M("",!0),u("div",TR,[T.value.length>0?(l(),K(Ot,{key:0,ref_key:"toolsSectionRef",ref:p,title:"Available tools",count:T.value.length,"section-id":"tools",expanded:z("tools"),"scroll-container":i.value,"sticky-offset":Rt,onToggle:$e[4]||($e[4]=_e=>V("tools"))},{default:be(()=>[(l(!0),c(te,null,Ie(T.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=>E(De)},[q(h(Pt),{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",AR,_(h(Ag)(_e)),1)],8,MR),$t(u("div",LR,[h(zi)(_e)?(l(),c("p",RR,_(h(zi)(_e)),1)):M("",!0),q(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(Ot,{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:z("messages"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":Re.value,onToggle:$e[5]||($e[5]=_e=>V("messages"))},{default:be(()=>[q(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(Ot,{key:2,ref_key:"systemPromptSectionRef",ref:m,title:"System prompt",badges:he.value.system_prompt,"section-id":"system_prompt",expanded:z("system_prompt"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":e.log.system_prompt,onToggle:$e[6]||($e[6]=_e=>V("system_prompt"))},{default:be(()=>[q(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(Ot,{key:3,ref_key:"requestBodySectionRef",ref:g,title:"Full request body",subtitle:Oe.value,"section-id":"request_body",expanded:z("request_body"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":oe.value,onToggle:$e[7]||($e[7]=_e=>V("request_body"))},{default:be(()=>[q(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",ER,[w.value&&e.log.reasoning_content?(l(),K(Ot,{key:0,title:"Thinking","section-id":"thinking",live:"",expanded:z("thinking"),"scroll-container":i.value,"sticky-offset":Rt,onToggle:$e[8]||($e[8]=_e=>V("thinking"))},{default:be(()=>[u("pre",PR,_(k.value),1)]),_:1},8,["expanded","scroll-container"])):M("",!0),D.value?(l(),K(Ot,{key:1,title:"Response text","section-id":"assistant_text",live:w.value,expanded:z("assistant_text"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":D.value,onToggle:$e[9]||($e[9]=_e=>V("assistant_text"))},{default:be(()=>[u("pre",NR,_(D.value),1)]),_:1},8,["live","expanded","scroll-container","copy-content"])):M("",!0),N.value.length>0?(l(),K(Ot,{key:2,title:"Tools called",count:N.value.length,"section-id":"tools_called",expanded:z("tools_called"),"scroll-container":i.value,"sticky-offset":Rt,onToggle:$e[10]||($e[10]=_e=>V("tools_called"))},{default:be(()=>[q(_L,{"tool-calls":N.value,"tool-results":A.value},null,8,["tool-calls","tool-results"])]),_:1},8,["count","expanded","scroll-container"])):M("",!0),C.value.length>0?(l(),K(Ot,{key:3,title:"Generated images",count:C.value.length,subtitle:"returned by the model","section-id":"generated_images",expanded:z("generated_images"),"scroll-container":i.value,"sticky-offset":Rt,onToggle:$e[11]||($e[11]=_e=>V("generated_images"))},{default:be(()=>[u("div",OR,[(l(!0),c(te,null,Ie(C.value,(_e,De)=>(l(),c(te,{key:De},[h(Vi)(_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,DR)):(l(),c("span",BR,"Image "+_(De+1)+" has no URL",1))],64))),128))])]),_:1},8,["count","expanded","scroll-container"])):M("",!0),e.log.reasoning_content&&!w.value?(l(),K(Ot,{key:4,title:"Reasoning",subtitle:"internal trace, not shown to users","section-id":"reasoning_content",expanded:z("reasoning_content"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":k.value||e.log.reasoning_content,onToggle:$e[12]||($e[12]=_e=>V("reasoning_content"))},{default:be(()=>[u("pre",FR,_(k.value),1)]),_:1},8,["expanded","scroll-container","copy-content"])):M("",!0),L.value.length>0?(l(),K(Ot,{key:5,title:"Reasoning details",count:L.value.length,subtitle:"structured trace from the provider","section-id":"reasoning_details",expanded:z("reasoning_details"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":JSON.stringify(L.value,null,2),onToggle:$e[13]||($e[13]=_e=>V("reasoning_details"))},{default:be(()=>[q(AL,{details:L.value},null,8,["details"])]),_:1},8,["count","expanded","scroll-container","copy-content"])):M("",!0),e.log.response_body?(l(),K(Ot,{key:6,title:"Full response body","section-id":"response_body",expanded:z("response_body"),"scroll-container":i.value,"sticky-offset":Rt,"copy-content":e.log.response_body,onToggle:$e[14]||($e[14]=_e=>V("response_body"))},{default:be(()=>[q(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))}}),VR=ot(zR,[["__scopeId","data-v-d36eb756"]]),HR={class:"space-y-4 px-4 pt-4 pb-4"},UR={key:0,class:"whitespace-pre-wrap break-words text-sm text-neutral-800 dark:text-neutral-200"},KR={class:"ui-border space-y-3 border-t px-4 pt-3 pb-6"},WR={key:0,class:"flex items-start gap-2"},GR={class:"min-w-0 flex-1"},JR={class:"mt-1 whitespace-pre-wrap break-words text-sm leading-relaxed text-neutral-800 dark:text-neutral-200"},XR={key:1,class:"m-0 whitespace-pre-wrap break-words font-mono text-xs text-neutral-800 dark:text-neutral-200"},YR={key:2,class:"py-4 text-center text-xs text-neutral-500 dark:text-neutral-400"},ZR=we({__name:"AppLogDetails",props:{log:{},threadId:{},tab:{default:"response"}},setup(e){const t=e,n=x(()=>Zo(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",HR,[n.value.message?(l(),c("p",UR,_(n.value.message),1)):M("",!0),q(Ep,{figures:r.value},null,8,["figures"])]),u("div",KR,[e.tab==="response"&&n.value.error?(l(),c("div",WR,[q(h(bc),{size:15,class:"mt-0.5 shrink-0 text-red-600 dark:text-red-400"}),u("div",GR,[d[1]||(d[1]=u("div",{class:"text-sm font-semibold text-red-700 dark:text-red-300"},"Error",-1)),u("p",JR,_(n.value.error),1)]),q(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",XR,_(a.value.content),1))],64)):e.tab==="response"&&n.value.error?M("",!0):(l(),c("p",YR," No "+_(e.tab)+" recorded for this entry. ",1)),n.value.data?(l(),K(Ot,{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(()=>[q(ca,{json:n.value.data,"thread-id":e.threadId},null,8,["json","thread-id"])]),_:1},8,["expanded"])):M("",!0)])],512))}});function QR(e){return`'${e.replace(/'/g,"'\\''")}'`}function eE(e,t){return e.split(/\r?\n/).some(n=>n===t)}function tE(e){const t="AGENTBUILDER_JSON";let n=t,r=2;for(;eE(e,n);)n=`${t}_${r}`,r+=1;return n}function nE(e,t){const n=tE(t),r=`${e.trim()} <<'${n}'`,a=`node -e ${QR(["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 rE(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(nE(f.curl,g))}catch(p){a.value=`Failed to copy cURL: ${ze(p)}`}}return{copying:n,copied:r,error:a,copyCurl:i}}const aE="provider:";function oE(e){return e?.toLowerCase()==="openrouter"}function sE(e){if(e.actual_provider&&oE(e.provider))return{provider:"openrouter",model:`${aE}${e.actual_provider}`};const t=e.actual_provider||e.provider;return t?{provider:t}:null}function lE(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 iE(e){if(!e)return null;if(ri(e)){const t=Zo(e);return{kind:"app",title:t.name,mono:!0,status:{tone:XL(t.tone),label:t.badge},curl:!1}}return{kind:"llm",title:e.prompt_name||e.model_name||e.model,mono:!1,status:JL(e,Ap(e).length>0),curl:!!(e.request_body&&e.model)}}function jp(e){return e.length>10?`${e.slice(0,8)}…`:e}const uE={key:0,class:"inline-flex min-w-0 items-center gap-1.5"},dE=["src","alt"],cE={class:"truncate"},fE={key:1,class:"inline-flex min-w-0 items-center gap-1.5"},pE=["src","alt"],hE={class:"truncate font-mono text-[11px]"},mE={key:2,class:"truncate font-mono text-[11px]"},gE={key:2},vE=["title"],yE={key:4,class:"font-mono text-[11px]"},bE={class:"truncate font-mono text-[11px]"},gd="inline-flex min-w-0 items-center gap-1 rounded transition-colors hover:text-neutral-900 dark:hover:text-neutral-100",xE=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=hc(t.log.request_body);return i?mc(i,t.log.prompt_name):null}),o=x(()=>{const i=sE(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=lE(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",uE,[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,dE)):M("",!0),u("span",cE,_(e.log.actual_provider||e.log.provider),1)])):M("",!0),h(xr)(e.log)?(l(),c("span",fE,[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,pE)):M("",!0),r.value?(l(),K(p,{key:1,to:h(Rr).model(r.value.name),class:J(gd),title:`Open the ${r.value.name} model page`,onClick:d[0]||(d[0]=Je(()=>{},["stop"]))},{default:be(()=>[u("span",hE,_(h(xr)(e.log)),1)]),_:1},8,["to","title"])):(l(),c("span",mE,_(h(xr)(e.log)),1))])):M("",!0),q(Ra,{timestamp:e.log.created_at,class:"tabular-nums"},null,8,["timestamp"]),e.log.finish_reason?(l(),c("span",gE,"finish: "+_(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(" "+_(a.value.header),1)],10,vE)):M("",!0),e.log.id?(l(),c("span",yE,"log "+_(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",gd]),onClick:d[1]||(d[1]=Je(()=>{},["stop"]))},{default:be(()=>[d[2]||(d[2]=Ce(" Prompt ",-1)),u("span",bE,_(e.log.prompt_name),1),q(h(Yl),{class:"h-3 w-3 shrink-0"})]),_:1},8,["to","class"])):M("",!0)],64)}}}),kE=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(" "+_(e.label),1)],2))}}),wE=ot(kE,[["__scopeId","data-v-c24bfd8b"]]),_E={class:"shrink-0 bg-white px-2 pt-2 pb-2 dark:bg-neutral-900"},$E={class:"flex min-w-0 items-center gap-1"},IE=["disabled"],SE=["disabled"],CE={class:"ml-1 flex min-w-0 flex-1 items-center gap-2.5"},TE={class:"flex shrink-0 items-center gap-0.5"},ME=["disabled","title"],AE={key:1},LE={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"},RE={key:0,class:"flex min-w-0 items-center gap-1.5"},EE=["title"],PE={class:"font-mono text-[11px]"},NE={key:0,class:"text-red-600 dark:text-red-400"},Ss="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",OE=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(()=>iE(n.log)),o=x(()=>n.log&&a.value?.kind==="app"?Zo(n.log):null),s=rE(()=>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",_E,[u("div",$E,[u("button",{type:"button",class:J(Ss),disabled:!e.hasPrevious,"aria-label":"Previous log",title:"Previous log",onClick:p[0]||(p[0]=f=>r("previous"))},[q(h(xc),{size:15})],8,IE),u("button",{type:"button",class:J(Ss),disabled:!e.hasNext,"aria-label":"Next log",title:"Next log",onClick:p[1]||(p[1]=f=>r("next"))},[q(h(Pt),{size:15})],8,SE),u("div",CE,[a.value?(l(),K(wE,{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":""])},_(a.value?.title??""),3)]),u("div",TE,[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",AE,_(h(s).copied.value?"Copied":"Copy cURL"),1))],8,ME),u("button",{type:"button",class:J(Ss),"aria-label":"Close details",title:"Close",onClick:p[3]||(p[3]=f=>r("close"))},[q(h(cn),{size:15})])])]),e.log?(l(),c("div",LE,[o.value?(l(),c(te,{key:0},[o.value.triggerLine?(l(),c("span",RE,[p[4]||(p[4]=u("span",null,"Trigger",-1)),u("span",{class:"truncate font-mono text-[11px]",title:o.value.triggerLine},_(o.value.triggerLine),9,EE)])):M("",!0),q(Ra,{timestamp:e.log.created_at,class:"tabular-nums"},null,8,["timestamp"]),u("span",PE,"log "+_(h(jp)(e.log.id)),1)],64)):(l(),K(xE,{key:1,log:e.log},{default:be(()=>[h(s).error.value?(l(),c("span",NE,_(h(ze)(h(s).error.value)),1)):M("",!0)]),_:1},8,["log"]))])):M("",!0)]))}}),DE={role:"cell",class:"whitespace-nowrap px-3 py-2 text-xs"},BE=["title"],FE={key:1,class:"text-neutral-400"},qp=we({__name:"LogSideCell",props:{label:{}},setup(e){return(t,n)=>(l(),c("div",DE,[e.label?(l(),c("span",{key:0,class:"block max-w-40 truncate text-neutral-600 dark:text-neutral-400",title:e.label},_(e.label),9,BE)):(l(),c("span",FE,"—"))]))}}),jE=["aria-selected","data-log-level"],qE={role:"cell",class:"whitespace-nowrap px-3 py-2 text-xs"},zE={class:"flex min-w-0 items-center gap-1 whitespace-nowrap"},VE={key:0,class:"mr-1 text-neutral-400 dark:text-neutral-600"},HE={role:"cell",class:"min-w-0 overflow-hidden whitespace-nowrap px-3 py-2"},UE=["title"],KE={role:"cell",class:"whitespace-nowrap px-3 py-2 font-mono text-xs"},WE={key:1,class:"font-sans text-neutral-400"},GE={class:"flex min-w-0 items-center gap-1.5"},JE=["title"],XE={key:0,class:"shrink-0 font-mono text-[11px] text-neutral-400 dark:text-neutral-500"},YE=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(()=>Zo(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",qE,[u("div",zE,[e.depth>0?(l(),c("span",VE,"└─")):M("",!0),u("span",{class:J(["font-mono text-[11px] font-medium",h(UL)[a.value.tone]])},_(a.value.badge),3)])]),q(qp,{label:e.sideLabel},null,8,["label"]),u("div",HE,[u("span",{class:"block truncate font-mono text-xs",title:a.value.name},_(a.value.name),9,UE)]),u("div",KE,[a.value.costLabel?(l(),c(te,{key:0},[Ce(_(a.value.costLabel),1)],64)):(l(),c("span",WE,"—"))]),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",GE,[u("span",{class:"min-w-0 truncate",title:a.value.summary??void 0},_(a.value.summary??"—"),9,JE),a.value.durationLabel?(l(),c("span",XE,_(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"])},[q(Ra,{timestamp:e.log.created_at},null,8,["timestamp"])],2)],42,jE))}}),ZE=ot(YE,[["__scopeId","data-v-06ba4fe2"]]),QE={class:"min-w-full"},e6=["disabled"],t6={key:1},n6={key:2},r6={key:3},a6={role:"table",class:"logs-grid w-full text-sm"},o6={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"},s6=["aria-selected","data-child-thread","onClick","onKeydown","onMouseenter"],l6={role:"cell",class:"whitespace-nowrap px-3 py-2 text-xs"},i6=["title"],u6=["aria-expanded","aria-label","title","onClick"],d6={key:1,class:"size-4 shrink-0","aria-hidden":"true"},c6={key:3,class:"text-neutral-400 dark:text-neutral-600 mr-1"},f6={key:6},p6={role:"cell",class:"min-w-0 overflow-hidden whitespace-nowrap px-3 py-2"},h6={class:"flex min-w-0 items-center gap-2 whitespace-nowrap"},m6={key:0,class:"inline-flex shrink-0 text-neutral-500 dark:text-neutral-400",title:"Stopped by user"},g6={key:1,class:"shrink-0 text-red-600 dark:text-red-400",title:"Error"},v6=["title"],y6=["title"],b6={role:"cell",class:"whitespace-nowrap px-3 py-2 font-mono text-xs"},x6={key:1,class:"inline-flex items-center gap-1"},k6=["title"],w6=["title"],_6={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)"},$6={key:1,class:"text-neutral-400"},I6=["title"],S6={class:"min-w-0 overflow-hidden text-ellipsis whitespace-nowrap"},C6={key:0,class:"text-emerald-600 dark:text-emerald-400",title:"Programmatically called with state.queueTool()"},T6=["title"],M6={key:2},A6={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"},L6=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(E){if(E instanceof Element)return E;if(E&&typeof E=="object"&&"$el"in E){const V=E.$el;return V instanceof Element?V:null}return null}function a(E){return E.error_type==="user_interrupted"?!0:!E.error_type&&/interrupted by user|stopped by user/i.test(E.error??"")}const o=t,s=x(()=>n.logs.some(E=>E.children)),i=E=>`${E?"Hide":"Show"} the child thread's log rows`,d=E=>E.nested?`${E.nested.label}${E.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 E=m.value;if(!E||typeof IntersectionObserver>"u")return;const V=E.closest(".logs-list-container");V&&(g=new IntersectionObserver(z=>{v=z.some(Y=>Y.isIntersecting),v&&n.autoLoadEnabled&&!n.isLoadingMore&&o("loadMore")},{root:V,threshold:0}),g.observe(E))};ve(m,()=>$()),ve(()=>n.isLoadingMore,async(E,V)=>{!V||E||(await Qe(),v&&n.hasMore&&n.autoLoadEnabled&&o("loadMore"))}),Ft(()=>{g?.disconnect(),g=null});let b=null,T=null;const y=new Map,A=E=>{if(!E)return[];try{const V=JSON.parse(E);return Array.isArray(V)?V:[]}catch{return[]}},L=E=>{const V=E.error?MA(E.error_origin):null;return[...A(E.tools_called).map(z=>({name:z,isProgrammatic:!1})),...A(E.provider_tools).map(z=>({name:z.name||z.type||"provider_tool",isProgrammatic:!1})),...A(E.queued_tools).map(z=>({name:z.function?.name||"unknown",isProgrammatic:!0}))].map(z=>({...z,failed:z.name===V}))},k=E=>E.map(V=>V.name).join(", "),C=()=>T||(typeof document>"u"?null:(T=document.createElement("canvas").getContext("2d"),T&&(T.font="12px ui-sans-serif, system-ui, sans-serif"),T)),w=E=>{const V=y.get(E);if(V!==void 0)return V;const Y=C()?.measureText(E).width??E.length*7;return y.set(E,Y),Y},D=(E,V)=>{const z=w(k(E)),Y=E.filter(W=>W.isProgrammatic).length*14,I=V>0?w(`+${V} more`)+18:0,B=V>0?6:0;return z+Y+I+B},F=E=>{const V=k(E);if(E.length<=1)return{tools:E,hiddenCount:0,title:V};const z=f.value-24;if(z<=0)return{tools:E.slice(0,1),hiddenCount:E.length-1,title:V};for(let Y=E.length;Y>0;Y-=1){const I=E.slice(0,Y),B=E.length-Y;if(D(I,B)<=z)return{tools:I,hiddenCount:B,title:V}}return{tools:E.slice(0,1),hiddenCount:E.length-1,title:V}},U=E=>F(L(E)).tools.some(V=>V.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}),(E,V)=>(l(),c("div",QE,[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:V[0]||(V[0]=z=>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",t6,"Loading to find log...")):e.isLoadingMore?(l(),c("span",n6,"Loading older logs...")):(l(),c("span",r6,"Load older logs"))],8,e6)],512)):M("",!0),u("div",a6,[u("div",o6,[V[3]||(V[3]=u("div",{role:"columnheader",class:"whitespace-nowrap px-3 py-1.5 text-left text-xs font-medium"}," Prompt ",-1)),V[4]||(V[4]=u("div",{role:"columnheader",class:"whitespace-nowrap px-3 py-1.5 text-left text-xs font-medium"}," Side ",-1)),V[5]||(V[5]=u("div",{role:"columnheader",class:"whitespace-nowrap px-3 py-1.5 text-left text-xs font-medium"}," Model ",-1)),V[6]||(V[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),V[7]||(V[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,z=>(l(),c(te,{key:z.id},[h(ri)(z)?(l(),K(ZE,{key:0,ref_for:!0,ref:Y=>o("rowRef",z.id,r(Y)),log:z,depth:z.depth,"side-label":z.sideLabel,selected:e.selectedLogIdForDetails===z.id,highlighted:z.id===n.selectedLogId||z.id===n.hoveredLogId,"details-open":e.detailsOpen,onSelect:Y=>o("selectLog",z),onNavigate:Y=>o("navigateLog",Y,z),onHover:Y=>o("logHover",Y?z.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",z.id,r(Y)),role:"row",tabindex:"0","aria-selected":e.selectedLogIdForDetails===z.id,"data-child-thread":z.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":z.error&&!a(z),"logs-row-selected":e.selectedLogIdForDetails===z.id,"agents-surface-selected agents-text-selected agents-border-selected":e.selectedLogIdForDetails===z.id,"agents-surface-hover":e.selectedLogIdForDetails!==z.id&&(z.id===n.selectedLogId||z.id===n.hoveredLogId)}]),onClick:Y=>o("selectLog",z),onKeydown:Y=>o("navigateLog",Y,z),onMouseenter:Y=>o("logHover",z.id),onMouseleave:V[2]||(V[2]=Y=>o("logHover",null))},[u("div",l6,[u("div",{class:"flex min-w-0 items-center gap-1 whitespace-nowrap",style:nt(z.nested?{paddingLeft:`${z.depth*20}px`}:void 0),title:d(z)},[z.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":z.children.expanded,"aria-label":i(z.children.expanded),title:i(z.children.expanded),onClick:Je(Y=>o("toggleChildren",z),["stop"]),onKeydown:V[1]||(V[1]=Je(()=>{},["stop"]))},[z.children.loading?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(Pt),{key:1,size:12,class:J(["transition-transform motion-reduce:transition-none",z.children.expanded?"rotate-90":""])},null,8,["class"]))],40,u6)):s.value&&!z.nested?(l(),c("span",d6)):M("",!0),z.nested?(l(),K(Mn,{key:2,icon:z.nested.avatar.icon,seed:z.nested.avatar.seed,class:"mr-0.5 size-4 shrink-0 rounded object-cover"},null,8,["icon","seed"])):z.depth>0?(l(),c("span",c6,"└─")):M("",!0),z.retry_of_log_id?(l(),K(h(pm),{key:4,size:14,class:"text-neutral-500 dark:text-neutral-400 flex-shrink-0"})):M("",!0),!z.is_complete&&!z.prompt_name?(l(),K(et,{key:5,size:"xs"})):(l(),c("span",f6,_(z.prompt_name||"—"),1))],12,i6)]),q(qp,{label:z.sideLabel},null,8,["label"]),u("div",p6,[u("div",h6,[a(z)?(l(),c("span",m6,[q(h(hm),{size:12,class:"mt-0.5"})])):z.error&&!U(z)?(l(),c("span",g6," ✕ ")):M("",!0),z.error&&!a(z)&&!U(z)&&h(no)(z.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)(z.error_origin)}`},_(h(no)(z.error_origin)),9,v6)):M("",!0),u("span",{class:"min-w-0 truncate font-mono text-xs",title:h(xr)(z)??void 0},_(h(xr)(z)),9,y6)])]),u("div",b6,[!z.is_complete&&(z.cost_total===null||z.cost_total===void 0)?(l(),K(et,{key:0,size:"xs"})):(l(),c("span",x6,[h(ud)(z)?(l(),c("span",{key:0,title:h(Lo)(z).note??void 0},_(h(ud)(z)),9,k6)):(l(),c("span",{key:1,class:"font-sans text-neutral-400",title:h(Lo)(z).note??void 0},"—",8,w6)),e.cacheDecreasedLogIds?.has(z.id)?(l(),c("span",_6,[q(h(mm),{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===z.id?"text-neutral-800 dark:text-neutral-100":"text-neutral-600 dark:text-neutral-400"])},[!z.is_complete&&L(z).length===0?(l(),K(et,{key:0,size:"xs"})):L(z).length===0?(l(),c("span",$6,"—")):(l(),c("span",{key:2,class:"flex min-w-0 items-center gap-1.5",title:F(L(z)).title},[u("span",S6,[(l(!0),c(te,null,Ie(F(L(z)).tools,(Y,I)=>(l(),c(te,{key:I},[Y.isProgrammatic?(l(),c("span",C6,[q(h(gm),{size:11,class:"inline-block -mt-0.5 mr-0.5"}),Ce(_(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},_(Y.name),11,T6)),I<F(L(z)).tools.length-1?(l(),c("span",M6,", ")):M("",!0)],64))),128))]),F(L(z)).hiddenCount>0?(l(),c("span",A6," +"+_(F(L(z)).hiddenCount)+" more ",1)):M("",!0)],8,I6))],2),u("div",{role:"cell",class:J(["whitespace-nowrap px-3 py-2 text-right text-xs",e.selectedLogIdForDetails===z.id?"text-neutral-800 dark:text-neutral-100":"text-neutral-500 dark:text-neutral-500"])},[q(Ra,{timestamp:z.created_at},null,8,["timestamp"])],2)],42,s6))],64))),128))])]))}}),R6=ot(L6,[["__scopeId","data-v-bcd99a9b"]]),zp=Symbol("logDetailView"),E6="agents.logs.detailView",P6=["request","response","trace"];function N6(e){return P6.find(t=>t===e)??"response"}function O6(e){return[{value:"request",label:"Request"},{value:"response",label:"Response"},...e?[{value:"trace",label:"Trace"}]:[]]}function D6(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 B6(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 oi(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 F6(e,t){const n=e.tool_results??(t?.id===e.id?t.tool_results:void 0);return n==null?e:{...e,tool_results:oi({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 Cs=e=>Up(e).filter(t=>t==="subagent_create").length,Wp=(e,t)=>e.created_at-t.created_at;function j6(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 q6(e,t,n,r,a){const o=r.flatMap(m=>{const g=a.get(m.threadId)??[],v=j6(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+Cs(g),0),p=Cs(e)>0?r.slice(d,d+Cs(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 z6=e=>[e.relationship??e.agentName??"Subagent",e.instance].filter(t=>!!t).join(" · ");function V6(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:z6(o.child),avatar:n(o.child),inferred:o.inferred}})));return[r,...a]})}const si=1e3,tn=e=>typeof e=="string"&&e?e:null;function H6(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 ll(e){const t=await Be.getJson(He(`/api/threads/${encodeURIComponent(e)}/subagents`));return H6(t)}async function Ro(e){return(await Be.getJson(He(`/api/threads/${encodeURIComponent(e)}/logs?limit=${si}&offset=0&order=asc`))).logs??[]}async function U6(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 K6(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 Gp(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 fc({url:m=>{const g=window.location.protocol==="https:"?"wss:":"ws:";return pc(`${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()}}function W6(e,t){const n=R(new Set),r=R(new Set),a=Et([]),o=Et(new Map),s=R(!1),i=R(null),d=new Map;let p=0,f=null,m=!1;const g=()=>{if(f){m=!0;return}const w=p;y().catch(D=>{w===p&&(i.value=ze(D))})},v=Oh.subscribe({onEvent:w=>{w.type!=="thread_created"&&w.type!=="thread_updated"||w.thread.parent===e.value&&!d.has(w.thread.id)&&g()},onReconnect:g});function $(){p++,v.disconnect(),m=!1,f=null;for(const w of d.values())w();d.clear(),a.value=[],o.value=new Map,s.value=!1}ve(e,()=>{$(),n.value=new Set,r.value=new Set,i.value=null}),Ml($);const b=(w,D)=>new Set([...w].filter(F=>F!==D)),T=(w,D)=>{o.value=new Map([...o.value,[w,D]])};function y(){const w=e.value;if(!w)return Promise.resolve();if(f)return f;const D=p,F=(async()=>{const U=await ll(w),N=U.filter(V=>!d.has(V.threadId)),E=await Promise.all(N.map(V=>Ro(V.threadId)));D===p&&(a.value=U,N.forEach((V,z)=>{T(V.threadId,E[z]),d.set(V.threadId,Gp(V.threadId,[...E[z]],()=>Ro(V.threadId),Y=>{D===p&&T(V.threadId,Y)},Y=>{D===p&&(i.value=Y)}))}),s.value=!0)})().finally(()=>{f===F&&(f=null,m&&D===p&&(m=!1,g()))});return f=F,F}async function A(w){if(!e.value)return;const D=p;if(n.value=new Set([...n.value,w.id]),i.value=null,!s.value){v.connect(),r.value=new Set([...r.value,w.id]);try{await y()}catch(F){D===p&&(i.value=ze(F))}finally{D===p&&(r.value=b(r.value,w.id))}}}function L(w){n.value=b(n.value,w),n.value.size===0&&$()}function k(w){n.value.has(w.id)?L(w.id):A(w)}const C=x(()=>{const w=e.value,D=new Map;if(!w||!s.value)return D;for(const F of t.value)n.value.has(F.id)&&D.set(F.id,q6(F,w,t.value,a.value,o.value));return D});return{expanded:n,loading:r,groups:C,error:i,toggle:k}}function G6(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 J6(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:G6(o.side,o.nested?r(o.nested.agentName):a)}))}const X6={key:0,class:"text-neutral-500 dark:text-neutral-400 text-center py-12"},Y6={key:1,class:"flex justify-center py-12"},Z6={key:2,class:"text-red-600 dark:text-red-400 text-center py-12"},Q6={key:3,class:"text-neutral-500 dark:text-neutral-400 text-center py-12"},eP={key:0,class:"px-3 py-2 text-xs text-red-600 dark:text-red-400"},tP={class:"flex h-full min-h-0 flex-col"},nP={class:"ui-border flex shrink-0 justify-center border-b bg-white px-2 pb-2 dark:bg-neutral-900"},rP={class:"relative min-h-0 flex-1"},aP={key:1,class:"flex h-full flex-col items-center justify-center gap-3 text-neutral-500 dark:text-neutral-400"},oP={key:4,class:"absolute inset-0 flex items-center justify-center bg-white/20 pointer-events-none dark:bg-black/20"},vd=20,sP=20,yd="agentbuilder.threads.logDetailsHeightPercent",bd=50,lP=600,iP=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(vd),{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),T=R(null),y=R(null),A=R(null),L=R(!1),k=R(!1);let C=null;const w=R(new Map),U=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})(yd,70),35,80)),N=async()=>{await Qe(),y.value&&(G(),y.value.scrollTop=y.value.scrollHeight)},E=()=>{const Q=y.value;Q&&(L.value||C||(G(),Q.scrollTop=Q.scrollHeight))};let V=null;const z=()=>{V?.disconnect(),!(typeof ResizeObserver>"u")&&V&&(y.value&&V.observe(y.value),A.value&&V.observe(A.value))};an(()=>{typeof ResizeObserver<"u"&&(V=new ResizeObserver(()=>E()),z())}),ve([y,A],()=>z()),Ft(()=>{V?.disconnect(),V=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,C&&ht>0){const lt=C;C=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 I=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}),B=wa(),W=W6(x(()=>r.threadId),$),P=x(()=>J6(V6(I.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(B.items.value,Q.agentName)),r.agentName,B.items.value)),X=R(null),re=x(()=>X.value?.nested?.threadId??r.threadId),{logDetails:ne,isFetching:de,refetch:ue}=sA(re,x(()=>T.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(()=>T.value?$.value.find(Q=>Q.id===T.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,oi(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=vm(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(()=>O6(se.value)),pe=x(()=>D6(ie.value,se.value)),Fe=x(()=>pe.value==="request"?"request":"response"),fe=R(!1),Te=x(()=>pe.value==="trace"&&!fe.value);ve(T,Q=>{Q&&(fe.value=!1)});const Z=()=>{X.value=null,T.value=null,fe.value=!0};ve(Re,Q=>{Q?Me.value=Q:T.value||(Me.value=null)},{immediate:!0});const ee=x(()=>T.value?P.value.findIndex(Q=>Q.id===T.value):-1),oe=x(()=>ee.value>0),Oe=x(()=>ee.value>=0&&ee.value<P.value.length-1),j=()=>{if(oe.value){const Q=P.value[ee.value-1];Ue(Q)}},ce=()=>{if(Oe.value){const Q=P.value[ee.value+1];Ue(Q)}},he=async Q=>{await Qe(),w.value.get(Q)?.focus({preventScroll:!0})},Pe=(Q,Ae)=>{const Ne=P.value.findIndex(ht=>ht.id===Ae.id);if(Ne<0)return;let Ke=Ne;if(Q.key==="ArrowDown")Ke=Math.min(P.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=P.value.length-1;else return;Q.preventDefault();const qe=P.value[Ke];qe&&(Ue(qe),he(qe.id))},We=Q=>{if(!y.value)return;const Ae=w.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=P.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)),T.value=Q.id;const Ke=$.value[$.value.length-1];Ke&&Ke.id!==Q.id&&(L.value=!0)},Se=(Q,Ae)=>{Ae?w.value.set(Q,Ae):w.value.delete(Q)},ge=(Q,Ae)=>{Se(Q,Ae instanceof HTMLElement?Ae:null)};ve(T,async Q=>{Q&&(await Qe(),We(Q))}),ve(()=>r.selectedLogId,Q=>{Q&&(X.value=null,a("nestedLogSelect",null),T.value=Q)},{immediate:!0});const $e=Q=>{X.value=null,T.value=Q},_e=async Q=>{await Qe();const Ae=w.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(w.value.has(Q))return!0;if(!I.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;C={scrollHeight:Q?.scrollHeight??0,scrollTop:Q?.scrollTop??0},o.value+=s.value,s.value=sP};ve(p,(Q,Ae)=>{Ae&&!Q&&k.value&&setTimeout(()=>{C&&(C=null,k.value=!1)},300)}),ve(()=>r.threadId,async Q=>{Q?(g(),m()):g(),o.value=0,s.value=vd,$.value=[],X.value=null,T.value=null,L.value=!1,b.value=!0,C=null,k.value=!1},{immediate:!0});let jt=0;const G=()=>{jt=Date.now()},le=Q=>Q.scrollHeight-Q.scrollTop-Q.clientHeight,S=()=>{const Q=y.value;if(Q){if(le(Q)<bd){L.value=!1;return}Date.now()-jt>lP&&(L.value=!0)}},O=Q=>{Q.deltaY<0&&(L.value=!0)},H=()=>{const Q=y.value;Q&&le(Q)>=bd&&(L.value=!0)},ye=x(()=>lA($.value));return(Q,Ae)=>(l(),K(Yo,{"height-percent":U.value,"onUpdate:heightPercent":Ae[3]||(Ae[3]=Ne=>U.value=Ne),"storage-key":yd,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:S,onWheelPassive:O,onTouchmovePassive:H},[e.threadId?h(p)&&o.value===0?(l(),c("div",Y6,[q(et)])):h(f)?(l(),c("div",Z6," Error loading logs: "+_(h(ze)(h(f))),1)):$.value.length===0?(l(),c("div",Q6," No logs yet ")):(l(),c("div",{key:4,ref_key:"logsContentRef",ref:A},[q(R6,{logs:P.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":T.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",eP," Could not read the child thread's log rows: "+_(h(W).error.value),1)):M("",!0)],512)):(l(),c("div",X6," Select a thread to view logs "))],544)]),_:2},[Te.value||Me.value||Xe.value&&T.value?{name:"detail",fn:be(()=>[u("div",tP,[q(OE,{log:Me.value,"thread-id":re.value,"has-previous":oe.value,"has-next":Oe.value,onPrevious:j,onNext:ce,onClose:Z},null,8,["log","thread-id","has-previous","has-next"]),u("div",nP,[q(ac,{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",rP,[Te.value?gt(Q.$slots,"trace",{key:0,hasPreviousLog:oe.value,hasNextLog:Oe.value,previousLog:j,nextLog:ce},void 0,!0):Xe.value&&!Re.value?(l(),c("div",aP,[q(et),Ae[4]||(Ae[4]=u("span",{class:"text-sm"},"Loading log...",-1))])):Me.value&&h(ri)(Me.value)?(l(),K(ZR,{key:2,log:Me.value,tab:Fe.value,"thread-id":re.value},null,8,["log","tab","thread-id"])):Me.value?(l(),K(VR,{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",oP,[q(et)])):M("",!0)])])]),key:"0"}:void 0]),1032,["height-percent"]))}}),uP=ot(iP,[["__scopeId","data-v-e5b32ba6"]]);function Jp(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 li(e){const t=R(!1);return ve(e,n=>{n!==!1&&(t.value=!0)},{immediate:!0}),t}const dP={class:"h-full min-h-0 overflow-hidden"},cP={class:"flex h-full min-h-0 flex-col overflow-hidden"},fP={class:"flex items-center gap-2 border-b border-neutral-200 px-3 py-2 dark:border-neutral-800"},pP={class:"min-w-0 flex-1 truncate text-xs tabular-nums text-neutral-500 dark:text-neutral-400"},hP=["disabled"],mP={class:"min-h-0 flex-1 overflow-auto"},gP={key:0,class:"py-12 text-center text-sm text-neutral-500"},vP={key:1,class:"flex justify-center py-12"},yP={key:2,class:"py-12 text-center text-sm text-red-600 dark:text-red-400"},bP={key:3,class:"py-12 text-center text-sm text-neutral-500"},xP={key:4,class:"flex h-full min-h-0 flex-col"},kP={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"},wP={class:"min-h-0 flex-1 overflow-auto bg-white dark:bg-neutral-950"},_P={class:"w-full min-w-[60rem] table-fixed text-left text-xs"},$P={class:"divide-y divide-(--color-border-subtle)"},IP={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},SP={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"},CP={class:"text-neutral-700 dark:text-neutral-300"},TP={class:"ml-2 tabular-nums"},MP=["aria-selected","onClick","onKeydown"],AP={class:"whitespace-nowrap px-4 py-2 align-middle"},LP={class:"flex items-center gap-1.5"},RP=["disabled","title","aria-label","onClick"],EP=["disabled","title","aria-label","onClick"],PP={class:"whitespace-nowrap px-4 py-2 align-middle"},NP={class:"min-w-0 px-3 py-2 align-middle"},OP={class:"truncate font-mono text-xs text-neutral-950 dark:text-neutral-100"},DP=["title"],BP={key:0,class:"mt-0.5 truncate text-xs text-neutral-500 dark:text-neutral-400"},FP={key:1,class:"mt-0.5 flex max-w-full items-center gap-1 text-xs text-neutral-500 dark:text-neutral-400"},jP={class:"truncate"},qP={class:"whitespace-nowrap px-3 py-2 align-middle text-xs text-neutral-500 dark:text-neutral-400"},zP={class:"whitespace-nowrap px-3 py-2 align-middle"},VP={class:"text-xs font-medium text-neutral-800 dark:text-neutral-100"},HP={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},UP={class:"whitespace-nowrap px-3 py-2 align-middle text-xs text-neutral-500 dark:text-neutral-400"},KP={key:0,class:"mt-0.5 text-xs text-neutral-500 dark:text-neutral-400"},WP={class:"whitespace-nowrap px-3 py-2 text-right align-middle text-xs tabular-nums text-neutral-500"},GP={class:"min-w-0 px-4 py-2 align-middle"},JP=["title"],XP={key:0,class:"mt-0.5 truncate text-xs text-red-600 dark:text-red-400"},YP=["disabled"],ZP={class:"flex h-full min-h-0 flex-col overflow-hidden"},QP={class:"flex items-center gap-3 border-b border-neutral-200 px-3 py-2 dark:border-neutral-800"},e7={class:"min-w-0 flex-1"},t7={class:"truncate font-mono text-sm font-medium text-neutral-950 dark:text-neutral-100"},n7={class:"truncate font-mono text-xs text-neutral-500 dark:text-neutral-400"},r7={key:0,class:"mt-0.5 text-xs text-neutral-500 dark:text-neutral-400"},a7={class:"flex shrink-0 items-center gap-2"},o7=["disabled","title","aria-label"],s7=["disabled","title","aria-label"],l7={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"},i7={class:"mt-0.5 text-neutral-900 dark:text-neutral-100"},u7={class:"mt-0.5 text-neutral-900 dark:text-neutral-100"},d7={class:"mt-0.5 text-neutral-900 dark:text-neutral-100"},c7={key:0,class:"mt-0.5 text-xs text-neutral-500 dark:text-neutral-400"},f7={class:"mt-0.5 tabular-nums text-neutral-900 dark:text-neutral-100"},p7={class:"mt-0.5"},h7={key:0,class:"inline-flex items-center gap-1 text-neutral-900 dark:text-neutral-100"},m7={key:1,class:"text-neutral-900 dark:text-neutral-100"},g7={key:0,class:"mt-0.5 text-neutral-500 dark:text-neutral-400"},v7={key:0},y7={class:"mt-0.5 flex max-w-full items-center gap-1 text-neutral-900 dark:text-neutral-100"},b7={class:"truncate font-mono"},x7={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"},k7={class:"flex min-h-0 flex-1 flex-col overflow-hidden"},w7={class:"flex items-start gap-2"},_7={class:"min-w-0"},$7={class:"font-medium text-neutral-950 dark:text-neutral-100"},I7={class:"mt-1 text-neutral-500 dark:text-neutral-400"},S7={class:"mt-1 truncate text-neutral-500 dark:text-neutral-400"},C7={class:"font-mono text-neutral-700 dark:text-neutral-200"},T7={class:"mt-1 truncate font-mono text-xs text-neutral-500 dark:text-neutral-400"},M7={class:"mt-3 flex justify-end gap-2"},xd=100,A7=1e3,L7="agentbuilder.threads.effectDetailSplitPercent",R7=260,E7=we({__name:"ThreadEffectsPane",props:{threadId:{},active:{type:Boolean,default:!0},selectedEffectId:{},selectedEffectRef:{}},emits:["count-changed"],setup(e,{expose:t,emit:n}){const r=Al(()=>Sl(()=>import("./CodeEditor-xwWkV1-c.js").then(S=>S.K),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),a=e,o=li(()=>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),T=R(50),y=R(new Map),A=R(null),L=R(null),k=R(null),C=R("run"),w=R(null),D=R(null);let F=null,U=!1,N=0;const E=x(()=>i.value.length<d.value),V=x(()=>i.value.filter(Ir)),z=x(()=>i.value.filter(S=>!Ir(S))),Y=x(()=>{const S=[];return V.value.length>0&&(S.push({type:"section",key:"section-upcoming",label:"Upcoming",count:V.value.length}),S.push(...V.value.map(O=>({type:"effect",key:O.id,effect:O})))),z.value.length>0&&(S.push({type:"section",key:"section-history",label:"History",count:z.value.length}),S.push(...z.value.map(O=>({type:"effect",key:O.id,effect:O})))),S}),I=x(()=>b.value?i.value.find(S=>S.id===b.value)??null:null),B=x(()=>k.value?i.value.find(S=>S.id===k.value)??null:null),W=x(()=>D.value?{top:`${D.value.top}px`,left:`${D.value.left}px`}:{}),P=x(()=>!!I.value),X=x(()=>I.value?Fu(I.value.args):"{}"),re=x(()=>{if(!a.threadId)return"";if(d.value===0)return"No effects";const S=Math.max(d.value-p.value,z.value.length),O=i.value.length<d.value?` · ${i.value.length} of ${d.value} shown`:"";return`${p.value} upcoming · ${S} past${O}`});function ne(){return!!a.threadId&&a.active!==!1&&!f.value&&!m.value&&!U}function de(S){const O=S?i.value.find(H=>H.id===S):null;if(O){b.value=O.id;return}if(S){b.value=S;return}b.value&&i.value.some(H=>H.id===b.value)||(b.value=i.value[0]?.id??null)}function ue(S){b.value=S.id}function ae(S,O){O instanceof HTMLElement?y.value.set(S,O):y.value.delete(S)}async function xe(S){await Qe(),y.value.get(S)?.focus({preventScroll:!0})}async function Re(S){await Qe();const O=y.value.get(S);O?.scrollIntoView({block:"nearest"}),O?.focus({preventScroll:!0})}async function Me(S){b.value=S,de(S),await Re(S)}async function Ee(S){if(S.id){await Me(S.id);return}const O=i.value.find(H=>ju(H,S));O&&await Me(O.id)}function ke(S){if(S.id)return de(S.id),!0;const O=i.value.find(H=>ju(H,S));return O?(de(O.id),!0):!1}function ie(S,O){const H=i.value.findIndex(Ae=>Ae.id===O.id);if(H<0)return;let ye=H;if(S.key==="ArrowDown")ye=Math.min(i.value.length-1,H+1);else if(S.key==="ArrowUp")ye=Math.max(0,H-1);else if(S.key==="Home")ye=0;else if(S.key==="End")ye=i.value.length-1;else return;S.preventDefault();const Q=i.value[ye];Q&&(ue(Q),xe(Q.id))}function se(S){switch(S){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(S){switch(S){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(S){return Ir(S)?lC(S.scheduledAt,$.value):sn(S.scheduledAt)}function Fe(S){return Ir(S)?sn(S.scheduledAt):""}function fe(S){return S.status==="pending"?"Not run":S.status==="processing"?"Running":Z(S)?"-":sn(S.completedAt)}function Te(S){return S.split("-")[0]||S}function Z(S){return S.status==="agent_canceled"||S.status==="user_canceled"}function ee(S){return S.status==="agent_canceled"?"agent cancelled":S.status==="user_canceled"?"user cancelled":""}function oe(S){return S.replayedFrom?"Manual rerun":S.manualRun?"Manual run":""}function Oe(S){return S.replayedFrom?`Manual rerun of ${Te(S.replayedFrom)}`:S.manualRun?"Manual run":""}function j(S){return Z(S)?"":sC(S)}function ce(S){return S.status==="pending"?(S.scheduledAt>9999999999?Math.floor(S.scheduledAt/1e3):S.scheduledAt)<=$.value?"Complete overdue effect":"Run scheduled effect now":S.status==="completed"||S.status==="failed"||Z(S)?"Replay effect":"Effect is running"}function he(S){return S.status==="pending"?(S.scheduledAt>9999999999?Math.floor(S.scheduledAt/1e3):S.scheduledAt)<=$.value?"Complete":"Run now":S.status==="completed"||S.status==="failed"||Z(S)?"Replay":"Run"}function Pe(S){return S.status==="pending"||S.status==="completed"||S.status==="failed"||Z(S)}function We(S){return S.status==="pending"}function Ue(S){return We(S)?"Cancel scheduled effect":"Effect cannot be cancelled"}function Se(S){return C.value==="cancel"?Ue(S):ce(S)}function ge(S){return C.value==="cancel"?"Cancel effect":he(S)}function $e(S){return C.value==="cancel"?"This will keep the effect in history as user cancelled.":S.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(S,O){return k.value===S.id&&C.value===O}function De(S){const O=S.getBoundingClientRect(),H=8,ye=Math.min(Math.max(O.right+H,H),Math.max(H,window.innerWidth-R7-H)),Q=Math.min(Math.max(O.top-H,H),Math.max(H,window.innerHeight-160));D.value={top:Q,left:ye}}function Xe(S,O,H="run"){if(!(H==="cancel"?We(S):Pe(S))||A.value)return;const Q=O.currentTarget;Q instanceof HTMLElement&&(rt(),k.value=S.id,C.value=H,De(Q),document.addEventListener("pointerdown",kt),document.addEventListener("keydown",At),window.addEventListener("resize",rt),window.addEventListener("scroll",rt,!0))}function rt(){k.value=null,C.value="run",D.value=null,document.removeEventListener("pointerdown",kt),document.removeEventListener("keydown",At),window.removeEventListener("resize",rt),window.removeEventListener("scroll",rt,!0)}function kt(S){const O=S.target;O instanceof Node&&(w.value?.contains(O)||rt())}function At(S){S.key==="Escape"&&rt()}async function Lt(S){if(!(!a.threadId||!Pe(S)||A.value)){rt(),g.value=null,A.value=S.id,L.value="run";try{await Be.request(He(`/api/threads/${a.threadId}/effects/${S.id}/run`),{method:"POST"}),await wt()}catch(O){g.value=ze(O),await wt({quiet:!0})}finally{A.value=null,L.value=null}}}async function Yt(S){if(!(!a.threadId||!We(S)||A.value)){rt(),g.value=null,A.value=S.id,L.value="cancel";try{await Be.request(He(`/api/threads/${a.threadId}/effects/${S.id}/cancel`),{method:"POST"}),await wt()}catch(O){g.value=ze(O),await wt({quiet:!0})}finally{A.value=null,L.value=null}}}async function on(S){if(C.value==="cancel"){await Yt(S);return}await Lt(S)}async function wt(S={}){if(!a.threadId){i.value=[],d.value=0,p.value=0,b.value=null;return}const O=++N,H=S.append===!0,ye=S.quiet===!0;ye&&(U=!0),ye||(H?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,xd),200);Q.set("limit",String(H?xd:Ae)),Q.set("offset",String(H?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=dC(H?[...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=ze(Ne)),!1}finally{ye&&(U=!1),O===N&&!ye&&(f.value=!1,m.value=!1)}}const jt=()=>{typeof document<"u"&&document.visibilityState==="visible"&&G.onVisible()},G=Jp({refresh:async()=>ne()?($.value=Date.now(),await wt({quiet:!0})):!1}),le=Go({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,S=>{S&&Me(S)}),ve(()=>a.selectedEffectRef,S=>{S&&Ee(S)}),ve(p,S=>s("count-changed",S),{immediate:!0}),ve(()=>[a.threadId,a.active!==!1,V.value.length>0],([S,O,H])=>{F&&clearInterval(F),F=null,!(!S||!O||!H)&&(F=setInterval(()=>{$.value=Date.now()},A7))},{immediate:!0}),ve(()=>a.active,S=>{if(!S){rt();return}le.available||G.notify(),G.flush()}),ve(ne,S=>{S&&G.flush()}),typeof document<"u"&&document.addEventListener("visibilitychange",jt),Ft(()=>{F&&clearInterval(F),G.cancel(),rt(),typeof document<"u"&&document.removeEventListener("visibilitychange",jt)}),t({selectEffectById:Me,selectEffectByReference:Ee}),(S,O)=>(l(),c("div",dP,[q(Yo,{"height-percent":T.value,"onUpdate:heightPercent":O[4]||(O[4]=H=>T.value=H),"storage-key":L7,title:"Resize effects browser and detail"},ar({main:be(()=>[u("div",cP,[u("div",fP,[u("div",pP,_(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]=H=>wt())},[f.value?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(Vo),{key:1,size:15}))],8,hP)]),u("div",mP,[e.threadId?f.value&&i.value.length===0?(l(),c("div",vP,[q(et)])):v.value?(l(),c("div",yP,_(h(ze)(v.value)),1)):i.value.length===0?(l(),c("div",bP,[q(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",xP,[g.value?(l(),c("div",kP,_(h(ze)(g.value)),1)):M("",!0),u("div",wP,[u("table",_P,[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",$P,[(l(!0),c(te,null,Ie(Y.value,H=>(l(),c(te,{key:H.key},[H.type==="section"?(l(),c("tr",IP,[u("th",SP,[u("span",CP,_(H.label),1),u("span",TP,_(H.count),1)])])):(l(),c("tr",{key:1,ref_for:!0,ref:ye=>ae(H.effect.id,ye),tabindex:"0","aria-selected":b.value===H.effect.id,class:J(["cursor-pointer transition-colors focus:outline-none",b.value===H.effect.id?"agents-surface-selected":"hover:bg-neutral-50 dark:hover:bg-neutral-900"]),onClick:ye=>ue(H.effect),onKeydown:[dn(Je(ye=>ue(H.effect),["prevent"]),["enter"]),dn(Je(ye=>ue(H.effect),["prevent"]),["space"]),ye=>ie(ye,H.effect)]},[u("td",AP,[u("div",LP,[Pe(H.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(H.effect,"run")}]),disabled:!Pe(H.effect)||!!A.value,title:ce(H.effect),"aria-label":ce(H.effect),onClick:Je(ye=>Xe(H.effect,ye,"run"),["stop"])},[A.value===H.effect.id&&L.value==="run"?(l(),K(et,{key:0,size:"xs"})):H.effect.status==="completed"||H.effect.status==="failed"||Z(H.effect)?(l(),K(h(vr),{key:1,size:14})):(l(),K(h(ho),{key:2,size:14}))],10,RP)):M("",!0),We(H.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(H.effect,"cancel")}]),disabled:!!A.value,title:Ue(H.effect),"aria-label":Ue(H.effect),onClick:Je(ye=>Xe(H.effect,ye,"cancel"),["stop"])},[A.value===H.effect.id&&L.value==="cancel"?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(cn),{key:1,size:14}))],10,EP)):M("",!0)])]),u("td",PP,[u("span",{class:J(["inline-flex items-center gap-1.5 text-xs",me(H.effect.status)])},[H.effect.status==="processing"?(l(),K(Nr,{key:0})):M("",!0),Ce(" "+_(se(H.effect.status)),1)],2)]),u("td",NP,[u("div",OP,_(H.effect.name),1),u("div",{class:"truncate font-mono text-xs text-neutral-500 dark:text-neutral-400",title:H.effect.id},_(Te(H.effect.id)),9,DP),ee(H.effect)?(l(),c("div",BP,_(ee(H.effect)),1)):M("",!0),Oe(H.effect)?(l(),c("div",FP,[H.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",jP,_(Oe(H.effect)),1)])):M("",!0)]),u("td",qP,_(h(sn)(H.effect.createdAt)),1),u("td",zP,[u("div",VP,_(pe(H.effect)),1),Fe(H.effect)?(l(),c("div",HP,_(Fe(H.effect)),1)):M("",!0)]),u("td",UP,[u("div",null,_(fe(H.effect)),1),j(H.effect)?(l(),c("div",KP,_(j(H.effect)),1)):M("",!0)]),u("td",WP,_(H.effect.attempts),1),u("td",GP,[u("div",{class:"truncate font-mono text-xs text-neutral-500 dark:text-neutral-400",title:h(Fu)(H.effect.args)},_(h(iC)(H.effect.args)),9,JP),H.effect.error?(l(),c("div",XP,_(H.effect.error),1)):M("",!0)])],42,MP))],64))),128))])])]),E.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]=H=>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,YP)):M("",!0)])):(l(),c("div",gP," Select a thread to view effects "))])])]),_:2},[P.value&&I.value?{name:"detail",fn:be(()=>[u("div",ZP,[u("div",QP,[u("div",e7,[u("div",t7,_(I.value.name),1),u("div",n7,_(I.value.id),1),ee(I.value)?(l(),c("div",r7,_(ee(I.value)),1)):M("",!0)]),u("span",{class:J(["inline-flex shrink-0 items-center gap-1.5 text-xs",me(I.value.status)])},[I.value.status==="processing"?(l(),K(Nr,{key:0})):M("",!0),Ce(" "+_(se(I.value.status)),1)],2),u("div",a7,[Pe(I.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(I.value,"run")}]),disabled:!Pe(I.value)||!!A.value,title:ce(I.value),"aria-label":ce(I.value),onClick:O[2]||(O[2]=Je(H=>Xe(I.value,H,"run"),["stop"]))},[A.value===I.value.id&&L.value==="run"?(l(),K(et,{key:0,size:"xs"})):I.value.status==="completed"||I.value.status==="failed"||Z(I.value)?(l(),K(h(vr),{key:1,size:14})):(l(),K(h(ho),{key:2,size:14})),u("span",null,_(he(I.value)),1)],10,o7)):M("",!0),We(I.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(I.value,"cancel")}]),disabled:!!A.value,title:Ue(I.value),"aria-label":Ue(I.value),onClick:O[3]||(O[3]=Je(H=>Xe(I.value,H,"cancel"),["stop"]))},[A.value===I.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,s7)):M("",!0)])]),u("div",l7,[u("div",null,[O[12]||(O[12]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Created ",-1)),u("div",i7,_(h(sn)(I.value.createdAt)),1)]),u("div",null,[O[13]||(O[13]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Scheduled ",-1)),u("div",u7,_(h(sn)(I.value.scheduledAt)),1)]),u("div",null,[O[14]||(O[14]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Completed ",-1)),u("div",d7,_(fe(I.value)),1),j(I.value)?(l(),c("div",c7,_(j(I.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",f7,_(I.value.attempts),1)]),u("div",null,[O[16]||(O[16]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Source ",-1)),u("div",p7,[oe(I.value)?(l(),c("span",h7,[I.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(" "+_(oe(I.value)),1)])):(l(),c("span",m7,"Automatic"))]),I.value.manualRunAt?(l(),c("div",g7,_(h(sn)(I.value.manualRunAt)),1)):M("",!0)]),I.value.replayedFrom?(l(),c("div",v7,[O[17]||(O[17]=u("div",{class:"text-neutral-500 dark:text-neutral-400"}," Rerun of ",-1)),u("div",y7,[q(h(vr),{size:12,class:"shrink-0 text-neutral-500"}),u("span",b7,_(I.value.replayedFrom),1)])])):M("",!0)]),I.value.error?(l(),c("div",x7,_(I.value.error),1)):M("",!0),u("div",k7,[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&&B.value&&D.value?(l(),c("div",{key:0,ref_key:"actionPopoverRef",ref:w,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",w7,[C.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",_7,[u("div",$7,_(Se(B.value)),1),u("div",I7,_($e(B.value)),1),u("div",S7,[u("span",C7,_(B.value.name),1)]),u("div",T7,_(B.value.id),1)])]),u("div",M7,[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},_(C.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",C.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]=H=>on(B.value))},_(ge(B.value)),3)])],4)):M("",!0)]))]))}}),P7={class:"flex h-full min-h-0 flex-col overflow-hidden"},N7={class:"ui-border flex items-center justify-between gap-3 border-b px-3 py-2"},O7={class:"min-w-0 flex items-center gap-1 overflow-hidden text-xs","aria-label":"File path"},D7=["aria-current","onClick"],B7={class:"flex shrink-0 items-center gap-1"},F7=["aria-checked"],j7=["aria-checked"],q7=["disabled"],z7=["disabled"],V7={class:"min-h-0 flex-1 overflow-auto p-3"},H7={key:0,class:"py-12 text-center text-sm text-neutral-500"},U7={key:1,class:"flex justify-center py-12"},K7={key:2,class:"py-12 text-center text-sm text-red-600 dark:text-red-400"},W7={key:3,class:"py-12 text-center text-sm text-neutral-500"},G7={key:4,class:"space-y-0.5"},J7=["onClick","onDblclick","onKeydown"],X7={key:1,class:"w-3 shrink-0"},Y7={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"},Z7=["src","alt"],Q7={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"},eN={class:"min-w-0 flex-1 truncate"},tN={key:5,class:"text-[11px] text-neutral-400"},nN={key:6,class:"text-[11px] text-neutral-400"},rN={key:5,class:"grid grid-cols-[repeat(auto-fill,minmax(112px,1fr))] gap-3"},aN=["onClick","onKeydown"],oN={class:"mb-2 flex aspect-square items-center justify-center overflow-hidden rounded bg-neutral-100 dark:bg-neutral-950"},sN=["src","alt"],lN={class:"truncate text-xs font-medium"},iN={class:"mt-0.5 text-[11px] text-neutral-400"},uN={class:"flex h-full min-h-0 flex-col overflow-hidden"},dN={class:"flex items-center justify-between border-b border-neutral-200 px-3 py-2 dark:border-neutral-800"},cN={class:"min-w-0"},fN={class:"truncate text-sm font-medium"},pN={class:"truncate text-[11px] font-mono text-neutral-500"},hN={class:"flex shrink-0 items-center gap-1.5"},mN=["disabled"],gN=["href","download"],vN={key:0,class:"grid grid-cols-[120px_minmax(0,1fr)] gap-2 text-sm"},yN={class:"font-mono"},bN={class:"break-all font-mono"},xN={key:1,class:"flex h-full items-center justify-center"},kN={key:2,class:"text-sm text-red-600 dark:text-red-400"},wN=["src","alt"],_N={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"},$N={key:5,class:"grid grid-cols-[120px_minmax(0,1fr)] gap-2 text-sm"},IN={class:"font-mono"},SN={class:"font-mono"},CN={class:"break-all font-mono"},TN="agentbuilder.threads.filePreviewSplitPercent",MN=we({__name:"ThreadFilesPane",props:{threadId:{},path:{},refreshKey:{},active:{type:Boolean,default:!0}},emits:["update:path","count-changed"],setup(e,{emit:t}){const n=Al(()=>Sl(()=>import("./CodeEditor-xwWkV1-c.js").then(S=>S.K),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),r=e,a=li(()=>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),T=R(null),y=R(!1),A=R(null),L=R(""),k=R(null),C=R(50),w=R(null),D=R(new Map);let F=null,U=0;const N=S=>(S.startsWith("/")?S:`/${S}`).replace(/\/+/g,"/"),E=(S,O="")=>{const H=typeof S=="string"?S:S.path;return r.threadId?Wr(r.threadId,H,O):""},V=S=>E(S),z=S=>{const O=S.name.toLowerCase();return O.endsWith(".vue")?"html":S.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")||S.mimeType.includes("xml")?"xml":"plaintext"},Y=S=>{if(!S)return"0 B";const O=["B","KB","MB","GB"],H=Math.min(Math.floor(Math.log(S)/Math.log(1024)),O.length-1);return`${(S/1024**H).toFixed(H===0?0:1)} ${O[H]}`},I=S=>`${S} ${S===1?"item":"items"}`,B=S=>!!S?.mimeType?.startsWith("image/"),W=new Set([".bash",".css",".html",".js",".jsx",".json",".md",".markdown",".py",".scss",".sh",".ts",".tsx",".txt",".vue",".xml",".yaml",".yml"]),P=S=>{if(!S)return!1;const O=S.name.toLowerCase();return S.mimeType.startsWith("text/")||S.mimeType.includes("json")||S.mimeType.includes("xml")||S.mimeType.includes("javascript")||S.mimeType.includes("typescript")||[...W].some(H=>O.endsWith(H))},X=S=>S?B(S)?gc:S.mimeType.startsWith("audio/")?km:S.mimeType.startsWith("video/")?wm:P(S)?S.mimeType.includes("json")||S.mimeType.includes("javascript")?_m:$m:po:po,re=()=>{const S=new Set(["/"]);for(const O of s.value){const H=N(O.path).split("/").filter(Boolean);let ye="";for(const Q of H.slice(0,-1))ye+="/"+Q,S.add(ye)}return S},ne=()=>{$.value=re()},de=S=>S?`${S.path}|${S.size}|${S.updatedAt??""}|${S.mimeType}`:"",ue=async(S={})=>{const O=r.threadId;if(!r.threadId){U++,F=null,i.value=!1,s.value=[];return}const H=S.quiet===!0;if(H&&F!==null)return;const ye=++U,Q=s.value;H?F=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!==U||O!==r.threadId)return;const Ke=(Ne.files||[]).filter(qe=>!qe.isDirectory).map(qe=>({...qe,path:N(qe.path)})).sort(Jo);s.value=tC(s.value,Ke,Q),m.value==="tree"&&s.value.length>0&&!b.value&&(ne(),b.value=!0)}catch(Ae){!H&&ye===U&&(f.value=ze(Ae))}finally{F===ye&&(F=null),ye===U&&(i.value=!1)}},ae=x(()=>{const S={type:"directory",name:"",path:"/",children:[]},O=new Map([["/",S]]);for(const ye of s.value){const Q=N(ye.path).split("/").filter(Boolean);let Ae=S,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 H=ye=>{ye.children.sort((Q,Ae)=>Q.type!==Ae.type?Q.type==="directory"?-1:1:Q.name.localeCompare(Ae.name)),ye.children.forEach(H)};return H(S),S}),xe=x(()=>{if(g.value==="/")return ae.value;const S=g.value.split("/").filter(Boolean);let O=ae.value;for(const H of S){const ye=O.children.find(Q=>Q.type==="directory"&&Q.name===H);if(!ye)return ae.value;O=ye}return O}),Re=x(()=>xe.value.children),Me=x(()=>[...Re.value].sort((S,O)=>S.type!==O.type?S.type==="file"?-1:1:S.file&&O.file&&B(S.file)!==B(O.file)?B(S.file)?-1:1:S.name.localeCompare(O.name))),Ee=x(()=>{const S=[],O=(H,ye)=>{for(const Q of H)S.push({node:Q,depth:ye}),Q.type==="directory"&&$.value.has(Q.path)&&O(Q.children,ye+1)};return O(xe.value.children,0),S}),ke=x(()=>{if(m.value==="tree"){const S=g.value!=="/"?[{key:"__up__",kind:"up"}]:[];return S.push(...Ee.value.map(O=>({key:O.node.path,kind:"node",node:O.node}))),S}return Me.value.map(S=>({key:S.path,kind:"node",node:S}))}),ie=x(()=>v.value?s.value.find(S=>S.path===v.value)??null:null),se=x(()=>ie.value?z(ie.value):"plaintext"),me=x(()=>de(ie.value)),pe=x(()=>!!ie.value&&T.value!==null&&P(ie.value)),Fe=x(()=>pe.value&&L.value!==(T.value??"")),fe=x(()=>{const S=ie.value;if(!S)return!1;const O=S.mimeType.toLowerCase();return B(S)||P(S)||O==="application/pdf"||O.startsWith("audio/")||O.startsWith("video/")}),Te=(S,O)=>{if(S.path===O)return S;for(const H of S.children){const ye=Te(H,O);if(ye)return ye}return null},Z=x(()=>{if(!v.value)return null;const S=Te(ae.value,v.value);return S?.type==="directory"?S:null}),ee=x(()=>{const S=g.value.split("/").filter(Boolean),O=[{label:"Files",path:"/"}];let H="";for(const ye of S)H+=`/${ye}`,O.push({label:ye,path:H});return O}),oe=S=>{if(v.value=S.path,S.type==="directory"){g.value=S.path,$.value.add(S.path),$.value=new Set($.value);return}},Oe=S=>{v.value=S.path,$.value.has(S.path)?$.value.delete(S.path):$.value.add(S.path),$.value=new Set($.value)},j=async(S,O={})=>{const H=O.quiet===!0;if(!(Fe.value&&v.value===S.path)&&(H||(T.value=null,A.value=null,L.value=""),!!P(S))){H||(y.value=!0);try{const ye=await Be.getText(E(S));v.value===S.path&&!Fe.value&&(T.value=ye,L.value=ye,A.value=null)}catch(ye){H||(A.value=ze(ye))}finally{H||(y.value=!1)}}},ce=async()=>{!ie.value||!P(ie.value)||Fe.value||await j(ie.value,{quiet:!0})},he=async()=>{!r.threadId||d.value||p.value||(await ue({quiet:!0}),await ce())},Pe=S=>{const O=So(s.value,S);if(!O)return;s.value=O;const H=S?.path;typeof H=="string"&&v.value===N(H)&&ce()},Se=Go({events:{file_moved:S=>{const O=lp(s.value,S),H=S;!O||typeof H?.from!="string"||typeof H.path!="string"||(s.value=O,g.value=to(g.value,H.from,H.path),v.value&&(v.value=to(v.value,H.from,H.path)),$.value=new Set([...$.value].map(ye=>to(ye,H.from,H.path))))},file_created:Pe,file_updated:Pe,file_deleted:S=>{const O=sp(s.value,S);O&&(s.value=O)}},onConnected:()=>{he()}}),ge=S=>{const O=new TextEncoder().encode(S);let H="";for(const ye of O)H+=String.fromCharCode(ye);return btoa(H)},$e=()=>{L.value=T.value??"",k.value=null},_e=async()=>{const S=ie.value;if(!(!S||!r.threadId)){p.value=!0,k.value=null;try{await Be.request(E(S),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:ge(L.value),mimeType:S.mimeType||"text/plain"})}),T.value=L.value,await ue({quiet:!0})}catch(O){k.value=ze(O)}finally{p.value=!1}}},De=async S=>{const O=S.target;if(!(!r.threadId||!O.files?.length)){d.value=!0,f.value=null;try{for(const H of Array.from(O.files)){const ye=g.value==="/"?`/${H.name}`:`${g.value}/${H.name}`;await Be.request(E(ye),{method:"POST",headers:{"Content-Type":H.type||"application/octet-stream"},body:H})}await ue()}catch(H){f.value=ze(H)}finally{d.value=!1,O.value=""}}},Xe=R(new Set);ve(()=>r.threadId,()=>{F=null,g.value=N(r.path||"/"),v.value=null,T.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,S=>{o("count-changed",S.length)},{immediate:!0}),ve(()=>r.refreshKey,()=>{r.threadId&&ue()}),ve(()=>r.active,S=>{S&&!Se.available&&he()});const rt=R(!1),kt=S=>{const O=S.lastIndexOf("/");return O<=0?"/":S.slice(0,O)},At=S=>{const O=S.split("/").filter(Boolean);let H="";$.value.add("/");for(let ye=0;ye<O.length-1;ye++)H+="/"+O[ye],$.value.add(H);$.value=new Set($.value)},Lt=()=>{const S=kt(g.value);g.value=S,v.value=S==="/"?null:S,$.value.add(S),$.value=new Set($.value)},Yt=(S,O)=>{O instanceof HTMLElement?D.value.set(S,O):D.value.delete(S)},on=async S=>{await Qe(),D.value.get(S)?.focus({preventScroll:!0})},wt=S=>{S.kind==="node"&&oe(S.node)},jt=(S,O)=>{const H=ke.value,ye=H.findIndex(Ae=>Ae.key===S);if(ye<0)return;const Q=H[Math.min(H.length-1,Math.max(0,ye+O))];Q&&(wt(Q),on(Q.key))},G=S=>{const O=ke.value,H=S==="start"?O[0]:O[O.length-1];H&&(wt(H),on(H.key))},le=(S,O)=>{if(S.key==="ArrowDown"){S.preventDefault(),jt(O.key,1);return}if(S.key==="ArrowUp"){S.preventDefault(),jt(O.key,-1);return}if(S.key==="Home"){S.preventDefault(),G("start");return}if(S.key==="End"){S.preventDefault(),G("end");return}m.value!=="tree"||O.kind!=="node"||O.node.type!=="directory"||(S.key==="ArrowRight"&&!$.value.has(O.node.path)?(S.preventDefault(),$.value.add(O.node.path),$.value=new Set($.value)):S.key==="ArrowLeft"&&$.value.has(O.node.path)&&(S.preventDefault(),$.value.delete(O.node.path),$.value=new Set($.value)))};return ve([()=>r.path,s],async([S])=>{const O=N(S||"/");let H=s.value.find(Q=>Q.path===O&&!Q.isDirectory);const ye=O!=="/"&&/\.[a-z0-9]+$/i.test(O);if(!H&&ye&&S&&!Xe.value.has(O)&&(Xe.value.add(O),await ue(),H=s.value.find(Q=>Q.path===O&&!Q.isDirectory)),H){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,S=>{S==="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,S=>{if(rt.value){rt.value=!1;return}o("update:path",N(S))}),ve(v,()=>{T.value=null,A.value=null,L.value="",k.value=null}),ve(me,()=>{const S=ie.value;S?j(S):(L.value="",k.value=null,T.value=null,A.value=null)}),ve(Z,()=>{L.value="",k.value=null,T.value=null,A.value=null}),(S,O)=>(l(),K(Yo,{"height-percent":C.value,"onUpdate:heightPercent":O[6]||(O[6]=H=>C.value=H),"storage-key":TN,title:"Resize files and preview"},ar({main:be(()=>[u("div",P7,[u("div",N7,[u("nav",O7,[(l(!0),c(te,null,Ie(ee.value,(H,ye)=>(l(),c(te,{key:H.path},[ye>0?(l(),K(h(Pt),{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=H.path},_(H.label),11,D7)],64))),128))]),u("div",B7,[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(Ai),m.value==="tree"?[h(so),h(lo)]:h(io)]),"aria-label":"Tree view",title:"Tree view",onClick:O[0]||(O[0]=H=>m.value="tree")},[q(h(ym),{size:14})],10,F7),u("button",{type:"button",role:"radio","aria-checked":m.value==="grid",class:J([h(Ai),m.value==="grid"?[h(so),h(lo)]:h(io)]),"aria-label":"Grid view",title:"Grid view",onClick:O[1]||(O[1]=H=>m.value="grid")},[q(h(bm),{size:14})],10,j7)],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]=H=>ue())},[i.value?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(Vo),{key:1,size:15}))],8,q7),u("input",{ref_key:"fileInput",ref:w,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]=H=>w.value?.click())},[d.value?(l(),K(et,{key:0,size:"xs"})):(l(),K(h(xm),{key:1,size:15}))],8,z7)])]),u("div",V7,[e.threadId?i.value?(l(),c("div",U7,[q(et)])):f.value?(l(),c("div",K7,_(h(ze)(f.value)),1)):s.value.length===0?(l(),c("div",W7," No files yet ")):m.value==="tree"?(l(),c("div",G7,[g.value!=="/"?(l(),c("button",{key:0,ref:H=>Yt("__up__",H),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]=H=>le(H,{key:"__up__",kind:"up"}))},[O[7]||(O[7]=u("span",{class:"w-3 shrink-0"},null,-1)),q(h(os),{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,H=>(l(),c("button",{key:H.node.path,ref_for:!0,ref:ye=>Yt(H.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===H.node.path?"agents-surface-selected agents-text-selected":"hover:bg-neutral-100 dark:hover:bg-neutral-800"]),style:nt({paddingLeft:`${8+H.depth*18}px`}),onClick:ye=>H.node.type==="directory"?Oe(H.node):oe(H.node),onDblclick:ye=>H.node.type==="directory"?oe(H.node):void 0,onKeydown:ye=>le(ye,{key:H.node.path,kind:"node",node:H.node})},[H.node.type==="directory"?(l(),K(h(Pt),{key:0,size:12,class:J(["shrink-0 text-neutral-400 transition-transform",$.value.has(H.node.path)?"rotate-90":""])},null,8,["class"])):(l(),c("span",X7)),H.node.type==="directory"?(l(),K(h(os),{key:2,size:15,class:"shrink-0 text-amber-500"})):H.node.file&&B(H.node.file)?(l(),c("span",Y7,[u("img",{src:V(H.node.file),alt:H.node.name,class:"h-full w-full object-cover",loading:"lazy"},null,8,Z7)])):(l(),c("span",Q7,[(l(),K(ct(X(H.node.file)),{size:15,class:"text-neutral-500"}))])),u("span",eN,_(H.node.name),1),H.node.type==="directory"?(l(),c("span",tN,_(I(H.node.children.length)),1)):(l(),c("span",nN,_(Y(H.node.file?.size||0)),1))],46,J7))),128))])):(l(),c("div",rN,[(l(!0),c(te,null,Ie(Me.value,H=>(l(),c("button",{key:H.path,ref_for:!0,ref:ye=>Yt(H.path,ye),type:"button",class:J(["group min-w-0 rounded-lg border p-2 text-left",v.value===H.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(H),onKeydown:ye=>le(ye,{key:H.path,kind:"node",node:H})},[u("div",oN,[H.file&&B(H.file)?(l(),c("img",{key:0,src:V(H.file),alt:H.name,class:"h-full w-full object-cover",loading:"lazy"},null,8,sN)):H.type==="directory"?(l(),K(h(os),{key:1,size:28,class:"text-amber-500"})):(l(),K(ct(X(H.file)),{key:2,size:28,class:"text-neutral-500"}))]),u("div",lN,_(H.name),1),u("div",iN,_(H.type==="directory"?I(H.children.length):Y(H.file?.size||0)),1)],42,aN))),128))])):(l(),c("div",H7," Select a thread to view files "))])])]),_:2},[ie.value||Z.value?{name:"detail",fn:be(()=>[u("div",uN,[u("div",dN,[u("div",cN,[u("div",fN,_(ie.value?.name||Z.value?.name||"Files"),1),u("div",pN,_(ie.value?.path||Z.value?.path),1)]),u("div",hN,[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,mN),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},[q(h(cn),{size:15})])):M("",!0)],64)):M("",!0),ie.value?(l(),c("a",{key:1,href:E(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"},_(fe.value?"Open":"Download"),9,gN)):M("",!0)])]),u("div",{class:J(["min-h-0 flex-1",T.value!==null&&!y.value&&!A.value&&!Z.value&&!B(ie.value)?"flex flex-col overflow-hidden p-3":"overflow-auto p-3"])},[Z.value?(l(),c("dl",vN,[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",yN,_(I(Z.value.children.length)),1),O[13]||(O[13]=u("dt",{class:"text-neutral-500"},"Path",-1)),u("dd",bN,_(Z.value.path),1)])):y.value?(l(),c("div",xN,[q(et)])):A.value?(l(),c("div",kN,_(h(ze)(A.value)),1)):B(ie.value)?(l(),c("img",{key:3,src:E(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,wN)):T.value!==null?(l(),c(te,{key:4},[k.value?(l(),c("div",_N,_(h(ze)(k.value)),1)):M("",!0),pe.value&&h(a)?(l(),K(h(n),{key:1,modelValue:L.value,"onUpdate:modelValue":O[5]||(O[5]=H=>L.value=H),language:se.value,class:"min-h-[12rem] flex-1",framed:!1},null,8,["modelValue","language"])):M("",!0)],64)):ie.value?(l(),c("dl",$N,[O[14]||(O[14]=u("dt",{class:"text-neutral-500"},"Type",-1)),u("dd",IN,_(ie.value.mimeType||"application/octet-stream"),1),O[15]||(O[15]=u("dt",{class:"text-neutral-500"},"Size",-1)),u("dd",SN,_(Y(ie.value.size)),1),O[16]||(O[16]=u("dt",{class:"text-neutral-500"},"Path",-1)),u("dd",CN,_(ie.value.path),1)])):M("",!0)],2)])]),key:"0"}:void 0]),1032,["height-percent"]))}}),AN={class:"flex h-full min-h-0 flex-col overflow-hidden"},LN={class:"flex items-center gap-2 border-b border-neutral-200 px-3 py-2 dark:border-neutral-800"},RN={class:"relative min-w-0 flex-1"},EN={class:"hidden shrink-0 text-xs tabular-nums text-neutral-500 sm:block"},PN=["disabled"],NN=["disabled"],ON={class:"min-h-0 flex-1 overflow-auto"},DN={key:0,class:"py-12 text-center text-sm text-neutral-500"},BN={key:1,class:"flex justify-center py-12"},FN={key:2,class:"py-12 text-center text-sm text-red-600 dark:text-red-400"},jN={key:3,class:"py-12 text-center text-sm text-neutral-500"},qN={key:4,class:"flex min-h-full flex-col"},zN={class:"min-h-0 flex-1 overflow-auto bg-white dark:bg-neutral-950"},VN={class:"w-full min-w-[40rem] table-fixed text-left text-xs"},HN={class:"divide-y divide-(--color-border-subtle)"},UN=["aria-selected","onClick","onKeydown"],KN={class:"min-w-0 px-4 py-2 align-middle"},WN=["title"],GN={class:"min-w-0 px-3 py-2 align-middle"},JN={class:"truncate text-xs text-neutral-500 dark:text-neutral-400"},XN={class:"whitespace-nowrap px-3 py-2 align-middle"},YN={class:"whitespace-nowrap px-3 py-2 text-right align-middle text-xs tabular-nums text-neutral-500 dark:text-neutral-400"},ZN={class:"whitespace-nowrap px-4 py-2 text-right align-middle text-xs text-neutral-500 dark:text-neutral-400"},QN=["disabled"],eO={class:"flex h-full min-h-0 flex-col overflow-hidden"},tO={class:"flex items-center justify-between gap-3 border-b border-neutral-200 px-3 py-2 dark:border-neutral-800"},nO={class:"min-w-0 flex-1"},rO={key:0,class:"flex items-center gap-2"},aO={key:1,class:"mt-1 truncate text-xs text-neutral-500 dark:text-neutral-400"},oO={class:"flex shrink-0 items-center gap-1.5"},sO=["disabled"],lO=["disabled"],iO={class:"flex min-h-0 flex-1 flex-col overflow-hidden p-3"},uO={key:0,class:"mb-3 text-xs text-red-600 dark:text-red-400"},dO="agentbuilder.threads.kvStoreDetailSplitPercent",kd=100,mr=`{
|
|
65
|
+
|
|
66
|
+
}`,cO=we({__name:"ThreadKvStorePane",props:{threadId:{},active:{type:Boolean,default:!0}},emits:["count-changed"],setup(e,{emit:t}){const n=Al(()=>Sl(()=>import("./CodeEditor-xwWkV1-c.js").then(Z=>Z.K),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),r=e,a=li(()=>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),T=R("view"),y=R(""),A=R(mr),L=R(null),k=R(mr),C=R(50),w=R(new Map);let D=null,F=!1,U=0;const N=()=>{typeof document<"u"&&document.visibilityState==="visible"&&fe.onVisible()},E=x(()=>b.value?s.value.find(Z=>Z.key===b.value)??null:null),V=x(()=>s.value.length<i.value),z=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(()=>bs(E.value?.value,E.value?.parseError)),I=x(()=>E.value?.parseError?"text":"json"),B=x(()=>T.value==="create"),W=x(()=>B.value||!!E.value),P=x(()=>W.value&&(y.value!==(L.value??"")||A.value!==k.value)),X=x(()=>!P.value&&E.value?.parseError?E.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(B.value||P.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&&!B.value&&!P.value&&!p.value&&!f.value&&!m.value&&!g.value&&!F}async function ue(Z={}){if(!r.threadId){s.value=[],i.value=0,b.value=null;return}const ee=++U,oe=Z.append===!0,Oe=Z.quiet===!0;Oe&&(F=!0),Oe||(oe?f.value=!0:p.value=!0),Oe||(v.value=null);const j=new URLSearchParams,ce=Math.min(Math.max(s.value.length,kd),200);j.set("limit",String(oe?kd:ce)),j.set("offset",String(oe?s.value.length:0));const he=d.value.trim();he&&j.set("search",he);try{const Pe=await Be.request(He(`/api/threads/${r.threadId}/kv?${j}`)),We=up(await Be.readJson(Pe));return ee!==U?void 0:(s.value=oe?[...s.value,...We.values]:We.values,i.value=We.total,ne(Z.preferredKey),!0)}catch(Pe){return ee===U&&(!Oe||s.value.length===0)&&(v.value=ze(Pe)),!1}finally{Oe&&(F=!1),ee===U&&!Oe&&(p.value=!1,f.value=!1)}}function ae(){D&&clearTimeout(D),D=setTimeout(()=>{ue()},250)}function xe(Z){b.value=Z.key,T.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?w.value.set(Z,ee):w.value.delete(Z)}async function ke(Z){await Qe(),w.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 j=s.value[Oe];j&&(xe(j),ke(j.key))}function se(){b.value=null,L.value=null,k.value=mr,y.value="",A.value=mr,$.value=null,T.value="create"}function me(){if($.value=null,B.value){T.value="view",ne();return}Me(E.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=cC(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:B.value?void 0:L.value})}),L.value=Z,k.value=ee,b.value=Z,T.value="view",await ue({preferredKey:Z})}catch(Oe){$.value=ze(Oe)}finally{m.value=!1}}async function Fe(){if(!r.threadId||!E.value)return;const Z=E.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,T.value="view",Re(),await ue()}catch(ee){v.value=ze(ee)}finally{g.value=!1}}}ve(()=>r.threadId,()=>{d.value="",T.value="view",$.value=null,Re(),ue()},{immediate:!0}),ve(d,ae),ve(i,Z=>{d.value.trim()||o("count-changed",Z)},{immediate:!0}),ve(E,Z=>{B.value||P.value||Me(Z)});const fe=Jp({refresh:async()=>de()?await ue({preferredKey:b.value,quiet:!0}):!1}),Te=Go({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(()=>{D&&clearTimeout(D),fe.cancel(),typeof document<"u"&&document.removeEventListener("visibilitychange",N)}),(Z,ee)=>(l(),K(Yo,{"height-percent":C.value,"onUpdate:heightPercent":ee[6]||(ee[6]=oe=>C.value=oe),"storage-key":dO,title:"Resize key-value browser and detail"},ar({main:be(()=>[u("div",AN,[u("div",LN,[u("div",RN,[q(h(Im),{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",EN,_(z.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(Vo),{key:1,size:15}))],8,PN),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},[q(h(Sm),{size:14}),ee[7]||(ee[7]=u("span",null,"New value",-1))],8,NN)]),u("div",ON,[e.threadId?p.value&&s.value.length===0?(l(),c("div",BN,[q(et)])):v.value?(l(),c("div",FN,_(h(ze)(v.value)),1)):s.value.length===0?(l(),c("div",jN,[q(h(Cm),{class:"mx-auto mb-2 h-8 w-8 opacity-40"}),Ce(" "+_(d.value.trim()?"No matching values":"No stored values"),1)])):(l(),c("div",qN,[u("div",zN,[u("table",VN,[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",HN,[(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",KN,[u("div",{class:"truncate font-mono text-xs font-normal text-neutral-950 dark:text-neutral-100",title:oe.key},_(oe.key),9,WN)]),u("td",GN,[u("div",JN,_(h(fC)(oe.value,oe.parseError)),1)]),u("td",XN,[u("span",{class:J(["font-mono text-xs",re(h(bs)(oe.value,oe.parseError))])},_(h(bs)(oe.value,oe.parseError)),3)]),u("td",YN,_(h(qu)(oe.size)),1),u("td",ZN,_(h(zu)(oe.updatedAt)),1)],42,UN))),128))])])]),V.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,QN)):M("",!0)])):(l(),c("div",DN," Select a thread to view its key-value store "))])])]),_:2},[W.value?{name:"detail",fn:be(()=>[u("div",eO,[u("div",tO,[u("div",nO,[W.value?(l(),c("div",rO,[$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]]),E.value?(l(),c("span",{key:0,class:J(["shrink-0 font-mono text-xs",re(Y.value)])},_(Y.value),3)):M("",!0)])):M("",!0),E.value?(l(),c("div",aO,_(h(qu)(E.value.size))+" · Updated "+_(h(zu)(E.value.updatedAt)),1)):M("",!0)]),u("div",oO,[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||!P.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,sO),P.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},[q(h(cn),{size:15})])):M("",!0),E.value?(l(),K(Ca,{key:1,content:A.value,variant:"ghost",size:"xs"},null,8,["content"])):M("",!0),E.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,lO)):M("",!0)],64)):M("",!0)])]),u("div",iO,[$.value?(l(),c("div",uO,_(h(ze)($.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:I.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"]))}}),fO=["onClick"],pO=["value","placeholder","disabled"],hO=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(_(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"},[q(h(cn),{size:12})],8,fO))]))),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,pO)],2))}}),mO={class:"thread-basic-info space-y-3"},gO={class:"text-xs text-neutral-500 dark:text-neutral-400"},vO=["title"],yO={class:"flex-1 truncate font-mono text-xs text-neutral-600 dark:text-neutral-400"},bO={class:"thread-basic-info-row flex items-center gap-3"},xO={class:"thread-basic-info-control flex min-w-0 flex-1 items-center gap-3"},kO={key:1,class:"text-sm text-neutral-800 dark:text-neutral-200"},wO={key:2,class:"shrink-0 text-xs text-neutral-500 dark:text-neutral-400"},_O={class:"thread-basic-info-row flex items-start gap-3"},$O=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",mO,[u("div",gO," Created "+_(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",yO,_(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(Tm),{key:0,size:14})):(l(),K(h(Mm),{key:1,size:14}))],2)],8,vO),u("div",bO,[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",xO,[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",kO,_(e.thread.agent.title),1)),h(Os)(e.thread.agent.side_a_backing,e.thread.agent.side_b_backing)?(l(),c("span",wO,_(h(Os)(e.thread.agent.side_a_backing,e.thread.agent.side_b_backing)),1)):M("",!0)])]),u("div",_O,[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)),q(hO,{"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"])])])}}}),IO=ot($O,[["__scopeId","data-v-a18073eb"]]),SO={class:"thread-dev-tools space-y-3"},CO=["aria-expanded"],TO={key:0,class:"space-y-4"},MO={class:"space-y-1.5"},AO={class:"thread-dev-tools-action-row flex items-center gap-2"},LO=["value"],RO=["disabled"],EO=["disabled"],PO=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",SO,[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)),q(h(Tl),{size:16,class:J(["shrink-0 text-neutral-400 transition-transform duration-150",{"-rotate-180":e.expanded}])},null,8,["class"])],8,CO),q(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",TO,[u("div",MO,[u("div",AO,[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,LO)):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"},[q(h(ho),{size:14}),u("span",null,_(e.isContinuing?"Running…":"Continue"),1)],8,RO)]),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"},[q(h(mo),{size:14}),u("span",null,_(e.isDeleting?"Deleting…":"Delete thread"),1)],8,EO)])):M("",!0)]),_:1})]))}}),NO=ot(PO,[["__scopeId","data-v-188fdd71"]]),OO=new Set(["healthy","observing","recovered","parked","idle","unreachable"]);function DO(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"&&OO.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 BO(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 FO(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 jO(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 qO={class:"space-y-3"},zO={class:"flex items-center gap-2"},VO={key:0,class:"inline-flex items-center gap-1.5 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:"text-xs text-neutral-500 dark:text-neutral-400"},KO={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},WO={key:1,class:"space-y-1"},GO=["title"],JO={class:"shrink-0 font-mono tabular-nums text-neutral-500 dark:text-neutral-400"},XO={class:"min-w-0 truncate text-neutral-600 dark:text-neutral-300"},YO={class:"space-y-1.5"},ZO=["disabled"],QO={key:2,class:"text-xs text-red-600 dark:text-red-400"},e9=5,t9=we({__name:"ThreadWatchdogCard",props:{watchdog:{},isChecking:{type:Boolean},checkError:{}},emits:["runCheck"],setup(e,{emit:t}){const n=t;return(r,a)=>(l(),c("section",qO,[u("div",zO,[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",VO,[e.watchdog.armed?(l(),K(Nr,{key:0})):M("",!0),Ce(" "+_(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",KO," No check-ins yet. The watchdog arms when the thread runs. ")):(l(),c("ul",WO,[(l(!0),c(te,null,Ie(e.watchdog.checkins.slice(0,e9),o=>(l(),c("li",{key:o.at,class:"flex items-baseline gap-3 text-xs",title:o.error},[u("span",JO,_(h(jO)(o.at)),1),u("span",{class:J(["shrink-0 font-medium",h(FO)(o.verdict)])},_(h(BO)(o.verdict)),3),u("span",XO,_(o.action),1)],8,GO))),128))])),u("div",YO,[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"},[q(h(Vo),{size:14,class:J({"animate-spin":e.isChecking})},null,8,["class"]),u("span",null,_(e.isChecking?"Checking…":"Run check now"),1)],8,ZO),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",QO,_(h(ze)(e.checkError)),1)):M("",!0)],64)):(l(),c("p",UO," Not available on this deployment (requires builder 0.26+). ")):(l(),c("p",HO," Loading watchdog state… "))]))}}),n9={key:0,class:"thread-settings-pane h-full overflow-y-auto"},r9={class:"thread-settings-layout grid grid-cols-1 gap-x-10 gap-y-8 p-4"},a9={key:0,class:"flex justify-center py-6"},o9={key:1,class:"py-4 text-center text-xs text-red-600 dark:text-red-400"},s9={class:"thread-settings-variables space-y-3"},l9={key:0,class:"text-xs text-neutral-500 dark:text-neutral-400"},i9={key:1,class:"space-y-2"},u9={class:"thread-settings-variable-name flex min-w-0 items-baseline gap-2"},d9=["title"],c9={key:0,class:"shrink-0 text-xs text-neutral-500 dark:text-neutral-400"},f9=["disabled","onClick","title"],p9=["disabled","onClick"],h9={key:1,class:"h-7 w-7"},m9={class:"mt-2 space-y-2"},g9=["disabled","onClick","title"],v9=["disabled","onClick"],y9={class:"flex items-center justify-between gap-2 pt-1"},b9=["disabled"],x9=["disabled"],k9={key:1},w9={key:0,class:"text-xs text-red-600 dark:text-red-400"},wd="**********",_9=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}=Do(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),T=R("a"),y=R(!1),A=R(!1);let L=null,k=0;const C=()=>({id:`new-env-${k++}`,name:"",value:"",secret:!0}),w=R([]),D=R({}),F=R({}),U=R({}),N=R({}),E=R({}),V=R([C()]),z=R(null),Y=R(null),I=R(null),B=R(""),W=R([]),P=R(!1),X=(Se,ge)=>{Pl(ge?{error:Se,fieldErrors:ge}:{error:Se},I)||(Y.value=Se)},re=x(()=>d.value?d.value.filter(Se=>qs(Se)).map(Se=>({value:Se.id,label:Se.title})):[]),ne=x(()=>a.value?qs(a.value.agent):!1),de=x(()=>a.value?Dh(a.value.agent):!1),ue=x(()=>w.value.filter(Se=>!E.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{B.value=a.value?.agent.id||""}finally{g.value=!1}}},Re=async Se=>{if(n.threadId){W.value=Se,P.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,P.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?wd:_e.value??"",$e[_e.property]=_e.type==="secret";D.value=ge,F.value=$e,U.value={},N.value={},E.value={}},me=Se=>{F.value={...F.value,[Se]:!F.value[Se]},N.value={...N.value,[Se]:!0}},pe=Se=>{U.value={...U.value,[Se]:!0}},Fe=Se=>{E.value={...E.value,[Se]:!0},Y.value=null,Bt(I)},fe=()=>{V.value=[...V.value,C()]},Te=Se=>{const ge=V.value.filter($e=>$e.id!==Se);V.value=ge.length>0?ge:[C()]},Z=async()=>{if(!n.threadId||!a.value?.agent?.id){w.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);w.value=ge.variables||[],se(w.value)}catch{w.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(z.value)return;const Se={},ge={},$e=Object.keys(E.value).filter(De=>E.value[De]);for(const De of ue.value){if(!U.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=D.value[De.property]??"";Xe!==wd&&(Se[De.property]=Xe),(N.value[De.property]||U.value[De.property])&&(ge[De.property]=F.value[De.property]?"secret":"text")}const _e=new Set;for(const De of V.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}z.value="__all__";try{await ee(Se,$e,ge),V.value=[C()]}catch(De){X(ze(De))}finally{z.value=null}},Oe=R(null),j=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=DO(ge?.watchdog??null)}catch{Oe.value={available:!1,armed:!1,checkins:[]}}},Pe=async()=>{if(!(!n.threadId||j.value)){j.value=!0,ce.value=null;try{await Be.request(He(`/api/threads/${n.threadId}/revive`),{method:"POST"})}catch(Se){ce.value=ze(Se)}finally{j.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:T.value})})}catch{T.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&&(B.value=Se.agent.id,P.value||(W.value=Se.tags||[]))},{immediate:!0}),ve(()=>n.show,Se=>{Se?(Z(),he(),Me()):($.value=!1,w.value=[],D.value={},F.value={},U.value={},N.value={},E.value={},V.value=[C()],Y.value=null,Bt(I),A.value=!1,Oe.value=null,ce.value=null)},{immediate:!0}),ve(()=>n.threadId,()=>{$.value=!1,w.value=[],D.value={},F.value={},U.value={},N.value={},E.value={},V.value=[C()],Y.value=null,Bt(I),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",n9,[u("div",r9,[h(o)?(l(),c("div",a9,[q(et)])):h(s)?(l(),c("div",o9,_(h(ze)(h(s))),1)):h(a)?(l(),c(te,{key:2},[q(IO,{thread:h(a),"copied-id":y.value,"can-change-agent":ne.value,"local-agent-id":B.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",s9,[ge[5]||(ge[5]=u("h3",{class:"text-sm font-medium text-neutral-900 dark:text-neutral-100"},"Variables",-1)),q($e,{type:"form",id:"thread-variable-form",actions:!1,disabled:z.value!==null,onSubmit:oe,onNode:ge[0]||(ge[0]=_e=>I.value=_e),"form-class":"$reset"},{default:be(()=>[q(h(Sa),{node:I.value||void 0},null,8,["node"]),A.value?(l(),c("div",l9," Loading variables… ")):M("",!0),!A.value&&ue.value.length>0?(l(),c("div",i9,[(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",u9,[u("span",{class:"truncate font-mono text-xs text-neutral-800 dark:text-neutral-200",title:`${_e.property} (${Ee(_e)})`},_(_e.property),9,d9),_e.required?(l(),c("span",c9," Required ")):M("",!0)]),q($e,{type:F.value[_e.property]?"password":"text",name:`env_${_e.property}`,modelValue:D.value[_e.property],"onUpdate:modelValue":De=>D.value[_e.property]=De,placeholder:"Value",disabled:z.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",F.value[_e.property]?"text-neutral-950 dark:text-neutral-50":"text-neutral-300 dark:text-neutral-600"]),disabled:z.value!==null,onClick:De=>me(_e.property),title:F.value[_e.property]?"Treat as secret":"Treat as text"},[F.value[_e.property]?(l(),K(h(Ei),{key:0,size:13})):(l(),K(h(Pi),{key:1,size:13}))],10,f9),_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:z.value!==null,onClick:De=>Fe(_e.property),title:"Remove variable"},[q(h(mo),{size:13})],8,p9)):(l(),c("div",h9))]))),128))])):M("",!0),u("div",m9,[(l(!0),c(te,null,Ie(V.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"},[q($e,{type:"text",name:`${_e.id}_name`,modelValue:_e.name,"onUpdate:modelValue":De=>_e.name=De,placeholder:"NAME",disabled:z.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"]),q($e,{type:_e.secret?"password":"text",name:`${_e.id}_value`,modelValue:_e.value,"onUpdate:modelValue":De=>_e.value=De,placeholder:"Value",disabled:z.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:z.value!==null,onClick:De=>_e.secret=!_e.secret,title:_e.secret?"Treat as secret":"Treat as text"},[_e.secret?(l(),K(h(Ei),{key:0,size:13})):(l(),K(h(Pi),{key:1,size:13}))],10,g9),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:z.value!==null,onClick:De=>Te(_e.id),title:"Remove row"},[q(h(mo),{size:13})],8,v9)]))),128)),u("div",y9,[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:z.value!==null,onClick:fe}," Add variable ",8,b9),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:z.value!==null},[z.value==="__all__"?(l(),K(et,{key:0,size:"xs"})):(l(),c("span",k9,"Save variables"))],8,x9)]),Y.value?(l(),c("p",w9,_(h(ze)(Y.value)),1)):M("",!0)])]),_:1},8,["disabled"])]),q(t9,{watchdog:Oe.value,"is-checking":j.value,"check-error":ce.value,onRunCheck:Pe},null,8,["watchdog","is-checking","check-error"]),q(NO,{expanded:$.value,"show-side-selector":de.value,"selected-side":T.value,"is-continuing":b.value,"is-deleting":m.value,onToggle:ge[1]||(ge[1]=_e=>$.value=!$.value),onUpdateSelectedSide:ge[2]||(ge[2]=_e=>T.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)]),q(Um,{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)}}}),$9=ot(_9,[["__scopeId","data-v-9ba43a04"]]),I9=["y2"],S9=["d"],C9=["transform"],T9=["width","height"],M9=["x","y"],gr=3.5,A9=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,I9),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,S9)):(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,T9),(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,M9))),128))],8,C9))]))}}),ii=ot(A9,[["__scopeId","data-v-ef4c591c"]]),L9={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function R9(e,t){return l(),c("svg",L9,[...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 E9=Ye({name:"lucide-scroll-text",render:R9}),P9=new Set(["function","subprompt","subagent","handoff","provider-tool"]);function N9(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&&P9.has(t)?t:"function";case"reply":return t==="person"?"person":"prompt"}}function Xp(e,t){return e==="runtime"?oo:e==="app"?E9:xf[N9(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 O9(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 Ts(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 Eo(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 Po(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 D9(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=Po(t,e);let f=Po(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 B9(e){let t=0;for(let n=1;n<e.length;n++)t+=il(e[n-1],e[n]);return t}function F9(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 _d=new WeakMap;function Qo(e){const t=_d.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=B9(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=>O9(g,p,f)),...e.frames.flatMap(g=>F9(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)=>Po(p.point,i)-Po(f.point,i));d.length<2||d.forEach((p,f)=>{const m=d[(f+1)%d.length];a(D9(i,p.point,m.point),null,!1)})}return _d.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 j9(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 j9(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 ui(e,t){return e.frames.filter(n=>n.kind!=="agent"&&!t.scopeIds.includes(n.ownerId))}function di(e,t){let n=null;for(const r of t)Eo(e,r)&&(!n||r.width*r.height>n.width*n.height)&&(n=r);return n}function q9(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 es=new Set(["side","person","handler"]),Id=(e,t)=>e.x>=t.x&&e.x<=t.x+t.width&&e.y>=t.y&&e.y<=t.y+t.height;function z9(e,t,n){const r=new Set(n),a=s=>t.some(i=>Eo(s,i)),o=s=>t.some(i=>Id(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=>Id(d,i)))&&r.add(s.id);return e.junctions.forEach((s,i)=>{o(s)&&r.add(Cf(i))}),r}function Yp(e,t){if(t.kind==="trigger")return[];const{components:n}=Qo(e);return t.containerIds.filter(r=>es.has(n.get(r)?.kind??""))}function V9(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=Qo(t),i=ui(s,e),d=y=>{const A=s.components.get(y);return A?di(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&&es.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))],T=z9(t,b,[...r.keys(),...o.keys()]);for(const y of H9(t,e,b))T.add(y);return{components:r,wires:a,frames:o,pills:new Map,focus:T}}function H9(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=>Eo(o,a))).map(a=>a.id),...e.frames.filter(a=>n.some(o=>Eo(o,a))).map(a=>a.id)]}function Zp(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),U9=(e,t)=>Gt(e,t)<.5;function K9(e,t){const n=t.containerId?e.components.get(t.containerId):void 0;return n&&es.has(n.kind)?n:null}const Sd=new WeakMap;function W9(e,t){const n=Sd.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 Sd.set(e,r),r}function Cd(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 G9(e,t){let n=0;for(const r of e){if(r.length===1&&Cd(r[0],r[0],t)!==null)return n;for(let a=1;a<r.length;a++){const o=Cd(r[a-1],r[a],t);if(o!==null)return n+o;n+=Gt(r[a-1],r[a])}}return null}function J9(e,t,n){const r=[],a=[],o=[];if(!e||!n)return{segments:r,cues:a,breaks:o};const s=Qo(e),i=ui(s,n),d=e.components.filter(I=>es.has(I.kind)),p=e.hops;let f=0;const m=W9(e,s),g=I=>di(I,i)??K9(s,I),v=I=>{const B=m.get(I.id);return B&&B[0]!==I?B:null},$=I=>g(I)??v(I)?.[0]??null,b=I=>{const B=g(I);if(B)return s.framePorts.get(B.id)??s.ports.get(B.id)??[];const W=v(I);return W?W.flatMap(P=>s.ports.get(P.id)??[]):q9(s,I)},T=I=>{const B=g(I);return B?[B]:v(I)??[I]};let y=[];const A=t?.componentId?s.components.get(t.componentId):void 0,L=t?.point?d.some(I=>Ts(t.point,I)):!1;t?.point&&s.nodes.has(Vn(t.point))&&!L?y=[Vn(t.point)]:A&&(y=b(A));let k=t?.componentId??null,C=y.length>0;const w=I=>{r.length===0&&r.push([]);const B=r[r.length-1];for(const W of I){const P=B[B.length-1];if(P&&U9(P,W))continue;const X=P?Js([P,W],p).slice(1):[W];for(const re of X){const ne=B[B.length-1];ne&&(f+=Gt(ne,re)),B.push(re)}}},D=I=>{I.kind==="component"?a.push({at:f,hookId:null,ordinal:I.ordinal,step:null,componentId:I.id}):(I.kind==="hook"||I.ordinal!==null)&&a.push({at:f,hookId:I.kind==="hook"?I.id:null,ordinal:I.ordinal,step:null})},F=I=>{const B=[...i,...d],W=B.filter(P=>I.some(X=>{const re=s.nodes.get(X);return re?Ts(re,P):!1}));return P=>{const X=s.nodes.get(P);return!!(X&&B.some(re=>!W.includes(re)&&Ts(X,re)))}},U=(I,B)=>{o.push({from:k,to:I.id,reason:B}),I.ordinal!==null&&a.push({at:f,hookId:I.kind==="hook"?I.id:null,ordinal:I.ordinal,step:null})},N=(I,B,W)=>{o.push({from:k,to:I.id,reason:B});const P=r.length===0?s.nodes.get(y[0]??""):void 0;P&&w([P]),r.push(W?[W]:[])};let E=null;const V=new Set;for(const[I,B]of n.stops.entries()){if(V.has(I))continue;let W,P;if(B.kind==="wire"){const de=e.wires.find(me=>me.id===B.id),ue=de?Js(B.reverse?[...de.points].reverse():de.points,p):[];if(!de||ue.length===0){U(B,"undrawn-wire");continue}const ae=y.length===1?s.nodes.get(y[0]):void 0,xe=ae?Ms(ue,ae):null,Re=xe!==null&&xe>.5&&xe<nr([ue])-.5?xe:null,Me=ae&&Re!==null?[ae,...ue.filter(me=>(Ms(ue,me)??0)>Re)]:ue,Ee=Vn(Me[0]),ke=y.length>0&&!y.includes(Ee)?dl(s,y,me=>me===Ee,{blocked:F(y)}):null;ke?w(ke.points):C&&!y.includes(Ee)&&N(B,"no-route",null);const ie=Re??0,se=f-ie;w(Me),y=[Vn(ue[ue.length-1])],E=null,C=!0,k=B.id,a.push({at:f,hookId:null,ordinal:B.ordinal,step:null,wireId:B.id}),n.stops.forEach((me,pe)=>{if(pe<=I||me.kind!=="hook")return;const Fe=cl(s,me.id)?.keys??[],fe=s.nodes.get(Fe[Fe.length-1]??""),Te=fe?Ms(ue,fe):null;Te===null||Te<ie||(V.add(pe),a.push({at:se+Te,hookId:me.id,ordinal:me.ordinal,step:null}))});continue}const X=B.kind==="hook"?s.components.get(B.id):void 0,re=B.kind==="hook"?cl(s,B.id)?.keys??[]:[];if(B.kind==="hook"&&re.length>0){const de=re[re.length-1];W=[de],P=s.nodes.get(de)??null,E=null}else if(B.kind==="hook"&&!X){U(B,"undrawn-part");continue}else{const de=X??s.components.get(B.id);if(!de){U(B,"undrawn-part");continue}const ue=$(de);if(ue&&ue.id===E){k=B.id,D(B);continue}E=ue?.id??de.id,W=b(de),P=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(!C)y=W,y.length===0&&(o.push({from:k,to:B.id,reason:"no-port"}),P&&w([P]));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:F(y)}):null;de?(w(de.points),y=[de.keys[de.keys.length-1]]):(N(B,W.length===0?"no-port":"no-route",W.length>0?s.nodes.get(W[0])??P:P),y=W.slice(0,1))}C=!0,k=B.id,D(B)}if(r.length===0&&y.length>0){const I=s.nodes.get(y[0]);I&&r.push([I])}const z=new Set(a.flatMap(I=>I.componentId?[I.componentId]:[])),Y=[];for(const I of[...n.route,...Yp(e,n)]){const B=s.components.get(I);if(!B||z.has(I))continue;z.add(I);const W=T(B).flatMap(P=>G9(r,P)??[]);W.length>0&&Y.push({at:Math.min(...W),hookId:null,ordinal:null,step:null,componentId:I})}return{segments:r,cues:[...Y,...a].sort(Zp),breaks:o}}function Ms(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 As(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 X9(e,t){if(!e)return[];const n=e.wires.filter(s=>s.style==="subagent").map(s=>Js(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 Td(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=T=>{const y=(T-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 Y9(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 Z9(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 ci(e,t,n){const r=Qo(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?di(s,ui(r,t))??s:null}const No="✕",Q9=3;function eD(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<=Q9)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?`${No} +${r.length-1}`:No,failed:!0}),a}function tD(e){const t=e.counts.map(n=>n.failed?`${No} (failed)`:`${n.count}`);return`${e.counts.length===1?"Action":"Actions"} ${t.join(", ")}`}const nD=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y)<.5;function rD(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=J9(e,g,f);for(const[b,T]of v.segments.entries()){const y=n[n.length-1],A=y?.[y.length-1];b===0&&A&&T[0]&&nD(A,T[0])?y.push(...T.slice(1)):T.length>0&&(b===0&&A&&o.push({from:g?.componentId??null,to:f.stops[0]?.id??f.id,reason:"no-route"}),n.push([...T]))}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(Zp),{segments:n,cues:r,actions:lD(t,a,r,nr(n)),offsets:a,breaks:o}}function aD(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 oD(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 sD(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 Qp(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 Qp(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 lD(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 iD(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=ci(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 uD(e,t){return e?t.filter(n=>n.action.kind!=="app"&&!ci(e,n.step,n.action)):[]}function dD(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 cD(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 fD=new Set(["tool","provider-tool","invoke"]);function pD(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=>fD.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 hD={class:"relative col-span-2 grid grid-cols-subgrid"},mD={key:0,"aria-hidden":"true",class:"pointer-events-none absolute inset-y-0 left-[34px] border-l border-neutral-200 dark:border-neutral-700"},gD=["aria-current"],vD={class:"flex h-4 items-center justify-center tabular-nums text-neutral-400"},yD=["viewBox"],bD={key:1,class:"font-semibold text-red-600 dark:text-red-300"},xD=["title"],kD={class:"sr-only"},wD={class:"flex min-w-0 flex-col"},_D=["title"],$D={key:0,class:"flex min-w-0 flex-wrap items-baseline gap-x-2 text-[11px] text-neutral-400"},ID={key:0,"aria-hidden":"true"},SD=["title"],CD={key:2,class:"whitespace-nowrap"},TD={key:3,class:"text-red-600 dark:text-red-300"},MD={key:4},AD=["title"],Md=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(()=>Xp(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",hD,[e.nested?(l(),c("span",mD)):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",vD,[i.value==="start"||i.value==="finish"?(l(),c("svg",{key:0,width:"14",height:"16",viewBox:o[i.value],"aria-hidden":"true"},[q(ii,{kind:i.value},null,8,["kind"])],8,yD)):i.value==="failed"?(l(),c("span",bD,_(h(No)),1)):(l(),c(te,{key:2},[Ce(_(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,xD),u("span",kD,_(a[s.value.kind]),1),u("span",wD,[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},_(s.value.name),11,_D),m.value?(l(),c("span",$D,[f.value?(l(),c("span",ID,"reply")):M("",!0),s.value.detail?(l(),c("span",{key:1,class:"min-w-0 max-w-full truncate",title:s.value.detail},_(s.value.detail),9,SD)):M("",!0),s.value.attempt?(l(),c("span",CD,"attempt "+_(s.value.attempt),1)):M("",!0),d.value?(l(),c("span",TD,"failed")):s.value.status==="running"?(l(),c("span",MD,"running")):M("",!0),e.subagent?(l(),c("span",{key:5,class:"min-w-0 max-w-full truncate",title:e.subagent},_(e.subagent),9,AD)):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 "+_(e.stop.code),3)):M("",!0)])):M("",!0)])],2)],42,gD)]))}});function e0(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 t0(e,t){const n=e0(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 LD(e,t){const{cues:n}=e,r=nr(e.segments),a=t0(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 Ad(e,t){let n=0;for(;n<e.length&&e[n].stopCue<=t;)n++;return n}function RD(e,t){return!Number.isFinite(e)||t<=0?0:Math.min(t,Math.max(0,Math.round(e*t)))}function ED(e,t){const n=e0(e),r=new Map;t0(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 PD(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 Ld(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 ND={key:0,class:"col-span-2 grid grid-cols-subgrid pb-1"},OD=["title"],DD={class:"truncate font-medium text-neutral-700 dark:text-neutral-200"},BD={key:1,class:"col-span-2 grid grid-cols-subgrid"},FD=["aria-current"],jD={class:"flex h-4 items-center justify-center"},qD={class:"flex min-w-0 flex-wrap gap-x-1.5"},zD={class:"whitespace-nowrap"},VD={class:"min-w-0 break-words text-neutral-700 dark:text-neutral-200"},HD=["title"],UD={class:"col-start-2 flex min-w-0 items-start gap-1.5 pl-5"},KD={key:1,class:"flex h-4 shrink-0 items-center"},WD={class:"flex min-w-0 flex-col"},GD={class:"flex min-w-0 items-baseline gap-1.5"},JD={class:"truncate font-medium text-neutral-700 dark:text-neutral-200"},XD={class:"shrink-0 text-[11px] text-neutral-400"},YD=["title"],ZD="-14.5 -19.5 16 20",QD=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 T=b.agent??b.label;return n.faces.get(T)??{name:T,title:T,icon:null}}const o=x(()=>n.rows.map(b=>{const T=PD(b);return{row:b,group:T,face:T?.kind==="subagent"?a(T):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(T=>T.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 T=n.includeNested?b.children.find(y=>y.step===n.position):void 0;if(T)return T;if(b.step===n.position)return b}return null}),m=b=>f.value===b,g=new Map,v=(b,T)=>{const y=T instanceof Element?T:T?.$el;y instanceof Element?g.set(b,y):g.delete(b)},$=zo();return ve(f,async b=>{b&&(await Qe(),g.get(b.entry.ordinal)?.scrollIntoView({block:"nearest",behavior:$.value==="reduce"?"auto":"smooth"}))},{immediate:!0}),(b,T)=>(l(),c("ol",{class:"mt-0.5 grid grid-cols-[20px_minmax(0,1fr)] gap-x-2",onMouseleave:T[5]||(T[5]=y=>r("hover",null))},[e.agent?(l(),c("li",ND,[u("span",{class:"col-start-2 flex min-w-0 items-center gap-1.5",title:e.agent.name},[q(Li,{icon:e.agent.icon,seed:e.agent.name,class:"size-4 rounded"},null,8,["icon","seed"]),u("span",DD,_(e.agent.title),1)],8,OD)])):M("",!0),p.value?(l(),c("li",BD,[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:T[0]||(T[0]=y=>r("select",0,null))},[u("span",jD,[(l(),c("svg",{width:"14",height:"16",viewBox:ZD,"aria-hidden":"true"},[q(ii,{kind:"start"})]))]),u("span",qD,[u("span",zD,_(e.leadIn?.verb),1),u("span",VD,_(e.leadIn?.label),1)])],10,FD)])):M("",!0),(l(!0),c(te,null,Ie(o.value,({row:y,group:A,face:L})=>(l(),c(te,{key:y.entry.ordinal},[q(Md,{ref_for:!0,ref:k=>v(y.entry.ordinal,k),row:y,active:m(y),nested:!1,part:s(y),subagent:h(Ld)(y,null),stop:d(y),onSelect:T[1]||(T[1]=(k,C)=>r("select",k,C)),onHover:T[2]||(T[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},[T[6]||(T[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",UD,[L?(l(),K(Li,{key:0,icon:L.icon,seed:L.name,class:"size-4 rounded"},null,8,["icon","seed"])):(l(),c("span",KD,[(l(),K(ct(h(Xp)(y.entry.action.kind,s(y))),{class:"size-3.5 text-neutral-400 dark:text-neutral-500","aria-hidden":"true"}))])),u("span",WD,[u("span",GD,[u("span",JD,[A.kind==="nested"?(l(),c(te,{key:0},[Ce("nested in ")],64)):M("",!0),Ce(_(A.label),1)]),u("span",XD,_(A.count)+" "+_(A.count===1?"step":"steps"),1)]),A.instance?(l(),c("span",{key:0,class:"truncate text-[11px] text-neutral-400",title:A.instance},_(A.instance),9,YD)):M("",!0)])])],8,HD)):M("",!0),e.includeNested?(l(!0),c(te,{key:1},Ie(y.children,k=>(l(),K(Md,{key:k.entry.ordinal,ref_for:!0,ref:C=>v(k.entry.ordinal,C),row:k,active:m(k),nested:!0,part:s(k),subagent:h(Ld)(k,A),stop:d(k),onSelect:T[3]||(T[3]=(C,w)=>r("select",C,w)),onHover:T[4]||(T[4]=C=>r("hover",C))},null,8,["row","active","part","subagent","stop"]))),128)):M("",!0)],64))),128))],32))}}),eB=["aria-valuemax","aria-valuenow","aria-valuetext","aria-disabled"],tB=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:RD(($-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 T={ArrowLeft:n.position-1,ArrowDown:n.position-1,ArrowRight:n.position+1,ArrowUp:n.position+1,Home:0,End:n.count}[$.key];T===void 0||n.disabled||($.preventDefault(),p(Math.min(n.count,Math.max(0,T))))}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,T=>(l(),c("span",{key:T,class:J(["absolute top-1/2 h-2 w-px -translate-x-1/2 -translate-y-1/2",T<=e.position?"bg-accent-700 dark:bg-accent-300":"bg-neutral-400 dark:bg-neutral-500"]),style:nt({left:`${s(T)}%`}),"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,eB))}}),nB={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"},rB=["disabled"],aB=["disabled"],oB=["disabled","title","aria-label","data-state"],sB=["disabled"],lB=["disabled"],iB={class:"w-12 shrink-0 text-right text-[11.5px] tabular-nums text-neutral-500 dark:text-neutral-400"},uB=["disabled"],dB=["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",cB=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",nB,[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"))},[q(h(Am),{size:16})],8,rB),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"))},[q(h(xc),{size:16})],8,aB),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(Lm),{key:1,size:14})):(l(),K(h(ho),{key:2,size:14}))],8,oB),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"))},[q(h(Pt),{size:16})],8,sB),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"))},[q(h(Rm),{size:16})],8,lB),q(tB,{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",iB,_(e.position)+" / "+_(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"))},[q(h(Em),{size:16})],8,uB),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"))},[q(h(Pm),{size:16})],8,dB),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)),q(Bi,{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"]),q(Bi,{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"])]))}}),fB={class:"trace-badges","aria-hidden":"true","pointer-events":"none"},pB=["x","y","width","height"],hB=["transform"],mB=["transform"],gB=["width","height","rx"],vB=["x","y"],yB=we({__name:"TraceBadges",props:{badges:{},focus:{},ring:{}},setup(e){const t=e,n=h_,r=Un,a=Un/2,o=Un,s=br+o,i=p=>Math.max(n,Math.round(p.length*M_+r*2)),d=x(()=>t.badges.map(p=>{const f=eD(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:tD(p),x:Math.round(p.x-g/2),y:Math.round(p.y-n/2),pills:f.map(($,b)=>{const T={...$,x:v,width:m[b]};return v+=m[b]+a,T})}}));return(p,f)=>(l(),c("g",fB,[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,pB)):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,_(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,gB),u("text",{class:"trace-badge-text",x:g.width/2,y:h(n)/2,"text-anchor":"middle","dominant-baseline":"central"},_(g.text),9,vB)],10,mB))),128))],8,hB))),128))]))}}),bB=ot(yB,[["__scopeId","data-v-b6150f8a"]]),xB={"aria-hidden":"true","pointer-events":"none"},Rd=14,kB=we({__name:"TraceFlags",props:{flags:{}},setup(e){const t={start:"left",finish:"right"};function n(r){const a=(r.lean==="left"?-Rd:Rd)*(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",xB,[(l(!0),c(te,null,Ie(e.flags,o=>(l(),K(ii,{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 Ed(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 wB(e,t){if(!e||t.length===0)return[];const n=[];e.junctions.forEach((r,a)=>{const o=Ed(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=Ed(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 _B=(e,t)=>e.at<=t+.01,$B={"aria-hidden":"true","pointer-events":"none"},IB=["cx","cy"],SB=["transform"],CB=480,TB=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=zo();let m=0,g=0,v=-1,$=null;function b(w){w&&(a.value?.setAttribute("transform",`translate(${w.x} ${w.y})`),r("move",w))}const T=w=>w.map(D=>D.map((F,U)=>`${U===0?"M":"L"}${F.x} ${F.y}`).join(" ")).join(" "),y=(w,D)=>w.some(([F,U])=>D>=F&&D<=U);function A(w){const D=[...w.dashed,...w.retried].flat().filter(Y=>Y>0&&Y<g),F=[...new Set([0,...D,g])].sort((Y,I)=>Y-I),U=new Map([[o.value,[]],[s.value,[]],[i.value,[]],[d.value,[]]]);let N=0,E=null;const V=Y=>{Y>N&&U.get(E)?.push(...Td(w.segments,N,Y)),N=Y};for(let Y=1;Y<F.length;Y++){const I=(F[Y-1]+F[Y])/2,B=y(w.dashed,I),W=y(w.retried,I)?B?d.value:i.value:B?s.value:o.value;W!==E&&V(F[Y-1]),E=W}V(g),g===0&&U.get(o.value)?.push(...Td(w.segments,0,0));for(const[Y,I]of U)Y?.setAttribute("d",T(I));const z=p.value?.children??[];w.marks.forEach((Y,I)=>z[I]?.setAttribute("visibility",_B(Y,g)?"visible":"hidden"))}function L(w,D){for(;v<D&&v+1<w.cues.length&&w.cues[v+1].at<=g+.01;)v+=1,r("cue",v)}function k(w,D){if(cancelAnimationFrame(m),g=D.to,b(As(w.segments,g)),D.instant)v=D.toCue;else for(;v<D.toCue;)v+=1,r("cue",v);A(w),r("arrive",D.id)}function C(w){cancelAnimationFrame(m);const D=n.motion;if(!D||!w)return;D.key!==$&&($=D.key,g=0,v=-1),w.from!==null&&(g=w.from,v=w.fromCue??-1);const F=nr(D.segments);if(w.instant||f.value==="reduce"||w.to<=g||F===0){k(D,w);return}const U=performance.now(),N=g,E=V=>{if(g=Math.min(w.to,N+(V-U)/1e3*CB),b(As(D.segments,g)),L(D,w.toCue),A(D),g<w.to){m=requestAnimationFrame(E);return}k(D,w)};b(As(D.segments,g)),L(D,w.toCue),m=requestAnimationFrame(E)}return ve(()=>n.travel,C,{flush:"post"}),ve(a,w=>{w&&C(n.travel)}),Ft(()=>cancelAnimationFrame(m)),(w,D)=>(l(),c("g",$B,[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,F=>(l(),c(te,{key:`${F.kind}:${F.key}`},[F.kind==="junction"?(l(),c("circle",{key:0,class:J(["trace-mark",y(e.motion.retried,F.at)?"is-retried":""]),cx:F.point.x,cy:F.point.y,r:"3",visibility:"hidden"},null,10,IB)):(l(),c("path",{key:1,class:J(["trace-mark",y(e.motion.retried,F.at)?"is-retried":""]),d:"M0 .5 7.5 4 0 7.5z",transform:`translate(${F.point.x} ${F.point.y}) rotate(${F.angle}) translate(-7.5 -4)`,visibility:"hidden"},null,10,SB))],64))),128))],512)],64)):M("",!0),gt(w.$slots,"beneath-flags",{},void 0,!0),q(kB,{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":""])},[...D[0]||(D[0]=[u("circle",{class:"trace-marker-dot",r:"4.5"},null,-1)])],2)):M("",!0)]))}}),MB=ot(TB,[["__scopeId","data-v-22225991"]]),Pd="agents.trace.actionsCollapsed";function AB(e=Qd()){function t(){try{return e?.getItem(Pd)==="true"}catch{return!1}}const n=R(t());return ve(n,r=>{try{e?.setItem(Pd,String(r))}catch{}}),{collapsed:n,collapse:()=>{n.value=!0},expand:()=>{n.value=!1}}}const LB={class:"flex min-h-0 flex-1"},RB={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"},EB={class:"flex shrink-0 flex-col gap-0.5 pb-1 pl-3 pr-9 pt-2"},PB={class:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-0.5"},NB={key:0,class:"font-medium text-neutral-700 dark:text-neutral-200"},OB={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."},DB={key:0},BB={key:1},FB={class:"font-mono"},jB={key:2,class:"mt-1 font-medium text-neutral-700 dark:text-neutral-200"},qB={key:0,class:"min-h-0 flex-1 overflow-y-auto px-3 pb-2"},zB={key:1,class:"flex-1"},VB={key:1,class:"flex-1"},HB={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"},UB=["title"],KB=["title"],WB={key:1,class:"text-sky-700 dark:text-sky-300"},GB={key:2},JB={key:3,class:"text-amber-700 dark:text-amber-300"},XB={key:4,class:"text-amber-700 dark:text-amber-300"},YB={key:1,class:"line-clamp-3 text-amber-700 dark:text-amber-300"},ZB=["title"],QB=["title"],eF=["title"],tF={key:5},nF={class:"relative flex min-w-0 flex-1"},rF={key:1,class:"pointer-events-none absolute inset-x-0 bottom-3 flex justify-center"},aF={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"},oF=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=AB(),f=x(()=>n.trace.steps.value),m=x(()=>[...new Set(f.value.flatMap(U=>U.error?[U.error]:[]))]),g=x(()=>n.trace.diagnostics.value),v=x(()=>f.value[f.value.length-1]?.stopCode??null),$=x(()=>f.value.find(U=>U.kind==="trigger")??null),b=x(()=>pD($.value,n.trace.lead.value,n.trace.caller.value)),T=U=>f.value.some(N=>N.provenance===U),y=x(()=>f.value.some(U=>U.definitionChanged)),A=x(()=>cD(o.layout.value,o.unreached.value)),L=x(()=>!!(n.trace.current.value&&(m.value.length>0||g.value.length>0||y.value||T("loading")||T("unavailable")||T("current"))||s.error.value||s.truncated.value||o.unplaced.value.length>0||A.value||o.breaks.value)),k=R(null),C=x(()=>k.value??(o.travelling.value||o.finished.value?null:o.currentOrdinal.value)),w=x(()=>o.partFor(C.value)),D=x(()=>o.actions.value.length);async function F(U,N){o.seek(U),await Qe();const E=o.partFor(N);E&&a.value?.centerOn(E)}return(U,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]=(...E)=>e.trace.handleKeydown&&e.trace.handleKeydown(...E))},[q(cB,{"include-nested":h(i),"onUpdate:includeNested":N[0]||(N[0]=E=>Ni(i)?i.value=E:null),autoplay:h(d),"onUpdate:autoplay":N[1]||(N[1]=E=>Ni(d)?d.value=E: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]=E=>h(o).seek(0)),onPreviousStep:h(o).previous,onNextStep:h(o).next,onLastStep:N[3]||(N[3]=E=>h(o).seek(h(o).stepCount.value)),onSeek:h(o).seek,onPreviousLog:N[4]||(N[4]=E=>r("previous-log")),onNextLog:N[5]||(N[5]=E=>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",LB,[h(p).collapsed.value?M("",!0):(l(),c("aside",RB,[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]=(...E)=>h(p).collapse&&h(p).collapse(...E))},[q(h(uc),{class:"size-4"})]),e.trace.current.value?(l(),c(te,{key:0},[u("div",EB,[u("div",PB,[b.value?(l(),c("span",NB,_(b.value.title),1)):M("",!0),$.value?.run.trigger.inferred?(l(),c("span",OB,"inferred")):M("",!0)]),e.trace.placement.value?(l(),c("span",DB,_(e.trace.placement.value),1)):M("",!0),v.value?(l(),c("span",BB,[N[12]||(N[12]=Ce("Stop reason ",-1)),u("span",FB,_(v.value),1)])):M("",!0),D.value>0?(l(),c("div",jB,_(D.value)+" "+_(D.value===1?"action":"actions"),1)):M("",!0)]),D.value>0?(l(),c("div",qB,[q(QD,{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:F,onHover:N[7]||(N[7]=E=>k.value=E)},null,8,["rows","lead-in","position","include-nested","stop","agent","faces","part-kinds"])])):(l(),c("div",zB))],64)):(l(),c("div",VB)),L.value?(l(),c("div",HB,[e.trace.current.value?(l(),c(te,{key:0},[(l(!0),c(te,null,Ie(m.value,(E,V)=>(l(),c("p",{key:V,class:"line-clamp-3 break-words text-red-600 dark:text-red-300",title:E},_(E),9,UB))),128)),g.value.length?(l(),c("p",{key:0,class:"text-red-600 dark:text-red-300",title:g.value.map(E=>`${E.logId}: ${E.message}`).join(`
|
|
69
|
+
`)}," Trace evidence has an invalid transition. ",8,KB)):M("",!0),y.value?(l(),c("p",WB," The agent's definitions changed during this log entry. ")):M("",!0),T("loading")?(l(),c("p",GB," Loading the definition snapshot for this log entry. ")):T("unavailable")?(l(),c("p",JB," The definition snapshot for this log entry could not be read. The diagram shows the current definitions. ")):T("current")?(l(),c("p",XB," 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",YB,_(h(s).error.value),1)):M("",!0),h(o).unplaced.value.length>0?(l(),c("p",{key:2,title:h(o).unplaced.value.map(E=>E.action.name).join(", ")},_(h(o).unplaced.value.length)+" "+_(h(o).unplaced.value.length===1?"action has":"actions have")+" no part on this diagram ",9,ZB)):M("",!0),A.value?(l(),c("p",{key:3,title:A.value.title},_(A.value.text),9,QB)):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},_(h(o).breaks.value.text),9,eF)):M("",!0),h(s).truncated.value?(l(),c("p",tF,"The trace includes the first "+_(h(si))+" rows plus recent recovery rows and live updates. Some entries may be missing.",1)):M("",!0)])):M("",!0)])),u("div",nF,[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]=(...E)=>h(p).expand&&h(p).expand(...E))},[q(h(Bh),{class:"size-4"})])):M("",!0),q(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(()=>[q(MB,{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]=E=>a.value?.followPoint(E)),onCue:h(o).reach,onArrive:N[10]||(N[10]=E=>{h(o).arrive(E),a.value?.settleFollow()})},{"beneath-flags":be(()=>[q(bB,{badges:h(o).badges.value,focus:k.value??h(o).currentOrdinal.value,ring:w.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",rF,[u("span",aF,_(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 n0(e){if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}const fi=(e,t)=>t in e?Reflect.get(e,t):void 0,Hn=(e,t)=>{const n=fi(e,t);return typeof n=="string"&&n?n:null},r0=(e,t)=>{const n=fi(e,t);return typeof n=="number"&&Number.isFinite(n)?n:null},sF=new Set(["ok","error","blocked"]);function lF(e){return typeof e=="string"&&sF.has(e)}function Nd(e){return n0(e).flatMap(t=>{if(!t||typeof t!="object")return[];const n=Hn(t,"hook"),r=Hn(t,"stage"),a=fi(t,"outcome");return!n||!r||!lF(a)?[]:[{hook:n,stage:r,outcome:a,actionId:Hn(t,"action_id"),sequence:r0(t,"action_sequence")}]})}function a0(e){return n0(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:r0(t,"action_sequence")}]})}function iF(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 uF(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 dF(e,t){const n=e.indexOf(":");return n>0?t.get(e.slice(0,n))??null:null}function o0(e){const t=new Map,n=new Map,r=new Map,a=[],o=[],s=uF(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)??dF(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(iF).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 cF(e){return e.side==null&&e.turn==null&&e.session==null?null:`turn:${e.session??"-"}:${e.turn??"-"}:${e.side??"-"}`}function pi(e){return!e.kind&&!e.prompt_name&&e.error_origin==="runtime"}function fF(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=cF(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||pi(o)}return t}function pF(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 hF={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:[]},mF={stop_tool:"tool",session_stop:"tool",session_fail:"tool",hook_blocked:"hook"},s0=["after_system_message","filter_messages","prefilter_llm_history"],l0=["before_create_message","after_create_message","before_update_message","after_update_message"],gF=["tool_call_done","after_tool_call_success","after_tool_call_failure","before_store_tool_result"];class vF{phase="start";diagnostics=[];station=-1;move(t,n,r=null,a){const s=a?(t==="assembly"?s0:t==="message"?l0:t==="result"?gF:[]).indexOf(a):-1;return!hF[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 Od=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 yF(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(E=>({logId:b.id,actionId:b.action_id??null,message:E}))),[];const T=[],y=Nd(b.hook_runs),A=a0(b.provider_tools),L=xa(b.hook_runs,b.id,"hook_runs",T),k=xa(b.provider_tools,b.id,"provider_tools",T);if(y.length!==L.length&&T.push({logId:b.id,field:"hook_runs",message:"Invalid hook fact"}),A.length!==k.length&&T.push({logId:b.id,field:"provider_tools",message:"Invalid provider fact"}),T.length)return a.push(...T.map(E=>({logId:b.id,actionId:null,message:`${E.field}: ${E.message}`}))),[];const C=b.action_sequence??0,w=[],D=b.action_sequence!=null,F=(E,V)=>w.push({events:E,sequence:D?V:w.length}),U=(E,V,z,Y={})=>({phase:z,row:b,caller:g,invocationId:$,action:{id:b.action_id??b.id,kind:E,name:V,detail:null,status:Od(b),sequence:b.action_sequence??null,logId:b.id,depth:v,attempt:null,...Y}}),N=(E,V)=>U("hook",E.hook,Ja(E.stage),{id:E.actionId??`${b.id}:hook:${V}`,detail:E.stage,status:E.outcome==="ok"?"ok":"failed",sequence:E.sequence});if(!D){const E=["after_thread_created",...l0,...s0],V=z=>E.includes(z.stage)?E.indexOf(z.stage):E.length;y.sort((z,Y)=>V(z)-V(Y))}if(pi(b))return[U("runtime","Runtime error","failure",{detail:b.model||null,status:"failed"})];if(b.kind==="app")return[U("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[U("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")F([U("invoke",b.prompt_name||b.model,"tool")],C),y.forEach((E,V)=>F([N(E,V)],E.sequence??C+1)),m.children.forEach(E=>F(s(E,g,v+1,b.action_id??b.id),E.log.action_sequence??C+1));else{const E=b.prompt_name,{calls:V,errors:z}=B6(b);a.push(...z.map(P=>({logId:P.logId,actionId:null,message:`${P.field}: ${P.message}`})));const Y=U("request",E||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":Od(b),attempt:(t.get(b.id)??1)>1||b.retry_of_log_id?t.get(b.id)??2:null});y.forEach((P,X)=>{const re=Ja(P.stage);["entry","message","assembly"].includes(re)&&F([N(P,X)],P.sequence??C-1)}),F([Y],C);let I=C;y.forEach((P,X)=>{Ja(P.stage)==="dispatch"&&(I=Math.max(I,P.sequence??C),F([N(P,X)],P.sequence??C+1))}),A.forEach((P,X)=>{I=Math.max(I,P.sequence??C),F([U("provider-tool",P.name,"provider-tool",{id:P.actionId??`${b.id}:provider:${X}`,sequence:P.sequence,status:P.failed?"failed":"ok"})],P.sequence??C+1)});const B=[...m.children];V.forEach((P,X)=>{const re=B.filter(Ee=>Ee.log.parent_action_id===P.id||Ee.log.action_id===P.id),ne=B.find(Ee=>(Ee.log.prompt_name||Ee.log.model)===P.name),de=re.length?re:ne?[ne]:[];P.name==="subagent_create"&&X===V.findIndex(Ee=>Ee.name==="subagent_create")&&de.push(...B.filter(Ee=>!de.includes(Ee)&&Ee.log.kind==="hook"&&Nd(Ee.log.hook_runs).some(ke=>ke.stage==="after_subagent_created")));for(const Ee of de)B.splice(B.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=U("tool",P.name,"tool",{id:P.inferred&&ae?ae:P.id,sequence:P.sequence,status:P.outcome}),Re=ue?s(ue,E,v,P.id):[xe,...de.flatMap(Ee=>s(Ee,E,v+1,P.id))],Me=y.flatMap((Ee,ke)=>{if(Ee.stage!=="after_subagent_created"||P.name!=="subagent_create")return[];const ie=V.filter(me=>me.name==="subagent_create"&&(me.sequence??0)<=(Ee.sequence??0)),se=ie[ie.length-1];return se===P||!se&&X===V.findIndex(me=>me.name==="subagent_create")?[N(Ee,ke)]:[]});F([...Re,...Me],P.sequence??de[0]?.log.action_sequence??I+1+X)}),B.forEach(P=>F(s(P,E,v+1,$),P.log.action_sequence??Number.MAX_SAFE_INTEGER-1)),y.forEach((P,X)=>{Ja(P.stage)==="result"&&F([N(P,X)],P.sequence??Number.MAX_SAFE_INTEGER)});const W=b.side??n;r==="reply"&&v===0&&V.length===0&&!b.error&&b.is_complete&&W&&F([U("reply",`Side ${W==="a"?"B":"A"}`,"reply",{id:`${b.id}:reply`,detail:null,sequence:null,status:"ok"})],Number.MAX_SAFE_INTEGER)}return w.sort((E,V)=>E.sequence-V.sequence).flatMap(E=>E.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 vF,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:bF(e.log,d.get(e.log.id)??null,f)}}function bF(e,t,n){if(!e.stop_code||!e.is_complete||t&&t.phase!=="finish")return null;const r=mF[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 hi(e){return{selectionId:e.selectionId,name:e.name,model:e.model,items:e.items,hooks:e.hooks,subPrompt:!1}}function ts(e){return e.flatMap(t=>{if(t.kind!=="subprompt")return[];const n=t.circuit?{...hi(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,...ts(n.items)]})}function i0(e){const t=[];for(const n of[e.sideA,e.sideB]){if(!n?.circuit)continue;const r=hi(n.circuit);t.push(r,...ts(r.items))}return{block:e,prompts:t}}const xF=(e,t)=>e.agent.name===t||e.agent.id===t,mi=e=>[e.sideA,e.sideB].flatMap(t=>[...t?.items??[],...t?.circuit?.items??[]]);function u0(e,t){if(xF(e,t))return[e];for(const n of mi(e)){if(n.kind!=="subagent"||!n.agent)continue;const r=u0(n.agent,t);if(r)return[e,...r]}return null}function d0(e,t){return e?(t?u0(e,t):null)??[e]:[]}function kF(e,t){const n=d0(e,t),r=n[n.length-1];return r?i0(r):null}function Ls(e,t,n){if(!e||!t)return null;if(n){const r=ts(n.items).find(a=>a.name===t);if(r)return r}return e.prompts.find(r=>r.name===t)??null}function Oo(e){return e.kind==="subagent"&&e.agent?Uf(e.selectionId):e.selectionId}const Dd="provider:",Bd=e=>e.startsWith(Dd)?e.slice(Dd.length):e;function wF(e,t){const n=Bd(t);for(const r of e){const a=r.items.find(o=>o.tool.name===t||Bd(o.tool.name)===n);if(a)return a}return null}function _F(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??[]]:mi(e.block)).filter(s=>s.kind==="subagent");return o.length===1?o[0]:null}function c0(e){return e.model?Hf(e.selectionId):null}function $F(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 IF(e,t,n){if(!e)return null;const r=mi(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 SF(e){const t=new Set([e.selectionId]);for(const r of e.items)t.add(Oo(r));if(!e.circuit)return t;const n=hi(e.circuit);for(const r of[n,...ts(n.items)]){t.add(r.selectionId);const a=c0(r);a&&t.add(a);for(const o of r.items)t.add(Oo(o));for(const o of r.hooks)t.add(o.selectionId)}return t}function f0(e,t){if(!e||t.length===0)return null;for(const n of[e.block.sideA,e.block.sideB]){if(!n)continue;const r=SF(n);if(t.some(a=>r.has(a)))return n}return null}function Fd(e,t){const n=c0(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 CF=new Set(["session_fail","hook_blocked","repeated_tool_error","step_error"]);function TF(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 MF(e,t){const n=Ls(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=yF(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=Ls(t.index,g.caller,null),T=Ls(t.index,v.prompt_name,b),y=T?[T]:b?[b]:t.index?.prompts??[];let A=null,L,k=null,C=!1,w=!1;switch($.kind){case"hook":{A=$F(y,$.name)?.selectionId??null,C=!0,A&&f.get(A)?.mark!=="failed"&&f.set(A,{id:A,mark:$.status==="failed"?"failed":"called"});break}case"request":A=T?Fd(t.index,T):null,T?.subPrompt&&(L=T.selectionId,p.add(T.selectionId)),T&&d.add(T.selectionId),T?.model&&d.add(T.model.selectionId);break;case"tool":case"invoke":case"provider-tool":{const F=$.kind==="invoke"?b?[b]:t.index?.prompts??[]:y,U=F.flatMap(E=>E.items).find(E=>E.tool.name===$.name)??null,N=($.kind==="provider-tool"?wF(F,$.name):U)??(In.has($.name)?_F(t.index,T??b,v.side??t.side):null);w=$.kind!=="provider-tool"&&!In.has($.name)&&(!!N?.tool.unoffered||!N&&T!==null),A=N?Oo(N):w&&T?Fd(t.index,T):null,A&&!w&&i.add(A),N&&d.add(N.selectionId);break}case"reply":{if(T?.subPrompt)continue;const F=(v.side??t.side)==="a"?"b":"a";if(k=ka(t.index,F),A=nn(t.index,F)?.selectionId??null,!k||!A)continue;break}case"handler":{A=[t.index?.block.sideA,t.index?.block.sideB].find(U=>U?.side.mode==="handler"&&U.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 D=o.length+1;o.push({...$,executionPhase:g.phase,componentId:A,ordinal:D,...L?{entryComponentId:L}:{},...w?{status:"failed",detail:"not offered to this prompt"}:{}}),k?s.push({kind:"wire",id:k,ordinal:D}):A&&s.push({kind:C?"hook":"component",id:A,ordinal:D}),A&&$.kind!=="request"&&d.add(A)}const m=a.stop?{code:a.stop.code,target:TF(a.stop,t.index,e.log.side??t.side,o),failed:CF.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 AF=new Set(["human_message","api","side_reply","effect","endpoint","subagent_result","subagent_activation","thread_created","parent_message","runtime"]);function LF(e){return AF.has(e)}const gi=e=>e==="a"?"b":e==="b"?"a":null;function pl(e,t,n){const r=gi(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 RF(e,t){const n=nn(t,gi(e));return n&&n.side.mode!=="human"?"side_reply":"unknown"}function EF(e,t,n,r){const a=e.nodes[0].log,o=e.attributed&&a.trigger_kind?a.trigger_kind:null,s=o?LF(o)?o:"runtime":RF(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 PF={tool_execution:"tool",handler_execution:"handler",hook:"hook",app:"app"};function NF(e){return pi(e)?"runtime":PF[e.kind??""]??"request"}function OF(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 jd(e,t,n,r){const a=d0(e,t),o=a[a.length-1];return{index:o?i0(o):null,diagramKey:n,provenance:r,outerBlocks:a.slice(1).map(s=>s.selectionId),blockTags:a.map(s=>s.selectionId)}}function qd(e){return Ea(e).find(t=>t.definition_hash)?.definition_hash??null}function DF(e,t){return t||e.some(n=>n.error)?"failed":e.some(n=>!n.is_complete)?"running":"ok"}function BF(e,t,n,r,a,o){const s=e.log,i=Ea(e),d=NF(s),p=MF(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)??f0(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,...OF(s,d),createdAt:s.created_at,status:DF(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 zd=new Set(["parent_message","subagent_activation","subagent_result"]),FF=(e,t)=>`${e}::source:${t}`;function jF(e){return[e.block.sideA,e.block.sideB].some(t=>t?.circuit?.hooks.some(n=>lr(n.entry.hook)==="thread"))}function qF(e,t,n){const r=e.trigger.kind,a=nn(n,e.side)??f0(n,t.route),o=nn(n,gi(e.side)),s=ka(n,e.side);if((r==="side_reply"||zd.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"&&jF(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||zd.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:FF(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 zF(e,t,n,r){const{stops:a,route:o,entrySource:s}=qF(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 VF(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 Vd(e){const t=e.root.threadId,n=e.root.logs,r=pF(n),a=e.inherit,o=jd(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=jd(m,e.agentName,f,"stored"),s.set(f,g)),g}const d=[];let p=null;for(const f of fF(o0(n))){const m=i(qd(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:EF(f,$,m.index,e.details),side:$},T=f.nodes.map((L,k)=>{const C=a?null:qd(L),w=f.nodes.slice(k+1).some(U=>!U.log.kind&&U.log.prompt_name===L.log.prompt_name),D=BF(L,t,b,k===0?m:i(C),r,w),F=!!(C&&p&&C!==p);return C&&(p=C),{...D,workIndex:k+1,workCount:f.nodes.length,definitionChanged:F}}),[y,A]=VF(zF(t,b,T[0],m.index),T[0],m.index);d.push(y,A,...T.slice(1))}return d}const HF=e=>{if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>typeof n=="string"):[]}catch{return[]}};function UF(e){const t=new Map;for(const n of e){if(!n.prompt_name||n.kind)continue;const r=HF(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 KF=(e,t)=>`${e.selectionId}::unoffered:${t}`;function p0(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=>h0(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:KF(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 h0(e,t,n){if(e.kind==="subprompt"&&e.circuit){const r=p0(e.circuit,t,n);return r===e.circuit?e:{...e,circuit:r}}if(e.kind==="subagent"&&e.agent){const r=m0(e.agent,t,n);return r===e.agent?e:{...e,agent:r}}return e}function Hd(e,t,n){if(!e)return e;const r=e.circuit?p0(e.circuit,t,n):null,a=e.items.map(s=>h0(s,t,n));return r!==e.circuit||a.some((s,i)=>s!==e.items[i])?{...e,circuit:r,items:a}:e}function m0(e,t,n){const r=Hd(e.sideA,t,n),a=Hd(e.sideB,t,n);return r===e.sideA&&a===e.sideB?e:{...e,sideA:r,sideB:a}}function WF(e,t){const n=UF(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 a0(a.provider_tools))o.add(s.name);o.size&&r.set(a.prompt_name,o)}return n.size===0&&r.size===0?e:m0(e,n,r)}function GF(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 Ud(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=g0(e.agent,t);return n===e.agent?e:{...e,agent:n}}return e}function Kd(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 g0(e,t){const n=Kd(e.sideA,t),r=Kd(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 JF(e,t){return t.size===0?e:g0(e,t)}const XF="subagent_create",v0=e=>e.relationship||e.agentName||e.title||"Subagent";function YF(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:v0(s),runId:d,inferred:!1,...p?{actionId:p}:{}})}return o}function ZF(e,t,n){const r=o=>({threadId:o.threadId,label:v0(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===XF).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 QF(e,t,n,r){if(!e||!n||e.subagentCalls===0)return[];const a=YF(e,n.threadId,n.children,r);return a.length>0?a:ZF(e,t,n.children)}function ej(e,t,n){return!t||!n?-1:e.findIndex(r=>r.threadId===t&&r.logIds.includes(n))}const tj=12,nj=4,y0=(e,t)=>e.filter(n=>n.run.id===t);function rj(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 y0(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 Rs(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 b0(e,t){for(const n of e){if(n.log.id===t||n.aliases.some(a=>a.id===t))return[n];const r=b0(n.children,t);if(r.length>0)return[n,...r]}return[]}function aj(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}),oj=e=>({...e,stops:e.stops.map(t=>t.ordinal===null?{...t,leadIn:!0}:t)});function sj(e,t,n,r){const a=b0(o0(t.logs),n),o=a[a.length-1],s=a[a.length-2],i=new Set((o?Ea(o):[]).map(T=>T.id)),d=e.actions.filter(T=>i.has(T.logId));if(d.length===0)return null;const p=new Map(d.map((T,y)=>[T.ordinal,y+1])),f=d.map(T=>({...T,ordinal:p.get(T.ordinal)??T.ordinal})),m=d.find(T=>T.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(T=>{const y=T.ordinal===null?void 0:p.get(T.ordinal);return y===void 0?[]:[{...T,ordinal:y}]})],b=new Set($.map(T=>T.id));return{step:{...e,id:`${e.id}:row:${n}`,logId:n,logIds:[...i],actions:f,stops:$,route:$.filter(T=>T.kind==="component").map(T=>T.id),calledIds:e.calledIds.filter(T=>b.has(T)),hookMarks:e.hookMarks.filter(T=>b.has(T.id)),subagentCalls:d.filter(T=>In.has(T.name)).length},origin:g?.ownerId??m??null,caller:s?aj(s):null}}function Wd(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 x0(e,t,n){const r=n?.wireEnds(e.id);return r?t==="from"!=!!e.reverse?r.from:r.to:null}function lj(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"?x0(r,"from",t)??n.route[0]??null:r.id}function ij(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:x0(r,"to",t)??n.actions.find(a=>a.ordinal===r.ordinal)?.componentId??n.route[n.route.length-1]??null}function uj(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 dj(e,t,n){const r=e[ej(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 cj(e){const{data:t,entryId:n}=e,r=n===null?void 0:e.steps.find(w=>w.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=w=>e.loaded.has(w)||e.failed.has(w);function d(w,D,F,U,N){return w.flatMap(E=>{const V=E;if(s.push(...V.diagnostics??[]),V.subagentCalls===0||U>=nj)return[V];const z=F.children.slice(0,tj).filter(ae=>!N.has(ae.threadId)),Y=z.filter(ae=>!i(ae.threadId));for(const ae of Y)o.add(ae.threadId);if(Y.length>0)return[V];const I=QF(V,D,F,e.loaded).flatMap(ae=>{const xe=z.find(ke=>ke.threadId===ae.threadId),Re=e.loaded.get(ae.threadId);if(!xe||!Re)return[];const Me=e.childSteps(xe,Re,V),Ee=rj(Me,ae,V);return Ee.length>0?[{link:ae,child:xe,data:Re,all:Me,run:Ee}]:[]}),B=ae=>ae.run[0]?.createdAt??0,W=I.every(ae=>ae.link.inferred)?[...I].sort((ae,xe)=>B(ae)-B(xe)).slice(0,V.subagentCalls):I,P=new Set([...N,F.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 V.actions.entries()){if(ae<ne||!In.has(xe.name))continue;const Re=X.findIndex(fe=>fe.link.actionId===xe.id),Me=V.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?.(V,ke.child);let se=ae+1;for(;V.actions[se]?.kind==="hook"&&V.actions[se]?.detail==="after_subagent_created";)se+=1;const me=Rs(V,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,U+1,P);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<V.actions.length?re.push(ue(Rs(V,ne,V.actions.length))):de.length>0&&re.push(ue(Rs(V,ne,ne))),re.length>0?re:[V]})}const p=(w,D,F)=>{const U=uj(w,a);return{entryId:r.id,steps:U,lead:D,origin:F?.origin??lj(U,a),landing:ij(U,a),caller:F?.caller??null,wanted:[...o],diagnostics:s}},f=e.logId&&e.logId!==r.logId&&r.logIds.includes(e.logId)?sj(r,t,e.logId,a):null;if(f)return p(d([f.step],e.steps,t,0,new Set),null,f);const m=y0(e.steps,r.run.id),g=Wd(r,m,t)!==r,v=m.slice(0,m.indexOf(Wd(r,m,t))),$=v.filter(w=>w.kind!=="trigger"),b=$[$.length-1]??null,T=b?[...b.actions].reverse().find(w=>["tool","provider-tool","invoke"].includes(w.kind)&&w.depth===0)??[...b.actions].reverse().find(w=>w.entryComponentId):void 0,y=r.kind==="tool"&&T?.kind==="invoke",A=y?null:b,L=v.filter(w=>w.kind==="trigger"),k=y||g?L.map(w=>({...w,id:`${w.id}:lead:${r.logId}`,actions:[],stops:w.stops.filter(D=>D.ordinal===null).map(ln),hookMarks:[],retry:g})):L.map(oj),C=d(A?[r]:[...k,r],e.steps,t,0,new Set);if(A&&C[0]){const w=T?.entryComponentId??T?.componentId;w&&(C[0]={...C[0],stops:[ln({kind:"component",id:w}),...C[0].stops]})}if(!A&&r.run.trigger.kind==="subagent_result"){const w=t.children.find(U=>U.threadId===r.run.trigger.threadId),D=w?e.relationship?.(r,w):null,F=C.findIndex(U=>U.kind==="trigger");D&&F>=0&&(C[F]={...C[F],stops:[ln({kind:"component",id:D.blockId}),ln({kind:"wire",id:it.returns(D.blockId)})],route:[D.blockId,D.chipId],scopeIds:[...new Set([...C[F].scopeIds,D.blockId])]})}return p(C,A,null)}const Gd=new WeakMap;function fj(e){if(!e)return null;const t=Gd.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 Gd.set(e,a),a}const pj=e=>e.reduce((t,n)=>t+(n.tools_called?.includes("subagent_create")?1:0),0);function hj(e){const t=Mp(e,{limit:si,order:"asc",enableWebSocket:!0}),n=Et([]),r=Et(new Map),a=R(new Set),o=Et(new Set),s=R(null),i=new Map,d=new Map,p=()=>{for(const C of d.values())C();d.clear()};Ml(()=>{T++,p()});const f=Et({effects:new Map,messages:new Map}),m=Et(new Map);function g(C,w){const D=`${C}:${w.id}`,F=oi(w),U={id:w.id,tool_results:F.tool_results??m.value.get(D)?.tool_results};m.value=new Map([...m.value,[D,U]]),m.value.size>128&&m.value.delete(m.value.keys().next().value??"")}const v=(C,w)=>w.map(D=>F6(D,m.value.get(`${C}:${D.id}`))),$=new Set;let b=!1,T=0;async function y(C){const w=T;try{const D=await ll(C);w===T&&(n.value=D)}catch(D){w===T&&(s.value=ze(D))}}ve(e,C=>{T++,p(),m.value=new Map([...m.value].filter(([w])=>C&&w.startsWith(`${C}:`))),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(),C&&(t.connectWebSocket(),y(C))},{immediate:!0}),ve(()=>pj(t.logs.value),(C,w)=>{const D=e.value;D&&w!==void 0&&C>w&&y(D)}),ve(()=>t.logs.value.some(C=>C.trigger_kind==="effect"),C=>{const w=e.value;if(!w||!C||b)return;b=!0;const D=T;U6(w).then(F=>{D===T&&(f.value={...f.value,effects:F})}).catch(()=>{})},{immediate:!0});function A(C,w){const D=`${C}:${w}`;if($.has(D))return;$.add(D);const F=T;K6(C,[w]).then(U=>{F!==T||U.size===0||(f.value={...f.value,messages:new Map([...f.value.messages,...U])})}).catch(()=>{})}function L(C){if(r.value.has(C)||o.value.has(C))return Promise.resolve();const w=i.get(C);if(w)return w;const D=T;a.value=new Set([...a.value,C]);const F=Promise.all([Ro(C),ll(C)]).then(([U,N])=>{D===T&&(r.value=new Map([...r.value,[C,{threadId:C,logs:U,children:N}]]),d.set(C,Gp(C,U,()=>Ro(C),E=>{D===T&&(r.value=new Map([...r.value,[C,{threadId:C,logs:E,children:N}]]))},E=>{D===T&&(s.value=E)})))}).catch(U=>{D===T&&(s.value=ze(U),o.value=new Set([...o.value,C]))}).finally(()=>{i.delete(C);const U=new Set(a.value);U.delete(C),a.value=U});return i.set(C,F),F}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(([C,w])=>[C,{...w,logs:v(C,w.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 C=t.error.value;return C?ze(C):s.value??t.wsError.value}),truncated:x(()=>t.hasMore.value)}}const ia=1.5,un=(e,t)=>Math.abs(e-t)<=ia;function mj(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 gj(e,t){let n=null;for(const r of[...e.components,...e.frames])mj(t,r)&&(!n||r.width*r.height<n.width*n.height)&&(n=r);return n}function vj(e,t){return un(e.y,t.y+t.height)&&!un(e.x,t.x)&&!un(e.x,t.x+t.width)}function yj(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 bj(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"},xj=2;function Jd(e,t,n){const r=t==="start"?n[0]:n[n.length-1],a=e?gj(e,r):null,o=(a?yj(r,a):null)??bj(t,n)??ml[t];return{kind:t,x:r.x,y:r.y,lean:o,hangs:a?vj(r,a):!1}}function kj(e,t){const n=t.filter(i=>i.length>0),r=n[0],a=n[n.length-1];if(!r||!a)return[];const o=Jd(e,"start",r),s=Jd(e,"finish",a);return Math.hypot(s.x-o.x,s.y-o.y)>xj?[o,s]:[{...o,lean:ml.start},{...s,lean:ml.finish}]}function wj(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 _j(e,t,n,r=[]){const o=(e.actions.every(d=>d.ordinal<=t)?e.stops:wj(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(()=>rD(o.value,t.value)),i=x(()=>LD(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:Qp([...X9(o.value,s.value.segments),...oD(s.value,t.value)]),retried:sD(s.value,t.value),marks:wB(o.value,s.value.segments)}:null}),f=R(0),m=R(0),g=R(-1),v=R(!1),$=R(!1),b=Et(null);let T=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:++T,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:++T,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,Ad(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 C=x(()=>d.value>0&&f.value===d.value&&!v.value),w=x(()=>v.value&&$.value);function D(){d.value!==0&&(C.value&&y(0),A(d.value),$.value=!0)}function F(){v.value&&($.value=!1,A(f.value+1))}function U(){y(0),D()}function N(){const se=w.value||!v.value?f.value:m.value;$.value=!1,A(se+1)}function E(){y(v.value?f.value:f.value-1)}function V(se){if(!se){y(d.value);return}y(0),D()}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=w.value;y(Ad(i.value,g.value)),se&&D()});const z=x(()=>s.value.cues.slice(0,g.value+1)),Y=x(()=>new Set(z.value.flatMap(se=>se.hookId?[se.hookId]:[]))),I=x(()=>new Set(z.value.flatMap(se=>se.step!==null?[se.step]:[]))),B=x(()=>new Set(z.value.flatMap(se=>se.componentId?[se.componentId]:[]))),W=x(()=>C.value?Number.POSITIVE_INFINITY:Math.max(0,...z.value.map(se=>se.ordinal??0))),P=x(()=>{const se=o.value,me=t.value.flatMap((fe,Te)=>{if(!C.value&&!I.value.has(Te))return[];const Z=W.value-s.value.offsets[Te],oe=C.value||Z>=fe.actions.length?new Set(fe.hookMarks.map(j=>j.id)):Y.value,Oe=se?Yp(se,fe):[];return[V9(_j(fe,Z,B.value,Oe),se,oe)]}),pe=me[me.length-1];if(!pe)return null;const Fe=Y9(pe,me.slice(0,-1));return C.value?Z9(Fe,se,X.value):Fe}),X=x(()=>t.value[t.value.length-1]?.stopBoundary??null),re=x(()=>kj(o.value,s.value.segments).filter(se=>se.kind==="start"||C.value)),ne=x(()=>s.value.actions),de=x(()=>ED(ne.value,r.value)),ue=x(()=>i.value[f.value-1]?.actions[0]?.ordinal??null),ae=x(()=>iD(o.value,ne.value));function xe(se){const me=se===null?void 0:ne.value.find(Fe=>Fe.ordinal===se),pe=me&&o.value?ci(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(()=>uD(o.value,ne.value)),ke=x(()=>dD(o.value,s.value,t.value)),ie=x(()=>aD(o.value,s.value.breaks));return{entryStep:a,stopBoundary:X,layout:o,actions:ne,rows:de,unplaced:Ee,unreached:ke,breaks:ie,highlight:P,flags:re,badges:Me,partFor:xe,partKinds:Re,motion:p,travel:b,stepCount:d,position:f,progress:W,currentOrdinal:ue,travelling:v,playing:w,finished:C,reach:L,arrive:k,seek:y,play:D,pause:F,replay:U,next:N,previous:E,enter:V}}function Ij(e){return[...new Set(e.flatMap(t=>t.definition_hash?[t.definition_hash]:[]))]}function Sj(e,t){const n=Et(new Map),r=Et(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 kR(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:Ij(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 Cj(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=hj(e.rootThreadId),a=Sj(e.rootThreadId,x(()=>r.root.value?.logs??[])),o=x(()=>[...r.root.value?.logs??[],...[...r.loadedChildren.value.values()].flatMap(P=>P.logs)]),s=(P,X)=>{const re=WF(P,o.value);return{model:re,layout:re===P?X:$o(re)}},i=x(()=>{const P=n.model.value;return P?s(P,n.layout.value):{model:null,layout:n.layout.value}}),d=x(()=>new Map([...a.diagrams.value].map(([P,X])=>[P,s(X.model,X.layout)]))),p=x(()=>new Map([...d.value].map(([P,X])=>[P,X.model]))),f=x(()=>{const P=r.root.value;return P?Vd({root:P,model:i.value.model,snapshots:p.value,failedSnapshots:a.failed.value,agentName:e.agentName.value,details:r.details.value}):[]}),m=P=>(P?p.value.get(P)??null:null)??i.value.model,g=x(()=>dj(f.value,e.rootThreadId.value,e.selectedLogId.value)),v=x(()=>{const P=new Map,X=(re,ne,de)=>{const ue=`${re.threadId}|${de.diagramKey??""}|${de.provenance}`;let ae=P.get(ue);return ae||(ae=Vd({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}),P.set(ue,ae)),ae};return cj({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=>fj((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=IF(kF(m(re.diagramKey),de),ne.relationship,ne.agentName);return ue?.agent?{chipId:Oo(ue),blockId:ue.agent.selectionId}:null}})}),$=x(()=>v.value.steps),b=new Set(["human_message","api","side_reply","parent_message"]);ve(()=>$.value.flatMap(P=>{const X=P.kind==="trigger"?P.run.trigger:null;return X?.sourceId&&b.has(X.kind)?[`${P.threadId}
|
|
70
|
+
${X.sourceId}`]:[]}).join(" "),P=>{for(const X of P?P.split(" "):[]){const[re,ne]=X.split(`
|
|
71
|
+
`);r.loadTriggerMessage(re,ne)}},{immediate:!0});const T=x(P=>{const X=GF([...f.value,...$.value]);return P&&Ud(P)===Ud(X)?P:X}),y=P=>{if(!P.model||T.value.size===0)return P;const X=JF(P.model,T.value);return{model:X,layout:$o(X)}},A=x(()=>y(i.value)),L=x(()=>new Map([...d.value].map(([P,X])=>[P,y(X)])));ve(()=>v.value.wanted.join(`
|
|
72
|
+
`),()=>{for(const P of v.value.wanted)r.loadChild(P)},{immediate:!0});const k=P=>P?.diagramKey?L.value.get(P.diagramKey)??null:null,C=P=>k(P)?.layout??A.value.layout,w=Xn("agents.trace.includeSubagents",!0),D=Xn("agents.trace.autoplay",!0),F=$j({steps:$,layoutFor:C,includeNested:w}),U=x(()=>!r.isLoading.value&&$.value.length>0&&v.value.wanted.length===0),N=F.entryStep,E=x(()=>C(N.value)),V={model:x(()=>k(N.value)?.model??A.value.model),layout:E,componentsFor:P=>E.value?.components.filter(X=>X.selectionId===P)??[]},z=x(()=>{const P=new Map,X=ne=>P.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 P}),Y=x(()=>{const P=e.agentName.value;return P?z.value.get(P)??{name:P,title:P,icon:null}:null}),I=x(()=>{const P=N.value;if(!P)return null;const X=[P.side?`Side ${P.side.toUpperCase()}`:null,P.turn!==null?`turn ${P.turn}`:null,P.session!==null?`session ${P.session}`:null].filter(re=>re!==null);return X.length>0?X.join(" · "):null}),B=()=>F.enter(D.value);function W(P){const X=P.target;X instanceof HTMLInputElement||X instanceof HTMLTextAreaElement||X instanceof HTMLElement&&X.getAttribute("role")==="slider"||P.metaKey||P.ctrlKey||P.altKey||(P.key===" "?(P.preventDefault(),F.playing.value?F.pause():F.play()):P.key==="ArrowRight"?(P.preventDefault(),F.next()):P.key==="ArrowLeft"?(P.preventDefault(),F.previous()):P.key==="Home"?(P.preventDefault(),F.seek(0)):P.key==="End"&&(P.preventDefault(),F.seek(F.stepCount.value)))}return{data:r,steps:$,session:F,current:N,shown:V,placement:I,lead:x(()=>v.value.lead),caller:x(()=>v.value.caller),diagnostics:x(()=>v.value.diagnostics),ready:U,outsideRead:x(()=>!r.isLoading.value&&e.selectedLogId.value!==null&&g.value===null),includeNested:w,autoplay:D,agent:Y,faces:z,enterEntry:B,handleKeydown:W}}const Xd=4,Tj=4,Mj=88;function Aj(e,t){const{available:n,widths:r,overflowWidth:a,active:o}=t;if(!n)return[...e];const s=g=>r[g]??Mj;if(e.reduce((g,v)=>g+s(v),0)+Xd<=n)return[...e];const d=Math.max(0,n-Xd-a-Tj),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 Lj={class:"flex h-full min-h-0 flex-col overflow-hidden"},Rj={class:"ui-border relative z-30 flex h-12 shrink-0 items-center border-b px-4"},Ej=["id","aria-selected","aria-controls","onClick"],Pj={class:"min-w-0 max-w-[11rem] truncate"},Nj=["aria-expanded"],Oj={key:0,class:"absolute right-0 top-full z-50 mt-1"},Dj={class:"min-w-0 truncate"},Bj={class:"pointer-events-none absolute -left-[9999px] top-0 flex h-8 items-center gap-1 opacity-0"},Fj={class:"max-w-[11rem] truncate"},jj={type:"button",tabindex:"-1",class:"inline-flex h-7 w-7 items-center justify-center rounded-md"},qj={class:"min-h-0 flex-1 overflow-hidden"},zj=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}=Do(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:Nm,count:f.value},{id:"effects",label:"Effects",icon:Bn,count:m.value},{id:"info",label:"Thread settings",icon:Om}]),b=R({}),T=R({}),y=R(null),A=R(null),L=R(0),k=R(null),C=R(null),w=R(0),D=R({}),F=R(36),U=R({left:0,width:0}),N=R(!1);let E=null;const V=j=>(j.id==="files"||j.id==="kv"||j.id==="effects")&&typeof j.count=="number"&&j.count>0,z=j=>j>99?"99+":String(j),Y=(j,ce)=>{ce instanceof HTMLButtonElement?b.value[j]=ce:delete b.value[j]},I=(j,ce)=>{ce instanceof HTMLButtonElement?T.value[j]=ce:delete T.value[j]},B=j=>{const ce=j instanceof HTMLButtonElement?j:null;k.value=ce},W=()=>{const j={};for(const ce of $.value){const he=T.value[ce.id];he&&(j[ce.id]=Math.ceil(he.getBoundingClientRect().width))}D.value=j,k.value&&(F.value=Math.ceil(k.value.getBoundingClientRect().width))},P=()=>{w.value=Math.floor(y.value?.getBoundingClientRect().width??0)},X=()=>{L.value=Math.ceil(A.value?.getBoundingClientRect().width??0),P(),W(),Qe(Re)},re=x(()=>{const j=Aj($.value.map(he=>he.id),{available:w.value,widths:D.value,overflowWidth:F.value,active:o.value}),ce=new Set(j);return $.value.filter(he=>ce.has(he.id))}),ne=x(()=>{const j=new Set(re.value.map(ce=>ce.id));return $.value.filter(ce=>!j.has(ce.id))}),de=()=>{N.value=!1},ue=()=>{N.value=!N.value},ae=j=>{if(!N.value)return;const ce=j.target;C.value?.contains(ce)||de()},xe=j=>{j.key==="Escape"&&N.value&&(de(),k.value?.focus())},Re=()=>{const j=b.value[o.value];if(!j||!re.value.some(ce=>ce.id===o.value)){U.value={left:0,width:0};return}U.value={left:j.offsetLeft,width:j.offsetWidth}},Me=j=>(Oe("logs"),j()),Ee=Dm(E6,"response",{serializer:{read:N6,write:j=>j}}),ke=x(()=>!!r.diagram);Bm(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=Cj({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,j=>{j&&(me.value=!0)},{immediate:!0}),ve(()=>ie.value&&Fe.ready.value?`${r.threadId??""}|${r.selectedLogId??""}|${pe.value?.logId??""}`:null,j=>{j!==null&&Fe.enterEntry()},{flush:"post"});const fe=j=>(Oe("effects"),j()),Te=j=>{p.value=j},Z=j=>{f.value=j},ee=j=>{m.value=j},oe=j=>{fe(()=>i.value?.selectEffectByReference(j))},Oe=j=>{$.value.some(ce=>ce.id===j)||(j="logs"),o.value=j,de(),Qe(Re),a("update:activeTab",j)};return ve(()=>r.activeTab,j=>{j&&j!==o.value&&(o.value=j),Qe(Re)}),ve($,j=>{j.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,j=>{j.length===0&&de()}),an(()=>{Qe(X),y.value&&(E=new ResizeObserver(X),E.observe(y.value)),window.addEventListener("resize",X),document.addEventListener("pointerdown",ae),document.addEventListener("keydown",xe)}),Ft(()=>{E?.disconnect(),window.removeEventListener("resize",X),document.removeEventListener("pointerdown",ae),document.removeEventListener("keydown",xe)}),t({scrollToLog:j=>Me(()=>s.value?.scrollToLog(j)),selectLogById:j=>Me(()=>s.value?.selectLogById(j)),removeLogsByIds:j=>s.value?.removeLogsByIds(j),loadUntilLogId:j=>Me(()=>s.value?.loadUntilLogId(j)),hasLog:j=>s.value?.hasLog(j)??!1,getLog:j=>s.value?.getLog(j)??null,setLoadingForLog:j=>Me(()=>s.value?.setLoadingForLog(j)),waitForLogRow:j=>Me(()=>s.value?.waitForLogRow(j)),selectEffectById:j=>fe(()=>i.value?.selectEffectById(j)),selectEffectByReference:j=>fe(()=>i.value?.selectEffectByReference(j))}),(j,ce)=>(l(),c("div",Lj,[u("div",Rj,[j.$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),U.value.width>0?"opacity-100":"opacity-0"]]),style:nt({width:`${U.value.width}px`,transform:`translateX(${U.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(Ds),"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",Pj,_(he.label),1),V(he)?(l(),c("span",{key:0,class:J(["shrink-0",h(as)])},_(z(he.count??0)),3)):M("",!0)],10,Ej))),128))],2),ne.value.length>0?(l(),c("div",{key:0,ref_key:"overflowRootRef",ref:C,class:"relative z-20 shrink-0"},[u("button",{ref:B,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"])},[q(h(Oi),{size:17})],10,Nj),N.value?(l(),c("div",Oj,[q(h(Fh),{width:"w-56",shadow:{offsetX:4,offsetY:4,intensity:.32}},{default:be(()=>[(l(!0),c(te,null,Ie(ne.value,he=>(l(),K(h(lg),{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",Dj,_(he.label),1),V(he)?(l(),c("span",{key:0,class:J(["ml-auto shrink-0",h(as)])},_(z(he.count??0)),3)):M("",!0)]),_:2},1032,["active","onClick"]))),128))]),_:1})])):M("",!0)],512)):M("",!0),u("div",Bj,[(l(!0),c(te,null,Ie($.value,he=>(l(),c("button",{key:`measure-${he.id}`,ref_for:!0,ref:Pe=>I(he.id,Pe),type:"button",tabindex:"-1",class:J(h(Ds))},[(l(),K(ct(he.icon),{size:14,class:"shrink-0"})),u("span",Fj,_(he.label),1),V(he)?(l(),c("span",{key:0,class:J(["shrink-0",h(as)])},_(z(he.count??0)),3)):M("",!0)],2))),128)),u("button",jj,[q(h(Oi),{size:17})])])],512),j.$slots["header-actions"]?(l(),c("div",{key:1,ref_key:"headerActionsRef",ref:A,class:"ml-2 flex shrink-0 items-center"},[gt(j.$slots,"header-actions")],512)):M("",!0)]),u("div",qj,[$t(q(uP,{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})=>[q(oF,{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(q(MN,{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(q(cO,{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(q(E7,{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(q($9,{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"]])])]))}}),Vj={class:"relative flex h-full min-h-0 flex-col overflow-hidden"},Hj={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"},Uj={class:"relative flex min-w-0 flex-1 flex-col","aria-label":"Conversation"},Kj=["title"],Es=288,Yd="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",dq=we({__name:"CompositionView",setup(e){const t=rr(),{selectedAgentId:n,setSelectedAgent:r}=jh(),{selectedAgentId:a,selectedAgentDetail:o,selectedAgentSummary:s,sideCompositions:i,models:d,toolsCatalog:p,agents:f,hooks:m,loadingIndex:g,agentsKnown:v,loadingComposition:$,loadError:b,compositionError:T,loadIndex:y,refreshIndex:A,selectAgent:L,refreshComposition:k,isRouteSyncing:C}=kg(),w=x(()=>a.value||n.value),D=x(()=>Fs(t,!!w.value)),F=wC({agentId:w});function U(je){F.setMode(je)}const N=zh,E=x(()=>N.overview.value?qh(N.overview.value,N.nowSeconds.value):new Map),{typeFilter:V,sortBy:z,sortDir:Y,handleSort:I,sortedAgents:B,filterTabs:W}=mv(f,E),P=x(()=>f.value.find(je=>je.id===w.value)??null),X=R(null),re=x(()=>D.value==="structure"?"structure":"threads"),ne=x(()=>D.value==="threads"||D.value==="structure"),de=x(()=>t.path===en&&yl(t.query)),ue=x(()=>!de.value&&Vr({known:v.value,agents:f.value},w.value));function ae(je,Le=re.value){if(je===a.value&&!de.value){Le!==D.value&&U(Le);return}X.value=null,r(je),F.openAgent(je,Le),L(je,!1)}ve(()=>t.query.agent,je=>{if(t.path!==en||g.value||C())return;const Le=typeof je=="string"?je:null;!Le||Le===a.value||(r(Le),L(Le,!1))});const xe=Sv(),Re=x(()=>_v(xe.value)),Me=yv({available:Re,reloadAgents:()=>void y()}),Ee=x(()=>Vh(t.query)),ke=x(je=>{const Le=Hh(t.query),Ve=de.value?Le:{...Le,agent:w.value};return je&&Uh(je,Ve)?je:Ve}),ie=Kh(),se=hv(ke,{onEvent:je=>{ye.handleRegistryEvent(je)},onReconnect:()=>{ye.handleReconnect(),ie.refetch(),b.value&&y()}}),me=Xn("agents.sessionSidebar.collapsed",!1),pe=vv(),Fe=R(null),fe=R(null),Te=R(0),{selectedThreadId:Z,selectedThread:ee,selectedMessageId:oe,selectedLogId:Oe,selectedEffectId:j,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}=wg({selectedAgentId:a,reloadThreads:se.reload,messagesPaneRef:Fe,logsPaneRef:fe}),G=x(()=>Wh(se.threads.value,ke.value)),le=x(()=>Z.value===Ue?null:Z.value),S=x(()=>se.threads.value.find(je=>je.id===le.value)??null),O=R(!1),H=R(0);ve(le,()=>{O.value=!1});const ye=kC({threadId:le,thread:S,threads:se.threads,sideCompositions:i,agents:f}),Q=gC(le),Ae=x(()=>{const je=new Map(se.threads.value.map(Ln=>[Ln.id,Ln])),Le=[];let Ve=S.value?.parent?je.get(S.value.parent):void 0;for(;Ve&&!Le.includes(Ve);)Le.unshift(Ve),Ve=Ve.parent?je.get(Ve.parent):void 0;return Le});ve(()=>[se.isFinished.value,w.value,D.value,de.value,G.value],([je,Le,Ve,Ln,Ii])=>{if(!je||Ve!=="threads"||!Le&&!Ln||Z.value)return;const S0=new Set(Ii.map(cr=>cr.id)),C0=Ii.find(cr=>(!cr.parent||!S0.has(cr.parent))&&(Ln||cr.agent_id===Le||cr.origin_agent_id===Le))??null;ge(C0?.id??null)});function Ne(je){wt(),F.openThread(je)}function Ke(je,Le){if(de.value||ne.value&&je===w.value){Ne(Le);return}wt(),F.openAgentThread(je,Le)}Gh(Ke),Jh(()=>N.overview.value?.attention??null),Xh(()=>D.value!=="threads"||!w.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,Ve])=>{!je||!Le||Ve||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,Ve){if(Ve){pe.open("effects"),Qe(()=>$e(je,Le,Ve));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||w.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:Es,Le=ur.value-je-R4;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),vi=R(pe.isOpen.value),dr=x(()=>Oa.value&&!pe.isOpen.value&&!vi.value&&P4(ur.value-(me.value?0:Es))),Da=x(()=>dr.value&&!Na.value),yi=x(()=>dr.value?Da.value:Ut.value);function bi(){dr.value?Na.value=!Na.value:Ut.value=!Ut.value}function k0(){Q.expand("cost"),dr.value?Na.value=!1:Ut.value=!0}const w0=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]"]}),Fm("Escape",()=>{Ut.value=!1});const xi=Et(null),ki=x(()=>Oa.value&&yi.value);function wi(je){Ut.value=!1,pe.open(je.tab),je.tab==="files"&&je.path&&pe.setFilePath(je.path)}const _i=x(()=>({thread:S.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:xi.value})),_0=R(null);Cv({inspector:()=>{D.value==="threads"&&pe.toggle()},info:()=>{D.value==="threads"&&le.value&&bi()},sessions:()=>{D.value==="threads"&&(me.value=!me.value)}});const Jr=R(0),ns=iv({agent:o,sides:i,agents:f,models:d,toolsCatalog:p,hooks:m,refreshEpoch:Jr}),$0=sv(o,i,ns,d,p,Jr),I0=x(()=>({agent:o.value,sides:i.value,children:ns.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 Ve=await k();Jr.value+=1,Ve&&a.value&&($.value=!0,L(a.value,!1))}),an(()=>{y()}),(je,Le)=>(l(),c("div",Vj,[h(b)?(l(),c("div",Hj,_(h(ze)(h(b))),1)):M("",!0),D.value==="home"?(l(),K(px,{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"])):D.value==="catalog"?(l(),K(Mk,{key:2,class:"min-h-0 flex-1",agents:h(B),"all-agents":h(f),loading:h(g),"agents-known":h(v),overview:h(N).overview.value,metrics:E.value,"now-seconds":h(N).nowSeconds.value,"type-filter":h(V),"filter-tabs":h(W),"sort-by":h(z),"sort-dir":h(Y),packaging:Re.value,"onUpdate:typeFilter":Le[0]||(Le[0]=Ve=>V.value=Ve),onSort:h(I),onSelect:Le[1]||(Le[1]=Ve=>ae(Ve,"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"])):w.value||de.value?(l(),c(te,{key:3},[q(Dk,{mode:re.value,agent:de.value?null:P.value,"agent-id":de.value?null:w.value,agents:h(f),"agent-missing":ue.value,"inspector-open":h(pe).isOpen.value,onSetMode:U,onSelectAgent:Le[3]||(Le[3]=Ve=>ae(Ve,"threads")),onSelectAll:Le[4]||(Le[4]=Ve=>h(F).openThreadView({allAgents:!0,filters:{}})),onToggleInspector:h(pe).toggle},{"thread-actions":be(()=>[D.value==="threads"&&Oa.value?(l(),K(e4,{key:0,"can-edit":H.value>0,"edit-mode":O.value,"info-open":yi.value,onToggleEditMode:Le[2]||(Le[2]=Ve=>O.value=!O.value),onToggleInfo:bi},null,8,["can-edit","edit-mode","info-open"])):M("",!0)]),_:1},8,["mode","agent","agent-id","agents","agent-missing","inspector-open","onToggleInspector"]),D.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:`${Es}px`})},[q(bI,{ref_key:"sessionSidebarRef",ref:_0,query:h(se).query.value,"onUpdate:query":Le[5]||(Le[5]=Ve=>h(se).query.value=Ve),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:w.value,filters:ke.value,"all-agents":de.value,origin:Ee.value,owners:h(ie).owners.value,models:h(Yh)(h(N).overview.value,ke.value.agent),"onUpdate:filters":h(F).setThreadListFilters,onSelect:Ne,onCreate:h(Lt),onLoadMore:h(se).loadMore,onCollapse:Le[6]||(Le[6]=Ve=>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)),q(h(II),{"thread-id":h(Se)?null:le.value},{default:be(()=>[ki.value?(l(),K(h(mC),{key:0,"thread-id":le.value,onUpdate:Le[7]||(Le[7]=Ve=>xi.value=Ve)},null,8,["thread-id"])):M("",!0),u("section",Uj,[le.value&&!h(Se)?(l(),K(nd,{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(j),"hovered-log-id":h(pe).isOpen.value?h(We):null,cost:h(ye).cost,"edit-mode":O.value,"onUpdate:editMode":Le[9]||(Le[9]=Ve=>O.value=Ve),"transcript-margin":Da.value?h(N4):null,onMessageCountChanged:Le[10]||(Le[10]=Ve=>H.value=Ve),onMessageClick:qe,onMessageHover:h(_e),onLogsDeleted:h(kt),onFilesChanged:Le[11]||(Le[11]=Ve=>Te.value+=1),onOpenTurnLogs:ht,onOpenSubagent:Ne},{header:be(()=>[q(GI,{"thread-id":le.value,thread:S.value,ancestors:Ae.value,agents:h(f),"agents-known":h(v),"page-agent-id":de.value?null:w.value,"sessions-collapsed":h(me),"content-end":Da.value?h(O4):null,"info-visible":ki.value,cost:w0.value,onOpenCost:k0,onShowSessions:Le[8]||(Le[8]=Ve=>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(nd,{key:1,ref_key:"messagesPaneRef",ref:Fe,"thread-id":null,"create-thread-draft":!0,"locked-agent-id":w.value,onCancelCreateThread:h(on),onThreadCreated:h(Yt)},null,8,["locked-agent-id","onCancelCreateThread","onThreadCreated"])):(l(),K(IC,{key:2,loading:h(se).isLoading.value,"has-threads":h(se).threads.value.length>0,"can-create":!!w.value,"agent-missing":ue.value,"sessions-collapsed":h(me),"show-sessions-shortcut":h(Er)("b"),onNewThread:h(Lt),onShowSessions:Le[12]||(Le[12]=Ve=>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",Yd]),style:nt({width:`${h(nl)}px`,right:`${h(op)}px`}),role:"complementary","aria-label":"Thread info"},[q(Du,co(_i.value,{onSelectThread:Ne,onToggle:h(Q).toggle,onOpenWorkspace:wi}),null,16,["onToggle"])],4)):M("",!0)]),q($I,{open:h(pe).isOpen.value,width:Gr.value,onResize:h(pe).setWidth,onPresence:Le[14]||(Le[14]=Ve=>vi.value=Ve)},{default:be(()=>[q(zj,{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(j),"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:I0.value,"diagram-loading":h($),"diagram-error":h(T),"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]=(...Ve)=>h(pe).close&&h(pe).close(...Ve))},[q(h(Fo),{class:"h-4 w-4"})],8,Kj)]),_: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",Yd]),style:nt({width:`${h(nl)}px`}),role:"dialog","aria-label":"Thread info"},[q(Du,co(_i.value,{onSelectThread:Ne,onToggle:h(Q).toggle,onOpenWorkspace:wi}),null,16,["onToggle"])],4)):M("",!0)],512)):(l(),K(L5,{key:1,tree:h($0),"selected-node-id":X.value,"hovered-node-id":$i.value,"refresh-epoch":Jr.value,loading:h($),error:h(T),agent:h(o),sides:h(i),"subagent-tree":h(ns),models:h(d),"tools-catalog":h(p),hooks:h(m),onSelect:Le[15]||(Le[15]=Ve=>X.value=Ve),onHover:Le[16]||(Le[16]=Ve=>$i.value=Ve),onDeselect:Le[17]||(Le[17]=Ve=>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},[q(c1,{modelValue:h(Me).showPackModal.value,"onUpdate:modelValue":Le[18]||(Le[18]=Ve=>h(Me).showPackModal.value=Ve),agent:h(Me).packingAgent.value,onPacked:h(Me).finishPack},null,8,["modelValue","agent","onPacked"]),q(P1,{modelValue:h(Me).showUnpackModal.value,"onUpdate:modelValue":Le[19]||(Le[19]=Ve=>h(Me).showUnpackModal.value=Ve),agent:h(Me).unpackingAgent.value,onUnpacked:h(Me).finishUnpack},null,8,["modelValue","agent","onUnpacked"]),q(iw,{modelValue:h(Me).showPublishModal.value,"onUpdate:modelValue":Le[20]||(Le[20]=Ve=>h(Me).showPublishModal.value=Ve),"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{dq as default};
|