chatlab-cli 0.27.1 → 0.27.2

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 (64) hide show
  1. package/dist/{chat-command-B7POB3C3.mjs → chat-command-QVCZVDSB.mjs} +5 -5
  2. package/dist/{chunk-I7BHOZPX.mjs → chunk-B2VLK3FB.mjs} +35 -2
  3. package/dist/{chunk-I7BHOZPX.mjs.map → chunk-B2VLK3FB.mjs.map} +1 -1
  4. package/dist/{chunk-N3G43SCQ.mjs → chunk-DHRSLYUM.mjs} +105 -9
  5. package/dist/chunk-DHRSLYUM.mjs.map +1 -0
  6. package/dist/{chunk-3JNVGW62.mjs → chunk-H22VDCPB.mjs} +2 -2
  7. package/dist/{chunk-SIVERPF5.mjs → chunk-JOXF6ROV.mjs} +44 -9
  8. package/dist/chunk-JOXF6ROV.mjs.map +1 -0
  9. package/dist/{chunk-3FUF3PEY.mjs → chunk-K7UUN3HT.mjs} +11 -11
  10. package/dist/{chunk-SAE2H2LN.mjs → chunk-MDDWX2MG.mjs} +3 -3
  11. package/dist/{chunk-WQMKKUSD.mjs → chunk-OD3YH23N.mjs} +2 -2
  12. package/dist/{chunk-RJ4D4QWK.mjs → chunk-PXWAYFII.mjs} +3 -3
  13. package/dist/{chunk-YUFYTDRH.mjs → chunk-ST5APJB2.mjs} +3 -3
  14. package/dist/cli.mjs +4 -4
  15. package/dist/{http-A54ZBBAY.mjs → http-LSCVGWCI.mjs} +9 -9
  16. package/dist/{import-EA3TB3S2.mjs → import-E6HBJMMT.mjs} +5 -5
  17. package/dist/index.mjs +9 -9
  18. package/dist/{mcp-DJDOWHH3.mjs → mcp-I7JUC5JV.mjs} +5 -5
  19. package/dist/semantic-index-worker.mjs +1 -1
  20. package/dist/{src-EKPMJRG6.mjs → src-HZILDI7C.mjs} +5 -3
  21. package/dist/{stream-import-FQFNRQ2B.mjs → stream-import-IMRULRS2.mjs} +4 -4
  22. package/dist/{worker-runtime-UH2OBO3T.mjs → worker-runtime-WWQ7W74Q.mjs} +2 -2
  23. package/dist-web/assets/{DebugToolsPanel.vue_vue_type_script_setup_true_lang-NL1sTF6i.js → DebugToolsPanel.vue_vue_type_script_setup_true_lang-Du1FDD8L.js} +4 -4
  24. package/dist-web/assets/{MessageExportModal-B60rvfCh.js → MessageExportModal-4ehLHG4x.js} +1 -1
  25. package/dist-web/assets/{electron-BRUg9LnY.js → electron-B3AteJC8.js} +1 -1
  26. package/dist-web/assets/electron-DGxVMsvC.js +1 -0
  27. package/dist-web/assets/{fetch-BIpjJHxj.js → fetch-BQxv_UGQ.js} +1 -1
  28. package/dist-web/assets/{fetch-DSN-QYZE.js → fetch-BUcl-Frr.js} +1 -1
  29. package/dist-web/assets/{fetch-DE8gj5Ke.js → fetch-BwQh9WUD.js} +1 -1
  30. package/dist-web/assets/{fetch-woAa3H2L.js → fetch-C2mSdG3h.js} +1 -1
  31. package/dist-web/assets/{fetch-Cma-mZjd.js → fetch-CZDFhvxY.js} +1 -1
  32. package/dist-web/assets/{fetch-DNSaxRnL.js → fetch-ChZEF_n3.js} +1 -1
  33. package/dist-web/assets/{fetch-BRsMdFcn.js → fetch-DCQN6wfR.js} +1 -1
  34. package/dist-web/assets/{fetch-DLAp7h55.js → fetch-DZFx8FA4.js} +1 -1
  35. package/dist-web/assets/{fetch-C-m3IysH.js → fetch-DlJFgbum.js} +1 -1
  36. package/dist-web/assets/{fetch-DOEbyLSD.js → fetch-O8M5ZWsc.js} +1 -1
  37. package/dist-web/assets/index-B_uZZGqi.js +173 -0
  38. package/dist-web/assets/{index-YmzTgkb2.css → index-CoX0L-A8.css} +1 -1
  39. package/dist-web/assets/{index-B3mDjury.js → index-DR78oafF.js} +7 -7
  40. package/dist-web/assets/{index-iwqJDVMJ.js → index-DTlfOd_u.js} +2 -2
  41. package/dist-web/assets/{index-r_zHR2t9.js → index-DlkH2E7N.js} +1 -1
  42. package/dist-web/assets/{index-B9I-Y3fR.js → index-KAFPL6dl.js} +1 -1
  43. package/dist-web/assets/{index-o6veAyTB.js → index-qVTX1tLg.js} +3 -3
  44. package/dist-web/assets/web-CoKgy4Oo.js +1 -0
  45. package/dist-web/index.html +2 -2
  46. package/package.json +1 -1
  47. package/dist/chunk-N3G43SCQ.mjs.map +0 -1
  48. package/dist/chunk-SIVERPF5.mjs.map +0 -1
  49. package/dist-web/assets/electron-CRSL7qPM.js +0 -1
  50. package/dist-web/assets/index-GAU7LI1r.js +0 -173
  51. package/dist-web/assets/web-C2UtGskd.js +0 -1
  52. /package/dist/{chat-command-B7POB3C3.mjs.map → chat-command-QVCZVDSB.mjs.map} +0 -0
  53. /package/dist/{chunk-3JNVGW62.mjs.map → chunk-H22VDCPB.mjs.map} +0 -0
  54. /package/dist/{chunk-3FUF3PEY.mjs.map → chunk-K7UUN3HT.mjs.map} +0 -0
  55. /package/dist/{chunk-SAE2H2LN.mjs.map → chunk-MDDWX2MG.mjs.map} +0 -0
  56. /package/dist/{chunk-WQMKKUSD.mjs.map → chunk-OD3YH23N.mjs.map} +0 -0
  57. /package/dist/{chunk-RJ4D4QWK.mjs.map → chunk-PXWAYFII.mjs.map} +0 -0
  58. /package/dist/{chunk-YUFYTDRH.mjs.map → chunk-ST5APJB2.mjs.map} +0 -0
  59. /package/dist/{http-A54ZBBAY.mjs.map → http-LSCVGWCI.mjs.map} +0 -0
  60. /package/dist/{import-EA3TB3S2.mjs.map → import-E6HBJMMT.mjs.map} +0 -0
  61. /package/dist/{mcp-DJDOWHH3.mjs.map → mcp-I7JUC5JV.mjs.map} +0 -0
  62. /package/dist/{src-EKPMJRG6.mjs.map → src-HZILDI7C.mjs.map} +0 -0
  63. /package/dist/{stream-import-FQFNRQ2B.mjs.map → stream-import-IMRULRS2.mjs.map} +0 -0
  64. /package/dist/{worker-runtime-UH2OBO3T.mjs.map → worker-runtime-WWQ7W74Q.mjs.map} +0 -0
