blade-code 0.7.6 → 0.7.8

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 (81) hide show
  1. package/dist/blade.js +2 -2
  2. package/dist/{chunk-npaj13y3.js → chunk-0e0z8yc1.js} +2 -2
  3. package/dist/{chunk-fceeqn6k.js → chunk-1w6tqkxd.js} +2 -2
  4. package/dist/{chunk-ttf06k8y.js → chunk-2049tv49.js} +3 -3
  5. package/dist/chunk-4745ktjj.js +1570 -0
  6. package/dist/chunk-48q9msfk.js +615 -0
  7. package/dist/chunk-4dmdn3a9.js +2 -0
  8. package/dist/{chunk-zr71r1z1.js → chunk-5be6qr2v.js} +1 -1
  9. package/dist/chunk-67vzgcs5.js +2 -0
  10. package/dist/{chunk-krrm6bjr.js → chunk-6811kbxn.js} +1 -1
  11. package/dist/{chunk-d9qh7bat.js → chunk-6hn2jgw5.js} +1 -1
  12. package/dist/chunk-6js5wp6t.js +1 -0
  13. package/dist/chunk-6kp3z956.js +9 -0
  14. package/dist/{chunk-pf45ctn7.js → chunk-71n472hj.js} +1 -1
  15. package/dist/chunk-78txnq4n.js +151 -0
  16. package/dist/chunk-7r1hm0qz.js +6 -0
  17. package/dist/{chunk-1y33d6xh.js → chunk-9kejtkey.js} +1 -1
  18. package/dist/chunk-a7yjnqhd.js +3 -0
  19. package/dist/chunk-bwaqaktn.js +1 -0
  20. package/dist/chunk-cb82rf5h.js +1 -0
  21. package/dist/chunk-ce11m8bq.js +1 -0
  22. package/dist/{chunk-m3hsaaq5.js → chunk-cjmxggke.js} +1 -1
  23. package/dist/chunk-e4rhdg3h.js +1 -0
  24. package/dist/{chunk-64x50qbc.js → chunk-f9ybv4ph.js} +1 -1
  25. package/dist/{chunk-x4fx52e7.js → chunk-faq7ay4j.js} +3 -3
  26. package/dist/{chunk-jhzf05kz.js → chunk-fb7amc2s.js} +1 -1
  27. package/dist/chunk-g6ted982.js +4 -0
  28. package/dist/{chunk-qyfdt8h1.js → chunk-g7caymjr.js} +1 -1
  29. package/dist/{chunk-ezkbqmvd.js → chunk-jm2xhnrv.js} +1 -1
  30. package/dist/chunk-ky8ctbdc.js +1 -0
  31. package/dist/chunk-mpskff34.js +1 -0
  32. package/dist/chunk-pd1yqxcv.js +9 -0
  33. package/dist/{chunk-arwynrtf.js → chunk-phhmmybg.js} +2 -2
  34. package/dist/chunk-qnevwq1q.js +2 -0
  35. package/dist/{chunk-ebynn53v.js → chunk-r1spf93b.js} +2 -2
  36. package/dist/{chunk-r0hc7wad.js → chunk-rnfd5ebv.js} +1 -1
  37. package/dist/{chunk-wg5nxtb2.js → chunk-s4mke0t6.js} +1 -1
  38. package/dist/{chunk-wstkn75a.js → chunk-t2spryz0.js} +1 -1
  39. package/dist/{chunk-rhvxr82g.js → chunk-t70aqrm4.js} +1 -1
  40. package/dist/{chunk-10q3krvh.js → chunk-z4c68ve0.js} +1 -1
  41. package/dist/chunk-z9zbcenc.js +6 -0
  42. package/dist/web/assets/{CodeBlockHighlighter-C86flFwh.js → CodeBlockHighlighter-C1cp8dDv.js} +1 -1
  43. package/dist/web/assets/FilePreview-DRKRs8i2.js +7 -0
  44. package/dist/web/assets/{MarkdownRenderer-CW8WpEw1.js → MarkdownRenderer-DFqPpAnM.js} +1 -1
  45. package/dist/web/assets/{McpModal-DnqrgBON.js → McpModal-CX5-hlNv.js} +1 -1
  46. package/dist/web/assets/{SettingsModal-CRNT-LCq.js → SettingsModal-CfR_q6N7.js} +1 -1
  47. package/dist/web/assets/{SettingsStore-B2GIhfKs.js → SettingsStore-jup_Kikq.js} +1 -1
  48. package/dist/web/assets/{SkillsModal-COQMbIdT.js → SkillsModal-DaAUrwXO.js} +1 -1
  49. package/dist/web/assets/{TerminalPanel-dCMUvQaH.js → TerminalPanel-DzlllDH7.js} +1 -1
  50. package/dist/web/assets/index-BJTSF3fc.js +9 -0
  51. package/dist/web/assets/index-CL6apjgo.css +1 -0
  52. package/dist/web/assets/{useRequest-C7k7cDPD.js → useRequest-DITGl55G.js} +1 -1
  53. package/dist/web/assets/{vendor-icons-BKXQ7ALf.js → vendor-icons-BuFpOlRn.js} +38 -28
  54. package/dist/web/assets/{vendor-markdown-DIcugY1e.js → vendor-markdown-Bo4W9Tae.js} +1 -1
  55. package/dist/web/assets/vendor-radix-CESj0OOY.js +45 -0
  56. package/dist/web/assets/{vendor-react-Dm1xU4bP.js → vendor-react-BalntB5F.js} +2 -2
  57. package/dist/web/index.html +2 -2
  58. package/package.json +1 -1
  59. package/dist/chunk-1tzcptyb.js +0 -3
  60. package/dist/chunk-5accz8n9.js +0 -1
  61. package/dist/chunk-8raa4q9y.js +0 -1564
  62. package/dist/chunk-ad19yrq6.js +0 -1
  63. package/dist/chunk-bvn4e2vq.js +0 -1
  64. package/dist/chunk-cadngkwr.js +0 -2
  65. package/dist/chunk-cdx3hp1r.js +0 -9
  66. package/dist/chunk-g60w2r7f.js +0 -6
  67. package/dist/chunk-h7qab07x.js +0 -2
  68. package/dist/chunk-k76q8cyc.js +0 -151
  69. package/dist/chunk-n2yq1wn8.js +0 -9
  70. package/dist/chunk-q6sj33v8.js +0 -6
  71. package/dist/chunk-qedtzcp2.js +0 -1
  72. package/dist/chunk-t6qek6xk.js +0 -1
  73. package/dist/chunk-tyjns370.js +0 -1
  74. package/dist/chunk-ve6bvba4.js +0 -615
  75. package/dist/chunk-wdxbjvd5.js +0 -2
  76. package/dist/chunk-xj63cr29.js +0 -1
  77. package/dist/chunk-zmndvdgb.js +0 -4
  78. package/dist/web/assets/FilePreview-CbtOITD1.js +0 -7
  79. package/dist/web/assets/index-21gV5nOE.css +0 -1
  80. package/dist/web/assets/index-Cnz-_jPt.js +0 -10
  81. package/dist/web/assets/vendor-radix-2yBsoRqx.js +0 -45
