@rubytech/create-realagent 1.0.647 → 1.0.648

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.
@@ -340,13 +340,13 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
340
340
  border: 1px solid rgba(0,0,0,0.1); }
341
341
  td { padding: 6px 10px; border: 1px solid rgba(0,0,0,0.1); }
342
342
  `;function rT({data:e,onSubmit:t,submitted:n,isStreaming:r}){let{title:i,columns:a,rows:o,filePath:s,brandName:c,brandLogo:l}=e??{},u=i??`Grid`,[d,f]=(0,R.useState)(a??[`Column 1`]),[p,m]=(0,R.useState)(()=>{let e=o??[[``]];return e.length>0?e:[[``]]}),[h,g]=(0,R.useState)(null),[_,y]=(0,R.useState)(``),b=(0,R.useRef)(null),[x,S]=(0,R.useState)(()=>(a??[`Column 1`]).map(()=>$w)),C=(0,R.useRef)(null),[w,T]=(0,R.useState)(`idle`),D=(0,R.useRef)(null),O=(0,R.useRef)(null),k=(0,R.useRef)(JSON.stringify({columns:a,rows:o}));(0,R.useEffect)(()=>{let e=JSON.stringify({columns:a,rows:o});e!==k.current&&(k.current=e,a&&f(a),o&&(m(o.length>0?o:[[``]]),S(e=>{let t=a?.length??e.length;return t>e.length?[...e,...Array(t-e.length).fill($w)]:e.slice(0,t)})))},[a,o]);let A=(0,R.useCallback)(()=>{D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{T(`saving`),t(JSON.stringify({action:`save`,columns:d,rows:p,...s?{filePath:s}:{}})),O.current&&clearTimeout(O.current),T(`saved`),O.current=setTimeout(()=>T(`idle`),2e3)},500)},[d,p,s,t]);(0,R.useEffect)(()=>()=>{D.current&&clearTimeout(D.current),O.current&&clearTimeout(O.current)},[]);let j=kw({title:u,isStreaming:r,channelName:`maxy-grid-editor`,renderPopout:(0,R.useCallback)((e,t)=>{let n=e.document;n.open(),n.close(),n.title=t;let r=n.createElement(`style`);r.textContent=nT,n.head.appendChild(r);let i=n.createElement(`div`);i.className=`title`,i.textContent=t,n.body.appendChild(i);let a=n.createElement(`table`),o=n.createElement(`thead`),s=n.createElement(`tr`);for(let e of d){let t=n.createElement(`th`);t.textContent=e,s.appendChild(t)}o.appendChild(s),a.appendChild(o);let c=n.createElement(`tbody`);for(let e of p){let t=n.createElement(`tr`);for(let r of e){let e=n.createElement(`td`);e.textContent=r,t.appendChild(e)}c.appendChild(t)}a.appendChild(c),n.body.appendChild(a)},[d,p])}),M=Aw({onSubmit:t}),N=(0,R.useCallback)((e,t)=>{g({row:e,col:t}),y(p[e]?.[t]??``),setTimeout(()=>b.current?.focus(),0)},[p]),P=(0,R.useCallback)(()=>{if(!h)return;let{row:e,col:t}=h;m(n=>{let r=n.map(e=>[...e]);return r[e]&&(r[e][t]=_),r}),g(null),A()},[h,_,A]),ee=(0,R.useCallback)(()=>{g(null)},[]),te=(0,R.useCallback)(e=>{if(h)if(e.key===`Tab`){e.preventDefault(),P();let{row:t,col:n}=h,r=n+1;if(r<d.length)N(t,r);else{let e=t+1;e>=p.length&&m(e=>[...e,Array(d.length).fill(``)]),N(Math.min(e,p.length),0)}}else if(e.key===`Enter`){e.preventDefault(),P();let{row:t,col:n}=h,r=t+1;r>=p.length&&m(e=>[...e,Array(d.length).fill(``)]),N(Math.min(r,p.length),n)}else e.key===`Escape`&&ee()},[h,d.length,p.length,P,N,ee]),F=(0,R.useCallback)(()=>{m(e=>[...e,Array(d.length).fill(``)]),A()},[d.length,A]),ne=(0,R.useCallback)(e=>{m(t=>t.length<=1?[Array(d.length).fill(``)]:t.filter((t,n)=>n!==e)),h?.row===e&&g(null),A()},[d.length,h,A]),re=(0,R.useCallback)(e=>{let t=e.clipboardData.getData(`text/plain`);if(!t||!h)return;let n=t.split(`
