coding-tool-x 3.9.3-260928 → 3.9.3-260930
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.
- package/dist/web/assets/{AgentsDrawer-x29vGIIi.js → AgentsDrawer-K97azdxi.js} +1 -1
- package/dist/web/assets/{Analytics-BJbR6XJO.js → Analytics-CNPDGLNe.js} +1 -1
- package/dist/web/assets/{AssetPathField-2W-16zgR.js → AssetPathField-BzwSZryS.js} +1 -1
- package/dist/web/assets/{ChatHistoryDrawer-C1URzQ_4.js → ChatHistoryDrawer-BVbfqK-u.js} +1 -1
- package/dist/web/assets/{CollapseItem-DjkOkbwE.js → CollapseItem-DgBQWlsJ.js} +1 -1
- package/dist/web/assets/{CommandsDrawer-DcnfrHC4.js → CommandsDrawer-885BtWjs.js} +1 -1
- package/dist/web/assets/{ConfigExportDrawer-CKwG_RGJ.js → ConfigExportDrawer-jn00iZWm.js} +1 -1
- package/dist/web/assets/{ConfigTemplates-C1tNpfzi.js → ConfigTemplates-DoUG3mOo.js} +1 -1
- package/dist/web/assets/{ConfigTemplatesDrawer-gZNPbcUR.js → ConfigTemplatesDrawer-BQ8h43E6.js} +1 -1
- package/dist/web/assets/{ConfigTemplatesPanel-C-Fy53Qo.js → ConfigTemplatesPanel-VCghYqMx.js} +1 -1
- package/dist/web/assets/{FavoritesDrawer-Bp8FYHPk.js → FavoritesDrawer-CKjlAe4O.js} +1 -1
- package/dist/web/assets/{GatewayConvertDrawer-j5IJzb2Y.js → GatewayConvertDrawer-Cin2yotJ.js} +1 -1
- package/dist/web/assets/{Home-2MAvBnml.js → Home-ui0qANow.js} +1 -1
- package/dist/web/assets/{MarkdownEditor-BA_PcLed.js → MarkdownEditor-LiZaVnJu.js} +1 -1
- package/dist/web/assets/{McpDrawer-DAep5PP_.js → McpDrawer-ClaSJOLK.js} +1 -1
- package/dist/web/assets/{McpFormDrawer-BRm-hzv1.js → McpFormDrawer-w1EJUIsa.js} +1 -1
- package/dist/web/assets/{PluginManager-C2yY8-FP.js → PluginManager-C_Yr9wyj.js} +1 -1
- package/dist/web/assets/{PluginsDrawer-CxKnWzTO.js → PluginsDrawer-CUnoai6T.js} +1 -1
- package/dist/web/assets/{PluginsPanel-DtbXSoXu.js → PluginsPanel-CNShDbDF.js} +1 -1
- package/dist/web/assets/{ProjectList-Cb25pa2s.js → ProjectList-CZ2ZwKRn.js} +1 -1
- package/dist/web/assets/{PromptsDrawer-D39OJVRP.js → PromptsDrawer-BhB_q-KZ.js} +1 -1
- package/dist/web/assets/{RecentSessionsDrawer-DkCjc4kS.js → RecentSessionsDrawer-BZ8YKqwq.js} +1 -1
- package/dist/web/assets/{SessionCard-5Mwig8zy.js → SessionCard-CEFt-CNZ.js} +1 -1
- package/dist/web/assets/{SessionList-DVkIlraF.js → SessionList-CTO4NiMY.js} +1 -1
- package/dist/web/assets/{SettingsDrawer-Cr9qZDgO.js → SettingsDrawer-BiOXu9lZ.js} +1 -1
- package/dist/web/assets/{SkillManager-D935sPSV.js → SkillManager-Bf87paMe.js} +1 -1
- package/dist/web/assets/{SkillsDrawer-D1_3j74b.js → SkillsDrawer-BwkyaeRk.js} +1 -1
- package/dist/web/assets/{SkillsPanel-6SehnNG8.js → SkillsPanel-obdDEThm.js} +1 -1
- package/dist/web/assets/{Upload-38eKB6wv.js → Upload-DdjJgjTW.js} +1 -1
- package/dist/web/assets/{WorkspaceDrawer-Bkfmlr5M.js → WorkspaceDrawer-UWKpEUXI.js} +1 -1
- package/dist/web/assets/{WorkspaceManager-DFVQ5YoE.js → WorkspaceManager-rKzSKzKC.js} +1 -1
- package/dist/web/assets/{WorkspacePanel-CEnogXEv.js → WorkspacePanel-BCMcITVD.js} +1 -1
- package/dist/web/assets/{index-p-yggtLj.css → index-DvoMGWQv.css} +1 -1
- package/dist/web/assets/{index-CCATqHAD.js → index-aW6itxZg.js} +2 -2
- package/dist/web/assets/{useResponsiveDrawer-BWRBXImg.js → useResponsiveDrawer-Cn6gH3VG.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/src/config/model-metadata.json +66 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,s as a,t as s}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as t,D as l,K as i,O as n,S as r,W as u,Z as c,_t as o,at as d,b as p,et as v,g as m,ht as f,mt as y,st as g,w as b,x as k}from"./vue-vendor-BqZbbXHA.js";import{t as h}from"./client-oU6RT-6I.js";import{$ as _,Nt as w,Q as z,R as P,dt as j,jt as x,nt as C,r as B,st as I,x as D,yt as U}from"./icons-B-AzZoeE.js";import{n as $,t as O}from"./useResponsiveDrawer-BWRBXImg.js";import{t as q}from"./DrawerContent-ChXgZ1Xm.js";import{Et as A,J as E,M as T,O as L,Y as M,j as S,k as V,st as W,ut as R}from"./index-CCATqHAD.js";import{t as Z}from"./MarkdownEditor-BA_PcLed.js";var F={class:"form-header"},J={class:"form-container"},K={class:"form-section"},N={class:"section-title"},Q={class:"form-item"},Y={key:0,class:"form-error"},G={class:"form-item"},H={class:"form-item"},X={class:"form-section"},ee={class:"section-title"},ae={class:"apps-toggles"},se={class:"app-name"},te={key:0,class:"platform-empty"},le={class:"form-section content-section"},ie={class:"section-title"},ne={class:"form-footer"},re=s({__name:"PromptsFormDrawer",props:{visible:{type:Boolean,default:!1},editingPreset:{type:Object,default:null},existingIds:{type:Array,default:()=>[]},platforms:{type:Array,default:()=>[]}},emits:["update:visible","saved"],setup(s,{emit:f}){const{drawerWidth:w}=O(600),z=s,j=f,C=p({get:()=>z.visible,set:e=>j("update:visible",e)}),B=p(()=>!!z.editingPreset),{byCapability:D}=A(),U=p(()=>z.platforms.length>0?z.platforms:D("prompts"));function E(){return Object.fromEntries(U.value.map(e=>[e.key,!0]))}const T=g(!1),L=g(""),M=d({id:"",name:"",description:"",content:"",apps:{}});async function R(){if(M.id.trim()?/^[a-zA-Z0-9_-]+$/.test(M.id)?!B.value&&z.existingIds.includes(M.id)?(L.value="该 ID 已被使用",0):(L.value="",1):(L.value="ID 只能包含字母、数字、下划线和连字符",0):(L.value="预设 ID 不能为空",0))if(M.name.trim()){T.value=!0;try{const e={id:M.id.trim(),name:M.name.trim(),description:M.description.trim(),content:M.content,apps:B.value?{...M.apps}:Object.fromEntries(U.value.map(e=>[e.key,!0===M.apps[e.key]]))};z.editingPreset?.isBuiltin&&(e.isBuiltin=!0),(await async function(e){return(await h.post("/prompts/presets",e)).data}(e)).success&&(V.success(B.value?"保存成功":"创建成功"),j("saved"),C.value=!1)}catch(e){V.error("保存失败: "+e.message)}finally{T.value=!1}}else V.error("预设名称不能为空")}function re(){C.value=!1}return c(()=>z.visible,e=>{e&&(z.editingPreset?(M.id=z.editingPreset.id||"",M.name=z.editingPreset.name||"",M.description=z.editingPreset.description||"",M.content=z.editingPreset.content||"",M.apps=z.editingPreset.apps?{...z.editingPreset.apps}:E()):(M.id="",M.name="",M.description="",M.content="",M.apps=E()),L.value="")}),(c,d)=>(u(),r(y($),{show:C.value,"onUpdate:show":d[4]||(d[4]=e=>C.value=e),width:y(w),placement:"right","show-mask":!0},{default:v(()=>[n(y(q),{closable:"","native-scrollbar":!1},{header:v(()=>[k("div",F,[n(y(e),{size:18,class:"header-icon"},{default:v(()=>[n(y(_))]),_:1}),k("span",null,o(B.value?"编辑预设":"新建预设"),1)])]),footer:v(()=>[k("div",ne,[n(y(a),{onClick:re},{default:v(()=>[...d[12]||(d[12]=[l("取消",-1)])]),_:1}),n(y(a),{type:"primary",onClick:R,loading:T.value},{default:v(()=>[l(o(B.value?"保存":"创建"),1)]),_:1},8,["loading"])])]),default:v(()=>[k("div",J,[k("div",K,[k("div",N,[n(y(e),{size:16},{default:v(()=>[n(y(P))]),_:1}),d[5]||(d[5]=k("span",null,"基本信息",-1))]),k("div",Q,[d[6]||(d[6]=k("label",{class:"form-label"},[l("预设 ID "),k("span",{class:"required"},"*")],-1)),n(y(W),{value:M.id,"onUpdate:value":d[0]||(d[0]=e=>M.id=e),placeholder:"唯一标识符,如 my-preset",disabled:B.value&&s.editingPreset?.isBuiltin},null,8,["value","disabled"]),L.value?(u(),b("p",Y,o(L.value),1)):t("",!0)]),k("div",G,[d[7]||(d[7]=k("label",{class:"form-label"},[l("名称 "),k("span",{class:"required"},"*")],-1)),n(y(W),{value:M.name,"onUpdate:value":d[1]||(d[1]=e=>M.name=e),placeholder:"预设名称"},null,8,["value"])]),k("div",H,[d[8]||(d[8]=k("label",{class:"form-label"},"描述",-1)),n(y(W),{value:M.description,"onUpdate:value":d[2]||(d[2]=e=>M.description=e),placeholder:"简短描述这个预设的用途"},null,8,["value"])])]),k("div",X,[k("div",ee,[n(y(e),{size:16},{default:v(()=>[n(y(x))]),_:1}),d[9]||(d[9]=k("span",null,"生效范围",-1))]),k("div",ae,[(u(!0),b(m,null,i(U.value,e=>(u(),b("label",{key:e.key,class:"app-toggle"},[n(y(S),{value:M.apps[e.key],"onUpdate:value":a=>M.apps[e.key]=a},null,8,["value","onUpdate:value"]),k("span",se,o(e.promptLabel||e.label||e.title||e.key),1)]))),128)),0===U.value.length?(u(),b("span",te," 当前没有可用的 Prompt 平台 ")):t("",!0)])]),k("div",le,[k("div",ie,[n(y(e),{size:16},{default:v(()=>[n(y(I))]),_:1}),d[10]||(d[10]=k("span",null,"提示词内容",-1)),d[11]||(d[11]=k("span",{class:"content-hint"},"支持 Markdown 格式",-1))]),n(Z,{modelValue:M.content,"onUpdate:modelValue":d[3]||(d[3]=e=>M.content=e),rows:16,"min-height":300,placeholder:"# 系统提示词\n\n在这里编写你的系统提示词..."},null,8,["modelValue"])])])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-1e68a77e"]]),ue={class:"drawer-header"},ce={class:"header-title"},oe={class:"prompts-container"},de={class:"status-card"},pe={class:"status-info"},ve={class:"status-text"},me={class:"status-value"},fe={class:"status-actions"},ye={class:"stats-bar"},ge={class:"stats-text"},be={class:"preset-list"},ke={key:0,class:"empty-state"},he={key:1,class:"preset-cards"},_e={class:"card-header"},we={class:"card-title"},ze={class:"preset-name"},Pe={class:"card-actions"},je={key:0,class:"card-desc"},xe={class:"card-apps"},Ce={class:"card-preview"},Be={class:"preview-content"},Ie=s({__name:"PromptsDrawer",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(s,{emit:d}){const{drawerWidth:P}=O(720),x=s,I=d,S=p({get:()=>x.visible,set:e=>I("update:visible",e)}),W=g(!1),Z=g({}),F=g(null),J=g(!1),K=g(null),N=g(null),Q=g(!1),{byCapability:Y}=A(),G=p(()=>Y("prompts")),H=p(()=>{const e=Object.values(Z.value),a=e.filter(e=>!e.isBuiltin),s=e.filter(e=>e.isBuiltin);return a.sort((e,a)=>e.id===F.value?-1:a.id===F.value?1:(a.updatedAt||0)-(e.updatedAt||0)),[...a,...s]}),X=p(()=>H.value.length),ee=p(()=>Object.keys(Z.value)),ae=p(()=>F.value?Z.value[F.value]:null),se=p(()=>{const e=H.value;return{builtin:e.filter(e=>e.isBuiltin).length,custom:e.filter(e=>!e.isBuiltin).length}}),te=p(()=>G.value.map(e=>({label:`从 ${e.promptLabel||e.label||e.title||e.key} 导入`,key:e.key})));function le(e){if(!e)return"";let a=e.split("\n").slice(0,4).join("\n");return e.split("\n").length>4&&(a+="\n..."),a.substring(0,200)}async function ie(){W.value=!0;try{const e=await async function(){return(await h.get("/prompts/presets")).data}();e.success&&(Z.value=e.presets,F.value=e.activePresetId)}catch(e){V.error("加载预设失败")}finally{W.value=!1}}async function ne(e){N.value=e.id;try{(await async function(e){return(await h.post(`/prompts/presets/${e}/activate`)).data}(e.id)).success&&(F.value=e.id,V.success(`已激活预设 "${e.name}"`))}catch(a){V.error("激活失败: "+a.message)}finally{N.value=null}}async function Ie(){L.warning({title:"移除提示词",content:"确定要移除当前激活的提示词吗?这将删除各平台的提示词文件。",positiveText:"移除",negativeText:"取消",onPositiveClick:async()=>{Q.value=!0;try{(await async function(){return(await h.post("/prompts/deactivate")).data}()).success&&(F.value=null,V.success("已移除提示词"))}catch(e){V.error("移除失败: "+e.message)}finally{Q.value=!1}}})}function De(e){L.warning({title:"删除确认",content:`确定要删除预设 "${e.name}" 吗?此操作不可恢复。`,positiveText:"删除",negativeText:"取消",onPositiveClick:async()=>{try{(await async function(e){return(await h.delete(`/prompts/presets/${e}`)).data}(e.id)).success&&(delete Z.value[e.id],V.success("删除成功"))}catch(a){V.error("删除失败: "+a.message)}}})}async function Ue(e){try{const a=await async function(e,a){return(await h.post(`/prompts/import/${e}`,{name:a})).data}(e);a.success&&(Z.value[a.preset.id]=a.preset,V.success(a.message))}catch(a){V.error("导入失败: "+a.message)}}function $e(){K.value=null,J.value=!0}function Oe(){ie()}return c(()=>x.visible,e=>{e&&ie()},{immediate:!0}),(s,c)=>(u(),b(m,null,[n(y($),{show:S.value,"onUpdate:show":c[0]||(c[0]=e=>S.value=e),width:y(P),placement:"right","show-mask":!0},{default:v(()=>[n(y(q),{title:"Prompts 管理",closable:"","native-scrollbar":!1},{header:v(()=>[k("div",ue,[k("div",ce,[n(y(e),{size:20,class:"header-icon"},{default:v(()=>[n(y(_))]),_:1}),c[2]||(c[2]=k("span",null,"Prompts 管理",-1))])])]),default:v(()=>[k("div",oe,[k("div",de,[k("div",pe,[ae.value?(u(),b(m,{key:0},[n(y(e),{class:"status-icon active",size:18},{default:v(()=>[n(y(U))]),_:1}),k("div",ve,[c[3]||(c[3]=k("span",{class:"status-label"},"当前激活:",-1)),k("span",me,o(ae.value.name),1)])],64)):(u(),b(m,{key:1},[n(y(e),{class:"status-icon inactive",size:18},{default:v(()=>[n(y(D))]),_:1}),c[4]||(c[4]=k("div",{class:"status-text"},[k("span",{class:"status-label"},"未激活任何提示词")],-1))],64))]),k("div",fe,[n(y(E),{trigger:"click",options:te.value,onSelect:Ue},{default:v(()=>[n(y(a),{size:"small",tertiary:"",class:"action-btn"},{icon:v(()=>[n(y(e),{size:14},{default:v(()=>[n(y(z))]),_:1})]),default:v(()=>[c[5]||(c[5]=l(" 导入 ",-1))]),_:1})]),_:1},8,["options"]),n(y(a),{size:"small",tertiary:"",type:"primary",class:"action-btn",onClick:$e},{icon:v(()=>[n(y(e),{size:14},{default:v(()=>[n(y(w))]),_:1})]),default:v(()=>[c[6]||(c[6]=l(" 新建 ",-1))]),_:1}),ae.value?(u(),r(y(M),{key:0,trigger:"hover"},{trigger:v(()=>[n(y(a),{size:"small",quaternary:"",class:"action-btn remove-btn",onClick:Ie,loading:Q.value},{icon:v(()=>[n(y(e),{size:16},{default:v(()=>[n(y(j))]),_:1})]),default:v(()=>[c[7]||(c[7]=l(" 移除 ",-1))]),_:1},8,["loading"])]),default:v(()=>[c[8]||(c[8]=l(" 删除各平台的提示词文件 ",-1))]),_:1})):t("",!0)])]),k("div",ye,[k("span",ge,[l(" 共 "+o(X.value)+" 个预设 ",1),X.value>0?(u(),b(m,{key:0},[l(" · 自定义: "+o(se.value.custom)+" · 内置模板: "+o(se.value.builtin),1)],64)):t("",!0)])]),k("div",be,[n(y(T),{show:W.value},{default:v(()=>[0!==H.value.length||W.value?(u(),b("div",he,[(u(!0),b(m,null,i(H.value,s=>(u(),b("div",{key:s.id,class:f(["preset-card",{active:s.id===F.value}])},[k("div",_e,[k("div",we,[s.id===F.value?(u(),r(y(e),{key:0,class:"active-icon",size:16},{default:v(()=>[n(y(U))]),_:1})):t("",!0),k("span",ze,o(s.name),1),s.isBuiltin?(u(),r(y(R),{key:1,size:"tiny",bordered:!1,type:"info"},{default:v(()=>[...c[11]||(c[11]=[l("模板",-1)])]),_:1})):t("",!0),s.isImported?(u(),r(y(R),{key:2,size:"tiny",bordered:!1,type:"warning"},{default:v(()=>[...c[12]||(c[12]=[l("已导入",-1)])]),_:1})):t("",!0)]),k("div",Pe,[s.id!==F.value?(u(),r(y(a),{key:0,size:"tiny",type:"primary",onClick:e=>ne(s),loading:N.value===s.id},{default:v(()=>[...c[13]||(c[13]=[l(" 激活 ",-1)])]),_:1},8,["onClick","loading"])):t("",!0),n(y(a),{quaternary:"",size:"tiny",onClick:e=>function(e){K.value=e,J.value=!0}(s)},{icon:v(()=>[n(y(e),null,{default:v(()=>[n(y(C))]),_:1})]),_:1},8,["onClick"]),s.isBuiltin?t("",!0):(u(),r(y(a),{key:1,quaternary:"",size:"tiny",onClick:e=>De(s)},{icon:v(()=>[n(y(e),null,{default:v(()=>[n(y(B))]),_:1})]),_:1},8,["onClick"]))])]),s.description?(u(),b("p",je,o(s.description),1)):t("",!0),k("div",xe,[c[14]||(c[14]=k("span",{class:"apps-label"},"生效范围:",-1)),(u(!0),b(m,null,i(G.value,e=>(u(),r(y(R),{key:e.key,type:s.apps?.[e.key]?"success":"default",size:"tiny",bordered:!1},{default:v(()=>[l(o(e.promptLabel||e.label||e.title||e.key),1)]),_:2},1032,["type"]))),128))]),k("div",Ce,[k("pre",Be,o(le(s.content)),1)])],2))),128))])):(u(),b("div",ke,[n(y(e),{size:48,class:"empty-icon"},{default:v(()=>[n(y(_))]),_:1}),c[9]||(c[9]=k("p",{class:"empty-title"},"暂无预设",-1)),c[10]||(c[10]=k("p",{class:"empty-desc"},'点击上方"新建"按钮创建系统提示词预设',-1))]))]),_:1},8,["show"])])])]),_:1})]),_:1},8,["show","width"]),n(re,{visible:J.value,"onUpdate:visible":c[1]||(c[1]=e=>J.value=e),"editing-preset":K.value,"existing-ids":ee.value,platforms:G.value,onSaved:Oe},null,8,["visible","editing-preset","existing-ids","platforms"])],64))}},[["__scopeId","data-v-61810a34"]]);export{Ie as default};
|
|
1
|
+
import{i as e,s as a,t as s}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as t,D as l,K as i,O as n,S as r,W as u,Z as c,_t as o,at as d,b as p,et as v,g as m,ht as f,mt as y,st as g,w as b,x as k}from"./vue-vendor-BqZbbXHA.js";import{t as h}from"./client-oU6RT-6I.js";import{$ as _,Nt as w,Q as z,R as P,dt as j,jt as x,nt as C,r as B,st as I,x as D,yt as U}from"./icons-B-AzZoeE.js";import{n as $,t as O}from"./useResponsiveDrawer-Cn6gH3VG.js";import{t as q}from"./DrawerContent-ChXgZ1Xm.js";import{Et as A,J as E,M as T,O as L,Y as M,j as S,k as V,st as W,ut as R}from"./index-aW6itxZg.js";import{t as Z}from"./MarkdownEditor-LiZaVnJu.js";var F={class:"form-header"},J={class:"form-container"},K={class:"form-section"},N={class:"section-title"},Q={class:"form-item"},Y={key:0,class:"form-error"},G={class:"form-item"},H={class:"form-item"},X={class:"form-section"},ee={class:"section-title"},ae={class:"apps-toggles"},se={class:"app-name"},te={key:0,class:"platform-empty"},le={class:"form-section content-section"},ie={class:"section-title"},ne={class:"form-footer"},re=s({__name:"PromptsFormDrawer",props:{visible:{type:Boolean,default:!1},editingPreset:{type:Object,default:null},existingIds:{type:Array,default:()=>[]},platforms:{type:Array,default:()=>[]}},emits:["update:visible","saved"],setup(s,{emit:f}){const{drawerWidth:w}=O(600),z=s,j=f,C=p({get:()=>z.visible,set:e=>j("update:visible",e)}),B=p(()=>!!z.editingPreset),{byCapability:D}=A(),U=p(()=>z.platforms.length>0?z.platforms:D("prompts"));function E(){return Object.fromEntries(U.value.map(e=>[e.key,!0]))}const T=g(!1),L=g(""),M=d({id:"",name:"",description:"",content:"",apps:{}});async function R(){if(M.id.trim()?/^[a-zA-Z0-9_-]+$/.test(M.id)?!B.value&&z.existingIds.includes(M.id)?(L.value="该 ID 已被使用",0):(L.value="",1):(L.value="ID 只能包含字母、数字、下划线和连字符",0):(L.value="预设 ID 不能为空",0))if(M.name.trim()){T.value=!0;try{const e={id:M.id.trim(),name:M.name.trim(),description:M.description.trim(),content:M.content,apps:B.value?{...M.apps}:Object.fromEntries(U.value.map(e=>[e.key,!0===M.apps[e.key]]))};z.editingPreset?.isBuiltin&&(e.isBuiltin=!0),(await async function(e){return(await h.post("/prompts/presets",e)).data}(e)).success&&(V.success(B.value?"保存成功":"创建成功"),j("saved"),C.value=!1)}catch(e){V.error("保存失败: "+e.message)}finally{T.value=!1}}else V.error("预设名称不能为空")}function re(){C.value=!1}return c(()=>z.visible,e=>{e&&(z.editingPreset?(M.id=z.editingPreset.id||"",M.name=z.editingPreset.name||"",M.description=z.editingPreset.description||"",M.content=z.editingPreset.content||"",M.apps=z.editingPreset.apps?{...z.editingPreset.apps}:E()):(M.id="",M.name="",M.description="",M.content="",M.apps=E()),L.value="")}),(c,d)=>(u(),r(y($),{show:C.value,"onUpdate:show":d[4]||(d[4]=e=>C.value=e),width:y(w),placement:"right","show-mask":!0},{default:v(()=>[n(y(q),{closable:"","native-scrollbar":!1},{header:v(()=>[k("div",F,[n(y(e),{size:18,class:"header-icon"},{default:v(()=>[n(y(_))]),_:1}),k("span",null,o(B.value?"编辑预设":"新建预设"),1)])]),footer:v(()=>[k("div",ne,[n(y(a),{onClick:re},{default:v(()=>[...d[12]||(d[12]=[l("取消",-1)])]),_:1}),n(y(a),{type:"primary",onClick:R,loading:T.value},{default:v(()=>[l(o(B.value?"保存":"创建"),1)]),_:1},8,["loading"])])]),default:v(()=>[k("div",J,[k("div",K,[k("div",N,[n(y(e),{size:16},{default:v(()=>[n(y(P))]),_:1}),d[5]||(d[5]=k("span",null,"基本信息",-1))]),k("div",Q,[d[6]||(d[6]=k("label",{class:"form-label"},[l("预设 ID "),k("span",{class:"required"},"*")],-1)),n(y(W),{value:M.id,"onUpdate:value":d[0]||(d[0]=e=>M.id=e),placeholder:"唯一标识符,如 my-preset",disabled:B.value&&s.editingPreset?.isBuiltin},null,8,["value","disabled"]),L.value?(u(),b("p",Y,o(L.value),1)):t("",!0)]),k("div",G,[d[7]||(d[7]=k("label",{class:"form-label"},[l("名称 "),k("span",{class:"required"},"*")],-1)),n(y(W),{value:M.name,"onUpdate:value":d[1]||(d[1]=e=>M.name=e),placeholder:"预设名称"},null,8,["value"])]),k("div",H,[d[8]||(d[8]=k("label",{class:"form-label"},"描述",-1)),n(y(W),{value:M.description,"onUpdate:value":d[2]||(d[2]=e=>M.description=e),placeholder:"简短描述这个预设的用途"},null,8,["value"])])]),k("div",X,[k("div",ee,[n(y(e),{size:16},{default:v(()=>[n(y(x))]),_:1}),d[9]||(d[9]=k("span",null,"生效范围",-1))]),k("div",ae,[(u(!0),b(m,null,i(U.value,e=>(u(),b("label",{key:e.key,class:"app-toggle"},[n(y(S),{value:M.apps[e.key],"onUpdate:value":a=>M.apps[e.key]=a},null,8,["value","onUpdate:value"]),k("span",se,o(e.promptLabel||e.label||e.title||e.key),1)]))),128)),0===U.value.length?(u(),b("span",te," 当前没有可用的 Prompt 平台 ")):t("",!0)])]),k("div",le,[k("div",ie,[n(y(e),{size:16},{default:v(()=>[n(y(I))]),_:1}),d[10]||(d[10]=k("span",null,"提示词内容",-1)),d[11]||(d[11]=k("span",{class:"content-hint"},"支持 Markdown 格式",-1))]),n(Z,{modelValue:M.content,"onUpdate:modelValue":d[3]||(d[3]=e=>M.content=e),rows:16,"min-height":300,placeholder:"# 系统提示词\n\n在这里编写你的系统提示词..."},null,8,["modelValue"])])])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-1e68a77e"]]),ue={class:"drawer-header"},ce={class:"header-title"},oe={class:"prompts-container"},de={class:"status-card"},pe={class:"status-info"},ve={class:"status-text"},me={class:"status-value"},fe={class:"status-actions"},ye={class:"stats-bar"},ge={class:"stats-text"},be={class:"preset-list"},ke={key:0,class:"empty-state"},he={key:1,class:"preset-cards"},_e={class:"card-header"},we={class:"card-title"},ze={class:"preset-name"},Pe={class:"card-actions"},je={key:0,class:"card-desc"},xe={class:"card-apps"},Ce={class:"card-preview"},Be={class:"preview-content"},Ie=s({__name:"PromptsDrawer",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(s,{emit:d}){const{drawerWidth:P}=O(720),x=s,I=d,S=p({get:()=>x.visible,set:e=>I("update:visible",e)}),W=g(!1),Z=g({}),F=g(null),J=g(!1),K=g(null),N=g(null),Q=g(!1),{byCapability:Y}=A(),G=p(()=>Y("prompts")),H=p(()=>{const e=Object.values(Z.value),a=e.filter(e=>!e.isBuiltin),s=e.filter(e=>e.isBuiltin);return a.sort((e,a)=>e.id===F.value?-1:a.id===F.value?1:(a.updatedAt||0)-(e.updatedAt||0)),[...a,...s]}),X=p(()=>H.value.length),ee=p(()=>Object.keys(Z.value)),ae=p(()=>F.value?Z.value[F.value]:null),se=p(()=>{const e=H.value;return{builtin:e.filter(e=>e.isBuiltin).length,custom:e.filter(e=>!e.isBuiltin).length}}),te=p(()=>G.value.map(e=>({label:`从 ${e.promptLabel||e.label||e.title||e.key} 导入`,key:e.key})));function le(e){if(!e)return"";let a=e.split("\n").slice(0,4).join("\n");return e.split("\n").length>4&&(a+="\n..."),a.substring(0,200)}async function ie(){W.value=!0;try{const e=await async function(){return(await h.get("/prompts/presets")).data}();e.success&&(Z.value=e.presets,F.value=e.activePresetId)}catch(e){V.error("加载预设失败")}finally{W.value=!1}}async function ne(e){N.value=e.id;try{(await async function(e){return(await h.post(`/prompts/presets/${e}/activate`)).data}(e.id)).success&&(F.value=e.id,V.success(`已激活预设 "${e.name}"`))}catch(a){V.error("激活失败: "+a.message)}finally{N.value=null}}async function Ie(){L.warning({title:"移除提示词",content:"确定要移除当前激活的提示词吗?这将删除各平台的提示词文件。",positiveText:"移除",negativeText:"取消",onPositiveClick:async()=>{Q.value=!0;try{(await async function(){return(await h.post("/prompts/deactivate")).data}()).success&&(F.value=null,V.success("已移除提示词"))}catch(e){V.error("移除失败: "+e.message)}finally{Q.value=!1}}})}function De(e){L.warning({title:"删除确认",content:`确定要删除预设 "${e.name}" 吗?此操作不可恢复。`,positiveText:"删除",negativeText:"取消",onPositiveClick:async()=>{try{(await async function(e){return(await h.delete(`/prompts/presets/${e}`)).data}(e.id)).success&&(delete Z.value[e.id],V.success("删除成功"))}catch(a){V.error("删除失败: "+a.message)}}})}async function Ue(e){try{const a=await async function(e,a){return(await h.post(`/prompts/import/${e}`,{name:a})).data}(e);a.success&&(Z.value[a.preset.id]=a.preset,V.success(a.message))}catch(a){V.error("导入失败: "+a.message)}}function $e(){K.value=null,J.value=!0}function Oe(){ie()}return c(()=>x.visible,e=>{e&&ie()},{immediate:!0}),(s,c)=>(u(),b(m,null,[n(y($),{show:S.value,"onUpdate:show":c[0]||(c[0]=e=>S.value=e),width:y(P),placement:"right","show-mask":!0},{default:v(()=>[n(y(q),{title:"Prompts 管理",closable:"","native-scrollbar":!1},{header:v(()=>[k("div",ue,[k("div",ce,[n(y(e),{size:20,class:"header-icon"},{default:v(()=>[n(y(_))]),_:1}),c[2]||(c[2]=k("span",null,"Prompts 管理",-1))])])]),default:v(()=>[k("div",oe,[k("div",de,[k("div",pe,[ae.value?(u(),b(m,{key:0},[n(y(e),{class:"status-icon active",size:18},{default:v(()=>[n(y(U))]),_:1}),k("div",ve,[c[3]||(c[3]=k("span",{class:"status-label"},"当前激活:",-1)),k("span",me,o(ae.value.name),1)])],64)):(u(),b(m,{key:1},[n(y(e),{class:"status-icon inactive",size:18},{default:v(()=>[n(y(D))]),_:1}),c[4]||(c[4]=k("div",{class:"status-text"},[k("span",{class:"status-label"},"未激活任何提示词")],-1))],64))]),k("div",fe,[n(y(E),{trigger:"click",options:te.value,onSelect:Ue},{default:v(()=>[n(y(a),{size:"small",tertiary:"",class:"action-btn"},{icon:v(()=>[n(y(e),{size:14},{default:v(()=>[n(y(z))]),_:1})]),default:v(()=>[c[5]||(c[5]=l(" 导入 ",-1))]),_:1})]),_:1},8,["options"]),n(y(a),{size:"small",tertiary:"",type:"primary",class:"action-btn",onClick:$e},{icon:v(()=>[n(y(e),{size:14},{default:v(()=>[n(y(w))]),_:1})]),default:v(()=>[c[6]||(c[6]=l(" 新建 ",-1))]),_:1}),ae.value?(u(),r(y(M),{key:0,trigger:"hover"},{trigger:v(()=>[n(y(a),{size:"small",quaternary:"",class:"action-btn remove-btn",onClick:Ie,loading:Q.value},{icon:v(()=>[n(y(e),{size:16},{default:v(()=>[n(y(j))]),_:1})]),default:v(()=>[c[7]||(c[7]=l(" 移除 ",-1))]),_:1},8,["loading"])]),default:v(()=>[c[8]||(c[8]=l(" 删除各平台的提示词文件 ",-1))]),_:1})):t("",!0)])]),k("div",ye,[k("span",ge,[l(" 共 "+o(X.value)+" 个预设 ",1),X.value>0?(u(),b(m,{key:0},[l(" · 自定义: "+o(se.value.custom)+" · 内置模板: "+o(se.value.builtin),1)],64)):t("",!0)])]),k("div",be,[n(y(T),{show:W.value},{default:v(()=>[0!==H.value.length||W.value?(u(),b("div",he,[(u(!0),b(m,null,i(H.value,s=>(u(),b("div",{key:s.id,class:f(["preset-card",{active:s.id===F.value}])},[k("div",_e,[k("div",we,[s.id===F.value?(u(),r(y(e),{key:0,class:"active-icon",size:16},{default:v(()=>[n(y(U))]),_:1})):t("",!0),k("span",ze,o(s.name),1),s.isBuiltin?(u(),r(y(R),{key:1,size:"tiny",bordered:!1,type:"info"},{default:v(()=>[...c[11]||(c[11]=[l("模板",-1)])]),_:1})):t("",!0),s.isImported?(u(),r(y(R),{key:2,size:"tiny",bordered:!1,type:"warning"},{default:v(()=>[...c[12]||(c[12]=[l("已导入",-1)])]),_:1})):t("",!0)]),k("div",Pe,[s.id!==F.value?(u(),r(y(a),{key:0,size:"tiny",type:"primary",onClick:e=>ne(s),loading:N.value===s.id},{default:v(()=>[...c[13]||(c[13]=[l(" 激活 ",-1)])]),_:1},8,["onClick","loading"])):t("",!0),n(y(a),{quaternary:"",size:"tiny",onClick:e=>function(e){K.value=e,J.value=!0}(s)},{icon:v(()=>[n(y(e),null,{default:v(()=>[n(y(C))]),_:1})]),_:1},8,["onClick"]),s.isBuiltin?t("",!0):(u(),r(y(a),{key:1,quaternary:"",size:"tiny",onClick:e=>De(s)},{icon:v(()=>[n(y(e),null,{default:v(()=>[n(y(B))]),_:1})]),_:1},8,["onClick"]))])]),s.description?(u(),b("p",je,o(s.description),1)):t("",!0),k("div",xe,[c[14]||(c[14]=k("span",{class:"apps-label"},"生效范围:",-1)),(u(!0),b(m,null,i(G.value,e=>(u(),r(y(R),{key:e.key,type:s.apps?.[e.key]?"success":"default",size:"tiny",bordered:!1},{default:v(()=>[l(o(e.promptLabel||e.label||e.title||e.key),1)]),_:2},1032,["type"]))),128))]),k("div",Ce,[k("pre",Be,o(le(s.content)),1)])],2))),128))])):(u(),b("div",ke,[n(y(e),{size:48,class:"empty-icon"},{default:v(()=>[n(y(_))]),_:1}),c[9]||(c[9]=k("p",{class:"empty-title"},"暂无预设",-1)),c[10]||(c[10]=k("p",{class:"empty-desc"},'点击上方"新建"按钮创建系统提示词预设',-1))]))]),_:1},8,["show"])])])]),_:1})]),_:1},8,["show","width"]),n(re,{visible:J.value,"onUpdate:visible":c[1]||(c[1]=e=>J.value=e),"editing-preset":K.value,"existing-ids":ee.value,platforms:G.value,onSaved:Oe},null,8,["visible","editing-preset","existing-ids","platforms"])],64))}},[["__scopeId","data-v-61810a34"]]);export{Ie as default};
|
package/dist/web/assets/{RecentSessionsDrawer-DkCjc4kS.js → RecentSessionsDrawer-BZ8YKqwq.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Dn as e,i as s,t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{D as t,K as n,M as i,O as o,S as l,W as r,Z as c,b as u,et as d,g as m,mt as p,st as h,w as v}from"./vue-vendor-BqZbbXHA.js";import{xt as f}from"./icons-B-AzZoeE.js";import{n as w,t as y}from"./useResponsiveDrawer-
|
|
1
|
+
import{Dn as e,i as s,t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{D as t,K as n,M as i,O as o,S as l,W as r,Z as c,b as u,et as d,g as m,mt as p,st as h,w as v}from"./vue-vendor-BqZbbXHA.js";import{xt as f}from"./icons-B-AzZoeE.js";import{n as w,t as y}from"./useResponsiveDrawer-Cn6gH3VG.js";import{t as g}from"./DrawerContent-ChXgZ1Xm.js";import{M as j,O as _,ft as k,k as x,st as b}from"./index-aW6itxZg.js";import{m as C,n as D,o as I,t as S}from"./sessions-WXODMvLY.js";import{t as O}from"./SessionCard-CEFt-CNZ.js";import{n as z}from"./session-visibility-BAmxh3cK.js";var M=e({default:()=>B}),P={key:0,class:"loading-container"},R={key:1,class:"sessions-list"},B=a({__name:"RecentSessionsDrawer",props:{visible:{type:Boolean,default:!1},channel:{type:String,default:"claude"}},emits:["update:visible"],setup(e,{emit:a}){const{drawerWidth:M}=y(720),B=e,K=a,N=h(!1),T=h([]),U=h(!1),W=u(()=>B.channel);async function A(){U.value=!0;try{const e=await I(10,B.channel);T.value=z(e.sessions)}catch(e){x.error("加载失败: "+e.message)}finally{U.value=!1}}async function E(e){const s=e.alias||"";let a=s;const t=await new Promise(e=>{const t=_.create({title:"设置别名",content:()=>i(b,{defaultValue:s,placeholder:"请输入会话别名","onUpdate:value":e=>{a=e},onKeyup:s=>{"Enter"===s.key&&(t.destroy(),e(a.trim()))}}),positiveText:"确定",negativeText:"取消",onPositiveClick:()=>{e(a.trim())},onNegativeClick:()=>{e(null)}})});if(null!==t)try{t?(await C(e.sessionId,t),x.success("别名设置成功")):(await D(e.sessionId),x.success("别名已删除")),await A()}catch(n){x.error("操作失败: "+n.message)}}async function G(e){try{const{copyResult:s}=await S(e.projectName,e.sessionId,B.channel);if("manual"===s?.method)return void x.warning("自动复制失败,已弹出手动复制框");x.success("启动命令已复制到剪贴板")}catch(s){x.error("复制失败: "+s.message)}}return c(()=>B.visible,e=>{N.value=e,e&&A()},{immediate:!0}),c(N,e=>{K("update:visible",e)}),c(()=>B.channel,()=>{N.value&&A()}),(e,a)=>(r(),l(p(w),{show:N.value,"onUpdate:show":a[0]||(a[0]=e=>N.value=e),width:p(M),placement:"right","show-close":!0},{default:d(()=>[o(p(g),{title:"claude"===B.channel?"Claude 最新对话":"codex"===B.channel?"Codex 最新对话":"gemini"===B.channel?"Gemini 最新对话":"opencode"===B.channel?"OpenCode 最新对话":"omp"===B.channel?"OMP 最新对话":"最新对话","native-scrollbar":!1,closable:""},{default:d(()=>[U.value?(r(),v("div",P,[o(p(j),{size:"medium"},{description:d(()=>[...a[1]||(a[1]=[t("加载中...",-1)])]),_:1})])):T.value.length>0?(r(),v("div",R,[(r(!0),v(m,null,n(T.value,e=>(r(),l(O,{key:e.sessionId,session:e,channel:W.value,"show-project":!0,"hide-fork":!0,"hide-delete":!0,onSetAlias:E,onLaunch:G},null,8,["session","channel"]))),128))])):(r(),l(p(k),{key:2,description:"暂无最近使用的会话",style:{"margin-top":"60px"}},{icon:d(()=>[o(p(s),{size:"48"},{default:d(()=>[o(p(f))]),_:1})]),_:1}))]),_:1},8,["title"])]),_:1},8,["show","width"]))}},[["__scopeId","data-v-49e4936a"]]);export{M as n,B as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as s,s as e,t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as o,D as t,O as i,S as l,W as n,_t as r,b as d,et as u,mt as c,q as f,st as p,w as m,x as h}from"./vue-vendor-BqZbbXHA.js";import{Ct as _,Et as y,U as k,et as v,i as g,r as M,w as j}from"./icons-B-AzZoeE.js";import{Y as z,ut as w}from"./index-
|
|
1
|
+
import{i as s,s as e,t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as o,D as t,O as i,S as l,W as n,_t as r,b as d,et as u,mt as c,q as f,st as p,w as m,x as h}from"./vue-vendor-BqZbbXHA.js";import{Ct as _,Et as y,U as k,et as v,i as g,r as M,w as j}from"./icons-B-AzZoeE.js";import{Y as z,ut as w}from"./index-aW6itxZg.js";var B={class:"session-left"},$={class:"session-icon"},F={class:"session-info"},b={class:"session-header"},C={class:"session-title-row"},D={class:"session-title"},x={class:"session-meta"},P={class:"meta-item"},S={key:0,class:"session-message"},I={key:1,class:"session-path"},N={class:"session-actions"},q=a({__name:"SessionCard",props:{session:{type:Object,required:!0},channel:{type:String,default:"claude"},showProject:{type:Boolean,default:!1},hideFork:{type:Boolean,default:!1},hideDelete:{type:Boolean,default:!1}},emits:["set-alias","launch","fork","delete"],setup(a,{emit:q}){const O=a,E=p(!1),G=d(()=>O.session.alias?`${O.session.alias} (${O.session.sessionId.substring(0,8)})`:O.session.sessionId);function K(s){const e=new Date(s),a=new Date-e,o=Math.floor(a/6e4),t=Math.floor(a/36e5),i=Math.floor(a/864e5);return o<1?"刚刚":o<60?`${o}分钟前`:t<24?`${t}小时前`:i<7?`${i}天前`:e.toLocaleDateString("zh-CN")}function L(s){if(!s)return"0 B";const e=Math.floor(Math.log(s)/Math.log(1024));return Math.round(s/Math.pow(1024,e)*100)/100+" "+["B","KB","MB","GB"][e]}return(d,p)=>(n(),m("div",{class:"session-item",onMouseenter:p[4]||(p[4]=s=>E.value=!0),onMouseleave:p[5]||(p[5]=s=>E.value=!1)},[h("div",B,[h("div",$,[i(c(s),{size:"24",color:"#18a058"},{default:u(()=>[i(c(_))]),_:1})]),h("div",F,[h("div",b,[h("div",C,[a.showProject&&a.session.projectDisplayName?(n(),l(c(w),{key:0,size:"small",type:"info",bordered:!1,style:{"margin-right":"8px"}},{default:u(()=>[t(r(a.session.projectDisplayName),1)]),_:1})):o("",!0),h("span",D,r(G.value),1),a.session.forkedFrom?(n(),l(c(z),{key:1,placement:"top"},{trigger:u(()=>[i(c(w),{size:"small",type:"warning",bordered:!1,style:{"margin-left":"8px",cursor:"help"}},{icon:u(()=>[i(c(s),null,{default:u(()=>[i(c(k))]),_:1})]),default:u(()=>[p[6]||(p[6]=t(" Fork ",-1))]),_:1})]),default:u(()=>[h("span",null,"Fork 自 "+r(a.session.forkedFrom),1)]),_:1})):o("",!0)]),h("div",x,[h("span",P,[i(c(s),{size:"14"},{default:u(()=>[i(c(y))]),_:1}),t(" "+r(K(a.session.mtime)),1)]),i(c(w),{size:"small",bordered:!1,type:"info"},{icon:u(()=>[i(c(s),null,{default:u(()=>[i(c(v))]),_:1})]),default:u(()=>[t(" "+r(L(a.session.size)),1)]),_:1}),a.session.gitBranch?(n(),l(c(w),{key:0,size:"small",bordered:!1,type:"success"},{icon:u(()=>[i(c(s),null,{default:u(()=>[i(c(k))]),_:1})]),default:u(()=>[t(" "+r(a.session.gitBranch),1)]),_:1})):o("",!0)])]),a.session.firstMessage?(n(),m("div",S,r(a.session.firstMessage),1)):o("",!0),a.showProject&&a.session.projectFullPath?(n(),m("div",I," 路径: "+r(a.session.projectFullPath),1)):o("",!0)])]),h("div",N,[i(c(e),{size:"small",onClick:p[0]||(p[0]=s=>d.$emit("set-alias",a.session))},{icon:u(()=>[i(c(s),null,{default:u(()=>[i(c(j))]),_:1})]),default:u(()=>[p[7]||(p[7]=t(" 别名 ",-1))]),_:1}),i(c(e),{type:"primary",size:"small",onClick:p[1]||(p[1]=s=>d.$emit("launch",a.session))},{icon:u(()=>[i(c(s),null,{default:u(()=>[i(c(g))]),_:1})]),default:u(()=>[p[8]||(p[8]=t(" 使用对话 ",-1))]),_:1}),a.hideFork?o("",!0):(n(),l(c(e),{key:0,size:"small",onClick:p[2]||(p[2]=s=>d.$emit("fork",a.session))},{icon:u(()=>[i(c(s),null,{default:u(()=>[i(c(k))]),_:1})]),default:u(()=>[p[9]||(p[9]=t(" Fork ",-1))]),_:1})),a.hideDelete?o("",!0):(n(),l(c(e),{key:1,size:"small",type:"error",onClick:p[3]||(p[3]=s=>d.$emit("delete",a.session))},{icon:u(()=>[i(c(s),null,{default:u(()=>[i(c(M))]),_:1})]),_:1})),f(d.$slots,"actions-extra",{},void 0,!0)])],32))}},[["__scopeId","data-v-32d1b310"]]);export{q as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as e,L as a,N as t,Qt as s,Tt as n,Yt as l,bn as i,gn as o,gt as r,hn as u,ht as d,i as c,j as p,s as v,t as m,xn as h,xt as f,yn as g}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as b,C as y,D as w,G as k,H as C,I as x,K as j,M as P,N as F,O as _,Q as z,S as M,V as I,W as S,Z as B,_t as $,b as N,dt as T,et as O,f as A,g as U,ht as R,i as D,m as E,mt as L,p as q,r as H,st as V,tt as Q,w as W,x as J}from"./vue-vendor-BqZbbXHA.js";import{r as K}from"./platforms-JV36QBCw.js";import{$ as Z,At as G,Ct as Y,U as X,c as ee,g as ae,i as te,l as se,nt as ne,r as le}from"./icons-B-AzZoeE.js";import{d as ie,k as oe,t as re,u as ue,x as de}from"./use-message-DBsCm7FJ.js";import{F as ce,S as pe,l as ve}from"./light-C2X7hegj.js";import{c as me,s as he}from"./AssetPathField-2W-16zgR.js";import{t as fe}from"./McpFormDrawer-BRm-hzv1.js";import{i as ge,n as be,r as ye,t as we}from"./Forward-DLCL7aMY.js";import{n as ke,t as Ce}from"./useResponsiveDrawer-BWRBXImg.js";import{t as xe}from"./DrawerContent-ChXgZ1Xm.js";import{t as je}from"./headers-DbowkmZJ.js";import{t as Pe}from"./SkillsPanel-6SehnNG8.js";import{$ as Fe,A as _e,H as ze,M as Me,O as Ie,Q as Se,Tt as Be,Y as $e,_ as Ne,ct as Te,dt as Oe,et as Ae,ft as Ue,k as Re,ot as De,pt as Ee,rt as Le,st as qe,ut as He,vt as Ve,xt as Qe,yt as We}from"./index-CCATqHAD.js";import{c as Je,f as Ke,t as Ze}from"./sessions-WXODMvLY.js";import Ge from"./ChatHistoryDrawer-C1URzQ_4.js";import{t as Ye}from"./sessions-wvj5oaYr.js";import{i as Xe,l as ea,n as aa,o as ta,r as sa,t as na}from"./project-config-CzFKBw_m.js";var la={tiny:"mini",small:"tiny",medium:"small",large:"medium",huge:"large"};function ia(e){const a=la[e];if(void 0===a)throw new Error(`${e} has no smaller size.`);return a}var oa=b({name:"More",render:()=>P("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},P("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},P("g",{fill:"currentColor","fill-rule":"nonzero"},P("path",{d:"M4,7 C4.55228,7 5,7.44772 5,8 C5,8.55229 4.55228,9 4,9 C3.44772,9 3,8.55229 3,8 C3,7.44772 3.44772,7 4,7 Z M8,7 C8.55229,7 9,7.44772 9,8 C9,8.55229 8.55229,9 8,9 C7.44772,9 7,8.55229 7,8 C7,7.44772 7.44772,7 8,7 Z M12,7 C12.5523,7 13,7.44772 13,8 C13,8.55229 12.5523,9 12,9 C11.4477,9 11,8.55229 11,8 C11,7.44772 11.4477,7 12,7 Z"}))))}),ra=l("n-popselect"),ua=o("popselect-menu","\n box-shadow: var(--n-menu-box-shadow);\n"),da={multiple:Boolean,value:{type:[String,Number,Array],default:null},cancelable:Boolean,options:{type:Array,default:()=>[]},size:{type:String,default:"medium"},scrollable:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onMouseenter:Function,onMouseleave:Function,renderLabel:Function,showCheckmark:{type:Boolean,default:void 0},nodeProps:Function,virtualScroll:Boolean,onChange:[Function,Array]},ca=ce(da),pa=b({name:"PopselectPanel",props:da,setup(e){const a=F(ra),{mergedClsPrefixRef:s,inlineThemeDisabled:l}=r(e),i=t("Popselect","-pop-select",ua,Ae,a.props,s),o=N(()=>Ee(e.options,De("value","children")));function u(a,t){const{onUpdateValue:s,"onUpdate:value":l,onChange:i}=e;s&&n(s,a,t),l&&n(l,a,t),i&&n(i,a,t)}B(T(e,"options"),()=>{x(()=>{a.syncPosition()})});const c=N(()=>{const{self:{menuBoxShadow:e}}=i.value;return{"--n-menu-box-shadow":e}}),p=l?d("select",void 0,c,a.props):void 0;return{mergedTheme:a.mergedThemeRef,mergedClsPrefix:s,treeMate:o,handleToggle:function(t){!function(t){const{value:{getNode:s}}=o;if(e.multiple)if(Array.isArray(e.value)){const a=[],n=[];let l=!0;e.value.forEach(e=>{if(e===t)return void(l=!1);const i=s(e);i&&(a.push(i.key),n.push(i.rawNode))}),l&&(a.push(t),n.push(s(t).rawNode)),u(a,n)}else{const e=s(t);e&&u([t],[e.rawNode])}else if(e.value===t&&e.cancelable)u(null,null);else{const e=s(t);e&&u(t,e.rawNode);const{"onUpdate:show":l,onUpdateShow:i}=a.props;l&&n(l,!1),i&&n(i,!1),a.setShow(!1)}x(()=>{a.syncPosition()})}(t.key)},handleMenuMousedown:function(e){Be(e,"action")||Be(e,"empty")||Be(e,"header")||e.preventDefault()},cssVars:l?void 0:c,themeClass:null==p?void 0:p.themeClass,onRender:null==p?void 0:p.onRender}},render(){var e;return null===(e=this.onRender)||void 0===e||e.call(this),P(Oe,{clsPrefix:this.mergedClsPrefix,focusable:!0,nodeProps:this.nodeProps,class:[`${this.mergedClsPrefix}-popselect-menu`,this.themeClass],style:this.cssVars,theme:this.mergedTheme.peers.InternalSelectMenu,themeOverrides:this.mergedTheme.peerOverrides.InternalSelectMenu,multiple:this.multiple,treeMate:this.treeMate,size:this.size,value:this.value,virtualScroll:this.virtualScroll,scrollable:this.scrollable,renderLabel:this.renderLabel,onToggle:this.handleToggle,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseenter,onMousedown:this.handleMenuMousedown,showCheckmark:this.showCheckmark},{header:()=>{var e,a;return(null===(a=(e=this.$slots).header)||void 0===a?void 0:a.call(e))||[]},action:()=>{var e,a;return(null===(a=(e=this.$slots).action)||void 0===a?void 0:a.call(e))||[]},empty:()=>{var e,a;return(null===(a=(e=this.$slots).empty)||void 0===a?void 0:a.call(e))||[]}})}}),va=b({name:"Popselect",props:Object.assign(Object.assign(Object.assign(Object.assign({},t.props),Ve(ie,["showArrow","arrow"])),{placement:Object.assign(Object.assign({},ie.placement),{default:"bottom"}),trigger:{type:String,default:"hover"}}),da),slots:Object,inheritAttrs:!1,__popover__:!0,setup(e){const{mergedClsPrefixRef:a}=r(e),s=t("Popselect","-popselect",void 0,Ae,e,a),n=V(null);function l(){var e;null===(e=n.value)||void 0===e||e.syncPosition()}function i(e){var a;null===(a=n.value)||void 0===a||a.setShow(e)}return k(ra,{props:e,mergedThemeRef:s,syncPosition:l,setShow:i}),Object.assign(Object.assign({},{syncPosition:l,setShow:i}),{popoverInstRef:n,mergedTheme:s})},render(){const{mergedTheme:e}=this,a={theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:{padding:"0"},ref:"popoverInstRef",internalRenderBody:(e,a,t,s,n)=>{const{$attrs:l}=this;return P(pa,Object.assign({},l,{class:[l.class,e],style:[l.style,...t]},de(this.$props,ca),{ref:Qe(a),onMouseenter:We([s,l.onMouseenter]),onMouseleave:We([n,l.onMouseleave])}),{header:()=>{var e,a;return null===(a=(e=this.$slots).header)||void 0===a?void 0:a.call(e)},action:()=>{var e,a;return null===(a=(e=this.$slots).action)||void 0===a?void 0:a.call(e)},empty:()=>{var e,a;return null===(a=(e=this.$slots).empty)||void 0===a?void 0:a.call(e)}})}};return P(ue,Object.assign({},Ve(this.$props,ca),a,{internalDeactivateImmediately:!0}),{trigger:()=>{var e,a;return null===(a=(e=this.$slots).default)||void 0===a?void 0:a.call(e)}})}}),ma="\n background: var(--n-item-color-hover);\n color: var(--n-item-text-color-hover);\n border: var(--n-item-border-hover);\n",ha=[g("button","\n background: var(--n-button-color-hover);\n border: var(--n-button-border-hover);\n color: var(--n-button-icon-color-hover);\n ")],fa=o("pagination","\n display: flex;\n vertical-align: middle;\n font-size: var(--n-item-font-size);\n flex-wrap: nowrap;\n",[o("pagination-prefix","\n display: flex;\n align-items: center;\n margin: var(--n-prefix-margin);\n "),o("pagination-suffix","\n display: flex;\n align-items: center;\n margin: var(--n-suffix-margin);\n "),u("> *:not(:first-child)","\n margin: var(--n-item-margin);\n "),o("select","\n width: var(--n-select-width);\n "),u("&.transition-disabled",[o("pagination-item","transition: none!important;")]),o("pagination-quick-jumper","\n white-space: nowrap;\n display: flex;\n color: var(--n-jumper-text-color);\n transition: color .3s var(--n-bezier);\n align-items: center;\n font-size: var(--n-jumper-font-size);\n ",[o("input","\n margin: var(--n-input-margin);\n width: var(--n-input-width);\n ")]),o("pagination-item","\n position: relative;\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: var(--n-item-size);\n height: var(--n-item-size);\n padding: var(--n-item-padding);\n background-color: var(--n-item-color);\n color: var(--n-item-text-color);\n border-radius: var(--n-item-border-radius);\n border: var(--n-item-border);\n fill: var(--n-button-icon-color);\n transition:\n color .3s var(--n-bezier),\n border-color .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n fill .3s var(--n-bezier);\n ",[g("button","\n background: var(--n-button-color);\n color: var(--n-button-icon-color);\n border: var(--n-button-border);\n padding: 0;\n ",[o("base-icon","\n font-size: var(--n-button-icon-size);\n ")]),i("disabled",[g("hover",ma,ha),u("&:hover",ma,ha),u("&:active","\n background: var(--n-item-color-pressed);\n color: var(--n-item-text-color-pressed);\n border: var(--n-item-border-pressed);\n ",[g("button","\n background: var(--n-button-color-pressed);\n border: var(--n-button-border-pressed);\n color: var(--n-button-icon-color-pressed);\n ")]),g("active","\n background: var(--n-item-color-active);\n color: var(--n-item-text-color-active);\n border: var(--n-item-border-active);\n ",[u("&:hover","\n background: var(--n-item-color-active-hover);\n ")])]),g("disabled","\n cursor: not-allowed;\n color: var(--n-item-text-color-disabled);\n ",[g("active, button","\n background-color: var(--n-item-color-disabled);\n border: var(--n-item-border-disabled);\n ")])]),g("disabled","\n cursor: not-allowed;\n ",[o("pagination-quick-jumper","\n color: var(--n-jumper-text-color-disabled);\n ")]),g("simple","\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n ",[o("pagination-quick-jumper",[o("input","\n margin: 0;\n ")])])]);function ga(e,a){const t=[];for(let s=e;s<=a;++s)t.push({label:`${s}`,value:s});return t}var ba=b({name:"Pagination",props:Object.assign(Object.assign({},t.props),{simple:Boolean,page:Number,defaultPage:{type:Number,default:1},itemCount:Number,pageCount:Number,defaultPageCount:{type:Number,default:1},showSizePicker:Boolean,pageSize:Number,defaultPageSize:Number,pageSizes:{type:Array,default:()=>[10]},showQuickJumper:Boolean,size:{type:String,default:"medium"},disabled:Boolean,pageSlot:{type:Number,default:9},selectProps:Object,prev:Function,next:Function,goto:Function,prefix:Function,suffix:Function,label:Function,displayOrder:{type:Array,default:["pages","size-picker","quick-jumper"]},to:oe.propTo,showQuickJumpDropdown:{type:Boolean,default:!0},"onUpdate:page":[Function,Array],onUpdatePage:[Function,Array],"onUpdate:pageSize":[Function,Array],onUpdatePageSize:[Function,Array],onPageSizeChange:[Function,Array],onChange:[Function,Array]}),slots:Object,setup(l){const{mergedComponentPropsRef:i,mergedClsPrefixRef:o,inlineThemeDisabled:u,mergedRtlRef:c}=r(l),p=t("Pagination","-pagination",fa,Se,l,o),{localeRef:v}=a("Pagination"),m=V(null),f=V(l.defaultPage),g=V(function(e){var a;if(!e)return 10;const{defaultPageSize:t}=e;if(void 0!==t)return t;const s=null===(a=e.pageSizes)||void 0===a?void 0:a[0];return"number"==typeof s?s:(null==s?void 0:s.value)||10}(l)),b=s(T(l,"page"),f),y=s(T(l,"pageSize"),g),w=N(()=>{const{itemCount:e}=l;if(void 0!==e)return Math.max(1,Math.ceil(e/y.value));const{pageCount:a}=l;return void 0!==a?Math.max(a,1):1}),k=V("");z(()=>{l.simple,k.value=String(b.value)});const C=V(!1),j=V(!1),P=V(!1),F=V(!1),_=N(()=>function(e,a,t,s){let n=!1,l=!1,i=1,o=a;if(1===a)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:o,fastBackwardTo:i,items:[{type:"page",label:1,active:1===e,mayBeFastBackward:!1,mayBeFastForward:!1}]};if(2===a)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:o,fastBackwardTo:i,items:[{type:"page",label:1,active:1===e,mayBeFastBackward:!1,mayBeFastForward:!1},{type:"page",label:2,active:2===e,mayBeFastBackward:!0,mayBeFastForward:!1}]};const r=a;let u=e,d=e;const c=(t-5)/2;d+=Math.ceil(c),d=Math.min(Math.max(d,1+t-3),r-2),u-=Math.floor(c),u=Math.max(Math.min(u,r-t+3),3);let p=!1,v=!1;u>3&&(p=!0),d<r-2&&(v=!0);const m=[];m.push({type:"page",label:1,active:1===e,mayBeFastBackward:!1,mayBeFastForward:!1}),p?(n=!0,i=u-1,m.push({type:"fast-backward",active:!1,label:void 0,options:s?ga(2,u-1):null})):r>=2&&m.push({type:"page",label:2,mayBeFastBackward:!0,mayBeFastForward:!1,active:2===e});for(let h=u;h<=d;++h)m.push({type:"page",label:h,mayBeFastBackward:!1,mayBeFastForward:!1,active:e===h});return v?(l=!0,o=d+1,m.push({type:"fast-forward",active:!1,label:void 0,options:s?ga(d+1,r-1):null})):d===r-2&&m[m.length-1].label!==r-1&&m.push({type:"page",mayBeFastForward:!0,mayBeFastBackward:!1,label:r-1,active:e===r-1}),m[m.length-1].label!==r&&m.push({type:"page",mayBeFastForward:!1,mayBeFastBackward:!1,label:r,active:e===r}),{hasFastBackward:n,hasFastForward:l,fastBackwardTo:i,fastForwardTo:o,items:m}}(b.value,w.value,l.pageSlot,l.showQuickJumpDropdown));z(()=>{_.value.hasFastBackward?_.value.hasFastForward||(C.value=!1,P.value=!1):(j.value=!1,F.value=!1)});const M=N(()=>{const e=v.value.selectionSuffix;return l.pageSizes.map(a=>"number"==typeof a?{label:`${a} / ${e}`,value:a}:a)}),I=N(()=>{var e,a;return(null===(a=null===(e=null==i?void 0:i.value)||void 0===e?void 0:e.Pagination)||void 0===a?void 0:a.inputSize)||ia(l.size)}),S=N(()=>{var e,a;return(null===(a=null===(e=null==i?void 0:i.value)||void 0===e?void 0:e.Pagination)||void 0===a?void 0:a.selectSize)||ia(l.size)}),B=N(()=>(b.value-1)*y.value),$=N(()=>{const e=b.value*y.value-1,{itemCount:a}=l;return void 0!==a&&e>a-1?a-1:e}),O=N(()=>{const{itemCount:e}=l;return void 0!==e?e:(l.pageCount||1)*y.value}),A=e("Pagination",c,o);function U(){x(()=>{var e;const{value:a}=m;a&&(a.classList.add("transition-disabled"),null===(e=m.value)||void 0===e||e.offsetWidth,a.classList.remove("transition-disabled"))})}function R(e){if(e===b.value)return;const{"onUpdate:page":a,onUpdatePage:t,onChange:s,simple:i}=l;a&&n(a,e),t&&n(t,e),s&&n(s,e),f.value=e,i&&(k.value=String(e))}z(()=>{b.value,y.value,U()});const D=N(()=>{const{size:e}=l,{self:{buttonBorder:a,buttonBorderHover:t,buttonBorderPressed:s,buttonIconColor:n,buttonIconColorHover:i,buttonIconColorPressed:o,itemTextColor:r,itemTextColorHover:u,itemTextColorPressed:d,itemTextColorActive:c,itemTextColorDisabled:v,itemColor:m,itemColorHover:f,itemColorPressed:g,itemColorActive:b,itemColorActiveHover:y,itemColorDisabled:w,itemBorder:k,itemBorderHover:C,itemBorderPressed:x,itemBorderActive:j,itemBorderDisabled:P,itemBorderRadius:F,jumperTextColor:_,jumperTextColorDisabled:z,buttonColor:M,buttonColorHover:I,buttonColorPressed:S,[h("itemPadding",e)]:B,[h("itemMargin",e)]:$,[h("inputWidth",e)]:N,[h("selectWidth",e)]:T,[h("inputMargin",e)]:O,[h("selectMargin",e)]:A,[h("jumperFontSize",e)]:U,[h("prefixMargin",e)]:R,[h("suffixMargin",e)]:D,[h("itemSize",e)]:E,[h("buttonIconSize",e)]:L,[h("itemFontSize",e)]:q,[`${h("itemMargin",e)}Rtl`]:H,[`${h("inputMargin",e)}Rtl`]:V},common:{cubicBezierEaseInOut:Q}}=p.value;return{"--n-prefix-margin":R,"--n-suffix-margin":D,"--n-item-font-size":q,"--n-select-width":T,"--n-select-margin":A,"--n-input-width":N,"--n-input-margin":O,"--n-input-margin-rtl":V,"--n-item-size":E,"--n-item-text-color":r,"--n-item-text-color-disabled":v,"--n-item-text-color-hover":u,"--n-item-text-color-active":c,"--n-item-text-color-pressed":d,"--n-item-color":m,"--n-item-color-hover":f,"--n-item-color-disabled":w,"--n-item-color-active":b,"--n-item-color-active-hover":y,"--n-item-color-pressed":g,"--n-item-border":k,"--n-item-border-hover":C,"--n-item-border-disabled":P,"--n-item-border-active":j,"--n-item-border-pressed":x,"--n-item-padding":B,"--n-item-border-radius":F,"--n-bezier":Q,"--n-jumper-font-size":U,"--n-jumper-text-color":_,"--n-jumper-text-color-disabled":z,"--n-item-margin":$,"--n-item-margin-rtl":H,"--n-button-icon-size":L,"--n-button-icon-color":n,"--n-button-icon-color-hover":i,"--n-button-icon-color-pressed":o,"--n-button-color-hover":I,"--n-button-color":M,"--n-button-color-pressed":S,"--n-button-border":a,"--n-button-border-hover":t,"--n-button-border-pressed":s}}),E=u?d("pagination",N(()=>{let e="";const{size:a}=l;return e+=a[0],e}),D,l):void 0;return{rtlEnabled:A,mergedClsPrefix:o,locale:v,selfRef:m,mergedPage:b,pageItems:N(()=>_.value.items),mergedItemCount:O,jumperValue:k,pageSizeOptions:M,mergedPageSize:y,inputSize:I,selectSize:S,mergedTheme:p,mergedPageCount:w,startIndex:B,endIndex:$,showFastForwardMenu:P,showFastBackwardMenu:F,fastForwardActive:C,fastBackwardActive:j,handleMenuSelect:e=>{R(e)},handleFastForwardMouseenter:()=>{l.disabled||(C.value=!0,U())},handleFastForwardMouseleave:()=>{l.disabled||(C.value=!1,U())},handleFastBackwardMouseenter:()=>{j.value=!0,U()},handleFastBackwardMouseleave:()=>{j.value=!1,U()},handleJumperInput:function(e){k.value=e.replace(/\D+/g,"")},handleBackwardClick:function(){l.disabled||R(Math.max(b.value-1,1))},handleForwardClick:function(){l.disabled||R(Math.min(b.value+1,w.value))},handlePageItemClick:function(e){if(!l.disabled)switch(e.type){case"page":R(e.label);break;case"fast-backward":l.disabled||R(Math.max(_.value.fastBackwardTo,1));break;case"fast-forward":l.disabled||R(Math.min(_.value.fastForwardTo,w.value))}},handleSizePickerChange:function(e){!function(e){if(e===y.value)return;const{"onUpdate:pageSize":a,onUpdatePageSize:t,onPageSizeChange:s}=l;a&&n(a,e),t&&n(t,e),s&&n(s,e),g.value=e,w.value<b.value&&R(w.value)}(e)},handleQuickJumperChange:function(){!function(){const e=Number.parseInt(k.value);Number.isNaN(e)||(R(Math.max(1,Math.min(e,w.value))),l.simple||(k.value=""))}()},cssVars:u?void 0:D,themeClass:null==E?void 0:E.themeClass,onRender:null==E?void 0:E.onRender}},render(){const{$slots:e,mergedClsPrefix:a,disabled:t,cssVars:s,mergedPage:n,mergedPageCount:l,pageItems:i,showSizePicker:o,showQuickJumper:r,mergedTheme:u,locale:d,inputSize:c,selectSize:v,mergedPageSize:m,pageSizeOptions:h,jumperValue:g,simple:b,prev:y,next:w,prefix:k,suffix:C,label:x,goto:j,handleJumperInput:F,handleSizePickerChange:_,handleBackwardClick:z,handlePageItemClick:M,handleForwardClick:I,handleQuickJumperChange:S,onRender:B}=this;null==B||B();const $=k||e.prefix,N=C||e.suffix,T=y||e.prev,O=w||e.next,A=x||e.label;return P("div",{ref:"selfRef",class:[`${a}-pagination`,this.themeClass,this.rtlEnabled&&`${a}-pagination--rtl`,t&&`${a}-pagination--disabled`,b&&`${a}-pagination--simple`],style:s},$?P("div",{class:`${a}-pagination-prefix`},$({page:n,pageSize:m,pageCount:l,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null,this.displayOrder.map(e=>{switch(e){case"pages":return P(U,null,P("div",{class:[`${a}-pagination-item`,!T&&`${a}-pagination-item--button`,(n<=1||n>l||t)&&`${a}-pagination-item--disabled`],onClick:z},T?T({page:n,pageSize:m,pageCount:l,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount}):P(p,{clsPrefix:a},{default:()=>this.rtlEnabled?P(we,null):P(ge,null)})),b?P(U,null,P("div",{class:`${a}-pagination-quick-jumper`},P(qe,{value:g,onUpdateValue:F,size:c,placeholder:"",disabled:t,theme:u.peers.Input,themeOverrides:u.peerOverrides.Input,onChange:S}))," /"," ",l):i.map((e,s)=>{let n,l,i;const{type:o}=e;switch(o){case"page":const t=e.label;n=A?A({type:"page",node:t,active:e.active}):t;break;case"fast-forward":const s=this.fastForwardActive?P(p,{clsPrefix:a},{default:()=>this.rtlEnabled?P(ye,null):P(be,null)}):P(p,{clsPrefix:a},{default:()=>P(oa,null)});n=A?A({type:"fast-forward",node:s,active:this.fastForwardActive||this.showFastForwardMenu}):s,l=this.handleFastForwardMouseenter,i=this.handleFastForwardMouseleave;break;case"fast-backward":const o=this.fastBackwardActive?P(p,{clsPrefix:a},{default:()=>this.rtlEnabled?P(be,null):P(ye,null)}):P(p,{clsPrefix:a},{default:()=>P(oa,null)});n=A?A({type:"fast-backward",node:o,active:this.fastBackwardActive||this.showFastBackwardMenu}):o,l=this.handleFastBackwardMouseenter,i=this.handleFastBackwardMouseleave}const r=P("div",{key:s,class:[`${a}-pagination-item`,e.active&&`${a}-pagination-item--active`,"page"!==o&&("fast-backward"===o&&this.showFastBackwardMenu||"fast-forward"===o&&this.showFastForwardMenu)&&`${a}-pagination-item--hover`,t&&`${a}-pagination-item--disabled`,"page"===o&&`${a}-pagination-item--clickable`],onClick:()=>{M(e)},onMouseenter:l,onMouseleave:i},n);if("page"!==o||e.mayBeFastBackward||e.mayBeFastForward){const a="page"===e.type?e.mayBeFastBackward?"fast-backward":"fast-forward":e.type;return"page"===e.type||e.options?P(va,{to:this.to,key:a,disabled:t,trigger:"hover",virtualScroll:!0,style:{width:"60px"},theme:u.peers.Popselect,themeOverrides:u.peerOverrides.Popselect,builtinThemeOverrides:{peers:{InternalSelectMenu:{height:"calc(var(--n-option-height) * 4.6)"}}},nodeProps:()=>({style:{justifyContent:"center"}}),show:"page"!==o&&("fast-backward"===o?this.showFastBackwardMenu:this.showFastForwardMenu),onUpdateShow:e=>{"page"!==o&&(e?"fast-backward"===o?this.showFastBackwardMenu=e:this.showFastForwardMenu=e:(this.showFastBackwardMenu=!1,this.showFastForwardMenu=!1))},options:"page"!==e.type&&e.options?e.options:[],onUpdateValue:this.handleMenuSelect,scrollable:!0,showCheckmark:!1},{default:()=>r}):r}return r}),P("div",{class:[`${a}-pagination-item`,!O&&`${a}-pagination-item--button`,{[`${a}-pagination-item--disabled`]:n<1||n>=l||t}],onClick:I},O?O({page:n,pageSize:m,pageCount:l,itemCount:this.mergedItemCount,startIndex:this.startIndex,endIndex:this.endIndex}):P(p,{clsPrefix:a},{default:()=>this.rtlEnabled?P(ge,null):P(we,null)})));case"size-picker":return!b&&o?P(Fe,Object.assign({consistentMenuWidth:!1,placeholder:"",showCheckmark:!1,to:this.to},this.selectProps,{size:v,options:h,value:m,disabled:t,theme:u.peers.Select,themeOverrides:u.peerOverrides.Select,onUpdateValue:_})):null;case"quick-jumper":return!b&&r?P("div",{class:`${a}-pagination-quick-jumper`},j?j():f(this.$slots.goto,()=>[d.goto]),P(qe,{value:g,onUpdateValue:F,size:c,placeholder:"",disabled:t,theme:u.peers.Input,themeOverrides:u.peerOverrides.Input,onChange:S})):null;default:return null}}),N?P("div",{class:`${a}-pagination-suffix`},N({page:n,pageSize:m,pageCount:l,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null)}}),ya={class:"project-instruction-panel"},wa={key:0,class:"unsupported-state"},ka={class:"resource-path"},Ca={__name:"ProjectInstructionPanel",props:{projectPath:{type:String,required:!0},platform:{type:String,required:!0},instruction:{type:Object,default:()=>({supported:!1,path:null,exists:!1,content:""})}},emits:["updated"],setup(e,{emit:a}){const t=e,s=a,n=re(),l=pe(),i=V(t.instruction.content||""),o=V(!1),r=V(!1);async function u(){o.value=!0;try{const e=await ta(t.projectPath,t.platform,i.value);i.value=e.content??i.value,s("updated",e),n.success("项目指令已保存")}catch(e){n.error(`保存项目指令失败:${e.message}`)}finally{o.value=!1}}function d(){l.warning({title:"删除项目指令",content:`确定删除 ${t.instruction.path} 吗?`,positiveText:"删除",negativeText:"取消",onPositiveClick:async()=>{r.value=!0;try{const e=await na(t.projectPath,t.platform);i.value="",s("updated",e),n.success("项目指令已删除")}catch(e){n.error(`删除项目指令失败:${e.message}`)}finally{r.value=!1}}})}return B(()=>t.instruction,e=>{i.value=e?.content||""},{deep:!0}),(a,t)=>(S(),W("div",ya,[e.instruction?.supported?(S(),W(U,{key:1},[J("div",ka,"目标文件:"+$(e.instruction.path),1),_(L(qe),{value:i.value,"onUpdate:value":t[0]||(t[0]=e=>i.value=e),type:"textarea",rows:16,placeholder:"输入项目指令",disabled:o.value},null,8,["value","disabled"]),_(L(ze),{justify:"end",class:"actions"},{default:O(()=>[e.instruction.exists?(S(),M(L(v),{key:0,"data-action":"delete-instruction",type:"error",secondary:"",loading:r.value,onClick:d},{default:O(()=>[...t[1]||(t[1]=[w(" 删除文件 ",-1)])]),_:1},8,["loading"])):y("",!0),_(L(v),{"data-action":"save-instruction",type:"primary",loading:o.value,onClick:u},{default:O(()=>[...t[2]||(t[2]=[w(" 保存 ",-1)])]),_:1},8,["loading"])]),_:1}),_(L(_e),{depth:"3",class:"hint"},{default:O(()=>[...t[3]||(t[3]=[w(" 写入项目原生文件;修改后通常需要重新启动对应 CLI。 ",-1)])]),_:1})],64)):(S(),W("div",wa," 当前平台不提供项目指令文件 "))]))}},xa=m(Ca,[["__scopeId","data-v-f2f46409"]]),ja={class:"project-mcp-panel"},Pa={class:"panel-toolbar"},Fa={class:"resource-path"},_a={key:2,class:"server-list"},za={class:"server-info"},Ma={class:"server-title"},Ia={class:"server-spec"},Sa={__name:"ProjectMcpPanel",props:{projectPath:{type:String,required:!0},platform:{type:String,required:!0},mcp:{type:Object,default:()=>({supported:!0,servers:[]})}},emits:["updated"],setup(e,{emit:a}){const t=e,s=a,n=re(),l=pe(),i=V(!1),o=V(null),r=V(""),u=V(t.mcp),d=N(()=>u.value||t.mcp||{servers:[]}),c=N(()=>Array.isArray(d.value?.servers)?d.value.servers:[]),p=N(()=>c.value.some(e=>{const a=e.server||{};return Object.keys(a.env||{}).length>0||Object.keys(a.headers||{}).length>0}));function m(e){const a=e.server||{};return"stdio"===a.type?`${a.command||""} ${(a.args||[]).join(" ")}`.trim():a.url||a.type||"MCP"}function h(){o.value=null,i.value=!0}async function f(){i.value=!1,o.value=null,await g(),s("updated")}async function g(){const e=await Xe(t.projectPath,t.platform);u.value=e}return B(()=>t.mcp,e=>{u.value=e},{deep:!0}),B([()=>t.projectPath,()=>t.platform],()=>{t.projectPath&&t.platform&&g().catch(e=>n.error(`加载项目 MCP 失败:${e.message}`))}),(a,u)=>(S(),W("div",ja,[J("div",Pa,[J("span",Fa,"目标文件:"+$(d.value?.path||"当前平台未声明"),1),_(L(v),{size:"small",type:"primary",onClick:h},{default:O(()=>[...u[1]||(u[1]=[w(" 添加 MCP ",-1)])]),_:1})]),p.value?(S(),M(L(Te),{key:0,type:"warning",bordered:!1,style:{"margin-bottom":"12px"}},{default:O(()=>[...u[2]||(u[2]=[w(" 项目 MCP 配置中的静态密钥可能随项目进入 Git,请优先使用环境变量引用。 ",-1)])]),_:1})):y("",!0),0===c.value.length?(S(),M(L(Ue),{key:1,description:"暂无项目 MCP 服务器"})):(S(),W("div",_a,[(S(!0),W(U,null,j(c.value,e=>(S(),W("div",{key:e.id,class:"server-row"},[J("div",za,[J("div",Ma,$(e.id),1),J("div",Ia,$(m(e)),1)]),_(L(ze),{size:"small"},{default:O(()=>[_(L(v),{size:"tiny",loading:r.value===e.id,onClick:a=>async function(e){r.value=e.id;try{const a=await ea(t.projectPath,t.platform,e.id);a.success?n.success(`${e.id} 连接成功`):n.error(a.message||`${e.id} 连接失败`)}catch(a){n.error(`测试失败:${a.message}`)}finally{r.value=""}}(e)},{default:O(()=>[...u[3]||(u[3]=[w("测试",-1)])]),_:1},8,["loading","onClick"]),_(L(v),{size:"tiny",disabled:e.external,onClick:a=>function(e){o.value={id:e.id,...e},i.value=!0}(e)},{default:O(()=>[...u[4]||(u[4]=[w("编辑",-1)])]),_:1},8,["disabled","onClick"]),_(L(v),{size:"tiny",type:"error",secondary:"",disabled:e.external,onClick:a=>function(e){l.warning({title:"移除项目 MCP",content:`确定从当前项目移除 ${e.id} 吗?用户级配置不会被删除。`,positiveText:"移除",negativeText:"取消",onPositiveClick:async()=>{try{await aa(t.projectPath,t.platform,e.id),await g(),s("updated"),n.success("项目 MCP 已移除")}catch(a){n.error(`移除失败:${a.message}`)}}})}(e)},{default:O(()=>[...u[5]||(u[5]=[w("移除",-1)])]),_:1},8,["disabled","onClick"])]),_:2},1024)]))),128))])),_(fe,{visible:i.value,"onUpdate:visible":u[0]||(u[0]=e=>i.value=e),"editing-server":o.value,"existing-ids":c.value.map(e=>e.id),scope:"project","project-path":e.projectPath,platform:e.platform,onSaved:f},null,8,["visible","editing-server","existing-ids","project-path","platform"])]))}},Ba=m(Sa,[["__scopeId","data-v-1ebbb765"]]),$a={class:"project-config-content"},Na={class:"project-config-header"},Ta={key:0,class:"unsupported-state"},Oa={key:0,class:"unsupported-state"},Aa=m({__name:"ProjectConfigDrawer",props:{show:{type:Boolean,default:!1},projectPath:{type:String,default:""},platform:{type:String,default:"claude"}},emits:["update:show"],setup(e,{emit:a}){const t=e,s=a,{drawerWidth:n}=Ce(760),l=N({get:()=>t.show,set:e=>s("update:show",e)}),i=[{label:"Claude",value:"claude"},{label:"Codex",value:"codex"},{label:"Gemini",value:"gemini"},{label:"OpenCode",value:"opencode"},{label:"OMP",value:"omp"}],o=V(t.platform||"claude"),r=V("instruction"),u=V(null),d=V(!1),c=V(0);async function p(){if(!t.projectPath||!o.value)return;const e=++c.value;d.value=!0;try{const a=await sa(t.projectPath,o.value);if(e!==c.value)return;u.value=a}finally{e===c.value&&(d.value=!1)}}return B(l,e=>{e?(o.value=t.platform||"claude",r.value="instruction",p()):c.value+=1}),B([()=>t.projectPath,()=>t.platform,o],([e,a],t)=>{l.value&&e&&a&&(a===t?.[1]&&e===t?.[0]||p())}),I(()=>{l.value&&p()}),(a,t)=>(S(),M(L(ke),{show:l.value,"onUpdate:show":t[2]||(t[2]=e=>l.value=e),width:L(n),placement:"right","show-mask":!0},{default:O(()=>[_(L(xe),{title:"项目配置",closable:"","native-scrollbar":!1},{default:O(()=>[J("div",$a,[J("div",Na,[J("div",null,[t[3]||(t[3]=J("div",{class:"project-config-title"},"当前项目",-1)),_(L(_e),{depth:"3",class:"project-path"},{default:O(()=>[w($(e.projectPath),1)]),_:1})]),_(L(Fe),{value:o.value,"onUpdate:value":t[0]||(t[0]=e=>o.value=e),size:"small",options:i,disabled:d.value,style:{width:"130px"}},null,8,["value","disabled"])]),_(L(Me),{show:d.value},{default:O(()=>[_(L(he),{value:r.value,"onUpdate:value":t[1]||(t[1]=e=>r.value=e),type:"line",animated:""},{default:O(()=>[_(L(me),{name:"instruction",tab:"项目指令"},{default:O(()=>[_(xa,{"project-path":e.projectPath,platform:o.value,instruction:u.value?.instruction,onUpdated:p},null,8,["project-path","platform","instruction"])]),_:1}),_(L(me),{name:"skills",tab:"Skills"},{default:O(()=>[!1===u.value?.capabilities?.skills?(S(),W("div",Ta," 当前平台不提供项目 Skills ")):(S(),M(Pe,{key:1,platform:o.value,"project-path":e.projectPath,scope:"project","in-drawer":"","drawer-visible":l.value},null,8,["platform","project-path","drawer-visible"]))]),_:1}),_(L(me),{name:"mcp",tab:"MCP"},{default:O(()=>[!1===u.value?.capabilities?.mcp?(S(),W("div",Oa," 当前平台不提供项目 MCP ")):(S(),M(Ba,{key:1,"project-path":e.projectPath,platform:o.value,mcp:u.value?.mcp,onUpdated:p},null,8,["project-path","platform","mcp"]))]),_:1})]),_:1},8,["value"])]),_:1},8,["show"])])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-e9a405fe"]]),Ua={class:"session-list-container"},Ra={class:"header"},Da={class:"title-bar"},Ea={class:"title-section"},La={class:"title-with-count"},qa={class:"header-actions"},Ha={key:0,class:"loading-container"},Va={key:1,class:"loading-container compact"},Qa={key:3,class:"sessions-list"},Wa=["onMouseenter","onClick"],Ja={class:"session-left"},Ka={class:"session-icon"},Za={class:"session-info"},Ga={class:"session-header"},Ya={class:"session-title-row"},Xa={class:"session-title"},et={class:"session-meta"},at={class:"session-right"},tt={class:"session-tags-area"},st={key:0,class:"session-actions"},nt={key:0,style:{"max-height":"70vh","overflow-y":"auto"}},lt={class:"search-result-header"},it={class:"search-result-title"},ot="__full__",rt=m({__name:"SessionList",props:{projectName:{type:String,required:!0}},setup(e){const a=e,t=D(),s=H(),n=Ye(),{addFavorite:l,removeFavorite:i,isFavorite:o}=Ne(),r=N(()=>K(s)),u=V(a.projectName),d=N(()=>u.value||a.projectName),p=V(""),m=V(null),h=V(!1),f=V(null),g=V(""),b=V(null),k=V([]),P=V(1),F=V(null),z=V(!1),T=V(!1),ie=V(null),oe=V(!1),re=V(!1),ue=V([]),de=V(!1),ce=V(!1),pe=V(null),me=V(""),he=V(ot),fe=V(!1),ge=V(!1),be=V([]),ye=V(!1),we=V(""),ke=V(""),Ce=V(null);function xe(e){return"string"==typeof e&&(e.startsWith("/")||/^[A-Za-z]:[\\/]/.test(e)||e.startsWith("\\\\"))}const Pe=N(()=>{const e=d.value;return n.projects.find(a=>a.name===e)||n.projects.find(e=>e.displayName===a.projectName||e.fullPath===a.projectName||e.path===a.projectName)||null}),Se=N(()=>[n.currentProjectInfo?.fullPath,n.currentProjectInfo?.path,Pe.value?.fullPath,Pe.value?.path].find(xe)||""),Be=N(()=>n.currentProjectInfo?.displayName||Pe.value?.displayName||a.projectName),Oe=N(()=>Se.value||n.currentProjectInfo?.fullPath||Pe.value?.fullPath||Pe.value?.path||d.value),Ae=N(()=>new Set(ue.value)),De=N(()=>ue.value.length),Ee=N(()=>k.value.length>0&&k.value.every(e=>Ae.value.has(e.sessionId))),Ve=N(()=>De.value>0&&!Ee.value);async function Qe(){n.projects.length||await n.fetchProjects();const e=n.projects.find(e=>e.name===a.projectName);if(e)return u.value=e.name,e.name;const s=n.projects.find(e=>e.displayName===a.projectName||e.fullPath===a.projectName||e.path===a.projectName);return s?(u.value=s.name,s.name!==a.projectName&&await t.replace({name:"cli-sessions",params:{platform:r.value,projectName:s.name}}),s.name):(u.value=a.projectName,a.projectName)}async function We(e={}){const a=await Qe(),t=e.page??P.value,s=e.limit??n.sessionsPagination.limit;await n.fetchSessions(a,{page:t,limit:s,...e})}async function Xe(e){P.value=e,await We({page:e})}function ea(){t.push({name:"cli-projects",params:{platform:r.value}})}async function aa(){if(p.value){oe.value=!0;try{const e=await Ke(d.value,p.value,35,r.value);F.value=e,z.value=!0}catch(e){Re.error("搜索失败: "+e.message)}finally{oe.value=!1}}}function ta(){re.value=!0,b.value=null}function sa(){re.value=!1,ue.value=[],b.value=null}function na(e){return Ae.value.has(e)}function la(e,a=!na(e)){const t=new Set(ue.value);a?t.add(e):t.delete(e),ue.value=Array.from(t)}function ia(e){ue.value=e?k.value.map(e=>e.sessionId):[]}function oa(e){re.value?la(e.sessionId):function(e){we.value=e.sessionId,ke.value=e.alias||"",ye.value=!0,x(()=>{Ce.value?.open()})}(e)}async function ra(){if(f.value)try{const e=f.value.sessionId;g.value?(await n.setAlias(e,g.value),Re.success("别名设置成功")):(await n.deleteAlias(e),Re.success("别名已删除")),h.value=!1,f.value=null,g.value=""}catch(e){Re.error("操作失败: "+e.message)}}function ua(){ce.value=!1,pe.value=null,me.value="",he.value=ot,be.value=[],fe.value=!1,ge.value=!1}async function da(){if(pe.value)try{ge.value=!0,await n.forkSession(pe.value.sessionId,{afterUserMessageNumber:he.value===ot?null:he.value,alias:me.value?.trim()||void 0}),Re.success("Fork 成功!"),ua()}catch(e){Re.error("Fork 失败: "+e.message)}finally{ge.value=!1}}function ca(e){Re.error(e)}function pa(e){const a=new Set((e||[]).filter(Boolean));0!==a.size&&(ue.value=ue.value.filter(e=>!a.has(e)),we.value&&a.has(we.value)&&(ye.value=!1,we.value="",ke.value=""))}async function va(e){try{const{copyResult:a}=await Ze(d.value,e,r.value);if("manual"===a?.method)return void Re.warning("自动复制失败,已弹出手动复制框");Re.success("启动命令已复制到剪贴板")}catch(a){Re.error("复制失败: "+a.message)}}function ma(){if(0===De.value)return void Re.warning("请先选择要删除的会话");const e=[...ue.value];Ie.warning({title:"批量删除会话",content:`确定要删除选中的 ${e.length} 个会话吗?此操作不可恢复!`,positiveText:"确定删除",negativeText:"取消",onPositiveClick:async()=>{de.value=!0;try{const a=await n.deleteSessions(e);if(pa(a.deletedSessionIds),0===a.failed.length)return Re.success(`已删除 ${a.deletedSessionIds.length} 个会话`),void sa();ue.value=a.failed.map(e=>e.sessionId),a.deletedSessionIds.length>0?Re.warning(`已删除 ${a.deletedSessionIds.length} 个会话,${a.failed.length} 个删除失败`):Re.error(`删除失败: ${a.failed[0].error.message}`)}finally{de.value=!1}}})}function ha(e){if(!e)return"0 B";const a=1024;return e<a?e+" B":e<a*a?(e/a).toFixed(1)+" KB":(e/a/a).toFixed(1)+" MB"}function fa(e,a){if(!a||!e)return e;const t=new RegExp(`(${a})`,"gi");return e.replace(t,'<mark style="background-color: #ffd700; padding: 2px 4px; border-radius: 2px; font-weight: 600;">$1</mark>')}function ga(e,a=80){return e?e.length>a?e.substring(0,a)+"...":e:""}B(()=>n.sessionsWithAlias,e=>{k.value=[...e];const a=new Set(e.map(e=>e.sessionId));ue.value=ue.value.filter(e=>a.has(e)),re.value&&0===e.length&&sa()},{immediate:!0});let ya=0,wa=!1;async function ka(){if("visible"!==document.visibilityState||wa)return;const e=Date.now();if(!(e-ya<3e4)){wa=!0,ya=e;try{const e=ie.value?.scrollTop||0,a=await Qe();await n.fetchSessions(a,{page:P.value,limit:n.sessionsPagination.limit,force:!0,silent:!0,fresh:!0}),await x(),ie.value&&(ie.value.scrollTop=e)}finally{wa=!1}}}function Ca(){"visible"===document.visibilityState&&ka().catch(()=>{})}function xa(){ka().catch(()=>{})}function ja(e){(e.metaKey||e.ctrlKey)&&"k"===String(e.key).toLowerCase()&&(e.preventDefault(),m.value?.querySelector?.("input")?.focus?.())}return B([r,()=>a.projectName],([e])=>{T.value=!1,sa(),n.setChannel(e),P.value=1,We()},{immediate:!0}),I(()=>{document.addEventListener("visibilitychange",Ca),window.addEventListener("focus",xa),document.addEventListener("keydown",ja)}),C(()=>{document.removeEventListener("visibilitychange",Ca),window.removeEventListener("focus",xa),document.removeEventListener("keydown",ja)}),(e,a)=>(S(),W("div",Ua,[J("div",Ra,[J("div",Da,[_(L(v),{size:"small",onClick:ea,class:"back-button"},{icon:O(()=>[_(L(c),{size:"18"},{default:O(()=>[_(L(G))]),_:1})]),_:1}),J("div",Ea,[J("div",La,[_(L(je),null,{default:O(()=>[w($(Be.value),1)]),_:1}),_(L(_e),{depth:"3",class:"session-count"},{default:O(()=>[w("("+$(L(n).sessionsPagination.total)+" 个对话)",1)]),_:1}),_(L(He),{size:"small",bordered:!1,type:"info",class:"total-size-tag"},{default:O(()=>[w($(ha(L(n).totalSize)),1)]),_:1}),J("div",qa,[re.value?(S(),W(U,{key:0},[_(L(Le),{checked:Ee.value,indeterminate:Ve.value,disabled:0===k.value.length||de.value,"onUpdate:checked":ia},{default:O(()=>[...a[14]||(a[14]=[w(" 全选 ",-1)])]),_:1},8,["checked","indeterminate","disabled"]),_(L(_e),{depth:"3"},{default:O(()=>[w("已选 "+$(De.value)+" 个",1)]),_:1}),_(L(v),{size:"small",type:"error",disabled:0===De.value,loading:de.value,onClick:ma},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(le))]),_:1})]),default:O(()=>[a[15]||(a[15]=w(" 删除 ",-1))]),_:1},8,["disabled","loading"]),_(L(v),{size:"small",disabled:de.value,onClick:sa},{default:O(()=>[...a[16]||(a[16]=[w(" 完成 ",-1)])]),_:1},8,["disabled"])],64)):(S(),W(U,{key:1},[_(L(v),{size:"small",type:"error",secondary:"",onClick:ta},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(le))]),_:1})]),default:O(()=>[a[17]||(a[17]=w(" 管理 ",-1))]),_:1}),_(L(v),{size:"small",type:"primary",secondary:"",disabled:!Se.value,onClick:a[0]||(a[0]=e=>T.value=!0)},{default:O(()=>[...a[18]||(a[18]=[w(" 项目配置 ",-1)])]),_:1},8,["disabled"])],64))])]),_(L(_e),{depth:"3",class:"project-path"},{default:O(()=>[w($(Oe.value),1)]),_:1})]),J("div",{ref_key:"searchInputContainer",ref:m,class:"search-input-container"},[_(L(qe),{value:p.value,"onUpdate:value":a[1]||(a[1]=e=>p.value=e),placeholder:"搜索会话...(Cmd/Ctrl+K)",clearable:"",class:"search-input",onKeyup:q(aa,["enter"]),disabled:oe.value},{prefix:O(()=>[_(L(c),null,{default:O(()=>[_(L(ae))]),_:1})]),suffix:O(()=>[_(L(v),{text:"",onClick:aa,disabled:!p.value||oe.value,loading:oe.value},{default:O(()=>[...a[19]||(a[19]=[w(" 搜索 ",-1)])]),_:1},8,["disabled","loading"])]),_:1},8,["value","disabled"])],512)])]),J("div",{class:"content",ref_key:"contentEl",ref:ie},[L(n).loading&&0===L(n).sessions.length&&!L(n).sessionsPending?(S(),W("div",Ha,[_(L(Me),{size:"large"},{description:O(()=>[...a[20]||(a[20]=[w(" 加载会话列表... ",-1)])]),_:1})])):L(n).sessionsPending?(S(),W("div",Va,[_(L(Me),{size:"small"},{description:O(()=>[...a[21]||(a[21]=[w(" 正在生成会话列表... ",-1)])]),_:1})])):L(n).error&&0===L(n).sessions.length?(S(),M(L(Te),{key:2,type:"error",title:"加载失败",style:{"margin-bottom":"16px"}},{default:O(()=>[w($(L(n).error),1)]),_:1})):k.value.length>0?(S(),W("div",Qa,[(S(!0),W(U,null,j(k.value,e=>(S(),W("div",{key:e.sessionId},[J("div",{class:R(["session-item",{"session-item-selected":na(e.sessionId),"session-item-selection-mode":re.value}]),onMouseenter:a=>b.value=e.sessionId,onMouseleave:a[3]||(a[3]=e=>b.value=null),onClick:a=>oa(e)},[re.value?(S(),W("div",{key:0,class:"selection-checkbox",onClick:a[2]||(a[2]=E(()=>{},["stop"]))},[_(L(Le),{checked:na(e.sessionId),"onUpdate:checked":a=>la(e.sessionId,a)},null,8,["checked","onUpdate:checked"])])):y("",!0),J("div",Ja,[J("div",Ka,[_(L(c),{size:"24",color:"#18a058"},{default:O(()=>[_(L(Y))]),_:1})]),J("div",Za,[J("div",Ga,[J("div",Ya,[J("span",Xa,$(e.alias?`${e.alias} (${e.sessionId.substring(0,8)})`:e.sessionId),1),e.forkedFrom?(S(),M(L($e),{key:0,placement:"top"},{trigger:O(()=>[_(L(He),{size:"small",type:"warning",bordered:!1,style:{"margin-left":"8px",cursor:"help"}},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(X))]),_:1})]),default:O(()=>[a[22]||(a[22]=w(" Fork ",-1))]),_:1})]),default:O(()=>[w(" Fork 自: "+$(e.forkedFrom),1)]),_:2},1024)):y("",!0)])]),J("div",et,[_(L(_e),{depth:"3"},{default:O(()=>{return[w($((a=e.mtime,a?new Date(a).toLocaleString("zh-CN"):"")),1)];var a}),_:2},1024),_(L(_e),{depth:"3"},{default:O(()=>[...a[23]||(a[23]=[w("•",-1)])]),_:1}),_(L(He),{size:"small",bordered:!1},{default:O(()=>[w($(ha(e.size)),1)]),_:2},1024)]),e.firstMessage?(S(),M(L(_e),{key:0,depth:"3",class:"session-message"},{default:O(()=>[w($(ga(e.firstMessage,80)),1)]),_:2},1024)):e.gitBranch||e.summary?y("",!0):(S(),M(L(_e),{key:1,depth:"3",class:"session-message session-message-empty"},{default:O(()=>[...a[24]||(a[24]=[w(" 暂未读取到对话内容 ",-1)])]),_:1}))])]),J("div",at,[J("div",tt,[e.gitBranch?(S(),M(L(He),{key:0,size:"small",type:"info",bordered:!1},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(X))]),_:1})]),default:O(()=>[w(" "+$(e.gitBranch),1)]),_:2},1024)):y("",!0)]),re.value?y("",!0):(S(),W("div",st,[_(L(ze),null,{default:O(()=>[Q(_(L(v),{size:"small",type:"error",onClick:E(a=>{return t=e.sessionId,void Ie.warning({title:"删除会话",content:"确定要删除这个会话吗?此操作不可恢复!",positiveText:"确定删除",negativeText:"取消",onPositiveClick:async()=>{try{await n.deleteSession(t),pa([t]),Re.success("会话已删除")}catch(e){Re.error("删除失败: "+e.message)}}});var t},["stop"])},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(le))]),_:1})]),default:O(()=>[a[25]||(a[25]=w(" 删除 ",-1))]),_:1},8,["onClick"]),[[A,b.value===e.sessionId]]),_(L(v),{size:"small",onClick:E(a=>function(e){f.value=e,g.value=e.alias||"",h.value=!0}(e),["stop"])},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(ne))]),_:1})]),default:O(()=>[a[26]||(a[26]=w(" 别名 ",-1))]),_:1},8,["onClick"]),_(L(v),{size:"small",type:L(o)(r.value,d.value,e.sessionId)?"warning":"default",onClick:E(a=>async function(e){const a=r.value,t=o(a,d.value,e.sessionId);try{if(t)await i(a,d.value,e.sessionId),Re.success("已取消收藏");else{const t={sessionId:e.sessionId,projectName:d.value,projectDisplayName:Be.value,projectFullPath:Oe.value,alias:e.alias||"",firstMessage:e.firstMessage||"",mtime:e.mtime,size:e.size,gitBranch:e.gitBranch||"",forkedFrom:e.forkedFrom||""};await l(a,t),Re.success("已添加到收藏")}}catch(s){Re.error("操作失败: "+s.message)}}(e),["stop"])},{icon:O(()=>[_(L(c),null,{default:O(()=>[L(o)(r.value,d.value,e.sessionId)?(S(),M(L(se),{key:0})):(S(),M(L(ee),{key:1}))]),_:2},1024)]),default:O(()=>[w(" "+$(L(o)(r.value,d.value,e.sessionId)?"已收藏":"收藏"),1)]),_:2},1032,["type","onClick"]),"opencode"!==r.value?(S(),M(L(v),{key:0,size:"small",onClick:E(a=>async function(e){if("opencode"!==r.value)try{const a=k.value.find(a=>a.sessionId===e);pe.value=a||{sessionId:e},me.value="",he.value=ot,be.value=[{label:"完整会话末尾(保留全部消息)",value:ot}],ce.value=!0,fe.value=!0;const t=await Je(d.value,e,r.value),s=Array.isArray(t?.items)?t.items:[];be.value=[{label:"完整会话末尾(保留全部消息)",value:ot},...s.map(e=>({label:`保留到第 ${e.userMessageNumber} 条用户消息这一轮 · ${e.preview}`,value:e.userMessageNumber}))]}catch(a){Re.error("加载 Fork 位置失败: "+a.message),ua()}finally{fe.value=!1}else Re.warning("OpenCode 当前不支持该 Fork 操作")}(e.sessionId),["stop"])},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(X))]),_:1})]),default:O(()=>[a[27]||(a[27]=w(" Fork ",-1))]),_:1},8,["onClick"])):y("",!0),_(L(v),{size:"small",type:"primary",onClick:E(a=>va(e.sessionId),["stop"])},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(te))]),_:1})]),default:O(()=>[a[28]||(a[28]=w(" 使用对话 ",-1))]),_:1},8,["onClick"])]),_:2},1024)]))])],42,Wa)]))),128))])):y("",!0),L(n).sessionsPagination.total>L(n).sessionsPagination.limit?(S(),M(L(ba),{key:4,page:P.value,"onUpdate:page":[a[4]||(a[4]=e=>P.value=e),Xe],"page-count":Math.ceil(L(n).sessionsPagination.total/L(n).sessionsPagination.limit),"page-size":L(n).sessionsPagination.limit,"show-quick-jumper":"",class:"list-pagination"},null,8,["page","page-count","page-size"])):y("",!0),L(n).loading||L(n).error||L(n).sessionsPending||0!==k.value.length?y("",!0):(S(),M(L(Ue),{key:5,description:p.value?"当前页没有匹配的会话":"没有找到会话",style:{"margin-top":"60px"}},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(Z))]),_:1})]),_:1},8,["description"]))],512),_(L(ve),{show:h.value,"onUpdate:show":a[7]||(a[7]=e=>h.value=e),preset:"dialog",title:"设置别名"},{action:O(()=>[_(L(ze),null,{default:O(()=>[_(L(v),{onClick:a[6]||(a[6]=e=>h.value=!1)},{default:O(()=>[...a[29]||(a[29]=[w("取消",-1)])]),_:1}),_(L(v),{type:"primary",onClick:ra},{default:O(()=>[...a[30]||(a[30]=[w("确定",-1)])]),_:1})]),_:1})]),default:O(()=>[_(L(qe),{value:g.value,"onUpdate:value":a[5]||(a[5]=e=>g.value=e),placeholder:"输入别名(留空删除)",onKeyup:q(ra,["enter"])},null,8,["value"])]),_:1},8,["show"]),_(L(ve),{show:ce.value,"onUpdate:show":a[10]||(a[10]=e=>ce.value=e),preset:"dialog",title:"Fork 对话"},{action:O(()=>[_(L(ze),null,{default:O(()=>[_(L(v),{disabled:ge.value,onClick:ua},{default:O(()=>[...a[32]||(a[32]=[w("取消",-1)])]),_:1},8,["disabled"]),_(L(v),{type:"primary",loading:ge.value,onClick:da},{default:O(()=>[...a[33]||(a[33]=[w(" 确认 Fork ",-1)])]),_:1},8,["loading"])]),_:1})]),default:O(()=>[_(L(ze),{vertical:"",size:14},{default:O(()=>[_(L(_e),{depth:"3"},{default:O(()=>[...a[31]||(a[31]=[w(" 可选择保留到第几条用户消息所在轮次;会包含这条消息后 AI 的完整输出。 ",-1)])]),_:1}),_(L(Fe),{value:he.value,"onUpdate:value":a[8]||(a[8]=e=>he.value=e),options:be.value,loading:fe.value,clearable:"",placeholder:"选择保留到哪一轮(默认完整会话)"},null,8,["value","options","loading"]),_(L(qe),{value:me.value,"onUpdate:value":a[9]||(a[9]=e=>me.value=e),placeholder:"输入新会话别名(可选)",maxlength:"120"},null,8,["value"])]),_:1})]),_:1},8,["show"]),_(L(ve),{show:z.value,"onUpdate:show":a[11]||(a[11]=e=>z.value=e),preset:"card",title:"搜索结果",style:{width:"1200px"}},{default:O(()=>[F.value?(S(),W("div",nt,[_(L(Te),{type:"info",style:{"margin-bottom":"16px"}},{default:O(()=>[w(' 关键词 "'+$(F.value.keyword)+'" 共找到 '+$(F.value.totalMatches)+" 处匹配 ",1)]),_:1}),(S(!0),W(U,null,j(F.value.sessions,e=>(S(),W("div",{key:e.sessionId,class:"search-result-item"},[J("div",lt,[J("div",it,[_(L(_e),{strong:""},{default:O(()=>[w($(e.alias?`${e.alias} (${e.sessionId.substring(0,8)})`:e.sessionId.substring(0,8)),1)]),_:2},1024),_(L(He),{size:"small",bordered:!1},{default:O(()=>[w($(e.matchCount)+" 个匹配",1)]),_:2},1024)]),_(L(v),{size:"small",type:"primary",onClick:a=>va(e.sessionId)},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(te))]),_:1})]),default:O(()=>[a[34]||(a[34]=w(" 使用对话 ",-1))]),_:1},8,["onClick"])]),(S(!0),W(U,null,j(e.matches,(e,a)=>(S(),W("div",{key:a,class:"search-match"},[_(L(He),{size:"tiny",type:"user"===e.role?"info":"success",bordered:!1},{default:O(()=>[w($("user"===e.role?"用户":"助手"),1)]),_:2},1032,["type"]),_(L(_e),{depth:"3",class:"search-match-text",innerHTML:fa(e.context,F.value.keyword)},null,8,["innerHTML"])]))),128))]))),128)),0===F.value.sessions.length?(S(),M(L(Ue),{key:0,description:"没有找到匹配的内容"})):y("",!0)])):y("",!0)]),_:1},8,["show"]),we.value?(S(),M(Ge,{key:0,ref_key:"chatHistoryRef",ref:Ce,show:ye.value,"onUpdate:show":a[12]||(a[12]=e=>ye.value=e),"project-name":d.value,"session-id":we.value,"session-alias":ke.value,channel:r.value,onError:ca},null,8,["show","project-name","session-id","session-alias","channel"])):y("",!0),_(Aa,{show:T.value,"onUpdate:show":a[13]||(a[13]=e=>T.value=e),"project-path":Se.value,platform:r.value},null,8,["show","project-path","platform"])]))}},[["__scopeId","data-v-66cfe9c9"]]);export{rt as default};
|
|
1
|
+
import{I as e,L as a,N as t,Qt as s,Tt as n,Yt as l,bn as i,gn as o,gt as r,hn as u,ht as d,i as c,j as p,s as v,t as m,xn as h,xt as f,yn as g}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as b,C as y,D as w,G as k,H as C,I as x,K as j,M as P,N as F,O as _,Q as z,S as M,V as I,W as S,Z as B,_t as $,b as N,dt as T,et as O,f as A,g as U,ht as R,i as D,m as E,mt as L,p as q,r as H,st as V,tt as Q,w as W,x as J}from"./vue-vendor-BqZbbXHA.js";import{r as K}from"./platforms-JV36QBCw.js";import{$ as Z,At as G,Ct as Y,U as X,c as ee,g as ae,i as te,l as se,nt as ne,r as le}from"./icons-B-AzZoeE.js";import{d as ie,k as oe,t as re,u as ue,x as de}from"./use-message-DBsCm7FJ.js";import{F as ce,S as pe,l as ve}from"./light-C2X7hegj.js";import{c as me,s as he}from"./AssetPathField-BzwSZryS.js";import{t as fe}from"./McpFormDrawer-w1EJUIsa.js";import{i as ge,n as be,r as ye,t as we}from"./Forward-DLCL7aMY.js";import{n as ke,t as Ce}from"./useResponsiveDrawer-Cn6gH3VG.js";import{t as xe}from"./DrawerContent-ChXgZ1Xm.js";import{t as je}from"./headers-DbowkmZJ.js";import{t as Pe}from"./SkillsPanel-obdDEThm.js";import{$ as Fe,A as _e,H as ze,M as Me,O as Ie,Q as Se,Tt as Be,Y as $e,_ as Ne,ct as Te,dt as Oe,et as Ae,ft as Ue,k as Re,ot as De,pt as Ee,rt as Le,st as qe,ut as He,vt as Ve,xt as Qe,yt as We}from"./index-aW6itxZg.js";import{c as Je,f as Ke,t as Ze}from"./sessions-WXODMvLY.js";import Ge from"./ChatHistoryDrawer-BVbfqK-u.js";import{t as Ye}from"./sessions-wvj5oaYr.js";import{i as Xe,l as ea,n as aa,o as ta,r as sa,t as na}from"./project-config-CzFKBw_m.js";var la={tiny:"mini",small:"tiny",medium:"small",large:"medium",huge:"large"};function ia(e){const a=la[e];if(void 0===a)throw new Error(`${e} has no smaller size.`);return a}var oa=b({name:"More",render:()=>P("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},P("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},P("g",{fill:"currentColor","fill-rule":"nonzero"},P("path",{d:"M4,7 C4.55228,7 5,7.44772 5,8 C5,8.55229 4.55228,9 4,9 C3.44772,9 3,8.55229 3,8 C3,7.44772 3.44772,7 4,7 Z M8,7 C8.55229,7 9,7.44772 9,8 C9,8.55229 8.55229,9 8,9 C7.44772,9 7,8.55229 7,8 C7,7.44772 7.44772,7 8,7 Z M12,7 C12.5523,7 13,7.44772 13,8 C13,8.55229 12.5523,9 12,9 C11.4477,9 11,8.55229 11,8 C11,7.44772 11.4477,7 12,7 Z"}))))}),ra=l("n-popselect"),ua=o("popselect-menu","\n box-shadow: var(--n-menu-box-shadow);\n"),da={multiple:Boolean,value:{type:[String,Number,Array],default:null},cancelable:Boolean,options:{type:Array,default:()=>[]},size:{type:String,default:"medium"},scrollable:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onMouseenter:Function,onMouseleave:Function,renderLabel:Function,showCheckmark:{type:Boolean,default:void 0},nodeProps:Function,virtualScroll:Boolean,onChange:[Function,Array]},ca=ce(da),pa=b({name:"PopselectPanel",props:da,setup(e){const a=F(ra),{mergedClsPrefixRef:s,inlineThemeDisabled:l}=r(e),i=t("Popselect","-pop-select",ua,Ae,a.props,s),o=N(()=>Ee(e.options,De("value","children")));function u(a,t){const{onUpdateValue:s,"onUpdate:value":l,onChange:i}=e;s&&n(s,a,t),l&&n(l,a,t),i&&n(i,a,t)}B(T(e,"options"),()=>{x(()=>{a.syncPosition()})});const c=N(()=>{const{self:{menuBoxShadow:e}}=i.value;return{"--n-menu-box-shadow":e}}),p=l?d("select",void 0,c,a.props):void 0;return{mergedTheme:a.mergedThemeRef,mergedClsPrefix:s,treeMate:o,handleToggle:function(t){!function(t){const{value:{getNode:s}}=o;if(e.multiple)if(Array.isArray(e.value)){const a=[],n=[];let l=!0;e.value.forEach(e=>{if(e===t)return void(l=!1);const i=s(e);i&&(a.push(i.key),n.push(i.rawNode))}),l&&(a.push(t),n.push(s(t).rawNode)),u(a,n)}else{const e=s(t);e&&u([t],[e.rawNode])}else if(e.value===t&&e.cancelable)u(null,null);else{const e=s(t);e&&u(t,e.rawNode);const{"onUpdate:show":l,onUpdateShow:i}=a.props;l&&n(l,!1),i&&n(i,!1),a.setShow(!1)}x(()=>{a.syncPosition()})}(t.key)},handleMenuMousedown:function(e){Be(e,"action")||Be(e,"empty")||Be(e,"header")||e.preventDefault()},cssVars:l?void 0:c,themeClass:null==p?void 0:p.themeClass,onRender:null==p?void 0:p.onRender}},render(){var e;return null===(e=this.onRender)||void 0===e||e.call(this),P(Oe,{clsPrefix:this.mergedClsPrefix,focusable:!0,nodeProps:this.nodeProps,class:[`${this.mergedClsPrefix}-popselect-menu`,this.themeClass],style:this.cssVars,theme:this.mergedTheme.peers.InternalSelectMenu,themeOverrides:this.mergedTheme.peerOverrides.InternalSelectMenu,multiple:this.multiple,treeMate:this.treeMate,size:this.size,value:this.value,virtualScroll:this.virtualScroll,scrollable:this.scrollable,renderLabel:this.renderLabel,onToggle:this.handleToggle,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseenter,onMousedown:this.handleMenuMousedown,showCheckmark:this.showCheckmark},{header:()=>{var e,a;return(null===(a=(e=this.$slots).header)||void 0===a?void 0:a.call(e))||[]},action:()=>{var e,a;return(null===(a=(e=this.$slots).action)||void 0===a?void 0:a.call(e))||[]},empty:()=>{var e,a;return(null===(a=(e=this.$slots).empty)||void 0===a?void 0:a.call(e))||[]}})}}),va=b({name:"Popselect",props:Object.assign(Object.assign(Object.assign(Object.assign({},t.props),Ve(ie,["showArrow","arrow"])),{placement:Object.assign(Object.assign({},ie.placement),{default:"bottom"}),trigger:{type:String,default:"hover"}}),da),slots:Object,inheritAttrs:!1,__popover__:!0,setup(e){const{mergedClsPrefixRef:a}=r(e),s=t("Popselect","-popselect",void 0,Ae,e,a),n=V(null);function l(){var e;null===(e=n.value)||void 0===e||e.syncPosition()}function i(e){var a;null===(a=n.value)||void 0===a||a.setShow(e)}return k(ra,{props:e,mergedThemeRef:s,syncPosition:l,setShow:i}),Object.assign(Object.assign({},{syncPosition:l,setShow:i}),{popoverInstRef:n,mergedTheme:s})},render(){const{mergedTheme:e}=this,a={theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:{padding:"0"},ref:"popoverInstRef",internalRenderBody:(e,a,t,s,n)=>{const{$attrs:l}=this;return P(pa,Object.assign({},l,{class:[l.class,e],style:[l.style,...t]},de(this.$props,ca),{ref:Qe(a),onMouseenter:We([s,l.onMouseenter]),onMouseleave:We([n,l.onMouseleave])}),{header:()=>{var e,a;return null===(a=(e=this.$slots).header)||void 0===a?void 0:a.call(e)},action:()=>{var e,a;return null===(a=(e=this.$slots).action)||void 0===a?void 0:a.call(e)},empty:()=>{var e,a;return null===(a=(e=this.$slots).empty)||void 0===a?void 0:a.call(e)}})}};return P(ue,Object.assign({},Ve(this.$props,ca),a,{internalDeactivateImmediately:!0}),{trigger:()=>{var e,a;return null===(a=(e=this.$slots).default)||void 0===a?void 0:a.call(e)}})}}),ma="\n background: var(--n-item-color-hover);\n color: var(--n-item-text-color-hover);\n border: var(--n-item-border-hover);\n",ha=[g("button","\n background: var(--n-button-color-hover);\n border: var(--n-button-border-hover);\n color: var(--n-button-icon-color-hover);\n ")],fa=o("pagination","\n display: flex;\n vertical-align: middle;\n font-size: var(--n-item-font-size);\n flex-wrap: nowrap;\n",[o("pagination-prefix","\n display: flex;\n align-items: center;\n margin: var(--n-prefix-margin);\n "),o("pagination-suffix","\n display: flex;\n align-items: center;\n margin: var(--n-suffix-margin);\n "),u("> *:not(:first-child)","\n margin: var(--n-item-margin);\n "),o("select","\n width: var(--n-select-width);\n "),u("&.transition-disabled",[o("pagination-item","transition: none!important;")]),o("pagination-quick-jumper","\n white-space: nowrap;\n display: flex;\n color: var(--n-jumper-text-color);\n transition: color .3s var(--n-bezier);\n align-items: center;\n font-size: var(--n-jumper-font-size);\n ",[o("input","\n margin: var(--n-input-margin);\n width: var(--n-input-width);\n ")]),o("pagination-item","\n position: relative;\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: var(--n-item-size);\n height: var(--n-item-size);\n padding: var(--n-item-padding);\n background-color: var(--n-item-color);\n color: var(--n-item-text-color);\n border-radius: var(--n-item-border-radius);\n border: var(--n-item-border);\n fill: var(--n-button-icon-color);\n transition:\n color .3s var(--n-bezier),\n border-color .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n fill .3s var(--n-bezier);\n ",[g("button","\n background: var(--n-button-color);\n color: var(--n-button-icon-color);\n border: var(--n-button-border);\n padding: 0;\n ",[o("base-icon","\n font-size: var(--n-button-icon-size);\n ")]),i("disabled",[g("hover",ma,ha),u("&:hover",ma,ha),u("&:active","\n background: var(--n-item-color-pressed);\n color: var(--n-item-text-color-pressed);\n border: var(--n-item-border-pressed);\n ",[g("button","\n background: var(--n-button-color-pressed);\n border: var(--n-button-border-pressed);\n color: var(--n-button-icon-color-pressed);\n ")]),g("active","\n background: var(--n-item-color-active);\n color: var(--n-item-text-color-active);\n border: var(--n-item-border-active);\n ",[u("&:hover","\n background: var(--n-item-color-active-hover);\n ")])]),g("disabled","\n cursor: not-allowed;\n color: var(--n-item-text-color-disabled);\n ",[g("active, button","\n background-color: var(--n-item-color-disabled);\n border: var(--n-item-border-disabled);\n ")])]),g("disabled","\n cursor: not-allowed;\n ",[o("pagination-quick-jumper","\n color: var(--n-jumper-text-color-disabled);\n ")]),g("simple","\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n ",[o("pagination-quick-jumper",[o("input","\n margin: 0;\n ")])])]);function ga(e,a){const t=[];for(let s=e;s<=a;++s)t.push({label:`${s}`,value:s});return t}var ba=b({name:"Pagination",props:Object.assign(Object.assign({},t.props),{simple:Boolean,page:Number,defaultPage:{type:Number,default:1},itemCount:Number,pageCount:Number,defaultPageCount:{type:Number,default:1},showSizePicker:Boolean,pageSize:Number,defaultPageSize:Number,pageSizes:{type:Array,default:()=>[10]},showQuickJumper:Boolean,size:{type:String,default:"medium"},disabled:Boolean,pageSlot:{type:Number,default:9},selectProps:Object,prev:Function,next:Function,goto:Function,prefix:Function,suffix:Function,label:Function,displayOrder:{type:Array,default:["pages","size-picker","quick-jumper"]},to:oe.propTo,showQuickJumpDropdown:{type:Boolean,default:!0},"onUpdate:page":[Function,Array],onUpdatePage:[Function,Array],"onUpdate:pageSize":[Function,Array],onUpdatePageSize:[Function,Array],onPageSizeChange:[Function,Array],onChange:[Function,Array]}),slots:Object,setup(l){const{mergedComponentPropsRef:i,mergedClsPrefixRef:o,inlineThemeDisabled:u,mergedRtlRef:c}=r(l),p=t("Pagination","-pagination",fa,Se,l,o),{localeRef:v}=a("Pagination"),m=V(null),f=V(l.defaultPage),g=V(function(e){var a;if(!e)return 10;const{defaultPageSize:t}=e;if(void 0!==t)return t;const s=null===(a=e.pageSizes)||void 0===a?void 0:a[0];return"number"==typeof s?s:(null==s?void 0:s.value)||10}(l)),b=s(T(l,"page"),f),y=s(T(l,"pageSize"),g),w=N(()=>{const{itemCount:e}=l;if(void 0!==e)return Math.max(1,Math.ceil(e/y.value));const{pageCount:a}=l;return void 0!==a?Math.max(a,1):1}),k=V("");z(()=>{l.simple,k.value=String(b.value)});const C=V(!1),j=V(!1),P=V(!1),F=V(!1),_=N(()=>function(e,a,t,s){let n=!1,l=!1,i=1,o=a;if(1===a)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:o,fastBackwardTo:i,items:[{type:"page",label:1,active:1===e,mayBeFastBackward:!1,mayBeFastForward:!1}]};if(2===a)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:o,fastBackwardTo:i,items:[{type:"page",label:1,active:1===e,mayBeFastBackward:!1,mayBeFastForward:!1},{type:"page",label:2,active:2===e,mayBeFastBackward:!0,mayBeFastForward:!1}]};const r=a;let u=e,d=e;const c=(t-5)/2;d+=Math.ceil(c),d=Math.min(Math.max(d,1+t-3),r-2),u-=Math.floor(c),u=Math.max(Math.min(u,r-t+3),3);let p=!1,v=!1;u>3&&(p=!0),d<r-2&&(v=!0);const m=[];m.push({type:"page",label:1,active:1===e,mayBeFastBackward:!1,mayBeFastForward:!1}),p?(n=!0,i=u-1,m.push({type:"fast-backward",active:!1,label:void 0,options:s?ga(2,u-1):null})):r>=2&&m.push({type:"page",label:2,mayBeFastBackward:!0,mayBeFastForward:!1,active:2===e});for(let h=u;h<=d;++h)m.push({type:"page",label:h,mayBeFastBackward:!1,mayBeFastForward:!1,active:e===h});return v?(l=!0,o=d+1,m.push({type:"fast-forward",active:!1,label:void 0,options:s?ga(d+1,r-1):null})):d===r-2&&m[m.length-1].label!==r-1&&m.push({type:"page",mayBeFastForward:!0,mayBeFastBackward:!1,label:r-1,active:e===r-1}),m[m.length-1].label!==r&&m.push({type:"page",mayBeFastForward:!1,mayBeFastBackward:!1,label:r,active:e===r}),{hasFastBackward:n,hasFastForward:l,fastBackwardTo:i,fastForwardTo:o,items:m}}(b.value,w.value,l.pageSlot,l.showQuickJumpDropdown));z(()=>{_.value.hasFastBackward?_.value.hasFastForward||(C.value=!1,P.value=!1):(j.value=!1,F.value=!1)});const M=N(()=>{const e=v.value.selectionSuffix;return l.pageSizes.map(a=>"number"==typeof a?{label:`${a} / ${e}`,value:a}:a)}),I=N(()=>{var e,a;return(null===(a=null===(e=null==i?void 0:i.value)||void 0===e?void 0:e.Pagination)||void 0===a?void 0:a.inputSize)||ia(l.size)}),S=N(()=>{var e,a;return(null===(a=null===(e=null==i?void 0:i.value)||void 0===e?void 0:e.Pagination)||void 0===a?void 0:a.selectSize)||ia(l.size)}),B=N(()=>(b.value-1)*y.value),$=N(()=>{const e=b.value*y.value-1,{itemCount:a}=l;return void 0!==a&&e>a-1?a-1:e}),O=N(()=>{const{itemCount:e}=l;return void 0!==e?e:(l.pageCount||1)*y.value}),A=e("Pagination",c,o);function U(){x(()=>{var e;const{value:a}=m;a&&(a.classList.add("transition-disabled"),null===(e=m.value)||void 0===e||e.offsetWidth,a.classList.remove("transition-disabled"))})}function R(e){if(e===b.value)return;const{"onUpdate:page":a,onUpdatePage:t,onChange:s,simple:i}=l;a&&n(a,e),t&&n(t,e),s&&n(s,e),f.value=e,i&&(k.value=String(e))}z(()=>{b.value,y.value,U()});const D=N(()=>{const{size:e}=l,{self:{buttonBorder:a,buttonBorderHover:t,buttonBorderPressed:s,buttonIconColor:n,buttonIconColorHover:i,buttonIconColorPressed:o,itemTextColor:r,itemTextColorHover:u,itemTextColorPressed:d,itemTextColorActive:c,itemTextColorDisabled:v,itemColor:m,itemColorHover:f,itemColorPressed:g,itemColorActive:b,itemColorActiveHover:y,itemColorDisabled:w,itemBorder:k,itemBorderHover:C,itemBorderPressed:x,itemBorderActive:j,itemBorderDisabled:P,itemBorderRadius:F,jumperTextColor:_,jumperTextColorDisabled:z,buttonColor:M,buttonColorHover:I,buttonColorPressed:S,[h("itemPadding",e)]:B,[h("itemMargin",e)]:$,[h("inputWidth",e)]:N,[h("selectWidth",e)]:T,[h("inputMargin",e)]:O,[h("selectMargin",e)]:A,[h("jumperFontSize",e)]:U,[h("prefixMargin",e)]:R,[h("suffixMargin",e)]:D,[h("itemSize",e)]:E,[h("buttonIconSize",e)]:L,[h("itemFontSize",e)]:q,[`${h("itemMargin",e)}Rtl`]:H,[`${h("inputMargin",e)}Rtl`]:V},common:{cubicBezierEaseInOut:Q}}=p.value;return{"--n-prefix-margin":R,"--n-suffix-margin":D,"--n-item-font-size":q,"--n-select-width":T,"--n-select-margin":A,"--n-input-width":N,"--n-input-margin":O,"--n-input-margin-rtl":V,"--n-item-size":E,"--n-item-text-color":r,"--n-item-text-color-disabled":v,"--n-item-text-color-hover":u,"--n-item-text-color-active":c,"--n-item-text-color-pressed":d,"--n-item-color":m,"--n-item-color-hover":f,"--n-item-color-disabled":w,"--n-item-color-active":b,"--n-item-color-active-hover":y,"--n-item-color-pressed":g,"--n-item-border":k,"--n-item-border-hover":C,"--n-item-border-disabled":P,"--n-item-border-active":j,"--n-item-border-pressed":x,"--n-item-padding":B,"--n-item-border-radius":F,"--n-bezier":Q,"--n-jumper-font-size":U,"--n-jumper-text-color":_,"--n-jumper-text-color-disabled":z,"--n-item-margin":$,"--n-item-margin-rtl":H,"--n-button-icon-size":L,"--n-button-icon-color":n,"--n-button-icon-color-hover":i,"--n-button-icon-color-pressed":o,"--n-button-color-hover":I,"--n-button-color":M,"--n-button-color-pressed":S,"--n-button-border":a,"--n-button-border-hover":t,"--n-button-border-pressed":s}}),E=u?d("pagination",N(()=>{let e="";const{size:a}=l;return e+=a[0],e}),D,l):void 0;return{rtlEnabled:A,mergedClsPrefix:o,locale:v,selfRef:m,mergedPage:b,pageItems:N(()=>_.value.items),mergedItemCount:O,jumperValue:k,pageSizeOptions:M,mergedPageSize:y,inputSize:I,selectSize:S,mergedTheme:p,mergedPageCount:w,startIndex:B,endIndex:$,showFastForwardMenu:P,showFastBackwardMenu:F,fastForwardActive:C,fastBackwardActive:j,handleMenuSelect:e=>{R(e)},handleFastForwardMouseenter:()=>{l.disabled||(C.value=!0,U())},handleFastForwardMouseleave:()=>{l.disabled||(C.value=!1,U())},handleFastBackwardMouseenter:()=>{j.value=!0,U()},handleFastBackwardMouseleave:()=>{j.value=!1,U()},handleJumperInput:function(e){k.value=e.replace(/\D+/g,"")},handleBackwardClick:function(){l.disabled||R(Math.max(b.value-1,1))},handleForwardClick:function(){l.disabled||R(Math.min(b.value+1,w.value))},handlePageItemClick:function(e){if(!l.disabled)switch(e.type){case"page":R(e.label);break;case"fast-backward":l.disabled||R(Math.max(_.value.fastBackwardTo,1));break;case"fast-forward":l.disabled||R(Math.min(_.value.fastForwardTo,w.value))}},handleSizePickerChange:function(e){!function(e){if(e===y.value)return;const{"onUpdate:pageSize":a,onUpdatePageSize:t,onPageSizeChange:s}=l;a&&n(a,e),t&&n(t,e),s&&n(s,e),g.value=e,w.value<b.value&&R(w.value)}(e)},handleQuickJumperChange:function(){!function(){const e=Number.parseInt(k.value);Number.isNaN(e)||(R(Math.max(1,Math.min(e,w.value))),l.simple||(k.value=""))}()},cssVars:u?void 0:D,themeClass:null==E?void 0:E.themeClass,onRender:null==E?void 0:E.onRender}},render(){const{$slots:e,mergedClsPrefix:a,disabled:t,cssVars:s,mergedPage:n,mergedPageCount:l,pageItems:i,showSizePicker:o,showQuickJumper:r,mergedTheme:u,locale:d,inputSize:c,selectSize:v,mergedPageSize:m,pageSizeOptions:h,jumperValue:g,simple:b,prev:y,next:w,prefix:k,suffix:C,label:x,goto:j,handleJumperInput:F,handleSizePickerChange:_,handleBackwardClick:z,handlePageItemClick:M,handleForwardClick:I,handleQuickJumperChange:S,onRender:B}=this;null==B||B();const $=k||e.prefix,N=C||e.suffix,T=y||e.prev,O=w||e.next,A=x||e.label;return P("div",{ref:"selfRef",class:[`${a}-pagination`,this.themeClass,this.rtlEnabled&&`${a}-pagination--rtl`,t&&`${a}-pagination--disabled`,b&&`${a}-pagination--simple`],style:s},$?P("div",{class:`${a}-pagination-prefix`},$({page:n,pageSize:m,pageCount:l,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null,this.displayOrder.map(e=>{switch(e){case"pages":return P(U,null,P("div",{class:[`${a}-pagination-item`,!T&&`${a}-pagination-item--button`,(n<=1||n>l||t)&&`${a}-pagination-item--disabled`],onClick:z},T?T({page:n,pageSize:m,pageCount:l,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount}):P(p,{clsPrefix:a},{default:()=>this.rtlEnabled?P(we,null):P(ge,null)})),b?P(U,null,P("div",{class:`${a}-pagination-quick-jumper`},P(qe,{value:g,onUpdateValue:F,size:c,placeholder:"",disabled:t,theme:u.peers.Input,themeOverrides:u.peerOverrides.Input,onChange:S}))," /"," ",l):i.map((e,s)=>{let n,l,i;const{type:o}=e;switch(o){case"page":const t=e.label;n=A?A({type:"page",node:t,active:e.active}):t;break;case"fast-forward":const s=this.fastForwardActive?P(p,{clsPrefix:a},{default:()=>this.rtlEnabled?P(ye,null):P(be,null)}):P(p,{clsPrefix:a},{default:()=>P(oa,null)});n=A?A({type:"fast-forward",node:s,active:this.fastForwardActive||this.showFastForwardMenu}):s,l=this.handleFastForwardMouseenter,i=this.handleFastForwardMouseleave;break;case"fast-backward":const o=this.fastBackwardActive?P(p,{clsPrefix:a},{default:()=>this.rtlEnabled?P(be,null):P(ye,null)}):P(p,{clsPrefix:a},{default:()=>P(oa,null)});n=A?A({type:"fast-backward",node:o,active:this.fastBackwardActive||this.showFastBackwardMenu}):o,l=this.handleFastBackwardMouseenter,i=this.handleFastBackwardMouseleave}const r=P("div",{key:s,class:[`${a}-pagination-item`,e.active&&`${a}-pagination-item--active`,"page"!==o&&("fast-backward"===o&&this.showFastBackwardMenu||"fast-forward"===o&&this.showFastForwardMenu)&&`${a}-pagination-item--hover`,t&&`${a}-pagination-item--disabled`,"page"===o&&`${a}-pagination-item--clickable`],onClick:()=>{M(e)},onMouseenter:l,onMouseleave:i},n);if("page"!==o||e.mayBeFastBackward||e.mayBeFastForward){const a="page"===e.type?e.mayBeFastBackward?"fast-backward":"fast-forward":e.type;return"page"===e.type||e.options?P(va,{to:this.to,key:a,disabled:t,trigger:"hover",virtualScroll:!0,style:{width:"60px"},theme:u.peers.Popselect,themeOverrides:u.peerOverrides.Popselect,builtinThemeOverrides:{peers:{InternalSelectMenu:{height:"calc(var(--n-option-height) * 4.6)"}}},nodeProps:()=>({style:{justifyContent:"center"}}),show:"page"!==o&&("fast-backward"===o?this.showFastBackwardMenu:this.showFastForwardMenu),onUpdateShow:e=>{"page"!==o&&(e?"fast-backward"===o?this.showFastBackwardMenu=e:this.showFastForwardMenu=e:(this.showFastBackwardMenu=!1,this.showFastForwardMenu=!1))},options:"page"!==e.type&&e.options?e.options:[],onUpdateValue:this.handleMenuSelect,scrollable:!0,showCheckmark:!1},{default:()=>r}):r}return r}),P("div",{class:[`${a}-pagination-item`,!O&&`${a}-pagination-item--button`,{[`${a}-pagination-item--disabled`]:n<1||n>=l||t}],onClick:I},O?O({page:n,pageSize:m,pageCount:l,itemCount:this.mergedItemCount,startIndex:this.startIndex,endIndex:this.endIndex}):P(p,{clsPrefix:a},{default:()=>this.rtlEnabled?P(ge,null):P(we,null)})));case"size-picker":return!b&&o?P(Fe,Object.assign({consistentMenuWidth:!1,placeholder:"",showCheckmark:!1,to:this.to},this.selectProps,{size:v,options:h,value:m,disabled:t,theme:u.peers.Select,themeOverrides:u.peerOverrides.Select,onUpdateValue:_})):null;case"quick-jumper":return!b&&r?P("div",{class:`${a}-pagination-quick-jumper`},j?j():f(this.$slots.goto,()=>[d.goto]),P(qe,{value:g,onUpdateValue:F,size:c,placeholder:"",disabled:t,theme:u.peers.Input,themeOverrides:u.peerOverrides.Input,onChange:S})):null;default:return null}}),N?P("div",{class:`${a}-pagination-suffix`},N({page:n,pageSize:m,pageCount:l,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null)}}),ya={class:"project-instruction-panel"},wa={key:0,class:"unsupported-state"},ka={class:"resource-path"},Ca={__name:"ProjectInstructionPanel",props:{projectPath:{type:String,required:!0},platform:{type:String,required:!0},instruction:{type:Object,default:()=>({supported:!1,path:null,exists:!1,content:""})}},emits:["updated"],setup(e,{emit:a}){const t=e,s=a,n=re(),l=pe(),i=V(t.instruction.content||""),o=V(!1),r=V(!1);async function u(){o.value=!0;try{const e=await ta(t.projectPath,t.platform,i.value);i.value=e.content??i.value,s("updated",e),n.success("项目指令已保存")}catch(e){n.error(`保存项目指令失败:${e.message}`)}finally{o.value=!1}}function d(){l.warning({title:"删除项目指令",content:`确定删除 ${t.instruction.path} 吗?`,positiveText:"删除",negativeText:"取消",onPositiveClick:async()=>{r.value=!0;try{const e=await na(t.projectPath,t.platform);i.value="",s("updated",e),n.success("项目指令已删除")}catch(e){n.error(`删除项目指令失败:${e.message}`)}finally{r.value=!1}}})}return B(()=>t.instruction,e=>{i.value=e?.content||""},{deep:!0}),(a,t)=>(S(),W("div",ya,[e.instruction?.supported?(S(),W(U,{key:1},[J("div",ka,"目标文件:"+$(e.instruction.path),1),_(L(qe),{value:i.value,"onUpdate:value":t[0]||(t[0]=e=>i.value=e),type:"textarea",rows:16,placeholder:"输入项目指令",disabled:o.value},null,8,["value","disabled"]),_(L(ze),{justify:"end",class:"actions"},{default:O(()=>[e.instruction.exists?(S(),M(L(v),{key:0,"data-action":"delete-instruction",type:"error",secondary:"",loading:r.value,onClick:d},{default:O(()=>[...t[1]||(t[1]=[w(" 删除文件 ",-1)])]),_:1},8,["loading"])):y("",!0),_(L(v),{"data-action":"save-instruction",type:"primary",loading:o.value,onClick:u},{default:O(()=>[...t[2]||(t[2]=[w(" 保存 ",-1)])]),_:1},8,["loading"])]),_:1}),_(L(_e),{depth:"3",class:"hint"},{default:O(()=>[...t[3]||(t[3]=[w(" 写入项目原生文件;修改后通常需要重新启动对应 CLI。 ",-1)])]),_:1})],64)):(S(),W("div",wa," 当前平台不提供项目指令文件 "))]))}},xa=m(Ca,[["__scopeId","data-v-f2f46409"]]),ja={class:"project-mcp-panel"},Pa={class:"panel-toolbar"},Fa={class:"resource-path"},_a={key:2,class:"server-list"},za={class:"server-info"},Ma={class:"server-title"},Ia={class:"server-spec"},Sa={__name:"ProjectMcpPanel",props:{projectPath:{type:String,required:!0},platform:{type:String,required:!0},mcp:{type:Object,default:()=>({supported:!0,servers:[]})}},emits:["updated"],setup(e,{emit:a}){const t=e,s=a,n=re(),l=pe(),i=V(!1),o=V(null),r=V(""),u=V(t.mcp),d=N(()=>u.value||t.mcp||{servers:[]}),c=N(()=>Array.isArray(d.value?.servers)?d.value.servers:[]),p=N(()=>c.value.some(e=>{const a=e.server||{};return Object.keys(a.env||{}).length>0||Object.keys(a.headers||{}).length>0}));function m(e){const a=e.server||{};return"stdio"===a.type?`${a.command||""} ${(a.args||[]).join(" ")}`.trim():a.url||a.type||"MCP"}function h(){o.value=null,i.value=!0}async function f(){i.value=!1,o.value=null,await g(),s("updated")}async function g(){const e=await Xe(t.projectPath,t.platform);u.value=e}return B(()=>t.mcp,e=>{u.value=e},{deep:!0}),B([()=>t.projectPath,()=>t.platform],()=>{t.projectPath&&t.platform&&g().catch(e=>n.error(`加载项目 MCP 失败:${e.message}`))}),(a,u)=>(S(),W("div",ja,[J("div",Pa,[J("span",Fa,"目标文件:"+$(d.value?.path||"当前平台未声明"),1),_(L(v),{size:"small",type:"primary",onClick:h},{default:O(()=>[...u[1]||(u[1]=[w(" 添加 MCP ",-1)])]),_:1})]),p.value?(S(),M(L(Te),{key:0,type:"warning",bordered:!1,style:{"margin-bottom":"12px"}},{default:O(()=>[...u[2]||(u[2]=[w(" 项目 MCP 配置中的静态密钥可能随项目进入 Git,请优先使用环境变量引用。 ",-1)])]),_:1})):y("",!0),0===c.value.length?(S(),M(L(Ue),{key:1,description:"暂无项目 MCP 服务器"})):(S(),W("div",_a,[(S(!0),W(U,null,j(c.value,e=>(S(),W("div",{key:e.id,class:"server-row"},[J("div",za,[J("div",Ma,$(e.id),1),J("div",Ia,$(m(e)),1)]),_(L(ze),{size:"small"},{default:O(()=>[_(L(v),{size:"tiny",loading:r.value===e.id,onClick:a=>async function(e){r.value=e.id;try{const a=await ea(t.projectPath,t.platform,e.id);a.success?n.success(`${e.id} 连接成功`):n.error(a.message||`${e.id} 连接失败`)}catch(a){n.error(`测试失败:${a.message}`)}finally{r.value=""}}(e)},{default:O(()=>[...u[3]||(u[3]=[w("测试",-1)])]),_:1},8,["loading","onClick"]),_(L(v),{size:"tiny",disabled:e.external,onClick:a=>function(e){o.value={id:e.id,...e},i.value=!0}(e)},{default:O(()=>[...u[4]||(u[4]=[w("编辑",-1)])]),_:1},8,["disabled","onClick"]),_(L(v),{size:"tiny",type:"error",secondary:"",disabled:e.external,onClick:a=>function(e){l.warning({title:"移除项目 MCP",content:`确定从当前项目移除 ${e.id} 吗?用户级配置不会被删除。`,positiveText:"移除",negativeText:"取消",onPositiveClick:async()=>{try{await aa(t.projectPath,t.platform,e.id),await g(),s("updated"),n.success("项目 MCP 已移除")}catch(a){n.error(`移除失败:${a.message}`)}}})}(e)},{default:O(()=>[...u[5]||(u[5]=[w("移除",-1)])]),_:1},8,["disabled","onClick"])]),_:2},1024)]))),128))])),_(fe,{visible:i.value,"onUpdate:visible":u[0]||(u[0]=e=>i.value=e),"editing-server":o.value,"existing-ids":c.value.map(e=>e.id),scope:"project","project-path":e.projectPath,platform:e.platform,onSaved:f},null,8,["visible","editing-server","existing-ids","project-path","platform"])]))}},Ba=m(Sa,[["__scopeId","data-v-1ebbb765"]]),$a={class:"project-config-content"},Na={class:"project-config-header"},Ta={key:0,class:"unsupported-state"},Oa={key:0,class:"unsupported-state"},Aa=m({__name:"ProjectConfigDrawer",props:{show:{type:Boolean,default:!1},projectPath:{type:String,default:""},platform:{type:String,default:"claude"}},emits:["update:show"],setup(e,{emit:a}){const t=e,s=a,{drawerWidth:n}=Ce(760),l=N({get:()=>t.show,set:e=>s("update:show",e)}),i=[{label:"Claude",value:"claude"},{label:"Codex",value:"codex"},{label:"Gemini",value:"gemini"},{label:"OpenCode",value:"opencode"},{label:"OMP",value:"omp"}],o=V(t.platform||"claude"),r=V("instruction"),u=V(null),d=V(!1),c=V(0);async function p(){if(!t.projectPath||!o.value)return;const e=++c.value;d.value=!0;try{const a=await sa(t.projectPath,o.value);if(e!==c.value)return;u.value=a}finally{e===c.value&&(d.value=!1)}}return B(l,e=>{e?(o.value=t.platform||"claude",r.value="instruction",p()):c.value+=1}),B([()=>t.projectPath,()=>t.platform,o],([e,a],t)=>{l.value&&e&&a&&(a===t?.[1]&&e===t?.[0]||p())}),I(()=>{l.value&&p()}),(a,t)=>(S(),M(L(ke),{show:l.value,"onUpdate:show":t[2]||(t[2]=e=>l.value=e),width:L(n),placement:"right","show-mask":!0},{default:O(()=>[_(L(xe),{title:"项目配置",closable:"","native-scrollbar":!1},{default:O(()=>[J("div",$a,[J("div",Na,[J("div",null,[t[3]||(t[3]=J("div",{class:"project-config-title"},"当前项目",-1)),_(L(_e),{depth:"3",class:"project-path"},{default:O(()=>[w($(e.projectPath),1)]),_:1})]),_(L(Fe),{value:o.value,"onUpdate:value":t[0]||(t[0]=e=>o.value=e),size:"small",options:i,disabled:d.value,style:{width:"130px"}},null,8,["value","disabled"])]),_(L(Me),{show:d.value},{default:O(()=>[_(L(he),{value:r.value,"onUpdate:value":t[1]||(t[1]=e=>r.value=e),type:"line",animated:""},{default:O(()=>[_(L(me),{name:"instruction",tab:"项目指令"},{default:O(()=>[_(xa,{"project-path":e.projectPath,platform:o.value,instruction:u.value?.instruction,onUpdated:p},null,8,["project-path","platform","instruction"])]),_:1}),_(L(me),{name:"skills",tab:"Skills"},{default:O(()=>[!1===u.value?.capabilities?.skills?(S(),W("div",Ta," 当前平台不提供项目 Skills ")):(S(),M(Pe,{key:1,platform:o.value,"project-path":e.projectPath,scope:"project","in-drawer":"","drawer-visible":l.value},null,8,["platform","project-path","drawer-visible"]))]),_:1}),_(L(me),{name:"mcp",tab:"MCP"},{default:O(()=>[!1===u.value?.capabilities?.mcp?(S(),W("div",Oa," 当前平台不提供项目 MCP ")):(S(),M(Ba,{key:1,"project-path":e.projectPath,platform:o.value,mcp:u.value?.mcp,onUpdated:p},null,8,["project-path","platform","mcp"]))]),_:1})]),_:1},8,["value"])]),_:1},8,["show"])])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-e9a405fe"]]),Ua={class:"session-list-container"},Ra={class:"header"},Da={class:"title-bar"},Ea={class:"title-section"},La={class:"title-with-count"},qa={class:"header-actions"},Ha={key:0,class:"loading-container"},Va={key:1,class:"loading-container compact"},Qa={key:3,class:"sessions-list"},Wa=["onMouseenter","onClick"],Ja={class:"session-left"},Ka={class:"session-icon"},Za={class:"session-info"},Ga={class:"session-header"},Ya={class:"session-title-row"},Xa={class:"session-title"},et={class:"session-meta"},at={class:"session-right"},tt={class:"session-tags-area"},st={key:0,class:"session-actions"},nt={key:0,style:{"max-height":"70vh","overflow-y":"auto"}},lt={class:"search-result-header"},it={class:"search-result-title"},ot="__full__",rt=m({__name:"SessionList",props:{projectName:{type:String,required:!0}},setup(e){const a=e,t=D(),s=H(),n=Ye(),{addFavorite:l,removeFavorite:i,isFavorite:o}=Ne(),r=N(()=>K(s)),u=V(a.projectName),d=N(()=>u.value||a.projectName),p=V(""),m=V(null),h=V(!1),f=V(null),g=V(""),b=V(null),k=V([]),P=V(1),F=V(null),z=V(!1),T=V(!1),ie=V(null),oe=V(!1),re=V(!1),ue=V([]),de=V(!1),ce=V(!1),pe=V(null),me=V(""),he=V(ot),fe=V(!1),ge=V(!1),be=V([]),ye=V(!1),we=V(""),ke=V(""),Ce=V(null);function xe(e){return"string"==typeof e&&(e.startsWith("/")||/^[A-Za-z]:[\\/]/.test(e)||e.startsWith("\\\\"))}const Pe=N(()=>{const e=d.value;return n.projects.find(a=>a.name===e)||n.projects.find(e=>e.displayName===a.projectName||e.fullPath===a.projectName||e.path===a.projectName)||null}),Se=N(()=>[n.currentProjectInfo?.fullPath,n.currentProjectInfo?.path,Pe.value?.fullPath,Pe.value?.path].find(xe)||""),Be=N(()=>n.currentProjectInfo?.displayName||Pe.value?.displayName||a.projectName),Oe=N(()=>Se.value||n.currentProjectInfo?.fullPath||Pe.value?.fullPath||Pe.value?.path||d.value),Ae=N(()=>new Set(ue.value)),De=N(()=>ue.value.length),Ee=N(()=>k.value.length>0&&k.value.every(e=>Ae.value.has(e.sessionId))),Ve=N(()=>De.value>0&&!Ee.value);async function Qe(){n.projects.length||await n.fetchProjects();const e=n.projects.find(e=>e.name===a.projectName);if(e)return u.value=e.name,e.name;const s=n.projects.find(e=>e.displayName===a.projectName||e.fullPath===a.projectName||e.path===a.projectName);return s?(u.value=s.name,s.name!==a.projectName&&await t.replace({name:"cli-sessions",params:{platform:r.value,projectName:s.name}}),s.name):(u.value=a.projectName,a.projectName)}async function We(e={}){const a=await Qe(),t=e.page??P.value,s=e.limit??n.sessionsPagination.limit;await n.fetchSessions(a,{page:t,limit:s,...e})}async function Xe(e){P.value=e,await We({page:e})}function ea(){t.push({name:"cli-projects",params:{platform:r.value}})}async function aa(){if(p.value){oe.value=!0;try{const e=await Ke(d.value,p.value,35,r.value);F.value=e,z.value=!0}catch(e){Re.error("搜索失败: "+e.message)}finally{oe.value=!1}}}function ta(){re.value=!0,b.value=null}function sa(){re.value=!1,ue.value=[],b.value=null}function na(e){return Ae.value.has(e)}function la(e,a=!na(e)){const t=new Set(ue.value);a?t.add(e):t.delete(e),ue.value=Array.from(t)}function ia(e){ue.value=e?k.value.map(e=>e.sessionId):[]}function oa(e){re.value?la(e.sessionId):function(e){we.value=e.sessionId,ke.value=e.alias||"",ye.value=!0,x(()=>{Ce.value?.open()})}(e)}async function ra(){if(f.value)try{const e=f.value.sessionId;g.value?(await n.setAlias(e,g.value),Re.success("别名设置成功")):(await n.deleteAlias(e),Re.success("别名已删除")),h.value=!1,f.value=null,g.value=""}catch(e){Re.error("操作失败: "+e.message)}}function ua(){ce.value=!1,pe.value=null,me.value="",he.value=ot,be.value=[],fe.value=!1,ge.value=!1}async function da(){if(pe.value)try{ge.value=!0,await n.forkSession(pe.value.sessionId,{afterUserMessageNumber:he.value===ot?null:he.value,alias:me.value?.trim()||void 0}),Re.success("Fork 成功!"),ua()}catch(e){Re.error("Fork 失败: "+e.message)}finally{ge.value=!1}}function ca(e){Re.error(e)}function pa(e){const a=new Set((e||[]).filter(Boolean));0!==a.size&&(ue.value=ue.value.filter(e=>!a.has(e)),we.value&&a.has(we.value)&&(ye.value=!1,we.value="",ke.value=""))}async function va(e){try{const{copyResult:a}=await Ze(d.value,e,r.value);if("manual"===a?.method)return void Re.warning("自动复制失败,已弹出手动复制框");Re.success("启动命令已复制到剪贴板")}catch(a){Re.error("复制失败: "+a.message)}}function ma(){if(0===De.value)return void Re.warning("请先选择要删除的会话");const e=[...ue.value];Ie.warning({title:"批量删除会话",content:`确定要删除选中的 ${e.length} 个会话吗?此操作不可恢复!`,positiveText:"确定删除",negativeText:"取消",onPositiveClick:async()=>{de.value=!0;try{const a=await n.deleteSessions(e);if(pa(a.deletedSessionIds),0===a.failed.length)return Re.success(`已删除 ${a.deletedSessionIds.length} 个会话`),void sa();ue.value=a.failed.map(e=>e.sessionId),a.deletedSessionIds.length>0?Re.warning(`已删除 ${a.deletedSessionIds.length} 个会话,${a.failed.length} 个删除失败`):Re.error(`删除失败: ${a.failed[0].error.message}`)}finally{de.value=!1}}})}function ha(e){if(!e)return"0 B";const a=1024;return e<a?e+" B":e<a*a?(e/a).toFixed(1)+" KB":(e/a/a).toFixed(1)+" MB"}function fa(e,a){if(!a||!e)return e;const t=new RegExp(`(${a})`,"gi");return e.replace(t,'<mark style="background-color: #ffd700; padding: 2px 4px; border-radius: 2px; font-weight: 600;">$1</mark>')}function ga(e,a=80){return e?e.length>a?e.substring(0,a)+"...":e:""}B(()=>n.sessionsWithAlias,e=>{k.value=[...e];const a=new Set(e.map(e=>e.sessionId));ue.value=ue.value.filter(e=>a.has(e)),re.value&&0===e.length&&sa()},{immediate:!0});let ya=0,wa=!1;async function ka(){if("visible"!==document.visibilityState||wa)return;const e=Date.now();if(!(e-ya<3e4)){wa=!0,ya=e;try{const e=ie.value?.scrollTop||0,a=await Qe();await n.fetchSessions(a,{page:P.value,limit:n.sessionsPagination.limit,force:!0,silent:!0,fresh:!0}),await x(),ie.value&&(ie.value.scrollTop=e)}finally{wa=!1}}}function Ca(){"visible"===document.visibilityState&&ka().catch(()=>{})}function xa(){ka().catch(()=>{})}function ja(e){(e.metaKey||e.ctrlKey)&&"k"===String(e.key).toLowerCase()&&(e.preventDefault(),m.value?.querySelector?.("input")?.focus?.())}return B([r,()=>a.projectName],([e])=>{T.value=!1,sa(),n.setChannel(e),P.value=1,We()},{immediate:!0}),I(()=>{document.addEventListener("visibilitychange",Ca),window.addEventListener("focus",xa),document.addEventListener("keydown",ja)}),C(()=>{document.removeEventListener("visibilitychange",Ca),window.removeEventListener("focus",xa),document.removeEventListener("keydown",ja)}),(e,a)=>(S(),W("div",Ua,[J("div",Ra,[J("div",Da,[_(L(v),{size:"small",onClick:ea,class:"back-button"},{icon:O(()=>[_(L(c),{size:"18"},{default:O(()=>[_(L(G))]),_:1})]),_:1}),J("div",Ea,[J("div",La,[_(L(je),null,{default:O(()=>[w($(Be.value),1)]),_:1}),_(L(_e),{depth:"3",class:"session-count"},{default:O(()=>[w("("+$(L(n).sessionsPagination.total)+" 个对话)",1)]),_:1}),_(L(He),{size:"small",bordered:!1,type:"info",class:"total-size-tag"},{default:O(()=>[w($(ha(L(n).totalSize)),1)]),_:1}),J("div",qa,[re.value?(S(),W(U,{key:0},[_(L(Le),{checked:Ee.value,indeterminate:Ve.value,disabled:0===k.value.length||de.value,"onUpdate:checked":ia},{default:O(()=>[...a[14]||(a[14]=[w(" 全选 ",-1)])]),_:1},8,["checked","indeterminate","disabled"]),_(L(_e),{depth:"3"},{default:O(()=>[w("已选 "+$(De.value)+" 个",1)]),_:1}),_(L(v),{size:"small",type:"error",disabled:0===De.value,loading:de.value,onClick:ma},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(le))]),_:1})]),default:O(()=>[a[15]||(a[15]=w(" 删除 ",-1))]),_:1},8,["disabled","loading"]),_(L(v),{size:"small",disabled:de.value,onClick:sa},{default:O(()=>[...a[16]||(a[16]=[w(" 完成 ",-1)])]),_:1},8,["disabled"])],64)):(S(),W(U,{key:1},[_(L(v),{size:"small",type:"error",secondary:"",onClick:ta},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(le))]),_:1})]),default:O(()=>[a[17]||(a[17]=w(" 管理 ",-1))]),_:1}),_(L(v),{size:"small",type:"primary",secondary:"",disabled:!Se.value,onClick:a[0]||(a[0]=e=>T.value=!0)},{default:O(()=>[...a[18]||(a[18]=[w(" 项目配置 ",-1)])]),_:1},8,["disabled"])],64))])]),_(L(_e),{depth:"3",class:"project-path"},{default:O(()=>[w($(Oe.value),1)]),_:1})]),J("div",{ref_key:"searchInputContainer",ref:m,class:"search-input-container"},[_(L(qe),{value:p.value,"onUpdate:value":a[1]||(a[1]=e=>p.value=e),placeholder:"搜索会话...(Cmd/Ctrl+K)",clearable:"",class:"search-input",onKeyup:q(aa,["enter"]),disabled:oe.value},{prefix:O(()=>[_(L(c),null,{default:O(()=>[_(L(ae))]),_:1})]),suffix:O(()=>[_(L(v),{text:"",onClick:aa,disabled:!p.value||oe.value,loading:oe.value},{default:O(()=>[...a[19]||(a[19]=[w(" 搜索 ",-1)])]),_:1},8,["disabled","loading"])]),_:1},8,["value","disabled"])],512)])]),J("div",{class:"content",ref_key:"contentEl",ref:ie},[L(n).loading&&0===L(n).sessions.length&&!L(n).sessionsPending?(S(),W("div",Ha,[_(L(Me),{size:"large"},{description:O(()=>[...a[20]||(a[20]=[w(" 加载会话列表... ",-1)])]),_:1})])):L(n).sessionsPending?(S(),W("div",Va,[_(L(Me),{size:"small"},{description:O(()=>[...a[21]||(a[21]=[w(" 正在生成会话列表... ",-1)])]),_:1})])):L(n).error&&0===L(n).sessions.length?(S(),M(L(Te),{key:2,type:"error",title:"加载失败",style:{"margin-bottom":"16px"}},{default:O(()=>[w($(L(n).error),1)]),_:1})):k.value.length>0?(S(),W("div",Qa,[(S(!0),W(U,null,j(k.value,e=>(S(),W("div",{key:e.sessionId},[J("div",{class:R(["session-item",{"session-item-selected":na(e.sessionId),"session-item-selection-mode":re.value}]),onMouseenter:a=>b.value=e.sessionId,onMouseleave:a[3]||(a[3]=e=>b.value=null),onClick:a=>oa(e)},[re.value?(S(),W("div",{key:0,class:"selection-checkbox",onClick:a[2]||(a[2]=E(()=>{},["stop"]))},[_(L(Le),{checked:na(e.sessionId),"onUpdate:checked":a=>la(e.sessionId,a)},null,8,["checked","onUpdate:checked"])])):y("",!0),J("div",Ja,[J("div",Ka,[_(L(c),{size:"24",color:"#18a058"},{default:O(()=>[_(L(Y))]),_:1})]),J("div",Za,[J("div",Ga,[J("div",Ya,[J("span",Xa,$(e.alias?`${e.alias} (${e.sessionId.substring(0,8)})`:e.sessionId),1),e.forkedFrom?(S(),M(L($e),{key:0,placement:"top"},{trigger:O(()=>[_(L(He),{size:"small",type:"warning",bordered:!1,style:{"margin-left":"8px",cursor:"help"}},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(X))]),_:1})]),default:O(()=>[a[22]||(a[22]=w(" Fork ",-1))]),_:1})]),default:O(()=>[w(" Fork 自: "+$(e.forkedFrom),1)]),_:2},1024)):y("",!0)])]),J("div",et,[_(L(_e),{depth:"3"},{default:O(()=>{return[w($((a=e.mtime,a?new Date(a).toLocaleString("zh-CN"):"")),1)];var a}),_:2},1024),_(L(_e),{depth:"3"},{default:O(()=>[...a[23]||(a[23]=[w("•",-1)])]),_:1}),_(L(He),{size:"small",bordered:!1},{default:O(()=>[w($(ha(e.size)),1)]),_:2},1024)]),e.firstMessage?(S(),M(L(_e),{key:0,depth:"3",class:"session-message"},{default:O(()=>[w($(ga(e.firstMessage,80)),1)]),_:2},1024)):e.gitBranch||e.summary?y("",!0):(S(),M(L(_e),{key:1,depth:"3",class:"session-message session-message-empty"},{default:O(()=>[...a[24]||(a[24]=[w(" 暂未读取到对话内容 ",-1)])]),_:1}))])]),J("div",at,[J("div",tt,[e.gitBranch?(S(),M(L(He),{key:0,size:"small",type:"info",bordered:!1},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(X))]),_:1})]),default:O(()=>[w(" "+$(e.gitBranch),1)]),_:2},1024)):y("",!0)]),re.value?y("",!0):(S(),W("div",st,[_(L(ze),null,{default:O(()=>[Q(_(L(v),{size:"small",type:"error",onClick:E(a=>{return t=e.sessionId,void Ie.warning({title:"删除会话",content:"确定要删除这个会话吗?此操作不可恢复!",positiveText:"确定删除",negativeText:"取消",onPositiveClick:async()=>{try{await n.deleteSession(t),pa([t]),Re.success("会话已删除")}catch(e){Re.error("删除失败: "+e.message)}}});var t},["stop"])},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(le))]),_:1})]),default:O(()=>[a[25]||(a[25]=w(" 删除 ",-1))]),_:1},8,["onClick"]),[[A,b.value===e.sessionId]]),_(L(v),{size:"small",onClick:E(a=>function(e){f.value=e,g.value=e.alias||"",h.value=!0}(e),["stop"])},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(ne))]),_:1})]),default:O(()=>[a[26]||(a[26]=w(" 别名 ",-1))]),_:1},8,["onClick"]),_(L(v),{size:"small",type:L(o)(r.value,d.value,e.sessionId)?"warning":"default",onClick:E(a=>async function(e){const a=r.value,t=o(a,d.value,e.sessionId);try{if(t)await i(a,d.value,e.sessionId),Re.success("已取消收藏");else{const t={sessionId:e.sessionId,projectName:d.value,projectDisplayName:Be.value,projectFullPath:Oe.value,alias:e.alias||"",firstMessage:e.firstMessage||"",mtime:e.mtime,size:e.size,gitBranch:e.gitBranch||"",forkedFrom:e.forkedFrom||""};await l(a,t),Re.success("已添加到收藏")}}catch(s){Re.error("操作失败: "+s.message)}}(e),["stop"])},{icon:O(()=>[_(L(c),null,{default:O(()=>[L(o)(r.value,d.value,e.sessionId)?(S(),M(L(se),{key:0})):(S(),M(L(ee),{key:1}))]),_:2},1024)]),default:O(()=>[w(" "+$(L(o)(r.value,d.value,e.sessionId)?"已收藏":"收藏"),1)]),_:2},1032,["type","onClick"]),"opencode"!==r.value?(S(),M(L(v),{key:0,size:"small",onClick:E(a=>async function(e){if("opencode"!==r.value)try{const a=k.value.find(a=>a.sessionId===e);pe.value=a||{sessionId:e},me.value="",he.value=ot,be.value=[{label:"完整会话末尾(保留全部消息)",value:ot}],ce.value=!0,fe.value=!0;const t=await Je(d.value,e,r.value),s=Array.isArray(t?.items)?t.items:[];be.value=[{label:"完整会话末尾(保留全部消息)",value:ot},...s.map(e=>({label:`保留到第 ${e.userMessageNumber} 条用户消息这一轮 · ${e.preview}`,value:e.userMessageNumber}))]}catch(a){Re.error("加载 Fork 位置失败: "+a.message),ua()}finally{fe.value=!1}else Re.warning("OpenCode 当前不支持该 Fork 操作")}(e.sessionId),["stop"])},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(X))]),_:1})]),default:O(()=>[a[27]||(a[27]=w(" Fork ",-1))]),_:1},8,["onClick"])):y("",!0),_(L(v),{size:"small",type:"primary",onClick:E(a=>va(e.sessionId),["stop"])},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(te))]),_:1})]),default:O(()=>[a[28]||(a[28]=w(" 使用对话 ",-1))]),_:1},8,["onClick"])]),_:2},1024)]))])],42,Wa)]))),128))])):y("",!0),L(n).sessionsPagination.total>L(n).sessionsPagination.limit?(S(),M(L(ba),{key:4,page:P.value,"onUpdate:page":[a[4]||(a[4]=e=>P.value=e),Xe],"page-count":Math.ceil(L(n).sessionsPagination.total/L(n).sessionsPagination.limit),"page-size":L(n).sessionsPagination.limit,"show-quick-jumper":"",class:"list-pagination"},null,8,["page","page-count","page-size"])):y("",!0),L(n).loading||L(n).error||L(n).sessionsPending||0!==k.value.length?y("",!0):(S(),M(L(Ue),{key:5,description:p.value?"当前页没有匹配的会话":"没有找到会话",style:{"margin-top":"60px"}},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(Z))]),_:1})]),_:1},8,["description"]))],512),_(L(ve),{show:h.value,"onUpdate:show":a[7]||(a[7]=e=>h.value=e),preset:"dialog",title:"设置别名"},{action:O(()=>[_(L(ze),null,{default:O(()=>[_(L(v),{onClick:a[6]||(a[6]=e=>h.value=!1)},{default:O(()=>[...a[29]||(a[29]=[w("取消",-1)])]),_:1}),_(L(v),{type:"primary",onClick:ra},{default:O(()=>[...a[30]||(a[30]=[w("确定",-1)])]),_:1})]),_:1})]),default:O(()=>[_(L(qe),{value:g.value,"onUpdate:value":a[5]||(a[5]=e=>g.value=e),placeholder:"输入别名(留空删除)",onKeyup:q(ra,["enter"])},null,8,["value"])]),_:1},8,["show"]),_(L(ve),{show:ce.value,"onUpdate:show":a[10]||(a[10]=e=>ce.value=e),preset:"dialog",title:"Fork 对话"},{action:O(()=>[_(L(ze),null,{default:O(()=>[_(L(v),{disabled:ge.value,onClick:ua},{default:O(()=>[...a[32]||(a[32]=[w("取消",-1)])]),_:1},8,["disabled"]),_(L(v),{type:"primary",loading:ge.value,onClick:da},{default:O(()=>[...a[33]||(a[33]=[w(" 确认 Fork ",-1)])]),_:1},8,["loading"])]),_:1})]),default:O(()=>[_(L(ze),{vertical:"",size:14},{default:O(()=>[_(L(_e),{depth:"3"},{default:O(()=>[...a[31]||(a[31]=[w(" 可选择保留到第几条用户消息所在轮次;会包含这条消息后 AI 的完整输出。 ",-1)])]),_:1}),_(L(Fe),{value:he.value,"onUpdate:value":a[8]||(a[8]=e=>he.value=e),options:be.value,loading:fe.value,clearable:"",placeholder:"选择保留到哪一轮(默认完整会话)"},null,8,["value","options","loading"]),_(L(qe),{value:me.value,"onUpdate:value":a[9]||(a[9]=e=>me.value=e),placeholder:"输入新会话别名(可选)",maxlength:"120"},null,8,["value"])]),_:1})]),_:1},8,["show"]),_(L(ve),{show:z.value,"onUpdate:show":a[11]||(a[11]=e=>z.value=e),preset:"card",title:"搜索结果",style:{width:"1200px"}},{default:O(()=>[F.value?(S(),W("div",nt,[_(L(Te),{type:"info",style:{"margin-bottom":"16px"}},{default:O(()=>[w(' 关键词 "'+$(F.value.keyword)+'" 共找到 '+$(F.value.totalMatches)+" 处匹配 ",1)]),_:1}),(S(!0),W(U,null,j(F.value.sessions,e=>(S(),W("div",{key:e.sessionId,class:"search-result-item"},[J("div",lt,[J("div",it,[_(L(_e),{strong:""},{default:O(()=>[w($(e.alias?`${e.alias} (${e.sessionId.substring(0,8)})`:e.sessionId.substring(0,8)),1)]),_:2},1024),_(L(He),{size:"small",bordered:!1},{default:O(()=>[w($(e.matchCount)+" 个匹配",1)]),_:2},1024)]),_(L(v),{size:"small",type:"primary",onClick:a=>va(e.sessionId)},{icon:O(()=>[_(L(c),null,{default:O(()=>[_(L(te))]),_:1})]),default:O(()=>[a[34]||(a[34]=w(" 使用对话 ",-1))]),_:1},8,["onClick"])]),(S(!0),W(U,null,j(e.matches,(e,a)=>(S(),W("div",{key:a,class:"search-match"},[_(L(He),{size:"tiny",type:"user"===e.role?"info":"success",bordered:!1},{default:O(()=>[w($("user"===e.role?"用户":"助手"),1)]),_:2},1032,["type"]),_(L(_e),{depth:"3",class:"search-match-text",innerHTML:fa(e.context,F.value.keyword)},null,8,["innerHTML"])]))),128))]))),128)),0===F.value.sessions.length?(S(),M(L(Ue),{key:0,description:"没有找到匹配的内容"})):y("",!0)])):y("",!0)]),_:1},8,["show"]),we.value?(S(),M(Ge,{key:0,ref_key:"chatHistoryRef",ref:Ce,show:ye.value,"onUpdate:show":a[12]||(a[12]=e=>ye.value=e),"project-name":d.value,"session-id":we.value,"session-alias":ke.value,channel:r.value,onError:ca},null,8,["show","project-name","session-id","session-alias","channel"])):y("",!0),_(Aa,{show:T.value,"onUpdate:show":a[13]||(a[13]=e=>T.value=e),"project-path":Se.value,platform:r.value},null,8,["show","project-path","platform"])]))}},[["__scopeId","data-v-66cfe9c9"]]);export{rt as default};
|