@@ -1,8 +1,8 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B3mDjury.js","assets/vendor-reka-ui-mMvma1EP.js","assets/vendor-nuxt-ui-Zy8txNdC.js","assets/vendor-snapdom-XnBoh1gd.js","assets/index-YmzTgkb2.css","assets/EChartWordcloud-B_YisOW5.js","assets/vendor-echarts-wordcloud-B1kQMklB.js","assets/vendor-echarts-CITQeskI.js","assets/vendor-zrender-DFl4U2Oe.js"])))=>i.map(i=>d[i]);
2
- import{v as Ea,w as na,x as $e,j as Ue,u as ke,y as Ne,_ as st,z as Je,k as dt,A as za,B as ut,s as at,D as $t,E as Pa,g as ra,F as gt,b as Ct,G as Yt,H as la,p as pt,J as wt,K as Ba,T as et,L as Zt,M as ja,r as ia,e as ca,N as ea,i as Dt,h as Fa,O as Ua,P as Va,f as ta,d as Oa,Q as Na}from"./index-B3mDjury.js";import{t as Qe,w as ge,h as k,b as x,d as Ee,p as he,G as n,P as i,Q as oe,a5 as e,U as R,L as p,O as Ke,H as K,K as U,T as o,a0 as Ge,R as ee,Z as ne,u as a,a3 as de,bA as He,bB as ot,a9 as Fe,bz as Xe,J as zt,W as Pt,n as Ve,F as lt,bK as Ha,bH as nt,bD as rt,z as St,bI as da,k as Ya}from"./vendor-reka-ui-mMvma1EP.js";import{_ as Tt}from"./vendor-snapdom-XnBoh1gd.js";import{a as _e,b as Re,c as ua,g as Oe,_ as vt,e as ht,E as Wa,n as ma,k as It,f as ga,j as Wt,l as Ka,F as Kt,u as Qa,o as Ga,h as Ja}from"./vendor-nuxt-ui-Zy8txNdC.js";import{a as ct,M as Qt,_ as Xa}from"./index-B9I-Y3fR.js";import"./vendor-echarts-wordcloud-B1kQMklB.js";import{u as yt,m as ft,v as pa,t as va,w as Za,o as Gt,x as es,j as Mt,k as ts,p as ha,q as Jt,y as as,n as xt,z as ya,A as ss}from"./vendor-echarts-CITQeskI.js";const os={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 ns(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 rs(l,s){const t=ns(l,s);return os[t]}function ls(l,s,t,c="group",r="zh-CN"){const m=Ea(),{chatKey:u,state:d}=m.ensureSessionState({sessionId:l,sessionName:s,timeFilter:t,chatType:c,locale:r});return m.resetToSelectorOnEnter(u),m.applySessionAssistantSelection(u),{messages:Qe(d,"messages"),sourceMessages:Qe(d,"sourceMessages"),currentKeywords:Qe(d,"currentKeywords"),isLoadingSource:Qe(d,"isLoadingSource"),isAIThinking:Qe(d,"isAIThinking"),currentAIChatId:Qe(d,"currentAIChatId"),currentToolStatus:Qe(d,"currentToolStatus"),toolsUsedInCurrentRound:Qe(d,"toolsUsedInCurrentRound"),sessionTokenUsage:Qe(d,"sessionTokenUsage"),agentStatus:Qe(d,"agentStatus"),selectedAssistantId:Qe(d,"selectedAssistantId"),sendMessage:(g,v)=>m.sendMessage(u,g,v),editMessageAndRegenerate:(g,v,h)=>m.editMessageAndRegenerate(u,g,v,h),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 is(l,s,t){const{activeTab:c,isInitialLoad:r,currentSessionId:m,onTimeRangeChange:u}=t,d=x(null),g=x(null),v=x([]),h=k(()=>{const T=d.value;if(T)return{startTs:T.startTs,endTs:T.endTs}}),S=k(()=>{const T=d.value;return T?`${T.startTs}-${T.endTs}`:"init"}),b=k(()=>{const T=d.value;return!T||T.isFullRange?null:new Date(T.startTs*1e3).getFullYear()}),w=k(()=>{const T=l.query,I=T.timeMode;return I?{mode:I,recentDays:T.timeDays?Number(T.timeDays):void 0,year:T.timeYear?Number(T.timeYear):void 0,quarterYear:T.timeYear?Number(T.timeYear):void 0,quarter:T.timeQuarter?Number(T.timeQuarter):void 0,customStart:T.timeStart||void 0,customEnd:T.timeEnd||void 0}:m.value&&At.has(m.value)?At.get(m.value):{mode:"recent",recentDays:365}});ge([c,d],([T,I])=>{if(r.value||!I)return;const _=I.state,C={tab:T,timeMode:_.mode,timeDays:void 0,timeYear:void 0,timeQuarter:void 0,timeStart:void 0,timeEnd:void 0};_.mode==="recent"&&(C.timeDays=_.recentDays),_.mode==="year"&&(C.timeYear=_.year),_.mode==="quarter"&&(C.timeYear=_.quarterYear,C.timeQuarter=_.quarter),_.mode==="custom"&&(C.timeStart=_.customStart,C.timeEnd=_.customEnd),s.replace({query:{...l.query,...C}})}),ge(d,T=>{!T||!m.value||(na(),At.set(m.value,T.state),u?.())},{immediate:!0});function q(){d.value=null,g.value=null,v.value=[]}return{timeRangeValue:d,fullTimeRange:g,availableYears:v,timeFilter:h,timeFilterKey:S,selectedYearForOverview:b,initialTimeState:w,resetTimeRange:q}}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 Xk(l){return $e.unix(l).format("YYYY-MM-DD HH:mm:ss")}function Zk(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 cs(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 e1(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 ds(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=ds(s);return t.trim()?[{role:s.role,content:t,timestamp:s.timestamp}]:[]})}function us(l){return jt(l).length>0}function ms(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-DR78oafF.js","assets/vendor-reka-ui-mMvma1EP.js","assets/vendor-nuxt-ui-Zy8txNdC.js","assets/vendor-snapdom-XnBoh1gd.js","assets/index-CoX0L-A8.css","assets/EChartWordcloud-B_YisOW5.js","assets/vendor-echarts-wordcloud-B1kQMklB.js","assets/vendor-echarts-CITQeskI.js","assets/vendor-zrender-DFl4U2Oe.js"])))=>i.map(i=>d[i]);
2
+ import{v as Ea,w as na,x as $e,j as Ue,u as ke,y as Ne,_ as st,z as Je,k as dt,A as za,B as ut,s as at,D as $t,E as Pa,g as ra,F as gt,b as Ct,G as Yt,H as la,p as pt,J as wt,K as Ba,T as et,L as Zt,M as ja,r as ia,e as ca,N as ea,i as Dt,h as Fa,O as Ua,P as Va,f as ta,d as Oa,Q as Na}from"./index-DR78oafF.js";import{t as Qe,w as ge,h as k,b as x,d as Ee,p as he,G as n,P as i,Q as oe,a5 as e,U as R,L as p,O as Ke,H as K,K as U,T as o,a0 as Ge,R as ee,Z as ne,u as a,a3 as de,bA as He,bB as ot,a9 as Fe,bz as Xe,J as zt,W as Pt,n as Ve,F as lt,bK as Ha,bH as nt,bD as rt,z as St,bI as da,k as Ya}from"./vendor-reka-ui-mMvma1EP.js";import{_ as Tt}from"./vendor-snapdom-XnBoh1gd.js";import{a as _e,b as Re,c as ua,g as Oe,_ as vt,e as ht,E as Wa,n as ma,k as It,f as ga,j as Wt,l as Ka,F as Kt,u as Qa,o as Ga,h as Ja}from"./vendor-nuxt-ui-Zy8txNdC.js";import{a as ct,M as Qt,_ as Xa}from"./index-KAFPL6dl.js";import"./vendor-echarts-wordcloud-B1kQMklB.js";import{u as yt,m as ft,v as pa,t as va,w as Za,o as Gt,x as es,j as Mt,k as ts,p as ha,q as Jt,y as as,n as xt,z as ya,A as ss}from"./vendor-echarts-CITQeskI.js";const os={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 ns(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 rs(l,s){const t=ns(l,s);return os[t]}function ls(l,s,t,c="group",r="zh-CN"){const m=Ea(),{chatKey:u,state:d}=m.ensureSessionState({sessionId:l,sessionName:s,timeFilter:t,chatType:c,locale:r});return m.resetToSelectorOnEnter(u),m.applySessionAssistantSelection(u),{messages:Qe(d,"messages"),sourceMessages:Qe(d,"sourceMessages"),currentKeywords:Qe(d,"currentKeywords"),isLoadingSource:Qe(d,"isLoadingSource"),isAIThinking:Qe(d,"isAIThinking"),currentAIChatId:Qe(d,"currentAIChatId"),currentToolStatus:Qe(d,"currentToolStatus"),toolsUsedInCurrentRound:Qe(d,"toolsUsedInCurrentRound"),sessionTokenUsage:Qe(d,"sessionTokenUsage"),agentStatus:Qe(d,"agentStatus"),selectedAssistantId:Qe(d,"selectedAssistantId"),sendMessage:(g,v)=>m.sendMessage(u,g,v),editMessageAndRegenerate:(g,v,h)=>m.editMessageAndRegenerate(u,g,v,h),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 is(l,s,t){const{activeTab:c,isInitialLoad:r,currentSessionId:m,onTimeRangeChange:u}=t,d=x(null),g=x(null),v=x([]),h=k(()=>{const T=d.value;if(T)return{startTs:T.startTs,endTs:T.endTs}}),S=k(()=>{const T=d.value;return T?`${T.startTs}-${T.endTs}`:"init"}),b=k(()=>{const T=d.value;return!T||T.isFullRange?null:new Date(T.startTs*1e3).getFullYear()}),w=k(()=>{const T=l.query,I=T.timeMode;return I?{mode:I,recentDays:T.timeDays?Number(T.timeDays):void 0,year:T.timeYear?Number(T.timeYear):void 0,quarterYear:T.timeYear?Number(T.timeYear):void 0,quarter:T.timeQuarter?Number(T.timeQuarter):void 0,customStart:T.timeStart||void 0,customEnd:T.timeEnd||void 0}:m.value&&At.has(m.value)?At.get(m.value):{mode:"recent",recentDays:365}});ge([c,d],([T,I])=>{if(r.value||!I)return;const _=I.state,C={tab:T,timeMode:_.mode,timeDays:void 0,timeYear:void 0,timeQuarter:void 0,timeStart:void 0,timeEnd:void 0};_.mode==="recent"&&(C.timeDays=_.recentDays),_.mode==="year"&&(C.timeYear=_.year),_.mode==="quarter"&&(C.timeYear=_.quarterYear,C.timeQuarter=_.quarter),_.mode==="custom"&&(C.timeStart=_.customStart,C.timeEnd=_.customEnd),s.replace({query:{...l.query,...C}})}),ge(d,T=>{!T||!m.value||(na(),At.set(m.value,T.state),u?.())},{immediate:!0});function q(){d.value=null,g.value=null,v.value=[]}return{timeRangeValue:d,fullTimeRange:g,availableYears:v,timeFilter:h,timeFilterKey:S,selectedYearForOverview:b,initialTimeState:w,resetTimeRange:q}}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 Xk(l){return $e.unix(l).format("YYYY-MM-DD HH:mm:ss")}function Zk(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 cs(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 e1(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 ds(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=ds(s);return t.trim()?[{role:s.role,content:t,timestamp:s.timestamp}]:[]})}function us(l){return jt(l).length>0}function ms(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 gs(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 ps(l){return l.replace(/[/\\?%*:|"<>]/g,"_")}async function vs(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=ps(l);c==="markdown"?(m=ms(l,s,t,r),u=`${g}_${d}.md`):(m=gs(l,s,t,r),u=`${g}_${d}.txt`);const v=`data:text/plain;charset=utf-8,${encodeURIComponent(m)}`,{useCacheService:h}=await Tt(async()=>{const{useCacheService:b}=await import("./index-B3mDjury.js").then(w=>w.$);return{useCacheService:b}},__vite__mapDeps([0,1,2,3,4]));return await h().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 ys(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 fs(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=ys(l),m="application/json"):(r=hs(l),m="text/csv");const u=`data:${m};charset=utf-8,${encodeURIComponent(r)}`,{useCacheService:d}=await Tt(async()=>{const{useCacheService:v}=await import("./index-B3mDjury.js").then(h=>h.$);return{useCacheService:v}},__vite__mapDeps([0,1,2,3,4]));return await d().saveToDownloads(c,u)}function t1(l){const{route:s,router:t,currentSessionId:c,selectSession:r,defaultTab:m,validTabIds:u}=l,d=x(!0),g=x(!0),v=x(null),h=x([]),S=x([]),b=x([]),w=x([]);function q(){const $=s.query.tab;return $&&u.includes($)?$:m}const T=x(q()),{timeRangeValue:I,fullTimeRange:_,availableYears:C,timeFilter:M,selectedYearForOverview:y,initialTimeState:f}=is(s,t,{activeTab:T,isInitialLoad:g,currentSessionId:c,onTimeRangeChange:()=>P()});function D(){const $=s.params.id;$&&(r($),c.value!==$&&t.replace("/"))}async function A(){if(c.value)try{const $=await Ue().getSession(c.value);v.value=$}catch($){console.error("加载基础数据失败:",$)}}async function P(){if(c.value){d.value=!0;try{const $=M.value,L=Ue(),[W,ae,Y,pe]=await Promise.all([L.getMemberActivity(c.value,$),L.getHourlyActivity(c.value,$),L.getDailyActivity(c.value,$),L.getMessageTypeDistribution(c.value,$)]);h.value=W,S.value=ae,b.value=Y,w.value=pe}catch($){console.error("加载分析数据失败:",$)}finally{d.value=!1}}}async function z(){c.value&&(g.value=!0,await A(),g.value=!1)}return ge(()=>s.params.id,()=>{T.value=q(),D()}),ge(()=>s.query.tab,()=>{T.value=q()}),ge(c,()=>{na(),z()},{immediate:!0}),Ee(()=>{D()}),{activeTab:T,isLoading:d,isInitialLoad:g,session:v,memberActivity:h,hourlyActivity:S,dailyActivity:b,messageTypes:w,timeRangeValue:I,fullTimeRange:_,availableYears:C,timeFilter:M,selectedYearForOverview:y,initialTimeState:f,syncSession:D,loadData:z,loadAnalysisData:P}}const xs=["data-theme-card"],bs={key:0,class:"pointer-events-none absolute inset-0 overflow-hidden"},ks={key:1,class:"absolute right-3 top-3 z-50 opacity-0 transition-opacity duration-200 group-hover/card:opacity-100"},it=he({__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=k(()=>{const m=`relative isolate overflow-hidden ${t[s.variant]}`;return s.capturable?`group/card ${m}`:m}),r=k(()=>s.decorative&&s.variant==="elevated");return(m,u)=>(n(),i("div",{class:oe(c.value),"data-theme-card":l.capturable?"":void 0},[r.value?(n(),i("div",bs,[...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)])])):R("",!0),l.capturable?(n(),i("div",ks,[p(ct,{type:"element","target-selector":"[data-theme-card]",size:"xs"})])):R("",!0),Ke(m.$slots,"default")],10,xs))}}),_s={class:"flex items-center justify-between"},ws={class:"font-semibold text-gray-900 dark:text-white whitespace-nowrap"},$s={key:0,class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},We=he({__name:"SectionCard",props:{title:{},description:{},showDivider:{type:Boolean,default:!0},scrollable:{type:Boolean,default:!1},maxHeightVh:{default:60}},setup(l){const s=l,t=k(()=>{if(s.scrollable)return{maxHeight:`${s.maxHeightVh}vh`,overflowY:"auto"}});return(c,r)=>(n(),K(it,{variant:"section"},{default:U(()=>[e("div",{class:oe(["px-5 py-3",{"border-b border-gray-200 dark:border-white/5":l.showDivider&&c.$slots.default}])},[e("div",_s,[e("div",null,[e("p",ws,o(l.title),1),l.description?(n(),i("p",$s,o(l.description),1)):R("",!0)]),Ke(c.$slots,"headerRight")])],2),l.scrollable?(n(),i("div",{key:0,style:Ge(t.value)},[Ke(c.$slots,"default")],4)):Ke(c.$slots,"default",{key:1}),Ke(c.$slots,"footer")]),_:3}))}}),Cs={class:"flex items-start justify-between"},Ss={class:"min-w-0 flex-1"},Ts={class:"text-sm font-medium text-gray-500 dark:text-gray-400"},Is={key:1,class:"text-xl"},Ms={key:0,class:"mt-4 flex items-center text-sm"},Ls={class:"text-gray-500 dark:text-gray-400"},Ze=he({__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 n(),K(it,{variant:"card",class:"p-5"},{default:U(()=>[e("div",Cs,[e("div",Ss,[e("p",Ts,o(l.label),1),e("p",{class:oe(["mt-2 truncate text-2xl font-bold tracking-tight",l.valueColor?s[l.valueColor]:"text-gray-900 dark:text-white"])},o(l.value),3)]),l.icon?(n(),i("div",{key:0,class:oe(["ml-4 flex h-10 w-10 shrink-0 items-center justify-center rounded-xl",t[l.iconBg||"gray"]])},[l.icon.startsWith("i-")?(n(),K(m,{key:0,name:l.icon,class:"h-5 w-5"},null,8,["name"])):(n(),i("span",Is,o(l.icon),1))],2)):R("",!0)]),l.subtext||c.$slots.subtext?(n(),i("div",Ms,[Ke(c.$slots,"subtext",{},()=>[e("span",Ls,o(l.subtext),1)])])):R("",!0)]),_:3})}}}),Ds={key:0,class:"mb-2 block text-2xl"},a1=he({__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)=>(n(),i("div",{class:oe(["text-center text-sm text-gray-400",s[l.padding||"md"]])},[l.icon?(n(),i("span",Ds,o(l.icon),1)):R("",!0),ee(" "+o(l.text||"暂无数据"),1)],2))}}),As={class:"flex flex-col items-center justify-center text-center"},qs={key:0,class:"mt-2 text-sm text-gray-500"},mt=he({__name:"LoadingState",props:{text:{},height:{},variant:{default:"inline"}},setup(l){const s=l,t=k(()=>{const c="flex items-center justify-center";switch(s.variant){case"page":return`${c} h-full w-full`;case"overlay":return`${c} absolute inset-0 z-10 bg-white/50 backdrop-blur-sm dark:bg-gray-950/50`;default:return`${c} ${s.height||"py-8"}`}});return(c,r)=>{const m=_e;return n(),i("div",{class:oe(t.value)},[e("div",As,[p(m,{name:"i-heroicons-arrow-path",class:"h-6 w-6 animate-spin text-pink-500"}),l.text?(n(),i("p",qs,o(l.text),1)):R("",!0)])],2)}}}),Rs=["disabled"],Es={key:0,class:"flex-1 overflow-y-auto p-2"},zs={key:0,class:"flex items-center justify-center py-8"},Ps={key:1,class:"flex flex-col items-center justify-center py-12 text-center"},Bs={class:"flex h-12 w-12 items-center justify-center rounded-full bg-gray-50 dark:bg-gray-800"},js={class:"mt-3 text-xs text-gray-400"},Fs={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"},Vs={class:"space-y-0.5"},Os=["onClick"],Ns=["placeholder","onBlur","onKeyup"],Hs={key:1,class:"flex items-center"},Ys={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"},Ks={class:"w-28 p-1"},Qs=["disabled","onClick"],Gs=["onClick"],Js=["disabled","onClick"],Xs={key:1,class:"flex flex-1 flex-col items-center gap-2 overflow-y-auto py-2"},Zs=["title","disabled"],eo=["title","onClick"],to=he({__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(""),h=x(!1),S=x(null);async function b(){d.value=!0;try{u.value=await Ne().getAIChats(r.sessionId)}catch(f){console.error("加载对话列表失败:",f)}finally{d.value=!1}}const w=k(()=>{if(u.value.length===0)return[];const f=$e(),D=f.subtract(7,"day").startOf("day"),A=f.subtract(30,"day").startOf("day"),P=[],z=[],$=new Map;for(const ae of u.value){const Y=$e(ae.updatedAt*1e3);if(Y.isAfter(D))P.push(ae);else if(Y.isAfter(A))z.push(ae);else{const pe=Y.format("YYYY-MM");$.has(pe)||$.set(pe,[]),$.get(pe).push(ae)}}const L=[];P.length>0&&L.push({label:c("ai.chat.conversation.group.last7Days"),conversations:P}),z.length>0&&L.push({label:c("ai.chat.conversation.group.last30Days"),conversations:z});const W=[...$.keys()].sort((ae,Y)=>Y.localeCompare(ae));for(const ae of W){const Y=$e(ae+"-01");L.push({label:Y.format(Y.year()===f.year()?"M月":"YYYY年M月"),conversations:$.get(ae)})}return L});function q(f){return f.title||c("ai.chat.conversation.newChat")}function T(f){r.disabled||(g.value=f.id,v.value=f.title||"")}async function I(f){if(!r.disabled){if(v.value.trim())try{await Ne().updateAIChatTitle(f,v.value.trim());const D=u.value.find(A=>A.id===f);D&&(D.title=v.value.trim())}catch(D){console.error("更新标题失败:",D)}g.value=null}}function _(f){S.value=null,T(f)}function C(f){S.value=null,navigator.clipboard.writeText(f)}function M(f){S.value=null,y(f)}async function y(f){if(!r.disabled)try{await Ne().deleteAIChat(f),u.value=u.value.filter(D=>D.id!==f),m("delete",f)}catch(D){console.error("删除对话失败:",D)}}return Ee(()=>{b()}),ge(()=>r.sessionId,()=>{b()}),s({refresh:b}),(f,D)=>{const A=_e,P=Re,z=ua;return n(),i("div",{class:oe(["flex flex-col border-r border-gray-200 bg-white transition-all dark:border-gray-800 dark:bg-gray-900",h.value?"w-10":"w-64"])},[e("div",{class:oe(["flex items-center border-b border-gray-200 dark:border-gray-800",h.value?"justify-center px-0 py-2":"justify-between pl-3 pr-2 py-2"])},[h.value?(n(),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:D[2]||(D[2]=$=>h.value=!h.value)},[p(A,{name:"i-heroicons-chevron-right",class:"h-4 w-4"})])):(n(),i(ne,{key:0},[e("button",{class:oe(["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:D[0]||(D[0]=$=>!l.disabled&&m("create"))},[p(A,{name:"i-heroicons-plus",class:"h-3.5 w-3.5"}),e("span",null,o(a(c)("ai.chat.conversation.newConversation")),1)],10,Rs),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:D[1]||(D[1]=$=>h.value=!h.value)},[p(A,{name:"i-heroicons-chevron-left",class:"h-4 w-4"})])],64))],2),h.value?(n(),i("div",Xs,[e("button",{class:oe(["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:D[7]||(D[7]=$=>!l.disabled&&m("create"))},[p(A,{name:"i-heroicons-plus",class:"h-4 w-4"})],10,Zs),D[8]||(D[8]=e("div",{class:"h-px w-6 bg-gray-200 dark:bg-gray-800"},null,-1)),(n(!0),i(ne,null,de(u.value,$=>(n(),i("button",{key:$.id,class:oe(["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:q($),onClick:L=>m("select",$.id)},[p(A,{name:"i-heroicons-chat-bubble-left",class:"h-4 w-4"})],10,eo))),128))])):(n(),i("div",Es,[d.value?(n(),i("div",zs,[p(A,{name:"i-heroicons-arrow-path",class:"h-5 w-5 animate-spin text-gray-400"})])):u.value.length===0?(n(),i("div",Ps,[e("div",Bs,[p(A,{name:"i-heroicons-chat-bubble-left",class:"h-6 w-6 text-gray-300 dark:text-gray-600"})]),e("p",js,o(a(c)("ai.chat.conversation.empty")),1),p(P,{class:"mt-2",size:"xs",variant:"link",color:"primary",disabled:l.disabled,onClick:D[3]||(D[3]=$=>!l.disabled&&m("create"))},{default:U(()=>[ee(o(a(c)("ai.chat.conversation.startNew")),1)]),_:1},8,["disabled"])])):(n(),i("div",Fs,[(n(!0),i(ne,null,de(w.value,$=>(n(),i("div",{key:$.label},[e("div",Us,o($.label),1),e("div",Vs,[(n(!0),i(ne,null,de($.conversations,L=>(n(),i("div",{key:L.id,class:oe(["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:W=>m("select",L.id)},[g.value===L.id?He((n(),i("input",{key:0,"onUpdate:modelValue":D[4]||(D[4]=W=>v.value=W),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-gray-900 dark:ring-gray-700",placeholder:a(c)("ai.chat.conversation.titlePlaceholder"),autoFocus:"",onBlur:W=>I(L.id),onKeyup:Xe(W=>I(L.id),["enter"]),onClick:D[5]||(D[5]=Fe(()=>{},["stop"]))},null,40,Ns)),[[ot,v.value]]):(n(),i("div",Hs,[e("p",Ys,o(q(L)),1),e("div",{class:oe(["ml-1 shrink-0 opacity-0 transition-opacity group-hover:opacity-100",{"opacity-100":l.activeId===L.id||S.value===L.id}]),onClick:D[6]||(D[6]=Fe(()=>{},["stop"]))},[p(z,{open:S.value===L.id,ui:{content:"z-50 p-0"},"onUpdate:open":W=>S.value=W?L.id:null},{content:U(()=>[e("div",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",disabled:l.disabled,onClick:W=>_(L)},[p(A,{name:"i-heroicons-pencil",class:"h-3.5 w-3.5"}),ee(" "+o(a(c)("ai.chat.conversation.rename")),1)],8,Qs),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:W=>C(L.id)},[p(A,{name:"i-heroicons-clipboard-document",class:"h-3.5 w-3.5"}),ee(" "+o(a(c)("ai.chat.conversation.copyId")),1)],8,Gs),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:W=>M(L.id)},[p(A,{name:"i-heroicons-trash",class:"h-3.5 w-3.5"}),ee(" "+o(a(c)("ai.chat.conversation.delete")),1)],8,Js)])]),default:U(()=>[e("button",Ws,[p(A,{name:"i-heroicons-ellipsis-horizontal",class:"h-4 w-4"})])]),_:2},1032,["open","onUpdate:open"])],2)]))],10,Os))),128))])]))),128))]))]))],2)}}}),ao={class:"writing-vertical text-xs"},so={class:"flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-800"},oo={class:"flex items-center gap-2"},no={class:"font-medium text-gray-900 dark:text-white"},ro={key:0,class:"border-b border-gray-200 px-4 py-2 dark:border-gray-800"},lo={class:"flex flex-wrap items-center gap-2"},io={class:"text-xs text-gray-500"},co={class:"flex-1 overflow-y-auto"},uo={key:0,class:"flex items-center justify-center py-8"},mo={key:1,class:"flex flex-col items-center justify-center py-8 text-center"},go={class:"mt-2 text-sm text-gray-500"},po={class:"text-xs text-gray-400"},vo={key:2,class:"divide-y divide-gray-100 dark:divide-gray-800"},ho={class:"mb-1 flex items-center justify-between"},yo={class:"text-sm font-medium text-gray-900 dark:text-white"},fo={class:"text-xs text-gray-400"},xo=["innerHTML"],bo={key:1,class:"border-t border-gray-200 px-4 py-2 dark:border-gray-800"},ko={class:"flex items-center justify-between"},_o={class:"text-xs text-gray-500"},wo={key:2,class:"pointer-events-none absolute inset-0 overflow-hidden rounded-xl opacity-[0.03]"},$o=he({__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,h=Re;return n(),i("div",{class:oe(["relative flex flex-col rounded-xl bg-white shadow-sm transition-all duration-300 dark:bg-gray-900",[l.isCollapsed?"w-12":"w-full"]])},[l.isCollapsed?(n(),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]=S=>r("toggle"))},[p(v,{name:"i-heroicons-chevron-left",class:"h-5 w-5"}),e("span",ao,o(a(t)("ai.chat.dataSource.title")),1)])):(n(),i(ne,{key:1},[e("div",so,[e("div",oo,[p(v,{name:"i-heroicons-document-magnifying-glass",class:"h-5 w-5 text-gray-500"}),e("span",no,o(a(t)("ai.chat.dataSource.title")),1)]),p(h,{icon:"i-heroicons-chevron-right",color:"gray",variant:"ghost",size:"xs",onClick:g[1]||(g[1]=S=>r("toggle"))})]),l.keywords.length>0?(n(),i("div",ro,[e("div",lo,[e("span",io,o(a(t)("ai.chat.dataSource.keywords")),1),(n(!0),i(ne,null,de(l.keywords,S=>(n(),i("span",{key:S,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"},o(S),1))),128))])])):R("",!0),e("div",co,[l.isLoading?(n(),i("div",uo,[p(v,{name:"i-heroicons-arrow-path",class:"h-6 w-6 animate-spin text-gray-400"})])):l.messages.length===0?(n(),i("div",mo,[p(v,{name:"i-heroicons-inbox",class:"h-10 w-10 text-gray-300 dark:text-gray-600"}),e("p",go,o(a(t)("ai.chat.dataSource.empty")),1),e("p",po,o(a(t)("ai.chat.dataSource.emptyHint")),1)])):(n(),i("div",vo,[(n(!0),i(ne,null,de(l.messages,S=>(n(),i("div",{key:S.id,class:"px-4 py-3 transition-colors hover:bg-gray-50 dark:hover:bg-gray-800/50"},[e("div",ho,[e("span",yo,o(S.senderName),1),e("span",fo,o(m(S.timestamp)),1)]),e("p",{class:"line-clamp-3 text-sm text-gray-600 dark:text-gray-400",innerHTML:u(S.content)},null,8,xo)]))),128))]))]),l.messages.length>0?(n(),i("div",bo,[e("div",ko,[e("span",_o,o(a(t)("ai.chat.dataSource.totalRecords",{count:l.messages.length})),1),p(h,{size:"xs",variant:"ghost",onClick:g[2]||(g[2]=S=>r("loadMore"))},{default:U(()=>[ee(o(a(t)("ai.chat.dataSource.loadMore")),1)]),_:1})])])):R("",!0)],64)),l.isCollapsed?R("",!0):(n(),i("div",wo,[...g[3]||(g[3]=[e("div",{class:"data-flow-bg absolute inset-0"},null,-1)])]))],2)}}}),Co=st($o,[["__scopeId","data-v-19a25590"]]),So={class:"flex max-h-[80vh] flex-col overflow-hidden"},To={class:"shrink-0 border-b border-gray-200 px-6 py-4 dark:border-gray-800"},Io={class:"flex items-center justify-between"},Mo={class:"flex items-center gap-3"},Lo={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"},Ao={class:"flex-1 overflow-y-auto px-6 py-4"},qo={class:"flex flex-col gap-4"},Ro={class:"text-sm font-semibold text-gray-700 dark:text-gray-300"},Eo={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"},zo={class:"m-0 whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-red-600 dark:text-red-400"},Po={key:1,class:"rounded-md border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-900"},Bo={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"},jo={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-gray-900 dark:text-gray-300"},Fo={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"},Vo={class:"flex justify-end"},Oo=he({__name:"ErrorDetailModal",props:Pt({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=k(()=>{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 ps(l){return l.replace(/[/\\?%*:|"<>]/g,"_")}async function vs(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=ps(l);c==="markdown"?(m=ms(l,s,t,r),u=`${g}_${d}.md`):(m=gs(l,s,t,r),u=`${g}_${d}.txt`);const v=`data:text/plain;charset=utf-8,${encodeURIComponent(m)}`,{useCacheService:h}=await Tt(async()=>{const{useCacheService:b}=await import("./index-DR78oafF.js").then(w=>w.$);return{useCacheService:b}},__vite__mapDeps([0,1,2,3,4]));return await h().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 ys(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 fs(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=ys(l),m="application/json"):(r=hs(l),m="text/csv");const u=`data:${m};charset=utf-8,${encodeURIComponent(r)}`,{useCacheService:d}=await Tt(async()=>{const{useCacheService:v}=await import("./index-DR78oafF.js").then(h=>h.$);return{useCacheService:v}},__vite__mapDeps([0,1,2,3,4]));return await d().saveToDownloads(c,u)}function t1(l){const{route:s,router:t,currentSessionId:c,selectSession:r,defaultTab:m,validTabIds:u}=l,d=x(!0),g=x(!0),v=x(null),h=x([]),S=x([]),b=x([]),w=x([]);function q(){const $=s.query.tab;return $&&u.includes($)?$:m}const T=x(q()),{timeRangeValue:I,fullTimeRange:_,availableYears:C,timeFilter:M,selectedYearForOverview:y,initialTimeState:f}=is(s,t,{activeTab:T,isInitialLoad:g,currentSessionId:c,onTimeRangeChange:()=>P()});function D(){const $=s.params.id;$&&(r($),c.value!==$&&t.replace("/"))}async function A(){if(c.value)try{const $=await Ue().getSession(c.value);v.value=$}catch($){console.error("加载基础数据失败:",$)}}async function P(){if(c.value){d.value=!0;try{const $=M.value,L=Ue(),[W,ae,Y,pe]=await Promise.all([L.getMemberActivity(c.value,$),L.getHourlyActivity(c.value,$),L.getDailyActivity(c.value,$),L.getMessageTypeDistribution(c.value,$)]);h.value=W,S.value=ae,b.value=Y,w.value=pe}catch($){console.error("加载分析数据失败:",$)}finally{d.value=!1}}}async function z(){c.value&&(g.value=!0,await A(),g.value=!1)}return ge(()=>s.params.id,()=>{T.value=q(),D()}),ge(()=>s.query.tab,()=>{T.value=q()}),ge(c,()=>{na(),z()},{immediate:!0}),Ee(()=>{D()}),{activeTab:T,isLoading:d,isInitialLoad:g,session:v,memberActivity:h,hourlyActivity:S,dailyActivity:b,messageTypes:w,timeRangeValue:I,fullTimeRange:_,availableYears:C,timeFilter:M,selectedYearForOverview:y,initialTimeState:f,syncSession:D,loadData:z,loadAnalysisData:P}}const xs=["data-theme-card"],bs={key:0,class:"pointer-events-none absolute inset-0 overflow-hidden"},ks={key:1,class:"absolute right-3 top-3 z-50 opacity-0 transition-opacity duration-200 group-hover/card:opacity-100"},it=he({__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=k(()=>{const m=`relative isolate overflow-hidden ${t[s.variant]}`;return s.capturable?`group/card ${m}`:m}),r=k(()=>s.decorative&&s.variant==="elevated");return(m,u)=>(n(),i("div",{class:oe(c.value),"data-theme-card":l.capturable?"":void 0},[r.value?(n(),i("div",bs,[...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)])])):R("",!0),l.capturable?(n(),i("div",ks,[p(ct,{type:"element","target-selector":"[data-theme-card]",size:"xs"})])):R("",!0),Ke(m.$slots,"default")],10,xs))}}),_s={class:"flex items-center justify-between"},ws={class:"font-semibold text-gray-900 dark:text-white whitespace-nowrap"},$s={key:0,class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},We=he({__name:"SectionCard",props:{title:{},description:{},showDivider:{type:Boolean,default:!0},scrollable:{type:Boolean,default:!1},maxHeightVh:{default:60}},setup(l){const s=l,t=k(()=>{if(s.scrollable)return{maxHeight:`${s.maxHeightVh}vh`,overflowY:"auto"}});return(c,r)=>(n(),K(it,{variant:"section"},{default:U(()=>[e("div",{class:oe(["px-5 py-3",{"border-b border-gray-200 dark:border-white/5":l.showDivider&&c.$slots.default}])},[e("div",_s,[e("div",null,[e("p",ws,o(l.title),1),l.description?(n(),i("p",$s,o(l.description),1)):R("",!0)]),Ke(c.$slots,"headerRight")])],2),l.scrollable?(n(),i("div",{key:0,style:Ge(t.value)},[Ke(c.$slots,"default")],4)):Ke(c.$slots,"default",{key:1}),Ke(c.$slots,"footer")]),_:3}))}}),Cs={class:"flex items-start justify-between"},Ss={class:"min-w-0 flex-1"},Ts={class:"text-sm font-medium text-gray-500 dark:text-gray-400"},Is={key:1,class:"text-xl"},Ms={key:0,class:"mt-4 flex items-center text-sm"},Ls={class:"text-gray-500 dark:text-gray-400"},Ze=he({__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 n(),K(it,{variant:"card",class:"p-5"},{default:U(()=>[e("div",Cs,[e("div",Ss,[e("p",Ts,o(l.label),1),e("p",{class:oe(["mt-2 truncate text-2xl font-bold tracking-tight",l.valueColor?s[l.valueColor]:"text-gray-900 dark:text-white"])},o(l.value),3)]),l.icon?(n(),i("div",{key:0,class:oe(["ml-4 flex h-10 w-10 shrink-0 items-center justify-center rounded-xl",t[l.iconBg||"gray"]])},[l.icon.startsWith("i-")?(n(),K(m,{key:0,name:l.icon,class:"h-5 w-5"},null,8,["name"])):(n(),i("span",Is,o(l.icon),1))],2)):R("",!0)]),l.subtext||c.$slots.subtext?(n(),i("div",Ms,[Ke(c.$slots,"subtext",{},()=>[e("span",Ls,o(l.subtext),1)])])):R("",!0)]),_:3})}}}),Ds={key:0,class:"mb-2 block text-2xl"},a1=he({__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)=>(n(),i("div",{class:oe(["text-center text-sm text-gray-400",s[l.padding||"md"]])},[l.icon?(n(),i("span",Ds,o(l.icon),1)):R("",!0),ee(" "+o(l.text||"暂无数据"),1)],2))}}),As={class:"flex flex-col items-center justify-center text-center"},qs={key:0,class:"mt-2 text-sm text-gray-500"},mt=he({__name:"LoadingState",props:{text:{},height:{},variant:{default:"inline"}},setup(l){const s=l,t=k(()=>{const c="flex items-center justify-center";switch(s.variant){case"page":return`${c} h-full w-full`;case"overlay":return`${c} absolute inset-0 z-10 bg-white/50 backdrop-blur-sm dark:bg-gray-950/50`;default:return`${c} ${s.height||"py-8"}`}});return(c,r)=>{const m=_e;return n(),i("div",{class:oe(t.value)},[e("div",As,[p(m,{name:"i-heroicons-arrow-path",class:"h-6 w-6 animate-spin text-pink-500"}),l.text?(n(),i("p",qs,o(l.text),1)):R("",!0)])],2)}}}),Rs=["disabled"],Es={key:0,class:"flex-1 overflow-y-auto p-2"},zs={key:0,class:"flex items-center justify-center py-8"},Ps={key:1,class:"flex flex-col items-center justify-center py-12 text-center"},Bs={class:"flex h-12 w-12 items-center justify-center rounded-full bg-gray-50 dark:bg-gray-800"},js={class:"mt-3 text-xs text-gray-400"},Fs={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"},Vs={class:"space-y-0.5"},Os=["onClick"],Ns=["placeholder","onBlur","onKeyup"],Hs={key:1,class:"flex items-center"},Ys={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"},Ks={class:"w-28 p-1"},Qs=["disabled","onClick"],Gs=["onClick"],Js=["disabled","onClick"],Xs={key:1,class:"flex flex-1 flex-col items-center gap-2 overflow-y-auto py-2"},Zs=["title","disabled"],eo=["title","onClick"],to=he({__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(""),h=x(!1),S=x(null);async function b(){d.value=!0;try{u.value=await Ne().getAIChats(r.sessionId)}catch(f){console.error("加载对话列表失败:",f)}finally{d.value=!1}}const w=k(()=>{if(u.value.length===0)return[];const f=$e(),D=f.subtract(7,"day").startOf("day"),A=f.subtract(30,"day").startOf("day"),P=[],z=[],$=new Map;for(const ae of u.value){const Y=$e(ae.updatedAt*1e3);if(Y.isAfter(D))P.push(ae);else if(Y.isAfter(A))z.push(ae);else{const pe=Y.format("YYYY-MM");$.has(pe)||$.set(pe,[]),$.get(pe).push(ae)}}const L=[];P.length>0&&L.push({label:c("ai.chat.conversation.group.last7Days"),conversations:P}),z.length>0&&L.push({label:c("ai.chat.conversation.group.last30Days"),conversations:z});const W=[...$.keys()].sort((ae,Y)=>Y.localeCompare(ae));for(const ae of W){const Y=$e(ae+"-01");L.push({label:Y.format(Y.year()===f.year()?"M月":"YYYY年M月"),conversations:$.get(ae)})}return L});function q(f){return f.title||c("ai.chat.conversation.newChat")}function T(f){r.disabled||(g.value=f.id,v.value=f.title||"")}async function I(f){if(!r.disabled){if(v.value.trim())try{await Ne().updateAIChatTitle(f,v.value.trim());const D=u.value.find(A=>A.id===f);D&&(D.title=v.value.trim())}catch(D){console.error("更新标题失败:",D)}g.value=null}}function _(f){S.value=null,T(f)}function C(f){S.value=null,navigator.clipboard.writeText(f)}function M(f){S.value=null,y(f)}async function y(f){if(!r.disabled)try{await Ne().deleteAIChat(f),u.value=u.value.filter(D=>D.id!==f),m("delete",f)}catch(D){console.error("删除对话失败:",D)}}return Ee(()=>{b()}),ge(()=>r.sessionId,()=>{b()}),s({refresh:b}),(f,D)=>{const A=_e,P=Re,z=ua;return n(),i("div",{class:oe(["flex flex-col border-r border-gray-200 bg-white transition-all dark:border-gray-800 dark:bg-gray-900",h.value?"w-10":"w-64"])},[e("div",{class:oe(["flex items-center border-b border-gray-200 dark:border-gray-800",h.value?"justify-center px-0 py-2":"justify-between pl-3 pr-2 py-2"])},[h.value?(n(),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:D[2]||(D[2]=$=>h.value=!h.value)},[p(A,{name:"i-heroicons-chevron-right",class:"h-4 w-4"})])):(n(),i(ne,{key:0},[e("button",{class:oe(["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:D[0]||(D[0]=$=>!l.disabled&&m("create"))},[p(A,{name:"i-heroicons-plus",class:"h-3.5 w-3.5"}),e("span",null,o(a(c)("ai.chat.conversation.newConversation")),1)],10,Rs),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:D[1]||(D[1]=$=>h.value=!h.value)},[p(A,{name:"i-heroicons-chevron-left",class:"h-4 w-4"})])],64))],2),h.value?(n(),i("div",Xs,[e("button",{class:oe(["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:D[7]||(D[7]=$=>!l.disabled&&m("create"))},[p(A,{name:"i-heroicons-plus",class:"h-4 w-4"})],10,Zs),D[8]||(D[8]=e("div",{class:"h-px w-6 bg-gray-200 dark:bg-gray-800"},null,-1)),(n(!0),i(ne,null,de(u.value,$=>(n(),i("button",{key:$.id,class:oe(["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:q($),onClick:L=>m("select",$.id)},[p(A,{name:"i-heroicons-chat-bubble-left",class:"h-4 w-4"})],10,eo))),128))])):(n(),i("div",Es,[d.value?(n(),i("div",zs,[p(A,{name:"i-heroicons-arrow-path",class:"h-5 w-5 animate-spin text-gray-400"})])):u.value.length===0?(n(),i("div",Ps,[e("div",Bs,[p(A,{name:"i-heroicons-chat-bubble-left",class:"h-6 w-6 text-gray-300 dark:text-gray-600"})]),e("p",js,o(a(c)("ai.chat.conversation.empty")),1),p(P,{class:"mt-2",size:"xs",variant:"link",color:"primary",disabled:l.disabled,onClick:D[3]||(D[3]=$=>!l.disabled&&m("create"))},{default:U(()=>[ee(o(a(c)("ai.chat.conversation.startNew")),1)]),_:1},8,["disabled"])])):(n(),i("div",Fs,[(n(!0),i(ne,null,de(w.value,$=>(n(),i("div",{key:$.label},[e("div",Us,o($.label),1),e("div",Vs,[(n(!0),i(ne,null,de($.conversations,L=>(n(),i("div",{key:L.id,class:oe(["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:W=>m("select",L.id)},[g.value===L.id?He((n(),i("input",{key:0,"onUpdate:modelValue":D[4]||(D[4]=W=>v.value=W),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-gray-900 dark:ring-gray-700",placeholder:a(c)("ai.chat.conversation.titlePlaceholder"),autoFocus:"",onBlur:W=>I(L.id),onKeyup:Xe(W=>I(L.id),["enter"]),onClick:D[5]||(D[5]=Fe(()=>{},["stop"]))},null,40,Ns)),[[ot,v.value]]):(n(),i("div",Hs,[e("p",Ys,o(q(L)),1),e("div",{class:oe(["ml-1 shrink-0 opacity-0 transition-opacity group-hover:opacity-100",{"opacity-100":l.activeId===L.id||S.value===L.id}]),onClick:D[6]||(D[6]=Fe(()=>{},["stop"]))},[p(z,{open:S.value===L.id,ui:{content:"z-50 p-0"},"onUpdate:open":W=>S.value=W?L.id:null},{content:U(()=>[e("div",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",disabled:l.disabled,onClick:W=>_(L)},[p(A,{name:"i-heroicons-pencil",class:"h-3.5 w-3.5"}),ee(" "+o(a(c)("ai.chat.conversation.rename")),1)],8,Qs),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:W=>C(L.id)},[p(A,{name:"i-heroicons-clipboard-document",class:"h-3.5 w-3.5"}),ee(" "+o(a(c)("ai.chat.conversation.copyId")),1)],8,Gs),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:W=>M(L.id)},[p(A,{name:"i-heroicons-trash",class:"h-3.5 w-3.5"}),ee(" "+o(a(c)("ai.chat.conversation.delete")),1)],8,Js)])]),default:U(()=>[e("button",Ws,[p(A,{name:"i-heroicons-ellipsis-horizontal",class:"h-4 w-4"})])]),_:2},1032,["open","onUpdate:open"])],2)]))],10,Os))),128))])]))),128))]))]))],2)}}}),ao={class:"writing-vertical text-xs"},so={class:"flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-800"},oo={class:"flex items-center gap-2"},no={class:"font-medium text-gray-900 dark:text-white"},ro={key:0,class:"border-b border-gray-200 px-4 py-2 dark:border-gray-800"},lo={class:"flex flex-wrap items-center gap-2"},io={class:"text-xs text-gray-500"},co={class:"flex-1 overflow-y-auto"},uo={key:0,class:"flex items-center justify-center py-8"},mo={key:1,class:"flex flex-col items-center justify-center py-8 text-center"},go={class:"mt-2 text-sm text-gray-500"},po={class:"text-xs text-gray-400"},vo={key:2,class:"divide-y divide-gray-100 dark:divide-gray-800"},ho={class:"mb-1 flex items-center justify-between"},yo={class:"text-sm font-medium text-gray-900 dark:text-white"},fo={class:"text-xs text-gray-400"},xo=["innerHTML"],bo={key:1,class:"border-t border-gray-200 px-4 py-2 dark:border-gray-800"},ko={class:"flex items-center justify-between"},_o={class:"text-xs text-gray-500"},wo={key:2,class:"pointer-events-none absolute inset-0 overflow-hidden rounded-xl opacity-[0.03]"},$o=he({__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,h=Re;return n(),i("div",{class:oe(["relative flex flex-col rounded-xl bg-white shadow-sm transition-all duration-300 dark:bg-gray-900",[l.isCollapsed?"w-12":"w-full"]])},[l.isCollapsed?(n(),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]=S=>r("toggle"))},[p(v,{name:"i-heroicons-chevron-left",class:"h-5 w-5"}),e("span",ao,o(a(t)("ai.chat.dataSource.title")),1)])):(n(),i(ne,{key:1},[e("div",so,[e("div",oo,[p(v,{name:"i-heroicons-document-magnifying-glass",class:"h-5 w-5 text-gray-500"}),e("span",no,o(a(t)("ai.chat.dataSource.title")),1)]),p(h,{icon:"i-heroicons-chevron-right",color:"gray",variant:"ghost",size:"xs",onClick:g[1]||(g[1]=S=>r("toggle"))})]),l.keywords.length>0?(n(),i("div",ro,[e("div",lo,[e("span",io,o(a(t)("ai.chat.dataSource.keywords")),1),(n(!0),i(ne,null,de(l.keywords,S=>(n(),i("span",{key:S,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"},o(S),1))),128))])])):R("",!0),e("div",co,[l.isLoading?(n(),i("div",uo,[p(v,{name:"i-heroicons-arrow-path",class:"h-6 w-6 animate-spin text-gray-400"})])):l.messages.length===0?(n(),i("div",mo,[p(v,{name:"i-heroicons-inbox",class:"h-10 w-10 text-gray-300 dark:text-gray-600"}),e("p",go,o(a(t)("ai.chat.dataSource.empty")),1),e("p",po,o(a(t)("ai.chat.dataSource.emptyHint")),1)])):(n(),i("div",vo,[(n(!0),i(ne,null,de(l.messages,S=>(n(),i("div",{key:S.id,class:"px-4 py-3 transition-colors hover:bg-gray-50 dark:hover:bg-gray-800/50"},[e("div",ho,[e("span",yo,o(S.senderName),1),e("span",fo,o(m(S.timestamp)),1)]),e("p",{class:"line-clamp-3 text-sm text-gray-600 dark:text-gray-400",innerHTML:u(S.content)},null,8,xo)]))),128))]))]),l.messages.length>0?(n(),i("div",bo,[e("div",ko,[e("span",_o,o(a(t)("ai.chat.dataSource.totalRecords",{count:l.messages.length})),1),p(h,{size:"xs",variant:"ghost",onClick:g[2]||(g[2]=S=>r("loadMore"))},{default:U(()=>[ee(o(a(t)("ai.chat.dataSource.loadMore")),1)]),_:1})])])):R("",!0)],64)),l.isCollapsed?R("",!0):(n(),i("div",wo,[...g[3]||(g[3]=[e("div",{class:"data-flow-bg absolute inset-0"},null,-1)])]))],2)}}}),Co=st($o,[["__scopeId","data-v-19a25590"]]),So={class:"flex max-h-[80vh] flex-col overflow-hidden"},To={class:"shrink-0 border-b border-gray-200 px-6 py-4 dark:border-gray-800"},Io={class:"flex items-center justify-between"},Mo={class:"flex items-center gap-3"},Lo={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"},Ao={class:"flex-1 overflow-y-auto px-6 py-4"},qo={class:"flex flex-col gap-4"},Ro={class:"text-sm font-semibold text-gray-700 dark:text-gray-300"},Eo={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"},zo={class:"m-0 whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-red-600 dark:text-red-400"},Po={key:1,class:"rounded-md border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-900"},Bo={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"},jo={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-gray-900 dark:text-gray-300"},Fo={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"},Vo={class:"flex justify-end"},Oo=he({__name:"ErrorDetailModal",props:Pt({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=k(()=>{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 h=_e,S=Re,b=Oe;return n(),K(b,{open:c.value,"onUpdate:open":v[1]||(v[1]=w=>c.value=w),ui:{content:"sm:max-w-[700px] z-[100]",overlay:"backdrop-blur-sm z-[99]"}},{content:U(()=>[e("div",So,[e("div",To,[e("div",Io,[e("div",Mo,[e("div",Lo,[p(h,{name:"i-heroicons-exclamation-triangle",class:"h-4 w-4 text-red-600 dark:text-red-400"})]),e("h2",Do,o(a(s)("ai.chat.error.detail")),1)]),p(S,{icon:"i-heroicons-x-mark",variant:"ghost",color:"neutral",size:"sm",onClick:v[0]||(v[0]=w=>c.value=!1)})])]),e("div",Ao,[e("div",qo,[(n(!0),i(ne,null,de(m.value,(w,q)=>(n(),i("div",{key:q,class:"flex flex-col gap-1.5"},[e("div",Ro,o(w.label),1),w.isStack?(n(),i("div",Eo,[e("pre",zo,o(w.value),1)])):w.isCode?(n(),i("div",Po,[e("pre",Bo,o(w.value),1)])):(n(),i("div",jo,o(w.value),1))]))),128)),m.value.length===0?(n(),i("div",Fo,o(a(s)("ai.chat.error.unknown")),1)):R("",!0)])]),e("div",Uo,[e("div",Vo,[p(S,{icon:"i-heroicons-document-duplicate",variant:"soft",color:"neutral",size:"sm",onClick:d},{default:U(()=>[ee(o(a(s)("ai.chat.error.copyAll")),1)]),_:1})])])])]),_:1},8,["open"])}}}),No={class:"mb-1.5 flex items-center gap-2"},Ho={class:"flex shrink-0 items-center justify-center text-red-500 dark:text-red-400"},Yo={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"},Ko={class:"mt-2.5 ml-6 flex items-center"},Qo={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"},Go=he({__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 n(),i(ne,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",Ho,[p(u,{name:"i-heroicons-exclamation-triangle",class:"h-4 w-4"})]),e("div",Yo,o(a(s)("ai.chat.error.title")),1)]),e("div",Wo,o(c(l.error)),1),e("div",Ko,[e("div",Qo,[ee(o(a(s)("ai.chat.error.viewDetail"))+" ",1),p(u,{name:"i-heroicons-chevron-right",class:"h-3.5 w-3.5"})])])]),p(Oo,{open:t.value,"onUpdate:open":m[1]||(m[1]=d=>t.value=d),error:l.error},null,8,["open","error"])],64)}}}),bt=he({__name:"EChart",props:{option:{},height:{default:300},loading:{type:Boolean,default:!1},theme:{default:"auto"}},setup(l,{expose:s}){yt([ft,pa,va,Za,Gt,es,Mt,ts,ha,Jt,as]);const t=l,c=x();let r=null,m=null;const u=k(()=>typeof t.height=="number"?`${t.height}px`:t.height),d=k(()=>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 h(){r?.resize()}ge(()=>t.option,v,{deep:!0}),ge(()=>t.height,()=>{setTimeout(()=>{r?.resize()},0)}),ge(d,()=>{g()}),ge(()=>t.loading,b=>{b?r?.showLoading("default",{text:"",spinnerRadius:12,lineWidth:2}):r?.hideLoading()});let S=null;return Ee(()=>{Ve(()=>{g()}),window.addEventListener("resize",h),c.value&&(m=new ResizeObserver(()=>h()),m.observe(c.value)),S=new MutationObserver(()=>{t.theme==="auto"&&g()}),S.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]})}),lt(()=>{window.removeEventListener("resize",h),m?.disconnect(),S?.disconnect(),r?.dispose(),r=null}),s({getInstance:()=>r,resize:h}),(b,w)=>(n(),i("div",{ref_key:"chartRef",ref:c,style:Ge({height:u.value,width:"100%"})},null,4))}}),tt=he({__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=k(()=>{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)=>(n(),K(bt,{option:c.value,height:l.height},null,8,["option","height"]))}}),Ft=he({__name:"EChartHeatmap",props:{data:{},height:{default:280},mode:{default:"expanded"},minColor:{default:"#fee5e8"},maxColor:{default:"#ee4567"}},setup(l){const s=l,t=k(()=>{let r=0;for(const[,,m]of s.data.data)m>r&&(r=m);return r||1}),c=k(()=>{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]],h=d.data[2];return`${v} ${g}<br/>消息数: <strong>${h}</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)=>(n(),K(bt,{option:c.value,height:l.height},null,8,["option","height"]))}}),Ut=he({__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=k(()=>{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(h=>({name:h.name,type:"line",data:h.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)=>(n(),K(bt,{option:t.value,height:l.height},null,8,["option","height"]))}}),Vt=he({__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=k(()=>{const r=s.data.labels.map((b,w)=>({name:b,value:s.data.values[w]})),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}},h=!u&&!d,S=s.showLegend&&!h;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:S?v:void 0,series:[{type:"pie",radius:s.doughnut?[s.innerRadius,u?"58%":"68%"]:u?"58%":"68%",center:S?u?["50%","42%"]:["38%","50%"]:["50%",u?"46%":"50%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:4,borderColor:"#fff",borderWidth:2},label:{show:h,formatter:"{b}",overflow:"truncate",width:110,alignTo:"edge",edgeDistance:12},emphasis:{label:{show:h,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)=>(n(),K(bt,{option:c.value,height:l.height},null,8,["option","height"]))}}),Jo={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-gray-900/70"},Xo={class:"border-b border-gray-100 px-3 py-2 dark:border-gray-800"},Zo={class:"flex min-w-0 items-start justify-between gap-3"},en={class:"min-w-0"},tn={class:"truncate text-sm font-semibold text-gray-900 dark:text-gray-100"},an={key:0,class:"mt-0.5 line-clamp-2 text-xs text-gray-500 dark:text-gray-400"},sn={class:"flex shrink-0 items-center gap-1.5"},on={class:"rounded-md bg-gray-100 px-1.5 py-0.5 text-[10px] uppercase text-gray-500 dark:bg-gray-800"},nn={class:"flex max-h-[92vh] flex-col overflow-hidden bg-white dark:bg-gray-950"},rn={class:"flex items-start justify-between gap-4 border-b border-gray-200 px-5 py-4 dark:border-gray-800"},ln={class:"min-w-0"},cn={class:"truncate text-base font-semibold text-gray-900 dark:text-gray-100"},dn={key:0,class:"mt-1 line-clamp-2 text-xs text-gray-500 dark:text-gray-400"},un={class:"mt-1 text-[11px] text-gray-400 dark:text-gray-500"},mn={class:"min-h-0 flex-1 overflow-auto p-4"},gn={key:0,class:"flex h-64 items-center justify-center text-xs text-gray-400 dark:text-gray-500"},pn={class:"mt-1 text-[11px] text-gray-400 dark:text-gray-500"},vn={class:"px-2 py-3"},hn={key:0,class:"flex h-32 items-center justify-center text-xs text-gray-400 dark:text-gray-500"},yn=he({__name:"ChartBlockRenderer",props:{chart:{}},setup(l){const{t:s}=ke(),t=l,c=x(!1),r=k(()=>t.chart.spec.title),m=k(()=>t.chart.spec.subtitle||t.chart.spec.description||""),u=k(()=>t.chart.spec.display?.height??(t.chart.spec.type==="heatmap"?300:260)),d=k(()=>t.chart.rowCount===0),g=k(()=>{const _=[];return t.chart.spec.unit&&_.push(t.chart.spec.unit),t.chart.truncated&&_.push(s("ai.chat.message.chart.truncated")),_.push(s("ai.chat.message.chart.rows",{count:t.chart.rowCount})),_.join(" · ")}),v=k(()=>t.chart.data),h=k(()=>t.chart.data),S=k(()=>t.chart.data),b=k(()=>t.chart.data),w=k(()=>t.chart.spec.type==="pie"?S.value.labels.length>8:t.chart.spec.type==="line"?h.value.labels.length>28||(h.value.series?.length??0)>4:t.chart.spec.type==="bar"?v.value.labels.length>12:t.chart.spec.type==="heatmap"?b.value.xLabels.length*b.value.yLabels.length>180:!1),q=k(()=>{const _=w.value?320:380;return Math.min(u.value,_)}),T=k(()=>{const _=u.value;if(t.chart.spec.type==="pie")return Math.max(_,560);if(t.chart.spec.type==="line")return Math.max(_,h.value.labels.length>40?620:540);if(t.chart.spec.type==="bar"){const C=t.chart.spec.display?.horizontal?v.value.labels.length*28+120:520;return Math.min(Math.max(_,C),820)}return t.chart.spec.type==="heatmap"?Math.min(Math.max(_,b.value.yLabels.length*22+150,560),860):Math.max(_,520)}),I=k(()=>t.chart.spec.type==="pie"?"640px":t.chart.spec.type==="bar"?"720px":"780px");return(_,C)=>{const M=Re,y=Oe;return n(),i("div",Jo,[e("div",Xo,[e("div",Zo,[e("div",en,[e("h3",tn,o(r.value),1),m.value?(n(),i("p",an,o(m.value),1)):R("",!0)]),e("div",sn,[e("span",on,o(l.chart.spec.type),1),p(y,{open:c.value,"onUpdate:open":C[2]||(C[2]=f=>c.value=f),ui:{overlay:"z-[10040] backdrop-blur-sm",content:"z-[10050] w-[96vw] max-w-6xl max-h-[92vh] overflow-hidden"}},{content:U(()=>[e("div",nn,[e("div",rn,[e("div",ln,[e("h3",cn,o(r.value),1),m.value?(n(),i("p",dn,o(m.value),1)):R("",!0),e("p",un,o(g.value),1)]),p(M,{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:C[1]||(C[1]=f=>c.value=!1)},null,8,["title","aria-label"])]),e("div",mn,[e("div",{class:"mx-auto w-full",style:Ge({minWidth:I.value})},[d.value?(n(),i("div",gn,o(a(s)("ai.chat.message.chart.empty")),1)):l.chart.spec.type==="bar"?(n(),K(tt,{key:1,data:v.value,height:T.value,mode:"expanded",horizontal:l.chart.spec.display?.horizontal},null,8,["data","height","horizontal"])):l.chart.spec.type==="line"?(n(),K(Ut,{key:2,data:h.value,height:T.value,mode:"expanded"},null,8,["data","height"])):l.chart.spec.type==="pie"?(n(),K(Vt,{key:3,data:S.value,height:T.value,mode:"expanded","show-legend":l.chart.spec.display?.showLegend??!0},null,8,["data","height","show-legend"])):l.chart.spec.type==="heatmap"?(n(),K(Ft,{key:4,data:b.value,height:T.value,mode:"expanded"},null,8,["data","height"])):R("",!0)],4)])])]),default:U(()=>[p(M,{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:C[0]||(C[0]=Fe(()=>{},["stop"]))},null,8,["title","aria-label"])]),_:1},8,["open"])])]),e("p",pn,o(g.value),1)]),e("div",vn,[d.value?(n(),i("div",hn,o(a(s)("ai.chat.message.chart.empty")),1)):l.chart.spec.type==="bar"?(n(),K(tt,{key:1,data:v.value,height:q.value,mode:"compact",horizontal:l.chart.spec.display?.horizontal},null,8,["data","height","horizontal"])):l.chart.spec.type==="line"?(n(),K(Ut,{key:2,data:h.value,height:q.value,mode:"compact"},null,8,["data","height"])):l.chart.spec.type==="pie"?(n(),K(Vt,{key:3,data:S.value,height:q.value,mode:"compact","show-legend":l.chart.spec.display?.showLegend??!0},null,8,["data","height","show-legend"])):l.chart.spec.type==="heatmap"?(n(),K(Ft,{key:4,data:b.value,height:q.value,mode:"compact"},null,8,["data","height"])):R("",!0)])])}}}),fn={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"},xn={class:"text-xs font-semibold text-gray-700 dark:text-gray-200"},bn={key:0,class:"flex min-w-0 items-center gap-2"},kn={key:0,class:"truncate text-[11px] text-gray-400 dark:text-gray-500"},_n={class:"ml-auto flex shrink-0 items-center gap-1.5"},wn={class:"text-[11px] text-gray-400 dark:text-gray-500"},$n={key:0,class:"border-t border-gray-200/70 px-3 py-2 dark:border-gray-700/50"},Cn={class:"mb-2 space-y-0.5 text-xs text-gray-600 dark:text-gray-400"},Sn={class:"font-medium"},Tn={key:0},In={class:"font-medium"},Mn={key:0,class:"mb-2 space-y-1"},Ln={key:1,class:"py-1.5 text-center text-xs text-gray-400 dark:text-gray-500"},Dn={key:2,class:"space-y-2"},An={class:"flex items-center gap-2"},qn={class:"ml-auto shrink-0 text-[11px] text-gray-400 dark:text-gray-500"},Rn={key:0,class:"mt-1 text-[11px] text-gray-500 dark:text-gray-400"},En={class:"mt-1 space-y-0.5"},zn=["onClick"],Pn={class:"min-w-0 flex-1 text-xs leading-snug text-gray-600 dark:text-gray-300"},Bn={key:0,class:"mr-1 text-gray-400 dark:text-gray-500"},jn={class:"line-clamp-2 break-words align-middle"},Fn={key:3,class:"mt-1.5 text-right text-[11px] text-gray-400 dark:text-gray-500"},Un=he({__name:"EvidenceBlock",props:{evidence:{}},setup(l){const s=l,{t}=ke(),c=dt(),r=x(!1),m=["included","uncertain","excluded"],u=k(()=>[...s.evidence.groups].sort((w,q)=>m.indexOf(w.status)-m.indexOf(q.status))),d=k(()=>s.evidence.groups.reduce((w,q)=>w+q.sources.length,0)),g=k(()=>m.map(w=>({status:w,count:s.evidence.groups.filter(q=>q.status===w).length})).filter(w=>w.count>0)),v=k(()=>s.evidence.warnings??[]),h={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"},S={included:"bg-emerald-500",uncertain:"bg-amber-500",excluded:"bg-gray-400"};function b(w){c.openChatRecordDrawer({scrollToMessageId:w})}return(w,q)=>{const T=_e;return n(),i("div",fn,[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:q[0]||(q[0]=I=>r.value=!r.value)},[p(T,{name:"i-heroicons-document-magnifying-glass",class:"h-4 w-4 shrink-0 text-primary-500"}),e("span",xn,o(a(t)("ai.chat.evidence.title")),1),r.value?R("",!0):(n(),i("div",bn,[(n(!0),i(ne,null,de(g.value,I=>(n(),i("span",{key:I.status,class:"flex shrink-0 items-center gap-1 text-[11px] text-gray-500 dark:text-gray-400"},[e("span",{class:oe(["h-1.5 w-1.5 rounded-full",S[I.status]])},null,2),ee(" "+o(a(t)(`ai.chat.evidence.group.${I.status}`))+" "+o(I.count),1)]))),128)),g.value.length===0?(n(),i("span",kn,o(a(t)("ai.chat.evidence.empty")),1)):R("",!0)])),e("span",_n,[e("span",wn,o(a(t)(`ai.chat.evidence.mode.${l.evidence.mode}`)),1),p(T,{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?(n(),i("div",$n,[e("div",Cn,[e("div",null,[e("span",Sn,o(a(t)("ai.chat.evidence.query"))+":",1),ee(" "+o(l.evidence.query),1)]),l.evidence.criteria?(n(),i("div",Tn,[e("span",In,o(a(t)("ai.chat.evidence.criteria"))+":",1),ee(" "+o(l.evidence.criteria),1)])):R("",!0)]),v.value.length>0?(n(),i("div",Mn,[(n(!0),i(ne,null,de(v.value,I=>(n(),i("div",{key:I,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(T,{name:"i-heroicons-exclamation-triangle",class:"mt-0.5 h-3 w-3 shrink-0"}),e("span",null,o(a(t)(`ai.chat.evidence.warning.${I}`)),1)]))),128))])):R("",!0),u.value.length===0?(n(),i("div",Ln,o(a(t)("ai.chat.evidence.empty")),1)):(n(),i("div",Dn,[(n(!0),i(ne,null,de(u.value,I=>(n(),i("div",{key:I.id,class:"rounded-md border border-gray-200/80 bg-white px-2.5 py-1.5 dark:border-gray-700/50 dark:bg-gray-900/30"},[e("div",An,[e("span",{class:oe(["rounded px-1.5 py-0.5 text-[11px] font-medium",h[I.status]])},o(a(t)(`ai.chat.evidence.group.${I.status}`)),3),e("span",qn,o(I.title),1)]),I.reason?(n(),i("div",Rn,o(I.reason),1)):R("",!0),e("ul",En,[(n(!0),i(ne,null,de(I.sources,(_,C)=>(n(),i("li",{key:`${I.id}-${C}`,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:M=>b(_.messageId)},[e("div",Pn,[_.senderName?(n(),i("span",Bn,o(_.senderName)+": ",1)):R("",!0),e("span",jn,o(_.snippet),1)]),p(T,{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,zn))),128))])]))),128))])),u.value.length>0?(n(),i("div",Fn,o(a(t)("ai.chat.evidence.totalSources",{count:d.value})),1)):R("",!0)])):R("",!0)])}}}),Vn=/^\s*!\[[^\]\n]*\]\(\s*(?:(?:https?:\/\/(?:localhost|127\.0\.0\.1)(?::\d+)?)?\/?|\.\/)?chart[\w-]*(?:\.(?:png|jpg|jpeg|webp|svg))?(?:\?[^)\s]*)?\s*(?:"[^"]*")?\s*\)\s*$/gim;function On(l){return l&&l.replace(Vn,"").replace(/\n{3,}/g,`
8
8
 
@@ -1 +1 @@
1
- import{b as L,g as O}from"./vendor-nuxt-ui-Zy8txNdC.js";import{u as z,T as P,z as G,e as H,y as U}from"./index-B3mDjury.js";import{p as j,J as $,w as F,G as T,P as M,a5 as a,T as p,u as k,L as v,bA as C,bB as D,U as A,h as I,b as g,H as J,K as E,a0 as K,R as B,bp as Y}from"./vendor-reka-ui-mMvma1EP.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=j({__name:"ConditionPanel",props:{timeRange:{default:null},timeRangeModifiers:{},exportFormat:{default:"txt"},exportFormatModifiers:{}},emits:["update:timeRange","update:exportFormat"],setup(w){const{t:x}=z(),d=$(w,"timeRange"),h=$(w,"exportFormat"),i=I(()=>[{label:"TXT",value:"txt"},{label:"JSON",value:"json"},{label:"Markdown",value:"markdown"}]),u=g("all"),c=g(""),l=g(""),y=[{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"}],f=I(()=>y.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:f.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]])])):A("",!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-gray-900"},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=j({__name:"MessageExportModal",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(w,{emit:x}){const d=w,h=x,{t:i}=z(),u=G(),c=H(),l=I({get:()=>d.modelValue,set:s=>h("update:modelValue",s)}),y=g(null),f=g(localStorage.getItem(N)||"txt");F(f,s=>localStorage.setItem(N,s));const m=g(!1),e=g(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 b=c.currentSession?.name||"unknown";let S="";m.value=!0,e.value={percentage:0,message:i("analysis.filter.exportPreparing")},n();try{const o=Y(y.value),V=await U().exportFilterResultToFile({sessionId:s,sessionName:b,outputDir:S,format:f.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 b=L,S=O;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(b,{variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:r[0]||(r[0]=o=>l.value=!1)})]),v(Z,{"time-range":y.value,"onUpdate:timeRange":r[1]||(r[1]=o=>y.value=o),"export-format":f.value,"onUpdate:exportFormat":r[2]||(r[2]=o=>f.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)])])):A("",!0),a("div",re,[v(b,{variant:"ghost",onClick:r[3]||(r[3]=o=>l.value=!1)},{default:E(()=>[B(p(k(i)("common.cancel")),1)]),_:1}),v(b,{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{b as L,g as O}from"./vendor-nuxt-ui-Zy8txNdC.js";import{u as z,T as P,z as G,e as H,y as U}from"./index-DR78oafF.js";import{p as j,J as $,w as F,G as T,P as M,a5 as a,T as p,u as k,L as v,bA as C,bB as D,U as A,h as I,b as g,H as J,K as E,a0 as K,R as B,bp as Y}from"./vendor-reka-ui-mMvma1EP.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=j({__name:"ConditionPanel",props:{timeRange:{default:null},timeRangeModifiers:{},exportFormat:{default:"txt"},exportFormatModifiers:{}},emits:["update:timeRange","update:exportFormat"],setup(w){const{t:x}=z(),d=$(w,"timeRange"),h=$(w,"exportFormat"),i=I(()=>[{label:"TXT",value:"txt"},{label:"JSON",value:"json"},{label:"Markdown",value:"markdown"}]),u=g("all"),c=g(""),l=g(""),y=[{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"}],f=I(()=>y.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:f.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]])])):A("",!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-gray-900"},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=j({__name:"MessageExportModal",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(w,{emit:x}){const d=w,h=x,{t:i}=z(),u=G(),c=H(),l=I({get:()=>d.modelValue,set:s=>h("update:modelValue",s)}),y=g(null),f=g(localStorage.getItem(N)||"txt");F(f,s=>localStorage.setItem(N,s));const m=g(!1),e=g(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 b=c.currentSession?.name||"unknown";let S="";m.value=!0,e.value={percentage:0,message:i("analysis.filter.exportPreparing")},n();try{const o=Y(y.value),V=await U().exportFilterResultToFile({sessionId:s,sessionName:b,outputDir:S,format:f.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 b=L,S=O;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(b,{variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:r[0]||(r[0]=o=>l.value=!1)})]),v(Z,{"time-range":y.value,"onUpdate:timeRange":r[1]||(r[1]=o=>y.value=o),"export-format":f.value,"onUpdate:exportFormat":r[2]||(r[2]=o=>f.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)])])):A("",!0),a("div",re,[v(b,{variant:"ghost",onClick:r[3]||(r[3]=o=>l.value=!1)},{default:E(()=>[B(p(k(i)("common.cancel")),1)]),_:1}),v(b,{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{FetchAIAdapter as o}from"./fetch-DLAp7h55.js";import"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class l extends o{async exportFilterResultToFile(r){return window.aiApi.exportFilterResultToFile(r)}onExportProgress(r){return window.aiApi.onExportProgress(r)}async showAiLogFile(){return window.aiApi.showAiLogFile()}}export{l as ElectronAIAdapter};
1
+ import{FetchAIAdapter as o}from"./fetch-DZFx8FA4.js";import"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class l extends o{async exportFilterResultToFile(r){return window.aiApi.exportFilterResultToFile(r)}onExportProgress(r){return window.aiApi.onExportProgress(r)}async showAiLogFile(){return window.aiApi.showAiLogFile()}}export{l as ElectronAIAdapter};
@@ -0,0 +1 @@
1
+ class n{getVersion(){return window.api.app.getVersion()}fetchRemoteConfig(e){return window.api.app.fetchRemoteConfig(e)}setThemeSource(e){window.api.setThemeSource(e)}getOpenAtLogin(){return window.api.app.getOpenAtLogin()}setOpenAtLogin(e){return window.api.app.setOpenAtLogin(e)}getAnalyticsEnabled(){return window.api.app.getAnalyticsEnabled()}setAnalyticsEnabled(e){return window.api.app.setAnalyticsEnabled(e)}trackDailyActive(e){return window.api.app.trackDailyActive(e)}showOpenDialog(e){return window.api.dialog.showOpenDialog(e)}copyImageToClipboard(e){return window.api.clipboard.copyImage(e)}async checkUpdate(){window.api.app.checkUpdate()}async performUpdate(){return{success:!1,error:"Use built-in updater"}}relaunch(){return window.api.app.relaunch()}}export{n as ElectronPlatformAdapter};
@@ -1 +1 @@
1
- import{L as c,S as m,U as u,M as g,V as n}from"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";function r(o){if(!o)return"";const s=new URLSearchParams;o.startTs&&s.set("startTs",String(o.startTs)),o.endTs&&s.set("endTs",String(o.endTs)),o.memberId&&s.set("memberId",String(o.memberId));const e=s.toString();return e?`?${e}`:""}class S{getSessions(){return c("/sessions")}getSession(s){return c(`/sessions/${s}`)}async deleteSession(s){return(await m(`/sessions/${s}`)).success}async renameSession(s,e){return(await u(`/sessions/${s}/name`,{name:e})).success}async updateSessionOwnerId(s,e){return(await u(`/sessions/${s}/owner`,{ownerId:e})).success}tryApplyOwnerProfile(s){return g(`/sessions/${s}/owner/apply-profile`,{})}setOwnerAndApplyProfile(s,e){return g(`/sessions/${s}/owner/select`,{ownerPlatformId:e})}async dismissOwnerPrompt(s){return(await g(`/sessions/${s}/owner/dismiss-prompt`,{})).success}getAvailableYears(s){return c(`/sessions/${s}/years`)}getTimeRange(s){return c(`/sessions/${s}/time-range`)}getMemberActivity(s,e){return n(`/sessions/${s}/stats/member-activity${r(e)}`)}getHourlyActivity(s,e){return n(`/sessions/${s}/stats/hourly${r(e)}`)}getDailyActivity(s,e){return n(`/sessions/${s}/stats/daily${r(e)}`)}getWeekdayActivity(s,e){return n(`/sessions/${s}/stats/weekday${r(e)}`)}getMonthlyActivity(s,e){return n(`/sessions/${s}/analytics/monthly-activity${r(e)}`)}getYearlyActivity(s,e){return n(`/sessions/${s}/analytics/yearly-activity${r(e)}`)}getMessageLengthDistribution(s,e){return n(`/sessions/${s}/analytics/message-length-distribution${r(e)}`)}getMessageTypeDistribution(s,e){return n(`/sessions/${s}/stats/message-types${r(e)}`)}getTextStats(s,e){return n(`/sessions/${s}/analytics/text-stats${r(e)}`)}getLongMessageCount(s,e,t){const a=new URLSearchParams;e?.startTs&&a.set("startTs",String(e.startTs)),e?.endTs&&a.set("endTs",String(e.endTs)),e?.memberId&&a.set("memberId",String(e.memberId)),t!=null&&a.set("minLength",String(t));const i=a.toString();return n(`/sessions/${s}/analytics/long-message-count${i?`?${i}`:""}`)}getMemberMonthlyTrend(s,e){return n(`/sessions/${s}/analytics/member-monthly-trend${r(e)}`)}getTextLengthPercentiles(s,e){return n(`/sessions/${s}/analytics/text-length-percentiles${r(e)}`)}getDragonKingAnalysis(s,e){return n(`/sessions/${s}/analytics/dragon-king${r(e)}`)}getDivingAnalysis(s,e){return n(`/sessions/${s}/analytics/diving${r(e)}`)}getCheckInAnalysis(s,e){return n(`/sessions/${s}/analytics/check-in${r(e)}`)}getMemeBattleAnalysis(s,e){return n(`/sessions/${s}/analytics/meme-battle${r(e)}`)}getNightOwlAnalysis(s,e){return n(`/sessions/${s}/analytics/night-owl${r(e)}`)}getRepeatAnalysis(s,e){return n(`/sessions/${s}/analytics/repeat${r(e)}`)}getMembers(s){return c(`/sessions/${s}/members`)}getMembersPaginated(s,e){const t=new URLSearchParams({page:String(e.page),pageSize:String(e.pageSize)});return e.search&&t.set("search",e.search),e.sortOrder&&t.set("sortOrder",e.sortOrder),c(`/sessions/${s}/members/paginated?${t}`)}getMemberNameHistory(s,e){return c(`/sessions/${s}/members/${e}/history`)}async updateMemberAliases(s,e,t){return(await u(`/sessions/${s}/members/${e}/aliases`,{aliases:t})).success}async mergeMembers(s,e,t){return(await g(`/sessions/${s}/members/merge`,{memberId1:e,memberId2:t})).success}async deleteMember(s,e){return(await m(`/sessions/${s}/members/${e}`)).success}getCatchphraseAnalysis(s,e){return n(`/sessions/${s}/analytics/catchphrase${r(e)}`)}getLanguagePreferenceAnalysis(s,e,t,a){const i=new URLSearchParams;return i.set("locale",e),t?.startTs&&i.set("startTs",String(t.startTs)),t?.endTs&&i.set("endTs",String(t.endTs)),t?.memberId&&i.set("memberId",String(t.memberId)),n(`/sessions/${s}/analytics/language-preference?${i}`)}getMentionAnalysis(s,e){return n(`/sessions/${s}/analytics/mention${r(e)}`)}getMentionGraph(s,e){return n(`/sessions/${s}/analytics/mention-graph${r(e)}`)}getClusterGraph(s,e,t){const a=new URLSearchParams;e?.startTs&&a.set("startTs",String(e.startTs)),e?.endTs&&a.set("endTs",String(e.endTs)),e?.memberId&&a.set("memberId",String(e.memberId)),t?.topEdges&&a.set("topEdges",String(t.topEdges)),t?.lookAhead&&a.set("lookAhead",String(t.lookAhead)),t?.decaySeconds&&a.set("decaySeconds",String(t.decaySeconds));const i=a.toString();return n(`/sessions/${s}/analytics/cluster${i?`?${i}`:""}`)}getLaughAnalysis(s,e,t){return n(`/sessions/${s}/analytics/laugh${r(e)}`)}getRelationshipStats(s,e,t){return n(`/sessions/${s}/analytics/relationship${r(e)}`)}executeSQL(s,e){return g(`/sessions/${s}/sql`,{sql:e})}getSchema(s){return c(`/sessions/${s}/schema`)}pluginQuery(s,e,t){return g(`/sessions/${s}/query`,{sql:e,params:t??[]})}}export{S as FetchDataAdapter};
1
+ import{L as c,S as m,U as u,M as g,V as n}from"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";function r(o){if(!o)return"";const s=new URLSearchParams;o.startTs&&s.set("startTs",String(o.startTs)),o.endTs&&s.set("endTs",String(o.endTs)),o.memberId&&s.set("memberId",String(o.memberId));const e=s.toString();return e?`?${e}`:""}class S{getSessions(){return c("/sessions")}getSession(s){return c(`/sessions/${s}`)}async deleteSession(s){return(await m(`/sessions/${s}`)).success}async renameSession(s,e){return(await u(`/sessions/${s}/name`,{name:e})).success}async updateSessionOwnerId(s,e){return(await u(`/sessions/${s}/owner`,{ownerId:e})).success}tryApplyOwnerProfile(s){return g(`/sessions/${s}/owner/apply-profile`,{})}setOwnerAndApplyProfile(s,e){return g(`/sessions/${s}/owner/select`,{ownerPlatformId:e})}async dismissOwnerPrompt(s){return(await g(`/sessions/${s}/owner/dismiss-prompt`,{})).success}getAvailableYears(s){return c(`/sessions/${s}/years`)}getTimeRange(s){return c(`/sessions/${s}/time-range`)}getMemberActivity(s,e){return n(`/sessions/${s}/stats/member-activity${r(e)}`)}getHourlyActivity(s,e){return n(`/sessions/${s}/stats/hourly${r(e)}`)}getDailyActivity(s,e){return n(`/sessions/${s}/stats/daily${r(e)}`)}getWeekdayActivity(s,e){return n(`/sessions/${s}/stats/weekday${r(e)}`)}getMonthlyActivity(s,e){return n(`/sessions/${s}/analytics/monthly-activity${r(e)}`)}getYearlyActivity(s,e){return n(`/sessions/${s}/analytics/yearly-activity${r(e)}`)}getMessageLengthDistribution(s,e){return n(`/sessions/${s}/analytics/message-length-distribution${r(e)}`)}getMessageTypeDistribution(s,e){return n(`/sessions/${s}/stats/message-types${r(e)}`)}getTextStats(s,e){return n(`/sessions/${s}/analytics/text-stats${r(e)}`)}getLongMessageCount(s,e,t){const a=new URLSearchParams;e?.startTs&&a.set("startTs",String(e.startTs)),e?.endTs&&a.set("endTs",String(e.endTs)),e?.memberId&&a.set("memberId",String(e.memberId)),t!=null&&a.set("minLength",String(t));const i=a.toString();return n(`/sessions/${s}/analytics/long-message-count${i?`?${i}`:""}`)}getMemberMonthlyTrend(s,e){return n(`/sessions/${s}/analytics/member-monthly-trend${r(e)}`)}getTextLengthPercentiles(s,e){return n(`/sessions/${s}/analytics/text-length-percentiles${r(e)}`)}getDragonKingAnalysis(s,e){return n(`/sessions/${s}/analytics/dragon-king${r(e)}`)}getDivingAnalysis(s,e){return n(`/sessions/${s}/analytics/diving${r(e)}`)}getCheckInAnalysis(s,e){return n(`/sessions/${s}/analytics/check-in${r(e)}`)}getMemeBattleAnalysis(s,e){return n(`/sessions/${s}/analytics/meme-battle${r(e)}`)}getNightOwlAnalysis(s,e){return n(`/sessions/${s}/analytics/night-owl${r(e)}`)}getRepeatAnalysis(s,e){return n(`/sessions/${s}/analytics/repeat${r(e)}`)}getMembers(s){return c(`/sessions/${s}/members`)}getMembersPaginated(s,e){const t=new URLSearchParams({page:String(e.page),pageSize:String(e.pageSize)});return e.search&&t.set("search",e.search),e.sortOrder&&t.set("sortOrder",e.sortOrder),c(`/sessions/${s}/members/paginated?${t}`)}getMemberNameHistory(s,e){return c(`/sessions/${s}/members/${e}/history`)}async updateMemberAliases(s,e,t){return(await u(`/sessions/${s}/members/${e}/aliases`,{aliases:t})).success}async mergeMembers(s,e,t){return(await g(`/sessions/${s}/members/merge`,{memberId1:e,memberId2:t})).success}async deleteMember(s,e){return(await m(`/sessions/${s}/members/${e}`)).success}getCatchphraseAnalysis(s,e){return n(`/sessions/${s}/analytics/catchphrase${r(e)}`)}getLanguagePreferenceAnalysis(s,e,t,a){const i=new URLSearchParams;return i.set("locale",e),t?.startTs&&i.set("startTs",String(t.startTs)),t?.endTs&&i.set("endTs",String(t.endTs)),t?.memberId&&i.set("memberId",String(t.memberId)),n(`/sessions/${s}/analytics/language-preference?${i}`)}getMentionAnalysis(s,e){return n(`/sessions/${s}/analytics/mention${r(e)}`)}getMentionGraph(s,e){return n(`/sessions/${s}/analytics/mention-graph${r(e)}`)}getClusterGraph(s,e,t){const a=new URLSearchParams;e?.startTs&&a.set("startTs",String(e.startTs)),e?.endTs&&a.set("endTs",String(e.endTs)),e?.memberId&&a.set("memberId",String(e.memberId)),t?.topEdges&&a.set("topEdges",String(t.topEdges)),t?.lookAhead&&a.set("lookAhead",String(t.lookAhead)),t?.decaySeconds&&a.set("decaySeconds",String(t.decaySeconds));const i=a.toString();return n(`/sessions/${s}/analytics/cluster${i?`?${i}`:""}`)}getLaughAnalysis(s,e,t){return n(`/sessions/${s}/analytics/laugh${r(e)}`)}getRelationshipStats(s,e,t){return n(`/sessions/${s}/analytics/relationship${r(e)}`)}executeSQL(s,e){return g(`/sessions/${s}/sql`,{sql:e})}getSchema(s){return c(`/sessions/${s}/schema`)}pluginQuery(s,e,t){return g(`/sessions/${s}/query`,{sql:e,params:t??[]})}}export{S as FetchDataAdapter};
@@ -1,4 +1,4 @@
1
- import{W as r,X as d}from"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";function c(){return d("data")}const u=`(SELECT mc.message_id FROM message_context mc
1
+ import{W as r,X as d}from"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";function c(){return d("data")}const u=`(SELECT mc.message_id FROM message_context mc
2
2
  WHERE mc.segment_id = segment.id ORDER BY mc.message_id LIMIT 1) as firstMessageId`;class S{async generate(e,t=1800){const s=await r(`/_web/sessions/${e}/generate-index`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({gapThreshold:t})});if(!s.ok)throw new Error(`Failed to generate session index: ${s.status}`);return(await s.json()).sessionCount}async generateIncremental(e,t=1800){const s=await r(`/_web/sessions/${e}/generate-incremental-index`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({gapThreshold:t})});if(!s.ok)throw new Error(`Failed to generate incremental session index: ${s.status}`);return(await s.json()).sessionCount}async hasIndex(e){return(await this.getStats(e)).hasIndex}async getStats(e){try{const s=(await c().pluginQuery(e,"SELECT COUNT(*) as cnt FROM segment",[]))[0]?.cnt??0;return{hasIndex:s>0,sessionCount:s,gapThreshold:1800}}catch{return{hasIndex:!1,sessionCount:0,gapThreshold:1800}}}async getAllIndexStats(){const e=await r("/_web/sessions/index-stats");return e.ok?await e.json():[]}async clear(e){return await r(`/_web/sessions/${e}/clear-index`,{method:"POST"}),!0}async updateGapThreshold(e,t){return!0}async getSessions(e){return c().pluginQuery(e,`SELECT id, start_ts as startTs, end_ts as endTs, message_count as messageCount, summary, ${u}
3
3
  FROM segment ORDER BY start_ts ASC`,[])}async getByTimeRange(e,t,s){return c().pluginQuery(e,`SELECT id, start_ts as startTs, end_ts as endTs, message_count as messageCount, summary, ${u}
4
4
  FROM segment WHERE start_ts >= ? AND end_ts <= ? ORDER BY start_ts ASC`,[t,s])}async getRecent(e,t){return c().pluginQuery(e,`SELECT id, start_ts as startTs, end_ts as endTs, message_count as messageCount, summary, ${u}
@@ -1 +1 @@
1
- import{L as s,Y as o,M as r,S as i}from"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class f{async hasConfig(){return s("/ai/llm/has-config")}async getConfigStore(){return s("/ai/llm/configs")}async getAllConfigs(){return(await this.getConfigStore()).configs}async getDefaultAssistantSlot(){return s("/ai/llm/default-assistant-slot")}async getFastModelSlot(){return s("/ai/llm/fast-model-slot")}async setDefaultAssistantModel(t,e){return o("/ai/llm/default-assistant-slot",{configId:t,modelId:e})}async setFastModel(t){return o("/ai/llm/fast-model-slot",t)}async getProviders(){return s("/ai/llm/providers")}async getProviderRegistry(){return s("/ai/llm/provider-registry")}async getModelCatalog(){return s("/ai/llm/model-catalog")}async addConfig(t){return r("/ai/llm/configs",t)}async updateConfig(t,e){return o(`/ai/llm/configs/${t}`,e)}async deleteConfig(t){return i(`/ai/llm/configs/${t}`)}async validateApiKey(t,e,a,l,n,m){return r("/ai/llm/validate-key",{provider:t,apiKey:e,baseUrl:a,model:l,apiFormat:n,configId:m})}async fetchRemoteModels(t,e,a,l,n){return r("/ai/llm/remote-models",{provider:t,apiKey:e,baseUrl:a,apiFormat:l,configId:n})}async addCustomProvider(t){return r("/ai/llm/custom-providers",t)}async updateCustomProvider(t,e){return o(`/ai/llm/custom-providers/${t}`,e)}async deleteCustomProvider(t){return i(`/ai/llm/custom-providers/${t}`)}async addCustomModel(t){return r("/ai/llm/custom-models",t)}async updateCustomModel(t,e,a){return o(`/ai/llm/custom-models/${t}/${encodeURIComponent(e)}`,a)}async deleteCustomModel(t,e){return i(`/ai/llm/custom-models/${t}/${encodeURIComponent(e)}`)}}export{f as FetchLLMAdapter};
1
+ import{L as s,Y as o,M as r,S as i}from"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class f{async hasConfig(){return s("/ai/llm/has-config")}async getConfigStore(){return s("/ai/llm/configs")}async getAllConfigs(){return(await this.getConfigStore()).configs}async getDefaultAssistantSlot(){return s("/ai/llm/default-assistant-slot")}async getFastModelSlot(){return s("/ai/llm/fast-model-slot")}async setDefaultAssistantModel(t,e){return o("/ai/llm/default-assistant-slot",{configId:t,modelId:e})}async setFastModel(t){return o("/ai/llm/fast-model-slot",t)}async getProviders(){return s("/ai/llm/providers")}async getProviderRegistry(){return s("/ai/llm/provider-registry")}async getModelCatalog(){return s("/ai/llm/model-catalog")}async addConfig(t){return r("/ai/llm/configs",t)}async updateConfig(t,e){return o(`/ai/llm/configs/${t}`,e)}async deleteConfig(t){return i(`/ai/llm/configs/${t}`)}async validateApiKey(t,e,a,l,n,m){return r("/ai/llm/validate-key",{provider:t,apiKey:e,baseUrl:a,model:l,apiFormat:n,configId:m})}async fetchRemoteModels(t,e,a,l,n){return r("/ai/llm/remote-models",{provider:t,apiKey:e,baseUrl:a,apiFormat:l,configId:n})}async addCustomProvider(t){return r("/ai/llm/custom-providers",t)}async updateCustomProvider(t,e){return o(`/ai/llm/custom-providers/${t}`,e)}async deleteCustomProvider(t){return i(`/ai/llm/custom-providers/${t}`)}async addCustomModel(t){return r("/ai/llm/custom-models",t)}async updateCustomModel(t,e,a){return o(`/ai/llm/custom-models/${t}/${encodeURIComponent(e)}`,a)}async deleteCustomModel(t,e){return i(`/ai/llm/custom-models/${t}/${encodeURIComponent(e)}`)}}export{f as FetchLLMAdapter};
@@ -1,4 +1,4 @@
1
- import{X as _}from"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";const T=`
1
+ import{X as _}from"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";const T=`
2
2
  msg.id,
3
3
  m.id as senderId,
4
4
  COALESCE(m.group_nickname, m.account_name, m.platform_id) as senderName,
@@ -1 +1 @@
1
- import{L as t,M as e}from"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class h{async getInfo(){return t("/cache/info")}async clear(a){return e("/cache/clear",{cacheId:a})}async getDataDir(){return t("/cache/data-dir")}async setDataDir(a,r=!0){return e("/cache/data-dir",{path:a,migrate:r})}async getLatestImportLog(){return t("/cache/latest-import-log")}async saveToDownloads(a,r){return e("/cache/save-to-downloads",{filename:a,dataUrl:r})}async openDir(a){return e("/cache/open-dir",{cacheId:a})}async showInFolder(a){return e("/cache/show-in-folder",{filePath:a})}}export{h as FetchCacheAdapter};
1
+ import{L as t,M as e}from"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class h{async getInfo(){return t("/cache/info")}async clear(a){return e("/cache/clear",{cacheId:a})}async getDataDir(){return t("/cache/data-dir")}async setDataDir(a,r=!0){return e("/cache/data-dir",{path:a,migrate:r})}async getLatestImportLog(){return t("/cache/latest-import-log")}async saveToDownloads(a,r){return e("/cache/save-to-downloads",{filename:a,dataUrl:r})}async openDir(a){return e("/cache/open-dir",{cacheId:a})}async showInFolder(a){return e("/cache/show-in-folder",{filePath:a})}}export{h as FetchCacheAdapter};
@@ -1 +1 @@
1
- import{L as a,M as s,Y as i,S as n}from"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class p{async getAll(){return a("/ai/assistants")}async getConfig(t){try{return await a(`/ai/assistants/${t}`)}catch{return null}}async create(t){return s("/ai/assistants",t)}async update(t,r){return i(`/ai/assistants/${t}`,r)}async delete(t){return n(`/ai/assistants/${t}`)}async reset(t){return s(`/ai/assistants/${t}/reset`,{})}async importFromMd(t){return s("/ai/assistants/import",{rawMd:t})}async getBuiltinCatalog(){return[]}async importBuiltin(t){return s("/ai/assistants/import-builtin",{builtinId:t})}async reimport(t){return s(`/ai/assistants/${t}/reimport`,{})}async getBuiltinToolCatalog(){return a("/ai/tools/catalog")}}export{p as FetchAssistantAdapter};
1
+ import{L as a,M as s,Y as i,S as n}from"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class p{async getAll(){return a("/ai/assistants")}async getConfig(t){try{return await a(`/ai/assistants/${t}`)}catch{return null}}async create(t){return s("/ai/assistants",t)}async update(t,r){return i(`/ai/assistants/${t}`,r)}async delete(t){return n(`/ai/assistants/${t}`)}async reset(t){return s(`/ai/assistants/${t}/reset`,{})}async importFromMd(t){return s("/ai/assistants/import",{rawMd:t})}async getBuiltinCatalog(){return[]}async importBuiltin(t){return s("/ai/assistants/import-builtin",{builtinId:t})}async reimport(t){return s(`/ai/assistants/${t}/reimport`,{})}async getBuiltinToolCatalog(){return a("/ai/tools/catalog")}}export{p as FetchAssistantAdapter};
@@ -1 +1 @@
1
- import{L as r,U as n}from"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class f{getPreferences(){return r("/preferences")}savePreferences(e){return n("/preferences",e)}getUiConfig(){return r("/preferences/ui-config")}saveUiConfig(e){return n("/preferences/ui-config",e)}async getLocale(){return(await r("/preferences/locale")).lang}saveLocale(e){return n("/preferences/locale",{lang:e})}}export{f as FetchPreferencesAdapter};
1
+ import{L as r,U as n}from"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class f{getPreferences(){return r("/preferences")}savePreferences(e){return n("/preferences",e)}getUiConfig(){return r("/preferences/ui-config")}saveUiConfig(e){return n("/preferences/ui-config",e)}async getLocale(){return(await r("/preferences/locale")).lang}saveLocale(e){return n("/preferences/locale",{lang:e})}}export{f as FetchPreferencesAdapter};
@@ -1 +1 @@
1
- import{L as r,M as a,Y as u,S as l,W as h}from"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";const g="This feature is not available in web mode";class p{async getAIChat(e){try{return await r(`/ai/chats/${e}`)}catch{return null}}async getAIChats(e){return r(`/ai/chats?sessionId=${encodeURIComponent(e)}`)}async createAIChat(e,t,s){return a("/ai/chats",{sessionId:e,title:t,assistantId:s})}async updateAIChatTitle(e,t){return u(`/ai/chats/${e}/title`,{title:t})}async deleteAIChat(e){return l(`/ai/chats/${e}`)}async getMessages(e){return r(`/ai/chats/${e}/messages`)}async addMessage(e,t,s,c,n,o,i){return a(`/ai/chats/${e}/messages`,{role:t,content:s,dataKeywords:c,dataMessageCount:n,contentBlocks:o,tokenUsage:i})}async deleteMessagesFrom(e,t){return a(`/ai/chats/${e}/messages/${t}/delete-from`,{})}async forkAIChat(e,t,s){return a(`/ai/chats/${e}/fork`,{upToMessageId:t,title:s})}async updateMessageContent(e,t){await u(`/ai/messages/${e}/content`,{content:t})}async deleteAndRelinkMessage(e,t){await a(`/ai/chats/${e}/messages/${t}/delete-relink`,{})}async insertMessageAfter(e,t,s,c,n,o){return a(`/ai/chats/${e}/messages/insert-after`,{afterMessageId:t,role:s,content:c,contentBlocks:n,tokenUsage:o})}async getAIChatTokenUsage(e){return r(`/ai/chats/${e}/token-usage`)}async estimateContextTokens(e){try{return await r(`/ai/chats/${e}/estimate-tokens`)}catch(t){return{success:!1,tokens:0,error:t instanceof Error?t.message:String(t)}}}async exportFilterResultToFile(e){try{const t=await h(`/_web/sessions/${e.sessionId}/export`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionName:e.sessionName,format:e.format||"txt",timeFilter:e.timeFilter})});if(!t.ok)return{success:!1,error:(await t.json().catch(()=>null))?.error||`HTTP ${t.status}`};const s=await t.blob(),c=t.headers.get("Content-Disposition")?.match(/filename="?(.+?)"?$/)?.[1]||`${e.sessionName}_export.txt`,n=URL.createObjectURL(s),o=document.createElement("a");return o.href=n,o.download=decodeURIComponent(c),o.click(),URL.revokeObjectURL(n),{success:!0}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}onExportProgress(e){return()=>{}}async executeAiSQL(e){return a("/ai/debug/execute-sql",{sql:e})}async getAiSchema(){return r("/ai/debug/schema")}async clearDebugContext(){return a("/ai/debug/clear-debug-context",{})}async getToolCatalog(){try{return await r("/ai/tools/full-catalog")}catch{return r("/ai/tools/catalog")}}async executeTool(e,t,s,c){try{return await a("/ai/tools/execute",{testId:e,toolName:t,params:s,sessionId:c})}catch(n){return{success:!1,error:String(n)}}}async cancelToolTest(e){try{return await a("/ai/tools/cancel",{testId:e})}catch{return{success:!1}}}async getDefaultDesensitizeRules(e){try{return await r(`/ai/desensitize-rules/defaults?locale=${encodeURIComponent(e)}`)}catch{return[]}}async mergeDesensitizeRules(e,t,s={}){try{return await a("/ai/desensitize-rules/merge",{existingRules:e,locale:t,overrides:s})}catch{return e}}async showAiLogFile(){return{success:!1,error:g}}}export{p as FetchAIAdapter};
1
+ import{L as r,M as a,Y as u,S as l,W as h}from"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";const g="This feature is not available in web mode";class p{async getAIChat(e){try{return await r(`/ai/chats/${e}`)}catch{return null}}async getAIChats(e){return r(`/ai/chats?sessionId=${encodeURIComponent(e)}`)}async createAIChat(e,t,s){return a("/ai/chats",{sessionId:e,title:t,assistantId:s})}async updateAIChatTitle(e,t){return u(`/ai/chats/${e}/title`,{title:t})}async deleteAIChat(e){return l(`/ai/chats/${e}`)}async getMessages(e){return r(`/ai/chats/${e}/messages`)}async addMessage(e,t,s,c,n,o,i){return a(`/ai/chats/${e}/messages`,{role:t,content:s,dataKeywords:c,dataMessageCount:n,contentBlocks:o,tokenUsage:i})}async deleteMessagesFrom(e,t){return a(`/ai/chats/${e}/messages/${t}/delete-from`,{})}async forkAIChat(e,t,s){return a(`/ai/chats/${e}/fork`,{upToMessageId:t,title:s})}async updateMessageContent(e,t){await u(`/ai/messages/${e}/content`,{content:t})}async deleteAndRelinkMessage(e,t){await a(`/ai/chats/${e}/messages/${t}/delete-relink`,{})}async insertMessageAfter(e,t,s,c,n,o){return a(`/ai/chats/${e}/messages/insert-after`,{afterMessageId:t,role:s,content:c,contentBlocks:n,tokenUsage:o})}async getAIChatTokenUsage(e){return r(`/ai/chats/${e}/token-usage`)}async estimateContextTokens(e){try{return await r(`/ai/chats/${e}/estimate-tokens`)}catch(t){return{success:!1,tokens:0,error:t instanceof Error?t.message:String(t)}}}async exportFilterResultToFile(e){try{const t=await h(`/_web/sessions/${e.sessionId}/export`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionName:e.sessionName,format:e.format||"txt",timeFilter:e.timeFilter})});if(!t.ok)return{success:!1,error:(await t.json().catch(()=>null))?.error||`HTTP ${t.status}`};const s=await t.blob(),c=t.headers.get("Content-Disposition")?.match(/filename="?(.+?)"?$/)?.[1]||`${e.sessionName}_export.txt`,n=URL.createObjectURL(s),o=document.createElement("a");return o.href=n,o.download=decodeURIComponent(c),o.click(),URL.revokeObjectURL(n),{success:!0}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}onExportProgress(e){return()=>{}}async executeAiSQL(e){return a("/ai/debug/execute-sql",{sql:e})}async getAiSchema(){return r("/ai/debug/schema")}async clearDebugContext(){return a("/ai/debug/clear-debug-context",{})}async getToolCatalog(){try{return await r("/ai/tools/full-catalog")}catch{return r("/ai/tools/catalog")}}async executeTool(e,t,s,c){try{return await a("/ai/tools/execute",{testId:e,toolName:t,params:s,sessionId:c})}catch(n){return{success:!1,error:String(n)}}}async cancelToolTest(e){try{return await a("/ai/tools/cancel",{testId:e})}catch{return{success:!1}}}async getDefaultDesensitizeRules(e){try{return await r(`/ai/desensitize-rules/defaults?locale=${encodeURIComponent(e)}`)}catch{return[]}}async mergeDesensitizeRules(e,t,s={}){try{return await a("/ai/desensitize-rules/merge",{existingRules:e,locale:t,overrides:s})}catch{return e}}async showAiLogFile(){return{success:!1,error:g}}}export{p as FetchAIAdapter};
@@ -1 +1 @@
1
- import{L as i,M as r,Y as s,S as l}from"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class p{async getAll(){return i("/ai/skills")}async getConfig(t){try{return await i(`/ai/skills/${t}`)}catch{return null}}async create(t){return r("/ai/skills",{rawMd:t})}async update(t,a){return s(`/ai/skills/${t}`,{rawMd:a})}async delete(t){return l(`/ai/skills/${t}`)}async importFromMd(t){return r("/ai/skills/import",{rawMd:t})}async importBuiltin(t){return r("/ai/skills/import-builtin",{builtinId:t})}async reimport(t){return r(`/ai/skills/${t}/reimport`,{})}async getBuiltinCatalog(){try{return await i("/ai/skills/builtin-catalog")}catch{return[]}}}export{p as FetchSkillAdapter};
1
+ import{L as i,M as r,Y as s,S as l}from"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";class p{async getAll(){return i("/ai/skills")}async getConfig(t){try{return await i(`/ai/skills/${t}`)}catch{return null}}async create(t){return r("/ai/skills",{rawMd:t})}async update(t,a){return s(`/ai/skills/${t}`,{rawMd:a})}async delete(t){return l(`/ai/skills/${t}`)}async importFromMd(t){return r("/ai/skills/import",{rawMd:t})}async importBuiltin(t){return r("/ai/skills/import-builtin",{builtinId:t})}async reimport(t){return r(`/ai/skills/${t}/reimport`,{})}async getBuiltinCatalog(){try{return await i("/ai/skills/builtin-catalog")}catch{return[]}}}export{p as FetchSkillAdapter};
@@ -1,3 +1,3 @@
1
- import{W as d,Z as f,L as h}from"./index-B3mDjury.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";async function w(y,s,o){const t=y.body?.getReader();if(!t)return s;const e=new TextDecoder;let r="",n=s;for(;;){const{done:u,value:m}=await t.read();if(u)break;r+=e.decode(m,{stream:!0});const p=r.split(`
1
+ import{W as d,Z as f,L as h}from"./index-DR78oafF.js";import"./vendor-reka-ui-mMvma1EP.js";import"./vendor-nuxt-ui-Zy8txNdC.js";import"./vendor-snapdom-XnBoh1gd.js";async function w(y,s,o){const t=y.body?.getReader();if(!t)return s;const e=new TextDecoder;let r="",n=s;for(;;){const{done:u,value:m}=await t.read();if(u)break;r+=e.decode(m,{stream:!0});const p=r.split(`
2
2
  `);r=p.pop()||"";let i="";for(const a of p)if(a.startsWith("event: "))i=a.slice(7).trim();else if(a.startsWith("data: ")){const c=JSON.parse(a.slice(6));i==="progress"?o?.(c):(i==="done"||i==="error")&&(n=c),i=""}}return n}class F{async importFile(s,o,t){if(typeof s=="string")return{success:!1,error:"File path import is not supported in Web mode"};const e=new FormData;e.append("file",s),o?.formatId&&e.append("formatId",o.formatId),o?.chatIndex!==void 0&&e.append("chatIndex",String(o.chatIndex));const r=await d(`${f()}/import`,{method:"POST",body:e});if(!r.ok){const n=await r.text();return{success:!1,error:`HTTP ${r.status}: ${n}`}}return w(r,{success:!1,error:"Unknown error"},t)}async detectFormat(s){if(typeof s=="string")return null;const o=new FormData;o.append("file",s);const t=await d(`${f()}/detect-format`,{method:"POST",body:o});return t.ok?(await t.json()).format:null}async scanMultiChatFile(s){if(typeof s=="string")return[];const o=new FormData;o.append("file",s);const t=await d(`${f()}/scan-multi-chat`,{method:"POST",body:o});return t.ok?(await t.json()).chats:[]}getSupportedFormats(){return h("/supported-formats")}async importDemo(s,o){return new Promise(t=>{d(`${f()}/demo/import`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:s})}).then(async e=>{if(!e.ok||!e.body){t({success:!1,error:`HTTP ${e.status}`});return}const r=e.body.getReader(),n=new TextDecoder;let u="";for(;;){const{done:m,value:p}=await r.read();if(m)break;u+=n.decode(p,{stream:!0});const i=u.split(`
3
3
  `);u=i.pop()||"";let a="";for(const c of i)if(c.startsWith("event: "))a=c.slice(7).trim();else if(c.startsWith("data: ")){const l=JSON.parse(c.slice(6));if(a==="progress")(l.stage==="downloading"||l.stage==="importing")&&o?.({stage:l.stage});else if(a==="result"){t(l);return}a=""}}t({success:!1,error:"Stream ended without result"})}).catch(e=>t({success:!1,error:String(e)}))})}async analyzeIncrementalImport(s,o){if(typeof o=="string")return{newMessageCount:0,duplicateCount:0,totalInFile:0,error:"File path not supported in Web mode"};const t=new FormData;t.append("file",o);const e=await d(`${f()}/sessions/${s}/import/incremental/analyze`,{method:"POST",body:t});if(!e.ok){const r=await e.text();return{newMessageCount:0,duplicateCount:0,totalInFile:0,error:`HTTP ${e.status}: ${r}`}}return await e.json()}async incrementalImport(s,o,t){if(typeof o=="string")return{success:!1,newMessageCount:0,error:"File path not supported in Web mode"};const e=new FormData;e.append("file",o);const r=await d(`${f()}/sessions/${s}/import/incremental`,{method:"POST",body:e});if(!r.ok){const n=await r.text();return{success:!1,newMessageCount:0,error:`HTTP ${r.status}: ${n}`}}return w(r,{success:!1,newMessageCount:0,error:"Unknown error"},t)}async importDirectory(s,o,t){if(typeof s=="string")return{success:!1,error:"Directory path import is not supported in Web mode"};if(s.length===0)return{success:!1,error:"No files in directory"};const e=new FormData;for(const n of s)e.append("files",n),e.append("relativePaths",n.webkitRelativePath||n.name);const r=await d(`${f()}/import-directory`,{method:"POST",body:e});if(!r.ok){const n=await r.text();return{success:!1,error:`HTTP ${r.status}: ${n}`}}return w(r,{success:!1,error:"Unknown error"},t)}}export{F as FetchImportAdapter};