dimcode 0.0.6-beta.2 → 0.0.6-beta.21
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 +6 -0
- package/assets/gui/200.html +12 -0
- package/assets/gui/404.html +12 -0
- package/assets/gui/_nuxt/0OuYuFdd.js +1 -0
- package/assets/gui/_nuxt/1fcVKlQD.js +1 -0
- package/assets/gui/_nuxt/4latAK5N.js +68 -0
- package/assets/gui/_nuxt/5J0xJHOV.js +321 -0
- package/assets/gui/_nuxt/5tCQ9P9x.js +1 -0
- package/assets/gui/_nuxt/B-QRPBiU.js +220 -0
- package/assets/gui/_nuxt/B-ocCvqj.js +4 -0
- package/assets/gui/_nuxt/B41oyhUX.js +139 -0
- package/assets/gui/_nuxt/BAsEomiL.js +61 -0
- package/assets/gui/_nuxt/BB51-bYG.js +1 -0
- package/assets/gui/_nuxt/BCdCHJrs.js +22 -0
- package/assets/gui/_nuxt/BHBA7_9A.js +24 -0
- package/assets/gui/_nuxt/BHmwI27Q.js +7 -0
- package/assets/gui/_nuxt/BIK3UA9H.js +1 -0
- package/assets/gui/_nuxt/BJgShMaj.js +122 -0
- package/assets/gui/_nuxt/BMPUUilT.js +60 -0
- package/assets/gui/_nuxt/Be9sogz8.js +1 -0
- package/assets/gui/_nuxt/BojRNRsE.js +1 -0
- package/assets/gui/_nuxt/BtytU9Nc.js +65 -0
- package/assets/gui/_nuxt/C2r5gH2d.js +1 -0
- package/assets/gui/_nuxt/C5QU6AII.js +267 -0
- package/assets/gui/_nuxt/CM2Ru5jE.js +128 -0
- package/assets/gui/_nuxt/CR-veSvi.js +1 -0
- package/assets/gui/_nuxt/CRt9G2a3.js +1 -0
- package/assets/gui/_nuxt/CW5-BTm0.js +1 -0
- package/assets/gui/_nuxt/CYh22N6Z.js +15 -0
- package/assets/gui/_nuxt/C_nwuZOL.js +17 -0
- package/assets/gui/_nuxt/CctfDgzL.js +1 -0
- package/assets/gui/_nuxt/CgCvTYUb.js +1 -0
- package/assets/gui/_nuxt/CjaZXJmO.js +1 -0
- package/assets/gui/_nuxt/CvBv_9Ii.js +43 -0
- package/assets/gui/_nuxt/Cx8lgPkP.js +162 -0
- package/assets/gui/_nuxt/CxrwCJPS.js +1 -0
- package/assets/gui/_nuxt/DCBWnvUv.js +1 -0
- package/assets/gui/_nuxt/DDwo0uwT.js +1 -0
- package/assets/gui/_nuxt/DGBBJ9Xx.js +1 -0
- package/assets/gui/_nuxt/DJ0FGiPu.js +1 -0
- package/assets/gui/_nuxt/DLps5vLc.js +1 -0
- package/assets/gui/_nuxt/DNM2C9RQ.js +1 -0
- package/assets/gui/_nuxt/DQcJWYOz.js +10 -0
- package/assets/gui/_nuxt/DYanJOYX.js +1 -0
- package/assets/gui/_nuxt/Dgtmkgv6.js +145 -0
- package/assets/gui/_nuxt/DhXJpUyf.js +261 -0
- package/assets/gui/_nuxt/DhgdKvf3.js +4 -0
- package/assets/gui/_nuxt/DlAUqK2U.js +1 -0
- package/assets/gui/_nuxt/DoSvhc5U.js +1 -0
- package/assets/gui/_nuxt/Dr-RzAtV.js +1 -0
- package/assets/gui/_nuxt/DuPuI2eK.js +10 -0
- package/assets/gui/_nuxt/DvJDa2y1.js +1 -0
- package/assets/gui/_nuxt/FdVDP1dJ.js +350 -0
- package/assets/gui/_nuxt/Fi3JZ7gi.js +1 -0
- package/assets/gui/_nuxt/FmGx3-yC.js +1 -0
- package/assets/gui/_nuxt/Gi6I4Gst.js +1 -0
- package/assets/gui/_nuxt/I4qJV1od.js +89 -0
- package/assets/gui/_nuxt/JhHowHQY.js +64 -0
- package/assets/gui/_nuxt/QrFbBF0x.js +36 -0
- package/assets/gui/_nuxt/VvxifOG2.js +250 -0
- package/assets/gui/_nuxt/WbTodJZi.js +2 -0
- package/assets/gui/_nuxt/XbL3y5x-.js +261 -0
- package/assets/gui/_nuxt/a4I2nS0P.js +165 -0
- package/assets/gui/_nuxt/builds/latest.json +1 -0
- package/assets/gui/_nuxt/builds/meta/61e794b6-fdf7-4843-93ff-0e0358069cb4.json +1 -0
- package/assets/gui/_nuxt/eM4IBQGT.js +1 -0
- package/assets/gui/_nuxt/entry.DKEE1mdx.css +1 -0
- package/assets/gui/_nuxt/error-404.BAwq3L4-.css +1 -0
- package/assets/gui/_nuxt/error-500.DFXMopWe.css +1 -0
- package/assets/gui/_nuxt/fGWXVeDl.js +7 -0
- package/assets/gui/_nuxt/gw8YJBUN.js +1 -0
- package/assets/gui/_nuxt/index.CeD9Flb2.css +1 -0
- package/assets/gui/_nuxt/m1p94B0o.js +24 -0
- package/assets/gui/_nuxt/moIhOSp_.js +30 -0
- package/assets/gui/_nuxt/waGmH_zw.js +1 -0
- package/assets/gui/_nuxt/yG4UzpsV.js +1 -0
- package/assets/gui/_nuxt/zPZrJS7V.js +1 -0
- package/assets/gui/favicon.ico +0 -0
- package/assets/gui/index.html +12 -0
- package/assets/gui/robots.txt +2 -0
- package/dist/cli.mjs +1278 -970
- package/dist/models/aihubmix.json +19601 -0
- package/dist/models/openrouter.json +7848 -0
- package/dist/models/siliconflow-com.json +2130 -0
- package/dist/models/siliconflow.json +3560 -0
- package/dist/models/zenmux.json +2337 -0
- package/package.json +13 -7
- package/scripts/postinstall.mjs +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as G,a as W,S as N}from"./B-QRPBiU.js";import{_ as f,c as t,d as H,l as S,e as P,k as z,R as _,S as U,O as C,u as F}from"./VvxifOG2.js";import{G as O}from"./FmGx3-yC.js";import{l as J}from"./CxrwCJPS.js";import"./DJ0FGiPu.js";import"./C2r5gH2d.js";import"./FdVDP1dJ.js";import"./1fcVKlQD.js";import"./BIK3UA9H.js";var X=f(e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),"drawStartState"),D=f(e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),Y=f((e,i)=>{const d=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=d.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),d},"drawSimpleState"),I=f((e,i)=>{const d=f(function(g,B,m){const E=g.append("tspan").attr("x",2*t().state.padding).text(B);m||E.attr("dy",t().state.textHeight)},"addTspan"),n=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),l=n.height,x=e.append("text").attr("x",t().state.padding).attr("y",l+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,s=!0;i.descriptions.forEach(function(g){a||(d(x,g,s),s=!1),a=!1});const w=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+l+t().state.dividerMargin/2).attr("y2",t().state.padding+l+t().state.dividerMargin/2).attr("class","descr-divider"),p=x.node().getBBox(),o=Math.max(p.width,n.width);return w.attr("x2",o+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",o+2*t().state.padding).attr("height",p.height+l+2*t().state.padding).attr("rx",t().state.radius),e},"drawDescrState"),$=f((e,i,d)=>{const c=t().state.padding,n=2*t().state.padding,l=e.node().getBBox(),x=l.width,a=l.x,s=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),p=s.node().getBBox().width+n;let o=Math.max(p,x);o===x&&(o=o+n);let g;const B=e.node().getBBox();i.doc,g=a-c,p>x&&(g=(x-o)/2+c),Math.abs(a-B.x)<c&&p>x&&(g=a-(p-x)/2);const m=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",g).attr("y",m).attr("class",d?"alt-composit":"composit").attr("width",o).attr("height",B.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),s.attr("x",g+c),p<=x&&s.attr("x",a+(o-n)/2-p/2+c),e.insert("rect",":first-child").attr("x",g).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",o).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",g).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",o).attr("height",B.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},"addTitleAndBox"),q=f(e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),"drawEndState"),Z=f((e,i)=>{let d=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let n=d;d=c,c=n}return e.append("rect").style("stroke","black").style("fill","black").attr("width",d).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},"drawForkJoinState"),j=f((e,i,d,c)=>{let n=0;const l=c.append("text");l.style("text-anchor","start"),l.attr("class","noteText");let x=e.replace(/\r\n/g,"<br/>");x=x.replace(/\n/g,"<br/>");const a=x.split(z.lineBreakRegex);let s=1.25*t().state.noteMargin;for(const w of a){const p=w.trim();if(p.length>0){const o=l.append("tspan");if(o.text(p),s===0){const g=o.node().getBBox();s+=g.height}n+=s,o.attr("x",i+t().state.noteMargin),o.attr("y",d+n+1.25*t().state.noteMargin)}}return{textWidth:l.node().getBBox().width,textHeight:n}},"_drawLongText"),K=f((e,i)=>{i.attr("class","state-note");const d=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:n,textHeight:l}=j(e,0,0,c);return d.attr("height",l+2*t().state.noteMargin),d.attr("width",n+t().state.noteMargin*2),d},"drawNote"),L=f(function(e,i){const d=i.id,c={id:d,label:i.id,width:0,height:0},n=e.append("g").attr("id",d).attr("class","stateGroup");i.type==="start"&&X(n),i.type==="end"&&q(n),(i.type==="fork"||i.type==="join")&&Z(n,i),i.type==="note"&&K(i.note.text,n),i.type==="divider"&&D(n),i.type==="default"&&i.descriptions.length===0&&Y(n,i),i.type==="default"&&i.descriptions.length>0&&I(n,i);const l=n.node().getBBox();return c.width=l.width+2*t().state.padding,c.height=l.height+2*t().state.padding,c},"drawState"),R=0,Q=f(function(e,i,d){const c=f(function(s){switch(s){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}},"getRelationType");i.points=i.points.filter(s=>!Number.isNaN(s.y));const n=i.points,l=_().x(function(s){return s.x}).y(function(s){return s.y}).curve(U),x=e.append("path").attr("d",l(n)).attr("id","edge"+R).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=C(!0)),x.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),d.title!==void 0){const s=e.append("g").attr("class","stateLabel"),{x:w,y:p}=F.calcLabelPosition(i.points),o=z.getRows(d.title);let g=0;const B=[];let m=0,E=0;for(let u=0;u<=o.length;u++){const h=s.append("text").attr("text-anchor","middle").text(o[u]).attr("x",w).attr("y",p+g),y=h.node().getBBox();m=Math.max(m,y.width),E=Math.min(E,y.x),S.info(y.x,w,p+g),g===0&&(g=h.node().getBBox().height,S.info("Title height",g,p)),B.push(h)}let k=g*o.length;if(o.length>1){const u=(o.length-1)*g*.5;B.forEach((h,y)=>h.attr("y",p+y*g-u)),k=g*o.length}const r=s.node().getBBox();s.insert("rect",":first-child").attr("class","box").attr("x",w-m/2-t().state.padding/2).attr("y",p-k/2-t().state.padding/2-3.5).attr("width",m+t().state.padding).attr("height",k+t().state.padding),S.info(r)}R++},"drawEdge"),b,T={},V=f(function(){},"setConf"),tt=f(function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),et=f(function(e,i,d,c){b=t().state;const n=t().securityLevel;let l;n==="sandbox"&&(l=H("#i"+i));const x=n==="sandbox"?H(l.nodes()[0].contentDocument.body):H("body"),a=n==="sandbox"?l.nodes()[0].contentDocument:document;S.debug("Rendering diagram "+e);const s=x.select(`[id='${i}']`);tt(s);const w=c.db.getRootDoc();A(w,s,void 0,!1,x,a,c);const p=b.padding,o=s.node().getBBox(),g=o.width+p*2,B=o.height+p*2,m=g*1.75;P(s,B,m,b.useMaxWidth),s.attr("viewBox",`${o.x-b.padding} ${o.y-b.padding} `+g+" "+B)},"draw"),at=f(e=>e?e.length*b.fontSizeFactor:1,"getLabelWidth"),A=f((e,i,d,c,n,l,x)=>{const a=new O({compound:!0,multigraph:!0});let s,w=!0;for(s=0;s<e.length;s++)if(e[s].stmt==="relation"){w=!1;break}d?a.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:w?1:b.edgeLengthFactor,nodeSep:w?1:50,isMultiGraph:!0}):a.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:w?1:b.edgeLengthFactor,nodeSep:w?1:50,ranker:"tight-tree",isMultiGraph:!0}),a.setDefaultEdgeLabel(function(){return{}});const p=x.db.getStates(),o=x.db.getRelations(),g=Object.keys(p);for(const r of g){const u=p[r];d&&(u.parentId=d);let h;if(u.doc){let y=i.append("g").attr("id",u.id).attr("class","stateGroup");h=A(u.doc,y,u.id,!c,n,l,x);{y=$(y,u,c);let v=y.node().getBBox();h.width=v.width,h.height=v.height+b.padding/2,T[u.id]={y:b.compositTitleSize}}}else h=L(i,u,a);if(u.note){const y={descriptions:[],id:u.id+"-note",note:u.note,type:"note"},v=L(i,y,a);u.note.position==="left of"?(a.setNode(h.id+"-note",v),a.setNode(h.id,h)):(a.setNode(h.id,h),a.setNode(h.id+"-note",v)),a.setParent(h.id,h.id+"-group"),a.setParent(h.id+"-note",h.id+"-group")}else a.setNode(h.id,h)}S.debug("Count=",a.nodeCount(),a);let B=0;o.forEach(function(r){B++,S.debug("Setting edge",r),a.setEdge(r.id1,r.id2,{relation:r,width:at(r.title),height:b.labelHeight*z.getRows(r.title).length,labelpos:"c"},"id"+B)}),J(a),S.debug("Graph after layout",a.nodes());const m=i.node();a.nodes().forEach(function(r){r!==void 0&&a.node(r)!==void 0?(S.warn("Node "+r+": "+JSON.stringify(a.node(r))),n.select("#"+m.id+" #"+r).attr("transform","translate("+(a.node(r).x-a.node(r).width/2)+","+(a.node(r).y+(T[r]?T[r].y:0)-a.node(r).height/2)+" )"),n.select("#"+m.id+" #"+r).attr("data-x-shift",a.node(r).x-a.node(r).width/2),l.querySelectorAll("#"+m.id+" #"+r+" .divider").forEach(h=>{const y=h.parentElement;let v=0,M=0;y&&(y.parentElement&&(v=y.parentElement.getBBox().width),M=parseInt(y.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",v-M-8)})):S.debug("No Node "+r+": "+JSON.stringify(a.node(r)))});let E=m.getBBox();a.edges().forEach(function(r){r!==void 0&&a.edge(r)!==void 0&&(S.debug("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(a.edge(r))),Q(i,a.edge(r),a.edge(r).relation))}),E=m.getBBox();const k={id:d||"root",label:d||"root",width:0,height:0};return k.width=E.width+2*b.padding,k.height=E.height+2*b.padding,S.debug("Doc rendered",k,a),k},"renderDoc"),it={setConf:V,draw:et},pt={parser:W,get db(){return new N(1)},renderer:it,styles:G,init:f(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{pt as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as a,c as s,a as e,C as t}from"./a4I2nS0P.js";import{_ as i}from"./VvxifOG2.js";import"./CYh22N6Z.js";import"./DJ0FGiPu.js";import"./C2r5gH2d.js";import"./FdVDP1dJ.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{V as a,W as n}from"./VvxifOG2.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import{_ as e}from"./VvxifOG2.js";var l=e(()=>`
|
|
2
|
+
/* Font Awesome icon styling - consolidated */
|
|
3
|
+
.label-icon {
|
|
4
|
+
display: inline-block;
|
|
5
|
+
height: 1em;
|
|
6
|
+
overflow: visible;
|
|
7
|
+
vertical-align: -0.125em;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.node .label-icon path {
|
|
11
|
+
fill: currentColor;
|
|
12
|
+
stroke: revert;
|
|
13
|
+
stroke-width: revert;
|
|
14
|
+
}
|
|
15
|
+
`,"getIconStyles");export{l as g};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import{d as Ae,g as w,j as S,l as n,I as ae,ah as $e,ai as Fe,O as we,p as G,q as T,F as N,aj as js,r as Ls,S as _s,D as O,J as Z,y as ue,n as De,ag as Ie,z as Ce,a4 as Tn,m as qt,P as Qs,ak as As,w as Ee,k as gt,al as vt,R as Ke,o as En,f as Pn}from"./FdVDP1dJ.js";import{_ as Un}from"./DlAUqK2U.js";const On={class:"flex items-center justify-between mb-3"},Dn={class:"space-y-4"},Nn={key:0,class:"space-y-4"},Bn={class:"flex items-start gap-2 mb-3"},zn={class:"inline-flex items-center rounded bg-gray-100 dark:bg-gray-800 px-2 py-0.5 text-[10px] text-text-secondary-light dark:text-text-secondary-dark"},jn={class:"text-sm text-text-primary-light dark:text-text-primary-dark"},Ln={class:"space-y-2"},_n=["type","name","checked","onChange"],Qn={class:"font-medium"},qn={class:"text-[10px] text-text-secondary-light dark:text-text-secondary-dark"},Fn={key:0,class:"space-y-2"},Wn={class:"flex items-start gap-2 text-xs text-text-primary-light dark:text-text-primary-dark"},Vn=["type","name","checked","onChange"],Gn={class:"font-medium"},Jn=["value","onInput"],Hn={key:1,class:"text-xs text-text-secondary-light dark:text-text-secondary-dark"},Kn={class:"mt-4 flex justify-end gap-2"},Yn=["disabled"],Xn=["disabled"],Zn=Ae({__name:"AskUserDialog",props:{open:{type:Boolean},questions:{},selections:{},otherInputs:{},otherLabel:{},busy:{type:Boolean},isSelected:{type:Function}},emits:["cancel","submit","option-change","update:otherInputs"],setup(e,{expose:s}){const t=T(null);return s({dialogEl:t}),(r,a)=>e.open?(w(),S("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 backdrop-blur-sm px-4",role:"presentation",onClick:a[5]||(a[5]=o=>r.$emit("cancel"))},[n("div",{ref_key:"dialogEl",ref:t,class:"w-full max-w-2xl rounded-lg border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark shadow-lg p-5",role:"dialog","aria-modal":"true",tabindex:"0",onClick:a[3]||(a[3]=we(()=>{},["stop"])),onKeydown:a[4]||(a[4]=Fe(we(o=>r.$emit("cancel"),["stop","prevent"]),["escape"]))},[n("div",On,[a[7]||(a[7]=n("h3",{class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark"}," Answer questions ",-1)),n("button",{class:"text-text-secondary-light dark:text-text-secondary-dark hover:text-primary",type:"button",onClick:a[0]||(a[0]=o=>r.$emit("cancel"))},[...a[6]||(a[6]=[n("span",{class:"material-icons-outlined text-base"},"close",-1)])])]),n("div",Dn,[a[9]||(a[9]=n("p",{class:"text-xs text-text-secondary-light dark:text-text-secondary-dark"}," Provide answers to let the agent continue. ",-1)),e.questions.length?(w(),S("div",Nn,[(w(!0),S(ae,null,$e(e.questions,(o,l)=>(w(),S("div",{key:`ask-${l}`,class:"rounded-md border border-border-light dark:border-border-dark p-3"},[n("div",Bn,[n("span",zn,N(o.header),1),n("p",jn,N(o.question),1)]),n("div",Ln,[(w(!0),S(ae,null,$e(o.options||[],m=>(w(),S("label",{key:m.label,class:"flex items-start gap-2 text-xs text-text-primary-light dark:text-text-primary-dark"},[n("input",{type:o.multiSelect?"checkbox":"radio",name:`ask-${l}`,checked:e.isSelected(l,m.label),class:"mt-1 h-3 w-3",onChange:i=>r.$emit("option-change",l,m.label,i)},null,40,_n),n("div",null,[n("div",Qn,N(m.label),1),n("div",qn,N(m.description),1)])]))),128)),o.multiSelect?G("",!0):(w(),S("div",Fn,[n("label",Wn,[n("input",{type:o.multiSelect?"checkbox":"radio",name:`ask-${l}`,checked:e.isSelected(l,e.otherLabel),class:"mt-1 h-3 w-3",onChange:m=>r.$emit("option-change",l,e.otherLabel,m)},null,40,Vn),n("div",null,[n("div",Gn,N(e.otherLabel),1),a[8]||(a[8]=n("div",{class:"text-[10px] text-text-secondary-light dark:text-text-secondary-dark"}," Provide a custom answer ",-1))])]),e.isSelected(l,e.otherLabel)?(w(),S("input",{key:0,value:e.otherInputs[l]||"",class:"w-full rounded-md border border-border-light dark:border-border-dark bg-transparent px-2 py-1 text-xs text-text-primary-light dark:text-text-primary-dark",type:"text",placeholder:"Type your answer",onInput:m=>r.$emit("update:otherInputs",{...e.otherInputs,[l]:m.target.value})},null,40,Jn)):G("",!0)]))])]))),128))])):(w(),S("p",Hn,"No questions available."))]),n("div",Kn,[n("button",{class:"text-xs px-3 py-1.5 rounded border border-border-light dark:border-border-dark",type:"button",disabled:e.busy,onClick:a[1]||(a[1]=o=>r.$emit("cancel"))}," Cancel ",8,Yn),n("button",{class:"text-xs px-3 py-1.5 rounded bg-primary text-primary-foreground",type:"button",disabled:e.busy,onClick:a[2]||(a[2]=o=>r.$emit("submit"))}," Submit ",8,Xn)])],544)])):G("",!0)}}),eo=Object.assign(Zn,{__name:"AskUserDialog"});function qs(e){var s,t,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(s=0;s<a;s++)e[s]&&(t=qs(e[s]))&&(r&&(r+=" "),r+=t)}else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function Fs(){for(var e,s,t=0,r="",a=arguments.length;t<a;t++)(e=arguments[t])&&(s=qs(e))&&(r&&(r+=" "),r+=s);return r}const Ms=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Rs=Fs,to=(e,s)=>t=>{var r;if(s?.variants==null)return Rs(e,t?.class,t?.className);const{variants:a,defaultVariants:o}=s,l=Object.keys(a).map(b=>{const g=t?.[b],M=o?.[b];if(g===null)return null;const y=Ms(g)||Ms(M);return a[b][y]}),m=t&&Object.entries(t).reduce((b,g)=>{let[M,y]=g;return y===void 0||(b[M]=y),b},{}),i=s==null||(r=s.compoundVariants)===null||r===void 0?void 0:r.reduce((b,g)=>{let{class:M,className:y,...d}=g;return Object.entries(d).every(x=>{let[R,$]=x;return Array.isArray($)?$.includes({...o,...m}[R]):{...o,...m}[R]===$})?[...b,M,y]:b},[]);return Rs(e,l,i,t?.class,t?.className)},so=(e,s)=>{const t=new Array(e.length+s.length);for(let r=0;r<e.length;r++)t[r]=e[r];for(let r=0;r<s.length;r++)t[e.length+r]=s[r];return t},ro=(e,s)=>({classGroupId:e,validator:s}),Ws=(e=new Map,s=null,t)=>({nextPart:e,validators:s,classGroupId:t}),jt="-",Ts=[],no="arbitrary..",oo=e=>{const s=lo(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return ao(l);const m=l.split(jt),i=m[0]===""&&m.length>1?1:0;return Vs(m,i,s)},getConflictingClassGroupIds:(l,m)=>{if(m){const i=r[l],b=t[l];return i?b?so(b,i):i:b||Ts}return t[l]||Ts}}},Vs=(e,s,t)=>{if(e.length-s===0)return t.classGroupId;const a=e[s],o=t.nextPart.get(a);if(o){const b=Vs(e,s+1,o);if(b)return b}const l=t.validators;if(l===null)return;const m=s===0?e.join(jt):e.slice(s).join(jt),i=l.length;for(let b=0;b<i;b++){const g=l[b];if(g.validator(m))return g.classGroupId}},ao=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const s=e.slice(1,-1),t=s.indexOf(":"),r=s.slice(0,t);return r?no+r:void 0})(),lo=e=>{const{theme:s,classGroups:t}=e;return io(t,s)},io=(e,s)=>{const t=Ws();for(const r in e){const a=e[r];as(a,t,r,s)}return t},as=(e,s,t,r)=>{const a=e.length;for(let o=0;o<a;o++){const l=e[o];co(l,s,t,r)}},co=(e,s,t,r)=>{if(typeof e=="string"){uo(e,s,t);return}if(typeof e=="function"){mo(e,s,t,r);return}po(e,s,t,r)},uo=(e,s,t)=>{const r=e===""?s:Gs(s,e);r.classGroupId=t},mo=(e,s,t,r)=>{if(fo(e)){as(e(r),s,t,r);return}s.validators===null&&(s.validators=[]),s.validators.push(ro(t,e))},po=(e,s,t,r)=>{const a=Object.entries(e),o=a.length;for(let l=0;l<o;l++){const[m,i]=a[l];as(i,Gs(s,m),t,r)}},Gs=(e,s)=>{let t=e;const r=s.split(jt),a=r.length;for(let o=0;o<a;o++){const l=r[o];let m=t.nextPart.get(l);m||(m=Ws(),t.nextPart.set(l,m)),t=m}return t},fo=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,go=e=>{if(e<1)return{get:()=>{},set:()=>{}};let s=0,t=Object.create(null),r=Object.create(null);const a=(o,l)=>{t[o]=l,s++,s>e&&(s=0,r=t,t=Object.create(null))};return{get(o){let l=t[o];if(l!==void 0)return l;if((l=r[o])!==void 0)return a(o,l),l},set(o,l){o in t?t[o]=l:a(o,l)}}},rs="!",Es=":",vo=[],Ps=(e,s,t,r,a)=>({modifiers:e,hasImportantModifier:s,baseClassName:t,maybePostfixModifierPosition:r,isExternal:a}),yo=e=>{const{prefix:s,experimentalParseClassName:t}=e;let r=a=>{const o=[];let l=0,m=0,i=0,b;const g=a.length;for(let R=0;R<g;R++){const $=a[R];if(l===0&&m===0){if($===Es){o.push(a.slice(i,R)),i=R+1;continue}if($==="/"){b=R;continue}}$==="["?l++:$==="]"?l--:$==="("?m++:$===")"&&m--}const M=o.length===0?a:a.slice(i);let y=M,d=!1;M.endsWith(rs)?(y=M.slice(0,-1),d=!0):M.startsWith(rs)&&(y=M.slice(1),d=!0);const x=b&&b>i?b-i:void 0;return Ps(o,d,y,x)};if(s){const a=s+Es,o=r;r=l=>l.startsWith(a)?o(l.slice(a.length)):Ps(vo,!1,l,void 0,!0)}if(t){const a=r;r=o=>t({className:o,parseClassName:a})}return r},xo=e=>{const s=new Map;return e.orderSensitiveModifiers.forEach((t,r)=>{s.set(t,1e6+r)}),t=>{const r=[];let a=[];for(let o=0;o<t.length;o++){const l=t[o],m=l[0]==="[",i=s.has(l);m||i?(a.length>0&&(a.sort(),r.push(...a),a=[]),r.push(l)):a.push(l)}return a.length>0&&(a.sort(),r.push(...a)),r}},ho=e=>({cache:go(e.cacheSize),parseClassName:yo(e),sortModifiers:xo(e),...oo(e)}),bo=/\s+/,ko=(e,s)=>{const{parseClassName:t,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:o}=s,l=[],m=e.trim().split(bo);let i="";for(let b=m.length-1;b>=0;b-=1){const g=m[b],{isExternal:M,modifiers:y,hasImportantModifier:d,baseClassName:x,maybePostfixModifierPosition:R}=t(g);if(M){i=g+(i.length>0?" "+i:i);continue}let $=!!R,D=r($?x.substring(0,R):x);if(!D){if(!$){i=g+(i.length>0?" "+i:i);continue}if(D=r(x),!D){i=g+(i.length>0?" "+i:i);continue}$=!1}const U=y.length===0?"":y.length===1?y[0]:o(y).join(":"),h=d?U+rs:U,v=h+D;if(l.indexOf(v)>-1)continue;l.push(v);const C=a(D,$);for(let I=0;I<C.length;++I){const c=C[I];l.push(h+c)}i=g+(i.length>0?" "+i:i)}return i},wo=(...e)=>{let s=0,t,r,a="";for(;s<e.length;)(t=e[s++])&&(r=Js(t))&&(a&&(a+=" "),a+=r);return a},Js=e=>{if(typeof e=="string")return e;let s,t="";for(let r=0;r<e.length;r++)e[r]&&(s=Js(e[r]))&&(t&&(t+=" "),t+=s);return t},So=(e,...s)=>{let t,r,a,o;const l=i=>{const b=s.reduce((g,M)=>M(g),e());return t=ho(b),r=t.cache.get,a=t.cache.set,o=m,m(i)},m=i=>{const b=r(i);if(b)return b;const g=ko(i,t);return a(i,g),g};return o=l,(...i)=>o(wo(...i))},Co=[],ye=e=>{const s=t=>t[e]||Co;return s.isThemeGetter=!0,s},Hs=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ks=/^\((?:(\w[\w-]*):)?(.+)\)$/i,$o=/^\d+\/\d+$/,Io=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ao=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Mo=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ro=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,To=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,nt=e=>$o.test(e),X=e=>!!e&&!Number.isNaN(Number(e)),Qe=e=>!!e&&Number.isInteger(Number(e)),Xt=e=>e.endsWith("%")&&X(e.slice(0,-1)),Le=e=>Io.test(e),Eo=()=>!0,Po=e=>Ao.test(e)&&!Mo.test(e),Ys=()=>!1,Uo=e=>Ro.test(e),Oo=e=>To.test(e),Do=e=>!Q(e)&&!q(e),No=e=>lt(e,er,Ys),Q=e=>Hs.test(e),Je=e=>lt(e,tr,Po),Zt=e=>lt(e,_o,X),Us=e=>lt(e,Xs,Ys),Bo=e=>lt(e,Zs,Oo),Ot=e=>lt(e,sr,Uo),q=e=>Ks.test(e),yt=e=>it(e,tr),zo=e=>it(e,Qo),Os=e=>it(e,Xs),jo=e=>it(e,er),Lo=e=>it(e,Zs),Dt=e=>it(e,sr,!0),lt=(e,s,t)=>{const r=Hs.exec(e);return r?r[1]?s(r[1]):t(r[2]):!1},it=(e,s,t=!1)=>{const r=Ks.exec(e);return r?r[1]?s(r[1]):t:!1},Xs=e=>e==="position"||e==="percentage",Zs=e=>e==="image"||e==="url",er=e=>e==="length"||e==="size"||e==="bg-size",tr=e=>e==="length",_o=e=>e==="number",Qo=e=>e==="family-name",sr=e=>e==="shadow",qo=()=>{const e=ye("color"),s=ye("font"),t=ye("text"),r=ye("font-weight"),a=ye("tracking"),o=ye("leading"),l=ye("breakpoint"),m=ye("container"),i=ye("spacing"),b=ye("radius"),g=ye("shadow"),M=ye("inset-shadow"),y=ye("text-shadow"),d=ye("drop-shadow"),x=ye("blur"),R=ye("perspective"),$=ye("aspect"),D=ye("ease"),U=ye("animate"),h=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],C=()=>[...v(),q,Q],I=()=>["auto","hidden","clip","visible","scroll"],c=()=>["auto","contain","none"],u=()=>[q,Q,i],z=()=>[nt,"full","auto",...u()],_=()=>[Qe,"none","subgrid",q,Q],j=()=>["auto",{span:["full",Qe,q,Q]},Qe,q,Q],E=()=>[Qe,"auto",q,Q],V=()=>["auto","min","max","fr",q,Q],ve=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ne=()=>["start","end","center","stretch","center-safe","end-safe"],Se=()=>["auto",...u()],te=()=>[nt,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...u()],W=()=>[e,q,Q],_e=()=>[...v(),Os,Us,{position:[q,Q]}],Ve=()=>["no-repeat",{repeat:["","x","y","space","round"]}],se=()=>["auto","cover","contain",jo,No,{size:[q,Q]}],P=()=>[Xt,yt,Je],pe=()=>["","none","full",b,q,Q],xe=()=>["",X,yt,Je],ze=()=>["solid","dashed","dotted","double"],ie=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],H=()=>[X,Xt,Os,Us],he=()=>["","none",x,q,Q],fe=()=>["none",X,q,Q],Pe=()=>["none",X,q,Q],dt=()=>[X,q,Q],Xe=()=>[nt,"full",...u()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Le],breakpoint:[Le],color:[Eo],container:[Le],"drop-shadow":[Le],ease:["in","out","in-out"],font:[Do],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Le],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Le],shadow:[Le],spacing:["px",X],text:[Le],"text-shadow":[Le],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",nt,Q,q,$]}],container:["container"],columns:[{columns:[X,Q,q,m]}],"break-after":[{"break-after":h()}],"break-before":[{"break-before":h()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:C()}],overflow:[{overflow:I()}],"overflow-x":[{"overflow-x":I()}],"overflow-y":[{"overflow-y":I()}],overscroll:[{overscroll:c()}],"overscroll-x":[{"overscroll-x":c()}],"overscroll-y":[{"overscroll-y":c()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:z()}],"inset-x":[{"inset-x":z()}],"inset-y":[{"inset-y":z()}],start:[{start:z()}],end:[{end:z()}],top:[{top:z()}],right:[{right:z()}],bottom:[{bottom:z()}],left:[{left:z()}],visibility:["visible","invisible","collapse"],z:[{z:[Qe,"auto",q,Q]}],basis:[{basis:[nt,"full","auto",m,...u()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[X,nt,"auto","initial","none",Q]}],grow:[{grow:["",X,q,Q]}],shrink:[{shrink:["",X,q,Q]}],order:[{order:[Qe,"first","last","none",q,Q]}],"grid-cols":[{"grid-cols":_()}],"col-start-end":[{col:j()}],"col-start":[{"col-start":E()}],"col-end":[{"col-end":E()}],"grid-rows":[{"grid-rows":_()}],"row-start-end":[{row:j()}],"row-start":[{"row-start":E()}],"row-end":[{"row-end":E()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:u()}],"gap-x":[{"gap-x":u()}],"gap-y":[{"gap-y":u()}],"justify-content":[{justify:[...ve(),"normal"]}],"justify-items":[{"justify-items":[...ne(),"normal"]}],"justify-self":[{"justify-self":["auto",...ne()]}],"align-content":[{content:["normal",...ve()]}],"align-items":[{items:[...ne(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ne(),{baseline:["","last"]}]}],"place-content":[{"place-content":ve()}],"place-items":[{"place-items":[...ne(),"baseline"]}],"place-self":[{"place-self":["auto",...ne()]}],p:[{p:u()}],px:[{px:u()}],py:[{py:u()}],ps:[{ps:u()}],pe:[{pe:u()}],pt:[{pt:u()}],pr:[{pr:u()}],pb:[{pb:u()}],pl:[{pl:u()}],m:[{m:Se()}],mx:[{mx:Se()}],my:[{my:Se()}],ms:[{ms:Se()}],me:[{me:Se()}],mt:[{mt:Se()}],mr:[{mr:Se()}],mb:[{mb:Se()}],ml:[{ml:Se()}],"space-x":[{"space-x":u()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":u()}],"space-y-reverse":["space-y-reverse"],size:[{size:te()}],w:[{w:[m,"screen",...te()]}],"min-w":[{"min-w":[m,"screen","none",...te()]}],"max-w":[{"max-w":[m,"screen","none","prose",{screen:[l]},...te()]}],h:[{h:["screen","lh",...te()]}],"min-h":[{"min-h":["screen","lh","none",...te()]}],"max-h":[{"max-h":["screen","lh",...te()]}],"font-size":[{text:["base",t,yt,Je]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,q,Zt]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Xt,Q]}],"font-family":[{font:[zo,Q,s]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,q,Q]}],"line-clamp":[{"line-clamp":[X,"none",q,Zt]}],leading:[{leading:[o,...u()]}],"list-image":[{"list-image":["none",q,Q]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",q,Q]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:W()}],"text-color":[{text:W()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ze(),"wavy"]}],"text-decoration-thickness":[{decoration:[X,"from-font","auto",q,Je]}],"text-decoration-color":[{decoration:W()}],"underline-offset":[{"underline-offset":[X,"auto",q,Q]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:u()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",q,Q]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",q,Q]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:_e()}],"bg-repeat":[{bg:Ve()}],"bg-size":[{bg:se()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Qe,q,Q],radial:["",q,Q],conic:[Qe,q,Q]},Lo,Bo]}],"bg-color":[{bg:W()}],"gradient-from-pos":[{from:P()}],"gradient-via-pos":[{via:P()}],"gradient-to-pos":[{to:P()}],"gradient-from":[{from:W()}],"gradient-via":[{via:W()}],"gradient-to":[{to:W()}],rounded:[{rounded:pe()}],"rounded-s":[{"rounded-s":pe()}],"rounded-e":[{"rounded-e":pe()}],"rounded-t":[{"rounded-t":pe()}],"rounded-r":[{"rounded-r":pe()}],"rounded-b":[{"rounded-b":pe()}],"rounded-l":[{"rounded-l":pe()}],"rounded-ss":[{"rounded-ss":pe()}],"rounded-se":[{"rounded-se":pe()}],"rounded-ee":[{"rounded-ee":pe()}],"rounded-es":[{"rounded-es":pe()}],"rounded-tl":[{"rounded-tl":pe()}],"rounded-tr":[{"rounded-tr":pe()}],"rounded-br":[{"rounded-br":pe()}],"rounded-bl":[{"rounded-bl":pe()}],"border-w":[{border:xe()}],"border-w-x":[{"border-x":xe()}],"border-w-y":[{"border-y":xe()}],"border-w-s":[{"border-s":xe()}],"border-w-e":[{"border-e":xe()}],"border-w-t":[{"border-t":xe()}],"border-w-r":[{"border-r":xe()}],"border-w-b":[{"border-b":xe()}],"border-w-l":[{"border-l":xe()}],"divide-x":[{"divide-x":xe()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":xe()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ze(),"hidden","none"]}],"divide-style":[{divide:[...ze(),"hidden","none"]}],"border-color":[{border:W()}],"border-color-x":[{"border-x":W()}],"border-color-y":[{"border-y":W()}],"border-color-s":[{"border-s":W()}],"border-color-e":[{"border-e":W()}],"border-color-t":[{"border-t":W()}],"border-color-r":[{"border-r":W()}],"border-color-b":[{"border-b":W()}],"border-color-l":[{"border-l":W()}],"divide-color":[{divide:W()}],"outline-style":[{outline:[...ze(),"none","hidden"]}],"outline-offset":[{"outline-offset":[X,q,Q]}],"outline-w":[{outline:["",X,yt,Je]}],"outline-color":[{outline:W()}],shadow:[{shadow:["","none",g,Dt,Ot]}],"shadow-color":[{shadow:W()}],"inset-shadow":[{"inset-shadow":["none",M,Dt,Ot]}],"inset-shadow-color":[{"inset-shadow":W()}],"ring-w":[{ring:xe()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:W()}],"ring-offset-w":[{"ring-offset":[X,Je]}],"ring-offset-color":[{"ring-offset":W()}],"inset-ring-w":[{"inset-ring":xe()}],"inset-ring-color":[{"inset-ring":W()}],"text-shadow":[{"text-shadow":["none",y,Dt,Ot]}],"text-shadow-color":[{"text-shadow":W()}],opacity:[{opacity:[X,q,Q]}],"mix-blend":[{"mix-blend":[...ie(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ie()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[X]}],"mask-image-linear-from-pos":[{"mask-linear-from":H()}],"mask-image-linear-to-pos":[{"mask-linear-to":H()}],"mask-image-linear-from-color":[{"mask-linear-from":W()}],"mask-image-linear-to-color":[{"mask-linear-to":W()}],"mask-image-t-from-pos":[{"mask-t-from":H()}],"mask-image-t-to-pos":[{"mask-t-to":H()}],"mask-image-t-from-color":[{"mask-t-from":W()}],"mask-image-t-to-color":[{"mask-t-to":W()}],"mask-image-r-from-pos":[{"mask-r-from":H()}],"mask-image-r-to-pos":[{"mask-r-to":H()}],"mask-image-r-from-color":[{"mask-r-from":W()}],"mask-image-r-to-color":[{"mask-r-to":W()}],"mask-image-b-from-pos":[{"mask-b-from":H()}],"mask-image-b-to-pos":[{"mask-b-to":H()}],"mask-image-b-from-color":[{"mask-b-from":W()}],"mask-image-b-to-color":[{"mask-b-to":W()}],"mask-image-l-from-pos":[{"mask-l-from":H()}],"mask-image-l-to-pos":[{"mask-l-to":H()}],"mask-image-l-from-color":[{"mask-l-from":W()}],"mask-image-l-to-color":[{"mask-l-to":W()}],"mask-image-x-from-pos":[{"mask-x-from":H()}],"mask-image-x-to-pos":[{"mask-x-to":H()}],"mask-image-x-from-color":[{"mask-x-from":W()}],"mask-image-x-to-color":[{"mask-x-to":W()}],"mask-image-y-from-pos":[{"mask-y-from":H()}],"mask-image-y-to-pos":[{"mask-y-to":H()}],"mask-image-y-from-color":[{"mask-y-from":W()}],"mask-image-y-to-color":[{"mask-y-to":W()}],"mask-image-radial":[{"mask-radial":[q,Q]}],"mask-image-radial-from-pos":[{"mask-radial-from":H()}],"mask-image-radial-to-pos":[{"mask-radial-to":H()}],"mask-image-radial-from-color":[{"mask-radial-from":W()}],"mask-image-radial-to-color":[{"mask-radial-to":W()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":v()}],"mask-image-conic-pos":[{"mask-conic":[X]}],"mask-image-conic-from-pos":[{"mask-conic-from":H()}],"mask-image-conic-to-pos":[{"mask-conic-to":H()}],"mask-image-conic-from-color":[{"mask-conic-from":W()}],"mask-image-conic-to-color":[{"mask-conic-to":W()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:_e()}],"mask-repeat":[{mask:Ve()}],"mask-size":[{mask:se()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",q,Q]}],filter:[{filter:["","none",q,Q]}],blur:[{blur:he()}],brightness:[{brightness:[X,q,Q]}],contrast:[{contrast:[X,q,Q]}],"drop-shadow":[{"drop-shadow":["","none",d,Dt,Ot]}],"drop-shadow-color":[{"drop-shadow":W()}],grayscale:[{grayscale:["",X,q,Q]}],"hue-rotate":[{"hue-rotate":[X,q,Q]}],invert:[{invert:["",X,q,Q]}],saturate:[{saturate:[X,q,Q]}],sepia:[{sepia:["",X,q,Q]}],"backdrop-filter":[{"backdrop-filter":["","none",q,Q]}],"backdrop-blur":[{"backdrop-blur":he()}],"backdrop-brightness":[{"backdrop-brightness":[X,q,Q]}],"backdrop-contrast":[{"backdrop-contrast":[X,q,Q]}],"backdrop-grayscale":[{"backdrop-grayscale":["",X,q,Q]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[X,q,Q]}],"backdrop-invert":[{"backdrop-invert":["",X,q,Q]}],"backdrop-opacity":[{"backdrop-opacity":[X,q,Q]}],"backdrop-saturate":[{"backdrop-saturate":[X,q,Q]}],"backdrop-sepia":[{"backdrop-sepia":["",X,q,Q]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":u()}],"border-spacing-x":[{"border-spacing-x":u()}],"border-spacing-y":[{"border-spacing-y":u()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",q,Q]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[X,"initial",q,Q]}],ease:[{ease:["linear","initial",D,q,Q]}],delay:[{delay:[X,q,Q]}],animate:[{animate:["none",U,q,Q]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[R,q,Q]}],"perspective-origin":[{"perspective-origin":C()}],rotate:[{rotate:fe()}],"rotate-x":[{"rotate-x":fe()}],"rotate-y":[{"rotate-y":fe()}],"rotate-z":[{"rotate-z":fe()}],scale:[{scale:Pe()}],"scale-x":[{"scale-x":Pe()}],"scale-y":[{"scale-y":Pe()}],"scale-z":[{"scale-z":Pe()}],"scale-3d":["scale-3d"],skew:[{skew:dt()}],"skew-x":[{"skew-x":dt()}],"skew-y":[{"skew-y":dt()}],transform:[{transform:[q,Q,"","none","gpu","cpu"]}],"transform-origin":[{origin:C()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Xe()}],"translate-x":[{"translate-x":Xe()}],"translate-y":[{"translate-y":Xe()}],"translate-z":[{"translate-z":Xe()}],"translate-none":["translate-none"],accent:[{accent:W()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:W()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",q,Q]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":u()}],"scroll-mx":[{"scroll-mx":u()}],"scroll-my":[{"scroll-my":u()}],"scroll-ms":[{"scroll-ms":u()}],"scroll-me":[{"scroll-me":u()}],"scroll-mt":[{"scroll-mt":u()}],"scroll-mr":[{"scroll-mr":u()}],"scroll-mb":[{"scroll-mb":u()}],"scroll-ml":[{"scroll-ml":u()}],"scroll-p":[{"scroll-p":u()}],"scroll-px":[{"scroll-px":u()}],"scroll-py":[{"scroll-py":u()}],"scroll-ps":[{"scroll-ps":u()}],"scroll-pe":[{"scroll-pe":u()}],"scroll-pt":[{"scroll-pt":u()}],"scroll-pr":[{"scroll-pr":u()}],"scroll-pb":[{"scroll-pb":u()}],"scroll-pl":[{"scroll-pl":u()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",q,Q]}],fill:[{fill:["none",...W()]}],"stroke-w":[{stroke:[X,yt,Je,Zt]}],stroke:[{stroke:["none",...W()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Fo=So(qo);function rr(...e){return Fo(Fs(e))}const Wo=Ae({inheritAttrs:!1,__name:"Button",props:{variant:{default:"default"},size:{default:"default"},class:{default:""}},setup(e){const s=to("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background-light transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-sm",outline:"border border-border-light dark:border-border-dark bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800 text-text-primary-light dark:text-text-primary-dark",secondary:"bg-gray-100 dark:bg-gray-800 text-text-primary-light dark:text-text-primary-dark hover:bg-gray-200 dark:hover:bg-gray-700",ghost:"hover:bg-gray-100 dark:hover:bg-gray-800 text-text-secondary-light dark:text-text-secondary-dark hover:text-text-primary-light dark:hover:text-text-primary-dark",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),t=e,r=js(),a=Z(()=>rr(s({variant:t.variant,size:t.size}),t.class));return(o,l)=>(w(),S("button",_s(O(r),{class:a.value}),[Ls(o.$slots,"default")],16))}}),Be=Object.assign(Wo,{__name:"UiButton"}),Vo=Ae({inheritAttrs:!1,__name:"Card",props:{class:{default:""}},setup(e){const s=e,t=js(),r=Z(()=>rr("rounded-lg border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark text-text-primary-light dark:text-text-primary-dark shadow-sm",s.class));return(a,o)=>(w(),S("div",_s(O(t),{class:r.value}),[Ls(a.$slots,"default")],16))}}),Go=Object.assign(Vo,{__name:"UiCard"}),Jo={key:0,class:"absolute left-0 bottom-10 w-44 rounded-md border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark shadow-lg p-1 z-30"},Ho=Ae({__name:"ApprovalsMenu",props:{open:{type:Boolean},mode:{}},emits:["toggle","select"],setup(e,{expose:s}){const t=e,r=Z(()=>t.mode==="all"?"Always allow":"Auto"),a=T(null);return s({menuEl:a}),(o,l)=>(w(),S("div",{ref_key:"menuEl",ref:a,class:"relative"},[ue(Be,{variant:"secondary",size:"sm",class:"h-8 gap-1.5 text-xs font-medium border border-gray-200 dark:border-gray-700 text-text-secondary-light dark:text-text-secondary-dark",type:"button",onClick:l[0]||(l[0]=m=>o.$emit("toggle"))},{default:De(()=>[l[3]||(l[3]=n("span",{class:"material-icons-outlined text-[14px]"},"shield",-1)),Ie(" "+N(r.value)+" ",1),l[4]||(l[4]=n("span",{class:"material-icons-outlined text-xs"},"expand_more",-1))]),_:1}),e.open?(w(),S("div",Jo,[n("button",{class:Ce(["w-full text-left px-2 py-1.5 text-xs rounded hover:bg-gray-100 dark:hover:bg-gray-800 text-text-primary-light dark:text-text-primary-dark flex items-center gap-2",e.mode==="auto"?"font-semibold":""]),type:"button",onClick:l[1]||(l[1]=m=>o.$emit("select","auto"))},[...l[5]||(l[5]=[n("span",{class:"material-icons-outlined text-[14px]"},"tune",-1),Ie(" Auto ",-1)])],2),n("button",{class:Ce(["w-full text-left px-2 py-1.5 text-xs rounded hover:bg-gray-100 dark:hover:bg-gray-800 text-text-primary-light dark:text-text-primary-dark flex items-center gap-2",e.mode==="all"?"font-semibold":""]),type:"button",onClick:l[2]||(l[2]=m=>o.$emit("select","all"))},[...l[6]||(l[6]=[n("span",{class:"material-icons-outlined text-[14px]"},"verified",-1),Ie(" Always allow ",-1)])],2)])):G("",!0)],512))}}),Ko=Object.assign(Ho,{__name:"ApprovalsMenu"}),Yo={key:0,class:"absolute left-0 bottom-10 w-40 rounded-md border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark shadow-lg p-1 z-30"},Xo=["disabled"],Zo=Ae({__name:"ComposerMenu",props:{open:{type:Boolean},uploadsEnabled:{type:Boolean},debugUi:{type:Boolean}},emits:["toggle","add-file","quick-action"],setup(e,{expose:s}){const t=T(null);return s({menuEl:t}),(r,a)=>(w(),S("div",{ref_key:"menuEl",ref:t,class:"relative"},[ue(Be,{variant:"ghost",size:"icon",class:"h-8 w-8 text-text-secondary-light dark:text-text-secondary-dark",type:"button",onClick:a[0]||(a[0]=o=>r.$emit("toggle"))},{default:De(()=>[...a[3]||(a[3]=[n("span",{class:"material-icons-outlined text-lg"},"add",-1)])]),_:1}),e.open?(w(),S("div",Yo,[n("button",{class:"w-full text-left px-2 py-1.5 text-xs rounded hover:bg-gray-100 dark:hover:bg-gray-800 text-text-primary-light dark:text-text-primary-dark disabled:opacity-50",type:"button",disabled:!e.uploadsEnabled,onClick:a[1]||(a[1]=o=>r.$emit("add-file"))}," Add file ",8,Xo),e.debugUi?(w(),S("button",{key:0,class:"w-full text-left px-2 py-1.5 text-xs rounded hover:bg-gray-100 dark:hover:bg-gray-800 text-text-primary-light dark:text-text-primary-dark",type:"button",onClick:a[2]||(a[2]=o=>r.$emit("quick-action","Health check"))}," Health check ")):G("",!0)])):G("",!0)],512))}}),ea=Object.assign(Zo,{__name:"ComposerMenu"}),ta={key:0,class:"absolute left-0 bottom-10 w-36 rounded-md border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark shadow-lg p-1 z-30"},sa=["onClick"],ra=Ae({__name:"ModeMenu",props:{open:{type:Boolean},modeLabel:{},modeOptions:{}},emits:["toggle","select-mode"],setup(e,{expose:s}){const t=T(null);return s({menuEl:t}),(r,a)=>(w(),S("div",{ref_key:"menuEl",ref:t,class:"relative"},[ue(Be,{variant:"secondary",size:"sm",class:"h-8 gap-1.5 text-xs font-medium border border-gray-200 dark:border-gray-700 text-text-secondary-light dark:text-text-secondary-dark",type:"button",onClick:a[0]||(a[0]=o=>r.$emit("toggle"))},{default:De(()=>[Ie(N(e.modeLabel)+" ",1),a[1]||(a[1]=n("span",{class:"material-icons-outlined text-xs"},"expand_more",-1))]),_:1}),e.open?(w(),S("div",ta,[(w(!0),S(ae,null,$e(e.modeOptions,o=>(w(),S("button",{key:o,class:"w-full text-left px-2 py-1.5 text-xs rounded hover:bg-gray-100 dark:hover:bg-gray-800 text-text-primary-light dark:text-text-primary-dark",type:"button",onClick:l=>r.$emit("select-mode",o)},N(o),9,sa))),128))])):G("",!0)],512))}}),na=Object.assign(ra,{__name:"ModeMenu"}),oa={class:"absolute bottom-0 left-0 right-0 p-6 flex justify-center bg-gradient-to-t from-background-light via-background-light to-transparent dark:from-background-dark dark:via-background-dark pointer-events-none z-20"},aa={key:0,class:"mb-3 grid gap-2"},la=["src","alt"],ia={class:"flex-1 min-w-0"},da={class:"text-xs font-medium text-text-primary-light dark:text-text-primary-dark truncate"},ca={class:"text-[10px] text-text-secondary-light dark:text-text-secondary-dark"},ua=["value","placeholder"],ma={key:1,class:"mt-2 text-[10px] text-text-secondary-light dark:text-text-secondary-dark space-y-1"},pa={key:0},fa={key:1},ga={key:2},va={key:2,class:"mt-2 flex items-center justify-between gap-2 text-[10px] text-text-secondary-light dark:text-text-secondary-dark"},ya={class:"flex items-center gap-2"},xa=["checked"],ha={key:0},ba={class:"flex items-center justify-between mt-3"},ka={class:"flex items-center gap-2"},wa={class:"flex items-center gap-1.5 flex-wrap"},Sa=["title"],Ca={key:1,class:"flex items-center gap-2 text-xs text-text-secondary-light dark:text-text-secondary-dark"},$a=["checked"],Ia={key:0,class:"text-center mt-2"},Aa={class:"text-[10px] text-red-500"},Ma={key:1,class:"text-center mt-2"},Ra=Ae({__name:"ChatComposer",props:{modelValue:{},placeholder:{},attachments:{},uploadsEnabled:{type:Boolean},imagesEnabled:{type:Boolean},attachmentsBase64:{type:Boolean},attachmentNote:{},composerMenuOpen:{type:Boolean},modeMenuOpen:{type:Boolean},modeLabel:{},modeOptions:{},approvalsMenuOpen:{type:Boolean},toolApprovalsMode:{},useStreamingQuery:{type:Boolean},debugUi:{type:Boolean},sendLabel:{},sendDisabled:{type:Boolean},queryError:{},streamQueryError:{},activeSkillNames:{}},emits:["update:modelValue","update:attachmentsBase64","update:useStreamingQuery","drop","paste","compositionstart","compositionend","enter","remove-attachment","toggle-composer-menu","toggle-mode-menu","toggle-approvals-menu","set-approvals","add-file","quick-action","select-mode","send","file-pick","open-skills"],setup(e,{expose:s}){const t=T(null),r=T(null);return s({filePickerRef:t,approvalsMenuComponent:r}),(a,o)=>(w(),S("div",oa,[n("div",{class:"w-full max-w-3xl pointer-events-auto",onDragover:o[16]||(o[16]=we(()=>{},["prevent"])),onDrop:o[17]||(o[17]=we(l=>a.$emit("drop",l),["prevent"]))},[ue(Go,{class:"p-3 shadow-soft dark:shadow-none bg-surface-light dark:bg-surface-dark border-border-light dark:border-border-dark"},{default:De(()=>[e.attachments.length?(w(),S("div",aa,[(w(!0),S(ae,null,$e(e.attachments,l=>(w(),S("div",{key:l.id,class:"flex items-center gap-3 rounded-md border border-border-light dark:border-border-dark p-2"},[l.mime.startsWith("image/")?(w(),S("img",{key:0,src:l.localUrl,alt:l.name,class:"h-10 w-10 rounded object-cover"},null,8,la)):G("",!0),n("div",ia,[n("div",da,N(l.name),1),n("div",ca,N(l.status),1)]),ue(Be,{variant:"ghost",size:"sm",class:"h-7 px-2 text-xs",type:"button",onClick:m=>a.$emit("remove-attachment",l.id)},{default:De(()=>[...o[19]||(o[19]=[Ie(" Remove ",-1)])]),_:1},8,["onClick"])]))),128))])):G("",!0),n("textarea",{value:e.modelValue,class:"w-full resize-none border-none bg-transparent text-sm text-text-primary-light dark:text-text-primary-dark placeholder:text-text-secondary-light dark:placeholder:text-text-secondary-dark focus-visible:outline-none focus-visible:ring-0 py-2",rows:"2",placeholder:e.placeholder,onInput:o[0]||(o[0]=l=>a.$emit("update:modelValue",l.target.value)),onPaste:o[1]||(o[1]=l=>a.$emit("paste",l)),onCompositionstart:o[2]||(o[2]=l=>a.$emit("compositionstart")),onCompositionend:o[3]||(o[3]=l=>a.$emit("compositionend")),onKeydown:o[4]||(o[4]=Fe(we(l=>a.$emit("enter",l),["exact"]),["enter"]))},null,40,ua),e.attachments.length?(w(),S("div",ma,[e.uploadsEnabled?e.imagesEnabled?(w(),S("span",fa,"Model reports image support; attachments will be sent with metadata.")):(w(),S("span",ga,"Model does not support images; attachments will be summarized in text.")):(w(),S("span",pa,"Uploads disabled by server."))])):G("",!0),e.attachments.length?(w(),S("div",va,[n("label",ya,[n("input",{checked:e.attachmentsBase64,type:"checkbox",class:"h-3 w-3",onChange:o[5]||(o[5]=l=>a.$emit("update:attachmentsBase64",l.target.checked))},null,40,xa),o[20]||(o[20]=Ie(" Include base64 when images are unsupported (large) ",-1))]),e.attachmentNote?(w(),S("span",ha,N(e.attachmentNote),1)):G("",!0)])):G("",!0),n("div",ba,[n("div",ka,[ue(ea,{open:e.composerMenuOpen,"uploads-enabled":e.uploadsEnabled,"debug-ui":e.debugUi,onToggle:o[6]||(o[6]=l=>a.$emit("toggle-composer-menu")),onAddFile:o[7]||(o[7]=l=>a.$emit("add-file")),onQuickAction:o[8]||(o[8]=l=>a.$emit("quick-action",l))},null,8,["open","uploads-enabled","debug-ui"]),ue(na,{open:e.modeMenuOpen,"mode-label":e.modeLabel,"mode-options":e.modeOptions,onToggle:o[9]||(o[9]=l=>a.$emit("toggle-mode-menu")),onSelectMode:o[10]||(o[10]=l=>a.$emit("select-mode",l))},null,8,["open","mode-label","mode-options"]),ue(Ko,{ref_key:"approvalsMenuComponent",ref:r,open:e.approvalsMenuOpen,mode:e.toolApprovalsMode,onToggle:o[11]||(o[11]=l=>a.$emit("toggle-approvals-menu")),onSelect:o[12]||(o[12]=l=>a.$emit("set-approvals",l))},null,8,["open","mode"]),e.activeSkillNames.length?(w(),S(ae,{key:0},[o[22]||(o[22]=n("span",{class:"w-px h-4 bg-border-light dark:bg-border-dark"},null,-1)),n("div",wa,[(w(!0),S(ae,null,$e(e.activeSkillNames,l=>(w(),S("button",{key:l,type:"button",class:"inline-flex items-center gap-1 h-6 px-2 rounded-full text-[11px] font-medium bg-primary/10 text-primary hover:bg-primary/20 transition-colors",title:`Active skill: ${l} (click to manage)`,onClick:o[13]||(o[13]=m=>a.$emit("open-skills"))},[o[21]||(o[21]=n("span",{class:"material-icons-outlined text-[12px]"},"bolt",-1)),Ie(" "+N(l),1)],8,Sa))),128))])],64)):G("",!0),e.debugUi?(w(),S("label",Ca,[n("input",{checked:e.useStreamingQuery,type:"checkbox",class:"h-3 w-3",onChange:o[14]||(o[14]=l=>a.$emit("update:useStreamingQuery",l.target.checked))},null,40,$a),o[23]||(o[23]=n("span",null,"Streaming",-1))])):G("",!0)]),ue(Be,{type:"button",disabled:e.sendDisabled,class:"h-8 px-4 text-xs",onClick:o[15]||(o[15]=l=>a.$emit("send"))},{default:De(()=>[Ie(N(e.sendLabel),1)]),_:1},8,["disabled"])])]),_:1}),e.queryError||e.streamQueryError?(w(),S("div",Ia,[n("p",Aa,N(e.queryError||e.streamQueryError),1)])):(w(),S("div",Ma,[...o[24]||(o[24]=[n("p",{class:"text-[10px] text-text-secondary-light dark:text-text-secondary-dark"}," AI can make mistakes. Please review code. ",-1)])]))],32),n("input",{ref_key:"filePickerRef",ref:t,class:"hidden",type:"file",accept:"*/*",multiple:"",onChange:o[18]||(o[18]=l=>a.$emit("file-pick",l))},null,544)]))}}),Ta=Object.assign(Ra,{__name:"ChatComposer"}),Ea={class:"h-14 border-b border-border-light dark:border-border-dark flex items-center justify-between px-6 bg-background-light dark:bg-background-dark z-10 flex-shrink-0"},Pa={class:"flex items-center gap-3 overflow-hidden"},Ua={class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark whitespace-nowrap truncate"},Oa={key:0,class:"hidden md:inline-flex items-center gap-1.5 rounded text-[10px] border border-gray-200 dark:border-gray-700 text-text-secondary-light dark:text-text-secondary-dark font-mono px-2 py-0.5"},Da={class:"inline-flex items-center gap-0.5"},Na={class:"flex items-center gap-3 text-xs text-text-secondary-light dark:text-text-secondary-dark"},Ba={class:"hidden sm:inline"},za=["title"],ja={class:"material-icons-outlined text-base"},La=Ae({__name:"ChatHeader",props:{activeSessionTitle:{},activeSessionSummary:{},activeSessionCwdLabel:{},activeSessionGitBranch:{},chatHeaderStats:{},darkMode:{type:Boolean}},emits:["reconnect","toggle-theme"],setup(e){return(s,t)=>(w(),S("header",Ea,[n("div",Pa,[n("h1",Ua,N(e.activeSessionTitle||"New thread"),1),e.activeSessionCwdLabel?(w(),S("span",Oa,[n("span",null,N(e.activeSessionCwdLabel),1),e.activeSessionGitBranch?(w(),S(ae,{key:0},[t[3]||(t[3]=n("span",{class:"opacity-40"},"|",-1)),n("span",Da,[t[2]||(t[2]=n("svg",{class:"w-3 h-3 opacity-60",viewBox:"0 0 16 16",fill:"currentColor"},[n("path",{"fill-rule":"evenodd",d:"M11.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zm-2.25.75a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.492 2.492 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25zM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zM3.5 3.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0z"})],-1)),n("span",null,N(e.activeSessionGitBranch),1)])],64)):G("",!0)])):G("",!0)]),n("div",Na,[n("span",Ba,N(e.chatHeaderStats),1),n("button",{class:"text-text-secondary-light dark:text-text-secondary-dark hover:text-primary transition-colors",type:"button",title:e.darkMode?"Switch to light mode":"Switch to dark mode",onClick:t[0]||(t[0]=r=>s.$emit("toggle-theme"))},[n("span",ja,N(e.darkMode?"light_mode":"dark_mode"),1)],8,za),n("button",{class:"text-text-secondary-light dark:text-text-secondary-dark hover:text-primary transition-colors",type:"button",onClick:t[1]||(t[1]=r=>s.$emit("reconnect"))},[...t[4]||(t[4]=[n("span",{class:"material-icons-outlined text-base"},"refresh",-1)])])])]))}}),_a=Object.assign(La,{__name:"ChatHeader"}),Qa={class:"message-renderer"},qa={key:1,class:"empty-message"},Fa=Ae({__name:"MessageRenderer",props:{content:{},emptyText:{default:"No content"}},setup(e){const s=e,t=Z(()=>s.content?.trim()||"");return(r,a)=>{const o=Tn("MarkdownRender");return w(),S("div",Qa,[t.value?(w(),qt(o,{key:0,content:t.value,"max-live-nodes":0,"batch-rendering":!0,"render-batch-size":16,"render-batch-delay":8,"enable-mermaid":!0,"enable-katex":!0},null,8,["content"])):(w(),S("div",qa,N(e.emptyText),1))])}}}),Wa=Object.assign(Un(Fa,[["__scopeId","data-v-696ba795"]]),{__name:"MessageRenderer"});function ns(e){if(!e)return"unknown";const s=Date.parse(e);return Number.isNaN(s)?e:new Date(s).toLocaleString()}function Ds(e){const s=e.updatedAt;if(s==null)return 0;if(typeof s=="number")return Number.isFinite(s)?s:0;const t=Date.parse(String(s));return Number.isNaN(t)?0:t}function Va(e){const s=e.updatedAt;if(!s)return"—";const t=typeof s=="number"?s:Date.parse(String(s));if(Number.isNaN(t))return"—";const r=Date.now()-t;if(!Number.isFinite(r))return"—";const a=Math.max(0,Math.floor(r/1e3));if(a<60)return"now";const o=Math.floor(a/60);if(o<60)return`${o}m`;const l=Math.floor(o/60);return l<24?`${l}h`:`${Math.floor(l/24)}d`}function Ns(e){if(!e)return"—";const s=Number(e);return Number.isFinite(s)&&s>0?new Date(s).toLocaleString():ns(e)}function Ga(e){return e.ts?e.ts:e.receivedAt??""}function Ja(e){const s=e.payload??e.raw,t=typeof s=="string"?s:JSON.stringify(s,null,2);return t?t.length>600?`${t.slice(0,600)}...`:t:"No payload"}function Ha(e){if(!e||Object.keys(e).length===0)return"No arguments";if("_raw"in e&&Object.keys(e).length===1)return String(e._raw??"");try{return JSON.stringify(e,null,2)}catch{return String(e)}}function Ka(e,s){const t=i=>{if(i==null)return"";if(typeof i=="string")return i;if(Array.isArray(i))return i.map(t).join("");if(i!=null&&typeof i=="object"&&!Array.isArray(i)){const b=i.text;if(typeof b=="string")return b;try{return JSON.stringify(i)}catch{return String(i)}}return String(i)},r=i=>{const b=i.trim();if(!b||!b.startsWith("{")&&!b.startsWith("["))return i;try{return JSON.stringify(JSON.parse(b),null,2)}catch{return i}},a=(i,b)=>{const g=String(i??"").split(`
|
|
2
|
+
`);return g.length<=b?i:`${g.slice(0,b).join(`
|
|
3
|
+
`)}
|
|
4
|
+
... (${g.length-b} more lines)`},o=t(e);if(!o)return"No output";const l=r(o);return String(s??"").toLowerCase()==="read"?a(l,24):l}function Nt(e){return e?typeof e.result=="string"?e.result:e.result?JSON.stringify(e.result,null,2):e.error?String(e.error):JSON.stringify(e,null,2):"No response"}function We(){return typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`msg-${Math.random().toString(36).slice(2,8)}`}function os(e){const s=String(e??"").replace(/\r/g,"");if(!s)return[];const t=s.split("```"),r=[];for(let a=0;a<t.length;a+=1){const o=t[a];if(a%2===1){const l=o.split(`
|
|
5
|
+
`),m=(l.shift()??"").trim(),i=l.join(`
|
|
6
|
+
`).replace(/\n$/,"");r.push({type:"code",content:i,language:m||void 0})}else o.trim()&&r.push({type:"text",content:o.trim()})}return r}function oe(e){const s=String(e??"");return{type:"markdown",raw:s,blocks:os(s)}}function ke(e,s,t,r,a){const o=s.length?s:[oe("")];return{id:a??We(),role:e,parts:o,ts:t??new Date().toISOString(),meta:r}}function Ya(e,s){if(e.type!=="tool_call"||String(e.name??"").toLowerCase()!=="askuserquestion"||!e.callId)return!0;const t=s.find(r=>r.type==="tool_result"&&r.callId===e.callId);return t?t.status==="error":!0}const Xa={key:0,class:"h-8 w-8 rounded-full bg-indigo-100 dark:bg-indigo-900 flex items-center justify-center text-indigo-600 dark:text-indigo-300 shadow-sm mt-0.5"},Za={key:1,class:"flex-shrink-0 w-8 h-8 rounded-lg bg-primary flex items-center justify-center text-white shadow-glow mt-0.5"},el={class:"space-y-3"},tl={key:0},sl={key:1},rl=["open"],nl={class:"cursor-pointer text-xs font-semibold text-text-secondary-light dark:text-text-secondary-dark"},ol={class:"mt-2 text-xs whitespace-pre-wrap"},al={key:2},ll={key:0,class:"rounded-md border-2 border-primary/60 bg-primary/5 dark:bg-primary/10 p-3"},il={class:"flex items-center gap-2"},dl={class:"text-xs font-semibold text-text-primary-light dark:text-text-primary-dark"},cl={key:0,class:"text-[10px] text-text-secondary-light dark:text-text-secondary-dark"},ul={class:"mt-2"},ml={class:"mt-1 text-xs whitespace-pre-wrap text-text-secondary-light dark:text-text-secondary-dark"},pl={class:"mt-3 flex items-center gap-2"},fl=["disabled","onClick"],gl=["disabled"],vl=["disabled","onClick"],yl=["open"],xl={class:"cursor-pointer text-xs font-semibold text-text-secondary-light dark:text-text-secondary-dark"},hl={class:"mt-2 text-xs whitespace-pre-wrap"},bl={key:3},kl=["open"],wl={class:"cursor-pointer text-xs font-semibold text-text-secondary-light dark:text-text-secondary-dark"},Sl={class:"mt-2 text-xs whitespace-pre-wrap"},Cl={key:0,class:"mt-2 text-xs whitespace-pre-wrap"},$l={key:4},Il={class:"grid gap-2"},Al=["src","alt"],Ml={class:"flex flex-col"},Rl={class:"text-xs font-medium text-text-primary-light dark:text-text-primary-dark"},Tl={key:0,class:"text-[10px] text-text-secondary-light dark:text-text-secondary-dark"},El={key:0,class:"mt-2 text-[10px] text-text-secondary-light dark:text-text-secondary-dark"},Pl=Ae({__name:"ChatMessages",props:{messages:{},pendingApprovals:{},approvalBusy:{type:Boolean}},emits:["approve","reject","approve-all"],setup(e,{expose:s}){const t=e,r=Z(()=>{const m=new Set;if(t.pendingApprovals)for(const i of t.pendingApprovals)m.add(i.toolCallId);return m}),a=Z(()=>t.pendingApprovals?.length??0);function o(m){return m.type!=="tool_call"||!m.callId?!1:r.value.has(m.callId)}const l=T(null);return s({messagesRef:l}),(m,i)=>(w(),S("div",{ref_key:"messagesRef",ref:l,class:"space-y-6"},[(w(!0),S(ae,null,$e(e.messages,b=>(w(),S("div",{key:b.id,class:Ce(["flex gap-4",b.role==="user"?"flex-row-reverse":""])},[b.role==="user"?(w(),S("div",Xa,[...i[1]||(i[1]=[n("span",{class:"material-icons-outlined text-sm"},"person",-1)])])):(w(),S("div",Za,[...i[2]||(i[2]=[n("span",{class:"material-icons-outlined text-sm"},"auto_awesome",-1)])])),n("div",{class:Ce(["max-w-[80%]",b.role==="user"?"flex flex-col items-end":""])},[n("div",{class:Ce(["px-5 py-3.5 rounded-2xl text-sm leading-relaxed shadow-sm w-fit",b.role==="user"?"bg-gray-100 dark:bg-gray-800 text-text-primary-light dark:text-text-primary-dark rounded-tr-sm":"bg-surface-light dark:bg-surface-dark border border-border-light dark:border-border-dark text-text-primary-light dark:text-text-primary-dark"])},[n("div",el,[(w(!0),S(ae,null,$e(b.parts,(g,M)=>(w(),S(ae,{key:`${b.id}-${g.type}-${M}`},[g.type==="markdown"?(w(),S("div",tl,[ue(Wa,{content:g.raw},null,8,["content"])])):g.type==="thinking"?(w(),S("div",sl,[n("details",{open:!g.collapsed,class:"rounded-md border border-border-light dark:border-border-dark p-3 bg-gray-50 dark:bg-gray-800/50"},[n("summary",nl,N(g.title),1),n("pre",ol,N(g.content),1)],8,rl)])):g.type==="tool_call"?(w(),S("div",al,[o(g)?(w(),S("div",ll,[n("div",il,[i[3]||(i[3]=n("span",{class:"material-icons-outlined text-sm text-primary"},"gpp_maybe",-1)),n("span",dl,N(g.name),1),a.value>1?(w(),S("span",cl," ("+N(a.value)+" pending) ",1)):G("",!0)]),n("details",ul,[i[4]||(i[4]=n("summary",{class:"cursor-pointer text-[10px] text-text-secondary-light dark:text-text-secondary-dark"}," View Raw Input ",-1)),n("pre",ml,N(g.args),1)]),n("div",pl,[n("button",{class:"text-xs px-3 py-1 rounded-md bg-emerald-600 hover:bg-emerald-700 text-white transition-colors",type:"button",disabled:e.approvalBusy,onClick:y=>m.$emit("approve",g.callId)},[...i[5]||(i[5]=[n("span",{class:"flex items-center gap-1"},[n("span",{class:"material-icons-outlined text-[14px]"},"check"),Ie(" Allow ")],-1)])],8,fl),n("button",{class:"text-xs px-3 py-1 rounded-md bg-emerald-800 hover:bg-emerald-900 text-emerald-100 transition-colors",type:"button",disabled:e.approvalBusy,onClick:i[0]||(i[0]=y=>m.$emit("approve-all"))},[...i[6]||(i[6]=[n("span",{class:"flex items-center gap-1"},[n("span",{class:"material-icons-outlined text-[14px]"},"done_all"),Ie(" Always Allow ")],-1)])],8,gl),n("button",{class:"text-xs px-3 py-1 rounded-md border border-red-300 dark:border-red-700 text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/30 transition-colors",type:"button",disabled:e.approvalBusy,onClick:y=>m.$emit("reject",g.callId)},[...i[7]||(i[7]=[n("span",{class:"flex items-center gap-1"},[n("span",{class:"material-icons-outlined text-[14px]"},"close"),Ie(" Deny ")],-1)])],8,vl)]),i[8]||(i[8]=n("p",{class:"mt-2 text-[10px] text-text-secondary-light dark:text-text-secondary-dark"}," Waiting Confirmation... ",-1))])):(w(),S("details",{key:1,open:O(Ya)(g,b.parts),class:"rounded-md border border-border-light dark:border-border-dark p-3 bg-gray-50 dark:bg-gray-800/50"},[n("summary",xl," Tool call: "+N(g.name),1),n("pre",hl,N(g.args),1)],8,yl))])):g.type==="tool_result"?(w(),S("div",bl,[n("details",{open:g.status==="error",class:"rounded-md border border-border-light dark:border-border-dark p-3 bg-gray-50 dark:bg-gray-800/50"},[n("summary",wl," Tool result: "+N(g.name||"tool")+" · "+N(g.status),1),n("pre",Sl,N(g.output),1),g.structured?(w(),S("pre",Cl,N(g.structured),1)):G("",!0)],8,kl)])):g.type==="attachments"?(w(),S("div",$l,[n("div",Il,[(w(!0),S(ae,null,$e(g.items,(y,d)=>(w(),S("div",{key:`${b.id}-${M}-${d}`,class:"flex items-center gap-3 rounded-md border border-border-light dark:border-border-dark p-2 bg-white/60 dark:bg-white/5"},[y.kind==="image"&&y.url?(w(),S("img",{key:0,src:y.url,alt:y.label,class:"h-10 w-10 rounded object-cover"},null,8,Al)):G("",!0),n("div",Ml,[n("span",Rl,N(y.label),1),y.meta?(w(),S("span",Tl,N(y.meta),1)):G("",!0)])]))),128))])])):G("",!0)],64))),128))])],2),O(Ns)(b.ts)!=="—"?(w(),S("div",El,N(O(Ns)(b.ts)),1)):G("",!0)],2)],2))),128))],512))}}),Ul=Object.assign(Pl,{__name:"ChatMessages"});function Ol(e){return`${e.type}-${e.id??e.receivedAt}`}function Dl(e){return e&&typeof e=="object"?e:null}function ot(e){if(!e)return null;const s=e.sessionId??e.session_id;return typeof s=="string"&&s.trim()?s:null}function at(e){if(!e)return null;const s=e.runId??e.run_id;return typeof s=="string"&&s.trim()?s:null}function qe(e){const s=Dl(e.payload);return s?("payload"in s&&s.payload&&typeof s.payload=="object"?s.payload:null)??s:null}function es(e){return at(qe(e))}function Ne(e){if(!e)return null;const s=typeof e.toolCallId=="string"?e.toolCallId:typeof e.tool_call_id=="string"?e.tool_call_id:typeof e.call_id=="string"?e.call_id:typeof e.callId=="string"?e.callId:typeof e.id=="string"?e.id:"";if(s&&s.trim())return s.trim();const r=(Array.isArray(e.tool_calls)?e.tool_calls:[])[0];return r&&typeof r.id=="string"&&r.id.trim()?r.id.trim():null}function Lt(e){if(!e)return null;const s=e.toolName??e.tool_name??e.name;if(typeof s=="string"&&s.trim())return s.trim();const t=e.function??e.tool;if(t&&typeof t=="object"){const o=t.name;return typeof o=="string"&&o.trim()?o.trim():null}const a=(Array.isArray(e.tool_calls)?e.tool_calls:[])[0];return a?.function?.name?String(a.function.name):null}function _t(e){if(!e)return{args:"",delta:""};const s=typeof e.argsTextDelta=="string"?e.argsTextDelta:typeof e.args_text_delta=="string"?e.args_text_delta:typeof e.argsDelta=="string"?e.argsDelta:"";let r=typeof e.argsText=="string"?e.argsText:typeof e.args_text=="string"?e.args_text:typeof e.args=="string"?e.args:"";if(!r){const l=(Array.isArray(e.tool_calls)?e.tool_calls:[])[0];if(l?.function?.arguments!=null){const m=l.function.arguments;if(typeof m=="string")r=m;else try{r=JSON.stringify(m,null,2)}catch{r=String(m)}}}const a=typeof e.originalEventType=="string"?e.originalEventType:"";return r&&(a==="tool_call_end"||!s)?{args:r,delta:""}:s?{args:s,delta:s}:{args:r,delta:""}}const Nl={class:"space-y-4"},Bl={class:"rounded-lg border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark p-4 shadow-sm"},zl={key:0,class:"text-xs text-text-secondary-light dark:text-text-secondary-dark"},jl={key:1,class:"text-xs text-text-secondary-light dark:text-text-secondary-dark"},Ll={key:2,class:"space-y-3"},_l={class:"grid grid-cols-2 gap-2 text-xs"},Ql={class:"text-text-secondary-light dark:text-text-secondary-dark"},ql={class:"text-text-primary-light dark:text-text-primary-dark font-medium"},Fl={class:"flex flex-wrap gap-2"},Wl={class:"rounded-lg border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark p-4 shadow-sm"},Vl={class:"grid grid-cols-2 gap-2 text-xs"},Gl={class:"text-text-secondary-light dark:text-text-secondary-dark"},Jl={class:"rounded-lg border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark p-4 shadow-sm"},Hl={class:"text-xs text-text-secondary-light dark:text-text-secondary-dark mb-2"},Kl={class:"space-y-2 max-h-64 overflow-y-auto pr-1"},Yl={class:"flex items-center justify-between text-xs text-text-secondary-light dark:text-text-secondary-dark"},Xl={class:"font-medium text-text-primary-light dark:text-text-primary-dark"},Zl={class:"mt-1"},ei={class:"mt-2 text-[10px] whitespace-pre-wrap"},ti={key:0,class:"rounded-lg border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark p-4 shadow-sm"},si={class:"text-xs text-text-secondary-light dark:text-text-secondary-dark mb-2"},ri={class:"mt-2 text-[10px] whitespace-pre-wrap"},ni=Ae({__name:"DebugPanel",props:{statusLoading:{type:Boolean},statusError:{},statusRows:{},capabilities:{},events:{},snapshotLabel:{},snapshotContent:{}},emits:["refresh","reconnect","capabilities","copy-origin"],setup(e){return(s,t)=>(w(),S("aside",Nl,[n("article",Bl,[t[4]||(t[4]=n("h3",{class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark mb-2"},"Status Snapshot",-1)),e.statusLoading?(w(),S("p",zl," Loading /status snapshot... ")):e.statusError?(w(),S("p",jl,N(e.statusError),1)):(w(),S("div",Ll,[n("div",_l,[(w(!0),S(ae,null,$e(e.statusRows,r=>(w(),S("div",{key:r.label,class:"flex flex-col"},[n("span",Ql,N(r.label),1),n("span",ql,N(r.value),1)]))),128))]),n("div",Fl,[n("button",{class:"text-xs px-3 py-1 rounded border border-border-light dark:border-border-dark hover:border-primary",type:"button",onClick:t[0]||(t[0]=r=>s.$emit("refresh"))}," Refresh "),n("button",{class:"text-xs px-3 py-1 rounded border border-border-light dark:border-border-dark hover:border-primary",type:"button",onClick:t[1]||(t[1]=r=>s.$emit("reconnect"))}," Reconnect "),n("button",{class:"text-xs px-3 py-1 rounded border border-border-light dark:border-border-dark hover:border-primary",type:"button",onClick:t[2]||(t[2]=r=>s.$emit("capabilities"))}," Capabilities "),n("button",{class:"text-xs px-3 py-1 rounded border border-border-light dark:border-border-dark hover:border-primary",type:"button",onClick:t[3]||(t[3]=r=>s.$emit("copy-origin"))}," Copy origin ")])]))]),n("article",Wl,[t[5]||(t[5]=n("h3",{class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark mb-2"},"Capabilities",-1)),n("div",Vl,[(w(!0),S(ae,null,$e(e.capabilities,r=>(w(),S("div",{key:r.key,class:"flex items-center justify-between rounded border border-border-light dark:border-border-dark px-2 py-1"},[n("span",Gl,N(r.label),1),n("span",{class:Ce(r.enabled?"text-emerald-500":"text-red-500")},N(r.enabled?"Yes":"No"),3)]))),128))])]),n("article",Jl,[t[7]||(t[7]=n("h3",{class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark mb-2"},"Event Stream",-1)),n("p",Hl," Most recent "+N(e.events.length)+" events ",1),n("div",Kl,[(w(!0),S(ae,null,$e(e.events,r=>(w(),S("div",{key:O(Ol)(r),class:"rounded border border-border-light dark:border-border-dark p-2"},[n("div",Yl,[n("span",Xl,N(r.type),1),n("span",null,N(O(Ga)(r)),1)]),n("details",Zl,[t[6]||(t[6]=n("summary",{class:"cursor-pointer text-[11px] text-text-secondary-light dark:text-text-secondary-dark"}," Payload ",-1)),n("pre",ei,N(O(Ja)(r)),1)])]))),128))])]),e.snapshotLabel?(w(),S("article",ti,[t[9]||(t[9]=n("h3",{class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark mb-2"},"Session Snapshot",-1)),n("p",si,N(e.snapshotLabel),1),n("details",null,[t[8]||(t[8]=n("summary",{class:"cursor-pointer text-[11px] text-text-secondary-light dark:text-text-secondary-dark"}," Snapshot data ",-1)),n("pre",ri,N(e.snapshotContent),1)])])):G("",!0)]))}}),oi=Object.assign(ni,{__name:"DebugPanel"}),ai=["onKeydown"],li={class:"text-sm text-text-primary-light dark:text-text-primary-dark"},ii={class:"mt-4 flex justify-end gap-2"},di=["disabled"],ci=["disabled"],ui=Ae({__name:"DeleteDialog",props:{open:{type:Boolean},target:{},busy:{type:Boolean}},emits:["close","confirm"],setup(e,{expose:s,emit:t}){const r=t,a=T(null);function o(){r("close")}function l(){r("confirm")}return s({dialogEl:a}),(m,i)=>e.open?(w(),S("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 backdrop-blur-sm px-4",role:"presentation",onClick:o},[n("div",{ref_key:"dialogEl",ref:a,class:"w-full max-w-md rounded-lg border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark shadow-lg p-5",role:"dialog","aria-modal":"true",tabindex:"0",onClick:i[0]||(i[0]=we(()=>{},["stop"])),onKeydown:[Fe(we(o,["stop","prevent"]),["escape"]),Fe(we(l,["stop","prevent"]),["enter"])]},[n("div",{class:"flex items-center justify-between mb-3"},[i[2]||(i[2]=n("h3",{class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark"}," Delete session ",-1)),n("button",{class:"text-text-secondary-light dark:text-text-secondary-dark hover:text-primary",type:"button",onClick:o},[...i[1]||(i[1]=[n("span",{class:"material-icons-outlined text-base"},"close",-1)])])]),n("p",li,[i[3]||(i[3]=Ie(" This will permanently delete ",-1)),n("strong",null,N(e.target?.title||"this session"),1),i[4]||(i[4]=Ie(" and its history. ",-1))]),n("div",ii,[n("button",{class:"text-xs px-3 py-1.5 rounded border border-border-light dark:border-border-dark",type:"button",disabled:e.busy,onClick:o}," Cancel ",8,di),n("button",{class:"text-xs px-3 py-1.5 rounded bg-red-500 text-white",type:"button",disabled:e.busy,onClick:l},N(e.busy?"Deleting…":"Delete"),9,ci)])],40,ai)])):G("",!0)}}),mi=Object.assign(ui,{__name:"DeleteDialog"}),pi={class:"w-64 flex-shrink-0 bg-sidebar-light dark:bg-sidebar-dark border-r border-border-light dark:border-border-dark flex flex-col h-full transition-colors duration-200 overflow-x-hidden"},fi={class:"px-2 pt-4 space-y-0.5 mb-4"},gi={class:"flex items-center justify-between mb-4"},vi={class:"space-y-1 max-h-60 overflow-y-auto"},yi=["onClick"],xi={class:"min-w-0"},hi={class:"font-medium truncate"},bi={key:0,class:"text-[11px] text-text-secondary-light dark:text-text-secondary-dark truncate mt-0.5"},ki={class:"mt-4 flex justify-end"},wi={class:"flex-1 overflow-y-auto overflow-x-hidden px-2 space-y-1"},Si={key:0,class:"text-xs text-text-secondary-light dark:text-text-secondary-dark px-2 py-2"},Ci={key:1,class:"text-xs text-text-secondary-light dark:text-text-secondary-dark px-2 py-2"},$i={class:"w-full rounded-md px-2 py-2 flex items-center gap-2 text-sm text-text-primary-light dark:text-text-primary-dark bg-gray-100/60 dark:bg-gray-800/50 group/folder"},Ii=["onClick"],Ai={class:"font-normal truncate"},Mi={key:0,class:"shrink-0 inline-flex items-center gap-0.5 text-[10px] font-mono text-text-secondary-light dark:text-text-secondary-dark opacity-70"},Ri=["onClick"],Ti={key:0,class:"space-y-0.5 mt-1 overflow-x-hidden"},Ei=["onClick"],Pi={class:"flex-1 min-w-0 truncate font-normal"},Ui={key:0,class:"absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-2 opacity-0 group-hover:opacity-100 transition-opacity duration-150"},Oi=["onClick"],Di=["onClick"],Ni=["value","onKeydown"],Bi={class:"mt-2 flex gap-2"},zi=["onClick"],ji=["onClick"],Li={key:2,class:"text-xs text-text-secondary-light dark:text-text-secondary-dark px-2 py-2"},_i={key:0,class:"px-3 pb-3 border-t border-border-light dark:border-border-dark pt-3"},Qi={class:"space-y-2"},qi=["onClick"],Fi={class:"font-medium"},Wi={class:"block text-[10px] text-text-secondary-light dark:text-text-secondary-dark mt-1"},Vi={class:"p-3 border-t border-border-light dark:border-border-dark"},Gi={class:"flex items-center justify-between text-[11px] text-text-secondary-light dark:text-text-secondary-dark"},ts=10,Ji=Ae({__name:"SessionSidebar",props:{sessions:{},sessionsLoading:{type:Boolean},sessionsError:{},activeSessionId:{},editingSessionId:{},renameDraft:{},sessionNote:{},canManageSessions:{type:Boolean},debugUi:{type:Boolean},commandItems:{},lastUpdatedLabel:{},sessionCountLabel:{},activeSessionCwdLabel:{}},emits:["refresh","create","select","rename","delete","update:renameDraft","apply-rename","cancel-rename","copy-command","openSkills"],setup(e){const s=e,t=T(!1),r=Z(()=>{const y=new Map;for(const d of s.sessions){const x=String(d.cwd??"").trim(),R=x||"__workspace__";y.has(R)||y.set(R,a(x))}return[...y.entries()].map(([d,x])=>({cwd:d==="__workspace__"?"":d,name:x})).sort((d,x)=>d.name.localeCompare(x.name))});function a(y){const d=String(y??"").trim();if(!d)return"workspace";const x=d.split(/[/\\]/).filter(Boolean);return x.length?x[x.length-1]??"workspace":"workspace"}const o=Z(()=>{const y=new Map;for(const d of s.sessions){const x=String(d.cwd??"").trim(),R=a(x),$=x||"__workspace__";if(!y.has($)){const D=String(d.gitBranch??"").trim();y.set($,{folderName:R,gitBranch:D,sessions:[]})}y.get($).sessions.push(d)}return[...y.entries()].map(([d,x])=>({key:d,...x})).sort((d,x)=>d.folderName.localeCompare(x.folderName))}),l=As({}),m=As({});function i(y){return l[y]!==!1}function b(y){l[y]=!i(y)}function g(y){return m[y.key]||y.sessions.length<=ts?y.sessions:y.sessions.slice(0,ts)}function M(y){return y.sessions.length>ts}return(y,d)=>(w(),S("aside",pi,[n("nav",fi,[ue(Be,{variant:"ghost",class:"w-full justify-start px-2 gap-2 text-text-secondary-light dark:text-text-secondary-dark hover:text-text-primary-light dark:hover:text-text-primary-dark text-sm",onClick:d[0]||(d[0]=x=>r.value.length>1?t.value=!0:y.$emit("create"))},{default:De(()=>[...d[12]||(d[12]=[n("span",{class:"material-icons-outlined text-[18px] shrink-0"},"edit",-1),n("span",{class:"font-normal truncate"}," New thread",-1)])]),_:1}),ue(Be,{variant:"ghost",class:"w-full justify-start px-2 gap-2 text-text-secondary-light dark:text-text-secondary-dark hover:text-text-primary-light dark:hover:text-text-primary-dark text-sm",onClick:d[1]||(d[1]=x=>y.$emit("openSkills"))},{default:De(()=>[...d[13]||(d[13]=[n("span",{class:"material-icons-outlined text-[18px] shrink-0"},"psychology",-1),n("span",{class:"font-normal truncate"}," Skills",-1)])]),_:1}),ue(Be,{variant:"ghost",class:"w-full justify-start px-2 gap-2 text-text-secondary-light dark:text-text-secondary-dark hover:text-text-primary-light dark:hover:text-text-primary-dark text-sm",disabled:e.sessionsLoading,onClick:d[2]||(d[2]=x=>y.$emit("refresh"))},{default:De(()=>[...d[14]||(d[14]=[n("span",{class:"material-icons-outlined text-[18px] shrink-0"},"refresh",-1),n("span",{class:"font-normal truncate"},"Refresh",-1)])]),_:1},8,["disabled"])]),(w(),qt(Qs,{to:"body"},[t.value?(w(),S("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 backdrop-blur-sm px-4",role:"presentation",onClick:d[7]||(d[7]=x=>t.value=!1)},[n("div",{class:"w-full max-w-sm rounded-lg border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark shadow-lg p-5",role:"dialog","aria-modal":"true",tabindex:"0",onClick:d[5]||(d[5]=we(()=>{},["stop"])),onKeydown:d[6]||(d[6]=Fe(we(x=>t.value=!1,["stop","prevent"]),["escape"]))},[n("div",gi,[d[16]||(d[16]=n("h3",{class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark"}," Choose workspace ",-1)),n("button",{class:"text-text-secondary-light dark:text-text-secondary-dark hover:text-primary",type:"button",onClick:d[3]||(d[3]=x=>t.value=!1)},[...d[15]||(d[15]=[n("span",{class:"material-icons-outlined text-base"},"close",-1)])])]),d[18]||(d[18]=n("p",{class:"text-xs text-text-secondary-light dark:text-text-secondary-dark mb-3"}," Select a workspace folder to create the new thread in. ",-1)),n("div",vi,[(w(!0),S(ae,null,$e(r.value,x=>(w(),S("button",{key:x.cwd,type:"button",class:"w-full text-left rounded-md px-3 py-2.5 text-[13px] text-text-primary-light dark:text-text-primary-dark hover:bg-gray-100 dark:hover:bg-gray-800/60 flex items-center gap-3 transition-colors",onClick:R=>{t.value=!1,y.$emit("create",x.cwd)}},[d[17]||(d[17]=n("span",{class:"material-icons-outlined text-[18px] text-text-secondary-light dark:text-text-secondary-dark"},"folder",-1)),n("div",xi,[n("div",hi,N(x.name),1),x.cwd?(w(),S("div",bi,N(x.cwd),1)):G("",!0)])],8,yi))),128))]),n("div",ki,[n("button",{class:"text-xs px-3 py-1.5 rounded border border-border-light dark:border-border-dark text-text-primary-light dark:text-text-primary-dark",type:"button",onClick:d[4]||(d[4]=x=>t.value=!1)}," Cancel ")])],32)])):G("",!0)])),d[28]||(d[28]=n("div",{class:"px-4 py-2 flex items-center justify-between"},[n("span",{class:"text-[11px] font-semibold text-text-secondary-light dark:text-text-secondary-dark tracking-widest uppercase"}," Threads ")],-1)),n("div",wi,[e.sessionsError?(w(),S("p",Si," Sessions unavailable: "+N(e.sessionsError),1)):e.sessions.length?G("",!0):(w(),S("p",Ci,N(e.sessionsLoading?"Loading sessions…":"No sessions yet. Create one to start."),1)),(w(!0),S(ae,null,$e(o.value,x=>(w(),S(ae,{key:x.key},[n("div",$i,[n("button",{type:"button",class:"flex items-center gap-2 flex-1 min-w-0",onClick:R=>b(x.key)},[n("span",{class:Ce(["material-icons-outlined text-[18px] shrink-0",i(x.key)?"text-primary":"text-text-secondary-light dark:text-text-secondary-dark"])},N(i(x.key)?"folder_open":"folder"),3),n("span",Ai,N(x.folderName),1),x.gitBranch?(w(),S("span",Mi,[d[19]||(d[19]=n("svg",{class:"w-2.5 h-2.5",viewBox:"0 0 16 16",fill:"currentColor"},[n("path",{"fill-rule":"evenodd",d:"M11.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zm-2.25.75a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.492 2.492 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25zM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zM3.5 3.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0z"})],-1)),Ie(" "+N(x.gitBranch),1)])):G("",!0)],8,Ii),n("button",{type:"button",class:"shrink-0 w-5 h-5 flex items-center justify-center rounded text-text-secondary-light dark:text-text-secondary-dark hover:text-primary opacity-0 group-hover/folder:opacity-100 transition-opacity",title:"New thread in this folder",onClick:we(R=>y.$emit("create",x.key==="__workspace__"?"":x.key),["stop"])},[...d[20]||(d[20]=[n("span",{class:"material-icons-outlined text-[16px]"},"add",-1)])],8,Ri)]),i(x.key)?(w(),S("div",Ti,[(w(!0),S(ae,null,$e(g(x),R=>(w(),S("div",{key:R.id,class:"group relative max-w-full"},[n("button",{type:"button",class:Ce(["w-full min-w-0 text-left rounded-md pl-9 pr-2 py-1.5 transition-colors text-[13px] leading-snug flex items-center gap-3",R.id===e.activeSessionId?"bg-primary text-primary-foreground shadow-soft":"text-text-primary-light dark:text-text-primary-dark hover:bg-gray-100 dark:hover:bg-gray-800/60"]),onClick:$=>y.$emit("select",R.id)},[n("span",Pi,N(R.title||"Untitled"),1),n("span",{class:Ce(["shrink-0 text-[11px] text-text-secondary-light dark:text-text-secondary-dark whitespace-nowrap group-hover:opacity-0 transition-opacity",R.id===e.activeSessionId?"text-primary-foreground/80":""])},N(O(Va)(R)),3)],10,Ei),e.canManageSessions&&e.editingSessionId!==R.id?(w(),S("div",Ui,[n("button",{class:"h-6 w-6 rounded-md flex items-center justify-center bg-gray-100 dark:bg-gray-800 text-text-secondary-light dark:text-text-secondary-dark hover:text-primary border border-border-light dark:border-border-dark",type:"button",onClick:we($=>y.$emit("rename",R),["stop"])},[...d[21]||(d[21]=[n("span",{class:"material-icons-outlined text-[12px]"},"edit",-1)])],8,Oi),n("button",{class:"h-6 w-6 rounded-md flex items-center justify-center bg-gray-100 dark:bg-gray-800 text-red-500 hover:text-red-600 border border-border-light dark:border-border-dark",type:"button",onClick:we($=>y.$emit("delete",R),["stop"])},[...d[22]||(d[22]=[n("span",{class:"material-icons-outlined text-[12px]"},"delete",-1)])],8,Di)])):G("",!0),e.editingSessionId===R.id?(w(),S("div",{key:1,class:"mt-2 rounded-lg border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark p-2",onClick:d[11]||(d[11]=we(()=>{},["stop"]))},[n("input",{value:e.renameDraft,class:"w-full rounded-md border border-border-light dark:border-border-dark bg-transparent px-2 py-1 text-xs text-text-primary-light dark:text-text-primary-dark",type:"text",placeholder:"New session title",onInput:d[8]||(d[8]=$=>y.$emit("update:renameDraft",$.target.value)),onKeydown:[Fe(we($=>y.$emit("apply-rename",R),["prevent"]),["enter"]),d[9]||(d[9]=Fe(we($=>y.$emit("cancel-rename"),["prevent"]),["escape"]))]},null,40,Ni),n("div",Bi,[ue(Be,{size:"sm",class:"h-7 px-3",onClick:$=>y.$emit("apply-rename",R)},{default:De(()=>[...d[23]||(d[23]=[Ie(" Save ",-1)])]),_:1},8,["onClick"]),ue(Be,{variant:"ghost",size:"sm",class:"h-7 px-3",onClick:d[10]||(d[10]=$=>y.$emit("cancel-rename"))},{default:De(()=>[...d[24]||(d[24]=[Ie(" Cancel ",-1)])]),_:1})])])):G("",!0)]))),128)),M(x)&&!m[x.key]?(w(),S("button",{key:0,type:"button",class:"w-full rounded-md px-2 py-1.5 text-[13px] text-text-secondary-light dark:text-text-secondary-dark hover:text-primary hover:bg-gray-100 dark:hover:bg-gray-800/60 transition-colors flex items-center justify-center gap-1",onClick:R=>m[x.key]=!0},[...d[25]||(d[25]=[n("span",null,"Show more",-1),n("span",{class:"material-icons-outlined text-[14px]"},"expand_more",-1)])],8,zi)):G("",!0),M(x)&&m[x.key]?(w(),S("button",{key:1,type:"button",class:"w-full rounded-md px-2 py-1.5 text-[13px] text-text-secondary-light dark:text-text-secondary-dark hover:text-primary hover:bg-gray-100 dark:hover:bg-gray-800/60 transition-colors flex items-center justify-center gap-1",onClick:R=>m[x.key]=!1},[...d[26]||(d[26]=[n("span",null,"Show less",-1),n("span",{class:"material-icons-outlined text-[14px]"},"expand_less",-1)])],8,ji)):G("",!0)])):G("",!0)],64))),128)),e.sessionNote?(w(),S("p",Li,N(e.sessionNote),1)):G("",!0)]),e.debugUi?(w(),S("div",_i,[d[27]||(d[27]=n("div",{class:"text-xs font-semibold text-text-secondary-light dark:text-text-secondary-dark mb-2"}," Command & Config ",-1)),n("div",Qi,[(w(!0),S(ae,null,$e(e.commandItems,x=>(w(),S("button",{key:x.label,class:"w-full text-left rounded-md border border-border-light dark:border-border-dark px-2 py-2 text-[11px] text-text-primary-light dark:text-text-primary-dark hover:border-primary",type:"button",onClick:R=>y.$emit("copy-command",x.command,x.label)},[n("div",Fi,N(x.label),1),n("code",Wi,N(x.command),1)],8,qi))),128))])])):G("",!0),n("div",Vi,[n("div",Gi,[n("span",null,N(e.lastUpdatedLabel),1),n("span",null,N(e.sessionCountLabel),1)])])]))}}),Hi=Object.assign(Ji,{__name:"SessionSidebar"}),Ki={class:"flex items-center justify-between p-5 pb-3"},Yi={class:"flex items-center gap-2"},Xi={key:0,class:"inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 rounded-full text-[11px] font-medium bg-primary/10 text-primary"},Zi={class:"flex items-center gap-2"},ed={class:"flex-1 overflow-y-auto px-5 pb-5"},td={key:0,class:"text-xs text-red-500 mb-3"},sd={key:1,class:"text-xs text-text-secondary-light dark:text-text-secondary-dark py-6 text-center"},rd={key:2,class:"py-8 text-center"},nd={key:3,class:"space-y-1"},od=["title","onClick"],ad={class:"material-icons-outlined text-[14px]"},ld=["onClick"],id={class:"flex items-center gap-2"},dd={class:"font-medium truncate"},cd={key:0,class:"shrink-0 text-[10px] px-1.5 py-0.5 rounded-full font-medium bg-primary/15 text-primary"},ud={class:"text-xs text-text-secondary-light dark:text-text-secondary-dark mt-0.5 truncate"},md=["onClick"],pd={class:"flex items-center justify-between p-5 pb-3"},fd={class:"flex items-center gap-2"},gd={class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark truncate"},vd={class:"flex-1 overflow-y-auto px-5 pb-5"},yd={key:0,class:"text-xs text-text-secondary-light dark:text-text-secondary-dark py-6 text-center"},xd={key:1,class:"text-xs text-red-500 mb-3"},hd={class:"text-[11px] text-text-secondary-light dark:text-text-secondary-dark mb-3 truncate font-mono"},bd={class:"mb-3"},kd={key:1,class:"text-xs text-text-primary-light dark:text-text-primary-dark"},wd={class:"mb-4"},Sd={key:1,class:"w-full rounded-md border border-border-light dark:border-border-dark bg-gray-50 dark:bg-gray-800/50 px-3 py-2 text-xs text-text-primary-light dark:text-text-primary-dark font-mono whitespace-pre-wrap max-h-[300px] overflow-y-auto"},Cd={class:"flex-1 min-w-0"},$d={class:"text-xs font-medium text-text-primary-light dark:text-text-primary-dark"},Id={class:"text-[11px] text-text-secondary-light dark:text-text-secondary-dark"},Ad={class:"flex items-center justify-between gap-2"},Md=["disabled"],Rd={class:"flex gap-2"},Td=["disabled"],Ed={class:"flex items-center justify-between p-5 pb-3"},Pd={class:"flex-1 overflow-y-auto px-5 pb-5"},Ud={key:0,class:"text-xs text-red-500 mb-3"},Od={class:"mb-3"},Dd={key:0,class:"text-[11px] text-red-500 mt-1"},Nd={class:"mb-3"},Bd={class:"mb-4"},zd={class:"flex justify-end gap-2"},jd=["disabled"],Ld=Ae({__name:"SkillsDialog",props:{open:{type:Boolean},skills:{},loading:{type:Boolean},detailLoading:{type:Boolean},error:{},selectedSkill:{},activeSkillNames:{}},emits:["close","fetch-skills","fetch-detail","create-skill","update-skill","delete-skill","toggle-activation"],setup(e,{emit:s}){const t=e,r=s,a=T("list"),o=T(""),l=T(""),m=T(""),i=T(""),b=T(""),g=T(!1),M=T(""),y=/^[a-z0-9]([a-z0-9_-]*[a-z0-9])?$/i,d=Z(()=>o.value.trim()&&l.value.trim()&&y.test(o.value.trim())),x=Z(()=>t.selectedSkill?t.selectedSkill.fullPath.includes("/.agents/skills/"):!1),R=Z(()=>t.selectedSkill?t.activeSkillNames.has(t.selectedSkill.name):!1);function $(j){return t.activeSkillNames.has(j)}function D(j,E){j.stopPropagation(),r("toggle-activation",E)}Ee(()=>t.open,j=>{j&&(a.value="list",g.value=!1,r("fetch-skills"))}),Ee(()=>t.selectedSkill,j=>{j&&(i.value=j.description,b.value=j.content)});function U(j){g.value=!1,r("fetch-detail",j.name),a.value="detail"}function h(){o.value="",l.value="",m.value="",M.value="",a.value="create"}function v(){a.value="list",g.value=!1}function C(){const j=o.value.trim();return j?y.test(j)?(M.value="",!0):(M.value="Use lowercase letters, numbers, hyphens, and underscores",!1):(M.value="Name is required",!1)}function I(){C()&&l.value.trim()&&(r("create-skill",o.value.trim(),l.value.trim(),m.value),a.value="list")}function c(){t.selectedSkill&&(i.value=t.selectedSkill.description,b.value=t.selectedSkill.content,g.value=!0)}function u(){t.selectedSkill&&(i.value=t.selectedSkill.description,b.value=t.selectedSkill.content),g.value=!1}function z(){t.selectedSkill&&(r("update-skill",t.selectedSkill.name,i.value.trim(),b.value),g.value=!1)}function _(){t.selectedSkill&&(r("delete-skill",t.selectedSkill.name),a.value="list")}return(j,E)=>(w(),qt(Qs,{to:"body"},[e.open?(w(),S("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 backdrop-blur-sm px-4",role:"presentation",onClick:E[11]||(E[11]=V=>j.$emit("close"))},[n("div",{class:"w-full max-w-lg max-h-[80vh] rounded-lg border border-border-light dark:border-border-dark bg-surface-light dark:bg-surface-dark shadow-lg flex flex-col",role:"dialog","aria-modal":"true",tabindex:"0",onClick:E[9]||(E[9]=we(()=>{},["stop"])),onKeydown:E[10]||(E[10]=Fe(we(V=>j.$emit("close"),["stop","prevent"]),["escape"]))},[a.value==="list"?(w(),S(ae,{key:0},[n("div",Ki,[n("div",Yi,[E[12]||(E[12]=n("h3",{class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark"}," Skills ",-1)),e.skills.length?(w(),S("span",Xi,N(e.skills.length),1)):G("",!0)]),n("div",Zi,[n("button",{class:"text-xs px-3 py-1.5 rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",type:"button",onClick:h}," Create "),n("button",{class:"text-text-secondary-light dark:text-text-secondary-dark hover:text-primary",type:"button",onClick:E[0]||(E[0]=V=>j.$emit("close"))},[...E[13]||(E[13]=[n("span",{class:"material-icons-outlined text-base"},"close",-1)])])])]),n("div",ed,[e.error?(w(),S("p",td,N(e.error),1)):G("",!0),e.loading&&!e.skills.length?(w(),S("div",sd," Loading skills... ")):e.skills.length?(w(),S("div",nd,[(w(!0),S(ae,null,$e(e.skills,V=>(w(),S("div",{key:V.name,class:Ce(["w-full rounded-md px-3 py-2.5 text-[13px] text-text-primary-light dark:text-text-primary-dark hover:bg-gray-100 dark:hover:bg-gray-800/60 flex items-start gap-3 transition-colors",$(V.name)?"bg-primary/5 dark:bg-primary/10":""])},[n("button",{type:"button",class:Ce(["mt-0.5 shrink-0 w-5 h-5 flex items-center justify-center rounded-full transition-colors",$(V.name)?"bg-primary text-primary-foreground":"bg-gray-200 dark:bg-gray-700 text-text-secondary-light dark:text-text-secondary-dark hover:bg-primary/30 dark:hover:bg-primary/30"]),title:$(V.name)?"Deactivate skill":"Activate skill",onClick:ve=>D(ve,V.name)},[n("span",ad,N(($(V.name),"bolt")),1)],10,od),n("button",{type:"button",class:"min-w-0 flex-1 text-left",onClick:ve=>U(V)},[n("div",id,[n("span",dd,N(V.name),1),n("span",{class:Ce(["shrink-0 text-[10px] px-1.5 py-0.5 rounded-full font-medium",V.source==="global"?"bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400":"bg-green-100 dark:bg-green-900/30 text-green-600 dark:text-green-400"])},N(V.source),3),$(V.name)?(w(),S("span",cd," active ")):G("",!0)]),n("p",ud,N(V.description),1)],8,ld),n("span",{class:"material-icons-outlined text-[16px] text-text-secondary-light dark:text-text-secondary-dark mt-0.5 shrink-0 cursor-pointer",onClick:ve=>U(V)},"chevron_right",8,md)],2))),128))])):(w(),S("div",rd,[...E[14]||(E[14]=[n("span",{class:"material-icons-outlined text-3xl text-text-secondary-light dark:text-text-secondary-dark mb-2 block"},"psychology",-1),n("p",{class:"text-sm text-text-secondary-light dark:text-text-secondary-dark"}," No skills found ",-1),n("p",{class:"text-xs text-text-secondary-light dark:text-text-secondary-dark mt-1"}," Create a skill to get started, or add SKILL.md files to ~/.agents/skills/ ",-1)])]))])],64)):G("",!0),a.value==="detail"?(w(),S(ae,{key:1},[n("div",pd,[n("div",fd,[n("button",{class:"text-text-secondary-light dark:text-text-secondary-dark hover:text-primary",type:"button",onClick:v},[...E[15]||(E[15]=[n("span",{class:"material-icons-outlined text-base"},"arrow_back",-1)])]),n("h3",gd,N(e.selectedSkill?.name??"Skill"),1),e.selectedSkill?(w(),S("span",{key:0,class:Ce(["shrink-0 text-[10px] px-1.5 py-0.5 rounded-full font-medium",e.selectedSkill.source==="global"?"bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400":"bg-green-100 dark:bg-green-900/30 text-green-600 dark:text-green-400"])},N(e.selectedSkill.source),3)):G("",!0)]),n("button",{class:"text-text-secondary-light dark:text-text-secondary-dark hover:text-primary",type:"button",onClick:E[1]||(E[1]=V=>j.$emit("close"))},[...E[16]||(E[16]=[n("span",{class:"material-icons-outlined text-base"},"close",-1)])])]),n("div",vd,[e.detailLoading?(w(),S("div",yd," Loading skill... ")):G("",!0),e.error?(w(),S("p",xd,N(e.error),1)):G("",!0),e.selectedSkill&&!e.detailLoading?(w(),S(ae,{key:2},[n("p",hd,N(e.selectedSkill.fullPath),1),n("div",bd,[E[17]||(E[17]=n("label",{class:"block text-xs font-medium text-text-secondary-light dark:text-text-secondary-dark mb-1"}," Description ",-1)),g.value?gt((w(),S("input",{key:0,"onUpdate:modelValue":E[2]||(E[2]=V=>i.value=V),class:"w-full rounded-md border border-border-light dark:border-border-dark bg-transparent px-2 py-1.5 text-xs text-text-primary-light dark:text-text-primary-dark",type:"text",placeholder:"Skill description"},null,512)),[[vt,i.value]]):(w(),S("p",kd,N(e.selectedSkill.description),1))]),n("div",wd,[E[18]||(E[18]=n("label",{class:"block text-xs font-medium text-text-secondary-light dark:text-text-secondary-dark mb-1"}," Content ",-1)),g.value?gt((w(),S("textarea",{key:0,"onUpdate:modelValue":E[3]||(E[3]=V=>b.value=V),class:"w-full rounded-md border border-border-light dark:border-border-dark bg-transparent px-3 py-2 text-xs text-text-primary-light dark:text-text-primary-dark font-mono resize-y min-h-[200px]",rows:"12",placeholder:"Skill instructions..."},null,512)),[[vt,b.value]]):(w(),S("pre",Sd,N(e.selectedSkill.content||"(empty)"),1))]),g.value?G("",!0):(w(),S("div",{key:0,class:Ce(["mb-4 flex items-center gap-3 rounded-md border px-3 py-2.5 transition-colors",R.value?"border-primary/40 bg-primary/5 dark:bg-primary/10":"border-border-light dark:border-border-dark"])},[n("span",{class:Ce(["material-icons-outlined text-[18px]",R.value?"text-primary":"text-text-secondary-light dark:text-text-secondary-dark"])}," bolt ",2),n("div",Cd,[n("p",$d,N(R.value?"Skill is active":"Skill is inactive"),1),n("p",Id,N(R.value?"This skill will be applied to all messages in this session.":"Activate to force this skill on every message."),1)]),n("button",{type:"button",class:Ce(["text-xs px-3 py-1.5 rounded transition-colors shrink-0",R.value?"border border-primary/40 text-primary hover:bg-primary/10":"bg-primary text-primary-foreground hover:bg-primary/90"]),onClick:E[4]||(E[4]=V=>j.$emit("toggle-activation",e.selectedSkill.name))},N(R.value?"Deactivate":"Activate"),3)],2)),n("div",Ad,[n("div",null,[x.value&&!g.value?(w(),S("button",{key:0,class:"text-xs px-3 py-1.5 rounded border border-red-300 dark:border-red-700 text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors",type:"button",disabled:e.loading,onClick:_}," Delete ",8,Md)):G("",!0)]),n("div",Rd,[g.value?(w(),S(ae,{key:0},[n("button",{class:"text-xs px-3 py-1.5 rounded border border-border-light dark:border-border-dark text-text-primary-light dark:text-text-primary-dark hover:bg-gray-50 dark:hover:bg-gray-800/60 transition-colors",type:"button",onClick:u}," Cancel "),n("button",{class:"text-xs px-3 py-1.5 rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",type:"button",disabled:e.loading,onClick:z}," Save ",8,Td)],64)):(w(),S("button",{key:1,class:"text-xs px-3 py-1.5 rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",type:"button",onClick:c}," Edit "))])])],64)):G("",!0)])],64)):G("",!0),a.value==="create"?(w(),S(ae,{key:2},[n("div",Ed,[n("div",{class:"flex items-center gap-2"},[n("button",{class:"text-text-secondary-light dark:text-text-secondary-dark hover:text-primary",type:"button",onClick:v},[...E[19]||(E[19]=[n("span",{class:"material-icons-outlined text-base"},"arrow_back",-1)])]),E[20]||(E[20]=n("h3",{class:"text-sm font-semibold text-text-primary-light dark:text-text-primary-dark"}," Create Skill ",-1))]),n("button",{class:"text-text-secondary-light dark:text-text-secondary-dark hover:text-primary",type:"button",onClick:E[5]||(E[5]=V=>j.$emit("close"))},[...E[21]||(E[21]=[n("span",{class:"material-icons-outlined text-base"},"close",-1)])])]),n("div",Pd,[E[25]||(E[25]=n("p",{class:"text-xs text-text-secondary-light dark:text-text-secondary-dark mb-4"}," Skills will be saved to ~/.agents/skills/ ",-1)),e.error?(w(),S("p",Ud,N(e.error),1)):G("",!0),n("div",Od,[E[22]||(E[22]=n("label",{class:"block text-xs font-medium text-text-secondary-light dark:text-text-secondary-dark mb-1"}," Name ",-1)),gt(n("input",{"onUpdate:modelValue":E[6]||(E[6]=V=>o.value=V),class:"w-full rounded-md border border-border-light dark:border-border-dark bg-transparent px-2 py-1.5 text-xs text-text-primary-light dark:text-text-primary-dark",type:"text",placeholder:"my-skill",onBlur:C},null,544),[[vt,o.value]]),M.value?(w(),S("p",Dd,N(M.value),1)):G("",!0)]),n("div",Nd,[E[23]||(E[23]=n("label",{class:"block text-xs font-medium text-text-secondary-light dark:text-text-secondary-dark mb-1"}," Description ",-1)),gt(n("input",{"onUpdate:modelValue":E[7]||(E[7]=V=>l.value=V),class:"w-full rounded-md border border-border-light dark:border-border-dark bg-transparent px-2 py-1.5 text-xs text-text-primary-light dark:text-text-primary-dark",type:"text",placeholder:"What this skill does..."},null,512),[[vt,l.value]])]),n("div",Bd,[E[24]||(E[24]=n("label",{class:"block text-xs font-medium text-text-secondary-light dark:text-text-secondary-dark mb-1"}," Content ",-1)),gt(n("textarea",{"onUpdate:modelValue":E[8]||(E[8]=V=>m.value=V),class:"w-full rounded-md border border-border-light dark:border-border-dark bg-transparent px-3 py-2 text-xs text-text-primary-light dark:text-text-primary-dark font-mono resize-y min-h-[160px]",rows:"10",placeholder:`# Skill Instructions
|
|
7
|
+
|
|
8
|
+
Describe the skill behavior here...`},null,512),[[vt,m.value]])]),n("div",zd,[n("button",{class:"text-xs px-3 py-1.5 rounded border border-border-light dark:border-border-dark text-text-primary-light dark:text-text-primary-dark hover:bg-gray-50 dark:hover:bg-gray-800/60 transition-colors",type:"button",onClick:v}," Cancel "),n("button",{class:"text-xs px-3 py-1.5 rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50",type:"button",disabled:!d.value||e.loading,onClick:I}," Create ",8,jd)])])],64)):G("",!0)],32)])):G("",!0)]))}}),_d=Object.assign(Ld,{__name:"SkillsDialog"}),Qd=Ae({__name:"Toast",props:{visible:{type:Boolean},message:{},kind:{}},emits:["close"],setup(e,{emit:s}){const t=s;function r(){t("close")}return(a,o)=>e.visible?(w(),S("div",{key:0,class:Ce(["fixed bottom-4 right-4 z-50 rounded-md border px-3 py-2 text-xs shadow-lg cursor-pointer transition-colors",e.kind==="success"?"bg-emerald-50 border-emerald-500 text-emerald-700 dark:bg-emerald-500/10 dark:text-emerald-300":e.kind==="error"?"bg-red-50 border-red-500 text-red-700 dark:bg-red-500/10 dark:text-red-300":"bg-surface-light border-border-light text-text-primary-light dark:bg-surface-dark dark:border-border-dark dark:text-text-primary-dark"]),role:"alert",onClick:r},N(e.message),3)):G("",!0)}}),qd=Object.assign(Qd,{__name:"Toast"}),Bt="Other";function Fd(){const e=T(!1),s=T([]),t=T({}),r=T({}),a=T(null),o=T(null),l=T(null),m=T(!1),i=T(null);function b(I){const c={},u={};for(let z=0;z<I.length;z+=1){const _=String(z),j=I[z];if(j?.multiSelect)c[_]=[];else{const E=j?.options?.[0]?.label;c[_]=E?[String(E)]:[]}u[_]=""}t.value=c,r.value=u}function g(I,c){return(t.value[String(I)]??[]).includes(c)}function M(I,c,u){const z=String(I);if(s.value[I]?.multiSelect){const j=new Set(t.value[z]??[]);u?j.add(c):j.delete(c),t.value={...t.value,[z]:Array.from(j)};return}u&&(t.value={...t.value,[z]:[c]})}function y(I,c,u){const z=u.target;M(I,c,!!z?.checked)}function d(){const I={};for(let c=0;c<s.value.length;c+=1){const u=String(c),z=s.value[c],_=t.value[u]??[],j=(r.value[u]??"").trim();if(z?.multiSelect){const E=_.filter(V=>V!==Bt);_.includes(Bt)&&j&&E.push(j),I[u]=E}else{const E=_[0]??"";I[u]=E===Bt?j:E}}return I}function x(I){if(!Array.isArray(I))return[];const c=[];for(const u of I){if(!u||typeof u!="object")continue;const z=typeof u.question=="string"?u.question:"",j=(typeof u.header=="string"?u.header:"")||"Question",V=(Array.isArray(u.options)?u.options:[]).map(ne=>({label:typeof ne?.label=="string"?ne.label:"",description:typeof ne?.description=="string"?ne.description:""})).filter(ne=>ne.label||ne.description),ve=typeof u.multiSelect=="boolean"?u.multiSelect:typeof u.multi_select=="boolean"?u.multi_select:!1;(z||V.length)&&c.push({question:z,header:j,options:V,multiSelect:ve})}return c}function R(I){if(!I)return[];try{const c=JSON.parse(I);return x(c?.questions)}catch{return[]}}function $(I,c){const u=I.get(c);if(!u)return{toolCallId:"",questions:[]};for(const[z,_]of u.toolCalls){if(String(_.name??"").toLowerCase()!=="askuserquestion")continue;const j=R(_.args);return{toolCallId:String(z??""),questions:j}}return{toolCallId:"",questions:[]}}function D(I,c){const u=new Map,z=[];for(const _ of I){const j=qe(_);if(!j)continue;const E=at(j);if(!E||E!==c||_.type!=="tool.call")continue;const V=Ne(j);if(!V)continue;const ve=Lt(j),{args:ne,delta:Se}=_t(j),te=!Se;u.has(V)||z.push(V);const W=u.get(V)??{name:ve,args:""};u.set(V,{name:W.name||ve,args:te?ne:`${W.args}${ne}`})}for(const _ of z){const j=u.get(_);if(!j||String(j.name??"").toLowerCase()!=="askuserquestion")continue;const E=R(j.args);return{toolCallId:_,questions:E}}return{toolCallId:"",questions:[]}}function U(I,c,u={}){const z=Ne(I)??"";let _=x(I?.questions),j=z;if(!_.length||!j){const E=u.events&&u.streamRuns?D(u.events,c):u.streamRuns?$(u.streamRuns,c):{toolCallId:"",questions:[]};j||(j=E.toolCallId),_.length||(_=E.questions)}return{toolCallId:j,questions:_}}function h(I,c){for(let u=I.length-1;u>=0;u-=1){const z=I[u];if(z.type!=="requires_action")continue;const _=qe(z);if(!_)continue;const j=at(_);if(!j||j!==c)continue;if(String(_?.kind??_?.action_kind??"")==="ask_user")return _}return null}function v(I,c,u,z){if(!c||!I.length){console.warn("AskUser required but questions are missing.");return}e.value&&l.value===z||(s.value=I,a.value=c,o.value=u,l.value=z,b(I),e.value=!0)}function C(I){m.value||(e.value=!1,s.value=[],t.value={},r.value={},a.value=null,o.value=null,l.value=null,I&&I())}return{ASK_USER_OTHER_LABEL:Bt,askUserDialogOpen:e,askUserQuestions:s,askUserSelections:t,askUserOtherInputs:r,askUserToolCallId:a,askUserSessionId:o,askUserRunId:l,askUserBusy:m,askUserDialogEl:i,initAskUserState:b,isAskUserSelected:g,updateAskUserSelection:M,onAskUserOptionChange:y,buildAskUserAnswers:d,normalizeAskUserQuestions:x,parseAskUserQuestionsFromArgs:R,findAskUserFromStreamRun:$,findAskUserFromEvents:D,resolveAskUserPayload:U,findAskUserRequiresActionPayload:h,openAskUserDialog:v,closeAskUserDialog:C}}function nr(e){const s=String(e??"").trim();return s?s.replace(/\/+$/,""):""}function or(e,s,t){const r=nr(e),a=s.startsWith("/")?s:`/${s}`,o=`${r}${a}`;if(!t)return o;const l=o.includes("?")?"&":"?";return`${o}${l}cursor=${encodeURIComponent(t)}`}function Wd(){if(typeof window>"u")return"";try{const e=new URLSearchParams(window.location.search);return String(e.get("token")??"").trim()}catch{return""}}function ar(e,s,t){const r=String(t?.token??"").trim(),a=String(t?.cursor??"").trim(),o=or(e,s,a||void 0);if(!r)return o;const l=o.includes("?")?"&":"?";return`${o}${l}token=${encodeURIComponent(r)}`}function zt(e){const s=String(e??"").trim();if(!s)return null;try{return JSON.parse(s)}catch{return s}}async function be(e,s,t,r){const a=ar(e,s,r),o=await fetch(a,{credentials:"same-origin",headers:{"content-type":"application/json",...t?.headers??{}},...t}),l=await o.text(),m=zt(l);if(!o.ok){const i=typeof m=="string"?m:JSON.stringify(m);throw new Error(`Request failed (${o.status}): ${i||o.statusText}`)}return m}function Ye(e="",s){const t=nr(e),r=String(Wd()).trim();async function a(c){return be(t,"/status",{method:"GET",signal:c},{token:r})}async function o(c,u,z,_){return be(t,"/query",{method:"POST",body:JSON.stringify({query:c,input:c,attachments:u,attachmentsBase64:z,toolContext:_?.toolContext,resume:_?.resume})})}async function l(c,u,z,_,j){return be(t,"/query",{method:"POST",body:JSON.stringify({query:c,input:c,sessionId:u,attachments:z,attachmentsBase64:_,toolContext:j?.toolContext,resume:j?.resume})})}async function m(){const c=await be(t,"/sessions",{method:"GET"},{token:r});return Array.isArray(c.sessions)?c.sessions:[]}async function i(c){return(await be(t,`/sessions/${encodeURIComponent(c)}`,{method:"GET"},{token:r})).session??null}async function b(c){const u=c?JSON.stringify({cwd:c}):void 0;return be(t,"/sessions",{method:"POST",body:u},{token:r})}async function g(c,u){return be(t,`/sessions/${encodeURIComponent(c)}/rename`,{method:"POST",body:JSON.stringify({title:u})})}async function M(c){return be(t,`/sessions/${encodeURIComponent(c)}`,{method:"DELETE"},{token:r})}async function y(){const c=await be(t,"/modes",{method:"GET"});return{currentMode:c.currentMode??"agent",availableModes:c.availableModes??[]}}async function d(c){const u=await be(t,"/modes/set",{method:"POST",body:JSON.stringify({mode:c})});return{currentMode:u.currentMode??"agent",availableModes:u.availableModes??[]}}async function x(c,u){const z=or(t,"/query/stream"),_=await fetch(z,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",accept:"text/event-stream"},body:JSON.stringify({query:c,input:c,sessionId:u.sessionId,attachments:u.attachments,attachmentsBase64:u.attachmentsBase64,toolContext:u.toolContext,resume:u.resume})});if(!_.ok){const te=await _.text(),W=zt(te),_e=typeof W=="string"?W:JSON.stringify(W);throw new Error(`Request failed (${_.status}): ${_e||_.statusText}`)}if(!_.body)throw new Error("Response body is null");const j=_.body.getReader(),E=new TextDecoder;let V="",ve=!1,ne=!1;return(async()=>{try{let te={};for(;!ve;){const{done:W,value:_e}=await j.read();if(W)break;V+=E.decode(_e,{stream:!0});const Ve=V.split(`
|
|
9
|
+
`);V=Ve.pop()||"";for(const se of Ve){if(se.startsWith(":"))continue;if(!se.trim()){if(te.data){const ze=te.data,ie=zt(ze);if(ie&&typeof ie=="object"){const H=ie,he=te.type||String(H.type||"message"),fe={id:te.id??(H.id?String(H.id):void 0),type:he,ts:H.ts?String(H.ts):void 0,seq:typeof H.seq=="number"?H.seq:void 0,payload:H.payload,raw:ze,receivedAt:new Date().toISOString()};if(u.onEvent(fe),he==="query.result"&&H.payload&&u.onComplete)u.onComplete(H.payload);else if(he==="query.error"&&H.payload&&u.onError){const Pe=H.payload;u.onError(new Error(Pe.error||"Query failed"))}}}te={};continue}const P=se.match(/^id:\s*(.*)$/),pe=se.match(/^event:\s*(.*)$/),xe=se.match(/^data:\s*(.*)$/);P?te.id=P[1]:pe?te.type=pe[1]:xe&&(te.data=(te.data||"")+xe[1])}}}catch(te){!ve&&u.onError&&u.onError(te instanceof Error?te:new Error(String(te)))}finally{if(!ne)try{j.releaseLock(),ne=!0}catch{}}})(),()=>{if(ve=!0,!ne)try{j.cancel(),j.releaseLock(),ne=!0}catch{}}}async function R(){const c=await be(t,"/skills",{method:"GET"},{token:r});return Array.isArray(c.skills)?c.skills:[]}async function $(c){return(await be(t,`/skills/${encodeURIComponent(c)}`,{method:"GET"},{token:r})).skill??null}async function D(c,u,z){return(await be(t,"/skills",{method:"POST",body:JSON.stringify({name:c,description:u,content:z})},{token:r})).skill??null}async function U(c,u,z){return(await be(t,`/skills/${encodeURIComponent(c)}`,{method:"PUT",body:JSON.stringify({description:u,content:z})},{token:r})).skill??null}async function h(c){await be(t,`/skills/${encodeURIComponent(c)}`,{method:"DELETE"},{token:r})}async function v(){const c=await be(t,"/skills/active",{method:"GET"},{token:r});return Array.isArray(c.activeSkills)?c.activeSkills:[]}async function C(c){const u=await be(t,"/skills/activate",{method:"POST",body:JSON.stringify({name:c})},{token:r});return Array.isArray(u.activeSkills)?u.activeSkills:[]}async function I(c){const u=await be(t,"/skills/deactivate",{method:"POST",body:JSON.stringify({name:c})},{token:r});return Array.isArray(u.activeSkills)?u.activeSkills:[]}return{fetchStatus:a,runQuery:o,runQueryWithSession:l,runQueryStream:x,fetchSessions:m,fetchSession:i,createSession:b,renameSession:g,deleteSession:M,fetchModes:y,setMode:d,fetchSkills:R,fetchSkill:$,createSkill:D,updateSkill:U,deleteSkill:h,fetchActiveSkills:v,activateSkill:C,deactivateSkill:I,uploadFile:async c=>{const u=ar(t,"/upload",{token:r}),z=new FormData;z.append("file",c);const _=await fetch(u,{method:"POST",body:z,credentials:"same-origin"}),j=await _.text(),E=zt(j);if(!_.ok||!E?.file)throw new Error(E?.error||`Upload failed (${_.status})`);return E.file}}}function Vd(e){const s=T([]),t=T(""),r=T(!1),a=T(null),o=T(!1),l=T(null),m=Ye();function i(v){try{URL.revokeObjectURL(v)}catch{}}function b(v){const C=s.value,I=C.find(c=>c.id===v);I?.localUrl&&i(I.localUrl),s.value=C.filter(c=>c.id!==v),s.value.length||(t.value="",r.value=!1)}function g(){for(const v of s.value)v.localUrl&&i(v.localUrl);s.value=[],t.value="",r.value=!1}async function M(v){v.status="uploading",v.error=void 0;try{const C=await m.uploadFile(v.file);v.remote={...C,name:C.name||v.name,mime:C.mime||v.mime,size:C.size||v.size,kind:v.mime.startsWith("image/")?"image":"file"},v.status="ready"}catch(C){v.status="error",v.error=C instanceof Error?C.message:String(C)}}async function y(v){if(!e.value){t.value="Uploads are disabled by the server.";return}t.value="";for(const C of v){const I=We(),c={id:I,file:C,name:C.name||`attachment-${I.slice(0,6)}`,mime:C.type||"application/octet-stream",size:C.size,localUrl:URL.createObjectURL(C),status:"pending"};s.value=[...s.value,c],c.uploadPromise=M(c),c.uploadPromise}}function d(v){const C=v.clipboardData?.items;if(!C||!C.length)return;const I=[];for(const c of C)if(c.kind==="file"){const u=c.getAsFile();u&&I.push(u)}I.length&&(v.clipboardData?.getData("text")||v.preventDefault(),y(I))}function x(v){const C=v.dataTransfer?.files;if(!C||!C.length)return;const I=Array.from(C);I.length&&y(I)}function R(v){const C=v.target;if(!C?.files)return;const I=Array.from(C.files);C.value="",I.length&&y(I)}function $(){a.value?.click()}function D(){o.value=!1,$()}function U(){o.value=!o.value}async function h(){const v=s.value.filter(c=>c.status==="pending"&&!c.uploadPromise);for(const c of v)c.uploadPromise=M(c);const C=s.value.map(c=>c.uploadPromise).filter(c=>!!c);C.length&&await Promise.all(C);const I=s.value.filter(c=>c.status==="error");return I.length?(t.value=I[0]?.error??"Attachment upload failed.",[]):s.value.filter(c=>c.status==="ready"&&c.remote).map(c=>({...c.remote,name:c.remote?.name||c.name,mime:c.remote?.mime||c.mime,size:c.remote?.size||c.size,kind:c.remote?.kind||(c.mime.startsWith("image/")?"image":"file")}))}return{attachments:s,attachmentNote:t,attachmentsBase64:r,filePicker:a,composerMenuOpen:o,composerMenuEl:l,removeAttachment:b,clearAttachments:g,handlePaste:d,handleDrop:x,handleFilePick:R,openFilePicker:$,handleAddFile:D,toggleComposerMenu:U,ensureUploadsReady:h}}function Gd(){const e=T(!1),s=T(null),t=T(!1),r=T(null);function a(l){s.value={id:l.id,title:l.title},e.value=!0}function o(){t.value||(e.value=!1,s.value=null)}return{deleteDialogOpen:e,deleteTarget:s,deleteBusy:t,deleteDialogEl:r,openDeleteDialog:a,closeDeleteDialog:o}}function Jd(){const e=new Set(["Connected. Select a session and continue the conversation here.","Session is empty. Start chatting to add messages.","Chat cleared. Start a new conversation."]),s=T([{id:"welcome",role:"system",parts:[oe("Connected. Select a session and continue the conversation here.")],ts:new Date().toISOString()}]),t=T(null),r=Z(()=>m(s.value));function a(h){if(h.role!=="system"||h.parts.length!==1)return!1;const v=h.parts[0];if(!v||v.type!=="markdown")return!1;const C=String(v.raw??"").trim();return e.has(C)}function o(h){return h.filter(v=>!a(v))}function l(){s.value=o(s.value)}function m(h){const v=[];for(const C of h){if(C.role!=="assistant"){v.push(C);continue}const I=v[v.length-1];if(!I||I.role!=="assistant"){v.push(C);continue}v[v.length-1]={...I,parts:[...I.parts,...C.parts],ts:C.ts||I.ts,meta:C.meta}}return v}function i(h,v){l(),s.value=[...s.value,ke(h,[oe(v)])]}function b(h,v){if(!h)return;const C=typeof v=="string"?v:v&&typeof v=="object"&&"result"in v?String(v.result):JSON.stringify(v,null,2);s.value=s.value.map(I=>I.id!==h?I:{...I,parts:[oe(C)],meta:void 0})}function g(h,v){l();const C=[];v.length&&C.push({type:"attachments",items:v}),h.trim()&&C.push(oe(h)),s.value=[...s.value,ke("user",C)]}function M(h){if(!h)return;const v=()=>h?typeof h.result=="string"?h.result:h.result?JSON.stringify(h.result,null,2):h.error?String(h.error):JSON.stringify(h,null,2):"No response",C=s.value[s.value.length-1];(!C||C.role!=="assistant")&&i("assistant",v())}function y(){s.value=[ke("system",[oe("Chat cleared. Start a new conversation.")])]}function d(h){s.value=h}async function x(h){await Ke(),await Ke();const v=h??t.value;v&&(v.scrollTop=v.scrollHeight)}function R(h,v){if(!h)return;const C=v?`Waiting for approval: ${v}`:"Waiting for approval",I="Waiting for approval";s.value=s.value.map(c=>{if(c.id!==h)return c;const u=c.parts??[],z=u.length>0&&u[0]?.type==="markdown"&&String(u[0].raw??"").startsWith(I)?[oe(C),...u.slice(1)]:[oe(C),...u];return{...c,parts:z,meta:void 0}})}function $(h){if(!h)return;const v="Waiting for your answers",C="Waiting for your answers";s.value=s.value.map(I=>{if(I.id!==h)return I;const c=I.parts??[],u=c.length>0&&c[0]?.type==="markdown"&&String(c[0].raw??"").startsWith(C)?[oe(v),...c.slice(1)]:[oe(v),...c];return{...I,parts:u,meta:void 0}})}function D(h){if(!h)return;const v="Waiting for approval";s.value=s.value.map(C=>{if(C.id!==h)return C;const I=C.parts??[];return I.length>0&&I[0]?.type==="markdown"&&String(I[0].raw??"").startsWith(v)?{...C,parts:I.slice(1)}:C})}function U(h){if(!h)return;const v="Waiting for your answers";s.value=s.value.map(C=>{if(C.id!==h)return C;const I=C.parts??[];return I.length>0&&I[0]?.type==="markdown"&&String(I[0].raw??"").startsWith(v)?{...C,parts:I.slice(1)}:C})}return{chatMessages:s,chatMessagesRef:t,renderMessages:r,mergeAssistantTurns:m,appendMessage:i,updateStreamingMessageFinal:b,appendUserMessageWithAttachments:g,ensureAssistantReply:M,clearChat:y,setChatMessages:d,removeSystemPlaceholders:l,scrollChatToBottom:x,markMessageAwaitingApproval:R,markMessageAwaitingAnswers:$,clearMessageAwaitingApproval:D,clearMessageAwaitingAnswers:U}}function Hd(){const e=T("agent"),s=T(!1),t=T(null),r=Ye(),a=Z(()=>e.value.toUpperCase()),o=Z(()=>["agent","plan"]),l=Z(()=>`Message (${e.value.toUpperCase()} mode)...`);async function m(){try{const g=await r.fetchModes();e.value=g.currentMode}catch(g){console.error("Failed to fetch mode:",g)}}async function i(g){s.value=!1;try{const M=await r.setMode(g);e.value=M.currentMode}catch(M){console.error("Failed to set mode:",M),e.value=g}}function b(){s.value=!s.value}return{mode:e,modeMenuOpen:s,modeMenuEl:t,modeLabel:a,modeOptions:o,composerPlaceholder:l,fetchCurrentMode:m,setMode:i,toggleModeMenu:b}}function Kd(){const e=T(""),s=T(!1),t=T(null),r=T(null),a=T(null),o=Ye();async function l(i,b,g,M,y){const d=(i??e.value).trim(),x=Array.isArray(g)&&g.length>0,R=!!y?.resume;if(!d&&!x&&!R){t.value="Query cannot be empty.";return}s.value=!0,t.value=null;try{r.value=b?await o.runQueryWithSession(d,b,g,M,y):await o.runQuery(d,g,M,y),a.value=new Date().toISOString()}catch($){t.value=$ instanceof Error?$.message:String($),r.value=null}finally{s.value=!1}}function m(i){e.value=i}return{input:e,loading:s,error:t,response:r,lastRunAt:a,run:l,setInput:m}}function Yd(){const e=T(""),s=T(!1),t=T(null),r=T(null),a=T([]),o=T(null),l=Ye();let m=null;async function i(y,d,x,R,$){const D=(y??e.value).trim(),U=Array.isArray(x)&&x.length>0,h=!!$?.resume;if(!D&&!U&&!h){t.value="Query cannot be empty.";return}m&&(m(),m=null),s.value=!0,t.value=null,a.value=[],r.value=null;try{m=await l.runQueryStream(D,{sessionId:d,attachments:x,attachmentsBase64:R,toolContext:$?.toolContext,resume:$?.resume,onEvent:v=>{a.value=[...a.value,v]},onComplete:v=>{r.value=v,s.value=!1,o.value=new Date().toISOString()},onError:v=>{t.value=v.message,s.value=!1}})}catch(v){t.value=v instanceof Error?v.message:String(v),s.value=!1}}function b(){m&&(m(),m=null,s.value=!1)}function g(y){e.value=y}function M(){a.value=[]}return{input:e,loading:s,error:t,response:r,events:a,lastRunAt:o,run:i,stop:b,setInput:g,clearEvents:M}}function Xd(){const e=T(null),s=T(!1),t=T(null),r=T(null),a=Ye();async function o(){s.value=!0,t.value=null;try{e.value=await a.fetchStatus(),r.value=new Date().toISOString()}catch(l){t.value=l instanceof Error?l.message:String(l)}finally{s.value=!1}}return{status:e,loading:s,error:t,lastUpdated:r,refresh:o}}function Zd(e){const s=T(""),t=T([]),r=T(null),a=T(""),o=T(""),l=T(""),m=Z(()=>[...e.sessionsError.value?t.value.length?t.value:[{id:"local",title:"Main Session",summary:"Local-only session",updatedAt:void 0}]:e.remoteSessions.value].sort((v,C)=>{const I=Ds(v),c=Ds(C);if(I!==c)return c-I;const u=String(v.title??""),z=String(C.title??""),_=u.localeCompare(z);return _!==0?_:String(v.id??"").localeCompare(String(C.id??""))})),i=Z(()=>!e.sessionsError.value),b=Z(()=>{const h=m.value.find(C=>C.id===s.value);if(h?.title)return h.title;const v=String(r.value?.state?.title??"").trim();return v||(m.value[0]?.title??"Main")}),g=Z(()=>{if(!(!s.value||s.value==="local"))return s.value}),M=Z(()=>{const h=m.value.find(v=>v.id===s.value);return h&&"summary"in h&&h.summary?h.summary:"Shared CLI session"}),y=Z(()=>{const v=m.value.find(c=>c.id===s.value)?.cwd,C=r.value?.metadata?.cwd??r.value?.state?.context?.cwd;return String(v??C??"").trim()||"—"}),d=Z(()=>m.value.find(v=>v.id===s.value)?.gitBranch??"");function x(h){e.sessionsError.value||(a.value=h.id,o.value=h.title,l.value="")}function R(){a.value="",o.value=""}async function $(h){if(e.sessionsError.value)return;const v=o.value.trim();if(!v){l.value="Title cannot be empty.";return}if(await e.renameRemoteSession(h.id,v),e.sessionsError.value){l.value=`Rename failed: ${e.sessionsError.value}`;return}if(l.value=`Renamed session to: ${v}`,h.id===s.value){const C=await e.fetchSession(h.id);C&&(r.value=C)}a.value="",o.value=""}async function D(h,v,C,I){const c=v??s.value;if(!c||c==="local")return!1;const u=h===void 0?await e.fetchSession(c):h;return u?(r.value=u,s.value=c,!0):(r.value=null,!1)}async function U(h){if(!e.sessionsError.value){const I=await e.createRemoteSession(h);await e.refreshSessions();const c=I?.session?.id??I?.id;return c?(s.value=String(c),String(c)):null}const v=We(),C={id:v,title:`Local ${v.slice(0,6)}`,updatedAt:Date.now()};return t.value=[C,...t.value],s.value=v,v}return{activeSessionId:s,localSessions:t,sessionSnapshot:r,editingSessionId:a,renameDraft:o,sessionNote:l,sessions:m,canManageSessions:i,activeSessionTitle:b,activeSessionQueryId:g,activeSessionSummary:M,activeSessionCwdLabel:y,activeSessionGitBranch:d,startRename:x,cancelRename:R,applyRename:$,refreshActiveSession:D,createSession:U}}function ec(){const e=T([]),s=T(!1),t=T(!1),r=T(null),a=Ye();async function o(){s.value=!0,r.value=null;try{e.value=await a.fetchSessions()}catch(g){r.value=g instanceof Error?g.message:String(g),e.value=[]}finally{s.value=!1}}async function l(g){s.value=!0,r.value=null;try{const M=await a.createSession(g);return await o(),M}catch(M){r.value=M instanceof Error?M.message:String(M)}finally{s.value=!1}}async function m(g){t.value=!0,r.value=null;try{return await a.fetchSession(g)}catch(M){return r.value=M instanceof Error?M.message:String(M),null}finally{t.value=!1}}async function i(g,M){s.value=!0,r.value=null;try{const y=await a.renameSession(g,M);return await o(),y}catch(y){r.value=y instanceof Error?y.message:String(y)}finally{s.value=!1}}async function b(g){s.value=!0,r.value=null;try{await a.deleteSession(g),await o()}catch(M){r.value=M instanceof Error?M.message:String(M)}finally{s.value=!1}}return{sessions:e,loading:s,sessionLoading:t,error:r,refresh:o,create:l,fetchSession:m,rename:i,destroy:b}}function tc(){const e=T(null),s=T(null),t=new Map,r=new Set,a=T(null),o=T(!1),l=T(!1),m=T(null),i=T(!0);function b(d,x,R){const $=t.get(d);if($)return $;if(x&&R.activeSessionId.value&&R.activeSessionId.value!=="local"&&R.activeSessionId.value!==x)return null;x&&(!R.activeSessionId.value||R.activeSessionId.value==="local")&&(R.activeSessionId.value=x);const D=R.createMessage("assistant",[R.buildMarkdownPart("")],new Date().toISOString(),"streaming");R.chatMessages.value=[...R.chatMessages.value,D];const U={runId:d,sessionId:x??void 0,messageId:D.id,textSegments:[],activeTextSegmentIndex:-1,hasDelta:!1,thinkingBlocks:[],activeThinkingIndex:-1,eventIndex:0,toolCalls:new Map,toolResults:new Map};return t.set(d,U),e.value=d,U}function g(d,x){const R=[],$=[];for(let D=0;D<d.thinkingBlocks.length;D+=1){const U=d.thinkingBlocks[D];$.push({kind:"thinking",order:U.order,index:D})}if(d.hasDelta)for(let D=0;D<d.textSegments.length;D+=1){const U=d.textSegments[D];U&&U.content&&$.push({kind:"text",order:U.order,segmentIndex:D})}for(const[D,U]of d.toolCalls)$.push({kind:"tool_call",order:U.order,callId:D});for(const[D,U]of d.toolResults)$.push({kind:"tool_result",order:U.order,callId:D});$.sort((D,U)=>D.order-U.order);for(const D of $){if(D.kind==="thinking"){const h=d.thinkingBlocks[D.index];if(!h)continue;R.push({type:"thinking",title:"Thinking",collapsed:!0,content:h.content});continue}if(D.kind==="text"){const h=d.textSegments[D.segmentIndex];if(!h)continue;R.push({type:"markdown",raw:h.content,blocks:os(h.content)});continue}if(D.kind==="tool_call"){const h=d.toolCalls.get(D.callId);if(!h)continue;R.push({type:"tool_call",name:h.name,args:h.args||"No arguments",callId:D.callId});continue}const U=d.toolResults.get(D.callId);U&&R.push({type:"tool_result",name:U.name,output:U.output||"No output",status:U.status,callId:D.callId,structured:U.structured})}if(R.length===0){const D="Thinking…";R.push({type:"markdown",raw:D,blocks:os(D)})}x.chatMessages.value=x.chatMessages.value.map(D=>D.id!==d.messageId?D:{...D,parts:R,meta:"streaming"})}function M(d,x){const R=t.get(d);R&&(t.delete(d),e.value===d&&(e.value=null),x.chatMessages.value=x.chatMessages.value.map($=>$.id!==R.messageId?$:{...$,meta:void 0}))}function y(d){r.clear(),a.value=null,o.value=!1,l.value=!1,d.clearStreamQueryEvents();const x=We();m.value=x,d.chatMessages.value=[...d.chatMessages.value,d.createMessage("assistant",[d.buildMarkdownPart("Thinking...")],new Date().toISOString(),"streaming",x)]}return{activeStreamRunId:e,lastStreamEventId:s,streamRuns:t,streamQueryRunIds:r,activeStreamQueryRunId:a,streamQueryHasDelta:o,streamQueryPaused:l,currentStreamMessageId:m,useStreamingQuery:i,ensureStreamRun:b,updateStreamMessage:g,finalizeStreamRun:M,beginStreamQueryMessage:y}}function sc(){const e=T([]),s=T(!1),t=T(null),r=T(null),a=T(!1),o=T([]),l=Ye(),m=Z(()=>new Set(o.value));function i(U){return m.value.has(U)}async function b(){s.value=!0,t.value=null;try{e.value=await l.fetchSkills(),o.value=await l.fetchActiveSkills()}catch(U){t.value=U instanceof Error?U.message:String(U),e.value=[]}finally{s.value=!1}}async function g(){try{o.value=await l.fetchActiveSkills()}catch{}}async function M(U){t.value=null;try{o.value=await l.activateSkill(U)}catch(h){t.value=h instanceof Error?h.message:String(h)}}async function y(U){t.value=null;try{o.value=await l.deactivateSkill(U)}catch(h){t.value=h instanceof Error?h.message:String(h)}}async function d(U){i(U)?await y(U):await M(U)}async function x(U){a.value=!0,t.value=null;try{r.value=await l.fetchSkill(U)}catch(h){t.value=h instanceof Error?h.message:String(h),r.value=null}finally{a.value=!1}}async function R(U,h,v){s.value=!0,t.value=null;try{await l.createSkill(U,h,v),await b()}catch(C){t.value=C instanceof Error?C.message:String(C)}finally{s.value=!1}}async function $(U,h,v){s.value=!0,t.value=null;try{await l.updateSkill(U,h,v),await b()}catch(C){t.value=C instanceof Error?C.message:String(C)}finally{s.value=!1}}async function D(U){s.value=!0,t.value=null;try{await l.deleteSkill(U),r.value=null,await b()}catch(h){t.value=h instanceof Error?h.message:String(h)}finally{s.value=!1}}return{skills:e,loading:s,detailLoading:a,error:t,selectedSkill:r,activeSkillNames:o,activeSkillSet:m,isSkillActive:i,fetchSkills:b,fetchActiveSkills:g,activateSkill:M,deactivateSkill:y,toggleSkillActivation:d,fetchSkillDetail:x,createSkill:R,updateSkill:$,deleteSkill:D}}let He;function rc(){const e=T(""),s=T("info"),t=T(!1);function r(){t.value=!1,He&&(clearTimeout(He),He=void 0)}function a(o,l="info",m=2200){e.value=o,s.value=l,t.value=!0,He&&clearTimeout(He),He=globalThis.setTimeout(()=>{t.value=!1,He=void 0},m)}return{toastMessage:e,toastKind:s,toastVisible:t,showToast:a,hideToast:r}}const Bs="goatchain:tool-approvals";function nc(){const e=T("auto"),s=T(!1),t=T([]),r=T(null),a=T(null),o=T(!1),l=T(null),m=Z(()=>t.value[0]??null),i=Z(()=>t.value.length);function b(){if(!(typeof window>"u"))try{const $=window.localStorage.getItem(Bs);e.value=$==="all"?"all":"auto"}catch{e.value="auto"}}function g($){if(!(typeof window>"u"))try{window.localStorage.setItem(Bs,$)}catch{}}function M($,D){const U={};if((D||e.value==="all")&&(U.autoApprove=!0),$&&Object.keys($).length>0&&(U.decisions=$),!!Object.keys(U).length)return{approval:U}}function y($,D){const U=new Map,h=[],v=new Set;for(const C of $){const I=qe(C);if(!I)continue;const c=at(I);if(!(c&&c!==D)){if(C.type==="tool.call"){const u=Ne(I);if(!u)continue;const z=Lt(I),{args:_,delta:j}=_t(I),E=!j;U.has(u)||h.push(u);const V=U.get(u)??{name:z,args:""};U.set(u,{name:V.name||z,args:E?_:`${V.args}${_}`});continue}if(C.type==="tool.result"){const u=Ne(I);u&&v.add(u)}}}return h.filter(C=>!v.has(C)).map(C=>{const I=U.get(C);return{toolCallId:C,toolName:I?.name||"tool",args:I?.args||"No arguments"}})}function d($,D){const U=$.get(D);if(!U)return[];const h=[];for(const[v,C]of U.toolCalls)U.toolResults.has(v)||h.push({toolCallId:v,toolName:C.name,args:C.args||"No arguments"});return h}function x($,D,U){if(!D){console.warn("Approval required but session id is missing.");return}if(!(s.value&&a.value===U)){if(!$.length){console.warn("Approval required but no tool calls were found.");return}if(e.value==="all"){t.value=[],r.value=D,a.value=U;return}t.value=$,r.value=D,a.value=U,s.value=!0}}function R($){o.value||(s.value=!1,t.value=[],r.value=null,a.value=null,$&&$())}return{toolApprovalsMode:e,approvalDialogOpen:s,approvalRequests:t,approvalSessionId:r,approvalRunId:a,approvalBusy:o,approvalDialogEl:l,activeApproval:m,approvalCount:i,loadToolApprovalsMode:b,persistToolApprovalsMode:g,buildToolContext:M,collectPendingApprovalsFromEvents:y,collectPendingApprovalsFromRun:d,openApprovalDialog:x,closeApprovalDialog:R}}function Qt(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function oc(e){if(Qt(e))return e;if(typeof e=="string"){const s=e.trim();if(!s)return{};try{const t=JSON.parse(s);return Qt(t)?t:{_raw:e}}catch{return{_raw:e}}}return{}}function ss(e){const s=e?.context?.messages,t=Array.isArray(s)?s:[];if(!t.length)return[ke("system",[oe("Session is empty. Start chatting to add messages.")])];const r=[],a=new Map,o=new Map;for(const l of t){const m=String(l?.role??""),i=String(l?.createdAt??l?.createdAtMs??l?.created_at??"");if(m==="user"){const{text:b,attachments:g}=zs(l?.content),M=dc(b),y=[];M.focusFiles?.length&&y.push({type:"attachments",items:M.focusFiles.map(d=>({id:We(),kind:"path",label:d}))}),g.length&&y.push({type:"attachments",items:g}),M.content.trim()&&y.push(oe(M.content)),r.push(ke("user",y,i));continue}if(m==="assistant"){const b=[],g=lr(l?.reasoning_content).trim();g&&b.push({type:"thinking",title:"Thinking",collapsed:!0,content:g});const{text:M,attachments:y}=zs(l?.content);M.trim()&&b.push(oe(M)),y.length&&b.push({type:"attachments",items:y});const d=Array.isArray(l?.tool_calls)?l.tool_calls:[];for(const x of d){const R=String(x?.id??"").trim(),$=String(x?.function?.name??"tool"),D=oc(x?.function?.arguments);R&&(a.set(R,r.length),o.set(R,$)),b.push({type:"tool_call",name:$,args:Ha(D),callId:R||void 0})}r.push(ke("assistant",b,i));continue}if(m==="tool"){const b=String(l?.tool_call_id??"").trim(),g=b?o.get(b):void 0,M=Ka(l?.content,g);let y;if(l?.structuredContent)try{y=JSON.stringify(l.structuredContent,null,2)}catch{y=String(l.structuredContent)}const d={type:"tool_result",name:g,output:M,status:l?.isError?"error":"success",callId:b||void 0,structured:y},x=b?a.get(b):void 0;if(x!=null&&r[x]){const R=r[x];r[x]={...R,parts:[...R.parts,d]}}else r.push(ke("assistant",[d],i))}}return r.length?r:[ke("system",[oe("Session is empty. Start chatting to add messages.")])]}function lr(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(lr).join("");if(Qt(e)){const s=e.text;if(typeof s=="string")return s;try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}function zs(e){const s=[],t=[],r=i=>{i&&s.push(i)},a=i=>{i&&t.push(i)},o=i=>{if(i==null)return;if(typeof i=="string"){r(i);return}if(Array.isArray(i)){for(const g of i)o(g);return}if(!Qt(i)){r(String(i));return}const b=String(i.type??"").toLowerCase();if(typeof i.text=="string"&&r(String(i.text)),b.includes("image")){const g=ac(i);a({id:We(),kind:"image",label:i.name??"image",url:g??void 0,meta:g?void 0:"Image payload"});return}if(b.includes("file")){const{label:g,url:M,meta:y}=lc(i);a({id:We(),kind:"file",label:g,url:M,meta:y});return}"text"in i||r(JSON.stringify(i))};o(e);const l=s.join(""),m=ic(l);return{text:m.text,attachments:[...t,...m.attachments]}}function ac(e){const s=e.image_url;if(typeof s=="string")return s;if(s&&typeof s=="object"&&typeof s.url=="string")return s.url;if(typeof e.url=="string")return e.url;const t=e.source;if(t&&typeof t=="object"){if(typeof t.url=="string")return t.url;if(typeof t.data=="string")return`data:${String(t.media_type??"image/png")};base64,${t.data}`}return null}function lc(e){const s=e.file,t=String(e.name??e.filename??s?.name??s?.filename??s?.id??"file"),r=typeof e.url=="string"?e.url:typeof s?.url=="string"?s.url:void 0,a=e.size??s?.size,o=e.mime_type??s?.mime_type??s?.type,l=[];return o&&l.push(String(o)),a&&l.push(`${a} bytes`),{label:t,url:r,meta:l.length?l.join(" · "):void 0}}function ic(e){let s=String(e??"");const t=[],r=/\[attachment_base64\][\s\S]*?\[\/attachment_base64\]/gi;s=s.replace(r,"").trim();const a=/\[attachments\]([\s\S]*?)\[\/attachments\]/i,o=s.match(a);if(o){const m=(o[1]??"").split(`
|
|
10
|
+
`);for(const i of m){const b=i.trim();if(!b.startsWith("-"))continue;const M=b.replace(/^-+\s*/,"").match(/^(.*?)\s*\(([^,]+),\s*([^)]+)\)\s*(.+)?$/);if(!M)continue;const y=M[1]?.trim()||"attachment",d=M[2]?.trim()||"",x=M[3]?.trim()||"",R=M[4]?.trim()||void 0,$=d.startsWith("image/")||R&&/\.(png|jpe?g|gif|webp|svg)$/i.test(R)?"image":"file";t.push({id:We(),kind:$,label:y,url:R,meta:[d,x].filter(Boolean).join(" · ")})}s=s.replace(a,"").trim()}return{text:s,attachments:t}}function dc(e){const s=String(e??"").replace(/\r/g,"");if(!s)return{content:""};const t=s.split(`
|
|
11
|
+
`),r=String(t[0]??"").trim();if(r!=="[focus_files]"&&r!=="[user_focus_files]"){const m=(g=>{const M=String(g??"");if(!M)return null;const y=[];let d=0;for(;d<M.length;){for(;d<M.length&&(M[d]===" "||M[d]===" "||M[d]===`
|
|
12
|
+
`);)d+=1;const R=M.slice(d).match(/^\[([^\]]*)\]\(((?:\\\)|[^)])+)\)/);if(!R)break;let $=String(R[2]??"").trim();if($.startsWith("<")&&$.endsWith(">")&&($=$.slice(1,-1)),$=$.replace(/\\\)/g,")").trim(),!($.startsWith("/")||/^[A-Z]:[\\/]/i.test($)))break;$&&y.push($),d+=R[0].length}if(!y.length)return null;let x=M.slice(d);return x=x.replace(/^[ \t]+/g,""),x.startsWith(`
|
|
13
|
+
|
|
14
|
+
`)?x=x.slice(2):(x.startsWith(`
|
|
15
|
+
`)||x.startsWith(" "))&&(x=x.slice(1)),{content:x,focusFiles:y}})(s);if(m)return m;const i=[];let b=0;for(;b<t.length;b+=1){const g=String(t[b]??"");if(!g.trim())break;const M=g.match(/^\s*\[([^\]]*)\]\((.+)\)\s*$/);if(!M)break;let y=String(M[2]??"").trim();if(y.startsWith("<")&&y.endsWith(">")&&(y=y.slice(1,-1)),y=y.replace(/\\\)/g,")").trim(),!(y.startsWith("/")||/^[A-Z]:[\\/]/i.test(y)))break;y&&i.push(y)}if(!i.length)return{content:s};for(;b<t.length&&!String(t[b]??"").trim();)b+=1;return{content:t.slice(b).join(`
|
|
16
|
+
`),focusFiles:i}}const a=[];let o=1;for(;o<t.length;o+=1){const l=String(t[o]??"");if(!l.trim())break;const m=l.match(/^\s*-\s*\[[^\]]*\]\((.+)\)\s*$/);if(!m)break;let i=String(m[1]??"").trim();i.startsWith("<")&&i.endsWith(">")&&(i=i.slice(1,-1)),i=i.replace(/\\\)/g,")").trim(),i&&a.push(i)}if(!a.length)return{content:s};for(;o<t.length&&!String(t[o]??"").trim();)o+=1;return{content:t.slice(o).join(`
|
|
17
|
+
`),focusFiles:a}}const cc={class:"h-full"},uc={class:"flex h-full w-full bg-background-light dark:bg-background-dark transition-colors duration-200"},mc={class:"flex-1 flex flex-col h-full relative bg-background-light dark:bg-background-dark overflow-hidden"},pc="AskUserTool.execute() was called without answers.",vc=Ae({__name:"index",setup(e){function s(){if(typeof window>"u")return!1;const k=localStorage.getItem("goatchain-theme");return k==="dark"?!0:k==="light"?!1:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}const t=T(s());function r(k){typeof document>"u"||(document.documentElement.classList.toggle("dark",k),localStorage.setItem("goatchain-theme",k?"dark":"light"))}const{status:a,loading:o,error:l,lastUpdated:m,refresh:i}=Xd(),b=T([]),g=T(null),M=k=>{},{loading:y,error:d,response:x,run:R}=Kd(),{loading:$,error:D,response:U,events:h,run:v,stop:C,clearEvents:I}=Yd(),{sessions:c,loading:u,error:z,refresh:_,create:j,fetchSession:E,rename:V,destroy:ve}=ec(),ne=T(!1),Se=T("");let te=null;const W=rc(),_e=Gd(),Ve=Hd(),se=Jd(),P=tc(),pe=Z(()=>!!a.value?.capabilities?.uploads),xe=Z(()=>!!a.value?.capabilities?.images),ze=Vd(pe),ie=Zd({remoteSessions:c,sessionsError:z,fetchSession:E,renameRemoteSession:V,destroyRemoteSession:ve,createRemoteSession:j,refreshSessions:_,snapshotToChatMessages:ss}),H=Fd(),he=nc(),fe=sc(),Pe=T(!1),dt=Z(()=>a.value?.serverVersion??"unknown"),Xe=Z(()=>Se.value||"pending"),ir=Z(()=>m.value?`Updated ${ns(m.value)}`:"Status pending"),dr=Z(()=>z.value?"Sessions offline":`${ie.sessions.value.length} sessions`),cr=Z(()=>{const k=a.value;return[{label:"Origin",value:Xe.value},{label:"Protocol",value:k?.protocolVersion??"unknown"},{label:"Server",value:dt.value},{label:"Started",value:ns(k?.startedAt)},{label:"PID",value:k?.pid?String(k.pid):"unknown"},{label:"Port",value:k?.port?String(k.port):"unknown"},{label:"Cursor",value:k?.cursor?String(k.cursor):"—"}]}),ur=Z(()=>g.value?"received from event stream":a.value?.snapshot?"received from /status":""),mr=Z(()=>{const k=g.value??a.value?.snapshot;return k?typeof k=="string"?k:JSON.stringify(k,null,2):""}),pr=Z(()=>{const k=a.value?.capabilities??{},f=Object.entries(k),A={uploads:"Uploads",images:"Image preview",tools:"Tool calls",auth:"Auth required"};return f.map(([B,p])=>({key:B,label:A[B]??B,enabled:!!p})).sort((B,p)=>B.key.localeCompare(p.key))}),fr=Z(()=>{const k=ie.sessionSnapshot.value,f=Number(k?.context?.messageCount??se.chatMessages.value.filter(Y=>Y.role!=="system").length)||0,A=k?.stats?.usage??{},B=Number(A.promptTokens??A.prompt_tokens??0)||0,p=Number(A.completionTokens??A.completion_tokens??0)||0,J=Number(A.totalTokens??A.total_tokens??0)||0||B+p;return[`${f} messages`,`${J} tokens`].join(" · ")}),gr=Z(()=>[{label:"Start server",command:"dim server --open"},{label:"Start with token",command:"dim server --token <token> --open"},{label:"Check version",command:"dim version"},{label:"Config file",command:"cat ~/.dimcode/config.json"},{label:"Tools file",command:"cat ~/.dimcode/tools.json"}]),{showToast:ge,hideToast:ls,toastMessage:vr,toastKind:yr,toastVisible:xr}=W,{deleteDialogOpen:is,deleteTarget:Ft,deleteBusy:xt,deleteDialogEl:hr,openDeleteDialog:br,closeDeleteDialog:ds}=_e,{modeMenuOpen:cs,modeMenuEl:us,modeLabel:kr,modeOptions:wr,composerPlaceholder:Sr,fetchCurrentMode:Cr,setMode:$r,toggleModeMenu:Ir}=Ve,{attachments:Wt,attachmentNote:Ar,attachmentsBase64:ht,composerMenuOpen:ms,composerMenuEl:ps,removeAttachment:Mr,clearAttachments:Ze,handlePaste:Rr,handleDrop:Tr,handleFilePick:Er,handleAddFile:Pr,toggleComposerMenu:Ur,ensureUploadsReady:Or}=ze,{ASK_USER_OTHER_LABEL:Dr,askUserDialogOpen:bt,askUserQuestions:Nr,askUserSelections:Br,askUserOtherInputs:fs,askUserBusy:Vt,isAskUserSelected:zr,onAskUserOptionChange:jr,buildAskUserAnswers:Lr,openAskUserDialog:kt,closeAskUserDialog:wt}=H,{toolApprovalsMode:ct,approvalDialogOpen:et,approvalRequests:St,approvalBusy:Gt,loadToolApprovalsMode:_r,persistToolApprovalsMode:gs,buildToolContext:Ct,openApprovalDialog:Qr,closeApprovalDialog:ut}=he,{chatMessages:je,renderMessages:qr,appendMessage:tt,updateStreamingMessageFinal:Fr,appendUserMessageWithAttachments:Wr,ensureAssistantReply:vs,clearChat:Vr,setChatMessages:ys,scrollChatToBottom:$t,markMessageAwaitingApproval:Gr,markMessageAwaitingAnswers:Jr,clearMessageAwaitingApproval:Hr,clearMessageAwaitingAnswers:Kr}=se,{activeSessionId:le,editingSessionId:Yr,renameDraft:xs,sessionNote:It,sessions:Jt,canManageSessions:Xr,activeSessionTitle:Zr,activeSessionQueryId:Ht,activeSessionSummary:en,activeSessionCwdLabel:hs,activeSessionGitBranch:tn,startRename:sn,cancelRename:rn,applyRename:nn,refreshActiveSession:mt,createSession:on}=ie,At=T(""),Kt=T(!1),pt=T(!1),Mt=T(null),Rt=T(null);function Tt(k,f){k&&(Mt.value=k,Gr(k,f))}function an(){Mt.value&&(Hr(Mt.value),Mt.value=null)}function st(k){k&&(Rt.value=k,Jr(k))}function ln(){Rt.value&&(Kr(Rt.value),Rt.value=null)}const dn=T(null),bs=T(null),ks=T(null),Ue=T(null),cn=Z(()=>P.activeStreamRunId.value?"Running":$.value?"Streaming...":y.value?"Sending":"Send"),un=Z(()=>y.value||$.value||!!P.activeStreamRunId.value||et.value||Gt.value||bt.value||Vt.value);function ws(k,f,A){return!!(A&&k==="AskUserQuestion"&&f.includes(pc))}function mn(k){pt.value=!1,ct.value!==k&&(ct.value=k,gs(k),ge(k==="all"?"Tool approvals set to always allow.":"Tool approvals set to auto (prompt for high-risk tools).","success",2400))}function pn(){if(typeof window>"u")return!1;const k=new URLSearchParams(window.location.search);if(!k.has("debug"))return!1;const f=String(k.get("debug")??"").trim().toLowerCase();return!f||f==="1"||f==="true"||f==="yes"}function rt(){Vr(),Ze()}function Et(k,f,A){const B=f||le.value||null;if(!B||B==="local"){ge("Approval required but session id is missing.","error",2600);return}if(!k.length){ge("Approval required but no tool calls were found.","error",2600);return}if(ct.value==="all"){he.approvalRequests.value=[],he.approvalSessionId.value=B,he.approvalRunId.value=A;const p={};for(const L of k)p[L.toolCallId]={approved:!0};Ut(p,{autoApprove:!0});return}Qr(k,B,A)}async function fn(){if(z.value||!Ft.value||xt.value)return;xt.value=!0;const k=Ft.value;if(await ve(k.id),xt.value=!1,z.value){It.value=`Delete failed: ${z.value}`;return}if(It.value=`Deleted session: ${k.title}`,le.value===k.id){const f=c.value.filter(A=>A.id!==k.id);f.length?await Pt(f[0].id):(le.value="",ie.sessionSnapshot.value=null,rt())}ds()}async function Pt(k){if($.value&&C(),ut(()=>{P.streamQueryPaused.value=!1}),wt(()=>{P.streamQueryPaused.value=!1}),P.streamQueryPaused.value=!1,le.value=k,It.value="",Ze(),P.currentStreamMessageId.value=null,k==="local"){ie.sessionSnapshot.value=null,rt(),await $t(Ue.value);return}const f=await E(k);if(await mt(f)&&ie.sessionSnapshot.value){const B=ss(ie.sessionSnapshot.value);B.length>0?ys(B):rt()}else rt();await $t(Ue.value)}async function gn(k){const f=await on(k);if(z.value){rt();return}f&&await Pt(f)}async function Ss(){if(et.value||Gt.value||bt.value||Vt.value){ge("Resolve the pending prompt before sending a new message.","info",2400);return}const k=At.value.trim(),f=Wt.value.length>0;if(!k&&!f)return;const A=f?await Or():[];if(!(f&&!A.length)){if(f){const B=Wt.value.map(p=>({id:p.id,kind:p.mime.startsWith("image/")?"image":"file",label:p.name,url:p.localUrl,meta:p.status==="ready"?void 0:p.status}));Wr(k,B)}else tt("user",k);if(At.value="",P.useStreamingQuery.value){P.beginStreamQueryMessage({clearStreamQueryEvents:I,createMessage:ke,buildMarkdownPart:oe,chatMessages:se.chatMessages});const B=Ct();v(k,Ht.value,A,ht.value,{toolContext:B})}else{await R(k,Ht.value,A,ht.value,{toolContext:Ct()});const B=x.value?.sessionId;if(B&&B!==le.value&&(le.value=B),d.value){tt("assistant",`Error: ${d.value}`);return}d.value||Ze(),!z.value&&B?(await _(),await mt(void 0,B)?vs(x.value||{}):tt("assistant",Nt(x.value||{}))):tt("assistant",Nt(x.value||{}))}}}function vn(k){k.isComposing||Kt.value||(k.preventDefault(),Ss())}function yn(){Kt.value=!0}function xn(){Kt.value=!1}function hn(){pt.value=!pt.value}async function bn(){await i(),l.value||M(a.value?.cursor)}async function Cs(){if(!$.value)if(le.value&&le.value!=="local")try{const k=await E(le.value);if(await mt(k)&&ie.sessionSnapshot.value){const A=ss(ie.sessionSnapshot.value);A.length>0?ys(A):rt(),await $t(Ue.value),ge("Session refreshed","success")}else ge("Failed to refresh session","error",2600)}catch(k){ge(`Refresh failed: ${k}`,"error",2600)}else M(a.value?.cursor)}async function $s(k){await R(k,Ht.value,void 0,void 0,{toolContext:Ct()});const f=x.value?.sessionId;if(f&&f!==le.value&&(le.value=f),d.value){ge(`Quick action failed: ${d.value}`,"error",2600);return}!z.value&&f?(await _(),await mt(void 0,f)?vs(x.value||{}):tt("assistant",Nt(x.value||{}))):tt("assistant",Nt(x.value||{})),ge(`Ran quick query: ${k}`,"success")}async function kn(){if(!Se.value)return ge("Origin not available yet.","error");try{await navigator.clipboard.writeText(Se.value),ge("Origin copied to clipboard.","success")}catch{ge("Clipboard unavailable. Copy manually.","error")}}async function wn(k,f){try{await navigator.clipboard.writeText(k),ge(`Copied: ${f}`,"success")}catch{ge("Clipboard unavailable. Copy manually.","error")}}async function Ut(k,f){const A=he.approvalSessionId.value??le.value;if(!A||A==="local"){ge("Cannot resume approvals without a session id.","error",2600);return}an(),he.approvalBusy.value=!0;try{const B=Ct(k,f?.autoApprove);$.value&&C(),P.beginStreamQueryMessage({clearStreamQueryEvents:I,createMessage:ke,buildMarkdownPart:oe,chatMessages:se.chatMessages}),await v("",A,void 0,void 0,{resume:!0,toolContext:B})}catch(B){const p=B instanceof Error?B.message:String(B);ge(`Resume failed: ${p}`,"error",2600)}finally{he.approvalBusy.value=!1}}async function Is(k,f,A){const B=H.askUserSessionId.value??le.value;if(!B||B==="local"){ge("Cannot resume AskUser without a session id.","error",2600);return}ln(),H.askUserBusy.value=!0;try{const p={answers:Object.keys(f).length?{[k]:f}:{}};A&&(p.rejected={[k]:A});const L={askUser:p};$.value&&C(),P.beginStreamQueryMessage({clearStreamQueryEvents:I,createMessage:ke,buildMarkdownPart:oe,chatMessages:se.chatMessages}),await v("",B,void 0,void 0,{resume:!0,toolContext:L})}catch(p){const L=p instanceof Error?p.message:String(p);ge(`Resume failed: ${L}`,"error",2600)}finally{H.askUserBusy.value=!1}}async function Sn(){const k=H.askUserToolCallId.value;if(!k){ge("AskUser tool call id is missing.","error",2600);return}const f=Lr();await Is(k,f),wt(()=>{P.streamQueryPaused.value=!1})}async function Cn(){const k=H.askUserToolCallId.value;if(!k){wt(()=>{P.streamQueryPaused.value=!1});return}await Is(k,{},"User cancelled the question"),wt(()=>{P.streamQueryPaused.value=!1})}async function $n(){const k=St.value;if(!k.length)return;ct.value="all",gs("all");const f={};for(const A of k)f[A.toolCallId]={approved:!0};et.value=!1,await Ut(f,{autoApprove:!0}),ut(()=>{P.streamQueryPaused.value=!1}),ge("Tool approvals set to always allow.","success",2400)}async function In(k){const f=St.value.find(B=>B.toolCallId===k);if(!f)return;et.value=!1;const A={[f.toolCallId]:{approved:!0}};await Ut(A),ut(()=>{P.streamQueryPaused.value=!1})}async function An(k){const f=St.value.find(B=>B.toolCallId===k);if(!f){ut(()=>{P.streamQueryPaused.value=!1});return}et.value=!1;const A={[f.toolCallId]:{approved:!1}};await Ut(A),ut(()=>{P.streamQueryPaused.value=!1})}function Mn(k){const f=qe(k),A=at(f),B=ot(f);if(A&&!(B&&le.value&&le.value!=="local"&&le.value!==B)){if(k.type==="thinking_start"){const p=P.ensureStreamRun(A,B,{activeSessionId:ie.activeSessionId,chatMessages:se.chatMessages,createMessage:ke,buildMarkdownPart:oe});if(!p)return;p.activeTextSegmentIndex=-1,p.eventIndex+=1,p.activeThinkingIndex=p.thinkingBlocks.length,p.thinkingBlocks.push({content:"",order:p.eventIndex}),P.updateStreamMessage(p,{chatMessages:se.chatMessages});return}if(k.type==="thinking_delta"){const p=P.ensureStreamRun(A,B,{activeSessionId:ie.activeSessionId,chatMessages:se.chatMessages,createMessage:ke,buildMarkdownPart:oe});if(!p)return;p.activeTextSegmentIndex=-1;const L=typeof f?.delta=="string"?f.delta:"";if(L){p.activeThinkingIndex<0&&(p.eventIndex+=1,p.activeThinkingIndex=p.thinkingBlocks.length,p.thinkingBlocks.push({content:"",order:p.eventIndex}));const J=p.activeThinkingIndex,K=p.thinkingBlocks[J];K&&(K.content=`${K.content??""}${L}`)}P.updateStreamMessage(p,{chatMessages:se.chatMessages});return}if(k.type==="thinking_end"){const p=P.ensureStreamRun(A,B,{activeSessionId:ie.activeSessionId,chatMessages:se.chatMessages,createMessage:ke,buildMarkdownPart:oe});if(!p)return;p.activeTextSegmentIndex=-1;const L=typeof f?.content=="string"?f.content:"";if(L)if(p.activeThinkingIndex<0)p.eventIndex+=1,p.activeThinkingIndex=p.thinkingBlocks.length,p.thinkingBlocks.push({content:L,order:p.eventIndex});else{const J=p.activeThinkingIndex,K=p.thinkingBlocks[J];K&&(K.content=L)}p.activeThinkingIndex=-1,P.updateStreamMessage(p,{chatMessages:se.chatMessages});return}if(k.type==="message.delta"){const p=P.ensureStreamRun(A,B,{activeSessionId:ie.activeSessionId,chatMessages:se.chatMessages,createMessage:ke,buildMarkdownPart:oe});if(!p)return;const L=String(f?.delta??"");if(L)if(p.hasDelta=!0,p.activeTextSegmentIndex>=0){const J=p.textSegments[p.activeTextSegmentIndex];J&&(J.content+=L)}else p.eventIndex+=1,p.activeTextSegmentIndex=p.textSegments.length,p.textSegments.push({content:L,order:p.eventIndex});P.updateStreamMessage(p,{chatMessages:se.chatMessages});return}if(k.type==="tool.call"){const p=P.ensureStreamRun(A,B,{activeSessionId:ie.activeSessionId,chatMessages:se.chatMessages,createMessage:ke,buildMarkdownPart:oe});if(!p)return;p.activeTextSegmentIndex=-1;const L=Ne(f);if(!L)return;const J=Lt(f)||"",{args:K,delta:Y}=_t(f);p.toolCalls.get(L)||(p.eventIndex+=1,p.toolCalls.set(L,{name:J,args:Y?`${Y}`:K,order:p.eventIndex}));const me=p.toolCalls.get(L);me&&(!me.name&&J&&(me.name=J),Y?me.args=`${me.args??""}${Y}`:me.args||(me.args=K)),P.updateStreamMessage(p,{chatMessages:se.chatMessages});return}if(k.type==="tool.output"){const p=P.ensureStreamRun(A,B,{activeSessionId:ie.activeSessionId,chatMessages:se.chatMessages,createMessage:ke,buildMarkdownPart:oe});if(!p)return;p.activeTextSegmentIndex=-1;const J=(Ne(f)??"")||"tool",K=typeof f?.delta=="string"?f.delta:"",Y=p.toolResults.get(J);Y?p.toolResults.set(J,{name:Y.name,output:`${Y.output??""}${K}`,status:Y.status??"success",structured:Y.structured,order:Y.order}):(p.eventIndex+=1,p.toolResults.set(J,{name:p.toolCalls.get(J)?.name,output:K,status:"success",structured:Y?.structured,order:p.eventIndex})),P.updateStreamMessage(p,{chatMessages:se.chatMessages});return}if(k.type==="tool.result"){const p=P.streamRuns.get(A);if(!p)return;p.activeTextSegmentIndex=-1;const L=Ne(f);if(!L)return;const J=String(f?.output??""),K=!!(f?.isError??f?.error),Y=K?"error":"success",Te=p.toolCalls.get(L)?.name;if(ws(Te,J,K))return;const me=p.toolResults.get(L||"tool");me||(p.eventIndex+=1),p.toolResults.set(L||"tool",{name:Te,output:J||me?.output||"",status:Y,structured:f?.structuredContent?JSON.stringify(f.structuredContent):me?.structured,order:me?.order??p.eventIndex}),P.updateStreamMessage(p,{chatMessages:se.chatMessages});return}if(k.type==="run.status"){const p=typeof f?.status=="string"?f.status:"",L=typeof f?.stopReason=="string"?f.stopReason:"";if(p==="started"||p==="running"){P.ensureStreamRun(A,B,{activeSessionId:ie.activeSessionId,chatMessages:se.chatMessages,createMessage:ke,buildMarkdownPart:oe});return}if(p==="completed"||p==="done"||p==="error"){if(L==="approval_required"){if(H.askUserRunId.value===A){const Te=P.streamRuns.get(A);Te&&st(Te.messageId),P.finalizeStreamRun(A,{chatMessages:se.chatMessages});return}const J=P.streamRuns.get(A),K=he.collectPendingApprovalsFromRun(P.streamRuns,A),Y=K[0]?.toolName;J&&Tt(J.messageId,Y),Et(K,B??null,A)}P.finalizeStreamRun(A,{chatMessages:se.chatMessages});return}return}if(k.type==="requires_action"){const p=String(f?.kind??f?.action_kind??"");if(p==="ask_user"){const L=H.resolveAskUserPayload(f,A,{events:b.value,streamRuns:P.streamRuns}),J=P.streamRuns.get(A);J&&st(J.messageId),L.questions.length&&kt(L.questions,L.toolCallId,B||null,A);return}if(p==="tool_approval"||p==="tool_approvals"){const L=P.streamRuns.get(A),J=he.collectPendingApprovalsFromRun(P.streamRuns,A),K=J[0]?.toolName;L&&Tt(L.messageId,K),Et(J,B??null,A)}}}}function Rn(k){if(!P.useStreamingQuery.value||!$.value||!k.length)return null;const f=[];let A=-1;const B=[];let p=null;const L=new Map,J=new Map,K=new Map,Y=[],Te=new Set,me=P.activeStreamQueryRunId.value;let F=0;const de=ee=>{Te.has(ee)||(Te.add(ee),Y.push(ee))};for(const ee of k){const Oe=es(ee);if(me&&Oe&&Oe!==me)continue;const ce=qe(ee);if(ce){if(ee.type==="thinking_start"){A=-1,F+=1,p=B.length,B.push({content:"",order:F});continue}if(ee.type==="thinking_delta"){A=-1;const re=typeof ce.delta=="string"?ce.delta:"";if(re){(p==null||p<0)&&(F+=1,p=B.length,B.push({content:"",order:F}));const Re=B[p];Re&&(Re.content=`${Re.content??""}${re}`)}continue}if(ee.type==="thinking_end"){A=-1;const re=typeof ce.content=="string"?ce.content:"";if(re)if(p==null||p<0)F+=1,B.push({content:re,order:F});else{const Me=B[p];Me&&(Me.content=re)}p=null;continue}if(ee.type==="message.delta"){const re=typeof ce.delta=="string"?ce.delta:"";if(re)if(A>=0){const Me=f[A];Me&&(Me.content+=re)}else F+=1,A=f.length,f.push({content:re,order:F});continue}if(ee.type==="tool.call"){A=-1,F+=1;const re=Ne(ce)??`call-${Y.length}`,Me=Lt(ce)||"tool",{args:Re,delta:Yt}=_t(ce),ft=!Yt;de(re);const Ge=L.get(re)??{name:Me,args:"",order:F};L.set(re,{name:Ge.name||Me,args:ft?Re:`${Ge.args}${Re}`,order:Ge.order});continue}if(ee.type==="tool.output"){A=-1,F+=1;const re=Ne(ce)??"tool";de(re);const Me=typeof ce.delta=="string"?ce.delta:"",Re=J.get(re);K.has(re)||K.set(re,F),J.set(re,{name:Re?.name??L.get(re)?.name,output:`${Re?.output??""}${Me}`,status:Re?.status??"success",structured:Re?.structured});continue}if(ee.type==="tool.result"){A=-1,F+=1;const re=Ne(ce)??"tool";de(re);const Me=String(ce.output??""),Re=!!(ce.isError??ce.error),Yt=L.get(re)?.name;if(ws(Yt,Me,Re))continue;let ft;if(ce.structuredContent)try{ft=JSON.stringify(ce.structuredContent)}catch{ft=String(ce.structuredContent)}K.has(re)||K.set(re,F);const Ge=J.get(re);J.set(re,{name:L.get(re)?.name??Ge?.name,output:Me||Ge?.output||"",status:Re?"error":"success",structured:ft??Ge?.structured})}}}return{textSegments:f,toolCalls:Y.map(ee=>{const Oe=L.get(ee);return Oe?{...Oe,callId:ee}:null}).filter(Boolean),toolResults:Y.map(ee=>{const Oe=J.get(ee),ce=K.get(ee);return Oe&&ce!=null?{...Oe,callId:ee,order:ce}:null}).filter(Boolean),thinkingBlocks:B}}return En(async()=>{typeof window<"u"&&(Se.value=window.location.origin),ne.value=pn(),_r(),await Promise.all([i(),_(),Cr(),fe.fetchActiveSkills()]),!le.value&&Jt.value.length>0&&await Pt(Jt.value[0].id),l.value||M(a.value?.cursor),te=k=>{const f=k.target;ps.value&&!ps.value.contains(f)&&(ms.value=!1),us.value&&!us.value.contains(f)&&(cs.value=!1);const A=bs.value?.approvalsMenuComponent?.menuEl;A&&!A.contains(f)&&(pt.value=!1)},window.addEventListener("mousedown",te)}),Pn(()=>{te&&window.removeEventListener("mousedown",te),C(),Ze(),ls()}),Ee(a,k=>{k?.snapshot&&!g.value&&(g.value=k.snapshot)}),Ee(t,k=>{r(k)},{immediate:!0}),Ee(b,k=>{const f=k[0];if(!f)return;const A=f.id||`${f.type}-${f.receivedAt}`;if(P.lastStreamEventId.value===A)return;P.lastStreamEventId.value=A;const B=es(f);B&&P.streamQueryRunIds.has(B)||P.useStreamingQuery.value&&$.value&&P.currentStreamMessageId.value&&["run.status","message.delta","thinking_start","thinking_delta","thinking_end","tool.call","tool.output","tool.result","requires_action"].includes(f.type)||Mn(f)}),Ee(is,k=>{k&&Ke(()=>hr.value?.focus())}),Ee(bt,k=>{k&&Ke(()=>ks.value?.dialogEl?.focus())}),Ee(()=>je.value.length,async()=>{await Ke(),await $t(Ue.value)}),Ee(()=>P.activeStreamRunId.value,async()=>{await Ke(),Ue.value&&(Ue.value.scrollTop=Ue.value.scrollHeight)}),Ee($,async(k,f)=>{if(k||!f)return;const A=P.currentStreamMessageId.value;if(!A)return;if(P.streamQueryPaused.value){je.value=je.value.map(L=>L.id!==A?L:{...L,meta:void 0}),P.currentStreamMessageId.value=null,Ze();return}const B=U.value?.runId;if(B&&typeof B=="string"&&(P.streamQueryRunIds.add(B),P.activeStreamQueryRunId.value||(P.activeStreamQueryRunId.value=B)),D.value){je.value=je.value.map(L=>L.id!==A?L:{...L,parts:[oe(`Error: ${D.value||"Unknown error"}`)],meta:void 0}),P.currentStreamMessageId.value=null;return}!P.streamQueryHasDelta.value&&U.value&&Fr(A,U.value),je.value=je.value.map(L=>L.id!==A?L:{...L,meta:void 0});const p=U.value?.sessionId;p&&p!==le.value&&(le.value=p),Ze(),!z.value&&p&&(await _(),await mt(void 0,p)),P.currentStreamMessageId.value=null}),Ee(h,()=>{if(!P.useStreamingQuery.value||!P.currentStreamMessageId.value)return;const k=h.value[h.value.length-1],f=k?es(k):null,A=k?qe(k):null;f&&(P.streamQueryRunIds.add(f),P.activeStreamQueryRunId.value||(P.activeStreamQueryRunId.value=f));const B=f??P.activeStreamQueryRunId.value;if(B){const J=H.findAskUserRequiresActionPayload(h.value,B);if(J){const K=H.resolveAskUserPayload(J,B,{events:h.value});P.streamQueryPaused.value=!0,st(P.currentStreamMessageId.value),kt(K.questions,K.toolCallId,ot(J),B);return}}k?.type==="message.delta"&&typeof A?.delta=="string"&&A.delta&&(P.streamQueryHasDelta.value=!0);const p=f??P.activeStreamQueryRunId.value;if(p&&!P.streamQueryPaused.value)for(let J=h.value.length-1;J>=0;J--){const K=h.value[J];if(!K||K.type!=="requires_action"&&K.type!=="run.status")continue;const Y=qe(K);if(!(!Y||(at(Y)??p)!==p)){if(K.type==="requires_action"){const me=String(Y.kind??Y.action_kind??"");if(me==="ask_user"){const F=H.resolveAskUserPayload(Y,p,{events:h.value});P.streamQueryPaused.value=!0,st(P.currentStreamMessageId.value),kt(F.questions,F.toolCallId,ot(Y)??le.value,p);break}if(me==="tool_approval"||me==="tool_approvals"){P.streamQueryPaused.value=!0;const F=ot(Y)??le.value,de=he.collectPendingApprovalsFromEvents(h.value,p);Tt(P.currentStreamMessageId.value,de[0]?.toolName),Et(de,F,p);break}}if(K.type==="run.status"&&(typeof Y.stopReason=="string"?Y.stopReason:"")==="approval_required"){const F=H.findAskUserRequiresActionPayload(h.value,p);if(F){const Oe=H.resolveAskUserPayload(F,p,{events:h.value});P.streamQueryPaused.value=!0,st(P.currentStreamMessageId.value),kt(Oe.questions,Oe.toolCallId,ot(F)??le.value,p);break}if(H.askUserRunId.value===p){st(P.currentStreamMessageId.value),P.streamQueryPaused.value=!0;break}P.streamQueryPaused.value=!0;const de=ot(Y)??le.value,ee=he.collectPendingApprovalsFromEvents(h.value,p);Tt(P.currentStreamMessageId.value,ee[0]?.toolName),Et(ee,de,p);break}}}if(P.streamQueryPaused.value)return;const L=Rn(h.value);L&&(je.value=je.value.map(J=>{if(J.id!==P.currentStreamMessageId.value)return J;const K=[],Y=[];for(let F=0;F<L.thinkingBlocks.length;F+=1){const de=L.thinkingBlocks[F];Y.push({kind:"thinking",order:de.order,index:F})}for(let F=0;F<L.textSegments.length;F+=1){const de=L.textSegments[F];de&&de.content&&Y.push({kind:"text",order:de.order,segmentIndex:F})}for(const F of L.toolCalls)F.callId&&Y.push({kind:"tool_call",order:F.order,callId:F.callId});for(const F of L.toolResults)F.callId&&Y.push({kind:"tool_result",order:F.order,callId:F.callId});Y.sort((F,de)=>F.order-de.order);const Te=new Map(L.toolCalls.filter(F=>F.callId).map(F=>[F.callId,F])),me=new Map(L.toolResults.filter(F=>F.callId).map(F=>[F.callId,F]));for(const F of Y){if(F.kind==="thinking"){const ee=L.thinkingBlocks[F.index];if(!ee)continue;K.push({type:"thinking",title:"Thinking",collapsed:!0,content:ee.content});continue}if(F.kind==="text"){const ee=L.textSegments[F.segmentIndex];if(!ee)continue;K.push(oe(ee.content));continue}if(F.kind==="tool_call"){const ee=Te.get(F.callId);if(!ee)continue;K.push({type:"tool_call",name:ee.name,args:ee.args||"No arguments",callId:ee.callId});continue}const de=me.get(F.callId);de&&K.push({type:"tool_result",name:de.name,output:de.output||"No output",status:de.status,callId:de.callId,structured:de.structured})}return K.length===0&&K.push(oe("Thinking...")),{...J,parts:K,meta:"streaming"}}))}),Ee(()=>h.value.length,async()=>{$.value&&(await Ke(),Ue.value&&(Ue.value.scrollTop=Ue.value.scrollHeight))}),(k,f)=>(w(),S("div",cc,[n("main",uc,[ue(Hi,{sessions:O(Jt),"sessions-loading":O(u),"sessions-error":O(z),"active-session-id":O(le),"editing-session-id":O(Yr),"rename-draft":O(xs),"session-note":O(It),"can-manage-sessions":O(Xr),"debug-ui":ne.value,"command-items":gr.value,"last-updated-label":ir.value,"session-count-label":dr.value,"active-session-cwd-label":O(hs),onRefresh:O(_),onCreate:gn,onSelect:Pt,onRename:O(sn),onDelete:O(br),"onUpdate:renameDraft":f[0]||(f[0]=A=>{xs.value=A}),onApplyRename:O(nn),onCancelRename:O(rn),onCopyCommand:wn,onOpenSkills:f[1]||(f[1]=A=>Pe.value=!0)},null,8,["sessions","sessions-loading","sessions-error","active-session-id","editing-session-id","rename-draft","session-note","can-manage-sessions","debug-ui","command-items","last-updated-label","session-count-label","active-session-cwd-label","onRefresh","onRename","onDelete","onApplyRename","onCancelRename"]),n("section",mc,[ue(_a,{"active-session-title":O(Zr),"active-session-summary":O(en),"active-session-cwd-label":O(hs),"active-session-git-branch":O(tn),"chat-header-stats":fr.value,"dark-mode":t.value,onReconnect:Cs,onToggleTheme:f[2]||(f[2]=A=>t.value=!t.value)},null,8,["active-session-title","active-session-summary","active-session-cwd-label","active-session-git-branch","chat-header-stats","dark-mode"]),n("div",{ref_key:"chatScrollContainer",ref:Ue,class:"flex-1 overflow-y-auto p-6 md:px-20 lg:px-32 xl:px-48 pb-48 md:pb-56"},[ue(Ul,{ref_key:"chatMessagesComponent",ref:dn,messages:O(qr),"pending-approvals":O(et)?O(St):[],"approval-busy":O(Gt),onApprove:In,onReject:An,onApproveAll:$n},null,8,["messages","pending-approvals","approval-busy"]),ne.value?(w(),qt(oi,{key:0,class:"mt-10","status-loading":O(o),"status-error":O(l),"status-rows":cr.value,capabilities:pr.value,events:b.value,"snapshot-label":ur.value,"snapshot-content":mr.value,onRefresh:bn,onReconnect:Cs,onCapabilities:f[3]||(f[3]=A=>$s("List capabilities")),onCopyOrigin:kn},null,8,["status-loading","status-error","status-rows","capabilities","events","snapshot-label","snapshot-content"])):G("",!0)],512),ue(Ta,{ref_key:"chatComposerComponent",ref:bs,modelValue:At.value,"onUpdate:modelValue":f[4]||(f[4]=A=>At.value=A),placeholder:O(Sr),attachments:O(Wt),"uploads-enabled":pe.value,"images-enabled":xe.value,"attachments-base64":O(ht),"attachment-note":O(Ar),"composer-menu-open":O(ms),"mode-menu-open":O(cs),"mode-label":O(kr),"mode-options":O(wr),"approvals-menu-open":pt.value,"tool-approvals-mode":O(ct),"use-streaming-query":O(P).useStreamingQuery.value,"debug-ui":ne.value,"send-label":cn.value,"send-disabled":un.value,"query-error":O(d),"stream-query-error":O(D),"active-skill-names":O(fe).activeSkillNames.value,onOpenSkills:f[5]||(f[5]=A=>Pe.value=!0),"onUpdate:attachmentsBase64":f[6]||(f[6]=A=>{ht.value=A}),"onUpdate:useStreamingQuery":f[7]||(f[7]=A=>{O(P).useStreamingQuery.value=A}),onDrop:O(Tr),onPaste:O(Rr),onCompositionstart:yn,onCompositionend:xn,onEnter:vn,onRemoveAttachment:O(Mr),onToggleComposerMenu:O(Ur),onToggleModeMenu:O(Ir),onToggleApprovalsMenu:hn,onSetApprovals:mn,onAddFile:O(Pr),onQuickAction:$s,onSelectMode:f[8]||(f[8]=A=>{O($r)(A)}),onSend:Ss,onFilePick:O(Er)},null,8,["modelValue","placeholder","attachments","uploads-enabled","images-enabled","attachments-base64","attachment-note","composer-menu-open","mode-menu-open","mode-label","mode-options","approvals-menu-open","tool-approvals-mode","use-streaming-query","debug-ui","send-label","send-disabled","query-error","stream-query-error","active-skill-names","onDrop","onPaste","onRemoveAttachment","onToggleComposerMenu","onToggleModeMenu","onAddFile","onFilePick"])])]),ue(qd,{visible:O(xr),message:O(vr),kind:O(yr),onClose:O(ls)},null,8,["visible","message","kind","onClose"]),ue(eo,{ref_key:"askUserDialogComponent",ref:ks,open:O(bt),questions:O(Nr),selections:O(Br),"other-inputs":O(fs),"other-label":O(Dr),busy:O(Vt),"is-selected":O(zr),onCancel:Cn,onSubmit:Sn,onOptionChange:O(jr),"onUpdate:otherInputs":f[9]||(f[9]=A=>{fs.value=A})},null,8,["open","questions","selections","other-inputs","other-label","busy","is-selected","onOptionChange"]),ue(mi,{open:O(is),target:O(Ft),busy:O(xt),onClose:O(ds),onConfirm:fn},null,8,["open","target","busy","onClose"]),ue(_d,{open:Pe.value,skills:O(fe).skills.value,loading:O(fe).loading.value,"detail-loading":O(fe).detailLoading.value,error:O(fe).error.value,"selected-skill":O(fe).selectedSkill.value,"active-skill-names":O(fe).activeSkillSet.value,onClose:f[10]||(f[10]=A=>Pe.value=!1),onFetchSkills:f[11]||(f[11]=A=>O(fe).fetchSkills()),onFetchDetail:f[12]||(f[12]=A=>O(fe).fetchSkillDetail(A)),onCreateSkill:f[13]||(f[13]=(A,B,p)=>O(fe).createSkill(A,B,p)),onUpdateSkill:f[14]||(f[14]=(A,B,p)=>O(fe).updateSkill(A,B,p)),onDeleteSkill:f[15]||(f[15]=A=>O(fe).deleteSkill(A)),onToggleActivation:f[16]||(f[16]=A=>O(fe).toggleSkillActivation(A))},null,8,["open","skills","loading","detail-loading","error","selected-skill","active-skill-names"])]))}});export{vc as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as a,a as s,h as u,i as r,b as h}from"./FdVDP1dJ.js";function i(t){const e=t||s();return e.ssrContext?.head||e.runWithContext(()=>{if(u()){const n=r(h);if(!n)throw new Error("[nuxt] [unhead] Missing Unhead instance.");return n}})}function d(t,e={}){const n=e.head||i(e.nuxt);return a(t,{head:n,...e})}export{d as u};
|