zen-gitsync 2.16.6 → 2.16.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/package.json +1 -1
  2. package/src/ui/public/assets/AgentView-8-xsOmE6.css +1 -0
  3. package/src/ui/public/assets/AgentView-DEUMkOst.js +4 -0
  4. package/src/ui/public/assets/AppVersionBadge-CS7Trvp-.css +1 -0
  5. package/src/ui/public/assets/AppVersionBadge-oo55wrtg.js +2 -0
  6. package/src/ui/public/assets/BranchSelector--__REaeG.js +1 -0
  7. package/src/ui/public/assets/BranchSelector-B0eLkAdv.css +1 -0
  8. package/src/ui/public/assets/CommitForm-CpUP5zax.js +6 -0
  9. package/src/ui/public/assets/CommitForm-DdK8dymc.css +1 -0
  10. package/src/ui/public/assets/CommonDialog-ChSKsEz2.css +1 -0
  11. package/src/ui/public/assets/CommonDialog-DbPF7rKY.js +1 -0
  12. package/src/ui/public/assets/EditorView-BVod-rjn.css +1 -0
  13. package/src/ui/public/assets/EditorView-LZ_WHmfb.js +0 -0
  14. package/src/ui/public/assets/FlowExecutionViewer-DjtFCci0.js +1 -0
  15. package/src/ui/public/assets/FlowExecutionViewer-jNHI5zdm.css +1 -0
  16. package/src/ui/public/assets/FlowOrchestrationWorkspace-CKMLLhKM.js +21 -0
  17. package/src/ui/public/assets/FlowOrchestrationWorkspace-CYGp-PqS.css +1 -0
  18. package/src/ui/public/assets/LogList--c3ACWbL.js +15 -0
  19. package/src/ui/public/assets/LogList-CeFFytjB.css +1 -0
  20. package/src/ui/public/assets/MindmapView-BQTqx842.css +1 -0
  21. package/src/ui/public/assets/MindmapView-B_VWP6CS.js +2 -0
  22. package/src/ui/public/assets/MonitorView-C9BEPazj.js +1 -0
  23. package/src/ui/public/assets/MonitorView-TaS4kL0Y.css +1 -0
  24. package/src/ui/public/assets/ProjectStartupButton-QLPltCK5.css +1 -0
  25. package/src/ui/public/assets/ProjectStartupButton-qLmpoh5m.js +1 -0
  26. package/src/ui/public/assets/RemoteRepoCard-BRGNlbeO.css +1 -0
  27. package/src/ui/public/assets/RemoteRepoCard-Yxfc0pxB.js +5 -0
  28. package/src/ui/public/assets/SourceMapView-BNRjvgzH.css +1 -0
  29. package/src/ui/public/assets/SourceMapView-BXqR3S2Y.js +3 -0
  30. package/src/ui/public/assets/SvgIcon-32uxY152.js +1 -0
  31. package/src/ui/public/assets/{SvgIcon-BQ6bR7l0.css → SvgIcon-CDNsk4-Q.css} +1 -1
  32. package/src/ui/public/assets/UserInputNode-B0xDrmk2.js +1 -0
  33. package/src/ui/public/assets/UserInputNode-BVgQkB2l.css +1 -0
  34. package/src/ui/public/assets/WorkbenchView-COtdz_io.js +28 -0
  35. package/src/ui/public/assets/{WorkbenchView-CQfjF0Gr.css → WorkbenchView-DbF4hH5s.css} +1 -1
  36. package/src/ui/public/assets/_plugin-vue_export-helper-Dvk21zJS.js +15 -0
  37. package/src/ui/public/assets/{ai-chat-ui-BqgKQovY.js → ai-chat-ui-BsH9JBEz.js} +1 -1
  38. package/src/ui/public/assets/{configStore-CmG77GNj.js → configStore-Bmoxm5fk.js} +1 -1
  39. package/src/ui/public/assets/element-plus-C_2iiXUS.js +32 -0
  40. package/src/ui/public/assets/{flow-mindmap-D26cYDAD.js → flow-mindmap-E8TqjpXN.js} +1 -1
  41. package/src/ui/public/assets/index--onqtBRQ.css +1 -0
  42. package/src/ui/public/assets/index-Zn4T8oXe.js +68 -0
  43. package/src/ui/public/assets/socket-io-Bcae2P7B.js +1 -0
  44. package/src/ui/public/assets/{vendor-lXqgobGS.js → vendor-D79HTB0H.js} +44 -37
  45. package/src/ui/public/assets/vue-flow-BYcesAAH.js +39 -0
  46. package/src/ui/public/index.html +12 -12
  47. package/src/ui/public/assets/AgentView-D3ltcW16.js +0 -4
  48. package/src/ui/public/assets/AgentView-DJBC9U8b.css +0 -1
  49. package/src/ui/public/assets/AppVersionBadge-DEzojWz9.js +0 -2
  50. package/src/ui/public/assets/AppVersionBadge-Dj6H729N.css +0 -1
  51. package/src/ui/public/assets/BranchSelector-T_rJm-JY.css +0 -1
  52. package/src/ui/public/assets/BranchSelector-YgVQRusR.js +0 -1
  53. package/src/ui/public/assets/CommitForm-B9xoh9cE.js +0 -6
  54. package/src/ui/public/assets/CommitForm-CUvl0VcF.css +0 -1
  55. package/src/ui/public/assets/CommonDialog-Cyh3xu0p.css +0 -1
  56. package/src/ui/public/assets/CommonDialog-DB4V4CKn.js +0 -1
  57. package/src/ui/public/assets/EditorView-CRYGVw_r.css +0 -1
  58. package/src/ui/public/assets/EditorView-CsjhdSd_.js +0 -0
  59. package/src/ui/public/assets/FlowExecutionViewer-B5kh7VxS.css +0 -1
  60. package/src/ui/public/assets/FlowExecutionViewer-Blax8J71.js +0 -1
  61. package/src/ui/public/assets/FlowOrchestrationWorkspace-BAQDU9Jd.css +0 -1
  62. package/src/ui/public/assets/FlowOrchestrationWorkspace-Dm85yYLO.js +0 -21
  63. package/src/ui/public/assets/LogList-DJYpDUTZ.css +0 -1
  64. package/src/ui/public/assets/LogList-WxAgsMg0.js +0 -7
  65. package/src/ui/public/assets/MindmapView-CS2t30Ko.css +0 -1
  66. package/src/ui/public/assets/MindmapView-_FKSYPEk.js +0 -1
  67. package/src/ui/public/assets/MonitorView-CynFYBMr.js +0 -1
  68. package/src/ui/public/assets/MonitorView-DxFogQIt.css +0 -1
  69. package/src/ui/public/assets/ProjectStartupButton-B5vk2Lu0.js +0 -1
  70. package/src/ui/public/assets/ProjectStartupButton-B7zvqRj_.css +0 -1
  71. package/src/ui/public/assets/RemoteRepoCard-B_iW7EZK.js +0 -1
  72. package/src/ui/public/assets/RemoteRepoCard-d0klonVb.css +0 -1
  73. package/src/ui/public/assets/SourceMapView-0fHVZr1r.js +0 -3
  74. package/src/ui/public/assets/SourceMapView-DG_a_076.css +0 -1
  75. package/src/ui/public/assets/SvgIcon-Ch_wHlf9.js +0 -1
  76. package/src/ui/public/assets/UserInputNode-DDtvv9Iq.css +0 -1
  77. package/src/ui/public/assets/UserInputNode-LbWvYQcA.js +0 -1
  78. package/src/ui/public/assets/WorkbenchView-CYucXDsF.js +0 -12
  79. package/src/ui/public/assets/_plugin-vue_export-helper-7QfI9jF6.js +0 -15
  80. package/src/ui/public/assets/element-plus-DjpeTxOl.js +0 -24
  81. package/src/ui/public/assets/index-CmQSuclp.js +0 -38
  82. package/src/ui/public/assets/index-hGb6cPd0.css +0 -1
  83. package/src/ui/public/assets/socket-io-z4n873W1.js +0 -1
  84. package/src/ui/public/assets/vue-flow-CIbkTMWF.js +0 -39
