zen-gitsync 2.17.10 → 2.17.11
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/package.json +2 -1
- package/src/ui/public/assets/AgentView-DJVwX8Er.js +5 -0
- package/src/ui/public/assets/AgentView-vvVhbIQ5.css +1 -0
- package/src/ui/public/assets/{AppVersionBadge-D5tJzJfa.css → AppVersionBadge-CJrDr7GV.css} +1 -1
- package/src/ui/public/assets/AppVersionBadge-rNwRlkEK.js +2 -0
- package/src/ui/public/assets/BranchSelector-B0eLkAdv.css +1 -0
- package/src/ui/public/assets/BranchSelector-D2JJINuw.js +1 -0
- package/src/ui/public/assets/CommitForm-CQ0K8Yy2.css +1 -0
- package/src/ui/public/assets/CommitForm-CayXdf3-.js +6 -0
- package/src/ui/public/assets/CommonDialog-DF5Vzvi8.js +1 -0
- package/src/ui/public/assets/CommonDialog-jP0E9mco.css +1 -0
- package/src/ui/public/assets/EditorView-Bv-3PWwF.js +1 -0
- package/src/ui/public/assets/EditorView-DZMLvQds.css +1 -0
- package/src/ui/public/assets/FileDiffViewer-B9EkuKdF.css +1 -0
- package/src/ui/public/assets/FileDiffViewer-CUsML3pW.js +15 -0
- package/src/ui/public/assets/FlowExecutionViewer-jNHI5zdm.css +1 -0
- package/src/ui/public/assets/FlowExecutionViewer-n07dZgnE.js +1 -0
- package/src/ui/public/assets/FlowOrchestrationWorkspace-CYGp-PqS.css +1 -0
- package/src/ui/public/assets/FlowOrchestrationWorkspace-CdG8HRux.js +21 -0
- package/src/ui/public/assets/IconButton-GxK-nCF7.js +1 -0
- package/src/ui/public/assets/IconButton-tjkOjzkC.css +1 -0
- package/src/ui/public/assets/LogList-BlJplIi1.css +1 -0
- package/src/ui/public/assets/LogList-CpcpXaIZ.js +7 -0
- package/src/ui/public/assets/MindmapView-BHVJ6OzY.js +2 -0
- package/src/ui/public/assets/MindmapView-BQTqx842.css +1 -0
- package/src/ui/public/assets/MonitorView-DetlFFXq.css +1 -0
- package/src/ui/public/assets/MonitorView-IpfJRJaK.js +1 -0
- package/src/ui/public/assets/ProjectStartupButton-DM2gYw48.js +1 -0
- package/src/ui/public/assets/ProjectStartupButton-QLPltCK5.css +1 -0
- package/src/ui/public/assets/RemoteManagerDialog-BauAeH2w.css +1 -0
- package/src/ui/public/assets/RemoteManagerDialog-DLPnI8Tr.js +4 -0
- package/src/ui/public/assets/RemoteRepoCard-CG-jARTe.css +1 -0
- package/src/ui/public/assets/RemoteRepoCard-D804CRwk.js +7 -0
- package/src/ui/public/assets/SourceMapView-CN4Hkyp4.css +1 -0
- package/src/ui/public/assets/SourceMapView-Ct8J5WA4.js +3 -0
- package/src/ui/public/assets/{SvgIcon-BQ6bR7l0.css → SvgIcon-CDNsk4-Q.css} +1 -1
- package/src/ui/public/assets/SvgIcon-DRYmw37Q.js +1 -0
- package/src/ui/public/assets/TemplateManager-BGEG9EkP.js +1 -0
- package/src/ui/public/assets/TemplateManager-DMuG4i3G.css +1 -0
- package/src/ui/public/assets/UserInputNode-BVgQkB2l.css +1 -0
- package/src/ui/public/assets/UserInputNode-DO4QsmCx.js +1 -0
- package/src/ui/public/assets/WorkbenchView-B1BJhWHi.css +1 -0
- package/src/ui/public/assets/WorkbenchView-D4herpOg.js +51 -0
- package/src/ui/public/assets/_plugin-vue_export-helper-uGHPMZWt.js +19 -0
- package/src/ui/public/assets/configStore-DAZtECRW.js +1 -0
- package/src/ui/public/assets/element-plus-BJ5_9fFh.js +48 -0
- package/src/ui/public/assets/element-plus-C1PloHQu.css +1 -0
- package/src/ui/public/assets/flow-mindmap-9rLOb4W_.js +139 -0
- package/src/ui/public/assets/{gitStore-DMEDMZMk.js → gitStore-BQhrNfOL.js} +4 -4
- package/src/ui/public/assets/{index-CW3xs-af.css → index-B-c23Usy.css} +1 -1
- package/src/ui/public/assets/index-BM9Kz0P0.js +87 -0
- package/src/ui/public/assets/office-docx-BrfnjjUo.js +32 -0
- package/src/ui/public/assets/{office-excel-D-uYLKaA.js → office-excel-C08VoWqf.js} +1 -1
- package/src/ui/public/assets/office-pptx-Cs69NVuQ.js +74 -0
- package/src/ui/public/assets/{previewSandbox-B6Ud9g6a.css → previewSandbox-CgdwPcuW.css} +1 -1
- package/src/ui/public/assets/previewSandbox-D2nklUXY.js +0 -0
- package/src/ui/public/assets/socket-io-BFqQXqAp.js +1 -0
- package/src/ui/public/assets/{toolsStore-CpImRUhI.js → toolsStore-DX4sCU-U.js} +1 -1
- package/src/ui/public/assets/{useThemeObserver-CG8k8U18.js → useThemeObserver-chduV3hr.js} +1 -1
- package/src/ui/public/assets/{vendor-BIgZEtkx.js → vendor-xs0vOPEn.js} +46 -39
- package/src/ui/public/assets/vue-flow-DvidrbDz.js +39 -0
- package/src/ui/public/index.html +25 -25
- package/src/ui/server/routes/remoteRepos.js +73 -19
- package/src/ui/server/routes/remoteRepos.test.js +111 -1
- package/src/ui/server/routes/workbench/agentSessionStore.js +2 -2
- package/src/ui/server/routes/workbench/envContext.test.js +8 -8
- package/src/ui/server/routes/workbench/index.js +32 -736
- package/src/ui/server/routes/workbench/instructionStore.js +3 -113
- package/src/ui/server/routes/workbench/jobStore.js +2 -4
- package/src/ui/server/routes/workbench/jobStore.test.js +1 -1
- package/src/ui/server/routes/workbench/jsonParse.js +6 -143
- package/src/ui/server/routes/workbench/orchestratorStore.js +1 -8
- package/src/ui/server/routes/workbench/projectRegistry.js +6 -29
- package/src/ui/server/routes/workbench/projectRegistry.test.js +33 -56
- package/src/ui/server/routes/workbench/projectTool.js +0 -1
- package/src/ui/server/routes/workbench/projectTool.test.js +2 -3
- package/src/ui/server/routes/workbench/shared.js +2 -7
- package/src/ui/server/routes/workbench/taskRunner.js +18 -180
- package/src/ui/server/routes/workbench.js +4 -5
- package/src/ui/public/assets/AgentView-BV15UtEF.css +0 -1
- package/src/ui/public/assets/AgentView-C-AJo7KS.js +0 -5
- package/src/ui/public/assets/AppVersionBadge-B6R6eN2N.js +0 -2
- package/src/ui/public/assets/BranchSelector-Cj3kMWON.js +0 -1
- package/src/ui/public/assets/BranchSelector-T_rJm-JY.css +0 -1
- package/src/ui/public/assets/CommitForm-DpXuFG-F.js +0 -6
- package/src/ui/public/assets/CommitForm-Oij8R6P-.css +0 -1
- package/src/ui/public/assets/CommonDialog-BLPHDsn0.js +0 -1
- package/src/ui/public/assets/CommonDialog-C_RjF9Mp.css +0 -1
- package/src/ui/public/assets/EditorView-B1OnoXXf.js +0 -1
- package/src/ui/public/assets/EditorView-BgA-_8WV.css +0 -1
- package/src/ui/public/assets/FileDiffViewer-B2_ghtbv.css +0 -1
- package/src/ui/public/assets/FileDiffViewer-BQl0JcWd.js +0 -14
- package/src/ui/public/assets/FlowExecutionViewer-B5kh7VxS.css +0 -1
- package/src/ui/public/assets/FlowExecutionViewer-BgEt5_Hz.js +0 -1
- package/src/ui/public/assets/FlowOrchestrationWorkspace-BAQDU9Jd.css +0 -1
- package/src/ui/public/assets/FlowOrchestrationWorkspace-CbLmsSF8.js +0 -21
- package/src/ui/public/assets/IconButton-CTwyZrv2.css +0 -1
- package/src/ui/public/assets/IconButton-aM3vaSIN.js +0 -1
- package/src/ui/public/assets/LogList-DlWwSZet.css +0 -1
- package/src/ui/public/assets/LogList-UjoVFZ-H.js +0 -7
- package/src/ui/public/assets/MindmapView-CS2t30Ko.css +0 -1
- package/src/ui/public/assets/MindmapView-D_04v0n4.js +0 -1
- package/src/ui/public/assets/MonitorView-BD1_uzq7.js +0 -1
- package/src/ui/public/assets/MonitorView-CphDOlQu.css +0 -1
- package/src/ui/public/assets/ProjectStartupButton-B7zvqRj_.css +0 -1
- package/src/ui/public/assets/ProjectStartupButton-BTYlVvzh.js +0 -1
- package/src/ui/public/assets/RemoteManagerDialog-20mpQMwu.js +0 -1
- package/src/ui/public/assets/RemoteManagerDialog-bpwaVAvX.css +0 -1
- package/src/ui/public/assets/RemoteRepoCard-CDykPlPj.css +0 -1
- package/src/ui/public/assets/RemoteRepoCard-DOrm17Xd.js +0 -1
- package/src/ui/public/assets/SourceMapView-DjYKJZLj.css +0 -1
- package/src/ui/public/assets/SourceMapView-nUU9bYPh.js +0 -3
- package/src/ui/public/assets/SvgIcon-LUynX3Iq.js +0 -1
- package/src/ui/public/assets/TemplateManager-Bo3Q7J9Y.js +0 -1
- package/src/ui/public/assets/TemplateManager-C0rm8xfC.css +0 -1
- package/src/ui/public/assets/UserInputNode-D5tSXiJz.js +0 -1
- package/src/ui/public/assets/UserInputNode-DDtvv9Iq.css +0 -1
- package/src/ui/public/assets/WorkbenchView-C_Gmzvj1.css +0 -1
- package/src/ui/public/assets/WorkbenchView-UGC334JL.js +0 -13
- package/src/ui/public/assets/_plugin-vue_export-helper-D-D9qkRz.js +0 -19
- package/src/ui/public/assets/configStore-BLRcYJdf.js +0 -1
- package/src/ui/public/assets/element-plus-BWbXh9mk.css +0 -1
- package/src/ui/public/assets/element-plus-DcZ-TVp6.js +0 -28
- package/src/ui/public/assets/flow-mindmap-D1VTkZh3.js +0 -139
- package/src/ui/public/assets/index-S0_gRyiO.js +0 -26
- package/src/ui/public/assets/office-docx-C0g5Oepv.js +0 -31
- package/src/ui/public/assets/office-pptx-De3fnc6M.js +0 -60
- package/src/ui/public/assets/previewSandbox-DXAxqDVu.js +0 -0
- package/src/ui/public/assets/socket-io-TBtw0msS.js +0 -1
- package/src/ui/public/assets/vue-flow-CPCFgenl.js +0 -39
- package/src/ui/server/routes/workbench/sessionStore.js +0 -126
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./rolldown-runtime-C0FnF6B9.js";import{a as e,ar as t,fr as n,n as r,t as i,wn as a,yr as o,zn as s}from"./element-plus-BJ5_9fFh.js";import{m as c}from"./vendor-xs0vOPEn.js";import{a as l,n as u,r as d}from"./_plugin-vue_export-helper-uGHPMZWt.js";var f={"zh-CN":r,"en-US":i};function p(e){return f[e]||r}n(),s();var m=c(`locale`,()=>{let e=o(d()),t=a(()=>p(e.value));async function n(t){l(t),e.value=t;let n=h();n.locale!==t&&await n.saveGeneralSettings({locale:t})}return{currentLocale:e,elementPlusLocale:t,changeLocale:n}});n(),s();var h=c(`config`,()=>{let n=o(``),r=o([]),i=o([]),s=o([]),c=o([]),d=o([]),f=o([]),p=o([]),h=o([]),g=o(!1),_=o({enabled:!1,type:`command`,refId:``}),v=o(!1),y=o(!1),b=o(``),x=o(``),S=o(``),C=o(!0),w=o(!1),T=o(!0),E=o(!1),D=o(!1),O=o(!0),k=o(`light`),A=o(`zh-CN`),j=o([]),M=o(200),N=o(`claude`),P=o(!1),F={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:!1,mindmapDir:``},I=o(JSON.parse(JSON.stringify(F))),L=o(!1);function R(e){S.value=e||``}let z=a(()=>{let e=S.value;return e?I.value.aiDiffSummaryByProject[e]!==!1:!1});function ee(){let e=S.value;if(e&&I.value.layoutsByProject?.[e]){I.value.layout={...I.value.layoutsByProject[e]};return}}function B(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 te(){let e=document.documentElement.getAttribute(`data-theme`)===`dark`?`light`:`dark`;return k.value=e,B(e),$({theme:e}).catch(e=>{console.error(`保存主题切换结果失败:`,e)}),e}B(k.value);let V=a(()=>({defaultCommitMessage:n.value,descriptionTemplates:r.value,scopeTemplates:i.value,messageTemplates:s.value,commandTemplates:c.value,lockedFiles:d.value,customCommands:f.value,orchestrations:p.value,startupItems:h.value,startupAutoRun:g.value,afterQuickPushAction:_.value,currentDirectory:S.value})),ne=a(()=>!!(b.value&&b.value.trim()));async function H(){try{let t=await fetch(`/api/config/open-file`,{method:`POST`,headers:{"Content-Type":`application/json`}}),n=await t.json().catch(()=>({}));return t.ok&&n?.success?(e.success(u(`@D50BB:已打开系统配置文件`)),!0):(e.error(`${u(`@D50BB:打开系统配置文件失败: `)}${n?.error||``}`),!1)}catch(t){return e.error(`${u(`@D50BB:打开系统配置文件失败: `)}${t.message}`),!1}}async function U(t=!1){if(!t&&y.value&&!v.value)return console.log(u(`@D50BB:使用缓存的配置信息`)),V.value;v.value=!0;try{v.value=!0,console.log(u(`@D50BB:加载配置信息...`));let t=await fetch(`/api/config/getConfig`),a=await t.json().catch(()=>({}));if(!t.ok||a&&a.success===!1){let t=String(a?.error||u(`@D50BB:加载配置失败`)),n=String(a?.configPath||``),r=n?`\n${u(`@D50BB:配置文件`)}: ${n}`:``;return e.error(`${u(`@D50BB:加载配置失败: `)}${t}${r}`),b.value=t,x.value=n,null}if(b.value=``,x.value=``,n.value=a.defaultCommitMessage||``,r.value=a.descriptionTemplates||[],i.value=a.scopeTemplates||[],s.value=a.messageTemplates||[],c.value=a.commandTemplates||[],d.value=a.lockedFiles||[],f.value=a.customCommands||[],p.value=a.orchestrations||[],h.value=(a.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),g.value=a.startupAutoRun||!1,_.value={enabled:!!a?.afterQuickPushAction?.enabled,type:a?.afterQuickPushAction?.type===`workflow`?`workflow`:`command`,refId:String(a?.afterQuickPushAction?.refId||``).trim()},a.isStandardCommit!==void 0&&(T.value=!!a.isStandardCommit),a.skipHooks!==void 0&&(E.value=!!a.skipHooks),a.autoQuickPushOnEnter!==void 0&&(D.value=!!a.autoQuickPushOnEnter),a.autoSetDefaultMessage!==void 0&&(w.value=!!a.autoSetDefaultMessage),a.autoClosePushModal!==void 0&&(C.value=!!a.autoClosePushModal),a.pullBeforePush!==void 0&&(O.value=!!a.pullBeforePush),Array.isArray(a.models)&&(j.value=a.models),Number.isFinite(Number(a.aiMaxToolIterations))&&Number(a.aiMaxToolIterations)>0&&(M.value=Math.floor(Number(a.aiMaxToolIterations))),(a.taskExecutor===`claude`||a.taskExecutor===`opencode`)&&(N.value=a.taskExecutor),typeof a.notifyOnTaskDone==`boolean`&&(P.value=a.notifyOnTaskDone),a.theme&&[`light`,`dark`,`auto`].includes(a.theme)&&(k.value=a.theme,B(a.theme)),a.locale&&[`zh-CN`,`en-US`].includes(a.locale)){A.value=a.locale,l(a.locale);let e=m();e.currentLocale=a.locale}if(a.currentDirectory&&(S.value=a.currentDirectory),a.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,F.layout.leftRatio),midRatio:e(r,F.layout.midRatio),rightRatio:e(i,F.layout.rightRatio),topRatio:e(a,F.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)):F.commandConsole.splitPercent}}let f=e(`zen-gitsync-editor-auto-save`);f!=null&&(t.editorAutoSave=f===`true`),Object.keys(t).length>0&&(I.value={...I.value,...t}),Object.keys(t).length>0&&J(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=a.ui.layoutsByProject&&typeof a.ui.layoutsByProject==`object`&&!Array.isArray(a.ui.layoutsByProject)?a.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):F.layout.leftRatio,midRatio:Number.isFinite(Number(e.midRatio))?Number(e.midRatio):F.layout.midRatio,rightRatio:Number.isFinite(Number(e.rightRatio))?Number(e.rightRatio):F.layout.rightRatio,topRatio:Number.isFinite(Number(e.topRatio))?Number(e.topRatio):F.layout.topRatio}}let n=a.ui.aiDiffSummaryByProject&&typeof a.ui.aiDiffSummaryByProject==`object`&&!Array.isArray(a.ui.aiDiffSummaryByProject)?a.ui.aiDiffSummaryByProject:{},r={};for(let[e,t]of Object.entries(n))typeof t==`boolean`&&(r[e]=t);let i={...F.layout,...a.ui.layout||{}};I.value={layout:i,layoutsByProject:t,aiDiffSummaryByProject:r,fileListViewMode:a.ui.fileListViewMode===`tree`?`tree`:`list`,fileDiffSplitPercent:Number.isFinite(Number(a.ui.fileDiffSplitPercent))?Math.min(85,Math.max(15,Number(a.ui.fileDiffSplitPercent))):F.fileDiffSplitPercent,diffPreviewSplitPercent:Number.isFinite(Number(a.ui.diffPreviewSplitPercent))?Math.min(85,Math.max(25,Number(a.ui.diffPreviewSplitPercent))):F.diffPreviewSplitPercent,commandConsole:{expanded:typeof a.ui.commandConsole?.expanded==`boolean`?a.ui.commandConsole.expanded:F.commandConsole.expanded,useTerminal:typeof a.ui.commandConsole?.useTerminal==`boolean`?a.ui.commandConsole.useTerminal:F.commandConsole.useTerminal,showTerminalSessions:typeof a.ui.commandConsole?.showTerminalSessions==`boolean`?a.ui.commandConsole.showTerminalSessions:F.commandConsole.showTerminalSessions,splitPercent:Number.isFinite(Number(a.ui.commandConsole?.splitPercent))?Math.min(85,Math.max(15,Number(a.ui.commandConsole.splitPercent))):F.commandConsole.splitPercent},editorAutoSave:typeof a.ui.editorAutoSave==`boolean`?a.ui.editorAutoSave:F.editorAutoSave,mindmapDir:typeof a.ui.mindmapDir==`string`?a.ui.mindmapDir:F.mindmapDir}}return ee(),L.value=!0,y.value=!0,console.log(u(`@D50BB:配置信息加载完成`)),V.value}catch(t){return console.error(`加载配置失败:`,t),e.error(`${u(`@D50BB:加载配置失败: `)}${t.message}`),b.value=t.message,null}finally{v.value=!1}}async function W(){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)}}t([T,E,D,w,C,O],()=>{y.value&&W()});let G=null,K={};async function q(){if(G&&=(clearTimeout(G),null),Object.keys(K).length===0)return;let e=K;K={};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 J(e,t={}){if(L.value){if(t.immediate){Object.assign(K,e),await q();return}Object.assign(K,e),G&&clearTimeout(G),G=setTimeout(()=>{q()},300)}}async function Y(){I.value.layout={...F.layout};let e=S.value;return e&&(I.value.layoutsByProject={...I.value.layoutsByProject,[e]:{...I.value.layout}}),await J({layoutsByProject:I.value.layoutsByProject},{immediate:!0}),I.value.layout}async function X(e){let t=S.value;t&&(I.value.aiDiffSummaryByProject={...I.value.aiDiffSummaryByProject,[t]:e},await J({aiDiffSummaryByProject:{[t]:e}},{immediate:!0}))}t(()=>I.value.fileListViewMode,e=>{L.value&&J({fileListViewMode:e})}),t(()=>I.value.fileDiffSplitPercent,e=>{L.value&&J({fileDiffSplitPercent:e})}),t(()=>I.value.diffPreviewSplitPercent,e=>{L.value&&e!=null&&J({diffPreviewSplitPercent:e})}),t(()=>I.value.editorAutoSave,e=>{L.value&&J({editorAutoSave:e})}),t(()=>I.value.layout,e=>{if(!L.value)return;let t=S.value;t&&(I.value.layoutsByProject={...I.value.layoutsByProject,[t]:e},J({layoutsByProject:I.value.layoutsByProject}))},{deep:!0}),t(()=>I.value.commandConsole,e=>{L.value&&J({commandConsole:e})},{deep:!0}),typeof window<`u`&&window.addEventListener(`beforeunload`,()=>{q()});async function re(t){try{let r=await(await fetch(`/api/config/saveDefaultMessage`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({defaultCommitMessage:t})})).json();return r.success?(n.value=t,e.success(u(`@D50BB:默认提交信息已保存`)),!0):(e.error(`${u(`@D50BB:保存失败: `)}${r.error}`),!1)}catch(t){return e.error(`${u(`@D50BB:保存失败: `)}${t.message}`),!1}}async function ie(t){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:!!t?.enabled,type:t?.type===`workflow`?`workflow`:`command`,refId:String(t?.refId||``).trim()}})})).json();return n.success?(_.value={enabled:!!t?.enabled,type:t?.type===`workflow`?`workflow`:`command`,refId:String(t?.refId||``).trim()},!0):(e.error(`保存提交后启动项失败: ${n.error}`),!1)}catch(t){return e.error(`保存提交后启动项失败: ${t.message}`),!1}}async function ae(t,n){try{let a=await(await fetch(`/api/config/save-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:t,type:n})})).json();return a.success?(n===`description`?r.value.includes(t)||r.value.push(t):n===`scope`?i.value.includes(t)||i.value.push(t):n===`message`?s.value.includes(t)||s.value.push(t):n===`command`&&(c.value.includes(t)||c.value.push(t)),e.success(u(`@D50BB:模板已保存`)),!0):(e.error(`${u(`@D50BB:保存模板失败: `)}${a.error}`),!1)}catch(t){return e.error(`${u(`@D50BB:保存模板失败: `)}${t.message}`),!1}}async function oe(t,n){try{let a=await(await fetch(`/api/config/delete-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:t,type:n})})).json();return a.success?(n===`description`?r.value=r.value.filter(e=>e!==t):n===`scope`?i.value=i.value.filter(e=>e!==t):n===`message`?s.value=s.value.filter(e=>e!==t):n===`command`&&(c.value=c.value.filter(e=>e!==t)),e.success(u(`@D50BB:模板已删除`)),!0):(e.error(`${u(`@D50BB:删除模板失败: `)}${a.error}`),!1)}catch(t){return e.error(`${u(`@D50BB:删除模板失败: `)}${t.message}`),!1}}async function se(t,n,a){try{let o=await(await fetch(`/api/config/update-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({oldTemplate:t,newTemplate:n,type:a})})).json();if(o.success){if(a===`description`){let e=r.value.indexOf(t);e!==-1&&(r.value[e]=n)}else if(a===`scope`){let e=i.value.indexOf(t);e!==-1&&(i.value[e]=n)}else if(a===`message`){let e=s.value.indexOf(t);e!==-1&&(s.value[e]=n)}else if(a===`command`){let e=c.value.indexOf(t);e!==-1&&(c.value[e]=n)}return e.success(u(`@D50BB:模板已更新`)),!0}return e.error(`${u(`@D50BB:更新模板失败: `)}${o.error}`),!1}catch(t){return e.error(`${u(`@D50BB:更新模板失败: `)}${t.message}`),!1}}async function ce(t,n){try{let a=await(await fetch(`/api/config/pin-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:t,type:n})})).json();return a.success?(n===`description`?(r.value=r.value.filter(e=>e!==t),r.value.unshift(t)):n===`scope`?(i.value=i.value.filter(e=>e!==t),i.value.unshift(t)):n===`message`?(s.value=s.value.filter(e=>e!==t),s.value.unshift(t)):n===`command`&&(c.value=c.value.filter(e=>e!==t),c.value.unshift(t)),e.success(u(`@D50BB:模板已置顶`)),!0):(e.error(`${u(`@D50BB:置顶模板失败: `)}${a.error}`),!1)}catch(t){return e.error(`${u(`@D50BB:置顶模板失败: `)}${t.message}`),!1}}async function Z(){try{let t=await(await fetch(`/api/locked-files`)).json();return t.success?(d.value=t.lockedFiles||[],t.lockedFiles):(e.error(`${u(`@D50BB:加载锁定文件列表失败: `)}${t.error}`),[])}catch(t){return console.error(`加载锁定文件列表失败:`,t),e.error(`${u(`@D50BB:加载锁定文件列表失败: `)}${t.message}`),[]}}async function le(t){try{let n=await(await fetch(`/api/lock-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:t})})).json();return n.success?(await Z(),e.success(`${u(`@D50BB:文件已锁定: `)}${t}`),!0):(e.error(`${u(`@D50BB:锁定文件失败: `)}${n.error}`),!1)}catch(t){return console.error(`锁定文件失败:`,t),e.error(`${u(`@D50BB:锁定文件失败: `)}${t.message}`),!1}}async function ue(t){try{let n=await(await fetch(`/api/unlock-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:t})})).json();return n.success?(await Z(),e.success(`${u(`@D50BB:文件已解锁: `)}${t}`),!0):(e.error(`${u(`@D50BB:解锁文件失败: `)}${n.error}`),!1)}catch(t){return console.error(`解锁文件失败:`,t),e.error(`${u(`@D50BB:解锁文件失败: `)}${t.message}`),!1}}async function de(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 fe(t){try{let n=await(await fetch(`/api/config/save-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({command:t})})).json();return n.success?(await U(!0),e.success(u(`@CMD01:命令已保存`)),!0):(e.error(`${u(`@CMD01:保存命令失败: `)}${n.error}`),!1)}catch(t){return e.error(`${u(`@CMD01:保存命令失败: `)}${t.message}`),!1}}async function Q(t){try{let n=await(await fetch(`/api/config/delete-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:t})})).json();return n.success?(await U(!0),e.success(u(`@CMD01:命令已删除`)),!0):(e.error(`${u(`@CMD01:删除命令失败: `)}${n.error}`),!1)}catch(t){return e.error(`${u(`@CMD01:删除命令失败: `)}${t.message}`),!1}}async function pe(t,n){try{let r=await(await fetch(`/api/config/update-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:t,command:n})})).json();return r.success?(await U(!0),e.success(u(`@CMD01:命令已更新`)),!0):(e.error(`${u(`@CMD01:更新命令失败: `)}${r.error}`),!1)}catch(t){return e.error(`${u(`@CMD01:更新命令失败: `)}${t.message}`),!1}}async function me(t){try{let n=await(await fetch(`/api/config/pin-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:t})})).json();return n.success?(await U(!0),!0):(e.error(n.error),!1)}catch(t){return e.error(t.message),!1}}async function he(t){try{let n=await(await fetch(`/api/config/save-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({orchestration:t})})).json();return n.success?(await U(!0),e.success(u(`@ORCH:编排已保存`)),n.orchestration||null):(e.error(`${u(`@ORCH:保存编排失败: `)}${n.error}`),null)}catch(t){return e.error(`${u(`@ORCH:保存编排失败: `)}${t.message}`),null}}async function ge(t){try{let n=await(await fetch(`/api/config/delete-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:t})})).json();return n.success?(await U(!0),e.success(u(`@ORCH:编排已删除`)),!0):(e.error(`${u(`@ORCH:删除编排失败: `)}${n.error}`),!1)}catch(t){return e.error(`${u(`@ORCH:删除编排失败: `)}${t.message}`),!1}}async function _e(t,n){try{let r=await(await fetch(`/api/config/update-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:t,orchestration:n})})).json();return r.success?(await U(!0),e.success(u(`@ORCH:编排已更新`)),!0):(e.error(`${u(`@ORCH:更新编排失败: `)}${r.error}`),!1)}catch(t){return e.error(`${u(`@ORCH:更新编排失败: `)}${t.message}`),!1}}async function ve(t,n){try{let r=await(await fetch(`/api/config/save-startup-items`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({startupItems:t,startupAutoRun:n===void 0?g.value:n})})).json();return r.success?(h.value=t,n!==void 0&&(g.value=n),!0):(e.error(`保存启动项失败: ${r.error}`),!1)}catch(t){return e.error(`保存启动项失败: ${t.message}`),!1}}async function ye(t){try{let n=await(await fetch(`/api/config/save-ai-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({aiMaxToolIterations:t.aiMaxToolIterations})})).json();return n.success?(M.value=Number(n.aiMaxToolIterations)||t.aiMaxToolIterations,!0):(e.error(`${u(`@D50BB:保存 AI 设置失败: `)}${n.error}`),!1)}catch(t){return e.error(`${u(`@D50BB:保存 AI 设置失败: `)}${t.message}`),!1}}async function be(t){try{let n=await(await fetch(`/api/config/save-models`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({models:t})})).json();return n.success?(j.value=t,!0):(e.error(`${u(`@D50BB:保存模型失败: `)}${n.error}`),!1)}catch(t){return e.error(`${u(`@D50BB:保存模型失败: `)}${t.message}`),!1}}async function $(t){try{let n=await(await fetch(`/api/config/save-general-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})).json();if(n.success){if(t.theme&&(k.value=t.theme,B(t.theme)),t.locale){A.value=t.locale,l(t.locale);let e=m();e.currentLocale=t.locale}return(t.taskExecutor===`claude`||t.taskExecutor===`opencode`)&&(N.value=t.taskExecutor),typeof t.notifyOnTaskDone==`boolean`&&(P.value=t.notifyOnTaskDone),!0}return e.error(`保存通用设置失败: ${n.error}`),!1}catch(t){return e.error(`保存通用设置失败: ${t.message}`),!1}}return{models:j,aiMaxToolIterations:M,taskExecutor:N,notifyOnTaskDone:P,defaultCommitMessage:n,descriptionTemplates:r,scopeTemplates:i,messageTemplates:s,commandTemplates:c,lockedFiles:d,customCommands:f,orchestrations:p,startupItems:h,startupAutoRun:g,afterQuickPushAction:_,isLoading:v,isLoaded:y,configLoadError:b,configFilePath:x,hasConfigLoadError:ne,currentDirectory:S,config:V,autoClosePushModal:C,autoSetDefaultMessage:w,isStandardCommit:T,skipHooks:E,autoQuickPushOnEnter:D,pullBeforePush:O,theme:k,locale:A,ui:I,isUiLoaded:L,aiDiffSummaryEnabled:z,loadConfig:U,setCurrentDirectory:R,openSystemConfigFile:H,saveTemplate:ae,saveModels:be,saveAiSettings:ye,saveGeneralSettings:$,saveUiSettings:J,setAiDiffSummaryEnabled:X,resetUiLayout:Y,applyTheme:B,toggleTheme:te,saveDefaultMessage:re,deleteTemplate:oe,updateTemplate:se,pinTemplate:ce,loadLockedFiles:Z,lockFile:le,unlockFile:ue,isFileLocked:de,saveCustomCommand:fe,deleteCustomCommand:Q,updateCustomCommand:pe,pinCustomCommand:me,saveOrchestration:he,deleteOrchestration:ge,updateOrchestration:_e,saveStartupItems:ve,saveAfterQuickPushAction:ie,saveCommitSettings:W}});export{m as n,h as t};
|