chatlab-cli 0.30.1-beta.2 → 0.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist-web/assets/{BufferResource-DPkMC1wo.js → BufferResource-CYSOCeE0.js} +1 -1
  2. package/dist-web/assets/{CanvasRenderer-DokMtSX9.js → CanvasRenderer-j7Z_ij_m.js} +1 -1
  3. package/dist-web/assets/{DebugToolsPanel.vue_vue_type_script_setup_true_lang-Ceg-0WOD.js → DebugToolsPanel.vue_vue_type_script_setup_true_lang-Bk9RvIsW.js} +4 -4
  4. package/dist-web/assets/{Filter-Bo_p3BVX.js → Filter-BgGyBeXz.js} +1 -1
  5. package/dist-web/assets/{MessageExportModal-Ch0tqQix.js → MessageExportModal-BkEhC8s3.js} +1 -1
  6. package/dist-web/assets/{PageHeader-CRlmZoKw.js → PageHeader-CUwv2AFR.js} +1 -1
  7. package/dist-web/assets/{RelationshipGalaxyCanvas-W_6XfPOG.js → RelationshipGalaxyCanvas-D2owKyDp.js} +3 -3
  8. package/dist-web/assets/{RelationshipGalaxyThreeCanvas-bB1nCwQ_.js → RelationshipGalaxyThreeCanvas-DfJ2x8y9.js} +1 -1
  9. package/dist-web/assets/{RenderTargetSystem-obRi6fMT.js → RenderTargetSystem-BQ__RbzR.js} +1 -1
  10. package/dist-web/assets/{WebGLRenderer-xcDlnrCZ.js → WebGLRenderer-DuThUm1R.js} +1 -1
  11. package/dist-web/assets/{WebGPURenderer-DbAOiiYr.js → WebGPURenderer-d8BwTpxP.js} +1 -1
  12. package/dist-web/assets/{browserAll-DVRJimO8.js → browserAll-t_tpJM2L.js} +1 -1
  13. package/dist-web/assets/{electron-BSGRuxX9.js → electron-6T3FvCfK.js} +1 -1
  14. package/dist-web/assets/{fetch-ChAsglT5.js → fetch-BLTlXcRA.js} +1 -1
  15. package/dist-web/assets/{fetch-BmxMf3I6.js → fetch-BVM5kQ6-.js} +1 -1
  16. package/dist-web/assets/{fetch-B2alAySK.js → fetch-BgIWhYDV.js} +1 -1
  17. package/dist-web/assets/{fetch-7UN4YW3A.js → fetch-BgeRLaoA.js} +1 -1
  18. package/dist-web/assets/{fetch-t0WsRKHW.js → fetch-C7rlHKE7.js} +1 -1
  19. package/dist-web/assets/{fetch-DWEjTdcP.js → fetch-D0ccqGk_.js} +1 -1
  20. package/dist-web/assets/{fetch-BSShKcMt.js → fetch-DFifsv8L.js} +1 -1
  21. package/dist-web/assets/{fetch-CR5UDFW7.js → fetch-DdoIAbX4.js} +1 -1
  22. package/dist-web/assets/{fetch-DfoxedXR.js → fetch-HpiZrx8C.js} +1 -1
  23. package/dist-web/assets/{fetch-B2rVTMYY.js → fetch-Y-LYZmiT.js} +1 -1
  24. package/dist-web/assets/{index-BmXNdMV5.js → index-B5YKZflT.js} +2 -2
  25. package/dist-web/assets/{index-BVUTV9_w.js → index-BA87rT8F.js} +1 -1
  26. package/dist-web/assets/{index-DT0Bu8mH.js → index-CQsrsY5d.js} +3 -3
  27. package/dist-web/assets/{index-BsXljrlg.js → index-CdsKtFEJ.js} +3 -3
  28. package/dist-web/assets/index-DraLHiEK.js +173 -0
  29. package/dist-web/assets/{index-CZv0ZOID.js → index-IL5tkxhM.js} +2 -2
  30. package/dist-web/assets/{index-DjcWJv4b.js → index-Tgk7RCvc.js} +1 -1
  31. package/dist-web/assets/{index-CfgDqd_z.js → index-cyh3gOBe.js} +1 -1
  32. package/dist-web/assets/{index-CtVR_KuP.js → index-g8yqhgfj.js} +1 -1
  33. package/dist-web/assets/{web-knHSvvNj.js → web-DAgXT8gQ.js} +1 -1
  34. package/dist-web/assets/{webworkerAll-CMKoykfD.js → webworkerAll-CoXPTsvw.js} +1 -1
  35. package/dist-web/index.html +1 -1
  36. package/package.json +1 -1
  37. package/dist-web/assets/index-CQ5lRCHt.js +0 -173
