zen-gitsync 2.17.27 → 2.17.28

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 (83) hide show
  1. package/README.md +4 -2
  2. package/package.json +2 -1
  3. package/src/config.js +8 -0
  4. package/src/ui/public/assets/AgentEngineSelector-D8iaDrev.js +2 -0
  5. package/src/ui/public/assets/AgentView-BQz9h_Qi.js +10 -0
  6. package/src/ui/public/assets/AppVersionBadge-Mx8QwTA1.js +2 -0
  7. package/src/ui/public/assets/BranchSelector-CTrTouMm.js +1 -0
  8. package/src/ui/public/assets/CommitForm-DsfySGI2.js +6 -0
  9. package/src/ui/public/assets/CommonDialog-Bwj--3EO.js +1 -0
  10. package/src/ui/public/assets/EditorView-DiyJWwAk.js +37 -0
  11. package/src/ui/public/assets/FileDiffViewer-DFFyUPF2.js +15 -0
  12. package/src/ui/public/assets/{FlowExecutionViewer-Dp3ZiatT.js → FlowExecutionViewer-awWx7pMb.js} +1 -1
  13. package/src/ui/public/assets/FlowOrchestrationWorkspace-Brq0M2sZ.js +21 -0
  14. package/src/ui/public/assets/IconButton-IoukQQts.js +1 -0
  15. package/src/ui/public/assets/LogList-Ca0hE-S0.js +7 -0
  16. package/src/ui/public/assets/MindmapView-BO_PG-mg.js +2 -0
  17. package/src/ui/public/assets/MonitorView-BXlLpzYU.js +1 -0
  18. package/src/ui/public/assets/ProjectStartupButton-C8OZPgjM.js +1 -0
  19. package/src/ui/public/assets/{RecentDirectoriesChat-6OG0eOqz.js → RecentDirectoriesChat-DFGIm3ab.js} +2 -2
  20. package/src/ui/public/assets/RemoteManagerDialog-DFtZmhn4.js +4 -0
  21. package/src/ui/public/assets/RemoteRepoCard-HV8oHZL_.js +7 -0
  22. package/src/ui/public/assets/SourceMapView-ByGif9Z8.js +3 -0
  23. package/src/ui/public/assets/{SvgIcon-22vrNtgL.js → SvgIcon-Cv-Ewpj-.js} +1 -1
  24. package/src/ui/public/assets/TemplateManager-DBuPZE4y.js +1 -0
  25. package/src/ui/public/assets/UserInputNode-CVKtLvHE.js +1 -0
  26. package/src/ui/public/assets/WorkbenchView-5K0toOqC.js +143 -0
  27. package/src/ui/public/assets/WorkbenchView-BA7mKIr4.css +1 -0
  28. package/src/ui/public/assets/{_plugin-vue_export-helper-DRfZJqP7.js → _plugin-vue_export-helper-BP5VbhV0.js} +3 -3
  29. package/src/ui/public/assets/{agentConversations-17Pw5IQJ.js → agentConversations-CDIB8kgC.js} +5 -5
  30. package/src/ui/public/assets/configStore-eQKYDKzd.js +1 -0
  31. package/src/ui/public/assets/{css.worker-DFdt6_zu.js → css.worker-BDCmgL4U.js} +9 -9
  32. package/src/ui/public/assets/editor.worker-GCPm6rMv.js +26 -0
  33. package/src/ui/public/assets/{element-plus-Qexo5hiM.css → element-plus-C1xzgNSR.css} +1 -1
  34. package/src/ui/public/assets/element-plus-D7LDHcAn.js +48 -0
  35. package/src/ui/public/assets/{flow-mindmap-C22NSZc1.js → flow-mindmap-B3900Z4K.js} +52 -52
  36. package/src/ui/public/assets/gitStore-8MMG-kBB.js +6 -0
  37. package/src/ui/public/assets/{html.worker-JUzsMP-j.js → html.worker-DG8hnSJR.js} +8 -8
  38. package/src/ui/public/assets/index-DBOS6HZF.js +148 -0
  39. package/src/ui/public/assets/index-DVpFh9xE.css +1 -0
  40. package/src/ui/public/assets/json.worker-CxwlJRnL.js +58 -0
  41. package/src/ui/public/assets/{monaco-DkJuNcCr.js → monaco-BScz9v63.js} +6 -6
  42. package/src/ui/public/assets/{office-docx-CJ6JSCs6.js → office-docx-C8sYW8O1.js} +6 -6
  43. package/src/ui/public/assets/{office-excel-BOjWK-1x.js → office-excel-DpZn5My2.js} +1 -1
  44. package/src/ui/public/assets/{office-pptx-CF43ZwXE.js → office-pptx-BnYBTwT7.js} +3 -3
  45. package/src/ui/public/assets/previewSandbox-C-BRP5dF.js +9 -0
  46. package/src/ui/public/assets/toolsStore-C4B7BL-O.js +1 -0
  47. package/src/ui/public/assets/{ts.worker-CmEKzkmF.js → ts.worker-DgFMIcEs.js} +49 -49
  48. package/src/ui/public/assets/{useThemeObserver-CiUpR4zj.js → useThemeObserver-CGbhdyNi.js} +1 -1
  49. package/src/ui/public/assets/{vendor-viKaN257.js → vendor-CUTaFm6P.js} +13 -13
  50. package/src/ui/public/assets/vue-flow-CxnoC7Uq.js +39 -0
  51. package/src/ui/public/index.html +19 -19
  52. package/src/ui/server/routes/workbench/executorModels.test.js +326 -326
  53. package/src/ui/public/assets/AgentEngineSelector-BUZYAFe-.js +0 -2
  54. package/src/ui/public/assets/AgentView-BFSmHCq7.js +0 -10
  55. package/src/ui/public/assets/AppVersionBadge-BVZKGETC.js +0 -2
  56. package/src/ui/public/assets/BranchSelector-DHWPodUA.js +0 -1
  57. package/src/ui/public/assets/CommitForm-OhIAOaq7.js +0 -6
  58. package/src/ui/public/assets/CommonDialog-BXR1wKBq.js +0 -1
  59. package/src/ui/public/assets/EditorView-8SLDYcaH.js +0 -37
  60. package/src/ui/public/assets/FileDiffViewer-CfMdcN2j.js +0 -15
  61. package/src/ui/public/assets/FlowOrchestrationWorkspace-D97DHgyy.js +0 -21
  62. package/src/ui/public/assets/IconButton-BburHRSR.js +0 -1
  63. package/src/ui/public/assets/LogList-gFCt4Zlu.js +0 -7
  64. package/src/ui/public/assets/MindmapView-N67x62Qk.js +0 -2
  65. package/src/ui/public/assets/MonitorView-BQr56ZSC.js +0 -1
  66. package/src/ui/public/assets/ProjectStartupButton-DuWf9Z0m.js +0 -1
  67. package/src/ui/public/assets/RemoteManagerDialog-DrR79IRj.js +0 -4
  68. package/src/ui/public/assets/RemoteRepoCard-BU6qOfoG.js +0 -7
  69. package/src/ui/public/assets/SourceMapView-Ba73NVs8.js +0 -3
  70. package/src/ui/public/assets/TemplateManager-C9CzSc6Y.js +0 -1
  71. package/src/ui/public/assets/UserInputNode-4m8zpMv9.js +0 -1
  72. package/src/ui/public/assets/WorkbenchView-B4F_TeL5.css +0 -1
  73. package/src/ui/public/assets/WorkbenchView-CcqEZ_GQ.js +0 -142
  74. package/src/ui/public/assets/configStore-Gzz89_z_.js +0 -1
  75. package/src/ui/public/assets/editor.worker-O-CH8JUO.js +0 -26
  76. package/src/ui/public/assets/element-plus-AaVXaSqv.js +0 -48
  77. package/src/ui/public/assets/gitStore--fzrTf_y.js +0 -6
  78. package/src/ui/public/assets/index-C7Ad5BGO.css +0 -1
  79. package/src/ui/public/assets/index-EJrJOx7s.js +0 -142
  80. package/src/ui/public/assets/json.worker-B4dEhy0e.js +0 -58
  81. package/src/ui/public/assets/previewSandbox-BOIpC6hW.js +0 -9
  82. package/src/ui/public/assets/toolsStore-B3bFcRXP.js +0 -1
  83. package/src/ui/public/assets/vue-flow-DwYB6Myr.js +0 -39