343
- `).filter(e=>e.trim());if(n.length<=1&&!n[0]?.includes(` `)&&!n[0]?.includes(`,`))return;e.preventDefault();let r=n.slice(0,Zw).map(eT);n.length>Zw&&console.warn(`Grid editor: paste truncated from ${n.length} to ${Zw} rows`);let{row:i,col:a}=h;m(e=>{let t=e.map(e=>[...e]);for(let e=0;e<r.length;e++){let n=i+e;for(;n>=t.length;)t.push(Array(d.length).fill(``));for(let i=0;i<r[e].length;i++){let o=a+i;o<d.length&&(t[n][o]=r[e][i])}}return t}),A()},[h,d.length,A]),ie=(0,R.useCallback)(()=>{let e=tT(d,p),t=new Blob([e],{type:`text/csv;charset=utf-8;`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${u.replace(/[^a-zA-Z0-9]/g,`_`)}.csv`,r.click(),URL.revokeObjectURL(n)},[d,p,u]),ae=(0,R.useCallback)(()=>{zw({title:u,content:Bw(d,p),brandName:c,brandLogo:l})},[u,d,p,c,l]),oe=(0,R.useCallback)((e,t)=>{t.preventDefault(),C.current={colIndex:e,startX:t.clientX,startWidth:x[e]};let n=null,r=e=>{C.current&&(n&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{if(!C.current)return;let t=e.clientX-C.current.startX,n=Math.max(Qw,C.current.startWidth+t);S(e=>{let t=[...e];return t[C.current.colIndex]=n,t})}))},i=()=>{C.current=null,n&&cancelAnimationFrame(n),window.removeEventListener(`mousemove`,r),window.removeEventListener(`mouseup`,i)};window.addEventListener(`mousemove`,r),window.addEventListener(`mouseup`,i)},[x]),se=(0,R.useCallback)(()=>{h&&M.openCommentInput()},[h,M]),ce=(0,R.useCallback)(()=>{if(!h)return;let e=p[h.row]?.[h.col]??``;M.submitComment(e,{row:h.row,column:h.col})},[h,p,M]);if(n)return null;let le=typeof window<`u`&&window.innerWidth<640,ue=typeof BroadcastChannel<`u`,de=(0,z.jsxs)(`div`,{className:`editor-base__actions`,children:[w===`saving`&&(0,z.jsx)(`span`,{className:`editor-base__status`,children:`Saving...`}),w===`saved`&&(0,z.jsx)(`span`,{className:`editor-base__status`,children:`Saved`}),M.pendingComments.length>0&&(0,z.jsxs)(E,{variant:`ghost`,size:`sm`,onClick:M.sendComments,children:[`Send `,M.pendingComments.length,` comment`,M.pendingComments.length>1?`s`:``]}),h&&(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ue,onClick:se,"aria-label":`Comment on cell`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:fe,onClick:ie,"aria-label":`Download CSV`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:ke,onClick:ae,"aria-label":`Export PDF`}),!le&&ue&&!j.poppedOut&&(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Oe,onClick:j.handlePopout,"aria-label":`Pop out`}),!j.fullscreen&&(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:He,onClick:j.handleFullscreen,"aria-label":`Full screen`}),j.fullscreen&&(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ge,onClick:j.exitFullscreen,"aria-label":`Exit full screen`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ke,onClick:j.handleMinimise,"aria-label":`Minimise`})]}),pe=(0,z.jsxs)(`div`,{className:`grid-editor__table-wrap`,onPaste:re,children:[M.showCommentInput?(0,z.jsxs)(`div`,{className:`grid-editor__comment-popover`,children:[(0,z.jsx)(`input`,{ref:M.commentInputRef,type:`text`,value:M.commentText,onChange:e=>M.setCommentText(e.target.value),onKeyDown:e=>{e.key===`Enter`&&ce(),e.key===`Escape`&&M.cancelComment()},placeholder:`Add a comment...`,className:`doc-editor__comment-input`,"aria-label":`Add comment on cell`}),(0,z.jsxs)(`div`,{className:`doc-editor__comment-actions`,children:[(0,z.jsx)(E,{variant:`primary`,size:`sm`,onClick:ce,disabled:!M.commentText.trim(),children:`Add`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:at,onClick:M.cancelComment,"aria-label":`Cancel`})]})]}):null,(0,z.jsxs)(`table`,{className:`grid-editor__table`,role:`grid`,"aria-label":u,children:[(0,z.jsx)(`thead`,{children:(0,z.jsxs)(`tr`,{children:[(0,z.jsx)(`th`,{className:`grid-editor__row-header`}),d.map((e,t)=>(0,z.jsxs)(`th`,{className:`grid-editor__col-header`,style:{width:x[t]},children:[e,(0,z.jsx)(`div`,{className:`grid-editor__resize-handle`,onMouseDown:e=>oe(t,e),role:`separator`,"aria-orientation":`vertical`})]},t))]})}),(0,z.jsx)(`tbody`,{children:p.map((e,t)=>(0,z.jsxs)(`tr`,{children:[(0,z.jsxs)(`td`,{className:`grid-editor__row-header`,children:[(0,z.jsx)(`span`,{className:`grid-editor__row-num`,children:t+1}),p.length>1&&(0,z.jsx)(`button`,{className:`grid-editor__row-delete`,onClick:()=>ne(t),"aria-label":`Delete row ${t+1}`,children:(0,z.jsx)(v,{size:12})})]}),e.map((e,n)=>{let r=h?.row===t&&h?.col===n;return(0,z.jsx)(`td`,{className:`grid-editor__cell ${r?`grid-editor__cell--active`:``}`,onClick:()=>!r&&N(t,n),role:`gridcell`,"aria-selected":r,style:{width:x[n]},children:r?(0,z.jsx)(`input`,{ref:b,type:`text`,className:`grid-editor__cell-input`,value:_,onChange:e=>y(e.target.value),onKeyDown:te,onBlur:P,"aria-label":`${d[n]} row ${t+1}`}):(0,z.jsx)(`span`,{className:`grid-editor__cell-text`,children:e})},n)})]},t))})]}),(0,z.jsxs)(`button`,{className:`grid-editor__add-row`,onClick:F,"aria-label":`Add row`,children:[(0,z.jsx)(be,{size:14}),(0,z.jsx)(`span`,{children:`Add row`})]})]});return j.fullscreen?(0,z.jsxs)(`div`,{className:`editor-base-fullscreen`,children:[(0,z.jsxs)(`div`,{className:`editor-base-fullscreen__bar`,...j.dragBarProps,children:[(0,z.jsx)(`span`,{className:`editor-base-fullscreen__title`,children:u}),de]}),(0,z.jsx)(`div`,{className:`editor-base-fullscreen__body`,style:{maxWidth:`none`},children:pe})]}):j.poppedOut?(0,z.jsx)(`div`,{className:`editor-base editor-base--popout`,children:(0,z.jsxs)(`div`,{className:`editor-base__bar`,...j.dragBarProps,children:[(0,z.jsx)(`span`,{className:`editor-base__title`,children:u}),(0,z.jsxs)(`div`,{className:`editor-base__actions`,children:[(0,z.jsx)(`span`,{className:`editor-base__status`,children:`Popped out`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:$e,onClick:j.handlePopIn,"aria-label":`Pop back in`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ke,onClick:j.handleMinimise,"aria-label":`Close`})]})]})}):j.minimised?(0,z.jsx)(`div`,{className:`editor-base editor-base--minimised`,onClick:j.handleExpand,role:`button`,tabIndex:0,onKeyDown:e=>e.key===`Enter`&&j.handleExpand(),children:(0,z.jsxs)(`div`,{className:`editor-base__bar`,...j.dragBarProps,children:[(0,z.jsx)(`span`,{className:`editor-base__title`,children:u}),(0,z.jsxs)(`div`,{className:`editor-base__actions`,onClick:e=>e.stopPropagation(),children:[!le&&ue&&(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Oe,onClick:j.handlePopout,"aria-label":`Pop out`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:He,onClick:j.handleFullscreen,"aria-label":`Full screen`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ye,onClick:j.handleExpand,"aria-label":`Expand`})]})]})}):(0,z.jsxs)(`div`,{className:`editor-base grid-editor`,children:[(0,z.jsxs)(`div`,{className:`editor-base__bar`,...j.dragBarProps,children:[(0,z.jsx)(`span`,{className:`editor-base__title`,children:u}),de]}),(0,z.jsx)(`div`,{className:`grid-editor__body`,children:pe})]})}var iT=Object.defineProperty,aT=Object.getOwnPropertySymbols,oT=Object.prototype.hasOwnProperty,sT=Object.prototype.propertyIsEnumerable,cT=(e,t,n)=>t in e?iT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,lT=(e,t)=>{for(var n in t||={})oT.call(t,n)&&cT(e,n,t[n]);if(aT)for(var n of aT(t))sT.call(t,n)&&cT(e,n,t[n]);return e},uT=(e,t)=>{var n={};for(var r in e)oT.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&aT)for(var r of aT(e))t.indexOf(r)<0&&sT.call(e,r)&&(n[r]=e[r]);return n},dT;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+(t?1:0),n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(dT||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(dT||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(dT||={});var fT=dT,pT={L:fT.QrCode.Ecc.LOW,M:fT.QrCode.Ecc.MEDIUM,Q:fT.QrCode.Ecc.QUARTILE,H:fT.QrCode.Ecc.HIGH},mT=128,hT=`L`,gT=`#FFFFFF`,_T=`#000000`,vT=!1,yT=1,bT=4,xT=0,ST=.1;function CT(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function wT(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function TT(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*ST),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function ET(e,t){return t==null?e?bT:xT:Math.max(Math.floor(t),0)}function DT({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=R.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...fT.QrSegment.makeSegments(t)),e),[]);return fT.QrCode.encodeSegments(r,pT[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=R.useMemo(()=>{let e=c.getModules(),t=ET(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:TT(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var OT=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),kT=R.forwardRef(function(e,t){let n=e,{value:r,size:i=mT,level:a=hT,bgColor:o=gT,fgColor:s=_T,includeMargin:c=vT,minVersion:l=yT,boostLevel:u,marginSize:d,imageSettings:f}=n,p=uT(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=uT(p,[`style`]),g=f?.src,_=R.useRef(null),v=R.useRef(null),y=R.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=R.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=DT({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});R.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=wT(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,OT?t.fill(new Path2D(CT(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),R.useEffect(()=>{x(!1)},[g]);let E=lT({height:i,width:i},m),D=null;return g!=null&&(D=R.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),R.createElement(R.Fragment,null,R.createElement(`canvas`,lT({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});kT.displayName=`QRCodeCanvas`;var AT=R.forwardRef(function(e,t){let n=e,{value:r,size:i=mT,level:a=hT,bgColor:o=gT,fgColor:s=_T,includeMargin:c=vT,minVersion:l=yT,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=uT(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=DT({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=wT(g,v.excavation)),b=R.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=CT(y,h);return R.createElement(`svg`,lT({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&R.createElement(`title`,null,d),R.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),R.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});AT.displayName=`QRCodeSVG`;function jT({data:e,onSubmit:t,submitted:n}){let r=e,i=(0,R.useRef)(!1),a=r?.value?.trim()??``;return(0,R.useEffect)(()=>{a&&!n&&!i.current&&(i.current=!0,t(``))},[a,n,t]),a?(0,z.jsxs)(`div`,{className:`qr-code`,children:[(0,z.jsx)(`div`,{className:`qr-code__canvas`,children:(0,z.jsx)(AT,{value:a,size:240,level:`M`,bgColor:`#ffffff`,fgColor:`#000000`})}),r?.label&&(0,z.jsx)(`div`,{className:`qr-code__label`,children:r.label})]}):(0,z.jsx)(`div`,{className:`qr-code qr-code--error`,children:`No QR data provided. Try again or ask the agent to generate a new QR code.`})}function MT(e){return e===0?`0 B`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function NT(e){return e.startsWith(`image/`)?(0,z.jsx)(Ae,{size:18}):e===`application/pdf`?(0,z.jsx)(p,{size:18}):e===`text/calendar`?(0,z.jsx)(I,{size:18}):e.startsWith(`text/`)?(0,z.jsx)(m,{size:18}):(0,z.jsx)(ue,{size:18})}function PT({data:e,onSubmit:t,submitted:n,sessionKey:r}){let i=e,a=(0,R.useRef)(!1),o=!!(i?.attachmentId&&i?.filename);(0,R.useEffect)(()=>{o&&!n&&!a.current&&(a.current=!0,t(JSON.stringify({_lifecycle:!0,component:`file-attachment`,event:`rendered`,attachmentId:i.attachmentId,filename:i.filename})))},[o,n,t,i]);let s=(0,R.useCallback)(()=>{if(!i?.attachmentId||!r)return;let e=`/api/admin/attachment/${i.attachmentId}?session_key=${encodeURIComponent(r)}`,t=document.createElement(`a`);t.href=e,t.download=i.filename,t.click()},[i,r]);return o?(0,z.jsx)(A,{submitted:!1,submittedLabel:`Downloaded`,actions:[{label:`Download`,variant:`primary`,onClick:s,disabled:!r}],children:(0,z.jsxs)(`div`,{className:`file-attachment`,children:[(0,z.jsx)(`div`,{className:`file-attachment__icon`,children:NT(i.mimeType)}),(0,z.jsxs)(`div`,{className:`file-attachment__info`,children:[(0,z.jsx)(`div`,{className:`file-attachment__name`,title:i.filename,children:i.filename}),(0,z.jsxs)(`div`,{className:`file-attachment__meta`,children:[MT(i.sizeBytes),` · `,i.mimeType]})]}),(0,z.jsx)(`button`,{className:`file-attachment__download`,onClick:s,disabled:!r,title:`Download file`,children:(0,z.jsx)(fe,{size:16})})]})}):null}var FT=/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/,IT=/^[a-z0-9-]$/;function LT(e){return e?FT.test(e):!1}function RT(e){let t=e.toLowerCase(),n=``;for(let e of t)IT.test(e)&&(n+=e);for(;n.startsWith(`-`);)n=n.slice(1);return n}function zT(e){return[{key:`length`,label:`At least 8 characters`,met:e.length>=8},{key:`number`,label:`Contains a number`,met:/\d/.test(e)},{key:`special`,label:`Contains a special character`,met:/[^A-Za-z0-9]/.test(e)},{key:`whitespace`,label:`No spaces`,met:e.length>0&&!/\s/.test(e)}]}var BT=18e4,VT=4096;function HT(e){let t=new TextEncoder().encode(e);return t.length<=VT?e:`${new TextDecoder(`utf-8`,{fatal:!1}).decode(t.slice(0,VT))}\n… ${t.length-VT} bytes truncated (total ${t.length} bytes)`}function UT(e,t){return Array.isArray(e)&&e.length>0?e[0]:t}function WT({data:e,onSubmit:t,submitted:n,sessionKey:r}){let i=e,a=i?.adminDomainOptions??[],o=i?.publicDomainOptions??[],s=i?.apexDomainOptions??[],[c,l]=(0,R.useState)(``),[u,d]=(0,R.useState)(i?.defaultAdminDomain??UT(a,``)??``),[f,p]=(0,R.useState)(``),[m,h]=(0,R.useState)(i?.defaultPublicDomain??UT(o,``)??``),[g,_]=(0,R.useState)(``),[v,y]=(0,R.useState)(``),[b,x]=(0,R.useState)(!1),[S,C]=(0,R.useState)(!1),[w,T]=(0,R.useState)(!1),[E,D]=(0,R.useState)(null),O=(0,R.useRef)(null);(0,R.useEffect)(()=>()=>{O.current&&clearTimeout(O.current)},[]);let k=e=>{n||S||(l(RT(e)),D(null))},j=e=>{n||S||(p(RT(e)),D(null))},M=LT(c)&&u.length>0,N=f!==``,P=!N||LT(f)&&m.length>0,ee=M?`${c.replace(/-+$/,``)}.${u}`:``,te=N&&P?`${f.replace(/-+$/,``)}.${m}`:``,F=!(te&&te===ee),ne=zT(v),re=ne.every(e=>e.met),ie=M&&P&&F&&re&&!S,ae=c!==``&&!LT(c)?`Use lowercase letters, numbers, and hyphens. Start and end with a letter or number.`:null,oe=N&&!LT(f)?`Use lowercase letters, numbers, and hyphens. Start and end with a letter or number.`:F?null:`Public address must differ from the admin address.`,se=E?.field===`admin`?E.message:null,ce=E?.field===`public`?E.message:null,le=E?.field===`password`?E.message:null,ue=E?.field===`script`||E?.field===`request`?E.message:null,de=()=>{T(!1),D(null),C(!1)},fe=async()=>{if(!ie)return;if(!r){D({field:`request`,message:`No session key available — refresh the page.`});return}C(!0),D(null),T(!1);let e=new AbortController;O.current=setTimeout(()=>{e.abort(),T(!0)},BT);let n={session_key:r,adminLabel:c.replace(/-+$/,``),adminDomain:u,password:v};N&&(n.publicLabel=f.replace(/-+$/,``),n.publicDomain=m),g&&(n.apex=g);try{let r=await fetch(`/api/admin/cloudflare/setup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n),signal:e.signal});O.current&&clearTimeout(O.current),O.current=null;let i=await r.json();if(!i.ok){D({field:i.field,message:i.message,output:i.output,correlationId:i.correlationId,streamLogPath:i.streamLogPath});let e=i.streamLogPath?`\n\nstream log: ${i.streamLogPath}`:``;t(i.output&&i.output.length>0?`Cloudflare setup failed: ${i.message}\n\n${i.output}${e}`:`Cloudflare setup failed: ${i.message}${e}`),C(!1);return}t(i.output)}catch(t){if(O.current&&clearTimeout(O.current),O.current=null,e.signal.aborted)return;D({field:`script`,message:t instanceof Error?t.message:`Network error — try again.`}),C(!1)}},pe=(0,R.useMemo)(()=>c?`${c}.${u}`:`your-name.${u||`your-domain`}`,[c,u]);return a.length===0?(0,z.jsx)(`div`,{className:`component-card component-card--error`,children:(0,z.jsx)(`p`,{style:{fontFamily:`var(--font-body)`,fontSize:12,color:`var(--text-secondary)`},children:`cloudflare-setup-form requires adminDomainOptions.`})}):w?(0,z.jsx)(A,{submitted:!1,actions:[{label:`Reset form`,variant:`ghost`,onClick:de}],children:(0,z.jsxs)(`div`,{className:`form-input`,children:[(0,z.jsx)(`div`,{className:`form-input__title`,children:`Setup is taking longer than expected`}),(0,z.jsx)(`div`,{className:`form-input__desc`,children:`The request is still running on the device — check the chat for live progress. Do not resubmit. If the script fails, the error will appear in chat and you can retry from there.`})]})}):(0,z.jsx)(A,{submitted:n,submittedLabel:`Submitting…`,actions:[{label:S?`Setting up…`:i?.submitLabel??`Set up Cloudflare`,variant:`primary`,disabled:!ie,onClick:fe}],children:(0,z.jsxs)(`div`,{className:`form-input`,children:[i?.title&&(0,z.jsx)(`div`,{className:`form-input__title`,children:i.title}),i?.description&&(0,z.jsx)(`div`,{className:`form-input__desc`,children:i.description}),(0,z.jsxs)(`div`,{className:`form-input__fields`,children:[(0,z.jsxs)(`div`,{className:`form-input__field`,children:[(0,z.jsxs)(`label`,{className:`form-input__label`,htmlFor:`cf-admin-label`,children:[`Admin address`,(0,z.jsx)(`span`,{className:`form-input__required`,children:`*`})]}),(0,z.jsxs)(`div`,{className:`tunnel-route__row`,children:[(0,z.jsx)(`input`,{id:`cf-admin-label`,className:`form-input__input tunnel-route__input`,type:`text`,autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,placeholder:`your-name`,value:c,onChange:e=>k(e.target.value),disabled:n||S}),(0,z.jsx)(GT,{id:`cf-admin-domain`,value:u,options:a,onChange:d,disabled:n||S})]}),(0,z.jsxs)(`div`,{className:`form-input__field-desc`,children:[`Preview: `,(0,z.jsx)(`span`,{className:`tunnel-route__preview`,children:pe})]}),(se||ae)&&(0,z.jsx)(`div`,{className:`tunnel-route__error`,children:se??ae})]}),(0,z.jsxs)(`div`,{className:`form-input__field`,children:[(0,z.jsxs)(`label`,{className:`form-input__label`,htmlFor:`cf-public-label`,children:[`Public address`,(0,z.jsx)(`span`,{className:`tunnel-route__optional`,children:`Optional`})]}),(0,z.jsxs)(`div`,{className:`tunnel-route__row`,children:[(0,z.jsx)(`input`,{id:`cf-public-label`,className:`form-input__input tunnel-route__input`,type:`text`,autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,placeholder:`leave empty to skip`,value:f,onChange:e=>j(e.target.value),disabled:n||S}),(0,z.jsx)(GT,{id:`cf-public-domain`,value:m,options:o.length>0?o:a,onChange:h,disabled:n||S||!N})]}),(0,z.jsx)(`div`,{className:`form-input__field-desc`,children:`Leave empty for admin-only access.`}),(ce||oe)&&(0,z.jsx)(`div`,{className:`tunnel-route__error`,children:ce??oe})]}),s.length>0&&(0,z.jsxs)(`div`,{className:`form-input__field`,children:[(0,z.jsxs)(`label`,{className:`form-input__label`,htmlFor:`cf-apex`,children:[`Proxy apex`,(0,z.jsx)(`span`,{className:`tunnel-route__optional`,children:`Optional`})]}),(0,z.jsxs)(`select`,{id:`cf-apex`,className:`form-input__input`,value:g,onChange:e=>_(e.target.value),disabled:n||S,children:[(0,z.jsx)(`option`,{value:``,children:`None`}),s.map(e=>(0,z.jsx)(`option`,{value:e,children:e},e))]}),(0,z.jsxs)(`div`,{className:`form-input__field-desc`,children:[`Serve the public agent on the bare domain too — e.g. `,(0,z.jsx)(`code`,{children:`maxy.chat`}),`.`]})]}),(0,z.jsxs)(`div`,{className:`form-input__field`,children:[(0,z.jsxs)(`label`,{className:`form-input__label`,htmlFor:`cf-password`,children:[`Admin password`,(0,z.jsx)(`span`,{className:`form-input__required`,children:`*`})]}),(0,z.jsxs)(`div`,{className:`tunnel-route__row`,children:[(0,z.jsx)(`input`,{id:`cf-password`,className:`form-input__input tunnel-route__input`,type:b?`text`:`password`,autoCapitalize:`none`,autoComplete:`new-password`,autoCorrect:`off`,spellCheck:!1,value:v,onChange:e=>{y(e.target.value),D(null)},disabled:n||S}),(0,z.jsx)(`button`,{type:`button`,className:`tunnel-route__suffix`,onClick:()=>x(e=>!e),disabled:n||S,style:{cursor:`pointer`,border:`none`,background:`inherit`},"aria-label":b?`Hide password`:`Show password`,children:b?`Hide`:`Show`})]}),(0,z.jsx)(`ul`,{className:`form-input__field-desc`,style:{margin:0,paddingLeft:16},children:ne.map(e=>(0,z.jsxs)(`li`,{style:{color:e.met?`var(--text)`:`var(--text-secondary)`},children:[e.met?`✓`:`○`,` `,e.label]},e.key))}),le&&(0,z.jsx)(`div`,{className:`tunnel-route__error`,children:le})]}),ue&&(0,z.jsxs)(`div`,{className:`tunnel-route__error`,role:`alert`,children:[(0,z.jsx)(`div`,{children:ue}),E?.output&&E.output.length>0&&(0,z.jsx)(`pre`,{style:{marginTop:8,padding:8,maxHeight:280,overflow:`auto`,fontFamily:`var(--font-mono, ui-monospace, monospace)`,fontSize:12,lineHeight:1.4,whiteSpace:`pre-wrap`,wordBreak:`break-word`,background:`var(--surface-2, rgba(0,0,0,0.04))`,borderRadius:4},children:HT(E.output)}),(E?.correlationId||E?.streamLogPath)&&(0,z.jsxs)(`div`,{style:{marginTop:8,fontFamily:`var(--font-mono, ui-monospace, monospace)`,fontSize:11,color:`var(--text-secondary)`,wordBreak:`break-all`},children:[E.correlationId&&(0,z.jsxs)(`div`,{children:[`conversationId: `,E.correlationId]}),E.streamLogPath&&(0,z.jsxs)(`div`,{children:[`stream log: `,E.streamLogPath]})]})]})]})]})})}function GT({id:e,value:t,options:n,onChange:r,disabled:i}){return(0,z.jsx)(`select`,{id:e,className:`tunnel-route__suffix`,value:t,onChange:e=>r(e.target.value),disabled:i,style:{cursor:i?`default`:`pointer`,border:`none`},children:n.map(e=>(0,z.jsxs)(`option`,{value:e,children:[`.`,e]},e))})}var KT={"single-select":S,"multi-select":te,confirm:Nt,"info-card":Pt,"action-list":Ft,form:It,progress:Rt,"browser-viewer":Bt,"document-editor":Pw,"rich-content-editor":Xw,"grid-editor":rT,"qr-code":jT,"file-attachment":PT,"action-buttons":N,"cloudflare-setup-form":WT,"output-style":S,"thinking-view":S,"plugin-selector":te};function qT({name:e,data:t,onSubmit:n,submitted:r,isStreaming:i,sessionKey:a}){let o=KT[e];return o?(0,z.jsx)(o,{data:t,onSubmit:n,submitted:r,isStreaming:i,sessionKey:a}):(console.warn(`[ComponentRenderer] Unknown component: "${e}". Registered: ${Object.keys(KT).join(`, `)}`),(0,z.jsx)(`div`,{className:`component-card component-card--error`,children:(0,z.jsxs)(`p`,{style:{fontFamily:`var(--font-body)`,fontSize:12,color:`var(--text-secondary)`},children:[`Component “`,e,`” is not available. This may require a platform update.`]})}))}var JT=/\b(?:fail|error|unable|could not|cannot|CAPTCHA|SIGN_IN_REQUIRED)\b/i;function YT(e){let t=new Date(e),n=new Date,r=String(t.getHours()).padStart(2,`0`),i=String(t.getMinutes()).padStart(2,`0`);return t.toDateString()===n.toDateString()?`${r}:${i}`:`${String(t.getDate()).padStart(2,`0`)}-${String(t.getMonth()+1).padStart(2,`0`)}-${t.getFullYear()} ${r}:${i}`}var XT=[tt,Qe,he,Ye,De];function ZT({size:e=13}){let[t,n]=(0,R.useState)(0);(0,R.useEffect)(()=>{let e=setInterval(()=>n(e=>(e+1)%8),300);return()=>clearInterval(e)},[]);let r=t<=4?t:8-t,i=XT[r];return(0,z.jsx)(i,{size:e,className:`star-loader star-frame-${r}`})}var QT=[`Thinking`,`Reasoning`,`Analyzing`,`Considering`,`Reflecting`,`Evaluating`,`Weighing`,`Synthesizing`,`Processing`,`Exploring`,`Examining`,`Assessing`,`Reviewing`,`Contemplating`,`Deliberating`],$T=60,eE=1500;function tE(){let e=(0,R.useRef)(-1),t=(0,R.useRef)(void 0),[n,r]=(0,R.useState)(()=>{let t=Math.floor(Math.random()*QT.length);return e.current=t,QT[t]+`…`});return(0,R.useEffect)(()=>{let n=!1;function i(){let t;do t=Math.floor(Math.random()*QT.length);while(t===e.current&&QT.length>1);return e.current=t,t}function a(){if(n)return;let e=QT[i()]+`…`,o=0;function s(){n||(o++,r(e.slice(0,o)),o<e.length?t.current=setTimeout(s,$T):t.current=setTimeout(a,eE))}t.current=setTimeout(s,$T)}return t.current=setTimeout(a,eE),()=>{n=!0,clearTimeout(t.current)}},[]),(0,z.jsx)(`span`,{className:`tl-thinking-typewriter`,children:n})}function nE(e,t){let n=e=>String(e??``);switch(e){case`Read`:return`Read ${n(t.file_path??t.path)}`;case`Write`:return`Write ${n(t.file_path??t.path)}`;case`Edit`:return`Edit ${n(t.file_path??t.path)}`;case`Bash`:return n(t.description??String(t.command??``).slice(0,70));case`Glob`:return`Glob ${n(t.pattern)}`;case`Grep`:return`Grep "${n(t.pattern)}" in ${n(t.path??`.`)}`;case`WebFetch`:return`Fetch ${n(t.url)}`;case`Agent`:return n(t.description??t.task??`Subagent`);case`Skill`:return n(t.skill??`Skill`);default:{let r=e.match(/^mcp__[^_]+__(.+)$/),i=r?r[1]:e,a=Object.keys(t)[0];return a?`${i}: ${n(t[a]).slice(0,50)}`:i}}}function rE({name:e,size:t=12}){let n=e.match(/^mcp__[^_]+__(.+)$/);switch(n?n[1]:e){case`Read`:return(0,z.jsx)(p,{size:t});case`Write`:return(0,z.jsx)(Me,{size:t});case`Edit`:return(0,z.jsx)(je,{size:t});case`Bash`:return(0,z.jsx)(nt,{size:t});case`Glob`:case`Grep`:return(0,z.jsx)(le,{size:t});case`WebFetch`:return(0,z.jsx)(O,{size:t});case`Agent`:return(0,z.jsx)(ve,{size:t});case`Skill`:return(0,z.jsx)(Qe,{size:t});case`memory-search`:return(0,z.jsx)(Ee,{size:t});case`memory-write`:return(0,z.jsx)(Te,{size:t});case`task-list`:return(0,z.jsx)(xe,{size:t});case`task-create`:return(0,z.jsx)(Se,{size:t});case`contact-create`:return(0,z.jsx)(rt,{size:t});default:return(0,z.jsx)(it,{size:t})}}function iE(e){let t=new Map,n=new Map;return e.forEach((e,r)=>{if(e.type===`tool_use`){let t=n.get(e.name)??[];t.push(r),n.set(e.name,t)}else if(e.type===`tool_result`){let i=n.get(e.name);i?.length&&t.set(i.shift(),r)}}),t}function aE(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function oE(e){let t=``;switch(e.type){case`text`:case`thinking`:t=e.content??``;break;case`tool_use`:t=JSON.stringify(e.input??{});break;case`tool_result`:t=e.output??``;break;case`subagent_start`:t=e.task??``;break;case`subagent_end`:t=e.result??``;break;case`component`:t=JSON.stringify(e.data??{});break;case`status`:t=e.message??``;break;default:return 0}return Math.ceil(t.length/4)}function sE(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;return n>0?`${t}m ${n}s`:`${t}m`}function cE(e){if(e<60)return`${e.toFixed(1)}s`;let t=Math.floor(e/60),n=e%60;return n>=.1?`${t}m ${Math.floor(n)}s`:`${t}m`}function lE({icon:e,isPending:t,isError:n,doneClass:r=`tl-done`,summary:i,detail:a,tokens:o,elapsed:s,isLast:c,expanded:l,onToggle:u,selectCheck:f}){let p=!!a;return(0,z.jsxs)(`div`,{className:`tl-step`,children:[f,(0,z.jsxs)(`div`,{className:`tl-col`,children:[(0,z.jsx)(`div`,{className:`tl-icon${t?` tl-pending`:n?` tl-error`:` ${r}`}`,children:e}),!c&&(0,z.jsx)(`div`,{className:`tl-line tl-line-grow`})]}),(0,z.jsxs)(`div`,{className:`tl-body`,children:[(0,z.jsxs)(`div`,{className:`tl-row`,onClick:p?()=>{window.getSelection()?.toString()||u()}:void 0,style:{cursor:p?`pointer`:`default`},children:[(0,z.jsx)(`span`,{className:`tl-summary`,children:i}),o>0&&(0,z.jsxs)(`span`,{className:`tl-step-tokens`,children:[(0,z.jsx)(ot,{size:9}),aE(o)]}),(0,z.jsx)(`span`,{className:`tl-step-elapsed`,children:cE(s)}),p&&(0,z.jsx)(`span`,{className:`tl-chevron`,children:l?(0,z.jsx)(d,{size:10}):(0,z.jsx)(ye,{size:10})})]}),p&&l&&(0,z.jsx)(`pre`,{className:`tl-detail`,children:a})]})]})}function uE({events:e,isStreaming:t,elapsedSeconds:n,streamStartMs:r,expandAll:i,onCompactNow:a,isCompacting:o,sessionCompacted:s,onComponentSubmit:c,submittedComponents:l,timestamp:u,selectionMode:p,selectedItems:m,onToggleItem:h,sessionKey:g}){let[_,v]=(0,R.useState)(new Set),[y,b]=(0,R.useState)(!t),x=(0,R.useRef)(t);(0,R.useEffect)(()=>{x.current&&!t&&b(!0),!x.current&&t&&b(!1),x.current=t},[t]);let S=(0,R.useRef)(new Map),w=(0,R.useRef)(0),[D,O]=(0,R.useState)(Date.now());(0,R.useEffect)(()=>{let t=Date.now();for(let n=w.current;n<e.length;n++)S.current.has(n)||S.current.set(n,t);w.current=e.length},[e]),(0,R.useEffect)(()=>{if(!t)return;let e=setInterval(()=>O(Date.now()),100);return()=>clearInterval(e)},[t]);let k=e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},A=(e,t)=>{let n=e===oe[0]?.i&&r?r:S.current.get(e)??D,i=t===void 0?D:S.current.get(t)??D;return Math.max(0,(i-n)/1e3)},j=iE(e),M=new Set(j.values()),N=e.map((e,t)=>({e,i:t})).filter(({e})=>e.type===`text`),P=new Set(t?[]:e.map((e,t)=>({e,i:t})).filter(({e})=>e.type===`component`).map(({i:e})=>e)),ee=e=>e.type===`component`&&[`browser-viewer`,`qr-code`].includes(e.name);function te(e){if(!p||t||!u)return null;let n=`${u}_${e}`;return(0,z.jsx)(`div`,{className:`tl-select-check`,onClick:e=>e.stopPropagation(),children:(0,z.jsx)(T,{checked:m?.has(n)??!1,onChange:()=>h?.(n)})})}let F=e.findLast(e=>e.type===`usage`),re=e.findLast(e=>e.type===`history_usage`),ie=e.findLast(e=>e.type===`status`),ae=e.some(e=>e.type===`subagent_start`),oe=e.map((e,t)=>({e,i:t})).filter(({e,i:n})=>e.type!==`text`&&e.type!==`usage`&&e.type!==`rate_limit`&&e.type!==`history_usage`&&e.type!==`status`&&e.type!==`done`&&e.type!==`subagent_progress`&&!M.has(n)&&!P.has(n)&&!(t&&e.type===`component`&&!ee(e))&&!(e.type===`tool_use`&&e.name===`Agent`&&ae)),se=new Map;for(let e=0;e<oe.length-1;e++)se.set(oe[e].i,oe[e+1].i);let ce=(()=>{let e=[],t=!1,n=0;for(let{e:r}of oe)if(n+=oE(r),r.type===`thinking`)t=!0;else if(r.type===`tool_use`){let t=r.name;e.includes(t)||e.push(t)}let r=[`${oe.length} step${oe.length===1?``:`s`}`];if(e.length>0){let t=e.slice(0,3),n=e.length-t.length;r.push(t.join(`, `)+(n>0?` +${n}`:``))}return{text:r.join(` · `),hasThinking:t,tokenSum:n}})(),le=F?.peak_request_pct==null?F?.context_window?Math.round((F.input_tokens+F.cache_creation_tokens+F.cache_read_tokens)/F.context_window*100):null:Math.round(F.peak_request_pct*100),ue=oe.length>0,de=N.length>0,fe=new Set(oe.map(e=>e.i)),pe=new Set(N.map(e=>e.i)),he=[];for(let t=0;t<e.length;t++){let n=e[t],r=null;if(fe.has(t)?r=`steps`:pe.has(t)&&(r=`text`),!r)continue;let i=he[he.length-1];i&&i.role===r?i.items.push({e:n,i:t}):he.push({role:r,items:[{e:n,i:t}]})}let ge=N.length>0?N[N.length-1].i:-1;function _e(n,r,a,o){let s=o===a.length-1;if(n.type===`thinking`){let e=i===void 0?!_.has(r):i,t=se.get(r);return(0,z.jsxs)(`div`,{className:`tl-step`,children:[te(r),(0,z.jsxs)(`div`,{className:`tl-col`,children:[(0,z.jsx)(`div`,{className:`tl-icon tl-dim`,children:(0,z.jsx)(Re,{size:11})}),!s&&(0,z.jsx)(`div`,{className:`tl-line tl-line-grow`})]}),(0,z.jsx)(`div`,{className:`tl-body`,children:(0,z.jsxs)(`div`,{className:`tl-row tl-row-top`,onClick:()=>{window.getSelection()?.toString()||k(r)},style:{cursor:`pointer`},children:[(0,z.jsx)(`div`,{className:`tl-thinking-col`,children:e?(0,z.jsx)(`div`,{className:`tl-thinking-body`,children:n.content}):(0,z.jsxs)(`span`,{className:`tl-summary tl-thinking-label`,children:[n.content.slice(0,80),n.content.length>80?`…`:``]})}),oE(n)>0&&(0,z.jsxs)(`span`,{className:`tl-step-tokens`,children:[(0,z.jsx)(ot,{size:9}),aE(oE(n))]}),(0,z.jsx)(`span`,{className:`tl-step-elapsed`,children:cE(A(r,t))}),(0,z.jsx)(`span`,{className:`tl-chevron`,children:e?(0,z.jsx)(d,{size:10}):(0,z.jsx)(ye,{size:10})})]})})]},r)}if(n.type===`status`)return(0,z.jsx)(`div`,{className:`tl-status`,children:n.message},r);if(n.type===`tool_use`){let t=j.get(r),a=t===void 0?void 0:e[t],o=a===void 0,c=a?.type===`tool_result`&&!!a.error,l=o?(0,z.jsx)(Ve,{size:11,className:`tl-spinner`}):c?(0,z.jsx)(at,{size:11}):(0,z.jsx)(rE,{name:n.name,size:11}),u=n,d=a?.type===`tool_result`?`Input:
343
+ `).filter(e=>e.trim());if(n.length<=1&&!n[0]?.includes(` `)&&!n[0]?.includes(`,`))return;e.preventDefault();let r=n.slice(0,Zw).map(eT);n.length>Zw&&console.warn(`Grid editor: paste truncated from ${n.length} to ${Zw} rows`);let{row:i,col:a}=h;m(e=>{let t=e.map(e=>[...e]);for(let e=0;e<r.length;e++){let n=i+e;for(;n>=t.length;)t.push(Array(d.length).fill(``));for(let i=0;i<r[e].length;i++){let o=a+i;o<d.length&&(t[n][o]=r[e][i])}}return t}),A()},[h,d.length,A]),ie=(0,R.useCallback)(()=>{let e=tT(d,p),t=new Blob([e],{type:`text/csv;charset=utf-8;`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${u.replace(/[^a-zA-Z0-9]/g,`_`)}.csv`,r.click(),URL.revokeObjectURL(n)},[d,p,u]),ae=(0,R.useCallback)(()=>{zw({title:u,content:Bw(d,p),brandName:c,brandLogo:l})},[u,d,p,c,l]),oe=(0,R.useCallback)((e,t)=>{t.preventDefault(),C.current={colIndex:e,startX:t.clientX,startWidth:x[e]};let n=null,r=e=>{C.current&&(n&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{if(!C.current)return;let t=e.clientX-C.current.startX,n=Math.max(Qw,C.current.startWidth+t);S(e=>{let t=[...e];return t[C.current.colIndex]=n,t})}))},i=()=>{C.current=null,n&&cancelAnimationFrame(n),window.removeEventListener(`mousemove`,r),window.removeEventListener(`mouseup`,i)};window.addEventListener(`mousemove`,r),window.addEventListener(`mouseup`,i)},[x]),se=(0,R.useCallback)(()=>{h&&M.openCommentInput()},[h,M]),ce=(0,R.useCallback)(()=>{if(!h)return;let e=p[h.row]?.[h.col]??``;M.submitComment(e,{row:h.row,column:h.col})},[h,p,M]);if(n)return null;let le=typeof window<`u`&&window.innerWidth<640,ue=typeof BroadcastChannel<`u`,de=(0,z.jsxs)(`div`,{className:`editor-base__actions`,children:[w===`saving`&&(0,z.jsx)(`span`,{className:`editor-base__status`,children:`Saving...`}),w===`saved`&&(0,z.jsx)(`span`,{className:`editor-base__status`,children:`Saved`}),M.pendingComments.length>0&&(0,z.jsxs)(E,{variant:`ghost`,size:`sm`,onClick:M.sendComments,children:[`Send `,M.pendingComments.length,` comment`,M.pendingComments.length>1?`s`:``]}),h&&(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ue,onClick:se,"aria-label":`Comment on cell`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:fe,onClick:ie,"aria-label":`Download CSV`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:ke,onClick:ae,"aria-label":`Export PDF`}),!le&&ue&&!j.poppedOut&&(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Oe,onClick:j.handlePopout,"aria-label":`Pop out`}),!j.fullscreen&&(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:He,onClick:j.handleFullscreen,"aria-label":`Full screen`}),j.fullscreen&&(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ge,onClick:j.exitFullscreen,"aria-label":`Exit full screen`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ke,onClick:j.handleMinimise,"aria-label":`Minimise`})]}),pe=(0,z.jsxs)(`div`,{className:`grid-editor__table-wrap`,onPaste:re,children:[M.showCommentInput?(0,z.jsxs)(`div`,{className:`grid-editor__comment-popover`,children:[(0,z.jsx)(`input`,{ref:M.commentInputRef,type:`text`,value:M.commentText,onChange:e=>M.setCommentText(e.target.value),onKeyDown:e=>{e.key===`Enter`&&ce(),e.key===`Escape`&&M.cancelComment()},placeholder:`Add a comment...`,className:`doc-editor__comment-input`,"aria-label":`Add comment on cell`}),(0,z.jsxs)(`div`,{className:`doc-editor__comment-actions`,children:[(0,z.jsx)(E,{variant:`primary`,size:`sm`,onClick:ce,disabled:!M.commentText.trim(),children:`Add`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:at,onClick:M.cancelComment,"aria-label":`Cancel`})]})]}):null,(0,z.jsxs)(`table`,{className:`grid-editor__table`,role:`grid`,"aria-label":u,children:[(0,z.jsx)(`thead`,{children:(0,z.jsxs)(`tr`,{children:[(0,z.jsx)(`th`,{className:`grid-editor__row-header`}),d.map((e,t)=>(0,z.jsxs)(`th`,{className:`grid-editor__col-header`,style:{width:x[t]},children:[e,(0,z.jsx)(`div`,{className:`grid-editor__resize-handle`,onMouseDown:e=>oe(t,e),role:`separator`,"aria-orientation":`vertical`})]},t))]})}),(0,z.jsx)(`tbody`,{children:p.map((e,t)=>(0,z.jsxs)(`tr`,{children:[(0,z.jsxs)(`td`,{className:`grid-editor__row-header`,children:[(0,z.jsx)(`span`,{className:`grid-editor__row-num`,children:t+1}),p.length>1&&(0,z.jsx)(`button`,{className:`grid-editor__row-delete`,onClick:()=>ne(t),"aria-label":`Delete row ${t+1}`,children:(0,z.jsx)(v,{size:12})})]}),e.map((e,n)=>{let r=h?.row===t&&h?.col===n;return(0,z.jsx)(`td`,{className:`grid-editor__cell ${r?`grid-editor__cell--active`:``}`,onClick:()=>!r&&N(t,n),role:`gridcell`,"aria-selected":r,style:{width:x[n]},children:r?(0,z.jsx)(`input`,{ref:b,type:`text`,className:`grid-editor__cell-input`,value:_,onChange:e=>y(e.target.value),onKeyDown:te,onBlur:P,"aria-label":`${d[n]} row ${t+1}`}):(0,z.jsx)(`span`,{className:`grid-editor__cell-text`,children:e})},n)})]},t))})]}),(0,z.jsxs)(`button`,{className:`grid-editor__add-row`,onClick:F,"aria-label":`Add row`,children:[(0,z.jsx)(be,{size:14}),(0,z.jsx)(`span`,{children:`Add row`})]})]});return j.fullscreen?(0,z.jsxs)(`div`,{className:`editor-base-fullscreen`,children:[(0,z.jsxs)(`div`,{className:`editor-base-fullscreen__bar`,...j.dragBarProps,children:[(0,z.jsx)(`span`,{className:`editor-base-fullscreen__title`,children:u}),de]}),(0,z.jsx)(`div`,{className:`editor-base-fullscreen__body`,style:{maxWidth:`none`},children:pe})]}):j.poppedOut?(0,z.jsx)(`div`,{className:`editor-base editor-base--popout`,children:(0,z.jsxs)(`div`,{className:`editor-base__bar`,...j.dragBarProps,children:[(0,z.jsx)(`span`,{className:`editor-base__title`,children:u}),(0,z.jsxs)(`div`,{className:`editor-base__actions`,children:[(0,z.jsx)(`span`,{className:`editor-base__status`,children:`Popped out`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:$e,onClick:j.handlePopIn,"aria-label":`Pop back in`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ke,onClick:j.handleMinimise,"aria-label":`Close`})]})]})}):j.minimised?(0,z.jsx)(`div`,{className:`editor-base editor-base--minimised`,onClick:j.handleExpand,role:`button`,tabIndex:0,onKeyDown:e=>e.key===`Enter`&&j.handleExpand(),children:(0,z.jsxs)(`div`,{className:`editor-base__bar`,...j.dragBarProps,children:[(0,z.jsx)(`span`,{className:`editor-base__title`,children:u}),(0,z.jsxs)(`div`,{className:`editor-base__actions`,onClick:e=>e.stopPropagation(),children:[!le&&ue&&(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Oe,onClick:j.handlePopout,"aria-label":`Pop out`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:He,onClick:j.handleFullscreen,"aria-label":`Full screen`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ye,onClick:j.handleExpand,"aria-label":`Expand`})]})]})}):(0,z.jsxs)(`div`,{className:`editor-base grid-editor`,children:[(0,z.jsxs)(`div`,{className:`editor-base__bar`,...j.dragBarProps,children:[(0,z.jsx)(`span`,{className:`editor-base__title`,children:u}),de]}),(0,z.jsx)(`div`,{className:`grid-editor__body`,children:pe})]})}var iT=Object.defineProperty,aT=Object.getOwnPropertySymbols,oT=Object.prototype.hasOwnProperty,sT=Object.prototype.propertyIsEnumerable,cT=(e,t,n)=>t in e?iT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,lT=(e,t)=>{for(var n in t||={})oT.call(t,n)&&cT(e,n,t[n]);if(aT)for(var n of aT(t))sT.call(t,n)&&cT(e,n,t[n]);return e},uT=(e,t)=>{var n={};for(var r in e)oT.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&aT)for(var r of aT(e))t.indexOf(r)<0&&sT.call(e,r)&&(n[r]=e[r]);return n},dT;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+(t?1:0),n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(dT||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(dT||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(dT||={});var fT=dT,pT={L:fT.QrCode.Ecc.LOW,M:fT.QrCode.Ecc.MEDIUM,Q:fT.QrCode.Ecc.QUARTILE,H:fT.QrCode.Ecc.HIGH},mT=128,hT=`L`,gT=`#FFFFFF`,_T=`#000000`,vT=!1,yT=1,bT=4,xT=0,ST=.1;function CT(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function wT(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function TT(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*ST),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function ET(e,t){return t==null?e?bT:xT:Math.max(Math.floor(t),0)}function DT({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=R.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...fT.QrSegment.makeSegments(t)),e),[]);return fT.QrCode.encodeSegments(r,pT[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=R.useMemo(()=>{let e=c.getModules(),t=ET(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:TT(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var OT=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),kT=R.forwardRef(function(e,t){let n=e,{value:r,size:i=mT,level:a=hT,bgColor:o=gT,fgColor:s=_T,includeMargin:c=vT,minVersion:l=yT,boostLevel:u,marginSize:d,imageSettings:f}=n,p=uT(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=uT(p,[`style`]),g=f?.src,_=R.useRef(null),v=R.useRef(null),y=R.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=R.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=DT({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});R.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=wT(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,OT?t.fill(new Path2D(CT(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),R.useEffect(()=>{x(!1)},[g]);let E=lT({height:i,width:i},m),D=null;return g!=null&&(D=R.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),R.createElement(R.Fragment,null,R.createElement(`canvas`,lT({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});kT.displayName=`QRCodeCanvas`;var AT=R.forwardRef(function(e,t){let n=e,{value:r,size:i=mT,level:a=hT,bgColor:o=gT,fgColor:s=_T,includeMargin:c=vT,minVersion:l=yT,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=uT(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=DT({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=wT(g,v.excavation)),b=R.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=CT(y,h);return R.createElement(`svg`,lT({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&R.createElement(`title`,null,d),R.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),R.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});AT.displayName=`QRCodeSVG`;function jT({data:e,onSubmit:t,submitted:n}){let r=e,i=(0,R.useRef)(!1),a=r?.value?.trim()??``;return(0,R.useEffect)(()=>{a&&!n&&!i.current&&(i.current=!0,t(``))},[a,n,t]),a?(0,z.jsxs)(`div`,{className:`qr-code`,children:[(0,z.jsx)(`div`,{className:`qr-code__canvas`,children:(0,z.jsx)(AT,{value:a,size:240,level:`M`,bgColor:`#ffffff`,fgColor:`#000000`})}),r?.label&&(0,z.jsx)(`div`,{className:`qr-code__label`,children:r.label})]}):(0,z.jsx)(`div`,{className:`qr-code qr-code--error`,children:`No QR data provided. Try again or ask the agent to generate a new QR code.`})}function MT(e){return e===0?`0 B`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function NT(e){return e.startsWith(`image/`)?(0,z.jsx)(Ae,{size:18}):e===`application/pdf`?(0,z.jsx)(p,{size:18}):e===`text/calendar`?(0,z.jsx)(I,{size:18}):e.startsWith(`text/`)?(0,z.jsx)(m,{size:18}):(0,z.jsx)(ue,{size:18})}function PT({data:e,onSubmit:t,submitted:n,sessionKey:r}){let i=e,a=(0,R.useRef)(!1),o=!!(i?.attachmentId&&i?.filename);(0,R.useEffect)(()=>{o&&!n&&!a.current&&(a.current=!0,t(JSON.stringify({_lifecycle:!0,component:`file-attachment`,event:`rendered`,attachmentId:i.attachmentId,filename:i.filename})))},[o,n,t,i]);let s=(0,R.useCallback)(()=>{if(!i?.attachmentId||!r)return;let e=`/api/admin/attachment/${i.attachmentId}?session_key=${encodeURIComponent(r)}`,t=document.createElement(`a`);t.href=e,t.download=i.filename,t.click()},[i,r]);return o?(0,z.jsx)(A,{submitted:!1,submittedLabel:`Downloaded`,actions:[{label:`Download`,variant:`primary`,onClick:s,disabled:!r}],children:(0,z.jsxs)(`div`,{className:`file-attachment`,children:[(0,z.jsx)(`div`,{className:`file-attachment__icon`,children:NT(i.mimeType)}),(0,z.jsxs)(`div`,{className:`file-attachment__info`,children:[(0,z.jsx)(`div`,{className:`file-attachment__name`,title:i.filename,children:i.filename}),(0,z.jsxs)(`div`,{className:`file-attachment__meta`,children:[MT(i.sizeBytes),` · `,i.mimeType]})]}),(0,z.jsx)(`button`,{className:`file-attachment__download`,onClick:s,disabled:!r,title:`Download file`,children:(0,z.jsx)(fe,{size:16})})]})}):null}var FT=/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/,IT=/^[a-z0-9-]$/;function LT(e){return e?FT.test(e):!1}function RT(e){let t=e.toLowerCase(),n=``;for(let e of t)IT.test(e)&&(n+=e);for(;n.startsWith(`-`);)n=n.slice(1);return n}function zT(e){return[{key:`length`,label:`At least 8 characters`,met:e.length>=8},{key:`number`,label:`Contains a number`,met:/\d/.test(e)},{key:`special`,label:`Contains a special character`,met:/[^A-Za-z0-9]/.test(e)},{key:`whitespace`,label:`No spaces`,met:e.length>0&&!/\s/.test(e)}]}var BT=18e4,VT=4096;function HT(e){let t=new TextEncoder().encode(e);return t.length<=VT?e:`${new TextDecoder(`utf-8`,{fatal:!1}).decode(t.slice(0,VT))}\n… ${t.length-VT} bytes truncated (total ${t.length} bytes)`}function UT({data:e,onSubmit:t,submitted:n,sessionKey:r}){let i=e,[a,o]=(0,R.useState)({status:`loading`}),[s,c]=(0,R.useState)(``),[l,u]=(0,R.useState)(``),[d,f]=(0,R.useState)(``),[p,m]=(0,R.useState)(``),[h,g]=(0,R.useState)(``),[_,v]=(0,R.useState)(``),[y,b]=(0,R.useState)(!1),[x,S]=(0,R.useState)(!1),[C,w]=(0,R.useState)(!1),[T,E]=(0,R.useState)(null),D=(0,R.useRef)(null),O=(0,R.useCallback)(async()=>{if(!r){o({status:`error`,field:`session`,message:`No session key available — refresh the page.`});return}o({status:`loading`});try{let e=await(await fetch(`/api/admin/cloudflare/domains?session_key=${encodeURIComponent(r)}`,{method:`GET`,headers:{Accept:`application/json`}})).json();if(!e.ok){o({status:`error`,field:e.field,message:e.message,output:e.output,correlationId:e.correlationId,streamLogPath:e.streamLogPath});return}if(e.domains.length===0){o({status:`empty`});return}o({status:`populated`,domains:e.domains}),u(t=>t||e.domains[0]),m(t=>t||e.domains[0])}catch(e){o({status:`error`,field:`script`,message:e instanceof Error?e.message:`Network error loading domains.`})}},[r]);(0,R.useEffect)(()=>{O()},[O]),(0,R.useEffect)(()=>()=>{D.current&&clearTimeout(D.current)},[]);let k=a.status===`populated`?a.domains:[],j=e=>{n||x||(c(RT(e)),E(null))},M=e=>{n||x||(f(RT(e)),E(null))},N=LT(s)&&l.length>0,P=d!==``,ee=!P||LT(d)&&p.length>0,te=N?`${s.replace(/-+$/,``)}.${l}`:``,F=P&&ee?`${d.replace(/-+$/,``)}.${p}`:``,ne=!(F&&F===te),re=zT(_),ie=re.every(e=>e.met),ae=a.status===`populated`&&N&&ee&&ne&&ie&&!x,oe=s!==``&&!LT(s)?`Use lowercase letters, numbers, and hyphens. Start and end with a letter or number.`:null,se=P&&!LT(d)?`Use lowercase letters, numbers, and hyphens. Start and end with a letter or number.`:ne?null:`Public address must differ from the admin address.`,ce=T?.field===`admin`?T.message:null,le=T?.field===`public`?T.message:null,ue=T?.field===`password`?T.message:null,de=T?.field===`script`||T?.field===`request`?T.message:null,fe=()=>{w(!1),E(null),S(!1)},pe=async()=>{if(!ae)return;if(!r){E({field:`request`,message:`No session key available — refresh the page.`});return}S(!0),E(null),w(!1);let e=new AbortController;D.current=setTimeout(()=>{e.abort(),w(!0)},BT);let n={session_key:r,adminLabel:s.replace(/-+$/,``),adminDomain:l,password:_};P&&(n.publicLabel=d.replace(/-+$/,``),n.publicDomain=p),h&&(n.apex=h);try{let r=await fetch(`/api/admin/cloudflare/setup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n),signal:e.signal});D.current&&clearTimeout(D.current),D.current=null;let i=await r.json();if(!i.ok){E({field:i.field,message:i.message,output:i.output,correlationId:i.correlationId,streamLogPath:i.streamLogPath});let e=i.streamLogPath?`\n\nstream log: ${i.streamLogPath}`:``;t(i.output&&i.output.length>0?`Cloudflare setup failed: ${i.message}\n\n${i.output}${e}`:`Cloudflare setup failed: ${i.message}${e}`),S(!1);return}t(i.output)}catch(t){if(D.current&&clearTimeout(D.current),D.current=null,e.signal.aborted)return;E({field:`script`,message:t instanceof Error?t.message:`Network error — try again.`}),S(!1)}},me=(0,R.useMemo)(()=>s?`${s}.${l||`your-domain`}`:`your-name.${l||`your-domain`}`,[s,l]);if(a.status===`loading`)return(0,z.jsx)(A,{submitted:!1,actions:[],children:(0,z.jsxs)(`div`,{className:`form-input`,children:[i?.title&&(0,z.jsx)(`div`,{className:`form-input__title`,children:i.title}),(0,z.jsx)(`div`,{className:`form-input__desc`,children:`Reading the domains on your Cloudflare account…`})]})});if(a.status===`empty`)return(0,z.jsx)(A,{submitted:!1,actions:[{label:`Retry`,variant:`primary`,onClick:O}],children:(0,z.jsxs)(`div`,{className:`form-input`,children:[(0,z.jsx)(`div`,{className:`form-input__title`,children:`No domains on this Cloudflare account`}),(0,z.jsx)(`div`,{className:`form-input__desc`,children:`Add a domain in the Cloudflare dashboard first, then click Retry.`}),(0,z.jsxs)(`ol`,{className:`form-input__field-desc`,style:{margin:0,paddingLeft:20},children:[(0,z.jsxs)(`li`,{children:[`With the correct account active (top-left), click `,(0,z.jsx)(`strong`,{children:`Websites`}),` in the left-hand sidebar.`]}),(0,z.jsxs)(`li`,{children:[`Click the `,(0,z.jsx)(`strong`,{children:`Add a site`}),` button.`]}),(0,z.jsxs)(`li`,{children:[`Enter the bare domain (e.g. `,(0,z.jsx)(`code`,{children:`example.com`}),`) and click `,(0,z.jsx)(`strong`,{children:`Continue`}),`.`]}),(0,z.jsxs)(`li`,{children:[`Review Cloudflare's imported DNS records — preserve website (`,(0,z.jsx)(`code`,{children:`A`}),`), email (`,(0,z.jsx)(`code`,{children:`MX`}),`), and verification (`,(0,z.jsx)(`code`,{children:`TXT`}),`) entries.`]}),(0,z.jsx)(`li`,{children:`Copy Cloudflare's two nameservers and set them on your domain registrar.`}),(0,z.jsxs)(`li`,{children:[`Return to Cloudflare and click `,(0,z.jsx)(`strong`,{children:`Check nameservers`}),`. Wait for the zone to show `,(0,z.jsx)(`strong`,{children:`Active`}),`.`]})]})]})});if(a.status===`error`){let e=a.field===`dashboard`,t=e?`Not signed into Cloudflare on this device`:`Could not read domains from Cloudflare`,n=e?`Sign in again at the Cloudflare dashboard in the VNC browser, then click Retry. If the VNC browser is not open, ask me to run vnc.sh restart.`:a.message;return(0,z.jsx)(A,{submitted:!1,actions:[{label:`Retry`,variant:`primary`,onClick:O}],children:(0,z.jsxs)(`div`,{className:`form-input`,children:[(0,z.jsx)(`div`,{className:`form-input__title`,children:t}),(0,z.jsx)(`div`,{className:`form-input__desc`,children:n}),a.output&&a.output.length>0&&(0,z.jsx)(`pre`,{style:{marginTop:8,padding:8,maxHeight:280,overflow:`auto`,fontFamily:`var(--font-mono, ui-monospace, monospace)`,fontSize:12,lineHeight:1.4,whiteSpace:`pre-wrap`,wordBreak:`break-word`,background:`var(--surface-2, rgba(0,0,0,0.04))`,borderRadius:4},children:HT(a.output)}),(a.correlationId||a.streamLogPath)&&(0,z.jsxs)(`div`,{style:{marginTop:8,fontFamily:`var(--font-mono, ui-monospace, monospace)`,fontSize:11,color:`var(--text-secondary)`,wordBreak:`break-all`},children:[a.correlationId&&(0,z.jsxs)(`div`,{children:[`conversationId: `,a.correlationId]}),a.streamLogPath&&(0,z.jsxs)(`div`,{children:[`stream log: `,a.streamLogPath]})]})]})})}return C?(0,z.jsx)(A,{submitted:!1,actions:[{label:`Reset form`,variant:`ghost`,onClick:fe}],children:(0,z.jsxs)(`div`,{className:`form-input`,children:[(0,z.jsx)(`div`,{className:`form-input__title`,children:`Setup is taking longer than expected`}),(0,z.jsx)(`div`,{className:`form-input__desc`,children:`The request is still running on the device — check the chat for live progress. Do not resubmit. If the script fails, the error will appear in chat and you can retry from there.`})]})}):(0,z.jsx)(A,{submitted:n,submittedLabel:`Submitting…`,actions:[{label:x?`Setting up…`:i?.submitLabel??`Set up Cloudflare`,variant:`primary`,disabled:!ae,onClick:pe}],children:(0,z.jsxs)(`div`,{className:`form-input`,children:[i?.title&&(0,z.jsx)(`div`,{className:`form-input__title`,children:i.title}),i?.description&&(0,z.jsx)(`div`,{className:`form-input__desc`,children:i.description}),(0,z.jsxs)(`div`,{className:`form-input__fields`,children:[(0,z.jsxs)(`div`,{className:`form-input__field`,children:[(0,z.jsxs)(`label`,{className:`form-input__label`,htmlFor:`cf-admin-label`,children:[`Admin address`,(0,z.jsx)(`span`,{className:`form-input__required`,children:`*`})]}),(0,z.jsxs)(`div`,{className:`tunnel-route__row`,children:[(0,z.jsx)(`input`,{id:`cf-admin-label`,className:`form-input__input tunnel-route__input`,type:`text`,autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,placeholder:`your-name`,value:s,onChange:e=>j(e.target.value),disabled:n||x}),(0,z.jsx)(WT,{id:`cf-admin-domain`,value:l,options:k,onChange:u,disabled:n||x})]}),(0,z.jsx)(`div`,{className:`form-input__field-desc`,children:`Where you access your platform remotely, via your main domain.`}),(0,z.jsxs)(`div`,{className:`form-input__field-desc`,children:[`Preview: `,(0,z.jsx)(`span`,{className:`tunnel-route__preview`,children:me})]}),(ce||oe)&&(0,z.jsx)(`div`,{className:`tunnel-route__error`,children:ce??oe})]}),(0,z.jsxs)(`div`,{className:`form-input__field`,children:[(0,z.jsxs)(`label`,{className:`form-input__label`,htmlFor:`cf-public-label`,children:[`Public address`,(0,z.jsx)(`span`,{className:`tunnel-route__optional`,children:`Optional`})]}),(0,z.jsxs)(`div`,{className:`tunnel-route__row`,children:[(0,z.jsx)(`input`,{id:`cf-public-label`,className:`form-input__input tunnel-route__input`,type:`text`,autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,placeholder:`leave empty to skip`,value:d,onChange:e=>M(e.target.value),disabled:n||x}),(0,z.jsx)(WT,{id:`cf-public-domain`,value:p,options:k,onChange:m,disabled:n||x||!P})]}),(0,z.jsx)(`div`,{className:`form-input__field-desc`,children:`Where visitors engage with your public agents, via your main domain. Leave empty for admin-only access.`}),(le||se)&&(0,z.jsx)(`div`,{className:`tunnel-route__error`,children:le??se})]}),(0,z.jsxs)(`div`,{className:`form-input__field`,children:[(0,z.jsxs)(`label`,{className:`form-input__label`,htmlFor:`cf-apex`,children:[`Proxy apex`,(0,z.jsx)(`span`,{className:`tunnel-route__optional`,children:`Optional`})]}),(0,z.jsxs)(`select`,{id:`cf-apex`,className:`form-input__input`,value:h,onChange:e=>g(e.target.value),disabled:n||x,children:[(0,z.jsx)(`option`,{value:``,children:`None`}),k.map(e=>(0,z.jsx)(`option`,{value:e,children:e},e))]}),(0,z.jsx)(`div`,{className:`form-input__field-desc`,children:`Alternative domain for public agent visitors.`})]}),(0,z.jsxs)(`div`,{className:`form-input__field`,children:[(0,z.jsxs)(`label`,{className:`form-input__label`,htmlFor:`cf-password`,children:[`Admin password`,(0,z.jsx)(`span`,{className:`form-input__required`,children:`*`})]}),(0,z.jsxs)(`div`,{className:`tunnel-route__row`,children:[(0,z.jsx)(`input`,{id:`cf-password`,className:`form-input__input tunnel-route__input`,type:y?`text`:`password`,autoCapitalize:`none`,autoComplete:`new-password`,autoCorrect:`off`,spellCheck:!1,value:_,onChange:e=>{v(e.target.value),E(null)},disabled:n||x}),(0,z.jsx)(`button`,{type:`button`,className:`tunnel-route__suffix`,onClick:()=>b(e=>!e),disabled:n||x,style:{cursor:`pointer`,border:`none`,background:`inherit`},"aria-label":y?`Hide password`:`Show password`,children:y?`Hide`:`Show`})]}),(0,z.jsx)(`ul`,{className:`form-input__field-desc`,style:{margin:0,paddingLeft:16},children:re.map(e=>(0,z.jsxs)(`li`,{style:{color:e.met?`var(--text)`:`var(--text-secondary)`},children:[e.met?`✓`:`○`,` `,e.label]},e.key))}),ue&&(0,z.jsx)(`div`,{className:`tunnel-route__error`,children:ue})]}),de&&(0,z.jsxs)(`div`,{className:`tunnel-route__error`,role:`alert`,children:[(0,z.jsx)(`div`,{children:de}),T?.output&&T.output.length>0&&(0,z.jsx)(`pre`,{style:{marginTop:8,padding:8,maxHeight:280,overflow:`auto`,fontFamily:`var(--font-mono, ui-monospace, monospace)`,fontSize:12,lineHeight:1.4,whiteSpace:`pre-wrap`,wordBreak:`break-word`,background:`var(--surface-2, rgba(0,0,0,0.04))`,borderRadius:4},children:HT(T.output)}),(T?.correlationId||T?.streamLogPath)&&(0,z.jsxs)(`div`,{style:{marginTop:8,fontFamily:`var(--font-mono, ui-monospace, monospace)`,fontSize:11,color:`var(--text-secondary)`,wordBreak:`break-all`},children:[T.correlationId&&(0,z.jsxs)(`div`,{children:[`conversationId: `,T.correlationId]}),T.streamLogPath&&(0,z.jsxs)(`div`,{children:[`stream log: `,T.streamLogPath]})]})]})]})]})})}function WT({id:e,value:t,options:n,onChange:r,disabled:i}){return(0,z.jsx)(`select`,{id:e,className:`tunnel-route__suffix`,value:t,onChange:e=>r(e.target.value),disabled:i,style:{cursor:i?`default`:`pointer`,border:`none`},children:n.map(e=>(0,z.jsxs)(`option`,{value:e,children:[`.`,e]},e))})}var GT={"single-select":S,"multi-select":te,confirm:Nt,"info-card":Pt,"action-list":Ft,form:It,progress:Rt,"browser-viewer":Bt,"document-editor":Pw,"rich-content-editor":Xw,"grid-editor":rT,"qr-code":jT,"file-attachment":PT,"action-buttons":N,"cloudflare-setup-form":UT,"output-style":S,"thinking-view":S,"plugin-selector":te};function KT({name:e,data:t,onSubmit:n,submitted:r,isStreaming:i,sessionKey:a}){let o=GT[e];return o?(0,z.jsx)(o,{data:t,onSubmit:n,submitted:r,isStreaming:i,sessionKey:a}):(console.warn(`[ComponentRenderer] Unknown component: "${e}". Registered: ${Object.keys(GT).join(`, `)}`),(0,z.jsx)(`div`,{className:`component-card component-card--error`,children:(0,z.jsxs)(`p`,{style:{fontFamily:`var(--font-body)`,fontSize:12,color:`var(--text-secondary)`},children:[`Component “`,e,`” is not available. This may require a platform update.`]})}))}var qT=/\b(?:fail|error|unable|could not|cannot|CAPTCHA|SIGN_IN_REQUIRED)\b/i;function JT(e){let t=new Date(e),n=new Date,r=String(t.getHours()).padStart(2,`0`),i=String(t.getMinutes()).padStart(2,`0`);return t.toDateString()===n.toDateString()?`${r}:${i}`:`${String(t.getDate()).padStart(2,`0`)}-${String(t.getMonth()+1).padStart(2,`0`)}-${t.getFullYear()} ${r}:${i}`}var YT=[tt,Qe,he,Ye,De];function XT({size:e=13}){let[t,n]=(0,R.useState)(0);(0,R.useEffect)(()=>{let e=setInterval(()=>n(e=>(e+1)%8),300);return()=>clearInterval(e)},[]);let r=t<=4?t:8-t,i=YT[r];return(0,z.jsx)(i,{size:e,className:`star-loader star-frame-${r}`})}var ZT=[`Thinking`,`Reasoning`,`Analyzing`,`Considering`,`Reflecting`,`Evaluating`,`Weighing`,`Synthesizing`,`Processing`,`Exploring`,`Examining`,`Assessing`,`Reviewing`,`Contemplating`,`Deliberating`],QT=60,$T=1500;function eE(){let e=(0,R.useRef)(-1),t=(0,R.useRef)(void 0),[n,r]=(0,R.useState)(()=>{let t=Math.floor(Math.random()*ZT.length);return e.current=t,ZT[t]+`…`});return(0,R.useEffect)(()=>{let n=!1;function i(){let t;do t=Math.floor(Math.random()*ZT.length);while(t===e.current&&ZT.length>1);return e.current=t,t}function a(){if(n)return;let e=ZT[i()]+`…`,o=0;function s(){n||(o++,r(e.slice(0,o)),o<e.length?t.current=setTimeout(s,QT):t.current=setTimeout(a,$T))}t.current=setTimeout(s,QT)}return t.current=setTimeout(a,$T),()=>{n=!0,clearTimeout(t.current)}},[]),(0,z.jsx)(`span`,{className:`tl-thinking-typewriter`,children:n})}function tE(e,t){let n=e=>String(e??``);switch(e){case`Read`:return`Read ${n(t.file_path??t.path)}`;case`Write`:return`Write ${n(t.file_path??t.path)}`;case`Edit`:return`Edit ${n(t.file_path??t.path)}`;case`Bash`:return n(t.description??String(t.command??``).slice(0,70));case`Glob`:return`Glob ${n(t.pattern)}`;case`Grep`:return`Grep "${n(t.pattern)}" in ${n(t.path??`.`)}`;case`WebFetch`:return`Fetch ${n(t.url)}`;case`Agent`:return n(t.description??t.task??`Subagent`);case`Skill`:return n(t.skill??`Skill`);default:{let r=e.match(/^mcp__[^_]+__(.+)$/),i=r?r[1]:e,a=Object.keys(t)[0];return a?`${i}: ${n(t[a]).slice(0,50)}`:i}}}function nE({name:e,size:t=12}){let n=e.match(/^mcp__[^_]+__(.+)$/);switch(n?n[1]:e){case`Read`:return(0,z.jsx)(p,{size:t});case`Write`:return(0,z.jsx)(Me,{size:t});case`Edit`:return(0,z.jsx)(je,{size:t});case`Bash`:return(0,z.jsx)(nt,{size:t});case`Glob`:case`Grep`:return(0,z.jsx)(le,{size:t});case`WebFetch`:return(0,z.jsx)(O,{size:t});case`Agent`:return(0,z.jsx)(ve,{size:t});case`Skill`:return(0,z.jsx)(Qe,{size:t});case`memory-search`:return(0,z.jsx)(Ee,{size:t});case`memory-write`:return(0,z.jsx)(Te,{size:t});case`task-list`:return(0,z.jsx)(xe,{size:t});case`task-create`:return(0,z.jsx)(Se,{size:t});case`contact-create`:return(0,z.jsx)(rt,{size:t});default:return(0,z.jsx)(it,{size:t})}}function rE(e){let t=new Map,n=new Map;return e.forEach((e,r)=>{if(e.type===`tool_use`){let t=n.get(e.name)??[];t.push(r),n.set(e.name,t)}else if(e.type===`tool_result`){let i=n.get(e.name);i?.length&&t.set(i.shift(),r)}}),t}function iE(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function aE(e){let t=``;switch(e.type){case`text`:case`thinking`:t=e.content??``;break;case`tool_use`:t=JSON.stringify(e.input??{});break;case`tool_result`:t=e.output??``;break;case`subagent_start`:t=e.task??``;break;case`subagent_end`:t=e.result??``;break;case`component`:t=JSON.stringify(e.data??{});break;case`status`:t=e.message??``;break;default:return 0}return Math.ceil(t.length/4)}function oE(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;return n>0?`${t}m ${n}s`:`${t}m`}function sE(e){if(e<60)return`${e.toFixed(1)}s`;let t=Math.floor(e/60),n=e%60;return n>=.1?`${t}m ${Math.floor(n)}s`:`${t}m`}function cE({icon:e,isPending:t,isError:n,doneClass:r=`tl-done`,summary:i,detail:a,tokens:o,elapsed:s,isLast:c,expanded:l,onToggle:u,selectCheck:f}){let p=!!a;return(0,z.jsxs)(`div`,{className:`tl-step`,children:[f,(0,z.jsxs)(`div`,{className:`tl-col`,children:[(0,z.jsx)(`div`,{className:`tl-icon${t?` tl-pending`:n?` tl-error`:` ${r}`}`,children:e}),!c&&(0,z.jsx)(`div`,{className:`tl-line tl-line-grow`})]}),(0,z.jsxs)(`div`,{className:`tl-body`,children:[(0,z.jsxs)(`div`,{className:`tl-row`,onClick:p?()=>{window.getSelection()?.toString()||u()}:void 0,style:{cursor:p?`pointer`:`default`},children:[(0,z.jsx)(`span`,{className:`tl-summary`,children:i}),o>0&&(0,z.jsxs)(`span`,{className:`tl-step-tokens`,children:[(0,z.jsx)(ot,{size:9}),iE(o)]}),(0,z.jsx)(`span`,{className:`tl-step-elapsed`,children:sE(s)}),p&&(0,z.jsx)(`span`,{className:`tl-chevron`,children:l?(0,z.jsx)(d,{size:10}):(0,z.jsx)(ye,{size:10})})]}),p&&l&&(0,z.jsx)(`pre`,{className:`tl-detail`,children:a})]})]})}function lE({events:e,isStreaming:t,elapsedSeconds:n,streamStartMs:r,expandAll:i,onCompactNow:a,isCompacting:o,sessionCompacted:s,onComponentSubmit:c,submittedComponents:l,timestamp:u,selectionMode:p,selectedItems:m,onToggleItem:h,sessionKey:g}){let[_,v]=(0,R.useState)(new Set),[y,b]=(0,R.useState)(!t),x=(0,R.useRef)(t);(0,R.useEffect)(()=>{x.current&&!t&&b(!0),!x.current&&t&&b(!1),x.current=t},[t]);let S=(0,R.useRef)(new Map),w=(0,R.useRef)(0),[D,O]=(0,R.useState)(Date.now());(0,R.useEffect)(()=>{let t=Date.now();for(let n=w.current;n<e.length;n++)S.current.has(n)||S.current.set(n,t);w.current=e.length},[e]),(0,R.useEffect)(()=>{if(!t)return;let e=setInterval(()=>O(Date.now()),100);return()=>clearInterval(e)},[t]);let k=e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},A=(e,t)=>{let n=e===oe[0]?.i&&r?r:S.current.get(e)??D,i=t===void 0?D:S.current.get(t)??D;return Math.max(0,(i-n)/1e3)},j=rE(e),M=new Set(j.values()),N=e.map((e,t)=>({e,i:t})).filter(({e})=>e.type===`text`),P=new Set(t?[]:e.map((e,t)=>({e,i:t})).filter(({e})=>e.type===`component`).map(({i:e})=>e)),ee=e=>e.type===`component`&&[`browser-viewer`,`qr-code`].includes(e.name);function te(e){if(!p||t||!u)return null;let n=`${u}_${e}`;return(0,z.jsx)(`div`,{className:`tl-select-check`,onClick:e=>e.stopPropagation(),children:(0,z.jsx)(T,{checked:m?.has(n)??!1,onChange:()=>h?.(n)})})}let F=e.findLast(e=>e.type===`usage`),re=e.findLast(e=>e.type===`history_usage`),ie=e.findLast(e=>e.type===`status`),ae=e.some(e=>e.type===`subagent_start`),oe=e.map((e,t)=>({e,i:t})).filter(({e,i:n})=>e.type!==`text`&&e.type!==`usage`&&e.type!==`rate_limit`&&e.type!==`history_usage`&&e.type!==`status`&&e.type!==`done`&&e.type!==`subagent_progress`&&!M.has(n)&&!P.has(n)&&!(t&&e.type===`component`&&!ee(e))&&!(e.type===`tool_use`&&e.name===`Agent`&&ae)),se=new Map;for(let e=0;e<oe.length-1;e++)se.set(oe[e].i,oe[e+1].i);let ce=(()=>{let e=[],t=!1,n=0;for(let{e:r}of oe)if(n+=aE(r),r.type===`thinking`)t=!0;else if(r.type===`tool_use`){let t=r.name;e.includes(t)||e.push(t)}let r=[`${oe.length} step${oe.length===1?``:`s`}`];if(e.length>0){let t=e.slice(0,3),n=e.length-t.length;r.push(t.join(`, `)+(n>0?` +${n}`:``))}return{text:r.join(` · `),hasThinking:t,tokenSum:n}})(),le=F?.peak_request_pct==null?F?.context_window?Math.round((F.input_tokens+F.cache_creation_tokens+F.cache_read_tokens)/F.context_window*100):null:Math.round(F.peak_request_pct*100),ue=oe.length>0,de=N.length>0,fe=new Set(oe.map(e=>e.i)),pe=new Set(N.map(e=>e.i)),he=[];for(let t=0;t<e.length;t++){let n=e[t],r=null;if(fe.has(t)?r=`steps`:pe.has(t)&&(r=`text`),!r)continue;let i=he[he.length-1];i&&i.role===r?i.items.push({e:n,i:t}):he.push({role:r,items:[{e:n,i:t}]})}let ge=N.length>0?N[N.length-1].i:-1;function _e(n,r,a,o){let s=o===a.length-1;if(n.type===`thinking`){let e=i===void 0?!_.has(r):i,t=se.get(r);return(0,z.jsxs)(`div`,{className:`tl-step`,children:[te(r),(0,z.jsxs)(`div`,{className:`tl-col`,children:[(0,z.jsx)(`div`,{className:`tl-icon tl-dim`,children:(0,z.jsx)(Re,{size:11})}),!s&&(0,z.jsx)(`div`,{className:`tl-line tl-line-grow`})]}),(0,z.jsx)(`div`,{className:`tl-body`,children:(0,z.jsxs)(`div`,{className:`tl-row tl-row-top`,onClick:()=>{window.getSelection()?.toString()||k(r)},style:{cursor:`pointer`},children:[(0,z.jsx)(`div`,{className:`tl-thinking-col`,children:e?(0,z.jsx)(`div`,{className:`tl-thinking-body`,children:n.content}):(0,z.jsxs)(`span`,{className:`tl-summary tl-thinking-label`,children:[n.content.slice(0,80),n.content.length>80?`…`:``]})}),aE(n)>0&&(0,z.jsxs)(`span`,{className:`tl-step-tokens`,children:[(0,z.jsx)(ot,{size:9}),iE(aE(n))]}),(0,z.jsx)(`span`,{className:`tl-step-elapsed`,children:sE(A(r,t))}),(0,z.jsx)(`span`,{className:`tl-chevron`,children:e?(0,z.jsx)(d,{size:10}):(0,z.jsx)(ye,{size:10})})]})})]},r)}if(n.type===`status`)return(0,z.jsx)(`div`,{className:`tl-status`,children:n.message},r);if(n.type===`tool_use`){let t=j.get(r),a=t===void 0?void 0:e[t],o=a===void 0,c=a?.type===`tool_result`&&!!a.error,l=o?(0,z.jsx)(Ve,{size:11,className:`tl-spinner`}):c?(0,z.jsx)(at,{size:11}):(0,z.jsx)(nE,{name:n.name,size:11}),u=n,d=a?.type===`tool_result`?`Input:
344
344
  ${JSON.stringify(u.input,null,2)}
345
345
 
346
346
  Result:
347
347
  ${a.output}`:`Input:
348
- ${JSON.stringify(u.input,null,2)}`,f=se.get(r),p=o?void 0:f??t;return(0,z.jsx)(lE,{icon:l,isPending:o,isError:c,doneClass:u.name===`Read`?`tl-done`:`tl-success`,summary:nE(u.name,u.input),detail:d,tokens:oE(n),elapsed:A(r,p),isLast:s,expanded:i===void 0?_.has(r):i,onToggle:()=>k(r),selectCheck:te(r)},r)}if(n.type===`subagent_start`){let t=n,a=e.some(e=>e.type===`subagent_end`&&e.name===t.name),o=a?e.findIndex(e=>e.type===`subagent_end`&&e.name===t.name):void 0,c=t.background===!0,l=t.task.slice(0,60)+(t.task.length>60?`…`:``),u=t.task;if(c&&!a){let n=[...e].reverse().find(e=>e.type===`subagent_progress`&&e.name===t.name);n?.last_tool_name&&(u=`${t.task}\nLast tool: ${n.last_tool_name} (${n.tool_uses??0} calls)`)}let d=a?e.find(e=>e.type===`subagent_end`&&e.name===t.name):void 0,f=a&&d?JT.test(d.result):!1;return(0,z.jsx)(lE,{icon:a?f?(0,z.jsx)(at,{size:11}):(0,z.jsx)(ve,{size:11}):(0,z.jsx)(Ve,{size:11,className:`tl-spinner`}),isPending:!a,isError:f,summary:c?`${t.name} (background) — ${l}`:`${t.name} — ${l}`,detail:c?u:t.task,tokens:oE(n),elapsed:A(r,o),isLast:s,expanded:i===void 0?_.has(r):i,onToggle:()=>k(r),selectCheck:te(r)},r)}if(n.type===`component`){let e=l?.has(`${u}_${r}`)??!1,i=n;return(0,z.jsxs)(`div`,{className:`tl-step`,children:[te(r),(0,z.jsxs)(`div`,{className:`tl-col`,children:[(0,z.jsx)(`div`,{className:`tl-icon ${e?`tl-done`:`tl-pending`}`,children:(0,z.jsx)(qe,{size:11})}),!s&&(0,z.jsx)(`div`,{className:`tl-line tl-line-grow`})]}),(0,z.jsx)(`div`,{className:`tl-body`,children:(0,z.jsx)(qT,{name:i.name,data:i.data,submitted:e,onSubmit:e=>c?.(r,e,i.name),isStreaming:t,sessionKey:g})})]},r)}if(n.type===`subagent_end`){let e=n,t=JT.test(e.result);return(0,z.jsx)(lE,{icon:t?(0,z.jsx)(at,{size:11}):(0,z.jsx)(f,{size:11}),isPending:!1,isError:t,summary:`${e.name} ${t?`failed`:`complete`}`,detail:e.result,tokens:oE(n),elapsed:A(r,se.get(r)),isLast:s,expanded:i===void 0?_.has(r):i,onToggle:()=>k(r),selectCheck:te(r)},r)}if(n.type===`script_stream`){let e=n,t=e.line.match(/https:\/\/dash\.cloudflare\.com\/argotunnel\?[^\s]+/)?.[0],i=t?JSON.stringify({url:t,intent:`Cloudflare tunnel authorization`}):void 0;return(0,z.jsxs)(`div`,{className:`tl-script-stream`,children:[(0,z.jsxs)(`div`,{className:`tl-script-stream-line`,children:[(0,z.jsxs)(`span`,{className:`tl-script-stream-source`,children:[`[`,e.source,`]`]}),(0,z.jsx)(`span`,{className:`tl-script-stream-content`,children:e.line})]}),i&&(0,z.jsx)(C,{source:i})]},r)}return null}return(0,z.jsxs)(`div`,{className:`admin-activity`,children:[ue&&!t&&i===void 0&&(0,z.jsx)(`div`,{className:`tl-steps`,children:(0,z.jsxs)(`div`,{className:`tl-step tl-summary-row`,onClick:()=>{window.getSelection()?.toString()||b(e=>!e)},children:[(0,z.jsx)(`div`,{className:`tl-col`,children:(0,z.jsx)(`div`,{className:`tl-icon tl-done`,children:ce.hasThinking?(0,z.jsx)(Re,{size:11}):(0,z.jsx)(f,{size:11})})}),(0,z.jsx)(`div`,{className:`tl-body`,children:(0,z.jsxs)(`div`,{className:`tl-row`,style:{cursor:`pointer`},children:[(0,z.jsx)(`span`,{className:`tl-summary`,children:ce.text}),ce.tokenSum>0&&(0,z.jsxs)(`span`,{className:`tl-step-tokens`,children:[(0,z.jsx)(ot,{size:9}),aE(ce.tokenSum)]}),(0,z.jsx)(`span`,{className:`tl-step-elapsed`,children:sE(n)}),(0,z.jsx)(`span`,{className:`tl-chevron`,children:y?(0,z.jsx)(ye,{size:10}):(0,z.jsx)(d,{size:10})})]})})]})}),he.map((e,n)=>e.role===`steps`?!t&&i===void 0&&y?null:(0,z.jsx)(`div`,{className:`tl-steps`,children:e.items.map(({e:t,i:n},r)=>_e(t,n,e.items,r))},`seg-${n}`):e.items.map(({e,i:n})=>{let r=e,i=n===ge;return(0,z.jsxs)(`div`,{className:`tl-text-block`,onClick:p&&!t&&u?()=>h?.(`${u}_${n}`):void 0,style:p&&!t?{cursor:`pointer`}:void 0,children:[te(n),(0,z.jsx)(ne,{content:r.content,timestamp:!t&&i&&u?YT(u):void 0})]},n)})),t&&!de&&(0,z.jsxs)(`div`,{className:`tl-loading`,children:[(0,z.jsx)(ZT,{size:13}),(0,z.jsx)(tE,{}),(0,z.jsx)(`span`,{className:`tl-elapsed`,children:sE(n)})]}),!t&&P.size>0&&(0,z.jsx)(`div`,{className:`tl-post-components`,children:e.map((e,t)=>({e,i:t})).filter(({i:e})=>P.has(e)).map(({e,i:n})=>{if(e.type!==`component`)return null;let r=l?.has(`${u}_${n}`)??!1;return(0,z.jsx)(qT,{name:e.name,data:e.data,submitted:r,onSubmit:t=>c?.(n,t,e.name),isStreaming:t,sessionKey:g},n)})}),(de||!t&&ue)&&(0,z.jsxs)(`div`,{className:`tl-footer`,children:[t&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(ZT,{size:10}),(0,z.jsx)(tE,{})]}),(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat`,children:[(0,z.jsx)(Ce,{size:10}),sE(n)]}),F?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`tl-footer-sep`,children:`·`}),(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat`,children:[(0,z.jsx)(ot,{size:10}),aE(F.input_tokens+F.cache_creation_tokens+F.cache_read_tokens+F.output_tokens)]})]}):t&&ce.tokenSum>0?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`tl-footer-sep`,children:`·`}),(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat tl-footer-est`,children:[(0,z.jsx)(ot,{size:10}),`~`,aE(ce.tokenSum)]})]}):null,re&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`tl-footer-sep`,children:`·`}),(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat tl-ctx-pct${re.budget>0&&re.tokens/re.budget>=.7?` tl-ctx-high`:re.budget>0&&re.tokens/re.budget>=.5?` tl-ctx-mid`:``}`,children:[(0,z.jsx)(We,{size:10}),re.messages]})]}),s?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`tl-footer-sep`,children:`·`}),(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat tl-ctx-compacted`,children:[(0,z.jsx)(me,{size:10}),`compacted`]})]}):le===null?null:(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`tl-footer-sep`,children:`·`}),!s&&a&&!t?(0,z.jsxs)(E,{variant:`ghost`,size:`sm`,className:`tl-footer-icon-stat tl-ctx-pct${le>=70?` tl-ctx-high`:le>=50?` tl-ctx-mid`:``}`,style:{padding:0,fontSize:`11px`},onClick:a,children:[(0,z.jsx)(me,{size:10}),le,`%`]}):(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat tl-ctx-pct${le>=70?` tl-ctx-high`:le>=50?` tl-ctx-mid`:``}`,children:[(0,z.jsx)(me,{size:10}),le,`%`]})]}),o||t&&ie?(0,z.jsxs)(`span`,{className:`tl-footer-status`,children:[(0,z.jsx)(Ve,{size:10,className:`tl-spinner`}),ie?.message??`Compacting session...`]}):null]})]})}function dE(e){let{messages:t,isStreaming:n,elapsedSeconds:r,sessionTurnStart:i,expandAll:a,setExpandAll:o,conversationCompacted:s,isCompacting:c,setShowCompactConfirm:l,handleComponentSubmit:u,effectiveSubmitted:f,selectionMode:h,selectedItems:g,toggleSelectItem:_,sessionKey:v,setLightboxSrc:y,messageQueue:x,messageQueueRef:S,setQueue:C,sendMessage:w,appState:E,onboardingComplete:D}=e,O=(0,R.useRef)(null),k=(0,R.useRef)(null),A=(0,R.useRef)(null),j=(0,R.useRef)(!1),[M,N]=R.useState(!0);(0,R.useEffect)(()=>{if(!M){j.current=n;return}if(j.current&&!n&&A.current&&k.current){let e=A.current;if(e.offsetHeight>k.current.clientHeight){e.scrollIntoView({behavior:`smooth`,block:`start`}),j.current=n;return}}O.current?.scrollIntoView({behavior:`smooth`}),j.current=n},[t,x,M,n]),(0,R.useEffect)(()=>{if(E!==`chat`)return;let e=k.current;if(!e)return;let t=()=>{N(e.scrollHeight-e.scrollTop-e.clientHeight<80)};return e.addEventListener(`scroll`,t,{passive:!0}),t(),()=>e.removeEventListener(`scroll`,t)},[E]);let P=[...t].sort((e,t)=>(e.timestamp??0)-(t.timestamp??0)),ee=P.reduce((e,t,n)=>t.role===`maxy`&&!t.hidden?n:e,-1);return(0,z.jsxs)(`div`,{className:`chat-messages-wrap`,children:[h&&(0,z.jsx)(`div`,{className:`selection-overlay-band`}),(0,z.jsxs)(`div`,{className:`chat-messages`,ref:k,children:[t.length===0&&E===`chat`&&D!==!1&&(0,z.jsxs)(`div`,{className:`idle-tips`,children:[(0,z.jsx)(`p`,{className:`idle-tips-hint`,children:`What would you like to do?`}),(0,z.jsx)(`div`,{className:`idle-tips-chips`,children:[`What needs doing?`,`Start a new task`].map(e=>(0,z.jsx)(`button`,{type:`button`,className:`idle-tip-chip`,onClick:()=>w(e),children:e},e))})]}),P.map((e,t,o)=>{if(e.hidden)return null;let d=n&&t===o.length-1,x=e.role,S=`${e.timestamp??0}_admin`,C=x===`admin`&&g.has(S),w=(t>0?o[t-1]:null)?.historical&&!e.historical;return(0,z.jsxs)(R.Fragment,{children:[w&&(0,z.jsx)(`div`,{className:`resume-divider`,children:(0,z.jsx)(`span`,{children:`Resumed conversation`})}),(0,z.jsxs)(`div`,{ref:t===ee?A:void 0,className:`message ${x===`admin`?`visitor`:`maxy`}${C?` selected`:``}${e.historical?` message-historical`:``}`,children:[h&&!d&&x===`admin`&&(0,z.jsx)(`div`,{className:`message-select-check`,children:(0,z.jsx)(T,{checked:C,onChange:()=>_(S)})}),e.role===`admin`?(0,z.jsxs)(`div`,{className:`bubble`,children:[e.content,e.attachments&&e.attachments.length>0&&(0,z.jsx)(`div`,{className:`message-attachments`,children:e.attachments.map((e,t)=>(0,z.jsxs)(`button`,{type:`button`,className:`message-attachment-chip${e.attachmentId&&v?``:` no-action`}`,onClick:()=>{if(!e.attachmentId||!v)return;let t=`/api/admin/attachment/${e.attachmentId}?session_key=${encodeURIComponent(v)}`;e.mimeType.startsWith(`image/`)?y(t):window.open(t,`_blank`)},children:[e.mimeType===`application/pdf`?(0,z.jsx)(p,{size:12}):e.mimeType.startsWith(`text/`)?(0,z.jsx)(m,{size:12}):null,(0,z.jsx)(`span`,{children:e.filename})]},t))}),(0,z.jsx)(`span`,{className:`message-timestamp`,children:b(e.timestamp)})]}):(0,z.jsx)(`div`,{className:`maxy-content-wrap`,children:(0,z.jsx)(uE,{events:e.events??[],isStreaming:d,elapsedSeconds:t===o.length-1?r:e.elapsedSeconds??0,streamStartMs:t===o.length-1?i.current??void 0:void 0,expandAll:a,onCompactNow:t===o.length-1&&!s?()=>l(!0):void 0,isCompacting:t===o.length-1?c:void 0,sessionCompacted:t===o.length-1?s:void 0,onComponentSubmit:(t,n,r)=>u(e.timestamp,t,n,r),submittedComponents:f,timestamp:e.timestamp,selectionMode:h,selectedItems:g,onToggleItem:_,sessionKey:v})})]})]},t)}),x.map((e,t)=>(0,z.jsx)(`div`,{className:`message visitor`,children:(0,z.jsxs)(`div`,{className:`bubble bubble-queued`,children:[e.text||null,e.files.length>0&&(0,z.jsx)(`div`,{className:`message-attachments`,children:e.files.map((e,t)=>(0,z.jsxs)(`span`,{className:`message-attachment-chip no-action`,children:[e.type===`application/pdf`?(0,z.jsx)(p,{size:12}):e.type.startsWith(`text/`)?(0,z.jsx)(m,{size:12}):null,(0,z.jsx)(`span`,{children:e.name})]},t))}),(0,z.jsx)(`span`,{className:`message-timestamp`,children:b(e.timestamp)}),(0,z.jsx)(`button`,{type:`button`,className:`queued-bubble-delete`,onClick:()=>C(S.current.filter((e,n)=>n!==t)),"aria-label":`Remove queued message`,children:`×`})]})},e.timestamp)),(0,z.jsx)(`div`,{ref:O})]}),!M&&(0,z.jsx)(`button`,{className:`scroll-to-bottom`,onClick:()=>O.current?.scrollIntoView({behavior:`smooth`}),"aria-label":`Scroll to bottom`,children:(0,z.jsx)(d,{size:18})}),t.some(e=>e.role===`maxy`)&&(0,z.jsx)(`button`,{className:`expand-toggle expand-toggle-${a===void 0?`default`:a?`all`:`off`}`,onClick:()=>o(e=>e===void 0?!0:e===!0?!1:void 0),"aria-label":a===void 0?`Expand all`:a?`Collapse all`:`Reset to default`,children:a===!1?(0,z.jsx)(Le,{size:14}):(0,z.jsx)(Re,{size:14})})]})}function fE({offer:e,onFreshStart:t,onContinue:n,disabled:r}){return e.active?(0,z.jsxs)(`div`,{className:`topic-change-bar`,children:[(0,z.jsx)(`div`,{className:`topic-change-bar__icon`,children:(0,z.jsx)(Ne,{size:16})}),(0,z.jsxs)(`div`,{className:`topic-change-bar__actions`,children:[(0,z.jsx)(E,{variant:`primary`,size:`sm`,onClick:t,disabled:r,children:`Start fresh`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,onClick:n,disabled:r,children:`Continue here`})]})]}):null}function pE(e,t){let n=t.lastIndexOf(`_`),r=t.slice(0,n),i=t.slice(n+1),a=parseInt(r,10),o=i===`admin`?`admin`:`maxy`,s=e.find(e=>e.timestamp===a&&e.role===o);if(!s)return``;if(i===`admin`)return s.content??``;let c=parseInt(i,10),l=s.events?.[c];if(!l)return``;if(l.type===`text`||l.type===`thinking`)return l.content;if(l.type===`tool_use`){let e=l,t=`[Tool: ${e.name}]`,n=`Input:\n${JSON.stringify(e.input,null,2)}`,r=s.events??[],i=``;for(let t=c+1;t<r.length;t++){let n=r[t];if(n.type===`tool_result`&&n.name===e.name){i=`\n\nResult:\n${n.output}`;break}}return`${t}\n${n}${i}`}if(l.type===`subagent_start`){let e=l,t=s.events??[],n=``;for(let r=c+1;r<t.length;r++){let i=t[r];if(i.type===`subagent_end`&&i.name===e.name){n=`\n\nResult:\n${i.result}`;break}}return`[${e.name}: ${e.task}]${n}`}return``}function mE(e,t){let n=[...e].sort((e,t)=>(e.timestamp??0)-(t.timestamp??0)),r=[];for(let e of n)if(!e.hidden)if(e.role===`admin`)(t===`all`||t===`text`)&&r.push(`User:\n${e.content}`);else{let n=e.events??[];for(let e=0;e<n.length;e++){let i=n[e];if(i.type===`text`&&(t===`all`||t===`text`))r.push(`Maxy:\n${i.content}`);else if(i.type===`thinking`&&(t===`all`||t===`non-text`))r.push(`Maxy [thinking]:\n${i.content}`);else if(i.type===`tool_use`&&(t===`all`||t===`non-text`)){let t=i,a=``;for(let r=e+1;r<n.length;r++)if(n[r].type===`tool_result`&&n[r].name===t.name){a=`\n\nResult:\n${n[r].output}`;break}r.push(`Maxy [tool: ${t.name}]:\nInput:\n${JSON.stringify(t.input,null,2)}${a}`)}else if(i.type===`subagent_start`&&(t===`all`||t===`non-text`)){let t=i,a=``;for(let r=e+1;r<n.length;r++)if(n[r].type===`subagent_end`&&n[r].name===t.name){a=`\n\nResult:\n${n[r].result}`;break}r.push(`Maxy [agent: ${t.name}]\nTask: ${t.task}${a}`)}}}return r.join(`
348
+ ${JSON.stringify(u.input,null,2)}`,f=se.get(r),p=o?void 0:f??t;return(0,z.jsx)(cE,{icon:l,isPending:o,isError:c,doneClass:u.name===`Read`?`tl-done`:`tl-success`,summary:tE(u.name,u.input),detail:d,tokens:aE(n),elapsed:A(r,p),isLast:s,expanded:i===void 0?_.has(r):i,onToggle:()=>k(r),selectCheck:te(r)},r)}if(n.type===`subagent_start`){let t=n,a=e.some(e=>e.type===`subagent_end`&&e.name===t.name),o=a?e.findIndex(e=>e.type===`subagent_end`&&e.name===t.name):void 0,c=t.background===!0,l=t.task.slice(0,60)+(t.task.length>60?`…`:``),u=t.task;if(c&&!a){let n=[...e].reverse().find(e=>e.type===`subagent_progress`&&e.name===t.name);n?.last_tool_name&&(u=`${t.task}\nLast tool: ${n.last_tool_name} (${n.tool_uses??0} calls)`)}let d=a?e.find(e=>e.type===`subagent_end`&&e.name===t.name):void 0,f=a&&d?qT.test(d.result):!1;return(0,z.jsx)(cE,{icon:a?f?(0,z.jsx)(at,{size:11}):(0,z.jsx)(ve,{size:11}):(0,z.jsx)(Ve,{size:11,className:`tl-spinner`}),isPending:!a,isError:f,summary:c?`${t.name} (background) — ${l}`:`${t.name} — ${l}`,detail:c?u:t.task,tokens:aE(n),elapsed:A(r,o),isLast:s,expanded:i===void 0?_.has(r):i,onToggle:()=>k(r),selectCheck:te(r)},r)}if(n.type===`component`){let e=l?.has(`${u}_${r}`)??!1,i=n;return(0,z.jsxs)(`div`,{className:`tl-step`,children:[te(r),(0,z.jsxs)(`div`,{className:`tl-col`,children:[(0,z.jsx)(`div`,{className:`tl-icon ${e?`tl-done`:`tl-pending`}`,children:(0,z.jsx)(qe,{size:11})}),!s&&(0,z.jsx)(`div`,{className:`tl-line tl-line-grow`})]}),(0,z.jsx)(`div`,{className:`tl-body`,children:(0,z.jsx)(KT,{name:i.name,data:i.data,submitted:e,onSubmit:e=>c?.(r,e,i.name),isStreaming:t,sessionKey:g})})]},r)}if(n.type===`subagent_end`){let e=n,t=qT.test(e.result);return(0,z.jsx)(cE,{icon:t?(0,z.jsx)(at,{size:11}):(0,z.jsx)(f,{size:11}),isPending:!1,isError:t,summary:`${e.name} ${t?`failed`:`complete`}`,detail:e.result,tokens:aE(n),elapsed:A(r,se.get(r)),isLast:s,expanded:i===void 0?_.has(r):i,onToggle:()=>k(r),selectCheck:te(r)},r)}if(n.type===`script_stream`){let e=n,t=e.line.match(/https:\/\/dash\.cloudflare\.com\/argotunnel\?[^\s]+/)?.[0],i=t?JSON.stringify({url:t,intent:`Cloudflare tunnel authorization`}):void 0;return(0,z.jsxs)(`div`,{className:`tl-script-stream`,children:[(0,z.jsxs)(`div`,{className:`tl-script-stream-line`,children:[(0,z.jsxs)(`span`,{className:`tl-script-stream-source`,children:[`[`,e.source,`]`]}),(0,z.jsx)(`span`,{className:`tl-script-stream-content`,children:e.line})]}),i&&(0,z.jsx)(C,{source:i})]},r)}return null}return(0,z.jsxs)(`div`,{className:`admin-activity`,children:[ue&&!t&&i===void 0&&(0,z.jsx)(`div`,{className:`tl-steps`,children:(0,z.jsxs)(`div`,{className:`tl-step tl-summary-row`,onClick:()=>{window.getSelection()?.toString()||b(e=>!e)},children:[(0,z.jsx)(`div`,{className:`tl-col`,children:(0,z.jsx)(`div`,{className:`tl-icon tl-done`,children:ce.hasThinking?(0,z.jsx)(Re,{size:11}):(0,z.jsx)(f,{size:11})})}),(0,z.jsx)(`div`,{className:`tl-body`,children:(0,z.jsxs)(`div`,{className:`tl-row`,style:{cursor:`pointer`},children:[(0,z.jsx)(`span`,{className:`tl-summary`,children:ce.text}),ce.tokenSum>0&&(0,z.jsxs)(`span`,{className:`tl-step-tokens`,children:[(0,z.jsx)(ot,{size:9}),iE(ce.tokenSum)]}),(0,z.jsx)(`span`,{className:`tl-step-elapsed`,children:oE(n)}),(0,z.jsx)(`span`,{className:`tl-chevron`,children:y?(0,z.jsx)(ye,{size:10}):(0,z.jsx)(d,{size:10})})]})})]})}),he.map((e,n)=>e.role===`steps`?!t&&i===void 0&&y?null:(0,z.jsx)(`div`,{className:`tl-steps`,children:e.items.map(({e:t,i:n},r)=>_e(t,n,e.items,r))},`seg-${n}`):e.items.map(({e,i:n})=>{let r=e,i=n===ge;return(0,z.jsxs)(`div`,{className:`tl-text-block`,onClick:p&&!t&&u?()=>h?.(`${u}_${n}`):void 0,style:p&&!t?{cursor:`pointer`}:void 0,children:[te(n),(0,z.jsx)(ne,{content:r.content,timestamp:!t&&i&&u?JT(u):void 0})]},n)})),t&&!de&&(0,z.jsxs)(`div`,{className:`tl-loading`,children:[(0,z.jsx)(XT,{size:13}),(0,z.jsx)(eE,{}),(0,z.jsx)(`span`,{className:`tl-elapsed`,children:oE(n)})]}),!t&&P.size>0&&(0,z.jsx)(`div`,{className:`tl-post-components`,children:e.map((e,t)=>({e,i:t})).filter(({i:e})=>P.has(e)).map(({e,i:n})=>{if(e.type!==`component`)return null;let r=l?.has(`${u}_${n}`)??!1;return(0,z.jsx)(KT,{name:e.name,data:e.data,submitted:r,onSubmit:t=>c?.(n,t,e.name),isStreaming:t,sessionKey:g},n)})}),(de||!t&&ue)&&(0,z.jsxs)(`div`,{className:`tl-footer`,children:[t&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(XT,{size:10}),(0,z.jsx)(eE,{})]}),(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat`,children:[(0,z.jsx)(Ce,{size:10}),oE(n)]}),F?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`tl-footer-sep`,children:`·`}),(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat`,children:[(0,z.jsx)(ot,{size:10}),iE(F.input_tokens+F.cache_creation_tokens+F.cache_read_tokens+F.output_tokens)]})]}):t&&ce.tokenSum>0?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`tl-footer-sep`,children:`·`}),(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat tl-footer-est`,children:[(0,z.jsx)(ot,{size:10}),`~`,iE(ce.tokenSum)]})]}):null,re&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`tl-footer-sep`,children:`·`}),(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat tl-ctx-pct${re.budget>0&&re.tokens/re.budget>=.7?` tl-ctx-high`:re.budget>0&&re.tokens/re.budget>=.5?` tl-ctx-mid`:``}`,children:[(0,z.jsx)(We,{size:10}),re.messages]})]}),s?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`tl-footer-sep`,children:`·`}),(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat tl-ctx-compacted`,children:[(0,z.jsx)(me,{size:10}),`compacted`]})]}):le===null?null:(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`tl-footer-sep`,children:`·`}),!s&&a&&!t?(0,z.jsxs)(E,{variant:`ghost`,size:`sm`,className:`tl-footer-icon-stat tl-ctx-pct${le>=70?` tl-ctx-high`:le>=50?` tl-ctx-mid`:``}`,style:{padding:0,fontSize:`11px`},onClick:a,children:[(0,z.jsx)(me,{size:10}),le,`%`]}):(0,z.jsxs)(`span`,{className:`tl-footer-icon-stat tl-ctx-pct${le>=70?` tl-ctx-high`:le>=50?` tl-ctx-mid`:``}`,children:[(0,z.jsx)(me,{size:10}),le,`%`]})]}),o||t&&ie?(0,z.jsxs)(`span`,{className:`tl-footer-status`,children:[(0,z.jsx)(Ve,{size:10,className:`tl-spinner`}),ie?.message??`Compacting session...`]}):null]})]})}function uE(e){let{messages:t,isStreaming:n,elapsedSeconds:r,sessionTurnStart:i,expandAll:a,setExpandAll:o,conversationCompacted:s,isCompacting:c,setShowCompactConfirm:l,handleComponentSubmit:u,effectiveSubmitted:f,selectionMode:h,selectedItems:g,toggleSelectItem:_,sessionKey:v,setLightboxSrc:y,messageQueue:x,messageQueueRef:S,setQueue:C,sendMessage:w,appState:E,onboardingComplete:D}=e,O=(0,R.useRef)(null),k=(0,R.useRef)(null),A=(0,R.useRef)(null),j=(0,R.useRef)(!1),[M,N]=R.useState(!0);(0,R.useEffect)(()=>{if(!M){j.current=n;return}if(j.current&&!n&&A.current&&k.current){let e=A.current;if(e.offsetHeight>k.current.clientHeight){e.scrollIntoView({behavior:`smooth`,block:`start`}),j.current=n;return}}O.current?.scrollIntoView({behavior:`smooth`}),j.current=n},[t,x,M,n]),(0,R.useEffect)(()=>{if(E!==`chat`)return;let e=k.current;if(!e)return;let t=()=>{N(e.scrollHeight-e.scrollTop-e.clientHeight<80)};return e.addEventListener(`scroll`,t,{passive:!0}),t(),()=>e.removeEventListener(`scroll`,t)},[E]);let P=[...t].sort((e,t)=>(e.timestamp??0)-(t.timestamp??0)),ee=P.reduce((e,t,n)=>t.role===`maxy`&&!t.hidden?n:e,-1);return(0,z.jsxs)(`div`,{className:`chat-messages-wrap`,children:[h&&(0,z.jsx)(`div`,{className:`selection-overlay-band`}),(0,z.jsxs)(`div`,{className:`chat-messages`,ref:k,children:[t.length===0&&E===`chat`&&D!==!1&&(0,z.jsxs)(`div`,{className:`idle-tips`,children:[(0,z.jsx)(`p`,{className:`idle-tips-hint`,children:`What would you like to do?`}),(0,z.jsx)(`div`,{className:`idle-tips-chips`,children:[`What needs doing?`,`Start a new task`].map(e=>(0,z.jsx)(`button`,{type:`button`,className:`idle-tip-chip`,onClick:()=>w(e),children:e},e))})]}),P.map((e,t,o)=>{if(e.hidden)return null;let d=n&&t===o.length-1,x=e.role,S=`${e.timestamp??0}_admin`,C=x===`admin`&&g.has(S),w=(t>0?o[t-1]:null)?.historical&&!e.historical;return(0,z.jsxs)(R.Fragment,{children:[w&&(0,z.jsx)(`div`,{className:`resume-divider`,children:(0,z.jsx)(`span`,{children:`Resumed conversation`})}),(0,z.jsxs)(`div`,{ref:t===ee?A:void 0,className:`message ${x===`admin`?`visitor`:`maxy`}${C?` selected`:``}${e.historical?` message-historical`:``}`,children:[h&&!d&&x===`admin`&&(0,z.jsx)(`div`,{className:`message-select-check`,children:(0,z.jsx)(T,{checked:C,onChange:()=>_(S)})}),e.role===`admin`?(0,z.jsxs)(`div`,{className:`bubble`,children:[e.content,e.attachments&&e.attachments.length>0&&(0,z.jsx)(`div`,{className:`message-attachments`,children:e.attachments.map((e,t)=>(0,z.jsxs)(`button`,{type:`button`,className:`message-attachment-chip${e.attachmentId&&v?``:` no-action`}`,onClick:()=>{if(!e.attachmentId||!v)return;let t=`/api/admin/attachment/${e.attachmentId}?session_key=${encodeURIComponent(v)}`;e.mimeType.startsWith(`image/`)?y(t):window.open(t,`_blank`)},children:[e.mimeType===`application/pdf`?(0,z.jsx)(p,{size:12}):e.mimeType.startsWith(`text/`)?(0,z.jsx)(m,{size:12}):null,(0,z.jsx)(`span`,{children:e.filename})]},t))}),(0,z.jsx)(`span`,{className:`message-timestamp`,children:b(e.timestamp)})]}):(0,z.jsx)(`div`,{className:`maxy-content-wrap`,children:(0,z.jsx)(lE,{events:e.events??[],isStreaming:d,elapsedSeconds:t===o.length-1?r:e.elapsedSeconds??0,streamStartMs:t===o.length-1?i.current??void 0:void 0,expandAll:a,onCompactNow:t===o.length-1&&!s?()=>l(!0):void 0,isCompacting:t===o.length-1?c:void 0,sessionCompacted:t===o.length-1?s:void 0,onComponentSubmit:(t,n,r)=>u(e.timestamp,t,n,r),submittedComponents:f,timestamp:e.timestamp,selectionMode:h,selectedItems:g,onToggleItem:_,sessionKey:v})})]})]},t)}),x.map((e,t)=>(0,z.jsx)(`div`,{className:`message visitor`,children:(0,z.jsxs)(`div`,{className:`bubble bubble-queued`,children:[e.text||null,e.files.length>0&&(0,z.jsx)(`div`,{className:`message-attachments`,children:e.files.map((e,t)=>(0,z.jsxs)(`span`,{className:`message-attachment-chip no-action`,children:[e.type===`application/pdf`?(0,z.jsx)(p,{size:12}):e.type.startsWith(`text/`)?(0,z.jsx)(m,{size:12}):null,(0,z.jsx)(`span`,{children:e.name})]},t))}),(0,z.jsx)(`span`,{className:`message-timestamp`,children:b(e.timestamp)}),(0,z.jsx)(`button`,{type:`button`,className:`queued-bubble-delete`,onClick:()=>C(S.current.filter((e,n)=>n!==t)),"aria-label":`Remove queued message`,children:`×`})]})},e.timestamp)),(0,z.jsx)(`div`,{ref:O})]}),!M&&(0,z.jsx)(`button`,{className:`scroll-to-bottom`,onClick:()=>O.current?.scrollIntoView({behavior:`smooth`}),"aria-label":`Scroll to bottom`,children:(0,z.jsx)(d,{size:18})}),t.some(e=>e.role===`maxy`)&&(0,z.jsx)(`button`,{className:`expand-toggle expand-toggle-${a===void 0?`default`:a?`all`:`off`}`,onClick:()=>o(e=>e===void 0?!0:e===!0?!1:void 0),"aria-label":a===void 0?`Expand all`:a?`Collapse all`:`Reset to default`,children:a===!1?(0,z.jsx)(Le,{size:14}):(0,z.jsx)(Re,{size:14})})]})}function dE({offer:e,onFreshStart:t,onContinue:n,disabled:r}){return e.active?(0,z.jsxs)(`div`,{className:`topic-change-bar`,children:[(0,z.jsx)(`div`,{className:`topic-change-bar__icon`,children:(0,z.jsx)(Ne,{size:16})}),(0,z.jsxs)(`div`,{className:`topic-change-bar__actions`,children:[(0,z.jsx)(E,{variant:`primary`,size:`sm`,onClick:t,disabled:r,children:`Start fresh`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,onClick:n,disabled:r,children:`Continue here`})]})]}):null}function fE(e,t){let n=t.lastIndexOf(`_`),r=t.slice(0,n),i=t.slice(n+1),a=parseInt(r,10),o=i===`admin`?`admin`:`maxy`,s=e.find(e=>e.timestamp===a&&e.role===o);if(!s)return``;if(i===`admin`)return s.content??``;let c=parseInt(i,10),l=s.events?.[c];if(!l)return``;if(l.type===`text`||l.type===`thinking`)return l.content;if(l.type===`tool_use`){let e=l,t=`[Tool: ${e.name}]`,n=`Input:\n${JSON.stringify(e.input,null,2)}`,r=s.events??[],i=``;for(let t=c+1;t<r.length;t++){let n=r[t];if(n.type===`tool_result`&&n.name===e.name){i=`\n\nResult:\n${n.output}`;break}}return`${t}\n${n}${i}`}if(l.type===`subagent_start`){let e=l,t=s.events??[],n=``;for(let r=c+1;r<t.length;r++){let i=t[r];if(i.type===`subagent_end`&&i.name===e.name){n=`\n\nResult:\n${i.result}`;break}}return`[${e.name}: ${e.task}]${n}`}return``}function pE(e,t){let n=[...e].sort((e,t)=>(e.timestamp??0)-(t.timestamp??0)),r=[];for(let e of n)if(!e.hidden)if(e.role===`admin`)(t===`all`||t===`text`)&&r.push(`User:\n${e.content}`);else{let n=e.events??[];for(let e=0;e<n.length;e++){let i=n[e];if(i.type===`text`&&(t===`all`||t===`text`))r.push(`Maxy:\n${i.content}`);else if(i.type===`thinking`&&(t===`all`||t===`non-text`))r.push(`Maxy [thinking]:\n${i.content}`);else if(i.type===`tool_use`&&(t===`all`||t===`non-text`)){let t=i,a=``;for(let r=e+1;r<n.length;r++)if(n[r].type===`tool_result`&&n[r].name===t.name){a=`\n\nResult:\n${n[r].output}`;break}r.push(`Maxy [tool: ${t.name}]:\nInput:\n${JSON.stringify(t.input,null,2)}${a}`)}else if(i.type===`subagent_start`&&(t===`all`||t===`non-text`)){let t=i,a=``;for(let r=e+1;r<n.length;r++)if(n[r].type===`subagent_end`&&n[r].name===t.name){a=`\n\nResult:\n${n[r].result}`;break}r.push(`Maxy [agent: ${t.name}]\nTask: ${t.task}${a}`)}}}return r.join(`
349
349
 
350
350
  ---
351
351
 
352
- `)}function hE(e){let{selectionMode:t,selectedItems:n,copyToast:r,exitSelection:i,enterSelection:a,copySelected:o,showCopyToast:c,input:d,setInput:f,inputRef:v,pendingFiles:y,setPendingFiles:b,isDragOver:x,attachError:S,fileInputRef:C,addFiles:w,removeFile:T,onDragOver:O,onDragLeave:A,onDrop:j,isStreaming:N,wasPaused:P,messages:te,messageQueueRef:ne,setQueue:re,sendMessage:ie,stopStreaming:ae,disconnecting:se,handleDisconnect:ce,claudeInfo:le,setClaudeInfo:ue,setShowClaudeInfo:fe,conversationId:pe,onNewConversation:me,newConversationDisabled:he,onOpenConversations:ge}=e,[ve,I]=(0,R.useState)(!1),ye=(0,R.useRef)(null),[L,be]=(0,R.useState)(!1),xe=(0,R.useRef)(null),Se=(0,R.useRef)(!1),Ce=F(),we=Ce.state===`recording`||Ce.state===`paused`||Ce.state===`sending`,Te=!we&&!P&&!d.trim()&&y.length===0;async function Ee(){let e=await Ce.send();if(!e)return;let t=e.type===`audio/ogg`?`.ogg`:e.type===`audio/mp4`?`.m4a`:`.webm`,n=new File([e],`voice-note${t}`,{type:e.type});if(N){re([...ne.current,{text:`[Voice note]`,files:[n],timestamp:Date.now()}]);return}ie(`[Voice note]`,[n])}return(0,R.useEffect)(()=>{t||be(!1)},[t]),(0,R.useEffect)(()=>{if(!L)return;let e=e=>{e.target.closest(`.selection-copy-wrap`)||be(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[L]),(0,R.useEffect)(()=>{if(!ve)return;let e=e=>{if(e.key===`Escape`){I(!1);return}if(e.key===`Tab`&&ye.current){let t=ye.current.querySelectorAll(`.actions-menu-items button:not([disabled])`);if(t.length===0)return;let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}},t=e=>{ye.current&&!ye.current.contains(e.target)&&I(!1)};return document.addEventListener(`keydown`,e),document.addEventListener(`mousedown`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`mousedown`,t)}},[ve]),t?(0,z.jsx)(`div`,{className:`chat-input-area`,children:(0,z.jsxs)(`div`,{className:`selection-bar`,children:[(0,z.jsxs)(`span`,{className:`selection-count`,children:[n.size,` Selected`]}),(0,z.jsxs)(`div`,{className:`selection-copy-wrap`,children:[(0,z.jsxs)(`button`,{type:`button`,className:`selection-copy`,onPointerDown:()=>{if(L){be(!1);return}Se.current=!1,xe.current=setTimeout(()=>{Se.current=!0,be(!0),xe.current=null},500)},onPointerUp:()=>{xe.current!==null&&(clearTimeout(xe.current),xe.current=null)},onPointerLeave:()=>{xe.current!==null&&(clearTimeout(xe.current),xe.current=null)},onPointerCancel:()=>{xe.current!==null&&(clearTimeout(xe.current),xe.current=null)},onClick:async()=>{Se.current||await o(e=>pE(te,e),(e,t)=>{let[n,r]=[e.slice(0,e.lastIndexOf(`_`)),e.slice(e.lastIndexOf(`_`)+1)],[i,a]=[t.slice(0,t.lastIndexOf(`_`)),t.slice(t.lastIndexOf(`_`)+1)],o=parseInt(n,10)-parseInt(i,10);return o===0?r===`admin`?-1:a===`admin`?1:parseInt(r,10)-parseInt(a,10):o})},children:[(0,z.jsx)(g,{size:18}),(0,z.jsx)(`span`,{children:`Copy`})]}),L&&(0,z.jsx)(`div`,{className:`copy-menu`,children:[[`all`,`All events`],[`text`,`Text messages only`],[`non-text`,`Non-text only`]].map(([e,t])=>(0,z.jsx)(`button`,{type:`button`,className:`copy-menu-item`,onClick:async()=>{let t=mE(te,e);t&&c(await _(t)),i()},children:t},e))})]}),(0,z.jsx)(`button`,{type:`button`,className:`selection-cancel`,onClick:i,children:`Cancel`})]})}):(0,z.jsxs)(`div`,{className:`chat-input-area`,children:[(0,z.jsx)(`input`,{ref:C,type:`file`,multiple:!0,accept:ft,style:{display:`none`},onChange:e=>{e.target.files&&w([...e.target.files]),e.target.value=``}}),y.length>0&&(0,z.jsx)(`div`,{className:`attachment-strip`,children:y.map((e,t)=>(0,z.jsxs)(`div`,{className:`attachment-chip`,children:[e.type.startsWith(`image/`)?(0,z.jsx)(`img`,{src:URL.createObjectURL(e),alt:e.name,className:`attachment-chip-thumb`}):e.type===`application/pdf`?(0,z.jsx)(p,{size:14}):(0,z.jsx)(m,{size:14}),(0,z.jsx)(`span`,{className:`attachment-chip-name`,children:e.name}),(0,z.jsx)(`button`,{type:`button`,className:`attachment-chip-remove`,onClick:()=>T(t),"aria-label":`Remove ${e.name}`,children:`×`})]},t))}),S&&(0,z.jsx)(`p`,{className:`attach-error`,children:S}),Ce.state===`error`&&Ce.errorMessage&&(0,z.jsxs)(`p`,{className:`voice-error`,role:`alert`,children:[(0,z.jsx)(s,{size:14}),Ce.errorMessage]}),(0,z.jsx)(D,{inputRef:v}),we?(0,z.jsx)(`div`,{className:`chat-form voice-active`,children:(0,z.jsx)(M,{state:Ce.state,elapsedSeconds:Ce.elapsedSeconds,waveform:Ce.waveform,onTogglePause:Ce.togglePause,onDiscard:Ce.discard,onSend:Ee})}):(0,z.jsxs)(`form`,{className:`chat-form${x?` drag-over`:``}`,onSubmit:e=>{e.preventDefault();let t=d.trim()||(P?`continue`:``);if(!(!t&&y.length===0)){if(N){re([...ne.current,{text:t,files:[...y],timestamp:Date.now()}]),f(``),b([]),v.current?.resetHeight();return}ie(t),v.current?.resetHeight()}},onDragOver:O,onDragLeave:A,onDrop:j,onPaste:e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t){if(e.kind!==`file`)continue;let t=e.getAsFile();if(!t)continue;let r=t.type.split(`/`)[1]?.replace(`jpeg`,`jpg`)||`png`;n.push(new File([t],`pasted-image-${Date.now()}.${r}`,{type:t.type}))}n.length>0&&w(n)},children:[(0,z.jsx)(E,{variant:`icon`,type:`button`,onClick:()=>C.current?.click(),"aria-label":`Attach file`,children:(0,z.jsx)(k,{size:14})}),(0,z.jsx)(ee,{ref:v,value:d,onChange:f}),N?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(E,{variant:`send`,type:`button`,onClick:()=>ae(!0),"aria-label":`Pause`,style:{background:`var(--text-secondary)`},children:(0,z.jsx)(h,{size:14})}),(0,z.jsx)(E,{variant:`send`,type:`button`,onClick:()=>ae(!1),"aria-label":`Stop`,style:{background:`var(--danger)`},children:(0,z.jsx)(et,{size:14})})]}):Te?(0,z.jsx)(E,{variant:`send`,type:`button`,onClick:Ce.start,"aria-label":`Record voice note`,children:(0,z.jsx)(s,{size:14})}):(0,z.jsx)(E,{variant:`send`,type:`submit`,disabled:!d.trim()&&y.length===0&&!P,"aria-label":`Send message`,children:P?(0,z.jsx)(l,{size:14}):(0,z.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,z.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,z.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,z.jsxs)(`div`,{className:`chat-actions`,ref:ye,children:[(0,z.jsx)(`button`,{className:`burger-trigger`,onClick:()=>I(e=>!e),"aria-expanded":ve,"aria-haspopup":`true`,"aria-label":`Actions menu`,children:(0,z.jsx)(de,{size:16})}),(0,z.jsxs)(`div`,{className:`actions-menu-items${ve?` actions-menu-open`:``}`,children:[(0,z.jsxs)(`button`,{className:`chat-action`,disabled:he,onClick:()=>{I(!1),me()},children:[(0,z.jsx)(Me,{size:14}),(0,z.jsx)(`span`,{className:`action-label`,children:`New conversation`})]}),(0,z.jsxs)(`button`,{className:`chat-action`,onClick:()=>{I(!1),ge()},children:[(0,z.jsx)(Be,{size:14}),(0,z.jsx)(`span`,{className:`action-label`,children:`Conversations`})]}),(0,z.jsxs)(`button`,{className:`chat-action`,disabled:se,onClick:async()=>{I(!1),await ce()},children:[se?(0,z.jsx)(oe,{size:14,className:`animate-spin`}):(0,z.jsx)(_e,{size:14}),(0,z.jsx)(`span`,{className:`action-label`,children:se?`Disconnecting...`:`Disconnect Claude`})]}),(0,z.jsxs)(`button`,{className:`chat-action`,disabled:!pe,onClick:()=>{if(I(!1),!pe){console.debug(`[stream-log-button] disabled reason=no-conversation-id`);return}let e=document.createElement(`a`);e.href=`/api/admin/logs?type=stream&conversationId=${encodeURIComponent(pe)}&download=1`,e.click()},title:pe?`Download stream log`:`No conversation active — start a message to create a stream log`,children:[(0,z.jsx)(Ze,{size:14}),(0,z.jsx)(`span`,{className:`action-label`,children:`Stream log`})]}),(0,z.jsxs)(`button`,{className:`chat-action`,onClick:()=>{I(!1),a()},title:`Select messages`,children:[(0,z.jsx)(u,{size:14}),(0,z.jsx)(`span`,{className:`action-label`,children:`Select`})]})]}),(0,z.jsxs)(`div`,{className:`powered-by`,onClick:async()=>{if(fe(!0),!le){let e=await fetch(`/api/admin/claude-info`);e.ok&&ue(await e.json())}},children:[(0,z.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`powered-by-icon`}),(0,z.jsx)(`span`,{children:`Powered by Claude Code`})]})]})]})}function gE(e){let{show:t,onClose:n,conversationsLoading:r,conversationsError:i,conversationsList:a,setConversationsList:o,sessionKey:s,isStreaming:c,resetConversation:u,setMessages:d,setConversationId:p}=e,[m,h]=(0,R.useState)(null),[g,_]=(0,R.useState)(null),[y,b]=(0,R.useState)(``),[x,S]=(0,R.useState)(!1),C=(0,R.useRef)(null);(0,R.useEffect)(()=>{t||(h(null),_(null),b(``),S(!1))},[t]),(0,R.useEffect)(()=>{g?.phase===`editing`&&(C.current?.focus(),C.current?.select())},[g]);function w(){h(null),_(null),b(``),S(!1)}async function T(e){if(s){w(),h(e),_({phase:`loading`});try{let t=await fetch(`/api/admin/sessions/${encodeURIComponent(e)}/label?session_key=${encodeURIComponent(s)}`,{method:`POST`});if(!t.ok){_({phase:`error`,reason:(await t.json().catch(()=>({}))).error||`Request failed`});return}let n=await t.json();n.label?(_({phase:`editing`}),b(n.label)):_({phase:`error`,reason:`Not enough message content to suggest a name`})}catch(e){console.error(`[admin-modal] label suggestion failed:`,e),_({phase:`error`,reason:e instanceof Error?e.message:String(e)})}}}async function E(e){if(!(!s||!y.trim()||x)){S(!0);try{let t=await fetch(`/api/admin/sessions/${encodeURIComponent(e)}/label`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({label:y.trim(),session_key:s})});if(!t.ok){_({phase:`error`,reason:(await t.json().catch(()=>({}))).error||`Rename failed`}),S(!1);return}o(t=>t.map(t=>t.conversationId===e?{...t,name:y.trim()}:t)),w()}catch(e){console.error(`[admin-modal] label rename failed:`,e),_({phase:`error`,reason:e instanceof Error?e.message:String(e)}),S(!1)}}}return t?(0,z.jsx)(`div`,{className:`claude-info-overlay`,onClick:n,children:(0,z.jsxs)(`div`,{className:`claude-info-modal conversations-modal`,onClick:e=>e.stopPropagation(),children:[(0,z.jsxs)(`div`,{className:`claude-info-header`,children:[(0,z.jsx)(Be,{size:12}),`Conversations`,(0,z.jsx)(`button`,{className:`claude-info-close`,onClick:n,children:`✕`})]}),(0,z.jsxs)(`div`,{className:`conversations-list`,children:[r&&(0,z.jsxs)(`div`,{className:`conversations-empty`,children:[(0,z.jsx)(oe,{size:14,className:`spin`}),` Loading…`]}),i&&(0,z.jsx)(`div`,{className:`conversations-empty conversations-error`,children:i}),!r&&!i&&a.length===0&&(0,z.jsx)(`div`,{className:`conversations-empty`,children:`No recent conversations`}),!r&&!i&&a.map(e=>{let t=m===e.conversationId,r=t&&g?.phase===`loading`,i=t&&g?.phase===`editing`,a=t&&g?.phase===`error`;return(0,z.jsxs)(`div`,{className:`conversations-row`,children:[(0,z.jsxs)(`div`,{className:`conversations-row-info`,children:[r&&(0,z.jsxs)(`span`,{className:`conversations-row-name conversations-edit-loading`,children:[(0,z.jsx)(oe,{size:12,className:`spin`}),` Generating suggestion…`]}),i&&(0,z.jsxs)(`div`,{className:`conversations-edit-inline`,children:[(0,z.jsx)(`input`,{ref:C,type:`text`,className:`conversations-edit-input`,value:y,onChange:e=>b(e.target.value),onKeyDown:t=>{t.key===`Enter`&&y.trim()&&E(e.conversationId),t.key===`Escape`&&w()},maxLength:200}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-confirm`,title:`Confirm rename`,disabled:!y.trim()||x,onClick:()=>E(e.conversationId),children:x?(0,z.jsx)(oe,{size:13,className:`spin`}):(0,z.jsx)(f,{size:13})}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-cancel`,title:`Cancel`,onClick:w,children:(0,z.jsx)(at,{size:13})})]}),a&&(0,z.jsxs)(`div`,{className:`conversations-edit-inline`,children:[(0,z.jsx)(`span`,{className:`conversations-edit-error`,children:g.reason}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-retry`,title:`Retry`,onClick:()=>T(e.conversationId),children:(0,z.jsx)(Xe,{size:13})}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-cancel`,title:`Cancel`,onClick:w,children:(0,z.jsx)(at,{size:13})})]}),!t&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`conversations-row-name`,children:e.name||e.conversationId.slice(0,12)+`…`}),(0,z.jsxs)(`span`,{className:`conversations-row-meta`,children:[(0,z.jsx)(`span`,{className:`conversations-row-id`,children:e.conversationId.slice(0,8)}),(0,z.jsxs)(`span`,{className:`conversations-row-time`,children:[(0,z.jsx)(Ce,{size:10}),(()=>{try{let t=new Date(e.updatedAt),n=Date.now()-t.getTime();return n<6e4?`just now`:n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}catch{return``}})()]})]})]})]}),(0,z.jsx)(`div`,{className:`conversations-row-actions`,children:!t&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-rename`,title:`Rename conversation`,onClick:()=>T(e.conversationId),children:(0,z.jsx)(Je,{size:13})}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-play`,title:`Resume conversation`,disabled:c,onClick:()=>{c||!s||(n(),u(),fetch(`/api/admin/sessions/${encodeURIComponent(e.conversationId)}/resume?session_key=${encodeURIComponent(s)}`,{method:`POST`}).then(e=>e.ok?e.json():Promise.reject(Error(`Failed to resume conversation`))).then(e=>{e.conversationId&&p(e.conversationId);let t=(e.messages??[]).map(e=>({role:e.role===`user`?`admin`:`maxy`,content:e.role===`user`?e.content:void 0,events:e.role===`assistant`?[{type:`text`,content:e.content}]:void 0,timestamp:new Date(e.createdAt).getTime()||0,historical:!0}));t.length>0&&d(t)}).catch(e=>{console.error(`[chat] conversation resume failed:`,e),d([{role:`maxy`,events:[{type:`text`,content:`Could not load conversation history.`}],timestamp:Date.now()-1,historical:!0}])}))},children:(0,z.jsx)(l,{size:13})}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-delete`,title:`Delete conversation`,onClick:()=>{o(t=>t.filter(t=>t.conversationId!==e.conversationId)),s&&fetch(`/api/admin/sessions/${encodeURIComponent(e.conversationId)}?session_key=${encodeURIComponent(s)}`,{method:`DELETE`}).catch(e=>console.error(`[chat] conversation delete failed:`,e))},children:(0,z.jsx)(v,{size:13})})]})})]},e.conversationId)})]})]})}):null}function _E({src:e,onClose:t}){return e?(0,z.jsxs)(`div`,{className:`attachment-lightbox`,onClick:t,children:[(0,z.jsx)(`button`,{className:`attachment-lightbox-close`,onClick:t,"aria-label":`Close`,children:`×`}),(0,z.jsx)(`img`,{src:e,alt:`Attachment`,onClick:e=>e.stopPropagation()})]}):null}function vE({show:e,onClose:t,onConfirm:n}){return e?(0,z.jsx)(`div`,{className:`claude-info-overlay`,onClick:t,children:(0,z.jsxs)(`div`,{className:`claude-info-modal`,onClick:e=>e.stopPropagation(),children:[(0,z.jsxs)(`div`,{className:`claude-info-header`,children:[(0,z.jsx)(`span`,{children:`Compact conversation?`}),(0,z.jsx)(`button`,{className:`claude-info-close`,onClick:t,"aria-label":`Close`,children:`✕`})]}),(0,z.jsx)(`div`,{className:`claude-info-section`,style:{padding:`12px 14px`,fontSize:`11px`,color:`var(--text-secondary)`},children:`Summarises the conversation history to free up context window space. The session continues with a compressed summary.`}),(0,z.jsxs)(`div`,{className:`claude-info-section`,style:{display:`flex`,gap:`8px`,padding:`10px 14px`},children:[(0,z.jsx)(E,{variant:`secondary`,size:`sm`,style:{background:`var(--accent)`,flex:1},onClick:()=>{t(),n()},children:`Yes, compact`}),(0,z.jsx)(E,{variant:`secondary`,size:`sm`,style:{flex:1},onClick:t,children:`No`})]})]})}):null}function yE(e){let{show:t,onClose:n,claudeInfo:r,messages:i,sessionElapsed:a,conversationId:o,contextModeHint:s,handleContextModeToggle:c}=e;if(!t)return null;let l=i.flatMap(e=>e.events?.filter(e=>e.type===`usage`)??[]),u=l.at(-1),d=u?.peak_request_pct==null?u?.context_window?Math.round((u.input_tokens+u.cache_creation_tokens+u.cache_read_tokens)/u.context_window*100):0:Math.round(u.peak_request_pct*100),f=l.reduce((e,t)=>e+t.input_tokens+t.cache_creation_tokens+t.cache_read_tokens+t.output_tokens,0),p=i.flatMap(e=>e.events?.filter(e=>e.type===`rate_limit`)??[]).at(-1),m=l.reduce((e,t)=>e+(t.total_cost_usd??0),0),h=r?.account?.subscriptionType,g=e=>{let t=e*1e3-Date.now();if(t<=0)return`now`;let n=Math.floor(t/36e5),r=Math.floor(t%36e5/6e4);return n>0?`${n}h ${r}m`:`${r}m`};return(0,z.jsx)(`div`,{className:`claude-info-overlay`,onClick:n,children:(0,z.jsxs)(`div`,{className:`claude-info-modal`,onClick:e=>e.stopPropagation(),children:[(0,z.jsxs)(`div`,{className:`claude-info-header`,children:[(0,z.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`claude-info-icon`}),(0,z.jsx)(`span`,{children:`Claude Code`}),(0,z.jsx)(`button`,{className:`claude-info-close`,onClick:n,"aria-label":`Close`,children:`✕`})]}),(0,z.jsxs)(`div`,{className:`claude-info-section`,children:[(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Version`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:r?r.version:`…`})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Email`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:r?.account?.email??`…`})]})]}),(h||p||m>0)&&(0,z.jsxs)(`div`,{className:`claude-info-section`,children:[h&&(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Plan`}),(0,z.jsx)(`span`,{className:`claude-info-value`,style:{textTransform:`capitalize`},children:h})]}),p&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Usage`}),(0,z.jsxs)(`span`,{className:`claude-info-value`,children:[Math.round(p.utilization*100),`%`]})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Resets in`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:g(p.resetsAt)})]}),p.isUsingOverage&&(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Overage`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:`Active`})]})]}),m>0&&(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Session cost`}),(0,z.jsxs)(`span`,{className:`claude-info-value`,children:[`$`,m<.01?m.toFixed(4):m.toFixed(2)]})]})]}),(0,z.jsxs)(`div`,{className:`claude-info-section`,children:[(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Model`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:r?.model??`…`})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Context mode`}),(0,z.jsxs)(`span`,{className:`claude-info-value claude-info-toggle`,role:`button`,tabIndex:0,onClick:c,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),c())},children:[r?.contextMode??`…`,s?` (next turn)`:``]})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Context used`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:d>0?`${d}%`:`—`})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Tokens`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:f>0?ut(f):`—`})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Session`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:lt(a)})]}),o&&(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Conversation`}),(0,z.jsx)(`span`,{className:`claude-info-value`,style:{fontFamily:`monospace`,fontSize:10},children:o.slice(0,8)})]})]})]})})}var bE=2e3,xE=9e5;function SE({show:e,onClose:t,versionInfo:n,sessionKey:r,onUpgradeComplete:i}){let[a,o]=(0,R.useState)(`idle`),[s,c]=(0,R.useState)(null),[l,u]=(0,R.useState)({step:0,total:11,label:``,started:!1,subSteps:[]}),d=(0,R.useRef)(null),f=(0,R.useRef)(null),p=(0,R.useRef)(null),m=(0,R.useRef)(0),h=(0,R.useRef)(!1),g=n?.latest??null;(0,R.useEffect)(()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight)},[l.subSteps]);let _=(0,R.useCallback)(()=>{d.current&&=(clearInterval(d.current),null),f.current&&=(clearTimeout(f.current),null)},[]);(0,R.useEffect)(()=>{e||(_(),o(`idle`),c(null),u({step:0,total:11,label:``,started:!1,subSteps:[]}),m.current=0,h.current=!1)},[e,_]),(0,R.useEffect)(()=>_,[_]);let v=a===`success`?100:l.total>0?l.step/l.total*90:0;function y(){let e=0;d.current=setInterval(async()=>{e++;let t=!1;try{let e=await fetch(`/api/admin/version/upgrade/progress`);if(e.ok){let t=await e.json();if(m.current=0,t.started&&u(t),t.finished&&(h.current=!0),t.failed){_(),o(`error`),c(`Upgrade failed — check device logs for details.`);return}}else h.current||(m.current++,t=!0,console.warn(`[update] progress poll non-ok status=${e.status} consecutive=${m.current}`))}catch(e){h.current||(m.current++,t=!0,console.warn(`[update] progress poll failed (consecutive=${m.current}):`,e))}let n=!1;try{let t=await fetch(`/api/admin/version`);if(t.ok){let n=await t.json();if(g&&n.installed===g){console.log(`[update] transitioned to success via version check tick=${e}`),_(),o(`success`),i(),f.current=setTimeout(()=>window.location.reload(),2e3);return}}else n=!0,console.warn(`[update] version check returned status=${t.status} — main service unreachable`)}catch(e){n=!0,console.warn(`[update] version check threw — main service unreachable:`,e)}if(n&&o(e=>e===`upgrading`?(console.warn(`[update] entering restarting state (expected during step-8→11 window)`),`restarting`):e),t&&m.current>=3&&!n){_(),o(`error`),c(`Upgrade monitoring stopped — the progress endpoint is failing while the main service is reachable. Check device logs.`);return}},bE)}async function b(){if(!r){console.warn(`[update] Upgrade blocked: no session key`),o(`error`),c(`Session expired — please log in again`);return}if(!g){console.warn(`[update] Upgrade blocked: no target version`),o(`error`),c(`Version data unavailable — close and try again`);return}o(`upgrading`),c(null),u({step:0,total:11,label:`Starting upgrade…`,started:!1,subSteps:[]}),m.current=0,f.current=setTimeout(()=>{_(),o(`error`),c(`Upgrade timed out. Check device logs for details.`)},xE);try{let e=await(await fetch(`/api/admin/version/upgrade`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_key:r})})).json();if(!e.ok){_(),o(`error`),c(e.error||`Upgrade failed`);return}y()}catch(e){console.error(`[update] upgrade request failed:`,e),_(),o(`error`),c(e instanceof Error?e.message:String(e))}}return e?(0,z.jsx)(`div`,{className:`claude-info-overlay`,onClick:()=>{(a===`idle`||a===`success`||a===`error`)&&t()},children:(0,z.jsxs)(`div`,{className:`claude-info-modal update-modal`,onClick:e=>e.stopPropagation(),children:[(0,z.jsxs)(`div`,{className:`claude-info-header`,children:[(0,z.jsx)(fe,{size:12}),`Software Update`,(a===`idle`||a===`success`||a===`error`)&&(0,z.jsx)(`button`,{className:`claude-info-close`,onClick:t,children:`✕`})]}),a===`idle`&&(0,z.jsxs)(`div`,{className:`update-modal-body`,children:[(0,z.jsxs)(`div`,{className:`update-modal-versions`,children:[(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Installed`}),(0,z.jsxs)(`span`,{className:`claude-info-value`,children:[`v`,n?.installed??`…`]})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Available`}),(0,z.jsxs)(`span`,{className:`claude-info-value update-version-new`,children:[`v`,g??`…`]})]})]}),(0,z.jsx)(`button`,{type:`button`,className:`update-modal-btn`,onClick:b,children:`Upgrade`})]}),(a===`upgrading`||a===`restarting`)&&(0,z.jsx)(`div`,{className:`update-modal-body`,children:(0,z.jsxs)(`div`,{className:`update-modal-progress-wrap`,children:[(0,z.jsx)(`div`,{className:`update-modal-progress-bar`,children:(0,z.jsx)(`div`,{className:`update-modal-progress-fill`,style:{width:`${v}%`}})}),(0,z.jsxs)(`div`,{className:`update-modal-phase`,children:[(0,z.jsx)(oe,{size:12,className:`spin`}),(0,z.jsxs)(`span`,{className:`update-modal-step-detail`,children:[l.step>0&&l.total>0&&(0,z.jsxs)(`span`,{className:`update-modal-step-count`,children:[l.step,`/`,l.total]}),l.label||(a===`restarting`?`Restarting service…`:`Starting upgrade…`)]})]}),l.subSteps&&l.subSteps.length>0&&(0,z.jsx)(`div`,{ref:p,className:`update-modal-substeps`,children:l.subSteps.map((e,t)=>(0,z.jsx)(`div`,{className:`update-modal-substep-line`,children:e},t))})]})}),a===`success`&&(0,z.jsxs)(`div`,{className:`update-modal-body update-modal-result`,children:[(0,z.jsx)(L,{size:14,className:`update-success-icon`}),(0,z.jsxs)(`span`,{children:[`Upgraded to v`,g]})]}),a===`error`&&(0,z.jsxs)(`div`,{className:`update-modal-body update-modal-result`,children:[(0,z.jsx)(re,{size:14,className:`update-error-icon`}),(0,z.jsx)(`span`,{children:s})]})]})}):null}function CE({onClose:e}){ct();let[t,n]=(0,R.useState)(!1),r=(0,R.useRef)(null),i=(0,R.useRef)(null),a=(0,R.useCallback)(()=>{i.current&&=(clearInterval(i.current),null),r.current&&!r.current.closed&&r.current.close(),r.current=null,n(!1)},[]),o=(0,R.useCallback)(()=>{let t=`/vnc-popout.html?title=${encodeURIComponent(y.productName)}`,o=window.open(t,`maxy-vnc-overlay-popout`,`width=1024,height=768`);o&&(r.current=o,n(!0),i.current=setInterval(()=>{r.current?.closed&&(a(),e())},500))},[a,e]),s=(0,R.useCallback)(()=>{a(),e()},[a,e]);(0,R.useEffect)(()=>{if(t)return;let e=e=>{e.key===`Escape`&&s()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t,s]),(0,R.useEffect)(()=>()=>a(),[a]);let c=zt({handlePopout:o,disabled:t});return t?(0,z.jsxs)(`div`,{className:`browser-overlay-popout`,children:[(0,z.jsx)(O,{className:`browser-viewer__icon`}),(0,z.jsx)(`span`,{className:`browser-viewer__title`,children:y.productName}),(0,z.jsx)(`span`,{className:`browser-viewer__popout-label`,children:`Popped out`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ge,onClick:()=>{a()},"aria-label":`Pop back in`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:at,onClick:s,"aria-label":`Close`})]}):(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen`,children:[(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen__bar`,...c,children:[(0,z.jsx)(O,{className:`browser-viewer__icon`}),(0,z.jsx)(`span`,{className:`browser-viewer-fullscreen__title`,children:y.productName}),(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen__actions`,children:[(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Oe,onClick:o,"aria-label":`Pop out`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:at,onClick:s,"aria-label":`Close`})]})]}),(0,z.jsx)(`iframe`,{src:`/vnc-viewer.html`,className:`browser-viewer-fullscreen__iframe`,title:y.productName})]})}function wE(){ct();let e=(0,R.useRef)(null),[t,n]=(0,R.useState)(null),[r,i]=(0,R.useState)(!1),[a,o]=(0,R.useState)(!1),[s,l]=(0,R.useState)(``),[u,d]=(0,R.useState)(!1),[p,m]=(0,R.useState)(null),[h,g]=(0,R.useState)(!1),[_,b]=(0,R.useState)(null),[x,S]=(0,R.useState)(null),[C,T]=(0,R.useState)(!1),[E,D]=(0,R.useState)([]),[k,A]=(0,R.useState)(!1),[j,M]=(0,R.useState)(null),[N,P]=(0,R.useState)(null),[ee,te]=(0,R.useState)(!1),[F,ne]=(0,R.useState)(null),[re,ie]=(0,R.useState)(!1),[le,ue]=(0,R.useState)(!1),fe=(0,R.useRef)(!1),me=(0,R.useRef)(!1),he=(0,R.useRef)(!1),ge=(0,R.useRef)(null),_e=c(),ve=dt(),I=_t(),ye=Et(),L=Tt({sessionKey:I.sessionKey,setSessionKey:I.setSessionKey,setAppState:I.setAppState,setConversationId:I.setConversationId,startElapsedTimer:ve.startElapsedTimer,stopElapsedTimer:ve.stopElapsedTimer,resetTimerState:ve.resetTimerState,pausedElapsedRef:ve.pausedElapsedRef,expandAllDefaultRef:I.expandAllDefaultRef,setExpandAll:I.setExpandAll,getPendingFiles:()=>ye.pendingFiles,clearPendingFiles:ye.clearFiles,inputRef:e});(0,R.useEffect)(()=>{l(window.location.hostname.startsWith(`admin.`)?window.location.origin.replace(`admin.`,`public.`):window.location.origin)},[]),(0,R.useEffect)(()=>{function e(e){e.key===`Escape`&&(t?n(null):_e.selectionMode&&_e.exitSelection())}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t,_e.selectionMode]),(0,R.useEffect)(()=>{(I.appState===`set-pin`||I.appState===`enter-pin`)&&setTimeout(()=>I.pinInputRef.current?.focus(),100),I.appState===`chat`&&setTimeout(()=>e.current?.focus(),100)},[I.appState,L.greetingGeneration]),(0,R.useEffect)(()=>{if(I.appState!==`chat`)return;history.pushState({maxyChat:!0},``);function e(){console.debug(`[history-guard] popstate absorbed`),history.pushState({maxyChat:!0},``)}return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[I.appState]);let be=(0,R.useRef)(L.greetingGeneration);return(0,R.useEffect)(()=>{L.greetingGeneration!==be.current&&(be.current=L.greetingGeneration,I.onboardingComplete===!1&&(fe.current=!1))},[L.greetingGeneration,I.onboardingComplete]),(0,R.useEffect)(()=>{I.appState===`chat`&&I.onboardingComplete===!1&&(fe.current||(fe.current=!0,L.sendSystemPrompt(`[Begin onboarding.]`)))},[I.appState,I.onboardingComplete,L.greetingGeneration]),(0,R.useEffect)(()=>{if(!u)return;let e=!1;return fetch(`/api/admin/version`).then(e=>e.json()).then(t=>{e||P(t)}).catch(e=>{console.error(`[admin/version] menu-open client fetch failed:`,e)}),()=>{e=!0}},[u]),(0,R.useEffect)(()=>{if(I.appState!==`chat`){me.current=!1,he.current=!1;return}if(me.current)return;me.current=!0;let e=!1;return fetch(`/api/admin/version`).then(e=>e.json()).then(t=>{e||(P(t),!(!t.updateAvailable||he.current)&&(ne(t),te(!0),fetch(`/api/admin/version/alert-surfaced`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({installed:t.installed,latest:t.latest})}).catch(e=>{console.error(`[admin/version] alert-surfaced signal failed:`,e)})))}).catch(e=>{console.error(`[admin/version] session-start client fetch failed:`,e)}),()=>{e=!0}},[I.appState]),(0,R.useEffect)(()=>{if(!u){m(null),b(null),S(null),P(null);return}function e(e){ge.current&&!ge.current.contains(e.target)&&d(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[u]),(0,R.useEffect)(()=>{if(typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(`platform-onboarding`);return e.onmessage=e=>{e.data?.type===`remote-password-set`&&L.sendMessageRef.current(`I've set the remote password`)},()=>e.close()},[]),I.appState===`loading`?(0,z.jsx)(`div`,{className:`chat-page admin-page`,children:(0,z.jsx)(`header`,{className:`chat-header`,children:(0,z.jsx)(`img`,{src:ae,alt:y.productName,className:`chat-logo`})})}):I.appState===`set-pin`?(0,z.jsx)(Ot,{pin:I.pin,setPin:I.setPin,confirmPin:I.confirmPin,setConfirmPin:I.setConfirmPin,showPin:I.showPin,setShowPin:I.setShowPin,pinLoading:I.pinLoading,pinError:I.pinError,pinInputRef:I.pinInputRef,confirmPinInputRef:I.confirmPinInputRef,setPinFormRef:I.setPinFormRef,onSubmit:I.handleSetPin}):I.appState===`onboarding-choice`?(0,z.jsx)(Mt,{setAppState:I.setAppState,setOnboardingComplete:I.setOnboardingComplete}):I.appState===`connect-claude`?(0,z.jsx)(jt,{authPolling:I.authPolling,setAuthPolling:I.setAuthPolling,authLoading:I.authLoading,setAuthLoading:I.setAuthLoading,pinError:I.pinError,setPinError:I.setPinError,setAppState:I.setAppState}):I.appState===`enter-pin`?(0,z.jsx)(kt,{pin:I.pin,setPin:I.setPin,showPin:I.showPin,setShowPin:I.setShowPin,pinLoading:I.pinLoading,pinError:I.pinError,pinInputRef:I.pinInputRef,onSubmit:I.handleLogin,onChangePin:I.handleChangePin}):I.appState===`account-picker`?(0,z.jsx)(At,{accounts:I.accounts,loading:I.accountPickerLoading,error:I.pinError,onSelect:I.handleAccountSelect}):(0,z.jsx)(w,{value:{onShowVnc:()=>ie(!0)},children:(0,z.jsxs)(`div`,{className:`chat-page admin-page`,children:[(0,z.jsxs)(`header`,{className:`chat-header`,children:[(0,z.jsx)(`img`,{src:ae,alt:y.productName,className:`chat-logo`}),(!y.logoContainsName||I.businessName)&&(0,z.jsx)(`div`,{children:(0,z.jsx)(`h1`,{className:`chat-tagline`,children:I.businessName||y.productName})}),(0,z.jsxs)(`div`,{className:`chat-burger-wrap`,ref:ge,children:[(0,z.jsx)(`button`,{type:`button`,className:`chat-burger`,onClick:()=>d(e=>!e),"aria-label":`Menu`,"aria-haspopup":`true`,"aria-expanded":u,children:(0,z.jsx)(de,{size:20})}),u&&(0,z.jsxs)(`div`,{className:`chat-menu`,children:[(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:async()=>{if(!(re||le)){ue(!0),d(!1);try{let e=await(await fetch(`/api/admin/browser/launch`,{method:`POST`})).json().catch(()=>({ok:!1,error:`Invalid response`}));if(!e.ok)throw Error(e.error??`Failed to launch browser`);ie(!0)}catch(e){console.error(`[browser] Launch failed:`,e),alert(e instanceof Error?e.message:`Failed to launch browser`)}finally{ue(!1)}}},disabled:le,children:[(0,z.jsx)(O,{size:14}),` Browser`,le&&(0,z.jsx)(oe,{size:12,className:`spin`})]}),(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{d(!1),window.location.href=`/data`},children:[(0,z.jsx)(se,{size:14}),` Data`]}),(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{d(!1),window.location.href=`/graph/browser/`},children:[(0,z.jsx)(pe,{size:14}),` Graph`]}),(0,z.jsx)(`div`,{className:`chat-menu-divider`}),(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:async()=>{if(p!==null){m(null),S(null);return}g(!0),b(null);try{let e=await fetch(`/api/admin/agents`);if(!e.ok)throw Error(`Failed to load agents`);m((await e.json()).agents??[])}catch(e){console.error(`[admin] agent list failed:`,e),b(e instanceof Error?e.message:String(e))}finally{g(!1)}},children:[(0,z.jsx)(Oe,{size:14}),` Public`,h&&(0,z.jsx)(oe,{size:12,className:`spin`})]}),p!==null&&(0,z.jsxs)(`div`,{className:`chat-menu-agents`,children:[_&&(0,z.jsx)(`span`,{className:`chat-menu-agent-error`,children:_}),p.length===0&&!_&&(0,z.jsx)(`span`,{className:`chat-menu-agent-empty`,children:`No public agents configured`}),p.map(e=>(0,z.jsxs)(`div`,{className:`chat-menu-item chat-menu-agent-item`,children:[(0,z.jsx)(`span`,{className:`agent-status-dot ${e.status}`}),(0,z.jsxs)(`span`,{className:`agent-text`,children:[(0,z.jsx)(`span`,{className:`agent-display-name`,children:e.displayName}),(0,z.jsxs)(`span`,{className:`agent-slug`,children:[`/`,e.slug]})]}),x===e.slug?(0,z.jsxs)(`span`,{className:`agent-actions agent-confirm`,children:[(0,z.jsx)(`button`,{type:`button`,className:`agent-action-btn agent-confirm-yes`,title:`Confirm delete`,onClick:()=>{S(null),m(t=>t?.filter(t=>t.slug!==e.slug)??null),fetch(`/api/admin/agents/${encodeURIComponent(e.slug)}`,{method:`DELETE`}).catch(e=>console.error(`[admin/agents] delete failed:`,e))},children:(0,z.jsx)(f,{size:12})}),(0,z.jsx)(`button`,{type:`button`,className:`agent-action-btn agent-confirm-no`,title:`Cancel`,onClick:()=>S(null),children:(0,z.jsx)(at,{size:12})})]}):(0,z.jsxs)(`span`,{className:`agent-actions`,children:[(0,z.jsx)(`a`,{href:`${s}/${e.slug}`,target:`_blank`,rel:`noopener noreferrer`,className:`agent-action-btn`,title:`Open agent`,onClick:()=>d(!1),children:(0,z.jsx)(Oe,{size:12})}),(0,z.jsx)(`button`,{type:`button`,className:`agent-action-btn agent-delete-btn`,title:`Delete agent`,onClick:()=>S(e.slug),children:(0,z.jsx)(v,{size:12})})]})]},e.slug))]}),(0,z.jsx)(`div`,{className:`chat-menu-divider`}),N?.updateAvailable?(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-version`,onClick:()=>{N.latest&&(ne(N),d(!1),te(!0))},children:[(0,z.jsx)(Fe,{size:14}),(0,z.jsxs)(`span`,{className:`version-installed`,children:[`v`,N.installed,(0,z.jsx)(`span`,{className:`version-update-dot`})]})]}):(0,z.jsxs)(`div`,{className:`chat-menu-version chat-menu-version-passive`,children:[(0,z.jsx)(Fe,{size:14}),(0,z.jsxs)(`span`,{className:`version-installed`,children:[N?`v${N.installed}`:`…`,N&&!N.updateAvailable&&(0,z.jsx)(`span`,{className:`version-uptodate-dot`})]})]}),(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{d(!1),I.handleLogout(),L.setMessages([])},children:[(0,z.jsx)(ce,{size:14}),` Log out`]})]})]})]}),(0,z.jsx)(dE,{messages:L.messages,isStreaming:L.isStreaming,elapsedSeconds:ve.elapsedSeconds,sessionTurnStart:ve.sessionTurnStart,expandAll:I.expandAll,setExpandAll:I.setExpandAll,conversationCompacted:L.conversationCompacted,isCompacting:L.isCompacting,setShowCompactConfirm:o,handleComponentSubmit:L.handleComponentSubmit,effectiveSubmitted:L.effectiveSubmitted,selectionMode:_e.selectionMode,selectedItems:_e.selectedItems,toggleSelectItem:_e.toggleSelectItem,sessionKey:I.sessionKey,setLightboxSrc:n,messageQueue:L.messageQueue,messageQueueRef:L.messageQueueRef,setQueue:L.setQueue,sendMessage:L.sendMessage,appState:I.appState,onboardingComplete:I.onboardingComplete}),(0,z.jsx)(fE,{offer:L.topicChangeOffer,onFreshStart:L.handleTopicFreshStart,onContinue:L.handleTopicContinue,disabled:L.isStreaming}),(0,z.jsx)(hE,{selectionMode:_e.selectionMode,selectedItems:_e.selectedItems,copyToast:_e.copyToast||null,exitSelection:_e.exitSelection,enterSelection:_e.enterSelection,copySelected:_e.copySelected,showCopyToast:_e.showCopyToast,input:L.input,setInput:L.setInput,inputRef:e,pendingFiles:ye.pendingFiles,setPendingFiles:ye.setPendingFiles,isDragOver:ye.isDragOver,attachError:ye.attachError,fileInputRef:ye.fileInputRef,addFiles:ye.addFiles,removeFile:ye.removeFile,onDragOver:ye.onDragOver,onDragLeave:ye.onDragLeave,onDrop:ye.onDrop,isStreaming:L.isStreaming,wasPaused:L.wasPaused,messages:L.messages,messageQueueRef:L.messageQueueRef,setQueue:L.setQueue,sendMessage:L.sendMessage,stopStreaming:L.stopStreaming,disconnecting:I.disconnecting,handleDisconnect:I.handleDisconnect,claudeInfo:I.claudeInfo,setClaudeInfo:I.setClaudeInfo,setShowClaudeInfo:i,conversationId:I.conversationId,onNewConversation:L.startNewConversation,newConversationDisabled:L.isStreaming||L.isCompacting,onOpenConversations:async()=>{T(!0),A(!0),M(null);try{let e=await fetch(`/api/admin/sessions?session_key=${encodeURIComponent(I.sessionKey)}`);if(!e.ok)throw Error(`Failed to load conversations`);D((await e.json()).sessions??[])}catch(e){console.error(`[admin] conversation list failed:`,e),M(e instanceof Error?e.message:String(e))}finally{A(!1)}}}),_e.copyToast&&(0,z.jsx)(`span`,{className:`copy-toast${_e.copyToast===`failed`?` copy-toast-failed`:``}`,children:_e.copyToast===`copied`?`Copied`:`Copy failed`}),(0,z.jsx)(gE,{show:C,onClose:()=>T(!1),conversationsLoading:k,conversationsError:j,conversationsList:E,setConversationsList:D,sessionKey:I.sessionKey,isStreaming:L.isStreaming,resetConversation:L.resetConversation,setMessages:L.setMessages,setConversationId:I.setConversationId}),(0,z.jsx)(_E,{src:t,onClose:()=>n(null)}),(0,z.jsx)(vE,{show:a,onClose:()=>o(!1),onConfirm:L.handleCompactNow}),(0,z.jsx)(yE,{show:r,onClose:()=>{i(!1),I.setClaudeInfo(null)},claudeInfo:I.claudeInfo,messages:L.messages,sessionElapsed:ve.sessionElapsed,conversationId:I.conversationId,contextModeHint:I.contextModeHint,handleContextModeToggle:I.handleContextModeToggle}),(0,z.jsx)(SE,{show:ee,onClose:()=>{te(!1),he.current=!0},versionInfo:F,sessionKey:I.sessionKey,onUpgradeComplete:()=>P(null)}),re&&(0,z.jsx)(CE,{onClose:()=>ie(!1)})]})})}(0,st.createRoot)(document.getElementById(`root`)).render((0,z.jsx)(wE,{}));
352
+ `)}function mE(e){let{selectionMode:t,selectedItems:n,copyToast:r,exitSelection:i,enterSelection:a,copySelected:o,showCopyToast:c,input:d,setInput:f,inputRef:v,pendingFiles:y,setPendingFiles:b,isDragOver:x,attachError:S,fileInputRef:C,addFiles:w,removeFile:T,onDragOver:O,onDragLeave:A,onDrop:j,isStreaming:N,wasPaused:P,messages:te,messageQueueRef:ne,setQueue:re,sendMessage:ie,stopStreaming:ae,disconnecting:se,handleDisconnect:ce,claudeInfo:le,setClaudeInfo:ue,setShowClaudeInfo:fe,conversationId:pe,onNewConversation:me,newConversationDisabled:he,onOpenConversations:ge}=e,[ve,I]=(0,R.useState)(!1),ye=(0,R.useRef)(null),[L,be]=(0,R.useState)(!1),xe=(0,R.useRef)(null),Se=(0,R.useRef)(!1),Ce=F(),we=Ce.state===`recording`||Ce.state===`paused`||Ce.state===`sending`,Te=!we&&!P&&!d.trim()&&y.length===0;async function Ee(){let e=await Ce.send();if(!e)return;let t=e.type===`audio/ogg`?`.ogg`:e.type===`audio/mp4`?`.m4a`:`.webm`,n=new File([e],`voice-note${t}`,{type:e.type});if(N){re([...ne.current,{text:`[Voice note]`,files:[n],timestamp:Date.now()}]);return}ie(`[Voice note]`,[n])}return(0,R.useEffect)(()=>{t||be(!1)},[t]),(0,R.useEffect)(()=>{if(!L)return;let e=e=>{e.target.closest(`.selection-copy-wrap`)||be(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[L]),(0,R.useEffect)(()=>{if(!ve)return;let e=e=>{if(e.key===`Escape`){I(!1);return}if(e.key===`Tab`&&ye.current){let t=ye.current.querySelectorAll(`.actions-menu-items button:not([disabled])`);if(t.length===0)return;let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}},t=e=>{ye.current&&!ye.current.contains(e.target)&&I(!1)};return document.addEventListener(`keydown`,e),document.addEventListener(`mousedown`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`mousedown`,t)}},[ve]),t?(0,z.jsx)(`div`,{className:`chat-input-area`,children:(0,z.jsxs)(`div`,{className:`selection-bar`,children:[(0,z.jsxs)(`span`,{className:`selection-count`,children:[n.size,` Selected`]}),(0,z.jsxs)(`div`,{className:`selection-copy-wrap`,children:[(0,z.jsxs)(`button`,{type:`button`,className:`selection-copy`,onPointerDown:()=>{if(L){be(!1);return}Se.current=!1,xe.current=setTimeout(()=>{Se.current=!0,be(!0),xe.current=null},500)},onPointerUp:()=>{xe.current!==null&&(clearTimeout(xe.current),xe.current=null)},onPointerLeave:()=>{xe.current!==null&&(clearTimeout(xe.current),xe.current=null)},onPointerCancel:()=>{xe.current!==null&&(clearTimeout(xe.current),xe.current=null)},onClick:async()=>{Se.current||await o(e=>fE(te,e),(e,t)=>{let[n,r]=[e.slice(0,e.lastIndexOf(`_`)),e.slice(e.lastIndexOf(`_`)+1)],[i,a]=[t.slice(0,t.lastIndexOf(`_`)),t.slice(t.lastIndexOf(`_`)+1)],o=parseInt(n,10)-parseInt(i,10);return o===0?r===`admin`?-1:a===`admin`?1:parseInt(r,10)-parseInt(a,10):o})},children:[(0,z.jsx)(g,{size:18}),(0,z.jsx)(`span`,{children:`Copy`})]}),L&&(0,z.jsx)(`div`,{className:`copy-menu`,children:[[`all`,`All events`],[`text`,`Text messages only`],[`non-text`,`Non-text only`]].map(([e,t])=>(0,z.jsx)(`button`,{type:`button`,className:`copy-menu-item`,onClick:async()=>{let t=pE(te,e);t&&c(await _(t)),i()},children:t},e))})]}),(0,z.jsx)(`button`,{type:`button`,className:`selection-cancel`,onClick:i,children:`Cancel`})]})}):(0,z.jsxs)(`div`,{className:`chat-input-area`,children:[(0,z.jsx)(`input`,{ref:C,type:`file`,multiple:!0,accept:ft,style:{display:`none`},onChange:e=>{e.target.files&&w([...e.target.files]),e.target.value=``}}),y.length>0&&(0,z.jsx)(`div`,{className:`attachment-strip`,children:y.map((e,t)=>(0,z.jsxs)(`div`,{className:`attachment-chip`,children:[e.type.startsWith(`image/`)?(0,z.jsx)(`img`,{src:URL.createObjectURL(e),alt:e.name,className:`attachment-chip-thumb`}):e.type===`application/pdf`?(0,z.jsx)(p,{size:14}):(0,z.jsx)(m,{size:14}),(0,z.jsx)(`span`,{className:`attachment-chip-name`,children:e.name}),(0,z.jsx)(`button`,{type:`button`,className:`attachment-chip-remove`,onClick:()=>T(t),"aria-label":`Remove ${e.name}`,children:`×`})]},t))}),S&&(0,z.jsx)(`p`,{className:`attach-error`,children:S}),Ce.state===`error`&&Ce.errorMessage&&(0,z.jsxs)(`p`,{className:`voice-error`,role:`alert`,children:[(0,z.jsx)(s,{size:14}),Ce.errorMessage]}),(0,z.jsx)(D,{inputRef:v}),we?(0,z.jsx)(`div`,{className:`chat-form voice-active`,children:(0,z.jsx)(M,{state:Ce.state,elapsedSeconds:Ce.elapsedSeconds,waveform:Ce.waveform,onTogglePause:Ce.togglePause,onDiscard:Ce.discard,onSend:Ee})}):(0,z.jsxs)(`form`,{className:`chat-form${x?` drag-over`:``}`,onSubmit:e=>{e.preventDefault();let t=d.trim()||(P?`continue`:``);if(!(!t&&y.length===0)){if(N){re([...ne.current,{text:t,files:[...y],timestamp:Date.now()}]),f(``),b([]),v.current?.resetHeight();return}ie(t),v.current?.resetHeight()}},onDragOver:O,onDragLeave:A,onDrop:j,onPaste:e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t){if(e.kind!==`file`)continue;let t=e.getAsFile();if(!t)continue;let r=t.type.split(`/`)[1]?.replace(`jpeg`,`jpg`)||`png`;n.push(new File([t],`pasted-image-${Date.now()}.${r}`,{type:t.type}))}n.length>0&&w(n)},children:[(0,z.jsx)(E,{variant:`icon`,type:`button`,onClick:()=>C.current?.click(),"aria-label":`Attach file`,children:(0,z.jsx)(k,{size:14})}),(0,z.jsx)(ee,{ref:v,value:d,onChange:f}),N?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(E,{variant:`send`,type:`button`,onClick:()=>ae(!0),"aria-label":`Pause`,style:{background:`var(--text-secondary)`},children:(0,z.jsx)(h,{size:14})}),(0,z.jsx)(E,{variant:`send`,type:`button`,onClick:()=>ae(!1),"aria-label":`Stop`,style:{background:`var(--danger)`},children:(0,z.jsx)(et,{size:14})})]}):Te?(0,z.jsx)(E,{variant:`send`,type:`button`,onClick:Ce.start,"aria-label":`Record voice note`,children:(0,z.jsx)(s,{size:14})}):(0,z.jsx)(E,{variant:`send`,type:`submit`,disabled:!d.trim()&&y.length===0&&!P,"aria-label":`Send message`,children:P?(0,z.jsx)(l,{size:14}):(0,z.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,z.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,z.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,z.jsxs)(`div`,{className:`chat-actions`,ref:ye,children:[(0,z.jsx)(`button`,{className:`burger-trigger`,onClick:()=>I(e=>!e),"aria-expanded":ve,"aria-haspopup":`true`,"aria-label":`Actions menu`,children:(0,z.jsx)(de,{size:16})}),(0,z.jsxs)(`div`,{className:`actions-menu-items${ve?` actions-menu-open`:``}`,children:[(0,z.jsxs)(`button`,{className:`chat-action`,disabled:he,onClick:()=>{I(!1),me()},children:[(0,z.jsx)(Me,{size:14}),(0,z.jsx)(`span`,{className:`action-label`,children:`New conversation`})]}),(0,z.jsxs)(`button`,{className:`chat-action`,onClick:()=>{I(!1),ge()},children:[(0,z.jsx)(Be,{size:14}),(0,z.jsx)(`span`,{className:`action-label`,children:`Conversations`})]}),(0,z.jsxs)(`button`,{className:`chat-action`,disabled:se,onClick:async()=>{I(!1),await ce()},children:[se?(0,z.jsx)(oe,{size:14,className:`animate-spin`}):(0,z.jsx)(_e,{size:14}),(0,z.jsx)(`span`,{className:`action-label`,children:se?`Disconnecting...`:`Disconnect Claude`})]}),(0,z.jsxs)(`button`,{className:`chat-action`,disabled:!pe,onClick:()=>{if(I(!1),!pe){console.debug(`[stream-log-button] disabled reason=no-conversation-id`);return}let e=document.createElement(`a`);e.href=`/api/admin/logs?type=stream&conversationId=${encodeURIComponent(pe)}&download=1`,e.click()},title:pe?`Download stream log`:`No conversation active — start a message to create a stream log`,children:[(0,z.jsx)(Ze,{size:14}),(0,z.jsx)(`span`,{className:`action-label`,children:`Stream log`})]}),(0,z.jsxs)(`button`,{className:`chat-action`,onClick:()=>{I(!1),a()},title:`Select messages`,children:[(0,z.jsx)(u,{size:14}),(0,z.jsx)(`span`,{className:`action-label`,children:`Select`})]})]}),(0,z.jsxs)(`div`,{className:`powered-by`,onClick:async()=>{if(fe(!0),!le){let e=await fetch(`/api/admin/claude-info`);e.ok&&ue(await e.json())}},children:[(0,z.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`powered-by-icon`}),(0,z.jsx)(`span`,{children:`Powered by Claude Code`})]})]})]})}function hE(e){let{show:t,onClose:n,conversationsLoading:r,conversationsError:i,conversationsList:a,setConversationsList:o,sessionKey:s,isStreaming:c,resetConversation:u,setMessages:d,setConversationId:p}=e,[m,h]=(0,R.useState)(null),[g,_]=(0,R.useState)(null),[y,b]=(0,R.useState)(``),[x,S]=(0,R.useState)(!1),C=(0,R.useRef)(null);(0,R.useEffect)(()=>{t||(h(null),_(null),b(``),S(!1))},[t]),(0,R.useEffect)(()=>{g?.phase===`editing`&&(C.current?.focus(),C.current?.select())},[g]);function w(){h(null),_(null),b(``),S(!1)}async function T(e){if(s){w(),h(e),_({phase:`loading`});try{let t=await fetch(`/api/admin/sessions/${encodeURIComponent(e)}/label?session_key=${encodeURIComponent(s)}`,{method:`POST`});if(!t.ok){_({phase:`error`,reason:(await t.json().catch(()=>({}))).error||`Request failed`});return}let n=await t.json();n.label?(_({phase:`editing`}),b(n.label)):_({phase:`error`,reason:`Not enough message content to suggest a name`})}catch(e){console.error(`[admin-modal] label suggestion failed:`,e),_({phase:`error`,reason:e instanceof Error?e.message:String(e)})}}}async function E(e){if(!(!s||!y.trim()||x)){S(!0);try{let t=await fetch(`/api/admin/sessions/${encodeURIComponent(e)}/label`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({label:y.trim(),session_key:s})});if(!t.ok){_({phase:`error`,reason:(await t.json().catch(()=>({}))).error||`Rename failed`}),S(!1);return}o(t=>t.map(t=>t.conversationId===e?{...t,name:y.trim()}:t)),w()}catch(e){console.error(`[admin-modal] label rename failed:`,e),_({phase:`error`,reason:e instanceof Error?e.message:String(e)}),S(!1)}}}return t?(0,z.jsx)(`div`,{className:`claude-info-overlay`,onClick:n,children:(0,z.jsxs)(`div`,{className:`claude-info-modal conversations-modal`,onClick:e=>e.stopPropagation(),children:[(0,z.jsxs)(`div`,{className:`claude-info-header`,children:[(0,z.jsx)(Be,{size:12}),`Conversations`,(0,z.jsx)(`button`,{className:`claude-info-close`,onClick:n,children:`✕`})]}),(0,z.jsxs)(`div`,{className:`conversations-list`,children:[r&&(0,z.jsxs)(`div`,{className:`conversations-empty`,children:[(0,z.jsx)(oe,{size:14,className:`spin`}),` Loading…`]}),i&&(0,z.jsx)(`div`,{className:`conversations-empty conversations-error`,children:i}),!r&&!i&&a.length===0&&(0,z.jsx)(`div`,{className:`conversations-empty`,children:`No recent conversations`}),!r&&!i&&a.map(e=>{let t=m===e.conversationId,r=t&&g?.phase===`loading`,i=t&&g?.phase===`editing`,a=t&&g?.phase===`error`;return(0,z.jsxs)(`div`,{className:`conversations-row`,children:[(0,z.jsxs)(`div`,{className:`conversations-row-info`,children:[r&&(0,z.jsxs)(`span`,{className:`conversations-row-name conversations-edit-loading`,children:[(0,z.jsx)(oe,{size:12,className:`spin`}),` Generating suggestion…`]}),i&&(0,z.jsxs)(`div`,{className:`conversations-edit-inline`,children:[(0,z.jsx)(`input`,{ref:C,type:`text`,className:`conversations-edit-input`,value:y,onChange:e=>b(e.target.value),onKeyDown:t=>{t.key===`Enter`&&y.trim()&&E(e.conversationId),t.key===`Escape`&&w()},maxLength:200}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-confirm`,title:`Confirm rename`,disabled:!y.trim()||x,onClick:()=>E(e.conversationId),children:x?(0,z.jsx)(oe,{size:13,className:`spin`}):(0,z.jsx)(f,{size:13})}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-cancel`,title:`Cancel`,onClick:w,children:(0,z.jsx)(at,{size:13})})]}),a&&(0,z.jsxs)(`div`,{className:`conversations-edit-inline`,children:[(0,z.jsx)(`span`,{className:`conversations-edit-error`,children:g.reason}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-retry`,title:`Retry`,onClick:()=>T(e.conversationId),children:(0,z.jsx)(Xe,{size:13})}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-cancel`,title:`Cancel`,onClick:w,children:(0,z.jsx)(at,{size:13})})]}),!t&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`conversations-row-name`,children:e.name||e.conversationId.slice(0,12)+`…`}),(0,z.jsxs)(`span`,{className:`conversations-row-meta`,children:[(0,z.jsx)(`span`,{className:`conversations-row-id`,children:e.conversationId.slice(0,8)}),(0,z.jsxs)(`span`,{className:`conversations-row-time`,children:[(0,z.jsx)(Ce,{size:10}),(()=>{try{let t=new Date(e.updatedAt),n=Date.now()-t.getTime();return n<6e4?`just now`:n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}catch{return``}})()]})]})]})]}),(0,z.jsx)(`div`,{className:`conversations-row-actions`,children:!t&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-rename`,title:`Rename conversation`,onClick:()=>T(e.conversationId),children:(0,z.jsx)(Je,{size:13})}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-play`,title:`Resume conversation`,disabled:c,onClick:()=>{c||!s||(n(),u(),fetch(`/api/admin/sessions/${encodeURIComponent(e.conversationId)}/resume?session_key=${encodeURIComponent(s)}`,{method:`POST`}).then(e=>e.ok?e.json():Promise.reject(Error(`Failed to resume conversation`))).then(e=>{e.conversationId&&p(e.conversationId);let t=(e.messages??[]).map(e=>({role:e.role===`user`?`admin`:`maxy`,content:e.role===`user`?e.content:void 0,events:e.role===`assistant`?[{type:`text`,content:e.content}]:void 0,timestamp:new Date(e.createdAt).getTime()||0,historical:!0}));t.length>0&&d(t)}).catch(e=>{console.error(`[chat] conversation resume failed:`,e),d([{role:`maxy`,events:[{type:`text`,content:`Could not load conversation history.`}],timestamp:Date.now()-1,historical:!0}])}))},children:(0,z.jsx)(l,{size:13})}),(0,z.jsx)(`button`,{type:`button`,className:`conversations-action conversations-delete`,title:`Delete conversation`,onClick:()=>{o(t=>t.filter(t=>t.conversationId!==e.conversationId)),s&&fetch(`/api/admin/sessions/${encodeURIComponent(e.conversationId)}?session_key=${encodeURIComponent(s)}`,{method:`DELETE`}).catch(e=>console.error(`[chat] conversation delete failed:`,e))},children:(0,z.jsx)(v,{size:13})})]})})]},e.conversationId)})]})]})}):null}function gE({src:e,onClose:t}){return e?(0,z.jsxs)(`div`,{className:`attachment-lightbox`,onClick:t,children:[(0,z.jsx)(`button`,{className:`attachment-lightbox-close`,onClick:t,"aria-label":`Close`,children:`×`}),(0,z.jsx)(`img`,{src:e,alt:`Attachment`,onClick:e=>e.stopPropagation()})]}):null}function _E({show:e,onClose:t,onConfirm:n}){return e?(0,z.jsx)(`div`,{className:`claude-info-overlay`,onClick:t,children:(0,z.jsxs)(`div`,{className:`claude-info-modal`,onClick:e=>e.stopPropagation(),children:[(0,z.jsxs)(`div`,{className:`claude-info-header`,children:[(0,z.jsx)(`span`,{children:`Compact conversation?`}),(0,z.jsx)(`button`,{className:`claude-info-close`,onClick:t,"aria-label":`Close`,children:`✕`})]}),(0,z.jsx)(`div`,{className:`claude-info-section`,style:{padding:`12px 14px`,fontSize:`11px`,color:`var(--text-secondary)`},children:`Summarises the conversation history to free up context window space. The session continues with a compressed summary.`}),(0,z.jsxs)(`div`,{className:`claude-info-section`,style:{display:`flex`,gap:`8px`,padding:`10px 14px`},children:[(0,z.jsx)(E,{variant:`secondary`,size:`sm`,style:{background:`var(--accent)`,flex:1},onClick:()=>{t(),n()},children:`Yes, compact`}),(0,z.jsx)(E,{variant:`secondary`,size:`sm`,style:{flex:1},onClick:t,children:`No`})]})]})}):null}function vE(e){let{show:t,onClose:n,claudeInfo:r,messages:i,sessionElapsed:a,conversationId:o,contextModeHint:s,handleContextModeToggle:c}=e;if(!t)return null;let l=i.flatMap(e=>e.events?.filter(e=>e.type===`usage`)??[]),u=l.at(-1),d=u?.peak_request_pct==null?u?.context_window?Math.round((u.input_tokens+u.cache_creation_tokens+u.cache_read_tokens)/u.context_window*100):0:Math.round(u.peak_request_pct*100),f=l.reduce((e,t)=>e+t.input_tokens+t.cache_creation_tokens+t.cache_read_tokens+t.output_tokens,0),p=i.flatMap(e=>e.events?.filter(e=>e.type===`rate_limit`)??[]).at(-1),m=l.reduce((e,t)=>e+(t.total_cost_usd??0),0),h=r?.account?.subscriptionType,g=e=>{let t=e*1e3-Date.now();if(t<=0)return`now`;let n=Math.floor(t/36e5),r=Math.floor(t%36e5/6e4);return n>0?`${n}h ${r}m`:`${r}m`};return(0,z.jsx)(`div`,{className:`claude-info-overlay`,onClick:n,children:(0,z.jsxs)(`div`,{className:`claude-info-modal`,onClick:e=>e.stopPropagation(),children:[(0,z.jsxs)(`div`,{className:`claude-info-header`,children:[(0,z.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`claude-info-icon`}),(0,z.jsx)(`span`,{children:`Claude Code`}),(0,z.jsx)(`button`,{className:`claude-info-close`,onClick:n,"aria-label":`Close`,children:`✕`})]}),(0,z.jsxs)(`div`,{className:`claude-info-section`,children:[(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Version`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:r?r.version:`…`})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Email`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:r?.account?.email??`…`})]})]}),(h||p||m>0)&&(0,z.jsxs)(`div`,{className:`claude-info-section`,children:[h&&(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Plan`}),(0,z.jsx)(`span`,{className:`claude-info-value`,style:{textTransform:`capitalize`},children:h})]}),p&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Usage`}),(0,z.jsxs)(`span`,{className:`claude-info-value`,children:[Math.round(p.utilization*100),`%`]})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Resets in`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:g(p.resetsAt)})]}),p.isUsingOverage&&(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Overage`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:`Active`})]})]}),m>0&&(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Session cost`}),(0,z.jsxs)(`span`,{className:`claude-info-value`,children:[`$`,m<.01?m.toFixed(4):m.toFixed(2)]})]})]}),(0,z.jsxs)(`div`,{className:`claude-info-section`,children:[(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Model`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:r?.model??`…`})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Context mode`}),(0,z.jsxs)(`span`,{className:`claude-info-value claude-info-toggle`,role:`button`,tabIndex:0,onClick:c,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),c())},children:[r?.contextMode??`…`,s?` (next turn)`:``]})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Context used`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:d>0?`${d}%`:`—`})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Tokens`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:f>0?ut(f):`—`})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Session`}),(0,z.jsx)(`span`,{className:`claude-info-value`,children:lt(a)})]}),o&&(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Conversation`}),(0,z.jsx)(`span`,{className:`claude-info-value`,style:{fontFamily:`monospace`,fontSize:10},children:o.slice(0,8)})]})]})]})})}var yE=2e3,bE=9e5;function xE({show:e,onClose:t,versionInfo:n,sessionKey:r,onUpgradeComplete:i}){let[a,o]=(0,R.useState)(`idle`),[s,c]=(0,R.useState)(null),[l,u]=(0,R.useState)({step:0,total:11,label:``,started:!1,subSteps:[]}),d=(0,R.useRef)(null),f=(0,R.useRef)(null),p=(0,R.useRef)(null),m=(0,R.useRef)(0),h=(0,R.useRef)(!1),g=n?.latest??null;(0,R.useEffect)(()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight)},[l.subSteps]);let _=(0,R.useCallback)(()=>{d.current&&=(clearInterval(d.current),null),f.current&&=(clearTimeout(f.current),null)},[]);(0,R.useEffect)(()=>{e||(_(),o(`idle`),c(null),u({step:0,total:11,label:``,started:!1,subSteps:[]}),m.current=0,h.current=!1)},[e,_]),(0,R.useEffect)(()=>_,[_]);let v=a===`success`?100:l.total>0?l.step/l.total*90:0;function y(){let e=0;d.current=setInterval(async()=>{e++;let t=!1;try{let e=await fetch(`/api/admin/version/upgrade/progress`);if(e.ok){let t=await e.json();if(m.current=0,t.started&&u(t),t.finished&&(h.current=!0),t.failed){_(),o(`error`),c(`Upgrade failed — check device logs for details.`);return}}else h.current||(m.current++,t=!0,console.warn(`[update] progress poll non-ok status=${e.status} consecutive=${m.current}`))}catch(e){h.current||(m.current++,t=!0,console.warn(`[update] progress poll failed (consecutive=${m.current}):`,e))}let n=!1;try{let t=await fetch(`/api/admin/version`);if(t.ok){let n=await t.json();if(g&&n.installed===g){console.log(`[update] transitioned to success via version check tick=${e}`),_(),o(`success`),i(),f.current=setTimeout(()=>window.location.reload(),2e3);return}}else n=!0,console.warn(`[update] version check returned status=${t.status} — main service unreachable`)}catch(e){n=!0,console.warn(`[update] version check threw — main service unreachable:`,e)}if(n&&o(e=>e===`upgrading`?(console.warn(`[update] entering restarting state (expected during step-8→11 window)`),`restarting`):e),t&&m.current>=3&&!n){_(),o(`error`),c(`Upgrade monitoring stopped — the progress endpoint is failing while the main service is reachable. Check device logs.`);return}},yE)}async function b(){if(!r){console.warn(`[update] Upgrade blocked: no session key`),o(`error`),c(`Session expired — please log in again`);return}if(!g){console.warn(`[update] Upgrade blocked: no target version`),o(`error`),c(`Version data unavailable — close and try again`);return}o(`upgrading`),c(null),u({step:0,total:11,label:`Starting upgrade…`,started:!1,subSteps:[]}),m.current=0,f.current=setTimeout(()=>{_(),o(`error`),c(`Upgrade timed out. Check device logs for details.`)},bE);try{let e=await(await fetch(`/api/admin/version/upgrade`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_key:r})})).json();if(!e.ok){_(),o(`error`),c(e.error||`Upgrade failed`);return}y()}catch(e){console.error(`[update] upgrade request failed:`,e),_(),o(`error`),c(e instanceof Error?e.message:String(e))}}return e?(0,z.jsx)(`div`,{className:`claude-info-overlay`,onClick:()=>{(a===`idle`||a===`success`||a===`error`)&&t()},children:(0,z.jsxs)(`div`,{className:`claude-info-modal update-modal`,onClick:e=>e.stopPropagation(),children:[(0,z.jsxs)(`div`,{className:`claude-info-header`,children:[(0,z.jsx)(fe,{size:12}),`Software Update`,(a===`idle`||a===`success`||a===`error`)&&(0,z.jsx)(`button`,{className:`claude-info-close`,onClick:t,children:`✕`})]}),a===`idle`&&(0,z.jsxs)(`div`,{className:`update-modal-body`,children:[(0,z.jsxs)(`div`,{className:`update-modal-versions`,children:[(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Installed`}),(0,z.jsxs)(`span`,{className:`claude-info-value`,children:[`v`,n?.installed??`…`]})]}),(0,z.jsxs)(`div`,{className:`claude-info-row`,children:[(0,z.jsx)(`span`,{className:`claude-info-label`,children:`Available`}),(0,z.jsxs)(`span`,{className:`claude-info-value update-version-new`,children:[`v`,g??`…`]})]})]}),(0,z.jsx)(`button`,{type:`button`,className:`update-modal-btn`,onClick:b,children:`Upgrade`})]}),(a===`upgrading`||a===`restarting`)&&(0,z.jsx)(`div`,{className:`update-modal-body`,children:(0,z.jsxs)(`div`,{className:`update-modal-progress-wrap`,children:[(0,z.jsx)(`div`,{className:`update-modal-progress-bar`,children:(0,z.jsx)(`div`,{className:`update-modal-progress-fill`,style:{width:`${v}%`}})}),(0,z.jsxs)(`div`,{className:`update-modal-phase`,children:[(0,z.jsx)(oe,{size:12,className:`spin`}),(0,z.jsxs)(`span`,{className:`update-modal-step-detail`,children:[l.step>0&&l.total>0&&(0,z.jsxs)(`span`,{className:`update-modal-step-count`,children:[l.step,`/`,l.total]}),l.label||(a===`restarting`?`Restarting service…`:`Starting upgrade…`)]})]}),l.subSteps&&l.subSteps.length>0&&(0,z.jsx)(`div`,{ref:p,className:`update-modal-substeps`,children:l.subSteps.map((e,t)=>(0,z.jsx)(`div`,{className:`update-modal-substep-line`,children:e},t))})]})}),a===`success`&&(0,z.jsxs)(`div`,{className:`update-modal-body update-modal-result`,children:[(0,z.jsx)(L,{size:14,className:`update-success-icon`}),(0,z.jsxs)(`span`,{children:[`Upgraded to v`,g]})]}),a===`error`&&(0,z.jsxs)(`div`,{className:`update-modal-body update-modal-result`,children:[(0,z.jsx)(re,{size:14,className:`update-error-icon`}),(0,z.jsx)(`span`,{children:s})]})]})}):null}function SE({onClose:e}){ct();let[t,n]=(0,R.useState)(!1),r=(0,R.useRef)(null),i=(0,R.useRef)(null),a=(0,R.useCallback)(()=>{i.current&&=(clearInterval(i.current),null),r.current&&!r.current.closed&&r.current.close(),r.current=null,n(!1)},[]),o=(0,R.useCallback)(()=>{let t=`/vnc-popout.html?title=${encodeURIComponent(y.productName)}`,o=window.open(t,`maxy-vnc-overlay-popout`,`width=1024,height=768`);o&&(r.current=o,n(!0),i.current=setInterval(()=>{r.current?.closed&&(a(),e())},500))},[a,e]),s=(0,R.useCallback)(()=>{a(),e()},[a,e]);(0,R.useEffect)(()=>{if(t)return;let e=e=>{e.key===`Escape`&&s()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t,s]),(0,R.useEffect)(()=>()=>a(),[a]);let c=zt({handlePopout:o,disabled:t});return t?(0,z.jsxs)(`div`,{className:`browser-overlay-popout`,children:[(0,z.jsx)(O,{className:`browser-viewer__icon`}),(0,z.jsx)(`span`,{className:`browser-viewer__title`,children:y.productName}),(0,z.jsx)(`span`,{className:`browser-viewer__popout-label`,children:`Popped out`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Ge,onClick:()=>{a()},"aria-label":`Pop back in`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:at,onClick:s,"aria-label":`Close`})]}):(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen`,children:[(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen__bar`,...c,children:[(0,z.jsx)(O,{className:`browser-viewer__icon`}),(0,z.jsx)(`span`,{className:`browser-viewer-fullscreen__title`,children:y.productName}),(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen__actions`,children:[(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:Oe,onClick:o,"aria-label":`Pop out`}),(0,z.jsx)(E,{variant:`ghost`,size:`sm`,icon:at,onClick:s,"aria-label":`Close`})]})]}),(0,z.jsx)(`iframe`,{src:`/vnc-viewer.html`,className:`browser-viewer-fullscreen__iframe`,title:y.productName})]})}function CE(){ct();let e=(0,R.useRef)(null),[t,n]=(0,R.useState)(null),[r,i]=(0,R.useState)(!1),[a,o]=(0,R.useState)(!1),[s,l]=(0,R.useState)(``),[u,d]=(0,R.useState)(!1),[p,m]=(0,R.useState)(null),[h,g]=(0,R.useState)(!1),[_,b]=(0,R.useState)(null),[x,S]=(0,R.useState)(null),[C,T]=(0,R.useState)(!1),[E,D]=(0,R.useState)([]),[k,A]=(0,R.useState)(!1),[j,M]=(0,R.useState)(null),[N,P]=(0,R.useState)(null),[ee,te]=(0,R.useState)(!1),[F,ne]=(0,R.useState)(null),[re,ie]=(0,R.useState)(!1),[le,ue]=(0,R.useState)(!1),fe=(0,R.useRef)(!1),me=(0,R.useRef)(!1),he=(0,R.useRef)(!1),ge=(0,R.useRef)(null),_e=c(),ve=dt(),I=_t(),ye=Et(),L=Tt({sessionKey:I.sessionKey,setSessionKey:I.setSessionKey,setAppState:I.setAppState,setConversationId:I.setConversationId,startElapsedTimer:ve.startElapsedTimer,stopElapsedTimer:ve.stopElapsedTimer,resetTimerState:ve.resetTimerState,pausedElapsedRef:ve.pausedElapsedRef,expandAllDefaultRef:I.expandAllDefaultRef,setExpandAll:I.setExpandAll,getPendingFiles:()=>ye.pendingFiles,clearPendingFiles:ye.clearFiles,inputRef:e});(0,R.useEffect)(()=>{l(window.location.hostname.startsWith(`admin.`)?window.location.origin.replace(`admin.`,`public.`):window.location.origin)},[]),(0,R.useEffect)(()=>{function e(e){e.key===`Escape`&&(t?n(null):_e.selectionMode&&_e.exitSelection())}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t,_e.selectionMode]),(0,R.useEffect)(()=>{(I.appState===`set-pin`||I.appState===`enter-pin`)&&setTimeout(()=>I.pinInputRef.current?.focus(),100),I.appState===`chat`&&setTimeout(()=>e.current?.focus(),100)},[I.appState,L.greetingGeneration]),(0,R.useEffect)(()=>{if(I.appState!==`chat`)return;history.pushState({maxyChat:!0},``);function e(){console.debug(`[history-guard] popstate absorbed`),history.pushState({maxyChat:!0},``)}return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[I.appState]);let be=(0,R.useRef)(L.greetingGeneration);return(0,R.useEffect)(()=>{L.greetingGeneration!==be.current&&(be.current=L.greetingGeneration,I.onboardingComplete===!1&&(fe.current=!1))},[L.greetingGeneration,I.onboardingComplete]),(0,R.useEffect)(()=>{I.appState===`chat`&&I.onboardingComplete===!1&&(fe.current||(fe.current=!0,L.sendSystemPrompt(`[Begin onboarding.]`)))},[I.appState,I.onboardingComplete,L.greetingGeneration]),(0,R.useEffect)(()=>{if(!u)return;let e=!1;return fetch(`/api/admin/version`).then(e=>e.json()).then(t=>{e||P(t)}).catch(e=>{console.error(`[admin/version] menu-open client fetch failed:`,e)}),()=>{e=!0}},[u]),(0,R.useEffect)(()=>{if(I.appState!==`chat`){me.current=!1,he.current=!1;return}if(me.current)return;me.current=!0;let e=!1;return fetch(`/api/admin/version`).then(e=>e.json()).then(t=>{e||(P(t),!(!t.updateAvailable||he.current)&&(ne(t),te(!0),fetch(`/api/admin/version/alert-surfaced`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({installed:t.installed,latest:t.latest})}).catch(e=>{console.error(`[admin/version] alert-surfaced signal failed:`,e)})))}).catch(e=>{console.error(`[admin/version] session-start client fetch failed:`,e)}),()=>{e=!0}},[I.appState]),(0,R.useEffect)(()=>{if(!u){m(null),b(null),S(null),P(null);return}function e(e){ge.current&&!ge.current.contains(e.target)&&d(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[u]),(0,R.useEffect)(()=>{if(typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(`platform-onboarding`);return e.onmessage=e=>{e.data?.type===`remote-password-set`&&L.sendMessageRef.current(`I've set the remote password`)},()=>e.close()},[]),I.appState===`loading`?(0,z.jsx)(`div`,{className:`chat-page admin-page`,children:(0,z.jsx)(`header`,{className:`chat-header`,children:(0,z.jsx)(`img`,{src:ae,alt:y.productName,className:`chat-logo`})})}):I.appState===`set-pin`?(0,z.jsx)(Ot,{pin:I.pin,setPin:I.setPin,confirmPin:I.confirmPin,setConfirmPin:I.setConfirmPin,showPin:I.showPin,setShowPin:I.setShowPin,pinLoading:I.pinLoading,pinError:I.pinError,pinInputRef:I.pinInputRef,confirmPinInputRef:I.confirmPinInputRef,setPinFormRef:I.setPinFormRef,onSubmit:I.handleSetPin}):I.appState===`onboarding-choice`?(0,z.jsx)(Mt,{setAppState:I.setAppState,setOnboardingComplete:I.setOnboardingComplete}):I.appState===`connect-claude`?(0,z.jsx)(jt,{authPolling:I.authPolling,setAuthPolling:I.setAuthPolling,authLoading:I.authLoading,setAuthLoading:I.setAuthLoading,pinError:I.pinError,setPinError:I.setPinError,setAppState:I.setAppState}):I.appState===`enter-pin`?(0,z.jsx)(kt,{pin:I.pin,setPin:I.setPin,showPin:I.showPin,setShowPin:I.setShowPin,pinLoading:I.pinLoading,pinError:I.pinError,pinInputRef:I.pinInputRef,onSubmit:I.handleLogin,onChangePin:I.handleChangePin}):I.appState===`account-picker`?(0,z.jsx)(At,{accounts:I.accounts,loading:I.accountPickerLoading,error:I.pinError,onSelect:I.handleAccountSelect}):(0,z.jsx)(w,{value:{onShowVnc:()=>ie(!0)},children:(0,z.jsxs)(`div`,{className:`chat-page admin-page`,children:[(0,z.jsxs)(`header`,{className:`chat-header`,children:[(0,z.jsx)(`img`,{src:ae,alt:y.productName,className:`chat-logo`}),(!y.logoContainsName||I.businessName)&&(0,z.jsx)(`div`,{children:(0,z.jsx)(`h1`,{className:`chat-tagline`,children:I.businessName||y.productName})}),(0,z.jsxs)(`div`,{className:`chat-burger-wrap`,ref:ge,children:[(0,z.jsx)(`button`,{type:`button`,className:`chat-burger`,onClick:()=>d(e=>!e),"aria-label":`Menu`,"aria-haspopup":`true`,"aria-expanded":u,children:(0,z.jsx)(de,{size:20})}),u&&(0,z.jsxs)(`div`,{className:`chat-menu`,children:[(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:async()=>{if(!(re||le)){ue(!0),d(!1);try{let e=await(await fetch(`/api/admin/browser/launch`,{method:`POST`})).json().catch(()=>({ok:!1,error:`Invalid response`}));if(!e.ok)throw Error(e.error??`Failed to launch browser`);ie(!0)}catch(e){console.error(`[browser] Launch failed:`,e),alert(e instanceof Error?e.message:`Failed to launch browser`)}finally{ue(!1)}}},disabled:le,children:[(0,z.jsx)(O,{size:14}),` Browser`,le&&(0,z.jsx)(oe,{size:12,className:`spin`})]}),(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{d(!1),window.location.href=`/data`},children:[(0,z.jsx)(se,{size:14}),` Data`]}),(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{d(!1),window.location.href=`/graph/browser/`},children:[(0,z.jsx)(pe,{size:14}),` Graph`]}),(0,z.jsx)(`div`,{className:`chat-menu-divider`}),(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:async()=>{if(p!==null){m(null),S(null);return}g(!0),b(null);try{let e=await fetch(`/api/admin/agents`);if(!e.ok)throw Error(`Failed to load agents`);m((await e.json()).agents??[])}catch(e){console.error(`[admin] agent list failed:`,e),b(e instanceof Error?e.message:String(e))}finally{g(!1)}},children:[(0,z.jsx)(Oe,{size:14}),` Public`,h&&(0,z.jsx)(oe,{size:12,className:`spin`})]}),p!==null&&(0,z.jsxs)(`div`,{className:`chat-menu-agents`,children:[_&&(0,z.jsx)(`span`,{className:`chat-menu-agent-error`,children:_}),p.length===0&&!_&&(0,z.jsx)(`span`,{className:`chat-menu-agent-empty`,children:`No public agents configured`}),p.map(e=>(0,z.jsxs)(`div`,{className:`chat-menu-item chat-menu-agent-item`,children:[(0,z.jsx)(`span`,{className:`agent-status-dot ${e.status}`}),(0,z.jsxs)(`span`,{className:`agent-text`,children:[(0,z.jsx)(`span`,{className:`agent-display-name`,children:e.displayName}),(0,z.jsxs)(`span`,{className:`agent-slug`,children:[`/`,e.slug]})]}),x===e.slug?(0,z.jsxs)(`span`,{className:`agent-actions agent-confirm`,children:[(0,z.jsx)(`button`,{type:`button`,className:`agent-action-btn agent-confirm-yes`,title:`Confirm delete`,onClick:()=>{S(null),m(t=>t?.filter(t=>t.slug!==e.slug)??null),fetch(`/api/admin/agents/${encodeURIComponent(e.slug)}`,{method:`DELETE`}).catch(e=>console.error(`[admin/agents] delete failed:`,e))},children:(0,z.jsx)(f,{size:12})}),(0,z.jsx)(`button`,{type:`button`,className:`agent-action-btn agent-confirm-no`,title:`Cancel`,onClick:()=>S(null),children:(0,z.jsx)(at,{size:12})})]}):(0,z.jsxs)(`span`,{className:`agent-actions`,children:[(0,z.jsx)(`a`,{href:`${s}/${e.slug}`,target:`_blank`,rel:`noopener noreferrer`,className:`agent-action-btn`,title:`Open agent`,onClick:()=>d(!1),children:(0,z.jsx)(Oe,{size:12})}),(0,z.jsx)(`button`,{type:`button`,className:`agent-action-btn agent-delete-btn`,title:`Delete agent`,onClick:()=>S(e.slug),children:(0,z.jsx)(v,{size:12})})]})]},e.slug))]}),(0,z.jsx)(`div`,{className:`chat-menu-divider`}),N?.updateAvailable?(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-version`,onClick:()=>{N.latest&&(ne(N),d(!1),te(!0))},children:[(0,z.jsx)(Fe,{size:14}),(0,z.jsxs)(`span`,{className:`version-installed`,children:[`v`,N.installed,(0,z.jsx)(`span`,{className:`version-update-dot`})]})]}):(0,z.jsxs)(`div`,{className:`chat-menu-version chat-menu-version-passive`,children:[(0,z.jsx)(Fe,{size:14}),(0,z.jsxs)(`span`,{className:`version-installed`,children:[N?`v${N.installed}`:`…`,N&&!N.updateAvailable&&(0,z.jsx)(`span`,{className:`version-uptodate-dot`})]})]}),(0,z.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{d(!1),I.handleLogout(),L.setMessages([])},children:[(0,z.jsx)(ce,{size:14}),` Log out`]})]})]})]}),(0,z.jsx)(uE,{messages:L.messages,isStreaming:L.isStreaming,elapsedSeconds:ve.elapsedSeconds,sessionTurnStart:ve.sessionTurnStart,expandAll:I.expandAll,setExpandAll:I.setExpandAll,conversationCompacted:L.conversationCompacted,isCompacting:L.isCompacting,setShowCompactConfirm:o,handleComponentSubmit:L.handleComponentSubmit,effectiveSubmitted:L.effectiveSubmitted,selectionMode:_e.selectionMode,selectedItems:_e.selectedItems,toggleSelectItem:_e.toggleSelectItem,sessionKey:I.sessionKey,setLightboxSrc:n,messageQueue:L.messageQueue,messageQueueRef:L.messageQueueRef,setQueue:L.setQueue,sendMessage:L.sendMessage,appState:I.appState,onboardingComplete:I.onboardingComplete}),(0,z.jsx)(dE,{offer:L.topicChangeOffer,onFreshStart:L.handleTopicFreshStart,onContinue:L.handleTopicContinue,disabled:L.isStreaming}),(0,z.jsx)(mE,{selectionMode:_e.selectionMode,selectedItems:_e.selectedItems,copyToast:_e.copyToast||null,exitSelection:_e.exitSelection,enterSelection:_e.enterSelection,copySelected:_e.copySelected,showCopyToast:_e.showCopyToast,input:L.input,setInput:L.setInput,inputRef:e,pendingFiles:ye.pendingFiles,setPendingFiles:ye.setPendingFiles,isDragOver:ye.isDragOver,attachError:ye.attachError,fileInputRef:ye.fileInputRef,addFiles:ye.addFiles,removeFile:ye.removeFile,onDragOver:ye.onDragOver,onDragLeave:ye.onDragLeave,onDrop:ye.onDrop,isStreaming:L.isStreaming,wasPaused:L.wasPaused,messages:L.messages,messageQueueRef:L.messageQueueRef,setQueue:L.setQueue,sendMessage:L.sendMessage,stopStreaming:L.stopStreaming,disconnecting:I.disconnecting,handleDisconnect:I.handleDisconnect,claudeInfo:I.claudeInfo,setClaudeInfo:I.setClaudeInfo,setShowClaudeInfo:i,conversationId:I.conversationId,onNewConversation:L.startNewConversation,newConversationDisabled:L.isStreaming||L.isCompacting,onOpenConversations:async()=>{T(!0),A(!0),M(null);try{let e=await fetch(`/api/admin/sessions?session_key=${encodeURIComponent(I.sessionKey)}`);if(!e.ok)throw Error(`Failed to load conversations`);D((await e.json()).sessions??[])}catch(e){console.error(`[admin] conversation list failed:`,e),M(e instanceof Error?e.message:String(e))}finally{A(!1)}}}),_e.copyToast&&(0,z.jsx)(`span`,{className:`copy-toast${_e.copyToast===`failed`?` copy-toast-failed`:``}`,children:_e.copyToast===`copied`?`Copied`:`Copy failed`}),(0,z.jsx)(hE,{show:C,onClose:()=>T(!1),conversationsLoading:k,conversationsError:j,conversationsList:E,setConversationsList:D,sessionKey:I.sessionKey,isStreaming:L.isStreaming,resetConversation:L.resetConversation,setMessages:L.setMessages,setConversationId:I.setConversationId}),(0,z.jsx)(gE,{src:t,onClose:()=>n(null)}),(0,z.jsx)(_E,{show:a,onClose:()=>o(!1),onConfirm:L.handleCompactNow}),(0,z.jsx)(vE,{show:r,onClose:()=>{i(!1),I.setClaudeInfo(null)},claudeInfo:I.claudeInfo,messages:L.messages,sessionElapsed:ve.sessionElapsed,conversationId:I.conversationId,contextModeHint:I.contextModeHint,handleContextModeToggle:I.handleContextModeToggle}),(0,z.jsx)(xE,{show:ee,onClose:()=>{te(!1),he.current=!0},versionInfo:F,sessionKey:I.sessionKey,onUpgradeComplete:()=>P(null)}),re&&(0,z.jsx)(SE,{onClose:()=>ie(!1)})]})})}(0,st.createRoot)(document.getElementById(`root`)).render((0,z.jsx)(CE,{}));
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Real Agent</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/admin-ITLuG4BN.js"></script>
8
+ <script type="module" crossorigin src="/assets/admin-uiqCo17I.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-lgnzUk6H.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-DwoXvzmf.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-DWTEM3RW.js">