@@ -1,4 +1,4 @@
1
- import{Cn as e,Fn as t,Jn as n,Ln as r,Mn as i,Sn as a,Tn as o,Vn as s,Xn as c,Zn as l,_n as u,_r as d,ar as f,gn as p,hn as m,ln as h,mn as g,mr as _,on as v,sn as y,sr as b,tn as x,un as S,vn as C,xn as w,zn as T}from"./element-plus-DjpeTxOl.js";import{n as E,r as D}from"./vendor-lXqgobGS.js";function O(e){if(!e||e<0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1),r=e/1024**n,i=+(r<10&&n>0);return`${r.toFixed(i)} ${t[n]}`}function k(e){return/^image\//i.test(e)}function A(e=`acu`){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var j=[`javascript`,`typescript`,`python`,`bash`,`shell`,`json`,`html`,`css`,`vue`,`markdown`,`sql`,`go`,`rust`,`java`,`cpp`,`c`,`yaml`,`jsx`,`tsx`,`xml`],M=null,N=null,P=b(!1);function F(){return M?Promise.resolve(M):(N||=E({themes:[`github-light`,`github-dark`],langs:j}).then(e=>(M=e,P.value=!0,e)).catch(e=>(console.warn(`[ai-chat-ui] Shiki 加载失败,代码块将降级为纯文本:`,e),null)),N)}F();var I=new D({html:!1,linkify:!0,breaks:!0,typographer:!0,highlight(e,t){if(M&&t)try{return M.codeToHtml(e,{lang:t,themes:{light:`github-light`,dark:`github-dark`},defaultColor:!1})}catch{}return``}}),ee=I.renderer.rules.link_open||((e,t,n,r,i)=>i.renderToken(e,t,n));I.renderer.rules.link_open=(e,t,n,r,i)=>{let a=e[t],o=a.attrGet(`href`)||``;return/^https?:\/\//i.test(o)&&(a.attrSet(`target`,`_blank`),a.attrSet(`rel`,`noopener noreferrer`)),ee(e,t,n,r,i)},I.renderer.rules.image=(e,t,n,r,i)=>{let a=e[t];return a.attrSet(`loading`,`lazy`),a.attrSet(`class`,`acu-md-img`),i.renderToken(e,t,n)},I.renderer.rules.fence=(e,t)=>{let n=e[t],r=n.info.trim(),i=r?r.split(/\s+/)[0]:``,a=n.content,o=i||`text`,s=encodeURIComponent(a),c=``;if(M&&i)try{c=M.codeToHtml(a,{lang:i,themes:{light:`github-light`,dark:`github-dark`},defaultColor:!1})}catch{c=``}return c||=`<pre class="shiki acu-code-fallback"><code>${I.utils.escapeHtml(a)}</code></pre>`,`<div class="acu-code-block"><div class="acu-code-header"><span class="acu-code-lang">${I.utils.escapeHtml(o)}</span><button type="button" class="acu-code-copy" data-code="${s}" aria-label="复制代码"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg><span class="acu-code-copy-label">复制</span></button></div>${c}</div>`};var L=/<think>/g,R=[`</think>`,`</think>`];function z(e){if(!e)return{reasoning:``,content:``};let t=[],n=0;for(;n<e.length;){L.lastIndex=n;let r=L.exec(e);if(!r)break;let i=r.index+r[0].length,a=e.slice(i),o=-1,s=0;for(let e of R){let t=a.indexOf(e);t!==-1&&(o===-1||t<o)&&(o=t,s=e.length)}if(o===-1)break;let c=a.slice(0,o).trim();c&&t.push(c),n=i+o+s}return t.length===0?{reasoning:``,content:e}:{reasoning:t.join(`
1
+ import{Cn as e,Fn as t,Jn as n,Ln as r,Mn as i,Sn as a,Tn as o,Vn as s,Xn as c,Zn as l,_n as u,_r as d,ar as f,gn as p,hn as m,ln as h,mn as g,mr as _,on as v,sn as y,sr as b,tn as x,un as S,vn as C,xn as w,zn as T}from"./element-plus-C_2iiXUS.js";import{n as E,r as D}from"./vendor-D79HTB0H.js";function O(e){if(!e||e<0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1),r=e/1024**n,i=+(r<10&&n>0);return`${r.toFixed(i)} ${t[n]}`}function k(e){return/^image\//i.test(e)}function A(e=`acu`){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var j=[`javascript`,`typescript`,`python`,`bash`,`shell`,`json`,`html`,`css`,`vue`,`markdown`,`sql`,`go`,`rust`,`java`,`cpp`,`c`,`yaml`,`jsx`,`tsx`,`xml`],M=null,N=null,P=b(!1);function F(){return M?Promise.resolve(M):(N||=E({themes:[`github-light`,`github-dark`],langs:j}).then(e=>(M=e,P.value=!0,e)).catch(e=>(console.warn(`[ai-chat-ui] Shiki 加载失败,代码块将降级为纯文本:`,e),null)),N)}F();var I=new D({html:!1,linkify:!0,breaks:!0,typographer:!0,highlight(e,t){if(M&&t)try{return M.codeToHtml(e,{lang:t,themes:{light:`github-light`,dark:`github-dark`},defaultColor:!1})}catch{}return``}}),ee=I.renderer.rules.link_open||((e,t,n,r,i)=>i.renderToken(e,t,n));I.renderer.rules.link_open=(e,t,n,r,i)=>{let a=e[t],o=a.attrGet(`href`)||``;return/^https?:\/\//i.test(o)&&(a.attrSet(`target`,`_blank`),a.attrSet(`rel`,`noopener noreferrer`)),ee(e,t,n,r,i)},I.renderer.rules.image=(e,t,n,r,i)=>{let a=e[t];return a.attrSet(`loading`,`lazy`),a.attrSet(`class`,`acu-md-img`),i.renderToken(e,t,n)},I.renderer.rules.fence=(e,t)=>{let n=e[t],r=n.info.trim(),i=r?r.split(/\s+/)[0]:``,a=n.content,o=i||`text`,s=encodeURIComponent(a),c=``;if(M&&i)try{c=M.codeToHtml(a,{lang:i,themes:{light:`github-light`,dark:`github-dark`},defaultColor:!1})}catch{c=``}return c||=`<pre class="shiki acu-code-fallback"><code>${I.utils.escapeHtml(a)}</code></pre>`,`<div class="acu-code-block"><div class="acu-code-header"><span class="acu-code-lang">${I.utils.escapeHtml(o)}</span><button type="button" class="acu-code-copy" data-code="${s}" aria-label="复制代码"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg><span class="acu-code-copy-label">复制</span></button></div>${c}</div>`};var L=/<think>/g,R=[`</think>`,`</think>`];function z(e){if(!e)return{reasoning:``,content:``};let t=[],n=0;for(;n<e.length;){L.lastIndex=n;let r=L.exec(e);if(!r)break;let i=r.index+r[0].length,a=e.slice(i),o=-1,s=0;for(let e of R){let t=a.indexOf(e);t!==-1&&(o===-1||t<o)&&(o=t,s=e.length)}if(o===-1)break;let c=a.slice(0,o).trim();c&&t.push(c),n=i+o+s}return t.length===0?{reasoning:``,content:e}:{reasoning:t.join(`
2
2
 
3
3
  `),content:e.replace(/<think>[\s\S]*?<\/think>/g,``).trim()}}I.block.ruler.before(`paragraph`,`think_block`,(e,t,n,r)=>{let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t],o=e.src.slice(i,a);L.lastIndex=i;let s=L.exec(o);if(!s)return!1;let c=s.index;if(r)return!0;let l=-1,u=``,d=-1;for(let r=t;r<n;r++){let n=e.bMarks[r]+e.tShift[r],a=e.eMarks[r],o=e.src.slice(n,a),s=r===t?i+c+7:0;for(let e of R){let t=o.indexOf(e,s);t!==-1&&(d===-1||t<d)&&(d=t,u=e,l=r)}if(l!==-1)break}if(l<0)return!1;let f=[];for(let n=t;n<=l;n++){let r=e.bMarks[n]+e.tShift[n],i=e.eMarks[n],a=e.src.slice(r,i);n===t&&(a=a.slice(c+7)),n===l&&(a=a.slice(0,a.indexOf(u))),f.push(a)}let p=f.join(`
4
4
  `).trim(),m=e.push(`think_block`,``,0);return m.content=p,m.map=[t,l+1],m.markup=`<think>`,m.block=!0,e.line=l+1,!0});var B=I.renderer.rules.think_block||((e,t)=>{let n=e[t];return`<div class="acu-thinking acu-thinking-md"><button type="button" class="acu-thinking-header"><span class="acu-thinking-icon"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9.5 2A4.5 4.5 0 0 0 5 6.5c0 .5.08.98.22 1.43A4 4 0 0 0 6 16a3.5 3.5 0 0 0 5 3.05"/><path d="M14.5 2A4.5 4.5 0 0 1 19 6.5c0 .5-.08.98-.22 1.43A4 4 0 0 1 18 16a3.5 3.5 0 0 1-5 3.05"/><path d="M12 4v16"/></svg></span><span class="acu-thinking-title">已深度思考</span></button><div class="acu-thinking-body">${n.content.trim()?I.render(n.content):``}</div></div>`});I.renderer.rules.think_block=B;function te(){return{render(e){return I.render(e||``)},renderInline(e){return I.renderInline(e||``)},ensureHighlighter:F}}var ne=o({__name:`MarkdownRenderer`,props:{source:{type:String,required:!0}},setup(e,{expose:r}){r();let i=e,{render:a}=te(),o=b(``),s=b(null),c=0;function l(){cancelAnimationFrame(c),c=requestAnimationFrame(()=>{o.value=a(i.source)})}n(()=>i.source,l,{immediate:!0}),n(P,e=>{e&&l()}),t(()=>cancelAnimationFrame(c));function u(e){let t=e.target.closest(`.acu-code-copy`);if(!t)return;let n=t.getAttribute(`data-code`)||``,r=decodeURIComponent(n),i=t.querySelector(`.acu-code-copy-label`);(navigator.clipboard?.writeText(r)??Promise.reject(Error(`clipboard unavailable`))).then(()=>{t.classList.add(`is-copied`),i&&(i.textContent=`已复制`),setTimeout(()=>{t.classList.remove(`is-copied`),i&&(i.textContent=`复制`)},1500)}).catch(()=>{t.classList.add(`is-error`),i&&(i.textContent=`失败`),setTimeout(()=>{t.classList.remove(`is-error`),i&&(i.textContent=`复制`)},1500)})}let d={props:i,render:a,html:o,root:s,get rafId(){return c},set rafId(e){c=e},scheduleRender:l,onCodeCopyClick:u};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),V=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},re=[`innerHTML`];function H(e,t,n,r,i,a){return T(),C(S,null,[u(`
@@ -1 +1 @@
1
- import"./rolldown-runtime-CMxvf4Kt.js";import{Jn as e,a as t,mn as n,n as r,sr as i,t as a}from"./element-plus-DjpeTxOl.js";import{u as o}from"./vendor-lXqgobGS.js";import{a as s,n as c,r as l}from"./_plugin-vue_export-helper-7QfI9jF6.js";var u={"zh-CN":r,"en-US":a};function d(e){return u[e]||r}var f=o(`locale`,()=>{let e=i(l()),t=n(()=>d(e.value));async function r(t){s(t),e.value=t;let n=p();n.locale!==t&&await n.saveGeneralSettings({locale:t})}return{currentLocale:e,elementPlusLocale:t,changeLocale:r}}),p=o(`config`,()=>{let r=i(``),a=i([]),o=i([]),l=i([]),u=i([]),d=i([]),p=i([]),m=i([]),h=i([]),g=i(!1),_=i({enabled:!1,type:`command`,refId:``}),v=i(!1),y=i(!1),b=i(``),x=i(``),S=i(``),C=i(!0),w=i(!1),T=i(!0),E=i(!1),D=i(!1),O=i(!0),k=i(`light`),A=i(`zh-CN`),j=i([]),M={layout:{leftRatio:.25,midRatio:.375,rightRatio:.375,topRatio:.5},layoutsByProject:{},fileListViewMode:`list`,fileDiffSplitPercent:35,commandConsole:{expanded:!0,useTerminal:!0,showTerminalSessions:!0,splitPercent:25},editorAutoSave:!1,mindmapDir:``},N=i(JSON.parse(JSON.stringify(M))),P=i(!1);function F(e){S.value=e||``}function I(){let e=S.value;if(e&&N.value.layoutsByProject?.[e]){N.value.layout={...N.value.layoutsByProject[e]};return}}function L(e){let t=document.documentElement;e===`dark`?t.setAttribute(`data-theme`,`dark`):e===`light`?t.removeAttribute(`data-theme`):window.matchMedia(`(prefers-color-scheme: dark)`).matches?t.setAttribute(`data-theme`,`dark`):t.removeAttribute(`data-theme`)}function R(){let e=document.documentElement.getAttribute(`data-theme`)===`dark`?`light`:`dark`;return k.value=e,L(e),$({theme:e}).catch(e=>{console.error(`保存主题切换结果失败:`,e)}),e}L(k.value);let z=n(()=>({defaultCommitMessage:r.value,descriptionTemplates:a.value,scopeTemplates:o.value,messageTemplates:l.value,commandTemplates:u.value,lockedFiles:d.value,customCommands:p.value,orchestrations:m.value,startupItems:h.value,startupAutoRun:g.value,afterQuickPushAction:_.value,currentDirectory:S.value})),B=n(()=>!!(b.value&&b.value.trim()));async function V(){try{let e=await fetch(`/api/config/open-file`,{method:`POST`,headers:{"Content-Type":`application/json`}}),n=await e.json().catch(()=>({}));return e.ok&&n?.success?(t.success(c(`@D50BB:已打开系统配置文件`)),!0):(t.error(`${c(`@D50BB:打开系统配置文件失败: `)}${n?.error||``}`),!1)}catch(e){return t.error(`${c(`@D50BB:打开系统配置文件失败: `)}${e.message}`),!1}}async function H(e=!1){if(!e&&y.value&&!v.value)return console.log(c(`@D50BB:使用缓存的配置信息`)),z.value;v.value=!0;try{v.value=!0,console.log(c(`@D50BB:加载配置信息...`));let e=await fetch(`/api/config/getConfig`),n=await e.json().catch(()=>({}));if(!e.ok||n&&n.success===!1){let e=String(n?.error||c(`@D50BB:加载配置失败`)),r=String(n?.configPath||``),i=r?`\n${c(`@D50BB:配置文件`)}: ${r}`:``;return t.error(`${c(`@D50BB:加载配置失败: `)}${e}${i}`),b.value=e,x.value=r,null}if(b.value=``,x.value=``,r.value=n.defaultCommitMessage||``,a.value=n.descriptionTemplates||[],o.value=n.scopeTemplates||[],l.value=n.messageTemplates||[],u.value=n.commandTemplates||[],d.value=n.lockedFiles||[],p.value=n.customCommands||[],m.value=n.orchestrations||[],h.value=(n.startupItems||[]).map(e=>({id:String(e?.id??``),type:e?.type===`workflow`?`workflow`:`command`,refId:String(e?.refId??e?.commandId??``),createdAt:Number(e?.createdAt??Date.now()),enabled:typeof e?.enabled==`boolean`?e.enabled:!0})).filter(e=>e.id&&e.refId),g.value=n.startupAutoRun||!1,_.value={enabled:!!n?.afterQuickPushAction?.enabled,type:n?.afterQuickPushAction?.type===`workflow`?`workflow`:`command`,refId:String(n?.afterQuickPushAction?.refId||``).trim()},n.isStandardCommit!==void 0&&(T.value=!!n.isStandardCommit),n.skipHooks!==void 0&&(E.value=!!n.skipHooks),n.autoQuickPushOnEnter!==void 0&&(D.value=!!n.autoQuickPushOnEnter),n.autoSetDefaultMessage!==void 0&&(w.value=!!n.autoSetDefaultMessage),n.autoClosePushModal!==void 0&&(C.value=!!n.autoClosePushModal),n.pullBeforePush!==void 0&&(O.value=!!n.pullBeforePush),Array.isArray(n.models)&&(j.value=n.models),n.theme&&[`light`,`dark`,`auto`].includes(n.theme)&&(k.value=n.theme,L(n.theme)),n.locale&&[`zh-CN`,`en-US`].includes(n.locale)){A.value=n.locale,s(n.locale);let e=f();e.currentLocale=n.locale}if(n.currentDirectory&&(S.value=n.currentDirectory),n.ui==null){let e=e=>{try{return localStorage.getItem(e)}catch{return null}},t={},n=e(`zen-gitsync-layout-left-ratio`),r=e(`zen-gitsync-layout-mid-ratio`),i=e(`zen-gitsync-layout-right-ratio`),a=e(`zen-gitsync-layout-top-ratio`);if(n||r||i||a){let e=(e,t)=>{let n=e==null?NaN:parseFloat(e);return Number.isFinite(n)?n:t};t.layout={leftRatio:e(n,M.layout.leftRatio),midRatio:e(r,M.layout.midRatio),rightRatio:e(i,M.layout.rightRatio),topRatio:e(a,M.layout.topRatio)}}let o=e(`zen-gitsync-file-list-view-mode`);(o===`list`||o===`tree`)&&(t.fileListViewMode=o);let s=e(`zen-gitsync-filediff-ratio`)??e(`fileDiff.splitPercent`);if(s!=null){let e=parseFloat(s);Number.isFinite(e)&&(t.fileDiffSplitPercent=Math.min(85,Math.max(15,e)))}let c=e(`useTerminal`),l=e(`isConsoleExpanded`),u=e(`showTerminalSessions`),d=e(`zen-gitsync-commandconsole-ratio`);if(c!==null||l!==null||u!==null||d!=null){let e=d==null?NaN:parseFloat(d);t.commandConsole={useTerminal:c!==`false`,expanded:l!==`false`,showTerminalSessions:u==null?!0:u===`true`,splitPercent:Number.isFinite(e)?Math.min(85,Math.max(15,e)):M.commandConsole.splitPercent}}let f=e(`zen-gitsync-editor-auto-save`);f!=null&&(t.editorAutoSave=f===`true`),Object.keys(t).length>0&&(N.value={...N.value,...t}),Object.keys(t).length>0&&q(t,{immediate:!0}).catch(e=>{console.error(`迁移 UI 设置到文件失败:`,e)});try{[`zen-gitsync-theme`,`zen-gitsync-locale`,`zen-gitsync-editor-auto-save`,`zen-gitsync-file-list-view-mode`,`zen-gitsync-filediff-ratio`,`fileDiff.splitPercent`,`isConsoleExpanded`,`useTerminal`,`showTerminalSessions`,`zen-gitsync-commandconsole-ratio`,`zen-gitsync-layout-left-ratio`,`zen-gitsync-layout-mid-ratio`,`zen-gitsync-layout-right-ratio`,`zen-gitsync-layout-top-ratio`,`locale`].forEach(e=>localStorage.removeItem(e))}catch{}}else{let e=n.ui.layoutsByProject&&typeof n.ui.layoutsByProject==`object`&&!Array.isArray(n.ui.layoutsByProject)?n.ui.layoutsByProject:{},t={};for(let[n,r]of Object.entries(e))if(r&&typeof r==`object`&&!Array.isArray(r)){let e=r;t[n]={leftRatio:Number.isFinite(Number(e.leftRatio))?Number(e.leftRatio):M.layout.leftRatio,midRatio:Number.isFinite(Number(e.midRatio))?Number(e.midRatio):M.layout.midRatio,rightRatio:Number.isFinite(Number(e.rightRatio))?Number(e.rightRatio):M.layout.rightRatio,topRatio:Number.isFinite(Number(e.topRatio))?Number(e.topRatio):M.layout.topRatio}}N.value={layout:{...M.layout,...n.ui.layout||{}},layoutsByProject:t,fileListViewMode:n.ui.fileListViewMode===`tree`?`tree`:`list`,fileDiffSplitPercent:Number.isFinite(Number(n.ui.fileDiffSplitPercent))?Math.min(85,Math.max(15,Number(n.ui.fileDiffSplitPercent))):M.fileDiffSplitPercent,commandConsole:{expanded:typeof n.ui.commandConsole?.expanded==`boolean`?n.ui.commandConsole.expanded:M.commandConsole.expanded,useTerminal:typeof n.ui.commandConsole?.useTerminal==`boolean`?n.ui.commandConsole.useTerminal:M.commandConsole.useTerminal,showTerminalSessions:typeof n.ui.commandConsole?.showTerminalSessions==`boolean`?n.ui.commandConsole.showTerminalSessions:M.commandConsole.showTerminalSessions,splitPercent:Number.isFinite(Number(n.ui.commandConsole?.splitPercent))?Math.min(85,Math.max(15,Number(n.ui.commandConsole.splitPercent))):M.commandConsole.splitPercent},editorAutoSave:typeof n.ui.editorAutoSave==`boolean`?n.ui.editorAutoSave:M.editorAutoSave,mindmapDir:typeof n.ui.mindmapDir==`string`?n.ui.mindmapDir:M.mindmapDir}}return I(),P.value=!0,y.value=!0,console.log(c(`@D50BB:配置信息加载完成`)),z.value}catch(e){return console.error(`加载配置失败:`,e),t.error(`${c(`@D50BB:加载配置失败: `)}${e.message}`),b.value=e.message,null}finally{v.value=!1}}async function U(){try{await fetch(`/api/config/save-commit-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({isStandardCommit:T.value,skipHooks:E.value,autoQuickPushOnEnter:D.value,autoSetDefaultMessage:w.value,autoClosePushModal:C.value,pullBeforePush:O.value})})}catch(e){console.error(`保存提交设置失败:`,e)}}e([T,E,D,w,C,O],()=>{y.value&&U()});let W=null,G={};async function K(){if(W&&=(clearTimeout(W),null),Object.keys(G).length===0)return;let e=G;G={};try{await fetch(`/api/config/save-ui-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})}catch(e){console.error(`保存 UI 设置失败:`,e)}}async function q(e,t={}){if(P.value){if(t.immediate){Object.assign(G,e),await K();return}Object.assign(G,e),W&&clearTimeout(W),W=setTimeout(()=>{K()},300)}}async function J(){N.value.layout={...M.layout};let e=S.value;return e&&(N.value.layoutsByProject={...N.value.layoutsByProject,[e]:{...N.value.layout}}),await q({layoutsByProject:N.value.layoutsByProject},{immediate:!0}),N.value.layout}e(()=>N.value.fileListViewMode,e=>{P.value&&q({fileListViewMode:e})}),e(()=>N.value.fileDiffSplitPercent,e=>{P.value&&q({fileDiffSplitPercent:e})}),e(()=>N.value.editorAutoSave,e=>{P.value&&q({editorAutoSave:e})}),e(()=>N.value.layout,e=>{if(!P.value)return;let t=S.value;t&&(N.value.layoutsByProject={...N.value.layoutsByProject,[t]:e},q({layoutsByProject:N.value.layoutsByProject}))},{deep:!0}),e(()=>N.value.commandConsole,e=>{P.value&&q({commandConsole:e})},{deep:!0}),typeof window<`u`&&window.addEventListener(`beforeunload`,()=>{K()});async function Y(e){try{let n=await(await fetch(`/api/config/saveDefaultMessage`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({defaultCommitMessage:e})})).json();return n.success?(r.value=e,t.success(c(`@D50BB:默认提交信息已保存`)),!0):(t.error(`${c(`@D50BB:保存失败: `)}${n.error}`),!1)}catch(e){return t.error(`${c(`@D50BB:保存失败: `)}${e.message}`),!1}}async function X(e){try{let n=await(await fetch(`/api/config/save-after-quick-push-action`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({afterQuickPushAction:{enabled:!!e?.enabled,type:e?.type===`workflow`?`workflow`:`command`,refId:String(e?.refId||``).trim()}})})).json();return n.success?(_.value={enabled:!!e?.enabled,type:e?.type===`workflow`?`workflow`:`command`,refId:String(e?.refId||``).trim()},!0):(t.error(`保存提交后启动项失败: ${n.error}`),!1)}catch(e){return t.error(`保存提交后启动项失败: ${e.message}`),!1}}async function Z(e,n){try{let r=await(await fetch(`/api/config/save-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:n})})).json();return r.success?(n===`description`?a.value.includes(e)||a.value.push(e):n===`scope`?o.value.includes(e)||o.value.push(e):n===`message`?l.value.includes(e)||l.value.push(e):n===`command`&&(u.value.includes(e)||u.value.push(e)),t.success(c(`@D50BB:模板已保存`)),!0):(t.error(`${c(`@D50BB:保存模板失败: `)}${r.error}`),!1)}catch(e){return t.error(`${c(`@D50BB:保存模板失败: `)}${e.message}`),!1}}async function ee(e,n){try{let r=await(await fetch(`/api/config/delete-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:n})})).json();return r.success?(n===`description`?a.value=a.value.filter(t=>t!==e):n===`scope`?o.value=o.value.filter(t=>t!==e):n===`message`?l.value=l.value.filter(t=>t!==e):n===`command`&&(u.value=u.value.filter(t=>t!==e)),t.success(c(`@D50BB:模板已删除`)),!0):(t.error(`${c(`@D50BB:删除模板失败: `)}${r.error}`),!1)}catch(e){return t.error(`${c(`@D50BB:删除模板失败: `)}${e.message}`),!1}}async function te(e,n,r){try{let i=await(await fetch(`/api/config/update-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({oldTemplate:e,newTemplate:n,type:r})})).json();if(i.success){if(r===`description`){let t=a.value.indexOf(e);t!==-1&&(a.value[t]=n)}else if(r===`scope`){let t=o.value.indexOf(e);t!==-1&&(o.value[t]=n)}else if(r===`message`){let t=l.value.indexOf(e);t!==-1&&(l.value[t]=n)}else if(r===`command`){let t=u.value.indexOf(e);t!==-1&&(u.value[t]=n)}return t.success(c(`@D50BB:模板已更新`)),!0}else return t.error(`${c(`@D50BB:更新模板失败: `)}${i.error}`),!1}catch(e){return t.error(`${c(`@D50BB:更新模板失败: `)}${e.message}`),!1}}async function ne(e,n){try{let r=await(await fetch(`/api/config/pin-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:n})})).json();return r.success?(n===`description`?(a.value=a.value.filter(t=>t!==e),a.value.unshift(e)):n===`scope`?(o.value=o.value.filter(t=>t!==e),o.value.unshift(e)):n===`message`?(l.value=l.value.filter(t=>t!==e),l.value.unshift(e)):n===`command`&&(u.value=u.value.filter(t=>t!==e),u.value.unshift(e)),t.success(c(`@D50BB:模板已置顶`)),!0):(t.error(`${c(`@D50BB:置顶模板失败: `)}${r.error}`),!1)}catch(e){return t.error(`${c(`@D50BB:置顶模板失败: `)}${e.message}`),!1}}async function Q(){try{let e=await(await fetch(`/api/locked-files`)).json();return e.success?(d.value=e.lockedFiles||[],e.lockedFiles):(t.error(`${c(`@D50BB:加载锁定文件列表失败: `)}${e.error}`),[])}catch(e){return console.error(`加载锁定文件列表失败:`,e),t.error(`${c(`@D50BB:加载锁定文件列表失败: `)}${e.message}`),[]}}async function re(e){try{let n=await(await fetch(`/api/lock-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return n.success?(await Q(),t.success(`${c(`@D50BB:文件已锁定: `)}${e}`),!0):(t.error(`${c(`@D50BB:锁定文件失败: `)}${n.error}`),!1)}catch(e){return console.error(`锁定文件失败:`,e),t.error(`${c(`@D50BB:锁定文件失败: `)}${e.message}`),!1}}async function ie(e){try{let n=await(await fetch(`/api/unlock-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return n.success?(await Q(),t.success(`${c(`@D50BB:文件已解锁: `)}${e}`),!0):(t.error(`${c(`@D50BB:解锁文件失败: `)}${n.error}`),!1)}catch(e){return console.error(`解锁文件失败:`,e),t.error(`${c(`@D50BB:解锁文件失败: `)}${e.message}`),!1}}async function ae(e){try{let t=await(await fetch(`/api/check-file-lock`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return t.success?t.isLocked:(console.error(`检查文件锁定状态失败:`,t.error),!1)}catch(e){return console.error(`检查文件锁定状态失败:`,e),!1}}async function oe(e){try{let n=await(await fetch(`/api/config/save-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({command:e})})).json();return n.success?(await H(!0),t.success(c(`@CMD01:命令已保存`)),!0):(t.error(`${c(`@CMD01:保存命令失败: `)}${n.error}`),!1)}catch(e){return t.error(`${c(`@CMD01:保存命令失败: `)}${e.message}`),!1}}async function se(e){try{let n=await(await fetch(`/api/config/delete-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return n.success?(await H(!0),t.success(c(`@CMD01:命令已删除`)),!0):(t.error(`${c(`@CMD01:删除命令失败: `)}${n.error}`),!1)}catch(e){return t.error(`${c(`@CMD01:删除命令失败: `)}${e.message}`),!1}}async function ce(e,n){try{let r=await(await fetch(`/api/config/update-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e,command:n})})).json();return r.success?(await H(!0),t.success(c(`@CMD01:命令已更新`)),!0):(t.error(`${c(`@CMD01:更新命令失败: `)}${r.error}`),!1)}catch(e){return t.error(`${c(`@CMD01:更新命令失败: `)}${e.message}`),!1}}async function le(e){try{let n=await(await fetch(`/api/config/pin-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return n.success?(await H(!0),!0):(t.error(n.error),!1)}catch(e){return t.error(e.message),!1}}async function ue(e){try{let n=await(await fetch(`/api/config/save-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({orchestration:e})})).json();return n.success?(await H(!0),t.success(c(`@ORCH:编排已保存`)),n.orchestration||null):(t.error(`${c(`@ORCH:保存编排失败: `)}${n.error}`),null)}catch(e){return t.error(`${c(`@ORCH:保存编排失败: `)}${e.message}`),null}}async function de(e){try{let n=await(await fetch(`/api/config/delete-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return n.success?(await H(!0),t.success(c(`@ORCH:编排已删除`)),!0):(t.error(`${c(`@ORCH:删除编排失败: `)}${n.error}`),!1)}catch(e){return t.error(`${c(`@ORCH:删除编排失败: `)}${e.message}`),!1}}async function fe(e,n){try{let r=await(await fetch(`/api/config/update-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e,orchestration:n})})).json();return r.success?(await H(!0),t.success(c(`@ORCH:编排已更新`)),!0):(t.error(`${c(`@ORCH:更新编排失败: `)}${r.error}`),!1)}catch(e){return t.error(`${c(`@ORCH:更新编排失败: `)}${e.message}`),!1}}async function pe(e,n){try{let r=await(await fetch(`/api/config/save-startup-items`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({startupItems:e,startupAutoRun:n===void 0?g.value:n})})).json();return r.success?(h.value=e,n!==void 0&&(g.value=n),!0):(t.error(`保存启动项失败: ${r.error}`),!1)}catch(e){return t.error(`保存启动项失败: ${e.message}`),!1}}async function me(e){try{let n=await(await fetch(`/api/config/save-models`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({models:e})})).json();return n.success?(j.value=e,!0):(t.error(`${c(`@D50BB:保存模型失败: `)}${n.error}`),!1)}catch(e){return t.error(`${c(`@D50BB:保存模型失败: `)}${e.message}`),!1}}async function $(e){try{let n=await(await fetch(`/api/config/save-general-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})).json();if(n.success){if(e.theme&&(k.value=e.theme,L(e.theme)),e.locale){A.value=e.locale,s(e.locale);let t=f();t.currentLocale=e.locale}return!0}else return t.error(`保存通用设置失败: ${n.error}`),!1}catch(e){return t.error(`保存通用设置失败: ${e.message}`),!1}}return{models:j,defaultCommitMessage:r,descriptionTemplates:a,scopeTemplates:o,messageTemplates:l,commandTemplates:u,lockedFiles:d,customCommands:p,orchestrations:m,startupItems:h,startupAutoRun:g,afterQuickPushAction:_,isLoading:v,isLoaded:y,configLoadError:b,configFilePath:x,hasConfigLoadError:B,currentDirectory:S,config:z,autoClosePushModal:C,autoSetDefaultMessage:w,isStandardCommit:T,skipHooks:E,autoQuickPushOnEnter:D,pullBeforePush:O,theme:k,locale:A,ui:N,isUiLoaded:P,loadConfig:H,setCurrentDirectory:F,openSystemConfigFile:V,saveTemplate:Z,saveModels:me,saveGeneralSettings:$,saveUiSettings:q,resetUiLayout:J,applyTheme:L,toggleTheme:R,saveDefaultMessage:Y,deleteTemplate:ee,updateTemplate:te,pinTemplate:ne,loadLockedFiles:Q,lockFile:re,unlockFile:ie,isFileLocked:ae,saveCustomCommand:oe,deleteCustomCommand:se,updateCustomCommand:ce,pinCustomCommand:le,saveOrchestration:ue,deleteOrchestration:de,updateOrchestration:fe,saveStartupItems:pe,saveAfterQuickPushAction:X,saveCommitSettings:U}});export{f as n,p as t};
1
+ import"./rolldown-runtime-CMxvf4Kt.js";import{Jn as e,a as t,mn as n,n as r,sr as i,t as a}from"./element-plus-C_2iiXUS.js";import{u as o}from"./vendor-D79HTB0H.js";import{a as s,n as c,r as l}from"./_plugin-vue_export-helper-Dvk21zJS.js";var u={"zh-CN":r,"en-US":a};function d(e){return u[e]||r}var f=o(`locale`,()=>{let e=i(l()),t=n(()=>d(e.value));async function r(t){s(t),e.value=t;let n=p();n.locale!==t&&await n.saveGeneralSettings({locale:t})}return{currentLocale:e,elementPlusLocale:t,changeLocale:r}}),p=o(`config`,()=>{let r=i(``),a=i([]),o=i([]),l=i([]),u=i([]),d=i([]),p=i([]),m=i([]),h=i([]),g=i(!1),_=i({enabled:!1,type:`command`,refId:``}),v=i(!1),y=i(!1),b=i(``),x=i(``),S=i(``),C=i(!0),w=i(!1),T=i(!0),E=i(!1),D=i(!1),O=i(!0),k=i(`light`),A=i(`zh-CN`),j=i([]),M={layout:{leftRatio:.25,midRatio:.375,rightRatio:.375,topRatio:.5},layoutsByProject:{},fileListViewMode:`list`,fileDiffSplitPercent:35,commandConsole:{expanded:!0,useTerminal:!0,showTerminalSessions:!0,splitPercent:25},editorAutoSave:!1,mindmapDir:``},N=i(JSON.parse(JSON.stringify(M))),P=i(!1);function F(e){S.value=e||``}function I(){let e=S.value;if(e&&N.value.layoutsByProject?.[e]){N.value.layout={...N.value.layoutsByProject[e]};return}}function L(e){let t=document.documentElement;e===`dark`?t.setAttribute(`data-theme`,`dark`):e===`light`?t.removeAttribute(`data-theme`):window.matchMedia(`(prefers-color-scheme: dark)`).matches?t.setAttribute(`data-theme`,`dark`):t.removeAttribute(`data-theme`)}function R(){let e=document.documentElement.getAttribute(`data-theme`)===`dark`?`light`:`dark`;return k.value=e,L(e),$({theme:e}).catch(e=>{console.error(`保存主题切换结果失败:`,e)}),e}L(k.value);let z=n(()=>({defaultCommitMessage:r.value,descriptionTemplates:a.value,scopeTemplates:o.value,messageTemplates:l.value,commandTemplates:u.value,lockedFiles:d.value,customCommands:p.value,orchestrations:m.value,startupItems:h.value,startupAutoRun:g.value,afterQuickPushAction:_.value,currentDirectory:S.value})),B=n(()=>!!(b.value&&b.value.trim()));async function V(){try{let e=await fetch(`/api/config/open-file`,{method:`POST`,headers:{"Content-Type":`application/json`}}),n=await e.json().catch(()=>({}));return e.ok&&n?.success?(t.success(c(`@D50BB:已打开系统配置文件`)),!0):(t.error(`${c(`@D50BB:打开系统配置文件失败: `)}${n?.error||``}`),!1)}catch(e){return t.error(`${c(`@D50BB:打开系统配置文件失败: `)}${e.message}`),!1}}async function H(e=!1){if(!e&&y.value&&!v.value)return console.log(c(`@D50BB:使用缓存的配置信息`)),z.value;v.value=!0;try{v.value=!0,console.log(c(`@D50BB:加载配置信息...`));let e=await fetch(`/api/config/getConfig`),n=await e.json().catch(()=>({}));if(!e.ok||n&&n.success===!1){let e=String(n?.error||c(`@D50BB:加载配置失败`)),r=String(n?.configPath||``),i=r?`\n${c(`@D50BB:配置文件`)}: ${r}`:``;return t.error(`${c(`@D50BB:加载配置失败: `)}${e}${i}`),b.value=e,x.value=r,null}if(b.value=``,x.value=``,r.value=n.defaultCommitMessage||``,a.value=n.descriptionTemplates||[],o.value=n.scopeTemplates||[],l.value=n.messageTemplates||[],u.value=n.commandTemplates||[],d.value=n.lockedFiles||[],p.value=n.customCommands||[],m.value=n.orchestrations||[],h.value=(n.startupItems||[]).map(e=>({id:String(e?.id??``),type:e?.type===`workflow`?`workflow`:`command`,refId:String(e?.refId??e?.commandId??``),createdAt:Number(e?.createdAt??Date.now()),enabled:typeof e?.enabled==`boolean`?e.enabled:!0})).filter(e=>e.id&&e.refId),g.value=n.startupAutoRun||!1,_.value={enabled:!!n?.afterQuickPushAction?.enabled,type:n?.afterQuickPushAction?.type===`workflow`?`workflow`:`command`,refId:String(n?.afterQuickPushAction?.refId||``).trim()},n.isStandardCommit!==void 0&&(T.value=!!n.isStandardCommit),n.skipHooks!==void 0&&(E.value=!!n.skipHooks),n.autoQuickPushOnEnter!==void 0&&(D.value=!!n.autoQuickPushOnEnter),n.autoSetDefaultMessage!==void 0&&(w.value=!!n.autoSetDefaultMessage),n.autoClosePushModal!==void 0&&(C.value=!!n.autoClosePushModal),n.pullBeforePush!==void 0&&(O.value=!!n.pullBeforePush),Array.isArray(n.models)&&(j.value=n.models),n.theme&&[`light`,`dark`,`auto`].includes(n.theme)&&(k.value=n.theme,L(n.theme)),n.locale&&[`zh-CN`,`en-US`].includes(n.locale)){A.value=n.locale,s(n.locale);let e=f();e.currentLocale=n.locale}if(n.currentDirectory&&(S.value=n.currentDirectory),n.ui==null){let e=e=>{try{return localStorage.getItem(e)}catch{return null}},t={},n=e(`zen-gitsync-layout-left-ratio`),r=e(`zen-gitsync-layout-mid-ratio`),i=e(`zen-gitsync-layout-right-ratio`),a=e(`zen-gitsync-layout-top-ratio`);if(n||r||i||a){let e=(e,t)=>{let n=e==null?NaN:parseFloat(e);return Number.isFinite(n)?n:t};t.layout={leftRatio:e(n,M.layout.leftRatio),midRatio:e(r,M.layout.midRatio),rightRatio:e(i,M.layout.rightRatio),topRatio:e(a,M.layout.topRatio)}}let o=e(`zen-gitsync-file-list-view-mode`);(o===`list`||o===`tree`)&&(t.fileListViewMode=o);let s=e(`zen-gitsync-filediff-ratio`)??e(`fileDiff.splitPercent`);if(s!=null){let e=parseFloat(s);Number.isFinite(e)&&(t.fileDiffSplitPercent=Math.min(85,Math.max(15,e)))}let c=e(`useTerminal`),l=e(`isConsoleExpanded`),u=e(`showTerminalSessions`),d=e(`zen-gitsync-commandconsole-ratio`);if(c!==null||l!==null||u!==null||d!=null){let e=d==null?NaN:parseFloat(d);t.commandConsole={useTerminal:c!==`false`,expanded:l!==`false`,showTerminalSessions:u==null?!0:u===`true`,splitPercent:Number.isFinite(e)?Math.min(85,Math.max(15,e)):M.commandConsole.splitPercent}}let f=e(`zen-gitsync-editor-auto-save`);f!=null&&(t.editorAutoSave=f===`true`),Object.keys(t).length>0&&(N.value={...N.value,...t}),Object.keys(t).length>0&&q(t,{immediate:!0}).catch(e=>{console.error(`迁移 UI 设置到文件失败:`,e)});try{[`zen-gitsync-theme`,`zen-gitsync-locale`,`zen-gitsync-editor-auto-save`,`zen-gitsync-file-list-view-mode`,`zen-gitsync-filediff-ratio`,`fileDiff.splitPercent`,`isConsoleExpanded`,`useTerminal`,`showTerminalSessions`,`zen-gitsync-commandconsole-ratio`,`zen-gitsync-layout-left-ratio`,`zen-gitsync-layout-mid-ratio`,`zen-gitsync-layout-right-ratio`,`zen-gitsync-layout-top-ratio`,`locale`].forEach(e=>localStorage.removeItem(e))}catch{}}else{let e=n.ui.layoutsByProject&&typeof n.ui.layoutsByProject==`object`&&!Array.isArray(n.ui.layoutsByProject)?n.ui.layoutsByProject:{},t={};for(let[n,r]of Object.entries(e))if(r&&typeof r==`object`&&!Array.isArray(r)){let e=r;t[n]={leftRatio:Number.isFinite(Number(e.leftRatio))?Number(e.leftRatio):M.layout.leftRatio,midRatio:Number.isFinite(Number(e.midRatio))?Number(e.midRatio):M.layout.midRatio,rightRatio:Number.isFinite(Number(e.rightRatio))?Number(e.rightRatio):M.layout.rightRatio,topRatio:Number.isFinite(Number(e.topRatio))?Number(e.topRatio):M.layout.topRatio}}N.value={layout:{...M.layout,...n.ui.layout||{}},layoutsByProject:t,fileListViewMode:n.ui.fileListViewMode===`tree`?`tree`:`list`,fileDiffSplitPercent:Number.isFinite(Number(n.ui.fileDiffSplitPercent))?Math.min(85,Math.max(15,Number(n.ui.fileDiffSplitPercent))):M.fileDiffSplitPercent,commandConsole:{expanded:typeof n.ui.commandConsole?.expanded==`boolean`?n.ui.commandConsole.expanded:M.commandConsole.expanded,useTerminal:typeof n.ui.commandConsole?.useTerminal==`boolean`?n.ui.commandConsole.useTerminal:M.commandConsole.useTerminal,showTerminalSessions:typeof n.ui.commandConsole?.showTerminalSessions==`boolean`?n.ui.commandConsole.showTerminalSessions:M.commandConsole.showTerminalSessions,splitPercent:Number.isFinite(Number(n.ui.commandConsole?.splitPercent))?Math.min(85,Math.max(15,Number(n.ui.commandConsole.splitPercent))):M.commandConsole.splitPercent},editorAutoSave:typeof n.ui.editorAutoSave==`boolean`?n.ui.editorAutoSave:M.editorAutoSave,mindmapDir:typeof n.ui.mindmapDir==`string`?n.ui.mindmapDir:M.mindmapDir}}return I(),P.value=!0,y.value=!0,console.log(c(`@D50BB:配置信息加载完成`)),z.value}catch(e){return console.error(`加载配置失败:`,e),t.error(`${c(`@D50BB:加载配置失败: `)}${e.message}`),b.value=e.message,null}finally{v.value=!1}}async function U(){try{await fetch(`/api/config/save-commit-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({isStandardCommit:T.value,skipHooks:E.value,autoQuickPushOnEnter:D.value,autoSetDefaultMessage:w.value,autoClosePushModal:C.value,pullBeforePush:O.value})})}catch(e){console.error(`保存提交设置失败:`,e)}}e([T,E,D,w,C,O],()=>{y.value&&U()});let W=null,G={};async function K(){if(W&&=(clearTimeout(W),null),Object.keys(G).length===0)return;let e=G;G={};try{await fetch(`/api/config/save-ui-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})}catch(e){console.error(`保存 UI 设置失败:`,e)}}async function q(e,t={}){if(P.value){if(t.immediate){Object.assign(G,e),await K();return}Object.assign(G,e),W&&clearTimeout(W),W=setTimeout(()=>{K()},300)}}async function J(){N.value.layout={...M.layout};let e=S.value;return e&&(N.value.layoutsByProject={...N.value.layoutsByProject,[e]:{...N.value.layout}}),await q({layoutsByProject:N.value.layoutsByProject},{immediate:!0}),N.value.layout}e(()=>N.value.fileListViewMode,e=>{P.value&&q({fileListViewMode:e})}),e(()=>N.value.fileDiffSplitPercent,e=>{P.value&&q({fileDiffSplitPercent:e})}),e(()=>N.value.editorAutoSave,e=>{P.value&&q({editorAutoSave:e})}),e(()=>N.value.layout,e=>{if(!P.value)return;let t=S.value;t&&(N.value.layoutsByProject={...N.value.layoutsByProject,[t]:e},q({layoutsByProject:N.value.layoutsByProject}))},{deep:!0}),e(()=>N.value.commandConsole,e=>{P.value&&q({commandConsole:e})},{deep:!0}),typeof window<`u`&&window.addEventListener(`beforeunload`,()=>{K()});async function Y(e){try{let n=await(await fetch(`/api/config/saveDefaultMessage`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({defaultCommitMessage:e})})).json();return n.success?(r.value=e,t.success(c(`@D50BB:默认提交信息已保存`)),!0):(t.error(`${c(`@D50BB:保存失败: `)}${n.error}`),!1)}catch(e){return t.error(`${c(`@D50BB:保存失败: `)}${e.message}`),!1}}async function X(e){try{let n=await(await fetch(`/api/config/save-after-quick-push-action`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({afterQuickPushAction:{enabled:!!e?.enabled,type:e?.type===`workflow`?`workflow`:`command`,refId:String(e?.refId||``).trim()}})})).json();return n.success?(_.value={enabled:!!e?.enabled,type:e?.type===`workflow`?`workflow`:`command`,refId:String(e?.refId||``).trim()},!0):(t.error(`保存提交后启动项失败: ${n.error}`),!1)}catch(e){return t.error(`保存提交后启动项失败: ${e.message}`),!1}}async function Z(e,n){try{let r=await(await fetch(`/api/config/save-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:n})})).json();return r.success?(n===`description`?a.value.includes(e)||a.value.push(e):n===`scope`?o.value.includes(e)||o.value.push(e):n===`message`?l.value.includes(e)||l.value.push(e):n===`command`&&(u.value.includes(e)||u.value.push(e)),t.success(c(`@D50BB:模板已保存`)),!0):(t.error(`${c(`@D50BB:保存模板失败: `)}${r.error}`),!1)}catch(e){return t.error(`${c(`@D50BB:保存模板失败: `)}${e.message}`),!1}}async function ee(e,n){try{let r=await(await fetch(`/api/config/delete-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:n})})).json();return r.success?(n===`description`?a.value=a.value.filter(t=>t!==e):n===`scope`?o.value=o.value.filter(t=>t!==e):n===`message`?l.value=l.value.filter(t=>t!==e):n===`command`&&(u.value=u.value.filter(t=>t!==e)),t.success(c(`@D50BB:模板已删除`)),!0):(t.error(`${c(`@D50BB:删除模板失败: `)}${r.error}`),!1)}catch(e){return t.error(`${c(`@D50BB:删除模板失败: `)}${e.message}`),!1}}async function te(e,n,r){try{let i=await(await fetch(`/api/config/update-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({oldTemplate:e,newTemplate:n,type:r})})).json();if(i.success){if(r===`description`){let t=a.value.indexOf(e);t!==-1&&(a.value[t]=n)}else if(r===`scope`){let t=o.value.indexOf(e);t!==-1&&(o.value[t]=n)}else if(r===`message`){let t=l.value.indexOf(e);t!==-1&&(l.value[t]=n)}else if(r===`command`){let t=u.value.indexOf(e);t!==-1&&(u.value[t]=n)}return t.success(c(`@D50BB:模板已更新`)),!0}else return t.error(`${c(`@D50BB:更新模板失败: `)}${i.error}`),!1}catch(e){return t.error(`${c(`@D50BB:更新模板失败: `)}${e.message}`),!1}}async function ne(e,n){try{let r=await(await fetch(`/api/config/pin-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:n})})).json();return r.success?(n===`description`?(a.value=a.value.filter(t=>t!==e),a.value.unshift(e)):n===`scope`?(o.value=o.value.filter(t=>t!==e),o.value.unshift(e)):n===`message`?(l.value=l.value.filter(t=>t!==e),l.value.unshift(e)):n===`command`&&(u.value=u.value.filter(t=>t!==e),u.value.unshift(e)),t.success(c(`@D50BB:模板已置顶`)),!0):(t.error(`${c(`@D50BB:置顶模板失败: `)}${r.error}`),!1)}catch(e){return t.error(`${c(`@D50BB:置顶模板失败: `)}${e.message}`),!1}}async function Q(){try{let e=await(await fetch(`/api/locked-files`)).json();return e.success?(d.value=e.lockedFiles||[],e.lockedFiles):(t.error(`${c(`@D50BB:加载锁定文件列表失败: `)}${e.error}`),[])}catch(e){return console.error(`加载锁定文件列表失败:`,e),t.error(`${c(`@D50BB:加载锁定文件列表失败: `)}${e.message}`),[]}}async function re(e){try{let n=await(await fetch(`/api/lock-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return n.success?(await Q(),t.success(`${c(`@D50BB:文件已锁定: `)}${e}`),!0):(t.error(`${c(`@D50BB:锁定文件失败: `)}${n.error}`),!1)}catch(e){return console.error(`锁定文件失败:`,e),t.error(`${c(`@D50BB:锁定文件失败: `)}${e.message}`),!1}}async function ie(e){try{let n=await(await fetch(`/api/unlock-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return n.success?(await Q(),t.success(`${c(`@D50BB:文件已解锁: `)}${e}`),!0):(t.error(`${c(`@D50BB:解锁文件失败: `)}${n.error}`),!1)}catch(e){return console.error(`解锁文件失败:`,e),t.error(`${c(`@D50BB:解锁文件失败: `)}${e.message}`),!1}}async function ae(e){try{let t=await(await fetch(`/api/check-file-lock`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return t.success?t.isLocked:(console.error(`检查文件锁定状态失败:`,t.error),!1)}catch(e){return console.error(`检查文件锁定状态失败:`,e),!1}}async function oe(e){try{let n=await(await fetch(`/api/config/save-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({command:e})})).json();return n.success?(await H(!0),t.success(c(`@CMD01:命令已保存`)),!0):(t.error(`${c(`@CMD01:保存命令失败: `)}${n.error}`),!1)}catch(e){return t.error(`${c(`@CMD01:保存命令失败: `)}${e.message}`),!1}}async function se(e){try{let n=await(await fetch(`/api/config/delete-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return n.success?(await H(!0),t.success(c(`@CMD01:命令已删除`)),!0):(t.error(`${c(`@CMD01:删除命令失败: `)}${n.error}`),!1)}catch(e){return t.error(`${c(`@CMD01:删除命令失败: `)}${e.message}`),!1}}async function ce(e,n){try{let r=await(await fetch(`/api/config/update-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e,command:n})})).json();return r.success?(await H(!0),t.success(c(`@CMD01:命令已更新`)),!0):(t.error(`${c(`@CMD01:更新命令失败: `)}${r.error}`),!1)}catch(e){return t.error(`${c(`@CMD01:更新命令失败: `)}${e.message}`),!1}}async function le(e){try{let n=await(await fetch(`/api/config/pin-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return n.success?(await H(!0),!0):(t.error(n.error),!1)}catch(e){return t.error(e.message),!1}}async function ue(e){try{let n=await(await fetch(`/api/config/save-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({orchestration:e})})).json();return n.success?(await H(!0),t.success(c(`@ORCH:编排已保存`)),n.orchestration||null):(t.error(`${c(`@ORCH:保存编排失败: `)}${n.error}`),null)}catch(e){return t.error(`${c(`@ORCH:保存编排失败: `)}${e.message}`),null}}async function de(e){try{let n=await(await fetch(`/api/config/delete-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return n.success?(await H(!0),t.success(c(`@ORCH:编排已删除`)),!0):(t.error(`${c(`@ORCH:删除编排失败: `)}${n.error}`),!1)}catch(e){return t.error(`${c(`@ORCH:删除编排失败: `)}${e.message}`),!1}}async function fe(e,n){try{let r=await(await fetch(`/api/config/update-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e,orchestration:n})})).json();return r.success?(await H(!0),t.success(c(`@ORCH:编排已更新`)),!0):(t.error(`${c(`@ORCH:更新编排失败: `)}${r.error}`),!1)}catch(e){return t.error(`${c(`@ORCH:更新编排失败: `)}${e.message}`),!1}}async function pe(e,n){try{let r=await(await fetch(`/api/config/save-startup-items`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({startupItems:e,startupAutoRun:n===void 0?g.value:n})})).json();return r.success?(h.value=e,n!==void 0&&(g.value=n),!0):(t.error(`保存启动项失败: ${r.error}`),!1)}catch(e){return t.error(`保存启动项失败: ${e.message}`),!1}}async function me(e){try{let n=await(await fetch(`/api/config/save-models`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({models:e})})).json();return n.success?(j.value=e,!0):(t.error(`${c(`@D50BB:保存模型失败: `)}${n.error}`),!1)}catch(e){return t.error(`${c(`@D50BB:保存模型失败: `)}${e.message}`),!1}}async function $(e){try{let n=await(await fetch(`/api/config/save-general-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})).json();if(n.success){if(e.theme&&(k.value=e.theme,L(e.theme)),e.locale){A.value=e.locale,s(e.locale);let t=f();t.currentLocale=e.locale}return!0}else return t.error(`保存通用设置失败: ${n.error}`),!1}catch(e){return t.error(`保存通用设置失败: ${e.message}`),!1}}return{models:j,defaultCommitMessage:r,descriptionTemplates:a,scopeTemplates:o,messageTemplates:l,commandTemplates:u,lockedFiles:d,customCommands:p,orchestrations:m,startupItems:h,startupAutoRun:g,afterQuickPushAction:_,isLoading:v,isLoaded:y,configLoadError:b,configFilePath:x,hasConfigLoadError:B,currentDirectory:S,config:z,autoClosePushModal:C,autoSetDefaultMessage:w,isStandardCommit:T,skipHooks:E,autoQuickPushOnEnter:D,pullBeforePush:O,theme:k,locale:A,ui:N,isUiLoaded:P,loadConfig:H,setCurrentDirectory:F,openSystemConfigFile:V,saveTemplate:Z,saveModels:me,saveGeneralSettings:$,saveUiSettings:q,resetUiLayout:J,applyTheme:L,toggleTheme:R,saveDefaultMessage:Y,deleteTemplate:ee,updateTemplate:te,pinTemplate:ne,loadLockedFiles:Q,lockFile:re,unlockFile:ie,isFileLocked:ae,saveCustomCommand:oe,deleteCustomCommand:se,updateCustomCommand:ce,pinCustomCommand:le,saveOrchestration:ue,deleteOrchestration:de,updateOrchestration:fe,saveStartupItems:pe,saveAfterQuickPushAction:X,saveCommitSettings:U}});export{f as n,p as t};