blade-code 0.6.4 → 0.7.1

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.
Files changed (74) hide show
  1. package/README.md +1 -1
  2. package/dist/blade.js +2 -2
  3. package/dist/{chunk-j7nh0j36.js → chunk-0afbeec0.js} +1 -1
  4. package/dist/chunk-0k8js58t.js +6 -0
  5. package/dist/chunk-0vd9antx.js +1 -0
  6. package/dist/{chunk-w96xaeyd.js → chunk-1dt2y16n.js} +1 -1
  7. package/dist/{chunk-jm9r362m.js → chunk-2dvn9y9f.js} +1 -1
  8. package/dist/{chunk-hc91pmdk.js → chunk-56frm8dx.js} +1 -1
  9. package/dist/chunk-6jezjq4h.js +6 -0
  10. package/dist/chunk-6k4vs71p.js +1 -0
  11. package/dist/chunk-70ya127f.js +1 -0
  12. package/dist/{chunk-sfr69fw8.js → chunk-7v7s2aag.js} +2 -2
  13. package/dist/{chunk-nm2w2ftg.js → chunk-7z6ba6t9.js} +1 -1
  14. package/dist/{chunk-m41xq6d0.js → chunk-867h27ke.js} +4 -4
  15. package/dist/chunk-92qcc3gj.js +2138 -0
  16. package/dist/{chunk-ck43cs45.js → chunk-a2nshjdc.js} +2 -2
  17. package/dist/chunk-a7dw8fwn.js +1 -0
  18. package/dist/chunk-a8eedntd.js +6 -0
  19. package/dist/{chunk-59e6eg4b.js → chunk-aam53te2.js} +6 -6
  20. package/dist/{chunk-evc1xkeb.js → chunk-b0q2q0ax.js} +1 -1
  21. package/dist/{chunk-ey640ttd.js → chunk-bmxgshct.js} +1 -1
  22. package/dist/chunk-d3db8wrw.js +1 -0
  23. package/dist/chunk-dzmrdtpc.js +612 -0
  24. package/dist/chunk-e06p3dkw.js +157 -0
  25. package/dist/{chunk-f24ahjpc.js → chunk-f76d6jxg.js} +1 -1
  26. package/dist/chunk-f8mjpmdx.js +4 -0
  27. package/dist/chunk-h7qab07x.js +2 -0
  28. package/dist/{chunk-h46kk20y.js → chunk-k9h9bw13.js} +2 -2
  29. package/dist/chunk-m51xzgwt.js +1 -0
  30. package/dist/{chunk-bpx8x87m.js → chunk-mt1c5da4.js} +2 -2
  31. package/dist/chunk-qdnx9x5g.js +2 -0
  32. package/dist/chunk-qds0yxfy.js +41 -0
  33. package/dist/chunk-qyfdt8h1.js +2 -0
  34. package/dist/chunk-r6paqm6d.js +1 -0
  35. package/dist/chunk-v0rjbvky.js +9 -0
  36. package/dist/{chunk-cfe1fywb.js → chunk-v1d0d4b4.js} +2 -2
  37. package/dist/chunk-vs915jzz.js +1 -0
  38. package/dist/chunk-xmdpc0y5.js +2 -0
  39. package/dist/chunk-zbtb3jxm.js +1 -0
  40. package/dist/{chunk-sh1pk5j3.js → chunk-zm4jr1k2.js} +1 -1
  41. package/dist/chunk-zvk6ktj1.js +6 -0
  42. package/dist/{chunk-m26jr2tg.js → chunk-zxddgwsb.js} +1 -1
  43. package/dist/web/assets/{FilePreview-R1mRzyRz.js → FilePreview-DLnUh-wQ.js} +1 -1
  44. package/dist/web/assets/{MarkdownRenderer-B46lJYAn.js → MarkdownRenderer-C5KTk9XG.js} +1 -1
  45. package/dist/web/assets/{McpModal-QRv5Ij61.js → McpModal-B9qJ4ewt.js} +1 -1
  46. package/dist/web/assets/{SettingsModal-D-mi6mUR.js → SettingsModal-DpeZ6cJb.js} +1 -1
  47. package/dist/web/assets/{SettingsStore-Dmo3sZ_R.js → SettingsStore-IzKtyAnM.js} +1 -1
  48. package/dist/web/assets/{SkillsModal-DNXjbjEs.js → SkillsModal-BDfzgJIj.js} +1 -1
  49. package/dist/web/assets/{TerminalPanel-DG_Q4UKr.js → TerminalPanel-B2iTF_CR.js} +1 -1
  50. package/dist/web/assets/{dialog-CsiChiYt.js → dialog-sI3ihAze.js} +1 -1
  51. package/dist/web/assets/{index-BeYCsOvo.js → index-D8mo0jzF.js} +8 -8
  52. package/dist/web/index.html +1 -1
  53. package/package.json +4 -2
  54. package/dist/chunk-07xv0cqp.js +0 -1
  55. package/dist/chunk-0e9dhemy.js +0 -41
  56. package/dist/chunk-2zk921d9.js +0 -1
  57. package/dist/chunk-3mmm8g84.js +0 -1
  58. package/dist/chunk-5bs94pb1.js +0 -157
  59. package/dist/chunk-6mfmy7nq.js +0 -8
  60. package/dist/chunk-7c9k2c9m.js +0 -1
  61. package/dist/chunk-7t23swne.js +0 -2125
  62. package/dist/chunk-9p4fe43p.js +0 -1
  63. package/dist/chunk-9vsbmtqj.js +0 -1
  64. package/dist/chunk-dmc5gf4f.js +0 -6
  65. package/dist/chunk-k063tt5h.js +0 -1
  66. package/dist/chunk-mpn4zfcn.js +0 -6
  67. package/dist/chunk-njq4w631.js +0 -613
  68. package/dist/chunk-p8pggabj.js +0 -2
  69. package/dist/chunk-qnvkxpkw.js +0 -2
  70. package/dist/chunk-tdarh4fh.js +0 -1
  71. package/dist/chunk-tz44akn7.js +0 -6
  72. package/dist/chunk-vxgexcsm.js +0 -1
  73. package/dist/chunk-zm78rg9t.js +0 -6
  74. package/dist/chunk-zwwvv85t.js +0 -4
