zen-gitsync 2.17.40 → 2.17.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/package.json +7 -2
- package/src/config.js +69 -44
- package/src/ui/public/assets/{AgentEngineSelector-BXRU9N3n.js → AgentEngineSelector-CSHgQmBZ.js} +1 -1
- package/src/ui/public/assets/AgentEngineSelector-D7DmG6PU.css +1 -0
- package/src/ui/public/assets/{AgentView-YQuKBxoC.js → AgentView-I_fQFLKK.js} +1 -1
- package/src/ui/public/assets/AgentView-h2YnbB7J.css +1 -0
- package/src/ui/public/assets/{AppVersionBadge-CSOyKuxL.js → AppVersionBadge-CBSMyORM.js} +2 -2
- package/src/ui/public/assets/AppVersionBadge-XszX3cSC.css +1 -0
- package/src/ui/public/assets/{BranchSelector-mcQyh4sc.js → BranchSelector-Dus0Co03.js} +1 -1
- package/src/ui/public/assets/CommitForm-C7ydqzWG.css +1 -0
- package/src/ui/public/assets/{CommitForm-DcVysfJZ.js → CommitForm-DZfqHlWx.js} +3 -3
- package/src/ui/public/assets/{CommonDialog-CFLZuomi.js → CommonDialog-BaaWQMm0.js} +1 -1
- package/src/ui/public/assets/EditorView-4yWirn4A.js +1 -0
- package/src/ui/public/assets/EditorView-CzrwLEbB.css +1 -0
- package/src/ui/public/assets/FileDiffViewer-CtP7u1L7.css +1 -0
- package/src/ui/public/assets/{FileDiffViewer-BrrqMLh8.js → FileDiffViewer-qC3HjA4L.js} +4 -4
- package/src/ui/public/assets/{FlowExecutionViewer-BucjKlcc.js → FlowExecutionViewer-Baabatxd.js} +1 -1
- package/src/ui/public/assets/FlowOrchestrationWorkspace-DLt_i4gs.css +1 -0
- package/src/ui/public/assets/{FlowOrchestrationWorkspace-yUPhhUL9.js → FlowOrchestrationWorkspace-teHyeO3I.js} +2 -2
- package/src/ui/public/assets/{IconButton-BSJ5FhS5.js → IconButton-8QwNIEIr.js} +1 -1
- package/src/ui/public/assets/IconButton-DmetnIEM.css +1 -0
- package/src/ui/public/assets/{LogList-6iOkdR0p.js → LogList-BMm64HIx.js} +2 -2
- package/src/ui/public/assets/LogList-DViWAYe9.css +1 -0
- package/src/ui/public/assets/{MindmapView-Dc7VRSLk.js → MindmapView-CemLoVSh.js} +1 -1
- package/src/ui/public/assets/MindmapView-D_tEBhMg.css +1 -0
- package/src/ui/public/assets/{MonitorView-B8tcPtiX.js → MonitorView-DolfvhpN.js} +1 -1
- package/src/ui/public/assets/MonitorView-nh6LB-oh.css +1 -0
- package/src/ui/public/assets/ProjectStartupButton-BWGIWiPF.css +1 -0
- package/src/ui/public/assets/{ProjectStartupButton-CPGw8eiW.js → ProjectStartupButton-DzzIon_u.js} +1 -1
- package/src/ui/public/assets/RecentDirectoriesChat-BxbpKrXc.css +1 -0
- package/src/ui/public/assets/{RecentDirectoriesChat-C0lQ_zmQ.js → RecentDirectoriesChat-ciDAbG1B.js} +1 -1
- package/src/ui/public/assets/RemoteManagerDialog-DecRuME6.css +1 -0
- package/src/ui/public/assets/{RemoteManagerDialog-CGuGZSse.js → RemoteManagerDialog-DydRnKaP.js} +1 -1
- package/src/ui/public/assets/RemoteRepoCard-DJkEGjRM.css +1 -0
- package/src/ui/public/assets/RemoteRepoCard-i-0LnQMD.js +1 -0
- package/src/ui/public/assets/{SourceMapView-OwBvsqME.js → SourceMapView-BV5r3wZE.js} +3 -3
- package/src/ui/public/assets/SourceMapView-W3kEDGi8.css +1 -0
- package/src/ui/public/assets/{SvgIcon-CevyX7lX.js → SvgIcon-7IDEgoQx.js} +1 -1
- package/src/ui/public/assets/{TemplateManager-BtpsyfbK.js → TemplateManager-6FX2EdMq.js} +1 -1
- package/src/ui/public/assets/TemplateManager-6liTCBpW.css +1 -0
- package/src/ui/public/assets/{UserInputNode-BPTWXh5G.js → UserInputNode-Dajnb5r1.js} +1 -1
- package/src/ui/public/assets/UserInputNode-wfqZIucW.css +1 -0
- package/src/ui/public/assets/WorkbenchView-DfHNBWS0.css +1 -0
- package/src/ui/public/assets/WorkbenchView-trn3xPiX.js +20 -0
- package/src/ui/public/assets/{_plugin-vue_export-helper-DF39dMex.js → _plugin-vue_export-helper-Dp1lG95_.js} +4 -4
- package/src/ui/public/assets/agentConversations-FiD_iarB.js +6 -0
- package/src/ui/public/assets/configStore-wR8LDvKB.js +1 -0
- package/src/ui/public/assets/{gitStore-1o5Sp0mh.js → gitStore-D4L9bpMp.js} +1 -1
- package/src/ui/public/assets/index-Bu08kcaz.js +29 -0
- package/src/ui/public/assets/index-DdSWvL8M.css +1 -0
- package/src/ui/public/assets/{previewSandbox-BioBqkiI.js → previewSandbox-BHijazEq.js} +1 -1
- package/src/ui/public/assets/previewSandbox-BeiZ2CBl.css +1 -0
- package/src/ui/public/assets/{toolsStore-DozQNwtU.js → toolsStore-BGwhTEUD.js} +1 -1
- package/src/ui/public/index.html +16 -16
- package/src/ui/server/routes/config.js +13 -16
- package/src/ui/server/routes/workbench/projectRegistry.js +39 -0
- package/src/ui/server/routes/workbench/projectRegistry.test.js +48 -0
- package/src/ui/public/assets/AgentEngineSelector-DR3r5eQE.css +0 -1
- package/src/ui/public/assets/AgentView-D87GB-H9.css +0 -1
- package/src/ui/public/assets/AppVersionBadge--5If494j.css +0 -1
- package/src/ui/public/assets/CommitForm-94maYxfo.css +0 -1
- package/src/ui/public/assets/EditorView-BS4GfwaQ.js +0 -1
- package/src/ui/public/assets/EditorView-BsuQfcO4.css +0 -1
- package/src/ui/public/assets/FileDiffViewer-B6zy6NiA.css +0 -1
- package/src/ui/public/assets/FlowOrchestrationWorkspace-CM2_9TW3.css +0 -1
- package/src/ui/public/assets/IconButton-W2X09OKH.css +0 -1
- package/src/ui/public/assets/LogList-DLxxk9NX.css +0 -1
- package/src/ui/public/assets/MindmapView-C4xg3TwX.css +0 -1
- package/src/ui/public/assets/MonitorView-BWOQfPtI.css +0 -1
- package/src/ui/public/assets/ProjectStartupButton-VoQqFee4.css +0 -1
- package/src/ui/public/assets/RecentDirectoriesChat-o4xK1Koc.css +0 -1
- package/src/ui/public/assets/RemoteManagerDialog-BSOph2h2.css +0 -1
- package/src/ui/public/assets/RemoteRepoCard-CG9WPcA_.css +0 -1
- package/src/ui/public/assets/RemoteRepoCard-DbflPz65.js +0 -1
- package/src/ui/public/assets/SourceMapView-CO_BZJKu.css +0 -1
- package/src/ui/public/assets/TemplateManager-DiM3vrbf.css +0 -1
- package/src/ui/public/assets/UserInputNode-d-oRXM_J.css +0 -1
- package/src/ui/public/assets/WorkbenchView-CSRMrK-l.js +0 -20
- package/src/ui/public/assets/WorkbenchView-fCu0K8e3.css +0 -1
- package/src/ui/public/assets/agentConversations-CPWL3WOC.js +0 -6
- package/src/ui/public/assets/configStore-CZhbJNkw.js +0 -1
- package/src/ui/public/assets/index-CM4UxQfy.css +0 -1
- package/src/ui/public/assets/index-Cw-KBQo_.js +0 -29
- package/src/ui/public/assets/previewSandbox-SqNQvuHv.css +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/office-docx-mH6Ds72v.js","assets/rolldown-runtime-C0FnF6B9.js","assets/element-plus-CgEuJBlB.js","assets/dagre-Dfa6RS7s.js","assets/element-plus-Qexo5hiM.css","assets/office-excel-Doz15UyW.js","assets/office-pptx-C9I5OR_u.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{$n as t,Bn as n,Dn as r,En as i,Er as a,Fn as o,Ht as s,In as c,J as l,On as u,Pn as d,Pr as f,Qr as p,Tn as m,W as h,Yn as g,Yr as _,Zn as v,br as y,cn as b,cr as x,kn as S,nr as C,or as w,pr as T,qn as E,qr as D,sn as O,wt as k,xn as A}from"./element-plus-CgEuJBlB.js";import{_ as j}from"./vendor-CDZ64WVU.js";import{t as M}from"./_plugin-vue_export-helper-
|
|
2
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{$n as t,Bn as n,Dn as r,En as i,Er as a,Fn as o,Ht as s,In as c,J as l,On as u,Pn as d,Pr as f,Qr as p,Tn as m,W as h,Yn as g,Yr as _,Zn as v,br as y,cn as b,cr as x,kn as S,nr as C,or as w,pr as T,qn as E,qr as D,sn as O,wt as k,xn as A}from"./element-plus-CgEuJBlB.js";import{_ as j}from"./vendor-CDZ64WVU.js";import{t as M}from"./_plugin-vue_export-helper-Dp1lG95_.js";import{ir as N}from"./dagre-Dfa6RS7s.js";import{n as P,r as F}from"./flow-mindmap-CzytSMsF.js";var I=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`ico`,`svg`]);function L(e){if(!e)return!1;let t=e.split(`.`).pop()?.toLowerCase()??``;return I.has(t)}function ee(e){return`/api/editor/raw?path=${encodeURIComponent(e)}`}var R=new Set([`doc`,`docx`,`xls`,`xlsx`,`ppt`,`pptx`,`odt`,`ods`,`odp`]);function z(e){return e.split(/[\\/]/).pop()?.split(`.`).pop()?.toLowerCase()||``}function B(e){return R.has(z(e))}function V(e,t={}){let n=new URLSearchParams({source:t.source||`worktree`,file:e});return t.rev&&n.set(`rev`,t.rev),t.side&&n.set(`side`,t.side),`/api/office/preview?${n.toString()}`}function H(e,t={}){let n=new URLSearchParams({source:t.source||`worktree`,file:e});return t.rev&&n.set(`rev`,t.rev),t.side&&n.set(`side`,t.side),`/api/office/raw?${n.toString()}`}n(),f(),T();var te={class:`image-preview-toolbar`},U=[`title`],W={key:0,class:`image-preview-dim`},G={key:1,class:`image-preview-dim`},K={key:0,class:`image-preview-error`},q={class:`image-preview-error-path`},J=[`src`,`alt`],Y={class:`image-preview-footer`},X={class:`image-preview-zoom`},Z=M(c({__name:`ImagePreview`,props:{filePath:{},fileName:{}},setup(e){let t=e,n=y(null),r=y(1),o=y(0),c=y(0),u=y(!1),f=y({x:0,y:0}),C=y(null),T=y(!1),A=y(null),j=()=>{if(!n.value||!C.value)return;let e=n.value.clientWidth-32,t=n.value.clientHeight-32;if(e<=0||t<=0)return;let i=Math.min(e/C.value.w,t/C.value.h,1);r.value=i,o.value=0,c.value=0},M=()=>{r.value=Math.min(r.value*1.2,8)},N=()=>{r.value=Math.max(r.value/1.2,.1)},P=()=>{r.value=1,o.value=0,c.value=0,j()},F=e=>{e.preventDefault(),e.deltaY<0?M():N()},I=e=>{e.button===0&&(u.value=!0,f.value={x:e.clientX-o.value,y:e.clientY-c.value})},L=e=>{u.value&&(o.value=e.clientX-f.value.x,c.value=e.clientY-f.value.y)},R=()=>{u.value=!1},z=e=>{let t=e.target;C.value={w:t.naturalWidth,h:t.naturalHeight},T.value=!1,requestAnimationFrame(()=>j())},B=()=>{T.value=!0},V=m(()=>t.fileName||t.filePath?.split(`/`).pop()||``),H=m(()=>ee(t.filePath));return g(()=>{window.addEventListener(`mousemove`,L),window.addEventListener(`mouseup`,R),window.addEventListener(`resize`,j)}),E(()=>{window.removeEventListener(`mousemove`,L),window.removeEventListener(`mouseup`,R),window.removeEventListener(`resize`,j)}),w(()=>t.filePath,()=>{C.value=null,T.value=!1,r.value=1,o.value=0,c.value=0}),(e,f)=>{let m=h;return v(),S(`div`,{class:`image-preview`,ref_key:`containerRef`,ref:n,onWheel:F},[i(`div`,te,[i(`span`,{class:`image-preview-name`,title:t.filePath},p(V.value),9,U),C.value?(v(),S(`span`,W,p(C.value.w)+` × `+p(C.value.h)+` px`,1)):(v(),S(`span`,G,p(Math.round(r.value*100))+`%`,1)),f[0]||=i(`div`,{class:`image-preview-spacer`},null,-1),d(m,{content:`放大`,placement:`top`},{default:x(()=>[i(`button`,{class:`image-preview-btn`,onClick:M},[d(a(l),null,{default:x(()=>[d(a(O))]),_:1})])]),_:1}),d(m,{content:`缩小`,placement:`top`},{default:x(()=>[i(`button`,{class:`image-preview-btn`,onClick:N},[d(a(l),null,{default:x(()=>[d(a(b))]),_:1})])]),_:1}),d(m,{content:`适应窗口`,placement:`top`},{default:x(()=>[i(`button`,{class:`image-preview-btn`,onClick:P},[d(a(l),null,{default:x(()=>[d(a(s))]),_:1})])]),_:1})]),i(`div`,{class:D([`image-preview-stage`,{"is-dragging":u.value}]),onMousedown:I},[T.value?(v(),S(`div`,K,[d(a(l),{size:`32`,color:`var(--color-danger)`},{default:x(()=>[d(a(k))]),_:1}),f[1]||=i(`p`,null,`图片加载失败`,-1),i(`p`,q,p(t.filePath),1)])):(v(),S(`img`,{key:1,ref_key:`imgRef`,ref:A,src:H.value,alt:V.value,class:`image-preview-img`,style:_({transform:`translate(${o.value}px, ${c.value}px) scale(${r.value})`}),onLoad:z,onError:B,draggable:`false`},null,44,J))],34),i(`div`,Y,[f[2]||=i(`span`,null,`滚轮缩放 · 拖拽平移 · 双击重置`,-1),i(`span`,X,p(Math.round(r.value*100))+`%`,1)])],544)}}}),[[`__scopeId`,`data-v-410c54ca`]]);n(),T();var ne={class:`md-preview`},re=[`innerHTML`],ie={key:1,class:`md-mindmap`},ae=M(c({__name:`MarkdownPreview`,props:{content:{},allowHtml:{type:Boolean,default:!0}},setup(e){let n=e;function r(e){if(typeof document>`u`)return e;let t=document.createElement(`template`);return t.innerHTML=e,t.content.querySelectorAll(`script, style, iframe, object, embed, form, input, button, textarea, select`).forEach(e=>e.remove()),t.content.querySelectorAll(`*`).forEach(e=>{for(let t of Array.from(e.attributes)){let n=t.name.toLowerCase();if(n.startsWith(`on`)||n===`style`||n===`srcdoc`){e.removeAttribute(t.name);continue}if(n===`href`||n===`src`||n===`xlink:href`){let r=t.value.trim().replace(/[\u0000-\u0020]+/g,``);/^(https?:|mailto:|tel:|#|\/|\.\/|\.\.\/)/i.test(r)||n===`src`&&/^data:image\/(?:png|gif|jpe?g|webp);base64,/i.test(r)||e.removeAttribute(t.name)}}e.getAttribute(`target`)===`_blank`&&e.setAttribute(`rel`,`noopener noreferrer`)}),t.innerHTML}let o=m(()=>{let e=n.content||``,t=[],i=`@@FLOWDASH_MINDMAP_BLOCK_`,a=e.replace(/```[ \t]*mindmap[ \t]*\n([\s\S]*?)```/gi,(e,n)=>{let r=t.length;return t.push({id:r,md:n}),`${i}${r}@@`}),o=j(a,{className:!1,html:n.allowHtml}),s=n.allowHtml?o:r(o),c=RegExp(`(?:<p>)?\\s*${i}(\\d+)@@\\s*(?:</p>)?`,`g`),l=[],u=0,d;for(;(d=c.exec(s))!==null;){d.index>u&&l.push({type:`html`,html:s.slice(u,d.index)});let e=Number(d[1]);l.push({type:`mindmap`,id:e,md:t[e].md,data:P(t[e].md)}),u=d.index+d[0].length}return u<s.length&&l.push({type:`html`,html:s.slice(u)}),l.length===0&&l.push({type:`html`,html:`<p class="md-empty">无内容</p>`}),l});return(e,n)=>(v(),S(`div`,ne,[(v(!0),S(A,null,t(o.value,(e,t)=>(v(),S(A,{key:t},[e.type===`html`?(v(),S(`div`,{key:0,class:`md-segment`,innerHTML:e.html},null,8,re)):(v(),S(`div`,ie,[n[0]||=i(`div`,{class:`md-mindmap-title`},`四维导图`,-1),d(a(F),{data:e.data,"preview-mode":``,class:`md-mindmap-canvas`},null,8,[`data`])]))],64))),128))]))}}),[[`__scopeId`,`data-v-9514c256`]]);n(),f(),T();var oe={class:`office-preview`},se={class:`office-preview-toolbar`},Q={class:`office-preview-badge`},ce={key:0,class:`office-preview-side`},le={key:0,class:`office-preview-state`},ue={key:1,class:`office-preview-state office-preview-error`},de=[`src`],fe=M(c({__name:`OfficePreview`,props:{filePath:{},source:{default:`worktree`},rev:{default:``},side:{default:`new`}},setup(t){let n=t,a=o(()=>N(()=>import(`./office-docx-mH6Ds72v.js`).then(t=>e(t.t(),1)),__vite__mapDeps([0,1,2,3,4]))),s=o(()=>N(()=>import(`./office-excel-Doz15UyW.js`).then(t=>e(t.t(),1)),__vite__mapDeps([5,1,0,2,3,4]))),c=o(()=>N(()=>import(`./office-pptx-C9I5OR_u.js`).then(t=>e(t.t(),1)),__vite__mapDeps([6,1,0,2,3,4]))),l=m(()=>z(n.filePath)),d=m(()=>l.value===`docx`?a:l.value===`xls`||l.value===`xlsx`?s:l.value===`pptx`?c:null),f=m(()=>H(n.filePath,{source:n.source,rev:n.rev,side:n.side})),h=m(()=>V(n.filePath,{source:n.source,rev:n.rev,side:n.side})),g=y(null),_=y(``),b=y(!1),x=y(!1),T=y(!1),D=0;function O(){_.value&&URL.revokeObjectURL(_.value),_.value=``}async function k(e){try{let t=await fetch(h.value);if(!t.ok)throw Error(`HTTP ${t.status}`);if(e!==D)return;_.value=URL.createObjectURL(await t.blob()),T.value=!0,x.value=!1}catch{e===D&&(x.value=!0)}}async function A(){let e=++D;if(b.value=!0,x.value=!1,T.value=!1,g.value=null,O(),!d.value){await k(e),e===D&&(b.value=!1);return}try{let t=await fetch(f.value);if(!t.ok)throw Error(`HTTP ${t.status}`);if(e!==D)return;g.value=await t.arrayBuffer()}catch{await k(e)}finally{e===D&&(b.value=!1)}}function j(){if(!T.value){let e=D;g.value=null,b.value=!0,k(e).finally(()=>{e===D&&(b.value=!1)})}}function M(){A()}return w(f,()=>{A()},{immediate:!0}),E(()=>{D++,O()}),(e,n)=>(v(),S(`div`,oe,[i(`div`,se,[n[0]||=i(`span`,{class:`office-preview-title`},`Office 预览`,-1),i(`span`,Q,p(l.value.toUpperCase()),1),t.source===`git`?(v(),S(`span`,ce,p(t.side===`old`?`旧版本`:`新版本`),1)):u(``,!0),i(`button`,{class:`office-preview-reload`,type:`button`,onClick:M},`刷新`)]),b.value?(v(),S(`div`,le,`正在生成预览…`)):x.value?(v(),S(`div`,ue,[...n[1]||=[i(`p`,null,`无法预览此 Office 文件。`,-1),i(`p`,{class:`office-preview-hint`},`支持 docx、xls/xlsx、pptx;老格式需要安装 LibreOffice 才能兜底预览。`,-1)]])):T.value?(v(),S(`iframe`,{key:2,class:`office-preview-frame`,src:_.value,title:`Office 文件 PDF 预览`},null,8,de)):d.value&&g.value?(v(),r(C(d.value),{key:3,class:`office-preview-document`,src:g.value,onError:j},null,40,[`src`])):u(``,!0)]))}}),[[`__scopeId`,`data-v-d13def7d`]]),pe=`allow-scripts allow-forms allow-popups allow-modals`,$=`<script>(function(){
|
|
3
3
|
try{window.localStorage.getItem('__zk')}catch(e){
|
|
4
4
|
var d={};var s={getItem:function(k){return Object.prototype.hasOwnProperty.call(d,k)?d[k]:null},setItem:function(k,v){d[k]=String(v)},removeItem:function(k){delete d[k]},clear:function(){d={}},key:function(i){var ks=Object.keys(d);return i<ks.length?ks[i]:null}};
|
|
5
5
|
Object.defineProperty(window,'localStorage',{get:function(){return s},configurable:true});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.image-preview[data-v-410c54ca]{background:var(--bg-container);border:1px solid var(--border-color);border-radius:var(--radius-base);flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.image-preview-toolbar[data-v-410c54ca]{align-items:center;gap:var(--spacing-sm);background:var(--bg-panel);font-size:var(--font-size-sm);flex-shrink:0;padding:6px 10px;display:flex}.image-preview-name[data-v-410c54ca]{font-weight:var(--font-weight-medium);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:50%;overflow:hidden}.image-preview-dim[data-v-410c54ca]{color:var(--text-meta);font-size:var(--font-size-xs)}.image-preview-spacer[data-v-410c54ca]{flex:1}.image-preview-btn[data-v-410c54ca]{border:1px solid var(--border-color);background:var(--bg-container);width:26px;height:26px;color:var(--text-secondary);border-radius:var(--radius-base);cursor:pointer;transition:var(--transition-all);font-size:var(--font-size-mid);justify-content:center;align-items:center;display:flex}.image-preview-btn[data-v-410c54ca]:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--bg-hover)}.image-preview-stage[data-v-410c54ca]{background:linear-gradient(45deg, var(--bg-panel) 25%, transparent 25%), linear-gradient(-45deg, var(--bg-panel) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--bg-panel) 75%), linear-gradient(-45deg, transparent 75%, var(--bg-panel) 75%);cursor:grab;-webkit-user-select:none;user-select:none;background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}.image-preview-stage.is-dragging[data-v-410c54ca]{cursor:grabbing}.image-preview-img[data-v-410c54ca]{-webkit-user-drag:none;max-width:none;max-height:none;transition:transform 50ms linear;display:block}.image-preview-error[data-v-410c54ca]{text-align:center;color:var(--text-secondary)}.image-preview-error-path[data-v-410c54ca]{color:var(--text-meta);font-size:var(--font-size-xs);margin-top:var(--spacing-xs);word-break:break-all;max-width:400px}.image-preview-footer[data-v-410c54ca]{background:var(--bg-panel);font-size:var(--font-size-xs);color:var(--text-meta);flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 12px;display:flex}.image-preview-zoom[data-v-410c54ca]{font-weight:var(--font-weight-medium);color:var(--text-secondary);text-align:right;min-width:50px}.md-preview[data-v-9514c256]{word-break:break-word}.md-segment[data-v-9514c256]{display:block}.md-mindmap[data-v-9514c256]{border:1px solid var(--border-color,var(--md-border));border-radius:var(--radius-lg);background:var(--bg-panel,#fff);margin:18px 0 28px;overflow:hidden}.md-mindmap-title[data-v-9514c256]{font-size:var(--font-size-sm);color:var(--text-secondary,var(--md-text-muted));background:var(--bg-code,var(--md-bg-subtle));letter-spacing:.5px;padding:8px 12px;font-weight:600}.md-mindmap-canvas[data-v-9514c256]{width:100%;height:480px;display:block}.office-preview[data-v-d13def7d]{background:#fff;flex-direction:column;height:100%;min-height:0;display:flex}.office-preview-toolbar[data-v-d13def7d]{border-bottom:1px solid var(--border-color-light);flex:0 0 34px;align-items:center;gap:8px;height:34px;padding:0 10px;display:flex}.office-preview-title[data-v-d13def7d]{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:600}.office-preview-badge[data-v-d13def7d],.office-preview-side[data-v-d13def7d]{font-size:var(--font-size-xs);border-radius:var(--radius-base);color:var(--color-primary);background:#3b82f626;padding:2px 5px}.office-preview-side[data-v-d13def7d]{background:var(--bg-hover);color:var(--text-meta)}.office-preview-reload[data-v-d13def7d]{color:var(--text-meta);cursor:pointer;font-size:var(--font-size-sm);background:0 0;border:0;margin-left:auto}.office-preview-document[data-v-d13def7d]{flex:1;min-height:0;overflow:auto}.office-preview-frame[data-v-d13def7d]{background:#525659;border:0;flex:1;width:100%;height:100%}.office-preview-state[data-v-d13def7d]{text-align:center;color:var(--text-secondary);font-size:var(--font-size-mid);flex:1;place-content:center;display:grid}.office-preview-error[data-v-d13def7d]{color:var(--color-danger,#d33)}.office-preview-hint[data-v-d13def7d]{color:var(--text-secondary);font-size:var(--font-size-sm)}.vue-office-docx{height:100%;overflow-y:auto}.vue-office-docx .docx-wrapper>section.docx{margin-bottom:5px}@media screen and (width<=800px){.vue-office-docx .docx-wrapper{padding:10px}.vue-office-docx .docx-wrapper>section.docx{width:100%!important;padding:10px!important}}body{margin:0}.x-spreadsheet{-webkit-user-select:none;user-select:none;box-sizing:content-box;-webkit-font-smoothing:antialiased;background:#fff;font-family:Lato,Source Sans Pro,Roboto,Helvetica,Arial,sans-serif;font-size:13px;line-height:normal}.x-spreadsheet textarea{font:400 13px Arial,Lato,Source Sans Pro,Roboto,Helvetica,sans-serif}.x-spreadsheet-sheet{position:relative;overflow:hidden}.x-spreadsheet-table{vertical-align:bottom}.x-spreadsheet-tooltip{color:#fff;z-index:201;background:#000;border-radius:1px;padding:5px 10px;font-family:inherit;font-size:12px;position:absolute}.x-spreadsheet-tooltip:before{pointer-events:none;content:"";background:inherit;z-index:1;width:8px;height:8px;position:absolute;top:-4px;left:calc(50% - 4px);transform:rotate(45deg);box-shadow:1px 1px 3px -1px #0000004d}.x-spreadsheet-color-palette{padding:5px}.x-spreadsheet-color-palette table{border-collapse:separate;border-spacing:2px;background:#fff;margin:0;padding:0}.x-spreadsheet-color-palette table td{cursor:pointer;border:1px solid #0000;margin:0}.x-spreadsheet-color-palette table td:hover{border-color:#ddd}.x-spreadsheet-color-palette table td .x-spreadsheet-color-palette-cell{width:16px;height:16px}.x-spreadsheet-border-palette{padding:6px}.x-spreadsheet-border-palette table{border-collapse:separate;border-spacing:0;table-layout:fixed;background:#fff;margin:0;padding:0}.x-spreadsheet-border-palette table td{margin:0}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-left{border-right:1px solid #eee;padding-right:6px}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-left .x-spreadsheet-border-palette-cell{cursor:pointer;text-align:center;width:30px;height:30px}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-left .x-spreadsheet-border-palette-cell:hover{background-color:#eee}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-right{padding-left:6px}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-right .x-spreadsheet-line-type{position:relative;top:-3px;left:0}.x-spreadsheet-dropdown{position:relative}.x-spreadsheet-dropdown .x-spreadsheet-dropdown-content{z-index:200;background:#fff;position:absolute;box-shadow:1px 2px 5px 2px #33333326}.x-spreadsheet-dropdown.bottom-left .x-spreadsheet-dropdown-content{top:calc(100% + 5px);left:0}.x-spreadsheet-dropdown.bottom-right .x-spreadsheet-dropdown-content{top:calc(100% + 5px);right:0}.x-spreadsheet-dropdown.top-left .x-spreadsheet-dropdown-content{bottom:calc(100% + 5px);left:0}.x-spreadsheet-dropdown.top-right .x-spreadsheet-dropdown-content{bottom:calc(100% + 5px);right:0}.x-spreadsheet-dropdown .x-spreadsheet-dropdown-title{padding:0 5px;display:inline-block}.x-spreadsheet-resizer{z-index:11;position:absolute}.x-spreadsheet-resizer .x-spreadsheet-resizer-hover{background-color:#4b89ff40}.x-spreadsheet-resizer .x-spreadsheet-resizer-line{position:absolute}.x-spreadsheet-resizer.horizontal{cursor:row-resize}.x-spreadsheet-resizer.horizontal .x-spreadsheet-resizer-line{border-bottom:2px dashed #4b89ff;bottom:0;left:0}.x-spreadsheet-resizer.vertical{cursor:col-resize}.x-spreadsheet-resizer.vertical .x-spreadsheet-resizer-line{border-right:2px dashed #4b89ff;top:0;right:0}.x-spreadsheet-scrollbar{opacity:.9;z-index:12;background-color:#f4f5f8;position:absolute;bottom:0;right:0}.x-spreadsheet-scrollbar.horizontal{right:15px;overflow:scroll hidden}.x-spreadsheet-scrollbar.horizontal>div{background:#ddd;height:1px}.x-spreadsheet-scrollbar.vertical{bottom:15px;overflow:hidden scroll}.x-spreadsheet-scrollbar.vertical>div{background:#ddd;width:1px}.x-spreadsheet-overlayer{z-index:10;position:absolute;top:0;left:0}.x-spreadsheet-overlayer .x-spreadsheet-overlayer-content{pointer-events:none;width:100%;height:100%;position:absolute;overflow:hidden}.x-spreadsheet-editor,.x-spreadsheet-selector{box-sizing:content-box;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.x-spreadsheet-selector .hide-input{z-index:0;position:absolute}.x-spreadsheet-selector .hide-input input{width:0;padding:0;border:none!important}.x-spreadsheet-selector .x-spreadsheet-selector-area{z-index:5;background:#4b89ff1a;border:2px solid #4b89ff;position:absolute}.x-spreadsheet-selector .x-spreadsheet-selector-clipboard,.x-spreadsheet-selector .x-spreadsheet-selector-autofill{z-index:100;background:0 0;position:absolute}.x-spreadsheet-selector .x-spreadsheet-selector-clipboard{border:2px dashed #4b89ff}.x-spreadsheet-selector .x-spreadsheet-selector-autofill{border:1px dashed #00000073}.x-spreadsheet-selector .x-spreadsheet-selector-corner{pointer-events:auto;cursor:crosshair;background:#4b89ff;border:2px solid #fff;width:5px;height:5px;font-size:0;position:absolute;bottom:-5px;right:-5px}.x-spreadsheet-editor{z-index:20}.x-spreadsheet-editor .x-spreadsheet-editor-area{text-align:left;z-index:100;pointer-events:auto;border:2px solid #4b89ff;line-height:0;position:absolute}.x-spreadsheet-editor .x-spreadsheet-editor-area textarea{box-sizing:content-box;resize:none;text-align:start;color:inherit;white-space:normal;word-wrap:break-word;border:none;outline:none;margin:0;padding:0 3px;font:400 13px/22px Arial,Lato,Source Sans Pro,Roboto,Helvetica,sans-serif;overflow-y:hidden}.x-spreadsheet-editor .x-spreadsheet-editor-area .textline{visibility:hidden;position:fixed;top:0;left:0;overflow:hidden}.x-spreadsheet-item{-webkit-user-select:none;user-select:none;color:#000000e6;cursor:default;text-align:left;background:0;border:1px solid #0000;outline:none;height:26px;padding:2px 10px;line-height:26px;list-style:none;overflow:hidden}.x-spreadsheet-item.disabled{pointer-events:none;opacity:.5}.x-spreadsheet-item:hover,.x-spreadsheet-item.active{background:#0000000d}.x-spreadsheet-item.divider{border:none;border-bottom:1px solid #0000001a;height:0;margin:5px 0;padding:0}.x-spreadsheet-item .label{float:right;opacity:.65;font-size:1em}.x-spreadsheet-item.state,.x-spreadsheet-header.state{position:relative;padding-left:35px!important}.x-spreadsheet-item.state:before,.x-spreadsheet-header.state:before{content:"";background:#00000014;border-radius:2px;width:10px;height:10px;position:absolute;top:calc(50% - 5px);left:12px}.x-spreadsheet-item.state.checked:before,.x-spreadsheet-header.state.checked:before{background:#4b89ff}.x-spreadsheet-checkbox{backface-visibility:hidden;vertical-align:baseline;outline:0;font-size:1rem;font-style:normal;line-height:1em;display:inline-block;position:relative}.x-spreadsheet-checkbox>input{z-index:-1;outline:0;position:absolute;top:0;left:0;opacity:0!important}.x-spreadsheet-suggest,.x-spreadsheet-contextmenu,.x-spreadsheet-sort-filter{z-index:100;pointer-events:auto;background:#fff;width:260px;position:absolute;overflow:auto;box-shadow:1px 2px 5px 2px #33333326}.x-spreadsheet-suggest{width:200px}.x-spreadsheet-filter{border:1px solid #e9e9e9;margin:10px;font-size:12px}.x-spreadsheet-filter .x-spreadsheet-header{background:#f8f8f9;border-bottom:1px solid #e9e9e9;border-left:1px solid #0000;padding:.5em .75em}.x-spreadsheet-filter .x-spreadsheet-body{height:200px;overflow-y:auto}.x-spreadsheet-filter .x-spreadsheet-body .x-spreadsheet-item{height:20px;line-height:20px}.x-spreadsheet-sort-filter .x-spreadsheet-buttons{margin:10px}.x-spreadsheet-bottombar{text-align:left;background:#f5f6f7;border-top:1px solid #e0e2e4;height:40px;padding:0 30px;display:flex;position:relative}.x-spreadsheet-bottombar .x-spreadsheet-menu>li{vertical-align:middle;border-right:1px solid #e8eaed;height:40px;padding-top:0;padding-bottom:0;line-height:40px}.x-spreadsheet-menu{-webkit-user-select:none;user-select:none;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.x-spreadsheet-menu>li{float:left;vertical-align:middle;text-align:left;color:#80868b;white-space:nowrap;cursor:pointer;margin:0;padding:.785em 1em;font-weight:700;line-height:1.25em;transition:all .3s}.x-spreadsheet-menu>li.active{color:#000000a6;background-color:#fff}.x-spreadsheet-menu>li .x-spreadsheet-dropdown{display:inline-block}.x-spreadsheet-print{z-index:100;flex-direction:column;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.x-spreadsheet-print-bar{background:#424242;height:60px;padding:0 30px;line-height:60px}.x-spreadsheet-print-bar .-title{color:#fff;float:left;font-size:1.2em;font-weight:700}.x-spreadsheet-print-bar .-right{float:right;margin-top:12px}.x-spreadsheet-print-content{background:#d0d0d0;flex-direction:row;flex:auto;height:calc(100% - 60px);display:flex}.x-spreadsheet-print-content .-sider{background:#fff;border-left:2px solid #ccc;flex:0 0 300px;width:300px}.x-spreadsheet-print-content .-content{flex:auto;height:100%;overflow:auto scroll}.x-spreadsheet-canvas-card-wraper{margin:40px 20px}.x-spreadsheet-canvas-card{page-break-before:auto;page-break-after:always;background:#fff;margin:auto;box-shadow:0 8px 10px 1px #00000024,0 3px 14px 3px #0000001f,0 4px 5px #0003}.x-spreadsheet-calendar{color:#000000a6;-webkit-user-select:none;user-select:none;background:#fff}.x-spreadsheet-calendar .calendar-header{text-align:center;float:left;background:#f9fafb;width:100%;font-weight:700;line-height:30px}.x-spreadsheet-calendar .calendar-header .calendar-header-left{float:left;padding-left:5px}.x-spreadsheet-calendar .calendar-header .calendar-header-right{float:right}.x-spreadsheet-calendar .calendar-header .calendar-header-right a{border-radius:2px;margin-right:2px;padding:3px 0}.x-spreadsheet-calendar .calendar-header .calendar-header-right a:hover{background:#00000014}.x-spreadsheet-calendar .calendar-body{border-collapse:collapse;border-spacing:0}.x-spreadsheet-calendar .calendar-body th,.x-spreadsheet-calendar .calendar-body td{text-align:center;width:14.2857%;min-width:32px;padding:0;font-weight:700;line-height:30px}.x-spreadsheet-calendar .calendar-body td>.cell:hover{background:#ecf6fd}.x-spreadsheet-calendar .calendar-body td>.cell.active,.x-spreadsheet-calendar .calendar-body td>.cell.active:hover{color:#2185d0;background:#ecf6fd}.x-spreadsheet-calendar .calendar-body td>.cell.disabled{pointer-events:none;opacity:.5}.x-spreadsheet-datepicker{z-index:10;width:auto;position:absolute;top:calc(100% + 5px);left:0;box-shadow:2px 2px 5px #0003}.x-spreadsheet-buttons{justify-content:flex-end;display:flex}.x-spreadsheet-buttons .x-spreadsheet-button{margin-left:8px}.x-spreadsheet-button{white-space:nowrap;text-align:center;cursor:pointer;color:#0009;vertical-align:baseline;zoom:1;-webkit-user-select:none;user-select:none;background:#e0e1e2;border-radius:3px;outline:none;min-height:1em;padding:.75em 1em;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-size:1em;font-weight:700;line-height:1em;text-decoration:none;transition:all .1s linear;display:inline-block}.x-spreadsheet-button.active,.x-spreadsheet-button:hover{color:#000c;background-color:#c0c1c2}.x-spreadsheet-button.primary{color:#fff;background-color:#2185d0}.x-spreadsheet-button.primary:hover,.x-spreadsheet-button.primary.active{color:#fff;background-color:#1678c2}.x-spreadsheet-form-input{color:#000000de;font-size:1em;font-weight:400;display:inline-flex;position:relative}.x-spreadsheet-form-input input{z-index:1;-webkit-tap-highlight-color:#fff0;text-align:left;background:#fff;border:1px solid #e9e9e9;border-radius:3px;outline:0;flex:1 0 auto;max-width:100%;height:30px;margin:0;padding:0 8px;line-height:30px;transition:box-shadow .1s,border-color .1s;box-shadow:inset 0 1px 2px #0a0a0a0f}.x-spreadsheet-form-input input:focus{border-color:#4b89ff;box-shadow:inset 0 1px 2px #4b89ff33}.x-spreadsheet-form-select{cursor:pointer;color:#000000de;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e9e9e9;border-radius:2px;display:inline-block;position:relative;box-shadow:inset 0 1px 2px #0a0a0a0f}.x-spreadsheet-form-select .input-text{text-overflow:ellipsis;white-space:nowrap;width:auto;min-width:60px;height:30px;padding:0 8px;line-height:30px}.x-spreadsheet-form-fields{flex-flow:wrap;display:flex}.x-spreadsheet-form-fields .x-spreadsheet-form-field{flex:0 auto}.x-spreadsheet-form-fields .x-spreadsheet-form-field .label{margin:0 10px 0 0;display:inline-block}.x-spreadsheet-form-field{vertical-align:middle;margin-bottom:10px;margin-left:10px;display:block}.x-spreadsheet-form-field:first-child{margin-left:0}.x-spreadsheet-form-field.error .x-spreadsheet-form-select,.x-spreadsheet-form-field.error input{border-color:#f04134}.x-spreadsheet-form-field .tip{color:#f04134;font-size:.9em}.x-spreadsheet-dimmer{text-align:center;vertical-align:middle;opacity:0;-webkit-user-select:none;user-select:none;z-index:1000;background-color:#0009;width:100%;height:100%;transition:background-color .5s linear;animation-duration:.5s;animation-fill-mode:both;display:none;position:absolute;top:0!important;left:0!important}.x-spreadsheet-dimmer.active{opacity:1;display:block}form fieldset{border:none}form fieldset label{color:#666;margin-bottom:.5em;font-size:1em;display:block}form fieldset select{background-color:#fff;border:none;border-bottom:2px solid #ddd;border-radius:2px;width:100%;padding:.5em .85em;font-size:1.1em}.x-spreadsheet-modal,.x-spreadsheet-toast{z-index:1001;text-align:left;color:#000000de;background-color:#fff;background-clip:padding-box;border:1px solid #0000001a;border-radius:4px;min-width:360px;font-family:Lato,Source Sans Pro,Roboto,Helvetica,Arial,sans-serif;font-size:13px;line-height:1.25em;position:fixed;box-shadow:0 2px 8px #0003}.x-spreadsheet-toast{background-color:#ffffffd9}.x-spreadsheet-modal-header,.x-spreadsheet-toast-header{background-color:#ffffffd9;background-clip:padding-box;border-bottom:1px solid #0000000d;border-radius:4px 4px 0 0;font-weight:600}.x-spreadsheet-toast-header{color:#f2711c}.x-spreadsheet-modal-header{background:#00000014;border-bottom:1px solid #e0e2e4;font-size:1.0785em}.x-spreadsheet-modal-header,.x-spreadsheet-modal-content,.x-spreadsheet-toast-header,.x-spreadsheet-toast-content{padding:.75em 1em}.x-spreadsheet-menu li:first-child{display:none}.vue-office-excel{height:100%}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{br as e,pr as t}from"./element-plus-CgEuJBlB.js";import{S as n}from"./vendor-CDZ64WVU.js";import{n as r}from"./_plugin-vue_export-helper-
|
|
1
|
+
import{br as e,pr as t}from"./element-plus-CgEuJBlB.js";import{S as n}from"./vendor-CDZ64WVU.js";import{n as r}from"./_plugin-vue_export-helper-Dp1lG95_.js";import{a as i,i as a}from"./configStore-wR8LDvKB.js";t();var o=6e5;function s(e){if(!e||typeof e!=`object`)return null;let t=e;return typeof t.name!=`string`||!t.name?null:{name:t.name,detail:typeof t.detail==`string`&&t.detail?t.detail:null,provider:typeof t.provider==`string`&&t.provider?t.provider:null,source:t.source===`config`||t.source===`state`?t.source:null}}var c=n(`tools`,()=>{let t=e(!1),n=e(!1),c=e(!1),l=e(!1),u=e(!1),d=e(!1),f=e(!1),p=e(null),m=e(!1),h=e(``),g=e({}),_=e({}),v=e({}),y=e(!1),b=0,x=null;function S(e=!1){return!e&&Date.now()-b<3e5?Promise.resolve():x||(y.value=!0,x=(async()=>{try{let e=await(await fetch(`/api/latest-tool-versions`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})})).json();e.success&&e.latest&&typeof e.latest==`object`&&(v.value=e.latest,b=Date.now())}catch{}finally{y.value=!1,x=null}})(),x)}let C=null;function w(){return C||(m.value=!0,C=(async()=>{try{let e=await(await fetch(`/api/check-tools`)).json();e.success&&(t.value=!!e.vscode,n.value=!!e.claude,c.value=!!e.codex,l.value=!!e.opencode,u.value=!!e.kimi,d.value=!!e.zcode,f.value=!!e.dsh,h.value=typeof e.platform==`string`?e.platform:``,g.value=e.installers&&typeof e.installers==`object`?e.installers:{},_.value=e.versions&&typeof e.versions==`object`?e.versions:{},p.value=Date.now())}catch{}finally{m.value=!1,C=null}})(),C)}function T(e){switch(e){case`vscode`:return t.value;case`claude`:return n.value;case`codex`:return c.value;case`opencode`:return l.value;case`kimi`:return u.value;case`zcode`:return d.value;case`dsh`:return f.value}}let E=e({}),D=e(!1),O=0,k=null;function A(e){if(!D.value)return{status:`unknown`};if(!i(e))return{status:`unset`};let t=E.value[e];return t?{status:`set`,info:t}:{status:`unset`}}function j(e=!1){return!e&&D.value&&Date.now()-O<6e5?Promise.resolve():k||(k=(async()=>{try{let e=await(await fetch(`/api/workbench/executor-models`)).json();if(e?.success&&e.models&&typeof e.models==`object`){let t={};for(let n of a)t[n.id]=s(e.models[n.id]);E.value=t,D.value=!0,O=Date.now()}}catch{}finally{k=null}})(),k)}function M(e){let t=A(e);return t.status===`unknown`?``:t.status===`set`?t.info.name:r(`@42BB9:未在配置中指定`)}function N(e){let t=A(e);return t.status===`set`?[t.info.source===`state`?r(`@42BB9:CLI 内最近使用`):``,t.info.detail,t.info.provider].filter(Boolean).join(` · `):``}let P=null;function F(){P||=(w(),j(),setInterval(()=>{w(),j()},o))}function I(){P&&=(clearInterval(P),null)}return{vscodeAvailable:t,claudeAvailable:n,codexAvailable:c,opencodeAvailable:l,kimiAvailable:u,zcodeAvailable:d,dshAvailable:f,lastCheckedAt:p,isChecking:m,platform:h,installers:g,versions:_,latestVersions:v,isFetchingLatest:y,isToolAvailable:T,executorModels:E,executorModelsReady:D,executorModelState:A,executorModelText:M,executorModelDetail:N,fetchExecutorModels:j,checkTools:w,fetchLatestVersions:S,startPolling:F,stopPolling:I}});export{c as t};
|
package/src/ui/public/index.html
CHANGED
|
@@ -10,39 +10,39 @@
|
|
|
10
10
|
<meta name="theme-color" content="#141820" media="(prefers-color-scheme: dark)" />
|
|
11
11
|
<title>Zen GitSync</title>
|
|
12
12
|
<!-- 字体改为自托管(@font-face 见 src/main.css),不再依赖 Google Fonts 外链 -->
|
|
13
|
-
<script type="module" crossorigin src="/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/assets/index-Bu08kcaz.js"></script>
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/dagre-Dfa6RS7s.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/element-plus-CgEuJBlB.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/vendor-CDZ64WVU.js">
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="/assets/SvgIcon-
|
|
20
|
-
<link rel="modulepreload" crossorigin href="/assets/IconButton-
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/assets/configStore-
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-Dp1lG95_.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/assets/SvgIcon-7IDEgoQx.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="/assets/IconButton-8QwNIEIr.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/configStore-wR8LDvKB.js">
|
|
22
22
|
<link rel="modulepreload" crossorigin href="/assets/socket-io-TBtw0msS.js">
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/gitStore-
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/gitStore-D4L9bpMp.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/fileIcon-B5p5pGN9.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/flow-mindmap-CzytSMsF.js">
|
|
26
|
-
<link rel="modulepreload" crossorigin href="/assets/previewSandbox-
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/previewSandbox-BHijazEq.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/assets/monaco-DF5LNTW7.js">
|
|
28
28
|
<link rel="modulepreload" crossorigin href="/assets/useThemeObserver-DAyxqy9l.js">
|
|
29
|
-
<link rel="modulepreload" crossorigin href="/assets/CommonDialog-
|
|
30
|
-
<link rel="modulepreload" crossorigin href="/assets/FileDiffViewer-
|
|
31
|
-
<link rel="modulepreload" crossorigin href="/assets/toolsStore-
|
|
32
|
-
<link rel="modulepreload" crossorigin href="/assets/TemplateManager-
|
|
29
|
+
<link rel="modulepreload" crossorigin href="/assets/CommonDialog-BaaWQMm0.js">
|
|
30
|
+
<link rel="modulepreload" crossorigin href="/assets/FileDiffViewer-qC3HjA4L.js">
|
|
31
|
+
<link rel="modulepreload" crossorigin href="/assets/toolsStore-BGwhTEUD.js">
|
|
32
|
+
<link rel="modulepreload" crossorigin href="/assets/TemplateManager-6FX2EdMq.js">
|
|
33
33
|
<link rel="modulepreload" crossorigin href="/assets/vue-flow-tRJAB9jP.js">
|
|
34
34
|
<link rel="stylesheet" crossorigin href="/assets/element-plus-Qexo5hiM.css">
|
|
35
35
|
<link rel="stylesheet" crossorigin href="/assets/vendor-CP-WuGZG.css">
|
|
36
36
|
<link rel="stylesheet" crossorigin href="/assets/SvgIcon-BQ6bR7l0.css">
|
|
37
|
-
<link rel="stylesheet" crossorigin href="/assets/IconButton-
|
|
37
|
+
<link rel="stylesheet" crossorigin href="/assets/IconButton-DmetnIEM.css">
|
|
38
38
|
<link rel="stylesheet" crossorigin href="/assets/flow-mindmap-BMpmHdqh.css">
|
|
39
|
-
<link rel="stylesheet" crossorigin href="/assets/previewSandbox-
|
|
39
|
+
<link rel="stylesheet" crossorigin href="/assets/previewSandbox-BeiZ2CBl.css">
|
|
40
40
|
<link rel="stylesheet" crossorigin href="/assets/monaco-B2lPvkrc.css">
|
|
41
41
|
<link rel="stylesheet" crossorigin href="/assets/CommonDialog-Bzi5ISqT.css">
|
|
42
|
-
<link rel="stylesheet" crossorigin href="/assets/FileDiffViewer-
|
|
43
|
-
<link rel="stylesheet" crossorigin href="/assets/TemplateManager-
|
|
42
|
+
<link rel="stylesheet" crossorigin href="/assets/FileDiffViewer-CtP7u1L7.css">
|
|
43
|
+
<link rel="stylesheet" crossorigin href="/assets/TemplateManager-6liTCBpW.css">
|
|
44
44
|
<link rel="stylesheet" crossorigin href="/assets/vue-flow-CavUTEzp.css">
|
|
45
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
45
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DdSWvL8M.css">
|
|
46
46
|
</head>
|
|
47
47
|
<body>
|
|
48
48
|
<div id="app"></div>
|
|
@@ -989,7 +989,7 @@ export function registerConfigRoutes({
|
|
|
989
989
|
// 保存通用设置(主题、语言、工作台任务执行器、任务完成提示)
|
|
990
990
|
app.post('/api/config/save-general-settings', express.json(), async (req, res) => {
|
|
991
991
|
try {
|
|
992
|
-
const { theme, locale, taskExecutor,
|
|
992
|
+
const { theme, locale, taskExecutor, notifyPageOnTaskDone, notifyBrowserOnTaskDone, notifySoundOnTaskDone } = req.body
|
|
993
993
|
|
|
994
994
|
// 读取原始配置以保留项目设置
|
|
995
995
|
const rawConfig = await configManager.readRawConfigFile()
|
|
@@ -1007,21 +1007,19 @@ export function registerConfigRoutes({
|
|
|
1007
1007
|
rawConfig.taskExecutor = normalizedExecutor
|
|
1008
1008
|
}
|
|
1009
1009
|
|
|
1010
|
-
//
|
|
1011
|
-
//
|
|
1010
|
+
// 任务/对话结束提示的三个通道开关(全局):页面提示 / 浏览器通知 / 提示音。
|
|
1011
|
+
// 三者**平级且互相独立** —— 写其中一个绝不顺带改动另外两个(老用户升级时
|
|
1012
|
+
// 由 config.js 的 resolveNotifySwitches 从旧总开关迁移,迁移只发生在读取侧)。
|
|
1013
|
+
// 只接受布尔值,其它类型静默忽略,避免前端误传字符串 'false' 被当成真值落盘后永久打开。
|
|
1012
1014
|
// ⚠️ 规范化函数对非法值返回的是 **null**(与 normalizeTaskExecutor 同语义),
|
|
1013
1015
|
// 不是 undefined —— 判 `!== undefined` 会把非法值原样写进去变成 `null`。
|
|
1014
|
-
const
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
// 临时关掉总开关再打开,提示音设置还在,不用重设一遍。
|
|
1022
|
-
const normalizedNotifySound = configManager.normalizeNotifySoundOnTaskDone(notifySoundOnTaskDone)
|
|
1023
|
-
if (normalizedNotifySound !== null) {
|
|
1024
|
-
rawConfig.notifySoundOnTaskDone = normalizedNotifySound
|
|
1016
|
+
const normalizedNotifies = {}
|
|
1017
|
+
for (const key of ['notifyPageOnTaskDone', 'notifyBrowserOnTaskDone', 'notifySoundOnTaskDone']) {
|
|
1018
|
+
const normalized = configManager.normalizeNotifySwitch(req.body[key])
|
|
1019
|
+
if (normalized !== null) {
|
|
1020
|
+
rawConfig[key] = normalized
|
|
1021
|
+
normalizedNotifies[key] = normalized
|
|
1022
|
+
}
|
|
1025
1023
|
}
|
|
1026
1024
|
|
|
1027
1025
|
// 直接写入原始配置,避免覆盖项目设置
|
|
@@ -1029,8 +1027,7 @@ export function registerConfigRoutes({
|
|
|
1029
1027
|
res.json({
|
|
1030
1028
|
success: true,
|
|
1031
1029
|
taskExecutor: normalizedExecutor || undefined,
|
|
1032
|
-
|
|
1033
|
-
notifySoundOnTaskDone: normalizedNotifySound ?? undefined
|
|
1030
|
+
...normalizedNotifies
|
|
1034
1031
|
})
|
|
1035
1032
|
} catch (error) {
|
|
1036
1033
|
res.status(500).json({ success: false, error: error.message })
|
|
@@ -35,6 +35,9 @@
|
|
|
35
35
|
|
|
36
36
|
import { probeDirectoryGitStates } from '../../utils/directoryGitState.js';
|
|
37
37
|
import { pickLiveActivity, tailExcerpt, jobAgent, jobDurationMs } from './jobActivity.js';
|
|
38
|
+
// 图片后缀白名单只此一份(jobImage.js 的注释里也钉着这条):卡片封面、附件缩略图、
|
|
39
|
+
// 对话流内嵌图三处要是各写一份,迟早出现"这张缩略图能显示、那张不行"。
|
|
40
|
+
import { IMAGE_EXTS } from './attachmentUtils.js';
|
|
38
41
|
|
|
39
42
|
/** 看板列,数组顺序即列顺序 */
|
|
40
43
|
export const TASK_COLUMNS = ['todo', 'doing', 'done'];
|
|
@@ -347,6 +350,36 @@ export async function listProjects({
|
|
|
347
350
|
* 两条互斥:有 job 在跑就只给 live(活动区自己会显示"最新回复"),跑完了才给 lastReply,
|
|
348
351
|
* 免得同一张卡片上出现"最新回复"和"最后回复"两段相似但不同时刻的话。
|
|
349
352
|
*/
|
|
353
|
+
/** 附件是不是图片:后缀优先,认不出再退回 mime(老记录的 ext 可能缺) */
|
|
354
|
+
function isBoardImageAtt(att) {
|
|
355
|
+
const ext = String(att.ext || '').toLowerCase();
|
|
356
|
+
if (ext) return IMAGE_EXTS.has(ext);
|
|
357
|
+
return String(att.mimeType || '').toLowerCase().startsWith('image/');
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* 卡片封面用的图片附件清单(2026-10-05 补)。
|
|
362
|
+
*
|
|
363
|
+
* 起因:截图是这类任务最常带的证据("界面这块不对" + 一张图),但附件在列表/看板上
|
|
364
|
+
* 完全不可见 —— 卡片上连"这条有图"都看不出来,用户只能逐条点进去翻。
|
|
365
|
+
*
|
|
366
|
+
* 只挑图片:PDF / 日志 / JSON 这些附件没法用缩略图表达,混在一起反而稀释掉"有图"这个信号。
|
|
367
|
+
* **不截断**:卡片上只画第一张(配一枚 +N),但点开后要在看图器里左右翻,
|
|
368
|
+
* 所以整份清单都得送到前端 —— 数量本来就是个位数,多这一小段 JSON 不值得省。
|
|
369
|
+
* 只给 id / originalName / ext:前端拼 URL 只要 id,另两个是 alt 与悬停提示用的;
|
|
370
|
+
* absolutePath 是服务端内部事实,没必要随着看板接口漏出去。
|
|
371
|
+
*/
|
|
372
|
+
export function pickBoardImages(attachments) {
|
|
373
|
+
if (!Array.isArray(attachments)) return [];
|
|
374
|
+
return attachments
|
|
375
|
+
.filter(a => a && a.id && isBoardImageAtt(a))
|
|
376
|
+
.map(a => ({
|
|
377
|
+
id: a.id,
|
|
378
|
+
originalName: a.originalName || '',
|
|
379
|
+
ext: String(a.ext || '').toLowerCase(),
|
|
380
|
+
}));
|
|
381
|
+
}
|
|
382
|
+
|
|
350
383
|
export function decorateTaskForBoard(task, jobsForTask = [], { now = Date.now() } = {}) {
|
|
351
384
|
const jobs = Array.isArray(jobsForTask) ? jobsForTask : [];
|
|
352
385
|
const last = latestJob(jobs);
|
|
@@ -358,6 +391,12 @@ export function decorateTaskForBoard(task, jobsForTask = [], { now = Date.now()
|
|
|
358
391
|
projectPath: task.projectPath || '',
|
|
359
392
|
column: deriveTaskColumn(task, jobs),
|
|
360
393
|
attachmentCount: Array.isArray(task.attachments) ? task.attachments.length : 0,
|
|
394
|
+
/**
|
|
395
|
+
* 附件里的图片(卡片封面的数据源,空数组 = 这张卡不画封面)。
|
|
396
|
+
* 与 attachmentCount 是两条口径:那个是"一共挂了几个附件",这是"其中有几张图" ——
|
|
397
|
+
* 一张卡带 3 张截图 + 1 份日志时,封面上的 +N 得说 2 而不是 3。
|
|
398
|
+
*/
|
|
399
|
+
images: pickBoardImages(task.attachments),
|
|
361
400
|
runningJobs: jobs.filter(j => j && (j.status === 'running' || j.status === 'pending')).length,
|
|
362
401
|
/** 正在跑时的活动摘要;没有在跑 → null */
|
|
363
402
|
live,
|
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
OUTPUT_TAIL_CHARS,
|
|
32
32
|
trimJobForDetail,
|
|
33
33
|
buildTaskDetail,
|
|
34
|
+
pickBoardImages,
|
|
34
35
|
} from './projectRegistry.js';
|
|
35
36
|
import { normalizeOrchestrator, buildActivityFeed, buildRunningAgents } from './orchestratorStore.js';
|
|
36
37
|
|
|
@@ -256,6 +257,9 @@ test('decorateTaskForBoard: 只回卡片需要的字段', () => {
|
|
|
256
257
|
}, []);
|
|
257
258
|
assert.equal(card.column, 'todo');
|
|
258
259
|
assert.equal(card.attachmentCount, 1);
|
|
260
|
+
// 这条附件只有一个 id(没有 ext / mime)→ 认不出是图片,卡片就不画封面。
|
|
261
|
+
// 空数组而不是 undefined:前端模板直接按长度判断,缺字段会让老服务端配新前端时炸
|
|
262
|
+
assert.deepEqual(card.images, []);
|
|
259
263
|
assert.equal(card.runningJobs, 0);
|
|
260
264
|
// 没跑过就没有完成时间——看板「已完成」列的排序靠它,空值必须显式是 null
|
|
261
265
|
// 而不是 undefined(前端 doneAt 的回退链要能一路退到 updatedAt)
|
|
@@ -264,6 +268,50 @@ test('decorateTaskForBoard: 只回卡片需要的字段', () => {
|
|
|
264
268
|
assert.equal(card.lastJobAgent, '');
|
|
265
269
|
});
|
|
266
270
|
|
|
271
|
+
// ── 卡片封面:附件里的图片 ──────────────────────────────────────────
|
|
272
|
+
// 截图是这类任务最常带的证据,而在此之前看板上完全看不出"这条带图"。
|
|
273
|
+
// 这里的口径要和客户端 AttachmentZone 的 isImageAttachment 一致:**只认图片**,
|
|
274
|
+
// 混进 PDF / 日志会让卡片上那枚「还有 N 张」的 N 虚高。
|
|
275
|
+
|
|
276
|
+
test('pickBoardImages: 只挑图片,且不把服务端路径漏出去', () => {
|
|
277
|
+
const images = pickBoardImages([
|
|
278
|
+
{ id: 'a1', ext: 'png', originalName: 'shot.png', absolutePath: 'C:\\secret\\a1.png' },
|
|
279
|
+
{ id: 'a2', ext: 'pdf', originalName: 'spec.pdf', mimeType: 'application/pdf' },
|
|
280
|
+
{ id: 'a3', ext: 'JPG', originalName: 'photo.JPG' },
|
|
281
|
+
{ id: 'a4', ext: '', mimeType: 'image/webp', originalName: 'no-ext.webp' },
|
|
282
|
+
{ id: 'a5', ext: 'log', originalName: 'run.log' },
|
|
283
|
+
]);
|
|
284
|
+
assert.deepEqual(images, [
|
|
285
|
+
{ id: 'a1', originalName: 'shot.png', ext: 'png' },
|
|
286
|
+
{ id: 'a3', originalName: 'photo.JPG', ext: 'jpg' },
|
|
287
|
+
{ id: 'a4', originalName: 'no-ext.webp', ext: '' },
|
|
288
|
+
]);
|
|
289
|
+
// absolutePath 是服务端内部事实,不该随看板接口发出去
|
|
290
|
+
assert.equal('absolutePath' in images[0], false);
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
test('pickBoardImages: 没附件 / 形态不对时给空数组,不抛', () => {
|
|
294
|
+
assert.deepEqual(pickBoardImages(undefined), []);
|
|
295
|
+
assert.deepEqual(pickBoardImages(null), []);
|
|
296
|
+
assert.deepEqual(pickBoardImages([]), []);
|
|
297
|
+
// 缺 id 的脏记录进不了清单:前端要拿 id 拼 /attachments/:id/raw
|
|
298
|
+
assert.deepEqual(pickBoardImages([{ ext: 'png' }]), []);
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
test('decorateTaskForBoard: images 只数图片,attachmentCount 数全部附件', () => {
|
|
302
|
+
const card = decorateTaskForBoard({
|
|
303
|
+
id: 't1', title: '', desc: '', projectPath: 'D:\\a',
|
|
304
|
+
attachments: [
|
|
305
|
+
{ id: 'a1', ext: 'png', originalName: '1.png' },
|
|
306
|
+
{ id: 'a2', ext: 'png', originalName: '2.png' },
|
|
307
|
+
{ id: 'a3', ext: 'log', originalName: 'run.log' },
|
|
308
|
+
],
|
|
309
|
+
}, []);
|
|
310
|
+
// 两条口径必须分得开:卡片上的 «还有 N 张» 说的是图,不是附件
|
|
311
|
+
assert.equal(card.attachmentCount, 3);
|
|
312
|
+
assert.equal(card.images.length, 2);
|
|
313
|
+
});
|
|
314
|
+
|
|
267
315
|
// ── 卡片上的执行器图标 ──────────────────────────────────────────────
|
|
268
316
|
// live.agent 只在**跑的时候**有值,跑完就断;而"这条是 Claude 还是 Codex 跑的"
|
|
269
317
|
// 在跑完之后同样要能回答(卡片上那句收尾的话是谁说的)。
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.agent-engine[data-v-81dfa007]{vertical-align:middle}.agent-engine__btn[data-v-81dfa007]{border:1px solid var(--border-color);border-radius:var(--radius-base);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition-fast) ease, color var(--transition-fast) ease;background:0 0;align-items:center;gap:6px;padding:4px 8px;font-family:inherit;line-height:1.5;display:inline-flex}.agent-engine__btn[data-v-81dfa007]:hover:not(:disabled){border-color:var(--color-primary);color:var(--text-primary)}.agent-engine__btn[data-v-81dfa007]:disabled{cursor:not-allowed;color:var(--text-tertiary)}.agent-engine__icon[data-v-81dfa007],.agent-engine__item-icon[data-v-81dfa007]{flex:none;font-size:14px}.agent-engine__caret[data-v-81dfa007]{color:var(--text-tertiary);font-size:12px}.agent-engine__item[data-v-81dfa007]{align-items:center;gap:8px;min-width:148px;display:inline-flex}.agent-engine__item-name[data-v-81dfa007]{flex:1}.agent-engine__item-check[data-v-81dfa007]{color:var(--color-primary);font-size:13px}.agent-engine__item-missing[data-v-81dfa007]{font-size:var(--font-size-sm);color:var(--text-tertiary)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.marketplace-panel[data-v-79426bd0]{background:var(--bg-container);flex-direction:column;height:100%;min-height:0;display:flex}.mp-toolbar[data-v-79426bd0]{flex-shrink:0;align-items:center;gap:12px;padding:12px 16px 8px;display:flex}.mp-search[data-v-79426bd0]{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-panel);max-width:420px;height:32px;transition:border-color var(--transition-fast) ease;flex:1;align-items:center;gap:6px;padding:0 10px;display:flex}.mp-search[data-v-79426bd0]:focus-within{border-color:var(--color-primary)}.mp-search .mp-search-icon[data-v-79426bd0]{color:var(--text-tertiary);flex-shrink:0}.mp-search .mp-search-input[data-v-79426bd0]{color:var(--text-primary);font-size:var(--font-size-mid);background:0 0;border:none;outline:none;flex:1;font-family:inherit}.mp-search .mp-search-input[data-v-79426bd0]::placeholder{color:var(--text-tertiary)}.mp-target[data-v-79426bd0]{flex-shrink:0}.mp-refresh[data-v-79426bd0]{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-panel);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;transition:var(--transition-ui-fast);justify-content:center;align-items:center;display:flex}.mp-refresh[data-v-79426bd0]:hover{color:var(--color-primary);border-color:var(--color-primary)}.mp-refresh.spinning svg[data-v-79426bd0]{animation:.9s linear infinite mkt-spin-79426bd0}@keyframes mkt-spin-79426bd0{to{transform:rotate(360deg)}}.mp-toolbar-sub[data-v-79426bd0]{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;padding:0 16px 10px;display:flex}.mp-target-hint[data-v-79426bd0]{font-size:var(--font-size-sm);color:var(--text-tertiary)}.mp-target-hint b[data-v-79426bd0]{color:var(--color-primary);font-weight:600}.mp-source-filter[data-v-79426bd0]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.mp-chip[data-v-79426bd0]{font-size:var(--font-size-sm);border:1px solid var(--border-color);border-radius:var(--radius-xl);color:var(--text-tertiary);cursor:pointer;transition:var(--transition-ui-fast);background:0 0;padding:2px 10px;font-family:inherit}.mp-chip[data-v-79426bd0]:hover{color:var(--text-secondary);border-color:var(--text-tertiary)}.mp-chip.active[data-v-79426bd0]{color:var(--color-primary);border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.mp-chip.clear[data-v-79426bd0]{color:var(--text-tertiary);border-style:dashed}.mp-body[data-v-79426bd0]{flex:1;min-height:0;padding:0 16px 20px;overflow-y:auto}.mp-group[data-v-79426bd0]{margin-bottom:20px}.mp-group.installed[data-v-79426bd0]{border-top:1px dashed var(--border-color);padding-top:14px}.mp-group-header[data-v-79426bd0]{align-items:center;gap:8px;margin-bottom:10px;display:flex}.mp-group-title[data-v-79426bd0]{font-size:var(--font-size-mid);color:var(--text-primary);margin:0;font-weight:600}.mp-group-count[data-v-79426bd0]{min-width:20px;height:18px;font-size:var(--font-size-xs);border-radius:var(--radius-lg);background:var(--bg-hover);color:var(--text-tertiary);justify-content:center;align-items:center;padding:0 6px;display:inline-flex}.mp-group-error[data-v-79426bd0]{font-size:var(--font-size-sm);color:var(--color-warning);align-items:center;gap:4px;display:inline-flex}.mp-group-link[data-v-79426bd0]{color:var(--text-tertiary);transition:color var(--transition-fast) ease;display:inline-flex}.mp-group-link[data-v-79426bd0]:hover{color:var(--color-primary)}.mp-grid[data-v-79426bd0]{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.mp-card[data-v-79426bd0]{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-panel);transition:border-color var(--transition-fast) ease, box-shadow var(--transition-fast) ease;flex-direction:column;gap:6px;padding:12px;display:flex}.mp-card[data-v-79426bd0]:hover{border-color:color-mix(in srgb, var(--color-primary) 40%, var(--border-color));box-shadow:var(--shadow-sm)}.mp-card-head[data-v-79426bd0]{align-items:center;gap:8px;display:flex}.mp-card-name[data-v-79426bd0]{min-width:0;font-size:var(--font-size-mid);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.mp-card-metric[data-v-79426bd0]{font-size:var(--font-size-xs);color:var(--text-tertiary);flex-shrink:0;align-items:center;gap:3px;display:inline-flex}.mp-card-desc[data-v-79426bd0]{font-size:var(--font-size-sm);color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:36px;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.mp-card-meta[data-v-79426bd0]{flex-wrap:wrap;align-items:center;gap:6px;min-height:18px;display:flex}.mp-meta-pkg[data-v-79426bd0],.mp-meta-repo[data-v-79426bd0]{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.mp-tag[data-v-79426bd0]{font-size:var(--font-size-xs);border-radius:var(--radius-lg);background:var(--bg-hover);color:var(--text-tertiary);flex-shrink:0;padding:1px 6px}.mp-tag.remote[data-v-79426bd0]{background:color-mix(in srgb, var(--color-info,var(--action-teal)) 14%, transparent);color:var(--color-info,var(--action-teal))}.mp-tag.warn[data-v-79426bd0]{background:color-mix(in srgb, var(--color-warning) 14%, transparent);color:var(--color-warning)}.mp-card-foot[data-v-79426bd0]{align-items:center;gap:8px;margin-top:2px;display:flex}.mp-card-link[data-v-79426bd0]{font-size:var(--font-size-xs);color:var(--text-tertiary);text-decoration:none}.mp-card-link[data-v-79426bd0]:hover{color:var(--color-primary);text-decoration:underline}.mp-foot-spacer[data-v-79426bd0]{flex:1}.mp-install-btn[data-v-79426bd0]{font-size:var(--font-size-sm);border:1px solid var(--color-primary);border-radius:var(--radius-base);color:var(--color-primary);cursor:pointer;transition:var(--transition-ui-fast);background:0 0;padding:4px 14px;font-family:inherit}.mp-install-btn[data-v-79426bd0]:hover:not(:disabled){background:var(--color-primary);color:#fff}.mp-install-btn[data-v-79426bd0]:disabled{opacity:.5;cursor:not-allowed}.mp-installed-chip[data-v-79426bd0]{font-size:var(--font-size-xs);color:var(--color-success,var(--action-emerald));align-items:center;gap:3px;display:inline-flex}.mp-not-installable[data-v-79426bd0]{font-size:var(--font-size-xs);color:var(--text-tertiary)}.mp-empty[data-v-79426bd0]{font-size:var(--font-size-sm);color:var(--text-tertiary);padding:16px 0}.mp-empty.all[data-v-79426bd0]{text-align:center;padding:48px 0}.mp-installed-block[data-v-79426bd0]{margin-bottom:12px}.mp-installed-target[data-v-79426bd0]{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;font-weight:600}.mp-installed-list[data-v-79426bd0]{flex-direction:column;gap:4px;display:flex}.mp-installed-row[data-v-79426bd0]{border:1px solid var(--border-color);border-radius:var(--radius-base);background:var(--bg-panel);align-items:center;gap:10px;padding:6px 10px;display:flex}.mp-installed-name[data-v-79426bd0]{font-size:var(--font-size-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:500;overflow:hidden}.mp-installed-id[data-v-79426bd0]{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;max-width:40%;overflow:hidden}.mp-reveal-btn[data-v-79426bd0],.mp-remove-btn[data-v-79426bd0]{font-size:var(--font-size-xs);border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-tertiary);cursor:pointer;white-space:nowrap;transition:var(--transition-ui-fast);background:0 0;align-items:center;gap:4px;padding:3px 10px;font-family:inherit;display:inline-flex}.mp-reveal-btn[data-v-79426bd0]:disabled,.mp-remove-btn[data-v-79426bd0]:disabled{opacity:.5;cursor:not-allowed}.mp-reveal-btn[data-v-79426bd0]:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-tertiary)}.mp-remove-btn[data-v-79426bd0]:hover:not(:disabled){color:var(--color-danger);border-color:var(--color-danger)}@media (prefers-reduced-motion:reduce){.mp-refresh.spinning svg[data-v-79426bd0]{animation:none}}.mkt-form[data-v-79426bd0]{flex-direction:column;gap:12px;display:flex}.mkt-form-name[data-v-79426bd0]{font-size:var(--font-size-mid);color:var(--text-primary);margin:0;font-weight:600}.mkt-field[data-v-79426bd0]{flex-direction:column;gap:4px;display:flex}.mkt-field label[data-v-79426bd0]{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:600}.mkt-field input[data-v-79426bd0]{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-container);height:30px;color:var(--text-primary);font-size:var(--font-size-mid);transition:border-color var(--transition-fast) ease;padding:0 8px;font-family:inherit}.mkt-field input[data-v-79426bd0]:focus{border-color:var(--color-primary);outline:none}.mkt-hint[data-v-79426bd0]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:0}.mkt-cancel[data-v-79426bd0],.mkt-confirm[data-v-79426bd0]{font-size:var(--font-size-mid);border-radius:var(--radius-base);cursor:pointer;transition:var(--transition-ui-fast);padding:6px 16px;font-family:inherit}.mkt-cancel[data-v-79426bd0]{border:1px solid var(--border-color);color:var(--text-secondary);background:0 0;margin-right:8px}.mkt-cancel[data-v-79426bd0]:hover{color:var(--text-primary);border-color:var(--text-tertiary)}.mkt-confirm[data-v-79426bd0]{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff}.mkt-confirm[data-v-79426bd0]:hover{opacity:.9}.agent-view[data-v-05972cec]{background:var(--bg-container);height:100%;min-height:0;display:flex}.agent-sidebar[data-v-05972cec]{background:var(--bg-panel);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.agent-conversations[data-v-05972cec]{flex:1;min-height:0;padding:10px 6px 8px 12px}.sidebar-resizer[data-v-05972cec]{cursor:col-resize;width:4px;transition:background var(--transition-fast) ease;background:0 0;flex-shrink:0}.sidebar-resizer[data-v-05972cec]:hover,.sidebar-resizer.active[data-v-05972cec]{background:var(--color-primary);opacity:.3}.agent-chat-area[data-v-05972cec]{flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.agent-engine[data-v-05972cec]{margin-bottom:7px;margin-left:auto}.agent-tabs[data-v-05972cec]{border-bottom:1px solid var(--border-color);background:var(--bg-panel);flex-shrink:0;align-items:center;gap:4px;padding:8px 12px 0;display:flex}.agent-tab[data-v-05972cec]{color:var(--text-tertiary);font-size:var(--font-size-mid);cursor:pointer;transition:color var(--transition-fast) ease, border-color var(--transition-fast) ease, background var(--transition-fast) ease;border-radius:var(--radius-base) var(--radius-base) 0 0;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:7px 14px 9px;font-family:inherit;display:inline-flex}.agent-tab[data-v-05972cec]:hover{color:var(--text-secondary);background:var(--bg-hover)}.agent-tab.active[data-v-05972cec]{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.agent-tab-body[data-v-05972cec]{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.agent-chat-pane[data-v-05972cec]{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.agent-tab-body[data-v-05972cec]>.marketplace-panel{flex:1;min-height:0}.chat-loading[data-v-05972cec]{color:var(--text-tertiary);font-size:var(--font-size-base);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.agent-list-page[data-v-05972cec]{background:var(--bg-panel);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.agent-list-page .agent-conversations[data-v-05972cec]{padding:12px 12px 10px 14px}.agent-page-bar[data-v-05972cec]{border-bottom:1px solid var(--border-color);background:var(--bg-panel);flex-shrink:0;align-items:center;gap:6px;height:34px;padding:0 12px 0 6px;display:flex}.agent-page-back[data-v-05972cec]{border-radius:var(--radius-xs);width:24px;height:24px;color:var(--text-tertiary);cursor:pointer;transition:var(--transition-ui-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.agent-page-back[data-v-05972cec]:hover{background:var(--bg-hover);color:var(--text-secondary)}.agent-page-title[data-v-05972cec]{min-width:0;font-size:var(--font-size-mid);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.agent-chat-host[data-v-05972cec]{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.agent-chat-host[data-v-05972cec] .acu-avatar--left{background:0 0}.agent-chat-host[data-v-05972cec] .acu-welcome-logo{background:var(--welcome-avatar) center/46px 46px no-repeat;width:56px;height:56px;box-shadow:none}.agent-chat-host[data-v-05972cec] .acu-welcome-logo>svg{display:none}.agent-chat-host[data-v-05972cec] .acu-welcome-grid{flex-wrap:wrap;display:flex}.agent-chat-host[data-v-05972cec] .acu-welcome-grid>.acu-preset-q{flex:260px;min-width:0}[data-theme=dark]{background:var(--bg-panel)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.upgrade-status[data-v-5c9f402d]{align-items:center;gap:var(--spacing-base);margin-bottom:var(--spacing-md);font-size:var(--font-size-base);font-weight:500;display:flex}.upgrade-status.is-running[data-v-5c9f402d]{color:var(--el-color-primary)}.upgrade-status.is-success[data-v-5c9f402d]{color:var(--el-color-success)}.upgrade-status.is-failed[data-v-5c9f402d]{color:var(--el-color-danger)}.upgrade-status .is-loading[data-v-5c9f402d]{animation:2s linear infinite rotating-5c9f402d}.upgrade-log[data-v-5c9f402d]{color:#d4d4d4;border-radius:var(--radius-base);height:320px;font-family:JetBrains Mono,Cascadia Code,Consolas,monospace;font-size:var(--font-size-sm);white-space:pre-wrap;word-break:break-all;background:#1e1e1e;margin:0;padding:12px;line-height:1.6;overflow:auto}.upgrade-hint[data-v-5c9f402d]{margin:0 0 var(--spacing-md) 0;border-left:3px solid var(--el-color-success);border-radius:var(--radius-base);color:var(--el-color-success);font-size:var(--font-size-mid);background:#67c23a14;padding:8px 12px}.upgrade-countdown[data-v-5c9f402d]{background:var(--el-color-success);color:#fff;border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-left:8px;padding:1px 8px;font-weight:600;animation:1s ease-in-out infinite pulse-5c9f402d;display:inline-block}.upgrade-manual[data-v-5c9f402d]{margin:0 0 var(--spacing-md) 0;border-left:3px solid var(--el-color-danger);border-radius:var(--radius-base);font-size:var(--font-size-mid);background:#f56c6c14;padding:8px 12px}.upgrade-manual__label[data-v-5c9f402d]{color:var(--el-color-danger);margin-bottom:4px;font-weight:500;display:block}.upgrade-manual__cmd[data-v-5c9f402d]{border-radius:var(--radius-base);font-family:JetBrains Mono,Cascadia Code,Consolas,monospace;font-size:var(--font-size-sm);color:var(--text-primary,#303133);word-break:break-all;-webkit-user-select:all;user-select:all;background:#0000000a;padding:6px 8px;display:block}@keyframes pulse-5c9f402d{0%,to{opacity:1}50%{opacity:.55}}@keyframes rotating-5c9f402d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-version-badge[data-v-4084e4be]{align-items:center;gap:var(--spacing-base);margin-left:auto;display:inline-flex}.badge-icon-link[data-v-4084e4be]{border-radius:var(--radius-base);width:22px;height:22px;color:var(--text-tertiary);opacity:.7;transition:color var(--transition-base) ease, opacity var(--transition-base) ease, background var(--transition-base) ease;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.badge-icon-link[data-v-4084e4be]:hover{opacity:1;color:var(--text-secondary);background:var(--bg-hover)}.badge-icon-link--npm[data-v-4084e4be]:hover{color:var(--color-npm)}.badge-icon-link[data-v-4084e4be]:first-child:hover{color:var(--text-primary)}.version-link[data-v-4084e4be]{font-family:monospace;font-size:var(--font-size-xs);color:var(--text-secondary);border-radius:var(--radius-base);transition:color var(--transition-base), background-color var(--transition-base);padding:2px 6px;text-decoration:none}.version-link[data-v-4084e4be]:hover{color:var(--color-primary);background-color:#0000000a}.upgrade-btn[data-v-4084e4be]{appearance:none;cursor:pointer;height:22px;font-family:inherit;font-size:var(--font-size-xs);color:#fff;background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom), filter var(--transition-fast) var(--ease-custom);white-space:nowrap;-webkit-user-select:none;user-select:none;border:0;border-radius:11px;outline:none;align-items:center;gap:5px;margin:0;padding:0 10px 0 8px;font-weight:600;line-height:1;display:inline-flex}.upgrade-btn[data-v-4084e4be]:hover{filter:brightness(1.08);box-shadow:var(--shadow-md);transform:translateY(-1px)}.upgrade-btn[data-v-4084e4be]:active{filter:brightness(.96);box-shadow:var(--shadow-sm);transform:translateY(0)}.upgrade-btn[data-v-4084e4be]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.upgrade-btn__dot[data-v-4084e4be]{background:#fff;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1.6s ease-in-out infinite upgrade-pulse-4084e4be;box-shadow:0 0 0 2px #ffffff59}.upgrade-btn__label[data-v-4084e4be]{letter-spacing:.5px}.upgrade-btn__version[data-v-4084e4be]{font-family:monospace;font-size:var(--font-size-xs);border-radius:var(--radius-md);background:#ffffff38;padding:1px 5px;font-weight:500;line-height:1.2}@keyframes upgrade-pulse-4084e4be{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.stage-button.from-drawer[data-v-7c59a857]{padding:6px var(--spacing-md);font-size:var(--font-size-sm);height:32px}.stage-button.from-status[data-v-7c59a857]{padding:var(--spacing-base);font-size:var(--font-size-sm);height:36px}.stage-button.from-form[data-v-7c59a857]{font-size:var(--font-size-mid);height:32px}.stage-button.is-selective[data-v-7c59a857]{box-shadow:0 0 0 2px var(--tint-primary-35)}.commit-button.from-drawer[data-v-056f6f5d]{padding:6px var(--spacing-md);font-size:var(--font-size-sm);height:32px}.commit-button.from-status[data-v-056f6f5d]{padding:var(--spacing-base);font-size:var(--font-size-sm);height:36px}.commit-button.from-form[data-v-056f6f5d]{font-size:var(--font-size-mid);height:32px}.commit-button.is-committing[data-v-056f6f5d]{min-width:96px;transition:min-width var(--transition-base) var(--ease-custom)}[data-v-3d7c968a] .el-overlay-dialog{will-change:auto!important}[data-v-3d7c968a] .el-dialog{overflow:hidden;will-change:auto!important;border-radius:12px!important}.push-progress-dialog[data-v-3d7c968a] .el-dialog__header{padding:var(--spacing-lg) var(--spacing-xl)}.push-progress-dialog[data-v-3d7c968a] .el-dialog__title{font-size:var(--font-size-md);letter-spacing:.5px;font-weight:600}.status-progress[data-v-3d7c968a] .el-dialog__title{color:var(--color-primary)}.status-success[data-v-3d7c968a] .el-dialog__title{color:var(--color-success)}.status-error[data-v-3d7c968a] .el-dialog__title{color:var(--color-danger)}.push-progress-container[data-v-3d7c968a]{gap:var(--spacing-lg);padding:var(--spacing-md);flex-direction:column;display:flex}.push-progress-container[data-v-3d7c968a] *{will-change:auto}@keyframes success-pulse-3d7c968a{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes loading-pulse-3d7c968a{0%,to{box-shadow:0 0 0 0 var(--tint-primary-16)}50%{box-shadow:0 0 0 6px #409eff00}}@keyframes border-light-run-3d7c968a{0%{width:60px;height:2px;top:0;left:0}24.99%{width:60px;height:2px;top:0;left:100%}25%{width:2px;height:60px;top:0;left:100%}49.99%{width:2px;height:60px;top:100%;left:100%}50%{width:60px;height:2px;top:100%;left:100%}74.99%{width:60px;height:2px;top:100%;left:0}75%{width:2px;height:60px;top:100%;left:0}99.99%{width:2px;height:60px;top:0;left:0}to{width:60px;height:2px;top:0;left:0}}.pulling-section[data-v-3d7c968a]{align-items:center;gap:var(--spacing-lg);padding:var(--spacing-xl) var(--spacing-xl);border-radius:var(--radius-md);background:#409eff0a;border:1px solid #409eff2e;display:flex;position:relative;overflow:hidden}.pulling-section[data-v-3d7c968a]:before{content:"";width:60px;height:2px;box-shadow:0 0 10px var(--tint-primary-50);background:linear-gradient(90deg,#0000 0%,#409eff66 30%,#409effe6 50%,#409eff66 70%,#0000 100%);animation:2.5s linear infinite border-light-run-3d7c968a;position:absolute;top:0;left:0}.pulling-icon-wrap[data-v-3d7c968a]{flex-shrink:0;width:44px;height:44px}.pulling-spinner[data-v-3d7c968a]{width:44px;height:44px;animation:1.4s linear infinite pulling-rotate-3d7c968a}.pulling-spinner .pulling-spinner-track[data-v-3d7c968a]{stroke:var(--tint-primary-16)}.pulling-spinner .pulling-spinner-arc[data-v-3d7c968a]{stroke:#409effe6;stroke-linecap:round;stroke-dasharray:80 126;animation:1.4s ease-in-out infinite pulling-dash-3d7c968a}.pulling-text-wrap[data-v-3d7c968a]{flex-direction:column;gap:4px;display:flex}.pulling-title[data-v-3d7c968a]{font-size:var(--font-size-sm);color:#409efff2;letter-spacing:.3px;font-weight:600}.pulling-sub[data-v-3d7c968a]{font-size:var(--font-size-sm);color:#ffffff59}@keyframes pulling-rotate-3d7c968a{to{transform:rotate(360deg)}}@keyframes pulling-dash-3d7c968a{0%{stroke-dasharray:1 126;stroke-dashoffset:0}50%{stroke-dasharray:90 126;stroke-dashoffset:-35px}to{stroke-dasharray:90 126;stroke-dashoffset:-124px}}.stages-section[data-v-3d7c968a]{gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);transition:var(--transition-ui-slow);background:0 0;border:1px solid #ffffff0d;grid-template-columns:repeat(2,1fr);display:grid;position:relative;overflow:hidden}.stages-section.is-loading[data-v-3d7c968a]{border-color:var(--tint-primary-16)}.stages-section.is-loading[data-v-3d7c968a]:before{content:"";width:60px;height:2px;box-shadow:0 0 10px var(--tint-primary-50);background:linear-gradient(90deg,#0000 0%,#409eff66 30%,#409effcc 50%,#409eff66 70%,#0000 100%);animation:4s linear infinite border-light-run-3d7c968a;position:absolute;top:0;left:0}.stages-section.is-success[data-v-3d7c968a]{border-color:#67c23a33}[data-theme=dark] .stages-section[data-v-3d7c968a]{opacity:.8}.stage-item[data-v-3d7c968a]{gap:var(--spacing-base);padding:10px var(--spacing-md);border-radius:var(--radius-lg);transition:var(--transition-ui-slow);background:#ffffff08;border:1px solid #ffffff14;flex-direction:column;display:flex;position:relative}.stage-item.active[data-v-3d7c968a]{background:var(--tint-primary-06);border-color:var(--tint-primary-16);transform:scale(1.01)}.stage-item.finished[data-v-3d7c968a]{background:#67c23a0d;border-color:#67c23a26}.stage-item.error[data-v-3d7c968a]{background:#f56c6c0d;border-color:#f56c6c26}.stage-header[data-v-3d7c968a]{align-items:center;gap:10px;display:flex}.stage-icon[data-v-3d7c968a]{width:24px;height:24px;transition:var(--transition-ui-slow);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.stage-icon .icon-finish[data-v-3d7c968a]{color:var(--color-success);font-size:var(--font-size-md)}.stage-icon .icon-error[data-v-3d7c968a]{color:var(--color-danger);font-size:var(--font-size-md)}.stage-icon .icon-process[data-v-3d7c968a]{color:var(--color-primary);font-size:var(--font-size-md);animation:1s linear infinite rotate-3d7c968a}.stage-icon .icon-wait[data-v-3d7c968a]{color:gray;font-size:var(--font-size-md);animation:2s linear infinite rotate-3d7c968a}@keyframes rotate-3d7c968a{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.stage-info[data-v-3d7c968a]{flex:1;justify-content:space-between;align-items:center;display:flex}.stage-label[data-v-3d7c968a]{color:var(--text-primary);letter-spacing:.2px;font-weight:500}.stage-percent[data-v-3d7c968a]{font-size:var(--font-size-sm);color:var(--color-primary);text-align:right;letter-spacing:.5px;min-width:42px;font-family:Consolas,Monaco,monospace;font-weight:700}.finished .stage-percent[data-v-3d7c968a]{color:var(--color-success)}.stage-progress[data-v-3d7c968a]{padding-left:34px}.stage-progress[data-v-3d7c968a] .el-progress-bar__outer{background-color:#00000014}.stage-progress[data-v-3d7c968a] .el-progress-bar__inner{background:linear-gradient(90deg, var(--color-primary), var(--color-primary-light));transition:var(--transition-ui-slow)}.finished .stage-progress[data-v-3d7c968a] .el-progress-bar__inner{background:linear-gradient(90deg, var(--color-success), var(--color-success))}.error-section[data-v-3d7c968a]{border-radius:var(--radius-lg);padding:var(--spacing-lg);gap:var(--spacing-base);background:#fef0f0;border:1px solid #fde2e2;flex-direction:column;display:flex}.error-header[data-v-3d7c968a]{justify-content:space-between;align-items:center;display:flex}.error-title[data-v-3d7c968a]{color:var(--color-danger);font-weight:600}.pull-button[data-v-3d7c968a]{align-items:center;gap:4px;display:flex}.error-content[data-v-3d7c968a]{color:#c45656;font-size:var(--font-size-mid);word-break:break-word;padding:var(--spacing-sm);border-radius:var(--radius-base);background:#00000008;line-height:1.6}.error-suggestion[data-v-3d7c968a]{font-size:var(--font-size-sm);color:var(--color-primary);margin-top:4px;font-weight:500}.messages-section[data-v-3d7c968a]{gap:var(--spacing-base);flex-direction:column;display:flex}.messages-title[data-v-3d7c968a]{color:var(--text-secondary);font-weight:600;font-size:var(--font-size-sm);letter-spacing:.3px;opacity:.85}.progress-messages[data-v-3d7c968a]{border-radius:var(--radius-lg);max-height:160px;padding:10px var(--spacing-md);font-family:Consolas,Monaco,Courier New,monospace;font-size:var(--font-size-xs);background:#0000004d;border:1px solid #ffffff0d;line-height:1.5;overflow-y:auto;box-shadow:inset 0 2px 4px #0003}.progress-messages[data-v-3d7c968a]::-webkit-scrollbar{width:5px}.progress-messages[data-v-3d7c968a]::-webkit-scrollbar-track{border-radius:var(--radius-base);background:#0000001a}.progress-messages[data-v-3d7c968a]::-webkit-scrollbar-thumb{border-radius:var(--radius-base);background:#fff3}.progress-messages[data-v-3d7c968a]::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.message-item[data-v-3d7c968a]{color:#ffffffd9;padding:var(--spacing-xs) 0;white-space:nowrap;text-overflow:ellipsis;opacity:.9;transition:opacity var(--transition-base) ease;overflow:hidden}.message-item[data-v-3d7c968a]:hover{opacity:1}.message-item[data-v-3d7c968a]:not(:last-child){margin-bottom:3px}[data-theme=dark] .error-section[data-v-3d7c968a]{background:#f56c6c1a;border-color:#f56c6c4d}[data-theme=dark] .error-content[data-v-3d7c968a]{color:#f89898}:root:not([data-theme=dark]) .progress-messages[data-v-3d7c968a]{background:#0000000f;border:1px solid #00000014;box-shadow:inset 0 1px 3px #00000014}:root:not([data-theme=dark]) .message-item[data-v-3d7c968a]{color:#000000bf}:root:not([data-theme=dark]) .message-item[data-v-3d7c968a]:hover{color:#000000e6}:root:not([data-theme=dark]) .messages-title[data-v-3d7c968a]{color:#000000a6}:root:not([data-theme=dark]) .progress-messages[data-v-3d7c968a]::-webkit-scrollbar-track{background:#0000000d}:root:not([data-theme=dark]) .progress-messages[data-v-3d7c968a]::-webkit-scrollbar-thumb{background:#0003}:root:not([data-theme=dark]) .progress-messages[data-v-3d7c968a]::-webkit-scrollbar-thumb:hover{background:#0000004d}.push-button-group[data-v-ed54022f]{align-items:center;gap:4px;display:inline-flex}.push-remote-item[data-v-ed54022f]{align-items:center;gap:6px;display:inline-flex}.push-button.from-drawer[data-v-ed54022f]{padding:6px var(--spacing-md);font-size:var(--font-size-sm);height:32px}.push-button.from-status[data-v-ed54022f]{padding:var(--spacing-base);font-size:var(--font-size-sm);height:36px}.push-button.from-form[data-v-ed54022f]{font-size:var(--font-size-mid);height:32px}.push-button__caret.from-drawer[data-v-ed54022f],.push-button__caret.from-form[data-v-ed54022f]{height:32px;padding:0 6px}.push-button__caret.from-status[data-v-ed54022f]{height:36px;padding:0 6px}.push-button__caret[data-v-ed54022f] .el-icon{font-size:var(--font-size-sm)}.one-push-button[data-v-9681aa6d]{height:100%;background:var(--color-primary-dark)!important;border:1px solid var(--color-primary-dark)!important;color:#fff!important}.one-push-button[data-v-9681aa6d]:hover:not(.is-disabled){background:color-mix(in srgb, var(--color-primary-dark) 88%, #000)!important;border-color:color-mix(in srgb, var(--color-primary-dark) 88%, #000)!important}.one-push-button .one-push-icon[data-v-9681aa6d],.one-push-button .one-push-title[data-v-9681aa6d],.one-push-button .one-push-desc[data-v-9681aa6d]{color:#fff}.one-push-button.form[data-v-9681aa6d]{width:100%;padding:4px 12px}.one-push-button.drawer[data-v-9681aa6d]{width:auto;height:32px}.one-push-button .one-push-content[data-v-9681aa6d]{align-items:center;gap:6px;display:flex}.one-push-button .one-push-content .one-push-icon[data-v-9681aa6d]{font-size:var(--font-size-base)}.one-push-button .one-push-content .one-push-text[data-v-9681aa6d]{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.one-push-button .one-push-content .one-push-text .one-push-title[data-v-9681aa6d]{font-size:var(--font-size-mid)}.one-push-button .one-push-content .one-push-text .one-push-desc[data-v-9681aa6d]{font-size:var(--font-size-xs);opacity:.9;letter-spacing:.1px;font-weight:400}.create-tag-button[data-v-871521cb]{display:inline-block}.tag-dialog-content[data-v-871521cb]{gap:var(--spacing-base);flex-direction:column;display:flex}.tag-info-card[data-v-871521cb]{align-items:flex-start;gap:var(--spacing-base);padding:var(--spacing-base);border-radius:var(--radius-xl);background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border:1px solid #86efac;display:flex;position:relative;overflow:hidden}.tag-info-card[data-v-871521cb]:before{content:"";background:linear-gradient(90deg, var(--action-green) 0%, var(--action-green-dark) 100%);height:3px;position:absolute;top:0;left:0;right:0}.tag-info-card .info-icon[data-v-871521cb]{background:linear-gradient(135deg, var(--action-green) 0%, var(--action-green-dark) 100%);border-radius:var(--radius-md);color:#fff;width:40px;height:40px;font-size:var(--font-size-lg);box-shadow:var(--shadow-md);flex-shrink:0;justify-content:center;align-items:center;display:flex}.tag-info-card .info-content[data-v-871521cb]{flex:1}.tag-info-card .info-content h4[data-v-871521cb]{font-size:var(--font-size-md);color:#14532d;margin:0 0 6px;font-weight:600;line-height:1.2}.tag-info-card .info-content p[data-v-871521cb]{color:#166534;margin:0;line-height:1.4}.tag-form[data-v-871521cb]{gap:var(--spacing-base);flex-direction:column;display:flex}.tag-form[data-v-871521cb] .el-form-item{margin-bottom:0}.tag-form[data-v-871521cb] .el-form-item__label{color:var(--color-text-title);margin-bottom:var(--spacing-base);font-weight:600}.tag-form[data-v-871521cb] .el-input .el-input__inner{border-radius:var(--radius-lg);border:2px solid var(--color-gray-200);transition:var(--transition-ui-slow)}.tag-form[data-v-871521cb] .el-input .el-input__inner:hover{border-color:var(--color-gray-300)}.tag-form[data-v-871521cb] .el-input .el-input__inner:focus-visible{border-color:var(--action-green);box-shadow:0 0 0 3px #22c55e1a}.tag-form[data-v-871521cb] .el-textarea .el-textarea__inner{border-radius:var(--radius-lg);border:2px solid var(--color-gray-200);transition:var(--transition-ui-slow);line-height:1.5}.tag-form[data-v-871521cb] .el-textarea .el-textarea__inner:hover{border-color:var(--color-gray-300)}.tag-form[data-v-871521cb] .el-textarea .el-textarea__inner:focus-visible{border-color:var(--action-green);box-shadow:0 0 0 3px #22c55e1a}.tag-form[data-v-871521cb] .el-radio-group{width:100%}.tag-form[data-v-871521cb] .el-radio-group .el-radio-button{flex:1}.tag-form[data-v-871521cb] .el-radio-group .el-radio-button .el-radio-button__inner{border-radius:var(--radius-lg);width:100%;transition:var(--transition-ui-slow)}.form-tip[data-v-871521cb]{margin-top:var(--spacing-base);font-size:var(--font-size-sm);color:var(--color-gray-500);align-items:flex-start;gap:6px;line-height:1.4;display:flex}.form-tip .el-icon[data-v-871521cb]{color:var(--color-gray-400);flex-shrink:0;margin-top:1px}.commit-prefix[data-v-871521cb]{font-size:var(--font-size-sm);color:var(--color-gray-500);font-family:monospace}[data-v-871521cb] .tag-dialog .common-dialog__footer .el-button{border-radius:var(--radius-lg);transition:var(--transition-ui-slow);font-weight:500}[data-v-871521cb] .tag-dialog .common-dialog__footer .el-button:hover{transform:scale(1.02)}[data-v-871521cb] .tag-dialog .common-dialog__footer .el-button:active{transform:scale(.98)}[data-v-871521cb] .tag-dialog .common-dialog__footer .el-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tag-list-button[data-v-366ce062]{display:inline-block}.tag-list-content[data-v-366ce062]{min-height:400px;padding:0}[data-v-366ce062] .tag-list-dialog .common-dialog__header{background:var(--action-green);color:#fff;padding:var(--spacing-xl) var(--spacing-2xl);border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin:0}[data-v-366ce062] .tag-list-dialog .common-dialog__title{font-size:var(--font-size-lg);color:#fff;font-weight:600}[data-v-366ce062] .tag-list-dialog .common-dialog__close{color:#fff;font-size:var(--font-size-lg)}[data-v-366ce062] .tag-list-dialog .common-dialog__close:hover{color:var(--border-card)}.tag-header[data-v-366ce062]{margin-bottom:var(--spacing-base);padding:var(--spacing-base);background:linear-gradient(135deg, var(--color-white) 0%, var(--color-gray-soft) 100%);border-radius:var(--radius-lg);border:1px solid var(--border-component);box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;display:flex}.tag-stats[data-v-366ce062]{align-items:center;gap:var(--spacing-base);display:flex}.stat-item[data-v-366ce062]{align-items:center;gap:var(--spacing-base);padding:var(--spacing-xs) var(--spacing-base);background:var(--action-green);border-radius:var(--radius-lg);color:#fff;display:flex}.stat-icon[data-v-366ce062]{font-size:var(--font-size-md)}.stat-number[data-v-366ce062]{font-size:var(--font-size-lg);font-weight:600}.stat-label[data-v-366ce062]{opacity:.9}.tag-actions-header[data-v-366ce062]{gap:var(--spacing-base);display:flex}.refresh-btn[data-v-366ce062],.push-all-btn[data-v-366ce062]{border-radius:var(--radius-lg);padding:var(--spacing-xs) var(--spacing-base);transition:var(--transition-ui-slow);font-weight:500}.refresh-btn[data-v-366ce062]:hover,.push-all-btn[data-v-366ce062]:hover{transform:scale(1.02)}.refresh-btn[data-v-366ce062]:active,.push-all-btn[data-v-366ce062]:active{transform:scale(.98)}.refresh-btn[data-v-366ce062]:focus-visible,.push-all-btn[data-v-366ce062]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tag-list-container[data-v-366ce062]{min-height:300px}.tag-cards[data-v-366ce062]{gap:var(--spacing-base);flex-direction:column;display:flex}.tag-card[data-v-366ce062]{background:var(--bg-container);border-radius:var(--radius-lg);border:1px solid var(--border-component);box-shadow:var(--shadow-md);transition:var(--transition-ui-slow);overflow:hidden}.tag-card[data-v-366ce062]:hover{border-color:var(--action-green);transform:scale(1.02)}.tag-card[data-v-366ce062]:active{transform:scale(.98)}.tag-card[data-v-366ce062]:focus-visible{outline:2px solid var(--action-green);outline-offset:2px}.tag-card-content[data-v-366ce062]{padding:var(--spacing-base);align-items:center;gap:var(--spacing-base);display:flex}.tag-info[data-v-366ce062]{gap:var(--spacing-sm);flex-direction:column;flex:1;min-width:0;display:flex}.tag-main-info[data-v-366ce062]{flex-direction:column;gap:6px;display:flex}.tag-name-badge[data-v-366ce062]{align-items:center;gap:var(--spacing-base);flex-shrink:0;display:flex}.badge-icon[data-v-366ce062]{color:var(--action-green)}.tag-name-text[data-v-366ce062]{color:var(--color-text);font-family:Consolas,Monaco,Courier New,monospace;font-weight:600}.type-tag[data-v-366ce062]{margin-left:var(--spacing-sm)}.tag-meta[data-v-366ce062]{align-items:center;gap:var(--spacing-md);font-size:var(--font-size-sm);color:var(--text-secondary);display:flex}.tag-commit[data-v-366ce062]{align-items:center;gap:var(--spacing-sm);background:var(--bg-panel);padding:var(--spacing-xs) 6px;border-radius:var(--radius-base);font-family:monospace;display:flex}.tag-date[data-v-366ce062]{color:var(--text-tertiary)}.tag-message[data-v-366ce062]{font-size:var(--font-size-sm);color:var(--text-secondary);padding:6px var(--spacing-base);background:var(--bg-panel);border-radius:var(--radius-md);border-left:3px solid var(--action-green);line-height:1.4}.tag-card-actions[data-v-366ce062]{flex-shrink:0;align-items:center;gap:6px;display:none}.tag-card:hover .tag-card-actions[data-v-366ce062]{display:flex}.action-btn[data-v-366ce062]{border-radius:var(--radius-md);transition:var(--transition-ui-slow);min-width:60px;padding:6px var(--spacing-md);font-weight:500;font-size:var(--font-size-sm)}.action-btn[data-v-366ce062]:hover{transform:scale(1.02)}.action-btn[data-v-366ce062]:active{transform:scale(.98)}.action-btn[data-v-366ce062]:focus-visible{outline:2px solid var(--action-green);outline-offset:2px}.view-btn[data-v-366ce062]:hover,.push-btn[data-v-366ce062]:hover,.delete-btn[data-v-366ce062]:hover{box-shadow:var(--shadow-md)}.tag-detail-content[data-v-366ce062]{gap:var(--spacing-md);flex-direction:column;display:flex}.detail-row[data-v-366ce062]{align-items:center;gap:var(--spacing-md);background:var(--bg-panel);border-radius:var(--radius-lg);padding:10px;display:flex}.detail-row.detail-message[data-v-366ce062]{flex-direction:column;align-items:flex-start}.detail-label[data-v-366ce062]{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;min-width:80px;font-weight:600}.detail-value[data-v-366ce062]{color:var(--color-text)}.detail-value[data-v-366ce062]:is(code){background:var(--border-component);padding:var(--spacing-xs) var(--spacing-base);border-radius:var(--radius-base);border:1px solid var(--border-component);font-family:monospace}.message-content[data-v-366ce062]{width:100%;padding:var(--spacing-base);border-radius:var(--radius-md);border:1px solid var(--border-card);white-space:pre-wrap;word-break:break-word;background:#fff;line-height:1.6}.git-operations-button[data-v-feb8c688]{display:inline-block}.action-groups[data-v-feb8c688]{flex-direction:column;gap:16px;display:flex}.action-group[data-v-feb8c688]{background:var(--bg-container);border-radius:var(--radius-lg);border:1px solid var(--border-component);padding:16px}.group-title[data-v-feb8c688]{font-size:var(--font-size-base);color:var(--text-primary);margin-bottom:10px;padding-bottom:6px;font-weight:600}.group-buttons[data-v-feb8c688]{flex-direction:column;gap:10px;display:flex}.group-buttons[data-v-feb8c688] .el-button{justify-content:center;align-items:center;width:100%;height:40px;display:flex}.pull-error-content[data-v-feb8c688]{flex-direction:column;gap:16px;display:flex}.pull-error-type[data-v-feb8c688]{border-radius:var(--radius-lg);font-size:var(--font-size-mid);align-items:flex-start;gap:10px;padding:12px 14px;line-height:1.6;display:flex}.pull-error-type.is-warning[data-v-feb8c688]{color:var(--color-warning-dark);background:#faad141a;border:1px solid #faad1466}.pull-error-type.is-error[data-v-feb8c688]{color:var(--action-coral);background:#f56c6c14;border:1px solid #f56c6c59}.pull-error-icon[data-v-feb8c688]{font-size:var(--font-size-md);flex-shrink:0;margin-top:2px}.pull-error-detail[data-v-feb8c688]{flex-direction:column;gap:6px;display:flex}.pull-error-label[data-v-feb8c688]{font-size:var(--font-size-mid);color:var(--text-primary);font-weight:600}.pull-error-pre[data-v-feb8c688]{border-radius:var(--radius-lg);font-family:Consolas,Monaco,Courier New,monospace;font-size:var(--font-size-sm);color:var(--text-primary);white-space:pre-wrap;word-break:break-all;background:#0000000f;border:1px solid #0000001a;max-height:300px;margin:0;padding:12px 14px;line-height:1.6;overflow-y:auto}.global-loading-overlay[data-v-691919d3]{z-index:9999;background:#fff0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-container[data-v-691919d3]{justify-content:center;align-items:center;gap:var(--spacing-md);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);background:linear-gradient(135deg,#409effe6 0%,#67c23ae6 100%);flex-direction:column;width:240px;padding:28px 32px;display:flex;overflow:hidden;box-shadow:0 8px 32px #0000004d;height:auto!important}.loading-spinner[data-v-691919d3]{width:64px;height:64px;position:relative}.spinner-ring[data-v-691919d3]{border:4px solid #0000;border-radius:50%;width:100%;height:100%;position:absolute;top:0;left:0}.spinner-ring[data-v-691919d3]:first-child{border-top:4px solid #ffffffe6;animation:2s linear infinite spin-691919d3}.spinner-ring[data-v-691919d3]:nth-child(2){border-right:4px solid #fff9;width:90%;height:90%;animation:3s linear infinite reverse spin-691919d3;top:5%;left:5%}.spinner-ring[data-v-691919d3]:nth-child(3){border-bottom:4px solid #ffffff4d;width:80%;height:80%;animation:4s linear infinite spin-691919d3;top:10%;left:10%}.loading-text[data-v-691919d3]{font-size:var(--font-size-lg);text-shadow:0 2px 8px #0000004d;letter-spacing:1px;text-align:center;color:var(--color-white);font-weight:600;animation:2s ease-in-out infinite pulse-text-691919d3}.loading-progress[data-v-691919d3]{border-radius:var(--radius-xs);background:#fff3;width:200px;height:4px;overflow:hidden}.progress-bar[data-v-691919d3]{background:linear-gradient(90deg, var(--bg-container) 0%, #fffc 100%);border-radius:var(--radius-xs);height:100%;transition:width var(--transition-slow) ease;box-shadow:0 0 10px #ffffff80}.progress-bar.is-mock[data-v-691919d3]{width:0%;animation:2.4s ease-in-out infinite mock-progress-691919d3}@keyframes spin-691919d3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-text-691919d3{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes mock-progress-691919d3{0%{width:0%}50%{width:70%}to{width:100%}}.loading-fade-enter-active[data-v-691919d3],.loading-fade-leave-active[data-v-691919d3]{transition:var(--transition-ui-slow)}.loading-fade-enter-from[data-v-691919d3],.loading-fade-leave-to[data-v-691919d3]{opacity:0}.loading-fade-enter-to[data-v-691919d3],.loading-fade-leave-from[data-v-691919d3]{opacity:1}.loading-fade-enter-active .loading-container[data-v-691919d3],.loading-fade-leave-active .loading-container[data-v-691919d3]{transition:var(--transition-ui-slow)}.loading-fade-enter-from .loading-container[data-v-691919d3],.loading-fade-leave-to .loading-container[data-v-691919d3]{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur();transform:scale(.8)}.loading-fade-enter-to .loading-container[data-v-691919d3],.loading-fade-leave-from .loading-container[data-v-691919d3]{opacity:1;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);transform:scale(1)}[data-theme=dark] .global-loading-overlay[data-v-691919d3]{background:#00000073}[data-theme=dark] .loading-container[data-v-691919d3]{background:linear-gradient(135deg,#161616e6 0%,#1c1c1ce6 100%);border:1px solid #ffffff14;box-shadow:0 12px 36px #0009}[data-theme=dark] .loading-text[data-v-691919d3]{color:#ffffffeb;text-shadow:0 2px 10px #0009}[data-theme=dark] .loading-progress[data-v-691919d3]{background:#ffffff1f}[data-theme=dark] .progress-bar[data-v-691919d3]{box-shadow:0 0 10px var(--tint-primary-45);background:linear-gradient(90deg,#409effd9 0%,#67c23ad9 100%)}.success-overlay[data-v-c3fad05d]{background:var(--dialog-overlay);-webkit-backdrop-filter:blur(10px);padding:var(--spacing-2xl);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.success-container[data-v-c3fad05d]{background:var(--bg-container);border:1px solid var(--dialog-border-color);border-radius:var(--dialog-radius);width:min(92vw,420px);box-shadow:var(--dialog-shadow);text-align:center;flex-direction:column;align-items:center;gap:18px;padding:32px 30px 28px;display:flex}.success-icon[data-v-c3fad05d]{background:color-mix(in srgb, var(--color-success) 10%, var(--bg-container) 90%);width:76px;height:76px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-success) 18%, transparent 82%);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.success-svg[data-v-c3fad05d]{width:48px;height:48px}.success-circle[data-v-c3fad05d]{stroke:var(--color-success);stroke-width:2px;stroke-miterlimit:10;stroke-dasharray:166;stroke-dashoffset:166px;fill:none;animation:success-circle-animation-c3fad05d .58s var(--ease-enter) forwards}.success-check[data-v-c3fad05d]{stroke:var(--color-success);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:48px;animation:success-check-animation-c3fad05d .24s var(--ease-enter) .5s forwards}.success-text[data-v-c3fad05d]{max-width:18ch;font-size:clamp(20px,2vw,22px);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-heading);color:var(--text-title);margin:0;line-height:1.25}.success-description[data-v-c3fad05d]{max-width:28ch;font-size:var(--font-size-base);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin:0}@keyframes success-circle-animation-c3fad05d{to{stroke-dashoffset:0}}@keyframes success-check-animation-c3fad05d{to{stroke-dashoffset:0}}.success-fade-enter-active[data-v-c3fad05d],.success-fade-leave-active[data-v-c3fad05d]{transition:opacity var(--transition-base) cubic-bezier(.22, 1, .36, 1)}.success-fade-enter-from[data-v-c3fad05d],.success-fade-leave-to[data-v-c3fad05d]{opacity:0}.success-fade-enter-to[data-v-c3fad05d],.success-fade-leave-from[data-v-c3fad05d]{opacity:1}.success-fade-enter-active .success-container[data-v-c3fad05d],.success-fade-leave-active .success-container[data-v-c3fad05d]{transition:opacity var(--transition-base) cubic-bezier(.22, 1, .36, 1), transform var(--transition-base) cubic-bezier(.22, 1, .36, 1)}.success-fade-enter-from .success-container[data-v-c3fad05d],.success-fade-leave-to .success-container[data-v-c3fad05d]{opacity:0;transform:translateY(8px)scale(.985)}.success-fade-enter-to .success-container[data-v-c3fad05d],.success-fade-leave-from .success-container[data-v-c3fad05d]{opacity:1;transform:translateY(0)scale(1)}.one-commit-button[data-v-91c441c2]{height:100%;background:linear-gradient(135deg, var(--color-primary-dark) 0%, color-mix(in srgb, var(--color-primary-dark) 78%, #000) 100%)!important;color:#fff!important;border:none!important}.one-commit-button .one-commit-icon[data-v-91c441c2],.one-commit-button .one-commit-title[data-v-91c441c2],.one-commit-button .one-commit-desc[data-v-91c441c2]{color:#fff}.one-commit-button.form[data-v-91c441c2]{width:100%;padding:4px 12px}.one-commit-button.drawer[data-v-91c441c2]{width:auto;height:32px}.one-commit-button .one-commit-content[data-v-91c441c2]{align-items:center;gap:6px;display:flex}.one-commit-button .one-commit-content .one-commit-icon[data-v-91c441c2]{font-size:var(--font-size-base)}.one-commit-button .one-commit-content .one-commit-text[data-v-91c441c2]{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.one-commit-button .one-commit-content .one-commit-text .one-commit-title[data-v-91c441c2]{font-size:var(--font-size-mid)}.one-commit-button .one-commit-content .one-commit-text .one-commit-desc[data-v-91c441c2]{font-size:var(--font-size-xs);opacity:.9;letter-spacing:.1px;font-weight:400}.one-ai-push-button[data-v-bd6e70a9]{height:100%;color:#fff!important;background:linear-gradient(135deg,#7c3aed 0%,#6d28d9 100%)!important;border:none!important}.one-ai-push-button[data-v-bd6e70a9]:hover:not(.is-disabled){background:linear-gradient(135deg,#6d28d9 0%,#5b21b6 100%)!important}.one-ai-push-button .one-ai-push-icon[data-v-bd6e70a9],.one-ai-push-button .one-ai-push-title[data-v-bd6e70a9],.one-ai-push-button .one-ai-push-desc[data-v-bd6e70a9]{color:#fff}.one-ai-push-button.form[data-v-bd6e70a9]{width:100%;padding:4px 12px}.one-ai-push-button.drawer[data-v-bd6e70a9]{width:auto;height:32px}.one-ai-push-button .one-ai-push-icon[data-v-bd6e70a9]{font-size:var(--font-size-base)}.one-ai-push-button .one-ai-push-content[data-v-bd6e70a9]{align-items:center;gap:6px;display:flex}.one-ai-push-button .one-ai-push-content .one-ai-push-text[data-v-bd6e70a9]{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.one-ai-push-button .one-ai-push-content .one-ai-push-text .one-ai-push-title[data-v-bd6e70a9]{font-size:var(--font-size-mid)}.one-ai-push-button .one-ai-push-content .one-ai-push-text .one-ai-push-desc[data-v-bd6e70a9]{font-size:var(--font-size-xs);opacity:.9;letter-spacing:.1px;font-weight:400}[data-v-32a611a8] .el-button+.el-button{margin-left:0}[data-v-32a611a8] .el-button{border-radius:var(--radius-md);transition:var(--transition-ui-slow);font-weight:500;font-size:var(--font-size-sm);padding:6px 10px}[data-v-32a611a8] .el-button:hover{box-shadow:var(--shadow-md);transform:scale(1.02)}[data-v-32a611a8] .el-button:active{transform:scale(.98)}[data-v-32a611a8] .el-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}[data-v-32a611a8] .el-button.is-disabled{opacity:.4!important}[data-v-32a611a8] .el-button--primary{background:var(--color-primary);color:#fff;border:none}[data-v-32a611a8] .el-button--primary.is-disabled{background-color:var(--color-primary-light)!important;border-color:var(--color-primary-light)!important;opacity:.5!important}[data-v-32a611a8] .el-button--warning{background:var(--color-warning);color:#fff;border:none}[data-v-32a611a8] .el-button--warning.is-disabled{background-color:var(--color-warning)!important;border-color:var(--color-warning)!important;opacity:.5!important}[data-v-32a611a8] .left-actions .el-button{background:var(--bg-container);border:1px solid var(--border-color-medium);color:var(--text-secondary);box-shadow:none}[data-v-32a611a8] .left-actions .el-button:hover:not(.is-disabled){background:var(--soft-btn-bg-hover);border-color:var(--soft-btn-border-hover)}[data-v-32a611a8] .left-actions .el-button--primary.is-disabled{background-color:var(--bg-container)!important;border-color:var(--border-color-medium)!important;color:var(--text-disabled)!important;opacity:.6!important}.actions-flex-container[data-v-32a611a8]{justify-content:flex-start;align-items:center;gap:6px;display:flex}.left-actions[data-v-32a611a8]{align-self:center;display:flex}.button-grid[data-v-32a611a8]{gap:6px;display:flex}.right-actions[data-v-32a611a8]{align-items:stretch;gap:6px;height:36px;margin-left:auto;display:flex}.command-history-button[data-v-6ba10e2c]{width:36px;height:36px;padding:0}.history-scroll[data-v-6ba10e2c]{flex-grow:1;overflow-y:auto}.dialog-content .modern-btn[data-v-6ba10e2c]{color:#000c;background:#0000000d;border:1px solid #0000001a}.dialog-content .modern-btn[data-v-6ba10e2c]:hover{color:#000;background:#00000014;border-color:#00000026}.enhanced-btn[data-v-6ba10e2c]{min-width:60px;height:36px;padding:var(--spacing-base);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:var(--transition-ui-slow);gap:6px;font-weight:500;position:relative;overflow:hidden}.enhanced-btn .btn-text[data-v-6ba10e2c]{font-size:var(--font-size-sm);white-space:nowrap;z-index:1;font-weight:500;position:relative}.enhanced-btn .btn-icon[data-v-6ba10e2c]{font-size:var(--font-size-lg);z-index:1;position:relative}.danger-btn[data-v-6ba10e2c]{color:var(--color-danger);background:#f56c6c1a;border-color:#f56c6c33}.danger-btn[data-v-6ba10e2c]:before{background:linear-gradient(135deg,#f56c6c26 0%,#ff4d4f26 100%)}.danger-btn[data-v-6ba10e2c]:hover{color:var(--color-danger);box-shadow:var(--shadow-md);background:#f56c6c26;border-color:#f56c6c4d}.copy-commands-button[data-v-6ba10e2c],.copy-all-button[data-v-6ba10e2c],.clear-button[data-v-6ba10e2c]{min-width:70px;height:36px;font-weight:600}.dialog-toolbar .enhanced-btn[data-v-6ba10e2c]{color:#000000d9;box-shadow:var(--shadow-sm);background:#ffffffe6;border:1px solid #00000014}.dialog-toolbar .enhanced-btn[data-v-6ba10e2c]:hover{color:#000;box-shadow:var(--shadow-lg);background:#fff;border-color:#0000001f}[data-theme=dark] .dialog-toolbar .enhanced-btn[data-v-6ba10e2c]{background:var(--bg-container);color:var(--text-primary);border-color:var(--border-component);box-shadow:var(--shadow-md)}[data-theme=dark] .dialog-toolbar .enhanced-btn[data-v-6ba10e2c]:hover{background:var(--bg-container-hover);color:var(--color-white);border-color:var(--border-component-light);box-shadow:var(--shadow-lg)}.dialog-toolbar .danger-btn[data-v-6ba10e2c]{color:var(--color-danger);background:#f56c6c14;border-color:#f56c6c26}.dialog-toolbar .danger-btn[data-v-6ba10e2c]:hover{color:var(--color-danger);box-shadow:var(--shadow-md);background:#f56c6c1f;border-color:#f56c6c40}[data-theme=dark] .dialog-toolbar .danger-btn[data-v-6ba10e2c]{background:var(--action-coral);color:#fff;border-color:#e74c3c}[data-theme=dark] .dialog-toolbar .danger-btn[data-v-6ba10e2c]:hover{color:#fff;box-shadow:var(--shadow-lg);background:#e74c3c;border-color:#ff6b6b}.item-copy-button[data-v-6ba10e2c],.output-copy-button[data-v-6ba10e2c]{width:32px;height:32px;padding:0!important}.item-copy-button .btn-icon[data-v-6ba10e2c],.output-copy-button .btn-icon[data-v-6ba10e2c]{font-size:var(--font-size-md)}.item-copy-button .btn-text[data-v-6ba10e2c],.output-copy-button .btn-text[data-v-6ba10e2c]{display:none}.item-copy-button[data-v-6ba10e2c]:hover,.output-copy-button[data-v-6ba10e2c]:hover{box-shadow:var(--shadow-md);transform:scale(1.02)}.item-copy-button[data-v-6ba10e2c]:active,.output-copy-button[data-v-6ba10e2c]:active{box-shadow:var(--shadow-md);transform:scale(.98)}.item-copy-button[data-v-6ba10e2c]:focus-visible,.output-copy-button[data-v-6ba10e2c]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.expand-button[data-v-6ba10e2c]{width:32px;height:32px;color:var(--text-secondary);transition:transform var(--transition-slow) ease;justify-content:center;align-items:center;display:flex}.expand-button .btn-icon[data-v-6ba10e2c]{font-size:var(--font-size-md);transition:transform var(--transition-slow) ease}.enhanced-btn[data-v-6ba10e2c]:active{box-shadow:var(--shadow-md);transform:scale(.98)}.enhanced-btn[data-v-6ba10e2c]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.enhanced-btn[data-v-6ba10e2c]:disabled{opacity:.6;cursor:not-allowed;transform:none}.enhanced-btn[data-v-6ba10e2c]:disabled:hover{box-shadow:none;transform:none}.expand-button.is-expanded .btn-icon[data-v-6ba10e2c]{transform:rotate(180deg)}.command-history-dialog[data-v-6ba10e2c]{border-radius:var(--radius-lg);z-index:9999!important}[data-v-6ba10e2c] .command-history-dialog .el-overlay{z-index:9998!important}[data-v-6ba10e2c] .command-history-dialog .el-dialog{z-index:9999!important}.dialog-toolbar[data-v-6ba10e2c]{padding:var(--spacing-lg) var(--spacing-xl);justify-content:space-between;align-items:center;gap:var(--spacing-md);background:linear-gradient(135deg, var(--color-gray-soft) 0%, var(--border-component) 100%);border-radius:8px 8px 0 0;flex-wrap:wrap;display:flex}.filter-controls[data-v-6ba10e2c]{align-items:center;gap:var(--spacing-sm);flex:1;min-width:300px;display:flex}.filter-select[data-v-6ba10e2c]{width:120px}.search-input[data-v-6ba10e2c]{width:200px}.toolbar-actions[data-v-6ba10e2c]{align-items:center;gap:var(--spacing-sm);display:flex}[data-theme=dark] .dialog-toolbar[data-v-6ba10e2c]{background:linear-gradient(135deg,#ffffff0d 0%,#ffffff05 100%);border-bottom-color:#ffffff1a}[data-theme=dark] .filter-controls .el-input__wrapper[data-v-6ba10e2c],[data-theme=dark] .filter-controls .el-select .el-input__wrapper[data-v-6ba10e2c]{background-color:#0000004d;border-color:#ffffff1a}[data-theme=dark] .filter-controls .el-input__inner[data-v-6ba10e2c]{color:#ffffffe6}[data-theme=dark] .filter-controls .el-input__inner[data-v-6ba10e2c]::placeholder{color:#ffffff80}.socket-status[data-v-6ba10e2c]{font-size:var(--font-size-sm);margin-right:auto;font-weight:500}.loading-state[data-v-6ba10e2c]{flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:100px;display:flex}.loading-icon[data-v-6ba10e2c]{color:var(--color-primary);margin-bottom:10px;font-size:36px}.loading-text[data-v-6ba10e2c]{color:var(--text-secondary)}.history-list[data-v-6ba10e2c]{gap:var(--spacing-base);flex-direction:column;flex:1;display:flex;overflow-y:auto}.history-item[data-v-6ba10e2c]{border:1px solid var(--border-card);border-radius:var(--radius-base);transition:var(--transition-ui-base);overflow:hidden}[data-theme=dark] .history-item[data-v-6ba10e2c]{background-color:#ffffff08;border-color:#ffffff1a}[data-theme=dark] .history-item[data-v-6ba10e2c]:hover{background-color:#ffffff14;border-color:#fff3}.history-item[data-v-6ba10e2c]:hover{box-shadow:0 2px 12px #0000001a}.history-item.is-error[data-v-6ba10e2c]{border-left:3px solid var(--color-danger)}.item-header[data-v-6ba10e2c]{padding:10px var(--spacing-md);cursor:pointer;transition:background-color var(--transition-base);justify-content:space-between;align-items:center;display:flex}.item-header[data-v-6ba10e2c]:hover{background-color:var(--bg-icon-hover)}.command-info[data-v-6ba10e2c]{flex:1;min-width:0;overflow:hidden}.command-text[data-v-6ba10e2c]{align-items:center;gap:var(--spacing-base);margin-bottom:var(--spacing-sm);display:flex}.command-text code[data-v-6ba10e2c]{font-family:Consolas,Courier New,monospace;font-size:var(--font-size-sm);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}[data-theme=dark] .command-text code[data-v-6ba10e2c]{color:#ffffffe6}.command-meta[data-v-6ba10e2c]{align-items:center;gap:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--text-tertiary);display:flex}[data-theme=dark] .command-meta[data-v-6ba10e2c]{color:#fff9}.timestamp[data-v-6ba10e2c],.duration[data-v-6ba10e2c]{white-space:nowrap}.item-actions[data-v-6ba10e2c]{margin-left:var(--spacing-base);align-items:center;gap:6px;display:flex}.item-details[data-v-6ba10e2c]{padding:10px var(--spacing-md);border-top:1px solid var(--border-card);gap:var(--spacing-md);flex-direction:column;display:flex}[data-theme=dark] .item-details[data-v-6ba10e2c]{background-color:#ffffff05;border-top-color:#ffffff1a}.output-section[data-v-6ba10e2c]{flex-direction:column;gap:6px;display:flex}.output-section.error[data-v-6ba10e2c]{border-left:3px solid var(--color-danger);padding-left:var(--spacing-base)}.output-section[data-v-6ba10e2c]:not(.error){border-left:3px solid var(--color-success);padding-left:var(--spacing-base)}.output-header[data-v-6ba10e2c]{justify-content:space-between;align-items:center;display:flex}.output-header h4[data-v-6ba10e2c]{color:var(--text-secondary);margin:0;font-weight:500}[data-theme=dark] .output-header h4[data-v-6ba10e2c]{color:#fffc}.output-content[data-v-6ba10e2c]{border-radius:var(--radius-base);font-family:Consolas,Courier New,monospace;font-size:var(--font-size-sm);white-space:pre-wrap;word-break:break-all;border:1px solid var(--border-card);max-height:300px;margin:0;padding:10px;overflow-y:auto}[data-theme=dark] .output-content[data-v-6ba10e2c]{color:#ffffffe6;background-color:#0000004d;border-color:#ffffff1a}.status-tag[data-v-6ba10e2c]{flex-shrink:0}.truncation-notice[data-v-6ba10e2c]{margin-top:6px}.output-content[data-v-6ba10e2c]::-webkit-scrollbar{width:6px;height:6px}.output-content[data-v-6ba10e2c]::-webkit-scrollbar-thumb{background-color:var(--text-placeholder);border-radius:var(--radius-base)}.output-content[data-v-6ba10e2c]::-webkit-scrollbar-track{background-color:var(--bg-panel)}.command-history-dialog{z-index:1999!important}.el-overlay{z-index:1998!important}.header-left[data-v-90aed4da]{align-items:center;gap:var(--spacing-md);display:flex}.header-left h2[data-v-90aed4da]{margin:0}.header-right[data-v-90aed4da]{align-items:center;gap:var(--spacing-sm);display:flex}.card-content[data-v-90aed4da]{padding:var(--spacing-base);flex:1;overflow-y:auto}.layout-container[data-v-90aed4da]{gap:var(--spacing-base);flex-direction:column;height:100%;display:flex}.standard-commit-form[data-v-90aed4da]{gap:var(--spacing-base);margin-bottom:var(--spacing-base);flex-direction:column;display:flex}.standard-commit-header[data-v-90aed4da]{gap:var(--spacing-sm);flex-direction:column;width:100%;display:flex}.type-scope-container[data-v-90aed4da]{gap:var(--spacing-base);align-items:stretch;width:100%;display:flex}.type-select[data-v-90aed4da]{width:180px}.scope-wrapper[data-v-90aed4da]{align-items:center;gap:5px;width:130px;display:flex}.commit-form[data-v-90aed4da]{gap:var(--spacing-base);flex-direction:column;display:flex}.description-container[data-v-90aed4da]{border-radius:var(--radius-xl);width:100%;box-shadow:none;transition:var(--transition-ui-slow);background:0 0;align-items:center;gap:5px;display:flex}.description-container.description-inline[data-v-90aed4da]{min-width:0;box-shadow:none;background:0 0;flex:1}.description-container.description-inline[data-v-90aed4da]:hover,.description-container[data-v-90aed4da]:hover{box-shadow:none}[data-v-90aed4da] .description-input{flex-grow:1}[data-v-90aed4da] .description-input .el-input__wrapper{border-radius:var(--radius-lg);background:var(--input-bg);border:1px solid var(--input-border);box-shadow:none;transition:var(--transition-ui-fast);height:40px}[data-v-90aed4da] .description-input .el-input__wrapper:hover{border-color:var(--input-border-hover)}[data-v-90aed4da] .description-input .el-input__wrapper.is-focus{border-color:var(--input-border-focus);box-shadow:var(--focus-ring)}[data-v-90aed4da] .description-input .el-input__inner{height:34px;font-weight:500}[data-v-90aed4da] .description-input .el-input__inner::placeholder{color:var(--text-placeholder);font-weight:400}[data-v-90aed4da] .type-select .el-select__wrapper{border-radius:var(--radius-lg);background:var(--input-bg);border:1px solid var(--input-border);box-shadow:none;transition:var(--transition-ui-fast);height:40px}[data-v-90aed4da] .type-select .el-select__wrapper:hover{border-color:var(--input-border-hover)}[data-v-90aed4da] .type-select .el-select__wrapper.is-focus{border-color:var(--input-border-focus);box-shadow:var(--focus-ring)}[data-v-90aed4da] .type-select .el-select__inner{font-weight:500}[data-v-90aed4da] .type-select .el-select__inner::placeholder{color:var(--text-placeholder);font-weight:400}[data-v-90aed4da] .scope-input{flex-grow:1}[data-v-90aed4da] .scope-input .el-input__wrapper{border-radius:var(--radius-lg);background:var(--input-bg);border:1px solid var(--input-border);box-shadow:none;transition:var(--transition-ui-fast);height:40px}[data-v-90aed4da] .scope-input .el-input__wrapper:hover{border-color:var(--input-border-hover)}[data-v-90aed4da] .scope-input .el-input__wrapper.is-focus{border-color:var(--input-border-focus);box-shadow:var(--focus-ring)}[data-v-90aed4da] .scope-input .el-input__inner{font-weight:500}[data-v-90aed4da] .scope-input .el-input__inner::placeholder{color:var(--text-placeholder);font-weight:400}[data-v-90aed4da] .commit-message-input{border-radius:var(--radius-xl)}[data-v-90aed4da] .commit-message-input .el-textarea__inner{border-radius:var(--radius-lg);background:var(--input-bg);border:1px solid var(--input-border);box-shadow:none;transition:var(--transition-ui-fast);font-weight:500}[data-v-90aed4da] .commit-message-input .el-textarea__inner:hover{border-color:var(--input-border-hover)}[data-v-90aed4da] .commit-message-input .el-textarea__inner:focus-visible{border-color:var(--input-border-focus);box-shadow:var(--focus-ring);outline:none}[data-v-90aed4da] .commit-message-input .el-textarea__inner::placeholder{color:var(--text-placeholder);font-weight:400}[data-v-90aed4da] .commit-message-input:hover{box-shadow:none}.git-config-warning[data-v-90aed4da]{width:100%}.merge-in-progress-banner[data-v-90aed4da]{width:100%;margin-bottom:var(--spacing-base)}.config-command[data-v-90aed4da]{background-color:var(--bg-code-dark);color:#f8f8f2;font-family:var(--font-mono);padding:var(--spacing-base);border-radius:var(--radius-base);margin-top:var(--spacing-base);white-space:pre}.advanced-options-toggle[data-v-90aed4da]{font:inherit;color:inherit;text-align:left;background:0 0;background-color:var(--bg-panel);border-radius:var(--radius-base);cursor:pointer;width:100%;transition:var(--transition-ui-slow);-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;padding:7px 0 6px;display:flex}.advanced-options-toggle[data-v-90aed4da]:hover{background-color:var(--border-card);color:var(--color-primary)}.toggle-icon[data-v-90aed4da]{margin-left:var(--spacing-base);transition:transform var(--transition-slow) ease;font-size:var(--font-size-sm)}.toggle-icon.is-active[data-v-90aed4da]{transform:rotate(180deg)}.advanced-fields[data-v-90aed4da]{gap:var(--spacing-base);animation:fade-in-90aed4da var(--transition-slow) ease-in-out;flex-direction:column;display:flex}@keyframes fade-in-90aed4da{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.commit-section[data-v-90aed4da]{flex:1;width:100%;min-width:0}.is-loading[data-v-90aed4da]{animation:2s linear infinite rotating-90aed4da}@keyframes rotating-90aed4da{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.save-btn[data-v-90aed4da]{border-radius:var(--radius-md);min-width:100px;transition:var(--transition-ui-slow);font-weight:500}.save-btn[data-v-90aed4da]:hover{box-shadow:var(--shadow-md);transform:scale(1.02)}.save-btn[data-v-90aed4da]:active{transform:scale(.98)}.save-btn[data-v-90aed4da]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
|