@@ -1,4 +1,4 @@
1
- import{w as U,g,c,u as S,B as _,d as m,E as I,e as p}from"./RelationshipGalaxyCanvas-W_6XfPOG.js";const x={name:"local-uniform-bit",vertex:{header:`
1
+ import{w as U,g,c,u as S,B as _,d as m,E as I,e as p}from"./RelationshipGalaxyCanvas-D2owKyDp.js";const x={name:"local-uniform-bit",vertex:{header:`
2
2
 
3
3
  struct LocalUniforms {
4
4
  uTransformMatrix:mat3x3<f32>,
@@ -1 +1 @@
1
- import{f as C,h as Ce,i as Te,m as Z,M as A,j as _,k as Le,w as Oe,s as Pe,l as ke,n as je,C as be,T as _e,o as Ne,F as Ye,p as Ve,q as $e,D as Se,A as Xe,R as Je,r as te}from"./RelationshipGalaxyCanvas-W_6XfPOG.js";import{R as Ke,S as Qe,B as ze,a as Ze,b as et,c as tt,A as st,C as nt}from"./RenderTargetSystem-obRi6fMT.js";import"./vendor-snapdom-XnBoh1gd.js";import"./index-BsXljrlg.js";import"./vendor-reka-ui-CzM4kDQ7.js";import"./vendor-nuxt-ui-DaLxYaC4.js";import"./index-CZv0ZOID.js";import"./LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js";import"./people-page-header-Mupn-U_b.js";import"./relationship-galaxy-viewport-Cwfa51ER.js";import"./Filter-Bo_p3BVX.js";const he=class L{static _getPatternRepeat(e,t){const a=e&&e!=="clamp-to-edge",s=t&&t!=="clamp-to-edge";return a&&s?"repeat":a?"repeat-x":s?"repeat-y":"no-repeat"}start(e,t,a){}execute(e,t){const a=t.elements;if(!a||!a.length)return;const s=e.renderer,o=s.canvasContext,r=o.activeContext;for(let l=0;l<a.length;l++){const i=a[l];if(!i.packAsQuad)continue;const d=i,h=d.texture,v=h?C.getCanvasSource(h):null;if(!v)continue;const y=h.source.style,H=o.smoothProperty,W=y.scaleMode!=="nearest";r[H]!==W&&(r[H]=W),o.setBlendMode(t.blendMode);const F=s.globalUniforms.globalUniformData?.worldColor??4294967295,S=d.color,G=(F>>>24&255)/255,P=(S>>>24&255)/255,g=s.filter?.alphaMultiplier??1,M=G*P*g;if(M<=0)continue;r.globalAlpha=M;const K=F&16777215,k=S&16777215,q=Te(Z(k,K)),I=h.frame,V=y.addressModeU??y.addressMode,O=y.addressModeV??y.addressMode,u=L._getPatternRepeat(V,O),m=h.source._resolution??h.source.resolution??1,f=d.renderable?.renderGroup?.isCachedAsTexture,D=I.x*m,j=I.y*m,b=I.width*m,E=I.height*m,x=d.bounds,w=s.renderTarget.renderTarget.isRoot,R=x.minX,$=x.minY,U=x.maxX-x.minX,B=x.maxY-x.minY,T=h.rotate,c=h.uvs,se=Math.min(c.x0,c.x1,c.x2,c.x3,c.y0,c.y1,c.y2,c.y3),Fe=Math.max(c.x0,c.x1,c.x2,c.x3,c.y0,c.y1,c.y2,c.y3),de=u!=="no-repeat"&&(se<0||Fe>1),Q=T&&!(!de&&(q!==16777215||T));Q?(L._tempPatternMatrix.copyFrom(d.transform),Ce.matrixAppendRotationInv(L._tempPatternMatrix,T,R,$,U,B),o.setContextTransform(L._tempPatternMatrix,d.roundPixels===1,void 0,f&&w)):o.setContextTransform(d.transform,d.roundPixels===1,void 0,f&&w);const ne=U,ae=B;let X=Q?0:R,J=Q?0:$;if(!Q&&d.roundPixels===1&&(X|=0,J|=0),de){let oe=v;const N=q!==16777215&&!T,Y=I.width<=h.source.width&&I.height<=h.source.height;N&&Y&&(oe=C.getTintedCanvas({texture:h},q));const re=r.createPattern(oe,u);if(!re)continue;const pe=ne,ue=ae;if(pe===0||ue===0)continue;const me=1/pe,fe=1/ue,ge=(c.x1-c.x0)*me,ve=(c.y1-c.y0)*me,ye=(c.x3-c.x0)*fe,xe=(c.y3-c.y0)*fe,qe=c.x0-ge*X-ye*J,Ue=c.y0-ve*X-xe*J,ie=h.source.pixelWidth,ce=h.source.pixelHeight;L._tempPatternMatrix.set(ge*ie,ve*ce,ye*ie,xe*ce,qe*ie,Ue*ce),C.applyPatternTransform(re,L._tempPatternMatrix),r.fillStyle=re,r.fillRect(X,J,ne,ae)}else{const N=q!==16777215||T?C.getTintedCanvas({texture:h},q):v,Y=N!==v;r.drawImage(N,Y?0:D,Y?0:j,Y?N.width:b,Y?N.height:E,X,J,ne,ae)}}}};he._tempPatternMatrix=new A;he.extension={type:[_.CanvasPipesAdaptor],name:"batch"};let at=he;class Me{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,a){this._renderer.renderPipes.batch.break(a);const s=this._colorStack;s[this._colorStackIndex]=s[this._colorStackIndex-1]&e.mask;const o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,a.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(e,t,a){this._renderer.renderPipes.batch.break(a);const s=this._colorStack;this._colorStackIndex--;const o=s[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,a.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(e){}destroy(){this._renderer=null,this._colorStack=null}}Me.extension={type:[_.CanvasPipes],name:"colorMask"};function ot(n,e,t,a,s,o){o=Math.max(0,Math.min(o,Math.min(a,s)/2)),n.moveTo(e+o,t),n.lineTo(e+a-o,t),n.quadraticCurveTo(e+a,t,e+a,t+o),n.lineTo(e+a,t+s-o),n.quadraticCurveTo(e+a,t+s,e+a-o,t+s),n.lineTo(e+o,t+s),n.quadraticCurveTo(e,t+s,e,t+s-o),n.lineTo(e,t+o),n.quadraticCurveTo(e,t,e+o,t)}function we(n,e){switch(e.type){case"rectangle":{const t=e;n.rect(t.x,t.y,t.width,t.height);break}case"roundedRectangle":{const t=e;ot(n,t.x,t.y,t.width,t.height,t.radius);break}case"circle":{const t=e;n.moveTo(t.x+t.radius,t.y),n.arc(t.x,t.y,t.radius,0,Math.PI*2);break}case"ellipse":{const t=e;n.ellipse?(n.moveTo(t.x+t.halfWidth,t.y),n.ellipse(t.x,t.y,t.halfWidth,t.halfHeight,0,0,Math.PI*2)):(n.save(),n.translate(t.x,t.y),n.scale(t.halfWidth,t.halfHeight),n.moveTo(1,0),n.arc(0,0,1,0,Math.PI*2),n.restore());break}case"triangle":{const t=e;n.moveTo(t.x,t.y),n.lineTo(t.x2,t.y2),n.lineTo(t.x3,t.y3),n.closePath();break}default:{const t=e,a=t.points;if(!a?.length)break;n.moveTo(a[0],a[1]);for(let s=2;s<a.length;s+=2)n.lineTo(a[s],a[s+1]);t.closePath&&n.closePath();break}}}function rt(n,e,t){const a=[],s=[],o=[];if(!Pe[e.type]?.build(e,a))return!1;const l=e.closePath??!0;ke(a,t,!1,l,s,o);for(let i=0;i<o.length;i+=3){const d=o[i]*2,h=o[i+1]*2,v=o[i+2]*2;n.moveTo(s[d],s[d+1]),n.lineTo(s[h],s[h+1]),n.lineTo(s[v],s[v+1]),n.closePath()}return!0}function it(n,e){if(!e?.length)return!1;for(let t=0;t<e.length;t++){const a=e[t];if(!a?.shape)continue;const s=a.transform,o=s&&!s.isIdentity();o&&(n.save(),n.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),we(n,a.shape),o&&n.restore()}return!0}class Re{constructor(e){this._warnedMaskTypes=new Set,this._canvasMaskStack=[],this._renderer=e}push(e,t,a){this._renderer.renderPipes.batch.break(a),a.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,a){this._renderer.renderPipes.batch.break(a),a.add({renderPipeId:"stencilMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){if(e.action!=="pushMaskBegin"&&e.action!=="popMaskEnd")return;const t=this._renderer,a=t.canvasContext,s=a?.activeContext;if(!s)return;if(e.action==="popMaskEnd"){this._canvasMaskStack.pop()&&s.restore();return}e.inverse&&this._warnOnce("inverse","CanvasRenderer: inverse masks are not supported on Canvas2D; ignoring inverse flag.");const o=e.mask.mask;if(!(o instanceof Le)){this._warnOnce("nonGraphics","CanvasRenderer: only Graphics masks are supported in Canvas2D; skipping mask."),this._canvasMaskStack.push(!1);return}const r=o,l=r.context?.instructions;if(!l?.length){this._canvasMaskStack.push(!1);return}s.save(),a.setContextTransform(r.groupTransform,(t._roundPixels|r._roundPixels)===1),s.beginPath();let i=!1,d=!1;for(let h=0;h<l.length;h++){const v=l[h],y=v.action;if(y!=="fill"&&y!=="stroke")continue;const H=v.data,W=H?.path?.shapePath;if(!W?.shapePrimitives?.length)continue;const F=y==="stroke",S=W.shapePrimitives;for(let G=0;G<S.length;G++){const P=S[G];if(!P?.shape)continue;const g=P.transform,M=g&&!g.isIdentity();M&&(s.save(),s.transform(g.a,g.b,g.c,g.d,g.tx,g.ty)),F&&H.style?i=rt(s,P.shape,H.style)||i:(we(s,P.shape),d=it(s,P.holes)||d,i=!0),M&&s.restore()}}if(!i){s.restore(),this._canvasMaskStack.push(!1);return}d?s.clip("evenodd"):s.clip(),this._canvasMaskStack.push(!0)}destroy(){this._renderer=null,this._warnedMaskTypes=null,this._canvasMaskStack=null}_warnOnce(e,t){this._warnedMaskTypes.has(e)||(this._warnedMaskTypes.add(e),Oe(t))}}Re.extension={type:[_.CanvasPipes],name:"stencilMask"};const p="source-over";function ct(){const n=je(),e=Object.create(null);return e.inherit=p,e.none=p,e.normal="source-over",e.add="lighter",e.multiply=n?"multiply":p,e.screen=n?"screen":p,e.overlay=n?"overlay":p,e.darken=n?"darken":p,e.lighten=n?"lighten":p,e["color-dodge"]=n?"color-dodge":p,e["color-burn"]=n?"color-burn":p,e["hard-light"]=n?"hard-light":p,e["soft-light"]=n?"soft-light":p,e.difference=n?"difference":p,e.exclusion=n?"exclusion":p,e.saturation=n?"saturation":p,e.color=n?"color":p,e.luminosity=n?"luminosity":p,e["linear-burn"]=n?"color-burn":p,e["linear-dodge"]=n?"color-dodge":p,e["linear-light"]=n?"hard-light":p,e["pin-light"]=n?"hard-light":p,e["vivid-light"]=n?"hard-light":p,e["hard-mix"]=p,e.negation=n?"difference":p,e["normal-npm"]=e.normal,e["add-npm"]=e.add,e["screen-npm"]=e.screen,e.erase="destination-out",e.subtract=p,e.divide=p,e.min=p,e.max=p,e}const lt=new A;class Ie{constructor(e){this.activeResolution=1,this.smoothProperty="imageSmoothingEnabled",this.blendModes=ct(),this._activeBlendMode="normal",this._projTransform=null,this._outerBlend=!1,this._warnedBlendModes=new Set,this._renderer=e}resolutionChange(e){this.activeResolution=e}init(){const e=this._renderer.background.alpha<1;if(this.rootContext=this._renderer.canvas.getContext("2d",{alpha:e}),this.activeContext=this.rootContext,this.activeResolution=this._renderer.resolution,!this.rootContext.imageSmoothingEnabled){const t=this.rootContext;t.webkitImageSmoothingEnabled?this.smoothProperty="webkitImageSmoothingEnabled":t.mozImageSmoothingEnabled?this.smoothProperty="mozImageSmoothingEnabled":t.oImageSmoothingEnabled?this.smoothProperty="oImageSmoothingEnabled":t.msImageSmoothingEnabled&&(this.smoothProperty="msImageSmoothingEnabled")}}setContextTransform(e,t,a,s){const o=s?A.IDENTITY:this._renderer.globalUniforms.globalUniformData?.worldTransformMatrix||A.IDENTITY;let r=lt;r.copyFrom(o),r.append(e);const l=this._projTransform,i=this.activeResolution;if(a=a||i,l){const d=A.shared;d.copyFrom(r),d.prepend(l),r=d}t?this.activeContext.setTransform(r.a*a,r.b*a,r.c*a,r.d*a,r.tx*i|0,r.ty*i|0):this.activeContext.setTransform(r.a*a,r.b*a,r.c*a,r.d*a,r.tx*i,r.ty*i)}clear(e,t){const a=this.activeContext,s=this._renderer;if(a.clearRect(0,0,s.width,s.height),e){const o=be.shared.setValue(e);a.globalAlpha=t??o.alpha,a.fillStyle=o.toHex(),a.fillRect(0,0,s.width,s.height),a.globalAlpha=1}}setBlendMode(e){if(this._activeBlendMode===e)return;this._activeBlendMode=e,this._outerBlend=!1;const t=this.blendModes[e];if(!t){this._warnedBlendModes.has(e)||(console.warn(`CanvasRenderer: blend mode "${e}" is not supported in Canvas2D; falling back to "source-over".`),this._warnedBlendModes.add(e)),this.activeContext.globalCompositeOperation="source-over";return}this.activeContext.globalCompositeOperation=t}destroy(){this.rootContext=null,this.activeContext=null,this._warnedBlendModes.clear()}}Ie.extension={type:[_.CanvasSystem],name:"canvasContext"};class Be{constructor(){this.maxTextures=16,this.maxBatchableTextures=16,this.maxUniformBindings=0}init(){}}Be.extension={type:[_.CanvasSystem],name:"limits"};const ht="#808080",z=new A,dt=new A,pt=new A,le=new A;function ut(n,e,t){n.beginPath();for(let a=0;a<t.length;a+=3){const s=t[a]*2,o=t[a+1]*2,r=t[a+2]*2;n.moveTo(e[s],e[s+1]),n.lineTo(e[o],e[o+1]),n.lineTo(e[r],e[r+1]),n.closePath()}n.fill()}function mt(n){return`#${(n&16777215).toString(16).padStart(6,"0")}`}function ft(n,e,t,a,s,o){o=Math.max(0,Math.min(o,Math.min(a,s)/2)),n.moveTo(e+o,t),n.lineTo(e+a-o,t),n.quadraticCurveTo(e+a,t,e+a,t+o),n.lineTo(e+a,t+s-o),n.quadraticCurveTo(e+a,t+s,e+a-o,t+s),n.lineTo(e+o,t+s),n.quadraticCurveTo(e,t+s,e,t+s-o),n.lineTo(e,t+o),n.quadraticCurveTo(e,t,e+o,t)}function ee(n,e){switch(e.type){case"rectangle":{const t=e;n.rect(t.x,t.y,t.width,t.height);break}case"roundedRectangle":{const t=e;ft(n,t.x,t.y,t.width,t.height,t.radius);break}case"circle":{const t=e;n.arc(t.x,t.y,t.radius,0,Math.PI*2);break}case"ellipse":{const t=e;n.ellipse?n.ellipse(t.x,t.y,t.halfWidth,t.halfHeight,0,0,Math.PI*2):(n.save(),n.translate(t.x,t.y),n.scale(t.halfWidth,t.halfHeight),n.arc(0,0,1,0,Math.PI*2),n.restore());break}case"triangle":{const t=e;n.moveTo(t.x,t.y),n.lineTo(t.x2,t.y2),n.lineTo(t.x3,t.y3),n.closePath();break}default:{const t=e,a=t.points;if(!a?.length)break;n.moveTo(a[0],a[1]);for(let s=2;s<a.length;s+=2)n.lineTo(a[s],a[s+1]);t.closePath&&n.closePath();break}}}function gt(n,e){if(!e?.length)return!1;for(let t=0;t<e.length;t++){const a=e[t];if(!a?.shape)continue;const s=a.transform,o=s&&!s.isIdentity();o&&(n.save(),n.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),ee(n,a.shape),o&&n.restore()}return!0}function vt(n,e,t,a){const s=n.fill;if(s instanceof Ye){s.buildGradient();const r=s.texture;if(r){const l=C.getTintedPattern(r,e),i=t?le.copyFrom(t).scale(r.source.pixelWidth,r.source.pixelHeight):le.copyFrom(s.transform);return a&&!n.textureSpace&&i.append(a),C.applyPatternTransform(l,i),l}}if(s instanceof Ve){const r=C.getTintedPattern(s.texture,e);return C.applyPatternTransform(r,s.transform,!1),r}const o=n.texture;if(o&&o!==_e.WHITE){if(!o.source.resource)return ht;const r=C.getTintedPattern(o,e),l=t?le.copyFrom(t).scale(o.source.pixelWidth,o.source.pixelHeight):n.matrix;return C.applyPatternTransform(r,l),r}return mt(e)}class Ae{constructor(){this.shader=null}contextChange(e){}execute(e,t){const a=e.renderer,s=a.canvasContext,o=s.activeContext,r=t.groupTransform,l=a.globalUniforms.globalUniformData?.worldColor??4294967295,i=t.groupColorAlpha,d=(l>>>24&255)/255,h=(i>>>24&255)/255,v=a.filter?.alphaMultiplier??1,y=d*h*v;if(y<=0)return;const H=l&16777215,W=i&16777215,F=Te(Z(W,H)),S=a._roundPixels|t._roundPixels;o.save(),s.setContextTransform(r,S===1),s.setBlendMode(t.groupBlendMode);const G=t.context.instructions;for(let P=0;P<G.length;P++){const g=G[P];if(g.action==="texture"){const u=g.data,m=u.image,f=m?C.getCanvasSource(m):null;if(!f)continue;const D=u.alpha*y;if(D<=0)continue;const j=Z(u.style,F);o.globalAlpha=D;let b=f;j!==16777215&&(b=C.getTintedCanvas({texture:m},j));const E=m.frame,x=m.source._resolution??m.source.resolution??1;let w=E.x*x,R=E.y*x;const $=E.width*x,U=E.height*x;b!==f&&(w=0,R=0);const B=u.transform,T=B&&!B.isIdentity(),c=m.rotate;T||c?(z.copyFrom(r),T&&z.append(B),c&&Ce.matrixAppendRotationInv(z,c,u.dx,u.dy,u.dw,u.dh),s.setContextTransform(z,S===1)):s.setContextTransform(r,S===1),o.drawImage(b,w,R,b===f?$:b.width,b===f?U:b.height,c?0:u.dx,c?0:u.dy,u.dw,u.dh),(T||c)&&s.setContextTransform(r,S===1);continue}const M=g.data,K=M?.path?.shapePath;if(!K?.shapePrimitives?.length)continue;const k=M.style,q=Z(k.color,F),I=k.alpha*y;if(I<=0)continue;const V=g.action==="stroke";if(o.globalAlpha=I,V){const u=k;o.lineWidth=u.width,o.lineCap=u.cap,o.lineJoin=u.join,o.miterLimit=u.miterLimit}const O=K.shapePrimitives;if(!V&&M.hole?.shapePath?.shapePrimitives?.length){const u=O[O.length-1];u.holes=M.hole.shapePath.shapePrimitives}for(let u=0;u<O.length;u++){const m=O[u];if(!m?.shape)continue;const f=m.transform,D=f&&!f.isIdentity(),j=k.texture&&k.texture!==_e.WHITE,b=k.textureSpace==="global"?f:null,E=j?Ne(dt,k,m.shape,b):null,x=D?pt.copyFrom(r).append(f):r,w=vt(k,q,E,x);if(D&&(o.save(),o.transform(f.a,f.b,f.c,f.d,f.tx,f.ty)),V){const R=k;if(R.alignment!==.5&&!R.pixelLine){const U=[],B=[],T=[];if(Pe[m.shape.type]?.build(m.shape,U)){const se=m.shape.closePath??!0;ke(U,R,!1,se,B,T),o.fillStyle=w,ut(o,B,T)}else o.strokeStyle=w,o.beginPath(),ee(o,m.shape),o.stroke()}else o.strokeStyle=w,o.beginPath(),ee(o,m.shape),o.stroke()}else o.fillStyle=w,o.beginPath(),ee(o,m.shape),gt(o,m.holes)?o.fill("evenodd"):o.fill();D&&o.restore()}}o.restore()}destroy(){this.shader=null}}Ae.extension={type:[_.CanvasPipesAdaptor],name:"graphics"};class yt{init(e,t){this._renderer=e,this._renderTargetSystem=t}initGpuRenderTarget(e){const t=e.colorTexture,{canvas:a,context:s}=this._ensureCanvas(t);return{canvas:a,context:s,width:a.width,height:a.height}}resizeGpuRenderTarget(e){const t=e.colorTexture,{canvas:a}=this._ensureCanvas(t);a.width=e.pixelWidth,a.height=e.pixelHeight}startRenderPass(e,t,a,s){const o=this._renderTargetSystem.getGpuRenderTarget(e);this._renderer.canvasContext.activeContext=o.context,this._renderer.canvasContext.activeResolution=e.resolution,t&&this.clear(e,t,a,s)}clear(e,t,a,s){const r=this._renderTargetSystem.getGpuRenderTarget(e).context,l=s||{x:0,y:0,width:e.pixelWidth,height:e.pixelHeight};if(r.setTransform(1,0,0,1,0,0),r.clearRect(l.x,l.y,l.width,l.height),a){const i=be.shared.setValue(a);i.alpha>0&&(r.globalAlpha=i.alpha,r.fillStyle=i.toHex(),r.fillRect(l.x,l.y,l.width,l.height),r.globalAlpha=1)}}finishRenderPass(){}copyToTexture(e,t,a,s,o){const l=this._renderTargetSystem.getGpuRenderTarget(e).canvas,i=t.source,{context:d}=this._ensureCanvas(i),h=o?.x??0,v=o?.y??0;return d.drawImage(l,a.x,a.y,s.width,s.height,h,v,s.width,s.height),i.update(),t}destroyGpuRenderTarget(e){}_ensureCanvas(e){let t=e.resource;(!t||!$e.test(t))&&(t=Se.get().createCanvas(e.pixelWidth,e.pixelHeight),e.resource=t),(t.width!==e.pixelWidth||t.height!==e.pixelHeight)&&(t.width=e.pixelWidth,t.height=e.pixelHeight);const a=t.getContext("2d");return{canvas:t,context:a}}}class He extends Ke{constructor(e){super(e),this.adaptor=new yt,this.adaptor.init(e,this)}}He.extension={type:[_.CanvasSystem],name:"renderTarget"};class Ge{constructor(e){}init(){}initSource(e){}generateCanvas(e){const t=Se.get().createCanvas(),a=t.getContext("2d"),s=C.getCanvasSource(e);if(!s)return t;const o=e.frame,r=e.source._resolution??e.source.resolution??1,l=o.x*r,i=o.y*r,d=o.width*r,h=o.height*r;return t.width=Math.ceil(d),t.height=Math.ceil(h),a.drawImage(s,l,i,d,h,0,0,d,h),t}getPixels(e){const t=this.generateCanvas(e);return{pixels:t.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,t.width,t.height).data,width:t.width,height:t.height}}destroy(){}}Ge.extension={type:[_.CanvasSystem],name:"texture"};const xt=[...Qe,Ie,Be,Ge,He],Ct=[ze,Ze,et,tt,st,Re,Me,nt],Tt=[at,Ae],De=[],Ee=[],We=[];te.handleByNamedList(_.CanvasSystem,De);te.handleByNamedList(_.CanvasPipes,Ee);te.handleByNamedList(_.CanvasPipesAdaptor,We);te.add(...xt,...Ct,...Tt);class Gt extends Xe{constructor(){const e={name:"canvas",type:Je.CANVAS,systems:De,renderPipes:Ee,renderPipeAdaptors:We};super(e)}}export{Gt as CanvasRenderer};
1
+ import{f as C,h as Ce,i as Te,m as Z,M as A,j as _,k as Le,w as Oe,s as Pe,l as ke,n as je,C as be,T as _e,o as Ne,F as Ye,p as Ve,q as $e,D as Se,A as Xe,R as Je,r as te}from"./RelationshipGalaxyCanvas-D2owKyDp.js";import{R as Ke,S as Qe,B as ze,a as Ze,b as et,c as tt,A as st,C as nt}from"./RenderTargetSystem-BQ__RbzR.js";import"./vendor-snapdom-XnBoh1gd.js";import"./index-CdsKtFEJ.js";import"./vendor-reka-ui-CzM4kDQ7.js";import"./vendor-nuxt-ui-DaLxYaC4.js";import"./index-IL5tkxhM.js";import"./LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js";import"./people-page-header-Mupn-U_b.js";import"./relationship-galaxy-viewport-Cwfa51ER.js";import"./Filter-BgGyBeXz.js";const he=class L{static _getPatternRepeat(e,t){const a=e&&e!=="clamp-to-edge",s=t&&t!=="clamp-to-edge";return a&&s?"repeat":a?"repeat-x":s?"repeat-y":"no-repeat"}start(e,t,a){}execute(e,t){const a=t.elements;if(!a||!a.length)return;const s=e.renderer,o=s.canvasContext,r=o.activeContext;for(let l=0;l<a.length;l++){const i=a[l];if(!i.packAsQuad)continue;const d=i,h=d.texture,v=h?C.getCanvasSource(h):null;if(!v)continue;const y=h.source.style,H=o.smoothProperty,W=y.scaleMode!=="nearest";r[H]!==W&&(r[H]=W),o.setBlendMode(t.blendMode);const F=s.globalUniforms.globalUniformData?.worldColor??4294967295,S=d.color,G=(F>>>24&255)/255,P=(S>>>24&255)/255,g=s.filter?.alphaMultiplier??1,M=G*P*g;if(M<=0)continue;r.globalAlpha=M;const K=F&16777215,k=S&16777215,q=Te(Z(k,K)),I=h.frame,V=y.addressModeU??y.addressMode,O=y.addressModeV??y.addressMode,u=L._getPatternRepeat(V,O),m=h.source._resolution??h.source.resolution??1,f=d.renderable?.renderGroup?.isCachedAsTexture,D=I.x*m,j=I.y*m,b=I.width*m,E=I.height*m,x=d.bounds,w=s.renderTarget.renderTarget.isRoot,R=x.minX,$=x.minY,U=x.maxX-x.minX,B=x.maxY-x.minY,T=h.rotate,c=h.uvs,se=Math.min(c.x0,c.x1,c.x2,c.x3,c.y0,c.y1,c.y2,c.y3),Fe=Math.max(c.x0,c.x1,c.x2,c.x3,c.y0,c.y1,c.y2,c.y3),de=u!=="no-repeat"&&(se<0||Fe>1),Q=T&&!(!de&&(q!==16777215||T));Q?(L._tempPatternMatrix.copyFrom(d.transform),Ce.matrixAppendRotationInv(L._tempPatternMatrix,T,R,$,U,B),o.setContextTransform(L._tempPatternMatrix,d.roundPixels===1,void 0,f&&w)):o.setContextTransform(d.transform,d.roundPixels===1,void 0,f&&w);const ne=U,ae=B;let X=Q?0:R,J=Q?0:$;if(!Q&&d.roundPixels===1&&(X|=0,J|=0),de){let oe=v;const N=q!==16777215&&!T,Y=I.width<=h.source.width&&I.height<=h.source.height;N&&Y&&(oe=C.getTintedCanvas({texture:h},q));const re=r.createPattern(oe,u);if(!re)continue;const pe=ne,ue=ae;if(pe===0||ue===0)continue;const me=1/pe,fe=1/ue,ge=(c.x1-c.x0)*me,ve=(c.y1-c.y0)*me,ye=(c.x3-c.x0)*fe,xe=(c.y3-c.y0)*fe,qe=c.x0-ge*X-ye*J,Ue=c.y0-ve*X-xe*J,ie=h.source.pixelWidth,ce=h.source.pixelHeight;L._tempPatternMatrix.set(ge*ie,ve*ce,ye*ie,xe*ce,qe*ie,Ue*ce),C.applyPatternTransform(re,L._tempPatternMatrix),r.fillStyle=re,r.fillRect(X,J,ne,ae)}else{const N=q!==16777215||T?C.getTintedCanvas({texture:h},q):v,Y=N!==v;r.drawImage(N,Y?0:D,Y?0:j,Y?N.width:b,Y?N.height:E,X,J,ne,ae)}}}};he._tempPatternMatrix=new A;he.extension={type:[_.CanvasPipesAdaptor],name:"batch"};let at=he;class Me{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,a){this._renderer.renderPipes.batch.break(a);const s=this._colorStack;s[this._colorStackIndex]=s[this._colorStackIndex-1]&e.mask;const o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,a.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(e,t,a){this._renderer.renderPipes.batch.break(a);const s=this._colorStack;this._colorStackIndex--;const o=s[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,a.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(e){}destroy(){this._renderer=null,this._colorStack=null}}Me.extension={type:[_.CanvasPipes],name:"colorMask"};function ot(n,e,t,a,s,o){o=Math.max(0,Math.min(o,Math.min(a,s)/2)),n.moveTo(e+o,t),n.lineTo(e+a-o,t),n.quadraticCurveTo(e+a,t,e+a,t+o),n.lineTo(e+a,t+s-o),n.quadraticCurveTo(e+a,t+s,e+a-o,t+s),n.lineTo(e+o,t+s),n.quadraticCurveTo(e,t+s,e,t+s-o),n.lineTo(e,t+o),n.quadraticCurveTo(e,t,e+o,t)}function we(n,e){switch(e.type){case"rectangle":{const t=e;n.rect(t.x,t.y,t.width,t.height);break}case"roundedRectangle":{const t=e;ot(n,t.x,t.y,t.width,t.height,t.radius);break}case"circle":{const t=e;n.moveTo(t.x+t.radius,t.y),n.arc(t.x,t.y,t.radius,0,Math.PI*2);break}case"ellipse":{const t=e;n.ellipse?(n.moveTo(t.x+t.halfWidth,t.y),n.ellipse(t.x,t.y,t.halfWidth,t.halfHeight,0,0,Math.PI*2)):(n.save(),n.translate(t.x,t.y),n.scale(t.halfWidth,t.halfHeight),n.moveTo(1,0),n.arc(0,0,1,0,Math.PI*2),n.restore());break}case"triangle":{const t=e;n.moveTo(t.x,t.y),n.lineTo(t.x2,t.y2),n.lineTo(t.x3,t.y3),n.closePath();break}default:{const t=e,a=t.points;if(!a?.length)break;n.moveTo(a[0],a[1]);for(let s=2;s<a.length;s+=2)n.lineTo(a[s],a[s+1]);t.closePath&&n.closePath();break}}}function rt(n,e,t){const a=[],s=[],o=[];if(!Pe[e.type]?.build(e,a))return!1;const l=e.closePath??!0;ke(a,t,!1,l,s,o);for(let i=0;i<o.length;i+=3){const d=o[i]*2,h=o[i+1]*2,v=o[i+2]*2;n.moveTo(s[d],s[d+1]),n.lineTo(s[h],s[h+1]),n.lineTo(s[v],s[v+1]),n.closePath()}return!0}function it(n,e){if(!e?.length)return!1;for(let t=0;t<e.length;t++){const a=e[t];if(!a?.shape)continue;const s=a.transform,o=s&&!s.isIdentity();o&&(n.save(),n.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),we(n,a.shape),o&&n.restore()}return!0}class Re{constructor(e){this._warnedMaskTypes=new Set,this._canvasMaskStack=[],this._renderer=e}push(e,t,a){this._renderer.renderPipes.batch.break(a),a.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,a){this._renderer.renderPipes.batch.break(a),a.add({renderPipeId:"stencilMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){if(e.action!=="pushMaskBegin"&&e.action!=="popMaskEnd")return;const t=this._renderer,a=t.canvasContext,s=a?.activeContext;if(!s)return;if(e.action==="popMaskEnd"){this._canvasMaskStack.pop()&&s.restore();return}e.inverse&&this._warnOnce("inverse","CanvasRenderer: inverse masks are not supported on Canvas2D; ignoring inverse flag.");const o=e.mask.mask;if(!(o instanceof Le)){this._warnOnce("nonGraphics","CanvasRenderer: only Graphics masks are supported in Canvas2D; skipping mask."),this._canvasMaskStack.push(!1);return}const r=o,l=r.context?.instructions;if(!l?.length){this._canvasMaskStack.push(!1);return}s.save(),a.setContextTransform(r.groupTransform,(t._roundPixels|r._roundPixels)===1),s.beginPath();let i=!1,d=!1;for(let h=0;h<l.length;h++){const v=l[h],y=v.action;if(y!=="fill"&&y!=="stroke")continue;const H=v.data,W=H?.path?.shapePath;if(!W?.shapePrimitives?.length)continue;const F=y==="stroke",S=W.shapePrimitives;for(let G=0;G<S.length;G++){const P=S[G];if(!P?.shape)continue;const g=P.transform,M=g&&!g.isIdentity();M&&(s.save(),s.transform(g.a,g.b,g.c,g.d,g.tx,g.ty)),F&&H.style?i=rt(s,P.shape,H.style)||i:(we(s,P.shape),d=it(s,P.holes)||d,i=!0),M&&s.restore()}}if(!i){s.restore(),this._canvasMaskStack.push(!1);return}d?s.clip("evenodd"):s.clip(),this._canvasMaskStack.push(!0)}destroy(){this._renderer=null,this._warnedMaskTypes=null,this._canvasMaskStack=null}_warnOnce(e,t){this._warnedMaskTypes.has(e)||(this._warnedMaskTypes.add(e),Oe(t))}}Re.extension={type:[_.CanvasPipes],name:"stencilMask"};const p="source-over";function ct(){const n=je(),e=Object.create(null);return e.inherit=p,e.none=p,e.normal="source-over",e.add="lighter",e.multiply=n?"multiply":p,e.screen=n?"screen":p,e.overlay=n?"overlay":p,e.darken=n?"darken":p,e.lighten=n?"lighten":p,e["color-dodge"]=n?"color-dodge":p,e["color-burn"]=n?"color-burn":p,e["hard-light"]=n?"hard-light":p,e["soft-light"]=n?"soft-light":p,e.difference=n?"difference":p,e.exclusion=n?"exclusion":p,e.saturation=n?"saturation":p,e.color=n?"color":p,e.luminosity=n?"luminosity":p,e["linear-burn"]=n?"color-burn":p,e["linear-dodge"]=n?"color-dodge":p,e["linear-light"]=n?"hard-light":p,e["pin-light"]=n?"hard-light":p,e["vivid-light"]=n?"hard-light":p,e["hard-mix"]=p,e.negation=n?"difference":p,e["normal-npm"]=e.normal,e["add-npm"]=e.add,e["screen-npm"]=e.screen,e.erase="destination-out",e.subtract=p,e.divide=p,e.min=p,e.max=p,e}const lt=new A;class Ie{constructor(e){this.activeResolution=1,this.smoothProperty="imageSmoothingEnabled",this.blendModes=ct(),this._activeBlendMode="normal",this._projTransform=null,this._outerBlend=!1,this._warnedBlendModes=new Set,this._renderer=e}resolutionChange(e){this.activeResolution=e}init(){const e=this._renderer.background.alpha<1;if(this.rootContext=this._renderer.canvas.getContext("2d",{alpha:e}),this.activeContext=this.rootContext,this.activeResolution=this._renderer.resolution,!this.rootContext.imageSmoothingEnabled){const t=this.rootContext;t.webkitImageSmoothingEnabled?this.smoothProperty="webkitImageSmoothingEnabled":t.mozImageSmoothingEnabled?this.smoothProperty="mozImageSmoothingEnabled":t.oImageSmoothingEnabled?this.smoothProperty="oImageSmoothingEnabled":t.msImageSmoothingEnabled&&(this.smoothProperty="msImageSmoothingEnabled")}}setContextTransform(e,t,a,s){const o=s?A.IDENTITY:this._renderer.globalUniforms.globalUniformData?.worldTransformMatrix||A.IDENTITY;let r=lt;r.copyFrom(o),r.append(e);const l=this._projTransform,i=this.activeResolution;if(a=a||i,l){const d=A.shared;d.copyFrom(r),d.prepend(l),r=d}t?this.activeContext.setTransform(r.a*a,r.b*a,r.c*a,r.d*a,r.tx*i|0,r.ty*i|0):this.activeContext.setTransform(r.a*a,r.b*a,r.c*a,r.d*a,r.tx*i,r.ty*i)}clear(e,t){const a=this.activeContext,s=this._renderer;if(a.clearRect(0,0,s.width,s.height),e){const o=be.shared.setValue(e);a.globalAlpha=t??o.alpha,a.fillStyle=o.toHex(),a.fillRect(0,0,s.width,s.height),a.globalAlpha=1}}setBlendMode(e){if(this._activeBlendMode===e)return;this._activeBlendMode=e,this._outerBlend=!1;const t=this.blendModes[e];if(!t){this._warnedBlendModes.has(e)||(console.warn(`CanvasRenderer: blend mode "${e}" is not supported in Canvas2D; falling back to "source-over".`),this._warnedBlendModes.add(e)),this.activeContext.globalCompositeOperation="source-over";return}this.activeContext.globalCompositeOperation=t}destroy(){this.rootContext=null,this.activeContext=null,this._warnedBlendModes.clear()}}Ie.extension={type:[_.CanvasSystem],name:"canvasContext"};class Be{constructor(){this.maxTextures=16,this.maxBatchableTextures=16,this.maxUniformBindings=0}init(){}}Be.extension={type:[_.CanvasSystem],name:"limits"};const ht="#808080",z=new A,dt=new A,pt=new A,le=new A;function ut(n,e,t){n.beginPath();for(let a=0;a<t.length;a+=3){const s=t[a]*2,o=t[a+1]*2,r=t[a+2]*2;n.moveTo(e[s],e[s+1]),n.lineTo(e[o],e[o+1]),n.lineTo(e[r],e[r+1]),n.closePath()}n.fill()}function mt(n){return`#${(n&16777215).toString(16).padStart(6,"0")}`}function ft(n,e,t,a,s,o){o=Math.max(0,Math.min(o,Math.min(a,s)/2)),n.moveTo(e+o,t),n.lineTo(e+a-o,t),n.quadraticCurveTo(e+a,t,e+a,t+o),n.lineTo(e+a,t+s-o),n.quadraticCurveTo(e+a,t+s,e+a-o,t+s),n.lineTo(e+o,t+s),n.quadraticCurveTo(e,t+s,e,t+s-o),n.lineTo(e,t+o),n.quadraticCurveTo(e,t,e+o,t)}function ee(n,e){switch(e.type){case"rectangle":{const t=e;n.rect(t.x,t.y,t.width,t.height);break}case"roundedRectangle":{const t=e;ft(n,t.x,t.y,t.width,t.height,t.radius);break}case"circle":{const t=e;n.arc(t.x,t.y,t.radius,0,Math.PI*2);break}case"ellipse":{const t=e;n.ellipse?n.ellipse(t.x,t.y,t.halfWidth,t.halfHeight,0,0,Math.PI*2):(n.save(),n.translate(t.x,t.y),n.scale(t.halfWidth,t.halfHeight),n.arc(0,0,1,0,Math.PI*2),n.restore());break}case"triangle":{const t=e;n.moveTo(t.x,t.y),n.lineTo(t.x2,t.y2),n.lineTo(t.x3,t.y3),n.closePath();break}default:{const t=e,a=t.points;if(!a?.length)break;n.moveTo(a[0],a[1]);for(let s=2;s<a.length;s+=2)n.lineTo(a[s],a[s+1]);t.closePath&&n.closePath();break}}}function gt(n,e){if(!e?.length)return!1;for(let t=0;t<e.length;t++){const a=e[t];if(!a?.shape)continue;const s=a.transform,o=s&&!s.isIdentity();o&&(n.save(),n.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),ee(n,a.shape),o&&n.restore()}return!0}function vt(n,e,t,a){const s=n.fill;if(s instanceof Ye){s.buildGradient();const r=s.texture;if(r){const l=C.getTintedPattern(r,e),i=t?le.copyFrom(t).scale(r.source.pixelWidth,r.source.pixelHeight):le.copyFrom(s.transform);return a&&!n.textureSpace&&i.append(a),C.applyPatternTransform(l,i),l}}if(s instanceof Ve){const r=C.getTintedPattern(s.texture,e);return C.applyPatternTransform(r,s.transform,!1),r}const o=n.texture;if(o&&o!==_e.WHITE){if(!o.source.resource)return ht;const r=C.getTintedPattern(o,e),l=t?le.copyFrom(t).scale(o.source.pixelWidth,o.source.pixelHeight):n.matrix;return C.applyPatternTransform(r,l),r}return mt(e)}class Ae{constructor(){this.shader=null}contextChange(e){}execute(e,t){const a=e.renderer,s=a.canvasContext,o=s.activeContext,r=t.groupTransform,l=a.globalUniforms.globalUniformData?.worldColor??4294967295,i=t.groupColorAlpha,d=(l>>>24&255)/255,h=(i>>>24&255)/255,v=a.filter?.alphaMultiplier??1,y=d*h*v;if(y<=0)return;const H=l&16777215,W=i&16777215,F=Te(Z(W,H)),S=a._roundPixels|t._roundPixels;o.save(),s.setContextTransform(r,S===1),s.setBlendMode(t.groupBlendMode);const G=t.context.instructions;for(let P=0;P<G.length;P++){const g=G[P];if(g.action==="texture"){const u=g.data,m=u.image,f=m?C.getCanvasSource(m):null;if(!f)continue;const D=u.alpha*y;if(D<=0)continue;const j=Z(u.style,F);o.globalAlpha=D;let b=f;j!==16777215&&(b=C.getTintedCanvas({texture:m},j));const E=m.frame,x=m.source._resolution??m.source.resolution??1;let w=E.x*x,R=E.y*x;const $=E.width*x,U=E.height*x;b!==f&&(w=0,R=0);const B=u.transform,T=B&&!B.isIdentity(),c=m.rotate;T||c?(z.copyFrom(r),T&&z.append(B),c&&Ce.matrixAppendRotationInv(z,c,u.dx,u.dy,u.dw,u.dh),s.setContextTransform(z,S===1)):s.setContextTransform(r,S===1),o.drawImage(b,w,R,b===f?$:b.width,b===f?U:b.height,c?0:u.dx,c?0:u.dy,u.dw,u.dh),(T||c)&&s.setContextTransform(r,S===1);continue}const M=g.data,K=M?.path?.shapePath;if(!K?.shapePrimitives?.length)continue;const k=M.style,q=Z(k.color,F),I=k.alpha*y;if(I<=0)continue;const V=g.action==="stroke";if(o.globalAlpha=I,V){const u=k;o.lineWidth=u.width,o.lineCap=u.cap,o.lineJoin=u.join,o.miterLimit=u.miterLimit}const O=K.shapePrimitives;if(!V&&M.hole?.shapePath?.shapePrimitives?.length){const u=O[O.length-1];u.holes=M.hole.shapePath.shapePrimitives}for(let u=0;u<O.length;u++){const m=O[u];if(!m?.shape)continue;const f=m.transform,D=f&&!f.isIdentity(),j=k.texture&&k.texture!==_e.WHITE,b=k.textureSpace==="global"?f:null,E=j?Ne(dt,k,m.shape,b):null,x=D?pt.copyFrom(r).append(f):r,w=vt(k,q,E,x);if(D&&(o.save(),o.transform(f.a,f.b,f.c,f.d,f.tx,f.ty)),V){const R=k;if(R.alignment!==.5&&!R.pixelLine){const U=[],B=[],T=[];if(Pe[m.shape.type]?.build(m.shape,U)){const se=m.shape.closePath??!0;ke(U,R,!1,se,B,T),o.fillStyle=w,ut(o,B,T)}else o.strokeStyle=w,o.beginPath(),ee(o,m.shape),o.stroke()}else o.strokeStyle=w,o.beginPath(),ee(o,m.shape),o.stroke()}else o.fillStyle=w,o.beginPath(),ee(o,m.shape),gt(o,m.holes)?o.fill("evenodd"):o.fill();D&&o.restore()}}o.restore()}destroy(){this.shader=null}}Ae.extension={type:[_.CanvasPipesAdaptor],name:"graphics"};class yt{init(e,t){this._renderer=e,this._renderTargetSystem=t}initGpuRenderTarget(e){const t=e.colorTexture,{canvas:a,context:s}=this._ensureCanvas(t);return{canvas:a,context:s,width:a.width,height:a.height}}resizeGpuRenderTarget(e){const t=e.colorTexture,{canvas:a}=this._ensureCanvas(t);a.width=e.pixelWidth,a.height=e.pixelHeight}startRenderPass(e,t,a,s){const o=this._renderTargetSystem.getGpuRenderTarget(e);this._renderer.canvasContext.activeContext=o.context,this._renderer.canvasContext.activeResolution=e.resolution,t&&this.clear(e,t,a,s)}clear(e,t,a,s){const r=this._renderTargetSystem.getGpuRenderTarget(e).context,l=s||{x:0,y:0,width:e.pixelWidth,height:e.pixelHeight};if(r.setTransform(1,0,0,1,0,0),r.clearRect(l.x,l.y,l.width,l.height),a){const i=be.shared.setValue(a);i.alpha>0&&(r.globalAlpha=i.alpha,r.fillStyle=i.toHex(),r.fillRect(l.x,l.y,l.width,l.height),r.globalAlpha=1)}}finishRenderPass(){}copyToTexture(e,t,a,s,o){const l=this._renderTargetSystem.getGpuRenderTarget(e).canvas,i=t.source,{context:d}=this._ensureCanvas(i),h=o?.x??0,v=o?.y??0;return d.drawImage(l,a.x,a.y,s.width,s.height,h,v,s.width,s.height),i.update(),t}destroyGpuRenderTarget(e){}_ensureCanvas(e){let t=e.resource;(!t||!$e.test(t))&&(t=Se.get().createCanvas(e.pixelWidth,e.pixelHeight),e.resource=t),(t.width!==e.pixelWidth||t.height!==e.pixelHeight)&&(t.width=e.pixelWidth,t.height=e.pixelHeight);const a=t.getContext("2d");return{canvas:t,context:a}}}class He extends Ke{constructor(e){super(e),this.adaptor=new yt,this.adaptor.init(e,this)}}He.extension={type:[_.CanvasSystem],name:"renderTarget"};class Ge{constructor(e){}init(){}initSource(e){}generateCanvas(e){const t=Se.get().createCanvas(),a=t.getContext("2d"),s=C.getCanvasSource(e);if(!s)return t;const o=e.frame,r=e.source._resolution??e.source.resolution??1,l=o.x*r,i=o.y*r,d=o.width*r,h=o.height*r;return t.width=Math.ceil(d),t.height=Math.ceil(h),a.drawImage(s,l,i,d,h,0,0,d,h),t}getPixels(e){const t=this.generateCanvas(e);return{pixels:t.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,t.width,t.height).data,width:t.width,height:t.height}}destroy(){}}Ge.extension={type:[_.CanvasSystem],name:"texture"};const xt=[...Qe,Ie,Be,Ge,He],Ct=[ze,Ze,et,tt,st,Re,Me,nt],Tt=[at,Ae],De=[],Ee=[],We=[];te.handleByNamedList(_.CanvasSystem,De);te.handleByNamedList(_.CanvasPipes,Ee);te.handleByNamedList(_.CanvasPipesAdaptor,We);te.add(...xt,...Ct,...Tt);class Gt extends Xe{constructor(){const e={name:"canvas",type:Je.CANVAS,systems:De,renderPipes:Ee,renderPipeAdaptors:We};super(e)}}export{Gt as CanvasRenderer};
@@ -1,8 +1,8 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-BsXljrlg.js","assets/vendor-reka-ui-CzM4kDQ7.js","assets/vendor-nuxt-ui-DaLxYaC4.js","assets/vendor-snapdom-XnBoh1gd.js","assets/index-B4l3rHie.css","assets/EChartWordcloud-Clg60FMo.js","assets/vendor-echarts-wordcloud-k5ih2Jl4.js","assets/vendor-echarts-hJVnODyU.js","assets/vendor-zrender-5DcYjSZk.js"])))=>i.map(i=>d[i]);
2
- import{L as za,M as na,N as $e,m as Fe,u as ke,l as Ne,_ as rt,j as Je,o as dt,O as Ea,P as ut,t as at,Q as Ct,R as Ba,y as ra,S as gt,s as St,U as Wt,V as la,r as pt,W as wt,X as ja,T as et,g as Zt,a as Ua,q as ia,Y as De,k as ca,Z as ea,$ as Fa,a0 as Va,x as ta,w as Na,a1 as Oa}from"./index-BsXljrlg.js";import{t as Ke,w as pe,h,b as x,d as ze,p as fe,G as o,P as i,Q as le,a5 as e,U as z,L as p,O as Qe,H as K,K as U,T as n,a0 as Ge,R as se,Z as oe,u as a,a3 as ue,bw as Oe,bx as st,a9 as Ue,bz as Xe,J as zt,W as Et,n as Ve,F as lt,bF as Ha,bC as ot,by as nt,z as Tt,bA as da,k as Wa}from"./vendor-reka-ui-CzM4kDQ7.js";import{_ as Mt}from"./vendor-snapdom-XnBoh1gd.js";import{_ as _e,c as Re,n as ua,f as He,i as vt,d as yt,q as Ya,b as ma,j as It,r as ga,p as Yt,o as Ka,s as Kt,e as Qa,m as Ga,h as Ja}from"./vendor-nuxt-ui-DaLxYaC4.js";import{_ as mt}from"./LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js";import{a as ct,M as Qt,_ as Xa}from"./index-BVUTV9_w.js";import"./vendor-echarts-wordcloud-k5ih2Jl4.js";import{u as ht,i as ft,q as pa,n as va,w as Za,t as Gt,x as es,j as Dt,p as ts,o as ya,v as Jt,y as as,k as xt,z as ha,A as ss}from"./vendor-echarts-hJVnODyU.js";import{P as os}from"./PageHeader-CRlmZoKw.js";const ns={none:[],qwen:["default","off","high"],deepseek_v4:["default","off","high","xhigh"],deepseek_hybrid:["default","off","auto"],o_series:["default","low","medium","high"],gpt5:["default","minimal","low","medium","high"],gpt5_1:["default","off","low","medium","high"],gpt5_2plus:["default","off","minimal","low","medium","high","xhigh"],grok:["default","low","high"],kimi:["default","off","auto","low","medium","high"],doubao:["default","off","auto","high"],hunyuan:["default","off","high"],gemini:["default","off","low","medium","high"],default:["default","off","low","medium","high"]},aa=/^(?!.*-non-reasoning\b)(o\d+(?:-[\w-]+)?|.*\b(?:reasoning|reasoner|thinking|think)\b.*|.*-[rR]\d+.*|.*\bqwq(?:-[\w-]+)?\b.*|.*\bhunyuan-t1(?:-[\w-]+)?\b.*|.*\bgrok-(?:3-mini|4|4-fast|build)(?:-[\w-]+)?\b.*)$/i;function rs(l,s){const t=s.toLowerCase(),c=l.toLowerCase();if(t.includes("-non-reasoning")||c==="anthropic")return"none";if(c==="gemini")return/gemini-(?:2\.5|3(?:\.\d+)?-(?:flash|pro)|flash-latest|pro-latest)/i.test(t)?"gemini":"none";if(c==="qwen"||/\bqwen|qwq/i.test(t))return"qwen";if(/deepseek[_-]v([4-9]|\d{2,})/i.test(t)||/deepseek-ai\/deepseek-r1/i.test(t))return"deepseek_v4";if(/deepseek[_-]chat|deepseek[_-]v3/i.test(t))return"deepseek_hybrid";if(c==="openai"||c==="openai-compatible"){if(/gpt-5\.[2-9]|gpt-5\.[1-9]\d/.test(t))return"gpt5_2plus";if(/gpt-5\.1/.test(t))return"gpt5_1";if(/gpt-5/.test(t))return"gpt5";if(/^o\d/.test(t))return"o_series"}return/^o\d/.test(t)?"o_series":/\bgrok-(?:3-mini|4|4-fast|build)\b/i.test(t)?"grok":/\bkimi-k(?:2-thinking|2\.[5-9]|[3-9])/i.test(t)||c==="kimi"&&/thinking/i.test(t)?"kimi":/\bdoubao-.*seed/i.test(t)||c==="doubao"&&/seed/i.test(t)?"doubao":/\bhunyuan-(?:t1|a13b)/i.test(t)?"hunyuan":c==="glm"||/\bglm-?(?:5|4\.[5-7]|z1|zero)/i.test(t)?"qwen":c==="siliconflow"&&/r[1-9]/i.test(t)?"deepseek_v4":c==="openrouter"?/deepseek.*(v[4-9]|r\d)/i.test(t)?"deepseek_v4":/deepseek[_-]?(chat|v3)/i.test(t)?"deepseek_hybrid":/\bgrok-(?:3-mini|4|4-fast|build)\b/i.test(t)?"grok":/\bkimi-k(?:2-thinking|2\.[5-9]|[3-9])/i.test(t)?"kimi":aa.test(t)?"default":"none":/\bmimo-v2/i.test(t)||/\bminimax-m[123]/i.test(t)||/\bseed-oss/i.test(t)?"deepseek_hybrid":/\bbaichuan-m[23]/i.test(t)||/\bmagistral/i.test(t)||/\bmistral-small-2603/i.test(t)||/\bstep-(?:3|r1-v-mini)/i.test(t)||/\bgemma-?4/i.test(t)||/\bpangu-pro-moe/i.test(t)||/\bsonar-deep-research/i.test(t)||/\bring-(?:1t|mini|flash)/i.test(t)?"default":/\bqwen|qwq/i.test(t)?"qwen":/deepseek[_-]?r\d|deepseek[_-]?v[4-9]/i.test(t)?"deepseek_v4":/^o\d/i.test(t)?"o_series":aa.test(t)?"default":"none"}function ls(l,s){const t=rs(l,s);return ns[t]}function is(l,s,t,c="group",r="zh-CN"){const m=za(),{chatKey:u,state:d}=m.ensureSessionState({sessionId:l,sessionName:s,timeFilter:t,chatType:c,locale:r});return m.resetToSelectorOnEnter(u),m.applySessionAssistantSelection(u),{messages:Ke(d,"messages"),sourceMessages:Ke(d,"sourceMessages"),currentKeywords:Ke(d,"currentKeywords"),isLoadingSource:Ke(d,"isLoadingSource"),isAIThinking:Ke(d,"isAIThinking"),currentAIChatId:Ke(d,"currentAIChatId"),currentToolStatus:Ke(d,"currentToolStatus"),toolsUsedInCurrentRound:Ke(d,"toolsUsedInCurrentRound"),sessionTokenUsage:Ke(d,"sessionTokenUsage"),agentStatus:Ke(d,"agentStatus"),selectedAssistantId:Ke(d,"selectedAssistantId"),sendMessage:(g,v)=>m.sendMessage(u,g,v),editMessageAndRegenerate:(g,v,y)=>m.editMessageAndRegenerate(u,g,v,y),loadAIChat:g=>m.loadAIChat(u,g),startNewAIChat:g=>m.startNewAIChat(u,g),loadMoreSourceMessages:()=>m.loadMoreSourceMessages(),updateMaxMessages:()=>m.updateMaxMessages(),stopGeneration:()=>m.stopGeneration(u),selectAssistantForSession:g=>m.selectAssistantForSession(u,g)}}const At=new Map;function cs(l,s,t){const{activeTab:c,isInitialLoad:r,currentSessionId:m,onTimeRangeChange:u}=t,d=x(null),g=x(null),v=x([]),y=h(()=>{const M=d.value;if(M)return{startTs:M.startTs,endTs:M.endTs}}),C=h(()=>{const M=d.value;return M?`${M.startTs}-${M.endTs}`:"init"}),f=h(()=>{const M=l.query,R=M.timeMode;return R?{mode:R,recentDays:M.timeDays?Number(M.timeDays):void 0,year:M.timeYear?Number(M.timeYear):void 0,quarterYear:M.timeYear?Number(M.timeYear):void 0,quarter:M.timeQuarter?Number(M.timeQuarter):void 0,customStart:M.timeStart||void 0,customEnd:M.timeEnd||void 0}:m.value&&At.has(m.value)?At.get(m.value):{mode:"recent",recentDays:365}});pe([c,d],([M,R])=>{if(r.value||!R)return;const w=R.state,S={tab:M,timeMode:w.mode,timeDays:void 0,timeYear:void 0,timeQuarter:void 0,timeStart:void 0,timeEnd:void 0};w.mode==="recent"&&(S.timeDays=w.recentDays),w.mode==="year"&&(S.timeYear=w.year),w.mode==="quarter"&&(S.timeYear=w.quarterYear,S.timeQuarter=w.quarter),w.mode==="custom"&&(S.timeStart=w.customStart,S.timeEnd=w.customEnd),s.replace({query:{...l.query,...S}})}),pe(d,M=>{!M||!m.value||(na(),At.set(m.value,M.state),u?.())},{immediate:!0});function b(){d.value=null,g.value=null,v.value=[]}return{timeRangeValue:d,fullTimeRange:g,availableYears:v,timeFilter:y,timeFilterKey:C,initialTimeState:f,resetTimeRange:b}}function sa(l){const s=new Date(l*1e3),t=s.getFullYear(),c=String(s.getMonth()+1).padStart(2,"0"),r=String(s.getDate()).padStart(2,"0");return`${t}-${c}-${r}`}function $k(l){return $e.unix(l).format("YYYY-MM-DD HH:mm:ss")}function Ck(l,s){const t=sa(l);if(s===null)return`${t} ~ 至今`;const c=sa(s);return t===c?t:`${t} ~ ${c}`}function Bt(l,s,t="YYYY/MM/DD",c=" - "){const r=$e.unix(l).format(t),m=$e.unix(s).format(t);return r===m?r:`${r}${c}${m}`}function ds(l){return l===0?"bg-linear-to-r from-amber-400 to-orange-500 text-white":l===1?"bg-linear-to-r from-gray-300 to-gray-400 text-white":l===2?"bg-linear-to-r from-amber-600 to-amber-700 text-white":"bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400"}function Sk(l){const s=["from-amber-400 to-orange-500","from-gray-300 to-gray-400","from-amber-600 to-amber-700","from-pink-400 to-pink-600","from-pink-300 to-rose-500","from-cyan-400 to-blue-500","from-green-400 to-emerald-500","from-rose-400 to-pink-500"];return s[l%s.length]}function us(l){return l.content.trim()?l.content:l.contentBlocks?.filter(t=>t.type==="text"&&!!t.text).map(t=>t.text).join("")??""}function jt(l){return l.flatMap(s=>{if(s.role!=="user"&&s.role!=="assistant")return[];const t=us(s);return t.trim()?[{role:s.role,content:t,timestamp:s.timestamp}]:[]})}function ms(l){return jt(l).length>0}function gs(l,s,t,c){const r=[];r.push(`# ${l}`),r.push(""),r.push(`> ${c.createdAt}: ${$e(t).format("YYYY-MM-DD HH:mm:ss")}`),r.push(""),r.push("---"),r.push("");for(const m of s){const u=$e(m.timestamp).format("YYYY-MM-DD HH:mm:ss"),d=m.role==="user"?c.user:c.assistant;r.push(`### ${d}`),r.push(`*${u}*`),r.push(""),r.push(m.content),r.push(""),r.push("---"),r.push("")}return r.join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CdsKtFEJ.js","assets/vendor-reka-ui-CzM4kDQ7.js","assets/vendor-nuxt-ui-DaLxYaC4.js","assets/vendor-snapdom-XnBoh1gd.js","assets/index-B4l3rHie.css","assets/EChartWordcloud-Clg60FMo.js","assets/vendor-echarts-wordcloud-k5ih2Jl4.js","assets/vendor-echarts-hJVnODyU.js","assets/vendor-zrender-5DcYjSZk.js"])))=>i.map(i=>d[i]);
2
+ import{L as za,M as na,N as $e,m as Fe,u as ke,l as Ne,_ as rt,j as Je,o as dt,O as Ea,P as ut,t as at,Q as Ct,R as Ba,y as ra,S as gt,s as St,U as Wt,V as la,r as pt,W as wt,X as ja,T as et,g as Zt,a as Ua,q as ia,Y as De,k as ca,Z as ea,$ as Fa,a0 as Va,x as ta,w as Na,a1 as Oa}from"./index-CdsKtFEJ.js";import{t as Ke,w as pe,h,b as x,d as ze,p as fe,G as o,P as i,Q as le,a5 as e,U as z,L as p,O as Qe,H as K,K as U,T as n,a0 as Ge,R as se,Z as oe,u as a,a3 as ue,bw as Oe,bx as st,a9 as Ue,bz as Xe,J as zt,W as Et,n as Ve,F as lt,bF as Ha,bC as ot,by as nt,z as Tt,bA as da,k as Wa}from"./vendor-reka-ui-CzM4kDQ7.js";import{_ as Mt}from"./vendor-snapdom-XnBoh1gd.js";import{_ as _e,c as Re,n as ua,f as He,i as vt,d as yt,q as Ya,b as ma,j as It,r as ga,p as Yt,o as Ka,s as Kt,e as Qa,m as Ga,h as Ja}from"./vendor-nuxt-ui-DaLxYaC4.js";import{_ as mt}from"./LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js";import{a as ct,M as Qt,_ as Xa}from"./index-BA87rT8F.js";import"./vendor-echarts-wordcloud-k5ih2Jl4.js";import{u as ht,i as ft,q as pa,n as va,w as Za,t as Gt,x as es,j as Dt,p as ts,o as ya,v as Jt,y as as,k as xt,z as ha,A as ss}from"./vendor-echarts-hJVnODyU.js";import{P as os}from"./PageHeader-CUwv2AFR.js";const ns={none:[],qwen:["default","off","high"],deepseek_v4:["default","off","high","xhigh"],deepseek_hybrid:["default","off","auto"],o_series:["default","low","medium","high"],gpt5:["default","minimal","low","medium","high"],gpt5_1:["default","off","low","medium","high"],gpt5_2plus:["default","off","minimal","low","medium","high","xhigh"],grok:["default","low","high"],kimi:["default","off","auto","low","medium","high"],doubao:["default","off","auto","high"],hunyuan:["default","off","high"],gemini:["default","off","low","medium","high"],default:["default","off","low","medium","high"]},aa=/^(?!.*-non-reasoning\b)(o\d+(?:-[\w-]+)?|.*\b(?:reasoning|reasoner|thinking|think)\b.*|.*-[rR]\d+.*|.*\bqwq(?:-[\w-]+)?\b.*|.*\bhunyuan-t1(?:-[\w-]+)?\b.*|.*\bgrok-(?:3-mini|4|4-fast|build)(?:-[\w-]+)?\b.*)$/i;function rs(l,s){const t=s.toLowerCase(),c=l.toLowerCase();if(t.includes("-non-reasoning")||c==="anthropic")return"none";if(c==="gemini")return/gemini-(?:2\.5|3(?:\.\d+)?-(?:flash|pro)|flash-latest|pro-latest)/i.test(t)?"gemini":"none";if(c==="qwen"||/\bqwen|qwq/i.test(t))return"qwen";if(/deepseek[_-]v([4-9]|\d{2,})/i.test(t)||/deepseek-ai\/deepseek-r1/i.test(t))return"deepseek_v4";if(/deepseek[_-]chat|deepseek[_-]v3/i.test(t))return"deepseek_hybrid";if(c==="openai"||c==="openai-compatible"){if(/gpt-5\.[2-9]|gpt-5\.[1-9]\d/.test(t))return"gpt5_2plus";if(/gpt-5\.1/.test(t))return"gpt5_1";if(/gpt-5/.test(t))return"gpt5";if(/^o\d/.test(t))return"o_series"}return/^o\d/.test(t)?"o_series":/\bgrok-(?:3-mini|4|4-fast|build)\b/i.test(t)?"grok":/\bkimi-k(?:2-thinking|2\.[5-9]|[3-9])/i.test(t)||c==="kimi"&&/thinking/i.test(t)?"kimi":/\bdoubao-.*seed/i.test(t)||c==="doubao"&&/seed/i.test(t)?"doubao":/\bhunyuan-(?:t1|a13b)/i.test(t)?"hunyuan":c==="glm"||/\bglm-?(?:5|4\.[5-7]|z1|zero)/i.test(t)?"qwen":c==="siliconflow"&&/r[1-9]/i.test(t)?"deepseek_v4":c==="openrouter"?/deepseek.*(v[4-9]|r\d)/i.test(t)?"deepseek_v4":/deepseek[_-]?(chat|v3)/i.test(t)?"deepseek_hybrid":/\bgrok-(?:3-mini|4|4-fast|build)\b/i.test(t)?"grok":/\bkimi-k(?:2-thinking|2\.[5-9]|[3-9])/i.test(t)?"kimi":aa.test(t)?"default":"none":/\bmimo-v2/i.test(t)||/\bminimax-m[123]/i.test(t)||/\bseed-oss/i.test(t)?"deepseek_hybrid":/\bbaichuan-m[23]/i.test(t)||/\bmagistral/i.test(t)||/\bmistral-small-2603/i.test(t)||/\bstep-(?:3|r1-v-mini)/i.test(t)||/\bgemma-?4/i.test(t)||/\bpangu-pro-moe/i.test(t)||/\bsonar-deep-research/i.test(t)||/\bring-(?:1t|mini|flash)/i.test(t)?"default":/\bqwen|qwq/i.test(t)?"qwen":/deepseek[_-]?r\d|deepseek[_-]?v[4-9]/i.test(t)?"deepseek_v4":/^o\d/i.test(t)?"o_series":aa.test(t)?"default":"none"}function ls(l,s){const t=rs(l,s);return ns[t]}function is(l,s,t,c="group",r="zh-CN"){const m=za(),{chatKey:u,state:d}=m.ensureSessionState({sessionId:l,sessionName:s,timeFilter:t,chatType:c,locale:r});return m.resetToSelectorOnEnter(u),m.applySessionAssistantSelection(u),{messages:Ke(d,"messages"),sourceMessages:Ke(d,"sourceMessages"),currentKeywords:Ke(d,"currentKeywords"),isLoadingSource:Ke(d,"isLoadingSource"),isAIThinking:Ke(d,"isAIThinking"),currentAIChatId:Ke(d,"currentAIChatId"),currentToolStatus:Ke(d,"currentToolStatus"),toolsUsedInCurrentRound:Ke(d,"toolsUsedInCurrentRound"),sessionTokenUsage:Ke(d,"sessionTokenUsage"),agentStatus:Ke(d,"agentStatus"),selectedAssistantId:Ke(d,"selectedAssistantId"),sendMessage:(g,v)=>m.sendMessage(u,g,v),editMessageAndRegenerate:(g,v,y)=>m.editMessageAndRegenerate(u,g,v,y),loadAIChat:g=>m.loadAIChat(u,g),startNewAIChat:g=>m.startNewAIChat(u,g),loadMoreSourceMessages:()=>m.loadMoreSourceMessages(),updateMaxMessages:()=>m.updateMaxMessages(),stopGeneration:()=>m.stopGeneration(u),selectAssistantForSession:g=>m.selectAssistantForSession(u,g)}}const At=new Map;function cs(l,s,t){const{activeTab:c,isInitialLoad:r,currentSessionId:m,onTimeRangeChange:u}=t,d=x(null),g=x(null),v=x([]),y=h(()=>{const M=d.value;if(M)return{startTs:M.startTs,endTs:M.endTs}}),C=h(()=>{const M=d.value;return M?`${M.startTs}-${M.endTs}`:"init"}),f=h(()=>{const M=l.query,R=M.timeMode;return R?{mode:R,recentDays:M.timeDays?Number(M.timeDays):void 0,year:M.timeYear?Number(M.timeYear):void 0,quarterYear:M.timeYear?Number(M.timeYear):void 0,quarter:M.timeQuarter?Number(M.timeQuarter):void 0,customStart:M.timeStart||void 0,customEnd:M.timeEnd||void 0}:m.value&&At.has(m.value)?At.get(m.value):{mode:"recent",recentDays:365}});pe([c,d],([M,R])=>{if(r.value||!R)return;const w=R.state,S={tab:M,timeMode:w.mode,timeDays:void 0,timeYear:void 0,timeQuarter:void 0,timeStart:void 0,timeEnd:void 0};w.mode==="recent"&&(S.timeDays=w.recentDays),w.mode==="year"&&(S.timeYear=w.year),w.mode==="quarter"&&(S.timeYear=w.quarterYear,S.timeQuarter=w.quarter),w.mode==="custom"&&(S.timeStart=w.customStart,S.timeEnd=w.customEnd),s.replace({query:{...l.query,...S}})}),pe(d,M=>{!M||!m.value||(na(),At.set(m.value,M.state),u?.())},{immediate:!0});function b(){d.value=null,g.value=null,v.value=[]}return{timeRangeValue:d,fullTimeRange:g,availableYears:v,timeFilter:y,timeFilterKey:C,initialTimeState:f,resetTimeRange:b}}function sa(l){const s=new Date(l*1e3),t=s.getFullYear(),c=String(s.getMonth()+1).padStart(2,"0"),r=String(s.getDate()).padStart(2,"0");return`${t}-${c}-${r}`}function $k(l){return $e.unix(l).format("YYYY-MM-DD HH:mm:ss")}function Ck(l,s){const t=sa(l);if(s===null)return`${t} ~ 至今`;const c=sa(s);return t===c?t:`${t} ~ ${c}`}function Bt(l,s,t="YYYY/MM/DD",c=" - "){const r=$e.unix(l).format(t),m=$e.unix(s).format(t);return r===m?r:`${r}${c}${m}`}function ds(l){return l===0?"bg-linear-to-r from-amber-400 to-orange-500 text-white":l===1?"bg-linear-to-r from-gray-300 to-gray-400 text-white":l===2?"bg-linear-to-r from-amber-600 to-amber-700 text-white":"bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400"}function Sk(l){const s=["from-amber-400 to-orange-500","from-gray-300 to-gray-400","from-amber-600 to-amber-700","from-pink-400 to-pink-600","from-pink-300 to-rose-500","from-cyan-400 to-blue-500","from-green-400 to-emerald-500","from-rose-400 to-pink-500"];return s[l%s.length]}function us(l){return l.content.trim()?l.content:l.contentBlocks?.filter(t=>t.type==="text"&&!!t.text).map(t=>t.text).join("")??""}function jt(l){return l.flatMap(s=>{if(s.role!=="user"&&s.role!=="assistant")return[];const t=us(s);return t.trim()?[{role:s.role,content:t,timestamp:s.timestamp}]:[]})}function ms(l){return jt(l).length>0}function gs(l,s,t,c){const r=[];r.push(`# ${l}`),r.push(""),r.push(`> ${c.createdAt}: ${$e(t).format("YYYY-MM-DD HH:mm:ss")}`),r.push(""),r.push("---"),r.push("");for(const m of s){const u=$e(m.timestamp).format("YYYY-MM-DD HH:mm:ss"),d=m.role==="user"?c.user:c.assistant;r.push(`### ${d}`),r.push(`*${u}*`),r.push(""),r.push(m.content),r.push(""),r.push("---"),r.push("")}return r.join(`
3
3
  `)}function ps(l,s,t,c){const r=[];r.push(`${l}`),r.push(`${c.createdAt}: ${$e(t).format("YYYY-MM-DD HH:mm:ss")}`),r.push(""),r.push("=".repeat(50)),r.push("");for(const m of s){const u=$e(m.timestamp).format("YYYY-MM-DD HH:mm:ss"),d=m.role==="user"?c.user:c.assistant;r.push(`[${d}] ${u}`),r.push(""),r.push(m.content),r.push(""),r.push("-".repeat(50)),r.push("")}return r.join(`
4
- `)}function vs(l){return l.replace(/[/\\?%*:|"<>]/g,"_")}async function ys(l,s,t,c,r){if(s.length===0)return{success:!1,error:"No messages to export"};let m,u;const d=$e(t).format("YYYYMMDD_HHmmss"),g=vs(l);c==="markdown"?(m=gs(l,s,t,r),u=`${g}_${d}.md`):(m=ps(l,s,t,r),u=`${g}_${d}.txt`);const v=`data:text/plain;charset=utf-8,${encodeURIComponent(m)}`,{useCacheService:y}=await Mt(async()=>{const{useCacheService:f}=await import("./index-BsXljrlg.js").then(b=>b.a3);return{useCacheService:f}},__vite__mapDeps([0,1,2,3,4]));return await y().saveToDownloads(u,v)}function hs(l){const s=l.columns.join(","),t=l.rows.map(c=>c.map(r=>r===null?"":`"${String(r).replace(/"/g,'""')}"`).join(","));return[s,...t].join(`
5
- `)}function fs(l){const s=l.rows.map(t=>{const c={};return l.columns.forEach((r,m)=>{c[r]=t[m]}),c});return JSON.stringify(s,null,2)}async function xs(l,s){if(l.rows.length===0)return{success:!1,error:"No data to export"};const c=`sql_result_${$e().format("YYYYMMDD_HHmmss")}.${s}`;let r,m;s==="json"?(r=fs(l),m="application/json"):(r=hs(l),m="text/csv");const u=`data:${m};charset=utf-8,${encodeURIComponent(r)}`,{useCacheService:d}=await Mt(async()=>{const{useCacheService:v}=await import("./index-BsXljrlg.js").then(y=>y.a3);return{useCacheService:v}},__vite__mapDeps([0,1,2,3,4]));return await d().saveToDownloads(c,u)}function Tk(l){const{route:s,router:t,currentSessionId:c,selectSession:r,defaultTab:m,validTabIds:u}=l,d=x(!0),g=x(!0),v=x(null),y=x([]),C=x([]),f=x([]),b=x([]);function M(){const A=s.query.tab;return A&&u.includes(A)?A:m}const R=x(M()),{timeRangeValue:w,fullTimeRange:S,availableYears:T,timeFilter:D,initialTimeState:k}=cs(s,t,{activeTab:R,isInitialLoad:g,currentSessionId:c,onTimeRangeChange:()=>q()});function $(){const A=s.params.id;A&&(r(A),c.value!==A&&t.replace("/"))}async function I(){if(c.value)try{const A=await Fe().getSession(c.value);v.value=A}catch(A){console.error("加载基础数据失败:",A)}}async function q(){if(c.value){d.value=!0;try{const A=D.value,_=Fe(),[L,Y,ae,W]=await Promise.all([_.getMemberActivity(c.value,A),_.getHourlyActivity(c.value,A),_.getDailyActivity(c.value,A),_.getMessageTypeDistribution(c.value,A)]);y.value=L,C.value=Y,f.value=ae,b.value=W}catch(A){console.error("加载分析数据失败:",A)}finally{d.value=!1}}}async function E(){c.value&&(g.value=!0,await I(),g.value=!1)}return pe(()=>s.params.id,()=>{R.value=M(),$()}),pe(()=>s.query.tab,()=>{R.value=M()}),pe(c,()=>{na(),E()},{immediate:!0}),ze(()=>{$()}),{activeTab:R,isLoading:d,isInitialLoad:g,session:v,memberActivity:y,hourlyActivity:C,dailyActivity:f,messageTypes:b,timeRangeValue:w,fullTimeRange:S,availableYears:T,timeFilter:D,initialTimeState:k,syncSession:$,loadData:E,loadAnalysisData:q}}const bs=["data-theme-card"],ks={key:0,class:"pointer-events-none absolute inset-0 overflow-hidden"},_s={key:1,class:"absolute right-3 top-3 z-50 opacity-0 transition-opacity duration-200 group-hover/card:opacity-100"},it=fe({__name:"ThemeCard",props:{variant:{default:"section"},decorative:{type:Boolean,default:!1},capturable:{type:Boolean,default:!0}},setup(l){const s=l,t={section:"rounded-xl border border-gray-200 bg-card-bg shadow-sm dark:border-white/5 dark:bg-card-dark",card:"rounded-[20px] border border-gray-200/60 bg-card-bg shadow-sm transition-all hover:shadow-md dark:border-white/5 dark:bg-card-dark",elevated:"rounded-[24px] bg-card-bg shadow-xl ring-1 ring-gray-900/5 dark:bg-card-dark dark:ring-white/10"},c=h(()=>{const m=`relative isolate overflow-hidden ${t[s.variant]}`;return s.capturable?`group/card ${m}`:m}),r=h(()=>s.decorative&&s.variant==="elevated");return(m,u)=>(o(),i("div",{class:le(c.value),"data-theme-card":l.capturable?"":void 0},[r.value?(o(),i("div",ks,[...u[0]||(u[0]=[e("div",{class:"absolute -left-[20%] -top-[20%] h-[70%] w-[70%] rounded-full bg-blue-400/10 blur-[80px] dark:bg-blue-500/20"},null,-1),e("div",{class:"absolute -right-[20%] top-[10%] h-[70%] w-[70%] rounded-full bg-pink-400/10 blur-[80px] dark:bg-pink-500/20"},null,-1)])])):z("",!0),l.capturable?(o(),i("div",_s,[p(ct,{type:"element","target-selector":"[data-theme-card]",size:"xs"})])):z("",!0),Qe(m.$slots,"default")],10,bs))}}),ws={class:"flex items-center justify-between"},$s={class:"font-semibold text-gray-900 dark:text-white whitespace-nowrap"},Cs={key:0,class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Ye=fe({__name:"SectionCard",props:{title:{},description:{},showDivider:{type:Boolean,default:!0},scrollable:{type:Boolean,default:!1},maxHeightVh:{default:60}},setup(l){const s=l,t=h(()=>{if(s.scrollable)return{maxHeight:`${s.maxHeightVh}vh`,overflowY:"auto"}});return(c,r)=>(o(),K(it,{variant:"section"},{default:U(()=>[e("div",{class:le(["px-5 py-3",{"border-b border-gray-200 dark:border-white/5":l.showDivider&&c.$slots.default}])},[e("div",ws,[e("div",null,[e("p",$s,n(l.title),1),l.description?(o(),i("p",Cs,n(l.description),1)):z("",!0)]),Qe(c.$slots,"headerRight")])],2),l.scrollable?(o(),i("div",{key:0,style:Ge(t.value)},[Qe(c.$slots,"default")],4)):Qe(c.$slots,"default",{key:1}),Qe(c.$slots,"footer")]),_:3}))}}),Ss={class:"flex items-start justify-between"},Ts={class:"min-w-0 flex-1"},Ms={class:"text-sm font-medium text-gray-500 dark:text-gray-400"},Is={key:1,class:"text-xl"},Ds={key:0,class:"mt-4 flex items-center text-sm"},Ls={class:"text-gray-500 dark:text-gray-400"},Ze=fe({__name:"StatCard",props:{label:{},value:{},valueColor:{},subtext:{},icon:{},iconBg:{}},setup(l){const s={pink:"text-pink-600 dark:text-pink-400",amber:"text-amber-600 dark:text-amber-400",blue:"text-blue-600 dark:text-blue-400",green:"text-green-600 dark:text-green-400",red:"text-red-600 dark:text-red-400",gray:"text-gray-900 dark:text-white"},t={pink:"bg-pink-100 dark:bg-pink-500/10",amber:"bg-amber-100 dark:bg-amber-500/10",blue:"bg-blue-100 dark:bg-blue-500/10",green:"bg-green-100 dark:bg-green-500/10",red:"bg-red-100 dark:bg-red-500/10",gray:"bg-gray-100 dark:bg-white/5"};return(c,r)=>{const m=_e;return o(),K(it,{variant:"card",class:"p-5"},{default:U(()=>[e("div",Ss,[e("div",Ts,[e("p",Ms,n(l.label),1),e("p",{class:le(["mt-2 truncate text-2xl font-bold tracking-tight",l.valueColor?s[l.valueColor]:"text-gray-900 dark:text-white"])},n(l.value),3)]),l.icon?(o(),i("div",{key:0,class:le(["ml-4 flex h-10 w-10 shrink-0 items-center justify-center rounded-xl",t[l.iconBg||"gray"]])},[l.icon.startsWith("i-")?(o(),K(m,{key:0,name:l.icon,class:"h-5 w-5"},null,8,["name"])):(o(),i("span",Is,n(l.icon),1))],2)):z("",!0)]),l.subtext||c.$slots.subtext?(o(),i("div",Ds,[Qe(c.$slots,"subtext",{},()=>[e("span",Ls,n(l.subtext),1)])])):z("",!0)]),_:3})}}}),As={key:0,class:"mb-2 block text-2xl"},Mk=fe({__name:"EmptyState",props:{text:{},icon:{},padding:{}},setup(l){const s={sm:"px-4 py-4",md:"px-5 py-8",lg:"px-6 py-12"};return(t,c)=>(o(),i("div",{class:le(["text-center text-sm text-gray-400",s[l.padding||"md"]])},[l.icon?(o(),i("span",As,n(l.icon),1)):z("",!0),se(" "+n(l.text||"暂无数据"),1)],2))}}),qs=["disabled"],Rs={key:0,class:"flex-1 overflow-y-auto p-2"},Ps={key:0,class:"flex items-center justify-center py-8"},zs={key:1,class:"flex flex-col items-center justify-center py-12 text-center"},Es={class:"flex h-12 w-12 items-center justify-center rounded-full bg-gray-50 dark:bg-gray-800"},Bs={class:"mt-3 text-xs text-gray-400"},js={key:2,class:"space-y-3"},Us={class:"px-2 pb-1 pt-1.5 text-[10px] font-medium tracking-wide text-gray-400 dark:text-gray-500"},Fs={class:"space-y-0.5"},Vs=["onClick"],Ns=["placeholder","onBlur","onKeyup"],Os={key:1,class:"flex items-center"},Hs={class:"line-clamp-1 min-w-0 flex-1 text-sm leading-snug"},Ws={class:"rounded p-0.5 text-gray-400 transition-colors hover:bg-gray-200 hover:text-gray-600 dark:hover:bg-gray-700 dark:hover:text-gray-300"},Ys={class:"w-28 p-1"},Ks=["disabled","onClick"],Qs=["onClick"],Gs=["disabled","onClick"],Js={key:1,class:"flex flex-1 flex-col items-center gap-2 overflow-y-auto py-2"},Xs=["title","disabled"],Zs=["title","onClick"],eo=fe({__name:"ConversationList",props:{sessionId:{},activeId:{},disabled:{type:Boolean}},emits:["select","create","delete"],setup(l,{expose:s,emit:t}){const{t:c}=ke(),r=l,m=t,u=x([]),d=x(!1),g=x(null),v=x(""),y=x(!1),C=x(null);async function f(){d.value=!0;try{u.value=await Ne().getAIChats(r.sessionId)}catch($){console.error("加载对话列表失败:",$)}finally{d.value=!1}}const b=h(()=>{if(u.value.length===0)return[];const $=$e(),I=$.subtract(7,"day").startOf("day"),q=$.subtract(30,"day").startOf("day"),E=[],A=[],_=new Map;for(const ae of u.value){const W=$e(ae.updatedAt*1e3);if(W.isAfter(I))E.push(ae);else if(W.isAfter(q))A.push(ae);else{const ve=W.format("YYYY-MM");_.has(ve)||_.set(ve,[]),_.get(ve).push(ae)}}const L=[];E.length>0&&L.push({label:c("ai.chat.conversation.group.last7Days"),conversations:E}),A.length>0&&L.push({label:c("ai.chat.conversation.group.last30Days"),conversations:A});const Y=[..._.keys()].sort((ae,W)=>W.localeCompare(ae));for(const ae of Y){const W=$e(ae+"-01");L.push({label:W.format(W.year()===$.year()?"M月":"YYYY年M月"),conversations:_.get(ae)})}return L});function M($){return $.title||c("ai.chat.conversation.newChat")}function R($){r.disabled||(g.value=$.id,v.value=$.title||"")}async function w($){if(!r.disabled){if(v.value.trim())try{await Ne().updateAIChatTitle($,v.value.trim());const I=u.value.find(q=>q.id===$);I&&(I.title=v.value.trim())}catch(I){console.error("更新标题失败:",I)}g.value=null}}function S($){C.value=null,R($)}function T($){C.value=null,navigator.clipboard.writeText($)}function D($){C.value=null,k($)}async function k($){if(!r.disabled)try{await Ne().deleteAIChat($),u.value=u.value.filter(I=>I.id!==$),m("delete",$)}catch(I){console.error("删除对话失败:",I)}}return ze(()=>{f()}),pe(()=>r.sessionId,()=>{f()}),s({refresh:f}),($,I)=>{const q=_e,E=Re,A=ua;return o(),i("div",{class:le(["flex flex-col border-r border-gray-200 bg-white transition-all dark:border-gray-800 dark:bg-page-dark",y.value?"w-10":"w-64"])},[e("div",{class:le(["flex items-center border-b border-gray-200 dark:border-gray-800",y.value?"justify-center px-0 py-2":"justify-between pl-3 pr-2 py-2"])},[y.value?(o(),i("button",{key:1,class:"rounded p-1 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-300",onClick:I[2]||(I[2]=_=>y.value=!y.value)},[p(q,{name:"i-heroicons-chevron-right",class:"h-4 w-4"})])):(o(),i(oe,{key:0},[e("button",{class:le(["flex items-center gap-1.5 rounded-md px-2 py-1.5 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-200",{"cursor-not-allowed opacity-50":l.disabled}]),disabled:l.disabled,onClick:I[0]||(I[0]=_=>!l.disabled&&m("create"))},[p(q,{name:"i-heroicons-plus",class:"h-3.5 w-3.5"}),e("span",null,n(a(c)("ai.chat.conversation.newConversation")),1)],10,qs),e("button",{class:"rounded p-1 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-300",onClick:I[1]||(I[1]=_=>y.value=!y.value)},[p(q,{name:"i-heroicons-chevron-left",class:"h-4 w-4"})])],64))],2),y.value?(o(),i("div",Js,[e("button",{class:le(["rounded p-1 text-gray-400 transition-colors hover:bg-gray-100 hover:text-pink-500 dark:hover:bg-gray-800",{"cursor-not-allowed opacity-50":l.disabled}]),title:a(c)("ai.chat.conversation.newConversation"),disabled:l.disabled,onClick:I[7]||(I[7]=_=>!l.disabled&&m("create"))},[p(q,{name:"i-heroicons-plus",class:"h-4 w-4"})],10,Xs),I[8]||(I[8]=e("div",{class:"h-px w-6 bg-gray-200 dark:bg-gray-800"},null,-1)),(o(!0),i(oe,null,ue(u.value,_=>(o(),i("button",{key:_.id,class:le(["rounded p-1 transition-colors hover:bg-gray-100 dark:hover:bg-gray-800",[l.activeId===_.id?"text-pink-500":"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300"]]),title:M(_),onClick:L=>m("select",_.id)},[p(q,{name:"i-heroicons-chat-bubble-left",class:"h-4 w-4"})],10,Zs))),128))])):(o(),i("div",Rs,[d.value?(o(),i("div",Ps,[p(q,{name:"i-heroicons-arrow-path",class:"h-5 w-5 animate-spin text-gray-400"})])):u.value.length===0?(o(),i("div",zs,[e("div",Es,[p(q,{name:"i-heroicons-chat-bubble-left",class:"h-6 w-6 text-gray-300 dark:text-gray-600"})]),e("p",Bs,n(a(c)("ai.chat.conversation.empty")),1),p(E,{class:"mt-2",size:"xs",variant:"link",color:"primary",disabled:l.disabled,onClick:I[3]||(I[3]=_=>!l.disabled&&m("create"))},{default:U(()=>[se(n(a(c)("ai.chat.conversation.startNew")),1)]),_:1},8,["disabled"])])):(o(),i("div",js,[(o(!0),i(oe,null,ue(b.value,_=>(o(),i("div",{key:_.label},[e("div",Us,n(_.label),1),e("div",Fs,[(o(!0),i(oe,null,ue(_.conversations,L=>(o(),i("div",{key:L.id,class:le(["group relative rounded-lg px-3 py-2 transition-all",["cursor-pointer",l.activeId===L.id?"bg-gray-100 text-gray-900 dark:bg-gray-800 dark:text-white":"text-gray-600 hover:bg-gray-50 dark:text-gray-400 dark:hover:bg-gray-800/50"]]),onClick:Y=>m("select",L.id)},[g.value===L.id?Oe((o(),i("input",{key:0,"onUpdate:modelValue":I[4]||(I[4]=Y=>v.value=Y),class:"w-full rounded border-none bg-white px-2 py-1 text-sm shadow-sm outline-none ring-1 ring-gray-200 focus:ring-2 focus:ring-primary-500 dark:bg-page-dark dark:ring-gray-700",placeholder:a(c)("ai.chat.conversation.titlePlaceholder"),autoFocus:"",onBlur:Y=>w(L.id),onKeyup:Xe(Y=>w(L.id),["enter"]),onClick:I[5]||(I[5]=Ue(()=>{},["stop"]))},null,40,Ns)),[[st,v.value]]):(o(),i("div",Os,[e("p",Hs,n(M(L)),1),e("div",{class:le(["ml-1 shrink-0 opacity-0 transition-opacity group-hover:opacity-100",{"opacity-100":l.activeId===L.id||C.value===L.id}]),onClick:I[6]||(I[6]=Ue(()=>{},["stop"]))},[p(A,{open:C.value===L.id,ui:{content:"z-50 p-0"},"onUpdate:open":Y=>C.value=Y?L.id:null},{content:U(()=>[e("div",Ys,[e("button",{class:"flex w-full items-center gap-2 rounded-md px-2 py-2 text-xs text-gray-600 transition-colors hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-800",disabled:l.disabled,onClick:Y=>S(L)},[p(q,{name:"i-heroicons-pencil",class:"h-3.5 w-3.5"}),se(" "+n(a(c)("ai.chat.conversation.rename")),1)],8,Ks),e("button",{class:"flex w-full items-center gap-2 rounded-md px-2 py-2 text-xs text-gray-600 transition-colors hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-800",onClick:Y=>T(L.id)},[p(q,{name:"i-heroicons-clipboard-document",class:"h-3.5 w-3.5"}),se(" "+n(a(c)("ai.chat.conversation.copyId")),1)],8,Qs),e("button",{class:"flex w-full items-center gap-2 rounded-md px-2 py-2 text-xs text-red-500 transition-colors hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/30",disabled:l.disabled,onClick:Y=>D(L.id)},[p(q,{name:"i-heroicons-trash",class:"h-3.5 w-3.5"}),se(" "+n(a(c)("ai.chat.conversation.delete")),1)],8,Gs)])]),default:U(()=>[e("button",Ws,[p(q,{name:"i-heroicons-ellipsis-horizontal",class:"h-4 w-4"})])]),_:2},1032,["open","onUpdate:open"])],2)]))],10,Vs))),128))])]))),128))]))]))],2)}}}),to={class:"writing-vertical text-xs"},ao={class:"flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-800"},so={class:"flex items-center gap-2"},oo={class:"font-medium text-gray-900 dark:text-white"},no={key:0,class:"border-b border-gray-200 px-4 py-2 dark:border-gray-800"},ro={class:"flex flex-wrap items-center gap-2"},lo={class:"text-xs text-gray-500"},io={class:"flex-1 overflow-y-auto"},co={key:0,class:"flex items-center justify-center py-8"},uo={key:1,class:"flex flex-col items-center justify-center py-8 text-center"},mo={class:"mt-2 text-sm text-gray-500"},go={class:"text-xs text-gray-400"},po={key:2,class:"divide-y divide-gray-100 dark:divide-gray-800"},vo={class:"mb-1 flex items-center justify-between"},yo={class:"text-sm font-medium text-gray-900 dark:text-white"},ho={class:"text-xs text-gray-400"},fo=["innerHTML"],xo={key:1,class:"border-t border-gray-200 px-4 py-2 dark:border-gray-800"},bo={class:"flex items-center justify-between"},ko={class:"text-xs text-gray-500"},_o={key:2,class:"pointer-events-none absolute inset-0 overflow-hidden rounded-xl opacity-[0.03]"},wo=fe({__name:"DataSourcePanel",props:{messages:{},keywords:{},isLoading:{type:Boolean},isCollapsed:{type:Boolean}},emits:["toggle","loadMore"],setup(l,{emit:s}){const{t}=ke(),c=l,r=s;function m(d){return $e(d).format("MM-DD HH:mm")}function u(d){if(!c.keywords.length)return d;const g=c.keywords.join("|"),v=new RegExp(`(${g})`,"gi");return d.replace(v,'<mark class="bg-yellow-200 dark:bg-yellow-800/50 px-0.5 rounded">$1</mark>')}return(d,g)=>{const v=_e,y=Re;return o(),i("div",{class:le(["relative flex flex-col rounded-xl bg-white shadow-sm transition-all duration-300 dark:bg-page-dark",[l.isCollapsed?"w-12":"w-full"]])},[l.isCollapsed?(o(),i("button",{key:0,class:"flex h-full flex-col items-center justify-center gap-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",onClick:g[0]||(g[0]=C=>r("toggle"))},[p(v,{name:"i-heroicons-chevron-left",class:"h-5 w-5"}),e("span",to,n(a(t)("ai.chat.dataSource.title")),1)])):(o(),i(oe,{key:1},[e("div",ao,[e("div",so,[p(v,{name:"i-heroicons-document-magnifying-glass",class:"h-5 w-5 text-gray-500"}),e("span",oo,n(a(t)("ai.chat.dataSource.title")),1)]),p(y,{icon:"i-heroicons-chevron-right",color:"gray",variant:"ghost",size:"xs",onClick:g[1]||(g[1]=C=>r("toggle"))})]),l.keywords.length>0?(o(),i("div",no,[e("div",ro,[e("span",lo,n(a(t)("ai.chat.dataSource.keywords")),1),(o(!0),i(oe,null,ue(l.keywords,C=>(o(),i("span",{key:C,class:"rounded-full bg-violet-100 px-2 py-0.5 text-xs text-violet-700 dark:bg-violet-900/30 dark:text-violet-400"},n(C),1))),128))])])):z("",!0),e("div",io,[l.isLoading?(o(),i("div",co,[p(v,{name:"i-heroicons-arrow-path",class:"h-6 w-6 animate-spin text-gray-400"})])):l.messages.length===0?(o(),i("div",uo,[p(v,{name:"i-heroicons-inbox",class:"h-10 w-10 text-gray-300 dark:text-gray-600"}),e("p",mo,n(a(t)("ai.chat.dataSource.empty")),1),e("p",go,n(a(t)("ai.chat.dataSource.emptyHint")),1)])):(o(),i("div",po,[(o(!0),i(oe,null,ue(l.messages,C=>(o(),i("div",{key:C.id,class:"px-4 py-3 transition-colors hover:bg-gray-50 dark:hover:bg-gray-800/50"},[e("div",vo,[e("span",yo,n(C.senderName),1),e("span",ho,n(m(C.timestamp)),1)]),e("p",{class:"line-clamp-3 text-sm text-gray-600 dark:text-gray-400",innerHTML:u(C.content)},null,8,fo)]))),128))]))]),l.messages.length>0?(o(),i("div",xo,[e("div",bo,[e("span",ko,n(a(t)("ai.chat.dataSource.totalRecords",{count:l.messages.length})),1),p(y,{size:"xs",variant:"ghost",onClick:g[2]||(g[2]=C=>r("loadMore"))},{default:U(()=>[se(n(a(t)("ai.chat.dataSource.loadMore")),1)]),_:1})])])):z("",!0)],64)),l.isCollapsed?z("",!0):(o(),i("div",_o,[...g[3]||(g[3]=[e("div",{class:"data-flow-bg absolute inset-0"},null,-1)])]))],2)}}}),$o=rt(wo,[["__scopeId","data-v-5097a3ad"]]),Co={class:"flex max-h-[80vh] flex-col overflow-hidden"},So={class:"shrink-0 border-b border-gray-200 px-6 py-4 dark:border-gray-800"},To={class:"flex items-center justify-between"},Mo={class:"flex items-center gap-3"},Io={class:"flex h-8 w-8 items-center justify-center rounded-lg bg-red-100 dark:bg-red-900/40"},Do={class:"text-lg font-semibold text-gray-900 dark:text-white"},Lo={class:"flex-1 overflow-y-auto px-6 py-4"},Ao={class:"flex flex-col gap-4"},qo={class:"text-sm font-semibold text-gray-700 dark:text-gray-300"},Ro={key:0,class:"rounded-md border border-red-200 bg-red-50/50 p-3 dark:border-red-900/40 dark:bg-red-950/20"},Po={class:"m-0 whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-red-600 dark:text-red-400"},zo={key:1,class:"rounded-md border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-page-dark"},Eo={class:"m-0 max-h-[300px] overflow-auto whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-gray-700 dark:text-gray-300"},Bo={key:2,class:"select-text break-words rounded-md border border-gray-200 bg-gray-50 px-3 py-2 font-mono text-xs text-gray-700 dark:border-gray-700 dark:bg-page-dark dark:text-gray-300"},jo={key:0,class:"py-8 text-center text-sm text-gray-400 dark:text-gray-500"},Uo={class:"shrink-0 border-t border-gray-200 px-6 py-3 dark:border-gray-800"},Fo={class:"flex justify-end"},Vo=fe({__name:"ErrorDetailModal",props:Et({error:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:["update:open"],setup(l){const{t:s}=ke(),t=Je(),c=zt(l,"open"),r=l,m=h(()=>{const g=r.error,v=[];return g.url&&v.push({label:s("ai.chat.error.requestUrl"),value:g.url}),g.statusCode!=null&&v.push({label:s("ai.chat.error.statusCode"),value:String(g.statusCode)}),g.responseBody&&v.push({label:s("ai.chat.error.responseBody"),value:u(g.responseBody),isCode:!0}),g.responseHeaders&&v.push({label:s("ai.chat.error.responseHeaders"),value:JSON.stringify(g.responseHeaders,null,2),isCode:!0}),g.name&&v.push({label:s("ai.chat.error.name"),value:g.name}),g.message&&v.push({label:s("ai.chat.error.message"),value:g.message}),g.stack&&v.push({label:s("ai.chat.error.stack"),value:g.stack,isStack:!0}),g.cause&&v.push({label:s("ai.chat.error.cause"),value:u(g.cause),isCode:!0}),g.provider&&v.push({label:s("ai.chat.error.provider"),value:g.provider}),g.requestBody&&v.push({label:s("ai.chat.error.requestBody"),value:u(g.requestBody),isCode:!0}),v});function u(g){try{return JSON.stringify(JSON.parse(g),null,2)}catch{return g}}function d(){const g=m.value.map(v=>`${v.label}: ${v.value}`).join(`
4
+ `)}function vs(l){return l.replace(/[/\\?%*:|"<>]/g,"_")}async function ys(l,s,t,c,r){if(s.length===0)return{success:!1,error:"No messages to export"};let m,u;const d=$e(t).format("YYYYMMDD_HHmmss"),g=vs(l);c==="markdown"?(m=gs(l,s,t,r),u=`${g}_${d}.md`):(m=ps(l,s,t,r),u=`${g}_${d}.txt`);const v=`data:text/plain;charset=utf-8,${encodeURIComponent(m)}`,{useCacheService:y}=await Mt(async()=>{const{useCacheService:f}=await import("./index-CdsKtFEJ.js").then(b=>b.a3);return{useCacheService:f}},__vite__mapDeps([0,1,2,3,4]));return await y().saveToDownloads(u,v)}function hs(l){const s=l.columns.join(","),t=l.rows.map(c=>c.map(r=>r===null?"":`"${String(r).replace(/"/g,'""')}"`).join(","));return[s,...t].join(`
5
+ `)}function fs(l){const s=l.rows.map(t=>{const c={};return l.columns.forEach((r,m)=>{c[r]=t[m]}),c});return JSON.stringify(s,null,2)}async function xs(l,s){if(l.rows.length===0)return{success:!1,error:"No data to export"};const c=`sql_result_${$e().format("YYYYMMDD_HHmmss")}.${s}`;let r,m;s==="json"?(r=fs(l),m="application/json"):(r=hs(l),m="text/csv");const u=`data:${m};charset=utf-8,${encodeURIComponent(r)}`,{useCacheService:d}=await Mt(async()=>{const{useCacheService:v}=await import("./index-CdsKtFEJ.js").then(y=>y.a3);return{useCacheService:v}},__vite__mapDeps([0,1,2,3,4]));return await d().saveToDownloads(c,u)}function Tk(l){const{route:s,router:t,currentSessionId:c,selectSession:r,defaultTab:m,validTabIds:u}=l,d=x(!0),g=x(!0),v=x(null),y=x([]),C=x([]),f=x([]),b=x([]);function M(){const A=s.query.tab;return A&&u.includes(A)?A:m}const R=x(M()),{timeRangeValue:w,fullTimeRange:S,availableYears:T,timeFilter:D,initialTimeState:k}=cs(s,t,{activeTab:R,isInitialLoad:g,currentSessionId:c,onTimeRangeChange:()=>q()});function $(){const A=s.params.id;A&&(r(A),c.value!==A&&t.replace("/"))}async function I(){if(c.value)try{const A=await Fe().getSession(c.value);v.value=A}catch(A){console.error("加载基础数据失败:",A)}}async function q(){if(c.value){d.value=!0;try{const A=D.value,_=Fe(),[L,Y,ae,W]=await Promise.all([_.getMemberActivity(c.value,A),_.getHourlyActivity(c.value,A),_.getDailyActivity(c.value,A),_.getMessageTypeDistribution(c.value,A)]);y.value=L,C.value=Y,f.value=ae,b.value=W}catch(A){console.error("加载分析数据失败:",A)}finally{d.value=!1}}}async function E(){c.value&&(g.value=!0,await I(),g.value=!1)}return pe(()=>s.params.id,()=>{R.value=M(),$()}),pe(()=>s.query.tab,()=>{R.value=M()}),pe(c,()=>{na(),E()},{immediate:!0}),ze(()=>{$()}),{activeTab:R,isLoading:d,isInitialLoad:g,session:v,memberActivity:y,hourlyActivity:C,dailyActivity:f,messageTypes:b,timeRangeValue:w,fullTimeRange:S,availableYears:T,timeFilter:D,initialTimeState:k,syncSession:$,loadData:E,loadAnalysisData:q}}const bs=["data-theme-card"],ks={key:0,class:"pointer-events-none absolute inset-0 overflow-hidden"},_s={key:1,class:"absolute right-3 top-3 z-50 opacity-0 transition-opacity duration-200 group-hover/card:opacity-100"},it=fe({__name:"ThemeCard",props:{variant:{default:"section"},decorative:{type:Boolean,default:!1},capturable:{type:Boolean,default:!0}},setup(l){const s=l,t={section:"rounded-xl border border-gray-200 bg-card-bg shadow-sm dark:border-white/5 dark:bg-card-dark",card:"rounded-[20px] border border-gray-200/60 bg-card-bg shadow-sm transition-all hover:shadow-md dark:border-white/5 dark:bg-card-dark",elevated:"rounded-[24px] bg-card-bg shadow-xl ring-1 ring-gray-900/5 dark:bg-card-dark dark:ring-white/10"},c=h(()=>{const m=`relative isolate overflow-hidden ${t[s.variant]}`;return s.capturable?`group/card ${m}`:m}),r=h(()=>s.decorative&&s.variant==="elevated");return(m,u)=>(o(),i("div",{class:le(c.value),"data-theme-card":l.capturable?"":void 0},[r.value?(o(),i("div",ks,[...u[0]||(u[0]=[e("div",{class:"absolute -left-[20%] -top-[20%] h-[70%] w-[70%] rounded-full bg-blue-400/10 blur-[80px] dark:bg-blue-500/20"},null,-1),e("div",{class:"absolute -right-[20%] top-[10%] h-[70%] w-[70%] rounded-full bg-pink-400/10 blur-[80px] dark:bg-pink-500/20"},null,-1)])])):z("",!0),l.capturable?(o(),i("div",_s,[p(ct,{type:"element","target-selector":"[data-theme-card]",size:"xs"})])):z("",!0),Qe(m.$slots,"default")],10,bs))}}),ws={class:"flex items-center justify-between"},$s={class:"font-semibold text-gray-900 dark:text-white whitespace-nowrap"},Cs={key:0,class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Ye=fe({__name:"SectionCard",props:{title:{},description:{},showDivider:{type:Boolean,default:!0},scrollable:{type:Boolean,default:!1},maxHeightVh:{default:60}},setup(l){const s=l,t=h(()=>{if(s.scrollable)return{maxHeight:`${s.maxHeightVh}vh`,overflowY:"auto"}});return(c,r)=>(o(),K(it,{variant:"section"},{default:U(()=>[e("div",{class:le(["px-5 py-3",{"border-b border-gray-200 dark:border-white/5":l.showDivider&&c.$slots.default}])},[e("div",ws,[e("div",null,[e("p",$s,n(l.title),1),l.description?(o(),i("p",Cs,n(l.description),1)):z("",!0)]),Qe(c.$slots,"headerRight")])],2),l.scrollable?(o(),i("div",{key:0,style:Ge(t.value)},[Qe(c.$slots,"default")],4)):Qe(c.$slots,"default",{key:1}),Qe(c.$slots,"footer")]),_:3}))}}),Ss={class:"flex items-start justify-between"},Ts={class:"min-w-0 flex-1"},Ms={class:"text-sm font-medium text-gray-500 dark:text-gray-400"},Is={key:1,class:"text-xl"},Ds={key:0,class:"mt-4 flex items-center text-sm"},Ls={class:"text-gray-500 dark:text-gray-400"},Ze=fe({__name:"StatCard",props:{label:{},value:{},valueColor:{},subtext:{},icon:{},iconBg:{}},setup(l){const s={pink:"text-pink-600 dark:text-pink-400",amber:"text-amber-600 dark:text-amber-400",blue:"text-blue-600 dark:text-blue-400",green:"text-green-600 dark:text-green-400",red:"text-red-600 dark:text-red-400",gray:"text-gray-900 dark:text-white"},t={pink:"bg-pink-100 dark:bg-pink-500/10",amber:"bg-amber-100 dark:bg-amber-500/10",blue:"bg-blue-100 dark:bg-blue-500/10",green:"bg-green-100 dark:bg-green-500/10",red:"bg-red-100 dark:bg-red-500/10",gray:"bg-gray-100 dark:bg-white/5"};return(c,r)=>{const m=_e;return o(),K(it,{variant:"card",class:"p-5"},{default:U(()=>[e("div",Ss,[e("div",Ts,[e("p",Ms,n(l.label),1),e("p",{class:le(["mt-2 truncate text-2xl font-bold tracking-tight",l.valueColor?s[l.valueColor]:"text-gray-900 dark:text-white"])},n(l.value),3)]),l.icon?(o(),i("div",{key:0,class:le(["ml-4 flex h-10 w-10 shrink-0 items-center justify-center rounded-xl",t[l.iconBg||"gray"]])},[l.icon.startsWith("i-")?(o(),K(m,{key:0,name:l.icon,class:"h-5 w-5"},null,8,["name"])):(o(),i("span",Is,n(l.icon),1))],2)):z("",!0)]),l.subtext||c.$slots.subtext?(o(),i("div",Ds,[Qe(c.$slots,"subtext",{},()=>[e("span",Ls,n(l.subtext),1)])])):z("",!0)]),_:3})}}}),As={key:0,class:"mb-2 block text-2xl"},Mk=fe({__name:"EmptyState",props:{text:{},icon:{},padding:{}},setup(l){const s={sm:"px-4 py-4",md:"px-5 py-8",lg:"px-6 py-12"};return(t,c)=>(o(),i("div",{class:le(["text-center text-sm text-gray-400",s[l.padding||"md"]])},[l.icon?(o(),i("span",As,n(l.icon),1)):z("",!0),se(" "+n(l.text||"暂无数据"),1)],2))}}),qs=["disabled"],Rs={key:0,class:"flex-1 overflow-y-auto p-2"},Ps={key:0,class:"flex items-center justify-center py-8"},zs={key:1,class:"flex flex-col items-center justify-center py-12 text-center"},Es={class:"flex h-12 w-12 items-center justify-center rounded-full bg-gray-50 dark:bg-gray-800"},Bs={class:"mt-3 text-xs text-gray-400"},js={key:2,class:"space-y-3"},Us={class:"px-2 pb-1 pt-1.5 text-[10px] font-medium tracking-wide text-gray-400 dark:text-gray-500"},Fs={class:"space-y-0.5"},Vs=["onClick"],Ns=["placeholder","onBlur","onKeyup"],Os={key:1,class:"flex items-center"},Hs={class:"line-clamp-1 min-w-0 flex-1 text-sm leading-snug"},Ws={class:"rounded p-0.5 text-gray-400 transition-colors hover:bg-gray-200 hover:text-gray-600 dark:hover:bg-gray-700 dark:hover:text-gray-300"},Ys={class:"w-28 p-1"},Ks=["disabled","onClick"],Qs=["onClick"],Gs=["disabled","onClick"],Js={key:1,class:"flex flex-1 flex-col items-center gap-2 overflow-y-auto py-2"},Xs=["title","disabled"],Zs=["title","onClick"],eo=fe({__name:"ConversationList",props:{sessionId:{},activeId:{},disabled:{type:Boolean}},emits:["select","create","delete"],setup(l,{expose:s,emit:t}){const{t:c}=ke(),r=l,m=t,u=x([]),d=x(!1),g=x(null),v=x(""),y=x(!1),C=x(null);async function f(){d.value=!0;try{u.value=await Ne().getAIChats(r.sessionId)}catch($){console.error("加载对话列表失败:",$)}finally{d.value=!1}}const b=h(()=>{if(u.value.length===0)return[];const $=$e(),I=$.subtract(7,"day").startOf("day"),q=$.subtract(30,"day").startOf("day"),E=[],A=[],_=new Map;for(const ae of u.value){const W=$e(ae.updatedAt*1e3);if(W.isAfter(I))E.push(ae);else if(W.isAfter(q))A.push(ae);else{const ve=W.format("YYYY-MM");_.has(ve)||_.set(ve,[]),_.get(ve).push(ae)}}const L=[];E.length>0&&L.push({label:c("ai.chat.conversation.group.last7Days"),conversations:E}),A.length>0&&L.push({label:c("ai.chat.conversation.group.last30Days"),conversations:A});const Y=[..._.keys()].sort((ae,W)=>W.localeCompare(ae));for(const ae of Y){const W=$e(ae+"-01");L.push({label:W.format(W.year()===$.year()?"M月":"YYYY年M月"),conversations:_.get(ae)})}return L});function M($){return $.title||c("ai.chat.conversation.newChat")}function R($){r.disabled||(g.value=$.id,v.value=$.title||"")}async function w($){if(!r.disabled){if(v.value.trim())try{await Ne().updateAIChatTitle($,v.value.trim());const I=u.value.find(q=>q.id===$);I&&(I.title=v.value.trim())}catch(I){console.error("更新标题失败:",I)}g.value=null}}function S($){C.value=null,R($)}function T($){C.value=null,navigator.clipboard.writeText($)}function D($){C.value=null,k($)}async function k($){if(!r.disabled)try{await Ne().deleteAIChat($),u.value=u.value.filter(I=>I.id!==$),m("delete",$)}catch(I){console.error("删除对话失败:",I)}}return ze(()=>{f()}),pe(()=>r.sessionId,()=>{f()}),s({refresh:f}),($,I)=>{const q=_e,E=Re,A=ua;return o(),i("div",{class:le(["flex flex-col border-r border-gray-200 bg-white transition-all dark:border-gray-800 dark:bg-page-dark",y.value?"w-10":"w-64"])},[e("div",{class:le(["flex items-center border-b border-gray-200 dark:border-gray-800",y.value?"justify-center px-0 py-2":"justify-between pl-3 pr-2 py-2"])},[y.value?(o(),i("button",{key:1,class:"rounded p-1 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-300",onClick:I[2]||(I[2]=_=>y.value=!y.value)},[p(q,{name:"i-heroicons-chevron-right",class:"h-4 w-4"})])):(o(),i(oe,{key:0},[e("button",{class:le(["flex items-center gap-1.5 rounded-md px-2 py-1.5 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-200",{"cursor-not-allowed opacity-50":l.disabled}]),disabled:l.disabled,onClick:I[0]||(I[0]=_=>!l.disabled&&m("create"))},[p(q,{name:"i-heroicons-plus",class:"h-3.5 w-3.5"}),e("span",null,n(a(c)("ai.chat.conversation.newConversation")),1)],10,qs),e("button",{class:"rounded p-1 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-300",onClick:I[1]||(I[1]=_=>y.value=!y.value)},[p(q,{name:"i-heroicons-chevron-left",class:"h-4 w-4"})])],64))],2),y.value?(o(),i("div",Js,[e("button",{class:le(["rounded p-1 text-gray-400 transition-colors hover:bg-gray-100 hover:text-pink-500 dark:hover:bg-gray-800",{"cursor-not-allowed opacity-50":l.disabled}]),title:a(c)("ai.chat.conversation.newConversation"),disabled:l.disabled,onClick:I[7]||(I[7]=_=>!l.disabled&&m("create"))},[p(q,{name:"i-heroicons-plus",class:"h-4 w-4"})],10,Xs),I[8]||(I[8]=e("div",{class:"h-px w-6 bg-gray-200 dark:bg-gray-800"},null,-1)),(o(!0),i(oe,null,ue(u.value,_=>(o(),i("button",{key:_.id,class:le(["rounded p-1 transition-colors hover:bg-gray-100 dark:hover:bg-gray-800",[l.activeId===_.id?"text-pink-500":"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300"]]),title:M(_),onClick:L=>m("select",_.id)},[p(q,{name:"i-heroicons-chat-bubble-left",class:"h-4 w-4"})],10,Zs))),128))])):(o(),i("div",Rs,[d.value?(o(),i("div",Ps,[p(q,{name:"i-heroicons-arrow-path",class:"h-5 w-5 animate-spin text-gray-400"})])):u.value.length===0?(o(),i("div",zs,[e("div",Es,[p(q,{name:"i-heroicons-chat-bubble-left",class:"h-6 w-6 text-gray-300 dark:text-gray-600"})]),e("p",Bs,n(a(c)("ai.chat.conversation.empty")),1),p(E,{class:"mt-2",size:"xs",variant:"link",color:"primary",disabled:l.disabled,onClick:I[3]||(I[3]=_=>!l.disabled&&m("create"))},{default:U(()=>[se(n(a(c)("ai.chat.conversation.startNew")),1)]),_:1},8,["disabled"])])):(o(),i("div",js,[(o(!0),i(oe,null,ue(b.value,_=>(o(),i("div",{key:_.label},[e("div",Us,n(_.label),1),e("div",Fs,[(o(!0),i(oe,null,ue(_.conversations,L=>(o(),i("div",{key:L.id,class:le(["group relative rounded-lg px-3 py-2 transition-all",["cursor-pointer",l.activeId===L.id?"bg-gray-100 text-gray-900 dark:bg-gray-800 dark:text-white":"text-gray-600 hover:bg-gray-50 dark:text-gray-400 dark:hover:bg-gray-800/50"]]),onClick:Y=>m("select",L.id)},[g.value===L.id?Oe((o(),i("input",{key:0,"onUpdate:modelValue":I[4]||(I[4]=Y=>v.value=Y),class:"w-full rounded border-none bg-white px-2 py-1 text-sm shadow-sm outline-none ring-1 ring-gray-200 focus:ring-2 focus:ring-primary-500 dark:bg-page-dark dark:ring-gray-700",placeholder:a(c)("ai.chat.conversation.titlePlaceholder"),autoFocus:"",onBlur:Y=>w(L.id),onKeyup:Xe(Y=>w(L.id),["enter"]),onClick:I[5]||(I[5]=Ue(()=>{},["stop"]))},null,40,Ns)),[[st,v.value]]):(o(),i("div",Os,[e("p",Hs,n(M(L)),1),e("div",{class:le(["ml-1 shrink-0 opacity-0 transition-opacity group-hover:opacity-100",{"opacity-100":l.activeId===L.id||C.value===L.id}]),onClick:I[6]||(I[6]=Ue(()=>{},["stop"]))},[p(A,{open:C.value===L.id,ui:{content:"z-50 p-0"},"onUpdate:open":Y=>C.value=Y?L.id:null},{content:U(()=>[e("div",Ys,[e("button",{class:"flex w-full items-center gap-2 rounded-md px-2 py-2 text-xs text-gray-600 transition-colors hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-800",disabled:l.disabled,onClick:Y=>S(L)},[p(q,{name:"i-heroicons-pencil",class:"h-3.5 w-3.5"}),se(" "+n(a(c)("ai.chat.conversation.rename")),1)],8,Ks),e("button",{class:"flex w-full items-center gap-2 rounded-md px-2 py-2 text-xs text-gray-600 transition-colors hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-800",onClick:Y=>T(L.id)},[p(q,{name:"i-heroicons-clipboard-document",class:"h-3.5 w-3.5"}),se(" "+n(a(c)("ai.chat.conversation.copyId")),1)],8,Qs),e("button",{class:"flex w-full items-center gap-2 rounded-md px-2 py-2 text-xs text-red-500 transition-colors hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/30",disabled:l.disabled,onClick:Y=>D(L.id)},[p(q,{name:"i-heroicons-trash",class:"h-3.5 w-3.5"}),se(" "+n(a(c)("ai.chat.conversation.delete")),1)],8,Gs)])]),default:U(()=>[e("button",Ws,[p(q,{name:"i-heroicons-ellipsis-horizontal",class:"h-4 w-4"})])]),_:2},1032,["open","onUpdate:open"])],2)]))],10,Vs))),128))])]))),128))]))]))],2)}}}),to={class:"writing-vertical text-xs"},ao={class:"flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-800"},so={class:"flex items-center gap-2"},oo={class:"font-medium text-gray-900 dark:text-white"},no={key:0,class:"border-b border-gray-200 px-4 py-2 dark:border-gray-800"},ro={class:"flex flex-wrap items-center gap-2"},lo={class:"text-xs text-gray-500"},io={class:"flex-1 overflow-y-auto"},co={key:0,class:"flex items-center justify-center py-8"},uo={key:1,class:"flex flex-col items-center justify-center py-8 text-center"},mo={class:"mt-2 text-sm text-gray-500"},go={class:"text-xs text-gray-400"},po={key:2,class:"divide-y divide-gray-100 dark:divide-gray-800"},vo={class:"mb-1 flex items-center justify-between"},yo={class:"text-sm font-medium text-gray-900 dark:text-white"},ho={class:"text-xs text-gray-400"},fo=["innerHTML"],xo={key:1,class:"border-t border-gray-200 px-4 py-2 dark:border-gray-800"},bo={class:"flex items-center justify-between"},ko={class:"text-xs text-gray-500"},_o={key:2,class:"pointer-events-none absolute inset-0 overflow-hidden rounded-xl opacity-[0.03]"},wo=fe({__name:"DataSourcePanel",props:{messages:{},keywords:{},isLoading:{type:Boolean},isCollapsed:{type:Boolean}},emits:["toggle","loadMore"],setup(l,{emit:s}){const{t}=ke(),c=l,r=s;function m(d){return $e(d).format("MM-DD HH:mm")}function u(d){if(!c.keywords.length)return d;const g=c.keywords.join("|"),v=new RegExp(`(${g})`,"gi");return d.replace(v,'<mark class="bg-yellow-200 dark:bg-yellow-800/50 px-0.5 rounded">$1</mark>')}return(d,g)=>{const v=_e,y=Re;return o(),i("div",{class:le(["relative flex flex-col rounded-xl bg-white shadow-sm transition-all duration-300 dark:bg-page-dark",[l.isCollapsed?"w-12":"w-full"]])},[l.isCollapsed?(o(),i("button",{key:0,class:"flex h-full flex-col items-center justify-center gap-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",onClick:g[0]||(g[0]=C=>r("toggle"))},[p(v,{name:"i-heroicons-chevron-left",class:"h-5 w-5"}),e("span",to,n(a(t)("ai.chat.dataSource.title")),1)])):(o(),i(oe,{key:1},[e("div",ao,[e("div",so,[p(v,{name:"i-heroicons-document-magnifying-glass",class:"h-5 w-5 text-gray-500"}),e("span",oo,n(a(t)("ai.chat.dataSource.title")),1)]),p(y,{icon:"i-heroicons-chevron-right",color:"gray",variant:"ghost",size:"xs",onClick:g[1]||(g[1]=C=>r("toggle"))})]),l.keywords.length>0?(o(),i("div",no,[e("div",ro,[e("span",lo,n(a(t)("ai.chat.dataSource.keywords")),1),(o(!0),i(oe,null,ue(l.keywords,C=>(o(),i("span",{key:C,class:"rounded-full bg-violet-100 px-2 py-0.5 text-xs text-violet-700 dark:bg-violet-900/30 dark:text-violet-400"},n(C),1))),128))])])):z("",!0),e("div",io,[l.isLoading?(o(),i("div",co,[p(v,{name:"i-heroicons-arrow-path",class:"h-6 w-6 animate-spin text-gray-400"})])):l.messages.length===0?(o(),i("div",uo,[p(v,{name:"i-heroicons-inbox",class:"h-10 w-10 text-gray-300 dark:text-gray-600"}),e("p",mo,n(a(t)("ai.chat.dataSource.empty")),1),e("p",go,n(a(t)("ai.chat.dataSource.emptyHint")),1)])):(o(),i("div",po,[(o(!0),i(oe,null,ue(l.messages,C=>(o(),i("div",{key:C.id,class:"px-4 py-3 transition-colors hover:bg-gray-50 dark:hover:bg-gray-800/50"},[e("div",vo,[e("span",yo,n(C.senderName),1),e("span",ho,n(m(C.timestamp)),1)]),e("p",{class:"line-clamp-3 text-sm text-gray-600 dark:text-gray-400",innerHTML:u(C.content)},null,8,fo)]))),128))]))]),l.messages.length>0?(o(),i("div",xo,[e("div",bo,[e("span",ko,n(a(t)("ai.chat.dataSource.totalRecords",{count:l.messages.length})),1),p(y,{size:"xs",variant:"ghost",onClick:g[2]||(g[2]=C=>r("loadMore"))},{default:U(()=>[se(n(a(t)("ai.chat.dataSource.loadMore")),1)]),_:1})])])):z("",!0)],64)),l.isCollapsed?z("",!0):(o(),i("div",_o,[...g[3]||(g[3]=[e("div",{class:"data-flow-bg absolute inset-0"},null,-1)])]))],2)}}}),$o=rt(wo,[["__scopeId","data-v-5097a3ad"]]),Co={class:"flex max-h-[80vh] flex-col overflow-hidden"},So={class:"shrink-0 border-b border-gray-200 px-6 py-4 dark:border-gray-800"},To={class:"flex items-center justify-between"},Mo={class:"flex items-center gap-3"},Io={class:"flex h-8 w-8 items-center justify-center rounded-lg bg-red-100 dark:bg-red-900/40"},Do={class:"text-lg font-semibold text-gray-900 dark:text-white"},Lo={class:"flex-1 overflow-y-auto px-6 py-4"},Ao={class:"flex flex-col gap-4"},qo={class:"text-sm font-semibold text-gray-700 dark:text-gray-300"},Ro={key:0,class:"rounded-md border border-red-200 bg-red-50/50 p-3 dark:border-red-900/40 dark:bg-red-950/20"},Po={class:"m-0 whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-red-600 dark:text-red-400"},zo={key:1,class:"rounded-md border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-page-dark"},Eo={class:"m-0 max-h-[300px] overflow-auto whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-gray-700 dark:text-gray-300"},Bo={key:2,class:"select-text break-words rounded-md border border-gray-200 bg-gray-50 px-3 py-2 font-mono text-xs text-gray-700 dark:border-gray-700 dark:bg-page-dark dark:text-gray-300"},jo={key:0,class:"py-8 text-center text-sm text-gray-400 dark:text-gray-500"},Uo={class:"shrink-0 border-t border-gray-200 px-6 py-3 dark:border-gray-800"},Fo={class:"flex justify-end"},Vo=fe({__name:"ErrorDetailModal",props:Et({error:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:["update:open"],setup(l){const{t:s}=ke(),t=Je(),c=zt(l,"open"),r=l,m=h(()=>{const g=r.error,v=[];return g.url&&v.push({label:s("ai.chat.error.requestUrl"),value:g.url}),g.statusCode!=null&&v.push({label:s("ai.chat.error.statusCode"),value:String(g.statusCode)}),g.responseBody&&v.push({label:s("ai.chat.error.responseBody"),value:u(g.responseBody),isCode:!0}),g.responseHeaders&&v.push({label:s("ai.chat.error.responseHeaders"),value:JSON.stringify(g.responseHeaders,null,2),isCode:!0}),g.name&&v.push({label:s("ai.chat.error.name"),value:g.name}),g.message&&v.push({label:s("ai.chat.error.message"),value:g.message}),g.stack&&v.push({label:s("ai.chat.error.stack"),value:g.stack,isStack:!0}),g.cause&&v.push({label:s("ai.chat.error.cause"),value:u(g.cause),isCode:!0}),g.provider&&v.push({label:s("ai.chat.error.provider"),value:g.provider}),g.requestBody&&v.push({label:s("ai.chat.error.requestBody"),value:u(g.requestBody),isCode:!0}),v});function u(g){try{return JSON.stringify(JSON.parse(g),null,2)}catch{return g}}function d(){const g=m.value.map(v=>`${v.label}: ${v.value}`).join(`
6
6
 
7
7
  `);navigator.clipboard.writeText(g).then(()=>{t.success(s("ai.chat.error.copied"))})}return(g,v)=>{const y=_e,C=Re,f=He;return o(),K(f,{open:c.value,"onUpdate:open":v[1]||(v[1]=b=>c.value=b),ui:{content:"sm:max-w-[700px] z-[100]",overlay:"backdrop-blur-sm z-[99]"}},{content:U(()=>[e("div",Co,[e("div",So,[e("div",To,[e("div",Mo,[e("div",Io,[p(y,{name:"i-heroicons-exclamation-triangle",class:"h-4 w-4 text-red-600 dark:text-red-400"})]),e("h2",Do,n(a(s)("ai.chat.error.detail")),1)]),p(C,{icon:"i-heroicons-x-mark",variant:"ghost",color:"neutral",size:"sm",onClick:v[0]||(v[0]=b=>c.value=!1)})])]),e("div",Lo,[e("div",Ao,[(o(!0),i(oe,null,ue(m.value,(b,M)=>(o(),i("div",{key:M,class:"flex flex-col gap-1.5"},[e("div",qo,n(b.label),1),b.isStack?(o(),i("div",Ro,[e("pre",Po,n(b.value),1)])):b.isCode?(o(),i("div",zo,[e("pre",Eo,n(b.value),1)])):(o(),i("div",Bo,n(b.value),1))]))),128)),m.value.length===0?(o(),i("div",jo,n(a(s)("ai.chat.error.unknown")),1)):z("",!0)])]),e("div",Uo,[e("div",Fo,[p(C,{icon:"i-heroicons-document-duplicate",variant:"soft",color:"neutral",size:"sm",onClick:d},{default:U(()=>[se(n(a(s)("ai.chat.error.copyAll")),1)]),_:1})])])])]),_:1},8,["open"])}}}),No={class:"mb-1.5 flex items-center gap-2"},Oo={class:"flex shrink-0 items-center justify-center text-red-500 dark:text-red-400"},Ho={class:"pr-5 text-[13px] font-semibold leading-[1.4] text-red-600 dark:text-red-400"},Wo={class:"ml-6 line-clamp-3 break-words text-xs leading-normal text-gray-600 dark:text-gray-400"},Yo={class:"mt-2.5 ml-6 flex items-center"},Ko={class:"ml-auto inline-flex items-center gap-0.5 text-xs text-gray-400 transition-colors duration-150 group-hover:text-red-500 dark:text-gray-500 dark:group-hover:text-red-400"},Qo=fe({__name:"ErrorBlock",props:{error:{}},setup(l){const{t:s}=ke(),t=x(!1);function c(r){return r.friendlyMessage||r.message||s("ai.chat.error.unknown")}return(r,m)=>{const u=_e;return o(),i(oe,null,[e("div",{class:"group relative my-2 w-full min-w-[320px] cursor-pointer rounded-lg border border-red-200 bg-red-50/60 px-3.5 py-3 text-[13px] transition-all duration-200 hover:border-red-300 hover:bg-red-50 dark:border-red-900/30 dark:bg-red-950/20 dark:hover:border-red-800/50 dark:hover:bg-red-950/30",onClick:m[0]||(m[0]=d=>t.value=!0)},[e("div",No,[e("div",Oo,[p(u,{name:"i-heroicons-exclamation-triangle",class:"h-4 w-4"})]),e("div",Ho,n(a(s)("ai.chat.error.title")),1)]),e("div",Wo,n(c(l.error)),1),e("div",Yo,[e("div",Ko,[se(n(a(s)("ai.chat.error.viewDetail"))+" ",1),p(u,{name:"i-heroicons-chevron-right",class:"h-3.5 w-3.5"})])])]),p(Vo,{open:t.value,"onUpdate:open":m[1]||(m[1]=d=>t.value=d),error:l.error},null,8,["open","error"])],64)}}}),bt=fe({__name:"EChart",props:{option:{},height:{default:300},loading:{type:Boolean,default:!1},theme:{default:"auto"}},setup(l,{expose:s}){ht([ft,pa,va,Za,Gt,es,Dt,ts,ya,Jt,as]);const t=l,c=x();let r=null,m=null;const u=h(()=>typeof t.height=="number"?`${t.height}px`:t.height),d=h(()=>t.theme==="auto"?document.documentElement.classList.contains("dark"):t.theme==="dark");function g(){c.value&&(r&&r.dispose(),r=xt(c.value,d.value?"dark":void 0),r.setOption({backgroundColor:"transparent",...t.option}))}function v(){if(!r){g();return}r.setOption({backgroundColor:"transparent",...t.option},{notMerge:!0})}function y(){r?.resize()}pe(()=>t.option,v,{deep:!0}),pe(()=>t.height,()=>{setTimeout(()=>{r?.resize()},0)}),pe(d,()=>{g()}),pe(()=>t.loading,f=>{f?r?.showLoading("default",{text:"",spinnerRadius:12,lineWidth:2}):r?.hideLoading()});let C=null;return ze(()=>{Ve(()=>{g()}),window.addEventListener("resize",y),c.value&&(m=new ResizeObserver(()=>y()),m.observe(c.value)),C=new MutationObserver(()=>{t.theme==="auto"&&g()}),C.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]})}),lt(()=>{window.removeEventListener("resize",y),m?.disconnect(),C?.disconnect(),r?.dispose(),r=null}),s({getInstance:()=>r,resize:y}),(f,b)=>(o(),i("div",{ref_key:"chartRef",ref:c,style:Ge({height:u.value,width:"100%"})},null,4))}}),tt=fe({__name:"EChartBar",props:{data:{},height:{default:200},mode:{default:"expanded"},horizontal:{type:Boolean,default:!1},gradient:{type:Boolean,default:!0},borderRadius:{default:4}},setup(l){const s=l,t={type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"#ee4567"},{offset:1,color:"#f7758c"}]},c=h(()=>{const r=s.horizontal,m=s.mode==="compact",u=s.data.labels.length;return{tooltip:{trigger:"axis",confine:!0,extraCssText:"max-width: min(360px, 70vw); white-space: normal; word-break: break-word;",axisPointer:{type:"shadow"},backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"transparent",textStyle:{color:"#fff"}},grid:{left:r?m?72:96:36,right:16,top:20,bottom:r?20:u>8?48:30,outerBoundsMode:"same"},xAxis:r?{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{type:"dashed",color:"#e5e7eb"}}}:{type:"category",data:s.data.labels,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:11,color:"#6b7280",interval:"auto",rotate:!r&&u>8?28:0,hideOverlap:!0}},yAxis:r?{type:"category",data:s.data.labels,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:11,color:"#6b7280",overflow:"truncate",width:m?70:110}}:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{type:"dashed",color:"#e5e7eb"}}},series:[{type:"bar",data:s.data.values,itemStyle:{color:s.gradient?t:"#ee4567",borderRadius:s.borderRadius},barMaxWidth:40,emphasis:{itemStyle:{color:s.gradient?{...t,colorStops:[{offset:0,color:"#de335e"},{offset:1,color:"#ee4567"}]}:"#de335e"}}}]}});return(r,m)=>(o(),K(bt,{option:c.value,height:l.height},null,8,["option","height"]))}}),Ut=fe({__name:"EChartHeatmap",props:{data:{},height:{default:280},mode:{default:"expanded"},minColor:{default:"#fee5e8"},maxColor:{default:"#ee4567"}},setup(l){const s=l,t=h(()=>{let r=0;for(const[,,m]of s.data.data)m>r&&(r=m);return r||1}),c=h(()=>{const r=s.mode==="compact",m=s.data.xLabels.length,u=s.data.yLabels.length;return{tooltip:{position:"top",confine:!0,extraCssText:"max-width: min(360px, 70vw); white-space: normal; word-break: break-word;",formatter:d=>{const g=s.data.xLabels[d.data[0]],v=s.data.yLabels[d.data[1]],y=d.data[2];return`${v} ${g}<br/>消息数: <strong>${y}</strong>`},backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"transparent",textStyle:{color:"#fff"}},grid:{left:r?52:72,right:20,top:r?12:24,bottom:r?52:70,outerBoundsMode:"same"},xAxis:{type:"category",data:s.data.xLabels,splitArea:{show:!0},axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:r?10:11,color:"#6b7280",interval:r&&m>16?"auto":0,hideOverlap:!0}},yAxis:{type:"category",data:s.data.yLabels,splitArea:{show:!0},axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:r?10:11,color:"#6b7280",interval:r&&u>14?"auto":0,hideOverlap:!0}},visualMap:{min:0,max:t.value,calculable:!0,orient:"horizontal",left:"center",bottom:0,itemWidth:r?8:10,itemHeight:r?84:120,inRange:{color:[s.minColor,s.maxColor]},textStyle:{color:"#6b7280",fontSize:11}},series:[{type:"heatmap",data:s.data.data,label:{show:!1},emphasis:{itemStyle:{shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]}});return(r,m)=>(o(),K(bt,{option:c.value,height:l.height},null,8,["option","height"]))}}),Ft=fe({__name:"EChartLine",props:{data:{},height:{default:288},mode:{default:"expanded"},showArea:{type:Boolean,default:!0},smooth:{type:Boolean,default:!0}},setup(l){const s=l,t=h(()=>{const c=!!s.data.series?.length,r=s.mode==="compact",m=s.data.series?.length??0,u=s.data.labels.length,d=m>(r?3:8),g=!r&&u>30,v=c?s.data.series.map(y=>({name:y.name,type:"line",data:y.values,smooth:s.smooth,symbol:"circle",symbolSize:4,showSymbol:!r&&u<=80,lineStyle:{width:2},areaStyle:s.showArea?{opacity:.08}:void 0,emphasis:{focus:"series"}})):[{type:"line",data:s.data.values,smooth:s.smooth,symbol:"circle",symbolSize:4,showSymbol:!r&&u<=80,lineStyle:{width:2,color:"#ee4567"},itemStyle:{color:"#ee4567"},areaStyle:s.showArea?{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(238, 69, 103, 0.3)"},{offset:1,color:"rgba(238, 69, 103, 0.05)"}]}}:void 0,emphasis:{focus:"series",itemStyle:{color:"#ee4567",borderColor:"#fff",borderWidth:2}}}];return{tooltip:{trigger:"axis",confine:!0,extraCssText:"max-width: min(420px, 76vw); white-space: normal; word-break: break-word;",backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"transparent",textStyle:{color:"#fff"}},grid:{left:50,right:20,top:c?r?44:56:20,bottom:g?66:34,outerBoundsMode:"same"},legend:c?{type:d?"scroll":"plain",top:0,left:8,right:8,height:32,textStyle:{color:"#6b7280",fontSize:11}}:void 0,xAxis:{type:"category",data:s.data.labels,boundaryGap:!1,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:11,color:"#6b7280",interval:"auto",hideOverlap:!0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{type:"dashed",color:"#e5e7eb"}}},dataZoom:g?[{type:"inside",throttle:50},{type:"slider",height:18,bottom:18,showDetail:!1}]:void 0,series:v}});return(c,r)=>(o(),K(bt,{option:t.value,height:l.height},null,8,["option","height"]))}}),Vt=fe({__name:"EChartPie",props:{data:{},height:{default:280},mode:{default:"expanded"},doughnut:{type:Boolean,default:!0},innerRadius:{default:"50%"},showLegend:{type:Boolean,default:!0}},setup(l){const s=l,t=["#6366f1","#8b5cf6","#ec4899","#f43f5e","#f97316","#eab308","#22c55e","#14b8a6","#06b6d4","#3b82f6"],c=h(()=>{const r=s.data.labels.map((f,b)=>({name:f,value:s.data.values[b]})),m=s.data.labels.length,u=s.mode==="compact",d=m>(u?8:14),g=m>(u?6:12),v=u?{type:g?"scroll":"plain",orient:"horizontal",left:8,right:8,bottom:0,height:28,textStyle:{fontSize:11,overflow:"truncate",width:72}}:{type:g?"scroll":"plain",orient:"vertical",right:10,top:24,bottom:24,textStyle:{fontSize:12,overflow:"truncate",width:120}},y=!u&&!d,C=s.showLegend&&!y;return{color:t,tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)",confine:!0,extraCssText:"max-width: min(360px, 70vw); white-space: normal; word-break: break-word;",backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"transparent",textStyle:{color:"#fff"}},legend:C?v:void 0,series:[{type:"pie",radius:s.doughnut?[s.innerRadius,u?"58%":"68%"]:u?"58%":"68%",center:C?u?["50%","42%"]:["38%","50%"]:["50%",u?"46%":"50%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:4,borderColor:"#fff",borderWidth:2},label:{show:y,formatter:"{b}",overflow:"truncate",width:110,alignTo:"edge",edgeDistance:12},emphasis:{label:{show:y,fontSize:14,fontWeight:"bold",overflow:"truncate",width:140},itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}},data:r}]}});return(r,m)=>(o(),K(bt,{option:c.value,height:l.height},null,8,["option","height"]))}}),Go={class:"my-2 w-full overflow-hidden rounded-lg border border-gray-200 bg-white/80 shadow-sm dark:border-gray-700/70 dark:bg-page-dark/70"},Jo={class:"border-b border-gray-100 px-3 py-2 dark:border-gray-800"},Xo={class:"flex min-w-0 items-start justify-between gap-3"},Zo={class:"min-w-0"},en={class:"truncate text-sm font-semibold text-gray-900 dark:text-gray-100"},tn={key:0,class:"mt-0.5 line-clamp-2 text-xs text-gray-500 dark:text-gray-400"},an={class:"flex shrink-0 items-center gap-1.5"},sn={class:"rounded-md bg-gray-100 px-1.5 py-0.5 text-[10px] uppercase text-gray-500 dark:bg-gray-800"},on={class:"flex max-h-[92vh] flex-col overflow-hidden bg-white dark:bg-page-dark"},nn={class:"flex items-start justify-between gap-4 border-b border-gray-200 px-5 py-4 dark:border-gray-800"},rn={class:"min-w-0"},ln={class:"truncate text-base font-semibold text-gray-900 dark:text-gray-100"},cn={key:0,class:"mt-1 line-clamp-2 text-xs text-gray-500 dark:text-gray-400"},dn={class:"mt-1 text-[11px] text-gray-400 dark:text-gray-500"},un={class:"min-h-0 flex-1 overflow-auto p-4"},mn={key:0,class:"flex h-64 items-center justify-center text-xs text-gray-400 dark:text-gray-500"},gn={class:"mt-1 text-[11px] text-gray-400 dark:text-gray-500"},pn={class:"px-2 py-3"},vn={key:0,class:"flex h-32 items-center justify-center text-xs text-gray-400 dark:text-gray-500"},yn=fe({__name:"ChartBlockRenderer",props:{chart:{}},setup(l){const{t:s}=ke(),t=l,c=x(!1),r=h(()=>t.chart.spec.title),m=h(()=>t.chart.spec.subtitle||t.chart.spec.description||""),u=h(()=>t.chart.spec.display?.height??(t.chart.spec.type==="heatmap"?300:260)),d=h(()=>t.chart.rowCount===0),g=h(()=>{const S=[];return t.chart.spec.unit&&S.push(t.chart.spec.unit),t.chart.truncated&&S.push(s("ai.chat.message.chart.truncated")),S.push(s("ai.chat.message.chart.rows",{count:t.chart.rowCount})),S.join(" · ")}),v=h(()=>t.chart.data),y=h(()=>t.chart.data),C=h(()=>t.chart.data),f=h(()=>t.chart.data),b=h(()=>t.chart.spec.type==="pie"?C.value.labels.length>8:t.chart.spec.type==="line"?y.value.labels.length>28||(y.value.series?.length??0)>4:t.chart.spec.type==="bar"?v.value.labels.length>12:t.chart.spec.type==="heatmap"?f.value.xLabels.length*f.value.yLabels.length>180:!1),M=h(()=>{const S=b.value?320:380;return Math.min(u.value,S)}),R=h(()=>{const S=u.value;if(t.chart.spec.type==="pie")return Math.max(S,560);if(t.chart.spec.type==="line")return Math.max(S,y.value.labels.length>40?620:540);if(t.chart.spec.type==="bar"){const T=t.chart.spec.display?.horizontal?v.value.labels.length*28+120:520;return Math.min(Math.max(S,T),820)}return t.chart.spec.type==="heatmap"?Math.min(Math.max(S,f.value.yLabels.length*22+150,560),860):Math.max(S,520)}),w=h(()=>t.chart.spec.type==="pie"?"640px":t.chart.spec.type==="bar"?"720px":"780px");return(S,T)=>{const D=Re,k=He;return o(),i("div",Go,[e("div",Jo,[e("div",Xo,[e("div",Zo,[e("h3",en,n(r.value),1),m.value?(o(),i("p",tn,n(m.value),1)):z("",!0)]),e("div",an,[e("span",sn,n(l.chart.spec.type),1),p(k,{open:c.value,"onUpdate:open":T[2]||(T[2]=$=>c.value=$),ui:{overlay:"z-[10040] backdrop-blur-sm",content:"z-[10050] w-[96vw] max-w-6xl max-h-[92vh] overflow-hidden"}},{content:U(()=>[e("div",on,[e("div",nn,[e("div",rn,[e("h3",ln,n(r.value),1),m.value?(o(),i("p",cn,n(m.value),1)):z("",!0),e("p",dn,n(g.value),1)]),p(D,{icon:"i-heroicons-x-mark",size:"sm",color:"neutral",variant:"ghost",class:"shrink-0",title:a(s)("common.close"),"aria-label":a(s)("common.close"),onClick:T[1]||(T[1]=$=>c.value=!1)},null,8,["title","aria-label"])]),e("div",un,[e("div",{class:"mx-auto w-full",style:Ge({minWidth:w.value})},[d.value?(o(),i("div",mn,n(a(s)("ai.chat.message.chart.empty")),1)):l.chart.spec.type==="bar"?(o(),K(tt,{key:1,data:v.value,height:R.value,mode:"expanded",horizontal:l.chart.spec.display?.horizontal},null,8,["data","height","horizontal"])):l.chart.spec.type==="line"?(o(),K(Ft,{key:2,data:y.value,height:R.value,mode:"expanded"},null,8,["data","height"])):l.chart.spec.type==="pie"?(o(),K(Vt,{key:3,data:C.value,height:R.value,mode:"expanded","show-legend":l.chart.spec.display?.showLegend??!0},null,8,["data","height","show-legend"])):l.chart.spec.type==="heatmap"?(o(),K(Ut,{key:4,data:f.value,height:R.value,mode:"expanded"},null,8,["data","height"])):z("",!0)],4)])])]),default:U(()=>[p(D,{icon:"i-heroicons-arrows-pointing-out",size:"xs",color:"neutral",variant:"ghost",class:"no-capture",title:a(s)("ai.chat.message.chart.expand"),"aria-label":a(s)("ai.chat.message.chart.expand"),onClick:T[0]||(T[0]=Ue(()=>{},["stop"]))},null,8,["title","aria-label"])]),_:1},8,["open"])])]),e("p",gn,n(g.value),1)]),e("div",pn,[d.value?(o(),i("div",vn,n(a(s)("ai.chat.message.chart.empty")),1)):l.chart.spec.type==="bar"?(o(),K(tt,{key:1,data:v.value,height:M.value,mode:"compact",horizontal:l.chart.spec.display?.horizontal},null,8,["data","height","horizontal"])):l.chart.spec.type==="line"?(o(),K(Ft,{key:2,data:y.value,height:M.value,mode:"compact"},null,8,["data","height"])):l.chart.spec.type==="pie"?(o(),K(Vt,{key:3,data:C.value,height:M.value,mode:"compact","show-legend":l.chart.spec.display?.showLegend??!0},null,8,["data","height","show-legend"])):l.chart.spec.type==="heatmap"?(o(),K(Ut,{key:4,data:f.value,height:M.value,mode:"compact"},null,8,["data","height"])):z("",!0)])])}}}),hn={class:"my-1.5 w-full overflow-hidden rounded-lg border border-gray-200 bg-gray-50/60 text-[13px] dark:border-gray-700/60 dark:bg-gray-800/30"},fn={class:"text-xs font-semibold text-gray-700 dark:text-gray-200"},xn={key:0,class:"flex min-w-0 items-center gap-2"},bn={key:0,class:"truncate text-[11px] text-gray-400 dark:text-gray-500"},kn={class:"ml-auto flex shrink-0 items-center gap-1.5"},_n={class:"text-[11px] text-gray-400 dark:text-gray-500"},wn={key:0,class:"border-t border-gray-200/70 px-3 py-2 dark:border-gray-700/50"},$n={class:"mb-2 space-y-0.5 text-xs text-gray-600 dark:text-gray-400"},Cn={class:"font-medium"},Sn={key:0},Tn={class:"font-medium"},Mn={key:0,class:"mb-2 space-y-1"},In={key:1,class:"py-1.5 text-center text-xs text-gray-400 dark:text-gray-500"},Dn={key:2,class:"space-y-2"},Ln={class:"flex items-center gap-2"},An={class:"ml-auto shrink-0 text-[11px] text-gray-400 dark:text-gray-500"},qn={key:0,class:"mt-1 text-[11px] text-gray-500 dark:text-gray-400"},Rn={class:"mt-1 space-y-0.5"},Pn=["onClick"],zn={class:"min-w-0 flex-1 text-xs leading-snug text-gray-600 dark:text-gray-300"},En={key:0,class:"mr-1 text-gray-400 dark:text-gray-500"},Bn={class:"line-clamp-2 break-words align-middle"},jn={key:3,class:"mt-1.5 text-right text-[11px] text-gray-400 dark:text-gray-500"},Un=fe({__name:"EvidenceBlock",props:{evidence:{}},setup(l){const s=l,{t}=ke(),c=dt(),r=x(!1),m=["included","uncertain","excluded"],u=h(()=>[...s.evidence.groups].sort((b,M)=>m.indexOf(b.status)-m.indexOf(M.status))),d=h(()=>s.evidence.groups.reduce((b,M)=>b+M.sources.length,0)),g=h(()=>m.map(b=>({status:b,count:s.evidence.groups.filter(M=>M.status===b).length})).filter(b=>b.count>0)),v=h(()=>s.evidence.warnings??[]),y={included:"bg-emerald-50 text-emerald-600 dark:bg-emerald-900/20 dark:text-emerald-400",uncertain:"bg-amber-50 text-amber-600 dark:bg-amber-900/20 dark:text-amber-400",excluded:"bg-gray-100 text-gray-500 dark:bg-gray-800/40 dark:text-gray-400"},C={included:"bg-emerald-500",uncertain:"bg-amber-500",excluded:"bg-gray-400"};function f(b){c.openChatRecordDrawer({scrollToMessageId:b})}return(b,M)=>{const R=_e;return o(),i("div",hn,[e("button",{type:"button",class:"flex w-full items-center gap-2 px-3 py-2 text-left transition-colors hover:bg-gray-100/60 dark:hover:bg-gray-800/40",onClick:M[0]||(M[0]=w=>r.value=!r.value)},[p(R,{name:"i-heroicons-document-magnifying-glass",class:"h-4 w-4 shrink-0 text-primary-500"}),e("span",fn,n(a(t)("ai.chat.evidence.title")),1),r.value?z("",!0):(o(),i("div",xn,[(o(!0),i(oe,null,ue(g.value,w=>(o(),i("span",{key:w.status,class:"flex shrink-0 items-center gap-1 text-[11px] text-gray-500 dark:text-gray-400"},[e("span",{class:le(["h-1.5 w-1.5 rounded-full",C[w.status]])},null,2),se(" "+n(a(t)(`ai.chat.evidence.group.${w.status}`))+" "+n(w.count),1)]))),128)),g.value.length===0?(o(),i("span",bn,n(a(t)("ai.chat.evidence.empty")),1)):z("",!0)])),e("span",kn,[e("span",_n,n(a(t)(`ai.chat.evidence.mode.${l.evidence.mode}`)),1),p(R,{name:r.value?"i-heroicons-chevron-up":"i-heroicons-chevron-down",class:"h-3.5 w-3.5 text-gray-400 dark:text-gray-500"},null,8,["name"])])]),r.value?(o(),i("div",wn,[e("div",$n,[e("div",null,[e("span",Cn,n(a(t)("ai.chat.evidence.query"))+":",1),se(" "+n(l.evidence.query),1)]),l.evidence.criteria?(o(),i("div",Sn,[e("span",Tn,n(a(t)("ai.chat.evidence.criteria"))+":",1),se(" "+n(l.evidence.criteria),1)])):z("",!0)]),v.value.length>0?(o(),i("div",Mn,[(o(!0),i(oe,null,ue(v.value,w=>(o(),i("div",{key:w,class:"flex items-start gap-1.5 rounded bg-amber-50/70 px-2 py-1 text-[11px] text-amber-600 dark:bg-amber-900/15 dark:text-amber-400"},[p(R,{name:"i-heroicons-exclamation-triangle",class:"mt-0.5 h-3 w-3 shrink-0"}),e("span",null,n(a(t)(`ai.chat.evidence.warning.${w}`)),1)]))),128))])):z("",!0),u.value.length===0?(o(),i("div",In,n(a(t)("ai.chat.evidence.empty")),1)):(o(),i("div",Dn,[(o(!0),i(oe,null,ue(u.value,w=>(o(),i("div",{key:w.id,class:"rounded-md border border-gray-200/80 bg-white px-2.5 py-1.5 dark:border-gray-700/50 dark:bg-page-dark/30"},[e("div",Ln,[e("span",{class:le(["rounded px-1.5 py-0.5 text-[11px] font-medium",y[w.status]])},n(a(t)(`ai.chat.evidence.group.${w.status}`)),3),e("span",An,n(w.title),1)]),w.reason?(o(),i("div",qn,n(w.reason),1)):z("",!0),e("ul",Rn,[(o(!0),i(oe,null,ue(w.sources,(S,T)=>(o(),i("li",{key:`${w.id}-${T}`,class:"group/source flex cursor-pointer items-start gap-1.5 rounded px-1.5 py-1 transition-colors hover:bg-gray-50 dark:hover:bg-gray-800/40",onClick:D=>f(S.messageId)},[e("div",zn,[S.senderName?(o(),i("span",En,n(S.senderName)+": ",1)):z("",!0),e("span",Bn,n(S.snippet),1)]),p(R,{name:"i-heroicons-arrow-top-right-on-square",class:"mt-0.5 h-3 w-3 shrink-0 text-gray-400 opacity-0 transition-opacity group-hover/source:opacity-100 dark:text-gray-500"})],8,Pn))),128))])]))),128))])),u.value.length>0?(o(),i("div",jn,n(a(t)("ai.chat.evidence.totalSources",{count:d.value})),1)):z("",!0)])):z("",!0)])}}}),Fn=/^\s*!\[[^\]\n]*\]\(\s*(?:(?:https?:\/\/(?:localhost|127\.0\.0\.1)(?::\d+)?)?\/?|\.\/)?chart[\w-]*(?:\.(?:png|jpg|jpeg|webp|svg))?(?:\?[^)\s]*)?\s*(?:"[^"]*")?\s*\)\s*$/gim;function Vn(l){return l&&l.replace(Fn,"").replace(/\n{3,}/g,`
8
8
 
@@ -1 +1 @@
1
- import{S as n,a as u,G as o,b as f}from"./RelationshipGalaxyCanvas-W_6XfPOG.js";const s=class i extends n{constructor(e){e={...i.defaultOptions,...e},super(e),this.enabled=!0,this._state=u.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.clipToViewport=e.clipToViewport,this.addResource("uTexture",0,1),e.blendRequired&&this.addResource("uBackTexture",0,3)}apply(e,t,a,r){e.applyFilter(this,t,a,r)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){const{gpu:t,gl:a,...r}=e;let l,d;return t&&(l=o.from(t)),a&&(d=f.from(a)),new i({gpuProgram:l,glProgram:d,...r})}};s.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};let b=s;export{b as F};
1
+ import{S as n,a as u,G as o,b as f}from"./RelationshipGalaxyCanvas-D2owKyDp.js";const s=class i extends n{constructor(e){e={...i.defaultOptions,...e},super(e),this.enabled=!0,this._state=u.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.clipToViewport=e.clipToViewport,this.addResource("uTexture",0,1),e.blendRequired&&this.addResource("uBackTexture",0,3)}apply(e,t,a,r){e.applyFilter(this,t,a,r)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){const{gpu:t,gl:a,...r}=e;let l,d;return t&&(l=o.from(t)),a&&(d=f.from(a)),new i({gpuProgram:l,glProgram:d,...r})}};s.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};let b=s;export{b as F};
@@ -1 +1 @@
1
- import{c as O,f as A}from"./vendor-nuxt-ui-DaLxYaC4.js";import{u as j,T as P,j as G,k as H,l as U}from"./index-BsXljrlg.js";import{p as z,J as $,w as F,G as T,P as M,a5 as a,T as p,u as k,L as v,bw as C,bx as D,U as L,h as I,b as f,H as J,K as E,a0 as K,R as B,bp as Y}from"./vendor-reka-ui-CzM4kDQ7.js";import"./vendor-snapdom-XnBoh1gd.js";const W={class:"space-y-4 p-4"},X={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},q={key:0,class:"mt-2 flex items-center gap-2"},Q={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Z=z({__name:"ConditionPanel",props:{timeRange:{default:null},timeRangeModifiers:{},exportFormat:{default:"txt"},exportFormatModifiers:{}},emits:["update:timeRange","update:exportFormat"],setup(w){const{t:x}=j(),d=$(w,"timeRange"),h=$(w,"exportFormat"),i=I(()=>[{label:"TXT",value:"txt"},{label:"JSON",value:"json"},{label:"Markdown",value:"markdown"}]),u=f("all"),c=f(""),l=f(""),b=[{id:"all",label:"analysis.filter.allTime"},{id:"today",label:"analysis.filter.today"},{id:"week",label:"analysis.filter.lastWeek"},{id:"month",label:"analysis.filter.lastMonth"},{id:"3months",label:"analysis.filter.last3Months"},{id:"year",label:"analysis.filter.lastYear"},{id:"custom",label:"analysis.filter.customTime"}],g=I(()=>b.map(e=>({label:x(e.label),value:e.id})));F(u,()=>{m()});function m(){const e=Math.floor(Date.now()/1e3),t=new Date;t.setHours(0,0,0,0);const n=Math.floor(t.getTime()/1e3);switch(u.value){case"all":d.value=null;break;case"today":d.value={start:n,end:e};break;case"week":d.value={start:e-10080*60,end:e};break;case"month":d.value={start:e-720*60*60,end:e};break;case"3months":d.value={start:e-2160*60*60,end:e};break;case"year":d.value={start:e-365*24*60*60,end:e};break;case"custom":if(c.value&&l.value){const _=new Date(c.value).getTime()/1e3,R=new Date(l.value).getTime()/1e3+86399;d.value={start:_,end:R}}break}}return(e,t)=>(T(),M("div",W,[a("div",null,[a("label",X,p(k(x)("analysis.filter.timeRange")),1),v(P,{modelValue:u.value,"onUpdate:modelValue":t[0]||(t[0]=n=>u.value=n),items:g.value,size:"sm"},null,8,["modelValue","items"]),u.value==="custom"?(T(),M("div",q,[C(a("input",{"onUpdate:modelValue":t[1]||(t[1]=n=>c.value=n),type:"date",class:"flex-1 rounded-md border border-gray-300 bg-white px-3 py-1.5 text-sm dark:border-gray-600 dark:bg-gray-800",onChange:m},null,544),[[D,c.value]]),t[4]||(t[4]=a("span",{class:"text-gray-500"},"~",-1)),C(a("input",{"onUpdate:modelValue":t[2]||(t[2]=n=>l.value=n),type:"date",class:"flex-1 rounded-md border border-gray-300 bg-white px-3 py-1.5 text-sm dark:border-gray-600 dark:bg-gray-800",onChange:m},null,544),[[D,l.value]])])):L("",!0)]),a("div",null,[a("label",Q,p(k(x)("analysis.messageExport.format")),1),v(P,{modelValue:h.value,"onUpdate:modelValue":t[3]||(t[3]=n=>h.value=n),items:i.value,size:"sm"},null,8,["modelValue","items"])])]))}}),ee={class:"flex flex-col overflow-hidden bg-white dark:bg-page-dark"},te={class:"flex items-center justify-between border-b border-gray-200 px-5 py-3 dark:border-gray-700"},ae={class:"text-lg font-semibold text-gray-900 dark:text-white"},se={class:"flex flex-col gap-3 border-t border-gray-200 px-5 py-4 dark:border-gray-700"},oe={key:0,class:"w-full"},le={class:"mb-1 flex items-center justify-between text-sm text-gray-600 dark:text-gray-400"},ne={class:"h-2 w-full overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700"},re={class:"flex items-center justify-end gap-3"},N="chatlab-export-format",ce=z({__name:"MessageExportModal",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(w,{emit:x}){const d=w,h=x,{t:i}=j(),u=G(),c=H(),l=I({get:()=>d.modelValue,set:s=>h("update:modelValue",s)}),b=f(null),g=f(localStorage.getItem(N)||"txt");F(g,s=>localStorage.setItem(N,s));const m=f(!1),e=f(null);let t=null;function n(){t=U().onExportProgress(s=>{e.value={percentage:s.percentage,message:s.message},(s.stage==="done"||s.stage==="error")&&(e.value=null)})}function _(){t&&(t(),t=null),e.value=null}async function R(){const s=c.currentSessionId;if(!s)return;const y=c.currentSession?.name||"unknown";let S="";m.value=!0,e.value={percentage:0,message:i("analysis.filter.exportPreparing")},n();try{const o=Y(b.value),V=await U().exportFilterResultToFile({sessionId:s,sessionName:y,outputDir:S,format:g.value,timeFilter:o?{startTs:o.start,endTs:o.end}:void 0});V.success?(u.success(i("analysis.filter.exportSuccess"),{description:V.filePath}),l.value=!1):u.fail(i("analysis.filter.exportFailed"),{description:V.error||i("common.error.unknown")})}catch(o){console.error("Export failed:",o),u.fail(i("analysis.filter.exportFailed"),{description:String(o)})}finally{_(),m.value=!1}}return F(l,s=>{s||_()}),(s,r)=>{const y=O,S=A;return T(),J(S,{open:l.value,"onUpdate:open":r[4]||(r[4]=o=>l.value=o),ui:{content:"sm:max-w-md"}},{content:E(()=>[a("div",ee,[a("div",te,[a("h2",ae,p(k(i)("analysis.messageExport.title")),1),v(y,{variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:r[0]||(r[0]=o=>l.value=!1)})]),v(Z,{"time-range":b.value,"onUpdate:timeRange":r[1]||(r[1]=o=>b.value=o),"export-format":g.value,"onUpdate:exportFormat":r[2]||(r[2]=o=>g.value=o)},null,8,["time-range","export-format"]),a("div",se,[m.value&&e.value?(T(),M("div",oe,[a("div",le,[a("span",null,p(e.value.message),1),a("span",null,p(e.value.percentage)+"%",1)]),a("div",ne,[a("div",{class:"h-full bg-primary-500 transition-all duration-300",style:K({width:`${e.value.percentage}%`})},null,4)])])):L("",!0),a("div",re,[v(y,{variant:"ghost",onClick:r[3]||(r[3]=o=>l.value=!1)},{default:E(()=>[B(p(k(i)("common.cancel")),1)]),_:1}),v(y,{color:"primary",icon:"i-heroicons-document-arrow-down",loading:m.value,disabled:m.value,onClick:R},{default:E(()=>[B(p(k(i)("common.export")),1)]),_:1},8,["loading","disabled"])])])])]),_:1},8,["open"])}}});export{ce as default};
1
+ import{c as O,f as A}from"./vendor-nuxt-ui-DaLxYaC4.js";import{u as j,T as P,j as G,k as H,l as U}from"./index-CdsKtFEJ.js";import{p as z,J as $,w as F,G as T,P as M,a5 as a,T as p,u as k,L as v,bw as C,bx as D,U as L,h as I,b as f,H as J,K as E,a0 as K,R as B,bp as Y}from"./vendor-reka-ui-CzM4kDQ7.js";import"./vendor-snapdom-XnBoh1gd.js";const W={class:"space-y-4 p-4"},X={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},q={key:0,class:"mt-2 flex items-center gap-2"},Q={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Z=z({__name:"ConditionPanel",props:{timeRange:{default:null},timeRangeModifiers:{},exportFormat:{default:"txt"},exportFormatModifiers:{}},emits:["update:timeRange","update:exportFormat"],setup(w){const{t:x}=j(),d=$(w,"timeRange"),h=$(w,"exportFormat"),i=I(()=>[{label:"TXT",value:"txt"},{label:"JSON",value:"json"},{label:"Markdown",value:"markdown"}]),u=f("all"),c=f(""),l=f(""),b=[{id:"all",label:"analysis.filter.allTime"},{id:"today",label:"analysis.filter.today"},{id:"week",label:"analysis.filter.lastWeek"},{id:"month",label:"analysis.filter.lastMonth"},{id:"3months",label:"analysis.filter.last3Months"},{id:"year",label:"analysis.filter.lastYear"},{id:"custom",label:"analysis.filter.customTime"}],g=I(()=>b.map(e=>({label:x(e.label),value:e.id})));F(u,()=>{m()});function m(){const e=Math.floor(Date.now()/1e3),t=new Date;t.setHours(0,0,0,0);const n=Math.floor(t.getTime()/1e3);switch(u.value){case"all":d.value=null;break;case"today":d.value={start:n,end:e};break;case"week":d.value={start:e-10080*60,end:e};break;case"month":d.value={start:e-720*60*60,end:e};break;case"3months":d.value={start:e-2160*60*60,end:e};break;case"year":d.value={start:e-365*24*60*60,end:e};break;case"custom":if(c.value&&l.value){const _=new Date(c.value).getTime()/1e3,R=new Date(l.value).getTime()/1e3+86399;d.value={start:_,end:R}}break}}return(e,t)=>(T(),M("div",W,[a("div",null,[a("label",X,p(k(x)("analysis.filter.timeRange")),1),v(P,{modelValue:u.value,"onUpdate:modelValue":t[0]||(t[0]=n=>u.value=n),items:g.value,size:"sm"},null,8,["modelValue","items"]),u.value==="custom"?(T(),M("div",q,[C(a("input",{"onUpdate:modelValue":t[1]||(t[1]=n=>c.value=n),type:"date",class:"flex-1 rounded-md border border-gray-300 bg-white px-3 py-1.5 text-sm dark:border-gray-600 dark:bg-gray-800",onChange:m},null,544),[[D,c.value]]),t[4]||(t[4]=a("span",{class:"text-gray-500"},"~",-1)),C(a("input",{"onUpdate:modelValue":t[2]||(t[2]=n=>l.value=n),type:"date",class:"flex-1 rounded-md border border-gray-300 bg-white px-3 py-1.5 text-sm dark:border-gray-600 dark:bg-gray-800",onChange:m},null,544),[[D,l.value]])])):L("",!0)]),a("div",null,[a("label",Q,p(k(x)("analysis.messageExport.format")),1),v(P,{modelValue:h.value,"onUpdate:modelValue":t[3]||(t[3]=n=>h.value=n),items:i.value,size:"sm"},null,8,["modelValue","items"])])]))}}),ee={class:"flex flex-col overflow-hidden bg-white dark:bg-page-dark"},te={class:"flex items-center justify-between border-b border-gray-200 px-5 py-3 dark:border-gray-700"},ae={class:"text-lg font-semibold text-gray-900 dark:text-white"},se={class:"flex flex-col gap-3 border-t border-gray-200 px-5 py-4 dark:border-gray-700"},oe={key:0,class:"w-full"},le={class:"mb-1 flex items-center justify-between text-sm text-gray-600 dark:text-gray-400"},ne={class:"h-2 w-full overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700"},re={class:"flex items-center justify-end gap-3"},N="chatlab-export-format",ce=z({__name:"MessageExportModal",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(w,{emit:x}){const d=w,h=x,{t:i}=j(),u=G(),c=H(),l=I({get:()=>d.modelValue,set:s=>h("update:modelValue",s)}),b=f(null),g=f(localStorage.getItem(N)||"txt");F(g,s=>localStorage.setItem(N,s));const m=f(!1),e=f(null);let t=null;function n(){t=U().onExportProgress(s=>{e.value={percentage:s.percentage,message:s.message},(s.stage==="done"||s.stage==="error")&&(e.value=null)})}function _(){t&&(t(),t=null),e.value=null}async function R(){const s=c.currentSessionId;if(!s)return;const y=c.currentSession?.name||"unknown";let S="";m.value=!0,e.value={percentage:0,message:i("analysis.filter.exportPreparing")},n();try{const o=Y(b.value),V=await U().exportFilterResultToFile({sessionId:s,sessionName:y,outputDir:S,format:g.value,timeFilter:o?{startTs:o.start,endTs:o.end}:void 0});V.success?(u.success(i("analysis.filter.exportSuccess"),{description:V.filePath}),l.value=!1):u.fail(i("analysis.filter.exportFailed"),{description:V.error||i("common.error.unknown")})}catch(o){console.error("Export failed:",o),u.fail(i("analysis.filter.exportFailed"),{description:String(o)})}finally{_(),m.value=!1}}return F(l,s=>{s||_()}),(s,r)=>{const y=O,S=A;return T(),J(S,{open:l.value,"onUpdate:open":r[4]||(r[4]=o=>l.value=o),ui:{content:"sm:max-w-md"}},{content:E(()=>[a("div",ee,[a("div",te,[a("h2",ae,p(k(i)("analysis.messageExport.title")),1),v(y,{variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:r[0]||(r[0]=o=>l.value=!1)})]),v(Z,{"time-range":b.value,"onUpdate:timeRange":r[1]||(r[1]=o=>b.value=o),"export-format":g.value,"onUpdate:exportFormat":r[2]||(r[2]=o=>g.value=o)},null,8,["time-range","export-format"]),a("div",se,[m.value&&e.value?(T(),M("div",oe,[a("div",le,[a("span",null,p(e.value.message),1),a("span",null,p(e.value.percentage)+"%",1)]),a("div",ne,[a("div",{class:"h-full bg-primary-500 transition-all duration-300",style:K({width:`${e.value.percentage}%`})},null,4)])])):L("",!0),a("div",re,[v(y,{variant:"ghost",onClick:r[3]||(r[3]=o=>l.value=!1)},{default:E(()=>[B(p(k(i)("common.cancel")),1)]),_:1}),v(y,{color:"primary",icon:"i-heroicons-document-arrow-down",loading:m.value,disabled:m.value,onClick:R},{default:E(()=>[B(p(k(i)("common.export")),1)]),_:1},8,["loading","disabled"])])])])]),_:1},8,["open"])}}});export{ce as default};
@@ -1 +1 @@
1
- import{_ as p}from"./vendor-nuxt-ui-DaLxYaC4.js";import{p as u,P as o,Q as a,a5 as s,L as x,U as n,T as l,O as d,G as r}from"./vendor-reka-ui-CzM4kDQ7.js";import{_ as f}from"./index-BsXljrlg.js";const v={class:"flex items-center justify-between"},g=["src","alt"],y={class:"group/title flex items-baseline gap-2"},b={class:"header-actions relative z-[40] flex items-center gap-2"},h=u({__name:"PageHeader",props:{title:{},description:{},icon:{},iconClass:{},avatar:{},size:{default:"default"}},setup(e){const t=e;return(c,i)=>{const m=p;return r(),o("div",{class:a(["relative border-b border-gray-200/50 dark:border-gray-800/50",t.size==="compact"?"px-5 pb-1.5":"px-6 pb-2"])},[i[1]||(i[1]=s("div",{class:"titlebar-drag-cover"},null,-1)),s("div",v,[s("div",{class:a(["flex items-center",t.size==="compact"?"gap-2.5":"gap-3"])},[e.avatar?(r(),o("img",{key:0,src:e.avatar,alt:e.title,class:a(["object-cover",t.size==="compact"?"h-6 w-6 rounded-md":"h-10 w-10 rounded-xl"])},null,10,g)):e.icon?(r(),o("div",{key:1,class:a(["flex items-center justify-center",[e.iconClass,t.size==="compact"?"h-6 w-6 rounded-md":"h-10 w-10 rounded-xl"]])},[x(m,{name:e.icon,class:a(["text-white",t.size==="compact"?"h-3 w-3":"h-5 w-5"])},null,8,["name","class"])],2)):n("",!0),s("div",y,[s("h1",{class:a(["font-semibold text-gray-900 dark:text-white",t.size==="compact"?"text-base":"text-lg"])},l(e.title),3),e.description?(r(),o("p",{key:0,class:a(["pointer-events-none whitespace-nowrap text-gray-500 opacity-0 transition-opacity duration-200 group-hover/title:opacity-100 dark:text-gray-400",t.size==="compact"?"text-[11px]":"text-xs"])},l(e.description),3)):n("",!0)])],2),i[0]||(i[0]=s("div",{class:"flex-1 self-stretch mx-4",style:{"-webkit-app-region":"drag"}},null,-1)),s("div",b,[d(c.$slots,"actions",{},void 0,!0)])]),d(c.$slots,"default",{},void 0,!0)],2)}}}),C=f(h,[["__scopeId","data-v-b3e18446"]]);export{C as P};
1
+ import{_ as p}from"./vendor-nuxt-ui-DaLxYaC4.js";import{p as u,P as o,Q as a,a5 as s,L as x,U as n,T as l,O as d,G as r}from"./vendor-reka-ui-CzM4kDQ7.js";import{_ as f}from"./index-CdsKtFEJ.js";const v={class:"flex items-center justify-between"},g=["src","alt"],y={class:"group/title flex items-baseline gap-2"},b={class:"header-actions relative z-[40] flex items-center gap-2"},h=u({__name:"PageHeader",props:{title:{},description:{},icon:{},iconClass:{},avatar:{},size:{default:"default"}},setup(e){const t=e;return(c,i)=>{const m=p;return r(),o("div",{class:a(["relative border-b border-gray-200/50 dark:border-gray-800/50",t.size==="compact"?"px-5 pb-1.5":"px-6 pb-2"])},[i[1]||(i[1]=s("div",{class:"titlebar-drag-cover"},null,-1)),s("div",v,[s("div",{class:a(["flex items-center",t.size==="compact"?"gap-2.5":"gap-3"])},[e.avatar?(r(),o("img",{key:0,src:e.avatar,alt:e.title,class:a(["object-cover",t.size==="compact"?"h-6 w-6 rounded-md":"h-10 w-10 rounded-xl"])},null,10,g)):e.icon?(r(),o("div",{key:1,class:a(["flex items-center justify-center",[e.iconClass,t.size==="compact"?"h-6 w-6 rounded-md":"h-10 w-10 rounded-xl"]])},[x(m,{name:e.icon,class:a(["text-white",t.size==="compact"?"h-3 w-3":"h-5 w-5"])},null,8,["name","class"])],2)):n("",!0),s("div",y,[s("h1",{class:a(["font-semibold text-gray-900 dark:text-white",t.size==="compact"?"text-base":"text-lg"])},l(e.title),3),e.description?(r(),o("p",{key:0,class:a(["pointer-events-none whitespace-nowrap text-gray-500 opacity-0 transition-opacity duration-200 group-hover/title:opacity-100 dark:text-gray-400",t.size==="compact"?"text-[11px]":"text-xs"])},l(e.description),3)):n("",!0)])],2),i[0]||(i[0]=s("div",{class:"flex-1 self-stretch mx-4",style:{"-webkit-app-region":"drag"}},null,-1)),s("div",b,[d(c.$slots,"actions",{},void 0,!0)])]),d(c.$slots,"default",{},void 0,!0)],2)}}}),C=f(h,[["__scopeId","data-v-b3e18446"]]);export{C as P};