@@ -1,10 +1,10 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-xterm-9CEnUXvW.css"])))=>i.map(i=>d[i]);
2
- var Vs=Object.defineProperty;var qs=(t,e,s)=>e in t?Vs(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var nt=(t,e,s)=>qs(t,typeof e!="symbol"?e+"":e,s);import{r as p,j as l,R as Ze,i as Gs}from"./vendor-react-Dm1xU4bP.js";import{_ as Oe}from"./vendor-markdown-DIcugY1e.js";import{S as Ws,R as gs,V as Hs,C as Js,a as ms,b as Qs,P as Ks,c as ps,d as Ys,T as Xs,e as xs,f as en,g as tn,h as sn}from"./vendor-radix-CfxBc_4-.js";import{P as zt,T as Bt,S as $t,a as Dt,b as Pt,C as nn,c as rn,X as an,d as on,e as ln,G as dn,F as cn,f as un,g as ct,L as Je,h as fn,i as qe,j as hn,k as gn,l as bs,H as mn}from"./vendor-icons-DlzC8I7m.js";import"./vendor-monaco-w6PwaWGP.js";function ys(t){var e,s,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t)){var r=t.length;for(e=0;e<r;e++)t[e]&&(s=ys(t[e]))&&(n&&(n+=" "),n+=s)}else for(s in t)t[s]&&(n&&(n+=" "),n+=s);return n}function vs(){for(var t,e,s=0,n="",r=arguments.length;s<r;s++)(t=arguments[s])&&(e=ys(t))&&(n&&(n+=" "),n+=e);return n}const Zt=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,Lt=vs,pn=(t,e)=>s=>{var n;if((e==null?void 0:e.variants)==null)return Lt(t,s==null?void 0:s.class,s==null?void 0:s.className);const{variants:r,defaultVariants:a}=e,o=Object.keys(r).map(c=>{const u=s==null?void 0:s[c],g=a==null?void 0:a[c];if(u===null)return null;const m=Zt(u)||Zt(g);return r[c][m]}),i=s&&Object.entries(s).reduce((c,u)=>{let[g,m]=u;return m===void 0||(c[g]=m),c},{}),d=e==null||(n=e.compoundVariants)===null||n===void 0?void 0:n.reduce((c,u)=>{let{class:g,className:m,...f}=u;return Object.entries(f).every(h=>{let[v,k]=h;return Array.isArray(k)?k.includes({...a,...i}[v]):{...a,...i}[v]===k})?[...c,g,m]:c},[]);return Lt(t,o,d,s==null?void 0:s.class,s==null?void 0:s.className)},St="-",xn=t=>{const e=yn(t),{conflictingClassGroups:s,conflictingClassGroupModifiers:n}=t;return{getClassGroupId:o=>{const i=o.split(St);return i[0]===""&&i.length!==1&&i.shift(),ks(i,e)||bn(o)},getConflictingClassGroupIds:(o,i)=>{const d=s[o]||[];return i&&n[o]?[...d,...n[o]]:d}}},ks=(t,e)=>{var o;if(t.length===0)return e.classGroupId;const s=t[0],n=e.nextPart.get(s),r=n?ks(t.slice(1),n):void 0;if(r)return r;if(e.validators.length===0)return;const a=t.join(St);return(o=e.validators.find(({validator:i})=>i(a)))==null?void 0:o.classGroupId},Ut=/^\[(.+)\]$/,bn=t=>{if(Ut.test(t)){const e=Ut.exec(t)[1],s=e==null?void 0:e.substring(0,e.indexOf(":"));if(s)return"arbitrary.."+s}},yn=t=>{const{theme:e,prefix:s}=t,n={nextPart:new Map,validators:[]};return kn(Object.entries(t.classGroups),s).forEach(([a,o])=>{ut(o,n,a,e)}),n},ut=(t,e,s,n)=>{t.forEach(r=>{if(typeof r=="string"){const a=r===""?e:Vt(e,r);a.classGroupId=s;return}if(typeof r=="function"){if(vn(r)){ut(r(n),e,s,n);return}e.validators.push({validator:r,classGroupId:s});return}Object.entries(r).forEach(([a,o])=>{ut(o,Vt(e,a),s,n)})})},Vt=(t,e)=>{let s=t;return e.split(St).forEach(n=>{s.nextPart.has(n)||s.nextPart.set(n,{nextPart:new Map,validators:[]}),s=s.nextPart.get(n)}),s},vn=t=>t.isThemeGetter,kn=(t,e)=>e?t.map(([s,n])=>{const r=n.map(a=>typeof a=="string"?e+a:typeof a=="object"?Object.fromEntries(Object.entries(a).map(([o,i])=>[e+o,i])):a);return[s,r]}):t,wn=t=>{if(t<1)return{get:()=>{},set:()=>{}};let e=0,s=new Map,n=new Map;const r=(a,o)=>{s.set(a,o),e++,e>t&&(e=0,n=s,s=new Map)};return{get(a){let o=s.get(a);if(o!==void 0)return o;if((o=n.get(a))!==void 0)return r(a,o),o},set(a,o){s.has(a)?s.set(a,o):r(a,o)}}},ws="!",_n=t=>{const{separator:e,experimentalParseClassName:s}=t,n=e.length===1,r=e[0],a=e.length,o=i=>{const d=[];let c=0,u=0,g;for(let k=0;k<i.length;k++){let b=i[k];if(c===0){if(b===r&&(n||i.slice(k,k+a)===e)){d.push(i.slice(u,k)),u=k+a;continue}if(b==="/"){g=k;continue}}b==="["?c++:b==="]"&&c--}const m=d.length===0?i:i.substring(u),f=m.startsWith(ws),h=f?m.substring(1):m,v=g&&g>u?g-u:void 0;return{modifiers:d,hasImportantModifier:f,baseClassName:h,maybePostfixModifierPosition:v}};return s?i=>s({className:i,parseClassName:o}):o},Cn=t=>{if(t.length<=1)return t;const e=[];let s=[];return t.forEach(n=>{n[0]==="["?(e.push(...s.sort(),n),s=[]):s.push(n)}),e.push(...s.sort()),e},Sn=t=>({cache:wn(t.cacheSize),parseClassName:_n(t),...xn(t)}),En=/\s+/,jn=(t,e)=>{const{parseClassName:s,getClassGroupId:n,getConflictingClassGroupIds:r}=e,a=[],o=t.trim().split(En);let i="";for(let d=o.length-1;d>=0;d-=1){const c=o[d],{modifiers:u,hasImportantModifier:g,baseClassName:m,maybePostfixModifierPosition:f}=s(c);let h=!!f,v=n(h?m.substring(0,f):m);if(!v){if(!h){i=c+(i.length>0?" "+i:i);continue}if(v=n(m),!v){i=c+(i.length>0?" "+i:i);continue}h=!1}const k=Cn(u).join(":"),b=g?k+ws:k,N=b+v;if(a.includes(N))continue;a.push(N);const Q=r(v,h);for(let H=0;H<Q.length;++H){const Z=Q[H];a.push(b+Z)}i=c+(i.length>0?" "+i:i)}return i};function Nn(){let t=0,e,s,n="";for(;t<arguments.length;)(e=arguments[t++])&&(s=_s(e))&&(n&&(n+=" "),n+=s);return n}const _s=t=>{if(typeof t=="string")return t;let e,s="";for(let n=0;n<t.length;n++)t[n]&&(e=_s(t[n]))&&(s&&(s+=" "),s+=e);return s};function In(t,...e){let s,n,r,a=o;function o(d){const c=e.reduce((u,g)=>g(u),t());return s=Sn(c),n=s.cache.get,r=s.cache.set,a=i,i(d)}function i(d){const c=n(d);if(c)return c;const u=jn(d,s);return r(d,u),u}return function(){return a(Nn.apply(null,arguments))}}const P=t=>{const e=s=>s[t]||[];return e.isThemeGetter=!0,e},Cs=/^\[(?:([a-z-]+):)?(.+)\]$/i,Tn=/^\d+\/\d+$/,An=new Set(["px","full","screen"]),Mn=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Fn=/\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$/,Rn=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,On=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,zn=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ge=t=>Ne(t)||An.has(t)||Tn.test(t),be=t=>ze(t,"length",Vn),Ne=t=>!!t&&!Number.isNaN(Number(t)),rt=t=>ze(t,"number",Ne),$e=t=>!!t&&Number.isInteger(Number(t)),Bn=t=>t.endsWith("%")&&Ne(t.slice(0,-1)),I=t=>Cs.test(t),ye=t=>Mn.test(t),$n=new Set(["length","size","percentage"]),Dn=t=>ze(t,$n,Ss),Pn=t=>ze(t,"position",Ss),Zn=new Set(["image","url"]),Ln=t=>ze(t,Zn,Gn),Un=t=>ze(t,"",qn),De=()=>!0,ze=(t,e,s)=>{const n=Cs.exec(t);return n?n[1]?typeof e=="string"?n[1]===e:e.has(n[1]):s(n[2]):!1},Vn=t=>Fn.test(t)&&!Rn.test(t),Ss=()=>!1,qn=t=>On.test(t),Gn=t=>zn.test(t),Wn=()=>{const t=P("colors"),e=P("spacing"),s=P("blur"),n=P("brightness"),r=P("borderColor"),a=P("borderRadius"),o=P("borderSpacing"),i=P("borderWidth"),d=P("contrast"),c=P("grayscale"),u=P("hueRotate"),g=P("invert"),m=P("gap"),f=P("gradientColorStops"),h=P("gradientColorStopPositions"),v=P("inset"),k=P("margin"),b=P("opacity"),N=P("padding"),Q=P("saturate"),H=P("scale"),Z=P("sepia"),L=P("skew"),$=P("space"),B=P("translate"),X=()=>["auto","contain","none"],ne=()=>["auto","hidden","clip","visible","scroll"],ie=()=>["auto",I,e],S=()=>[I,e],U=()=>["",ge,be],z=()=>["auto",Ne,I],K=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],J=()=>["solid","dashed","dotted","double","none"],ee=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],q=()=>["start","end","center","between","around","evenly","stretch"],te=()=>["","0",I],ue=()=>["auto","avoid","all","avoid-page","page","left","right","column"],se=()=>[Ne,I];return{cacheSize:500,separator:":",theme:{colors:[De],spacing:[ge,be],blur:["none","",ye,I],brightness:se(),borderColor:[t],borderRadius:["none","","full",ye,I],borderSpacing:S(),borderWidth:U(),contrast:se(),grayscale:te(),hueRotate:se(),invert:te(),gap:S(),gradientColorStops:[t],gradientColorStopPositions:[Bn,be],inset:ie(),margin:ie(),opacity:se(),padding:S(),saturate:se(),scale:se(),sepia:te(),skew:se(),space:S(),translate:S()},classGroups:{aspect:[{aspect:["auto","square","video",I]}],container:["container"],columns:[{columns:[ye]}],"break-after":[{"break-after":ue()}],"break-before":[{"break-before":ue()}],"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"],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:[...K(),I]}],overflow:[{overflow:ne()}],"overflow-x":[{"overflow-x":ne()}],"overflow-y":[{"overflow-y":ne()}],overscroll:[{overscroll:X()}],"overscroll-x":[{"overscroll-x":X()}],"overscroll-y":[{"overscroll-y":X()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[v]}],"inset-x":[{"inset-x":[v]}],"inset-y":[{"inset-y":[v]}],start:[{start:[v]}],end:[{end:[v]}],top:[{top:[v]}],right:[{right:[v]}],bottom:[{bottom:[v]}],left:[{left:[v]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",$e,I]}],basis:[{basis:ie()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",I]}],grow:[{grow:te()}],shrink:[{shrink:te()}],order:[{order:["first","last","none",$e,I]}],"grid-cols":[{"grid-cols":[De]}],"col-start-end":[{col:["auto",{span:["full",$e,I]},I]}],"col-start":[{"col-start":z()}],"col-end":[{"col-end":z()}],"grid-rows":[{"grid-rows":[De]}],"row-start-end":[{row:["auto",{span:[$e,I]},I]}],"row-start":[{"row-start":z()}],"row-end":[{"row-end":z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",I]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",I]}],gap:[{gap:[m]}],"gap-x":[{"gap-x":[m]}],"gap-y":[{"gap-y":[m]}],"justify-content":[{justify:["normal",...q()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...q(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...q(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[N]}],px:[{px:[N]}],py:[{py:[N]}],ps:[{ps:[N]}],pe:[{pe:[N]}],pt:[{pt:[N]}],pr:[{pr:[N]}],pb:[{pb:[N]}],pl:[{pl:[N]}],m:[{m:[k]}],mx:[{mx:[k]}],my:[{my:[k]}],ms:[{ms:[k]}],me:[{me:[k]}],mt:[{mt:[k]}],mr:[{mr:[k]}],mb:[{mb:[k]}],ml:[{ml:[k]}],"space-x":[{"space-x":[$]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[$]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",I,e]}],"min-w":[{"min-w":[I,e,"min","max","fit"]}],"max-w":[{"max-w":[I,e,"none","full","min","max","fit","prose",{screen:[ye]},ye]}],h:[{h:[I,e,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[I,e,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[I,e,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[I,e,"auto","min","max","fit"]}],"font-size":[{text:["base",ye,be]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",rt]}],"font-family":[{font:[De]}],"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:["tighter","tight","normal","wide","wider","widest",I]}],"line-clamp":[{"line-clamp":["none",Ne,rt]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",ge,I]}],"list-image":[{"list-image":["none",I]}],"list-style-type":[{list:["none","disc","decimal",I]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[b]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[b]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...J(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",ge,be]}],"underline-offset":[{"underline-offset":["auto",ge,I]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",I]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",I]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[b]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...K(),Pn]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Dn]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Ln]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[h]}],"gradient-via-pos":[{via:[h]}],"gradient-to-pos":[{to:[h]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[b]}],"border-style":[{border:[...J(),"hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[b]}],"divide-style":[{divide:J()}],"border-color":[{border:[r]}],"border-color-x":[{"border-x":[r]}],"border-color-y":[{"border-y":[r]}],"border-color-s":[{"border-s":[r]}],"border-color-e":[{"border-e":[r]}],"border-color-t":[{"border-t":[r]}],"border-color-r":[{"border-r":[r]}],"border-color-b":[{"border-b":[r]}],"border-color-l":[{"border-l":[r]}],"divide-color":[{divide:[r]}],"outline-style":[{outline:["",...J()]}],"outline-offset":[{"outline-offset":[ge,I]}],"outline-w":[{outline:[ge,be]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:U()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[b]}],"ring-offset-w":[{"ring-offset":[ge,be]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",ye,Un]}],"shadow-color":[{shadow:[De]}],opacity:[{opacity:[b]}],"mix-blend":[{"mix-blend":[...ee(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":ee()}],filter:[{filter:["","none"]}],blur:[{blur:[s]}],brightness:[{brightness:[n]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",ye,I]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[g]}],saturate:[{saturate:[Q]}],sepia:[{sepia:[Z]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[s]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[d]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[g]}],"backdrop-opacity":[{"backdrop-opacity":[b]}],"backdrop-saturate":[{"backdrop-saturate":[Q]}],"backdrop-sepia":[{"backdrop-sepia":[Z]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",I]}],duration:[{duration:se()}],ease:[{ease:["linear","in","out","in-out",I]}],delay:[{delay:se()}],animate:[{animate:["none","spin","ping","pulse","bounce",I]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[H]}],"scale-x":[{"scale-x":[H]}],"scale-y":[{"scale-y":[H]}],rotate:[{rotate:[$e,I]}],"translate-x":[{"translate-x":[B]}],"translate-y":[{"translate-y":[B]}],"skew-x":[{"skew-x":[L]}],"skew-y":[{"skew-y":[L]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",I]}],accent:[{accent:["auto",t]}],appearance:[{appearance:["none","auto"]}],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",I]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"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",I]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[ge,be,rt]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"],"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-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-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"],"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"]}}},Hn=In(Wn);function D(...t){return Hn(vs(t))}const Jn=pn("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",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"}}),Ve=p.forwardRef(({className:t,variant:e,size:s,asChild:n=!1,...r},a)=>{const o=n?Ws:"button";return l.jsx(o,{className:D(Jn({variant:e,size:s,className:t})),ref:a,...r})});Ve.displayName="Button";const re="",Qn=t=>Array.isArray(t)?t:t==null?"":typeof t=="string"?t:JSON.stringify(t),Kn=t=>typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
3
- `),Yn=()=>{const t=new Date,e=String(t.getFullYear()).slice(-2),s=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),r=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`Session ${e}-${s}-${n} ${r}:${a}`},le={listSessions:async()=>{const t=await fetch(`${re}/sessions`);if(!t.ok)throw new Error("Failed to load sessions");return t.json()},createSession:async(t,e)=>{const s=await fetch(`${re}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:t,title:e||Yn()})});if(!s.ok)throw new Error("Failed to create session");return s.json()},deleteSession:async t=>{if(!(await fetch(`${re}/sessions/${t}`,{method:"DELETE"})).ok)throw new Error("Failed to delete session")},updateSession:async(t,e)=>{if(!(await fetch(`${re}/sessions/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e})})).ok)throw new Error("Failed to update session")},getMessages:async t=>{const e=await fetch(`${re}/sessions/${t}/message`);if(!e.ok)throw new Error("Failed to load messages");const s=await e.json(),n=Date.now();return s.map((r,a)=>{const o=Qn(r.content),i=Kn(o),d=r.role==="tool"?{kind:"tool_result",toolCallId:r.tool_call_id,toolName:r.name,output:i}:r.metadata;return{id:r.id||`history-${a}-${n}`,role:r.role,content:o,timestamp:n,metadata:d,tool_call_id:r.tool_call_id,name:r.name,tool_calls:r.tool_calls,thinkingContent:r.thinkingContent}})},sendMessage:async(t,e,s)=>{const n=await fetch(`${re}/sessions/${t}/message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,permissionMode:s})});if(!n.ok)throw new Error("Failed to send message");return n.json()},abortSession:async t=>{await fetch(`${re}/sessions/${t}/abort`,{method:"POST"})},subscribeEvents:(t,e,s)=>{const n=(s==null?void 0:s.maxRetries)??5,r=s==null?void 0:s.onConnectionChange;let a=null,o=0,i=null,d=!1,c=Date.now(),u=null;const g=()=>{d||(a=new EventSource(`${re}/sessions/${t}/events`),a.onopen=()=>{o=0,c=Date.now(),r==null||r(!0),u=setInterval(()=>{Date.now()-c>45e3&&(console.warn("SSE heartbeat timeout, reconnecting..."),a==null||a.close(),f())},15e3)},a.onmessage=h=>{try{const v=JSON.parse(h.data);if(c=Date.now(),v.type==="heartbeat"||v.type==="connected")return;e(v)}catch(v){console.error("Failed to parse SSE event:",h.data,v)}},a.onerror=()=>{d||(console.error("SSE connection error"),r==null||r(!1),m(),f())})},m=()=>{u&&(clearInterval(u),u=null),a==null||a.close(),a=null},f=()=>{if(d||o>=n){o>=n&&console.error(`SSE max retries (${n}) reached, giving up`);return}o++;const h=Math.min(1e3*Math.pow(2,o-1),3e4);console.log(`SSE reconnecting in ${h}ms (attempt ${o}/${n})`),i=setTimeout(g,h)};return g(),()=>{d=!0,i&&(clearTimeout(i),i=null),m(),r==null||r(!1)}},respondPermission:async(t,e,s)=>{if(!(await fetch(`${re}/permissions/${e}?sessionId=${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).ok)throw new Error("Failed to respond to permission")},respondToConfirmation:async(t,e,s)=>{if(!(await fetch(`${re}/sessions/${t}/confirmation/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({approved:s})})).ok)throw new Error("Failed to respond to confirmation")},respondToQuestion:async(t,e,s)=>{if(!(await fetch(`${re}/sessions/${t}/question/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({answers:s})})).ok)throw new Error("Failed to respond to question")},getGitInfo:async()=>{const t=await fetch(`${re}/suggestions/git-info`);if(!t.ok)throw new Error("Failed to get git info");return t.json()}},qt=t=>{let e;const s=new Set,n=(c,u)=>{const g=typeof c=="function"?c(e):c;if(!Object.is(g,e)){const m=e;e=u??(typeof g!="object"||g===null)?g:Object.assign({},e,g),s.forEach(f=>f(e,m))}},r=()=>e,i={setState:n,getState:r,getInitialState:()=>d,subscribe:c=>(s.add(c),()=>s.delete(c))},d=e=t(n,r,i);return i},Xn=t=>t?qt(t):qt,er=t=>t;function tr(t,e=er){const s=Ze.useSyncExternalStore(t.subscribe,Ze.useCallback(()=>e(t.getState()),[t,e]),Ze.useCallback(()=>e(t.getInitialState()),[t,e]));return Ze.useDebugValue(s),s}const Gt=t=>{const e=Xn(t),s=n=>tr(e,n);return Object.assign(s,e),s},Et=t=>t?Gt(t):Gt,jt=Et(t=>({isSidebarOpen:!0,toggleSidebar:()=>t(e=>({isSidebarOpen:!e.isSidebarOpen})),setSidebarOpen:e=>t({isSidebarOpen:e}),isFilePreviewOpen:!1,toggleFilePreview:()=>t(e=>({isFilePreviewOpen:!e.isFilePreviewOpen})),setFilePreviewOpen:e=>t({isFilePreviewOpen:e}),isSettingsOpen:!1,toggleSettings:()=>t(e=>({isSettingsOpen:!e.isSettingsOpen})),isMcpOpen:!1,toggleMcp:()=>t(e=>({isMcpOpen:!e.isMcpOpen})),isSkillsOpen:!1,toggleSkills:()=>t(e=>({isSkillsOpen:!e.isSkillsOpen})),isTerminalOpen:!1,toggleTerminal:()=>t(e=>({isTerminalOpen:!e.isTerminalOpen}))})),Se=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),sr=(t,e)=>({messages:[],setMessages:s=>t({messages:s}),addMessage:s=>t(n=>({messages:[...n.messages,s]})),updateMessage:(s,n)=>t(r=>({messages:r.messages.map(a=>a.id===s?{...a,...n}:a)})),appendDelta:(s,n,r)=>t(a=>({messages:a.messages.map(o=>{if(o.id!==s)return o;const i=o.agentContent||Se();return r==="before"?{...o,agentContent:{...i,textBefore:i.textBefore+n}}:{...o,agentContent:{...i,textAfter:i.textAfter+n}}})})),appendToolCall:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,toolCalls:[...o.toolCalls,n]}}})})),updateToolCall:(s,n,r)=>t(a=>({messages:a.messages.map(o=>{if(o.id!==s)return o;const i=o.agentContent;return i?{...o,agentContent:{...i,toolCalls:i.toolCalls.map(d=>d.toolCallId===n?{...d,...r}:d)}}:o})})),appendThinking:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,thinkingContent:o.thinkingContent+n}}})})),setConfirmation:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,confirmation:n}}})})),setQuestion:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,question:n}}})})),setSubagent:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,subagent:n}}})})),setTasks:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,tasks:n}}})})),replaceTemp:(s,n)=>t(r=>{const a=r.messages.findIndex(i=>i.content===s&&i.role==="user");if(a===-1)return r;const o=[...r.messages];return o[a]=n,{messages:o}})});var O;(function(t){t.assertEqual=r=>{};function e(r){}t.assertIs=e;function s(r){throw new Error}t.assertNever=s,t.arrayToEnum=r=>{const a={};for(const o of r)a[o]=o;return a},t.getValidEnumValues=r=>{const a=t.objectKeys(r).filter(i=>typeof r[r[i]]!="number"),o={};for(const i of a)o[i]=r[i];return t.objectValues(o)},t.objectValues=r=>t.objectKeys(r).map(function(a){return r[a]}),t.objectKeys=typeof Object.keys=="function"?r=>Object.keys(r):r=>{const a=[];for(const o in r)Object.prototype.hasOwnProperty.call(r,o)&&a.push(o);return a},t.find=(r,a)=>{for(const o of r)if(a(o))return o},t.isInteger=typeof Number.isInteger=="function"?r=>Number.isInteger(r):r=>typeof r=="number"&&Number.isFinite(r)&&Math.floor(r)===r;function n(r,a=" | "){return r.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=n,t.jsonStringifyReplacer=(r,a)=>typeof a=="bigint"?a.toString():a})(O||(O={}));var Wt;(function(t){t.mergeShapes=(e,s)=>({...e,...s})})(Wt||(Wt={}));const _=O.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ve=t=>{switch(typeof t){case"undefined":return _.undefined;case"string":return _.string;case"number":return Number.isNaN(t)?_.nan:_.number;case"boolean":return _.boolean;case"function":return _.function;case"bigint":return _.bigint;case"symbol":return _.symbol;case"object":return Array.isArray(t)?_.array:t===null?_.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?_.promise:typeof Map<"u"&&t instanceof Map?_.map:typeof Set<"u"&&t instanceof Set?_.set:typeof Date<"u"&&t instanceof Date?_.date:_.object;default:return _.unknown}},x=O.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class xe extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const s=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,s):this.__proto__=s,this.name="ZodError",this.issues=e}format(e){const s=e||function(a){return a.message},n={_errors:[]},r=a=>{for(const o of a.issues)if(o.code==="invalid_union")o.unionErrors.map(r);else if(o.code==="invalid_return_type")r(o.returnTypeError);else if(o.code==="invalid_arguments")r(o.argumentsError);else if(o.path.length===0)n._errors.push(s(o));else{let i=n,d=0;for(;d<o.path.length;){const c=o.path[d];d===o.path.length-1?(i[c]=i[c]||{_errors:[]},i[c]._errors.push(s(o))):i[c]=i[c]||{_errors:[]},i=i[c],d++}}};return r(this),n}static assert(e){if(!(e instanceof xe))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,O.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=s=>s.message){const s={},n=[];for(const r of this.issues)if(r.path.length>0){const a=r.path[0];s[a]=s[a]||[],s[a].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:s}}get formErrors(){return this.flatten()}}xe.create=t=>new xe(t);const ft=(t,e)=>{let s;switch(t.code){case x.invalid_type:t.received===_.undefined?s="Required":s=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:s=`Invalid literal value, expected ${JSON.stringify(t.expected,O.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:s=`Unrecognized key(s) in object: ${O.joinValues(t.keys,", ")}`;break;case x.invalid_union:s="Invalid input";break;case x.invalid_union_discriminator:s=`Invalid discriminator value. Expected ${O.joinValues(t.options)}`;break;case x.invalid_enum_value:s=`Invalid enum value. Expected ${O.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:s="Invalid function arguments";break;case x.invalid_return_type:s="Invalid function return type";break;case x.invalid_date:s="Invalid date";break;case x.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(s=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(s=`${s} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?s=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?s=`Invalid input: must end with "${t.validation.endsWith}"`:O.assertNever(t.validation):t.validation!=="regex"?s=`Invalid ${t.validation}`:s="Invalid";break;case x.too_small:t.type==="array"?s=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?s=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?s=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?s=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?s=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:s="Invalid input";break;case x.too_big:t.type==="array"?s=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?s=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?s=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?s=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?s=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:s="Invalid input";break;case x.custom:s="Invalid input";break;case x.invalid_intersection_types:s="Intersection results could not be merged";break;case x.not_multiple_of:s=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:s="Number must be finite";break;default:s=e.defaultError,O.assertNever(t)}return{message:s}};let nr=ft;function rr(){return nr}const ar=t=>{const{data:e,path:s,errorMaps:n,issueData:r}=t,a=[...s,...r.path||[]],o={...r,path:a};if(r.message!==void 0)return{...r,path:a,message:r.message};let i="";const d=n.filter(c=>!!c).slice().reverse();for(const c of d)i=c(o,{data:e,defaultError:i}).message;return{...r,path:a,message:i}};function w(t,e){const s=rr(),n=ar({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,s,s===ft?void 0:ft].filter(r=>!!r)});t.common.issues.push(n)}class Y{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,s){const n=[];for(const r of s){if(r.status==="aborted")return j;r.status==="dirty"&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,s){const n=[];for(const r of s){const a=await r.key,o=await r.value;n.push({key:a,value:o})}return Y.mergeObjectSync(e,n)}static mergeObjectSync(e,s){const n={};for(const r of s){const{key:a,value:o}=r;if(a.status==="aborted"||o.status==="aborted")return j;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||r.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}}const j=Object.freeze({status:"aborted"}),Le=t=>({status:"dirty",value:t}),oe=t=>({status:"valid",value:t}),Ht=t=>t.status==="aborted",Jt=t=>t.status==="dirty",Ie=t=>t.status==="valid",Qe=t=>typeof Promise<"u"&&t instanceof Promise;var C;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(C||(C={}));class ce{constructor(e,s,n,r){this._cachedPath=[],this.parent=e,this.data=s,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Qt=(t,e)=>{if(Ie(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const s=new xe(t.common.issues);return this._error=s,this._error}}};function T(t){if(!t)return{};const{errorMap:e,invalid_type_error:s,required_error:n,description:r}=t;if(e&&(s||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(o,i)=>{const{message:d}=t;return o.code==="invalid_enum_value"?{message:d??i.defaultError}:typeof i.data>"u"?{message:d??n??i.defaultError}:o.code!=="invalid_type"?{message:i.defaultError}:{message:d??s??i.defaultError}},description:r}}class F{get description(){return this._def.description}_getType(e){return ve(e.data)}_getOrReturnCtx(e,s){return s||{common:e.parent.common,data:e.data,parsedType:ve(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Y,ctx:{common:e.parent.common,data:e.data,parsedType:ve(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const s=this._parse(e);if(Qe(s))throw new Error("Synchronous parse encountered promise.");return s}_parseAsync(e){const s=this._parse(e);return Promise.resolve(s)}parse(e,s){const n=this.safeParse(e,s);if(n.success)return n.data;throw n.error}safeParse(e,s){const n={common:{issues:[],async:(s==null?void 0:s.async)??!1,contextualErrorMap:s==null?void 0:s.errorMap},path:(s==null?void 0:s.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ve(e)},r=this._parseSync({data:e,path:n.path,parent:n});return Qt(n,r)}"~validate"(e){var n,r;const s={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ve(e)};if(!this["~standard"].async)try{const a=this._parseSync({data:e,path:[],parent:s});return Ie(a)?{value:a.value}:{issues:s.common.issues}}catch(a){(r=(n=a==null?void 0:a.message)==null?void 0:n.toLowerCase())!=null&&r.includes("encountered")&&(this["~standard"].async=!0),s.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:s}).then(a=>Ie(a)?{value:a.value}:{issues:s.common.issues})}async parseAsync(e,s){const n=await this.safeParseAsync(e,s);if(n.success)return n.data;throw n.error}async safeParseAsync(e,s){const n={common:{issues:[],contextualErrorMap:s==null?void 0:s.errorMap,async:!0},path:(s==null?void 0:s.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ve(e)},r=this._parse({data:e,path:n.path,parent:n}),a=await(Qe(r)?r:Promise.resolve(r));return Qt(n,a)}refine(e,s){const n=r=>typeof s=="string"||typeof s>"u"?{message:s}:typeof s=="function"?s(r):s;return this._refinement((r,a)=>{const o=e(r),i=()=>a.addIssue({code:x.custom,...n(r)});return typeof Promise<"u"&&o instanceof Promise?o.then(d=>d?!0:(i(),!1)):o?!0:(i(),!1)})}refinement(e,s){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof s=="function"?s(n,r):s),!1))}_refinement(e){return new Me({schema:this,typeName:E.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:s=>this["~validate"](s)}}optional(){return we.create(this,this._def)}nullable(){return Fe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return de.create(this)}promise(){return tt.create(this,this._def)}or(e){return Ye.create([this,e],this._def)}and(e){return Xe.create(this,e,this._def)}transform(e){return new Me({...T(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const s=typeof e=="function"?e:()=>e;return new xt({...T(this._def),innerType:this,defaultValue:s,typeName:E.ZodDefault})}brand(){return new Nr({typeName:E.ZodBranded,type:this,...T(this._def)})}catch(e){const s=typeof e=="function"?e:()=>e;return new bt({...T(this._def),innerType:this,catchValue:s,typeName:E.ZodCatch})}describe(e){const s=this.constructor;return new s({...this._def,description:e})}pipe(e){return Nt.create(this,e)}readonly(){return yt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const or=/^c[^\s-]{8,}$/i,ir=/^[0-9a-z]+$/,lr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,dr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,cr=/^[a-z0-9_-]{21}$/i,ur=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,fr=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,hr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,gr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let at;const mr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,pr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,xr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,br=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,yr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,vr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Es="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",kr=new RegExp(`^${Es}$`);function js(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);const s=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${s}`}function wr(t){return new RegExp(`^${js(t)}$`)}function _r(t){let e=`${Es}T${js(t)}`;const s=[];return s.push(t.local?"Z?":"Z"),t.offset&&s.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${s.join("|")})`,new RegExp(`^${e}$`)}function Cr(t,e){return!!((e==="v4"||!e)&&mr.test(t)||(e==="v6"||!e)&&xr.test(t))}function Sr(t,e){if(!ur.test(t))return!1;try{const[s]=t.split(".");if(!s)return!1;const n=s.replace(/-/g,"+").replace(/_/g,"/").padEnd(s.length+(4-s.length%4)%4,"="),r=JSON.parse(atob(n));return!(typeof r!="object"||r===null||"typ"in r&&(r==null?void 0:r.typ)!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function Er(t,e){return!!((e==="v4"||!e)&&pr.test(t)||(e==="v6"||!e)&&br.test(t))}class pe extends F{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==_.string){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_type,expected:_.string,received:a.parsedType}),j}const n=new Y;let r;for(const a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="max")e.data.length>a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){const o=e.data.length>a.value,i=e.data.length<a.value;(o||i)&&(r=this._getOrReturnCtx(e,r),o?w(r,{code:x.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):i&&w(r,{code:x.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),n.dirty())}else if(a.kind==="email")hr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"email",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="emoji")at||(at=new RegExp(gr,"u")),at.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"emoji",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="uuid")dr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"uuid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="nanoid")cr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"nanoid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid")or.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"cuid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid2")ir.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"cuid2",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="ulid")lr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"ulid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),w(r,{validation:"url",code:x.invalid_string,message:a.message}),n.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"regex",code:x.invalid_string,message:a.message}),n.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),n.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:{startsWith:a.value},message:a.message}),n.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:{endsWith:a.value},message:a.message}),n.dirty()):a.kind==="datetime"?_r(a).test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:"datetime",message:a.message}),n.dirty()):a.kind==="date"?kr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:"date",message:a.message}),n.dirty()):a.kind==="time"?wr(a).test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:"time",message:a.message}),n.dirty()):a.kind==="duration"?fr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"duration",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="ip"?Cr(e.data,a.version)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"ip",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="jwt"?Sr(e.data,a.alg)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"jwt",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="cidr"?Er(e.data,a.version)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"cidr",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="base64"?yr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"base64",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="base64url"?vr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"base64url",code:x.invalid_string,message:a.message}),n.dirty()):O.assertNever(a);return{status:n.value,value:e.data}}_regex(e,s,n){return this.refinement(r=>e.test(r),{validation:s,code:x.invalid_string,...C.errToObj(n)})}_addCheck(e){return new pe({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...C.errToObj(e)})}url(e){return this._addCheck({kind:"url",...C.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...C.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...C.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...C.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...C.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...C.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...C.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...C.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...C.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...C.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...C.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...C.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...C.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...C.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...C.errToObj(e)})}regex(e,s){return this._addCheck({kind:"regex",regex:e,...C.errToObj(s)})}includes(e,s){return this._addCheck({kind:"includes",value:e,position:s==null?void 0:s.position,...C.errToObj(s==null?void 0:s.message)})}startsWith(e,s){return this._addCheck({kind:"startsWith",value:e,...C.errToObj(s)})}endsWith(e,s){return this._addCheck({kind:"endsWith",value:e,...C.errToObj(s)})}min(e,s){return this._addCheck({kind:"min",value:e,...C.errToObj(s)})}max(e,s){return this._addCheck({kind:"max",value:e,...C.errToObj(s)})}length(e,s){return this._addCheck({kind:"length",value:e,...C.errToObj(s)})}nonempty(e){return this.min(1,C.errToObj(e))}trim(){return new pe({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new pe({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new pe({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxLength(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}}pe.create=t=>new pe({checks:[],typeName:E.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...T(t)});function jr(t,e){const s=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,r=s>n?s:n,a=Number.parseInt(t.toFixed(r).replace(".","")),o=Number.parseInt(e.toFixed(r).replace(".",""));return a%o/10**r}class Te extends F{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==_.number){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_type,expected:_.number,received:a.parsedType}),j}let n;const r=new Y;for(const a of this._def.checks)a.kind==="int"?O.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),w(n,{code:x.invalid_type,expected:"integer",received:"float",message:a.message}),r.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()):a.kind==="multipleOf"?jr(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),w(n,{code:x.not_finite,message:a.message}),r.dirty()):O.assertNever(a);return{status:r.value,value:e.data}}gte(e,s){return this.setLimit("min",e,!0,C.toString(s))}gt(e,s){return this.setLimit("min",e,!1,C.toString(s))}lte(e,s){return this.setLimit("max",e,!0,C.toString(s))}lt(e,s){return this.setLimit("max",e,!1,C.toString(s))}setLimit(e,s,n,r){return new Te({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:n,message:C.toString(r)}]})}_addCheck(e){return new Te({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:C.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:C.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:C.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:C.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:C.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:C.toString(s)})}finite(e){return this._addCheck({kind:"finite",message:C.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:C.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:C.toString(e)})}get minValue(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxValue(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&O.isInteger(e.value))}get isFinite(){let e=null,s=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(s===null||n.value>s)&&(s=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(s)&&Number.isFinite(e)}}Te.create=t=>new Te({checks:[],typeName:E.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...T(t)});class Ge extends F{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==_.bigint)return this._getInvalidInput(e);let n;const r=new Y;for(const a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):O.assertNever(a);return{status:r.value,value:e.data}}_getInvalidInput(e){const s=this._getOrReturnCtx(e);return w(s,{code:x.invalid_type,expected:_.bigint,received:s.parsedType}),j}gte(e,s){return this.setLimit("min",e,!0,C.toString(s))}gt(e,s){return this.setLimit("min",e,!1,C.toString(s))}lte(e,s){return this.setLimit("max",e,!0,C.toString(s))}lt(e,s){return this.setLimit("max",e,!1,C.toString(s))}setLimit(e,s,n,r){return new Ge({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:n,message:C.toString(r)}]})}_addCheck(e){return new Ge({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:C.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:C.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:C.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:C.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:C.toString(s)})}get minValue(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxValue(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}}Ge.create=t=>new Ge({checks:[],typeName:E.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...T(t)});class ht extends F{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==_.boolean){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.boolean,received:n.parsedType}),j}return oe(e.data)}}ht.create=t=>new ht({typeName:E.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...T(t)});class Ke extends F{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==_.date){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_type,expected:_.date,received:a.parsedType}),j}if(Number.isNaN(e.data.getTime())){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_date}),j}const n=new Y;let r;for(const a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),n.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):O.assertNever(a);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Ke({...this._def,checks:[...this._def.checks,e]})}min(e,s){return this._addCheck({kind:"min",value:e.getTime(),message:C.toString(s)})}max(e,s){return this._addCheck({kind:"max",value:e.getTime(),message:C.toString(s)})}get minDate(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e!=null?new Date(e):null}}Ke.create=t=>new Ke({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:E.ZodDate,...T(t)});class Kt extends F{_parse(e){if(this._getType(e)!==_.symbol){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.symbol,received:n.parsedType}),j}return oe(e.data)}}Kt.create=t=>new Kt({typeName:E.ZodSymbol,...T(t)});class Yt extends F{_parse(e){if(this._getType(e)!==_.undefined){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.undefined,received:n.parsedType}),j}return oe(e.data)}}Yt.create=t=>new Yt({typeName:E.ZodUndefined,...T(t)});class Xt extends F{_parse(e){if(this._getType(e)!==_.null){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.null,received:n.parsedType}),j}return oe(e.data)}}Xt.create=t=>new Xt({typeName:E.ZodNull,...T(t)});class es extends F{constructor(){super(...arguments),this._any=!0}_parse(e){return oe(e.data)}}es.create=t=>new es({typeName:E.ZodAny,...T(t)});class gt extends F{constructor(){super(...arguments),this._unknown=!0}_parse(e){return oe(e.data)}}gt.create=t=>new gt({typeName:E.ZodUnknown,...T(t)});class _e extends F{_parse(e){const s=this._getOrReturnCtx(e);return w(s,{code:x.invalid_type,expected:_.never,received:s.parsedType}),j}}_e.create=t=>new _e({typeName:E.ZodNever,...T(t)});class ts extends F{_parse(e){if(this._getType(e)!==_.undefined){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.void,received:n.parsedType}),j}return oe(e.data)}}ts.create=t=>new ts({typeName:E.ZodVoid,...T(t)});class de extends F{_parse(e){const{ctx:s,status:n}=this._processInputParams(e),r=this._def;if(s.parsedType!==_.array)return w(s,{code:x.invalid_type,expected:_.array,received:s.parsedType}),j;if(r.exactLength!==null){const o=s.data.length>r.exactLength.value,i=s.data.length<r.exactLength.value;(o||i)&&(w(s,{code:o?x.too_big:x.too_small,minimum:i?r.exactLength.value:void 0,maximum:o?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&s.data.length<r.minLength.value&&(w(s,{code:x.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&s.data.length>r.maxLength.value&&(w(s,{code:x.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),s.common.async)return Promise.all([...s.data].map((o,i)=>r.type._parseAsync(new ce(s,o,s.path,i)))).then(o=>Y.mergeArray(n,o));const a=[...s.data].map((o,i)=>r.type._parseSync(new ce(s,o,s.path,i)));return Y.mergeArray(n,a)}get element(){return this._def.type}min(e,s){return new de({...this._def,minLength:{value:e,message:C.toString(s)}})}max(e,s){return new de({...this._def,maxLength:{value:e,message:C.toString(s)}})}length(e,s){return new de({...this._def,exactLength:{value:e,message:C.toString(s)}})}nonempty(e){return this.min(1,e)}}de.create=(t,e)=>new de({type:t,minLength:null,maxLength:null,exactLength:null,typeName:E.ZodArray,...T(e)});function je(t){if(t instanceof G){const e={};for(const s in t.shape){const n=t.shape[s];e[s]=we.create(je(n))}return new G({...t._def,shape:()=>e})}else return t instanceof de?new de({...t._def,type:je(t.element)}):t instanceof we?we.create(je(t.unwrap())):t instanceof Fe?Fe.create(je(t.unwrap())):t instanceof Ee?Ee.create(t.items.map(e=>je(e))):t}class G extends F{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),s=O.objectKeys(e);return this._cached={shape:e,keys:s},this._cached}_parse(e){if(this._getType(e)!==_.object){const c=this._getOrReturnCtx(e);return w(c,{code:x.invalid_type,expected:_.object,received:c.parsedType}),j}const{status:n,ctx:r}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),i=[];if(!(this._def.catchall instanceof _e&&this._def.unknownKeys==="strip"))for(const c in r.data)o.includes(c)||i.push(c);const d=[];for(const c of o){const u=a[c],g=r.data[c];d.push({key:{status:"valid",value:c},value:u._parse(new ce(r,g,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof _e){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of i)d.push({key:{status:"valid",value:u},value:{status:"valid",value:r.data[u]}});else if(c==="strict")i.length>0&&(w(r,{code:x.unrecognized_keys,keys:i}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of i){const g=r.data[u];d.push({key:{status:"valid",value:u},value:c._parse(new ce(r,g,r.path,u)),alwaysSet:u in r.data})}}return r.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of d){const g=await u.key,m=await u.value;c.push({key:g,value:m,alwaysSet:u.alwaysSet})}return c}).then(c=>Y.mergeObjectSync(n,c)):Y.mergeObjectSync(n,d)}get shape(){return this._def.shape()}strict(e){return C.errToObj,new G({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(s,n)=>{var a,o;const r=((o=(a=this._def).errorMap)==null?void 0:o.call(a,s,n).message)??n.defaultError;return s.code==="unrecognized_keys"?{message:C.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new G({...this._def,unknownKeys:"strip"})}passthrough(){return new G({...this._def,unknownKeys:"passthrough"})}extend(e){return new G({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new G({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:E.ZodObject})}setKey(e,s){return this.augment({[e]:s})}catchall(e){return new G({...this._def,catchall:e})}pick(e){const s={};for(const n of O.objectKeys(e))e[n]&&this.shape[n]&&(s[n]=this.shape[n]);return new G({...this._def,shape:()=>s})}omit(e){const s={};for(const n of O.objectKeys(this.shape))e[n]||(s[n]=this.shape[n]);return new G({...this._def,shape:()=>s})}deepPartial(){return je(this)}partial(e){const s={};for(const n of O.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?s[n]=r:s[n]=r.optional()}return new G({...this._def,shape:()=>s})}required(e){const s={};for(const n of O.objectKeys(this.shape))if(e&&!e[n])s[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof we;)a=a._def.innerType;s[n]=a}return new G({...this._def,shape:()=>s})}keyof(){return Ns(O.objectKeys(this.shape))}}G.create=(t,e)=>new G({shape:()=>t,unknownKeys:"strip",catchall:_e.create(),typeName:E.ZodObject,...T(e)});G.strictCreate=(t,e)=>new G({shape:()=>t,unknownKeys:"strict",catchall:_e.create(),typeName:E.ZodObject,...T(e)});G.lazycreate=(t,e)=>new G({shape:t,unknownKeys:"strip",catchall:_e.create(),typeName:E.ZodObject,...T(e)});class Ye extends F{_parse(e){const{ctx:s}=this._processInputParams(e),n=this._def.options;function r(a){for(const i of a)if(i.result.status==="valid")return i.result;for(const i of a)if(i.result.status==="dirty")return s.common.issues.push(...i.ctx.common.issues),i.result;const o=a.map(i=>new xe(i.ctx.common.issues));return w(s,{code:x.invalid_union,unionErrors:o}),j}if(s.common.async)return Promise.all(n.map(async a=>{const o={...s,common:{...s.common,issues:[]},parent:null};return{result:await a._parseAsync({data:s.data,path:s.path,parent:o}),ctx:o}})).then(r);{let a;const o=[];for(const d of n){const c={...s,common:{...s.common,issues:[]},parent:null},u=d._parseSync({data:s.data,path:s.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!a&&(a={result:u,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(a)return s.common.issues.push(...a.ctx.common.issues),a.result;const i=o.map(d=>new xe(d));return w(s,{code:x.invalid_union,unionErrors:i}),j}}get options(){return this._def.options}}Ye.create=(t,e)=>new Ye({options:t,typeName:E.ZodUnion,...T(e)});function mt(t,e){const s=ve(t),n=ve(e);if(t===e)return{valid:!0,data:t};if(s===_.object&&n===_.object){const r=O.objectKeys(e),a=O.objectKeys(t).filter(i=>r.indexOf(i)!==-1),o={...t,...e};for(const i of a){const d=mt(t[i],e[i]);if(!d.valid)return{valid:!1};o[i]=d.data}return{valid:!0,data:o}}else if(s===_.array&&n===_.array){if(t.length!==e.length)return{valid:!1};const r=[];for(let a=0;a<t.length;a++){const o=t[a],i=e[a],d=mt(o,i);if(!d.valid)return{valid:!1};r.push(d.data)}return{valid:!0,data:r}}else return s===_.date&&n===_.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}class Xe extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e),r=(a,o)=>{if(Ht(a)||Ht(o))return j;const i=mt(a.value,o.value);return i.valid?((Jt(a)||Jt(o))&&s.dirty(),{status:s.value,value:i.data}):(w(n,{code:x.invalid_intersection_types}),j)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([a,o])=>r(a,o)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}Xe.create=(t,e,s)=>new Xe({left:t,right:e,typeName:E.ZodIntersection,...T(s)});class Ee extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.array)return w(n,{code:x.invalid_type,expected:_.array,received:n.parsedType}),j;if(n.data.length<this._def.items.length)return w(n,{code:x.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),j;!this._def.rest&&n.data.length>this._def.items.length&&(w(n,{code:x.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),s.dirty());const a=[...n.data].map((o,i)=>{const d=this._def.items[i]||this._def.rest;return d?d._parse(new ce(n,o,n.path,i)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>Y.mergeArray(s,o)):Y.mergeArray(s,a)}get items(){return this._def.items}rest(e){return new Ee({...this._def,rest:e})}}Ee.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ee({items:t,typeName:E.ZodTuple,rest:null,...T(e)})};class et extends F{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.object)return w(n,{code:x.invalid_type,expected:_.object,received:n.parsedType}),j;const r=[],a=this._def.keyType,o=this._def.valueType;for(const i in n.data)r.push({key:a._parse(new ce(n,i,n.path,i)),value:o._parse(new ce(n,n.data[i],n.path,i)),alwaysSet:i in n.data});return n.common.async?Y.mergeObjectAsync(s,r):Y.mergeObjectSync(s,r)}get element(){return this._def.valueType}static create(e,s,n){return s instanceof F?new et({keyType:e,valueType:s,typeName:E.ZodRecord,...T(n)}):new et({keyType:pe.create(),valueType:e,typeName:E.ZodRecord,...T(s)})}}class ss extends F{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.map)return w(n,{code:x.invalid_type,expected:_.map,received:n.parsedType}),j;const r=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([i,d],c)=>({key:r._parse(new ce(n,i,n.path,[c,"key"])),value:a._parse(new ce(n,d,n.path,[c,"value"]))}));if(n.common.async){const i=new Map;return Promise.resolve().then(async()=>{for(const d of o){const c=await d.key,u=await d.value;if(c.status==="aborted"||u.status==="aborted")return j;(c.status==="dirty"||u.status==="dirty")&&s.dirty(),i.set(c.value,u.value)}return{status:s.value,value:i}})}else{const i=new Map;for(const d of o){const c=d.key,u=d.value;if(c.status==="aborted"||u.status==="aborted")return j;(c.status==="dirty"||u.status==="dirty")&&s.dirty(),i.set(c.value,u.value)}return{status:s.value,value:i}}}}ss.create=(t,e,s)=>new ss({valueType:e,keyType:t,typeName:E.ZodMap,...T(s)});class We extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.set)return w(n,{code:x.invalid_type,expected:_.set,received:n.parsedType}),j;const r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(w(n,{code:x.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),s.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(w(n,{code:x.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),s.dirty());const a=this._def.valueType;function o(d){const c=new Set;for(const u of d){if(u.status==="aborted")return j;u.status==="dirty"&&s.dirty(),c.add(u.value)}return{status:s.value,value:c}}const i=[...n.data.values()].map((d,c)=>a._parse(new ce(n,d,n.path,c)));return n.common.async?Promise.all(i).then(d=>o(d)):o(i)}min(e,s){return new We({...this._def,minSize:{value:e,message:C.toString(s)}})}max(e,s){return new We({...this._def,maxSize:{value:e,message:C.toString(s)}})}size(e,s){return this.min(e,s).max(e,s)}nonempty(e){return this.min(1,e)}}We.create=(t,e)=>new We({valueType:t,minSize:null,maxSize:null,typeName:E.ZodSet,...T(e)});class ns extends F{get schema(){return this._def.getter()}_parse(e){const{ctx:s}=this._processInputParams(e);return this._def.getter()._parse({data:s.data,path:s.path,parent:s})}}ns.create=(t,e)=>new ns({getter:t,typeName:E.ZodLazy,...T(e)});class pt extends F{_parse(e){if(e.data!==this._def.value){const s=this._getOrReturnCtx(e);return w(s,{received:s.data,code:x.invalid_literal,expected:this._def.value}),j}return{status:"valid",value:e.data}}get value(){return this._def.value}}pt.create=(t,e)=>new pt({value:t,typeName:E.ZodLiteral,...T(e)});function Ns(t,e){return new Ae({values:t,typeName:E.ZodEnum,...T(e)})}class Ae extends F{_parse(e){if(typeof e.data!="string"){const s=this._getOrReturnCtx(e),n=this._def.values;return w(s,{expected:O.joinValues(n),received:s.parsedType,code:x.invalid_type}),j}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const s=this._getOrReturnCtx(e),n=this._def.values;return w(s,{received:s.data,code:x.invalid_enum_value,options:n}),j}return oe(e.data)}get options(){return this._def.values}get enum(){const e={};for(const s of this._def.values)e[s]=s;return e}get Values(){const e={};for(const s of this._def.values)e[s]=s;return e}get Enum(){const e={};for(const s of this._def.values)e[s]=s;return e}extract(e,s=this._def){return Ae.create(e,{...this._def,...s})}exclude(e,s=this._def){return Ae.create(this.options.filter(n=>!e.includes(n)),{...this._def,...s})}}Ae.create=Ns;class rs extends F{_parse(e){const s=O.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==_.string&&n.parsedType!==_.number){const r=O.objectValues(s);return w(n,{expected:O.joinValues(r),received:n.parsedType,code:x.invalid_type}),j}if(this._cache||(this._cache=new Set(O.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=O.objectValues(s);return w(n,{received:n.data,code:x.invalid_enum_value,options:r}),j}return oe(e.data)}get enum(){return this._def.values}}rs.create=(t,e)=>new rs({values:t,typeName:E.ZodNativeEnum,...T(e)});class tt extends F{unwrap(){return this._def.type}_parse(e){const{ctx:s}=this._processInputParams(e);if(s.parsedType!==_.promise&&s.common.async===!1)return w(s,{code:x.invalid_type,expected:_.promise,received:s.parsedType}),j;const n=s.parsedType===_.promise?s.data:Promise.resolve(s.data);return oe(n.then(r=>this._def.type.parseAsync(r,{path:s.path,errorMap:s.common.contextualErrorMap})))}}tt.create=(t,e)=>new tt({type:t,typeName:E.ZodPromise,...T(e)});class Me extends F{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===E.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:s,ctx:n}=this._processInputParams(e),r=this._def.effect||null,a={addIssue:o=>{w(n,o),o.fatal?s.abort():s.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),r.type==="preprocess"){const o=r.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async i=>{if(s.value==="aborted")return j;const d=await this._def.schema._parseAsync({data:i,path:n.path,parent:n});return d.status==="aborted"?j:d.status==="dirty"||s.value==="dirty"?Le(d.value):d});{if(s.value==="aborted")return j;const i=this._def.schema._parseSync({data:o,path:n.path,parent:n});return i.status==="aborted"?j:i.status==="dirty"||s.value==="dirty"?Le(i.value):i}}if(r.type==="refinement"){const o=i=>{const d=r.refinement(i,a);if(n.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return i};if(n.common.async===!1){const i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?j:(i.status==="dirty"&&s.dirty(),o(i.value),{status:s.value,value:i.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>i.status==="aborted"?j:(i.status==="dirty"&&s.dirty(),o(i.value).then(()=>({status:s.value,value:i.value}))))}if(r.type==="transform")if(n.common.async===!1){const o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Ie(o))return j;const i=r.transform(o.value,a);if(i instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:s.value,value:i}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Ie(o)?Promise.resolve(r.transform(o.value,a)).then(i=>({status:s.value,value:i})):j);O.assertNever(r)}}Me.create=(t,e,s)=>new Me({schema:t,typeName:E.ZodEffects,effect:e,...T(s)});Me.createWithPreprocess=(t,e,s)=>new Me({schema:e,effect:{type:"preprocess",transform:t},typeName:E.ZodEffects,...T(s)});class we extends F{_parse(e){return this._getType(e)===_.undefined?oe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}we.create=(t,e)=>new we({innerType:t,typeName:E.ZodOptional,...T(e)});class Fe extends F{_parse(e){return this._getType(e)===_.null?oe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Fe.create=(t,e)=>new Fe({innerType:t,typeName:E.ZodNullable,...T(e)});class xt extends F{_parse(e){const{ctx:s}=this._processInputParams(e);let n=s.data;return s.parsedType===_.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:s.path,parent:s})}removeDefault(){return this._def.innerType}}xt.create=(t,e)=>new xt({innerType:t,typeName:E.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...T(e)});class bt extends F{_parse(e){const{ctx:s}=this._processInputParams(e),n={...s,common:{...s.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Qe(r)?r.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new xe(n.common.issues)},input:n.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new xe(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}bt.create=(t,e)=>new bt({innerType:t,typeName:E.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...T(e)});class as extends F{_parse(e){if(this._getType(e)!==_.nan){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.nan,received:n.parsedType}),j}return{status:"valid",value:e.data}}}as.create=t=>new as({typeName:E.ZodNaN,...T(t)});class Nr extends F{_parse(e){const{ctx:s}=this._processInputParams(e),n=s.data;return this._def.type._parse({data:n,path:s.path,parent:s})}unwrap(){return this._def.type}}class Nt extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?j:a.status==="dirty"?(s.dirty(),Le(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{const r=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return r.status==="aborted"?j:r.status==="dirty"?(s.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:n.path,parent:n})}}static create(e,s){return new Nt({in:e,out:s,typeName:E.ZodPipeline})}}class yt extends F{_parse(e){const s=this._def.innerType._parse(e),n=r=>(Ie(r)&&(r.value=Object.freeze(r.value)),r);return Qe(s)?s.then(r=>n(r)):n(s)}unwrap(){return this._def.innerType}}yt.create=(t,e)=>new yt({innerType:t,typeName:E.ZodReadonly,...T(e)});var E;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(E||(E={}));const M=pe.create,It=Te.create,me=ht.create,vt=gt.create;_e.create;const Tt=de.create,ae=G.create,At=Ye.create;Xe.create;Ee.create;const Mt=et.create,os=pt.create,Be=Ae.create;tt.create;we.create;Fe.create;const Is=Be(["default","autoEdit","yolo","plan","spec"]),Ue={DEFAULT:"default",AUTO_EDIT:"autoEdit",PLAN:"plan",SPEC:"spec"},Ts=Be(["user","assistant","system","tool"]),Ir=At([ae({type:os("text"),text:M()}),ae({type:os("image_url"),image_url:ae({url:M()})})]);ae({id:M(),role:Ts,content:At([M(),Tt(Ir)]),timestamp:It(),metadata:Mt(vt()).optional(),thinkingContent:M().optional(),tool_call_id:M().optional(),name:M().optional(),tool_calls:vt().optional()});ae({sessionId:M(),projectPath:M(),title:M().optional(),gitBranch:M().optional(),messageCount:It(),firstMessageTime:M(),lastMessageTime:M(),hasErrors:me(),filePath:M().optional()});ae({type:M(),properties:Mt(vt())});ae({content:M(),permissionMode:Is.optional(),attachments:Tt(ae({type:Be(["file","image","url"]),path:M().optional(),url:M().optional(),content:M().optional(),mimeType:M().optional(),name:M().optional()})).optional()});ae({messageId:M(),role:Ts,content:M(),timestamp:M()});ae({approved:me(),remember:me().optional(),scope:Be(["once","session"]).optional(),targetMode:Is.optional(),feedback:M().optional(),answers:Mt(At([M(),Tt(M())])).optional()});ae({id:M(),name:M(),provider:M(),model:M(),baseUrl:M().optional(),apiKey:M().optional(),maxContextTokens:It().optional()});Be(["vs-dark","vs-light","hc-black"]);const Tr=Be(["light","dark","system"]),Ar=ae({language:M(),theme:M(),uiTheme:Tr,autoSaveSessions:me(),notifyBuild:me(),notifyErrors:me(),notifySounds:me(),privacyTelemetry:me(),privacyCrash:me()});Ar.partial();const As=Et(t=>({currentModelId:null,currentMode:Ue.DEFAULT,configuredModels:[],availableModels:[],isLoading:!1,error:null,loadModels:async()=>{t({isLoading:!0,error:null});try{const e=await fetch("/models");if(!e.ok)throw new Error("Failed to load models");const s=await e.json(),n=s.current;t({currentModelId:(n==null?void 0:n.id)||null,configuredModels:s.configured||[],availableModels:s.available||[],isLoading:!1})}catch(e){t({error:e.message,isLoading:!1})}},setCurrentModel:async e=>{try{if(!(await fetch("/configs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({updates:{currentModelId:e},options:{scope:"global"}})})).ok)throw new Error("Failed to set model");t({currentModelId:e})}catch(s){t({error:s.message})}},setMode:e=>t({currentMode:e})})),ot="__temp__",kt={inputTokens:0,outputTokens:0,totalTokens:0,maxContextTokens:128e3,isDefaultMaxTokens:!0},Mr=2166136261,Fr=16777619;function wt(t){return t==null?"":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):Array.isArray(t)?`[${t.map(e=>wt(e)).join(",")}]`:typeof t=="object"?`{${Object.entries(t).sort(([s],[n])=>s.localeCompare(n)).map(([s,n])=>`${JSON.stringify(s)}:${wt(n)}`).join(",")}}`:JSON.stringify(t)}function Ms(t){let e=Mr>>>0;for(let s=0;s<t.length;s+=1)e^=t.charCodeAt(s),e=Math.imul(e,Fr);return(e>>>0).toString(16)}function Fs(t){return typeof t=="string"?t:wt(t??{})}function Rr(t){return t==="completed"?"completed":t==="failed"?"failed":"running"}function _t({explicitId:t,messageId:e,toolName:s,argumentsValue:n,toolKind:r,output:a}){if(t)return t;const o=[e||"unknown-message",s||"Unknown",Fs(n),r||"",a||""].join("|");return`tool-${Ms(o)}`}function Ft({explicitId:t,sessionId:e,messageId:s,agentType:n,description:r,summary:a}){if(t)return t;if(e)return e;const o=[s||"unknown-message",n||"subagent",r||"",a||""].join("|");return`subagent-${Ms(o)}`}const Or=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),zr=(t,e)=>{if(!e||typeof e!="object"||!("subtaskRef"in e))return null;const s=e.subtaskRef;return!s||typeof s!="object"?null:{id:Ft({explicitId:typeof s.subagentId=="string"?s.subagentId:void 0,sessionId:s.childSessionId,messageId:t,agentType:s.agentType,description:s.description,summary:s.summary}),type:s.agentType||"subagent",description:s.description||s.summary||"",status:Rr(s.status),startTime:Date.now(),sessionId:s.childSessionId}};function Pe(t){return typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
4
- `)}function Rs(t){var n,r,a;const e=[];let s=null;for(const o of t)if(o.role==="user"||o.role==="system")s&&(e.push(s),s=null),e.push({id:o.id,role:o.role,content:o.content,timestamp:o.timestamp||Date.now(),metadata:o.metadata});else if(o.role==="assistant"){s&&e.push(s);const i=o.metadata,d=Or();if(d.textBefore=Pe(o.content),o.thinkingContent&&(d.thinkingContent=o.thinkingContent),d.subagent=zr(o.id,i),o.tool_calls&&Array.isArray(o.tool_calls))for(const c of o.tool_calls){const u=((n=c.function)==null?void 0:n.name)||"Unknown",g=Fs((r=c.function)==null?void 0:r.arguments),m={toolCallId:_t({explicitId:c.id,messageId:o.id,toolName:u,argumentsValue:(a=c.function)==null?void 0:a.arguments}),toolName:u,arguments:g,status:"running",startTime:Date.now()};d.toolCalls.push(m)}s={id:o.id,role:"assistant",content:Pe(o.content),timestamp:o.timestamp||Date.now(),metadata:i,agentContent:d}}else if(o.role==="tool"&&s&&s.agentContent){const i=o,d=o.metadata,c=i.tool_call_id||(d==null?void 0:d.toolCallId),u=i.name||(d==null?void 0:d.toolName)||"Tool",g=s.agentContent.toolCalls.find(m=>m.toolCallId===c);g?(g.output=Pe(o.content),g.status="success",(!g.toolName||g.toolName==="Unknown")&&(g.toolName=u)):s.agentContent.toolCalls.push({toolCallId:_t({explicitId:c,messageId:s.id,toolName:u,output:Pe(o.content)}),toolName:u,output:Pe(o.content),status:"success",startTime:Date.now()})}return s&&e.push(s),e}const Br=t=>{var s;const e=[];t.content.trim()&&e.push({type:"text",text:t.content});for(const n of t.attachments??[])n.type==="image"&&e.push({type:"image_url",image_url:{url:n.content}});return e.length===0?t.content:e.length===1&&((s=e[0])==null?void 0:s.type)==="text"?e[0].text:e},$r=(t,e)=>({sessions:[],currentSessionId:null,isTemporarySession:!1,isLoading:!1,error:null,setSessions:s=>t({sessions:s}),addSession:s=>t(n=>({sessions:[...n.sessions,s]})),removeSession:s=>t(n=>({sessions:n.sessions.filter(r=>r.sessionId!==s),currentSessionId:n.currentSessionId===s?null:n.currentSessionId,messages:n.currentSessionId===s?[]:n.messages})),setCurrentSession:s=>t({currentSessionId:s,isTemporarySession:!1}),setTemporarySession:s=>t({isTemporarySession:s}),setLoading:s=>t({isLoading:s}),setError:s=>t({error:s}),clearError:()=>t({error:null}),startTemporarySession:()=>t({currentSessionId:ot,isTemporarySession:!0,messages:[],tokenUsage:{...kt},error:null}),loadSessions:async()=>{t({isLoading:!0,error:null});try{const s=await le.listSessions();t({sessions:s,isLoading:!1})}catch(s){t({error:s.message,isLoading:!1})}},selectSession:async s=>{t({isLoading:!0,error:null,currentSessionId:s,isTemporarySession:!1});try{const n=await le.getMessages(s),r=Rs(n);t({messages:r,isLoading:!1,tokenUsage:{...kt}})}catch(n){t({error:n.message,isLoading:!1})}},deleteSession:async s=>{try{await le.deleteSession(s),t(n=>({sessions:n.sessions.filter(r=>r.sessionId!==s),currentSessionId:n.currentSessionId===s?null:n.currentSessionId,messages:n.currentSessionId===s?[]:n.messages}))}catch(n){t({error:n.message})}},sendMessage:async s=>{const{currentSessionId:n,isTemporarySession:r,subscribeToEvents:a,addSession:o,addMessage:i}=e();let d=n;if(r||!n||n===ot)try{const c=await le.createSession();o(c),t({currentSessionId:c.sessionId,isTemporarySession:!1}),d=c.sessionId}catch(c){t({error:c.message});return}if(!d||d===ot){t({error:"Failed to create session"});return}i({id:`temp-${Date.now()}`,role:"user",content:Br(s),timestamp:Date.now()}),t({isStreaming:!0,error:null}),a(d);try{const{currentMode:c}=As.getState(),u=await le.sendMessage(d,s,c);t({currentRunId:u.runId})}catch(c){t({error:c.message,isStreaming:!1})}},abortSession:async()=>{const{currentSessionId:s,unsubscribeFromEvents:n}=e();if(n(),t({isStreaming:!1,currentRunId:null}),s)try{await le.abortSession(s)}catch{}}}),Dr={flushTimeout:80};class Pr{constructor(e){nt(this,"config");nt(this,"channels",new Map);this.config={...Dr,...e}}append(e,s,n){let r=this.channels.get(e);r||(r={buffer:"",timer:null,flushFn:null},this.channels.set(e,r)),r.buffer+=s,r.flushFn=n,r.timer||(r.timer=setTimeout(()=>{this.flushChannel(e)},this.config.flushTimeout))}flushChannel(e){const s=this.channels.get(e);if(!s||!s.buffer)return;const n=s.buffer,r=s.flushFn;s.buffer="",s.timer&&(clearTimeout(s.timer),s.timer=null),r==null||r(n)}drainAll(){for(const[e]of this.channels)this.flushChannel(e);this.channels.clear()}reset(){for(const[,e]of this.channels)e.timer&&clearTimeout(e.timer);this.channels.clear()}}const ke=new Pr,Re=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),Zr=(t,e,s)=>{const{currentAssistantMessageId:n,messages:r,addMessage:a,startAgentResponse:o}=t();if(n&&!n.startsWith("call_"))return n;if(s){const u=r.find(g=>g.id===s&&g.role==="assistant");if(u)return o(u.id),u.id}const i=r[r.length-1];if((i==null?void 0:i.role)==="assistant")return i.id;const d=s||`assistant-${Date.now()}`,c={id:d,role:"assistant",content:"",timestamp:Date.now(),agentContent:Re()};return a(c),o(d),e(u=>({messages:u.messages.map(g=>g.id===d?{...g,agentContent:{...g.agentContent||Re()}}:g)})),d},Lr=(t,e,s)=>{const{currentSessionId:n,addMessage:r,startAgentResponse:a,messages:o,updateMessage:i}=e();if(t.sessionId!==n)return;const d=t.messageId,c=t.role||"assistant",u=o.find(m=>m.id===d),g={id:d,role:c,content:t.content||"",timestamp:Date.now(),agentContent:c==="assistant"?Re():void 0};u?i(d,{role:c,content:g.content,agentContent:c==="assistant"?{...u.agentContent||Re()}:void 0}):r(g),c==="assistant"&&a(d)},Ur=(t,e,s)=>{const{currentSessionId:n,appendDelta:r,currentAssistantMessageId:a,hasToolCalls:o,addMessage:i,startAgentResponse:d}=e();if(t.sessionId!==n)return;const c=t.messageId,u=t.delta;if(!a){const m={id:c,role:"assistant",content:"",timestamp:Date.now(),agentContent:Re()};i(m),d(c),s(f=>({messages:f.messages.map(h=>h.id===c?{...h,agentContent:{...h.agentContent||Re(),textBefore:u}}:h)}));return}r(a,u,o?"after":"before")},Vr=(t,e)=>{const{currentSessionId:s,updateMessage:n,messages:r}=e();if(t.sessionId!==s)return;const a=t.messageId,o=r.find(i=>i.id===a);if(o!=null&&o.agentContent){const{textBefore:i,textAfter:d}=o.agentContent;n(a,{content:i+d})}},qr=(t,e)=>{const{currentSessionId:s,appendThinking:n,currentAssistantMessageId:r}=e();t.sessionId===s&&r&&n(r,t.delta)},Gr=()=>{},Wr=(t,e,s)=>{const{currentSessionId:n,appendToolCall:r,setHasToolCalls:a,setSubagent:o}=e();if(t.sessionId!==n)return;const i=Zr(e,s,t.messageId||t.toolCallId);if(!i)return;a(!0);const d=t.toolName||"Unknown",c=t.arguments;let u,g="",m;if(d==="Task")try{const h=JSON.parse(c);u=h.subagent_type,g=h.description||h.query||u||"",m=h.subagent_session_id}catch{}if(u){o(i,{id:Ft({explicitId:t.toolCallId,sessionId:m,messageId:i,agentType:u,description:g}),type:u,description:g,status:"running",startTime:Date.now(),sessionId:m,output:"",thinking:""});return}const f={toolCallId:_t({explicitId:t.toolCallId,messageId:i,toolName:d,argumentsValue:c,toolKind:t.toolKind}),toolName:d,arguments:c,toolKind:t.toolKind,status:"running",startTime:Date.now()};r(i,f)},Hr=(t,e,s)=>{var b,N,Q,H;const{currentSessionId:n,updateToolCall:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId;if(!o)return;const i=a.find(Z=>{var L;return(L=Z.agentContent)==null?void 0:L.toolCalls.some($=>$.toolCallId===o)});console.log("[handleToolResult]",{toolCallId:o,foundMessage:!!i,messageId:i==null?void 0:i.id,toolCallsInMessage:(b=i==null?void 0:i.agentContent)==null?void 0:b.toolCalls.map(Z=>Z.toolCallId),success:t.success});const d=t.messageId||(i==null?void 0:i.id)||((N=[...a].reverse().find(Z=>Z.role==="assistant"))==null?void 0:N.id);if(!d){console.log("[handleToolResult] No targetMessageId found!");return}const c=t.output,u=t.summary||(c&&c.trim()?c.trim().split(`
5
- `)[0].slice(0,120):t.success?"执行成功":"执行失败");console.log("[handleToolResult] Updating tool call",{targetMessageId:d,toolCallId:o,status:t.success?"success":"error"}),r(d,o,{status:t.success?"success":"error",summary:u,output:c,metadata:t.metadata});const g=a.find(Z=>Z.id===d);((H=(Q=g==null?void 0:g.agentContent)==null?void 0:Q.subagent)==null?void 0:H.id)===o&&s(Z=>({messages:Z.messages.map(L=>{var $;return L.id!==d||!(($=L.agentContent)!=null&&$.subagent)?L:{...L,agentContent:{...L.agentContent,subagent:{...L.agentContent.subagent,status:t.success?"completed":"failed"}}}})}));const m=t.metadata,f=m&&typeof m.subagentSessionId=="string"?m.subagentSessionId:void 0,h=m&&typeof m.subagentStatus=="string"?m.subagentStatus:void 0,v=m&&typeof m.subagentType=="string"?m.subagentType:void 0,k=m&&typeof m.subagentSummary=="string"?m.subagentSummary:void 0;f&&h&&s(Z=>({messages:Z.messages.map(L=>{if(L.id!==d)return L;const $=L.metadata??{},B=$.subtaskRef,X={...B??{},childSessionId:f,agentType:v||(typeof(B==null?void 0:B.agentType)=="string"?B.agentType:"subagent"),status:h,summary:k||(typeof(B==null?void 0:B.summary)=="string"?B.summary:"")};return{...L,metadata:{...$,subtaskRef:X}}})}))},Jr=(t,e)=>{const{currentSessionId:s,updateTokenUsage:n,setMaxContextTokens:r}=e();t.sessionId===s&&(n({inputTokens:t.inputTokens,outputTokens:t.outputTokens,totalTokens:t.totalTokens}),t.maxContextTokens&&r(t.maxContextTokens,!1))},Qr=(t,e)=>{const{currentSessionId:s,setTasks:n,currentAssistantMessageId:r}=e();if(t.sessionId!==s||!r)return;const a=t.tasks||[];n(r,a)},Kr=(t,e)=>{const{currentSessionId:s,setSubagent:n,currentAssistantMessageId:r}=e();if(t.sessionId!==s||!r)return;const a={id:Ft({explicitId:t.subagentId,sessionId:t.subagentSessionId,messageId:r,agentType:t.type,description:t.description}),type:t.type||"unknown",description:t.description||"",status:"running",startTime:Date.now()};n(r,a)},Yr=(t,e,s)=>{var c,u,g;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.subagentSessionId,i=o?(c=a.find(m=>{var f,h;return((h=(f=m.agentContent)==null?void 0:f.subagent)==null?void 0:h.sessionId)===o}))==null?void 0:c.id:r||((u=[...a].reverse().find(m=>{var f;return(f=m.agentContent)==null?void 0:f.subagent}))==null?void 0:u.id);if(!i)return;const d=a.find(m=>m.id===i);(g=d==null?void 0:d.agentContent)!=null&&g.subagent&&s(m=>({messages:m.messages.map(f=>{var h;return f.id!==i||!((h=f.agentContent)!=null&&h.subagent)?f:{...f,agentContent:{...f.agentContent,subagent:{...f.agentContent.subagent,sessionId:f.agentContent.subagent.sessionId||o,currentTool:t.toolName}}}})}))},Xr=(t,e,s)=>{var c,u,g;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.delta;if(!o)return;const i=t.subagentSessionId,d=i?((c=a.find(m=>{var f,h;return((h=(f=m.agentContent)==null?void 0:f.subagent)==null?void 0:h.sessionId)===i}))==null?void 0:c.id)||((u=a.find(m=>{var f,h;return((h=(f=m.agentContent)==null?void 0:f.subagent)==null?void 0:h.status)==="running"}))==null?void 0:u.id):r||((g=[...a].reverse().find(m=>{var f;return(f=m.agentContent)==null?void 0:f.subagent}))==null?void 0:g.id);d&&s(m=>({messages:m.messages.map(f=>{var h;return f.id!==d||!((h=f.agentContent)!=null&&h.subagent)?f:{...f,agentContent:{...f.agentContent,subagent:{...f.agentContent.subagent,sessionId:f.agentContent.subagent.sessionId||i,output:(f.agentContent.subagent.output||"")+o}}}})}))},ea=(t,e,s)=>{var c,u,g;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.delta;if(!o)return;const i=t.subagentSessionId,d=i?((c=a.find(m=>{var f,h;return((h=(f=m.agentContent)==null?void 0:f.subagent)==null?void 0:h.sessionId)===i}))==null?void 0:c.id)||((u=a.find(m=>{var f,h;return((h=(f=m.agentContent)==null?void 0:f.subagent)==null?void 0:h.status)==="running"}))==null?void 0:u.id):r||((g=[...a].reverse().find(m=>{var f;return(f=m.agentContent)==null?void 0:f.subagent}))==null?void 0:g.id);d&&s(m=>({messages:m.messages.map(f=>{var h;return f.id!==d||!((h=f.agentContent)!=null&&h.subagent)?f:{...f,agentContent:{...f.agentContent,subagent:{...f.agentContent.subagent,sessionId:f.agentContent.subagent.sessionId||i,thinking:(f.agentContent.subagent.thinking||"")+o}}}})}))},ta=(t,e,s)=>{var c,u,g,m;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.subagentSessionId,i=o?((c=a.find(f=>{var h,v;return((v=(h=f.agentContent)==null?void 0:h.subagent)==null?void 0:v.sessionId)===o}))==null?void 0:c.id)||((u=a.find(f=>{var h,v;return((v=(h=f.agentContent)==null?void 0:h.subagent)==null?void 0:v.status)==="running"}))==null?void 0:u.id):r||((g=[...a].reverse().find(f=>{var h;return(h=f.agentContent)==null?void 0:h.subagent}))==null?void 0:g.id);if(!i)return;const d=a.find(f=>f.id===i);(m=d==null?void 0:d.agentContent)!=null&&m.subagent&&s(f=>({messages:f.messages.map(h=>{var v;return h.id!==i||!((v=h.agentContent)!=null&&v.subagent)?h:{...h,agentContent:{...h.agentContent,subagent:{...h.agentContent.subagent,sessionId:h.agentContent.subagent.sessionId||o,status:t.success?"completed":"failed"}}}})}))},sa=(t,e,s)=>{var g,m,f;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId,i=t.toolName;if(!o||!i)return;const d=t.subagentSessionId,c=d?((g=a.find(h=>{var v,k;return((k=(v=h.agentContent)==null?void 0:v.subagent)==null?void 0:k.sessionId)===d}))==null?void 0:g.id)||((m=a.find(h=>{var v,k;return((k=(v=h.agentContent)==null?void 0:v.subagent)==null?void 0:k.status)==="running"}))==null?void 0:m.id):r||((f=[...a].reverse().find(h=>{var v;return(v=h.agentContent)==null?void 0:v.subagent}))==null?void 0:f.id);if(!c)return;const u={toolCallId:o,toolName:i,arguments:t.arguments,toolKind:t.toolKind,status:"running",startTime:Date.now()};s(h=>({messages:h.messages.map(v=>{var b;if(v.id!==c||!((b=v.agentContent)!=null&&b.subagent))return v;const k=v.agentContent.subagent.toolCalls||[];return k.some(N=>N.toolCallId===o)?v:{...v,agentContent:{...v.agentContent,subagent:{...v.agentContent.subagent,sessionId:v.agentContent.subagent.sessionId||d,toolCalls:[...k,u]}}}})}))},na=(t,e,s)=>{var f,h,v;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId;if(!o)return;const i=t.subagentSessionId,d=i?((f=a.find(k=>{var b,N;return((N=(b=k.agentContent)==null?void 0:b.subagent)==null?void 0:N.sessionId)===i}))==null?void 0:f.id)||((h=a.find(k=>{var b,N;return((N=(b=k.agentContent)==null?void 0:b.subagent)==null?void 0:N.status)==="running"}))==null?void 0:h.id):r||((v=[...a].reverse().find(k=>{var b;return(b=k.agentContent)==null?void 0:b.subagent}))==null?void 0:v.id);if(!d)return;const c=t.output,u=t.success===!0,g=u?"success":"error",m=t.summary||(c&&c.trim()?c.trim().split(`
6
- `)[0].slice(0,120):u?"执行成功":"执行失败");s(k=>({messages:k.messages.map(b=>{var H;if(b.id!==d||!((H=b.agentContent)!=null&&H.subagent))return b;const Q=(b.agentContent.subagent.toolCalls||[]).map(Z=>Z.toolCallId===o?{...Z,status:g,summary:m,output:c,metadata:t.metadata}:Z);return{...b,agentContent:{...b.agentContent,subagent:{...b.agentContent.subagent,sessionId:b.agentContent.subagent.sessionId||i,toolCalls:Q}}}})}))},ra=(t,e,s)=>{const{currentSessionId:n,setConfirmation:r,messages:a}=e();if(t.sessionId!==n)return;const o=[...a].reverse().find(c=>c.role==="assistant");if(!o)return;const i=t.details,d=t.toolName||(i==null?void 0:i.toolName)||"Edit";r(o.id,{toolCallId:t.requestId||"",toolName:d,description:t.description,diff:(i==null?void 0:i.details)||(i==null?void 0:i.diff)||"",status:"pending"})},aa=(t,e)=>{const{currentSessionId:s,setQuestion:n,currentAssistantMessageId:r}=e();t.sessionId===s&&r&&n(r,{toolCallId:t.toolCallId,questions:t.questions,status:"pending"})},oa=(t,e)=>{const{currentSessionId:s,endAgentResponse:n}=e();t.sessionId===s&&n()},ia=(t,e,s)=>{const{currentSessionId:n,endAgentResponse:r}=e();t.sessionId===n&&(s({error:t.error||"An error occurred"}),r())},la=(t,e,s)=>{const{currentSessionId:n}=e();t.sessionId===n&&t.status==="idle"&&s({isStreaming:!1})},da=(t,e,s)=>{const{currentSessionId:n,endAgentResponse:r}=e();t.sessionId===n&&(s(a=>({isStreaming:!1,messages:a.messages.map(o=>{var i;return!((i=o.agentContent)!=null&&i.subagent)||o.agentContent.subagent.status!=="running"?o:{...o,agentContent:{...o.agentContent,subagent:{...o.agentContent.subagent,status:"failed"}}}})})),r())},it={"message.created":Lr,"message.delta":Ur,"message.complete":Vr,"thinking.delta":qr,"thinking.completed":Gr,"tool.start":Wr,"tool.result":Hr,"token.usage":Jr,"task.updated":Qr,"subagent.start":Kr,"subagent.update":Yr,"subagent.delta":Xr,"subagent.thinking.delta":ea,"subagent.tool.start":sa,"subagent.tool.result":na,"subagent.complete":ta,"permission.asked":ra,"question.required":aa,"session.completed":oa,"session.error":ia,"session.status":la,"run.cancelled":da},ca=new Set(["message.delta","thinking.delta","subagent.delta","subagent.thinking.delta"]),ua=new Set(["message.complete","thinking.completed","session.completed","session.error","run.cancelled"]),He=(t,e,s)=>{var n,r,a;return s?((n=t.find(o=>{var i,d;return((d=(i=o.agentContent)==null?void 0:i.subagent)==null?void 0:d.sessionId)===s}))==null?void 0:n.id)||((r=t.find(o=>{var i,d;return((d=(i=o.agentContent)==null?void 0:i.subagent)==null?void 0:d.status)==="running"}))==null?void 0:r.id):e||((a=[...t].reverse().find(o=>{var i;return(i=o.agentContent)==null?void 0:i.subagent}))==null?void 0:a.id)},is=(t,e)=>s=>{if(ca.has(s.type)||console.log("[SSE Event]",s.type,s.properties),ua.has(s.type)){ke.drainAll();const r=it[s.type];r&&r(s.properties,t,e);return}if(s.type==="message.delta"){const r=s.properties,{currentSessionId:a,currentAssistantMessageId:o,hasToolCalls:i}=t();if(r.sessionId!==a)return;const d=r.messageId||o,c=r.delta;if(!o){const m=it["message.delta"];m&&m(r,t,e);return}const u=i?"after":"before",g=`content:${d}:${u}`;ke.append(g,c,m=>{const{appendDelta:f}=t();d&&f(d,m,u)});return}if(s.type==="thinking.delta"){const r=s.properties,{currentSessionId:a,currentAssistantMessageId:o}=t();if(r.sessionId!==a||!o)return;const i=r.delta,d=o,c=`thinking:${d}`;ke.append(c,i,u=>{const{appendThinking:g}=t();d&&g(d,u)});return}if(s.type==="subagent.delta"){const r=s.properties,{currentSessionId:a}=t();if(r.sessionId!==a)return;const o=r.delta;if(!o)return;const i=r.subagentSessionId||"",d=`subagent:${i}`,{currentAssistantMessageId:c,messages:u}=t(),g=He(u,c,i);ke.append(d,o,m=>{const{currentAssistantMessageId:f,messages:h}=t(),v=g||He(h,f,i);v&&e(k=>({messages:k.messages.map(b=>{var N;return b.id!==v||!((N=b.agentContent)!=null&&N.subagent)?b:{...b,agentContent:{...b.agentContent,subagent:{...b.agentContent.subagent,sessionId:b.agentContent.subagent.sessionId||i,output:(b.agentContent.subagent.output||"")+m}}}})}))});return}if(s.type==="subagent.thinking.delta"){const r=s.properties,{currentSessionId:a}=t();if(r.sessionId!==a)return;const o=r.delta;if(!o)return;const i=r.subagentSessionId||"",d=`subagent-thinking:${i}`,{currentAssistantMessageId:c,messages:u}=t(),g=He(u,c,i);ke.append(d,o,m=>{const{currentAssistantMessageId:f,messages:h}=t(),v=g||He(h,f,i);v&&e(k=>({messages:k.messages.map(b=>{var N;return b.id!==v||!((N=b.agentContent)!=null&&N.subagent)?b:{...b,agentContent:{...b.agentContent,subagent:{...b.agentContent.subagent,sessionId:b.agentContent.subagent.sessionId||i,thinking:(b.agentContent.subagent.thinking||"")+m}}}})}))});return}const n=it[s.type];n&&n(s.properties,t,e)},fa=(t,e)=>({isStreaming:!1,currentRunId:null,eventUnsubscribe:null,currentAssistantMessageId:null,hasToolCalls:!1,setStreaming:s=>t({isStreaming:s}),setRunId:s=>t({currentRunId:s}),setCurrentAssistantMessageId:s=>t({currentAssistantMessageId:s}),setHasToolCalls:s=>t({hasToolCalls:s}),startAgentResponse:s=>{t({currentAssistantMessageId:s,hasToolCalls:!1,isStreaming:!0})},endAgentResponse:()=>{ke.drainAll(),t({currentAssistantMessageId:null,hasToolCalls:!1,isStreaming:!1,currentRunId:null})},subscribeToEvents:s=>{const{eventUnsubscribe:n}=e();n&&n(),ke.reset();const r=is(e,t),a=le.subscribeEvents(s,r);t({eventUnsubscribe:a})},unsubscribeFromEvents:()=>{const{eventUnsubscribe:s}=e();s&&(ke.drainAll(),s(),t({eventUnsubscribe:null}))},handleEvent:s=>{is(e,t)(s)}}),ha=t=>({tokenUsage:kt,updateTokenUsage:e=>t(s=>({tokenUsage:{...s.tokenUsage,...e}})),setMaxContextTokens:(e,s=!1)=>t(n=>({tokenUsage:{...n.tokenUsage,maxContextTokens:e,isDefaultMaxTokens:s}}))}),Ce=Et()((...t)=>({...$r(...t),...sr(...t),...fa(...t),...ha(...t)})),Rt=p.forwardRef(({className:t,children:e,...s},n)=>l.jsxs(gs,{ref:n,className:D("relative overflow-hidden",t),...s,children:[l.jsx(Hs,{className:"h-full w-full rounded-[inherit] [&>div]:!block !overflow-auto",children:e}),l.jsx(Os,{}),l.jsx(Js,{})]}));Rt.displayName=gs.displayName;const Os=p.forwardRef(({className:t,orientation:e="vertical",...s},n)=>l.jsx(ms,{ref:n,orientation:e,className:D("flex touch-none select-none transition-colors",e==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",e==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",t),...s,children:l.jsx(Qs,{className:"relative flex-1 rounded-full bg-border"})}));Os.displayName=ms.displayName;function ga({className:t}){const{toggleSettings:e,toggleSidebar:s,isSidebarOpen:n,isTerminalOpen:r,toggleTerminal:a,toggleMcp:o,toggleSkills:i}=jt(),{sessions:d,currentSessionId:c,selectSession:u,startTemporarySession:g,deleteSession:m,loadSessions:f}=Ce(),[h,v]=p.useState(null),[k,b]=p.useState(""),[N,Q]=p.useState(null),Z=(()=>{const S=new Date;S.setHours(0,0,0,0);const U=new Date(S);U.setDate(U.getDate()-1);const z=[],K=new Map;for(const V of d)V&&!K.has(V.sessionId)&&K.set(V.sessionId,V);const J=Array.from(K.values()),ee=V=>{const fe=(V==null?void 0:V.lastMessageTime)||(V==null?void 0:V.firstMessageTime)||0;return new Date(fe)},q=(V,fe)=>ee(fe).getTime()-ee(V).getTime(),te=J.filter(V=>ee(V)>=S).sort(q),ue=J.filter(V=>{const fe=ee(V);return fe>=U&&fe<S}).sort(q),se=J.filter(V=>ee(V)<U).sort(q);return te.length>0&&z.push({label:"TODAY",sessions:te}),ue.length>0&&z.push({label:"YESTERDAY",sessions:ue}),se.length>0&&z.push({label:"OLDER",sessions:se}),z})(),L=S=>{if(S.title)return S.title;const U=S.firstMessageTime||S.lastMessageTime;if(U){const z=new Date(U);if(!Number.isNaN(z.getTime())){const K=String(z.getFullYear()).slice(-2),J=String(z.getMonth()+1).padStart(2,"0"),ee=String(z.getDate()).padStart(2,"0"),q=String(z.getHours()).padStart(2,"0"),te=String(z.getMinutes()).padStart(2,"0");return`Session ${K}-${J}-${ee} ${q}:${te}`}}return`Session ${S.sessionId.slice(0,6)}`},$=()=>{g()},B=async(S,U)=>{S.stopPropagation(),await m(U)},X=(S,U)=>{S.stopPropagation(),v(U.sessionId),b(L(U))},ne=async S=>{if(!k.trim()){v(null);return}try{await fetch(`/sessions/${S}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:k.trim()})}),v(null),await f()}catch(U){console.error("Failed to rename session:",U)}},ie=()=>{v(null),b("")};return n?l.jsxs("div",{className:D("h-screen flex flex-col bg-[#F9FAFB] dark:bg-[#09090b] w-[260px]",t),children:[l.jsxs("div",{className:"p-6 flex flex-col gap-8",children:[l.jsxs("div",{className:"flex items-center justify-between",children:[l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#16A34A] dark:bg-[#22C55E] flex items-center justify-center",children:l.jsx("div",{className:"w-2 h-2 bg-black rounded-full"})}),l.jsx("span",{className:"font-semibold text-base text-[#111827] dark:text-[#E5E5E5]",children:"Blade"})]}),l.jsx("button",{onClick:s,className:"h-6 w-6 rounded bg-[#F3F4F6] text-[#6B7280] hover:text-[#111827] dark:bg-[#18181b] dark:text-[#71717a] dark:hover:text-[#E5E5E5] flex items-center justify-center transition-colors",children:l.jsx(nn,{className:"h-3 w-3"})})]}),l.jsxs("div",{className:"flex flex-col gap-2",children:[l.jsxs("button",{onClick:$,className:"w-full h-10 rounded-md bg-[#16A34A] hover:bg-[#15803D] dark:bg-[#22C55E] dark:hover:bg-[#16A34A] text-white font-semibold text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx(zt,{className:"h-4 w-4 stroke-[3]"}),"New Chat"]}),l.jsxs("button",{onClick:a,className:D("w-full h-10 rounded-md font-medium text-sm font-mono flex items-center gap-3 px-3 transition-colors",r?"bg-[#F3F4F6] text-[#111827] dark:bg-[#18181b] dark:text-[#E5E5E5]":"bg-[#F3F4F6] text-[#16A34A] hover:bg-[#E5E7EB] dark:bg-[#18181b] dark:text-[#22C55E] dark:hover:bg-[#27272a]"),children:[l.jsx(Bt,{className:D("h-4 w-4",r?"text-[#16A34A] dark:text-[#22C55E]":"")}),"Terminal"]})]})]}),l.jsx(Rt,{className:"flex-1 px-0",children:l.jsxs("div",{className:"flex flex-col",children:[Z.map((S,U)=>l.jsxs("div",{children:[l.jsx("div",{className:D("px-3 pb-2 text-[11px] text-[#6B7280] dark:text-[#52525b] font-mono",U===0?"pt-3":"pt-4"),children:S.label}),S.sessions.map(z=>{const K=z.sessionId===c,J=h===z.sessionId,ee=N===z.sessionId;return J?l.jsxs("div",{className:"w-full h-[34px] flex items-center gap-2 px-3 bg-[#F3F4F6] dark:bg-[#27272a]",children:[l.jsx("input",{type:"text",value:k,onChange:q=>b(q.target.value),onKeyDown:q=>{q.key==="Enter"&&ne(z.sessionId),q.key==="Escape"&&ie()},autoFocus:!0,className:"flex-1 bg-white dark:bg-[#18181b] text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono px-2 py-1 rounded outline-none focus:ring-1 focus:ring-[#22C55E]"}),l.jsx("button",{onClick:()=>ne(z.sessionId),className:"p-1 text-[#22C55E] hover:bg-[#E5E7EB] dark:hover:bg-[#18181b] rounded",children:l.jsx(rn,{className:"h-3 w-3"})}),l.jsx("button",{onClick:ie,className:"p-1 text-[#9CA3AF] dark:text-[#71717a] hover:bg-[#E5E7EB] dark:hover:bg-[#18181b] rounded",children:l.jsx(an,{className:"h-3 w-3"})})]},z.sessionId):l.jsxs("div",{onMouseEnter:()=>Q(z.sessionId),onMouseLeave:()=>Q(null),className:D("w-full h-[34px] flex items-center gap-2 px-3 transition-colors group cursor-pointer",K?"bg-[#E5E7EB] dark:bg-[#27272a]":"hover:bg-[#F3F4F6] dark:hover:bg-[#18181b]"),onClick:()=>u(z.sessionId),children:[l.jsx("div",{className:D("w-1.5 h-1.5 rounded-full shrink-0",K?"bg-[#16A34A] dark:bg-[#22C55E] shadow-[0_0_4px_rgba(34,197,94,0.4)]":"border border-[#D1D5DB] dark:border-[#52525b]")}),l.jsx("span",{className:D("text-[13px] font-mono truncate text-left flex-1",K?"text-[#111827] dark:text-[#E5E5E5]":"text-[#6B7280] dark:text-[#a1a1aa]"),children:L(z)}),ee&&l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx("button",{onClick:q=>X(q,z),className:"p-1 text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] rounded transition-colors",children:l.jsx(on,{className:"h-3 w-3"})}),l.jsx("button",{onClick:q=>B(q,z.sessionId),className:"p-1 text-[#9CA3AF] hover:text-red-500 hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-red-400 dark:hover:bg-[#27272a] rounded transition-colors",children:l.jsx(ln,{className:"h-3 w-3"})})]})]},z.sessionId)})]},S.label)),d.length===0&&l.jsx("div",{className:"px-3 py-8 text-center text-[13px] text-[#6B7280] dark:text-[#52525b] font-mono",children:"No chat history"})]})}),l.jsxs("div",{className:"p-6 flex flex-col gap-4",children:[l.jsxs("div",{className:"border-t border-[#E5E7EB] dark:border-[#1f2937] pt-4 flex flex-col gap-2",children:[l.jsxs("button",{onClick:i,className:"w-full h-10 rounded-md text-[#6B7280] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] font-normal text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx($t,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"Skills"]}),l.jsxs("button",{onClick:o,className:"w-full h-10 rounded-md text-[#6B7280] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] font-normal text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx(Dt,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"MCP"]}),l.jsxs("button",{onClick:e,className:"w-full h-10 rounded-md text-[#6B7280] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] font-normal text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx(Pt,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"Settings"]})]}),l.jsxs("div",{className:"flex items-center gap-3 pt-4 border-t border-[#E5E7EB] dark:border-[#27272a]",children:[l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#E5E7EB] dark:bg-[#27272a] flex items-center justify-center",children:l.jsx("div",{className:"w-2 h-2 bg-[#111827] dark:bg-[#E5E5E5] rounded-full"})}),l.jsxs("div",{className:"flex flex-col gap-0.5",children:[l.jsx("span",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:"User"}),l.jsx("span",{className:"text-[11px] text-[#16A34A] dark:text-[#22C55E] font-mono",children:"Connected"})]})]})]})]}):l.jsxs("div",{className:D("h-screen flex flex-col bg-[#F9FAFB] dark:bg-[#09090b] items-center py-6 gap-2 w-[64px]",t),children:[l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#16A34A] dark:bg-[#22C55E] flex items-center justify-center cursor-pointer",onClick:s,children:l.jsx("div",{className:"w-2 h-2 bg-black rounded-full"})}),l.jsx("button",{onClick:$,className:"mt-6 h-10 w-10 rounded-md bg-[#16A34A] hover:bg-[#15803D] dark:bg-[#22C55E] dark:hover:bg-[#16A34A] text-white flex items-center justify-center transition-colors",children:l.jsx(zt,{className:"h-4 w-4 stroke-[3]"})}),l.jsx("button",{onClick:a,className:D("h-10 w-10 rounded-md flex items-center justify-center transition-colors",r?"bg-[#F3F4F6] text-[#111827] dark:bg-[#18181b] dark:text-[#E5E5E5]":"bg-[#F3F4F6] text-[#16A34A] hover:bg-[#E5E7EB] dark:bg-[#18181b] dark:text-[#22C55E] dark:hover:bg-[#27272a]"),children:l.jsx(Bt,{className:D("h-4 w-4",r?"text-[#16A34A] dark:text-[#22C55E]":"")})}),l.jsx("div",{className:"flex-1"}),l.jsx("div",{className:"w-8 h-px bg-[#E5E7EB] dark:bg-[#1f2937] my-2"}),l.jsx("button",{onClick:i,className:"h-10 w-10 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] flex items-center justify-center transition-colors",children:l.jsx($t,{className:"h-4 w-4"})}),l.jsx("button",{onClick:o,className:"h-10 w-10 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] flex items-center justify-center transition-colors",children:l.jsx(Dt,{className:"h-4 w-4"})}),l.jsx("button",{onClick:e,className:"h-10 w-10 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] flex items-center justify-center transition-colors",children:l.jsx(Pt,{className:"h-4 w-4"})}),l.jsx("div",{className:"mt-4",children:l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#E5E7EB] dark:bg-[#27272a] flex items-center justify-center",children:l.jsx("div",{className:"w-2 h-2 bg-[#111827] dark:bg-[#E5E5E5] rounded-full"})})})]})}const ma=p.lazy(()=>Oe(()=>import("./SettingsModal-D-mi6mUR.js"),[]).then(t=>({default:t.SettingsModal}))),pa=p.lazy(()=>Oe(()=>import("./FilePreview-R1mRzyRz.js"),[]).then(t=>({default:t.FilePreview}))),xa=p.lazy(()=>Oe(()=>import("./TerminalPanel-DG_Q4UKr.js"),__vite__mapDeps([0])).then(t=>({default:t.TerminalPanel}))),ba=p.lazy(()=>Oe(()=>import("./McpModal-QRv5Ij61.js"),[]).then(t=>({default:t.McpModal}))),ya=p.lazy(()=>Oe(()=>import("./SkillsModal-DNXjbjEs.js"),[]).then(t=>({default:t.SkillsModal}))),va=t=>{if(t.startsWith("/Users/")){const e=t.split("/");if(e.length>=3)return"~/"+e.slice(3).join("/")}return t};function ka({children:t}){const{isSidebarOpen:e,isFilePreviewOpen:s,isSettingsOpen:n,isMcpOpen:r,isSkillsOpen:a,isTerminalOpen:o,toggleFilePreview:i}=jt(),{currentSessionId:d,sessions:c}=Ce(),[u,g]=p.useState(null),m=p.useMemo(()=>{if(!d)return"No session";const f=c.find(h=>h.sessionId===d);return f!=null&&f.projectPath?va(f.projectPath):"New session"},[d,c]);return p.useEffect(()=>{(async()=>{try{const h=await le.getGitInfo();g(h.branch)}catch{g(null)}})()},[d]),l.jsxs("div",{className:"flex h-screen overflow-hidden",children:[l.jsx("div",{className:D("transition-all duration-300 ease-in-out",e?"w-[260px]":"w-[64px]","overflow-hidden"),children:l.jsx("div",{className:D("transition-all duration-300 ease-in-out",e?"w-[260px]":"w-[64px]"),children:l.jsx(ga,{})})}),l.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[l.jsxs("header",{className:"h-16 border-b border-[#E5E7EB] dark:border-zinc-800 flex items-center px-8 gap-4 bg-white dark:bg-[#09090b] z-10",children:[l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("span",{className:"font-normal text-sm text-[#6B7280] dark:text-zinc-500 font-mono truncate max-w-md",title:m,children:m}),u&&l.jsxs("span",{className:"flex items-center gap-1 text-xs text-[#6B7280] dark:text-zinc-300 bg-[#F3F4F6] dark:bg-zinc-800/50 px-2 py-0.5 rounded",children:[l.jsx(dn,{className:"h-3 w-3"}),u]})]}),l.jsx("div",{className:"ml-auto",children:l.jsx(Ve,{variant:"ghost",size:"icon",onClick:i,className:D(s&&"bg-accent","text-[#9CA3AF] hover:text-[#111827] dark:text-zinc-500 dark:hover:text-zinc-300"),children:l.jsx(cn,{className:"h-4 w-4"})})})]}),l.jsxs("main",{className:"flex-1 overflow-hidden relative flex",children:[l.jsx("div",{className:"flex-1 flex flex-col min-w-0 relative",children:t}),s&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(pa,{})})]})]}),n&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(ma,{})}),r&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(ba,{})}),a&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(ya,{})}),o&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(xa,{})})]})}const ls=Ys,ds=Xs,Ct=p.forwardRef(({className:t,align:e="center",sideOffset:s=4,...n},r)=>l.jsx(Ks,{children:l.jsx(ps,{ref:r,align:e,sideOffset:s,className:D("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]",t),...n})}));Ct.displayName=ps.displayName;const zs=p.forwardRef(({className:t,...e},s)=>l.jsx("textarea",{className:D("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:s,...e}));zs.displayName="Textarea";const wa=(t,e)=>{const s=[...t.matchAll(/(?:^|\s)(@(?:"[^"]*"|(?:[^\\ ]|\\ )*))/g)];for(const n of s){const r=n[1],a=n.index+(n[0].length-r.length),o=a+r.length;if(e>=a&&e<=o){let i=r.slice(1),d=!1;return i.startsWith('"')&&(d=!0,i=i.slice(1),i.endsWith('"')&&(i=i.slice(0,-1))),{hasQuery:!0,query:i,startIndex:a,endIndex:o,quoted:d}}}return{hasQuery:!1,query:"",startIndex:-1,endIndex:-1,quoted:!1}},_a=(t,e,s={})=>{const{debounceDelay:n=200,maxSuggestions:r=15}=s,[a,o]=p.useState([]),[i,d]=p.useState(0),[c,u]=p.useState(!1),g=p.useMemo(()=>e===void 0?{hasQuery:!1,query:"",startIndex:-1,endIndex:-1,quoted:!1}:wa(t,e),[t,e]);p.useEffect(()=>{if(!g.hasQuery){o([]),u(!1);return}let h=!1;u(!0);const k=setTimeout(async()=>{try{const b=await fetch(`/suggestions/files?q=${encodeURIComponent(g.query)}&limit=${r}`);if(!b.ok)throw new Error("Failed to fetch suggestions");const N=await b.json();h||o(N)}catch(b){console.error("Failed to fetch file suggestions:",b),h||o([])}finally{h||u(!1)}},n);return()=>{h=!0,clearTimeout(k)}},[g.hasQuery,g.query,n,r]),p.useEffect(()=>{d(0)},[a]);const m=p.useCallback(()=>{d(h=>(h+1)%Math.max(a.length,1))},[a.length]),f=p.useCallback(()=>{d(h=>(h-1+a.length)%Math.max(a.length,1))},[a.length]);return{...g,suggestions:a,selectedIndex:i,loading:c,setSelectedIndex:d,selectNext:m,selectPrevious:f}},Ca=(t,e=!1)=>t.includes(" ")||e?`@"${t}"`:`@${t}`,Sa=(t,e,s)=>{if(!e.hasQuery)return{newInput:t,newCursorPos:t.length};const n=Ca(s,e.quoted),r=t.slice(0,e.startIndex),a=t.slice(e.endIndex),o=r+n+" "+a,i=e.startIndex+n.length+1;return{newInput:o,newCursorPos:i}};function Ea(){const[t,e]=p.useState([]),[s,n]=p.useState(-1),r=p.useRef(""),a=p.useCallback(c=>{c.trim()&&(e(u=>u[u.length-1]===c?u:[...u,c]),n(-1),r.current="")},[]),o=p.useCallback(c=>{if(t.length===0)return null;s===-1&&(r.current=c);const u=s===-1?t.length-1:Math.max(0,s-1);return n(u),t[u]??null},[t,s]),i=p.useCallback(()=>{if(s===-1)return null;const c=s+1;return c>=t.length?(n(-1),r.current):(n(c),t[c]??null)},[t,s]),d=p.useCallback(()=>{n(-1),r.current=""},[]);return{addToHistory:a,getPrevious:o,getNext:i,reset:d,historyIndex:s}}const ja=(t,e)=>{if(!t.startsWith("/"))return{hasQuery:!1,query:"",startIndex:-1,endIndex:-1};const s=t.indexOf(" "),n=s===-1?t.length:s;return e<=n?{hasQuery:!0,query:t.slice(1,e),startIndex:0,endIndex:e}:{hasQuery:!1,query:"",startIndex:-1,endIndex:-1}},Na=(t,e,s={})=>{const{debounceDelay:n=150}=s,[r,a]=p.useState([]),[o,i]=p.useState(0),[d,c]=p.useState(!1),u=p.useMemo(()=>e===void 0?{hasQuery:!1,query:"",startIndex:-1,endIndex:-1}:ja(t,e),[t,e]);p.useEffect(()=>{if(!u.hasQuery){a([]),c(!1);return}let f=!1;c(!0);const v=setTimeout(async()=>{try{const k=await fetch(`/suggestions/commands?q=${encodeURIComponent(u.query)}`);if(!k.ok)throw new Error("Failed to fetch suggestions");const b=await k.json();f||a(b)}catch(k){console.error("Failed to fetch command suggestions:",k),f||a([])}finally{f||c(!1)}},n);return()=>{f=!0,clearTimeout(v)}},[u.hasQuery,u.query,n]),p.useEffect(()=>{i(0)},[r]);const g=p.useCallback(()=>{i(f=>(f+1)%Math.max(r.length,1))},[r.length]),m=p.useCallback(()=>{i(f=>(f-1+r.length)%Math.max(r.length,1))},[r.length]);return{...u,suggestions:r,selectedIndex:o,loading:d,setSelectedIndex:i,selectNext:g,selectPrevious:m}},Ia=(t,e,s)=>{if(!e.hasQuery)return{newInput:t,newCursorPos:t.length};const n=t.slice(e.endIndex),r=s.command+" "+n.trimStart(),a=s.command.length+1;return{newInput:r,newCursorPos:a}},Ta=t=>typeof t=="object"&&"command"in t,cs=({type:t,suggestions:e,selectedIndex:s,loading:n,onSelect:r,onHover:a,visible:o})=>{const i=p.useRef(null),d=p.useRef(null);if(p.useEffect(()=>{if(d.current&&i.current){const u=i.current,g=d.current,m=u.getBoundingClientRect(),f=g.getBoundingClientRect();f.bottom>m.bottom?u.scrollTop+=f.bottom-m.bottom+4:f.top<m.top&&(u.scrollTop-=m.top-f.top+4)}},[s]),!o||e.length===0&&!n)return null;const c=t==="command"?un:ct;return l.jsx("div",{className:"absolute bottom-full left-0 right-0 mb-2 z-50",children:l.jsxs("div",{className:"mx-4 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700 rounded-lg shadow-xl overflow-hidden",children:[l.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[#E5E7EB] dark:border-zinc-800 text-xs text-[#6B7280] dark:text-zinc-400",children:[l.jsx(c,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:t==="command"?"Commands":"Files"}),n&&l.jsx(Je,{className:"h-3 w-3 animate-spin ml-auto"})]}),l.jsx("div",{ref:i,className:"max-h-64 overflow-y-auto py-1",children:e.length===0&&n?l.jsx("div",{className:"px-3 py-4 text-center text-[#6B7280] dark:text-zinc-500 text-sm",children:"Loading..."}):e.length===0?l.jsx("div",{className:"px-3 py-4 text-center text-[#6B7280] dark:text-zinc-500 text-sm",children:"No matches found"}):e.map((u,g)=>{const m=g===s,f=Ta(u);return l.jsx("button",{ref:m?d:null,className:D("w-full text-left px-3 py-2 flex items-start gap-3 transition-colors",m?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] hover:bg-[#F3F4F6] hover:text-[#111827] dark:text-zinc-400 dark:hover:bg-zinc-800/50 dark:hover:text-zinc-300"),onClick:()=>r(g),onMouseEnter:()=>a(g),children:f?l.jsx(l.Fragment,{children:l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"font-mono text-sm text-blue-600 dark:text-blue-400",children:u.command}),u.argumentHint&&l.jsx("span",{className:"text-xs text-[#9CA3AF] dark:text-zinc-500 font-mono",children:u.argumentHint})]}),l.jsx("p",{className:"text-xs text-[#9CA3AF] dark:text-zinc-500 mt-0.5 truncate",children:u.description})]})}):l.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[l.jsx(ct,{className:"h-4 w-4 flex-shrink-0 text-[#9CA3AF] dark:text-zinc-500"}),l.jsx("span",{className:"font-mono text-sm truncate",children:u})]})},f?u.command:u)})}),l.jsxs("div",{className:"px-3 py-1.5 border-t border-[#E5E7EB] dark:border-zinc-800 text-xs text-[#9CA3AF] dark:text-zinc-500 flex items-center gap-4",children:[l.jsxs("span",{children:[l.jsx("kbd",{className:"px-1.5 py-0.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded text-[#6B7280] dark:text-zinc-400",children:"↑↓"})," ","Navigate"]}),l.jsxs("span",{children:[l.jsx("kbd",{className:"px-1.5 py-0.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded text-[#6B7280] dark:text-zinc-400",children:"Tab"})," ","Select"]}),l.jsxs("span",{children:[l.jsx("kbd",{className:"px-1.5 py-0.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded text-[#6B7280] dark:text-zinc-400",children:"Esc"})," ","Close"]})]})]})})},us=[{value:Ue.DEFAULT,label:"Default"},{value:Ue.AUTO_EDIT,label:"Auto Edit"},{value:Ue.PLAN,label:"Plan"},{value:Ue.SPEC,label:"Spec"}];function Aa({onSend:t,onAbort:e,disabled:s,isStreaming:n}){var Ot;const[r,a]=p.useState(""),[o,i]=p.useState([]),[d,c]=p.useState(void 0),[u,g]=p.useState(!1),[m,f]=p.useState(!1),h=p.useRef(null),v=p.useRef(null),{currentModelId:k,configuredModels:b,loadModels:N,setCurrentModel:Q,currentMode:H,setMode:Z}=As(),{setMaxContextTokens:L}=Ce(),$=Na(r,d),B=_a(r,d),X=Ea(),ne=$.hasQuery&&$.suggestions.length>0,ie=B.hasQuery&&B.suggestions.length>0,S=ne||ie;p.useEffect(()=>{N()},[N]),p.useEffect(()=>{if(b.length===0)return;const y=b.find(R=>R.id===k);if(y){const R=!!y.maxContextTokens,A=y.maxContextTokens||128e3;L(A,!R)}},[k,b,L]);const U=p.useCallback(()=>{!r.trim()&&o.length===0||s||(r.trim()&&X.addToHistory(r),t({content:r,attachments:o}),a(""),i([]),c(void 0))},[o,r,s,t,X]),z=p.useCallback(y=>{i(R=>R.filter(A=>A.id!==y))},[]),K=p.useCallback(y=>new Promise((R,A)=>{const W=new FileReader;W.onload=()=>{if(typeof W.result!="string"){A(new Error("Failed to read image"));return}R({id:typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:y.name,mimeType:y.type,dataUrl:W.result})},W.onerror=()=>A(W.error??new Error("Failed to read image")),W.readAsDataURL(y)}),[]),J=p.useCallback(async y=>{if(y.length===0)return;const R=await Promise.all(y.map(A=>K(A)));i(A=>[...A,...R])},[K]),ee=p.useCallback(async y=>{const R=Array.from(y.target.files??[]).filter(A=>A.type.startsWith("image/"));await J(R),y.target.value=""},[J]),q=p.useCallback(async y=>{const R=Array.from(y.clipboardData.items).filter(A=>A.type.startsWith("image/")).map(A=>A.getAsFile()).filter(A=>A!==null);R.length!==0&&(y.preventDefault(),await J(R))},[J]),te=p.useCallback(y=>{const R=$.suggestions[y];if(!R)return;const{newInput:A,newCursorPos:W}=Ia(r,$,R);a(A),c(W),requestAnimationFrame(()=>{h.current&&(h.current.focus(),h.current.setSelectionRange(W,W))})},[r,$]),ue=p.useCallback(y=>{const R=B.suggestions[y];if(!R)return;const{newInput:A,newCursorPos:W}=Sa(r,B,R);a(A),c(W),requestAnimationFrame(()=>{h.current&&(h.current.focus(),h.current.setSelectionRange(W,W))})},[r,B]),se=p.useCallback(y=>{if(ne){if(y.key==="ArrowDown"){y.preventDefault(),$.selectNext();return}if(y.key==="ArrowUp"){y.preventDefault(),$.selectPrevious();return}if(y.key==="Tab"||y.key==="Enter"&&!y.shiftKey){y.preventDefault(),te($.selectedIndex);return}if(y.key==="Escape"){y.preventDefault(),c(void 0);return}}if(ie){if(y.key==="ArrowDown"){y.preventDefault(),B.selectNext();return}if(y.key==="ArrowUp"){y.preventDefault(),B.selectPrevious();return}if(y.key==="Tab"||y.key==="Enter"&&!y.shiftKey){y.preventDefault(),ue(B.selectedIndex);return}if(y.key==="Escape"){y.preventDefault(),c(void 0);return}}if(y.key==="Enter"&&!y.shiftKey){y.preventDefault(),U();return}if(y.key==="ArrowUp"&&!y.shiftKey){const R=y.target,A=R.selectionStart===0&&R.selectionEnd===0,W=!r.includes(`
7
- `);if(A||W){const he=X.getPrevious(r);he!==null&&(y.preventDefault(),a(he),requestAnimationFrame(()=>{h.current&&h.current.setSelectionRange(he.length,he.length)}))}return}if(y.key==="ArrowDown"&&!y.shiftKey){const R=y.target,A=R.selectionStart===r.length&&R.selectionEnd===r.length,W=!r.includes(`
8
- `);if((A||W)&&X.historyIndex!==-1){const he=X.getNext();he!==null&&(y.preventDefault(),a(he),requestAnimationFrame(()=>{h.current&&h.current.setSelectionRange(he.length,he.length)}))}}},[ne,ie,$,B,te,ue,U,r,X]),V=p.useCallback(y=>{a(y.target.value),c(y.target.selectionStart)},[]),fe=p.useCallback(y=>{const R=y.target;c(R.selectionStart)},[]);p.useEffect(()=>{h.current&&(h.current.style.height="inherit",h.current.style.height=`${Math.min(h.current.scrollHeight,200)}px`)},[r]);const st=b.find(y=>y.id===k),Zs=(st==null?void 0:st.model)||k||"Select Model",Ls=((Ot=us.find(y=>y.value===H))==null?void 0:Ot.label)||"Default",Us=!!r.trim()||o.length>0;return l.jsx("div",{className:"py-4 border-t border-[#E5E7EB] dark:border-zinc-800 bg-white dark:bg-[#09090b]",children:l.jsxs("div",{className:"px-4 w-full md:px-6",children:[l.jsxs("div",{className:"relative border border-[#E5E7EB] dark:border-zinc-800 rounded-lg shadow-sm bg-white dark:bg-zinc-950/50 focus-within:border-[#D1D5DB] dark:focus-within:border-zinc-600 focus-within:ring-1 focus-within:ring-[#D1D5DB] dark:focus-within:ring-zinc-600 transition-all duration-200 flex flex-col min-h-[88px]",children:[l.jsx(cs,{type:"command",suggestions:$.suggestions,selectedIndex:$.selectedIndex,loading:$.loading,onSelect:te,onHover:$.setSelectedIndex,visible:ne}),l.jsx(cs,{type:"file",suggestions:B.suggestions,selectedIndex:B.selectedIndex,loading:B.loading,onSelect:ue,onHover:B.setSelectedIndex,visible:ie&&!ne}),l.jsx(zs,{ref:h,value:r,onChange:V,onKeyDown:se,onPaste:q,onSelect:fe,onClick:fe,placeholder:"Type @ for files, / for commands...",className:"flex-1 w-full resize-none border-0 bg-transparent py-4 px-4 focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none text-[#111827] dark:text-zinc-300 placeholder:text-[#9CA3AF] dark:placeholder:text-zinc-600",disabled:s||n}),o.length>0&&l.jsx("div",{className:"px-4 pb-2 flex flex-wrap gap-2",children:o.map(y=>l.jsxs("div",{className:"relative rounded-md overflow-hidden border border-[#E5E7EB] dark:border-zinc-800 bg-[#F9FAFB] dark:bg-zinc-900",children:[l.jsx("img",{src:y.dataUrl,alt:y.name,className:"h-20 w-20 object-cover"}),l.jsx("button",{type:"button",onClick:()=>z(y.id),className:"absolute top-1 right-1 rounded bg-black/70 px-1.5 py-0.5 text-[10px] text-white",children:"Remove"})]},y.id))}),l.jsxs("div",{className:"flex justify-between items-center p-3 mt-auto",children:[l.jsxs("div",{className:"flex gap-2 items-center",children:[l.jsx("input",{ref:v,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:ee}),l.jsx(Ve,{type:"button",variant:"ghost",size:"icon",onClick:()=>{var y;return(y=v.current)==null?void 0:y.click()},className:"h-8 w-8 text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-zinc-500 dark:hover:text-zinc-300 dark:hover:bg-zinc-800/50",children:l.jsx(fn,{className:"w-4 h-4"})}),l.jsxs(ls,{open:u,onOpenChange:g,children:[l.jsx(ds,{asChild:!0,children:l.jsxs("button",{className:"flex items-center gap-1 text-xs text-[#6B7280] hover:text-[#111827] px-2 py-1 rounded hover:bg-[#E5E7EB] dark:text-zinc-500 dark:hover:text-zinc-200 dark:hover:bg-zinc-800/50 cursor-pointer transition-colors",children:[Zs,l.jsx(qe,{className:"w-3 h-3"})]})}),l.jsx(Ct,{className:"w-64 p-2 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700",align:"start",children:l.jsx("div",{className:"overflow-y-auto max-h-72",children:b.length===0?l.jsx("div",{className:"text-xs text-[#6B7280] dark:text-zinc-500 px-2 py-2",children:"No models configured"}):Object.entries(b.reduce((y,R)=>{const A=R.provider||"unknown";return y[A]||(y[A]=[]),y[A].push(R),y},{})).map(([y,R])=>l.jsxs("div",{className:"mb-2",children:[l.jsx("div",{className:"text-xs text-[#6B7280] dark:text-zinc-500 px-2 py-1 capitalize",children:y.replace(/-/g," ")}),R.map(A=>l.jsx("button",{className:`w-full text-left px-2 py-1.5 text-sm rounded hover:bg-[#E5E7EB] dark:hover:bg-zinc-800 transition-colors ${A.id===k?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] dark:text-zinc-400"}`,onClick:()=>{Q(A.id),g(!1)},children:A.model},A.id))]},y))})})]}),l.jsxs(ls,{open:m,onOpenChange:f,children:[l.jsx(ds,{asChild:!0,children:l.jsxs("button",{className:"flex items-center gap-1 text-xs text-[#6B7280] hover:text-[#111827] px-2 py-1 rounded hover:bg-[#E5E7EB] dark:text-zinc-500 dark:hover:text-zinc-200 dark:hover:bg-zinc-800/50 cursor-pointer transition-colors",children:[Ls,l.jsx(qe,{className:"w-3 h-3"})]})}),l.jsx(Ct,{className:"w-40 p-1 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700",align:"start",children:l.jsx("div",{className:"flex flex-col gap-0.5",children:us.map(y=>l.jsx("button",{className:`w-full text-left px-2 py-1.5 text-xs rounded hover:bg-[#E5E7EB] dark:hover:bg-zinc-800 transition-colors ${H===y.value?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] dark:text-zinc-400"}`,onClick:()=>{Z(y.value),f(!1)},children:y.label},y.value))})})]})]}),n?l.jsx(Ve,{size:"icon",onClick:e,className:"w-8 h-8 text-white bg-red-500 hover:bg-red-600",children:l.jsx(hn,{className:"w-3 h-3"})}):l.jsx(Ve,{size:"icon",onClick:U,disabled:!Us||s||S,className:"h-8 w-8 bg-[#111827] text-white hover:bg-[#0F172A] disabled:bg-[#E5E7EB] disabled:text-[#9CA3AF] dark:bg-zinc-100 dark:text-zinc-900 dark:hover:bg-white dark:disabled:bg-zinc-800 dark:disabled:text-zinc-600",children:l.jsx(gn,{className:"w-4 h-4"})})]})]}),l.jsx("div",{className:"text-center text-xs text-[#6B7280] dark:text-zinc-600 mt-3 font-mono",children:"Blade can make mistakes. Please check important information."})]})})}const Ma=p.lazy(()=>Oe(()=>import("./MarkdownRenderer-B46lJYAn.js"),[]).then(t=>({default:t.MarkdownRenderer})));function Fa(){return l.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-lg bg-[#22C55E]",children:l.jsx("span",{className:"text-sm font-bold text-black",children:"B"})})}function Ra(){return l.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-full bg-[#E5E7EB] dark:bg-white",children:l.jsx("span",{className:"text-sm font-medium text-[#111827] dark:text-zinc-800",children:"U"})})}function fs(t){let e=t;return e=e.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/g,""),e=e.replace(/<file path="[^"]*">[\s\S]*?<\/file>/g,""),e=e.replace(/<attached_files>[\s\S]*?<\/attached_files>/g,""),e=e.trim(),e}function Oa(t){if(typeof t=="string")return{text:fs(t),images:[]};const e=t.filter(n=>n.type==="text").map(n=>n.text).join(`
2
+ var Vs=Object.defineProperty;var qs=(t,e,s)=>e in t?Vs(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var nt=(t,e,s)=>qs(t,typeof e!="symbol"?e+"":e,s);import{r as p,j as l,R as Ze,i as Gs}from"./vendor-react-Dm1xU4bP.js";import{_ as Oe}from"./vendor-markdown-DIcugY1e.js";import{S as Ws,R as gs,V as Hs,C as Js,a as ms,b as Qs,P as Ks,c as ps,d as Ys,T as Xs,e as xs,f as en,g as tn,h as sn}from"./vendor-radix-CfxBc_4-.js";import{P as zt,T as Bt,S as Pt,a as $t,b as Dt,C as nn,c as rn,X as an,d as on,e as ln,G as dn,F as cn,f as un,g as ct,L as Je,h as fn,i as qe,j as hn,k as gn,l as bs,H as mn}from"./vendor-icons-DlzC8I7m.js";import"./vendor-monaco-w6PwaWGP.js";function ys(t){var e,s,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t)){var r=t.length;for(e=0;e<r;e++)t[e]&&(s=ys(t[e]))&&(n&&(n+=" "),n+=s)}else for(s in t)t[s]&&(n&&(n+=" "),n+=s);return n}function vs(){for(var t,e,s=0,n="",r=arguments.length;s<r;s++)(t=arguments[s])&&(e=ys(t))&&(n&&(n+=" "),n+=e);return n}const Zt=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,Lt=vs,pn=(t,e)=>s=>{var n;if((e==null?void 0:e.variants)==null)return Lt(t,s==null?void 0:s.class,s==null?void 0:s.className);const{variants:r,defaultVariants:a}=e,o=Object.keys(r).map(c=>{const u=s==null?void 0:s[c],h=a==null?void 0:a[c];if(u===null)return null;const m=Zt(u)||Zt(h);return r[c][m]}),i=s&&Object.entries(s).reduce((c,u)=>{let[h,m]=u;return m===void 0||(c[h]=m),c},{}),d=e==null||(n=e.compoundVariants)===null||n===void 0?void 0:n.reduce((c,u)=>{let{class:h,className:m,...f}=u;return Object.entries(f).every(g=>{let[v,k]=g;return Array.isArray(k)?k.includes({...a,...i}[v]):{...a,...i}[v]===k})?[...c,h,m]:c},[]);return Lt(t,o,d,s==null?void 0:s.class,s==null?void 0:s.className)},St="-",xn=t=>{const e=yn(t),{conflictingClassGroups:s,conflictingClassGroupModifiers:n}=t;return{getClassGroupId:o=>{const i=o.split(St);return i[0]===""&&i.length!==1&&i.shift(),ks(i,e)||bn(o)},getConflictingClassGroupIds:(o,i)=>{const d=s[o]||[];return i&&n[o]?[...d,...n[o]]:d}}},ks=(t,e)=>{var o;if(t.length===0)return e.classGroupId;const s=t[0],n=e.nextPart.get(s),r=n?ks(t.slice(1),n):void 0;if(r)return r;if(e.validators.length===0)return;const a=t.join(St);return(o=e.validators.find(({validator:i})=>i(a)))==null?void 0:o.classGroupId},Ut=/^\[(.+)\]$/,bn=t=>{if(Ut.test(t)){const e=Ut.exec(t)[1],s=e==null?void 0:e.substring(0,e.indexOf(":"));if(s)return"arbitrary.."+s}},yn=t=>{const{theme:e,prefix:s}=t,n={nextPart:new Map,validators:[]};return kn(Object.entries(t.classGroups),s).forEach(([a,o])=>{ut(o,n,a,e)}),n},ut=(t,e,s,n)=>{t.forEach(r=>{if(typeof r=="string"){const a=r===""?e:Vt(e,r);a.classGroupId=s;return}if(typeof r=="function"){if(vn(r)){ut(r(n),e,s,n);return}e.validators.push({validator:r,classGroupId:s});return}Object.entries(r).forEach(([a,o])=>{ut(o,Vt(e,a),s,n)})})},Vt=(t,e)=>{let s=t;return e.split(St).forEach(n=>{s.nextPart.has(n)||s.nextPart.set(n,{nextPart:new Map,validators:[]}),s=s.nextPart.get(n)}),s},vn=t=>t.isThemeGetter,kn=(t,e)=>e?t.map(([s,n])=>{const r=n.map(a=>typeof a=="string"?e+a:typeof a=="object"?Object.fromEntries(Object.entries(a).map(([o,i])=>[e+o,i])):a);return[s,r]}):t,wn=t=>{if(t<1)return{get:()=>{},set:()=>{}};let e=0,s=new Map,n=new Map;const r=(a,o)=>{s.set(a,o),e++,e>t&&(e=0,n=s,s=new Map)};return{get(a){let o=s.get(a);if(o!==void 0)return o;if((o=n.get(a))!==void 0)return r(a,o),o},set(a,o){s.has(a)?s.set(a,o):r(a,o)}}},ws="!",_n=t=>{const{separator:e,experimentalParseClassName:s}=t,n=e.length===1,r=e[0],a=e.length,o=i=>{const d=[];let c=0,u=0,h;for(let k=0;k<i.length;k++){let b=i[k];if(c===0){if(b===r&&(n||i.slice(k,k+a)===e)){d.push(i.slice(u,k)),u=k+a;continue}if(b==="/"){h=k;continue}}b==="["?c++:b==="]"&&c--}const m=d.length===0?i:i.substring(u),f=m.startsWith(ws),g=f?m.substring(1):m,v=h&&h>u?h-u:void 0;return{modifiers:d,hasImportantModifier:f,baseClassName:g,maybePostfixModifierPosition:v}};return s?i=>s({className:i,parseClassName:o}):o},Cn=t=>{if(t.length<=1)return t;const e=[];let s=[];return t.forEach(n=>{n[0]==="["?(e.push(...s.sort(),n),s=[]):s.push(n)}),e.push(...s.sort()),e},Sn=t=>({cache:wn(t.cacheSize),parseClassName:_n(t),...xn(t)}),En=/\s+/,jn=(t,e)=>{const{parseClassName:s,getClassGroupId:n,getConflictingClassGroupIds:r}=e,a=[],o=t.trim().split(En);let i="";for(let d=o.length-1;d>=0;d-=1){const c=o[d],{modifiers:u,hasImportantModifier:h,baseClassName:m,maybePostfixModifierPosition:f}=s(c);let g=!!f,v=n(g?m.substring(0,f):m);if(!v){if(!g){i=c+(i.length>0?" "+i:i);continue}if(v=n(m),!v){i=c+(i.length>0?" "+i:i);continue}g=!1}const k=Cn(u).join(":"),b=h?k+ws:k,I=b+v;if(a.includes(I))continue;a.push(I);const Q=r(v,g);for(let H=0;H<Q.length;++H){const Z=Q[H];a.push(b+Z)}i=c+(i.length>0?" "+i:i)}return i};function In(){let t=0,e,s,n="";for(;t<arguments.length;)(e=arguments[t++])&&(s=_s(e))&&(n&&(n+=" "),n+=s);return n}const _s=t=>{if(typeof t=="string")return t;let e,s="";for(let n=0;n<t.length;n++)t[n]&&(e=_s(t[n]))&&(s&&(s+=" "),s+=e);return s};function Nn(t,...e){let s,n,r,a=o;function o(d){const c=e.reduce((u,h)=>h(u),t());return s=Sn(c),n=s.cache.get,r=s.cache.set,a=i,i(d)}function i(d){const c=n(d);if(c)return c;const u=jn(d,s);return r(d,u),u}return function(){return a(In.apply(null,arguments))}}const D=t=>{const e=s=>s[t]||[];return e.isThemeGetter=!0,e},Cs=/^\[(?:([a-z-]+):)?(.+)\]$/i,Tn=/^\d+\/\d+$/,An=new Set(["px","full","screen"]),Mn=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Fn=/\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$/,Rn=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,On=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,zn=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ge=t=>Ie(t)||An.has(t)||Tn.test(t),be=t=>ze(t,"length",Vn),Ie=t=>!!t&&!Number.isNaN(Number(t)),rt=t=>ze(t,"number",Ie),Pe=t=>!!t&&Number.isInteger(Number(t)),Bn=t=>t.endsWith("%")&&Ie(t.slice(0,-1)),N=t=>Cs.test(t),ye=t=>Mn.test(t),Pn=new Set(["length","size","percentage"]),$n=t=>ze(t,Pn,Ss),Dn=t=>ze(t,"position",Ss),Zn=new Set(["image","url"]),Ln=t=>ze(t,Zn,Gn),Un=t=>ze(t,"",qn),$e=()=>!0,ze=(t,e,s)=>{const n=Cs.exec(t);return n?n[1]?typeof e=="string"?n[1]===e:e.has(n[1]):s(n[2]):!1},Vn=t=>Fn.test(t)&&!Rn.test(t),Ss=()=>!1,qn=t=>On.test(t),Gn=t=>zn.test(t),Wn=()=>{const t=D("colors"),e=D("spacing"),s=D("blur"),n=D("brightness"),r=D("borderColor"),a=D("borderRadius"),o=D("borderSpacing"),i=D("borderWidth"),d=D("contrast"),c=D("grayscale"),u=D("hueRotate"),h=D("invert"),m=D("gap"),f=D("gradientColorStops"),g=D("gradientColorStopPositions"),v=D("inset"),k=D("margin"),b=D("opacity"),I=D("padding"),Q=D("saturate"),H=D("scale"),Z=D("sepia"),L=D("skew"),P=D("space"),B=D("translate"),X=()=>["auto","contain","none"],ne=()=>["auto","hidden","clip","visible","scroll"],ie=()=>["auto",N,e],S=()=>[N,e],U=()=>["",ge,be],z=()=>["auto",Ie,N],K=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],J=()=>["solid","dashed","dotted","double","none"],ee=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],q=()=>["start","end","center","between","around","evenly","stretch"],te=()=>["","0",N],ue=()=>["auto","avoid","all","avoid-page","page","left","right","column"],se=()=>[Ie,N];return{cacheSize:500,separator:":",theme:{colors:[$e],spacing:[ge,be],blur:["none","",ye,N],brightness:se(),borderColor:[t],borderRadius:["none","","full",ye,N],borderSpacing:S(),borderWidth:U(),contrast:se(),grayscale:te(),hueRotate:se(),invert:te(),gap:S(),gradientColorStops:[t],gradientColorStopPositions:[Bn,be],inset:ie(),margin:ie(),opacity:se(),padding:S(),saturate:se(),scale:se(),sepia:te(),skew:se(),space:S(),translate:S()},classGroups:{aspect:[{aspect:["auto","square","video",N]}],container:["container"],columns:[{columns:[ye]}],"break-after":[{"break-after":ue()}],"break-before":[{"break-before":ue()}],"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"],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:[...K(),N]}],overflow:[{overflow:ne()}],"overflow-x":[{"overflow-x":ne()}],"overflow-y":[{"overflow-y":ne()}],overscroll:[{overscroll:X()}],"overscroll-x":[{"overscroll-x":X()}],"overscroll-y":[{"overscroll-y":X()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[v]}],"inset-x":[{"inset-x":[v]}],"inset-y":[{"inset-y":[v]}],start:[{start:[v]}],end:[{end:[v]}],top:[{top:[v]}],right:[{right:[v]}],bottom:[{bottom:[v]}],left:[{left:[v]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Pe,N]}],basis:[{basis:ie()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",N]}],grow:[{grow:te()}],shrink:[{shrink:te()}],order:[{order:["first","last","none",Pe,N]}],"grid-cols":[{"grid-cols":[$e]}],"col-start-end":[{col:["auto",{span:["full",Pe,N]},N]}],"col-start":[{"col-start":z()}],"col-end":[{"col-end":z()}],"grid-rows":[{"grid-rows":[$e]}],"row-start-end":[{row:["auto",{span:[Pe,N]},N]}],"row-start":[{"row-start":z()}],"row-end":[{"row-end":z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",N]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",N]}],gap:[{gap:[m]}],"gap-x":[{"gap-x":[m]}],"gap-y":[{"gap-y":[m]}],"justify-content":[{justify:["normal",...q()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...q(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...q(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[I]}],px:[{px:[I]}],py:[{py:[I]}],ps:[{ps:[I]}],pe:[{pe:[I]}],pt:[{pt:[I]}],pr:[{pr:[I]}],pb:[{pb:[I]}],pl:[{pl:[I]}],m:[{m:[k]}],mx:[{mx:[k]}],my:[{my:[k]}],ms:[{ms:[k]}],me:[{me:[k]}],mt:[{mt:[k]}],mr:[{mr:[k]}],mb:[{mb:[k]}],ml:[{ml:[k]}],"space-x":[{"space-x":[P]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[P]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",N,e]}],"min-w":[{"min-w":[N,e,"min","max","fit"]}],"max-w":[{"max-w":[N,e,"none","full","min","max","fit","prose",{screen:[ye]},ye]}],h:[{h:[N,e,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[N,e,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[N,e,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[N,e,"auto","min","max","fit"]}],"font-size":[{text:["base",ye,be]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",rt]}],"font-family":[{font:[$e]}],"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:["tighter","tight","normal","wide","wider","widest",N]}],"line-clamp":[{"line-clamp":["none",Ie,rt]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",ge,N]}],"list-image":[{"list-image":["none",N]}],"list-style-type":[{list:["none","disc","decimal",N]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[b]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[b]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...J(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",ge,be]}],"underline-offset":[{"underline-offset":["auto",ge,N]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",N]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",N]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[b]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...K(),Dn]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",$n]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Ln]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[g]}],"gradient-via-pos":[{via:[g]}],"gradient-to-pos":[{to:[g]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[b]}],"border-style":[{border:[...J(),"hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[b]}],"divide-style":[{divide:J()}],"border-color":[{border:[r]}],"border-color-x":[{"border-x":[r]}],"border-color-y":[{"border-y":[r]}],"border-color-s":[{"border-s":[r]}],"border-color-e":[{"border-e":[r]}],"border-color-t":[{"border-t":[r]}],"border-color-r":[{"border-r":[r]}],"border-color-b":[{"border-b":[r]}],"border-color-l":[{"border-l":[r]}],"divide-color":[{divide:[r]}],"outline-style":[{outline:["",...J()]}],"outline-offset":[{"outline-offset":[ge,N]}],"outline-w":[{outline:[ge,be]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:U()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[b]}],"ring-offset-w":[{"ring-offset":[ge,be]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",ye,Un]}],"shadow-color":[{shadow:[$e]}],opacity:[{opacity:[b]}],"mix-blend":[{"mix-blend":[...ee(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":ee()}],filter:[{filter:["","none"]}],blur:[{blur:[s]}],brightness:[{brightness:[n]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",ye,N]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[h]}],saturate:[{saturate:[Q]}],sepia:[{sepia:[Z]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[s]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[d]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[h]}],"backdrop-opacity":[{"backdrop-opacity":[b]}],"backdrop-saturate":[{"backdrop-saturate":[Q]}],"backdrop-sepia":[{"backdrop-sepia":[Z]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",N]}],duration:[{duration:se()}],ease:[{ease:["linear","in","out","in-out",N]}],delay:[{delay:se()}],animate:[{animate:["none","spin","ping","pulse","bounce",N]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[H]}],"scale-x":[{"scale-x":[H]}],"scale-y":[{"scale-y":[H]}],rotate:[{rotate:[Pe,N]}],"translate-x":[{"translate-x":[B]}],"translate-y":[{"translate-y":[B]}],"skew-x":[{"skew-x":[L]}],"skew-y":[{"skew-y":[L]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",N]}],accent:[{accent:["auto",t]}],appearance:[{appearance:["none","auto"]}],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",N]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"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",N]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[ge,be,rt]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"],"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-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-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"],"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"]}}},Hn=Nn(Wn);function $(...t){return Hn(vs(t))}const Jn=pn("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",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"}}),Ve=p.forwardRef(({className:t,variant:e,size:s,asChild:n=!1,...r},a)=>{const o=n?Ws:"button";return l.jsx(o,{className:$(Jn({variant:e,size:s,className:t})),ref:a,...r})});Ve.displayName="Button";const re="",Qn=t=>Array.isArray(t)?t:t==null?"":typeof t=="string"?t:JSON.stringify(t),Kn=t=>typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
3
+ `),Yn=()=>{const t=new Date,e=String(t.getFullYear()).slice(-2),s=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),r=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`Session ${e}-${s}-${n} ${r}:${a}`},le={listSessions:async()=>{const t=await fetch(`${re}/sessions`);if(!t.ok)throw new Error("Failed to load sessions");return t.json()},createSession:async(t,e)=>{const s=await fetch(`${re}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:t,title:e||Yn()})});if(!s.ok)throw new Error("Failed to create session");return s.json()},deleteSession:async t=>{if(!(await fetch(`${re}/sessions/${t}`,{method:"DELETE"})).ok)throw new Error("Failed to delete session")},updateSession:async(t,e)=>{if(!(await fetch(`${re}/sessions/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e})})).ok)throw new Error("Failed to update session")},getMessages:async t=>{const e=await fetch(`${re}/sessions/${t}/message`);if(!e.ok)throw new Error("Failed to load messages");const s=await e.json(),n=Date.now();return s.map((r,a)=>{const o=Qn(r.content),i=Kn(o),d=r.role==="tool"?{kind:"tool_result",toolCallId:r.tool_call_id,toolName:r.name,output:i}:r.metadata;return{id:r.id||`history-${a}-${n}`,role:r.role,content:o,timestamp:n,metadata:d,tool_call_id:r.tool_call_id,name:r.name,tool_calls:r.tool_calls,thinkingContent:r.thinkingContent}})},sendMessage:async(t,e,s)=>{const n=await fetch(`${re}/sessions/${t}/message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,permissionMode:s})});if(!n.ok)throw new Error("Failed to send message");return n.json()},abortSession:async t=>{await fetch(`${re}/sessions/${t}/abort`,{method:"POST"})},subscribeEvents:(t,e,s)=>{const n=(s==null?void 0:s.maxRetries)??5,r=s==null?void 0:s.onConnectionChange;let a=null,o=0,i=null,d=!1,c=Date.now(),u=null;const h=()=>{d||(a=new EventSource(`${re}/sessions/${t}/events`),a.onopen=()=>{o=0,c=Date.now(),r==null||r(!0),u=setInterval(()=>{Date.now()-c>45e3&&(console.warn("SSE heartbeat timeout, reconnecting..."),a==null||a.close(),f())},15e3)},a.onmessage=g=>{try{const v=JSON.parse(g.data);if(c=Date.now(),v.type==="heartbeat"||v.type==="connected")return;e(v)}catch(v){console.error("Failed to parse SSE event:",g.data,v)}},a.onerror=()=>{d||(console.error("SSE connection error"),r==null||r(!1),m(),f())})},m=()=>{u&&(clearInterval(u),u=null),a==null||a.close(),a=null},f=()=>{if(d||o>=n){o>=n&&console.error(`SSE max retries (${n}) reached, giving up`);return}o++;const g=Math.min(1e3*Math.pow(2,o-1),3e4);console.log(`SSE reconnecting in ${g}ms (attempt ${o}/${n})`),i=setTimeout(h,g)};return h(),()=>{d=!0,i&&(clearTimeout(i),i=null),m(),r==null||r(!1)}},respondPermission:async(t,e,s)=>{if(!(await fetch(`${re}/permissions/${e}?sessionId=${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).ok)throw new Error("Failed to respond to permission")},respondToConfirmation:async(t,e,s)=>{if(!(await fetch(`${re}/sessions/${t}/confirmation/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({approved:s})})).ok)throw new Error("Failed to respond to confirmation")},respondToQuestion:async(t,e,s)=>{if(!(await fetch(`${re}/sessions/${t}/question/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({answers:s})})).ok)throw new Error("Failed to respond to question")},getGitInfo:async()=>{const t=await fetch(`${re}/suggestions/git-info`);if(!t.ok)throw new Error("Failed to get git info");return t.json()}},qt=t=>{let e;const s=new Set,n=(c,u)=>{const h=typeof c=="function"?c(e):c;if(!Object.is(h,e)){const m=e;e=u??(typeof h!="object"||h===null)?h:Object.assign({},e,h),s.forEach(f=>f(e,m))}},r=()=>e,i={setState:n,getState:r,getInitialState:()=>d,subscribe:c=>(s.add(c),()=>s.delete(c))},d=e=t(n,r,i);return i},Xn=t=>t?qt(t):qt,er=t=>t;function tr(t,e=er){const s=Ze.useSyncExternalStore(t.subscribe,Ze.useCallback(()=>e(t.getState()),[t,e]),Ze.useCallback(()=>e(t.getInitialState()),[t,e]));return Ze.useDebugValue(s),s}const Gt=t=>{const e=Xn(t),s=n=>tr(e,n);return Object.assign(s,e),s},Et=t=>t?Gt(t):Gt,jt=Et(t=>({isSidebarOpen:!0,toggleSidebar:()=>t(e=>({isSidebarOpen:!e.isSidebarOpen})),setSidebarOpen:e=>t({isSidebarOpen:e}),isFilePreviewOpen:!1,toggleFilePreview:()=>t(e=>({isFilePreviewOpen:!e.isFilePreviewOpen})),setFilePreviewOpen:e=>t({isFilePreviewOpen:e}),isSettingsOpen:!1,toggleSettings:()=>t(e=>({isSettingsOpen:!e.isSettingsOpen})),isMcpOpen:!1,toggleMcp:()=>t(e=>({isMcpOpen:!e.isMcpOpen})),isSkillsOpen:!1,toggleSkills:()=>t(e=>({isSkillsOpen:!e.isSkillsOpen})),isTerminalOpen:!1,toggleTerminal:()=>t(e=>({isTerminalOpen:!e.isTerminalOpen}))})),Se=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),sr=(t,e)=>({messages:[],setMessages:s=>t({messages:s}),addMessage:s=>t(n=>({messages:[...n.messages,s]})),updateMessage:(s,n)=>t(r=>({messages:r.messages.map(a=>a.id===s?{...a,...n}:a)})),appendDelta:(s,n,r)=>t(a=>({messages:a.messages.map(o=>{if(o.id!==s)return o;const i=o.agentContent||Se();return r==="before"?{...o,agentContent:{...i,textBefore:i.textBefore+n}}:{...o,agentContent:{...i,textAfter:i.textAfter+n}}})})),appendToolCall:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,toolCalls:[...o.toolCalls,n]}}})})),updateToolCall:(s,n,r)=>t(a=>({messages:a.messages.map(o=>{if(o.id!==s)return o;const i=o.agentContent;return i?{...o,agentContent:{...i,toolCalls:i.toolCalls.map(d=>d.toolCallId===n?{...d,...r}:d)}}:o})})),appendThinking:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,thinkingContent:o.thinkingContent+n}}})})),setConfirmation:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,confirmation:n}}})})),setQuestion:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,question:n}}})})),setSubagent:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,subagent:n}}})})),setTasks:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,tasks:n}}})})),replaceTemp:(s,n)=>t(r=>{const a=r.messages.findIndex(i=>i.content===s&&i.role==="user");if(a===-1)return r;const o=[...r.messages];return o[a]=n,{messages:o}})});var O;(function(t){t.assertEqual=r=>{};function e(r){}t.assertIs=e;function s(r){throw new Error}t.assertNever=s,t.arrayToEnum=r=>{const a={};for(const o of r)a[o]=o;return a},t.getValidEnumValues=r=>{const a=t.objectKeys(r).filter(i=>typeof r[r[i]]!="number"),o={};for(const i of a)o[i]=r[i];return t.objectValues(o)},t.objectValues=r=>t.objectKeys(r).map(function(a){return r[a]}),t.objectKeys=typeof Object.keys=="function"?r=>Object.keys(r):r=>{const a=[];for(const o in r)Object.prototype.hasOwnProperty.call(r,o)&&a.push(o);return a},t.find=(r,a)=>{for(const o of r)if(a(o))return o},t.isInteger=typeof Number.isInteger=="function"?r=>Number.isInteger(r):r=>typeof r=="number"&&Number.isFinite(r)&&Math.floor(r)===r;function n(r,a=" | "){return r.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=n,t.jsonStringifyReplacer=(r,a)=>typeof a=="bigint"?a.toString():a})(O||(O={}));var Wt;(function(t){t.mergeShapes=(e,s)=>({...e,...s})})(Wt||(Wt={}));const _=O.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ve=t=>{switch(typeof t){case"undefined":return _.undefined;case"string":return _.string;case"number":return Number.isNaN(t)?_.nan:_.number;case"boolean":return _.boolean;case"function":return _.function;case"bigint":return _.bigint;case"symbol":return _.symbol;case"object":return Array.isArray(t)?_.array:t===null?_.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?_.promise:typeof Map<"u"&&t instanceof Map?_.map:typeof Set<"u"&&t instanceof Set?_.set:typeof Date<"u"&&t instanceof Date?_.date:_.object;default:return _.unknown}},x=O.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class xe extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const s=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,s):this.__proto__=s,this.name="ZodError",this.issues=e}format(e){const s=e||function(a){return a.message},n={_errors:[]},r=a=>{for(const o of a.issues)if(o.code==="invalid_union")o.unionErrors.map(r);else if(o.code==="invalid_return_type")r(o.returnTypeError);else if(o.code==="invalid_arguments")r(o.argumentsError);else if(o.path.length===0)n._errors.push(s(o));else{let i=n,d=0;for(;d<o.path.length;){const c=o.path[d];d===o.path.length-1?(i[c]=i[c]||{_errors:[]},i[c]._errors.push(s(o))):i[c]=i[c]||{_errors:[]},i=i[c],d++}}};return r(this),n}static assert(e){if(!(e instanceof xe))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,O.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=s=>s.message){const s={},n=[];for(const r of this.issues)if(r.path.length>0){const a=r.path[0];s[a]=s[a]||[],s[a].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:s}}get formErrors(){return this.flatten()}}xe.create=t=>new xe(t);const ft=(t,e)=>{let s;switch(t.code){case x.invalid_type:t.received===_.undefined?s="Required":s=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:s=`Invalid literal value, expected ${JSON.stringify(t.expected,O.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:s=`Unrecognized key(s) in object: ${O.joinValues(t.keys,", ")}`;break;case x.invalid_union:s="Invalid input";break;case x.invalid_union_discriminator:s=`Invalid discriminator value. Expected ${O.joinValues(t.options)}`;break;case x.invalid_enum_value:s=`Invalid enum value. Expected ${O.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:s="Invalid function arguments";break;case x.invalid_return_type:s="Invalid function return type";break;case x.invalid_date:s="Invalid date";break;case x.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(s=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(s=`${s} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?s=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?s=`Invalid input: must end with "${t.validation.endsWith}"`:O.assertNever(t.validation):t.validation!=="regex"?s=`Invalid ${t.validation}`:s="Invalid";break;case x.too_small:t.type==="array"?s=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?s=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?s=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?s=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?s=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:s="Invalid input";break;case x.too_big:t.type==="array"?s=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?s=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?s=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?s=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?s=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:s="Invalid input";break;case x.custom:s="Invalid input";break;case x.invalid_intersection_types:s="Intersection results could not be merged";break;case x.not_multiple_of:s=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:s="Number must be finite";break;default:s=e.defaultError,O.assertNever(t)}return{message:s}};let nr=ft;function rr(){return nr}const ar=t=>{const{data:e,path:s,errorMaps:n,issueData:r}=t,a=[...s,...r.path||[]],o={...r,path:a};if(r.message!==void 0)return{...r,path:a,message:r.message};let i="";const d=n.filter(c=>!!c).slice().reverse();for(const c of d)i=c(o,{data:e,defaultError:i}).message;return{...r,path:a,message:i}};function w(t,e){const s=rr(),n=ar({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,s,s===ft?void 0:ft].filter(r=>!!r)});t.common.issues.push(n)}class Y{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,s){const n=[];for(const r of s){if(r.status==="aborted")return j;r.status==="dirty"&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,s){const n=[];for(const r of s){const a=await r.key,o=await r.value;n.push({key:a,value:o})}return Y.mergeObjectSync(e,n)}static mergeObjectSync(e,s){const n={};for(const r of s){const{key:a,value:o}=r;if(a.status==="aborted"||o.status==="aborted")return j;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||r.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}}const j=Object.freeze({status:"aborted"}),Le=t=>({status:"dirty",value:t}),oe=t=>({status:"valid",value:t}),Ht=t=>t.status==="aborted",Jt=t=>t.status==="dirty",Ne=t=>t.status==="valid",Qe=t=>typeof Promise<"u"&&t instanceof Promise;var C;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(C||(C={}));class ce{constructor(e,s,n,r){this._cachedPath=[],this.parent=e,this.data=s,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Qt=(t,e)=>{if(Ne(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const s=new xe(t.common.issues);return this._error=s,this._error}}};function T(t){if(!t)return{};const{errorMap:e,invalid_type_error:s,required_error:n,description:r}=t;if(e&&(s||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(o,i)=>{const{message:d}=t;return o.code==="invalid_enum_value"?{message:d??i.defaultError}:typeof i.data>"u"?{message:d??n??i.defaultError}:o.code!=="invalid_type"?{message:i.defaultError}:{message:d??s??i.defaultError}},description:r}}class F{get description(){return this._def.description}_getType(e){return ve(e.data)}_getOrReturnCtx(e,s){return s||{common:e.parent.common,data:e.data,parsedType:ve(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Y,ctx:{common:e.parent.common,data:e.data,parsedType:ve(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const s=this._parse(e);if(Qe(s))throw new Error("Synchronous parse encountered promise.");return s}_parseAsync(e){const s=this._parse(e);return Promise.resolve(s)}parse(e,s){const n=this.safeParse(e,s);if(n.success)return n.data;throw n.error}safeParse(e,s){const n={common:{issues:[],async:(s==null?void 0:s.async)??!1,contextualErrorMap:s==null?void 0:s.errorMap},path:(s==null?void 0:s.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ve(e)},r=this._parseSync({data:e,path:n.path,parent:n});return Qt(n,r)}"~validate"(e){var n,r;const s={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ve(e)};if(!this["~standard"].async)try{const a=this._parseSync({data:e,path:[],parent:s});return Ne(a)?{value:a.value}:{issues:s.common.issues}}catch(a){(r=(n=a==null?void 0:a.message)==null?void 0:n.toLowerCase())!=null&&r.includes("encountered")&&(this["~standard"].async=!0),s.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:s}).then(a=>Ne(a)?{value:a.value}:{issues:s.common.issues})}async parseAsync(e,s){const n=await this.safeParseAsync(e,s);if(n.success)return n.data;throw n.error}async safeParseAsync(e,s){const n={common:{issues:[],contextualErrorMap:s==null?void 0:s.errorMap,async:!0},path:(s==null?void 0:s.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ve(e)},r=this._parse({data:e,path:n.path,parent:n}),a=await(Qe(r)?r:Promise.resolve(r));return Qt(n,a)}refine(e,s){const n=r=>typeof s=="string"||typeof s>"u"?{message:s}:typeof s=="function"?s(r):s;return this._refinement((r,a)=>{const o=e(r),i=()=>a.addIssue({code:x.custom,...n(r)});return typeof Promise<"u"&&o instanceof Promise?o.then(d=>d?!0:(i(),!1)):o?!0:(i(),!1)})}refinement(e,s){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof s=="function"?s(n,r):s),!1))}_refinement(e){return new Me({schema:this,typeName:E.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:s=>this["~validate"](s)}}optional(){return we.create(this,this._def)}nullable(){return Fe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return de.create(this)}promise(){return tt.create(this,this._def)}or(e){return Ye.create([this,e],this._def)}and(e){return Xe.create(this,e,this._def)}transform(e){return new Me({...T(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const s=typeof e=="function"?e:()=>e;return new xt({...T(this._def),innerType:this,defaultValue:s,typeName:E.ZodDefault})}brand(){return new Ir({typeName:E.ZodBranded,type:this,...T(this._def)})}catch(e){const s=typeof e=="function"?e:()=>e;return new bt({...T(this._def),innerType:this,catchValue:s,typeName:E.ZodCatch})}describe(e){const s=this.constructor;return new s({...this._def,description:e})}pipe(e){return It.create(this,e)}readonly(){return yt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const or=/^c[^\s-]{8,}$/i,ir=/^[0-9a-z]+$/,lr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,dr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,cr=/^[a-z0-9_-]{21}$/i,ur=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,fr=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,hr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,gr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let at;const mr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,pr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,xr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,br=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,yr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,vr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Es="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",kr=new RegExp(`^${Es}$`);function js(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);const s=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${s}`}function wr(t){return new RegExp(`^${js(t)}$`)}function _r(t){let e=`${Es}T${js(t)}`;const s=[];return s.push(t.local?"Z?":"Z"),t.offset&&s.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${s.join("|")})`,new RegExp(`^${e}$`)}function Cr(t,e){return!!((e==="v4"||!e)&&mr.test(t)||(e==="v6"||!e)&&xr.test(t))}function Sr(t,e){if(!ur.test(t))return!1;try{const[s]=t.split(".");if(!s)return!1;const n=s.replace(/-/g,"+").replace(/_/g,"/").padEnd(s.length+(4-s.length%4)%4,"="),r=JSON.parse(atob(n));return!(typeof r!="object"||r===null||"typ"in r&&(r==null?void 0:r.typ)!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function Er(t,e){return!!((e==="v4"||!e)&&pr.test(t)||(e==="v6"||!e)&&br.test(t))}class pe extends F{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==_.string){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_type,expected:_.string,received:a.parsedType}),j}const n=new Y;let r;for(const a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="max")e.data.length>a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){const o=e.data.length>a.value,i=e.data.length<a.value;(o||i)&&(r=this._getOrReturnCtx(e,r),o?w(r,{code:x.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):i&&w(r,{code:x.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),n.dirty())}else if(a.kind==="email")hr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"email",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="emoji")at||(at=new RegExp(gr,"u")),at.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"emoji",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="uuid")dr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"uuid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="nanoid")cr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"nanoid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid")or.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"cuid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid2")ir.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"cuid2",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="ulid")lr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"ulid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),w(r,{validation:"url",code:x.invalid_string,message:a.message}),n.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"regex",code:x.invalid_string,message:a.message}),n.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),n.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:{startsWith:a.value},message:a.message}),n.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:{endsWith:a.value},message:a.message}),n.dirty()):a.kind==="datetime"?_r(a).test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:"datetime",message:a.message}),n.dirty()):a.kind==="date"?kr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:"date",message:a.message}),n.dirty()):a.kind==="time"?wr(a).test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:"time",message:a.message}),n.dirty()):a.kind==="duration"?fr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"duration",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="ip"?Cr(e.data,a.version)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"ip",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="jwt"?Sr(e.data,a.alg)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"jwt",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="cidr"?Er(e.data,a.version)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"cidr",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="base64"?yr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"base64",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="base64url"?vr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"base64url",code:x.invalid_string,message:a.message}),n.dirty()):O.assertNever(a);return{status:n.value,value:e.data}}_regex(e,s,n){return this.refinement(r=>e.test(r),{validation:s,code:x.invalid_string,...C.errToObj(n)})}_addCheck(e){return new pe({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...C.errToObj(e)})}url(e){return this._addCheck({kind:"url",...C.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...C.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...C.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...C.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...C.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...C.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...C.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...C.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...C.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...C.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...C.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...C.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...C.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...C.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...C.errToObj(e)})}regex(e,s){return this._addCheck({kind:"regex",regex:e,...C.errToObj(s)})}includes(e,s){return this._addCheck({kind:"includes",value:e,position:s==null?void 0:s.position,...C.errToObj(s==null?void 0:s.message)})}startsWith(e,s){return this._addCheck({kind:"startsWith",value:e,...C.errToObj(s)})}endsWith(e,s){return this._addCheck({kind:"endsWith",value:e,...C.errToObj(s)})}min(e,s){return this._addCheck({kind:"min",value:e,...C.errToObj(s)})}max(e,s){return this._addCheck({kind:"max",value:e,...C.errToObj(s)})}length(e,s){return this._addCheck({kind:"length",value:e,...C.errToObj(s)})}nonempty(e){return this.min(1,C.errToObj(e))}trim(){return new pe({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new pe({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new pe({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxLength(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}}pe.create=t=>new pe({checks:[],typeName:E.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...T(t)});function jr(t,e){const s=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,r=s>n?s:n,a=Number.parseInt(t.toFixed(r).replace(".","")),o=Number.parseInt(e.toFixed(r).replace(".",""));return a%o/10**r}class Te extends F{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==_.number){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_type,expected:_.number,received:a.parsedType}),j}let n;const r=new Y;for(const a of this._def.checks)a.kind==="int"?O.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),w(n,{code:x.invalid_type,expected:"integer",received:"float",message:a.message}),r.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()):a.kind==="multipleOf"?jr(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),w(n,{code:x.not_finite,message:a.message}),r.dirty()):O.assertNever(a);return{status:r.value,value:e.data}}gte(e,s){return this.setLimit("min",e,!0,C.toString(s))}gt(e,s){return this.setLimit("min",e,!1,C.toString(s))}lte(e,s){return this.setLimit("max",e,!0,C.toString(s))}lt(e,s){return this.setLimit("max",e,!1,C.toString(s))}setLimit(e,s,n,r){return new Te({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:n,message:C.toString(r)}]})}_addCheck(e){return new Te({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:C.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:C.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:C.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:C.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:C.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:C.toString(s)})}finite(e){return this._addCheck({kind:"finite",message:C.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:C.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:C.toString(e)})}get minValue(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxValue(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&O.isInteger(e.value))}get isFinite(){let e=null,s=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(s===null||n.value>s)&&(s=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(s)&&Number.isFinite(e)}}Te.create=t=>new Te({checks:[],typeName:E.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...T(t)});class Ge extends F{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==_.bigint)return this._getInvalidInput(e);let n;const r=new Y;for(const a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):O.assertNever(a);return{status:r.value,value:e.data}}_getInvalidInput(e){const s=this._getOrReturnCtx(e);return w(s,{code:x.invalid_type,expected:_.bigint,received:s.parsedType}),j}gte(e,s){return this.setLimit("min",e,!0,C.toString(s))}gt(e,s){return this.setLimit("min",e,!1,C.toString(s))}lte(e,s){return this.setLimit("max",e,!0,C.toString(s))}lt(e,s){return this.setLimit("max",e,!1,C.toString(s))}setLimit(e,s,n,r){return new Ge({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:n,message:C.toString(r)}]})}_addCheck(e){return new Ge({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:C.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:C.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:C.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:C.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:C.toString(s)})}get minValue(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxValue(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}}Ge.create=t=>new Ge({checks:[],typeName:E.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...T(t)});class ht extends F{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==_.boolean){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.boolean,received:n.parsedType}),j}return oe(e.data)}}ht.create=t=>new ht({typeName:E.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...T(t)});class Ke extends F{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==_.date){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_type,expected:_.date,received:a.parsedType}),j}if(Number.isNaN(e.data.getTime())){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_date}),j}const n=new Y;let r;for(const a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),n.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):O.assertNever(a);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Ke({...this._def,checks:[...this._def.checks,e]})}min(e,s){return this._addCheck({kind:"min",value:e.getTime(),message:C.toString(s)})}max(e,s){return this._addCheck({kind:"max",value:e.getTime(),message:C.toString(s)})}get minDate(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e!=null?new Date(e):null}}Ke.create=t=>new Ke({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:E.ZodDate,...T(t)});class Kt extends F{_parse(e){if(this._getType(e)!==_.symbol){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.symbol,received:n.parsedType}),j}return oe(e.data)}}Kt.create=t=>new Kt({typeName:E.ZodSymbol,...T(t)});class Yt extends F{_parse(e){if(this._getType(e)!==_.undefined){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.undefined,received:n.parsedType}),j}return oe(e.data)}}Yt.create=t=>new Yt({typeName:E.ZodUndefined,...T(t)});class Xt extends F{_parse(e){if(this._getType(e)!==_.null){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.null,received:n.parsedType}),j}return oe(e.data)}}Xt.create=t=>new Xt({typeName:E.ZodNull,...T(t)});class es extends F{constructor(){super(...arguments),this._any=!0}_parse(e){return oe(e.data)}}es.create=t=>new es({typeName:E.ZodAny,...T(t)});class gt extends F{constructor(){super(...arguments),this._unknown=!0}_parse(e){return oe(e.data)}}gt.create=t=>new gt({typeName:E.ZodUnknown,...T(t)});class _e extends F{_parse(e){const s=this._getOrReturnCtx(e);return w(s,{code:x.invalid_type,expected:_.never,received:s.parsedType}),j}}_e.create=t=>new _e({typeName:E.ZodNever,...T(t)});class ts extends F{_parse(e){if(this._getType(e)!==_.undefined){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.void,received:n.parsedType}),j}return oe(e.data)}}ts.create=t=>new ts({typeName:E.ZodVoid,...T(t)});class de extends F{_parse(e){const{ctx:s,status:n}=this._processInputParams(e),r=this._def;if(s.parsedType!==_.array)return w(s,{code:x.invalid_type,expected:_.array,received:s.parsedType}),j;if(r.exactLength!==null){const o=s.data.length>r.exactLength.value,i=s.data.length<r.exactLength.value;(o||i)&&(w(s,{code:o?x.too_big:x.too_small,minimum:i?r.exactLength.value:void 0,maximum:o?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&s.data.length<r.minLength.value&&(w(s,{code:x.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&s.data.length>r.maxLength.value&&(w(s,{code:x.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),s.common.async)return Promise.all([...s.data].map((o,i)=>r.type._parseAsync(new ce(s,o,s.path,i)))).then(o=>Y.mergeArray(n,o));const a=[...s.data].map((o,i)=>r.type._parseSync(new ce(s,o,s.path,i)));return Y.mergeArray(n,a)}get element(){return this._def.type}min(e,s){return new de({...this._def,minLength:{value:e,message:C.toString(s)}})}max(e,s){return new de({...this._def,maxLength:{value:e,message:C.toString(s)}})}length(e,s){return new de({...this._def,exactLength:{value:e,message:C.toString(s)}})}nonempty(e){return this.min(1,e)}}de.create=(t,e)=>new de({type:t,minLength:null,maxLength:null,exactLength:null,typeName:E.ZodArray,...T(e)});function je(t){if(t instanceof G){const e={};for(const s in t.shape){const n=t.shape[s];e[s]=we.create(je(n))}return new G({...t._def,shape:()=>e})}else return t instanceof de?new de({...t._def,type:je(t.element)}):t instanceof we?we.create(je(t.unwrap())):t instanceof Fe?Fe.create(je(t.unwrap())):t instanceof Ee?Ee.create(t.items.map(e=>je(e))):t}class G extends F{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),s=O.objectKeys(e);return this._cached={shape:e,keys:s},this._cached}_parse(e){if(this._getType(e)!==_.object){const c=this._getOrReturnCtx(e);return w(c,{code:x.invalid_type,expected:_.object,received:c.parsedType}),j}const{status:n,ctx:r}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),i=[];if(!(this._def.catchall instanceof _e&&this._def.unknownKeys==="strip"))for(const c in r.data)o.includes(c)||i.push(c);const d=[];for(const c of o){const u=a[c],h=r.data[c];d.push({key:{status:"valid",value:c},value:u._parse(new ce(r,h,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof _e){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of i)d.push({key:{status:"valid",value:u},value:{status:"valid",value:r.data[u]}});else if(c==="strict")i.length>0&&(w(r,{code:x.unrecognized_keys,keys:i}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of i){const h=r.data[u];d.push({key:{status:"valid",value:u},value:c._parse(new ce(r,h,r.path,u)),alwaysSet:u in r.data})}}return r.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of d){const h=await u.key,m=await u.value;c.push({key:h,value:m,alwaysSet:u.alwaysSet})}return c}).then(c=>Y.mergeObjectSync(n,c)):Y.mergeObjectSync(n,d)}get shape(){return this._def.shape()}strict(e){return C.errToObj,new G({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(s,n)=>{var a,o;const r=((o=(a=this._def).errorMap)==null?void 0:o.call(a,s,n).message)??n.defaultError;return s.code==="unrecognized_keys"?{message:C.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new G({...this._def,unknownKeys:"strip"})}passthrough(){return new G({...this._def,unknownKeys:"passthrough"})}extend(e){return new G({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new G({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:E.ZodObject})}setKey(e,s){return this.augment({[e]:s})}catchall(e){return new G({...this._def,catchall:e})}pick(e){const s={};for(const n of O.objectKeys(e))e[n]&&this.shape[n]&&(s[n]=this.shape[n]);return new G({...this._def,shape:()=>s})}omit(e){const s={};for(const n of O.objectKeys(this.shape))e[n]||(s[n]=this.shape[n]);return new G({...this._def,shape:()=>s})}deepPartial(){return je(this)}partial(e){const s={};for(const n of O.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?s[n]=r:s[n]=r.optional()}return new G({...this._def,shape:()=>s})}required(e){const s={};for(const n of O.objectKeys(this.shape))if(e&&!e[n])s[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof we;)a=a._def.innerType;s[n]=a}return new G({...this._def,shape:()=>s})}keyof(){return Is(O.objectKeys(this.shape))}}G.create=(t,e)=>new G({shape:()=>t,unknownKeys:"strip",catchall:_e.create(),typeName:E.ZodObject,...T(e)});G.strictCreate=(t,e)=>new G({shape:()=>t,unknownKeys:"strict",catchall:_e.create(),typeName:E.ZodObject,...T(e)});G.lazycreate=(t,e)=>new G({shape:t,unknownKeys:"strip",catchall:_e.create(),typeName:E.ZodObject,...T(e)});class Ye extends F{_parse(e){const{ctx:s}=this._processInputParams(e),n=this._def.options;function r(a){for(const i of a)if(i.result.status==="valid")return i.result;for(const i of a)if(i.result.status==="dirty")return s.common.issues.push(...i.ctx.common.issues),i.result;const o=a.map(i=>new xe(i.ctx.common.issues));return w(s,{code:x.invalid_union,unionErrors:o}),j}if(s.common.async)return Promise.all(n.map(async a=>{const o={...s,common:{...s.common,issues:[]},parent:null};return{result:await a._parseAsync({data:s.data,path:s.path,parent:o}),ctx:o}})).then(r);{let a;const o=[];for(const d of n){const c={...s,common:{...s.common,issues:[]},parent:null},u=d._parseSync({data:s.data,path:s.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!a&&(a={result:u,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(a)return s.common.issues.push(...a.ctx.common.issues),a.result;const i=o.map(d=>new xe(d));return w(s,{code:x.invalid_union,unionErrors:i}),j}}get options(){return this._def.options}}Ye.create=(t,e)=>new Ye({options:t,typeName:E.ZodUnion,...T(e)});function mt(t,e){const s=ve(t),n=ve(e);if(t===e)return{valid:!0,data:t};if(s===_.object&&n===_.object){const r=O.objectKeys(e),a=O.objectKeys(t).filter(i=>r.indexOf(i)!==-1),o={...t,...e};for(const i of a){const d=mt(t[i],e[i]);if(!d.valid)return{valid:!1};o[i]=d.data}return{valid:!0,data:o}}else if(s===_.array&&n===_.array){if(t.length!==e.length)return{valid:!1};const r=[];for(let a=0;a<t.length;a++){const o=t[a],i=e[a],d=mt(o,i);if(!d.valid)return{valid:!1};r.push(d.data)}return{valid:!0,data:r}}else return s===_.date&&n===_.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}class Xe extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e),r=(a,o)=>{if(Ht(a)||Ht(o))return j;const i=mt(a.value,o.value);return i.valid?((Jt(a)||Jt(o))&&s.dirty(),{status:s.value,value:i.data}):(w(n,{code:x.invalid_intersection_types}),j)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([a,o])=>r(a,o)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}Xe.create=(t,e,s)=>new Xe({left:t,right:e,typeName:E.ZodIntersection,...T(s)});class Ee extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.array)return w(n,{code:x.invalid_type,expected:_.array,received:n.parsedType}),j;if(n.data.length<this._def.items.length)return w(n,{code:x.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),j;!this._def.rest&&n.data.length>this._def.items.length&&(w(n,{code:x.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),s.dirty());const a=[...n.data].map((o,i)=>{const d=this._def.items[i]||this._def.rest;return d?d._parse(new ce(n,o,n.path,i)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>Y.mergeArray(s,o)):Y.mergeArray(s,a)}get items(){return this._def.items}rest(e){return new Ee({...this._def,rest:e})}}Ee.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ee({items:t,typeName:E.ZodTuple,rest:null,...T(e)})};class et extends F{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.object)return w(n,{code:x.invalid_type,expected:_.object,received:n.parsedType}),j;const r=[],a=this._def.keyType,o=this._def.valueType;for(const i in n.data)r.push({key:a._parse(new ce(n,i,n.path,i)),value:o._parse(new ce(n,n.data[i],n.path,i)),alwaysSet:i in n.data});return n.common.async?Y.mergeObjectAsync(s,r):Y.mergeObjectSync(s,r)}get element(){return this._def.valueType}static create(e,s,n){return s instanceof F?new et({keyType:e,valueType:s,typeName:E.ZodRecord,...T(n)}):new et({keyType:pe.create(),valueType:e,typeName:E.ZodRecord,...T(s)})}}class ss extends F{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.map)return w(n,{code:x.invalid_type,expected:_.map,received:n.parsedType}),j;const r=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([i,d],c)=>({key:r._parse(new ce(n,i,n.path,[c,"key"])),value:a._parse(new ce(n,d,n.path,[c,"value"]))}));if(n.common.async){const i=new Map;return Promise.resolve().then(async()=>{for(const d of o){const c=await d.key,u=await d.value;if(c.status==="aborted"||u.status==="aborted")return j;(c.status==="dirty"||u.status==="dirty")&&s.dirty(),i.set(c.value,u.value)}return{status:s.value,value:i}})}else{const i=new Map;for(const d of o){const c=d.key,u=d.value;if(c.status==="aborted"||u.status==="aborted")return j;(c.status==="dirty"||u.status==="dirty")&&s.dirty(),i.set(c.value,u.value)}return{status:s.value,value:i}}}}ss.create=(t,e,s)=>new ss({valueType:e,keyType:t,typeName:E.ZodMap,...T(s)});class We extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.set)return w(n,{code:x.invalid_type,expected:_.set,received:n.parsedType}),j;const r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(w(n,{code:x.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),s.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(w(n,{code:x.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),s.dirty());const a=this._def.valueType;function o(d){const c=new Set;for(const u of d){if(u.status==="aborted")return j;u.status==="dirty"&&s.dirty(),c.add(u.value)}return{status:s.value,value:c}}const i=[...n.data.values()].map((d,c)=>a._parse(new ce(n,d,n.path,c)));return n.common.async?Promise.all(i).then(d=>o(d)):o(i)}min(e,s){return new We({...this._def,minSize:{value:e,message:C.toString(s)}})}max(e,s){return new We({...this._def,maxSize:{value:e,message:C.toString(s)}})}size(e,s){return this.min(e,s).max(e,s)}nonempty(e){return this.min(1,e)}}We.create=(t,e)=>new We({valueType:t,minSize:null,maxSize:null,typeName:E.ZodSet,...T(e)});class ns extends F{get schema(){return this._def.getter()}_parse(e){const{ctx:s}=this._processInputParams(e);return this._def.getter()._parse({data:s.data,path:s.path,parent:s})}}ns.create=(t,e)=>new ns({getter:t,typeName:E.ZodLazy,...T(e)});class pt extends F{_parse(e){if(e.data!==this._def.value){const s=this._getOrReturnCtx(e);return w(s,{received:s.data,code:x.invalid_literal,expected:this._def.value}),j}return{status:"valid",value:e.data}}get value(){return this._def.value}}pt.create=(t,e)=>new pt({value:t,typeName:E.ZodLiteral,...T(e)});function Is(t,e){return new Ae({values:t,typeName:E.ZodEnum,...T(e)})}class Ae extends F{_parse(e){if(typeof e.data!="string"){const s=this._getOrReturnCtx(e),n=this._def.values;return w(s,{expected:O.joinValues(n),received:s.parsedType,code:x.invalid_type}),j}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const s=this._getOrReturnCtx(e),n=this._def.values;return w(s,{received:s.data,code:x.invalid_enum_value,options:n}),j}return oe(e.data)}get options(){return this._def.values}get enum(){const e={};for(const s of this._def.values)e[s]=s;return e}get Values(){const e={};for(const s of this._def.values)e[s]=s;return e}get Enum(){const e={};for(const s of this._def.values)e[s]=s;return e}extract(e,s=this._def){return Ae.create(e,{...this._def,...s})}exclude(e,s=this._def){return Ae.create(this.options.filter(n=>!e.includes(n)),{...this._def,...s})}}Ae.create=Is;class rs extends F{_parse(e){const s=O.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==_.string&&n.parsedType!==_.number){const r=O.objectValues(s);return w(n,{expected:O.joinValues(r),received:n.parsedType,code:x.invalid_type}),j}if(this._cache||(this._cache=new Set(O.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=O.objectValues(s);return w(n,{received:n.data,code:x.invalid_enum_value,options:r}),j}return oe(e.data)}get enum(){return this._def.values}}rs.create=(t,e)=>new rs({values:t,typeName:E.ZodNativeEnum,...T(e)});class tt extends F{unwrap(){return this._def.type}_parse(e){const{ctx:s}=this._processInputParams(e);if(s.parsedType!==_.promise&&s.common.async===!1)return w(s,{code:x.invalid_type,expected:_.promise,received:s.parsedType}),j;const n=s.parsedType===_.promise?s.data:Promise.resolve(s.data);return oe(n.then(r=>this._def.type.parseAsync(r,{path:s.path,errorMap:s.common.contextualErrorMap})))}}tt.create=(t,e)=>new tt({type:t,typeName:E.ZodPromise,...T(e)});class Me extends F{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===E.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:s,ctx:n}=this._processInputParams(e),r=this._def.effect||null,a={addIssue:o=>{w(n,o),o.fatal?s.abort():s.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),r.type==="preprocess"){const o=r.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async i=>{if(s.value==="aborted")return j;const d=await this._def.schema._parseAsync({data:i,path:n.path,parent:n});return d.status==="aborted"?j:d.status==="dirty"||s.value==="dirty"?Le(d.value):d});{if(s.value==="aborted")return j;const i=this._def.schema._parseSync({data:o,path:n.path,parent:n});return i.status==="aborted"?j:i.status==="dirty"||s.value==="dirty"?Le(i.value):i}}if(r.type==="refinement"){const o=i=>{const d=r.refinement(i,a);if(n.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return i};if(n.common.async===!1){const i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?j:(i.status==="dirty"&&s.dirty(),o(i.value),{status:s.value,value:i.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>i.status==="aborted"?j:(i.status==="dirty"&&s.dirty(),o(i.value).then(()=>({status:s.value,value:i.value}))))}if(r.type==="transform")if(n.common.async===!1){const o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Ne(o))return j;const i=r.transform(o.value,a);if(i instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:s.value,value:i}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Ne(o)?Promise.resolve(r.transform(o.value,a)).then(i=>({status:s.value,value:i})):j);O.assertNever(r)}}Me.create=(t,e,s)=>new Me({schema:t,typeName:E.ZodEffects,effect:e,...T(s)});Me.createWithPreprocess=(t,e,s)=>new Me({schema:e,effect:{type:"preprocess",transform:t},typeName:E.ZodEffects,...T(s)});class we extends F{_parse(e){return this._getType(e)===_.undefined?oe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}we.create=(t,e)=>new we({innerType:t,typeName:E.ZodOptional,...T(e)});class Fe extends F{_parse(e){return this._getType(e)===_.null?oe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Fe.create=(t,e)=>new Fe({innerType:t,typeName:E.ZodNullable,...T(e)});class xt extends F{_parse(e){const{ctx:s}=this._processInputParams(e);let n=s.data;return s.parsedType===_.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:s.path,parent:s})}removeDefault(){return this._def.innerType}}xt.create=(t,e)=>new xt({innerType:t,typeName:E.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...T(e)});class bt extends F{_parse(e){const{ctx:s}=this._processInputParams(e),n={...s,common:{...s.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Qe(r)?r.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new xe(n.common.issues)},input:n.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new xe(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}bt.create=(t,e)=>new bt({innerType:t,typeName:E.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...T(e)});class as extends F{_parse(e){if(this._getType(e)!==_.nan){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.nan,received:n.parsedType}),j}return{status:"valid",value:e.data}}}as.create=t=>new as({typeName:E.ZodNaN,...T(t)});class Ir extends F{_parse(e){const{ctx:s}=this._processInputParams(e),n=s.data;return this._def.type._parse({data:n,path:s.path,parent:s})}unwrap(){return this._def.type}}class It extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?j:a.status==="dirty"?(s.dirty(),Le(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{const r=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return r.status==="aborted"?j:r.status==="dirty"?(s.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:n.path,parent:n})}}static create(e,s){return new It({in:e,out:s,typeName:E.ZodPipeline})}}class yt extends F{_parse(e){const s=this._def.innerType._parse(e),n=r=>(Ne(r)&&(r.value=Object.freeze(r.value)),r);return Qe(s)?s.then(r=>n(r)):n(s)}unwrap(){return this._def.innerType}}yt.create=(t,e)=>new yt({innerType:t,typeName:E.ZodReadonly,...T(e)});var E;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(E||(E={}));const M=pe.create,Nt=Te.create,me=ht.create,vt=gt.create;_e.create;const Tt=de.create,ae=G.create,At=Ye.create;Xe.create;Ee.create;const Mt=et.create,os=pt.create,Be=Ae.create;tt.create;we.create;Fe.create;const Ns=Be(["default","autoEdit","yolo","plan","spec"]),Ue={DEFAULT:"default",AUTO_EDIT:"autoEdit",PLAN:"plan",SPEC:"spec"},Ts=Be(["user","assistant","system","tool"]),Nr=At([ae({type:os("text"),text:M()}),ae({type:os("image_url"),image_url:ae({url:M()})})]);ae({id:M(),role:Ts,content:At([M(),Tt(Nr)]),timestamp:Nt(),metadata:Mt(vt()).optional(),thinkingContent:M().optional(),tool_call_id:M().optional(),name:M().optional(),tool_calls:vt().optional()});ae({sessionId:M(),projectPath:M(),title:M().optional(),gitBranch:M().optional(),messageCount:Nt(),firstMessageTime:M(),lastMessageTime:M(),hasErrors:me(),filePath:M().optional()});ae({type:M(),properties:Mt(vt())});ae({content:M(),permissionMode:Ns.optional(),attachments:Tt(ae({type:Be(["file","image","url"]),path:M().optional(),url:M().optional(),content:M().optional(),mimeType:M().optional(),name:M().optional()})).optional()});ae({messageId:M(),role:Ts,content:M(),timestamp:M()});ae({approved:me(),remember:me().optional(),scope:Be(["once","session"]).optional(),targetMode:Ns.optional(),feedback:M().optional(),answers:Mt(At([M(),Tt(M())])).optional()});ae({id:M(),name:M(),provider:M(),model:M(),baseUrl:M().optional(),apiKey:M().optional(),maxContextTokens:Nt().optional()});Be(["vs-dark","vs-light","hc-black"]);const Tr=Be(["light","dark","system"]),Ar=ae({language:M(),theme:M(),uiTheme:Tr,autoSaveSessions:me(),notifyBuild:me(),notifyErrors:me(),notifySounds:me(),privacyTelemetry:me(),privacyCrash:me()});Ar.partial();const As=Et(t=>({currentModelId:null,currentMode:Ue.DEFAULT,configuredModels:[],availableModels:[],isLoading:!1,error:null,loadModels:async()=>{t({isLoading:!0,error:null});try{const e=await fetch("/models");if(!e.ok)throw new Error("Failed to load models");const s=await e.json(),n=s.current;t({currentModelId:(n==null?void 0:n.id)||null,configuredModels:s.configured||[],availableModels:s.available||[],isLoading:!1})}catch(e){t({error:e.message,isLoading:!1})}},setCurrentModel:async e=>{try{if(!(await fetch("/configs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({updates:{currentModelId:e},options:{scope:"global"}})})).ok)throw new Error("Failed to set model");t({currentModelId:e})}catch(s){t({error:s.message})}},setMode:e=>t({currentMode:e})})),ot="__temp__",kt={inputTokens:0,outputTokens:0,totalTokens:0,maxContextTokens:128e3,isDefaultMaxTokens:!0},Mr=2166136261,Fr=16777619;function wt(t){return t==null?"":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):Array.isArray(t)?`[${t.map(e=>wt(e)).join(",")}]`:typeof t=="object"?`{${Object.entries(t).sort(([s],[n])=>s.localeCompare(n)).map(([s,n])=>`${JSON.stringify(s)}:${wt(n)}`).join(",")}}`:JSON.stringify(t)}function Ms(t){let e=Mr>>>0;for(let s=0;s<t.length;s+=1)e^=t.charCodeAt(s),e=Math.imul(e,Fr);return(e>>>0).toString(16)}function Fs(t){return typeof t=="string"?t:wt(t??{})}function Rr(t){return t==="completed"?"completed":t==="failed"?"failed":"running"}function _t({explicitId:t,messageId:e,toolName:s,argumentsValue:n,toolKind:r,output:a}){if(t)return t;const o=[e||"unknown-message",s||"Unknown",Fs(n),r||"",a||""].join("|");return`tool-${Ms(o)}`}function Ft({explicitId:t,sessionId:e,messageId:s,agentType:n,description:r,summary:a}){if(t)return t;if(e)return e;const o=[s||"unknown-message",n||"subagent",r||"",a||""].join("|");return`subagent-${Ms(o)}`}const Or=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),zr=(t,e)=>{if(!e||typeof e!="object"||!("subtaskRef"in e))return null;const s=e.subtaskRef;return!s||typeof s!="object"?null:{id:Ft({explicitId:typeof s.subagentId=="string"?s.subagentId:void 0,sessionId:s.childSessionId,messageId:t,agentType:s.agentType,description:s.description,summary:s.summary}),type:s.agentType||"subagent",description:s.description||s.summary||"",status:Rr(s.status),startTime:Date.now(),sessionId:s.childSessionId}};function De(t){return typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
4
+ `)}function Rs(t){var n,r,a;const e=[];let s=null;for(const o of t)if(o.role==="user"||o.role==="system")s&&(e.push(s),s=null),e.push({id:o.id,role:o.role,content:o.content,timestamp:o.timestamp||Date.now(),metadata:o.metadata});else if(o.role==="assistant"){s&&e.push(s);const i=o.metadata,d=Or();if(d.textBefore=De(o.content),o.thinkingContent&&(d.thinkingContent=o.thinkingContent),d.subagent=zr(o.id,i),o.tool_calls&&Array.isArray(o.tool_calls))for(const c of o.tool_calls){const u=((n=c.function)==null?void 0:n.name)||"Unknown",h=Fs((r=c.function)==null?void 0:r.arguments),m={toolCallId:_t({explicitId:c.id,messageId:o.id,toolName:u,argumentsValue:(a=c.function)==null?void 0:a.arguments}),toolName:u,arguments:h,status:"running",startTime:Date.now()};d.toolCalls.push(m)}s={id:o.id,role:"assistant",content:De(o.content),timestamp:o.timestamp||Date.now(),metadata:i,agentContent:d}}else if(o.role==="tool"&&s&&s.agentContent){const i=o,d=o.metadata,c=i.tool_call_id||(d==null?void 0:d.toolCallId),u=i.name||(d==null?void 0:d.toolName)||"Tool",h=s.agentContent.toolCalls.find(m=>m.toolCallId===c);h?(h.output=De(o.content),h.status="success",(!h.toolName||h.toolName==="Unknown")&&(h.toolName=u)):s.agentContent.toolCalls.push({toolCallId:_t({explicitId:c,messageId:s.id,toolName:u,output:De(o.content)}),toolName:u,output:De(o.content),status:"success",startTime:Date.now()})}return s&&e.push(s),e}const Br=t=>{var s;const e=[];t.content.trim()&&e.push({type:"text",text:t.content});for(const n of t.attachments??[])n.type==="image"&&e.push({type:"image_url",image_url:{url:n.content}});return e.length===0?t.content:e.length===1&&((s=e[0])==null?void 0:s.type)==="text"?e[0].text:e},Pr=(t,e)=>({sessions:[],currentSessionId:null,isTemporarySession:!1,isLoading:!1,error:null,setSessions:s=>t({sessions:s}),addSession:s=>t(n=>({sessions:[...n.sessions,s]})),removeSession:s=>t(n=>({sessions:n.sessions.filter(r=>r.sessionId!==s),currentSessionId:n.currentSessionId===s?null:n.currentSessionId,messages:n.currentSessionId===s?[]:n.messages})),setCurrentSession:s=>t({currentSessionId:s,isTemporarySession:!1}),setTemporarySession:s=>t({isTemporarySession:s}),setLoading:s=>t({isLoading:s}),setError:s=>t({error:s}),clearError:()=>t({error:null}),startTemporarySession:()=>t({currentSessionId:ot,isTemporarySession:!0,messages:[],tokenUsage:{...kt},error:null}),loadSessions:async()=>{t({isLoading:!0,error:null});try{const s=await le.listSessions();t({sessions:s,isLoading:!1})}catch(s){t({error:s.message,isLoading:!1})}},selectSession:async s=>{t({isLoading:!0,error:null,currentSessionId:s,isTemporarySession:!1});try{const n=await le.getMessages(s),r=Rs(n);t({messages:r,isLoading:!1,tokenUsage:{...kt}})}catch(n){t({error:n.message,isLoading:!1})}},deleteSession:async s=>{try{await le.deleteSession(s),t(n=>({sessions:n.sessions.filter(r=>r.sessionId!==s),currentSessionId:n.currentSessionId===s?null:n.currentSessionId,messages:n.currentSessionId===s?[]:n.messages}))}catch(n){t({error:n.message})}},sendMessage:async s=>{const{currentSessionId:n,isTemporarySession:r,subscribeToEvents:a,addSession:o,addMessage:i}=e();let d=n;if(r||!n||n===ot)try{const c=await le.createSession();o(c),t({currentSessionId:c.sessionId,isTemporarySession:!1}),d=c.sessionId}catch(c){t({error:c.message});return}if(!d||d===ot){t({error:"Failed to create session"});return}i({id:`temp-${Date.now()}`,role:"user",content:Br(s),timestamp:Date.now()}),t({isStreaming:!0,error:null}),a(d);try{const{currentMode:c}=As.getState(),u=await le.sendMessage(d,s,c);t({currentRunId:u.runId})}catch(c){t({error:c.message,isStreaming:!1})}},abortSession:async()=>{const{currentSessionId:s,unsubscribeFromEvents:n}=e();if(n(),t({isStreaming:!1,currentRunId:null}),s)try{await le.abortSession(s)}catch{}}}),$r={flushTimeout:80};class Dr{constructor(e){nt(this,"config");nt(this,"channels",new Map);this.config={...$r,...e}}append(e,s,n){let r=this.channels.get(e);r||(r={buffer:"",timer:null,flushFn:null},this.channels.set(e,r)),r.buffer+=s,r.flushFn=n,r.timer||(r.timer=setTimeout(()=>{this.flushChannel(e)},this.config.flushTimeout))}flushChannel(e){const s=this.channels.get(e);if(!s||!s.buffer)return;const n=s.buffer,r=s.flushFn;s.buffer="",s.timer&&(clearTimeout(s.timer),s.timer=null),r==null||r(n)}drainAll(){for(const[e]of this.channels)this.flushChannel(e);this.channels.clear()}reset(){for(const[,e]of this.channels)e.timer&&clearTimeout(e.timer);this.channels.clear()}}const ke=new Dr,Re=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),Zr=(t,e,s)=>{const{currentAssistantMessageId:n,messages:r,addMessage:a,startAgentResponse:o}=t();if(n&&!n.startsWith("call_"))return n;if(s){const u=r.find(h=>h.id===s&&h.role==="assistant");if(u)return o(u.id),u.id}const i=r[r.length-1];if((i==null?void 0:i.role)==="assistant")return i.id;const d=s||`assistant-${Date.now()}`,c={id:d,role:"assistant",content:"",timestamp:Date.now(),agentContent:Re()};return a(c),o(d),e(u=>({messages:u.messages.map(h=>h.id===d?{...h,agentContent:{...h.agentContent||Re()}}:h)})),d},Lr=(t,e,s)=>{const{currentSessionId:n,addMessage:r,startAgentResponse:a,messages:o,updateMessage:i}=e();if(t.sessionId!==n)return;const d=t.messageId,c=t.role||"assistant",u=o.find(m=>m.id===d),h={id:d,role:c,content:t.content||"",timestamp:Date.now(),agentContent:c==="assistant"?Re():void 0};u?i(d,{role:c,content:h.content,agentContent:c==="assistant"?{...u.agentContent||Re()}:void 0}):r(h),c==="assistant"&&a(d)},Ur=(t,e,s)=>{const{currentSessionId:n,appendDelta:r,currentAssistantMessageId:a,hasToolCalls:o,addMessage:i,startAgentResponse:d}=e();if(t.sessionId!==n)return;const c=t.messageId,u=t.delta;if(!a){const m={id:c,role:"assistant",content:"",timestamp:Date.now(),agentContent:Re()};i(m),d(c),s(f=>({messages:f.messages.map(g=>g.id===c?{...g,agentContent:{...g.agentContent||Re(),textBefore:u}}:g)}));return}r(a,u,o?"after":"before")},Vr=(t,e)=>{const{currentSessionId:s,updateMessage:n,messages:r}=e();if(t.sessionId!==s)return;const a=t.messageId,o=r.find(i=>i.id===a);if(o!=null&&o.agentContent){const{textBefore:i,textAfter:d}=o.agentContent;n(a,{content:i+d})}},qr=(t,e)=>{const{currentSessionId:s,appendThinking:n,currentAssistantMessageId:r}=e();t.sessionId===s&&r&&n(r,t.delta)},Gr=()=>{},Wr=(t,e,s)=>{const{currentSessionId:n,appendToolCall:r,setHasToolCalls:a,setSubagent:o}=e();if(t.sessionId!==n)return;const i=Zr(e,s,t.messageId||t.toolCallId);if(!i)return;a(!0);const d=t.toolName||"Unknown",c=t.arguments;let u,h="",m;if(d==="Task")try{const g=JSON.parse(c);u=g.subagent_type,h=g.description||g.query||u||"",m=g.subagent_session_id}catch{}if(u){o(i,{id:Ft({explicitId:t.toolCallId,sessionId:m,messageId:i,agentType:u,description:h}),type:u,description:h,status:"running",startTime:Date.now(),sessionId:m,output:"",thinking:""});return}const f={toolCallId:_t({explicitId:t.toolCallId,messageId:i,toolName:d,argumentsValue:c,toolKind:t.toolKind}),toolName:d,arguments:c,toolKind:t.toolKind,status:"running",startTime:Date.now()};r(i,f)},Hr=(t,e,s)=>{var b,I,Q,H;const{currentSessionId:n,updateToolCall:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId;if(!o)return;const i=a.find(Z=>{var L;return(L=Z.agentContent)==null?void 0:L.toolCalls.some(P=>P.toolCallId===o)});console.log("[handleToolResult]",{toolCallId:o,foundMessage:!!i,messageId:i==null?void 0:i.id,toolCallsInMessage:(b=i==null?void 0:i.agentContent)==null?void 0:b.toolCalls.map(Z=>Z.toolCallId),success:t.success});const d=t.messageId||(i==null?void 0:i.id)||((I=[...a].reverse().find(Z=>Z.role==="assistant"))==null?void 0:I.id);if(!d){console.log("[handleToolResult] No targetMessageId found!");return}const c=t.output,u=t.summary||(c&&c.trim()?c.trim().split(`
5
+ `)[0].slice(0,120):t.success?"执行成功":"执行失败");console.log("[handleToolResult] Updating tool call",{targetMessageId:d,toolCallId:o,status:t.success?"success":"error"}),r(d,o,{status:t.success?"success":"error",summary:u,output:c,metadata:t.metadata});const h=a.find(Z=>Z.id===d);((H=(Q=h==null?void 0:h.agentContent)==null?void 0:Q.subagent)==null?void 0:H.id)===o&&s(Z=>({messages:Z.messages.map(L=>{var P;return L.id!==d||!((P=L.agentContent)!=null&&P.subagent)?L:{...L,agentContent:{...L.agentContent,subagent:{...L.agentContent.subagent,status:t.success?"completed":"failed"}}}})}));const m=t.metadata,f=m&&typeof m.subagentSessionId=="string"?m.subagentSessionId:void 0,g=m&&typeof m.subagentStatus=="string"?m.subagentStatus:void 0,v=m&&typeof m.subagentType=="string"?m.subagentType:void 0,k=m&&typeof m.subagentSummary=="string"?m.subagentSummary:void 0;f&&g&&s(Z=>({messages:Z.messages.map(L=>{if(L.id!==d)return L;const P=L.metadata??{},B=P.subtaskRef,X={...B??{},childSessionId:f,agentType:v||(typeof(B==null?void 0:B.agentType)=="string"?B.agentType:"subagent"),status:g,summary:k||(typeof(B==null?void 0:B.summary)=="string"?B.summary:"")};return{...L,metadata:{...P,subtaskRef:X}}})}))},Jr=(t,e)=>{const{currentSessionId:s,updateTokenUsage:n,setMaxContextTokens:r}=e();t.sessionId===s&&(n({inputTokens:t.inputTokens,outputTokens:t.outputTokens,totalTokens:t.totalTokens}),t.maxContextTokens&&r(t.maxContextTokens,!1))},Qr=(t,e)=>{const{currentSessionId:s,setTasks:n,currentAssistantMessageId:r}=e();if(t.sessionId!==s||!r)return;const a=t.tasks||[];n(r,a)},Kr=(t,e)=>{const{currentSessionId:s,setSubagent:n,currentAssistantMessageId:r}=e();if(t.sessionId!==s||!r)return;const a={id:Ft({explicitId:t.subagentId,sessionId:t.subagentSessionId,messageId:r,agentType:t.type,description:t.description}),type:t.type||"unknown",description:t.description||"",status:"running",startTime:Date.now()};n(r,a)},Yr=(t,e,s)=>{var c,u,h;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.subagentSessionId,i=o?(c=a.find(m=>{var f,g;return((g=(f=m.agentContent)==null?void 0:f.subagent)==null?void 0:g.sessionId)===o}))==null?void 0:c.id:r||((u=[...a].reverse().find(m=>{var f;return(f=m.agentContent)==null?void 0:f.subagent}))==null?void 0:u.id);if(!i)return;const d=a.find(m=>m.id===i);(h=d==null?void 0:d.agentContent)!=null&&h.subagent&&s(m=>({messages:m.messages.map(f=>{var g;return f.id!==i||!((g=f.agentContent)!=null&&g.subagent)?f:{...f,agentContent:{...f.agentContent,subagent:{...f.agentContent.subagent,sessionId:f.agentContent.subagent.sessionId||o,currentTool:t.toolName}}}})}))},Xr=(t,e,s)=>{var c,u,h;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.delta;if(!o)return;const i=t.subagentSessionId,d=i?((c=a.find(m=>{var f,g;return((g=(f=m.agentContent)==null?void 0:f.subagent)==null?void 0:g.sessionId)===i}))==null?void 0:c.id)||((u=a.find(m=>{var f,g;return((g=(f=m.agentContent)==null?void 0:f.subagent)==null?void 0:g.status)==="running"}))==null?void 0:u.id):r||((h=[...a].reverse().find(m=>{var f;return(f=m.agentContent)==null?void 0:f.subagent}))==null?void 0:h.id);d&&s(m=>({messages:m.messages.map(f=>{var g;return f.id!==d||!((g=f.agentContent)!=null&&g.subagent)?f:{...f,agentContent:{...f.agentContent,subagent:{...f.agentContent.subagent,sessionId:f.agentContent.subagent.sessionId||i,output:(f.agentContent.subagent.output||"")+o}}}})}))},ea=(t,e,s)=>{var c,u,h;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.delta;if(!o)return;const i=t.subagentSessionId,d=i?((c=a.find(m=>{var f,g;return((g=(f=m.agentContent)==null?void 0:f.subagent)==null?void 0:g.sessionId)===i}))==null?void 0:c.id)||((u=a.find(m=>{var f,g;return((g=(f=m.agentContent)==null?void 0:f.subagent)==null?void 0:g.status)==="running"}))==null?void 0:u.id):r||((h=[...a].reverse().find(m=>{var f;return(f=m.agentContent)==null?void 0:f.subagent}))==null?void 0:h.id);d&&s(m=>({messages:m.messages.map(f=>{var g;return f.id!==d||!((g=f.agentContent)!=null&&g.subagent)?f:{...f,agentContent:{...f.agentContent,subagent:{...f.agentContent.subagent,sessionId:f.agentContent.subagent.sessionId||i,thinking:(f.agentContent.subagent.thinking||"")+o}}}})}))},ta=(t,e,s)=>{var c,u,h,m;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.subagentSessionId,i=o?((c=a.find(f=>{var g,v;return((v=(g=f.agentContent)==null?void 0:g.subagent)==null?void 0:v.sessionId)===o}))==null?void 0:c.id)||((u=a.find(f=>{var g,v;return((v=(g=f.agentContent)==null?void 0:g.subagent)==null?void 0:v.status)==="running"}))==null?void 0:u.id):r||((h=[...a].reverse().find(f=>{var g;return(g=f.agentContent)==null?void 0:g.subagent}))==null?void 0:h.id);if(!i)return;const d=a.find(f=>f.id===i);(m=d==null?void 0:d.agentContent)!=null&&m.subagent&&s(f=>({messages:f.messages.map(g=>{var v;return g.id!==i||!((v=g.agentContent)!=null&&v.subagent)?g:{...g,agentContent:{...g.agentContent,subagent:{...g.agentContent.subagent,sessionId:g.agentContent.subagent.sessionId||o,status:t.success?"completed":"failed"}}}})}))},sa=(t,e,s)=>{var h,m,f;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId,i=t.toolName;if(!o||!i)return;const d=t.subagentSessionId,c=d?((h=a.find(g=>{var v,k;return((k=(v=g.agentContent)==null?void 0:v.subagent)==null?void 0:k.sessionId)===d}))==null?void 0:h.id)||((m=a.find(g=>{var v,k;return((k=(v=g.agentContent)==null?void 0:v.subagent)==null?void 0:k.status)==="running"}))==null?void 0:m.id):r||((f=[...a].reverse().find(g=>{var v;return(v=g.agentContent)==null?void 0:v.subagent}))==null?void 0:f.id);if(!c)return;const u={toolCallId:o,toolName:i,arguments:t.arguments,toolKind:t.toolKind,status:"running",startTime:Date.now()};s(g=>({messages:g.messages.map(v=>{var b;if(v.id!==c||!((b=v.agentContent)!=null&&b.subagent))return v;const k=v.agentContent.subagent.toolCalls||[];return k.some(I=>I.toolCallId===o)?v:{...v,agentContent:{...v.agentContent,subagent:{...v.agentContent.subagent,sessionId:v.agentContent.subagent.sessionId||d,toolCalls:[...k,u]}}}})}))},na=(t,e,s)=>{var f,g,v;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId;if(!o)return;const i=t.subagentSessionId,d=i?((f=a.find(k=>{var b,I;return((I=(b=k.agentContent)==null?void 0:b.subagent)==null?void 0:I.sessionId)===i}))==null?void 0:f.id)||((g=a.find(k=>{var b,I;return((I=(b=k.agentContent)==null?void 0:b.subagent)==null?void 0:I.status)==="running"}))==null?void 0:g.id):r||((v=[...a].reverse().find(k=>{var b;return(b=k.agentContent)==null?void 0:b.subagent}))==null?void 0:v.id);if(!d)return;const c=t.output,u=t.success===!0,h=u?"success":"error",m=t.summary||(c&&c.trim()?c.trim().split(`
6
+ `)[0].slice(0,120):u?"执行成功":"执行失败");s(k=>({messages:k.messages.map(b=>{var H;if(b.id!==d||!((H=b.agentContent)!=null&&H.subagent))return b;const Q=(b.agentContent.subagent.toolCalls||[]).map(Z=>Z.toolCallId===o?{...Z,status:h,summary:m,output:c,metadata:t.metadata}:Z);return{...b,agentContent:{...b.agentContent,subagent:{...b.agentContent.subagent,sessionId:b.agentContent.subagent.sessionId||i,toolCalls:Q}}}})}))},ra=(t,e,s)=>{const{currentSessionId:n,setConfirmation:r,messages:a}=e();if(t.sessionId!==n)return;const o=[...a].reverse().find(c=>c.role==="assistant");if(!o)return;const i=t.details,d=t.toolName||(i==null?void 0:i.toolName)||"Edit";r(o.id,{toolCallId:t.requestId||"",toolName:d,description:t.description,diff:(i==null?void 0:i.details)||(i==null?void 0:i.diff)||"",status:"pending"}),s({agentPhase:"waiting_permission"})},aa=(t,e,s)=>{var c;const{currentSessionId:n,messages:r,setConfirmation:a}=e();if(t.sessionId!==n)return;const o=t.requestId,i=r.find(u=>{var h,m;return((m=(h=u.agentContent)==null?void 0:h.confirmation)==null?void 0:m.toolCallId)===o}),d=(c=i==null?void 0:i.agentContent)==null?void 0:c.confirmation;i&&(d==null?void 0:d.status)==="pending"&&a(i.id,{...d,status:"denied"}),s({agentPhase:"running",error:"Permission request timed out"})},oa=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"running"})},ia=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"compacting"})},la=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"running"})},da=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"switching_model"})},ca=(t,e)=>{const{currentSessionId:s,setQuestion:n,currentAssistantMessageId:r}=e();t.sessionId===s&&r&&n(r,{toolCallId:t.toolCallId,questions:t.questions,status:"pending"})},ua=(t,e)=>{const{currentSessionId:s,endAgentResponse:n}=e();t.sessionId===s&&n()},fa=(t,e,s)=>{const{currentSessionId:n,endAgentResponse:r}=e();t.sessionId===n&&(s({agentPhase:"error",error:t.error||"An error occurred"}),r())},ha=(t,e,s)=>{const{currentSessionId:n}=e();t.sessionId===n&&(t.status==="idle"?s({isStreaming:!1,agentPhase:"idle"}):t.status==="running"?s({agentPhase:"running"}):t.status==="error"&&s({agentPhase:"error"}))},ga=(t,e,s)=>{const{currentSessionId:n,endAgentResponse:r}=e();t.sessionId===n&&(s(a=>({isStreaming:!1,agentPhase:"idle",messages:a.messages.map(o=>{var i;return!((i=o.agentContent)!=null&&i.subagent)||o.agentContent.subagent.status!=="running"?o:{...o,agentContent:{...o.agentContent,subagent:{...o.agentContent.subagent,status:"failed"}}}})})),r())},it={"message.created":Lr,"message.delta":Ur,"message.complete":Vr,"thinking.delta":qr,"thinking.completed":Gr,"tool.start":Wr,"tool.result":Hr,"token.usage":Jr,"task.updated":Qr,"subagent.start":Kr,"subagent.update":Yr,"subagent.delta":Xr,"subagent.thinking.delta":ea,"subagent.tool.start":sa,"subagent.tool.result":na,"subagent.complete":ta,"permission.asked":ra,"permission.timeout":aa,"turn.started":oa,"compaction.started":ia,"compaction.completed":la,"model.fallback":da,"question.required":ca,"session.completed":ua,"session.error":fa,"session.status":ha,"run.cancelled":ga},ma=new Set(["message.delta","thinking.delta","subagent.delta","subagent.thinking.delta"]),pa=new Set(["message.complete","thinking.completed","session.completed","session.error","run.cancelled"]),He=(t,e,s)=>{var n,r,a;return s?((n=t.find(o=>{var i,d;return((d=(i=o.agentContent)==null?void 0:i.subagent)==null?void 0:d.sessionId)===s}))==null?void 0:n.id)||((r=t.find(o=>{var i,d;return((d=(i=o.agentContent)==null?void 0:i.subagent)==null?void 0:d.status)==="running"}))==null?void 0:r.id):e||((a=[...t].reverse().find(o=>{var i;return(i=o.agentContent)==null?void 0:i.subagent}))==null?void 0:a.id)},is=(t,e)=>s=>{if(ma.has(s.type)||console.log("[SSE Event]",s.type,s.properties),pa.has(s.type)){ke.drainAll();const r=it[s.type];r&&r(s.properties,t,e);return}if(s.type==="message.delta"){const r=s.properties,{currentSessionId:a,currentAssistantMessageId:o,hasToolCalls:i}=t();if(r.sessionId!==a)return;const d=r.messageId||o,c=r.delta;if(!o){const m=it["message.delta"];m&&m(r,t,e);return}const u=i?"after":"before",h=`content:${d}:${u}`;ke.append(h,c,m=>{const{appendDelta:f}=t();d&&f(d,m,u)});return}if(s.type==="thinking.delta"){const r=s.properties,{currentSessionId:a,currentAssistantMessageId:o}=t();if(r.sessionId!==a||!o)return;const i=r.delta,d=o,c=`thinking:${d}`;ke.append(c,i,u=>{const{appendThinking:h}=t();d&&h(d,u)});return}if(s.type==="subagent.delta"){const r=s.properties,{currentSessionId:a}=t();if(r.sessionId!==a)return;const o=r.delta;if(!o)return;const i=r.subagentSessionId||"",d=`subagent:${i}`,{currentAssistantMessageId:c,messages:u}=t(),h=He(u,c,i);ke.append(d,o,m=>{const{currentAssistantMessageId:f,messages:g}=t(),v=h||He(g,f,i);v&&e(k=>({messages:k.messages.map(b=>{var I;return b.id!==v||!((I=b.agentContent)!=null&&I.subagent)?b:{...b,agentContent:{...b.agentContent,subagent:{...b.agentContent.subagent,sessionId:b.agentContent.subagent.sessionId||i,output:(b.agentContent.subagent.output||"")+m}}}})}))});return}if(s.type==="subagent.thinking.delta"){const r=s.properties,{currentSessionId:a}=t();if(r.sessionId!==a)return;const o=r.delta;if(!o)return;const i=r.subagentSessionId||"",d=`subagent-thinking:${i}`,{currentAssistantMessageId:c,messages:u}=t(),h=He(u,c,i);ke.append(d,o,m=>{const{currentAssistantMessageId:f,messages:g}=t(),v=h||He(g,f,i);v&&e(k=>({messages:k.messages.map(b=>{var I;return b.id!==v||!((I=b.agentContent)!=null&&I.subagent)?b:{...b,agentContent:{...b.agentContent,subagent:{...b.agentContent.subagent,sessionId:b.agentContent.subagent.sessionId||i,thinking:(b.agentContent.subagent.thinking||"")+m}}}})}))});return}const n=it[s.type];n&&n(s.properties,t,e)},xa=(t,e)=>({isStreaming:!1,agentPhase:"idle",currentRunId:null,eventUnsubscribe:null,currentAssistantMessageId:null,hasToolCalls:!1,setStreaming:s=>t({isStreaming:s}),setAgentPhase:s=>t({agentPhase:s}),setRunId:s=>t({currentRunId:s}),setCurrentAssistantMessageId:s=>t({currentAssistantMessageId:s}),setHasToolCalls:s=>t({hasToolCalls:s}),startAgentResponse:s=>{t({currentAssistantMessageId:s,hasToolCalls:!1,isStreaming:!0,agentPhase:"running"})},endAgentResponse:()=>{ke.drainAll(),t({currentAssistantMessageId:null,hasToolCalls:!1,isStreaming:!1,agentPhase:"idle",currentRunId:null})},subscribeToEvents:s=>{const{eventUnsubscribe:n}=e();n&&n(),ke.reset();const r=is(e,t),a=le.subscribeEvents(s,r);t({eventUnsubscribe:a})},unsubscribeFromEvents:()=>{const{eventUnsubscribe:s}=e();s&&(ke.drainAll(),s(),t({eventUnsubscribe:null}))},handleEvent:s=>{is(e,t)(s)}}),ba=t=>({tokenUsage:kt,updateTokenUsage:e=>t(s=>({tokenUsage:{...s.tokenUsage,...e}})),setMaxContextTokens:(e,s=!1)=>t(n=>({tokenUsage:{...n.tokenUsage,maxContextTokens:e,isDefaultMaxTokens:s}}))}),Ce=Et()((...t)=>({...Pr(...t),...sr(...t),...xa(...t),...ba(...t)})),Rt=p.forwardRef(({className:t,children:e,...s},n)=>l.jsxs(gs,{ref:n,className:$("relative overflow-hidden",t),...s,children:[l.jsx(Hs,{className:"h-full w-full rounded-[inherit] [&>div]:!block !overflow-auto",children:e}),l.jsx(Os,{}),l.jsx(Js,{})]}));Rt.displayName=gs.displayName;const Os=p.forwardRef(({className:t,orientation:e="vertical",...s},n)=>l.jsx(ms,{ref:n,orientation:e,className:$("flex touch-none select-none transition-colors",e==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",e==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",t),...s,children:l.jsx(Qs,{className:"relative flex-1 rounded-full bg-border"})}));Os.displayName=ms.displayName;function ya({className:t}){const{toggleSettings:e,toggleSidebar:s,isSidebarOpen:n,isTerminalOpen:r,toggleTerminal:a,toggleMcp:o,toggleSkills:i}=jt(),{sessions:d,currentSessionId:c,selectSession:u,startTemporarySession:h,deleteSession:m,loadSessions:f}=Ce(),[g,v]=p.useState(null),[k,b]=p.useState(""),[I,Q]=p.useState(null),Z=(()=>{const S=new Date;S.setHours(0,0,0,0);const U=new Date(S);U.setDate(U.getDate()-1);const z=[],K=new Map;for(const V of d)V&&!K.has(V.sessionId)&&K.set(V.sessionId,V);const J=Array.from(K.values()),ee=V=>{const fe=(V==null?void 0:V.lastMessageTime)||(V==null?void 0:V.firstMessageTime)||0;return new Date(fe)},q=(V,fe)=>ee(fe).getTime()-ee(V).getTime(),te=J.filter(V=>ee(V)>=S).sort(q),ue=J.filter(V=>{const fe=ee(V);return fe>=U&&fe<S}).sort(q),se=J.filter(V=>ee(V)<U).sort(q);return te.length>0&&z.push({label:"TODAY",sessions:te}),ue.length>0&&z.push({label:"YESTERDAY",sessions:ue}),se.length>0&&z.push({label:"OLDER",sessions:se}),z})(),L=S=>{if(S.title)return S.title;const U=S.firstMessageTime||S.lastMessageTime;if(U){const z=new Date(U);if(!Number.isNaN(z.getTime())){const K=String(z.getFullYear()).slice(-2),J=String(z.getMonth()+1).padStart(2,"0"),ee=String(z.getDate()).padStart(2,"0"),q=String(z.getHours()).padStart(2,"0"),te=String(z.getMinutes()).padStart(2,"0");return`Session ${K}-${J}-${ee} ${q}:${te}`}}return`Session ${S.sessionId.slice(0,6)}`},P=()=>{h()},B=async(S,U)=>{S.stopPropagation(),await m(U)},X=(S,U)=>{S.stopPropagation(),v(U.sessionId),b(L(U))},ne=async S=>{if(!k.trim()){v(null);return}try{await fetch(`/sessions/${S}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:k.trim()})}),v(null),await f()}catch(U){console.error("Failed to rename session:",U)}},ie=()=>{v(null),b("")};return n?l.jsxs("div",{className:$("h-screen flex flex-col bg-[#F9FAFB] dark:bg-[#09090b] w-[260px]",t),children:[l.jsxs("div",{className:"p-6 flex flex-col gap-8",children:[l.jsxs("div",{className:"flex items-center justify-between",children:[l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#16A34A] dark:bg-[#22C55E] flex items-center justify-center",children:l.jsx("div",{className:"w-2 h-2 bg-black rounded-full"})}),l.jsx("span",{className:"font-semibold text-base text-[#111827] dark:text-[#E5E5E5]",children:"Blade"})]}),l.jsx("button",{onClick:s,className:"h-6 w-6 rounded bg-[#F3F4F6] text-[#6B7280] hover:text-[#111827] dark:bg-[#18181b] dark:text-[#71717a] dark:hover:text-[#E5E5E5] flex items-center justify-center transition-colors",children:l.jsx(nn,{className:"h-3 w-3"})})]}),l.jsxs("div",{className:"flex flex-col gap-2",children:[l.jsxs("button",{onClick:P,className:"w-full h-10 rounded-md bg-[#16A34A] hover:bg-[#15803D] dark:bg-[#22C55E] dark:hover:bg-[#16A34A] text-white font-semibold text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx(zt,{className:"h-4 w-4 stroke-[3]"}),"New Chat"]}),l.jsxs("button",{onClick:a,className:$("w-full h-10 rounded-md font-medium text-sm font-mono flex items-center gap-3 px-3 transition-colors",r?"bg-[#F3F4F6] text-[#111827] dark:bg-[#18181b] dark:text-[#E5E5E5]":"bg-[#F3F4F6] text-[#16A34A] hover:bg-[#E5E7EB] dark:bg-[#18181b] dark:text-[#22C55E] dark:hover:bg-[#27272a]"),children:[l.jsx(Bt,{className:$("h-4 w-4",r?"text-[#16A34A] dark:text-[#22C55E]":"")}),"Terminal"]})]})]}),l.jsx(Rt,{className:"flex-1 px-0",children:l.jsxs("div",{className:"flex flex-col",children:[Z.map((S,U)=>l.jsxs("div",{children:[l.jsx("div",{className:$("px-3 pb-2 text-[11px] text-[#6B7280] dark:text-[#52525b] font-mono",U===0?"pt-3":"pt-4"),children:S.label}),S.sessions.map(z=>{const K=z.sessionId===c,J=g===z.sessionId,ee=I===z.sessionId;return J?l.jsxs("div",{className:"w-full h-[34px] flex items-center gap-2 px-3 bg-[#F3F4F6] dark:bg-[#27272a]",children:[l.jsx("input",{type:"text",value:k,onChange:q=>b(q.target.value),onKeyDown:q=>{q.key==="Enter"&&ne(z.sessionId),q.key==="Escape"&&ie()},autoFocus:!0,className:"flex-1 bg-white dark:bg-[#18181b] text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono px-2 py-1 rounded outline-none focus:ring-1 focus:ring-[#22C55E]"}),l.jsx("button",{onClick:()=>ne(z.sessionId),className:"p-1 text-[#22C55E] hover:bg-[#E5E7EB] dark:hover:bg-[#18181b] rounded",children:l.jsx(rn,{className:"h-3 w-3"})}),l.jsx("button",{onClick:ie,className:"p-1 text-[#9CA3AF] dark:text-[#71717a] hover:bg-[#E5E7EB] dark:hover:bg-[#18181b] rounded",children:l.jsx(an,{className:"h-3 w-3"})})]},z.sessionId):l.jsxs("div",{onMouseEnter:()=>Q(z.sessionId),onMouseLeave:()=>Q(null),className:$("w-full h-[34px] flex items-center gap-2 px-3 transition-colors group cursor-pointer",K?"bg-[#E5E7EB] dark:bg-[#27272a]":"hover:bg-[#F3F4F6] dark:hover:bg-[#18181b]"),onClick:()=>u(z.sessionId),children:[l.jsx("div",{className:$("w-1.5 h-1.5 rounded-full shrink-0",K?"bg-[#16A34A] dark:bg-[#22C55E] shadow-[0_0_4px_rgba(34,197,94,0.4)]":"border border-[#D1D5DB] dark:border-[#52525b]")}),l.jsx("span",{className:$("text-[13px] font-mono truncate text-left flex-1",K?"text-[#111827] dark:text-[#E5E5E5]":"text-[#6B7280] dark:text-[#a1a1aa]"),children:L(z)}),ee&&l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx("button",{onClick:q=>X(q,z),className:"p-1 text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] rounded transition-colors",children:l.jsx(on,{className:"h-3 w-3"})}),l.jsx("button",{onClick:q=>B(q,z.sessionId),className:"p-1 text-[#9CA3AF] hover:text-red-500 hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-red-400 dark:hover:bg-[#27272a] rounded transition-colors",children:l.jsx(ln,{className:"h-3 w-3"})})]})]},z.sessionId)})]},S.label)),d.length===0&&l.jsx("div",{className:"px-3 py-8 text-center text-[13px] text-[#6B7280] dark:text-[#52525b] font-mono",children:"No chat history"})]})}),l.jsxs("div",{className:"p-6 flex flex-col gap-4",children:[l.jsxs("div",{className:"border-t border-[#E5E7EB] dark:border-[#1f2937] pt-4 flex flex-col gap-2",children:[l.jsxs("button",{onClick:i,className:"w-full h-10 rounded-md text-[#6B7280] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] font-normal text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx(Pt,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"Skills"]}),l.jsxs("button",{onClick:o,className:"w-full h-10 rounded-md text-[#6B7280] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] font-normal text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx($t,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"MCP"]}),l.jsxs("button",{onClick:e,className:"w-full h-10 rounded-md text-[#6B7280] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] font-normal text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx(Dt,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"Settings"]})]}),l.jsxs("div",{className:"flex items-center gap-3 pt-4 border-t border-[#E5E7EB] dark:border-[#27272a]",children:[l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#E5E7EB] dark:bg-[#27272a] flex items-center justify-center",children:l.jsx("div",{className:"w-2 h-2 bg-[#111827] dark:bg-[#E5E5E5] rounded-full"})}),l.jsxs("div",{className:"flex flex-col gap-0.5",children:[l.jsx("span",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:"User"}),l.jsx("span",{className:"text-[11px] text-[#16A34A] dark:text-[#22C55E] font-mono",children:"Connected"})]})]})]})]}):l.jsxs("div",{className:$("h-screen flex flex-col bg-[#F9FAFB] dark:bg-[#09090b] items-center py-6 gap-2 w-[64px]",t),children:[l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#16A34A] dark:bg-[#22C55E] flex items-center justify-center cursor-pointer",onClick:s,children:l.jsx("div",{className:"w-2 h-2 bg-black rounded-full"})}),l.jsx("button",{onClick:P,className:"mt-6 h-10 w-10 rounded-md bg-[#16A34A] hover:bg-[#15803D] dark:bg-[#22C55E] dark:hover:bg-[#16A34A] text-white flex items-center justify-center transition-colors",children:l.jsx(zt,{className:"h-4 w-4 stroke-[3]"})}),l.jsx("button",{onClick:a,className:$("h-10 w-10 rounded-md flex items-center justify-center transition-colors",r?"bg-[#F3F4F6] text-[#111827] dark:bg-[#18181b] dark:text-[#E5E5E5]":"bg-[#F3F4F6] text-[#16A34A] hover:bg-[#E5E7EB] dark:bg-[#18181b] dark:text-[#22C55E] dark:hover:bg-[#27272a]"),children:l.jsx(Bt,{className:$("h-4 w-4",r?"text-[#16A34A] dark:text-[#22C55E]":"")})}),l.jsx("div",{className:"flex-1"}),l.jsx("div",{className:"w-8 h-px bg-[#E5E7EB] dark:bg-[#1f2937] my-2"}),l.jsx("button",{onClick:i,className:"h-10 w-10 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] flex items-center justify-center transition-colors",children:l.jsx(Pt,{className:"h-4 w-4"})}),l.jsx("button",{onClick:o,className:"h-10 w-10 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] flex items-center justify-center transition-colors",children:l.jsx($t,{className:"h-4 w-4"})}),l.jsx("button",{onClick:e,className:"h-10 w-10 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] flex items-center justify-center transition-colors",children:l.jsx(Dt,{className:"h-4 w-4"})}),l.jsx("div",{className:"mt-4",children:l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#E5E7EB] dark:bg-[#27272a] flex items-center justify-center",children:l.jsx("div",{className:"w-2 h-2 bg-[#111827] dark:bg-[#E5E5E5] rounded-full"})})})]})}const va=p.lazy(()=>Oe(()=>import("./SettingsModal-DpeZ6cJb.js"),[]).then(t=>({default:t.SettingsModal}))),ka=p.lazy(()=>Oe(()=>import("./FilePreview-DLnUh-wQ.js"),[]).then(t=>({default:t.FilePreview}))),wa=p.lazy(()=>Oe(()=>import("./TerminalPanel-B2iTF_CR.js"),__vite__mapDeps([0])).then(t=>({default:t.TerminalPanel}))),_a=p.lazy(()=>Oe(()=>import("./McpModal-B9qJ4ewt.js"),[]).then(t=>({default:t.McpModal}))),Ca=p.lazy(()=>Oe(()=>import("./SkillsModal-BDfzgJIj.js"),[]).then(t=>({default:t.SkillsModal}))),Sa=t=>{if(t.startsWith("/Users/")){const e=t.split("/");if(e.length>=3)return"~/"+e.slice(3).join("/")}return t};function Ea({children:t}){const{isSidebarOpen:e,isFilePreviewOpen:s,isSettingsOpen:n,isMcpOpen:r,isSkillsOpen:a,isTerminalOpen:o,toggleFilePreview:i}=jt(),{currentSessionId:d,sessions:c}=Ce(),[u,h]=p.useState(null),m=p.useMemo(()=>{if(!d)return"No session";const f=c.find(g=>g.sessionId===d);return f!=null&&f.projectPath?Sa(f.projectPath):"New session"},[d,c]);return p.useEffect(()=>{(async()=>{try{const g=await le.getGitInfo();h(g.branch)}catch{h(null)}})()},[d]),l.jsxs("div",{className:"flex h-screen overflow-hidden",children:[l.jsx("div",{className:$("transition-all duration-300 ease-in-out",e?"w-[260px]":"w-[64px]","overflow-hidden"),children:l.jsx("div",{className:$("transition-all duration-300 ease-in-out",e?"w-[260px]":"w-[64px]"),children:l.jsx(ya,{})})}),l.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[l.jsxs("header",{className:"h-16 border-b border-[#E5E7EB] dark:border-zinc-800 flex items-center px-8 gap-4 bg-white dark:bg-[#09090b] z-10",children:[l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("span",{className:"font-normal text-sm text-[#6B7280] dark:text-zinc-500 font-mono truncate max-w-md",title:m,children:m}),u&&l.jsxs("span",{className:"flex items-center gap-1 text-xs text-[#6B7280] dark:text-zinc-300 bg-[#F3F4F6] dark:bg-zinc-800/50 px-2 py-0.5 rounded",children:[l.jsx(dn,{className:"h-3 w-3"}),u]})]}),l.jsx("div",{className:"ml-auto",children:l.jsx(Ve,{variant:"ghost",size:"icon",onClick:i,className:$(s&&"bg-accent","text-[#9CA3AF] hover:text-[#111827] dark:text-zinc-500 dark:hover:text-zinc-300"),children:l.jsx(cn,{className:"h-4 w-4"})})})]}),l.jsxs("main",{className:"flex-1 overflow-hidden relative flex",children:[l.jsx("div",{className:"flex-1 flex flex-col min-w-0 relative",children:t}),s&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(ka,{})})]})]}),n&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(va,{})}),r&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(_a,{})}),a&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(Ca,{})}),o&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(wa,{})})]})}const ls=Ys,ds=Xs,Ct=p.forwardRef(({className:t,align:e="center",sideOffset:s=4,...n},r)=>l.jsx(Ks,{children:l.jsx(ps,{ref:r,align:e,sideOffset:s,className:$("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]",t),...n})}));Ct.displayName=ps.displayName;const zs=p.forwardRef(({className:t,...e},s)=>l.jsx("textarea",{className:$("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:s,...e}));zs.displayName="Textarea";const ja=(t,e)=>{const s=[...t.matchAll(/(?:^|\s)(@(?:"[^"]*"|(?:[^\\ ]|\\ )*))/g)];for(const n of s){const r=n[1],a=n.index+(n[0].length-r.length),o=a+r.length;if(e>=a&&e<=o){let i=r.slice(1),d=!1;return i.startsWith('"')&&(d=!0,i=i.slice(1),i.endsWith('"')&&(i=i.slice(0,-1))),{hasQuery:!0,query:i,startIndex:a,endIndex:o,quoted:d}}}return{hasQuery:!1,query:"",startIndex:-1,endIndex:-1,quoted:!1}},Ia=(t,e,s={})=>{const{debounceDelay:n=200,maxSuggestions:r=15}=s,[a,o]=p.useState([]),[i,d]=p.useState(0),[c,u]=p.useState(!1),h=p.useMemo(()=>e===void 0?{hasQuery:!1,query:"",startIndex:-1,endIndex:-1,quoted:!1}:ja(t,e),[t,e]);p.useEffect(()=>{if(!h.hasQuery){o([]),u(!1);return}let g=!1;u(!0);const k=setTimeout(async()=>{try{const b=await fetch(`/suggestions/files?q=${encodeURIComponent(h.query)}&limit=${r}`);if(!b.ok)throw new Error("Failed to fetch suggestions");const I=await b.json();g||o(I)}catch(b){console.error("Failed to fetch file suggestions:",b),g||o([])}finally{g||u(!1)}},n);return()=>{g=!0,clearTimeout(k)}},[h.hasQuery,h.query,n,r]),p.useEffect(()=>{d(0)},[a]);const m=p.useCallback(()=>{d(g=>(g+1)%Math.max(a.length,1))},[a.length]),f=p.useCallback(()=>{d(g=>(g-1+a.length)%Math.max(a.length,1))},[a.length]);return{...h,suggestions:a,selectedIndex:i,loading:c,setSelectedIndex:d,selectNext:m,selectPrevious:f}},Na=(t,e=!1)=>t.includes(" ")||e?`@"${t}"`:`@${t}`,Ta=(t,e,s)=>{if(!e.hasQuery)return{newInput:t,newCursorPos:t.length};const n=Na(s,e.quoted),r=t.slice(0,e.startIndex),a=t.slice(e.endIndex),o=r+n+" "+a,i=e.startIndex+n.length+1;return{newInput:o,newCursorPos:i}};function Aa(){const[t,e]=p.useState([]),[s,n]=p.useState(-1),r=p.useRef(""),a=p.useCallback(c=>{c.trim()&&(e(u=>u[u.length-1]===c?u:[...u,c]),n(-1),r.current="")},[]),o=p.useCallback(c=>{if(t.length===0)return null;s===-1&&(r.current=c);const u=s===-1?t.length-1:Math.max(0,s-1);return n(u),t[u]??null},[t,s]),i=p.useCallback(()=>{if(s===-1)return null;const c=s+1;return c>=t.length?(n(-1),r.current):(n(c),t[c]??null)},[t,s]),d=p.useCallback(()=>{n(-1),r.current=""},[]);return{addToHistory:a,getPrevious:o,getNext:i,reset:d,historyIndex:s}}const Ma=(t,e)=>{if(!t.startsWith("/"))return{hasQuery:!1,query:"",startIndex:-1,endIndex:-1};const s=t.indexOf(" "),n=s===-1?t.length:s;return e<=n?{hasQuery:!0,query:t.slice(1,e),startIndex:0,endIndex:e}:{hasQuery:!1,query:"",startIndex:-1,endIndex:-1}},Fa=(t,e,s={})=>{const{debounceDelay:n=150}=s,[r,a]=p.useState([]),[o,i]=p.useState(0),[d,c]=p.useState(!1),u=p.useMemo(()=>e===void 0?{hasQuery:!1,query:"",startIndex:-1,endIndex:-1}:Ma(t,e),[t,e]);p.useEffect(()=>{if(!u.hasQuery){a([]),c(!1);return}let f=!1;c(!0);const v=setTimeout(async()=>{try{const k=await fetch(`/suggestions/commands?q=${encodeURIComponent(u.query)}`);if(!k.ok)throw new Error("Failed to fetch suggestions");const b=await k.json();f||a(b)}catch(k){console.error("Failed to fetch command suggestions:",k),f||a([])}finally{f||c(!1)}},n);return()=>{f=!0,clearTimeout(v)}},[u.hasQuery,u.query,n]),p.useEffect(()=>{i(0)},[r]);const h=p.useCallback(()=>{i(f=>(f+1)%Math.max(r.length,1))},[r.length]),m=p.useCallback(()=>{i(f=>(f-1+r.length)%Math.max(r.length,1))},[r.length]);return{...u,suggestions:r,selectedIndex:o,loading:d,setSelectedIndex:i,selectNext:h,selectPrevious:m}},Ra=(t,e,s)=>{if(!e.hasQuery)return{newInput:t,newCursorPos:t.length};const n=t.slice(e.endIndex),r=s.command+" "+n.trimStart(),a=s.command.length+1;return{newInput:r,newCursorPos:a}},Oa=t=>typeof t=="object"&&"command"in t,cs=({type:t,suggestions:e,selectedIndex:s,loading:n,onSelect:r,onHover:a,visible:o})=>{const i=p.useRef(null),d=p.useRef(null);if(p.useEffect(()=>{if(d.current&&i.current){const u=i.current,h=d.current,m=u.getBoundingClientRect(),f=h.getBoundingClientRect();f.bottom>m.bottom?u.scrollTop+=f.bottom-m.bottom+4:f.top<m.top&&(u.scrollTop-=m.top-f.top+4)}},[s]),!o||e.length===0&&!n)return null;const c=t==="command"?un:ct;return l.jsx("div",{className:"absolute bottom-full left-0 right-0 mb-2 z-50",children:l.jsxs("div",{className:"mx-4 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700 rounded-lg shadow-xl overflow-hidden",children:[l.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[#E5E7EB] dark:border-zinc-800 text-xs text-[#6B7280] dark:text-zinc-400",children:[l.jsx(c,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:t==="command"?"Commands":"Files"}),n&&l.jsx(Je,{className:"h-3 w-3 animate-spin ml-auto"})]}),l.jsx("div",{ref:i,className:"max-h-64 overflow-y-auto py-1",children:e.length===0&&n?l.jsx("div",{className:"px-3 py-4 text-center text-[#6B7280] dark:text-zinc-500 text-sm",children:"Loading..."}):e.length===0?l.jsx("div",{className:"px-3 py-4 text-center text-[#6B7280] dark:text-zinc-500 text-sm",children:"No matches found"}):e.map((u,h)=>{const m=h===s,f=Oa(u);return l.jsx("button",{ref:m?d:null,className:$("w-full text-left px-3 py-2 flex items-start gap-3 transition-colors",m?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] hover:bg-[#F3F4F6] hover:text-[#111827] dark:text-zinc-400 dark:hover:bg-zinc-800/50 dark:hover:text-zinc-300"),onClick:()=>r(h),onMouseEnter:()=>a(h),children:f?l.jsx(l.Fragment,{children:l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"font-mono text-sm text-blue-600 dark:text-blue-400",children:u.command}),u.argumentHint&&l.jsx("span",{className:"text-xs text-[#9CA3AF] dark:text-zinc-500 font-mono",children:u.argumentHint})]}),l.jsx("p",{className:"text-xs text-[#9CA3AF] dark:text-zinc-500 mt-0.5 truncate",children:u.description})]})}):l.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[l.jsx(ct,{className:"h-4 w-4 flex-shrink-0 text-[#9CA3AF] dark:text-zinc-500"}),l.jsx("span",{className:"font-mono text-sm truncate",children:u})]})},f?u.command:u)})}),l.jsxs("div",{className:"px-3 py-1.5 border-t border-[#E5E7EB] dark:border-zinc-800 text-xs text-[#9CA3AF] dark:text-zinc-500 flex items-center gap-4",children:[l.jsxs("span",{children:[l.jsx("kbd",{className:"px-1.5 py-0.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded text-[#6B7280] dark:text-zinc-400",children:"↑↓"})," ","Navigate"]}),l.jsxs("span",{children:[l.jsx("kbd",{className:"px-1.5 py-0.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded text-[#6B7280] dark:text-zinc-400",children:"Tab"})," ","Select"]}),l.jsxs("span",{children:[l.jsx("kbd",{className:"px-1.5 py-0.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded text-[#6B7280] dark:text-zinc-400",children:"Esc"})," ","Close"]})]})]})})},us=[{value:Ue.DEFAULT,label:"Default"},{value:Ue.AUTO_EDIT,label:"Auto Edit"},{value:Ue.PLAN,label:"Plan"},{value:Ue.SPEC,label:"Spec"}];function za({onSend:t,onAbort:e,disabled:s,isStreaming:n}){var Ot;const[r,a]=p.useState(""),[o,i]=p.useState([]),[d,c]=p.useState(void 0),[u,h]=p.useState(!1),[m,f]=p.useState(!1),g=p.useRef(null),v=p.useRef(null),{currentModelId:k,configuredModels:b,loadModels:I,setCurrentModel:Q,currentMode:H,setMode:Z}=As(),{setMaxContextTokens:L}=Ce(),P=Fa(r,d),B=Ia(r,d),X=Aa(),ne=P.hasQuery&&P.suggestions.length>0,ie=B.hasQuery&&B.suggestions.length>0,S=ne||ie;p.useEffect(()=>{I()},[I]),p.useEffect(()=>{if(b.length===0)return;const y=b.find(R=>R.id===k);if(y){const R=!!y.maxContextTokens,A=y.maxContextTokens||128e3;L(A,!R)}},[k,b,L]);const U=p.useCallback(()=>{!r.trim()&&o.length===0||s||(r.trim()&&X.addToHistory(r),t({content:r,attachments:o}),a(""),i([]),c(void 0))},[o,r,s,t,X]),z=p.useCallback(y=>{i(R=>R.filter(A=>A.id!==y))},[]),K=p.useCallback(y=>new Promise((R,A)=>{const W=new FileReader;W.onload=()=>{if(typeof W.result!="string"){A(new Error("Failed to read image"));return}R({id:typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:y.name,mimeType:y.type,dataUrl:W.result})},W.onerror=()=>A(W.error??new Error("Failed to read image")),W.readAsDataURL(y)}),[]),J=p.useCallback(async y=>{if(y.length===0)return;const R=await Promise.all(y.map(A=>K(A)));i(A=>[...A,...R])},[K]),ee=p.useCallback(async y=>{const R=Array.from(y.target.files??[]).filter(A=>A.type.startsWith("image/"));await J(R),y.target.value=""},[J]),q=p.useCallback(async y=>{const R=Array.from(y.clipboardData.items).filter(A=>A.type.startsWith("image/")).map(A=>A.getAsFile()).filter(A=>A!==null);R.length!==0&&(y.preventDefault(),await J(R))},[J]),te=p.useCallback(y=>{const R=P.suggestions[y];if(!R)return;const{newInput:A,newCursorPos:W}=Ra(r,P,R);a(A),c(W),requestAnimationFrame(()=>{g.current&&(g.current.focus(),g.current.setSelectionRange(W,W))})},[r,P]),ue=p.useCallback(y=>{const R=B.suggestions[y];if(!R)return;const{newInput:A,newCursorPos:W}=Ta(r,B,R);a(A),c(W),requestAnimationFrame(()=>{g.current&&(g.current.focus(),g.current.setSelectionRange(W,W))})},[r,B]),se=p.useCallback(y=>{if(ne){if(y.key==="ArrowDown"){y.preventDefault(),P.selectNext();return}if(y.key==="ArrowUp"){y.preventDefault(),P.selectPrevious();return}if(y.key==="Tab"||y.key==="Enter"&&!y.shiftKey){y.preventDefault(),te(P.selectedIndex);return}if(y.key==="Escape"){y.preventDefault(),c(void 0);return}}if(ie){if(y.key==="ArrowDown"){y.preventDefault(),B.selectNext();return}if(y.key==="ArrowUp"){y.preventDefault(),B.selectPrevious();return}if(y.key==="Tab"||y.key==="Enter"&&!y.shiftKey){y.preventDefault(),ue(B.selectedIndex);return}if(y.key==="Escape"){y.preventDefault(),c(void 0);return}}if(y.key==="Enter"&&!y.shiftKey){y.preventDefault(),U();return}if(y.key==="ArrowUp"&&!y.shiftKey){const R=y.target,A=R.selectionStart===0&&R.selectionEnd===0,W=!r.includes(`
7
+ `);if(A||W){const he=X.getPrevious(r);he!==null&&(y.preventDefault(),a(he),requestAnimationFrame(()=>{g.current&&g.current.setSelectionRange(he.length,he.length)}))}return}if(y.key==="ArrowDown"&&!y.shiftKey){const R=y.target,A=R.selectionStart===r.length&&R.selectionEnd===r.length,W=!r.includes(`
8
+ `);if((A||W)&&X.historyIndex!==-1){const he=X.getNext();he!==null&&(y.preventDefault(),a(he),requestAnimationFrame(()=>{g.current&&g.current.setSelectionRange(he.length,he.length)}))}}},[ne,ie,P,B,te,ue,U,r,X]),V=p.useCallback(y=>{a(y.target.value),c(y.target.selectionStart)},[]),fe=p.useCallback(y=>{const R=y.target;c(R.selectionStart)},[]);p.useEffect(()=>{g.current&&(g.current.style.height="inherit",g.current.style.height=`${Math.min(g.current.scrollHeight,200)}px`)},[r]);const st=b.find(y=>y.id===k),Zs=(st==null?void 0:st.model)||k||"Select Model",Ls=((Ot=us.find(y=>y.value===H))==null?void 0:Ot.label)||"Default",Us=!!r.trim()||o.length>0;return l.jsx("div",{className:"py-4 border-t border-[#E5E7EB] dark:border-zinc-800 bg-white dark:bg-[#09090b]",children:l.jsxs("div",{className:"px-4 w-full md:px-6",children:[l.jsxs("div",{className:"relative border border-[#E5E7EB] dark:border-zinc-800 rounded-lg shadow-sm bg-white dark:bg-zinc-950/50 focus-within:border-[#D1D5DB] dark:focus-within:border-zinc-600 focus-within:ring-1 focus-within:ring-[#D1D5DB] dark:focus-within:ring-zinc-600 transition-all duration-200 flex flex-col min-h-[88px]",children:[l.jsx(cs,{type:"command",suggestions:P.suggestions,selectedIndex:P.selectedIndex,loading:P.loading,onSelect:te,onHover:P.setSelectedIndex,visible:ne}),l.jsx(cs,{type:"file",suggestions:B.suggestions,selectedIndex:B.selectedIndex,loading:B.loading,onSelect:ue,onHover:B.setSelectedIndex,visible:ie&&!ne}),l.jsx(zs,{ref:g,value:r,onChange:V,onKeyDown:se,onPaste:q,onSelect:fe,onClick:fe,placeholder:"Type @ for files, / for commands...",className:"flex-1 w-full resize-none border-0 bg-transparent py-4 px-4 focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none text-[#111827] dark:text-zinc-300 placeholder:text-[#9CA3AF] dark:placeholder:text-zinc-600",disabled:s||n}),o.length>0&&l.jsx("div",{className:"px-4 pb-2 flex flex-wrap gap-2",children:o.map(y=>l.jsxs("div",{className:"relative rounded-md overflow-hidden border border-[#E5E7EB] dark:border-zinc-800 bg-[#F9FAFB] dark:bg-zinc-900",children:[l.jsx("img",{src:y.dataUrl,alt:y.name,className:"h-20 w-20 object-cover"}),l.jsx("button",{type:"button",onClick:()=>z(y.id),className:"absolute top-1 right-1 rounded bg-black/70 px-1.5 py-0.5 text-[10px] text-white",children:"Remove"})]},y.id))}),l.jsxs("div",{className:"flex justify-between items-center p-3 mt-auto",children:[l.jsxs("div",{className:"flex gap-2 items-center",children:[l.jsx("input",{ref:v,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:ee}),l.jsx(Ve,{type:"button",variant:"ghost",size:"icon",onClick:()=>{var y;return(y=v.current)==null?void 0:y.click()},className:"h-8 w-8 text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-zinc-500 dark:hover:text-zinc-300 dark:hover:bg-zinc-800/50",children:l.jsx(fn,{className:"w-4 h-4"})}),l.jsxs(ls,{open:u,onOpenChange:h,children:[l.jsx(ds,{asChild:!0,children:l.jsxs("button",{className:"flex items-center gap-1 text-xs text-[#6B7280] hover:text-[#111827] px-2 py-1 rounded hover:bg-[#E5E7EB] dark:text-zinc-500 dark:hover:text-zinc-200 dark:hover:bg-zinc-800/50 cursor-pointer transition-colors",children:[Zs,l.jsx(qe,{className:"w-3 h-3"})]})}),l.jsx(Ct,{className:"w-64 p-2 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700",align:"start",children:l.jsx("div",{className:"overflow-y-auto max-h-72",children:b.length===0?l.jsx("div",{className:"text-xs text-[#6B7280] dark:text-zinc-500 px-2 py-2",children:"No models configured"}):Object.entries(b.reduce((y,R)=>{const A=R.provider||"unknown";return y[A]||(y[A]=[]),y[A].push(R),y},{})).map(([y,R])=>l.jsxs("div",{className:"mb-2",children:[l.jsx("div",{className:"text-xs text-[#6B7280] dark:text-zinc-500 px-2 py-1 capitalize",children:y.replace(/-/g," ")}),R.map(A=>l.jsx("button",{className:`w-full text-left px-2 py-1.5 text-sm rounded hover:bg-[#E5E7EB] dark:hover:bg-zinc-800 transition-colors ${A.id===k?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] dark:text-zinc-400"}`,onClick:()=>{Q(A.id),h(!1)},children:A.model},A.id))]},y))})})]}),l.jsxs(ls,{open:m,onOpenChange:f,children:[l.jsx(ds,{asChild:!0,children:l.jsxs("button",{className:"flex items-center gap-1 text-xs text-[#6B7280] hover:text-[#111827] px-2 py-1 rounded hover:bg-[#E5E7EB] dark:text-zinc-500 dark:hover:text-zinc-200 dark:hover:bg-zinc-800/50 cursor-pointer transition-colors",children:[Ls,l.jsx(qe,{className:"w-3 h-3"})]})}),l.jsx(Ct,{className:"w-40 p-1 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700",align:"start",children:l.jsx("div",{className:"flex flex-col gap-0.5",children:us.map(y=>l.jsx("button",{className:`w-full text-left px-2 py-1.5 text-xs rounded hover:bg-[#E5E7EB] dark:hover:bg-zinc-800 transition-colors ${H===y.value?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] dark:text-zinc-400"}`,onClick:()=>{Z(y.value),f(!1)},children:y.label},y.value))})})]})]}),n?l.jsx(Ve,{size:"icon",onClick:e,className:"w-8 h-8 text-white bg-red-500 hover:bg-red-600",children:l.jsx(hn,{className:"w-3 h-3"})}):l.jsx(Ve,{size:"icon",onClick:U,disabled:!Us||s||S,className:"h-8 w-8 bg-[#111827] text-white hover:bg-[#0F172A] disabled:bg-[#E5E7EB] disabled:text-[#9CA3AF] dark:bg-zinc-100 dark:text-zinc-900 dark:hover:bg-white dark:disabled:bg-zinc-800 dark:disabled:text-zinc-600",children:l.jsx(gn,{className:"w-4 h-4"})})]})]}),l.jsx("div",{className:"text-center text-xs text-[#6B7280] dark:text-zinc-600 mt-3 font-mono",children:"Blade can make mistakes. Please check important information."})]})})}const Ba=p.lazy(()=>Oe(()=>import("./MarkdownRenderer-C5KTk9XG.js"),[]).then(t=>({default:t.MarkdownRenderer})));function Pa(){return l.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-lg bg-[#22C55E]",children:l.jsx("span",{className:"text-sm font-bold text-black",children:"B"})})}function $a(){return l.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-full bg-[#E5E7EB] dark:bg-white",children:l.jsx("span",{className:"text-sm font-medium text-[#111827] dark:text-zinc-800",children:"U"})})}function fs(t){let e=t;return e=e.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/g,""),e=e.replace(/<file path="[^"]*">[\s\S]*?<\/file>/g,""),e=e.replace(/<attached_files>[\s\S]*?<\/attached_files>/g,""),e=e.trim(),e}function Da(t){if(typeof t=="string")return{text:fs(t),images:[]};const e=t.filter(n=>n.type==="text").map(n=>n.text).join(`
9
9
  `),s=t.filter(n=>n.type==="image_url").map(n=>n.image_url.url);return{text:fs(e),images:s}}function Bs(t){return typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
10
- `)}function lt({content:t,syntaxHighlight:e=!0}){return l.jsx(p.Suspense,{fallback:l.jsx("pre",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono whitespace-pre-wrap",children:t}),children:l.jsx(Ma,{content:t,syntaxHighlight:e})})}function $s({status:t}){if(!t)return null;const e={running:"bg-[#FEF3C7] text-[#92400E] dark:bg-[#F59E0B]/20 dark:text-[#FBBF24]",success:"bg-[#DCFCE7] text-[#15803D] dark:bg-[#22C55E]/20 dark:text-[#22C55E]",error:"bg-[#FEE2E2] text-[#b91c1c] dark:bg-[#EF4444]/20 dark:text-[#fca5a5]",pending:"bg-[#E5E7EB] text-[#6B7280] dark:bg-[#27272a] dark:text-[#a1a1aa]",info:"bg-[#DBEAFE] text-[#1D4ED8] dark:bg-[#3B82F6]/20 dark:text-[#60A5FA]"},s={running:"Running",success:"Success",error:"Error",pending:"Pending",info:"Info"};return l.jsx("span",{className:D("text-[11px] px-2 py-0.5 rounded-full font-mono",e[t]),children:s[t]})}function za(t){if(!t)return"";if(typeof t=="string")try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}return JSON.stringify(t,null,2)}function Ba({tool:t}){const[e,s]=p.useState(!1),n=za(t.arguments);return l.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg overflow-hidden",children:[l.jsxs("button",{onClick:()=>s(r=>!r),className:"w-full flex items-center justify-between px-3 py-2 bg-[#F9FAFB] dark:bg-transparent hover:bg-[#F3F4F6] dark:hover:bg-[#1f1f23] transition-colors",children:[l.jsxs("div",{className:"flex gap-2 items-center min-w-0",children:[e?l.jsx(qe,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a] shrink-0"}):l.jsx(bs,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a] shrink-0"}),l.jsx("span",{className:"text-[12px] text-[#111827] dark:text-[#E5E5E5] font-mono shrink-0",children:t.toolName}),t.summary&&l.jsx("span",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono truncate",children:t.summary})]}),l.jsx($s,{status:t.status})]}),e&&l.jsxs("div",{className:"px-3 py-2 space-y-2 border-t border-[#E5E7EB] dark:border-[#27272a]",children:[n&&l.jsxs("div",{className:"space-y-1",children:[l.jsx("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Arguments"}),l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto",children:n})]}),t.output&&l.jsxs("div",{className:"space-y-1",children:[l.jsx("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Output"}),l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto",children:t.output.length>500?t.output.slice(0,500)+"...":t.output})]})]})]})}function Ds({toolCalls:t}){return t.length===0?null:l.jsx("div",{className:"space-y-2",children:t.map(e=>l.jsx(Ba,{tool:e},e.toolCallId))})}function $a({content:t}){const[e,s]=p.useState(!1);return t?l.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg overflow-hidden",children:[l.jsxs("button",{onClick:()=>s(n=>!n),className:"w-full flex items-center gap-2 px-3 py-2 hover:bg-[#F3F4F6] dark:hover:bg-[#1f1f23] transition-colors",children:[e?l.jsx(qe,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}):l.jsx(bs,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),l.jsx("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Thought"})]}),e&&l.jsx("div",{className:"px-3 py-2 border-t border-[#E5E7EB] dark:border-[#27272a]",children:l.jsx("pre",{className:"text-[11px] text-[#6B7280] dark:text-[#a1a1aa] whitespace-pre-wrap font-mono",children:t})})]}):null}function Da({tasks:t}){if(t.length===0)return null;const e=t.filter(n=>n.status==="completed").length,s=e===t.length;return l.jsx("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:l.jsx("div",{className:"flex gap-2 items-center",children:l.jsx("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:s?"✓ All tasks done":`Tasks: ${e}/${t.length}`})})})}function Pa({toolCalls:t}){const{setFilePreviewOpen:e}=jt(),s=p.useMemo(()=>{const r=new Map,a=["Write","SearchReplace","Edit"];for(const o of t){if(o.status!=="success")continue;const i=o.metadata,d=i==null?void 0:i.file_path;d&&a.includes(o.toolName)&&r.set(d,{path:d,toolName:o.toolName})}return Array.from(r.values())},[t]);if(s.length===0)return null;const n=()=>{e(!0)};return l.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:[l.jsxs("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono mb-1.5",children:["Changed files (",s.length,")"]}),l.jsx("div",{className:"flex flex-wrap gap-1.5",children:s.map(({path:r})=>{const a=r.split("/").pop()||r;return l.jsxs("button",{onClick:n,className:"flex items-center gap-1 px-2 py-1 text-[11px] font-mono bg-[#E5E7EB] dark:bg-[#27272a] text-[#374151] dark:text-[#d4d4d8] rounded hover:bg-[#D1D5DB] dark:hover:bg-[#3f3f46] transition-colors",title:r,children:[l.jsx(ct,{className:"w-3 h-3"}),a]},r)})})]})}function Za({subagent:t}){const[e,s]=p.useState(null),[n,r]=p.useState(!1),[a,o]=p.useState(null);if(!t)return null;const i=t.status==="running",d=e!==null?e:i,c=t.toolCalls||a||[],u=t.output||t.thinking||c.length>0||t.sessionId;return p.useEffect(()=>{if(!d||i||!t.sessionId||a!==null||t.toolCalls&&t.toolCalls.length>0)return;let g=!0;return r(!0),le.getMessages(t.sessionId).then(m=>{var v,k;if(!g)return;const f=Rs(m),h=new Map;for(const b of f)if((k=(v=b.agentContent)==null?void 0:v.toolCalls)!=null&&k.length)for(const N of b.agentContent.toolCalls)h.has(N.toolCallId)||h.set(N.toolCallId,N);o(Array.from(h.values()))}).finally(()=>{g&&r(!1)}),()=>{g=!1}},[d,i,t.sessionId,t.toolCalls,a]),l.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:[l.jsxs("button",{type:"button",onClick:()=>s(!d),className:"flex gap-2 justify-between items-center w-full transition-opacity cursor-pointer hover:opacity-80",children:[l.jsxs("div",{className:"flex gap-2 items-center",children:[i&&l.jsx(Je,{className:"h-3 w-3 animate-spin text-[#6B7280]"}),l.jsxs("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:[t.type,": ",t.description]}),l.jsx($s,{status:t.status==="completed"?"success":t.status==="failed"?"error":"running"})]}),u&&l.jsx(qe,{className:D("h-3.5 w-3.5 text-[#6B7280] transition-transform",d&&"rotate-180")})]}),d&&l.jsxs("div",{className:"mt-2 space-y-2",children:[(t.output||t.thinking)&&l.jsxs(l.Fragment,{children:[t.output&&l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[160px] overflow-y-auto",children:t.output}),t.thinking&&l.jsx("pre",{className:"text-[11px] text-[#6B7280] dark:text-[#a1a1aa] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto",children:t.thinking})]}),n&&l.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:[l.jsx(Je,{className:"w-3 h-3 animate-spin"}),"Loading subagent logs..."]}),!n&&c.length>0&&l.jsx(Ds,{toolCalls:c})]})]})}function La({confirmation:t,messageId:e}){const[s,n]=p.useState(!1),{currentSessionId:r,setConfirmation:a}=Ce();if(!t)return null;const o=async(i,d)=>{if(!(!r||s)){n(!0);try{await le.respondPermission(r,t.toolCallId,{approved:i,scope:d}),a(e,{...t,status:i?"approved":"denied"})}catch{a(e,{...t,status:i?"approved":"denied"})}finally{n(!1)}}};return t.status!=="pending"?null:l.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg p-4 space-y-3",children:[l.jsxs("div",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:["Permission required: ",t.toolName]}),l.jsx("div",{className:"text-[12px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:t.description}),t.diff&&l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[200px] overflow-y-auto",children:t.diff}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx("button",{onClick:()=>o(!0,"once"),disabled:s,className:"px-3 py-1.5 text-[12px] font-mono bg-[#22C55E] text-white rounded-md hover:bg-[#16A34A] disabled:opacity-50",children:"Once"}),l.jsx("button",{onClick:()=>o(!0,"session"),disabled:s,className:"px-3 py-1.5 text-[12px] font-mono bg-[#3B82F6] text-white rounded-md hover:bg-[#2563EB] disabled:opacity-50",children:"Session"}),l.jsx("button",{onClick:()=>o(!1),disabled:s,className:"px-3 py-1.5 text-[12px] font-mono bg-[#EF4444] text-white rounded-md hover:bg-[#DC2626] disabled:opacity-50",children:"Deny"})]})]})}function Ua({question:t}){const[e,s]=p.useState({}),[n,r]=p.useState(!1),{currentSessionId:a}=Ce();if(!t)return null;const o=async()=>{if(!(!a||n)){r(!0);try{await le.respondToQuestion(a,t.toolCallId,e)}finally{r(!1)}}};return t.status!=="pending"?l.jsx("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:l.jsx("div",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Questions answered"})}):l.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg p-4 space-y-4",children:[t.questions.map((i,d)=>l.jsxs("div",{className:"space-y-2",children:[l.jsx("div",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:i.question}),l.jsx("div",{className:"space-y-1",children:i.options.map((c,u)=>l.jsxs("button",{onClick:()=>{if(i.multiSelect){const g=e[i.header]||[],m=g.includes(c.label)?g.filter(f=>f!==c.label):[...g,c.label];s({...e,[i.header]:m})}else s({...e,[i.header]:c.label})},className:D("w-full text-left px-3 py-2 rounded-md border text-[12px] font-mono transition-colors","border-[#E5E7EB] dark:border-[#27272a]",(i.multiSelect?(e[i.header]||[]).includes(c.label):e[i.header]===c.label)?"bg-[#DCFCE7] text-[#166534] dark:bg-[#22C55E]/20 dark:text-[#E5E5E5]":"bg-[#F9FAFB] text-[#6B7280] dark:bg-[#111113] dark:text-[#a1a1aa]"),children:[l.jsx("div",{children:c.label}),l.jsx("div",{className:"text-[11px] text-[#9CA3AF] dark:text-[#71717a] mt-1",children:c.description})]},u))})]},d)),l.jsx("button",{onClick:o,disabled:n,className:"px-3 py-1.5 text-[12px] font-mono bg-[#22C55E] text-white rounded-md hover:bg-[#16A34A] disabled:opacity-50",children:"Submit"})]})}function Va({message:t}){const e=t.agentContent,{isStreaming:s,currentAssistantMessageId:n}=Ce(),r=n===t.id;if(!e){const b=Bs(t.content);return b?l.jsx(lt,{content:b}):null}const{textBefore:a,toolCalls:o,textAfter:i,thinkingContent:d,tasks:c,subagent:u,confirmation:g,question:m}=e;if(!(a||o.length>0||i||d||c.length>0||u||g||m)&&r&&s)return l.jsxs("div",{className:"flex items-center gap-2 text-[#6B7280] dark:text-[#71717a]",children:[l.jsx(Je,{className:"w-4 h-4 animate-spin"}),l.jsx("span",{className:"text-[12px] font-mono",children:"Thinking..."})]});const v=o.length>0&&o.every(b=>b.status==="success"||b.status==="error")&&(!r||!s),k=!r||!s;return l.jsxs("div",{className:"space-y-3",children:[d&&l.jsx($a,{content:d}),a&&l.jsx(lt,{content:a,syntaxHighlight:k}),c.length>0&&l.jsx(Da,{tasks:c}),u&&l.jsx(Za,{subagent:u}),l.jsx(Ds,{toolCalls:o}),g&&l.jsx(La,{confirmation:g,messageId:t.id}),m&&l.jsx(Ua,{question:m}),v&&l.jsx(Pa,{toolCalls:o}),i&&l.jsx(lt,{content:i,syntaxHighlight:k})]})}function qa({message:t,showAvatar:e=!0}){const s=t.role==="user";if(t.role==="system"){const r=Bs(t.content);return l.jsx("div",{className:"flex justify-center p-2 w-full",children:l.jsx("div",{className:"text-xs text-[#6B7280] dark:text-[#71717a] bg-[#F3F4F6] dark:bg-[#18181b] px-3 py-1 rounded-full font-mono",children:r})})}if(s){const{text:r,images:a}=Oa(t.content);return l.jsxs("div",{className:"flex gap-4 justify-end p-4 w-full",children:[l.jsxs("div",{className:"bg-[#F3F4F6] dark:bg-[#27272a] rounded-lg px-4 py-3 max-w-[85%]",children:[r&&l.jsx("p",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono leading-relaxed whitespace-pre-wrap",children:r}),a.length>0&&l.jsx("div",{className:D("grid gap-2",a.length===1?"grid-cols-1 mt-0":"grid-cols-2 mt-3"),children:a.map((o,i)=>l.jsx("img",{src:o,alt:`attachment-${i+1}`,className:"max-h-64 w-full rounded-md object-cover"},`${o}-${i}`))})]}),l.jsx(Ra,{})]})}return l.jsxs("div",{className:D("flex gap-4 justify-start w-full",e?"p-4":"px-4 pt-0 pb-3"),children:[e?l.jsx(Fa,{}):l.jsx("div",{className:"w-8 shrink-0"}),l.jsx("div",{className:"overflow-hidden flex-1 min-w-0",children:l.jsx(Va,{message:t})})]})}const Ga=p.memo(qa),dt=120,hs=80;function Wa({messages:t,isLoading:e}){const s=p.useRef(null),n=p.useRef(t.length),[r,a]=p.useState(dt);p.useEffect(()=>{s.current&&s.current.scrollIntoView({behavior:"smooth"})},[t]),p.useEffect(()=>{const c=n.current;n.current=t.length,a(u=>u>=c&&t.length>c?t.length:Math.min(Math.max(u,dt),t.length||dt))},[t.length]);const o=Math.max(t.length-r,0),i=o,d=p.useMemo(()=>t.slice(i),[t,i]);return t.length===0&&!e?l.jsx("div",{className:"flex-1 flex items-center justify-center",children:l.jsxs("div",{className:"text-center text-[#6B7280] dark:text-zinc-500",children:[l.jsx("div",{className:"text-4xl mb-4",children:"🗡️"}),l.jsx("div",{className:"text-lg font-medium",children:"Welcome to Blade"}),l.jsx("div",{className:"text-sm mt-1",children:"Start a conversation to begin"})]})}):l.jsx(Rt,{className:"flex-1 h-full",children:l.jsxs("div",{className:"flex flex-col pb-4 w-full px-4 md:px-6",children:[o>0&&l.jsx("div",{className:"flex justify-center py-3",children:l.jsxs("button",{type:"button",onClick:()=>a(c=>Math.min(t.length,c+hs)),className:"rounded-md border border-[#E5E7EB] bg-white px-3 py-1.5 text-[12px] font-mono text-[#6B7280] transition-colors hover:bg-[#F3F4F6] hover:text-[#111827] dark:border-[#27272a] dark:bg-[#111113] dark:text-[#a1a1aa] dark:hover:bg-[#18181b] dark:hover:text-[#E5E5E5]",children:["Show ",Math.min(o,hs)," earlier messages"]})}),d.map((c,u)=>{const g=i+u,m=g>0?t[g-1]:null,f=!m||m.role!==c.role||m.role==="user";return l.jsx(Ga,{message:c,showAvatar:f},c.id||`msg-${g}`)}),e&&l.jsxs("div",{className:"flex w-full gap-4 p-4 justify-start",children:[l.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-lg bg-[#22C55E]",children:l.jsx("div",{className:"w-2 h-2 rounded-full bg-black"})}),l.jsxs("div",{className:"flex items-center gap-1 text-[#9CA3AF] dark:text-zinc-400",children:[l.jsx("span",{className:"animate-pulse",children:"●"}),l.jsx("span",{className:"animate-pulse delay-100",children:"●"}),l.jsx("span",{className:"animate-pulse delay-200",children:"●"})]})]}),l.jsx("div",{ref:s})]})})}const Ha=en,Ja=tn,Qa=sn,Ps=p.forwardRef(({className:t,sideOffset:e=4,...s},n)=>l.jsx(xs,{ref:n,sideOffset:e,className:D("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",t),...s}));Ps.displayName=xs.displayName;function Ka(){const{tokenUsage:t,isStreaming:e}=Ce(),s=t.maxContextTokens>0?Math.round(t.totalTokens/t.maxContextTokens*100):0,n=r=>r>=1e6?`${(r/1e6).toFixed(1)}M`:r>=1e3?`${(r/1e3).toFixed(1)}K`:r.toString();return l.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 border-t border-[#E5E7EB] dark:border-zinc-800 bg-white dark:bg-zinc-950/50 text-xs text-[#6B7280] dark:text-zinc-500",children:[l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"text-[#6B7280] dark:text-zinc-400",children:"Tokens:"}),l.jsxs("span",{className:D(s>80&&"text-yellow-500",s>95&&"text-red-500"),children:[n(t.totalTokens)," / ",n(t.maxContextTokens)]}),t.isDefaultMaxTokens&&l.jsx(Ha,{children:l.jsxs(Ja,{children:[l.jsx(Qa,{asChild:!0,children:l.jsx(mn,{className:"h-3 w-3 text-[#9CA3AF] dark:text-zinc-500 cursor-help"})}),l.jsx(Ps,{side:"top",className:"max-w-[220px]",children:l.jsx("p",{className:"text-xs",children:"Token limit is estimated. It updates when the model reports its context size."})})]})}),l.jsx("div",{className:"w-20 h-1.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded-full overflow-hidden",children:l.jsx("div",{className:D("h-full transition-all duration-300",s>95?"bg-red-500":s>80?"bg-yellow-500":"bg-green-500"),style:{width:`${Math.min(s,100)}%`}})}),l.jsxs("span",{className:"text-[#9CA3AF] dark:text-zinc-600",children:["(",s,"%)"]})]}),l.jsx("div",{className:"flex-1"}),e&&l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"w-2 h-2 rounded-full bg-green-500 animate-pulse"}),l.jsx("span",{children:"Generating..."})]})]})}function Ya(){const{messages:t,currentSessionId:e,isStreaming:s,isLoading:n,error:r,loadSessions:a,sendMessage:o,abortSession:i,startTemporarySession:d,clearError:c,unsubscribeFromEvents:u}=Ce();p.useEffect(()=>{a()},[a]),p.useEffect(()=>{e||d()},[e,d]),p.useEffect(()=>()=>{u()},[u]);const g=async f=>{await o({content:f.content,attachments:f.attachments.map(h=>({type:"image",content:h.dataUrl,mimeType:h.mimeType,name:h.name}))})},m=()=>{i()};return l.jsxs("div",{className:"flex flex-col h-full",children:[r&&l.jsxs("div",{className:"bg-[#FEE2E2] border border-[#FCA5A5] text-[#b91c1c] dark:bg-[#3f1d1d] dark:border-[#7f1d1d] dark:text-[#fca5a5] px-4 py-2 text-[13px] font-mono flex items-center justify-between",children:[l.jsx("span",{children:r}),l.jsx("button",{onClick:c,className:"text-[#b91c1c] hover:text-[#7f1d1d] dark:text-[#fca5a5] dark:hover:text-[#fecaca]",children:"✕"})]}),l.jsx(Wa,{messages:t,isLoading:n}),l.jsx(Aa,{onSend:g,onAbort:m,disabled:n,isStreaming:s}),l.jsx(Ka,{})]})}function Xa(){return l.jsx(ka,{children:l.jsx(Ya,{})})}Gs.createRoot(document.getElementById("root")).render(l.jsx(Ze.StrictMode,{children:l.jsx(Xa,{})}));export{Ve as B,As as a,Ce as b,D as c,Et as d,jt as u};
10
+ `)}function lt({content:t,syntaxHighlight:e=!0}){return l.jsx(p.Suspense,{fallback:l.jsx("pre",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono whitespace-pre-wrap",children:t}),children:l.jsx(Ba,{content:t,syntaxHighlight:e})})}function Ps({status:t}){if(!t)return null;const e={running:"bg-[#FEF3C7] text-[#92400E] dark:bg-[#F59E0B]/20 dark:text-[#FBBF24]",success:"bg-[#DCFCE7] text-[#15803D] dark:bg-[#22C55E]/20 dark:text-[#22C55E]",error:"bg-[#FEE2E2] text-[#b91c1c] dark:bg-[#EF4444]/20 dark:text-[#fca5a5]",pending:"bg-[#E5E7EB] text-[#6B7280] dark:bg-[#27272a] dark:text-[#a1a1aa]",info:"bg-[#DBEAFE] text-[#1D4ED8] dark:bg-[#3B82F6]/20 dark:text-[#60A5FA]"},s={running:"Running",success:"Success",error:"Error",pending:"Pending",info:"Info"};return l.jsx("span",{className:$("text-[11px] px-2 py-0.5 rounded-full font-mono",e[t]),children:s[t]})}function Za(t){if(!t)return"";if(typeof t=="string")try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}return JSON.stringify(t,null,2)}function La({tool:t}){const[e,s]=p.useState(!1),n=Za(t.arguments);return l.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg overflow-hidden",children:[l.jsxs("button",{onClick:()=>s(r=>!r),className:"w-full flex items-center justify-between px-3 py-2 bg-[#F9FAFB] dark:bg-transparent hover:bg-[#F3F4F6] dark:hover:bg-[#1f1f23] transition-colors",children:[l.jsxs("div",{className:"flex gap-2 items-center min-w-0",children:[e?l.jsx(qe,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a] shrink-0"}):l.jsx(bs,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a] shrink-0"}),l.jsx("span",{className:"text-[12px] text-[#111827] dark:text-[#E5E5E5] font-mono shrink-0",children:t.toolName}),t.summary&&l.jsx("span",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono truncate",children:t.summary})]}),l.jsx(Ps,{status:t.status})]}),e&&l.jsxs("div",{className:"px-3 py-2 space-y-2 border-t border-[#E5E7EB] dark:border-[#27272a]",children:[n&&l.jsxs("div",{className:"space-y-1",children:[l.jsx("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Arguments"}),l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto",children:n})]}),t.output&&l.jsxs("div",{className:"space-y-1",children:[l.jsx("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Output"}),l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto",children:t.output.length>500?t.output.slice(0,500)+"...":t.output})]})]})]})}function $s({toolCalls:t}){return t.length===0?null:l.jsx("div",{className:"space-y-2",children:t.map(e=>l.jsx(La,{tool:e},e.toolCallId))})}function Ua({content:t}){const[e,s]=p.useState(!1);return t?l.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg overflow-hidden",children:[l.jsxs("button",{onClick:()=>s(n=>!n),className:"w-full flex items-center gap-2 px-3 py-2 hover:bg-[#F3F4F6] dark:hover:bg-[#1f1f23] transition-colors",children:[e?l.jsx(qe,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}):l.jsx(bs,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),l.jsx("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Thought"})]}),e&&l.jsx("div",{className:"px-3 py-2 border-t border-[#E5E7EB] dark:border-[#27272a]",children:l.jsx("pre",{className:"text-[11px] text-[#6B7280] dark:text-[#a1a1aa] whitespace-pre-wrap font-mono",children:t})})]}):null}function Va({tasks:t}){if(t.length===0)return null;const e=t.filter(n=>n.status==="completed").length,s=e===t.length;return l.jsx("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:l.jsx("div",{className:"flex gap-2 items-center",children:l.jsx("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:s?"✓ All tasks done":`Tasks: ${e}/${t.length}`})})})}function qa({toolCalls:t}){const{setFilePreviewOpen:e}=jt(),s=p.useMemo(()=>{const r=new Map,a=["Write","SearchReplace","Edit"];for(const o of t){if(o.status!=="success")continue;const i=o.metadata,d=i==null?void 0:i.file_path;d&&a.includes(o.toolName)&&r.set(d,{path:d,toolName:o.toolName})}return Array.from(r.values())},[t]);if(s.length===0)return null;const n=()=>{e(!0)};return l.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:[l.jsxs("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono mb-1.5",children:["Changed files (",s.length,")"]}),l.jsx("div",{className:"flex flex-wrap gap-1.5",children:s.map(({path:r})=>{const a=r.split("/").pop()||r;return l.jsxs("button",{onClick:n,className:"flex items-center gap-1 px-2 py-1 text-[11px] font-mono bg-[#E5E7EB] dark:bg-[#27272a] text-[#374151] dark:text-[#d4d4d8] rounded hover:bg-[#D1D5DB] dark:hover:bg-[#3f3f46] transition-colors",title:r,children:[l.jsx(ct,{className:"w-3 h-3"}),a]},r)})})]})}function Ga({subagent:t}){const[e,s]=p.useState(null),[n,r]=p.useState(!1),[a,o]=p.useState(null);if(!t)return null;const i=t.status==="running",d=e!==null?e:i,c=t.toolCalls||a||[],u=t.output||t.thinking||c.length>0||t.sessionId;return p.useEffect(()=>{if(!d||i||!t.sessionId||a!==null||t.toolCalls&&t.toolCalls.length>0)return;let h=!0;return r(!0),le.getMessages(t.sessionId).then(m=>{var v,k;if(!h)return;const f=Rs(m),g=new Map;for(const b of f)if((k=(v=b.agentContent)==null?void 0:v.toolCalls)!=null&&k.length)for(const I of b.agentContent.toolCalls)g.has(I.toolCallId)||g.set(I.toolCallId,I);o(Array.from(g.values()))}).finally(()=>{h&&r(!1)}),()=>{h=!1}},[d,i,t.sessionId,t.toolCalls,a]),l.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:[l.jsxs("button",{type:"button",onClick:()=>s(!d),className:"flex gap-2 justify-between items-center w-full transition-opacity cursor-pointer hover:opacity-80",children:[l.jsxs("div",{className:"flex gap-2 items-center",children:[i&&l.jsx(Je,{className:"h-3 w-3 animate-spin text-[#6B7280]"}),l.jsxs("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:[t.type,": ",t.description]}),l.jsx(Ps,{status:t.status==="completed"?"success":t.status==="failed"?"error":"running"})]}),u&&l.jsx(qe,{className:$("h-3.5 w-3.5 text-[#6B7280] transition-transform",d&&"rotate-180")})]}),d&&l.jsxs("div",{className:"mt-2 space-y-2",children:[(t.output||t.thinking)&&l.jsxs(l.Fragment,{children:[t.output&&l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[160px] overflow-y-auto",children:t.output}),t.thinking&&l.jsx("pre",{className:"text-[11px] text-[#6B7280] dark:text-[#a1a1aa] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto",children:t.thinking})]}),n&&l.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:[l.jsx(Je,{className:"w-3 h-3 animate-spin"}),"Loading subagent logs..."]}),!n&&c.length>0&&l.jsx($s,{toolCalls:c})]})]})}function Wa({confirmation:t,messageId:e}){const[s,n]=p.useState(!1),{currentSessionId:r,setConfirmation:a}=Ce();if(!t)return null;const o=async(i,d)=>{if(!(!r||s)){n(!0);try{await le.respondPermission(r,t.toolCallId,{approved:i,scope:d}),a(e,{...t,status:i?"approved":"denied"})}catch{a(e,{...t,status:i?"approved":"denied"})}finally{n(!1)}}};return t.status!=="pending"?null:l.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg p-4 space-y-3",children:[l.jsxs("div",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:["Permission required: ",t.toolName]}),l.jsx("div",{className:"text-[12px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:t.description}),t.diff&&l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[200px] overflow-y-auto",children:t.diff}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx("button",{onClick:()=>o(!0,"once"),disabled:s,className:"px-3 py-1.5 text-[12px] font-mono bg-[#22C55E] text-white rounded-md hover:bg-[#16A34A] disabled:opacity-50",children:"Once"}),l.jsx("button",{onClick:()=>o(!0,"session"),disabled:s,className:"px-3 py-1.5 text-[12px] font-mono bg-[#3B82F6] text-white rounded-md hover:bg-[#2563EB] disabled:opacity-50",children:"Session"}),l.jsx("button",{onClick:()=>o(!1),disabled:s,className:"px-3 py-1.5 text-[12px] font-mono bg-[#EF4444] text-white rounded-md hover:bg-[#DC2626] disabled:opacity-50",children:"Deny"})]})]})}function Ha({question:t}){const[e,s]=p.useState({}),[n,r]=p.useState(!1),{currentSessionId:a}=Ce();if(!t)return null;const o=async()=>{if(!(!a||n)){r(!0);try{await le.respondToQuestion(a,t.toolCallId,e)}finally{r(!1)}}};return t.status!=="pending"?l.jsx("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:l.jsx("div",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Questions answered"})}):l.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg p-4 space-y-4",children:[t.questions.map((i,d)=>l.jsxs("div",{className:"space-y-2",children:[l.jsx("div",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:i.question}),l.jsx("div",{className:"space-y-1",children:i.options.map((c,u)=>l.jsxs("button",{onClick:()=>{if(i.multiSelect){const h=e[i.header]||[],m=h.includes(c.label)?h.filter(f=>f!==c.label):[...h,c.label];s({...e,[i.header]:m})}else s({...e,[i.header]:c.label})},className:$("w-full text-left px-3 py-2 rounded-md border text-[12px] font-mono transition-colors","border-[#E5E7EB] dark:border-[#27272a]",(i.multiSelect?(e[i.header]||[]).includes(c.label):e[i.header]===c.label)?"bg-[#DCFCE7] text-[#166534] dark:bg-[#22C55E]/20 dark:text-[#E5E5E5]":"bg-[#F9FAFB] text-[#6B7280] dark:bg-[#111113] dark:text-[#a1a1aa]"),children:[l.jsx("div",{children:c.label}),l.jsx("div",{className:"text-[11px] text-[#9CA3AF] dark:text-[#71717a] mt-1",children:c.description})]},u))})]},d)),l.jsx("button",{onClick:o,disabled:n,className:"px-3 py-1.5 text-[12px] font-mono bg-[#22C55E] text-white rounded-md hover:bg-[#16A34A] disabled:opacity-50",children:"Submit"})]})}function Ja({message:t}){const e=t.agentContent,{isStreaming:s,currentAssistantMessageId:n}=Ce(),r=n===t.id;if(!e){const b=Bs(t.content);return b?l.jsx(lt,{content:b}):null}const{textBefore:a,toolCalls:o,textAfter:i,thinkingContent:d,tasks:c,subagent:u,confirmation:h,question:m}=e;if(!(a||o.length>0||i||d||c.length>0||u||h||m)&&r&&s)return l.jsxs("div",{className:"flex items-center gap-2 text-[#6B7280] dark:text-[#71717a]",children:[l.jsx(Je,{className:"w-4 h-4 animate-spin"}),l.jsx("span",{className:"text-[12px] font-mono",children:"Thinking..."})]});const v=o.length>0&&o.every(b=>b.status==="success"||b.status==="error")&&(!r||!s),k=!r||!s;return l.jsxs("div",{className:"space-y-3",children:[d&&l.jsx(Ua,{content:d}),a&&l.jsx(lt,{content:a,syntaxHighlight:k}),c.length>0&&l.jsx(Va,{tasks:c}),u&&l.jsx(Ga,{subagent:u}),l.jsx($s,{toolCalls:o}),h&&l.jsx(Wa,{confirmation:h,messageId:t.id}),m&&l.jsx(Ha,{question:m}),v&&l.jsx(qa,{toolCalls:o}),i&&l.jsx(lt,{content:i,syntaxHighlight:k})]})}function Qa({message:t,showAvatar:e=!0}){const s=t.role==="user";if(t.role==="system"){const r=Bs(t.content);return l.jsx("div",{className:"flex justify-center p-2 w-full",children:l.jsx("div",{className:"text-xs text-[#6B7280] dark:text-[#71717a] bg-[#F3F4F6] dark:bg-[#18181b] px-3 py-1 rounded-full font-mono",children:r})})}if(s){const{text:r,images:a}=Da(t.content);return l.jsxs("div",{className:"flex gap-4 justify-end p-4 w-full",children:[l.jsxs("div",{className:"bg-[#F3F4F6] dark:bg-[#27272a] rounded-lg px-4 py-3 max-w-[85%]",children:[r&&l.jsx("p",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono leading-relaxed whitespace-pre-wrap",children:r}),a.length>0&&l.jsx("div",{className:$("grid gap-2",a.length===1?"grid-cols-1 mt-0":"grid-cols-2 mt-3"),children:a.map((o,i)=>l.jsx("img",{src:o,alt:`attachment-${i+1}`,className:"max-h-64 w-full rounded-md object-cover"},`${o}-${i}`))})]}),l.jsx($a,{})]})}return l.jsxs("div",{className:$("flex gap-4 justify-start w-full",e?"p-4":"px-4 pt-0 pb-3"),children:[e?l.jsx(Pa,{}):l.jsx("div",{className:"w-8 shrink-0"}),l.jsx("div",{className:"overflow-hidden flex-1 min-w-0",children:l.jsx(Ja,{message:t})})]})}const Ka=p.memo(Qa),dt=120,hs=80;function Ya({messages:t,isLoading:e}){const s=p.useRef(null),n=p.useRef(t.length),[r,a]=p.useState(dt);p.useEffect(()=>{s.current&&s.current.scrollIntoView({behavior:"smooth"})},[t]),p.useEffect(()=>{const c=n.current;n.current=t.length,a(u=>u>=c&&t.length>c?t.length:Math.min(Math.max(u,dt),t.length||dt))},[t.length]);const o=Math.max(t.length-r,0),i=o,d=p.useMemo(()=>t.slice(i),[t,i]);return t.length===0&&!e?l.jsx("div",{className:"flex-1 flex items-center justify-center",children:l.jsxs("div",{className:"text-center text-[#6B7280] dark:text-zinc-500",children:[l.jsx("div",{className:"text-4xl mb-4",children:"🗡️"}),l.jsx("div",{className:"text-lg font-medium",children:"Welcome to Blade"}),l.jsx("div",{className:"text-sm mt-1",children:"Start a conversation to begin"})]})}):l.jsx(Rt,{className:"flex-1 h-full",children:l.jsxs("div",{className:"flex flex-col pb-4 w-full px-4 md:px-6",children:[o>0&&l.jsx("div",{className:"flex justify-center py-3",children:l.jsxs("button",{type:"button",onClick:()=>a(c=>Math.min(t.length,c+hs)),className:"rounded-md border border-[#E5E7EB] bg-white px-3 py-1.5 text-[12px] font-mono text-[#6B7280] transition-colors hover:bg-[#F3F4F6] hover:text-[#111827] dark:border-[#27272a] dark:bg-[#111113] dark:text-[#a1a1aa] dark:hover:bg-[#18181b] dark:hover:text-[#E5E5E5]",children:["Show ",Math.min(o,hs)," earlier messages"]})}),d.map((c,u)=>{const h=i+u,m=h>0?t[h-1]:null,f=!m||m.role!==c.role||m.role==="user";return l.jsx(Ka,{message:c,showAvatar:f},c.id||`msg-${h}`)}),e&&l.jsxs("div",{className:"flex w-full gap-4 p-4 justify-start",children:[l.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-lg bg-[#22C55E]",children:l.jsx("div",{className:"w-2 h-2 rounded-full bg-black"})}),l.jsxs("div",{className:"flex items-center gap-1 text-[#9CA3AF] dark:text-zinc-400",children:[l.jsx("span",{className:"animate-pulse",children:"●"}),l.jsx("span",{className:"animate-pulse delay-100",children:"●"}),l.jsx("span",{className:"animate-pulse delay-200",children:"●"})]})]}),l.jsx("div",{ref:s})]})})}const Xa=en,eo=tn,to=sn,Ds=p.forwardRef(({className:t,sideOffset:e=4,...s},n)=>l.jsx(xs,{ref:n,sideOffset:e,className:$("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",t),...s}));Ds.displayName=xs.displayName;const so={running:"Generating...",compacting:"Compacting context...",switching_model:"Switching model...",waiting_permission:"Waiting for permission...",error:"Run failed",idle:""};function no(){const{tokenUsage:t,isStreaming:e,agentPhase:s}=Ce(),n=so[s],r=t.maxContextTokens>0?Math.round(t.totalTokens/t.maxContextTokens*100):0,a=o=>o>=1e6?`${(o/1e6).toFixed(1)}M`:o>=1e3?`${(o/1e3).toFixed(1)}K`:o.toString();return l.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 border-t border-[#E5E7EB] dark:border-zinc-800 bg-white dark:bg-zinc-950/50 text-xs text-[#6B7280] dark:text-zinc-500",children:[l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"text-[#6B7280] dark:text-zinc-400",children:"Tokens:"}),l.jsxs("span",{className:$(r>80&&"text-yellow-500",r>95&&"text-red-500"),children:[a(t.totalTokens)," /"," ",a(t.maxContextTokens)]}),t.isDefaultMaxTokens&&l.jsx(Xa,{children:l.jsxs(eo,{children:[l.jsx(to,{asChild:!0,children:l.jsx(mn,{className:"h-3 w-3 text-[#9CA3AF] dark:text-zinc-500 cursor-help"})}),l.jsx(Ds,{side:"top",className:"max-w-[220px]",children:l.jsx("p",{className:"text-xs",children:"Token limit is estimated. It updates when the model reports its context size."})})]})}),l.jsx("div",{className:"w-20 h-1.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded-full overflow-hidden",children:l.jsx("div",{className:$("h-full transition-all duration-300",r>95?"bg-red-500":r>80?"bg-yellow-500":"bg-green-500"),style:{width:`${Math.min(r,100)}%`}})}),l.jsxs("span",{className:"text-[#9CA3AF] dark:text-zinc-600",children:["(",r,"%)"]})]}),l.jsx("div",{className:"flex-1"}),e&&n&&l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"w-2 h-2 rounded-full bg-green-500 animate-pulse"}),l.jsx("span",{children:n})]})]})}function ro(){const{messages:t,currentSessionId:e,isStreaming:s,isLoading:n,error:r,loadSessions:a,sendMessage:o,abortSession:i,startTemporarySession:d,clearError:c,unsubscribeFromEvents:u}=Ce();p.useEffect(()=>{a()},[a]),p.useEffect(()=>{e||d()},[e,d]),p.useEffect(()=>()=>{u()},[u]);const h=async f=>{await o({content:f.content,attachments:f.attachments.map(g=>({type:"image",content:g.dataUrl,mimeType:g.mimeType,name:g.name}))})},m=()=>{i()};return l.jsxs("div",{className:"flex flex-col h-full",children:[r&&l.jsxs("div",{className:"bg-[#FEE2E2] border border-[#FCA5A5] text-[#b91c1c] dark:bg-[#3f1d1d] dark:border-[#7f1d1d] dark:text-[#fca5a5] px-4 py-2 text-[13px] font-mono flex items-center justify-between",children:[l.jsx("span",{children:r}),l.jsx("button",{onClick:c,className:"text-[#b91c1c] hover:text-[#7f1d1d] dark:text-[#fca5a5] dark:hover:text-[#fecaca]",children:"✕"})]}),l.jsx(Ya,{messages:t,isLoading:n}),l.jsx(za,{onSend:h,onAbort:m,disabled:n,isStreaming:s}),l.jsx(no,{})]})}function ao(){return l.jsx(Ea,{children:l.jsx(ro,{})})}Gs.createRoot(document.getElementById("root")).render(l.jsx(Ze.StrictMode,{children:l.jsx(ao,{})}));export{Ve as B,As as a,Ce as b,$ as c,Et as d,jt as u};