var w=(d,i,r)=>new Promise((p,f)=>{var x=s=>{try{y(r.next(s))}catch(o){f(o)}},K=s=>{try{y(r.throw(s))}catch(o){f(o)}},y=s=>s.done?p(s.value):Promise.resolve(s.value).then(x,K);y((r=r.apply(d,i)).next())});import{b as a,M as ue,g as O,q as ce,S as b,a2 as de,a3 as pe,O as u,o as M,c as fe,a as g,x as n,C as D,j,d as C,L as B,u as T,W as me,B as c,t as _,f as ge,a4 as _e,a5 as ye,a6 as ve}from"./index-1786807848259.js";import{_ as be}from"./_plugin-vue_export-helper-c27b6911-1786807848259.js";var he={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 01755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 01512.1 856a342.24 342.24 0 01-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 00-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 00-8-8.2z"}}]},name:"sync",theme:"outlined"};const Se=he;function E(d){for(var i=1;iJSON.stringify(o.snapshot,null,2)),W=O(()=>y.apiKeyConfigured?`已配置 ${y.apiKeyMasked||""},留空不修改`:"请输入 DeepSeek API Key"),F=O(()=>{var e;const t=(e=o.status)==null?void 0:e.state;return t==="success"?"刷新正常":t==="refreshing"?"刷新中":t==="failed"?"最近刷新失败":t==="unknown"?"状态未知":o.available?"可用":"尚未生成"}),R=O(()=>{var e;const t=(e=o.status)==null?void 0:e.state;return t==="success"?"green":t==="refreshing"?"blue":t==="failed"?"red":"default"}),G=O(()=>window.innerWidth<900?1:4);ce(L);function L(){return w(this,null,function*(){var m;i.value=!0,r.value=!0;const e=(yield Promise.allSettled([H(),P()])).find(k=>k.status==="rejected");e&&b.error(((m=e.reason)==null?void 0:m.message)||"后台配置读取失败。"),i.value=!1,r.value=!1})}function H(){return w(this,null,function*(){const e=(yield de()).config||{};s.enabled=!!e.enabled,s.model=e.model||"deepseek-chat",s.url=e.url||"https://api.deepseek.com/chat/completions",s.apiKey="",Object.assign(y,e)})}function P(){return w(this,null,function*(){const t=yield pe();Object.assign(o,{available:!!t.available,refreshIntervalMinutes:t.refreshIntervalMinutes||30,status:t.status||{state:"idle"},summary:t.summary||{},snapshot:t.snapshot||null})})}function U(){return{enabled:s.enabled,model:s.model.trim(),url:s.url.trim(),apiKey:s.apiKey.trim()}}function Q(){return w(this,null,function*(){p.value=!0;try{const t=yield _e(U()),e=t.config||{};Object.assign(y,e),s.enabled=!!e.enabled,s.model=e.model||s.model,s.url=e.url||s.url,s.apiKey="",b.success(t.message||"模型配置已保存。")}catch(t){b.error(t.message||"模型配置保存失败。")}finally{p.value=!1}})}function X(){return w(this,null,function*(){var t;f.value=!0;try{const m=(t=(yield ye(U())).result)==null?void 0:t.elapsedMillis;b.success(m?`连接成功,耗时 ${m} 毫秒。`:"DeepSeek 连接成功。")}catch(e){b.error(e.message||"DeepSeek 连接测试失败。")}finally{f.value=!1}})}function Y(){return w(this,null,function*(){x.value=!0;try{const t=yield ve();b.success(t.message||"上下文刷新成功。"),yield P()}catch(t){b.error(t.message||"上下文刷新失败,已保留上一版。"),yield P().catch(()=>{})}finally{x.value=!1}})}function Z(){return w(this,null,function*(){try{yield navigator.clipboard.writeText(z.value),b.success("上下文 JSON 已复制。")}catch(t){b.error("复制失败,请在内容区域手动选择。")}})}function $(t){if(!t)return"--";const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString("zh-CN",{hour12:!1})}function ee(t){const e=Number(t);return Number.isFinite(e)?`${e.toLocaleString("zh-CN")} 字符`:"--"}return(t,e)=>{const m=u("a-button"),k=u("a-alert"),V=u("a-tag"),ae=u("a-switch"),N=u("a-form-item"),A=u("a-col"),q=u("a-input"),te=u("a-input-password"),ne=u("a-row"),se=u("a-form"),J=u("a-card"),le=u("a-space"),h=u("a-descriptions-item"),oe=u("a-descriptions"),re=u("a-collapse-panel"),ie=u("a-collapse");return M(),fe("section",xe,[g("header",ke,[e[7]||(e[7]=g("div",null,[g("h1",null,"智慧管理配置"),g("p",null,"配置 DeepSeek,并管理智慧分析使用的全量业务上下文。")],-1)),a(m,{loading:i.value,onClick:L},{icon:n(()=>[a(T(me))]),default:n(()=>[e[6]||(e[6]=c(" 重新读取 ",-1))]),_:1},8,["loading"])]),y.storageAvailable===!1?(M(),D(k,{key:0,type:"warning","show-icon":"",message:"模型配置表尚未初始化",description:"请先执行 14-smart-context-admin 数据迁移;当前模型调用仍使用服务环境配置。"})):j("",!0),a(J,{class:"settings-card",title:"DeepSeek 模型配置",bordered:!1,loading:i.value},{extra:n(()=>[a(V,{color:s.enabled?"green":"default"},{default:n(()=>[c(_(s.enabled?"已启用":"已停用"),1)]),_:1},8,["color"])]),default:n(()=>[a(se,{layout:"vertical",class:"model-form",onSubmit:e[4]||(e[4]=ge(()=>{},["prevent"]))},{default:n(()=>[a(ne,{gutter:20},{default:n(()=>[a(A,{xs:24,lg:12},{default:n(()=>[a(N,{label:"启用 DeepSeek"},{default:n(()=>[g("div",Oe,[a(ae,{checked:s.enabled,"onUpdate:checked":e[0]||(e[0]=v=>s.enabled=v)},null,8,["checked"]),e[8]||(e[8]=g("span",null,"关闭后智慧管理不会向外部模型发送业务快照。",-1))])]),_:1})]),_:1}),a(A,{xs:24,lg:12},{default:n(()=>[a(N,{label:"模型名称",required:""},{default:n(()=>[a(q,{value:s.model,"onUpdate:value":e[1]||(e[1]=v=>s.model=v),placeholder:"例如 deepseek-chat",maxlength:120},null,8,["value"])]),_:1})]),_:1}),a(A,{xs:24,lg:12},{default:n(()=>[a(N,{label:"API Key"},{default:n(()=>[a(te,{value:s.apiKey,"onUpdate:value":e[2]||(e[2]=v=>s.apiKey=v),placeholder:W.value,autocomplete:"new-password",maxlength:500},null,8,["value","placeholder"]),e[9]||(e[9]=g("div",{class:"field-help"},"留空表示保留现有密钥;后台不会返回完整密钥。",-1))]),_:1})]),_:1}),a(A,{xs:24,lg:12},{default:n(()=>[a(N,{label:"接口地址",required:""},{default:n(()=>[a(q,{value:s.url,"onUpdate:value":e[3]||(e[3]=v=>s.url=v),placeholder:"https://api.deepseek.com/chat/completions"},null,8,["value"])]),_:1})]),_:1})]),_:1}),g("div",Me,[a(m,{loading:f.value,onClick:X},{default:n(()=>[...e[10]||(e[10]=[c("测试连接",-1)])]),_:1},8,["loading"]),a(m,{type:"primary",loading:p.value,disabled:y.storageAvailable===!1,onClick:Q},{default:n(()=>[...e[11]||(e[11]=[c(" 保存配置 ",-1)])]),_:1},8,["loading","disabled"])])]),_:1})]),_:1},8,["loading"]),a(J,{class:"settings-card context-card",title:"智慧管理上下文",bordered:!1,loading:r.value},{extra:n(()=>[a(le,null,{default:n(()=>[a(V,{color:R.value},{default:n(()=>[c(_(F.value),1)]),_:1},8,["color"]),a(m,{type:"primary",loading:x.value,onClick:Y},{icon:n(()=>[a(T(Ce))]),default:n(()=>[e[12]||(e[12]=c(" 立即刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),default:n(()=>{var v;return[((v=o.status)==null?void 0:v.state)==="failed"?(M(),D(k,{key:0,type:"error","show-icon":"",message:o.status.error||"最近一次刷新失败,当前仍使用上一份成功快照。",description:"刷新失败不会覆盖上一份成功快照。",class:"context-alert"},null,8,["message"])):o.available?j("",!0):(M(),D(k,{key:1,type:"info","show-icon":"",message:"上下文尚未生成",description:"点击“立即刷新”生成第一份全量业务快照。",class:"context-alert"})),a(oe,{bordered:"",column:G.value,size:"small",class:"context-summary"},{default:n(()=>[a(h,{label:"快照版本"},{default:n(()=>{var l;return[c(_(((l=o.summary)==null?void 0:l.version)||"--"),1)]}),_:1}),a(h,{label:"生成时间"},{default:n(()=>{var l;return[c(_($((l=o.summary)==null?void 0:l.generatedAt)),1)]}),_:1}),a(h,{label:"数据截至"},{default:n(()=>{var l;return[c(_($((l=o.summary)==null?void 0:l.dataAsOf)),1)]}),_:1}),a(h,{label:"刷新周期"},{default:n(()=>[c("每 "+_(o.refreshIntervalMinutes||30)+" 分钟",1)]),_:1}),a(h,{label:"业务模块"},{default:n(()=>{var l,S;return[c(_((S=(l=o.summary)==null?void 0:l.moduleCount)!=null?S:"--"),1)]}),_:1}),a(h,{label:"数据集"},{default:n(()=>{var l,S;return[c(_((S=(l=o.summary)==null?void 0:l.datasetCount)!=null?S:"--"),1)]}),_:1}),a(h,{label:"汇总记录"},{default:n(()=>{var l,S;return[c(_((S=(l=o.summary)==null?void 0:l.rowCount)!=null?S:"--"),1)]}),_:1}),a(h,{label:"上下文大小"},{default:n(()=>{var l;return[c(_(ee((l=o.summary)==null?void 0:l.charCount)),1)]}),_:1})]),_:1},8,["column"]),o.snapshot?(M(),D(ie,{key:2,activeKey:K.value,"onUpdate:activeKey":e[5]||(e[5]=l=>K.value=l),class:"snapshot-collapse"},{default:n(()=>[a(re,{key:"snapshot",header:"查看完整上下文内容"},{default:n(()=>[g("div",Ke,[e[14]||(e[14]=g("span",null,"这里只展示服务端已过滤的安全业务快照,不包含历史对话和敏感明细。",-1)),a(m,{size:"small",onClick:Z},{default:n(()=>[...e[13]||(e[13]=[c("复制 JSON",-1)])]),_:1})]),g("pre",Ne,_(z.value),1)]),_:1})]),_:1},8,["activeKey"])):j("",!0)]}),_:1},8,["loading"])])}}},Be=be(Ae,[["__scopeId","data-v-958d95b5"]]);export{Be as default};