@@ -0,0 +1,9 @@
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 Tn=Object.defineProperty;var Rn=(t,e,s)=>e in t?Tn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var mt=(t,e,s)=>Rn(t,typeof e!="symbol"?e+"":e,s);import{r as b,j as i,R as Qe,i as Fn}from"./vendor-react-BalntB5F.js";import{_ as Ve}from"./vendor-markdown-Bo4W9Tae.js";import{S as Mn,O as Ls,P as Dn,C as Zs,a as On,T as Us,D as Vs,R as Bn,b as Gs,V as Pn,c as zn,d as qs,e as $n,f as Ln,g as Ws,h as Zn,i as Un,j as Hs,k as Vn,l as Gn,m as qn}from"./vendor-radix-CESj0OOY.js";import{X as Lt,H as as,L as he,F as Wn,R as ft,P as os,T as is,S as ls,a as ds,b as cs,C as Hn,c as Js,G as Jn,d as Qs,e as Ks,f as Qn,g as Kn,h as Yn,i as jt,j as Xn,k as et,l as er,m as tr,n as Ys,o as sr,p as nr,q as rr,r as ar,s as or,t as ir,u as lr,v as dr}from"./vendor-icons-BuFpOlRn.js";import"./vendor-monaco-w6PwaWGP.js";function Xs(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=Xs(t[e]))&&(n&&(n+=" "),n+=s)}else for(s in t)t[s]&&(n&&(n+=" "),n+=s);return n}function en(){for(var t,e,s=0,n="",r=arguments.length;s<r;s++)(t=arguments[s])&&(e=Xs(t))&&(n&&(n+=" "),n+=e);return n}const us=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,fs=en,cr=(t,e)=>s=>{var n;if((e==null?void 0:e.variants)==null)return fs(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],f=a==null?void 0:a[c];if(u===null)return null;const h=us(u)||us(f);return r[c][h]}),l=s&&Object.entries(s).reduce((c,u)=>{let[f,h]=u;return h===void 0||(c[f]=h),c},{}),d=e==null||(n=e.compoundVariants)===null||n===void 0?void 0:n.reduce((c,u)=>{let{class:f,className:h,...g}=u;return Object.entries(g).every(m=>{let[p,x]=m;return Array.isArray(x)?x.includes({...a,...l}[p]):{...a,...l}[p]===x})?[...c,f,h]:c},[]);return fs(t,o,d,s==null?void 0:s.class,s==null?void 0:s.className)},Zt="-",ur=t=>{const e=hr(t),{conflictingClassGroups:s,conflictingClassGroupModifiers:n}=t;return{getClassGroupId:o=>{const l=o.split(Zt);return l[0]===""&&l.length!==1&&l.shift(),tn(l,e)||fr(o)},getConflictingClassGroupIds:(o,l)=>{const d=s[o]||[];return l&&n[o]?[...d,...n[o]]:d}}},tn=(t,e)=>{var o;if(t.length===0)return e.classGroupId;const s=t[0],n=e.nextPart.get(s),r=n?tn(t.slice(1),n):void 0;if(r)return r;if(e.validators.length===0)return;const a=t.join(Zt);return(o=e.validators.find(({validator:l})=>l(a)))==null?void 0:o.classGroupId},hs=/^\[(.+)\]$/,fr=t=>{if(hs.test(t)){const e=hs.exec(t)[1],s=e==null?void 0:e.substring(0,e.indexOf(":"));if(s)return"arbitrary.."+s}},hr=t=>{const{theme:e,prefix:s}=t,n={nextPart:new Map,validators:[]};return mr(Object.entries(t.classGroups),s).forEach(([a,o])=>{_t(o,n,a,e)}),n},_t=(t,e,s,n)=>{t.forEach(r=>{if(typeof r=="string"){const a=r===""?e:gs(e,r);a.classGroupId=s;return}if(typeof r=="function"){if(gr(r)){_t(r(n),e,s,n);return}e.validators.push({validator:r,classGroupId:s});return}Object.entries(r).forEach(([a,o])=>{_t(o,gs(e,a),s,n)})})},gs=(t,e)=>{let s=t;return e.split(Zt).forEach(n=>{s.nextPart.has(n)||s.nextPart.set(n,{nextPart:new Map,validators:[]}),s=s.nextPart.get(n)}),s},gr=t=>t.isThemeGetter,mr=(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,l])=>[e+o,l])):a);return[s,r]}):t,pr=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)}}},sn="!",xr=t=>{const{separator:e,experimentalParseClassName:s}=t,n=e.length===1,r=e[0],a=e.length,o=l=>{const d=[];let c=0,u=0,f;for(let x=0;x<l.length;x++){let y=l[x];if(c===0){if(y===r&&(n||l.slice(x,x+a)===e)){d.push(l.slice(u,x)),u=x+a;continue}if(y==="/"){f=x;continue}}y==="["?c++:y==="]"&&c--}const h=d.length===0?l:l.substring(u),g=h.startsWith(sn),m=g?h.substring(1):h,p=f&&f>u?f-u:void 0;return{modifiers:d,hasImportantModifier:g,baseClassName:m,maybePostfixModifierPosition:p}};return s?l=>s({className:l,parseClassName:o}):o},br=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},yr=t=>({cache:pr(t.cacheSize),parseClassName:xr(t),...ur(t)}),vr=/\s+/,kr=(t,e)=>{const{parseClassName:s,getClassGroupId:n,getConflictingClassGroupIds:r}=e,a=[],o=t.trim().split(vr);let l="";for(let d=o.length-1;d>=0;d-=1){const c=o[d],{modifiers:u,hasImportantModifier:f,baseClassName:h,maybePostfixModifierPosition:g}=s(c);let m=!!g,p=n(m?h.substring(0,g):h);if(!p){if(!m){l=c+(l.length>0?" "+l:l);continue}if(p=n(h),!p){l=c+(l.length>0?" "+l:l);continue}m=!1}const x=br(u).join(":"),y=f?x+sn:x,v=y+p;if(a.includes(v))continue;a.push(v);const _=r(p,m);for(let D=0;D<_.length;++D){const T=_[D];a.push(y+T)}l=c+(l.length>0?" "+l:l)}return l};function wr(){let t=0,e,s,n="";for(;t<arguments.length;)(e=arguments[t++])&&(s=nn(e))&&(n&&(n+=" "),n+=s);return n}const nn=t=>{if(typeof t=="string")return t;let e,s="";for(let n=0;n<t.length;n++)t[n]&&(e=nn(t[n]))&&(s&&(s+=" "),s+=e);return s};function Sr(t,...e){let s,n,r,a=o;function o(d){const c=e.reduce((u,f)=>f(u),t());return s=yr(c),n=s.cache.get,r=s.cache.set,a=l,l(d)}function l(d){const c=n(d);if(c)return c;const u=kr(d,s);return r(d,u),u}return function(){return a(wr.apply(null,arguments))}}const Y=t=>{const e=s=>s[t]||[];return e.isThemeGetter=!0,e},rn=/^\[(?:([a-z-]+):)?(.+)\]$/i,Cr=/^\d+\/\d+$/,jr=new Set(["px","full","screen"]),_r=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Er=/\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$/,Nr=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,Ir=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ar=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ce=t=>Be(t)||jr.has(t)||Cr.test(t),Ee=t=>Ge(t,"length",Pr),Be=t=>!!t&&!Number.isNaN(Number(t)),pt=t=>Ge(t,"number",Be),qe=t=>!!t&&Number.isInteger(Number(t)),Tr=t=>t.endsWith("%")&&Be(t.slice(0,-1)),$=t=>rn.test(t),Ne=t=>_r.test(t),Rr=new Set(["length","size","percentage"]),Fr=t=>Ge(t,Rr,an),Mr=t=>Ge(t,"position",an),Dr=new Set(["image","url"]),Or=t=>Ge(t,Dr,$r),Br=t=>Ge(t,"",zr),We=()=>!0,Ge=(t,e,s)=>{const n=rn.exec(t);return n?n[1]?typeof e=="string"?n[1]===e:e.has(n[1]):s(n[2]):!1},Pr=t=>Er.test(t)&&!Nr.test(t),an=()=>!1,zr=t=>Ir.test(t),$r=t=>Ar.test(t),Lr=()=>{const t=Y("colors"),e=Y("spacing"),s=Y("blur"),n=Y("brightness"),r=Y("borderColor"),a=Y("borderRadius"),o=Y("borderSpacing"),l=Y("borderWidth"),d=Y("contrast"),c=Y("grayscale"),u=Y("hueRotate"),f=Y("invert"),h=Y("gap"),g=Y("gradientColorStops"),m=Y("gradientColorStopPositions"),p=Y("inset"),x=Y("margin"),y=Y("opacity"),v=Y("padding"),_=Y("saturate"),D=Y("scale"),T=Y("sepia"),P=Y("skew"),Q=Y("space"),z=Y("translate"),I=()=>["auto","contain","none"],A=()=>["auto","hidden","clip","visible","scroll"],N=()=>["auto",$,e],F=()=>[$,e],R=()=>["",Ce,Ee],W=()=>["auto",Be,$],O=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],K=()=>["solid","dashed","dotted","double","none"],X=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],G=()=>["start","end","center","between","around","evenly","stretch"],se=()=>["","0",$],ce=()=>["auto","avoid","all","avoid-page","page","left","right","column"],oe=()=>[Be,$];return{cacheSize:500,separator:":",theme:{colors:[We],spacing:[Ce,Ee],blur:["none","",Ne,$],brightness:oe(),borderColor:[t],borderRadius:["none","","full",Ne,$],borderSpacing:F(),borderWidth:R(),contrast:oe(),grayscale:se(),hueRotate:oe(),invert:se(),gap:F(),gradientColorStops:[t],gradientColorStopPositions:[Tr,Ee],inset:N(),margin:N(),opacity:oe(),padding:F(),saturate:oe(),scale:oe(),sepia:se(),skew:oe(),space:F(),translate:F()},classGroups:{aspect:[{aspect:["auto","square","video",$]}],container:["container"],columns:[{columns:[Ne]}],"break-after":[{"break-after":ce()}],"break-before":[{"break-before":ce()}],"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:[...O(),$]}],overflow:[{overflow:A()}],"overflow-x":[{"overflow-x":A()}],"overflow-y":[{"overflow-y":A()}],overscroll:[{overscroll:I()}],"overscroll-x":[{"overscroll-x":I()}],"overscroll-y":[{"overscroll-y":I()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[p]}],"inset-x":[{"inset-x":[p]}],"inset-y":[{"inset-y":[p]}],start:[{start:[p]}],end:[{end:[p]}],top:[{top:[p]}],right:[{right:[p]}],bottom:[{bottom:[p]}],left:[{left:[p]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",qe,$]}],basis:[{basis:N()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",$]}],grow:[{grow:se()}],shrink:[{shrink:se()}],order:[{order:["first","last","none",qe,$]}],"grid-cols":[{"grid-cols":[We]}],"col-start-end":[{col:["auto",{span:["full",qe,$]},$]}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":[We]}],"row-start-end":[{row:["auto",{span:[qe,$]},$]}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",$]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",$]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...G()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...G(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...G(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[v]}],px:[{px:[v]}],py:[{py:[v]}],ps:[{ps:[v]}],pe:[{pe:[v]}],pt:[{pt:[v]}],pr:[{pr:[v]}],pb:[{pb:[v]}],pl:[{pl:[v]}],m:[{m:[x]}],mx:[{mx:[x]}],my:[{my:[x]}],ms:[{ms:[x]}],me:[{me:[x]}],mt:[{mt:[x]}],mr:[{mr:[x]}],mb:[{mb:[x]}],ml:[{ml:[x]}],"space-x":[{"space-x":[Q]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[Q]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",$,e]}],"min-w":[{"min-w":[$,e,"min","max","fit"]}],"max-w":[{"max-w":[$,e,"none","full","min","max","fit","prose",{screen:[Ne]},Ne]}],h:[{h:[$,e,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[$,e,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[$,e,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[$,e,"auto","min","max","fit"]}],"font-size":[{text:["base",Ne,Ee]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",pt]}],"font-family":[{font:[We]}],"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",$]}],"line-clamp":[{"line-clamp":["none",Be,pt]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Ce,$]}],"list-image":[{"list-image":["none",$]}],"list-style-type":[{list:["none","disc","decimal",$]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[y]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...K(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Ce,Ee]}],"underline-offset":[{"underline-offset":["auto",Ce,$]}],"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:F()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",$]}],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",$]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[y]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...O(),Mr]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Fr]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Or]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[g]}],"gradient-via":[{via:[g]}],"gradient-to":[{to:[g]}],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:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[y]}],"border-style":[{border:[...K(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[y]}],"divide-style":[{divide:K()}],"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:["",...K()]}],"outline-offset":[{"outline-offset":[Ce,$]}],"outline-w":[{outline:[Ce,Ee]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:R()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[y]}],"ring-offset-w":[{"ring-offset":[Ce,Ee]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",Ne,Br]}],"shadow-color":[{shadow:[We]}],opacity:[{opacity:[y]}],"mix-blend":[{"mix-blend":[...X(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":X()}],filter:[{filter:["","none"]}],blur:[{blur:[s]}],brightness:[{brightness:[n]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",Ne,$]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[f]}],saturate:[{saturate:[_]}],sepia:[{sepia:[T]}],"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":[f]}],"backdrop-opacity":[{"backdrop-opacity":[y]}],"backdrop-saturate":[{"backdrop-saturate":[_]}],"backdrop-sepia":[{"backdrop-sepia":[T]}],"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",$]}],duration:[{duration:oe()}],ease:[{ease:["linear","in","out","in-out",$]}],delay:[{delay:oe()}],animate:[{animate:["none","spin","ping","pulse","bounce",$]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[D]}],"scale-x":[{"scale-x":[D]}],"scale-y":[{"scale-y":[D]}],rotate:[{rotate:[qe,$]}],"translate-x":[{"translate-x":[z]}],"translate-y":[{"translate-y":[z]}],"skew-x":[{"skew-x":[P]}],"skew-y":[{"skew-y":[P]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",$]}],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",$]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":F()}],"scroll-mx":[{"scroll-mx":F()}],"scroll-my":[{"scroll-my":F()}],"scroll-ms":[{"scroll-ms":F()}],"scroll-me":[{"scroll-me":F()}],"scroll-mt":[{"scroll-mt":F()}],"scroll-mr":[{"scroll-mr":F()}],"scroll-mb":[{"scroll-mb":F()}],"scroll-ml":[{"scroll-ml":F()}],"scroll-p":[{"scroll-p":F()}],"scroll-px":[{"scroll-px":F()}],"scroll-py":[{"scroll-py":F()}],"scroll-ps":[{"scroll-ps":F()}],"scroll-pe":[{"scroll-pe":F()}],"scroll-pt":[{"scroll-pt":F()}],"scroll-pr":[{"scroll-pr":F()}],"scroll-pb":[{"scroll-pb":F()}],"scroll-pl":[{"scroll-pl":F()}],"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",$]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[Ce,Ee,pt]}],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"]}}},Zr=Sr(Lr);function Z(...t){return Zr(en(t))}const Ur=cr("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"}}),Te=b.forwardRef(({className:t,variant:e,size:s,asChild:n=!1,...r},a)=>{const o=n?Mn:"button";return i.jsx(o,{className:Z(Ur({variant:e,size:s,className:t})),ref:a,...r})});Te.displayName="Button";const on=Bn,Vr=Dn,ln=b.forwardRef(({className:t,...e},s)=>i.jsx(Ls,{ref:s,className:Z("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...e}));ln.displayName=Ls.displayName;const Ut=b.forwardRef(({className:t,children:e,hideCloseButton:s,...n},r)=>i.jsxs(Vr,{children:[i.jsx(ln,{}),i.jsxs(Zs,{ref:r,className:Z("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...n,children:[e,!s&&i.jsxs(On,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[i.jsx(Lt,{className:"h-4 w-4"}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Ut.displayName=Zs.displayName;const dn=({className:t,...e})=>i.jsx("div",{className:Z("flex flex-col space-y-1.5 text-center sm:text-left",t),...e});dn.displayName="DialogHeader";const Vt=({className:t,...e})=>i.jsx("div",{className:Z("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...e});Vt.displayName="DialogFooter";const Gt=b.forwardRef(({className:t,...e},s)=>i.jsx(Us,{ref:s,className:Z("text-lg font-semibold leading-none tracking-tight",t),...e}));Gt.displayName=Us.displayName;const qt=b.forwardRef(({className:t,...e},s)=>i.jsx(Vs,{ref:s,className:Z("text-sm text-muted-foreground",t),...e}));qt.displayName=Vs.displayName;var H;(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(l=>typeof r[r[l]]!="number"),o={};for(const l of a)o[l]=r[l];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})(H||(H={}));var ms;(function(t){t.mergeShapes=(e,s)=>({...e,...s})})(ms||(ms={}));const j=H.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Ie=t=>{switch(typeof t){case"undefined":return j.undefined;case"string":return j.string;case"number":return Number.isNaN(t)?j.nan:j.number;case"boolean":return j.boolean;case"function":return j.function;case"bigint":return j.bigint;case"symbol":return j.symbol;case"object":return Array.isArray(t)?j.array:t===null?j.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?j.promise:typeof Map<"u"&&t instanceof Map?j.map:typeof Set<"u"&&t instanceof Set?j.set:typeof Date<"u"&&t instanceof Date?j.date:j.object;default:return j.unknown}},k=H.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 _e 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 l=n,d=0;for(;d<o.path.length;){const c=o.path[d];d===o.path.length-1?(l[c]=l[c]||{_errors:[]},l[c]._errors.push(s(o))):l[c]=l[c]||{_errors:[]},l=l[c],d++}}};return r(this),n}static assert(e){if(!(e instanceof _e))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,H.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()}}_e.create=t=>new _e(t);const Et=(t,e)=>{let s;switch(t.code){case k.invalid_type:t.received===j.undefined?s="Required":s=`Expected ${t.expected}, received ${t.received}`;break;case k.invalid_literal:s=`Invalid literal value, expected ${JSON.stringify(t.expected,H.jsonStringifyReplacer)}`;break;case k.unrecognized_keys:s=`Unrecognized key(s) in object: ${H.joinValues(t.keys,", ")}`;break;case k.invalid_union:s="Invalid input";break;case k.invalid_union_discriminator:s=`Invalid discriminator value. Expected ${H.joinValues(t.options)}`;break;case k.invalid_enum_value:s=`Invalid enum value. Expected ${H.joinValues(t.options)}, received '${t.received}'`;break;case k.invalid_arguments:s="Invalid function arguments";break;case k.invalid_return_type:s="Invalid function return type";break;case k.invalid_date:s="Invalid date";break;case k.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}"`:H.assertNever(t.validation):t.validation!=="regex"?s=`Invalid ${t.validation}`:s="Invalid";break;case k.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 k.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 k.custom:s="Invalid input";break;case k.invalid_intersection_types:s="Intersection results could not be merged";break;case k.not_multiple_of:s=`Number must be a multiple of ${t.multipleOf}`;break;case k.not_finite:s="Number must be finite";break;default:s=e.defaultError,H.assertNever(t)}return{message:s}};let Gr=Et;function qr(){return Gr}const Wr=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 l="";const d=n.filter(c=>!!c).slice().reverse();for(const c of d)l=c(o,{data:e,defaultError:l}).message;return{...r,path:a,message:l}};function S(t,e){const s=qr(),n=Wr({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,s,s===Et?void 0:Et].filter(r=>!!r)});t.common.issues.push(n)}class ue{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 B;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 ue.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 B;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 B=Object.freeze({status:"aborted"}),Ke=t=>({status:"dirty",value:t}),me=t=>({status:"valid",value:t}),ps=t=>t.status==="aborted",xs=t=>t.status==="dirty",Pe=t=>t.status==="valid",ot=t=>typeof Promise<"u"&&t instanceof Promise;var E;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(E||(E={}));class ke{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 bs=(t,e)=>{if(Pe(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 _e(t.common.issues);return this._error=s,this._error}}};function L(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,l)=>{const{message:d}=t;return o.code==="invalid_enum_value"?{message:d??l.defaultError}:typeof l.data>"u"?{message:d??n??l.defaultError}:o.code!=="invalid_type"?{message:l.defaultError}:{message:d??s??l.defaultError}},description:r}}class V{get description(){return this._def.description}_getType(e){return Ie(e.data)}_getOrReturnCtx(e,s){return s||{common:e.parent.common,data:e.data,parsedType:Ie(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ue,ctx:{common:e.parent.common,data:e.data,parsedType:Ie(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const s=this._parse(e);if(ot(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:Ie(e)},r=this._parseSync({data:e,path:n.path,parent:n});return bs(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:Ie(e)};if(!this["~standard"].async)try{const a=this._parseSync({data:e,path:[],parent:s});return Pe(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=>Pe(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:Ie(e)},r=this._parse({data:e,path:n.path,parent:n}),a=await(ot(r)?r:Promise.resolve(r));return bs(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),l=()=>a.addIssue({code:k.custom,...n(r)});return typeof Promise<"u"&&o instanceof Promise?o.then(d=>d?!0:(l(),!1)):o?!0:(l(),!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 Le({schema:this,typeName:M.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 Re.create(this,this._def)}nullable(){return Ze.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ve.create(this)}promise(){return ut.create(this,this._def)}or(e){return lt.create([this,e],this._def)}and(e){return dt.create(this,e,this._def)}transform(e){return new Le({...L(this._def),schema:this,typeName:M.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const s=typeof e=="function"?e:()=>e;return new Rt({...L(this._def),innerType:this,defaultValue:s,typeName:M.ZodDefault})}brand(){return new pa({typeName:M.ZodBranded,type:this,...L(this._def)})}catch(e){const s=typeof e=="function"?e:()=>e;return new Ft({...L(this._def),innerType:this,catchValue:s,typeName:M.ZodCatch})}describe(e){const s=this.constructor;return new s({...this._def,description:e})}pipe(e){return Wt.create(this,e)}readonly(){return Mt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Hr=/^c[^\s-]{8,}$/i,Jr=/^[0-9a-z]+$/,Qr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Kr=/^[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,Yr=/^[a-z0-9_-]{21}$/i,Xr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,ea=/^[-+]?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)?)??$/,ta=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,sa="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let xt;const na=/^(?:(?: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])$/,ra=/^(?:(?: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])$/,aa=/^(([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]))$/,oa=/^(([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])$/,ia=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,la=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,cn="((\\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])))",da=new RegExp(`^${cn}$`);function un(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 ca(t){return new RegExp(`^${un(t)}$`)}function ua(t){let e=`${cn}T${un(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 fa(t,e){return!!((e==="v4"||!e)&&na.test(t)||(e==="v6"||!e)&&aa.test(t))}function ha(t,e){if(!Xr.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 ga(t,e){return!!((e==="v4"||!e)&&ra.test(t)||(e==="v6"||!e)&&oa.test(t))}class je extends V{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==j.string){const a=this._getOrReturnCtx(e);return S(a,{code:k.invalid_type,expected:j.string,received:a.parsedType}),B}const n=new ue;let r;for(const a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(r=this._getOrReturnCtx(e,r),S(r,{code:k.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),S(r,{code:k.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,l=e.data.length<a.value;(o||l)&&(r=this._getOrReturnCtx(e,r),o?S(r,{code:k.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):l&&S(r,{code:k.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),n.dirty())}else if(a.kind==="email")ta.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"email",code:k.invalid_string,message:a.message}),n.dirty());else if(a.kind==="emoji")xt||(xt=new RegExp(sa,"u")),xt.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"emoji",code:k.invalid_string,message:a.message}),n.dirty());else if(a.kind==="uuid")Kr.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"uuid",code:k.invalid_string,message:a.message}),n.dirty());else if(a.kind==="nanoid")Yr.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"nanoid",code:k.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid")Hr.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"cuid",code:k.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid2")Jr.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"cuid2",code:k.invalid_string,message:a.message}),n.dirty());else if(a.kind==="ulid")Qr.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"ulid",code:k.invalid_string,message:a.message}),n.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),S(r,{validation:"url",code:k.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),S(r,{validation:"regex",code:k.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),S(r,{code:k.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),S(r,{code:k.invalid_string,validation:{startsWith:a.value},message:a.message}),n.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(r=this._getOrReturnCtx(e,r),S(r,{code:k.invalid_string,validation:{endsWith:a.value},message:a.message}),n.dirty()):a.kind==="datetime"?ua(a).test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{code:k.invalid_string,validation:"datetime",message:a.message}),n.dirty()):a.kind==="date"?da.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{code:k.invalid_string,validation:"date",message:a.message}),n.dirty()):a.kind==="time"?ca(a).test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{code:k.invalid_string,validation:"time",message:a.message}),n.dirty()):a.kind==="duration"?ea.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"duration",code:k.invalid_string,message:a.message}),n.dirty()):a.kind==="ip"?fa(e.data,a.version)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"ip",code:k.invalid_string,message:a.message}),n.dirty()):a.kind==="jwt"?ha(e.data,a.alg)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"jwt",code:k.invalid_string,message:a.message}),n.dirty()):a.kind==="cidr"?ga(e.data,a.version)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"cidr",code:k.invalid_string,message:a.message}),n.dirty()):a.kind==="base64"?ia.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"base64",code:k.invalid_string,message:a.message}),n.dirty()):a.kind==="base64url"?la.test(e.data)||(r=this._getOrReturnCtx(e,r),S(r,{validation:"base64url",code:k.invalid_string,message:a.message}),n.dirty()):H.assertNever(a);return{status:n.value,value:e.data}}_regex(e,s,n){return this.refinement(r=>e.test(r),{validation:s,code:k.invalid_string,...E.errToObj(n)})}_addCheck(e){return new je({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...E.errToObj(e)})}url(e){return this._addCheck({kind:"url",...E.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...E.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...E.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...E.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...E.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...E.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...E.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...E.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...E.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...E.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...E.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...E.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,...E.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,...E.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...E.errToObj(e)})}regex(e,s){return this._addCheck({kind:"regex",regex:e,...E.errToObj(s)})}includes(e,s){return this._addCheck({kind:"includes",value:e,position:s==null?void 0:s.position,...E.errToObj(s==null?void 0:s.message)})}startsWith(e,s){return this._addCheck({kind:"startsWith",value:e,...E.errToObj(s)})}endsWith(e,s){return this._addCheck({kind:"endsWith",value:e,...E.errToObj(s)})}min(e,s){return this._addCheck({kind:"min",value:e,...E.errToObj(s)})}max(e,s){return this._addCheck({kind:"max",value:e,...E.errToObj(s)})}length(e,s){return this._addCheck({kind:"length",value:e,...E.errToObj(s)})}nonempty(e){return this.min(1,E.errToObj(e))}trim(){return new je({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new je({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new je({...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}}je.create=t=>new je({checks:[],typeName:M.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...L(t)});function ma(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 ze extends V{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)!==j.number){const a=this._getOrReturnCtx(e);return S(a,{code:k.invalid_type,expected:j.number,received:a.parsedType}),B}let n;const r=new ue;for(const a of this._def.checks)a.kind==="int"?H.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),S(n,{code:k.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),S(n,{code:k.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),S(n,{code:k.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()):a.kind==="multipleOf"?ma(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),S(n,{code:k.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),S(n,{code:k.not_finite,message:a.message}),r.dirty()):H.assertNever(a);return{status:r.value,value:e.data}}gte(e,s){return this.setLimit("min",e,!0,E.toString(s))}gt(e,s){return this.setLimit("min",e,!1,E.toString(s))}lte(e,s){return this.setLimit("max",e,!0,E.toString(s))}lt(e,s){return this.setLimit("max",e,!1,E.toString(s))}setLimit(e,s,n,r){return new ze({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:n,message:E.toString(r)}]})}_addCheck(e){return new ze({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:E.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:E.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:E.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:E.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:E.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:E.toString(s)})}finite(e){return this._addCheck({kind:"finite",message:E.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:E.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:E.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"&&H.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)}}ze.create=t=>new ze({checks:[],typeName:M.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...L(t)});class tt extends V{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)!==j.bigint)return this._getInvalidInput(e);let n;const r=new ue;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),S(n,{code:k.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),S(n,{code:k.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),S(n,{code:k.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):H.assertNever(a);return{status:r.value,value:e.data}}_getInvalidInput(e){const s=this._getOrReturnCtx(e);return S(s,{code:k.invalid_type,expected:j.bigint,received:s.parsedType}),B}gte(e,s){return this.setLimit("min",e,!0,E.toString(s))}gt(e,s){return this.setLimit("min",e,!1,E.toString(s))}lte(e,s){return this.setLimit("max",e,!0,E.toString(s))}lt(e,s){return this.setLimit("max",e,!1,E.toString(s))}setLimit(e,s,n,r){return new tt({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:n,message:E.toString(r)}]})}_addCheck(e){return new tt({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:E.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:E.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:E.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:E.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:E.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}}tt.create=t=>new tt({checks:[],typeName:M.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...L(t)});class Nt extends V{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==j.boolean){const n=this._getOrReturnCtx(e);return S(n,{code:k.invalid_type,expected:j.boolean,received:n.parsedType}),B}return me(e.data)}}Nt.create=t=>new Nt({typeName:M.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...L(t)});class it extends V{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==j.date){const a=this._getOrReturnCtx(e);return S(a,{code:k.invalid_type,expected:j.date,received:a.parsedType}),B}if(Number.isNaN(e.data.getTime())){const a=this._getOrReturnCtx(e);return S(a,{code:k.invalid_date}),B}const n=new ue;let r;for(const a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(r=this._getOrReturnCtx(e,r),S(r,{code:k.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),S(r,{code:k.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):H.assertNever(a);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new it({...this._def,checks:[...this._def.checks,e]})}min(e,s){return this._addCheck({kind:"min",value:e.getTime(),message:E.toString(s)})}max(e,s){return this._addCheck({kind:"max",value:e.getTime(),message:E.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}}it.create=t=>new it({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:M.ZodDate,...L(t)});class ys extends V{_parse(e){if(this._getType(e)!==j.symbol){const n=this._getOrReturnCtx(e);return S(n,{code:k.invalid_type,expected:j.symbol,received:n.parsedType}),B}return me(e.data)}}ys.create=t=>new ys({typeName:M.ZodSymbol,...L(t)});class vs extends V{_parse(e){if(this._getType(e)!==j.undefined){const n=this._getOrReturnCtx(e);return S(n,{code:k.invalid_type,expected:j.undefined,received:n.parsedType}),B}return me(e.data)}}vs.create=t=>new vs({typeName:M.ZodUndefined,...L(t)});class ks extends V{_parse(e){if(this._getType(e)!==j.null){const n=this._getOrReturnCtx(e);return S(n,{code:k.invalid_type,expected:j.null,received:n.parsedType}),B}return me(e.data)}}ks.create=t=>new ks({typeName:M.ZodNull,...L(t)});class ws extends V{constructor(){super(...arguments),this._any=!0}_parse(e){return me(e.data)}}ws.create=t=>new ws({typeName:M.ZodAny,...L(t)});class It extends V{constructor(){super(...arguments),this._unknown=!0}_parse(e){return me(e.data)}}It.create=t=>new It({typeName:M.ZodUnknown,...L(t)});class Fe extends V{_parse(e){const s=this._getOrReturnCtx(e);return S(s,{code:k.invalid_type,expected:j.never,received:s.parsedType}),B}}Fe.create=t=>new Fe({typeName:M.ZodNever,...L(t)});class Ss extends V{_parse(e){if(this._getType(e)!==j.undefined){const n=this._getOrReturnCtx(e);return S(n,{code:k.invalid_type,expected:j.void,received:n.parsedType}),B}return me(e.data)}}Ss.create=t=>new Ss({typeName:M.ZodVoid,...L(t)});class ve extends V{_parse(e){const{ctx:s,status:n}=this._processInputParams(e),r=this._def;if(s.parsedType!==j.array)return S(s,{code:k.invalid_type,expected:j.array,received:s.parsedType}),B;if(r.exactLength!==null){const o=s.data.length>r.exactLength.value,l=s.data.length<r.exactLength.value;(o||l)&&(S(s,{code:o?k.too_big:k.too_small,minimum:l?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&&(S(s,{code:k.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&&(S(s,{code:k.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,l)=>r.type._parseAsync(new ke(s,o,s.path,l)))).then(o=>ue.mergeArray(n,o));const a=[...s.data].map((o,l)=>r.type._parseSync(new ke(s,o,s.path,l)));return ue.mergeArray(n,a)}get element(){return this._def.type}min(e,s){return new ve({...this._def,minLength:{value:e,message:E.toString(s)}})}max(e,s){return new ve({...this._def,maxLength:{value:e,message:E.toString(s)}})}length(e,s){return new ve({...this._def,exactLength:{value:e,message:E.toString(s)}})}nonempty(e){return this.min(1,e)}}ve.create=(t,e)=>new ve({type:t,minLength:null,maxLength:null,exactLength:null,typeName:M.ZodArray,...L(e)});function Oe(t){if(t instanceof ae){const e={};for(const s in t.shape){const n=t.shape[s];e[s]=Re.create(Oe(n))}return new ae({...t._def,shape:()=>e})}else return t instanceof ve?new ve({...t._def,type:Oe(t.element)}):t instanceof Re?Re.create(Oe(t.unwrap())):t instanceof Ze?Ze.create(Oe(t.unwrap())):t instanceof De?De.create(t.items.map(e=>Oe(e))):t}class ae extends V{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=H.objectKeys(e);return this._cached={shape:e,keys:s},this._cached}_parse(e){if(this._getType(e)!==j.object){const c=this._getOrReturnCtx(e);return S(c,{code:k.invalid_type,expected:j.object,received:c.parsedType}),B}const{status:n,ctx:r}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),l=[];if(!(this._def.catchall instanceof Fe&&this._def.unknownKeys==="strip"))for(const c in r.data)o.includes(c)||l.push(c);const d=[];for(const c of o){const u=a[c],f=r.data[c];d.push({key:{status:"valid",value:c},value:u._parse(new ke(r,f,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof Fe){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of l)d.push({key:{status:"valid",value:u},value:{status:"valid",value:r.data[u]}});else if(c==="strict")l.length>0&&(S(r,{code:k.unrecognized_keys,keys:l}),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 l){const f=r.data[u];d.push({key:{status:"valid",value:u},value:c._parse(new ke(r,f,r.path,u)),alwaysSet:u in r.data})}}return r.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of d){const f=await u.key,h=await u.value;c.push({key:f,value:h,alwaysSet:u.alwaysSet})}return c}).then(c=>ue.mergeObjectSync(n,c)):ue.mergeObjectSync(n,d)}get shape(){return this._def.shape()}strict(e){return E.errToObj,new ae({...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:E.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new ae({...this._def,unknownKeys:"strip"})}passthrough(){return new ae({...this._def,unknownKeys:"passthrough"})}extend(e){return new ae({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new ae({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:M.ZodObject})}setKey(e,s){return this.augment({[e]:s})}catchall(e){return new ae({...this._def,catchall:e})}pick(e){const s={};for(const n of H.objectKeys(e))e[n]&&this.shape[n]&&(s[n]=this.shape[n]);return new ae({...this._def,shape:()=>s})}omit(e){const s={};for(const n of H.objectKeys(this.shape))e[n]||(s[n]=this.shape[n]);return new ae({...this._def,shape:()=>s})}deepPartial(){return Oe(this)}partial(e){const s={};for(const n of H.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?s[n]=r:s[n]=r.optional()}return new ae({...this._def,shape:()=>s})}required(e){const s={};for(const n of H.objectKeys(this.shape))if(e&&!e[n])s[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof Re;)a=a._def.innerType;s[n]=a}return new ae({...this._def,shape:()=>s})}keyof(){return fn(H.objectKeys(this.shape))}}ae.create=(t,e)=>new ae({shape:()=>t,unknownKeys:"strip",catchall:Fe.create(),typeName:M.ZodObject,...L(e)});ae.strictCreate=(t,e)=>new ae({shape:()=>t,unknownKeys:"strict",catchall:Fe.create(),typeName:M.ZodObject,...L(e)});ae.lazycreate=(t,e)=>new ae({shape:t,unknownKeys:"strip",catchall:Fe.create(),typeName:M.ZodObject,...L(e)});class lt extends V{_parse(e){const{ctx:s}=this._processInputParams(e),n=this._def.options;function r(a){for(const l of a)if(l.result.status==="valid")return l.result;for(const l of a)if(l.result.status==="dirty")return s.common.issues.push(...l.ctx.common.issues),l.result;const o=a.map(l=>new _e(l.ctx.common.issues));return S(s,{code:k.invalid_union,unionErrors:o}),B}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 l=o.map(d=>new _e(d));return S(s,{code:k.invalid_union,unionErrors:l}),B}}get options(){return this._def.options}}lt.create=(t,e)=>new lt({options:t,typeName:M.ZodUnion,...L(e)});function At(t,e){const s=Ie(t),n=Ie(e);if(t===e)return{valid:!0,data:t};if(s===j.object&&n===j.object){const r=H.objectKeys(e),a=H.objectKeys(t).filter(l=>r.indexOf(l)!==-1),o={...t,...e};for(const l of a){const d=At(t[l],e[l]);if(!d.valid)return{valid:!1};o[l]=d.data}return{valid:!0,data:o}}else if(s===j.array&&n===j.array){if(t.length!==e.length)return{valid:!1};const r=[];for(let a=0;a<t.length;a++){const o=t[a],l=e[a],d=At(o,l);if(!d.valid)return{valid:!1};r.push(d.data)}return{valid:!0,data:r}}else return s===j.date&&n===j.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}class dt extends V{_parse(e){const{status:s,ctx:n}=this._processInputParams(e),r=(a,o)=>{if(ps(a)||ps(o))return B;const l=At(a.value,o.value);return l.valid?((xs(a)||xs(o))&&s.dirty(),{status:s.value,value:l.data}):(S(n,{code:k.invalid_intersection_types}),B)};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}))}}dt.create=(t,e,s)=>new dt({left:t,right:e,typeName:M.ZodIntersection,...L(s)});class De extends V{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==j.array)return S(n,{code:k.invalid_type,expected:j.array,received:n.parsedType}),B;if(n.data.length<this._def.items.length)return S(n,{code:k.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),B;!this._def.rest&&n.data.length>this._def.items.length&&(S(n,{code:k.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),s.dirty());const a=[...n.data].map((o,l)=>{const d=this._def.items[l]||this._def.rest;return d?d._parse(new ke(n,o,n.path,l)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>ue.mergeArray(s,o)):ue.mergeArray(s,a)}get items(){return this._def.items}rest(e){return new De({...this._def,rest:e})}}De.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new De({items:t,typeName:M.ZodTuple,rest:null,...L(e)})};class ct extends V{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!==j.object)return S(n,{code:k.invalid_type,expected:j.object,received:n.parsedType}),B;const r=[],a=this._def.keyType,o=this._def.valueType;for(const l in n.data)r.push({key:a._parse(new ke(n,l,n.path,l)),value:o._parse(new ke(n,n.data[l],n.path,l)),alwaysSet:l in n.data});return n.common.async?ue.mergeObjectAsync(s,r):ue.mergeObjectSync(s,r)}get element(){return this._def.valueType}static create(e,s,n){return s instanceof V?new ct({keyType:e,valueType:s,typeName:M.ZodRecord,...L(n)}):new ct({keyType:je.create(),valueType:e,typeName:M.ZodRecord,...L(s)})}}class Cs extends V{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!==j.map)return S(n,{code:k.invalid_type,expected:j.map,received:n.parsedType}),B;const r=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([l,d],c)=>({key:r._parse(new ke(n,l,n.path,[c,"key"])),value:a._parse(new ke(n,d,n.path,[c,"value"]))}));if(n.common.async){const l=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 B;(c.status==="dirty"||u.status==="dirty")&&s.dirty(),l.set(c.value,u.value)}return{status:s.value,value:l}})}else{const l=new Map;for(const d of o){const c=d.key,u=d.value;if(c.status==="aborted"||u.status==="aborted")return B;(c.status==="dirty"||u.status==="dirty")&&s.dirty(),l.set(c.value,u.value)}return{status:s.value,value:l}}}}Cs.create=(t,e,s)=>new Cs({valueType:e,keyType:t,typeName:M.ZodMap,...L(s)});class st extends V{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==j.set)return S(n,{code:k.invalid_type,expected:j.set,received:n.parsedType}),B;const r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(S(n,{code:k.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&&(S(n,{code:k.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 B;u.status==="dirty"&&s.dirty(),c.add(u.value)}return{status:s.value,value:c}}const l=[...n.data.values()].map((d,c)=>a._parse(new ke(n,d,n.path,c)));return n.common.async?Promise.all(l).then(d=>o(d)):o(l)}min(e,s){return new st({...this._def,minSize:{value:e,message:E.toString(s)}})}max(e,s){return new st({...this._def,maxSize:{value:e,message:E.toString(s)}})}size(e,s){return this.min(e,s).max(e,s)}nonempty(e){return this.min(1,e)}}st.create=(t,e)=>new st({valueType:t,minSize:null,maxSize:null,typeName:M.ZodSet,...L(e)});class js extends V{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})}}js.create=(t,e)=>new js({getter:t,typeName:M.ZodLazy,...L(e)});class Tt extends V{_parse(e){if(e.data!==this._def.value){const s=this._getOrReturnCtx(e);return S(s,{received:s.data,code:k.invalid_literal,expected:this._def.value}),B}return{status:"valid",value:e.data}}get value(){return this._def.value}}Tt.create=(t,e)=>new Tt({value:t,typeName:M.ZodLiteral,...L(e)});function fn(t,e){return new $e({values:t,typeName:M.ZodEnum,...L(e)})}class $e extends V{_parse(e){if(typeof e.data!="string"){const s=this._getOrReturnCtx(e),n=this._def.values;return S(s,{expected:H.joinValues(n),received:s.parsedType,code:k.invalid_type}),B}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 S(s,{received:s.data,code:k.invalid_enum_value,options:n}),B}return me(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 $e.create(e,{...this._def,...s})}exclude(e,s=this._def){return $e.create(this.options.filter(n=>!e.includes(n)),{...this._def,...s})}}$e.create=fn;class _s extends V{_parse(e){const s=H.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==j.string&&n.parsedType!==j.number){const r=H.objectValues(s);return S(n,{expected:H.joinValues(r),received:n.parsedType,code:k.invalid_type}),B}if(this._cache||(this._cache=new Set(H.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=H.objectValues(s);return S(n,{received:n.data,code:k.invalid_enum_value,options:r}),B}return me(e.data)}get enum(){return this._def.values}}_s.create=(t,e)=>new _s({values:t,typeName:M.ZodNativeEnum,...L(e)});class ut extends V{unwrap(){return this._def.type}_parse(e){const{ctx:s}=this._processInputParams(e);if(s.parsedType!==j.promise&&s.common.async===!1)return S(s,{code:k.invalid_type,expected:j.promise,received:s.parsedType}),B;const n=s.parsedType===j.promise?s.data:Promise.resolve(s.data);return me(n.then(r=>this._def.type.parseAsync(r,{path:s.path,errorMap:s.common.contextualErrorMap})))}}ut.create=(t,e)=>new ut({type:t,typeName:M.ZodPromise,...L(e)});class Le extends V{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===M.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=>{S(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 l=>{if(s.value==="aborted")return B;const d=await this._def.schema._parseAsync({data:l,path:n.path,parent:n});return d.status==="aborted"?B:d.status==="dirty"||s.value==="dirty"?Ke(d.value):d});{if(s.value==="aborted")return B;const l=this._def.schema._parseSync({data:o,path:n.path,parent:n});return l.status==="aborted"?B:l.status==="dirty"||s.value==="dirty"?Ke(l.value):l}}if(r.type==="refinement"){const o=l=>{const d=r.refinement(l,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 l};if(n.common.async===!1){const l=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return l.status==="aborted"?B:(l.status==="dirty"&&s.dirty(),o(l.value),{status:s.value,value:l.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(l=>l.status==="aborted"?B:(l.status==="dirty"&&s.dirty(),o(l.value).then(()=>({status:s.value,value:l.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(!Pe(o))return B;const l=r.transform(o.value,a);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:s.value,value:l}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Pe(o)?Promise.resolve(r.transform(o.value,a)).then(l=>({status:s.value,value:l})):B);H.assertNever(r)}}Le.create=(t,e,s)=>new Le({schema:t,typeName:M.ZodEffects,effect:e,...L(s)});Le.createWithPreprocess=(t,e,s)=>new Le({schema:e,effect:{type:"preprocess",transform:t},typeName:M.ZodEffects,...L(s)});class Re extends V{_parse(e){return this._getType(e)===j.undefined?me(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Re.create=(t,e)=>new Re({innerType:t,typeName:M.ZodOptional,...L(e)});class Ze extends V{_parse(e){return this._getType(e)===j.null?me(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Ze.create=(t,e)=>new Ze({innerType:t,typeName:M.ZodNullable,...L(e)});class Rt extends V{_parse(e){const{ctx:s}=this._processInputParams(e);let n=s.data;return s.parsedType===j.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:s.path,parent:s})}removeDefault(){return this._def.innerType}}Rt.create=(t,e)=>new Rt({innerType:t,typeName:M.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...L(e)});class Ft extends V{_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 ot(r)?r.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new _e(n.common.issues)},input:n.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new _e(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}Ft.create=(t,e)=>new Ft({innerType:t,typeName:M.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...L(e)});class Es extends V{_parse(e){if(this._getType(e)!==j.nan){const n=this._getOrReturnCtx(e);return S(n,{code:k.invalid_type,expected:j.nan,received:n.parsedType}),B}return{status:"valid",value:e.data}}}Es.create=t=>new Es({typeName:M.ZodNaN,...L(t)});class pa extends V{_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 Wt extends V{_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"?B:a.status==="dirty"?(s.dirty(),Ke(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"?B: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 Wt({in:e,out:s,typeName:M.ZodPipeline})}}class Mt extends V{_parse(e){const s=this._def.innerType._parse(e),n=r=>(Pe(r)&&(r.value=Object.freeze(r.value)),r);return ot(s)?s.then(r=>n(r)):n(s)}unwrap(){return this._def.innerType}}Mt.create=(t,e)=>new Mt({innerType:t,typeName:M.ZodReadonly,...L(e)});var M;(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"})(M||(M={}));const C=je.create,de=ze.create,ye=Nt.create,nt=It.create;Fe.create;const ge=ve.create,ee=ae.create,ht=lt.create;dt.create;De.create;const Ht=ct.create,Dt=Tt.create,we=$e.create;ut.create;Re.create;Ze.create;const hn=we(["default","autoEdit","yolo","plan"]),at={DEFAULT:"default",AUTO_EDIT:"autoEdit",PLAN:"plan"},Jt=we(["user","assistant","system","tool"]),gn=ht([ee({type:Dt("text"),text:C()}),ee({type:Dt("image_url"),image_url:ee({url:C()})})]);ee({id:C(),role:Jt,content:ht([C(),ge(gn)]),timestamp:de(),metadata:Ht(nt()).optional(),thinkingContent:C().optional(),tool_call_id:C().optional(),name:C().optional(),tool_calls:nt().optional()});const Qt=ee({sessionId:C(),projectPath:C(),title:C().optional(),gitBranch:C().optional(),rootId:C(),parentId:C().optional(),relationType:we(["subagent","fork"]).optional(),resumedFrom:C().optional(),rootAgentId:C().optional(),resumeDepth:de().int().nonnegative().optional(),messageCount:de(),firstMessageTime:C(),lastMessageTime:C(),hasErrors:ye()});ee({version:Dt(1),sessionId:C(),goalId:C(),objective:C(),status:we(["active","paused","blocked","usage_limited","budget_limited","complete"]),tokenBudget:de().optional(),tokensUsed:de(),timeUsedSeconds:de(),continuationCount:de(),statusReason:C().optional(),createdAt:C(),updatedAt:C()});const Kt=ee({role:Jt,content:ht([C(),ge(gn)]),metadata:nt().optional(),reasoningContent:C().optional(),thinkingContent:C().optional(),tool_call_id:C().optional(),name:C().optional(),tool_calls:nt().optional()}),xa=ee({session:Qt,messages:ge(Kt)}),mn=we(["conversation","code","both"]),pn=ee({messageId:C(),preview:C(),createdAt:C(),fileCount:de().int().nonnegative()});ee({targetMessageId:C().min(1),mode:mn.default("conversation")});const ba=ee({checkpoint:pn,mode:mn,removedTurns:de().int().positive(),restoredFiles:ge(C()),messages:ge(Kt)}),ya=we(["running","completed","failed","cancelled"]),Ot=ee({id:C(),subagentType:C(),description:C(),status:ya,rootAgentId:C(),resumedFrom:C().optional(),resumeDepth:de().int().nonnegative(),createdAt:de(),lastActiveAt:de(),completedAt:de().optional(),result:ee({success:ye(),message:C(),error:C().optional(),verificationCommands:ge(C()).optional()}).optional(),stats:ee({tokens:de().optional(),toolCalls:de().optional(),duration:de().optional()}).optional()});ee({prompt:C().trim().min(1).max(32e3)});const va=ee({source:Ot,session:Ot}),xn=ee({sessionId:C(),projectPath:C()}),ka=ee({type:C(),properties:Ht(nt())});ee({content:C(),projectPath:C().optional(),permissionMode:hn.optional(),attachments:ge(ee({type:we(["file","image","url"]),path:C().optional(),url:C().optional(),content:C().optional(),mimeType:C().optional(),name:C().optional()})).optional()});ee({messageId:C(),role:Jt,content:C(),timestamp:C()});ee({approved:ye(),remember:ye().optional(),scope:we(["once","session","project"]).optional(),targetMode:hn.optional(),feedback:C().optional(),answers:Ht(ht([C(),ge(C())])).optional()});ee({id:C(),name:C(),provider:C(),model:C(),baseUrl:C().optional(),apiKey:C().optional(),maxContextTokens:de().optional()});we(["vs-dark","vs-light","hc-black"]);const wa=we(["light","dark","system"]),Sa=ee({language:C(),theme:C(),uiTheme:wa,autoSaveSessions:ye(),notifyBuild:ye(),notifyErrors:ye(),notifySounds:ye(),privacyTelemetry:ye(),privacyCrash:ye()});Sa.partial();const ne="",Ca=1e4,ja=ge(Qt),_a=ge(pn),Ea=ge(Ot),Na=t=>Array.isArray(t)?t:t==null?"":typeof t=="string"?t:JSON.stringify(t),Ia=()=>{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}`};function Aa(t){const e=xn.parse(t);return`projectPath=${encodeURIComponent(e.projectPath)}`}function fe(t,e){const s=Aa(e);return`${t}${t.includes("?")?"&":"?"}${s}`}function Ta(t){return{"x-blade-directory":xn.parse(t).projectPath}}const bt=(t,e,s)=>({id:`history-${e}-${s}`,role:t.role,content:Na(t.content),timestamp:s,metadata:t.metadata&&typeof t.metadata=="object"?t.metadata:void 0,tool_call_id:t.tool_call_id,name:t.name,tool_calls:t.tool_calls,thinkingContent:t.thinkingContent??t.reasoningContent}),J={listSessions:async()=>{const t=await fetch(`${ne}/sessions`);if(!t.ok)throw new Error("Failed to load sessions");return ja.parse(await t.json())},createSession:async(t,e)=>{const s=await fetch(`${ne}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:t,title:e||Ia()})});if(!s.ok)throw new Error("Failed to create session");return Qt.parse(await s.json())},deleteSession:async t=>{if(!(await fetch(fe(`${ne}/sessions/${t.sessionId}`,t),{method:"DELETE"})).ok)throw new Error("Failed to delete session")},updateSession:async(t,e)=>{if(!(await fetch(`${ne}/sessions/${t.sessionId}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e,projectPath:t.projectPath})})).ok)throw new Error("Failed to update session")},getMessages:async t=>{const e=await fetch(fe(`${ne}/sessions/${t.sessionId}/message`,t));if(!e.ok)throw new Error("Failed to load messages");const s=ge(Kt).parse(await e.json()),n=Date.now();return s.map((r,a)=>bt(r,a,n))},sendMessage:async(t,e,s)=>{const n=await fetch(`${ne}/sessions/${t.sessionId}/message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,permissionMode:s,projectPath:t.projectPath})});if(!n.ok)throw new Error("Failed to send message");return n.json()},abortSession:async t=>{await fetch(fe(`${ne}/sessions/${t.sessionId}/abort`,t),{method:"POST"})},getGoal:async t=>{const e=await fetch(fe(`${ne}/sessions/${t.sessionId}/goal`,t));if(!e.ok)throw new Error("Failed to load goal");return(await e.json()).goal},createGoal:async(t,e,s,n)=>{const r=await fetch(fe(`${ne}/sessions/${t.sessionId}/goal`,t),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({objective:e,tokenBudget:s,permissionMode:n})});if(!r.ok)throw new Error("Failed to create goal");return r.json()},updateGoal:async(t,e)=>{const s=await fetch(fe(`${ne}/sessions/${t.sessionId}/goal`,t),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!s.ok)throw new Error("Failed to update goal");return s.json()},clearGoal:async t=>{if(!(await fetch(fe(`${ne}/sessions/${t.sessionId}/goal`,t),{method:"DELETE"})).ok)throw new Error("Failed to clear goal")},listRewindCheckpoints:async t=>{const e=await fetch(fe(`${ne}/sessions/${t.sessionId}/rewind`,t));if(!e.ok)throw new Error("Failed to load rewind checkpoints");const s=await e.json();return _a.parse(s.checkpoints)},rewindSession:async(t,e,s)=>{const n=await fetch(fe(`${ne}/sessions/${t.sessionId}/rewind`,t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetMessageId:e,mode:s})});if(!n.ok)throw new Error("Failed to rewind session");const r=ba.parse(await n.json()),a=Date.now();return{...r,messages:r.messages.map((o,l)=>bt(o,l,a))}},listSubagents:async t=>{const e=await fetch(fe(`${ne}/sessions/${t.sessionId}/subagents`,t));if(!e.ok)throw new Error("Failed to load subagents");const s=await e.json();return Ea.parse(s.subagents)},resumeSubagent:async(t,e,s)=>{const n=await fetch(fe(`${ne}/sessions/${t.sessionId}/subagents/${encodeURIComponent(e)}/resume`,t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:s})});if(!n.ok){const r=await n.json().catch(()=>{});throw new Error((r==null?void 0:r.message)||"Failed to resume subagent")}return va.parse(await n.json())},forkSession:async t=>{const e=await fetch(`${ne}/sessions/${t.sessionId}/fork`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:t.projectPath})});if(!e.ok)throw new Error("Failed to fork session");const s=xa.parse(await e.json()),n=Date.now();return{session:s.session,messages:s.messages.map((r,a)=>bt(r,a,n))}},openEventSubscription:async(t,e,s)=>{const n=(s==null?void 0:s.maxRetries)??5,r=s==null?void 0:s.onConnectionChange;let a=null,o=0,l=null,d=Date.now(),c=null,u=null,f=!1,h=!1,g,m,p=!1;const x=new Promise((A,N)=>{g=A,m=N}),y=()=>{c&&(clearInterval(c),c=null)},v=()=>{u&&(clearTimeout(u),u=null)},_=()=>{a==null||a.close(),a=null},D=()=>{l&&(clearTimeout(l),l=null),y(),v(),_()},T=()=>{p||(p=!0,v(),g())},P=A=>{p||(p=!0,D(),m(A))},Q=()=>{if(f||o>=n){o>=n&&console.error(`SSE max retries (${n}) reached, giving up`);return}o++;const A=Math.min(1e3*Math.pow(2,o-1),3e4);console.log(`SSE reconnecting in ${A}ms (attempt ${o}/${n})`),l=setTimeout(()=>{I()},A)},z=()=>{o=0,d=Date.now(),r==null||r(!0),y(),c=setInterval(()=>{Date.now()-d>45e3&&(console.warn("SSE heartbeat timeout, reconnecting..."),y(),_(),r==null||r(!1),Q())},15e3),h||(h=!0,T())},I=async()=>{f||(_(),a=new EventSource(fe(`${ne}/sessions/${t.sessionId}/events`,t)),h||(v(),u=setTimeout(()=>{P(new Error("Timed out waiting for event subscription readiness"))},Ca)),a.onmessage=A=>{try{const N=ka.parse(JSON.parse(A.data));if(d=Date.now(),N.type==="connected"){N.properties.sessionId===t.sessionId&&N.properties.projectPath===t.projectPath&&z();return}if(N.type==="heartbeat")return;e(N)}catch(N){console.error("Failed to parse SSE event:",A.data,N)}},a.onerror=()=>{if(!f){if(y(),_(),!h){P(new Error("Failed to open event subscription"));return}console.error("SSE connection error"),r==null||r(!1),Q()}})};return I().catch(A=>{P(A instanceof Error?A:new Error("Failed to open event subscription"))}),await x,()=>{f=!0,l&&(clearTimeout(l),l=null),D(),r==null||r(!1)}},respondPermission:async(t,e,s)=>{const n=new URLSearchParams({sessionId:t.sessionId,projectPath:t.projectPath});if(!(await fetch(`${ne}/permissions/${e}?${n.toString()}`,{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(fe(`${ne}/sessions/${t.sessionId}/confirmation/${e}`,t),{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(fe(`${ne}/sessions/${t.sessionId}/question/${e}`,t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({answers:s})})).ok)throw new Error("Failed to respond to question")},getGitInfo:async t=>{const e=await fetch(`${ne}/suggestions/git-info`,{headers:Ta(t)});if(!e.ok)throw new Error("Failed to get git info");return e.json()}},Ns=t=>{let e;const s=new Set,n=(c,u)=>{const f=typeof c=="function"?c(e):c;if(!Object.is(f,e)){const h=e;e=u??(typeof f!="object"||f===null)?f:Object.assign({},e,f),s.forEach(g=>g(e,h))}},r=()=>e,l={setState:n,getState:r,getInitialState:()=>d,subscribe:c=>(s.add(c),()=>s.delete(c))},d=e=t(n,r,l);return l},Ra=t=>t?Ns(t):Ns,Fa=t=>t;function Ma(t,e=Fa){const s=Qe.useSyncExternalStore(t.subscribe,Qe.useCallback(()=>e(t.getState()),[t,e]),Qe.useCallback(()=>e(t.getInitialState()),[t,e]));return Qe.useDebugValue(s),s}const Is=t=>{const e=Ra(t),s=n=>Ma(e,n);return Object.assign(s,e),s},Yt=t=>t?Is(t):Is,Me=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),Da=(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 l=o.agentContent||Me();return r==="before"?{...o,agentContent:{...l,textBefore:l.textBefore+n}}:{...o,agentContent:{...l,textAfter:l.textAfter+n}}})})),appendToolCall:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Me();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 l=o.agentContent;return l?{...o,agentContent:{...l,toolCalls:l.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||Me();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||Me();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||Me();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||Me();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||Me();return{...a,agentContent:{...o,tasks:n}}})})),replaceTemp:(s,n)=>t(r=>{const a=r.messages.findIndex(l=>l.content===s&&l.role==="user");if(a===-1)return r;const o=[...r.messages];return o[a]=n,{messages:o}})}),Bt=Yt(t=>({currentModelId:null,currentMode:at.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})})),yt="__temp__",Ye={inputTokens:0,outputTokens:0,totalTokens:0,maxContextTokens:128e3,isDefaultMaxTokens:!0};function xe(t){return{sessionId:t.sessionId,projectPath:t.projectPath}}function vt(t){return JSON.stringify([t.projectPath,t.sessionId])}function te(t,e){return!t||!e?t===e:t.sessionId===e.sessionId&&t.projectPath===e.projectPath}function As(t,e){const s=xe(e),n=t.findIndex(a=>te(xe(a),s));if(n===-1)return[...t,e];const r=[...t];return r[n]=e,r}function Ts(t,e){return t.filter(s=>!te(xe(s),e))}const Oa=2166136261,Ba=16777619;function Pt(t){return t==null?"":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):Array.isArray(t)?`[${t.map(e=>Pt(e)).join(",")}]`:typeof t=="object"?`{${Object.entries(t).sort(([s],[n])=>s.localeCompare(n)).map(([s,n])=>`${JSON.stringify(s)}:${Pt(n)}`).join(",")}}`:JSON.stringify(t)}function bn(t){let e=Oa>>>0;for(let s=0;s<t.length;s+=1)e^=t.charCodeAt(s),e=Math.imul(e,Ba);return(e>>>0).toString(16)}function yn(t){return typeof t=="string"?t:Pt(t??{})}function Pa(t){return t==="completed"?"completed":t==="failed"?"failed":"running"}function zt({explicitId:t,messageId:e,toolName:s,argumentsValue:n,toolKind:r,output:a}){if(t)return t;const o=[e||"unknown-message",s||"Unknown",yn(n),r||"",a||""].join("|");return`tool-${bn(o)}`}function Xt({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-${bn(o)}`}const za=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),$a=(t,e)=>{if(!e||typeof e!="object"||!("subtaskRef"in e))return null;const s=e.subtaskRef;return!s||typeof s!="object"?null:{id:Xt({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:Pa(s.status),startTime:Date.now(),sessionId:s.childSessionId,resumedFrom:s.resumedFrom,rootAgentId:s.rootAgentId,resumeDepth:typeof s.resumeDepth=="number"?s.resumeDepth:void 0}};function He(t){return typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
3
+ `)}function Xe(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 l=o.metadata,d=za();if(d.textBefore=He(o.content),o.thinkingContent&&(d.thinkingContent=o.thinkingContent),d.subagent=$a(o.id,l),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",f=yn((r=c.function)==null?void 0:r.arguments),h={toolCallId:zt({explicitId:c.id,messageId:o.id,toolName:u,argumentsValue:(a=c.function)==null?void 0:a.arguments}),toolName:u,arguments:f,status:"running",startTime:Date.now()};d.toolCalls.push(h)}s={id:o.id,role:"assistant",content:He(o.content),timestamp:o.timestamp||Date.now(),metadata:l,agentContent:d}}else if(o.role==="tool"&&s&&s.agentContent){const l=o,d=o.metadata,c=l.tool_call_id||(d==null?void 0:d.toolCallId),u=l.name||(d==null?void 0:d.toolName)||"Tool",f=s.agentContent.toolCalls.find(h=>h.toolCallId===c);f?(f.output=He(o.content),f.status="success",(!f.toolName||f.toolName==="Unknown")&&(f.toolName=u)):s.agentContent.toolCalls.push({toolCallId:zt({explicitId:c,messageId:s.id,toolName:u,output:He(o.content)}),toolName:u,output:He(o.content),status:"success",startTime:Date.now()})}return s&&e.push(s),e}const La=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},kt=()=>({eventUnsubscribe:null,isStreaming:!1,agentPhase:"idle",currentRunId:null,pendingSteeringCount:0,recoveredSteeringCount:0,currentAssistantMessageId:null,hasToolCalls:!1}),Za=(t,e)=>{let s=0;const n=()=>(s+=1,s),r=o=>o===s,a=o=>{try{o()}catch(l){console.warn("Failed to clean up stale event subscription",l)}};return{sessions:[],currentSessionId:null,currentSessionRef:null,forkingSessionRef:null,isTemporarySession:!1,isLoading:!1,error:null,goal:null,setSessions:o=>t({sessions:o}),addSession:o=>t(l=>({sessions:As(l.sessions,o)})),removeSession:o=>{const l=e(),d=te(l.currentSessionRef,o),c=te(l.forkingSessionRef,o);(d||c)&&n(),d&&l.unsubscribeFromEvents(),t(u=>({sessions:Ts(u.sessions,o),currentSessionId:d?null:u.currentSessionId,currentSessionRef:d?null:u.currentSessionRef,messages:d?[]:u.messages,goal:d?null:u.goal,forkingSessionRef:c?null:u.forkingSessionRef,...d?kt():{}}))},setCurrentSession:o=>{n(),t({currentSessionId:(o==null?void 0:o.sessionId)??null,currentSessionRef:o,isTemporarySession:!1})},setTemporarySession:o=>t({isTemporarySession:o}),setLoading:o=>t({isLoading:o}),setError:o=>t({error:o}),clearError:()=>t({error:null}),setGoal:o=>t({goal:o}),startTemporarySession:()=>{n(),e().unsubscribeFromEvents(),t({currentSessionId:yt,currentSessionRef:null,isTemporarySession:!0,forkingSessionRef:null,isLoading:!1,messages:[],goal:null,tokenUsage:{...Ye},error:null,...kt()})},loadSessions:async()=>{t({isLoading:!0,error:null});try{const o=await J.listSessions();t({sessions:o,isLoading:!1})}catch(o){t({error:o.message,isLoading:!1})}},selectSession:async o=>{const l=n();t({isLoading:!0,error:null,forkingSessionRef:null});try{const[d,c]=await Promise.all([J.getMessages(o),J.getGoal(o).catch(()=>null)]);if(!r(l))return;const u=Xe(d),f=await e().prepareEventSubscription(o);if(!r(l)){a(f);return}t({currentSessionId:o.sessionId,currentSessionRef:o,isTemporarySession:!1,messages:u,goal:c,isLoading:!1,tokenUsage:{...Ye}}),e().replaceEventSubscription(f)}catch(d){if(!r(l))return;t({error:d.message,isLoading:!1})}},deleteSession:async o=>{const l=e(),d=te(l.currentSessionRef,o),c=te(l.forkingSessionRef,o),u=d||c?n():null,f=d?u:null;c&&t({forkingSessionRef:null});try{await J.deleteSession(o);const h=e(),g=te(h.currentSessionRef,o)&&(f===null||r(f));g&&(n(),h.unsubscribeFromEvents()),t(m=>({sessions:Ts(m.sessions,o),currentSessionId:g?null:m.currentSessionId,currentSessionRef:g?null:m.currentSessionRef,messages:g?[]:m.messages,goal:g?null:m.goal,...g?kt():{}}))}catch(h){if(f!==null&&(!r(f)||!te(e().currentSessionRef,o)))return;t({error:h.message})}},updateSession:async(o,l)=>{try{await J.updateSession(o,l),t(d=>({sessions:d.sessions.map(c=>c.sessionId===o.sessionId&&c.projectPath===o.projectPath?{...c,title:l}:c)}))}catch(d){t({error:d.message})}},forkSession:async o=>{const l=n(),d=xe(o);t({forkingSessionRef:d,isLoading:!1,error:null});let c=null;try{const u=await J.forkSession(o),f=xe(u.session),h=Xe(u.messages);if(t(g=>({sessions:As(g.sessions,u.session)})),!r(l))return;if(c=await e().prepareEventSubscription(f),!r(l)){a(c),c=null;return}t({currentSessionId:f.sessionId,currentSessionRef:f,isTemporarySession:!1,messages:h,goal:null,tokenUsage:{...Ye},error:null,forkingSessionRef:null}),e().replaceEventSubscription(c),c=null}catch(u){if(c&&a(c),!r(l))return;t({error:u.message,forkingSessionRef:null})}},rewindSession:async(o,l)=>{const{currentSessionRef:d,isTemporarySession:c,isStreaming:u}=e();if(!d||c)return t({error:"No persisted session is available for rewind"}),!1;if(u)return t({error:"Stop the active run before rewinding"}),!1;const f=s;try{const h=await J.rewindSession(d,o,l);if(!r(f)||!te(e().currentSessionRef,d))return!1;const g=Xe(h.messages);return t(m=>({messages:g,tokenUsage:{...Ye},error:null,currentRunId:null,agentPhase:"idle",pendingSteeringCount:0,recoveredSteeringCount:0,currentAssistantMessageId:null,hasToolCalls:!1,sessions:m.sessions.map(p=>p.sessionId===d.sessionId&&p.projectPath===d.projectPath?{...p,messageCount:g.length}:p)})),!0}catch(h){return!r(f)||!te(e().currentSessionRef,d)||t({error:h.message}),!1}},sendMessage:async o=>{var D,T;const{currentSessionId:l,currentSessionRef:d,isTemporarySession:c,isStreaming:u,addSession:f,addMessage:h}=e(),g=s,m=d;let p=d,x=l,y=m,v=null;const _=()=>r(g)&&te(e().currentSessionRef,y);if(c||!x||x===yt)try{const P=await J.createSession();if(f(P),!_())return;p=xe(P),x=P.sessionId,t({currentSessionId:P.sessionId,currentSessionRef:p,isTemporarySession:!1}),y=p}catch(P){if(!_())return;t({error:P.message});return}if(!p||!x||x===yt){if(!_())return;t({error:"Failed to create session"});return}try{if(!u){if(v=await e().prepareEventSubscription(p),!_()){a(v),v=null;return}e().replaceEventSubscription(v),v=null}if(!_())return;const P=o.content.trim();if((((D=o.attachments)==null?void 0:D.length)??0)===0&&(P==="/goal"||P.startsWith("/goal "))){h({id:`goal-command-${Date.now()}`,role:"user",content:P,timestamp:Date.now()});const I=P.slice(5).trim().split(/\s+/).filter(Boolean),A=(T=I[0])==null?void 0:T.toLowerCase();if(!A||A==="status"){const F=await J.getGoal(p);_()&&t({goal:F});return}if(A==="clear"){await J.clearGoal(p),_()&&t({goal:null});return}let N;if(A==="pause")N=await J.updateGoal(p,{action:"pause"});else if(A==="resume")N=await J.updateGoal(p,{action:"resume"});else if(A==="edit"){const F=I.slice(1).join(" ").trim();if(!F)throw new Error("Usage: /goal edit <objective>");N=await J.updateGoal(p,{action:"edit",objective:F})}else{const F=I.lastIndexOf("--budget");let R;if(F>=0){const K=I[F+1];if(!K||!/^[1-9]\d*$/.test(K))throw new Error("--budget requires a positive integer");R=Number(K),I.splice(F,2)}const W=I.join(" ").trim();if(!W)throw new Error("Usage: /goal <objective>");const{currentMode:O}=Bt.getState();N=await J.createGoal(p,W,R,O)}if(!_())return;t({goal:N.goal,...N.runId?{currentRunId:N.runId,isStreaming:!0,agentPhase:"running"}:{}});return}h({id:`temp-${Date.now()}`,role:"user",content:La(o),timestamp:Date.now()}),t({isStreaming:!0,error:null,recoveredSteeringCount:u?e().recoveredSteeringCount:0});const{currentMode:Q}=Bt.getState(),z=await J.sendMessage(p,o,Q);if(!_())return;t({currentRunId:z.runId,pendingSteeringCount:z.status==="steering_queued"||z.status==="follow_up_queued"?Math.max(0,z.queued??1):e().pendingSteeringCount})}catch(P){if(v&&a(v),!_())return;t({error:P.message,isStreaming:!1})}},abortSession:async()=>{const{currentSessionRef:o,unsubscribeFromEvents:l}=e();if(l(),t({isStreaming:!1,currentRunId:null,pendingSteeringCount:0}),o)try{await J.abortSession(o)}catch{}},pauseGoal:async()=>{const{currentSessionRef:o,isTemporarySession:l}=e();if(!o||l){t({error:"No persisted session is available for this goal"});return}try{const d=await J.updateGoal(o,{action:"pause"});if(!te(e().currentSessionRef,o))return;t({goal:d.goal,error:null})}catch(d){if(!te(e().currentSessionRef,o))return;t({error:d.message})}},resumeGoal:async()=>{const{currentSessionRef:o,isTemporarySession:l}=e();if(!o||l){t({error:"No persisted session is available for this goal"});return}try{const d=await J.updateGoal(o,{action:"resume"});if(!te(e().currentSessionRef,o))return;t({goal:d.goal,error:null,...d.runId?{currentRunId:d.runId,isStreaming:!0,agentPhase:"running"}:{}})}catch(d){if(!te(e().currentSessionRef,o))return;t({error:d.message})}},editGoal:async o=>{const{currentSessionRef:l,isTemporarySession:d}=e();if(!l||d){t({error:"No persisted session is available for this goal"});return}try{const c=await J.updateGoal(l,{action:"edit",objective:o});if(!te(e().currentSessionRef,l))return;t({goal:c.goal,error:null,...c.runId?{currentRunId:c.runId,isStreaming:!0,agentPhase:"running"}:{}})}catch(c){if(!te(e().currentSessionRef,l))return;t({error:c.message})}},clearGoal:async()=>{const{currentSessionRef:o,isTemporarySession:l}=e();if(!o||l){t({error:"No persisted session is available for this goal"});return}try{if(await J.clearGoal(o),!te(e().currentSessionRef,o))return;t({goal:null,error:null})}catch(d){if(!te(e().currentSessionRef,o))return;t({error:d.message})}}}},Ua={flushTimeout:80};class Va{constructor(e){mt(this,"config");mt(this,"channels",new Map);this.config={...Ua,...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 Ae=new Va,Ue=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),Ga=(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(f=>f.id===s&&f.role==="assistant");if(u)return o(u.id),u.id}const l=r[r.length-1];if((l==null?void 0:l.role)==="assistant")return l.id;const d=s||`assistant-${Date.now()}`,c={id:d,role:"assistant",content:"",timestamp:Date.now(),agentContent:Ue()};return a(c),o(d),e(u=>({messages:u.messages.map(f=>f.id===d?{...f,agentContent:{...f.agentContent||Ue()}}:f)})),d},qa=(t,e,s)=>{const{currentSessionId:n,addMessage:r,startAgentResponse:a,messages:o,updateMessage:l}=e();if(t.sessionId!==n)return;const d=t.messageId,c=t.role||"assistant",u=o.find(h=>h.id===d),f={id:d,role:c,content:t.content||"",timestamp:Date.now(),agentContent:c==="assistant"?Ue():void 0};u?l(d,{role:c,content:f.content,agentContent:c==="assistant"?{...u.agentContent||Ue()}:void 0}):r(f),c==="assistant"&&a(d)},Wa=(t,e,s)=>{const{currentSessionId:n,appendDelta:r,currentAssistantMessageId:a,hasToolCalls:o,addMessage:l,startAgentResponse:d}=e();if(t.sessionId!==n)return;const c=t.messageId,u=t.delta;if(!a){const h={id:c,role:"assistant",content:"",timestamp:Date.now(),agentContent:Ue()};l(h),d(c),s(g=>({messages:g.messages.map(m=>m.id===c?{...m,agentContent:{...m.agentContent||Ue(),textBefore:u}}:m)}));return}r(a,u,o?"after":"before")},Ha=(t,e)=>{const{currentSessionId:s,updateMessage:n,messages:r}=e();if(t.sessionId!==s)return;const a=t.messageId,o=r.find(l=>l.id===a);if(o!=null&&o.agentContent){const{textBefore:l,textAfter:d}=o.agentContent;n(a,{content:l+d})}},Ja=(t,e)=>{const{currentSessionId:s,appendThinking:n,currentAssistantMessageId:r}=e();t.sessionId===s&&r&&n(r,t.delta)},Qa=()=>{},Ka=(t,e,s)=>{const{currentSessionId:n,appendToolCall:r,setHasToolCalls:a,setSubagent:o}=e();if(t.sessionId!==n)return;const l=Ga(e,s,t.messageId||t.toolCallId);if(!l)return;a(!0);const d=t.toolName||"Unknown",c=t.arguments;let u,f="",h,g;if(d==="Task")try{const p=JSON.parse(c);u=p.subagent_type,f=p.description||p.query||u||"",h=p.subagent_session_id,g=p.resume_from||p.resume}catch{}if(u){o(l,{id:Xt({explicitId:t.toolCallId,sessionId:h,messageId:l,agentType:u,description:f}),type:u,description:f,status:"running",startTime:Date.now(),sessionId:h,resumedFrom:g,output:"",thinking:""});return}const m={toolCallId:zt({explicitId:t.toolCallId,messageId:l,toolName:d,argumentsValue:c,toolKind:t.toolKind}),toolName:d,arguments:c,toolKind:t.toolKind,status:"running",startTime:Date.now()};r(l,m)},Ya=(t,e,s)=>{var D,T,P,Q;const{currentSessionId:n,updateToolCall:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId;if(!o)return;const l=a.find(z=>{var I;return(I=z.agentContent)==null?void 0:I.toolCalls.some(A=>A.toolCallId===o)});console.log("[handleToolResult]",{toolCallId:o,foundMessage:!!l,messageId:l==null?void 0:l.id,toolCallsInMessage:(D=l==null?void 0:l.agentContent)==null?void 0:D.toolCalls.map(z=>z.toolCallId),success:t.success});const d=t.messageId||(l==null?void 0:l.id)||((T=[...a].reverse().find(z=>z.role==="assistant"))==null?void 0:T.id);if(!d){console.log("[handleToolResult] No targetMessageId found!");return}const c=t.output,u=t.summary||(c&&c.trim()?c.trim().split(`
4
+ `)[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 f=a.find(z=>z.id===d);((Q=(P=f==null?void 0:f.agentContent)==null?void 0:P.subagent)==null?void 0:Q.id)===o&&s(z=>({messages:z.messages.map(I=>{var A;return I.id!==d||!((A=I.agentContent)!=null&&A.subagent)?I:{...I,agentContent:{...I.agentContent,subagent:{...I.agentContent.subagent,status:t.success?"completed":"failed"}}}})}));const h=t.metadata,g=h&&typeof h.subagentSessionId=="string"?h.subagentSessionId:void 0,m=h&&typeof h.subagentStatus=="string"?h.subagentStatus:void 0,p=h&&typeof h.subagentType=="string"?h.subagentType:void 0,x=h&&typeof h.subagentSummary=="string"?h.subagentSummary:void 0,y=h&&typeof h.subagentResumedFrom=="string"?h.subagentResumedFrom:void 0,v=h&&typeof h.subagentRootId=="string"?h.subagentRootId:void 0,_=h&&typeof h.subagentResumeDepth=="number"?h.subagentResumeDepth:void 0;g&&m&&s(z=>({messages:z.messages.map(I=>{if(I.id!==d)return I;const A=I.metadata??{},N=A.subtaskRef,F={...N??{},childSessionId:g,agentType:p||(typeof(N==null?void 0:N.agentType)=="string"?N.agentType:"subagent"),status:m,summary:x||(typeof(N==null?void 0:N.summary)=="string"?N.summary:""),resumedFrom:y||(typeof(N==null?void 0:N.resumedFrom)=="string"?N.resumedFrom:void 0),rootAgentId:v||(typeof(N==null?void 0:N.rootAgentId)=="string"?N.rootAgentId:g),resumeDepth:_??(typeof(N==null?void 0:N.resumeDepth)=="number"?N.resumeDepth:0)};return{...I,metadata:{...A,subtaskRef:F}}})}))},Xa=(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))},eo=(t,e)=>{const{currentSessionId:s,setTasks:n,currentAssistantMessageId:r}=e();if(t.sessionId!==s||!r)return;const a=t.tasks||[];n(r,a)},to=(t,e)=>{const{currentSessionId:s,setSubagent:n,currentAssistantMessageId:r}=e();if(t.sessionId!==s||!r)return;const a={id:Xt({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(),sessionId:t.subagentSessionId,resumedFrom:t.resumedFrom,rootAgentId:t.rootAgentId,resumeDepth:typeof t.resumeDepth=="number"?t.resumeDepth:void 0};n(r,a)},so=(t,e,s)=>{var c,u,f;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.subagentSessionId,l=o?(c=a.find(h=>{var g,m;return((m=(g=h.agentContent)==null?void 0:g.subagent)==null?void 0:m.sessionId)===o}))==null?void 0:c.id:r||((u=[...a].reverse().find(h=>{var g;return(g=h.agentContent)==null?void 0:g.subagent}))==null?void 0:u.id);if(!l)return;const d=a.find(h=>h.id===l);(f=d==null?void 0:d.agentContent)!=null&&f.subagent&&s(h=>({messages:h.messages.map(g=>{var m;return g.id!==l||!((m=g.agentContent)!=null&&m.subagent)?g:{...g,agentContent:{...g.agentContent,subagent:{...g.agentContent.subagent,sessionId:g.agentContent.subagent.sessionId||o,currentTool:t.toolName}}}})}))},no=(t,e,s)=>{var c,u,f;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.delta;if(!o)return;const l=t.subagentSessionId,d=l?((c=a.find(h=>{var g,m;return((m=(g=h.agentContent)==null?void 0:g.subagent)==null?void 0:m.sessionId)===l}))==null?void 0:c.id)||((u=a.find(h=>{var g,m;return((m=(g=h.agentContent)==null?void 0:g.subagent)==null?void 0:m.status)==="running"}))==null?void 0:u.id):r||((f=[...a].reverse().find(h=>{var g;return(g=h.agentContent)==null?void 0:g.subagent}))==null?void 0:f.id);d&&s(h=>({messages:h.messages.map(g=>{var m;return g.id!==d||!((m=g.agentContent)!=null&&m.subagent)?g:{...g,agentContent:{...g.agentContent,subagent:{...g.agentContent.subagent,sessionId:g.agentContent.subagent.sessionId||l,output:(g.agentContent.subagent.output||"")+o}}}})}))},ro=(t,e,s)=>{var c,u,f;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.delta;if(!o)return;const l=t.subagentSessionId,d=l?((c=a.find(h=>{var g,m;return((m=(g=h.agentContent)==null?void 0:g.subagent)==null?void 0:m.sessionId)===l}))==null?void 0:c.id)||((u=a.find(h=>{var g,m;return((m=(g=h.agentContent)==null?void 0:g.subagent)==null?void 0:m.status)==="running"}))==null?void 0:u.id):r||((f=[...a].reverse().find(h=>{var g;return(g=h.agentContent)==null?void 0:g.subagent}))==null?void 0:f.id);d&&s(h=>({messages:h.messages.map(g=>{var m;return g.id!==d||!((m=g.agentContent)!=null&&m.subagent)?g:{...g,agentContent:{...g.agentContent,subagent:{...g.agentContent.subagent,sessionId:g.agentContent.subagent.sessionId||l,thinking:(g.agentContent.subagent.thinking||"")+o}}}})}))},ao=(t,e,s)=>{var c,u,f,h;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.subagentSessionId,l=o?((c=a.find(g=>{var m,p;return((p=(m=g.agentContent)==null?void 0:m.subagent)==null?void 0:p.sessionId)===o}))==null?void 0:c.id)||((u=a.find(g=>{var m,p;return((p=(m=g.agentContent)==null?void 0:m.subagent)==null?void 0:p.status)==="running"}))==null?void 0:u.id):r||((f=[...a].reverse().find(g=>{var m;return(m=g.agentContent)==null?void 0:m.subagent}))==null?void 0:f.id);if(!l)return;const d=a.find(g=>g.id===l);(h=d==null?void 0:d.agentContent)!=null&&h.subagent&&s(g=>({messages:g.messages.map(m=>{var p;return m.id!==l||!((p=m.agentContent)!=null&&p.subagent)?m:{...m,agentContent:{...m.agentContent,subagent:{...m.agentContent.subagent,sessionId:m.agentContent.subagent.sessionId||o,status:t.success?"completed":"failed"}}}})}))},oo=(t,e,s)=>{var f,h,g;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId,l=t.toolName;if(!o||!l)return;const d=t.subagentSessionId,c=d?((f=a.find(m=>{var p,x;return((x=(p=m.agentContent)==null?void 0:p.subagent)==null?void 0:x.sessionId)===d}))==null?void 0:f.id)||((h=a.find(m=>{var p,x;return((x=(p=m.agentContent)==null?void 0:p.subagent)==null?void 0:x.status)==="running"}))==null?void 0:h.id):r||((g=[...a].reverse().find(m=>{var p;return(p=m.agentContent)==null?void 0:p.subagent}))==null?void 0:g.id);if(!c)return;const u={toolCallId:o,toolName:l,arguments:t.arguments,toolKind:t.toolKind,status:"running",startTime:Date.now()};s(m=>({messages:m.messages.map(p=>{var y;if(p.id!==c||!((y=p.agentContent)!=null&&y.subagent))return p;const x=p.agentContent.subagent.toolCalls||[];return x.some(v=>v.toolCallId===o)?p:{...p,agentContent:{...p.agentContent,subagent:{...p.agentContent.subagent,sessionId:p.agentContent.subagent.sessionId||d,toolCalls:[...x,u]}}}})}))},io=(t,e,s)=>{var g,m,p;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId;if(!o)return;const l=t.subagentSessionId,d=l?((g=a.find(x=>{var y,v;return((v=(y=x.agentContent)==null?void 0:y.subagent)==null?void 0:v.sessionId)===l}))==null?void 0:g.id)||((m=a.find(x=>{var y,v;return((v=(y=x.agentContent)==null?void 0:y.subagent)==null?void 0:v.status)==="running"}))==null?void 0:m.id):r||((p=[...a].reverse().find(x=>{var y;return(y=x.agentContent)==null?void 0:y.subagent}))==null?void 0:p.id);if(!d)return;const c=t.output,u=t.success===!0,f=u?"success":"error",h=t.summary||(c&&c.trim()?c.trim().split(`
5
+ `)[0].slice(0,120):u?"执行成功":"执行失败");s(x=>({messages:x.messages.map(y=>{var D;if(y.id!==d||!((D=y.agentContent)!=null&&D.subagent))return y;const _=(y.agentContent.subagent.toolCalls||[]).map(T=>T.toolCallId===o?{...T,status:f,summary:h,output:c,metadata:t.metadata}:T);return{...y,agentContent:{...y.agentContent,subagent:{...y.agentContent.subagent,sessionId:y.agentContent.subagent.sessionId||l,toolCalls:_}}}})}))},lo=(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 l=t.details,d=t.toolName||(l==null?void 0:l.toolName)||"Edit";r(o.id,{toolCallId:t.requestId||"",toolName:d,description:t.description,diff:(l==null?void 0:l.details)||(l==null?void 0:l.diff)||"",status:"pending"}),s({agentPhase:"waiting_permission"})},co=(t,e,s)=>{var c;const{currentSessionId:n,messages:r,setConfirmation:a}=e();if(t.sessionId!==n)return;const o=t.requestId,l=r.find(u=>{var f,h;return((h=(f=u.agentContent)==null?void 0:f.confirmation)==null?void 0:h.toolCallId)===o}),d=(c=l==null?void 0:l.agentContent)==null?void 0:c.confirmation;l&&(d==null?void 0:d.status)==="pending"&&a(l.id,{...d,status:"denied"}),s({agentPhase:"running",error:"Permission request timed out"})},uo=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"running"})},fo=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"compacting"})},ho=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"running"})},go=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"switching_model"})},mo=(t,e,s)=>{const{currentSessionId:n,setQuestion:r,messages:a}=e();if(t.sessionId!==n)return;const o=[...a].reverse().find(l=>l.role==="assistant");o&&(r(o.id,{toolCallId:t.requestId||t.toolCallId||"",questions:t.questions,status:"pending"}),s({agentPhase:"waiting_permission"}))},po=(t,e)=>{const{currentSessionId:s,endAgentResponse:n}=e();t.sessionId===s&&n()},xo=(t,e,s)=>{const{currentSessionId:n,endAgentResponse:r}=e();t.sessionId===n&&(s({agentPhase:"error",error:t.error||"An error occurred"}),r())},bo=(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"}))},yo=(t,e,s)=>{const{currentSessionId:n,endAgentResponse:r}=e();t.sessionId===n&&(s(a=>({isStreaming:!1,agentPhase:"idle",messages:a.messages.map(o=>{var l;return!((l=o.agentContent)!=null&&l.subagent)||o.agentContent.subagent.status!=="running"?o:{...o,agentContent:{...o.agentContent,subagent:{...o.agentContent.subagent,status:"failed"}}}})})),r())},Rs=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({pendingSteeringCount:typeof t.queued=="number"?Math.max(0,t.queued):1})},vo=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({pendingSteeringCount:typeof t.queued=="number"?Math.max(0,t.queued):0,recoveredSteeringCount:typeof t.recovered=="number"?Math.max(0,t.recovered):e().recoveredSteeringCount})},ko=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"running",recoveredSteeringCount:typeof t.recovered=="number"?Math.max(0,t.recovered):e().recoveredSteeringCount})},wo=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({goal:t.goal??null})},So=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({goal:null})},Co=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({goal:t.goal??e().goal,isStreaming:!0,agentPhase:"running"})},jo=(t,e,s)=>{if(t.sessionId!==e().currentSessionId||!Array.isArray(t.messages))return;const n=Date.now(),r=t.messages.flatMap((a,o)=>{if(typeof a!="object"||a===null)return[];const l=a;return!["user","assistant","system","tool"].includes(String(l.role))||!Array.isArray(l.content)&&typeof l.content!="string"?[]:[{id:`rewind-${o}-${n}`,role:l.role,content:l.content,timestamp:n+o,metadata:typeof l.metadata=="object"&&l.metadata!==null?l.metadata:void 0,thinkingContent:typeof l.thinkingContent=="string"?l.thinkingContent:typeof l.reasoningContent=="string"?l.reasoningContent:void 0,tool_call_id:typeof l.tool_call_id=="string"?l.tool_call_id:void 0,name:typeof l.name=="string"?l.name:void 0,tool_calls:l.tool_calls}]});s({messages:Xe(r),isStreaming:!1,agentPhase:"idle",currentRunId:null,pendingSteeringCount:0,recoveredSteeringCount:0,currentAssistantMessageId:null,hasToolCalls:!1})},wt={"message.created":qa,"message.delta":Wa,"message.complete":Ha,"thinking.delta":Ja,"thinking.completed":Qa,"tool.start":Ka,"tool.result":Ya,"token.usage":Xa,"task.updated":eo,"subagent.start":to,"subagent.update":so,"subagent.delta":no,"subagent.thinking.delta":ro,"subagent.tool.start":oo,"subagent.tool.result":io,"subagent.complete":ao,"permission.asked":lo,"permission.timeout":co,"turn.started":uo,"compaction.started":fo,"compaction.completed":ho,"model.fallback":go,"question.required":mo,"session.completed":po,"session.error":xo,"session.status":bo,"run.cancelled":yo,"steering.queued":Rs,"follow_up.queued":Rs,"follow_up.started":ko,"steering.applied":vo,"goal.updated":wo,"goal.cleared":So,"goal.continuation.started":Co,"session.rewound":jo},_o=new Set(["message.delta","thinking.delta","subagent.delta","subagent.thinking.delta"]),Eo=new Set(["message.complete","thinking.completed","session.completed","session.error","run.cancelled"]),rt=(t,e,s)=>{var n,r,a;return s?((n=t.find(o=>{var l,d;return((d=(l=o.agentContent)==null?void 0:l.subagent)==null?void 0:d.sessionId)===s}))==null?void 0:n.id)||((r=t.find(o=>{var l,d;return((d=(l=o.agentContent)==null?void 0:l.subagent)==null?void 0:d.status)==="running"}))==null?void 0:r.id):e||((a=[...t].reverse().find(o=>{var l;return(l=o.agentContent)==null?void 0:l.subagent}))==null?void 0:a.id)},Fs=(t,e)=>s=>{const n=t().currentSessionRef,r=s.properties;if(!n||r.sessionId!==n.sessionId||r.projectPath!==n.projectPath)return;if(_o.has(s.type)||console.log("[SSE Event]",s.type,s.properties),Eo.has(s.type)){Ae.drainAll();const o=wt[s.type];o&&o(s.properties,t,e);return}if(s.type==="message.delta"){const{currentSessionId:o,currentAssistantMessageId:l,hasToolCalls:d}=t();if(r.sessionId!==o)return;const c=r.messageId||l,u=r.delta;if(!l){const g=wt["message.delta"];g&&g(r,t,e);return}const f=d?"after":"before",h=`content:${c}:${f}`;Ae.append(h,u,g=>{const{appendDelta:m}=t();c&&m(c,g,f)});return}if(s.type==="thinking.delta"){const{currentSessionId:o,currentAssistantMessageId:l}=t();if(r.sessionId!==o||!l)return;const d=r.delta,c=l,u=`thinking:${c}`;Ae.append(u,d,f=>{const{appendThinking:h}=t();c&&h(c,f)});return}if(s.type==="subagent.delta"){const{currentSessionId:o}=t();if(r.sessionId!==o)return;const l=r.delta;if(!l)return;const d=r.subagentSessionId||"",c=`subagent:${d}`,{currentAssistantMessageId:u,messages:f}=t(),h=rt(f,u,d);Ae.append(c,l,g=>{const{currentAssistantMessageId:m,messages:p}=t(),x=h||rt(p,m,d);x&&e(y=>({messages:y.messages.map(v=>{var _;return v.id!==x||!((_=v.agentContent)!=null&&_.subagent)?v:{...v,agentContent:{...v.agentContent,subagent:{...v.agentContent.subagent,sessionId:v.agentContent.subagent.sessionId||d,output:(v.agentContent.subagent.output||"")+g}}}})}))});return}if(s.type==="subagent.thinking.delta"){const{currentSessionId:o}=t();if(r.sessionId!==o)return;const l=r.delta;if(!l)return;const d=r.subagentSessionId||"",c=`subagent-thinking:${d}`,{currentAssistantMessageId:u,messages:f}=t(),h=rt(f,u,d);Ae.append(c,l,g=>{const{currentAssistantMessageId:m,messages:p}=t(),x=h||rt(p,m,d);x&&e(y=>({messages:y.messages.map(v=>{var _;return v.id!==x||!((_=v.agentContent)!=null&&_.subagent)?v:{...v,agentContent:{...v.agentContent,subagent:{...v.agentContent.subagent,sessionId:v.agentContent.subagent.sessionId||d,thinking:(v.agentContent.subagent.thinking||"")+g}}}})}))});return}const a=wt[s.type];a&&a(s.properties,t,e)},No=(t,e)=>({isStreaming:!1,agentPhase:"idle",currentRunId:null,pendingSteeringCount:0,recoveredSteeringCount:0,eventUnsubscribe:null,currentAssistantMessageId:null,hasToolCalls:!1,setStreaming:s=>t({isStreaming:s}),setAgentPhase:s=>t({agentPhase:s}),setRunId:s=>t({currentRunId:s}),prepareEventSubscription:async s=>{const n=Fs(e,t);return J.openEventSubscription(s,n)},replaceEventSubscription:s=>{const n=e().eventUnsubscribe;if(t({eventUnsubscribe:s}),Ae.reset(),n&&n!==s)try{n()}catch(r){console.warn("Failed to clean up previous event subscription",r)}},setCurrentAssistantMessageId:s=>t({currentAssistantMessageId:s}),setHasToolCalls:s=>t({hasToolCalls:s}),startAgentResponse:s=>{t({currentAssistantMessageId:s,hasToolCalls:!1,isStreaming:!0,agentPhase:"running"})},endAgentResponse:()=>{Ae.drainAll(),t({currentAssistantMessageId:null,hasToolCalls:!1,isStreaming:!1,agentPhase:"idle",currentRunId:null,pendingSteeringCount:0})},subscribeToEvents:async s=>{const n=await e().prepareEventSubscription(s);e().replaceEventSubscription(n)},unsubscribeFromEvents:()=>{const{eventUnsubscribe:s}=e();t({eventUnsubscribe:null});try{s==null||s()}catch(n){console.warn("Failed to clean up event subscription",n)}finally{Ae.reset()}},handleEvent:s=>{Fs(e,t)(s)}}),Io=t=>({tokenUsage:Ye,updateTokenUsage:e=>t(s=>({tokenUsage:{...s.tokenUsage,...e}})),setMaxContextTokens:(e,s=!1)=>t(n=>({tokenUsage:{...n.tokenUsage,maxContextTokens:e,isDefaultMaxTokens:s}}))}),be=Yt()((...t)=>({...Za(...t),...Da(...t),...No(...t),...Io(...t)}));function Ao(t){const e=new Date(t);return Number.isNaN(e.getTime())?"":e.toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function To({open:t,onOpenChange:e}){const{currentSessionRef:s,isStreaming:n,isTemporarySession:r,rewindSession:a}=be(),[o,l]=b.useState([]),[d,c]=b.useState(null),[u,f]=b.useState(!1),[h,g]=b.useState(!1),[m,p]=b.useState(!1),[x,y]=b.useState(null);b.useEffect(()=>{if(!t||!s)return;let T=!1;return g(!0),y(null),l([]),c(null),f(!1),J.listRewindCheckpoints(s).then(P=>{var Q;T||(l(P),c(((Q=P[0])==null?void 0:Q.messageId)??null))}).catch(P=>{T||y(P instanceof Error?P.message:"Failed to load rewind checkpoints")}).finally(()=>{T||g(!1)}),()=>{T=!0}},[s,t]);const v=b.useMemo(()=>o.find(T=>T.messageId===d)??null,[o,d]),_=!!v&&!h&&!m&&!n&&!r,D=async()=>{if(!v||!_)return;p(!0),y(null);const T=await a(v.messageId,u?"both":"conversation");p(!1),T?e(!1):y("Rewind failed. Review the session error and try again.")};return i.jsx(on,{open:t,onOpenChange:e,children:i.jsxs(Ut,{className:"max-w-[620px] gap-0 overflow-hidden border-[#E5E7EB] bg-white p-0 dark:border-zinc-800 dark:bg-[#09090b]",children:[i.jsx(dn,{className:"border-b border-[#E5E7EB] px-6 py-5 dark:border-zinc-800",children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-md bg-[#F3F4F6] text-[#4B5563] dark:bg-zinc-800 dark:text-zinc-300",children:i.jsx(as,{className:"h-4 w-4"})}),i.jsxs("div",{children:[i.jsx(Gt,{className:"text-[15px] font-semibold text-[#111827] dark:text-zinc-100",children:"Rewind session"}),i.jsx(qt,{className:"mt-1 text-[12px] text-[#6B7280] dark:text-zinc-400",children:"Return to the point before a user message."})]})]})}),i.jsxs("div",{className:"min-h-[260px] px-6 py-4",children:[h&&i.jsxs("div",{className:"flex h-[220px] items-center justify-center text-[#6B7280] dark:text-zinc-400",children:[i.jsx(he,{className:"mr-2 h-4 w-4 animate-spin"}),i.jsx("span",{className:"text-xs font-mono",children:"Loading checkpoints"})]}),!h&&x&&i.jsx("div",{role:"alert",className:"rounded-md border border-rose-200 bg-rose-50 px-4 py-3 text-xs text-rose-700 dark:border-rose-900/60 dark:bg-rose-950/30 dark:text-rose-300",children:x}),!h&&!x&&o.length===0&&i.jsxs("div",{className:"flex h-[220px] flex-col items-center justify-center text-center",children:[i.jsx(as,{className:"mb-3 h-5 w-5 text-[#9CA3AF] dark:text-zinc-600"}),i.jsx("p",{className:"text-sm text-[#4B5563] dark:text-zinc-300",children:"Nothing to rewind to yet"})]}),!h&&o.length>0&&i.jsx("div",{role:"radiogroup","aria-label":"Rewind checkpoint",className:"max-h-[310px] space-y-1 overflow-y-auto",children:o.map(T=>{const P=T.messageId===d;return i.jsxs("button",{type:"button",role:"radio","aria-checked":P,onClick:()=>c(T.messageId),className:Z("w-full rounded-md border px-4 py-3 text-left transition-colors",P?"border-[#22C55E] bg-[#F0FDF4] dark:border-[#22C55E] dark:bg-[#052E16]/50":"border-transparent hover:bg-[#F9FAFB] dark:hover:bg-zinc-900"),children:[i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsx("p",{className:"line-clamp-2 text-[13px] leading-5 text-[#111827] dark:text-zinc-100",children:T.preview||"User message"}),i.jsx("span",{className:"shrink-0 text-[10px] font-mono text-[#9CA3AF] dark:text-zinc-500",children:Ao(T.createdAt)})]}),i.jsxs("div",{className:"mt-2 flex items-center gap-3 text-[10px] font-mono text-[#6B7280] dark:text-zinc-500",children:[i.jsx("span",{children:T.messageId.slice(0,10)}),T.fileCount>0&&i.jsxs("span",{className:"inline-flex items-center gap-1",children:[i.jsx(Wn,{className:"h-3 w-3"}),T.fileCount," ",T.fileCount===1?"file":"files"]})]})]},T.messageId)})})]}),i.jsx("div",{className:"border-t border-[#E5E7EB] px-6 py-4 dark:border-zinc-800",children:i.jsxs("label",{className:"flex cursor-pointer items-start gap-3",children:[i.jsx("input",{type:"checkbox",checked:u,disabled:!v||v.fileCount===0,onChange:T=>f(T.target.checked),className:"mt-0.5 h-4 w-4 accent-[#16A34A] disabled:opacity-40"}),i.jsxs("span",{children:[i.jsx("span",{className:"block text-[12px] font-medium text-[#374151] dark:text-zinc-200",children:"Restore code changes"}),i.jsx("span",{className:"mt-0.5 block text-[11px] text-[#6B7280] dark:text-zinc-500",children:"Revert files changed at and after this checkpoint."})]})]})}),i.jsxs(Vt,{className:"border-t border-[#E5E7EB] px-6 py-4 dark:border-zinc-800",children:[i.jsx(Te,{variant:"ghost",onClick:()=>e(!1),disabled:m,children:"Cancel"}),i.jsxs(Te,{onClick:()=>void D(),disabled:!_,className:"bg-[#16A34A] text-white hover:bg-[#15803D]",children:[m?i.jsx(he,{className:"mr-2 h-4 w-4 animate-spin"}):i.jsx(ft,{className:"mr-2 h-4 w-4"}),"Rewind"]})]})]})})}const es=Yt(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}))})),ts=b.forwardRef(({className:t,children:e,...s},n)=>i.jsxs(Gs,{ref:n,className:Z("relative overflow-hidden",t),...s,children:[i.jsx(Pn,{className:"h-full w-full rounded-[inherit] [&>div]:!block !overflow-auto",children:e}),i.jsx(vn,{}),i.jsx(zn,{})]}));ts.displayName=Gs.displayName;const vn=b.forwardRef(({className:t,orientation:e="vertical",...s},n)=>i.jsx(qs,{ref:n,orientation:e,className:Z("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:i.jsx($n,{className:"relative flex-1 rounded-full bg-border"})}));vn.displayName=qs.displayName;function Ro({className:t}){const{toggleSettings:e,toggleSidebar:s,isSidebarOpen:n,isTerminalOpen:r,toggleTerminal:a,toggleMcp:o,toggleSkills:l}=es(),{sessions:d,currentSessionRef:c,forkingSessionRef:u,selectSession:f,startTemporarySession:h,deleteSession:g,forkSession:m,updateSession:p,loadSessions:x}=be(),[y,v]=b.useState(null),[_,D]=b.useState(""),P=(()=>{const R=new Date;R.setHours(0,0,0,0);const W=new Date(R);W.setDate(W.getDate()-1);const O=[],K=new Map;for(const re of d){const pe=vt(xe(re));re&&!K.has(pe)&&K.set(pe,re)}const X=Array.from(K.values()),G=re=>{const pe=(re==null?void 0:re.lastMessageTime)||(re==null?void 0:re.firstMessageTime)||0;return new Date(pe)},se=(re,pe)=>G(pe).getTime()-G(re).getTime(),ce=X.filter(re=>G(re)>=R).sort(se),oe=X.filter(re=>{const pe=G(re);return pe>=W&&pe<R}).sort(se),le=X.filter(re=>G(re)<W).sort(se);return ce.length>0&&O.push({label:"TODAY",sessions:ce}),oe.length>0&&O.push({label:"YESTERDAY",sessions:oe}),le.length>0&&O.push({label:"OLDER",sessions:le}),O})(),Q=R=>{if(R.title)return R.title;const W=R.firstMessageTime||R.lastMessageTime;if(W){const O=new Date(W);if(!Number.isNaN(O.getTime())){const K=String(O.getFullYear()).slice(-2),X=String(O.getMonth()+1).padStart(2,"0"),G=String(O.getDate()).padStart(2,"0"),se=String(O.getHours()).padStart(2,"0"),ce=String(O.getMinutes()).padStart(2,"0");return`Session ${K}-${X}-${G} ${se}:${ce}`}}return`Session ${R.sessionId.slice(0,6)}`},z=()=>{h()},I=async(R,W)=>{R.stopPropagation(),await g(xe(W))},A=(R,W)=>{R.stopPropagation(),v(vt(xe(W))),D(Q(W))},N=async R=>{if(!_.trim()){v(null);return}try{await p(xe(R),_.trim()),v(null),await x()}catch(W){console.error("Failed to rename session:",W)}},F=()=>{v(null),D("")};return n?i.jsxs("div",{className:Z("h-screen flex flex-col bg-[#F9FAFB] dark:bg-[#09090b] w-[260px]",t),children:[i.jsxs("div",{className:"p-6 flex flex-col gap-8",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#16A34A] dark:bg-[#22C55E] flex items-center justify-center",children:i.jsx("div",{className:"w-2 h-2 bg-black rounded-full"})}),i.jsx("span",{className:"font-semibold text-base text-[#111827] dark:text-[#E5E5E5]",children:"Blade"})]}),i.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:i.jsx(Hn,{className:"h-3 w-3"})})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsxs("button",{onClick:z,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:[i.jsx(os,{className:"h-4 w-4 stroke-[3]"}),"New Chat"]}),i.jsxs("button",{onClick:a,className:Z("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:[i.jsx(is,{className:Z("h-4 w-4",r?"text-[#16A34A] dark:text-[#22C55E]":"")}),"Terminal"]})]})]}),i.jsx(ts,{className:"flex-1 px-0",children:i.jsxs("div",{className:"flex flex-col",children:[P.map((R,W)=>i.jsxs("div",{children:[i.jsx("div",{className:Z("px-3 pb-2 text-[11px] text-[#6B7280] dark:text-[#52525b] font-mono",W===0?"pt-3":"pt-4"),children:R.label}),R.sessions.map(O=>{const K=xe(O),X=vt(K),G=te(K,c),se=y===X,ce=te(K,u),oe=!!u;return se?i.jsxs("div",{className:"w-full h-[34px] flex items-center gap-2 px-3 bg-[#F3F4F6] dark:bg-[#27272a]",children:[i.jsx("input",{type:"text",value:_,onChange:le=>D(le.target.value),onKeyDown:le=>{le.key==="Enter"&&N(O),le.key==="Escape"&&F()},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]"}),i.jsx("button",{"aria-label":`Save ${Q(O)}`,onClick:()=>N(O),className:"p-1 text-[#22C55E] hover:bg-[#E5E7EB] dark:hover:bg-[#18181b] rounded",children:i.jsx(Js,{className:"h-3 w-3"})}),i.jsx("button",{"aria-label":`Cancel ${Q(O)}`,onClick:F,className:"p-1 text-[#9CA3AF] dark:text-[#71717a] hover:bg-[#E5E7EB] dark:hover:bg-[#18181b] rounded",children:i.jsx(Lt,{className:"h-3 w-3"})})]},X):i.jsxs("div",{className:Z("w-full h-[34px] flex items-center transition-colors group",G?"bg-[#E5E7EB] dark:bg-[#27272a]":"hover:bg-[#F3F4F6] dark:hover:bg-[#18181b]"),children:[i.jsxs("button",{type:"button","aria-label":`Select ${Q(O)}`,"aria-current":G?"true":void 0,"aria-busy":ce?"true":void 0,onClick:()=>f(K),className:"h-full min-w-0 flex-1 flex items-center gap-2 pl-3 text-left cursor-pointer focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-[#22C55E]",children:[i.jsx("span",{className:Z("w-1.5 h-1.5 rounded-full shrink-0",G?"bg-[#16A34A] dark:bg-[#22C55E] shadow-[0_0_4px_rgba(34,197,94,0.4)]":"border border-[#D1D5DB] dark:border-[#52525b]")}),i.jsxs("span",{className:Z("text-[13px] font-mono truncate text-left flex-1 flex items-center gap-2",G?"text-[#111827] dark:text-[#E5E5E5]":"text-[#6B7280] dark:text-[#a1a1aa]"),children:[i.jsx("span",{className:"truncate",children:Q(O)}),O.relationType==="fork"&&O.parentId&&i.jsxs("span",{title:`Forked from ${O.parentId.slice(0,6)}`,"aria-label":`Forked from ${O.parentId.slice(0,6)}`,className:"text-[10px] text-[#16A34A] dark:text-[#22C55E] shrink-0",children:["Forked from ",O.parentId.slice(0,6)]})]}),ce&&i.jsx(he,{className:"h-3 w-3 shrink-0 animate-spin text-[#16A34A] dark:text-[#22C55E]"})]}),i.jsxs("div",{className:"flex items-center gap-1 pr-3 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 transition-opacity",children:[i.jsx("button",{type:"button","aria-label":`Fork ${Q(O)}`,disabled:oe,onClick:le=>{le.stopPropagation(),m(O)},className:"p-1 text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#22C55E] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] rounded transition-colors disabled:cursor-not-allowed disabled:opacity-50",children:i.jsx(Jn,{className:"h-3 w-3"})}),i.jsx("button",{type:"button","aria-label":`Rename ${Q(O)}`,onClick:le=>A(le,O),className:"p-1 text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#22C55E] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] rounded transition-colors",children:i.jsx(Qs,{className:"h-3 w-3"})}),i.jsx("button",{type:"button","aria-label":`Delete ${Q(O)}`,onClick:le=>I(le,O),className:"p-1 text-[#9CA3AF] hover:text-red-500 hover:bg-[#F3F4F6] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-red-500 dark:text-[#71717a] dark:hover:text-red-400 dark:hover:bg-[#27272a] rounded transition-colors",children:i.jsx(Ks,{className:"h-3 w-3"})})]})]},X)})]},R.label)),d.length===0&&i.jsx("div",{className:"px-3 py-8 text-center text-[13px] text-[#6B7280] dark:text-[#52525b] font-mono",children:"No chat history"})]})}),i.jsxs("div",{className:"p-6 flex flex-col gap-4",children:[i.jsxs("div",{className:"border-t border-[#E5E7EB] dark:border-[#1f2937] pt-4 flex flex-col gap-2",children:[i.jsxs("button",{onClick:l,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:[i.jsx(ls,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"Skills"]}),i.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:[i.jsx(ds,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"MCP"]}),i.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:[i.jsx(cs,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"Settings"]})]}),i.jsxs("div",{className:"flex items-center gap-3 pt-4 border-t border-[#E5E7EB] dark:border-[#27272a]",children:[i.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#E5E7EB] dark:bg-[#27272a] flex items-center justify-center",children:i.jsx("div",{className:"w-2 h-2 bg-[#111827] dark:bg-[#E5E5E5] rounded-full"})}),i.jsxs("div",{className:"flex flex-col gap-0.5",children:[i.jsx("span",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:"User"}),i.jsx("span",{className:"text-[11px] text-[#16A34A] dark:text-[#22C55E] font-mono",children:"Connected"})]})]})]})]}):i.jsxs("div",{className:Z("h-screen flex flex-col bg-[#F9FAFB] dark:bg-[#09090b] items-center py-6 gap-2 w-[64px]",t),children:[i.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#16A34A] dark:bg-[#22C55E] flex items-center justify-center cursor-pointer",onClick:s,children:i.jsx("div",{className:"w-2 h-2 bg-black rounded-full"})}),i.jsx("button",{onClick:z,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:i.jsx(os,{className:"h-4 w-4 stroke-[3]"})}),i.jsx("button",{onClick:a,className:Z("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:i.jsx(is,{className:Z("h-4 w-4",r?"text-[#16A34A] dark:text-[#22C55E]":"")})}),i.jsx("div",{className:"flex-1"}),i.jsx("div",{className:"w-8 h-px bg-[#E5E7EB] dark:bg-[#1f2937] my-2"}),i.jsx("button",{onClick:l,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:i.jsx(ls,{className:"h-4 w-4"})}),i.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:i.jsx(ds,{className:"h-4 w-4"})}),i.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:i.jsx(cs,{className:"h-4 w-4"})}),i.jsx("div",{className:"mt-4",children:i.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#E5E7EB] dark:bg-[#27272a] flex items-center justify-center",children:i.jsx("div",{className:"w-2 h-2 bg-[#111827] dark:bg-[#E5E5E5] rounded-full"})})})]})}const Fo=b.lazy(()=>Ve(()=>import("./SettingsModal-CfR_q6N7.js"),[]).then(t=>({default:t.SettingsModal}))),Mo=b.lazy(()=>Ve(()=>import("./FilePreview-DRKRs8i2.js"),[]).then(t=>({default:t.FilePreview}))),Do=b.lazy(()=>Ve(()=>import("./TerminalPanel-DzlllDH7.js"),__vite__mapDeps([0])).then(t=>({default:t.TerminalPanel}))),Oo=b.lazy(()=>Ve(()=>import("./McpModal-CX5-hlNv.js"),[]).then(t=>({default:t.McpModal}))),Bo=b.lazy(()=>Ve(()=>import("./SkillsModal-DaAUrwXO.js"),[]).then(t=>({default:t.SkillsModal}))),Po=t=>{if(t.startsWith("/Users/")){const e=t.split("/");if(e.length>=3)return"~/"+e.slice(3).join("/")}return t};function zo({children:t}){const{isSidebarOpen:e,isFilePreviewOpen:s,isSettingsOpen:n,isMcpOpen:r,isSkillsOpen:a,isTerminalOpen:o,toggleFilePreview:l}=es(),{currentSessionId:d,currentSessionRef:c,sessions:u,isStreaming:f,isTemporarySession:h}=be(),[g,m]=b.useState(null),[p,x]=b.useState(!1),y=b.useMemo(()=>{if(!d)return"No session";const v=u.find(_=>te({sessionId:_.sessionId,projectPath:_.projectPath},c));return v!=null&&v.projectPath?Po(v.projectPath):"New session"},[d,c,u]);return b.useEffect(()=>{if(!c){m(null);return}(async()=>{try{const _=await J.getGitInfo(c);m(_.branch)}catch{m(null)}})()},[c]),i.jsxs("div",{className:"flex h-screen overflow-hidden",children:[i.jsx("div",{className:Z("transition-all duration-300 ease-in-out",e?"w-[260px]":"w-[64px]","overflow-hidden"),children:i.jsx("div",{className:Z("transition-all duration-300 ease-in-out",e?"w-[260px]":"w-[64px]"),children:i.jsx(Ro,{})})}),i.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[i.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:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("span",{className:"font-normal text-sm text-[#6B7280] dark:text-zinc-500 font-mono truncate max-w-md",title:y,children:y}),g&&i.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:[i.jsx(Qn,{className:"h-3 w-3"}),g]})]}),i.jsxs("div",{className:"ml-auto flex items-center gap-1",children:[i.jsx(Te,{variant:"ghost",size:"icon","aria-label":"Rewind session",title:"Rewind session",disabled:!c||h||f,onClick:()=>x(!0),className:"text-[#9CA3AF] hover:text-[#111827] disabled:opacity-35 dark:text-zinc-500 dark:hover:text-zinc-300",children:i.jsx(ft,{className:"h-4 w-4"})}),i.jsx(Te,{variant:"ghost",size:"icon",onClick:l,className:Z(s&&"bg-accent","text-[#9CA3AF] hover:text-[#111827] dark:text-zinc-500 dark:hover:text-zinc-300"),children:i.jsx(Kn,{className:"h-4 w-4"})})]})]}),i.jsxs("main",{className:"flex-1 overflow-hidden relative flex",children:[i.jsx("div",{className:"flex-1 flex flex-col min-w-0 relative",children:t}),s&&i.jsx(b.Suspense,{fallback:null,children:i.jsx(Mo,{})})]})]}),n&&i.jsx(b.Suspense,{fallback:null,children:i.jsx(Fo,{})}),r&&i.jsx(b.Suspense,{fallback:null,children:i.jsx(Oo,{})}),a&&i.jsx(b.Suspense,{fallback:null,children:i.jsx(Bo,{})}),o&&i.jsx(b.Suspense,{fallback:null,children:i.jsx(Do,{})}),i.jsx(To,{open:p,onOpenChange:x})]})}const Ms=Zn,Ds=Un,$t=b.forwardRef(({className:t,align:e="center",sideOffset:s=4,...n},r)=>i.jsx(Ln,{children:i.jsx(Ws,{ref:r,align:e,sideOffset:s,className:Z("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})}));$t.displayName=Ws.displayName;const kn=b.forwardRef(({className:t,...e},s)=>i.jsx("textarea",{className:Z("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}));kn.displayName="Textarea";const $o=(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 l=r.slice(1),d=!1;return l.startsWith('"')&&(d=!0,l=l.slice(1),l.endsWith('"')&&(l=l.slice(0,-1))),{hasQuery:!0,query:l,startIndex:a,endIndex:o,quoted:d}}}return{hasQuery:!1,query:"",startIndex:-1,endIndex:-1,quoted:!1}},Lo=(t,e,s={})=>{const{debounceDelay:n=200,maxSuggestions:r=15}=s,[a,o]=b.useState([]),[l,d]=b.useState(0),[c,u]=b.useState(!1),f=b.useMemo(()=>e===void 0?{hasQuery:!1,query:"",startIndex:-1,endIndex:-1,quoted:!1}:$o(t,e),[t,e]);b.useEffect(()=>{if(!f.hasQuery){o([]),u(!1);return}let m=!1;u(!0);const x=setTimeout(async()=>{try{const y=await fetch(`/suggestions/files?q=${encodeURIComponent(f.query)}&limit=${r}`);if(!y.ok)throw new Error("Failed to fetch suggestions");const v=await y.json();m||o(v)}catch(y){console.error("Failed to fetch file suggestions:",y),m||o([])}finally{m||u(!1)}},n);return()=>{m=!0,clearTimeout(x)}},[f.hasQuery,f.query,n,r]),b.useEffect(()=>{d(0)},[a]);const h=b.useCallback(()=>{d(m=>(m+1)%Math.max(a.length,1))},[a.length]),g=b.useCallback(()=>{d(m=>(m-1+a.length)%Math.max(a.length,1))},[a.length]);return{...f,suggestions:a,selectedIndex:l,loading:c,setSelectedIndex:d,selectNext:h,selectPrevious:g}},Zo=(t,e=!1)=>t.includes(" ")||e?`@"${t}"`:`@${t}`,Uo=(t,e,s)=>{if(!e.hasQuery)return{newInput:t,newCursorPos:t.length};const n=Zo(s,e.quoted),r=t.slice(0,e.startIndex),a=t.slice(e.endIndex),o=r+n+" "+a,l=e.startIndex+n.length+1;return{newInput:o,newCursorPos:l}};function Vo(){const[t,e]=b.useState([]),[s,n]=b.useState(-1),r=b.useRef(""),a=b.useCallback(c=>{c.trim()&&(e(u=>u[u.length-1]===c?u:[...u,c]),n(-1),r.current="")},[]),o=b.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]),l=b.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=b.useCallback(()=>{n(-1),r.current=""},[]);return{addToHistory:a,getPrevious:o,getNext:l,reset:d,historyIndex:s}}const Go=(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}},qo=(t,e,s={})=>{const{debounceDelay:n=150}=s,[r,a]=b.useState([]),[o,l]=b.useState(0),[d,c]=b.useState(!1),u=b.useMemo(()=>e===void 0?{hasQuery:!1,query:"",startIndex:-1,endIndex:-1}:Go(t,e),[t,e]);b.useEffect(()=>{if(!u.hasQuery){a([]),c(!1);return}let g=!1;c(!0);const p=setTimeout(async()=>{try{const x=await fetch(`/suggestions/commands?q=${encodeURIComponent(u.query)}`);if(!x.ok)throw new Error("Failed to fetch suggestions");const y=await x.json();g||a(y)}catch(x){console.error("Failed to fetch command suggestions:",x),g||a([])}finally{g||c(!1)}},n);return()=>{g=!0,clearTimeout(p)}},[u.hasQuery,u.query,n]),b.useEffect(()=>{l(0)},[r]);const f=b.useCallback(()=>{l(g=>(g+1)%Math.max(r.length,1))},[r.length]),h=b.useCallback(()=>{l(g=>(g-1+r.length)%Math.max(r.length,1))},[r.length]);return{...u,suggestions:r,selectedIndex:o,loading:d,setSelectedIndex:l,selectNext:f,selectPrevious:h}},Wo=(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}},Ho=t=>typeof t=="object"&&"command"in t,Os=({type:t,suggestions:e,selectedIndex:s,loading:n,onSelect:r,onHover:a,visible:o})=>{const l=b.useRef(null),d=b.useRef(null);if(b.useEffect(()=>{if(d.current&&l.current){const u=l.current,f=d.current,h=u.getBoundingClientRect(),g=f.getBoundingClientRect();g.bottom>h.bottom?u.scrollTop+=g.bottom-h.bottom+4:g.top<h.top&&(u.scrollTop-=h.top-g.top+4)}},[s]),!o||e.length===0&&!n)return null;const c=t==="command"?Yn:jt;return i.jsx("div",{className:"absolute bottom-full left-0 right-0 mb-2 z-50",children:i.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:[i.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:[i.jsx(c,{className:"h-3.5 w-3.5"}),i.jsx("span",{children:t==="command"?"Commands":"Files"}),n&&i.jsx(he,{className:"h-3 w-3 animate-spin ml-auto"})]}),i.jsx("div",{ref:l,className:"max-h-64 overflow-y-auto py-1",children:e.length===0&&n?i.jsx("div",{className:"px-3 py-4 text-center text-[#6B7280] dark:text-zinc-500 text-sm",children:"Loading..."}):e.length===0?i.jsx("div",{className:"px-3 py-4 text-center text-[#6B7280] dark:text-zinc-500 text-sm",children:"No matches found"}):e.map((u,f)=>{const h=f===s,g=Ho(u);return i.jsx("button",{ref:h?d:null,className:Z("w-full text-left px-3 py-2 flex items-start gap-3 transition-colors",h?"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(f),onMouseEnter:()=>a(f),children:g?i.jsx(i.Fragment,{children:i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-mono text-sm text-blue-600 dark:text-blue-400",children:u.command}),u.argumentHint&&i.jsx("span",{className:"text-xs text-[#9CA3AF] dark:text-zinc-500 font-mono",children:u.argumentHint})]}),i.jsx("p",{className:"text-xs text-[#9CA3AF] dark:text-zinc-500 mt-0.5 truncate",children:u.description})]})}):i.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[i.jsx(jt,{className:"h-4 w-4 flex-shrink-0 text-[#9CA3AF] dark:text-zinc-500"}),i.jsx("span",{className:"font-mono text-sm truncate",children:u})]})},g?u.command:u)})}),i.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:[i.jsxs("span",{children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded text-[#6B7280] dark:text-zinc-400",children:"↑↓"})," ","Navigate"]}),i.jsxs("span",{children:[i.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"]}),i.jsxs("span",{children:[i.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"]})]})]})})},Bs=[{value:at.DEFAULT,label:"Default"},{value:at.AUTO_EDIT,label:"Auto Edit"},{value:at.PLAN,label:"Plan"}];function Jo({onSend:t,onAbort:e,disabled:s,isStreaming:n,pendingSteeringCount:r=0,recoveredSteeringCount:a=0}){var rs;const[o,l]=b.useState(""),[d,c]=b.useState([]),[u,f]=b.useState(void 0),[h,g]=b.useState(!1),[m,p]=b.useState(!1),x=b.useRef(null),y=b.useRef(null),{currentModelId:v,configuredModels:_,loadModels:D,setCurrentModel:T,currentMode:P,setMode:Q}=Bt(),{setMaxContextTokens:z}=be(),I=qo(o,u),A=Lo(o,u),N=Vo(),F=I.hasQuery&&I.suggestions.length>0,R=A.hasQuery&&A.suggestions.length>0,W=F||R;b.useEffect(()=>{D()},[D]),b.useEffect(()=>{if(_.length===0)return;const w=_.find(q=>q.id===v);if(w){const q=!!w.maxContextTokens,U=w.maxContextTokens||128e3;z(U,!q)}},[v,_,z]);const O=b.useCallback(()=>{!o.trim()&&d.length===0||s||(o.trim()&&N.addToHistory(o),t({content:o,attachments:d}),l(""),c([]),f(void 0))},[d,o,s,t,N]),K=b.useCallback(w=>{c(q=>q.filter(U=>U.id!==w))},[]),X=b.useCallback(w=>new Promise((q,U)=>{const ie=new FileReader;ie.onload=()=>{if(typeof ie.result!="string"){U(new Error("Failed to read image"));return}q({id:typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:w.name,mimeType:w.type,dataUrl:ie.result})},ie.onerror=()=>U(ie.error??new Error("Failed to read image")),ie.readAsDataURL(w)}),[]),G=b.useCallback(async w=>{if(w.length===0)return;const q=await Promise.all(w.map(U=>X(U)));c(U=>[...U,...q])},[X]),se=b.useCallback(async w=>{const q=Array.from(w.target.files??[]).filter(U=>U.type.startsWith("image/"));await G(q),w.target.value=""},[G]),ce=b.useCallback(async w=>{const q=Array.from(w.clipboardData.items).filter(U=>U.type.startsWith("image/")).map(U=>U.getAsFile()).filter(U=>U!==null);q.length!==0&&(w.preventDefault(),await G(q))},[G]),oe=b.useCallback(w=>{const q=I.suggestions[w];if(!q)return;const{newInput:U,newCursorPos:ie}=Wo(o,I,q);l(U),f(ie),requestAnimationFrame(()=>{x.current&&(x.current.focus(),x.current.setSelectionRange(ie,ie))})},[o,I]),le=b.useCallback(w=>{const q=A.suggestions[w];if(!q)return;const{newInput:U,newCursorPos:ie}=Uo(o,A,q);l(U),f(ie),requestAnimationFrame(()=>{x.current&&(x.current.focus(),x.current.setSelectionRange(ie,ie))})},[o,A]),re=b.useCallback(w=>{if(F){if(w.key==="ArrowDown"){w.preventDefault(),I.selectNext();return}if(w.key==="ArrowUp"){w.preventDefault(),I.selectPrevious();return}if(w.key==="Tab"||w.key==="Enter"&&!w.shiftKey){w.preventDefault(),oe(I.selectedIndex);return}if(w.key==="Escape"){w.preventDefault(),f(void 0);return}}if(R){if(w.key==="ArrowDown"){w.preventDefault(),A.selectNext();return}if(w.key==="ArrowUp"){w.preventDefault(),A.selectPrevious();return}if(w.key==="Tab"||w.key==="Enter"&&!w.shiftKey){w.preventDefault(),le(A.selectedIndex);return}if(w.key==="Escape"){w.preventDefault(),f(void 0);return}}if(w.key==="Enter"&&!w.shiftKey){w.preventDefault(),O();return}if(w.key==="ArrowUp"&&!w.shiftKey){const q=w.target,U=q.selectionStart===0&&q.selectionEnd===0,ie=!o.includes(`
6
+ `);if(U||ie){const Se=N.getPrevious(o);Se!==null&&(w.preventDefault(),l(Se),requestAnimationFrame(()=>{x.current&&x.current.setSelectionRange(Se.length,Se.length)}))}return}if(w.key==="ArrowDown"&&!w.shiftKey){const q=w.target,U=q.selectionStart===o.length&&q.selectionEnd===o.length,ie=!o.includes(`
7
+ `);if((U||ie)&&N.historyIndex!==-1){const Se=N.getNext();Se!==null&&(w.preventDefault(),l(Se),requestAnimationFrame(()=>{x.current&&x.current.setSelectionRange(Se.length,Se.length)}))}}},[F,R,I,A,oe,le,O,o,N]),pe=b.useCallback(w=>{l(w.target.value),f(w.target.selectionStart)},[]),ns=b.useCallback(w=>{const q=w.target;f(q.selectionStart)},[]);b.useEffect(()=>{x.current&&(x.current.style.height="inherit",x.current.style.height=`${Math.min(x.current.scrollHeight,200)}px`)},[o]);const gt=_.find(w=>w.id===v),Nn=(gt==null?void 0:gt.model)||v||"Select Model",In=((rs=Bs.find(w=>w.value===P))==null?void 0:rs.label)||"Default",An=!!o.trim()||d.length>0;return i.jsx("div",{className:"py-4 border-t border-[#E5E7EB] dark:border-zinc-800 bg-white dark:bg-[#09090b]",children:i.jsxs("div",{className:"px-4 w-full md:px-6",children:[i.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:[i.jsx(Os,{type:"command",suggestions:I.suggestions,selectedIndex:I.selectedIndex,loading:I.loading,onSelect:oe,onHover:I.setSelectedIndex,visible:F}),i.jsx(Os,{type:"file",suggestions:A.suggestions,selectedIndex:A.selectedIndex,loading:A.loading,onSelect:le,onHover:A.setSelectedIndex,visible:R&&!F}),i.jsx(kn,{ref:x,value:o,onChange:pe,onKeyDown:re,onPaste:ce,onSelect:ns,onClick:ns,placeholder:n?"Add guidance to steer the active turn...":"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&&i.jsxs("div",{className:"px-4 pb-2 text-[11px] font-mono text-amber-600 dark:text-amber-400",children:["Active turn is steerable",r>0?` · ${r} queued`:" · Enter sends guidance"]}),a>0&&i.jsxs("div",{className:"px-4 pb-2 text-[11px] font-mono text-cyan-600 dark:text-cyan-400",children:["Recovered ",a," queued instruction",a===1?"":"s"," after restart"]}),d.length>0&&i.jsx("div",{className:"flex flex-wrap gap-2 px-4 pb-2",children:d.map(w=>i.jsxs("div",{className:"relative rounded-md overflow-hidden border border-[#E5E7EB] dark:border-zinc-800 bg-[#F9FAFB] dark:bg-zinc-900",children:[i.jsx("img",{src:w.dataUrl,alt:w.name,className:"object-cover w-20 h-20"}),i.jsx("button",{type:"button",onClick:()=>K(w.id),className:"absolute top-1 right-1 rounded bg-black/70 px-1.5 py-0.5 text-[10px] text-white",children:"Remove"})]},w.id))}),i.jsxs("div",{className:"flex justify-between items-center p-3 mt-auto",children:[i.jsxs("div",{className:"flex gap-2 items-center",children:[i.jsx("input",{ref:y,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:se}),i.jsx(Te,{type:"button",variant:"ghost",size:"icon",onClick:()=>{var w;return(w=y.current)==null?void 0:w.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:i.jsx(Xn,{className:"w-4 h-4"})}),i.jsxs(Ms,{open:h,onOpenChange:g,children:[i.jsx(Ds,{asChild:!0,children:i.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:[Nn,i.jsx(et,{className:"w-3 h-3"})]})}),i.jsx($t,{className:"w-64 p-2 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700",align:"start",children:i.jsx("div",{className:"overflow-y-auto max-h-72",children:_.length===0?i.jsx("div",{className:"text-xs text-[#6B7280] dark:text-zinc-500 px-2 py-2",children:"No models configured"}):Object.entries(_.reduce((w,q)=>{const U=q.provider||"unknown";return w[U]||(w[U]=[]),w[U].push(q),w},{})).map(([w,q])=>i.jsxs("div",{className:"mb-2",children:[i.jsx("div",{className:"text-xs text-[#6B7280] dark:text-zinc-500 px-2 py-1 capitalize",children:w.replace(/-/g," ")}),q.map(U=>i.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 ${U.id===v?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] dark:text-zinc-400"}`,onClick:()=>{T(U.id),g(!1)},children:U.model},U.id))]},w))})})]}),i.jsxs(Ms,{open:m,onOpenChange:p,children:[i.jsx(Ds,{asChild:!0,children:i.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:[In,i.jsx(et,{className:"w-3 h-3"})]})}),i.jsx($t,{className:"w-40 p-1 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700",align:"start",children:i.jsx("div",{className:"flex flex-col gap-0.5",children:Bs.map(w=>i.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 ${P===w.value?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] dark:text-zinc-400"}`,onClick:()=>{Q(w.value),p(!1)},children:w.label},w.value))})})]})]}),i.jsxs("div",{className:"flex gap-2 items-center",children:[n&&i.jsx(Te,{size:"icon",onClick:e,title:"Stop active turn",className:"w-8 h-8 text-white bg-red-500 hover:bg-red-600",children:i.jsx(er,{className:"w-3 h-3"})}),i.jsx(Te,{size:"icon",onClick:O,disabled:!An||s||W,title:n?"Steer active turn":"Send message",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:i.jsx(tr,{className:"w-4 h-4"})})]})]})]}),i.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 Qo=b.lazy(()=>Ve(()=>import("./MarkdownRenderer-DFqPpAnM.js"),[]).then(t=>({default:t.MarkdownRenderer})));function Ko(){return i.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-lg bg-[#22C55E]",children:i.jsx("span",{className:"text-sm font-bold text-black",children:"B"})})}function Yo(){return i.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-full bg-[#E5E7EB] dark:bg-white",children:i.jsx("span",{className:"text-sm font-medium text-[#111827] dark:text-zinc-800",children:"U"})})}function Ps(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 Xo(t){if(typeof t=="string")return{text:Ps(t),images:[]};const e=t.filter(n=>n.type==="text").map(n=>n.text).join(`
8
+ `),s=t.filter(n=>n.type==="image_url").map(n=>n.image_url.url);return{text:Ps(e),images:s}}function wn(t){return typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
9
+ `)}function St({content:t,syntaxHighlight:e=!0}){return i.jsx(b.Suspense,{fallback:i.jsx("pre",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono whitespace-pre-wrap",children:t}),children:i.jsx(Qo,{content:t,syntaxHighlight:e})})}function Sn({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 i.jsx("span",{className:Z("text-[11px] px-2 py-0.5 rounded-full font-mono",e[t]),children:s[t]})}function ei(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 ti({tool:t}){const[e,s]=b.useState(!1),n=ei(t.arguments);return i.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg overflow-hidden",children:[i.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:[i.jsxs("div",{className:"flex gap-2 items-center min-w-0",children:[e?i.jsx(et,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a] shrink-0"}):i.jsx(Ys,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a] shrink-0"}),i.jsx("span",{className:"text-[12px] text-[#111827] dark:text-[#E5E5E5] font-mono shrink-0",children:t.toolName}),t.summary&&i.jsx("span",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono truncate",children:t.summary})]}),i.jsx(Sn,{status:t.status})]}),e&&i.jsxs("div",{className:"px-3 py-2 space-y-2 border-t border-[#E5E7EB] dark:border-[#27272a]",children:[n&&i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Arguments"}),i.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&&i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Output"}),i.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 Cn({toolCalls:t}){return t.length===0?null:i.jsx("div",{className:"space-y-2",children:t.map(e=>i.jsx(ti,{tool:e},e.toolCallId))})}function si({content:t}){const[e,s]=b.useState(!1);return t?i.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg overflow-hidden",children:[i.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?i.jsx(et,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}):i.jsx(Ys,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),i.jsx("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Thought"})]}),e&&i.jsx("div",{className:"px-3 py-2 border-t border-[#E5E7EB] dark:border-[#27272a]",children:i.jsx("pre",{className:"text-[11px] text-[#6B7280] dark:text-[#a1a1aa] whitespace-pre-wrap font-mono",children:t})})]}):null}function ni({tasks:t}){if(t.length===0)return null;const e=t.filter(n=>n.status==="completed").length,s=e===t.length;return i.jsx("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:i.jsx("div",{className:"flex gap-2 items-center",children:i.jsx("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:s?"✓ All tasks done":`Tasks: ${e}/${t.length}`})})})}function ri({toolCalls:t}){const{setFilePreviewOpen:e}=es(),s=b.useMemo(()=>{const r=new Map,a=["Write","SearchReplace","Edit"];for(const o of t){if(o.status!=="success")continue;const l=o.metadata,d=l==null?void 0:l.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 i.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:[i.jsxs("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono mb-1.5",children:["Changed files (",s.length,")"]}),i.jsx("div",{className:"flex flex-wrap gap-1.5",children:s.map(({path:r})=>{const a=r.split("/").pop()||r;return i.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:[i.jsx(jt,{className:"w-3 h-3"}),a]},r)})})]})}function ai({subagent:t}){var N,F;const[e,s]=b.useState(null),[n,r]=b.useState(!1),[a,o]=b.useState(null),[l,d]=b.useState(!1),[c,u]=b.useState(""),[f,h]=b.useState(!1),[g,m]=b.useState(null),[p,x]=b.useState(null),{currentSessionRef:y,isStreaming:v,isTemporarySession:_}=be();if(!t)return null;const D=t.status==="running",T=e!==null?e:D,P=t.toolCalls||a||[],Q=t.output||t.thinking||P.length>0||t.sessionId,z=p&&p.status!=="running"?p.id:t.sessionId,I=!D&&!v&&!_&&(p==null?void 0:p.status)!=="running"&&!!(z&&y);b.useEffect(()=>{if(!T||D||!t.sessionId||!(y!=null&&y.projectPath)||a!==null||t.toolCalls&&t.toolCalls.length>0)return;let R=!0;return r(!0),J.getMessages({sessionId:t.sessionId,projectPath:y.projectPath}).then(W=>{var X,G;if(!R)return;const O=Xe(W),K=new Map;for(const se of O)if((G=(X=se.agentContent)==null?void 0:X.toolCalls)!=null&&G.length)for(const ce of se.agentContent.toolCalls)K.has(ce.toolCallId)||K.set(ce.toolCallId,ce);o(Array.from(K.values()))}).finally(()=>{R&&r(!1)}),()=>{R=!1}},[T,D,t.sessionId,t.toolCalls,a,y==null?void 0:y.projectPath]),b.useEffect(()=>{if(!t.sessionId||!y)return;let R=!0;const W=t.rootAgentId??t.sessionId,O=t.resumeDepth??0;return J.listSubagents(y).then(K=>{if(!R)return;const X=K.filter(G=>G.id!==t.sessionId&&G.rootAgentId===W&&G.resumeDepth>O).sort((G,se)=>se.resumeDepth-G.resumeDepth||se.lastActiveAt-G.lastActiveAt)[0];X&&x(X)}).catch(()=>{}),()=>{R=!1}},[y==null?void 0:y.sessionId,y==null?void 0:y.projectPath,t.sessionId,t.rootAgentId,t.resumeDepth]),b.useEffect(()=>{if(!p||p.status!=="running"||!y)return;let R=!0;const W=async()=>{try{const X=(await J.listSubagents(y)).find(G=>G.id===p.id);R&&X&&x(X)}catch{}},O=window.setInterval(()=>{W()},1e3);return()=>{R=!1,window.clearInterval(O)}},[y,p==null?void 0:p.id,p==null?void 0:p.status]);const A=async()=>{if(!(!y||!z||!c.trim()||f)){h(!0),m(null);try{const R=await J.resumeSubagent(y,z,c.trim());x(R.session),u(""),d(!1),s(!0)}catch(R){m(R instanceof Error?R.message:"Failed to resume subagent")}finally{h(!1)}}};return i.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:[i.jsxs("button",{type:"button",onClick:()=>s(!T),className:"flex gap-2 justify-between items-center w-full transition-opacity cursor-pointer hover:opacity-80",children:[i.jsxs("div",{className:"flex gap-2 items-center",children:[D&&i.jsx(he,{className:"h-3 w-3 animate-spin text-[#6B7280]"}),i.jsxs("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:[t.type,": ",t.description]}),i.jsx(Sn,{status:t.status==="completed"?"success":t.status==="failed"?"error":"running"}),t.resumedFrom&&i.jsxs("span",{className:"rounded bg-[#EDE9FE] px-1.5 py-0.5 text-[10px] font-mono text-[#6D28D9] dark:bg-[#2E1065] dark:text-[#C4B5FD]",title:`Resumed from ${t.resumedFrom}`,children:["resumed · depth ",t.resumeDepth??1]})]}),Q&&i.jsx(et,{className:Z("h-3.5 w-3.5 text-[#6B7280] transition-transform",T&&"rotate-180")})]}),T&&i.jsxs("div",{className:"mt-2 space-y-2",children:[(t.output||t.thinking)&&i.jsxs(i.Fragment,{children:[t.output&&i.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&&i.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&&i.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:[i.jsx(he,{className:"w-3 h-3 animate-spin"}),"Loading subagent logs..."]}),!n&&P.length>0&&i.jsx(Cn,{toolCalls:P}),p&&i.jsxs("div",{className:"rounded-md border border-[#DDD6FE] bg-[#F5F3FF] p-2 text-[11px] font-mono text-[#5B21B6] dark:border-[#4C1D95] dark:bg-[#1E1B4B] dark:text-[#C4B5FD]",children:[i.jsxs("div",{children:["Resumed as ",p.id," · ",p.status," · depth"," ",p.resumeDepth]}),(((N=p.result)==null?void 0:N.message)||((F=p.result)==null?void 0:F.error))&&i.jsx("div",{className:"mt-1 whitespace-pre-wrap text-[#374151] dark:text-[#d4d4d8]",children:p.result.message||p.result.error})]}),I&&i.jsxs("div",{className:"space-y-2",children:[l?i.jsxs("div",{className:"space-y-2 rounded-md border border-[#E5E7EB] bg-white p-2 dark:border-[#27272a] dark:bg-[#111113]",children:[i.jsx("textarea",{"aria-label":"Subagent follow-up",value:c,onChange:R=>u(R.target.value),placeholder:"Describe the follow-up work",rows:3,className:"w-full resize-y rounded border border-[#D1D5DB] bg-white p-2 text-[11px] text-[#111827] outline-none focus:border-[#8B5CF6] dark:border-[#3f3f46] dark:bg-[#18181b] dark:text-[#f4f4f5]"}),i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx("button",{type:"button",onClick:()=>{d(!1),m(null)},className:"rounded px-2 py-1 text-[11px] text-[#6B7280] hover:bg-[#F3F4F6] dark:hover:bg-[#27272a]",children:"Cancel"}),i.jsxs("button",{type:"button",onClick:()=>void A(),disabled:!c.trim()||f,className:"flex items-center gap-1 rounded bg-[#7C3AED] px-2 py-1 text-[11px] font-medium text-white disabled:opacity-50",children:[f&&i.jsx(he,{className:"h-3 w-3 animate-spin"}),"Resume agent"]})]})]}):i.jsxs("button",{type:"button","aria-label":"Resume subagent",onClick:()=>d(!0),className:"flex items-center gap-1.5 rounded-md border border-[#D1D5DB] px-2 py-1 text-[11px] font-medium text-[#374151] transition-colors hover:bg-[#F3F4F6] dark:border-[#3f3f46] dark:text-[#d4d4d8] dark:hover:bg-[#27272a]",children:[i.jsx(ft,{className:"h-3 w-3"}),"Resume"]}),g&&i.jsx("div",{role:"alert",className:"text-[11px] text-red-600",children:g})]})]})]})}function oi({confirmation:t,messageId:e}){const[s,n]=b.useState(!1),{currentSessionRef:r,setConfirmation:a}=be();if(!t)return null;const o=async(l,d)=>{if(!(!r||s)){n(!0);try{await J.respondPermission(r,t.toolCallId,{approved:l,scope:d}),a(e,{...t,status:l?"approved":"denied"})}catch{a(e,{...t,status:l?"approved":"denied"})}finally{n(!1)}}};return t.status!=="pending"?null:i.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg p-4 space-y-3",children:[i.jsxs("div",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:["Permission required: ",t.toolName]}),i.jsx("div",{className:"text-[12px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:t.description}),t.diff&&i.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}),i.jsxs("div",{className:"flex gap-2",children:[i.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"}),i.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"}),i.jsx("button",{onClick:()=>o(!0,"project"),disabled:s,className:"px-3 py-1.5 text-[12px] font-mono bg-[#6366F1] text-white rounded-md hover:bg-[#4F46E5] disabled:opacity-50",children:"Project"}),i.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 ii({question:t,messageId:e}){const[s,n]=b.useState({}),[r,a]=b.useState({}),[o,l]=b.useState(!1),{currentSessionRef:d,setQuestion:c,setError:u}=be(),f=b.useMemo(()=>t?t.questions.reduce((m,p)=>{var _;const x=(_=r[p.header])==null?void 0:_.trim(),y=s[p.header];if(p.multiSelect){const D=Array.isArray(y)?[...y]:[];return x&&D.push(x),D.length>0&&(m[p.header]=D),m}const v=x||(typeof y=="string"?y:"");return v&&(m[p.header]=v),m},{}):{},[s,r,t]),h=(t==null?void 0:t.questions.every(m=>m.header in f))??!1;if(!t)return null;const g=async()=>{if(!(!d||o||!h)){l(!0);try{await J.respondToQuestion(d,t.toolCallId,f),c(e,{...t,status:"answered",answers:f})}catch(m){u(m instanceof Error?m.message:"Failed to submit answers")}finally{l(!1)}}};return t.status!=="pending"?i.jsx("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:i.jsx("div",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Questions answered"})}):i.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((m,p)=>i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:m.question}),i.jsxs("div",{className:"space-y-1",children:[m.options.map((x,y)=>i.jsxs("button",{onClick:()=>{if(m.multiSelect){const v=s[m.header]||[],_=v.includes(x.label)?v.filter(D=>D!==x.label):[...v,x.label];n({...s,[m.header]:_})}else n({...s,[m.header]:x.label}),a({...r,[m.header]:""})},className:Z("w-full text-left px-3 py-2 rounded-md border text-[12px] font-mono transition-colors","border-[#E5E7EB] dark:border-[#27272a]",(m.multiSelect?(s[m.header]||[]).includes(x.label):s[m.header]===x.label)?"bg-[#DCFCE7] text-[#166534] dark:bg-[#22C55E]/20 dark:text-[#E5E5E5]":"bg-[#F9FAFB] text-[#6B7280] dark:bg-[#111113] dark:text-[#a1a1aa]"),children:[i.jsx("div",{children:x.label}),i.jsx("div",{className:"text-[11px] text-[#9CA3AF] dark:text-[#71717a] mt-1",children:x.description})]},y)),i.jsx("input",{"aria-label":`${m.header} other response`,value:r[m.header]??"",onChange:x=>a({...r,[m.header]:x.target.value}),placeholder:"Other",className:"w-full rounded-md border border-[#E5E7EB] bg-white px-3 py-2 text-[12px] text-[#111827] outline-none focus:border-[#22C55E] dark:border-[#27272a] dark:bg-[#111113] dark:text-[#E5E5E5]"})]})]},p)),i.jsx("button",{onClick:g,disabled:o||!h,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 li({message:t}){const e=t.agentContent,{isStreaming:s,currentAssistantMessageId:n}=be(),r=n===t.id;if(!e){const y=wn(t.content);return y?i.jsx(St,{content:y}):null}const{textBefore:a,toolCalls:o,textAfter:l,thinkingContent:d,tasks:c,subagent:u,confirmation:f,question:h}=e;if(!(a||o.length>0||l||d||c.length>0||u||f||h)&&r&&s)return i.jsxs("div",{className:"flex items-center gap-2 text-[#6B7280] dark:text-[#71717a]",children:[i.jsx(he,{className:"w-4 h-4 animate-spin"}),i.jsx("span",{className:"text-[12px] font-mono",children:"Thinking..."})]});const p=o.length>0&&o.every(y=>y.status==="success"||y.status==="error")&&(!r||!s),x=!r||!s;return i.jsxs("div",{className:"space-y-3",children:[d&&i.jsx(si,{content:d}),a&&i.jsx(St,{content:a,syntaxHighlight:x}),c.length>0&&i.jsx(ni,{tasks:c}),u&&i.jsx(ai,{subagent:u}),i.jsx(Cn,{toolCalls:o}),f&&i.jsx(oi,{confirmation:f,messageId:t.id}),h&&i.jsx(ii,{question:h,messageId:t.id}),p&&i.jsx(ri,{toolCalls:o}),l&&i.jsx(St,{content:l,syntaxHighlight:x})]})}function di({message:t,showAvatar:e=!0}){const s=t.role==="user";if(t.role==="system"){const r=wn(t.content);return i.jsx("div",{className:"flex justify-center p-2 w-full",children:i.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}=Xo(t.content);return i.jsxs("div",{className:"flex gap-4 justify-end p-4 w-full",children:[i.jsxs("div",{className:"bg-[#F3F4F6] dark:bg-[#27272a] rounded-lg px-4 py-3 max-w-[85%]",children:[r&&i.jsx("p",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono leading-relaxed whitespace-pre-wrap",children:r}),a.length>0&&i.jsx("div",{className:Z("grid gap-2",a.length===1?"grid-cols-1 mt-0":"grid-cols-2 mt-3"),children:a.map((o,l)=>i.jsx("img",{src:o,alt:`attachment-${l+1}`,className:"max-h-64 w-full rounded-md object-cover"},`${o}-${l}`))})]}),i.jsx(Yo,{})]})}return i.jsxs("div",{className:Z("flex gap-4 justify-start w-full",e?"p-4":"px-4 pt-0 pb-3"),children:[e?i.jsx(Ko,{}):i.jsx("div",{className:"w-8 shrink-0"}),i.jsx("div",{className:"overflow-hidden flex-1 min-w-0",children:i.jsx(li,{message:t})})]})}const ci=b.memo(di),Ct=120,zs=80;function ui({messages:t,isLoading:e}){const s=b.useRef(null),n=b.useRef(t.length),[r,a]=b.useState(Ct);b.useEffect(()=>{s.current&&s.current.scrollIntoView({behavior:"smooth"})},[t]),b.useEffect(()=>{const c=n.current;n.current=t.length,a(u=>u>=c&&t.length>c?t.length:Math.min(Math.max(u,Ct),t.length||Ct))},[t.length]);const o=Math.max(t.length-r,0),l=o,d=b.useMemo(()=>t.slice(l),[t,l]);return t.length===0&&!e?i.jsx("div",{className:"flex-1 flex items-center justify-center",children:i.jsxs("div",{className:"text-center text-[#6B7280] dark:text-zinc-500",children:[i.jsx("div",{className:"text-4xl mb-4",children:"🗡️"}),i.jsx("div",{className:"text-lg font-medium",children:"Welcome to Blade"}),i.jsx("div",{className:"text-sm mt-1",children:"Start a conversation to begin"})]})}):i.jsx(ts,{className:"flex-1 h-full",children:i.jsxs("div",{className:"flex flex-col pb-4 w-full px-4 md:px-6",children:[o>0&&i.jsx("div",{className:"flex justify-center py-3",children:i.jsxs("button",{type:"button",onClick:()=>a(c=>Math.min(t.length,c+zs)),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,zs)," earlier messages"]})}),d.map((c,u)=>{const f=l+u,h=f>0?t[f-1]:null,g=!h||h.role!==c.role||h.role==="user";return i.jsx(ci,{message:c,showAvatar:g},c.id||`msg-${f}`)}),e&&i.jsxs("div",{className:"flex w-full gap-4 p-4 justify-start",children:[i.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-lg bg-[#22C55E]",children:i.jsx("div",{className:"w-2 h-2 rounded-full bg-black"})}),i.jsxs("div",{className:"flex items-center gap-1 text-[#9CA3AF] dark:text-zinc-400",children:[i.jsx("span",{className:"animate-pulse",children:"●"}),i.jsx("span",{className:"animate-pulse delay-100",children:"●"}),i.jsx("span",{className:"animate-pulse delay-200",children:"●"})]})]}),i.jsx("div",{ref:s})]})})}const jn=Vn,_n=Gn,En=qn,ss=b.forwardRef(({className:t,sideOffset:e=4,...s},n)=>i.jsx(Hs,{ref:n,sideOffset:e,className:Z("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}));ss.displayName=Hs.displayName;const fi={active:{label:"Goal running",dot:"bg-violet-400 shadow-[0_0_8px_rgba(167,139,250,0.65)]",accent:"text-violet-500 dark:text-violet-300"},paused:{label:"Goal paused",dot:"bg-amber-400",accent:"text-amber-600 dark:text-amber-300"},blocked:{label:"Goal blocked",dot:"bg-rose-500",accent:"text-rose-600 dark:text-rose-300"},usage_limited:{label:"Usage limited",dot:"bg-orange-500",accent:"text-orange-600 dark:text-orange-300"},budget_limited:{label:"Budget reached",dot:"bg-orange-500",accent:"text-orange-600 dark:text-orange-300"},complete:{label:"Goal complete",dot:"bg-emerald-500",accent:"text-emerald-600 dark:text-emerald-300"}};function $s(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)}function hi(t){if(t<60)return`${t}s`;const e=Math.floor(t/60),s=t%60;return s===0?`${e}m`:`${e}m ${s}s`}function gi(){const{goal:t,pauseGoal:e,resumeGoal:s,editGoal:n,clearGoal:r}=be(),[a,o]=b.useState(!1),[l,d]=b.useState(!1),[c,u]=b.useState(""),[f,h]=b.useState(null),[g,m]=b.useState(!1);if(b.useEffect(()=>{o(!1),d(!1),u((t==null?void 0:t.objective)??""),m(!1)},[t==null?void 0:t.goalId]),!t)return null;const p=fi[t.status],x=["active","paused","blocked"].includes(t.status),y=t.status==="active",v=t.status==="paused"||t.status==="blocked",_=f!==null,D=async(z,I)=>{h(z);try{await I()}finally{h(null)}},T=()=>{u(t.objective),d(!0),o(!0)},P=async z=>{z.preventDefault();const I=c.trim();if(!I||I===t.objective){d(!1);return}await D("edit",()=>n(I)),d(!1)},Q=async()=>{await D("delete",r),m(!1)};return i.jsxs(i.Fragment,{children:[i.jsx(jn,{delayDuration:250,children:i.jsxs("section",{"aria-label":"Goal controls",className:"mx-3 mt-3 shrink-0 overflow-hidden rounded-xl border border-[#D9DBE2] bg-[#F8F8FA] shadow-[0_1px_2px_rgba(15,23,42,0.04)] dark:border-[#30323A] dark:bg-[#17181D] dark:shadow-[0_1px_0_rgba(255,255,255,0.025)_inset]",children:[i.jsxs("div",{className:"flex min-h-[62px] items-stretch",children:[i.jsx("div",{className:"flex w-[62px] shrink-0 items-center justify-center border-r border-[#E1E2E7] dark:border-[#30323A]",children:i.jsx("div",{className:Z("flex h-10 w-10 items-center justify-center rounded-lg border bg-white shadow-sm dark:border-[#3A3C45] dark:bg-[#272932]",t.status==="active"?"border-violet-200 dark:border-violet-400/20":"border-[#D9DBE2]"),children:t.status==="complete"?i.jsx(sr,{className:"h-5 w-5 text-emerald-500"}):i.jsx(nr,{className:Z("h-5 w-5",p.accent)})})}),i.jsxs("button",{type:"button",className:"min-w-0 flex-1 px-5 py-3 text-left outline-none transition-colors hover:bg-black/[0.025] focus-visible:ring-2 focus-visible:ring-violet-500/50 focus-visible:ring-inset dark:hover:bg-white/[0.025]",onClick:()=>o(z=>!z),"aria-expanded":a,children:[i.jsxs("div",{className:"flex items-center gap-2 text-[13px] font-medium leading-5",children:[i.jsx("span",{className:Z("h-1.5 w-1.5 rounded-full",p.dot)}),i.jsx("span",{className:p.accent,children:p.label})]}),i.jsx("div",{className:"mt-0.5 truncate text-[15px] leading-6 text-[#5F6470] dark:text-[#A9ACB8]",title:t.objective,children:t.objective})]}),i.jsxs("div",{className:"flex shrink-0 items-center gap-1 border-l border-[#E1E2E7] px-3 dark:border-[#30323A]",children:[i.jsx(Je,{label:"Edit goal",disabled:!x||_,onClick:T,children:i.jsx(Qs,{})}),y&&i.jsx(Je,{label:"Pause goal",disabled:_,onClick:()=>void D("pause",e),children:f==="pause"?i.jsx(he,{className:"animate-spin"}):i.jsx(rr,{})}),v&&i.jsx(Je,{label:"Resume goal",disabled:_,onClick:()=>void D("resume",s),children:f==="resume"?i.jsx(he,{className:"animate-spin"}):i.jsx(ar,{})}),i.jsx(Je,{label:"Delete goal",disabled:_,destructive:!0,onClick:()=>m(!0),children:i.jsx(Ks,{})}),i.jsx("div",{className:"mx-1 h-6 w-px bg-[#E1E2E7] dark:bg-[#30323A]"}),i.jsx(Je,{label:a?"Collapse goal details":"Expand goal details",onClick:()=>o(z=>!z),pressed:a,children:i.jsx(or,{})})]})]}),a&&i.jsx("div",{className:"border-t border-[#E1E2E7] bg-white/55 px-5 py-4 dark:border-[#30323A] dark:bg-black/10",children:l?i.jsxs("form",{onSubmit:P,children:[i.jsx("label",{htmlFor:"goal-objective",className:"mb-2 block text-[11px] font-semibold uppercase tracking-[0.14em] text-[#8B909C] dark:text-[#777C89]",children:"Goal objective"}),i.jsx("textarea",{id:"goal-objective",value:c,onChange:z=>u(z.target.value),onKeyDown:z=>{z.key==="Escape"&&d(!1)},rows:3,autoFocus:!0,className:"w-full resize-none rounded-lg border border-[#CFCFD6] bg-white px-3 py-2 text-[13px] leading-5 text-[#272A31] outline-none transition-shadow focus:border-violet-400 focus:ring-2 focus:ring-violet-400/20 dark:border-[#3A3C45] dark:bg-[#111217] dark:text-[#E3E4E8]"}),i.jsxs("div",{className:"mt-3 flex justify-end gap-2",children:[i.jsxs("button",{type:"button",onClick:()=>d(!1),className:"inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-[12px] text-[#6F7480] transition-colors hover:bg-black/5 dark:text-[#A2A6B1] dark:hover:bg-white/5",children:[i.jsx(Lt,{className:"h-3.5 w-3.5"}),"Cancel"]}),i.jsxs("button",{type:"submit",disabled:!c.trim()||f==="edit",className:"inline-flex h-8 items-center gap-1.5 rounded-md bg-violet-600 px-3 text-[12px] font-medium text-white transition-colors hover:bg-violet-500 disabled:cursor-not-allowed disabled:opacity-50",children:[f==="edit"?i.jsx(he,{className:"h-3.5 w-3.5 animate-spin"}):i.jsx(Js,{className:"h-3.5 w-3.5"}),"Save"]})]})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"max-w-4xl whitespace-pre-wrap text-[13px] leading-6 text-[#4F5561] dark:text-[#C1C4CC]",children:t.objective}),i.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-x-5 gap-y-2 text-[11px] text-[#858A96] dark:text-[#777C89]",children:[i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx(ir,{className:"h-3.5 w-3.5"}),$s(t.tokensUsed),t.tokenBudget!==void 0&&` / ${$s(t.tokenBudget)}`," ","tokens"]}),i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx(lr,{className:"h-3.5 w-3.5"}),hi(t.timeUsedSeconds)]}),i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx(ft,{className:"h-3.5 w-3.5"}),t.continuationCount," ",t.continuationCount===1?"continuation":"continuations"]})]}),t.statusReason&&i.jsx("div",{className:"mt-3 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-[12px] text-amber-800 dark:border-amber-400/15 dark:bg-amber-400/[0.06] dark:text-amber-200",children:t.statusReason})]})})]})}),i.jsx(on,{open:g,onOpenChange:m,children:i.jsxs(Ut,{className:"max-w-[420px] border-[#D9DBE2] bg-white dark:border-[#30323A] dark:bg-[#17181D]",children:[i.jsx(Gt,{children:"Delete this goal?"}),i.jsx(qt,{children:"The goal state will be removed. Session history and workspace files are not affected."}),i.jsxs(Vt,{className:"mt-2",children:[i.jsx("button",{type:"button",onClick:()=>m(!1),className:"inline-flex h-9 items-center justify-center rounded-md border border-[#D9DBE2] px-4 text-sm text-[#555B66] hover:bg-[#F4F4F6] dark:border-[#3A3C45] dark:text-[#C1C4CC] dark:hover:bg-white/5",children:"Cancel"}),i.jsxs("button",{type:"button",disabled:f==="delete",onClick:()=>void Q(),className:"inline-flex h-9 items-center justify-center gap-2 rounded-md bg-rose-600 px-4 text-sm font-medium text-white hover:bg-rose-500 disabled:opacity-50",children:[f==="delete"&&i.jsx(he,{className:"h-4 w-4 animate-spin"}),"Delete goal"]})]})]})})]})}function Je({label:t,children:e,disabled:s,destructive:n,pressed:r,onClick:a}){return i.jsxs(_n,{children:[i.jsx(En,{asChild:!0,children:i.jsx("button",{type:"button","aria-label":t,"aria-pressed":r,disabled:s,onClick:a,className:Z("flex h-9 w-9 items-center justify-center rounded-lg text-[#737986] outline-none transition-colors focus-visible:ring-2 focus-visible:ring-violet-500/50 disabled:cursor-not-allowed disabled:opacity-35 dark:text-[#A5A9B3] [&_svg]:h-[18px] [&_svg]:w-[18px]",n?"hover:bg-rose-500/10 hover:text-rose-600 dark:hover:text-rose-300":"hover:bg-black/5 hover:text-[#252932] dark:hover:bg-white/[0.06] dark:hover:text-white",r&&"bg-black/5 text-[#252932] dark:bg-white/[0.06] dark:text-white"),children:e})}),i.jsx(ss,{side:"bottom",className:"text-xs",children:t})]})}const mi={running:"Generating...",compacting:"Compacting context...",switching_model:"Switching model...",waiting_permission:"Waiting for permission...",error:"Run failed",idle:""};function pi(){const{tokenUsage:t,isStreaming:e,agentPhase:s}=be(),n=mi[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 i.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:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-[#6B7280] dark:text-zinc-400",children:"Tokens:"}),i.jsxs("span",{className:Z(r>80&&"text-yellow-500",r>95&&"text-red-500"),children:[a(t.totalTokens)," /"," ",a(t.maxContextTokens)]}),t.isDefaultMaxTokens&&i.jsx(jn,{children:i.jsxs(_n,{children:[i.jsx(En,{asChild:!0,children:i.jsx(dr,{className:"h-3 w-3 text-[#9CA3AF] dark:text-zinc-500 cursor-help"})}),i.jsx(ss,{side:"top",className:"max-w-[220px]",children:i.jsx("p",{className:"text-xs",children:"Token limit is estimated. It updates when the model reports its context size."})})]})}),i.jsx("div",{className:"w-20 h-1.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded-full overflow-hidden",children:i.jsx("div",{className:Z("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)}%`}})}),i.jsxs("span",{className:"text-[#9CA3AF] dark:text-zinc-600",children:["(",r,"%)"]})]}),i.jsx("div",{className:"flex-1"}),e&&n&&i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"w-2 h-2 rounded-full bg-green-500 animate-pulse"}),i.jsx("span",{children:n})]})]})}function xi(){const{messages:t,currentSessionId:e,isStreaming:s,pendingSteeringCount:n,recoveredSteeringCount:r,isLoading:a,error:o,loadSessions:l,sendMessage:d,abortSession:c,startTemporarySession:u,clearError:f,unsubscribeFromEvents:h}=be();b.useEffect(()=>{l()},[l]),b.useEffect(()=>{e||u()},[e,u]),b.useEffect(()=>()=>{h()},[h]);const g=async p=>{await d({content:p.content,attachments:p.attachments.map(x=>({type:"image",content:x.dataUrl,mimeType:x.mimeType,name:x.name}))})},m=()=>{c()};return i.jsxs("div",{className:"flex flex-col h-full",children:[o&&i.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:[i.jsx("span",{children:o}),i.jsx("button",{onClick:f,className:"text-[#b91c1c] hover:text-[#7f1d1d] dark:text-[#fca5a5] dark:hover:text-[#fecaca]",children:"✕"})]}),i.jsx(gi,{}),i.jsx(ui,{messages:t,isLoading:a}),i.jsx(Jo,{onSend:g,onAbort:m,disabled:a,isStreaming:s,pendingSteeringCount:n,recoveredSteeringCount:r}),i.jsx(pi,{})]})}function bi(){return i.jsx(zo,{children:i.jsx(xi,{})})}Fn.createRoot(document.getElementById("root")).render(i.jsx(Qe.StrictMode,{children:i.jsx(bi,{})}));export{Te as B,on as D,Ut as a,Gt as b,Z as c,Bt as d,be as e,Ta as f,Yt as g,te as s,es as u};