coding-tool-x 3.8.10 → 3.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +7 -1
  2. package/dist/web/assets/AgentsDrawer-CobzHziM.css +1 -0
  3. package/dist/web/assets/AgentsDrawer-MeGfH4I0.js +1 -0
  4. package/dist/web/assets/{Analytics-D5dUWXEa.js → Analytics-DTIvvMXu.js} +1 -1
  5. package/dist/web/assets/{AssetPathField-CLqalYv-.js → AssetPathField-jv-lopQ3.js} +1 -1
  6. package/dist/web/assets/{ChatHistoryDrawer-C1At65O3.js → ChatHistoryDrawer-T4OVnJzM.js} +1 -1
  7. package/dist/web/assets/{CollapseItem-CVWojShK.js → CollapseItem-P6BvSxEu.js} +1 -1
  8. package/dist/web/assets/{CommandsDrawer-BEoypGBf.js → CommandsDrawer-DtFJRtow.js} +1 -1
  9. package/dist/web/assets/{ConfigExportDrawer-DBvFDDWK.js → ConfigExportDrawer-Di7KXhVS.js} +1 -1
  10. package/dist/web/assets/{ConfigTemplates-BpaWG-iC.js → ConfigTemplates-VdKE5Kp0.js} +1 -1
  11. package/dist/web/assets/{ConfigTemplatesDrawer-C2lvyKMf.js → ConfigTemplatesDrawer-bQvPnUQ0.js} +1 -1
  12. package/dist/web/assets/{ConfigTemplatesPanel-CorOY7kY.js → ConfigTemplatesPanel-ChdyQ3C6.js} +1 -1
  13. package/dist/web/assets/{FavoritesDrawer-uW88N6te.js → FavoritesDrawer-A25XfI7C.js} +1 -1
  14. package/dist/web/assets/{GatewayConvertDrawer-i5Wt9Dd9.js → GatewayConvertDrawer-TSJPvY4f.js} +1 -1
  15. package/dist/web/assets/{Home-BIxWvm29.js → Home-CzB85lKE.js} +1 -1
  16. package/dist/web/assets/{MarkdownEditor-Ul0bSGj-.js → MarkdownEditor-BXwTqbMo.js} +1 -1
  17. package/dist/web/assets/{McpDrawer-Cc2xq77I.js → McpDrawer-DIaiFq4R.js} +1 -1
  18. package/dist/web/assets/{McpFormDrawer-DLHX_nrI.js → McpFormDrawer-CQgTYAux.js} +1 -1
  19. package/dist/web/assets/{PluginManager-BGQ0xF2F.js → PluginManager-BkGrr21J.js} +1 -1
  20. package/dist/web/assets/{PluginsDrawer-STwHEqiF.js → PluginsDrawer-Bq1JkM5r.js} +1 -1
  21. package/dist/web/assets/{PluginsPanel-1zuNP7da.js → PluginsPanel-Clz1r67v.js} +1 -1
  22. package/dist/web/assets/{ProjectList-_pe2nk9c.js → ProjectList-QIC7-9ic.js} +1 -1
  23. package/dist/web/assets/{PromptsDrawer-CJN1xZk7.js → PromptsDrawer-BLeUYZWW.js} +1 -1
  24. package/dist/web/assets/{RecentSessionsDrawer-DX1HI8Nm.js → RecentSessionsDrawer-yOpScIwI.js} +1 -1
  25. package/dist/web/assets/{SessionCard-Op6PHvi0.js → SessionCard-DeKRHAzu.js} +1 -1
  26. package/dist/web/assets/{SessionList-Da_TAEYr.js → SessionList-B0fPT_VB.js} +1 -1
  27. package/dist/web/assets/SettingsDrawer-BFzaxbgC.css +1 -0
  28. package/dist/web/assets/SettingsDrawer-DpZoDj3M.js +1 -0
  29. package/dist/web/assets/{SkillManager-PcAa5EbF.js → SkillManager-BpPqV2o4.js} +1 -1
  30. package/dist/web/assets/{SkillsDrawer-DPdU4p6C.js → SkillsDrawer-BgMlJbgS.js} +1 -1
  31. package/dist/web/assets/{SkillsPanel-B9qzRqjd.js → SkillsPanel-CK-pSSHU.js} +1 -1
  32. package/dist/web/assets/{Upload-e1M9Yp5z.js → Upload-DtuQ7ady.js} +1 -1
  33. package/dist/web/assets/{WorkspaceDrawer-oS6mB1VZ.js → WorkspaceDrawer-Bu5mOGsF.js} +1 -1
  34. package/dist/web/assets/{WorkspaceManager-6VvRWe3r.js → WorkspaceManager-D1mhnNV-.js} +1 -1
  35. package/dist/web/assets/{WorkspacePanel-CYq0Z8iY.js → WorkspacePanel-BIrkMC_5.js} +1 -1
  36. package/dist/web/assets/{index-Bn8BUnwP.css → index-B86H0_5y.css} +1 -1
  37. package/dist/web/assets/{index-BlUXw84U.js → index-Bw6YXbBA.js} +2 -2
  38. package/dist/web/assets/{useResponsiveDrawer-ChHZrTfl.js → useResponsiveDrawer-C-UacYVP.js} +1 -1
  39. package/dist/web/index.html +2 -2
  40. package/docs/analytics.png +0 -0
  41. package/docs/home.png +0 -0
  42. package/package.json +1 -1
  43. package/src/platforms/agents-service.js +50 -12
  44. package/src/platforms/drivers/omp/channels-implementation.js +1 -1
  45. package/src/platforms/drivers/omp/gateway.js +1 -1
  46. package/src/platforms/drivers/omp/model-role-settings.js +235 -0
  47. package/src/platforms/manifests/omp.json +3 -3
  48. package/src/platforms/remote-notification-providers.js +5 -5
  49. package/src/server/api/settings.js +33 -5
  50. package/src/server/services/model-definition-schema.js +2 -2
  51. package/dist/web/assets/AgentsDrawer-Bam7kBjG.js +0 -1
  52. package/dist/web/assets/AgentsDrawer-Pw2k-ZAa.css +0 -1
  53. package/dist/web/assets/SettingsDrawer-DKLd4Sjy.js +0 -1
  54. package/dist/web/assets/SettingsDrawer-Dw5NUgHC.css +0 -1
