@seqyuan/annovibe 0.8.142 → 0.8.143

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +11 -11
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/react-loadable-manifest.json +16 -16
  6. package/.next/required-server-files.js +1 -1
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/api/agent/runtime/route.js +1 -1
  21. package/.next/server/app/api/internal/runtime/route.js +1 -1
  22. package/.next/server/app/api/version/route.js +1 -1
  23. package/.next/server/app/index.html +1 -1
  24. package/.next/server/app/index.rsc +4 -4
  25. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  26. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  27. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  28. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/login.html +1 -1
  30. package/.next/server/app/login.rsc +1 -1
  31. package/.next/server/app/login.segments/_full.segment.rsc +1 -1
  32. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  33. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  34. package/.next/server/app/page.js +13 -13
  35. package/.next/server/app/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/smoke/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/smoke/session-stream/page.js +1 -1
  38. package/.next/server/app/smoke/session-stream/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/smoke/session-stream.html +1 -1
  40. package/.next/server/app/smoke/session-stream.rsc +4 -4
  41. package/.next/server/app/smoke/session-stream.segments/_full.segment.rsc +4 -4
  42. package/.next/server/app/smoke/session-stream.segments/_tree.segment.rsc +1 -1
  43. package/.next/server/app/smoke/session-stream.segments/smoke/session-stream/__PAGE__.segment.rsc +4 -4
  44. package/.next/server/app/smoke.html +2 -2
  45. package/.next/server/app/smoke.rsc +1 -1
  46. package/.next/server/app/smoke.segments/_full.segment.rsc +1 -1
  47. package/.next/server/app/smoke.segments/_tree.segment.rsc +1 -1
  48. package/.next/server/app/smoke.segments/smoke/__PAGE__.segment.rsc +1 -1
  49. package/.next/server/app-paths-manifest.json +11 -11
  50. package/.next/server/chunks/7699.js +22 -0
  51. package/.next/server/chunks/8305.js +2 -2
  52. package/.next/server/middleware-build-manifest.js +1 -1
  53. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  54. package/.next/server/middleware.js +4 -4
  55. package/.next/server/pages/404.html +1 -1
  56. package/.next/server/pages/500.html +1 -1
  57. package/.next/server/preview-props.json +3 -3
  58. package/.next/server/server-reference-manifest.json +1 -1
  59. package/.next/static/chunks/1230-d71557da20554f50.js +22 -0
  60. package/.next/static/chunks/3309.581b04bacfeed701.js +1 -0
  61. package/.next/static/chunks/{3309.d0c34b5ef504a551.js → 5690.332f301b9df6f2dd.js} +1 -1
  62. package/.next/static/chunks/{6586.775a449050e0e9cc.js → 6586.5969468a897d9e00.js} +1 -1
  63. package/.next/static/chunks/{8863.2ae457485a63aa22.js → 8863.d853f8eb221377ed.js} +1 -1
  64. package/.next/static/chunks/app/{page-2e0bf200ed41d4f6.js → page-bdd2e6fc471b822f.js} +8 -8
  65. package/.next/static/chunks/app/smoke/session-stream/{page-ce422d02fbbe900d.js → page-f0f45a804e43fece.js} +2 -2
  66. package/.next/static/chunks/{webpack-19f3f7824a602f3b.js → webpack-a60990aaf3b13e7a.js} +1 -1
  67. package/package.json +1 -1
  68. package/.next/server/chunks/658.js +0 -22
  69. package/.next/static/chunks/3824-6bb3afa7d2fc5f09.js +0 -22
  70. package/.next/static/chunks/5690.64d843d3db8e1b4b.js +0 -1
  71. /package/.next/static/{ZpLecbnV0af9eeGcGwT88 → 993-z3SwOS_AuLBpkiyRr}/_buildManifest.js +0 -0
  72. /package/.next/static/{ZpLecbnV0af9eeGcGwT88 → 993-z3SwOS_AuLBpkiyRr}/_ssgManifest.js +0 -0
@@ -1,22 +1,22 @@
1
- (()=>{var a={};a.id=8974,a.ids=[8974],a.modules={478:(a,b,c)=>{Promise.resolve().then(c.bind(c,85903))},1708:a=>{"use strict";a.exports=require("node:process")},2798:(a,b,c)=>{let d=c(76708),e=c(95380),f=c(18994),g=c(32835);function h(a,b,c,f,g){let h=[].slice.call(arguments,1),i=h.length,j="function"==typeof h[i-1];if(!j&&!d())throw Error("Callback required as last argument");if(j){if(i<2)throw Error("Too few arguments provided");2===i?(g=c,c=b,b=f=void 0):3===i&&(b.getContext&&void 0===g?(g=f,f=void 0):(g=f,f=c,c=b,b=void 0))}else{if(i<1)throw Error("Too few arguments provided");return 1===i?(c=b,b=f=void 0):2!==i||b.getContext||(f=c,c=b,b=void 0),new Promise(function(d,g){try{let g=e.create(c,f);d(a(g,b,f))}catch(a){g(a)}})}try{let d=e.create(c,f);g(null,a(d,b,f))}catch(a){g(a)}}e.create,b.toCanvas=h.bind(null,f.render),h.bind(null,f.renderToDataURL),h.bind(null,function(a,b,c){return g.render(a,c)})},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5166:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>q,handler:()=>s,routeModule:()=>r});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,32056))),j=(0,d.p)(()=>Promise.resolve().then(c.bind(c,85034))),k=(0,d.p)(()=>Promise.resolve().then(c.bind(c,55038))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),n=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),o={children:["",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,99647))),"/home/runner/work/annovibe/annovibe/app/page.tsx"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,86364)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[i,"/home/runner/work/annovibe/annovibe/app/layout.tsx"],error:[j,"/home/runner/work/annovibe/annovibe/app/error.tsx"],"global-error":[k,"/home/runner/work/annovibe/annovibe/app/global-error.tsx"],"not-found":[l,"next/dist/client/components/builtin/not-found.js"],forbidden:[m,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[n,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,86364)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}},[]]}.children,p=(0,e.H)({tree:o,page:"/page",pathname:"/",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),q=p.__next_app__,r=p.routeModule,s=p.handler},5206:(a,b,c)=>{Promise.resolve().then(c.bind(c,35790))},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},9709:(a,b,c)=>{"use strict";let d=!0,e=c(74075),f=c(80183);e.deflateSync||(d=!1);let g=c(81769),h=c(42516),i=c(96277),j=c(92858),k=c(83670);a.exports=function(a,b){let c,l,m,n;if(!d)throw Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let o=[],p=new g(a);if(new i(b,{read:p.read.bind(p),error:function(a){c=a},metadata:function(a){l=a},gamma:function(a){m=a},palette:function(a){l.palette=a},transColor:function(a){l.transColor=a},inflateData:function(a){o.push(a)},simpleTransparency:function(){l.alpha=!0}}).start(),p.process(),c)throw c;let q=Buffer.concat(o);if(o.length=0,l.interlace)n=e.inflateSync(q);else{let a=((l.width*l.bpp*l.depth+7>>3)+1)*l.height;n=f(q,{chunkSize:a,maxLength:a})}if(q=null,!n||!n.length)throw Error("bad png - invalid inflate data response");let r=h.process(n,l);q=null;let s=j.dataToBitMap(r,l);r=null;let t=k(s,l);return l.data=t,l.gamma=m||0,l}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12097:(a,b)=>{b.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};b.isValid=function(a){return null!=a&&""!==a&&!isNaN(a)&&a>=0&&a<=7},b.from=function(a){return b.isValid(a)?parseInt(a,10):void 0},b.getPenaltyN1=function(a){let b=a.size,c=0,d=0,e=0,f=null,g=null;for(let h=0;h<b;h++){d=e=0,f=g=null;for(let i=0;i<b;i++){let b=a.get(h,i);b===f?d++:(d>=5&&(c+=3+(d-5)),f=b,d=1),(b=a.get(i,h))===g?e++:(e>=5&&(c+=3+(e-5)),g=b,e=1)}d>=5&&(c+=3+(d-5)),e>=5&&(c+=3+(e-5))}return c},b.getPenaltyN2=function(a){let b=a.size,c=0;for(let d=0;d<b-1;d++)for(let e=0;e<b-1;e++){let b=a.get(d,e)+a.get(d,e+1)+a.get(d+1,e)+a.get(d+1,e+1);(4===b||0===b)&&c++}return 3*c},b.getPenaltyN3=function(a){let b=a.size,c=0,d=0,e=0;for(let f=0;f<b;f++){d=e=0;for(let g=0;g<b;g++)d=d<<1&2047|a.get(f,g),g>=10&&(1488===d||93===d)&&c++,e=e<<1&2047|a.get(g,f),g>=10&&(1488===e||93===e)&&c++}return 40*c},b.getPenaltyN4=function(a){let b=0,c=a.data.length;for(let d=0;d<c;d++)b+=a.data[d];return 10*Math.abs(Math.ceil(100*b/c/5)-10)},b.applyMask=function(a,c){let d=c.size;for(let e=0;e<d;e++)for(let f=0;f<d;f++)c.isReserved(f,e)||c.xor(f,e,function(a,c,d){switch(a){case b.Patterns.PATTERN000:return(c+d)%2==0;case b.Patterns.PATTERN001:return c%2==0;case b.Patterns.PATTERN010:return d%3==0;case b.Patterns.PATTERN011:return(c+d)%3==0;case b.Patterns.PATTERN100:return(Math.floor(c/2)+Math.floor(d/3))%2==0;case b.Patterns.PATTERN101:return c*d%2+c*d%3==0;case b.Patterns.PATTERN110:return(c*d%2+c*d%3)%2==0;case b.Patterns.PATTERN111:return(c*d%3+(c+d)%2)%2==0;default:throw Error("bad maskPattern:"+a)}}(a,f,e))},b.getBestMask=function(a,c){let d=Object.keys(b.Patterns).length,e=0,f=1/0;for(let g=0;g<d;g++){c(g),b.applyMask(g,a);let d=b.getPenaltyN1(a)+b.getPenaltyN2(a)+b.getPenaltyN3(a)+b.getPenaltyN4(a);b.applyMask(g,a),d<f&&(f=d,e=g)}return e}},12412:a=>{"use strict";a.exports=require("assert")},18994:(a,b,c)=>{let d=c(88397);b.render=function(a,b,c){var e;let f=c,g=b;void 0!==f||b&&b.getContext||(f=b,b=void 0),b||(g=function(){try{return document.createElement("canvas")}catch(a){throw Error("You need to specify a canvas element")}}()),f=d.getOptions(f);let h=d.getImageWidth(a.modules.size,f),i=g.getContext("2d"),j=i.createImageData(h,h);return d.qrToImageData(j.data,a,f),e=g,i.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=h,e.width=h,e.style.height=h+"px",e.style.width=h+"px",i.putImageData(j,0,0),g},b.renderToDataURL=function(a,c,d){let e=d;void 0!==e||c&&c.getContext||(e=c,c=void 0),e||(e={});let f=b.render(a,c,e),g=e.type||"image/png",h=e.rendererOpts||{};return f.toDataURL(g,h.quality)}},19099:(a,b,c)=>{"use strict";var d=c(54839);c.o(d,"useRouter")&&c.d(b,{useRouter:function(){return d.useRouter}}),c.o(d,"useSearchParams")&&c.d(b,{useSearchParams:function(){return d.useSearchParams}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19477:(a,b,c)=>{let d=c(58856),e=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],f=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];b.getBlocksCount=function(a,b){switch(b){case d.L:return e[(a-1)*4+0];case d.M:return e[(a-1)*4+1];case d.Q:return e[(a-1)*4+2];case d.H:return e[(a-1)*4+3];default:return}},b.getTotalCodewordsCount=function(a,b){switch(b){case d.L:return f[(a-1)*4+0];case d.M:return f[(a-1)*4+1];case d.Q:return f[(a-1)*4+2];case d.H:return f[(a-1)*4+3];default:return}}},23372:(a,b,c)=>{"use strict";let d=c(28354),e=c(74075),f=c(57949),g=c(27459),h=c(96277),i=c(92858),j=c(83670),k=a.exports=function(a){f.call(this),this._parser=new h(a,{read:this.read.bind(this),error:this._handleError.bind(this),metadata:this._handleMetaData.bind(this),gamma:this.emit.bind(this,"gamma"),palette:this._handlePalette.bind(this),transColor:this._handleTransColor.bind(this),finished:this._finished.bind(this),inflateData:this._inflateData.bind(this),simpleTransparency:this._simpleTransparency.bind(this),headersFinished:this._headersFinished.bind(this)}),this._options=a,this.writable=!0,this._parser.start()};d.inherits(k,f),k.prototype._handleError=function(a){this.emit("error",a),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy&&this._inflate.destroy(),this._filter&&(this._filter.destroy(),this._filter.on("error",function(){})),this.errord=!0},k.prototype._inflateData=function(a){if(!this._inflate)if(this._bitmapInfo.interlace)this._inflate=e.createInflate(),this._inflate.on("error",this.emit.bind(this,"error")),this._filter.on("complete",this._complete.bind(this)),this._inflate.pipe(this._filter);else{let a=((this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3)+1)*this._bitmapInfo.height,b=Math.max(a,e.Z_MIN_CHUNK);this._inflate=e.createInflate({chunkSize:b});let c=a,d=this.emit.bind(this,"error");this._inflate.on("error",function(a){c&&d(a)}),this._filter.on("complete",this._complete.bind(this));let f=this._filter.write.bind(this._filter);this._inflate.on("data",function(a){c&&(a.length>c&&(a=a.slice(0,c)),c-=a.length,f(a))}),this._inflate.on("end",this._filter.end.bind(this._filter))}this._inflate.write(a)},k.prototype._handleMetaData=function(a){this._metaData=a,this._bitmapInfo=Object.create(a),this._filter=new g(this._bitmapInfo)},k.prototype._handleTransColor=function(a){this._bitmapInfo.transColor=a},k.prototype._handlePalette=function(a){this._bitmapInfo.palette=a},k.prototype._simpleTransparency=function(){this._metaData.alpha=!0},k.prototype._headersFinished=function(){this.emit("metadata",this._metaData)},k.prototype._finished=function(){this.errord||(this._inflate?this._inflate.end():this.emit("error","No Inflate block"))},k.prototype._complete=function(a){let b;if(!this.errord){try{let c=i.dataToBitMap(a,this._bitmapInfo);b=j(c,this._bitmapInfo),c=null}catch(a){this._handleError(a);return}this.emit("parsed",b)}}},27137:(a,b,c)=>{let d=c(93669),e=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function f(a){this.mode=d.ALPHANUMERIC,this.data=a}f.getBitsLength=function(a){return 11*Math.floor(a/2)+a%2*6},f.prototype.getLength=function(){return this.data.length},f.prototype.getBitsLength=function(){return f.getBitsLength(this.data.length)},f.prototype.write=function(a){let b;for(b=0;b+2<=this.data.length;b+=2){let c=45*e.indexOf(this.data[b]);c+=e.indexOf(this.data[b+1]),a.put(c,11)}this.data.length%2&&a.put(e.indexOf(this.data[b]),6)},a.exports=f},27459:(a,b,c)=>{"use strict";let d=c(28354),e=c(57949),f=c(27734),g=a.exports=function(a){e.call(this);let b=[],c=this;this._filter=new f(a,{read:this.read.bind(this),write:function(a){b.push(a)},complete:function(){c.emit("complete",Buffer.concat(b))}}),this._filter.start()};d.inherits(g,e)},27734:(a,b,c)=>{"use strict";let d=c(59725),e=c(55211);function f(a,b,c){let d=a*b;return 8!==c&&(d=Math.ceil(d/(8/c))),d}let g=a.exports=function(a,b){let c=a.width,e=a.height,g=a.interlace,h=a.bpp,i=a.depth;if(this.read=b.read,this.write=b.write,this.complete=b.complete,this._imageIndex=0,this._images=[],g){let a=d.getImagePasses(c,e);for(let b=0;b<a.length;b++)this._images.push({byteWidth:f(a[b].width,h,i),height:a[b].height,lineIndex:0})}else this._images.push({byteWidth:f(c,h,i),height:e,lineIndex:0});8===i?this._xComparison=h:16===i?this._xComparison=2*h:this._xComparison=1};g.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))},g.prototype._unFilterType1=function(a,b,c){let d=this._xComparison,e=d-1;for(let f=0;f<c;f++){let c=a[1+f],g=f>e?b[f-d]:0;b[f]=c+g}},g.prototype._unFilterType2=function(a,b,c){let d=this._lastLine;for(let e=0;e<c;e++){let c=a[1+e],f=d?d[e]:0;b[e]=c+f}},g.prototype._unFilterType3=function(a,b,c){let d=this._xComparison,e=d-1,f=this._lastLine;for(let g=0;g<c;g++){let c=a[1+g],h=f?f[g]:0,i=Math.floor(((g>e?b[g-d]:0)+h)/2);b[g]=c+i}},g.prototype._unFilterType4=function(a,b,c){let d=this._xComparison,f=d-1,g=this._lastLine;for(let h=0;h<c;h++){let c=a[1+h],i=g?g[h]:0,j=e(h>f?b[h-d]:0,i,h>f&&g?g[h-d]:0);b[h]=c+j}},g.prototype._reverseFilterLine=function(a){let b,c=a[0],d=this._images[this._imageIndex],e=d.byteWidth;if(0===c)b=a.slice(1,e+1);else switch(b=Buffer.alloc(e),c){case 1:this._unFilterType1(a,b,e);break;case 2:this._unFilterType2(a,b,e);break;case 3:this._unFilterType3(a,b,e);break;case 4:this._unFilterType4(a,b,e);break;default:throw Error("Unrecognised filter type - "+c)}this.write(b),d.lineIndex++,d.lineIndex>=d.height?(this._lastLine=null,this._imageIndex++,d=this._images[this._imageIndex]):this._lastLine=b,d?this.read(d.byteWidth+1,this._reverseFilterLine.bind(this)):(this._lastLine=null,this.complete())}},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},28964:(a,b,c)=>{let d=c(93669);function e(a){this.mode=d.NUMERIC,this.data=a.toString()}e.getBitsLength=function(a){return 10*Math.floor(a/3)+(a%3?a%3*3+1:0)},e.prototype.getLength=function(){return this.data.length},e.prototype.getBitsLength=function(){return e.getBitsLength(this.data.length)},e.prototype.write=function(a){let b,c;for(b=0;b+3<=this.data.length;b+=3)c=parseInt(this.data.substr(b,3),10),a.put(c,10);let d=this.data.length-b;d>0&&(c=parseInt(this.data.substr(b),10),a.put(c,3*d+1))},a.exports=e},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31964:(a,b,c)=>{"use strict";let d=c(55211),e={0:function(a,b,c,d,e){for(let f=0;f<c;f++)d[e+f]=a[b+f]},1:function(a,b,c,d,e,f){for(let g=0;g<c;g++){let c=g>=f?a[b+g-f]:0,h=a[b+g]-c;d[e+g]=h}},2:function(a,b,c,d,e){for(let f=0;f<c;f++){let g=b>0?a[b+f-c]:0,h=a[b+f]-g;d[e+f]=h}},3:function(a,b,c,d,e,f){for(let g=0;g<c;g++){let h=g>=f?a[b+g-f]:0,i=b>0?a[b+g-c]:0,j=a[b+g]-(h+i>>1);d[e+g]=j}},4:function(a,b,c,e,f,g){for(let h=0;h<c;h++){let i=h>=g?a[b+h-g]:0,j=b>0?a[b+h-c]:0,k=b>0&&h>=g?a[b+h-(c+g)]:0,l=a[b+h]-d(i,j,k);e[f+h]=l}}},f={0:function(a,b,c){let d=0,e=b+c;for(let c=b;c<e;c++)d+=Math.abs(a[c]);return d},1:function(a,b,c,d){let e=0;for(let f=0;f<c;f++){let c=f>=d?a[b+f-d]:0;e+=Math.abs(a[b+f]-c)}return e},2:function(a,b,c){let d=0,e=b+c;for(let f=b;f<e;f++){let e=b>0?a[f-c]:0;d+=Math.abs(a[f]-e)}return d},3:function(a,b,c,d){let e=0;for(let f=0;f<c;f++){let g=f>=d?a[b+f-d]:0,h=b>0?a[b+f-c]:0;e+=Math.abs(a[b+f]-(g+h>>1))}return e},4:function(a,b,c,e){let f=0;for(let g=0;g<c;g++){let h=g>=e?a[b+g-e]:0,i=b>0?a[b+g-c]:0,j=b>0&&g>=e?a[b+g-(c+e)]:0;f+=Math.abs(a[b+g]-d(h,i,j))}return f}};a.exports=function(a,b,c,d,g){let h;if("filterType"in d&&-1!==d.filterType)if("number"==typeof d.filterType)h=[d.filterType];else throw Error("unrecognised filter types");else h=[0,1,2,3,4];16===d.bitDepth&&(g*=2);let i=b*g,j=0,k=0,l=Buffer.alloc((i+1)*c),m=h[0];for(let b=0;b<c;b++){if(h.length>1){let b=1/0;for(let c=0;c<h.length;c++){let d=f[h[c]](a,k,i,g);d<b&&(m=h[c],b=d)}}l[j]=m,j++,e[m](a,k,i,l,j,g),j+=i,k+=i}return l}},32835:(a,b,c)=>{let d=c(88397);function e(a,b){let c=a.a/255,d=b+'="'+a.hex+'"';return c<1?d+" "+b+'-opacity="'+c.toFixed(2).slice(1)+'"':d}function f(a,b,c){let d=a+b;return void 0!==c&&(d+=" "+c),d}b.render=function(a,b,c){let g=d.getOptions(b),h=a.modules.size,i=a.modules.data,j=h+2*g.margin,k=g.color.light.a?"<path "+e(g.color.light,"fill")+' d="M0 0h'+j+"v"+j+'H0z"/>':"",l="<path "+e(g.color.dark,"stroke")+' d="'+function(a,b,c){let d="",e=0,g=!1,h=0;for(let i=0;i<a.length;i++){let j=Math.floor(i%b),k=Math.floor(i/b);j||g||(g=!0),a[i]?(h++,i>0&&j>0&&a[i-1]||(d+=g?f("M",j+c,.5+k+c):f("m",e,0),e=0,g=!1),j+1<b&&a[i+1]||(d+=f("h",h),h=0)):e++}return d}(i,h,g.margin)+'"/>',m='<svg xmlns="http://www.w3.org/2000/svg" '+(g.width?'width="'+g.width+'" height="'+g.width+'" ':"")+('viewBox="0 0 '+j+" ")+j+'" shape-rendering="crispEdges">'+k+l+"</svg>\n";return"function"==typeof c&&c(null,m),m}},33873:a=>{"use strict";a.exports=require("path")},34447:(a,b,c)=>{"use strict";let d=c(28354),e=c(27910),f=c(23372),g=c(49149),h=c(58879),i=b.O=function(a){e.call(this),a=a||{},this.width=0|a.width,this.height=0|a.height,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,a.fill&&this.data&&this.data.fill(0),this.gamma=0,this.readable=this.writable=!0,this._parser=new f(a),this._parser.on("error",this.emit.bind(this,"error")),this._parser.on("close",this._handleClose.bind(this)),this._parser.on("metadata",this._metadata.bind(this)),this._parser.on("gamma",this._gamma.bind(this)),this._parser.on("parsed",(function(a){this.data=a,this.emit("parsed",a)}).bind(this)),this._packer=new g(a),this._packer.on("data",this.emit.bind(this,"data")),this._packer.on("end",this.emit.bind(this,"end")),this._parser.on("close",this._handleClose.bind(this)),this._packer.on("error",this.emit.bind(this,"error"))};d.inherits(i,e),i.sync=h,i.prototype.pack=function(){return this.data&&this.data.length?process.nextTick((function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}).bind(this)):this.emit("error","No data provided"),this},i.prototype.parse=function(a,b){if(b){let a,c;a=(function(a){this.removeListener("error",c),this.data=a,b(null,this)}).bind(this),c=(function(c){this.removeListener("parsed",a),b(c,null)}).bind(this),this.once("parsed",a),this.once("error",c)}return this.end(a),this},i.prototype.write=function(a){return this._parser.write(a),!0},i.prototype.end=function(a){this._parser.end(a)},i.prototype._metadata=function(a){this.width=a.width,this.height=a.height,this.emit("metadata",a)},i.prototype._gamma=function(a){this.gamma=a},i.prototype._handleClose=function(){this._parser.writable||this._packer.readable||this.emit("close")},i.bitblt=function(a,b,c,d,e,f,g,h){if(d|=0,e|=0,f|=0,g|=0,h|=0,(c|=0)>a.width||d>a.height||c+e>a.width||d+f>a.height)throw Error("bitblt reading outside image");if(g>b.width||h>b.height||g+e>b.width||h+f>b.height)throw Error("bitblt writing outside image");for(let i=0;i<f;i++)a.data.copy(b.data,(h+i)*b.width+g<<2,(d+i)*a.width+c<<2,(d+i)*a.width+c+e<<2)},i.prototype.bitblt=function(a,b,c,d,e,f,g){return i.bitblt(this,a,b,c,d,e,f,g),this},i.adjustGamma=function(a){if(a.gamma){for(let b=0;b<a.height;b++)for(let c=0;c<a.width;c++){let d=a.width*b+c<<2;for(let b=0;b<3;b++){let c=a.data[d+b]/255;c=Math.pow(c,1/2.2/a.gamma),a.data[d+b]=Math.round(255*c)}}a.gamma=0}},i.prototype.adjustGamma=function(){i.adjustGamma(this)}},35790:(a,b,c)=>{"use strict";c.d(b,{AppShell:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annovibe/annovibe/components/AppShell.tsx","AppShell")},38522:a=>{"use strict";a.exports=require("node:zlib")},38937:(a,b,c)=>{let d=c(93669);function e(a){this.mode=d.BYTE,"string"==typeof a?this.data=new TextEncoder().encode(a):this.data=new Uint8Array(a)}e.getBitsLength=function(a){return 8*a},e.prototype.getLength=function(){return this.data.length},e.prototype.getBitsLength=function(){return e.getBitsLength(this.data.length)},e.prototype.write=function(a){for(let b=0,c=this.data.length;b<c;b++)a.put(this.data[b],8)},a.exports=e},39477:(a,b,c)=>{let d=c(58305).getSymbolSize;b.getPositions=function(a){let b=d(a);return[[0,0],[b-7,0],[0,b-7]]}},39588:(a,b,c)=>{let d=c(93669),e=c(28964),f=c(27137),g=c(38937),h=c(64424),i=c(64323),j=c(58305),k=c(84879);function l(a){return unescape(encodeURIComponent(a)).length}function m(a,b,c){let d,e=[];for(;null!==(d=a.exec(c));)e.push({data:d[0],index:d.index,mode:b,length:d[0].length});return e}function n(a){let b,c,e=m(i.NUMERIC,d.NUMERIC,a),f=m(i.ALPHANUMERIC,d.ALPHANUMERIC,a);return j.isKanjiModeEnabled()?(b=m(i.BYTE,d.BYTE,a),c=m(i.KANJI,d.KANJI,a)):(b=m(i.BYTE_KANJI,d.BYTE,a),c=[]),e.concat(f,b,c).sort(function(a,b){return a.index-b.index}).map(function(a){return{data:a.data,mode:a.mode,length:a.length}})}function o(a,b){switch(b){case d.NUMERIC:return e.getBitsLength(a);case d.ALPHANUMERIC:return f.getBitsLength(a);case d.KANJI:return h.getBitsLength(a);case d.BYTE:return g.getBitsLength(a)}}function p(a,b){let c,i=d.getBestModeForData(a);if((c=d.from(b,i))!==d.BYTE&&c.bit<i.bit)throw Error('"'+a+'" cannot be encoded with mode '+d.toString(c)+".\n Suggested mode is: "+d.toString(i));switch(c===d.KANJI&&!j.isKanjiModeEnabled()&&(c=d.BYTE),c){case d.NUMERIC:return new e(a);case d.ALPHANUMERIC:return new f(a);case d.KANJI:return new h(a);case d.BYTE:return new g(a)}}b.fromArray=function(a){return a.reduce(function(a,b){return"string"==typeof b?a.push(p(b,null)):b.data&&a.push(p(b.data,b.mode)),a},[])},b.fromString=function(a,c){let e=function(a,b){let c={},e={start:{}},f=["start"];for(let g=0;g<a.length;g++){let h=a[g],i=[];for(let a=0;a<h.length;a++){let j=h[a],k=""+g+a;i.push(k),c[k]={node:j,lastCount:0},e[k]={};for(let a=0;a<f.length;a++){let g=f[a];c[g]&&c[g].node.mode===j.mode?(e[g][k]=o(c[g].lastCount+j.length,j.mode)-o(c[g].lastCount,j.mode),c[g].lastCount+=j.length):(c[g]&&(c[g].lastCount=j.length),e[g][k]=o(j.length,j.mode)+4+d.getCharCountIndicator(j.mode,b))}}f=i}for(let a=0;a<f.length;a++)e[f[a]].end=0;return{map:e,table:c}}(function(a){let b=[];for(let c=0;c<a.length;c++){let e=a[c];switch(e.mode){case d.NUMERIC:b.push([e,{data:e.data,mode:d.ALPHANUMERIC,length:e.length},{data:e.data,mode:d.BYTE,length:e.length}]);break;case d.ALPHANUMERIC:b.push([e,{data:e.data,mode:d.BYTE,length:e.length}]);break;case d.KANJI:b.push([e,{data:e.data,mode:d.BYTE,length:l(e.data)}]);break;case d.BYTE:b.push([{data:e.data,mode:d.BYTE,length:l(e.data)}])}}return b}(n(a,j.isKanjiModeEnabled())),c),f=k.find_path(e.map,"start","end"),g=[];for(let a=1;a<f.length-1;a++)g.push(e.table[f[a]].node);return b.fromArray(g.reduce(function(a,b){let c=a.length-1>=0?a[a.length-1]:null;return c&&c.mode===b.mode?a[a.length-1].data+=b.data:a.push(b),a},[]))},b.rawSplit=function(a){return b.fromArray(n(a,j.isKanjiModeEnabled()))}},40355:(a,b,c)=>{let d=c(76708),e=c(95380),f=c(46387),g=c(72081),h=c(66530),i=c(90082);function j(a,b,c){if(void 0===a)throw Error("String required as first argument");if(void 0===c&&(c=b,b={}),"function"!=typeof c)if(d())b=c||{},c=null;else throw Error("Callback required as last argument");return{opts:b,cb:c}}function k(a){switch(a){case"svg":return i;case"txt":case"utf8":return g;default:return f}}function l(a,b,c){if(!c.cb)return new Promise(function(d,f){try{let g=e.create(b,c.opts);return a(g,c.opts,function(a,b){return a?f(a):d(b)})}catch(a){f(a)}});try{let d=e.create(b,c.opts);return a(d,c.opts,c.cb)}catch(a){c.cb(a)}}b.create=e.create,b.toCanvas=c(2798).toCanvas,b.toString=function(a,b,c){let d=j(a,b,c);return l(function(a){switch(a){case"svg":return i;case"terminal":return h;default:return g}}(d.opts?d.opts.type:void 0).render,a,d)},b.toDataURL=function(a,b,c){let d=j(a,b,c);return l(k(d.opts.type).renderToDataURL,a,d)},b.toBuffer=function(a,b,c){let d=j(a,b,c);return l(k(d.opts.type).renderToBuffer,a,d)},b.toFile=function(a,b,c,e){if("string"!=typeof a||"string"!=typeof b&&"object"!=typeof b)throw Error("Invalid argument");if(arguments.length<3&&!d())throw Error("Too few arguments provided");let f=j(b,c,e);return l(k(f.opts.type||a.slice((a.lastIndexOf(".")-1>>>0)+2).toLowerCase()).renderToFile.bind(null,a),b,f)},b.toFileStream=function(a,b,c){if(arguments.length<2)throw Error("Too few arguments provided");let d=j(b,c,a.emit.bind(a,"error"));l(k("png").renderToFileStream.bind(null,a),b,d)}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42516:(a,b,c)=>{"use strict";let d=c(81769),e=c(27734);b.process=function(a,b){let c=[],f=new d(a);return new e(b,{read:f.read.bind(f),write:function(a){c.push(a)},complete:function(){}}).start(),f.process(),Buffer.concat(c)}},43144:(a,b,c)=>{let d=c(81754);b.mul=function(a,b){let c=new Uint8Array(a.length+b.length-1);for(let e=0;e<a.length;e++)for(let f=0;f<b.length;f++)c[e+f]^=d.mul(a[e],b[f]);return c},b.mod=function(a,b){let c=new Uint8Array(a);for(;c.length-b.length>=0;){let a=c[0];for(let e=0;e<b.length;e++)c[e]^=d.mul(b[e],a);let e=0;for(;e<c.length&&0===c[e];)e++;c=c.slice(e)}return c},b.generateECPolynomial=function(a){let c=new Uint8Array([1]);for(let e=0;e<a;e++)c=b.mul(c,new Uint8Array([1,d.exp(e)]));return c}},43894:a=>{"use strict";let b=[];for(let a=0;a<256;a++){let c=a;for(let a=0;a<8;a++)1&c?c=0xedb88320^c>>>1:c>>>=1;b[a]=c}let c=a.exports=function(){this._crc=-1};c.prototype.write=function(a){for(let c=0;c<a.length;c++)this._crc=b[(this._crc^a[c])&255]^this._crc>>>8;return!0},c.prototype.crc32=function(){return -1^this._crc},c.crc32=function(a){let c=-1;for(let d=0;d<a.length;d++)c=b[(c^a[d])&255]^c>>>8;return -1^c}},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46349:a=>{function b(a){if(!a||a<1)throw Error("BitMatrix size must be defined and greater than 0");this.size=a,this.data=new Uint8Array(a*a),this.reservedBit=new Uint8Array(a*a)}b.prototype.set=function(a,b,c,d){let e=a*this.size+b;this.data[e]=c,d&&(this.reservedBit[e]=!0)},b.prototype.get=function(a,b){return this.data[a*this.size+b]},b.prototype.xor=function(a,b,c){this.data[a*this.size+b]^=c},b.prototype.isReserved=function(a,b){return this.reservedBit[a*this.size+b]},a.exports=b},46387:(a,b,c)=>{let d=c(29021),e=c(34447).O,f=c(88397);b.render=function(a,b){let c=f.getOptions(b),d=c.rendererOpts,g=f.getImageWidth(a.modules.size,c);d.width=g,d.height=g;let h=new e(d);return f.qrToImageData(h.data,a,c),h},b.renderToDataURL=function(a,c,d){void 0===d&&(d=c,c=void 0),b.renderToBuffer(a,c,function(a,b){a&&d(a);let c="data:image/png;base64,";c+=b.toString("base64"),d(null,c)})},b.renderToBuffer=function(a,c,d){void 0===d&&(d=c,c=void 0);let e=b.render(a,c),f=[];e.on("error",d),e.on("data",function(a){f.push(a)}),e.on("end",function(){d(null,Buffer.concat(f))}),e.pack()},b.renderToFile=function(a,c,e,f){void 0===f&&(f=e,e=void 0);let g=!1,h=(...a)=>{g||(g=!0,f.apply(null,a))},i=d.createWriteStream(a);i.on("error",h),i.on("close",h),b.renderToFileStream(i,c,e)},b.renderToFileStream=function(a,c,d){b.render(c,d).pack().pipe(a)}},49149:(a,b,c)=>{"use strict";let d=c(28354),e=c(27910),f=c(67269),g=c(98052),h=a.exports=function(a){e.call(this),this._packer=new g(a||{}),this._deflate=this._packer.createDeflate(),this.readable=!0};d.inherits(h,e),h.prototype.pack=function(a,b,c,d){this.emit("data",Buffer.from(f.PNG_SIGNATURE)),this.emit("data",this._packer.packIHDR(b,c)),d&&this.emit("data",this._packer.packGAMA(d));let e=this._packer.filterData(a,b,c);this._deflate.on("error",this.emit.bind(this,"error")),this._deflate.on("data",(function(a){this.emit("data",this._packer.packIDAT(a))}).bind(this)),this._deflate.on("end",(function(){this.emit("data",this._packer.packIEND()),this.emit("end")}).bind(this)),this._deflate.end(e)}},49998:(a,b,c)=>{"use strict";a.exports=c(40355)},52002:a=>{function b(){this.buffer=[],this.length=0}b.prototype={get:function(a){let b=Math.floor(a/8);return(this.buffer[b]>>>7-a%8&1)==1},put:function(a,b){for(let c=0;c<b;c++)this.putBit((a>>>b-c-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(a){let b=Math.floor(this.length/8);this.buffer.length<=b&&this.buffer.push(0),a&&(this.buffer[b]|=128>>>this.length%8),this.length++}},a.exports=b},52324:(a,b,c)=>{let d=c(58305),e=c(19477),f=c(58856),g=c(93669),h=c(83929),i=d.getBCHDigit(7973);function j(a,b){return g.getCharCountIndicator(a,b)+4}b.from=function(a,b){return h.isValid(a)?parseInt(a,10):b},b.getCapacity=function(a,b,c){if(!h.isValid(a))throw Error("Invalid QR Code version");void 0===c&&(c=g.BYTE);let f=(d.getSymbolTotalCodewords(a)-e.getTotalCodewordsCount(a,b))*8;if(c===g.MIXED)return f;let i=f-j(c,a);switch(c){case g.NUMERIC:return Math.floor(i/10*3);case g.ALPHANUMERIC:return Math.floor(i/11*2);case g.KANJI:return Math.floor(i/13);case g.BYTE:default:return Math.floor(i/8)}},b.getBestVersionForData=function(a,c){let d,e=f.from(c,f.M);if(Array.isArray(a)){if(a.length>1){for(let c=1;c<=40;c++)if(function(a,b){let c=0;return a.forEach(function(a){let d=j(a.mode,b);c+=d+a.getBitsLength()}),c}(a,c)<=b.getCapacity(c,e,g.MIXED))return c;return}if(0===a.length)return 1;d=a[0]}else d=a;return function(a,c,d){for(let e=1;e<=40;e++)if(c<=b.getCapacity(e,d,a))return e}(d.mode,d.getLength(),e)},b.getEncodedBits=function(a){if(!h.isValid(a)||a<7)throw Error("Invalid QR Code version");let b=a<<12;for(;d.getBCHDigit(b)-i>=0;)b^=7973<<d.getBCHDigit(b)-i;return a<<12|b}},55211:a=>{"use strict";a.exports=function(a,b,c){let d=a+b-c,e=Math.abs(d-a),f=Math.abs(d-b),g=Math.abs(d-c);return e<=f&&e<=g?a:f<=g?b:c}},55258:(a,b,c)=>{let d=c(58305),e=d.getBCHDigit(1335);b.getEncodedBits=function(a,b){let c=a.bit<<3|b,f=c<<10;for(;d.getBCHDigit(f)-e>=0;)f^=1335<<d.getBCHDigit(f)-e;return(c<<10|f)^21522}},55511:a=>{"use strict";a.exports=require("crypto")},57949:(a,b,c)=>{"use strict";let d=c(28354),e=c(27910),f=a.exports=function(){e.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding="utf8",this.writable=!0};d.inherits(f,e),f.prototype.read=function(a,b){this._reads.push({length:Math.abs(a),allowLess:a<0,func:b}),process.nextTick((function(){this._process(),this._paused&&this._reads&&this._reads.length>0&&(this._paused=!1,this.emit("drain"))}).bind(this))},f.prototype.write=function(a,b){let c;return this.writable?(c=Buffer.isBuffer(a)?a:Buffer.from(a,b||this._encoding),this._buffers.push(c),this._buffered+=c.length,this._process(),this._reads&&0===this._reads.length&&(this._paused=!0),this.writable&&!this._paused):(this.emit("error",Error("Stream not writable")),!1)},f.prototype.end=function(a,b){a&&this.write(a,b),this.writable=!1,this._buffers&&(0===this._buffers.length?this._end():(this._buffers.push(null),this._process()))},f.prototype.destroySoon=f.prototype.end,f.prototype._end=function(){this._reads.length>0&&this.emit("error",Error("Unexpected end of input")),this.destroy()},f.prototype.destroy=function(){this._buffers&&(this.writable=!1,this._reads=null,this._buffers=null,this.emit("close"))},f.prototype._processReadAllowingLess=function(a){this._reads.shift();let b=this._buffers[0];b.length>a.length?(this._buffered-=a.length,this._buffers[0]=b.slice(a.length),a.func.call(this,b.slice(0,a.length))):(this._buffered-=b.length,this._buffers.shift(),a.func.call(this,b))},f.prototype._processRead=function(a){this._reads.shift();let b=0,c=0,d=Buffer.alloc(a.length);for(;b<a.length;){let e=this._buffers[c++],f=Math.min(e.length,a.length-b);e.copy(d,b,0,f),b+=f,f!==e.length&&(this._buffers[--c]=e.slice(f))}c>0&&this._buffers.splice(0,c),this._buffered-=a.length,a.func.call(this,d)},f.prototype._process=function(){try{for(;this._buffered>0&&this._reads&&this._reads.length>0;){let a=this._reads[0];if(a.allowLess)this._processReadAllowingLess(a);else if(this._buffered>=a.length)this._processRead(a);else break}this._buffers&&!this.writable&&this._end()}catch(a){this.emit("error",a)}}},58305:(a,b)=>{let c,d=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];b.getSymbolSize=function(a){if(!a)throw Error('"version" cannot be null or undefined');if(a<1||a>40)throw Error('"version" should be in range from 1 to 40');return 4*a+17},b.getSymbolTotalCodewords=function(a){return d[a]},b.getBCHDigit=function(a){let b=0;for(;0!==a;)b++,a>>>=1;return b},b.setToSJISFunction=function(a){if("function"!=typeof a)throw Error('"toSJISFunc" is not a valid function.');c=a},b.isKanjiModeEnabled=function(){return void 0!==c},b.toSJIS=function(a){return c(a)}},58856:(a,b)=>{b.L={bit:1},b.M={bit:0},b.Q={bit:3},b.H={bit:2},b.isValid=function(a){return a&&void 0!==a.bit&&a.bit>=0&&a.bit<4},b.from=function(a,c){if(b.isValid(a))return a;try{if("string"!=typeof a)throw Error("Param is not a string");switch(a.toLowerCase()){case"l":case"low":return b.L;case"m":case"medium":return b.M;case"q":case"quartile":return b.Q;case"h":case"high":return b.H;default:throw Error("Unknown EC Level: "+a)}}catch(a){return c}}},58879:(a,b,c)=>{"use strict";let d=c(9709),e=c(80706);b.read=function(a,b){return d(a,b||{})},b.write=function(a,b){return e(a,b)}},59725:(a,b)=>{"use strict";let c=[{x:[0],y:[0]},{x:[4],y:[0]},{x:[0,4],y:[4]},{x:[2,6],y:[0,4]},{x:[0,2,4,6],y:[2,6]},{x:[1,3,5,7],y:[0,2,4,6]},{x:[0,1,2,3,4,5,6,7],y:[1,3,5,7]}];b.getImagePasses=function(a,b){let d=[],e=a%8,f=b%8,g=(a-e)/8,h=(b-f)/8;for(let a=0;a<c.length;a++){let b=c[a],i=g*b.x.length,j=h*b.y.length;for(let a=0;a<b.x.length;a++)if(b.x[a]<e)i++;else break;for(let a=0;a<b.y.length;a++)if(b.y[a]<f)j++;else break;i>0&&j>0&&d.push({width:i,height:j,index:a})}return d},b.getInterlaceIterator=function(a){return function(b,d,e){let f=b%c[e].x.length,g=(b-f)/c[e].x.length*8+c[e].x[f],h=d%c[e].y.length;return 4*g+((d-h)/c[e].y.length*8+c[e].y[h])*a*4}}},61345:(a,b)=>{b.render=function(a,b,c){let d=a.modules.size,e=a.modules.data,f="\x1b[47m \x1b[0m",g="",h=Array(d+3).join(f),i=[,,].join(f);g+=h+"\n";for(let a=0;a<d;++a){g+=f;for(let b=0;b<d;b++)g+=e[a*d+b]?"\x1b[40m \x1b[0m":f;g+=i+"\n"}return g+=h+"\n","function"==typeof c&&c(null,g),g}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64323:(a,b)=>{let c="[0-9]+",d="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",e="(?:(?![A-Z0-9 $%*+\\-./:]|"+(d=d.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";b.KANJI=RegExp(d,"g"),b.BYTE_KANJI=RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),b.BYTE=RegExp(e,"g"),b.NUMERIC=RegExp(c,"g"),b.ALPHANUMERIC=RegExp("[A-Z $%*+\\-./:]+","g");let f=RegExp("^"+d+"$"),g=RegExp("^"+c+"$"),h=RegExp("^[A-Z0-9 $%*+\\-./:]+$");b.testKanji=function(a){return f.test(a)},b.testNumeric=function(a){return g.test(a)},b.testAlphanumeric=function(a){return h.test(a)}},64424:(a,b,c)=>{let d=c(93669),e=c(58305);function f(a){this.mode=d.KANJI,this.data=a}f.getBitsLength=function(a){return 13*a},f.prototype.getLength=function(){return this.data.length},f.prototype.getBitsLength=function(){return f.getBitsLength(this.data.length)},f.prototype.write=function(a){let b;for(b=0;b<this.data.length;b++){let c=e.toSJIS(this.data[b]);if(c>=33088&&c<=40956)c-=33088;else if(c>=57408&&c<=60351)c-=49472;else throw Error("Invalid SJIS character: "+this.data[b]+"\nMake sure your charset is UTF-8");c=(c>>>8&255)*192+(255&c),a.put(c,13)}},a.exports=f},66530:(a,b,c)=>{let d=c(61345),e=c(86491);b.render=function(a,b,c){return b&&b.small?e.render(a,b,c):d.render(a,b,c)}},67269:a=>{"use strict";a.exports={PNG_SIGNATURE:[137,80,78,71,13,10,26,10],TYPE_IHDR:0x49484452,TYPE_IEND:0x49454e44,TYPE_IDAT:0x49444154,TYPE_PLTE:0x504c5445,TYPE_tRNS:0x74524e53,TYPE_gAMA:0x67414d41,COLORTYPE_GRAYSCALE:0,COLORTYPE_PALETTE:1,COLORTYPE_COLOR:2,COLORTYPE_ALPHA:4,COLORTYPE_PALETTE_COLOR:3,COLORTYPE_COLOR_ALPHA:6,COLORTYPE_TO_BPP_MAP:{0:1,2:3,3:1,4:2,6:4},GAMMA_DIVISION:1e5}},72081:(a,b,c)=>{let d=c(88397),e={WW:" ",WB:"▄",BB:"█",BW:"▀"},f={BB:" ",BW:"▄",WW:"█",WB:"▀"};b.render=function(a,b,c){let g=d.getOptions(b),h=e;("#ffffff"===g.color.dark.hex||"#000000"===g.color.light.hex)&&(h=f);let i=a.modules.size,j=a.modules.data,k="",l=Array(i+2*g.margin+1).join(h.WW);l=Array(g.margin/2+1).join(l+"\n");let m=Array(g.margin+1).join(h.WW);k+=l;for(let a=0;a<i;a+=2){k+=m;for(let b=0;b<i;b++){var n;let c=j[a*i+b],d=j[(a+1)*i+b];k+=(n=h,c&&d?n.BB:c&&!d?n.BW:!c&&d?n.WB:n.WW)}k+=m+"\n"}return k+=l.slice(0,-1),"function"==typeof c&&c(null,k),k},b.renderToFile=function(a,d,e,f){void 0===f&&(f=e,e=void 0);let g=c(29021),h=b.render(d,e);g.writeFile(a,h,f)}},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76708:a=>{a.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},76760:a=>{"use strict";a.exports=require("node:path")},78908:a=>{"use strict";a.exports=import("shiki")},79428:a=>{"use strict";a.exports=require("buffer")},80183:(a,b,c)=>{"use strict";let d=c(12412).ok,e=c(74075),f=c(28354),g=c(79428).kMaxLength;function h(a){if(!(this instanceof h))return new h(a);a&&a.chunkSize<e.Z_MIN_CHUNK&&(a.chunkSize=e.Z_MIN_CHUNK),e.Inflate.call(this,a),this._offset=void 0===this._offset?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,a&&null!=a.maxLength&&(this._maxLength=a.maxLength)}function i(a,b){b&&process.nextTick(b),a._handle&&(a._handle.close(),a._handle=null)}function j(a,b){var c=new h(b),d=a;if("string"==typeof d&&(d=Buffer.from(d)),!(d instanceof Buffer))throw TypeError("Not a string or buffer");let f=c._finishFlushFlag;return null==f&&(f=e.Z_FINISH),c._processChunk(d,f)}h.prototype._processChunk=function(a,b,c){let f,h;if("function"==typeof c)return e.Inflate._processChunk.call(this,a,b,c);let j=this,k=a&&a.length,l=this._chunkSize-this._offset,m=this._maxLength,n=0,o=[],p=0;this.on("error",function(a){f=a}),d(this._handle,"zlib binding closed");do h=(h=this._handle.writeSync(b,a,n,k,this._buffer,this._offset,l))||this._writeState;while(!this._hadError&&function(a,b){if(j._hadError)return;let c=l-b;if(d(c>=0,"have should not go down"),c>0){let a=j._buffer.slice(j._offset,j._offset+c);if(j._offset+=c,a.length>m&&(a=a.slice(0,m)),o.push(a),p+=a.length,0==(m-=a.length))return!1}return(0===b||j._offset>=j._chunkSize)&&(l=j._chunkSize,j._offset=0,j._buffer=Buffer.allocUnsafe(j._chunkSize)),0===b&&(n+=k-a,k=a,!0)}(h[0],h[1]));if(this._hadError)throw f;if(p>=g)throw i(this),RangeError("Cannot create final Buffer. It would be larger than 0x"+g.toString(16)+" bytes");let q=Buffer.concat(o,p);return i(this),q},f.inherits(h,e.Inflate),a.exports=b=j,b.Inflate=h,b.createInflate=function(a){return new h(a)},b.inflateSync=j},80706:(a,b,c)=>{"use strict";let d=!0,e=c(74075);e.deflateSync||(d=!1);let f=c(67269),g=c(98052);a.exports=function(a,b){if(!d)throw Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let c=new g(b||{}),h=[];h.push(Buffer.from(f.PNG_SIGNATURE)),h.push(c.packIHDR(a.width,a.height)),a.gamma&&h.push(c.packGAMA(a.gamma));let i=c.filterData(a.data,a.width,a.height),j=e.deflateSync(i,c.getDeflateOptions());if(i=null,!j||!j.length)throw Error("bad png - invalid compressed data response");return h.push(c.packIDAT(j)),h.push(c.packIEND()),Buffer.concat(h)}},81754:(a,b)=>{let c=new Uint8Array(512),d=new Uint8Array(256),e=1;for(let a=0;a<255;a++)c[a]=e,d[e]=a,256&(e<<=1)&&(e^=285);for(let a=255;a<512;a++)c[a]=c[a-255];b.log=function(a){if(a<1)throw Error("log("+a+")");return d[a]},b.exp=function(a){return c[a]},b.mul=function(a,b){return 0===a||0===b?0:c[d[a]+d[b]]}},81769:a=>{"use strict";let b=a.exports=function(a){this._buffer=a,this._reads=[]};b.prototype.read=function(a,b){this._reads.push({length:Math.abs(a),allowLess:a<0,func:b})},b.prototype.process=function(){for(;this._reads.length>0&&this._buffer.length;){let a=this._reads[0];if(this._buffer.length&&(this._buffer.length>=a.length||a.allowLess)){this._reads.shift();let b=this._buffer;this._buffer=b.slice(a.length),a.func.call(this,b.slice(0,a.length))}else break}return this._reads.length>0?Error("There are some read requests waitng on finished stream"):this._buffer.length>0?Error("unrecognised content at end of stream"):void 0}},83670:a=>{"use strict";a.exports=function(a,b){let c=b.depth,d=b.width,e=b.height,f=b.colorType,g=b.transColor,h=b.palette,i=a;return 3===f?!function(a,b,c,d,e){let f=0;for(let g=0;g<d;g++)for(let d=0;d<c;d++){let c=e[a[f]];if(!c)throw Error("index "+a[f]+" not in palette");for(let a=0;a<4;a++)b[f+a]=c[a];f+=4}}(a,i,d,e,h):(g&&function(a,b,c,d,e){let f=0;for(let g=0;g<d;g++)for(let d=0;d<c;d++){let c=!1;if(1===e.length?e[0]===a[f]&&(c=!0):e[0]===a[f]&&e[1]===a[f+1]&&e[2]===a[f+2]&&(c=!0),c)for(let a=0;a<4;a++)b[f+a]=0;f+=4}}(a,i,d,e,g),8!==c&&(16===c&&(i=Buffer.alloc(d*e*4)),!function(a,b,c,d,e){let f=Math.pow(2,e)-1,g=0;for(let e=0;e<d;e++)for(let d=0;d<c;d++){for(let c=0;c<4;c++)b[g+c]=Math.floor(255*a[g+c]/f+.5);g+=4}}(a,i,d,e,c))),i}},83929:(a,b)=>{b.isValid=function(a){return!isNaN(a)&&a>=1&&a<=40}},84879:a=>{"use strict";var b={single_source_shortest_paths:function(a,c,d){var e,f,g,h,i,j,k,l={},m={};m[c]=0;var n=b.PriorityQueue.make();for(n.push(c,0);!n.empty();)for(g in f=(e=n.pop()).value,h=e.cost,i=a[f]||{})i.hasOwnProperty(g)&&(j=h+i[g],k=m[g],(void 0===m[g]||k>j)&&(m[g]=j,n.push(g,j),l[g]=f));if(void 0!==d&&void 0===m[d])throw Error(["Could not find a path from ",c," to ",d,"."].join(""));return l},extract_shortest_path_from_predecessor_list:function(a,b){for(var c=[],d=b;d;)c.push(d),a[d],d=a[d];return c.reverse(),c},find_path:function(a,c,d){var e=b.single_source_shortest_paths(a,c,d);return b.extract_shortest_path_from_predecessor_list(e,d)},PriorityQueue:{make:function(a){var c,d=b.PriorityQueue,e={};for(c in a=a||{},d)d.hasOwnProperty(c)&&(e[c]=d[c]);return e.queue=[],e.sorter=a.sorter||d.default_sorter,e},default_sorter:function(a,b){return a.cost-b.cost},push:function(a,b){this.queue.push({value:a,cost:b}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};a.exports=b},85903:(a,b,c)=>{"use strict";c.d(b,{AppShell:()=>dE});var d=c(48249),e=c(67484),f=c.n(e),g=c(19099);function h(a,b=Date.now()){let c=new Date(a).getTime();if(!Number.isFinite(c))return"";let d=b-c,e=Math.floor(d/6e4),f=Math.floor(d/36e5),g=Math.floor(d/864e5);return e<1?"just now":e<60?`${e}m ago`:f<24?`${f}h ago`:g<7?`${g}d ago`:new Date(c).toLocaleDateString()}function i(a,b){let c=b&&a.startsWith(b)?`~${a.slice(b.length)}`:a,d=c.includes("/")?"/":"\\",e=c.split(d).filter(Boolean);return e.length<=2?c:`…/${e.slice(-2).join(d)}`}function j(a,b){if(!a)return"No Project";let c=a.replace(/[\\/]+$/,""),d=c.includes("/")?"/":"\\";return c.split(d).filter(Boolean).pop()||i(a,b)}function k({node:a,selectedSessionId:b,onSelectSession:c,onRenamed:f,onSessionDeleted:g,depth:h,runningSessionIds:i}){let[j,m]=(0,e.useState)(!1),n=a.children.length>0;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{position:"relative"},children:[h>0&&(0,d.jsx)("div",{style:{position:"absolute",left:12*h+6,top:0,bottom:0,width:1,background:"var(--border)",pointerEvents:"none"}}),(0,d.jsx)(l,{session:a.session,isSelected:a.session.id===b,onClick:()=>c(a.session),onRenamed:f,onDeleted:a=>g?.(a),depth:h,hasChildren:n,collapsed:j,onToggleCollapse:()=>m(a=>!a),isRunning:i.has(a.session.id)})]}),n&&!j&&(0,d.jsx)("div",{children:a.children.map(a=>(0,d.jsx)(k,{node:a,selectedSessionId:b,onSelectSession:c,onRenamed:f,onSessionDeleted:g,depth:h+1,runningSessionIds:i},a.session.id))})]})}function l({session:a,isSelected:b,onClick:c,onRenamed:f,onDeleted:g,depth:i=0,hasChildren:j=!1,collapsed:k=!1,onToggleCollapse:m,isRunning:n=!1}){let[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!1),y=(0,e.useRef)(null),z=a.name||a.firstMessage.slice(0,50)||a.id.slice(0,12),A=(0,e.useCallback)(b=>{b.stopPropagation(),t(a.name??""),r(!0),setTimeout(()=>y.current?.select(),0)},[a.name]),B=(0,e.useCallback)(async()=>{let b=s.trim();if(r(!1),b!==(a.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(a.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})}),f?.()}catch{}},[s,a.id,a.name,f]),C=(0,e.useCallback)(a=>{a.stopPropagation(),v(!0)},[]),D=(0,e.useCallback)(async b=>{b.stopPropagation(),v(!1),x(!0);try{await fetch(`/api/sessions/${encodeURIComponent(a.id)}`,{method:"DELETE"}),g?.(a.id)}catch{x(!1)}},[a.id,g]),E=(0,e.useCallback)(a=>{a.stopPropagation(),v(!1)},[]);return(0,d.jsx)("div",{onClick:u||q?void 0:c,onMouseEnter:()=>p(!0),onMouseLeave:()=>{p(!1)},style:{display:"flex",alignItems:"center",padding:"7px 8px",paddingLeft:i>0?12*i+14:14,paddingRight:8,cursor:u||q?"default":"pointer",background:u?"rgba(239,68,68,0.06)":b?"var(--bg-selected)":o?"var(--bg-hover)":"transparent",borderLeft:u?"2px solid #ef4444":b?"2px solid var(--accent)":"2px solid transparent",transition:"background 0.1s",opacity:w?.5:1,gap:6,overflow:"hidden"},children:u?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["Delete ",(0,d.jsxs)("span",{style:{fontWeight:600},children:["“",z.slice(0,22),z.length>22?"…":"","”"]}),"?"]}),(0,d.jsxs)("div",{style:{display:"flex",gap:5,flexShrink:0},children:[(0,d.jsxs)("button",{onClick:D,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:4,height:30,padding:"0 11px",background:"#ef4444",border:"none",borderRadius:6,color:"#fff",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,d.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,d.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,d.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}),"Delete"]}),(0,d.jsx)("button",{onClick:E,style:{display:"flex",alignItems:"center",justifyContent:"center",height:30,padding:"0 11px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:500,whiteSpace:"nowrap"},children:"Cancel"})]})]}):q?(0,d.jsx)("input",{ref:y,value:s,onChange:a=>t(a.target.value),onBlur:B,onKeyDown:a=>{"Enter"===a.key&&B(),"Escape"===a.key&&r(!1)},autoFocus:!0,style:{flex:1,fontSize:12,padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",height:28}}):(0,d.jsxs)(d.Fragment,{children:[i>0&&(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),0===i&&(0,d.jsx)("span",{"aria-hidden":"true",style:{width:n?7:5,height:n?7:5,borderRadius:"50%",background:n?"#22c55e":b?"var(--accent)":"var(--text-dim)",opacity:b?1:.35,flexShrink:0,...n?{boxShadow:"0 0 6px rgba(34,197,94,0.5)",animation:"pulse 2s infinite"}:{}}}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:1},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:b?600:500,lineHeight:"18px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)"},title:z,children:z}),(0,d.jsxs)("div",{style:{display:"flex",gap:8,color:"var(--text-dim)",fontSize:11},children:[(0,d.jsx)("span",{title:a.modified,children:h(a.modified)}),(0,d.jsxs)("span",{children:[a.messageCount," msgs"]}),!1===a.cwdExists&&(0,d.jsx)("span",{title:`Project path missing: ${a.cwd}`,style:{color:"#f87171"},children:"missing path"})]})]}),j&&(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),m?.()},title:k?"Expand forks":"Collapse forks",style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",transform:k?"rotate(-90deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})}),o&&(0,d.jsxs)("div",{style:{display:"flex",gap:4,flexShrink:0},children:[(0,d.jsx)("button",{onClick:A,title:"Rename",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-selected)",a.currentTarget.style.color="var(--accent)",a.currentTarget.style.borderColor="rgba(37,99,235,0.35)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.borderColor="var(--border)"},children:(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})})}),(0,d.jsx)("button",{onClick:C,title:"Delete",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="rgba(239,68,68,0.08)",a.currentTarget.style.color="#ef4444",a.currentTarget.style.borderColor="rgba(239,68,68,0.35)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.borderColor="var(--border)"},children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,d.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,d.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,d.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]})})]})]})})}function m(a,b){let c=b&&a.startsWith(b)?"~"+a.slice(b.length):a,d=c.includes("/")?"/":"\\",e=c.split(d).filter(Boolean);return e.length<=2?c:"..."+d+e.slice(-2).join(d)}function n(a){let b=new Date(a);return Number.isNaN(b.getTime())?"":b.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function o({open:a,cwd:b,homeDir:c,onClose:f,onSelectSession:g}){let[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)("current"),[l,p]=(0,e.useState)([]),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(!1),w=(0,e.useRef)(null);if(!a)return null;let x=h.trim(),y=l.reduce((a,b)=>a+b.matches.length,0);return(0,d.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":"Search conversation history",style:{position:"fixed",inset:0,zIndex:500,display:"flex",alignItems:"flex-start",justifyContent:"center",padding:"8vh 16px 16px",background:"rgba(0,0,0,0.28)"},onMouseDown:a=>{a.target===a.currentTarget&&f()},children:(0,d.jsxs)("div",{style:{width:"min(760px, 100%)",maxHeight:"78vh",display:"flex",flexDirection:"column",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 16px 48px rgba(0,0,0,0.24)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:12,borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:8,padding:"0 10px"},children:[(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 16 16",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"7",cy:"7",r:"4.5"}),(0,d.jsx)("path",{d:"M10.5 10.5 13.5 13.5"})]}),(0,d.jsx)("input",{ref:w,value:h,onChange:a=>i(a.target.value),placeholder:"Search conversation history...",style:{flex:1,minWidth:0,height:38,background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:14}})]}),(0,d.jsx)("button",{type:"button",onClick:f,title:"Close",style:{width:34,height:34,display:"inline-flex",alignItems:"center",justifyContent:"center",background:"none",border:"none",borderRadius:7,color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color="var(--text-dim)"},children:(0,d.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",children:[(0,d.jsx)("path",{d:"M4 4 12 12"}),(0,d.jsx)("path",{d:"M12 4 4 12"})]})})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:10},children:[(0,d.jsx)("div",{style:{display:"inline-flex",padding:2,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:7},children:[{value:"current",label:"Current project",disabled:!b},{value:"all",label:"All history",disabled:!1}].map(a=>(0,d.jsx)("button",{type:"button",disabled:a.disabled,onClick:()=>k(a.value),style:{height:24,padding:"0 9px",background:j===a.value?"var(--bg-selected)":"transparent",border:"none",borderRadius:5,color:a.disabled?"var(--text-dim)":j===a.value?"var(--text)":"var(--text-muted)",cursor:a.disabled?"not-allowed":"pointer",fontSize:11,fontWeight:500},children:a.label},a.value))}),(0,d.jsx)("div",{style:{flex:1,minWidth:0,color:"var(--text-dim)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"current"===j&&b?m(b,c):"Searching every saved session"})]})]}),(0,d.jsxs)("div",{style:{flex:1,overflowY:"auto",minHeight:180},children:[x.length<2&&(0,d.jsx)("div",{style:{padding:28,textAlign:"center",color:"var(--text-muted)",fontSize:13},children:"Type at least 2 characters to search saved conversations."}),x.length>=2&&q&&0===l.length&&(0,d.jsx)("div",{style:{padding:28,textAlign:"center",color:"var(--text-muted)",fontSize:13},children:"Searching..."}),s&&(0,d.jsx)("div",{style:{padding:18,color:"#ef4444",fontSize:13},children:s}),x.length>=2&&!q&&!s&&0===l.length&&(0,d.jsx)("div",{style:{padding:28,textAlign:"center",color:"var(--text-muted)",fontSize:13},children:"No matching conversations found."}),l.map(a=>(0,d.jsxs)("div",{style:{borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{g(a.session),f()},style:{width:"100%",display:"flex",alignItems:"center",gap:10,padding:"10px 12px",background:"var(--bg-panel)",border:"none",borderBottom:"1px solid var(--border)",color:"var(--text)",cursor:"pointer",textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,fontWeight:600},children:a.session.name||a.session.firstMessage||"(no messages)"}),(0,d.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:11},children:n(a.session.modified)})]}),(0,d.jsx)("div",{style:{marginTop:2,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:m(a.session.cwd,c)})]}),a.matchCount>a.matches.length&&(0,d.jsxs)("span",{style:{flexShrink:0,color:"var(--text-muted)",fontSize:11},children:[a.matchCount," matches"]})]}),a.matches.map(b=>(0,d.jsxs)("button",{type:"button",onClick:()=>{g(a.session),f()},style:{width:"100%",padding:"9px 14px 9px 28px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="none"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:3},children:[(0,d.jsx)("span",{style:{minWidth:54,color:"user"===b.role?"var(--accent)":"var(--text-dim)",fontSize:11,fontWeight:600,textTransform:"capitalize"},children:b.role}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:n(b.timestamp)})]}),(0,d.jsx)("div",{style:{fontSize:12,lineHeight:1.45,color:"var(--text-muted)"},children:function(a,b){let c=b.trim();if(!c)return a;let e=a.toLowerCase().indexOf(c.toLowerCase());return e<0?a:(0,d.jsxs)(d.Fragment,{children:[a.slice(0,e),(0,d.jsx)("mark",{style:{background:"rgba(37,99,235,0.16)",color:"var(--text)",borderRadius:3,padding:"0 2px"},children:a.slice(e,e+c.length)}),a.slice(e+c.length)]})}(b.snippet,x)})]},b.entryId))]},a.session.id))]}),(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",padding:"8px 12px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:[(0,d.jsx)("span",{children:y>0?`${y}${u?"+":""} results`:"Esc to close"}),q&&l.length>0&&(0,d.jsx)("span",{children:"Updating..."})]})]})})}let p="Home";function q(a){return a instanceof Error?a.message:String(a)}function r(a,b){let c=a.crumbs.findIndex(b=>b.path===a.home);if(-1===c)return a.crumbs;let d=a.crumbs.slice(c+1);return[{name:b,path:a.home},...d]}function s(a){return a.home.includes("\\")?"\\":"/"}let t={display:"flex",flexDirection:"column",gap:2,flex:"1 1 0",minWidth:256,overflowY:"auto",paddingRight:8},u={width:"100%",display:"flex",alignItems:"center",gap:5,height:28,flex:"none",padding:"0 6px",border:"none",borderRadius:6,background:"transparent",textAlign:"left",cursor:"pointer",color:"var(--text)",fontSize:12.5,fontFamily:"inherit"},v={background:"var(--bg-selected)"},w={flex:"1 1 0",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5};function x({entries:a,selectedPath:b,busy:c,onPick:e,showHidden:f,filterPrefix:g}){let h,i,j,k=(h=null===g?"":g.toLowerCase(),i=a=>(f||!a.hidden||h.startsWith("."))&&a.name.toLowerCase().startsWith(h),j=""!==h&&a.some(i),a.filter(a=>a.path===b||(j?i(a):f||!a.hidden)));return(0,d.jsx)("div",{style:t,role:"list",children:k.map(a=>{let f=a.path===b;return(0,d.jsxs)("button",{type:"button",role:"listitem","aria-current":f||void 0,disabled:c,onClick:()=>e(a),title:a.path,style:{...u,...f?v:null},children:[(0,d.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:f?"var(--accent)":"var(--text-muted)"},children:(0,d.jsx)("path",{d:"M3 6.5A2.5 2.5 0 0 1 5.5 4H10l2 2.5h6.5A2.5 2.5 0 0 1 21 9v8.5A2.5 2.5 0 0 1 18.5 20h-13A2.5 2.5 0 0 1 3 17.5v-11Z"})}),(0,d.jsx)("span",{style:w,children:a.name}),(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--text-dim)"},children:(0,d.jsx)("polyline",{points:"3.5 2 6.5 5 3.5 8"})})]},a.path)})})}function y({open:a,initialPath:b,onClose:c,onSelect:f}){let[g,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(!1),[o,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(0),[w,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(null),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(null),K=(0,e.useRef)(0),L=(0,e.useRef)(null),M=(0,e.useRef)(0),N=(0,e.useRef)(!1),O=(0,e.useRef)(!1),P=(0,e.useRef)(null);(0,e.useRef)({parent:null,child:null});let Q=(0,e.useRef)(null),R=(0,e.useRef)(null),S=(0,e.useCallback)((a,b)=>fetch(a?`/api/projects/browse?dir=${encodeURIComponent(a)}`:"/api/projects/browse",{signal:b}).then(async a=>{let b=await a.json();if(!a.ok||b.error)throw Error(b.error??`HTTP ${a.status}`);return b}),[]),T=(0,e.useCallback)(()=>(L.current?.abort(),L.current=null,++K.current),[]),U=(0,e.useCallback)(()=>{t(!1),v(a=>a+1)},[]),V=(0,e.useCallback)(a=>{let b=T(),c=new AbortController;return L.current=c,U(),{seq:b,scan:S(a,c.signal)}},[T,U,S]),W=(0,e.useCallback)(a=>{let b=new AbortController;return L.current=b,U(),S(a,b.signal)},[U,S]),X=(0,e.useCallback)((a,b)=>{let c=b?.closeEditor??!1,d=b?.announce??!1,{seq:e,scan:f}=V(a);n(!0),d&&z(null);let g=()=>{(n(!1),c)?B(null):z(null)};f.then(b=>{if(e!==K.current)return;c||void 0===a||(P.current={directory:a,landed:b.current});let d=!1,f=()=>{d||e!==K.current||(d=!0,h(b),j(null),l(null),g())};if(r(b,"").length<2)return void f();let i=b.crumbs.at(-2);void 0===i?f():(W(i.path).then(a=>{if(e!==K.current)return;let c=s(a),i=a=>"\\"===c?a.toLowerCase():a,k=a.directories.find(a=>i(a.path)===i(b.current));void 0===k?f():(d=!0,h(a),j(k),l(b),g())},()=>{f()}),c&&window.setTimeout(f,200))},a=>{e===K.current&&(n(!1),d&&z(q(a)))})},[V,W]),Y=(0,e.useCallback)(a=>{X(a,{closeEditor:!0,announce:!0})},[X]),Z=(0,e.useCallback)(a=>{let{seq:b,scan:c}=V(a.path);null!==A&&B(null),j(a),l(null),n(!0),z(null),c.then(a=>{b===K.current&&(l(a),n(!1))},a=>{b===K.current&&(n(!1),z(q(a)),j(null))})},[V,A]),$=(0,e.useCallback)(a=>{null!==k&&(h(k),Z(a))},[k,Z]);(0,e.useCallback)(a=>{X(a,{closeEditor:!1,announce:!1})},[X]);let _=(0,e.useCallback)(()=>{T(),n(!1),B(null),z(null),null===k&&j(null),null===g&&Y()},[T,k,g,Y]),aa=k??g,ab=null===aa?[]:r(aa,p);ab.at(-1)?.path,k?.current;let ac=i?.path??g?.current??null,ad=(0,e.useCallback)(()=>{if(null===ac||null===E||G||""===E.trim())return;H(!0),J(null);let a=M.current;fetch("/api/projects/browse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dir:ac,name:E})}).then(async a=>{let b=await a.json();if(!a.ok||b.error)throw Error(b.error??`HTTP ${a.status}`);if("string"!=typeof b.path)throw Error("No path returned");return b.path}).then(b=>{if(a!==M.current)return;H(!1),F(null);let{seq:c,scan:d}=V(ac);n(!0),z(null),d.then(a=>{c===K.current&&(h(a),n(!1),Z({name:E,path:b,hidden:E.startsWith(".")}))},a=>{c===K.current&&(n(!1),z(q(a)))})},b=>{a===M.current&&(H(!1),J(q(b)))})},[ac,E,G,V,Z]),ae={onCompositionStart:()=>{N.current=!0},onCompositionEnd:()=>{N.current=!1}};if(!a)return null;let af=null!==i,ag=null===aa||null===A?null:function(a,b,c){let d,e,f=-1===(d="\\"===s(a)?Math.max(b.lastIndexOf("\\"),b.lastIndexOf("/")):b.lastIndexOf("/"))?null:b.slice(0,d+1);if(null===f)return{directory:null,tail:null};let g=f===(e=s(a),a.current.endsWith(e)?a.current:`${a.current}${e}`)||null!==c&&c.directory===f&&c.landed===a.current;return{directory:f,tail:g?b.slice(f.length):null}}(aa,A,P.current).tail,ah=i?.name??(null===g?"":r(g,p).at(-1)?.name??g.current),ai=null!==E||G,aj=null!==A,ak=aa?.drives??[],al=aa?s(aa):"/";return(0,d.jsxs)("div",{onMouseDown:a=>{a.target===a.currentTarget&&c()},style:{position:"fixed",inset:0,zIndex:1200,display:"flex",alignItems:"center",justifyContent:"center",padding:18,background:"rgba(0,0,0,0.34)"},children:[(0,d.jsxs)("div",{style:{width:"min(680px, 100%)",height:"min(500px, calc(100dvh - 32px))",display:"flex",flexDirection:"column",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 12px 40px rgba(0,0,0,0.25)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,flex:"none",padding:"16px 14px 8px 24px",borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",minHeight:24},children:[(0,d.jsx)("div",{style:{color:"var(--text)",fontSize:15,fontWeight:700},children:"Select project path"}),(0,d.jsx)("button",{type:"button",onClick:c,"aria-label":"Close",title:"Close",style:{width:28,height:28,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:18,lineHeight:1},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--text-muted)"},children:"\xd7"})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,boxSizing:"border-box",minHeight:26,marginLeft:-9,padding:"0 8px",border:`1px solid ${null!==A?"var(--border)":"transparent"}`,borderRadius:8},children:[ak.length>0&&(0,d.jsxs)("select",{value:ak.find(a=>(aa?.current??"").toLowerCase().startsWith(a.toLowerCase()))??"",onChange:a=>{a.target.value&&Y(a.target.value)},disabled:ai,title:"Drive",style:{height:24,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text-muted)",fontSize:11,maxWidth:72},children:[(0,d.jsx)("option",{value:"",children:"Drive"}),ak.map(a=>(0,d.jsx)("option",{value:a,children:a},a))]}),null===A?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{ref:Q,role:"navigation",style:{display:"flex",alignItems:"center",gap:4,flex:"0 1 auto",minWidth:0,overflowX:"auto",scrollbarWidth:"none"},children:ab.map((a,b)=>(0,d.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,flex:"none",minWidth:0},children:[b>0&&(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--text-dim)"},children:(0,d.jsx)("polyline",{points:"3.5 2 6.5 5 3.5 8"})}),(0,d.jsx)("button",{type:"button",disabled:ai,onClick:()=>Y(a.path),title:a.path,style:{border:"none",background:"transparent",padding:0,maxWidth:160,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-muted)",cursor:"pointer"},children:a.name})]},a.path))}),(0,d.jsx)("button",{type:"button","aria-label":"Edit path",title:"Edit path",disabled:ai,onClick:()=>{if(T(),n(!1),O.current=!1,null===g)return void B("");let a=i?.path??g.current;B(a.endsWith(al)?a:`${a}${al}`)},style:{display:"flex",alignItems:"center",justifyContent:"flex-end",flex:"1 0 34px",minWidth:34,height:22,padding:0,border:"none",background:"transparent",cursor:"text"},children:(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)"},children:(0,d.jsx)("path",{d:"M11.3 2.2a1.9 1.9 0 0 1 2.5 2.5L6 12.5 2.5 13.5 3.5 10l7.8-7.8Z"})})})]}):(0,d.jsx)("input",{value:A,autoFocus:!0,"aria-label":"Edit path",disabled:ai,spellCheck:!1,onChange:a=>{T(),n(!1),O.current=!1,B(a.target.value)},...ae,onKeyDown:a=>{"Enter"!==a.key||N.current||(a.preventDefault(),""!==A.trim()&&(O.current=!0,Y(A)))},onBlur:a=>{if(null===A||!document.hasFocus())return;let b=a.currentTarget.closest('[role="dialog"]');null===b||a.relatedTarget instanceof Node&&b.contains(a.relatedTarget)||_()},style:{boxSizing:"border-box",flex:"1 1 0",minWidth:0,height:22,padding:0,border:"none",outline:"none",background:"transparent",fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)"}})]})]}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:"1 1 0",minHeight:0,position:"relative",padding:"16px 16px 16px 24px"},children:[(0,d.jsxs)("div",{ref:R,style:{display:"flex",alignItems:"stretch",flex:"1 1 0",minHeight:0,gap:12,overflowX:"auto",scrollbarWidth:"none"},children:[null!==g&&(0,d.jsx)(x,{entries:g.directories,selectedPath:i?.path??null,busy:ai,onPick:Z,showHidden:C,filterPrefix:null===k?ag:null}),af&&(0,d.jsx)("span",{style:{flex:"none",width:1,background:"var(--border)"}}),af&&null!==k&&(0,d.jsx)(x,{entries:k.directories,selectedPath:null,busy:ai,onPick:$,showHidden:C,filterPrefix:ag})]}),m&&o&&(0,d.jsx)("div",{role:"status",style:{position:"absolute",right:16,bottom:8,padding:"2px 8px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",fontSize:11},children:"Loading…"}),(g?.truncated===!0||k?.truncated===!0)&&(0,d.jsx)("div",{role:"status",style:{padding:"4px 4px 4px 0",color:"var(--text-muted)",fontSize:11},children:"Large directory — list may be incomplete"}),null!==w&&(0,d.jsx)("div",{role:"alert",style:{padding:"4px 4px 4px 0",color:"#f87171",fontSize:11},children:w})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:8,flex:"none",padding:"14px 24px",borderTop:"1px solid var(--border)"},children:[(0,d.jsxs)("button",{type:"button",disabled:null===g||m||ai||aj,onClick:()=>{F(""),J(null)},style:{display:"inline-flex",alignItems:"center",gap:5,height:30,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:null===g||m||ai||aj?"var(--text-dim)":"var(--text-muted)",cursor:null===g||m||ai||aj?"default":"pointer",fontSize:12},children:[(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M8 3v10M3 8h10"})}),"New folder"]}),(0,d.jsxs)("button",{type:"button","aria-pressed":C,disabled:ai,onClick:()=>D(a=>!a),style:{display:"inline-flex",alignItems:"center",gap:4,border:"none",background:"transparent",padding:0,fontSize:12,fontWeight:500,color:C?"var(--text)":"var(--text-muted)",cursor:"pointer",whiteSpace:"nowrap"},children:["Show hidden files",C&&(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"2.5 8.5 6 12 13.5 4.5"})})]}),(0,d.jsx)("div",{style:{flex:"1 1 0"}}),(0,d.jsx)("button",{type:"button",onClick:c,style:{height:32,padding:"0 12px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:"Cancel"}),(0,d.jsx)("button",{type:"button",disabled:null===ac||m||ai||aj,onClick:()=>{null!==ac&&f(ac)},style:{height:32,padding:"0 14px",border:"none",borderRadius:6,background:null===ac||m||ai||aj?"var(--bg-hover)":"var(--accent)",color:null===ac||m||ai||aj?"var(--text-dim)":"#fff",cursor:null===ac||m||ai||aj?"default":"pointer",fontSize:12,fontWeight:650},children:"Open"})]})]}),null!==E&&(0,d.jsx)("div",{onMouseDown:a=>{a.target!==a.currentTarget||G||F(null)},style:{position:"fixed",inset:0,zIndex:1300,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.25)"},children:(0,d.jsxs)("div",{style:{width:"min(380px, 100%)",display:"flex",flexDirection:"column",gap:12,padding:"20px 24px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 12px 40px rgba(0,0,0,0.3)"},children:[(0,d.jsx)("div",{style:{color:"var(--text)",fontSize:15,fontWeight:700},children:"New folder"}),(0,d.jsxs)("div",{style:{color:"var(--text)",fontSize:12.5},children:["in ",(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text-muted)"},children:ah})]}),(0,d.jsx)("input",{value:E,"aria-label":"Folder name",placeholder:"untitled folder",autoFocus:!0,disabled:G,spellCheck:!1,onChange:a=>F(a.target.value),...ae,onKeyDown:a=>{"Enter"!==a.key||N.current||(a.preventDefault(),ad()),"Escape"!==a.key||G||(a.stopPropagation(),F(null))},style:{boxSizing:"border-box",width:"100%",height:36,padding:"0 12px",border:"1px solid var(--border)",borderRadius:8,outline:"none",background:"var(--bg-panel)",fontSize:13,color:"var(--text)"}}),null!==I&&(0,d.jsx)("div",{role:"alert",style:{color:"#f87171",fontSize:11},children:I}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8},children:[(0,d.jsx)("button",{type:"button",disabled:G,onClick:()=>F(null),style:{height:30,padding:"0 12px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:"Cancel"}),(0,d.jsx)("button",{type:"button",disabled:G||""===E.trim(),onClick:ad,style:{height:30,padding:"0 14px",border:"none",borderRadius:6,background:G||""===E.trim()?"var(--bg-hover)":"var(--accent)",color:G||""===E.trim()?"var(--text-dim)":"#fff",cursor:G||""===E.trim()?"default":"pointer",fontSize:12,fontWeight:650},children:G?"Creating…":"Create"})]})]})})]})}let z="AnnoVibe";function A(a){}async function B(a,b){let c=`${a}: HTTP ${b.status}`;try{let d=await b.json();return"string"==typeof d.error&&d.error?`${a}: ${d.error}`:c}catch{return c}}function C(a){return new DOMException(a,"TimeoutError")}function D(a,b){return a instanceof DOMException&&("AbortError"===a.name||"TimeoutError"===a.name)||a instanceof Error&&/aborted without reason|AbortError/i.test(a.message)?b:a instanceof Error?a.message:String(a)}function E(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)(!1),g=(0,e.useRef)(null),h=function(a){let[b,c]=(0,e.useState)(a);return(0,e.useRef)(null),(0,e.useRef)(0),b}(a?"v0.8.142":z),i=(0,e.useCallback)(a=>{b(a),f(!0),setTimeout(()=>f(!1),(a?6:8)*4*(1e3/60)+100)},[]),j=(0,e.useCallback)(()=>{g.current&&clearTimeout(g.current);let b=!a;i(b),b&&(g.current=setTimeout(()=>i(!1),3e3))},[a,i]);return(0,d.jsx)("button",{onClick:j,style:{background:"none",border:"none",padding:0,cursor:"default",fontWeight:700,fontSize:15,letterSpacing:"-0.01em",color:a?"var(--accent)":"var(--text)",fontFamily:"var(--font-mono)",minWidth:"9ch"},children:h})}function F({selectedSessionId:a,onSelectSession:b,onNewSession:c,initialSessionId:f,onInitialRestoreDone:g,restoreSessionId:h,onRestoreSessionDone:l,refreshKey:m,onSessionDeleted:n,selectedCwd:p,onCwdChange:q}){let[r,s]=(0,e.useState)([]),[t,u]=(0,e.useState)({}),[v,w]=(0,e.useState)(()=>new Set),x=(0,e.useRef)(!1),[z,J]=(0,e.useState)(!0),[K,L]=(0,e.useState)(!1),[M,N]=(0,e.useState)(null),[O,P]=(0,e.useState)(null),[Q,R]=(0,e.useState)(""),[S,T]=(0,e.useState)(null),[U,V]=(0,e.useState)(!1),[W,X]=(0,e.useState)("project"),[Y,Z]=(0,e.useState)(!1),[$,_]=(0,e.useState)(()=>new Set),[aa,ab]=(0,e.useState)(()=>new Set),[ac,ad]=(0,e.useState)(null),[ae,af]=(0,e.useState)(null),[ag,ah]=(0,e.useState)(null),[ai,aj]=(0,e.useState)(!1),ak=(0,e.useRef)(null),al=(0,e.useRef)(!1),am=(0,e.useRef)(!1);(0,e.useRef)(!1);let an=(0,e.useRef)(new Map),ao=(0,e.useRef)({revision:null,seq:0,retry:0,inFlight:!1}),ap=(0,e.useRef)({}),aq=(0,e.useRef)({}),ar=(0,e.useRef)({}),as=(0,e.useRef)(new Set);function at(a){let b=ap.current[a];return b||(b={revision:null,seq:0,retry:0,inFlight:!1},ap.current[a]=b),b}let au=(0,e.useCallback)((a,b,c)=>{let d=aq.current[a];d&&clearTimeout(d),aq.current[a]=setTimeout(()=>{aq.current[a]=null,c()},function(a,b=Math.random){let c=[250,500,1e3,2e3][Math.min(Math.max(a,0),3)]??2e3;return b()*c}(b))},[]);(0,e.useCallback)((a,b)=>{let c=ar.current[a];c&&clearTimeout(c),ar.current[a]=setTimeout(()=>{ar.current[a]=null,b()},120)},[]);let av=(0,e.useCallback)(async(a=!1,b={})=>{let c=ao.current,d=++c.seq;c.inFlight=!0;try{let e;a&&J(!0);let f=new AbortController;try{e=setTimeout(()=>f.abort(C("Project loading timed out")),6e4);let a=b.force?"/api/projects?force=1":"/api/projects",g=await fetch(a,{signal:f.signal});if(!g.ok)throw Error(await B("projects",g));let h=await g.json();if(d!==c.seq)return;if(h.stale)return void au("projects",c.retry++,()=>void av(!1));c.retry=0,h.revision&&(c.revision=h.revision),s(h.projects),N(null)}finally{clearTimeout(e)}}catch(b){if(d!==c.seq)return;let a=D(b,"Loading projects timed out. Codex may still be starting; click Refresh to retry.");N(a),au("projects",c.retry++,()=>void av(!1))}finally{d===c.seq&&(c.inFlight=!1),a&&J(!1)}},[au]),aw=(0,e.useCallback)(async(a,b=!1,c={})=>{if(!a)return;let d=an.current.get(a);if(d)return d;let e=(async()=>{let d=at(a),e=++d.seq;d.inFlight=!0,u(b=>({...b,[a]:{sessions:b[a]?.sessions??[],loaded:b[a]?.loaded??!1,error:null,loading:!0,stale:b[a]?.stale??!1}}));try{let f;b&&J(!0);let g=new AbortController;try{f=setTimeout(()=>g.abort(C("Chat loading timed out")),6e4);let b=c.force?`/api/sessions?cwd=${encodeURIComponent(a)}&force=1`:`/api/sessions?cwd=${encodeURIComponent(a)}`,h=await fetch(b,{signal:g.signal});if(!h.ok)throw Error(await B("sessions",h));let i=await h.json();if(e!==d.seq)return;if(i.runningSessionIds&&!x.current&&w(new Set(i.runningSessionIds)),i.stale){u(b=>({...b,[a]:{sessions:b[a]?.sessions??[],loaded:b[a]?.loaded??!1,loading:!1,error:null,stale:(b[a]?.sessions?.length??0)>0}})),au(`cwd:${a}`,d.retry++,()=>void aw(a,!1));return}d.retry=0,i.revision&&(d.revision=i.revision),as.current.add(a),u(b=>({...b,[a]:{sessions:i.sessions,loaded:!0,loading:!1,error:null,stale:!1}}))}finally{clearTimeout(f)}}catch(c){if(e!==d.seq)return;let b=D(c,"Loading chats timed out. Codex may still be starting; click Refresh to retry.");u(c=>({...c,[a]:{sessions:c[a]?.sessions??[],loaded:c[a]?.loaded??!1,loading:!1,error:b,stale:(c[a]?.sessions?.length??0)>0}})),au(`cwd:${a}`,d.retry++,()=>void aw(a,!1))}finally{e===d.seq&&(d.inFlight=!1),b&&J(!1),an.current.delete(a)}})();return an.current.set(a,e),e},[au]),ax=(0,e.useCallback)(async()=>{let a=ao.current;if(a.inFlight)return;let b=a.revision?`/api/projects?fingerprint=1&revision=${encodeURIComponent(a.revision)}`:"/api/projects?fingerprint=1";try{let c=await fetch(b);if(!c.ok)throw Error(await B("projects",c));let d=await c.json();if(d.stale)return void au("projects",a.retry++,()=>void ax());if(!0===d.unchanged)return;av(!1)}catch{au("projects",a.retry++,()=>void ax())}},[av,au]),ay=(0,e.useCallback)(async a=>{let b=at(a);if(b.inFlight)return;let c=b.revision?`/api/sessions?cwd=${encodeURIComponent(a)}&fingerprint=1&revision=${encodeURIComponent(b.revision)}`:`/api/sessions?cwd=${encodeURIComponent(a)}&fingerprint=1`;try{let d=await fetch(c);if(!d.ok)throw Error(await B("sessions",d));let e=await d.json();if(e.stale)return void au(`cwd:${a}`,b.retry++,()=>void ay(a));if(!0===e.unchanged)return;aw(a,!1)}catch{au(`cwd:${a}`,b.retry++,()=>void ay(a))}},[aw,au]);(0,e.useRef)(!1),(0,e.useRef)(!1);let az=(0,e.useCallback)(async(a,b=!1)=>{try{let c=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,create:b})}),d=await c.json();if(!c.ok||d.error)return T(d.error??`HTTP ${c.status}`),null;return av(!1),d.project?.cwd??a}catch(a){return T(a instanceof Error?a.message:String(a)),null}},[av]),aA=(0,e.useCallback)(a=>{fetch("/api/projects",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,touch:!0})}).catch(()=>{})},[]),aB=(0,e.useCallback)(a=>{am.current=!0,P(a),T(null),ab(b=>{if(!b.has(a))return b;let c=new Set(b);return c.delete(a),A(c),c}),q?.(a),aA(a),aw(a,!1)},[aw,q,aA]);(0,e.useRef)(null);let aC=p??O;(0,e.useRef)(null);let aD=(0,e.useCallback)(a=>{if(!a){X("agent"),V(!0);return}let b="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;c?.(b,a)},[c]),aE=(0,e.useCallback)(async a=>{let b=await az(a,!0);b&&(aB(b),V(!1),T(null),"agent"===W&&aD(b))},[aB,aD,W,az]),aF=(0,e.useCallback)(()=>{aD(aC)},[aD,aC]),aG=(0,e.useCallback)(()=>{X("project"),T(null),V(!0)},[]),aH=(0,e.useMemo)(()=>[...aC&&!r.some(a=>a.cwd===aC)?[{cwd:aC,displayName:j(aC,Q),chatCount:t[aC]?.sessions.length??0,lastAccessed:null,created:null,pinned:!1,sortOrder:null,exists:!0,source:"manual"}]:[],...r].sort((a,b)=>{let c=!0===a.pinned;if(c!==(!0===b.pinned))return c?-1:1;let d="number"==typeof a.sortOrder?a.sortOrder:Number.MAX_SAFE_INTEGER,e="number"==typeof b.sortOrder?b.sortOrder:Number.MAX_SAFE_INTEGER;return d!==e?d-e:(a.displayName||"").localeCompare(b.displayName||"",void 0,{numeric:!0,sensitivity:"base"})}),[aC,Q,r,t]),aI=(0,e.useMemo)(()=>{let a=a=>{var b,c;let d,e,f=t[a.cwd],g=[...f?.sessions??[]].sort((a,b)=>(b.modified||"").localeCompare(a.modified||"")),h=f?.loaded?f.sessions.length:a.chatCount,i=(b=a.lastAccessed,c=f?.loaded?f.sessions[0]?.modified:null,d=b?new Date(b).getTime():-1/0,e=c?new Date(c).getTime():-1/0,Number.isFinite(d)||Number.isFinite(e)?d>=e?b??null:c??null:null);return{project:a,cwd:a.cwd,displayName:a.displayName||j(a.cwd,Q),sessions:g,sessionsState:f,chatCount:h??0,lastAccessed:i??""}},b=aH.filter(a=>!0===a.pinned).map(a);if(aC){let c=aH.find(a=>a.cwd===aC);c&&!0!==c.pinned&&b.push(a(c))}return b},[aC,Q,t,aH]),aJ=(0,e.useCallback)((a,c=!1)=>{a.cwd!==aC&&(al.current=!0,P(a.cwd)),ab(b=>{if(!b.has(a.cwd))return b;let c=new Set(b);return c.delete(a.cwd),A(c),c}),aA(a.cwd),b(a,c)},[b,aC,aA]),aK=(0,e.useCallback)(a=>{ab(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),A(c),c})},[]),aL=(0,e.useCallback)(a=>{_(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),aM=(0,e.useCallback)(async a=>{ah("reorder");try{let b=await fetch("/api/projects",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:a})}),c=await b.json();if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);N(null),av(!1)}catch(a){N(a instanceof Error?a.message:String(a)),av(!1)}finally{ah(null)}},[av]),aN=(0,e.useCallback)(async(a,b)=>{ah(`pin:${a}`);try{let c=await fetch("/api/projects",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,pinned:b})}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);N(null),av(!1)}catch(a){N(a instanceof Error?a.message:String(a)),av(!1)}finally{ah(null)}},[av]),aO=(0,e.useCallback)((a,b)=>{if(!a||!b||a===b)return;let c=aH.map(a=>a.cwd).filter(Boolean),d=c.indexOf(a),e=c.indexOf(b);if(-1===d||-1===e)return;let f=[...c];f.splice(d,1);let g=f.indexOf(b);f.splice(g,0,a),aM(f)},[aM,aH]),aP=(0,e.useCallback)(async()=>{L(!0);try{await av(!1,{force:!0});let a=new Set([...Object.entries(t).filter(([,a])=>a.loaded||a.loading).map(([a])=>a),...aC?[aC]:[]]);await Promise.all([...a].map(a=>aw(a,!1,{force:!0})))}finally{L(!1)}},[aC,av,aw,t]);return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"12px 10px 10px",borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsx)(E,{}),(0,d.jsxs)("div",{style:{display:"flex",gap:6,minWidth:0},children:[(0,d.jsxs)("button",{onClick:aF,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,background:"var(--bg-hover)",border:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",height:32,paddingLeft:10,paddingRight:12,borderRadius:7,fontSize:12,fontWeight:500,letterSpacing:"-0.01em",flexShrink:0,transition:"background 0.12s, color 0.12s, border-color 0.12s"},title:aC?`New chat in ${aC}`:"New chat in a project path",onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-selected)",a.currentTarget.style.color="var(--accent)",a.currentTarget.style.borderColor="rgba(37,99,235,0.35)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.borderColor="var(--border)"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"6",y1:"1",x2:"6",y2:"11"}),(0,d.jsx)("line",{x1:"1",y1:"6",x2:"11",y2:"6"})]}),"New Chat"]}),(0,d.jsx)("button",{onClick:()=>Z(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",background:"var(--bg-hover)",border:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",width:32,height:32,borderRadius:7,padding:0,flexShrink:0,transition:"background 0.12s, color 0.12s, border-color 0.12s"},title:"Search conversations",onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-selected)",a.currentTarget.style.color="var(--accent)",a.currentTarget.style.borderColor="rgba(37,99,235,0.35)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.borderColor="var(--border)"},children:(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("circle",{cx:"7",cy:"7",r:"4.4"}),(0,d.jsx)("path",{d:"M10.4 10.4 13.2 13.2"})]})})]})]})}),(0,d.jsx)(o,{open:Y,cwd:aC,homeDir:Q,onClose:()=>Z(!1),onSelectSession:a=>{aJ(a)}}),(0,d.jsxs)("div",{ref:ak,style:{position:"relative",marginTop:8,padding:"0 10px",display:"flex",alignItems:"stretch",gap:4},children:[(0,d.jsxs)("button",{type:"button",onClick:()=>aj(a=>!a),style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:6,padding:"6px 10px",background:aC?"var(--bg-hover)":"rgba(37,99,235,0.06)",border:aC?"1px solid var(--border)":"1px solid rgba(37,99,235,0.4)",borderRadius:7,cursor:"pointer",fontSize:12,color:"var(--text)",textAlign:"left"},title:aC??"Select project",children:[(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.35",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--accent)"},children:(0,d.jsx)("path",{d:"M1.5 5A1.5 1.5 0 0 1 3 3.5h3l1.2 1.5H13A1.5 1.5 0 0 1 14.5 6.5L13.6 11A1.5 1.5 0 0 1 12.1 12.5H3A1.5 1.5 0 0 1 1.5 11V5Z"})}),(0,d.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11,color:aC?"var(--text)":"var(--text-dim)"},children:aC?aH.find(a=>a.cwd===aC)?.displayName??i(aC,Q):"Select project…"}),(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:ai?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),aC&&(0,d.jsx)(G,{pinned:aH.find(a=>a.cwd===aC)?.pinned===!0,onToggle:()=>void aN(aC,aH.find(a=>a.cwd===aC)?.pinned!==!0)}),ai&&(0,d.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 4px)",left:10,right:10,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden",maxHeight:280,overflowY:"auto"},children:[0===aH.length&&(0,d.jsx)("div",{style:{padding:"10px 12px",color:"var(--text-dim)",fontSize:11},children:"No projects yet"}),aH.map(a=>{let b=a.cwd===aC;return(0,d.jsx)(H,{project:a,homeDir:Q,isCurrent:b,onSelect:()=>{aB(a.cwd),aj(!1)},onTogglePinned:()=>void aN(a.cwd,!0!==a.pinned)},a.cwd)})]})]}),(0,d.jsxs)("div",{style:{flexShrink:0,padding:"10px 10px 6px"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase"},children:"Projects"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,marginLeft:"auto"},children:[(0,d.jsx)("button",{type:"button",onClick:aP,disabled:K,title:"Refresh projects and chats","aria-label":"Refresh projects and chats",style:{width:22,height:22,display:"flex",alignItems:"center",justifyContent:"center",padding:0,border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:K?"var(--accent)":"var(--text-dim)",cursor:K?"default":"pointer",flexShrink:0},children:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{animation:K?"spin 0.9s linear infinite":void 0},children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 0 1-15.5 6.2"}),(0,d.jsx)("path",{d:"M3 12A9 9 0 0 1 18.5 5.8"}),(0,d.jsx)("path",{d:"M7 18H5.5v1.5"}),(0,d.jsx)("path",{d:"M17 6h1.5V4.5"})]})}),(0,d.jsx)("button",{type:"button",onClick:aG,title:"New project","aria-label":"New project",style:{width:28,height:28,display:"flex",alignItems:"center",justifyContent:"center",padding:0,border:"none",borderRadius:"50%",background:"transparent",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",style:{flexShrink:0,display:"block"},children:[(0,d.jsx)("path",{transform:"translate(9.52 2.52)",d:"M3.55246 0L3.55246 2.44252L6 2.44252L6 3.55748L3.55246 3.55748L3.55246 6L2.43834 6L2.43834 3.55748L0 3.55748L0 2.44252L2.43834 2.44252L2.43834 0L3.55246 0Z",fill:"currentColor"}),(0,d.jsx)("path",{transform:"translate(0.3496 2.35)",d:"M4.76367 0C5.36861 1.80598e-05 5.93113 0.310294 6.25488 0.821289L6.78027 1.64941C6.79685 1.67558 6.81791 1.69775 6.83887 1.71973C6.72186 2.15521 6.65702 2.61192 6.65137 3.08301C6.25601 2.96045 5.90909 2.70478 5.68164 2.3457L5.15723 1.5166C5.07183 1.38189 4.92318 1.3008 4.76367 1.30078L2.32422 1.30078C1.7589 1.30078 1.30078 1.7589 1.30078 2.32422L1.30078 10.1338C1.30078 10.6991 1.7589 11.1572 2.32422 11.1572L11.9766 11.1572C12.5419 11.1572 13 10.6991 13 10.1338L13 8.58398C13.4545 8.5135 13.8903 8.38748 14.3008 8.21289L14.3008 10.1338C14.3008 11.4171 13.2598 12.458 11.9766 12.458L2.32422 12.458C1.04093 12.458 0 11.4171 0 10.1338L0 2.32422C0 1.04093 1.04093 0 2.32422 0L4.76367 0Z",fill:"currentColor"})]})})]})]}),S&&(0,d.jsx)("div",{style:{marginTop:6,color:"#f87171",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere"},children:S})]}),(0,d.jsxs)("div",{style:{flex:"1 1 auto",overflowY:"auto",padding:"6px 8px 8px",minHeight:80,scrollbarWidth:"thin",overscrollBehavior:"contain"},children:[z&&0===r.length&&(0,d.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:"Loading…"}),M&&(0,d.jsx)("div",{style:{padding:"12px 14px",color:"#f87171",fontSize:12},children:M}),!z&&!M&&0===aI.length&&(0,d.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:"Open or create a project to start chatting."}),!z&&!M&&aI.map(b=>{let c,e=aa.has(b.cwd),f=b.cwd===aC,g=$.has(b.cwd),h=function(a){let b=new Map;for(let c of a)b.set(c.id,{session:c,children:[]});let c=new Map;for(let b of a)b.parentSessionId&&c.set(b.id,b.parentSessionId);let d=[];for(let a of b.values()){let e=function(a){let d=new Set([a]),e=null,f=c.get(a);for(;f;){if(d.has(f))return null;d.add(f),!e&&b.has(f)&&(e=f),f=c.get(f)}return e}(a.session.id);e?b.get(e).children.push(a):d.push(a)}let e=a=>{a.sort((a,b)=>(b.session.modified||"").localeCompare(a.session.modified||"")),a.forEach(a=>e(a.children))};return e(d),d}(b.sessions),i=h.length,j=h;if(i>10&&!g){j=h.slice(0,10);let b=h.find(b=>(function a(b,c){return!!c&&(b.session.id===c||b.children.some(b=>a(b,c)))})(b,a));b&&!j.includes(b)&&(j=[...j,b])}let l=i-j.length;return(0,d.jsxs)("div",{style:{marginBottom:6,borderTop:ae===b.cwd?"2px solid var(--accent)":"2px solid transparent",paddingTop:2*(ae===b.cwd),opacity:ac===b.cwd?.55:1},onDragOver:a=>{ac&&ac!==b.cwd&&(a.preventDefault(),a.dataTransfer.dropEffect="move",af(b.cwd))},onDragLeave:()=>{ae===b.cwd&&af(null)},onDrop:a=>{a.preventDefault();let c=a.dataTransfer.getData("text/project-cwd")||ac;af(null),ad(null),c&&aO(c,b.cwd)},children:[(0,d.jsx)(I,{group:b,isCurrent:f,isCollapsed:e,isDragging:ac===b.cwd,pinBusy:ag===`pin:${b.cwd}`,onToggle:()=>aK(b.cwd),onSelect:()=>aB(b.cwd),onTogglePinned:()=>void aN(b.cwd,!0!==b.project.pinned),onDragStart:a=>{ad(b.cwd),a.dataTransfer.effectAllowed="move",a.dataTransfer.setData("text/project-cwd",b.cwd)},onDragEnd:()=>{ad(null),af(null)}}),!e&&(0,d.jsxs)("div",{style:{marginTop:2,overflow:"hidden",borderRadius:7},children:[(c=b.sessionsState,c?.loading&&!c?.loaded?(0,d.jsx)("div",{style:{width:"100%",padding:"10px 12px",color:"var(--text-dim)",textAlign:"left",fontSize:12,fontStyle:"italic"},children:"Loading chats…"}):c?.error&&!c?.stale?(0,d.jsx)("div",{style:{width:"100%",padding:"10px 12px",color:"#f87171",textAlign:"left",fontSize:12},children:c.error}):0===b.sessions.length?(0,d.jsx)("div",{style:{width:"100%",padding:"10px 12px",color:"var(--text-muted)",textAlign:"left",fontSize:12},children:"No sessions yet. Use New Chat above to start one."}):(0,d.jsxs)(d.Fragment,{children:[c?.stale&&(0,d.jsx)("div",{style:{width:"100%",padding:"4px 12px",color:"var(--text-dim)",textAlign:"left",fontSize:10,fontStyle:"italic"},children:"Showing cached data — refresh failed"}),j.map(c=>(0,d.jsx)(k,{node:c,selectedSessionId:a,onSelectSession:aJ,onRenamed:()=>void aw(b.cwd,!1),onSessionDeleted:a=>{n?.(a),aw(b.cwd,!1)},depth:0,runningSessionIds:v},c.session.id))]})),(g||l>0)&&i>10&&(0,d.jsx)("button",{type:"button",onClick:()=>aL(b.cwd),style:{width:"100%",padding:"6px 10px",background:"transparent",border:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:11,textAlign:"center"},children:g?"Show less":`Show ${Math.max(0,l)} more`})]})]},b.cwd||"__no_project")})]}),(0,d.jsx)(y,{open:U,initialPath:aC,onClose:()=>V(!1),onSelect:a=>aE(a)})]})}function G({pinned:a,onToggle:b}){return(0,d.jsx)("button",{type:"button",onClick:b,title:a?"Unpin project":"Pin project to sidebar",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:"auto",padding:0,border:"1px solid var(--border)",borderRadius:7,background:a?"rgba(234,179,8,0.12)":"var(--bg-hover)",color:a?"#ca8a04":"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:a?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 17v5"}),(0,d.jsx)("path",{d:"M5 3h14l-4 7v4l-6 3v-7L5 3Z"})]})})}function H({project:a,homeDir:b,isCurrent:c,onSelect:f,onTogglePinned:g}){let[h,i]=(0,e.useState)(!1),k=a.displayName||j(a.cwd,b);return(0,d.jsxs)("div",{onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),style:{display:"flex",alignItems:"center",gap:4,background:c?"var(--bg-selected)":h?"var(--bg-hover)":"none",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)("span",{style:{width:10,marginLeft:6,flexShrink:0}}),(0,d.jsxs)("button",{type:"button",onClick:f,title:a.cwd,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:7,padding:"8px 10px 8px 0",background:"none",border:"none",color:c?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[c?(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,d.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),(0,d.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:k}),!a.exists&&(0,d.jsx)("span",{style:{flexShrink:0,color:"#f87171",fontSize:10},children:"missing"})]}),(0,d.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),g()},title:"Pin to sidebar",tabIndex:h?0:-1,style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,marginRight:4,padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,opacity:+!!h,pointerEvents:h?"auto":"none"},children:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 17v5"}),(0,d.jsx)("path",{d:"M5 3h14l-4 7v4l-6 3v-7L5 3Z"})]})})]})}function I({group:a,isCurrent:b,isCollapsed:c,isDragging:f,pinBusy:g,onToggle:i,onSelect:j,onTogglePinned:k,onDragStart:l,onDragEnd:m}){let[n,o]=(0,e.useState)(!1),p=a.lastAccessed,q=Math.max(0,a.chatCount??0),r=!0===a.project.pinned,s=(0,e.useCallback)(()=>{b?i():j()},[b,j,i]);return(0,d.jsxs)("div",{role:"button",tabIndex:0,draggable:!0,onClick:s,onDragStart:l,onDragEnd:m,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),s())},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),title:a.cwd,style:{width:"100%",height:32,display:"flex",alignItems:"center",gap:5,padding:"0 8px",background:b?"var(--bg-selected)":n?"var(--bg-hover)":"transparent",border:"none",borderRadius:6,color:"var(--text)",cursor:f?"grabbing":"pointer",textAlign:"left",overflow:"hidden",transition:"background 0.12s, opacity 0.12s",opacity:f?.55:1},children:[(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round",style:{transform:c?"none":"rotate(90deg)",transition:"transform 0.15s",flexShrink:0,color:"var(--text-dim)"},children:(0,d.jsx)("polyline",{points:"3 2 7 5 3 8"})}),(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.35",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:b?"var(--accent)":"var(--text-dim)"},children:c?(0,d.jsx)("path",{d:"M1.5 4.5A1.5 1.5 0 0 1 3 3h3l1.2 1.5H13A1.5 1.5 0 0 1 14.5 6v5A1.5 1.5 0 0 1 13 12.5H3A1.5 1.5 0 0 1 1.5 11V4.5Z"}):(0,d.jsx)("path",{d:"M1.5 5A1.5 1.5 0 0 1 3 3.5h3l1.2 1.5H13A1.5 1.5 0 0 1 14.5 6.5L13.6 11A1.5 1.5 0 0 1 12.1 12.5H3A1.5 1.5 0 0 1 1.5 11V5Z"})}),(0,d.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,fontWeight:b?650:560,color:"var(--text)"},children:a.displayName}),!a.project.exists&&(0,d.jsx)("span",{style:{flexShrink:0,color:"#f87171",fontSize:10},children:"missing"}),!n&&q>0&&(0,d.jsxs)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10,whiteSpace:"nowrap"},children:[q," ",1===q?"chat":"chats"]}),!n&&p&&(0,d.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10,whiteSpace:"nowrap"},children:h(p)}),r?(0,d.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),k()},title:"Unpin project",tabIndex:n?0:-1,style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,border:"none",borderRadius:5,background:"rgba(234,179,8,0.12)",color:"#ca8a04",cursor:"pointer",flexShrink:0,opacity:n?1:.85,transition:"opacity 0.12s"},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 17v5"}),(0,d.jsx)("path",{d:"M5 3h14l-4 7v4l-6 3v-7L5 3Z"})]})}):(0,d.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),k()},disabled:g,title:"Pin project to sidebar",tabIndex:n?0:-1,style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:g?"wait":"pointer",flexShrink:0,opacity:+!!n,transition:"opacity 0.12s, background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="#ca8a04"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 17v5"}),(0,d.jsx)("path",{d:"M5 3h14l-4 7v4l-6 3v-7L5 3Z"})]})}),(0,d.jsx)("span",{title:"Drag to reorder",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:18,height:22,flexShrink:0,color:"var(--text-dim)",opacity:n?1:.35,transition:"opacity 0.12s",cursor:"grab"},children:(0,d.jsxs)("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"currentColor",children:[(0,d.jsx)("circle",{cx:"2",cy:"2",r:"1"}),(0,d.jsx)("circle",{cx:"8",cy:"2",r:"1"}),(0,d.jsx)("circle",{cx:"2",cy:"6",r:"1"}),(0,d.jsx)("circle",{cx:"8",cy:"6",r:"1"}),(0,d.jsx)("circle",{cx:"2",cy:"10",r:"1"}),(0,d.jsx)("circle",{cx:"8",cy:"10",r:"1"})]})})]})}c(81537);let J="annovibe:last-open-by-workspace";function K(a){let b=a.trim();if(!b)return"";let c=b.replace(/\\/g,"/");return c.length>1?c.replace(/\/+$/,""):c}function L(a){try{let b=a.getItem(J);if(!b)return{};let c=JSON.parse(b);return c&&"object"==typeof c&&!Array.isArray(c)?c:{}}catch{return{}}}function M(a,b){try{a.setItem(J,JSON.stringify(b))}catch{}}function N(a,b,c=null){if(!c||!a||!b)return;let d=K(a);if(!d)return;let e=L(c);e[d]!==b&&(e[d]=b,M(c,e))}var O=c(84963),P=c(29947);let Q=new Map,R=new Map;function S(a){a&&R.delete(a)}let T=["auto","off","minimal","low","medium","high","xhigh"],U={auto:"沿用 pi 默认设置",off:"关闭推理",minimal:"最少推理",low:"低强度推理",medium:"中等推理",high:"高强度推理",xhigh:"最高强度推理"};function V({triggerRef:a,panelRef:b,open:c,pane:e,anchorRect:f,isMobile:g,isStreaming:h,mobileCompactButtonSize:i,mobileCompactButtonPadding:j,mobileSheetStyle:k,currentName:l,mobileModelSummary:m,groups:n,model:o,canAdjustThinking:p,thinkingLabel:q,thinkingLevel:r,thinkingLevelMap:s,availableThinkingLevels:t,onToggle:u,onClose:v,onPaneChange:w,onModelChange:x,onThinkingLevelChange:y}){let z=a=>(0,d.jsx)("svg",{width:a,height:a,viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,d.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}),A=(a,b)=>(0,d.jsx)("svg",{width:a,height:a,viewBox:"0 0 24 24",fill:"none",style:{flexShrink:0,...b},children:(0,d.jsx)("path",{d:"M9 6l6 6-6 6",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})}),B=a=>{a.currentTarget.style.background="var(--bg-hover)"},C=a=>{a.currentTarget.style.background="transparent"},D={display:"flex",alignItems:"center",gap:8,width:"100%",height:40,padding:"0 10px",border:"none",borderRadius:10,background:"transparent",color:"var(--text)",fontSize:14,lineHeight:"22px",cursor:"pointer",textAlign:"left",fontFamily:"inherit"},E={display:"flex",alignItems:"center",gap:8,width:"100%",minHeight:38,padding:"6px 8px",border:"none",borderRadius:10,background:"transparent",color:"var(--text)",textAlign:"left",cursor:"pointer",fontFamily:"inherit"},F={position:"sticky",top:0,zIndex:1,padding:"5px 8px 3px",background:"var(--bg-panel)",color:"var(--text-dim)",fontSize:12,lineHeight:"18px",fontWeight:500},G=T.filter(a=>!t||"auto"===a||t.includes(a)),H=(0,d.jsxs)(d.Fragment,{children:["root"===e&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{onClick:()=>w("model"),role:"menuitem",style:D,onMouseEnter:B,onMouseLeave:C,children:[(0,d.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"模型"}),(0,d.jsx)("span",{style:{flex:"0 1 auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:13},children:m}),A(14,{color:"var(--text-dim)"})]}),p&&l&&(0,d.jsxs)("button",{onClick:()=>w("effort"),role:"menuitem",style:D,onMouseEnter:B,onMouseLeave:C,children:[(0,d.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"推理强度"}),(0,d.jsx)("span",{style:{flex:"0 1 auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:13},children:q}),A(14,{color:"var(--text-dim)"})]})]}),"model"===e&&(0,d.jsx)("div",{style:{minHeight:0,overflowY:"auto"},children:n.map(a=>(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:F,children:a.provider}),a.options.map(a=>{let b=a.modelId===o?.modelId&&a.provider===o?.provider,c=a.input&&a.input.length>0?a.input.join(" \xb7 "):void 0;return(0,d.jsxs)("button",{onClick:()=>{v(),b||x(a.provider,a.modelId)},role:"menuitemradio","aria-checked":b,style:E,onMouseEnter:B,onMouseLeave:C,children:[(0,d.jsxs)("span",{style:{display:"flex",flex:1,flexDirection:"column",minWidth:0},children:[(0,d.jsx)("span",{style:{overflow:"hidden",color:"inherit",fontSize:14,lineHeight:"20px",fontWeight:500,textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name}),void 0!==c&&(0,d.jsx)("span",{style:{overflow:"hidden",color:"var(--text-dim)",fontSize:12,lineHeight:"18px",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c})]}),(0,d.jsx)("span",{style:{display:"grid",placeItems:"center",flex:"0 0 18px",color:"var(--text)"},children:b?z(14):null})]},`${a.provider}:${a.modelId}`)})]},a.provider))}),"effort"===e&&p&&(0,d.jsx)("div",{style:{minHeight:0,overflowY:"auto"},children:G.map(a=>{let b=(r??"auto")===a,c="auto"!==a?s?.[a]:void 0,e="auto"===a?"Default":null!=c&&c!==a?c:a,f="auto"!==a&&null!=c&&c!==a;return(0,d.jsxs)("button",{onClick:()=>{v(),b||y?.(a)},role:"menuitemradio","aria-checked":b,style:E,onMouseEnter:B,onMouseLeave:C,children:[(0,d.jsxs)("span",{style:{display:"flex",flex:1,flexDirection:"column",minWidth:0},children:[(0,d.jsxs)("span",{style:{overflow:"hidden",color:"inherit",fontSize:14,lineHeight:"20px",fontWeight:500,textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e,f&&(0,d.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginLeft:5},children:["(",a,")"]})]}),(0,d.jsx)("span",{style:{overflow:"hidden",color:"var(--text-dim)",fontSize:12,lineHeight:"18px",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:U[a]})]}),(0,d.jsx)("span",{style:{display:"grid",placeItems:"center",flex:"0 0 18px",color:"var(--text)"},children:b?z(14):null})]},a)})})]}),I=f?0-f.top+6:0,J=f?Math.max(120,Math.min(f.top-8,0)):240,K=f?Math.max(8,0-(f.left+f.width)):0;return(0,d.jsxs)("div",{ref:a,style:{position:"relative",flex:g?"1 1 160px":void 0,minWidth:0},children:[(0,d.jsxs)("button",{onClick:a=>{let b;u(g?null:{top:(b=a.currentTarget.getBoundingClientRect()).top,left:b.left,width:b.width})},disabled:h,title:"选择模型与推理强度",style:{display:"flex",alignItems:"center",gap:4,height:g?i:28,padding:g?j:"0 4px 0 8px",width:g?"100%":void 0,maxWidth:g?"100%":220,overflow:"hidden",background:c?"var(--bg-hover)":"transparent",border:"none",borderRadius:24,color:"var(--text-muted)",cursor:h?"not-allowed":"pointer",fontSize:g?11:13,lineHeight:g?void 0:"20px",fontWeight:g?void 0:500,opacity:h?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{h||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=c?"var(--bg-hover)":"transparent",a.currentTarget.style.color="var(--text-muted)"},children:[(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:l??"Select model"}),p&&l&&(0,d.jsx)("span",{style:{flex:"0 0 auto",color:"var(--text-dim)"},children:q}),(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",style:{flex:"0 0 auto",color:"var(--text-dim)",transform:c?"rotate(180deg)":"none",transition:"transform 120ms ease"},children:(0,d.jsx)("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),c&&(g?(0,d.jsxs)("div",{ref:b,style:{...k,display:"flex",flexDirection:"column"},children:[(0,d.jsxs)("div",{style:{padding:"8px 12px 6px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:["root"!==e&&(0,d.jsx)("button",{onClick:()=>w("root"),"aria-label":"返回",style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,flexShrink:0,background:"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:"pointer"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="none"},children:(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:(0,d.jsx)("path",{d:"M15 6l-6 6 6 6",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,d.jsx)("div",{style:{fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"model"===e?"Models":"effort"===e?"推理强度":"模型"})]}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text)",marginTop:2},children:"effort"===e?q:m})]}),H]}):f&&(0,d.jsx)("div",{ref:b,role:"menu","aria-label":"模型与推理等级",onKeyDown:a=>{("ArrowDown"===a.key||"ArrowUp"===a.key)&&(a.preventDefault(),(a=>{let c=b.current;if(!c)return;let d=Array.from(c.querySelectorAll('button[role="menuitem"], button[role="menuitemradio"]'));if(0===d.length)return;let e=(Math.max(d.findIndex(a=>a===document.activeElement),0)+a+d.length)%d.length;d[e]?.focus()})("ArrowDown"===a.key?1:-1))},style:{position:"fixed",bottom:I,right:K,zIndex:500,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 12px 28px -10px rgba(0,0,0,0.28)",width:"min(240px, calc(100vw - 32px))",maxHeight:J,overflow:"hidden",display:"flex",flexDirection:"column",padding:4},children:H}))]})}let W=["off","default","full","agent"],X={off:"none",default:"default",full:"full",agent:"agent"},Y={off:"无工具,纯聊天",default:"4 项内置工具",full:"全部内置工具",agent:"High + 子代理"},Z={retain:{label:"retain",description:"保存稳定事实或决策到项目记忆"},recall:{label:"recall",description:"检索项目记忆中的相关上下文"},reflect:{label:"reflect",description:"基于已存记忆做综合回应"}},$=[],_=[{command:"/compact",label:"/compact",description:"压缩当前上下文",kind:"native"},{command:"/init",label:"/init",description:"快捷插入,交给模型处理初始化任务",kind:"shortcut"},{command:"/memory",label:"/memory",description:"快捷插入,交给模型处理项目记忆任务",kind:"shortcut"}];function aa({doc:a,onRemove:b}){var c;let e=a.fileName.split(".").pop()?.toLowerCase()??"",f=function(a){switch(a){case"pdf":return{emoji:"\uD83D\uDCC4",color:"#ef4444"};case"docx":case"doc":return{emoji:"\uD83D\uDCDD",color:"#3b82f6"};case"xlsx":case"xls":return{emoji:"\uD83D\uDCCA",color:"#22c55e"};case"pptx":case"ppt":return{emoji:"\uD83D\uDCFD",color:"#f97316"};default:return{emoji:"\uD83D\uDCCE",color:"var(--text-muted)"}}}(e),g=(c=a.size)<1024?`${c} B`:c<1048576?`${(c/1024).toFixed(1)} KB`:`${(c/1048576).toFixed(1)} MB`;return(0,d.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center",gap:6,padding:"5px 10px 5px 7px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,maxWidth:200},title:a.fileName,children:[(0,d.jsx)("span",{style:{color:f.color,fontSize:14,flexShrink:0},children:f.emoji}),(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.3},children:a.fileName}),(0,d.jsxs)("div",{style:{fontSize:10,color:"var(--text-dim)",lineHeight:1.3},children:[e.toUpperCase()," \xb7 ",g,a.extractionError?" \xb7 no text":a.truncated?" \xb7 truncated":a.extractedText?" \xb7 text":""]})]}),(0,d.jsx)("button",{onClick:b,style:{flexShrink:0,width:14,height:14,borderRadius:"50%",background:"var(--bg-hover)",border:"none",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,color:"var(--text-dim)"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)"},children:(0,d.jsxs)("svg",{width:"7",height:"7",viewBox:"0 0 7 7",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"1",y1:"1",x2:"6",y2:"6"}),(0,d.jsx)("line",{x1:"6",y1:"1",x2:"1",y2:"6"})]})})]})}function ab(a){return a.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&apos;/g,"'")}async function ac(a){let b=await c.e(1688).then(c.bind(c,81688));b.GlobalWorkerOptions.workerSrc=new c.U(c(19224)).toString();let d=await b.getDocument({data:a.slice(0)}).promise,e=[];for(let a=1;a<=d.numPages;a+=1){let b=await d.getPage(a),c=(await b.getTextContent()).items.map(a=>"str"in a?a.str:"").filter(Boolean).join(" ");c.trim()&&e.push(`Page ${a}
2
- ${c}`)}return e.join("\n\n")}async function ad(a){let b=(await c.e(7890).then(c.t.bind(c,55509,23))).default,d=await b.loadAsync(a),e=["word/document.xml",...Object.keys(d.files).filter(a=>/^word\/(footnotes|endnotes|comments)\.xml$/i.test(a)).sort()],f=[];for(let a of e){let b=d.file(a);if(!b)continue;let c=[...(await b.async("string")).replace(/<w:(br|cr)[^>]*\/>/g,"\n").replace(/<\/w:p>/g,"\n").matchAll(/<w:t[^>]*>([\s\S]*?)<\/w:t>/g)];f.push(...c.map(a=>ab(a[1])))}return f.join("").replace(/[ \t]+\n/g,"\n")}async function ae(a){let b=await c.e(1649).then(c.bind(c,91649)),d=b.read(a,{type:"array"});return d.SheetNames.map(a=>{let c=d.Sheets[a],e=b.utils.sheet_to_csv(c);return`Sheet: ${a}
3
- ${e}`}).join("\n\n")}async function af(a){let b=(await c.e(7890).then(c.t.bind(c,55509,23))).default,d=await b.loadAsync(a),e=Object.keys(d.files).map(a=>({name:a,match:/^ppt\/slides\/slide(\d+)\.xml$/i.exec(a)})).filter(a=>null!==a.match).sort((a,b)=>Number(a.match[1])-Number(b.match[1])),f=[];for(let{name:a,match:b}of e){let c=[...(await d.file(a).async("string")).matchAll(/<a:t[^>]*>([\s\S]*?)<\/a:t>/g)].map(a=>ab(a[1]).trim()).filter(Boolean);c.length&&f.push(`Slide ${b[1]}
4
- ${c.join("\n")}`)}return f.join("\n\n")}async function ag(a,b){let c=a.name.split(".").pop()?.toLowerCase()??"";try{let d,e="";if(a.type.startsWith("text/")||["csv","tsv","md","txt","json","xml"].includes(c))e=new TextDecoder("utf-8").decode(b);else if("pdf"===c||"application/pdf"===a.type)e=await ac(b);else if("docx"===c)e=await ad(b);else if("xlsx"===c)e=await ae(b);else{if("pptx"!==c)return{extractionError:"Text extraction is not supported for this file type"};e=await af(b)}let{text:f,truncated:g}=(d=e.replace(/\r\n/g,"\n").replace(/\n{4,}/g,"\n\n\n").trim()).length<=6e4?{text:d,truncated:!1}:{text:`${d.slice(0,6e4)}
1
+ (()=>{var a={};a.id=8974,a.ids=[8974],a.modules={478:(a,b,c)=>{Promise.resolve().then(c.bind(c,87564))},1708:a=>{"use strict";a.exports=require("node:process")},2798:(a,b,c)=>{let d=c(76708),e=c(95380),f=c(18994),g=c(32835);function h(a,b,c,f,g){let h=[].slice.call(arguments,1),i=h.length,j="function"==typeof h[i-1];if(!j&&!d())throw Error("Callback required as last argument");if(j){if(i<2)throw Error("Too few arguments provided");2===i?(g=c,c=b,b=f=void 0):3===i&&(b.getContext&&void 0===g?(g=f,f=void 0):(g=f,f=c,c=b,b=void 0))}else{if(i<1)throw Error("Too few arguments provided");return 1===i?(c=b,b=f=void 0):2!==i||b.getContext||(f=c,c=b,b=void 0),new Promise(function(d,g){try{let g=e.create(c,f);d(a(g,b,f))}catch(a){g(a)}})}try{let d=e.create(c,f);g(null,a(d,b,f))}catch(a){g(a)}}e.create,b.toCanvas=h.bind(null,f.render),h.bind(null,f.renderToDataURL),h.bind(null,function(a,b,c){return g.render(a,c)})},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5166:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>q,handler:()=>s,routeModule:()=>r});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,32056))),j=(0,d.p)(()=>Promise.resolve().then(c.bind(c,85034))),k=(0,d.p)(()=>Promise.resolve().then(c.bind(c,55038))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),n=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),o={children:["",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,99647))),"/home/runner/work/annovibe/annovibe/app/page.tsx"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,86364)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[i,"/home/runner/work/annovibe/annovibe/app/layout.tsx"],error:[j,"/home/runner/work/annovibe/annovibe/app/error.tsx"],"global-error":[k,"/home/runner/work/annovibe/annovibe/app/global-error.tsx"],"not-found":[l,"next/dist/client/components/builtin/not-found.js"],forbidden:[m,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[n,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,86364)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}},[]]}.children,p=(0,e.H)({tree:o,page:"/page",pathname:"/",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),q=p.__next_app__,r=p.routeModule,s=p.handler},5206:(a,b,c)=>{Promise.resolve().then(c.bind(c,35790))},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},9709:(a,b,c)=>{"use strict";let d=!0,e=c(74075),f=c(80183);e.deflateSync||(d=!1);let g=c(81769),h=c(42516),i=c(96277),j=c(92858),k=c(83670);a.exports=function(a,b){let c,l,m,n;if(!d)throw Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let o=[],p=new g(a);if(new i(b,{read:p.read.bind(p),error:function(a){c=a},metadata:function(a){l=a},gamma:function(a){m=a},palette:function(a){l.palette=a},transColor:function(a){l.transColor=a},inflateData:function(a){o.push(a)},simpleTransparency:function(){l.alpha=!0}}).start(),p.process(),c)throw c;let q=Buffer.concat(o);if(o.length=0,l.interlace)n=e.inflateSync(q);else{let a=((l.width*l.bpp*l.depth+7>>3)+1)*l.height;n=f(q,{chunkSize:a,maxLength:a})}if(q=null,!n||!n.length)throw Error("bad png - invalid inflate data response");let r=h.process(n,l);q=null;let s=j.dataToBitMap(r,l);r=null;let t=k(s,l);return l.data=t,l.gamma=m||0,l}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12097:(a,b)=>{b.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};b.isValid=function(a){return null!=a&&""!==a&&!isNaN(a)&&a>=0&&a<=7},b.from=function(a){return b.isValid(a)?parseInt(a,10):void 0},b.getPenaltyN1=function(a){let b=a.size,c=0,d=0,e=0,f=null,g=null;for(let h=0;h<b;h++){d=e=0,f=g=null;for(let i=0;i<b;i++){let b=a.get(h,i);b===f?d++:(d>=5&&(c+=3+(d-5)),f=b,d=1),(b=a.get(i,h))===g?e++:(e>=5&&(c+=3+(e-5)),g=b,e=1)}d>=5&&(c+=3+(d-5)),e>=5&&(c+=3+(e-5))}return c},b.getPenaltyN2=function(a){let b=a.size,c=0;for(let d=0;d<b-1;d++)for(let e=0;e<b-1;e++){let b=a.get(d,e)+a.get(d,e+1)+a.get(d+1,e)+a.get(d+1,e+1);(4===b||0===b)&&c++}return 3*c},b.getPenaltyN3=function(a){let b=a.size,c=0,d=0,e=0;for(let f=0;f<b;f++){d=e=0;for(let g=0;g<b;g++)d=d<<1&2047|a.get(f,g),g>=10&&(1488===d||93===d)&&c++,e=e<<1&2047|a.get(g,f),g>=10&&(1488===e||93===e)&&c++}return 40*c},b.getPenaltyN4=function(a){let b=0,c=a.data.length;for(let d=0;d<c;d++)b+=a.data[d];return 10*Math.abs(Math.ceil(100*b/c/5)-10)},b.applyMask=function(a,c){let d=c.size;for(let e=0;e<d;e++)for(let f=0;f<d;f++)c.isReserved(f,e)||c.xor(f,e,function(a,c,d){switch(a){case b.Patterns.PATTERN000:return(c+d)%2==0;case b.Patterns.PATTERN001:return c%2==0;case b.Patterns.PATTERN010:return d%3==0;case b.Patterns.PATTERN011:return(c+d)%3==0;case b.Patterns.PATTERN100:return(Math.floor(c/2)+Math.floor(d/3))%2==0;case b.Patterns.PATTERN101:return c*d%2+c*d%3==0;case b.Patterns.PATTERN110:return(c*d%2+c*d%3)%2==0;case b.Patterns.PATTERN111:return(c*d%3+(c+d)%2)%2==0;default:throw Error("bad maskPattern:"+a)}}(a,f,e))},b.getBestMask=function(a,c){let d=Object.keys(b.Patterns).length,e=0,f=1/0;for(let g=0;g<d;g++){c(g),b.applyMask(g,a);let d=b.getPenaltyN1(a)+b.getPenaltyN2(a)+b.getPenaltyN3(a)+b.getPenaltyN4(a);b.applyMask(g,a),d<f&&(f=d,e=g)}return e}},12412:a=>{"use strict";a.exports=require("assert")},18994:(a,b,c)=>{let d=c(88397);b.render=function(a,b,c){var e;let f=c,g=b;void 0!==f||b&&b.getContext||(f=b,b=void 0),b||(g=function(){try{return document.createElement("canvas")}catch(a){throw Error("You need to specify a canvas element")}}()),f=d.getOptions(f);let h=d.getImageWidth(a.modules.size,f),i=g.getContext("2d"),j=i.createImageData(h,h);return d.qrToImageData(j.data,a,f),e=g,i.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=h,e.width=h,e.style.height=h+"px",e.style.width=h+"px",i.putImageData(j,0,0),g},b.renderToDataURL=function(a,c,d){let e=d;void 0!==e||c&&c.getContext||(e=c,c=void 0),e||(e={});let f=b.render(a,c,e),g=e.type||"image/png",h=e.rendererOpts||{};return f.toDataURL(g,h.quality)}},19099:(a,b,c)=>{"use strict";var d=c(54839);c.o(d,"useRouter")&&c.d(b,{useRouter:function(){return d.useRouter}}),c.o(d,"useSearchParams")&&c.d(b,{useSearchParams:function(){return d.useSearchParams}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19477:(a,b,c)=>{let d=c(58856),e=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],f=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];b.getBlocksCount=function(a,b){switch(b){case d.L:return e[(a-1)*4+0];case d.M:return e[(a-1)*4+1];case d.Q:return e[(a-1)*4+2];case d.H:return e[(a-1)*4+3];default:return}},b.getTotalCodewordsCount=function(a,b){switch(b){case d.L:return f[(a-1)*4+0];case d.M:return f[(a-1)*4+1];case d.Q:return f[(a-1)*4+2];case d.H:return f[(a-1)*4+3];default:return}}},23372:(a,b,c)=>{"use strict";let d=c(28354),e=c(74075),f=c(57949),g=c(27459),h=c(96277),i=c(92858),j=c(83670),k=a.exports=function(a){f.call(this),this._parser=new h(a,{read:this.read.bind(this),error:this._handleError.bind(this),metadata:this._handleMetaData.bind(this),gamma:this.emit.bind(this,"gamma"),palette:this._handlePalette.bind(this),transColor:this._handleTransColor.bind(this),finished:this._finished.bind(this),inflateData:this._inflateData.bind(this),simpleTransparency:this._simpleTransparency.bind(this),headersFinished:this._headersFinished.bind(this)}),this._options=a,this.writable=!0,this._parser.start()};d.inherits(k,f),k.prototype._handleError=function(a){this.emit("error",a),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy&&this._inflate.destroy(),this._filter&&(this._filter.destroy(),this._filter.on("error",function(){})),this.errord=!0},k.prototype._inflateData=function(a){if(!this._inflate)if(this._bitmapInfo.interlace)this._inflate=e.createInflate(),this._inflate.on("error",this.emit.bind(this,"error")),this._filter.on("complete",this._complete.bind(this)),this._inflate.pipe(this._filter);else{let a=((this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3)+1)*this._bitmapInfo.height,b=Math.max(a,e.Z_MIN_CHUNK);this._inflate=e.createInflate({chunkSize:b});let c=a,d=this.emit.bind(this,"error");this._inflate.on("error",function(a){c&&d(a)}),this._filter.on("complete",this._complete.bind(this));let f=this._filter.write.bind(this._filter);this._inflate.on("data",function(a){c&&(a.length>c&&(a=a.slice(0,c)),c-=a.length,f(a))}),this._inflate.on("end",this._filter.end.bind(this._filter))}this._inflate.write(a)},k.prototype._handleMetaData=function(a){this._metaData=a,this._bitmapInfo=Object.create(a),this._filter=new g(this._bitmapInfo)},k.prototype._handleTransColor=function(a){this._bitmapInfo.transColor=a},k.prototype._handlePalette=function(a){this._bitmapInfo.palette=a},k.prototype._simpleTransparency=function(){this._metaData.alpha=!0},k.prototype._headersFinished=function(){this.emit("metadata",this._metaData)},k.prototype._finished=function(){this.errord||(this._inflate?this._inflate.end():this.emit("error","No Inflate block"))},k.prototype._complete=function(a){let b;if(!this.errord){try{let c=i.dataToBitMap(a,this._bitmapInfo);b=j(c,this._bitmapInfo),c=null}catch(a){this._handleError(a);return}this.emit("parsed",b)}}},27137:(a,b,c)=>{let d=c(93669),e=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function f(a){this.mode=d.ALPHANUMERIC,this.data=a}f.getBitsLength=function(a){return 11*Math.floor(a/2)+a%2*6},f.prototype.getLength=function(){return this.data.length},f.prototype.getBitsLength=function(){return f.getBitsLength(this.data.length)},f.prototype.write=function(a){let b;for(b=0;b+2<=this.data.length;b+=2){let c=45*e.indexOf(this.data[b]);c+=e.indexOf(this.data[b+1]),a.put(c,11)}this.data.length%2&&a.put(e.indexOf(this.data[b]),6)},a.exports=f},27459:(a,b,c)=>{"use strict";let d=c(28354),e=c(57949),f=c(27734),g=a.exports=function(a){e.call(this);let b=[],c=this;this._filter=new f(a,{read:this.read.bind(this),write:function(a){b.push(a)},complete:function(){c.emit("complete",Buffer.concat(b))}}),this._filter.start()};d.inherits(g,e)},27734:(a,b,c)=>{"use strict";let d=c(59725),e=c(55211);function f(a,b,c){let d=a*b;return 8!==c&&(d=Math.ceil(d/(8/c))),d}let g=a.exports=function(a,b){let c=a.width,e=a.height,g=a.interlace,h=a.bpp,i=a.depth;if(this.read=b.read,this.write=b.write,this.complete=b.complete,this._imageIndex=0,this._images=[],g){let a=d.getImagePasses(c,e);for(let b=0;b<a.length;b++)this._images.push({byteWidth:f(a[b].width,h,i),height:a[b].height,lineIndex:0})}else this._images.push({byteWidth:f(c,h,i),height:e,lineIndex:0});8===i?this._xComparison=h:16===i?this._xComparison=2*h:this._xComparison=1};g.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))},g.prototype._unFilterType1=function(a,b,c){let d=this._xComparison,e=d-1;for(let f=0;f<c;f++){let c=a[1+f],g=f>e?b[f-d]:0;b[f]=c+g}},g.prototype._unFilterType2=function(a,b,c){let d=this._lastLine;for(let e=0;e<c;e++){let c=a[1+e],f=d?d[e]:0;b[e]=c+f}},g.prototype._unFilterType3=function(a,b,c){let d=this._xComparison,e=d-1,f=this._lastLine;for(let g=0;g<c;g++){let c=a[1+g],h=f?f[g]:0,i=Math.floor(((g>e?b[g-d]:0)+h)/2);b[g]=c+i}},g.prototype._unFilterType4=function(a,b,c){let d=this._xComparison,f=d-1,g=this._lastLine;for(let h=0;h<c;h++){let c=a[1+h],i=g?g[h]:0,j=e(h>f?b[h-d]:0,i,h>f&&g?g[h-d]:0);b[h]=c+j}},g.prototype._reverseFilterLine=function(a){let b,c=a[0],d=this._images[this._imageIndex],e=d.byteWidth;if(0===c)b=a.slice(1,e+1);else switch(b=Buffer.alloc(e),c){case 1:this._unFilterType1(a,b,e);break;case 2:this._unFilterType2(a,b,e);break;case 3:this._unFilterType3(a,b,e);break;case 4:this._unFilterType4(a,b,e);break;default:throw Error("Unrecognised filter type - "+c)}this.write(b),d.lineIndex++,d.lineIndex>=d.height?(this._lastLine=null,this._imageIndex++,d=this._images[this._imageIndex]):this._lastLine=b,d?this.read(d.byteWidth+1,this._reverseFilterLine.bind(this)):(this._lastLine=null,this.complete())}},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},28964:(a,b,c)=>{let d=c(93669);function e(a){this.mode=d.NUMERIC,this.data=a.toString()}e.getBitsLength=function(a){return 10*Math.floor(a/3)+(a%3?a%3*3+1:0)},e.prototype.getLength=function(){return this.data.length},e.prototype.getBitsLength=function(){return e.getBitsLength(this.data.length)},e.prototype.write=function(a){let b,c;for(b=0;b+3<=this.data.length;b+=3)c=parseInt(this.data.substr(b,3),10),a.put(c,10);let d=this.data.length-b;d>0&&(c=parseInt(this.data.substr(b),10),a.put(c,3*d+1))},a.exports=e},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31964:(a,b,c)=>{"use strict";let d=c(55211),e={0:function(a,b,c,d,e){for(let f=0;f<c;f++)d[e+f]=a[b+f]},1:function(a,b,c,d,e,f){for(let g=0;g<c;g++){let c=g>=f?a[b+g-f]:0,h=a[b+g]-c;d[e+g]=h}},2:function(a,b,c,d,e){for(let f=0;f<c;f++){let g=b>0?a[b+f-c]:0,h=a[b+f]-g;d[e+f]=h}},3:function(a,b,c,d,e,f){for(let g=0;g<c;g++){let h=g>=f?a[b+g-f]:0,i=b>0?a[b+g-c]:0,j=a[b+g]-(h+i>>1);d[e+g]=j}},4:function(a,b,c,e,f,g){for(let h=0;h<c;h++){let i=h>=g?a[b+h-g]:0,j=b>0?a[b+h-c]:0,k=b>0&&h>=g?a[b+h-(c+g)]:0,l=a[b+h]-d(i,j,k);e[f+h]=l}}},f={0:function(a,b,c){let d=0,e=b+c;for(let c=b;c<e;c++)d+=Math.abs(a[c]);return d},1:function(a,b,c,d){let e=0;for(let f=0;f<c;f++){let c=f>=d?a[b+f-d]:0;e+=Math.abs(a[b+f]-c)}return e},2:function(a,b,c){let d=0,e=b+c;for(let f=b;f<e;f++){let e=b>0?a[f-c]:0;d+=Math.abs(a[f]-e)}return d},3:function(a,b,c,d){let e=0;for(let f=0;f<c;f++){let g=f>=d?a[b+f-d]:0,h=b>0?a[b+f-c]:0;e+=Math.abs(a[b+f]-(g+h>>1))}return e},4:function(a,b,c,e){let f=0;for(let g=0;g<c;g++){let h=g>=e?a[b+g-e]:0,i=b>0?a[b+g-c]:0,j=b>0&&g>=e?a[b+g-(c+e)]:0;f+=Math.abs(a[b+g]-d(h,i,j))}return f}};a.exports=function(a,b,c,d,g){let h;if("filterType"in d&&-1!==d.filterType)if("number"==typeof d.filterType)h=[d.filterType];else throw Error("unrecognised filter types");else h=[0,1,2,3,4];16===d.bitDepth&&(g*=2);let i=b*g,j=0,k=0,l=Buffer.alloc((i+1)*c),m=h[0];for(let b=0;b<c;b++){if(h.length>1){let b=1/0;for(let c=0;c<h.length;c++){let d=f[h[c]](a,k,i,g);d<b&&(m=h[c],b=d)}}l[j]=m,j++,e[m](a,k,i,l,j,g),j+=i,k+=i}return l}},32835:(a,b,c)=>{let d=c(88397);function e(a,b){let c=a.a/255,d=b+'="'+a.hex+'"';return c<1?d+" "+b+'-opacity="'+c.toFixed(2).slice(1)+'"':d}function f(a,b,c){let d=a+b;return void 0!==c&&(d+=" "+c),d}b.render=function(a,b,c){let g=d.getOptions(b),h=a.modules.size,i=a.modules.data,j=h+2*g.margin,k=g.color.light.a?"<path "+e(g.color.light,"fill")+' d="M0 0h'+j+"v"+j+'H0z"/>':"",l="<path "+e(g.color.dark,"stroke")+' d="'+function(a,b,c){let d="",e=0,g=!1,h=0;for(let i=0;i<a.length;i++){let j=Math.floor(i%b),k=Math.floor(i/b);j||g||(g=!0),a[i]?(h++,i>0&&j>0&&a[i-1]||(d+=g?f("M",j+c,.5+k+c):f("m",e,0),e=0,g=!1),j+1<b&&a[i+1]||(d+=f("h",h),h=0)):e++}return d}(i,h,g.margin)+'"/>',m='<svg xmlns="http://www.w3.org/2000/svg" '+(g.width?'width="'+g.width+'" height="'+g.width+'" ':"")+('viewBox="0 0 '+j+" ")+j+'" shape-rendering="crispEdges">'+k+l+"</svg>\n";return"function"==typeof c&&c(null,m),m}},33873:a=>{"use strict";a.exports=require("path")},34447:(a,b,c)=>{"use strict";let d=c(28354),e=c(27910),f=c(23372),g=c(49149),h=c(58879),i=b.O=function(a){e.call(this),a=a||{},this.width=0|a.width,this.height=0|a.height,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,a.fill&&this.data&&this.data.fill(0),this.gamma=0,this.readable=this.writable=!0,this._parser=new f(a),this._parser.on("error",this.emit.bind(this,"error")),this._parser.on("close",this._handleClose.bind(this)),this._parser.on("metadata",this._metadata.bind(this)),this._parser.on("gamma",this._gamma.bind(this)),this._parser.on("parsed",(function(a){this.data=a,this.emit("parsed",a)}).bind(this)),this._packer=new g(a),this._packer.on("data",this.emit.bind(this,"data")),this._packer.on("end",this.emit.bind(this,"end")),this._parser.on("close",this._handleClose.bind(this)),this._packer.on("error",this.emit.bind(this,"error"))};d.inherits(i,e),i.sync=h,i.prototype.pack=function(){return this.data&&this.data.length?process.nextTick((function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}).bind(this)):this.emit("error","No data provided"),this},i.prototype.parse=function(a,b){if(b){let a,c;a=(function(a){this.removeListener("error",c),this.data=a,b(null,this)}).bind(this),c=(function(c){this.removeListener("parsed",a),b(c,null)}).bind(this),this.once("parsed",a),this.once("error",c)}return this.end(a),this},i.prototype.write=function(a){return this._parser.write(a),!0},i.prototype.end=function(a){this._parser.end(a)},i.prototype._metadata=function(a){this.width=a.width,this.height=a.height,this.emit("metadata",a)},i.prototype._gamma=function(a){this.gamma=a},i.prototype._handleClose=function(){this._parser.writable||this._packer.readable||this.emit("close")},i.bitblt=function(a,b,c,d,e,f,g,h){if(d|=0,e|=0,f|=0,g|=0,h|=0,(c|=0)>a.width||d>a.height||c+e>a.width||d+f>a.height)throw Error("bitblt reading outside image");if(g>b.width||h>b.height||g+e>b.width||h+f>b.height)throw Error("bitblt writing outside image");for(let i=0;i<f;i++)a.data.copy(b.data,(h+i)*b.width+g<<2,(d+i)*a.width+c<<2,(d+i)*a.width+c+e<<2)},i.prototype.bitblt=function(a,b,c,d,e,f,g){return i.bitblt(this,a,b,c,d,e,f,g),this},i.adjustGamma=function(a){if(a.gamma){for(let b=0;b<a.height;b++)for(let c=0;c<a.width;c++){let d=a.width*b+c<<2;for(let b=0;b<3;b++){let c=a.data[d+b]/255;c=Math.pow(c,1/2.2/a.gamma),a.data[d+b]=Math.round(255*c)}}a.gamma=0}},i.prototype.adjustGamma=function(){i.adjustGamma(this)}},35790:(a,b,c)=>{"use strict";c.d(b,{AppShell:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/annovibe/annovibe/components/AppShell.tsx","AppShell")},38522:a=>{"use strict";a.exports=require("node:zlib")},38937:(a,b,c)=>{let d=c(93669);function e(a){this.mode=d.BYTE,"string"==typeof a?this.data=new TextEncoder().encode(a):this.data=new Uint8Array(a)}e.getBitsLength=function(a){return 8*a},e.prototype.getLength=function(){return this.data.length},e.prototype.getBitsLength=function(){return e.getBitsLength(this.data.length)},e.prototype.write=function(a){for(let b=0,c=this.data.length;b<c;b++)a.put(this.data[b],8)},a.exports=e},39477:(a,b,c)=>{let d=c(58305).getSymbolSize;b.getPositions=function(a){let b=d(a);return[[0,0],[b-7,0],[0,b-7]]}},39588:(a,b,c)=>{let d=c(93669),e=c(28964),f=c(27137),g=c(38937),h=c(64424),i=c(64323),j=c(58305),k=c(84879);function l(a){return unescape(encodeURIComponent(a)).length}function m(a,b,c){let d,e=[];for(;null!==(d=a.exec(c));)e.push({data:d[0],index:d.index,mode:b,length:d[0].length});return e}function n(a){let b,c,e=m(i.NUMERIC,d.NUMERIC,a),f=m(i.ALPHANUMERIC,d.ALPHANUMERIC,a);return j.isKanjiModeEnabled()?(b=m(i.BYTE,d.BYTE,a),c=m(i.KANJI,d.KANJI,a)):(b=m(i.BYTE_KANJI,d.BYTE,a),c=[]),e.concat(f,b,c).sort(function(a,b){return a.index-b.index}).map(function(a){return{data:a.data,mode:a.mode,length:a.length}})}function o(a,b){switch(b){case d.NUMERIC:return e.getBitsLength(a);case d.ALPHANUMERIC:return f.getBitsLength(a);case d.KANJI:return h.getBitsLength(a);case d.BYTE:return g.getBitsLength(a)}}function p(a,b){let c,i=d.getBestModeForData(a);if((c=d.from(b,i))!==d.BYTE&&c.bit<i.bit)throw Error('"'+a+'" cannot be encoded with mode '+d.toString(c)+".\n Suggested mode is: "+d.toString(i));switch(c===d.KANJI&&!j.isKanjiModeEnabled()&&(c=d.BYTE),c){case d.NUMERIC:return new e(a);case d.ALPHANUMERIC:return new f(a);case d.KANJI:return new h(a);case d.BYTE:return new g(a)}}b.fromArray=function(a){return a.reduce(function(a,b){return"string"==typeof b?a.push(p(b,null)):b.data&&a.push(p(b.data,b.mode)),a},[])},b.fromString=function(a,c){let e=function(a,b){let c={},e={start:{}},f=["start"];for(let g=0;g<a.length;g++){let h=a[g],i=[];for(let a=0;a<h.length;a++){let j=h[a],k=""+g+a;i.push(k),c[k]={node:j,lastCount:0},e[k]={};for(let a=0;a<f.length;a++){let g=f[a];c[g]&&c[g].node.mode===j.mode?(e[g][k]=o(c[g].lastCount+j.length,j.mode)-o(c[g].lastCount,j.mode),c[g].lastCount+=j.length):(c[g]&&(c[g].lastCount=j.length),e[g][k]=o(j.length,j.mode)+4+d.getCharCountIndicator(j.mode,b))}}f=i}for(let a=0;a<f.length;a++)e[f[a]].end=0;return{map:e,table:c}}(function(a){let b=[];for(let c=0;c<a.length;c++){let e=a[c];switch(e.mode){case d.NUMERIC:b.push([e,{data:e.data,mode:d.ALPHANUMERIC,length:e.length},{data:e.data,mode:d.BYTE,length:e.length}]);break;case d.ALPHANUMERIC:b.push([e,{data:e.data,mode:d.BYTE,length:e.length}]);break;case d.KANJI:b.push([e,{data:e.data,mode:d.BYTE,length:l(e.data)}]);break;case d.BYTE:b.push([{data:e.data,mode:d.BYTE,length:l(e.data)}])}}return b}(n(a,j.isKanjiModeEnabled())),c),f=k.find_path(e.map,"start","end"),g=[];for(let a=1;a<f.length-1;a++)g.push(e.table[f[a]].node);return b.fromArray(g.reduce(function(a,b){let c=a.length-1>=0?a[a.length-1]:null;return c&&c.mode===b.mode?a[a.length-1].data+=b.data:a.push(b),a},[]))},b.rawSplit=function(a){return b.fromArray(n(a,j.isKanjiModeEnabled()))}},40355:(a,b,c)=>{let d=c(76708),e=c(95380),f=c(46387),g=c(72081),h=c(66530),i=c(90082);function j(a,b,c){if(void 0===a)throw Error("String required as first argument");if(void 0===c&&(c=b,b={}),"function"!=typeof c)if(d())b=c||{},c=null;else throw Error("Callback required as last argument");return{opts:b,cb:c}}function k(a){switch(a){case"svg":return i;case"txt":case"utf8":return g;default:return f}}function l(a,b,c){if(!c.cb)return new Promise(function(d,f){try{let g=e.create(b,c.opts);return a(g,c.opts,function(a,b){return a?f(a):d(b)})}catch(a){f(a)}});try{let d=e.create(b,c.opts);return a(d,c.opts,c.cb)}catch(a){c.cb(a)}}b.create=e.create,b.toCanvas=c(2798).toCanvas,b.toString=function(a,b,c){let d=j(a,b,c);return l(function(a){switch(a){case"svg":return i;case"terminal":return h;default:return g}}(d.opts?d.opts.type:void 0).render,a,d)},b.toDataURL=function(a,b,c){let d=j(a,b,c);return l(k(d.opts.type).renderToDataURL,a,d)},b.toBuffer=function(a,b,c){let d=j(a,b,c);return l(k(d.opts.type).renderToBuffer,a,d)},b.toFile=function(a,b,c,e){if("string"!=typeof a||"string"!=typeof b&&"object"!=typeof b)throw Error("Invalid argument");if(arguments.length<3&&!d())throw Error("Too few arguments provided");let f=j(b,c,e);return l(k(f.opts.type||a.slice((a.lastIndexOf(".")-1>>>0)+2).toLowerCase()).renderToFile.bind(null,a),b,f)},b.toFileStream=function(a,b,c){if(arguments.length<2)throw Error("Too few arguments provided");let d=j(b,c,a.emit.bind(a,"error"));l(k("png").renderToFileStream.bind(null,a),b,d)}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42516:(a,b,c)=>{"use strict";let d=c(81769),e=c(27734);b.process=function(a,b){let c=[],f=new d(a);return new e(b,{read:f.read.bind(f),write:function(a){c.push(a)},complete:function(){}}).start(),f.process(),Buffer.concat(c)}},43144:(a,b,c)=>{let d=c(81754);b.mul=function(a,b){let c=new Uint8Array(a.length+b.length-1);for(let e=0;e<a.length;e++)for(let f=0;f<b.length;f++)c[e+f]^=d.mul(a[e],b[f]);return c},b.mod=function(a,b){let c=new Uint8Array(a);for(;c.length-b.length>=0;){let a=c[0];for(let e=0;e<b.length;e++)c[e]^=d.mul(b[e],a);let e=0;for(;e<c.length&&0===c[e];)e++;c=c.slice(e)}return c},b.generateECPolynomial=function(a){let c=new Uint8Array([1]);for(let e=0;e<a;e++)c=b.mul(c,new Uint8Array([1,d.exp(e)]));return c}},43894:a=>{"use strict";let b=[];for(let a=0;a<256;a++){let c=a;for(let a=0;a<8;a++)1&c?c=0xedb88320^c>>>1:c>>>=1;b[a]=c}let c=a.exports=function(){this._crc=-1};c.prototype.write=function(a){for(let c=0;c<a.length;c++)this._crc=b[(this._crc^a[c])&255]^this._crc>>>8;return!0},c.prototype.crc32=function(){return -1^this._crc},c.crc32=function(a){let c=-1;for(let d=0;d<a.length;d++)c=b[(c^a[d])&255]^c>>>8;return -1^c}},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46349:a=>{function b(a){if(!a||a<1)throw Error("BitMatrix size must be defined and greater than 0");this.size=a,this.data=new Uint8Array(a*a),this.reservedBit=new Uint8Array(a*a)}b.prototype.set=function(a,b,c,d){let e=a*this.size+b;this.data[e]=c,d&&(this.reservedBit[e]=!0)},b.prototype.get=function(a,b){return this.data[a*this.size+b]},b.prototype.xor=function(a,b,c){this.data[a*this.size+b]^=c},b.prototype.isReserved=function(a,b){return this.reservedBit[a*this.size+b]},a.exports=b},46387:(a,b,c)=>{let d=c(29021),e=c(34447).O,f=c(88397);b.render=function(a,b){let c=f.getOptions(b),d=c.rendererOpts,g=f.getImageWidth(a.modules.size,c);d.width=g,d.height=g;let h=new e(d);return f.qrToImageData(h.data,a,c),h},b.renderToDataURL=function(a,c,d){void 0===d&&(d=c,c=void 0),b.renderToBuffer(a,c,function(a,b){a&&d(a);let c="data:image/png;base64,";c+=b.toString("base64"),d(null,c)})},b.renderToBuffer=function(a,c,d){void 0===d&&(d=c,c=void 0);let e=b.render(a,c),f=[];e.on("error",d),e.on("data",function(a){f.push(a)}),e.on("end",function(){d(null,Buffer.concat(f))}),e.pack()},b.renderToFile=function(a,c,e,f){void 0===f&&(f=e,e=void 0);let g=!1,h=(...a)=>{g||(g=!0,f.apply(null,a))},i=d.createWriteStream(a);i.on("error",h),i.on("close",h),b.renderToFileStream(i,c,e)},b.renderToFileStream=function(a,c,d){b.render(c,d).pack().pipe(a)}},49149:(a,b,c)=>{"use strict";let d=c(28354),e=c(27910),f=c(67269),g=c(98052),h=a.exports=function(a){e.call(this),this._packer=new g(a||{}),this._deflate=this._packer.createDeflate(),this.readable=!0};d.inherits(h,e),h.prototype.pack=function(a,b,c,d){this.emit("data",Buffer.from(f.PNG_SIGNATURE)),this.emit("data",this._packer.packIHDR(b,c)),d&&this.emit("data",this._packer.packGAMA(d));let e=this._packer.filterData(a,b,c);this._deflate.on("error",this.emit.bind(this,"error")),this._deflate.on("data",(function(a){this.emit("data",this._packer.packIDAT(a))}).bind(this)),this._deflate.on("end",(function(){this.emit("data",this._packer.packIEND()),this.emit("end")}).bind(this)),this._deflate.end(e)}},49998:(a,b,c)=>{"use strict";a.exports=c(40355)},52002:a=>{function b(){this.buffer=[],this.length=0}b.prototype={get:function(a){let b=Math.floor(a/8);return(this.buffer[b]>>>7-a%8&1)==1},put:function(a,b){for(let c=0;c<b;c++)this.putBit((a>>>b-c-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(a){let b=Math.floor(this.length/8);this.buffer.length<=b&&this.buffer.push(0),a&&(this.buffer[b]|=128>>>this.length%8),this.length++}},a.exports=b},52324:(a,b,c)=>{let d=c(58305),e=c(19477),f=c(58856),g=c(93669),h=c(83929),i=d.getBCHDigit(7973);function j(a,b){return g.getCharCountIndicator(a,b)+4}b.from=function(a,b){return h.isValid(a)?parseInt(a,10):b},b.getCapacity=function(a,b,c){if(!h.isValid(a))throw Error("Invalid QR Code version");void 0===c&&(c=g.BYTE);let f=(d.getSymbolTotalCodewords(a)-e.getTotalCodewordsCount(a,b))*8;if(c===g.MIXED)return f;let i=f-j(c,a);switch(c){case g.NUMERIC:return Math.floor(i/10*3);case g.ALPHANUMERIC:return Math.floor(i/11*2);case g.KANJI:return Math.floor(i/13);case g.BYTE:default:return Math.floor(i/8)}},b.getBestVersionForData=function(a,c){let d,e=f.from(c,f.M);if(Array.isArray(a)){if(a.length>1){for(let c=1;c<=40;c++)if(function(a,b){let c=0;return a.forEach(function(a){let d=j(a.mode,b);c+=d+a.getBitsLength()}),c}(a,c)<=b.getCapacity(c,e,g.MIXED))return c;return}if(0===a.length)return 1;d=a[0]}else d=a;return function(a,c,d){for(let e=1;e<=40;e++)if(c<=b.getCapacity(e,d,a))return e}(d.mode,d.getLength(),e)},b.getEncodedBits=function(a){if(!h.isValid(a)||a<7)throw Error("Invalid QR Code version");let b=a<<12;for(;d.getBCHDigit(b)-i>=0;)b^=7973<<d.getBCHDigit(b)-i;return a<<12|b}},55211:a=>{"use strict";a.exports=function(a,b,c){let d=a+b-c,e=Math.abs(d-a),f=Math.abs(d-b),g=Math.abs(d-c);return e<=f&&e<=g?a:f<=g?b:c}},55258:(a,b,c)=>{let d=c(58305),e=d.getBCHDigit(1335);b.getEncodedBits=function(a,b){let c=a.bit<<3|b,f=c<<10;for(;d.getBCHDigit(f)-e>=0;)f^=1335<<d.getBCHDigit(f)-e;return(c<<10|f)^21522}},55511:a=>{"use strict";a.exports=require("crypto")},57949:(a,b,c)=>{"use strict";let d=c(28354),e=c(27910),f=a.exports=function(){e.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding="utf8",this.writable=!0};d.inherits(f,e),f.prototype.read=function(a,b){this._reads.push({length:Math.abs(a),allowLess:a<0,func:b}),process.nextTick((function(){this._process(),this._paused&&this._reads&&this._reads.length>0&&(this._paused=!1,this.emit("drain"))}).bind(this))},f.prototype.write=function(a,b){let c;return this.writable?(c=Buffer.isBuffer(a)?a:Buffer.from(a,b||this._encoding),this._buffers.push(c),this._buffered+=c.length,this._process(),this._reads&&0===this._reads.length&&(this._paused=!0),this.writable&&!this._paused):(this.emit("error",Error("Stream not writable")),!1)},f.prototype.end=function(a,b){a&&this.write(a,b),this.writable=!1,this._buffers&&(0===this._buffers.length?this._end():(this._buffers.push(null),this._process()))},f.prototype.destroySoon=f.prototype.end,f.prototype._end=function(){this._reads.length>0&&this.emit("error",Error("Unexpected end of input")),this.destroy()},f.prototype.destroy=function(){this._buffers&&(this.writable=!1,this._reads=null,this._buffers=null,this.emit("close"))},f.prototype._processReadAllowingLess=function(a){this._reads.shift();let b=this._buffers[0];b.length>a.length?(this._buffered-=a.length,this._buffers[0]=b.slice(a.length),a.func.call(this,b.slice(0,a.length))):(this._buffered-=b.length,this._buffers.shift(),a.func.call(this,b))},f.prototype._processRead=function(a){this._reads.shift();let b=0,c=0,d=Buffer.alloc(a.length);for(;b<a.length;){let e=this._buffers[c++],f=Math.min(e.length,a.length-b);e.copy(d,b,0,f),b+=f,f!==e.length&&(this._buffers[--c]=e.slice(f))}c>0&&this._buffers.splice(0,c),this._buffered-=a.length,a.func.call(this,d)},f.prototype._process=function(){try{for(;this._buffered>0&&this._reads&&this._reads.length>0;){let a=this._reads[0];if(a.allowLess)this._processReadAllowingLess(a);else if(this._buffered>=a.length)this._processRead(a);else break}this._buffers&&!this.writable&&this._end()}catch(a){this.emit("error",a)}}},58305:(a,b)=>{let c,d=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];b.getSymbolSize=function(a){if(!a)throw Error('"version" cannot be null or undefined');if(a<1||a>40)throw Error('"version" should be in range from 1 to 40');return 4*a+17},b.getSymbolTotalCodewords=function(a){return d[a]},b.getBCHDigit=function(a){let b=0;for(;0!==a;)b++,a>>>=1;return b},b.setToSJISFunction=function(a){if("function"!=typeof a)throw Error('"toSJISFunc" is not a valid function.');c=a},b.isKanjiModeEnabled=function(){return void 0!==c},b.toSJIS=function(a){return c(a)}},58856:(a,b)=>{b.L={bit:1},b.M={bit:0},b.Q={bit:3},b.H={bit:2},b.isValid=function(a){return a&&void 0!==a.bit&&a.bit>=0&&a.bit<4},b.from=function(a,c){if(b.isValid(a))return a;try{if("string"!=typeof a)throw Error("Param is not a string");switch(a.toLowerCase()){case"l":case"low":return b.L;case"m":case"medium":return b.M;case"q":case"quartile":return b.Q;case"h":case"high":return b.H;default:throw Error("Unknown EC Level: "+a)}}catch(a){return c}}},58879:(a,b,c)=>{"use strict";let d=c(9709),e=c(80706);b.read=function(a,b){return d(a,b||{})},b.write=function(a,b){return e(a,b)}},59725:(a,b)=>{"use strict";let c=[{x:[0],y:[0]},{x:[4],y:[0]},{x:[0,4],y:[4]},{x:[2,6],y:[0,4]},{x:[0,2,4,6],y:[2,6]},{x:[1,3,5,7],y:[0,2,4,6]},{x:[0,1,2,3,4,5,6,7],y:[1,3,5,7]}];b.getImagePasses=function(a,b){let d=[],e=a%8,f=b%8,g=(a-e)/8,h=(b-f)/8;for(let a=0;a<c.length;a++){let b=c[a],i=g*b.x.length,j=h*b.y.length;for(let a=0;a<b.x.length;a++)if(b.x[a]<e)i++;else break;for(let a=0;a<b.y.length;a++)if(b.y[a]<f)j++;else break;i>0&&j>0&&d.push({width:i,height:j,index:a})}return d},b.getInterlaceIterator=function(a){return function(b,d,e){let f=b%c[e].x.length,g=(b-f)/c[e].x.length*8+c[e].x[f],h=d%c[e].y.length;return 4*g+((d-h)/c[e].y.length*8+c[e].y[h])*a*4}}},61345:(a,b)=>{b.render=function(a,b,c){let d=a.modules.size,e=a.modules.data,f="\x1b[47m \x1b[0m",g="",h=Array(d+3).join(f),i=[,,].join(f);g+=h+"\n";for(let a=0;a<d;++a){g+=f;for(let b=0;b<d;b++)g+=e[a*d+b]?"\x1b[40m \x1b[0m":f;g+=i+"\n"}return g+=h+"\n","function"==typeof c&&c(null,g),g}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64323:(a,b)=>{let c="[0-9]+",d="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",e="(?:(?![A-Z0-9 $%*+\\-./:]|"+(d=d.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";b.KANJI=RegExp(d,"g"),b.BYTE_KANJI=RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),b.BYTE=RegExp(e,"g"),b.NUMERIC=RegExp(c,"g"),b.ALPHANUMERIC=RegExp("[A-Z $%*+\\-./:]+","g");let f=RegExp("^"+d+"$"),g=RegExp("^"+c+"$"),h=RegExp("^[A-Z0-9 $%*+\\-./:]+$");b.testKanji=function(a){return f.test(a)},b.testNumeric=function(a){return g.test(a)},b.testAlphanumeric=function(a){return h.test(a)}},64424:(a,b,c)=>{let d=c(93669),e=c(58305);function f(a){this.mode=d.KANJI,this.data=a}f.getBitsLength=function(a){return 13*a},f.prototype.getLength=function(){return this.data.length},f.prototype.getBitsLength=function(){return f.getBitsLength(this.data.length)},f.prototype.write=function(a){let b;for(b=0;b<this.data.length;b++){let c=e.toSJIS(this.data[b]);if(c>=33088&&c<=40956)c-=33088;else if(c>=57408&&c<=60351)c-=49472;else throw Error("Invalid SJIS character: "+this.data[b]+"\nMake sure your charset is UTF-8");c=(c>>>8&255)*192+(255&c),a.put(c,13)}},a.exports=f},66530:(a,b,c)=>{let d=c(61345),e=c(86491);b.render=function(a,b,c){return b&&b.small?e.render(a,b,c):d.render(a,b,c)}},67269:a=>{"use strict";a.exports={PNG_SIGNATURE:[137,80,78,71,13,10,26,10],TYPE_IHDR:0x49484452,TYPE_IEND:0x49454e44,TYPE_IDAT:0x49444154,TYPE_PLTE:0x504c5445,TYPE_tRNS:0x74524e53,TYPE_gAMA:0x67414d41,COLORTYPE_GRAYSCALE:0,COLORTYPE_PALETTE:1,COLORTYPE_COLOR:2,COLORTYPE_ALPHA:4,COLORTYPE_PALETTE_COLOR:3,COLORTYPE_COLOR_ALPHA:6,COLORTYPE_TO_BPP_MAP:{0:1,2:3,3:1,4:2,6:4},GAMMA_DIVISION:1e5}},72081:(a,b,c)=>{let d=c(88397),e={WW:" ",WB:"▄",BB:"█",BW:"▀"},f={BB:" ",BW:"▄",WW:"█",WB:"▀"};b.render=function(a,b,c){let g=d.getOptions(b),h=e;("#ffffff"===g.color.dark.hex||"#000000"===g.color.light.hex)&&(h=f);let i=a.modules.size,j=a.modules.data,k="",l=Array(i+2*g.margin+1).join(h.WW);l=Array(g.margin/2+1).join(l+"\n");let m=Array(g.margin+1).join(h.WW);k+=l;for(let a=0;a<i;a+=2){k+=m;for(let b=0;b<i;b++){var n;let c=j[a*i+b],d=j[(a+1)*i+b];k+=(n=h,c&&d?n.BB:c&&!d?n.BW:!c&&d?n.WB:n.WW)}k+=m+"\n"}return k+=l.slice(0,-1),"function"==typeof c&&c(null,k),k},b.renderToFile=function(a,d,e,f){void 0===f&&(f=e,e=void 0);let g=c(29021),h=b.render(d,e);g.writeFile(a,h,f)}},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76708:a=>{a.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},76760:a=>{"use strict";a.exports=require("node:path")},78908:a=>{"use strict";a.exports=import("shiki")},79428:a=>{"use strict";a.exports=require("buffer")},80183:(a,b,c)=>{"use strict";let d=c(12412).ok,e=c(74075),f=c(28354),g=c(79428).kMaxLength;function h(a){if(!(this instanceof h))return new h(a);a&&a.chunkSize<e.Z_MIN_CHUNK&&(a.chunkSize=e.Z_MIN_CHUNK),e.Inflate.call(this,a),this._offset=void 0===this._offset?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,a&&null!=a.maxLength&&(this._maxLength=a.maxLength)}function i(a,b){b&&process.nextTick(b),a._handle&&(a._handle.close(),a._handle=null)}function j(a,b){var c=new h(b),d=a;if("string"==typeof d&&(d=Buffer.from(d)),!(d instanceof Buffer))throw TypeError("Not a string or buffer");let f=c._finishFlushFlag;return null==f&&(f=e.Z_FINISH),c._processChunk(d,f)}h.prototype._processChunk=function(a,b,c){let f,h;if("function"==typeof c)return e.Inflate._processChunk.call(this,a,b,c);let j=this,k=a&&a.length,l=this._chunkSize-this._offset,m=this._maxLength,n=0,o=[],p=0;this.on("error",function(a){f=a}),d(this._handle,"zlib binding closed");do h=(h=this._handle.writeSync(b,a,n,k,this._buffer,this._offset,l))||this._writeState;while(!this._hadError&&function(a,b){if(j._hadError)return;let c=l-b;if(d(c>=0,"have should not go down"),c>0){let a=j._buffer.slice(j._offset,j._offset+c);if(j._offset+=c,a.length>m&&(a=a.slice(0,m)),o.push(a),p+=a.length,0==(m-=a.length))return!1}return(0===b||j._offset>=j._chunkSize)&&(l=j._chunkSize,j._offset=0,j._buffer=Buffer.allocUnsafe(j._chunkSize)),0===b&&(n+=k-a,k=a,!0)}(h[0],h[1]));if(this._hadError)throw f;if(p>=g)throw i(this),RangeError("Cannot create final Buffer. It would be larger than 0x"+g.toString(16)+" bytes");let q=Buffer.concat(o,p);return i(this),q},f.inherits(h,e.Inflate),a.exports=b=j,b.Inflate=h,b.createInflate=function(a){return new h(a)},b.inflateSync=j},80706:(a,b,c)=>{"use strict";let d=!0,e=c(74075);e.deflateSync||(d=!1);let f=c(67269),g=c(98052);a.exports=function(a,b){if(!d)throw Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let c=new g(b||{}),h=[];h.push(Buffer.from(f.PNG_SIGNATURE)),h.push(c.packIHDR(a.width,a.height)),a.gamma&&h.push(c.packGAMA(a.gamma));let i=c.filterData(a.data,a.width,a.height),j=e.deflateSync(i,c.getDeflateOptions());if(i=null,!j||!j.length)throw Error("bad png - invalid compressed data response");return h.push(c.packIDAT(j)),h.push(c.packIEND()),Buffer.concat(h)}},81754:(a,b)=>{let c=new Uint8Array(512),d=new Uint8Array(256),e=1;for(let a=0;a<255;a++)c[a]=e,d[e]=a,256&(e<<=1)&&(e^=285);for(let a=255;a<512;a++)c[a]=c[a-255];b.log=function(a){if(a<1)throw Error("log("+a+")");return d[a]},b.exp=function(a){return c[a]},b.mul=function(a,b){return 0===a||0===b?0:c[d[a]+d[b]]}},81769:a=>{"use strict";let b=a.exports=function(a){this._buffer=a,this._reads=[]};b.prototype.read=function(a,b){this._reads.push({length:Math.abs(a),allowLess:a<0,func:b})},b.prototype.process=function(){for(;this._reads.length>0&&this._buffer.length;){let a=this._reads[0];if(this._buffer.length&&(this._buffer.length>=a.length||a.allowLess)){this._reads.shift();let b=this._buffer;this._buffer=b.slice(a.length),a.func.call(this,b.slice(0,a.length))}else break}return this._reads.length>0?Error("There are some read requests waitng on finished stream"):this._buffer.length>0?Error("unrecognised content at end of stream"):void 0}},83670:a=>{"use strict";a.exports=function(a,b){let c=b.depth,d=b.width,e=b.height,f=b.colorType,g=b.transColor,h=b.palette,i=a;return 3===f?!function(a,b,c,d,e){let f=0;for(let g=0;g<d;g++)for(let d=0;d<c;d++){let c=e[a[f]];if(!c)throw Error("index "+a[f]+" not in palette");for(let a=0;a<4;a++)b[f+a]=c[a];f+=4}}(a,i,d,e,h):(g&&function(a,b,c,d,e){let f=0;for(let g=0;g<d;g++)for(let d=0;d<c;d++){let c=!1;if(1===e.length?e[0]===a[f]&&(c=!0):e[0]===a[f]&&e[1]===a[f+1]&&e[2]===a[f+2]&&(c=!0),c)for(let a=0;a<4;a++)b[f+a]=0;f+=4}}(a,i,d,e,g),8!==c&&(16===c&&(i=Buffer.alloc(d*e*4)),!function(a,b,c,d,e){let f=Math.pow(2,e)-1,g=0;for(let e=0;e<d;e++)for(let d=0;d<c;d++){for(let c=0;c<4;c++)b[g+c]=Math.floor(255*a[g+c]/f+.5);g+=4}}(a,i,d,e,c))),i}},83929:(a,b)=>{b.isValid=function(a){return!isNaN(a)&&a>=1&&a<=40}},84879:a=>{"use strict";var b={single_source_shortest_paths:function(a,c,d){var e,f,g,h,i,j,k,l={},m={};m[c]=0;var n=b.PriorityQueue.make();for(n.push(c,0);!n.empty();)for(g in f=(e=n.pop()).value,h=e.cost,i=a[f]||{})i.hasOwnProperty(g)&&(j=h+i[g],k=m[g],(void 0===m[g]||k>j)&&(m[g]=j,n.push(g,j),l[g]=f));if(void 0!==d&&void 0===m[d])throw Error(["Could not find a path from ",c," to ",d,"."].join(""));return l},extract_shortest_path_from_predecessor_list:function(a,b){for(var c=[],d=b;d;)c.push(d),a[d],d=a[d];return c.reverse(),c},find_path:function(a,c,d){var e=b.single_source_shortest_paths(a,c,d);return b.extract_shortest_path_from_predecessor_list(e,d)},PriorityQueue:{make:function(a){var c,d=b.PriorityQueue,e={};for(c in a=a||{},d)d.hasOwnProperty(c)&&(e[c]=d[c]);return e.queue=[],e.sorter=a.sorter||d.default_sorter,e},default_sorter:function(a,b){return a.cost-b.cost},push:function(a,b){this.queue.push({value:a,cost:b}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};a.exports=b},86491:(a,b)=>{let c="\x1b[37m",d="\x1b[30m",e="\x1b[0m",f="\x1b[47m"+d,g="\x1b[40m"+c,h=function(a,b,c,d){let e=b+1;return c>=e||d>=e||d<-1||c<-1?"0":c>=b||d>=b||d<0||c<0?"1":a[d*b+c]?"2":"1"},i=function(a,b,c,d){return h(a,b,c,d)+h(a,b,c,d+1)};b.render=function(a,b,h){var j,k;let l=a.modules.size,m=a.modules.data,n=!!(b&&b.inverse),o=b&&b.inverse?g:f,p={"00":e+" "+o,"01":e+(j=n?d:c)+"▄"+o,"02":e+(k=n?c:d)+"▄"+o,10:e+j+"▀"+o,11:" ",12:"▄",20:e+k+"▀"+o,21:"▀",22:"█"},q=e+"\n"+o,r=o;for(let a=-1;a<l+1;a+=2){for(let b=-1;b<l;b++)r+=p[i(m,l,b,a)];r+=p[i(m,l,l,a)]+q}return r+=e,"function"==typeof h&&h(null,r),r}},87564:(a,b,c)=>{"use strict";c.d(b,{AppShell:()=>dG});var d=c(48249),e=c(67484),f=c.n(e),g=c(19099);function h(a,b=Date.now()){let c=new Date(a).getTime();if(!Number.isFinite(c))return"";let d=b-c,e=Math.floor(d/6e4),f=Math.floor(d/36e5),g=Math.floor(d/864e5);return e<1?"just now":e<60?`${e}m ago`:f<24?`${f}h ago`:g<7?`${g}d ago`:new Date(c).toLocaleDateString()}function i(a,b){let c=b&&a.startsWith(b)?`~${a.slice(b.length)}`:a,d=c.includes("/")?"/":"\\",e=c.split(d).filter(Boolean);return e.length<=2?c:`…/${e.slice(-2).join(d)}`}function j(a,b){if(!a)return"No Project";let c=a.replace(/[\\/]+$/,""),d=c.includes("/")?"/":"\\";return c.split(d).filter(Boolean).pop()||i(a,b)}function k({node:a,selectedSessionId:b,onSelectSession:c,onRenamed:f,onSessionDeleted:g,depth:h,runningSessionIds:i}){let[j,m]=(0,e.useState)(!1),n=a.children.length>0;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{position:"relative"},children:[h>0&&(0,d.jsx)("div",{style:{position:"absolute",left:12*h+6,top:0,bottom:0,width:1,background:"var(--border)",pointerEvents:"none"}}),(0,d.jsx)(l,{session:a.session,isSelected:a.session.id===b,onClick:()=>c(a.session),onRenamed:f,onDeleted:a=>g?.(a),depth:h,hasChildren:n,collapsed:j,onToggleCollapse:()=>m(a=>!a),isRunning:i.has(a.session.id)})]}),n&&!j&&(0,d.jsx)("div",{children:a.children.map(a=>(0,d.jsx)(k,{node:a,selectedSessionId:b,onSelectSession:c,onRenamed:f,onSessionDeleted:g,depth:h+1,runningSessionIds:i},a.session.id))})]})}function l({session:a,isSelected:b,onClick:c,onRenamed:f,onDeleted:g,depth:i=0,hasChildren:j=!1,collapsed:k=!1,onToggleCollapse:m,isRunning:n=!1}){let[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!1),y=(0,e.useRef)(null),z=a.name||a.firstMessage.slice(0,50)||a.id.slice(0,12),A=(0,e.useCallback)(b=>{b.stopPropagation(),t(a.name??""),r(!0),setTimeout(()=>y.current?.select(),0)},[a.name]),B=(0,e.useCallback)(async()=>{let b=s.trim();if(r(!1),b!==(a.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(a.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})}),f?.()}catch{}},[s,a.id,a.name,f]),C=(0,e.useCallback)(a=>{a.stopPropagation(),v(!0)},[]),D=(0,e.useCallback)(async b=>{b.stopPropagation(),v(!1),x(!0);try{await fetch(`/api/sessions/${encodeURIComponent(a.id)}`,{method:"DELETE"}),g?.(a.id)}catch{x(!1)}},[a.id,g]),E=(0,e.useCallback)(a=>{a.stopPropagation(),v(!1)},[]);return(0,d.jsx)("div",{onClick:u||q?void 0:c,onMouseEnter:()=>p(!0),onMouseLeave:()=>{p(!1)},style:{display:"flex",alignItems:"center",padding:"7px 8px",paddingLeft:i>0?12*i+14:14,paddingRight:8,cursor:u||q?"default":"pointer",background:u?"rgba(239,68,68,0.06)":b?"var(--bg-selected)":o?"var(--bg-hover)":"transparent",borderLeft:u?"2px solid #ef4444":b?"2px solid var(--accent)":"2px solid transparent",transition:"background 0.1s",opacity:w?.5:1,gap:6,overflow:"hidden"},children:u?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["Delete ",(0,d.jsxs)("span",{style:{fontWeight:600},children:["“",z.slice(0,22),z.length>22?"…":"","”"]}),"?"]}),(0,d.jsxs)("div",{style:{display:"flex",gap:5,flexShrink:0},children:[(0,d.jsxs)("button",{onClick:D,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:4,height:30,padding:"0 11px",background:"#ef4444",border:"none",borderRadius:6,color:"#fff",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,d.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,d.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,d.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}),"Delete"]}),(0,d.jsx)("button",{onClick:E,style:{display:"flex",alignItems:"center",justifyContent:"center",height:30,padding:"0 11px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:500,whiteSpace:"nowrap"},children:"Cancel"})]})]}):q?(0,d.jsx)("input",{ref:y,value:s,onChange:a=>t(a.target.value),onBlur:B,onKeyDown:a=>{"Enter"===a.key&&B(),"Escape"===a.key&&r(!1)},autoFocus:!0,style:{flex:1,fontSize:12,padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",height:28}}):(0,d.jsxs)(d.Fragment,{children:[i>0&&(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),0===i&&(0,d.jsx)("span",{"aria-hidden":"true",style:{width:n?7:5,height:n?7:5,borderRadius:"50%",background:n?"#22c55e":b?"var(--accent)":"var(--text-dim)",opacity:b?1:.35,flexShrink:0,...n?{boxShadow:"0 0 6px rgba(34,197,94,0.5)",animation:"pulse 2s infinite"}:{}}}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:1},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:b?600:500,lineHeight:"18px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)"},title:z,children:z}),(0,d.jsxs)("div",{style:{display:"flex",gap:8,color:"var(--text-dim)",fontSize:11},children:[(0,d.jsx)("span",{title:a.modified,children:h(a.modified)}),(0,d.jsxs)("span",{children:[a.messageCount," msgs"]}),!1===a.cwdExists&&(0,d.jsx)("span",{title:`Project path missing: ${a.cwd}`,style:{color:"#f87171"},children:"missing path"})]})]}),j&&(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),m?.()},title:k?"Expand forks":"Collapse forks",style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",transform:k?"rotate(-90deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})}),o&&(0,d.jsxs)("div",{style:{display:"flex",gap:4,flexShrink:0},children:[(0,d.jsx)("button",{onClick:A,title:"Rename",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-selected)",a.currentTarget.style.color="var(--accent)",a.currentTarget.style.borderColor="rgba(37,99,235,0.35)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.borderColor="var(--border)"},children:(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})})}),(0,d.jsx)("button",{onClick:C,title:"Delete",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="rgba(239,68,68,0.08)",a.currentTarget.style.color="#ef4444",a.currentTarget.style.borderColor="rgba(239,68,68,0.35)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.borderColor="var(--border)"},children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,d.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,d.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,d.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]})})]})]})})}function m({pinned:a,onToggle:b}){return(0,d.jsx)("button",{type:"button",onClick:b,title:a?"Unpin project":"Pin project to sidebar",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:"auto",padding:0,border:"1px solid var(--border)",borderRadius:7,background:a?"rgba(234,179,8,0.12)":"var(--bg-hover)",color:a?"#ca8a04":"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:a?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 17v5"}),(0,d.jsx)("path",{d:"M5 3h14l-4 7v4l-6 3v-7L5 3Z"})]})})}function n({project:a,homeDir:b,isCurrent:c,onSelect:f,onTogglePinned:g}){let[h,i]=(0,e.useState)(!1),k=a.displayName||j(a.cwd,b);return(0,d.jsxs)("div",{onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),style:{display:"flex",alignItems:"center",gap:4,background:c?"var(--bg-selected)":h?"var(--bg-hover)":"none",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)("span",{style:{width:10,marginLeft:6,flexShrink:0}}),(0,d.jsxs)("button",{type:"button",onClick:f,title:a.cwd,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:7,padding:"8px 10px 8px 0",background:"none",border:"none",color:c?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[c?(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,d.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),(0,d.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:k}),!a.exists&&(0,d.jsx)("span",{style:{flexShrink:0,color:"#f87171",fontSize:10},children:"missing"})]}),(0,d.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),g()},title:"Pin to sidebar",tabIndex:h?0:-1,style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,marginRight:4,padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,opacity:+!!h,pointerEvents:h?"auto":"none"},children:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 17v5"}),(0,d.jsx)("path",{d:"M5 3h14l-4 7v4l-6 3v-7L5 3Z"})]})})]})}function o({dropdownRef:a,open:b,onToggle:c,onClose:e,effectiveCwd:f,effectiveName:g,projects:h,homeDir:j,onChooseProject:k,onTogglePinned:l}){return(0,d.jsxs)("div",{ref:a,style:{position:"relative",marginTop:8,padding:"0 10px",display:"flex",alignItems:"stretch",gap:4},children:[(0,d.jsxs)("button",{type:"button",onClick:()=>c(),style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:6,padding:"6px 10px",background:f?"var(--bg-hover)":"rgba(37,99,235,0.06)",border:f?"1px solid var(--border)":"1px solid rgba(37,99,235,0.4)",borderRadius:7,cursor:"pointer",fontSize:12,color:"var(--text)",textAlign:"left"},title:f??"Select project",children:[(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.35",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--accent)"},children:(0,d.jsx)("path",{d:"M1.5 5A1.5 1.5 0 0 1 3 3.5h3l1.2 1.5H13A1.5 1.5 0 0 1 14.5 6.5L13.6 11A1.5 1.5 0 0 1 12.1 12.5H3A1.5 1.5 0 0 1 1.5 11V5Z"})}),(0,d.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11,color:f?"var(--text)":"var(--text-dim)"},children:f?h.find(a=>a.cwd===f)?.displayName??g??i(f,j):"Select project…"}),(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:b?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),f&&(0,d.jsx)(m,{pinned:h.find(a=>a.cwd===f)?.pinned===!0,onToggle:()=>l(f,h.find(a=>a.cwd===f)?.pinned!==!0)}),b&&(0,d.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 4px)",left:10,right:10,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden",maxHeight:280,overflowY:"auto"},children:[0===h.length&&(0,d.jsx)("div",{style:{padding:"10px 12px",color:"var(--text-dim)",fontSize:11},children:"No projects yet"}),h.map(a=>{let b=a.cwd===f;return(0,d.jsx)(n,{project:a,homeDir:j,isCurrent:b,onSelect:()=>{k(a.cwd),e()},onTogglePinned:()=>l(a.cwd,!0!==a.pinned)},a.cwd)})]})]})}function p(a,b){let c=b&&a.startsWith(b)?"~"+a.slice(b.length):a,d=c.includes("/")?"/":"\\",e=c.split(d).filter(Boolean);return e.length<=2?c:"..."+d+e.slice(-2).join(d)}function q(a){let b=new Date(a);return Number.isNaN(b.getTime())?"":b.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function r({open:a,cwd:b,homeDir:c,onClose:f,onSelectSession:g}){let[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)("current"),[l,m]=(0,e.useState)([]),[n,o]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(!1),w=(0,e.useRef)(null);if(!a)return null;let x=h.trim(),y=l.reduce((a,b)=>a+b.matches.length,0);return(0,d.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":"Search conversation history",style:{position:"fixed",inset:0,zIndex:500,display:"flex",alignItems:"flex-start",justifyContent:"center",padding:"8vh 16px 16px",background:"rgba(0,0,0,0.28)"},onMouseDown:a=>{a.target===a.currentTarget&&f()},children:(0,d.jsxs)("div",{style:{width:"min(760px, 100%)",maxHeight:"78vh",display:"flex",flexDirection:"column",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 16px 48px rgba(0,0,0,0.24)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:12,borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:8,padding:"0 10px"},children:[(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 16 16",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"7",cy:"7",r:"4.5"}),(0,d.jsx)("path",{d:"M10.5 10.5 13.5 13.5"})]}),(0,d.jsx)("input",{ref:w,value:h,onChange:a=>i(a.target.value),placeholder:"Search conversation history...",style:{flex:1,minWidth:0,height:38,background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:14}})]}),(0,d.jsx)("button",{type:"button",onClick:f,title:"Close",style:{width:34,height:34,display:"inline-flex",alignItems:"center",justifyContent:"center",background:"none",border:"none",borderRadius:7,color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color="var(--text-dim)"},children:(0,d.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",children:[(0,d.jsx)("path",{d:"M4 4 12 12"}),(0,d.jsx)("path",{d:"M12 4 4 12"})]})})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:10},children:[(0,d.jsx)("div",{style:{display:"inline-flex",padding:2,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:7},children:[{value:"current",label:"Current project",disabled:!b},{value:"all",label:"All history",disabled:!1}].map(a=>(0,d.jsx)("button",{type:"button",disabled:a.disabled,onClick:()=>k(a.value),style:{height:24,padding:"0 9px",background:j===a.value?"var(--bg-selected)":"transparent",border:"none",borderRadius:5,color:a.disabled?"var(--text-dim)":j===a.value?"var(--text)":"var(--text-muted)",cursor:a.disabled?"not-allowed":"pointer",fontSize:11,fontWeight:500},children:a.label},a.value))}),(0,d.jsx)("div",{style:{flex:1,minWidth:0,color:"var(--text-dim)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"current"===j&&b?p(b,c):"Searching every saved session"})]})]}),(0,d.jsxs)("div",{style:{flex:1,overflowY:"auto",minHeight:180},children:[x.length<2&&(0,d.jsx)("div",{style:{padding:28,textAlign:"center",color:"var(--text-muted)",fontSize:13},children:"Type at least 2 characters to search saved conversations."}),x.length>=2&&n&&0===l.length&&(0,d.jsx)("div",{style:{padding:28,textAlign:"center",color:"var(--text-muted)",fontSize:13},children:"Searching..."}),s&&(0,d.jsx)("div",{style:{padding:18,color:"#ef4444",fontSize:13},children:s}),x.length>=2&&!n&&!s&&0===l.length&&(0,d.jsx)("div",{style:{padding:28,textAlign:"center",color:"var(--text-muted)",fontSize:13},children:"No matching conversations found."}),l.map(a=>(0,d.jsxs)("div",{style:{borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{g(a.session),f()},style:{width:"100%",display:"flex",alignItems:"center",gap:10,padding:"10px 12px",background:"var(--bg-panel)",border:"none",borderBottom:"1px solid var(--border)",color:"var(--text)",cursor:"pointer",textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,fontWeight:600},children:a.session.name||a.session.firstMessage||"(no messages)"}),(0,d.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:11},children:q(a.session.modified)})]}),(0,d.jsx)("div",{style:{marginTop:2,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:p(a.session.cwd,c)})]}),a.matchCount>a.matches.length&&(0,d.jsxs)("span",{style:{flexShrink:0,color:"var(--text-muted)",fontSize:11},children:[a.matchCount," matches"]})]}),a.matches.map(b=>(0,d.jsxs)("button",{type:"button",onClick:()=>{g(a.session),f()},style:{width:"100%",padding:"9px 14px 9px 28px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="none"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:3},children:[(0,d.jsx)("span",{style:{minWidth:54,color:"user"===b.role?"var(--accent)":"var(--text-dim)",fontSize:11,fontWeight:600,textTransform:"capitalize"},children:b.role}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:q(b.timestamp)})]}),(0,d.jsx)("div",{style:{fontSize:12,lineHeight:1.45,color:"var(--text-muted)"},children:function(a,b){let c=b.trim();if(!c)return a;let e=a.toLowerCase().indexOf(c.toLowerCase());return e<0?a:(0,d.jsxs)(d.Fragment,{children:[a.slice(0,e),(0,d.jsx)("mark",{style:{background:"rgba(37,99,235,0.16)",color:"var(--text)",borderRadius:3,padding:"0 2px"},children:a.slice(e,e+c.length)}),a.slice(e+c.length)]})}(b.snippet,x)})]},b.entryId))]},a.session.id))]}),(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",padding:"8px 12px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:[(0,d.jsx)("span",{children:y>0?`${y}${u?"+":""} results`:"Esc to close"}),n&&l.length>0&&(0,d.jsx)("span",{children:"Updating..."})]})]})})}let s="Home";function t(a){return a instanceof Error?a.message:String(a)}function u(a,b){let c=a.crumbs.findIndex(b=>b.path===a.home);if(-1===c)return a.crumbs;let d=a.crumbs.slice(c+1);return[{name:b,path:a.home},...d]}function v(a){return a.home.includes("\\")?"\\":"/"}let w={display:"flex",flexDirection:"column",gap:2,flex:"1 1 0",minWidth:256,overflowY:"auto",paddingRight:8},x={width:"100%",display:"flex",alignItems:"center",gap:5,height:28,flex:"none",padding:"0 6px",border:"none",borderRadius:6,background:"transparent",textAlign:"left",cursor:"pointer",color:"var(--text)",fontSize:12.5,fontFamily:"inherit"},y={background:"var(--bg-selected)"},z={flex:"1 1 0",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5};function A({entries:a,selectedPath:b,busy:c,onPick:e,showHidden:f,filterPrefix:g}){let h,i,j,k=(h=null===g?"":g.toLowerCase(),i=a=>(f||!a.hidden||h.startsWith("."))&&a.name.toLowerCase().startsWith(h),j=""!==h&&a.some(i),a.filter(a=>a.path===b||(j?i(a):f||!a.hidden)));return(0,d.jsx)("div",{style:w,role:"list",children:k.map(a=>{let f=a.path===b;return(0,d.jsxs)("button",{type:"button",role:"listitem","aria-current":f||void 0,disabled:c,onClick:()=>e(a),title:a.path,style:{...x,...f?y:null},children:[(0,d.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:f?"var(--accent)":"var(--text-muted)"},children:(0,d.jsx)("path",{d:"M3 6.5A2.5 2.5 0 0 1 5.5 4H10l2 2.5h6.5A2.5 2.5 0 0 1 21 9v8.5A2.5 2.5 0 0 1 18.5 20h-13A2.5 2.5 0 0 1 3 17.5v-11Z"})}),(0,d.jsx)("span",{style:z,children:a.name}),(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--text-dim)"},children:(0,d.jsx)("polyline",{points:"3.5 2 6.5 5 3.5 8"})})]},a.path)})})}function B({open:a,initialPath:b,onClose:c,onSelect:f}){let[g,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(0),[w,x]=(0,e.useState)(null),[y,z]=(0,e.useState)(null),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(null),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(null),K=(0,e.useRef)(0),L=(0,e.useRef)(null),M=(0,e.useRef)(0),N=(0,e.useRef)(!1),O=(0,e.useRef)(!1),P=(0,e.useRef)(null);(0,e.useRef)({parent:null,child:null});let Q=(0,e.useRef)(null),R=(0,e.useRef)(null),S=(0,e.useCallback)((a,b)=>fetch(a?`/api/projects/browse?dir=${encodeURIComponent(a)}`:"/api/projects/browse",{signal:b}).then(async a=>{let b=await a.json();if(!a.ok||b.error)throw Error(b.error??`HTTP ${a.status}`);return b}),[]),T=(0,e.useCallback)(()=>(L.current?.abort(),L.current=null,++K.current),[]),U=(0,e.useCallback)(()=>{p(!1),r(a=>a+1)},[]),V=(0,e.useCallback)(a=>{let b=T(),c=new AbortController;return L.current=c,U(),{seq:b,scan:S(a,c.signal)}},[T,U,S]),W=(0,e.useCallback)(a=>{let b=new AbortController;return L.current=b,U(),S(a,b.signal)},[U,S]),X=(0,e.useCallback)((a,b)=>{let c=b?.closeEditor??!1,d=b?.announce??!1,{seq:e,scan:f}=V(a);n(!0),d&&x(null);let g=()=>{(n(!1),c)?z(null):x(null)};f.then(b=>{if(e!==K.current)return;c||void 0===a||(P.current={directory:a,landed:b.current});let d=!1,f=()=>{d||e!==K.current||(d=!0,h(b),j(null),l(null),g())};if(u(b,"").length<2)return void f();let i=b.crumbs.at(-2);void 0===i?f():(W(i.path).then(a=>{if(e!==K.current)return;let c=v(a),i=a=>"\\"===c?a.toLowerCase():a,k=a.directories.find(a=>i(a.path)===i(b.current));void 0===k?f():(d=!0,h(a),j(k),l(b),g())},()=>{f()}),c&&window.setTimeout(f,200))},a=>{e===K.current&&(n(!1),d&&x(t(a)))})},[V,W]),Y=(0,e.useCallback)(a=>{X(a,{closeEditor:!0,announce:!0})},[X]),Z=(0,e.useCallback)(a=>{let{seq:b,scan:c}=V(a.path);null!==y&&z(null),j(a),l(null),n(!0),x(null),c.then(a=>{b===K.current&&(l(a),n(!1))},a=>{b===K.current&&(n(!1),x(t(a)),j(null))})},[V,y]),$=(0,e.useCallback)(a=>{null!==k&&(h(k),Z(a))},[k,Z]);(0,e.useCallback)(a=>{X(a,{closeEditor:!1,announce:!1})},[X]);let _=(0,e.useCallback)(()=>{T(),n(!1),z(null),x(null),null===k&&j(null),null===g&&Y()},[T,k,g,Y]),aa=k??g,ab=null===aa?[]:u(aa,s);ab.at(-1)?.path,k?.current;let ac=i?.path??g?.current??null,ad=(0,e.useCallback)(()=>{if(null===ac||null===E||G||""===E.trim())return;H(!0),J(null);let a=M.current;fetch("/api/projects/browse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dir:ac,name:E})}).then(async a=>{let b=await a.json();if(!a.ok||b.error)throw Error(b.error??`HTTP ${a.status}`);if("string"!=typeof b.path)throw Error("No path returned");return b.path}).then(b=>{if(a!==M.current)return;H(!1),F(null);let{seq:c,scan:d}=V(ac);n(!0),x(null),d.then(a=>{c===K.current&&(h(a),n(!1),Z({name:E,path:b,hidden:E.startsWith(".")}))},a=>{c===K.current&&(n(!1),x(t(a)))})},b=>{a===M.current&&(H(!1),J(t(b)))})},[ac,E,G,V,Z]),ae={onCompositionStart:()=>{N.current=!0},onCompositionEnd:()=>{N.current=!1}};if(!a)return null;let af=null!==i,ag=null===aa||null===y?null:function(a,b,c){let d,e,f=-1===(d="\\"===v(a)?Math.max(b.lastIndexOf("\\"),b.lastIndexOf("/")):b.lastIndexOf("/"))?null:b.slice(0,d+1);if(null===f)return{directory:null,tail:null};let g=f===(e=v(a),a.current.endsWith(e)?a.current:`${a.current}${e}`)||null!==c&&c.directory===f&&c.landed===a.current;return{directory:f,tail:g?b.slice(f.length):null}}(aa,y,P.current).tail,ah=i?.name??(null===g?"":u(g,s).at(-1)?.name??g.current),ai=null!==E||G,aj=null!==y,ak=aa?.drives??[],al=aa?v(aa):"/";return(0,d.jsxs)("div",{onMouseDown:a=>{a.target===a.currentTarget&&c()},style:{position:"fixed",inset:0,zIndex:1200,display:"flex",alignItems:"center",justifyContent:"center",padding:18,background:"rgba(0,0,0,0.34)"},children:[(0,d.jsxs)("div",{style:{width:"min(680px, 100%)",height:"min(500px, calc(100dvh - 32px))",display:"flex",flexDirection:"column",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 12px 40px rgba(0,0,0,0.25)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,flex:"none",padding:"16px 14px 8px 24px",borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",minHeight:24},children:[(0,d.jsx)("div",{style:{color:"var(--text)",fontSize:15,fontWeight:700},children:"Select project path"}),(0,d.jsx)("button",{type:"button",onClick:c,"aria-label":"Close",title:"Close",style:{width:28,height:28,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:18,lineHeight:1},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--text-muted)"},children:"\xd7"})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,boxSizing:"border-box",minHeight:26,marginLeft:-9,padding:"0 8px",border:`1px solid ${null!==y?"var(--border)":"transparent"}`,borderRadius:8},children:[ak.length>0&&(0,d.jsxs)("select",{value:ak.find(a=>(aa?.current??"").toLowerCase().startsWith(a.toLowerCase()))??"",onChange:a=>{a.target.value&&Y(a.target.value)},disabled:ai,title:"Drive",style:{height:24,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text-muted)",fontSize:11,maxWidth:72},children:[(0,d.jsx)("option",{value:"",children:"Drive"}),ak.map(a=>(0,d.jsx)("option",{value:a,children:a},a))]}),null===y?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{ref:Q,role:"navigation",style:{display:"flex",alignItems:"center",gap:4,flex:"0 1 auto",minWidth:0,overflowX:"auto",scrollbarWidth:"none"},children:ab.map((a,b)=>(0,d.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,flex:"none",minWidth:0},children:[b>0&&(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--text-dim)"},children:(0,d.jsx)("polyline",{points:"3.5 2 6.5 5 3.5 8"})}),(0,d.jsx)("button",{type:"button",disabled:ai,onClick:()=>Y(a.path),title:a.path,style:{border:"none",background:"transparent",padding:0,maxWidth:160,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-muted)",cursor:"pointer"},children:a.name})]},a.path))}),(0,d.jsx)("button",{type:"button","aria-label":"Edit path",title:"Edit path",disabled:ai,onClick:()=>{if(T(),n(!1),O.current=!1,null===g)return void z("");let a=i?.path??g.current;z(a.endsWith(al)?a:`${a}${al}`)},style:{display:"flex",alignItems:"center",justifyContent:"flex-end",flex:"1 0 34px",minWidth:34,height:22,padding:0,border:"none",background:"transparent",cursor:"text"},children:(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)"},children:(0,d.jsx)("path",{d:"M11.3 2.2a1.9 1.9 0 0 1 2.5 2.5L6 12.5 2.5 13.5 3.5 10l7.8-7.8Z"})})})]}):(0,d.jsx)("input",{value:y,autoFocus:!0,"aria-label":"Edit path",disabled:ai,spellCheck:!1,onChange:a=>{T(),n(!1),O.current=!1,z(a.target.value)},...ae,onKeyDown:a=>{"Enter"!==a.key||N.current||(a.preventDefault(),""!==y.trim()&&(O.current=!0,Y(y)))},onBlur:a=>{if(null===y||!document.hasFocus())return;let b=a.currentTarget.closest('[role="dialog"]');null===b||a.relatedTarget instanceof Node&&b.contains(a.relatedTarget)||_()},style:{boxSizing:"border-box",flex:"1 1 0",minWidth:0,height:22,padding:0,border:"none",outline:"none",background:"transparent",fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)"}})]})]}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:"1 1 0",minHeight:0,position:"relative",padding:"16px 16px 16px 24px"},children:[(0,d.jsxs)("div",{ref:R,style:{display:"flex",alignItems:"stretch",flex:"1 1 0",minHeight:0,gap:12,overflowX:"auto",scrollbarWidth:"none"},children:[null!==g&&(0,d.jsx)(A,{entries:g.directories,selectedPath:i?.path??null,busy:ai,onPick:Z,showHidden:C,filterPrefix:null===k?ag:null}),af&&(0,d.jsx)("span",{style:{flex:"none",width:1,background:"var(--border)"}}),af&&null!==k&&(0,d.jsx)(A,{entries:k.directories,selectedPath:null,busy:ai,onPick:$,showHidden:C,filterPrefix:ag})]}),m&&o&&(0,d.jsx)("div",{role:"status",style:{position:"absolute",right:16,bottom:8,padding:"2px 8px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",fontSize:11},children:"Loading…"}),(g?.truncated===!0||k?.truncated===!0)&&(0,d.jsx)("div",{role:"status",style:{padding:"4px 4px 4px 0",color:"var(--text-muted)",fontSize:11},children:"Large directory — list may be incomplete"}),null!==w&&(0,d.jsx)("div",{role:"alert",style:{padding:"4px 4px 4px 0",color:"#f87171",fontSize:11},children:w})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:8,flex:"none",padding:"14px 24px",borderTop:"1px solid var(--border)"},children:[(0,d.jsxs)("button",{type:"button",disabled:null===g||m||ai||aj,onClick:()=>{F(""),J(null)},style:{display:"inline-flex",alignItems:"center",gap:5,height:30,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:null===g||m||ai||aj?"var(--text-dim)":"var(--text-muted)",cursor:null===g||m||ai||aj?"default":"pointer",fontSize:12},children:[(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M8 3v10M3 8h10"})}),"New folder"]}),(0,d.jsxs)("button",{type:"button","aria-pressed":C,disabled:ai,onClick:()=>D(a=>!a),style:{display:"inline-flex",alignItems:"center",gap:4,border:"none",background:"transparent",padding:0,fontSize:12,fontWeight:500,color:C?"var(--text)":"var(--text-muted)",cursor:"pointer",whiteSpace:"nowrap"},children:["Show hidden files",C&&(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"2.5 8.5 6 12 13.5 4.5"})})]}),(0,d.jsx)("div",{style:{flex:"1 1 0"}}),(0,d.jsx)("button",{type:"button",onClick:c,style:{height:32,padding:"0 12px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:"Cancel"}),(0,d.jsx)("button",{type:"button",disabled:null===ac||m||ai||aj,onClick:()=>{null!==ac&&f(ac)},style:{height:32,padding:"0 14px",border:"none",borderRadius:6,background:null===ac||m||ai||aj?"var(--bg-hover)":"var(--accent)",color:null===ac||m||ai||aj?"var(--text-dim)":"#fff",cursor:null===ac||m||ai||aj?"default":"pointer",fontSize:12,fontWeight:650},children:"Open"})]})]}),null!==E&&(0,d.jsx)("div",{onMouseDown:a=>{a.target!==a.currentTarget||G||F(null)},style:{position:"fixed",inset:0,zIndex:1300,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.25)"},children:(0,d.jsxs)("div",{style:{width:"min(380px, 100%)",display:"flex",flexDirection:"column",gap:12,padding:"20px 24px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 12px 40px rgba(0,0,0,0.3)"},children:[(0,d.jsx)("div",{style:{color:"var(--text)",fontSize:15,fontWeight:700},children:"New folder"}),(0,d.jsxs)("div",{style:{color:"var(--text)",fontSize:12.5},children:["in ",(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text-muted)"},children:ah})]}),(0,d.jsx)("input",{value:E,"aria-label":"Folder name",placeholder:"untitled folder",autoFocus:!0,disabled:G,spellCheck:!1,onChange:a=>F(a.target.value),...ae,onKeyDown:a=>{"Enter"!==a.key||N.current||(a.preventDefault(),ad()),"Escape"!==a.key||G||(a.stopPropagation(),F(null))},style:{boxSizing:"border-box",width:"100%",height:36,padding:"0 12px",border:"1px solid var(--border)",borderRadius:8,outline:"none",background:"var(--bg-panel)",fontSize:13,color:"var(--text)"}}),null!==I&&(0,d.jsx)("div",{role:"alert",style:{color:"#f87171",fontSize:11},children:I}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8},children:[(0,d.jsx)("button",{type:"button",disabled:G,onClick:()=>F(null),style:{height:30,padding:"0 12px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:"Cancel"}),(0,d.jsx)("button",{type:"button",disabled:G||""===E.trim(),onClick:ad,style:{height:30,padding:"0 14px",border:"none",borderRadius:6,background:G||""===E.trim()?"var(--bg-hover)":"var(--accent)",color:G||""===E.trim()?"var(--text-dim)":"#fff",cursor:G||""===E.trim()?"default":"pointer",fontSize:12,fontWeight:650},children:G?"Creating…":"Create"})]})]})})]})}let C="AnnoVibe";function D(a){}async function E(a,b){let c=`${a}: HTTP ${b.status}`;try{let d=await b.json();return"string"==typeof d.error&&d.error?`${a}: ${d.error}`:c}catch{return c}}function F(a){return new DOMException(a,"TimeoutError")}function G(a,b){return a instanceof DOMException&&("AbortError"===a.name||"TimeoutError"===a.name)||a instanceof Error&&/aborted without reason|AbortError/i.test(a.message)?b:a instanceof Error?a.message:String(a)}function H(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)(!1),g=(0,e.useRef)(null),h=function(a){let[b,c]=(0,e.useState)(a);return(0,e.useRef)(null),(0,e.useRef)(0),b}(a?"v0.8.143":C),i=(0,e.useCallback)(a=>{b(a),f(!0),setTimeout(()=>f(!1),(a?6:8)*4*(1e3/60)+100)},[]),j=(0,e.useCallback)(()=>{g.current&&clearTimeout(g.current);let b=!a;i(b),b&&(g.current=setTimeout(()=>i(!1),3e3))},[a,i]);return(0,d.jsx)("button",{onClick:j,style:{background:"none",border:"none",padding:0,cursor:"default",fontWeight:700,fontSize:15,letterSpacing:"-0.01em",color:a?"var(--accent)":"var(--text)",fontFamily:"var(--font-mono)",minWidth:"9ch"},children:h})}function I({selectedSessionId:a,onSelectSession:b,onNewSession:c,initialSessionId:f,onInitialRestoreDone:g,restoreSessionId:h,onRestoreSessionDone:i,refreshKey:l,onSessionDeleted:m,selectedCwd:n,onCwdChange:p}){let[q,s]=(0,e.useState)([]),[t,u]=(0,e.useState)({}),[v,w]=(0,e.useState)(()=>new Set),x=(0,e.useRef)(!1),[y,z]=(0,e.useState)(!0),[A,C]=(0,e.useState)(!1),[K,L]=(0,e.useState)(null),[M,N]=(0,e.useState)(null),[O,P]=(0,e.useState)(""),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)(!1),[U,V]=(0,e.useState)("project"),[W,X]=(0,e.useState)(!1),[Y,Z]=(0,e.useState)(()=>new Set),[$,_]=(0,e.useState)(()=>new Set),[aa,ab]=(0,e.useState)(null),[ac,ad]=(0,e.useState)(null),[ae,af]=(0,e.useState)(null),[ag,ah]=(0,e.useState)(!1),ai=(0,e.useRef)(null),aj=(0,e.useRef)(!1),ak=(0,e.useRef)(!1);(0,e.useRef)(!1);let al=(0,e.useRef)(new Map),am=(0,e.useRef)({revision:null,seq:0,retry:0,inFlight:!1}),an=(0,e.useRef)({}),ao=(0,e.useRef)({}),ap=(0,e.useRef)({}),aq=(0,e.useRef)(new Set);function ar(a){let b=an.current[a];return b||(b={revision:null,seq:0,retry:0,inFlight:!1},an.current[a]=b),b}let as=(0,e.useCallback)((a,b,c)=>{let d=ao.current[a];d&&clearTimeout(d),ao.current[a]=setTimeout(()=>{ao.current[a]=null,c()},function(a,b=Math.random){let c=[250,500,1e3,2e3][Math.min(Math.max(a,0),3)]??2e3;return b()*c}(b))},[]);(0,e.useCallback)((a,b)=>{let c=ap.current[a];c&&clearTimeout(c),ap.current[a]=setTimeout(()=>{ap.current[a]=null,b()},120)},[]);let at=(0,e.useCallback)(async(a=!1,b={})=>{let c=am.current,d=++c.seq;c.inFlight=!0;try{let e;a&&z(!0);let f=new AbortController;try{e=setTimeout(()=>f.abort(F("Project loading timed out")),6e4);let a=b.force?"/api/projects?force=1":"/api/projects",g=await fetch(a,{signal:f.signal});if(!g.ok)throw Error(await E("projects",g));let h=await g.json();if(d!==c.seq)return;if(h.stale)return void as("projects",c.retry++,()=>void at(!1));c.retry=0,h.revision&&(c.revision=h.revision),s(h.projects),L(null)}finally{clearTimeout(e)}}catch(b){if(d!==c.seq)return;let a=G(b,"Loading projects timed out. Codex may still be starting; click Refresh to retry.");L(a),as("projects",c.retry++,()=>void at(!1))}finally{d===c.seq&&(c.inFlight=!1),a&&z(!1)}},[as]),au=(0,e.useCallback)(async(a,b=!1,c={})=>{if(!a)return;let d=al.current.get(a);if(d)return d;let e=(async()=>{let d=ar(a),e=++d.seq;d.inFlight=!0,u(b=>({...b,[a]:{sessions:b[a]?.sessions??[],loaded:b[a]?.loaded??!1,error:null,loading:!0,stale:b[a]?.stale??!1}}));try{let f;b&&z(!0);let g=new AbortController;try{f=setTimeout(()=>g.abort(F("Chat loading timed out")),6e4);let b=c.force?`/api/sessions?cwd=${encodeURIComponent(a)}&force=1`:`/api/sessions?cwd=${encodeURIComponent(a)}`,h=await fetch(b,{signal:g.signal});if(!h.ok)throw Error(await E("sessions",h));let i=await h.json();if(e!==d.seq)return;if(i.runningSessionIds&&!x.current&&w(new Set(i.runningSessionIds)),i.stale){u(b=>({...b,[a]:{sessions:b[a]?.sessions??[],loaded:b[a]?.loaded??!1,loading:!1,error:null,stale:(b[a]?.sessions?.length??0)>0}})),as(`cwd:${a}`,d.retry++,()=>void au(a,!1));return}d.retry=0,i.revision&&(d.revision=i.revision),aq.current.add(a),u(b=>({...b,[a]:{sessions:i.sessions,loaded:!0,loading:!1,error:null,stale:!1}}))}finally{clearTimeout(f)}}catch(c){if(e!==d.seq)return;let b=G(c,"Loading chats timed out. Codex may still be starting; click Refresh to retry.");u(c=>({...c,[a]:{sessions:c[a]?.sessions??[],loaded:c[a]?.loaded??!1,loading:!1,error:b,stale:(c[a]?.sessions?.length??0)>0}})),as(`cwd:${a}`,d.retry++,()=>void au(a,!1))}finally{e===d.seq&&(d.inFlight=!1),b&&z(!1),al.current.delete(a)}})();return al.current.set(a,e),e},[as]),av=(0,e.useCallback)(async()=>{let a=am.current;if(a.inFlight)return;let b=a.revision?`/api/projects?fingerprint=1&revision=${encodeURIComponent(a.revision)}`:"/api/projects?fingerprint=1";try{let c=await fetch(b);if(!c.ok)throw Error(await E("projects",c));let d=await c.json();if(d.stale)return void as("projects",a.retry++,()=>void av());if(!0===d.unchanged)return;at(!1)}catch{as("projects",a.retry++,()=>void av())}},[at,as]),aw=(0,e.useCallback)(async a=>{let b=ar(a);if(b.inFlight)return;let c=b.revision?`/api/sessions?cwd=${encodeURIComponent(a)}&fingerprint=1&revision=${encodeURIComponent(b.revision)}`:`/api/sessions?cwd=${encodeURIComponent(a)}&fingerprint=1`;try{let d=await fetch(c);if(!d.ok)throw Error(await E("sessions",d));let e=await d.json();if(e.stale)return void as(`cwd:${a}`,b.retry++,()=>void aw(a));if(!0===e.unchanged)return;au(a,!1)}catch{as(`cwd:${a}`,b.retry++,()=>void aw(a))}},[au,as]);(0,e.useRef)(!1),(0,e.useRef)(!1);let ax=(0,e.useCallback)(async(a,b=!1)=>{try{let c=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,create:b})}),d=await c.json();if(!c.ok||d.error)return R(d.error??`HTTP ${c.status}`),null;return at(!1),d.project?.cwd??a}catch(a){return R(a instanceof Error?a.message:String(a)),null}},[at]),ay=(0,e.useCallback)(a=>{fetch("/api/projects",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,touch:!0})}).catch(()=>{})},[]),az=(0,e.useCallback)(a=>{ak.current=!0,N(a),R(null),_(b=>{if(!b.has(a))return b;let c=new Set(b);return c.delete(a),D(c),c}),p?.(a),ay(a),au(a,!1)},[au,p,ay]);(0,e.useRef)(null);let aA=n??M;(0,e.useRef)(null);let aB=(0,e.useCallback)(a=>{if(!a){V("agent"),T(!0);return}let b="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;c?.(b,a)},[c]),aC=(0,e.useCallback)(async a=>{let b=await ax(a,!0);b&&(az(b),T(!1),R(null),"agent"===U&&aB(b))},[az,aB,U,ax]),aD=(0,e.useCallback)(()=>{aB(aA)},[aB,aA]),aE=(0,e.useCallback)(()=>{V("project"),R(null),T(!0)},[]),aF=(0,e.useMemo)(()=>[...aA&&!q.some(a=>a.cwd===aA)?[{cwd:aA,displayName:j(aA,O),chatCount:t[aA]?.sessions.length??0,lastAccessed:null,created:null,pinned:!1,sortOrder:null,exists:!0,source:"manual"}]:[],...q].sort((a,b)=>{let c=!0===a.pinned;if(c!==(!0===b.pinned))return c?-1:1;let d="number"==typeof a.sortOrder?a.sortOrder:Number.MAX_SAFE_INTEGER,e="number"==typeof b.sortOrder?b.sortOrder:Number.MAX_SAFE_INTEGER;return d!==e?d-e:(a.displayName||"").localeCompare(b.displayName||"",void 0,{numeric:!0,sensitivity:"base"})}),[aA,O,q,t]),aG=(0,e.useMemo)(()=>{let a=a=>{var b,c;let d,e,f=t[a.cwd],g=[...f?.sessions??[]].sort((a,b)=>(b.modified||"").localeCompare(a.modified||"")),h=f?.loaded?f.sessions.length:a.chatCount,i=(b=a.lastAccessed,c=f?.loaded?f.sessions[0]?.modified:null,d=b?new Date(b).getTime():-1/0,e=c?new Date(c).getTime():-1/0,Number.isFinite(d)||Number.isFinite(e)?d>=e?b??null:c??null:null);return{project:a,cwd:a.cwd,displayName:a.displayName||j(a.cwd,O),sessions:g,sessionsState:f,chatCount:h??0,lastAccessed:i??""}},b=aF.filter(a=>!0===a.pinned).map(a);if(aA){let c=aF.find(a=>a.cwd===aA);c&&!0!==c.pinned&&b.push(a(c))}return b},[aA,O,t,aF]),aH=(0,e.useCallback)((a,c=!1)=>{a.cwd!==aA&&(aj.current=!0,N(a.cwd)),_(b=>{if(!b.has(a.cwd))return b;let c=new Set(b);return c.delete(a.cwd),D(c),c}),ay(a.cwd),b(a,c)},[b,aA,ay]),aI=(0,e.useCallback)(a=>{_(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),D(c),c})},[]),aJ=(0,e.useCallback)(a=>{Z(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),aK=(0,e.useCallback)(async a=>{af("reorder");try{let b=await fetch("/api/projects",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:a})}),c=await b.json();if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);L(null),at(!1)}catch(a){L(a instanceof Error?a.message:String(a)),at(!1)}finally{af(null)}},[at]),aL=(0,e.useCallback)(async(a,b)=>{af(`pin:${a}`);try{let c=await fetch("/api/projects",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,pinned:b})}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);L(null),at(!1)}catch(a){L(a instanceof Error?a.message:String(a)),at(!1)}finally{af(null)}},[at]),aM=(0,e.useCallback)((a,b)=>{if(!a||!b||a===b)return;let c=aF.map(a=>a.cwd).filter(Boolean),d=c.indexOf(a),e=c.indexOf(b);if(-1===d||-1===e)return;let f=[...c];f.splice(d,1);let g=f.indexOf(b);f.splice(g,0,a),aK(f)},[aK,aF]),aN=(0,e.useCallback)(async()=>{C(!0);try{await at(!1,{force:!0});let a=new Set([...Object.entries(t).filter(([,a])=>a.loaded||a.loading).map(([a])=>a),...aA?[aA]:[]]);await Promise.all([...a].map(a=>au(a,!1,{force:!0})))}finally{C(!1)}},[aA,at,au,t]);return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"12px 10px 10px",borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsx)(H,{}),(0,d.jsxs)("div",{style:{display:"flex",gap:6,minWidth:0},children:[(0,d.jsxs)("button",{onClick:aD,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,background:"var(--bg-hover)",border:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",height:32,paddingLeft:10,paddingRight:12,borderRadius:7,fontSize:12,fontWeight:500,letterSpacing:"-0.01em",flexShrink:0,transition:"background 0.12s, color 0.12s, border-color 0.12s"},title:aA?`New chat in ${aA}`:"New chat in a project path",onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-selected)",a.currentTarget.style.color="var(--accent)",a.currentTarget.style.borderColor="rgba(37,99,235,0.35)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.borderColor="var(--border)"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"6",y1:"1",x2:"6",y2:"11"}),(0,d.jsx)("line",{x1:"1",y1:"6",x2:"11",y2:"6"})]}),"New Chat"]}),(0,d.jsx)("button",{onClick:()=>X(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",background:"var(--bg-hover)",border:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",width:32,height:32,borderRadius:7,padding:0,flexShrink:0,transition:"background 0.12s, color 0.12s, border-color 0.12s"},title:"Search conversations",onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-selected)",a.currentTarget.style.color="var(--accent)",a.currentTarget.style.borderColor="rgba(37,99,235,0.35)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.borderColor="var(--border)"},children:(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("circle",{cx:"7",cy:"7",r:"4.4"}),(0,d.jsx)("path",{d:"M10.4 10.4 13.2 13.2"})]})})]})]})}),(0,d.jsx)(r,{open:W,cwd:aA,homeDir:O,onClose:()=>X(!1),onSelectSession:a=>{aH(a)}}),(0,d.jsx)(o,{dropdownRef:ai,open:ag,onToggle:()=>ah(a=>!a),onClose:()=>ah(!1),effectiveCwd:aA,effectiveName:aF.find(a=>a.cwd===aA)?.displayName??null,projects:aF,homeDir:O,onChooseProject:az,onTogglePinned:(a,b)=>void aL(a,b)}),(0,d.jsxs)("div",{style:{flexShrink:0,padding:"10px 10px 6px"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase"},children:"Projects"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,marginLeft:"auto"},children:[(0,d.jsx)("button",{type:"button",onClick:aN,disabled:A,title:"Refresh projects and chats","aria-label":"Refresh projects and chats",style:{width:22,height:22,display:"flex",alignItems:"center",justifyContent:"center",padding:0,border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:A?"var(--accent)":"var(--text-dim)",cursor:A?"default":"pointer",flexShrink:0},children:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{animation:A?"spin 0.9s linear infinite":void 0},children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 0 1-15.5 6.2"}),(0,d.jsx)("path",{d:"M3 12A9 9 0 0 1 18.5 5.8"}),(0,d.jsx)("path",{d:"M7 18H5.5v1.5"}),(0,d.jsx)("path",{d:"M17 6h1.5V4.5"})]})}),(0,d.jsx)("button",{type:"button",onClick:aE,title:"New project","aria-label":"New project",style:{width:28,height:28,display:"flex",alignItems:"center",justifyContent:"center",padding:0,border:"none",borderRadius:"50%",background:"transparent",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",style:{flexShrink:0,display:"block"},children:[(0,d.jsx)("path",{transform:"translate(9.52 2.52)",d:"M3.55246 0L3.55246 2.44252L6 2.44252L6 3.55748L3.55246 3.55748L3.55246 6L2.43834 6L2.43834 3.55748L0 3.55748L0 2.44252L2.43834 2.44252L2.43834 0L3.55246 0Z",fill:"currentColor"}),(0,d.jsx)("path",{transform:"translate(0.3496 2.35)",d:"M4.76367 0C5.36861 1.80598e-05 5.93113 0.310294 6.25488 0.821289L6.78027 1.64941C6.79685 1.67558 6.81791 1.69775 6.83887 1.71973C6.72186 2.15521 6.65702 2.61192 6.65137 3.08301C6.25601 2.96045 5.90909 2.70478 5.68164 2.3457L5.15723 1.5166C5.07183 1.38189 4.92318 1.3008 4.76367 1.30078L2.32422 1.30078C1.7589 1.30078 1.30078 1.7589 1.30078 2.32422L1.30078 10.1338C1.30078 10.6991 1.7589 11.1572 2.32422 11.1572L11.9766 11.1572C12.5419 11.1572 13 10.6991 13 10.1338L13 8.58398C13.4545 8.5135 13.8903 8.38748 14.3008 8.21289L14.3008 10.1338C14.3008 11.4171 13.2598 12.458 11.9766 12.458L2.32422 12.458C1.04093 12.458 0 11.4171 0 10.1338L0 2.32422C0 1.04093 1.04093 0 2.32422 0L4.76367 0Z",fill:"currentColor"})]})})]})]}),Q&&(0,d.jsx)("div",{style:{marginTop:6,color:"#f87171",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere"},children:Q})]}),(0,d.jsxs)("div",{style:{flex:"1 1 auto",overflowY:"auto",padding:"6px 8px 8px",minHeight:80,scrollbarWidth:"thin",overscrollBehavior:"contain"},children:[y&&0===q.length&&(0,d.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:"Loading…"}),K&&(0,d.jsx)("div",{style:{padding:"12px 14px",color:"#f87171",fontSize:12},children:K}),!y&&!K&&0===aG.length&&(0,d.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:"Open or create a project to start chatting."}),!y&&!K&&aG.map(b=>{let c,e=$.has(b.cwd),f=b.cwd===aA,g=Y.has(b.cwd),h=function(a){let b=new Map;for(let c of a)b.set(c.id,{session:c,children:[]});let c=new Map;for(let b of a)b.parentSessionId&&c.set(b.id,b.parentSessionId);let d=[];for(let a of b.values()){let e=function(a){let d=new Set([a]),e=null,f=c.get(a);for(;f;){if(d.has(f))return null;d.add(f),!e&&b.has(f)&&(e=f),f=c.get(f)}return e}(a.session.id);e?b.get(e).children.push(a):d.push(a)}let e=a=>{a.sort((a,b)=>(b.session.modified||"").localeCompare(a.session.modified||"")),a.forEach(a=>e(a.children))};return e(d),d}(b.sessions),i=h.length,j=h;if(i>10&&!g){j=h.slice(0,10);let b=h.find(b=>(function a(b,c){return!!c&&(b.session.id===c||b.children.some(b=>a(b,c)))})(b,a));b&&!j.includes(b)&&(j=[...j,b])}let l=i-j.length;return(0,d.jsxs)("div",{style:{marginBottom:6,borderTop:ac===b.cwd?"2px solid var(--accent)":"2px solid transparent",paddingTop:2*(ac===b.cwd),opacity:aa===b.cwd?.55:1},onDragOver:a=>{aa&&aa!==b.cwd&&(a.preventDefault(),a.dataTransfer.dropEffect="move",ad(b.cwd))},onDragLeave:()=>{ac===b.cwd&&ad(null)},onDrop:a=>{a.preventDefault();let c=a.dataTransfer.getData("text/project-cwd")||aa;ad(null),ab(null),c&&aM(c,b.cwd)},children:[(0,d.jsx)(J,{group:b,isCurrent:f,isCollapsed:e,isDragging:aa===b.cwd,pinBusy:ae===`pin:${b.cwd}`,onToggle:()=>aI(b.cwd),onSelect:()=>az(b.cwd),onTogglePinned:()=>void aL(b.cwd,!0!==b.project.pinned),onDragStart:a=>{ab(b.cwd),a.dataTransfer.effectAllowed="move",a.dataTransfer.setData("text/project-cwd",b.cwd)},onDragEnd:()=>{ab(null),ad(null)}}),!e&&(0,d.jsxs)("div",{style:{marginTop:2,overflow:"hidden",borderRadius:7},children:[(c=b.sessionsState,c?.loading&&!c?.loaded?(0,d.jsx)("div",{style:{width:"100%",padding:"10px 12px",color:"var(--text-dim)",textAlign:"left",fontSize:12,fontStyle:"italic"},children:"Loading chats…"}):c?.error&&!c?.stale?(0,d.jsx)("div",{style:{width:"100%",padding:"10px 12px",color:"#f87171",textAlign:"left",fontSize:12},children:c.error}):0===b.sessions.length?(0,d.jsx)("div",{style:{width:"100%",padding:"10px 12px",color:"var(--text-muted)",textAlign:"left",fontSize:12},children:"No sessions yet. Use New Chat above to start one."}):(0,d.jsxs)(d.Fragment,{children:[c?.stale&&(0,d.jsx)("div",{style:{width:"100%",padding:"4px 12px",color:"var(--text-dim)",textAlign:"left",fontSize:10,fontStyle:"italic"},children:"Showing cached data — refresh failed"}),j.map(c=>(0,d.jsx)(k,{node:c,selectedSessionId:a,onSelectSession:aH,onRenamed:()=>void au(b.cwd,!1),onSessionDeleted:a=>{m?.(a),au(b.cwd,!1)},depth:0,runningSessionIds:v},c.session.id))]})),(g||l>0)&&i>10&&(0,d.jsx)("button",{type:"button",onClick:()=>aJ(b.cwd),style:{width:"100%",padding:"6px 10px",background:"transparent",border:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:11,textAlign:"center"},children:g?"Show less":`Show ${Math.max(0,l)} more`})]})]},b.cwd||"__no_project")})]}),(0,d.jsx)(B,{open:S,initialPath:aA,onClose:()=>T(!1),onSelect:a=>aC(a)})]})}function J({group:a,isCurrent:b,isCollapsed:c,isDragging:f,pinBusy:g,onToggle:i,onSelect:j,onTogglePinned:k,onDragStart:l,onDragEnd:m}){let[n,o]=(0,e.useState)(!1),p=a.lastAccessed,q=Math.max(0,a.chatCount??0),r=!0===a.project.pinned,s=(0,e.useCallback)(()=>{b?i():j()},[b,j,i]);return(0,d.jsxs)("div",{role:"button",tabIndex:0,draggable:!0,onClick:s,onDragStart:l,onDragEnd:m,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),s())},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),title:a.cwd,style:{width:"100%",height:32,display:"flex",alignItems:"center",gap:5,padding:"0 8px",background:b?"var(--bg-selected)":n?"var(--bg-hover)":"transparent",border:"none",borderRadius:6,color:"var(--text)",cursor:f?"grabbing":"pointer",textAlign:"left",overflow:"hidden",transition:"background 0.12s, opacity 0.12s",opacity:f?.55:1},children:[(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round",style:{transform:c?"none":"rotate(90deg)",transition:"transform 0.15s",flexShrink:0,color:"var(--text-dim)"},children:(0,d.jsx)("polyline",{points:"3 2 7 5 3 8"})}),(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.35",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:b?"var(--accent)":"var(--text-dim)"},children:c?(0,d.jsx)("path",{d:"M1.5 4.5A1.5 1.5 0 0 1 3 3h3l1.2 1.5H13A1.5 1.5 0 0 1 14.5 6v5A1.5 1.5 0 0 1 13 12.5H3A1.5 1.5 0 0 1 1.5 11V4.5Z"}):(0,d.jsx)("path",{d:"M1.5 5A1.5 1.5 0 0 1 3 3.5h3l1.2 1.5H13A1.5 1.5 0 0 1 14.5 6.5L13.6 11A1.5 1.5 0 0 1 12.1 12.5H3A1.5 1.5 0 0 1 1.5 11V5Z"})}),(0,d.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,fontWeight:b?650:560,color:"var(--text)"},children:a.displayName}),!a.project.exists&&(0,d.jsx)("span",{style:{flexShrink:0,color:"#f87171",fontSize:10},children:"missing"}),!n&&q>0&&(0,d.jsxs)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10,whiteSpace:"nowrap"},children:[q," ",1===q?"chat":"chats"]}),!n&&p&&(0,d.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10,whiteSpace:"nowrap"},children:h(p)}),r?(0,d.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),k()},title:"Unpin project",tabIndex:n?0:-1,style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,border:"none",borderRadius:5,background:"rgba(234,179,8,0.12)",color:"#ca8a04",cursor:"pointer",flexShrink:0,opacity:n?1:.85,transition:"opacity 0.12s"},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 17v5"}),(0,d.jsx)("path",{d:"M5 3h14l-4 7v4l-6 3v-7L5 3Z"})]})}):(0,d.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),k()},disabled:g,title:"Pin project to sidebar",tabIndex:n?0:-1,style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:g?"wait":"pointer",flexShrink:0,opacity:+!!n,transition:"opacity 0.12s, background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="#ca8a04"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 17v5"}),(0,d.jsx)("path",{d:"M5 3h14l-4 7v4l-6 3v-7L5 3Z"})]})}),(0,d.jsx)("span",{title:"Drag to reorder",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:18,height:22,flexShrink:0,color:"var(--text-dim)",opacity:n?1:.35,transition:"opacity 0.12s",cursor:"grab"},children:(0,d.jsxs)("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"currentColor",children:[(0,d.jsx)("circle",{cx:"2",cy:"2",r:"1"}),(0,d.jsx)("circle",{cx:"8",cy:"2",r:"1"}),(0,d.jsx)("circle",{cx:"2",cy:"6",r:"1"}),(0,d.jsx)("circle",{cx:"8",cy:"6",r:"1"}),(0,d.jsx)("circle",{cx:"2",cy:"10",r:"1"}),(0,d.jsx)("circle",{cx:"8",cy:"10",r:"1"})]})})]})}c(81537);let K="annovibe:last-open-by-workspace";function L(a){let b=a.trim();if(!b)return"";let c=b.replace(/\\/g,"/");return c.length>1?c.replace(/\/+$/,""):c}function M(a){try{let b=a.getItem(K);if(!b)return{};let c=JSON.parse(b);return c&&"object"==typeof c&&!Array.isArray(c)?c:{}}catch{return{}}}function N(a,b){try{a.setItem(K,JSON.stringify(b))}catch{}}function O(a,b,c=null){if(!c||!a||!b)return;let d=L(a);if(!d)return;let e=M(c);e[d]!==b&&(e[d]=b,N(c,e))}var P=c(84963),Q=c(29947);let R=new Map,S=new Map;function T(a){a&&S.delete(a)}let U=["auto","off","minimal","low","medium","high","xhigh"],V={auto:"沿用 pi 默认设置",off:"关闭推理",minimal:"最少推理",low:"低强度推理",medium:"中等推理",high:"高强度推理",xhigh:"最高强度推理"};function W({triggerRef:a,panelRef:b,open:c,pane:e,anchorRect:f,isMobile:g,isStreaming:h,mobileCompactButtonSize:i,mobileCompactButtonPadding:j,mobileSheetStyle:k,currentName:l,mobileModelSummary:m,groups:n,model:o,canAdjustThinking:p,thinkingLabel:q,thinkingLevel:r,thinkingLevelMap:s,availableThinkingLevels:t,onToggle:u,onClose:v,onPaneChange:w,onModelChange:x,onThinkingLevelChange:y}){let z=a=>(0,d.jsx)("svg",{width:a,height:a,viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,d.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}),A=(a,b)=>(0,d.jsx)("svg",{width:a,height:a,viewBox:"0 0 24 24",fill:"none",style:{flexShrink:0,...b},children:(0,d.jsx)("path",{d:"M9 6l6 6-6 6",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})}),B=a=>{a.currentTarget.style.background="var(--bg-hover)"},C=a=>{a.currentTarget.style.background="transparent"},D={display:"flex",alignItems:"center",gap:8,width:"100%",height:40,padding:"0 10px",border:"none",borderRadius:10,background:"transparent",color:"var(--text)",fontSize:14,lineHeight:"22px",cursor:"pointer",textAlign:"left",fontFamily:"inherit"},E={display:"flex",alignItems:"center",gap:8,width:"100%",minHeight:38,padding:"6px 8px",border:"none",borderRadius:10,background:"transparent",color:"var(--text)",textAlign:"left",cursor:"pointer",fontFamily:"inherit"},F={position:"sticky",top:0,zIndex:1,padding:"5px 8px 3px",background:"var(--bg-panel)",color:"var(--text-dim)",fontSize:12,lineHeight:"18px",fontWeight:500},G=U.filter(a=>!t||"auto"===a||t.includes(a)),H=(0,d.jsxs)(d.Fragment,{children:["root"===e&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{onClick:()=>w("model"),role:"menuitem",style:D,onMouseEnter:B,onMouseLeave:C,children:[(0,d.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"模型"}),(0,d.jsx)("span",{style:{flex:"0 1 auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:13},children:m}),A(14,{color:"var(--text-dim)"})]}),p&&l&&(0,d.jsxs)("button",{onClick:()=>w("effort"),role:"menuitem",style:D,onMouseEnter:B,onMouseLeave:C,children:[(0,d.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"推理强度"}),(0,d.jsx)("span",{style:{flex:"0 1 auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:13},children:q}),A(14,{color:"var(--text-dim)"})]})]}),"model"===e&&(0,d.jsx)("div",{style:{minHeight:0,overflowY:"auto"},children:n.map(a=>(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:F,children:a.provider}),a.options.map(a=>{let b=a.modelId===o?.modelId&&a.provider===o?.provider,c=a.input&&a.input.length>0?a.input.join(" \xb7 "):void 0;return(0,d.jsxs)("button",{onClick:()=>{v(),b||x(a.provider,a.modelId)},role:"menuitemradio","aria-checked":b,style:E,onMouseEnter:B,onMouseLeave:C,children:[(0,d.jsxs)("span",{style:{display:"flex",flex:1,flexDirection:"column",minWidth:0},children:[(0,d.jsx)("span",{style:{overflow:"hidden",color:"inherit",fontSize:14,lineHeight:"20px",fontWeight:500,textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name}),void 0!==c&&(0,d.jsx)("span",{style:{overflow:"hidden",color:"var(--text-dim)",fontSize:12,lineHeight:"18px",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c})]}),(0,d.jsx)("span",{style:{display:"grid",placeItems:"center",flex:"0 0 18px",color:"var(--text)"},children:b?z(14):null})]},`${a.provider}:${a.modelId}`)})]},a.provider))}),"effort"===e&&p&&(0,d.jsx)("div",{style:{minHeight:0,overflowY:"auto"},children:G.map(a=>{let b=(r??"auto")===a,c="auto"!==a?s?.[a]:void 0,e="auto"===a?"Default":null!=c&&c!==a?c:a,f="auto"!==a&&null!=c&&c!==a;return(0,d.jsxs)("button",{onClick:()=>{v(),b||y?.(a)},role:"menuitemradio","aria-checked":b,style:E,onMouseEnter:B,onMouseLeave:C,children:[(0,d.jsxs)("span",{style:{display:"flex",flex:1,flexDirection:"column",minWidth:0},children:[(0,d.jsxs)("span",{style:{overflow:"hidden",color:"inherit",fontSize:14,lineHeight:"20px",fontWeight:500,textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e,f&&(0,d.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginLeft:5},children:["(",a,")"]})]}),(0,d.jsx)("span",{style:{overflow:"hidden",color:"var(--text-dim)",fontSize:12,lineHeight:"18px",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:V[a]})]}),(0,d.jsx)("span",{style:{display:"grid",placeItems:"center",flex:"0 0 18px",color:"var(--text)"},children:b?z(14):null})]},a)})})]}),I=f?0-f.top+6:0,J=f?Math.max(120,Math.min(f.top-8,0)):240,K=f?Math.max(8,0-(f.left+f.width)):0;return(0,d.jsxs)("div",{ref:a,style:{position:"relative",flex:g?"1 1 160px":void 0,minWidth:0},children:[(0,d.jsxs)("button",{onClick:a=>{let b;u(g?null:{top:(b=a.currentTarget.getBoundingClientRect()).top,left:b.left,width:b.width})},disabled:h,title:"选择模型与推理强度",style:{display:"flex",alignItems:"center",gap:4,height:g?i:28,padding:g?j:"0 4px 0 8px",width:g?"100%":void 0,maxWidth:g?"100%":220,overflow:"hidden",background:c?"var(--bg-hover)":"transparent",border:"none",borderRadius:24,color:"var(--text-muted)",cursor:h?"not-allowed":"pointer",fontSize:g?11:13,lineHeight:g?void 0:"20px",fontWeight:g?void 0:500,opacity:h?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{h||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=c?"var(--bg-hover)":"transparent",a.currentTarget.style.color="var(--text-muted)"},children:[(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:l??"Select model"}),p&&l&&(0,d.jsx)("span",{style:{flex:"0 0 auto",color:"var(--text-dim)"},children:q}),(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",style:{flex:"0 0 auto",color:"var(--text-dim)",transform:c?"rotate(180deg)":"none",transition:"transform 120ms ease"},children:(0,d.jsx)("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),c&&(g?(0,d.jsxs)("div",{ref:b,style:{...k,display:"flex",flexDirection:"column"},children:[(0,d.jsxs)("div",{style:{padding:"8px 12px 6px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:["root"!==e&&(0,d.jsx)("button",{onClick:()=>w("root"),"aria-label":"返回",style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,flexShrink:0,background:"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:"pointer"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="none"},children:(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:(0,d.jsx)("path",{d:"M15 6l-6 6 6 6",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,d.jsx)("div",{style:{fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"model"===e?"Models":"effort"===e?"推理强度":"模型"})]}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text)",marginTop:2},children:"effort"===e?q:m})]}),H]}):f&&(0,d.jsx)("div",{ref:b,role:"menu","aria-label":"模型与推理等级",onKeyDown:a=>{("ArrowDown"===a.key||"ArrowUp"===a.key)&&(a.preventDefault(),(a=>{let c=b.current;if(!c)return;let d=Array.from(c.querySelectorAll('button[role="menuitem"], button[role="menuitemradio"]'));if(0===d.length)return;let e=(Math.max(d.findIndex(a=>a===document.activeElement),0)+a+d.length)%d.length;d[e]?.focus()})("ArrowDown"===a.key?1:-1))},style:{position:"fixed",bottom:I,right:K,zIndex:500,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 12px 28px -10px rgba(0,0,0,0.28)",width:"min(240px, calc(100vw - 32px))",maxHeight:J,overflow:"hidden",display:"flex",flexDirection:"column",padding:4},children:H}))]})}function X({open:a,triggerRef:b,sheetStyle:c,cardButtonStyle:e,iconColor:f,canSelectModel:g,canAdjustThinking:h,canAdjustTools:i,canAdjustMemory:j,mobileModelSummary:k,thinkingLabel:l,mobileToolSummary:m,displayMemoryLabel:n,memoryEnabled:o,onToggle:p,onOpenModel:q,onOpenTools:r,onOpenMemory:s}){return(0,d.jsxs)("div",{ref:b,style:{position:"relative",flexShrink:0},children:[(0,d.jsx)("button",{onClick:()=>p(),title:"更多设置",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,padding:0,background:a?"var(--bg-hover)":"none",border:"none",borderRadius:8,color:f,cursor:"pointer",transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:b=>{b.currentTarget.style.background=a?"var(--bg-hover)":"none",b.currentTarget.style.color=a?"var(--text)":"var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("circle",{cx:"5",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"19",cy:"12",r:"1.5"})]})}),a&&(0,d.jsxs)("div",{style:{...c,zIndex:510,padding:"6px",display:"flex",flexDirection:"column",gap:4},children:[(0,d.jsx)("div",{style:{padding:"4px 6px 2px",fontSize:10,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"More"}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",padding:"0 6px 4px"},children:"模型、推理、工具等设置已收进这里。"}),(0,d.jsxs)("div",{style:{display:"grid",gap:4},children:[g&&(0,d.jsxs)("button",{onClick:()=>q("root"),style:e,children:[(0,d.jsx)("div",{style:{fontSize:"10px",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Model"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text)",marginTop:2,wordBreak:"break-word",lineHeight:1.35},children:k})]}),h&&(0,d.jsxs)("button",{onClick:()=>q("effort"),style:e,children:[(0,d.jsx)("div",{style:{fontSize:"10px",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Thinking"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text)",marginTop:2},children:l})]}),i&&(0,d.jsxs)("button",{onClick:r,style:e,children:[(0,d.jsx)("div",{style:{fontSize:"10px",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Tools"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text)",marginTop:2},children:m})]}),j&&(0,d.jsxs)("button",{onClick:s,style:e,children:[(0,d.jsx)("div",{style:{fontSize:"10px",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Memory"}),(0,d.jsx)("div",{style:{fontSize:12,color:o?"var(--accent)":"var(--text)",marginTop:2},children:n})]})]})]})]})}let Y=["off","default","full","agent"],Z={off:"none",default:"default",full:"full",agent:"agent"},$={off:"无工具,纯聊天",default:"4 项内置工具",full:"全部内置工具",agent:"High + 子代理"},_={retain:{label:"retain",description:"保存稳定事实或决策到项目记忆"},recall:{label:"recall",description:"检索项目记忆中的相关上下文"},reflect:{label:"reflect",description:"基于已存记忆做综合回应"}},aa=[],ab=[{command:"/compact",label:"/compact",description:"压缩当前上下文",kind:"native"},{command:"/init",label:"/init",description:"快捷插入,交给模型处理初始化任务",kind:"shortcut"},{command:"/memory",label:"/memory",description:"快捷插入,交给模型处理项目记忆任务",kind:"shortcut"}];function ac({doc:a,onRemove:b}){var c;let e=a.fileName.split(".").pop()?.toLowerCase()??"",f=function(a){switch(a){case"pdf":return{emoji:"\uD83D\uDCC4",color:"#ef4444"};case"docx":case"doc":return{emoji:"\uD83D\uDCDD",color:"#3b82f6"};case"xlsx":case"xls":return{emoji:"\uD83D\uDCCA",color:"#22c55e"};case"pptx":case"ppt":return{emoji:"\uD83D\uDCFD",color:"#f97316"};default:return{emoji:"\uD83D\uDCCE",color:"var(--text-muted)"}}}(e),g=(c=a.size)<1024?`${c} B`:c<1048576?`${(c/1024).toFixed(1)} KB`:`${(c/1048576).toFixed(1)} MB`;return(0,d.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center",gap:6,padding:"5px 10px 5px 7px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,maxWidth:200},title:a.fileName,children:[(0,d.jsx)("span",{style:{color:f.color,fontSize:14,flexShrink:0},children:f.emoji}),(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.3},children:a.fileName}),(0,d.jsxs)("div",{style:{fontSize:10,color:"var(--text-dim)",lineHeight:1.3},children:[e.toUpperCase()," \xb7 ",g,a.extractionError?" \xb7 no text":a.truncated?" \xb7 truncated":a.extractedText?" \xb7 text":""]})]}),(0,d.jsx)("button",{onClick:b,style:{flexShrink:0,width:14,height:14,borderRadius:"50%",background:"var(--bg-hover)",border:"none",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,color:"var(--text-dim)"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)"},children:(0,d.jsxs)("svg",{width:"7",height:"7",viewBox:"0 0 7 7",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"1",y1:"1",x2:"6",y2:"6"}),(0,d.jsx)("line",{x1:"6",y1:"1",x2:"1",y2:"6"})]})})]})}function ad(a){return a.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&apos;/g,"'")}async function ae(a){let b=await c.e(1688).then(c.bind(c,81688));b.GlobalWorkerOptions.workerSrc=new c.U(c(19224)).toString();let d=await b.getDocument({data:a.slice(0)}).promise,e=[];for(let a=1;a<=d.numPages;a+=1){let b=await d.getPage(a),c=(await b.getTextContent()).items.map(a=>"str"in a?a.str:"").filter(Boolean).join(" ");c.trim()&&e.push(`Page ${a}
2
+ ${c}`)}return e.join("\n\n")}async function af(a){let b=(await c.e(7890).then(c.t.bind(c,55509,23))).default,d=await b.loadAsync(a),e=["word/document.xml",...Object.keys(d.files).filter(a=>/^word\/(footnotes|endnotes|comments)\.xml$/i.test(a)).sort()],f=[];for(let a of e){let b=d.file(a);if(!b)continue;let c=[...(await b.async("string")).replace(/<w:(br|cr)[^>]*\/>/g,"\n").replace(/<\/w:p>/g,"\n").matchAll(/<w:t[^>]*>([\s\S]*?)<\/w:t>/g)];f.push(...c.map(a=>ad(a[1])))}return f.join("").replace(/[ \t]+\n/g,"\n")}async function ag(a){let b=await c.e(1649).then(c.bind(c,91649)),d=b.read(a,{type:"array"});return d.SheetNames.map(a=>{let c=d.Sheets[a],e=b.utils.sheet_to_csv(c);return`Sheet: ${a}
3
+ ${e}`}).join("\n\n")}async function ah(a){let b=(await c.e(7890).then(c.t.bind(c,55509,23))).default,d=await b.loadAsync(a),e=Object.keys(d.files).map(a=>({name:a,match:/^ppt\/slides\/slide(\d+)\.xml$/i.exec(a)})).filter(a=>null!==a.match).sort((a,b)=>Number(a.match[1])-Number(b.match[1])),f=[];for(let{name:a,match:b}of e){let c=[...(await d.file(a).async("string")).matchAll(/<a:t[^>]*>([\s\S]*?)<\/a:t>/g)].map(a=>ad(a[1]).trim()).filter(Boolean);c.length&&f.push(`Slide ${b[1]}
4
+ ${c.join("\n")}`)}return f.join("\n\n")}async function ai(a,b){let c=a.name.split(".").pop()?.toLowerCase()??"";try{let d,e="";if(a.type.startsWith("text/")||["csv","tsv","md","txt","json","xml"].includes(c))e=new TextDecoder("utf-8").decode(b);else if("pdf"===c||"application/pdf"===a.type)e=await ae(b);else if("docx"===c)e=await af(b);else if("xlsx"===c)e=await ag(b);else{if("pptx"!==c)return{extractionError:"Text extraction is not supported for this file type"};e=await ah(b)}let{text:f,truncated:g}=(d=e.replace(/\r\n/g,"\n").replace(/\n{4,}/g,"\n\n\n").trim()).length<=6e4?{text:d,truncated:!1}:{text:`${d.slice(0,6e4)}
5
5
 
6
- [truncated after 60000 characters]`,truncated:!0};if(!f)return{extractionError:"No extractable text found"};return{extractedText:f,truncated:g}}catch(a){return{extractionError:a instanceof Error?a.message:String(a)}}}let ah=(0,e.forwardRef)(function({onSend:a,onAbort:b,onSteer:c,onFollowUp:f,isStreaming:g,onBash:h,bashRunning:i,model:j,modelNames:k,modelList:l,onModelChange:m,onCompact:n,onAbortCompaction:o,isCompacting:p,compactError:q,compactInfo:r,toolPreset:s,onToolPresetChange:t,memoryTools:u,onMemoryToolsChange:v,thinkingLevel:w,onThinkingLevelChange:x,availableThinkingLevels:y,thinkingLevelMap:z,retryInfo:A,cornerBadge:B,promptHistory:C,sessionHistoryKey:D,draftKey:E,slashCommands:F,cwd:G,activeFilePath:H,onDismissFileContext:I},J){let[K,L]=(0,e.useState)(()=>(function(a){if(!a)return null;let b=R.get(a);return b?{...b}:null})(E)?.value??""),[M,N]=(0,e.useState)(!1),[O,T]=(0,e.useState)("root"),[U,ab]=(0,e.useState)(null),[ac,ad]=(0,e.useState)(!1),[ae,af]=(0,e.useState)(null),[ah,ai]=(0,e.useState)(!1),[aj,ak]=(0,e.useState)(0),[al,am]=(0,e.useState)(null),[an,ao]=(0,e.useState)(!1),[ap,aq]=(0,e.useState)(null),ar=(0,e.useRef)(""),[as,at]=(0,e.useState)(!1),[au,av]=(0,e.useState)(!1),[aw,ax]=(0,e.useState)(!1),[ay,az]=(0,e.useState)(!1),[aA,aB]=(0,e.useState)(null);(0,e.useEffect)(()=>{E&&function(a,b){if(a){if(!b.value)return R.delete(a);R.set(a,{...b})}}(E,{value:K})},[E,K]);let[aC,aD]=(0,e.useState)([]),[aE,aF]=(0,e.useState)([]),aG=function(){let[a,b]=(0,e.useState)(!1);return a}(),aH=aG?{display:"none"}:void 0,aI=aG?28:32,aJ=aG?"6px 8px":"8px 12px",aK=aG&&!g,aL=ay?"var(--text)":"var(--text-muted)",aM={padding:"7px 8px",borderRadius:8,background:"var(--bg-panel)",border:"1px solid var(--border)",width:"100%",textAlign:"left",cursor:"pointer"},aN=aG?{position:"sticky",bottom:0,zIndex:30,padding:"8px 0 calc(env(safe-area-inset-bottom, 0px) + 8px)",background:"linear-gradient(to top, color-mix(in srgb, var(--bg) 96%, transparent), color-mix(in srgb, var(--bg) 86%, transparent))",backdropFilter:"blur(10px)",WebkitBackdropFilter:"blur(10px)",borderTop:"1px solid color-mix(in srgb, var(--border) 65%, transparent)"}:{flexShrink:0,background:"transparent",padding:"0 16px 8px",paddingRight:52},[aO,aP]=(0,e.useState)(null),aQ=(0,e.useRef)(null),aR=(0,e.useRef)(null),aS=(0,e.useRef)(null),aT=(0,e.useRef)(null),aU=(0,e.useRef)(null),aV=(0,e.useRef)(null),aW=(0,e.useRef)(null),aX=(0,e.useRef)(null),aY=(0,e.useRef)(null),aZ=(0,e.useRef)(null),a$=(0,e.useRef)(null),a_=(0,e.useCallback)(a=>{let b=aQ.current;if(!b)return void L(b=>b+(b?" ":"")+a);let c=b.selectionStart??b.value.length,d=b.selectionEnd??b.value.length,e=b.value.slice(0,c),f=b.value.slice(d),g=!(e.length>0)||e.endsWith(" ")||e.endsWith("\n")?"":" ";L(e+g+a+f),requestAnimationFrame(()=>{let b=aQ.current;if(!b)return;let d=c+g.length+a.length;b.setSelectionRange(d,d),b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`})},[]);(0,e.useImperativeHandle)(J,()=>({insertIfEmpty(a){let b=aQ.current;(b?b.value:K).trim()||(L(a),requestAnimationFrame(()=>{b&&(b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)}))},insertText(a){a_(a)},setText(a){L(a),requestAnimationFrame(()=>{let b=aQ.current;b&&(b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`,b.setSelectionRange(a.length,a.length))})},addImages(a){a0(a)},addBase64Images(a){aD(b=>[...b,...a.map(a=>({data:a.data,mimeType:a.mimeType,previewUrl:`data:${a.mimeType};base64,${a.data}`}))])},addFiles(a){a1(a)}}));let a0=(0,e.useCallback)(async a=>{let b=a.filter(a=>a.type.startsWith("image/"));if(!b.length)return;let c=await Promise.all(b.map(a=>new Promise((b,c)=>{let d=new FileReader;d.onload=()=>{b({data:d.result.split(",")[1],mimeType:a.type,previewUrl:URL.createObjectURL(a)})},d.onerror=c,d.readAsDataURL(a)})));aD(a=>[...a,...c])},[]),a1=(0,e.useCallback)(async a=>{let b=a.filter(a=>a.type.startsWith("image/")),c=a.filter(a=>!a.type.startsWith("image/"));if(b.length&&a0(b),c.length){let a=await Promise.all(c.map(a=>new Promise((b,c)=>{let d=new FileReader;d.onload=async()=>{let c=d.result,e=await ag(a,c);b({data:c,fileName:a.name,mimeType:a.type||"application/octet-stream",size:a.size,...e})},d.onerror=c,d.readAsArrayBuffer(a)})));aF(b=>[...b,...a])}},[a0]),a2=(0,e.useCallback)(a=>{aD(b=>{let c=[...b];return URL.revokeObjectURL(c[a].previewUrl),c.splice(a,1),c})},[]),a3=(0,e.useCallback)(a=>{aF(b=>{let c=[...b];return c.splice(a,1),c})},[]),a4=(0,e.useCallback)(()=>{aD(a=>(a.forEach(a=>URL.revokeObjectURL(a.previewUrl)),[])),aF([])},[]),a5=l&&l.length>0?l.map(a=>({provider:a.provider,modelId:a.id,name:a.name,input:a.input})):Object.entries(k??{}).map(([a,b])=>({provider:j?.provider??"unknown",modelId:a,name:b})),a6=[];for(let a of a5){let b=a6.find(b=>b.provider===a.provider);b?b.options.push(a):a6.push({provider:a.provider,options:[a]})}let a7=j?a5.find(a=>a.modelId===j.modelId&&a.provider===j.provider)?.name??j.modelId:null,a8=j?a5.find(a=>a.modelId===j.modelId&&a.provider===j.provider):a5[0],a9=a8?.input?.includes("image")??!0,ba=aC.length>0&&a8?.input!==void 0&&!a9,bb=!!K.trim()||aC.length>0||aE.length>0,bc=K.trim(),bd=0===aC.length&&0===aE.length&&bc.startsWith("!"),be=bd&&bc.startsWith("!!"),bf=bb&&!ba,bg=n?_:_.filter(a=>"/compact"!==a.command),bh=bg.filter(a=>"native"===a.kind),bi=bg.filter(a=>"shortcut"===a.kind),bj=(()=>{let a=new Set(_.map(a=>a.command)),b=[];for(let c of F??[]){let d=`/${c.name.replace(/^\/+/,"")}`;a.has(d)||(a.add(d),b.push({command:d,label:d,description:c.description??"",kind:"dynamic",source:c.source,dormant:!0===c.disableModelInvocation}))}return b.sort((a,b)=>Number(!0===a.dormant)-Number(!0===b.dormant))})(),bk=(0,e.useMemo)(()=>ae&&G?al?.cwd!==G||al.truncated&&ae.query.trim()?ap?.query===ae.query?ap.entries.slice(0,12):[]:function(a,b,c=12){let d=b.trim(),e=[];for(let b of a){let a=function(a,b){let c,d=a.path.toLowerCase(),e=-1===(c=d.lastIndexOf("/"))?d:d.slice(c+1),f=b.toLowerCase();return f&&e!==f?e.startsWith(f)?1:d.startsWith(f)?2:e.includes(f)?3:d.includes(f)?4:!function(a,b){if(!b)return!0;let c=0;for(let d of a)if(d===b[c]&&(c+=1),c===b.length)return!0;return!1}(d,f)?null:5:0}(b,d);null!==a&&e.push({entry:b,score:a})}return e.sort((a,b)=>a.score-b.score||Number(b.entry.isDir)-Number(a.entry.isDir)||a.entry.path.length-b.entry.path.length||a.entry.path.localeCompare(b.entry.path)),e.slice(0,Math.max(0,c)).map(a=>a.entry)}(al.entries,ae.query,12):[],[ae,G,al,ap]),bl=(0,e.useCallback)((a,b)=>{let c=function(a){let b=/(?:^|\s)@"([^"\n]*)$/.exec(a);if(b)return{start:a.length-(b[1].length+2),query:b[1],quoted:!0};let c=/(?:^|\s)@([^\s@]*)$/.exec(a);return c?{start:a.length-c[1].length-1,query:c[1],quoted:!1}:null}(a.slice(0,b)),d=c?`${c.start}:${+!!c.quoted}:${c.query}`:"";ar.current!==d&&(ar.current=d,ak(0)),af(c),ai(!!(c&&G)),c||aq(null)},[G]),bm=(0,e.useCallback)(a=>{var b;let c=aQ.current;if(!c||!ae)return;let d=c.selectionStart??c.value.length,e=c.value.slice(0,ae.start),f=c.value.slice(d),g=(b=a.path,/[\s"]/.test(b)?`@"${b}" `:`@${b} `);L(e+g+f),ai(!1),af(null),aq(null),ar.current="",requestAnimationFrame(()=>{c.focus();let a=e.length+g.length;c.setSelectionRange(a,a),c.style.height="auto",c.style.height=`${Math.min(c.scrollHeight,200)}px`})},[ae]),bn=(0,e.useCallback)(a=>{let b=a.target.value;L(b),bl(b,a.target.selectionStart??b.length)},[bl]),bo=(0,e.useCallback)(()=>{let a=aQ.current;a&&bl(a.value,a.selectionStart??0)},[bl]);(0,e.useEffect)(()=>{if(!ah||!G||al?.cwd===G)return;let a=!1;return ao(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(G)}`).then(a=>a.json()).then(b=>{a||am({cwd:G,entries:b.files??[],truncated:!!b.truncated})}).catch(()=>{a||am({cwd:G,entries:[],truncated:!1})}).finally(()=>{a||ao(!1)}),()=>{a=!0}},[ah,G,al?.cwd]);let bp=ae?.query??"";(0,e.useEffect)(()=>{if(!ah||!G||!al||al.cwd!==G||!al.truncated)return;let a=bp.trim();if(!a)return void aq(null);let b=new AbortController,c=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(G)}&q=${encodeURIComponent(a)}`,{signal:b.signal}).then(a=>a.json()).then(b=>{aq({query:a,entries:b.files??[]})}).catch(()=>{})},120);return()=>{clearTimeout(c),b.abort()}},[ah,bp,G,al]);let bq=u??[],br=bq.length>0?`${bq.length} enabled`:"off",bs=a5.length>0&&!!m,bt=!!x,bu=!!t,bv=(()=>{let a=w??"auto";if("auto"===a)return"Default";if(!z)return a;let b=z[a];return null!=b?b:a})(),bw=a7??"Select model",bx=Object.entries(X).find(([,a])=>a===(s??"full"))?.[0]??"full",by=aG?26:32,bz=aG?7:9,bA=aG?3:6,bB={position:"fixed",left:8,right:8,bottom:"calc(env(safe-area-inset-bottom, 0px) + 8px)",zIndex:500,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 -6px 24px rgba(0,0,0,0.14)",overflow:"hidden",maxHeight:"min(60dvh, 420px)"},bC=aG&&(M||ac||as||au||aw||ay);(0,e.useEffect)(()=>{ba||aP(null)},[ba]);let bD=(0,e.useCallback)(a=>{if(!K.trim()){L(a),requestAnimationFrame(()=>{let b=aQ.current;b&&(b.focus(),b.setSelectionRange(a.length,a.length),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)});return}a_(a)},[a_,K]),bE=(0,e.useCallback)(()=>{let b=K.trim();if(b||aC.length||aE.length){if(aC.length&&!a9)return void aP("当前模型不支持图片输入。请切换到带 image 标记的模型后再发送。");if(!g){if(bd){if(!h)return;let a=bc.replace(/^!{1,2}\s*/,"").trim();if(!a)return;h(a,be),L(""),S(E),aQ.current&&(aQ.current.style.height="auto");return}if("/compact"===b&&!aC.length&&!aE.length&&n){p?o?.():n(),L(""),S(E),aQ.current&&(aQ.current.style.height="auto");return}a(b,aC.length?aC:void 0,aE.length?aE:void 0),L(""),S(E),a4(),aQ.current&&(aQ.current.style.height="auto")}}},[K,aC,aE,a9,g,bd,be,bc,h,a,a4,n,o,p,E]),bF=(0,e.useCallback)(a=>{let b=K.trim();if(!b&&!aC.length&&!aE.length)return;if(aC.length&&!a9)return void aP("当前模型不支持图片输入。请切换到带 image 标记的模型后再发送。");let d=aC.length?aC:void 0,e=aE.length?aE:void 0;"steer"===a&&c?c(b,d,e):"followup"===a&&f&&f(b,d,e),L(""),S(E),a4(),aQ.current&&(aQ.current.style.height="auto")},[K,aC,aE,a9,c,f,a4,E]),bG=C??$,bH=D??null,bI=(0,e.useCallback)(a=>{if(ah){if("Escape"===a.key){a.preventDefault(),ai(!1),ar.current="";return}if(bk.length>0){if("ArrowDown"===a.key){a.preventDefault(),ak(a=>(a+1)%bk.length);return}if("ArrowUp"===a.key){a.preventDefault(),ak(a=>(a-1+bk.length)%bk.length);return}if("Enter"===a.key||"Tab"===a.key){a.preventDefault(),bm(bk[Math.min(aj,bk.length-1)]);return}}}if("ArrowUp"===a.key&&!a.shiftKey&&!a.ctrlKey&&!a.metaKey&&bG.length>0){let b=aQ.current;if(!b)return;let c=b.selectionStart??0;if(b.value.slice(0,c).includes("\n"))return;a.preventDefault();let d=function(a,b,c){let d;if(!a||0===c.length)return null;let e=((d=Q.get(a))||(d={cursor:-1,draftSnapshot:""},Q.set(a,d)),d);if(-1===e.cursor)e.draftSnapshot=b,e.cursor=0;else{if(!(e.cursor<c.length-1))return null;e.cursor+=1}return c[e.cursor]??null}(bH,b.value,bG);null!==d&&(L(d),requestAnimationFrame(()=>{b.setSelectionRange(d.length,d.length)}));return}if("ArrowDown"===a.key&&!a.shiftKey&&!a.ctrlKey&&!a.metaKey&&function(a){if(!a)return!1;let b=Q.get(a);return(b?.cursor??-1)>=0}(bH)){a.preventDefault();let b=function(a,b){if(!a)return null;let c=Q.get(a);if(!c||-1===c.cursor)return null;if(c.cursor>0)return c.cursor-=1,{text:b[c.cursor]??"",returnedToPresent:!1};let d=c.draftSnapshot;return c.cursor=-1,c.draftSnapshot="",{text:d,returnedToPresent:!0}}(bH,bG);b&&(L(b.text),b.returnedToPresent&&requestAnimationFrame(()=>{let a=aQ.current;a&&a.setSelectionRange(b.text.length,b.text.length)}));return}"Enter"===a.key&&!a.shiftKey&&!a.nativeEvent.isComposing&&(a.preventDefault(),bH&&Q.set(bH,{cursor:-1,draftSnapshot:""}),g&&(c||f)?bF(c?"steer":"followup"):bE())},[aj,bk,ah,bm,g,c,f,bF,bE,bG,bH]),bJ=(0,e.useCallback)(()=>{let a=aQ.current;a&&(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)},[]),bK=(0,e.useCallback)(a=>{let b=Array.from(a.clipboardData?.items??[]).filter(a=>"file"===a.kind&&(a.type.startsWith("image/")||a.type.includes("pdf")||a.type.includes("officedocument")||a.type.includes("msword")||a.type.includes("ms-")));b.length&&(a.preventDefault(),a1(b.map(a=>a.getAsFile()).filter(a=>null!==a)))},[a1]);(0,e.useEffect)(()=>{if(!M&&!ac&&!ah&&!as&&!au&&!aw&&!ay)return;let a=a=>{let b=a.target;if(!(b instanceof Node))return;let c=!!aR.current?.contains(b),d=!!aS.current?.contains(b);c||d||N(!1),aT.current?.contains(b)||ad(!1),ah&&!aU.current?.contains(b)&&b!==aQ.current&&(ai(!1),ar.current=""),aV.current?.contains(b)||at(!1),aW.current?.contains(b)||av(!1),aX.current?.contains(b)||ax(!1),aY.current?.contains(b)||az(!1)};return document.addEventListener("pointerdown",a,!0),()=>{document.removeEventListener("pointerdown",a,!0)}},[M,ac,ah,as,au,aw,ay]),(0,e.useEffect)(()=>{if(!t)return;let a=!1;return fetch("/api/subagents/status").then(a=>a.ok?a.json():null).then(b=>{a||aB(!!b?.ready)}).catch(()=>{a||aB(!1)}),()=>{a=!0}},[t]),(0,e.useEffect)(()=>{if(!M)return;let a=a=>{"Escape"===a.key&&("root"!==O?T("root"):N(!1))};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[M,O]);let bL=()=>(0,d.jsx)(V,{triggerRef:aR,panelRef:aS,open:M,pane:O,anchorRect:U,isMobile:aG,isStreaming:g,mobileCompactButtonSize:aI,mobileCompactButtonPadding:aJ,mobileSheetStyle:bB,currentName:a7,mobileModelSummary:bw,groups:a6,model:j,canAdjustThinking:bt,thinkingLabel:bv,thinkingLevel:w,thinkingLevelMap:z,availableThinkingLevels:y,onToggle:a=>{a&&ab(a),ad(!1),at(!1),av(!1),ax(!1),az(!1),T("root"),N(a=>!a)},onClose:()=>{N(!1),T("root")},onPaneChange:T,onModelChange:m,onThinkingLevelChange:x});return(0,d.jsxs)("div",{style:aN,children:[bC&&(0,d.jsx)("div",{"aria-hidden":!0,onClick:()=>{N(!1),ad(!1),at(!1),av(!1),ax(!1),az(!1)},style:{position:"fixed",inset:0,zIndex:490,background:"rgba(15, 23, 42, 0.18)",backdropFilter:"blur(1.5px)",WebkitBackdropFilter:"blur(1.5px)"}}),(0,d.jsx)("input",{ref:aZ,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:a=>{a0(Array.from(a.target.files??[])),a.target.value=""}}),(0,d.jsx)("input",{ref:a$,type:"file",accept:".pdf,.docx,.xlsx,.pptx,.doc,.xls,.ppt,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.presentationml.presentation",multiple:!0,style:{display:"none"},onChange:a=>{a1(Array.from(a.target.files??[])),a.target.value=""}}),(0,d.jsxs)("div",{style:{maxWidth:aG?"100%":820,margin:"0 auto",position:"relative",width:"100%",padding:aG?"0 8px":void 0,boxSizing:"border-box"},children:[B&&(0,d.jsx)("div",{style:{position:"absolute",right:8,top:-22,display:"flex",alignItems:"center",justifyContent:"flex-end",maxWidth:"min(320px, 60vw)",minHeight:18,zIndex:2,fontFamily:"var(--font-mono)",overflow:"hidden"},children:B}),A&&(0,d.jsxs)("div",{style:{marginBottom:aG?6:8,padding:aG?"4px 8px":"5px 10px",background:"rgba(234,179,8,0.08)",border:"1px solid rgba(234,179,8,0.25)",borderRadius:6,fontSize:aG?11:12,color:"rgba(180,130,0,0.9)",display:"flex",alignItems:"center",gap:6},children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"})]}),"Retrying (",A.attempt,"/",A.maxAttempts,")…",A.errorMessage&&(0,d.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",A.errorMessage]})]}),H&&(0,d.jsxs)("div",{style:{marginBottom:aG?6:8,padding:aG?"3px 8px":"4px 10px",background:"color-mix(in srgb, var(--accent) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--accent) 25%, transparent)",borderRadius:6,fontSize:aG?11:12,color:"var(--text-muted)",display:"inline-flex",alignItems:"center",gap:6,maxWidth:"100%"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),(0,d.jsx)("polyline",{points:"14 2 14 8 20 8"})]}),(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:H.replace(/^.*[\\/]/,"")}),I&&(0,d.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),I()},title:"Stop including this file in context",style:{background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:14,lineHeight:1,padding:"0 2px",flexShrink:0},children:"\xd7"})]}),(aC.length>0||aE.length>0)&&(0,d.jsxs)("div",{style:{marginBottom:6},children:[(0,d.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"flex-end"},children:[aC.map((a,b)=>(0,d.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,d.jsx)("img",{src:a.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:`1px solid ${ba?"rgba(220,38,38,0.45)":"var(--border)"}`,display:"block"}}),(0,d.jsx)("button",{onClick:()=>a2(b),style:{position:"absolute",top:-4,right:-4,width:16,height:16,borderRadius:"50%",background:"var(--bg-panel)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,color:"var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,d.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},`img-${b}`)),aE.map((a,b)=>(0,d.jsx)(aa,{doc:a,onRemove:()=>a3(b)},`doc-${b}`))]}),(ba||aO)&&(0,d.jsxs)("div",{style:{marginTop:6,display:"flex",alignItems:"center",gap:6,fontSize:aG?11:12,color:"rgba(185,28,28,0.95)"},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("path",{d:"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),(0,d.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,d.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,d.jsx)("span",{children:aO??"当前模型不支持图片输入。请切换到带 image 标记的模型后再发送。"})]})]}),ah&&G&&(0,d.jsxs)("div",{ref:aU,style:{position:"absolute",left:0,right:0,bottom:"100%",marginBottom:6,zIndex:130,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 24px rgba(0,0,0,0.12)",overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderBottom:"1px solid var(--border)"},children:"Files"}),an&&0===bk.length?(0,d.jsx)("div",{style:{padding:"8px 10px",fontSize:11.5,color:"var(--text-dim)"},children:"Searching files…"}):0===bk.length?(0,d.jsx)("div",{style:{padding:"8px 10px",fontSize:11.5,color:"var(--text-dim)"},children:ae?.query?"No matching files":"No files"}):(0,d.jsx)("div",{style:{maxHeight:260,overflowY:"auto",padding:"3px 0"},children:bk.map((a,b)=>{let c=a.path.lastIndexOf("/"),e=-1===c?"":a.path.slice(0,c+1),f=-1===c?a.path:a.path.slice(c+1);return(0,d.jsxs)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>bm(a),onMouseEnter:()=>ak(b),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"5px 10px",background:b===aj?"var(--bg-hover)":"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,d.jsx)("span",{style:{width:16,flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:12},children:"@"}),(0,d.jsxs)("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"baseline",gap:2,overflow:"hidden"},children:[e&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),(0,d.jsx)("span",{style:{color:"var(--text)",fontFamily:"var(--font-mono)",flexShrink:0},children:f})]})]},a.path)})}),(0,d.jsx)("div",{style:{padding:"4px 10px 6px",fontSize:10,color:"var(--text-dim)",borderTop:"1px solid var(--border)"},children:"↑↓ navigate \xb7 Enter insert \xb7 Esc close"})]}),bd&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:6,padding:"3px 9px",fontSize:11,color:"var(--text-muted)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--accent)"},children:"$"}),(0,d.jsxs)("span",{children:["Shell — ",be?"output will NOT be added to model context":"output will be added to model context"]})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:aG?4:8,alignItems:aG?"flex-end":"center",background:"var(--bg)",border:`1px solid ${g&&(c||f)?"rgba(234,179,8,0.4)":"color-mix(in srgb, var(--border) 70%, transparent)"}`,borderRadius:aG?13:14,padding:aG?"8px 8px 8px 10px":"10px 10px 10px 14px",boxShadow:"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",transition:"border-color 0.15s, background 0.15s, box-shadow 0.15s"},children:[(0,d.jsx)("textarea",{ref:aQ,value:K,onChange:bn,onKeyDown:bI,onKeyUp:bo,onClick:bo,onInput:bJ,onPaste:bK,placeholder:i?"Shell command is running…":g&&(c||f)?"Steer 立即注入 / Follow-up 排队…":g?"Agent is running…":bd?"Shell command… (Enter to run)":"Message…",rows:1,style:{flex:1,alignSelf:aG?"stretch":void 0,background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",fontSize:14,lineHeight:1.6,fontFamily:"inherit",minHeight:24,maxHeight:200,overflow:"auto",paddingTop:+!!aG,paddingBottom:+!!aG}}),g?(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:aG?4:6,flexShrink:0,alignSelf:"flex-end"},children:[c&&(0,d.jsxs)("button",{onClick:()=>bF("steer"),disabled:!bf,title:ba?"当前模型不支持图片输入":"打断 Agent 当前运行,立即注入消息",style:{display:"flex",alignItems:"center",gap:5*!aG,padding:aG?"6px 8px":"7px 12px",background:bf?"rgba(234,179,8,0.12)":"none",border:"1px solid rgba(234,179,8,0.35)",borderRadius:8,color:bf?"rgba(180,130,0,1)":"var(--text-dim)",cursor:bf?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M5 1 L9 5 L5 9"}),(0,d.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})]}),!aG&&"Steer"]}),f&&(0,d.jsxs)("button",{onClick:()=>bF("followup"),disabled:!bf,title:ba?"当前模型不支持图片输入":"在 Agent 完成后排队发送",style:{display:"flex",alignItems:"center",gap:5*!aG,padding:aG?"6px 8px":"7px 12px",background:bf?"rgba(129,140,248,0.12)":"none",border:"1px solid rgba(129,140,248,0.35)",borderRadius:8,color:bf?"rgba(99,102,241,1)":"var(--text-dim)",cursor:bf?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"1",x2:"5",y2:"6"}),(0,d.jsx)("polyline",{points:"2.5 3.5 5 1 7.5 3.5"}),(0,d.jsx)("line",{x1:"2",y1:"9",x2:"8",y2:"9"})]}),!aG&&"Follow-up"]})]}):(0,d.jsxs)("button",{onClick:bE,disabled:!bf,title:ba?"当前模型不支持图片输入":"Send",style:{flexShrink:0,alignSelf:"flex-end",display:"flex",alignItems:"center",gap:aG?3:6,padding:aG?"5px 9px":"7px 14px",marginBottom:+!!aG,background:bf?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:8,color:bf?"#fff":"var(--text-dim)",cursor:bf?"pointer":"not-allowed",fontSize:aG?11:13,fontWeight:600,letterSpacing:"-0.01em",boxShadow:bf?"0 1px 3px rgba(37,99,235,0.25)":"none",transition:"background 0.15s, box-shadow 0.15s"},children:[(0,d.jsxs)("svg",{width:aG?13:14,height:aG?13:14,viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"2",y1:"7",x2:"11",y2:"7"}),(0,d.jsx)("polyline",{points:"7.5 3 12 7 7.5 11"})]}),"Send"]})]}),(0,d.jsxs)("div",{className:"chat-input-toolbar",style:{marginTop:aG?5:8,display:"flex",alignItems:aG?"flex-start":"center",gap:bA,flexWrap:aG?"wrap":"nowrap"},children:[(0,d.jsxs)("div",{className:"chat-input-toolbar-left",style:{flex:aG?"1 1 100%":"0 0 auto",width:aG?"100%":void 0,display:"flex",alignItems:"center",gap:2*!aG,flexWrap:aG?"wrap":"nowrap",rowGap:4*!!aG},children:[(0,d.jsx)("button",{onClick:()=>aZ.current?.click(),disabled:g,title:"Attach image (right-click for document)",style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:by,height:by,padding:0,background:"none",border:"none",borderRadius:bz,color:aC.length||aE.length?"var(--accent)":"var(--text-muted)",cursor:g?"not-allowed":"pointer",opacity:g?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{g||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color=aC.length||aE.length?"var(--accent)":"var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color=aC.length||aE.length?"var(--accent)":"var(--text-muted)"},onContextMenu:a=>{a.preventDefault(),a$.current?.click()},children:(0,d.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})})}),(0,d.jsxs)("div",{ref:aT,style:{position:"relative"},children:[(0,d.jsxs)("button",{onClick:()=>{g||(ad(a=>!a),at(!1),N(!1),av(!1),az(!1))},disabled:g,title:"插入斜杠命令",style:{position:"relative",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:by,height:by,padding:0,background:ac?"var(--bg-hover)":"none",border:"none",borderRadius:bz,color:q?"#ef4444":"var(--text-muted)",cursor:g?"not-allowed":"pointer",opacity:g?.5:1,fontSize:15,fontWeight:700,fontFamily:"var(--font-mono)",transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{g||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color=q?"#ef4444":"var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=ac?"var(--bg-hover)":"none",a.currentTarget.style.color=q?"#ef4444":"var(--text-muted)"},children:["/",q&&(0,d.jsx)("span",{style:{position:"absolute",top:7,right:7,width:5,height:5,borderRadius:"50%",background:"#ef4444"}})]}),ac&&(0,d.jsxs)("div",{style:{...aG?bB:{position:"absolute",bottom:"calc(100% + 6px)",left:0,zIndex:100,minWidth:320,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)"},overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderBottom:q?"1px solid var(--border)":"none"},children:"Commands"}),q&&(0,d.jsx)("div",{style:{padding:"7px 10px",fontSize:11,color:"#ef4444",background:"rgba(239,68,68,0.06)",borderBottom:"1px solid var(--border)",lineHeight:1.45},children:q}),r&&(0,d.jsx)("div",{style:{padding:"7px 10px",fontSize:11,color:"#34d399",background:"rgba(52,211,153,0.06)",borderBottom:"1px solid var(--border)",lineHeight:1.45},children:r}),bh.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"Native"}),bh.map(a=>(0,d.jsxs)("button",{onClick:()=>{(ad(!1),"/compact"===a.command&&p)?o?.():bD(a.command)},style:{display:"flex",alignItems:"center",gap:aG?6:8,width:"100%",padding:aJ,background:"none",border:"none",color:"/compact"===a.command&&p?"#ef4444":"var(--text-muted)",cursor:"pointer",fontSize:aG?11:12,textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="none"},children:[(0,d.jsx)("span",{style:{width:18,flexShrink:0,display:"flex",justifyContent:"center",color:"/compact"===a.command&&p?"#ef4444":"var(--text-dim)"},children:"/compact"===a.command&&p?(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,d.jsx)("rect",{x:"2",y:"2",width:"6",height:"6",rx:"1",fill:"currentColor"})}):(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"4 14 10 14 10 20"}),(0,d.jsx)("polyline",{points:"20 10 14 10 14 4"}),(0,d.jsx)("line",{x1:"10",y1:"14",x2:"3",y2:"21"}),(0,d.jsx)("line",{x1:"21",y1:"3",x2:"14",y2:"10"})]})}),(0,d.jsxs)("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"baseline",gap:8},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:"/compact"===a.command&&p?"停止压缩":a.label}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:"/compact"===a.command&&p?"中止当前压缩任务":a.description})]})]},a.command))]}),bi.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{style:{marginTop:2*(bh.length>0),padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderTop:bh.length>0?"1px solid var(--border)":"none"},children:"Prompt Shortcuts"}),bi.map(a=>(0,d.jsxs)("button",{onClick:()=>{ad(!1),bD(a.command)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:aJ,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:aG?11:12,textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="none"},children:[(0,d.jsx)("span",{style:{width:18,flexShrink:0,display:"flex",justifyContent:"center",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:13},children:"/"}),(0,d.jsxs)("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"baseline",gap:8},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:a.label}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:a.description})]})]},a.command))]}),bj.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{style:{marginTop:2,padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderTop:"1px solid var(--border)"},children:"Skills & Commands"}),bj.map(a=>(0,d.jsxs)("button",{onClick:()=>{ad(!1),bD(a.command)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:aJ,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:aG?11:12,textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="none"},children:[(0,d.jsx)("span",{style:{width:18,flexShrink:0,display:"flex",justifyContent:"center",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:13},children:"skill"===a.source?"✦":"extension"===a.source?"⌘":"/"}),(0,d.jsxs)("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"baseline",gap:8},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:a.dormant?"var(--text-dim)":"var(--text)"},children:a.label}),a.dormant&&(0,d.jsx)("span",{style:{flexShrink:0,padding:"0 4px",fontSize:9,color:"var(--text-dim)",border:"1px solid var(--border)",borderRadius:3},children:"dormant"}),a.description&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.description})]}),(0,d.jsx)("span",{style:{flexShrink:0,fontSize:9,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:a.source})]},a.command))]})]})]}),v&&(0,d.jsxs)("div",{ref:aV,style:{position:"relative"},children:[(0,d.jsxs)("button",{onClick:()=>{g||(at(a=>!a),ad(!1),N(!1),av(!1),az(!1))},disabled:g,title:"选择 retain / recall / reflect",style:{position:"relative",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:38,height:aI,padding:0,background:as?"var(--bg-hover)":"none",border:"none",borderRadius:aG?8:9,color:bq.length>0?"var(--accent)":"var(--text-muted)",cursor:g?"not-allowed":"pointer",opacity:g?.5:1,fontSize:13,fontWeight:700,fontFamily:"var(--font-mono)",transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{g||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color=bq.length>0?"var(--accent)":"var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=as?"var(--bg-hover)":"none",a.currentTarget.style.color=bq.length>0?"var(--accent)":"var(--text-muted)"},children:[" >_".trim(),bq.length>0&&(0,d.jsx)("span",{style:{position:"absolute",top:7,right:7,width:5,height:5,borderRadius:"50%",background:"currentColor"}})]}),as&&(0,d.jsxs)("div",{style:{...aG?bB:{position:"absolute",bottom:"calc(100% + 6px)",left:0,zIndex:100,minWidth:280,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)"},overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderBottom:"1px solid var(--border)"},children:"Memory Tools"}),P.SN.map(a=>{let b=bq.includes(a),c=Z[a];return(0,d.jsxs)("button",{onClick:()=>{v(b?bq.filter(b=>b!==a):[...bq,a])},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:aJ,background:b?"var(--bg-selected)":"none",border:"none",color:b?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:aG?11:12,textAlign:"left"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="none")},children:[b?(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,d.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),(0,d.jsxs)("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"baseline",gap:8},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:c.label}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:c.description})]})]},a)})]})]}),aG&&(bs||bt)&&bL(),aG&&!g&&(0,d.jsx)(d.Fragment,{children:(0,d.jsxs)("div",{ref:aY,style:{position:"relative",flexShrink:0},children:[(0,d.jsx)("button",{onClick:()=>{ad(!1),at(!1),N(!1),av(!1),ax(!1),az(a=>!a)},title:"更多设置",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,padding:0,background:ay?"var(--bg-hover)":"none",border:"none",borderRadius:8,color:aL,cursor:"pointer",transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background=ay?"var(--bg-hover)":"none",a.currentTarget.style.color=ay?"var(--text)":"var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("circle",{cx:"5",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"19",cy:"12",r:"1.5"})]})}),ay&&(0,d.jsxs)("div",{style:{...bB,zIndex:510,padding:"6px",display:"flex",flexDirection:"column",gap:4},children:[(0,d.jsx)("div",{style:{padding:"4px 6px 2px",fontSize:10,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"More"}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",padding:"0 6px 4px"},children:"模型、推理、工具等设置已收进这里。"}),(0,d.jsxs)("div",{style:{display:"grid",gap:4},children:[bs&&(0,d.jsxs)("button",{onClick:()=>{az(!1),av(!1),ax(!1),at(!1),N(!0),T("root")},style:aM,children:[(0,d.jsx)("div",{style:{fontSize:"10px",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Model"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text)",marginTop:2,wordBreak:"break-word",lineHeight:1.35},children:bw})]}),bt&&(0,d.jsxs)("button",{onClick:()=>{az(!1),av(!1),at(!1),ax(!1),N(!0),T("effort")},style:aM,children:[(0,d.jsx)("div",{style:{fontSize:"10px",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Thinking"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text)",marginTop:2},children:bv})]}),bu&&(0,d.jsxs)("button",{onClick:()=>{az(!1),N(!1),ax(!1),at(!1),av(!0)},style:aM,children:[(0,d.jsx)("div",{style:{fontSize:"10px",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Tools"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text)",marginTop:2},children:bx})]}),!!v&&(0,d.jsxs)("button",{onClick:()=>{az(!1),N(!1),av(!1),ax(!1),at(!0)},style:aM,children:[(0,d.jsx)("div",{style:{fontSize:"10px",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Memory"}),(0,d.jsx)("div",{style:{fontSize:12,color:bq.length>0?"var(--accent)":"var(--text)",marginTop:2},children:br})]})]})]})]})})]}),(0,d.jsx)("div",{className:"chat-input-toolbar-spacer",style:{display:aK?"none":void 0,flex:aG?"0 0 auto":1,width:aG?0:void 0,height:aG?0:void 0}}),(0,d.jsxs)("div",{className:"chat-input-toolbar-right",style:{flex:"0 0 auto",width:aG?"auto":void 0,display:"flex",alignItems:"center",gap:aG?4:2,marginLeft:aG?0:"auto",marginTop:0},children:[(!aK&&!g||aG&&au)&&bu&&(0,d.jsxs)("div",{ref:aW,style:{position:"relative"},children:[!aK&&!g&&(0,d.jsxs)("button",{onClick:()=>{g||(ad(!1),at(!1),N(!1),ax(!1),az(!1),av(a=>!a))},disabled:g,title:"切换工具预设",style:{display:"flex",alignItems:"center",gap:aG?3:5,padding:aJ,height:aI,background:au?"var(--bg-hover)":"none",border:"none",borderRadius:aG?8:9,color:"var(--text-muted)",cursor:g?"not-allowed":"pointer",fontSize:aG?11:12,opacity:g?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{g||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=au?"var(--bg-hover)":"none",a.currentTarget.style.color="var(--text-muted)"},children:[(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),(0,d.jsx)("span",{style:aH,children:bx})]}),au&&(0,d.jsx)("div",{style:{...aG?bB:{position:"absolute",bottom:"calc(100% + 6px)",right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)",minWidth:120},overflow:"hidden"},children:W.map(a=>{let b=X[a],c=(s??"full")===b,e="agent"===a&&!1===aA,f=e?"需安装 pi-subagents":Y[a];return(0,d.jsxs)("button",{onClick:()=>{!e&&(av(!1),c||t(b))},disabled:e,title:e?"运行 pi install npm:pi-subagents 后再启用":void 0,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:c?"var(--bg-selected)":"none",border:"none",color:c?"var(--text)":"var(--text-muted)",cursor:e?"not-allowed":"pointer",fontSize:aG?11:12,textAlign:"left",fontWeight:c?600:400,opacity:e?.5:1,whiteSpace:"nowrap"},onMouseEnter:a=>{c||e||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{c||(a.currentTarget.style.background="none")},children:[c?(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,d.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),(0,d.jsx)("span",{style:{flex:1},children:a}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:f})]},a)})})]}),!aG&&(bs||bt)&&bL(),g&&(0,d.jsxs)("button",{onClick:b,title:"停止 Agent",style:{display:"flex",alignItems:"center",gap:6,padding:"8px 14px",height:aI,background:"rgba(239,68,68,0.08)",border:"1px solid rgba(239,68,68,0.3)",borderRadius:aG?8:9,color:"#ef4444",cursor:"pointer",fontSize:aG?11:12,fontWeight:600,whiteSpace:"nowrap",letterSpacing:"-0.01em",transition:"background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="rgba(239,68,68,0.16)"},onMouseLeave:a=>{a.currentTarget.style.background="rgba(239,68,68,0.08)"},children:[(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,d.jsx)("rect",{x:"1.5",y:"1.5",width:"7",height:"7",rx:"1.5",fill:"currentColor"})}),"Stop"]})]})]})]})]})});function ai(a){return"user"===a.role?{bg:"rgba(37,99,235,0.18)",border:"rgba(37,99,235,0.7)"}:{bg:"rgba(107,114,128,0.12)",border:"rgba(107,114,128,0.5)"}}function aj({messages:a,streamingMessage:b,scrollContainer:c,messageRefs:f}){let[g,h]=(0,e.useState)(0),[i,j]=(0,e.useState)(1),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)([]),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=(0,e.useRef)(!1),t=(0,e.useRef)(null),u=(0,e.useMemo)(()=>b?[...a,b]:a,[a,b]),v=(0,e.useRef)(u);v.current=u;let w=(0,e.useRef)(null);w.current=()=>{let a=c.current;if(!a)return;let b=a.scrollHeight,d=a.clientHeight,e=b-d;l(e>20),e<=0?(h(0),j(1)):(h(a.scrollTop/e),j(d/b));let g=f.current,i=[],k=0,m=v.current;for(let c=0;c<m.length;c++){let d=m[c];if("user"!==d.role&&"assistant"!==d.role)continue;let e=g?.[k];if(k++,("user"===d.role||"assistant"===d.role&&(d.content??[]).some(a=>"text"===a.type))&&e&&b>0){let c=e.getBoundingClientRect(),f=a.getBoundingClientRect(),g=c.top-f.top+a.scrollTop,h=c.height;i.push({topRatio:g/b,heightRatio:h/b,msg:d,index:i.length})}}n(i)},(0,e.useCallback)(()=>w.current(),[]);let x=(0,e.useCallback)(a=>{let b=c.current;if(!b)return;let d=b.scrollHeight-b.clientHeight;d<=0||(b.scrollTop=Math.max(0,Math.min(1-i,a))/(1-i)*d)},[c,i]),y=(0,e.useCallback)(a=>{if(!k)return;s.current=!0;let b=a.currentTarget.getBoundingClientRect(),c=(a.clientY-b.top)/b.height,d=c-g*(1-i),e=d>=0&&d<=i?d:i/2;x(c-e);let f=a=>{s.current&&x((a.clientY-b.top)/b.height-e)},h=()=>{s.current=!1,window.removeEventListener("mousemove",f),window.removeEventListener("mouseup",h)};window.addEventListener("mousemove",f),window.addEventListener("mouseup",h)},[k,i,g,x]),z=t.current?.clientHeight??600,A=(0,e.useMemo)(()=>{if(!o||0===m.length)return[];let a=m.map(a=>Math.round(a.topRatio*z-11));for(let b=0;b<10;b++){for(let b=1;b<a.length;b++){let c=a[b-1]+22+2;a[b]<c&&(a[b]=c)}for(let b=a.length-2;b>=0;b--){let c=a[b+1]-22-2;a[b]>c&&(a[b]=c)}}for(let b=0;b<a.length;b++)a[b]=Math.max(0,Math.min(z-22,a[b]));return a},[o,m,z]);if(!k)return null;let B=g*(1-i)*100,C=100*i,D=null!==q&&m.length>0?m.reduce((a,b)=>Math.abs(b.topRatio-q)<Math.abs(m[a].topRatio-q)?b.index:a,0):null;return(0,d.jsxs)("div",{ref:t,onMouseDown:y,onMouseEnter:()=>p(!0),onMouseLeave:()=>{p(!1),r(null)},onMouseMove:a=>{let b=a.currentTarget.getBoundingClientRect();r((a.clientY-b.top)/b.height)},style:{width:36,flexShrink:0,position:"relative",cursor:"default",userSelect:"none",borderLeft:"1px solid var(--border)",background:"var(--bg-panel)",overflow:"visible"},children:[(0,d.jsx)("div",{style:{position:"absolute",left:0,right:0,top:`${B}%`,height:`${C}%`,background:"rgba(100,100,100,0.1)",borderTop:"1px solid rgba(100,100,100,0.2)",borderBottom:"1px solid rgba(100,100,100,0.2)",pointerEvents:"none",zIndex:1}}),m.map(a=>{let b=ai(a.msg),c=o&&D===a.index,e="user"===a.msg.role,f=100*a.topRatio;return(0,d.jsx)("div",{style:{position:"absolute",top:`${f}%`,transform:"translateY(-50%)",left:0,right:0,height:"12px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:2},children:(0,d.jsx)("div",{style:{width:e?8:6,height:e?8:6,borderRadius:e?2:"50%",background:b.bg,border:`1.5px solid ${b.border}`,flexShrink:0,transition:"transform 0.1s",transform:c?"scale(1.6)":"scale(1)"}})},a.index)}),(0,d.jsx)("div",{style:{position:"absolute",left:"50%",top:0,bottom:0,width:1,background:"var(--border)",transform:"translateX(-50%)",zIndex:0}}),o&&m.map((a,b)=>{let c=function(a){if("user"===a.role){let b=a.content;return"string"==typeof b?b.slice(0,200):Array.isArray(b)?b.filter(a=>"text"===a.type&&a.text).map(a=>a.text).join("\n").slice(0,200):""}if("assistant"===a.role){let b=a.content??[],c=b.filter(a=>"text"===a.type).map(a=>a.text).join(" ");if(c)return c.slice(0,200);let d=b.filter(a=>"toolCall"===a.type).map(a=>a.toolName);if(d.length)return d.join(", ")}return""}(a.msg),e=ai(a.msg),f=D===a.index;return c&&0!==A.length?(0,d.jsx)("div",{style:{position:"absolute",top:A[b],right:"100%",marginRight:6,background:"var(--bg)",borderTop:`1px solid ${f?e.border:"var(--border)"}`,borderRight:`1px solid ${f?e.border:"var(--border)"}`,borderBottom:`1px solid ${f?e.border:"var(--border)"}`,borderLeft:`2px solid ${e.border}`,borderRadius:4,padding:"2px 7px",width:200,zIndex:100,pointerEvents:"none",opacity:f?1:.45,transition:"top 0.1s, opacity 0.1s"},children:(0,d.jsx)("div",{style:{fontSize:11,color:f?"var(--text)":"var(--text-muted)",lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:c})},a.index):null})]})}function ak(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function al(a,b=220){if(!a)return;let c=a.trim();if(c)return c.length>b?`${c.slice(0,b)}...`:c}function am(...a){for(let b of a)if("string"==typeof b&&b.trim())return b}function an(...a){for(let b of a)if("number"==typeof b&&Number.isFinite(b))return b}function ao(a){let b=new Map;for(let c of a){if("custom"===c.role&&"subagent-notify"===c.customType&&"string"==typeof c.content){let a=c.content.match(/^Background task (completed|failed|paused):\s*\*\*(.+?)\*\*(?:\s+\((.+?)\))?/);if(a){let d=`bg-${a[2]}-${c.timestamp??""}`;b.set(d,{id:d,agent:a[2],status:a[1],task:a[3],summary:al(c.content.split("\n").slice(3).join("\n")),timestamp:c.timestamp})}}if("assistant"===c.role){let a=c.content;if(!a)continue;for(let d of a)if("toolCall"===d.type&&"subagent"===d.toolName&&d.input){let a=d.input,e=a.agent??(a.chain?"chain":a.tasks?"parallel":a.action??"subagent"),f="string"==typeof a.task?a.task:void 0,g=d.toolCallId??`sub-${e}-${c.timestamp??Date.now()}`;b.set(g,{id:g,agent:e,status:"running",task:f,timestamp:c.timestamp})}}if("toolResult"===c.role){if(c.toolName&&"subagent"!==c.toolName||!c.toolCallId||!b.has(c.toolCallId))continue;let a=b.get(c.toolCallId),d=c.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n");b.set(c.toolCallId,function(a,b,c){let d;if(!ak(b))return{...a,summary:al(c)};let e=Array.isArray(b.results)?b.results.filter(ak):[],f=e[0],g=f?.progressSummary,h=f&&(d=f.artifactPaths)?Object.values(d).filter(a=>"string"==typeof a&&a.trim().length>0):[],i=am(f?.finalOutput,f?.output,c);return{...a,mode:am(b.mode),runId:am(b.runId),agent:am(f?.agent,a.agent)??a.agent,task:am(f?.task,a.task),summary:al(i),model:am(f?.model),durationMs:an(g?.durationMs),toolCount:an(g?.toolCount),tokens:an(g?.tokens),outputPath:am(f?.savedOutputPath,f?.artifactPaths?.outputPath),sessionFile:am(f?.sessionFile,f?.artifactPaths?.jsonlPath),artifacts:h,resultCount:e.length||void 0}}({...a,status:function(a){if(a.isError)return"failed";let b=a.details;return ak(b)&&Array.isArray(b.results)&&b.results.some(a=>ak(a)&&"number"==typeof a.exitCode&&0!==a.exitCode)?"failed":"completed"}(c)},c.details,d))}}return Array.from(b.values()).sort((a,b)=>(b.timestamp??0)-(a.timestamp??0))}function ap({messages:a,runs:b}){let c=(0,e.useMemo)(()=>ao(a??[]),[a]),f=b??c,g=f.filter(a=>"running"===a.status),h=f.filter(a=>"running"!==a.status);return 0===f.length?null:(0,d.jsxs)("div",{style:{height:"100%",overflow:"auto",padding:12},children:[g.length>0&&(0,d.jsx)(aq,{title:`Active (${g.length})`,runs:g}),h.length>0&&(0,d.jsx)(aq,{title:`Completed (${h.length})`,runs:h,compact:g.length>0})]})}function aq({title:a,runs:b,compact:c}){return(0,d.jsxs)("div",{style:{marginBottom:c?10:16},children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",marginBottom:8,textTransform:"uppercase",letterSpacing:"0.05em"},children:a}),b.map(a=>(0,d.jsx)(ar,{run:a},a.id))]})}function ar({run:a}){let[b,c]=(0,e.useState)(!1),f="running"===a.status,g="completed"===a.status?"#22c55e":"failed"===a.status?"#ef4444":f?"var(--accent)":"var(--text-dim)",h="failed"===a.status?"rgba(248,113,113,0.35)":f?"rgba(99,102,241,0.25)":"var(--border)",i="failed"===a.status?"rgba(248,113,113,0.05)":f?"rgba(99,102,241,0.05)":"var(--bg-panel)",j=[a.mode,a.resultCount&&a.resultCount>1?`${a.resultCount} results`:void 0,void 0!==a.toolCount?`${a.toolCount} tools`:void 0,void 0!==a.tokens?`${a.tokens.toLocaleString()} tok`:void 0,void 0!==a.durationMs?`${Math.round(a.durationMs/1e3)}s`:void 0].filter(Boolean).join(" \xb7 "),k=!!(a.summary||a.outputPath||a.sessionFile||a.artifacts?.length||a.model||a.runId);return(0,d.jsxs)("div",{style:{borderRadius:6,border:`1px solid ${h}`,background:i,marginBottom:6,fontSize:12,overflow:"hidden"},children:[(0,d.jsxs)("button",{onClick:()=>k&&c(a=>!a),style:{display:"flex",alignItems:"center",gap:7,width:"100%",border:"none",background:"transparent",padding:"8px 10px",color:"var(--text-muted)",textAlign:"left",cursor:k?"pointer":"default"},children:[(0,d.jsx)(as,{running:f,color:g}),(0,d.jsx)("span",{style:{fontWeight:650,color:"var(--text)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.agent}),(0,d.jsx)("span",{style:{color:g,fontSize:10,fontWeight:700,flexShrink:0},children:a.status}),j&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,marginLeft:"auto",whiteSpace:"nowrap"},children:j}),k&&(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:b?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),a.task&&(0,d.jsx)("div",{style:{padding:"0 10px 8px 25px",color:"var(--text-muted)",fontSize:11,lineHeight:1.4},children:al(a.task,150)}),b&&k&&(0,d.jsxs)("div",{style:{borderTop:`1px solid ${h}`,background:"var(--bg)",padding:"8px 10px",display:"flex",flexDirection:"column",gap:7},children:[a.summary&&(0,d.jsx)("pre",{style:{margin:0,color:"var(--text-muted)",fontSize:11,lineHeight:1.45,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:160,overflow:"auto"},children:a.summary}),(0,d.jsx)(at,{run:a})]})]})}function as({running:a,color:b}){return(0,d.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:b,display:"inline-block",animation:a?"pulse 1.5s infinite":void 0,flexShrink:0}})}function at({run:a}){let b=[a.model?["model",a.model]:void 0,a.runId?["run",a.runId]:void 0,a.outputPath?["output",a.outputPath]:void 0,a.sessionFile?["session",a.sessionFile]:void 0,...(a.artifacts??[]).slice(0,4).map((a,b)=>[`artifact ${b+1}`,a])].filter(Boolean);return 0===b.length?null:(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:b.map(([a,b])=>(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"58px minmax(0, 1fr)",gap:6,fontSize:10},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",textTransform:"uppercase"},children:a}),(0,d.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:b,children:b})]},`${a}:${b}`))})}var au=c(10658);let av=["image/","application/pdf","application/vnd.openxmlformats-officedocument","application/msword","application/vnd.ms-"];function aw(a){return av.some(b=>a.type.startsWith(b))}function ax({agentPhase:a,startedAt:b,queuedCount:c=0,onClearQueue:f}){let[g,h]=(0,e.useState)(0);return(0,d.jsxs)("div",{className:"py-2 text-[13px] text-text-muted",children:[(0,d.jsxs)("span",{className:"animate-[pulse_1.5s_infinite]",children:[function(a){if(a?.kind==="running_tools"){let b=a.tools.map(a=>a.args??a.name);if(0===b.length)return"Running tool…";if(1===b.length){let c=a.tools[0]?.progress;if(c){let a=c.length>90?`…${c.slice(-87)}`:c;return`Running ${b[0]}: ${a}`}return`Running ${b[0]}…`}return`Running ${b.slice(0,2).join(", ")}${b.length>2?` (+${b.length-2})`:""}…`}return a?.kind==="waiting_model"?"Waiting for model…":"Working…"}(a),"\xa0\xa0",function(a){if(a<60)return`${a}s`;let b=Math.floor(a/60);return`${b}m ${String(a%60).padStart(2,"0")}s`}(g)]}),c>0&&(0,d.jsxs)("span",{style:{marginLeft:10,color:"var(--text-dim)",fontSize:11.5},children:["\xb7 ",c," queued",f&&(0,d.jsx)("button",{type:"button",onClick:f,style:{marginLeft:6,padding:"1px 6px",fontSize:10.5,color:"var(--text-muted)",background:"none",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer"},children:"Clear"})]})]})}function ay(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:String(a)}function az({goal:a}){if(!(a&&"dropped"!==a.status))return null;let b=a.tokenBudget&&a.tokenBudget>0?Math.min(100,Math.round(a.tokensUsed/a.tokenBudget*100)):null;return(0,d.jsx)("div",{style:{marginBottom:16,borderRadius:10,border:"1px solid var(--border)",background:"var(--bg-panel)",overflow:"hidden"},children:(0,d.jsxs)("div",{style:{padding:"10px 14px"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:6},children:[(0,d.jsx)("span",{style:{flexShrink:0,borderRadius:4,padding:"1px 6px",fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"#fff",background:function(a){switch(a){case"active":return"rgba(37,99,235,0.85)";case"complete":return"rgba(34,197,94,0.85)";case"budget-limited":return"rgba(245,158,11,0.85)";case"paused":return"rgba(148,163,184,0.85)";case"dropped":return"rgba(239,68,68,0.85)"}}(a.status)},children:function(a){switch(a){case"active":return"进行中";case"paused":return"已暂停";case"budget-limited":return"预算受限";case"complete":return"已完成";case"dropped":return"已放弃"}}(a.status)}),(0,d.jsx)("span",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)"},children:"Goal"})]}),(0,d.jsx)("p",{style:{margin:"0 0 6px",fontSize:13,lineHeight:1.5,color:"var(--text)",whiteSpace:"pre-wrap"},children:a.objective}),(0,d.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"4px 16px",fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)("span",{children:function(a){if(a<60)return`${a}s`;let b=Math.floor(a/60);if(b<60)return`${b}m ${String(a%60).padStart(2,"0")}s`;let c=Math.floor(b/60);return`${c}h ${b%60}m`}(a.timeUsedSeconds)}),(0,d.jsxs)("span",{children:[ay(a.tokensUsed),a.tokenBudget?` / ${ay(a.tokenBudget)} tokens`:" tokens"]}),null!=b&&(0,d.jsxs)("span",{children:[b,"%"]})]}),null!=b&&(0,d.jsx)("div",{style:{marginTop:6,height:3,borderRadius:999,overflow:"hidden",background:"var(--border)"},children:(0,d.jsx)("div",{style:{height:"100%",borderRadius:999,background:b>=100?"rgba(239,68,68,0.6)":"rgba(37,99,235,0.5)",width:`${Math.min(b,100)}%`,transition:"width 0.3s"}})})]})})}function aA({cwd:a}){let[b,c]=(0,e.useState)(null),[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(!1);if(!a||!b?.requiresTrust||b.trusted)return null;let l=async()=>{if(!f){g(!0),i(null);try{let b=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})}),d=await b.json();if(!b.ok||d.error)throw Error(d.error??`HTTP ${b.status}`);c({...d,requiresTrust:!0,trusted:!0}),k((d.busy?.length??0)>0)}catch(a){i(a instanceof Error?a.message:String(a))}finally{g(!1)}}};return(0,d.jsxs)("div",{style:{margin:"0 0 10px",padding:"9px 12px",border:"1px solid rgba(245,158,11,0.38)",background:"rgba(245,158,11,0.08)",borderRadius:8,display:"flex",alignItems:"flex-start",gap:10,fontSize:12,lineHeight:1.45},children:[(0,d.jsx)("span",{"aria-hidden":!0,style:{fontSize:14,lineHeight:1.2},children:"⚠"}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0,color:"var(--text)"},children:[(0,d.jsx)("div",{style:{fontWeight:600,marginBottom:2},children:"This project contains untrusted pi resources"}),(0,d.jsxs)("div",{style:{color:"var(--text-muted)"},children:["Project-local extensions, settings and skills stay disabled until you trust this directory. The decision is shared with the ",(0,d.jsx)("code",{children:"pi"})," CLI."]}),j&&(0,d.jsx)("div",{style:{marginTop:4,color:"var(--text-muted)"},children:"A session is currently running. Trust is applied the next time it starts."}),h&&(0,d.jsx)("div",{style:{marginTop:4,color:"#f87171"},children:h})]}),(0,d.jsx)("button",{onClick:l,disabled:f,style:{flexShrink:0,padding:"4px 10px",fontSize:11.5,fontWeight:600,color:"var(--text)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,cursor:f?"default":"pointer",opacity:f?.6:1},children:f?"Trusting…":"Trust project"})]})}var aB=c(4424);function aC({statuses:a,widgets:b}){return 0===a.length&&0===b.length?null:(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,marginBottom:6},children:[a.length>0&&(0,d.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:a.map(a=>(0,d.jsx)("span",{title:a.key,style:{padding:"2px 7px",fontSize:10.5,color:"var(--text-muted)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:999,whiteSpace:"nowrap"},children:a.text},a.key))}),b.map(a=>(0,d.jsx)("pre",{style:{margin:0,padding:"7px 9px",fontSize:11,lineHeight:1.45,color:"var(--text-muted)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,overflow:"auto",maxHeight:160,whiteSpace:"pre-wrap",fontFamily:"var(--font-mono)"},children:a.lines.join("\n")},a.key))]})}function aD({notices:a,onDismiss:b}){return 0===a.length?null:(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:5,margin:"0 0 8px"},children:a.map(a=>{let c="error"===a.type?"#f87171":"warning"===a.type?"#fbbf24":"var(--text-muted)";return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,padding:"6px 9px",fontSize:11.5,lineHeight:1.45,color:c,background:"var(--bg-panel)",border:`1px solid ${"error"===a.type?"rgba(248,113,113,0.35)":"var(--border)"}`,borderRadius:6},children:[(0,d.jsx)("span",{style:{flex:1,minWidth:0,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a.message}),(0,d.jsx)("button",{type:"button",onClick:()=>b(a.id),style:{flexShrink:0,padding:0,width:18,height:18,lineHeight:"16px",color:"var(--text-dim)",background:"none",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer"},"aria-label":"Dismiss",children:"\xd7"})]},a.id)})})}function aE({request:a,onRespond:b}){let[c,f]=(0,e.useState)(a.prefill??""),g=(0,e.useRef)(null),h=()=>b(a.id,{cancelled:!0});return(0,d.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1200,background:"rgba(0,0,0,0.38)",display:"flex",alignItems:"center",justifyContent:"center",padding:16},onClick:a=>{a.target===a.currentTarget&&h()},children:(0,d.jsxs)("div",{role:"dialog","aria-modal":"true",style:{width:440,maxWidth:"100%",maxHeight:"80vh",overflow:"auto",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 12px 40px rgba(0,0,0,0.28)",padding:14},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:8,whiteSpace:"pre-wrap"},children:a.title||"Extension request"}),"confirm"===a.method&&a.message&&(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.55,marginBottom:12,whiteSpace:"pre-wrap"},children:a.message}),"select"===a.method&&(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:5,marginBottom:12},children:(a.options??[]).map((c,e)=>(0,d.jsx)("button",{type:"button",onClick:()=>b(a.id,{value:c}),style:{padding:"7px 10px",fontSize:12,textAlign:"left",color:"var(--text)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer"},children:c},`${c}-${e}`))}),("input"===a.method||"editor"===a.method)&&(0,d.jsx)("div",{style:{marginBottom:12},children:"input"===a.method?(0,d.jsx)("input",{ref:a=>{g.current=a},value:c,onChange:a=>f(a.target.value),onKeyDown:d=>{"Enter"===d.key&&b(a.id,{value:c})},placeholder:a.placeholder??"",style:{width:"100%",boxSizing:"border-box",padding:"7px 9px",fontSize:12,color:"var(--text)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,outline:"none"}}):(0,d.jsx)("textarea",{ref:a=>{g.current=a},value:c,onChange:a=>f(a.target.value),rows:8,style:{width:"100%",boxSizing:"border-box",padding:"7px 9px",fontSize:12,lineHeight:1.5,color:"var(--text)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,resize:"vertical",outline:"none"}})}),(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:[(0,d.jsx)("button",{type:"button",onClick:h,style:{padding:"5px 11px",fontSize:12,color:"var(--text-muted)",background:"none",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer"},children:"Cancel"}),"select"!==a.method&&(0,d.jsx)("button",{type:"button",onClick:()=>"confirm"===a.method?b(a.id,{confirmed:!0}):b(a.id,{value:c}),style:{padding:"5px 12px",fontSize:12,fontWeight:600,color:"var(--text)",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer"},children:"confirm"===a.method?"Confirm":"OK"})]})]})})}var aF=c(1453);async function aG(){return null}function aH(a){let b=a.content;return"string"==typeof b?b:Array.isArray(b)?b.filter(a=>!!a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n"):""}let aI=["annotate and analyze.","vibe code bioinformatics.","turn data into figures.","inspect your project.","build a reproducible report.","run R/Python plots.","summarize that paper.","review the pipeline.","compare markers.","draft methods.","find the next analysis step."];function aJ({phrases:a}){let[b,c]=(0,e.useState)(()=>Math.floor(Math.random()*a.length)),[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!0);return(0,d.jsxs)("span",{style:{color:"var(--text-muted)",fontWeight:400},children:[f,(0,d.jsx)("span",{style:{opacity:+!!j,color:"var(--accent)",marginLeft:1},children:"▍"})]})}function aK({status:a}){let b=a?.current??"0.8.142"??"0.0.0";if(a?.updateAvailable){let c=a.latest?`v${a.latest}`:"latest";return(0,d.jsxs)("span",{title:`Current v${b}; latest ${c}; run ${a.updateCommand}`,style:{display:"block",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--accent)"},children:["Update: ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)",color:"var(--accent)"},children:a.updateCommand})]})}return(0,d.jsxs)("span",{title:`AnnoVibe v${b}`,style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:["v",b]})}function aL({session:a,newSessionCwd:b,onAgentEnd:c,onSessionCreated:f,onSessionForked:g,modelsRefreshKey:h,chatInputRef:i,onBranchDataChange:j,onSessionStatsChange:k,onContextUsageChange:l,generativeUI:m,forkSettings:n,activeFilePath:o,onOpenFileAtLine:p}){var q;let r,[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(!1),w=o&&!u?o:null,x=a?.name?.trim()||(a?.cwd?a.cwd.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop():"")||"",y=(0,e.useCallback)(()=>{(function(a={visibilityState:document.visibilityState,hasFocus:document.hasFocus()}){return"visible"!==a.visibilityState||!a.hasFocus})()&&function(a,b={}){if(function(a={}){return!1}(b))try{let c=(b.createNotification??((a,b)=>new Notification(a,b)))(a.title,{body:a.body,tag:a.tag,silent:!1});c.onclick=()=>{try{window.focus()}catch{}a.onClick?.(),c.close()}}catch{return!1}}({title:x?`${z} \xb7 ${x}`:z,body:"Agent finished",tag:`agent-done-${a?.id??"new"}`}),c?.()},[x,c,a?.id]),{data:A,loading:B,error:C,messages:D,entryIds:E,streamState:F,agentRunning:G,modelNames:H,modelList:I,modelThinkingLevels:J,modelThinkingLevelMaps:K,toolPreset:L,memoryTools:M,thinkingLevel:N,slashCommands:P,retryInfo:Q,queuedMessages:R,contextUsage:S,forkingEntryId:T,isCompacting:U,compactError:V,compactInfo:W,displayModel:X,sessionStats:Y,agentPhase:Z,agentError:$,extensionStatuses:_,extensionWidgets:aa,extensionDialog:ab,extensionNotices:ac,bashLive:ad,bashRunning:ae,respondToExtensionUi:af,dismissExtensionNotice:ag,isNew:ai,loadMoreMessages:ak,hasMoreMessages:al,totalMessages:am,loadedMessagesCount:an,loadShadowedMessages:aq,messagesEndRef:ar,scrollContainerRef:as,lastUserMsgRef:at,handleSend:av,handleAbort:ay,handleFork:aM,handleNavigate:aN,handleModelChange:aO,handleCompact:aP,handleSteer:aQ,handleFollowUp:aR,handleAbortCompaction:aS,handleToolPresetChange:aT,handleMemoryToolsChange:aU,handleThinkingLevelChange:aV,handleClearQueue:aW,handleBash:aX,handleAgentEventRef:aY,forkToNewSession:aZ}=(0,au.T)({chatInputRef:i,session:a,newSessionCwd:b,onAgentEnd:y,onSessionCreated:f,onSessionForked:g,modelsRefreshKey:h,onBranchDataChange:j}),a$=(0,e.useCallback)(()=>{aG()},[]),a_=(0,e.useMemo)(()=>{let a=new Map;for(let b of A?.context.compactions??[])a.set(b.entryId,b.shadowedCount);return a},[A?.context.compactions]),[a0,a1]=(0,e.useState)(!1),[a2,a3]=(0,e.useState)(null);(0,e.useRef)(!1);let a4=n??{enabled:!0,suggestTokens:18e4,autoTokens:4e5,minMessages:20},a5=(0,e.useCallback)(()=>{let c=A?.info?.cwd??a?.cwd??b??null,d=D.filter(a=>"user"===a.role||"assistant"===a.role),e=d.filter(a=>"user"===a.role),f=d.filter(a=>"assistant"===a.role),g=e[0],h=e[e.length-1],i=f[f.length-1],j=(a,b)=>{let c=a.replace(/\s+/g," ").trim();return c.length>b?`${c.slice(0,b)}…`:c};return["以下是从父会话 fork 出的新会话。工作仍在原项目目录中进行,但本会话只携带精简摘要,完整历史不再重发(避免模型 prefill 变慢)。",c?`工作目录: ${c}`:"",g?`最初目标: ${j(aH(g),500)}`:"",h?`最近一次请求: ${j(aH(h),500)}`:"",i?`最近回复要点: ${j(aH(i),900)}`:"",`父会话共 ${am||d.length} 条消息。若需要更早的细节,请说明是哪个任务,我会让你查看父会话文件或重新提供。`].filter(Boolean).join("\n\n")},[A?.info?.cwd,a?.cwd,b,D,am]),a6=(0,e.useCallback)(async()=>{if(G||a0)return{ok:!1,error:"Session is busy"};a1(!0),a3(null);try{let a=await aZ(a5());return a.ok||a3(a.error??"Fork failed"),a}finally{a1(!1)}},[G,a0,aZ,a5]),a7=S?.tokens??null,a8=D.filter(a=>"user"===a.role||"assistant"===a.role).length,a9=!ai&&!G&&a4.enabled&&null!=a7&&a7>=a4.suggestTokens&&a8>=a4.minMessages;aY.current,Y&&(Y.tokens.input,Y.tokens.output,Y.tokens.cacheRead,Y.tokens.cacheWrite),(0,e.useRef)(Y).current=Y,S&&(S.percent,S.contextWindow,S.tokens),(0,e.useRef)(S).current=S;let ba=(0,e.useCallback)(a=>{i?.current?.addFiles(a)},[i]),bb=(0,e.useCallback)((a,b,c)=>{let d=c?.findIndex(b=>b.src===a)??-1;bk({src:a,gallery:c,index:d>=0?d:0})},[]),{isDragOver:bc,handleDragEnter:bd,handleDragOver:be,handleDragLeave:bf,handleDrop:bg}=function(a){let[b,c]=(0,e.useState)(!1),d=(0,e.useRef)(0),f=(0,e.useCallback)(a=>{Array.from(a.dataTransfer.items).some(aw)&&(a.preventDefault(),d.current+=1,c(!0))},[]),g=(0,e.useCallback)(a=>{Array.from(a.dataTransfer.items).some(aw)&&a.preventDefault()},[]);return{isDragOver:b,handleDragEnter:f,handleDragOver:g,handleDragLeave:(0,e.useCallback)(()=>{d.current-=1,d.current<=0&&(d.current=0,c(!1))},[]),handleDrop:(0,e.useCallback)(b=>{b.preventDefault(),d.current=0,c(!1),a(Array.from(b.dataTransfer.files))},[a])}}(ba),[bh,bi]=(0,e.useState)(null),[bj,bk]=(0,e.useState)(null),bl=D.filter(a=>"user"===a.role||"assistant"===a.role),bm=(q=bl.length,(r=(0,e.useRef)([])).current=Array(q).fill(null).map((a,b)=>r.current[b]??null),r),bn=(0,e.useMemo)(()=>{let a=new Map;for(let b of D)"toolResult"===b.role&&a.set(b.toolCallId,b);return a},[D]),bo=ai&&0===D.length&&!F.isStreaming&&!G,bp=A?.info?.cwd??a?.cwd??b??null,bq=function(a){if(!a)return null;let b=a.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean);return b[b.length-1]||a}(bp),br=function(){let[a,b]=(0,e.useState)(!1);return a}(),[bs,bt]=(0,e.useState)(!1),bu=ao(D),bv=bu.filter(a=>"running"===a.status).length,bw=X?J[`${X.provider}:${X.modelId}`]??null:null,bx=X?K[`${X.provider}:${X.modelId}`]??null:null,by=a?.id??b??"new-chat",bz=(0,e.useMemo)(()=>(function(a){let b=[];for(let c=a.length-1;c>=0;c-=1){let d=a[c];if("user"!==d.role)continue;let e=d.text.trim();e&&b.push(e)}return b})(bl.map(a=>({role:a.role,text:aH(a)}))),[bl]),bA=(0,e.useCallback)(async(a,b,c)=>{a$();let d=a;w&&a.trim()&&(d=`${a}
6
+ [truncated after 60000 characters]`,truncated:!0};if(!f)return{extractionError:"No extractable text found"};return{extractedText:f,truncated:g}}catch(a){return{extractionError:a instanceof Error?a.message:String(a)}}}let aj=(0,e.forwardRef)(function({onSend:a,onAbort:b,onSteer:c,onFollowUp:f,isStreaming:g,onBash:h,bashRunning:i,model:j,modelNames:k,modelList:l,onModelChange:m,onCompact:n,onAbortCompaction:o,isCompacting:p,compactError:q,compactInfo:r,toolPreset:s,onToolPresetChange:t,memoryTools:u,onMemoryToolsChange:v,thinkingLevel:w,onThinkingLevelChange:x,availableThinkingLevels:y,thinkingLevelMap:z,retryInfo:A,cornerBadge:B,promptHistory:C,sessionHistoryKey:D,draftKey:E,slashCommands:F,cwd:G,activeFilePath:H,onDismissFileContext:I},J){let[K,L]=(0,e.useState)(()=>(function(a){if(!a)return null;let b=S.get(a);return b?{...b}:null})(E)?.value??""),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)("root"),[U,V]=(0,e.useState)(null),[ad,ae]=(0,e.useState)(!1),[af,ag]=(0,e.useState)(null),[ah,aj]=(0,e.useState)(!1),[ak,al]=(0,e.useState)(0),[am,an]=(0,e.useState)(null),[ao,ap]=(0,e.useState)(!1),[aq,ar]=(0,e.useState)(null),as=(0,e.useRef)(""),[at,au]=(0,e.useState)(!1),[av,aw]=(0,e.useState)(!1),[ax,ay]=(0,e.useState)(!1),[az,aA]=(0,e.useState)(!1),[aB,aC]=(0,e.useState)(null);(0,e.useEffect)(()=>{E&&function(a,b){if(a){if(!b.value)return S.delete(a);S.set(a,{...b})}}(E,{value:K})},[E,K]);let[aD,aE]=(0,e.useState)([]),[aF,aG]=(0,e.useState)([]),aH=function(){let[a,b]=(0,e.useState)(!1);return a}(),aI=aH?{display:"none"}:void 0,aJ=aH?28:32,aK=aH?"6px 8px":"8px 12px",aL=aH&&!g,aM=az?"var(--text)":"var(--text-muted)",aN=aH?{position:"sticky",bottom:0,zIndex:30,padding:"8px 0 calc(env(safe-area-inset-bottom, 0px) + 8px)",background:"linear-gradient(to top, color-mix(in srgb, var(--bg) 96%, transparent), color-mix(in srgb, var(--bg) 86%, transparent))",backdropFilter:"blur(10px)",WebkitBackdropFilter:"blur(10px)",borderTop:"1px solid color-mix(in srgb, var(--border) 65%, transparent)"}:{flexShrink:0,background:"transparent",padding:"0 16px 8px",paddingRight:52},[aO,aP]=(0,e.useState)(null),aQ=(0,e.useRef)(null),aR=(0,e.useRef)(null),aS=(0,e.useRef)(null),aT=(0,e.useRef)(null),aU=(0,e.useRef)(null),aV=(0,e.useRef)(null),aW=(0,e.useRef)(null),aX=(0,e.useRef)(null),aY=(0,e.useRef)(null),aZ=(0,e.useRef)(null),a$=(0,e.useRef)(null),a_=(0,e.useCallback)(a=>{let b=aQ.current;if(!b)return void L(b=>b+(b?" ":"")+a);let c=b.selectionStart??b.value.length,d=b.selectionEnd??b.value.length,e=b.value.slice(0,c),f=b.value.slice(d),g=!(e.length>0)||e.endsWith(" ")||e.endsWith("\n")?"":" ";L(e+g+a+f),requestAnimationFrame(()=>{let b=aQ.current;if(!b)return;let d=c+g.length+a.length;b.setSelectionRange(d,d),b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`})},[]);(0,e.useImperativeHandle)(J,()=>({insertIfEmpty(a){let b=aQ.current;(b?b.value:K).trim()||(L(a),requestAnimationFrame(()=>{b&&(b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)}))},insertText(a){a_(a)},setText(a){L(a),requestAnimationFrame(()=>{let b=aQ.current;b&&(b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`,b.setSelectionRange(a.length,a.length))})},addImages(a){a0(a)},addBase64Images(a){aE(b=>[...b,...a.map(a=>({data:a.data,mimeType:a.mimeType,previewUrl:`data:${a.mimeType};base64,${a.data}`}))])},addFiles(a){a1(a)}}));let a0=(0,e.useCallback)(async a=>{let b=a.filter(a=>a.type.startsWith("image/"));if(!b.length)return;let c=await Promise.all(b.map(a=>new Promise((b,c)=>{let d=new FileReader;d.onload=()=>{b({data:d.result.split(",")[1],mimeType:a.type,previewUrl:URL.createObjectURL(a)})},d.onerror=c,d.readAsDataURL(a)})));aE(a=>[...a,...c])},[]),a1=(0,e.useCallback)(async a=>{let b=a.filter(a=>a.type.startsWith("image/")),c=a.filter(a=>!a.type.startsWith("image/"));if(b.length&&a0(b),c.length){let a=await Promise.all(c.map(a=>new Promise((b,c)=>{let d=new FileReader;d.onload=async()=>{let c=d.result,e=await ai(a,c);b({data:c,fileName:a.name,mimeType:a.type||"application/octet-stream",size:a.size,...e})},d.onerror=c,d.readAsArrayBuffer(a)})));aG(b=>[...b,...a])}},[a0]),a2=(0,e.useCallback)(a=>{aE(b=>{let c=[...b];return URL.revokeObjectURL(c[a].previewUrl),c.splice(a,1),c})},[]),a3=(0,e.useCallback)(a=>{aG(b=>{let c=[...b];return c.splice(a,1),c})},[]),a4=(0,e.useCallback)(()=>{aE(a=>(a.forEach(a=>URL.revokeObjectURL(a.previewUrl)),[])),aG([])},[]),a5=l&&l.length>0?l.map(a=>({provider:a.provider,modelId:a.id,name:a.name,input:a.input})):Object.entries(k??{}).map(([a,b])=>({provider:j?.provider??"unknown",modelId:a,name:b})),a6=[];for(let a of a5){let b=a6.find(b=>b.provider===a.provider);b?b.options.push(a):a6.push({provider:a.provider,options:[a]})}let a7=j?a5.find(a=>a.modelId===j.modelId&&a.provider===j.provider)?.name??j.modelId:null,a8=j?a5.find(a=>a.modelId===j.modelId&&a.provider===j.provider):a5[0],a9=a8?.input?.includes("image")??!0,ba=aD.length>0&&a8?.input!==void 0&&!a9,bb=!!K.trim()||aD.length>0||aF.length>0,bc=K.trim(),bd=0===aD.length&&0===aF.length&&bc.startsWith("!"),be=bd&&bc.startsWith("!!"),bf=bb&&!ba,bg=n?ab:ab.filter(a=>"/compact"!==a.command),bh=bg.filter(a=>"native"===a.kind),bi=bg.filter(a=>"shortcut"===a.kind),bj=(()=>{let a=new Set(ab.map(a=>a.command)),b=[];for(let c of F??[]){let d=`/${c.name.replace(/^\/+/,"")}`;a.has(d)||(a.add(d),b.push({command:d,label:d,description:c.description??"",kind:"dynamic",source:c.source,dormant:!0===c.disableModelInvocation}))}return b.sort((a,b)=>Number(!0===a.dormant)-Number(!0===b.dormant))})(),bk=(0,e.useMemo)(()=>af&&G?am?.cwd!==G||am.truncated&&af.query.trim()?aq?.query===af.query?aq.entries.slice(0,12):[]:function(a,b,c=12){let d=b.trim(),e=[];for(let b of a){let a=function(a,b){let c,d=a.path.toLowerCase(),e=-1===(c=d.lastIndexOf("/"))?d:d.slice(c+1),f=b.toLowerCase();return f&&e!==f?e.startsWith(f)?1:d.startsWith(f)?2:e.includes(f)?3:d.includes(f)?4:!function(a,b){if(!b)return!0;let c=0;for(let d of a)if(d===b[c]&&(c+=1),c===b.length)return!0;return!1}(d,f)?null:5:0}(b,d);null!==a&&e.push({entry:b,score:a})}return e.sort((a,b)=>a.score-b.score||Number(b.entry.isDir)-Number(a.entry.isDir)||a.entry.path.length-b.entry.path.length||a.entry.path.localeCompare(b.entry.path)),e.slice(0,Math.max(0,c)).map(a=>a.entry)}(am.entries,af.query,12):[],[af,G,am,aq]),bl=(0,e.useCallback)((a,b)=>{let c=function(a){let b=/(?:^|\s)@"([^"\n]*)$/.exec(a);if(b)return{start:a.length-(b[1].length+2),query:b[1],quoted:!0};let c=/(?:^|\s)@([^\s@]*)$/.exec(a);return c?{start:a.length-c[1].length-1,query:c[1],quoted:!1}:null}(a.slice(0,b)),d=c?`${c.start}:${+!!c.quoted}:${c.query}`:"";as.current!==d&&(as.current=d,al(0)),ag(c),aj(!!(c&&G)),c||ar(null)},[G]),bm=(0,e.useCallback)(a=>{var b;let c=aQ.current;if(!c||!af)return;let d=c.selectionStart??c.value.length,e=c.value.slice(0,af.start),f=c.value.slice(d),g=(b=a.path,/[\s"]/.test(b)?`@"${b}" `:`@${b} `);L(e+g+f),aj(!1),ag(null),ar(null),as.current="",requestAnimationFrame(()=>{c.focus();let a=e.length+g.length;c.setSelectionRange(a,a),c.style.height="auto",c.style.height=`${Math.min(c.scrollHeight,200)}px`})},[af]),bn=(0,e.useCallback)(a=>{let b=a.target.value;L(b),bl(b,a.target.selectionStart??b.length)},[bl]),bo=(0,e.useCallback)(()=>{let a=aQ.current;a&&bl(a.value,a.selectionStart??0)},[bl]);(0,e.useEffect)(()=>{if(!ah||!G||am?.cwd===G)return;let a=!1;return ap(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(G)}`).then(a=>a.json()).then(b=>{a||an({cwd:G,entries:b.files??[],truncated:!!b.truncated})}).catch(()=>{a||an({cwd:G,entries:[],truncated:!1})}).finally(()=>{a||ap(!1)}),()=>{a=!0}},[ah,G,am?.cwd]);let bp=af?.query??"";(0,e.useEffect)(()=>{if(!ah||!G||!am||am.cwd!==G||!am.truncated)return;let a=bp.trim();if(!a)return void ar(null);let b=new AbortController,c=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(G)}&q=${encodeURIComponent(a)}`,{signal:b.signal}).then(a=>a.json()).then(b=>{ar({query:a,entries:b.files??[]})}).catch(()=>{})},120);return()=>{clearTimeout(c),b.abort()}},[ah,bp,G,am]);let bq=u??[],br=bq.length>0?`${bq.length} enabled`:"off",bs=a5.length>0&&!!m,bt=!!x,bu=!!t,bv=(()=>{let a=w??"auto";if("auto"===a)return"Default";if(!z)return a;let b=z[a];return null!=b?b:a})(),bw=a7??"Select model",bx=Object.entries(Z).find(([,a])=>a===(s??"full"))?.[0]??"full",by=aH?26:32,bz=aH?7:9,bA=aH?3:6,bB={position:"fixed",left:8,right:8,bottom:"calc(env(safe-area-inset-bottom, 0px) + 8px)",zIndex:500,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 -6px 24px rgba(0,0,0,0.14)",overflow:"hidden",maxHeight:"min(60dvh, 420px)"},bC=aH&&(M||ad||at||av||ax||az);(0,e.useEffect)(()=>{ba||aP(null)},[ba]);let bD=(0,e.useCallback)(a=>{if(!K.trim()){L(a),requestAnimationFrame(()=>{let b=aQ.current;b&&(b.focus(),b.setSelectionRange(a.length,a.length),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)});return}a_(a)},[a_,K]),bE=(0,e.useCallback)(()=>{let b=K.trim();if(b||aD.length||aF.length){if(aD.length&&!a9)return void aP("当前模型不支持图片输入。请切换到带 image 标记的模型后再发送。");if(!g){if(bd){if(!h)return;let a=bc.replace(/^!{1,2}\s*/,"").trim();if(!a)return;h(a,be),L(""),T(E),aQ.current&&(aQ.current.style.height="auto");return}if("/compact"===b&&!aD.length&&!aF.length&&n){p?o?.():n(),L(""),T(E),aQ.current&&(aQ.current.style.height="auto");return}a(b,aD.length?aD:void 0,aF.length?aF:void 0),L(""),T(E),a4(),aQ.current&&(aQ.current.style.height="auto")}}},[K,aD,aF,a9,g,bd,be,bc,h,a,a4,n,o,p,E]),bF=(0,e.useCallback)(a=>{let b=K.trim();if(!b&&!aD.length&&!aF.length)return;if(aD.length&&!a9)return void aP("当前模型不支持图片输入。请切换到带 image 标记的模型后再发送。");let d=aD.length?aD:void 0,e=aF.length?aF:void 0;"steer"===a&&c?c(b,d,e):"followup"===a&&f&&f(b,d,e),L(""),T(E),a4(),aQ.current&&(aQ.current.style.height="auto")},[K,aD,aF,a9,c,f,a4,E]),bG=C??aa,bH=D??null,bI=(0,e.useCallback)(a=>{if(ah){if("Escape"===a.key){a.preventDefault(),aj(!1),as.current="";return}if(bk.length>0){if("ArrowDown"===a.key){a.preventDefault(),al(a=>(a+1)%bk.length);return}if("ArrowUp"===a.key){a.preventDefault(),al(a=>(a-1+bk.length)%bk.length);return}if("Enter"===a.key||"Tab"===a.key){a.preventDefault(),bm(bk[Math.min(ak,bk.length-1)]);return}}}if("ArrowUp"===a.key&&!a.shiftKey&&!a.ctrlKey&&!a.metaKey&&bG.length>0){let b=aQ.current;if(!b)return;let c=b.selectionStart??0;if(b.value.slice(0,c).includes("\n"))return;a.preventDefault();let d=function(a,b,c){let d;if(!a||0===c.length)return null;let e=((d=R.get(a))||(d={cursor:-1,draftSnapshot:""},R.set(a,d)),d);if(-1===e.cursor)e.draftSnapshot=b,e.cursor=0;else{if(!(e.cursor<c.length-1))return null;e.cursor+=1}return c[e.cursor]??null}(bH,b.value,bG);null!==d&&(L(d),requestAnimationFrame(()=>{b.setSelectionRange(d.length,d.length)}));return}if("ArrowDown"===a.key&&!a.shiftKey&&!a.ctrlKey&&!a.metaKey&&function(a){if(!a)return!1;let b=R.get(a);return(b?.cursor??-1)>=0}(bH)){a.preventDefault();let b=function(a,b){if(!a)return null;let c=R.get(a);if(!c||-1===c.cursor)return null;if(c.cursor>0)return c.cursor-=1,{text:b[c.cursor]??"",returnedToPresent:!1};let d=c.draftSnapshot;return c.cursor=-1,c.draftSnapshot="",{text:d,returnedToPresent:!0}}(bH,bG);b&&(L(b.text),b.returnedToPresent&&requestAnimationFrame(()=>{let a=aQ.current;a&&a.setSelectionRange(b.text.length,b.text.length)}));return}"Enter"===a.key&&!a.shiftKey&&!a.nativeEvent.isComposing&&(a.preventDefault(),bH&&R.set(bH,{cursor:-1,draftSnapshot:""}),g&&(c||f)?bF(c?"steer":"followup"):bE())},[ak,bk,ah,bm,g,c,f,bF,bE,bG,bH]),bJ=(0,e.useCallback)(()=>{let a=aQ.current;a&&(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)},[]),bK=(0,e.useCallback)(a=>{let b=Array.from(a.clipboardData?.items??[]).filter(a=>"file"===a.kind&&(a.type.startsWith("image/")||a.type.includes("pdf")||a.type.includes("officedocument")||a.type.includes("msword")||a.type.includes("ms-")));b.length&&(a.preventDefault(),a1(b.map(a=>a.getAsFile()).filter(a=>null!==a)))},[a1]);(0,e.useEffect)(()=>{if(!M&&!ad&&!ah&&!at&&!av&&!ax&&!az)return;let a=a=>{let b=a.target;if(!(b instanceof Node))return;let c=!!aR.current?.contains(b),d=!!aS.current?.contains(b);c||d||N(!1),aT.current?.contains(b)||ae(!1),ah&&!aU.current?.contains(b)&&b!==aQ.current&&(aj(!1),as.current=""),aV.current?.contains(b)||au(!1),aW.current?.contains(b)||aw(!1),aX.current?.contains(b)||ay(!1),aY.current?.contains(b)||aA(!1)};return document.addEventListener("pointerdown",a,!0),()=>{document.removeEventListener("pointerdown",a,!0)}},[M,ad,ah,at,av,ax,az]),(0,e.useEffect)(()=>{if(!t)return;let a=!1;return fetch("/api/subagents/status").then(a=>a.ok?a.json():null).then(b=>{a||aC(!!b?.ready)}).catch(()=>{a||aC(!1)}),()=>{a=!0}},[t]),(0,e.useEffect)(()=>{if(!M)return;let a=a=>{"Escape"===a.key&&("root"!==O?P("root"):N(!1))};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[M,O]);let bL=()=>(0,d.jsx)(W,{triggerRef:aR,panelRef:aS,open:M,pane:O,anchorRect:U,isMobile:aH,isStreaming:g,mobileCompactButtonSize:aJ,mobileCompactButtonPadding:aK,mobileSheetStyle:bB,currentName:a7,mobileModelSummary:bw,groups:a6,model:j,canAdjustThinking:bt,thinkingLabel:bv,thinkingLevel:w,thinkingLevelMap:z,availableThinkingLevels:y,onToggle:a=>{a&&V(a),ae(!1),au(!1),aw(!1),ay(!1),aA(!1),P("root"),N(a=>!a)},onClose:()=>{N(!1),P("root")},onPaneChange:P,onModelChange:m,onThinkingLevelChange:x});return(0,d.jsxs)("div",{style:aN,children:[bC&&(0,d.jsx)("div",{"aria-hidden":!0,onClick:()=>{N(!1),ae(!1),au(!1),aw(!1),ay(!1),aA(!1)},style:{position:"fixed",inset:0,zIndex:490,background:"rgba(15, 23, 42, 0.18)",backdropFilter:"blur(1.5px)",WebkitBackdropFilter:"blur(1.5px)"}}),(0,d.jsx)("input",{ref:aZ,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:a=>{a0(Array.from(a.target.files??[])),a.target.value=""}}),(0,d.jsx)("input",{ref:a$,type:"file",accept:".pdf,.docx,.xlsx,.pptx,.doc,.xls,.ppt,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.presentationml.presentation",multiple:!0,style:{display:"none"},onChange:a=>{a1(Array.from(a.target.files??[])),a.target.value=""}}),(0,d.jsxs)("div",{style:{maxWidth:aH?"100%":820,margin:"0 auto",position:"relative",width:"100%",padding:aH?"0 8px":void 0,boxSizing:"border-box"},children:[B&&(0,d.jsx)("div",{style:{position:"absolute",right:8,top:-22,display:"flex",alignItems:"center",justifyContent:"flex-end",maxWidth:"min(320px, 60vw)",minHeight:18,zIndex:2,fontFamily:"var(--font-mono)",overflow:"hidden"},children:B}),A&&(0,d.jsxs)("div",{style:{marginBottom:aH?6:8,padding:aH?"4px 8px":"5px 10px",background:"rgba(234,179,8,0.08)",border:"1px solid rgba(234,179,8,0.25)",borderRadius:6,fontSize:aH?11:12,color:"rgba(180,130,0,0.9)",display:"flex",alignItems:"center",gap:6},children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"})]}),"Retrying (",A.attempt,"/",A.maxAttempts,")…",A.errorMessage&&(0,d.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",A.errorMessage]})]}),H&&(0,d.jsxs)("div",{style:{marginBottom:aH?6:8,padding:aH?"3px 8px":"4px 10px",background:"color-mix(in srgb, var(--accent) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--accent) 25%, transparent)",borderRadius:6,fontSize:aH?11:12,color:"var(--text-muted)",display:"inline-flex",alignItems:"center",gap:6,maxWidth:"100%"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),(0,d.jsx)("polyline",{points:"14 2 14 8 20 8"})]}),(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:H.replace(/^.*[\\/]/,"")}),I&&(0,d.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),I()},title:"Stop including this file in context",style:{background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:14,lineHeight:1,padding:"0 2px",flexShrink:0},children:"\xd7"})]}),(aD.length>0||aF.length>0)&&(0,d.jsxs)("div",{style:{marginBottom:6},children:[(0,d.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"flex-end"},children:[aD.map((a,b)=>(0,d.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,d.jsx)("img",{src:a.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:`1px solid ${ba?"rgba(220,38,38,0.45)":"var(--border)"}`,display:"block"}}),(0,d.jsx)("button",{onClick:()=>a2(b),style:{position:"absolute",top:-4,right:-4,width:16,height:16,borderRadius:"50%",background:"var(--bg-panel)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,color:"var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,d.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},`img-${b}`)),aF.map((a,b)=>(0,d.jsx)(ac,{doc:a,onRemove:()=>a3(b)},`doc-${b}`))]}),(ba||aO)&&(0,d.jsxs)("div",{style:{marginTop:6,display:"flex",alignItems:"center",gap:6,fontSize:aH?11:12,color:"rgba(185,28,28,0.95)"},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("path",{d:"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),(0,d.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,d.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,d.jsx)("span",{children:aO??"当前模型不支持图片输入。请切换到带 image 标记的模型后再发送。"})]})]}),ah&&G&&(0,d.jsxs)("div",{ref:aU,style:{position:"absolute",left:0,right:0,bottom:"100%",marginBottom:6,zIndex:130,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 24px rgba(0,0,0,0.12)",overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderBottom:"1px solid var(--border)"},children:"Files"}),ao&&0===bk.length?(0,d.jsx)("div",{style:{padding:"8px 10px",fontSize:11.5,color:"var(--text-dim)"},children:"Searching files…"}):0===bk.length?(0,d.jsx)("div",{style:{padding:"8px 10px",fontSize:11.5,color:"var(--text-dim)"},children:af?.query?"No matching files":"No files"}):(0,d.jsx)("div",{style:{maxHeight:260,overflowY:"auto",padding:"3px 0"},children:bk.map((a,b)=>{let c=a.path.lastIndexOf("/"),e=-1===c?"":a.path.slice(0,c+1),f=-1===c?a.path:a.path.slice(c+1);return(0,d.jsxs)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>bm(a),onMouseEnter:()=>al(b),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"5px 10px",background:b===ak?"var(--bg-hover)":"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,d.jsx)("span",{style:{width:16,flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:12},children:"@"}),(0,d.jsxs)("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"baseline",gap:2,overflow:"hidden"},children:[e&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),(0,d.jsx)("span",{style:{color:"var(--text)",fontFamily:"var(--font-mono)",flexShrink:0},children:f})]})]},a.path)})}),(0,d.jsx)("div",{style:{padding:"4px 10px 6px",fontSize:10,color:"var(--text-dim)",borderTop:"1px solid var(--border)"},children:"↑↓ navigate \xb7 Enter insert \xb7 Esc close"})]}),bd&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:6,padding:"3px 9px",fontSize:11,color:"var(--text-muted)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--accent)"},children:"$"}),(0,d.jsxs)("span",{children:["Shell — ",be?"output will NOT be added to model context":"output will be added to model context"]})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:aH?4:8,alignItems:aH?"flex-end":"center",background:"var(--bg)",border:`1px solid ${g&&(c||f)?"rgba(234,179,8,0.4)":"color-mix(in srgb, var(--border) 70%, transparent)"}`,borderRadius:aH?13:14,padding:aH?"8px 8px 8px 10px":"10px 10px 10px 14px",boxShadow:"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",transition:"border-color 0.15s, background 0.15s, box-shadow 0.15s"},children:[(0,d.jsx)("textarea",{ref:aQ,value:K,onChange:bn,onKeyDown:bI,onKeyUp:bo,onClick:bo,onInput:bJ,onPaste:bK,placeholder:i?"Shell command is running…":g&&(c||f)?"Steer 立即注入 / Follow-up 排队…":g?"Agent is running…":bd?"Shell command… (Enter to run)":"Message…",rows:1,style:{flex:1,alignSelf:aH?"stretch":void 0,background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",fontSize:14,lineHeight:1.6,fontFamily:"inherit",minHeight:24,maxHeight:200,overflow:"auto",paddingTop:+!!aH,paddingBottom:+!!aH}}),g?(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:aH?4:6,flexShrink:0,alignSelf:"flex-end"},children:[c&&(0,d.jsxs)("button",{onClick:()=>bF("steer"),disabled:!bf,title:ba?"当前模型不支持图片输入":"打断 Agent 当前运行,立即注入消息",style:{display:"flex",alignItems:"center",gap:5*!aH,padding:aH?"6px 8px":"7px 12px",background:bf?"rgba(234,179,8,0.12)":"none",border:"1px solid rgba(234,179,8,0.35)",borderRadius:8,color:bf?"rgba(180,130,0,1)":"var(--text-dim)",cursor:bf?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M5 1 L9 5 L5 9"}),(0,d.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})]}),!aH&&"Steer"]}),f&&(0,d.jsxs)("button",{onClick:()=>bF("followup"),disabled:!bf,title:ba?"当前模型不支持图片输入":"在 Agent 完成后排队发送",style:{display:"flex",alignItems:"center",gap:5*!aH,padding:aH?"6px 8px":"7px 12px",background:bf?"rgba(129,140,248,0.12)":"none",border:"1px solid rgba(129,140,248,0.35)",borderRadius:8,color:bf?"rgba(99,102,241,1)":"var(--text-dim)",cursor:bf?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"1",x2:"5",y2:"6"}),(0,d.jsx)("polyline",{points:"2.5 3.5 5 1 7.5 3.5"}),(0,d.jsx)("line",{x1:"2",y1:"9",x2:"8",y2:"9"})]}),!aH&&"Follow-up"]})]}):(0,d.jsxs)("button",{onClick:bE,disabled:!bf,title:ba?"当前模型不支持图片输入":"Send",style:{flexShrink:0,alignSelf:"flex-end",display:"flex",alignItems:"center",gap:aH?3:6,padding:aH?"5px 9px":"7px 14px",marginBottom:+!!aH,background:bf?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:8,color:bf?"#fff":"var(--text-dim)",cursor:bf?"pointer":"not-allowed",fontSize:aH?11:13,fontWeight:600,letterSpacing:"-0.01em",boxShadow:bf?"0 1px 3px rgba(37,99,235,0.25)":"none",transition:"background 0.15s, box-shadow 0.15s"},children:[(0,d.jsxs)("svg",{width:aH?13:14,height:aH?13:14,viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"2",y1:"7",x2:"11",y2:"7"}),(0,d.jsx)("polyline",{points:"7.5 3 12 7 7.5 11"})]}),"Send"]})]}),(0,d.jsxs)("div",{className:"chat-input-toolbar",style:{marginTop:aH?5:8,display:"flex",alignItems:aH?"flex-start":"center",gap:bA,flexWrap:aH?"wrap":"nowrap"},children:[(0,d.jsxs)("div",{className:"chat-input-toolbar-left",style:{flex:aH?"1 1 100%":"0 0 auto",width:aH?"100%":void 0,display:"flex",alignItems:"center",gap:2*!aH,flexWrap:aH?"wrap":"nowrap",rowGap:4*!!aH},children:[(0,d.jsx)("button",{onClick:()=>aZ.current?.click(),disabled:g,title:"Attach image (right-click for document)",style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:by,height:by,padding:0,background:"none",border:"none",borderRadius:bz,color:aD.length||aF.length?"var(--accent)":"var(--text-muted)",cursor:g?"not-allowed":"pointer",opacity:g?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{g||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color=aD.length||aF.length?"var(--accent)":"var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color=aD.length||aF.length?"var(--accent)":"var(--text-muted)"},onContextMenu:a=>{a.preventDefault(),a$.current?.click()},children:(0,d.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})})}),(0,d.jsxs)("div",{ref:aT,style:{position:"relative"},children:[(0,d.jsxs)("button",{onClick:()=>{g||(ae(a=>!a),au(!1),N(!1),aw(!1),aA(!1))},disabled:g,title:"插入斜杠命令",style:{position:"relative",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:by,height:by,padding:0,background:ad?"var(--bg-hover)":"none",border:"none",borderRadius:bz,color:q?"#ef4444":"var(--text-muted)",cursor:g?"not-allowed":"pointer",opacity:g?.5:1,fontSize:15,fontWeight:700,fontFamily:"var(--font-mono)",transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{g||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color=q?"#ef4444":"var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=ad?"var(--bg-hover)":"none",a.currentTarget.style.color=q?"#ef4444":"var(--text-muted)"},children:["/",q&&(0,d.jsx)("span",{style:{position:"absolute",top:7,right:7,width:5,height:5,borderRadius:"50%",background:"#ef4444"}})]}),ad&&(0,d.jsxs)("div",{style:{...aH?bB:{position:"absolute",bottom:"calc(100% + 6px)",left:0,zIndex:100,minWidth:320,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)"},overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderBottom:q?"1px solid var(--border)":"none"},children:"Commands"}),q&&(0,d.jsx)("div",{style:{padding:"7px 10px",fontSize:11,color:"#ef4444",background:"rgba(239,68,68,0.06)",borderBottom:"1px solid var(--border)",lineHeight:1.45},children:q}),r&&(0,d.jsx)("div",{style:{padding:"7px 10px",fontSize:11,color:"#34d399",background:"rgba(52,211,153,0.06)",borderBottom:"1px solid var(--border)",lineHeight:1.45},children:r}),bh.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"Native"}),bh.map(a=>(0,d.jsxs)("button",{onClick:()=>{(ae(!1),"/compact"===a.command&&p)?o?.():bD(a.command)},style:{display:"flex",alignItems:"center",gap:aH?6:8,width:"100%",padding:aK,background:"none",border:"none",color:"/compact"===a.command&&p?"#ef4444":"var(--text-muted)",cursor:"pointer",fontSize:aH?11:12,textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="none"},children:[(0,d.jsx)("span",{style:{width:18,flexShrink:0,display:"flex",justifyContent:"center",color:"/compact"===a.command&&p?"#ef4444":"var(--text-dim)"},children:"/compact"===a.command&&p?(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,d.jsx)("rect",{x:"2",y:"2",width:"6",height:"6",rx:"1",fill:"currentColor"})}):(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"4 14 10 14 10 20"}),(0,d.jsx)("polyline",{points:"20 10 14 10 14 4"}),(0,d.jsx)("line",{x1:"10",y1:"14",x2:"3",y2:"21"}),(0,d.jsx)("line",{x1:"21",y1:"3",x2:"14",y2:"10"})]})}),(0,d.jsxs)("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"baseline",gap:8},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:"/compact"===a.command&&p?"停止压缩":a.label}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:"/compact"===a.command&&p?"中止当前压缩任务":a.description})]})]},a.command))]}),bi.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{style:{marginTop:2*(bh.length>0),padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderTop:bh.length>0?"1px solid var(--border)":"none"},children:"Prompt Shortcuts"}),bi.map(a=>(0,d.jsxs)("button",{onClick:()=>{ae(!1),bD(a.command)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:aK,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:aH?11:12,textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="none"},children:[(0,d.jsx)("span",{style:{width:18,flexShrink:0,display:"flex",justifyContent:"center",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:13},children:"/"}),(0,d.jsxs)("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"baseline",gap:8},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:a.label}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:a.description})]})]},a.command))]}),bj.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{style:{marginTop:2,padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderTop:"1px solid var(--border)"},children:"Skills & Commands"}),bj.map(a=>(0,d.jsxs)("button",{onClick:()=>{ae(!1),bD(a.command)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:aK,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:aH?11:12,textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="none"},children:[(0,d.jsx)("span",{style:{width:18,flexShrink:0,display:"flex",justifyContent:"center",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:13},children:"skill"===a.source?"✦":"extension"===a.source?"⌘":"/"}),(0,d.jsxs)("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"baseline",gap:8},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:a.dormant?"var(--text-dim)":"var(--text)"},children:a.label}),a.dormant&&(0,d.jsx)("span",{style:{flexShrink:0,padding:"0 4px",fontSize:9,color:"var(--text-dim)",border:"1px solid var(--border)",borderRadius:3},children:"dormant"}),a.description&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.description})]}),(0,d.jsx)("span",{style:{flexShrink:0,fontSize:9,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:a.source})]},a.command))]})]})]}),v&&(0,d.jsxs)("div",{ref:aV,style:{position:"relative"},children:[(0,d.jsxs)("button",{onClick:()=>{g||(au(a=>!a),ae(!1),N(!1),aw(!1),aA(!1))},disabled:g,title:"选择 retain / recall / reflect",style:{position:"relative",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:38,height:aJ,padding:0,background:at?"var(--bg-hover)":"none",border:"none",borderRadius:aH?8:9,color:bq.length>0?"var(--accent)":"var(--text-muted)",cursor:g?"not-allowed":"pointer",opacity:g?.5:1,fontSize:13,fontWeight:700,fontFamily:"var(--font-mono)",transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{g||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color=bq.length>0?"var(--accent)":"var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=at?"var(--bg-hover)":"none",a.currentTarget.style.color=bq.length>0?"var(--accent)":"var(--text-muted)"},children:[" >_".trim(),bq.length>0&&(0,d.jsx)("span",{style:{position:"absolute",top:7,right:7,width:5,height:5,borderRadius:"50%",background:"currentColor"}})]}),at&&(0,d.jsxs)("div",{style:{...aH?bB:{position:"absolute",bottom:"calc(100% + 6px)",left:0,zIndex:100,minWidth:280,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)"},overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderBottom:"1px solid var(--border)"},children:"Memory Tools"}),Q.SN.map(a=>{let b=bq.includes(a),c=_[a];return(0,d.jsxs)("button",{onClick:()=>{v(b?bq.filter(b=>b!==a):[...bq,a])},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:aK,background:b?"var(--bg-selected)":"none",border:"none",color:b?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:aH?11:12,textAlign:"left"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="none")},children:[b?(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,d.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),(0,d.jsxs)("span",{style:{flex:1,minWidth:0,display:"flex",alignItems:"baseline",gap:8},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:c.label}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:c.description})]})]},a)})]})]}),aH&&(bs||bt)&&bL(),aH&&!g&&(0,d.jsx)(X,{open:az,triggerRef:aY,sheetStyle:bB,cardButtonStyle:{padding:"7px 8px",borderRadius:8,background:"var(--bg-panel)",border:"1px solid var(--border)",width:"100%",textAlign:"left",cursor:"pointer"},iconColor:aM,canSelectModel:bs,canAdjustThinking:bt,canAdjustTools:bu,canAdjustMemory:!!v,mobileModelSummary:bw,thinkingLabel:bv,mobileToolSummary:bx,displayMemoryLabel:br,memoryEnabled:bq.length>0,onToggle:()=>{ae(!1),au(!1),N(!1),aw(!1),ay(!1),aA(a=>!a)},onOpenModel:a=>{aA(!1),aw(!1),ay(!1),au(!1),N(!0),P(a)},onOpenTools:()=>{aA(!1),N(!1),ay(!1),au(!1),aw(!0)},onOpenMemory:()=>{aA(!1),N(!1),aw(!1),ay(!1),au(!0)}})]}),(0,d.jsx)("div",{className:"chat-input-toolbar-spacer",style:{display:aL?"none":void 0,flex:aH?"0 0 auto":1,width:aH?0:void 0,height:aH?0:void 0}}),(0,d.jsxs)("div",{className:"chat-input-toolbar-right",style:{flex:"0 0 auto",width:aH?"auto":void 0,display:"flex",alignItems:"center",gap:aH?4:2,marginLeft:aH?0:"auto",marginTop:0},children:[(!aL&&!g||aH&&av)&&bu&&(0,d.jsxs)("div",{ref:aW,style:{position:"relative"},children:[!aL&&!g&&(0,d.jsxs)("button",{onClick:()=>{g||(ae(!1),au(!1),N(!1),ay(!1),aA(!1),aw(a=>!a))},disabled:g,title:"切换工具预设",style:{display:"flex",alignItems:"center",gap:aH?3:5,padding:aK,height:aJ,background:av?"var(--bg-hover)":"none",border:"none",borderRadius:aH?8:9,color:"var(--text-muted)",cursor:g?"not-allowed":"pointer",fontSize:aH?11:12,opacity:g?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{g||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=av?"var(--bg-hover)":"none",a.currentTarget.style.color="var(--text-muted)"},children:[(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),(0,d.jsx)("span",{style:aI,children:bx})]}),av&&(0,d.jsx)("div",{style:{...aH?bB:{position:"absolute",bottom:"calc(100% + 6px)",right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)",minWidth:120},overflow:"hidden"},children:Y.map(a=>{let b=Z[a],c=(s??"full")===b,e="agent"===a&&!1===aB,f=e?"需安装 pi-subagents":$[a];return(0,d.jsxs)("button",{onClick:()=>{!e&&(aw(!1),c||t(b))},disabled:e,title:e?"运行 pi install npm:pi-subagents 后再启用":void 0,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:c?"var(--bg-selected)":"none",border:"none",color:c?"var(--text)":"var(--text-muted)",cursor:e?"not-allowed":"pointer",fontSize:aH?11:12,textAlign:"left",fontWeight:c?600:400,opacity:e?.5:1,whiteSpace:"nowrap"},onMouseEnter:a=>{c||e||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{c||(a.currentTarget.style.background="none")},children:[c?(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,d.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),(0,d.jsx)("span",{style:{flex:1},children:a}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:f})]},a)})})]}),!aH&&(bs||bt)&&bL(),g&&(0,d.jsxs)("button",{onClick:b,title:"停止 Agent",style:{display:"flex",alignItems:"center",gap:6,padding:"8px 14px",height:aJ,background:"rgba(239,68,68,0.08)",border:"1px solid rgba(239,68,68,0.3)",borderRadius:aH?8:9,color:"#ef4444",cursor:"pointer",fontSize:aH?11:12,fontWeight:600,whiteSpace:"nowrap",letterSpacing:"-0.01em",transition:"background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="rgba(239,68,68,0.16)"},onMouseLeave:a=>{a.currentTarget.style.background="rgba(239,68,68,0.08)"},children:[(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,d.jsx)("rect",{x:"1.5",y:"1.5",width:"7",height:"7",rx:"1.5",fill:"currentColor"})}),"Stop"]})]})]})]})]})});function ak(a){return"user"===a.role?{bg:"rgba(37,99,235,0.18)",border:"rgba(37,99,235,0.7)"}:{bg:"rgba(107,114,128,0.12)",border:"rgba(107,114,128,0.5)"}}function al({messages:a,streamingMessage:b,scrollContainer:c,messageRefs:f}){let[g,h]=(0,e.useState)(0),[i,j]=(0,e.useState)(1),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)([]),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=(0,e.useRef)(!1),t=(0,e.useRef)(null),u=(0,e.useMemo)(()=>b?[...a,b]:a,[a,b]),v=(0,e.useRef)(u);v.current=u;let w=(0,e.useRef)(null);w.current=()=>{let a=c.current;if(!a)return;let b=a.scrollHeight,d=a.clientHeight,e=b-d;l(e>20),e<=0?(h(0),j(1)):(h(a.scrollTop/e),j(d/b));let g=f.current,i=[],k=0,m=v.current;for(let c=0;c<m.length;c++){let d=m[c];if("user"!==d.role&&"assistant"!==d.role)continue;let e=g?.[k];if(k++,("user"===d.role||"assistant"===d.role&&(d.content??[]).some(a=>"text"===a.type))&&e&&b>0){let c=e.getBoundingClientRect(),f=a.getBoundingClientRect(),g=c.top-f.top+a.scrollTop,h=c.height;i.push({topRatio:g/b,heightRatio:h/b,msg:d,index:i.length})}}n(i)},(0,e.useCallback)(()=>w.current(),[]);let x=(0,e.useCallback)(a=>{let b=c.current;if(!b)return;let d=b.scrollHeight-b.clientHeight;d<=0||(b.scrollTop=Math.max(0,Math.min(1-i,a))/(1-i)*d)},[c,i]),y=(0,e.useCallback)(a=>{if(!k)return;s.current=!0;let b=a.currentTarget.getBoundingClientRect(),c=(a.clientY-b.top)/b.height,d=c-g*(1-i),e=d>=0&&d<=i?d:i/2;x(c-e);let f=a=>{s.current&&x((a.clientY-b.top)/b.height-e)},h=()=>{s.current=!1,window.removeEventListener("mousemove",f),window.removeEventListener("mouseup",h)};window.addEventListener("mousemove",f),window.addEventListener("mouseup",h)},[k,i,g,x]),z=t.current?.clientHeight??600,A=(0,e.useMemo)(()=>{if(!o||0===m.length)return[];let a=m.map(a=>Math.round(a.topRatio*z-11));for(let b=0;b<10;b++){for(let b=1;b<a.length;b++){let c=a[b-1]+22+2;a[b]<c&&(a[b]=c)}for(let b=a.length-2;b>=0;b--){let c=a[b+1]-22-2;a[b]>c&&(a[b]=c)}}for(let b=0;b<a.length;b++)a[b]=Math.max(0,Math.min(z-22,a[b]));return a},[o,m,z]);if(!k)return null;let B=g*(1-i)*100,C=100*i,D=null!==q&&m.length>0?m.reduce((a,b)=>Math.abs(b.topRatio-q)<Math.abs(m[a].topRatio-q)?b.index:a,0):null;return(0,d.jsxs)("div",{ref:t,onMouseDown:y,onMouseEnter:()=>p(!0),onMouseLeave:()=>{p(!1),r(null)},onMouseMove:a=>{let b=a.currentTarget.getBoundingClientRect();r((a.clientY-b.top)/b.height)},style:{width:36,flexShrink:0,position:"relative",cursor:"default",userSelect:"none",borderLeft:"1px solid var(--border)",background:"var(--bg-panel)",overflow:"visible"},children:[(0,d.jsx)("div",{style:{position:"absolute",left:0,right:0,top:`${B}%`,height:`${C}%`,background:"rgba(100,100,100,0.1)",borderTop:"1px solid rgba(100,100,100,0.2)",borderBottom:"1px solid rgba(100,100,100,0.2)",pointerEvents:"none",zIndex:1}}),m.map(a=>{let b=ak(a.msg),c=o&&D===a.index,e="user"===a.msg.role,f=100*a.topRatio;return(0,d.jsx)("div",{style:{position:"absolute",top:`${f}%`,transform:"translateY(-50%)",left:0,right:0,height:"12px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:2},children:(0,d.jsx)("div",{style:{width:e?8:6,height:e?8:6,borderRadius:e?2:"50%",background:b.bg,border:`1.5px solid ${b.border}`,flexShrink:0,transition:"transform 0.1s",transform:c?"scale(1.6)":"scale(1)"}})},a.index)}),(0,d.jsx)("div",{style:{position:"absolute",left:"50%",top:0,bottom:0,width:1,background:"var(--border)",transform:"translateX(-50%)",zIndex:0}}),o&&m.map((a,b)=>{let c=function(a){if("user"===a.role){let b=a.content;return"string"==typeof b?b.slice(0,200):Array.isArray(b)?b.filter(a=>"text"===a.type&&a.text).map(a=>a.text).join("\n").slice(0,200):""}if("assistant"===a.role){let b=a.content??[],c=b.filter(a=>"text"===a.type).map(a=>a.text).join(" ");if(c)return c.slice(0,200);let d=b.filter(a=>"toolCall"===a.type).map(a=>a.toolName);if(d.length)return d.join(", ")}return""}(a.msg),e=ak(a.msg),f=D===a.index;return c&&0!==A.length?(0,d.jsx)("div",{style:{position:"absolute",top:A[b],right:"100%",marginRight:6,background:"var(--bg)",borderTop:`1px solid ${f?e.border:"var(--border)"}`,borderRight:`1px solid ${f?e.border:"var(--border)"}`,borderBottom:`1px solid ${f?e.border:"var(--border)"}`,borderLeft:`2px solid ${e.border}`,borderRadius:4,padding:"2px 7px",width:200,zIndex:100,pointerEvents:"none",opacity:f?1:.45,transition:"top 0.1s, opacity 0.1s"},children:(0,d.jsx)("div",{style:{fontSize:11,color:f?"var(--text)":"var(--text-muted)",lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:c})},a.index):null})]})}function am(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function an(a,b=220){if(!a)return;let c=a.trim();if(c)return c.length>b?`${c.slice(0,b)}...`:c}function ao(...a){for(let b of a)if("string"==typeof b&&b.trim())return b}function ap(...a){for(let b of a)if("number"==typeof b&&Number.isFinite(b))return b}function aq(a){let b=new Map;for(let c of a){if("custom"===c.role&&"subagent-notify"===c.customType&&"string"==typeof c.content){let a=c.content.match(/^Background task (completed|failed|paused):\s*\*\*(.+?)\*\*(?:\s+\((.+?)\))?/);if(a){let d=`bg-${a[2]}-${c.timestamp??""}`;b.set(d,{id:d,agent:a[2],status:a[1],task:a[3],summary:an(c.content.split("\n").slice(3).join("\n")),timestamp:c.timestamp})}}if("assistant"===c.role){let a=c.content;if(!a)continue;for(let d of a)if("toolCall"===d.type&&"subagent"===d.toolName&&d.input){let a=d.input,e=a.agent??(a.chain?"chain":a.tasks?"parallel":a.action??"subagent"),f="string"==typeof a.task?a.task:void 0,g=d.toolCallId??`sub-${e}-${c.timestamp??Date.now()}`;b.set(g,{id:g,agent:e,status:"running",task:f,timestamp:c.timestamp})}}if("toolResult"===c.role){if(c.toolName&&"subagent"!==c.toolName||!c.toolCallId||!b.has(c.toolCallId))continue;let a=b.get(c.toolCallId),d=c.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n");b.set(c.toolCallId,function(a,b,c){let d;if(!am(b))return{...a,summary:an(c)};let e=Array.isArray(b.results)?b.results.filter(am):[],f=e[0],g=f?.progressSummary,h=f&&(d=f.artifactPaths)?Object.values(d).filter(a=>"string"==typeof a&&a.trim().length>0):[],i=ao(f?.finalOutput,f?.output,c);return{...a,mode:ao(b.mode),runId:ao(b.runId),agent:ao(f?.agent,a.agent)??a.agent,task:ao(f?.task,a.task),summary:an(i),model:ao(f?.model),durationMs:ap(g?.durationMs),toolCount:ap(g?.toolCount),tokens:ap(g?.tokens),outputPath:ao(f?.savedOutputPath,f?.artifactPaths?.outputPath),sessionFile:ao(f?.sessionFile,f?.artifactPaths?.jsonlPath),artifacts:h,resultCount:e.length||void 0}}({...a,status:function(a){if(a.isError)return"failed";let b=a.details;return am(b)&&Array.isArray(b.results)&&b.results.some(a=>am(a)&&"number"==typeof a.exitCode&&0!==a.exitCode)?"failed":"completed"}(c)},c.details,d))}}return Array.from(b.values()).sort((a,b)=>(b.timestamp??0)-(a.timestamp??0))}function ar({messages:a,runs:b}){let c=(0,e.useMemo)(()=>aq(a??[]),[a]),f=b??c,g=f.filter(a=>"running"===a.status),h=f.filter(a=>"running"!==a.status);return 0===f.length?null:(0,d.jsxs)("div",{style:{height:"100%",overflow:"auto",padding:12},children:[g.length>0&&(0,d.jsx)(as,{title:`Active (${g.length})`,runs:g}),h.length>0&&(0,d.jsx)(as,{title:`Completed (${h.length})`,runs:h,compact:g.length>0})]})}function as({title:a,runs:b,compact:c}){return(0,d.jsxs)("div",{style:{marginBottom:c?10:16},children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",marginBottom:8,textTransform:"uppercase",letterSpacing:"0.05em"},children:a}),b.map(a=>(0,d.jsx)(at,{run:a},a.id))]})}function at({run:a}){let[b,c]=(0,e.useState)(!1),f="running"===a.status,g="completed"===a.status?"#22c55e":"failed"===a.status?"#ef4444":f?"var(--accent)":"var(--text-dim)",h="failed"===a.status?"rgba(248,113,113,0.35)":f?"rgba(99,102,241,0.25)":"var(--border)",i="failed"===a.status?"rgba(248,113,113,0.05)":f?"rgba(99,102,241,0.05)":"var(--bg-panel)",j=[a.mode,a.resultCount&&a.resultCount>1?`${a.resultCount} results`:void 0,void 0!==a.toolCount?`${a.toolCount} tools`:void 0,void 0!==a.tokens?`${a.tokens.toLocaleString()} tok`:void 0,void 0!==a.durationMs?`${Math.round(a.durationMs/1e3)}s`:void 0].filter(Boolean).join(" \xb7 "),k=!!(a.summary||a.outputPath||a.sessionFile||a.artifacts?.length||a.model||a.runId);return(0,d.jsxs)("div",{style:{borderRadius:6,border:`1px solid ${h}`,background:i,marginBottom:6,fontSize:12,overflow:"hidden"},children:[(0,d.jsxs)("button",{onClick:()=>k&&c(a=>!a),style:{display:"flex",alignItems:"center",gap:7,width:"100%",border:"none",background:"transparent",padding:"8px 10px",color:"var(--text-muted)",textAlign:"left",cursor:k?"pointer":"default"},children:[(0,d.jsx)(au,{running:f,color:g}),(0,d.jsx)("span",{style:{fontWeight:650,color:"var(--text)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.agent}),(0,d.jsx)("span",{style:{color:g,fontSize:10,fontWeight:700,flexShrink:0},children:a.status}),j&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,marginLeft:"auto",whiteSpace:"nowrap"},children:j}),k&&(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:b?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),a.task&&(0,d.jsx)("div",{style:{padding:"0 10px 8px 25px",color:"var(--text-muted)",fontSize:11,lineHeight:1.4},children:an(a.task,150)}),b&&k&&(0,d.jsxs)("div",{style:{borderTop:`1px solid ${h}`,background:"var(--bg)",padding:"8px 10px",display:"flex",flexDirection:"column",gap:7},children:[a.summary&&(0,d.jsx)("pre",{style:{margin:0,color:"var(--text-muted)",fontSize:11,lineHeight:1.45,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:160,overflow:"auto"},children:a.summary}),(0,d.jsx)(av,{run:a})]})]})}function au({running:a,color:b}){return(0,d.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:b,display:"inline-block",animation:a?"pulse 1.5s infinite":void 0,flexShrink:0}})}function av({run:a}){let b=[a.model?["model",a.model]:void 0,a.runId?["run",a.runId]:void 0,a.outputPath?["output",a.outputPath]:void 0,a.sessionFile?["session",a.sessionFile]:void 0,...(a.artifacts??[]).slice(0,4).map((a,b)=>[`artifact ${b+1}`,a])].filter(Boolean);return 0===b.length?null:(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:b.map(([a,b])=>(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"58px minmax(0, 1fr)",gap:6,fontSize:10},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",textTransform:"uppercase"},children:a}),(0,d.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:b,children:b})]},`${a}:${b}`))})}var aw=c(17699);let ax=["image/","application/pdf","application/vnd.openxmlformats-officedocument","application/msword","application/vnd.ms-"];function ay(a){return ax.some(b=>a.type.startsWith(b))}function az({agentPhase:a,startedAt:b,queuedCount:c=0,onClearQueue:f}){let[g,h]=(0,e.useState)(0);return(0,d.jsxs)("div",{className:"py-2 text-[13px] text-text-muted",children:[(0,d.jsxs)("span",{className:"animate-[pulse_1.5s_infinite]",children:[function(a){if(a?.kind==="running_tools"){let b=a.tools.map(a=>a.args??a.name);if(0===b.length)return"Running tool…";if(1===b.length){let c=a.tools[0]?.progress;if(c){let a=c.length>90?`…${c.slice(-87)}`:c;return`Running ${b[0]}: ${a}`}return`Running ${b[0]}…`}return`Running ${b.slice(0,2).join(", ")}${b.length>2?` (+${b.length-2})`:""}…`}return a?.kind==="waiting_model"?"Waiting for model…":"Working…"}(a),"\xa0\xa0",function(a){if(a<60)return`${a}s`;let b=Math.floor(a/60);return`${b}m ${String(a%60).padStart(2,"0")}s`}(g)]}),c>0&&(0,d.jsxs)("span",{style:{marginLeft:10,color:"var(--text-dim)",fontSize:11.5},children:["\xb7 ",c," queued",f&&(0,d.jsx)("button",{type:"button",onClick:f,style:{marginLeft:6,padding:"1px 6px",fontSize:10.5,color:"var(--text-muted)",background:"none",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer"},children:"Clear"})]})]})}function aA(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:String(a)}function aB({goal:a}){if(!(a&&"dropped"!==a.status))return null;let b=a.tokenBudget&&a.tokenBudget>0?Math.min(100,Math.round(a.tokensUsed/a.tokenBudget*100)):null;return(0,d.jsx)("div",{style:{marginBottom:16,borderRadius:10,border:"1px solid var(--border)",background:"var(--bg-panel)",overflow:"hidden"},children:(0,d.jsxs)("div",{style:{padding:"10px 14px"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:6},children:[(0,d.jsx)("span",{style:{flexShrink:0,borderRadius:4,padding:"1px 6px",fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"#fff",background:function(a){switch(a){case"active":return"rgba(37,99,235,0.85)";case"complete":return"rgba(34,197,94,0.85)";case"budget-limited":return"rgba(245,158,11,0.85)";case"paused":return"rgba(148,163,184,0.85)";case"dropped":return"rgba(239,68,68,0.85)"}}(a.status)},children:function(a){switch(a){case"active":return"进行中";case"paused":return"已暂停";case"budget-limited":return"预算受限";case"complete":return"已完成";case"dropped":return"已放弃"}}(a.status)}),(0,d.jsx)("span",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)"},children:"Goal"})]}),(0,d.jsx)("p",{style:{margin:"0 0 6px",fontSize:13,lineHeight:1.5,color:"var(--text)",whiteSpace:"pre-wrap"},children:a.objective}),(0,d.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"4px 16px",fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)("span",{children:function(a){if(a<60)return`${a}s`;let b=Math.floor(a/60);if(b<60)return`${b}m ${String(a%60).padStart(2,"0")}s`;let c=Math.floor(b/60);return`${c}h ${b%60}m`}(a.timeUsedSeconds)}),(0,d.jsxs)("span",{children:[aA(a.tokensUsed),a.tokenBudget?` / ${aA(a.tokenBudget)} tokens`:" tokens"]}),null!=b&&(0,d.jsxs)("span",{children:[b,"%"]})]}),null!=b&&(0,d.jsx)("div",{style:{marginTop:6,height:3,borderRadius:999,overflow:"hidden",background:"var(--border)"},children:(0,d.jsx)("div",{style:{height:"100%",borderRadius:999,background:b>=100?"rgba(239,68,68,0.6)":"rgba(37,99,235,0.5)",width:`${Math.min(b,100)}%`,transition:"width 0.3s"}})})]})})}function aC({cwd:a}){let[b,c]=(0,e.useState)(null),[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(!1);if(!a||!b?.requiresTrust||b.trusted)return null;let l=async()=>{if(!f){g(!0),i(null);try{let b=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})}),d=await b.json();if(!b.ok||d.error)throw Error(d.error??`HTTP ${b.status}`);c({...d,requiresTrust:!0,trusted:!0}),k((d.busy?.length??0)>0)}catch(a){i(a instanceof Error?a.message:String(a))}finally{g(!1)}}};return(0,d.jsxs)("div",{style:{margin:"0 0 10px",padding:"9px 12px",border:"1px solid rgba(245,158,11,0.38)",background:"rgba(245,158,11,0.08)",borderRadius:8,display:"flex",alignItems:"flex-start",gap:10,fontSize:12,lineHeight:1.45},children:[(0,d.jsx)("span",{"aria-hidden":!0,style:{fontSize:14,lineHeight:1.2},children:"⚠"}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0,color:"var(--text)"},children:[(0,d.jsx)("div",{style:{fontWeight:600,marginBottom:2},children:"This project contains untrusted pi resources"}),(0,d.jsxs)("div",{style:{color:"var(--text-muted)"},children:["Project-local extensions, settings and skills stay disabled until you trust this directory. The decision is shared with the ",(0,d.jsx)("code",{children:"pi"})," CLI."]}),j&&(0,d.jsx)("div",{style:{marginTop:4,color:"var(--text-muted)"},children:"A session is currently running. Trust is applied the next time it starts."}),h&&(0,d.jsx)("div",{style:{marginTop:4,color:"#f87171"},children:h})]}),(0,d.jsx)("button",{onClick:l,disabled:f,style:{flexShrink:0,padding:"4px 10px",fontSize:11.5,fontWeight:600,color:"var(--text)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,cursor:f?"default":"pointer",opacity:f?.6:1},children:f?"Trusting…":"Trust project"})]})}var aD=c(4424);function aE({statuses:a,widgets:b}){return 0===a.length&&0===b.length?null:(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,marginBottom:6},children:[a.length>0&&(0,d.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:a.map(a=>(0,d.jsx)("span",{title:a.key,style:{padding:"2px 7px",fontSize:10.5,color:"var(--text-muted)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:999,whiteSpace:"nowrap"},children:a.text},a.key))}),b.map(a=>(0,d.jsx)("pre",{style:{margin:0,padding:"7px 9px",fontSize:11,lineHeight:1.45,color:"var(--text-muted)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,overflow:"auto",maxHeight:160,whiteSpace:"pre-wrap",fontFamily:"var(--font-mono)"},children:a.lines.join("\n")},a.key))]})}function aF({notices:a,onDismiss:b}){return 0===a.length?null:(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:5,margin:"0 0 8px"},children:a.map(a=>{let c="error"===a.type?"#f87171":"warning"===a.type?"#fbbf24":"var(--text-muted)";return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,padding:"6px 9px",fontSize:11.5,lineHeight:1.45,color:c,background:"var(--bg-panel)",border:`1px solid ${"error"===a.type?"rgba(248,113,113,0.35)":"var(--border)"}`,borderRadius:6},children:[(0,d.jsx)("span",{style:{flex:1,minWidth:0,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a.message}),(0,d.jsx)("button",{type:"button",onClick:()=>b(a.id),style:{flexShrink:0,padding:0,width:18,height:18,lineHeight:"16px",color:"var(--text-dim)",background:"none",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer"},"aria-label":"Dismiss",children:"\xd7"})]},a.id)})})}function aG({request:a,onRespond:b}){let[c,f]=(0,e.useState)(a.prefill??""),g=(0,e.useRef)(null),h=()=>b(a.id,{cancelled:!0});return(0,d.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1200,background:"rgba(0,0,0,0.38)",display:"flex",alignItems:"center",justifyContent:"center",padding:16},onClick:a=>{a.target===a.currentTarget&&h()},children:(0,d.jsxs)("div",{role:"dialog","aria-modal":"true",style:{width:440,maxWidth:"100%",maxHeight:"80vh",overflow:"auto",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 12px 40px rgba(0,0,0,0.28)",padding:14},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:8,whiteSpace:"pre-wrap"},children:a.title||"Extension request"}),"confirm"===a.method&&a.message&&(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.55,marginBottom:12,whiteSpace:"pre-wrap"},children:a.message}),"select"===a.method&&(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:5,marginBottom:12},children:(a.options??[]).map((c,e)=>(0,d.jsx)("button",{type:"button",onClick:()=>b(a.id,{value:c}),style:{padding:"7px 10px",fontSize:12,textAlign:"left",color:"var(--text)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer"},children:c},`${c}-${e}`))}),("input"===a.method||"editor"===a.method)&&(0,d.jsx)("div",{style:{marginBottom:12},children:"input"===a.method?(0,d.jsx)("input",{ref:a=>{g.current=a},value:c,onChange:a=>f(a.target.value),onKeyDown:d=>{"Enter"===d.key&&b(a.id,{value:c})},placeholder:a.placeholder??"",style:{width:"100%",boxSizing:"border-box",padding:"7px 9px",fontSize:12,color:"var(--text)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,outline:"none"}}):(0,d.jsx)("textarea",{ref:a=>{g.current=a},value:c,onChange:a=>f(a.target.value),rows:8,style:{width:"100%",boxSizing:"border-box",padding:"7px 9px",fontSize:12,lineHeight:1.5,color:"var(--text)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,resize:"vertical",outline:"none"}})}),(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:[(0,d.jsx)("button",{type:"button",onClick:h,style:{padding:"5px 11px",fontSize:12,color:"var(--text-muted)",background:"none",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer"},children:"Cancel"}),"select"!==a.method&&(0,d.jsx)("button",{type:"button",onClick:()=>"confirm"===a.method?b(a.id,{confirmed:!0}):b(a.id,{value:c}),style:{padding:"5px 12px",fontSize:12,fontWeight:600,color:"var(--text)",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer"},children:"confirm"===a.method?"Confirm":"OK"})]})]})})}var aH=c(1453);async function aI(){return null}function aJ(a){let b=a.content;return"string"==typeof b?b:Array.isArray(b)?b.filter(a=>!!a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n"):""}let aK=["annotate and analyze.","vibe code bioinformatics.","turn data into figures.","inspect your project.","build a reproducible report.","run R/Python plots.","summarize that paper.","review the pipeline.","compare markers.","draft methods.","find the next analysis step."];function aL({phrases:a}){let[b,c]=(0,e.useState)(()=>Math.floor(Math.random()*a.length)),[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!0);return(0,d.jsxs)("span",{style:{color:"var(--text-muted)",fontWeight:400},children:[f,(0,d.jsx)("span",{style:{opacity:+!!j,color:"var(--accent)",marginLeft:1},children:"▍"})]})}function aM({status:a}){let b=a?.current??"0.8.143"??"0.0.0";if(a?.updateAvailable){let c=a.latest?`v${a.latest}`:"latest";return(0,d.jsxs)("span",{title:`Current v${b}; latest ${c}; run ${a.updateCommand}`,style:{display:"block",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--accent)"},children:["Update: ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)",color:"var(--accent)"},children:a.updateCommand})]})}return(0,d.jsxs)("span",{title:`AnnoVibe v${b}`,style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:["v",b]})}function aN({session:a,newSessionCwd:b,onAgentEnd:c,onSessionCreated:f,onSessionForked:g,modelsRefreshKey:h,chatInputRef:i,onBranchDataChange:j,onSessionStatsChange:k,onContextUsageChange:l,generativeUI:m,forkSettings:n,activeFilePath:o,onOpenFileAtLine:p}){var q;let r,[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(!1),w=o&&!u?o:null,x=a?.name?.trim()||(a?.cwd?a.cwd.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop():"")||"",y=(0,e.useCallback)(()=>{(function(a={visibilityState:document.visibilityState,hasFocus:document.hasFocus()}){return"visible"!==a.visibilityState||!a.hasFocus})()&&function(a,b={}){if(function(a={}){return!1}(b))try{let c=(b.createNotification??((a,b)=>new Notification(a,b)))(a.title,{body:a.body,tag:a.tag,silent:!1});c.onclick=()=>{try{window.focus()}catch{}a.onClick?.(),c.close()}}catch{return!1}}({title:x?`${C} \xb7 ${x}`:C,body:"Agent finished",tag:`agent-done-${a?.id??"new"}`}),c?.()},[x,c,a?.id]),{data:z,loading:A,error:B,messages:D,entryIds:E,streamState:F,agentRunning:G,modelNames:H,modelList:I,modelThinkingLevels:J,modelThinkingLevelMaps:K,toolPreset:L,memoryTools:M,thinkingLevel:N,slashCommands:O,retryInfo:Q,queuedMessages:R,contextUsage:S,forkingEntryId:T,isCompacting:U,compactError:V,compactInfo:W,displayModel:X,sessionStats:Y,agentPhase:Z,agentError:$,extensionStatuses:_,extensionWidgets:aa,extensionDialog:ab,extensionNotices:ac,bashLive:ad,bashRunning:ae,respondToExtensionUi:af,dismissExtensionNotice:ag,isNew:ah,loadMoreMessages:ai,hasMoreMessages:ak,totalMessages:am,loadedMessagesCount:an,loadShadowedMessages:ao,messagesEndRef:ap,scrollContainerRef:as,lastUserMsgRef:at,handleSend:au,handleAbort:av,handleFork:ax,handleNavigate:aA,handleModelChange:aO,handleCompact:aP,handleSteer:aQ,handleFollowUp:aR,handleAbortCompaction:aS,handleToolPresetChange:aT,handleMemoryToolsChange:aU,handleThinkingLevelChange:aV,handleClearQueue:aW,handleBash:aX,handleAgentEventRef:aY,forkToNewSession:aZ}=(0,aw.T)({chatInputRef:i,session:a,newSessionCwd:b,onAgentEnd:y,onSessionCreated:f,onSessionForked:g,modelsRefreshKey:h,onBranchDataChange:j}),a$=(0,e.useCallback)(()=>{aI()},[]),a_=(0,e.useMemo)(()=>{let a=new Map;for(let b of z?.context.compactions??[])a.set(b.entryId,b.shadowedCount);return a},[z?.context.compactions]),[a0,a1]=(0,e.useState)(!1),[a2,a3]=(0,e.useState)(null);(0,e.useRef)(!1);let a4=n??{enabled:!0,suggestTokens:18e4,autoTokens:4e5,minMessages:20},a5=(0,e.useCallback)(()=>{let c=z?.info?.cwd??a?.cwd??b??null,d=D.filter(a=>"user"===a.role||"assistant"===a.role),e=d.filter(a=>"user"===a.role),f=d.filter(a=>"assistant"===a.role),g=e[0],h=e[e.length-1],i=f[f.length-1],j=(a,b)=>{let c=a.replace(/\s+/g," ").trim();return c.length>b?`${c.slice(0,b)}…`:c};return["以下是从父会话 fork 出的新会话。工作仍在原项目目录中进行,但本会话只携带精简摘要,完整历史不再重发(避免模型 prefill 变慢)。",c?`工作目录: ${c}`:"",g?`最初目标: ${j(aJ(g),500)}`:"",h?`最近一次请求: ${j(aJ(h),500)}`:"",i?`最近回复要点: ${j(aJ(i),900)}`:"",`父会话共 ${am||d.length} 条消息。若需要更早的细节,请说明是哪个任务,我会让你查看父会话文件或重新提供。`].filter(Boolean).join("\n\n")},[z?.info?.cwd,a?.cwd,b,D,am]),a6=(0,e.useCallback)(async()=>{if(G||a0)return{ok:!1,error:"Session is busy"};a1(!0),a3(null);try{let a=await aZ(a5());return a.ok||a3(a.error??"Fork failed"),a}finally{a1(!1)}},[G,a0,aZ,a5]),a7=S?.tokens??null,a8=D.filter(a=>"user"===a.role||"assistant"===a.role).length,a9=!ah&&!G&&a4.enabled&&null!=a7&&a7>=a4.suggestTokens&&a8>=a4.minMessages;aY.current,Y&&(Y.tokens.input,Y.tokens.output,Y.tokens.cacheRead,Y.tokens.cacheWrite),(0,e.useRef)(Y).current=Y,S&&(S.percent,S.contextWindow,S.tokens),(0,e.useRef)(S).current=S;let ba=(0,e.useCallback)(a=>{i?.current?.addFiles(a)},[i]),bb=(0,e.useCallback)((a,b,c)=>{let d=c?.findIndex(b=>b.src===a)??-1;bk({src:a,gallery:c,index:d>=0?d:0})},[]),{isDragOver:bc,handleDragEnter:bd,handleDragOver:be,handleDragLeave:bf,handleDrop:bg}=function(a){let[b,c]=(0,e.useState)(!1),d=(0,e.useRef)(0),f=(0,e.useCallback)(a=>{Array.from(a.dataTransfer.items).some(ay)&&(a.preventDefault(),d.current+=1,c(!0))},[]),g=(0,e.useCallback)(a=>{Array.from(a.dataTransfer.items).some(ay)&&a.preventDefault()},[]);return{isDragOver:b,handleDragEnter:f,handleDragOver:g,handleDragLeave:(0,e.useCallback)(()=>{d.current-=1,d.current<=0&&(d.current=0,c(!1))},[]),handleDrop:(0,e.useCallback)(b=>{b.preventDefault(),d.current=0,c(!1),a(Array.from(b.dataTransfer.files))},[a])}}(ba),[bh,bi]=(0,e.useState)(null),[bj,bk]=(0,e.useState)(null),bl=D.filter(a=>"user"===a.role||"assistant"===a.role),bm=(q=bl.length,(r=(0,e.useRef)([])).current=Array(q).fill(null).map((a,b)=>r.current[b]??null),r),bn=(0,e.useMemo)(()=>{let a=new Map;for(let b of D)"toolResult"===b.role&&a.set(b.toolCallId,b);return a},[D]),bo=ah&&0===D.length&&!F.isStreaming&&!G,bp=z?.info?.cwd??a?.cwd??b??null,bq=function(a){if(!a)return null;let b=a.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean);return b[b.length-1]||a}(bp),br=function(){let[a,b]=(0,e.useState)(!1);return a}(),[bs,bt]=(0,e.useState)(!1),bu=aq(D),bv=bu.filter(a=>"running"===a.status).length,bw=X?J[`${X.provider}:${X.modelId}`]??null:null,bx=X?K[`${X.provider}:${X.modelId}`]??null:null,by=a?.id??b??"new-chat",bz=(0,e.useMemo)(()=>(function(a){let b=[];for(let c=a.length-1;c>=0;c-=1){let d=a[c];if("user"!==d.role)continue;let e=d.text.trim();e&&b.push(e)}return b})(bl.map(a=>({role:a.role,text:aJ(a)}))),[bl]),bA=(0,e.useCallback)(async(a,b,c)=>{a$();let d=a;w&&a.trim()&&(d=`${a}
7
7
 
8
- [Current file: \`${w}\`]`),await av(d,b,c)},[av,w,a$]),bB=(0,d.jsxs)("div",{children:[(0,d.jsx)(aD,{notices:ac,onDismiss:ag}),(0,d.jsx)(aC,{statuses:_,widgets:aa}),(0,d.jsx)(ah,{ref:i,onSend:bA,onAbort:ay,onSteer:G&&!ae?aQ:void 0,onFollowUp:G&&!ae?aR:void 0,onBash:a?.id||A?.sessionId?(a,b)=>{a$(),aX(a,b)}:void 0,bashRunning:ae,isStreaming:G,model:X,modelNames:H,modelList:I,onModelChange:aO,onCompact:a||ai?aP:void 0,onAbortCompaction:aS,isCompacting:U,compactError:V,compactInfo:W,toolPreset:L,onToolPresetChange:a||ai?aT:void 0,memoryTools:M,onMemoryToolsChange:a||ai?aU:void 0,thinkingLevel:N,onThinkingLevelChange:a||ai?aV:void 0,availableThinkingLevels:bw,thinkingLevelMap:bx,retryInfo:Q,cornerBadge:bo?(0,d.jsx)(aK,{status:bh}):void 0,promptHistory:bz,sessionHistoryKey:by,draftKey:by,slashCommands:P,cwd:A?.info?.cwd??a?.cwd??b??void 0,activeFilePath:w,onDismissFileContext:()=>v(!0)})]}),bC=(0,e.useCallback)(a=>{G?i?.current?.insertText(a):av(a)},[G,i,av]),bD=(0,e.useCallback)((a,b,c)=>{if(G)return;let d=a.includes("```")?"````":"```",e=`${d}${b||""}
8
+ [Current file: \`${w}\`]`),await au(d,b,c)},[au,w,a$]),bB=(0,d.jsxs)("div",{children:[(0,d.jsx)(aF,{notices:ac,onDismiss:ag}),(0,d.jsx)(aE,{statuses:_,widgets:aa}),(0,d.jsx)(aj,{ref:i,onSend:bA,onAbort:av,onSteer:G&&!ae?aQ:void 0,onFollowUp:G&&!ae?aR:void 0,onBash:a?.id||z?.sessionId?(a,b)=>{a$(),aX(a,b)}:void 0,bashRunning:ae,isStreaming:G,model:X,modelNames:H,modelList:I,onModelChange:aO,onCompact:a||ah?aP:void 0,onAbortCompaction:aS,isCompacting:U,compactError:V,compactInfo:W,toolPreset:L,onToolPresetChange:a||ah?aT:void 0,memoryTools:M,onMemoryToolsChange:a||ah?aU:void 0,thinkingLevel:N,onThinkingLevelChange:a||ah?aV:void 0,availableThinkingLevels:bw,thinkingLevelMap:bx,retryInfo:Q,cornerBadge:bo?(0,d.jsx)(aM,{status:bh}):void 0,promptHistory:bz,sessionHistoryKey:by,draftKey:by,slashCommands:O,cwd:z?.info?.cwd??a?.cwd??b??void 0,activeFilePath:w,onDismissFileContext:()=>v(!0)})]}),bC=(0,e.useCallback)(a=>{G?i?.current?.insertText(a):au(a)},[G,i,au]),bD=(0,e.useCallback)((a,b,c)=>{if(G)return;let d=a.includes("```")?"````":"```",e=`${d}${b||""}
9
9
  ${a}
10
- ${d}`,f=c?` to \`${c}\``:" to the appropriate file";av(`Please write the following code${f} and then run it to show the result:
10
+ ${d}`,f=c?` to \`${c}\``:" to the appropriate file";au(`Please write the following code${f} and then run it to show the result:
11
11
 
12
- ${e}`)},[G,av]),bE=(0,e.useCallback)((a,b)=>{if(G)return;let c=a.includes("```")?"````":"```",d=`${c}${b||""}
12
+ ${e}`)},[G,au]),bE=(0,e.useCallback)((a,b)=>{if(G)return;let c=a.includes("```")?"````":"```",d=`${c}${b||""}
13
13
  ${a}
14
- ${c}`;av(`Please run the following code and show the output:
14
+ ${c}`;au(`Please run the following code and show the output:
15
15
 
16
- ${d}`)},[G,av]),bF=(0,e.useCallback)((a,b)=>{if(G)return;let c=b?` to \`${b}\``:"",d=a.includes("```")?"````":"```",e=`${d}diff
16
+ ${d}`)},[G,au]),bF=(0,e.useCallback)((a,b)=>{if(G)return;let c=b?` to \`${b}\``:"",d=a.includes("```")?"````":"```",e=`${d}diff
17
17
  ${a}
18
- ${d}`;av(`Please apply this diff${c}:
18
+ ${d}`;au(`Please apply this diff${c}:
19
19
 
20
- ${e}`)},[G,av]);return B?(0,d.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:"Loading session..."}):C?(0,d.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:C}):(0,d.jsx)(aB.o,{sessionId:A?.sessionId??a?.id??null,children:(0,d.jsxs)("div",{className:"relative flex h-full flex-col overflow-hidden",onDragEnter:bd,onDragOver:be,onDragLeave:bf,onDrop:bg,children:[bc&&(0,d.jsxs)("div",{className:"pointer-events-none absolute inset-0 z-50 flex animate-[drop-zone-in_0.15s_ease_both] items-center justify-center bg-[rgba(37,99,235,0.06)] backdrop-blur-[1px]",children:[(0,d.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(a=>(0,d.jsx)("div",{className:"absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid border-[rgba(37,99,235,0.5)] animate-[drop-ripple_2.4s_ease-out_infinite_backwards]",style:{transformOrigin:"center",animationDelay:`${a}s`}},a))}),(0,d.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"drop-shadow-[0_6px_18px_rgba(37,99,235,0.18)]",children:[(0,d.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"rgba(37,99,235,0.08)",stroke:"rgba(37,99,235,0.50)",strokeWidth:"1.8"}),(0,d.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"rgba(37,99,235,0.16)",stroke:"rgba(37,99,235,0.40)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,d.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"rgba(37,99,235,0.22)",stroke:"rgba(37,99,235,0.55)",strokeWidth:"1.6"}),(0,d.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,d.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,d.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,d.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,d.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,d.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,d.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,d.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),bo?(0,d.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto px-4 py-8",children:(0,d.jsxs)("div",{className:"w-full max-w-[820px]",children:[(0,d.jsxs)("div",{className:"mb-3",style:{display:"flex",flexDirection:"column",alignItems:"stretch",justifyContent:"flex-start",gap:10,marginLeft:16,marginRight:16,fontFamily:"var(--font-mono)"},children:[bq&&(0,d.jsxs)("div",{style:{padding:br?"7px 9px":"9px 12px",border:"1px solid var(--border)",borderRadius:br?9:10,background:"var(--bg-panel)",minWidth:0,display:"flex",alignItems:"flex-start",gap:br?8:10,boxShadow:"none"},children:[(0,d.jsx)("div",{"aria-hidden":!0,style:{flex:"0 0 auto",width:br?18:20,height:br?18:20,borderRadius:6,marginTop:1,background:"rgba(37,99,235,0.10)",border:"1px solid rgba(37,99,235,0.20)",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--accent)"},children:(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M3 7.5 12 4l9 3.5-9 3.5-9-3.5Z"}),(0,d.jsx)("path",{d:"M7 10v4.5c0 .8 2.2 2 5 2s5-1.2 5-2V10"})]})}),(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("div",{style:{fontSize:9,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.08em",marginBottom:2},children:"Current Project"}),(0,d.jsx)("div",{style:{fontSize:br?12.5:14,color:"var(--text)",fontWeight:700,lineHeight:1.3,wordBreak:"break-word"},children:bq}),bp&&(0,d.jsx)("div",{title:bp,style:{fontSize:10.5,color:"var(--text-dim)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:bp})]})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0,flex:1,lineHeight:1.4},children:[(0,d.jsx)("span",{style:{fontSize:23,color:"var(--text)",fontWeight:750,letterSpacing:0},children:z}),(0,d.jsx)("span",{style:{fontSize:14,minWidth:0,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:(0,d.jsx)(aJ,{phrases:aI})})]})]}),(0,d.jsx)(aA,{cwd:bp}),bB]})}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative flex flex-1 overflow-hidden",children:[(0,d.jsx)("div",{ref:as,className:"flex-1 overflow-y-auto pt-4 [scrollbar-width:none]",children:(0,d.jsxs)("div",{className:"mx-auto max-w-[820px] px-4",style:br?{paddingBottom:"calc(env(safe-area-inset-bottom, 0px) + 128px)"}:void 0,children:[(0,d.jsx)(aA,{cwd:bp}),(0,d.jsx)(az,{goal:A?.sessionMeta?.goal??null}),(()=>{let c=-1;for(let a=D.length-1;a>=0;a--)if("user"===D[a].role){c=a;break}let e=-1;for(let a=D.length-1;a>=0;a--)if("assistant"===D[a].role){e=a;break}let f=0;return(0,d.jsxs)(d.Fragment,{children:[al&&D.length>0&&(0,d.jsx)("div",{style:{textAlign:"center",padding:"8px 0 4px"},children:(0,d.jsxs)("button",{onClick:()=>ak(),style:{padding:"6px 16px",fontSize:11,color:"var(--accent)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer",transition:"background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-panel)"},children:["Load ",am-an," earlier message",am-an==1?"":"s"]})}),D.map((g,h)=>{let j="user"===g.role&&h>0&&"assistant"===D[h-1].role?E[h-1]:void 0,k="user"===g.role||"assistant"===g.role,l=k?f++:-1,n=!1;if("assistant"===g.role){n=!0;for(let a=h+1;a<D.length;a++){let b=D[a].role;if("user"===b)break;if("assistant"===b){n=!1;break}}n&&F.isStreaming&&h===D.length-1&&(n=!1)}let o=(0,d.jsx)(O.D,{message:g,toolResults:bn,modelNames:H,entryId:E[h],sessionId:A?.sessionId??a?.id??null,compactionShadowCount:a_.get(E[h]??""),onLoadShadowed:aq,onFork:G||ai||0===h&&"user"===g.role?void 0:aM,forking:T===E[h],onNavigate:G?void 0:aN,prevAssistantEntryId:G?void 0:j,onEditContent:a=>i?.current?.insertIfEmpty(a),onSendMessage:bC,showTimestamp:n,prevTimestamp:h>0?D[h-1].timestamp:void 0,renderVisualCodeBlocks:!!m,cwd:A?.info?.cwd??a?.cwd??b??void 0,onOpenImage:bb,activeFilePath:w,agentRunning:G,onApplyToFile:bD,onRunCode:bE,onOpenFileAtLine:p,onAcceptDiff:bF,forkFresh:a9&&h===e?{show:!0,busy:a0,error:a2,onFork:()=>void a6()}:void 0},h);return k?(0,d.jsx)("div",{ref:a=>{bm.current[l]=a,h===c&&(at.current=a)},style:{contentVisibility:"auto",containIntrinsicSize:"auto 100px"},children:o},h):o})]})})(),G&&(0,d.jsx)(ax,{agentPhase:Z,startedAt:s,queuedCount:R.steering.length+R.followUp.length,onClearQueue:aW}),F.isStreaming&&F.streamingMessage&&(0,d.jsx)(O.D,{sessionId:A?.sessionId??a?.id??null,message:F.streamingMessage,isStreaming:!0,toolResults:bn,modelNames:H,onSendMessage:bC,renderVisualCodeBlocks:!!m,cwd:A?.info?.cwd??a?.cwd??b??void 0,activeFilePath:w,agentRunning:G,onApplyToFile:bD,onRunCode:bE,onOpenFileAtLine:p,onAcceptDiff:bF}),G&&!F.streamingMessage&&(0,d.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,d.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:function(a){if(a?.kind==="running_tools"){let b=a.tools.map(a=>a.name);if(0===b.length)return"Running tool...";if(1===b.length){let c=a.tools[0]?.progress;if(c){let a=c.length>90?`...${c.slice(-87)}`:c;return`Running ${b[0]}: ${a}`}return`Running ${b[0]}...`}return b.length<=3?`Running ${b.join(", ")}...`:`Running ${b.slice(0,2).join(", ")} (+${b.length-2})...`}return a?.kind==="waiting_model"?"Waiting for model...":"Thinking..."}(Z)})}),A?.info?.cwd&&!1===A.info.cwdExists&&(0,d.jsxs)("div",{className:"my-3 rounded-[7px] border border-[rgba(248,113,113,0.35)] bg-[rgba(248,113,113,0.07)] px-3 py-2 text-[12px] leading-relaxed text-red-400",children:["Project directory no longer exists: ",(0,d.jsx)("code",{className:"font-mono",children:A.info.cwd})]}),$&&(0,d.jsx)("div",{className:"my-3 rounded-[7px] border border-[rgba(248,113,113,0.35)] bg-[rgba(248,113,113,0.07)] px-3 py-2 text-[12px] leading-relaxed text-red-400",children:$}),G&&(0,d.jsx)("div",{style:{height:as.current?as.current.clientHeight:"80vh"}}),(0,d.jsx)("div",{ref:ar})]})}),!br&&(0,d.jsx)(aj,{messages:D,streamingMessage:F.streamingMessage,scrollContainer:as,messageRefs:bm}),bu.length>0&&(0,d.jsxs)("button",{onClick:()=>bt(a=>!a),title:bs?"Hide subagent runs":"Show subagent runs",style:{position:"absolute",right:br?8:bs?260:40,top:8,minWidth:28,height:28,display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:bv>0||bu.length>1?"0 8px":0,background:bs?"var(--bg-selected)":"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:bs?"var(--accent)":"var(--text-dim)",cursor:"pointer",zIndex:30,fontSize:12,transition:"right 0.2s ease, background 0.12s"},onMouseEnter:a=>{bs||(a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{bs||(a.currentTarget.style.color="var(--text-dim)")},children:[(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"}),(0,d.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,d.jsx)("path",{d:"M23 21v-2a4 4 0 0 0-3-3.87"}),(0,d.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"})]}),(bv>0||bu.length>1)&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,fontSize:10,fontWeight:700,color:bv>0?"var(--accent)":"var(--text-dim)"},children:[bv>0&&(0,d.jsxs)("span",{children:[bv," active"]}),(0,d.jsx)("span",{children:bu.length})]})]}),bs&&bu.length>0&&(0,d.jsxs)("div",{style:{position:"absolute",right:br?8:48,top:4,bottom:4,width:br?"calc(100vw - 16px)":250,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"-2px 0 12px rgba(0,0,0,0.08)",zIndex:25,overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"6px 12px",fontSize:11,fontWeight:600,color:"var(--text-dim)",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Subagents"}),(0,d.jsx)(ap,{runs:bu})]})]}),(0,d.jsxs)("div",{className:"relative",children:[ad&&(0,d.jsx)("div",{className:"mx-auto w-full max-w-[820px] px-4 pb-2",children:(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{padding:"6px 10px",borderBottom:"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:11.5,color:"var(--text)"},children:[(0,d.jsx)("span",{style:{color:"var(--accent)"},children:"$"})," ",ad.command]}),(0,d.jsx)(aF.m,{text:ad.output||"Running…",maxHeight:260,collapsible:!0,background:"var(--bg)",textColor:"var(--text-muted)"})]})}),bB]})]}),ab&&(0,d.jsx)(aE,{request:ab,onRespond:af}),bj&&(0,d.jsxs)("div",{style:{position:"fixed",inset:0,zIndex:100,background:"rgba(0,0,0,0.85)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"zoom-out"},onClick:()=>bk(null),children:[bj.gallery&&bj.gallery.length>1&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{style:{position:"absolute",left:16,top:"50%",transform:"translateY(-50%)",background:"rgba(255,255,255,0.15)",border:"none",borderRadius:8,color:"#fff",fontSize:28,width:44,height:44,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:101},onClick:a=>{a.stopPropagation();let b=((bj.index??0)-1+bj.gallery.length)%bj.gallery.length;bk({...bj,src:bj.gallery[b].src,index:b})},children:"←"}),(0,d.jsx)("button",{style:{position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",background:"rgba(255,255,255,0.15)",border:"none",borderRadius:8,color:"#fff",fontSize:28,width:44,height:44,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:101},onClick:a=>{a.stopPropagation();let b=((bj.index??0)+1)%bj.gallery.length;bk({...bj,src:bj.gallery[b].src,index:b})},children:"→"})]}),(0,d.jsx)("img",{src:bj.src,alt:"",style:{maxWidth:"95vw",maxHeight:"95vh",objectFit:"contain",borderRadius:8,boxShadow:"0 8px 40px rgba(0,0,0,0.5)"}}),(0,d.jsx)("div",{style:{position:"absolute",bottom:16,left:"50%",transform:"translateX(-50%)",background:"rgba(0,0,0,0.5)",color:"rgba(255,255,255,0.7)",borderRadius:6,padding:"4px 12px",fontSize:12},children:bj.gallery&&bj.gallery.length>1?`${(bj.index??0)+1} / ${bj.gallery.length}`:"Click anywhere to close"})]})]})})}var aM=c(90707),aN=c(52515);class aO extends f().Component{static getDerivedStateFromError(a){return{hasError:!0,message:a instanceof Error?a.message:String(a)}}componentDidCatch(a,b){console.error("File viewer crashed",{filePath:this.props.filePath,error:a,componentStack:b.componentStack})}componentDidUpdate(a){a.filePath!==this.props.filePath&&this.state.hasError&&this.setState({hasError:!1,message:null})}render(){return this.state.hasError?(0,d.jsx)(aN.fj,{style:{background:"var(--bg)"},children:(0,d.jsx)(aN.nG,{tone:"error",children:(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,alignItems:"center",textAlign:"center"},children:[(0,d.jsx)("div",{children:"Preview crashed for this file."}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",maxWidth:560,wordBreak:"break-word"},children:this.props.filePath}),this.state.message&&(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",maxWidth:560,wordBreak:"break-word"},children:this.state.message})]})})}):this.props.children}constructor(...a){super(...a),this.state={hasError:!1,message:null}}}function aP(a,b,c){return Math.min(Math.max(a,b),c)}function aQ({id:a,filePath:b,fileName:c,cwd:f,active:g,stackIndex:h,zIndex:i,onClose:j,onFocus:k,onOpenFile:l}){let[m,n]=(0,e.useState)(()=>{let a,b,c;return b=Math.max(320,1208-(a=h%6*28)),c=Math.max(260,828-a),{left:36+a,top:36+a,width:Math.min(1180,b),height:Math.min(820,c),maximized:!1}}),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(!1),s=(0,e.useRef)(null),t=(0,e.useRef)(null),u=(0,e.useRef)(null),v=(0,e.useCallback)(b=>{k(a),0!==b.button||m.maximized||(b.preventDefault(),b.currentTarget.setPointerCapture(b.pointerId),t.current={pointerId:b.pointerId,startX:b.clientX,startY:b.clientY,left:m.left,top:m.top},p(!0))},[m.left,m.maximized,m.top,a,k]),w=(0,e.useCallback)(a=>{let b=t.current;if(!b||b.pointerId!==a.pointerId)return;let c=b.left+a.clientX-b.startX,d=b.top+a.clientY-b.startY;n(a=>({...a,left:aP(c,8,Math.max(8,window.innerWidth-120)),top:aP(d,8,Math.max(8,window.innerHeight-48))}))},[]),x=(0,e.useCallback)(a=>{let b=t.current;b?.pointerId===a.pointerId&&(a.currentTarget.releasePointerCapture(a.pointerId),t.current=null,p(!1))},[]),y=(0,e.useCallback)(()=>{k(a),n(a=>({...a,maximized:!a.maximized}))},[a,k]),z=(0,e.useCallback)(b=>{k(a),0!==b.button||m.maximized||(b.preventDefault(),b.stopPropagation(),b.currentTarget.setPointerCapture(b.pointerId),u.current={pointerId:b.pointerId,startX:b.clientX,startY:b.clientY,width:m.width,height:m.height},r(!0))},[m.height,m.maximized,m.width,a,k]),A=(0,e.useCallback)(a=>{let b=u.current;if(!b||b.pointerId!==a.pointerId)return;let c=b.width+a.clientX-b.startX,d=b.height+a.clientY-b.startY;n(a=>({...a,width:aP(c,360,Math.max(360,window.innerWidth-a.left-8)),height:aP(d,280,Math.max(280,window.innerHeight-a.top-8))}))},[]),B=(0,e.useCallback)(a=>{let b=u.current;b?.pointerId===a.pointerId&&(a.currentTarget.releasePointerCapture(a.pointerId),u.current=null,r(!1))},[]),C=m.maximized?{position:"fixed",inset:12,zIndex:i}:{position:"fixed",left:m.left,top:m.top,width:m.width,height:m.height,zIndex:i};return(0,d.jsxs)("div",{ref:s,role:"dialog","aria-label":`Preview ${c}`,tabIndex:-1,onPointerDown:()=>k(a),onKeyDown:b=>{"Escape"===b.key&&j(a)},style:{...C,display:"flex",flexDirection:"column",minWidth:m.maximized?void 0:360,minHeight:m.maximized?void 0:280,background:"var(--bg)",border:g?"1px solid rgba(37,99,235,0.55)":"1px solid var(--border)",borderRadius:8,boxShadow:g?"0 18px 60px rgba(0,0,0,0.26)":"0 10px 34px rgba(0,0,0,0.20)",overflow:"hidden",outline:"none"},children:[(0,d.jsxs)("div",{onPointerDown:v,onPointerMove:w,onPointerUp:x,onPointerCancel:x,style:{height:34,display:"flex",alignItems:"center",gap:8,padding:"0 8px 0 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",cursor:m.maximized?"default":o?"grabbing":"grab",flexShrink:0,userSelect:"none"},children:[(0,d.jsx)("div",{style:{minWidth:0,flex:1},children:(0,d.jsx)("div",{title:b,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:650,color:"var(--text)"},children:c})}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:y,title:m.maximized?"Restore preview":"Maximize preview","aria-label":m.maximized?"Restore preview":"Maximize preview",style:aR,children:m.maximized?(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M6 3.5h6.5V10"}),(0,d.jsx)("path",{d:"M3.5 6H10v6.5H3.5z"})]}):(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M4 4h8v8H4z"})})}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:()=>j(a),title:"Close preview","aria-label":"Close preview",style:aR,children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("line",{x1:"4",y1:"4",x2:"12",y2:"12"}),(0,d.jsx)("line",{x1:"12",y1:"4",x2:"4",y2:"12"})]})})]}),(0,d.jsx)("div",{style:{flex:1,minHeight:0,overflow:"hidden",background:"var(--bg)"},children:(0,d.jsx)(aO,{filePath:b,children:(0,d.jsx)(aM.h,{filePath:b,cwd:f,onOpenFile:l})})}),!m.maximized&&(0,d.jsx)("div",{role:"separator","aria-orientation":"horizontal","aria-label":"Resize preview",title:"Resize preview",onPointerDown:z,onPointerMove:A,onPointerUp:B,onPointerCancel:B,style:{position:"absolute",right:0,bottom:0,width:18,height:18,cursor:"nwse-resize",color:"var(--text-dim)",display:"flex",alignItems:"flex-end",justifyContent:"flex-end",padding:3,background:"linear-gradient(135deg, transparent 0 48%, rgba(127,127,127,0.18) 48% 52%, transparent 52% 100%)"}})]})}let aR={width:26,height:24,padding:0,border:"1px solid transparent",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0};function aS(a){return{dirCache:new Map,pathIndex:new Map,loadedDirs:new Set,revision:0,workspaceRoot:a}}function aT(a,b){if(b.delete(a.path),a.children)for(let c of a.children)aT(c,b)}function aU(a,b,c){let d=new Map;if(b)for(let a of b)d.set(a.path,a);if(b){let d=new Set(a.map(a=>a.path));for(let a of b)d.has(a.path)||aT(a,c)}return a.map(a=>{let b=d.get(a.path);return b&&(a.id=b.id,b.childrenLoaded&&b.children?(a.children=b.children,a.childrenLoaded=!0):b.childrenLoaded&&!b.children&&(a.childrenLoaded=!0)),c.set(a.path,a),a})}function aV(a,b,c){let d=aU(c,a.dirCache.get(b),a.pathIndex);a.dirCache.set(b,d),a.loadedDirs.add(b)}function aW(a,b,c){let d=a.dirCache.get(b);if(!d)return;let e=d.findIndex(a=>a.path===c.path);if(-1!==e){let a=d[e];"folder"===a.type&&"folder"===c.type&&(c.children=a.children,c.childrenLoaded=a.childrenLoaded),d[e]=c}else d.push(c),d.sort(aY);a.pathIndex.set(c.path,c)}function aX(a,b,c){let d=a.dirCache.get(b);d&&a.dirCache.set(b,d.filter(a=>a.path!==c));let e=a.pathIndex.get(c);e&&aT(e,a.pathIndex),a.dirCache.delete(c),a.loadedDirs.delete(c)}function aY(a,b){return"folder"===a.type&&"folder"!==b.type?-1:"folder"!==a.type&&"folder"===b.type?1:a.name.localeCompare(b.name)}let aZ=new Set(["node_modules","vendor","venv",".venv","Pods","dist","build","out","target",".output","bin","obj",".next",".nuxt",".cache",".turbo",".parcel-cache",".git",".svn",".hg",".idea",".vscode",".vs","coverage",".nyc_output","__pycache__",".pytest_cache",".mypy_cache",".tox","logs","tmp","temp",".annodex-uploads"]),a$="var(--text-dim)";function a_({size:a=14,open:b=!1}){return b?(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 16 16",fill:"none",children:[(0,d.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5h7.5v1H1V4.5Z",fill:a$}),(0,d.jsx)("path",{d:"M1 6h14.5L14 13H2L1 6Z",stroke:a$,strokeWidth:"1",fill:a$,fillOpacity:"0.12"})]}):(0,d.jsx)("svg",{width:a,height:a,viewBox:"0 0 16 16",fill:"none",children:(0,d.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5H14a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4.5Z",stroke:a$,strokeWidth:"1",fill:a$,fillOpacity:"0.1"})})}function a0({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 16 16",fill:"none",children:[(0,d.jsx)("path",{d:"M3 2h7l3 3v9H3V2Z",stroke:a$,strokeWidth:"1",fill:a$,fillOpacity:"0.08"}),(0,d.jsx)("path",{d:"M10 2v3h3",stroke:a$,strokeWidth:"1",fill:"none",strokeLinejoin:"round"})]})}function a1({label:a,size:b=14}){let c=b/14;return(0,d.jsxs)("svg",{width:b,height:b,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a$,strokeWidth:"0.9",fill:a$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("text",{x:"7",y:"9.5",textAnchor:"middle",fontSize:3.4*c,fontFamily:"var(--font-mono), monospace",fontWeight:"600",fill:a$,letterSpacing:"0",children:a})]})}function a2({size:a=14}){return(0,d.jsx)(a1,{label:"TS",size:a})}function a3({size:a=14}){return(0,d.jsx)(a1,{label:"TSX",size:a})}function a4({size:a=14}){return(0,d.jsx)(a1,{label:"JS",size:a})}function a5({size:a=14}){return(0,d.jsx)(a1,{label:"JSX",size:a})}function a6({size:a=14}){return(0,d.jsx)(a1,{label:"PY",size:a})}function a7({size:a=14}){return(0,d.jsx)(a1,{label:"{}",size:a})}function a8({size:a=14}){return(0,d.jsx)(a1,{label:"CSS",size:a})}function a9({size:a=14}){return(0,d.jsx)(a1,{label:"SC",size:a})}function ba({size:a=14}){return(0,d.jsx)(a1,{label:"HTM",size:a})}function bb({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a$,strokeWidth:"0.9",fill:a$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M3.5 9.5V7l1.5 1.5L6.5 7v2.5",stroke:a$,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,d.jsx)("path",{d:"M8 7v2.5M7 9l1 1.5 1-1.5",stroke:a$,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})}function bc({size:a=14}){return(0,d.jsx)(a1,{label:"YML",size:a})}function bd({size:a=14}){return(0,d.jsx)(a1,{label:"TOM",size:a})}function be({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a$,strokeWidth:"0.9",fill:a$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M4 7.5l2 1.5-2 1.5",stroke:a$,strokeWidth:"0.95",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,d.jsx)("path",{d:"M7.5 10.5h2.5",stroke:a$,strokeWidth:"0.95",strokeLinecap:"round"})]})}function bf({size:a=14}){return(0,d.jsx)(a1,{label:"RS",size:a})}function bg({size:a=14}){return(0,d.jsx)(a1,{label:"GO",size:a})}function bh({size:a=14}){return(0,d.jsx)(a1,{label:"SQL",size:a})}function bi({size:a=14}){return(0,d.jsx)(a1,{label:"GQL",size:a})}function bj({size:a=14}){return(0,d.jsx)(a1,{label:"TF",size:a})}function bk({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a$,strokeWidth:"0.9",fill:a$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("rect",{x:"3.5",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:a$,strokeWidth:"0.8"}),(0,d.jsx)("rect",{x:"6",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:a$,strokeWidth:"0.8"}),(0,d.jsx)("rect",{x:"3.5",y:"8.5",width:"2",height:"1.5",rx:"0.3",stroke:a$,strokeWidth:"0.8"})]})}function bl({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a$,strokeWidth:"0.9",fill:a$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("circle",{cx:"5.5",cy:"8.5",r:"1.5",stroke:a$,strokeWidth:"0.9"}),(0,d.jsx)("path",{d:"M7 8.5h2.5M8.5 8.5v1.5",stroke:a$,strokeWidth:"0.9",strokeLinecap:"round"})]})}function bm({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a$,strokeWidth:"0.9",fill:a$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("circle",{cx:"5",cy:"6.5",r:"1",stroke:a$,strokeWidth:"0.85"}),(0,d.jsx)("circle",{cx:"9",cy:"6.5",r:"1",stroke:a$,strokeWidth:"0.85"}),(0,d.jsx)("circle",{cx:"5",cy:"10",r:"1",stroke:a$,strokeWidth:"0.85"}),(0,d.jsx)("path",{d:"M5 7.5V9",stroke:a$,strokeWidth:"0.85",strokeLinecap:"round"}),(0,d.jsx)("path",{d:"M9 7.5v.5a2 2 0 0 1-2 2H6",stroke:a$,strokeWidth:"0.85",strokeLinecap:"round",fill:"none"})]})}function bn({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a$,strokeWidth:"0.9",fill:a$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("rect",{x:"4.5",y:"8.5",width:"5",height:"3",rx:"0.6",stroke:a$,strokeWidth:"0.9"}),(0,d.jsx)("path",{d:"M5.5 8.5V7.5a1.5 1.5 0 0 1 3 0v1",stroke:a$,strokeWidth:"0.9",strokeLinecap:"round",fill:"none"})]})}function bo({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a$,strokeWidth:"0.9",fill:a$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("circle",{cx:"7",cy:"8.5",r:"1.3",stroke:a$,strokeWidth:"0.9"}),(0,d.jsx)("path",{d:"M7 6.5v.7M7 10.3v.7M5 8.5h.7M8.3 8.5H9M5.5 6.9l.5.5M8.5 9.6l-.5-.5M5.5 10.1l.5-.5M8.5 7.4l-.5.5",stroke:a$,strokeWidth:"0.8",strokeLinecap:"round"})]})}function bp(a,b=14){let c=a.toLowerCase(),e=c.split(".").pop()??"";if("dockerfile"===c||c.startsWith("dockerfile."))return(0,d.jsx)(bk,{size:b});if(".env"===c||c.startsWith(".env."))return(0,d.jsx)(bl,{size:b});if(".gitignore"===c||".gitattributes"===c||".gitmodules"===c)return(0,d.jsx)(bm,{size:b});if("package-lock.json"===c||"yarn.lock"===c||"bun.lock"===c||"pnpm-lock.yaml"===c||"cargo.lock"===c)return(0,d.jsx)(bn,{size:b});if(c.endsWith(".config.ts")||c.endsWith(".config.js")||c.endsWith(".config.mjs")||c.endsWith(".config.cjs")||[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml","eslint.config.mjs","eslint.config.js"].includes(c))return(0,d.jsx)(bo,{size:b});switch(e){case"ts":return(0,d.jsx)(a2,{size:b});case"tsx":return(0,d.jsx)(a3,{size:b});case"js":case"mjs":case"cjs":return(0,d.jsx)(a4,{size:b});case"jsx":return(0,d.jsx)(a5,{size:b});case"py":return(0,d.jsx)(a6,{size:b});case"json":case"jsonl":return(0,d.jsx)(a7,{size:b});case"css":case"less":return(0,d.jsx)(a8,{size:b});case"scss":return(0,d.jsx)(a9,{size:b});case"html":case"htm":return(0,d.jsx)(ba,{size:b});case"md":case"mdx":return(0,d.jsx)(bb,{size:b});case"yaml":case"yml":return(0,d.jsx)(bc,{size:b});case"toml":return(0,d.jsx)(bd,{size:b});case"sh":case"bash":case"zsh":case"fish":return(0,d.jsx)(be,{size:b});case"rs":return(0,d.jsx)(bf,{size:b});case"go":return(0,d.jsx)(bg,{size:b});case"sql":return(0,d.jsx)(bh,{size:b});case"graphql":case"gql":return(0,d.jsx)(bi,{size:b});case"tf":case"hcl":return(0,d.jsx)(bj,{size:b});case"lock":return(0,d.jsx)(bn,{size:b});default:return(0,d.jsx)(a0,{size:b})}}let bq=(f()).memo(function({node:a,depth:b,isExpanded:c,isLoading:g,isSelected:h,isRenaming:i,isUploadTarget:j,onClick:k,onDoubleClick:l,onContextMenu:m,onRenameSubmit:n,onRenameCancel:o,onDragEnter:p,onDragOver:q,onDragLeave:r,onDrop:s}){var t;let u=!!(t=a.name).startsWith(".")||aZ.has(t),[v,w]=f().useState(!1),[x,y]=f().useState(a.name),z=f().useRef(null);f().useEffect(()=>{if(i&&z.current){let b=a.name.lastIndexOf(".");"file"===a.type&&b>0?z.current.setSelectionRange(0,b):z.current.select(),z.current.focus()}},[i,a.name,a.type]);let A=(0,e.useCallback)(()=>{i||k(a.path,"folder"===a.type)},[i,a.path,a.type,k]),B=(0,e.useCallback)(()=>{i||l(a.path)},[i,a.path,l]),C=(0,e.useCallback)(b=>{i||m(b,a.path)},[i,a.path,m]),D=(0,e.useCallback)(b=>{if("Enter"===b.key){b.preventDefault();let c=x.trim();c&&c!==a.name?n(a.path,c):o()}else"Escape"===b.key&&(b.preventDefault(),o())},[x,a.name,a.path,n,o]),E=(0,e.useCallback)(()=>{let b=x.trim();b&&b!==a.name?n(a.path,b):o()},[x,a.name,a.path,n,o]);return(0,d.jsxs)("div",{onClick:A,onDoubleClick:B,onContextMenu:C,onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),onDragEnter:p,onDragOver:q,onDragLeave:r,onDrop:s,style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*b,paddingRight:8,height:26,cursor:"pointer",background:j?"rgba(37,99,235,0.14)":h?"var(--bg-selected)":v?"var(--bg-hover)":"transparent",outline:j?"1px solid rgba(37,99,235,0.42)":"none",outlineOffset:-1,borderRadius:4,userSelect:"none",transition:"background 0.08s",opacity:u?.65:1},children:["folder"===a.type?(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:c?"rotate(90deg)":"none",transition:"transform 0.1s"},children:(0,d.jsx)("polyline",{points:"3 2 7 5 3 8"})}):(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),g?(0,d.jsx)("span",{style:{flexShrink:0,width:14,height:14,display:"flex",alignItems:"center"},children:(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",style:{animation:"spin 1s linear infinite"},children:(0,d.jsx)("path",{d:"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4"})})}):(0,d.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:"folder"===a.type?(0,d.jsx)(a_,{size:14,open:c}):bp(a.name,14)}),i?(0,d.jsx)("input",{ref:z,value:x,onChange:a=>y(a.target.value),onKeyDown:D,onBlur:E,style:{flex:1,minWidth:0,height:22,padding:"0 4px",fontSize:12,fontFamily:"inherit",color:"var(--text)",background:"var(--bg-input, var(--bg))",border:"1px solid var(--accent)",borderRadius:3,outline:"none"},onClick:a=>a.stopPropagation(),onDoubleClick:a=>a.stopPropagation(),onContextMenu:a=>a.stopPropagation()}):(0,d.jsx)("span",{style:{fontSize:12,color:u?"var(--text-dim)":"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:a.path,children:a.name})]})});function br({x:a,y:b,actions:c,onClose:g}){let h=(0,e.useRef)(null),[i,j]=f().useState(a),[k,l]=f().useState(b);return 0===c.length?null:(0,d.jsx)("div",{ref:h,style:{position:"fixed",left:i,top:k,zIndex:1e3,minWidth:190,padding:"4px 0",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.18)",fontSize:12},children:c.map((a,b)=>(0,d.jsxs)(f().Fragment,{children:[a.separator&&b>0&&(0,d.jsx)("div",{style:{height:1,margin:"4px 8px",background:"var(--border)"}}),(0,d.jsxs)("div",{onClick:b=>{b.stopPropagation(),a.onClick(),g()},style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px 12px",cursor:"pointer",color:a.danger?"#ef4444":"var(--text)"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent"},children:[(0,d.jsx)("span",{children:a.label}),a.shortcut&&(0,d.jsx)("span",{style:{marginLeft:24,fontSize:10,color:"var(--text-dim)"},children:a.shortcut})]})]},b))})}var bs=c(31343);async function bt(a){let b=(0,bs.HG)(a),c=await fetch(`/api/files/${b}?type=list`);return c.ok?(await c.json()).entries??[]:[]}function bu(a,b,c,d){let e=(0,bs.e_)(b,a.name);return{id:e,name:a.name,path:e,relativePath:(0,bs.qP)(e,c),type:a.isDir?"folder":"file",extension:a.isDir?"":a.name.includes(".")?a.name.split(".").pop()?.toLowerCase()??"":"",size:a.size,modified:a.modified,depth:d,children:a.isDir?[]:void 0,childrenLoaded:!a.isDir}}function bv(a,b){return a===b?".":(0,bs.qP)(a,b)}function bw(a){return!!Array.from(a.types).includes("Files")||Array.from(a.items).some(a=>"file"===a.kind)}function bx(a){return Array.from(a.files).filter(a=>!!a.name)}function by({cwd:a,onOpenFile:b,onExploreFile:c,refreshKey:f,onAtMention:g,searchQuery:h="",watchEnabled:i=!0}){let j,k,l,m,n=function(){let a=(0,e.useRef)(aS("")),[b,c]=(0,e.useState)(0),[d,f]=(0,e.useState)(""),[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(new Set),[m,n]=(0,e.useState)(new Set),[o,p]=(0,e.useState)(new Set),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)([]);(0,e.useCallback)(()=>{let b=a.current;t(function a(b,c,d,e){let f=[];for(let g of b){let b="folder"===g.type&&c.has(g.path);if(f.push({node:g,depth:d,isExpanded:b}),b){let b=e.get(g.path)??[];f.push(...a(b,c,d+1,e))}}return f}(b.dirCache.get(b.workspaceRoot)??[],m,0,b.dirCache))},[m]);let u=(0,e.useCallback)(async b=>{h(!1),j(!1);let d=aS(b);a.current=d;try{let a=(await bt(b)).map(a=>bu(a,b,b,0));a.sort(aY),aV(d,b,a),f(b),h(!0),c(a=>a+1)}catch{j(!0),h(!0)}},[]),v=(0,e.useCallback)(async b=>{let d=a.current;if(!d.loadedDirs.has(b)){l(a=>new Set(a).add(b));try{let a=(await bt(b)).map(a=>bu(a,b,d.workspaceRoot,0));a.sort(aY),d.loadedDirs.has(b)||(aV(d,b,a),c(a=>a+1))}catch{}finally{l(a=>{let c=new Set(a);return c.delete(b),c})}}},[]),w=(0,e.useCallback)(b=>{n(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c}),a.current.loadedDirs.has(b)||v(b)},[v]),x=(0,e.useCallback)((a,b)=>{p(c=>{if(b){let b=new Set(c);return b.has(a)?b.delete(a):b.add(a),b}return new Set([a])})},[]),y=(0,e.useCallback)(()=>{p(new Set)},[]),z=(0,e.useCallback)(a=>{r(a)},[]),A=(0,e.useCallback)(()=>{r(null)},[]),B=(0,e.useCallback)(async b=>{var c;(c=a.current).dirCache.clear(),c.pathIndex.clear(),c.loadedDirs.clear(),n(new Set),await u(b)},[u]),C=(0,e.useCallback)(b=>a.current.pathIndex.get(b),[]),D=(0,e.useCallback)(b=>a.current.dirCache.get(b),[]),E=(0,e.useCallback)((b,d)=>{aW(a.current,b,d),c(a=>a+1)},[]),F=(0,e.useCallback)((b,d,e)=>{let f=a.current,g=f.pathIndex.get(b);if(!g)return;let h=f.workspaceRoot===b?f.workspaceRoot:b.substring(0,Math.max(b.lastIndexOf("/"),b.lastIndexOf("\\")));aX(f,h,b);let i={...g,id:d,name:e,path:d,relativePath:(0,bs.qP)(d,f.workspaceRoot),extension:"file"===g.type&&e.includes(".")?e.split(".").pop()?.toLowerCase()??"":""};aW(f,h,i),c(a=>a+1)},[]),G=(0,e.useCallback)(b=>{let d=a.current,e=d.workspaceRoot===b?d.workspaceRoot:b.substring(0,Math.max(b.lastIndexOf("/"),b.lastIndexOf("\\")));aX(d,e,b),c(a=>a+1)},[]);return{revision:b,workspaceRoot:d,hasLoaded:g,loadFailed:i,loadingPaths:k,expandedPaths:m,selectedPaths:o,renamingPath:q,flatNodes:s,loadRoot:u,loadChildren:v,toggleExpand:w,select:x,deselectAll:y,startRename:z,stopRename:A,refresh:B,getNode:C,getChildren:D,onFileCreated:E,onFileRenamed:F,onFileDeleted:G,invalidateDir:(0,e.useCallback)(b=>{let c=a.current;c.loadedDirs.delete(b),c.dirCache.delete(b)},[]),applyWatcherEvent:(0,e.useCallback)(b=>{(function(a,b){let c=!1;for(let{dirPath:d,children:e}of b){if(!a.loadedDirs.has(d))continue;let b=e.map(b=>{let c=d===a.workspaceRoot?`${a.workspaceRoot}/${b.name}`:`${d}/${b.name}`;return{id:c,name:b.name,path:c,relativePath:c.startsWith(a.workspaceRoot+"/")?c.slice(a.workspaceRoot.length+1):b.name,type:b.isDir?"folder":"file",extension:b.isDir?"":b.name.includes(".")?b.name.split(".").pop()?.toLowerCase()??"":"",size:b.size,modified:b.modified,depth:0,children:b.isDir?[]:void 0,childrenLoaded:!b.isDir}});b.sort(aY);let f=aU(b,a.dirCache.get(d),a.pathIndex);a.dirCache.set(d,f),c=!0}return c})(a.current,b)&&c(a=>a+1)},[])}}(),o=(j=(0,e.useCallback)(async(b,c)=>{try{let d=b===a?`${a}/${c}`:`${b}/${c}`,e=await fetch("/api/file-tree/write",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:d,content:""})});if(!e.ok){let a=await e.json().catch(()=>({}));return{success:!1,error:a.error??`HTTP ${e.status}`}}return{success:!0,resolvedPath:d}}catch(a){return{success:!1,error:String(a)}}},[a]),k=(0,e.useCallback)(async(b,c)=>{try{let d=b===a?`${a}/${c}`:`${b}/${c}`,e=await fetch("/api/file-tree/mkdir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:d})});if(!e.ok){let a=await e.json().catch(()=>({}));return{success:!1,error:a.error??`HTTP ${e.status}`}}return{success:!0,resolvedPath:d}}catch(a){return{success:!1,error:String(a)}}},[a]),l=(0,e.useCallback)(async(b,c)=>{try{let d=Math.max(b.lastIndexOf("/"),b.lastIndexOf("\\")),e=d>0?b.slice(0,d):a,f=`${e}/${c}`,g=await fetch("/api/file-tree/rename",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({oldPath:b,newPath:f})});if(!g.ok){let a=await g.json().catch(()=>({}));return{success:!1,error:a.error??`HTTP ${g.status}`}}return{success:!0,resolvedPath:f}}catch(a){return{success:!1,error:String(a)}}},[a]),m=(0,e.useCallback)(async a=>{try{let b=await fetch("/api/file-tree/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})});if(!b.ok){let a=await b.json().catch(()=>({}));return{success:!1,error:a.error??`HTTP ${b.status}`}}return{success:!0,resolvedPath:a}}catch(a){return{success:!1,error:String(a)}}},[]),{createFile:j,createFolder:k,renameFile:l,deleteFile:m,moveFile:(0,e.useCallback)(async(a,b)=>{try{let c=a.slice(Math.max(a.lastIndexOf("/"),a.lastIndexOf("\\"))+1),d=`${b}/${c}`,e=await fetch("/api/file-tree/rename",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({oldPath:a,newPath:d})});if(!e.ok){let a=await e.json().catch(()=>({}));return{success:!1,error:a.error??`HTTP ${e.status}`}}return{success:!0,resolvedPath:d}}catch(a){return{success:!1,error:String(a)}}},[]),revealInFinder:(0,e.useCallback)(async a=>{try{await fetch("/api/file-tree/reveal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})})}catch{}},[])}),p=(0,e.useRef)(null);(0,e.useRef)(null);let q=(0,e.useRef)(null),r=(0,e.useRef)(0),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(null),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(-1),[C,D]=(0,e.useState)(null),[E,F]=(0,e.useState)(!1),G=h.trim().length>0,H=(()=>{if(G){let a=n.getChildren(n.workspaceRoot);return a?function a(b,c,d){let e=c.trim().toLowerCase(),f=[];for(let g of b){let b=g.name.toLowerCase().includes(e),h=(g.children??[]).some(a=>(function a(b,c){let d=c.trim().toLowerCase();return!!(!d||b.name.toLowerCase().includes(d))||(b.children??[]).some(b=>a(b,d))})(a,e));(b||h)&&(f.push({node:g,depth:d,isExpanded:!0}),g.children&&h&&f.push(...a(g.children,c,d+1)))}return f}(a,h,0):[]}return n.flatNodes})(),[I,J]=(0,e.useState)(0),[K,L]=(0,e.useState)(0),M=(0,e.useCallback)(a=>{J(a.currentTarget.scrollTop)},[]),N=(0,e.useMemo)(()=>{let a=26*H.length,b=Math.max(0,Math.floor(I/26)-10),c=Math.min(H.length,Math.ceil((I+K)/26)+10),d=[];for(let a=b;a<c;a++)d.push({index:a,top:26*a});return{items:d,totalHeight:a,startIndex:b}},[H,I,K]),O=(0,e.useCallback)((a,c)=>{if(c)n.toggleExpand(a);else{let c=n.getNode(a);c&&b(a,c.name)}n.select(a),B(H.findIndex(b=>b.node.path===a))},[n,b,H]),P=(0,e.useCallback)(a=>{let c=n.getNode(a);c&&"file"===c.type&&b(a,c.name)},[n,b]),Q=(0,e.useCallback)((a,b)=>{a.preventDefault(),z({x:a.clientX,y:a.clientY,targetPath:b}),n.select(b),B(H.findIndex(a=>a.node.path===b))},[n,H]),R=(0,e.useMemo)(()=>{if(!y)return[];let b=n.getNode(y.targetPath);if(!b)return[];let d=[{label:"folder"===b.type?"Expand / Collapse":"Open",shortcut:"folder"===b.type?"→":"Enter",onClick:()=>O(b.path,"folder"===b.type)}];return c&&"file"===b.type&&b.name.toLowerCase().endsWith(".h5ad")&&d.push({label:"Explore H5AD",shortcut:"@explore",onClick:()=>c(b.path,b.name)}),g&&d.push({label:"Mention in Chat",shortcut:"@",onClick:()=>g((0,bs.qP)(b.path,a))}),d.push({label:"",onClick:()=>{},separator:!0}),d.push({label:"Rename",shortcut:"F2",onClick:()=>n.startRename(b.path)}),d.push({label:"Delete",shortcut:"Del",onClick:async()=>{if(!window.confirm(`Are you sure you want to delete "${b.name}"?`))return;let a=await o.deleteFile(b.path);a.success?(n.onFileDeleted(b.path),D(`Deleted "${b.name}"`)):a.error&&D(a.error)},danger:!0}),d.push({label:"",onClick:()=>{},separator:!0}),d.push({label:"Copy Path",onClick:()=>{navigator.clipboard.writeText(b.path).catch(()=>{}),D("Copied path")}}),d.push({label:"Copy Relative Path",onClick:()=>{let c=(0,bs.qP)(b.path,a);navigator.clipboard.writeText(c).catch(()=>{}),D("Copied relative path")}}),d.push({label:"Reveal in Finder",onClick:()=>o.revealInFinder(b.path)}),d},[y,n,o,O,g,c,a]),S=(0,e.useCallback)(async(a,b)=>{n.stopRename();let c=n.getNode(a);if(!c||b===c.name)return;let d=await o.renameFile(a,b);d.success&&d.resolvedPath?(n.onFileRenamed(a,d.resolvedPath,b),D(`Renamed to "${b}"`)):d.error&&D(d.error)},[n,o]),T=(0,e.useCallback)(async()=>{let b=[...n.selectedPaths].map(a=>n.getNode(a)).filter(Boolean),c=b.find(a=>"folder"===a.type)?.path??a,d="untitled.txt",e=await o.createFile(c,d);if(e.success&&e.resolvedPath){let b={id:e.resolvedPath,name:d,path:e.resolvedPath,relativePath:(0,bs.qP)(e.resolvedPath,a),type:"file",extension:"txt",depth:0,childrenLoaded:!0,isOptimistic:!0};n.onFileCreated(c,b),n.expandedPaths.has(c)||n.toggleExpand(c),setTimeout(()=>n.startRename(e.resolvedPath),50)}else e.error&&D(e.error)},[n,o,a]),U=(0,e.useCallback)(async()=>{let b=[...n.selectedPaths].map(a=>n.getNode(a)).filter(Boolean),c=b.find(a=>"folder"===a.type)?.path??a,d="new-folder",e=await o.createFolder(c,d);if(e.success&&e.resolvedPath){let b={id:e.resolvedPath,name:d,path:e.resolvedPath,relativePath:(0,bs.qP)(e.resolvedPath,a),type:"folder",extension:"",depth:0,children:[],childrenLoaded:!0,isOptimistic:!0};n.onFileCreated(c,b),n.expandedPaths.has(c)||n.toggleExpand(c),setTimeout(()=>n.startRename(e.resolvedPath),50)}else e.error&&D(e.error)},[n,o,a]),V=(0,e.useCallback)(a=>{let b=a.target;if("INPUT"!==b.tagName&&"TEXTAREA"!==b.tagName){if("ArrowDown"===a.key)a.preventDefault(),B(a=>Math.min(a+1,H.length-1));else if("ArrowUp"===a.key)a.preventDefault(),B(a=>Math.max(a-1,0));else if("ArrowRight"===a.key){a.preventDefault();let b=H[A]?.node;b?.type!=="folder"||n.expandedPaths.has(b.path)||(n.toggleExpand(b.path),n.select(b.path))}else if("ArrowLeft"===a.key){a.preventDefault();let b=H[A]?.node;b?.type==="folder"&&n.expandedPaths.has(b.path)&&n.toggleExpand(b.path)}else if("Enter"===a.key){a.preventDefault();let b=H[A]?.node;b&&O(b.path,"folder"===b.type)}else if("F2"===a.key){a.preventDefault();let b=H[A]?.node;b&&(n.select(b.path),n.startRename(b.path))}else if("Delete"===a.key||"Backspace"===a.key){a.preventDefault();let b=H[A]?.node;b&&window.confirm(`Delete "${b.name}"?`)&&o.deleteFile(b.path).then(a=>{a.success&&(n.onFileDeleted(b.path),D(`Deleted "${b.name}"`))})}}},[H,A,n,O,o]),W=(0,e.useCallback)(()=>{q.current&&clearTimeout(q.current),q.current=setTimeout(()=>x(null),5e3)},[]),X=(0,e.useCallback)((b,c)=>{if(0===b.length)return;r.current=0,t(!1),q.current&&clearTimeout(q.current);let d=b.reduce((a,b)=>a+b.size,0),e=bv(c,a);v(c),x({phase:"uploading",targetPath:c,fileCount:b.length,loaded:0,total:d,message:`Uploading ${b.length} file${1===b.length?"":"s"} to ${e}`});let f=new FormData;b.forEach(a=>f.append("files",a,a.name));let g=new XMLHttpRequest,h=(0,bs.HG)(c);g.open("POST",`/api/files/${h}?type=upload`),g.upload.onprogress=a=>{a.lengthComputable&&x(b=>b?{...b,loaded:a.loaded,total:a.total}:b)},g.onload=()=>{v(null);let a={};try{a=JSON.parse(g.responseText)}catch{a={}}if(g.status>=200&&g.status<300){let f=a.uploaded??[],g=a.failed??[],h=[...f.filter(a=>a.name!==a.originalName).slice(0,3).map(a=>`${a.originalName} saved as ${a.name}`),...g.slice(0,3).map(a=>`${a.name}: ${a.error}`)];x({phase:g.length>0?"warning":"success",targetPath:c,fileCount:b.length,loaded:d,total:d,message:g.length>0?`Uploaded ${f.length}, ${g.length} failed`:`Uploaded ${f.length} file${1===f.length?"":"s"} to ${e}`,details:h}),n.invalidateDir(c),n.expandedPaths.has(c)&&n.loadChildren(c),W()}else{let e=a.error??`Upload failed (HTTP ${g.status})`;x({phase:"error",targetPath:c,fileCount:b.length,loaded:0,total:d,message:e}),W()}},g.onerror=()=>{v(null),x({phase:"error",targetPath:c,fileCount:b.length,loaded:0,total:d,message:"Upload failed due to a network error"}),W()},g.onabort=()=>{v(null),x({phase:"error",targetPath:c,fileCount:b.length,loaded:0,total:d,message:"Upload canceled"}),W()},g.send(f)},[a,n,W]),Y=(0,e.useCallback)(a=>{bw(a.dataTransfer)&&(a.preventDefault(),r.current+=1,t(!0))},[]),Z=(0,e.useCallback)(a=>{bw(a.dataTransfer)&&(a.preventDefault(),a.dataTransfer.dropEffect="copy")},[]),$=(0,e.useCallback)(()=>{r.current-=1,r.current<=0&&(r.current=0,t(!1))},[]),_=(0,e.useCallback)(b=>{if(!bw(b.dataTransfer))return;b.preventDefault(),r.current=0,t(!1);let c=bx(b.dataTransfer);c.length>0&&X(c,a)},[a,X]),aa=(0,e.useCallback)(a=>b=>{if(!bw(b.dataTransfer))return;b.preventDefault(),b.stopPropagation();let c=bx(b.dataTransfer);c.length>0&&(X(c,a),n.expandedPaths.has(a)||n.toggleExpand(a))},[X,n]),ab=w&&w.total>0?Math.max(0,Math.min(100,Math.round(w.loaded/w.total*100))):w?.phase==="uploading"?8:100,ac=w?.phase==="success"?"#22c55e":w?.phase==="warning"?"#f59e0b":w?.phase==="error"?"#ef4444":"var(--accent)";return n.loadFailed?(0,d.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"Could not load files"}):(0,d.jsxs)("div",{onDragEnter:Y,onDragOver:Z,onDragLeave:$,onDrop:_,onKeyDown:V,tabIndex:0,style:{position:"relative",display:"flex",flexDirection:"column",height:"100%",outline:s?"1px solid rgba(37,99,235,0.45)":"none",outlineOffset:-1,background:s?"rgba(37,99,235,0.04)":void 0,transition:"background 0.12s, outline-color 0.12s"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:2,padding:"4px 6px",borderBottom:"1px solid var(--border)",flexShrink:0,minHeight:30},children:[(0,d.jsx)("button",{onClick:T,title:"New File",style:bz,children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,d.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,d.jsx)("line",{x1:"12",y1:"18",x2:"12",y2:"12"}),(0,d.jsx)("line",{x1:"9",y1:"15",x2:"15",y2:"15"})]})}),(0,d.jsx)("button",{onClick:U,title:"New Folder",style:bz,children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"}),(0,d.jsx)("line",{x1:"12",y1:"11",x2:"12",y2:"17"}),(0,d.jsx)("line",{x1:"9",y1:"14",x2:"15",y2:"14"})]})}),(0,d.jsx)("button",{onClick:()=>n.refresh(a),title:"Refresh",style:bz,children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("polyline",{points:"23 4 23 10 17 10"}),(0,d.jsx)("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"})]})}),(0,d.jsx)("button",{onClick:()=>{n.deselectAll()},title:"Collapse All",style:bz,children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("polyline",{points:"4 14 10 14 10 20"}),(0,d.jsx)("polyline",{points:"20 10 14 10 14 4"}),(0,d.jsx)("line",{x1:"14",y1:"10",x2:"21",y2:"3"}),(0,d.jsx)("line",{x1:"3",y1:"21",x2:"10",y2:"14"})]})}),(0,d.jsx)("div",{style:{flex:1}}),(0,d.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",paddingRight:4},children:[H.length," items"]})]}),C&&(0,d.jsx)("div",{style:{padding:"4px 10px",fontSize:11,color:"var(--text)",background:"var(--bg-selected)",borderBottom:"1px solid var(--border)"},children:C}),(0,d.jsxs)("div",{ref:p,onScroll:M,style:{flex:1,overflow:"auto",position:"relative"},children:[n.hasLoaded?0===H.length?(0,d.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:G?"No matching files":"No files found"}):(0,d.jsx)("div",{style:{height:N.totalHeight,position:"relative"},children:N.items.map(a=>{let{index:b,top:c}=a,{node:e,depth:f,isExpanded:g}=H[b],h=b===A;return(0,d.jsx)("div",{style:{position:"absolute",top:c,left:0,right:0,height:26,outline:h?"1px solid var(--accent)":"none",outlineOffset:-1,borderRadius:4},children:(0,d.jsx)(bq,{node:e,depth:f,isExpanded:g,isLoading:n.loadingPaths.has(e.path),isSelected:n.selectedPaths.has(e.path),isRenaming:n.renamingPath===e.path,isUploadTarget:u===e.path,onClick:O,onDoubleClick:P,onContextMenu:Q,onRenameSubmit:S,onRenameCancel:()=>n.stopRename(),onDrop:"folder"===e.type?aa(e.path):void 0})},e.id)})}):(0,d.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"Loading files..."}),s&&(0,d.jsx)("div",{style:{pointerEvents:"none",position:"absolute",inset:6,top:0,border:"1px dashed rgba(37,99,235,0.62)",borderRadius:8,background:"rgba(37,99,235,0.07)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:2},children:(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)",fontSize:12,boxShadow:"0 8px 24px rgba(0,0,0,0.16)"},children:[(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,d.jsx)("polyline",{points:"17 8 12 3 7 8"}),(0,d.jsx)("line",{x1:"12",y1:"3",x2:"12",y2:"15"})]}),"Drop to upload into ",bv(a,a)]})})]}),w&&(0,d.jsxs)("div",{style:{margin:"6px",padding:"7px 8px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",boxShadow:"0 8px 24px rgba(0,0,0,0.12)",flexShrink:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,minWidth:0},children:[(0,d.jsx)("span",{style:{width:8,height:8,borderRadius:999,background:ac,flexShrink:0}}),(0,d.jsx)("span",{title:w.message,style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:11,fontWeight:600},children:w.message}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,flexShrink:0},children:"uploading"===w.phase?`${ab}%`:function(a){if(!Number.isFinite(a)||a<=0)return"0 B";let b=["B","KB","MB","GB"],c=a,d=0;for(;c>=1024&&d<b.length-1;)c/=1024,d+=1;return`${c>=10||0===d?Math.round(c):c.toFixed(1)} ${b[d]}`}(w.total)})]}),(0,d.jsx)("div",{style:{marginTop:6,height:3,borderRadius:999,background:"var(--bg)",overflow:"hidden"},children:(0,d.jsx)("div",{style:{width:`${ab}%`,height:"100%",borderRadius:999,background:ac,transition:"width 0.15s ease"}})}),w.details&&w.details.length>0&&(0,d.jsx)("div",{style:{marginTop:5,display:"grid",gap:2},children:w.details.map(a=>(0,d.jsx)("div",{title:a,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10},children:a},a))})]}),y&&(0,d.jsx)(br,{x:y.x,y:y.y,actions:R,onClose:()=>z(null)})]})}let bz={display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,border:"none",borderRadius:4,background:"transparent",color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"background 0.08s, color 0.08s"};function bA({cwd:a,refreshKey:b=0,onOpenFile:c,onExploreFile:f,onAtMention:g,watchEnabled:h=!0}){let[i,j]=(0,e.useState)("");return(0,d.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",background:"var(--bg)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:[(0,d.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8},children:(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)"},children:"Files"}),(0,d.jsx)("div",{title:a??"",style:{marginTop:1,fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},children:a??"No project selected"})]})}),(0,d.jsxs)("div",{style:{position:"relative",marginTop:7},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round",style:{position:"absolute",left:8,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none"},"aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"7",cy:"7",r:"4.4"}),(0,d.jsx)("path",{d:"M10.4 10.4 13.2 13.2"})]}),(0,d.jsx)("input",{value:i,onChange:a=>j(a.target.value),placeholder:"Filter files...",disabled:!a,style:{width:"100%",height:28,boxSizing:"border-box",padding:"0 28px 0 26px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none",opacity:a?1:.6}}),i&&(0,d.jsx)("button",{type:"button",onClick:()=>j(""),title:"Clear filter",style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",width:20,height:20,display:"flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:4,background:"transparent",color:"var(--text-dim)",cursor:"pointer",padding:0},children:(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("line",{x1:"2",y1:"2",x2:"8",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"2",y2:"8"})]})})]})]}),(0,d.jsx)("div",{style:{flex:1,minHeight:0,overflow:"hidden"},children:a?(0,d.jsx)(by,{cwd:a,onOpenFile:c,onExploreFile:f,refreshKey:b,onAtMention:g,searchQuery:i,watchEnabled:h}):(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:18,textAlign:"center",color:"var(--text-dim)",fontSize:12},children:"Select a project to browse files."})})]})}var bB=c(32492),bC=c(2857);let bD={__soul__:{apiPath:"/api/soul",title:"SOUL.md"},__harness__:{apiPath:"/api/harness",title:"HARNESS.md"}};function bE({filePath:a}){let b=bD[a],{isDark:c}=(0,bC.D)(),[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)(!1),p=(0,e.useCallback)(async()=>{if(b){m(!0);try{await fetch(b.apiPath,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:f})}),o(!0),setTimeout(()=>o(!1),2e3)}catch(a){k(String(a))}finally{m(!1)}}},[b,f]);return b?h?(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:"Loading…"}):j?(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:j}):(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:600,color:"var(--text)"},children:b.title}),(0,d.jsx)("span",{style:{marginLeft:"auto",fontSize:10,color:"var(--text-dim)"},children:"Global"}),n&&(0,d.jsx)("span",{style:{color:"#4ade80",fontWeight:600,animation:"saved-pop 0.3s ease"},children:"✓ Saved"}),(0,d.jsx)("button",{onClick:p,disabled:l,title:"Save (Ctrl+S)",style:{padding:"2px 10px",fontSize:11,cursor:l?"not-allowed":"pointer",background:"var(--accent)",color:"#fff",border:"1px solid var(--accent)",borderRadius:5,fontWeight:600,opacity:l?.6:1},children:l?"Saving…":"Save"})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,d.jsx)(bB.g,{initialContent:f,language:"markdown",isDark:c,onChange:g,onSave:p})})]}):null}function bF({side:a,onResize:b,onResizeStart:c,onResizeEnd:f,ariaLabel:g}){let h=(0,e.useRef)(null),i=(0,e.useRef)(!1),j=(0,e.useRef)(0),[k,l]=(0,e.useState)(!1),m=(0,e.useCallback)(a=>{if(!i.current)return;i.current=!1,l(!1);let b=h.current;b&&void 0!==a&&b.hasPointerCapture(a)&&b.releasePointerCapture(a),document.body.style.cursor="",document.body.style.userSelect="",f?.()},[f]),n=(0,e.useCallback)(a=>{0===a.button&&a.isPrimary&&(a.preventDefault(),i.current=!0,j.current=a.clientX,l(!0),c?.(),a.currentTarget.setPointerCapture(a.pointerId),document.body.style.cursor="col-resize",document.body.style.userSelect="none")},[c]),o=(0,e.useCallback)(a=>{if(!i.current)return;a.preventDefault();let c=a.clientX-j.current;j.current=a.clientX,b(c)},[b]),p=(0,e.useCallback)(a=>{a.preventDefault(),m(a.pointerId)},[m]),q=(0,e.useCallback)(a=>{m(a.pointerId)},[m]);return(0,d.jsx)("div",{ref:h,role:"separator","aria-label":g??"Resize panel","aria-orientation":"vertical",className:`resize-handle${k?" resize-handle-dragging":""}`,"data-side":a,onPointerDown:n,onPointerMove:o,onPointerUp:p,onPointerCancel:q,style:{alignSelf:"stretch",cursor:"col-resize",display:"flex",flexShrink:0,justifyContent:"center",marginLeft:-5,marginRight:-5,position:"relative",touchAction:"none",width:10,zIndex:250},children:(0,d.jsx)("div",{className:"resize-handle-line"})})}function bG(a){return"running"===a?"#22c55e":"starting"===a?"rgba(234,179,8,0.95)":"error"===a?"#ef4444":"var(--text-dim)"}function bH(a){return"h5adexp"===a?"H5AD Exp":"stexp"}function bI(a,b,c){return Math.min(Math.max(a,b),c)}function bJ(a){if(!a||"object"!=typeof a||!("app"in a))return null;let b=a.app;return b&&"object"==typeof b&&"id"in b?b:null}function bK({appType:a,filePath:b,cwd:c,sessionId:f,appId:g,onClose:h,onAppChanged:i,onOpenTools:j}){var k;let[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(0),[v,w]=(0,e.useState)(()=>({left:34,top:34,width:Math.min(1280,Math.max(360,1212)),height:Math.min(880,Math.max(320,832)),maximized:!1})),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(!1),B=(0,e.useRef)(null),C=(0,e.useRef)(null),D=(0,e.useRef)(null),E=!!b||!!g,F=b?(0,bs.WP)(b):l?(0,bs.WP)(l.filePath):"",G=b&&c?(0,bs.qP)(b,c):l?.filePath&&l.cwd?(0,bs.qP)(l.filePath,l.cwd):b??l?.filePath??"",H=l?.status??"idle",I=(0,e.useMemo)(()=>l?.logs?.join("\n")??"",[l?.logs]),J=l?.appType==="h5adexp"?l.url:l?.directUrl??l?.url??"",K=(0,e.useCallback)(a=>{m(a),i?.(a)},[i]);(0,e.useCallback)(async a=>{let b=await fetch(`/api/apps?appId=${encodeURIComponent(a)}`),c=await b.json(),d=bJ(c);if(!b.ok||!d)throw Error(c&&"object"==typeof c&&"error"in c?String(c.error):`HTTP ${b.status}`);return K(d),d},[K]);let L=(0,e.useCallback)(async()=>{if(b&&c&&!p){q(!0),o(null);try{let d=await fetch("/api/apps",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"start",appType:a,filePath:b,cwd:c,sessionId:f})}),e=await d.json(),g=bJ(e);if(!d.ok||!g){let a=e&&"object"==typeof e&&"error"in e?String(e.error):`HTTP ${d.status}`;throw Error(a)}K(g),u(a=>a+1)}catch(a){o(a instanceof Error?a.message:String(a))}finally{q(!1)}}},[a,K,p,c,b,f]),M=(0,e.useCallback)(async()=>{if(l?.id&&!p){q(!0),o(null);try{let a=await fetch("/api/apps",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",appId:l.id})}),b=await a.json(),c=bJ(b);if(!a.ok||!c){let c=b&&"object"==typeof b&&"error"in b?String(b.error):`HTTP ${a.status}`;throw Error(c)}K(c)}catch(a){o(a instanceof Error?a.message:String(a))}finally{q(!1)}}},[l,K,p]),N=(0,e.useCallback)(a=>{0!==a.button||v.maximized||(a.preventDefault(),a.currentTarget.setPointerCapture(a.pointerId),C.current={pointerId:a.pointerId,startX:a.clientX,startY:a.clientY,left:v.left,top:v.top},y(!0))},[v.left,v.maximized,v.top]),O=(0,e.useCallback)(a=>{let b=C.current;if(!b||b.pointerId!==a.pointerId)return;let c=b.left+a.clientX-b.startX,d=b.top+a.clientY-b.startY;w(a=>({...a,left:bI(c,8,Math.max(8,window.innerWidth-120)),top:bI(d,8,Math.max(8,window.innerHeight-48))}))},[]),P=(0,e.useCallback)(a=>{let b=C.current;b?.pointerId===a.pointerId&&(a.currentTarget.releasePointerCapture(a.pointerId),C.current=null,y(!1))},[]),Q=(0,e.useCallback)(a=>{0!==a.button||v.maximized||(a.preventDefault(),a.stopPropagation(),a.currentTarget.setPointerCapture(a.pointerId),D.current={pointerId:a.pointerId,startX:a.clientX,startY:a.clientY,width:v.width,height:v.height},A(!0))},[v.height,v.maximized,v.width]),R=(0,e.useCallback)(a=>{let b=D.current;if(!b||b.pointerId!==a.pointerId)return;let c=b.width+a.clientX-b.startX,d=b.height+a.clientY-b.startY;w(a=>({...a,width:bI(c,420,Math.max(420,window.innerWidth-a.left-8)),height:bI(d,340,Math.max(340,window.innerHeight-a.top-8))}))},[]),S=(0,e.useCallback)(a=>{let b=D.current;b?.pointerId===a.pointerId&&(a.currentTarget.releasePointerCapture(a.pointerId),D.current=null,A(!1))},[]),T=(0,e.useCallback)(()=>{j?.(),h()},[h,j]),U=(0,e.useCallback)(()=>{w(a=>({...a,maximized:!a.maximized}))},[]);if(!E)return null;let V=v.maximized?{position:"fixed",inset:12,zIndex:900}:{position:"fixed",left:v.left,top:v.top,width:v.width,height:v.height,zIndex:900};return(0,d.jsxs)("div",{ref:B,role:"dialog","aria-label":`${l?.title??bH(a)} window`,tabIndex:-1,onKeyDown:a=>{"Escape"===a.key&&T()},style:{...V,display:"flex",flexDirection:"column",minWidth:v.maximized?void 0:420,minHeight:v.maximized?void 0:340,background:"var(--bg)",border:"1px solid rgba(37,99,235,0.5)",borderRadius:8,boxShadow:"0 18px 60px rgba(0,0,0,0.26)",overflow:"hidden",outline:"none"},children:[(0,d.jsxs)("div",{onPointerDown:N,onPointerMove:O,onPointerUp:P,onPointerCancel:P,style:{display:"flex",alignItems:"center",gap:8,padding:"8px 9px 8px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0,userSelect:"none",cursor:v.maximized?"default":x?"grabbing":"grab"},children:[(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:13,fontWeight:700,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l?.title??bH(a)}),(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:bG(H),flexShrink:0}}),(0,d.jsx)("span",{style:{fontSize:11,color:bG(H),textTransform:"capitalize",flexShrink:0},children:H}),l?.pid&&(0,d.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0},children:["pid ",l.pid]}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0},children:(k=l?.rssBytes)&&Number.isFinite(k)?k<1048576?`${(k/1024).toFixed(0)}K`:k<0x40000000?`${(k/1024/1024).toFixed(1)}M`:`${(k/1024/1024/1024).toFixed(1)}G`:"-"})]}),(0,d.jsx)("div",{title:b??l?.filePath??"",style:{marginTop:2,fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},children:G||F})]}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:()=>u(a=>a+1),disabled:!J||l?.status==="stopped",style:bL,title:"Reload",children:"Reload"}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:()=>s(a=>!a),style:{...bL,background:r?"var(--bg-selected)":"var(--bg)",color:r?"var(--text)":"var(--text-muted)"},title:"Toggle logs",children:"Logs"}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:T,style:bL,title:"Show in Tools",children:"Tools"}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:()=>void M(),disabled:!l||"stopped"===l.status||p,style:{...bL,border:"1px solid rgba(239,68,68,0.35)",background:"rgba(239,68,68,0.08)",color:"#ef4444",opacity:!l||"stopped"===l.status||p?.55:1},title:"Stop process",children:"Stop"}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:T,"aria-label":"Minimize",title:"Minimize",style:bM,children:(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round","aria-hidden":"true",children:(0,d.jsx)("line",{x1:"4",y1:"11",x2:"12",y2:"11"})})}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:U,"aria-label":v.maximized?"Restore":"Maximize",title:v.maximized?"Restore":"Maximize",style:bM,children:v.maximized?(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M6 3.5h6.5V10"}),(0,d.jsx)("path",{d:"M3.5 6H10v6.5H3.5z"})]}):(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M4 4h8v8H4z"})})}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:h,"aria-label":"Close window",title:"Close window",style:bM,children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("line",{x1:"4",y1:"4",x2:"12",y2:"12"}),(0,d.jsx)("line",{x1:"12",y1:"4",x2:"4",y2:"12"})]})})]}),(n||l?.error)&&(0,d.jsx)("div",{style:{padding:"8px 12px",borderBottom:"1px solid rgba(248,113,113,0.25)",background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:12},children:n??l?.error}),(0,d.jsxs)("div",{style:{flex:1,minHeight:0,display:"flex",background:"var(--bg)"},children:[(0,d.jsx)("div",{style:{flex:1,minWidth:0,position:"relative"},children:p&&!l?.url?(0,d.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:["Starting ",bH(a),"..."]}):J&&l?.status!=="stopped"?(0,d.jsx)("iframe",{src:J,title:`${l?.title??bH(a)} - ${F}`,style:{width:"100%",height:"100%",border:"none",display:"block",background:"#fff"}},`${J}:${t}`):(0,d.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:10,color:"var(--text-muted)",fontSize:13},children:[(0,d.jsxs)("div",{children:[bH(a)," is stopped."]}),b&&c&&(0,d.jsx)("button",{type:"button",onClick:()=>void L(),disabled:p,style:{height:32,padding:"0 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:p?"not-allowed":"pointer",fontSize:12,fontWeight:650},children:"Start again"})]})}),r&&(0,d.jsxs)("div",{style:{width:360,borderLeft:"1px solid var(--border)",background:"var(--bg-panel)",display:"flex",flexDirection:"column",minHeight:0},children:[(0,d.jsx)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-muted)",fontWeight:650},children:"Process Logs"}),(0,d.jsx)("pre",{style:{flex:1,margin:0,padding:10,overflow:"auto",fontSize:11,lineHeight:1.45,color:"var(--text-muted)",fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap"},children:I||"No logs yet."})]})]}),!v.maximized&&(0,d.jsx)("div",{role:"separator","aria-orientation":"horizontal","aria-label":"Resize explore window",title:"Resize",onPointerDown:Q,onPointerMove:R,onPointerUp:S,onPointerCancel:S,style:{position:"absolute",right:0,bottom:0,width:18,height:18,cursor:"nwse-resize",background:"linear-gradient(135deg, transparent 0 48%, rgba(127,127,127,0.22) 48% 52%, transparent 52% 100%)"}})]})}let bL={height:30,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,flexShrink:0},bM={width:30,height:30,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,padding:0};function bN(a){return"running"===a?"#22c55e":"starting"===a?"rgba(234,179,8,0.95)":"error"===a?"#ef4444":"var(--text-dim)"}function bO(a){return"waiting_model"===a?"rgba(234,179,8,0.95)":"running_tools"===a?"#38bdf8":"streaming"===a?"#22c55e":"compacting"===a?"#a78bfa":"var(--text-dim)"}function bP(a){return a&&Number.isFinite(a)?a<1048576?`${(a/1024).toFixed(0)}K`:a<0x40000000?`${(a/1024/1024).toFixed(1)}M`:`${(a/1024/1024/1024).toFixed(1)}G`:"-"}function bQ(a){if(!a||!Number.isFinite(a))return"-";let b=Math.max(0,Math.floor(a/1e3)),c=Math.floor(b/3600),d=Math.floor(b%3600/60),e=b%60;return c>0?`${c}h ${d}m`:d>0?`${d}m ${e}s`:`${e}s`}function bR({refreshKey:a=0,visibleAppId:b,cwd:c,onOpenApp:f,onAppChanged:g,onAppsChanged:h,agentRuntimeExtra:i}){let[j,k]=(0,e.useState)([]),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)(null),D=(0,e.useMemo)(()=>[...j].sort((a,b)=>{let c=+!!a.running,d=+!!b.running;return c!==d?d-c:Date.parse(b.lastActivity)-Date.parse(a.lastActivity)}),[j]),E=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/apps",{cache:"no-store"}),b=await a.json();if(!a.ok||!Array.isArray(b.apps))throw Error(b.error??`HTTP ${a.status}`);k(b.apps),h?.(b.apps),q(null)}catch(a){q(a instanceof Error?a.message:String(a))}},[h]),F=(0,e.useCallback)(async()=>{try{let a=new URLSearchParams;c&&a.set("cwd",c);let b=await fetch(`/api/agent/runtime${a.toString()?`?${a}`:""}`,{cache:"no-store"}),d=await b.json();if(!b.ok||!Array.isArray(d.sessions))throw Error(d.error??`HTTP ${b.status}`);m(d),o(d.memory??null),s(null)}catch(a){s(a instanceof Error?a.message:String(a))}},[c]),G=(0,e.useCallback)(async a=>{y(a.id),q(null);try{let b=await fetch("/api/apps",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",appId:a.id})}),c=await b.json();if(!b.ok||!c.app)throw Error(c.error??`HTTP ${b.status}`);k(a=>a.map(a=>a.id===c.app.id?c.app:a)),g?.(c.app),await E()}catch(a){q(a instanceof Error?a.message:String(a))}finally{y(null)}},[E,g]),H=(0,e.useCallback)(async a=>{A(a.sessionId),s(null);try{let b=await fetch(`/api/agent/${encodeURIComponent(a.sessionId)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"abort"})}),c=await b.json().catch(()=>({}));if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);await F()}catch(a){s(a instanceof Error?a.message:String(a))}finally{A(null)}},[F]),I=(0,e.useCallback)(async(a,b)=>{if(c){w(`${a}:${b}`),u(null);try{let d=await fetch("/api/memory/promote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:c,memoryId:a,target:b})}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error??`HTTP ${d.status}`);await F()}catch(a){u(a instanceof Error?a.message:String(a))}finally{w(null)}}},[c,F]),J=(0,e.useCallback)(async a=>{if(c){w(`dismiss:${a}`),u(null);try{let b=await fetch("/api/memory/dismiss",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:c,memoryId:a})}),d=await b.json().catch(()=>({}));if(!b.ok)throw Error(d.error??`HTTP ${b.status}`);await F()}catch(a){u(a instanceof Error?a.message:String(a))}finally{w(null)}}},[c,F]),K=j.filter(a=>a.running).length,L=j.reduce((a,b)=>a+(b.running?b.rssBytes??0:0),0),M=l?.sessions??[],N=M.filter(a=>a.busy),O=N.filter(a=>"waiting_model"===a.phase);return(0,d.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",background:"var(--bg)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)"},children:"Status"}),(0,d.jsxs)("div",{style:{marginTop:3,fontSize:11,color:"var(--text-dim)"},children:[N.length," agent running \xb7 ",K," explore \xb7 ",bP(L)]})]}),(0,d.jsx)("button",{type:"button",onClick:()=>{E(),F()},style:bW,title:"Refresh status",children:"Refresh"})]}),p&&(0,d.jsx)("div",{style:{marginTop:8,padding:"7px 8px",border:"1px solid rgba(248,113,113,0.25)",borderRadius:6,background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:11},children:p}),r&&(0,d.jsx)("div",{style:{marginTop:8,padding:"7px 8px",border:"1px solid rgba(248,113,113,0.25)",borderRadius:6,background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:11},children:r}),t&&(0,d.jsx)("div",{style:{marginTop:8,padding:"7px 8px",border:"1px solid rgba(248,113,113,0.25)",borderRadius:6,background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:11},children:t})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"auto",padding:10},children:(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,d.jsxs)("section",{children:[(0,d.jsx)(bS,{title:"Agent Runtime",subtitle:O.length>0?`${O.length} waiting for model first token`:`${N.length} active chat${1===N.length?"":"s"}`}),i,0===M.length?(0,d.jsx)(bT,{label:"No agent runtime is active."}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:M.map(a=>{var b;let c=a.model?`${a.model.provider}/${a.model.id}`:"-",e=a.cwd?(0,bs.WP)(a.cwd)||a.cwd:"-",f=a.activeTools.map(a=>a.name).join(", ");return(0,d.jsxs)("div",{style:{border:`1px solid ${a.busy?"rgba(37,99,235,0.35)":"var(--border)"}`,borderRadius:8,background:a.busy?"var(--bg-selected)":"var(--bg-panel)",padding:10},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8},children:[(0,d.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:bO(a.phase),marginTop:5,flexShrink:0}}),(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:12,fontWeight:700,color:bO(a.phase),textTransform:"uppercase",flexShrink:0},children:"waiting_model"===(b=a.phase)?"waiting model":"running_tools"===b?"running tools":"streaming"===b?"streaming":"compacting"===b?"compacting":"idle"}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:c,children:c})]}),(0,d.jsxs)("div",{title:a.cwd??void 0,style:{marginTop:3,fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e," \xb7 ",a.sessionId.slice(0,8)]})]})]}),(0,d.jsxs)("div",{style:{marginTop:9,display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"5px 10px",fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)(bU,{label:"uptime",value:bQ(a.uptimeMs)}),(0,d.jsx)(bU,{label:"wait",value:bQ(a.waitingForModelMs),color:"waiting_model"===a.phase?bO(a.phase):void 0}),(0,d.jsx)(bU,{label:"pending",value:null===a.pendingMessageCount?"-":String(a.pendingMessageCount)}),(0,d.jsx)(bU,{label:"event",value:a.lastEventType??"-"}),(0,d.jsx)(bU,{label:"tools",value:f||"-"}),(0,d.jsx)(bU,{label:"ops",value:a.operations.join(", ")||"-"})]}),"waiting_model"===a.phase&&(a.waitingForModelMs??0)>8e3&&(0,d.jsx)("div",{style:{marginTop:8,padding:"7px 8px",border:"1px solid rgba(234,179,8,0.25)",borderRadius:6,background:"rgba(234,179,8,0.08)",color:"rgba(234,179,8,0.95)",fontSize:11,lineHeight:1.45},children:"Waiting before the first model token. If another chat uses the same provider or gateway, the upstream may be queueing requests."}),a.errorMessage&&(0,d.jsx)("div",{style:{marginTop:8,padding:"7px 8px",border:"1px solid rgba(248,113,113,0.25)",borderRadius:6,background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:11,lineHeight:1.45},children:a.errorMessage}),(0,d.jsx)("div",{style:{marginTop:10,display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:(0,d.jsx)("button",{type:"button",onClick:()=>void H(a),disabled:!a.busy||z===a.sessionId,style:{...bW,border:"1px solid rgba(239,68,68,0.35)",color:"#ef4444",background:"rgba(239,68,68,0.08)",opacity:a.busy&&z!==a.sessionId?1:.55},children:"Abort"})})]},a.sessionId)})})]}),(0,d.jsxs)("section",{children:[(0,d.jsx)(bS,{title:"Memory",subtitle:n?`${n.count} stored \xb7 ${n.candidateCount} candidates`:c?"loading":"No project selected"}),c?n?(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",padding:10},children:[(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"5px 10px",fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)(bU,{label:"fact",value:String(n.byType.fact)}),(0,d.jsx)(bU,{label:"context",value:String(n.byType.context)}),(0,d.jsx)(bU,{label:"decision",value:String(n.byType.decision)}),(0,d.jsx)(bU,{label:"preference",value:String(n.byType.preference)}),(0,d.jsx)(bU,{label:"note",value:String(n.byType.note)}),(0,d.jsx)(bU,{label:"candidates",value:String(n.candidateCount),color:n.candidateCount>0?"var(--accent)":void 0})]}),(0,d.jsx)("div",{title:n.filePath,style:{marginTop:8,fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,bs.qP)(n.filePath,c)})]}),(0,d.jsx)(bV,{title:"Promotion Candidates",emptyLabel:"No promotion candidates yet.",items:n.topCandidates,onPromote:I,onDismiss:J,busyAction:v}),(0,d.jsx)(bV,{title:"Recent Memory",emptyLabel:"No memory stored for this project.",items:n.recent})]}):(0,d.jsx)(bT,{label:"Memory status unavailable."}):(0,d.jsx)(bT,{label:"Select a project to inspect memory status."})]}),(0,d.jsxs)("section",{children:[(0,d.jsx)(bS,{title:"Explore Tools",subtitle:`${K} running \xb7 ${bP(L)}`}),0===D.length?(0,d.jsx)(bT,{label:"No explore tools are running."}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:D.map(a=>{let e,g=b===a.id,h=B===a.id;return(0,d.jsxs)("div",{style:{border:`1px solid ${g?"rgba(37,99,235,0.5)":"var(--border)"}`,borderRadius:8,background:g?"var(--bg-selected)":"var(--bg-panel)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:10},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8},children:[(0,d.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:bN(a.status),marginTop:5,flexShrink:0}}),(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--text)",textTransform:"uppercase",flexShrink:0},children:a.appType}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.filePath,children:(0,bs.WP)(a.filePath)})]}),(0,d.jsx)("div",{title:a.filePath,style:{marginTop:3,fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(e=c&&a.filePath.startsWith(c)?c:a.cwd,(0,bs.qP)(a.filePath,e))})]})]}),(0,d.jsxs)("div",{style:{marginTop:9,display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"5px 10px",fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)(bU,{label:"status",value:a.status,color:bN(a.status)}),(0,d.jsx)(bU,{label:"pid",value:a.pid?String(a.pid):"-"}),(0,d.jsx)(bU,{label:"memory",value:bP(a.rssBytes)}),(0,d.jsx)(bU,{label:"uptime",value:bQ(a.uptimeMs)}),(0,d.jsx)(bU,{label:"port",value:String(a.port)}),(0,d.jsx)(bU,{label:"session",value:a.sessionId?a.sessionId.slice(0,8):"-"})]}),(0,d.jsxs)("div",{style:{marginTop:10,display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[(0,d.jsx)("button",{type:"button",onClick:()=>f(a),style:bW,children:"Open"}),(0,d.jsx)("button",{type:"button",onClick:()=>C(b=>b===a.id?null:a.id),style:{...bW,background:h?"var(--bg-selected)":"var(--bg)"},children:"Logs"}),(0,d.jsx)("button",{type:"button",onClick:()=>void G(a),disabled:!a.running||x===a.id,style:{...bW,border:"1px solid rgba(239,68,68,0.35)",color:"#ef4444",background:"rgba(239,68,68,0.08)",opacity:a.running&&x!==a.id?1:.55},children:"Stop"})]})]}),h&&(0,d.jsx)("pre",{style:{maxHeight:220,overflow:"auto",margin:0,padding:10,borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:11,lineHeight:1.45,fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap"},children:a.logs.join("\n")||"No logs yet."})]},a.id)})})]})]})})]})}function bS({title:a,subtitle:b}){return(0,d.jsxs)("div",{style:{marginBottom:8,display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:10},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--text)"},children:a}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:b})]})}function bT({label:a}){return(0,d.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",padding:"18px 10px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:a})}function bU({label:a,value:b,color:c}){return(0,d.jsxs)("div",{style:{minWidth:0,display:"flex",alignItems:"center",gap:5},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0},children:a}),(0,d.jsx)("span",{style:{color:c??"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},children:b})]})}function bV({title:a,emptyLabel:b,items:c,onPromote:e,onDismiss:f,busyAction:g}){return(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",fontSize:12,fontWeight:700,color:"var(--text)"},children:a}),0===c.length?(0,d.jsx)("div",{style:{padding:"14px 10px",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:b}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:c.map((a,b)=>(0,d.jsxs)("div",{style:{padding:"9px 10px",borderTop:0===b?"none":"1px solid var(--border)",display:"flex",flexDirection:"column",gap:5},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:10,color:"project_memory"===a.candidate?"#f59e0b":"spark"===a.candidate?"var(--accent)":"var(--text-dim)",fontWeight:700,textTransform:"uppercase",flexShrink:0},children:"none"===a.candidate?a.memoryType:a.candidate}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",flexShrink:0},children:a.importance.toFixed(2)}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:new Date(a.timestamp).toLocaleString()})]}),(0,d.jsx)("div",{title:a.content,style:{fontSize:12,color:"var(--text)",lineHeight:1.45,display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:a.content}),(e||f)&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[e&&(0,d.jsx)("button",{type:"button",disabled:a.promotedTo.includes("memory")||g===`${a.id}:memory`,onClick:()=>void e(a.id,"memory"),style:{...bW,height:24,padding:"0 8px",opacity:a.promotedTo.includes("memory")||g===`${a.id}:memory`?.55:1},children:a.promotedTo.includes("memory")?"In MEMORY.md":g===`${a.id}:memory`?"Saving...":"To MEMORY.md"}),f&&(0,d.jsx)("button",{type:"button",disabled:g===`dismiss:${a.id}`||g===`${a.id}:memory`,onClick:()=>void f(a.id),style:{...bW,height:24,padding:"0 8px",opacity:g===`dismiss:${a.id}`||g===`${a.id}:memory`?.55:1,borderColor:"var(--text-dim)",color:"var(--text-dim)"},children:g===`dismiss:${a.id}`?"Dismissing…":"Ignore"})]})]},a.id))})]})}let bW={height:28,padding:"0 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:550};function bX({tabs:a,activeTabId:b,onSelectTab:c,onCloseTab:f,onAskAI:g}){let[h,i]=(0,e.useState)(null);return(0,d.jsx)("div",{style:{display:"flex",alignItems:"flex-end",background:"var(--bg-panel)",overflowX:"auto",flexShrink:0,height:36},children:a.map(a=>{let e=a.id===b,j=!1!==a.closable;return(0,d.jsxs)("div",{onClick:()=>c(a.id),style:{display:"flex",alignItems:"center",gap:6,height:36,paddingLeft:12,paddingRight:6,borderRight:"1px solid var(--border)",background:e?"var(--bg)":"var(--bg-panel)",cursor:"pointer",fontSize:12,color:e?"var(--text)":"var(--text-muted)",whiteSpace:"nowrap",maxWidth:180,minWidth:80,flexShrink:0,userSelect:"none",transition:"background 0.1s, color 0.1s"},children:[(0,d.jsx)("span",{style:{flexShrink:0,opacity:e?1:.7,display:"flex",alignItems:"center"},children:"files"===a.icon?(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M3 7.5V6a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v1.5"}),(0,d.jsx)("path",{d:"M3 7.5h18l-1.6 9.6A2 2 0 0 1 17.4 19H6.6a2 2 0 0 1-2-1.9z"})]}):"report"===a.icon?(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,d.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,d.jsx)("line",{x1:"8",y1:"13",x2:"16",y2:"13"}),(0,d.jsx)("line",{x1:"8",y1:"17",x2:"13",y2:"17"})]}):"tools"===a.icon?(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.1-3.1a6 6 0 0 1-7.9 7.9l-5.7 5.7a2.1 2.1 0 0 1-3-3l5.7-5.7a6 6 0 0 1 7.9-7.9z"})}):bp(a.filePath??a.label,13)}),(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:e?500:400},title:a.filePath??a.label,children:a.label}),j&&(0,d.jsxs)(d.Fragment,{children:[e&&g&&a.filePath&&!a.icon&&(0,d.jsx)("button",{onClick:b=>{b.stopPropagation(),g(a.filePath)},title:`Ask AI about ${a.label}`,style:{display:"flex",alignItems:"center",justifyContent:"center",width:16,height:16,background:"transparent",border:"none",borderRadius:3,color:"var(--accent)",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.1s"},children:(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M15 18H3"}),(0,d.jsx)("path",{d:"M17 6H3"}),(0,d.jsx)("path",{d:"M21 12H3"})]})}),(0,d.jsx)("button",{onClick:b=>{b.stopPropagation(),f(a.id)},onMouseEnter:()=>i(a.id),onMouseLeave:()=>i(null),style:{display:"flex",alignItems:"center",justifyContent:"center",width:16,height:16,background:h===a.id?"var(--bg-hover)":"transparent",border:"none",borderRadius:3,color:h===a.id?"var(--text)":"var(--text-dim)",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.1s, color 0.1s"},title:"Close",children:(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"2",y1:"2",x2:"8",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"2",y2:"8"})]})})]})]},a.id)})})}function bY(a){let b=a,c=0;for(;1===b.children.length;)b=b.children[0],c++;return{node:b,skipped:c}}function bZ({node:a,activePathIds:b,depth:c,isLast:e,parentLines:f,onSelect:g}){let{node:h,skipped:i}=bY(a),j=b.has(h.entry.id),k=b.has(a.entry.id)||b.has(h.entry.id),l=function(a){if("message"===a.type&&"message"in a){let b=a.message,c=b.content,d="";if("string"==typeof c?d=c:Array.isArray(c)&&(d=c.filter(a=>"text"===a.type).map(a=>a.text).join(" ")),d.length>40&&(d=d.slice(0,40)+"…"),d)return d;if("assistant"===b.role)return"[assistant]"}return a.type}(h.entry),m="message"===h.entry.type&&"message"in h.entry?h.entry.message.role:null;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",height:24,cursor:"pointer"},onClick:()=>g(h.entry.id),children:[f.map((a,b)=>(0,d.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:a&&(0,d.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},b)),(0,d.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,d.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:e?"50%":0,width:1,background:"var(--border)"}}),(0,d.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,d.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:j?"var(--accent)":k?"var(--text-muted)":"var(--border)",border:j?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background 0.12s"}}),m&&(0,d.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===m?"var(--accent)":"var(--text-dim)",background:"user"===m?"rgba(37,99,235,0.08)":"var(--bg-hover)",border:`1px solid ${"user"===m?"rgba(37,99,235,0.2)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:"user"===m?"U":"A"}),i>0&&(0,d.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",i]}),(0,d.jsx)("span",{style:{fontSize:11,color:j?"var(--text)":k?"var(--text-muted)":"var(--text-dim)",fontWeight:j?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:l})]}),h.children.map((a,i)=>(0,d.jsx)(bZ,{node:a,activePathIds:b,depth:c+1,isLast:i===h.children.length-1,parentLines:[...f,!e],onSelect:g},a.entry.id))]})}function b$({tree:a,activeLeafId:b,onLeafChange:c,inline:f,containerRef:g,open:h,onToggle:i,hasSession:j,embedded:k}){let[l,m]=(0,e.useState)(!1),n=void 0!==h?h:l,o=(0,e.useRef)(null),[p,q]=(0,e.useState)(null),r=(0,e.useMemo)(()=>b?new Set(function a(c,d){for(let e of c){let c=[...d,e.entry.id];if(e.entry.id===b)return c;let f=a(e.children,c);if(f)return f}return null}(a,[])??[]):new Set,[a,b]),s=(0,e.useCallback)(a=>{c(a)},[c]),t=j?!function a(b){for(let c of b)if(c.children.length>1||a(c.children))return!0;return!1}(a)?"This session has no branches":null:"No active session",u=a.length>0?bY(a[0]):null,v=u?.node??null,w=!t&&v&&v.children.length>1,x=(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:w?"var(--accent)":"var(--text-dim)",flexShrink:0},children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),y=(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:2,transform:n?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})});return k?(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"8px 10px",borderBottom:w?"1px solid var(--border)":"none"},children:[x,(0,d.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--text)"},children:"Branches"})]}),w&&v?(0,d.jsx)("div",{style:{padding:"4px 10px 8px",maxHeight:260,overflowY:"auto"},children:v.children.map((a,b)=>(0,d.jsx)(bZ,{node:a,activePathIds:r,depth:0,isLast:b===v.children.length-1,parentLines:[],onSelect:s},a.entry.id))}):(0,d.jsx)("div",{style:{padding:"0 10px 10px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:t??"This session has no branches"})]}):f?(0,d.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,d.jsxs)("button",{ref:o,className:"topbar-branches-button",onClick:()=>i?i():m(a=>!a),title:"Branches","aria-label":"Branches",style:{display:"flex",alignItems:"center",gap:6,height:28,padding:"0 9px",background:n?"var(--bg-selected)":"var(--bg-panel)",border:`1px solid ${n?"rgba(37,99,235,0.45)":"var(--border)"}`,borderRadius:7,cursor:"pointer",color:n?"var(--text)":"var(--text-muted)",fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, border-color 0.1s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color=n?"var(--text)":"var(--text-muted)",a.currentTarget.style.background=n?"var(--bg-selected)":"var(--bg-panel)"},children:[(0,d.jsx)("span",{className:"topbar-branches-icon",children:x}),(0,d.jsx)("span",{className:"topbar-branches-label",children:"Branches"})]}),n&&p&&(0,d.jsx)("div",{style:{position:"fixed",top:p.top,left:p.left,width:p.width,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",zIndex:500},children:w&&v?(0,d.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:v.children.map((a,b)=>(0,d.jsx)(bZ,{node:a,activePathIds:r,depth:0,isLast:b===v.children.length-1,parentLines:[],onSelect:s},a.entry.id))}):(0,d.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:t})})]}):(0,d.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,d.jsxs)("button",{onClick:()=>m(a=>!a),style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"5px 12px",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",fontSize:11,textAlign:"left"},children:[x,(0,d.jsx)("span",{style:{color:"var(--text-muted)"},children:"Branches"}),y]}),n&&(0,d.jsx)("div",{style:{position:"absolute",top:"100%",left:0,right:0,background:"var(--bg)",borderBottom:"1px solid var(--border)",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",zIndex:100},children:w&&v?(0,d.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:v.children.map((a,b)=>(0,d.jsx)(bZ,{node:a,activePathIds:r,depth:0,isLast:b===v.children.length-1,parentLines:[],onSelect:s},a.entry.id))}):(0,d.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:t??"This session has no branches"})})]})}function b_(a,b="0 0 24 24"){let c=({size:c=24,style:e})=>(0,d.jsx)("svg",{width:c,height:c,viewBox:b,fill:"none",style:e,children:a});return c.displayName="ProviderIcon",c}let b0=b_((0,d.jsx)("path",{d:"M17.5 3H6.5L3 21h4l1.2-6h7.6l1.2 6h4L17.5 3zm-2.3 9H8.8L12 5.5 15.2 12z",fill:"currentColor"})),b1=b_((0,d.jsx)("path",{d:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"})),b2=b_((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 01-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z",fill:"#4285F4"}),(0,d.jsx)("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),(0,d.jsx)("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),(0,d.jsx)("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]})),b3=b_((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#4D6BFE"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"10",fontWeight:"bold",fontFamily:"sans-serif",children:"DS"})]})),b4=b_((0,d.jsx)("path",{d:"M4 4h16v16H4z",fill:"#F55036"}),"0 0 24 24"),b5=b_((0,d.jsx)("path",{d:"M4 4h5v5H4zm5.5 0h5v5h-5zM15 4h5v5h-5zM4 9.5h5v5H4zm5.5 5.5h5v5h-5zM15 9.5h5v5h-5z",fill:"#FA6F00"})),b6=b_((0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5",fill:"none"}),"0 0 24 24"),b7=b_((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#00D4AA"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"9",fontWeight:"bold",fontFamily:"sans-serif",children:"MM"})]})),b8=b_((0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",fill:"#FF5722"}),"0 0 24 24"),b9=b_((0,d.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 5h2v3h-2V7zm0 4h2v2h-2v-2zm3 5H7v-2h7v2z",fill:"#FFD21E"})),ca=b_((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#E84026"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"9",fontWeight:"bold",fontFamily:"sans-serif",children:"CB"})]})),cb=b_((0,d.jsx)("path",{d:"M12 2l9 5v10l-9 5-9-5V7l9-5z",stroke:"currentColor",strokeWidth:"1.5",fill:"none"})),cc=b_((0,d.jsx)("path",{d:"M4 4l8 8 8-8M4 20l8-8 8 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})),cd=b_((0,d.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 5l4 3-4 3V7z",fill:"#F38020"})),ce=b_((0,d.jsx)("path",{d:"M12 2L22 20H2L12 2z",fill:"currentColor"})),cf=b_((0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5",fill:"none"}),"0 0 24 24"),cg=b_((0,d.jsx)("path",{d:"M3 15h2l1-3h2l1 3h2V9H9v3L8 9H6l-1 3V9H3v6zm9 0h2v-2h2v-2h-2V9h-2v2h-2v2h2v2z",fill:"#FF9900"})),ch=b_((0,d.jsx)("path",{d:"M12 2L3 18h5l4-6 4 6h5L12 2z",fill:"#0078D4"})),ci=b_((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#6C5CE7"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"10",fontWeight:"bold",fontFamily:"sans-serif",children:"Ki"})]})),cj=b_((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#615CED"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"9",fontWeight:"bold",fontFamily:"sans-serif",children:"QW"})]})),ck=b_((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#3859FF"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"9",fontWeight:"bold",fontFamily:"sans-serif",children:"ZP"})]})),cl=b_((0,d.jsx)("path",{d:"M4 8h16v2H4zm0 4h12v2H4zm0 4h8v2H4z",fill:"#3059B1"})),cm=b_((0,d.jsx)("path",{d:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5",stroke:"#1DB954",strokeWidth:"1.5",fill:"none",strokeLinejoin:"round"})),cn=b_((0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",fill:"#0F6CBD"}),"0 0 24 24"),co=b_((0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5",fill:"none"}),"0 0 24 24"),cp="openai-completions",cq={off:"none",xhigh:"xhigh"},cr={thinkingFormat:"deepseek",requiresReasoningContentOnAssistantMessages:!0};function cs(a){return a?.toLowerCase().replace(/\s+/g,"-")??""}function ct(a){return/(^|[^a-z0-9])gpt-5($|[.-])/.test(cs(a))}function cu(a){return/[.-](minimal|low|medium|high|xhigh)$/.test(cs(a))}function cv(a){return ct(a.id)||ct(a.name)}function cw(a,b=cp){if(!cv(a))return a;let c=a.api??("openai-responses"===b?void 0:"openai-responses");if(cv(a)&&(cu(a.id)||cu(a.name))){let b={...a};return delete b.reasoning,delete b.thinkingLevelMap,{...b,api:c}}return{...a,api:c,reasoning:a.reasoning??!0,thinkingLevelMap:a.thinkingLevelMap??cq}}let cx={anthropic:{Icon:b0,hasColor:!1},openai:{Icon:b1,hasColor:!1},"openai-codex":{Icon:b1,hasColor:!1},google:{Icon:b2,hasColor:!0},"google-vertex":{Icon:b2,hasColor:!0},deepseek:{Icon:b3,hasColor:!0},groq:{Icon:b4,hasColor:!1},mistral:{Icon:b5,hasColor:!0},moonshotai:{Icon:b6,hasColor:!1},"moonshotai-cn":{Icon:b6,hasColor:!1},moonshot:{Icon:b6,hasColor:!1},minimax:{Icon:b7,hasColor:!0},"minimax-cn":{Icon:b7,hasColor:!0},fireworks:{Icon:b8,hasColor:!0},huggingface:{Icon:b9,hasColor:!0},cerebras:{Icon:ca,hasColor:!0},openrouter:{Icon:cb,hasColor:!1},xai:{Icon:cc,hasColor:!1},"cloudflare-ai-gateway":{Icon:cd,hasColor:!0},"cloudflare-workers-ai":{Icon:cd,hasColor:!0},"vercel-ai-gateway":{Icon:ce,hasColor:!1},"github-copilot":{Icon:cf,hasColor:!1},"amazon-bedrock":{Icon:cg,hasColor:!0},"azure-openai-responses":{Icon:ch,hasColor:!0},"kimi-coding":{Icon:ci,hasColor:!0},qwen:{Icon:cj,hasColor:!0},zai:{Icon:ck,hasColor:!0},cohere:{Icon:cl,hasColor:!0},perplexity:{Icon:cm,hasColor:!0},together:{Icon:cn,hasColor:!0},grok:{Icon:co,hasColor:!1}},cy=["openai-completions","openai-responses","anthropic-messages","google-generative-ai"];function cz({label:a,children:b}){return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,d.jsx)("label",{style:{fontSize:11,color:"var(--text-muted)",fontWeight:500},children:a}),b]})}let cA={padding:"6px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",width:"100%",boxSizing:"border-box"};function cB({value:a,onChange:b,placeholder:c,mono:e}){return(0,d.jsx)("input",{value:a,onChange:a=>b(a.target.value),placeholder:c,style:{...cA,fontFamily:e?"var(--font-mono)":"inherit"}})}function cC({value:a,onChange:b,placeholder:c,mono:f,onKeyDown:g,autoComplete:h="off",spellCheck:i=!1,style:j}){let[k,l]=(0,e.useState)(!1);return(0,d.jsxs)("div",{style:{position:"relative",width:"100%",...j},children:[(0,d.jsx)("input",{type:k?"text":"password",value:a,onChange:a=>b(a.target.value),onKeyDown:g,placeholder:c,style:{...cA,paddingRight:34,fontFamily:f?"var(--font-mono)":"inherit"},autoComplete:h,spellCheck:i}),(0,d.jsx)("button",{type:"button",onClick:()=>l(a=>!a),"aria-label":k?"Hide API key":"Show API key",title:k?"Hide API key":"Show API key",style:{position:"absolute",right:5,top:"50%",transform:"translateY(-50%)",width:24,height:24,padding:0,border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:k?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M17.94 17.94A10.94 10.94 0 0 1 12 20C7 20 2.73 16.89 1 12a18.45 18.45 0 0 1 5.06-6.94"}),(0,d.jsx)("path",{d:"M9.9 4.24A10.94 10.94 0 0 1 12 4c5 0 9.27 3.11 11 8a18.5 18.5 0 0 1-2.16 3.19"}),(0,d.jsx)("path",{d:"M14.12 14.12A3 3 0 0 1 9.88 9.88"}),(0,d.jsx)("path",{d:"M1 1l22 22"})]}):(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]})}function cD({value:a,onChange:b,placeholder:c}){return(0,d.jsx)("input",{type:"number",value:a,onChange:a=>b(a.target.value),placeholder:c,style:cA})}function cE({value:a,onChange:b,options:c,required:e}){return(0,d.jsxs)("select",{value:a,onChange:a=>b(a.target.value),style:{...cA,color:a?"var(--text)":"var(--text-dim)"},children:[!e&&(0,d.jsx)("option",{value:"",children:"— inherit / none —"}),c.map(a=>(0,d.jsx)("option",{value:a,children:a},a))]})}function cF({label:a,checked:b,onChange:c}){return(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:12,color:"var(--text-muted)"},children:[(0,d.jsx)("input",{type:"checkbox",checked:b,onChange:a=>c(a.target.checked),style:{width:13,height:13,accentColor:"var(--accent)",cursor:"pointer"}}),a]})}function cG({children:a}){return(0,d.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:2},children:a})}function cH({name:a,provider:b,onChange:c,onRename:f,onDelete:g}){let[h,i]=(0,e.useState)(a),j=(a,d)=>c({...b,[a]:d});return(0,d.jsxs)("div",{className:"models-config-provider-detail",style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsx)(cG,{children:"Provider"}),(0,d.jsx)("button",{onClick:g,style:{padding:"3px 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11},children:"Delete"})]}),(0,d.jsxs)(cz,{label:"Provider name",children:[(0,d.jsx)(cB,{value:h,onChange:i,placeholder:"provider-name",mono:!0}),h!==a&&h.trim()&&(0,d.jsx)("button",{onClick:()=>f(h.trim()),style:{marginTop:4,padding:"3px 10px",background:"var(--accent)",border:"none",borderRadius:4,color:"#fff",cursor:"pointer",fontSize:11,alignSelf:"flex-start"},children:"Rename"})]}),(0,d.jsx)(cz,{label:"Base URL",children:(0,d.jsx)(cB,{value:b.baseUrl??"",onChange:a=>j("baseUrl",a||void 0),placeholder:"https://api.example.com/v1",mono:!0})}),(0,d.jsxs)(cz,{label:"API Key",children:[(0,d.jsx)(cC,{value:b.apiKey??"",onChange:a=>j("apiKey",a||void 0),placeholder:"ENV_VAR_NAME, !shell-command, or literal key",mono:!0}),(0,d.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:["Prefix with ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:"!"})," to run a shell command, or use an env var name"]})]}),(0,d.jsx)(cz,{label:"API",children:(0,d.jsx)(cE,{value:b.api??"openai-completions",onChange:a=>j("api",a),options:cy,required:!0})})]})}let cI=["off","minimal","low","medium","high","xhigh"],cJ={off:"var(--text-dim)",minimal:"#6b7280",low:"#60a5fa",medium:"#a78bfa",high:"#f472b6",xhigh:"#fb923c"};function cK({value:a,onChange:b}){let c=a??{},e=(a,d)=>{let e={...c};"omit"===d?delete e[a]:e[a]=d,b(Object.keys(e).length?e:void 0)};return(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:cI.map(a=>{let b=c[a],f=a in c?null===b?"null":"string":"omit",g="string"==typeof b?b:"",h=cJ[a],i={padding:"4px 10px",fontSize:10,border:"none",cursor:"pointer",fontWeight:400,transition:"background 0.1s, color 0.1s",whiteSpace:"nowrap",background:"var(--bg-panel)",color:"var(--text-dim)"},j={background:"var(--accent)",color:"#fff",fontWeight:600};return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 4px",borderRadius:6,background:"transparent",border:"1px solid transparent"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,width:68,flexShrink:0},children:[(0,d.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:h,flexShrink:0,opacity:"null"===f?.3:1}}),(0,d.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"null"===f?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===f?"line-through":"none"},children:a})]}),(0,d.jsxs)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,d.jsx)("button",{onClick:()=>e(a,"omit"),style:{...i,..."omit"===f?j:{}},children:"Default"}),(0,d.jsx)("button",{onClick:()=>e(a,null),style:{...i,borderLeft:"1px solid var(--border)",..."null"===f?{background:"#ef4444",color:"#fff",fontWeight:600}:{}},children:"Disabled"})]}),(0,d.jsxs)("div",{style:{display:"flex",borderRadius:5,border:`1px solid ${"string"===f?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color 0.1s"},children:[(0,d.jsx)("button",{onClick:()=>e(a,g||a),style:{...i,..."string"===f?j:{},borderRight:"1px solid var(--border)",flexShrink:0},children:"Custom"}),(0,d.jsx)("input",{value:g,onChange:b=>e(a,b.target.value),onFocus:()=>{"string"!==f&&e(a,g||a)},placeholder:a,maxLength:10,style:{width:"12ch",background:"string"===f?"var(--bg)":"var(--bg-panel)",border:"none",outline:"none",color:"string"===f?"var(--text)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,padding:"4px 7px",transition:"background 0.1s, color 0.1s"}})]})]},a)})})}function cL({providerName:a,provider:b,model:c,onChange:f,onDelete:g}){let[h,i]=(0,e.useState)({phase:"idle"}),j=(a,b)=>f({...c,[a]:b}),k=a=>{f(cw(a,b.api??cp))},l=(()=>{if("idle"===h.phase)return null;if("testing"===h.phase)return"Testing model connection...";let a=[void 0!==h.latencyMs?`${h.latencyMs}ms`:null,void 0!==h.status?`HTTP ${h.status}`:null].filter(Boolean);return"success"===h.phase?["Connected",...a,h.responseText||null].filter(Boolean).join(" \xb7 "):["Failed",...a,h.message].filter(Boolean).join(" \xb7 ")})(),m=(0,e.useCallback)(async()=>{if(c.id.trim()&&"testing"!==h.phase){i({phase:"testing"});try{let d=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:a,provider:b,model:c})}),e=await d.json();if(!d.ok||!e.ok)return void i({phase:"error",message:e.error??`HTTP ${d.status}`,latencyMs:e.latencyMs,status:e.status});i({phase:"success",latencyMs:e.latencyMs,status:e.status,responseText:e.responseText})}catch(a){i({phase:"error",message:a instanceof Error?a.message:String(a)})}}},[c,b,a,h.phase]);return(0,d.jsxs)("div",{className:"models-config-model-detail",style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsx)(cG,{children:"Model"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[l&&(0,d.jsx)("span",{title:l,style:{maxWidth:260,height:24,padding:"0 8px",border:`1px solid ${"error"===h.phase?"#fecaca":"success"===h.phase?"#bbf7d0":"var(--border)"}`,borderRadius:4,background:"error"===h.phase?"#fee2e2":"success"===h.phase?"#dcfce7":"#e5e7eb",color:"#111827",fontSize:11,display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxSizing:"border-box"},children:l}),(0,d.jsxs)("button",{onClick:m,disabled:!c.id.trim()||"testing"===h.phase,title:"Test model connection",style:{height:24,padding:"0 8px",background:"success"===h.phase?"#16a34a":"none",border:`1px solid ${"success"===h.phase?"#16a34a":"var(--border)"}`,borderRadius:4,color:"success"===h.phase?"#fff":c.id.trim()&&"testing"!==h.phase?"var(--text-muted)":"var(--text-dim)",cursor:c.id.trim()&&"testing"!==h.phase?"pointer":"not-allowed",fontSize:11,display:"inline-flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box",gap:5},children:["success"===h.phase&&(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),"testing"===h.phase?"Testing…":"success"===h.phase?"OK":"Test"]}),(0,d.jsx)("button",{onClick:g,style:{height:24,padding:"0 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11,boxSizing:"border-box"},children:"Remove"})]})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,d.jsx)(cz,{label:"ID *",children:(0,d.jsx)(cB,{value:c.id,onChange:a=>k({...c,id:a}),placeholder:"model-id",mono:!0})}),(0,d.jsx)(cz,{label:"Name",children:(0,d.jsx)(cB,{value:c.name??"",onChange:a=>k({...c,name:a||void 0}),placeholder:"Display name"})})]}),(0,d.jsx)(cz,{label:"API override",children:(0,d.jsx)(cE,{value:c.api??"",onChange:a=>j("api",a||void 0),options:cy})}),(0,d.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap"},children:[(0,d.jsx)(cF,{label:"Reasoning / thinking",checked:c.reasoning??!1,onChange:a=>j("reasoning",a||void 0)}),(0,d.jsx)(cF,{label:"Image input",checked:c.input?.includes("image")??!1,onChange:a=>j("input",a?["text","image"]:["text"])})]}),c.reasoning&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(cF,{label:"DeepSeek thinking compat",checked:c.compat?.thinkingFormat==="deepseek",onChange:a=>f(function(a,b){if(b)return{...a,compat:{...a.compat??{},...cr}};if(!a.compat)return a;let c={...a.compat};return delete c.thinkingFormat,delete c.requiresReasoningContentOnAssistantMessages,{...a,compat:Object.keys(c).length?c:void 0}}(c,a))}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,d.jsx)(cG,{children:"Thinking level map"}),c.thinkingLevelMap&&(0,d.jsx)("button",{onClick:()=>j("thinkingLevelMap",void 0),style:{fontSize:10,padding:"2px 7px",background:"none",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-dim)",cursor:"pointer"},children:"clear all"})]}),(0,d.jsx)(cK,{value:c.thinkingLevelMap,onChange:a=>j("thinkingLevelMap",a)})]})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,d.jsx)(cz,{label:"Context window (tokens)",children:(0,d.jsx)(cD,{value:void 0!==c.contextWindow?String(c.contextWindow):"",onChange:a=>j("contextWindow",a?parseInt(a):void 0),placeholder:"128000"})}),(0,d.jsx)(cz,{label:"Max output tokens",children:(0,d.jsx)(cD,{value:void 0!==c.maxTokens?String(c.maxTokens):"",onChange:a=>j("maxTokens",a?parseInt(a):void 0),placeholder:"16384"})})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)(cG,{children:"Cost (per million tokens)"}),(0,d.jsx)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gap:8},children:["input","output","cacheRead","cacheWrite"].map(a=>(0,d.jsx)(cz,{label:a,children:(0,d.jsx)(cD,{value:c.cost?.[a]!==void 0?String(c.cost[a]):"",onChange:b=>{let d;return d=parseFloat(b),void f({...c,cost:{...c.cost??{},[a]:isNaN(d)?void 0:d}})},placeholder:"0"})},a))})]})]})}function cM({provider:a,onRefresh:b}){let[c,f]=(0,e.useState)({phase:"idle"}),[g,h]=(0,e.useState)(""),i=(0,e.useRef)(null),j=(0,e.useRef)(null),k=(0,e.useCallback)(()=>{i.current?.close(),f({phase:"connecting"}),h("");let c=new EventSource(`/api/auth/login/${encodeURIComponent(a.id)}`);i.current=c,c.onmessage=a=>{let d=JSON.parse(a.data);"auth"===d.type?(f({phase:"auth",url:d.url,instructions:d.instructions??null,token:d.token}),window.open(d.url,"_blank","noopener,noreferrer")):"device_code"===d.type?(f({phase:"device_code",userCode:d.userCode,verificationUri:d.verificationUri,intervalSeconds:d.intervalSeconds??null,expiresInSeconds:d.expiresInSeconds??null}),window.open(d.verificationUri,"_blank","noopener,noreferrer")):"prompt_request"===d.type?f({phase:"prompt",message:d.message,placeholder:d.placeholder??null,token:d.token}):"select_request"===d.type?f({phase:"select",message:d.message,options:d.options??[],token:d.token}):"progress"===d.type?f({phase:"progress",message:d.message}):"success"===d.type?(c.close(),f({phase:"success"}),b()):"error"===d.type?(c.close(),f({phase:"error",message:d.message})):"cancelled"===d.type&&(c.close(),f({phase:"idle"}))},c.onerror=()=>{c.close(),f(a=>"success"===a.phase?a:{phase:"error",message:"Connection lost"})}},[a.id,b]),l=(0,e.useCallback)(async()=>{await fetch(`/api/auth/logout/${encodeURIComponent(a.id)}`,{method:"POST"}),f({phase:"idle"}),b()},[a.id,b]),m=(0,e.useCallback)(async(b,c)=>{if(c.trim()){f({phase:"progress",message:"Verifying…"});try{let d=await fetch(`/api/auth/login/${encodeURIComponent(a.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:b,code:c.trim()})});if(!d.ok){let a=await d.json().catch(()=>({}));f({phase:"error",message:a.error??`Server error ${d.status}`});return}h("")}catch(a){f({phase:"error",message:a instanceof Error?a.message:"Network error"})}}},[a.id]),n=(0,e.useCallback)(async(b,c)=>{f({phase:"progress",message:"Continuing…"});try{let d=await fetch(`/api/auth/login/${encodeURIComponent(a.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:b,code:c})});if(!d.ok){let a=await d.json().catch(()=>({}));f({phase:"error",message:a.error??`Server error ${d.status}`})}}catch(a){f({phase:"error",message:a instanceof Error?a.message:"Network error"})}},[a.id]),o="connecting"===c.phase||"progress"===c.phase||"auth"===c.phase||"device_code"===c.phase||"prompt"===c.phase||"select"===c.phase;return(0,d.jsxs)("div",{className:"models-config-subscription-detail",style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsx)(cG,{children:"Subscription"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:a.loggedIn?"#4ade80":"var(--border)",display:"inline-block"}}),(0,d.jsx)("span",{style:{fontSize:11,color:a.loggedIn?"#4ade80":"var(--text-dim)"},children:a.loggedIn?"connected":"not connected"})]})]}),(0,d.jsxs)("div",{style:{minHeight:48},children:["idle"===c.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:a.loggedIn?"Already connected. You can re-login or disconnect.":`Connect your ${a.name} account.`}),"connecting"===c.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:"Opening browser…"}),"select"===c.phase&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:c.message}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:c.options.map(a=>(0,d.jsx)("button",{onClick:()=>n(c.token,a.id),style:{padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left"},children:a.label},a.id))})]}),("auth"===c.phase||"prompt"===c.phase)&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"auth"===c.phase?"Complete sign-in in the browser, then copy the redirect URL from the address bar and paste it below.":c.message}),"auth"===c.phase&&(0,d.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:["If the browser window did not open,"," ",(0,d.jsx)("a",{href:c.url,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:"click here to open the login page"}),"."]}),(0,d.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,d.jsx)("input",{ref:j,value:g,onChange:a=>h(a.target.value),onKeyDown:a=>{"Enter"===a.key&&m(c.token,g)},placeholder:"auth"===c.phase?"http://localhost:1455/auth/callback?code=…":c.placeholder??"Enter value…",style:{flex:1,padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",fontFamily:"var(--font-mono)",boxSizing:"border-box"}}),(0,d.jsx)("button",{onClick:()=>m(c.token,g),disabled:!g.trim(),style:{padding:"6px 12px",background:g.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:g.trim()?"#fff":"var(--text-dim)",cursor:g.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,flexShrink:0},children:"Submit"})]})]}),"device_code"===c.phase&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"Open the verification page and enter this code:"}),(0,d.jsx)("div",{style:{padding:"8px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:16,fontWeight:700,fontFamily:"var(--font-mono)",letterSpacing:0},children:c.userCode}),(0,d.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,d.jsx)("a",{href:c.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:c.verificationUri}),c.expiresInSeconds?` Expires in ${Math.ceil(c.expiresInSeconds/60)} minutes.`:""]})]}),"progress"===c.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:c.message}),"success"===c.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"#4ade80"},children:"Connected successfully."}),"error"===c.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:c.message})]}),(0,d.jsx)("div",{style:{display:"flex",gap:8},children:o?(0,d.jsx)("button",{onClick:()=>{i.current?.close(),f({phase:"idle"})},style:{padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:"Cancel"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:k,style:{padding:"5px 14px",background:"var(--accent)",border:"none",borderRadius:5,color:"#fff",cursor:"pointer",fontSize:12,fontWeight:600},children:a.loggedIn?"Re-login":"Login"}),a.loggedIn&&(0,d.jsx)("button",{onClick:l,style:{padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",cursor:"pointer",fontSize:12},children:"Disconnect"})]})})]})}function cN({provider:a,onRefresh:b}){let[c,f]=(0,e.useState)(""),[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(!1),o=(0,e.useCallback)(async()=>{if(c.trim()){h(!0),l(null),n(!1);try{let d=await fetch(`/api/auth/api-key/${encodeURIComponent(a.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:c.trim()})}),e=await d.json();!d.ok||e.error?l(e.error??`HTTP ${d.status}`):(f(""),n(!0),setTimeout(()=>n(!1),2e3),b())}catch(a){l(String(a))}finally{h(!1)}}},[c,a.id,b]),p=(0,e.useCallback)(async()=>{j(!0),l(null);try{let c=await fetch(`/api/auth/api-key/${encodeURIComponent(a.id)}`,{method:"DELETE"}),d=await c.json();!c.ok||d.error?l(d.error??`HTTP ${c.status}`):b()}catch(a){l(String(a))}finally{j(!1)}},[a.id,b]);return(0,d.jsxs)("div",{className:"models-config-apikey-detail",style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsx)(cG,{children:"API Key"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:a.configured?"#4ade80":"var(--border)",display:"inline-block"}}),(0,d.jsx)("span",{style:{fontSize:11,color:a.configured?"#4ade80":"var(--text-dim)"},children:a.configured?"configured":"not configured"})]})]}),(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:a.configured?"API key is stored. Enter a new key below to replace it, or disconnect to remove it.":`Enter your ${a.displayName} API key to enable ${a.modelCount} model${1!==a.modelCount?"s":""}.`}),(0,d.jsx)(cz,{label:"API Key",children:(0,d.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,d.jsx)(cC,{value:c,onChange:f,onKeyDown:a=>{"Enter"===a.key&&c.trim()&&o()},placeholder:a.configured?"Enter new key to replace…":"sk-…",style:{flex:1},autoComplete:"off",spellCheck:!1,mono:!0}),(0,d.jsxs)("button",{onClick:o,disabled:g||!c.trim()||m,style:{padding:"6px 12px",background:m?"#16a34a":c.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:c.trim()||m?"#fff":"var(--text-dim)",cursor:g||!c.trim()||m?"not-allowed":"pointer",fontSize:12,fontWeight:600,flexShrink:0,display:"flex",alignItems:"center",gap:5},children:[m&&(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),m?"Saved":g?"Saving…":"Save"]})]})}),k&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:k}),a.configured&&(0,d.jsx)("button",{onClick:p,disabled:i,style:{alignSelf:"flex-start",padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",cursor:i?"not-allowed":"pointer",fontSize:12},children:i?"Removing…":"Disconnect"})]})}function cO({id:a,size:b}){let c=cx[a];return c?c.hasColor?(0,d.jsx)(c.Icon,{size:b}):(0,d.jsx)(c.Icon,{size:b,style:{color:"var(--text-muted)"}}):null}function cP({oauthProviders:a,apiKeyProviders:b,onSelectOAuth:c,onSelectApiKey:f,onAddCustom:g,onDiscover:h,onClose:i}){let[j,k]=(0,e.useState)(""),l=(0,e.useRef)(null),m=j.trim().toLowerCase(),n=a.filter(a=>!a.loggedIn&&(!m||a.name.toLowerCase().includes(m))),o=b.filter(a=>!a.configured&&(!m||a.displayName.toLowerCase().includes(m)||a.id.toLowerCase().includes(m))),p=!m||"custom".includes(m)||"openai-compatible".includes(m)||"anthropic-compatible".includes(m),q=!m||"discover".includes(m)||"base url".includes(m)||"model import".includes(m),r=n.length+o.length+ +!!p+ +!!q,s={display:"flex",flexDirection:"row",alignItems:"center",gap:8,padding:"10px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,boxSizing:"border-box",cursor:"pointer",minWidth:0,textAlign:"left",transition:"border-color 0.12s, background 0.12s",width:"100%"};return(0,d.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:a=>{a.target===a.currentTarget&&i()},children:(0,d.jsxs)("div",{style:{width:820,maxWidth:"calc(100vw - 32px)",maxHeight:"min(72vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.22)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:"10px 14px",borderBottom:"1px solid var(--border)",flexShrink:0,display:"flex",alignItems:"center",gap:8},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)",flexShrink:0},children:[(0,d.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,d.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,d.jsx)("input",{ref:l,value:j,onChange:a=>k(a.target.value),onKeyDown:a=>{"Escape"===a.key&&i()},placeholder:"Search providers…",style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box"}})]}),(0,d.jsx)("div",{style:{flex:1,overflowY:"auto",padding:14},children:0===r?(0,d.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:"No providers match"}):(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:8},children:[p&&(0,d.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"Custom"}),p&&(0,d.jsxs)("button",{onClick:()=>{g(),i()},style:s,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"OpenAI / Anthropic compatible"}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"Custom endpoint format"})]}),(0,d.jsx)("span",{style:{width:26,height:26,borderRadius:5,background:"var(--bg-hover)",border:"1px dashed var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)"},children:[(0,d.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,d.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})})]}),q&&(0,d.jsxs)("button",{onClick:()=>{h(),i()},style:s,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"Discover models from Base URL"}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OpenAI-compatible / Ollama catalog"})]}),(0,d.jsx)("span",{style:{width:26,height:26,borderRadius:5,background:"var(--bg-hover)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-muted)"},children:[(0,d.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,d.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]})})]}),n.length>0&&(0,d.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!p,fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"Subscriptions"}),n.map(a=>(0,d.jsxs)("button",{onClick:()=>{c(a.id),i()},style:s,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OAuth"})]}),(0,d.jsx)(cO,{id:a.id,size:28})]},a.id)),o.length>0&&(0,d.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(n.length>0),fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"API Key"}),o.map(a=>(0,d.jsxs)("button",{onClick:()=>{f(a.id),i()},style:s,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.displayName}),(0,d.jsxs)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:[a.modelCount," models"]})]}),(0,d.jsx)(cO,{id:a.id,size:28})]},a.id))]})})]})})}function cQ({existingProviders:a,onImport:b,onClose:c}){let[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)("custom-provider"),[l,m]=(0,e.useState)(new Set),[n,o]=(0,e.useState)({phase:"idle"}),p=(0,e.useCallback)(async()=>{let a=f.trim();if(a&&"loading"!==n.phase){o({phase:"loading"});try{let b=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:a,apiKey:h,provider:j,enrich:!1})}),c=await b.json();if(!b.ok||!c.ok||!c.models||!c.piModels||!c.endpoint)return void o({phase:"error",message:c.error??`HTTP ${b.status}`});o({phase:"success",endpoint:c.endpoint,models:c.models,piModels:c.piModels}),m(new Set(c.piModels.map(a=>a.id)))}catch(a){o({phase:"error",message:a instanceof Error?a.message:String(a)})}}},[h,f,j,n.phase]),q="success"===n.phase?n:null,r=l.size,s=!!(q&&j.trim()&&r>0);return(0,d.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:a=>{a.target===a.currentTarget&&c()},children:(0,d.jsxs)("div",{style:{width:880,maxWidth:"calc(100vw - 32px)",height:"min(78vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.22)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:"Discover models"}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginTop:2},children:"Fetch model catalog from a Base URL and import selected models."})]}),(0,d.jsx)("button",{onClick:c,style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,d.jsxs)("div",{style:{padding:16,borderBottom:"1px solid var(--border)",display:"grid",gridTemplateColumns:"1.4fr 1fr 0.9fr auto",gap:10,alignItems:"end",flexShrink:0},children:[(0,d.jsx)(cz,{label:"Base URL",children:(0,d.jsx)(cB,{value:f,onChange:g,placeholder:"https://api.example.com",mono:!0})}),(0,d.jsx)(cz,{label:"API Key",children:(0,d.jsx)(cC,{value:h,onChange:i,placeholder:"optional for local providers",mono:!0})}),(0,d.jsx)(cz,{label:"Provider name",children:(0,d.jsx)(cB,{value:j,onChange:k,placeholder:"provider-name",mono:!0})}),(0,d.jsx)("button",{onClick:p,disabled:!f.trim()||"loading"===n.phase,style:{height:31,padding:"0 14px",background:f.trim()&&"loading"!==n.phase?"var(--accent)":"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:f.trim()&&"loading"!==n.phase?"#fff":"var(--text-dim)",cursor:f.trim()&&"loading"!==n.phase?"pointer":"not-allowed",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:"loading"===n.phase?"Fetching...":"Fetch models"})]}),(0,d.jsxs)("div",{style:{flex:1,overflow:"hidden",display:"flex",flexDirection:"column"},children:["idle"===n.phase&&(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:"Enter a Base URL to discover available models."}),"loading"===n.phase&&(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:"Fetching model catalog..."}),"error"===n.phase&&(0,d.jsx)("div",{style:{padding:18,color:"#f87171",fontSize:12,lineHeight:1.6},children:n.message}),q&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 16px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,d.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[q.piModels.length," models from ",q.endpoint]}),(0,d.jsx)("button",{onClick:()=>{if(q){if(l.size===q.piModels.length)return void m(new Set);m(new Set(q.piModels.map(a=>a.id)))}},style:{padding:"2px 8px",fontSize:11,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer"},children:l.size===q.piModels.length?"Clear":"Select all"})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"auto"},children:q.piModels.map((a,b)=>{let c=q.models[b],e=l.has(a.id);return(0,d.jsxs)("label",{style:{display:"grid",gridTemplateColumns:"24px minmax(0, 1fr) 90px 90px 90px 70px",gap:10,alignItems:"center",padding:"8px 16px",borderBottom:"1px solid rgba(127,127,127,0.12)",background:e?"var(--bg-subtle)":"transparent",cursor:"pointer"},children:[(0,d.jsx)("input",{type:"checkbox",checked:e,onChange:()=>{var b;return b=a.id,void m(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},style:{width:14,height:14,accentColor:"var(--accent)"}}),(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.id}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c?.ownedBy??"unknown"})]}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:a.contextWindow}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:a.maxTokens}),(0,d.jsx)("span",{style:{fontSize:10,color:a.reasoning?"var(--accent)":"var(--text-dim)"},children:a.reasoning?"reasoning":""}),(0,d.jsx)("span",{style:{fontSize:10,color:a.input?.includes("image")?"var(--accent)":"var(--text-dim)"},children:a.input?.includes("image")?"image":""})]},a.id)})})]})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,padding:"10px 16px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,d.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:[r," selected"]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,d.jsx)("button",{onClick:c,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{if(!q||!s)return;let d=f.trim().replace(/\/+$/,""),e=h.trim(),g=Object.entries(a).find(([,a])=>(a.baseUrl??"").replace(/\/+$/,"")===d&&(a.apiKey??"")===e),i=g?.[0]??j.trim(),k=a[i],m=new Map((k?.models??[]).map(a=>[a.id,a])),n=k?.api??cp,o=0;for(let a of q.piModels)l.has(a.id)&&!m.has(a.id)&&(m.set(a.id,cw(a,n)),o+=1);b(i,{...k??{},baseUrl:d,api:n,...e?{apiKey:e}:{},models:Array.from(m.values())},o),c()},disabled:!s,style:{padding:"6px 16px",background:s?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:6,color:s?"#fff":"var(--text-dim)",cursor:s?"pointer":"not-allowed",fontSize:13,fontWeight:600},children:"Import selected"})]})]})]})})}function cR({onClose:a,embedded:b=!1}){let[c,f]=(0,e.useState)({providers:{}}),[g,h]=(0,e.useState)(!0),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)([]),[u,v]=(0,e.useState)([]),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(!1),A=(0,e.useCallback)(()=>{fetch("/api/auth/providers").then(a=>a.json()).then(a=>t(a.providers)).catch(()=>{})},[]),B=(0,e.useCallback)(()=>{fetch("/api/auth/all-providers").then(a=>a.json()).then(a=>v(a.providers)).catch(()=>{})},[]),C=(0,e.useCallback)(()=>{let a="new-provider",b=1;for(;c.providers?.[a];)a=`new-provider-${b++}`;f(b=>({...b,providers:{...b.providers??{},[a]:{api:"openai-completions"}}})),r({type:"provider",name:a})},[c.providers]),D=(0,e.useCallback)((a,b)=>{f(c=>({...c,providers:{...c.providers??{},[a]:b}}))},[]),E=(0,e.useCallback)((a,b)=>{f(c=>{let d=Object.entries(c.providers??{}),e=d.findIndex(([b])=>b===a);return -1===e?c:(d[e]=[b,d[e][1]],{...c,providers:Object.fromEntries(d)})}),r(c=>c?"provider"===c.type&&c.name===a?{type:"provider",name:b}:"model"===c.type&&c.providerName===a?{...c,providerName:b}:c:c)},[]),F=(0,e.useCallback)(a=>{f(b=>{let c={...b.providers??{}};return delete c[a],{...b,providers:c}}),f(a=>{let b=Object.keys(a.providers??{});return r(b.length>0?{type:"provider",name:b[0]}:null),a})},[]),G=(0,e.useCallback)(a=>{f(b=>{let c=b.providers?.[a]??{},d=[...c.models??[],{id:""}];return{...b,providers:{...b.providers??{},[a]:{...c,models:d}}}}),f(b=>{let c=(b.providers?.[a]?.models?.length??1)-1;return r({type:"model",providerName:a,index:c}),b})},[]),H=(0,e.useCallback)((a,b,c)=>{f(d=>{let e=d.providers?.[a]??{},f=[...e.models??[]];return f[b]=c,{...d,providers:{...d.providers??{},[a]:{...e,models:f}}}})},[]),I=(0,e.useCallback)((a,b)=>{f(c=>{let d=c.providers?.[a]??{},e=[...d.models??[]];return e.splice(b,1),{...c,providers:{...c.providers??{},[a]:{...d,models:e.length?e:void 0}}}}),r({type:"provider",name:a})},[]),J=(0,e.useCallback)((a,b,c)=>{f(c=>({...c,providers:{...c.providers??{},[a]:b}})),r({type:"provider",name:a}),p(!1),l(null),n(`${c} model${1===c?"":"s"} imported. Click Save to write models.json.`)},[]),K=(0,e.useCallback)(async()=>{j(!0),l(null),n(null),p(!1);try{let a=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)}),b=await a.json();!a.ok||b.error?l(b.error??`HTTP ${a.status}`):(p(!0),setTimeout(()=>p(!1),2e3))}catch(a){l(String(a))}finally{j(!1)}},[c]),L=Object.entries(c.providers??{}),M=s.filter(a=>a.loggedIn),N=u.filter(a=>a.configured),O=(()=>{if(!q)return null;if("oauth"===q.type){let a=s.find(a=>a.id===q.providerId);return a?(0,d.jsx)(cM,{provider:a,onRefresh:A},a.id):null}if("apikey"===q.type){let a=u.find(a=>a.id===q.providerId);return a?(0,d.jsx)(cN,{provider:a,onRefresh:B},a.id):null}if("provider"===q.type){let a=c.providers?.[q.name];return a?(0,d.jsx)(cH,{name:q.name,provider:a,onChange:a=>D(q.name,a),onRename:a=>E(q.name,a),onDelete:()=>F(q.name)},q.name):null}let a=c.providers?.[q.providerName],b=a?.models?.[q.index];return b?(0,d.jsx)(cL,{providerName:q.providerName,provider:a,model:b,onChange:a=>H(q.providerName,q.index,a),onDelete:()=>I(q.providerName,q.index)},`${q.providerName}-${q.index}`):null})();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"models-config-root",style:b?{height:"100%",minHeight:0,display:"flex",alignItems:"stretch",justifyContent:"stretch"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:c=>{b||c.target!==c.currentTarget||a()},children:(0,d.jsxs)("div",{className:"models-config-shell",style:{width:b?"100%":860,height:b?"100%":"78vh",background:"var(--bg)",border:b?"none":"1px solid var(--border)",borderRadius:10*!b,display:"flex",flexDirection:"column",boxShadow:b?"none":"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!b&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,d.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:"Models"}),(0,d.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:"~/.pi/agent/models.json"})]}),(0,d.jsx)("button",{onClick:a,style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,d.jsxs)("div",{className:"models-config-body",style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,d.jsxs)("div",{className:"models-config-tree",style:{width:210,borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:[M.map(a=>{let b=q?.type==="oauth"&&q.providerId===a.id;return(0,d.jsxs)("div",{onClick:()=>r({type:"oauth",providerId:a.id}),style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:b?"var(--bg-selected)":"none"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="none")},children:[(0,d.jsx)(cO,{id:a.id,size:16}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name})]},a.id)}),N.map(a=>{let b=q?.type==="apikey"&&q.providerId===a.id;return(0,d.jsxs)("div",{onClick:()=>r({type:"apikey",providerId:a.id}),style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:b?"var(--bg-selected)":"none"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="none")},children:[(0,d.jsx)(cO,{id:a.id,size:16}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.displayName})]},a.id)}),(M.length>0||N.length>0)&&L.length>0&&(0,d.jsx)("div",{style:{margin:"4px 8px",borderTop:"1px solid var(--border)"}}),g?(0,d.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:"Loading…"}):L.map(([a,b])=>{let c=q?.type==="provider"&&q.name===a,e=b.models??[];return(0,d.jsxs)("div",{style:{marginBottom:2},children:[(0,d.jsxs)("div",{onClick:()=>r({type:"provider",name:a}),style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:c?"var(--bg-selected)":"none"},onMouseEnter:a=>{c||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{c||(a.currentTarget.style.background="none")},children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)",flexShrink:0},children:[(0,d.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,d.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,d.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,d.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,d.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,d.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,d.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,d.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,d.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,d.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),(0,d.jsx)("span",{style:{fontSize:12,fontWeight:c?600:400,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a})]}),e.map((b,c)=>{let e=q?.type==="model"&&q.providerName===a&&q.index===c;return(0,d.jsxs)("div",{onClick:()=>r({type:"model",providerName:a,index:c}),style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 26px",borderRadius:5,cursor:"pointer",background:e?"var(--bg-selected)":"none"},onMouseEnter:a=>{e||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{e||(a.currentTarget.style.background="none")},children:[(0,d.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:b.id?"var(--text-muted)":"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:b.id||"new model"}),b.reasoning&&(0,d.jsx)("span",{style:{fontSize:9,padding:"1px 4px",background:"rgba(99,102,241,0.12)",color:"rgba(99,102,241,0.8)",borderRadius:3,flexShrink:0},children:"T"})]},c)}),(0,d.jsx)("div",{onClick:b=>{b.stopPropagation(),G(a)},style:{display:"flex",alignItems:"center",gap:4,padding:"4px 8px 4px 26px",borderRadius:5,cursor:"pointer",color:"var(--text-dim)"},onMouseEnter:a=>{a.currentTarget.style.color="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)",a.currentTarget.style.background="none"},children:(0,d.jsx)("span",{style:{fontSize:11},children:"+ model"})})]},a)})]}),(0,d.jsx)("div",{style:{borderTop:"1px solid var(--border)",padding:"8px 6px"},children:(0,d.jsx)("button",{onClick:()=>x(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,width:"100%",padding:"6px 0",background:"none",border:"1px dashed var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.color="var(--accent)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.color="var(--text-muted)"},children:"+ Add provider"})})]}),(0,d.jsx)("div",{className:"models-config-detail",style:{flex:1,overflowY:"auto",padding:20},children:g?null:O??(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:"Select a provider or model"})})]}),(0,d.jsxs)("div",{className:"models-config-footer",style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:10,padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[k?(0,d.jsx)("span",{style:{fontSize:12,color:"#f87171",flex:1},children:k}):m?(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",flex:1},children:m}):null,(0,d.jsx)("button",{onClick:a,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:"Cancel"}),(0,d.jsxs)("button",{onClick:K,disabled:i||o,style:{position:"relative",padding:"6px 16px",minWidth:92,background:o?"#16a34a":i?"var(--bg-panel)":"var(--accent)",border:"none",borderRadius:6,color:o?"#fff":i?"var(--text-muted)":"#fff",cursor:i||o?"default":"pointer",fontSize:13,fontWeight:600,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,transition:"background-color 0.2s ease, color 0.2s ease",animation:o?"saved-pop 0.45s ease":void 0},children:[o&&(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",style:{strokeDasharray:18,animation:"saved-check-draw 0.35s ease forwards",flexShrink:0},children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,d.jsx)("span",{children:o?"Saved":i?"Saving…":"Save"})]})]})]})}),w&&(0,d.jsx)(cP,{oauthProviders:s,apiKeyProviders:u,onSelectOAuth:a=>r({type:"oauth",providerId:a}),onSelectApiKey:a=>r({type:"apikey",providerId:a}),onAddCustom:C,onDiscover:()=>z(!0),onClose:()=>x(!1)}),y&&(0,d.jsx)(cQ,{existingProviders:c.providers??{},onImport:J,onClose:()=>z(!1)})]})}function cS(a){return`${a.scope}\0${a.package}`}function cT(a){return a.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function cU(a){let b=a.sourceInfo?.source,c=a.sourceInfo?.scope;return"user"===c||"user"===b?"global":"project"===c||"project"===b?"project":"path"}function cV({enabled:a,loading:b,onToggle:c}){return(0,d.jsx)("button",{onClick:c,disabled:b,title:a?"Visible in model prompt — click to disable":"Hidden from model prompt — click to enable",style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:b?"wait":"pointer",background:a?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",outline:"none"},children:(0,d.jsx)("span",{style:{position:"absolute",top:3,left:a?21:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function cW({skill:a,cwd:b,onToggle:c,toggling:e,saveError:f,update:g,updating:h,updateError:i,onUpdate:j}){let k=cU(a),l=!a.disableModelInvocation;return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7},children:[(0,d.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===k?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===k?"rgba(99,102,241,0.8)":"var(--text-dim)"},children:k}),(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:function(a){if("project"===k&&a.startsWith(b)){let c=a.slice(b.length).replace(/^[/\\]/,"");return`./${c}`}return cT(a)}(a.filePath)}),(0,d.jsx)(cV,{enabled:l,loading:e,onToggle:()=>c(a)}),f&&(0,d.jsx)("span",{style:{fontSize:12,color:"#f87171",flexShrink:0},children:f})]}),a.install&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",fontSize:12,color:"var(--text-dim)"},children:[(0,d.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:[a.install.source,a.install.ref?`#${a.install.ref}`:""]}),(0,d.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(120,120,120,0.12)"},children:a.install.scope}),g?.state==="update-available"&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{style:{color:"#d97706",fontWeight:600},children:"↑ Update available"}),(0,d.jsx)("button",{onClick:j,disabled:h,style:{padding:"3px 10px",fontSize:12,borderRadius:5,border:"1px solid var(--border)",background:"rgba(217,119,6,0.12)",color:"#b45309",cursor:h?"wait":"pointer"},children:h?"Updating…":"Update"})]}),g?.state==="up-to-date"&&(0,d.jsx)("span",{style:{color:"#16a34a"},children:"✓ Up to date"}),(g?.state==="unknown"||g?.state==="error")&&(0,d.jsxs)("span",{title:g.message,style:{color:"error"===g.state?"#f87171":"var(--text-dim)",maxWidth:420,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["error"===g.state?"Check failed":"Not comparable",g.message?` — ${g.message}`:""]}),!g&&!a.install.canCheckForUpdates&&(0,d.jsx)("span",{children:"Update check unavailable for this entry"}),i&&(0,d.jsx)("span",{style:{color:"#f87171",maxWidth:520,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:11},children:i})]}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:"Name"}),(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:14,color:"var(--text)"},children:a.name})]}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:"Description"}),(0,d.jsx)("span",{style:{fontSize:14,color:"var(--text-muted)",lineHeight:1.6},children:a.description})]})]})}function cX({cwd:a,onInstalled:b}){let[c,f]=(0,e.useState)(""),[g,h]=(0,e.useState)([]),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)([]),[u,v]=(0,e.useState)(new Set),[w,x]=(0,e.useState)("global"),y=(0,e.useRef)(null),z=(0,e.useRef)(null),A=(0,e.useCallback)(async a=>{if(a.trim()){j(!0),l(null),h([]);try{let b=await fetch("/api/skills/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:a.trim()})}),c=await b.json();if(c.error)return void l(c.error);h(c.results??[]),0===(c.results??[]).length&&l("No skills found")}catch(a){l(String(a))}finally{j(!1)}}},[]),B=(0,e.useCallback)(async c=>{let d=new AbortController;z.current=d,n(c),p(null),r("Starting installer"),t(["Starting installer"]);try{let e=await fetch("/api/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({package:c,scope:w,cwd:a,stream:!0}),signal:d.signal});if(!e.ok||!e.body){let a=await e.json().catch(()=>null);p(a?.error??`HTTP ${e.status}`);return}let f=e.body.getReader(),g=new TextDecoder,h="",i=!1,j=a=>{"progress"===a.type?(a.stage&&r(a.stage),a.line&&t(b=>(b.at(-1)===a.line?b:[...b,a.line]).slice(-8))):"done"===a.type&&a.success?(i=!0,r("Installed"),t(a=>[...a,"Installed"].slice(-8))):"error"===a.type&&p(a.error??"Install failed")};for(;;){let{value:a,done:b}=await f.read(),c=(h+=g.decode(a??new Uint8Array,{stream:!b})).split("\n");for(let a of(h=c.pop()??"",c))a.trim()&&j(JSON.parse(a));if(b)break}h.trim()&&j(JSON.parse(h)),i&&(v(a=>new Set(a).add(c)),b())}catch(a){d.signal.aborted?(r("Canceled"),t(a=>[...a,"Canceled"].slice(-8))):p(String(a))}finally{z.current===d&&(z.current=null),n(null)}},[b,w,a]),C=(0,e.useCallback)(()=>{z.current?.abort()},[]),D="global"===w?"~/.pi/agent/skills/":`${cT(a)}/.pi/agent/skills/`;return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,marginBottom:20},children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"var(--text)"},children:"Add Skill"}),(0,d.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,d.jsx)("input",{ref:y,value:c,onChange:a=>f(a.target.value),onKeyDown:a=>{"Enter"===a.key&&A(c)},placeholder:"e.g. react, testing, deploy",style:{flex:1,padding:"7px 10px",fontSize:13,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,d.jsx)("button",{onClick:()=>A(c),disabled:i||!c.trim(),style:{padding:"7px 16px",fontSize:13,borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:i||!c.trim()?"not-allowed":"pointer",opacity:i||!c.trim()?.5:1,flexShrink:0},children:i?"Searching…":"Search"})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,d.jsx)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",fontSize:12,flexShrink:0},children:["global","project"].map(a=>(0,d.jsx)("button",{onClick:()=>x(a),style:{padding:"3px 10px",border:"none",cursor:"pointer",background:w===a?"var(--bg-selected)":"none",color:w===a?"var(--text)":"var(--text-dim)",fontWeight:w===a?600:400,borderRight:"global"===a?"1px solid var(--border)":"none"},children:a},a))}),(0,d.jsxs)("span",{style:{fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["→ ",D]})]}),k&&(0,d.jsx)("div",{style:{fontSize:12,color:"#f87171"},children:k}),o&&(0,d.jsx)("div",{style:{fontSize:12,color:"#f87171",wordBreak:"break-word"},children:o}),m&&(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:10,display:"flex",flexDirection:"column",gap:8},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,d.jsx)("div",{style:{width:10,height:10,borderRadius:"50%",border:"2px solid var(--border)",borderTopColor:"var(--accent)",animation:"spin 0.8s linear infinite",flexShrink:0}}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:q??"Installing"}),(0,d.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:m})]}),(0,d.jsx)("button",{onClick:C,style:{padding:"4px 9px",fontSize:12,borderRadius:5,border:"1px solid var(--border)",background:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:"Cancel"})]}),s.length>0&&(0,d.jsx)("div",{style:{maxHeight:120,overflow:"auto",fontFamily:"var(--font-mono)",fontSize:11,lineHeight:1.6,color:"var(--text-dim)",borderTop:"1px solid var(--border)",paddingTop:8},children:s.map((a,b)=>(0,d.jsx)("div",{children:a},`${b}-${a}`))})]})]}),g.length>0?(0,d.jsx)("div",{style:{flex:1,overflowY:"auto"},children:g.map(a=>{let b=u.has(a.package),c=m===a.package,e=a.package.indexOf("@"),f=e>-1?a.package.slice(0,e):a.package,g=e>-1?a.package.slice(e+1):null;return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"12px 0",borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:3},children:g??f}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:f}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:a.installs}),a.url&&(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noreferrer",style:{fontSize:12,color:"var(--accent)",textDecoration:"none"},children:"skills.sh ↗"})]})]}),(0,d.jsx)("button",{onClick:()=>{b||null!==m||B(a.package)},disabled:b||null!==m,style:{flexShrink:0,padding:"5px 14px",fontSize:12,fontWeight:500,borderRadius:5,border:"1px solid var(--border)",cursor:c?"wait":b||null!==m?"not-allowed":"pointer",background:b?"rgba(34,197,94,0.1)":c?"rgba(59,130,246,0.08)":"none",color:b?"#16a34a":c?"var(--accent)":"var(--text-muted)",transition:"color 0.12s"},children:b?"✓ Installed":c?"Installing":"Install"})]},a.package)})}):!k&&!i&&(0,d.jsxs)("div",{style:{fontSize:13,color:"var(--text-dim)",lineHeight:1.8},children:["Search"," ",(0,d.jsx)("a",{href:"https://skills.sh",target:"_blank",rel:"noreferrer",style:{color:"var(--accent)",textDecoration:"none"},children:"skills.sh"})," ","to discover and install skills for your agent."]})]})}function cY({cwd:a,onClose:b,embedded:c=!1}){let[f,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(new Set),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)({}),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)(null),[D,E]=(0,e.useState)(null),F=(0,e.useCallback)(()=>{i(!0),k(null),fetch(`/api/skills?cwd=${encodeURIComponent(a)}`).then(a=>a.json()).then(a=>{if(a.error)return void k(a.error);let b=a.skills??[];g(b),b.length>0&&!l&&m(b[0].filePath)}).catch(a=>k(String(a))).finally(()=>i(!1))},[a,l]),G=(0,e.useCallback)(async b=>{let c=!b.disableModelInvocation;o(a=>new Set(a).add(b.filePath)),q(null);try{let d=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,filePath:b.filePath,disableModelInvocation:c})}),e=await d.json();if(!d.ok||e.error)return void q(e.error??`HTTP ${d.status}`);g(a=>a.map(a=>a.filePath===b.filePath?{...a,disableModelInvocation:c}:a))}catch(a){q(String(a))}finally{o(a=>{let c=new Set(a);return c.delete(b.filePath),c})}},[a]),H=(0,e.useCallback)(async()=>{w(!0),A(null);try{let b=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})}),c=await b.json();if(!b.ok||c.error)return void A(c.error??`HTTP ${b.status}`);let d={};for(let a of c.updates??[])d[`${a.scope}\0${a.package}`]=a;u(d),y(!0)}catch(a){A(String(a))}finally{w(!1)}},[a]),I=(0,e.useCallback)(async b=>{let c=b.install;if(c){C(cS(c)),E(null);try{let b=await fetch("/api/skills/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,package:c.package,scope:c.scope})}),d=await b.json();if(!b.ok||d.error)return void E(d.error??`HTTP ${b.status}`);let e=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,package:c.package,scope:c.scope})}),f=await e.json(),g=f.updates?.[0];g&&u(a=>({...a,[cS(g)]:g})),await F()}catch(a){E(String(a))}finally{C(null)}}},[a,F]),J=f.find(a=>a.filePath===l)??null;return(0,d.jsx)("div",{style:c?{height:"100%",minHeight:0,display:"flex",alignItems:"stretch",justifyContent:"stretch"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:a=>{c||a.target!==a.currentTarget||b()},children:(0,d.jsxs)("div",{style:{width:c?"100%":860,height:c?"100%":"78vh",background:"var(--bg)",border:c?"none":"1px solid var(--border)",borderRadius:10*!c,display:"flex",flexDirection:"column",boxShadow:c?"none":"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!c&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,d.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:"Skills"}),(0,d.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:cT(a)})]}),(0,d.jsx)("button",{onClick:b,style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,d.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{width:210,borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,d.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:h?(0,d.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:"Loading…"}):j?(0,d.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"#f87171"},children:j}):0===f.length?(0,d.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--text-dim)"},children:"No skills found"}):(()=>{let a=[];for(let b of["project","global","path"]){let c=f.filter(a=>cU(a)===b);c.length>0&&a.push({label:b,skills:c})}return a.map(({label:a,skills:b})=>(0,d.jsxs)("div",{style:{marginBottom:6},children:[(0,d.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:a}),b.map(a=>{let b=!r&&l===a.filePath,c=a.disableModelInvocation,e=a.install?t[cS(a.install)]:void 0;return(0,d.jsxs)("div",{onClick:()=>{m(a.filePath),s(!1)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:5,cursor:"pointer",background:b?"var(--bg-selected)":"none"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="none")},children:[(0,d.jsx)("span",{style:{flexShrink:0,width:7,height:7,borderRadius:"50%",background:c?"var(--border)":"var(--accent)",boxShadow:c?"none":"0 0 4px var(--accent)",transition:"background 0.15s, box-shadow 0.15s"}}),(0,d.jsx)("span",{style:{fontSize:12,fontWeight:b?600:400,color:c?"var(--text-dim)":"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name}),e?.state==="update-available"&&(0,d.jsx)("span",{title:"Update available",style:{flexShrink:0,fontSize:11,fontWeight:700,color:"#d97706"},children:"↑"})]},a.filePath)})]},a))})()}),(0,d.jsxs)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,d.jsxs)("button",{onClick:H,disabled:v||h||0===f.length,title:"Compare installed skills with their upstream source",style:{width:"100%",display:"flex",alignItems:"center",gap:6,padding:"7px 8px",marginBottom:2,borderRadius:5,border:"none",background:"none",color:v?"var(--accent)":"var(--text-dim)",fontSize:12,textAlign:"left",cursor:v||h||0===f.length?"not-allowed":"pointer",opacity:h||0===f.length?.5:1},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"}),(0,d.jsx)("polyline",{points:"21 3 21 9 15 9"})]}),v?"Checking…":"Check updates"]}),z&&(0,d.jsx)("div",{style:{padding:"2px 8px 6px",fontSize:11,color:"#f87171",wordBreak:"break-word"},children:z}),x&&!v&&!z&&0===Object.keys(t).length&&(0,d.jsx)("div",{style:{padding:"2px 8px 6px",fontSize:11,color:"var(--text-dim)"},children:"No installed sources to check"}),(0,d.jsxs)("div",{onClick:()=>s(!0),style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:r?"var(--bg-selected)":"none",color:r?"var(--accent)":"var(--text-dim)",fontSize:12},onMouseEnter:a=>{r||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{r||(a.currentTarget.style.background="none")},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,d.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Add skill"]})]})]}),(0,d.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:r?(0,d.jsx)(cX,{cwd:a,onInstalled:()=>{F()}}):h?null:J?(0,d.jsx)(cW,{skill:J,cwd:a,onToggle:G,toggling:n.has(J.filePath),saveError:p,update:J.install?t[cS(J.install)]:void 0,updating:!!J.install&&B===cS(J.install),updateError:D,onUpdate:()=>I(J)},J.filePath):(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:"Select a skill"})})]}),(0,d.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,d.jsx)("button",{onClick:b,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:"Close"})})]})})}let cZ=[{label:"30m",value:18e5},{label:"2h",value:72e5},{label:"6h",value:216e5},{label:"24h",value:864e5},{label:"48h",value:1728e5},{label:"Never",value:0}];function c$(a){return a?a.replace(/^\/(?:Users|home)\/[^/]+/,"~"):""}function c_(a){if(a<=0)return"never";let b=a/60/1e3;if(b<60)return`${Math.round(b)}m`;let c=b/60;return Number.isInteger(c)?`${c}h`:`${c.toFixed(1)}h`}function c0(a){return{id:"",language:a,displayName:"",command:"python"===a?"python3":"R",argsText:JSON.stringify("python"===a?["-u"]:["--slave","--vanilla"]),envText:"{}"}}function c1(a){return{id:a.id,language:a.language,displayName:a.displayName,command:a.command,argsText:JSON.stringify(a.args),envText:JSON.stringify(a.env,null,2)}}let c2={height:30,padding:"0 11px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,whiteSpace:"nowrap"},c3={width:"100%",minWidth:0,padding:"7px 9px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none",fontFamily:"var(--font-mono)"};function c4({label:a,children:b}){return(0,d.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:5,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)",fontWeight:500},children:a}),b]})}function c5({cwd:a}){let[b,c]=(0,e.useState)("python"),[f,g]=(0,e.useState)(null),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)([]),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)("view"),[v,w]=(0,e.useState)(()=>c0("python")),[x,y]=(0,e.useState)(1728e5),[z,A]=(0,e.useState)("pdf"),[B,C]=(0,e.useState)(300),[D,E]=(0,e.useState)(800),[F,G]=(0,e.useState)(600),[H,I]=(0,e.useState)(!1);(0,e.useCallback)(async()=>{i(!0),m(null);try{let c=a?`?cwd=${encodeURIComponent(a)}`:"",d=await fetch(`/api/plot-kernels${c}`),e=await d.json();if(!d.ok||e.error)throw Error(e.error??`HTTP ${d.status}`);g(e),q([]),o(null),s(a=>{if(a&&e.kernels.some(b=>b.id===a))return a;let c=e.kernels.find(a=>a.language===b&&a.isEffective);return c?.id??e.kernels.find(a=>a.language===b)?.id??null})}catch(a){m(a instanceof Error?a.message:String(a))}finally{i(!1)}},[a,b]);let J=(0,e.useMemo)(()=>(f?.kernels??[]).filter(a=>a.language===b),[b,f?.kernels]),K=J.find(a=>a.id===r)??null,L=(0,e.useCallback)(async(b,c)=>{k(c),m(null),o(null),q([]);try{let c=await fetch("/api/plot-kernels",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,...b})}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);return g(d),q(d.errors??[]),d}catch(a){return m(a instanceof Error?a.message:String(a)),null}finally{k(null)}},[a]),M=(0,e.useCallback)(async a=>{let b=await L({action:"scan",..."all"===a?{}:{language:a}},"scan");b&&o(`Scan added ${b.added?.length??0} kernel${(b.added?.length??0)===1?"":"s"}${b.skipped?`, skipped ${b.skipped} existing`:""}.`)},[L]),N=(0,e.useCallback)(async a=>{await L({action:"select",language:a.language,kernelId:a.id},"select")&&o(`Selected ${a.displayName} for this project.`)},[L]),O=(0,e.useCallback)(async a=>{await L({action:"setDefault",language:a.language,kernelId:a.id},"default")&&o(`Set ${a.displayName} as global default.`)},[L]),P=(0,e.useCallback)(async()=>{let a=v.id.trim();if(!a)return void m("Kernel ID is required");try{let b=function(a){let b=JSON.parse(a.argsText||"[]"),c=JSON.parse(a.envText||"{}");if(!Array.isArray(b))throw Error("Args must be a JSON array");if(!c||"object"!=typeof c||Array.isArray(c))throw Error("Env must be a JSON object");return{language:a.language,command:a.command.trim(),displayName:a.displayName.trim(),args:b.map(a=>String(a)),env:Object.fromEntries(Object.entries(c).map(([a,b])=>[a,String(b)]))}}(v);if(!b.command)throw Error("Command is required");if(!await L({action:"new"===t?"add":"edit",kernelId:a,kernel:b},"save"))return;s(a),u("view"),o("new"===t?"Kernel added.":"Kernel saved.")}catch(a){m(a instanceof Error?a.message:String(a))}},[v,t,L]),Q=(0,e.useCallback)(async a=>{let c=await L({action:"delete",kernelId:a.id},"delete");if(!c)return;let d=c.kernels.find(a=>a.language===b&&a.isEffective)??c.kernels.find(a=>a.language===b)??null;s(d?.id??null),u(d?"view":"new"),o("Kernel deleted.")},[b,L]),R=()=>{u("new"),s(null),w(c0(b)),m(null),o(null)},S=(0,e.useCallback)(async a=>{y(a),I(!0),m(null);try{let b=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{plotIdleTimeoutMs:a}})}),c=await b.json();if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);"number"==typeof c.settings?.plotIdleTimeoutMs&&(y(c.settings.plotIdleTimeoutMs),o(`Kernel idle timeout set to ${c_(c.settings.plotIdleTimeoutMs)}.`))}catch(a){y(x),m(a instanceof Error?a.message:String(a))}finally{I(!1)}},[x]),T=(0,e.useCallback)(async()=>{I(!0),m(null);try{let a=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{saveFormat:z,saveDpi:B,saveWidth:D,saveHeight:F}})}),b=await a.json();if(!a.ok||b.error)throw Error(b.error??`HTTP ${a.status}`);o("Save defaults updated.")}catch(a){m(a instanceof Error?a.message:String(a))}finally{I(!1)}},[z,B,D,F]);return(0,d.jsxs)("div",{style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{flexShrink:0,padding:"12px 16px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:"Kernel Runtime"}),(0,d.jsx)("div",{style:{marginTop:4,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"Manage the warm R/Python kernels used for analysis turns and kernel tools."})]}),(0,d.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--border)",flexWrap:"wrap"},children:[(0,d.jsx)("div",{style:{display:"flex",padding:2,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)"},children:["python","r"].map(a=>{let e=b===a;return(0,d.jsx)("button",{type:"button",onClick:()=>c(a),style:{height:26,padding:"0 12px",border:"none",borderRadius:5,background:e?"var(--bg)":"transparent",color:e?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:e?600:500},children:"python"===a?"Python":"R"},a)})}),(0,d.jsxs)("button",{type:"button",onClick:()=>void M(b),disabled:!!j,style:{...c2,opacity:j?.55:1},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 0 1-15.3 6.4"}),(0,d.jsx)("path",{d:"M3 12A9 9 0 0 1 18.3 5.6"}),(0,d.jsx)("path",{d:"M18 2v4h4"}),(0,d.jsx)("path",{d:"M6 22v-4H2"})]}),"scan"===j?"Scanning...":`Scan ${"python"===b?"Python":"R"}`]}),(0,d.jsx)("button",{type:"button",onClick:()=>void M("all"),disabled:!!j,style:{...c2,opacity:j?.55:1},children:"Scan all"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginLeft:"auto"},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"Idle"}),(0,d.jsx)("div",{style:{display:"flex",padding:2,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)"},children:cZ.map(a=>{let b=x===a.value;return(0,d.jsx)("button",{type:"button",onClick:()=>{b||S(a.value)},disabled:H,title:`Close inactive kernels after ${c_(a.value)}`,style:{height:24,padding:"0 8px",border:"none",borderRadius:5,background:b?"var(--bg)":"transparent",color:b?"var(--accent)":"var(--text-muted)",cursor:H?"default":"pointer",fontSize:11,fontWeight:b?700:500,opacity:H?.65:1},children:a.label},a.label)})})]}),(0,d.jsxs)("button",{type:"button",onClick:R,style:{...c2,marginLeft:"auto",color:"var(--accent)"},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,d.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Add kernel"]})]}),(0,d.jsxs)("div",{style:{flexShrink:0,padding:"10px 16px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,d.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--text)"},children:"Save defaults"}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"Format"}),(0,d.jsx)("div",{style:{display:"flex",padding:2,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)"},children:["pdf","png","svg"].map(a=>{let b=z===a;return(0,d.jsx)("button",{type:"button",onClick:()=>A(a),style:{height:24,padding:"0 8px",border:"none",borderRadius:5,background:b?"var(--bg)":"transparent",color:b?"var(--accent)":"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:b?700:500},children:a.toUpperCase()},a)})}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"DPI"}),(0,d.jsx)("input",{type:"number",value:B,onChange:a=>C(Number(a.target.value)||300),min:72,max:1200,style:{width:60,height:26,padding:"0 6px",fontSize:11,border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"var(--text)"}}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"W"}),(0,d.jsx)("input",{type:"number",value:D,onChange:a=>E(Number(a.target.value)||800),min:100,max:8e3,style:{width:65,height:26,padding:"0 6px",fontSize:11,border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"var(--text)"}}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"H"}),(0,d.jsx)("input",{type:"number",value:F,onChange:a=>G(Number(a.target.value)||600),min:100,max:8e3,style:{width:65,height:26,padding:"0 6px",fontSize:11,border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"var(--text)"}}),(0,d.jsx)("button",{type:"button",onClick:()=>void T(),disabled:H,style:{...c2,background:"var(--accent)",borderColor:"var(--accent)",color:"#fff",opacity:H?.6:1},children:H?"Saving...":"Save"})]}),(l||n||p.length>0)&&(0,d.jsxs)("div",{style:{flexShrink:0,padding:"8px 16px",borderBottom:"1px solid var(--border)",fontSize:12,lineHeight:1.5},children:[l&&(0,d.jsx)("div",{style:{color:"#f87171"},children:l}),n&&(0,d.jsx)("div",{style:{color:"var(--text-muted)"},children:n}),p.map(a=>(0,d.jsx)("div",{style:{color:"rgba(234,179,8,0.95)"},children:a},a))]}),(0,d.jsxs)("div",{style:{flex:1,minHeight:0,display:"flex",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{width:290,flexShrink:0,borderRight:"1px solid var(--border)",background:"var(--bg-panel)",display:"flex",flexDirection:"column",minHeight:0},children:[(0,d.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,d.jsxs)("div",{children:["Global: ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:c$(f?.paths.global??"")})]}),a&&(0,d.jsxs)("div",{children:["Project: ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:c$(f?.paths.project??"")})]}),!a&&(0,d.jsx)("div",{children:"Project selection requires an active cwd."})]}),(0,d.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",padding:"8px 6px"},children:h?(0,d.jsx)("div",{style:{padding:"10px 8px",color:"var(--text-muted)",fontSize:12},children:"Loading..."}):0===J.length?(0,d.jsx)("div",{style:{padding:"10px 8px",color:"var(--text-dim)",fontSize:12},children:"No kernels found"}):J.map(a=>{let b=r===a.id&&"new"!==t;return(0,d.jsxs)("button",{type:"button",onClick:()=>{s(a.id),u("view"),w(c1(a)),m(null),o(null)},style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"8px 9px",border:"none",borderRadius:6,background:b?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="transparent")},children:[(0,d.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:a.isEffective?"var(--accent)":"var(--border)",flexShrink:0}}),(0,d.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("span",{style:{display:"block",color:"var(--text)",fontSize:12,fontWeight:b?600:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.displayName}),(0,d.jsx)("span",{style:{display:"block",color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.id})]}),(a.isProjectSelected||a.isDefault)&&(0,d.jsxs)("span",{style:{flexShrink:0,display:"flex",gap:3},children:[a.isProjectSelected&&(0,d.jsx)("span",{title:"Project selected",style:{fontSize:9,color:"var(--accent)",border:"1px solid rgba(37,99,235,0.35)",borderRadius:4,padding:"1px 4px"},children:"P"}),a.isDefault&&(0,d.jsx)("span",{title:"Global default",style:{fontSize:9,color:"var(--text-muted)",border:"1px solid var(--border)",borderRadius:4,padding:"1px 4px"},children:"D"})]})]},a.id)})}),(0,d.jsxs)("div",{style:{padding:"8px 10px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:["Last scan: ",function(a){if(!a)return"never";let b=new Date(a);return Number.isNaN(b.getTime())?a:b.toLocaleString()}(f?.scanCache?.lastScan)]})]}),(0,d.jsx)("div",{style:{flex:1,minWidth:0,minHeight:0,overflowY:"auto",padding:18},children:"view"===t&&K?(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16,maxWidth:760},children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,d.jsx)("h3",{style:{margin:0,color:"var(--text)",fontSize:15,lineHeight:1.3},children:K.displayName}),K.isEffective&&(0,d.jsx)("span",{style:{fontSize:10,color:"var(--accent)",border:"1px solid rgba(37,99,235,0.35)",borderRadius:4,padding:"1px 5px"},children:"active"})]}),(0,d.jsx)("div",{style:{marginTop:5,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:K.id})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:12},children:[(0,d.jsx)(c4,{label:"Command",children:(0,d.jsx)("input",{readOnly:!0,value:K.command,style:{...c3,color:"var(--text-muted)"}})}),(0,d.jsx)(c4,{label:"Args",children:(0,d.jsx)("input",{readOnly:!0,value:JSON.stringify(K.args),style:{...c3,color:"var(--text-muted)"}})})]}),(0,d.jsx)(c4,{label:"Environment",children:(0,d.jsx)("textarea",{readOnly:!0,value:JSON.stringify(K.env,null,2),rows:5,style:{...c3,resize:"vertical",color:"var(--text-muted)"}})}),(0,d.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,d.jsx)("button",{type:"button",onClick:()=>a&&void N(K),disabled:!a||"select"===j,style:{...c2,background:a?"var(--accent)":"var(--bg-panel)",color:a?"#fff":"var(--text-dim)",opacity:"select"===j?.6:1},children:"Use for project"}),(0,d.jsx)("button",{type:"button",onClick:()=>void O(K),disabled:"default"===j,style:{...c2,opacity:"default"===j?.6:1},children:"Set default"}),(0,d.jsx)("button",{type:"button",onClick:()=>{u("edit"),s(K.id),w(c1(K)),m(null),o(null)},style:c2,children:"Edit"}),!K.id.startsWith("default-")&&(0,d.jsx)("button",{type:"button",onClick:()=>void Q(K),disabled:"delete"===j,style:{...c2,color:"#f87171",opacity:"delete"===j?.6:1},children:"Delete"})]})]}):(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14,maxWidth:760},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8},children:[(0,d.jsx)("h3",{style:{margin:0,color:"var(--text)",fontSize:15},children:"new"===t?"Add Kernel":"Edit Kernel"}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"python"===b?"Python":"R"})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:12},children:[(0,d.jsx)(c4,{label:"Kernel ID",children:(0,d.jsx)("input",{value:v.id,readOnly:"edit"===t,onChange:a=>w(b=>({...b,id:a.target.value})),placeholder:"python"===b?"my-python":"my-r",style:{...c3,color:"edit"===t?"var(--text-muted)":"var(--text)"}})}),(0,d.jsx)(c4,{label:"Display name",children:(0,d.jsx)("input",{value:v.displayName,onChange:a=>w(b=>({...b,displayName:a.target.value})),placeholder:"python"===b?"Python 3 (Project)":"R (Project)",style:c3})})]}),(0,d.jsx)(c4,{label:"Command",children:(0,d.jsx)("input",{value:v.command,onChange:a=>w(b=>({...b,command:a.target.value})),placeholder:"/usr/bin/python3",style:c3})}),(0,d.jsx)(c4,{label:"Args JSON",children:(0,d.jsx)("input",{value:v.argsText,onChange:a=>w(b=>({...b,argsText:a.target.value})),style:c3})}),(0,d.jsx)(c4,{label:"Env JSON",children:(0,d.jsx)("textarea",{value:v.envText,onChange:a=>w(b=>({...b,envText:a.target.value})),rows:6,style:{...c3,resize:"vertical"}})}),(0,d.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,d.jsx)("button",{type:"button",onClick:()=>void P(),disabled:"save"===j,style:{...c2,background:"var(--accent)",borderColor:"var(--accent)",color:"#fff",opacity:"save"===j?.6:1},children:"save"===j?"Saving...":"Save"}),(0,d.jsx)("button",{type:"button",onClick:()=>{let a=K??J.find(a=>a.isEffective)??J[0]??null;a?(s(a.id),w(c1(a)),u("view")):R(),m(null)},style:c2,children:"Cancel"})]})]})})]})]})}var c6=c(39868);function c7({text:a,label:b="Copy",title:c,onCopied:f,onError:g}){let[h,i]=(0,e.useState)(!1),j=(0,e.useCallback)(async()=>{try{await (0,c6.D)(a),i(!0),f?.()}catch(a){g?.(a instanceof Error?a:Error(String(a)))}},[f,g,a]);return(0,d.jsx)("button",{type:"button",onClick:()=>void j(),title:c??(h?"Copied":b),style:{height:24,padding:"0 8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-hover)",color:h?"#22c55e":"var(--text-muted)",fontSize:10,fontWeight:600,cursor:"pointer",flexShrink:0},children:h?"Copied":b})}let c8="annovibe-im-gateway";function c9({cwd:a,embedded:b=!1}){let[c,f]=(0,e.useState)(null),[g,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(""),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(null),E=(0,e.useCallback)((a,b)=>{"success"===b?(D(a),B(null),setTimeout(()=>D(null),4500)):(B(a),D(null))},[]);(0,e.useCallback)(async()=>{try{let a=await fetch("/api/im/gateway-status",{cache:"no-store"}),b=await a.json();if(!a.ok||!b.gateway)return;j(b.gateway)}catch{}},[]),(0,e.useCallback)(async()=>{v(!0),B(null);try{let b=await fetch(`/api/im/project?cwd=${encodeURIComponent(a)}`,{cache:"no-store"}),c=await b.json();if(!b.ok||!("enabled"in c))throw Error(c.error??`HTTP ${b.status}`);f(c),h(c.gatewayToken??null),l(c.botId),p(c.requireMentionInGroup),r(c.boundChatId??""),t(c.allowedUsers.join("\n")),n("")}catch(a){E(a instanceof Error?a.message:String(a),"error")}finally{v(!1)}},[a,E]);let F=(0,e.useCallback)(async b=>{x(!0),B(null),D(null);try{let c=await fetch("/api/im/project",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,config:b})}),d=await c.json();if(!c.ok||!("enabled"in d))throw Error(d.error??`HTTP ${c.status}`);f(d),h(d.gatewayToken??null),n(""),E("IM settings saved.","success")}catch(a){E(a instanceof Error?a.message:String(a),"error")}finally{x(!1)}},[a,E]),G=(0,e.useCallback)(a=>{F({enabled:a,botId:k.trim(),botSecret:m.trim()||void 0,requireMentionInGroup:o,boundChatId:q.trim()||null,allowedUsers:dd(s)})},[k,m,o,q,s,F]),H=(0,e.useCallback)(()=>{F({enabled:c?.enabled??!1,botId:k.trim(),botSecret:m.trim()||void 0,requireMentionInGroup:o,boundChatId:q.trim()||null,allowedUsers:dd(s)})},[c?.enabled,k,m,o,q,s,F]),I=(0,e.useCallback)(()=>{F({regeneratePairingCode:!0})},[F]),J=(0,e.useCallback)(async()=>{if(c?.sessionId&&window.confirm("Reset the IM thread for this project?\n\nThis clears the stored WeCom session. Pairing and bot settings are kept. The next IM message starts a fresh session.")){z(!0);try{let b=await fetch(`/api/im/session-ids?cwd=${encodeURIComponent(a)}`,{method:"DELETE"}),c=await b.json();if(!b.ok||!c.ok)throw Error(c.error??`HTTP ${b.status}`);f(a=>a?{...a,sessionId:null}:null),E("IM thread reset.","success")}catch(a){E(a instanceof Error?a.message:String(a),"error")}finally{z(!1)}}},[c?.sessionId,a,E]);if(u&&!c)return(0,d.jsx)(dg,{label:"Loading IM settings..."});let K=c?.enabled??!1;return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,paddingTop:12*!!b},children:[(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-panel)",padding:12,display:"flex",flexDirection:"column",gap:12},children:[(0,d.jsx)(dc,{label:"WeCom bot for this project",description:K?"启动 im-gateway 后即可通过企业微信 AI bot 与此项目交互。":"关闭 — 开启后可绑定企业微信 bot 到此项目。",checked:K,disabled:w,onChange:G}),K?(0,d.jsxs)(d.Fragment,{children:[i?(0,d.jsx)(da,{status:i}):null,(0,d.jsx)(de,{label:"Bot ID",value:k,onChange:l,placeholder:"从企业微信 AI bot 控制台获取"}),(0,d.jsx)(de,{label:c?.hasSecret?"Bot Secret(留空则不修改)":"Bot Secret",value:m,onChange:n,placeholder:c?.hasSecret?"留空保留现有 secret":"从企业微信 AI bot 控制台获取",secret:!0}),(0,d.jsx)(dc,{label:"群聊中需要 @提及 bot 才响应",description:"开启后,群聊中用户必须 @bot 才会被处理。",checked:o,disabled:w,compact:!0,onChange:p}),(0,d.jsx)(de,{label:"绑定群聊 ID(可选)",value:q,onChange:r,placeholder:"限制仅此群聊可交互"}),(0,d.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4,fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)("span",{children:"允许用户 ID(一行一个)"}),(0,d.jsx)("textarea",{value:s,onChange:a=>t(a.target.value),rows:3,style:dj,placeholder:"用户也可通过配对码自助授权"})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[(0,d.jsx)(df,{primary:!0,disabled:w,onClick:H,children:w?"保存中…":"保存 IM 配置"}),(0,d.jsx)(df,{disabled:w,onClick:I,children:"重新生成配对码"})]})]}):null]}),K&&c?(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-panel)",padding:12,fontSize:11,color:"var(--text-muted)",display:"flex",flexDirection:"column",gap:8},children:[(0,d.jsx)(db,{label:"配对码",value:c.pairingCode,copyLabel:"复制配对码"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,flexWrap:"wrap"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("strong",{style:{color:"var(--text)"},children:"IM session:"})," ",c.sessionId?`${c.sessionId.slice(0,12)}…`:"尚未启动"]}),c.sessionId?(0,d.jsx)(df,{danger:!0,disabled:w||y,onClick:()=>void J(),children:y?"重置中…":"重置 IM thread"}):null]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("strong",{style:{color:"var(--text)"},children:"Gateway token:"})," ",g?`${g.slice(0,8)}…`:"保存时生成"]}),(0,d.jsx)(db,{label:"Gateway 启动命令",value:c8,copyLabel:"复制命令",mono:!0}),(0,d.jsxs)("div",{style:{lineHeight:1.55,color:"var(--text-dim)"},children:["启动 ",(0,d.jsx)("code",{style:dh,children:"annovibe"})," 后,在",(0,d.jsx)("strong",{style:{color:"var(--text-muted)",fontWeight:600},children:"同一 Linux 账户"}),"中运行"," ",(0,d.jsx)("code",{style:dh,children:c8}),"。 Gateway 通过本地 API 读取已启用的项目配置和 bot secret —— 无需手动复制文件。"]}),(0,d.jsxs)("div",{style:{lineHeight:1.55,color:"var(--text-dim)"},children:["配置文件: ",(0,d.jsxs)("code",{style:dh,children:["<project>","/.annovibe/im.json"]})," \xb7 Secrets: ",(0,d.jsx)("code",{style:dh,children:"~/.pi/agent/im-secrets/"})]}),A&&(0,d.jsx)("div",{style:{padding:"6px 10px",background:"rgba(239,68,68,0.08)",borderRadius:6,border:"1px solid rgba(239,68,68,0.3)",color:"#ef4444",fontSize:12},children:A}),C&&(0,d.jsx)("div",{style:{padding:"6px 10px",background:"rgba(34,197,94,0.08)",borderRadius:6,border:"1px solid rgba(34,197,94,0.3)",color:"#22c55e",fontSize:12},children:C})]}):null]})}function da({status:a}){var b,c,e,f;let g=function(a){if(!a)return null;let b=new Date(a);return Number.isNaN(b.getTime())?a:b.toLocaleString()}(a.startedAt),h=a.alive&&a.pid?`pid ${a.pid}${g?` \xb7 since ${g}`:""}`:g?`last started ${g}`:"在同一个 Linux 账户下运行 annovibe-im-gateway";return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"8px 10px",borderRadius:8,border:`1px solid ${"running"===(b=a.tone)?"rgba(34,197,94,0.28)":"stale"===b?"rgba(245,158,11,0.28)":"rgba(248,113,113,0.28)"}`,background:"running"===(c=a.tone)?"rgba(34,197,94,0.08)":"stale"===c?"rgba(245,158,11,0.08)":"rgba(248,113,113,0.08)"},children:[(0,d.jsx)("span",{"aria-hidden":!0,style:{width:8,height:8,borderRadius:"50%",marginTop:4,flexShrink:0,background:"running"===(e=a.tone)?"#22c55e":"stale"===e?"#f59e0b":"#f87171"}}),(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:650,color:"running"===(f=a.tone)?"#22c55e":"stale"===f?"#f59e0b":"#f87171"},children:a.label}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:3,lineHeight:1.45},children:h})]})]})}function db({label:a,value:b,copyLabel:c,mono:e}){return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsxs)("strong",{style:{color:"var(--text)"},children:[a,":"]})," ",(0,d.jsx)("code",{style:{...dh,...e?{wordBreak:"break-all"}:{}},children:b})]}),(0,d.jsx)(c7,{text:b,label:c})]})}function dc({label:a,description:b,checked:c,disabled:e,compact:f,onChange:g}){return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:f?"2px 0":"10px 12px",borderRadius:8*!f,border:f?"none":`1px solid ${c?"color-mix(in srgb, var(--accent) 35%, var(--border))":"var(--border)"}`,background:f?"transparent":c?"color-mix(in srgb, var(--accent) 8%, var(--bg-panel))":"var(--bg)"},children:[(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:f?11:13,fontWeight:f?500:650,color:"var(--text)"},children:a}),b?(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginTop:4,lineHeight:1.45},children:b}):null]}),(0,d.jsx)("button",{type:"button",role:"switch","aria-checked":c,disabled:e,onClick:()=>g(!c),style:{position:"relative",width:44,height:26,borderRadius:999,border:"none",flexShrink:0,background:c?"var(--accent)":"color-mix(in srgb, var(--text-dim) 35%, var(--border))",cursor:e?"default":"pointer",opacity:e?.55:1,transition:"background 0.15s",padding:0},children:(0,d.jsx)("span",{style:{position:"absolute",top:3,left:c?21:3,width:20,height:20,borderRadius:"50%",background:"#fff",boxShadow:"0 1px 3px rgba(0,0,0,0.18)",transition:"left 0.15s"}})})]})}function dd(a){return a.split(/\r?\n/).map(a=>a.trim()).filter(Boolean)}function de({label:a,value:b,onChange:c,placeholder:e,secret:f}){return(0,d.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4,fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)("span",{children:a}),(0,d.jsx)("input",{type:f?"password":"text",value:b,onChange:a=>c(a.target.value),placeholder:e,style:di})]})}function df({children:a,disabled:b,primary:c,danger:e,onClick:f}){return(0,d.jsx)("button",{type:"button",disabled:b,onClick:f,style:{height:28,padding:"0 10px",borderRadius:6,border:c?"none":e?"1px solid rgba(248,113,113,0.45)":"1px solid var(--border)",background:c?"var(--accent)":e?"rgba(248,113,113,0.08)":"var(--bg-hover)",color:c?"#fff":e?"#f87171":"var(--text)",fontSize:11,fontWeight:c?600:400,cursor:b?"default":"pointer",opacity:b?.55:1},children:a})}function dg({label:a}){return(0,d.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",padding:"18px 10px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:a})}let dh={fontFamily:"var(--font-mono)",fontSize:"0.95em"},di={height:30,padding:"0 8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)"},dj={padding:"8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",resize:"vertical"},dk={border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-panel)"},dl={height:28,padding:"0 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12};function dm({cwd:a}){let[b,c]=(0,e.useState)(null),[f,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(null);(0,e.useCallback)(async()=>{g(!0),k(null);try{let b=await fetch(`/api/plot-kernels?cwd=${encodeURIComponent(a)}`),d=await b.json().catch(()=>({}));if(!b.ok||d.error||!Array.isArray(d.kernels))throw Error(d.error??`HTTP ${b.status}`);c(d)}catch(a){c(null),k(a instanceof Error?a.message:String(a))}finally{g(!1)}},[a]);let l=(0,e.useCallback)(async(b,d)=>{i(b),k(null);try{let e=await fetch("/api/plot-kernels",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"select",cwd:a,language:b,kernelId:d})}),f=await e.json().catch(()=>({}));if(!e.ok||f.error||!Array.isArray(f.kernels))throw Error(f.error??`HTTP ${e.status}`);c(f)}catch(a){k(a instanceof Error?a.message:String(a))}finally{i(null)}},[a]),m=a=>{let c=b?.kernels.filter(b=>b.language===a)??[],e=c.find(a=>a.isEffective)??c[0]??null;return(0,d.jsxs)("label",{style:{display:"grid",gap:6},children:[(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:"r"===a?"Default R kernel":"Default Python kernel"}),(0,d.jsx)("select",{value:e?.id??"",disabled:f||h===a||0===c.length,onChange:b=>{b.target.value&&l(a,b.target.value)},style:{height:32,padding:"0 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12},children:0===c.length?(0,d.jsx)("option",{value:"",children:f?"Loading...":"No configured kernel"}):c.map(a=>(0,d.jsxs)("option",{value:a.id,children:[a.displayName,a.isProjectSelected?" \xb7 project":a.isDefault?" \xb7 global":""," — ",a.command," ",(a.args??[]).join(" ")]},a.id))})]})};return(0,d.jsxs)("section",{style:{...dk,padding:14,display:"grid",gap:12},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)"},children:"Default kernels"}),(0,d.jsx)("div",{style:{marginTop:3,fontSize:11,color:"var(--text-dim)",lineHeight:1.45},children:"Used as the default R/Python kernels for analysis. Chat sessions use these when they call the `kernel_plot_*` tools."})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:10},children:[m("r"),m("python")]}),j&&(0,d.jsx)("div",{style:{fontSize:12,color:"#f87171"},children:j})]})}function dn({activeCwd:a,onSelectProject:b,onProjectsChanged:c}){let[f,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(a),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(!0),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(null),[x,z]=(0,e.useState)(""),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(null),E=(0,e.useRef)(null),F=f.find(a=>a.cwd===h)??f.find(b=>b.cwd===a)??f[0]??null,G=(0,e.useCallback)(async()=>{try{m(!0);let b=await fetch("/api/projects"),c=await b.json();if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);let d=c.projects??[];g(d),i(b=>b&&d.some(a=>a.cwd===b)?b:a&&d.some(b=>b.cwd===a)?a:d[0]?.cwd??null),o(null)}catch(a){o(a instanceof Error?a.message:String(a))}finally{m(!1)}},[a]),H=(0,e.useMemo)(()=>({projects:f.length,chats:f.reduce((a,b)=>a+b.chatCount,0)}),[f]),I=(0,e.useCallback)(async()=>{let a=p.trim();if(a){u("add"),o(null);try{let d=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})}),e=await d.json();if(!d.ok||e.error)throw Error(e.error??`HTTP ${d.status}`);q(""),i(a),c?.(),b?.(a),G()}catch(a){o(a instanceof Error?a.message:String(a))}finally{u(null)}}},[G,c,b,p]),J=(0,e.useCallback)(async a=>{u("add"),o(null);try{let d=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})}),e=await d.json();if(!d.ok||e.error)throw Error(e.error??`HTTP ${d.status}`);q(""),s(!1),i(a),c?.(),b?.(a),G()}catch(a){o(a instanceof Error?a.message:String(a))}finally{u(null)}},[G,c,b]),K=(0,e.useCallback)(async a=>{u(`rename:${a}`),o(null);try{let b=await fetch("/api/projects",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,name:x})}),d=await b.json();if(!b.ok||d.error)throw Error(d.error??`HTTP ${b.status}`);w(null),z(""),await G(),c?.()}catch(a){o(a instanceof Error?a.message:String(a))}finally{u(null)}},[G,c,x]),L=(0,e.useCallback)(async a=>{if(window.confirm("Remove this project from AnnoVibe? Sessions on disk will not be deleted.")){u(`remove:${a}`),o(null);try{let b=await fetch("/api/projects",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})}),d=await b.json();if(!b.ok||d.error)throw Error(d.error??`HTTP ${b.status}`);i(b=>b===a?null:b),await G(),c?.()}catch(a){o(a instanceof Error?a.message:String(a))}finally{u(null)}}},[G,c]),M=(0,e.useCallback)(a=>{w(a.cwd),z(a.displayName),requestAnimationFrame(()=>E.current?.focus())},[]),N=(0,e.useCallback)(async a=>{try{let b=await fetch("/api/projects",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:a})});if(!b.ok)throw Error(`HTTP ${b.status}`);c?.()}catch{G()}},[G,c]),O=(0,e.useCallback)((a,b)=>{"reorder"!==t&&(B(a),b.dataTransfer.effectAllowed="move",b.dataTransfer.setData("text/project-cwd",a))},[t]),P=(0,e.useCallback)((a,b)=>{b.preventDefault(),b.dataTransfer.dropEffect="move",D(a)},[]),Q=(0,e.useCallback)(a=>{if(D(null),!A||A===a)return void B(null);let b=f.map(a=>a.cwd).filter(Boolean),c=b.indexOf(A),d=b.indexOf(a);c<0||d<0?B(null):(b.splice(c,1),b.splice(d,0,A),g(a=>{let c=new Map(a.map(a=>[a.cwd,a]));return b.map(a=>c.get(a)).filter(Boolean)}),B(null),N(b))},[A,N,f]),R=(0,e.useCallback)(()=>{B(null),D(null)},[]);return(0,d.jsxs)("div",{style:{height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:[n&&(0,d.jsx)("div",{style:{marginBottom:12,padding:"10px 12px",borderRadius:8,border:"1px solid rgba(248,113,113,0.35)",background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:12},children:n}),(0,d.jsxs)("div",{style:{display:"flex",gap:8,marginBottom:14,flexShrink:0},children:[(0,d.jsx)("div",{style:{position:"relative",flex:1,minWidth:0},children:(0,d.jsx)("input",{type:"text",value:p,onChange:a=>q(a.target.value),onKeyDown:a=>{"Enter"===a.key&&I()},placeholder:"/path/to/project",style:{width:"100%",height:30,padding:"0 8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",outline:"none"}})}),(0,d.jsx)("button",{type:"button",disabled:"add"===t,onClick:()=>void I(),style:{height:30,padding:"0 11px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:12,fontWeight:500},children:"Add"}),(0,d.jsx)("button",{type:"button",onClick:()=>s(!0),style:{...dl,height:30},children:"Browse…"})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(220px, 34%) minmax(0, 1fr)",gap:14,minHeight:0,flex:1},children:[(0,d.jsxs)("aside",{style:{...dk,minHeight:0,overflow:"hidden",display:"flex",flexDirection:"column"},children:[(0,d.jsxs)("div",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:700},children:[H.projects," Projects"]}),(0,d.jsxs)("div",{style:{marginTop:3,color:"var(--text-dim)",fontSize:11},children:[H.chats," chats total"]})]}),(0,d.jsx)("div",{style:{overflow:"auto",padding:8,display:"grid",gap:6},children:l?(0,d.jsx)("div",{style:{padding:12,color:"var(--text-muted)",fontSize:12},children:"Loading projects..."}):0===f.length?(0,d.jsx)("div",{style:{padding:12,color:"var(--text-muted)",fontSize:12},children:"No projects yet."}):f.map(b=>{var c;let e,f=b.cwd===a,g=b.cwd===F?.cwd,h=A===b.cwd,l=C===b.cwd&&A!==b.cwd,m=j===b.cwd&&!g;return(0,d.jsxs)("button",{type:"button",draggable:!0,onClick:()=>i(b.cwd),onDragStart:a=>O(b.cwd,a),onDragOver:a=>P(b.cwd,a),onDrop:()=>Q(b.cwd),onDragEnd:R,onMouseEnter:()=>k(b.cwd),onMouseLeave:()=>k(null),style:{display:"grid",gap:4,width:"100%",textAlign:"left",padding:"9px 10px",border:`1px solid ${l?"rgba(37,99,235,0.45)":g?"color-mix(in srgb, var(--accent) 45%, var(--border))":"transparent"}`,borderRadius:8,background:l?"rgba(37,99,235,0.06)":g?"color-mix(in srgb, var(--accent) 8%, var(--bg-panel))":"transparent",color:"var(--text)",cursor:"pointer",opacity:h?.55:1},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,d.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5,fontWeight:g?750:600},children:b.displayName}),f&&(0,d.jsx)("span",{style:{fontSize:10,color:"var(--accent)",fontWeight:700},children:"current"}),m&&(0,d.jsx)("span",{onClick:a=>{a.stopPropagation(),L(b.cwd)},style:{color:"#f87171",fontSize:11,fontWeight:650},children:"remove"})]}),(0,d.jsx)("div",{style:{color:"var(--text-dim)",fontSize:10.5,fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:b.cwd,children:(e=(c=b.cwd).split(/[\\/]/).filter(Boolean)).length<=3?c:`.../${e.slice(-3).join("/")}`})]},b.cwd)})})]}),(0,d.jsx)("main",{style:{minHeight:0,overflow:"auto"},children:F?(0,d.jsxs)("div",{style:{display:"grid",gap:14},children:[(0,d.jsx)("section",{style:{...dk,padding:14,display:"grid",gap:12},children:(0,d.jsxs)("div",{style:{display:"flex",gap:12,alignItems:"flex-start"},children:[(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[v===F.cwd?(0,d.jsx)("input",{ref:E,value:x,onChange:a=>z(a.target.value),onKeyDown:a=>{"Enter"===a.key&&K(F.cwd),"Escape"===a.key&&w(null)},style:{width:"min(420px, 100%)",height:32,padding:"0 9px",border:"1px solid var(--accent)",borderRadius:6,background:"var(--bg)",color:"var(--text)",fontSize:13,outline:"none"}}):(0,d.jsx)("div",{style:{color:"var(--text)",fontSize:16,fontWeight:750},children:F.displayName}),(0,d.jsx)("div",{style:{marginTop:5,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:F.cwd}),(0,d.jsxs)("div",{style:{marginTop:7,color:"var(--text-muted)",fontSize:11},children:[F.chatCount," chats / last ",function(a){if(!a)return"Never";let b=new Date(a),c=new Date().getTime()-b.getTime(),d=Math.floor(c/6e4),e=Math.floor(c/36e5),f=Math.floor(c/864e5);return d<1?"just now":d<60?`${d}m ago`:e<24?`${e}h ago`:f<7?`${f}d ago`:b.toLocaleDateString()}(F.lastAccessed??F.created??null),F.exists?"":" / path missing"]})]}),(0,d.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",justifyContent:"flex-end"},children:v===F.cwd?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",disabled:t===`rename:${F.cwd}`,onClick:()=>void K(F.cwd),style:{...dl,border:"none",background:"var(--accent)",color:"#fff"},children:"Save"}),(0,d.jsx)("button",{type:"button",onClick:()=>w(null),style:dl,children:"Cancel"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",onClick:()=>b?.(F.cwd),style:{...dl,background:F.cwd===a?"var(--accent)":"var(--bg-panel)",color:F.cwd===a?"#fff":"var(--text-muted)"},children:F.cwd===a?"Current":"Switch"}),(0,d.jsx)("button",{type:"button",onClick:()=>M(F),style:dl,children:"Rename"}),(0,d.jsx)("button",{type:"button",disabled:t===`remove:${F.cwd}`,onClick:()=>void L(F.cwd),style:{...dl,border:"1px solid rgba(248,113,113,0.35)",background:"transparent",color:"#f87171"},children:"Remove"})]})})]})}),(0,d.jsx)(dm,{cwd:F.cwd}),(0,d.jsxs)("section",{style:{...dk,padding:14,display:"grid",gap:12},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)"},children:"WeCom IM"}),(0,d.jsx)("div",{style:{marginTop:3,fontSize:11,color:"var(--text-dim)"},children:"Project notification and chat gateway settings."})]}),(0,d.jsx)(c9,{cwd:F.cwd,embedded:!0})]})]}):(0,d.jsx)("div",{style:{...dk,padding:18,color:"var(--text-muted)",fontSize:12},children:"Select a project to edit settings."})})]}),(0,d.jsx)(y,{open:r,initialPath:a,onClose:()=>s(!1),onSelect:a=>void J(a)})]})}var dp=c(49998);let dq=["127.0.0.0/8","::1","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16"];function dr({checked:a,onChange:b}){return(0,d.jsx)("button",{type:"button",onClick:b,"aria-pressed":a,style:{width:44,height:24,borderRadius:999,border:"none",padding:0,cursor:"pointer",background:a?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",flexShrink:0},children:(0,d.jsx)("span",{style:{position:"absolute",top:3,left:a?23:3,width:18,height:18,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function ds({label:a,description:b,checked:c,onChange:e}){return(0,d.jsxs)("label",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"10px 12px",borderRadius:8,border:`1px solid ${c?"var(--accent)":"var(--border)"}`,background:c?"rgba(37,99,235,0.04)":"var(--bg)",cursor:"pointer",fontSize:12},children:[(0,d.jsx)("input",{type:"radio",checked:c,onChange:e,style:{marginTop:2,accentColor:"var(--accent)"}}),(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontWeight:600,color:"var(--text)",lineHeight:1.4},children:a}),(0,d.jsx)("div",{style:{color:"var(--text-dim)",lineHeight:1.5,marginTop:2},children:b})]})]})}function dt(){let[a,b]=(0,e.useState)(null),[c,f]=(0,e.useState)(!0),[g,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)("always"),[y,z]=(0,e.useState)(!0),[A,B]=(0,e.useState)(dq),[C,D]=(0,e.useState)("");(0,e.useCallback)(async()=>{try{let a=await fetch("/api/auth/totp"),c=await a.json();b(c),x(c.requireMode??"always"),B(c.trustedNetworks??dq),z(!1!==c.proxyHeaderTrusted)}catch{}finally{f(!1)}},[]);let E=async()=>{if(a){if(p(null),"enabled"===a.status){if(!m||!/^\d{6}$/.test(m))return void p("Enter your 6-digit authenticator code to disable");v(!0);try{let a=await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"disable",code:m})}),c=await a.json();a.ok?(b({status:"disabled",enabled:!1,requireMode:"always",trustedNetworks:dq}),n(""),h(null),j(null),t(null),r("Two-factor authentication disabled")):p(c.error??"Failed to disable")}catch{p("Network error")}finally{v(!1)}return}v(!0);try{let a=await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"setup"})}),c=await a.json();if(a.ok&&c.uri){j(c.uri);let a=await dp.toDataURL(c.uri,{width:200,margin:1});h(a),b({status:"pending",enabled:!1,requireMode:w,trustedNetworks:A}),r(null)}else p(c.error??"Failed to start setup")}catch{p("Network error")}finally{v(!1)}}},F=async()=>{if(!k||!/^\d{6}$/.test(k))return void p("Enter the 6-digit code from your authenticator app");v(!0),p(null);try{let a=await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"verify-setup",code:k})}),c=await a.json();a.ok&&c.success?(await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-require-mode",requireMode:w})}),await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-trusted-networks",trustedNetworks:A})}),b({status:"enabled",enabled:!0,requireMode:w,trustedNetworks:A}),l(""),h(null),j(null),c.recoveryCodes&&t(c.recoveryCodes),r("Two-factor authentication enabled!")):p(c.error??"Invalid code")}catch{p("Network error")}finally{v(!1)}},G=async()=>{h(null),j(null),l(""),p(null);try{await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"disable"})}),b({status:"disabled",enabled:!1,requireMode:"always",trustedNetworks:dq})}catch{}},H=(0,e.useCallback)(async c=>{if(x(c),a?.status==="enabled")try{await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-require-mode",requireMode:c})}),b(a=>a?{...a,requireMode:c}:a)}catch{x(a.requireMode)}},[a]),I=(0,e.useCallback)(async()=>{let c=C.trim();if(!c||A.includes(c))return;let d=c.split("/");if(2!==d.length)return void p("Invalid CIDR format (e.g. 192.168.1.0/24)");let e=parseInt(d[1],10);if(isNaN(e)||e<0||e>128)return void p("Invalid CIDR prefix length");p(null);let f=[...A,c];if(B(f),D(""),a?.status==="enabled")try{await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-trusted-networks",trustedNetworks:f})}),b(a=>a?{...a,trustedNetworks:f}:a)}catch{B(A)}},[C,A,a]),J=(0,e.useCallback)(async c=>{let d=A.filter(a=>a!==c);if(B(d),a?.status==="enabled")try{await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-trusted-networks",trustedNetworks:d})}),b(a=>a?{...a,trustedNetworks:d}:a)}catch{B(A)}},[A,a]);return c?(0,d.jsx)("div",{style:{padding:20,fontSize:13,color:"var(--text-muted)"},children:"Loading…"}):(0,d.jsx)("div",{style:{height:"100%",overflowY:"auto",padding:20},children:(0,d.jsxs)("div",{style:{maxWidth:600,display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:16,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)",lineHeight:1.35},children:"Two-Factor Authentication"}),(0,d.jsx)("div",{style:{marginTop:4,fontSize:12,color:"var(--text-muted)",lineHeight:1.55},children:"Require a time-based one-time code in addition to your password."})]}),(0,d.jsx)(dr,{checked:a?.status==="enabled",onChange:()=>{}})]}),a&&(0,d.jsx)("div",{style:{fontSize:11,padding:"4px 10px",borderRadius:999,background:"enabled"===a.status?"rgba(34,197,94,0.12)":"pending"===a.status?"rgba(250,204,21,0.12)":"var(--bg-hover)",color:"enabled"===a.status?"#16a34a":"pending"===a.status?"#ca8a04":"var(--text-dim)",display:"inline-flex",alignSelf:"flex-start",fontWeight:600},children:"enabled"===a.status?"● Active":"pending"===a.status?"◐ Setup in progress":"○ Inactive"}),o&&(0,d.jsx)("div",{style:{fontSize:12,color:"#ef4444",padding:"8px 12px",background:"rgba(239,68,68,0.06)",borderRadius:6},children:o}),q&&!o&&(0,d.jsx)("div",{style:{fontSize:12,color:"#16a34a",padding:"8px 12px",background:"rgba(34,197,94,0.06)",borderRadius:6},children:q}),a?.status==="pending"&&g&&(0,d.jsxs)("div",{style:{padding:20,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",display:"flex",flexDirection:"column",alignItems:"center",gap:14},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:"Scan with your authenticator app"}),(0,d.jsx)("div",{style:{background:"#fff",padding:12,borderRadius:8,border:"1px solid var(--border)"},children:(0,d.jsx)("img",{src:g,alt:"TOTP QR Code",style:{display:"block",width:200,height:200}})}),i&&(0,d.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",textAlign:"center",maxWidth:280},children:[(0,d.jsx)("div",{style:{marginBottom:4},children:"Or enter this key manually:"}),(0,d.jsx)("code",{style:{fontSize:11,fontFamily:"var(--font-mono), monospace",wordBreak:"break-all",background:"var(--bg)",padding:"4px 8px",borderRadius:4},children:i.split("secret=")[1]?.split("&")[0]??"—"})]}),(0,d.jsxs)("div",{style:{width:"100%",maxWidth:260},children:[(0,d.jsx)("label",{style:{fontSize:12,color:"var(--text-dim)",display:"block",marginBottom:6},children:"Enter the 6-digit code to verify"}),(0,d.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,d.jsx)("input",{type:"text",inputMode:"numeric",pattern:"[0-9]{6}",maxLength:6,value:k,onChange:a=>l(a.target.value.replace(/\D/g,"").slice(0,6)),placeholder:"000 000",style:{flex:1,padding:"8px 12px",fontSize:16,fontFamily:"var(--font-mono), monospace",letterSpacing:"0.12em",textAlign:"center",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,d.jsx)("button",{type:"button",disabled:u||6!==k.length,onClick:F,style:{padding:"8px 16px",fontSize:13,fontWeight:600,background:6===k.length?"var(--accent)":"var(--bg-hover)",color:6===k.length?"#fff":"var(--text-dim)",border:"none",borderRadius:6,cursor:6===k.length?"pointer":"not-allowed"},children:u?"…":"Verify"})]})]}),(0,d.jsx)("button",{type:"button",onClick:G,style:{fontSize:12,color:"var(--text-dim)",background:"none",border:"none",cursor:"pointer"},children:"Cancel setup"})]}),s&&s.length>0&&(0,d.jsxs)("div",{style:{padding:20,border:"1px solid rgba(34,197,94,0.3)",borderRadius:8,background:"rgba(34,197,94,0.04)"},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)",marginBottom:6},children:"Recovery codes"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",marginBottom:12,lineHeight:1.55},children:"Save these codes in a safe place. Each can be used once to sign in if you lose access to your authenticator app. They will not be shown again."}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:6,fontFamily:"var(--font-mono), monospace",fontSize:12,color:"var(--text)"},children:s.map((a,b)=>(0,d.jsx)("code",{style:{padding:"6px 10px",background:"var(--bg)",borderRadius:4,border:"1px solid var(--border)"},children:a},b))}),(0,d.jsx)("button",{type:"button",onClick:()=>{t(null),r(null)},style:{marginTop:14,padding:"8px 18px",fontSize:13,fontWeight:600,background:"var(--accent)",color:"#fff",border:"none",borderRadius:6,cursor:"pointer"},children:"I've saved these codes"})]}),(a?.status==="enabled"||a?.status==="pending")&&!s&&(0,d.jsxs)("div",{style:{padding:16,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)",marginBottom:12},children:"Scope"}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:14},children:[(0,d.jsx)(ds,{label:"Require on all networks",description:"TOTP code is always required during login, even from localhost or LAN.",checked:"always"===w,onChange:()=>H("always")}),(0,d.jsx)(ds,{label:"Skip on trusted networks",description:"TOTP code is only required when signing in from outside localhost or LAN.",checked:"untrusted"===w,onChange:()=>H("untrusted")})]}),"untrusted"===w&&!y&&(0,d.jsxs)("div",{style:{marginBottom:10,padding:"9px 12px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg)",fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:["This mode needs a trusted reverse proxy: set"," ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono), monospace"},children:"ANNOVIBE_TRUST_PROXY_HEADERS=1"})," ","so annovibe can read the client IP. Without it the IP is unknown and TOTP is required for every sign-in, including localhost."]}),"untrusted"===w&&(0,d.jsxs)("div",{style:{padding:"10px 12px",background:"var(--bg)",borderRadius:8,border:"1px solid var(--border)"},children:[(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",marginBottom:8,lineHeight:1.5},children:"Trusted CIDR blocks (TOTP will be skipped for requests from these IP ranges):"}),(0,d.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:10},children:A.map(a=>(0,d.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 8px",borderRadius:999,background:"var(--bg-panel)",border:"1px solid var(--border)",fontSize:11,fontFamily:"var(--font-mono), monospace",color:"var(--text)"},children:[a,(0,d.jsx)("button",{type:"button",onClick:()=>J(a),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-dim)",fontSize:13,lineHeight:1,padding:0},title:"Remove",children:"\xd7"})]},a))}),(0,d.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,d.jsx)("input",{type:"text",value:C,onChange:a=>D(a.target.value),onKeyDown:a=>{"Enter"===a.key&&I()},placeholder:"e.g. 192.168.1.0/24",style:{flex:1,padding:"6px 10px",fontSize:12,fontFamily:"var(--font-mono), monospace",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,d.jsx)("button",{type:"button",onClick:I,style:{padding:"6px 12px",fontSize:12,fontWeight:600,background:C.trim()?"var(--accent)":"var(--bg-hover)",color:C.trim()?"#fff":"var(--text-dim)",border:"none",borderRadius:6,cursor:C.trim()?"pointer":"not-allowed"},children:"Add"})]})]})]}),a?.status==="enabled"&&!s&&(0,d.jsxs)("div",{style:{padding:16,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:8},children:"Disable two-factor authentication"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",marginBottom:12,lineHeight:1.5},children:"Enter your current authenticator code to disable 2FA. This will make your account less secure."}),(0,d.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,d.jsx)("input",{type:"text",inputMode:"numeric",pattern:"[0-9]{6}",maxLength:6,value:m,onChange:a=>n(a.target.value.replace(/\D/g,"").slice(0,6)),placeholder:"000 000",style:{flex:1,padding:"8px 12px",fontSize:16,fontFamily:"var(--font-mono), monospace",letterSpacing:"0.12em",textAlign:"center",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,d.jsx)("button",{type:"button",disabled:u||6!==m.length,onClick:E,style:{padding:"8px 16px",fontSize:13,fontWeight:600,background:6===m.length?"rgba(239,68,68,0.85)":"var(--bg-hover)",color:6===m.length?"#fff":"var(--text-dim)",border:"none",borderRadius:6,cursor:6===m.length?"pointer":"not-allowed"},children:u?"…":"Disable 2FA"})]})]}),a?.status==="disabled"&&(0,d.jsxs)("div",{style:{padding:16,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.55},children:"When enabled, you'll need to enter a 6-digit code from your authenticator app (Google Authenticator, Authy, 1Password, etc.) each time you sign in from a new browser or after your session expires."}),(0,d.jsx)("button",{type:"button",disabled:u,onClick:E,style:{marginTop:14,padding:"8px 18px",fontSize:13,fontWeight:600,background:"var(--accent)",color:"#fff",border:"none",borderRadius:6,cursor:"pointer",opacity:u?.6:1},children:u?"Setting up…":"Set up authenticator"})]})]})})}function du({cwd:a,embedded:b=!1}){let[c,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(!0),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=(0,e.useCallback)(async()=>{h(!0);try{let b=a?`?cwd=${encodeURIComponent(a)}`:"",c=await fetch(`/api/plugins${b}`,{cache:"no-store"}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);f(Array.isArray(d.packages)?d.packages:[]),j(null)}catch(a){j(a instanceof Error?a.message:String(a))}finally{h(!1)}},[a]),t=(0,e.useCallback)(async(b,c,d)=>{if(!q){r(c),l(null);try{let e=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:b,source:c,cwd:a,local:d})}),f=await e.json();if(!e.ok||f.error)throw Error(f.error??`HTTP ${e.status}`);l("install"===b?`Installed ${c}`:"remove"===b?`Removed ${c}`:`Updated ${c}`),"install"!==b||d||n(""),await s()}catch(a){j(a instanceof Error?a.message:String(a))}finally{r(null)}}},[q,a,s]),u=(0,e.useCallback)(()=>{let b=m.trim();b&&!q&&t("install",b,o&&!!a)},[q,a,o,t,m]);return(0,d.jsx)("div",{style:{height:"100%",overflowY:"auto",padding:20*!!b},children:(0,d.jsxs)("div",{style:{maxWidth:760,display:"flex",flexDirection:"column",gap:14},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:"Package plugins"}),(0,d.jsx)("div",{style:{marginTop:4,fontSize:12,color:"var(--text-muted)",lineHeight:1.55},children:"Install pi packages from npm or git. They can add extensions, skills, prompt templates, and themes. Changes apply to newly started sessions."})]}),(0,d.jsxs)("div",{style:{padding:12,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,d.jsx)("input",{value:m,onChange:a=>n(a.target.value),onKeyDown:a=>{"Enter"===a.key&&u()},placeholder:"npm package, @scope/package, or git URL",style:{flex:"1 1 300px",minWidth:0,padding:"7px 9px",fontSize:12,color:"var(--text)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,outline:"none"}}),(0,d.jsx)("button",{type:"button",onClick:u,disabled:!m.trim()||!!q,style:{padding:"7px 14px",fontSize:12,fontWeight:600,color:"var(--text)",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:6,cursor:!m.trim()||q?"not-allowed":"pointer",opacity:!m.trim()||q?.55:1},children:q===m.trim()?"Installing…":"Install"})]}),a&&(0,d.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:6,marginTop:8,fontSize:11.5,color:"var(--text-muted)",cursor:"pointer"},children:[(0,d.jsx)("input",{type:"checkbox",checked:o,onChange:a=>p(a.target.checked),style:{margin:0}}),"Install into this project (otherwise global)"]})]}),i&&(0,d.jsx)("div",{style:{padding:"7px 10px",fontSize:11.5,color:"#f87171",border:"1px solid rgba(248,113,113,0.35)",background:"rgba(248,113,113,0.06)",borderRadius:6},children:i}),k&&(0,d.jsx)("div",{style:{padding:"7px 10px",fontSize:11.5,color:"#34d399",border:"1px solid rgba(52,211,153,0.35)",background:"rgba(52,211,153,0.06)",borderRadius:6},children:k}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsxs)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:["Installed (",c.length,")"]}),(0,d.jsx)("button",{type:"button",onClick:()=>{s()},disabled:g,style:{padding:"3px 9px",fontSize:11,color:"var(--text-muted)",background:"none",border:"1px solid var(--border)",borderRadius:5,cursor:g?"wait":"pointer"},children:g?"Refreshing…":"Refresh"})]}),g&&0===c.length?(0,d.jsx)("div",{style:{padding:"18px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:"Loading packages…"}):0===c.length?(0,d.jsx)("div",{style:{padding:"18px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center",border:"1px dashed var(--border)",borderRadius:8},children:"No package plugins installed."}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:c.map(a=>{let b=[a.resources.extensions>0?`${a.resources.extensions} ext`:"",a.resources.skills>0?`${a.resources.skills} skills`:"",a.resources.prompts>0?`${a.resources.prompts} prompts`:"",a.resources.themes>0?`${a.resources.themes} themes`:""].filter(Boolean).join(" \xb7 ")||"no resources resolved",c=q===a.source;return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"10px 12px",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.source}),(0,d.jsx)("span",{style:{flexShrink:0,padding:"0 5px",fontSize:9.5,color:"var(--text-dim)",border:"1px solid var(--border)",borderRadius:3,textTransform:"uppercase"},children:a.scope}),a.filtered&&(0,d.jsx)("span",{style:{flexShrink:0,padding:"0 5px",fontSize:9.5,color:"var(--text-dim)",border:"1px solid var(--border)",borderRadius:3},children:"filtered"})]}),(0,d.jsx)("div",{style:{marginTop:3,fontSize:11,color:"var(--text-muted)"},children:b}),a.installedPath&&(0,d.jsx)("div",{title:a.installedPath,style:{marginTop:2,fontSize:10.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.installedPath})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:6,flexShrink:0},children:[(0,d.jsx)("button",{type:"button",disabled:!!q,onClick:()=>{t("update",a.source,"project"===a.scope)},style:{padding:"4px 9px",fontSize:11,color:"var(--text-muted)",background:"none",border:"1px solid var(--border)",borderRadius:5,cursor:q?"not-allowed":"pointer",opacity:q?.55:1},children:c?"Working…":"Update"}),(0,d.jsx)("button",{type:"button",disabled:!!q,onClick:()=>{window.confirm(`Remove ${a.source}?`)&&t("remove",a.source,"project"===a.scope)},style:{padding:"4px 9px",fontSize:11,color:"#f87171",background:"none",border:"1px solid rgba(248,113,113,0.35)",borderRadius:5,cursor:q?"not-allowed":"pointer",opacity:q?.55:1},children:"Remove"})]})]},a.source)})}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",lineHeight:1.55},children:"Tip: a package can also be a local path or git URL. Project installs require the project to be trusted."})]})})}function dv({checked:a,onChange:b}){return(0,d.jsx)("button",{type:"button",onClick:b,"aria-pressed":a,style:{width:44,height:24,borderRadius:999,border:"none",padding:0,cursor:"pointer",background:a?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",flexShrink:0},children:(0,d.jsx)("span",{style:{position:"absolute",top:3,left:a?23:3,width:18,height:18,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function dw(){return(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.38a2 2 0 0 0-.73-2.73l-.15-.09a2 2 0 0 1-1-1.74v-.51a2 2 0 0 1 1-1.72l.15-.1a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}function dx(a){return"projects"===a?(0,d.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M3 6.5A2.5 2.5 0 0 1 5.5 4H10l2 2.5h6.5A2.5 2.5 0 0 1 21 9v8.5A2.5 2.5 0 0 1 18.5 20h-13A2.5 2.5 0 0 1 3 17.5v-11Z"})}):"models"===a?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,d.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,d.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,d.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,d.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,d.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"})]}):"skills"===a?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),(0,d.jsx)("path",{d:"M2 17l10 5 10-5"}),(0,d.jsx)("path",{d:"M2 12l10 5 10-5"})]}):"plugins"===a?(0,d.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M20.5 7.5 16.5 3.5a2.1 2.1 0 0 0-3 3l1 1-6 6-1-1a2.1 2.1 0 0 0-3 3l4 4a2.1 2.1 0 0 0 3-3l-1-1 6-6 1 1a2.1 2.1 0 0 0 3-3Z"})}):"authenticator"===a?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"}),(0,d.jsx)("circle",{cx:"12",cy:"16",r:"1"})]}):"generative-ui"===a?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("path",{d:"M16 17h5"}),(0,d.jsx)("path",{d:"M18.5 14.5v5"})]}):(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M3 3v18h18"}),(0,d.jsx)("path",{d:"m19 9-5 5-4-4-3 3"}),(0,d.jsx)("path",{d:"M14 9h5v5"})]})}function dy({cwd:a,generativeUI:b,initialTab:c="projects",onGenerativeUIToggle:f,onClose:g,onModelsChanged:h,onProjectSelect:i,onProjectsChanged:j}){let[k,l]=(0,e.useState)(c),m=[{id:"projects",label:"Project",description:a?"Overview and paths":"Add or select a project",icon:dx("projects")},{id:"models",label:"Models",description:"~/.pi/agent/models.json",icon:dx("models")},{id:"authenticator",label:"Authenticator",description:"Two-factor authentication",icon:dx("authenticator")},{id:"skills",label:"Skills",description:a?"Project and global skills":"Select a project first",disabled:!a,icon:dx("skills")},{id:"plugins",label:"Plugins",description:a?"Global and project packages":"Global packages",icon:dx("plugins")},{id:"generative-ui",label:"Generative UI",description:b?"Enabled":"Disabled",icon:dx("generative-ui")},{id:"kernels",label:"Kernels",description:a?"Project R / Python kernels":"Global R / Python kernels",icon:dx("kernels")}],n=m.find(a=>a.id===k)??m[0];return(0,d.jsx)("div",{className:"settings-dialog-backdrop",onClick:a=>{a.target===a.currentTarget&&g()},children:(0,d.jsxs)("div",{className:"settings-dialog-shell",children:[(0,d.jsxs)("div",{className:"settings-dialog-header",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:9,minWidth:0},children:[(0,d.jsx)("span",{style:{color:"var(--text-muted)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,d.jsx)(dw,{})}),(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:15,fontWeight:700,color:"var(--text)",lineHeight:1.25},children:"Settings"}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.label})]})]}),(0,d.jsx)("button",{type:"button",onClick:g,title:"Close settings","aria-label":"Close settings",style:{width:30,height:30,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--text-muted)"},children:"x"})]}),(0,d.jsxs)("div",{className:"settings-dialog-body",children:[(0,d.jsx)("div",{className:"settings-dialog-tabs",children:m.map(a=>{let b=k===a.id;return(0,d.jsxs)("button",{type:"button",disabled:a.disabled,onClick:()=>l(a.id),className:"settings-dialog-tab",style:{background:b?"var(--bg-selected)":"transparent",color:b?"var(--text)":"var(--text-muted)",opacity:a.disabled?.45:1,cursor:a.disabled?"not-allowed":"pointer"},onMouseEnter:c=>{b||a.disabled||(c.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="transparent")},children:[(0,d.jsx)("span",{style:{flexShrink:0,color:b?"var(--accent)":"currentColor",display:"flex"},children:a.icon}),(0,d.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("span",{style:{display:"block",fontSize:12,fontWeight:b?700:600,lineHeight:1.25},children:a.label}),(0,d.jsx)("span",{style:{display:"block",marginTop:2,fontSize:10,color:"var(--text-dim)",lineHeight:1.25,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.description})]})]},a.id)})}),(0,d.jsxs)("div",{className:"settings-dialog-panel",children:["projects"===k&&(0,d.jsx)(dn,{activeCwd:a,onSelectProject:i,onProjectsChanged:j}),"models"===k&&(0,d.jsx)(cR,{embedded:!0,onClose:()=>{h?.(),g()}}),"authenticator"===k&&(0,d.jsx)(dt,{}),"skills"===k&&a&&(0,d.jsx)(cY,{cwd:a,embedded:!0,onClose:g}),"plugins"===k&&(0,d.jsx)(du,{cwd:a,embedded:!0}),"generative-ui"===k&&(0,d.jsx)("div",{style:{height:"100%",overflowY:"auto",padding:20},children:(0,d.jsxs)("div",{style:{maxWidth:720,display:"flex",flexDirection:"column",gap:18},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:18,padding:16,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)",lineHeight:1.35},children:"Generative UI"}),(0,d.jsx)("div",{style:{marginTop:5,fontSize:12,color:"var(--text-muted)",lineHeight:1.55},children:"Render structured widgets and safe visual code blocks directly in chat when the assistant produces UI content."})]}),(0,d.jsx)(dv,{checked:b,onChange:f})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:12},children:[(0,d.jsxs)("div",{style:{padding:14,border:"1px solid var(--border)",borderRadius:8},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--text)",marginBottom:5},children:"When enabled"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:"The agent prompt favors compact visual artifacts for icons, forms, dashboards, and small interactive UI when useful."})]}),(0,d.jsxs)("div",{style:{padding:14,border:"1px solid var(--border)",borderRadius:8},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--text)",marginBottom:5},children:"Fallback rendering"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:"Assistant SVG and safe HTML code blocks can be previewed instead of appearing only as source text."})]})]})]})}),"kernels"===k&&(0,d.jsx)(c5,{cwd:a})]})]})]})})}function dz({initialWidth:a,minWidth:b,maxWidth:c,storageKey:d,direction:f="right"}){let[g,h]=(0,e.useState)(a),[i,j]=(0,e.useState)(!1),k=(0,e.useRef)(a),l=(0,e.useCallback)(a=>{let e=Math.max(b,Math.min(c,a));h(e),k.current=e,document.documentElement.style.setProperty(d,`${e}px`)},[b,c,d]),m=(0,e.useCallback)(()=>{j(!0)},[]),n=(0,e.useCallback)(a=>{let b="left"===f?-1:1;l(k.current+a*b)},[l,f]);return{beginResize:m,endResize:(0,e.useCallback)(()=>{j(!1);try{localStorage.setItem(d,String(k.current))}catch{}},[d]),isResizing:i,resizeBy:n,width:g,widthRef:k}}let dA=new Set(["pdf","png","jpg","jpeg","gif","webp","svg","bmp","ico","avif"]);function dB(a){let b=a.toLowerCase();return b.endsWith(".rds")||b.endsWith(".qs")}function dC(a){return a.toLowerCase().endsWith(".h5ad")}function dD(a){let b=(a.split(/[\\/]/).pop()??a).toLowerCase().split(".").pop()??"";return dA.has(b)}function dE(){let a,b,c,f,h,i,j,k=(0,g.useRouter)(),l=(0,g.useSearchParams)(),{isDark:m,toggleTheme:n}=(0,bC.D)(),o=function(){let[a,b]=(0,e.useState)(!1);return a}(),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(0),[x,y]=(0,e.useState)(0),[z,A]=(0,e.useState)(0),[B,C]=(0,e.useState)(0),[D,E]=(0,e.useState)(!1),[G,H]=(0,e.useState)("projects"),[I,J]=(0,e.useState)({generativeUI:!0,forkEnabled:!0,forkSuggestTokens:18e4,forkAutoTokens:4e5,forkMinMessages:20}),[O,P]=(0,e.useState)(!0),Q=dz({initialWidth:260,minWidth:180,maxWidth:500,storageKey:"--pi-sidebar-width"}),R=dz({initialWidth:500,minWidth:300,maxWidth:1200,storageKey:"--pi-right-panel-width",direction:"left"}),S=(0,e.useRef)(null),T=(0,e.useRef)(null),[U,V]=(0,e.useState)([]),[W,X]=(0,e.useState)(null),Y=(0,e.useRef)(null),Z=(0,e.useCallback)((a,b,c)=>{V(a),X(b),Y.current=c},[]),$=(0,e.useCallback)(a=>{Y.current?.(a)},[]),[_,aa]=(0,e.useState)(!1),[ab,ac]=(0,e.useState)(""),ad=(0,e.useRef)(null),ae=(0,e.useRef)(!1),[af,ag]=(0,e.useState)({kind:"idle"}),ah=(0,e.useRef)(null),ai=(0,e.useCallback)(async()=>{let a=p?.id;if(a&&"naming"!==af.kind){ah.current&&clearTimeout(ah.current),ag({kind:"naming"});try{let b=await fetch(`/api/sessions/${encodeURIComponent(a)}/auto-name`,{method:"POST"}),c=await b.json().catch(()=>({}));if(!b.ok||!c.title)throw Error(c.error||`HTTP ${b.status}`);let d=c.title.trim();w(a=>a+1),q(b=>b?.id===a?{...b,name:d}:b),ag({kind:"success"}),ah.current=setTimeout(()=>ag({kind:"idle"}),1800)}catch(a){ag({kind:"error",message:a instanceof Error?a.message:String(a)}),ah.current=setTimeout(()=>ag({kind:"idle"}),5e3)}}},[af.kind,p?.id]),aj=(0,e.useCallback)(a=>a?a.name||a.firstMessage.slice(0,80)||a.id.slice(0,12):"",[]),ak=(0,e.useCallback)(()=>{p&&(ae.current=!1,ac(p.name||aj(p)),aa(!0),setTimeout(()=>ad.current?.select(),0))},[aj,p]),al=(0,e.useCallback)(async()=>{if(ae.current){ae.current=!1,aa(!1);return}if(!p)return void aa(!1);let a=ab.trim(),b=aj(p);if(aa(!1),a!==(p.name??"")&&(p.name||a!==b))try{(await fetch(`/api/sessions/${encodeURIComponent(p.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a})})).ok&&(q(b=>b&&b.id===p.id?{...b,name:a}:b),w(a=>a+1))}catch{}},[aj,p,ab]),am=(0,e.useCallback)(a=>{"Enter"===a.key?(a.preventDefault(),al()):"Escape"===a.key&&(ae.current=!0,aa(!1))},[al]),an=(0,e.useCallback)(()=>{let a=!I.generativeUI;J(b=>({...b,generativeUI:a})),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{generativeUI:a}})}).then(a=>a.ok?a.json():Promise.reject(Error(`HTTP ${a.status}`))).then(a=>{J(b=>({...b,..."boolean"==typeof a.settings?.generativeUI?{generativeUI:a.settings.generativeUI}:{}}))}).catch(()=>J(a=>({...a,generativeUI:!a.generativeUI})))},[I.generativeUI]),[ao,ap]=(0,e.useState)(null),aq=(0,e.useCallback)(a=>{ap(a)},[]),[ar,as]=(0,e.useState)(null),at=(0,e.useCallback)(a=>{as(a)},[]),[au,av]=(0,e.useState)(null),aw=au?.updateAvailable&&au.latest?{label:`Update ${au.latest}`,title:`Current: v${au.current}
20
+ ${e}`)},[G,au]);return A?(0,d.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:"Loading session..."}):B?(0,d.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:B}):(0,d.jsx)(aD.o,{sessionId:z?.sessionId??a?.id??null,children:(0,d.jsxs)("div",{className:"relative flex h-full flex-col overflow-hidden",onDragEnter:bd,onDragOver:be,onDragLeave:bf,onDrop:bg,children:[bc&&(0,d.jsxs)("div",{className:"pointer-events-none absolute inset-0 z-50 flex animate-[drop-zone-in_0.15s_ease_both] items-center justify-center bg-[rgba(37,99,235,0.06)] backdrop-blur-[1px]",children:[(0,d.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(a=>(0,d.jsx)("div",{className:"absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid border-[rgba(37,99,235,0.5)] animate-[drop-ripple_2.4s_ease-out_infinite_backwards]",style:{transformOrigin:"center",animationDelay:`${a}s`}},a))}),(0,d.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"drop-shadow-[0_6px_18px_rgba(37,99,235,0.18)]",children:[(0,d.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"rgba(37,99,235,0.08)",stroke:"rgba(37,99,235,0.50)",strokeWidth:"1.8"}),(0,d.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"rgba(37,99,235,0.16)",stroke:"rgba(37,99,235,0.40)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,d.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"rgba(37,99,235,0.22)",stroke:"rgba(37,99,235,0.55)",strokeWidth:"1.6"}),(0,d.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,d.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,d.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,d.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,d.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,d.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,d.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,d.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),bo?(0,d.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto px-4 py-8",children:(0,d.jsxs)("div",{className:"w-full max-w-[820px]",children:[(0,d.jsxs)("div",{className:"mb-3",style:{display:"flex",flexDirection:"column",alignItems:"stretch",justifyContent:"flex-start",gap:10,marginLeft:16,marginRight:16,fontFamily:"var(--font-mono)"},children:[bq&&(0,d.jsxs)("div",{style:{padding:br?"7px 9px":"9px 12px",border:"1px solid var(--border)",borderRadius:br?9:10,background:"var(--bg-panel)",minWidth:0,display:"flex",alignItems:"flex-start",gap:br?8:10,boxShadow:"none"},children:[(0,d.jsx)("div",{"aria-hidden":!0,style:{flex:"0 0 auto",width:br?18:20,height:br?18:20,borderRadius:6,marginTop:1,background:"rgba(37,99,235,0.10)",border:"1px solid rgba(37,99,235,0.20)",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--accent)"},children:(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M3 7.5 12 4l9 3.5-9 3.5-9-3.5Z"}),(0,d.jsx)("path",{d:"M7 10v4.5c0 .8 2.2 2 5 2s5-1.2 5-2V10"})]})}),(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("div",{style:{fontSize:9,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.08em",marginBottom:2},children:"Current Project"}),(0,d.jsx)("div",{style:{fontSize:br?12.5:14,color:"var(--text)",fontWeight:700,lineHeight:1.3,wordBreak:"break-word"},children:bq}),bp&&(0,d.jsx)("div",{title:bp,style:{fontSize:10.5,color:"var(--text-dim)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:bp})]})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0,flex:1,lineHeight:1.4},children:[(0,d.jsx)("span",{style:{fontSize:23,color:"var(--text)",fontWeight:750,letterSpacing:0},children:C}),(0,d.jsx)("span",{style:{fontSize:14,minWidth:0,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:(0,d.jsx)(aL,{phrases:aK})})]})]}),(0,d.jsx)(aC,{cwd:bp}),bB]})}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative flex flex-1 overflow-hidden",children:[(0,d.jsx)("div",{ref:as,className:"flex-1 overflow-y-auto pt-4 [scrollbar-width:none]",children:(0,d.jsxs)("div",{className:"mx-auto max-w-[820px] px-4",style:br?{paddingBottom:"calc(env(safe-area-inset-bottom, 0px) + 128px)"}:void 0,children:[(0,d.jsx)(aC,{cwd:bp}),(0,d.jsx)(aB,{goal:z?.sessionMeta?.goal??null}),(()=>{let c=-1;for(let a=D.length-1;a>=0;a--)if("user"===D[a].role){c=a;break}let e=-1;for(let a=D.length-1;a>=0;a--)if("assistant"===D[a].role){e=a;break}let f=0;return(0,d.jsxs)(d.Fragment,{children:[ak&&D.length>0&&(0,d.jsx)("div",{style:{textAlign:"center",padding:"8px 0 4px"},children:(0,d.jsxs)("button",{onClick:()=>ai(),style:{padding:"6px 16px",fontSize:11,color:"var(--accent)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer",transition:"background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-panel)"},children:["Load ",am-an," earlier message",am-an==1?"":"s"]})}),D.map((g,h)=>{let j="user"===g.role&&h>0&&"assistant"===D[h-1].role?E[h-1]:void 0,k="user"===g.role||"assistant"===g.role,l=k?f++:-1,n=!1;if("assistant"===g.role){n=!0;for(let a=h+1;a<D.length;a++){let b=D[a].role;if("user"===b)break;if("assistant"===b){n=!1;break}}n&&F.isStreaming&&h===D.length-1&&(n=!1)}let o=(0,d.jsx)(P.D,{message:g,toolResults:bn,modelNames:H,entryId:E[h],sessionId:z?.sessionId??a?.id??null,compactionShadowCount:a_.get(E[h]??""),onLoadShadowed:ao,onFork:G||ah||0===h&&"user"===g.role?void 0:ax,forking:T===E[h],onNavigate:G?void 0:aA,prevAssistantEntryId:G?void 0:j,onEditContent:a=>i?.current?.insertIfEmpty(a),onSendMessage:bC,showTimestamp:n,prevTimestamp:h>0?D[h-1].timestamp:void 0,renderVisualCodeBlocks:!!m,cwd:z?.info?.cwd??a?.cwd??b??void 0,onOpenImage:bb,activeFilePath:w,agentRunning:G,onApplyToFile:bD,onRunCode:bE,onOpenFileAtLine:p,onAcceptDiff:bF,forkFresh:a9&&h===e?{show:!0,busy:a0,error:a2,onFork:()=>void a6()}:void 0},h);return k?(0,d.jsx)("div",{ref:a=>{bm.current[l]=a,h===c&&(at.current=a)},style:{contentVisibility:"auto",containIntrinsicSize:"auto 100px"},children:o},h):o})]})})(),G&&(0,d.jsx)(az,{agentPhase:Z,startedAt:s,queuedCount:R.steering.length+R.followUp.length,onClearQueue:aW}),F.isStreaming&&F.streamingMessage&&(0,d.jsx)(P.D,{sessionId:z?.sessionId??a?.id??null,message:F.streamingMessage,isStreaming:!0,toolResults:bn,modelNames:H,onSendMessage:bC,renderVisualCodeBlocks:!!m,cwd:z?.info?.cwd??a?.cwd??b??void 0,activeFilePath:w,agentRunning:G,onApplyToFile:bD,onRunCode:bE,onOpenFileAtLine:p,onAcceptDiff:bF}),G&&!F.streamingMessage&&(0,d.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,d.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:function(a){if(a?.kind==="running_tools"){let b=a.tools.map(a=>a.name);if(0===b.length)return"Running tool...";if(1===b.length){let c=a.tools[0]?.progress;if(c){let a=c.length>90?`...${c.slice(-87)}`:c;return`Running ${b[0]}: ${a}`}return`Running ${b[0]}...`}return b.length<=3?`Running ${b.join(", ")}...`:`Running ${b.slice(0,2).join(", ")} (+${b.length-2})...`}return a?.kind==="waiting_model"?"Waiting for model...":"Thinking..."}(Z)})}),z?.info?.cwd&&!1===z.info.cwdExists&&(0,d.jsxs)("div",{className:"my-3 rounded-[7px] border border-[rgba(248,113,113,0.35)] bg-[rgba(248,113,113,0.07)] px-3 py-2 text-[12px] leading-relaxed text-red-400",children:["Project directory no longer exists: ",(0,d.jsx)("code",{className:"font-mono",children:z.info.cwd})]}),$&&(0,d.jsx)("div",{className:"my-3 rounded-[7px] border border-[rgba(248,113,113,0.35)] bg-[rgba(248,113,113,0.07)] px-3 py-2 text-[12px] leading-relaxed text-red-400",children:$}),G&&(0,d.jsx)("div",{style:{height:as.current?as.current.clientHeight:"80vh"}}),(0,d.jsx)("div",{ref:ap})]})}),!br&&(0,d.jsx)(al,{messages:D,streamingMessage:F.streamingMessage,scrollContainer:as,messageRefs:bm}),bu.length>0&&(0,d.jsxs)("button",{onClick:()=>bt(a=>!a),title:bs?"Hide subagent runs":"Show subagent runs",style:{position:"absolute",right:br?8:bs?260:40,top:8,minWidth:28,height:28,display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:bv>0||bu.length>1?"0 8px":0,background:bs?"var(--bg-selected)":"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:bs?"var(--accent)":"var(--text-dim)",cursor:"pointer",zIndex:30,fontSize:12,transition:"right 0.2s ease, background 0.12s"},onMouseEnter:a=>{bs||(a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{bs||(a.currentTarget.style.color="var(--text-dim)")},children:[(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"}),(0,d.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,d.jsx)("path",{d:"M23 21v-2a4 4 0 0 0-3-3.87"}),(0,d.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"})]}),(bv>0||bu.length>1)&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,fontSize:10,fontWeight:700,color:bv>0?"var(--accent)":"var(--text-dim)"},children:[bv>0&&(0,d.jsxs)("span",{children:[bv," active"]}),(0,d.jsx)("span",{children:bu.length})]})]}),bs&&bu.length>0&&(0,d.jsxs)("div",{style:{position:"absolute",right:br?8:48,top:4,bottom:4,width:br?"calc(100vw - 16px)":250,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"-2px 0 12px rgba(0,0,0,0.08)",zIndex:25,overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"6px 12px",fontSize:11,fontWeight:600,color:"var(--text-dim)",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Subagents"}),(0,d.jsx)(ar,{runs:bu})]})]}),(0,d.jsxs)("div",{className:"relative",children:[ad&&(0,d.jsx)("div",{className:"mx-auto w-full max-w-[820px] px-4 pb-2",children:(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{padding:"6px 10px",borderBottom:"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:11.5,color:"var(--text)"},children:[(0,d.jsx)("span",{style:{color:"var(--accent)"},children:"$"})," ",ad.command]}),(0,d.jsx)(aH.m,{text:ad.output||"Running…",maxHeight:260,collapsible:!0,background:"var(--bg)",textColor:"var(--text-muted)"})]})}),bB]})]}),ab&&(0,d.jsx)(aG,{request:ab,onRespond:af}),bj&&(0,d.jsxs)("div",{style:{position:"fixed",inset:0,zIndex:100,background:"rgba(0,0,0,0.85)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"zoom-out"},onClick:()=>bk(null),children:[bj.gallery&&bj.gallery.length>1&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{style:{position:"absolute",left:16,top:"50%",transform:"translateY(-50%)",background:"rgba(255,255,255,0.15)",border:"none",borderRadius:8,color:"#fff",fontSize:28,width:44,height:44,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:101},onClick:a=>{a.stopPropagation();let b=((bj.index??0)-1+bj.gallery.length)%bj.gallery.length;bk({...bj,src:bj.gallery[b].src,index:b})},children:"←"}),(0,d.jsx)("button",{style:{position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",background:"rgba(255,255,255,0.15)",border:"none",borderRadius:8,color:"#fff",fontSize:28,width:44,height:44,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:101},onClick:a=>{a.stopPropagation();let b=((bj.index??0)+1)%bj.gallery.length;bk({...bj,src:bj.gallery[b].src,index:b})},children:"→"})]}),(0,d.jsx)("img",{src:bj.src,alt:"",style:{maxWidth:"95vw",maxHeight:"95vh",objectFit:"contain",borderRadius:8,boxShadow:"0 8px 40px rgba(0,0,0,0.5)"}}),(0,d.jsx)("div",{style:{position:"absolute",bottom:16,left:"50%",transform:"translateX(-50%)",background:"rgba(0,0,0,0.5)",color:"rgba(255,255,255,0.7)",borderRadius:6,padding:"4px 12px",fontSize:12},children:bj.gallery&&bj.gallery.length>1?`${(bj.index??0)+1} / ${bj.gallery.length}`:"Click anywhere to close"})]})]})})}var aO=c(90707),aP=c(52515);class aQ extends f().Component{static getDerivedStateFromError(a){return{hasError:!0,message:a instanceof Error?a.message:String(a)}}componentDidCatch(a,b){console.error("File viewer crashed",{filePath:this.props.filePath,error:a,componentStack:b.componentStack})}componentDidUpdate(a){a.filePath!==this.props.filePath&&this.state.hasError&&this.setState({hasError:!1,message:null})}render(){return this.state.hasError?(0,d.jsx)(aP.fj,{style:{background:"var(--bg)"},children:(0,d.jsx)(aP.nG,{tone:"error",children:(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,alignItems:"center",textAlign:"center"},children:[(0,d.jsx)("div",{children:"Preview crashed for this file."}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",maxWidth:560,wordBreak:"break-word"},children:this.props.filePath}),this.state.message&&(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",maxWidth:560,wordBreak:"break-word"},children:this.state.message})]})})}):this.props.children}constructor(...a){super(...a),this.state={hasError:!1,message:null}}}function aR(a,b,c){return Math.min(Math.max(a,b),c)}function aS({id:a,filePath:b,fileName:c,cwd:f,active:g,stackIndex:h,zIndex:i,onClose:j,onFocus:k,onOpenFile:l}){let[m,n]=(0,e.useState)(()=>{let a,b,c;return b=Math.max(320,1208-(a=h%6*28)),c=Math.max(260,828-a),{left:36+a,top:36+a,width:Math.min(1180,b),height:Math.min(820,c),maximized:!1}}),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(!1),s=(0,e.useRef)(null),t=(0,e.useRef)(null),u=(0,e.useRef)(null),v=(0,e.useCallback)(b=>{k(a),0!==b.button||m.maximized||(b.preventDefault(),b.currentTarget.setPointerCapture(b.pointerId),t.current={pointerId:b.pointerId,startX:b.clientX,startY:b.clientY,left:m.left,top:m.top},p(!0))},[m.left,m.maximized,m.top,a,k]),w=(0,e.useCallback)(a=>{let b=t.current;if(!b||b.pointerId!==a.pointerId)return;let c=b.left+a.clientX-b.startX,d=b.top+a.clientY-b.startY;n(a=>({...a,left:aR(c,8,Math.max(8,window.innerWidth-120)),top:aR(d,8,Math.max(8,window.innerHeight-48))}))},[]),x=(0,e.useCallback)(a=>{let b=t.current;b?.pointerId===a.pointerId&&(a.currentTarget.releasePointerCapture(a.pointerId),t.current=null,p(!1))},[]),y=(0,e.useCallback)(()=>{k(a),n(a=>({...a,maximized:!a.maximized}))},[a,k]),z=(0,e.useCallback)(b=>{k(a),0!==b.button||m.maximized||(b.preventDefault(),b.stopPropagation(),b.currentTarget.setPointerCapture(b.pointerId),u.current={pointerId:b.pointerId,startX:b.clientX,startY:b.clientY,width:m.width,height:m.height},r(!0))},[m.height,m.maximized,m.width,a,k]),A=(0,e.useCallback)(a=>{let b=u.current;if(!b||b.pointerId!==a.pointerId)return;let c=b.width+a.clientX-b.startX,d=b.height+a.clientY-b.startY;n(a=>({...a,width:aR(c,360,Math.max(360,window.innerWidth-a.left-8)),height:aR(d,280,Math.max(280,window.innerHeight-a.top-8))}))},[]),B=(0,e.useCallback)(a=>{let b=u.current;b?.pointerId===a.pointerId&&(a.currentTarget.releasePointerCapture(a.pointerId),u.current=null,r(!1))},[]),C=m.maximized?{position:"fixed",inset:12,zIndex:i}:{position:"fixed",left:m.left,top:m.top,width:m.width,height:m.height,zIndex:i};return(0,d.jsxs)("div",{ref:s,role:"dialog","aria-label":`Preview ${c}`,tabIndex:-1,onPointerDown:()=>k(a),onKeyDown:b=>{"Escape"===b.key&&j(a)},style:{...C,display:"flex",flexDirection:"column",minWidth:m.maximized?void 0:360,minHeight:m.maximized?void 0:280,background:"var(--bg)",border:g?"1px solid rgba(37,99,235,0.55)":"1px solid var(--border)",borderRadius:8,boxShadow:g?"0 18px 60px rgba(0,0,0,0.26)":"0 10px 34px rgba(0,0,0,0.20)",overflow:"hidden",outline:"none"},children:[(0,d.jsxs)("div",{onPointerDown:v,onPointerMove:w,onPointerUp:x,onPointerCancel:x,style:{height:34,display:"flex",alignItems:"center",gap:8,padding:"0 8px 0 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",cursor:m.maximized?"default":o?"grabbing":"grab",flexShrink:0,userSelect:"none"},children:[(0,d.jsx)("div",{style:{minWidth:0,flex:1},children:(0,d.jsx)("div",{title:b,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:650,color:"var(--text)"},children:c})}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:y,title:m.maximized?"Restore preview":"Maximize preview","aria-label":m.maximized?"Restore preview":"Maximize preview",style:aT,children:m.maximized?(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M6 3.5h6.5V10"}),(0,d.jsx)("path",{d:"M3.5 6H10v6.5H3.5z"})]}):(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M4 4h8v8H4z"})})}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:()=>j(a),title:"Close preview","aria-label":"Close preview",style:aT,children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("line",{x1:"4",y1:"4",x2:"12",y2:"12"}),(0,d.jsx)("line",{x1:"12",y1:"4",x2:"4",y2:"12"})]})})]}),(0,d.jsx)("div",{style:{flex:1,minHeight:0,overflow:"hidden",background:"var(--bg)"},children:(0,d.jsx)(aQ,{filePath:b,children:(0,d.jsx)(aO.h,{filePath:b,cwd:f,onOpenFile:l})})}),!m.maximized&&(0,d.jsx)("div",{role:"separator","aria-orientation":"horizontal","aria-label":"Resize preview",title:"Resize preview",onPointerDown:z,onPointerMove:A,onPointerUp:B,onPointerCancel:B,style:{position:"absolute",right:0,bottom:0,width:18,height:18,cursor:"nwse-resize",color:"var(--text-dim)",display:"flex",alignItems:"flex-end",justifyContent:"flex-end",padding:3,background:"linear-gradient(135deg, transparent 0 48%, rgba(127,127,127,0.18) 48% 52%, transparent 52% 100%)"}})]})}let aT={width:26,height:24,padding:0,border:"1px solid transparent",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0};function aU(a){return{dirCache:new Map,pathIndex:new Map,loadedDirs:new Set,revision:0,workspaceRoot:a}}function aV(a,b){if(b.delete(a.path),a.children)for(let c of a.children)aV(c,b)}function aW(a,b,c){let d=new Map;if(b)for(let a of b)d.set(a.path,a);if(b){let d=new Set(a.map(a=>a.path));for(let a of b)d.has(a.path)||aV(a,c)}return a.map(a=>{let b=d.get(a.path);return b&&(a.id=b.id,b.childrenLoaded&&b.children?(a.children=b.children,a.childrenLoaded=!0):b.childrenLoaded&&!b.children&&(a.childrenLoaded=!0)),c.set(a.path,a),a})}function aX(a,b,c){let d=aW(c,a.dirCache.get(b),a.pathIndex);a.dirCache.set(b,d),a.loadedDirs.add(b)}function aY(a,b,c){let d=a.dirCache.get(b);if(!d)return;let e=d.findIndex(a=>a.path===c.path);if(-1!==e){let a=d[e];"folder"===a.type&&"folder"===c.type&&(c.children=a.children,c.childrenLoaded=a.childrenLoaded),d[e]=c}else d.push(c),d.sort(a$);a.pathIndex.set(c.path,c)}function aZ(a,b,c){let d=a.dirCache.get(b);d&&a.dirCache.set(b,d.filter(a=>a.path!==c));let e=a.pathIndex.get(c);e&&aV(e,a.pathIndex),a.dirCache.delete(c),a.loadedDirs.delete(c)}function a$(a,b){return"folder"===a.type&&"folder"!==b.type?-1:"folder"!==a.type&&"folder"===b.type?1:a.name.localeCompare(b.name)}let a_=new Set(["node_modules","vendor","venv",".venv","Pods","dist","build","out","target",".output","bin","obj",".next",".nuxt",".cache",".turbo",".parcel-cache",".git",".svn",".hg",".idea",".vscode",".vs","coverage",".nyc_output","__pycache__",".pytest_cache",".mypy_cache",".tox","logs","tmp","temp",".annodex-uploads"]),a0="var(--text-dim)";function a1({size:a=14,open:b=!1}){return b?(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 16 16",fill:"none",children:[(0,d.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5h7.5v1H1V4.5Z",fill:a0}),(0,d.jsx)("path",{d:"M1 6h14.5L14 13H2L1 6Z",stroke:a0,strokeWidth:"1",fill:a0,fillOpacity:"0.12"})]}):(0,d.jsx)("svg",{width:a,height:a,viewBox:"0 0 16 16",fill:"none",children:(0,d.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5H14a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4.5Z",stroke:a0,strokeWidth:"1",fill:a0,fillOpacity:"0.1"})})}function a2({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 16 16",fill:"none",children:[(0,d.jsx)("path",{d:"M3 2h7l3 3v9H3V2Z",stroke:a0,strokeWidth:"1",fill:a0,fillOpacity:"0.08"}),(0,d.jsx)("path",{d:"M10 2v3h3",stroke:a0,strokeWidth:"1",fill:"none",strokeLinejoin:"round"})]})}function a3({label:a,size:b=14}){let c=b/14;return(0,d.jsxs)("svg",{width:b,height:b,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a0,strokeWidth:"0.9",fill:a0,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a0,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("text",{x:"7",y:"9.5",textAnchor:"middle",fontSize:3.4*c,fontFamily:"var(--font-mono), monospace",fontWeight:"600",fill:a0,letterSpacing:"0",children:a})]})}function a4({size:a=14}){return(0,d.jsx)(a3,{label:"TS",size:a})}function a5({size:a=14}){return(0,d.jsx)(a3,{label:"TSX",size:a})}function a6({size:a=14}){return(0,d.jsx)(a3,{label:"JS",size:a})}function a7({size:a=14}){return(0,d.jsx)(a3,{label:"JSX",size:a})}function a8({size:a=14}){return(0,d.jsx)(a3,{label:"PY",size:a})}function a9({size:a=14}){return(0,d.jsx)(a3,{label:"{}",size:a})}function ba({size:a=14}){return(0,d.jsx)(a3,{label:"CSS",size:a})}function bb({size:a=14}){return(0,d.jsx)(a3,{label:"SC",size:a})}function bc({size:a=14}){return(0,d.jsx)(a3,{label:"HTM",size:a})}function bd({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a0,strokeWidth:"0.9",fill:a0,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a0,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M3.5 9.5V7l1.5 1.5L6.5 7v2.5",stroke:a0,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,d.jsx)("path",{d:"M8 7v2.5M7 9l1 1.5 1-1.5",stroke:a0,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})}function be({size:a=14}){return(0,d.jsx)(a3,{label:"YML",size:a})}function bf({size:a=14}){return(0,d.jsx)(a3,{label:"TOM",size:a})}function bg({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a0,strokeWidth:"0.9",fill:a0,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a0,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M4 7.5l2 1.5-2 1.5",stroke:a0,strokeWidth:"0.95",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,d.jsx)("path",{d:"M7.5 10.5h2.5",stroke:a0,strokeWidth:"0.95",strokeLinecap:"round"})]})}function bh({size:a=14}){return(0,d.jsx)(a3,{label:"RS",size:a})}function bi({size:a=14}){return(0,d.jsx)(a3,{label:"GO",size:a})}function bj({size:a=14}){return(0,d.jsx)(a3,{label:"SQL",size:a})}function bk({size:a=14}){return(0,d.jsx)(a3,{label:"GQL",size:a})}function bl({size:a=14}){return(0,d.jsx)(a3,{label:"TF",size:a})}function bm({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a0,strokeWidth:"0.9",fill:a0,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a0,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("rect",{x:"3.5",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:a0,strokeWidth:"0.8"}),(0,d.jsx)("rect",{x:"6",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:a0,strokeWidth:"0.8"}),(0,d.jsx)("rect",{x:"3.5",y:"8.5",width:"2",height:"1.5",rx:"0.3",stroke:a0,strokeWidth:"0.8"})]})}function bn({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a0,strokeWidth:"0.9",fill:a0,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a0,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("circle",{cx:"5.5",cy:"8.5",r:"1.5",stroke:a0,strokeWidth:"0.9"}),(0,d.jsx)("path",{d:"M7 8.5h2.5M8.5 8.5v1.5",stroke:a0,strokeWidth:"0.9",strokeLinecap:"round"})]})}function bo({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a0,strokeWidth:"0.9",fill:a0,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a0,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("circle",{cx:"5",cy:"6.5",r:"1",stroke:a0,strokeWidth:"0.85"}),(0,d.jsx)("circle",{cx:"9",cy:"6.5",r:"1",stroke:a0,strokeWidth:"0.85"}),(0,d.jsx)("circle",{cx:"5",cy:"10",r:"1",stroke:a0,strokeWidth:"0.85"}),(0,d.jsx)("path",{d:"M5 7.5V9",stroke:a0,strokeWidth:"0.85",strokeLinecap:"round"}),(0,d.jsx)("path",{d:"M9 7.5v.5a2 2 0 0 1-2 2H6",stroke:a0,strokeWidth:"0.85",strokeLinecap:"round",fill:"none"})]})}function bp({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a0,strokeWidth:"0.9",fill:a0,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a0,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("rect",{x:"4.5",y:"8.5",width:"5",height:"3",rx:"0.6",stroke:a0,strokeWidth:"0.9"}),(0,d.jsx)("path",{d:"M5.5 8.5V7.5a1.5 1.5 0 0 1 3 0v1",stroke:a0,strokeWidth:"0.9",strokeLinecap:"round",fill:"none"})]})}function bq({size:a=14}){return(0,d.jsxs)("svg",{width:a,height:a,viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:a0,strokeWidth:"0.9",fill:a0,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M8.5 1v3h3",stroke:a0,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,d.jsx)("circle",{cx:"7",cy:"8.5",r:"1.3",stroke:a0,strokeWidth:"0.9"}),(0,d.jsx)("path",{d:"M7 6.5v.7M7 10.3v.7M5 8.5h.7M8.3 8.5H9M5.5 6.9l.5.5M8.5 9.6l-.5-.5M5.5 10.1l.5-.5M8.5 7.4l-.5.5",stroke:a0,strokeWidth:"0.8",strokeLinecap:"round"})]})}function br(a,b=14){let c=a.toLowerCase(),e=c.split(".").pop()??"";if("dockerfile"===c||c.startsWith("dockerfile."))return(0,d.jsx)(bm,{size:b});if(".env"===c||c.startsWith(".env."))return(0,d.jsx)(bn,{size:b});if(".gitignore"===c||".gitattributes"===c||".gitmodules"===c)return(0,d.jsx)(bo,{size:b});if("package-lock.json"===c||"yarn.lock"===c||"bun.lock"===c||"pnpm-lock.yaml"===c||"cargo.lock"===c)return(0,d.jsx)(bp,{size:b});if(c.endsWith(".config.ts")||c.endsWith(".config.js")||c.endsWith(".config.mjs")||c.endsWith(".config.cjs")||[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml","eslint.config.mjs","eslint.config.js"].includes(c))return(0,d.jsx)(bq,{size:b});switch(e){case"ts":return(0,d.jsx)(a4,{size:b});case"tsx":return(0,d.jsx)(a5,{size:b});case"js":case"mjs":case"cjs":return(0,d.jsx)(a6,{size:b});case"jsx":return(0,d.jsx)(a7,{size:b});case"py":return(0,d.jsx)(a8,{size:b});case"json":case"jsonl":return(0,d.jsx)(a9,{size:b});case"css":case"less":return(0,d.jsx)(ba,{size:b});case"scss":return(0,d.jsx)(bb,{size:b});case"html":case"htm":return(0,d.jsx)(bc,{size:b});case"md":case"mdx":return(0,d.jsx)(bd,{size:b});case"yaml":case"yml":return(0,d.jsx)(be,{size:b});case"toml":return(0,d.jsx)(bf,{size:b});case"sh":case"bash":case"zsh":case"fish":return(0,d.jsx)(bg,{size:b});case"rs":return(0,d.jsx)(bh,{size:b});case"go":return(0,d.jsx)(bi,{size:b});case"sql":return(0,d.jsx)(bj,{size:b});case"graphql":case"gql":return(0,d.jsx)(bk,{size:b});case"tf":case"hcl":return(0,d.jsx)(bl,{size:b});case"lock":return(0,d.jsx)(bp,{size:b});default:return(0,d.jsx)(a2,{size:b})}}let bs=(f()).memo(function({node:a,depth:b,isExpanded:c,isLoading:g,isSelected:h,isRenaming:i,isUploadTarget:j,onClick:k,onDoubleClick:l,onContextMenu:m,onRenameSubmit:n,onRenameCancel:o,onDragEnter:p,onDragOver:q,onDragLeave:r,onDrop:s}){var t;let u=!!(t=a.name).startsWith(".")||a_.has(t),[v,w]=f().useState(!1),[x,y]=f().useState(a.name),z=f().useRef(null);f().useEffect(()=>{if(i&&z.current){let b=a.name.lastIndexOf(".");"file"===a.type&&b>0?z.current.setSelectionRange(0,b):z.current.select(),z.current.focus()}},[i,a.name,a.type]);let A=(0,e.useCallback)(()=>{i||k(a.path,"folder"===a.type)},[i,a.path,a.type,k]),B=(0,e.useCallback)(()=>{i||l(a.path)},[i,a.path,l]),C=(0,e.useCallback)(b=>{i||m(b,a.path)},[i,a.path,m]),D=(0,e.useCallback)(b=>{if("Enter"===b.key){b.preventDefault();let c=x.trim();c&&c!==a.name?n(a.path,c):o()}else"Escape"===b.key&&(b.preventDefault(),o())},[x,a.name,a.path,n,o]),E=(0,e.useCallback)(()=>{let b=x.trim();b&&b!==a.name?n(a.path,b):o()},[x,a.name,a.path,n,o]);return(0,d.jsxs)("div",{onClick:A,onDoubleClick:B,onContextMenu:C,onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),onDragEnter:p,onDragOver:q,onDragLeave:r,onDrop:s,style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*b,paddingRight:8,height:26,cursor:"pointer",background:j?"rgba(37,99,235,0.14)":h?"var(--bg-selected)":v?"var(--bg-hover)":"transparent",outline:j?"1px solid rgba(37,99,235,0.42)":"none",outlineOffset:-1,borderRadius:4,userSelect:"none",transition:"background 0.08s",opacity:u?.65:1},children:["folder"===a.type?(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:c?"rotate(90deg)":"none",transition:"transform 0.1s"},children:(0,d.jsx)("polyline",{points:"3 2 7 5 3 8"})}):(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),g?(0,d.jsx)("span",{style:{flexShrink:0,width:14,height:14,display:"flex",alignItems:"center"},children:(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",style:{animation:"spin 1s linear infinite"},children:(0,d.jsx)("path",{d:"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4"})})}):(0,d.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:"folder"===a.type?(0,d.jsx)(a1,{size:14,open:c}):br(a.name,14)}),i?(0,d.jsx)("input",{ref:z,value:x,onChange:a=>y(a.target.value),onKeyDown:D,onBlur:E,style:{flex:1,minWidth:0,height:22,padding:"0 4px",fontSize:12,fontFamily:"inherit",color:"var(--text)",background:"var(--bg-input, var(--bg))",border:"1px solid var(--accent)",borderRadius:3,outline:"none"},onClick:a=>a.stopPropagation(),onDoubleClick:a=>a.stopPropagation(),onContextMenu:a=>a.stopPropagation()}):(0,d.jsx)("span",{style:{fontSize:12,color:u?"var(--text-dim)":"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:a.path,children:a.name})]})});function bt({x:a,y:b,actions:c,onClose:g}){let h=(0,e.useRef)(null),[i,j]=f().useState(a),[k,l]=f().useState(b);return 0===c.length?null:(0,d.jsx)("div",{ref:h,style:{position:"fixed",left:i,top:k,zIndex:1e3,minWidth:190,padding:"4px 0",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.18)",fontSize:12},children:c.map((a,b)=>(0,d.jsxs)(f().Fragment,{children:[a.separator&&b>0&&(0,d.jsx)("div",{style:{height:1,margin:"4px 8px",background:"var(--border)"}}),(0,d.jsxs)("div",{onClick:b=>{b.stopPropagation(),a.onClick(),g()},style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px 12px",cursor:"pointer",color:a.danger?"#ef4444":"var(--text)"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent"},children:[(0,d.jsx)("span",{children:a.label}),a.shortcut&&(0,d.jsx)("span",{style:{marginLeft:24,fontSize:10,color:"var(--text-dim)"},children:a.shortcut})]})]},b))})}var bu=c(31343);async function bv(a){let b=(0,bu.HG)(a),c=await fetch(`/api/files/${b}?type=list`);return c.ok?(await c.json()).entries??[]:[]}function bw(a,b,c,d){let e=(0,bu.e_)(b,a.name);return{id:e,name:a.name,path:e,relativePath:(0,bu.qP)(e,c),type:a.isDir?"folder":"file",extension:a.isDir?"":a.name.includes(".")?a.name.split(".").pop()?.toLowerCase()??"":"",size:a.size,modified:a.modified,depth:d,children:a.isDir?[]:void 0,childrenLoaded:!a.isDir}}function bx(a,b){return a===b?".":(0,bu.qP)(a,b)}function by(a){return!!Array.from(a.types).includes("Files")||Array.from(a.items).some(a=>"file"===a.kind)}function bz(a){return Array.from(a.files).filter(a=>!!a.name)}function bA({cwd:a,onOpenFile:b,onExploreFile:c,refreshKey:f,onAtMention:g,searchQuery:h="",watchEnabled:i=!0}){let j,k,l,m,n=function(){let a=(0,e.useRef)(aU("")),[b,c]=(0,e.useState)(0),[d,f]=(0,e.useState)(""),[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(new Set),[m,n]=(0,e.useState)(new Set),[o,p]=(0,e.useState)(new Set),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)([]);(0,e.useCallback)(()=>{let b=a.current;t(function a(b,c,d,e){let f=[];for(let g of b){let b="folder"===g.type&&c.has(g.path);if(f.push({node:g,depth:d,isExpanded:b}),b){let b=e.get(g.path)??[];f.push(...a(b,c,d+1,e))}}return f}(b.dirCache.get(b.workspaceRoot)??[],m,0,b.dirCache))},[m]);let u=(0,e.useCallback)(async b=>{h(!1),j(!1);let d=aU(b);a.current=d;try{let a=(await bv(b)).map(a=>bw(a,b,b,0));a.sort(a$),aX(d,b,a),f(b),h(!0),c(a=>a+1)}catch{j(!0),h(!0)}},[]),v=(0,e.useCallback)(async b=>{let d=a.current;if(!d.loadedDirs.has(b)){l(a=>new Set(a).add(b));try{let a=(await bv(b)).map(a=>bw(a,b,d.workspaceRoot,0));a.sort(a$),d.loadedDirs.has(b)||(aX(d,b,a),c(a=>a+1))}catch{}finally{l(a=>{let c=new Set(a);return c.delete(b),c})}}},[]),w=(0,e.useCallback)(b=>{n(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c}),a.current.loadedDirs.has(b)||v(b)},[v]),x=(0,e.useCallback)((a,b)=>{p(c=>{if(b){let b=new Set(c);return b.has(a)?b.delete(a):b.add(a),b}return new Set([a])})},[]),y=(0,e.useCallback)(()=>{p(new Set)},[]),z=(0,e.useCallback)(a=>{r(a)},[]),A=(0,e.useCallback)(()=>{r(null)},[]),B=(0,e.useCallback)(async b=>{var c;(c=a.current).dirCache.clear(),c.pathIndex.clear(),c.loadedDirs.clear(),n(new Set),await u(b)},[u]),C=(0,e.useCallback)(b=>a.current.pathIndex.get(b),[]),D=(0,e.useCallback)(b=>a.current.dirCache.get(b),[]),E=(0,e.useCallback)((b,d)=>{aY(a.current,b,d),c(a=>a+1)},[]),F=(0,e.useCallback)((b,d,e)=>{let f=a.current,g=f.pathIndex.get(b);if(!g)return;let h=f.workspaceRoot===b?f.workspaceRoot:b.substring(0,Math.max(b.lastIndexOf("/"),b.lastIndexOf("\\")));aZ(f,h,b);let i={...g,id:d,name:e,path:d,relativePath:(0,bu.qP)(d,f.workspaceRoot),extension:"file"===g.type&&e.includes(".")?e.split(".").pop()?.toLowerCase()??"":""};aY(f,h,i),c(a=>a+1)},[]),G=(0,e.useCallback)(b=>{let d=a.current,e=d.workspaceRoot===b?d.workspaceRoot:b.substring(0,Math.max(b.lastIndexOf("/"),b.lastIndexOf("\\")));aZ(d,e,b),c(a=>a+1)},[]);return{revision:b,workspaceRoot:d,hasLoaded:g,loadFailed:i,loadingPaths:k,expandedPaths:m,selectedPaths:o,renamingPath:q,flatNodes:s,loadRoot:u,loadChildren:v,toggleExpand:w,select:x,deselectAll:y,startRename:z,stopRename:A,refresh:B,getNode:C,getChildren:D,onFileCreated:E,onFileRenamed:F,onFileDeleted:G,invalidateDir:(0,e.useCallback)(b=>{let c=a.current;c.loadedDirs.delete(b),c.dirCache.delete(b)},[]),applyWatcherEvent:(0,e.useCallback)(b=>{(function(a,b){let c=!1;for(let{dirPath:d,children:e}of b){if(!a.loadedDirs.has(d))continue;let b=e.map(b=>{let c=d===a.workspaceRoot?`${a.workspaceRoot}/${b.name}`:`${d}/${b.name}`;return{id:c,name:b.name,path:c,relativePath:c.startsWith(a.workspaceRoot+"/")?c.slice(a.workspaceRoot.length+1):b.name,type:b.isDir?"folder":"file",extension:b.isDir?"":b.name.includes(".")?b.name.split(".").pop()?.toLowerCase()??"":"",size:b.size,modified:b.modified,depth:0,children:b.isDir?[]:void 0,childrenLoaded:!b.isDir}});b.sort(a$);let f=aW(b,a.dirCache.get(d),a.pathIndex);a.dirCache.set(d,f),c=!0}return c})(a.current,b)&&c(a=>a+1)},[])}}(),o=(j=(0,e.useCallback)(async(b,c)=>{try{let d=b===a?`${a}/${c}`:`${b}/${c}`,e=await fetch("/api/file-tree/write",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:d,content:""})});if(!e.ok){let a=await e.json().catch(()=>({}));return{success:!1,error:a.error??`HTTP ${e.status}`}}return{success:!0,resolvedPath:d}}catch(a){return{success:!1,error:String(a)}}},[a]),k=(0,e.useCallback)(async(b,c)=>{try{let d=b===a?`${a}/${c}`:`${b}/${c}`,e=await fetch("/api/file-tree/mkdir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:d})});if(!e.ok){let a=await e.json().catch(()=>({}));return{success:!1,error:a.error??`HTTP ${e.status}`}}return{success:!0,resolvedPath:d}}catch(a){return{success:!1,error:String(a)}}},[a]),l=(0,e.useCallback)(async(b,c)=>{try{let d=Math.max(b.lastIndexOf("/"),b.lastIndexOf("\\")),e=d>0?b.slice(0,d):a,f=`${e}/${c}`,g=await fetch("/api/file-tree/rename",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({oldPath:b,newPath:f})});if(!g.ok){let a=await g.json().catch(()=>({}));return{success:!1,error:a.error??`HTTP ${g.status}`}}return{success:!0,resolvedPath:f}}catch(a){return{success:!1,error:String(a)}}},[a]),m=(0,e.useCallback)(async a=>{try{let b=await fetch("/api/file-tree/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})});if(!b.ok){let a=await b.json().catch(()=>({}));return{success:!1,error:a.error??`HTTP ${b.status}`}}return{success:!0,resolvedPath:a}}catch(a){return{success:!1,error:String(a)}}},[]),{createFile:j,createFolder:k,renameFile:l,deleteFile:m,moveFile:(0,e.useCallback)(async(a,b)=>{try{let c=a.slice(Math.max(a.lastIndexOf("/"),a.lastIndexOf("\\"))+1),d=`${b}/${c}`,e=await fetch("/api/file-tree/rename",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({oldPath:a,newPath:d})});if(!e.ok){let a=await e.json().catch(()=>({}));return{success:!1,error:a.error??`HTTP ${e.status}`}}return{success:!0,resolvedPath:d}}catch(a){return{success:!1,error:String(a)}}},[]),revealInFinder:(0,e.useCallback)(async a=>{try{await fetch("/api/file-tree/reveal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})})}catch{}},[])}),p=(0,e.useRef)(null);(0,e.useRef)(null);let q=(0,e.useRef)(null),r=(0,e.useRef)(0),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(null),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(-1),[C,D]=(0,e.useState)(null),[E,F]=(0,e.useState)(!1),G=h.trim().length>0,H=(()=>{if(G){let a=n.getChildren(n.workspaceRoot);return a?function a(b,c,d){let e=c.trim().toLowerCase(),f=[];for(let g of b){let b=g.name.toLowerCase().includes(e),h=(g.children??[]).some(a=>(function a(b,c){let d=c.trim().toLowerCase();return!!(!d||b.name.toLowerCase().includes(d))||(b.children??[]).some(b=>a(b,d))})(a,e));(b||h)&&(f.push({node:g,depth:d,isExpanded:!0}),g.children&&h&&f.push(...a(g.children,c,d+1)))}return f}(a,h,0):[]}return n.flatNodes})(),[I,J]=(0,e.useState)(0),[K,L]=(0,e.useState)(0),M=(0,e.useCallback)(a=>{J(a.currentTarget.scrollTop)},[]),N=(0,e.useMemo)(()=>{let a=26*H.length,b=Math.max(0,Math.floor(I/26)-10),c=Math.min(H.length,Math.ceil((I+K)/26)+10),d=[];for(let a=b;a<c;a++)d.push({index:a,top:26*a});return{items:d,totalHeight:a,startIndex:b}},[H,I,K]),O=(0,e.useCallback)((a,c)=>{if(c)n.toggleExpand(a);else{let c=n.getNode(a);c&&b(a,c.name)}n.select(a),B(H.findIndex(b=>b.node.path===a))},[n,b,H]),P=(0,e.useCallback)(a=>{let c=n.getNode(a);c&&"file"===c.type&&b(a,c.name)},[n,b]),Q=(0,e.useCallback)((a,b)=>{a.preventDefault(),z({x:a.clientX,y:a.clientY,targetPath:b}),n.select(b),B(H.findIndex(a=>a.node.path===b))},[n,H]),R=(0,e.useMemo)(()=>{if(!y)return[];let b=n.getNode(y.targetPath);if(!b)return[];let d=[{label:"folder"===b.type?"Expand / Collapse":"Open",shortcut:"folder"===b.type?"→":"Enter",onClick:()=>O(b.path,"folder"===b.type)}];return c&&"file"===b.type&&b.name.toLowerCase().endsWith(".h5ad")&&d.push({label:"Explore H5AD",shortcut:"@explore",onClick:()=>c(b.path,b.name)}),g&&d.push({label:"Mention in Chat",shortcut:"@",onClick:()=>g((0,bu.qP)(b.path,a))}),d.push({label:"",onClick:()=>{},separator:!0}),d.push({label:"Rename",shortcut:"F2",onClick:()=>n.startRename(b.path)}),d.push({label:"Delete",shortcut:"Del",onClick:async()=>{if(!window.confirm(`Are you sure you want to delete "${b.name}"?`))return;let a=await o.deleteFile(b.path);a.success?(n.onFileDeleted(b.path),D(`Deleted "${b.name}"`)):a.error&&D(a.error)},danger:!0}),d.push({label:"",onClick:()=>{},separator:!0}),d.push({label:"Copy Path",onClick:()=>{navigator.clipboard.writeText(b.path).catch(()=>{}),D("Copied path")}}),d.push({label:"Copy Relative Path",onClick:()=>{let c=(0,bu.qP)(b.path,a);navigator.clipboard.writeText(c).catch(()=>{}),D("Copied relative path")}}),d.push({label:"Reveal in Finder",onClick:()=>o.revealInFinder(b.path)}),d},[y,n,o,O,g,c,a]),S=(0,e.useCallback)(async(a,b)=>{n.stopRename();let c=n.getNode(a);if(!c||b===c.name)return;let d=await o.renameFile(a,b);d.success&&d.resolvedPath?(n.onFileRenamed(a,d.resolvedPath,b),D(`Renamed to "${b}"`)):d.error&&D(d.error)},[n,o]),T=(0,e.useCallback)(async()=>{let b=[...n.selectedPaths].map(a=>n.getNode(a)).filter(Boolean),c=b.find(a=>"folder"===a.type)?.path??a,d="untitled.txt",e=await o.createFile(c,d);if(e.success&&e.resolvedPath){let b={id:e.resolvedPath,name:d,path:e.resolvedPath,relativePath:(0,bu.qP)(e.resolvedPath,a),type:"file",extension:"txt",depth:0,childrenLoaded:!0,isOptimistic:!0};n.onFileCreated(c,b),n.expandedPaths.has(c)||n.toggleExpand(c),setTimeout(()=>n.startRename(e.resolvedPath),50)}else e.error&&D(e.error)},[n,o,a]),U=(0,e.useCallback)(async()=>{let b=[...n.selectedPaths].map(a=>n.getNode(a)).filter(Boolean),c=b.find(a=>"folder"===a.type)?.path??a,d="new-folder",e=await o.createFolder(c,d);if(e.success&&e.resolvedPath){let b={id:e.resolvedPath,name:d,path:e.resolvedPath,relativePath:(0,bu.qP)(e.resolvedPath,a),type:"folder",extension:"",depth:0,children:[],childrenLoaded:!0,isOptimistic:!0};n.onFileCreated(c,b),n.expandedPaths.has(c)||n.toggleExpand(c),setTimeout(()=>n.startRename(e.resolvedPath),50)}else e.error&&D(e.error)},[n,o,a]),V=(0,e.useCallback)(a=>{let b=a.target;if("INPUT"!==b.tagName&&"TEXTAREA"!==b.tagName){if("ArrowDown"===a.key)a.preventDefault(),B(a=>Math.min(a+1,H.length-1));else if("ArrowUp"===a.key)a.preventDefault(),B(a=>Math.max(a-1,0));else if("ArrowRight"===a.key){a.preventDefault();let b=H[A]?.node;b?.type!=="folder"||n.expandedPaths.has(b.path)||(n.toggleExpand(b.path),n.select(b.path))}else if("ArrowLeft"===a.key){a.preventDefault();let b=H[A]?.node;b?.type==="folder"&&n.expandedPaths.has(b.path)&&n.toggleExpand(b.path)}else if("Enter"===a.key){a.preventDefault();let b=H[A]?.node;b&&O(b.path,"folder"===b.type)}else if("F2"===a.key){a.preventDefault();let b=H[A]?.node;b&&(n.select(b.path),n.startRename(b.path))}else if("Delete"===a.key||"Backspace"===a.key){a.preventDefault();let b=H[A]?.node;b&&window.confirm(`Delete "${b.name}"?`)&&o.deleteFile(b.path).then(a=>{a.success&&(n.onFileDeleted(b.path),D(`Deleted "${b.name}"`))})}}},[H,A,n,O,o]),W=(0,e.useCallback)(()=>{q.current&&clearTimeout(q.current),q.current=setTimeout(()=>x(null),5e3)},[]),X=(0,e.useCallback)((b,c)=>{if(0===b.length)return;r.current=0,t(!1),q.current&&clearTimeout(q.current);let d=b.reduce((a,b)=>a+b.size,0),e=bx(c,a);v(c),x({phase:"uploading",targetPath:c,fileCount:b.length,loaded:0,total:d,message:`Uploading ${b.length} file${1===b.length?"":"s"} to ${e}`});let f=new FormData;b.forEach(a=>f.append("files",a,a.name));let g=new XMLHttpRequest,h=(0,bu.HG)(c);g.open("POST",`/api/files/${h}?type=upload`),g.upload.onprogress=a=>{a.lengthComputable&&x(b=>b?{...b,loaded:a.loaded,total:a.total}:b)},g.onload=()=>{v(null);let a={};try{a=JSON.parse(g.responseText)}catch{a={}}if(g.status>=200&&g.status<300){let f=a.uploaded??[],g=a.failed??[],h=[...f.filter(a=>a.name!==a.originalName).slice(0,3).map(a=>`${a.originalName} saved as ${a.name}`),...g.slice(0,3).map(a=>`${a.name}: ${a.error}`)];x({phase:g.length>0?"warning":"success",targetPath:c,fileCount:b.length,loaded:d,total:d,message:g.length>0?`Uploaded ${f.length}, ${g.length} failed`:`Uploaded ${f.length} file${1===f.length?"":"s"} to ${e}`,details:h}),n.invalidateDir(c),n.expandedPaths.has(c)&&n.loadChildren(c),W()}else{let e=a.error??`Upload failed (HTTP ${g.status})`;x({phase:"error",targetPath:c,fileCount:b.length,loaded:0,total:d,message:e}),W()}},g.onerror=()=>{v(null),x({phase:"error",targetPath:c,fileCount:b.length,loaded:0,total:d,message:"Upload failed due to a network error"}),W()},g.onabort=()=>{v(null),x({phase:"error",targetPath:c,fileCount:b.length,loaded:0,total:d,message:"Upload canceled"}),W()},g.send(f)},[a,n,W]),Y=(0,e.useCallback)(a=>{by(a.dataTransfer)&&(a.preventDefault(),r.current+=1,t(!0))},[]),Z=(0,e.useCallback)(a=>{by(a.dataTransfer)&&(a.preventDefault(),a.dataTransfer.dropEffect="copy")},[]),$=(0,e.useCallback)(()=>{r.current-=1,r.current<=0&&(r.current=0,t(!1))},[]),_=(0,e.useCallback)(b=>{if(!by(b.dataTransfer))return;b.preventDefault(),r.current=0,t(!1);let c=bz(b.dataTransfer);c.length>0&&X(c,a)},[a,X]),aa=(0,e.useCallback)(a=>b=>{if(!by(b.dataTransfer))return;b.preventDefault(),b.stopPropagation();let c=bz(b.dataTransfer);c.length>0&&(X(c,a),n.expandedPaths.has(a)||n.toggleExpand(a))},[X,n]),ab=w&&w.total>0?Math.max(0,Math.min(100,Math.round(w.loaded/w.total*100))):w?.phase==="uploading"?8:100,ac=w?.phase==="success"?"#22c55e":w?.phase==="warning"?"#f59e0b":w?.phase==="error"?"#ef4444":"var(--accent)";return n.loadFailed?(0,d.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"Could not load files"}):(0,d.jsxs)("div",{onDragEnter:Y,onDragOver:Z,onDragLeave:$,onDrop:_,onKeyDown:V,tabIndex:0,style:{position:"relative",display:"flex",flexDirection:"column",height:"100%",outline:s?"1px solid rgba(37,99,235,0.45)":"none",outlineOffset:-1,background:s?"rgba(37,99,235,0.04)":void 0,transition:"background 0.12s, outline-color 0.12s"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:2,padding:"4px 6px",borderBottom:"1px solid var(--border)",flexShrink:0,minHeight:30},children:[(0,d.jsx)("button",{onClick:T,title:"New File",style:bB,children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,d.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,d.jsx)("line",{x1:"12",y1:"18",x2:"12",y2:"12"}),(0,d.jsx)("line",{x1:"9",y1:"15",x2:"15",y2:"15"})]})}),(0,d.jsx)("button",{onClick:U,title:"New Folder",style:bB,children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"}),(0,d.jsx)("line",{x1:"12",y1:"11",x2:"12",y2:"17"}),(0,d.jsx)("line",{x1:"9",y1:"14",x2:"15",y2:"14"})]})}),(0,d.jsx)("button",{onClick:()=>n.refresh(a),title:"Refresh",style:bB,children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("polyline",{points:"23 4 23 10 17 10"}),(0,d.jsx)("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"})]})}),(0,d.jsx)("button",{onClick:()=>{n.deselectAll()},title:"Collapse All",style:bB,children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("polyline",{points:"4 14 10 14 10 20"}),(0,d.jsx)("polyline",{points:"20 10 14 10 14 4"}),(0,d.jsx)("line",{x1:"14",y1:"10",x2:"21",y2:"3"}),(0,d.jsx)("line",{x1:"3",y1:"21",x2:"10",y2:"14"})]})}),(0,d.jsx)("div",{style:{flex:1}}),(0,d.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",paddingRight:4},children:[H.length," items"]})]}),C&&(0,d.jsx)("div",{style:{padding:"4px 10px",fontSize:11,color:"var(--text)",background:"var(--bg-selected)",borderBottom:"1px solid var(--border)"},children:C}),(0,d.jsxs)("div",{ref:p,onScroll:M,style:{flex:1,overflow:"auto",position:"relative"},children:[n.hasLoaded?0===H.length?(0,d.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:G?"No matching files":"No files found"}):(0,d.jsx)("div",{style:{height:N.totalHeight,position:"relative"},children:N.items.map(a=>{let{index:b,top:c}=a,{node:e,depth:f,isExpanded:g}=H[b],h=b===A;return(0,d.jsx)("div",{style:{position:"absolute",top:c,left:0,right:0,height:26,outline:h?"1px solid var(--accent)":"none",outlineOffset:-1,borderRadius:4},children:(0,d.jsx)(bs,{node:e,depth:f,isExpanded:g,isLoading:n.loadingPaths.has(e.path),isSelected:n.selectedPaths.has(e.path),isRenaming:n.renamingPath===e.path,isUploadTarget:u===e.path,onClick:O,onDoubleClick:P,onContextMenu:Q,onRenameSubmit:S,onRenameCancel:()=>n.stopRename(),onDrop:"folder"===e.type?aa(e.path):void 0})},e.id)})}):(0,d.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"Loading files..."}),s&&(0,d.jsx)("div",{style:{pointerEvents:"none",position:"absolute",inset:6,top:0,border:"1px dashed rgba(37,99,235,0.62)",borderRadius:8,background:"rgba(37,99,235,0.07)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:2},children:(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)",fontSize:12,boxShadow:"0 8px 24px rgba(0,0,0,0.16)"},children:[(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,d.jsx)("polyline",{points:"17 8 12 3 7 8"}),(0,d.jsx)("line",{x1:"12",y1:"3",x2:"12",y2:"15"})]}),"Drop to upload into ",bx(a,a)]})})]}),w&&(0,d.jsxs)("div",{style:{margin:"6px",padding:"7px 8px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",boxShadow:"0 8px 24px rgba(0,0,0,0.12)",flexShrink:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,minWidth:0},children:[(0,d.jsx)("span",{style:{width:8,height:8,borderRadius:999,background:ac,flexShrink:0}}),(0,d.jsx)("span",{title:w.message,style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:11,fontWeight:600},children:w.message}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,flexShrink:0},children:"uploading"===w.phase?`${ab}%`:function(a){if(!Number.isFinite(a)||a<=0)return"0 B";let b=["B","KB","MB","GB"],c=a,d=0;for(;c>=1024&&d<b.length-1;)c/=1024,d+=1;return`${c>=10||0===d?Math.round(c):c.toFixed(1)} ${b[d]}`}(w.total)})]}),(0,d.jsx)("div",{style:{marginTop:6,height:3,borderRadius:999,background:"var(--bg)",overflow:"hidden"},children:(0,d.jsx)("div",{style:{width:`${ab}%`,height:"100%",borderRadius:999,background:ac,transition:"width 0.15s ease"}})}),w.details&&w.details.length>0&&(0,d.jsx)("div",{style:{marginTop:5,display:"grid",gap:2},children:w.details.map(a=>(0,d.jsx)("div",{title:a,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10},children:a},a))})]}),y&&(0,d.jsx)(bt,{x:y.x,y:y.y,actions:R,onClose:()=>z(null)})]})}let bB={display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,border:"none",borderRadius:4,background:"transparent",color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"background 0.08s, color 0.08s"};function bC({cwd:a,refreshKey:b=0,onOpenFile:c,onExploreFile:f,onAtMention:g,watchEnabled:h=!0}){let[i,j]=(0,e.useState)("");return(0,d.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",background:"var(--bg)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:[(0,d.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8},children:(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)"},children:"Files"}),(0,d.jsx)("div",{title:a??"",style:{marginTop:1,fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},children:a??"No project selected"})]})}),(0,d.jsxs)("div",{style:{position:"relative",marginTop:7},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round",style:{position:"absolute",left:8,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none"},"aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"7",cy:"7",r:"4.4"}),(0,d.jsx)("path",{d:"M10.4 10.4 13.2 13.2"})]}),(0,d.jsx)("input",{value:i,onChange:a=>j(a.target.value),placeholder:"Filter files...",disabled:!a,style:{width:"100%",height:28,boxSizing:"border-box",padding:"0 28px 0 26px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none",opacity:a?1:.6}}),i&&(0,d.jsx)("button",{type:"button",onClick:()=>j(""),title:"Clear filter",style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",width:20,height:20,display:"flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:4,background:"transparent",color:"var(--text-dim)",cursor:"pointer",padding:0},children:(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("line",{x1:"2",y1:"2",x2:"8",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"2",y2:"8"})]})})]})]}),(0,d.jsx)("div",{style:{flex:1,minHeight:0,overflow:"hidden"},children:a?(0,d.jsx)(bA,{cwd:a,onOpenFile:c,onExploreFile:f,refreshKey:b,onAtMention:g,searchQuery:i,watchEnabled:h}):(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:18,textAlign:"center",color:"var(--text-dim)",fontSize:12},children:"Select a project to browse files."})})]})}var bD=c(32492),bE=c(2857);let bF={__soul__:{apiPath:"/api/soul",title:"SOUL.md"},__harness__:{apiPath:"/api/harness",title:"HARNESS.md"}};function bG({filePath:a}){let b=bF[a],{isDark:c}=(0,bE.D)(),[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)(!1),p=(0,e.useCallback)(async()=>{if(b){m(!0);try{await fetch(b.apiPath,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:f})}),o(!0),setTimeout(()=>o(!1),2e3)}catch(a){k(String(a))}finally{m(!1)}}},[b,f]);return b?h?(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:"Loading…"}):j?(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:j}):(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:600,color:"var(--text)"},children:b.title}),(0,d.jsx)("span",{style:{marginLeft:"auto",fontSize:10,color:"var(--text-dim)"},children:"Global"}),n&&(0,d.jsx)("span",{style:{color:"#4ade80",fontWeight:600,animation:"saved-pop 0.3s ease"},children:"✓ Saved"}),(0,d.jsx)("button",{onClick:p,disabled:l,title:"Save (Ctrl+S)",style:{padding:"2px 10px",fontSize:11,cursor:l?"not-allowed":"pointer",background:"var(--accent)",color:"#fff",border:"1px solid var(--accent)",borderRadius:5,fontWeight:600,opacity:l?.6:1},children:l?"Saving…":"Save"})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,d.jsx)(bD.g,{initialContent:f,language:"markdown",isDark:c,onChange:g,onSave:p})})]}):null}function bH({side:a,onResize:b,onResizeStart:c,onResizeEnd:f,ariaLabel:g}){let h=(0,e.useRef)(null),i=(0,e.useRef)(!1),j=(0,e.useRef)(0),[k,l]=(0,e.useState)(!1),m=(0,e.useCallback)(a=>{if(!i.current)return;i.current=!1,l(!1);let b=h.current;b&&void 0!==a&&b.hasPointerCapture(a)&&b.releasePointerCapture(a),document.body.style.cursor="",document.body.style.userSelect="",f?.()},[f]),n=(0,e.useCallback)(a=>{0===a.button&&a.isPrimary&&(a.preventDefault(),i.current=!0,j.current=a.clientX,l(!0),c?.(),a.currentTarget.setPointerCapture(a.pointerId),document.body.style.cursor="col-resize",document.body.style.userSelect="none")},[c]),o=(0,e.useCallback)(a=>{if(!i.current)return;a.preventDefault();let c=a.clientX-j.current;j.current=a.clientX,b(c)},[b]),p=(0,e.useCallback)(a=>{a.preventDefault(),m(a.pointerId)},[m]),q=(0,e.useCallback)(a=>{m(a.pointerId)},[m]);return(0,d.jsx)("div",{ref:h,role:"separator","aria-label":g??"Resize panel","aria-orientation":"vertical",className:`resize-handle${k?" resize-handle-dragging":""}`,"data-side":a,onPointerDown:n,onPointerMove:o,onPointerUp:p,onPointerCancel:q,style:{alignSelf:"stretch",cursor:"col-resize",display:"flex",flexShrink:0,justifyContent:"center",marginLeft:-5,marginRight:-5,position:"relative",touchAction:"none",width:10,zIndex:250},children:(0,d.jsx)("div",{className:"resize-handle-line"})})}function bI(a){return"running"===a?"#22c55e":"starting"===a?"rgba(234,179,8,0.95)":"error"===a?"#ef4444":"var(--text-dim)"}function bJ(a){return"h5adexp"===a?"H5AD Exp":"stexp"}function bK(a,b,c){return Math.min(Math.max(a,b),c)}function bL(a){if(!a||"object"!=typeof a||!("app"in a))return null;let b=a.app;return b&&"object"==typeof b&&"id"in b?b:null}function bM({appType:a,filePath:b,cwd:c,sessionId:f,appId:g,onClose:h,onAppChanged:i,onOpenTools:j}){var k;let[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(0),[v,w]=(0,e.useState)(()=>({left:34,top:34,width:Math.min(1280,Math.max(360,1212)),height:Math.min(880,Math.max(320,832)),maximized:!1})),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(!1),B=(0,e.useRef)(null),C=(0,e.useRef)(null),D=(0,e.useRef)(null),E=!!b||!!g,F=b?(0,bu.WP)(b):l?(0,bu.WP)(l.filePath):"",G=b&&c?(0,bu.qP)(b,c):l?.filePath&&l.cwd?(0,bu.qP)(l.filePath,l.cwd):b??l?.filePath??"",H=l?.status??"idle",I=(0,e.useMemo)(()=>l?.logs?.join("\n")??"",[l?.logs]),J=l?.appType==="h5adexp"?l.url:l?.directUrl??l?.url??"",K=(0,e.useCallback)(a=>{m(a),i?.(a)},[i]);(0,e.useCallback)(async a=>{let b=await fetch(`/api/apps?appId=${encodeURIComponent(a)}`),c=await b.json(),d=bL(c);if(!b.ok||!d)throw Error(c&&"object"==typeof c&&"error"in c?String(c.error):`HTTP ${b.status}`);return K(d),d},[K]);let L=(0,e.useCallback)(async()=>{if(b&&c&&!p){q(!0),o(null);try{let d=await fetch("/api/apps",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"start",appType:a,filePath:b,cwd:c,sessionId:f})}),e=await d.json(),g=bL(e);if(!d.ok||!g){let a=e&&"object"==typeof e&&"error"in e?String(e.error):`HTTP ${d.status}`;throw Error(a)}K(g),u(a=>a+1)}catch(a){o(a instanceof Error?a.message:String(a))}finally{q(!1)}}},[a,K,p,c,b,f]),M=(0,e.useCallback)(async()=>{if(l?.id&&!p){q(!0),o(null);try{let a=await fetch("/api/apps",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",appId:l.id})}),b=await a.json(),c=bL(b);if(!a.ok||!c){let c=b&&"object"==typeof b&&"error"in b?String(b.error):`HTTP ${a.status}`;throw Error(c)}K(c)}catch(a){o(a instanceof Error?a.message:String(a))}finally{q(!1)}}},[l,K,p]),N=(0,e.useCallback)(a=>{0!==a.button||v.maximized||(a.preventDefault(),a.currentTarget.setPointerCapture(a.pointerId),C.current={pointerId:a.pointerId,startX:a.clientX,startY:a.clientY,left:v.left,top:v.top},y(!0))},[v.left,v.maximized,v.top]),O=(0,e.useCallback)(a=>{let b=C.current;if(!b||b.pointerId!==a.pointerId)return;let c=b.left+a.clientX-b.startX,d=b.top+a.clientY-b.startY;w(a=>({...a,left:bK(c,8,Math.max(8,window.innerWidth-120)),top:bK(d,8,Math.max(8,window.innerHeight-48))}))},[]),P=(0,e.useCallback)(a=>{let b=C.current;b?.pointerId===a.pointerId&&(a.currentTarget.releasePointerCapture(a.pointerId),C.current=null,y(!1))},[]),Q=(0,e.useCallback)(a=>{0!==a.button||v.maximized||(a.preventDefault(),a.stopPropagation(),a.currentTarget.setPointerCapture(a.pointerId),D.current={pointerId:a.pointerId,startX:a.clientX,startY:a.clientY,width:v.width,height:v.height},A(!0))},[v.height,v.maximized,v.width]),R=(0,e.useCallback)(a=>{let b=D.current;if(!b||b.pointerId!==a.pointerId)return;let c=b.width+a.clientX-b.startX,d=b.height+a.clientY-b.startY;w(a=>({...a,width:bK(c,420,Math.max(420,window.innerWidth-a.left-8)),height:bK(d,340,Math.max(340,window.innerHeight-a.top-8))}))},[]),S=(0,e.useCallback)(a=>{let b=D.current;b?.pointerId===a.pointerId&&(a.currentTarget.releasePointerCapture(a.pointerId),D.current=null,A(!1))},[]),T=(0,e.useCallback)(()=>{j?.(),h()},[h,j]),U=(0,e.useCallback)(()=>{w(a=>({...a,maximized:!a.maximized}))},[]);if(!E)return null;let V=v.maximized?{position:"fixed",inset:12,zIndex:900}:{position:"fixed",left:v.left,top:v.top,width:v.width,height:v.height,zIndex:900};return(0,d.jsxs)("div",{ref:B,role:"dialog","aria-label":`${l?.title??bJ(a)} window`,tabIndex:-1,onKeyDown:a=>{"Escape"===a.key&&T()},style:{...V,display:"flex",flexDirection:"column",minWidth:v.maximized?void 0:420,minHeight:v.maximized?void 0:340,background:"var(--bg)",border:"1px solid rgba(37,99,235,0.5)",borderRadius:8,boxShadow:"0 18px 60px rgba(0,0,0,0.26)",overflow:"hidden",outline:"none"},children:[(0,d.jsxs)("div",{onPointerDown:N,onPointerMove:O,onPointerUp:P,onPointerCancel:P,style:{display:"flex",alignItems:"center",gap:8,padding:"8px 9px 8px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0,userSelect:"none",cursor:v.maximized?"default":x?"grabbing":"grab"},children:[(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:13,fontWeight:700,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l?.title??bJ(a)}),(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:bI(H),flexShrink:0}}),(0,d.jsx)("span",{style:{fontSize:11,color:bI(H),textTransform:"capitalize",flexShrink:0},children:H}),l?.pid&&(0,d.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0},children:["pid ",l.pid]}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0},children:(k=l?.rssBytes)&&Number.isFinite(k)?k<1048576?`${(k/1024).toFixed(0)}K`:k<0x40000000?`${(k/1024/1024).toFixed(1)}M`:`${(k/1024/1024/1024).toFixed(1)}G`:"-"})]}),(0,d.jsx)("div",{title:b??l?.filePath??"",style:{marginTop:2,fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},children:G||F})]}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:()=>u(a=>a+1),disabled:!J||l?.status==="stopped",style:bN,title:"Reload",children:"Reload"}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:()=>s(a=>!a),style:{...bN,background:r?"var(--bg-selected)":"var(--bg)",color:r?"var(--text)":"var(--text-muted)"},title:"Toggle logs",children:"Logs"}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:T,style:bN,title:"Show in Tools",children:"Tools"}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:()=>void M(),disabled:!l||"stopped"===l.status||p,style:{...bN,border:"1px solid rgba(239,68,68,0.35)",background:"rgba(239,68,68,0.08)",color:"#ef4444",opacity:!l||"stopped"===l.status||p?.55:1},title:"Stop process",children:"Stop"}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:T,"aria-label":"Minimize",title:"Minimize",style:bO,children:(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round","aria-hidden":"true",children:(0,d.jsx)("line",{x1:"4",y1:"11",x2:"12",y2:"11"})})}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:U,"aria-label":v.maximized?"Restore":"Maximize",title:v.maximized?"Restore":"Maximize",style:bO,children:v.maximized?(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M6 3.5h6.5V10"}),(0,d.jsx)("path",{d:"M3.5 6H10v6.5H3.5z"})]}):(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M4 4h8v8H4z"})})}),(0,d.jsx)("button",{type:"button",onPointerDown:a=>a.stopPropagation(),onClick:h,"aria-label":"Close window",title:"Close window",style:bO,children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("line",{x1:"4",y1:"4",x2:"12",y2:"12"}),(0,d.jsx)("line",{x1:"12",y1:"4",x2:"4",y2:"12"})]})})]}),(n||l?.error)&&(0,d.jsx)("div",{style:{padding:"8px 12px",borderBottom:"1px solid rgba(248,113,113,0.25)",background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:12},children:n??l?.error}),(0,d.jsxs)("div",{style:{flex:1,minHeight:0,display:"flex",background:"var(--bg)"},children:[(0,d.jsx)("div",{style:{flex:1,minWidth:0,position:"relative"},children:p&&!l?.url?(0,d.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:["Starting ",bJ(a),"..."]}):J&&l?.status!=="stopped"?(0,d.jsx)("iframe",{src:J,title:`${l?.title??bJ(a)} - ${F}`,style:{width:"100%",height:"100%",border:"none",display:"block",background:"#fff"}},`${J}:${t}`):(0,d.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:10,color:"var(--text-muted)",fontSize:13},children:[(0,d.jsxs)("div",{children:[bJ(a)," is stopped."]}),b&&c&&(0,d.jsx)("button",{type:"button",onClick:()=>void L(),disabled:p,style:{height:32,padding:"0 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:p?"not-allowed":"pointer",fontSize:12,fontWeight:650},children:"Start again"})]})}),r&&(0,d.jsxs)("div",{style:{width:360,borderLeft:"1px solid var(--border)",background:"var(--bg-panel)",display:"flex",flexDirection:"column",minHeight:0},children:[(0,d.jsx)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-muted)",fontWeight:650},children:"Process Logs"}),(0,d.jsx)("pre",{style:{flex:1,margin:0,padding:10,overflow:"auto",fontSize:11,lineHeight:1.45,color:"var(--text-muted)",fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap"},children:I||"No logs yet."})]})]}),!v.maximized&&(0,d.jsx)("div",{role:"separator","aria-orientation":"horizontal","aria-label":"Resize explore window",title:"Resize",onPointerDown:Q,onPointerMove:R,onPointerUp:S,onPointerCancel:S,style:{position:"absolute",right:0,bottom:0,width:18,height:18,cursor:"nwse-resize",background:"linear-gradient(135deg, transparent 0 48%, rgba(127,127,127,0.22) 48% 52%, transparent 52% 100%)"}})]})}let bN={height:30,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,flexShrink:0},bO={width:30,height:30,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,padding:0};function bP(a){return"running"===a?"#22c55e":"starting"===a?"rgba(234,179,8,0.95)":"error"===a?"#ef4444":"var(--text-dim)"}function bQ(a){return"waiting_model"===a?"rgba(234,179,8,0.95)":"running_tools"===a?"#38bdf8":"streaming"===a?"#22c55e":"compacting"===a?"#a78bfa":"var(--text-dim)"}function bR(a){return a&&Number.isFinite(a)?a<1048576?`${(a/1024).toFixed(0)}K`:a<0x40000000?`${(a/1024/1024).toFixed(1)}M`:`${(a/1024/1024/1024).toFixed(1)}G`:"-"}function bS(a){if(!a||!Number.isFinite(a))return"-";let b=Math.max(0,Math.floor(a/1e3)),c=Math.floor(b/3600),d=Math.floor(b%3600/60),e=b%60;return c>0?`${c}h ${d}m`:d>0?`${d}m ${e}s`:`${e}s`}function bT({refreshKey:a=0,visibleAppId:b,cwd:c,onOpenApp:f,onAppChanged:g,onAppsChanged:h,agentRuntimeExtra:i}){let[j,k]=(0,e.useState)([]),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)(null),D=(0,e.useMemo)(()=>[...j].sort((a,b)=>{let c=+!!a.running,d=+!!b.running;return c!==d?d-c:Date.parse(b.lastActivity)-Date.parse(a.lastActivity)}),[j]),E=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/apps",{cache:"no-store"}),b=await a.json();if(!a.ok||!Array.isArray(b.apps))throw Error(b.error??`HTTP ${a.status}`);k(b.apps),h?.(b.apps),q(null)}catch(a){q(a instanceof Error?a.message:String(a))}},[h]),F=(0,e.useCallback)(async()=>{try{let a=new URLSearchParams;c&&a.set("cwd",c);let b=await fetch(`/api/agent/runtime${a.toString()?`?${a}`:""}`,{cache:"no-store"}),d=await b.json();if(!b.ok||!Array.isArray(d.sessions))throw Error(d.error??`HTTP ${b.status}`);m(d),o(d.memory??null),s(null)}catch(a){s(a instanceof Error?a.message:String(a))}},[c]),G=(0,e.useCallback)(async a=>{y(a.id),q(null);try{let b=await fetch("/api/apps",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",appId:a.id})}),c=await b.json();if(!b.ok||!c.app)throw Error(c.error??`HTTP ${b.status}`);k(a=>a.map(a=>a.id===c.app.id?c.app:a)),g?.(c.app),await E()}catch(a){q(a instanceof Error?a.message:String(a))}finally{y(null)}},[E,g]),H=(0,e.useCallback)(async a=>{A(a.sessionId),s(null);try{let b=await fetch(`/api/agent/${encodeURIComponent(a.sessionId)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"abort"})}),c=await b.json().catch(()=>({}));if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);await F()}catch(a){s(a instanceof Error?a.message:String(a))}finally{A(null)}},[F]),I=(0,e.useCallback)(async(a,b)=>{if(c){w(`${a}:${b}`),u(null);try{let d=await fetch("/api/memory/promote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:c,memoryId:a,target:b})}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error??`HTTP ${d.status}`);await F()}catch(a){u(a instanceof Error?a.message:String(a))}finally{w(null)}}},[c,F]),J=(0,e.useCallback)(async a=>{if(c){w(`dismiss:${a}`),u(null);try{let b=await fetch("/api/memory/dismiss",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:c,memoryId:a})}),d=await b.json().catch(()=>({}));if(!b.ok)throw Error(d.error??`HTTP ${b.status}`);await F()}catch(a){u(a instanceof Error?a.message:String(a))}finally{w(null)}}},[c,F]),K=j.filter(a=>a.running).length,L=j.reduce((a,b)=>a+(b.running?b.rssBytes??0:0),0),M=l?.sessions??[],N=M.filter(a=>a.busy),O=N.filter(a=>"waiting_model"===a.phase);return(0,d.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",background:"var(--bg)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)"},children:"Status"}),(0,d.jsxs)("div",{style:{marginTop:3,fontSize:11,color:"var(--text-dim)"},children:[N.length," agent running \xb7 ",K," explore \xb7 ",bR(L)]})]}),(0,d.jsx)("button",{type:"button",onClick:()=>{E(),F()},style:bY,title:"Refresh status",children:"Refresh"})]}),p&&(0,d.jsx)("div",{style:{marginTop:8,padding:"7px 8px",border:"1px solid rgba(248,113,113,0.25)",borderRadius:6,background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:11},children:p}),r&&(0,d.jsx)("div",{style:{marginTop:8,padding:"7px 8px",border:"1px solid rgba(248,113,113,0.25)",borderRadius:6,background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:11},children:r}),t&&(0,d.jsx)("div",{style:{marginTop:8,padding:"7px 8px",border:"1px solid rgba(248,113,113,0.25)",borderRadius:6,background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:11},children:t})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"auto",padding:10},children:(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,d.jsxs)("section",{children:[(0,d.jsx)(bU,{title:"Agent Runtime",subtitle:O.length>0?`${O.length} waiting for model first token`:`${N.length} active chat${1===N.length?"":"s"}`}),i,0===M.length?(0,d.jsx)(bV,{label:"No agent runtime is active."}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:M.map(a=>{var b;let c=a.model?`${a.model.provider}/${a.model.id}`:"-",e=a.cwd?(0,bu.WP)(a.cwd)||a.cwd:"-",f=a.activeTools.map(a=>a.name).join(", ");return(0,d.jsxs)("div",{style:{border:`1px solid ${a.busy?"rgba(37,99,235,0.35)":"var(--border)"}`,borderRadius:8,background:a.busy?"var(--bg-selected)":"var(--bg-panel)",padding:10},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8},children:[(0,d.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:bQ(a.phase),marginTop:5,flexShrink:0}}),(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:12,fontWeight:700,color:bQ(a.phase),textTransform:"uppercase",flexShrink:0},children:"waiting_model"===(b=a.phase)?"waiting model":"running_tools"===b?"running tools":"streaming"===b?"streaming":"compacting"===b?"compacting":"idle"}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:c,children:c})]}),(0,d.jsxs)("div",{title:a.cwd??void 0,style:{marginTop:3,fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e," \xb7 ",a.sessionId.slice(0,8)]})]})]}),(0,d.jsxs)("div",{style:{marginTop:9,display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"5px 10px",fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)(bW,{label:"uptime",value:bS(a.uptimeMs)}),(0,d.jsx)(bW,{label:"wait",value:bS(a.waitingForModelMs),color:"waiting_model"===a.phase?bQ(a.phase):void 0}),(0,d.jsx)(bW,{label:"pending",value:null===a.pendingMessageCount?"-":String(a.pendingMessageCount)}),(0,d.jsx)(bW,{label:"event",value:a.lastEventType??"-"}),(0,d.jsx)(bW,{label:"tools",value:f||"-"}),(0,d.jsx)(bW,{label:"ops",value:a.operations.join(", ")||"-"})]}),"waiting_model"===a.phase&&(a.waitingForModelMs??0)>8e3&&(0,d.jsx)("div",{style:{marginTop:8,padding:"7px 8px",border:"1px solid rgba(234,179,8,0.25)",borderRadius:6,background:"rgba(234,179,8,0.08)",color:"rgba(234,179,8,0.95)",fontSize:11,lineHeight:1.45},children:"Waiting before the first model token. If another chat uses the same provider or gateway, the upstream may be queueing requests."}),a.errorMessage&&(0,d.jsx)("div",{style:{marginTop:8,padding:"7px 8px",border:"1px solid rgba(248,113,113,0.25)",borderRadius:6,background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:11,lineHeight:1.45},children:a.errorMessage}),(0,d.jsx)("div",{style:{marginTop:10,display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:(0,d.jsx)("button",{type:"button",onClick:()=>void H(a),disabled:!a.busy||z===a.sessionId,style:{...bY,border:"1px solid rgba(239,68,68,0.35)",color:"#ef4444",background:"rgba(239,68,68,0.08)",opacity:a.busy&&z!==a.sessionId?1:.55},children:"Abort"})})]},a.sessionId)})})]}),(0,d.jsxs)("section",{children:[(0,d.jsx)(bU,{title:"Memory",subtitle:n?`${n.count} stored \xb7 ${n.candidateCount} candidates`:c?"loading":"No project selected"}),c?n?(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",padding:10},children:[(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"5px 10px",fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)(bW,{label:"fact",value:String(n.byType.fact)}),(0,d.jsx)(bW,{label:"context",value:String(n.byType.context)}),(0,d.jsx)(bW,{label:"decision",value:String(n.byType.decision)}),(0,d.jsx)(bW,{label:"preference",value:String(n.byType.preference)}),(0,d.jsx)(bW,{label:"note",value:String(n.byType.note)}),(0,d.jsx)(bW,{label:"candidates",value:String(n.candidateCount),color:n.candidateCount>0?"var(--accent)":void 0})]}),(0,d.jsx)("div",{title:n.filePath,style:{marginTop:8,fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,bu.qP)(n.filePath,c)})]}),(0,d.jsx)(bX,{title:"Promotion Candidates",emptyLabel:"No promotion candidates yet.",items:n.topCandidates,onPromote:I,onDismiss:J,busyAction:v}),(0,d.jsx)(bX,{title:"Recent Memory",emptyLabel:"No memory stored for this project.",items:n.recent})]}):(0,d.jsx)(bV,{label:"Memory status unavailable."}):(0,d.jsx)(bV,{label:"Select a project to inspect memory status."})]}),(0,d.jsxs)("section",{children:[(0,d.jsx)(bU,{title:"Explore Tools",subtitle:`${K} running \xb7 ${bR(L)}`}),0===D.length?(0,d.jsx)(bV,{label:"No explore tools are running."}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:D.map(a=>{let e,g=b===a.id,h=B===a.id;return(0,d.jsxs)("div",{style:{border:`1px solid ${g?"rgba(37,99,235,0.5)":"var(--border)"}`,borderRadius:8,background:g?"var(--bg-selected)":"var(--bg-panel)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:10},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8},children:[(0,d.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:bP(a.status),marginTop:5,flexShrink:0}}),(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--text)",textTransform:"uppercase",flexShrink:0},children:a.appType}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.filePath,children:(0,bu.WP)(a.filePath)})]}),(0,d.jsx)("div",{title:a.filePath,style:{marginTop:3,fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(e=c&&a.filePath.startsWith(c)?c:a.cwd,(0,bu.qP)(a.filePath,e))})]})]}),(0,d.jsxs)("div",{style:{marginTop:9,display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"5px 10px",fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)(bW,{label:"status",value:a.status,color:bP(a.status)}),(0,d.jsx)(bW,{label:"pid",value:a.pid?String(a.pid):"-"}),(0,d.jsx)(bW,{label:"memory",value:bR(a.rssBytes)}),(0,d.jsx)(bW,{label:"uptime",value:bS(a.uptimeMs)}),(0,d.jsx)(bW,{label:"port",value:String(a.port)}),(0,d.jsx)(bW,{label:"session",value:a.sessionId?a.sessionId.slice(0,8):"-"})]}),(0,d.jsxs)("div",{style:{marginTop:10,display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[(0,d.jsx)("button",{type:"button",onClick:()=>f(a),style:bY,children:"Open"}),(0,d.jsx)("button",{type:"button",onClick:()=>C(b=>b===a.id?null:a.id),style:{...bY,background:h?"var(--bg-selected)":"var(--bg)"},children:"Logs"}),(0,d.jsx)("button",{type:"button",onClick:()=>void G(a),disabled:!a.running||x===a.id,style:{...bY,border:"1px solid rgba(239,68,68,0.35)",color:"#ef4444",background:"rgba(239,68,68,0.08)",opacity:a.running&&x!==a.id?1:.55},children:"Stop"})]})]}),h&&(0,d.jsx)("pre",{style:{maxHeight:220,overflow:"auto",margin:0,padding:10,borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:11,lineHeight:1.45,fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap"},children:a.logs.join("\n")||"No logs yet."})]},a.id)})})]})]})})]})}function bU({title:a,subtitle:b}){return(0,d.jsxs)("div",{style:{marginBottom:8,display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:10},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--text)"},children:a}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:b})]})}function bV({label:a}){return(0,d.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",padding:"18px 10px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:a})}function bW({label:a,value:b,color:c}){return(0,d.jsxs)("div",{style:{minWidth:0,display:"flex",alignItems:"center",gap:5},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0},children:a}),(0,d.jsx)("span",{style:{color:c??"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},children:b})]})}function bX({title:a,emptyLabel:b,items:c,onPromote:e,onDismiss:f,busyAction:g}){return(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",fontSize:12,fontWeight:700,color:"var(--text)"},children:a}),0===c.length?(0,d.jsx)("div",{style:{padding:"14px 10px",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:b}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:c.map((a,b)=>(0,d.jsxs)("div",{style:{padding:"9px 10px",borderTop:0===b?"none":"1px solid var(--border)",display:"flex",flexDirection:"column",gap:5},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:10,color:"project_memory"===a.candidate?"#f59e0b":"spark"===a.candidate?"var(--accent)":"var(--text-dim)",fontWeight:700,textTransform:"uppercase",flexShrink:0},children:"none"===a.candidate?a.memoryType:a.candidate}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",flexShrink:0},children:a.importance.toFixed(2)}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:new Date(a.timestamp).toLocaleString()})]}),(0,d.jsx)("div",{title:a.content,style:{fontSize:12,color:"var(--text)",lineHeight:1.45,display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:a.content}),(e||f)&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[e&&(0,d.jsx)("button",{type:"button",disabled:a.promotedTo.includes("memory")||g===`${a.id}:memory`,onClick:()=>void e(a.id,"memory"),style:{...bY,height:24,padding:"0 8px",opacity:a.promotedTo.includes("memory")||g===`${a.id}:memory`?.55:1},children:a.promotedTo.includes("memory")?"In MEMORY.md":g===`${a.id}:memory`?"Saving...":"To MEMORY.md"}),f&&(0,d.jsx)("button",{type:"button",disabled:g===`dismiss:${a.id}`||g===`${a.id}:memory`,onClick:()=>void f(a.id),style:{...bY,height:24,padding:"0 8px",opacity:g===`dismiss:${a.id}`||g===`${a.id}:memory`?.55:1,borderColor:"var(--text-dim)",color:"var(--text-dim)"},children:g===`dismiss:${a.id}`?"Dismissing…":"Ignore"})]})]},a.id))})]})}let bY={height:28,padding:"0 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:550};function bZ({tabs:a,activeTabId:b,onSelectTab:c,onCloseTab:f,onAskAI:g}){let[h,i]=(0,e.useState)(null);return(0,d.jsx)("div",{style:{display:"flex",alignItems:"flex-end",background:"var(--bg-panel)",overflowX:"auto",flexShrink:0,height:36},children:a.map(a=>{let e=a.id===b,j=!1!==a.closable;return(0,d.jsxs)("div",{onClick:()=>c(a.id),style:{display:"flex",alignItems:"center",gap:6,height:36,paddingLeft:12,paddingRight:6,borderRight:"1px solid var(--border)",background:e?"var(--bg)":"var(--bg-panel)",cursor:"pointer",fontSize:12,color:e?"var(--text)":"var(--text-muted)",whiteSpace:"nowrap",maxWidth:180,minWidth:80,flexShrink:0,userSelect:"none",transition:"background 0.1s, color 0.1s"},children:[(0,d.jsx)("span",{style:{flexShrink:0,opacity:e?1:.7,display:"flex",alignItems:"center"},children:"files"===a.icon?(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M3 7.5V6a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v1.5"}),(0,d.jsx)("path",{d:"M3 7.5h18l-1.6 9.6A2 2 0 0 1 17.4 19H6.6a2 2 0 0 1-2-1.9z"})]}):"report"===a.icon?(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,d.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,d.jsx)("line",{x1:"8",y1:"13",x2:"16",y2:"13"}),(0,d.jsx)("line",{x1:"8",y1:"17",x2:"13",y2:"17"})]}):"tools"===a.icon?(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.1-3.1a6 6 0 0 1-7.9 7.9l-5.7 5.7a2.1 2.1 0 0 1-3-3l5.7-5.7a6 6 0 0 1 7.9-7.9z"})}):br(a.filePath??a.label,13)}),(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:e?500:400},title:a.filePath??a.label,children:a.label}),j&&(0,d.jsxs)(d.Fragment,{children:[e&&g&&a.filePath&&!a.icon&&(0,d.jsx)("button",{onClick:b=>{b.stopPropagation(),g(a.filePath)},title:`Ask AI about ${a.label}`,style:{display:"flex",alignItems:"center",justifyContent:"center",width:16,height:16,background:"transparent",border:"none",borderRadius:3,color:"var(--accent)",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.1s"},children:(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M15 18H3"}),(0,d.jsx)("path",{d:"M17 6H3"}),(0,d.jsx)("path",{d:"M21 12H3"})]})}),(0,d.jsx)("button",{onClick:b=>{b.stopPropagation(),f(a.id)},onMouseEnter:()=>i(a.id),onMouseLeave:()=>i(null),style:{display:"flex",alignItems:"center",justifyContent:"center",width:16,height:16,background:h===a.id?"var(--bg-hover)":"transparent",border:"none",borderRadius:3,color:h===a.id?"var(--text)":"var(--text-dim)",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.1s, color 0.1s"},title:"Close",children:(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"2",y1:"2",x2:"8",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"2",y2:"8"})]})})]})]},a.id)})})}function b$(a){let b=a,c=0;for(;1===b.children.length;)b=b.children[0],c++;return{node:b,skipped:c}}function b_({node:a,activePathIds:b,depth:c,isLast:e,parentLines:f,onSelect:g}){let{node:h,skipped:i}=b$(a),j=b.has(h.entry.id),k=b.has(a.entry.id)||b.has(h.entry.id),l=function(a){if("message"===a.type&&"message"in a){let b=a.message,c=b.content,d="";if("string"==typeof c?d=c:Array.isArray(c)&&(d=c.filter(a=>"text"===a.type).map(a=>a.text).join(" ")),d.length>40&&(d=d.slice(0,40)+"…"),d)return d;if("assistant"===b.role)return"[assistant]"}return a.type}(h.entry),m="message"===h.entry.type&&"message"in h.entry?h.entry.message.role:null;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",height:24,cursor:"pointer"},onClick:()=>g(h.entry.id),children:[f.map((a,b)=>(0,d.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:a&&(0,d.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},b)),(0,d.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,d.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:e?"50%":0,width:1,background:"var(--border)"}}),(0,d.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,d.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:j?"var(--accent)":k?"var(--text-muted)":"var(--border)",border:j?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background 0.12s"}}),m&&(0,d.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===m?"var(--accent)":"var(--text-dim)",background:"user"===m?"rgba(37,99,235,0.08)":"var(--bg-hover)",border:`1px solid ${"user"===m?"rgba(37,99,235,0.2)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:"user"===m?"U":"A"}),i>0&&(0,d.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",i]}),(0,d.jsx)("span",{style:{fontSize:11,color:j?"var(--text)":k?"var(--text-muted)":"var(--text-dim)",fontWeight:j?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:l})]}),h.children.map((a,i)=>(0,d.jsx)(b_,{node:a,activePathIds:b,depth:c+1,isLast:i===h.children.length-1,parentLines:[...f,!e],onSelect:g},a.entry.id))]})}function b0({tree:a,activeLeafId:b,onLeafChange:c,inline:f,containerRef:g,open:h,onToggle:i,hasSession:j,embedded:k}){let[l,m]=(0,e.useState)(!1),n=void 0!==h?h:l,o=(0,e.useRef)(null),[p,q]=(0,e.useState)(null),r=(0,e.useMemo)(()=>b?new Set(function a(c,d){for(let e of c){let c=[...d,e.entry.id];if(e.entry.id===b)return c;let f=a(e.children,c);if(f)return f}return null}(a,[])??[]):new Set,[a,b]),s=(0,e.useCallback)(a=>{c(a)},[c]),t=j?!function a(b){for(let c of b)if(c.children.length>1||a(c.children))return!0;return!1}(a)?"This session has no branches":null:"No active session",u=a.length>0?b$(a[0]):null,v=u?.node??null,w=!t&&v&&v.children.length>1,x=(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:w?"var(--accent)":"var(--text-dim)",flexShrink:0},children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),y=(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:2,transform:n?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})});return k?(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"8px 10px",borderBottom:w?"1px solid var(--border)":"none"},children:[x,(0,d.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--text)"},children:"Branches"})]}),w&&v?(0,d.jsx)("div",{style:{padding:"4px 10px 8px",maxHeight:260,overflowY:"auto"},children:v.children.map((a,b)=>(0,d.jsx)(b_,{node:a,activePathIds:r,depth:0,isLast:b===v.children.length-1,parentLines:[],onSelect:s},a.entry.id))}):(0,d.jsx)("div",{style:{padding:"0 10px 10px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:t??"This session has no branches"})]}):f?(0,d.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,d.jsxs)("button",{ref:o,className:"topbar-branches-button",onClick:()=>i?i():m(a=>!a),title:"Branches","aria-label":"Branches",style:{display:"flex",alignItems:"center",gap:6,height:28,padding:"0 9px",background:n?"var(--bg-selected)":"var(--bg-panel)",border:`1px solid ${n?"rgba(37,99,235,0.45)":"var(--border)"}`,borderRadius:7,cursor:"pointer",color:n?"var(--text)":"var(--text-muted)",fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, border-color 0.1s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color=n?"var(--text)":"var(--text-muted)",a.currentTarget.style.background=n?"var(--bg-selected)":"var(--bg-panel)"},children:[(0,d.jsx)("span",{className:"topbar-branches-icon",children:x}),(0,d.jsx)("span",{className:"topbar-branches-label",children:"Branches"})]}),n&&p&&(0,d.jsx)("div",{style:{position:"fixed",top:p.top,left:p.left,width:p.width,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",zIndex:500},children:w&&v?(0,d.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:v.children.map((a,b)=>(0,d.jsx)(b_,{node:a,activePathIds:r,depth:0,isLast:b===v.children.length-1,parentLines:[],onSelect:s},a.entry.id))}):(0,d.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:t})})]}):(0,d.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,d.jsxs)("button",{onClick:()=>m(a=>!a),style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"5px 12px",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",fontSize:11,textAlign:"left"},children:[x,(0,d.jsx)("span",{style:{color:"var(--text-muted)"},children:"Branches"}),y]}),n&&(0,d.jsx)("div",{style:{position:"absolute",top:"100%",left:0,right:0,background:"var(--bg)",borderBottom:"1px solid var(--border)",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",zIndex:100},children:w&&v?(0,d.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:v.children.map((a,b)=>(0,d.jsx)(b_,{node:a,activePathIds:r,depth:0,isLast:b===v.children.length-1,parentLines:[],onSelect:s},a.entry.id))}):(0,d.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:t??"This session has no branches"})})]})}function b1(a,b="0 0 24 24"){let c=({size:c=24,style:e})=>(0,d.jsx)("svg",{width:c,height:c,viewBox:b,fill:"none",style:e,children:a});return c.displayName="ProviderIcon",c}let b2=b1((0,d.jsx)("path",{d:"M17.5 3H6.5L3 21h4l1.2-6h7.6l1.2 6h4L17.5 3zm-2.3 9H8.8L12 5.5 15.2 12z",fill:"currentColor"})),b3=b1((0,d.jsx)("path",{d:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"})),b4=b1((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 01-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z",fill:"#4285F4"}),(0,d.jsx)("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),(0,d.jsx)("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),(0,d.jsx)("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]})),b5=b1((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#4D6BFE"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"10",fontWeight:"bold",fontFamily:"sans-serif",children:"DS"})]})),b6=b1((0,d.jsx)("path",{d:"M4 4h16v16H4z",fill:"#F55036"}),"0 0 24 24"),b7=b1((0,d.jsx)("path",{d:"M4 4h5v5H4zm5.5 0h5v5h-5zM15 4h5v5h-5zM4 9.5h5v5H4zm5.5 5.5h5v5h-5zM15 9.5h5v5h-5z",fill:"#FA6F00"})),b8=b1((0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5",fill:"none"}),"0 0 24 24"),b9=b1((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#00D4AA"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"9",fontWeight:"bold",fontFamily:"sans-serif",children:"MM"})]})),ca=b1((0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",fill:"#FF5722"}),"0 0 24 24"),cb=b1((0,d.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 5h2v3h-2V7zm0 4h2v2h-2v-2zm3 5H7v-2h7v2z",fill:"#FFD21E"})),cc=b1((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#E84026"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"9",fontWeight:"bold",fontFamily:"sans-serif",children:"CB"})]})),cd=b1((0,d.jsx)("path",{d:"M12 2l9 5v10l-9 5-9-5V7l9-5z",stroke:"currentColor",strokeWidth:"1.5",fill:"none"})),ce=b1((0,d.jsx)("path",{d:"M4 4l8 8 8-8M4 20l8-8 8 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})),cf=b1((0,d.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 5l4 3-4 3V7z",fill:"#F38020"})),cg=b1((0,d.jsx)("path",{d:"M12 2L22 20H2L12 2z",fill:"currentColor"})),ch=b1((0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5",fill:"none"}),"0 0 24 24"),ci=b1((0,d.jsx)("path",{d:"M3 15h2l1-3h2l1 3h2V9H9v3L8 9H6l-1 3V9H3v6zm9 0h2v-2h2v-2h-2V9h-2v2h-2v2h2v2z",fill:"#FF9900"})),cj=b1((0,d.jsx)("path",{d:"M12 2L3 18h5l4-6 4 6h5L12 2z",fill:"#0078D4"})),ck=b1((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#6C5CE7"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"10",fontWeight:"bold",fontFamily:"sans-serif",children:"Ki"})]})),cl=b1((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#615CED"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"9",fontWeight:"bold",fontFamily:"sans-serif",children:"QW"})]})),cm=b1((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"3",fill:"#3859FF"}),(0,d.jsx)("text",{x:"12",y:"16",textAnchor:"middle",fill:"white",fontSize:"9",fontWeight:"bold",fontFamily:"sans-serif",children:"ZP"})]})),cn=b1((0,d.jsx)("path",{d:"M4 8h16v2H4zm0 4h12v2H4zm0 4h8v2H4z",fill:"#3059B1"})),co=b1((0,d.jsx)("path",{d:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5",stroke:"#1DB954",strokeWidth:"1.5",fill:"none",strokeLinejoin:"round"})),cp=b1((0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",fill:"#0F6CBD"}),"0 0 24 24"),cq=b1((0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5",fill:"none"}),"0 0 24 24"),cr="openai-completions",cs={off:"none",xhigh:"xhigh"},ct={thinkingFormat:"deepseek",requiresReasoningContentOnAssistantMessages:!0};function cu(a){return a?.toLowerCase().replace(/\s+/g,"-")??""}function cv(a){return/(^|[^a-z0-9])gpt-5($|[.-])/.test(cu(a))}function cw(a){return/[.-](minimal|low|medium|high|xhigh)$/.test(cu(a))}function cx(a){return cv(a.id)||cv(a.name)}function cy(a,b=cr){if(!cx(a))return a;let c=a.api??("openai-responses"===b?void 0:"openai-responses");if(cx(a)&&(cw(a.id)||cw(a.name))){let b={...a};return delete b.reasoning,delete b.thinkingLevelMap,{...b,api:c}}return{...a,api:c,reasoning:a.reasoning??!0,thinkingLevelMap:a.thinkingLevelMap??cs}}let cz={anthropic:{Icon:b2,hasColor:!1},openai:{Icon:b3,hasColor:!1},"openai-codex":{Icon:b3,hasColor:!1},google:{Icon:b4,hasColor:!0},"google-vertex":{Icon:b4,hasColor:!0},deepseek:{Icon:b5,hasColor:!0},groq:{Icon:b6,hasColor:!1},mistral:{Icon:b7,hasColor:!0},moonshotai:{Icon:b8,hasColor:!1},"moonshotai-cn":{Icon:b8,hasColor:!1},moonshot:{Icon:b8,hasColor:!1},minimax:{Icon:b9,hasColor:!0},"minimax-cn":{Icon:b9,hasColor:!0},fireworks:{Icon:ca,hasColor:!0},huggingface:{Icon:cb,hasColor:!0},cerebras:{Icon:cc,hasColor:!0},openrouter:{Icon:cd,hasColor:!1},xai:{Icon:ce,hasColor:!1},"cloudflare-ai-gateway":{Icon:cf,hasColor:!0},"cloudflare-workers-ai":{Icon:cf,hasColor:!0},"vercel-ai-gateway":{Icon:cg,hasColor:!1},"github-copilot":{Icon:ch,hasColor:!1},"amazon-bedrock":{Icon:ci,hasColor:!0},"azure-openai-responses":{Icon:cj,hasColor:!0},"kimi-coding":{Icon:ck,hasColor:!0},qwen:{Icon:cl,hasColor:!0},zai:{Icon:cm,hasColor:!0},cohere:{Icon:cn,hasColor:!0},perplexity:{Icon:co,hasColor:!0},together:{Icon:cp,hasColor:!0},grok:{Icon:cq,hasColor:!1}},cA=["openai-completions","openai-responses","anthropic-messages","google-generative-ai"];function cB({label:a,children:b}){return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,d.jsx)("label",{style:{fontSize:11,color:"var(--text-muted)",fontWeight:500},children:a}),b]})}let cC={padding:"6px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",width:"100%",boxSizing:"border-box"};function cD({value:a,onChange:b,placeholder:c,mono:e}){return(0,d.jsx)("input",{value:a,onChange:a=>b(a.target.value),placeholder:c,style:{...cC,fontFamily:e?"var(--font-mono)":"inherit"}})}function cE({value:a,onChange:b,placeholder:c,mono:f,onKeyDown:g,autoComplete:h="off",spellCheck:i=!1,style:j}){let[k,l]=(0,e.useState)(!1);return(0,d.jsxs)("div",{style:{position:"relative",width:"100%",...j},children:[(0,d.jsx)("input",{type:k?"text":"password",value:a,onChange:a=>b(a.target.value),onKeyDown:g,placeholder:c,style:{...cC,paddingRight:34,fontFamily:f?"var(--font-mono)":"inherit"},autoComplete:h,spellCheck:i}),(0,d.jsx)("button",{type:"button",onClick:()=>l(a=>!a),"aria-label":k?"Hide API key":"Show API key",title:k?"Hide API key":"Show API key",style:{position:"absolute",right:5,top:"50%",transform:"translateY(-50%)",width:24,height:24,padding:0,border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:k?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M17.94 17.94A10.94 10.94 0 0 1 12 20C7 20 2.73 16.89 1 12a18.45 18.45 0 0 1 5.06-6.94"}),(0,d.jsx)("path",{d:"M9.9 4.24A10.94 10.94 0 0 1 12 4c5 0 9.27 3.11 11 8a18.5 18.5 0 0 1-2.16 3.19"}),(0,d.jsx)("path",{d:"M14.12 14.12A3 3 0 0 1 9.88 9.88"}),(0,d.jsx)("path",{d:"M1 1l22 22"})]}):(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]})}function cF({value:a,onChange:b,placeholder:c}){return(0,d.jsx)("input",{type:"number",value:a,onChange:a=>b(a.target.value),placeholder:c,style:cC})}function cG({value:a,onChange:b,options:c,required:e}){return(0,d.jsxs)("select",{value:a,onChange:a=>b(a.target.value),style:{...cC,color:a?"var(--text)":"var(--text-dim)"},children:[!e&&(0,d.jsx)("option",{value:"",children:"— inherit / none —"}),c.map(a=>(0,d.jsx)("option",{value:a,children:a},a))]})}function cH({label:a,checked:b,onChange:c}){return(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:12,color:"var(--text-muted)"},children:[(0,d.jsx)("input",{type:"checkbox",checked:b,onChange:a=>c(a.target.checked),style:{width:13,height:13,accentColor:"var(--accent)",cursor:"pointer"}}),a]})}function cI({children:a}){return(0,d.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:2},children:a})}function cJ({name:a,provider:b,onChange:c,onRename:f,onDelete:g}){let[h,i]=(0,e.useState)(a),j=(a,d)=>c({...b,[a]:d});return(0,d.jsxs)("div",{className:"models-config-provider-detail",style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsx)(cI,{children:"Provider"}),(0,d.jsx)("button",{onClick:g,style:{padding:"3px 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11},children:"Delete"})]}),(0,d.jsxs)(cB,{label:"Provider name",children:[(0,d.jsx)(cD,{value:h,onChange:i,placeholder:"provider-name",mono:!0}),h!==a&&h.trim()&&(0,d.jsx)("button",{onClick:()=>f(h.trim()),style:{marginTop:4,padding:"3px 10px",background:"var(--accent)",border:"none",borderRadius:4,color:"#fff",cursor:"pointer",fontSize:11,alignSelf:"flex-start"},children:"Rename"})]}),(0,d.jsx)(cB,{label:"Base URL",children:(0,d.jsx)(cD,{value:b.baseUrl??"",onChange:a=>j("baseUrl",a||void 0),placeholder:"https://api.example.com/v1",mono:!0})}),(0,d.jsxs)(cB,{label:"API Key",children:[(0,d.jsx)(cE,{value:b.apiKey??"",onChange:a=>j("apiKey",a||void 0),placeholder:"ENV_VAR_NAME, !shell-command, or literal key",mono:!0}),(0,d.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:["Prefix with ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:"!"})," to run a shell command, or use an env var name"]})]}),(0,d.jsx)(cB,{label:"API",children:(0,d.jsx)(cG,{value:b.api??"openai-completions",onChange:a=>j("api",a),options:cA,required:!0})})]})}let cK=["off","minimal","low","medium","high","xhigh"],cL={off:"var(--text-dim)",minimal:"#6b7280",low:"#60a5fa",medium:"#a78bfa",high:"#f472b6",xhigh:"#fb923c"};function cM({value:a,onChange:b}){let c=a??{},e=(a,d)=>{let e={...c};"omit"===d?delete e[a]:e[a]=d,b(Object.keys(e).length?e:void 0)};return(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:cK.map(a=>{let b=c[a],f=a in c?null===b?"null":"string":"omit",g="string"==typeof b?b:"",h=cL[a],i={padding:"4px 10px",fontSize:10,border:"none",cursor:"pointer",fontWeight:400,transition:"background 0.1s, color 0.1s",whiteSpace:"nowrap",background:"var(--bg-panel)",color:"var(--text-dim)"},j={background:"var(--accent)",color:"#fff",fontWeight:600};return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 4px",borderRadius:6,background:"transparent",border:"1px solid transparent"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,width:68,flexShrink:0},children:[(0,d.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:h,flexShrink:0,opacity:"null"===f?.3:1}}),(0,d.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"null"===f?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===f?"line-through":"none"},children:a})]}),(0,d.jsxs)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,d.jsx)("button",{onClick:()=>e(a,"omit"),style:{...i,..."omit"===f?j:{}},children:"Default"}),(0,d.jsx)("button",{onClick:()=>e(a,null),style:{...i,borderLeft:"1px solid var(--border)",..."null"===f?{background:"#ef4444",color:"#fff",fontWeight:600}:{}},children:"Disabled"})]}),(0,d.jsxs)("div",{style:{display:"flex",borderRadius:5,border:`1px solid ${"string"===f?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color 0.1s"},children:[(0,d.jsx)("button",{onClick:()=>e(a,g||a),style:{...i,..."string"===f?j:{},borderRight:"1px solid var(--border)",flexShrink:0},children:"Custom"}),(0,d.jsx)("input",{value:g,onChange:b=>e(a,b.target.value),onFocus:()=>{"string"!==f&&e(a,g||a)},placeholder:a,maxLength:10,style:{width:"12ch",background:"string"===f?"var(--bg)":"var(--bg-panel)",border:"none",outline:"none",color:"string"===f?"var(--text)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,padding:"4px 7px",transition:"background 0.1s, color 0.1s"}})]})]},a)})})}function cN({providerName:a,provider:b,model:c,onChange:f,onDelete:g}){let[h,i]=(0,e.useState)({phase:"idle"}),j=(a,b)=>f({...c,[a]:b}),k=a=>{f(cy(a,b.api??cr))},l=(()=>{if("idle"===h.phase)return null;if("testing"===h.phase)return"Testing model connection...";let a=[void 0!==h.latencyMs?`${h.latencyMs}ms`:null,void 0!==h.status?`HTTP ${h.status}`:null].filter(Boolean);return"success"===h.phase?["Connected",...a,h.responseText||null].filter(Boolean).join(" \xb7 "):["Failed",...a,h.message].filter(Boolean).join(" \xb7 ")})(),m=(0,e.useCallback)(async()=>{if(c.id.trim()&&"testing"!==h.phase){i({phase:"testing"});try{let d=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:a,provider:b,model:c})}),e=await d.json();if(!d.ok||!e.ok)return void i({phase:"error",message:e.error??`HTTP ${d.status}`,latencyMs:e.latencyMs,status:e.status});i({phase:"success",latencyMs:e.latencyMs,status:e.status,responseText:e.responseText})}catch(a){i({phase:"error",message:a instanceof Error?a.message:String(a)})}}},[c,b,a,h.phase]);return(0,d.jsxs)("div",{className:"models-config-model-detail",style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsx)(cI,{children:"Model"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[l&&(0,d.jsx)("span",{title:l,style:{maxWidth:260,height:24,padding:"0 8px",border:`1px solid ${"error"===h.phase?"#fecaca":"success"===h.phase?"#bbf7d0":"var(--border)"}`,borderRadius:4,background:"error"===h.phase?"#fee2e2":"success"===h.phase?"#dcfce7":"#e5e7eb",color:"#111827",fontSize:11,display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxSizing:"border-box"},children:l}),(0,d.jsxs)("button",{onClick:m,disabled:!c.id.trim()||"testing"===h.phase,title:"Test model connection",style:{height:24,padding:"0 8px",background:"success"===h.phase?"#16a34a":"none",border:`1px solid ${"success"===h.phase?"#16a34a":"var(--border)"}`,borderRadius:4,color:"success"===h.phase?"#fff":c.id.trim()&&"testing"!==h.phase?"var(--text-muted)":"var(--text-dim)",cursor:c.id.trim()&&"testing"!==h.phase?"pointer":"not-allowed",fontSize:11,display:"inline-flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box",gap:5},children:["success"===h.phase&&(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),"testing"===h.phase?"Testing…":"success"===h.phase?"OK":"Test"]}),(0,d.jsx)("button",{onClick:g,style:{height:24,padding:"0 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11,boxSizing:"border-box"},children:"Remove"})]})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,d.jsx)(cB,{label:"ID *",children:(0,d.jsx)(cD,{value:c.id,onChange:a=>k({...c,id:a}),placeholder:"model-id",mono:!0})}),(0,d.jsx)(cB,{label:"Name",children:(0,d.jsx)(cD,{value:c.name??"",onChange:a=>k({...c,name:a||void 0}),placeholder:"Display name"})})]}),(0,d.jsx)(cB,{label:"API override",children:(0,d.jsx)(cG,{value:c.api??"",onChange:a=>j("api",a||void 0),options:cA})}),(0,d.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap"},children:[(0,d.jsx)(cH,{label:"Reasoning / thinking",checked:c.reasoning??!1,onChange:a=>j("reasoning",a||void 0)}),(0,d.jsx)(cH,{label:"Image input",checked:c.input?.includes("image")??!1,onChange:a=>j("input",a?["text","image"]:["text"])})]}),c.reasoning&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(cH,{label:"DeepSeek thinking compat",checked:c.compat?.thinkingFormat==="deepseek",onChange:a=>f(function(a,b){if(b)return{...a,compat:{...a.compat??{},...ct}};if(!a.compat)return a;let c={...a.compat};return delete c.thinkingFormat,delete c.requiresReasoningContentOnAssistantMessages,{...a,compat:Object.keys(c).length?c:void 0}}(c,a))}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,d.jsx)(cI,{children:"Thinking level map"}),c.thinkingLevelMap&&(0,d.jsx)("button",{onClick:()=>j("thinkingLevelMap",void 0),style:{fontSize:10,padding:"2px 7px",background:"none",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-dim)",cursor:"pointer"},children:"clear all"})]}),(0,d.jsx)(cM,{value:c.thinkingLevelMap,onChange:a=>j("thinkingLevelMap",a)})]})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,d.jsx)(cB,{label:"Context window (tokens)",children:(0,d.jsx)(cF,{value:void 0!==c.contextWindow?String(c.contextWindow):"",onChange:a=>j("contextWindow",a?parseInt(a):void 0),placeholder:"128000"})}),(0,d.jsx)(cB,{label:"Max output tokens",children:(0,d.jsx)(cF,{value:void 0!==c.maxTokens?String(c.maxTokens):"",onChange:a=>j("maxTokens",a?parseInt(a):void 0),placeholder:"16384"})})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)(cI,{children:"Cost (per million tokens)"}),(0,d.jsx)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gap:8},children:["input","output","cacheRead","cacheWrite"].map(a=>(0,d.jsx)(cB,{label:a,children:(0,d.jsx)(cF,{value:c.cost?.[a]!==void 0?String(c.cost[a]):"",onChange:b=>{let d;return d=parseFloat(b),void f({...c,cost:{...c.cost??{},[a]:isNaN(d)?void 0:d}})},placeholder:"0"})},a))})]})]})}function cO({provider:a,onRefresh:b}){let[c,f]=(0,e.useState)({phase:"idle"}),[g,h]=(0,e.useState)(""),i=(0,e.useRef)(null),j=(0,e.useRef)(null),k=(0,e.useCallback)(()=>{i.current?.close(),f({phase:"connecting"}),h("");let c=new EventSource(`/api/auth/login/${encodeURIComponent(a.id)}`);i.current=c,c.onmessage=a=>{let d=JSON.parse(a.data);"auth"===d.type?(f({phase:"auth",url:d.url,instructions:d.instructions??null,token:d.token}),window.open(d.url,"_blank","noopener,noreferrer")):"device_code"===d.type?(f({phase:"device_code",userCode:d.userCode,verificationUri:d.verificationUri,intervalSeconds:d.intervalSeconds??null,expiresInSeconds:d.expiresInSeconds??null}),window.open(d.verificationUri,"_blank","noopener,noreferrer")):"prompt_request"===d.type?f({phase:"prompt",message:d.message,placeholder:d.placeholder??null,token:d.token}):"select_request"===d.type?f({phase:"select",message:d.message,options:d.options??[],token:d.token}):"progress"===d.type?f({phase:"progress",message:d.message}):"success"===d.type?(c.close(),f({phase:"success"}),b()):"error"===d.type?(c.close(),f({phase:"error",message:d.message})):"cancelled"===d.type&&(c.close(),f({phase:"idle"}))},c.onerror=()=>{c.close(),f(a=>"success"===a.phase?a:{phase:"error",message:"Connection lost"})}},[a.id,b]),l=(0,e.useCallback)(async()=>{await fetch(`/api/auth/logout/${encodeURIComponent(a.id)}`,{method:"POST"}),f({phase:"idle"}),b()},[a.id,b]),m=(0,e.useCallback)(async(b,c)=>{if(c.trim()){f({phase:"progress",message:"Verifying…"});try{let d=await fetch(`/api/auth/login/${encodeURIComponent(a.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:b,code:c.trim()})});if(!d.ok){let a=await d.json().catch(()=>({}));f({phase:"error",message:a.error??`Server error ${d.status}`});return}h("")}catch(a){f({phase:"error",message:a instanceof Error?a.message:"Network error"})}}},[a.id]),n=(0,e.useCallback)(async(b,c)=>{f({phase:"progress",message:"Continuing…"});try{let d=await fetch(`/api/auth/login/${encodeURIComponent(a.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:b,code:c})});if(!d.ok){let a=await d.json().catch(()=>({}));f({phase:"error",message:a.error??`Server error ${d.status}`})}}catch(a){f({phase:"error",message:a instanceof Error?a.message:"Network error"})}},[a.id]),o="connecting"===c.phase||"progress"===c.phase||"auth"===c.phase||"device_code"===c.phase||"prompt"===c.phase||"select"===c.phase;return(0,d.jsxs)("div",{className:"models-config-subscription-detail",style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsx)(cI,{children:"Subscription"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:a.loggedIn?"#4ade80":"var(--border)",display:"inline-block"}}),(0,d.jsx)("span",{style:{fontSize:11,color:a.loggedIn?"#4ade80":"var(--text-dim)"},children:a.loggedIn?"connected":"not connected"})]})]}),(0,d.jsxs)("div",{style:{minHeight:48},children:["idle"===c.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:a.loggedIn?"Already connected. You can re-login or disconnect.":`Connect your ${a.name} account.`}),"connecting"===c.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:"Opening browser…"}),"select"===c.phase&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:c.message}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:c.options.map(a=>(0,d.jsx)("button",{onClick:()=>n(c.token,a.id),style:{padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left"},children:a.label},a.id))})]}),("auth"===c.phase||"prompt"===c.phase)&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"auth"===c.phase?"Complete sign-in in the browser, then copy the redirect URL from the address bar and paste it below.":c.message}),"auth"===c.phase&&(0,d.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:["If the browser window did not open,"," ",(0,d.jsx)("a",{href:c.url,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:"click here to open the login page"}),"."]}),(0,d.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,d.jsx)("input",{ref:j,value:g,onChange:a=>h(a.target.value),onKeyDown:a=>{"Enter"===a.key&&m(c.token,g)},placeholder:"auth"===c.phase?"http://localhost:1455/auth/callback?code=…":c.placeholder??"Enter value…",style:{flex:1,padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",fontFamily:"var(--font-mono)",boxSizing:"border-box"}}),(0,d.jsx)("button",{onClick:()=>m(c.token,g),disabled:!g.trim(),style:{padding:"6px 12px",background:g.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:g.trim()?"#fff":"var(--text-dim)",cursor:g.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,flexShrink:0},children:"Submit"})]})]}),"device_code"===c.phase&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"Open the verification page and enter this code:"}),(0,d.jsx)("div",{style:{padding:"8px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:16,fontWeight:700,fontFamily:"var(--font-mono)",letterSpacing:0},children:c.userCode}),(0,d.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,d.jsx)("a",{href:c.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:c.verificationUri}),c.expiresInSeconds?` Expires in ${Math.ceil(c.expiresInSeconds/60)} minutes.`:""]})]}),"progress"===c.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:c.message}),"success"===c.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"#4ade80"},children:"Connected successfully."}),"error"===c.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:c.message})]}),(0,d.jsx)("div",{style:{display:"flex",gap:8},children:o?(0,d.jsx)("button",{onClick:()=>{i.current?.close(),f({phase:"idle"})},style:{padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:"Cancel"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:k,style:{padding:"5px 14px",background:"var(--accent)",border:"none",borderRadius:5,color:"#fff",cursor:"pointer",fontSize:12,fontWeight:600},children:a.loggedIn?"Re-login":"Login"}),a.loggedIn&&(0,d.jsx)("button",{onClick:l,style:{padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",cursor:"pointer",fontSize:12},children:"Disconnect"})]})})]})}function cP({provider:a,onRefresh:b}){let[c,f]=(0,e.useState)(""),[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(!1),o=(0,e.useCallback)(async()=>{if(c.trim()){h(!0),l(null),n(!1);try{let d=await fetch(`/api/auth/api-key/${encodeURIComponent(a.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:c.trim()})}),e=await d.json();!d.ok||e.error?l(e.error??`HTTP ${d.status}`):(f(""),n(!0),setTimeout(()=>n(!1),2e3),b())}catch(a){l(String(a))}finally{h(!1)}}},[c,a.id,b]),p=(0,e.useCallback)(async()=>{j(!0),l(null);try{let c=await fetch(`/api/auth/api-key/${encodeURIComponent(a.id)}`,{method:"DELETE"}),d=await c.json();!c.ok||d.error?l(d.error??`HTTP ${c.status}`):b()}catch(a){l(String(a))}finally{j(!1)}},[a.id,b]);return(0,d.jsxs)("div",{className:"models-config-apikey-detail",style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsx)(cI,{children:"API Key"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:a.configured?"#4ade80":"var(--border)",display:"inline-block"}}),(0,d.jsx)("span",{style:{fontSize:11,color:a.configured?"#4ade80":"var(--text-dim)"},children:a.configured?"configured":"not configured"})]})]}),(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:a.configured?"API key is stored. Enter a new key below to replace it, or disconnect to remove it.":`Enter your ${a.displayName} API key to enable ${a.modelCount} model${1!==a.modelCount?"s":""}.`}),(0,d.jsx)(cB,{label:"API Key",children:(0,d.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,d.jsx)(cE,{value:c,onChange:f,onKeyDown:a=>{"Enter"===a.key&&c.trim()&&o()},placeholder:a.configured?"Enter new key to replace…":"sk-…",style:{flex:1},autoComplete:"off",spellCheck:!1,mono:!0}),(0,d.jsxs)("button",{onClick:o,disabled:g||!c.trim()||m,style:{padding:"6px 12px",background:m?"#16a34a":c.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:c.trim()||m?"#fff":"var(--text-dim)",cursor:g||!c.trim()||m?"not-allowed":"pointer",fontSize:12,fontWeight:600,flexShrink:0,display:"flex",alignItems:"center",gap:5},children:[m&&(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),m?"Saved":g?"Saving…":"Save"]})]})}),k&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:k}),a.configured&&(0,d.jsx)("button",{onClick:p,disabled:i,style:{alignSelf:"flex-start",padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",cursor:i?"not-allowed":"pointer",fontSize:12},children:i?"Removing…":"Disconnect"})]})}function cQ({id:a,size:b}){let c=cz[a];return c?c.hasColor?(0,d.jsx)(c.Icon,{size:b}):(0,d.jsx)(c.Icon,{size:b,style:{color:"var(--text-muted)"}}):null}function cR({oauthProviders:a,apiKeyProviders:b,onSelectOAuth:c,onSelectApiKey:f,onAddCustom:g,onDiscover:h,onClose:i}){let[j,k]=(0,e.useState)(""),l=(0,e.useRef)(null),m=j.trim().toLowerCase(),n=a.filter(a=>!a.loggedIn&&(!m||a.name.toLowerCase().includes(m))),o=b.filter(a=>!a.configured&&(!m||a.displayName.toLowerCase().includes(m)||a.id.toLowerCase().includes(m))),p=!m||"custom".includes(m)||"openai-compatible".includes(m)||"anthropic-compatible".includes(m),q=!m||"discover".includes(m)||"base url".includes(m)||"model import".includes(m),r=n.length+o.length+ +!!p+ +!!q,s={display:"flex",flexDirection:"row",alignItems:"center",gap:8,padding:"10px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,boxSizing:"border-box",cursor:"pointer",minWidth:0,textAlign:"left",transition:"border-color 0.12s, background 0.12s",width:"100%"};return(0,d.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:a=>{a.target===a.currentTarget&&i()},children:(0,d.jsxs)("div",{style:{width:820,maxWidth:"calc(100vw - 32px)",maxHeight:"min(72vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.22)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:"10px 14px",borderBottom:"1px solid var(--border)",flexShrink:0,display:"flex",alignItems:"center",gap:8},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)",flexShrink:0},children:[(0,d.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,d.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,d.jsx)("input",{ref:l,value:j,onChange:a=>k(a.target.value),onKeyDown:a=>{"Escape"===a.key&&i()},placeholder:"Search providers…",style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box"}})]}),(0,d.jsx)("div",{style:{flex:1,overflowY:"auto",padding:14},children:0===r?(0,d.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:"No providers match"}):(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:8},children:[p&&(0,d.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"Custom"}),p&&(0,d.jsxs)("button",{onClick:()=>{g(),i()},style:s,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"OpenAI / Anthropic compatible"}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"Custom endpoint format"})]}),(0,d.jsx)("span",{style:{width:26,height:26,borderRadius:5,background:"var(--bg-hover)",border:"1px dashed var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)"},children:[(0,d.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,d.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})})]}),q&&(0,d.jsxs)("button",{onClick:()=>{h(),i()},style:s,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"Discover models from Base URL"}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OpenAI-compatible / Ollama catalog"})]}),(0,d.jsx)("span",{style:{width:26,height:26,borderRadius:5,background:"var(--bg-hover)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-muted)"},children:[(0,d.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,d.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]})})]}),n.length>0&&(0,d.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!p,fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"Subscriptions"}),n.map(a=>(0,d.jsxs)("button",{onClick:()=>{c(a.id),i()},style:s,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OAuth"})]}),(0,d.jsx)(cQ,{id:a.id,size:28})]},a.id)),o.length>0&&(0,d.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(n.length>0),fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"API Key"}),o.map(a=>(0,d.jsxs)("button",{onClick:()=>{f(a.id),i()},style:s,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.displayName}),(0,d.jsxs)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:[a.modelCount," models"]})]}),(0,d.jsx)(cQ,{id:a.id,size:28})]},a.id))]})})]})})}function cS({existingProviders:a,onImport:b,onClose:c}){let[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)("custom-provider"),[l,m]=(0,e.useState)(new Set),[n,o]=(0,e.useState)({phase:"idle"}),p=(0,e.useCallback)(async()=>{let a=f.trim();if(a&&"loading"!==n.phase){o({phase:"loading"});try{let b=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:a,apiKey:h,provider:j,enrich:!1})}),c=await b.json();if(!b.ok||!c.ok||!c.models||!c.piModels||!c.endpoint)return void o({phase:"error",message:c.error??`HTTP ${b.status}`});o({phase:"success",endpoint:c.endpoint,models:c.models,piModels:c.piModels}),m(new Set(c.piModels.map(a=>a.id)))}catch(a){o({phase:"error",message:a instanceof Error?a.message:String(a)})}}},[h,f,j,n.phase]),q="success"===n.phase?n:null,r=l.size,s=!!(q&&j.trim()&&r>0);return(0,d.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:a=>{a.target===a.currentTarget&&c()},children:(0,d.jsxs)("div",{style:{width:880,maxWidth:"calc(100vw - 32px)",height:"min(78vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.22)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:"Discover models"}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginTop:2},children:"Fetch model catalog from a Base URL and import selected models."})]}),(0,d.jsx)("button",{onClick:c,style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,d.jsxs)("div",{style:{padding:16,borderBottom:"1px solid var(--border)",display:"grid",gridTemplateColumns:"1.4fr 1fr 0.9fr auto",gap:10,alignItems:"end",flexShrink:0},children:[(0,d.jsx)(cB,{label:"Base URL",children:(0,d.jsx)(cD,{value:f,onChange:g,placeholder:"https://api.example.com",mono:!0})}),(0,d.jsx)(cB,{label:"API Key",children:(0,d.jsx)(cE,{value:h,onChange:i,placeholder:"optional for local providers",mono:!0})}),(0,d.jsx)(cB,{label:"Provider name",children:(0,d.jsx)(cD,{value:j,onChange:k,placeholder:"provider-name",mono:!0})}),(0,d.jsx)("button",{onClick:p,disabled:!f.trim()||"loading"===n.phase,style:{height:31,padding:"0 14px",background:f.trim()&&"loading"!==n.phase?"var(--accent)":"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:f.trim()&&"loading"!==n.phase?"#fff":"var(--text-dim)",cursor:f.trim()&&"loading"!==n.phase?"pointer":"not-allowed",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:"loading"===n.phase?"Fetching...":"Fetch models"})]}),(0,d.jsxs)("div",{style:{flex:1,overflow:"hidden",display:"flex",flexDirection:"column"},children:["idle"===n.phase&&(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:"Enter a Base URL to discover available models."}),"loading"===n.phase&&(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:"Fetching model catalog..."}),"error"===n.phase&&(0,d.jsx)("div",{style:{padding:18,color:"#f87171",fontSize:12,lineHeight:1.6},children:n.message}),q&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 16px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,d.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[q.piModels.length," models from ",q.endpoint]}),(0,d.jsx)("button",{onClick:()=>{if(q){if(l.size===q.piModels.length)return void m(new Set);m(new Set(q.piModels.map(a=>a.id)))}},style:{padding:"2px 8px",fontSize:11,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer"},children:l.size===q.piModels.length?"Clear":"Select all"})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"auto"},children:q.piModels.map((a,b)=>{let c=q.models[b],e=l.has(a.id);return(0,d.jsxs)("label",{style:{display:"grid",gridTemplateColumns:"24px minmax(0, 1fr) 90px 90px 90px 70px",gap:10,alignItems:"center",padding:"8px 16px",borderBottom:"1px solid rgba(127,127,127,0.12)",background:e?"var(--bg-subtle)":"transparent",cursor:"pointer"},children:[(0,d.jsx)("input",{type:"checkbox",checked:e,onChange:()=>{var b;return b=a.id,void m(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},style:{width:14,height:14,accentColor:"var(--accent)"}}),(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.id}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c?.ownedBy??"unknown"})]}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:a.contextWindow}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:a.maxTokens}),(0,d.jsx)("span",{style:{fontSize:10,color:a.reasoning?"var(--accent)":"var(--text-dim)"},children:a.reasoning?"reasoning":""}),(0,d.jsx)("span",{style:{fontSize:10,color:a.input?.includes("image")?"var(--accent)":"var(--text-dim)"},children:a.input?.includes("image")?"image":""})]},a.id)})})]})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,padding:"10px 16px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,d.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:[r," selected"]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,d.jsx)("button",{onClick:c,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{if(!q||!s)return;let d=f.trim().replace(/\/+$/,""),e=h.trim(),g=Object.entries(a).find(([,a])=>(a.baseUrl??"").replace(/\/+$/,"")===d&&(a.apiKey??"")===e),i=g?.[0]??j.trim(),k=a[i],m=new Map((k?.models??[]).map(a=>[a.id,a])),n=k?.api??cr,o=0;for(let a of q.piModels)l.has(a.id)&&!m.has(a.id)&&(m.set(a.id,cy(a,n)),o+=1);b(i,{...k??{},baseUrl:d,api:n,...e?{apiKey:e}:{},models:Array.from(m.values())},o),c()},disabled:!s,style:{padding:"6px 16px",background:s?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:6,color:s?"#fff":"var(--text-dim)",cursor:s?"pointer":"not-allowed",fontSize:13,fontWeight:600},children:"Import selected"})]})]})]})})}function cT({onClose:a,embedded:b=!1}){let[c,f]=(0,e.useState)({providers:{}}),[g,h]=(0,e.useState)(!0),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)([]),[u,v]=(0,e.useState)([]),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(!1),A=(0,e.useCallback)(()=>{fetch("/api/auth/providers").then(a=>a.json()).then(a=>t(a.providers)).catch(()=>{})},[]),B=(0,e.useCallback)(()=>{fetch("/api/auth/all-providers").then(a=>a.json()).then(a=>v(a.providers)).catch(()=>{})},[]),C=(0,e.useCallback)(()=>{let a="new-provider",b=1;for(;c.providers?.[a];)a=`new-provider-${b++}`;f(b=>({...b,providers:{...b.providers??{},[a]:{api:"openai-completions"}}})),r({type:"provider",name:a})},[c.providers]),D=(0,e.useCallback)((a,b)=>{f(c=>({...c,providers:{...c.providers??{},[a]:b}}))},[]),E=(0,e.useCallback)((a,b)=>{f(c=>{let d=Object.entries(c.providers??{}),e=d.findIndex(([b])=>b===a);return -1===e?c:(d[e]=[b,d[e][1]],{...c,providers:Object.fromEntries(d)})}),r(c=>c?"provider"===c.type&&c.name===a?{type:"provider",name:b}:"model"===c.type&&c.providerName===a?{...c,providerName:b}:c:c)},[]),F=(0,e.useCallback)(a=>{f(b=>{let c={...b.providers??{}};return delete c[a],{...b,providers:c}}),f(a=>{let b=Object.keys(a.providers??{});return r(b.length>0?{type:"provider",name:b[0]}:null),a})},[]),G=(0,e.useCallback)(a=>{f(b=>{let c=b.providers?.[a]??{},d=[...c.models??[],{id:""}];return{...b,providers:{...b.providers??{},[a]:{...c,models:d}}}}),f(b=>{let c=(b.providers?.[a]?.models?.length??1)-1;return r({type:"model",providerName:a,index:c}),b})},[]),H=(0,e.useCallback)((a,b,c)=>{f(d=>{let e=d.providers?.[a]??{},f=[...e.models??[]];return f[b]=c,{...d,providers:{...d.providers??{},[a]:{...e,models:f}}}})},[]),I=(0,e.useCallback)((a,b)=>{f(c=>{let d=c.providers?.[a]??{},e=[...d.models??[]];return e.splice(b,1),{...c,providers:{...c.providers??{},[a]:{...d,models:e.length?e:void 0}}}}),r({type:"provider",name:a})},[]),J=(0,e.useCallback)((a,b,c)=>{f(c=>({...c,providers:{...c.providers??{},[a]:b}})),r({type:"provider",name:a}),p(!1),l(null),n(`${c} model${1===c?"":"s"} imported. Click Save to write models.json.`)},[]),K=(0,e.useCallback)(async()=>{j(!0),l(null),n(null),p(!1);try{let a=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)}),b=await a.json();!a.ok||b.error?l(b.error??`HTTP ${a.status}`):(p(!0),setTimeout(()=>p(!1),2e3))}catch(a){l(String(a))}finally{j(!1)}},[c]),L=Object.entries(c.providers??{}),M=s.filter(a=>a.loggedIn),N=u.filter(a=>a.configured),O=(()=>{if(!q)return null;if("oauth"===q.type){let a=s.find(a=>a.id===q.providerId);return a?(0,d.jsx)(cO,{provider:a,onRefresh:A},a.id):null}if("apikey"===q.type){let a=u.find(a=>a.id===q.providerId);return a?(0,d.jsx)(cP,{provider:a,onRefresh:B},a.id):null}if("provider"===q.type){let a=c.providers?.[q.name];return a?(0,d.jsx)(cJ,{name:q.name,provider:a,onChange:a=>D(q.name,a),onRename:a=>E(q.name,a),onDelete:()=>F(q.name)},q.name):null}let a=c.providers?.[q.providerName],b=a?.models?.[q.index];return b?(0,d.jsx)(cN,{providerName:q.providerName,provider:a,model:b,onChange:a=>H(q.providerName,q.index,a),onDelete:()=>I(q.providerName,q.index)},`${q.providerName}-${q.index}`):null})();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"models-config-root",style:b?{height:"100%",minHeight:0,display:"flex",alignItems:"stretch",justifyContent:"stretch"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:c=>{b||c.target!==c.currentTarget||a()},children:(0,d.jsxs)("div",{className:"models-config-shell",style:{width:b?"100%":860,height:b?"100%":"78vh",background:"var(--bg)",border:b?"none":"1px solid var(--border)",borderRadius:10*!b,display:"flex",flexDirection:"column",boxShadow:b?"none":"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!b&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,d.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:"Models"}),(0,d.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:"~/.pi/agent/models.json"})]}),(0,d.jsx)("button",{onClick:a,style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,d.jsxs)("div",{className:"models-config-body",style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,d.jsxs)("div",{className:"models-config-tree",style:{width:210,borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:[M.map(a=>{let b=q?.type==="oauth"&&q.providerId===a.id;return(0,d.jsxs)("div",{onClick:()=>r({type:"oauth",providerId:a.id}),style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:b?"var(--bg-selected)":"none"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="none")},children:[(0,d.jsx)(cQ,{id:a.id,size:16}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name})]},a.id)}),N.map(a=>{let b=q?.type==="apikey"&&q.providerId===a.id;return(0,d.jsxs)("div",{onClick:()=>r({type:"apikey",providerId:a.id}),style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:b?"var(--bg-selected)":"none"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="none")},children:[(0,d.jsx)(cQ,{id:a.id,size:16}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.displayName})]},a.id)}),(M.length>0||N.length>0)&&L.length>0&&(0,d.jsx)("div",{style:{margin:"4px 8px",borderTop:"1px solid var(--border)"}}),g?(0,d.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:"Loading…"}):L.map(([a,b])=>{let c=q?.type==="provider"&&q.name===a,e=b.models??[];return(0,d.jsxs)("div",{style:{marginBottom:2},children:[(0,d.jsxs)("div",{onClick:()=>r({type:"provider",name:a}),style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:c?"var(--bg-selected)":"none"},onMouseEnter:a=>{c||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{c||(a.currentTarget.style.background="none")},children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)",flexShrink:0},children:[(0,d.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,d.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,d.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,d.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,d.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,d.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,d.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,d.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,d.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,d.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),(0,d.jsx)("span",{style:{fontSize:12,fontWeight:c?600:400,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a})]}),e.map((b,c)=>{let e=q?.type==="model"&&q.providerName===a&&q.index===c;return(0,d.jsxs)("div",{onClick:()=>r({type:"model",providerName:a,index:c}),style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 26px",borderRadius:5,cursor:"pointer",background:e?"var(--bg-selected)":"none"},onMouseEnter:a=>{e||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{e||(a.currentTarget.style.background="none")},children:[(0,d.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:b.id?"var(--text-muted)":"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:b.id||"new model"}),b.reasoning&&(0,d.jsx)("span",{style:{fontSize:9,padding:"1px 4px",background:"rgba(99,102,241,0.12)",color:"rgba(99,102,241,0.8)",borderRadius:3,flexShrink:0},children:"T"})]},c)}),(0,d.jsx)("div",{onClick:b=>{b.stopPropagation(),G(a)},style:{display:"flex",alignItems:"center",gap:4,padding:"4px 8px 4px 26px",borderRadius:5,cursor:"pointer",color:"var(--text-dim)"},onMouseEnter:a=>{a.currentTarget.style.color="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)",a.currentTarget.style.background="none"},children:(0,d.jsx)("span",{style:{fontSize:11},children:"+ model"})})]},a)})]}),(0,d.jsx)("div",{style:{borderTop:"1px solid var(--border)",padding:"8px 6px"},children:(0,d.jsx)("button",{onClick:()=>x(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,width:"100%",padding:"6px 0",background:"none",border:"1px dashed var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.color="var(--accent)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.color="var(--text-muted)"},children:"+ Add provider"})})]}),(0,d.jsx)("div",{className:"models-config-detail",style:{flex:1,overflowY:"auto",padding:20},children:g?null:O??(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:"Select a provider or model"})})]}),(0,d.jsxs)("div",{className:"models-config-footer",style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:10,padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[k?(0,d.jsx)("span",{style:{fontSize:12,color:"#f87171",flex:1},children:k}):m?(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",flex:1},children:m}):null,(0,d.jsx)("button",{onClick:a,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:"Cancel"}),(0,d.jsxs)("button",{onClick:K,disabled:i||o,style:{position:"relative",padding:"6px 16px",minWidth:92,background:o?"#16a34a":i?"var(--bg-panel)":"var(--accent)",border:"none",borderRadius:6,color:o?"#fff":i?"var(--text-muted)":"#fff",cursor:i||o?"default":"pointer",fontSize:13,fontWeight:600,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,transition:"background-color 0.2s ease, color 0.2s ease",animation:o?"saved-pop 0.45s ease":void 0},children:[o&&(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",style:{strokeDasharray:18,animation:"saved-check-draw 0.35s ease forwards",flexShrink:0},children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,d.jsx)("span",{children:o?"Saved":i?"Saving…":"Save"})]})]})]})}),w&&(0,d.jsx)(cR,{oauthProviders:s,apiKeyProviders:u,onSelectOAuth:a=>r({type:"oauth",providerId:a}),onSelectApiKey:a=>r({type:"apikey",providerId:a}),onAddCustom:C,onDiscover:()=>z(!0),onClose:()=>x(!1)}),y&&(0,d.jsx)(cS,{existingProviders:c.providers??{},onImport:J,onClose:()=>z(!1)})]})}function cU(a){return`${a.scope}\0${a.package}`}function cV(a){return a.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function cW(a){let b=a.sourceInfo?.source,c=a.sourceInfo?.scope;return"user"===c||"user"===b?"global":"project"===c||"project"===b?"project":"path"}function cX({enabled:a,loading:b,onToggle:c}){return(0,d.jsx)("button",{onClick:c,disabled:b,title:a?"Visible in model prompt — click to disable":"Hidden from model prompt — click to enable",style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:b?"wait":"pointer",background:a?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",outline:"none"},children:(0,d.jsx)("span",{style:{position:"absolute",top:3,left:a?21:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function cY({skill:a,cwd:b,onToggle:c,toggling:e,saveError:f,update:g,updating:h,updateError:i,onUpdate:j}){let k=cW(a),l=!a.disableModelInvocation;return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7},children:[(0,d.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===k?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===k?"rgba(99,102,241,0.8)":"var(--text-dim)"},children:k}),(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:function(a){if("project"===k&&a.startsWith(b)){let c=a.slice(b.length).replace(/^[/\\]/,"");return`./${c}`}return cV(a)}(a.filePath)}),(0,d.jsx)(cX,{enabled:l,loading:e,onToggle:()=>c(a)}),f&&(0,d.jsx)("span",{style:{fontSize:12,color:"#f87171",flexShrink:0},children:f})]}),a.install&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",fontSize:12,color:"var(--text-dim)"},children:[(0,d.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:[a.install.source,a.install.ref?`#${a.install.ref}`:""]}),(0,d.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(120,120,120,0.12)"},children:a.install.scope}),g?.state==="update-available"&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{style:{color:"#d97706",fontWeight:600},children:"↑ Update available"}),(0,d.jsx)("button",{onClick:j,disabled:h,style:{padding:"3px 10px",fontSize:12,borderRadius:5,border:"1px solid var(--border)",background:"rgba(217,119,6,0.12)",color:"#b45309",cursor:h?"wait":"pointer"},children:h?"Updating…":"Update"})]}),g?.state==="up-to-date"&&(0,d.jsx)("span",{style:{color:"#16a34a"},children:"✓ Up to date"}),(g?.state==="unknown"||g?.state==="error")&&(0,d.jsxs)("span",{title:g.message,style:{color:"error"===g.state?"#f87171":"var(--text-dim)",maxWidth:420,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["error"===g.state?"Check failed":"Not comparable",g.message?` — ${g.message}`:""]}),!g&&!a.install.canCheckForUpdates&&(0,d.jsx)("span",{children:"Update check unavailable for this entry"}),i&&(0,d.jsx)("span",{style:{color:"#f87171",maxWidth:520,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:11},children:i})]}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:"Name"}),(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:14,color:"var(--text)"},children:a.name})]}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:"Description"}),(0,d.jsx)("span",{style:{fontSize:14,color:"var(--text-muted)",lineHeight:1.6},children:a.description})]})]})}function cZ({cwd:a,onInstalled:b}){let[c,f]=(0,e.useState)(""),[g,h]=(0,e.useState)([]),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)([]),[u,v]=(0,e.useState)(new Set),[w,x]=(0,e.useState)("global"),y=(0,e.useRef)(null),z=(0,e.useRef)(null),A=(0,e.useCallback)(async a=>{if(a.trim()){j(!0),l(null),h([]);try{let b=await fetch("/api/skills/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:a.trim()})}),c=await b.json();if(c.error)return void l(c.error);h(c.results??[]),0===(c.results??[]).length&&l("No skills found")}catch(a){l(String(a))}finally{j(!1)}}},[]),B=(0,e.useCallback)(async c=>{let d=new AbortController;z.current=d,n(c),p(null),r("Starting installer"),t(["Starting installer"]);try{let e=await fetch("/api/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({package:c,scope:w,cwd:a,stream:!0}),signal:d.signal});if(!e.ok||!e.body){let a=await e.json().catch(()=>null);p(a?.error??`HTTP ${e.status}`);return}let f=e.body.getReader(),g=new TextDecoder,h="",i=!1,j=a=>{"progress"===a.type?(a.stage&&r(a.stage),a.line&&t(b=>(b.at(-1)===a.line?b:[...b,a.line]).slice(-8))):"done"===a.type&&a.success?(i=!0,r("Installed"),t(a=>[...a,"Installed"].slice(-8))):"error"===a.type&&p(a.error??"Install failed")};for(;;){let{value:a,done:b}=await f.read(),c=(h+=g.decode(a??new Uint8Array,{stream:!b})).split("\n");for(let a of(h=c.pop()??"",c))a.trim()&&j(JSON.parse(a));if(b)break}h.trim()&&j(JSON.parse(h)),i&&(v(a=>new Set(a).add(c)),b())}catch(a){d.signal.aborted?(r("Canceled"),t(a=>[...a,"Canceled"].slice(-8))):p(String(a))}finally{z.current===d&&(z.current=null),n(null)}},[b,w,a]),C=(0,e.useCallback)(()=>{z.current?.abort()},[]),D="global"===w?"~/.pi/agent/skills/":`${cV(a)}/.pi/agent/skills/`;return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,marginBottom:20},children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"var(--text)"},children:"Add Skill"}),(0,d.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,d.jsx)("input",{ref:y,value:c,onChange:a=>f(a.target.value),onKeyDown:a=>{"Enter"===a.key&&A(c)},placeholder:"e.g. react, testing, deploy",style:{flex:1,padding:"7px 10px",fontSize:13,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,d.jsx)("button",{onClick:()=>A(c),disabled:i||!c.trim(),style:{padding:"7px 16px",fontSize:13,borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:i||!c.trim()?"not-allowed":"pointer",opacity:i||!c.trim()?.5:1,flexShrink:0},children:i?"Searching…":"Search"})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,d.jsx)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",fontSize:12,flexShrink:0},children:["global","project"].map(a=>(0,d.jsx)("button",{onClick:()=>x(a),style:{padding:"3px 10px",border:"none",cursor:"pointer",background:w===a?"var(--bg-selected)":"none",color:w===a?"var(--text)":"var(--text-dim)",fontWeight:w===a?600:400,borderRight:"global"===a?"1px solid var(--border)":"none"},children:a},a))}),(0,d.jsxs)("span",{style:{fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["→ ",D]})]}),k&&(0,d.jsx)("div",{style:{fontSize:12,color:"#f87171"},children:k}),o&&(0,d.jsx)("div",{style:{fontSize:12,color:"#f87171",wordBreak:"break-word"},children:o}),m&&(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:10,display:"flex",flexDirection:"column",gap:8},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,d.jsx)("div",{style:{width:10,height:10,borderRadius:"50%",border:"2px solid var(--border)",borderTopColor:"var(--accent)",animation:"spin 0.8s linear infinite",flexShrink:0}}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:q??"Installing"}),(0,d.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:m})]}),(0,d.jsx)("button",{onClick:C,style:{padding:"4px 9px",fontSize:12,borderRadius:5,border:"1px solid var(--border)",background:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:"Cancel"})]}),s.length>0&&(0,d.jsx)("div",{style:{maxHeight:120,overflow:"auto",fontFamily:"var(--font-mono)",fontSize:11,lineHeight:1.6,color:"var(--text-dim)",borderTop:"1px solid var(--border)",paddingTop:8},children:s.map((a,b)=>(0,d.jsx)("div",{children:a},`${b}-${a}`))})]})]}),g.length>0?(0,d.jsx)("div",{style:{flex:1,overflowY:"auto"},children:g.map(a=>{let b=u.has(a.package),c=m===a.package,e=a.package.indexOf("@"),f=e>-1?a.package.slice(0,e):a.package,g=e>-1?a.package.slice(e+1):null;return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"12px 0",borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:3},children:g??f}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:f}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:a.installs}),a.url&&(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noreferrer",style:{fontSize:12,color:"var(--accent)",textDecoration:"none"},children:"skills.sh ↗"})]})]}),(0,d.jsx)("button",{onClick:()=>{b||null!==m||B(a.package)},disabled:b||null!==m,style:{flexShrink:0,padding:"5px 14px",fontSize:12,fontWeight:500,borderRadius:5,border:"1px solid var(--border)",cursor:c?"wait":b||null!==m?"not-allowed":"pointer",background:b?"rgba(34,197,94,0.1)":c?"rgba(59,130,246,0.08)":"none",color:b?"#16a34a":c?"var(--accent)":"var(--text-muted)",transition:"color 0.12s"},children:b?"✓ Installed":c?"Installing":"Install"})]},a.package)})}):!k&&!i&&(0,d.jsxs)("div",{style:{fontSize:13,color:"var(--text-dim)",lineHeight:1.8},children:["Search"," ",(0,d.jsx)("a",{href:"https://skills.sh",target:"_blank",rel:"noreferrer",style:{color:"var(--accent)",textDecoration:"none"},children:"skills.sh"})," ","to discover and install skills for your agent."]})]})}function c$({cwd:a,onClose:b,embedded:c=!1}){let[f,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(new Set),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)({}),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)(null),[D,E]=(0,e.useState)(null),F=(0,e.useCallback)(()=>{i(!0),k(null),fetch(`/api/skills?cwd=${encodeURIComponent(a)}`).then(a=>a.json()).then(a=>{if(a.error)return void k(a.error);let b=a.skills??[];g(b),b.length>0&&!l&&m(b[0].filePath)}).catch(a=>k(String(a))).finally(()=>i(!1))},[a,l]),G=(0,e.useCallback)(async b=>{let c=!b.disableModelInvocation;o(a=>new Set(a).add(b.filePath)),q(null);try{let d=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,filePath:b.filePath,disableModelInvocation:c})}),e=await d.json();if(!d.ok||e.error)return void q(e.error??`HTTP ${d.status}`);g(a=>a.map(a=>a.filePath===b.filePath?{...a,disableModelInvocation:c}:a))}catch(a){q(String(a))}finally{o(a=>{let c=new Set(a);return c.delete(b.filePath),c})}},[a]),H=(0,e.useCallback)(async()=>{w(!0),A(null);try{let b=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})}),c=await b.json();if(!b.ok||c.error)return void A(c.error??`HTTP ${b.status}`);let d={};for(let a of c.updates??[])d[`${a.scope}\0${a.package}`]=a;u(d),y(!0)}catch(a){A(String(a))}finally{w(!1)}},[a]),I=(0,e.useCallback)(async b=>{let c=b.install;if(c){C(cU(c)),E(null);try{let b=await fetch("/api/skills/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,package:c.package,scope:c.scope})}),d=await b.json();if(!b.ok||d.error)return void E(d.error??`HTTP ${b.status}`);let e=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,package:c.package,scope:c.scope})}),f=await e.json(),g=f.updates?.[0];g&&u(a=>({...a,[cU(g)]:g})),await F()}catch(a){E(String(a))}finally{C(null)}}},[a,F]),J=f.find(a=>a.filePath===l)??null;return(0,d.jsx)("div",{style:c?{height:"100%",minHeight:0,display:"flex",alignItems:"stretch",justifyContent:"stretch"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:a=>{c||a.target!==a.currentTarget||b()},children:(0,d.jsxs)("div",{style:{width:c?"100%":860,height:c?"100%":"78vh",background:"var(--bg)",border:c?"none":"1px solid var(--border)",borderRadius:10*!c,display:"flex",flexDirection:"column",boxShadow:c?"none":"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!c&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,d.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:"Skills"}),(0,d.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:cV(a)})]}),(0,d.jsx)("button",{onClick:b,style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,d.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{width:210,borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,d.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:h?(0,d.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:"Loading…"}):j?(0,d.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"#f87171"},children:j}):0===f.length?(0,d.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--text-dim)"},children:"No skills found"}):(()=>{let a=[];for(let b of["project","global","path"]){let c=f.filter(a=>cW(a)===b);c.length>0&&a.push({label:b,skills:c})}return a.map(({label:a,skills:b})=>(0,d.jsxs)("div",{style:{marginBottom:6},children:[(0,d.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:a}),b.map(a=>{let b=!r&&l===a.filePath,c=a.disableModelInvocation,e=a.install?t[cU(a.install)]:void 0;return(0,d.jsxs)("div",{onClick:()=>{m(a.filePath),s(!1)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:5,cursor:"pointer",background:b?"var(--bg-selected)":"none"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="none")},children:[(0,d.jsx)("span",{style:{flexShrink:0,width:7,height:7,borderRadius:"50%",background:c?"var(--border)":"var(--accent)",boxShadow:c?"none":"0 0 4px var(--accent)",transition:"background 0.15s, box-shadow 0.15s"}}),(0,d.jsx)("span",{style:{fontSize:12,fontWeight:b?600:400,color:c?"var(--text-dim)":"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name}),e?.state==="update-available"&&(0,d.jsx)("span",{title:"Update available",style:{flexShrink:0,fontSize:11,fontWeight:700,color:"#d97706"},children:"↑"})]},a.filePath)})]},a))})()}),(0,d.jsxs)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,d.jsxs)("button",{onClick:H,disabled:v||h||0===f.length,title:"Compare installed skills with their upstream source",style:{width:"100%",display:"flex",alignItems:"center",gap:6,padding:"7px 8px",marginBottom:2,borderRadius:5,border:"none",background:"none",color:v?"var(--accent)":"var(--text-dim)",fontSize:12,textAlign:"left",cursor:v||h||0===f.length?"not-allowed":"pointer",opacity:h||0===f.length?.5:1},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"}),(0,d.jsx)("polyline",{points:"21 3 21 9 15 9"})]}),v?"Checking…":"Check updates"]}),z&&(0,d.jsx)("div",{style:{padding:"2px 8px 6px",fontSize:11,color:"#f87171",wordBreak:"break-word"},children:z}),x&&!v&&!z&&0===Object.keys(t).length&&(0,d.jsx)("div",{style:{padding:"2px 8px 6px",fontSize:11,color:"var(--text-dim)"},children:"No installed sources to check"}),(0,d.jsxs)("div",{onClick:()=>s(!0),style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:r?"var(--bg-selected)":"none",color:r?"var(--accent)":"var(--text-dim)",fontSize:12},onMouseEnter:a=>{r||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{r||(a.currentTarget.style.background="none")},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,d.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Add skill"]})]})]}),(0,d.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:r?(0,d.jsx)(cZ,{cwd:a,onInstalled:()=>{F()}}):h?null:J?(0,d.jsx)(cY,{skill:J,cwd:a,onToggle:G,toggling:n.has(J.filePath),saveError:p,update:J.install?t[cU(J.install)]:void 0,updating:!!J.install&&B===cU(J.install),updateError:D,onUpdate:()=>I(J)},J.filePath):(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:"Select a skill"})})]}),(0,d.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,d.jsx)("button",{onClick:b,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:"Close"})})]})})}let c_=[{label:"30m",value:18e5},{label:"2h",value:72e5},{label:"6h",value:216e5},{label:"24h",value:864e5},{label:"48h",value:1728e5},{label:"Never",value:0}];function c0(a){return a?a.replace(/^\/(?:Users|home)\/[^/]+/,"~"):""}function c1(a){if(a<=0)return"never";let b=a/60/1e3;if(b<60)return`${Math.round(b)}m`;let c=b/60;return Number.isInteger(c)?`${c}h`:`${c.toFixed(1)}h`}function c2(a){return{id:"",language:a,displayName:"",command:"python"===a?"python3":"R",argsText:JSON.stringify("python"===a?["-u"]:["--slave","--vanilla"]),envText:"{}"}}function c3(a){return{id:a.id,language:a.language,displayName:a.displayName,command:a.command,argsText:JSON.stringify(a.args),envText:JSON.stringify(a.env,null,2)}}let c4={height:30,padding:"0 11px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,whiteSpace:"nowrap"},c5={width:"100%",minWidth:0,padding:"7px 9px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none",fontFamily:"var(--font-mono)"};function c6({label:a,children:b}){return(0,d.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:5,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)",fontWeight:500},children:a}),b]})}function c7({cwd:a}){let[b,c]=(0,e.useState)("python"),[f,g]=(0,e.useState)(null),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)([]),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)("view"),[v,w]=(0,e.useState)(()=>c2("python")),[x,y]=(0,e.useState)(1728e5),[z,A]=(0,e.useState)("pdf"),[B,C]=(0,e.useState)(300),[D,E]=(0,e.useState)(800),[F,G]=(0,e.useState)(600),[H,I]=(0,e.useState)(!1);(0,e.useCallback)(async()=>{i(!0),m(null);try{let c=a?`?cwd=${encodeURIComponent(a)}`:"",d=await fetch(`/api/plot-kernels${c}`),e=await d.json();if(!d.ok||e.error)throw Error(e.error??`HTTP ${d.status}`);g(e),q([]),o(null),s(a=>{if(a&&e.kernels.some(b=>b.id===a))return a;let c=e.kernels.find(a=>a.language===b&&a.isEffective);return c?.id??e.kernels.find(a=>a.language===b)?.id??null})}catch(a){m(a instanceof Error?a.message:String(a))}finally{i(!1)}},[a,b]);let J=(0,e.useMemo)(()=>(f?.kernels??[]).filter(a=>a.language===b),[b,f?.kernels]),K=J.find(a=>a.id===r)??null,L=(0,e.useCallback)(async(b,c)=>{k(c),m(null),o(null),q([]);try{let c=await fetch("/api/plot-kernels",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,...b})}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);return g(d),q(d.errors??[]),d}catch(a){return m(a instanceof Error?a.message:String(a)),null}finally{k(null)}},[a]),M=(0,e.useCallback)(async a=>{let b=await L({action:"scan",..."all"===a?{}:{language:a}},"scan");b&&o(`Scan added ${b.added?.length??0} kernel${(b.added?.length??0)===1?"":"s"}${b.skipped?`, skipped ${b.skipped} existing`:""}.`)},[L]),N=(0,e.useCallback)(async a=>{await L({action:"select",language:a.language,kernelId:a.id},"select")&&o(`Selected ${a.displayName} for this project.`)},[L]),O=(0,e.useCallback)(async a=>{await L({action:"setDefault",language:a.language,kernelId:a.id},"default")&&o(`Set ${a.displayName} as global default.`)},[L]),P=(0,e.useCallback)(async()=>{let a=v.id.trim();if(!a)return void m("Kernel ID is required");try{let b=function(a){let b=JSON.parse(a.argsText||"[]"),c=JSON.parse(a.envText||"{}");if(!Array.isArray(b))throw Error("Args must be a JSON array");if(!c||"object"!=typeof c||Array.isArray(c))throw Error("Env must be a JSON object");return{language:a.language,command:a.command.trim(),displayName:a.displayName.trim(),args:b.map(a=>String(a)),env:Object.fromEntries(Object.entries(c).map(([a,b])=>[a,String(b)]))}}(v);if(!b.command)throw Error("Command is required");if(!await L({action:"new"===t?"add":"edit",kernelId:a,kernel:b},"save"))return;s(a),u("view"),o("new"===t?"Kernel added.":"Kernel saved.")}catch(a){m(a instanceof Error?a.message:String(a))}},[v,t,L]),Q=(0,e.useCallback)(async a=>{let c=await L({action:"delete",kernelId:a.id},"delete");if(!c)return;let d=c.kernels.find(a=>a.language===b&&a.isEffective)??c.kernels.find(a=>a.language===b)??null;s(d?.id??null),u(d?"view":"new"),o("Kernel deleted.")},[b,L]),R=()=>{u("new"),s(null),w(c2(b)),m(null),o(null)},S=(0,e.useCallback)(async a=>{y(a),I(!0),m(null);try{let b=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{plotIdleTimeoutMs:a}})}),c=await b.json();if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);"number"==typeof c.settings?.plotIdleTimeoutMs&&(y(c.settings.plotIdleTimeoutMs),o(`Kernel idle timeout set to ${c1(c.settings.plotIdleTimeoutMs)}.`))}catch(a){y(x),m(a instanceof Error?a.message:String(a))}finally{I(!1)}},[x]),T=(0,e.useCallback)(async()=>{I(!0),m(null);try{let a=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{saveFormat:z,saveDpi:B,saveWidth:D,saveHeight:F}})}),b=await a.json();if(!a.ok||b.error)throw Error(b.error??`HTTP ${a.status}`);o("Save defaults updated.")}catch(a){m(a instanceof Error?a.message:String(a))}finally{I(!1)}},[z,B,D,F]);return(0,d.jsxs)("div",{style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{flexShrink:0,padding:"12px 16px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:"Kernel Runtime"}),(0,d.jsx)("div",{style:{marginTop:4,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"Manage the warm R/Python kernels used for analysis turns and kernel tools."})]}),(0,d.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--border)",flexWrap:"wrap"},children:[(0,d.jsx)("div",{style:{display:"flex",padding:2,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)"},children:["python","r"].map(a=>{let e=b===a;return(0,d.jsx)("button",{type:"button",onClick:()=>c(a),style:{height:26,padding:"0 12px",border:"none",borderRadius:5,background:e?"var(--bg)":"transparent",color:e?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:e?600:500},children:"python"===a?"Python":"R"},a)})}),(0,d.jsxs)("button",{type:"button",onClick:()=>void M(b),disabled:!!j,style:{...c4,opacity:j?.55:1},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 0 1-15.3 6.4"}),(0,d.jsx)("path",{d:"M3 12A9 9 0 0 1 18.3 5.6"}),(0,d.jsx)("path",{d:"M18 2v4h4"}),(0,d.jsx)("path",{d:"M6 22v-4H2"})]}),"scan"===j?"Scanning...":`Scan ${"python"===b?"Python":"R"}`]}),(0,d.jsx)("button",{type:"button",onClick:()=>void M("all"),disabled:!!j,style:{...c4,opacity:j?.55:1},children:"Scan all"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginLeft:"auto"},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"Idle"}),(0,d.jsx)("div",{style:{display:"flex",padding:2,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)"},children:c_.map(a=>{let b=x===a.value;return(0,d.jsx)("button",{type:"button",onClick:()=>{b||S(a.value)},disabled:H,title:`Close inactive kernels after ${c1(a.value)}`,style:{height:24,padding:"0 8px",border:"none",borderRadius:5,background:b?"var(--bg)":"transparent",color:b?"var(--accent)":"var(--text-muted)",cursor:H?"default":"pointer",fontSize:11,fontWeight:b?700:500,opacity:H?.65:1},children:a.label},a.label)})})]}),(0,d.jsxs)("button",{type:"button",onClick:R,style:{...c4,marginLeft:"auto",color:"var(--accent)"},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,d.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Add kernel"]})]}),(0,d.jsxs)("div",{style:{flexShrink:0,padding:"10px 16px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,d.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--text)"},children:"Save defaults"}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"Format"}),(0,d.jsx)("div",{style:{display:"flex",padding:2,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)"},children:["pdf","png","svg"].map(a=>{let b=z===a;return(0,d.jsx)("button",{type:"button",onClick:()=>A(a),style:{height:24,padding:"0 8px",border:"none",borderRadius:5,background:b?"var(--bg)":"transparent",color:b?"var(--accent)":"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:b?700:500},children:a.toUpperCase()},a)})}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"DPI"}),(0,d.jsx)("input",{type:"number",value:B,onChange:a=>C(Number(a.target.value)||300),min:72,max:1200,style:{width:60,height:26,padding:"0 6px",fontSize:11,border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"var(--text)"}}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"W"}),(0,d.jsx)("input",{type:"number",value:D,onChange:a=>E(Number(a.target.value)||800),min:100,max:8e3,style:{width:65,height:26,padding:"0 6px",fontSize:11,border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"var(--text)"}}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"H"}),(0,d.jsx)("input",{type:"number",value:F,onChange:a=>G(Number(a.target.value)||600),min:100,max:8e3,style:{width:65,height:26,padding:"0 6px",fontSize:11,border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"var(--text)"}}),(0,d.jsx)("button",{type:"button",onClick:()=>void T(),disabled:H,style:{...c4,background:"var(--accent)",borderColor:"var(--accent)",color:"#fff",opacity:H?.6:1},children:H?"Saving...":"Save"})]}),(l||n||p.length>0)&&(0,d.jsxs)("div",{style:{flexShrink:0,padding:"8px 16px",borderBottom:"1px solid var(--border)",fontSize:12,lineHeight:1.5},children:[l&&(0,d.jsx)("div",{style:{color:"#f87171"},children:l}),n&&(0,d.jsx)("div",{style:{color:"var(--text-muted)"},children:n}),p.map(a=>(0,d.jsx)("div",{style:{color:"rgba(234,179,8,0.95)"},children:a},a))]}),(0,d.jsxs)("div",{style:{flex:1,minHeight:0,display:"flex",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{width:290,flexShrink:0,borderRight:"1px solid var(--border)",background:"var(--bg-panel)",display:"flex",flexDirection:"column",minHeight:0},children:[(0,d.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,d.jsxs)("div",{children:["Global: ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:c0(f?.paths.global??"")})]}),a&&(0,d.jsxs)("div",{children:["Project: ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:c0(f?.paths.project??"")})]}),!a&&(0,d.jsx)("div",{children:"Project selection requires an active cwd."})]}),(0,d.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",padding:"8px 6px"},children:h?(0,d.jsx)("div",{style:{padding:"10px 8px",color:"var(--text-muted)",fontSize:12},children:"Loading..."}):0===J.length?(0,d.jsx)("div",{style:{padding:"10px 8px",color:"var(--text-dim)",fontSize:12},children:"No kernels found"}):J.map(a=>{let b=r===a.id&&"new"!==t;return(0,d.jsxs)("button",{type:"button",onClick:()=>{s(a.id),u("view"),w(c3(a)),m(null),o(null)},style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"8px 9px",border:"none",borderRadius:6,background:b?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},onMouseEnter:a=>{b||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="transparent")},children:[(0,d.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:a.isEffective?"var(--accent)":"var(--border)",flexShrink:0}}),(0,d.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("span",{style:{display:"block",color:"var(--text)",fontSize:12,fontWeight:b?600:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.displayName}),(0,d.jsx)("span",{style:{display:"block",color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.id})]}),(a.isProjectSelected||a.isDefault)&&(0,d.jsxs)("span",{style:{flexShrink:0,display:"flex",gap:3},children:[a.isProjectSelected&&(0,d.jsx)("span",{title:"Project selected",style:{fontSize:9,color:"var(--accent)",border:"1px solid rgba(37,99,235,0.35)",borderRadius:4,padding:"1px 4px"},children:"P"}),a.isDefault&&(0,d.jsx)("span",{title:"Global default",style:{fontSize:9,color:"var(--text-muted)",border:"1px solid var(--border)",borderRadius:4,padding:"1px 4px"},children:"D"})]})]},a.id)})}),(0,d.jsxs)("div",{style:{padding:"8px 10px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:["Last scan: ",function(a){if(!a)return"never";let b=new Date(a);return Number.isNaN(b.getTime())?a:b.toLocaleString()}(f?.scanCache?.lastScan)]})]}),(0,d.jsx)("div",{style:{flex:1,minWidth:0,minHeight:0,overflowY:"auto",padding:18},children:"view"===t&&K?(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16,maxWidth:760},children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,d.jsx)("h3",{style:{margin:0,color:"var(--text)",fontSize:15,lineHeight:1.3},children:K.displayName}),K.isEffective&&(0,d.jsx)("span",{style:{fontSize:10,color:"var(--accent)",border:"1px solid rgba(37,99,235,0.35)",borderRadius:4,padding:"1px 5px"},children:"active"})]}),(0,d.jsx)("div",{style:{marginTop:5,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:K.id})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:12},children:[(0,d.jsx)(c6,{label:"Command",children:(0,d.jsx)("input",{readOnly:!0,value:K.command,style:{...c5,color:"var(--text-muted)"}})}),(0,d.jsx)(c6,{label:"Args",children:(0,d.jsx)("input",{readOnly:!0,value:JSON.stringify(K.args),style:{...c5,color:"var(--text-muted)"}})})]}),(0,d.jsx)(c6,{label:"Environment",children:(0,d.jsx)("textarea",{readOnly:!0,value:JSON.stringify(K.env,null,2),rows:5,style:{...c5,resize:"vertical",color:"var(--text-muted)"}})}),(0,d.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,d.jsx)("button",{type:"button",onClick:()=>a&&void N(K),disabled:!a||"select"===j,style:{...c4,background:a?"var(--accent)":"var(--bg-panel)",color:a?"#fff":"var(--text-dim)",opacity:"select"===j?.6:1},children:"Use for project"}),(0,d.jsx)("button",{type:"button",onClick:()=>void O(K),disabled:"default"===j,style:{...c4,opacity:"default"===j?.6:1},children:"Set default"}),(0,d.jsx)("button",{type:"button",onClick:()=>{u("edit"),s(K.id),w(c3(K)),m(null),o(null)},style:c4,children:"Edit"}),!K.id.startsWith("default-")&&(0,d.jsx)("button",{type:"button",onClick:()=>void Q(K),disabled:"delete"===j,style:{...c4,color:"#f87171",opacity:"delete"===j?.6:1},children:"Delete"})]})]}):(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14,maxWidth:760},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8},children:[(0,d.jsx)("h3",{style:{margin:0,color:"var(--text)",fontSize:15},children:"new"===t?"Add Kernel":"Edit Kernel"}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:"python"===b?"Python":"R"})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:12},children:[(0,d.jsx)(c6,{label:"Kernel ID",children:(0,d.jsx)("input",{value:v.id,readOnly:"edit"===t,onChange:a=>w(b=>({...b,id:a.target.value})),placeholder:"python"===b?"my-python":"my-r",style:{...c5,color:"edit"===t?"var(--text-muted)":"var(--text)"}})}),(0,d.jsx)(c6,{label:"Display name",children:(0,d.jsx)("input",{value:v.displayName,onChange:a=>w(b=>({...b,displayName:a.target.value})),placeholder:"python"===b?"Python 3 (Project)":"R (Project)",style:c5})})]}),(0,d.jsx)(c6,{label:"Command",children:(0,d.jsx)("input",{value:v.command,onChange:a=>w(b=>({...b,command:a.target.value})),placeholder:"/usr/bin/python3",style:c5})}),(0,d.jsx)(c6,{label:"Args JSON",children:(0,d.jsx)("input",{value:v.argsText,onChange:a=>w(b=>({...b,argsText:a.target.value})),style:c5})}),(0,d.jsx)(c6,{label:"Env JSON",children:(0,d.jsx)("textarea",{value:v.envText,onChange:a=>w(b=>({...b,envText:a.target.value})),rows:6,style:{...c5,resize:"vertical"}})}),(0,d.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,d.jsx)("button",{type:"button",onClick:()=>void P(),disabled:"save"===j,style:{...c4,background:"var(--accent)",borderColor:"var(--accent)",color:"#fff",opacity:"save"===j?.6:1},children:"save"===j?"Saving...":"Save"}),(0,d.jsx)("button",{type:"button",onClick:()=>{let a=K??J.find(a=>a.isEffective)??J[0]??null;a?(s(a.id),w(c3(a)),u("view")):R(),m(null)},style:c4,children:"Cancel"})]})]})})]})]})}var c8=c(39868);function c9({text:a,label:b="Copy",title:c,onCopied:f,onError:g}){let[h,i]=(0,e.useState)(!1),j=(0,e.useCallback)(async()=>{try{await (0,c8.D)(a),i(!0),f?.()}catch(a){g?.(a instanceof Error?a:Error(String(a)))}},[f,g,a]);return(0,d.jsx)("button",{type:"button",onClick:()=>void j(),title:c??(h?"Copied":b),style:{height:24,padding:"0 8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-hover)",color:h?"#22c55e":"var(--text-muted)",fontSize:10,fontWeight:600,cursor:"pointer",flexShrink:0},children:h?"Copied":b})}let da="annovibe-im-gateway";function db({cwd:a,embedded:b=!1}){let[c,f]=(0,e.useState)(null),[g,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(""),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(null),E=(0,e.useCallback)((a,b)=>{"success"===b?(D(a),B(null),setTimeout(()=>D(null),4500)):(B(a),D(null))},[]);(0,e.useCallback)(async()=>{try{let a=await fetch("/api/im/gateway-status",{cache:"no-store"}),b=await a.json();if(!a.ok||!b.gateway)return;j(b.gateway)}catch{}},[]),(0,e.useCallback)(async()=>{v(!0),B(null);try{let b=await fetch(`/api/im/project?cwd=${encodeURIComponent(a)}`,{cache:"no-store"}),c=await b.json();if(!b.ok||!("enabled"in c))throw Error(c.error??`HTTP ${b.status}`);f(c),h(c.gatewayToken??null),l(c.botId),p(c.requireMentionInGroup),r(c.boundChatId??""),t(c.allowedUsers.join("\n")),n("")}catch(a){E(a instanceof Error?a.message:String(a),"error")}finally{v(!1)}},[a,E]);let F=(0,e.useCallback)(async b=>{x(!0),B(null),D(null);try{let c=await fetch("/api/im/project",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,config:b})}),d=await c.json();if(!c.ok||!("enabled"in d))throw Error(d.error??`HTTP ${c.status}`);f(d),h(d.gatewayToken??null),n(""),E("IM settings saved.","success")}catch(a){E(a instanceof Error?a.message:String(a),"error")}finally{x(!1)}},[a,E]),G=(0,e.useCallback)(a=>{F({enabled:a,botId:k.trim(),botSecret:m.trim()||void 0,requireMentionInGroup:o,boundChatId:q.trim()||null,allowedUsers:df(s)})},[k,m,o,q,s,F]),H=(0,e.useCallback)(()=>{F({enabled:c?.enabled??!1,botId:k.trim(),botSecret:m.trim()||void 0,requireMentionInGroup:o,boundChatId:q.trim()||null,allowedUsers:df(s)})},[c?.enabled,k,m,o,q,s,F]),I=(0,e.useCallback)(()=>{F({regeneratePairingCode:!0})},[F]),J=(0,e.useCallback)(async()=>{if(c?.sessionId&&window.confirm("Reset the IM thread for this project?\n\nThis clears the stored WeCom session. Pairing and bot settings are kept. The next IM message starts a fresh session.")){z(!0);try{let b=await fetch(`/api/im/session-ids?cwd=${encodeURIComponent(a)}`,{method:"DELETE"}),c=await b.json();if(!b.ok||!c.ok)throw Error(c.error??`HTTP ${b.status}`);f(a=>a?{...a,sessionId:null}:null),E("IM thread reset.","success")}catch(a){E(a instanceof Error?a.message:String(a),"error")}finally{z(!1)}}},[c?.sessionId,a,E]);if(u&&!c)return(0,d.jsx)(di,{label:"Loading IM settings..."});let K=c?.enabled??!1;return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,paddingTop:12*!!b},children:[(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-panel)",padding:12,display:"flex",flexDirection:"column",gap:12},children:[(0,d.jsx)(de,{label:"WeCom bot for this project",description:K?"启动 im-gateway 后即可通过企业微信 AI bot 与此项目交互。":"关闭 — 开启后可绑定企业微信 bot 到此项目。",checked:K,disabled:w,onChange:G}),K?(0,d.jsxs)(d.Fragment,{children:[i?(0,d.jsx)(dc,{status:i}):null,(0,d.jsx)(dg,{label:"Bot ID",value:k,onChange:l,placeholder:"从企业微信 AI bot 控制台获取"}),(0,d.jsx)(dg,{label:c?.hasSecret?"Bot Secret(留空则不修改)":"Bot Secret",value:m,onChange:n,placeholder:c?.hasSecret?"留空保留现有 secret":"从企业微信 AI bot 控制台获取",secret:!0}),(0,d.jsx)(de,{label:"群聊中需要 @提及 bot 才响应",description:"开启后,群聊中用户必须 @bot 才会被处理。",checked:o,disabled:w,compact:!0,onChange:p}),(0,d.jsx)(dg,{label:"绑定群聊 ID(可选)",value:q,onChange:r,placeholder:"限制仅此群聊可交互"}),(0,d.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4,fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)("span",{children:"允许用户 ID(一行一个)"}),(0,d.jsx)("textarea",{value:s,onChange:a=>t(a.target.value),rows:3,style:dl,placeholder:"用户也可通过配对码自助授权"})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[(0,d.jsx)(dh,{primary:!0,disabled:w,onClick:H,children:w?"保存中…":"保存 IM 配置"}),(0,d.jsx)(dh,{disabled:w,onClick:I,children:"重新生成配对码"})]})]}):null]}),K&&c?(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-panel)",padding:12,fontSize:11,color:"var(--text-muted)",display:"flex",flexDirection:"column",gap:8},children:[(0,d.jsx)(dd,{label:"配对码",value:c.pairingCode,copyLabel:"复制配对码"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,flexWrap:"wrap"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("strong",{style:{color:"var(--text)"},children:"IM session:"})," ",c.sessionId?`${c.sessionId.slice(0,12)}…`:"尚未启动"]}),c.sessionId?(0,d.jsx)(dh,{danger:!0,disabled:w||y,onClick:()=>void J(),children:y?"重置中…":"重置 IM thread"}):null]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("strong",{style:{color:"var(--text)"},children:"Gateway token:"})," ",g?`${g.slice(0,8)}…`:"保存时生成"]}),(0,d.jsx)(dd,{label:"Gateway 启动命令",value:da,copyLabel:"复制命令",mono:!0}),(0,d.jsxs)("div",{style:{lineHeight:1.55,color:"var(--text-dim)"},children:["启动 ",(0,d.jsx)("code",{style:dj,children:"annovibe"})," 后,在",(0,d.jsx)("strong",{style:{color:"var(--text-muted)",fontWeight:600},children:"同一 Linux 账户"}),"中运行"," ",(0,d.jsx)("code",{style:dj,children:da}),"。 Gateway 通过本地 API 读取已启用的项目配置和 bot secret —— 无需手动复制文件。"]}),(0,d.jsxs)("div",{style:{lineHeight:1.55,color:"var(--text-dim)"},children:["配置文件: ",(0,d.jsxs)("code",{style:dj,children:["<project>","/.annovibe/im.json"]})," \xb7 Secrets: ",(0,d.jsx)("code",{style:dj,children:"~/.pi/agent/im-secrets/"})]}),A&&(0,d.jsx)("div",{style:{padding:"6px 10px",background:"rgba(239,68,68,0.08)",borderRadius:6,border:"1px solid rgba(239,68,68,0.3)",color:"#ef4444",fontSize:12},children:A}),C&&(0,d.jsx)("div",{style:{padding:"6px 10px",background:"rgba(34,197,94,0.08)",borderRadius:6,border:"1px solid rgba(34,197,94,0.3)",color:"#22c55e",fontSize:12},children:C})]}):null]})}function dc({status:a}){var b,c,e,f;let g=function(a){if(!a)return null;let b=new Date(a);return Number.isNaN(b.getTime())?a:b.toLocaleString()}(a.startedAt),h=a.alive&&a.pid?`pid ${a.pid}${g?` \xb7 since ${g}`:""}`:g?`last started ${g}`:"在同一个 Linux 账户下运行 annovibe-im-gateway";return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"8px 10px",borderRadius:8,border:`1px solid ${"running"===(b=a.tone)?"rgba(34,197,94,0.28)":"stale"===b?"rgba(245,158,11,0.28)":"rgba(248,113,113,0.28)"}`,background:"running"===(c=a.tone)?"rgba(34,197,94,0.08)":"stale"===c?"rgba(245,158,11,0.08)":"rgba(248,113,113,0.08)"},children:[(0,d.jsx)("span",{"aria-hidden":!0,style:{width:8,height:8,borderRadius:"50%",marginTop:4,flexShrink:0,background:"running"===(e=a.tone)?"#22c55e":"stale"===e?"#f59e0b":"#f87171"}}),(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:650,color:"running"===(f=a.tone)?"#22c55e":"stale"===f?"#f59e0b":"#f87171"},children:a.label}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:3,lineHeight:1.45},children:h})]})]})}function dd({label:a,value:b,copyLabel:c,mono:e}){return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsxs)("strong",{style:{color:"var(--text)"},children:[a,":"]})," ",(0,d.jsx)("code",{style:{...dj,...e?{wordBreak:"break-all"}:{}},children:b})]}),(0,d.jsx)(c9,{text:b,label:c})]})}function de({label:a,description:b,checked:c,disabled:e,compact:f,onChange:g}){return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:f?"2px 0":"10px 12px",borderRadius:8*!f,border:f?"none":`1px solid ${c?"color-mix(in srgb, var(--accent) 35%, var(--border))":"var(--border)"}`,background:f?"transparent":c?"color-mix(in srgb, var(--accent) 8%, var(--bg-panel))":"var(--bg)"},children:[(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:f?11:13,fontWeight:f?500:650,color:"var(--text)"},children:a}),b?(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginTop:4,lineHeight:1.45},children:b}):null]}),(0,d.jsx)("button",{type:"button",role:"switch","aria-checked":c,disabled:e,onClick:()=>g(!c),style:{position:"relative",width:44,height:26,borderRadius:999,border:"none",flexShrink:0,background:c?"var(--accent)":"color-mix(in srgb, var(--text-dim) 35%, var(--border))",cursor:e?"default":"pointer",opacity:e?.55:1,transition:"background 0.15s",padding:0},children:(0,d.jsx)("span",{style:{position:"absolute",top:3,left:c?21:3,width:20,height:20,borderRadius:"50%",background:"#fff",boxShadow:"0 1px 3px rgba(0,0,0,0.18)",transition:"left 0.15s"}})})]})}function df(a){return a.split(/\r?\n/).map(a=>a.trim()).filter(Boolean)}function dg({label:a,value:b,onChange:c,placeholder:e,secret:f}){return(0,d.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4,fontSize:11,color:"var(--text-muted)"},children:[(0,d.jsx)("span",{children:a}),(0,d.jsx)("input",{type:f?"password":"text",value:b,onChange:a=>c(a.target.value),placeholder:e,style:dk})]})}function dh({children:a,disabled:b,primary:c,danger:e,onClick:f}){return(0,d.jsx)("button",{type:"button",disabled:b,onClick:f,style:{height:28,padding:"0 10px",borderRadius:6,border:c?"none":e?"1px solid rgba(248,113,113,0.45)":"1px solid var(--border)",background:c?"var(--accent)":e?"rgba(248,113,113,0.08)":"var(--bg-hover)",color:c?"#fff":e?"#f87171":"var(--text)",fontSize:11,fontWeight:c?600:400,cursor:b?"default":"pointer",opacity:b?.55:1},children:a})}function di({label:a}){return(0,d.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",padding:"18px 10px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:a})}let dj={fontFamily:"var(--font-mono)",fontSize:"0.95em"},dk={height:30,padding:"0 8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)"},dl={padding:"8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",resize:"vertical"},dm={border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-panel)"},dn={height:28,padding:"0 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12};function dp({cwd:a}){let[b,c]=(0,e.useState)(null),[f,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(null);(0,e.useCallback)(async()=>{g(!0),k(null);try{let b=await fetch(`/api/plot-kernels?cwd=${encodeURIComponent(a)}`),d=await b.json().catch(()=>({}));if(!b.ok||d.error||!Array.isArray(d.kernels))throw Error(d.error??`HTTP ${b.status}`);c(d)}catch(a){c(null),k(a instanceof Error?a.message:String(a))}finally{g(!1)}},[a]);let l=(0,e.useCallback)(async(b,d)=>{i(b),k(null);try{let e=await fetch("/api/plot-kernels",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"select",cwd:a,language:b,kernelId:d})}),f=await e.json().catch(()=>({}));if(!e.ok||f.error||!Array.isArray(f.kernels))throw Error(f.error??`HTTP ${e.status}`);c(f)}catch(a){k(a instanceof Error?a.message:String(a))}finally{i(null)}},[a]),m=a=>{let c=b?.kernels.filter(b=>b.language===a)??[],e=c.find(a=>a.isEffective)??c[0]??null;return(0,d.jsxs)("label",{style:{display:"grid",gap:6},children:[(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:"r"===a?"Default R kernel":"Default Python kernel"}),(0,d.jsx)("select",{value:e?.id??"",disabled:f||h===a||0===c.length,onChange:b=>{b.target.value&&l(a,b.target.value)},style:{height:32,padding:"0 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12},children:0===c.length?(0,d.jsx)("option",{value:"",children:f?"Loading...":"No configured kernel"}):c.map(a=>(0,d.jsxs)("option",{value:a.id,children:[a.displayName,a.isProjectSelected?" \xb7 project":a.isDefault?" \xb7 global":""," — ",a.command," ",(a.args??[]).join(" ")]},a.id))})]})};return(0,d.jsxs)("section",{style:{...dm,padding:14,display:"grid",gap:12},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)"},children:"Default kernels"}),(0,d.jsx)("div",{style:{marginTop:3,fontSize:11,color:"var(--text-dim)",lineHeight:1.45},children:"Used as the default R/Python kernels for analysis. Chat sessions use these when they call the `kernel_plot_*` tools."})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:10},children:[m("r"),m("python")]}),j&&(0,d.jsx)("div",{style:{fontSize:12,color:"#f87171"},children:j})]})}function dq({activeCwd:a,onSelectProject:b,onProjectsChanged:c}){let[f,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(a),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(!0),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(""),[z,A]=(0,e.useState)(null),[C,D]=(0,e.useState)(null),E=(0,e.useRef)(null),F=f.find(a=>a.cwd===h)??f.find(b=>b.cwd===a)??f[0]??null,G=(0,e.useCallback)(async()=>{try{m(!0);let b=await fetch("/api/projects"),c=await b.json();if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);let d=c.projects??[];g(d),i(b=>b&&d.some(a=>a.cwd===b)?b:a&&d.some(b=>b.cwd===a)?a:d[0]?.cwd??null),o(null)}catch(a){o(a instanceof Error?a.message:String(a))}finally{m(!1)}},[a]),H=(0,e.useMemo)(()=>({projects:f.length,chats:f.reduce((a,b)=>a+b.chatCount,0)}),[f]),I=(0,e.useCallback)(async()=>{let a=p.trim();if(a){u("add"),o(null);try{let d=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})}),e=await d.json();if(!d.ok||e.error)throw Error(e.error??`HTTP ${d.status}`);q(""),i(a),c?.(),b?.(a),G()}catch(a){o(a instanceof Error?a.message:String(a))}finally{u(null)}}},[G,c,b,p]),J=(0,e.useCallback)(async a=>{u("add"),o(null);try{let d=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})}),e=await d.json();if(!d.ok||e.error)throw Error(e.error??`HTTP ${d.status}`);q(""),s(!1),i(a),c?.(),b?.(a),G()}catch(a){o(a instanceof Error?a.message:String(a))}finally{u(null)}},[G,c,b]),K=(0,e.useCallback)(async a=>{u(`rename:${a}`),o(null);try{let b=await fetch("/api/projects",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,name:x})}),d=await b.json();if(!b.ok||d.error)throw Error(d.error??`HTTP ${b.status}`);w(null),y(""),await G(),c?.()}catch(a){o(a instanceof Error?a.message:String(a))}finally{u(null)}},[G,c,x]),L=(0,e.useCallback)(async a=>{if(window.confirm("Remove this project from AnnoVibe? Sessions on disk will not be deleted.")){u(`remove:${a}`),o(null);try{let b=await fetch("/api/projects",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})}),d=await b.json();if(!b.ok||d.error)throw Error(d.error??`HTTP ${b.status}`);i(b=>b===a?null:b),await G(),c?.()}catch(a){o(a instanceof Error?a.message:String(a))}finally{u(null)}}},[G,c]),M=(0,e.useCallback)(a=>{w(a.cwd),y(a.displayName),requestAnimationFrame(()=>E.current?.focus())},[]),N=(0,e.useCallback)(async a=>{try{let b=await fetch("/api/projects",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:a})});if(!b.ok)throw Error(`HTTP ${b.status}`);c?.()}catch{G()}},[G,c]),O=(0,e.useCallback)((a,b)=>{"reorder"!==t&&(A(a),b.dataTransfer.effectAllowed="move",b.dataTransfer.setData("text/project-cwd",a))},[t]),P=(0,e.useCallback)((a,b)=>{b.preventDefault(),b.dataTransfer.dropEffect="move",D(a)},[]),Q=(0,e.useCallback)(a=>{if(D(null),!z||z===a)return void A(null);let b=f.map(a=>a.cwd).filter(Boolean),c=b.indexOf(z),d=b.indexOf(a);c<0||d<0?A(null):(b.splice(c,1),b.splice(d,0,z),g(a=>{let c=new Map(a.map(a=>[a.cwd,a]));return b.map(a=>c.get(a)).filter(Boolean)}),A(null),N(b))},[z,N,f]),R=(0,e.useCallback)(()=>{A(null),D(null)},[]);return(0,d.jsxs)("div",{style:{height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:[n&&(0,d.jsx)("div",{style:{marginBottom:12,padding:"10px 12px",borderRadius:8,border:"1px solid rgba(248,113,113,0.35)",background:"rgba(248,113,113,0.08)",color:"#f87171",fontSize:12},children:n}),(0,d.jsxs)("div",{style:{display:"flex",gap:8,marginBottom:14,flexShrink:0},children:[(0,d.jsx)("div",{style:{position:"relative",flex:1,minWidth:0},children:(0,d.jsx)("input",{type:"text",value:p,onChange:a=>q(a.target.value),onKeyDown:a=>{"Enter"===a.key&&I()},placeholder:"/path/to/project",style:{width:"100%",height:30,padding:"0 8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",outline:"none"}})}),(0,d.jsx)("button",{type:"button",disabled:"add"===t,onClick:()=>void I(),style:{height:30,padding:"0 11px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:12,fontWeight:500},children:"Add"}),(0,d.jsx)("button",{type:"button",onClick:()=>s(!0),style:{...dn,height:30},children:"Browse…"})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(220px, 34%) minmax(0, 1fr)",gap:14,minHeight:0,flex:1},children:[(0,d.jsxs)("aside",{style:{...dm,minHeight:0,overflow:"hidden",display:"flex",flexDirection:"column"},children:[(0,d.jsxs)("div",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:700},children:[H.projects," Projects"]}),(0,d.jsxs)("div",{style:{marginTop:3,color:"var(--text-dim)",fontSize:11},children:[H.chats," chats total"]})]}),(0,d.jsx)("div",{style:{overflow:"auto",padding:8,display:"grid",gap:6},children:l?(0,d.jsx)("div",{style:{padding:12,color:"var(--text-muted)",fontSize:12},children:"Loading projects..."}):0===f.length?(0,d.jsx)("div",{style:{padding:12,color:"var(--text-muted)",fontSize:12},children:"No projects yet."}):f.map(b=>{var c;let e,f=b.cwd===a,g=b.cwd===F?.cwd,h=z===b.cwd,l=C===b.cwd&&z!==b.cwd,m=j===b.cwd&&!g;return(0,d.jsxs)("button",{type:"button",draggable:!0,onClick:()=>i(b.cwd),onDragStart:a=>O(b.cwd,a),onDragOver:a=>P(b.cwd,a),onDrop:()=>Q(b.cwd),onDragEnd:R,onMouseEnter:()=>k(b.cwd),onMouseLeave:()=>k(null),style:{display:"grid",gap:4,width:"100%",textAlign:"left",padding:"9px 10px",border:`1px solid ${l?"rgba(37,99,235,0.45)":g?"color-mix(in srgb, var(--accent) 45%, var(--border))":"transparent"}`,borderRadius:8,background:l?"rgba(37,99,235,0.06)":g?"color-mix(in srgb, var(--accent) 8%, var(--bg-panel))":"transparent",color:"var(--text)",cursor:"pointer",opacity:h?.55:1},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,d.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5,fontWeight:g?750:600},children:b.displayName}),f&&(0,d.jsx)("span",{style:{fontSize:10,color:"var(--accent)",fontWeight:700},children:"current"}),m&&(0,d.jsx)("span",{onClick:a=>{a.stopPropagation(),L(b.cwd)},style:{color:"#f87171",fontSize:11,fontWeight:650},children:"remove"})]}),(0,d.jsx)("div",{style:{color:"var(--text-dim)",fontSize:10.5,fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:b.cwd,children:(e=(c=b.cwd).split(/[\\/]/).filter(Boolean)).length<=3?c:`.../${e.slice(-3).join("/")}`})]},b.cwd)})})]}),(0,d.jsx)("main",{style:{minHeight:0,overflow:"auto"},children:F?(0,d.jsxs)("div",{style:{display:"grid",gap:14},children:[(0,d.jsx)("section",{style:{...dm,padding:14,display:"grid",gap:12},children:(0,d.jsxs)("div",{style:{display:"flex",gap:12,alignItems:"flex-start"},children:[(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[v===F.cwd?(0,d.jsx)("input",{ref:E,value:x,onChange:a=>y(a.target.value),onKeyDown:a=>{"Enter"===a.key&&K(F.cwd),"Escape"===a.key&&w(null)},style:{width:"min(420px, 100%)",height:32,padding:"0 9px",border:"1px solid var(--accent)",borderRadius:6,background:"var(--bg)",color:"var(--text)",fontSize:13,outline:"none"}}):(0,d.jsx)("div",{style:{color:"var(--text)",fontSize:16,fontWeight:750},children:F.displayName}),(0,d.jsx)("div",{style:{marginTop:5,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:F.cwd}),(0,d.jsxs)("div",{style:{marginTop:7,color:"var(--text-muted)",fontSize:11},children:[F.chatCount," chats / last ",function(a){if(!a)return"Never";let b=new Date(a),c=new Date().getTime()-b.getTime(),d=Math.floor(c/6e4),e=Math.floor(c/36e5),f=Math.floor(c/864e5);return d<1?"just now":d<60?`${d}m ago`:e<24?`${e}h ago`:f<7?`${f}d ago`:b.toLocaleDateString()}(F.lastAccessed??F.created??null),F.exists?"":" / path missing"]})]}),(0,d.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",justifyContent:"flex-end"},children:v===F.cwd?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",disabled:t===`rename:${F.cwd}`,onClick:()=>void K(F.cwd),style:{...dn,border:"none",background:"var(--accent)",color:"#fff"},children:"Save"}),(0,d.jsx)("button",{type:"button",onClick:()=>w(null),style:dn,children:"Cancel"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",onClick:()=>b?.(F.cwd),style:{...dn,background:F.cwd===a?"var(--accent)":"var(--bg-panel)",color:F.cwd===a?"#fff":"var(--text-muted)"},children:F.cwd===a?"Current":"Switch"}),(0,d.jsx)("button",{type:"button",onClick:()=>M(F),style:dn,children:"Rename"}),(0,d.jsx)("button",{type:"button",disabled:t===`remove:${F.cwd}`,onClick:()=>void L(F.cwd),style:{...dn,border:"1px solid rgba(248,113,113,0.35)",background:"transparent",color:"#f87171"},children:"Remove"})]})})]})}),(0,d.jsx)(dp,{cwd:F.cwd}),(0,d.jsxs)("section",{style:{...dm,padding:14,display:"grid",gap:12},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)"},children:"WeCom IM"}),(0,d.jsx)("div",{style:{marginTop:3,fontSize:11,color:"var(--text-dim)"},children:"Project notification and chat gateway settings."})]}),(0,d.jsx)(db,{cwd:F.cwd,embedded:!0})]})]}):(0,d.jsx)("div",{style:{...dm,padding:18,color:"var(--text-muted)",fontSize:12},children:"Select a project to edit settings."})})]}),(0,d.jsx)(B,{open:r,initialPath:a,onClose:()=>s(!1),onSelect:a=>void J(a)})]})}var dr=c(49998);let ds=["127.0.0.0/8","::1","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16"];function dt({checked:a,onChange:b}){return(0,d.jsx)("button",{type:"button",onClick:b,"aria-pressed":a,style:{width:44,height:24,borderRadius:999,border:"none",padding:0,cursor:"pointer",background:a?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",flexShrink:0},children:(0,d.jsx)("span",{style:{position:"absolute",top:3,left:a?23:3,width:18,height:18,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function du({label:a,description:b,checked:c,onChange:e}){return(0,d.jsxs)("label",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"10px 12px",borderRadius:8,border:`1px solid ${c?"var(--accent)":"var(--border)"}`,background:c?"rgba(37,99,235,0.04)":"var(--bg)",cursor:"pointer",fontSize:12},children:[(0,d.jsx)("input",{type:"radio",checked:c,onChange:e,style:{marginTop:2,accentColor:"var(--accent)"}}),(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontWeight:600,color:"var(--text)",lineHeight:1.4},children:a}),(0,d.jsx)("div",{style:{color:"var(--text-dim)",lineHeight:1.5,marginTop:2},children:b})]})]})}function dv(){let[a,b]=(0,e.useState)(null),[c,f]=(0,e.useState)(!0),[g,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)("always"),[y,z]=(0,e.useState)(!0),[A,B]=(0,e.useState)(ds),[C,D]=(0,e.useState)("");(0,e.useCallback)(async()=>{try{let a=await fetch("/api/auth/totp"),c=await a.json();b(c),x(c.requireMode??"always"),B(c.trustedNetworks??ds),z(!1!==c.proxyHeaderTrusted)}catch{}finally{f(!1)}},[]);let E=async()=>{if(a){if(p(null),"enabled"===a.status){if(!m||!/^\d{6}$/.test(m))return void p("Enter your 6-digit authenticator code to disable");v(!0);try{let a=await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"disable",code:m})}),c=await a.json();a.ok?(b({status:"disabled",enabled:!1,requireMode:"always",trustedNetworks:ds}),n(""),h(null),j(null),t(null),r("Two-factor authentication disabled")):p(c.error??"Failed to disable")}catch{p("Network error")}finally{v(!1)}return}v(!0);try{let a=await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"setup"})}),c=await a.json();if(a.ok&&c.uri){j(c.uri);let a=await dr.toDataURL(c.uri,{width:200,margin:1});h(a),b({status:"pending",enabled:!1,requireMode:w,trustedNetworks:A}),r(null)}else p(c.error??"Failed to start setup")}catch{p("Network error")}finally{v(!1)}}},F=async()=>{if(!k||!/^\d{6}$/.test(k))return void p("Enter the 6-digit code from your authenticator app");v(!0),p(null);try{let a=await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"verify-setup",code:k})}),c=await a.json();a.ok&&c.success?(await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-require-mode",requireMode:w})}),await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-trusted-networks",trustedNetworks:A})}),b({status:"enabled",enabled:!0,requireMode:w,trustedNetworks:A}),l(""),h(null),j(null),c.recoveryCodes&&t(c.recoveryCodes),r("Two-factor authentication enabled!")):p(c.error??"Invalid code")}catch{p("Network error")}finally{v(!1)}},G=async()=>{h(null),j(null),l(""),p(null);try{await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"disable"})}),b({status:"disabled",enabled:!1,requireMode:"always",trustedNetworks:ds})}catch{}},H=(0,e.useCallback)(async c=>{if(x(c),a?.status==="enabled")try{await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-require-mode",requireMode:c})}),b(a=>a?{...a,requireMode:c}:a)}catch{x(a.requireMode)}},[a]),I=(0,e.useCallback)(async()=>{let c=C.trim();if(!c||A.includes(c))return;let d=c.split("/");if(2!==d.length)return void p("Invalid CIDR format (e.g. 192.168.1.0/24)");let e=parseInt(d[1],10);if(isNaN(e)||e<0||e>128)return void p("Invalid CIDR prefix length");p(null);let f=[...A,c];if(B(f),D(""),a?.status==="enabled")try{await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-trusted-networks",trustedNetworks:f})}),b(a=>a?{...a,trustedNetworks:f}:a)}catch{B(A)}},[C,A,a]),J=(0,e.useCallback)(async c=>{let d=A.filter(a=>a!==c);if(B(d),a?.status==="enabled")try{await fetch("/api/auth/totp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-trusted-networks",trustedNetworks:d})}),b(a=>a?{...a,trustedNetworks:d}:a)}catch{B(A)}},[A,a]);return c?(0,d.jsx)("div",{style:{padding:20,fontSize:13,color:"var(--text-muted)"},children:"Loading…"}):(0,d.jsx)("div",{style:{height:"100%",overflowY:"auto",padding:20},children:(0,d.jsxs)("div",{style:{maxWidth:600,display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:16,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)",lineHeight:1.35},children:"Two-Factor Authentication"}),(0,d.jsx)("div",{style:{marginTop:4,fontSize:12,color:"var(--text-muted)",lineHeight:1.55},children:"Require a time-based one-time code in addition to your password."})]}),(0,d.jsx)(dt,{checked:a?.status==="enabled",onChange:()=>{}})]}),a&&(0,d.jsx)("div",{style:{fontSize:11,padding:"4px 10px",borderRadius:999,background:"enabled"===a.status?"rgba(34,197,94,0.12)":"pending"===a.status?"rgba(250,204,21,0.12)":"var(--bg-hover)",color:"enabled"===a.status?"#16a34a":"pending"===a.status?"#ca8a04":"var(--text-dim)",display:"inline-flex",alignSelf:"flex-start",fontWeight:600},children:"enabled"===a.status?"● Active":"pending"===a.status?"◐ Setup in progress":"○ Inactive"}),o&&(0,d.jsx)("div",{style:{fontSize:12,color:"#ef4444",padding:"8px 12px",background:"rgba(239,68,68,0.06)",borderRadius:6},children:o}),q&&!o&&(0,d.jsx)("div",{style:{fontSize:12,color:"#16a34a",padding:"8px 12px",background:"rgba(34,197,94,0.06)",borderRadius:6},children:q}),a?.status==="pending"&&g&&(0,d.jsxs)("div",{style:{padding:20,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",display:"flex",flexDirection:"column",alignItems:"center",gap:14},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:"Scan with your authenticator app"}),(0,d.jsx)("div",{style:{background:"#fff",padding:12,borderRadius:8,border:"1px solid var(--border)"},children:(0,d.jsx)("img",{src:g,alt:"TOTP QR Code",style:{display:"block",width:200,height:200}})}),i&&(0,d.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",textAlign:"center",maxWidth:280},children:[(0,d.jsx)("div",{style:{marginBottom:4},children:"Or enter this key manually:"}),(0,d.jsx)("code",{style:{fontSize:11,fontFamily:"var(--font-mono), monospace",wordBreak:"break-all",background:"var(--bg)",padding:"4px 8px",borderRadius:4},children:i.split("secret=")[1]?.split("&")[0]??"—"})]}),(0,d.jsxs)("div",{style:{width:"100%",maxWidth:260},children:[(0,d.jsx)("label",{style:{fontSize:12,color:"var(--text-dim)",display:"block",marginBottom:6},children:"Enter the 6-digit code to verify"}),(0,d.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,d.jsx)("input",{type:"text",inputMode:"numeric",pattern:"[0-9]{6}",maxLength:6,value:k,onChange:a=>l(a.target.value.replace(/\D/g,"").slice(0,6)),placeholder:"000 000",style:{flex:1,padding:"8px 12px",fontSize:16,fontFamily:"var(--font-mono), monospace",letterSpacing:"0.12em",textAlign:"center",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,d.jsx)("button",{type:"button",disabled:u||6!==k.length,onClick:F,style:{padding:"8px 16px",fontSize:13,fontWeight:600,background:6===k.length?"var(--accent)":"var(--bg-hover)",color:6===k.length?"#fff":"var(--text-dim)",border:"none",borderRadius:6,cursor:6===k.length?"pointer":"not-allowed"},children:u?"…":"Verify"})]})]}),(0,d.jsx)("button",{type:"button",onClick:G,style:{fontSize:12,color:"var(--text-dim)",background:"none",border:"none",cursor:"pointer"},children:"Cancel setup"})]}),s&&s.length>0&&(0,d.jsxs)("div",{style:{padding:20,border:"1px solid rgba(34,197,94,0.3)",borderRadius:8,background:"rgba(34,197,94,0.04)"},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)",marginBottom:6},children:"Recovery codes"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",marginBottom:12,lineHeight:1.55},children:"Save these codes in a safe place. Each can be used once to sign in if you lose access to your authenticator app. They will not be shown again."}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:6,fontFamily:"var(--font-mono), monospace",fontSize:12,color:"var(--text)"},children:s.map((a,b)=>(0,d.jsx)("code",{style:{padding:"6px 10px",background:"var(--bg)",borderRadius:4,border:"1px solid var(--border)"},children:a},b))}),(0,d.jsx)("button",{type:"button",onClick:()=>{t(null),r(null)},style:{marginTop:14,padding:"8px 18px",fontSize:13,fontWeight:600,background:"var(--accent)",color:"#fff",border:"none",borderRadius:6,cursor:"pointer"},children:"I've saved these codes"})]}),(a?.status==="enabled"||a?.status==="pending")&&!s&&(0,d.jsxs)("div",{style:{padding:16,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"var(--text)",marginBottom:12},children:"Scope"}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:14},children:[(0,d.jsx)(du,{label:"Require on all networks",description:"TOTP code is always required during login, even from localhost or LAN.",checked:"always"===w,onChange:()=>H("always")}),(0,d.jsx)(du,{label:"Skip on trusted networks",description:"TOTP code is only required when signing in from outside localhost or LAN.",checked:"untrusted"===w,onChange:()=>H("untrusted")})]}),"untrusted"===w&&!y&&(0,d.jsxs)("div",{style:{marginBottom:10,padding:"9px 12px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg)",fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:["This mode needs a trusted reverse proxy: set"," ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono), monospace"},children:"ANNOVIBE_TRUST_PROXY_HEADERS=1"})," ","so annovibe can read the client IP. Without it the IP is unknown and TOTP is required for every sign-in, including localhost."]}),"untrusted"===w&&(0,d.jsxs)("div",{style:{padding:"10px 12px",background:"var(--bg)",borderRadius:8,border:"1px solid var(--border)"},children:[(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",marginBottom:8,lineHeight:1.5},children:"Trusted CIDR blocks (TOTP will be skipped for requests from these IP ranges):"}),(0,d.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:10},children:A.map(a=>(0,d.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 8px",borderRadius:999,background:"var(--bg-panel)",border:"1px solid var(--border)",fontSize:11,fontFamily:"var(--font-mono), monospace",color:"var(--text)"},children:[a,(0,d.jsx)("button",{type:"button",onClick:()=>J(a),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-dim)",fontSize:13,lineHeight:1,padding:0},title:"Remove",children:"\xd7"})]},a))}),(0,d.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,d.jsx)("input",{type:"text",value:C,onChange:a=>D(a.target.value),onKeyDown:a=>{"Enter"===a.key&&I()},placeholder:"e.g. 192.168.1.0/24",style:{flex:1,padding:"6px 10px",fontSize:12,fontFamily:"var(--font-mono), monospace",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,d.jsx)("button",{type:"button",onClick:I,style:{padding:"6px 12px",fontSize:12,fontWeight:600,background:C.trim()?"var(--accent)":"var(--bg-hover)",color:C.trim()?"#fff":"var(--text-dim)",border:"none",borderRadius:6,cursor:C.trim()?"pointer":"not-allowed"},children:"Add"})]})]})]}),a?.status==="enabled"&&!s&&(0,d.jsxs)("div",{style:{padding:16,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:8},children:"Disable two-factor authentication"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",marginBottom:12,lineHeight:1.5},children:"Enter your current authenticator code to disable 2FA. This will make your account less secure."}),(0,d.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,d.jsx)("input",{type:"text",inputMode:"numeric",pattern:"[0-9]{6}",maxLength:6,value:m,onChange:a=>n(a.target.value.replace(/\D/g,"").slice(0,6)),placeholder:"000 000",style:{flex:1,padding:"8px 12px",fontSize:16,fontFamily:"var(--font-mono), monospace",letterSpacing:"0.12em",textAlign:"center",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,d.jsx)("button",{type:"button",disabled:u||6!==m.length,onClick:E,style:{padding:"8px 16px",fontSize:13,fontWeight:600,background:6===m.length?"rgba(239,68,68,0.85)":"var(--bg-hover)",color:6===m.length?"#fff":"var(--text-dim)",border:"none",borderRadius:6,cursor:6===m.length?"pointer":"not-allowed"},children:u?"…":"Disable 2FA"})]})]}),a?.status==="disabled"&&(0,d.jsxs)("div",{style:{padding:16,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.55},children:"When enabled, you'll need to enter a 6-digit code from your authenticator app (Google Authenticator, Authy, 1Password, etc.) each time you sign in from a new browser or after your session expires."}),(0,d.jsx)("button",{type:"button",disabled:u,onClick:E,style:{marginTop:14,padding:"8px 18px",fontSize:13,fontWeight:600,background:"var(--accent)",color:"#fff",border:"none",borderRadius:6,cursor:"pointer",opacity:u?.6:1},children:u?"Setting up…":"Set up authenticator"})]})]})})}function dw({cwd:a,embedded:b=!1}){let[c,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(!0),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=(0,e.useCallback)(async()=>{h(!0);try{let b=a?`?cwd=${encodeURIComponent(a)}`:"",c=await fetch(`/api/plugins${b}`,{cache:"no-store"}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);f(Array.isArray(d.packages)?d.packages:[]),j(null)}catch(a){j(a instanceof Error?a.message:String(a))}finally{h(!1)}},[a]),t=(0,e.useCallback)(async(b,c,d)=>{if(!q){r(c),l(null);try{let e=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:b,source:c,cwd:a,local:d})}),f=await e.json();if(!e.ok||f.error)throw Error(f.error??`HTTP ${e.status}`);l("install"===b?`Installed ${c}`:"remove"===b?`Removed ${c}`:`Updated ${c}`),"install"!==b||d||n(""),await s()}catch(a){j(a instanceof Error?a.message:String(a))}finally{r(null)}}},[q,a,s]),u=(0,e.useCallback)(()=>{let b=m.trim();b&&!q&&t("install",b,o&&!!a)},[q,a,o,t,m]);return(0,d.jsx)("div",{style:{height:"100%",overflowY:"auto",padding:20*!!b},children:(0,d.jsxs)("div",{style:{maxWidth:760,display:"flex",flexDirection:"column",gap:14},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:"Package plugins"}),(0,d.jsx)("div",{style:{marginTop:4,fontSize:12,color:"var(--text-muted)",lineHeight:1.55},children:"Install pi packages from npm or git. They can add extensions, skills, prompt templates, and themes. Changes apply to newly started sessions."})]}),(0,d.jsxs)("div",{style:{padding:12,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,d.jsx)("input",{value:m,onChange:a=>n(a.target.value),onKeyDown:a=>{"Enter"===a.key&&u()},placeholder:"npm package, @scope/package, or git URL",style:{flex:"1 1 300px",minWidth:0,padding:"7px 9px",fontSize:12,color:"var(--text)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,outline:"none"}}),(0,d.jsx)("button",{type:"button",onClick:u,disabled:!m.trim()||!!q,style:{padding:"7px 14px",fontSize:12,fontWeight:600,color:"var(--text)",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:6,cursor:!m.trim()||q?"not-allowed":"pointer",opacity:!m.trim()||q?.55:1},children:q===m.trim()?"Installing…":"Install"})]}),a&&(0,d.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:6,marginTop:8,fontSize:11.5,color:"var(--text-muted)",cursor:"pointer"},children:[(0,d.jsx)("input",{type:"checkbox",checked:o,onChange:a=>p(a.target.checked),style:{margin:0}}),"Install into this project (otherwise global)"]})]}),i&&(0,d.jsx)("div",{style:{padding:"7px 10px",fontSize:11.5,color:"#f87171",border:"1px solid rgba(248,113,113,0.35)",background:"rgba(248,113,113,0.06)",borderRadius:6},children:i}),k&&(0,d.jsx)("div",{style:{padding:"7px 10px",fontSize:11.5,color:"#34d399",border:"1px solid rgba(52,211,153,0.35)",background:"rgba(52,211,153,0.06)",borderRadius:6},children:k}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsxs)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:["Installed (",c.length,")"]}),(0,d.jsx)("button",{type:"button",onClick:()=>{s()},disabled:g,style:{padding:"3px 9px",fontSize:11,color:"var(--text-muted)",background:"none",border:"1px solid var(--border)",borderRadius:5,cursor:g?"wait":"pointer"},children:g?"Refreshing…":"Refresh"})]}),g&&0===c.length?(0,d.jsx)("div",{style:{padding:"18px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:"Loading packages…"}):0===c.length?(0,d.jsx)("div",{style:{padding:"18px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center",border:"1px dashed var(--border)",borderRadius:8},children:"No package plugins installed."}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:c.map(a=>{let b=[a.resources.extensions>0?`${a.resources.extensions} ext`:"",a.resources.skills>0?`${a.resources.skills} skills`:"",a.resources.prompts>0?`${a.resources.prompts} prompts`:"",a.resources.themes>0?`${a.resources.themes} themes`:""].filter(Boolean).join(" \xb7 ")||"no resources resolved",c=q===a.source;return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"10px 12px",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.source}),(0,d.jsx)("span",{style:{flexShrink:0,padding:"0 5px",fontSize:9.5,color:"var(--text-dim)",border:"1px solid var(--border)",borderRadius:3,textTransform:"uppercase"},children:a.scope}),a.filtered&&(0,d.jsx)("span",{style:{flexShrink:0,padding:"0 5px",fontSize:9.5,color:"var(--text-dim)",border:"1px solid var(--border)",borderRadius:3},children:"filtered"})]}),(0,d.jsx)("div",{style:{marginTop:3,fontSize:11,color:"var(--text-muted)"},children:b}),a.installedPath&&(0,d.jsx)("div",{title:a.installedPath,style:{marginTop:2,fontSize:10.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.installedPath})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:6,flexShrink:0},children:[(0,d.jsx)("button",{type:"button",disabled:!!q,onClick:()=>{t("update",a.source,"project"===a.scope)},style:{padding:"4px 9px",fontSize:11,color:"var(--text-muted)",background:"none",border:"1px solid var(--border)",borderRadius:5,cursor:q?"not-allowed":"pointer",opacity:q?.55:1},children:c?"Working…":"Update"}),(0,d.jsx)("button",{type:"button",disabled:!!q,onClick:()=>{window.confirm(`Remove ${a.source}?`)&&t("remove",a.source,"project"===a.scope)},style:{padding:"4px 9px",fontSize:11,color:"#f87171",background:"none",border:"1px solid rgba(248,113,113,0.35)",borderRadius:5,cursor:q?"not-allowed":"pointer",opacity:q?.55:1},children:"Remove"})]})]},a.source)})}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",lineHeight:1.55},children:"Tip: a package can also be a local path or git URL. Project installs require the project to be trusted."})]})})}function dx({checked:a,onChange:b}){return(0,d.jsx)("button",{type:"button",onClick:b,"aria-pressed":a,style:{width:44,height:24,borderRadius:999,border:"none",padding:0,cursor:"pointer",background:a?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",flexShrink:0},children:(0,d.jsx)("span",{style:{position:"absolute",top:3,left:a?23:3,width:18,height:18,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function dy(){return(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.38a2 2 0 0 0-.73-2.73l-.15-.09a2 2 0 0 1-1-1.74v-.51a2 2 0 0 1 1-1.72l.15-.1a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}function dz(a){return"projects"===a?(0,d.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M3 6.5A2.5 2.5 0 0 1 5.5 4H10l2 2.5h6.5A2.5 2.5 0 0 1 21 9v8.5A2.5 2.5 0 0 1 18.5 20h-13A2.5 2.5 0 0 1 3 17.5v-11Z"})}):"models"===a?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,d.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,d.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,d.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,d.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,d.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"})]}):"skills"===a?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),(0,d.jsx)("path",{d:"M2 17l10 5 10-5"}),(0,d.jsx)("path",{d:"M2 12l10 5 10-5"})]}):"plugins"===a?(0,d.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M20.5 7.5 16.5 3.5a2.1 2.1 0 0 0-3 3l1 1-6 6-1-1a2.1 2.1 0 0 0-3 3l4 4a2.1 2.1 0 0 0 3-3l-1-1 6-6 1 1a2.1 2.1 0 0 0 3-3Z"})}):"authenticator"===a?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"}),(0,d.jsx)("circle",{cx:"12",cy:"16",r:"1"})]}):"generative-ui"===a?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("path",{d:"M16 17h5"}),(0,d.jsx)("path",{d:"M18.5 14.5v5"})]}):(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M3 3v18h18"}),(0,d.jsx)("path",{d:"m19 9-5 5-4-4-3 3"}),(0,d.jsx)("path",{d:"M14 9h5v5"})]})}function dA({cwd:a,generativeUI:b,initialTab:c="projects",onGenerativeUIToggle:f,onClose:g,onModelsChanged:h,onProjectSelect:i,onProjectsChanged:j}){let[k,l]=(0,e.useState)(c),m=[{id:"projects",label:"Project",description:a?"Overview and paths":"Add or select a project",icon:dz("projects")},{id:"models",label:"Models",description:"~/.pi/agent/models.json",icon:dz("models")},{id:"authenticator",label:"Authenticator",description:"Two-factor authentication",icon:dz("authenticator")},{id:"skills",label:"Skills",description:a?"Project and global skills":"Select a project first",disabled:!a,icon:dz("skills")},{id:"plugins",label:"Plugins",description:a?"Global and project packages":"Global packages",icon:dz("plugins")},{id:"generative-ui",label:"Generative UI",description:b?"Enabled":"Disabled",icon:dz("generative-ui")},{id:"kernels",label:"Kernels",description:a?"Project R / Python kernels":"Global R / Python kernels",icon:dz("kernels")}],n=m.find(a=>a.id===k)??m[0];return(0,d.jsx)("div",{className:"settings-dialog-backdrop",onClick:a=>{a.target===a.currentTarget&&g()},children:(0,d.jsxs)("div",{className:"settings-dialog-shell",children:[(0,d.jsxs)("div",{className:"settings-dialog-header",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:9,minWidth:0},children:[(0,d.jsx)("span",{style:{color:"var(--text-muted)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,d.jsx)(dy,{})}),(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:15,fontWeight:700,color:"var(--text)",lineHeight:1.25},children:"Settings"}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.label})]})]}),(0,d.jsx)("button",{type:"button",onClick:g,title:"Close settings","aria-label":"Close settings",style:{width:30,height:30,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--text-muted)"},children:"x"})]}),(0,d.jsxs)("div",{className:"settings-dialog-body",children:[(0,d.jsx)("div",{className:"settings-dialog-tabs",children:m.map(a=>{let b=k===a.id;return(0,d.jsxs)("button",{type:"button",disabled:a.disabled,onClick:()=>l(a.id),className:"settings-dialog-tab",style:{background:b?"var(--bg-selected)":"transparent",color:b?"var(--text)":"var(--text-muted)",opacity:a.disabled?.45:1,cursor:a.disabled?"not-allowed":"pointer"},onMouseEnter:c=>{b||a.disabled||(c.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{b||(a.currentTarget.style.background="transparent")},children:[(0,d.jsx)("span",{style:{flexShrink:0,color:b?"var(--accent)":"currentColor",display:"flex"},children:a.icon}),(0,d.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("span",{style:{display:"block",fontSize:12,fontWeight:b?700:600,lineHeight:1.25},children:a.label}),(0,d.jsx)("span",{style:{display:"block",marginTop:2,fontSize:10,color:"var(--text-dim)",lineHeight:1.25,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.description})]})]},a.id)})}),(0,d.jsxs)("div",{className:"settings-dialog-panel",children:["projects"===k&&(0,d.jsx)(dq,{activeCwd:a,onSelectProject:i,onProjectsChanged:j}),"models"===k&&(0,d.jsx)(cT,{embedded:!0,onClose:()=>{h?.(),g()}}),"authenticator"===k&&(0,d.jsx)(dv,{}),"skills"===k&&a&&(0,d.jsx)(c$,{cwd:a,embedded:!0,onClose:g}),"plugins"===k&&(0,d.jsx)(dw,{cwd:a,embedded:!0}),"generative-ui"===k&&(0,d.jsx)("div",{style:{height:"100%",overflowY:"auto",padding:20},children:(0,d.jsxs)("div",{style:{maxWidth:720,display:"flex",flexDirection:"column",gap:18},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:18,padding:16,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)",lineHeight:1.35},children:"Generative UI"}),(0,d.jsx)("div",{style:{marginTop:5,fontSize:12,color:"var(--text-muted)",lineHeight:1.55},children:"Render structured widgets and safe visual code blocks directly in chat when the assistant produces UI content."})]}),(0,d.jsx)(dx,{checked:b,onChange:f})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:12},children:[(0,d.jsxs)("div",{style:{padding:14,border:"1px solid var(--border)",borderRadius:8},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--text)",marginBottom:5},children:"When enabled"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:"The agent prompt favors compact visual artifacts for icons, forms, dashboards, and small interactive UI when useful."})]}),(0,d.jsxs)("div",{style:{padding:14,border:"1px solid var(--border)",borderRadius:8},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--text)",marginBottom:5},children:"Fallback rendering"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:"Assistant SVG and safe HTML code blocks can be previewed instead of appearing only as source text."})]})]})]})}),"kernels"===k&&(0,d.jsx)(c7,{cwd:a})]})]})]})})}function dB({initialWidth:a,minWidth:b,maxWidth:c,storageKey:d,direction:f="right"}){let[g,h]=(0,e.useState)(a),[i,j]=(0,e.useState)(!1),k=(0,e.useRef)(a),l=(0,e.useCallback)(a=>{let e=Math.max(b,Math.min(c,a));h(e),k.current=e,document.documentElement.style.setProperty(d,`${e}px`)},[b,c,d]),m=(0,e.useCallback)(()=>{j(!0)},[]),n=(0,e.useCallback)(a=>{let b="left"===f?-1:1;l(k.current+a*b)},[l,f]);return{beginResize:m,endResize:(0,e.useCallback)(()=>{j(!1);try{localStorage.setItem(d,String(k.current))}catch{}},[d]),isResizing:i,resizeBy:n,width:g,widthRef:k}}let dC=new Set(["pdf","png","jpg","jpeg","gif","webp","svg","bmp","ico","avif"]);function dD(a){let b=a.toLowerCase();return b.endsWith(".rds")||b.endsWith(".qs")}function dE(a){return a.toLowerCase().endsWith(".h5ad")}function dF(a){let b=(a.split(/[\\/]/).pop()??a).toLowerCase().split(".").pop()??"";return dC.has(b)}function dG(){let a,b,c,f,h,i,j,k=(0,g.useRouter)(),l=(0,g.useSearchParams)(),{isDark:m,toggleTheme:n}=(0,bE.D)(),o=function(){let[a,b]=(0,e.useState)(!1);return a}(),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(0),[x,y]=(0,e.useState)(0),[z,A]=(0,e.useState)(0),[B,C]=(0,e.useState)(0),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)("projects"),[H,J]=(0,e.useState)({generativeUI:!0,forkEnabled:!0,forkSuggestTokens:18e4,forkAutoTokens:4e5,forkMinMessages:20}),[K,P]=(0,e.useState)(!0),Q=dB({initialWidth:260,minWidth:180,maxWidth:500,storageKey:"--pi-sidebar-width"}),R=dB({initialWidth:500,minWidth:300,maxWidth:1200,storageKey:"--pi-right-panel-width",direction:"left"}),S=(0,e.useRef)(null),T=(0,e.useRef)(null),[U,V]=(0,e.useState)([]),[W,X]=(0,e.useState)(null),Y=(0,e.useRef)(null),Z=(0,e.useCallback)((a,b,c)=>{V(a),X(b),Y.current=c},[]),$=(0,e.useCallback)(a=>{Y.current?.(a)},[]),[_,aa]=(0,e.useState)(!1),[ab,ac]=(0,e.useState)(""),ad=(0,e.useRef)(null),ae=(0,e.useRef)(!1),[af,ag]=(0,e.useState)({kind:"idle"}),ah=(0,e.useRef)(null),ai=(0,e.useCallback)(async()=>{let a=p?.id;if(a&&"naming"!==af.kind){ah.current&&clearTimeout(ah.current),ag({kind:"naming"});try{let b=await fetch(`/api/sessions/${encodeURIComponent(a)}/auto-name`,{method:"POST"}),c=await b.json().catch(()=>({}));if(!b.ok||!c.title)throw Error(c.error||`HTTP ${b.status}`);let d=c.title.trim();w(a=>a+1),q(b=>b?.id===a?{...b,name:d}:b),ag({kind:"success"}),ah.current=setTimeout(()=>ag({kind:"idle"}),1800)}catch(a){ag({kind:"error",message:a instanceof Error?a.message:String(a)}),ah.current=setTimeout(()=>ag({kind:"idle"}),5e3)}}},[af.kind,p?.id]),aj=(0,e.useCallback)(a=>a?a.name||a.firstMessage.slice(0,80)||a.id.slice(0,12):"",[]),ak=(0,e.useCallback)(()=>{p&&(ae.current=!1,ac(p.name||aj(p)),aa(!0),setTimeout(()=>ad.current?.select(),0))},[aj,p]),al=(0,e.useCallback)(async()=>{if(ae.current){ae.current=!1,aa(!1);return}if(!p)return void aa(!1);let a=ab.trim(),b=aj(p);if(aa(!1),a!==(p.name??"")&&(p.name||a!==b))try{(await fetch(`/api/sessions/${encodeURIComponent(p.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a})})).ok&&(q(b=>b&&b.id===p.id?{...b,name:a}:b),w(a=>a+1))}catch{}},[aj,p,ab]),am=(0,e.useCallback)(a=>{"Enter"===a.key?(a.preventDefault(),al()):"Escape"===a.key&&(ae.current=!0,aa(!1))},[al]),an=(0,e.useCallback)(()=>{let a=!H.generativeUI;J(b=>({...b,generativeUI:a})),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{generativeUI:a}})}).then(a=>a.ok?a.json():Promise.reject(Error(`HTTP ${a.status}`))).then(a=>{J(b=>({...b,..."boolean"==typeof a.settings?.generativeUI?{generativeUI:a.settings.generativeUI}:{}}))}).catch(()=>J(a=>({...a,generativeUI:!a.generativeUI})))},[H.generativeUI]),[ao,ap]=(0,e.useState)(null),aq=(0,e.useCallback)(a=>{ap(a)},[]),[ar,as]=(0,e.useState)(null),at=(0,e.useCallback)(a=>{as(a)},[]),[au,av]=(0,e.useState)(null),aw=au?.updateAvailable&&au.latest?{label:`Update ${au.latest}`,title:`Current: v${au.current}
21
21
  Latest: v${au.latest}
22
- Run: ${au.updateCommand}`}:null,[ax,ay]=(0,e.useState)([]),[az,aA]=(0,e.useState)("files"),[aB,aC]=(0,e.useState)(!1),[aD,aE]=(0,e.useState)(null),[aF,aG]=(0,e.useState)(0),[aH,aI]=(0,e.useState)([]),aJ=(0,e.useCallback)(a=>{S.current?.insertText("`"+a+"`")},[]),[aK]=(0,e.useState)(()=>l.get("session")),[aN,aP]=(0,e.useState)(null),[aR,aS]=(0,e.useState)(()=>!l.get("session")),aT=(0,e.useRef)(!1),aU=(0,e.useCallback)(a=>{aP(a),aE(null),a&&!aT.current&&(u(function(a,b=null){if(!b||!a)return null;let c=K(a);return c?L(b)[c]??null:null}(a)),q(b=>b&&b.cwd!==a?null:b),s(b=>b&&b!==a?null:b),y(a=>a+1),A(a=>a+1),V([]),X(null),k.replace("/",{scroll:!1}))},[k]),aV=(0,e.useCallback)((a,b)=>{aU(a),b?.closeDialog!==!1&&E(!1),w(a=>a+1)},[aU]),aW=(0,e.useCallback)((a,b=!1)=>{u(null),N(a.cwd,a.id),s(null),aP(a.cwd),q(a),y(a=>a+1),aS(!0),b&&(aT.current=!0,setTimeout(()=>{aT.current=!1},0)),b||k.replace(`?session=${encodeURIComponent(a.id)}`,{scroll:!1})},[k]),aX=(0,e.useCallback)((a,b)=>{u(null),q(null),s(b),aP(b),y(a=>a+1),V([]),X(null),k.replace("/",{scroll:!1})},[k]),aY=(0,e.useCallback)(a=>{u(null),N(a.cwd,a.id),s(null),aP(a.cwd),q(a),w(a=>a+1),k.replace(`?session=${encodeURIComponent(a.id)}`,{scroll:!1}),window.dispatchEvent(new CustomEvent("session-created"))},[k]),aZ=(0,e.useCallback)(()=>{w(a=>a+1),A(a=>a+1)},[]),a$=(0,e.useCallback)(a=>{u(null),w(a=>a+1),y(a=>a+1),s(null),q(b=>{let c=b?.cwd??aN??"";return c&&N(c,a),{...b??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:a}}),k.replace(`?session=${encodeURIComponent(a)}`,{scroll:!1})},[aN,k]),a_=(0,e.useCallback)(()=>{aS(!0)},[]),a0=(0,e.useCallback)(a=>{if(w(a=>a+1),p?.id===a){!function(a,b,c=null){if(!c||!a)return;let d=K(a);if(!d)return;let e=L(c);d in e&&(b&&e[d]!==b||(delete e[d],M(c,e)))}(p.cwd,a);let b=p.cwd;q(null),s(b??null),y(a=>a+1),V([]),X(null),k.replace("/",{scroll:!1})}},[p,k]),a1=p?.cwd??r??aN??null,[a2,a3]=(0,e.useState)(null),a4=(0,e.useCallback)((a,b)=>{if(dB(a)||dB(b))return void aE({mode:"start",appType:"stexp",filePath:a,cwd:a1,appId:null});if(dD(a)||dD(b)){let c=`preview:${a}`;aI(d=>{let e=d.find(a=>a.id===c),f=d.filter(a=>a.id!==c);return f.push(e?{...e,filePath:a,fileName:b}:{id:c,filePath:a,fileName:b}),f});return}let c=`file:${a}`;ay(d=>d.find(a=>a.id===c)?d:[...d,{id:c,label:b,filePath:a}]),aA(c),aC(!0)},[a1]),a5=(0,e.useCallback)((a,b)=>{ay(c=>c.map(c=>{if(c.id!==a)return c;let d=c.viewerState;return d&&d.scrollTop===b.scrollTop&&d.previewMode===b.previewMode&&d.viewMode===b.viewMode&&d.wrapLines===b.wrapLines?c:{...c,viewerState:b}}))},[]),a6=(0,e.useCallback)((a,b,c)=>{c&&c>0&&a3(c),a4(a,b)},[a4]),a7=(0,e.useCallback)((a,b)=>{(dC(a)||dC(b))&&aE({mode:"start",appType:"h5adexp",filePath:a,cwd:a1,appId:null})},[a1]),a8=(0,e.useCallback)(()=>{aA("tools"),aC(!0),aG(a=>a+1)},[]),a9=(0,e.useCallback)(a=>{aE({mode:"existing",appType:a.appType,filePath:a.filePath,cwd:a.cwd,appId:a.id}),aG(a=>a+1)},[]),ba=(0,e.useCallback)(a=>{aG(a=>a+1),aE(b=>b&&(b.appId===a.id||b.appType===a.appType&&b.filePath===a.filePath&&b.cwd===a.cwd)?"stopped"===a.status||"error"===a.status?null:{mode:"existing",appType:a.appType,filePath:a.filePath,cwd:a.cwd,appId:a.id}:b)},[]),bb=(0,e.useCallback)(a=>{aI(b=>b.filter(b=>b.id!==a))},[]),bc=(0,e.useCallback)(a=>{aI(b=>{let c=b.findIndex(b=>b.id===a);if(c<0||c===b.length-1)return b;let d=[...b],[e]=d.splice(c,1);return d.push(e),d})},[]),bd=(0,e.useCallback)(a=>{"files"!==a&&(ay(b=>b.filter(b=>b.id!==a)),aA(b=>{if(b!==a)return b;let c=ax.filter(b=>b.id!==a);return c.length>0?c[c.length-1].id:"files"}))},[ax]),be=r??(null===p&&aN?aN:null),bf=null!==p||null!==be,bg=aR&&!bf,bh=[{id:"files",label:"Files",closable:!1,icon:"files"},{id:"tools",label:"Status",closable:!1,icon:"tools"},...ax],bi=ax.find(a=>a.id===az)??null,bj=p?aj(p):be?"New chat":"No session",bk=p?.cwd??be??aN??"",bl=bk?bk.replace(/\/+$/,"").split(/[\\/]/).filter(Boolean).pop()||bk:"",bm=(0,e.useCallback)((a="projects")=>{H(a),E(!0)},[]),bn=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(F,{selectedSessionId:p?.id??null,onSelectSession:aW,onNewSession:aX,initialSessionId:aK,onInitialRestoreDone:a_,restoreSessionId:t,onRestoreSessionDone:()=>u(null),refreshKey:v,onSessionDeleted:a0,selectedCwd:p?.cwd??r??aN??null,onCwdChange:aU}),(0,d.jsx)("div",{style:{padding:"8px",flexShrink:0},children:(0,d.jsx)("button",{type:"button",onClick:()=>bm("projects"),title:"Settings","aria-label":"Settings",style:{width:34,display:"flex",alignItems:"center",justifyContent:"center",height:34,padding:0,background:"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:"pointer",fontSize:12,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color="var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.38a2 2 0 0 0-.73-2.73l-.15-.09a2 2 0 0 1-1-1.74v-.51a2 2 0 0 1 1-1.72l.15-.1a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})})]});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{style:{display:"flex",height:"100dvh",overflow:"hidden",background:"var(--bg)"},children:[(0,d.jsx)("div",{className:"sidebar-overlay-backdrop",onClick:()=>P(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!O,pointerEvents:O?"auto":"none",transition:"opacity 0.25s ease"}}),(0,d.jsx)("div",{className:`sidebar-container${O?" sidebar-open":" sidebar-closed"}`,style:{background:"var(--bg-panel)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,zIndex:200,width:Q.width,minWidth:Q.width,transition:O||Q.isResizing?"none":void 0},children:bn}),O&&(0,d.jsx)(bF,{side:"right",ariaLabel:"Resize sidebar",onResizeStart:Q.beginResize,onResize:Q.resizeBy,onResizeEnd:Q.endResize}),(0,d.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,d.jsxs)("div",{ref:T,className:"app-topbar",style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,borderBottom:"1px solid var(--border)",height:48,padding:"0 8px",background:"var(--bg)"},children:[(0,d.jsx)("button",{className:"topbar-sidebar-toggle",onClick:()=>P(a=>!a),title:O?"Hide sidebar":"Show sidebar",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.background="var(--bg-panel)"},children:O?(0,d.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,d.jsx)("line",{x1:"9",y1:"3",x2:"9",y2:"21"})]}):(0,d.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,d.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),(0,d.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),(0,d.jsxs)("div",{className:"topbar-title-area",style:{display:"flex",alignItems:"center",gap:7,minWidth:0,flex:1},children:[(0,d.jsx)("div",{style:{minWidth:0,display:"flex",alignItems:"center",gap:6},children:_&&p?(0,d.jsx)("input",{ref:ad,value:ab,onChange:a=>ac(a.target.value),onKeyDown:am,onBlur:()=>void al(),style:{width:"min(360px, 34vw)",height:28,boxSizing:"border-box",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)",padding:"0 8px",fontSize:13,fontWeight:500,outline:"none"}}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"topbar-session-title",title:bj,style:{minWidth:0,maxWidth:"min(420px, 36vw)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:bf?"var(--text)":"var(--text-muted)",fontSize:14,fontWeight:600,lineHeight:1.2},children:bj}),p&&(0,d.jsx)("button",{type:"button",className:"topbar-rename-button",onClick:ak,title:"Rename session",style:{width:22,height:22,display:"flex",alignItems:"center",justifyContent:"center",padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-dim)",cursor:"pointer",flexShrink:0},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)",a.currentTarget.style.background="transparent"},children:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 20h9"}),(0,d.jsx)("path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"})]})})]})}),bl&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"topbar-project-crumb",style:{color:"var(--text-dim)",fontSize:12,flexShrink:0},children:"/"}),(0,d.jsx)("span",{className:"topbar-project-crumb",title:bk||bl,style:{minWidth:0,maxWidth:"min(280px, 24vw)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-muted)",fontSize:12,lineHeight:1.2},children:bl})]})]}),bf&&!o&&(0,d.jsxs)("div",{className:"topbar-chat-tools",style:{display:"flex",alignItems:"center",gap:6,height:28,flexShrink:0},children:[p&&(0,d.jsx)("a",{className:"topbar-export-button",href:`/api/sessions/${encodeURIComponent(p.id)}/export`,download:!0,title:"Export session as HTML","aria-label":"Export session as HTML",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,color:"var(--text-muted)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,textDecoration:"none",flexShrink:0},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.background="var(--bg-panel)"},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,d.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,d.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})}),(a=!!(p&&p.messageCount>0),b="naming"===af.kind,c="success"===af.kind,f="error"===af.kind,h=!p||!a||b,i=b?"Naming…":c?"Title updated":f?"Title failed":"Auto title",j=p?a?f?af.message??"Title generation failed":b?"Generating a title from the conversation…":"Generate a title with the current model":"No messages yet":"No session selected",(0,d.jsxs)("button",{type:"button",className:"topbar-auto-title-button",onClick:()=>{ai()},disabled:h,title:j,"aria-label":i,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,height:28,padding:"0 9px",background:c?"rgba(34,197,94,0.10)":f?"rgba(239,68,68,0.10)":"var(--bg-panel)",border:`1px solid ${c?"rgba(34,197,94,0.45)":f?"rgba(239,68,68,0.45)":"var(--border)"}`,borderRadius:7,cursor:h?"not-allowed":"pointer",color:c?"rgba(34,197,94,0.95)":f?"#dc2626":h?"var(--text-dim)":"var(--text-muted)",fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s",opacity:h&&!b?.55:1},onMouseEnter:a=>{h||(a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{a.currentTarget.style.color=c?"rgba(34,197,94,0.95)":f?"#dc2626":"var(--text-muted)",a.currentTarget.style.background=c?"rgba(34,197,94,0.10)":f?"rgba(239,68,68,0.10)":"var(--bg-panel)"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("path",{d:"M12 3v2"}),(0,d.jsx)("path",{d:"M12 19v2"}),(0,d.jsx)("path",{d:"M3 12h2"}),(0,d.jsx)("path",{d:"M19 12h2"}),(0,d.jsx)("path",{d:"m5.6 5.6 1.4 1.4"}),(0,d.jsx)("path",{d:"m17 17 1.4 1.4"}),(0,d.jsx)("path",{d:"m5.6 18.4 1.4-1.4"}),(0,d.jsx)("path",{d:"m17 7 1.4-1.4"})]}),(0,d.jsx)("span",{className:"topbar-auto-title-label",children:i})]}))]}),aw&&(0,d.jsx)("button",{type:"button",className:"topbar-update-button",title:aw.title,onClick:()=>navigator.clipboard?.writeText(au?.updateCommand??"").catch(()=>{}),style:{height:28,padding:"0 9px",borderRadius:7,border:"1px solid rgba(34,197,94,0.35)",background:"rgba(34,197,94,0.10)",color:"rgba(34,197,94,0.95)",cursor:"pointer",fontSize:11,fontWeight:650,whiteSpace:"nowrap",flexShrink:0},children:aw.label}),bf&&(ao||ar)&&(()=>{let a=ao?.tokens,b=a=>a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(0)}k`:String(a),c="var(--text-muted)",e=null;if(ar?.contextWindow){let a=ar.percent;null!==a&&a>90?c="#ef4444":null!==a&&a>70&&(c="rgba(234,179,8,0.95)"),e=null!==a?`${a.toFixed(0)}% / ${b(ar.contextWindow)}`:`? / ${b(ar.contextWindow)}`}let f=[];if(a&&(f.push(`in: ${a.input.toLocaleString()}`),f.push(`out: ${a.output.toLocaleString()}`),f.push(`cache read: ${a.cacheRead.toLocaleString()}`),f.push(`cache write: ${a.cacheWrite.toLocaleString()}`)),ar?.contextWindow){let a=ar.percent;f.push(`context: ${null!==a?a.toFixed(1)+"%":"unknown"} of ${ar.contextWindow.toLocaleString()} tokens`)}let g=f.join(" | ");return(0,d.jsxs)("div",{className:"topbar-session-stats",title:g,style:{display:"flex",alignItems:"center",gap:10,padding:"0 8px",height:28,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:"default",fontVariantNumeric:"tabular-nums"},children:[a&&a.input>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,d.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),b(a.input)]}),a&&a.output>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,d.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),b(a.output)]}),a&&a.cacheRead>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,d.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),b(a.cacheRead)]}),e&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:c},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,d.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),e]})]})})(),(0,d.jsx)("button",{type:"button",className:"topbar-icon-button topbar-generate-ui-toggle",onClick:an,title:`生成式 UI: ${I.generativeUI?"on":"off"}`,"aria-label":`生成式 UI: ${I.generativeUI?"on":"off"}`,style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:28,padding:0,background:I.generativeUI?"var(--bg-selected)":"var(--bg-panel)",border:`1px solid ${I.generativeUI?"rgba(37,99,235,0.45)":"var(--border)"}`,borderRadius:7,color:I.generativeUI?"var(--accent)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color=I.generativeUI?"var(--accent)":"var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color=I.generativeUI?"var(--accent)":"var(--text-muted)",a.currentTarget.style.background=I.generativeUI?"var(--bg-selected)":"var(--bg-panel)"},children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("path",{d:"M16 17h5"}),(0,d.jsx)("path",{d:"M18.5 14.5v5"})]})}),(0,d.jsx)("button",{className:"topbar-icon-button topbar-theme-toggle",onClick:a=>{let b=a.currentTarget.getBoundingClientRect();n({x:b.left+b.width/2,y:b.top+b.height/2})},title:m?"Switch to light mode":"Switch to dark mode","aria-label":m?"Switch to light mode":"Switch to dark mode","aria-pressed":m,style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:28,padding:0,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.background="var(--bg-panel)"},children:m?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,d.jsx)("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),(0,d.jsx)("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),(0,d.jsx)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),(0,d.jsx)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),(0,d.jsx)("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),(0,d.jsx)("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),(0,d.jsx)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),(0,d.jsx)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]}):(0,d.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})}),(0,d.jsx)("button",{className:"topbar-icon-button topbar-right-panel-toggle",onClick:()=>aC(a=>!a),title:aB?"Hide right panel":"Show right panel","aria-label":aB?"Hide right panel":"Show right panel",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:28,padding:0,background:aB?"var(--bg-selected)":"var(--bg-panel)",border:`1px solid ${aB?"rgba(37,99,235,0.45)":"var(--border)"}`,borderRadius:7,color:aB?"var(--accent)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color=aB?"var(--accent)":"var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color=aB?"var(--accent)":"var(--text-muted)",a.currentTarget.style.background=aB?"var(--bg-selected)":"var(--bg-panel)"},children:(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,d.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:bf?(0,d.jsx)(aL,{session:p,newSessionCwd:be,onAgentEnd:aZ,onSessionCreated:aY,onSessionForked:a$,modelsRefreshKey:B,chatInputRef:S,onBranchDataChange:Z,onSessionStatsChange:aq,onContextUsageChange:at,generativeUI:I.generativeUI,forkSettings:{enabled:I.forkEnabled,suggestTokens:I.forkSuggestTokens,autoTokens:I.forkAutoTokens,minMessages:I.forkMinMessages},activeFilePath:bi?.filePath??null,onOpenFileAtLine:a6},x):bg?aN?(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:"Select a session from the sidebar"}):(0,d.jsxs)("div",{className:"empty-start-surface",style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,d.jsxs)("svg",{width:"44",height:"44",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",style:{opacity:.7,flexShrink:0},children:[(0,d.jsx)("line",{x1:"20",y1:"12",x2:"4",y2:"12"}),(0,d.jsx)("polyline",{points:"10 6 4 12 10 18"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:"Get Started"}),(0,d.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),"Select a project directory from the sidebar",(0,d.jsx)("br",{}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),"Add models via the ",(0,d.jsx)("strong",{style:{color:"var(--text)"},children:"Models"})," button at the bottom"]})]})]}):null})]}),aB&&(0,d.jsx)(bF,{side:"left",ariaLabel:"Resize right panel",onResizeStart:R.beginResize,onResize:R.resizeBy,onResizeEnd:R.endResize}),(0,d.jsxs)("div",{className:`right-panel-container${aB?" right-panel-open":" right-panel-closed"}`,style:{display:aB?"flex":"none",flexDirection:"column",borderLeft:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,width:R.width,minWidth:R.width,transition:R.isResizing?"none":void 0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",height:36},children:[(0,d.jsxs)("button",{type:"button",className:"right-panel-back-button",onClick:()=>aC(!1),title:"Back to chat","aria-label":"Back to chat",style:{height:36,padding:"0 10px",border:"none",borderRight:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,alignItems:"center",gap:6,flexShrink:0},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),(0,d.jsx)("polyline",{points:"12 19 5 12 12 5"})]}),(0,d.jsx)("span",{children:"Chat"})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,d.jsx)(bX,{tabs:bh,activeTabId:az,onSelectTab:aA,onCloseTab:bd,onAskAI:a=>{let b=`I'm looking at \`${a}\`. `;S?.current?.insertIfEmpty(b)}})})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"hidden"},children:"files"===az?(0,d.jsx)(bA,{cwd:aN??p?.cwd??r??null,refreshKey:z,onOpenFile:a4,onExploreFile:a7,onAtMention:aJ,watchEnabled:aB&&"files"===az}):"tools"===az?(0,d.jsx)(bR,{refreshKey:aF,visibleAppId:aD?.appId??null,cwd:aN??p?.cwd??r??null,onOpenApp:a9,onAppChanged:ba,agentRuntimeExtra:(0,d.jsx)(b$,{tree:U,activeLeafId:W,onLeafChange:$,hasSession:!!p,embedded:!0})}):bi?.filePath?bi.filePath.startsWith("__")?(0,d.jsx)(bE,{filePath:bi.filePath}):(0,d.jsx)(aO,{filePath:bi.filePath,children:(0,d.jsx)(aM.h,{filePath:bi.filePath,cwd:aN??void 0,onOpenFile:a4,scrollToLine:a2,viewerState:bi.viewerState,onViewerStateChange:a=>a5(bi.id,a)})}):(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:"No file open"})})]})]}),D&&(0,d.jsx)(dy,{cwd:a1,generativeUI:I.generativeUI,initialTab:G,onGenerativeUIToggle:an,onModelsChanged:()=>C(a=>a+1),onProjectSelect:aV,onProjectsChanged:()=>w(a=>a+1),onClose:()=>{E(!1),C(a=>a+1)}}),(0,d.jsx)(bK,{appType:aD?.appType??"stexp",filePath:aD?.filePath??null,cwd:aD?.cwd??null,appId:aD?.appId??null,sessionId:p?.id??null,onClose:()=>aE(null),onAppChanged:ba,onOpenTools:a8}),aH.map((a,b)=>(0,d.jsx)(aQ,{id:a.id,filePath:a.filePath,fileName:a.fileName,cwd:aN??p?.cwd??r??void 0,active:b===aH.length-1,stackIndex:b,zIndex:700+b,onClose:bb,onFocus:bc,onOpenFile:a4},a.id))]})}},86491:(a,b)=>{let c="\x1b[37m",d="\x1b[30m",e="\x1b[0m",f="\x1b[47m"+d,g="\x1b[40m"+c,h=function(a,b,c,d){let e=b+1;return c>=e||d>=e||d<-1||c<-1?"0":c>=b||d>=b||d<0||c<0?"1":a[d*b+c]?"2":"1"},i=function(a,b,c,d){return h(a,b,c,d)+h(a,b,c,d+1)};b.render=function(a,b,h){var j,k;let l=a.modules.size,m=a.modules.data,n=!!(b&&b.inverse),o=b&&b.inverse?g:f,p={"00":e+" "+o,"01":e+(j=n?d:c)+"▄"+o,"02":e+(k=n?c:d)+"▄"+o,10:e+j+"▀"+o,11:" ",12:"▄",20:e+k+"▀"+o,21:"▀",22:"█"},q=e+"\n"+o,r=o;for(let a=-1;a<l+1;a+=2){for(let b=-1;b<l;b++)r+=p[i(m,l,b,a)];r+=p[i(m,l,l,a)]+q}return r+=e,"function"==typeof h&&h(null,r),r}},88066:(a,b,c)=>{let d=c(58305).getSymbolSize;b.getRowColCoords=function(a){if(1===a)return[];let b=Math.floor(a/7)+2,c=d(a),e=145===c?26:2*Math.ceil((c-13)/(2*b-2)),f=[c-7];for(let a=1;a<b-1;a++)f[a]=f[a-1]-e;return f.push(6),f.reverse()},b.getPositions=function(a){let c=[],d=b.getRowColCoords(a),e=d.length;for(let a=0;a<e;a++)for(let b=0;b<e;b++)(0!==a||0!==b)&&(0!==a||b!==e-1)&&(a!==e-1||0!==b)&&c.push([d[a],d[b]]);return c}},88397:(a,b)=>{function c(a){if("number"==typeof a&&(a=a.toString()),"string"!=typeof a)throw Error("Color should be defined as hex string");let b=a.slice().replace("#","").split("");if(b.length<3||5===b.length||b.length>8)throw Error("Invalid hex color: "+a);(3===b.length||4===b.length)&&(b=Array.prototype.concat.apply([],b.map(function(a){return[a,a]}))),6===b.length&&b.push("F","F");let c=parseInt(b.join(""),16);return{r:c>>24&255,g:c>>16&255,b:c>>8&255,a:255&c,hex:"#"+b.slice(0,6).join("")}}b.getOptions=function(a){a||(a={}),a.color||(a.color={});let b=void 0===a.margin||null===a.margin||a.margin<0?4:a.margin,d=a.width&&a.width>=21?a.width:void 0,e=a.scale||4;return{width:d,scale:d?4:e,margin:b,color:{dark:c(a.color.dark||"#000000ff"),light:c(a.color.light||"#ffffffff")},type:a.type,rendererOpts:a.rendererOpts||{}}},b.getScale=function(a,b){return b.width&&b.width>=a+2*b.margin?b.width/(a+2*b.margin):b.scale},b.getImageWidth=function(a,c){let d=b.getScale(a,c);return Math.floor((a+2*c.margin)*d)},b.qrToImageData=function(a,c,d){let e=c.modules.size,f=c.modules.data,g=b.getScale(e,d),h=Math.floor((e+2*d.margin)*g),i=d.margin*g,j=[d.color.light,d.color.dark];for(let b=0;b<h;b++)for(let c=0;c<h;c++){let k=(b*h+c)*4,l=d.color.light;b>=i&&c>=i&&b<h-i&&c<h-i&&(l=j[+!!f[Math.floor((b-i)/g)*e+Math.floor((c-i)/g)]]),a[k++]=l.r,a[k++]=l.g,a[k++]=l.b,a[k]=l.a}}},90082:(a,b,c)=>{b.render=c(32835).render,b.renderToFile=function(a,d,e,f){void 0===f&&(f=e,e=void 0);let g=c(29021),h=b.render(d,e);g.writeFile(a,'<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'+h,f)}},92858:(a,b,c)=>{"use strict";let d=c(59725),e=[function(){},function(a,b,c,d){if(d===b.length)throw Error("Ran out of data");let e=b[d];a[c]=e,a[c+1]=e,a[c+2]=e,a[c+3]=255},function(a,b,c,d){if(d+1>=b.length)throw Error("Ran out of data");let e=b[d];a[c]=e,a[c+1]=e,a[c+2]=e,a[c+3]=b[d+1]},function(a,b,c,d){if(d+2>=b.length)throw Error("Ran out of data");a[c]=b[d],a[c+1]=b[d+1],a[c+2]=b[d+2],a[c+3]=255},function(a,b,c,d){if(d+3>=b.length)throw Error("Ran out of data");a[c]=b[d],a[c+1]=b[d+1],a[c+2]=b[d+2],a[c+3]=b[d+3]}],f=[function(){},function(a,b,c,d){let e=b[0];a[c]=e,a[c+1]=e,a[c+2]=e,a[c+3]=d},function(a,b,c){let d=b[0];a[c]=d,a[c+1]=d,a[c+2]=d,a[c+3]=b[1]},function(a,b,c,d){a[c]=b[0],a[c+1]=b[1],a[c+2]=b[2],a[c+3]=d},function(a,b,c){a[c]=b[0],a[c+1]=b[1],a[c+2]=b[2],a[c+3]=b[3]}];b.dataToBitMap=function(a,b){let c,g,h,i,j,k,l=b.width,m=b.height,n=b.depth,o=b.bpp,p=b.interlace;8!==n&&(c=[],g=0,h={get:function(b){for(;c.length<b;)!function(){let b,d,e,f;if(g===a.length)throw Error("Ran out of data");let h=a[g];switch(g++,n){default:throw Error("unrecognised depth");case 16:e=a[g],g++,c.push((h<<8)+e);break;case 4:e=15&h,f=h>>4,c.push(f,e);break;case 2:b=3&h,d=h>>2&3,e=h>>4&3,f=h>>6&3,c.push(f,e,d,b);break;case 1:b=h>>4&1,d=h>>5&1,e=h>>6&1,f=h>>7&1,c.push(f,e,d,b,h>>3&1,h>>2&1,h>>1&1,1&h)}}();let d=c.slice(0,b);return c=c.slice(b),d},resetAfterLine:function(){c.length=0},end:function(){if(g!==a.length)throw Error("extra data found")}}),i=n<=8?Buffer.alloc(l*m*4):new Uint16Array(l*m*4);let q=Math.pow(2,n)-1,r=0;if(p)j=d.getImagePasses(l,m),k=d.getInterlaceIterator(l,m);else{let a=0;k=function(){let b=a;return a+=4,b},j=[{width:l,height:m}]}for(let b=0;b<j.length;b++)8===n?r=function(a,b,c,d,f,g){let h=a.width,i=a.height,j=a.index;for(let a=0;a<i;a++)for(let i=0;i<h;i++){let h=c(i,a,j);e[d](b,f,h,g),g+=d}return g}(j[b],i,k,o,a,r):function(a,b,c,d,e,g){let h=a.width,i=a.height,j=a.index;for(let a=0;a<i;a++){for(let i=0;i<h;i++){let h=e.get(d),k=c(i,a,j);f[d](b,h,k,g)}e.resetAfterLine()}}(j[b],i,k,o,h,q);if(8===n){if(r!==a.length)throw Error("extra data found")}else h.end();return i}},93669:(a,b,c)=>{let d=c(83929),e=c(64323);b.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},b.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},b.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},b.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},b.MIXED={bit:-1},b.getCharCountIndicator=function(a,b){if(!a.ccBits)throw Error("Invalid mode: "+a);if(!d.isValid(b))throw Error("Invalid version: "+b);return b>=1&&b<10?a.ccBits[0]:b<27?a.ccBits[1]:a.ccBits[2]},b.getBestModeForData=function(a){return e.testNumeric(a)?b.NUMERIC:e.testAlphanumeric(a)?b.ALPHANUMERIC:e.testKanji(a)?b.KANJI:b.BYTE},b.toString=function(a){if(a&&a.id)return a.id;throw Error("Invalid mode")},b.isValid=function(a){return a&&a.bit&&a.ccBits},b.from=function(a,c){if(b.isValid(a))return a;try{if("string"!=typeof a)throw Error("Param is not a string");switch(a.toLowerCase()){case"numeric":return b.NUMERIC;case"alphanumeric":return b.ALPHANUMERIC;case"kanji":return b.KANJI;case"byte":return b.BYTE;default:throw Error("Unknown mode: "+a)}}catch(a){return c}}},94165:(a,b,c)=>{"use strict";let d=c(67269);a.exports=function(a,b,c,e){let f=-1!==[d.COLORTYPE_COLOR_ALPHA,d.COLORTYPE_ALPHA].indexOf(e.colorType);if(e.colorType===e.inputColorType){let b,c=(new DataView(b=new ArrayBuffer(2)).setInt16(0,256,!0),256!==new Int16Array(b)[0]);if(8===e.bitDepth||16===e.bitDepth&&c)return a}let g=16!==e.bitDepth?a:new Uint16Array(a.buffer),h=255,i=d.COLORTYPE_TO_BPP_MAP[e.inputColorType];4!==i||e.inputHasAlpha||(i=3);let j=d.COLORTYPE_TO_BPP_MAP[e.colorType];16===e.bitDepth&&(h=65535,j*=2);let k=Buffer.alloc(b*c*j),l=0,m=0,n=e.bgColor||{};void 0===n.red&&(n.red=h),void 0===n.green&&(n.green=h),void 0===n.blue&&(n.blue=h);for(let a=0;a<c;a++)for(let a=0;a<b;a++){let a=function(){let a,b,c,i=h;switch(e.inputColorType){case d.COLORTYPE_COLOR_ALPHA:i=g[l+3],a=g[l],b=g[l+1],c=g[l+2];break;case d.COLORTYPE_COLOR:a=g[l],b=g[l+1],c=g[l+2];break;case d.COLORTYPE_ALPHA:i=g[l+1],b=a=g[l],c=a;break;case d.COLORTYPE_GRAYSCALE:b=a=g[l],c=a;break;default:throw Error("input color type:"+e.inputColorType+" is not supported at present")}return e.inputHasAlpha&&!f&&(i/=h,a=Math.min(Math.max(Math.round((1-i)*n.red+i*a),0),h),b=Math.min(Math.max(Math.round((1-i)*n.green+i*b),0),h),c=Math.min(Math.max(Math.round((1-i)*n.blue+i*c),0),h)),{red:a,green:b,blue:c,alpha:i}}();switch(e.colorType){case d.COLORTYPE_COLOR_ALPHA:case d.COLORTYPE_COLOR:8===e.bitDepth?(k[m]=a.red,k[m+1]=a.green,k[m+2]=a.blue,f&&(k[m+3]=a.alpha)):(k.writeUInt16BE(a.red,m),k.writeUInt16BE(a.green,m+2),k.writeUInt16BE(a.blue,m+4),f&&k.writeUInt16BE(a.alpha,m+6));break;case d.COLORTYPE_ALPHA:case d.COLORTYPE_GRAYSCALE:{let b=(a.red+a.green+a.blue)/3;8===e.bitDepth?(k[m]=b,f&&(k[m+1]=a.alpha)):(k.writeUInt16BE(b,m),f&&k.writeUInt16BE(a.alpha,m+2));break}default:throw Error("unrecognised color Type "+e.colorType)}l+=i,m+=j}return k}},94735:a=>{"use strict";a.exports=require("events")},95380:(a,b,c)=>{let d=c(58305),e=c(58856),f=c(52002),g=c(46349),h=c(88066),i=c(39477),j=c(12097),k=c(19477),l=c(98129),m=c(52324),n=c(55258),o=c(93669),p=c(39588);function q(a,b,c){let d,e,f=a.size,g=n.getEncodedBits(b,c);for(d=0;d<15;d++)e=(g>>d&1)==1,d<6?a.set(d,8,e,!0):d<8?a.set(d+1,8,e,!0):a.set(f-15+d,8,e,!0),d<8?a.set(8,f-d-1,e,!0):d<9?a.set(8,15-d-1+1,e,!0):a.set(8,15-d-1,e,!0);a.set(f-8,8,1,!0)}b.create=function(a,b){let c,n;if(void 0===a||""===a)throw Error("No input text");let r=e.M;return void 0!==b&&(r=e.from(b.errorCorrectionLevel,e.M),c=m.from(b.version),n=j.from(b.maskPattern),b.toSJISFunc&&d.setToSJISFunction(b.toSJISFunc)),function(a,b,c,e){let n;if(Array.isArray(a))n=p.fromArray(a);else if("string"==typeof a){let d=b;if(!d){let b=p.rawSplit(a);d=m.getBestVersionForData(b,c)}n=p.fromString(a,d||40)}else throw Error("Invalid data");let r=m.getBestVersionForData(n,c);if(!r)throw Error("The amount of data is too big to be stored in a QR Code");if(b){if(b<r)throw Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+r+".\n")}else b=r;let s=function(a,b,c){let e=new f;c.forEach(function(b){e.put(b.mode.bit,4),e.put(b.getLength(),o.getCharCountIndicator(b.mode,a)),b.write(e)});let g=(d.getSymbolTotalCodewords(a)-k.getTotalCodewordsCount(a,b))*8;for(e.getLengthInBits()+4<=g&&e.put(0,4);e.getLengthInBits()%8!=0;)e.putBit(0);let h=(g-e.getLengthInBits())/8;for(let a=0;a<h;a++)e.put(a%2?17:236,8);return function(a,b,c){let e,f,g=d.getSymbolTotalCodewords(b),h=g-k.getTotalCodewordsCount(b,c),i=k.getBlocksCount(b,c),j=g%i,m=i-j,n=Math.floor(g/i),o=Math.floor(h/i),p=o+1,q=n-o,r=new l(q),s=0,t=Array(i),u=Array(i),v=0,w=new Uint8Array(a.buffer);for(let a=0;a<i;a++){let b=a<m?o:p;t[a]=w.slice(s,s+b),u[a]=r.encode(t[a]),s+=b,v=Math.max(v,b)}let x=new Uint8Array(g),y=0;for(e=0;e<v;e++)for(f=0;f<i;f++)e<t[f].length&&(x[y++]=t[f][e]);for(e=0;e<q;e++)for(f=0;f<i;f++)x[y++]=u[f][e];return x}(e,a,b)}(b,c,n),t=new g(d.getSymbolSize(b));!function(a,b){let c=a.size,d=i.getPositions(b);for(let b=0;b<d.length;b++){let e=d[b][0],f=d[b][1];for(let b=-1;b<=7;b++)if(!(e+b<=-1)&&!(c<=e+b))for(let d=-1;d<=7;d++)f+d<=-1||c<=f+d||(b>=0&&b<=6&&(0===d||6===d)||d>=0&&d<=6&&(0===b||6===b)||b>=2&&b<=4&&d>=2&&d<=4?a.set(e+b,f+d,!0,!0):a.set(e+b,f+d,!1,!0))}}(t,b);let u=t.size;for(let a=8;a<u-8;a++){let b=a%2==0;t.set(a,6,b,!0),t.set(6,a,b,!0)}return!function(a,b){let c=h.getPositions(b);for(let b=0;b<c.length;b++){let d=c[b][0],e=c[b][1];for(let b=-2;b<=2;b++)for(let c=-2;c<=2;c++)-2===b||2===b||-2===c||2===c||0===b&&0===c?a.set(d+b,e+c,!0,!0):a.set(d+b,e+c,!1,!0)}}(t,b),q(t,c,0),b>=7&&function(a,b){let c,d,e,f=a.size,g=m.getEncodedBits(b);for(let b=0;b<18;b++)c=Math.floor(b/3),d=b%3+f-8-3,e=(g>>b&1)==1,a.set(c,d,e,!0),a.set(d,c,e,!0)}(t,b),!function(a,b){let c=a.size,d=-1,e=c-1,f=7,g=0;for(let h=c-1;h>0;h-=2)for(6===h&&h--;;){for(let c=0;c<2;c++)if(!a.isReserved(e,h-c)){let d=!1;g<b.length&&(d=(b[g]>>>f&1)==1),a.set(e,h-c,d),-1==--f&&(g++,f=7)}if((e+=d)<0||c<=e){e-=d,d=-d;break}}}(t,s),isNaN(e)&&(e=j.getBestMask(t,q.bind(null,t,c))),j.applyMask(e,t),q(t,c,e),{modules:t,version:b,errorCorrectionLevel:c,maskPattern:e,segments:n}}(a,c,r,n)}},96277:(a,b,c)=>{"use strict";let d=c(67269),e=c(43894),f=a.exports=function(a,b){this._options=a,a.checkCRC=!1!==a.checkCRC,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[d.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[d.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[d.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[d.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[d.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[d.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=b.read,this.error=b.error,this.metadata=b.metadata,this.gamma=b.gamma,this.transColor=b.transColor,this.palette=b.palette,this.parsed=b.parsed,this.inflateData=b.inflateData,this.finished=b.finished,this.simpleTransparency=b.simpleTransparency,this.headersFinished=b.headersFinished||function(){}};f.prototype.start=function(){this.read(d.PNG_SIGNATURE.length,this._parseSignature.bind(this))},f.prototype._parseSignature=function(a){let b=d.PNG_SIGNATURE;for(let c=0;c<b.length;c++)if(a[c]!==b[c])return void this.error(Error("Invalid file signature"));this.read(8,this._parseChunkBegin.bind(this))},f.prototype._parseChunkBegin=function(a){let b=a.readUInt32BE(0),c=a.readUInt32BE(4),f="";for(let b=4;b<8;b++)f+=String.fromCharCode(a[b]);let g=!!(32&a[4]);return this._hasIHDR||c===d.TYPE_IHDR?(this._crc=new e,this._crc.write(Buffer.from(f)),this._chunks[c])?this._chunks[c](b):g?void this.read(b+4,this._skipChunk.bind(this)):void this.error(Error("Unsupported critical chunk type "+f)):void this.error(Error("Expected IHDR on beggining"))},f.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))},f.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))},f.prototype._parseChunkEnd=function(a){let b=a.readInt32BE(0),c=this._crc.crc32();this._options.checkCRC&&c!==b?this.error(Error("Crc error - "+b+" - "+c)):this._hasIEND||this.read(8,this._parseChunkBegin.bind(this))},f.prototype._handleIHDR=function(a){this.read(a,this._parseIHDR.bind(this))},f.prototype._parseIHDR=function(a){this._crc.write(a);let b=a.readUInt32BE(0),c=a.readUInt32BE(4),e=a[8],f=a[9],g=a[10],h=a[11],i=a[12];if(8!==e&&4!==e&&2!==e&&1!==e&&16!==e)return void this.error(Error("Unsupported bit depth "+e));if(!(f in d.COLORTYPE_TO_BPP_MAP))return void this.error(Error("Unsupported color type"));if(0!==g)return void this.error(Error("Unsupported compression method"));if(0!==h)return void this.error(Error("Unsupported filter method"));if(0!==i&&1!==i)return void this.error(Error("Unsupported interlace method"));this._colorType=f;let j=d.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width:b,height:c,depth:e,interlace:!!i,palette:!!(f&d.COLORTYPE_PALETTE),color:!!(f&d.COLORTYPE_COLOR),alpha:!!(f&d.COLORTYPE_ALPHA),bpp:j,colorType:f}),this._handleChunkEnd()},f.prototype._handlePLTE=function(a){this.read(a,this._parsePLTE.bind(this))},f.prototype._parsePLTE=function(a){this._crc.write(a);let b=Math.floor(a.length/3);for(let c=0;c<b;c++)this._palette.push([a[3*c],a[3*c+1],a[3*c+2],255]);this.palette(this._palette),this._handleChunkEnd()},f.prototype._handleTRNS=function(a){this.simpleTransparency(),this.read(a,this._parseTRNS.bind(this))},f.prototype._parseTRNS=function(a){if(this._crc.write(a),this._colorType===d.COLORTYPE_PALETTE_COLOR){if(0===this._palette.length)return void this.error(Error("Transparency chunk must be after palette"));if(a.length>this._palette.length)return void this.error(Error("More transparent colors than palette size"));for(let b=0;b<a.length;b++)this._palette[b][3]=a[b];this.palette(this._palette)}this._colorType===d.COLORTYPE_GRAYSCALE&&this.transColor([a.readUInt16BE(0)]),this._colorType===d.COLORTYPE_COLOR&&this.transColor([a.readUInt16BE(0),a.readUInt16BE(2),a.readUInt16BE(4)]),this._handleChunkEnd()},f.prototype._handleGAMA=function(a){this.read(a,this._parseGAMA.bind(this))},f.prototype._parseGAMA=function(a){this._crc.write(a),this.gamma(a.readUInt32BE(0)/d.GAMMA_DIVISION),this._handleChunkEnd()},f.prototype._handleIDAT=function(a){this._emittedHeadersFinished||(this._emittedHeadersFinished=!0,this.headersFinished()),this.read(-a,this._parseIDAT.bind(this,a))},f.prototype._parseIDAT=function(a,b){if(this._crc.write(b),this._colorType===d.COLORTYPE_PALETTE_COLOR&&0===this._palette.length)throw Error("Expected palette not found");this.inflateData(b);let c=a-b.length;c>0?this._handleIDAT(c):this._handleChunkEnd()},f.prototype._handleIEND=function(a){this.read(a,this._parseIEND.bind(this))},f.prototype._parseIEND=function(a){this._crc.write(a),this._hasIEND=!0,this._handleChunkEnd(),this.finished&&this.finished()}},98052:(a,b,c)=>{"use strict";let d=c(67269),e=c(43894),f=c(94165),g=c(31964),h=c(74075),i=a.exports=function(a){if(this._options=a,a.deflateChunkSize=a.deflateChunkSize||32768,a.deflateLevel=null!=a.deflateLevel?a.deflateLevel:9,a.deflateStrategy=null!=a.deflateStrategy?a.deflateStrategy:3,a.inputHasAlpha=null==a.inputHasAlpha||a.inputHasAlpha,a.deflateFactory=a.deflateFactory||h.createDeflate,a.bitDepth=a.bitDepth||8,a.colorType="number"==typeof a.colorType?a.colorType:d.COLORTYPE_COLOR_ALPHA,a.inputColorType="number"==typeof a.inputColorType?a.inputColorType:d.COLORTYPE_COLOR_ALPHA,-1===[d.COLORTYPE_GRAYSCALE,d.COLORTYPE_COLOR,d.COLORTYPE_COLOR_ALPHA,d.COLORTYPE_ALPHA].indexOf(a.colorType))throw Error("option color type:"+a.colorType+" is not supported at present");if(-1===[d.COLORTYPE_GRAYSCALE,d.COLORTYPE_COLOR,d.COLORTYPE_COLOR_ALPHA,d.COLORTYPE_ALPHA].indexOf(a.inputColorType))throw Error("option input color type:"+a.inputColorType+" is not supported at present");if(8!==a.bitDepth&&16!==a.bitDepth)throw Error("option bit depth:"+a.bitDepth+" is not supported at present")};i.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}},i.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())},i.prototype.filterData=function(a,b,c){let e=f(a,b,c,this._options),h=d.COLORTYPE_TO_BPP_MAP[this._options.colorType];return g(e,b,c,this._options,h)},i.prototype._packChunk=function(a,b){let c=b?b.length:0,d=Buffer.alloc(c+12);return d.writeUInt32BE(c,0),d.writeUInt32BE(a,4),b&&b.copy(d,8),d.writeInt32BE(e.crc32(d.slice(4,d.length-4)),d.length-4),d},i.prototype.packGAMA=function(a){let b=Buffer.alloc(4);return b.writeUInt32BE(Math.floor(a*d.GAMMA_DIVISION),0),this._packChunk(d.TYPE_gAMA,b)},i.prototype.packIHDR=function(a,b){let c=Buffer.alloc(13);return c.writeUInt32BE(a,0),c.writeUInt32BE(b,4),c[8]=this._options.bitDepth,c[9]=this._options.colorType,c[10]=0,c[11]=0,c[12]=0,this._packChunk(d.TYPE_IHDR,c)},i.prototype.packIDAT=function(a){return this._packChunk(d.TYPE_IDAT,a)},i.prototype.packIEND=function(){return this._packChunk(d.TYPE_IEND,null)}},98129:(a,b,c)=>{let d=c(43144);function e(a){this.genPoly=void 0,this.degree=a,this.degree&&this.initialize(this.degree)}e.prototype.initialize=function(a){this.degree=a,this.genPoly=d.generateECPolynomial(this.degree)},e.prototype.encode=function(a){if(!this.genPoly)throw Error("Encoder not initialized");let b=new Uint8Array(a.length+this.degree);b.set(a);let c=d.mod(b,this.genPoly),e=this.degree-c.length;if(e>0){let a=new Uint8Array(this.degree);return a.set(c,e),a}return c},a.exports=e},99647:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(5735),e=c(91986),f=c(35790);function g(){return(0,d.jsx)(e.Suspense,{children:(0,d.jsx)(f.AppShell,{})})}}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,6644,4779,42,8363,8305,658,707],()=>b(b.s=5166));module.exports=c})();
22
+ Run: ${au.updateCommand}`}:null,[ax,ay]=(0,e.useState)([]),[az,aA]=(0,e.useState)("files"),[aB,aC]=(0,e.useState)(!1),[aD,aE]=(0,e.useState)(null),[aF,aG]=(0,e.useState)(0),[aH,aI]=(0,e.useState)([]),aJ=(0,e.useCallback)(a=>{S.current?.insertText("`"+a+"`")},[]),[aK]=(0,e.useState)(()=>l.get("session")),[aL,aM]=(0,e.useState)(null),[aP,aR]=(0,e.useState)(()=>!l.get("session")),aT=(0,e.useRef)(!1),aU=(0,e.useCallback)(a=>{aM(a),aE(null),a&&!aT.current&&(u(function(a,b=null){if(!b||!a)return null;let c=L(a);return c?M(b)[c]??null:null}(a)),q(b=>b&&b.cwd!==a?null:b),s(b=>b&&b!==a?null:b),y(a=>a+1),A(a=>a+1),V([]),X(null),k.replace("/",{scroll:!1}))},[k]),aV=(0,e.useCallback)((a,b)=>{aU(a),b?.closeDialog!==!1&&E(!1),w(a=>a+1)},[aU]),aW=(0,e.useCallback)((a,b=!1)=>{u(null),O(a.cwd,a.id),s(null),aM(a.cwd),q(a),y(a=>a+1),aR(!0),b&&(aT.current=!0,setTimeout(()=>{aT.current=!1},0)),b||k.replace(`?session=${encodeURIComponent(a.id)}`,{scroll:!1})},[k]),aX=(0,e.useCallback)((a,b)=>{u(null),q(null),s(b),aM(b),y(a=>a+1),V([]),X(null),k.replace("/",{scroll:!1})},[k]),aY=(0,e.useCallback)(a=>{u(null),O(a.cwd,a.id),s(null),aM(a.cwd),q(a),w(a=>a+1),k.replace(`?session=${encodeURIComponent(a.id)}`,{scroll:!1}),window.dispatchEvent(new CustomEvent("session-created"))},[k]),aZ=(0,e.useCallback)(()=>{w(a=>a+1),A(a=>a+1)},[]),a$=(0,e.useCallback)(a=>{u(null),w(a=>a+1),y(a=>a+1),s(null),q(b=>{let c=b?.cwd??aL??"";return c&&O(c,a),{...b??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:a}}),k.replace(`?session=${encodeURIComponent(a)}`,{scroll:!1})},[aL,k]),a_=(0,e.useCallback)(()=>{aR(!0)},[]),a0=(0,e.useCallback)(a=>{if(w(a=>a+1),p?.id===a){!function(a,b,c=null){if(!c||!a)return;let d=L(a);if(!d)return;let e=M(c);d in e&&(b&&e[d]!==b||(delete e[d],N(c,e)))}(p.cwd,a);let b=p.cwd;q(null),s(b??null),y(a=>a+1),V([]),X(null),k.replace("/",{scroll:!1})}},[p,k]),a1=p?.cwd??r??aL??null,[a2,a3]=(0,e.useState)(null),a4=(0,e.useCallback)((a,b)=>{if(dD(a)||dD(b))return void aE({mode:"start",appType:"stexp",filePath:a,cwd:a1,appId:null});if(dF(a)||dF(b)){let c=`preview:${a}`;aI(d=>{let e=d.find(a=>a.id===c),f=d.filter(a=>a.id!==c);return f.push(e?{...e,filePath:a,fileName:b}:{id:c,filePath:a,fileName:b}),f});return}let c=`file:${a}`;ay(d=>d.find(a=>a.id===c)?d:[...d,{id:c,label:b,filePath:a}]),aA(c),aC(!0)},[a1]),a5=(0,e.useCallback)((a,b)=>{ay(c=>c.map(c=>{if(c.id!==a)return c;let d=c.viewerState;return d&&d.scrollTop===b.scrollTop&&d.previewMode===b.previewMode&&d.viewMode===b.viewMode&&d.wrapLines===b.wrapLines?c:{...c,viewerState:b}}))},[]),a6=(0,e.useCallback)((a,b,c)=>{c&&c>0&&a3(c),a4(a,b)},[a4]),a7=(0,e.useCallback)((a,b)=>{(dE(a)||dE(b))&&aE({mode:"start",appType:"h5adexp",filePath:a,cwd:a1,appId:null})},[a1]),a8=(0,e.useCallback)(()=>{aA("tools"),aC(!0),aG(a=>a+1)},[]),a9=(0,e.useCallback)(a=>{aE({mode:"existing",appType:a.appType,filePath:a.filePath,cwd:a.cwd,appId:a.id}),aG(a=>a+1)},[]),ba=(0,e.useCallback)(a=>{aG(a=>a+1),aE(b=>b&&(b.appId===a.id||b.appType===a.appType&&b.filePath===a.filePath&&b.cwd===a.cwd)?"stopped"===a.status||"error"===a.status?null:{mode:"existing",appType:a.appType,filePath:a.filePath,cwd:a.cwd,appId:a.id}:b)},[]),bb=(0,e.useCallback)(a=>{aI(b=>b.filter(b=>b.id!==a))},[]),bc=(0,e.useCallback)(a=>{aI(b=>{let c=b.findIndex(b=>b.id===a);if(c<0||c===b.length-1)return b;let d=[...b],[e]=d.splice(c,1);return d.push(e),d})},[]),bd=(0,e.useCallback)(a=>{"files"!==a&&(ay(b=>b.filter(b=>b.id!==a)),aA(b=>{if(b!==a)return b;let c=ax.filter(b=>b.id!==a);return c.length>0?c[c.length-1].id:"files"}))},[ax]),be=r??(null===p&&aL?aL:null),bf=null!==p||null!==be,bg=aP&&!bf,bh=[{id:"files",label:"Files",closable:!1,icon:"files"},{id:"tools",label:"Status",closable:!1,icon:"tools"},...ax],bi=ax.find(a=>a.id===az)??null,bj=p?aj(p):be?"New chat":"No session",bk=p?.cwd??be??aL??"",bl=bk?bk.replace(/\/+$/,"").split(/[\\/]/).filter(Boolean).pop()||bk:"",bm=(0,e.useCallback)((a="projects")=>{G(a),E(!0)},[]),bn=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(I,{selectedSessionId:p?.id??null,onSelectSession:aW,onNewSession:aX,initialSessionId:aK,onInitialRestoreDone:a_,restoreSessionId:t,onRestoreSessionDone:()=>u(null),refreshKey:v,onSessionDeleted:a0,selectedCwd:p?.cwd??r??aL??null,onCwdChange:aU}),(0,d.jsx)("div",{style:{padding:"8px",flexShrink:0},children:(0,d.jsx)("button",{type:"button",onClick:()=>bm("projects"),title:"Settings","aria-label":"Settings",style:{width:34,display:"flex",alignItems:"center",justifyContent:"center",height:34,padding:0,background:"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:"pointer",fontSize:12,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color="var(--text-muted)"},children:(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.38a2 2 0 0 0-.73-2.73l-.15-.09a2 2 0 0 1-1-1.74v-.51a2 2 0 0 1 1-1.72l.15-.1a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})})]});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{style:{display:"flex",height:"100dvh",overflow:"hidden",background:"var(--bg)"},children:[(0,d.jsx)("div",{className:"sidebar-overlay-backdrop",onClick:()=>P(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!K,pointerEvents:K?"auto":"none",transition:"opacity 0.25s ease"}}),(0,d.jsx)("div",{className:`sidebar-container${K?" sidebar-open":" sidebar-closed"}`,style:{background:"var(--bg-panel)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,zIndex:200,width:Q.width,minWidth:Q.width,transition:K||Q.isResizing?"none":void 0},children:bn}),K&&(0,d.jsx)(bH,{side:"right",ariaLabel:"Resize sidebar",onResizeStart:Q.beginResize,onResize:Q.resizeBy,onResizeEnd:Q.endResize}),(0,d.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,d.jsxs)("div",{ref:T,className:"app-topbar",style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,borderBottom:"1px solid var(--border)",height:48,padding:"0 8px",background:"var(--bg)"},children:[(0,d.jsx)("button",{className:"topbar-sidebar-toggle",onClick:()=>P(a=>!a),title:K?"Hide sidebar":"Show sidebar",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.background="var(--bg-panel)"},children:K?(0,d.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,d.jsx)("line",{x1:"9",y1:"3",x2:"9",y2:"21"})]}):(0,d.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,d.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),(0,d.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),(0,d.jsxs)("div",{className:"topbar-title-area",style:{display:"flex",alignItems:"center",gap:7,minWidth:0,flex:1},children:[(0,d.jsx)("div",{style:{minWidth:0,display:"flex",alignItems:"center",gap:6},children:_&&p?(0,d.jsx)("input",{ref:ad,value:ab,onChange:a=>ac(a.target.value),onKeyDown:am,onBlur:()=>void al(),style:{width:"min(360px, 34vw)",height:28,boxSizing:"border-box",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)",padding:"0 8px",fontSize:13,fontWeight:500,outline:"none"}}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"topbar-session-title",title:bj,style:{minWidth:0,maxWidth:"min(420px, 36vw)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:bf?"var(--text)":"var(--text-muted)",fontSize:14,fontWeight:600,lineHeight:1.2},children:bj}),p&&(0,d.jsx)("button",{type:"button",className:"topbar-rename-button",onClick:ak,title:"Rename session",style:{width:22,height:22,display:"flex",alignItems:"center",justifyContent:"center",padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-dim)",cursor:"pointer",flexShrink:0},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)",a.currentTarget.style.background="transparent"},children:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M12 20h9"}),(0,d.jsx)("path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"})]})})]})}),bl&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"topbar-project-crumb",style:{color:"var(--text-dim)",fontSize:12,flexShrink:0},children:"/"}),(0,d.jsx)("span",{className:"topbar-project-crumb",title:bk||bl,style:{minWidth:0,maxWidth:"min(280px, 24vw)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-muted)",fontSize:12,lineHeight:1.2},children:bl})]})]}),bf&&!o&&(0,d.jsxs)("div",{className:"topbar-chat-tools",style:{display:"flex",alignItems:"center",gap:6,height:28,flexShrink:0},children:[p&&(0,d.jsx)("a",{className:"topbar-export-button",href:`/api/sessions/${encodeURIComponent(p.id)}/export`,download:!0,title:"Export session as HTML","aria-label":"Export session as HTML",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,color:"var(--text-muted)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,textDecoration:"none",flexShrink:0},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.background="var(--bg-panel)"},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,d.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,d.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})}),(a=!!(p&&p.messageCount>0),b="naming"===af.kind,c="success"===af.kind,f="error"===af.kind,h=!p||!a||b,i=b?"Naming…":c?"Title updated":f?"Title failed":"Auto title",j=p?a?f?af.message??"Title generation failed":b?"Generating a title from the conversation…":"Generate a title with the current model":"No messages yet":"No session selected",(0,d.jsxs)("button",{type:"button",className:"topbar-auto-title-button",onClick:()=>{ai()},disabled:h,title:j,"aria-label":i,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,height:28,padding:"0 9px",background:c?"rgba(34,197,94,0.10)":f?"rgba(239,68,68,0.10)":"var(--bg-panel)",border:`1px solid ${c?"rgba(34,197,94,0.45)":f?"rgba(239,68,68,0.45)":"var(--border)"}`,borderRadius:7,cursor:h?"not-allowed":"pointer",color:c?"rgba(34,197,94,0.95)":f?"#dc2626":h?"var(--text-dim)":"var(--text-muted)",fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s",opacity:h&&!b?.55:1},onMouseEnter:a=>{h||(a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{a.currentTarget.style.color=c?"rgba(34,197,94,0.95)":f?"#dc2626":"var(--text-muted)",a.currentTarget.style.background=c?"rgba(34,197,94,0.10)":f?"rgba(239,68,68,0.10)":"var(--bg-panel)"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,d.jsx)("path",{d:"M12 3v2"}),(0,d.jsx)("path",{d:"M12 19v2"}),(0,d.jsx)("path",{d:"M3 12h2"}),(0,d.jsx)("path",{d:"M19 12h2"}),(0,d.jsx)("path",{d:"m5.6 5.6 1.4 1.4"}),(0,d.jsx)("path",{d:"m17 17 1.4 1.4"}),(0,d.jsx)("path",{d:"m5.6 18.4 1.4-1.4"}),(0,d.jsx)("path",{d:"m17 7 1.4-1.4"})]}),(0,d.jsx)("span",{className:"topbar-auto-title-label",children:i})]}))]}),aw&&(0,d.jsx)("button",{type:"button",className:"topbar-update-button",title:aw.title,onClick:()=>navigator.clipboard?.writeText(au?.updateCommand??"").catch(()=>{}),style:{height:28,padding:"0 9px",borderRadius:7,border:"1px solid rgba(34,197,94,0.35)",background:"rgba(34,197,94,0.10)",color:"rgba(34,197,94,0.95)",cursor:"pointer",fontSize:11,fontWeight:650,whiteSpace:"nowrap",flexShrink:0},children:aw.label}),bf&&(ao||ar)&&(()=>{let a=ao?.tokens,b=a=>a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(0)}k`:String(a),c="var(--text-muted)",e=null;if(ar?.contextWindow){let a=ar.percent;null!==a&&a>90?c="#ef4444":null!==a&&a>70&&(c="rgba(234,179,8,0.95)"),e=null!==a?`${a.toFixed(0)}% / ${b(ar.contextWindow)}`:`? / ${b(ar.contextWindow)}`}let f=[];if(a&&(f.push(`in: ${a.input.toLocaleString()}`),f.push(`out: ${a.output.toLocaleString()}`),f.push(`cache read: ${a.cacheRead.toLocaleString()}`),f.push(`cache write: ${a.cacheWrite.toLocaleString()}`)),ar?.contextWindow){let a=ar.percent;f.push(`context: ${null!==a?a.toFixed(1)+"%":"unknown"} of ${ar.contextWindow.toLocaleString()} tokens`)}let g=f.join(" | ");return(0,d.jsxs)("div",{className:"topbar-session-stats",title:g,style:{display:"flex",alignItems:"center",gap:10,padding:"0 8px",height:28,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:"default",fontVariantNumeric:"tabular-nums"},children:[a&&a.input>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,d.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),b(a.input)]}),a&&a.output>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,d.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),b(a.output)]}),a&&a.cacheRead>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,d.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),b(a.cacheRead)]}),e&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:c},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,d.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),e]})]})})(),(0,d.jsx)("button",{type:"button",className:"topbar-icon-button topbar-generate-ui-toggle",onClick:an,title:`生成式 UI: ${H.generativeUI?"on":"off"}`,"aria-label":`生成式 UI: ${H.generativeUI?"on":"off"}`,style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:28,padding:0,background:H.generativeUI?"var(--bg-selected)":"var(--bg-panel)",border:`1px solid ${H.generativeUI?"rgba(37,99,235,0.45)":"var(--border)"}`,borderRadius:7,color:H.generativeUI?"var(--accent)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color=H.generativeUI?"var(--accent)":"var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color=H.generativeUI?"var(--accent)":"var(--text-muted)",a.currentTarget.style.background=H.generativeUI?"var(--bg-selected)":"var(--bg-panel)"},children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1.5"}),(0,d.jsx)("path",{d:"M16 17h5"}),(0,d.jsx)("path",{d:"M18.5 14.5v5"})]})}),(0,d.jsx)("button",{className:"topbar-icon-button topbar-theme-toggle",onClick:a=>{let b=a.currentTarget.getBoundingClientRect();n({x:b.left+b.width/2,y:b.top+b.height/2})},title:m?"Switch to light mode":"Switch to dark mode","aria-label":m?"Switch to light mode":"Switch to dark mode","aria-pressed":m,style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:28,padding:0,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.background="var(--bg-panel)"},children:m?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,d.jsx)("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),(0,d.jsx)("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),(0,d.jsx)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),(0,d.jsx)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),(0,d.jsx)("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),(0,d.jsx)("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),(0,d.jsx)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),(0,d.jsx)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]}):(0,d.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})}),(0,d.jsx)("button",{className:"topbar-icon-button topbar-right-panel-toggle",onClick:()=>aC(a=>!a),title:aB?"Hide right panel":"Show right panel","aria-label":aB?"Hide right panel":"Show right panel",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:28,padding:0,background:aB?"var(--bg-selected)":"var(--bg-panel)",border:`1px solid ${aB?"rgba(37,99,235,0.45)":"var(--border)"}`,borderRadius:7,color:aB?"var(--accent)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color=aB?"var(--accent)":"var(--text)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color=aB?"var(--accent)":"var(--text-muted)",a.currentTarget.style.background=aB?"var(--bg-selected)":"var(--bg-panel)"},children:(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,d.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:bf?(0,d.jsx)(aN,{session:p,newSessionCwd:be,onAgentEnd:aZ,onSessionCreated:aY,onSessionForked:a$,modelsRefreshKey:B,chatInputRef:S,onBranchDataChange:Z,onSessionStatsChange:aq,onContextUsageChange:at,generativeUI:H.generativeUI,forkSettings:{enabled:H.forkEnabled,suggestTokens:H.forkSuggestTokens,autoTokens:H.forkAutoTokens,minMessages:H.forkMinMessages},activeFilePath:bi?.filePath??null,onOpenFileAtLine:a6},x):bg?aL?(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:"Select a session from the sidebar"}):(0,d.jsxs)("div",{className:"empty-start-surface",style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,d.jsxs)("svg",{width:"44",height:"44",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",style:{opacity:.7,flexShrink:0},children:[(0,d.jsx)("line",{x1:"20",y1:"12",x2:"4",y2:"12"}),(0,d.jsx)("polyline",{points:"10 6 4 12 10 18"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:"Get Started"}),(0,d.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),"Select a project directory from the sidebar",(0,d.jsx)("br",{}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),"Add models via the ",(0,d.jsx)("strong",{style:{color:"var(--text)"},children:"Models"})," button at the bottom"]})]})]}):null})]}),aB&&(0,d.jsx)(bH,{side:"left",ariaLabel:"Resize right panel",onResizeStart:R.beginResize,onResize:R.resizeBy,onResizeEnd:R.endResize}),(0,d.jsxs)("div",{className:`right-panel-container${aB?" right-panel-open":" right-panel-closed"}`,style:{display:aB?"flex":"none",flexDirection:"column",borderLeft:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,width:R.width,minWidth:R.width,transition:R.isResizing?"none":void 0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",height:36},children:[(0,d.jsxs)("button",{type:"button",className:"right-panel-back-button",onClick:()=>aC(!1),title:"Back to chat","aria-label":"Back to chat",style:{height:36,padding:"0 10px",border:"none",borderRight:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,alignItems:"center",gap:6,flexShrink:0},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),(0,d.jsx)("polyline",{points:"12 19 5 12 12 5"})]}),(0,d.jsx)("span",{children:"Chat"})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,d.jsx)(bZ,{tabs:bh,activeTabId:az,onSelectTab:aA,onCloseTab:bd,onAskAI:a=>{let b=`I'm looking at \`${a}\`. `;S?.current?.insertIfEmpty(b)}})})]}),(0,d.jsx)("div",{style:{flex:1,overflow:"hidden"},children:"files"===az?(0,d.jsx)(bC,{cwd:aL??p?.cwd??r??null,refreshKey:z,onOpenFile:a4,onExploreFile:a7,onAtMention:aJ,watchEnabled:aB&&"files"===az}):"tools"===az?(0,d.jsx)(bT,{refreshKey:aF,visibleAppId:aD?.appId??null,cwd:aL??p?.cwd??r??null,onOpenApp:a9,onAppChanged:ba,agentRuntimeExtra:(0,d.jsx)(b0,{tree:U,activeLeafId:W,onLeafChange:$,hasSession:!!p,embedded:!0})}):bi?.filePath?bi.filePath.startsWith("__")?(0,d.jsx)(bG,{filePath:bi.filePath}):(0,d.jsx)(aQ,{filePath:bi.filePath,children:(0,d.jsx)(aO.h,{filePath:bi.filePath,cwd:aL??void 0,onOpenFile:a4,scrollToLine:a2,viewerState:bi.viewerState,onViewerStateChange:a=>a5(bi.id,a)})}):(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:"No file open"})})]})]}),D&&(0,d.jsx)(dA,{cwd:a1,generativeUI:H.generativeUI,initialTab:F,onGenerativeUIToggle:an,onModelsChanged:()=>C(a=>a+1),onProjectSelect:aV,onProjectsChanged:()=>w(a=>a+1),onClose:()=>{E(!1),C(a=>a+1)}}),(0,d.jsx)(bM,{appType:aD?.appType??"stexp",filePath:aD?.filePath??null,cwd:aD?.cwd??null,appId:aD?.appId??null,sessionId:p?.id??null,onClose:()=>aE(null),onAppChanged:ba,onOpenTools:a8}),aH.map((a,b)=>(0,d.jsx)(aS,{id:a.id,filePath:a.filePath,fileName:a.fileName,cwd:aL??p?.cwd??r??void 0,active:b===aH.length-1,stackIndex:b,zIndex:700+b,onClose:bb,onFocus:bc,onOpenFile:a4},a.id))]})}},88066:(a,b,c)=>{let d=c(58305).getSymbolSize;b.getRowColCoords=function(a){if(1===a)return[];let b=Math.floor(a/7)+2,c=d(a),e=145===c?26:2*Math.ceil((c-13)/(2*b-2)),f=[c-7];for(let a=1;a<b-1;a++)f[a]=f[a-1]-e;return f.push(6),f.reverse()},b.getPositions=function(a){let c=[],d=b.getRowColCoords(a),e=d.length;for(let a=0;a<e;a++)for(let b=0;b<e;b++)(0!==a||0!==b)&&(0!==a||b!==e-1)&&(a!==e-1||0!==b)&&c.push([d[a],d[b]]);return c}},88397:(a,b)=>{function c(a){if("number"==typeof a&&(a=a.toString()),"string"!=typeof a)throw Error("Color should be defined as hex string");let b=a.slice().replace("#","").split("");if(b.length<3||5===b.length||b.length>8)throw Error("Invalid hex color: "+a);(3===b.length||4===b.length)&&(b=Array.prototype.concat.apply([],b.map(function(a){return[a,a]}))),6===b.length&&b.push("F","F");let c=parseInt(b.join(""),16);return{r:c>>24&255,g:c>>16&255,b:c>>8&255,a:255&c,hex:"#"+b.slice(0,6).join("")}}b.getOptions=function(a){a||(a={}),a.color||(a.color={});let b=void 0===a.margin||null===a.margin||a.margin<0?4:a.margin,d=a.width&&a.width>=21?a.width:void 0,e=a.scale||4;return{width:d,scale:d?4:e,margin:b,color:{dark:c(a.color.dark||"#000000ff"),light:c(a.color.light||"#ffffffff")},type:a.type,rendererOpts:a.rendererOpts||{}}},b.getScale=function(a,b){return b.width&&b.width>=a+2*b.margin?b.width/(a+2*b.margin):b.scale},b.getImageWidth=function(a,c){let d=b.getScale(a,c);return Math.floor((a+2*c.margin)*d)},b.qrToImageData=function(a,c,d){let e=c.modules.size,f=c.modules.data,g=b.getScale(e,d),h=Math.floor((e+2*d.margin)*g),i=d.margin*g,j=[d.color.light,d.color.dark];for(let b=0;b<h;b++)for(let c=0;c<h;c++){let k=(b*h+c)*4,l=d.color.light;b>=i&&c>=i&&b<h-i&&c<h-i&&(l=j[+!!f[Math.floor((b-i)/g)*e+Math.floor((c-i)/g)]]),a[k++]=l.r,a[k++]=l.g,a[k++]=l.b,a[k]=l.a}}},90082:(a,b,c)=>{b.render=c(32835).render,b.renderToFile=function(a,d,e,f){void 0===f&&(f=e,e=void 0);let g=c(29021),h=b.render(d,e);g.writeFile(a,'<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'+h,f)}},92858:(a,b,c)=>{"use strict";let d=c(59725),e=[function(){},function(a,b,c,d){if(d===b.length)throw Error("Ran out of data");let e=b[d];a[c]=e,a[c+1]=e,a[c+2]=e,a[c+3]=255},function(a,b,c,d){if(d+1>=b.length)throw Error("Ran out of data");let e=b[d];a[c]=e,a[c+1]=e,a[c+2]=e,a[c+3]=b[d+1]},function(a,b,c,d){if(d+2>=b.length)throw Error("Ran out of data");a[c]=b[d],a[c+1]=b[d+1],a[c+2]=b[d+2],a[c+3]=255},function(a,b,c,d){if(d+3>=b.length)throw Error("Ran out of data");a[c]=b[d],a[c+1]=b[d+1],a[c+2]=b[d+2],a[c+3]=b[d+3]}],f=[function(){},function(a,b,c,d){let e=b[0];a[c]=e,a[c+1]=e,a[c+2]=e,a[c+3]=d},function(a,b,c){let d=b[0];a[c]=d,a[c+1]=d,a[c+2]=d,a[c+3]=b[1]},function(a,b,c,d){a[c]=b[0],a[c+1]=b[1],a[c+2]=b[2],a[c+3]=d},function(a,b,c){a[c]=b[0],a[c+1]=b[1],a[c+2]=b[2],a[c+3]=b[3]}];b.dataToBitMap=function(a,b){let c,g,h,i,j,k,l=b.width,m=b.height,n=b.depth,o=b.bpp,p=b.interlace;8!==n&&(c=[],g=0,h={get:function(b){for(;c.length<b;)!function(){let b,d,e,f;if(g===a.length)throw Error("Ran out of data");let h=a[g];switch(g++,n){default:throw Error("unrecognised depth");case 16:e=a[g],g++,c.push((h<<8)+e);break;case 4:e=15&h,f=h>>4,c.push(f,e);break;case 2:b=3&h,d=h>>2&3,e=h>>4&3,f=h>>6&3,c.push(f,e,d,b);break;case 1:b=h>>4&1,d=h>>5&1,e=h>>6&1,f=h>>7&1,c.push(f,e,d,b,h>>3&1,h>>2&1,h>>1&1,1&h)}}();let d=c.slice(0,b);return c=c.slice(b),d},resetAfterLine:function(){c.length=0},end:function(){if(g!==a.length)throw Error("extra data found")}}),i=n<=8?Buffer.alloc(l*m*4):new Uint16Array(l*m*4);let q=Math.pow(2,n)-1,r=0;if(p)j=d.getImagePasses(l,m),k=d.getInterlaceIterator(l,m);else{let a=0;k=function(){let b=a;return a+=4,b},j=[{width:l,height:m}]}for(let b=0;b<j.length;b++)8===n?r=function(a,b,c,d,f,g){let h=a.width,i=a.height,j=a.index;for(let a=0;a<i;a++)for(let i=0;i<h;i++){let h=c(i,a,j);e[d](b,f,h,g),g+=d}return g}(j[b],i,k,o,a,r):function(a,b,c,d,e,g){let h=a.width,i=a.height,j=a.index;for(let a=0;a<i;a++){for(let i=0;i<h;i++){let h=e.get(d),k=c(i,a,j);f[d](b,h,k,g)}e.resetAfterLine()}}(j[b],i,k,o,h,q);if(8===n){if(r!==a.length)throw Error("extra data found")}else h.end();return i}},93669:(a,b,c)=>{let d=c(83929),e=c(64323);b.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},b.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},b.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},b.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},b.MIXED={bit:-1},b.getCharCountIndicator=function(a,b){if(!a.ccBits)throw Error("Invalid mode: "+a);if(!d.isValid(b))throw Error("Invalid version: "+b);return b>=1&&b<10?a.ccBits[0]:b<27?a.ccBits[1]:a.ccBits[2]},b.getBestModeForData=function(a){return e.testNumeric(a)?b.NUMERIC:e.testAlphanumeric(a)?b.ALPHANUMERIC:e.testKanji(a)?b.KANJI:b.BYTE},b.toString=function(a){if(a&&a.id)return a.id;throw Error("Invalid mode")},b.isValid=function(a){return a&&a.bit&&a.ccBits},b.from=function(a,c){if(b.isValid(a))return a;try{if("string"!=typeof a)throw Error("Param is not a string");switch(a.toLowerCase()){case"numeric":return b.NUMERIC;case"alphanumeric":return b.ALPHANUMERIC;case"kanji":return b.KANJI;case"byte":return b.BYTE;default:throw Error("Unknown mode: "+a)}}catch(a){return c}}},94165:(a,b,c)=>{"use strict";let d=c(67269);a.exports=function(a,b,c,e){let f=-1!==[d.COLORTYPE_COLOR_ALPHA,d.COLORTYPE_ALPHA].indexOf(e.colorType);if(e.colorType===e.inputColorType){let b,c=(new DataView(b=new ArrayBuffer(2)).setInt16(0,256,!0),256!==new Int16Array(b)[0]);if(8===e.bitDepth||16===e.bitDepth&&c)return a}let g=16!==e.bitDepth?a:new Uint16Array(a.buffer),h=255,i=d.COLORTYPE_TO_BPP_MAP[e.inputColorType];4!==i||e.inputHasAlpha||(i=3);let j=d.COLORTYPE_TO_BPP_MAP[e.colorType];16===e.bitDepth&&(h=65535,j*=2);let k=Buffer.alloc(b*c*j),l=0,m=0,n=e.bgColor||{};void 0===n.red&&(n.red=h),void 0===n.green&&(n.green=h),void 0===n.blue&&(n.blue=h);for(let a=0;a<c;a++)for(let a=0;a<b;a++){let a=function(){let a,b,c,i=h;switch(e.inputColorType){case d.COLORTYPE_COLOR_ALPHA:i=g[l+3],a=g[l],b=g[l+1],c=g[l+2];break;case d.COLORTYPE_COLOR:a=g[l],b=g[l+1],c=g[l+2];break;case d.COLORTYPE_ALPHA:i=g[l+1],b=a=g[l],c=a;break;case d.COLORTYPE_GRAYSCALE:b=a=g[l],c=a;break;default:throw Error("input color type:"+e.inputColorType+" is not supported at present")}return e.inputHasAlpha&&!f&&(i/=h,a=Math.min(Math.max(Math.round((1-i)*n.red+i*a),0),h),b=Math.min(Math.max(Math.round((1-i)*n.green+i*b),0),h),c=Math.min(Math.max(Math.round((1-i)*n.blue+i*c),0),h)),{red:a,green:b,blue:c,alpha:i}}();switch(e.colorType){case d.COLORTYPE_COLOR_ALPHA:case d.COLORTYPE_COLOR:8===e.bitDepth?(k[m]=a.red,k[m+1]=a.green,k[m+2]=a.blue,f&&(k[m+3]=a.alpha)):(k.writeUInt16BE(a.red,m),k.writeUInt16BE(a.green,m+2),k.writeUInt16BE(a.blue,m+4),f&&k.writeUInt16BE(a.alpha,m+6));break;case d.COLORTYPE_ALPHA:case d.COLORTYPE_GRAYSCALE:{let b=(a.red+a.green+a.blue)/3;8===e.bitDepth?(k[m]=b,f&&(k[m+1]=a.alpha)):(k.writeUInt16BE(b,m),f&&k.writeUInt16BE(a.alpha,m+2));break}default:throw Error("unrecognised color Type "+e.colorType)}l+=i,m+=j}return k}},94735:a=>{"use strict";a.exports=require("events")},95380:(a,b,c)=>{let d=c(58305),e=c(58856),f=c(52002),g=c(46349),h=c(88066),i=c(39477),j=c(12097),k=c(19477),l=c(98129),m=c(52324),n=c(55258),o=c(93669),p=c(39588);function q(a,b,c){let d,e,f=a.size,g=n.getEncodedBits(b,c);for(d=0;d<15;d++)e=(g>>d&1)==1,d<6?a.set(d,8,e,!0):d<8?a.set(d+1,8,e,!0):a.set(f-15+d,8,e,!0),d<8?a.set(8,f-d-1,e,!0):d<9?a.set(8,15-d-1+1,e,!0):a.set(8,15-d-1,e,!0);a.set(f-8,8,1,!0)}b.create=function(a,b){let c,n;if(void 0===a||""===a)throw Error("No input text");let r=e.M;return void 0!==b&&(r=e.from(b.errorCorrectionLevel,e.M),c=m.from(b.version),n=j.from(b.maskPattern),b.toSJISFunc&&d.setToSJISFunction(b.toSJISFunc)),function(a,b,c,e){let n;if(Array.isArray(a))n=p.fromArray(a);else if("string"==typeof a){let d=b;if(!d){let b=p.rawSplit(a);d=m.getBestVersionForData(b,c)}n=p.fromString(a,d||40)}else throw Error("Invalid data");let r=m.getBestVersionForData(n,c);if(!r)throw Error("The amount of data is too big to be stored in a QR Code");if(b){if(b<r)throw Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+r+".\n")}else b=r;let s=function(a,b,c){let e=new f;c.forEach(function(b){e.put(b.mode.bit,4),e.put(b.getLength(),o.getCharCountIndicator(b.mode,a)),b.write(e)});let g=(d.getSymbolTotalCodewords(a)-k.getTotalCodewordsCount(a,b))*8;for(e.getLengthInBits()+4<=g&&e.put(0,4);e.getLengthInBits()%8!=0;)e.putBit(0);let h=(g-e.getLengthInBits())/8;for(let a=0;a<h;a++)e.put(a%2?17:236,8);return function(a,b,c){let e,f,g=d.getSymbolTotalCodewords(b),h=g-k.getTotalCodewordsCount(b,c),i=k.getBlocksCount(b,c),j=g%i,m=i-j,n=Math.floor(g/i),o=Math.floor(h/i),p=o+1,q=n-o,r=new l(q),s=0,t=Array(i),u=Array(i),v=0,w=new Uint8Array(a.buffer);for(let a=0;a<i;a++){let b=a<m?o:p;t[a]=w.slice(s,s+b),u[a]=r.encode(t[a]),s+=b,v=Math.max(v,b)}let x=new Uint8Array(g),y=0;for(e=0;e<v;e++)for(f=0;f<i;f++)e<t[f].length&&(x[y++]=t[f][e]);for(e=0;e<q;e++)for(f=0;f<i;f++)x[y++]=u[f][e];return x}(e,a,b)}(b,c,n),t=new g(d.getSymbolSize(b));!function(a,b){let c=a.size,d=i.getPositions(b);for(let b=0;b<d.length;b++){let e=d[b][0],f=d[b][1];for(let b=-1;b<=7;b++)if(!(e+b<=-1)&&!(c<=e+b))for(let d=-1;d<=7;d++)f+d<=-1||c<=f+d||(b>=0&&b<=6&&(0===d||6===d)||d>=0&&d<=6&&(0===b||6===b)||b>=2&&b<=4&&d>=2&&d<=4?a.set(e+b,f+d,!0,!0):a.set(e+b,f+d,!1,!0))}}(t,b);let u=t.size;for(let a=8;a<u-8;a++){let b=a%2==0;t.set(a,6,b,!0),t.set(6,a,b,!0)}return!function(a,b){let c=h.getPositions(b);for(let b=0;b<c.length;b++){let d=c[b][0],e=c[b][1];for(let b=-2;b<=2;b++)for(let c=-2;c<=2;c++)-2===b||2===b||-2===c||2===c||0===b&&0===c?a.set(d+b,e+c,!0,!0):a.set(d+b,e+c,!1,!0)}}(t,b),q(t,c,0),b>=7&&function(a,b){let c,d,e,f=a.size,g=m.getEncodedBits(b);for(let b=0;b<18;b++)c=Math.floor(b/3),d=b%3+f-8-3,e=(g>>b&1)==1,a.set(c,d,e,!0),a.set(d,c,e,!0)}(t,b),!function(a,b){let c=a.size,d=-1,e=c-1,f=7,g=0;for(let h=c-1;h>0;h-=2)for(6===h&&h--;;){for(let c=0;c<2;c++)if(!a.isReserved(e,h-c)){let d=!1;g<b.length&&(d=(b[g]>>>f&1)==1),a.set(e,h-c,d),-1==--f&&(g++,f=7)}if((e+=d)<0||c<=e){e-=d,d=-d;break}}}(t,s),isNaN(e)&&(e=j.getBestMask(t,q.bind(null,t,c))),j.applyMask(e,t),q(t,c,e),{modules:t,version:b,errorCorrectionLevel:c,maskPattern:e,segments:n}}(a,c,r,n)}},96277:(a,b,c)=>{"use strict";let d=c(67269),e=c(43894),f=a.exports=function(a,b){this._options=a,a.checkCRC=!1!==a.checkCRC,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[d.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[d.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[d.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[d.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[d.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[d.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=b.read,this.error=b.error,this.metadata=b.metadata,this.gamma=b.gamma,this.transColor=b.transColor,this.palette=b.palette,this.parsed=b.parsed,this.inflateData=b.inflateData,this.finished=b.finished,this.simpleTransparency=b.simpleTransparency,this.headersFinished=b.headersFinished||function(){}};f.prototype.start=function(){this.read(d.PNG_SIGNATURE.length,this._parseSignature.bind(this))},f.prototype._parseSignature=function(a){let b=d.PNG_SIGNATURE;for(let c=0;c<b.length;c++)if(a[c]!==b[c])return void this.error(Error("Invalid file signature"));this.read(8,this._parseChunkBegin.bind(this))},f.prototype._parseChunkBegin=function(a){let b=a.readUInt32BE(0),c=a.readUInt32BE(4),f="";for(let b=4;b<8;b++)f+=String.fromCharCode(a[b]);let g=!!(32&a[4]);return this._hasIHDR||c===d.TYPE_IHDR?(this._crc=new e,this._crc.write(Buffer.from(f)),this._chunks[c])?this._chunks[c](b):g?void this.read(b+4,this._skipChunk.bind(this)):void this.error(Error("Unsupported critical chunk type "+f)):void this.error(Error("Expected IHDR on beggining"))},f.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))},f.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))},f.prototype._parseChunkEnd=function(a){let b=a.readInt32BE(0),c=this._crc.crc32();this._options.checkCRC&&c!==b?this.error(Error("Crc error - "+b+" - "+c)):this._hasIEND||this.read(8,this._parseChunkBegin.bind(this))},f.prototype._handleIHDR=function(a){this.read(a,this._parseIHDR.bind(this))},f.prototype._parseIHDR=function(a){this._crc.write(a);let b=a.readUInt32BE(0),c=a.readUInt32BE(4),e=a[8],f=a[9],g=a[10],h=a[11],i=a[12];if(8!==e&&4!==e&&2!==e&&1!==e&&16!==e)return void this.error(Error("Unsupported bit depth "+e));if(!(f in d.COLORTYPE_TO_BPP_MAP))return void this.error(Error("Unsupported color type"));if(0!==g)return void this.error(Error("Unsupported compression method"));if(0!==h)return void this.error(Error("Unsupported filter method"));if(0!==i&&1!==i)return void this.error(Error("Unsupported interlace method"));this._colorType=f;let j=d.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width:b,height:c,depth:e,interlace:!!i,palette:!!(f&d.COLORTYPE_PALETTE),color:!!(f&d.COLORTYPE_COLOR),alpha:!!(f&d.COLORTYPE_ALPHA),bpp:j,colorType:f}),this._handleChunkEnd()},f.prototype._handlePLTE=function(a){this.read(a,this._parsePLTE.bind(this))},f.prototype._parsePLTE=function(a){this._crc.write(a);let b=Math.floor(a.length/3);for(let c=0;c<b;c++)this._palette.push([a[3*c],a[3*c+1],a[3*c+2],255]);this.palette(this._palette),this._handleChunkEnd()},f.prototype._handleTRNS=function(a){this.simpleTransparency(),this.read(a,this._parseTRNS.bind(this))},f.prototype._parseTRNS=function(a){if(this._crc.write(a),this._colorType===d.COLORTYPE_PALETTE_COLOR){if(0===this._palette.length)return void this.error(Error("Transparency chunk must be after palette"));if(a.length>this._palette.length)return void this.error(Error("More transparent colors than palette size"));for(let b=0;b<a.length;b++)this._palette[b][3]=a[b];this.palette(this._palette)}this._colorType===d.COLORTYPE_GRAYSCALE&&this.transColor([a.readUInt16BE(0)]),this._colorType===d.COLORTYPE_COLOR&&this.transColor([a.readUInt16BE(0),a.readUInt16BE(2),a.readUInt16BE(4)]),this._handleChunkEnd()},f.prototype._handleGAMA=function(a){this.read(a,this._parseGAMA.bind(this))},f.prototype._parseGAMA=function(a){this._crc.write(a),this.gamma(a.readUInt32BE(0)/d.GAMMA_DIVISION),this._handleChunkEnd()},f.prototype._handleIDAT=function(a){this._emittedHeadersFinished||(this._emittedHeadersFinished=!0,this.headersFinished()),this.read(-a,this._parseIDAT.bind(this,a))},f.prototype._parseIDAT=function(a,b){if(this._crc.write(b),this._colorType===d.COLORTYPE_PALETTE_COLOR&&0===this._palette.length)throw Error("Expected palette not found");this.inflateData(b);let c=a-b.length;c>0?this._handleIDAT(c):this._handleChunkEnd()},f.prototype._handleIEND=function(a){this.read(a,this._parseIEND.bind(this))},f.prototype._parseIEND=function(a){this._crc.write(a),this._hasIEND=!0,this._handleChunkEnd(),this.finished&&this.finished()}},98052:(a,b,c)=>{"use strict";let d=c(67269),e=c(43894),f=c(94165),g=c(31964),h=c(74075),i=a.exports=function(a){if(this._options=a,a.deflateChunkSize=a.deflateChunkSize||32768,a.deflateLevel=null!=a.deflateLevel?a.deflateLevel:9,a.deflateStrategy=null!=a.deflateStrategy?a.deflateStrategy:3,a.inputHasAlpha=null==a.inputHasAlpha||a.inputHasAlpha,a.deflateFactory=a.deflateFactory||h.createDeflate,a.bitDepth=a.bitDepth||8,a.colorType="number"==typeof a.colorType?a.colorType:d.COLORTYPE_COLOR_ALPHA,a.inputColorType="number"==typeof a.inputColorType?a.inputColorType:d.COLORTYPE_COLOR_ALPHA,-1===[d.COLORTYPE_GRAYSCALE,d.COLORTYPE_COLOR,d.COLORTYPE_COLOR_ALPHA,d.COLORTYPE_ALPHA].indexOf(a.colorType))throw Error("option color type:"+a.colorType+" is not supported at present");if(-1===[d.COLORTYPE_GRAYSCALE,d.COLORTYPE_COLOR,d.COLORTYPE_COLOR_ALPHA,d.COLORTYPE_ALPHA].indexOf(a.inputColorType))throw Error("option input color type:"+a.inputColorType+" is not supported at present");if(8!==a.bitDepth&&16!==a.bitDepth)throw Error("option bit depth:"+a.bitDepth+" is not supported at present")};i.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}},i.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())},i.prototype.filterData=function(a,b,c){let e=f(a,b,c,this._options),h=d.COLORTYPE_TO_BPP_MAP[this._options.colorType];return g(e,b,c,this._options,h)},i.prototype._packChunk=function(a,b){let c=b?b.length:0,d=Buffer.alloc(c+12);return d.writeUInt32BE(c,0),d.writeUInt32BE(a,4),b&&b.copy(d,8),d.writeInt32BE(e.crc32(d.slice(4,d.length-4)),d.length-4),d},i.prototype.packGAMA=function(a){let b=Buffer.alloc(4);return b.writeUInt32BE(Math.floor(a*d.GAMMA_DIVISION),0),this._packChunk(d.TYPE_gAMA,b)},i.prototype.packIHDR=function(a,b){let c=Buffer.alloc(13);return c.writeUInt32BE(a,0),c.writeUInt32BE(b,4),c[8]=this._options.bitDepth,c[9]=this._options.colorType,c[10]=0,c[11]=0,c[12]=0,this._packChunk(d.TYPE_IHDR,c)},i.prototype.packIDAT=function(a){return this._packChunk(d.TYPE_IDAT,a)},i.prototype.packIEND=function(){return this._packChunk(d.TYPE_IEND,null)}},98129:(a,b,c)=>{let d=c(43144);function e(a){this.genPoly=void 0,this.degree=a,this.degree&&this.initialize(this.degree)}e.prototype.initialize=function(a){this.degree=a,this.genPoly=d.generateECPolynomial(this.degree)},e.prototype.encode=function(a){if(!this.genPoly)throw Error("Encoder not initialized");let b=new Uint8Array(a.length+this.degree);b.set(a);let c=d.mod(b,this.genPoly),e=this.degree-c.length;if(e>0){let a=new Uint8Array(this.degree);return a.set(c,e),a}return c},a.exports=e},99647:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(5735),e=c(91986),f=c(35790);function g(){return(0,d.jsx)(e.Suspense,{children:(0,d.jsx)(f.AppShell,{})})}}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,6644,4779,42,8363,8305,7699,707],()=>b(b.s=5166));module.exports=c})();