coding-tool-x 3.9.6-261023 → 3.9.6-261027
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-D2oYKcOj.js → AgentsDrawer-CIKKn5h4.js} +1 -1
- package/dist/web/assets/{Analytics-Cy3QSSrn.js → Analytics-CWLOqH3a.js} +1 -1
- package/dist/web/assets/{AssetPathField-BGuw5ZR7.js → AssetPathField-CYJ6TvS9.js} +1 -1
- package/dist/web/assets/{ChatHistoryDrawer-BZ8FY_-9.js → ChatHistoryDrawer-r9UZA7rU.js} +1 -1
- package/dist/web/assets/{CollapseItem-DOoxtmtj.js → CollapseItem-S_sLioKf.js} +1 -1
- package/dist/web/assets/{CommandsDrawer-YCgZAeNx.js → CommandsDrawer-DFmX8thK.js} +1 -1
- package/dist/web/assets/{ConfigExportDrawer-BlAHQidK.js → ConfigExportDrawer-5ZritRKp.js} +1 -1
- package/dist/web/assets/{ConfigTemplates-C6qSF4Ht.js → ConfigTemplates-B1H2866J.js} +1 -1
- package/dist/web/assets/{ConfigTemplatesDrawer-lRT_6-jD.js → ConfigTemplatesDrawer-BBATnWnW.js} +1 -1
- package/dist/web/assets/{ConfigTemplatesPanel-DrS57Y8V.js → ConfigTemplatesPanel-CXmfzRym.js} +1 -1
- package/dist/web/assets/{FavoritesDrawer-CuOcHtqM.js → FavoritesDrawer-DPQOXg4g.js} +1 -1
- package/dist/web/assets/{GatewayConvertDrawer-b0pIvH02.js → GatewayConvertDrawer-Z_sILtn8.js} +1 -1
- package/dist/web/assets/{Home-DvfQcP4b.js → Home-C5mlI2U0.js} +1 -1
- package/dist/web/assets/{MarkdownEditor-BLS6HmBb.js → MarkdownEditor-Coo4TaB-.js} +1 -1
- package/dist/web/assets/{McpDrawer-BHt7zFf0.js → McpDrawer-DwvUzioj.js} +1 -1
- package/dist/web/assets/{McpFormDrawer-DpTMHc-e.js → McpFormDrawer-C-JHWmhC.js} +1 -1
- package/dist/web/assets/{PluginManager-CYAuy5dm.js → PluginManager-C6dq0YkN.js} +1 -1
- package/dist/web/assets/{PluginsDrawer-CoyprWNl.js → PluginsDrawer-DacBCEVQ.js} +1 -1
- package/dist/web/assets/{PluginsPanel-DsmiW9TU.css → PluginsPanel-B1PcHqhB.css} +1 -1
- package/dist/web/assets/PluginsPanel-CkH9dcj0.js +1 -0
- package/dist/web/assets/{ProjectList-pJo0xp0Q.js → ProjectList-Bo0n_J7T.js} +1 -1
- package/dist/web/assets/{PromptsDrawer-CM-irN84.js → PromptsDrawer-D5Gmm0HC.js} +1 -1
- package/dist/web/assets/{RecentSessionsDrawer-l5nO_5bS.js → RecentSessionsDrawer-BbP16V3T.js} +1 -1
- package/dist/web/assets/{SessionCard-BqTFOt05.js → SessionCard-zr0236fl.js} +1 -1
- package/dist/web/assets/{SessionList-Bs_YFKW5.js → SessionList-38c7aouf.js} +1 -1
- package/dist/web/assets/SettingsDrawer-oG-V_hS1.js +1 -0
- package/dist/web/assets/{SkillManager-DgLhL2Qv.js → SkillManager-Cqm9cc8C.js} +1 -1
- package/dist/web/assets/{SkillsDrawer-CT69YSEE.js → SkillsDrawer-wgOUCPGA.js} +1 -1
- package/dist/web/assets/{SkillsPanel-Dm8FkYD6.js → SkillsPanel-ryjZpaCC.js} +1 -1
- package/dist/web/assets/{Upload-BHTymsxe.js → Upload-CfC0lPJC.js} +1 -1
- package/dist/web/assets/{WorkspaceDrawer-DLXh_c7u.js → WorkspaceDrawer-2Qgm-8Pa.js} +1 -1
- package/dist/web/assets/{WorkspaceManager-E_IoRTlC.js → WorkspaceManager-Dp6vKCMD.js} +1 -1
- package/dist/web/assets/{WorkspacePanel-DLlTIU8Y.js → WorkspacePanel-CSer3CdC.js} +1 -1
- package/dist/web/assets/{index-DP0Ggf-8.js → index-D1b2vDrs.js} +2 -2
- package/dist/web/assets/{platforms-DNVEAtqx.js → platforms-Cq6XDXfy.js} +1 -1
- package/dist/web/assets/{useResponsiveDrawer-D9ti7g-U.js → useResponsiveDrawer-CmC5cPpB.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/src/config/model-metadata.json +84 -2
- package/src/platforms/drivers/dsh/channels-implementation.js +148 -23
- package/src/platforms/drivers/dsh/common.js +4 -1
- package/dist/web/assets/PluginsPanel-C3AzXlkH.js +0 -1
- package/dist/web/assets/SettingsDrawer-COszrj_Y.js +0 -1
package/dist/web/assets/{ConfigTemplatesPanel-DrS57Y8V.js → ConfigTemplatesPanel-CXmfzRym.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$t as e,D as l,E as a,I as t,L as n,N as s,Qt as i,Tt as r,Yt as o,Zt as d,bn as u,gn as c,gt as m,hn as p,ht as v,i as f,j as g,ln as h,mt as b,s as y,t as C,vn as k,xn as x,y as _,yn as S}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as w,C as T,D as z,F as P,G as R,J as A,K as $,M as O,N as U,O as L,S as M,V as F,W as B,Z as N,_t as V,b as j,dt as E,et as I,g as D,ht as G,m as q,mt as H,st as Y,w as W,x as Z}from"./vue-vendor-BqZbbXHA.js";import{$ as J,A as K,At as Q,Nt as X,R as ee,S as le,Y as ae,et as te,g as ne,h as se,i as ie}from"./icons-B-AzZoeE.js";import{t as re}from"./use-message-DBsCm7FJ.js";import{O as oe,S as de,l as ue,n as ce}from"./light-C2X7hegj.js";import{n as me,t as pe}from"./CollapseItem-DOoxtmtj.js";import{t as ve}from"./Divider-BLLhMTSt.js";import{$ as fe,A as ge,Ct as he,H as be,I as ye,L as Ce,M as ke,N as xe,St as _e,ct as Se,ft as we,it as Te,j as ze,lt as Pe,rt as Re,st as Ae,tt as $e,ut as Oe,z as Ue}from"./index-DP0Ggf-8.js";import{n as Le}from"./markdown-u082bbtj.js";import{a as Me,c as Fe,i as Be,n as Ne,o as Ve,r as je,s as Ee,t as Ie}from"./xml-CgY3RMlX.js";import{t as De}from"./MarkdownEditor-BLS6HmBb.js";import{a as Ge,d as qe,f as He,g as Ye,h as We,m as Ze,p as Je,u as Ke}from"./workspaces-D2yLnT-B.js";var Qe=w({name:"Search",render:()=>O("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",style:"enable-background: new 0 0 512 512"},O("path",{d:"M443.5,420.2L336.7,312.4c20.9-26.2,33.5-59.4,33.5-95.5c0-84.5-68.5-153-153.1-153S64,132.5,64,217s68.5,153,153.1,153\n c36.6,0,70.1-12.8,96.5-34.2l106.1,107.1c3.2,3.4,7.6,5.1,11.9,5.1c4.1,0,8.2-1.5,11.3-4.5C449.5,437.2,449.7,426.8,443.5,420.2z\n M217.1,337.1c-32.1,0-62.3-12.5-85-35.2c-22.7-22.7-35.2-52.9-35.2-84.9c0-32.1,12.5-62.3,35.2-84.9c22.7-22.7,52.9-35.2,85-35.2\n c32.1,0,62.3,12.5,85,35.2c22.7,22.7,35.2,52.9,35.2,84.9c0,32.1-12.5,62.3-35.2,84.9C279.4,324.6,249.2,337.1,217.1,337.1z"}))}),Xe=c("collapse-transition",{width:"100%"},[Pe()]),el=w({name:"CollapseTransition",props:Object.assign(Object.assign({},s.props),{show:{type:Boolean,default:!0},appear:Boolean,collapsed:{type:Boolean,default:void 0}}),inheritAttrs:!1,setup(e){const{mergedClsPrefixRef:l,inlineThemeDisabled:a,mergedRtlRef:n}=m(e),i=s("CollapseTransition","-collapse-transition",Xe,$e,e,l),r=t("CollapseTransition",n,l),o=j(()=>void 0!==e.collapsed?e.collapsed:e.show),d=j(()=>{const{self:{bezier:e}}=i.value;return{"--n-bezier":e}}),u=a?v("collapse-transition",void 0,d,e):void 0;return{rtlEnabled:r,mergedShow:o,mergedClsPrefix:l,cssVars:a?void 0:d,themeClass:null==u?void 0:u.themeClass,onRender:null==u?void 0:u.onRender}},render(){return O(a,{appear:this.appear},{default:()=>{var e;if(this.mergedShow)return null===(e=this.onRender)||void 0===e||e.call(this),O("div",P({class:[`${this.mergedClsPrefix}-collapse-transition`,this.rtlEnabled&&`${this.mergedClsPrefix}-collapse-transition--rtl`,this.themeClass],style:this.cssVars},this.$attrs),this.$slots)}})}}),ll=o("n-transfer"),al=c("transfer","\n width: 100%;\n font-size: var(--n-font-size);\n height: 300px;\n display: flex;\n flex-wrap: nowrap;\n word-break: break-word;\n",[S("disabled",[c("transfer-list",[c("transfer-list-header",[k("title","\n color: var(--n-header-text-color-disabled);\n "),k("extra","\n color: var(--n-header-extra-text-color-disabled);\n ")])])]),c("transfer-list","\n flex: 1;\n min-width: 0;\n height: inherit;\n display: flex;\n flex-direction: column;\n background-clip: padding-box;\n position: relative;\n transition: background-color .3s var(--n-bezier);\n background-color: var(--n-list-color);\n ",[S("source","\n border-top-left-radius: var(--n-border-radius);\n border-bottom-left-radius: var(--n-border-radius);\n ",[k("border","border-right: 1px solid var(--n-divider-color);")]),S("target","\n border-top-right-radius: var(--n-border-radius);\n border-bottom-right-radius: var(--n-border-radius);\n ",[k("border","border-left: none;")]),k("border","\n padding: 0 12px;\n border: 1px solid var(--n-border-color);\n transition: border-color .3s var(--n-bezier);\n pointer-events: none;\n border-radius: inherit;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n "),c("transfer-list-header","\n min-height: var(--n-header-height);\n box-sizing: border-box;\n display: flex;\n padding: 12px 12px 10px 12px;\n align-items: center;\n background-clip: padding-box;\n border-radius: inherit;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n line-height: 1.5;\n transition:\n border-color .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n ",[p("> *:not(:first-child)","\n margin-left: 8px;\n "),k("title","\n flex: 1;\n min-width: 0;\n line-height: 1.5;\n font-size: var(--n-header-font-size);\n font-weight: var(--n-header-font-weight);\n transition: color .3s var(--n-bezier);\n color: var(--n-header-text-color);\n "),k("button","\n position: relative;\n "),k("extra","\n transition: color .3s var(--n-bezier);\n font-size: var(--n-extra-font-size);\n margin-right: 0;\n white-space: nowrap;\n color: var(--n-header-extra-text-color);\n ")]),c("transfer-list-body","\n flex-basis: 0;\n flex-grow: 1;\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: inherit;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n ",[c("transfer-filter","\n padding: 4px 12px 8px 12px;\n box-sizing: border-box;\n transition:\n border-color .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n "),c("transfer-list-flex-container","\n flex: 1;\n position: relative;\n ",[c("scrollbar","\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n height: unset;\n "),c("empty","\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateY(-50%) translateX(-50%);\n "),c("transfer-list-content","\n padding: 0;\n margin: 0;\n position: relative;\n ",[c("transfer-list-item","\n padding: 0 12px;\n min-height: var(--n-item-height);\n display: flex;\n align-items: center;\n color: var(--n-item-text-color);\n position: relative;\n transition: color .3s var(--n-bezier);\n ",[k("background","\n position: absolute;\n left: 4px;\n right: 4px;\n top: 0;\n bottom: 0;\n border-radius: var(--n-border-radius);\n transition: background-color .3s var(--n-bezier);\n "),k("checkbox","\n position: relative;\n margin-right: 8px;\n "),k("close","\n opacity: 0;\n pointer-events: none;\n position: relative;\n transition:\n opacity .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n "),k("label","\n position: relative;\n min-width: 0;\n flex-grow: 1;\n "),S("source","cursor: pointer;"),S("disabled","\n cursor: not-allowed;\n color: var(--n-item-text-color-disabled);\n "),u("disabled",[p("&:hover",[k("background","background-color: var(--n-item-color-pending);"),k("close","\n opacity: 1;\n pointer-events: all;\n ")])])])])])])])]),tl=w({name:"TransferFilter",props:{value:String,placeholder:String,disabled:Boolean,onUpdateValue:{type:Function,required:!0}},setup(){const{mergedThemeRef:e,mergedClsPrefixRef:l}=U(ll);return{mergedClsPrefix:l,mergedTheme:e}},render(){const{mergedTheme:e,mergedClsPrefix:l}=this;return O("div",{class:`${l}-transfer-filter`},O(Ae,{value:this.value,onUpdateValue:this.onUpdateValue,disabled:this.disabled,placeholder:this.placeholder,theme:e.peers.Input,themeOverrides:e.peerOverrides.Input,clearable:!0,size:"small"},{"clear-icon-placeholder":()=>O(g,{clsPrefix:l},{default:()=>O(Qe,null)})}))}}),nl=w({name:"TransferHeader",props:{size:{type:String,required:!0},selectAllText:String,clearText:String,source:Boolean,onCheckedAll:Function,onClearAll:Function,title:[String,Function]},setup(e){const{targetOptionsRef:l,canNotSelectAnythingRef:a,canBeClearedRef:t,allCheckedRef:s,mergedThemeRef:i,disabledRef:r,mergedClsPrefixRef:o,srcOptionsLengthRef:d}=U(ll),{localeRef:u}=n("Transfer");return()=>{const{source:n,onClearAll:c,onCheckedAll:m,selectAllText:p,clearText:v}=e,{value:f}=i,{value:g}=o,{value:h}=u,b="large"===e.size?"small":"tiny",{title:C}=e;return O("div",{class:`${g}-transfer-list-header`},C&&O("div",{class:`${g}-transfer-list-header__title`},"function"==typeof C?C():C),n&&O(y,{class:`${g}-transfer-list-header__button`,theme:f.peers.Button,themeOverrides:f.peerOverrides.Button,size:b,tertiary:!0,onClick:s.value?c:m,disabled:a.value||r.value},{default:()=>s.value?v||h.unselectAll:p||h.selectAll}),!n&&t.value&&O(y,{class:`${g}-transfer-list-header__button`,theme:f.peers.Button,themeOverrides:f.peerOverrides.Button,size:b,tertiary:!0,onClick:c,disabled:r.value},{default:()=>h.clearAll}),O("div",{class:`${g}-transfer-list-header__extra`},n?h.total(d.value):h.selected(l.value.length)))}}}),sl=w({name:"NTransferListItem",props:{source:Boolean,label:{type:String,required:!0},value:{type:[String,Number],required:!0},disabled:Boolean,option:{type:Object,required:!0}},setup(l){const{targetValueSetRef:a,mergedClsPrefixRef:t,mergedThemeRef:n,handleItemCheck:s,renderSourceLabelRef:i,renderTargetLabelRef:r,showSelectedRef:o}=U(ll),d=e(()=>a.value.has(l.value));return{mergedClsPrefix:t,mergedTheme:n,checked:d,showSelected:o,renderSourceLabel:i,renderTargetLabel:r,handleClick:function(){l.disabled||s(!d.value,l.value)}}},render(){const{disabled:e,mergedTheme:a,mergedClsPrefix:t,label:n,checked:s,source:i,renderSourceLabel:r,renderTargetLabel:o}=this;return O("div",{class:[`${t}-transfer-list-item`,e&&`${t}-transfer-list-item--disabled`,i?`${t}-transfer-list-item--source`:`${t}-transfer-list-item--target`],onClick:i?this.handleClick:void 0},O("div",{class:`${t}-transfer-list-item__background`}),i&&this.showSelected&&O("div",{class:`${t}-transfer-list-item__checkbox`},O(Re,{theme:a.peers.Checkbox,themeOverrides:a.peerOverrides.Checkbox,disabled:e,checked:s})),O("div",{class:`${t}-transfer-list-item__label`,title:_e(n)},i?r?r({option:this.option}):n:o?o({option:this.option}):n),!i&&!e&&O(l,{focusable:!1,class:`${t}-transfer-list-item__close`,clsPrefix:t,onClick:this.handleClick}))}}),il=w({name:"TransferList",props:{virtualScroll:{type:Boolean,required:!0},itemSize:{type:Number,required:!0},options:{type:Array,required:!0},disabled:{type:Boolean,required:!0},source:Boolean},setup(){const{mergedThemeRef:e,mergedClsPrefixRef:l}=U(ll),a=Y(null),t=Y(null);return{mergedTheme:e,mergedClsPrefix:l,scrollerInstRef:a,vlInstRef:t,syncVLScroller:function(){var e;null===(e=a.value)||void 0===e||e.sync()},scrollContainer:function(){const{value:e}=t;if(!e)return null;const{listElRef:l}=e;return l},scrollContent:function(){const{value:e}=t;if(!e)return null;const{itemsElRef:l}=e;return l}}},render(){const{mergedTheme:e,options:l}=this;if(0===l.length)return O(we,{theme:e.peers.Empty,themeOverrides:e.peerOverrides.Empty});const{mergedClsPrefix:a,virtualScroll:t,source:n,disabled:s,syncVLScroller:i}=this;return O(_,{ref:"scrollerInstRef",theme:e.peers.Scrollbar,themeOverrides:e.peerOverrides.Scrollbar,container:t?this.scrollContainer:void 0,content:t?this.scrollContent:void 0},{default:()=>t?O(he,{ref:"vlInstRef",style:{height:"100%"},class:`${a}-transfer-list-content`,items:this.options,itemSize:this.itemSize,showScrollbar:!1,onResize:i,onScroll:i,keyField:"value"},{default:({item:e})=>{const{source:l,disabled:a}=this;return O(sl,{source:l,key:e.value,value:e.value,disabled:e.disabled||a,label:e.label,option:e})}}):O("div",{class:`${a}-transfer-list-content`},l.map(e=>O(sl,{source:n,key:e.value,value:e.value,disabled:e.disabled||s,label:e.label,option:e})))})}});var rl=w({name:"Transfer",props:Object.assign(Object.assign({},s.props),{value:Array,defaultValue:{type:Array,default:null},options:{type:Array,default:()=>[]},disabled:{type:Boolean,default:void 0},virtualScroll:Boolean,sourceTitle:[String,Function],selectAllText:String,clearText:String,targetTitle:[String,Function],filterable:{type:Boolean,default:void 0},sourceFilterable:Boolean,targetFilterable:Boolean,showSelected:{type:Boolean,default:!0},sourceFilterPlaceholder:String,targetFilterPlaceholder:String,filter:{type:Function,default:(e,l)=>!e||~`${l.label}`.toLowerCase().indexOf(`${e}`.toLowerCase())},size:String,renderSourceLabel:Function,renderTargetLabel:Function,renderSourceList:Function,renderTargetList:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onChange:[Function,Array]}),setup(e){const{mergedClsPrefixRef:l}=m(e),a=s("Transfer","-transfer",al,Ue,e,l),t=b(e),{mergedSizeRef:n,mergedDisabledRef:o}=t,u=j(()=>{const{value:e}=n,{self:{[x("itemHeight",e)]:l}}=a.value;return h(l)}),{uncontrolledValueRef:c,mergedValueRef:p,targetValueSetRef:v,valueSetForCheckAllRef:f,valueSetForUncheckAllRef:g,valueSetForClearRef:y,filteredTgtOptionsRef:C,filteredSrcOptionsRef:k,targetOptionsRef:_,canNotSelectAnythingRef:S,canBeClearedRef:w,allCheckedRef:T,srcPatternRef:z,tgtPatternRef:P,mergedSrcFilterableRef:A,handleSrcFilterUpdateValue:$,handleTgtFilterUpdateValue:O}=function(e){const l=Y(e.defaultValue),a=i(E(e,"value"),l),t=j(()=>{const l=new Map;return(e.options||[]).forEach(e=>l.set(e.value,e)),l}),n=j(()=>new Set(a.value||[])),s=j(()=>{const e=t.value,l=[];return(a.value||[]).forEach(a=>{const t=e.get(a);t&&l.push(t)}),l}),r=Y(""),o=Y(""),d=j(()=>e.sourceFilterable||!!e.filterable),u=j(()=>{const{showSelected:l,options:a,filter:t}=e;return d.value?a.filter(e=>t(r.value,e,"source")&&(l||!n.value.has(e.value))):l?a:a.filter(e=>!n.value.has(e.value))}),c=j(()=>{if(!e.targetFilterable)return s.value;const{filter:l}=e;return s.value.filter(e=>l(o.value,e,"target"))}),m=j(()=>{const{value:e}=a;return null===e?new Set:new Set(e)}),p=j(()=>{const e=new Set(m.value);return u.value.forEach(l=>{l.disabled||e.has(l.value)||e.add(l.value)}),e}),v=j(()=>{const e=new Set(m.value);return u.value.forEach(l=>{!l.disabled&&e.has(l.value)&&e.delete(l.value)}),e}),f=j(()=>{const e=new Set(m.value);return c.value.forEach(l=>{l.disabled||e.delete(l.value)}),e}),g=j(()=>u.value.every(e=>e.disabled)),h=j(()=>{if(!u.value.length)return!1;const e=m.value;return u.value.every(l=>l.disabled||e.has(l.value))}),b=j(()=>c.value.some(e=>!e.disabled));return{uncontrolledValueRef:l,mergedValueRef:a,targetValueSetRef:n,valueSetForCheckAllRef:p,valueSetForUncheckAllRef:v,valueSetForClearRef:f,filteredTgtOptionsRef:c,filteredSrcOptionsRef:u,targetOptionsRef:s,canNotSelectAnythingRef:g,canBeClearedRef:b,allCheckedRef:h,srcPatternRef:r,tgtPatternRef:o,mergedSrcFilterableRef:d,handleSrcFilterUpdateValue:function(e){r.value=null!=e?e:""},handleTgtFilterUpdateValue:function(e){o.value=null!=e?e:""}}}(e);function U(l){const{onUpdateValue:a,"onUpdate:value":n,onChange:s}=e,{nTriggerFormInput:i,nTriggerFormChange:o}=t;a&&r(a,l),n&&r(n,l),s&&r(s,l),c.value=l,i(),o()}function L(e,l){U(e?(p.value||[]).concat(l):(p.value||[]).filter(e=>e!==l))}return R(ll,{targetValueSetRef:v,mergedClsPrefixRef:l,disabledRef:o,mergedThemeRef:a,targetOptionsRef:_,canNotSelectAnythingRef:S,canBeClearedRef:w,allCheckedRef:T,srcOptionsLengthRef:j(()=>e.options.length),handleItemCheck:L,renderSourceLabelRef:E(e,"renderSourceLabel"),renderTargetLabelRef:E(e,"renderTargetLabel"),showSelectedRef:E(e,"showSelected")}),{mergedClsPrefix:l,mergedDisabled:o,itemSize:u,isMounted:d(),mergedTheme:a,filteredSrcOpts:k,filteredTgtOpts:C,srcPattern:z,tgtPattern:P,mergedSize:n,mergedSrcFilterable:A,handleSrcFilterUpdateValue:$,handleTgtFilterUpdateValue:O,handleSourceCheckAll:function(){U([...f.value])},handleSourceUncheckAll:function(){U([...g.value])},handleTargetClearAll:function(){U([...y.value])},handleItemCheck:L,handleChecked:function(e){U(e)},cssVars:j(()=>{const{value:e}=n,{common:{cubicBezierEaseInOut:l},self:{borderRadius:t,borderColor:s,listColor:i,titleTextColor:r,titleTextColorDisabled:o,extraTextColor:d,itemTextColor:u,itemColorPending:c,itemTextColorDisabled:m,titleFontWeight:p,closeColorHover:v,closeColorPressed:f,closeIconColor:g,closeIconColorHover:h,closeIconColorPressed:b,closeIconSize:y,closeSize:C,dividerColor:k,extraTextColorDisabled:_,[x("extraFontSize",e)]:S,[x("fontSize",e)]:w,[x("titleFontSize",e)]:T,[x("itemHeight",e)]:z,[x("headerHeight",e)]:P}}=a.value;return{"--n-bezier":l,"--n-border-color":s,"--n-border-radius":t,"--n-extra-font-size":S,"--n-font-size":w,"--n-header-font-size":T,"--n-header-extra-text-color":d,"--n-header-extra-text-color-disabled":_,"--n-header-font-weight":p,"--n-header-text-color":r,"--n-header-text-color-disabled":o,"--n-item-color-pending":c,"--n-item-height":z,"--n-item-text-color":u,"--n-item-text-color-disabled":m,"--n-list-color":i,"--n-header-height":P,"--n-close-size":C,"--n-close-icon-size":y,"--n-close-color-hover":v,"--n-close-color-pressed":f,"--n-close-icon-color":g,"--n-close-icon-color-hover":h,"--n-close-icon-color-pressed":b,"--n-divider-color":k}})}},render(){const{mergedClsPrefix:e,renderSourceList:l,renderTargetList:a,mergedTheme:t,mergedSrcFilterable:n,targetFilterable:s}=this;return O("div",{class:[`${e}-transfer`,this.mergedDisabled&&`${e}-transfer--disabled`],style:this.cssVars},O("div",{class:`${e}-transfer-list ${e}-transfer-list--source`},O(nl,{source:!0,selectAllText:this.selectAllText,clearText:this.clearText,title:this.sourceTitle,onCheckedAll:this.handleSourceCheckAll,onClearAll:this.handleSourceUncheckAll,size:this.mergedSize}),O("div",{class:`${e}-transfer-list-body`},n?O(tl,{onUpdateValue:this.handleSrcFilterUpdateValue,value:this.srcPattern,disabled:this.mergedDisabled,placeholder:this.sourceFilterPlaceholder}):null,O("div",{class:`${e}-transfer-list-flex-container`},l?O(_,{theme:t.peers.Scrollbar,themeOverrides:t.peerOverrides.Scrollbar},{default:()=>l({onCheck:this.handleChecked,checkedOptions:this.filteredTgtOpts,pattern:this.srcPattern})}):O(il,{source:!0,options:this.filteredSrcOpts,disabled:this.mergedDisabled,virtualScroll:this.virtualScroll,itemSize:this.itemSize}))),O("div",{class:`${e}-transfer-list__border`})),O("div",{class:`${e}-transfer-list ${e}-transfer-list--target`},O(nl,{onClearAll:this.handleTargetClearAll,size:this.mergedSize,title:this.targetTitle}),O("div",{class:`${e}-transfer-list-body`},s?O(tl,{onUpdateValue:this.handleTgtFilterUpdateValue,value:this.tgtPattern,disabled:this.mergedDisabled,placeholder:this.sourceFilterPlaceholder}):null,O("div",{class:`${e}-transfer-list-flex-container`},a?O(_,{theme:t.peers.Scrollbar,themeOverrides:t.peerOverrides.Scrollbar},{default:()=>a({onCheck:this.handleChecked,checkedOptions:this.filteredTgtOpts,pattern:this.tgtPattern})}):O(il,{options:this.filteredTgtOpts,disabled:this.mergedDisabled,virtualScroll:this.virtualScroll,itemSize:this.itemSize}))),O("div",{class:`${e}-transfer-list__border`})))}}),ol=w({name:"Li",render(){return O("li",null,this.$slots)}}),dl=p("li",{transition:"color .3s var(--n-bezier)",lineHeight:"var(--n-line-height)",margin:"var(--n-li-margin)",marginBottom:0,color:"var(--n-text-color)"}),ul=[p("&:first-child","\n margin-top: 0;\n "),p("&:last-child","\n margin-bottom: 0;\n ")],cl=p([c("ol",{fontSize:"var(--n-font-size)",padding:"var(--n-ol-padding)"},[S("align-text",{paddingLeft:0}),dl,ul]),c("ul",{fontSize:"var(--n-font-size)",padding:"var(--n-ul-padding)"},[S("align-text",{paddingLeft:0}),dl,ul])]),ml=w({name:"Ul",props:Object.assign(Object.assign({},s.props),{alignText:Boolean}),setup(e){const{mergedClsPrefixRef:l,inlineThemeDisabled:a}=m(e),t=s("Typography","-xl",cl,ce,e,l),n=j(()=>{const{common:{cubicBezierEaseInOut:e},self:{olPadding:l,ulPadding:a,liMargin:n,liTextColor:s,liLineHeight:i,liFontSize:r}}=t.value;return{"--n-bezier":e,"--n-font-size":r,"--n-line-height":i,"--n-text-color":s,"--n-li-margin":n,"--n-ol-padding":l,"--n-ul-padding":a}}),i=a?v("ul",void 0,n,e):void 0;return{mergedClsPrefix:l,cssVars:a?void 0:n,themeClass:null==i?void 0:i.themeClass,onRender:null==i?void 0:i.onRender}},render(){var e;const{mergedClsPrefix:l}=this;return null===(e=this.onRender)||void 0===e||e.call(this),O("ul",{class:[`${l}-ul`,this.themeClass,this.alignText&&`${l}-ul--align-text`],style:this.cssVars},this.$slots)}}),pl={class:"card-header"},vl={class:"card-title"},fl={class:"name"},gl={class:"card-body"},hl={key:0,class:"description"},bl={class:"stats"},yl={key:0},Cl={key:1},kl={key:2},xl={key:3},_l={key:4},Sl=C({__name:"ConfigTemplateCard",props:{template:{type:Object,required:!0},deleting:{type:Boolean,default:!1}},emits:["click","apply","preview","edit","delete"],setup(e){const l=e;const a={claude:{label:"Claude",color:"#cc785c",textColor:"#fff",borderColor:"#cc785c"},codex:{label:"Codex",color:"#10a37f",textColor:"#fff",borderColor:"#10a37f"},gemini:{label:"Gemini",color:"#4285f4",textColor:"#fff",borderColor:"#4285f4"},opencode:{label:"OpenCode",color:"#ff6b35",textColor:"#fff",borderColor:"#ff6b35"},omp:{label:"OMP",color:"#0f9f9a",textColor:"#fff",borderColor:"#0f9f9a"}},t={claude:"CLAUDE.md",codex:"AGENTS.md",gemini:"GEMINI.md",opencode:".opencode/AGENTS.md",omp:".omp/commands"};function n(e){const l=a[e];return l?{color:l.color,textColor:l.textColor,borderColor:l.borderColor}:{}}const s=j(()=>{const e=l.template,a=e?.cliType;return a&&"all"!==a?"omp"===a&&e?.commands?.length?t.omp:(e?.aiConfigs?.[a])?.enabled?t[a]||null:"claude"===a&&e?.claudeMd?.enabled?"CLAUDE.md":null:null});return(l,t)=>{return B(),W("div",{class:"template-card",onClick:t[5]||(t[5]=a=>l.$emit("click",e.template))},[Z("div",pl,[Z("div",vl,[Z("span",fl,V(e.template.name),1),e.template.cliType?(B(),M(H(Oe),{key:0,size:"small",color:n(e.template.cliType),round:""},{default:I(()=>{return[z(V((l=e.template.cliType,a[l]?.label||l)),1)];var l}),_:1},8,["color"])):T("",!0)]),Z("div",{class:"card-actions",onClick:t[4]||(t[4]=q(()=>{},["stop"]))},[L(H(y),{size:"small",type:"primary",onClick:t[0]||(t[0]=a=>l.$emit("apply",e.template))},{default:I(()=>[...t[6]||(t[6]=[z("应用",-1)])]),_:1}),L(H(y),{size:"small",onClick:t[1]||(t[1]=a=>l.$emit("preview",e.template))},{default:I(()=>[...t[7]||(t[7]=[z("预览",-1)])]),_:1}),L(H(y),{size:"small",onClick:t[2]||(t[2]=a=>l.$emit("edit",e.template))},{default:I(()=>[...t[8]||(t[8]=[z("编辑",-1)])]),_:1}),L(H(y),{size:"small",type:"error",loading:e.deleting,onClick:t[3]||(t[3]=a=>l.$emit("delete",e.template))},{default:I(()=>[...t[9]||(t[9]=[z("删除",-1)])]),_:1},8,["loading"])])]),Z("div",gl,[e.template.description?(B(),W("div",hl,V((i=e.template.description,r=80,i?.length>r?i.slice(0,r)+"...":i)),1)):T("",!0),Z("div",bl,[s.value?(B(),W("span",yl,V(s.value),1)):T("",!0),e.template.skills?.length?(B(),W("span",Cl,V(e.template.skills.length)+" Skills",1)):T("",!0),e.template.agents?.length?(B(),W("span",kl,V(e.template.agents.length)+" Agents",1)):T("",!0),e.template.commands?.length?(B(),W("span",xl,V(e.template.commands.length)+" Commands",1)):T("",!0),e.template.mcpServers?.length?(B(),W("span",_l,V(e.template.mcpServers.length)+" MCP",1)):T("",!0)])])]);var i,r}}},[["__scopeId","data-v-0bfacefb"]]),wl=["innerHTML"],Tl=C({__name:"MarkdownViewer",props:{content:{type:String,default:""}},setup(e){const l=e;function a(e,l){Fe.getLanguage(e)||Fe.registerLanguage(e,l)}a("javascript",Ee),a("typescript",Ve),a("json",Me),a("bash",Be),a("shell",Be),a("sh",Be),a("python",je),a("css",Ne),a("xml",Ie),a("html",Ie);const t=new Le({html:!0,linkify:!0,typographer:!0,highlight:function(e,l){if(l&&Fe.getLanguage(l))try{return'<pre class="hljs"><code>'+Fe.highlight(e,{language:l,ignoreIllegals:!0}).value+"</code></pre>"}catch(a){}return'<pre class="hljs"><code>'+t.utils.escapeHtml(e)+"</code></pre>"}}),n=j(()=>t.render(l.content||""));return(e,l)=>(B(),W("div",{class:"markdown-viewer",innerHTML:n.value},null,8,wl))}},[["__scopeId","data-v-9e29f753"]]),zl={class:"ai-config-header"},Pl={key:0,class:"prompt-preview"},Rl={class:"ai-config-header"},Al={class:"ai-config-header"},$l={class:"ai-config-header"},Ol={class:"ai-config-header"},Ul={__name:"ConfigTemplateFormModal",props:{show:Boolean,template:Object,availableConfigs:{type:Object,default:()=>({})}},emits:["update:show","success"],setup(e,{emit:l}){const a=e,t=l,n=re(),s=Y(null),i=Y(!1),r=j(()=>{const e=a.availableConfigs?.platforms;return Array.isArray(e)?e:[]});function o(e=[]){const l=[...r.value.map(e=>e.key),...Object.keys(a.availableConfigs?.skillsByPlatform||{}),...Object.keys(a.availableConfigs?.agentsByPlatform||{}),...Object.keys(a.availableConfigs?.commandsByPlatform||{}),...e];return[...new Set(l.filter(e=>"string"==typeof e&&e.trim()))]}const d=j(()=>r.value.map(e=>({label:e.label||e.title||e.key,value:e.key}))),u=j(()=>r.value.find(e=>e.key===g.value.cliType)),c=j(()=>u.value?.label||u.value?.title||g.value.cliType),m=j(()=>u.value?.promptFile||"");function p(e){const l=u.value?.projectResources?.[e];return l?.canonicalRoot||l?.path||""}const v=j(()=>Boolean(g.value.cliType&&u.value&&!["claude","codex","gemini","opencode","omp"].includes(g.value.cliType))),f=j(()=>!!a.template?.id),g=Y(h());function h(){return{name:"",description:"",cliType:"",aiConfigs:Object.fromEntries(o().map(e=>[e,{enabled:!1,content:""}])),claudeMd:{enabled:!1,content:""},skills:[],agents:[],commands:[],mcpServers:[]}}N(r,e=>{for(const l of e)g.value.aiConfigs[l.key]||(g.value.aiConfigs[l.key]={enabled:!1,content:""})},{deep:!0,immediate:!0});const b={name:{required:!0,message:"请输入模版名称",trigger:"blur"},cliType:{required:!0,message:"请选择 CLI 工具类型",trigger:"change"}},C=j(()=>{const e=g.value.cliType,l=a.availableConfigs?.skillsByPlatform||{};return(e&&l[e]?l[e]:[]).map(e=>({value:e.directory,label:e.name?`${e.name} (${e.directory})`:e.directory,disabled:!1}))}),k=j(()=>{const e=g.value.cliType,l=a.availableConfigs?.agentsByPlatform||{};return(e&&l[e]?l[e]:a.availableConfigs?.agents||[]).map(e=>({value:e.fileName,label:e.name||e.fileName,disabled:!1}))}),x=j(()=>{const e=g.value.cliType,l=a.availableConfigs?.commandsByPlatform||{};return(e&&l[e]?l[e]:a.availableConfigs?.commands||[]).map(e=>({value:e.namespace?`${e.namespace}/${e.name}`:e.name,label:e.namespace?`${e.namespace}/${e.name}`:e.name,disabled:!1}))}),_=j(()=>{const e=a.availableConfigs?.mcpServers||[],l=a.availableConfigs?.mcpPresets||[],t=[...e.map(e=>({value:e.id,label:e.name||e.id})),...l.map(e=>({value:e.id,label:`${e.name} (预设)`}))],n=new Set;return t.filter(e=>!n.has(e.value)&&(n.add(e.value),!0))}),S=Y(null),w=j(()=>(a.availableConfigs?.prompts||[]).map(e=>({value:e.id,label:e.isBuiltin?`[内置] ${e.name}`:e.name,description:e.description}))),P=j({get:()=>g.value.skills.map(e=>e.directory),set:e=>{const l=g.value.cliType,t=a.availableConfigs?.skillsByPlatform||{},n=l&&t[l]?t[l]:[];g.value.skills=e.map(e=>{const l=n.find(l=>l.directory===e);return l?{...l}:{directory:e,name:e}})}}),R=j({get:()=>g.value.agents.map(e=>e.fileName),set:e=>{const l=g.value.cliType,t=a.availableConfigs?.agentsByPlatform||{},n=l&&t[l]?t[l]:a.availableConfigs?.agents||[];g.value.agents=e.map(e=>{const l=n.find(l=>l.fileName===e);return l?{...l}:{fileName:e}})}}),$=j({get:()=>g.value.commands.map(e=>e.namespace?`${e.namespace}/${e.name}`:e.name),set:e=>{const l=g.value.cliType,t=a.availableConfigs?.commandsByPlatform||{},n=l&&t[l]?t[l]:a.availableConfigs?.commands||[];g.value.commands=e.map(e=>{const l=n.find(l=>(l.namespace?`${l.namespace}/${l.name}`:l.name)===e);return l?{...l}:{name:e}})}});function O(e){if(!e)return void(g.value.aiConfigs.claude.content="");const l=(a.availableConfigs?.prompts||[]).find(l=>l.id===e);l&&(g.value.aiConfigs.claude.enabled=!0,g.value.aiConfigs.claude.content=l.content)}async function U(){try{await(s.value?.validate())}catch{return}i.value=!0;try{const e={...g.value};let l;l=f.value?await Ye(a.template.id,e):await qe(e),l.success?(n.success(f.value?"保存成功":"创建成功"),t("success")):n.error(l.message||"操作失败")}catch(e){n.error("操作失败: "+e.message)}finally{i.value=!1}}return N(()=>a.show,e=>{if(e)if(S.value=null,a.template){const e=Object.keys(a.template.aiConfigs||{}),l=Object.fromEntries(o(e).map(e=>[e,{enabled:!1,content:""}]));if(a.template.aiConfigs)for(const t of o(Object.keys(a.template.aiConfigs)))a.template.aiConfigs[t]&&(l[t]={...a.template.aiConfigs[t]});else a.template.claudeMd&&(l.claude||(l.claude={enabled:!1,content:""}),l.claude={...a.template.claudeMd});g.value={name:a.template.name||"",description:a.template.description||"",cliType:a.template.cliType||"",aiConfigs:l,claudeMd:a.template.claudeMd?{...a.template.claudeMd}:{enabled:!1,content:""},skills:a.template.skills?[...a.template.skills]:[],agents:a.template.agents?[...a.template.agents]:[],commands:a.template.commands?[...a.template.commands]:[],mcpServers:a.template.mcpServers?[...a.template.mcpServers]:[]}}else g.value=h()}),N(()=>g.value.cliType,e=>{const l=r.value.find(l=>l.key===e)?.resourceTypes;l&&(l.skills||(g.value.skills=[]),l.agents||(g.value.agents=[]),l.commands||(g.value.commands=[]))}),(l,a)=>{const n=A("n-text");return B(),M(H(ue),{show:e.show,preset:"card",title:f.value?"编辑配置模版":"创建配置模版",style:{width:"850px","max-height":"90vh"},"mask-closable":!1,"onUpdate:show":a[30]||(a[30]=e=>t("update:show",e))},{footer:I(()=>[L(H(be),{justify:"end"},{default:I(()=>[L(H(y),{onClick:a[29]||(a[29]=e=>t("update:show",!1))},{default:I(()=>[...a[35]||(a[35]=[z("取消",-1)])]),_:1}),L(H(y),{type:"primary",loading:i.value,onClick:U},{default:I(()=>[z(V(f.value?"保存":"创建"),1)]),_:1},8,["loading"])]),_:1})]),default:I(()=>[L(H(xe),{style:{"max-height":"calc(90vh - 140px)"}},{default:I(()=>[L(H(Ce),{ref_key:"formRef",ref:s,model:g.value,rules:b,"label-placement":"left","label-width":"100"},{default:I(()=>[L(H(oe),{title:"基本信息",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[L(H(ye),{label:"模版名称",path:"name"},{default:I(()=>[L(H(Ae),{value:g.value.name,"onUpdate:value":a[0]||(a[0]=e=>g.value.name=e),placeholder:"输入模版名称"},null,8,["value"])]),_:1}),L(H(ye),{label:"描述",path:"description"},{default:I(()=>[L(H(Ae),{value:g.value.description,"onUpdate:value":a[1]||(a[1]=e=>g.value.description=e),type:"textarea",rows:2,placeholder:"输入模版描述"},null,8,["value"])]),_:1}),L(H(ye),{label:"CLI 工具",path:"cliType"},{default:I(()=>[L(H(fe),{value:g.value.cliType,"onUpdate:value":a[2]||(a[2]=e=>g.value.cliType=e),options:d.value,placeholder:"选择 CLI 工具类型"},null,8,["value","options"])]),_:1})]),_:1}),g.value.cliType?T("",!0):(B(),M(H(oe),{key:0,size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[L(H(we),{description:"请先选择 CLI 工具类型以显示配置项"})]),_:1})),"claude"===g.value.cliType?(B(),W(D,{key:1},[L(H(oe),{title:"CLAUDE.md",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[Z("div",zl,[L(H(be),{align:"center"},{default:I(()=>[L(H(ze),{value:g.value.aiConfigs.claude.enabled,"onUpdate:value":a[3]||(a[3]=e=>g.value.aiConfigs.claude.enabled=e)},null,8,["value"]),L(n,{depth:g.value.aiConfigs.claude.enabled?1:3},{default:I(()=>[...a[31]||(a[31]=[z("启用 CLAUDE.md",-1)])]),_:1},8,["depth"])]),_:1})]),L(H(el),{show:g.value.aiConfigs.claude.enabled},{default:I(()=>[L(H(fe),{value:S.value,"onUpdate:value":[a[4]||(a[4]=e=>S.value=e),O],options:w.value,placeholder:"选择 Prompt 预设作为 CLAUDE.md 内容",clearable:"",style:{"margin-bottom":"10px"}},null,8,["value","options"]),g.value.aiConfigs.claude.content?(B(),W("div",Pl,[L(Tl,{content:g.value.aiConfigs.claude.content},null,8,["content"])])):(B(),M(H(we),{key:1,description:"可选择 Prompt 预设,或留空",style:{padding:"24px 0"}}))]),_:1},8,["show"])]),_:1}),L(H(oe),{title:"Skills",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.skills.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:P.value,"onUpdate:value":a[5]||(a[5]=e=>P.value=e),options:C.value,"source-title":"可用 Skills","target-title":"已选 Skills"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Agents",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.agents.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:R.value,"onUpdate:value":a[6]||(a[6]=e=>R.value=e),options:k.value,"source-title":"可用 Agents","target-title":"已选 Agents"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Commands",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.commands.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:$.value,"onUpdate:value":a[7]||(a[7]=e=>$.value=e),options:x.value,"source-title":"可用 Commands","target-title":"已选 Commands"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"MCP Servers",size:"small"},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.mcpServers.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:g.value.mcpServers,"onUpdate:value":a[8]||(a[8]=e=>g.value.mcpServers=e),options:_.value,"source-title":"可用 MCP Servers","target-title":"已选 MCP Servers"},null,8,["value","options"])]),_:1})],64)):T("",!0),"codex"===g.value.cliType?(B(),W(D,{key:2},[L(H(oe),{title:"AGENTS.md",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[Z("div",Rl,[L(H(be),{align:"center"},{default:I(()=>[L(H(ze),{value:g.value.aiConfigs.codex.enabled,"onUpdate:value":a[9]||(a[9]=e=>g.value.aiConfigs.codex.enabled=e)},null,8,["value"]),L(n,{depth:g.value.aiConfigs.codex.enabled?1:3},{default:I(()=>[...a[32]||(a[32]=[z("启用 AGENTS.md",-1)])]),_:1},8,["depth"])]),_:1})]),L(H(el),{show:g.value.aiConfigs.codex.enabled},{default:I(()=>[L(De,{modelValue:g.value.aiConfigs.codex.content,"onUpdate:modelValue":a[10]||(a[10]=e=>g.value.aiConfigs.codex.content=e),rows:10,"min-height":220,placeholder:"输入 AGENTS.md 内容"},null,8,["modelValue"])]),_:1},8,["show"])]),_:1}),L(H(oe),{title:"Skills",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.skills.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:P.value,"onUpdate:value":a[11]||(a[11]=e=>P.value=e),options:C.value,"source-title":"可用 Skills","target-title":"已选 Skills"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Agents",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.agents.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:R.value,"onUpdate:value":a[12]||(a[12]=e=>R.value=e),options:k.value,"source-title":"可用 Agents","target-title":"已选 Agents"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Commands",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.commands.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:$.value,"onUpdate:value":a[13]||(a[13]=e=>$.value=e),options:x.value,"source-title":"可用 Commands","target-title":"已选 Commands"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"MCP Servers",size:"small"},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.mcpServers.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:g.value.mcpServers,"onUpdate:value":a[14]||(a[14]=e=>g.value.mcpServers=e),options:_.value,"source-title":"可用 MCP Servers","target-title":"已选 MCP Servers"},null,8,["value","options"])]),_:1})],64)):T("",!0),"gemini"===g.value.cliType?(B(),W(D,{key:3},[L(H(oe),{title:"GEMINI.md",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[Z("div",Al,[L(H(be),{align:"center"},{default:I(()=>[L(H(ze),{value:g.value.aiConfigs.gemini.enabled,"onUpdate:value":a[15]||(a[15]=e=>g.value.aiConfigs.gemini.enabled=e)},null,8,["value"]),L(n,{depth:g.value.aiConfigs.gemini.enabled?1:3},{default:I(()=>[...a[33]||(a[33]=[z("启用 GEMINI.md",-1)])]),_:1},8,["depth"])]),_:1})]),L(H(el),{show:g.value.aiConfigs.gemini.enabled},{default:I(()=>[L(De,{modelValue:g.value.aiConfigs.gemini.content,"onUpdate:modelValue":a[16]||(a[16]=e=>g.value.aiConfigs.gemini.content=e),rows:10,"min-height":220,placeholder:"输入 GEMINI.md 内容"},null,8,["modelValue"])]),_:1},8,["show"])]),_:1}),L(H(oe),{title:"Skills",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.skills.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:P.value,"onUpdate:value":a[17]||(a[17]=e=>P.value=e),options:C.value,"source-title":"可用 Skills","target-title":"已选 Skills"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"MCP Servers",size:"small"},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.mcpServers.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:g.value.mcpServers,"onUpdate:value":a[18]||(a[18]=e=>g.value.mcpServers=e),options:_.value,"source-title":"可用 MCP Servers","target-title":"已选 MCP Servers"},null,8,["value","options"])]),_:1})],64)):T("",!0),"opencode"===g.value.cliType?(B(),W(D,{key:4},[L(H(oe),{title:".opencode/AGENTS.md",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[Z("div",$l,[L(H(be),{align:"center"},{default:I(()=>[L(H(ze),{value:g.value.aiConfigs.opencode.enabled,"onUpdate:value":a[19]||(a[19]=e=>g.value.aiConfigs.opencode.enabled=e)},null,8,["value"]),L(n,{depth:g.value.aiConfigs.opencode.enabled?1:3},{default:I(()=>[...a[34]||(a[34]=[z("启用 .opencode/AGENTS.md",-1)])]),_:1},8,["depth"])]),_:1})]),L(H(el),{show:g.value.aiConfigs.opencode.enabled},{default:I(()=>[L(De,{modelValue:g.value.aiConfigs.opencode.content,"onUpdate:modelValue":a[20]||(a[20]=e=>g.value.aiConfigs.opencode.content=e),rows:10,"min-height":220,placeholder:"输入 .opencode/AGENTS.md 内容"},null,8,["modelValue"])]),_:1},8,["show"])]),_:1}),L(H(oe),{title:"Skills",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.skills.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:P.value,"onUpdate:value":a[21]||(a[21]=e=>P.value=e),options:C.value,"source-title":"可用 Skills","target-title":"已选 Skills"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Agents",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.agents.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:R.value,"onUpdate:value":a[22]||(a[22]=e=>R.value=e),options:k.value,"source-title":"可用 Agents","target-title":"已选 Agents"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Commands",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.commands.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:$.value,"onUpdate:value":a[23]||(a[23]=e=>$.value=e),options:x.value,"source-title":"可用 Commands","target-title":"已选 Commands"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"MCP Servers",size:"small"},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.mcpServers.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:g.value.mcpServers,"onUpdate:value":a[24]||(a[24]=e=>g.value.mcpServers=e),options:_.value,"source-title":"可用 MCP Servers","target-title":"已选 MCP Servers"},null,8,["value","options"])]),_:1})],64)):T("",!0),"omp"===g.value.cliType?(B(),W(D,{key:5},[L(H(oe),{title:"OMP Commands",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[L(H(Oe),{size:"small",type:"success"},{default:I(()=>[z(V(p("commands")||"Commands"),1)]),_:1})]),_:1}),L(H(oe),{title:"Skills",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.skills.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:P.value,"onUpdate:value":a[25]||(a[25]=e=>P.value=e),options:C.value,"source-title":"可用 Skills","target-title":"已选 Skills"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Commands",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.commands.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:$.value,"onUpdate:value":a[26]||(a[26]=e=>$.value=e),options:x.value,"source-title":"可用 Commands","target-title":"已选 Commands"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"MCP Servers",size:"small"},{default:I(()=>[L(H(Oe),{size:"small",type:"default"},{default:I(()=>[z(V(p("plugins")||"packages/extensions"),1)]),_:1})]),_:1})],64)):T("",!0),v.value?(B(),M(H(oe),{key:6,title:`${c.value} 配置`,size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[Z("div",Ol,[L(H(be),{align:"center"},{default:I(()=>[L(H(ze),{value:g.value.aiConfigs[g.value.cliType].enabled,"onUpdate:value":a[27]||(a[27]=e=>g.value.aiConfigs[g.value.cliType].enabled=e)},null,8,["value"]),L(n,{depth:g.value.aiConfigs[g.value.cliType].enabled?1:3},{default:I(()=>[z(" 启用 "+V(m.value||`${c.value} 配置`),1)]),_:1},8,["depth"])]),_:1})]),L(H(el),{show:g.value.aiConfigs[g.value.cliType].enabled},{default:I(()=>[L(De,{modelValue:g.value.aiConfigs[g.value.cliType].content,"onUpdate:modelValue":a[28]||(a[28]=e=>g.value.aiConfigs[g.value.cliType].content=e),rows:10,"min-height":220,placeholder:`输入 ${m.value||c.value} 内容`},null,8,["modelValue","placeholder"])]),_:1},8,["show"])]),_:1},8,["title"])):T("",!0)]),_:1},8,["model"])]),_:1})]),_:1},8,["show","title"])}}},Ll=C(Ul,[["__scopeId","data-v-0d81f984"]]),Ml={key:0},Fl={key:1},Bl={key:2},Nl={key:4},Vl={__name:"ConfigApplyModal",props:{show:Boolean,template:Object},emits:["update:show","success"],setup(e,{emit:l}){const a=e,t=l,n=re(),s=Y(null),i=Y(!1),r=Y(!1),o=Y(null),d=Y(!1),u=Y([]),c=Y(null),m={claude:{key:"claude",name:"Claude",fileName:"CLAUDE.md",color:"#cc785c"},codex:{key:"codex",name:"Codex",fileName:"AGENTS.md",color:"#10a37f"},gemini:{key:"gemini",name:"Gemini",fileName:"GEMINI.md",color:"#4285f4"},opencode:{key:"opencode",name:"OpenCode",fileName:".opencode/AGENTS.md",color:"#ff6b35"},omp:{key:"omp",name:"OMP command templates",fileName:".omp/commands",color:"#0f9f9a"}},p=j(()=>{const e=a.template?.aiConfigs||{},l=a.template?.cliType;if("omp"===l&&m.omp)return[m.omp];const t=Object.entries(e).filter(([,e])=>e?.enabled&&e?.content).map(([e])=>m[e]).filter(Boolean);if(l&&"all"!==l){const a=e[l];if(a?.enabled&&a?.content&&m[l])return[m[l]]}return t});function v(){return p.value.map(e=>e.key)}const g=Y({targetPath:"",aiConfigTypes:[]}),h={targetPath:{required:!0,message:"请输入目标路径",trigger:"blur"}},b=j(()=>{const e=new Set,l=[];for(const a of u.value){const t=a.fullPath||a.path||a.name;t&&!e.has(t)&&(e.add(t),l.push({label:`${a.displayName||a.name} (${a.channel})`,value:t}))}return l});function C(e){e&&(g.value.targetPath=e)}async function k(){if(g.value.targetPath&&a.template&&0!==g.value.aiConfigTypes.length){i.value=!0;try{const e=await We(a.template.id,g.value.targetPath,g.value.aiConfigTypes);e.success?o.value=e.data:n.error(e.message||"预览失败")}catch(e){n.error("预览失败: "+e.message)}finally{i.value=!1}}}async function x(){try{await(s.value?.validate())}catch{return}if(a.template&&0!==g.value.aiConfigTypes.length){r.value=!0;try{const e=await Ke(a.template.id,g.value.targetPath,g.value.aiConfigTypes);if(e.success){const l=e.data?.results?.skipped||[];l.length>0?n.warning(`模版已部分应用,${l.length} 项已跳过`):n.success("模版应用成功"),t("success",e.data||null)}else n.error(e.message||"应用失败")}catch(e){n.error("应用失败: "+e.message)}finally{r.value=!1}}}return N(()=>a.show,e=>{e&&(g.value.targetPath="",g.value.aiConfigTypes=v(),o.value=null,c.value=null,async function(){d.value=!0;try{const e=await Ge();e.success?u.value=Array.isArray(e.data)?e.data:[]:u.value=[]}catch(e){u.value=[]}finally{d.value=!1}}())}),N(()=>a.template,()=>{g.value.aiConfigTypes=v()}),(l,a)=>(B(),M(H(ue),{show:e.show,preset:"card",title:`应用模版: ${e.template?.name||""}`,style:{width:"650px"},"mask-closable":!1,"onUpdate:show":a[4]||(a[4]=e=>t("update:show",e))},{footer:I(()=>[L(H(be),{justify:"end"},{default:I(()=>[L(H(y),{onClick:a[3]||(a[3]=e=>t("update:show",!1))},{default:I(()=>[...a[14]||(a[14]=[z("取消",-1)])]),_:1}),L(H(y),{type:"primary",loading:r.value,disabled:!g.value.targetPath||0===g.value.aiConfigTypes.length,onClick:x},{default:I(()=>[...a[15]||(a[15]=[z(" 确认应用 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),default:I(()=>[L(H(Ce),{ref_key:"formRef",ref:s,model:g.value,rules:h},{default:I(()=>[L(H(ye),{label:"选择已有项目"},{default:I(()=>[L(H(fe),{value:c.value,"onUpdate:value":[a[0]||(a[0]=e=>c.value=e),C],options:b.value,loading:d.value,placeholder:"选择已有项目路径",filterable:"",clearable:""},null,8,["value","options","loading"])]),_:1}),L(H(ye),{label:"目标项目路径",path:"targetPath"},{default:I(()=>[L(H(Ae),{value:g.value.targetPath,"onUpdate:value":a[1]||(a[1]=e=>g.value.targetPath=e),placeholder:"输入项目目录路径,如 /path/to/project"},null,8,["value"])]),_:1}),p.value.length>0?(B(),M(H(ye),{key:0,label:"生成配置文件"},{default:I(()=>[L(H(Te),{value:g.value.aiConfigTypes,"onUpdate:value":a[2]||(a[2]=e=>g.value.aiConfigTypes=e)},{default:I(()=>[L(H(be),null,{default:I(()=>[(B(!0),W(D,null,$(p.value,e=>(B(),M(H(Re),{key:e.key,value:e.key},{default:I(()=>[L(H(be),{align:"center",size:4},{default:I(()=>[L(H(f),{size:16,color:e.color},{default:I(()=>[L(H(J))]),_:1},8,["color"]),Z("span",null,V(e.name),1),L(H(ge),{depth:"3",style:{"font-size":"12px"}},{default:I(()=>[z("("+V(e.fileName||e.name)+")",1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["value"]),L(H(ge),{depth:"3",style:{"font-size":"12px","margin-top":"4px",display:"block"}},{default:I(()=>[...a[5]||(a[5]=[z(" 可同时选择多个 CLI 配置文件 ",-1)])]),_:1})]),_:1})):T("",!0)]),_:1},8,["model"]),L(H(be),{style:{"margin-bottom":"16px"}},{default:I(()=>[L(H(y),{onClick:k,loading:i.value,disabled:!g.value.targetPath||0===g.value.aiConfigTypes.length},{default:I(()=>[...a[6]||(a[6]=[z(" 预览应用效果 ",-1)])]),_:1},8,["loading","disabled"])]),_:1}),o.value?(B(),M(H(oe),{key:0,size:"small",title:"应用预览"},{default:I(()=>[L(H(be),{vertical:""},{default:I(()=>[o.value.summary?(B(),W("div",Ml,[L(H(ge),{depth:"3"},{default:I(()=>[...a[7]||(a[7]=[z("将应用:",-1)])]),_:1}),L(H(be),{style:{"margin-top":"8px"},wrap:""},{default:I(()=>[(B(!0),W(D,null,$(o.value.summary.aiConfigs,e=>{return B(),M(H(Oe),{key:e.type,type:(l=e.type,{claude:"warning",codex:"success",gemini:"info",opencode:"error",omp:"success"}[l]||"default"),size:"small"},{default:I(()=>[z(V(e.fileName||e.name),1)]),_:2},1032,["type"]);var l}),128)),o.value.summary.skills?(B(),M(H(Oe),{key:0,type:"info",size:"small"},{default:I(()=>[z(V(o.value.summary.skills)+" Skills",1)]),_:1})):T("",!0),o.value.summary.agents?(B(),M(H(Oe),{key:1,type:"info",size:"small"},{default:I(()=>[z(V(o.value.summary.agents)+" Agents",1)]),_:1})):T("",!0),o.value.summary.commands?(B(),M(H(Oe),{key:2,type:"info",size:"small"},{default:I(()=>[z(V(o.value.summary.commands)+" Commands",1)]),_:1})):T("",!0),o.value.summary.plugins?(B(),M(H(Oe),{key:3,type:"warning",size:"small"},{default:I(()=>[z(V(o.value.summary.plugins)+" Plugins",1)]),_:1})):T("",!0),o.value.summary.mcpServers?(B(),M(H(Oe),{key:4,type:"warning",size:"small"},{default:I(()=>[z(V(o.value.summary.mcpServers)+" MCP",1)]),_:1})):T("",!0),o.value.summary.skipped?(B(),M(H(Oe),{key:5,type:"error",size:"small"},{default:I(()=>[z(V(o.value.summary.skipped)+" Skipped",1)]),_:1})):T("",!0)]),_:1})])):T("",!0),L(H(ve),{style:{margin:"12px 0"}}),o.value.willCreate?.length?(B(),W("div",Fl,[L(H(ge),{type:"success"},{default:I(()=>[...a[8]||(a[8]=[z("将创建:",-1)])]),_:1}),L(H(ml),{style:{margin:"4px 0"}},{default:I(()=>[(B(!0),W(D,null,$(o.value.willCreate,e=>(B(),M(H(ol),{key:e},{default:I(()=>[L(H(ge),{code:""},{default:I(()=>[z(V(e),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):T("",!0),o.value.willOverwrite?.length?(B(),W("div",Bl,[L(H(ge),{type:"warning"},{default:I(()=>[...a[9]||(a[9]=[z("将覆盖:",-1)])]),_:1}),L(H(ml),{style:{margin:"4px 0"}},{default:I(()=>[(B(!0),W(D,null,$(o.value.willOverwrite,e=>(B(),M(H(ol),{key:e},{default:I(()=>[L(H(ge),{code:""},{default:I(()=>[z(V(e),1)]),_:2},1024),L(H(Oe),{type:"warning",size:"tiny",style:{"margin-left":"8px"}},{default:I(()=>[...a[10]||(a[10]=[z("已存在",-1)])]),_:1})]),_:2},1024))),128))]),_:1})])):T("",!0),o.value.willOverwrite?.length?(B(),M(H(Se),{key:3,type:"warning",style:{"margin-top":"8px"}},{default:I(()=>[...a[11]||(a[11]=[z(" 以上文件将被覆盖,请确认后再应用 ",-1)])]),_:1})):T("",!0),o.value.skipped?.length?(B(),W("div",Nl,[L(H(ge),{type:"error"},{default:I(()=>[...a[12]||(a[12]=[z("将跳过:",-1)])]),_:1}),L(H(ml),{style:{margin:"4px 0"}},{default:I(()=>[(B(!0),W(D,null,$(o.value.skipped,(e,l)=>(B(),M(H(ol),{key:`${e.type}-${e.item}-${l}`},{default:I(()=>[L(H(ge),null,{default:I(()=>[z(V(e.type)+": ",1)]),_:2},1024),L(H(ge),{code:""},{default:I(()=>[z(V(e.item),1)]),_:2},1024),L(H(ge),{depth:"3"},{default:I(()=>[z(" - "+V(e.reason),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):T("",!0),o.value.skipped?.length?(B(),M(H(Se),{key:5,type:"info",style:{"margin-top":"8px"}},{default:I(()=>[...a[13]||(a[13]=[z(" 本次将进行部分应用,以上项会被跳过。 ",-1)])]),_:1})):T("",!0)]),_:1})]),_:1})):T("",!0)]),_:1},8,["show","title"]))}},jl={key:0,class:"preview-content"},El={class:"info-section"},Il={class:"info-row"},Dl={class:"value"},Gl={key:0,class:"info-row"},ql={class:"value"},Hl={key:1,class:"info-row"},Yl={class:"stats-section"},Wl={class:"stats-grid"},Zl={key:1,class:"stat-item"},Jl={key:2,class:"stat-item"},Kl={key:3,class:"stat-item"},Ql={key:4,class:"stat-item"},Xl={key:5,class:"stat-item"},ea={class:"markdown-content"},la={class:"markdown-content"},aa={class:"list-items"},ta={class:"list-items"},na={class:"list-items"},sa={key:0,class:"list-note"},ia={class:"list-items"},ra=C({__name:"ConfigPreviewModal",props:{show:Boolean,template:Object},emits:["update:show","apply"],setup(e,{emit:l}){const a=e,t=l,n={claude:{key:"claude",name:"Claude",fileName:"CLAUDE.md",color:"#cc785c"},codex:{key:"codex",name:"Codex",fileName:"AGENTS.md",color:"#10a37f"},gemini:{key:"gemini",name:"Gemini",fileName:"GEMINI.md",color:"#4285f4"},opencode:{key:"opencode",name:"OpenCode",fileName:".opencode/AGENTS.md",color:"#ff6b35"},omp:{key:"omp",name:"OMP command templates",fileName:".omp/commands",color:"#0f9f9a"}},s=j(()=>{const e=a.template?.aiConfigs||{},l=Object.entries(e).filter(([,e])=>e?.enabled&&e?.content).map(([e,l])=>({...n[e],content:l.content})).filter(e=>e.key),t=a.template?.cliType;if("omp"===t&&a.template?.commands?.length)return[{...n.omp,content:a.template.commands.map(e=>`- ${e.namespace?`${e.namespace}/`:""}${e.name||e}`).join("\n")}];if(t&&"all"!==t){const l=e[t];if(l?.enabled&&l?.content&&n[t])return[{...n[t],content:l.content}]}return l}),i=j(()=>s.value.length>0),r=j(()=>{const e=a.template;return!!e&&(i.value||e.claudeMd?.content||e.skills?.length||e.agents?.length||e.commands?.length||e.mcpServers?.length)}),o={claude:{label:"Claude",color:"#cc785c",textColor:"#fff",borderColor:"#cc785c"},codex:{label:"Codex",color:"#10a37f",textColor:"#fff",borderColor:"#10a37f"},gemini:{label:"Gemini",color:"#4285f4",textColor:"#fff",borderColor:"#4285f4"},opencode:{label:"OpenCode",color:"#ff6b35",textColor:"#fff",borderColor:"#ff6b35"},omp:{label:"OMP",color:"#0f9f9a",textColor:"#fff",borderColor:"#0f9f9a"}};function d(e){const l=o[e];return l?{color:l.color,textColor:l.textColor,borderColor:l.borderColor}:{}}function u(){t("apply",a.template)}return(l,a)=>(B(),M(H(ue),{show:e.show,preset:"card",title:`模版预览: ${e.template?.name||""}`,style:{width:"750px","max-height":"80vh"},"mask-closable":!0,"onUpdate:show":a[1]||(a[1]=e=>t("update:show",e))},{footer:I(()=>[L(H(be),{justify:"end"},{default:I(()=>[L(H(y),{onClick:a[0]||(a[0]=e=>t("update:show",!1))},{default:I(()=>[...a[7]||(a[7]=[z("关闭",-1)])]),_:1}),L(H(y),{type:"primary",onClick:u},{default:I(()=>[...a[8]||(a[8]=[z("应用此模版",-1)])]),_:1})]),_:1})]),default:I(()=>[e.template?(B(),W("div",jl,[Z("div",El,[Z("div",Il,[a[2]||(a[2]=Z("span",{class:"label"},"名称:",-1)),Z("span",Dl,V(e.template.name),1)]),e.template.description?(B(),W("div",Gl,[a[3]||(a[3]=Z("span",{class:"label"},"描述:",-1)),Z("span",ql,V(e.template.description),1)])):T("",!0),e.template.cliType?(B(),W("div",Hl,[a[4]||(a[4]=Z("span",{class:"label"},"CLI 工具:",-1)),L(H(Oe),{size:"small",color:d(e.template.cliType),round:""},{default:I(()=>{return[z(V((l=e.template.cliType,o[l]?.label||l)),1)];var l}),_:1},8,["color"])])):T("",!0)]),Z("div",Yl,[a[6]||(a[6]=Z("div",{class:"section-title"},"包含配置",-1)),Z("div",Wl,[i.value?(B(!0),W(D,{key:0},$(s.value,e=>(B(),W("div",{class:"stat-item",key:e.key},[L(H(f),{size:"20",color:e.color},{default:I(()=>[L(H(J))]),_:1},8,["color"]),Z("span",null,V(e.fileName||e.name),1)]))),128)):e.template.claudeMd?.enabled?(B(),W("div",Zl,[L(H(f),{size:"20"},{default:I(()=>[L(H(J))]),_:1}),a[5]||(a[5]=Z("span",null,"CLAUDE.md",-1))])):T("",!0),e.template.skills?.length?(B(),W("div",Jl,[L(H(f),{size:"20"},{default:I(()=>[L(H(ae))]),_:1}),Z("span",null,V(e.template.skills.length)+" Skills",1)])):T("",!0),e.template.agents?.length?(B(),W("div",Kl,[L(H(f),{size:"20"},{default:I(()=>[L(H(K))]),_:1}),Z("span",null,V(e.template.agents.length)+" Agents",1)])):T("",!0),e.template.commands?.length?(B(),W("div",Ql,[L(H(f),{size:"20"},{default:I(()=>[L(H(ie))]),_:1}),Z("span",null,V(e.template.commands.length)+" Commands",1)])):T("",!0),e.template.mcpServers?.length?(B(),W("div",Xl,[L(H(f),{size:"20"},{default:I(()=>[L(H(se))]),_:1}),Z("span",null,V(e.template.mcpServers.length)+" MCP Servers",1)])):T("",!0)])]),r.value?(B(),M(H(me),{key:0,class:"details-section"},{default:I(()=>[(B(!0),W(D,null,$(s.value,e=>(B(),M(H(pe),{key:e.key,title:`${e.name} 配置 (${e.fileName||e.name})`,name:e.key},{default:I(()=>[Z("div",ea,[L(Tl,{content:e.content},null,8,["content"])])]),_:2},1032,["title","name"]))),128)),!i.value&&e.template.claudeMd?.content?(B(),M(H(pe),{key:0,title:"CLAUDE.md 内容",name:"claudeMd"},{default:I(()=>[Z("div",la,[L(Tl,{content:e.template.claudeMd.content},null,8,["content"])])]),_:1})):T("",!0),e.template.skills?.length?(B(),M(H(pe),{key:1,title:"Skills 列表",name:"skills"},{default:I(()=>[Z("div",aa,[(B(!0),W(D,null,$(e.template.skills,(e,l)=>(B(),W("div",{key:l,class:"list-item"},V(e.name||e),1))),128))])]),_:1})):T("",!0),e.template.agents?.length?(B(),M(H(pe),{key:2,title:"Agents 列表",name:"agents"},{default:I(()=>[Z("div",ta,[(B(!0),W(D,null,$(e.template.agents,(e,l)=>(B(),W("div",{key:l,class:"list-item"},V(e.name||e),1))),128))])]),_:1})):T("",!0),e.template.commands?.length?(B(),M(H(pe),{key:3,title:"Commands 列表",name:"commands"},{default:I(()=>[Z("div",na,["omp"===e.template.cliType?(B(),W("div",sa," 将写入 .omp/commands,作为 OMP commands 使用。 ")):T("",!0),(B(!0),W(D,null,$(e.template.commands,(e,l)=>(B(),W("div",{key:l,class:"list-item"},V(e.name||e),1))),128))])]),_:1})):T("",!0),e.template.mcpServers?.length?(B(),M(H(pe),{key:4,title:"MCP Servers",name:"mcpServers"},{default:I(()=>[Z("div",ia,[(B(!0),W(D,null,$(e.template.mcpServers,(e,l)=>(B(),W("div",{key:l,class:"list-item"},V(e.name||e),1))),128))])]),_:1})):T("",!0)]),_:1})):T("",!0)])):T("",!0)]),_:1},8,["show","title"]))}},[["__scopeId","data-v-27b692bd"]]),oa={key:0,class:"panel-header"},da={class:"header-left"},ua={class:"header-right"},ca={key:1,class:"drawer-header-bar"},ma={class:"header-right"},pa={class:"stats-bar"},va={class:"stats-text"},fa={class:"filter-bar"},ga={class:"panel-content"},ha={key:0,class:"empty-state"},ba={key:1,class:"card-list"},ya={class:"panel-footer"},Ca={__name:"ConfigTemplatesPanel",props:{inDrawer:{type:Boolean,default:!1},hideBack:{type:Boolean,default:!1},drawerVisible:{type:Boolean,default:!1}},emits:["back","updated"],setup(e){const l=e,a=re(),t=de(),n=Y(!1),s=Y([]),i=Y({}),r=Y(""),o=Y(""),d=j(()=>{const e=Array.isArray(i.value?.platforms)?i.value.platforms:[],l=s.value.map(e=>e.cliType).filter(Boolean).map(e=>({key:e,label:e})),a=new Set,t=[{label:"全部 CLI",value:""}];for(const n of[...e,...l]){const e=String(n?.key||"").trim().toLowerCase();e&&!a.has(e)&&(a.add(e),t.push({label:n.label||n.title||e,value:e}))}return t}),u=Y(null),c=Y(!1),m=Y(!1),p=Y(!1),v=Y(null),g=Y(null),h=Y(null),b=j(()=>{let e=s.value;if(o.value&&(e=e.filter(e=>e.cliType===o.value)),r.value.trim()){const l=r.value.toLowerCase();e=e.filter(e=>e.name?.toLowerCase().includes(l)||e.description?.toLowerCase().includes(l))}return e});async function C(){n.value=!0;try{const[e,l]=await Promise.all([Je(),Ze()]);e.success&&(s.value=e.data||[]),l.success&&(i.value=l.data||{})}catch(e){a.error("加载数据失败: "+e.message)}finally{n.value=!1}}function k(){v.value=null,c.value=!0}function x(e){v.value={...e},c.value=!0}function _(e){h.value=e,p.value=!0}function S(e){g.value=e,p.value=!1,m.value=!0}function w(e){t.warning({title:"确认删除",content:`确定要删除模版 "${e.name}" 吗?`,positiveText:"删除",negativeText:"取消",onPositiveClick:async()=>{u.value=e.id;try{const l=await He(e.id);l.success?(a.success("删除成功"),C()):a.error(l.message||"删除失败")}catch(l){a.error("删除失败: "+l.message)}finally{u.value=null}}})}function P(){c.value=!1,C()}function R(){m.value=!1,C()}return F(()=>C()),N(()=>l.drawerVisible,e=>{e&&C()}),(l,a)=>(B(),W("div",{class:G(["templates-panel",{"in-drawer":e.inDrawer}])},[e.inDrawer?T("",!0):(B(),W("div",oa,[Z("div",da,[e.hideBack?T("",!0):(B(),M(H(y),{key:0,text:"",onClick:a[0]||(a[0]=e=>l.$emit("back")),class:"back-btn"},{icon:I(()=>[L(H(f),null,{default:I(()=>[L(H(Q))]),_:1})]),_:1})),a[6]||(a[6]=Z("span",{class:"panel-title"},"配置模版管理",-1))]),Z("div",ua,[L(H(y),{text:"",onClick:k,class:"action-btn"},{icon:I(()=>[L(H(f),null,{default:I(()=>[L(H(X))]),_:1})]),default:I(()=>[a[7]||(a[7]=z(" 创建 ",-1))]),_:1}),L(H(y),{text:"",onClick:C,loading:n.value,class:"action-btn"},{icon:I(()=>[L(H(f),null,{default:I(()=>[L(H(le))]),_:1})]),default:I(()=>[a[8]||(a[8]=z(" 刷新 ",-1))]),_:1},8,["loading"])])])),e.inDrawer?(B(),W("div",ca,[Z("div",ma,[L(H(y),{text:"",onClick:k,class:"action-btn"},{icon:I(()=>[L(H(f),null,{default:I(()=>[L(H(X))]),_:1})]),default:I(()=>[a[9]||(a[9]=z(" 创建 ",-1))]),_:1}),L(H(y),{text:"",onClick:C,loading:n.value,class:"action-btn"},{icon:I(()=>[L(H(f),null,{default:I(()=>[L(H(le))]),_:1})]),default:I(()=>[a[10]||(a[10]=z(" 刷新 ",-1))]),_:1},8,["loading"])])])):T("",!0),Z("div",pa,[Z("span",va," 共 "+V(s.value.length)+" 个模版 ",1)]),Z("div",fa,[L(H(Ae),{value:r.value,"onUpdate:value":a[1]||(a[1]=e=>r.value=e),placeholder:"搜索模版...",clearable:"",size:"small",class:"search-input"},{prefix:I(()=>[L(H(f),null,{default:I(()=>[L(H(ne))]),_:1})]),_:1},8,["value"]),L(H(fe),{value:o.value,"onUpdate:value":a[2]||(a[2]=e=>o.value=e),options:d.value,size:"small",class:"filter-select"},null,8,["value","options"])]),Z("div",ga,[L(H(ke),{show:n.value},{default:I(()=>[0!==b.value.length||n.value?(B(),W("div",ba,[(B(!0),W(D,null,$(b.value,e=>(B(),M(Sl,{key:e.id,template:e,deleting:u.value===e.id,onClick:_,onPreview:_,onEdit:x,onDelete:w,onApply:S},null,8,["template","deleting"]))),128))])):(B(),W("div",ha,[L(H(we),{description:"暂无配置模版"},{icon:I(()=>[L(H(f),{size:"48",color:"var(--text-quaternary)"},{default:I(()=>[L(H(te))]),_:1})]),extra:I(()=>[L(H(y),{size:"small",onClick:k},{default:I(()=>[...a[11]||(a[11]=[z("创建第一个模版",-1)])]),_:1})]),_:1})]))]),_:1},8,["show"])]),Z("div",ya,[L(H(f),{size:"14",class:"info-icon"},{default:I(()=>[L(H(ee))]),_:1}),a[12]||(a[12]=Z("span",null,"配置模版可快速应用到工作区",-1))]),L(Ll,{show:c.value,"onUpdate:show":a[3]||(a[3]=e=>c.value=e),template:v.value,"available-configs":i.value,onSuccess:P},null,8,["show","template","available-configs"]),L(Vl,{show:m.value,"onUpdate:show":a[4]||(a[4]=e=>m.value=e),template:g.value,onSuccess:R},null,8,["show","template"]),L(ra,{show:p.value,"onUpdate:show":a[5]||(a[5]=e=>p.value=e),template:h.value,onApply:S},null,8,["show","template"])],2))}},ka=C(Ca,[["__scopeId","data-v-96aa6e1d"]]);export{ka as t};
|
|
1
|
+
import{$t as e,D as l,E as a,I as t,L as n,N as s,Qt as i,Tt as r,Yt as o,Zt as d,bn as u,gn as c,gt as m,hn as p,ht as v,i as f,j as g,ln as h,mt as b,s as y,t as C,vn as k,xn as x,y as _,yn as S}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as w,C as T,D as z,F as P,G as R,J as A,K as $,M as O,N as U,O as L,S as M,V as F,W as B,Z as N,_t as V,b as j,dt as E,et as I,g as D,ht as G,m as q,mt as H,st as Y,w as W,x as Z}from"./vue-vendor-BqZbbXHA.js";import{$ as J,A as K,At as Q,Nt as X,R as ee,S as le,Y as ae,et as te,g as ne,h as se,i as ie}from"./icons-B-AzZoeE.js";import{t as re}from"./use-message-DBsCm7FJ.js";import{O as oe,S as de,l as ue,n as ce}from"./light-C2X7hegj.js";import{n as me,t as pe}from"./CollapseItem-S_sLioKf.js";import{t as ve}from"./Divider-BLLhMTSt.js";import{$ as fe,A as ge,Ct as he,H as be,I as ye,L as Ce,M as ke,N as xe,St as _e,ct as Se,ft as we,it as Te,j as ze,lt as Pe,rt as Re,st as Ae,tt as $e,ut as Oe,z as Ue}from"./index-D1b2vDrs.js";import{n as Le}from"./markdown-u082bbtj.js";import{a as Me,c as Fe,i as Be,n as Ne,o as Ve,r as je,s as Ee,t as Ie}from"./xml-CgY3RMlX.js";import{t as De}from"./MarkdownEditor-Coo4TaB-.js";import{a as Ge,d as qe,f as He,g as Ye,h as We,m as Ze,p as Je,u as Ke}from"./workspaces-D2yLnT-B.js";var Qe=w({name:"Search",render:()=>O("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",style:"enable-background: new 0 0 512 512"},O("path",{d:"M443.5,420.2L336.7,312.4c20.9-26.2,33.5-59.4,33.5-95.5c0-84.5-68.5-153-153.1-153S64,132.5,64,217s68.5,153,153.1,153\n c36.6,0,70.1-12.8,96.5-34.2l106.1,107.1c3.2,3.4,7.6,5.1,11.9,5.1c4.1,0,8.2-1.5,11.3-4.5C449.5,437.2,449.7,426.8,443.5,420.2z\n M217.1,337.1c-32.1,0-62.3-12.5-85-35.2c-22.7-22.7-35.2-52.9-35.2-84.9c0-32.1,12.5-62.3,35.2-84.9c22.7-22.7,52.9-35.2,85-35.2\n c32.1,0,62.3,12.5,85,35.2c22.7,22.7,35.2,52.9,35.2,84.9c0,32.1-12.5,62.3-35.2,84.9C279.4,324.6,249.2,337.1,217.1,337.1z"}))}),Xe=c("collapse-transition",{width:"100%"},[Pe()]),el=w({name:"CollapseTransition",props:Object.assign(Object.assign({},s.props),{show:{type:Boolean,default:!0},appear:Boolean,collapsed:{type:Boolean,default:void 0}}),inheritAttrs:!1,setup(e){const{mergedClsPrefixRef:l,inlineThemeDisabled:a,mergedRtlRef:n}=m(e),i=s("CollapseTransition","-collapse-transition",Xe,$e,e,l),r=t("CollapseTransition",n,l),o=j(()=>void 0!==e.collapsed?e.collapsed:e.show),d=j(()=>{const{self:{bezier:e}}=i.value;return{"--n-bezier":e}}),u=a?v("collapse-transition",void 0,d,e):void 0;return{rtlEnabled:r,mergedShow:o,mergedClsPrefix:l,cssVars:a?void 0:d,themeClass:null==u?void 0:u.themeClass,onRender:null==u?void 0:u.onRender}},render(){return O(a,{appear:this.appear},{default:()=>{var e;if(this.mergedShow)return null===(e=this.onRender)||void 0===e||e.call(this),O("div",P({class:[`${this.mergedClsPrefix}-collapse-transition`,this.rtlEnabled&&`${this.mergedClsPrefix}-collapse-transition--rtl`,this.themeClass],style:this.cssVars},this.$attrs),this.$slots)}})}}),ll=o("n-transfer"),al=c("transfer","\n width: 100%;\n font-size: var(--n-font-size);\n height: 300px;\n display: flex;\n flex-wrap: nowrap;\n word-break: break-word;\n",[S("disabled",[c("transfer-list",[c("transfer-list-header",[k("title","\n color: var(--n-header-text-color-disabled);\n "),k("extra","\n color: var(--n-header-extra-text-color-disabled);\n ")])])]),c("transfer-list","\n flex: 1;\n min-width: 0;\n height: inherit;\n display: flex;\n flex-direction: column;\n background-clip: padding-box;\n position: relative;\n transition: background-color .3s var(--n-bezier);\n background-color: var(--n-list-color);\n ",[S("source","\n border-top-left-radius: var(--n-border-radius);\n border-bottom-left-radius: var(--n-border-radius);\n ",[k("border","border-right: 1px solid var(--n-divider-color);")]),S("target","\n border-top-right-radius: var(--n-border-radius);\n border-bottom-right-radius: var(--n-border-radius);\n ",[k("border","border-left: none;")]),k("border","\n padding: 0 12px;\n border: 1px solid var(--n-border-color);\n transition: border-color .3s var(--n-bezier);\n pointer-events: none;\n border-radius: inherit;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n "),c("transfer-list-header","\n min-height: var(--n-header-height);\n box-sizing: border-box;\n display: flex;\n padding: 12px 12px 10px 12px;\n align-items: center;\n background-clip: padding-box;\n border-radius: inherit;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n line-height: 1.5;\n transition:\n border-color .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n ",[p("> *:not(:first-child)","\n margin-left: 8px;\n "),k("title","\n flex: 1;\n min-width: 0;\n line-height: 1.5;\n font-size: var(--n-header-font-size);\n font-weight: var(--n-header-font-weight);\n transition: color .3s var(--n-bezier);\n color: var(--n-header-text-color);\n "),k("button","\n position: relative;\n "),k("extra","\n transition: color .3s var(--n-bezier);\n font-size: var(--n-extra-font-size);\n margin-right: 0;\n white-space: nowrap;\n color: var(--n-header-extra-text-color);\n ")]),c("transfer-list-body","\n flex-basis: 0;\n flex-grow: 1;\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: inherit;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n ",[c("transfer-filter","\n padding: 4px 12px 8px 12px;\n box-sizing: border-box;\n transition:\n border-color .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n "),c("transfer-list-flex-container","\n flex: 1;\n position: relative;\n ",[c("scrollbar","\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n height: unset;\n "),c("empty","\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateY(-50%) translateX(-50%);\n "),c("transfer-list-content","\n padding: 0;\n margin: 0;\n position: relative;\n ",[c("transfer-list-item","\n padding: 0 12px;\n min-height: var(--n-item-height);\n display: flex;\n align-items: center;\n color: var(--n-item-text-color);\n position: relative;\n transition: color .3s var(--n-bezier);\n ",[k("background","\n position: absolute;\n left: 4px;\n right: 4px;\n top: 0;\n bottom: 0;\n border-radius: var(--n-border-radius);\n transition: background-color .3s var(--n-bezier);\n "),k("checkbox","\n position: relative;\n margin-right: 8px;\n "),k("close","\n opacity: 0;\n pointer-events: none;\n position: relative;\n transition:\n opacity .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n "),k("label","\n position: relative;\n min-width: 0;\n flex-grow: 1;\n "),S("source","cursor: pointer;"),S("disabled","\n cursor: not-allowed;\n color: var(--n-item-text-color-disabled);\n "),u("disabled",[p("&:hover",[k("background","background-color: var(--n-item-color-pending);"),k("close","\n opacity: 1;\n pointer-events: all;\n ")])])])])])])])]),tl=w({name:"TransferFilter",props:{value:String,placeholder:String,disabled:Boolean,onUpdateValue:{type:Function,required:!0}},setup(){const{mergedThemeRef:e,mergedClsPrefixRef:l}=U(ll);return{mergedClsPrefix:l,mergedTheme:e}},render(){const{mergedTheme:e,mergedClsPrefix:l}=this;return O("div",{class:`${l}-transfer-filter`},O(Ae,{value:this.value,onUpdateValue:this.onUpdateValue,disabled:this.disabled,placeholder:this.placeholder,theme:e.peers.Input,themeOverrides:e.peerOverrides.Input,clearable:!0,size:"small"},{"clear-icon-placeholder":()=>O(g,{clsPrefix:l},{default:()=>O(Qe,null)})}))}}),nl=w({name:"TransferHeader",props:{size:{type:String,required:!0},selectAllText:String,clearText:String,source:Boolean,onCheckedAll:Function,onClearAll:Function,title:[String,Function]},setup(e){const{targetOptionsRef:l,canNotSelectAnythingRef:a,canBeClearedRef:t,allCheckedRef:s,mergedThemeRef:i,disabledRef:r,mergedClsPrefixRef:o,srcOptionsLengthRef:d}=U(ll),{localeRef:u}=n("Transfer");return()=>{const{source:n,onClearAll:c,onCheckedAll:m,selectAllText:p,clearText:v}=e,{value:f}=i,{value:g}=o,{value:h}=u,b="large"===e.size?"small":"tiny",{title:C}=e;return O("div",{class:`${g}-transfer-list-header`},C&&O("div",{class:`${g}-transfer-list-header__title`},"function"==typeof C?C():C),n&&O(y,{class:`${g}-transfer-list-header__button`,theme:f.peers.Button,themeOverrides:f.peerOverrides.Button,size:b,tertiary:!0,onClick:s.value?c:m,disabled:a.value||r.value},{default:()=>s.value?v||h.unselectAll:p||h.selectAll}),!n&&t.value&&O(y,{class:`${g}-transfer-list-header__button`,theme:f.peers.Button,themeOverrides:f.peerOverrides.Button,size:b,tertiary:!0,onClick:c,disabled:r.value},{default:()=>h.clearAll}),O("div",{class:`${g}-transfer-list-header__extra`},n?h.total(d.value):h.selected(l.value.length)))}}}),sl=w({name:"NTransferListItem",props:{source:Boolean,label:{type:String,required:!0},value:{type:[String,Number],required:!0},disabled:Boolean,option:{type:Object,required:!0}},setup(l){const{targetValueSetRef:a,mergedClsPrefixRef:t,mergedThemeRef:n,handleItemCheck:s,renderSourceLabelRef:i,renderTargetLabelRef:r,showSelectedRef:o}=U(ll),d=e(()=>a.value.has(l.value));return{mergedClsPrefix:t,mergedTheme:n,checked:d,showSelected:o,renderSourceLabel:i,renderTargetLabel:r,handleClick:function(){l.disabled||s(!d.value,l.value)}}},render(){const{disabled:e,mergedTheme:a,mergedClsPrefix:t,label:n,checked:s,source:i,renderSourceLabel:r,renderTargetLabel:o}=this;return O("div",{class:[`${t}-transfer-list-item`,e&&`${t}-transfer-list-item--disabled`,i?`${t}-transfer-list-item--source`:`${t}-transfer-list-item--target`],onClick:i?this.handleClick:void 0},O("div",{class:`${t}-transfer-list-item__background`}),i&&this.showSelected&&O("div",{class:`${t}-transfer-list-item__checkbox`},O(Re,{theme:a.peers.Checkbox,themeOverrides:a.peerOverrides.Checkbox,disabled:e,checked:s})),O("div",{class:`${t}-transfer-list-item__label`,title:_e(n)},i?r?r({option:this.option}):n:o?o({option:this.option}):n),!i&&!e&&O(l,{focusable:!1,class:`${t}-transfer-list-item__close`,clsPrefix:t,onClick:this.handleClick}))}}),il=w({name:"TransferList",props:{virtualScroll:{type:Boolean,required:!0},itemSize:{type:Number,required:!0},options:{type:Array,required:!0},disabled:{type:Boolean,required:!0},source:Boolean},setup(){const{mergedThemeRef:e,mergedClsPrefixRef:l}=U(ll),a=Y(null),t=Y(null);return{mergedTheme:e,mergedClsPrefix:l,scrollerInstRef:a,vlInstRef:t,syncVLScroller:function(){var e;null===(e=a.value)||void 0===e||e.sync()},scrollContainer:function(){const{value:e}=t;if(!e)return null;const{listElRef:l}=e;return l},scrollContent:function(){const{value:e}=t;if(!e)return null;const{itemsElRef:l}=e;return l}}},render(){const{mergedTheme:e,options:l}=this;if(0===l.length)return O(we,{theme:e.peers.Empty,themeOverrides:e.peerOverrides.Empty});const{mergedClsPrefix:a,virtualScroll:t,source:n,disabled:s,syncVLScroller:i}=this;return O(_,{ref:"scrollerInstRef",theme:e.peers.Scrollbar,themeOverrides:e.peerOverrides.Scrollbar,container:t?this.scrollContainer:void 0,content:t?this.scrollContent:void 0},{default:()=>t?O(he,{ref:"vlInstRef",style:{height:"100%"},class:`${a}-transfer-list-content`,items:this.options,itemSize:this.itemSize,showScrollbar:!1,onResize:i,onScroll:i,keyField:"value"},{default:({item:e})=>{const{source:l,disabled:a}=this;return O(sl,{source:l,key:e.value,value:e.value,disabled:e.disabled||a,label:e.label,option:e})}}):O("div",{class:`${a}-transfer-list-content`},l.map(e=>O(sl,{source:n,key:e.value,value:e.value,disabled:e.disabled||s,label:e.label,option:e})))})}});var rl=w({name:"Transfer",props:Object.assign(Object.assign({},s.props),{value:Array,defaultValue:{type:Array,default:null},options:{type:Array,default:()=>[]},disabled:{type:Boolean,default:void 0},virtualScroll:Boolean,sourceTitle:[String,Function],selectAllText:String,clearText:String,targetTitle:[String,Function],filterable:{type:Boolean,default:void 0},sourceFilterable:Boolean,targetFilterable:Boolean,showSelected:{type:Boolean,default:!0},sourceFilterPlaceholder:String,targetFilterPlaceholder:String,filter:{type:Function,default:(e,l)=>!e||~`${l.label}`.toLowerCase().indexOf(`${e}`.toLowerCase())},size:String,renderSourceLabel:Function,renderTargetLabel:Function,renderSourceList:Function,renderTargetList:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onChange:[Function,Array]}),setup(e){const{mergedClsPrefixRef:l}=m(e),a=s("Transfer","-transfer",al,Ue,e,l),t=b(e),{mergedSizeRef:n,mergedDisabledRef:o}=t,u=j(()=>{const{value:e}=n,{self:{[x("itemHeight",e)]:l}}=a.value;return h(l)}),{uncontrolledValueRef:c,mergedValueRef:p,targetValueSetRef:v,valueSetForCheckAllRef:f,valueSetForUncheckAllRef:g,valueSetForClearRef:y,filteredTgtOptionsRef:C,filteredSrcOptionsRef:k,targetOptionsRef:_,canNotSelectAnythingRef:S,canBeClearedRef:w,allCheckedRef:T,srcPatternRef:z,tgtPatternRef:P,mergedSrcFilterableRef:A,handleSrcFilterUpdateValue:$,handleTgtFilterUpdateValue:O}=function(e){const l=Y(e.defaultValue),a=i(E(e,"value"),l),t=j(()=>{const l=new Map;return(e.options||[]).forEach(e=>l.set(e.value,e)),l}),n=j(()=>new Set(a.value||[])),s=j(()=>{const e=t.value,l=[];return(a.value||[]).forEach(a=>{const t=e.get(a);t&&l.push(t)}),l}),r=Y(""),o=Y(""),d=j(()=>e.sourceFilterable||!!e.filterable),u=j(()=>{const{showSelected:l,options:a,filter:t}=e;return d.value?a.filter(e=>t(r.value,e,"source")&&(l||!n.value.has(e.value))):l?a:a.filter(e=>!n.value.has(e.value))}),c=j(()=>{if(!e.targetFilterable)return s.value;const{filter:l}=e;return s.value.filter(e=>l(o.value,e,"target"))}),m=j(()=>{const{value:e}=a;return null===e?new Set:new Set(e)}),p=j(()=>{const e=new Set(m.value);return u.value.forEach(l=>{l.disabled||e.has(l.value)||e.add(l.value)}),e}),v=j(()=>{const e=new Set(m.value);return u.value.forEach(l=>{!l.disabled&&e.has(l.value)&&e.delete(l.value)}),e}),f=j(()=>{const e=new Set(m.value);return c.value.forEach(l=>{l.disabled||e.delete(l.value)}),e}),g=j(()=>u.value.every(e=>e.disabled)),h=j(()=>{if(!u.value.length)return!1;const e=m.value;return u.value.every(l=>l.disabled||e.has(l.value))}),b=j(()=>c.value.some(e=>!e.disabled));return{uncontrolledValueRef:l,mergedValueRef:a,targetValueSetRef:n,valueSetForCheckAllRef:p,valueSetForUncheckAllRef:v,valueSetForClearRef:f,filteredTgtOptionsRef:c,filteredSrcOptionsRef:u,targetOptionsRef:s,canNotSelectAnythingRef:g,canBeClearedRef:b,allCheckedRef:h,srcPatternRef:r,tgtPatternRef:o,mergedSrcFilterableRef:d,handleSrcFilterUpdateValue:function(e){r.value=null!=e?e:""},handleTgtFilterUpdateValue:function(e){o.value=null!=e?e:""}}}(e);function U(l){const{onUpdateValue:a,"onUpdate:value":n,onChange:s}=e,{nTriggerFormInput:i,nTriggerFormChange:o}=t;a&&r(a,l),n&&r(n,l),s&&r(s,l),c.value=l,i(),o()}function L(e,l){U(e?(p.value||[]).concat(l):(p.value||[]).filter(e=>e!==l))}return R(ll,{targetValueSetRef:v,mergedClsPrefixRef:l,disabledRef:o,mergedThemeRef:a,targetOptionsRef:_,canNotSelectAnythingRef:S,canBeClearedRef:w,allCheckedRef:T,srcOptionsLengthRef:j(()=>e.options.length),handleItemCheck:L,renderSourceLabelRef:E(e,"renderSourceLabel"),renderTargetLabelRef:E(e,"renderTargetLabel"),showSelectedRef:E(e,"showSelected")}),{mergedClsPrefix:l,mergedDisabled:o,itemSize:u,isMounted:d(),mergedTheme:a,filteredSrcOpts:k,filteredTgtOpts:C,srcPattern:z,tgtPattern:P,mergedSize:n,mergedSrcFilterable:A,handleSrcFilterUpdateValue:$,handleTgtFilterUpdateValue:O,handleSourceCheckAll:function(){U([...f.value])},handleSourceUncheckAll:function(){U([...g.value])},handleTargetClearAll:function(){U([...y.value])},handleItemCheck:L,handleChecked:function(e){U(e)},cssVars:j(()=>{const{value:e}=n,{common:{cubicBezierEaseInOut:l},self:{borderRadius:t,borderColor:s,listColor:i,titleTextColor:r,titleTextColorDisabled:o,extraTextColor:d,itemTextColor:u,itemColorPending:c,itemTextColorDisabled:m,titleFontWeight:p,closeColorHover:v,closeColorPressed:f,closeIconColor:g,closeIconColorHover:h,closeIconColorPressed:b,closeIconSize:y,closeSize:C,dividerColor:k,extraTextColorDisabled:_,[x("extraFontSize",e)]:S,[x("fontSize",e)]:w,[x("titleFontSize",e)]:T,[x("itemHeight",e)]:z,[x("headerHeight",e)]:P}}=a.value;return{"--n-bezier":l,"--n-border-color":s,"--n-border-radius":t,"--n-extra-font-size":S,"--n-font-size":w,"--n-header-font-size":T,"--n-header-extra-text-color":d,"--n-header-extra-text-color-disabled":_,"--n-header-font-weight":p,"--n-header-text-color":r,"--n-header-text-color-disabled":o,"--n-item-color-pending":c,"--n-item-height":z,"--n-item-text-color":u,"--n-item-text-color-disabled":m,"--n-list-color":i,"--n-header-height":P,"--n-close-size":C,"--n-close-icon-size":y,"--n-close-color-hover":v,"--n-close-color-pressed":f,"--n-close-icon-color":g,"--n-close-icon-color-hover":h,"--n-close-icon-color-pressed":b,"--n-divider-color":k}})}},render(){const{mergedClsPrefix:e,renderSourceList:l,renderTargetList:a,mergedTheme:t,mergedSrcFilterable:n,targetFilterable:s}=this;return O("div",{class:[`${e}-transfer`,this.mergedDisabled&&`${e}-transfer--disabled`],style:this.cssVars},O("div",{class:`${e}-transfer-list ${e}-transfer-list--source`},O(nl,{source:!0,selectAllText:this.selectAllText,clearText:this.clearText,title:this.sourceTitle,onCheckedAll:this.handleSourceCheckAll,onClearAll:this.handleSourceUncheckAll,size:this.mergedSize}),O("div",{class:`${e}-transfer-list-body`},n?O(tl,{onUpdateValue:this.handleSrcFilterUpdateValue,value:this.srcPattern,disabled:this.mergedDisabled,placeholder:this.sourceFilterPlaceholder}):null,O("div",{class:`${e}-transfer-list-flex-container`},l?O(_,{theme:t.peers.Scrollbar,themeOverrides:t.peerOverrides.Scrollbar},{default:()=>l({onCheck:this.handleChecked,checkedOptions:this.filteredTgtOpts,pattern:this.srcPattern})}):O(il,{source:!0,options:this.filteredSrcOpts,disabled:this.mergedDisabled,virtualScroll:this.virtualScroll,itemSize:this.itemSize}))),O("div",{class:`${e}-transfer-list__border`})),O("div",{class:`${e}-transfer-list ${e}-transfer-list--target`},O(nl,{onClearAll:this.handleTargetClearAll,size:this.mergedSize,title:this.targetTitle}),O("div",{class:`${e}-transfer-list-body`},s?O(tl,{onUpdateValue:this.handleTgtFilterUpdateValue,value:this.tgtPattern,disabled:this.mergedDisabled,placeholder:this.sourceFilterPlaceholder}):null,O("div",{class:`${e}-transfer-list-flex-container`},a?O(_,{theme:t.peers.Scrollbar,themeOverrides:t.peerOverrides.Scrollbar},{default:()=>a({onCheck:this.handleChecked,checkedOptions:this.filteredTgtOpts,pattern:this.tgtPattern})}):O(il,{options:this.filteredTgtOpts,disabled:this.mergedDisabled,virtualScroll:this.virtualScroll,itemSize:this.itemSize}))),O("div",{class:`${e}-transfer-list__border`})))}}),ol=w({name:"Li",render(){return O("li",null,this.$slots)}}),dl=p("li",{transition:"color .3s var(--n-bezier)",lineHeight:"var(--n-line-height)",margin:"var(--n-li-margin)",marginBottom:0,color:"var(--n-text-color)"}),ul=[p("&:first-child","\n margin-top: 0;\n "),p("&:last-child","\n margin-bottom: 0;\n ")],cl=p([c("ol",{fontSize:"var(--n-font-size)",padding:"var(--n-ol-padding)"},[S("align-text",{paddingLeft:0}),dl,ul]),c("ul",{fontSize:"var(--n-font-size)",padding:"var(--n-ul-padding)"},[S("align-text",{paddingLeft:0}),dl,ul])]),ml=w({name:"Ul",props:Object.assign(Object.assign({},s.props),{alignText:Boolean}),setup(e){const{mergedClsPrefixRef:l,inlineThemeDisabled:a}=m(e),t=s("Typography","-xl",cl,ce,e,l),n=j(()=>{const{common:{cubicBezierEaseInOut:e},self:{olPadding:l,ulPadding:a,liMargin:n,liTextColor:s,liLineHeight:i,liFontSize:r}}=t.value;return{"--n-bezier":e,"--n-font-size":r,"--n-line-height":i,"--n-text-color":s,"--n-li-margin":n,"--n-ol-padding":l,"--n-ul-padding":a}}),i=a?v("ul",void 0,n,e):void 0;return{mergedClsPrefix:l,cssVars:a?void 0:n,themeClass:null==i?void 0:i.themeClass,onRender:null==i?void 0:i.onRender}},render(){var e;const{mergedClsPrefix:l}=this;return null===(e=this.onRender)||void 0===e||e.call(this),O("ul",{class:[`${l}-ul`,this.themeClass,this.alignText&&`${l}-ul--align-text`],style:this.cssVars},this.$slots)}}),pl={class:"card-header"},vl={class:"card-title"},fl={class:"name"},gl={class:"card-body"},hl={key:0,class:"description"},bl={class:"stats"},yl={key:0},Cl={key:1},kl={key:2},xl={key:3},_l={key:4},Sl=C({__name:"ConfigTemplateCard",props:{template:{type:Object,required:!0},deleting:{type:Boolean,default:!1}},emits:["click","apply","preview","edit","delete"],setup(e){const l=e;const a={claude:{label:"Claude",color:"#cc785c",textColor:"#fff",borderColor:"#cc785c"},codex:{label:"Codex",color:"#10a37f",textColor:"#fff",borderColor:"#10a37f"},gemini:{label:"Gemini",color:"#4285f4",textColor:"#fff",borderColor:"#4285f4"},opencode:{label:"OpenCode",color:"#ff6b35",textColor:"#fff",borderColor:"#ff6b35"},omp:{label:"OMP",color:"#0f9f9a",textColor:"#fff",borderColor:"#0f9f9a"}},t={claude:"CLAUDE.md",codex:"AGENTS.md",gemini:"GEMINI.md",opencode:".opencode/AGENTS.md",omp:".omp/commands"};function n(e){const l=a[e];return l?{color:l.color,textColor:l.textColor,borderColor:l.borderColor}:{}}const s=j(()=>{const e=l.template,a=e?.cliType;return a&&"all"!==a?"omp"===a&&e?.commands?.length?t.omp:(e?.aiConfigs?.[a])?.enabled?t[a]||null:"claude"===a&&e?.claudeMd?.enabled?"CLAUDE.md":null:null});return(l,t)=>{return B(),W("div",{class:"template-card",onClick:t[5]||(t[5]=a=>l.$emit("click",e.template))},[Z("div",pl,[Z("div",vl,[Z("span",fl,V(e.template.name),1),e.template.cliType?(B(),M(H(Oe),{key:0,size:"small",color:n(e.template.cliType),round:""},{default:I(()=>{return[z(V((l=e.template.cliType,a[l]?.label||l)),1)];var l}),_:1},8,["color"])):T("",!0)]),Z("div",{class:"card-actions",onClick:t[4]||(t[4]=q(()=>{},["stop"]))},[L(H(y),{size:"small",type:"primary",onClick:t[0]||(t[0]=a=>l.$emit("apply",e.template))},{default:I(()=>[...t[6]||(t[6]=[z("应用",-1)])]),_:1}),L(H(y),{size:"small",onClick:t[1]||(t[1]=a=>l.$emit("preview",e.template))},{default:I(()=>[...t[7]||(t[7]=[z("预览",-1)])]),_:1}),L(H(y),{size:"small",onClick:t[2]||(t[2]=a=>l.$emit("edit",e.template))},{default:I(()=>[...t[8]||(t[8]=[z("编辑",-1)])]),_:1}),L(H(y),{size:"small",type:"error",loading:e.deleting,onClick:t[3]||(t[3]=a=>l.$emit("delete",e.template))},{default:I(()=>[...t[9]||(t[9]=[z("删除",-1)])]),_:1},8,["loading"])])]),Z("div",gl,[e.template.description?(B(),W("div",hl,V((i=e.template.description,r=80,i?.length>r?i.slice(0,r)+"...":i)),1)):T("",!0),Z("div",bl,[s.value?(B(),W("span",yl,V(s.value),1)):T("",!0),e.template.skills?.length?(B(),W("span",Cl,V(e.template.skills.length)+" Skills",1)):T("",!0),e.template.agents?.length?(B(),W("span",kl,V(e.template.agents.length)+" Agents",1)):T("",!0),e.template.commands?.length?(B(),W("span",xl,V(e.template.commands.length)+" Commands",1)):T("",!0),e.template.mcpServers?.length?(B(),W("span",_l,V(e.template.mcpServers.length)+" MCP",1)):T("",!0)])])]);var i,r}}},[["__scopeId","data-v-0bfacefb"]]),wl=["innerHTML"],Tl=C({__name:"MarkdownViewer",props:{content:{type:String,default:""}},setup(e){const l=e;function a(e,l){Fe.getLanguage(e)||Fe.registerLanguage(e,l)}a("javascript",Ee),a("typescript",Ve),a("json",Me),a("bash",Be),a("shell",Be),a("sh",Be),a("python",je),a("css",Ne),a("xml",Ie),a("html",Ie);const t=new Le({html:!0,linkify:!0,typographer:!0,highlight:function(e,l){if(l&&Fe.getLanguage(l))try{return'<pre class="hljs"><code>'+Fe.highlight(e,{language:l,ignoreIllegals:!0}).value+"</code></pre>"}catch(a){}return'<pre class="hljs"><code>'+t.utils.escapeHtml(e)+"</code></pre>"}}),n=j(()=>t.render(l.content||""));return(e,l)=>(B(),W("div",{class:"markdown-viewer",innerHTML:n.value},null,8,wl))}},[["__scopeId","data-v-9e29f753"]]),zl={class:"ai-config-header"},Pl={key:0,class:"prompt-preview"},Rl={class:"ai-config-header"},Al={class:"ai-config-header"},$l={class:"ai-config-header"},Ol={class:"ai-config-header"},Ul={__name:"ConfigTemplateFormModal",props:{show:Boolean,template:Object,availableConfigs:{type:Object,default:()=>({})}},emits:["update:show","success"],setup(e,{emit:l}){const a=e,t=l,n=re(),s=Y(null),i=Y(!1),r=j(()=>{const e=a.availableConfigs?.platforms;return Array.isArray(e)?e:[]});function o(e=[]){const l=[...r.value.map(e=>e.key),...Object.keys(a.availableConfigs?.skillsByPlatform||{}),...Object.keys(a.availableConfigs?.agentsByPlatform||{}),...Object.keys(a.availableConfigs?.commandsByPlatform||{}),...e];return[...new Set(l.filter(e=>"string"==typeof e&&e.trim()))]}const d=j(()=>r.value.map(e=>({label:e.label||e.title||e.key,value:e.key}))),u=j(()=>r.value.find(e=>e.key===g.value.cliType)),c=j(()=>u.value?.label||u.value?.title||g.value.cliType),m=j(()=>u.value?.promptFile||"");function p(e){const l=u.value?.projectResources?.[e];return l?.canonicalRoot||l?.path||""}const v=j(()=>Boolean(g.value.cliType&&u.value&&!["claude","codex","gemini","opencode","omp"].includes(g.value.cliType))),f=j(()=>!!a.template?.id),g=Y(h());function h(){return{name:"",description:"",cliType:"",aiConfigs:Object.fromEntries(o().map(e=>[e,{enabled:!1,content:""}])),claudeMd:{enabled:!1,content:""},skills:[],agents:[],commands:[],mcpServers:[]}}N(r,e=>{for(const l of e)g.value.aiConfigs[l.key]||(g.value.aiConfigs[l.key]={enabled:!1,content:""})},{deep:!0,immediate:!0});const b={name:{required:!0,message:"请输入模版名称",trigger:"blur"},cliType:{required:!0,message:"请选择 CLI 工具类型",trigger:"change"}},C=j(()=>{const e=g.value.cliType,l=a.availableConfigs?.skillsByPlatform||{};return(e&&l[e]?l[e]:[]).map(e=>({value:e.directory,label:e.name?`${e.name} (${e.directory})`:e.directory,disabled:!1}))}),k=j(()=>{const e=g.value.cliType,l=a.availableConfigs?.agentsByPlatform||{};return(e&&l[e]?l[e]:a.availableConfigs?.agents||[]).map(e=>({value:e.fileName,label:e.name||e.fileName,disabled:!1}))}),x=j(()=>{const e=g.value.cliType,l=a.availableConfigs?.commandsByPlatform||{};return(e&&l[e]?l[e]:a.availableConfigs?.commands||[]).map(e=>({value:e.namespace?`${e.namespace}/${e.name}`:e.name,label:e.namespace?`${e.namespace}/${e.name}`:e.name,disabled:!1}))}),_=j(()=>{const e=a.availableConfigs?.mcpServers||[],l=a.availableConfigs?.mcpPresets||[],t=[...e.map(e=>({value:e.id,label:e.name||e.id})),...l.map(e=>({value:e.id,label:`${e.name} (预设)`}))],n=new Set;return t.filter(e=>!n.has(e.value)&&(n.add(e.value),!0))}),S=Y(null),w=j(()=>(a.availableConfigs?.prompts||[]).map(e=>({value:e.id,label:e.isBuiltin?`[内置] ${e.name}`:e.name,description:e.description}))),P=j({get:()=>g.value.skills.map(e=>e.directory),set:e=>{const l=g.value.cliType,t=a.availableConfigs?.skillsByPlatform||{},n=l&&t[l]?t[l]:[];g.value.skills=e.map(e=>{const l=n.find(l=>l.directory===e);return l?{...l}:{directory:e,name:e}})}}),R=j({get:()=>g.value.agents.map(e=>e.fileName),set:e=>{const l=g.value.cliType,t=a.availableConfigs?.agentsByPlatform||{},n=l&&t[l]?t[l]:a.availableConfigs?.agents||[];g.value.agents=e.map(e=>{const l=n.find(l=>l.fileName===e);return l?{...l}:{fileName:e}})}}),$=j({get:()=>g.value.commands.map(e=>e.namespace?`${e.namespace}/${e.name}`:e.name),set:e=>{const l=g.value.cliType,t=a.availableConfigs?.commandsByPlatform||{},n=l&&t[l]?t[l]:a.availableConfigs?.commands||[];g.value.commands=e.map(e=>{const l=n.find(l=>(l.namespace?`${l.namespace}/${l.name}`:l.name)===e);return l?{...l}:{name:e}})}});function O(e){if(!e)return void(g.value.aiConfigs.claude.content="");const l=(a.availableConfigs?.prompts||[]).find(l=>l.id===e);l&&(g.value.aiConfigs.claude.enabled=!0,g.value.aiConfigs.claude.content=l.content)}async function U(){try{await(s.value?.validate())}catch{return}i.value=!0;try{const e={...g.value};let l;l=f.value?await Ye(a.template.id,e):await qe(e),l.success?(n.success(f.value?"保存成功":"创建成功"),t("success")):n.error(l.message||"操作失败")}catch(e){n.error("操作失败: "+e.message)}finally{i.value=!1}}return N(()=>a.show,e=>{if(e)if(S.value=null,a.template){const e=Object.keys(a.template.aiConfigs||{}),l=Object.fromEntries(o(e).map(e=>[e,{enabled:!1,content:""}]));if(a.template.aiConfigs)for(const t of o(Object.keys(a.template.aiConfigs)))a.template.aiConfigs[t]&&(l[t]={...a.template.aiConfigs[t]});else a.template.claudeMd&&(l.claude||(l.claude={enabled:!1,content:""}),l.claude={...a.template.claudeMd});g.value={name:a.template.name||"",description:a.template.description||"",cliType:a.template.cliType||"",aiConfigs:l,claudeMd:a.template.claudeMd?{...a.template.claudeMd}:{enabled:!1,content:""},skills:a.template.skills?[...a.template.skills]:[],agents:a.template.agents?[...a.template.agents]:[],commands:a.template.commands?[...a.template.commands]:[],mcpServers:a.template.mcpServers?[...a.template.mcpServers]:[]}}else g.value=h()}),N(()=>g.value.cliType,e=>{const l=r.value.find(l=>l.key===e)?.resourceTypes;l&&(l.skills||(g.value.skills=[]),l.agents||(g.value.agents=[]),l.commands||(g.value.commands=[]))}),(l,a)=>{const n=A("n-text");return B(),M(H(ue),{show:e.show,preset:"card",title:f.value?"编辑配置模版":"创建配置模版",style:{width:"850px","max-height":"90vh"},"mask-closable":!1,"onUpdate:show":a[30]||(a[30]=e=>t("update:show",e))},{footer:I(()=>[L(H(be),{justify:"end"},{default:I(()=>[L(H(y),{onClick:a[29]||(a[29]=e=>t("update:show",!1))},{default:I(()=>[...a[35]||(a[35]=[z("取消",-1)])]),_:1}),L(H(y),{type:"primary",loading:i.value,onClick:U},{default:I(()=>[z(V(f.value?"保存":"创建"),1)]),_:1},8,["loading"])]),_:1})]),default:I(()=>[L(H(xe),{style:{"max-height":"calc(90vh - 140px)"}},{default:I(()=>[L(H(Ce),{ref_key:"formRef",ref:s,model:g.value,rules:b,"label-placement":"left","label-width":"100"},{default:I(()=>[L(H(oe),{title:"基本信息",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[L(H(ye),{label:"模版名称",path:"name"},{default:I(()=>[L(H(Ae),{value:g.value.name,"onUpdate:value":a[0]||(a[0]=e=>g.value.name=e),placeholder:"输入模版名称"},null,8,["value"])]),_:1}),L(H(ye),{label:"描述",path:"description"},{default:I(()=>[L(H(Ae),{value:g.value.description,"onUpdate:value":a[1]||(a[1]=e=>g.value.description=e),type:"textarea",rows:2,placeholder:"输入模版描述"},null,8,["value"])]),_:1}),L(H(ye),{label:"CLI 工具",path:"cliType"},{default:I(()=>[L(H(fe),{value:g.value.cliType,"onUpdate:value":a[2]||(a[2]=e=>g.value.cliType=e),options:d.value,placeholder:"选择 CLI 工具类型"},null,8,["value","options"])]),_:1})]),_:1}),g.value.cliType?T("",!0):(B(),M(H(oe),{key:0,size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[L(H(we),{description:"请先选择 CLI 工具类型以显示配置项"})]),_:1})),"claude"===g.value.cliType?(B(),W(D,{key:1},[L(H(oe),{title:"CLAUDE.md",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[Z("div",zl,[L(H(be),{align:"center"},{default:I(()=>[L(H(ze),{value:g.value.aiConfigs.claude.enabled,"onUpdate:value":a[3]||(a[3]=e=>g.value.aiConfigs.claude.enabled=e)},null,8,["value"]),L(n,{depth:g.value.aiConfigs.claude.enabled?1:3},{default:I(()=>[...a[31]||(a[31]=[z("启用 CLAUDE.md",-1)])]),_:1},8,["depth"])]),_:1})]),L(H(el),{show:g.value.aiConfigs.claude.enabled},{default:I(()=>[L(H(fe),{value:S.value,"onUpdate:value":[a[4]||(a[4]=e=>S.value=e),O],options:w.value,placeholder:"选择 Prompt 预设作为 CLAUDE.md 内容",clearable:"",style:{"margin-bottom":"10px"}},null,8,["value","options"]),g.value.aiConfigs.claude.content?(B(),W("div",Pl,[L(Tl,{content:g.value.aiConfigs.claude.content},null,8,["content"])])):(B(),M(H(we),{key:1,description:"可选择 Prompt 预设,或留空",style:{padding:"24px 0"}}))]),_:1},8,["show"])]),_:1}),L(H(oe),{title:"Skills",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.skills.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:P.value,"onUpdate:value":a[5]||(a[5]=e=>P.value=e),options:C.value,"source-title":"可用 Skills","target-title":"已选 Skills"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Agents",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.agents.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:R.value,"onUpdate:value":a[6]||(a[6]=e=>R.value=e),options:k.value,"source-title":"可用 Agents","target-title":"已选 Agents"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Commands",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.commands.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:$.value,"onUpdate:value":a[7]||(a[7]=e=>$.value=e),options:x.value,"source-title":"可用 Commands","target-title":"已选 Commands"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"MCP Servers",size:"small"},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.mcpServers.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:g.value.mcpServers,"onUpdate:value":a[8]||(a[8]=e=>g.value.mcpServers=e),options:_.value,"source-title":"可用 MCP Servers","target-title":"已选 MCP Servers"},null,8,["value","options"])]),_:1})],64)):T("",!0),"codex"===g.value.cliType?(B(),W(D,{key:2},[L(H(oe),{title:"AGENTS.md",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[Z("div",Rl,[L(H(be),{align:"center"},{default:I(()=>[L(H(ze),{value:g.value.aiConfigs.codex.enabled,"onUpdate:value":a[9]||(a[9]=e=>g.value.aiConfigs.codex.enabled=e)},null,8,["value"]),L(n,{depth:g.value.aiConfigs.codex.enabled?1:3},{default:I(()=>[...a[32]||(a[32]=[z("启用 AGENTS.md",-1)])]),_:1},8,["depth"])]),_:1})]),L(H(el),{show:g.value.aiConfigs.codex.enabled},{default:I(()=>[L(De,{modelValue:g.value.aiConfigs.codex.content,"onUpdate:modelValue":a[10]||(a[10]=e=>g.value.aiConfigs.codex.content=e),rows:10,"min-height":220,placeholder:"输入 AGENTS.md 内容"},null,8,["modelValue"])]),_:1},8,["show"])]),_:1}),L(H(oe),{title:"Skills",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.skills.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:P.value,"onUpdate:value":a[11]||(a[11]=e=>P.value=e),options:C.value,"source-title":"可用 Skills","target-title":"已选 Skills"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Agents",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.agents.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:R.value,"onUpdate:value":a[12]||(a[12]=e=>R.value=e),options:k.value,"source-title":"可用 Agents","target-title":"已选 Agents"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Commands",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.commands.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:$.value,"onUpdate:value":a[13]||(a[13]=e=>$.value=e),options:x.value,"source-title":"可用 Commands","target-title":"已选 Commands"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"MCP Servers",size:"small"},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.mcpServers.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:g.value.mcpServers,"onUpdate:value":a[14]||(a[14]=e=>g.value.mcpServers=e),options:_.value,"source-title":"可用 MCP Servers","target-title":"已选 MCP Servers"},null,8,["value","options"])]),_:1})],64)):T("",!0),"gemini"===g.value.cliType?(B(),W(D,{key:3},[L(H(oe),{title:"GEMINI.md",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[Z("div",Al,[L(H(be),{align:"center"},{default:I(()=>[L(H(ze),{value:g.value.aiConfigs.gemini.enabled,"onUpdate:value":a[15]||(a[15]=e=>g.value.aiConfigs.gemini.enabled=e)},null,8,["value"]),L(n,{depth:g.value.aiConfigs.gemini.enabled?1:3},{default:I(()=>[...a[33]||(a[33]=[z("启用 GEMINI.md",-1)])]),_:1},8,["depth"])]),_:1})]),L(H(el),{show:g.value.aiConfigs.gemini.enabled},{default:I(()=>[L(De,{modelValue:g.value.aiConfigs.gemini.content,"onUpdate:modelValue":a[16]||(a[16]=e=>g.value.aiConfigs.gemini.content=e),rows:10,"min-height":220,placeholder:"输入 GEMINI.md 内容"},null,8,["modelValue"])]),_:1},8,["show"])]),_:1}),L(H(oe),{title:"Skills",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.skills.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:P.value,"onUpdate:value":a[17]||(a[17]=e=>P.value=e),options:C.value,"source-title":"可用 Skills","target-title":"已选 Skills"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"MCP Servers",size:"small"},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.mcpServers.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:g.value.mcpServers,"onUpdate:value":a[18]||(a[18]=e=>g.value.mcpServers=e),options:_.value,"source-title":"可用 MCP Servers","target-title":"已选 MCP Servers"},null,8,["value","options"])]),_:1})],64)):T("",!0),"opencode"===g.value.cliType?(B(),W(D,{key:4},[L(H(oe),{title:".opencode/AGENTS.md",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[Z("div",$l,[L(H(be),{align:"center"},{default:I(()=>[L(H(ze),{value:g.value.aiConfigs.opencode.enabled,"onUpdate:value":a[19]||(a[19]=e=>g.value.aiConfigs.opencode.enabled=e)},null,8,["value"]),L(n,{depth:g.value.aiConfigs.opencode.enabled?1:3},{default:I(()=>[...a[34]||(a[34]=[z("启用 .opencode/AGENTS.md",-1)])]),_:1},8,["depth"])]),_:1})]),L(H(el),{show:g.value.aiConfigs.opencode.enabled},{default:I(()=>[L(De,{modelValue:g.value.aiConfigs.opencode.content,"onUpdate:modelValue":a[20]||(a[20]=e=>g.value.aiConfigs.opencode.content=e),rows:10,"min-height":220,placeholder:"输入 .opencode/AGENTS.md 内容"},null,8,["modelValue"])]),_:1},8,["show"])]),_:1}),L(H(oe),{title:"Skills",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.skills.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:P.value,"onUpdate:value":a[21]||(a[21]=e=>P.value=e),options:C.value,"source-title":"可用 Skills","target-title":"已选 Skills"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Agents",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.agents.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:R.value,"onUpdate:value":a[22]||(a[22]=e=>R.value=e),options:k.value,"source-title":"可用 Agents","target-title":"已选 Agents"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Commands",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.commands.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:$.value,"onUpdate:value":a[23]||(a[23]=e=>$.value=e),options:x.value,"source-title":"可用 Commands","target-title":"已选 Commands"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"MCP Servers",size:"small"},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.mcpServers.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:g.value.mcpServers,"onUpdate:value":a[24]||(a[24]=e=>g.value.mcpServers=e),options:_.value,"source-title":"可用 MCP Servers","target-title":"已选 MCP Servers"},null,8,["value","options"])]),_:1})],64)):T("",!0),"omp"===g.value.cliType?(B(),W(D,{key:5},[L(H(oe),{title:"OMP Commands",size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[L(H(Oe),{size:"small",type:"success"},{default:I(()=>[z(V(p("commands")||"Commands"),1)]),_:1})]),_:1}),L(H(oe),{title:"Skills",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.skills.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:P.value,"onUpdate:value":a[25]||(a[25]=e=>P.value=e),options:C.value,"source-title":"可用 Skills","target-title":"已选 Skills"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"Commands",size:"small",style:{"margin-bottom":"16px"}},{"header-extra":I(()=>[L(H(Oe),{size:"small"},{default:I(()=>[z("已选 "+V(g.value.commands.length),1)]),_:1})]),default:I(()=>[L(H(rl),{value:$.value,"onUpdate:value":a[26]||(a[26]=e=>$.value=e),options:x.value,"source-title":"可用 Commands","target-title":"已选 Commands"},null,8,["value","options"])]),_:1}),L(H(oe),{title:"MCP Servers",size:"small"},{default:I(()=>[L(H(Oe),{size:"small",type:"default"},{default:I(()=>[z(V(p("plugins")||"packages/extensions"),1)]),_:1})]),_:1})],64)):T("",!0),v.value?(B(),M(H(oe),{key:6,title:`${c.value} 配置`,size:"small",style:{"margin-bottom":"16px"}},{default:I(()=>[Z("div",Ol,[L(H(be),{align:"center"},{default:I(()=>[L(H(ze),{value:g.value.aiConfigs[g.value.cliType].enabled,"onUpdate:value":a[27]||(a[27]=e=>g.value.aiConfigs[g.value.cliType].enabled=e)},null,8,["value"]),L(n,{depth:g.value.aiConfigs[g.value.cliType].enabled?1:3},{default:I(()=>[z(" 启用 "+V(m.value||`${c.value} 配置`),1)]),_:1},8,["depth"])]),_:1})]),L(H(el),{show:g.value.aiConfigs[g.value.cliType].enabled},{default:I(()=>[L(De,{modelValue:g.value.aiConfigs[g.value.cliType].content,"onUpdate:modelValue":a[28]||(a[28]=e=>g.value.aiConfigs[g.value.cliType].content=e),rows:10,"min-height":220,placeholder:`输入 ${m.value||c.value} 内容`},null,8,["modelValue","placeholder"])]),_:1},8,["show"])]),_:1},8,["title"])):T("",!0)]),_:1},8,["model"])]),_:1})]),_:1},8,["show","title"])}}},Ll=C(Ul,[["__scopeId","data-v-0d81f984"]]),Ml={key:0},Fl={key:1},Bl={key:2},Nl={key:4},Vl={__name:"ConfigApplyModal",props:{show:Boolean,template:Object},emits:["update:show","success"],setup(e,{emit:l}){const a=e,t=l,n=re(),s=Y(null),i=Y(!1),r=Y(!1),o=Y(null),d=Y(!1),u=Y([]),c=Y(null),m={claude:{key:"claude",name:"Claude",fileName:"CLAUDE.md",color:"#cc785c"},codex:{key:"codex",name:"Codex",fileName:"AGENTS.md",color:"#10a37f"},gemini:{key:"gemini",name:"Gemini",fileName:"GEMINI.md",color:"#4285f4"},opencode:{key:"opencode",name:"OpenCode",fileName:".opencode/AGENTS.md",color:"#ff6b35"},omp:{key:"omp",name:"OMP command templates",fileName:".omp/commands",color:"#0f9f9a"}},p=j(()=>{const e=a.template?.aiConfigs||{},l=a.template?.cliType;if("omp"===l&&m.omp)return[m.omp];const t=Object.entries(e).filter(([,e])=>e?.enabled&&e?.content).map(([e])=>m[e]).filter(Boolean);if(l&&"all"!==l){const a=e[l];if(a?.enabled&&a?.content&&m[l])return[m[l]]}return t});function v(){return p.value.map(e=>e.key)}const g=Y({targetPath:"",aiConfigTypes:[]}),h={targetPath:{required:!0,message:"请输入目标路径",trigger:"blur"}},b=j(()=>{const e=new Set,l=[];for(const a of u.value){const t=a.fullPath||a.path||a.name;t&&!e.has(t)&&(e.add(t),l.push({label:`${a.displayName||a.name} (${a.channel})`,value:t}))}return l});function C(e){e&&(g.value.targetPath=e)}async function k(){if(g.value.targetPath&&a.template&&0!==g.value.aiConfigTypes.length){i.value=!0;try{const e=await We(a.template.id,g.value.targetPath,g.value.aiConfigTypes);e.success?o.value=e.data:n.error(e.message||"预览失败")}catch(e){n.error("预览失败: "+e.message)}finally{i.value=!1}}}async function x(){try{await(s.value?.validate())}catch{return}if(a.template&&0!==g.value.aiConfigTypes.length){r.value=!0;try{const e=await Ke(a.template.id,g.value.targetPath,g.value.aiConfigTypes);if(e.success){const l=e.data?.results?.skipped||[];l.length>0?n.warning(`模版已部分应用,${l.length} 项已跳过`):n.success("模版应用成功"),t("success",e.data||null)}else n.error(e.message||"应用失败")}catch(e){n.error("应用失败: "+e.message)}finally{r.value=!1}}}return N(()=>a.show,e=>{e&&(g.value.targetPath="",g.value.aiConfigTypes=v(),o.value=null,c.value=null,async function(){d.value=!0;try{const e=await Ge();e.success?u.value=Array.isArray(e.data)?e.data:[]:u.value=[]}catch(e){u.value=[]}finally{d.value=!1}}())}),N(()=>a.template,()=>{g.value.aiConfigTypes=v()}),(l,a)=>(B(),M(H(ue),{show:e.show,preset:"card",title:`应用模版: ${e.template?.name||""}`,style:{width:"650px"},"mask-closable":!1,"onUpdate:show":a[4]||(a[4]=e=>t("update:show",e))},{footer:I(()=>[L(H(be),{justify:"end"},{default:I(()=>[L(H(y),{onClick:a[3]||(a[3]=e=>t("update:show",!1))},{default:I(()=>[...a[14]||(a[14]=[z("取消",-1)])]),_:1}),L(H(y),{type:"primary",loading:r.value,disabled:!g.value.targetPath||0===g.value.aiConfigTypes.length,onClick:x},{default:I(()=>[...a[15]||(a[15]=[z(" 确认应用 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),default:I(()=>[L(H(Ce),{ref_key:"formRef",ref:s,model:g.value,rules:h},{default:I(()=>[L(H(ye),{label:"选择已有项目"},{default:I(()=>[L(H(fe),{value:c.value,"onUpdate:value":[a[0]||(a[0]=e=>c.value=e),C],options:b.value,loading:d.value,placeholder:"选择已有项目路径",filterable:"",clearable:""},null,8,["value","options","loading"])]),_:1}),L(H(ye),{label:"目标项目路径",path:"targetPath"},{default:I(()=>[L(H(Ae),{value:g.value.targetPath,"onUpdate:value":a[1]||(a[1]=e=>g.value.targetPath=e),placeholder:"输入项目目录路径,如 /path/to/project"},null,8,["value"])]),_:1}),p.value.length>0?(B(),M(H(ye),{key:0,label:"生成配置文件"},{default:I(()=>[L(H(Te),{value:g.value.aiConfigTypes,"onUpdate:value":a[2]||(a[2]=e=>g.value.aiConfigTypes=e)},{default:I(()=>[L(H(be),null,{default:I(()=>[(B(!0),W(D,null,$(p.value,e=>(B(),M(H(Re),{key:e.key,value:e.key},{default:I(()=>[L(H(be),{align:"center",size:4},{default:I(()=>[L(H(f),{size:16,color:e.color},{default:I(()=>[L(H(J))]),_:1},8,["color"]),Z("span",null,V(e.name),1),L(H(ge),{depth:"3",style:{"font-size":"12px"}},{default:I(()=>[z("("+V(e.fileName||e.name)+")",1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["value"]),L(H(ge),{depth:"3",style:{"font-size":"12px","margin-top":"4px",display:"block"}},{default:I(()=>[...a[5]||(a[5]=[z(" 可同时选择多个 CLI 配置文件 ",-1)])]),_:1})]),_:1})):T("",!0)]),_:1},8,["model"]),L(H(be),{style:{"margin-bottom":"16px"}},{default:I(()=>[L(H(y),{onClick:k,loading:i.value,disabled:!g.value.targetPath||0===g.value.aiConfigTypes.length},{default:I(()=>[...a[6]||(a[6]=[z(" 预览应用效果 ",-1)])]),_:1},8,["loading","disabled"])]),_:1}),o.value?(B(),M(H(oe),{key:0,size:"small",title:"应用预览"},{default:I(()=>[L(H(be),{vertical:""},{default:I(()=>[o.value.summary?(B(),W("div",Ml,[L(H(ge),{depth:"3"},{default:I(()=>[...a[7]||(a[7]=[z("将应用:",-1)])]),_:1}),L(H(be),{style:{"margin-top":"8px"},wrap:""},{default:I(()=>[(B(!0),W(D,null,$(o.value.summary.aiConfigs,e=>{return B(),M(H(Oe),{key:e.type,type:(l=e.type,{claude:"warning",codex:"success",gemini:"info",opencode:"error",omp:"success"}[l]||"default"),size:"small"},{default:I(()=>[z(V(e.fileName||e.name),1)]),_:2},1032,["type"]);var l}),128)),o.value.summary.skills?(B(),M(H(Oe),{key:0,type:"info",size:"small"},{default:I(()=>[z(V(o.value.summary.skills)+" Skills",1)]),_:1})):T("",!0),o.value.summary.agents?(B(),M(H(Oe),{key:1,type:"info",size:"small"},{default:I(()=>[z(V(o.value.summary.agents)+" Agents",1)]),_:1})):T("",!0),o.value.summary.commands?(B(),M(H(Oe),{key:2,type:"info",size:"small"},{default:I(()=>[z(V(o.value.summary.commands)+" Commands",1)]),_:1})):T("",!0),o.value.summary.plugins?(B(),M(H(Oe),{key:3,type:"warning",size:"small"},{default:I(()=>[z(V(o.value.summary.plugins)+" Plugins",1)]),_:1})):T("",!0),o.value.summary.mcpServers?(B(),M(H(Oe),{key:4,type:"warning",size:"small"},{default:I(()=>[z(V(o.value.summary.mcpServers)+" MCP",1)]),_:1})):T("",!0),o.value.summary.skipped?(B(),M(H(Oe),{key:5,type:"error",size:"small"},{default:I(()=>[z(V(o.value.summary.skipped)+" Skipped",1)]),_:1})):T("",!0)]),_:1})])):T("",!0),L(H(ve),{style:{margin:"12px 0"}}),o.value.willCreate?.length?(B(),W("div",Fl,[L(H(ge),{type:"success"},{default:I(()=>[...a[8]||(a[8]=[z("将创建:",-1)])]),_:1}),L(H(ml),{style:{margin:"4px 0"}},{default:I(()=>[(B(!0),W(D,null,$(o.value.willCreate,e=>(B(),M(H(ol),{key:e},{default:I(()=>[L(H(ge),{code:""},{default:I(()=>[z(V(e),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):T("",!0),o.value.willOverwrite?.length?(B(),W("div",Bl,[L(H(ge),{type:"warning"},{default:I(()=>[...a[9]||(a[9]=[z("将覆盖:",-1)])]),_:1}),L(H(ml),{style:{margin:"4px 0"}},{default:I(()=>[(B(!0),W(D,null,$(o.value.willOverwrite,e=>(B(),M(H(ol),{key:e},{default:I(()=>[L(H(ge),{code:""},{default:I(()=>[z(V(e),1)]),_:2},1024),L(H(Oe),{type:"warning",size:"tiny",style:{"margin-left":"8px"}},{default:I(()=>[...a[10]||(a[10]=[z("已存在",-1)])]),_:1})]),_:2},1024))),128))]),_:1})])):T("",!0),o.value.willOverwrite?.length?(B(),M(H(Se),{key:3,type:"warning",style:{"margin-top":"8px"}},{default:I(()=>[...a[11]||(a[11]=[z(" 以上文件将被覆盖,请确认后再应用 ",-1)])]),_:1})):T("",!0),o.value.skipped?.length?(B(),W("div",Nl,[L(H(ge),{type:"error"},{default:I(()=>[...a[12]||(a[12]=[z("将跳过:",-1)])]),_:1}),L(H(ml),{style:{margin:"4px 0"}},{default:I(()=>[(B(!0),W(D,null,$(o.value.skipped,(e,l)=>(B(),M(H(ol),{key:`${e.type}-${e.item}-${l}`},{default:I(()=>[L(H(ge),null,{default:I(()=>[z(V(e.type)+": ",1)]),_:2},1024),L(H(ge),{code:""},{default:I(()=>[z(V(e.item),1)]),_:2},1024),L(H(ge),{depth:"3"},{default:I(()=>[z(" - "+V(e.reason),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):T("",!0),o.value.skipped?.length?(B(),M(H(Se),{key:5,type:"info",style:{"margin-top":"8px"}},{default:I(()=>[...a[13]||(a[13]=[z(" 本次将进行部分应用,以上项会被跳过。 ",-1)])]),_:1})):T("",!0)]),_:1})]),_:1})):T("",!0)]),_:1},8,["show","title"]))}},jl={key:0,class:"preview-content"},El={class:"info-section"},Il={class:"info-row"},Dl={class:"value"},Gl={key:0,class:"info-row"},ql={class:"value"},Hl={key:1,class:"info-row"},Yl={class:"stats-section"},Wl={class:"stats-grid"},Zl={key:1,class:"stat-item"},Jl={key:2,class:"stat-item"},Kl={key:3,class:"stat-item"},Ql={key:4,class:"stat-item"},Xl={key:5,class:"stat-item"},ea={class:"markdown-content"},la={class:"markdown-content"},aa={class:"list-items"},ta={class:"list-items"},na={class:"list-items"},sa={key:0,class:"list-note"},ia={class:"list-items"},ra=C({__name:"ConfigPreviewModal",props:{show:Boolean,template:Object},emits:["update:show","apply"],setup(e,{emit:l}){const a=e,t=l,n={claude:{key:"claude",name:"Claude",fileName:"CLAUDE.md",color:"#cc785c"},codex:{key:"codex",name:"Codex",fileName:"AGENTS.md",color:"#10a37f"},gemini:{key:"gemini",name:"Gemini",fileName:"GEMINI.md",color:"#4285f4"},opencode:{key:"opencode",name:"OpenCode",fileName:".opencode/AGENTS.md",color:"#ff6b35"},omp:{key:"omp",name:"OMP command templates",fileName:".omp/commands",color:"#0f9f9a"}},s=j(()=>{const e=a.template?.aiConfigs||{},l=Object.entries(e).filter(([,e])=>e?.enabled&&e?.content).map(([e,l])=>({...n[e],content:l.content})).filter(e=>e.key),t=a.template?.cliType;if("omp"===t&&a.template?.commands?.length)return[{...n.omp,content:a.template.commands.map(e=>`- ${e.namespace?`${e.namespace}/`:""}${e.name||e}`).join("\n")}];if(t&&"all"!==t){const l=e[t];if(l?.enabled&&l?.content&&n[t])return[{...n[t],content:l.content}]}return l}),i=j(()=>s.value.length>0),r=j(()=>{const e=a.template;return!!e&&(i.value||e.claudeMd?.content||e.skills?.length||e.agents?.length||e.commands?.length||e.mcpServers?.length)}),o={claude:{label:"Claude",color:"#cc785c",textColor:"#fff",borderColor:"#cc785c"},codex:{label:"Codex",color:"#10a37f",textColor:"#fff",borderColor:"#10a37f"},gemini:{label:"Gemini",color:"#4285f4",textColor:"#fff",borderColor:"#4285f4"},opencode:{label:"OpenCode",color:"#ff6b35",textColor:"#fff",borderColor:"#ff6b35"},omp:{label:"OMP",color:"#0f9f9a",textColor:"#fff",borderColor:"#0f9f9a"}};function d(e){const l=o[e];return l?{color:l.color,textColor:l.textColor,borderColor:l.borderColor}:{}}function u(){t("apply",a.template)}return(l,a)=>(B(),M(H(ue),{show:e.show,preset:"card",title:`模版预览: ${e.template?.name||""}`,style:{width:"750px","max-height":"80vh"},"mask-closable":!0,"onUpdate:show":a[1]||(a[1]=e=>t("update:show",e))},{footer:I(()=>[L(H(be),{justify:"end"},{default:I(()=>[L(H(y),{onClick:a[0]||(a[0]=e=>t("update:show",!1))},{default:I(()=>[...a[7]||(a[7]=[z("关闭",-1)])]),_:1}),L(H(y),{type:"primary",onClick:u},{default:I(()=>[...a[8]||(a[8]=[z("应用此模版",-1)])]),_:1})]),_:1})]),default:I(()=>[e.template?(B(),W("div",jl,[Z("div",El,[Z("div",Il,[a[2]||(a[2]=Z("span",{class:"label"},"名称:",-1)),Z("span",Dl,V(e.template.name),1)]),e.template.description?(B(),W("div",Gl,[a[3]||(a[3]=Z("span",{class:"label"},"描述:",-1)),Z("span",ql,V(e.template.description),1)])):T("",!0),e.template.cliType?(B(),W("div",Hl,[a[4]||(a[4]=Z("span",{class:"label"},"CLI 工具:",-1)),L(H(Oe),{size:"small",color:d(e.template.cliType),round:""},{default:I(()=>{return[z(V((l=e.template.cliType,o[l]?.label||l)),1)];var l}),_:1},8,["color"])])):T("",!0)]),Z("div",Yl,[a[6]||(a[6]=Z("div",{class:"section-title"},"包含配置",-1)),Z("div",Wl,[i.value?(B(!0),W(D,{key:0},$(s.value,e=>(B(),W("div",{class:"stat-item",key:e.key},[L(H(f),{size:"20",color:e.color},{default:I(()=>[L(H(J))]),_:1},8,["color"]),Z("span",null,V(e.fileName||e.name),1)]))),128)):e.template.claudeMd?.enabled?(B(),W("div",Zl,[L(H(f),{size:"20"},{default:I(()=>[L(H(J))]),_:1}),a[5]||(a[5]=Z("span",null,"CLAUDE.md",-1))])):T("",!0),e.template.skills?.length?(B(),W("div",Jl,[L(H(f),{size:"20"},{default:I(()=>[L(H(ae))]),_:1}),Z("span",null,V(e.template.skills.length)+" Skills",1)])):T("",!0),e.template.agents?.length?(B(),W("div",Kl,[L(H(f),{size:"20"},{default:I(()=>[L(H(K))]),_:1}),Z("span",null,V(e.template.agents.length)+" Agents",1)])):T("",!0),e.template.commands?.length?(B(),W("div",Ql,[L(H(f),{size:"20"},{default:I(()=>[L(H(ie))]),_:1}),Z("span",null,V(e.template.commands.length)+" Commands",1)])):T("",!0),e.template.mcpServers?.length?(B(),W("div",Xl,[L(H(f),{size:"20"},{default:I(()=>[L(H(se))]),_:1}),Z("span",null,V(e.template.mcpServers.length)+" MCP Servers",1)])):T("",!0)])]),r.value?(B(),M(H(me),{key:0,class:"details-section"},{default:I(()=>[(B(!0),W(D,null,$(s.value,e=>(B(),M(H(pe),{key:e.key,title:`${e.name} 配置 (${e.fileName||e.name})`,name:e.key},{default:I(()=>[Z("div",ea,[L(Tl,{content:e.content},null,8,["content"])])]),_:2},1032,["title","name"]))),128)),!i.value&&e.template.claudeMd?.content?(B(),M(H(pe),{key:0,title:"CLAUDE.md 内容",name:"claudeMd"},{default:I(()=>[Z("div",la,[L(Tl,{content:e.template.claudeMd.content},null,8,["content"])])]),_:1})):T("",!0),e.template.skills?.length?(B(),M(H(pe),{key:1,title:"Skills 列表",name:"skills"},{default:I(()=>[Z("div",aa,[(B(!0),W(D,null,$(e.template.skills,(e,l)=>(B(),W("div",{key:l,class:"list-item"},V(e.name||e),1))),128))])]),_:1})):T("",!0),e.template.agents?.length?(B(),M(H(pe),{key:2,title:"Agents 列表",name:"agents"},{default:I(()=>[Z("div",ta,[(B(!0),W(D,null,$(e.template.agents,(e,l)=>(B(),W("div",{key:l,class:"list-item"},V(e.name||e),1))),128))])]),_:1})):T("",!0),e.template.commands?.length?(B(),M(H(pe),{key:3,title:"Commands 列表",name:"commands"},{default:I(()=>[Z("div",na,["omp"===e.template.cliType?(B(),W("div",sa," 将写入 .omp/commands,作为 OMP commands 使用。 ")):T("",!0),(B(!0),W(D,null,$(e.template.commands,(e,l)=>(B(),W("div",{key:l,class:"list-item"},V(e.name||e),1))),128))])]),_:1})):T("",!0),e.template.mcpServers?.length?(B(),M(H(pe),{key:4,title:"MCP Servers",name:"mcpServers"},{default:I(()=>[Z("div",ia,[(B(!0),W(D,null,$(e.template.mcpServers,(e,l)=>(B(),W("div",{key:l,class:"list-item"},V(e.name||e),1))),128))])]),_:1})):T("",!0)]),_:1})):T("",!0)])):T("",!0)]),_:1},8,["show","title"]))}},[["__scopeId","data-v-27b692bd"]]),oa={key:0,class:"panel-header"},da={class:"header-left"},ua={class:"header-right"},ca={key:1,class:"drawer-header-bar"},ma={class:"header-right"},pa={class:"stats-bar"},va={class:"stats-text"},fa={class:"filter-bar"},ga={class:"panel-content"},ha={key:0,class:"empty-state"},ba={key:1,class:"card-list"},ya={class:"panel-footer"},Ca={__name:"ConfigTemplatesPanel",props:{inDrawer:{type:Boolean,default:!1},hideBack:{type:Boolean,default:!1},drawerVisible:{type:Boolean,default:!1}},emits:["back","updated"],setup(e){const l=e,a=re(),t=de(),n=Y(!1),s=Y([]),i=Y({}),r=Y(""),o=Y(""),d=j(()=>{const e=Array.isArray(i.value?.platforms)?i.value.platforms:[],l=s.value.map(e=>e.cliType).filter(Boolean).map(e=>({key:e,label:e})),a=new Set,t=[{label:"全部 CLI",value:""}];for(const n of[...e,...l]){const e=String(n?.key||"").trim().toLowerCase();e&&!a.has(e)&&(a.add(e),t.push({label:n.label||n.title||e,value:e}))}return t}),u=Y(null),c=Y(!1),m=Y(!1),p=Y(!1),v=Y(null),g=Y(null),h=Y(null),b=j(()=>{let e=s.value;if(o.value&&(e=e.filter(e=>e.cliType===o.value)),r.value.trim()){const l=r.value.toLowerCase();e=e.filter(e=>e.name?.toLowerCase().includes(l)||e.description?.toLowerCase().includes(l))}return e});async function C(){n.value=!0;try{const[e,l]=await Promise.all([Je(),Ze()]);e.success&&(s.value=e.data||[]),l.success&&(i.value=l.data||{})}catch(e){a.error("加载数据失败: "+e.message)}finally{n.value=!1}}function k(){v.value=null,c.value=!0}function x(e){v.value={...e},c.value=!0}function _(e){h.value=e,p.value=!0}function S(e){g.value=e,p.value=!1,m.value=!0}function w(e){t.warning({title:"确认删除",content:`确定要删除模版 "${e.name}" 吗?`,positiveText:"删除",negativeText:"取消",onPositiveClick:async()=>{u.value=e.id;try{const l=await He(e.id);l.success?(a.success("删除成功"),C()):a.error(l.message||"删除失败")}catch(l){a.error("删除失败: "+l.message)}finally{u.value=null}}})}function P(){c.value=!1,C()}function R(){m.value=!1,C()}return F(()=>C()),N(()=>l.drawerVisible,e=>{e&&C()}),(l,a)=>(B(),W("div",{class:G(["templates-panel",{"in-drawer":e.inDrawer}])},[e.inDrawer?T("",!0):(B(),W("div",oa,[Z("div",da,[e.hideBack?T("",!0):(B(),M(H(y),{key:0,text:"",onClick:a[0]||(a[0]=e=>l.$emit("back")),class:"back-btn"},{icon:I(()=>[L(H(f),null,{default:I(()=>[L(H(Q))]),_:1})]),_:1})),a[6]||(a[6]=Z("span",{class:"panel-title"},"配置模版管理",-1))]),Z("div",ua,[L(H(y),{text:"",onClick:k,class:"action-btn"},{icon:I(()=>[L(H(f),null,{default:I(()=>[L(H(X))]),_:1})]),default:I(()=>[a[7]||(a[7]=z(" 创建 ",-1))]),_:1}),L(H(y),{text:"",onClick:C,loading:n.value,class:"action-btn"},{icon:I(()=>[L(H(f),null,{default:I(()=>[L(H(le))]),_:1})]),default:I(()=>[a[8]||(a[8]=z(" 刷新 ",-1))]),_:1},8,["loading"])])])),e.inDrawer?(B(),W("div",ca,[Z("div",ma,[L(H(y),{text:"",onClick:k,class:"action-btn"},{icon:I(()=>[L(H(f),null,{default:I(()=>[L(H(X))]),_:1})]),default:I(()=>[a[9]||(a[9]=z(" 创建 ",-1))]),_:1}),L(H(y),{text:"",onClick:C,loading:n.value,class:"action-btn"},{icon:I(()=>[L(H(f),null,{default:I(()=>[L(H(le))]),_:1})]),default:I(()=>[a[10]||(a[10]=z(" 刷新 ",-1))]),_:1},8,["loading"])])])):T("",!0),Z("div",pa,[Z("span",va," 共 "+V(s.value.length)+" 个模版 ",1)]),Z("div",fa,[L(H(Ae),{value:r.value,"onUpdate:value":a[1]||(a[1]=e=>r.value=e),placeholder:"搜索模版...",clearable:"",size:"small",class:"search-input"},{prefix:I(()=>[L(H(f),null,{default:I(()=>[L(H(ne))]),_:1})]),_:1},8,["value"]),L(H(fe),{value:o.value,"onUpdate:value":a[2]||(a[2]=e=>o.value=e),options:d.value,size:"small",class:"filter-select"},null,8,["value","options"])]),Z("div",ga,[L(H(ke),{show:n.value},{default:I(()=>[0!==b.value.length||n.value?(B(),W("div",ba,[(B(!0),W(D,null,$(b.value,e=>(B(),M(Sl,{key:e.id,template:e,deleting:u.value===e.id,onClick:_,onPreview:_,onEdit:x,onDelete:w,onApply:S},null,8,["template","deleting"]))),128))])):(B(),W("div",ha,[L(H(we),{description:"暂无配置模版"},{icon:I(()=>[L(H(f),{size:"48",color:"var(--text-quaternary)"},{default:I(()=>[L(H(te))]),_:1})]),extra:I(()=>[L(H(y),{size:"small",onClick:k},{default:I(()=>[...a[11]||(a[11]=[z("创建第一个模版",-1)])]),_:1})]),_:1})]))]),_:1},8,["show"])]),Z("div",ya,[L(H(f),{size:"14",class:"info-icon"},{default:I(()=>[L(H(ee))]),_:1}),a[12]||(a[12]=Z("span",null,"配置模版可快速应用到工作区",-1))]),L(Ll,{show:c.value,"onUpdate:show":a[3]||(a[3]=e=>c.value=e),template:v.value,"available-configs":i.value,onSuccess:P},null,8,["show","template","available-configs"]),L(Vl,{show:m.value,"onUpdate:show":a[4]||(a[4]=e=>m.value=e),template:g.value,onSuccess:R},null,8,["show","template"]),L(ra,{show:p.value,"onUpdate:show":a[5]||(a[5]=e=>p.value=e),template:h.value,onApply:S},null,8,["show","template"])],2))}},ka=C(Ca,[["__scopeId","data-v-96aa6e1d"]]);export{ka as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,s,t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as i,D as l,K as t,O as o,S as n,W as c,_t as r,b as u,et as d,g as v,m,mt as p,p as h,st as f,w as _,x as y}from"./vue-vendor-BqZbbXHA.js";import{Tt as k,c as g,d as j,r as w,st as C}from"./icons-B-AzZoeE.js";import{l as x}from"./light-C2X7hegj.js";import{n as b,t as I}from"./useResponsiveDrawer-
|
|
1
|
+
import{i as e,s,t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as i,D as l,K as t,O as o,S as n,W as c,_t as r,b as u,et as d,g as v,m,mt as p,p as h,st as f,w as _,x as y}from"./vue-vendor-BqZbbXHA.js";import{Tt as k,c as g,d as j,r as w,st as C}from"./icons-B-AzZoeE.js";import{l as x}from"./light-C2X7hegj.js";import{n as b,t as I}from"./useResponsiveDrawer-CmC5cPpB.js";import{t as N}from"./DrawerContent-ChXgZ1Xm.js";import{A as z,H as $,_ as A,ft as L,k as S,st as D,ut as F}from"./index-D1b2vDrs.js";import{t as U}from"./sessions-DSLpMXCq.js";import{t as K}from"./SessionCard-zr0236fl.js";import{t as R}from"./sessions-DJiJJgvg.js";var W={class:"favorites-container"},B={key:0,class:"favorites-section"},G={class:"section-header claude-header"},H={class:"sessions-list"},O={key:1,class:"favorites-section"},T={class:"section-header codex-header"},q={class:"sessions-list"},E={key:2,class:"favorites-section"},J={class:"section-header gemini-header"},M={class:"sessions-list"},P=a({__name:"FavoritesDrawer",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","view-history"],setup(a,{emit:P}){const{drawerWidth:Q}=I(720),V=a,X=P,Y=u({get:()=>V.visible,set:e=>X("update:visible",e)}),{getFavorites:Z,removeFavorite:ee,getAllFavorites:se}=A(),ae=R(),ie=u(()=>Z("claude")),le=u(()=>Z("codex")),te=u(()=>Z("gemini")),oe=f(!1),ne=f(null),ce=f(""),re=f("");function ue(e){let s="claude";le.value.some(s=>s.sessionId===e.sessionId&&s.projectName===e.projectName)?s="codex":te.value.some(s=>s.sessionId===e.sessionId&&s.projectName===e.projectName)&&(s="gemini"),ne.value=e,ce.value=e.alias||"",re.value=s,oe.value=!0}async function de(){if(ne.value)try{ae.setChannel(re.value);const e=ne.value.sessionId;if(ce.value){await ae.setAlias(e,ce.value),S.success("别名设置成功");const s=se()[re.value]?.find(s=>s.sessionId===e&&s.projectName===ne.value.projectName);s&&(s.alias=ce.value)}else{await ae.deleteAlias(e),S.success("别名已删除");const s=se()[re.value]?.find(s=>s.sessionId===e&&s.projectName===ne.value.projectName);s&&(s.alias="")}oe.value=!1,ne.value=null,ce.value=""}catch(e){S.error("操作失败: "+e.message)}}async function ve(e,s){try{const{copyResult:a}=await U(s.projectName,s.sessionId,e);if("manual"===a?.method)return void S.warning("自动复制失败,已弹出手动复制框");S.success("启动命令已复制到剪贴板")}catch(a){S.error("复制失败: "+a.message)}}async function me(e,s){try{await ee(e,s.projectName,s.sessionId),S.success("已移除收藏")}catch(a){S.error("移除失败: "+a.message)}}return(a,u)=>(c(),n(p(b),{show:Y.value,"onUpdate:show":u[3]||(u[3]=e=>Y.value=e),width:p(Q),placement:"right"},{default:d(()=>[o(p(N),{title:"我的收藏",closable:""},{default:d(()=>[y("div",W,[ie.value.length>0?(c(),_("div",B,[y("div",G,[o(p(e),{size:20},{default:d(()=>[o(p(k))]),_:1}),u[4]||(u[4]=y("h3",{class:"section-title"},"Claude",-1)),o(p(F),{size:"small",bordered:!1,type:"success"},{default:d(()=>[l(r(ie.value.length),1)]),_:1})]),y("div",H,[(c(!0),_(v,null,t(ie.value,i=>(c(),n(K,{key:`claude-${i.projectName}-${i.sessionId}`,session:i,channel:"claude","show-project":!0,"hide-fork":"","hide-delete":"",class:"clickable-session",onClick:e=>a.$emit("view-history",{session:i,channel:"claude"}),onSetAlias:ue,onLaunch:e=>ve("claude",i)},{"actions-extra":d(()=>[o(p(s),{size:"small",type:"error",onClick:m(e=>me("claude",i),["stop"])},{icon:d(()=>[o(p(e),null,{default:d(()=>[o(p(w))]),_:1})]),default:d(()=>[u[5]||(u[5]=l(" 移除 ",-1))]),_:1},8,["onClick"])]),_:2},1032,["session","onClick","onLaunch"]))),128))])])):i("",!0),le.value.length>0?(c(),_("div",O,[y("div",T,[o(p(e),{size:20},{default:d(()=>[o(p(C))]),_:1}),u[6]||(u[6]=y("h3",{class:"section-title"},"Codex",-1)),o(p(F),{size:"small",bordered:!1,type:"info"},{default:d(()=>[l(r(le.value.length),1)]),_:1})]),y("div",q,[(c(!0),_(v,null,t(le.value,i=>(c(),n(K,{key:`codex-${i.projectName}-${i.sessionId}`,session:i,channel:"codex","show-project":!0,"hide-fork":"","hide-delete":"",class:"clickable-session",onClick:e=>a.$emit("view-history",{session:i,channel:"codex"}),onSetAlias:ue,onLaunch:e=>ve("codex",i)},{"actions-extra":d(()=>[o(p(s),{size:"small",type:"error",onClick:m(e=>me("codex",i),["stop"])},{icon:d(()=>[o(p(e),null,{default:d(()=>[o(p(w))]),_:1})]),default:d(()=>[u[7]||(u[7]=l(" 移除 ",-1))]),_:1},8,["onClick"])]),_:2},1032,["session","onClick","onLaunch"]))),128))])])):i("",!0),te.value.length>0?(c(),_("div",E,[y("div",J,[o(p(e),{size:20},{default:d(()=>[o(p(j))]),_:1}),u[8]||(u[8]=y("h3",{class:"section-title"},"Gemini",-1)),o(p(F),{size:"small",bordered:!1,type:"warning"},{default:d(()=>[l(r(te.value.length),1)]),_:1})]),y("div",M,[(c(!0),_(v,null,t(te.value,i=>(c(),n(K,{key:`gemini-${i.projectName}-${i.sessionId}`,session:i,channel:"gemini","show-project":!0,"hide-fork":"","hide-delete":"",class:"clickable-session",onClick:e=>a.$emit("view-history",{session:i,channel:"gemini"}),onSetAlias:ue,onLaunch:e=>ve("gemini",i)},{"actions-extra":d(()=>[o(p(s),{size:"small",type:"error",onClick:m(e=>me("gemini",i),["stop"])},{icon:d(()=>[o(p(e),null,{default:d(()=>[o(p(w))]),_:1})]),default:d(()=>[u[9]||(u[9]=l(" 移除 ",-1))]),_:1},8,["onClick"])]),_:2},1032,["session","onClick","onLaunch"]))),128))])])):i("",!0),0===a.totalCount?(c(),n(p(L),{key:3,description:"暂无收藏",style:{"margin-top":"80px"}},{icon:d(()=>[o(p(e),{size:48},{default:d(()=>[o(p(g))]),_:1})]),extra:d(()=>[o(p(z),{depth:"3",style:{"font-size":"13px"}},{default:d(()=>[...u[10]||(u[10]=[l(' 在会话列表中点击"收藏"按钮添加收藏 ',-1)])]),_:1})]),_:1})):i("",!0)]),o(p(x),{show:oe.value,"onUpdate:show":u[2]||(u[2]=e=>oe.value=e),preset:"dialog",title:"设置别名"},{action:d(()=>[o(p($),null,{default:d(()=>[o(p(s),{onClick:u[1]||(u[1]=e=>oe.value=!1)},{default:d(()=>[...u[11]||(u[11]=[l("取消",-1)])]),_:1}),o(p(s),{type:"primary",onClick:de},{default:d(()=>[...u[12]||(u[12]=[l("确定",-1)])]),_:1})]),_:1})]),default:d(()=>[o(p(D),{value:ce.value,"onUpdate:value":u[0]||(u[0]=e=>ce.value=e),placeholder:"输入别名(留空删除)",onKeyup:h(de,["enter"])},null,8,["value"])]),_:1},8,["show"])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-56e896bc"]]);export{P as default};
|
package/dist/web/assets/{GatewayConvertDrawer-b0pIvH02.js → GatewayConvertDrawer-Z_sILtn8.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,s as a,t}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as l,D as s,K as o,O as n,S as u,W as r,Z as i,_t as v,b as d,et as p,g as c,mt as m,st as y,w as g,x as f}from"./vue-vendor-BqZbbXHA.js";import{n as w}from"./vendors-D0c_0KLP.js";import{H as h}from"./icons-B-AzZoeE.js";import{n as b,t as _}from"./useResponsiveDrawer-
|
|
1
|
+
import{i as e,s as a,t}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as l,D as s,K as o,O as n,S as u,W as r,Z as i,_t as v,b as d,et as p,g as c,mt as m,st as y,w as g,x as f}from"./vue-vendor-BqZbbXHA.js";import{n as w}from"./vendors-D0c_0KLP.js";import{H as h}from"./icons-B-AzZoeE.js";import{n as b,t as _}from"./useResponsiveDrawer-CmC5cPpB.js";import{t as x}from"./DrawerContent-ChXgZ1Xm.js";import{$ as C,H as O,I as A,L as k,ct as S,k as R,st as I,ut as T}from"./index-D1b2vDrs.js";var j="http://localhost:19999";var J={class:"drawer-header"},N={class:"header-icon-wrapper"},q={class:"convert-container"},z={class:"action-row"},L={key:2,class:"result-section"},U={class:"result-meta"},P={class:"meta-row"},B={class:"meta-row"},E={class:"meta-row"},H={class:"warning-list"},$={class:"action-row"},D=t({__name:"GatewayConvertDrawer",props:{target:{type:String,default:"opencode"},visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(t,{emit:D}){const{drawerWidth:G}=_(620,520),Y=t,M=D,Q=d({get:()=>Y.visible,set:e=>M("update:visible",e)}),W=y([{label:"Claude Code",value:"claude"},{label:"Codex",value:"codex"},{label:"Gemini",value:"gemini"}]),K=y([{label:"Responses API (/v1/responses)",value:"responses"},{label:"Chat Completions (/v1/chat/completions)",value:"chat.completions"}]),Z=y("claude"),F=d(()=>"omp"===Y.target?"OMP":"OpenCode"),V=y("responses"),X=y(""),ee=y(!1),ae=y(null),te=y(""),le=y(!1),se=y(""),oe={claude:{model:"claude-sonnet-4-5",system:[{type:"text",text:"You are a concise assistant."}],messages:[{role:"user",content:[{type:"text",text:"请用三点总结这个需求。"}]}],max_tokens:256,stream:!1},codex:{model:"gpt-5-codex",instructions:"You are Codex.",input:[{type:"message",role:"user",content:[{type:"input_text",text:"ping"}]}],stream:!1,store:!1},gemini:{model:"gemini-2.5-pro",system_instruction:{parts:[{text:"You are a concise assistant."}]},contents:[{role:"user",parts:[{text:"请将以下文本转换为要点列表。"}]}],generationConfig:{maxOutputTokens:256,temperature:.2}}},ne=d(()=>ae.value?.requestBody?JSON.stringify(ae.value.requestBody,null,2):""),ue=d(()=>{const e=ae.value?.requestHeaders;return e&&Object.keys(e).length>0?JSON.stringify(e,null,2):""});function re(){const e=oe[Z.value]||oe.claude;X.value=JSON.stringify(e,null,2)}async function ie(){if(!le.value||se.value!==Y.target)try{const e=await async function(e){return(await w.get(`${j}/api/convert/${encodeURIComponent(e)}/formats`)).data}(Y.target);Array.isArray(e.sourceTypes)&&e.sourceTypes.length>0&&(W.value=e.sourceTypes.map(e=>({label:e.name||e.id,value:e.id}))),Array.isArray(e.targetApis)&&(K.value=e.targetApis.map(e=>"chat.completions"===e?{label:"Chat Completions (/v1/chat/completions)",value:e}:{label:"Responses API (/v1/responses)",value:e})),e.defaultTargetApi?V.value=e.defaultTargetApi:K.value.some(e=>e.value===V.value)||(V.value=K.value[0]?.value||null),le.value=!0,se.value=Y.target}catch(e){}}function ve(){te.value="",ae.value=null}async function de(){let e;te.value="",ae.value=null;try{e=JSON.parse(X.value||"{}")}catch(a){return void(te.value="原始请求 JSON 解析失败,请检查格式")}ee.value=!0;try{const a=await async function(e,a){return(await w.post(`${j}/api/convert/${encodeURIComponent(e)}`,a)).data}(Y.target,{sourceType:Z.value,payload:e,options:{targetApi:V.value}});if(!1===a.success)throw new Error(a.error||"转换失败");ae.value=a,R.success("转换完成")}catch(a){const e=a.response?.data?.error||a.message||"转换失败";te.value=e}finally{ee.value=!1}}async function pe(){if(!ae.value)return;const e={endpoint:ae.value.endpoint,requestBody:ae.value.requestBody,requestHeaders:ae.value.requestHeaders||{}};try{await navigator.clipboard.writeText(JSON.stringify(e,null,2)),R.success("已复制转换结果")}catch(a){R.error("复制失败,请手动复制")}}return i(()=>Z.value,()=>{re()}),i(()=>[Y.visible,Y.target],async([e,a],t)=>{t&&t[1]!==a&&(ae.value=null,te.value=""),e&&(await ie(),X.value||re())},{immediate:!0}),(i,d)=>(r(),u(m(b),{show:Q.value,"onUpdate:show":d[3]||(d[3]=e=>Q.value=e),width:m(G),placement:"right","show-mask":!0},{default:p(()=>[n(m(x),{closable:"","native-scrollbar":!1},{header:p(()=>[f("div",J,[f("div",N,[n(m(e),{size:18},{default:p(()=>[n(m(h))]),_:1})]),f("span",null,v(F.value)+" 请求转换",1)])]),default:p(()=>[f("div",q,[n(m(k),{"label-placement":"top"},{default:p(()=>[n(m(A),{label:"来源 CLI"},{default:p(()=>[n(m(C),{value:Z.value,"onUpdate:value":d[0]||(d[0]=e=>Z.value=e),options:W.value,placeholder:"选择来源渠道"},null,8,["value","options"])]),_:1}),n(m(A),{label:"目标 API"},{default:p(()=>[n(m(C),{value:V.value,"onUpdate:value":d[1]||(d[1]=e=>V.value=e),options:K.value,disabled:0===K.value.length,placeholder:"选择目标 API"},null,8,["value","options","disabled"])]),_:1}),n(m(A),{label:"原始请求 JSON"},{default:p(()=>[n(m(I),{value:X.value,"onUpdate:value":d[2]||(d[2]=e=>X.value=e),type:"textarea",autosize:{minRows:10,maxRows:18},placeholder:"粘贴原始请求 JSON"},null,8,["value"])]),_:1})]),_:1}),"omp"===t.target&&0===K.value.length?(r(),u(m(S),{key:0,type:"info","show-icon":!0,style:{"margin-bottom":"12px"}},{default:p(()=>[...d[4]||(d[4]=[s(" 暂无可用于转换的 OMP 协议日志。请先通过 OpenAI 兼容渠道发起一次请求,并启用 CC_TOOL_LOG_REQUESTS。 ",-1)])]),_:1})):l("",!0),f("div",z,[n(m(a),{quaternary:"",onClick:re},{default:p(()=>[...d[5]||(d[5]=[s("填充示例",-1)])]),_:1}),n(m(O),null,{default:p(()=>[n(m(a),{onClick:ve},{default:p(()=>[...d[6]||(d[6]=[s("清空结果",-1)])]),_:1}),n(m(a),{type:"primary",loading:ee.value,disabled:0===K.value.length,onClick:de},{default:p(()=>[...d[7]||(d[7]=[s("开始转换",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),te.value?(r(),u(m(S),{key:1,type:"error","show-icon":!0,style:{"margin-top":"12px"}},{default:p(()=>[s(v(te.value),1)]),_:1})):l("",!0),ae.value?(r(),g("div",L,[f("div",U,[f("div",P,[d[8]||(d[8]=f("span",{class:"meta-label"},"转换端点",-1)),n(m(T),{type:"success",size:"small",bordered:!1},{default:p(()=>[s(v(ae.value.endpoint),1)]),_:1})]),f("div",B,[d[9]||(d[9]=f("span",{class:"meta-label"},"目标协议",-1)),n(m(T),{type:"info",size:"small",bordered:!1},{default:p(()=>[s(v(ae.value.targetApi),1)]),_:1})]),f("div",E,[d[10]||(d[10]=f("span",{class:"meta-label"},"消息数量",-1)),n(m(T),{size:"small",bordered:!1},{default:p(()=>[s(v(ae.value.meta?.messageCount??0),1)]),_:1})])]),Array.isArray(ae.value.warnings)&&ae.value.warnings.length>0?(r(),u(m(S),{key:0,type:"warning","show-icon":!0,style:{"margin-top":"12px"}},{default:p(()=>[d[11]||(d[11]=f("div",{class:"warning-title"},"转换警告",-1)),f("ul",H,[(r(!0),g(c,null,o(ae.value.warnings,(e,a)=>(r(),g("li",{key:a},v(e),1))),128))])]),_:1})):l("",!0),n(m(A),{label:"转换后请求 JSON",style:{"margin-top":"12px"}},{default:p(()=>[n(m(I),{value:ne.value,type:"textarea",readonly:"",autosize:{minRows:10,maxRows:18}},null,8,["value"])]),_:1}),n(m(A),{label:"目标 CLI 请求头(来自最近一次请求日志)"},{default:p(()=>[n(m(I),{value:ue.value,type:"textarea",readonly:"",autosize:{minRows:4,maxRows:10},placeholder:"尚无请求快照;启用 CC_TOOL_LOG_REQUESTS 后重新发起一次目标 CLI 请求"},null,8,["value"])]),_:1}),f("div",$,[d[13]||(d[13]=f("div",null,null,-1)),n(m(a),{size:"small",onClick:pe},{default:p(()=>[...d[12]||(d[12]=[s("复制转换结果",-1)])]),_:1})])])):l("",!0)])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-d468b635"]]);export{D as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,s as a,t as l}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as s,D as n,H as t,I as c,J as o,K as i,O as r,S as u,V as d,W as v,Y as p,Z as h,_t as y,b as g,et as m,g as f,gt as k,ht as T,i as b,m as w,mt as $,st as _,w as C,x}from"./vue-vendor-BqZbbXHA.js";import{t as z}from"./vendors-D0c_0KLP.js";import{a as S,c as j,t as q,u as L}from"./platforms-DNVEAtqx.js";import{C as M,G as I,I as E,L as O,O as A,Ot as D,T as F,Y as N,ft as P,i as U,n as J,r as V,v as K,xt as R,y as Y,yt as H}from"./icons-B-AzZoeE.js";import{t as G,u as W}from"./use-message-DBsCm7FJ.js";import{A as Z,C as B,Et as Q,Y as X,g as ee,j as ae,ut as le,v as se}from"./index-DP0Ggf-8.js";import{t as ne}from"./RecentSessionsDrawer-l5nO_5bS.js";var te={class:"channel-column"},ce={class:"drag-handle",title:"拖拽排序"},oe={class:"header-icon"},ie={class:"channel-title"},re={key:0,class:"claude-extra-area"},ue={key:0,class:"channel-content"},de={key:0,class:"card"},ve={class:"card-header"},pe={class:"card-title"},he={key:0,class:"runtime-badge"},ye={class:"card-body",style:{padding:"6px 10px"}},ge={class:"proxy-info-row"},me={class:"proxy-status"},fe={key:0,class:"proxy-port"},ke={class:"channel-name"},Te={class:"channel-quick-panel"},be={class:"panel-title"},we={key:0,class:"no-channels"},$e={key:1,class:"channel-quick-list"},_e={class:"channel-quick-info"},Ce={class:"channel-quick-name"},xe={key:0,class:"channel-switching-tip"},ze={class:"channel-metrics"},Se={class:"metric-item"},je={class:"metric-value"},qe={class:"metric-item"},Le={class:"metric-value"},Me={class:"metric-item"},Ie={class:"metric-value"},Ee={class:"metric-item"},Oe={class:"card"},Ae={class:"card-header compact"},De={class:"card-body",style:{padding:"8px 10px"}},Fe={class:"quick-access-list"},Ne={class:"access-icon"},Pe={class:"access-content"},Ue={class:"access-value"},Je={class:"access-icon"},Ve={class:"access-content"},Ke={class:"access-value"},Re={class:"access-icon"},Ye={class:"access-content"},He={class:"access-goto"},Ge={class:"card-header compact"},We={class:"card-body",style:{padding:"8px 10px"}},Ze={class:"stats-inline stats-3col"},Be={class:"stat-inline-item stat-requests"},Qe={class:"stat-info"},Xe={class:"stat-inline-item stat-input"},ea={class:"stat-info"},aa={class:"stat-inline-item stat-output"},la={class:"stat-info"},sa={key:3,class:"card logs-card"},na={class:"card-header compact"},ta={class:"card-body logs-card-body"},ca={class:"logs-table-wrapper"},oa={key:0,class:"empty-logs"},ia=["title"],ra={key:0,class:"action-content"},ua={class:"action-msg"},da={class:"action-time"},va={key:1,class:"action-content"},pa={class:"action-msg error-msg"},ha={class:"action-time error-time"},ya={class:"locked-content"},ga={class:"lock-icon"},ma="channelLocks",fa=l({__name:"ChannelColumn",props:{channelType:{type:String,required:!0}},setup(l){const z=l,S=b(),Q=q(),fa=G(),{getProxyState:ka,getChannels:Ta,getSchedulerState:ba,startProxy:wa,stopProxy:$a,getLogs:_a,clearLogsForSource:Ca,loadChannels:xa,logLimit:za,statsInterval:Sa}=se(),{dashboardData:ja,isLoading:qa,loadDashboard:La,scheduleRefresh:Ma}=ee(),Ia=g(()=>Q.get(z.channelType)||{key:z.channelType,label:z.channelType,title:z.channelType,icon:U,color:"#64748b",capabilities:{},resourceTypes:{}}),Ea=g(()=>Ia.value.logLayout||z.channelType),Oa=g(()=>Ia.value.title||Ia.value.label||z.channelType),Aa=g(()=>Ia.value.icon||U),Da=g(()=>Ia.value.color||"#64748b"),Fa=g(()=>Ia.value.label||Ia.value.title||z.channelType),Na=g(()=>ka(z.channelType)?.value||{}),Pa=_({projects:0,sessions:0}),Ua=_({requests:0,tokens:0,cost:0}),Ja=_({requests:0,tokens:0,cost:0}),Va={requests:0,tokens:0,cost:3},Ka={requests:null,tokens:null,cost:null},Ra=_({requests:!1,tokens:!1,cost:!1}),Ya=g(()=>ja.value?.todayStats?.[z.channelType]?.byModel||{});function Ha(e,a,l,s=600){Ka[e]&&cancelAnimationFrame(Ka[e]),Ra.value[e]=!0;const n=Date.now(),t=()=>{const c=Date.now()-n,o=Math.min(c/s,1),i=1-Math.pow(1-o,2),r=a+(l-a)*i,u=Va[e]??0,d=Math.pow(10,u),v=u>0?Math.round(r*d)/d:Math.round(r);Ja.value[e]=v,o<1?Ka[e]=requestAnimationFrame(t):Ra.value[e]=!1};Ka[e]=requestAnimationFrame(t)}const Ga=_(!1);function Wa(e){try{const a=localStorage.getItem(ma),l=a?JSON.parse(a):{};l[z.channelType]=e,localStorage.setItem(ma,JSON.stringify(l))}catch(a){}}const Za=_(function(){try{const e=localStorage.getItem(ma);if(e)return JSON.parse(e)[z.channelType]||!1}catch(e){}return!1}());async function Ba(){Za.value=!Za.value,Wa(Za.value);try{if(await L("channelLocks",z.channelType,Za.value),ja.value){const e=ja.value.uiConfig||{},a={...e.channelLocks||{}};a[z.channelType]=Za.value,ja.value={...ja.value,uiConfig:{...e,channelLocks:a}}}}catch(e){}}const Qa=_(!0);function Xa(e){e.detail&&void 0!==e.detail.showLogs&&(Qa.value=e.detail.showLogs)}const el=_(Date.now()),al=g(()=>{if(!Na.value.running)return"";const e=Na.value.startTime;if(!e)return"";const a=el.value-e;if(a<=0)return"";const l=Math.floor(a/1e3),s=Math.floor(l/3600),n=Math.floor(l%3600/60),t=l%60;let c="已运行 ";return s>0&&(c+=`${s}小时`),n>0&&(c+=`${n}分`),(t>0||0===s&&0===n)&&(c+=`${t}秒`),c}),ll=_(null),sl=g(()=>za.value),nl=g(()=>kl()?(_a(z.channelType)?.value||[]).slice(0,sl.value):[]);let tl=null,cl=null,ol=null,il=!1,rl=null;const ul=g(()=>{const e=Ta(z.channelType)?.value||[];return[...e.filter(e=>!1!==e.enabled),...e.filter(e=>!1===e.enabled)]});function dl(e){const a=ba(z.channelType);if(!a?.channels)return 0;const l=a.channels.find(a=>a.id===e);return l?l.inflight:0}const vl=g(()=>{const e=ul.value.filter(e=>!1!==e.enabled).length;return Na.value.running?`${e}个渠道动态切换中`:ul.value.length>0?`${e}个渠道已启用`:"无渠道"}),pl=g(()=>ja.value?.todayStats?.[z.channelType]?.byChannel||{});function hl(e){return pl.value[e]||{requests:0,tokens:0,cost:0}}function yl(e,a){return e?.usageMissing||"cached"===a&&"dsh"===z.channelType&&!0!==e?.cacheUsageAvailable?"--":e?.tokens?.[a]||0}function gl(e){return Q.hasCapability(z.channelType,e)}function ml(e){return gl(e)||!0===Ia.value.resourceTypes?.[e]}const fl=g(()=>["skills","commands","agents","plugins"].some(ml));function kl(){return gl("nativeLogs")}function Tl(e){if(!e||"action"===e.type||"error"===e.status)return"";const a=[];return e.model&&a.push(`模型: ${e.model}`),e.originalModel&&e.originalModel!==e.model&&a.push(`重定向: ${e.originalModel} -> ${e.model}`),e.usageMissing&&a.push("上游响应未返回 usage,当前无法计算 token。"),a.join("\n")}async function bl(e){if(!gl("proxy"))return void fa.warning(`${Oa.value} 暂未接入动态代理`);const a=ka(z.channelType);if(a){a.value.loading=!0;try{let l;l=e?await wa(z.channelType):await $a(z.channelType,{refreshChannelsDrawer:!0}),!1!==l.success?"omp"===z.channelType?fa.success(e?"OMP 动态切换已启用":"OMP 已切换为单渠道直连模式"):fa.success(e?`${Oa.value} 代理已启动`:`${Oa.value} 代理已停止`):(fa.error(l.error||"操作失败"),a.value.running=!e)}catch(l){fa.error(l.response?.data?.error||l.message||"操作失败"),a.value.running=!e}finally{a.value.loading=!1}}}function wl(){gl("projects")?S.push({name:"cli-projects",params:{platform:z.channelType}}):fa.info(`${Oa.value} 当前仅作为首页显示项`)}function $l(){gl("projects")?S.push({name:"cli-projects",params:{platform:z.channelType}}):fa.info(`${Oa.value} 当前仅作为首页显示项`)}function _l(){gl("sessions")?Ga.value=!0:fa.info(`${Oa.value} 当前没有托管会话列表`)}h(nl,e=>{const a=e[0]?.id||null;a&&a!==tl?(tl=a,rl&&clearTimeout(rl),rl=setTimeout(()=>{Ma({fresh:!0}).then(()=>ql()).catch(()=>{})},5e3),(!ll.value||ll.value.scrollTop<20)&&c(()=>{ll.value&&(ll.value.scrollTop=0)})):tl=a}),h(()=>Ua.value.requests,e=>{Ha("requests",Ja.value.requests,e,600)}),h(()=>Ua.value.tokens,e=>{Ha("tokens",Ja.value.tokens,e,600)}),h(()=>Ua.value.cost,e=>{Ha("cost",Ja.value.cost,e,600)}),h(()=>z.channelType,()=>{tl=nl.value[0]?.id||null}),h(()=>ja.value?.counts?.[z.channelType],()=>{jl()}),h(()=>ja.value?.todayStats?.[z.channelType],()=>{ql()},{deep:!0}),h(Sa,()=>{il&&function(){cl&&(clearInterval(cl),cl=null);const e=Sa.value||30,a=Math.max(1e3*e,1e4);cl=setInterval(()=>{Ma({fresh:!0}).then(()=>ql()).catch(()=>{})},a)}()});const Cl=_({});function xl(e){return!!Cl.value[e]}function zl(e,a){e&&(Cl.value={...Cl.value,[e]:!!a})}async function Sl(e,a){if(!e)return;const l=`${z.channelType}ChannelCollapse`;let s={};try{const e=l?localStorage.getItem(l):null;s=e?JSON.parse(e):{}}catch(n){s={}}a?delete s[e]:s[e]=!0;try{l&&localStorage.setItem(l,JSON.stringify(s))}catch(n){}try{await L("channelCollapse",z.channelType,s)}catch(n){}}function jl(){const e=ja.value?.counts?.[z.channelType];Pa.value.projects=e?.projectCount||0,Pa.value.sessions=e?.sessionCount||0}async function ql(){if(ja.value&&ja.value.todayStats){const e=ja.value.todayStats[z.channelType];e&&(Ua.value.requests=e.requests||0,Ua.value.tokens=e.tokens||0,Ua.value.cost=e.cost||0)}jl()}function Ll(){Ca(z.channelType)}function Ml(e){e?.currentTarget?.blur?.()}function Il(e){window.dispatchEvent(new CustomEvent("open-skills-drawer",{detail:{platform:z.channelType}})),Ml(e)}function El(e){window.dispatchEvent(new CustomEvent("open-commands-drawer",{detail:{platform:z.channelType}})),Ml(e)}function Ol(e){if(!ml("agents"))return fa.info(`${Oa.value} 的 Agent 能力通过插件/扩展提供`),void Ml(e);window.dispatchEvent(new CustomEvent("open-agents-drawer",{detail:{platform:z.channelType}})),Ml(e)}return d(async()=>{await La().then(()=>ql()),async function(){try{if(ja.value&&ja.value.uiConfig)Qa.value=!1!==ja.value.uiConfig.panelVisibility?.showLogs;else{const e=await j();e.success&&e.config&&(Qa.value=!1!==e.config.panelVisibility?.showLogs)}}catch(e){}}(),async function(){try{let e=!1;if(ja.value&&ja.value.uiConfig)e=ja.value.uiConfig.channelLocks?.[z.channelType]||!1;else{const a=await j();a.success&&a.config&&(e=a.config.channelLocks?.[z.channelType]||!1)}Za.value=e,Wa(e)}catch(e){}}(),window.addEventListener("panel-visibility-change",Xa),Ja.value={...Ua.value},il=!0,ol=setInterval(()=>{el.value=Date.now()},1e3)}),t(()=>{il=!1,cl&&clearInterval(cl),ol&&clearInterval(ol),rl&&clearTimeout(rl),window.removeEventListener("panel-visibility-change",Xa),Object.values(Ka).forEach(e=>{e&&cancelAnimationFrame(e)})}),(t,c)=>{const d=o("n-collapse");return v(),C("div",te,[x("div",{class:T(["channel-header",l.channelType]),style:k({"--platform-color":Da.value})},[x("div",ce,[r($(e),{size:16},{default:m(()=>[r($(Y))]),_:1})]),x("div",oe,[r($(e),{size:20},{default:m(()=>[(v(),u(p(Aa.value)))]),_:1})]),x("h2",ie,y(Oa.value),1),fl.value?(v(),C("div",re,[ml("skills")?(v(),u($(X),{key:0,trigger:"hover"},{trigger:m(()=>[r($(a),{text:"",class:"config-shortcut-button",onClick:Il,title:"Skills 技能管理"},{icon:m(()=>[r($(e),{size:18},{default:m(()=>[r($(N))]),_:1})]),_:1})]),default:m(()=>[c[2]||(c[2]=n(" Skills 技能管理 ",-1))]),_:1})):s("",!0),ml("commands")?(v(),u($(X),{key:1,trigger:"hover"},{trigger:m(()=>[r($(a),{text:"",class:"config-shortcut-button",onClick:El,title:"Commands 命令管理"},{icon:m(()=>[r($(e),{size:18},{default:m(()=>[r($(U))]),_:1})]),_:1})]),default:m(()=>[c[3]||(c[3]=n(" Commands 命令管理 ",-1))]),_:1})):s("",!0),ml("agents")?(v(),u($(X),{key:2,trigger:"hover"},{trigger:m(()=>[r($(a),{text:"",class:"config-shortcut-button",onClick:Ol,title:"Agents 代理管理"},{icon:m(()=>[r($(e),{size:18},{default:m(()=>[r($(A))]),_:1})]),_:1})]),default:m(()=>[c[4]||(c[4]=n(" Agents 代理管理 ",-1))]),_:1})):s("",!0)])):s("",!0),r($(a),{text:"",class:"lock-button",onClick:Ba,title:Za.value?"解锁此列":"锁定此列"},{icon:m(()=>[r($(e),{size:18},{default:m(()=>[Za.value?(v(),u($(O),{key:0})):(v(),u($(E),{key:1}))]),_:1})]),_:1},8,["title"])],6),Za.value?s("",!0):(v(),C("div",ue,[gl("proxy")?(v(),C("div",de,[x("div",ve,[r($(e),{size:16},{default:m(()=>[r($(F))]),_:1}),x("h3",pe,y("omp"===l.channelType?"动态切换":"代理控制"),1),Na.value.running&&al.value?(v(),C("span",he,y(al.value),1)):s("",!0),r($(ae),{value:Na.value.running,"onUpdate:value":[c[0]||(c[0]=e=>Na.value.running=e),bl],loading:Na.value.loading,size:"small",style:{"margin-left":"auto"}},null,8,["value","loading"])]),x("div",ye,[x("div",ge,[x("div",me,[x("div",{class:T(["status-dot",{active:Na.value.running}])},null,2),r($(Z),{type:Na.value.running?"success":"default",style:{"font-size":"12px"}},{default:m(()=>[n(y(Na.value.running?"运行中":"已停止"),1)]),_:1},8,["type"]),"omp"!==l.channelType?(v(),C("span",fe,"端口: "+y(Na.value.port),1)):s("",!0)]),gl("channels")?(v(),u($(W),{key:0,trigger:"click",placement:"bottom",width:320,class:"channel-popover"},{trigger:m(()=>[r($(a),{text:"",size:"tiny",class:"channel-status"},{default:m(()=>[x("span",ke,y(vl.value),1)]),_:1})]),default:m(()=>[x("div",Te,[x("div",be,[c[6]||(c[6]=x("span",null,"渠道快捷管理",-1)),r($(Z),{depth:"3",style:{"font-size":"11px"}},{default:m(()=>[...c[5]||(c[5]=[n("点击开关切换状态",-1)])]),_:1})]),0===ul.value.length?(v(),C("div",we,[r($(Z),{depth:"3"},{default:m(()=>[...c[7]||(c[7]=[n("暂无配置渠道",-1)])]),_:1})])):(v(),C("div",$e,[(v(!0),C(f,null,i(ul.value,e=>{return v(),C("div",{key:e.id,class:T(["channel-quick-item",{disabled:!1===e.enabled}])},[x("div",_e,[x("span",Ce,y(e.name),1),"frozen"===e.health?.status?(v(),u($(le),{key:0,size:"tiny",type:"error",bordered:!1},{default:m(()=>[...c[8]||(c[8]=[n(" 冻结 ",-1)])]),_:1})):s("",!0),r($(ae),{size:"small",value:!1!==e.enabled,"onUpdate:value":a=>async function(e,a){if(e&&!xl(e.id)){zl(e.id,!0);try{await B(z.channelType,e.id,{enabled:a}),await Sl(e.id,a),fa.success(a?`渠道「${e.name}」已启用`:`渠道「${e.name}」已停用`),await xa({force:!0,keys:[z.channelType]}),window.dispatchEvent(new CustomEvent("channel-management-refresh",{detail:{channel:z.channelType}}))}catch(l){fa.error("操作失败: "+l.message)}finally{zl(e.id,!1)}}}(e,a),loading:xl(e.id),disabled:xl(e.id),style:{"margin-left":"auto"}},null,8,["value","onUpdate:value","loading","disabled"])]),xl(e.id)?(v(),C("div",xe," 正在切换渠道状态... ")):s("",!0),x("div",ze,[x("span",Se,[c[9]||(c[9]=x("span",{class:"metric-label"},"请求",-1)),x("span",je,y(hl(e.id).requests),1)]),x("span",qe,[c[10]||(c[10]=x("span",{class:"metric-label"},"Tokens",-1)),x("span",Le,y((a=hl(e.id).tokens,a>=1e6?(a/1e6).toFixed(1)+"M":a>=1e3?(a/1e3).toFixed(1)+"K":a.toString())),1)]),x("span",Me,[c[11]||(c[11]=x("span",{class:"metric-label"},"权重",-1)),x("span",Ie,y(e.weight||1),1)]),x("span",Ee,[c[12]||(c[12]=x("span",{class:"metric-label"},"并发",-1)),x("span",{class:T(["metric-value",{active:dl(e.id)>0}])},y(dl(e.id))+y(e.maxConcurrency?`/${e.maxConcurrency}`:""),3)])])],2);var a}),128))]))])]),_:1})):s("",!0)])])])):s("",!0),x("div",Oe,[x("div",Ae,[r($(e),{size:14},{default:m(()=>[r($(K))]),_:1}),c[13]||(c[13]=x("h3",{class:"card-title"},"快速访问",-1))]),x("div",De,[x("div",Fe,[x("div",{class:T(["access-card access-card-projects",{clickable:gl("projects"),disabled:!gl("projects")}]),onClick:wl},[x("div",Ne,[r($(e),{size:16},{default:m(()=>[r($(I))]),_:1})]),x("div",Pe,[c[14]||(c[14]=x("span",{class:"access-label"},"项目",-1)),x("span",Ue,y(Pa.value.projects),1)])],2),x("div",{class:T(["access-card access-card-sessions",{clickable:gl("sessions"),disabled:!gl("sessions")}]),onClick:_l},[x("div",Je,[r($(e),{size:16},{default:m(()=>[r($(R))]),_:1})]),x("div",Ve,[c[15]||(c[15]=x("span",{class:"access-label"},"最新对话",-1)),x("span",Ke,y(Pa.value.sessions),1)])],2),x("div",{class:T(["access-card access-card-goto",{clickable:gl("projects"),disabled:!gl("projects")}]),onClick:$l},[x("div",Re,[r($(e),{size:16},{default:m(()=>[r($(D))]),_:1})]),x("div",Ye,[c[16]||(c[16]=x("span",{class:"access-label"},"前往",-1)),x("span",He,y(Fa.value),1)])],2)])])]),gl("statistics")?(v(),C("div",{key:1,class:T(["card stats-card",`stats-card-${l.channelType}`])},[x("div",Ge,[r($(e),{size:14},{default:m(()=>[r($(J))]),_:1}),c[17]||(c[17]=x("h3",{class:"card-title"},"今日数据",-1))]),x("div",We,[x("div",Ze,[x("div",Be,[c[19]||(c[19]=x("div",{class:"stat-icon-dot requests"},null,-1)),x("div",Qe,[c[18]||(c[18]=x("span",{class:"stat-label"},"请求",-1)),x("span",{class:T(["stat-value",{animating:Ra.value.requests}])},y(Ja.value.requests),3)])]),x("div",Xe,[c[21]||(c[21]=x("div",{class:"stat-icon-dot tokens"},null,-1)),x("div",ea,[c[20]||(c[20]=x("span",{class:"stat-label"},"总 Tokens",-1)),x("span",{class:T(["stat-value",{animating:Ra.value.tokens}])},y((g=Ja.value.tokens,g>=1e6?(g/1e6).toFixed(1)+"M":g>=1e3?(g/1e3).toFixed(1)+"K":g.toString())),3)])]),x("div",aa,[c[23]||(c[23]=x("div",{class:"stat-icon-dot cost"},null,-1)),x("div",la,[c[22]||(c[22]=x("span",{class:"stat-label"},"成本 / USD",-1)),x("span",{class:T(["stat-value",{animating:Ra.value.cost}])},y((h=Ja.value.cost,!h||Number.isNaN(h)?"$0":"$"+Number(h).toFixed(3))),3)])])])])],2)):s("",!0),gl("statistics")&&Object.keys(Ya.value).length>0?(v(),C("div",{key:2,class:T(["card chart-card",`chart-card-${l.channelType}`])},[r(d,{"default-expanded-names":[],accordion:""})],2)):s("",!0),Qa.value&&kl()?(v(),C("div",sa,[x("div",na,[r($(e),{size:14},{default:m(()=>[r($(M))]),_:1}),c[24]||(c[24]=x("h3",{class:"card-title"},"实时日志",-1)),r($(a),{text:"",size:"tiny",onClick:w(Ll,["stop"]),style:{"margin-left":"auto"},title:"清空日志"},{icon:m(()=>[r($(e),{size:14},{default:m(()=>[r($(V))]),_:1})]),_:1})]),x("div",ta,[x("div",ca,[x("div",{class:T(["logs-table-header",`logs-header-${l.channelType}`])},[x("div",{class:T(["log-col col-channel",`col-channel-${Ea.value}`])},"渠道",2),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},"请求",2),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},"回复",2),"claude"===l.channelType?(v(),C(f,{key:0},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"写入",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"命中",2)],64)):"dsh"===l.channelType?(v(),C(f,{key:1},[x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},"缓存",2),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},"总计",2)],64)):"codex"===l.channelType?(v(),C(f,{key:2},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"推理",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"缓存",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"总计",2)],64)):"gemini"===l.channelType?(v(),C(f,{key:3},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"缓存",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"总计",2)],64)):"opencode"===l.channelType||"omp"===l.channelType?(v(),C(f,{key:4},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"推理",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"缓存",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"总计",2)],64)):(v(),C("div",{key:5,class:T(["log-col col-token",`col-token-${l.channelType}`])},"总计",2)),x("div",{class:T(["log-col col-time",`col-time-${Ea.value}`])},"时间",2)],2),x("div",{class:"logs-container",ref_key:"logsContainer",ref:ll},[0===nl.value.length?(v(),C("div",oa,[r($(e),{size:32,depth:"3",style:{"margin-bottom":"8px"}},{default:m(()=>[r($(M))]),_:1}),r($(Z),{depth:"3",style:{"font-size":"12px","font-weight":"500"}},{default:m(()=>[...c[25]||(c[25]=[n("暂无实时日志",-1)])]),_:1}),r($(Z),{depth:"3",style:{"font-size":"11px","margin-top":"4px"}},{default:m(()=>[n(y("omp"===l.channelType?"ctx 将持续读取 OMP 原生会话日志":"开启代理后将显示请求记录"),1)]),_:1})])):s("",!0),(v(!0),C(f,null,i(nl.value,a=>(v(),C("div",{key:a.id,class:T(["log-row",{"action-row":"action"===a.type,"error-row":"error"===a.status,"new-log":a.isNew}]),title:Tl(a)},["action"===a.type?(v(),C("div",ra,[r($(e),{size:12,color:"#18a058"},{default:m(()=>[r($(H))]),_:1}),x("span",ua,y(a.message),1),x("span",da,y(a.time),1)])):"error"===a.status?(v(),C("div",va,[r($(e),{size:12,color:"#d03050"},{default:m(()=>[r($(P))]),_:1}),x("span",pa,y(a.channel)+": "+y(a.error||a.message||"请求失败"),1),x("span",ha,y(a.time),1)])):(v(),C(f,{key:2},[x("div",{class:T(["log-col col-channel",`col-channel-${Ea.value}`])},[r($(le),{size:"tiny",type:"success"},{default:m(()=>[n(y(a.channel),1)]),_:2},1024)],2),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},y(yl(a,"input")),3),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},y(yl(a,"output")),3),"claude"===l.channelType?(v(),C(f,{key:0},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"cacheCreation")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"cacheRead")),3)],64)):"dsh"===l.channelType?(v(),C(f,{key:1},[x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},y(yl(a,"cached")),3),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},y(yl(a,"total")),3)],64)):"codex"===l.channelType?(v(),C(f,{key:2},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"reasoning")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"cached")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"total")),3)],64)):"gemini"===l.channelType?(v(),C(f,{key:3},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"cached")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"total")),3)],64)):"opencode"===l.channelType||"omp"===l.channelType?(v(),C(f,{key:4},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"reasoning")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"cached")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"total")),3)],64)):(v(),C("div",{key:5,class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"total")),3)),x("div",{class:T(["log-col col-time",`col-time-${Ea.value}`])},y(a.time),3)],64))],10,ia))),128))],512)])])])):s("",!0)])),Za.value?(v(),C("div",{key:1,class:T(["locked-overlay",`locked-${l.channelType}`])},[x("div",ya,[x("div",ga,[r($(e),{size:48},{default:m(()=>[r($(O))]),_:1})]),c[27]||(c[27]=x("h3",{class:"locked-title"},"该渠道已锁定",-1)),r($(Z),{depth:"3",class:"locked-hint"},{default:m(()=>[...c[26]||(c[26]=[n(" 点击上方按钮解锁以查看内容 ",-1)])]),_:1})])],2)):s("",!0),gl("sessions")?(v(),u(ne,{key:2,visible:Ga.value,"onUpdate:visible":c[1]||(c[1]=e=>Ga.value=e),channel:l.channelType},null,8,["visible","channel"])):s("",!0)]);var h,g}}},[["__scopeId","data-v-ef16bc6c"]]),ka={class:"dashboard-container"},Ta=l({__name:"Home",setup(e){const{uiConfig:a,updateConfig:l,loadUIConfig:s}=S(),n=q(),{enabledKeys:c}=Q({platformStore:n,configRef:a}),o=_([]);function i(e=c.value){o.value=e.map(e=>({type:e}))}async function p(){const e=o.value.map(e=>e.type);i(e),await l("enabledCliPlatforms",e)}function h(e){const l=e?.detail?.enabledCliPlatforms;Array.isArray(l)&&(a.value={...a.value,enabledCliPlatforms:[...l]}),i()}return d(async()=>{window.addEventListener("enabled-cli-platforms-change",h),await Promise.all([s(),n.load()]),i()}),t(()=>{window.removeEventListener("enabled-cli-platforms-change",h)}),(e,a)=>(v(),C("div",ka,[r($(z),{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=e=>o.value=e),class:"dashboard-grid","item-key":"type",animation:200,handle:".drag-handle",onEnd:p},{item:m(({element:e})=>[(v(),u(fa,{"channel-type":e.type,key:e.type},null,8,["channel-type"]))]),_:1},8,["modelValue"])]))}},[["__scopeId","data-v-5858e14d"]]);export{Ta as default};
|
|
1
|
+
import{i as e,s as a,t as l}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as s,D as n,H as t,I as c,J as o,K as i,O as r,S as u,V as d,W as v,Y as p,Z as h,_t as y,b as g,et as m,g as f,gt as k,ht as T,i as b,m as w,mt as $,st as _,w as C,x}from"./vue-vendor-BqZbbXHA.js";import{t as z}from"./vendors-D0c_0KLP.js";import{d as S,l as j,o as q,t as L}from"./platforms-Cq6XDXfy.js";import{C as M,G as I,I as E,L as O,O as A,Ot as D,T as F,Y as N,ft as P,i as U,n as J,r as V,v as K,xt as R,y as Y,yt as H}from"./icons-B-AzZoeE.js";import{t as G,u as W}from"./use-message-DBsCm7FJ.js";import{A as Z,C as B,Et as Q,Y as X,g as ee,j as ae,ut as le,v as se}from"./index-D1b2vDrs.js";import{t as ne}from"./RecentSessionsDrawer-BbP16V3T.js";var te={class:"channel-column"},ce={class:"drag-handle",title:"拖拽排序"},oe={class:"header-icon"},ie={class:"channel-title"},re={key:0,class:"claude-extra-area"},ue={key:0,class:"channel-content"},de={key:0,class:"card"},ve={class:"card-header"},pe={class:"card-title"},he={key:0,class:"runtime-badge"},ye={class:"card-body",style:{padding:"6px 10px"}},ge={class:"proxy-info-row"},me={class:"proxy-status"},fe={key:0,class:"proxy-port"},ke={class:"channel-name"},Te={class:"channel-quick-panel"},be={class:"panel-title"},we={key:0,class:"no-channels"},$e={key:1,class:"channel-quick-list"},_e={class:"channel-quick-info"},Ce={class:"channel-quick-name"},xe={key:0,class:"channel-switching-tip"},ze={class:"channel-metrics"},Se={class:"metric-item"},je={class:"metric-value"},qe={class:"metric-item"},Le={class:"metric-value"},Me={class:"metric-item"},Ie={class:"metric-value"},Ee={class:"metric-item"},Oe={class:"card"},Ae={class:"card-header compact"},De={class:"card-body",style:{padding:"8px 10px"}},Fe={class:"quick-access-list"},Ne={class:"access-icon"},Pe={class:"access-content"},Ue={class:"access-value"},Je={class:"access-icon"},Ve={class:"access-content"},Ke={class:"access-value"},Re={class:"access-icon"},Ye={class:"access-content"},He={class:"access-goto"},Ge={class:"card-header compact"},We={class:"card-body",style:{padding:"8px 10px"}},Ze={class:"stats-inline stats-3col"},Be={class:"stat-inline-item stat-requests"},Qe={class:"stat-info"},Xe={class:"stat-inline-item stat-input"},ea={class:"stat-info"},aa={class:"stat-inline-item stat-output"},la={class:"stat-info"},sa={key:3,class:"card logs-card"},na={class:"card-header compact"},ta={class:"card-body logs-card-body"},ca={class:"logs-table-wrapper"},oa={key:0,class:"empty-logs"},ia=["title"],ra={key:0,class:"action-content"},ua={class:"action-msg"},da={class:"action-time"},va={key:1,class:"action-content"},pa={class:"action-msg error-msg"},ha={class:"action-time error-time"},ya={class:"locked-content"},ga={class:"lock-icon"},ma="channelLocks",fa=l({__name:"ChannelColumn",props:{channelType:{type:String,required:!0}},setup(l){const z=l,q=b(),Q=L(),fa=G(),{getProxyState:ka,getChannels:Ta,getSchedulerState:ba,startProxy:wa,stopProxy:$a,getLogs:_a,clearLogsForSource:Ca,loadChannels:xa,logLimit:za,statsInterval:Sa}=se(),{dashboardData:ja,isLoading:qa,loadDashboard:La,scheduleRefresh:Ma}=ee(),Ia=g(()=>Q.get(z.channelType)||{key:z.channelType,label:z.channelType,title:z.channelType,icon:U,color:"#64748b",capabilities:{},resourceTypes:{}}),Ea=g(()=>Ia.value.logLayout||z.channelType),Oa=g(()=>Ia.value.title||Ia.value.label||z.channelType),Aa=g(()=>Ia.value.icon||U),Da=g(()=>Ia.value.color||"#64748b"),Fa=g(()=>Ia.value.label||Ia.value.title||z.channelType),Na=g(()=>ka(z.channelType)?.value||{}),Pa=_({projects:0,sessions:0}),Ua=_({requests:0,tokens:0,cost:0}),Ja=_({requests:0,tokens:0,cost:0}),Va={requests:0,tokens:0,cost:3},Ka={requests:null,tokens:null,cost:null},Ra=_({requests:!1,tokens:!1,cost:!1}),Ya=g(()=>ja.value?.todayStats?.[z.channelType]?.byModel||{});function Ha(e,a,l,s=600){Ka[e]&&cancelAnimationFrame(Ka[e]),Ra.value[e]=!0;const n=Date.now(),t=()=>{const c=Date.now()-n,o=Math.min(c/s,1),i=1-Math.pow(1-o,2),r=a+(l-a)*i,u=Va[e]??0,d=Math.pow(10,u),v=u>0?Math.round(r*d)/d:Math.round(r);Ja.value[e]=v,o<1?Ka[e]=requestAnimationFrame(t):Ra.value[e]=!1};Ka[e]=requestAnimationFrame(t)}const Ga=_(!1);function Wa(e){try{const a=localStorage.getItem(ma),l=a?JSON.parse(a):{};l[z.channelType]=e,localStorage.setItem(ma,JSON.stringify(l))}catch(a){}}const Za=_(function(){try{const e=localStorage.getItem(ma);if(e)return JSON.parse(e)[z.channelType]||!1}catch(e){}return!1}());async function Ba(){Za.value=!Za.value,Wa(Za.value);try{if(await S("channelLocks",z.channelType,Za.value),ja.value){const e=ja.value.uiConfig||{},a={...e.channelLocks||{}};a[z.channelType]=Za.value,ja.value={...ja.value,uiConfig:{...e,channelLocks:a}}}}catch(e){}}const Qa=_(!0);function Xa(e){e.detail&&void 0!==e.detail.showLogs&&(Qa.value=e.detail.showLogs)}const el=_(Date.now()),al=g(()=>{if(!Na.value.running)return"";const e=Na.value.startTime;if(!e)return"";const a=el.value-e;if(a<=0)return"";const l=Math.floor(a/1e3),s=Math.floor(l/3600),n=Math.floor(l%3600/60),t=l%60;let c="已运行 ";return s>0&&(c+=`${s}小时`),n>0&&(c+=`${n}分`),(t>0||0===s&&0===n)&&(c+=`${t}秒`),c}),ll=_(null),sl=g(()=>za.value),nl=g(()=>kl()?(_a(z.channelType)?.value||[]).slice(0,sl.value):[]);let tl=null,cl=null,ol=null,il=!1,rl=null;const ul=g(()=>{const e=Ta(z.channelType)?.value||[];return[...e.filter(e=>!1!==e.enabled),...e.filter(e=>!1===e.enabled)]});function dl(e){const a=ba(z.channelType);if(!a?.channels)return 0;const l=a.channels.find(a=>a.id===e);return l?l.inflight:0}const vl=g(()=>{const e=ul.value.filter(e=>!1!==e.enabled).length;return Na.value.running?`${e}个渠道动态切换中`:ul.value.length>0?`${e}个渠道已启用`:"无渠道"}),pl=g(()=>ja.value?.todayStats?.[z.channelType]?.byChannel||{});function hl(e){return pl.value[e]||{requests:0,tokens:0,cost:0}}function yl(e,a){return e?.usageMissing||"cached"===a&&"dsh"===z.channelType&&!0!==e?.cacheUsageAvailable?"--":e?.tokens?.[a]||0}function gl(e){return Q.hasCapability(z.channelType,e)}function ml(e){return gl(e)||!0===Ia.value.resourceTypes?.[e]}const fl=g(()=>["skills","commands","agents","plugins"].some(ml));function kl(){return gl("nativeLogs")}function Tl(e){if(!e||"action"===e.type||"error"===e.status)return"";const a=[];return e.model&&a.push(`模型: ${e.model}`),e.originalModel&&e.originalModel!==e.model&&a.push(`重定向: ${e.originalModel} -> ${e.model}`),e.usageMissing&&a.push("上游响应未返回 usage,当前无法计算 token。"),a.join("\n")}async function bl(e){if(!gl("proxy"))return void fa.warning(`${Oa.value} 暂未接入动态代理`);const a=ka(z.channelType);if(a){a.value.loading=!0;try{let l;l=e?await wa(z.channelType):await $a(z.channelType,{refreshChannelsDrawer:!0}),!1!==l.success?"omp"===z.channelType?fa.success(e?"OMP 动态切换已启用":"OMP 已切换为单渠道直连模式"):fa.success(e?`${Oa.value} 代理已启动`:`${Oa.value} 代理已停止`):(fa.error(l.error||"操作失败"),a.value.running=!e)}catch(l){fa.error(l.response?.data?.error||l.message||"操作失败"),a.value.running=!e}finally{a.value.loading=!1}}}function wl(){gl("projects")?q.push({name:"cli-projects",params:{platform:z.channelType}}):fa.info(`${Oa.value} 当前仅作为首页显示项`)}function $l(){gl("projects")?q.push({name:"cli-projects",params:{platform:z.channelType}}):fa.info(`${Oa.value} 当前仅作为首页显示项`)}function _l(){gl("sessions")?Ga.value=!0:fa.info(`${Oa.value} 当前没有托管会话列表`)}h(nl,e=>{const a=e[0]?.id||null;a&&a!==tl?(tl=a,rl&&clearTimeout(rl),rl=setTimeout(()=>{Ma({fresh:!0}).then(()=>ql()).catch(()=>{})},5e3),(!ll.value||ll.value.scrollTop<20)&&c(()=>{ll.value&&(ll.value.scrollTop=0)})):tl=a}),h(()=>Ua.value.requests,e=>{Ha("requests",Ja.value.requests,e,600)}),h(()=>Ua.value.tokens,e=>{Ha("tokens",Ja.value.tokens,e,600)}),h(()=>Ua.value.cost,e=>{Ha("cost",Ja.value.cost,e,600)}),h(()=>z.channelType,()=>{tl=nl.value[0]?.id||null}),h(()=>ja.value?.counts?.[z.channelType],()=>{jl()}),h(()=>ja.value?.todayStats?.[z.channelType],()=>{ql()},{deep:!0}),h(Sa,()=>{il&&function(){cl&&(clearInterval(cl),cl=null);const e=Sa.value||30,a=Math.max(1e3*e,1e4);cl=setInterval(()=>{Ma({fresh:!0}).then(()=>ql()).catch(()=>{})},a)}()});const Cl=_({});function xl(e){return!!Cl.value[e]}function zl(e,a){e&&(Cl.value={...Cl.value,[e]:!!a})}async function Sl(e,a){if(!e)return;const l=`${z.channelType}ChannelCollapse`;let s={};try{const e=l?localStorage.getItem(l):null;s=e?JSON.parse(e):{}}catch(n){s={}}a?delete s[e]:s[e]=!0;try{l&&localStorage.setItem(l,JSON.stringify(s))}catch(n){}try{await S("channelCollapse",z.channelType,s)}catch(n){}}function jl(){const e=ja.value?.counts?.[z.channelType];Pa.value.projects=e?.projectCount||0,Pa.value.sessions=e?.sessionCount||0}async function ql(){if(ja.value&&ja.value.todayStats){const e=ja.value.todayStats[z.channelType];e&&(Ua.value.requests=e.requests||0,Ua.value.tokens=e.tokens||0,Ua.value.cost=e.cost||0)}jl()}function Ll(){Ca(z.channelType)}function Ml(e){e?.currentTarget?.blur?.()}function Il(e){window.dispatchEvent(new CustomEvent("open-skills-drawer",{detail:{platform:z.channelType}})),Ml(e)}function El(e){window.dispatchEvent(new CustomEvent("open-commands-drawer",{detail:{platform:z.channelType}})),Ml(e)}function Ol(e){if(!ml("agents"))return fa.info(`${Oa.value} 的 Agent 能力通过插件/扩展提供`),void Ml(e);window.dispatchEvent(new CustomEvent("open-agents-drawer",{detail:{platform:z.channelType}})),Ml(e)}return d(async()=>{await La().then(()=>ql()),async function(){try{if(ja.value&&ja.value.uiConfig)Qa.value=!1!==ja.value.uiConfig.panelVisibility?.showLogs;else{const e=await j();e.success&&e.config&&(Qa.value=!1!==e.config.panelVisibility?.showLogs)}}catch(e){}}(),async function(){try{let e=!1;if(ja.value&&ja.value.uiConfig)e=ja.value.uiConfig.channelLocks?.[z.channelType]||!1;else{const a=await j();a.success&&a.config&&(e=a.config.channelLocks?.[z.channelType]||!1)}Za.value=e,Wa(e)}catch(e){}}(),window.addEventListener("panel-visibility-change",Xa),Ja.value={...Ua.value},il=!0,ol=setInterval(()=>{el.value=Date.now()},1e3)}),t(()=>{il=!1,cl&&clearInterval(cl),ol&&clearInterval(ol),rl&&clearTimeout(rl),window.removeEventListener("panel-visibility-change",Xa),Object.values(Ka).forEach(e=>{e&&cancelAnimationFrame(e)})}),(t,c)=>{const d=o("n-collapse");return v(),C("div",te,[x("div",{class:T(["channel-header",l.channelType]),style:k({"--platform-color":Da.value})},[x("div",ce,[r($(e),{size:16},{default:m(()=>[r($(Y))]),_:1})]),x("div",oe,[r($(e),{size:20},{default:m(()=>[(v(),u(p(Aa.value)))]),_:1})]),x("h2",ie,y(Oa.value),1),fl.value?(v(),C("div",re,[ml("skills")?(v(),u($(X),{key:0,trigger:"hover"},{trigger:m(()=>[r($(a),{text:"",class:"config-shortcut-button",onClick:Il,title:"Skills 技能管理"},{icon:m(()=>[r($(e),{size:18},{default:m(()=>[r($(N))]),_:1})]),_:1})]),default:m(()=>[c[2]||(c[2]=n(" Skills 技能管理 ",-1))]),_:1})):s("",!0),ml("commands")?(v(),u($(X),{key:1,trigger:"hover"},{trigger:m(()=>[r($(a),{text:"",class:"config-shortcut-button",onClick:El,title:"Commands 命令管理"},{icon:m(()=>[r($(e),{size:18},{default:m(()=>[r($(U))]),_:1})]),_:1})]),default:m(()=>[c[3]||(c[3]=n(" Commands 命令管理 ",-1))]),_:1})):s("",!0),ml("agents")?(v(),u($(X),{key:2,trigger:"hover"},{trigger:m(()=>[r($(a),{text:"",class:"config-shortcut-button",onClick:Ol,title:"Agents 代理管理"},{icon:m(()=>[r($(e),{size:18},{default:m(()=>[r($(A))]),_:1})]),_:1})]),default:m(()=>[c[4]||(c[4]=n(" Agents 代理管理 ",-1))]),_:1})):s("",!0)])):s("",!0),r($(a),{text:"",class:"lock-button",onClick:Ba,title:Za.value?"解锁此列":"锁定此列"},{icon:m(()=>[r($(e),{size:18},{default:m(()=>[Za.value?(v(),u($(O),{key:0})):(v(),u($(E),{key:1}))]),_:1})]),_:1},8,["title"])],6),Za.value?s("",!0):(v(),C("div",ue,[gl("proxy")?(v(),C("div",de,[x("div",ve,[r($(e),{size:16},{default:m(()=>[r($(F))]),_:1}),x("h3",pe,y("omp"===l.channelType?"动态切换":"代理控制"),1),Na.value.running&&al.value?(v(),C("span",he,y(al.value),1)):s("",!0),r($(ae),{value:Na.value.running,"onUpdate:value":[c[0]||(c[0]=e=>Na.value.running=e),bl],loading:Na.value.loading,size:"small",style:{"margin-left":"auto"}},null,8,["value","loading"])]),x("div",ye,[x("div",ge,[x("div",me,[x("div",{class:T(["status-dot",{active:Na.value.running}])},null,2),r($(Z),{type:Na.value.running?"success":"default",style:{"font-size":"12px"}},{default:m(()=>[n(y(Na.value.running?"运行中":"已停止"),1)]),_:1},8,["type"]),"omp"!==l.channelType?(v(),C("span",fe,"端口: "+y(Na.value.port),1)):s("",!0)]),gl("channels")?(v(),u($(W),{key:0,trigger:"click",placement:"bottom",width:320,class:"channel-popover"},{trigger:m(()=>[r($(a),{text:"",size:"tiny",class:"channel-status"},{default:m(()=>[x("span",ke,y(vl.value),1)]),_:1})]),default:m(()=>[x("div",Te,[x("div",be,[c[6]||(c[6]=x("span",null,"渠道快捷管理",-1)),r($(Z),{depth:"3",style:{"font-size":"11px"}},{default:m(()=>[...c[5]||(c[5]=[n("点击开关切换状态",-1)])]),_:1})]),0===ul.value.length?(v(),C("div",we,[r($(Z),{depth:"3"},{default:m(()=>[...c[7]||(c[7]=[n("暂无配置渠道",-1)])]),_:1})])):(v(),C("div",$e,[(v(!0),C(f,null,i(ul.value,e=>{return v(),C("div",{key:e.id,class:T(["channel-quick-item",{disabled:!1===e.enabled}])},[x("div",_e,[x("span",Ce,y(e.name),1),"frozen"===e.health?.status?(v(),u($(le),{key:0,size:"tiny",type:"error",bordered:!1},{default:m(()=>[...c[8]||(c[8]=[n(" 冻结 ",-1)])]),_:1})):s("",!0),r($(ae),{size:"small",value:!1!==e.enabled,"onUpdate:value":a=>async function(e,a){if(e&&!xl(e.id)){zl(e.id,!0);try{await B(z.channelType,e.id,{enabled:a}),await Sl(e.id,a),fa.success(a?`渠道「${e.name}」已启用`:`渠道「${e.name}」已停用`),await xa({force:!0,keys:[z.channelType]}),window.dispatchEvent(new CustomEvent("channel-management-refresh",{detail:{channel:z.channelType}}))}catch(l){fa.error("操作失败: "+l.message)}finally{zl(e.id,!1)}}}(e,a),loading:xl(e.id),disabled:xl(e.id),style:{"margin-left":"auto"}},null,8,["value","onUpdate:value","loading","disabled"])]),xl(e.id)?(v(),C("div",xe," 正在切换渠道状态... ")):s("",!0),x("div",ze,[x("span",Se,[c[9]||(c[9]=x("span",{class:"metric-label"},"请求",-1)),x("span",je,y(hl(e.id).requests),1)]),x("span",qe,[c[10]||(c[10]=x("span",{class:"metric-label"},"Tokens",-1)),x("span",Le,y((a=hl(e.id).tokens,a>=1e6?(a/1e6).toFixed(1)+"M":a>=1e3?(a/1e3).toFixed(1)+"K":a.toString())),1)]),x("span",Me,[c[11]||(c[11]=x("span",{class:"metric-label"},"权重",-1)),x("span",Ie,y(e.weight||1),1)]),x("span",Ee,[c[12]||(c[12]=x("span",{class:"metric-label"},"并发",-1)),x("span",{class:T(["metric-value",{active:dl(e.id)>0}])},y(dl(e.id))+y(e.maxConcurrency?`/${e.maxConcurrency}`:""),3)])])],2);var a}),128))]))])]),_:1})):s("",!0)])])])):s("",!0),x("div",Oe,[x("div",Ae,[r($(e),{size:14},{default:m(()=>[r($(K))]),_:1}),c[13]||(c[13]=x("h3",{class:"card-title"},"快速访问",-1))]),x("div",De,[x("div",Fe,[x("div",{class:T(["access-card access-card-projects",{clickable:gl("projects"),disabled:!gl("projects")}]),onClick:wl},[x("div",Ne,[r($(e),{size:16},{default:m(()=>[r($(I))]),_:1})]),x("div",Pe,[c[14]||(c[14]=x("span",{class:"access-label"},"项目",-1)),x("span",Ue,y(Pa.value.projects),1)])],2),x("div",{class:T(["access-card access-card-sessions",{clickable:gl("sessions"),disabled:!gl("sessions")}]),onClick:_l},[x("div",Je,[r($(e),{size:16},{default:m(()=>[r($(R))]),_:1})]),x("div",Ve,[c[15]||(c[15]=x("span",{class:"access-label"},"最新对话",-1)),x("span",Ke,y(Pa.value.sessions),1)])],2),x("div",{class:T(["access-card access-card-goto",{clickable:gl("projects"),disabled:!gl("projects")}]),onClick:$l},[x("div",Re,[r($(e),{size:16},{default:m(()=>[r($(D))]),_:1})]),x("div",Ye,[c[16]||(c[16]=x("span",{class:"access-label"},"前往",-1)),x("span",He,y(Fa.value),1)])],2)])])]),gl("statistics")?(v(),C("div",{key:1,class:T(["card stats-card",`stats-card-${l.channelType}`])},[x("div",Ge,[r($(e),{size:14},{default:m(()=>[r($(J))]),_:1}),c[17]||(c[17]=x("h3",{class:"card-title"},"今日数据",-1))]),x("div",We,[x("div",Ze,[x("div",Be,[c[19]||(c[19]=x("div",{class:"stat-icon-dot requests"},null,-1)),x("div",Qe,[c[18]||(c[18]=x("span",{class:"stat-label"},"请求",-1)),x("span",{class:T(["stat-value",{animating:Ra.value.requests}])},y(Ja.value.requests),3)])]),x("div",Xe,[c[21]||(c[21]=x("div",{class:"stat-icon-dot tokens"},null,-1)),x("div",ea,[c[20]||(c[20]=x("span",{class:"stat-label"},"总 Tokens",-1)),x("span",{class:T(["stat-value",{animating:Ra.value.tokens}])},y((g=Ja.value.tokens,g>=1e6?(g/1e6).toFixed(1)+"M":g>=1e3?(g/1e3).toFixed(1)+"K":g.toString())),3)])]),x("div",aa,[c[23]||(c[23]=x("div",{class:"stat-icon-dot cost"},null,-1)),x("div",la,[c[22]||(c[22]=x("span",{class:"stat-label"},"成本 / USD",-1)),x("span",{class:T(["stat-value",{animating:Ra.value.cost}])},y((h=Ja.value.cost,!h||Number.isNaN(h)?"$0":"$"+Number(h).toFixed(3))),3)])])])])],2)):s("",!0),gl("statistics")&&Object.keys(Ya.value).length>0?(v(),C("div",{key:2,class:T(["card chart-card",`chart-card-${l.channelType}`])},[r(d,{"default-expanded-names":[],accordion:""})],2)):s("",!0),Qa.value&&kl()?(v(),C("div",sa,[x("div",na,[r($(e),{size:14},{default:m(()=>[r($(M))]),_:1}),c[24]||(c[24]=x("h3",{class:"card-title"},"实时日志",-1)),r($(a),{text:"",size:"tiny",onClick:w(Ll,["stop"]),style:{"margin-left":"auto"},title:"清空日志"},{icon:m(()=>[r($(e),{size:14},{default:m(()=>[r($(V))]),_:1})]),_:1})]),x("div",ta,[x("div",ca,[x("div",{class:T(["logs-table-header",`logs-header-${l.channelType}`])},[x("div",{class:T(["log-col col-channel",`col-channel-${Ea.value}`])},"渠道",2),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},"请求",2),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},"回复",2),"claude"===l.channelType?(v(),C(f,{key:0},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"写入",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"命中",2)],64)):"dsh"===l.channelType?(v(),C(f,{key:1},[x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},"缓存",2),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},"总计",2)],64)):"codex"===l.channelType?(v(),C(f,{key:2},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"推理",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"缓存",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"总计",2)],64)):"gemini"===l.channelType?(v(),C(f,{key:3},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"缓存",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"总计",2)],64)):"opencode"===l.channelType||"omp"===l.channelType?(v(),C(f,{key:4},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"推理",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"缓存",2),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},"总计",2)],64)):(v(),C("div",{key:5,class:T(["log-col col-token",`col-token-${l.channelType}`])},"总计",2)),x("div",{class:T(["log-col col-time",`col-time-${Ea.value}`])},"时间",2)],2),x("div",{class:"logs-container",ref_key:"logsContainer",ref:ll},[0===nl.value.length?(v(),C("div",oa,[r($(e),{size:32,depth:"3",style:{"margin-bottom":"8px"}},{default:m(()=>[r($(M))]),_:1}),r($(Z),{depth:"3",style:{"font-size":"12px","font-weight":"500"}},{default:m(()=>[...c[25]||(c[25]=[n("暂无实时日志",-1)])]),_:1}),r($(Z),{depth:"3",style:{"font-size":"11px","margin-top":"4px"}},{default:m(()=>[n(y("omp"===l.channelType?"ctx 将持续读取 OMP 原生会话日志":"开启代理后将显示请求记录"),1)]),_:1})])):s("",!0),(v(!0),C(f,null,i(nl.value,a=>(v(),C("div",{key:a.id,class:T(["log-row",{"action-row":"action"===a.type,"error-row":"error"===a.status,"new-log":a.isNew}]),title:Tl(a)},["action"===a.type?(v(),C("div",ra,[r($(e),{size:12,color:"#18a058"},{default:m(()=>[r($(H))]),_:1}),x("span",ua,y(a.message),1),x("span",da,y(a.time),1)])):"error"===a.status?(v(),C("div",va,[r($(e),{size:12,color:"#d03050"},{default:m(()=>[r($(P))]),_:1}),x("span",pa,y(a.channel)+": "+y(a.error||a.message||"请求失败"),1),x("span",ha,y(a.time),1)])):(v(),C(f,{key:2},[x("div",{class:T(["log-col col-channel",`col-channel-${Ea.value}`])},[r($(le),{size:"tiny",type:"success"},{default:m(()=>[n(y(a.channel),1)]),_:2},1024)],2),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},y(yl(a,"input")),3),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},y(yl(a,"output")),3),"claude"===l.channelType?(v(),C(f,{key:0},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"cacheCreation")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"cacheRead")),3)],64)):"dsh"===l.channelType?(v(),C(f,{key:1},[x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},y(yl(a,"cached")),3),x("div",{class:T(["log-col col-token",`col-token-${Ea.value}`])},y(yl(a,"total")),3)],64)):"codex"===l.channelType?(v(),C(f,{key:2},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"reasoning")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"cached")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"total")),3)],64)):"gemini"===l.channelType?(v(),C(f,{key:3},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"cached")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"total")),3)],64)):"opencode"===l.channelType||"omp"===l.channelType?(v(),C(f,{key:4},[x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"reasoning")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"cached")),3),x("div",{class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"total")),3)],64)):(v(),C("div",{key:5,class:T(["log-col col-token",`col-token-${l.channelType}`])},y(yl(a,"total")),3)),x("div",{class:T(["log-col col-time",`col-time-${Ea.value}`])},y(a.time),3)],64))],10,ia))),128))],512)])])])):s("",!0)])),Za.value?(v(),C("div",{key:1,class:T(["locked-overlay",`locked-${l.channelType}`])},[x("div",ya,[x("div",ga,[r($(e),{size:48},{default:m(()=>[r($(O))]),_:1})]),c[27]||(c[27]=x("h3",{class:"locked-title"},"该渠道已锁定",-1)),r($(Z),{depth:"3",class:"locked-hint"},{default:m(()=>[...c[26]||(c[26]=[n(" 点击上方按钮解锁以查看内容 ",-1)])]),_:1})])],2)):s("",!0),gl("sessions")?(v(),u(ne,{key:2,visible:Ga.value,"onUpdate:visible":c[1]||(c[1]=e=>Ga.value=e),channel:l.channelType},null,8,["visible","channel"])):s("",!0)]);var h,g}}},[["__scopeId","data-v-ef16bc6c"]]),ka={class:"dashboard-container"},Ta=l({__name:"Home",setup(e){const{uiConfig:a,updateConfig:l,loadUIConfig:s}=q(),n=L(),{enabledKeys:c}=Q({platformStore:n,configRef:a}),o=_([]);function i(e=c.value){o.value=e.map(e=>({type:e}))}async function p(){const e=o.value.map(e=>e.type);i(e),await l("enabledCliPlatforms",e)}function h(e){const l=e?.detail?.enabledCliPlatforms;Array.isArray(l)&&(a.value={...a.value,enabledCliPlatforms:[...l]}),i()}return d(async()=>{window.addEventListener("enabled-cli-platforms-change",h),await Promise.all([s(),n.load()]),i()}),t(()=>{window.removeEventListener("enabled-cli-platforms-change",h)}),(e,a)=>(v(),C("div",ka,[r($(z),{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=e=>o.value=e),class:"dashboard-grid","item-key":"type",animation:200,handle:".drag-handle",onEnd:p},{item:m(({element:e})=>[(v(),u(fa,{"channel-type":e.type,key:e.type},null,8,["channel-type"]))]),_:1},8,["modelValue"])]))}},[["__scopeId","data-v-5858e14d"]]);export{Ta as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{I as t,O as l,W as s,Z as i,_t as o,b as n,et as r,gt as d,ht as u,mt as p,p as c,st as m,w as g,x as h}from"./vue-vendor-BqZbbXHA.js";import{nt as f}from"./icons-B-AzZoeE.js";import{st as v}from"./index-
|
|
1
|
+
import{i as e,t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{I as t,O as l,W as s,Z as i,_t as o,b as n,et as r,gt as d,ht as u,mt as p,p as c,st as m,w as g,x as h}from"./vue-vendor-BqZbbXHA.js";import{nt as f}from"./icons-B-AzZoeE.js";import{st as v}from"./index-D1b2vDrs.js";import{n as y}from"./markdown-u082bbtj.js";import{a as w,c as k,i as b,n as x,o as j,r as _,s as E,t as M}from"./xml-CgY3RMlX.js";var V={key:0,class:"editor-container"},H=["innerHTML"],L={key:1,class:"placeholder-text"},B={class:"preview-hint"},I=a({__name:"MarkdownEditor",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"输入内容,支持 Markdown 格式..."},rows:{type:Number,default:10},minHeight:{type:Number,default:150},disabled:{type:Boolean,default:!1},defaultEditing:{type:Boolean,default:!1}},emits:["update:modelValue","edit","blur"],setup(a,{expose:I,emit:T}){const N=a,S=T,z=m(N.defaultEditing),D=m(null);function K(e,a){k.getLanguage(e)||k.registerLanguage(e,a)}K("javascript",E),K("typescript",j),K("json",w),K("bash",b),K("shell",b),K("sh",b),K("python",_),K("css",x),K("xml",M),K("html",M);const O=new y({html:!0,linkify:!0,typographer:!0,highlight:function(e,a){if(a&&k.getLanguage(a))try{return'<pre class="hljs"><code>'+k.highlight(e,{language:a,ignoreIllegals:!0}).value+"</code></pre>"}catch(t){}return'<pre class="hljs"><code>'+O.utils.escapeHtml(e)+"</code></pre>"}}),R=n(()=>O.render(N.modelValue||""));function U(){N.disabled||(z.value=!0,S("edit"),t(()=>{D.value?.focus()}))}function W(){z.value=!1,S("blur")}function Z(){setTimeout(()=>{W()},150)}function $(){W()}return i(()=>N.defaultEditing,e=>{e&&!z.value&&U()}),I({enterEditMode:U,exitEditMode:W,isEditing:z}),(t,i)=>(s(),g("div",{class:u(["markdown-editor",{"is-editing":z.value,"is-empty":!a.modelValue}])},[z.value?(s(),g("div",V,[l(p(v),{ref_key:"inputRef",ref:D,value:a.modelValue,type:"textarea",rows:a.rows,placeholder:a.placeholder,disabled:a.disabled,"onUpdate:value":i[0]||(i[0]=e=>t.$emit("update:modelValue",e)),onBlur:Z,onKeydown:c($,["esc"])},null,8,["value","rows","placeholder","disabled"]),i[1]||(i[1]=h("div",{class:"editor-hint"},[h("span",null,"按 Esc 退出编辑 | 支持 Markdown 格式")],-1))])):(s(),g("div",{key:1,class:"preview-container",style:d({minHeight:a.minHeight+"px"}),onDblclick:U},[a.modelValue?(s(),g("div",{key:0,class:"markdown-content",innerHTML:R.value},null,8,H)):(s(),g("div",L,o(a.placeholder||"双击编辑..."),1)),h("div",B,[l(p(e),{size:"12"},{default:r(()=>[l(p(f))]),_:1}),i[2]||(i[2]=h("span",null,"双击编辑",-1))])],36))],2))}},[["__scopeId","data-v-224a81d1"]]);export{I as t};
|