@@ -1 +0,0 @@
1
- import"./rolldown-runtime-C0FnF6B9.js";import{Cn as e,Rn as t,a as n,br as r,n as i,or as a,pr as o,t as s}from"./element-plus-AaVXaSqv.js";import{b as c,g as l,p as u}from"./vendor-viKaN257.js";import{a as d,n as f,r as p}from"./_plugin-vue_export-helper-DRfZJqP7.js";var m=`zen-gitsync-task-executor`,h=[{id:`claude`,name:`Claude Code`},{id:`opencode`,name:`OpenCode`},{id:`codex`,name:`Codex`}];function g(e){return h.some(t=>t.id===e)}function _(e){return h.find(t=>t.id===e)?.name||h[0].name}function v(){try{let e=localStorage.getItem(m);if(g(e))return e}catch{}return`claude`}function y(e){try{localStorage.setItem(m,e)}catch{}}var b={"zh-CN":i,"en-US":s};function x(e){return b[e]||i}o(),t();var S=c(`locale`,()=>{let t=r(p()),n=e(()=>x(t.value));async function i(e){d(e),t.value=e;let n=A();n.locale!==e&&await n.saveGeneralSettings({locale:e})}return{currentLocale:t,elementPlusLocale:n,changeLocale:i}}),C=`flowdash-md-preview-theme`,w=`data-md-theme`,T=`github`,E=Object.keys(u);function D(e,t){let n=RegExp(`(?:^|[;{\\n])\\s*${t}\\s*:\\s*([^;]+);`).exec(e);return n?n[1].trim():void 0}var O=E.map(e=>{let t=l(e)||``;return{value:e,bg:D(t,`background`),fg:D(t,`color`)}});function k(e){if(typeof document>`u`)return;let t=typeof e==`string`&&e.trim()?e.trim():T,n=l(t)??l(`github`),r=document.getElementById(C);if(!n){r?.remove();return}r||(r=document.createElement(`style`),r.id=C,document.head.appendChild(r)),r.setAttribute(w,t),r.textContent!==n&&(r.textContent=n)}o(),t();var A=c(`config`,()=>{let t=r(``),i=r([]),o=r([]),s=r([]),c=r([]),l=r([]),u=r([]),p=r([]),m=r([]),h=r(!1),_=r({enabled:!1,type:`command`,refId:``}),v=r(!1),y=r(!1),b=r(``),x=r(``),C=r(``),w=r(!0),D=r(!1),O=r(!0),A=r(!1),j=r(!1),M=r(!0),N=r(`light`),P=r(`zh-CN`),F=r([]),I=r(200),L=r(`claude`),R=r(!0),z=r(!0),B={layout:{leftRatio:.25,midRatio:.375,rightRatio:.375,topRatio:.5},layoutsByProject:{},aiDiffSummaryByProject:{},fileListViewMode:`list`,fileDiffSplitPercent:35,diffPreviewSplitPercent:55,commandConsole:{expanded:!0,useTerminal:!0,showTerminalSessions:!0,splitPercent:25},editorAutoSave:!0,fileTreeAutoRefresh:!0,editorSidebarWidth:220,mindmapDirs:[],mindmapDir:``,headerToolsHidden:[],pickerGlobalSearch:!1,markdownTheme:T,editorWorkspaceByProject:{}},V=r(JSON.parse(JSON.stringify(B))),H=r(!1);function ee(e){C.value=e||``}let te=e(()=>{let e=C.value;return e?V.value.aiDiffSummaryByProject[e]!==!1:!1});function ne(){let e=C.value;if(e&&V.value.layoutsByProject?.[e]){V.value.layout={...V.value.layoutsByProject[e]};return}}function U(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 re(){let e=document.documentElement.getAttribute(`data-theme`)===`dark`?`light`:`dark`;return N.value=e,U(e),$({theme:e}).catch(e=>{console.error(`保存主题切换结果失败:`,e)}),e}U(N.value);let W=e(()=>({defaultCommitMessage:t.value,descriptionTemplates:i.value,scopeTemplates:o.value,messageTemplates:s.value,commandTemplates:c.value,lockedFiles:l.value,customCommands:u.value,orchestrations:p.value,startupItems:m.value,startupAutoRun:h.value,afterQuickPushAction:_.value,currentDirectory:C.value})),ie=e(()=>!!(b.value&&b.value.trim()));async function ae(){try{let e=await fetch(`/api/config/open-file`,{method:`POST`,headers:{"Content-Type":`application/json`}}),t=await e.json().catch(()=>({}));return e.ok&&t?.success?(n.success(f(`@D50BB:已打开系统配置文件`)),!0):(n.error(`${f(`@D50BB:打开系统配置文件失败: `)}${t?.error||``}`),!1)}catch(e){return n.error(`${f(`@D50BB:打开系统配置文件失败: `)}${e.message}`),!1}}async function G(e=!1){if(!e&&y.value&&!v.value)return console.log(f(`@D50BB:使用缓存的配置信息`)),W.value;v.value=!0;try{v.value=!0,console.log(f(`@D50BB:加载配置信息...`));let e=await fetch(`/api/config/getConfig`),r=await e.json().catch(()=>({}));if(!e.ok||r&&r.success===!1){let e=String(r?.error||f(`@D50BB:加载配置失败`)),t=String(r?.configPath||``),i=t?`\n${f(`@D50BB:配置文件`)}: ${t}`:``;return n.error(`${f(`@D50BB:加载配置失败: `)}${e}${i}`),b.value=e,x.value=t,null}if(b.value=``,x.value=``,t.value=r.defaultCommitMessage||``,i.value=r.descriptionTemplates||[],o.value=r.scopeTemplates||[],s.value=r.messageTemplates||[],c.value=r.commandTemplates||[],l.value=r.lockedFiles||[],u.value=r.customCommands||[],p.value=r.orchestrations||[],m.value=(r.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})).filter(e=>e.id&&e.refId),h.value=r.startupAutoRun||!1,_.value={enabled:!!r?.afterQuickPushAction?.enabled,type:r?.afterQuickPushAction?.type===`workflow`?`workflow`:`command`,refId:String(r?.afterQuickPushAction?.refId||``).trim()},r.isStandardCommit!==void 0&&(O.value=!!r.isStandardCommit),r.skipHooks!==void 0&&(A.value=!!r.skipHooks),r.autoQuickPushOnEnter!==void 0&&(j.value=!!r.autoQuickPushOnEnter),r.autoSetDefaultMessage!==void 0&&(D.value=!!r.autoSetDefaultMessage),r.autoClosePushModal!==void 0&&(w.value=!!r.autoClosePushModal),r.pullBeforePush!==void 0&&(M.value=!!r.pullBeforePush),Array.isArray(r.models)&&(F.value=r.models),Number.isFinite(Number(r.aiMaxToolIterations))&&Number(r.aiMaxToolIterations)>0&&(I.value=Math.floor(Number(r.aiMaxToolIterations))),g(r.taskExecutor)&&(L.value=r.taskExecutor),typeof r.notifyOnTaskDone==`boolean`&&(R.value=r.notifyOnTaskDone),typeof r.notifySoundOnTaskDone==`boolean`&&(z.value=r.notifySoundOnTaskDone),r.theme&&[`light`,`dark`,`auto`].includes(r.theme)&&(N.value=r.theme,U(r.theme)),r.locale&&[`zh-CN`,`en-US`].includes(r.locale)){P.value=r.locale,d(r.locale);let e=S();e.currentLocale=r.locale}if(r.currentDirectory&&(C.value=r.currentDirectory),r.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,B.layout.leftRatio),midRatio:e(r,B.layout.midRatio),rightRatio:e(i,B.layout.rightRatio),topRatio:e(a,B.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||u===`true`,splitPercent:Number.isFinite(e)?Math.min(85,Math.max(15,e)):B.commandConsole.splitPercent}}let f=e(`zen-gitsync-editor-auto-save`);f!=null&&(t.editorAutoSave=f===`true`),Object.keys(t).length>0&&(V.value={...V.value,...t}),Object.keys(t).length>0&&X(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=r.ui.layoutsByProject&&typeof r.ui.layoutsByProject==`object`&&!Array.isArray(r.ui.layoutsByProject)?r.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):B.layout.leftRatio,midRatio:Number.isFinite(Number(e.midRatio))?Number(e.midRatio):B.layout.midRatio,rightRatio:Number.isFinite(Number(e.rightRatio))?Number(e.rightRatio):B.layout.rightRatio,topRatio:Number.isFinite(Number(e.topRatio))?Number(e.topRatio):B.layout.topRatio}}let n=r.ui.aiDiffSummaryByProject&&typeof r.ui.aiDiffSummaryByProject==`object`&&!Array.isArray(r.ui.aiDiffSummaryByProject)?r.ui.aiDiffSummaryByProject:{},i={};for(let[e,t]of Object.entries(n))typeof t==`boolean`&&(i[e]=t);let a=r.ui.editorWorkspaceByProject&&typeof r.ui.editorWorkspaceByProject==`object`&&!Array.isArray(r.ui.editorWorkspaceByProject)?r.ui.editorWorkspaceByProject:{},o={},s=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0):[];for(let[e,t]of Object.entries(a)){if(!t||typeof t!=`object`||Array.isArray(t))continue;let n=t,r=s(n.tabs).slice(0,40);o[e]={expandedDirs:s(n.expandedDirs).slice(0,200),tabs:r,activeTab:typeof n.activeTab==`string`&&r.includes(n.activeTab)?n.activeTab:null}}let c=typeof r.ui.mindmapDir==`string`?r.ui.mindmapDir.trim():``,l=[],u=new Set,d=Array.isArray(r.ui.mindmapDirs)?r.ui.mindmapDirs:[];for(let e of d){if(typeof e!=`string`)continue;let t=e.trim();if(!t)continue;let n=t.toLowerCase();u.has(n)||(u.add(n),l.push(t))}l.length===0&&c&&l.push(c);let f={...B.layout,...r.ui.layout||{}};V.value={layout:f,layoutsByProject:t,aiDiffSummaryByProject:i,fileListViewMode:r.ui.fileListViewMode===`tree`?`tree`:`list`,fileDiffSplitPercent:Number.isFinite(Number(r.ui.fileDiffSplitPercent))?Math.min(85,Math.max(15,Number(r.ui.fileDiffSplitPercent))):B.fileDiffSplitPercent,diffPreviewSplitPercent:Number.isFinite(Number(r.ui.diffPreviewSplitPercent))?Math.min(85,Math.max(25,Number(r.ui.diffPreviewSplitPercent))):B.diffPreviewSplitPercent,commandConsole:{expanded:typeof r.ui.commandConsole?.expanded==`boolean`?r.ui.commandConsole.expanded:B.commandConsole.expanded,useTerminal:typeof r.ui.commandConsole?.useTerminal==`boolean`?r.ui.commandConsole.useTerminal:B.commandConsole.useTerminal,showTerminalSessions:typeof r.ui.commandConsole?.showTerminalSessions==`boolean`?r.ui.commandConsole.showTerminalSessions:B.commandConsole.showTerminalSessions,splitPercent:Number.isFinite(Number(r.ui.commandConsole?.splitPercent))?Math.min(85,Math.max(15,Number(r.ui.commandConsole.splitPercent))):B.commandConsole.splitPercent},editorAutoSave:typeof r.ui.editorAutoSave==`boolean`?r.ui.editorAutoSave:B.editorAutoSave,fileTreeAutoRefresh:typeof r.ui.fileTreeAutoRefresh==`boolean`?r.ui.fileTreeAutoRefresh:B.fileTreeAutoRefresh,editorSidebarWidth:Number.isFinite(Number(r.ui.editorSidebarWidth))?Math.min(400,Math.max(140,Number(r.ui.editorSidebarWidth))):B.editorSidebarWidth,mindmapDirs:l,mindmapDir:c,headerToolsHidden:Array.isArray(r.ui.headerToolsHidden)?r.ui.headerToolsHidden.filter(e=>typeof e==`string`):[],pickerGlobalSearch:typeof r.ui.pickerGlobalSearch==`boolean`?r.ui.pickerGlobalSearch:B.pickerGlobalSearch,markdownTheme:typeof r.ui.markdownTheme==`string`&&E.includes(r.ui.markdownTheme)?r.ui.markdownTheme:B.markdownTheme,editorWorkspaceByProject:o}}return ne(),k(V.value.markdownTheme),H.value=!0,y.value=!0,console.log(f(`@D50BB:配置信息加载完成`)),W.value}catch(e){return console.error(`加载配置失败:`,e),n.error(`${f(`@D50BB:加载配置失败: `)}${e.message}`),b.value=e.message,null}finally{v.value=!1}}async function K(){try{await fetch(`/api/config/save-commit-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({isStandardCommit:O.value,skipHooks:A.value,autoQuickPushOnEnter:j.value,autoSetDefaultMessage:D.value,autoClosePushModal:w.value,pullBeforePush:M.value})})}catch(e){console.error(`保存提交设置失败:`,e)}}a([O,A,j,D,w,M],()=>{y.value&&K()});let q=null,J={};async function Y(){if(q&&=(clearTimeout(q),null),Object.keys(J).length===0)return;let e=J;J={};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 X(e,t={}){if(H.value){if(t.immediate){Object.assign(J,e),await Y();return}Object.assign(J,e),q&&clearTimeout(q),q=setTimeout(()=>{Y()},300)}}async function oe(){V.value.layout={...B.layout};let e=C.value;return e&&(V.value.layoutsByProject={...V.value.layoutsByProject,[e]:{...V.value.layout}}),await X({layoutsByProject:V.value.layoutsByProject},{immediate:!0}),V.value.layout}async function se(e){let t=C.value;t&&(V.value.aiDiffSummaryByProject={...V.value.aiDiffSummaryByProject,[t]:e},await X({aiDiffSummaryByProject:{[t]:e}},{immediate:!0}))}async function ce(e){if(!Number.isFinite(e))return;let t=Math.min(400,Math.max(140,e));V.value.editorSidebarWidth=t,await X({editorSidebarWidth:t})}function le(e){let t=C.value;if(!t)return;let n=e.tabs.slice(0,40);V.value.editorWorkspaceByProject={...V.value.editorWorkspaceByProject,[t]:{expandedDirs:e.expandedDirs.slice(0,200),tabs:n,activeTab:e.activeTab&&n.includes(e.activeTab)?e.activeTab:null}},X({editorWorkspaceByProject:V.value.editorWorkspaceByProject})}function ue(e){let t=e??C.value;return t?V.value.editorWorkspaceByProject[t]??null:null}a(()=>V.value.fileListViewMode,e=>{H.value&&X({fileListViewMode:e})}),a(()=>V.value.fileDiffSplitPercent,e=>{H.value&&X({fileDiffSplitPercent:e})}),a(()=>V.value.diffPreviewSplitPercent,e=>{H.value&&e!=null&&X({diffPreviewSplitPercent:e})}),a(()=>V.value.editorAutoSave,e=>{H.value&&X({editorAutoSave:e})}),a(()=>V.value.fileTreeAutoRefresh,e=>{H.value&&X({fileTreeAutoRefresh:e})}),a(()=>V.value.headerToolsHidden,e=>{H.value&&Array.isArray(e)&&X({headerToolsHidden:e})}),a(()=>V.value.mindmapDirs,e=>{H.value&&Array.isArray(e)&&X({mindmapDirs:e})}),a(()=>V.value.pickerGlobalSearch,e=>{H.value&&X({pickerGlobalSearch:e})});let de=e(()=>V.value.markdownTheme);async function fe(e){let t=E.includes(e)?e:B.markdownTheme;return V.value.markdownTheme=t,k(t),await X({markdownTheme:t},{immediate:!0}),t}a(()=>V.value.markdownTheme,e=>{H.value&&typeof e==`string`&&e&&(k(e),X({markdownTheme:e}))}),a(()=>V.value.layout,e=>{if(!H.value)return;let t=C.value;t&&(V.value.layoutsByProject={...V.value.layoutsByProject,[t]:e},X({layoutsByProject:V.value.layoutsByProject}))},{deep:!0}),a(()=>V.value.commandConsole,e=>{H.value&&X({commandConsole:e})},{deep:!0}),typeof window<`u`&&window.addEventListener(`beforeunload`,()=>{Y()});async function pe(e){try{let r=await(await fetch(`/api/config/saveDefaultMessage`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({defaultCommitMessage:e})})).json();return r.success?(t.value=e,n.success(f(`@D50BB:默认提交信息已保存`)),!0):(n.error(`${f(`@D50BB:保存失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存失败: `)}${e.message}`),!1}}async function me(e){try{let t=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 t.success?(_.value={enabled:!!e?.enabled,type:e?.type===`workflow`?`workflow`:`command`,refId:String(e?.refId||``).trim()},!0):(n.error(`保存提交后启动项失败: ${t.error}`),!1)}catch(e){return n.error(`保存提交后启动项失败: ${e.message}`),!1}}async function he(e,t){try{let r=await(await fetch(`/api/config/save-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:t})})).json();return r.success?(t===`description`?i.value.includes(e)||i.value.push(e):t===`scope`?o.value.includes(e)||o.value.push(e):t===`message`?s.value.includes(e)||s.value.push(e):t===`command`&&(c.value.includes(e)||c.value.push(e)),n.success(f(`@D50BB:模板已保存`)),!0):(n.error(`${f(`@D50BB:保存模板失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存模板失败: `)}${e.message}`),!1}}async function ge(e,t){try{let r=await(await fetch(`/api/config/delete-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:t})})).json();return r.success?(t===`description`?i.value=i.value.filter(t=>t!==e):t===`scope`?o.value=o.value.filter(t=>t!==e):t===`message`?s.value=s.value.filter(t=>t!==e):t===`command`&&(c.value=c.value.filter(t=>t!==e)),n.success(f(`@D50BB:模板已删除`)),!0):(n.error(`${f(`@D50BB:删除模板失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:删除模板失败: `)}${e.message}`),!1}}async function _e(e,t,r){try{let a=await(await fetch(`/api/config/update-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({oldTemplate:e,newTemplate:t,type:r})})).json();if(a.success){if(r===`description`){let n=i.value.indexOf(e);n!==-1&&(i.value[n]=t)}else if(r===`scope`){let n=o.value.indexOf(e);n!==-1&&(o.value[n]=t)}else if(r===`message`){let n=s.value.indexOf(e);n!==-1&&(s.value[n]=t)}else if(r===`command`){let n=c.value.indexOf(e);n!==-1&&(c.value[n]=t)}return n.success(f(`@D50BB:模板已更新`)),!0}return n.error(`${f(`@D50BB:更新模板失败: `)}${a.error}`),!1}catch(e){return n.error(`${f(`@D50BB:更新模板失败: `)}${e.message}`),!1}}async function ve(e,t){try{let r=await(await fetch(`/api/config/pin-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:t})})).json();return r.success?(t===`description`?(i.value=i.value.filter(t=>t!==e),i.value.unshift(e)):t===`scope`?(o.value=o.value.filter(t=>t!==e),o.value.unshift(e)):t===`message`?(s.value=s.value.filter(t=>t!==e),s.value.unshift(e)):t===`command`&&(c.value=c.value.filter(t=>t!==e),c.value.unshift(e)),n.success(f(`@D50BB:模板已置顶`)),!0):(n.error(`${f(`@D50BB:置顶模板失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:置顶模板失败: `)}${e.message}`),!1}}async function Z(){try{let e=await(await fetch(`/api/locked-files`)).json();return e.success?(l.value=e.lockedFiles||[],e.lockedFiles):(n.error(`${f(`@D50BB:加载锁定文件列表失败: `)}${e.error}`),[])}catch(e){return console.error(`加载锁定文件列表失败:`,e),n.error(`${f(`@D50BB:加载锁定文件列表失败: `)}${e.message}`),[]}}async function ye(e){try{let t=await(await fetch(`/api/lock-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return t.success?(await Z(),n.success(`${f(`@D50BB:文件已锁定: `)}${e}`),!0):(n.error(`${f(`@D50BB:锁定文件失败: `)}${t.error}`),!1)}catch(e){return console.error(`锁定文件失败:`,e),n.error(`${f(`@D50BB:锁定文件失败: `)}${e.message}`),!1}}async function be(e){try{let t=await(await fetch(`/api/unlock-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return t.success?(await Z(),n.success(`${f(`@D50BB:文件已解锁: `)}${e}`),!0):(n.error(`${f(`@D50BB:解锁文件失败: `)}${t.error}`),!1)}catch(e){return console.error(`解锁文件失败:`,e),n.error(`${f(`@D50BB:解锁文件失败: `)}${e.message}`),!1}}async function xe(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 Se(e){try{let t=await(await fetch(`/api/config/save-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({command:e})})).json();return t.success?(await G(!0),n.success(f(`@CMD01:命令已保存`)),!0):(n.error(`${f(`@CMD01:保存命令失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@CMD01:保存命令失败: `)}${e.message}`),!1}}async function Ce(e){try{let t=await(await fetch(`/api/config/delete-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return t.success?(await G(!0),n.success(f(`@CMD01:命令已删除`)),!0):(n.error(`${f(`@CMD01:删除命令失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@CMD01:删除命令失败: `)}${e.message}`),!1}}async function we(e,t){try{let r=await(await fetch(`/api/config/update-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e,command:t})})).json();return r.success?(await G(!0),n.success(f(`@CMD01:命令已更新`)),!0):(n.error(`${f(`@CMD01:更新命令失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@CMD01:更新命令失败: `)}${e.message}`),!1}}async function Q(e){try{let t=await(await fetch(`/api/config/pin-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return t.success?(await G(!0),!0):(n.error(t.error),!1)}catch(e){return n.error(e.message),!1}}async function Te(e){try{let t=await(await fetch(`/api/config/save-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({orchestration:e})})).json();return t.success?(await G(!0),n.success(f(`@ORCH:编排已保存`)),t.orchestration||null):(n.error(`${f(`@ORCH:保存编排失败: `)}${t.error}`),null)}catch(e){return n.error(`${f(`@ORCH:保存编排失败: `)}${e.message}`),null}}async function Ee(e){try{let t=await(await fetch(`/api/config/delete-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return t.success?(await G(!0),n.success(f(`@ORCH:编排已删除`)),!0):(n.error(`${f(`@ORCH:删除编排失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@ORCH:删除编排失败: `)}${e.message}`),!1}}async function De(e,t){try{let r=await(await fetch(`/api/config/update-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e,orchestration:t})})).json();return r.success?(await G(!0),n.success(f(`@ORCH:编排已更新`)),!0):(n.error(`${f(`@ORCH:更新编排失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@ORCH:更新编排失败: `)}${e.message}`),!1}}async function Oe(e,t){try{let r=await(await fetch(`/api/config/save-startup-items`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({startupItems:e,startupAutoRun:t===void 0?h.value:t})})).json();return r.success?(m.value=e,t!==void 0&&(h.value=t),!0):(n.error(`保存启动项失败: ${r.error}`),!1)}catch(e){return n.error(`保存启动项失败: ${e.message}`),!1}}async function ke(e){try{let t=await(await fetch(`/api/config/save-ai-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({aiMaxToolIterations:e.aiMaxToolIterations})})).json();return t.success?(I.value=Number(t.aiMaxToolIterations)||e.aiMaxToolIterations,!0):(n.error(`${f(`@D50BB:保存 AI 设置失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存 AI 设置失败: `)}${e.message}`),!1}}async function Ae(e){try{let t=await(await fetch(`/api/config/save-models`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({models:e})})).json();return t.success?(F.value=e,!0):(n.error(`${f(`@D50BB:保存模型失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存模型失败: `)}${e.message}`),!1}}async function $(e){try{let t=await(await fetch(`/api/config/save-general-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})).json();if(t.success){if(e.theme&&(N.value=e.theme,U(e.theme)),e.locale){P.value=e.locale,d(e.locale);let t=S();t.currentLocale=e.locale}return g(e.taskExecutor)&&(L.value=e.taskExecutor),typeof e.notifyOnTaskDone==`boolean`&&(R.value=e.notifyOnTaskDone),typeof e.notifySoundOnTaskDone==`boolean`&&(z.value=e.notifySoundOnTaskDone),!0}return n.error(`保存通用设置失败: ${t.error}`),!1}catch(e){return n.error(`保存通用设置失败: ${e.message}`),!1}}return{models:F,aiMaxToolIterations:I,taskExecutor:L,notifyOnTaskDone:R,notifySoundOnTaskDone:z,defaultCommitMessage:t,descriptionTemplates:i,scopeTemplates:o,messageTemplates:s,commandTemplates:c,lockedFiles:l,customCommands:u,orchestrations:p,startupItems:m,startupAutoRun:h,afterQuickPushAction:_,isLoading:v,isLoaded:y,configLoadError:b,configFilePath:x,hasConfigLoadError:ie,currentDirectory:C,config:W,autoClosePushModal:w,autoSetDefaultMessage:D,isStandardCommit:O,skipHooks:A,autoQuickPushOnEnter:j,pullBeforePush:M,theme:N,locale:P,ui:V,isUiLoaded:H,aiDiffSummaryEnabled:te,markdownTheme:de,loadConfig:G,setCurrentDirectory:ee,openSystemConfigFile:ae,saveTemplate:he,saveModels:Ae,saveAiSettings:ke,saveGeneralSettings:$,saveUiSettings:X,setAiDiffSummaryEnabled:se,setEditorSidebarWidth:ce,saveEditorWorkspace:le,getEditorWorkspace:ue,setMarkdownTheme:fe,resetUiLayout:oe,applyTheme:U,toggleTheme:re,saveDefaultMessage:pe,deleteTemplate:ge,updateTemplate:_e,pinTemplate:ve,loadLockedFiles:Z,lockFile:ye,unlockFile:be,isFileLocked:xe,saveCustomCommand:Se,deleteCustomCommand:Ce,updateCustomCommand:we,pinCustomCommand:Q,saveOrchestration:Te,deleteOrchestration:Ee,updateOrchestration:De,saveStartupItems:Oe,saveAfterQuickPushAction:me,saveCommitSettings:K}});export{v as a,_ as c,h as i,O as n,g as o,S as r,y as s,A as t};