@@ -1 +1 @@
1
- import{Ct as e,D as t,Dt as n,Lt as a,N as r,Pt as o,Qt as i,Tt as s,Xt as l,Yt as d,bn as b,dn as c,dt as p,gn as f,gt as u,hn as v,ht as g,i as h,it as x,j as m,ln as y,s as w,st as $,vn as C,xn as z,yn as R}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as S,C as T,D as P,F as W,G as _,I as j,M as L,N as A,O as k,Q as B,V as E,W as N,Z as O,_t as H,b as D,dt as F,et as I,f as V,g as M,m as X,mt as U,st as Y,tt as q,u as G,w as Q,x as Z,y as J}from"./vue-vendor-BqZbbXHA.js";import{t as K}from"./client-BgcNg4Bt.js";import{$ as ee,rt as te}from"./icons-B-AzZoeE.js";import{C as ne,E as ae,M as re,T as oe,b as ie}from"./use-message-DBsCm7FJ.js";import{B as se,T as le,Y as de,_t as be,k as ce,vt as pe,w as fe}from"./index-BlUXw84U.js";import{t as ue}from"./clipboard-B46yyoz_.js";var ve=oe(".v-x-scroll",{overflow:"auto",scrollbarWidth:"none"},[oe("&::-webkit-scrollbar",{width:0,height:0})]),ge=S({name:"XScroll",props:{disabled:Boolean,onScroll:Function},setup(){const e=Y(null);const t=a();return ve.mount({id:"vueuc/x-scroll",head:!0,anchorMetaName:ae,ssr:t}),Object.assign({selfRef:e,handleWheel:function(e){e.currentTarget.offsetWidth<e.currentTarget.scrollWidth&&0!==e.deltaY&&(e.currentTarget.scrollLeft+=e.deltaY+e.deltaX,e.preventDefault())}},{scrollTo(...t){var n;null===(n=e.value)||void 0===n||n.scrollTo(...t)}})},render(){return L("div",{ref:"selfRef",onScroll:this.onScroll,onWheel:this.disabled?void 0:this.handleWheel,class:"v-x-scroll"},this.$slots)}}),he=/\s/;var xe=/^\s+/;function me(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&he.test(e.charAt(t)););return t}(e)+1).replace(xe,""):e}var ye=/^[-+]0x[0-9a-f]+$/i,we=/^0b[01]+$/i,$e=/^0o[0-7]+$/i,Ce=parseInt;function ze(e){if("number"==typeof e)return e;if($(e))return NaN;if(x(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=x(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=me(e);var n=we.test(e);return n||$e.test(e)?Ce(e.slice(2),n?2:8):ye.test(e)?NaN:+e}var Re=function(){return p.Date.now()},Se=Math.max,Te=Math.min;function Pe(e,t,n){var a,r,o,i,s,l,d=0,b=!1,c=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function f(t){var n=a,o=r;return a=r=void 0,d=t,i=e.apply(o,n)}function u(e){var n=e-l;return void 0===l||n>=t||n<0||c&&e-d>=o}function v(){var e=Re();if(u(e))return g(e);s=setTimeout(v,function(e){var n=t-(e-l);return c?Te(n,o-(e-d)):n}(e))}function g(e){return s=void 0,p&&a?f(e):(a=r=void 0,i)}function h(){var e=Re(),n=u(e);if(a=arguments,r=this,l=e,n){if(void 0===s)return function(e){return d=e,s=setTimeout(v,t),b?f(e):i}(l);if(c)return clearTimeout(s),s=setTimeout(v,t),f(l)}return void 0===s&&(s=setTimeout(v,t)),i}return t=ze(t)||0,x(n)&&(b=!!n.leading,o=(c="maxWait"in n)?Se(ze(n.maxWait)||0,t):o,p="trailing"in n?!!n.trailing:p),h.cancel=function(){void 0!==s&&clearTimeout(s),d=0,a=l=r=s=void 0},h.flush=function(){return void 0===s?i:g(Re())},h}var We=d("n-tabs"),_e={tab:[String,Number,Object,Function],name:{type:[String,Number],required:!0},disabled:Boolean,displayDirective:{type:String,default:"if"},closable:{type:Boolean,default:void 0},tabProps:Object,label:[String,Number,Object,Function]},je=S({__TAB_PANE__:!0,name:"TabPane",alias:["TabPanel"],props:_e,slots:Object,setup(e){const t=A(We,null);return t||n("tab-pane","`n-tab-pane` must be placed inside `n-tabs`."),{style:t.paneStyleRef,class:t.paneClassRef,mergedClsPrefix:t.mergedClsPrefixRef}},render(){return L("div",{class:[`${this.mergedClsPrefix}-tab-pane`,this.class],style:this.style},this.$slots)}}),Le=S({__TAB__:!0,inheritAttrs:!1,name:"Tab",props:Object.assign({internalLeftPadded:Boolean,internalAddable:Boolean,internalCreatedByPane:Boolean},pe(_e,["displayDirective"])),setup(e){const{mergedClsPrefixRef:t,valueRef:n,typeRef:a,closableRef:r,tabStyleRef:o,addTabStyleRef:i,tabClassRef:s,addTabClassRef:l,tabChangeIdRef:d,onBeforeLeaveRef:b,triggerRef:c,handleAdd:p,activateTab:f,handleClose:u}=A(We);return{trigger:c,mergedClosable:D(()=>{if(e.internalAddable)return!1;const{closable:t}=e;return void 0===t?r.value:t}),style:o,addStyle:i,tabClass:s,addTabClass:l,clsPrefix:t,value:n,type:a,handleClose(t){t.stopPropagation(),e.disabled||u(e.name)},activateTab(){if(e.disabled)return;if(e.internalAddable)return void p();const{name:t}=e,a=++d.id;if(t!==n.value){const{value:r}=b;r?Promise.resolve(r(e.name,n.value)).then(e=>{e&&d.id===a&&f(t)}):f(t)}}}},render(){const{internalAddable:e,clsPrefix:n,name:a,disabled:r,label:o,tab:i,value:s,mergedClosable:l,trigger:d,$slots:{default:b}}=this,c=null!=o?o:i;return L("div",{class:`${n}-tabs-tab-wrapper`},this.internalLeftPadded?L("div",{class:`${n}-tabs-tab-pad`}):null,L("div",Object.assign({key:a,"data-name":a,"data-disabled":!!r||void 0},W({class:[`${n}-tabs-tab`,s===a&&`${n}-tabs-tab--active`,r&&`${n}-tabs-tab--disabled`,l&&`${n}-tabs-tab--closable`,e&&`${n}-tabs-tab--addable`,e?this.addTabClass:this.tabClass],onClick:"click"===d?this.activateTab:void 0,onMouseenter:"hover"===d?this.activateTab:void 0,style:e?this.addStyle:this.style},this.internalCreatedByPane?this.tabProps||{}:this.$attrs)),L("span",{class:`${n}-tabs-tab__label`},e?L(M,null,L("div",{class:`${n}-tabs-tab__height-placeholder`}," "),L(m,{clsPrefix:n},{default:()=>L(be,null)})):b?b():"object"==typeof c?c:ie(null!=c?c:a)),l&&"card"===this.type?L(t,{clsPrefix:n,class:`${n}-tabs-tab__close`,onClick:this.handleClose,disabled:r}):null))}}),Ae=f("tabs","\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n transition:\n background-color .3s var(--n-bezier),\n border-color .3s var(--n-bezier);\n",[R("segment-type",[f("tabs-rail",[v("&.transition-disabled",[f("tabs-capsule","\n transition: none;\n ")])])]),R("top",[f("tab-pane","\n padding: var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left);\n ")]),R("left",[f("tab-pane","\n padding: var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left) var(--n-pane-padding-top);\n ")]),R("left, right","\n flex-direction: row;\n ",[f("tabs-bar","\n width: 2px;\n right: 0;\n transition:\n top .2s var(--n-bezier),\n max-height .2s var(--n-bezier),\n background-color .3s var(--n-bezier);\n "),f("tabs-tab","\n padding: var(--n-tab-padding-vertical); \n ")]),R("right","\n flex-direction: row-reverse;\n ",[f("tab-pane","\n padding: var(--n-pane-padding-left) var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom);\n "),f("tabs-bar","\n left: 0;\n ")]),R("bottom","\n flex-direction: column-reverse;\n justify-content: flex-end;\n ",[f("tab-pane","\n padding: var(--n-pane-padding-bottom) var(--n-pane-padding-right) var(--n-pane-padding-top) var(--n-pane-padding-left);\n "),f("tabs-bar","\n top: 0;\n ")]),f("tabs-rail","\n position: relative;\n padding: 3px;\n border-radius: var(--n-tab-border-radius);\n width: 100%;\n background-color: var(--n-color-segment);\n transition: background-color .3s var(--n-bezier);\n display: flex;\n align-items: center;\n ",[f("tabs-capsule","\n border-radius: var(--n-tab-border-radius);\n position: absolute;\n pointer-events: none;\n background-color: var(--n-tab-color-segment);\n box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .08);\n transition: transform 0.3s var(--n-bezier);\n "),f("tabs-tab-wrapper","\n flex-basis: 0;\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n ",[f("tabs-tab","\n overflow: hidden;\n border-radius: var(--n-tab-border-radius);\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n ",[R("active","\n font-weight: var(--n-font-weight-strong);\n color: var(--n-tab-text-color-active);\n "),v("&:hover","\n color: var(--n-tab-text-color-hover);\n ")])])]),R("flex",[f("tabs-nav","\n width: 100%;\n position: relative;\n ",[f("tabs-wrapper","\n width: 100%;\n ",[f("tabs-tab","\n margin-right: 0;\n ")])])]),f("tabs-nav","\n box-sizing: border-box;\n line-height: 1.5;\n display: flex;\n transition: border-color .3s var(--n-bezier);\n ",[C("prefix, suffix","\n display: flex;\n align-items: center;\n "),C("prefix","padding-right: 16px;"),C("suffix","padding-left: 16px;")]),R("top, bottom",[v(">",[f("tabs-nav",[f("tabs-nav-scroll-wrapper",[v("&::before","\n top: 0;\n bottom: 0;\n left: 0;\n width: 20px;\n "),v("&::after","\n top: 0;\n bottom: 0;\n right: 0;\n width: 20px;\n "),R("shadow-start",[v("&::before","\n box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, .12);\n ")]),R("shadow-end",[v("&::after","\n box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, .12);\n ")])])])])]),R("left, right",[f("tabs-nav-scroll-content","\n flex-direction: column;\n "),v(">",[f("tabs-nav",[f("tabs-nav-scroll-wrapper",[v("&::before","\n top: 0;\n left: 0;\n right: 0;\n height: 20px;\n "),v("&::after","\n bottom: 0;\n left: 0;\n right: 0;\n height: 20px;\n "),R("shadow-start",[v("&::before","\n box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, .12);\n ")]),R("shadow-end",[v("&::after","\n box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, .12);\n ")])])])])]),f("tabs-nav-scroll-wrapper","\n flex: 1;\n position: relative;\n overflow: hidden;\n ",[f("tabs-nav-y-scroll","\n height: 100%;\n width: 100%;\n overflow-y: auto; \n scrollbar-width: none;\n ",[v("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb","\n width: 0;\n height: 0;\n display: none;\n ")]),v("&::before, &::after",'\n transition: box-shadow .3s var(--n-bezier);\n pointer-events: none;\n content: "";\n position: absolute;\n z-index: 1;\n ')]),f("tabs-nav-scroll-content","\n display: flex;\n position: relative;\n min-width: 100%;\n min-height: 100%;\n width: fit-content;\n box-sizing: border-box;\n "),f("tabs-wrapper","\n display: inline-flex;\n flex-wrap: nowrap;\n position: relative;\n "),f("tabs-tab-wrapper","\n display: flex;\n flex-wrap: nowrap;\n flex-shrink: 0;\n flex-grow: 0;\n "),f("tabs-tab","\n cursor: pointer;\n white-space: nowrap;\n flex-wrap: nowrap;\n display: inline-flex;\n align-items: center;\n color: var(--n-tab-text-color);\n font-size: var(--n-tab-font-size);\n background-clip: padding-box;\n padding: var(--n-tab-padding);\n transition:\n box-shadow .3s var(--n-bezier),\n color .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n border-color .3s var(--n-bezier);\n ",[R("disabled",{cursor:"not-allowed"}),C("close","\n margin-left: 6px;\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n "),C("label","\n display: flex;\n align-items: center;\n z-index: 1;\n ")]),f("tabs-bar","\n position: absolute;\n bottom: 0;\n height: 2px;\n border-radius: 1px;\n background-color: var(--n-bar-color);\n transition:\n left .2s var(--n-bezier),\n max-width .2s var(--n-bezier),\n opacity .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n ",[v("&.transition-disabled","\n transition: none;\n "),R("disabled","\n background-color: var(--n-tab-text-color-disabled)\n ")]),f("tabs-pane-wrapper","\n position: relative;\n overflow: hidden;\n transition: max-height .2s var(--n-bezier);\n "),f("tab-pane","\n color: var(--n-pane-text-color);\n width: 100%;\n transition:\n color .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n opacity .2s var(--n-bezier);\n left: 0;\n right: 0;\n top: 0;\n ",[v("&.next-transition-leave-active, &.prev-transition-leave-active, &.next-transition-enter-active, &.prev-transition-enter-active","\n transition:\n color .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n transform .2s var(--n-bezier),\n opacity .2s var(--n-bezier);\n "),v("&.next-transition-leave-active, &.prev-transition-leave-active","\n position: absolute;\n "),v("&.next-transition-enter-from, &.prev-transition-leave-to","\n transform: translateX(32px);\n opacity: 0;\n "),v("&.next-transition-leave-to, &.prev-transition-enter-from","\n transform: translateX(-32px);\n opacity: 0;\n "),v("&.next-transition-leave-from, &.next-transition-enter-to, &.prev-transition-leave-from, &.prev-transition-enter-to","\n transform: translateX(0);\n opacity: 1;\n ")]),f("tabs-tab-pad","\n box-sizing: border-box;\n width: var(--n-tab-gap);\n flex-grow: 0;\n flex-shrink: 0;\n "),R("line-type, bar-type",[f("tabs-tab","\n font-weight: var(--n-tab-font-weight);\n box-sizing: border-box;\n vertical-align: bottom;\n ",[v("&:hover",{color:"var(--n-tab-text-color-hover)"}),R("active","\n color: var(--n-tab-text-color-active);\n font-weight: var(--n-tab-font-weight-active);\n "),R("disabled",{color:"var(--n-tab-text-color-disabled)"})])]),f("tabs-nav",[R("line-type",[R("top",[C("prefix, suffix","\n border-bottom: 1px solid var(--n-tab-border-color);\n "),f("tabs-nav-scroll-content","\n border-bottom: 1px solid var(--n-tab-border-color);\n "),f("tabs-bar","\n bottom: -1px;\n ")]),R("left",[C("prefix, suffix","\n border-right: 1px solid var(--n-tab-border-color);\n "),f("tabs-nav-scroll-content","\n border-right: 1px solid var(--n-tab-border-color);\n "),f("tabs-bar","\n right: -1px;\n ")]),R("right",[C("prefix, suffix","\n border-left: 1px solid var(--n-tab-border-color);\n "),f("tabs-nav-scroll-content","\n border-left: 1px solid var(--n-tab-border-color);\n "),f("tabs-bar","\n left: -1px;\n ")]),R("bottom",[C("prefix, suffix","\n border-top: 1px solid var(--n-tab-border-color);\n "),f("tabs-nav-scroll-content","\n border-top: 1px solid var(--n-tab-border-color);\n "),f("tabs-bar","\n top: -1px;\n ")]),C("prefix, suffix","\n transition: border-color .3s var(--n-bezier);\n "),f("tabs-nav-scroll-content","\n transition: border-color .3s var(--n-bezier);\n "),f("tabs-bar","\n border-radius: 0;\n ")]),R("card-type",[C("prefix, suffix","\n transition: border-color .3s var(--n-bezier);\n "),f("tabs-pad","\n flex-grow: 1;\n transition: border-color .3s var(--n-bezier);\n "),f("tabs-tab-pad","\n transition: border-color .3s var(--n-bezier);\n "),f("tabs-tab","\n font-weight: var(--n-tab-font-weight);\n border: 1px solid var(--n-tab-border-color);\n background-color: var(--n-tab-color);\n box-sizing: border-box;\n position: relative;\n vertical-align: bottom;\n display: flex;\n justify-content: space-between;\n font-size: var(--n-tab-font-size);\n color: var(--n-tab-text-color);\n ",[R("addable","\n padding-left: 8px;\n padding-right: 8px;\n font-size: 16px;\n justify-content: center;\n ",[C("height-placeholder","\n width: 0;\n font-size: var(--n-tab-font-size);\n "),b("disabled",[v("&:hover","\n color: var(--n-tab-text-color-hover);\n ")])]),R("closable","padding-right: 8px;"),R("active","\n background-color: #0000;\n font-weight: var(--n-tab-font-weight-active);\n color: var(--n-tab-text-color-active);\n "),R("disabled","color: var(--n-tab-text-color-disabled);")])]),R("left, right","\n flex-direction: column; \n ",[C("prefix, suffix","\n padding: var(--n-tab-padding-vertical);\n "),f("tabs-wrapper","\n flex-direction: column;\n "),f("tabs-tab-wrapper","\n flex-direction: column;\n ",[f("tabs-tab-pad","\n height: var(--n-tab-gap-vertical);\n width: 100%;\n ")])]),R("top",[R("card-type",[f("tabs-scroll-padding","border-bottom: 1px solid var(--n-tab-border-color);"),C("prefix, suffix","\n border-bottom: 1px solid var(--n-tab-border-color);\n "),f("tabs-tab","\n border-top-left-radius: var(--n-tab-border-radius);\n border-top-right-radius: var(--n-tab-border-radius);\n ",[R("active","\n border-bottom: 1px solid #0000;\n ")]),f("tabs-tab-pad","\n border-bottom: 1px solid var(--n-tab-border-color);\n "),f("tabs-pad","\n border-bottom: 1px solid var(--n-tab-border-color);\n ")])]),R("left",[R("card-type",[f("tabs-scroll-padding","border-right: 1px solid var(--n-tab-border-color);"),C("prefix, suffix","\n border-right: 1px solid var(--n-tab-border-color);\n "),f("tabs-tab","\n border-top-left-radius: var(--n-tab-border-radius);\n border-bottom-left-radius: var(--n-tab-border-radius);\n ",[R("active","\n border-right: 1px solid #0000;\n ")]),f("tabs-tab-pad","\n border-right: 1px solid var(--n-tab-border-color);\n "),f("tabs-pad","\n border-right: 1px solid var(--n-tab-border-color);\n ")])]),R("right",[R("card-type",[f("tabs-scroll-padding","border-left: 1px solid var(--n-tab-border-color);"),C("prefix, suffix","\n border-left: 1px solid var(--n-tab-border-color);\n "),f("tabs-tab","\n border-top-right-radius: var(--n-tab-border-radius);\n border-bottom-right-radius: var(--n-tab-border-radius);\n ",[R("active","\n border-left: 1px solid #0000;\n ")]),f("tabs-tab-pad","\n border-left: 1px solid var(--n-tab-border-color);\n "),f("tabs-pad","\n border-left: 1px solid var(--n-tab-border-color);\n ")])]),R("bottom",[R("card-type",[f("tabs-scroll-padding","border-top: 1px solid var(--n-tab-border-color);"),C("prefix, suffix","\n border-top: 1px solid var(--n-tab-border-color);\n "),f("tabs-tab","\n border-bottom-left-radius: var(--n-tab-border-radius);\n border-bottom-right-radius: var(--n-tab-border-radius);\n ",[R("active","\n border-top: 1px solid #0000;\n ")]),f("tabs-tab-pad","\n border-top: 1px solid var(--n-tab-border-color);\n "),f("tabs-pad","\n border-top: 1px solid var(--n-tab-border-color);\n ")])])])]),ke=function(e,t,n){var a=!0,r=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return x(n)&&(a="leading"in n?!!n.leading:a,r="trailing"in n?!!n.trailing:r),Pe(e,t,{leading:a,maxWait:t,trailing:r})},Be=S({name:"Tabs",props:Object.assign(Object.assign({},r.props),{value:[String,Number],defaultValue:[String,Number],trigger:{type:String,default:"click"},type:{type:String,default:"bar"},closable:Boolean,justifyContent:String,size:{type:String,default:"medium"},placement:{type:String,default:"top"},tabStyle:[String,Object],tabClass:String,addTabStyle:[String,Object],addTabClass:String,barWidth:Number,paneClass:String,paneStyle:[String,Object],paneWrapperClass:String,paneWrapperStyle:[String,Object],addable:[Boolean,Object],tabsPadding:{type:Number,default:0},animated:Boolean,onBeforeLeave:Function,onAdd:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onClose:[Function,Array],labelSize:String,activeName:[String,Number],onActiveNameChange:[Function,Array]}),slots:Object,setup(e,{slots:t}){var n,a,o,d;const{mergedClsPrefixRef:b,inlineThemeDisabled:p}=u(e),f=r("Tabs","-tabs",Ae,se,e,b),v=Y(null),h=Y(null),x=Y(null),m=Y(null),w=Y(null),$=Y(null),C=Y(!0),R=Y(!0),S=l(e,["labelSize","size"]),T=l(e,["activeName","value"]),P=Y(null!==(a=null!==(n=T.value)&&void 0!==n?n:e.defaultValue)&&void 0!==a?a:t.default?null===(d=null===(o=ne(t.default())[0])||void 0===o?void 0:o.props)||void 0===d?void 0:d.name:null),W=i(T,P),L={id:0},A=D(()=>{if(e.justifyContent&&"card"!==e.type)return{display:"flex",justifyContent:e.justifyContent}});function k(){var e;const{value:t}=W;return null===t?null:null===(e=v.value)||void 0===e?void 0:e.querySelector(`[data-name="${t}"]`)}function N(e){const{value:t}=h;if(t)for(const n of e)t.style[n]=""}function H(){if("card"===e.type)return;const t=k();t?function(t){if("card"===e.type)return;const{value:n}=h;if(!n)return;const a="0"===n.style.opacity;if(t){const r=`${b.value}-tabs-bar--disabled`,{barWidth:o,placement:i}=e;if("true"===t.dataset.disabled?n.classList.add(r):n.classList.remove(r),["top","bottom"].includes(i)){if(N(["top","maxHeight","height"]),"number"==typeof o&&t.offsetWidth>=o){const e=Math.floor((t.offsetWidth-o)/2)+t.offsetLeft;n.style.left=`${e}px`,n.style.maxWidth=`${o}px`}else n.style.left=`${t.offsetLeft}px`,n.style.maxWidth=`${t.offsetWidth}px`;n.style.width="8192px",a&&(n.style.transition="none"),n.offsetWidth,a&&(n.style.transition="",n.style.opacity="1")}else{if(N(["left","maxWidth","width"]),"number"==typeof o&&t.offsetHeight>=o){const e=Math.floor((t.offsetHeight-o)/2)+t.offsetTop;n.style.top=`${e}px`,n.style.maxHeight=`${o}px`}else n.style.top=`${t.offsetTop}px`,n.style.maxHeight=`${t.offsetHeight}px`;n.style.height="8192px",a&&(n.style.transition="none"),n.offsetHeight,a&&(n.style.transition="",n.style.opacity="1")}}}(t):function(){if("card"===e.type)return;const{value:t}=h;t&&(t.style.opacity="0")}()}function I(){var e;const t=null===(e=w.value)||void 0===e?void 0:e.$el;if(!t)return;const n=k();if(!n)return;const{scrollLeft:a,offsetWidth:r}=t,{offsetLeft:o,offsetWidth:i}=n;a>o?t.scrollTo({top:0,left:o,behavior:"smooth"}):o+i>a+r&&t.scrollTo({top:0,left:o+i-r,behavior:"smooth"})}O(W,()=>{L.id=0,H(),I()});const V=Y(null);let M=0,X=null;const U={value:[]},q=Y("next");let G=!0;function Q(){const{value:e}=h;if(!e)return;G||(G=!1);const t="transition-disabled";e.classList.add(t),H(),e.classList.remove(t)}const Z=Y(null);function J({transitionDisabled:e}){const t=v.value;if(!t)return;e&&t.classList.add("transition-disabled");const n=k();n&&Z.value&&(Z.value.style.width=`${n.offsetWidth}px`,Z.value.style.height=`${n.offsetHeight}px`,Z.value.style.transform=`translateX(${n.offsetLeft-y(getComputedStyle(t).paddingLeft)}px)`,e&&Z.value.offsetWidth),e&&t.classList.remove("transition-disabled")}O([W],()=>{"segment"===e.type&&j(()=>{J({transitionDisabled:!1})})}),E(()=>{"segment"===e.type&&J({transitionDisabled:!0})});let K=0;const ee=ke(function(t){var n,a;if(0===t.contentRect.width&&0===t.contentRect.height)return;if(K===t.contentRect.width)return;K=t.contentRect.width;const{type:r}=e;if("line"!==r&&"bar"!==r||(G||(null===(n=e.justifyContent)||void 0===n?void 0:n.startsWith("space")))&&Q(),"segment"!==r){const{placement:t}=e;oe(("top"===t||"bottom"===t?null===(a=w.value)||void 0===a?void 0:a.$el:$.value)||null)}},64);O([()=>e.justifyContent,()=>e.size],()=>{j(()=>{const{type:t}=e;"line"!==t&&"bar"!==t||Q()})});const te=Y(!1);const ae=ke(function(t){var n;const{target:a,contentRect:{width:r,height:o}}=t,i=a.parentElement.parentElement.offsetWidth,s=a.parentElement.parentElement.offsetHeight,{placement:l}=e;if(te.value){const{value:e}=m;if(!e)return;"top"===l||"bottom"===l?i-r>e.$el.offsetWidth&&(te.value=!1):s-o>e.$el.offsetHeight&&(te.value=!1)}else"top"===l||"bottom"===l?i<r&&(te.value=!0):s<o&&(te.value=!0);oe((null===(n=w.value)||void 0===n?void 0:n.$el)||null)},64);function oe(t){if(!t)return;const{placement:n}=e;if("top"===n||"bottom"===n){const{scrollLeft:e,scrollWidth:n,offsetWidth:a}=t;C.value=e<=0,R.value=e+a>=n}else{const{scrollTop:e,scrollHeight:n,offsetHeight:a}=t;C.value=e<=0,R.value=e+a>=n}}const ie=ke(e=>{oe(e.target)},64);_(We,{triggerRef:F(e,"trigger"),tabStyleRef:F(e,"tabStyle"),tabClassRef:F(e,"tabClass"),addTabStyleRef:F(e,"addTabStyle"),addTabClassRef:F(e,"addTabClass"),paneClassRef:F(e,"paneClass"),paneStyleRef:F(e,"paneStyle"),mergedClsPrefixRef:b,typeRef:F(e,"type"),closableRef:F(e,"closable"),valueRef:W,tabChangeIdRef:L,onBeforeLeaveRef:F(e,"onBeforeLeave"),activateTab:function(t){const n=W.value;let a="next";for(const e of U.value){if(e===n)break;if(e===t){a="prev";break}}q.value=a,function(t){const{onActiveNameChange:n,onUpdateValue:a,"onUpdate:value":r}=e;n&&s(n,t);a&&s(a,t);r&&s(r,t);P.value=t}(t)},handleClose:function(t){const{onClose:n}=e;n&&s(n,t)},handleAdd:function(){const{onAdd:t}=e;t&&t(),j(()=>{const e=k(),{value:t}=w;e&&t&&t.scrollTo({left:e.offsetLeft,top:0,behavior:"smooth"})})}}),re(()=>{H(),I()}),B(()=>{const{value:e}=x;if(!e)return;const{value:t}=b,n=`${t}-tabs-nav-scroll-wrapper--shadow-start`,a=`${t}-tabs-nav-scroll-wrapper--shadow-end`;C.value?e.classList.remove(n):e.classList.add(n),R.value?e.classList.remove(a):e.classList.add(a)});const le={syncBarPosition:()=>{H()}},de=D(()=>{const{value:t}=S,{type:n}=e,a=`${t}${{card:"Card",bar:"Bar",line:"Line",segment:"Segment"}[n]}`,{self:{barColor:r,closeIconColor:o,closeIconColorHover:i,closeIconColorPressed:s,tabColor:l,tabBorderColor:d,paneTextColor:b,tabFontWeight:p,tabBorderRadius:u,tabFontWeightActive:v,colorSegment:g,fontWeightStrong:h,tabColorSegment:x,closeSize:m,closeIconSize:y,closeColorHover:w,closeColorPressed:$,closeBorderRadius:C,[z("panePadding",t)]:R,[z("tabPadding",a)]:T,[z("tabPaddingVertical",a)]:P,[z("tabGap",a)]:W,[z("tabGap",`${a}Vertical`)]:_,[z("tabTextColor",n)]:j,[z("tabTextColorActive",n)]:L,[z("tabTextColorHover",n)]:A,[z("tabTextColorDisabled",n)]:k,[z("tabFontSize",t)]:B},common:{cubicBezierEaseInOut:E}}=f.value;return{"--n-bezier":E,"--n-color-segment":g,"--n-bar-color":r,"--n-tab-font-size":B,"--n-tab-text-color":j,"--n-tab-text-color-active":L,"--n-tab-text-color-disabled":k,"--n-tab-text-color-hover":A,"--n-pane-text-color":b,"--n-tab-border-color":d,"--n-tab-border-radius":u,"--n-close-size":m,"--n-close-icon-size":y,"--n-close-color-hover":w,"--n-close-color-pressed":$,"--n-close-border-radius":C,"--n-close-icon-color":o,"--n-close-icon-color-hover":i,"--n-close-icon-color-pressed":s,"--n-tab-color":l,"--n-tab-font-weight":p,"--n-tab-font-weight-active":v,"--n-tab-padding":T,"--n-tab-padding-vertical":P,"--n-tab-gap":W,"--n-tab-gap-vertical":_,"--n-pane-padding-left":c(R,"left"),"--n-pane-padding-right":c(R,"right"),"--n-pane-padding-top":c(R,"top"),"--n-pane-padding-bottom":c(R,"bottom"),"--n-font-weight-strong":h,"--n-tab-color-segment":x}}),be=p?g("tabs",D(()=>`${S.value[0]}${e.type[0]}`),de,e):void 0;return Object.assign({mergedClsPrefix:b,mergedValue:W,renderedNames:new Set,segmentCapsuleElRef:Z,tabsPaneWrapperRef:V,tabsElRef:v,barElRef:h,addTabInstRef:m,xScrollInstRef:w,scrollWrapperElRef:x,addTabFixed:te,tabWrapperStyle:A,handleNavResize:ee,mergedSize:S,handleScroll:ie,handleTabsResize:ae,cssVars:p?void 0:de,themeClass:null==be?void 0:be.themeClass,animationDirection:q,renderNameListRef:U,yScrollElRef:$,handleSegmentResize:()=>{J({transitionDisabled:!0})},onAnimationBeforeLeave:function(e){const t=V.value;if(t){M=e.getBoundingClientRect().height;const n=`${M}px`,a=()=>{t.style.height=n,t.style.maxHeight=n};X?(a(),X(),X=null):X=a}},onAnimationEnter:function(e){const t=V.value;if(t){const n=e.getBoundingClientRect().height,a=()=>{document.body.offsetHeight,t.style.maxHeight=`${n}px`,t.style.height=`${Math.max(M,n)}px`};X?(X(),X=null,a()):X=a}},onAnimationAfterEnter:function(){const t=V.value;if(t){t.style.maxHeight="",t.style.height="";const{paneWrapperStyle:n}=e;if("string"==typeof n)t.style.cssText=n;else if(n){const{maxHeight:e,height:a}=n;void 0!==e&&(t.style.maxHeight=e),void 0!==a&&(t.style.height=a)}}},onRender:null==be?void 0:be.onRender},le)},render(){const{mergedClsPrefix:t,type:n,placement:a,addTabFixed:r,addable:i,mergedSize:s,renderNameListRef:l,onRender:d,paneWrapperClass:b,paneWrapperStyle:c,$slots:{default:p,prefix:f,suffix:u}}=this;null==d||d();const v=p?ne(p()).filter(e=>!0===e.type.__TAB_PANE__):[],g=p?ne(p()).filter(e=>!0===e.type.__TAB__):[],h=!g.length,x="card"===n,m="segment"===n,y=!x&&!m&&this.justifyContent;l.value=[];const w=()=>{const e=L("div",{style:this.tabWrapperStyle,class:`${t}-tabs-wrapper`},y?null:L("div",{class:`${t}-tabs-scroll-padding`,style:"top"===a||"bottom"===a?{width:`${this.tabsPadding}px`}:{height:`${this.tabsPadding}px`}}),h?v.map((e,t)=>(l.value.push(e.props.name),He(L(Le,Object.assign({},e.props,{internalCreatedByPane:!0,internalLeftPadded:0!==t&&(!y||"center"===y||"start"===y||"end"===y)}),e.children?{default:e.children.tab}:void 0)))):g.map((e,t)=>(l.value.push(e.props.name),He(0===t||y?e:Oe(e)))),!r&&i&&x?Ne(i,0!==(h?v.length:g.length)):null,y?null:L("div",{class:`${t}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}));return L("div",{ref:"tabsElRef",class:`${t}-tabs-nav-scroll-content`},x&&i?L(o,{onResize:this.handleTabsResize},{default:()=>e}):e,x?L("div",{class:`${t}-tabs-pad`}):null,x?null:L("div",{ref:"barElRef",class:`${t}-tabs-bar`}))},$=m?"top":a;return L("div",{class:[`${t}-tabs`,this.themeClass,`${t}-tabs--${n}-type`,`${t}-tabs--${s}-size`,y&&`${t}-tabs--flex`,`${t}-tabs--${$}`],style:this.cssVars},L("div",{class:[`${t}-tabs-nav--${n}-type`,`${t}-tabs-nav--${$}`,`${t}-tabs-nav`]},e(f,e=>e&&L("div",{class:`${t}-tabs-nav__prefix`},e)),m?L(o,{onResize:this.handleSegmentResize},{default:()=>L("div",{class:`${t}-tabs-rail`,ref:"tabsElRef"},L("div",{class:`${t}-tabs-capsule`,ref:"segmentCapsuleElRef"},L("div",{class:`${t}-tabs-wrapper`},L("div",{class:`${t}-tabs-tab`}))),h?v.map((e,t)=>(l.value.push(e.props.name),L(Le,Object.assign({},e.props,{internalCreatedByPane:!0,internalLeftPadded:0!==t}),e.children?{default:e.children.tab}:void 0))):g.map((e,t)=>(l.value.push(e.props.name),0===t?e:Oe(e))))}):L(o,{onResize:this.handleNavResize},{default:()=>L("div",{class:`${t}-tabs-nav-scroll-wrapper`,ref:"scrollWrapperElRef"},["top","bottom"].includes($)?L(ge,{ref:"xScrollInstRef",onScroll:this.handleScroll},{default:w}):L("div",{class:`${t}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:"yScrollElRef"},w()))}),r&&i&&x?Ne(i,!0):null,e(u,e=>e&&L("div",{class:`${t}-tabs-nav__suffix`},e))),h&&(!this.animated||"top"!==$&&"bottom"!==$?Ee(v,this.mergedValue,this.renderedNames):L("div",{ref:"tabsPaneWrapperRef",style:c,class:[`${t}-tabs-pane-wrapper`,b]},Ee(v,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection))))}});function Ee(e,t,n,a,r,o,i){const s=[];return e.forEach(e=>{const{name:a,displayDirective:r,"display-directive":o}=e.props,i=e=>r===e||o===e,l=t===a;if(void 0!==e.key&&(e.key=a),l||i("show")||i("show:lazy")&&n.has(a)){n.has(a)||n.add(a);const t=!i("if");s.push(t?q(e,[[V,l]]):e)}}),i?L(G,{name:`${i}-transition`,onBeforeLeave:a,onEnter:r,onAfterEnter:o},{default:()=>s}):s}function Ne(e,t){return L(Le,{ref:"addTabInstRef",key:"__addable",name:"__addable",internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:"object"==typeof e&&e.disabled})}function Oe(e){const t=J(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function He(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes("internalLeftPadded")||e.dynamicProps.push("internalLeftPadded"):e.dynamicProps=["internalLeftPadded"],e}function De(e,t={}){const n=t.platform||"",a=t.projectPath||"",r=fe(`config-registry:${e}`,n,t.scope||"",a);return le(r,t=>K.get(`/config-registry/${e}`,{signal:t}).then(e=>e.data),`config-registry:${e}`,`config-registry:${e}:${n}`)}async function Fe(e){return(await K.post(`/config-registry/${e}/import`)).data}async function Ie(e,t,n){const a=encodeURIComponent(t);return(await K.put(`/config-registry/${e}/${a}/toggle`,{enabled:n})).data}async function Ve(e,t,n,a){const r=encodeURIComponent(t);return(await K.put(`/config-registry/${e}/${r}/platform/${n}`,{enabled:a})).data}async function Me(e){return(await K.post(`/config-registry/${e}/sync`)).data}var Xe={key:0,class:"asset-detail-info-section"},Ue={class:"asset-detail-section-title"},Ye={class:"asset-detail-box asset-detail-path-box"},qe={class:"asset-detail-path-text"},Ge={__name:"AssetPathField",props:{path:{type:String,default:""},title:{type:String,default:"路径"}},setup(e){const t=e,n=D(()=>String(t.path||"").trim());async function a(){if(n.value)try{if("manual"===(await ue(n.value))?.method)return void ce.warning("自动复制失败,已弹出手动复制框");ce.success("已复制路径")}catch{ce.error("复制路径失败")}}return(t,r)=>n.value?(N(),Q("div",Xe,[Z("h3",Ue,H(e.title),1),Z("div",Ye,[k(U(h),{size:16,class:"asset-detail-path-icon"},{default:I(()=>[k(U(ee))]),_:1}),Z("code",qe,H(n.value),1),k(U(de),{trigger:"hover"},{trigger:I(()=>[k(U(w),{circle:"",quaternary:"",size:"tiny",class:"asset-detail-path-copy","aria-label":"复制路径",onClick:X(a,["stop"])},{icon:I(()=>[k(U(h),null,{default:I(()=>[k(U(te))]),_:1})]),_:1})]),default:I(()=>[r[0]||(r[0]=P(" 复制路径 ",-1))]),_:1})])])):T("",!0)}};export{Ie as a,je as c,Me as i,Fe as n,Ve as o,De as r,Be as s,Ge as t};
1
+ import{Ct as e,D as t,Dt as n,Lt as a,N as r,Pt as o,Qt as i,Tt as s,Xt as l,Yt as d,bn as b,dn as c,dt as p,gn as f,gt as u,hn as v,ht as g,i as h,it as x,j as m,ln as y,s as w,st as $,vn as C,xn as z,yn as R}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as S,C as T,D as P,F as W,G as _,I as j,M as L,N as A,O as k,Q as B,V as E,W as N,Z as O,_t as H,b as D,dt as F,et as I,f as V,g as M,m as X,mt as U,st as Y,tt as q,u as G,w as Q,x as Z,y as J}from"./vue-vendor-BqZbbXHA.js";import{t as K}from"./client-BgcNg4Bt.js";import{$ as ee,rt as te}from"./icons-B-AzZoeE.js";import{C as ne,E as ae,M as re,T as oe,b as ie}from"./use-message-DBsCm7FJ.js";import{B as se,T as le,Y as de,_t as be,k as ce,vt as pe,w as fe}from"./index-Bw6YXbBA.js";import{t as ue}from"./clipboard-B46yyoz_.js";var ve=oe(".v-x-scroll",{overflow:"auto",scrollbarWidth:"none"},[oe("&::-webkit-scrollbar",{width:0,height:0})]),ge=S({name:"XScroll",props:{disabled:Boolean,onScroll:Function},setup(){const e=Y(null);const t=a();return ve.mount({id:"vueuc/x-scroll",head:!0,anchorMetaName:ae,ssr:t}),Object.assign({selfRef:e,handleWheel:function(e){e.currentTarget.offsetWidth<e.currentTarget.scrollWidth&&0!==e.deltaY&&(e.currentTarget.scrollLeft+=e.deltaY+e.deltaX,e.preventDefault())}},{scrollTo(...t){var n;null===(n=e.value)||void 0===n||n.scrollTo(...t)}})},render(){return L("div",{ref:"selfRef",onScroll:this.onScroll,onWheel:this.disabled?void 0:this.handleWheel,class:"v-x-scroll"},this.$slots)}}),he=/\s/;var xe=/^\s+/;function me(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&he.test(e.charAt(t)););return t}(e)+1).replace(xe,""):e}var ye=/^[-+]0x[0-9a-f]+$/i,we=/^0b[01]+$/i,$e=/^0o[0-7]+$/i,Ce=parseInt;function ze(e){if("number"==typeof e)return e;if($(e))return NaN;if(x(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=x(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=me(e);var n=we.test(e);return n||$e.test(e)?Ce(e.slice(2),n?2:8):ye.test(e)?NaN:+e}var Re=function(){return p.Date.now()},Se=Math.max,Te=Math.min;function Pe(e,t,n){var a,r,o,i,s,l,d=0,b=!1,c=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function f(t){var n=a,o=r;return a=r=void 0,d=t,i=e.apply(o,n)}function u(e){var n=e-l;return void 0===l||n>=t||n<0||c&&e-d>=o}function v(){var e=Re();if(u(e))return g(e);s=setTimeout(v,function(e){var n=t-(e-l);return c?Te(n,o-(e-d)):n}(e))}function g(e){return s=void 0,p&&a?f(e):(a=r=void 0,i)}function h(){var e=Re(),n=u(e);if(a=arguments,r=this,l=e,n){if(void 0===s)return function(e){return d=e,s=setTimeout(v,t),b?f(e):i}(l);if(c)return clearTimeout(s),s=setTimeout(v,t),f(l)}return void 0===s&&(s=setTimeout(v,t)),i}return t=ze(t)||0,x(n)&&(b=!!n.leading,o=(c="maxWait"in n)?Se(ze(n.maxWait)||0,t):o,p="trailing"in n?!!n.trailing:p),h.cancel=function(){void 0!==s&&clearTimeout(s),d=0,a=l=r=s=void 0},h.flush=function(){return void 0===s?i:g(Re())},h}var We=d("n-tabs"),_e={tab:[String,Number,Object,Function],name:{type:[String,Number],required:!0},disabled:Boolean,displayDirective:{type:String,default:"if"},closable:{type:Boolean,default:void 0},tabProps:Object,label:[String,Number,Object,Function]},je=S({__TAB_PANE__:!0,name:"TabPane",alias:["TabPanel"],props:_e,slots:Object,setup(e){const t=A(We,null);return t||n("tab-pane","`n-tab-pane` must be placed inside `n-tabs`."),{style:t.paneStyleRef,class:t.paneClassRef,mergedClsPrefix:t.mergedClsPrefixRef}},render(){return L("div",{class:[`${this.mergedClsPrefix}-tab-pane`,this.class],style:this.style},this.$slots)}}),Le=S({__TAB__:!0,inheritAttrs:!1,name:"Tab",props:Object.assign({internalLeftPadded:Boolean,internalAddable:Boolean,internalCreatedByPane:Boolean},pe(_e,["displayDirective"])),setup(e){const{mergedClsPrefixRef:t,valueRef:n,typeRef:a,closableRef:r,tabStyleRef:o,addTabStyleRef:i,tabClassRef:s,addTabClassRef:l,tabChangeIdRef:d,onBeforeLeaveRef:b,triggerRef:c,handleAdd:p,activateTab:f,handleClose:u}=A(We);return{trigger:c,mergedClosable:D(()=>{if(e.internalAddable)return!1;const{closable:t}=e;return void 0===t?r.value:t}),style:o,addStyle:i,tabClass:s,addTabClass:l,clsPrefix:t,value:n,type:a,handleClose(t){t.stopPropagation(),e.disabled||u(e.name)},activateTab(){if(e.disabled)return;if(e.internalAddable)return void p();const{name:t}=e,a=++d.id;if(t!==n.value){const{value:r}=b;r?Promise.resolve(r(e.name,n.value)).then(e=>{e&&d.id===a&&f(t)}):f(t)}}}},render(){const{internalAddable:e,clsPrefix:n,name:a,disabled:r,label:o,tab:i,value:s,mergedClosable:l,trigger:d,$slots:{default:b}}=this,c=null!=o?o:i;return L("div",{class:`${n}-tabs-tab-wrapper`},this.internalLeftPadded?L("div",{class:`${n}-tabs-tab-pad`}):null,L("div",Object.assign({key:a,"data-name":a,"data-disabled":!!r||void 0},W({class:[`${n}-tabs-tab`,s===a&&`${n}-tabs-tab--active`,r&&`${n}-tabs-tab--disabled`,l&&`${n}-tabs-tab--closable`,e&&`${n}-tabs-tab--addable`,e?this.addTabClass:this.tabClass],onClick:"click"===d?this.activateTab:void 0,onMouseenter:"hover"===d?this.activateTab:void 0,style:e?this.addStyle:this.style},this.internalCreatedByPane?this.tabProps||{}:this.$attrs)),L("span",{class:`${n}-tabs-tab__label`},e?L(M,null,L("div",{class:`${n}-tabs-tab__height-placeholder`}," "),L(m,{clsPrefix:n},{default:()=>L(be,null)})):b?b():"object"==typeof c?c:ie(null!=c?c:a)),l&&"card"===this.type?L(t,{clsPrefix:n,class:`${n}-tabs-tab__close`,onClick:this.handleClose,disabled:r}):null))}}),Ae=f("tabs","\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n transition:\n background-color .3s var(--n-bezier),\n border-color .3s var(--n-bezier);\n",[R("segment-type",[f("tabs-rail",[v("&.transition-disabled",[f("tabs-capsule","\n transition: none;\n ")])])]),R("top",[f("tab-pane","\n padding: var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left);\n ")]),R("left",[f("tab-pane","\n padding: var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left) var(--n-pane-padding-top);\n ")]),R("left, right","\n flex-direction: row;\n ",[f("tabs-bar","\n width: 2px;\n right: 0;\n transition:\n top .2s var(--n-bezier),\n max-height .2s var(--n-bezier),\n background-color .3s var(--n-bezier);\n "),f("tabs-tab","\n padding: var(--n-tab-padding-vertical); \n ")]),R("right","\n flex-direction: row-reverse;\n ",[f("tab-pane","\n padding: var(--n-pane-padding-left) var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom);\n "),f("tabs-bar","\n left: 0;\n ")]),R("bottom","\n flex-direction: column-reverse;\n justify-content: flex-end;\n ",[f("tab-pane","\n padding: var(--n-pane-padding-bottom) var(--n-pane-padding-right) var(--n-pane-padding-top) var(--n-pane-padding-left);\n "),f("tabs-bar","\n top: 0;\n ")]),f("tabs-rail","\n position: relative;\n padding: 3px;\n border-radius: var(--n-tab-border-radius);\n width: 100%;\n background-color: var(--n-color-segment);\n transition: background-color .3s var(--n-bezier);\n display: flex;\n align-items: center;\n ",[f("tabs-capsule","\n border-radius: var(--n-tab-border-radius);\n position: absolute;\n pointer-events: none;\n background-color: var(--n-tab-color-segment);\n box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .08);\n transition: transform 0.3s var(--n-bezier);\n "),f("tabs-tab-wrapper","\n flex-basis: 0;\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n ",[f("tabs-tab","\n overflow: hidden;\n border-radius: var(--n-tab-border-radius);\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n ",[R("active","\n font-weight: var(--n-font-weight-strong);\n color: var(--n-tab-text-color-active);\n "),v("&:hover","\n color: var(--n-tab-text-color-hover);\n ")])])]),R("flex",[f("tabs-nav","\n width: 100%;\n position: relative;\n ",[f("tabs-wrapper","\n width: 100%;\n ",[f("tabs-tab","\n margin-right: 0;\n ")])])]),f("tabs-nav","\n box-sizing: border-box;\n line-height: 1.5;\n display: flex;\n transition: border-color .3s var(--n-bezier);\n ",[C("prefix, suffix","\n display: flex;\n align-items: center;\n "),C("prefix","padding-right: 16px;"),C("suffix","padding-left: 16px;")]),R("top, bottom",[v(">",[f("tabs-nav",[f("tabs-nav-scroll-wrapper",[v("&::before","\n top: 0;\n bottom: 0;\n left: 0;\n width: 20px;\n "),v("&::after","\n top: 0;\n bottom: 0;\n right: 0;\n width: 20px;\n "),R("shadow-start",[v("&::before","\n box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, .12);\n ")]),R("shadow-end",[v("&::after","\n box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, .12);\n ")])])])])]),R("left, right",[f("tabs-nav-scroll-content","\n flex-direction: column;\n "),v(">",[f("tabs-nav",[f("tabs-nav-scroll-wrapper",[v("&::before","\n top: 0;\n left: 0;\n right: 0;\n height: 20px;\n "),v("&::after","\n bottom: 0;\n left: 0;\n right: 0;\n height: 20px;\n "),R("shadow-start",[v("&::before","\n box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, .12);\n ")]),R("shadow-end",[v("&::after","\n box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, .12);\n ")])])])])]),f("tabs-nav-scroll-wrapper","\n flex: 1;\n position: relative;\n overflow: hidden;\n ",[f("tabs-nav-y-scroll","\n height: 100%;\n width: 100%;\n overflow-y: auto; \n scrollbar-width: none;\n ",[v("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb","\n width: 0;\n height: 0;\n display: none;\n ")]),v("&::before, &::after",'\n transition: box-shadow .3s var(--n-bezier);\n pointer-events: none;\n content: "";\n position: absolute;\n z-index: 1;\n ')]),f("tabs-nav-scroll-content","\n display: flex;\n position: relative;\n min-width: 100%;\n min-height: 100%;\n width: fit-content;\n box-sizing: border-box;\n "),f("tabs-wrapper","\n display: inline-flex;\n flex-wrap: nowrap;\n position: relative;\n "),f("tabs-tab-wrapper","\n display: flex;\n flex-wrap: nowrap;\n flex-shrink: 0;\n flex-grow: 0;\n "),f("tabs-tab","\n cursor: pointer;\n white-space: nowrap;\n flex-wrap: nowrap;\n display: inline-flex;\n align-items: center;\n color: var(--n-tab-text-color);\n font-size: var(--n-tab-font-size);\n background-clip: padding-box;\n padding: var(--n-tab-padding);\n transition:\n box-shadow .3s var(--n-bezier),\n color .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n border-color .3s var(--n-bezier);\n ",[R("disabled",{cursor:"not-allowed"}),C("close","\n margin-left: 6px;\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n "),C("label","\n display: flex;\n align-items: center;\n z-index: 1;\n ")]),f("tabs-bar","\n position: absolute;\n bottom: 0;\n height: 2px;\n border-radius: 1px;\n background-color: var(--n-bar-color);\n transition:\n left .2s var(--n-bezier),\n max-width .2s var(--n-bezier),\n opacity .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n ",[v("&.transition-disabled","\n transition: none;\n "),R("disabled","\n background-color: var(--n-tab-text-color-disabled)\n ")]),f("tabs-pane-wrapper","\n position: relative;\n overflow: hidden;\n transition: max-height .2s var(--n-bezier);\n "),f("tab-pane","\n color: var(--n-pane-text-color);\n width: 100%;\n transition:\n color .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n opacity .2s var(--n-bezier);\n left: 0;\n right: 0;\n top: 0;\n ",[v("&.next-transition-leave-active, &.prev-transition-leave-active, &.next-transition-enter-active, &.prev-transition-enter-active","\n transition:\n color .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n transform .2s var(--n-bezier),\n opacity .2s var(--n-bezier);\n "),v("&.next-transition-leave-active, &.prev-transition-leave-active","\n position: absolute;\n "),v("&.next-transition-enter-from, &.prev-transition-leave-to","\n transform: translateX(32px);\n opacity: 0;\n "),v("&.next-transition-leave-to, &.prev-transition-enter-from","\n transform: translateX(-32px);\n opacity: 0;\n "),v("&.next-transition-leave-from, &.next-transition-enter-to, &.prev-transition-leave-from, &.prev-transition-enter-to","\n transform: translateX(0);\n opacity: 1;\n ")]),f("tabs-tab-pad","\n box-sizing: border-box;\n width: var(--n-tab-gap);\n flex-grow: 0;\n flex-shrink: 0;\n "),R("line-type, bar-type",[f("tabs-tab","\n font-weight: var(--n-tab-font-weight);\n box-sizing: border-box;\n vertical-align: bottom;\n ",[v("&:hover",{color:"var(--n-tab-text-color-hover)"}),R("active","\n color: var(--n-tab-text-color-active);\n font-weight: var(--n-tab-font-weight-active);\n "),R("disabled",{color:"var(--n-tab-text-color-disabled)"})])]),f("tabs-nav",[R("line-type",[R("top",[C("prefix, suffix","\n border-bottom: 1px solid var(--n-tab-border-color);\n "),f("tabs-nav-scroll-content","\n border-bottom: 1px solid var(--n-tab-border-color);\n "),f("tabs-bar","\n bottom: -1px;\n ")]),R("left",[C("prefix, suffix","\n border-right: 1px solid var(--n-tab-border-color);\n "),f("tabs-nav-scroll-content","\n border-right: 1px solid var(--n-tab-border-color);\n "),f("tabs-bar","\n right: -1px;\n ")]),R("right",[C("prefix, suffix","\n border-left: 1px solid var(--n-tab-border-color);\n "),f("tabs-nav-scroll-content","\n border-left: 1px solid var(--n-tab-border-color);\n "),f("tabs-bar","\n left: -1px;\n ")]),R("bottom",[C("prefix, suffix","\n border-top: 1px solid var(--n-tab-border-color);\n "),f("tabs-nav-scroll-content","\n border-top: 1px solid var(--n-tab-border-color);\n "),f("tabs-bar","\n top: -1px;\n ")]),C("prefix, suffix","\n transition: border-color .3s var(--n-bezier);\n "),f("tabs-nav-scroll-content","\n transition: border-color .3s var(--n-bezier);\n "),f("tabs-bar","\n border-radius: 0;\n ")]),R("card-type",[C("prefix, suffix","\n transition: border-color .3s var(--n-bezier);\n "),f("tabs-pad","\n flex-grow: 1;\n transition: border-color .3s var(--n-bezier);\n "),f("tabs-tab-pad","\n transition: border-color .3s var(--n-bezier);\n "),f("tabs-tab","\n font-weight: var(--n-tab-font-weight);\n border: 1px solid var(--n-tab-border-color);\n background-color: var(--n-tab-color);\n box-sizing: border-box;\n position: relative;\n vertical-align: bottom;\n display: flex;\n justify-content: space-between;\n font-size: var(--n-tab-font-size);\n color: var(--n-tab-text-color);\n ",[R("addable","\n padding-left: 8px;\n padding-right: 8px;\n font-size: 16px;\n justify-content: center;\n ",[C("height-placeholder","\n width: 0;\n font-size: var(--n-tab-font-size);\n "),b("disabled",[v("&:hover","\n color: var(--n-tab-text-color-hover);\n ")])]),R("closable","padding-right: 8px;"),R("active","\n background-color: #0000;\n font-weight: var(--n-tab-font-weight-active);\n color: var(--n-tab-text-color-active);\n "),R("disabled","color: var(--n-tab-text-color-disabled);")])]),R("left, right","\n flex-direction: column; \n ",[C("prefix, suffix","\n padding: var(--n-tab-padding-vertical);\n "),f("tabs-wrapper","\n flex-direction: column;\n "),f("tabs-tab-wrapper","\n flex-direction: column;\n ",[f("tabs-tab-pad","\n height: var(--n-tab-gap-vertical);\n width: 100%;\n ")])]),R("top",[R("card-type",[f("tabs-scroll-padding","border-bottom: 1px solid var(--n-tab-border-color);"),C("prefix, suffix","\n border-bottom: 1px solid var(--n-tab-border-color);\n "),f("tabs-tab","\n border-top-left-radius: var(--n-tab-border-radius);\n border-top-right-radius: var(--n-tab-border-radius);\n ",[R("active","\n border-bottom: 1px solid #0000;\n ")]),f("tabs-tab-pad","\n border-bottom: 1px solid var(--n-tab-border-color);\n "),f("tabs-pad","\n border-bottom: 1px solid var(--n-tab-border-color);\n ")])]),R("left",[R("card-type",[f("tabs-scroll-padding","border-right: 1px solid var(--n-tab-border-color);"),C("prefix, suffix","\n border-right: 1px solid var(--n-tab-border-color);\n "),f("tabs-tab","\n border-top-left-radius: var(--n-tab-border-radius);\n border-bottom-left-radius: var(--n-tab-border-radius);\n ",[R("active","\n border-right: 1px solid #0000;\n ")]),f("tabs-tab-pad","\n border-right: 1px solid var(--n-tab-border-color);\n "),f("tabs-pad","\n border-right: 1px solid var(--n-tab-border-color);\n ")])]),R("right",[R("card-type",[f("tabs-scroll-padding","border-left: 1px solid var(--n-tab-border-color);"),C("prefix, suffix","\n border-left: 1px solid var(--n-tab-border-color);\n "),f("tabs-tab","\n border-top-right-radius: var(--n-tab-border-radius);\n border-bottom-right-radius: var(--n-tab-border-radius);\n ",[R("active","\n border-left: 1px solid #0000;\n ")]),f("tabs-tab-pad","\n border-left: 1px solid var(--n-tab-border-color);\n "),f("tabs-pad","\n border-left: 1px solid var(--n-tab-border-color);\n ")])]),R("bottom",[R("card-type",[f("tabs-scroll-padding","border-top: 1px solid var(--n-tab-border-color);"),C("prefix, suffix","\n border-top: 1px solid var(--n-tab-border-color);\n "),f("tabs-tab","\n border-bottom-left-radius: var(--n-tab-border-radius);\n border-bottom-right-radius: var(--n-tab-border-radius);\n ",[R("active","\n border-top: 1px solid #0000;\n ")]),f("tabs-tab-pad","\n border-top: 1px solid var(--n-tab-border-color);\n "),f("tabs-pad","\n border-top: 1px solid var(--n-tab-border-color);\n ")])])])]),ke=function(e,t,n){var a=!0,r=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return x(n)&&(a="leading"in n?!!n.leading:a,r="trailing"in n?!!n.trailing:r),Pe(e,t,{leading:a,maxWait:t,trailing:r})},Be=S({name:"Tabs",props:Object.assign(Object.assign({},r.props),{value:[String,Number],defaultValue:[String,Number],trigger:{type:String,default:"click"},type:{type:String,default:"bar"},closable:Boolean,justifyContent:String,size:{type:String,default:"medium"},placement:{type:String,default:"top"},tabStyle:[String,Object],tabClass:String,addTabStyle:[String,Object],addTabClass:String,barWidth:Number,paneClass:String,paneStyle:[String,Object],paneWrapperClass:String,paneWrapperStyle:[String,Object],addable:[Boolean,Object],tabsPadding:{type:Number,default:0},animated:Boolean,onBeforeLeave:Function,onAdd:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onClose:[Function,Array],labelSize:String,activeName:[String,Number],onActiveNameChange:[Function,Array]}),slots:Object,setup(e,{slots:t}){var n,a,o,d;const{mergedClsPrefixRef:b,inlineThemeDisabled:p}=u(e),f=r("Tabs","-tabs",Ae,se,e,b),v=Y(null),h=Y(null),x=Y(null),m=Y(null),w=Y(null),$=Y(null),C=Y(!0),R=Y(!0),S=l(e,["labelSize","size"]),T=l(e,["activeName","value"]),P=Y(null!==(a=null!==(n=T.value)&&void 0!==n?n:e.defaultValue)&&void 0!==a?a:t.default?null===(d=null===(o=ne(t.default())[0])||void 0===o?void 0:o.props)||void 0===d?void 0:d.name:null),W=i(T,P),L={id:0},A=D(()=>{if(e.justifyContent&&"card"!==e.type)return{display:"flex",justifyContent:e.justifyContent}});function k(){var e;const{value:t}=W;return null===t?null:null===(e=v.value)||void 0===e?void 0:e.querySelector(`[data-name="${t}"]`)}function N(e){const{value:t}=h;if(t)for(const n of e)t.style[n]=""}function H(){if("card"===e.type)return;const t=k();t?function(t){if("card"===e.type)return;const{value:n}=h;if(!n)return;const a="0"===n.style.opacity;if(t){const r=`${b.value}-tabs-bar--disabled`,{barWidth:o,placement:i}=e;if("true"===t.dataset.disabled?n.classList.add(r):n.classList.remove(r),["top","bottom"].includes(i)){if(N(["top","maxHeight","height"]),"number"==typeof o&&t.offsetWidth>=o){const e=Math.floor((t.offsetWidth-o)/2)+t.offsetLeft;n.style.left=`${e}px`,n.style.maxWidth=`${o}px`}else n.style.left=`${t.offsetLeft}px`,n.style.maxWidth=`${t.offsetWidth}px`;n.style.width="8192px",a&&(n.style.transition="none"),n.offsetWidth,a&&(n.style.transition="",n.style.opacity="1")}else{if(N(["left","maxWidth","width"]),"number"==typeof o&&t.offsetHeight>=o){const e=Math.floor((t.offsetHeight-o)/2)+t.offsetTop;n.style.top=`${e}px`,n.style.maxHeight=`${o}px`}else n.style.top=`${t.offsetTop}px`,n.style.maxHeight=`${t.offsetHeight}px`;n.style.height="8192px",a&&(n.style.transition="none"),n.offsetHeight,a&&(n.style.transition="",n.style.opacity="1")}}}(t):function(){if("card"===e.type)return;const{value:t}=h;t&&(t.style.opacity="0")}()}function I(){var e;const t=null===(e=w.value)||void 0===e?void 0:e.$el;if(!t)return;const n=k();if(!n)return;const{scrollLeft:a,offsetWidth:r}=t,{offsetLeft:o,offsetWidth:i}=n;a>o?t.scrollTo({top:0,left:o,behavior:"smooth"}):o+i>a+r&&t.scrollTo({top:0,left:o+i-r,behavior:"smooth"})}O(W,()=>{L.id=0,H(),I()});const V=Y(null);let M=0,X=null;const U={value:[]},q=Y("next");let G=!0;function Q(){const{value:e}=h;if(!e)return;G||(G=!1);const t="transition-disabled";e.classList.add(t),H(),e.classList.remove(t)}const Z=Y(null);function J({transitionDisabled:e}){const t=v.value;if(!t)return;e&&t.classList.add("transition-disabled");const n=k();n&&Z.value&&(Z.value.style.width=`${n.offsetWidth}px`,Z.value.style.height=`${n.offsetHeight}px`,Z.value.style.transform=`translateX(${n.offsetLeft-y(getComputedStyle(t).paddingLeft)}px)`,e&&Z.value.offsetWidth),e&&t.classList.remove("transition-disabled")}O([W],()=>{"segment"===e.type&&j(()=>{J({transitionDisabled:!1})})}),E(()=>{"segment"===e.type&&J({transitionDisabled:!0})});let K=0;const ee=ke(function(t){var n,a;if(0===t.contentRect.width&&0===t.contentRect.height)return;if(K===t.contentRect.width)return;K=t.contentRect.width;const{type:r}=e;if("line"!==r&&"bar"!==r||(G||(null===(n=e.justifyContent)||void 0===n?void 0:n.startsWith("space")))&&Q(),"segment"!==r){const{placement:t}=e;oe(("top"===t||"bottom"===t?null===(a=w.value)||void 0===a?void 0:a.$el:$.value)||null)}},64);O([()=>e.justifyContent,()=>e.size],()=>{j(()=>{const{type:t}=e;"line"!==t&&"bar"!==t||Q()})});const te=Y(!1);const ae=ke(function(t){var n;const{target:a,contentRect:{width:r,height:o}}=t,i=a.parentElement.parentElement.offsetWidth,s=a.parentElement.parentElement.offsetHeight,{placement:l}=e;if(te.value){const{value:e}=m;if(!e)return;"top"===l||"bottom"===l?i-r>e.$el.offsetWidth&&(te.value=!1):s-o>e.$el.offsetHeight&&(te.value=!1)}else"top"===l||"bottom"===l?i<r&&(te.value=!0):s<o&&(te.value=!0);oe((null===(n=w.value)||void 0===n?void 0:n.$el)||null)},64);function oe(t){if(!t)return;const{placement:n}=e;if("top"===n||"bottom"===n){const{scrollLeft:e,scrollWidth:n,offsetWidth:a}=t;C.value=e<=0,R.value=e+a>=n}else{const{scrollTop:e,scrollHeight:n,offsetHeight:a}=t;C.value=e<=0,R.value=e+a>=n}}const ie=ke(e=>{oe(e.target)},64);_(We,{triggerRef:F(e,"trigger"),tabStyleRef:F(e,"tabStyle"),tabClassRef:F(e,"tabClass"),addTabStyleRef:F(e,"addTabStyle"),addTabClassRef:F(e,"addTabClass"),paneClassRef:F(e,"paneClass"),paneStyleRef:F(e,"paneStyle"),mergedClsPrefixRef:b,typeRef:F(e,"type"),closableRef:F(e,"closable"),valueRef:W,tabChangeIdRef:L,onBeforeLeaveRef:F(e,"onBeforeLeave"),activateTab:function(t){const n=W.value;let a="next";for(const e of U.value){if(e===n)break;if(e===t){a="prev";break}}q.value=a,function(t){const{onActiveNameChange:n,onUpdateValue:a,"onUpdate:value":r}=e;n&&s(n,t);a&&s(a,t);r&&s(r,t);P.value=t}(t)},handleClose:function(t){const{onClose:n}=e;n&&s(n,t)},handleAdd:function(){const{onAdd:t}=e;t&&t(),j(()=>{const e=k(),{value:t}=w;e&&t&&t.scrollTo({left:e.offsetLeft,top:0,behavior:"smooth"})})}}),re(()=>{H(),I()}),B(()=>{const{value:e}=x;if(!e)return;const{value:t}=b,n=`${t}-tabs-nav-scroll-wrapper--shadow-start`,a=`${t}-tabs-nav-scroll-wrapper--shadow-end`;C.value?e.classList.remove(n):e.classList.add(n),R.value?e.classList.remove(a):e.classList.add(a)});const le={syncBarPosition:()=>{H()}},de=D(()=>{const{value:t}=S,{type:n}=e,a=`${t}${{card:"Card",bar:"Bar",line:"Line",segment:"Segment"}[n]}`,{self:{barColor:r,closeIconColor:o,closeIconColorHover:i,closeIconColorPressed:s,tabColor:l,tabBorderColor:d,paneTextColor:b,tabFontWeight:p,tabBorderRadius:u,tabFontWeightActive:v,colorSegment:g,fontWeightStrong:h,tabColorSegment:x,closeSize:m,closeIconSize:y,closeColorHover:w,closeColorPressed:$,closeBorderRadius:C,[z("panePadding",t)]:R,[z("tabPadding",a)]:T,[z("tabPaddingVertical",a)]:P,[z("tabGap",a)]:W,[z("tabGap",`${a}Vertical`)]:_,[z("tabTextColor",n)]:j,[z("tabTextColorActive",n)]:L,[z("tabTextColorHover",n)]:A,[z("tabTextColorDisabled",n)]:k,[z("tabFontSize",t)]:B},common:{cubicBezierEaseInOut:E}}=f.value;return{"--n-bezier":E,"--n-color-segment":g,"--n-bar-color":r,"--n-tab-font-size":B,"--n-tab-text-color":j,"--n-tab-text-color-active":L,"--n-tab-text-color-disabled":k,"--n-tab-text-color-hover":A,"--n-pane-text-color":b,"--n-tab-border-color":d,"--n-tab-border-radius":u,"--n-close-size":m,"--n-close-icon-size":y,"--n-close-color-hover":w,"--n-close-color-pressed":$,"--n-close-border-radius":C,"--n-close-icon-color":o,"--n-close-icon-color-hover":i,"--n-close-icon-color-pressed":s,"--n-tab-color":l,"--n-tab-font-weight":p,"--n-tab-font-weight-active":v,"--n-tab-padding":T,"--n-tab-padding-vertical":P,"--n-tab-gap":W,"--n-tab-gap-vertical":_,"--n-pane-padding-left":c(R,"left"),"--n-pane-padding-right":c(R,"right"),"--n-pane-padding-top":c(R,"top"),"--n-pane-padding-bottom":c(R,"bottom"),"--n-font-weight-strong":h,"--n-tab-color-segment":x}}),be=p?g("tabs",D(()=>`${S.value[0]}${e.type[0]}`),de,e):void 0;return Object.assign({mergedClsPrefix:b,mergedValue:W,renderedNames:new Set,segmentCapsuleElRef:Z,tabsPaneWrapperRef:V,tabsElRef:v,barElRef:h,addTabInstRef:m,xScrollInstRef:w,scrollWrapperElRef:x,addTabFixed:te,tabWrapperStyle:A,handleNavResize:ee,mergedSize:S,handleScroll:ie,handleTabsResize:ae,cssVars:p?void 0:de,themeClass:null==be?void 0:be.themeClass,animationDirection:q,renderNameListRef:U,yScrollElRef:$,handleSegmentResize:()=>{J({transitionDisabled:!0})},onAnimationBeforeLeave:function(e){const t=V.value;if(t){M=e.getBoundingClientRect().height;const n=`${M}px`,a=()=>{t.style.height=n,t.style.maxHeight=n};X?(a(),X(),X=null):X=a}},onAnimationEnter:function(e){const t=V.value;if(t){const n=e.getBoundingClientRect().height,a=()=>{document.body.offsetHeight,t.style.maxHeight=`${n}px`,t.style.height=`${Math.max(M,n)}px`};X?(X(),X=null,a()):X=a}},onAnimationAfterEnter:function(){const t=V.value;if(t){t.style.maxHeight="",t.style.height="";const{paneWrapperStyle:n}=e;if("string"==typeof n)t.style.cssText=n;else if(n){const{maxHeight:e,height:a}=n;void 0!==e&&(t.style.maxHeight=e),void 0!==a&&(t.style.height=a)}}},onRender:null==be?void 0:be.onRender},le)},render(){const{mergedClsPrefix:t,type:n,placement:a,addTabFixed:r,addable:i,mergedSize:s,renderNameListRef:l,onRender:d,paneWrapperClass:b,paneWrapperStyle:c,$slots:{default:p,prefix:f,suffix:u}}=this;null==d||d();const v=p?ne(p()).filter(e=>!0===e.type.__TAB_PANE__):[],g=p?ne(p()).filter(e=>!0===e.type.__TAB__):[],h=!g.length,x="card"===n,m="segment"===n,y=!x&&!m&&this.justifyContent;l.value=[];const w=()=>{const e=L("div",{style:this.tabWrapperStyle,class:`${t}-tabs-wrapper`},y?null:L("div",{class:`${t}-tabs-scroll-padding`,style:"top"===a||"bottom"===a?{width:`${this.tabsPadding}px`}:{height:`${this.tabsPadding}px`}}),h?v.map((e,t)=>(l.value.push(e.props.name),He(L(Le,Object.assign({},e.props,{internalCreatedByPane:!0,internalLeftPadded:0!==t&&(!y||"center"===y||"start"===y||"end"===y)}),e.children?{default:e.children.tab}:void 0)))):g.map((e,t)=>(l.value.push(e.props.name),He(0===t||y?e:Oe(e)))),!r&&i&&x?Ne(i,0!==(h?v.length:g.length)):null,y?null:L("div",{class:`${t}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}));return L("div",{ref:"tabsElRef",class:`${t}-tabs-nav-scroll-content`},x&&i?L(o,{onResize:this.handleTabsResize},{default:()=>e}):e,x?L("div",{class:`${t}-tabs-pad`}):null,x?null:L("div",{ref:"barElRef",class:`${t}-tabs-bar`}))},$=m?"top":a;return L("div",{class:[`${t}-tabs`,this.themeClass,`${t}-tabs--${n}-type`,`${t}-tabs--${s}-size`,y&&`${t}-tabs--flex`,`${t}-tabs--${$}`],style:this.cssVars},L("div",{class:[`${t}-tabs-nav--${n}-type`,`${t}-tabs-nav--${$}`,`${t}-tabs-nav`]},e(f,e=>e&&L("div",{class:`${t}-tabs-nav__prefix`},e)),m?L(o,{onResize:this.handleSegmentResize},{default:()=>L("div",{class:`${t}-tabs-rail`,ref:"tabsElRef"},L("div",{class:`${t}-tabs-capsule`,ref:"segmentCapsuleElRef"},L("div",{class:`${t}-tabs-wrapper`},L("div",{class:`${t}-tabs-tab`}))),h?v.map((e,t)=>(l.value.push(e.props.name),L(Le,Object.assign({},e.props,{internalCreatedByPane:!0,internalLeftPadded:0!==t}),e.children?{default:e.children.tab}:void 0))):g.map((e,t)=>(l.value.push(e.props.name),0===t?e:Oe(e))))}):L(o,{onResize:this.handleNavResize},{default:()=>L("div",{class:`${t}-tabs-nav-scroll-wrapper`,ref:"scrollWrapperElRef"},["top","bottom"].includes($)?L(ge,{ref:"xScrollInstRef",onScroll:this.handleScroll},{default:w}):L("div",{class:`${t}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:"yScrollElRef"},w()))}),r&&i&&x?Ne(i,!0):null,e(u,e=>e&&L("div",{class:`${t}-tabs-nav__suffix`},e))),h&&(!this.animated||"top"!==$&&"bottom"!==$?Ee(v,this.mergedValue,this.renderedNames):L("div",{ref:"tabsPaneWrapperRef",style:c,class:[`${t}-tabs-pane-wrapper`,b]},Ee(v,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection))))}});function Ee(e,t,n,a,r,o,i){const s=[];return e.forEach(e=>{const{name:a,displayDirective:r,"display-directive":o}=e.props,i=e=>r===e||o===e,l=t===a;if(void 0!==e.key&&(e.key=a),l||i("show")||i("show:lazy")&&n.has(a)){n.has(a)||n.add(a);const t=!i("if");s.push(t?q(e,[[V,l]]):e)}}),i?L(G,{name:`${i}-transition`,onBeforeLeave:a,onEnter:r,onAfterEnter:o},{default:()=>s}):s}function Ne(e,t){return L(Le,{ref:"addTabInstRef",key:"__addable",name:"__addable",internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:"object"==typeof e&&e.disabled})}function Oe(e){const t=J(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function He(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes("internalLeftPadded")||e.dynamicProps.push("internalLeftPadded"):e.dynamicProps=["internalLeftPadded"],e}function De(e,t={}){const n=t.platform||"",a=t.projectPath||"",r=fe(`config-registry:${e}`,n,t.scope||"",a);return le(r,t=>K.get(`/config-registry/${e}`,{signal:t}).then(e=>e.data),`config-registry:${e}`,`config-registry:${e}:${n}`)}async function Fe(e){return(await K.post(`/config-registry/${e}/import`)).data}async function Ie(e,t,n){const a=encodeURIComponent(t);return(await K.put(`/config-registry/${e}/${a}/toggle`,{enabled:n})).data}async function Ve(e,t,n,a){const r=encodeURIComponent(t);return(await K.put(`/config-registry/${e}/${r}/platform/${n}`,{enabled:a})).data}async function Me(e){return(await K.post(`/config-registry/${e}/sync`)).data}var Xe={key:0,class:"asset-detail-info-section"},Ue={class:"asset-detail-section-title"},Ye={class:"asset-detail-box asset-detail-path-box"},qe={class:"asset-detail-path-text"},Ge={__name:"AssetPathField",props:{path:{type:String,default:""},title:{type:String,default:"路径"}},setup(e){const t=e,n=D(()=>String(t.path||"").trim());async function a(){if(n.value)try{if("manual"===(await ue(n.value))?.method)return void ce.warning("自动复制失败,已弹出手动复制框");ce.success("已复制路径")}catch{ce.error("复制路径失败")}}return(t,r)=>n.value?(N(),Q("div",Xe,[Z("h3",Ue,H(e.title),1),Z("div",Ye,[k(U(h),{size:16,class:"asset-detail-path-icon"},{default:I(()=>[k(U(ee))]),_:1}),Z("code",qe,H(n.value),1),k(U(de),{trigger:"hover"},{trigger:I(()=>[k(U(w),{circle:"",quaternary:"",size:"tiny",class:"asset-detail-path-copy","aria-label":"复制路径",onClick:X(a,["stop"])},{icon:I(()=>[k(U(h),null,{default:I(()=>[k(U(te))]),_:1})]),_:1})]),default:I(()=>[r[0]||(r[0]=P(" 复制路径 ",-1))]),_:1})])])):T("",!0)}};export{Ie as a,je as c,Me as i,Fe as n,Ve as o,De as r,Be as s,Ge as t};
@@ -1 +1 @@
1
- import{i as e,s,t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as t,D as n,I as l,K as r,O as o,S as u,W as i,Z as c,_t as g,b as m,et as v,g as p,ht as d,mt as f,st as h,w as y,x as b,z as k}from"./vue-vendor-BqZbbXHA.js";import{St as I,W as M,gt as w,it as N,k as j,kt as x,mt as S,z as _}from"./icons-B-AzZoeE.js";import{n as z,t as C}from"./useResponsiveDrawer-ChHZrTfl.js";import{M as H,ft as A,ut as L}from"./index-BlUXw84U.js";import{t as T}from"./clipboard-B46yyoz_.js";import{t as $}from"./markdown-u082bbtj.js";import{a as O,c as B,i as D,n as F,o as q,r as P,s as R,t as W}from"./xml-CgY3RMlX.js";import{c as E,l as J,s as K}from"./sessions-CaWUaysM.js";var U=["id"],Z={class:"message-header"},G={key:0,class:"message-model"},Q={class:"message-time"},V={class:"message-time"},X={key:0,class:"user-content"},Y={key:0},ee={key:1,class:"image-item"},se=["src"],ae=["innerHTML"],te=500,ne=a({__name:"ChatMessage",props:{message:{type:Object,required:!0},messageAnchorId:{type:String,default:""}},setup(s){B.registerLanguage("javascript",R),B.registerLanguage("python",P),B.registerLanguage("bash",D),B.registerLanguage("json",O),B.registerLanguage("typescript",q),B.registerLanguage("css",F),B.registerLanguage("xml",W),B.registerLanguage("html",W);const a=s,l=h(!1),u=m(()=>{const e=a.message.content;return"string"==typeof e&&e.length>te}),c=m(()=>{const e=a.message.content;return"string"==typeof e&&e.length>te?e.substring(0,te)+"...":e});$.setOptions({highlight:(e,s)=>{if(s&&B.getLanguage(s))try{return B.highlight(e,{language:s}).value}catch(a){}return B.highlightAuto(e).value},breaks:!0,gfm:!0});const v=m(()=>{if("assistant"===a.message.type&&a.message.content)try{return $.parse(a.message.content)}catch(e){return a.message.content}return""}),k=m(()=>{if("assistant"===a.message.type&&a.message.content)try{const e=a.message.content,s=e.length>te?e.substring(0,te)+"...":e;return $.parse(s)}catch(e){return a.message.content.substring(0,te)+"..."}return""});function M(e){return e?new Date(e).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):""}async function w(){const e="string"==typeof a.message.content?a.message.content:JSON.stringify(a.message.content);try{await T(e,{manualFallback:!1})}catch{}}function x(e){return e?"base64"===e.source?.type&&e.source?.data?`data:${e.source.media_type||"image/png"};base64,${e.source.data}`:"url"===e.source?.type&&e.source?.url?e.source.url:e.url?e.url:null:null}return(a,m)=>(i(),y("div",{id:s.messageAnchorId||void 0,class:d(["chat-message",[`message-${s.message.type}`]])},[b("div",Z,["assistant"===s.message.type?(i(),y(p,{key:0},[o(f(e),{size:16,component:f(I),class:"role-icon"},null,8,["component"]),m[1]||(m[1]=b("span",{class:"message-role"},"AI",-1)),s.message.model?(i(),y("span",G,g(s.message.model),1)):t("",!0),b("span",Q,g(s.message.timestamp?M(s.message.timestamp):""),1),m[2]||(m[2]=b("span",{class:"spacer"},null,-1)),b("span",{class:"copy-btn",onClick:w,title:"复制"},[o(f(e),{size:14,component:f(N)},null,8,["component"])])],64)):(i(),y(p,{key:1},[b("span",{class:"copy-btn",onClick:w,title:"复制"},[o(f(e),{size:14,component:f(N)},null,8,["component"])]),m[3]||(m[3]=b("span",{class:"spacer"},null,-1)),b("span",V,g(s.message.timestamp?M(s.message.timestamp):""),1),m[4]||(m[4]=b("span",{class:"message-role"},"用户",-1)),o(f(e),{size:16,component:f(j),class:"role-icon"},null,8,["component"])],64))]),b("div",{class:d(["message-content",{collapsed:!l.value&&u.value}])},["user"===s.message.type?(i(),y("div",X,["string"==typeof s.message.content?(i(),y(p,{key:0},[n(g(l.value?s.message.content:c.value),1)],64)):Array.isArray(s.message.content)?(i(!0),y(p,{key:1},r(s.message.content,(s,a)=>(i(),y("div",{key:a,class:"content-item"},["text"===s.type?(i(),y("div",Y,g(s.text),1)):"image"===s.type?(i(),y("div",ee,[x(s)?(i(),y("img",{key:0,src:x(s),alt:"会话图片",loading:"lazy"},null,8,se)):(i(),y(p,{key:1},[o(f(e),{size:20,component:f(_)},null,8,["component"]),m[5]||(m[5]=b("span",null,"图片内容",-1))],64))])):t("",!0)]))),128)):t("",!0)])):"assistant"===s.message.type?(i(),y("div",{key:1,class:"assistant-content markdown-body",innerHTML:l.value?v.value:k.value},null,8,ae)):t("",!0)],2),u.value?(i(),y("div",{key:0,class:"expand-btn",onClick:m[0]||(m[0]=e=>l.value=!l.value)},g(l.value?"收起":"展开全部"),1)):t("",!0)],10,U))}},[["__scopeId","data-v-35aebdef"]]),le={class:"drawer-wrapper"},re={class:"header-row"},oe={class:"session-name"},ue={key:0,class:"session-summary"},ie={class:"drawer-body"},ce={key:0,class:"loading-container"},ge={key:1,class:"empty-container"},me={key:2,class:"history-layout"},ve={class:"mobile-toc-toggle"},pe={class:"toc-header"},de={key:0,class:"toc-header-hint"},fe={key:0,class:"toc-empty"},he={key:1,class:"toc-empty"},ye={key:2,class:"toc-list"},be=["onClick"],ke={class:"toc-order"},Ie={class:"toc-preview"},Me={class:"toc-time"},we={class:"messages-pane"},Ne={key:0,class:"load-more-top"},je={class:"messages-list"},xe=20,Se=a({__name:"ChatHistoryDrawer",props:{show:{type:Boolean,default:!1},projectName:{type:String,required:!0},sessionId:{type:String,required:!0},sessionAlias:{type:String,default:""},channel:{type:String,default:"claude"}},emits:["update:show","error"],setup(a,{expose:N,emit:j}){const _=a,T=j,{drawerWidth:$}=C(960,840),O=m({get:()=>_.show,set:e=>T("update:show",e)}),B=h(!1),D=h(!1),F=h([]),q=h([]),P=h({}),R=h(1),W=h(0),U=h(!1),Z=h(null),G=h(null),Q=h(!1),V=h(null),X=h(!1),Y=h(null);let ee=0,se=null,ae="";const te=m(()=>Ke(_.sessionId).slice(0,16)||"session"),Se=m(()=>{const e=new Map;return F.value.map((s,a)=>{const t=function(e,s){const a=Je(e);if(a)return`msg-${te.value}-${Ke(a)}`;const t=e?.timestamp?String(e.timestamp):"",n=e?.type?String(e.type):"unknown",l=function(e){let s=0;for(let a=0;a<e.length;a+=1)s=(s<<5)-s+e.charCodeAt(a),s|=0;return Math.abs(s).toString(36)}(`${n}|${t}|${function(e){const s=e?.content;if("string"==typeof s)return s.slice(0,240);if(Array.isArray(s))try{return JSON.stringify(s).slice(0,240)}catch{return String(s)}return null==s?"":String(s).slice(0,240)}(e)}`),r=t?Ke(t):`idx${s}`;return`msg-${te.value}-${n}-${r}-${l}`}(s,a),n=e.get(t)||0;return e.set(t,n+1),0===n?t:`${t}-${n+1}`})}),_e=m(()=>{const e=new Map;return F.value.forEach((s,a)=>{!s.anchorOnly&&"user"===s.type&&s.userMessageNumber&&e.set(s.userMessageNumber,Se.value[a])}),e}),ze=m(()=>F.value.map((e,s)=>({message:e,index:s})).filter(({message:e})=>!e.anchorOnly)),Ce=m(()=>q.value);function He(e={}){return[e.lastModified||"",e.size||0].join(":")}async function Ae(){try{D.value=!0;const e=await E(_.projectName,_.sessionId,_.channel);q.value=Array.isArray(e?.items)?e.items:[]}catch(e){}finally{D.value=!1}}async function Le(){const e=await J(_.projectName,_.sessionId,_.channel);return ae=He(e),e}async function Te(e=1,s={}){if(B.value)return;const{skipFirstPageScroll:a=!1,limitOverride:t=xe}=s;try{B.value=!0;const{messages:s,metadata:n,pagination:r}=await K(_.projectName,_.sessionId,e,t,"desc",_.channel);1===e?(F.value=s.reverse(),P.value=n):F.value=[...s.reverse(),...F.value],R.value=r.page,W.value=r.total,U.value=r.hasMore,1===e&&l(async()=>{Y.value?await qe(Y.value,{allowLoadMore:!0}):a||Oe(!1),De()})}catch(n){const e="加载聊天记录失败: "+(n.response?.data?.error||n.message);T("error",e)}finally{B.value=!1}}function $e(){if(!U.value||B.value)return;const e=Z.value,s=e?.scrollHeight||0;Te(R.value+1).then(()=>{l(()=>{if(e){const a=e.scrollHeight;e.scrollTop=a-s,De()}})})}function Oe(e=!0){l(()=>{const s=Z.value;s&&(s.scrollTo({top:s.scrollHeight,behavior:e?"smooth":"auto"}),De())})}function Be(e){const s=e.target;if(!s)return;const{scrollTop:a,scrollHeight:t,clientHeight:n}=s;Q.value=t-a-n>200,a<100&&U.value&&!B.value&&$e(),De()}function De(){ee||(ee=requestAnimationFrame(()=>{ee=0,function(){const e=Z.value;if(!e||0===Ce.value.length)return void(V.value=null);const s=Array.from(_e.value.keys()).sort((e,s)=>e-s);if(!s.length)return void(V.value=Ce.value[Ce.value.length-1]?.userMessageNumber||null);const a=Math.max(0,e.scrollHeight-e.clientHeight);if(a>0&&a-e.scrollTop<=6)return void(V.value=s[s.length-1]);const t=e.scrollTop,n=t+e.clientHeight,l=t+Ge();let r=null,o=null;for(const i of Ce.value){const s=Ue(_e.value.get(i.userMessageNumber));if(!s)continue;const a=Ze(s,e),u=a+s.offsetHeight;a<=l+1&&(o=i),!r&&u>t&&a<n&&(r=i)}const u=o?.userMessageNumber||r?.userMessageNumber||s[0]||Ce.value[0].userMessageNumber;u&&(V.value=u)}()}))}function Fe(e,s=!0){const a=Z.value;if(!a||!e)return!1;const t=Ue(e);if(!t)return!1;const n=Ze(t,a),l=Math.max(0,a.scrollHeight-a.clientHeight),r=Ve(n-Ge(),0,l);return a.scrollTo({top:r,behavior:s?"smooth":"auto"}),De(),!0}async function qe(e,s={}){if(!e)return!1;const{allowLoadMore:a=!1}=s;let t=0;for(;t<50;){t+=1;const s=Pe(e);if(s&&Fe(s,!0))return Number.isInteger(e.userMessageNumber)&&(V.value=e.userMessageNumber),Y.value=null,!0;if(!a||!U.value||B.value)break;const n=R.value;if(await Te(R.value+1),R.value===n)break}return Y.value=null,De(),!1}function Pe(e){if(e.anchorId&&"string"==typeof e.anchorId)return e.anchorId;if(Number.isInteger(e.userMessageNumber))return _e.value.get(e.userMessageNumber)||"";if("number"==typeof e.messageIndex&&e.messageIndex>=0)return Se.value[e.messageIndex]||"";if(e.messageId){const s=String(e.messageId),a=F.value.findIndex(e=>Je(e)===s);if(a>=0)return Se.value[a]}return""}async function Re(){if(B.value)return;const e=Z.value,s=!e||e.scrollHeight-e.scrollTop-e.clientHeight<=40,a=e?.scrollTop||0,t=Math.max(R.value,1);try{B.value=!0;const e=[];for(let a=1;a<=t;a+=1)e.push(await K(_.projectName,_.sessionId,a,xe,"desc",_.channel));const s=[];for(let a=e.length-1;a>=0;a-=1){const t=e[a],n=Array.isArray(t?.messages)?t.messages:[];s.push(...n.slice().reverse())}F.value=s,P.value=e[0]?.metadata||P.value,W.value=e[0]?.pagination?.total||s.length,R.value=t,U.value=t*xe<W.value}finally{B.value=!1}await l(),e&&(s?Oe(!1):(e.scrollTop=Ve(a,0,Math.max(0,e.scrollHeight-e.clientHeight)),De()))}function We(){se&&(clearInterval(se),se=null)}function Ee(){We(),se=setInterval(()=>{O.value&&async function(){try{const e=He(await J(_.projectName,_.sessionId,_.channel));if(!e)return;if(ae&&e!==ae)return ae=e,void(await Promise.all([Ae(),Re()]));ae=e}catch(e){}}()},3e3)}function Je(e){return e&&"object"==typeof e?String(e.messageId||e.id||e.uuid||e.turnId||""):""}function Ke(e){return String(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)}function Ue(e){const s=Z.value;if(!s||!e)return null;const a=document.getElementById(e);return a&&s.contains(a)?a:null}function Ze(e,s){const a=s.getBoundingClientRect(),t=e.getBoundingClientRect();return s.scrollTop+(t.top-a.top)}function Ge(){return(G.value?.offsetHeight||0)+12}function Qe(e){if(!e)return"";const s=new Date(e);return Number.isNaN(s.getTime())?"":s.toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function Ve(e,s,a){return Math.min(Math.max(e,s),a)}return c(Ce,()=>{Ce.value.length?(Ce.value.some(e=>e.userMessageNumber===V.value)||(V.value=Ce.value[0].userMessageNumber),De()):V.value=null},{deep:!0}),c(O,e=>{e?l(()=>{De()}):We()}),k(()=>{ee&&(cancelAnimationFrame(ee),ee=0),We()}),N({open:function(e){We(),Y.value=function(e){if(!e||"object"!=typeof e)return null;const s=e.jumpTo&&"object"==typeof e.jumpTo?e.jumpTo:e,a={anchorId:"string"==typeof s.anchorId?s.anchorId:"",messageId:s.messageId||s.id||"",messageIndex:Number.isInteger(s.messageIndex)?s.messageIndex:null,userMessageNumber:Number.isInteger(s.userMessageNumber)?s.userMessageNumber:null};return a.anchorId||a.messageId||null!==a.messageIndex||null!==a.userMessageNumber?a:null}(e),X.value=!1,F.value=[],q.value=[],P.value={},R.value=1,W.value=0,U.value=!1,Q.value=!1,V.value=null,ae="",Promise.all([Ae(),Te(1,{skipFirstPageScroll:Boolean(Y.value)}),Le()]).then(()=>{O.value&&Ee()}).catch(()=>{})}}),(l,c)=>(i(),u(f(z),{show:O.value,"onUpdate:show":c[2]||(c[2]=e=>O.value=e),width:f($),placement:"right","auto-focus":!1,"trap-focus":!1,"block-scroll":!1},{default:v(()=>[b("div",le,[b("div",{ref_key:"headerRef",ref:G,class:"drawer-header"},[b("div",re,[o(f(e),{size:18,component:f(I)},null,8,["component"]),b("span",oe,g(a.sessionAlias||a.sessionId.substring(0,8))+" ("+g(W.value)+")",1),P.value.gitBranch?(i(),u(f(L),{key:0,size:"small",type:"info"},{icon:v(()=>[o(f(e),{component:f(M)},null,8,["component"])]),default:v(()=>[n(" "+g(P.value.gitBranch),1)]),_:1})):t("",!0),c[3]||(c[3]=b("span",{class:"spacer"},null,-1)),o(f(e),{size:20,component:f(S),class:"close-btn",onClick:c[0]||(c[0]=e=>O.value=!1)},null,8,["component"])]),P.value.summary?(i(),y("div",ue,g(P.value.summary),1)):t("",!0)],512),b("div",ie,[B.value&&0===F.value.length?(i(),y("div",ce,[o(f(H),{size:"medium"},{description:v(()=>[...c[4]||(c[4]=[n("加载聊天记录...",-1)])]),_:1})])):B.value||0!==F.value.length?(i(),y("div",me,[b("div",ve,[o(f(s),{tertiary:"",size:"small",onClick:c[1]||(c[1]=e=>X.value=!X.value)},{default:v(()=>[n(g(X.value?"展开用户目录":"收起用户目录"),1)]),_:1})]),b("aside",{class:d(["toc-rail",{"mobile-collapsed":X.value}])},[b("div",pe,[c[5]||(c[5]=n(" 用户目录 ",-1)),D.value?(i(),y("span",de,"加载中...")):t("",!0)]),D.value&&0===Ce.value.length?(i(),y("div",fe,"目录加载中...")):0===Ce.value.length?(i(),y("div",he,"暂无用户消息")):(i(),y("div",ye,[(i(!0),y(p,null,r(Ce.value,e=>(i(),y("button",{key:e.userMessageNumber,type:"button",class:d(["toc-item",{active:V.value===e.userMessageNumber}]),onClick:s=>function(e){e?.userMessageNumber&&(V.value=e.userMessageNumber,qe({userMessageNumber:e.userMessageNumber},{allowLoadMore:!0}))}(e)},[b("span",ke,"#"+g(e.userMessageNumber),1),b("span",Ie,g(e.preview),1),b("span",Me,g(Qe(e.timestamp)),1)],10,be))),128))]))],2),b("div",we,[b("div",{class:"messages-container",ref_key:"messagesContainer",ref:Z,onScroll:Be},[U.value?(i(),y("div",Ne,[o(f(s),{loading:B.value,onClick:$e,size:"small",secondary:""},{icon:v(()=>[o(f(e),{component:f(w)},null,8,["component"])]),default:v(()=>[c[6]||(c[6]=n(" 加载更早的消息 ",-1))]),_:1},8,["loading"])])):t("",!0),b("div",je,[(i(!0),y(p,null,r(ze.value,({message:e,index:s})=>(i(),u(ne,{key:Se.value[s]||s,message:e,"message-anchor-id":Se.value[s]},null,8,["message","message-anchor-id"]))),128))])],544),Q.value?(i(),y("div",{key:0,class:"scroll-btn",onClick:Oe},[o(f(e),{size:18,component:f(x)},null,8,["component"])])):t("",!0)])])):(i(),y("div",ge,[o(f(A),{description:"暂无聊天记录"})]))])])]),_:1},8,["show","width"]))}},[["__scopeId","data-v-a3f56791"]]);export{Se as default};
1
+ import{i as e,s,t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as t,D as n,I as l,K as r,O as o,S as u,W as i,Z as c,_t as g,b as m,et as v,g as p,ht as d,mt as f,st as h,w as y,x as b,z as k}from"./vue-vendor-BqZbbXHA.js";import{St as I,W as M,gt as w,it as N,k as j,kt as x,mt as S,z as _}from"./icons-B-AzZoeE.js";import{n as z,t as C}from"./useResponsiveDrawer-C-UacYVP.js";import{M as H,ft as A,ut as L}from"./index-Bw6YXbBA.js";import{t as T}from"./clipboard-B46yyoz_.js";import{t as $}from"./markdown-u082bbtj.js";import{a as O,c as B,i as D,n as F,o as q,r as P,s as R,t as W}from"./xml-CgY3RMlX.js";import{c as E,l as J,s as K}from"./sessions-CaWUaysM.js";var U=["id"],Z={class:"message-header"},G={key:0,class:"message-model"},Q={class:"message-time"},V={class:"message-time"},X={key:0,class:"user-content"},Y={key:0},ee={key:1,class:"image-item"},se=["src"],ae=["innerHTML"],te=500,ne=a({__name:"ChatMessage",props:{message:{type:Object,required:!0},messageAnchorId:{type:String,default:""}},setup(s){B.registerLanguage("javascript",R),B.registerLanguage("python",P),B.registerLanguage("bash",D),B.registerLanguage("json",O),B.registerLanguage("typescript",q),B.registerLanguage("css",F),B.registerLanguage("xml",W),B.registerLanguage("html",W);const a=s,l=h(!1),u=m(()=>{const e=a.message.content;return"string"==typeof e&&e.length>te}),c=m(()=>{const e=a.message.content;return"string"==typeof e&&e.length>te?e.substring(0,te)+"...":e});$.setOptions({highlight:(e,s)=>{if(s&&B.getLanguage(s))try{return B.highlight(e,{language:s}).value}catch(a){}return B.highlightAuto(e).value},breaks:!0,gfm:!0});const v=m(()=>{if("assistant"===a.message.type&&a.message.content)try{return $.parse(a.message.content)}catch(e){return a.message.content}return""}),k=m(()=>{if("assistant"===a.message.type&&a.message.content)try{const e=a.message.content,s=e.length>te?e.substring(0,te)+"...":e;return $.parse(s)}catch(e){return a.message.content.substring(0,te)+"..."}return""});function M(e){return e?new Date(e).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):""}async function w(){const e="string"==typeof a.message.content?a.message.content:JSON.stringify(a.message.content);try{await T(e,{manualFallback:!1})}catch{}}function x(e){return e?"base64"===e.source?.type&&e.source?.data?`data:${e.source.media_type||"image/png"};base64,${e.source.data}`:"url"===e.source?.type&&e.source?.url?e.source.url:e.url?e.url:null:null}return(a,m)=>(i(),y("div",{id:s.messageAnchorId||void 0,class:d(["chat-message",[`message-${s.message.type}`]])},[b("div",Z,["assistant"===s.message.type?(i(),y(p,{key:0},[o(f(e),{size:16,component:f(I),class:"role-icon"},null,8,["component"]),m[1]||(m[1]=b("span",{class:"message-role"},"AI",-1)),s.message.model?(i(),y("span",G,g(s.message.model),1)):t("",!0),b("span",Q,g(s.message.timestamp?M(s.message.timestamp):""),1),m[2]||(m[2]=b("span",{class:"spacer"},null,-1)),b("span",{class:"copy-btn",onClick:w,title:"复制"},[o(f(e),{size:14,component:f(N)},null,8,["component"])])],64)):(i(),y(p,{key:1},[b("span",{class:"copy-btn",onClick:w,title:"复制"},[o(f(e),{size:14,component:f(N)},null,8,["component"])]),m[3]||(m[3]=b("span",{class:"spacer"},null,-1)),b("span",V,g(s.message.timestamp?M(s.message.timestamp):""),1),m[4]||(m[4]=b("span",{class:"message-role"},"用户",-1)),o(f(e),{size:16,component:f(j),class:"role-icon"},null,8,["component"])],64))]),b("div",{class:d(["message-content",{collapsed:!l.value&&u.value}])},["user"===s.message.type?(i(),y("div",X,["string"==typeof s.message.content?(i(),y(p,{key:0},[n(g(l.value?s.message.content:c.value),1)],64)):Array.isArray(s.message.content)?(i(!0),y(p,{key:1},r(s.message.content,(s,a)=>(i(),y("div",{key:a,class:"content-item"},["text"===s.type?(i(),y("div",Y,g(s.text),1)):"image"===s.type?(i(),y("div",ee,[x(s)?(i(),y("img",{key:0,src:x(s),alt:"会话图片",loading:"lazy"},null,8,se)):(i(),y(p,{key:1},[o(f(e),{size:20,component:f(_)},null,8,["component"]),m[5]||(m[5]=b("span",null,"图片内容",-1))],64))])):t("",!0)]))),128)):t("",!0)])):"assistant"===s.message.type?(i(),y("div",{key:1,class:"assistant-content markdown-body",innerHTML:l.value?v.value:k.value},null,8,ae)):t("",!0)],2),u.value?(i(),y("div",{key:0,class:"expand-btn",onClick:m[0]||(m[0]=e=>l.value=!l.value)},g(l.value?"收起":"展开全部"),1)):t("",!0)],10,U))}},[["__scopeId","data-v-35aebdef"]]),le={class:"drawer-wrapper"},re={class:"header-row"},oe={class:"session-name"},ue={key:0,class:"session-summary"},ie={class:"drawer-body"},ce={key:0,class:"loading-container"},ge={key:1,class:"empty-container"},me={key:2,class:"history-layout"},ve={class:"mobile-toc-toggle"},pe={class:"toc-header"},de={key:0,class:"toc-header-hint"},fe={key:0,class:"toc-empty"},he={key:1,class:"toc-empty"},ye={key:2,class:"toc-list"},be=["onClick"],ke={class:"toc-order"},Ie={class:"toc-preview"},Me={class:"toc-time"},we={class:"messages-pane"},Ne={key:0,class:"load-more-top"},je={class:"messages-list"},xe=20,Se=a({__name:"ChatHistoryDrawer",props:{show:{type:Boolean,default:!1},projectName:{type:String,required:!0},sessionId:{type:String,required:!0},sessionAlias:{type:String,default:""},channel:{type:String,default:"claude"}},emits:["update:show","error"],setup(a,{expose:N,emit:j}){const _=a,T=j,{drawerWidth:$}=C(960,840),O=m({get:()=>_.show,set:e=>T("update:show",e)}),B=h(!1),D=h(!1),F=h([]),q=h([]),P=h({}),R=h(1),W=h(0),U=h(!1),Z=h(null),G=h(null),Q=h(!1),V=h(null),X=h(!1),Y=h(null);let ee=0,se=null,ae="";const te=m(()=>Ke(_.sessionId).slice(0,16)||"session"),Se=m(()=>{const e=new Map;return F.value.map((s,a)=>{const t=function(e,s){const a=Je(e);if(a)return`msg-${te.value}-${Ke(a)}`;const t=e?.timestamp?String(e.timestamp):"",n=e?.type?String(e.type):"unknown",l=function(e){let s=0;for(let a=0;a<e.length;a+=1)s=(s<<5)-s+e.charCodeAt(a),s|=0;return Math.abs(s).toString(36)}(`${n}|${t}|${function(e){const s=e?.content;if("string"==typeof s)return s.slice(0,240);if(Array.isArray(s))try{return JSON.stringify(s).slice(0,240)}catch{return String(s)}return null==s?"":String(s).slice(0,240)}(e)}`),r=t?Ke(t):`idx${s}`;return`msg-${te.value}-${n}-${r}-${l}`}(s,a),n=e.get(t)||0;return e.set(t,n+1),0===n?t:`${t}-${n+1}`})}),_e=m(()=>{const e=new Map;return F.value.forEach((s,a)=>{!s.anchorOnly&&"user"===s.type&&s.userMessageNumber&&e.set(s.userMessageNumber,Se.value[a])}),e}),ze=m(()=>F.value.map((e,s)=>({message:e,index:s})).filter(({message:e})=>!e.anchorOnly)),Ce=m(()=>q.value);function He(e={}){return[e.lastModified||"",e.size||0].join(":")}async function Ae(){try{D.value=!0;const e=await E(_.projectName,_.sessionId,_.channel);q.value=Array.isArray(e?.items)?e.items:[]}catch(e){}finally{D.value=!1}}async function Le(){const e=await J(_.projectName,_.sessionId,_.channel);return ae=He(e),e}async function Te(e=1,s={}){if(B.value)return;const{skipFirstPageScroll:a=!1,limitOverride:t=xe}=s;try{B.value=!0;const{messages:s,metadata:n,pagination:r}=await K(_.projectName,_.sessionId,e,t,"desc",_.channel);1===e?(F.value=s.reverse(),P.value=n):F.value=[...s.reverse(),...F.value],R.value=r.page,W.value=r.total,U.value=r.hasMore,1===e&&l(async()=>{Y.value?await qe(Y.value,{allowLoadMore:!0}):a||Oe(!1),De()})}catch(n){const e="加载聊天记录失败: "+(n.response?.data?.error||n.message);T("error",e)}finally{B.value=!1}}function $e(){if(!U.value||B.value)return;const e=Z.value,s=e?.scrollHeight||0;Te(R.value+1).then(()=>{l(()=>{if(e){const a=e.scrollHeight;e.scrollTop=a-s,De()}})})}function Oe(e=!0){l(()=>{const s=Z.value;s&&(s.scrollTo({top:s.scrollHeight,behavior:e?"smooth":"auto"}),De())})}function Be(e){const s=e.target;if(!s)return;const{scrollTop:a,scrollHeight:t,clientHeight:n}=s;Q.value=t-a-n>200,a<100&&U.value&&!B.value&&$e(),De()}function De(){ee||(ee=requestAnimationFrame(()=>{ee=0,function(){const e=Z.value;if(!e||0===Ce.value.length)return void(V.value=null);const s=Array.from(_e.value.keys()).sort((e,s)=>e-s);if(!s.length)return void(V.value=Ce.value[Ce.value.length-1]?.userMessageNumber||null);const a=Math.max(0,e.scrollHeight-e.clientHeight);if(a>0&&a-e.scrollTop<=6)return void(V.value=s[s.length-1]);const t=e.scrollTop,n=t+e.clientHeight,l=t+Ge();let r=null,o=null;for(const i of Ce.value){const s=Ue(_e.value.get(i.userMessageNumber));if(!s)continue;const a=Ze(s,e),u=a+s.offsetHeight;a<=l+1&&(o=i),!r&&u>t&&a<n&&(r=i)}const u=o?.userMessageNumber||r?.userMessageNumber||s[0]||Ce.value[0].userMessageNumber;u&&(V.value=u)}()}))}function Fe(e,s=!0){const a=Z.value;if(!a||!e)return!1;const t=Ue(e);if(!t)return!1;const n=Ze(t,a),l=Math.max(0,a.scrollHeight-a.clientHeight),r=Ve(n-Ge(),0,l);return a.scrollTo({top:r,behavior:s?"smooth":"auto"}),De(),!0}async function qe(e,s={}){if(!e)return!1;const{allowLoadMore:a=!1}=s;let t=0;for(;t<50;){t+=1;const s=Pe(e);if(s&&Fe(s,!0))return Number.isInteger(e.userMessageNumber)&&(V.value=e.userMessageNumber),Y.value=null,!0;if(!a||!U.value||B.value)break;const n=R.value;if(await Te(R.value+1),R.value===n)break}return Y.value=null,De(),!1}function Pe(e){if(e.anchorId&&"string"==typeof e.anchorId)return e.anchorId;if(Number.isInteger(e.userMessageNumber))return _e.value.get(e.userMessageNumber)||"";if("number"==typeof e.messageIndex&&e.messageIndex>=0)return Se.value[e.messageIndex]||"";if(e.messageId){const s=String(e.messageId),a=F.value.findIndex(e=>Je(e)===s);if(a>=0)return Se.value[a]}return""}async function Re(){if(B.value)return;const e=Z.value,s=!e||e.scrollHeight-e.scrollTop-e.clientHeight<=40,a=e?.scrollTop||0,t=Math.max(R.value,1);try{B.value=!0;const e=[];for(let a=1;a<=t;a+=1)e.push(await K(_.projectName,_.sessionId,a,xe,"desc",_.channel));const s=[];for(let a=e.length-1;a>=0;a-=1){const t=e[a],n=Array.isArray(t?.messages)?t.messages:[];s.push(...n.slice().reverse())}F.value=s,P.value=e[0]?.metadata||P.value,W.value=e[0]?.pagination?.total||s.length,R.value=t,U.value=t*xe<W.value}finally{B.value=!1}await l(),e&&(s?Oe(!1):(e.scrollTop=Ve(a,0,Math.max(0,e.scrollHeight-e.clientHeight)),De()))}function We(){se&&(clearInterval(se),se=null)}function Ee(){We(),se=setInterval(()=>{O.value&&async function(){try{const e=He(await J(_.projectName,_.sessionId,_.channel));if(!e)return;if(ae&&e!==ae)return ae=e,void(await Promise.all([Ae(),Re()]));ae=e}catch(e){}}()},3e3)}function Je(e){return e&&"object"==typeof e?String(e.messageId||e.id||e.uuid||e.turnId||""):""}function Ke(e){return String(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)}function Ue(e){const s=Z.value;if(!s||!e)return null;const a=document.getElementById(e);return a&&s.contains(a)?a:null}function Ze(e,s){const a=s.getBoundingClientRect(),t=e.getBoundingClientRect();return s.scrollTop+(t.top-a.top)}function Ge(){return(G.value?.offsetHeight||0)+12}function Qe(e){if(!e)return"";const s=new Date(e);return Number.isNaN(s.getTime())?"":s.toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function Ve(e,s,a){return Math.min(Math.max(e,s),a)}return c(Ce,()=>{Ce.value.length?(Ce.value.some(e=>e.userMessageNumber===V.value)||(V.value=Ce.value[0].userMessageNumber),De()):V.value=null},{deep:!0}),c(O,e=>{e?l(()=>{De()}):We()}),k(()=>{ee&&(cancelAnimationFrame(ee),ee=0),We()}),N({open:function(e){We(),Y.value=function(e){if(!e||"object"!=typeof e)return null;const s=e.jumpTo&&"object"==typeof e.jumpTo?e.jumpTo:e,a={anchorId:"string"==typeof s.anchorId?s.anchorId:"",messageId:s.messageId||s.id||"",messageIndex:Number.isInteger(s.messageIndex)?s.messageIndex:null,userMessageNumber:Number.isInteger(s.userMessageNumber)?s.userMessageNumber:null};return a.anchorId||a.messageId||null!==a.messageIndex||null!==a.userMessageNumber?a:null}(e),X.value=!1,F.value=[],q.value=[],P.value={},R.value=1,W.value=0,U.value=!1,Q.value=!1,V.value=null,ae="",Promise.all([Ae(),Te(1,{skipFirstPageScroll:Boolean(Y.value)}),Le()]).then(()=>{O.value&&Ee()}).catch(()=>{})}}),(l,c)=>(i(),u(f(z),{show:O.value,"onUpdate:show":c[2]||(c[2]=e=>O.value=e),width:f($),placement:"right","auto-focus":!1,"trap-focus":!1,"block-scroll":!1},{default:v(()=>[b("div",le,[b("div",{ref_key:"headerRef",ref:G,class:"drawer-header"},[b("div",re,[o(f(e),{size:18,component:f(I)},null,8,["component"]),b("span",oe,g(a.sessionAlias||a.sessionId.substring(0,8))+" ("+g(W.value)+")",1),P.value.gitBranch?(i(),u(f(L),{key:0,size:"small",type:"info"},{icon:v(()=>[o(f(e),{component:f(M)},null,8,["component"])]),default:v(()=>[n(" "+g(P.value.gitBranch),1)]),_:1})):t("",!0),c[3]||(c[3]=b("span",{class:"spacer"},null,-1)),o(f(e),{size:20,component:f(S),class:"close-btn",onClick:c[0]||(c[0]=e=>O.value=!1)},null,8,["component"])]),P.value.summary?(i(),y("div",ue,g(P.value.summary),1)):t("",!0)],512),b("div",ie,[B.value&&0===F.value.length?(i(),y("div",ce,[o(f(H),{size:"medium"},{description:v(()=>[...c[4]||(c[4]=[n("加载聊天记录...",-1)])]),_:1})])):B.value||0!==F.value.length?(i(),y("div",me,[b("div",ve,[o(f(s),{tertiary:"",size:"small",onClick:c[1]||(c[1]=e=>X.value=!X.value)},{default:v(()=>[n(g(X.value?"展开用户目录":"收起用户目录"),1)]),_:1})]),b("aside",{class:d(["toc-rail",{"mobile-collapsed":X.value}])},[b("div",pe,[c[5]||(c[5]=n(" 用户目录 ",-1)),D.value?(i(),y("span",de,"加载中...")):t("",!0)]),D.value&&0===Ce.value.length?(i(),y("div",fe,"目录加载中...")):0===Ce.value.length?(i(),y("div",he,"暂无用户消息")):(i(),y("div",ye,[(i(!0),y(p,null,r(Ce.value,e=>(i(),y("button",{key:e.userMessageNumber,type:"button",class:d(["toc-item",{active:V.value===e.userMessageNumber}]),onClick:s=>function(e){e?.userMessageNumber&&(V.value=e.userMessageNumber,qe({userMessageNumber:e.userMessageNumber},{allowLoadMore:!0}))}(e)},[b("span",ke,"#"+g(e.userMessageNumber),1),b("span",Ie,g(e.preview),1),b("span",Me,g(Qe(e.timestamp)),1)],10,be))),128))]))],2),b("div",we,[b("div",{class:"messages-container",ref_key:"messagesContainer",ref:Z,onScroll:Be},[U.value?(i(),y("div",Ne,[o(f(s),{loading:B.value,onClick:$e,size:"small",secondary:""},{icon:v(()=>[o(f(e),{component:f(w)},null,8,["component"])]),default:v(()=>[c[6]||(c[6]=n(" 加载更早的消息 ",-1))]),_:1},8,["loading"])])):t("",!0),b("div",je,[(i(!0),y(p,null,r(ze.value,({message:e,index:s})=>(i(),u(ne,{key:Se.value[s]||s,message:e,"message-anchor-id":Se.value[s]},null,8,["message","message-anchor-id"]))),128))])],544),Q.value?(i(),y("div",{key:0,class:"scroll-btn",onClick:Oe},[o(f(e),{size:18,component:f(x)},null,8,["component"])])):t("",!0)])])):(i(),y("div",ge,[o(f(A),{description:"暂无聊天记录"})]))])])]),_:1},8,["show","width"]))}},[["__scopeId","data-v-a3f56791"]]);export{Se as default};
@@ -1 +1 @@
1
- import{$t as e,Dt as r,E as a,I as t,N as n,Qt as l,St as i,Tt as o,Yt as s,bn as d,en as c,gn as p,gt as m,hn as g,ht as v,j as f,rn as h,vn as u,wt as x,yn as w}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as C,G as b,M as y,N as $,b as z,dt as A,f as P,st as N,tt as D}from"./vue-vendor-BqZbbXHA.js";import{Tt as S,gt as _,lt as E,nt as R}from"./index-BlUXw84U.js";var I=C({name:"ChevronLeft",render:()=>y("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},y("path",{d:"M10.3536 3.14645C10.5488 3.34171 10.5488 3.65829 10.3536 3.85355L6.20711 8L10.3536 12.1464C10.5488 12.3417 10.5488 12.6583 10.3536 12.8536C10.1583 13.0488 9.84171 13.0488 9.64645 12.8536L5.14645 8.35355C4.95118 8.15829 4.95118 7.84171 5.14645 7.64645L9.64645 3.14645C9.84171 2.95118 10.1583 2.95118 10.3536 3.14645Z",fill:"currentColor"}))}),k=p("collapse","width: 100%;",[p("collapse-item","\n font-size: var(--n-font-size);\n color: var(--n-text-color);\n transition:\n color .3s var(--n-bezier),\n border-color .3s var(--n-bezier);\n margin: var(--n-item-margin);\n ",[w("disabled",[u("header","cursor: not-allowed;",[u("header-main","\n color: var(--n-title-text-color-disabled);\n "),p("collapse-item-arrow","\n color: var(--n-arrow-color-disabled);\n ")])]),p("collapse-item","margin-left: 32px;"),g("&:first-child","margin-top: 0;"),g("&:first-child >",[u("header","padding-top: 0;")]),w("left-arrow-placement",[u("header",[p("collapse-item-arrow","margin-right: 4px;")])]),w("right-arrow-placement",[u("header",[p("collapse-item-arrow","margin-left: 4px;")])]),u("content-wrapper",[u("content-inner","padding-top: 16px;"),E({duration:"0.15s"})]),w("active",[u("header",[w("active",[p("collapse-item-arrow","transform: rotate(90deg);")])])]),g("&:not(:first-child)","border-top: 1px solid var(--n-divider-color);"),d("disabled",[w("trigger-area-main",[u("header",[u("header-main","cursor: pointer;"),p("collapse-item-arrow","cursor: default;")])]),w("trigger-area-arrow",[u("header",[p("collapse-item-arrow","cursor: pointer;")])]),w("trigger-area-extra",[u("header",[u("header-extra","cursor: pointer;")])])]),u("header","\n font-size: var(--n-title-font-size);\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n transition: color .3s var(--n-bezier);\n position: relative;\n padding: var(--n-title-padding);\n color: var(--n-title-text-color);\n ",[u("header-main","\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n font-weight: var(--n-title-font-weight);\n transition: color .3s var(--n-bezier);\n flex: 1;\n color: var(--n-title-text-color);\n "),u("header-extra","\n display: flex;\n align-items: center;\n transition: color .3s var(--n-bezier);\n color: var(--n-text-color);\n "),p("collapse-item-arrow","\n display: flex;\n transition:\n transform .15s var(--n-bezier),\n color .3s var(--n-bezier);\n font-size: 18px;\n color: var(--n-arrow-color);\n ")])])]),T=Object.assign(Object.assign({},n.props),{defaultExpandedNames:{type:[Array,String],default:null},expandedNames:[Array,String],arrowPlacement:{type:String,default:"left"},accordion:{type:Boolean,default:!1},displayDirective:{type:String,default:"if"},triggerAreas:{type:Array,default:()=>["main","extra","arrow"]},onItemHeaderClick:[Function,Array],"onUpdate:expandedNames":[Function,Array],onUpdateExpandedNames:[Function,Array],onExpandedNamesChange:{type:[Function,Array],validator:()=>!0,default:void 0}}),j=s("n-collapse"),F=C({name:"Collapse",props:T,slots:Object,setup(e,{slots:r}){const{mergedClsPrefixRef:a,inlineThemeDisabled:i,mergedRtlRef:s}=m(e),d=N(e.defaultExpandedNames),c=z(()=>e.expandedNames),p=l(c,d),g=n("Collapse","-collapse",k,R,e,a);function f(r){const{"onUpdate:expandedNames":a,onUpdateExpandedNames:t,onExpandedNamesChange:n}=e;t&&o(t,r),a&&o(a,r),n&&o(n,r),d.value=r}function h(r){const{onItemHeaderClick:a}=e;a&&o(a,r)}b(j,{props:e,mergedClsPrefixRef:a,expandedNamesRef:p,slots:r,toggleItem:function(r,a,t){const{accordion:n}=e,{value:l}=p;if(n)r?(f([a]),h({name:a,expanded:!0,event:t})):(f([]),h({name:a,expanded:!1,event:t}));else if(Array.isArray(l)){const e=l.slice(),r=e.findIndex(e=>a===e);~r?(e.splice(r,1),f(e),h({name:a,expanded:!1,event:t})):(e.push(a),f(e),h({name:a,expanded:!0,event:t}))}else f([a]),h({name:a,expanded:!0,event:t})}});const u=t("Collapse",s,a),x=z(()=>{const{common:{cubicBezierEaseInOut:e},self:{titleFontWeight:r,dividerColor:a,titlePadding:t,titleTextColor:n,titleTextColorDisabled:l,textColor:i,arrowColor:o,fontSize:s,titleFontSize:d,arrowColorDisabled:c,itemMargin:p}}=g.value;return{"--n-font-size":s,"--n-bezier":e,"--n-text-color":i,"--n-divider-color":a,"--n-title-padding":t,"--n-title-font-size":d,"--n-title-text-color":n,"--n-title-text-color-disabled":l,"--n-title-font-weight":r,"--n-arrow-color":o,"--n-arrow-color-disabled":c,"--n-item-margin":p}}),w=i?v("collapse",void 0,x,e):void 0;return{rtlEnabled:u,mergedTheme:g,mergedClsPrefix:a,cssVars:i?void 0:x,themeClass:null==w?void 0:w.themeClass,onRender:null==w?void 0:w.onRender}},render(){var e;return null===(e=this.onRender)||void 0===e||e.call(this),y("div",{class:[`${this.mergedClsPrefix}-collapse`,this.rtlEnabled&&`${this.mergedClsPrefix}-collapse--rtl`,this.themeClass],style:this.cssVars},this.$slots)}}),B=C({name:"CollapseItemContent",props:{displayDirective:{type:String,required:!0},show:Boolean,clsPrefix:{type:String,required:!0}},setup:e=>({onceTrue:c(A(e,"show"))}),render(){return y(a,null,{default:()=>{const{show:e,displayDirective:r,onceTrue:a,clsPrefix:t}=this,n="show"===r&&a,l=y("div",{class:`${t}-collapse-item__content-wrapper`},y("div",{class:`${t}-collapse-item__content-inner`},this.$slots));return n?D(l,[[P,e]]):e?l:null}})}}),L=C({name:"CollapseItem",props:{title:String,name:[String,Number],disabled:Boolean,displayDirective:String},setup(a){const{mergedRtlRef:n}=m(a),l=h(),i=e(()=>{var e;return null!==(e=a.name)&&void 0!==e?e:l}),o=$(j);o||r("collapse-item","`n-collapse-item` must be placed inside `n-collapse`.");const{expandedNamesRef:s,props:d,mergedClsPrefixRef:c,slots:p}=o,g=z(()=>{const{value:e}=s;if(Array.isArray(e)){const{value:r}=i;return!~e.findIndex(e=>e===r)}if(e){const{value:r}=i;return r!==e}return!0});return{rtlEnabled:t("Collapse",n,c),collapseSlots:p,randomName:l,mergedClsPrefix:c,collapsed:g,triggerAreas:A(d,"triggerAreas"),mergedDisplayDirective:z(()=>{const{displayDirective:e}=a;return e||d.displayDirective}),arrowPlacement:z(()=>d.arrowPlacement),handleClick(e){let r="main";S(e,"arrow")&&(r="arrow"),S(e,"extra")&&(r="extra"),d.triggerAreas.includes(r)&&o&&!a.disabled&&o.toggleItem(g.value,i.value,e)}}},render(){const{collapseSlots:e,$slots:r,arrowPlacement:a,collapsed:t,mergedDisplayDirective:n,mergedClsPrefix:l,disabled:o,triggerAreas:s}=this,d=i(r.header,{collapsed:t},()=>[this.title]),c=r["header-extra"]||e["header-extra"],p=r.arrow||e.arrow;return y("div",{class:[`${l}-collapse-item`,`${l}-collapse-item--${a}-arrow-placement`,o&&`${l}-collapse-item--disabled`,!t&&`${l}-collapse-item--active`,s.map(e=>`${l}-collapse-item--trigger-area-${e}`)]},y("div",{class:[`${l}-collapse-item__header`,!t&&`${l}-collapse-item__header--active`]},y("div",{class:`${l}-collapse-item__header-main`,onClick:this.handleClick},"right"===a&&d,y("div",{class:`${l}-collapse-item-arrow`,key:this.rtlEnabled?0:1,"data-arrow":!0},i(p,{collapsed:t},()=>[y(f,{clsPrefix:l},{default:()=>this.rtlEnabled?y(I,null):y(_,null)})])),"left"===a&&d),x(c,{collapsed:t},e=>y("div",{class:`${l}-collapse-item__header-extra`,onClick:this.handleClick,"data-extra":!0},e))),y(B,{clsPrefix:l,displayDirective:n,show:!t},r))}});export{F as n,L as t};
1
+ import{$t as e,Dt as r,E as a,I as t,N as n,Qt as l,St as i,Tt as o,Yt as s,bn as d,en as c,gn as p,gt as m,hn as g,ht as v,j as f,rn as h,vn as u,wt as x,yn as w}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as C,G as b,M as y,N as $,b as z,dt as A,f as P,st as N,tt as D}from"./vue-vendor-BqZbbXHA.js";import{Tt as S,gt as _,lt as E,nt as R}from"./index-Bw6YXbBA.js";var I=C({name:"ChevronLeft",render:()=>y("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},y("path",{d:"M10.3536 3.14645C10.5488 3.34171 10.5488 3.65829 10.3536 3.85355L6.20711 8L10.3536 12.1464C10.5488 12.3417 10.5488 12.6583 10.3536 12.8536C10.1583 13.0488 9.84171 13.0488 9.64645 12.8536L5.14645 8.35355C4.95118 8.15829 4.95118 7.84171 5.14645 7.64645L9.64645 3.14645C9.84171 2.95118 10.1583 2.95118 10.3536 3.14645Z",fill:"currentColor"}))}),k=p("collapse","width: 100%;",[p("collapse-item","\n font-size: var(--n-font-size);\n color: var(--n-text-color);\n transition:\n color .3s var(--n-bezier),\n border-color .3s var(--n-bezier);\n margin: var(--n-item-margin);\n ",[w("disabled",[u("header","cursor: not-allowed;",[u("header-main","\n color: var(--n-title-text-color-disabled);\n "),p("collapse-item-arrow","\n color: var(--n-arrow-color-disabled);\n ")])]),p("collapse-item","margin-left: 32px;"),g("&:first-child","margin-top: 0;"),g("&:first-child >",[u("header","padding-top: 0;")]),w("left-arrow-placement",[u("header",[p("collapse-item-arrow","margin-right: 4px;")])]),w("right-arrow-placement",[u("header",[p("collapse-item-arrow","margin-left: 4px;")])]),u("content-wrapper",[u("content-inner","padding-top: 16px;"),E({duration:"0.15s"})]),w("active",[u("header",[w("active",[p("collapse-item-arrow","transform: rotate(90deg);")])])]),g("&:not(:first-child)","border-top: 1px solid var(--n-divider-color);"),d("disabled",[w("trigger-area-main",[u("header",[u("header-main","cursor: pointer;"),p("collapse-item-arrow","cursor: default;")])]),w("trigger-area-arrow",[u("header",[p("collapse-item-arrow","cursor: pointer;")])]),w("trigger-area-extra",[u("header",[u("header-extra","cursor: pointer;")])])]),u("header","\n font-size: var(--n-title-font-size);\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n transition: color .3s var(--n-bezier);\n position: relative;\n padding: var(--n-title-padding);\n color: var(--n-title-text-color);\n ",[u("header-main","\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n font-weight: var(--n-title-font-weight);\n transition: color .3s var(--n-bezier);\n flex: 1;\n color: var(--n-title-text-color);\n "),u("header-extra","\n display: flex;\n align-items: center;\n transition: color .3s var(--n-bezier);\n color: var(--n-text-color);\n "),p("collapse-item-arrow","\n display: flex;\n transition:\n transform .15s var(--n-bezier),\n color .3s var(--n-bezier);\n font-size: 18px;\n color: var(--n-arrow-color);\n ")])])]),T=Object.assign(Object.assign({},n.props),{defaultExpandedNames:{type:[Array,String],default:null},expandedNames:[Array,String],arrowPlacement:{type:String,default:"left"},accordion:{type:Boolean,default:!1},displayDirective:{type:String,default:"if"},triggerAreas:{type:Array,default:()=>["main","extra","arrow"]},onItemHeaderClick:[Function,Array],"onUpdate:expandedNames":[Function,Array],onUpdateExpandedNames:[Function,Array],onExpandedNamesChange:{type:[Function,Array],validator:()=>!0,default:void 0}}),j=s("n-collapse"),F=C({name:"Collapse",props:T,slots:Object,setup(e,{slots:r}){const{mergedClsPrefixRef:a,inlineThemeDisabled:i,mergedRtlRef:s}=m(e),d=N(e.defaultExpandedNames),c=z(()=>e.expandedNames),p=l(c,d),g=n("Collapse","-collapse",k,R,e,a);function f(r){const{"onUpdate:expandedNames":a,onUpdateExpandedNames:t,onExpandedNamesChange:n}=e;t&&o(t,r),a&&o(a,r),n&&o(n,r),d.value=r}function h(r){const{onItemHeaderClick:a}=e;a&&o(a,r)}b(j,{props:e,mergedClsPrefixRef:a,expandedNamesRef:p,slots:r,toggleItem:function(r,a,t){const{accordion:n}=e,{value:l}=p;if(n)r?(f([a]),h({name:a,expanded:!0,event:t})):(f([]),h({name:a,expanded:!1,event:t}));else if(Array.isArray(l)){const e=l.slice(),r=e.findIndex(e=>a===e);~r?(e.splice(r,1),f(e),h({name:a,expanded:!1,event:t})):(e.push(a),f(e),h({name:a,expanded:!0,event:t}))}else f([a]),h({name:a,expanded:!0,event:t})}});const u=t("Collapse",s,a),x=z(()=>{const{common:{cubicBezierEaseInOut:e},self:{titleFontWeight:r,dividerColor:a,titlePadding:t,titleTextColor:n,titleTextColorDisabled:l,textColor:i,arrowColor:o,fontSize:s,titleFontSize:d,arrowColorDisabled:c,itemMargin:p}}=g.value;return{"--n-font-size":s,"--n-bezier":e,"--n-text-color":i,"--n-divider-color":a,"--n-title-padding":t,"--n-title-font-size":d,"--n-title-text-color":n,"--n-title-text-color-disabled":l,"--n-title-font-weight":r,"--n-arrow-color":o,"--n-arrow-color-disabled":c,"--n-item-margin":p}}),w=i?v("collapse",void 0,x,e):void 0;return{rtlEnabled:u,mergedTheme:g,mergedClsPrefix:a,cssVars:i?void 0:x,themeClass:null==w?void 0:w.themeClass,onRender:null==w?void 0:w.onRender}},render(){var e;return null===(e=this.onRender)||void 0===e||e.call(this),y("div",{class:[`${this.mergedClsPrefix}-collapse`,this.rtlEnabled&&`${this.mergedClsPrefix}-collapse--rtl`,this.themeClass],style:this.cssVars},this.$slots)}}),B=C({name:"CollapseItemContent",props:{displayDirective:{type:String,required:!0},show:Boolean,clsPrefix:{type:String,required:!0}},setup:e=>({onceTrue:c(A(e,"show"))}),render(){return y(a,null,{default:()=>{const{show:e,displayDirective:r,onceTrue:a,clsPrefix:t}=this,n="show"===r&&a,l=y("div",{class:`${t}-collapse-item__content-wrapper`},y("div",{class:`${t}-collapse-item__content-inner`},this.$slots));return n?D(l,[[P,e]]):e?l:null}})}}),L=C({name:"CollapseItem",props:{title:String,name:[String,Number],disabled:Boolean,displayDirective:String},setup(a){const{mergedRtlRef:n}=m(a),l=h(),i=e(()=>{var e;return null!==(e=a.name)&&void 0!==e?e:l}),o=$(j);o||r("collapse-item","`n-collapse-item` must be placed inside `n-collapse`.");const{expandedNamesRef:s,props:d,mergedClsPrefixRef:c,slots:p}=o,g=z(()=>{const{value:e}=s;if(Array.isArray(e)){const{value:r}=i;return!~e.findIndex(e=>e===r)}if(e){const{value:r}=i;return r!==e}return!0});return{rtlEnabled:t("Collapse",n,c),collapseSlots:p,randomName:l,mergedClsPrefix:c,collapsed:g,triggerAreas:A(d,"triggerAreas"),mergedDisplayDirective:z(()=>{const{displayDirective:e}=a;return e||d.displayDirective}),arrowPlacement:z(()=>d.arrowPlacement),handleClick(e){let r="main";S(e,"arrow")&&(r="arrow"),S(e,"extra")&&(r="extra"),d.triggerAreas.includes(r)&&o&&!a.disabled&&o.toggleItem(g.value,i.value,e)}}},render(){const{collapseSlots:e,$slots:r,arrowPlacement:a,collapsed:t,mergedDisplayDirective:n,mergedClsPrefix:l,disabled:o,triggerAreas:s}=this,d=i(r.header,{collapsed:t},()=>[this.title]),c=r["header-extra"]||e["header-extra"],p=r.arrow||e.arrow;return y("div",{class:[`${l}-collapse-item`,`${l}-collapse-item--${a}-arrow-placement`,o&&`${l}-collapse-item--disabled`,!t&&`${l}-collapse-item--active`,s.map(e=>`${l}-collapse-item--trigger-area-${e}`)]},y("div",{class:[`${l}-collapse-item__header`,!t&&`${l}-collapse-item__header--active`]},y("div",{class:`${l}-collapse-item__header-main`,onClick:this.handleClick},"right"===a&&d,y("div",{class:`${l}-collapse-item-arrow`,key:this.rtlEnabled?0:1,"data-arrow":!0},i(p,{collapsed:t},()=>[y(f,{clsPrefix:l},{default:()=>this.rtlEnabled?y(I,null):y(_,null)})])),"left"===a&&d),x(c,{collapsed:t},e=>y("div",{class:`${l}-collapse-item__header-extra`,onClick:this.handleClick,"data-extra":!0},e))),y(B,{clsPrefix:l,displayDirective:n,show:!t},r))}});export{F as n,L as t};
@@ -1 +1 @@
1
- import{i as a,s as e,t as s}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as l,D as t,K as n,O as o,S as i,V as c,W as d,Y as u,Z as m,_t as r,b as p,et as v,g as f,ht as g,m as y,mt as b,r as h,st as w,w as k,x as _}from"./vue-vendor-BqZbbXHA.js";import{t as j}from"./client-BgcNg4Bt.js";import{r as C,s as x,t as z}from"./platforms-mqqe_82d.js";import{$,At as P,Nt as I,R as T,S as U,V as S,_ as H,ct as B,g as D,i as O,j as L,m as M,st as R}from"./icons-B-AzZoeE.js";import{l as E}from"./light-C2X7hegj.js";import{a as q,c as A,i as V,o as F,r as G,s as N,t as W}from"./AssetPathField-CLqalYv-.js";import{n as Y,t as Z}from"./useResponsiveDrawer-ChHZrTfl.js";import{t as K}from"./DrawerContent-ChXgZ1Xm.js";import{$ as X,Et as J,I as Q,L as aa,M as ea,T as sa,X as la,Y as ta,Z as na,ft as oa,j as ia,k as ca,st as da,ut as ua,w as ma}from"./index-BlUXw84U.js";import{t as ra}from"./MarkdownEditor-Ul0bSGj-.js";async function pa(a=null,e="claude",s={}){const l=ma("commands",e,s.scope||"",a||"");return sa(l,s=>j.get("/commands",{params:a?{projectPath:a,platform:e}:{platform:e},signal:s}).then(a=>a.data),"commands",`commands:${e}`)}var va={class:"asset-card-main"},fa={class:"asset-card-top"},ga={class:"asset-card-title-stack"},ya={class:"asset-card-title-row"},ba={class:"asset-name mono"},ha={class:"asset-tags"},wa={key:0,class:"asset-description"},ka={class:"asset-meta"},_a={key:0,class:"asset-meta-item"},ja={key:1,class:"asset-meta-item"},Ca={class:"asset-card-actions"},xa={class:"asset-platform-strip"},za=["onClick"],$a=s({__name:"CommandCard",props:{command:{type:Object,required:!0},deleting:{type:Boolean,default:!1},registryInfo:{type:Object,default:null},toggling:{type:Boolean,default:!1}},emits:["click","edit","delete","toggle-enabled","toggle-platform"],setup(s,{emit:c}){const m=s,h=c,{byCapability:w}=J(),j=p(()=>w("commands"));return(c,p)=>{return d(),k("div",{class:g(["command-card asset-card",{"is-project":"project"===s.command.scope,"is-managed":s.registryInfo}]),onClick:p[4]||(p[4]=a=>h("click",s.command))},[_("div",va,[_("div",fa,[_("div",ga,[_("div",ya,[_("span",{class:g(["asset-status-dot",{active:s.registryInfo?.enabled||"project"===s.command.scope}])},null,2),_("span",ba,"/"+r(s.command.name),1)]),_("div",ha,[o(b(ua),{type:"user"===s.command.scope?"info":"success",size:"tiny",bordered:!1},{default:v(()=>[t(r("user"===s.command.scope?"用户级":"项目级"),1)]),_:1},8,["type"]),s.registryInfo?(d(),i(b(ua),{key:0,type:"success",size:"tiny",bordered:!1},{default:v(()=>[...p[5]||(p[5]=[t("托管",-1)])]),_:1})):l("",!0),s.command.namespace?(d(),i(b(ua),{key:1,type:"warning",size:"tiny",bordered:!1},{default:v(()=>[t(r(s.command.namespace),1)]),_:1})):l("",!0)])])]),s.command.description?(d(),k("div",wa,r((w=s.command.description,w?w.length>80?w.slice(0,80)+"...":w:"")),1)):l("",!0),_("div",ka,[s.command.allowedTools?(d(),k("span",_a,[o(b(a),{size:"12"},{default:v(()=>[o(b(S))]),_:1}),t(" "+r(s.command.allowedTools),1)])):l("",!0),s.command.argumentHint?(d(),k("span",ja,[o(b(a),{size:"12"},{default:v(()=>[o(b(B))]),_:1}),t(" "+r(s.command.argumentHint),1)])):l("",!0)])]),_("div",Ca,[s.registryInfo?(d(),k(f,{key:0},[o(b(ta),{trigger:"hover"},{trigger:v(()=>[o(b(ia),{value:s.registryInfo.enabled,size:"small",loading:s.toggling,"onUpdate:value":p[0]||(p[0]=a=>h("toggle-enabled",s.command,a)),onClick:p[1]||(p[1]=y(()=>{},["stop"]))},null,8,["value","loading"])]),default:v(()=>[t(" "+r(s.registryInfo.enabled?"已启用":"已禁用"),1)]),_:1}),_("div",xa,[(d(!0),k(f,null,n(j.value,e=>(d(),i(b(ta),{key:e.key,trigger:"hover"},{trigger:v(()=>[_("span",{class:g(["asset-platform-icon",{active:s.registryInfo.platforms?.[e.key]}]),onClick:y(a=>h("toggle-platform",s.command,e.key,!s.registryInfo.platforms?.[e.key]),["stop"])},[o(b(a),{size:"14"},{default:v(()=>[(d(),i(u(e.icon)))]),_:2},1024)],10,za)]),default:v(()=>[t(" "+r(e.label||e.title||e.key)+" "+r(s.registryInfo.platforms?.[e.key]?"已启用":"未启用"),1)]),_:2},1024))),128))])],64)):(d(),k(f,{key:1},[o(b(e),{size:"tiny",tertiary:"",onClick:p[2]||(p[2]=y(a=>h("edit",s.command),["stop"]))},{default:v(()=>[...p[6]||(p[6]=[t(" 编辑 ",-1)])]),_:1}),o(b(e),{size:"tiny",tertiary:"",type:"error",loading:m.deleting,onClick:p[3]||(p[3]=y(a=>h("delete",s.command),["stop"]))},{default:v(()=>[...p[7]||(p[7]=[t(" 删除 ",-1)])]),_:1},8,["loading"])],64))])],2);var w}}},[["__scopeId","data-v-7ffa5383"]]),Pa={class:"asset-detail-drawer-header"},Ia={class:"asset-detail-identity"},Ta={class:"asset-detail-heading"},Ua={class:"asset-detail-name mono"},Sa={class:"asset-detail-meta"},Ha={key:2,class:"asset-detail-subtle"},Ba={class:"asset-detail-body"},Da={class:"asset-detail-container"},Oa={class:"asset-detail-info-section"},La={class:"asset-detail-description"},Ma={class:"asset-detail-info-section"},Ra={class:"asset-detail-list"},Ea={class:"asset-detail-row"},qa={class:"asset-detail-value"},Aa={key:0,class:"asset-detail-row"},Va={class:"asset-detail-value"},Fa={key:1,class:"asset-detail-row"},Ga={class:"asset-detail-value"},Na={key:2,class:"asset-detail-row"},Wa={class:"asset-detail-value"},Ya={key:3,class:"asset-detail-row"},Za={class:"asset-detail-value"},Ka={key:4,class:"asset-detail-row"},Xa={class:"asset-detail-value"},Ja={key:0,class:"asset-detail-info-section"},Qa={class:"asset-detail-box"},ae={class:"asset-detail-code"},ee={key:1,class:"asset-detail-empty"},se={__name:"CommandDetailDrawer",props:{visible:{type:Boolean,default:!1},command:{type:Object,default:null},platform:{type:String,default:"claude"}},emits:["update:visible"],setup(e,{emit:s}){const n=z(),{drawerWidth:c}=Z(600),u=e,m=s,f=p({get:()=>u.visible,set:a=>m("update:visible",a)}),g={height:"100%",minHeight:0,overflow:"hidden"},y=p(()=>{const a=n.get(u.platform)||x(u.platform);return a.label||a.title||""}),h=p(()=>u.command?.fullPath||u.command?.path||"");function w(a){return"project"===a?"项目级":"用户级"}return(s,n)=>(d(),i(b(Y),{show:f.value,"onUpdate:show":n[0]||(n[0]=a=>f.value=a),width:b(c),placement:"right","show-mask":!0},{default:v(()=>[o(b(K),{closable:"","native-scrollbar":!1,"body-content-style":g},{header:v(()=>[_("div",Pa,[_("div",Ia,[o(b(a),{size:20,class:"asset-detail-icon"},{default:v(()=>[o(b(O))]),_:1}),_("div",Ta,[_("span",Ua,r(e.command?.name?`/${e.command.name}`:"命令详情"),1),_("div",Sa,[e.command?.scope?(d(),i(b(ua),{key:0,type:"project"===e.command.scope?"success":"info",size:"tiny",bordered:!1},{default:v(()=>[t(r(w(e.command.scope)),1)]),_:1},8,["type"])):l("",!0),e.command?.namespace?(d(),i(b(ua),{key:1,type:"warning",size:"tiny",bordered:!1},{default:v(()=>[t(r(e.command.namespace),1)]),_:1})):l("",!0),y.value?(d(),k("span",Ha,r(y.value),1)):l("",!0)])])])])]),default:v(()=>[_("div",Ba,[e.command?(d(),i(b(N),{key:0,type:"line",animated:"",class:"asset-detail-tabs"},{default:v(()=>[o(b(A),{name:"overview",tab:"概览"},{default:v(()=>[_("div",Da,[_("div",Oa,[n[1]||(n[1]=_("h3",{class:"asset-detail-section-title"},"描述",-1)),_("p",La,r(e.command.description||"暂无描述"),1)]),_("div",Ma,[n[8]||(n[8]=_("h3",{class:"asset-detail-section-title"},"基础信息",-1)),_("div",Ra,[_("div",Ea,[n[2]||(n[2]=_("span",{class:"asset-detail-label"},"作用域",-1)),_("span",qa,r(w(e.command.scope)),1)]),e.command.namespace?(d(),k("div",Aa,[n[3]||(n[3]=_("span",{class:"asset-detail-label"},"命名空间",-1)),_("span",Va,r(e.command.namespace),1)])):l("",!0),e.command.argumentHint?(d(),k("div",Fa,[n[4]||(n[4]=_("span",{class:"asset-detail-label"},"参数提示",-1)),_("span",Ga,r(e.command.argumentHint),1)])):l("",!0),e.command.model?(d(),k("div",Na,[n[5]||(n[5]=_("span",{class:"asset-detail-label"},"模型",-1)),_("span",Wa,r(e.command.model),1)])):l("",!0),e.command.agent?(d(),k("div",Ya,[n[6]||(n[6]=_("span",{class:"asset-detail-label"},"Agent",-1)),_("span",Za,r(e.command.agent),1)])):l("",!0),""!==e.command.subtask&&void 0!==e.command.subtask&&null!==e.command.subtask?(d(),k("div",Ka,[n[7]||(n[7]=_("span",{class:"asset-detail-label"},"Subtask",-1)),_("span",Xa,r(String(e.command.subtask)),1)])):l("",!0)])]),e.command.allowedTools?(d(),k("div",Ja,[n[9]||(n[9]=_("h3",{class:"asset-detail-section-title"},"允许的工具",-1)),_("div",Qa,[o(b(a),{size:16},{default:v(()=>[o(b(S))]),_:1}),_("code",null,r(e.command.allowedTools),1)])])):l("",!0),o(W,{path:h.value},null,8,["path"])])]),_:1}),o(b(A),{name:"content",tab:"内容"},{default:v(()=>[_("pre",ae,r(e.command.body||"(无内容)"),1)]),_:1})]),_:1})):(d(),k("div",ee,[o(b(a),{size:44,class:"asset-detail-empty-icon"},{default:v(()=>[o(b($))]),_:1}),n[10]||(n[10]=_("p",null,"未选择命令",-1))]))])]),_:1})]),_:1},8,["show","width"]))}},le={class:"config-edit-header"},te={class:"config-edit-identity"},ne={class:"config-edit-icon"},oe={class:"config-edit-title-stack"},ie={class:"config-edit-kicker"},ce={class:"config-edit-title"},de={class:"config-edit-badges"},ue={class:"command-workbench"},me={class:"command-sidebar"},re={class:"config-edit-section"},pe={class:"section-heading"},ve={class:"field-grid"},fe={class:"scope-option"},ge={class:"scope-path"},ye={class:"scope-option"},be={class:"scope-path"},he={class:"config-edit-section"},we={class:"section-heading"},ke={key:1,class:"platform-note"},_e={class:"config-edit-section token-section"},je={class:"section-heading"},Ce={class:"command-token-box"},xe={key:0,class:"token-row"},ze={key:1,class:"token-row"},$e={class:"config-edit-section content-section"},Pe={class:"section-heading"},Ie={class:"modal-footer"},Te=s({__name:"CommandFormModal",props:{visible:{type:Boolean,default:!1},command:{type:Object,default:null},projectPath:{type:String,default:null},platform:{type:String,default:"claude"}},emits:["update:visible","saved"],setup(s,{emit:n}){const c=z(),u=s,g=n,y=p({get:()=>u.visible,set:a=>g("update:visible",a)}),h=p(()=>!!u.command),C=p(()=>h.value?"编辑命令":"创建命令"),P=p(()=>{const a=c.get(u.platform)||x(u.platform);return a.label||a.title||"Claude Code"}),I=p(()=>"opencode"===u.platform?"~/.config/opencode/commands/":"gemini"===u.platform?"~/.gemini/commands/":"omp"===u.platform?"~/.omp/agent/commands/":"codex"===u.platform?"~/.codex/commands/":"~/.claude/commands/"),U=p(()=>"opencode"===u.platform?".opencode/commands/":"gemini"===u.platform?".gemini/commands/":"omp"===u.platform?".omp/commands/":"codex"===u.platform?".codex/commands/":".claude/commands/"),S=p(()=>"opencode"!==u.platform&&"gemini"!==u.platform&&"omp"!==u.platform),B=p(()=>"project"===G.value.scope?"项目级":"用户级"),D=p(()=>G.value.name?`/${G.value.name}`:"编辑命令"),q=p(()=>"gemini"===u.platform?"TOML":"Markdown"),A=w(null),V=w(!1),F={maxHeight:"calc(92vh - 134px)",overflowY:"auto",paddingBottom:"18px"},G=w({name:"",scope:"user",namespace:"",description:"",allowedTools:"",argumentHint:"",body:""}),N={name:{required:!0,message:"请输入命令名",trigger:"blur"},scope:{required:!0,message:"请选择作用域",trigger:"change"}};function W(){G.value={name:"",scope:"user",namespace:"",description:"",allowedTools:"",argumentHint:"",body:""}}function Y(){y.value=!1,W()}async function Z(){try{await(A.value?.validate())}catch{return}V.value=!0;try{const a={...G.value,projectPath:u.projectPath};h.value?(await async function(a,e,s,l="claude"){return(await j.put(`/commands/${e}/${a}`,{...s,platform:l})).data}(G.value.name,G.value.scope,a,u.platform),ca.success("命令更新成功")):(await async function(a,e="claude"){return(await j.post("/commands",{...a,platform:e})).data}(a,u.platform),ca.success("命令创建成功")),g("saved"),y.value=!1,W()}catch(a){ca.error("操作失败: "+a.message)}finally{V.value=!1}}return m(()=>u.command,a=>{a?G.value={name:a.name||"",scope:a.scope||"user",namespace:a.namespace||"",description:a.description||"",allowedTools:a.allowedTools||"",argumentHint:a.argumentHint||"",body:a.body||""}:W()},{immediate:!0}),(s,n)=>(d(),i(b(E),{show:y.value,"onUpdate:show":n[7]||(n[7]=a=>y.value=a),preset:"card",title:C.value,style:{width:"min(940px, 96vw)","max-height":"92vh"},"content-style":F,"mask-closable":!1,class:"config-edit-modal"},{footer:v(()=>[_("div",Ie,[o(b(e),{onClick:Y},{default:v(()=>[...n[19]||(n[19]=[t("取消",-1)])]),_:1}),o(b(e),{type:"primary",loading:V.value,onClick:Z},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(H))]),_:1})]),default:v(()=>[t(" "+r(h.value?"保存":"创建"),1)]),_:1},8,["loading"])])]),default:v(()=>[_("div",le,[_("div",te,[_("span",ne,[o(b(a),{size:22},{default:v(()=>[o(b(O))]),_:1})]),_("div",oe,[_("span",ie,r(P.value),1),_("span",ce,r(h.value?D.value:"创建新命令"),1)])]),_("div",de,[o(b(ua),{size:"small",bordered:!1,type:"info"},{default:v(()=>[t(r(B.value),1)]),_:1}),G.value.namespace?(d(),i(b(ua),{key:0,size:"small",bordered:!1,type:"warning"},{default:v(()=>[t(r(G.value.namespace),1)]),_:1})):l("",!0),o(b(ua),{size:"small",bordered:!1,type:"success"},{default:v(()=>[t(r(q.value),1)]),_:1})])]),o(b(aa),{ref_key:"formRef",ref:A,model:G.value,rules:N,"label-placement":"top","require-mark-placement":"right-hanging",class:"config-edit-form"},{default:v(()=>[_("div",ue,[_("div",me,[_("section",re,[_("div",pe,[o(b(a),{size:16},{default:v(()=>[o(b(L))]),_:1}),n[8]||(n[8]=_("span",null,"命令入口",-1))]),_("div",ve,[o(b(Q),{label:"命令名",path:"name"},{default:v(()=>[o(b(da),{value:G.value.name,"onUpdate:value":n[0]||(n[0]=a=>G.value.name=a),disabled:h.value,placeholder:"review"},{prefix:v(()=>[...n[9]||(n[9]=[t("/",-1)])]),_:1},8,["value","disabled"])]),_:1}),o(b(Q),{label:"命名空间",path:"namespace"},{default:v(()=>[o(b(da),{value:G.value.namespace,"onUpdate:value":n[1]||(n[1]=a=>G.value.namespace=a),disabled:h.value,placeholder:"frontend"},null,8,["value","disabled"])]),_:1})]),o(b(Q),{label:"作用域",path:"scope"},{default:v(()=>[o(b(la),{value:G.value.scope,"onUpdate:value":n[2]||(n[2]=a=>G.value.scope=a),disabled:h.value,class:"scope-picker"},{default:v(()=>[o(b(na),{value:"user"},{default:v(()=>[_("span",fe,[n[10]||(n[10]=_("span",{class:"scope-title"},"用户级",-1)),_("span",ge,r(I.value),1)])]),_:1}),o(b(na),{value:"project"},{default:v(()=>[_("span",ye,[n[11]||(n[11]=_("span",{class:"scope-title"},"项目级",-1)),_("span",be,r(U.value),1)])]),_:1})]),_:1},8,["value","disabled"])]),_:1}),o(b(Q),{label:"描述",path:"description"},{default:v(()=>[o(b(da),{value:G.value.description,"onUpdate:value":n[3]||(n[3]=a=>G.value.description=a),type:"textarea",autosize:{minRows:3,maxRows:5},placeholder:"一句话说明这个 slash command 的用途"},null,8,["value"])]),_:1})]),_("section",he,[_("div",we,[o(b(a),{size:16},{default:v(()=>[o(b(M))]),_:1}),n[12]||(n[12]=_("span",null,"Frontmatter",-1))]),S.value?(d(),k(f,{key:0},[o(b(Q),{label:"允许的工具",path:"allowedTools"},{default:v(()=>[o(b(da),{value:G.value.allowedTools,"onUpdate:value":n[4]||(n[4]=a=>G.value.allowedTools=a),placeholder:"Bash, Edit, Read"},null,8,["value"])]),_:1}),o(b(Q),{label:"参数提示",path:"argumentHint"},{default:v(()=>[o(b(da),{value:G.value.argumentHint,"onUpdate:value":n[5]||(n[5]=a=>G.value.argumentHint=a),placeholder:"add [id] | remove [id]"},null,8,["value"])]),_:1})],64)):(d(),k("div",ke,[o(b(a),{size:16},{default:v(()=>[o(b(T))]),_:1}),_("span",null,r(P.value)+" commands 会按平台原生格式保存,当前平台不写入 Claude/Codex 风格的工具和参数 frontmatter。",1)]))]),_("section",_e,[_("div",je,[o(b(a),{size:16},{default:v(()=>[o(b(R))]),_:1}),n[13]||(n[13]=_("span",null,"可用变量",-1))]),_("div",Ce,[n[16]||(n[16]=_("div",{class:"token-row"},[_("code",null,"$ARGUMENTS"),_("span",null,"完整参数")],-1)),n[17]||(n[17]=_("div",{class:"token-row"},[_("code",null,"$1"),_("span",null,"第一个参数")],-1)),S.value?(d(),k("div",xe,[...n[14]||(n[14]=[_("code",null,"!",-1),_("span",null,"执行 shell 行",-1)])])):l("",!0),S.value?(d(),k("div",ze,[...n[15]||(n[15]=[_("code",null,"@",-1),_("span",null,"引用文件",-1)])])):l("",!0)])])]),_("section",$e,[_("div",Pe,[o(b(a),{size:16},{default:v(()=>[o(b($))]),_:1}),n[18]||(n[18]=_("span",null,"命令内容",-1))]),o(b(Q),{path:"body","show-label":!1,class:"editor-form-item"},{default:v(()=>[o(ra,{modelValue:G.value.body,"onUpdate:modelValue":n[6]||(n[6]=a=>G.value.body=a),rows:12,"min-height":280,placeholder:"写下命令提示词。可以使用 $ARGUMENTS、$1、$2 等变量。","default-editing":!h.value},null,8,["modelValue","default-editing"])]),_:1})])])]),_:1},8,["model"])]),_:1},8,["show","title"]))}},[["__scopeId","data-v-1ab931be"]]),Ue={key:0,class:"asset-panel-header"},Se={class:"asset-title-group"},He={class:"asset-heading"},Be={class:"asset-title-row"},De={class:"asset-platform-pill"},Oe={key:0,class:"asset-action-row"},Le={key:1,class:"asset-drawer-toolbar"},Me={key:0,class:"asset-action-row"},Re={class:"asset-summary"},Ee={class:"asset-summary-item"},qe={class:"asset-summary-value"},Ae={class:"asset-summary-item"},Ve={class:"asset-summary-value"},Fe={class:"asset-summary-item"},Ge={class:"asset-summary-value"},Ne={class:"asset-summary-item"},We={class:"asset-summary-value"},Ye={class:"asset-filter-bar"},Ze={class:"asset-panel-content"},Ke={key:0,class:"asset-empty"},Xe={key:1,class:"asset-list"},Je={class:"asset-footer"},Qe=s({__name:"CommandsPanel",props:{hideBack:{type:Boolean,default:!1},inDrawer:{type:Boolean,default:!1},projectPath:{type:String,default:null},platform:{type:String,default:""}},emits:["back","updated"],setup(s,{emit:u}){const y=s,$=u,S=z(),H=h(),B=w([]),L=w(!1),M=w(""),R=w("all"),E=w(!1),A=w(!1),N=w(null),W=w(null),Y=w({}),Z=w({}),K=w({});let Q=0;const{byCapability:aa}=J(),la=p(()=>aa("commands").map(a=>a.key)),ta=p(()=>la.value.includes(na.value)),na=p(()=>String(y.platform||C(H)||"").trim().toLowerCase()),ia=p(()=>"opencode"===na.value?"使用 /命令名 在 OpenCode 中调用":"omp"===na.value?"使用 OMP slash command 调用":"gemini"===na.value?"使用 /命令名 在 Gemini CLI 中调用":"codex"===na.value?"使用 /命令名 在 Codex CLI 中调用":"使用 /命令名 在 Claude Code 中调用"),ua=p(()=>{const a=S.get(na.value)||x(na.value);return a.label||a.title||"Claude Code"}),ra=[{label:"全部",value:"all"},{label:"用户级",value:"user"},{label:"项目级",value:"project"},{label:"已托管",value:"managed"}],va=p(()=>B.value.filter(a=>"user"===a.scope).length),fa=p(()=>B.value.filter(a=>"project"===a.scope).length),ga=p(()=>Object.keys(Z.value).length),ya=p(()=>{let a=B.value;if("user"===R.value?a=a.filter(a=>"user"===a.scope):"project"===R.value?a=a.filter(a=>"project"===a.scope):"managed"===R.value&&(a=a.filter(a=>Z.value[a.name])),M.value.trim()){const e=M.value.toLowerCase();a=a.filter(a=>a.name?.toLowerCase().includes(e)||a.description?.toLowerCase().includes(e)||a.namespace?.toLowerCase().includes(e))}return a}),ba=p(()=>M.value?"没有匹配的命令":"user"===R.value?"暂无用户级命令":"project"===R.value?"暂无项目级命令":"managed"===R.value?"暂无托管的命令":ta.value?"暂无自定义命令":`${ua.value} 暂未提供 Commands 能力`);async function ha(){if(!ta.value)return B.value=[],Z.value={},void(L.value=!1);L.value=!0;try{const[a,e]=await Promise.all([pa(y.projectPath,na.value),G("commands",{platform:na.value,projectPath:y.projectPath})]);if(a.success&&(B.value=a.commands||[]),e.success){Z.value={};for(const[a,s]of Object.entries(e.items||{}))Z.value[a]=s}}catch(a){ca.error("加载命令列表失败: "+a.message)}finally{L.value=!1}}async function wa(a,e){K.value[a.name]=!0;try{(await q("commands",a.name,e)).success&&(ca.success(e?"已启用":"已禁用"),await ha())}catch(s){ca.error("切换失败: "+s.message)}finally{delete K.value[a.name]}}async function ka(a,e,s){K.value[a.name]=!0;try{(await F("commands",a.name,e,s)).success&&(ca.success(`${e} ${s?"已启用":"已禁用"}`),await ha())}catch(l){ca.error("切换失败: "+l.message)}finally{delete K.value[a.name]}}async function _a(){L.value=!0;try{const a=await V("commands");a?.success||ca.warning(a?.message||"同步失败,已继续刷新列表")}catch(a){ca.warning("同步失败,已继续刷新列表: "+a.message)}await ha()}async function ja(a,e=!1){if(!a)return;const s=++Q;e||(N.value=null,A.value=!0);try{const l=await async function(a,e,s=null,l=null,t="claude"){const n={};t&&(n.platform=t),s&&(n.projectPath=s),l&&(n.namespace=l);const o=ma(`command-detail:${a}:${l||""}`,t,e||"",s||"");return sa(o,s=>j.get(`/commands/${e}/${a}`,{params:n,signal:s}).then(a=>a.data),"command-detail",`command-detail:${t}`)}(a.name,a.scope,y.projectPath,a.namespace,na.value);if(s!==Q)return;const t=l?.command||a;e?(W.value=t,E.value=!0):N.value=t}catch(l){if(s!==Q)return;ca.error("加载命令详情失败: "+l.message),e?(W.value=a,E.value=!0):N.value=a}}function Ca(a){ja(a,!0)}async function xa(a){const e=a.path;Y.value[e]=!0;try{(await async function(a,e,s=null,l=null,t="claude"){const n={};return t&&(n.platform=t),s&&(n.projectPath=s),l&&(n.namespace=l),(await j.delete(`/commands/${e}/${a}`,{params:n})).data}(a.name,a.scope,y.projectPath,a.namespace,na.value)).success&&(ca.success("命令已删除"),await ha(),$("updated"))}catch(s){ca.error("删除失败: "+s.message)}finally{delete Y.value[e]}}function za(a){ja(a,!1)}function Pa(){W.value=null,ha(),$("updated")}function Ia(){$("back")}return c(()=>{ha()}),m(na,()=>{Q+=1,N.value=null,ha()}),(c,u)=>(d(),k("div",{class:g(["commands-panel asset-panel",{"in-drawer":y.inDrawer}])},[y.inDrawer?l("",!0):(d(),k("div",Ue,[_("div",Se,[y.hideBack?l("",!0):(d(),i(b(e),{key:0,text:"",onClick:Ia,class:"back-btn"},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(P))]),_:1})]),_:1})),_("div",He,[_("div",Be,[u[7]||(u[7]=_("span",{class:"asset-title"},"命令管理",-1)),_("span",De,r(ua.value),1)]),u[8]||(u[8]=_("div",{class:"asset-subtitle"},"维护 slash commands、作用域和跨平台启用状态",-1))])]),ta.value?(d(),k("div",Oe,[o(b(e),{text:"",onClick:u[0]||(u[0]=a=>E.value=!0),class:"action-btn"},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(I))]),_:1})]),default:v(()=>[u[9]||(u[9]=t(" 创建 ",-1))]),_:1}),o(b(e),{text:"",onClick:_a,loading:L.value,class:"action-btn"},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(U))]),_:1})]),default:v(()=>[u[10]||(u[10]=t(" 刷新 ",-1))]),_:1},8,["loading"])])):l("",!0)])),y.inDrawer?(d(),k("div",Le,[ta.value?(d(),k("div",Me,[o(b(e),{text:"",onClick:u[1]||(u[1]=a=>E.value=!0),class:"action-btn"},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(I))]),_:1})]),default:v(()=>[u[11]||(u[11]=t(" 创建 ",-1))]),_:1}),o(b(e),{text:"",onClick:_a,loading:L.value,class:"action-btn"},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(U))]),_:1})]),default:v(()=>[u[12]||(u[12]=t(" 刷新 ",-1))]),_:1},8,["loading"])])):l("",!0)])):l("",!0),_("div",Re,[_("span",Ee,[u[13]||(u[13]=_("span",{class:"asset-summary-label"},"全部",-1)),_("span",qe,r(B.value.length),1)]),_("span",Ae,[u[14]||(u[14]=_("span",{class:"asset-summary-label"},"用户级",-1)),_("span",Ve,r(va.value),1)]),_("span",Fe,[u[15]||(u[15]=_("span",{class:"asset-summary-label"},"项目级",-1)),_("span",Ge,r(fa.value),1)]),_("span",Ne,[u[16]||(u[16]=_("span",{class:"asset-summary-label"},"托管",-1)),_("span",We,r(ga.value),1)])]),_("div",Ye,[o(b(da),{value:M.value,"onUpdate:value":u[2]||(u[2]=a=>M.value=a),placeholder:"搜索命令、描述或命名空间",clearable:"",size:"small",class:"asset-search"},{prefix:v(()=>[o(b(a),null,{default:v(()=>[o(b(D))]),_:1})]),_:1},8,["value"]),o(b(X),{value:R.value,"onUpdate:value":u[3]||(u[3]=a=>R.value=a),options:ra,size:"small",class:"asset-filter"},null,8,["value"])]),_("div",Ze,[o(b(ea),{show:L.value},{default:v(()=>[0!==ya.value.length||L.value?(d(),k("div",Xe,[(d(!0),k(f,null,n(ya.value,a=>(d(),i($a,{key:a.path,command:a,deleting:!!Y.value[a.path],"registry-info":Z.value[a.name],toggling:!!K.value[a.name],onEdit:Ca,onDelete:xa,onClick:za,onToggleEnabled:wa,onTogglePlatform:ka},null,8,["command","deleting","registry-info","toggling"]))),128))])):(d(),k("div",Ke,[o(b(oa),{description:ba.value},{icon:v(()=>[o(b(a),{size:"48",color:"var(--text-quaternary)"},{default:v(()=>[o(b(O))]),_:1})]),extra:v(()=>[ta.value?(d(),i(b(e),{key:0,size:"small",onClick:u[4]||(u[4]=a=>E.value=!0)},{default:v(()=>[...u[17]||(u[17]=[t(" 创建第一个命令 ",-1)])]),_:1})):l("",!0)]),_:1},8,["description"])]))]),_:1},8,["show"])]),_("div",Je,[o(b(a),{size:"14",class:"asset-info-icon"},{default:v(()=>[o(b(T))]),_:1}),_("span",null,r(ia.value),1)]),o(Te,{visible:E.value,"onUpdate:visible":u[5]||(u[5]=a=>E.value=a),command:W.value,"project-path":s.projectPath,platform:na.value,onSaved:Pa},null,8,["visible","command","project-path","platform"]),o(se,{visible:A.value,"onUpdate:visible":u[6]||(u[6]=a=>A.value=a),command:N.value,platform:na.value},null,8,["visible","command","platform"])],2))}},[["__scopeId","data-v-5e3c90d3"]]),as=s({__name:"CommandsDrawer",props:{visible:Boolean,platform:{type:String,default:""}},emits:["update:visible"],setup(a,{emit:e}){const s=a,l=e,{drawerWidth:t}=Z(720),n=p({get:()=>s.visible,set:a=>l("update:visible",a)}),c={padding:0,display:"flex",flexDirection:"column",overflow:"hidden"};return(a,e)=>(d(),i(b(Y),{show:n.value,"onUpdate:show":e[1]||(e[1]=a=>n.value=a),width:b(t),placement:"right","mask-closable":!0},{default:v(()=>[o(b(K),{closable:"","native-scrollbar":!1,"body-content-style":c},{header:v(()=>[...e[2]||(e[2]=[_("div",{class:"drawer-header"},[_("span",null,"命令管理")],-1)])]),default:v(()=>[o(Qe,{onBack:e[0]||(e[0]=a=>n.value=!1),"hide-back":!0,"in-drawer":!0,platform:s.platform},null,8,["platform"])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-bfb32ef8"]]);export{as as default};
1
+ import{i as a,s as e,t as s}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as l,D as t,K as n,O as o,S as i,V as c,W as d,Y as u,Z as m,_t as r,b as p,et as v,g as f,ht as g,m as y,mt as b,r as h,st as w,w as k,x as _}from"./vue-vendor-BqZbbXHA.js";import{t as j}from"./client-BgcNg4Bt.js";import{r as C,s as x,t as z}from"./platforms-mqqe_82d.js";import{$,At as P,Nt as I,R as T,S as U,V as S,_ as H,ct as B,g as D,i as O,j as L,m as M,st as R}from"./icons-B-AzZoeE.js";import{l as E}from"./light-C2X7hegj.js";import{a as q,c as A,i as V,o as F,r as G,s as N,t as W}from"./AssetPathField-jv-lopQ3.js";import{n as Y,t as Z}from"./useResponsiveDrawer-C-UacYVP.js";import{t as K}from"./DrawerContent-ChXgZ1Xm.js";import{$ as X,Et as J,I as Q,L as aa,M as ea,T as sa,X as la,Y as ta,Z as na,ft as oa,j as ia,k as ca,st as da,ut as ua,w as ma}from"./index-Bw6YXbBA.js";import{t as ra}from"./MarkdownEditor-BXwTqbMo.js";async function pa(a=null,e="claude",s={}){const l=ma("commands",e,s.scope||"",a||"");return sa(l,s=>j.get("/commands",{params:a?{projectPath:a,platform:e}:{platform:e},signal:s}).then(a=>a.data),"commands",`commands:${e}`)}var va={class:"asset-card-main"},fa={class:"asset-card-top"},ga={class:"asset-card-title-stack"},ya={class:"asset-card-title-row"},ba={class:"asset-name mono"},ha={class:"asset-tags"},wa={key:0,class:"asset-description"},ka={class:"asset-meta"},_a={key:0,class:"asset-meta-item"},ja={key:1,class:"asset-meta-item"},Ca={class:"asset-card-actions"},xa={class:"asset-platform-strip"},za=["onClick"],$a=s({__name:"CommandCard",props:{command:{type:Object,required:!0},deleting:{type:Boolean,default:!1},registryInfo:{type:Object,default:null},toggling:{type:Boolean,default:!1}},emits:["click","edit","delete","toggle-enabled","toggle-platform"],setup(s,{emit:c}){const m=s,h=c,{byCapability:w}=J(),j=p(()=>w("commands"));return(c,p)=>{return d(),k("div",{class:g(["command-card asset-card",{"is-project":"project"===s.command.scope,"is-managed":s.registryInfo}]),onClick:p[4]||(p[4]=a=>h("click",s.command))},[_("div",va,[_("div",fa,[_("div",ga,[_("div",ya,[_("span",{class:g(["asset-status-dot",{active:s.registryInfo?.enabled||"project"===s.command.scope}])},null,2),_("span",ba,"/"+r(s.command.name),1)]),_("div",ha,[o(b(ua),{type:"user"===s.command.scope?"info":"success",size:"tiny",bordered:!1},{default:v(()=>[t(r("user"===s.command.scope?"用户级":"项目级"),1)]),_:1},8,["type"]),s.registryInfo?(d(),i(b(ua),{key:0,type:"success",size:"tiny",bordered:!1},{default:v(()=>[...p[5]||(p[5]=[t("托管",-1)])]),_:1})):l("",!0),s.command.namespace?(d(),i(b(ua),{key:1,type:"warning",size:"tiny",bordered:!1},{default:v(()=>[t(r(s.command.namespace),1)]),_:1})):l("",!0)])])]),s.command.description?(d(),k("div",wa,r((w=s.command.description,w?w.length>80?w.slice(0,80)+"...":w:"")),1)):l("",!0),_("div",ka,[s.command.allowedTools?(d(),k("span",_a,[o(b(a),{size:"12"},{default:v(()=>[o(b(S))]),_:1}),t(" "+r(s.command.allowedTools),1)])):l("",!0),s.command.argumentHint?(d(),k("span",ja,[o(b(a),{size:"12"},{default:v(()=>[o(b(B))]),_:1}),t(" "+r(s.command.argumentHint),1)])):l("",!0)])]),_("div",Ca,[s.registryInfo?(d(),k(f,{key:0},[o(b(ta),{trigger:"hover"},{trigger:v(()=>[o(b(ia),{value:s.registryInfo.enabled,size:"small",loading:s.toggling,"onUpdate:value":p[0]||(p[0]=a=>h("toggle-enabled",s.command,a)),onClick:p[1]||(p[1]=y(()=>{},["stop"]))},null,8,["value","loading"])]),default:v(()=>[t(" "+r(s.registryInfo.enabled?"已启用":"已禁用"),1)]),_:1}),_("div",xa,[(d(!0),k(f,null,n(j.value,e=>(d(),i(b(ta),{key:e.key,trigger:"hover"},{trigger:v(()=>[_("span",{class:g(["asset-platform-icon",{active:s.registryInfo.platforms?.[e.key]}]),onClick:y(a=>h("toggle-platform",s.command,e.key,!s.registryInfo.platforms?.[e.key]),["stop"])},[o(b(a),{size:"14"},{default:v(()=>[(d(),i(u(e.icon)))]),_:2},1024)],10,za)]),default:v(()=>[t(" "+r(e.label||e.title||e.key)+" "+r(s.registryInfo.platforms?.[e.key]?"已启用":"未启用"),1)]),_:2},1024))),128))])],64)):(d(),k(f,{key:1},[o(b(e),{size:"tiny",tertiary:"",onClick:p[2]||(p[2]=y(a=>h("edit",s.command),["stop"]))},{default:v(()=>[...p[6]||(p[6]=[t(" 编辑 ",-1)])]),_:1}),o(b(e),{size:"tiny",tertiary:"",type:"error",loading:m.deleting,onClick:p[3]||(p[3]=y(a=>h("delete",s.command),["stop"]))},{default:v(()=>[...p[7]||(p[7]=[t(" 删除 ",-1)])]),_:1},8,["loading"])],64))])],2);var w}}},[["__scopeId","data-v-7ffa5383"]]),Pa={class:"asset-detail-drawer-header"},Ia={class:"asset-detail-identity"},Ta={class:"asset-detail-heading"},Ua={class:"asset-detail-name mono"},Sa={class:"asset-detail-meta"},Ha={key:2,class:"asset-detail-subtle"},Ba={class:"asset-detail-body"},Da={class:"asset-detail-container"},Oa={class:"asset-detail-info-section"},La={class:"asset-detail-description"},Ma={class:"asset-detail-info-section"},Ra={class:"asset-detail-list"},Ea={class:"asset-detail-row"},qa={class:"asset-detail-value"},Aa={key:0,class:"asset-detail-row"},Va={class:"asset-detail-value"},Fa={key:1,class:"asset-detail-row"},Ga={class:"asset-detail-value"},Na={key:2,class:"asset-detail-row"},Wa={class:"asset-detail-value"},Ya={key:3,class:"asset-detail-row"},Za={class:"asset-detail-value"},Ka={key:4,class:"asset-detail-row"},Xa={class:"asset-detail-value"},Ja={key:0,class:"asset-detail-info-section"},Qa={class:"asset-detail-box"},ae={class:"asset-detail-code"},ee={key:1,class:"asset-detail-empty"},se={__name:"CommandDetailDrawer",props:{visible:{type:Boolean,default:!1},command:{type:Object,default:null},platform:{type:String,default:"claude"}},emits:["update:visible"],setup(e,{emit:s}){const n=z(),{drawerWidth:c}=Z(600),u=e,m=s,f=p({get:()=>u.visible,set:a=>m("update:visible",a)}),g={height:"100%",minHeight:0,overflow:"hidden"},y=p(()=>{const a=n.get(u.platform)||x(u.platform);return a.label||a.title||""}),h=p(()=>u.command?.fullPath||u.command?.path||"");function w(a){return"project"===a?"项目级":"用户级"}return(s,n)=>(d(),i(b(Y),{show:f.value,"onUpdate:show":n[0]||(n[0]=a=>f.value=a),width:b(c),placement:"right","show-mask":!0},{default:v(()=>[o(b(K),{closable:"","native-scrollbar":!1,"body-content-style":g},{header:v(()=>[_("div",Pa,[_("div",Ia,[o(b(a),{size:20,class:"asset-detail-icon"},{default:v(()=>[o(b(O))]),_:1}),_("div",Ta,[_("span",Ua,r(e.command?.name?`/${e.command.name}`:"命令详情"),1),_("div",Sa,[e.command?.scope?(d(),i(b(ua),{key:0,type:"project"===e.command.scope?"success":"info",size:"tiny",bordered:!1},{default:v(()=>[t(r(w(e.command.scope)),1)]),_:1},8,["type"])):l("",!0),e.command?.namespace?(d(),i(b(ua),{key:1,type:"warning",size:"tiny",bordered:!1},{default:v(()=>[t(r(e.command.namespace),1)]),_:1})):l("",!0),y.value?(d(),k("span",Ha,r(y.value),1)):l("",!0)])])])])]),default:v(()=>[_("div",Ba,[e.command?(d(),i(b(N),{key:0,type:"line",animated:"",class:"asset-detail-tabs"},{default:v(()=>[o(b(A),{name:"overview",tab:"概览"},{default:v(()=>[_("div",Da,[_("div",Oa,[n[1]||(n[1]=_("h3",{class:"asset-detail-section-title"},"描述",-1)),_("p",La,r(e.command.description||"暂无描述"),1)]),_("div",Ma,[n[8]||(n[8]=_("h3",{class:"asset-detail-section-title"},"基础信息",-1)),_("div",Ra,[_("div",Ea,[n[2]||(n[2]=_("span",{class:"asset-detail-label"},"作用域",-1)),_("span",qa,r(w(e.command.scope)),1)]),e.command.namespace?(d(),k("div",Aa,[n[3]||(n[3]=_("span",{class:"asset-detail-label"},"命名空间",-1)),_("span",Va,r(e.command.namespace),1)])):l("",!0),e.command.argumentHint?(d(),k("div",Fa,[n[4]||(n[4]=_("span",{class:"asset-detail-label"},"参数提示",-1)),_("span",Ga,r(e.command.argumentHint),1)])):l("",!0),e.command.model?(d(),k("div",Na,[n[5]||(n[5]=_("span",{class:"asset-detail-label"},"模型",-1)),_("span",Wa,r(e.command.model),1)])):l("",!0),e.command.agent?(d(),k("div",Ya,[n[6]||(n[6]=_("span",{class:"asset-detail-label"},"Agent",-1)),_("span",Za,r(e.command.agent),1)])):l("",!0),""!==e.command.subtask&&void 0!==e.command.subtask&&null!==e.command.subtask?(d(),k("div",Ka,[n[7]||(n[7]=_("span",{class:"asset-detail-label"},"Subtask",-1)),_("span",Xa,r(String(e.command.subtask)),1)])):l("",!0)])]),e.command.allowedTools?(d(),k("div",Ja,[n[9]||(n[9]=_("h3",{class:"asset-detail-section-title"},"允许的工具",-1)),_("div",Qa,[o(b(a),{size:16},{default:v(()=>[o(b(S))]),_:1}),_("code",null,r(e.command.allowedTools),1)])])):l("",!0),o(W,{path:h.value},null,8,["path"])])]),_:1}),o(b(A),{name:"content",tab:"内容"},{default:v(()=>[_("pre",ae,r(e.command.body||"(无内容)"),1)]),_:1})]),_:1})):(d(),k("div",ee,[o(b(a),{size:44,class:"asset-detail-empty-icon"},{default:v(()=>[o(b($))]),_:1}),n[10]||(n[10]=_("p",null,"未选择命令",-1))]))])]),_:1})]),_:1},8,["show","width"]))}},le={class:"config-edit-header"},te={class:"config-edit-identity"},ne={class:"config-edit-icon"},oe={class:"config-edit-title-stack"},ie={class:"config-edit-kicker"},ce={class:"config-edit-title"},de={class:"config-edit-badges"},ue={class:"command-workbench"},me={class:"command-sidebar"},re={class:"config-edit-section"},pe={class:"section-heading"},ve={class:"field-grid"},fe={class:"scope-option"},ge={class:"scope-path"},ye={class:"scope-option"},be={class:"scope-path"},he={class:"config-edit-section"},we={class:"section-heading"},ke={key:1,class:"platform-note"},_e={class:"config-edit-section token-section"},je={class:"section-heading"},Ce={class:"command-token-box"},xe={key:0,class:"token-row"},ze={key:1,class:"token-row"},$e={class:"config-edit-section content-section"},Pe={class:"section-heading"},Ie={class:"modal-footer"},Te=s({__name:"CommandFormModal",props:{visible:{type:Boolean,default:!1},command:{type:Object,default:null},projectPath:{type:String,default:null},platform:{type:String,default:"claude"}},emits:["update:visible","saved"],setup(s,{emit:n}){const c=z(),u=s,g=n,y=p({get:()=>u.visible,set:a=>g("update:visible",a)}),h=p(()=>!!u.command),C=p(()=>h.value?"编辑命令":"创建命令"),P=p(()=>{const a=c.get(u.platform)||x(u.platform);return a.label||a.title||"Claude Code"}),I=p(()=>"opencode"===u.platform?"~/.config/opencode/commands/":"gemini"===u.platform?"~/.gemini/commands/":"omp"===u.platform?"~/.omp/agent/commands/":"codex"===u.platform?"~/.codex/commands/":"~/.claude/commands/"),U=p(()=>"opencode"===u.platform?".opencode/commands/":"gemini"===u.platform?".gemini/commands/":"omp"===u.platform?".omp/commands/":"codex"===u.platform?".codex/commands/":".claude/commands/"),S=p(()=>"opencode"!==u.platform&&"gemini"!==u.platform&&"omp"!==u.platform),B=p(()=>"project"===G.value.scope?"项目级":"用户级"),D=p(()=>G.value.name?`/${G.value.name}`:"编辑命令"),q=p(()=>"gemini"===u.platform?"TOML":"Markdown"),A=w(null),V=w(!1),F={maxHeight:"calc(92vh - 134px)",overflowY:"auto",paddingBottom:"18px"},G=w({name:"",scope:"user",namespace:"",description:"",allowedTools:"",argumentHint:"",body:""}),N={name:{required:!0,message:"请输入命令名",trigger:"blur"},scope:{required:!0,message:"请选择作用域",trigger:"change"}};function W(){G.value={name:"",scope:"user",namespace:"",description:"",allowedTools:"",argumentHint:"",body:""}}function Y(){y.value=!1,W()}async function Z(){try{await(A.value?.validate())}catch{return}V.value=!0;try{const a={...G.value,projectPath:u.projectPath};h.value?(await async function(a,e,s,l="claude"){return(await j.put(`/commands/${e}/${a}`,{...s,platform:l})).data}(G.value.name,G.value.scope,a,u.platform),ca.success("命令更新成功")):(await async function(a,e="claude"){return(await j.post("/commands",{...a,platform:e})).data}(a,u.platform),ca.success("命令创建成功")),g("saved"),y.value=!1,W()}catch(a){ca.error("操作失败: "+a.message)}finally{V.value=!1}}return m(()=>u.command,a=>{a?G.value={name:a.name||"",scope:a.scope||"user",namespace:a.namespace||"",description:a.description||"",allowedTools:a.allowedTools||"",argumentHint:a.argumentHint||"",body:a.body||""}:W()},{immediate:!0}),(s,n)=>(d(),i(b(E),{show:y.value,"onUpdate:show":n[7]||(n[7]=a=>y.value=a),preset:"card",title:C.value,style:{width:"min(940px, 96vw)","max-height":"92vh"},"content-style":F,"mask-closable":!1,class:"config-edit-modal"},{footer:v(()=>[_("div",Ie,[o(b(e),{onClick:Y},{default:v(()=>[...n[19]||(n[19]=[t("取消",-1)])]),_:1}),o(b(e),{type:"primary",loading:V.value,onClick:Z},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(H))]),_:1})]),default:v(()=>[t(" "+r(h.value?"保存":"创建"),1)]),_:1},8,["loading"])])]),default:v(()=>[_("div",le,[_("div",te,[_("span",ne,[o(b(a),{size:22},{default:v(()=>[o(b(O))]),_:1})]),_("div",oe,[_("span",ie,r(P.value),1),_("span",ce,r(h.value?D.value:"创建新命令"),1)])]),_("div",de,[o(b(ua),{size:"small",bordered:!1,type:"info"},{default:v(()=>[t(r(B.value),1)]),_:1}),G.value.namespace?(d(),i(b(ua),{key:0,size:"small",bordered:!1,type:"warning"},{default:v(()=>[t(r(G.value.namespace),1)]),_:1})):l("",!0),o(b(ua),{size:"small",bordered:!1,type:"success"},{default:v(()=>[t(r(q.value),1)]),_:1})])]),o(b(aa),{ref_key:"formRef",ref:A,model:G.value,rules:N,"label-placement":"top","require-mark-placement":"right-hanging",class:"config-edit-form"},{default:v(()=>[_("div",ue,[_("div",me,[_("section",re,[_("div",pe,[o(b(a),{size:16},{default:v(()=>[o(b(L))]),_:1}),n[8]||(n[8]=_("span",null,"命令入口",-1))]),_("div",ve,[o(b(Q),{label:"命令名",path:"name"},{default:v(()=>[o(b(da),{value:G.value.name,"onUpdate:value":n[0]||(n[0]=a=>G.value.name=a),disabled:h.value,placeholder:"review"},{prefix:v(()=>[...n[9]||(n[9]=[t("/",-1)])]),_:1},8,["value","disabled"])]),_:1}),o(b(Q),{label:"命名空间",path:"namespace"},{default:v(()=>[o(b(da),{value:G.value.namespace,"onUpdate:value":n[1]||(n[1]=a=>G.value.namespace=a),disabled:h.value,placeholder:"frontend"},null,8,["value","disabled"])]),_:1})]),o(b(Q),{label:"作用域",path:"scope"},{default:v(()=>[o(b(la),{value:G.value.scope,"onUpdate:value":n[2]||(n[2]=a=>G.value.scope=a),disabled:h.value,class:"scope-picker"},{default:v(()=>[o(b(na),{value:"user"},{default:v(()=>[_("span",fe,[n[10]||(n[10]=_("span",{class:"scope-title"},"用户级",-1)),_("span",ge,r(I.value),1)])]),_:1}),o(b(na),{value:"project"},{default:v(()=>[_("span",ye,[n[11]||(n[11]=_("span",{class:"scope-title"},"项目级",-1)),_("span",be,r(U.value),1)])]),_:1})]),_:1},8,["value","disabled"])]),_:1}),o(b(Q),{label:"描述",path:"description"},{default:v(()=>[o(b(da),{value:G.value.description,"onUpdate:value":n[3]||(n[3]=a=>G.value.description=a),type:"textarea",autosize:{minRows:3,maxRows:5},placeholder:"一句话说明这个 slash command 的用途"},null,8,["value"])]),_:1})]),_("section",he,[_("div",we,[o(b(a),{size:16},{default:v(()=>[o(b(M))]),_:1}),n[12]||(n[12]=_("span",null,"Frontmatter",-1))]),S.value?(d(),k(f,{key:0},[o(b(Q),{label:"允许的工具",path:"allowedTools"},{default:v(()=>[o(b(da),{value:G.value.allowedTools,"onUpdate:value":n[4]||(n[4]=a=>G.value.allowedTools=a),placeholder:"Bash, Edit, Read"},null,8,["value"])]),_:1}),o(b(Q),{label:"参数提示",path:"argumentHint"},{default:v(()=>[o(b(da),{value:G.value.argumentHint,"onUpdate:value":n[5]||(n[5]=a=>G.value.argumentHint=a),placeholder:"add [id] | remove [id]"},null,8,["value"])]),_:1})],64)):(d(),k("div",ke,[o(b(a),{size:16},{default:v(()=>[o(b(T))]),_:1}),_("span",null,r(P.value)+" commands 会按平台原生格式保存,当前平台不写入 Claude/Codex 风格的工具和参数 frontmatter。",1)]))]),_("section",_e,[_("div",je,[o(b(a),{size:16},{default:v(()=>[o(b(R))]),_:1}),n[13]||(n[13]=_("span",null,"可用变量",-1))]),_("div",Ce,[n[16]||(n[16]=_("div",{class:"token-row"},[_("code",null,"$ARGUMENTS"),_("span",null,"完整参数")],-1)),n[17]||(n[17]=_("div",{class:"token-row"},[_("code",null,"$1"),_("span",null,"第一个参数")],-1)),S.value?(d(),k("div",xe,[...n[14]||(n[14]=[_("code",null,"!",-1),_("span",null,"执行 shell 行",-1)])])):l("",!0),S.value?(d(),k("div",ze,[...n[15]||(n[15]=[_("code",null,"@",-1),_("span",null,"引用文件",-1)])])):l("",!0)])])]),_("section",$e,[_("div",Pe,[o(b(a),{size:16},{default:v(()=>[o(b($))]),_:1}),n[18]||(n[18]=_("span",null,"命令内容",-1))]),o(b(Q),{path:"body","show-label":!1,class:"editor-form-item"},{default:v(()=>[o(ra,{modelValue:G.value.body,"onUpdate:modelValue":n[6]||(n[6]=a=>G.value.body=a),rows:12,"min-height":280,placeholder:"写下命令提示词。可以使用 $ARGUMENTS、$1、$2 等变量。","default-editing":!h.value},null,8,["modelValue","default-editing"])]),_:1})])])]),_:1},8,["model"])]),_:1},8,["show","title"]))}},[["__scopeId","data-v-1ab931be"]]),Ue={key:0,class:"asset-panel-header"},Se={class:"asset-title-group"},He={class:"asset-heading"},Be={class:"asset-title-row"},De={class:"asset-platform-pill"},Oe={key:0,class:"asset-action-row"},Le={key:1,class:"asset-drawer-toolbar"},Me={key:0,class:"asset-action-row"},Re={class:"asset-summary"},Ee={class:"asset-summary-item"},qe={class:"asset-summary-value"},Ae={class:"asset-summary-item"},Ve={class:"asset-summary-value"},Fe={class:"asset-summary-item"},Ge={class:"asset-summary-value"},Ne={class:"asset-summary-item"},We={class:"asset-summary-value"},Ye={class:"asset-filter-bar"},Ze={class:"asset-panel-content"},Ke={key:0,class:"asset-empty"},Xe={key:1,class:"asset-list"},Je={class:"asset-footer"},Qe=s({__name:"CommandsPanel",props:{hideBack:{type:Boolean,default:!1},inDrawer:{type:Boolean,default:!1},projectPath:{type:String,default:null},platform:{type:String,default:""}},emits:["back","updated"],setup(s,{emit:u}){const y=s,$=u,S=z(),H=h(),B=w([]),L=w(!1),M=w(""),R=w("all"),E=w(!1),A=w(!1),N=w(null),W=w(null),Y=w({}),Z=w({}),K=w({});let Q=0;const{byCapability:aa}=J(),la=p(()=>aa("commands").map(a=>a.key)),ta=p(()=>la.value.includes(na.value)),na=p(()=>String(y.platform||C(H)||"").trim().toLowerCase()),ia=p(()=>"opencode"===na.value?"使用 /命令名 在 OpenCode 中调用":"omp"===na.value?"使用 OMP slash command 调用":"gemini"===na.value?"使用 /命令名 在 Gemini CLI 中调用":"codex"===na.value?"使用 /命令名 在 Codex CLI 中调用":"使用 /命令名 在 Claude Code 中调用"),ua=p(()=>{const a=S.get(na.value)||x(na.value);return a.label||a.title||"Claude Code"}),ra=[{label:"全部",value:"all"},{label:"用户级",value:"user"},{label:"项目级",value:"project"},{label:"已托管",value:"managed"}],va=p(()=>B.value.filter(a=>"user"===a.scope).length),fa=p(()=>B.value.filter(a=>"project"===a.scope).length),ga=p(()=>Object.keys(Z.value).length),ya=p(()=>{let a=B.value;if("user"===R.value?a=a.filter(a=>"user"===a.scope):"project"===R.value?a=a.filter(a=>"project"===a.scope):"managed"===R.value&&(a=a.filter(a=>Z.value[a.name])),M.value.trim()){const e=M.value.toLowerCase();a=a.filter(a=>a.name?.toLowerCase().includes(e)||a.description?.toLowerCase().includes(e)||a.namespace?.toLowerCase().includes(e))}return a}),ba=p(()=>M.value?"没有匹配的命令":"user"===R.value?"暂无用户级命令":"project"===R.value?"暂无项目级命令":"managed"===R.value?"暂无托管的命令":ta.value?"暂无自定义命令":`${ua.value} 暂未提供 Commands 能力`);async function ha(){if(!ta.value)return B.value=[],Z.value={},void(L.value=!1);L.value=!0;try{const[a,e]=await Promise.all([pa(y.projectPath,na.value),G("commands",{platform:na.value,projectPath:y.projectPath})]);if(a.success&&(B.value=a.commands||[]),e.success){Z.value={};for(const[a,s]of Object.entries(e.items||{}))Z.value[a]=s}}catch(a){ca.error("加载命令列表失败: "+a.message)}finally{L.value=!1}}async function wa(a,e){K.value[a.name]=!0;try{(await q("commands",a.name,e)).success&&(ca.success(e?"已启用":"已禁用"),await ha())}catch(s){ca.error("切换失败: "+s.message)}finally{delete K.value[a.name]}}async function ka(a,e,s){K.value[a.name]=!0;try{(await F("commands",a.name,e,s)).success&&(ca.success(`${e} ${s?"已启用":"已禁用"}`),await ha())}catch(l){ca.error("切换失败: "+l.message)}finally{delete K.value[a.name]}}async function _a(){L.value=!0;try{const a=await V("commands");a?.success||ca.warning(a?.message||"同步失败,已继续刷新列表")}catch(a){ca.warning("同步失败,已继续刷新列表: "+a.message)}await ha()}async function ja(a,e=!1){if(!a)return;const s=++Q;e||(N.value=null,A.value=!0);try{const l=await async function(a,e,s=null,l=null,t="claude"){const n={};t&&(n.platform=t),s&&(n.projectPath=s),l&&(n.namespace=l);const o=ma(`command-detail:${a}:${l||""}`,t,e||"",s||"");return sa(o,s=>j.get(`/commands/${e}/${a}`,{params:n,signal:s}).then(a=>a.data),"command-detail",`command-detail:${t}`)}(a.name,a.scope,y.projectPath,a.namespace,na.value);if(s!==Q)return;const t=l?.command||a;e?(W.value=t,E.value=!0):N.value=t}catch(l){if(s!==Q)return;ca.error("加载命令详情失败: "+l.message),e?(W.value=a,E.value=!0):N.value=a}}function Ca(a){ja(a,!0)}async function xa(a){const e=a.path;Y.value[e]=!0;try{(await async function(a,e,s=null,l=null,t="claude"){const n={};return t&&(n.platform=t),s&&(n.projectPath=s),l&&(n.namespace=l),(await j.delete(`/commands/${e}/${a}`,{params:n})).data}(a.name,a.scope,y.projectPath,a.namespace,na.value)).success&&(ca.success("命令已删除"),await ha(),$("updated"))}catch(s){ca.error("删除失败: "+s.message)}finally{delete Y.value[e]}}function za(a){ja(a,!1)}function Pa(){W.value=null,ha(),$("updated")}function Ia(){$("back")}return c(()=>{ha()}),m(na,()=>{Q+=1,N.value=null,ha()}),(c,u)=>(d(),k("div",{class:g(["commands-panel asset-panel",{"in-drawer":y.inDrawer}])},[y.inDrawer?l("",!0):(d(),k("div",Ue,[_("div",Se,[y.hideBack?l("",!0):(d(),i(b(e),{key:0,text:"",onClick:Ia,class:"back-btn"},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(P))]),_:1})]),_:1})),_("div",He,[_("div",Be,[u[7]||(u[7]=_("span",{class:"asset-title"},"命令管理",-1)),_("span",De,r(ua.value),1)]),u[8]||(u[8]=_("div",{class:"asset-subtitle"},"维护 slash commands、作用域和跨平台启用状态",-1))])]),ta.value?(d(),k("div",Oe,[o(b(e),{text:"",onClick:u[0]||(u[0]=a=>E.value=!0),class:"action-btn"},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(I))]),_:1})]),default:v(()=>[u[9]||(u[9]=t(" 创建 ",-1))]),_:1}),o(b(e),{text:"",onClick:_a,loading:L.value,class:"action-btn"},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(U))]),_:1})]),default:v(()=>[u[10]||(u[10]=t(" 刷新 ",-1))]),_:1},8,["loading"])])):l("",!0)])),y.inDrawer?(d(),k("div",Le,[ta.value?(d(),k("div",Me,[o(b(e),{text:"",onClick:u[1]||(u[1]=a=>E.value=!0),class:"action-btn"},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(I))]),_:1})]),default:v(()=>[u[11]||(u[11]=t(" 创建 ",-1))]),_:1}),o(b(e),{text:"",onClick:_a,loading:L.value,class:"action-btn"},{icon:v(()=>[o(b(a),null,{default:v(()=>[o(b(U))]),_:1})]),default:v(()=>[u[12]||(u[12]=t(" 刷新 ",-1))]),_:1},8,["loading"])])):l("",!0)])):l("",!0),_("div",Re,[_("span",Ee,[u[13]||(u[13]=_("span",{class:"asset-summary-label"},"全部",-1)),_("span",qe,r(B.value.length),1)]),_("span",Ae,[u[14]||(u[14]=_("span",{class:"asset-summary-label"},"用户级",-1)),_("span",Ve,r(va.value),1)]),_("span",Fe,[u[15]||(u[15]=_("span",{class:"asset-summary-label"},"项目级",-1)),_("span",Ge,r(fa.value),1)]),_("span",Ne,[u[16]||(u[16]=_("span",{class:"asset-summary-label"},"托管",-1)),_("span",We,r(ga.value),1)])]),_("div",Ye,[o(b(da),{value:M.value,"onUpdate:value":u[2]||(u[2]=a=>M.value=a),placeholder:"搜索命令、描述或命名空间",clearable:"",size:"small",class:"asset-search"},{prefix:v(()=>[o(b(a),null,{default:v(()=>[o(b(D))]),_:1})]),_:1},8,["value"]),o(b(X),{value:R.value,"onUpdate:value":u[3]||(u[3]=a=>R.value=a),options:ra,size:"small",class:"asset-filter"},null,8,["value"])]),_("div",Ze,[o(b(ea),{show:L.value},{default:v(()=>[0!==ya.value.length||L.value?(d(),k("div",Xe,[(d(!0),k(f,null,n(ya.value,a=>(d(),i($a,{key:a.path,command:a,deleting:!!Y.value[a.path],"registry-info":Z.value[a.name],toggling:!!K.value[a.name],onEdit:Ca,onDelete:xa,onClick:za,onToggleEnabled:wa,onTogglePlatform:ka},null,8,["command","deleting","registry-info","toggling"]))),128))])):(d(),k("div",Ke,[o(b(oa),{description:ba.value},{icon:v(()=>[o(b(a),{size:"48",color:"var(--text-quaternary)"},{default:v(()=>[o(b(O))]),_:1})]),extra:v(()=>[ta.value?(d(),i(b(e),{key:0,size:"small",onClick:u[4]||(u[4]=a=>E.value=!0)},{default:v(()=>[...u[17]||(u[17]=[t(" 创建第一个命令 ",-1)])]),_:1})):l("",!0)]),_:1},8,["description"])]))]),_:1},8,["show"])]),_("div",Je,[o(b(a),{size:"14",class:"asset-info-icon"},{default:v(()=>[o(b(T))]),_:1}),_("span",null,r(ia.value),1)]),o(Te,{visible:E.value,"onUpdate:visible":u[5]||(u[5]=a=>E.value=a),command:W.value,"project-path":s.projectPath,platform:na.value,onSaved:Pa},null,8,["visible","command","project-path","platform"]),o(se,{visible:A.value,"onUpdate:visible":u[6]||(u[6]=a=>A.value=a),command:N.value,platform:na.value},null,8,["visible","command","platform"])],2))}},[["__scopeId","data-v-5e3c90d3"]]),as=s({__name:"CommandsDrawer",props:{visible:Boolean,platform:{type:String,default:""}},emits:["update:visible"],setup(a,{emit:e}){const s=a,l=e,{drawerWidth:t}=Z(720),n=p({get:()=>s.visible,set:a=>l("update:visible",a)}),c={padding:0,display:"flex",flexDirection:"column",overflow:"hidden"};return(a,e)=>(d(),i(b(Y),{show:n.value,"onUpdate:show":e[1]||(e[1]=a=>n.value=a),width:b(t),placement:"right","mask-closable":!0},{default:v(()=>[o(b(K),{closable:"","native-scrollbar":!1,"body-content-style":c},{header:v(()=>[...e[2]||(e[2]=[_("div",{class:"drawer-header"},[_("span",null,"命令管理")],-1)])]),default:v(()=>[o(Qe,{onBack:e[0]||(e[0]=a=>n.value=!1),"hide-back":!0,"in-drawer":!0,platform:s.platform},null,8,["platform"])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-bfb32ef8"]]);export{as as default};
@@ -1 +1 @@
1
- import{i as e,s as a,t}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as s,D as l,O as i,S as n,W as o,_t as r,b as u,et as c,mt as d,st as p,w as f,x as v}from"./vue-vendor-BqZbbXHA.js";import{t as m}from"./client-BgcNg4Bt.js";import{Q as w,lt as g,ut as h}from"./icons-B-AzZoeE.js";import{t as y}from"./Upload-e1M9Yp5z.js";import{t as _}from"./Divider-BLLhMTSt.js";import{n as x,t as z}from"./useResponsiveDrawer-ChHZrTfl.js";import{t as b}from"./DrawerContent-ChXgZ1Xm.js";import{A as j,H as k,k as C,rt as U}from"./index-BlUXw84U.js";var D={class:"drawer-header"},I={class:"export-import-container"},O={class:"section"},S={class:"section-header"},L={class:"section"},R={class:"section-header"},T={key:0,class:"import-preview"},P={class:"preview-stats"},Z={class:"stat-item"},B={class:"stat-item"},W={class:"stat-item"},$=t({__name:"ConfigExportDrawer",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(t,{emit:$}){const A=t,E=$,{drawerWidth:J}=z(520,480),N=u({get:()=>A.visible,set:e=>E("update:visible",e)}),q=p(!1),H=p(!1),Q=p(null),F=p(null),G=p(null),K=p(null),M=p(!1);async function V(){q.value=!0;try{const e=await async function(e="zip"){return(await m.get(`/config-export?format=${e}`,{responseType:"blob"})).data}("zip"),a=window.URL.createObjectURL(e),t=document.createElement("a");t.href=a,t.download=`ctx-config-${(new Date).toISOString().split("T")[0]}.zip`,document.body.appendChild(t),t.click(),document.body.removeChild(t),window.URL.revokeObjectURL(a),C.success("配置导出成功")}catch(e){C.error("导出失败: "+e.message)}finally{q.value=!1}}async function X({file:e}){try{if(Q.value=null,F.value=null,G.value=null,K.value=null,(e.file.name||"").toLowerCase().endsWith(".zip")){const a=await async function(e){const a=await e.arrayBuffer();return(await m.post("/config-export/preview-zip",a,{headers:{"Content-Type":"application/zip"}})).data}(e.file);return void(a.success?(Q.value=a.data,G.value=e.file,F.value=null,K.value="zip",C.success("ZIP 配置解析成功")):C.error("ZIP 配置格式错误: "+a.message))}const a=await e.file.text(),t=JSON.parse(a),s=await async function(e){return(await m.post("/config-export/preview",{data:e})).data}(t);s.success?(Q.value=s.data,F.value=t,G.value=null,K.value="json",C.success("配置文件解析成功")):C.error("配置文件格式错误: "+s.message)}catch(a){C.error("文件解析失败: "+a.message)}}async function Y(){if(F.value||G.value){H.value=!0;try{const e="zip"===K.value?await async function(e,a=!1){const t=await e.arrayBuffer();return(await m.post(`/config-export/import-zip?overwrite=${a}`,t,{headers:{"Content-Type":"application/zip"}})).data}(G.value,M.value):await async function(e,a=!1){return(await m.post("/config-export/import",{data:e,overwrite:a})).data}(F.value,M.value);e.success?(C.success("配置导入成功: "+e.message),ee()):C.error("配置导入失败: "+e.message)}catch(e){C.error("导入失败: "+e.message)}finally{H.value=!1}}}function ee(){Q.value=null,F.value=null,G.value=null,K.value=null,M.value=!1}return(t,u)=>(o(),n(d(x),{show:N.value,"onUpdate:show":u[1]||(u[1]=e=>N.value=e),width:d(J),placement:"right","mask-closable":!0},{default:c(()=>[i(d(b),{closable:"","native-scrollbar":!1},{header:c(()=>[v("div",D,[i(d(e),{size:20,color:"#18a058"},{default:c(()=>[i(d(h))]),_:1}),u[2]||(u[2]=v("span",null,"配置导出/导入",-1))])]),default:c(()=>[v("div",I,[v("div",O,[v("div",S,[i(d(j),{strong:""},{default:c(()=>[...u[3]||(u[3]=[l("导出配置",-1)])]),_:1}),i(d(j),{depth:"3",style:{"font-size":"12px"}},{default:c(()=>[...u[4]||(u[4]=[l(" 导出多平台配置为 ZIP(含渠道、Agents/Skills/Commands、原生配置等) ",-1)])]),_:1})]),i(d(a),{type:"primary",loading:q.value,onClick:V},{icon:c(()=>[i(d(e),null,{default:c(()=>[i(d(w))]),_:1})]),default:c(()=>[u[5]||(u[5]=l(" 导出配置 ",-1))]),_:1},8,["loading"])]),i(d(_)),v("div",L,[v("div",R,[i(d(j),{strong:""},{default:c(()=>[...u[6]||(u[6]=[l("导入配置",-1)])]),_:1}),i(d(j),{depth:"3",style:{"font-size":"12px"}},{default:c(()=>[...u[7]||(u[7]=[l(" 从 JSON 或 ZIP 文件导入配置(支持覆盖已有配置) ",-1)])]),_:1})]),i(d(y),{"custom-request":X,"show-file-list":!1,accept:".json,.zip"},{default:c(()=>[i(d(a),null,{icon:c(()=>[i(d(e),null,{default:c(()=>[i(d(g))]),_:1})]),default:c(()=>[u[8]||(u[8]=l(" 选择配置文件 ",-1))]),_:1})]),_:1}),Q.value?(o(),f("div",T,[i(d(j),{strong:"",style:{"font-size":"14px"}},{default:c(()=>[...u[9]||(u[9]=[l("导入预览",-1)])]),_:1}),v("div",P,[v("div",Z,[i(d(j),{depth:"3"},{default:c(()=>[...u[10]||(u[10]=[l("配置模板:",-1)])]),_:1}),i(d(j),null,{default:c(()=>[l(r(Q.value.counts.configTemplates),1)]),_:1})]),v("div",B,[i(d(j),{depth:"3"},{default:c(()=>[...u[11]||(u[11]=[l("渠道总数:",-1)])]),_:1}),i(d(j),null,{default:c(()=>[l(r(Q.value.counts.channels),1)]),_:1})]),v("div",W,[i(d(j),{depth:"3"},{default:c(()=>[...u[12]||(u[12]=[l("插件:",-1)])]),_:1}),i(d(j),null,{default:c(()=>[l(r(Q.value.counts.plugins||0),1)]),_:1})])]),i(d(U),{checked:M.value,"onUpdate:checked":u[0]||(u[0]=e=>M.value=e),style:{"margin-top":"12px"}},{default:c(()=>[...u[13]||(u[13]=[l(" 覆盖已有配置 ",-1)])]),_:1},8,["checked"]),i(d(k),{style:{"margin-top":"16px"}},{default:c(()=>[i(d(a),{type:"primary",loading:H.value,onClick:Y},{default:c(()=>[...u[14]||(u[14]=[l(" 确认导入 ",-1)])]),_:1},8,["loading"]),i(d(a),{onClick:ee},{default:c(()=>[...u[15]||(u[15]=[l("取消",-1)])]),_:1})]),_:1})])):s("",!0)])])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-d8c9eada"]]);export{$ as default};
1
+ import{i as e,s as a,t}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as s,D as l,O as i,S as n,W as o,_t as r,b as u,et as c,mt as d,st as p,w as f,x as v}from"./vue-vendor-BqZbbXHA.js";import{t as m}from"./client-BgcNg4Bt.js";import{Q as w,lt as g,ut as h}from"./icons-B-AzZoeE.js";import{t as y}from"./Upload-DtuQ7ady.js";import{t as _}from"./Divider-BLLhMTSt.js";import{n as x,t as z}from"./useResponsiveDrawer-C-UacYVP.js";import{t as b}from"./DrawerContent-ChXgZ1Xm.js";import{A as j,H as k,k as C,rt as U}from"./index-Bw6YXbBA.js";var D={class:"drawer-header"},I={class:"export-import-container"},O={class:"section"},S={class:"section-header"},L={class:"section"},R={class:"section-header"},T={key:0,class:"import-preview"},P={class:"preview-stats"},Z={class:"stat-item"},B={class:"stat-item"},W={class:"stat-item"},$=t({__name:"ConfigExportDrawer",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(t,{emit:$}){const A=t,E=$,{drawerWidth:J}=z(520,480),N=u({get:()=>A.visible,set:e=>E("update:visible",e)}),q=p(!1),H=p(!1),Q=p(null),F=p(null),G=p(null),K=p(null),M=p(!1);async function V(){q.value=!0;try{const e=await async function(e="zip"){return(await m.get(`/config-export?format=${e}`,{responseType:"blob"})).data}("zip"),a=window.URL.createObjectURL(e),t=document.createElement("a");t.href=a,t.download=`ctx-config-${(new Date).toISOString().split("T")[0]}.zip`,document.body.appendChild(t),t.click(),document.body.removeChild(t),window.URL.revokeObjectURL(a),C.success("配置导出成功")}catch(e){C.error("导出失败: "+e.message)}finally{q.value=!1}}async function X({file:e}){try{if(Q.value=null,F.value=null,G.value=null,K.value=null,(e.file.name||"").toLowerCase().endsWith(".zip")){const a=await async function(e){const a=await e.arrayBuffer();return(await m.post("/config-export/preview-zip",a,{headers:{"Content-Type":"application/zip"}})).data}(e.file);return void(a.success?(Q.value=a.data,G.value=e.file,F.value=null,K.value="zip",C.success("ZIP 配置解析成功")):C.error("ZIP 配置格式错误: "+a.message))}const a=await e.file.text(),t=JSON.parse(a),s=await async function(e){return(await m.post("/config-export/preview",{data:e})).data}(t);s.success?(Q.value=s.data,F.value=t,G.value=null,K.value="json",C.success("配置文件解析成功")):C.error("配置文件格式错误: "+s.message)}catch(a){C.error("文件解析失败: "+a.message)}}async function Y(){if(F.value||G.value){H.value=!0;try{const e="zip"===K.value?await async function(e,a=!1){const t=await e.arrayBuffer();return(await m.post(`/config-export/import-zip?overwrite=${a}`,t,{headers:{"Content-Type":"application/zip"}})).data}(G.value,M.value):await async function(e,a=!1){return(await m.post("/config-export/import",{data:e,overwrite:a})).data}(F.value,M.value);e.success?(C.success("配置导入成功: "+e.message),ee()):C.error("配置导入失败: "+e.message)}catch(e){C.error("导入失败: "+e.message)}finally{H.value=!1}}}function ee(){Q.value=null,F.value=null,G.value=null,K.value=null,M.value=!1}return(t,u)=>(o(),n(d(x),{show:N.value,"onUpdate:show":u[1]||(u[1]=e=>N.value=e),width:d(J),placement:"right","mask-closable":!0},{default:c(()=>[i(d(b),{closable:"","native-scrollbar":!1},{header:c(()=>[v("div",D,[i(d(e),{size:20,color:"#18a058"},{default:c(()=>[i(d(h))]),_:1}),u[2]||(u[2]=v("span",null,"配置导出/导入",-1))])]),default:c(()=>[v("div",I,[v("div",O,[v("div",S,[i(d(j),{strong:""},{default:c(()=>[...u[3]||(u[3]=[l("导出配置",-1)])]),_:1}),i(d(j),{depth:"3",style:{"font-size":"12px"}},{default:c(()=>[...u[4]||(u[4]=[l(" 导出多平台配置为 ZIP(含渠道、Agents/Skills/Commands、原生配置等) ",-1)])]),_:1})]),i(d(a),{type:"primary",loading:q.value,onClick:V},{icon:c(()=>[i(d(e),null,{default:c(()=>[i(d(w))]),_:1})]),default:c(()=>[u[5]||(u[5]=l(" 导出配置 ",-1))]),_:1},8,["loading"])]),i(d(_)),v("div",L,[v("div",R,[i(d(j),{strong:""},{default:c(()=>[...u[6]||(u[6]=[l("导入配置",-1)])]),_:1}),i(d(j),{depth:"3",style:{"font-size":"12px"}},{default:c(()=>[...u[7]||(u[7]=[l(" 从 JSON 或 ZIP 文件导入配置(支持覆盖已有配置) ",-1)])]),_:1})]),i(d(y),{"custom-request":X,"show-file-list":!1,accept:".json,.zip"},{default:c(()=>[i(d(a),null,{icon:c(()=>[i(d(e),null,{default:c(()=>[i(d(g))]),_:1})]),default:c(()=>[u[8]||(u[8]=l(" 选择配置文件 ",-1))]),_:1})]),_:1}),Q.value?(o(),f("div",T,[i(d(j),{strong:"",style:{"font-size":"14px"}},{default:c(()=>[...u[9]||(u[9]=[l("导入预览",-1)])]),_:1}),v("div",P,[v("div",Z,[i(d(j),{depth:"3"},{default:c(()=>[...u[10]||(u[10]=[l("配置模板:",-1)])]),_:1}),i(d(j),null,{default:c(()=>[l(r(Q.value.counts.configTemplates),1)]),_:1})]),v("div",B,[i(d(j),{depth:"3"},{default:c(()=>[...u[11]||(u[11]=[l("渠道总数:",-1)])]),_:1}),i(d(j),null,{default:c(()=>[l(r(Q.value.counts.channels),1)]),_:1})]),v("div",W,[i(d(j),{depth:"3"},{default:c(()=>[...u[12]||(u[12]=[l("插件:",-1)])]),_:1}),i(d(j),null,{default:c(()=>[l(r(Q.value.counts.plugins||0),1)]),_:1})])]),i(d(U),{checked:M.value,"onUpdate:checked":u[0]||(u[0]=e=>M.value=e),style:{"margin-top":"12px"}},{default:c(()=>[...u[13]||(u[13]=[l(" 覆盖已有配置 ",-1)])]),_:1},8,["checked"]),i(d(k),{style:{"margin-top":"16px"}},{default:c(()=>[i(d(a),{type:"primary",loading:H.value,onClick:Y},{default:c(()=>[...u[14]||(u[14]=[l(" 确认导入 ",-1)])]),_:1},8,["loading"]),i(d(a),{onClick:ee},{default:c(()=>[...u[15]||(u[15]=[l("取消",-1)])]),_:1})]),_:1})])):s("",!0)])])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-d8c9eada"]]);export{$ as default};
@@ -1 +1 @@
1
- import{t as e}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as a,W as t,et as s,mt as r,w as o}from"./vue-vendor-BqZbbXHA.js";import{O as p}from"./light-C2X7hegj.js";import{t as i}from"./ConfigTemplatesPanel-CorOY7kY.js";var m={class:"config-templates-page"},l=e({__name:"ConfigTemplates",setup:e=>(e,l)=>(t(),o("div",m,[a(r(p),{title:"配置模版管理",bordered:!1},{default:s(()=>[a(i,{"in-drawer":!1,"hide-back":!0})]),_:1})]))},[["__scopeId","data-v-a6c39fe5"]]);export{l as default};
1
+ import{t as e}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as a,W as t,et as s,mt as r,w as o}from"./vue-vendor-BqZbbXHA.js";import{O as p}from"./light-C2X7hegj.js";import{t as i}from"./ConfigTemplatesPanel-ChdyQ3C6.js";var m={class:"config-templates-page"},l=e({__name:"ConfigTemplates",setup:e=>(e,l)=>(t(),o("div",m,[a(r(p),{title:"配置模版管理",bordered:!1},{default:s(()=>[a(i,{"in-drawer":!1,"hide-back":!0})]),_:1})]))},[["__scopeId","data-v-a6c39fe5"]]);export{l as default};
@@ -1 +1 @@
1
- import{t as e}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as a,S as s,W as t,b as r,et as i,mt as l,x as o}from"./vue-vendor-BqZbbXHA.js";import{t as d}from"./ConfigTemplatesPanel-CorOY7kY.js";import{n,t as p}from"./useResponsiveDrawer-ChHZrTfl.js";import{t as m}from"./DrawerContent-ChXgZ1Xm.js";var v=e({__name:"ConfigTemplatesDrawer",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(e,{emit:v}){const u=e,f=v,{drawerWidth:w}=p(720),c=r({get:()=>u.visible,set:e=>f("update:visible",e)}),h={padding:0,display:"flex",flexDirection:"column",overflow:"hidden"};return(e,r)=>(t(),s(l(n),{show:c.value,"onUpdate:show":r[1]||(r[1]=e=>c.value=e),width:l(w),placement:"right","mask-closable":!0},{default:i(()=>[a(l(m),{closable:"","native-scrollbar":!1,"body-content-style":h},{header:i(()=>[...r[2]||(r[2]=[o("div",{class:"drawer-header"},"配置模版管理",-1)])]),default:i(()=>[a(d,{"in-drawer":!0,"hide-back":!0,"drawer-visible":c.value,onBack:r[0]||(r[0]=e=>c.value=!1)},null,8,["drawer-visible"])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-c337d3e9"]]);export{v as default};
1
+ import{t as e}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as a,S as s,W as t,b as r,et as i,mt as l,x as o}from"./vue-vendor-BqZbbXHA.js";import{t as d}from"./ConfigTemplatesPanel-ChdyQ3C6.js";import{n,t as p}from"./useResponsiveDrawer-C-UacYVP.js";import{t as m}from"./DrawerContent-ChXgZ1Xm.js";var v=e({__name:"ConfigTemplatesDrawer",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(e,{emit:v}){const u=e,f=v,{drawerWidth:w}=p(720),c=r({get:()=>u.visible,set:e=>f("update:visible",e)}),h={padding:0,display:"flex",flexDirection:"column",overflow:"hidden"};return(e,r)=>(t(),s(l(n),{show:c.value,"onUpdate:show":r[1]||(r[1]=e=>c.value=e),width:l(w),placement:"right","mask-closable":!0},{default:i(()=>[a(l(m),{closable:"","native-scrollbar":!1,"body-content-style":h},{header:i(()=>[...r[2]||(r[2]=[o("div",{class:"drawer-header"},"配置模版管理",-1)])]),default:i(()=>[a(d,{"in-drawer":!0,"hide-back":!0,"drawer-visible":c.value,onBack:r[0]||(r[0]=e=>c.value=!1)},null,8,["drawer-visible"])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-c337d3e9"]]);export{v as default};