zen-gitsync 2.18.27 → 2.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/package.json +6 -2
  2. package/src/cli/ai/tools.js +71 -8
  3. package/src/cli/ai/webSearch.js +108 -21
  4. package/src/cli/peer.js +272 -0
  5. package/src/config.js +14 -4
  6. package/src/gitCommit.js +34 -1
  7. package/src/paths.js +6 -0
  8. package/src/peer/client.js +165 -0
  9. package/src/peer/localAsk.js +130 -0
  10. package/src/peer/server.js +183 -0
  11. package/src/peer/store.js +292 -0
  12. package/src/ui/public/assets/{AgentView-DunbYHMn.js → AgentView-BtnAYtte.js} +1 -1
  13. package/src/ui/public/assets/AppVersionBadge-BcXo-yuu.js +2 -0
  14. package/src/ui/public/assets/{BranchSelector-BKA3fL9E.js → BranchSelector-5t-T3FB6.js} +1 -1
  15. package/src/ui/public/assets/{CommitForm-CVPGpci8.js → CommitForm-BMfp3Eqh.js} +1 -1
  16. package/src/ui/public/assets/{CommonDialog-ZwJlTF5A.js → CommonDialog-BiF2fMgr.js} +1 -1
  17. package/src/ui/public/assets/{EditorView-DDzACKq1.js → EditorView-CtmZ7RZp.js} +1 -1
  18. package/src/ui/public/assets/{FlowExecutionViewer-BJOiCa6S.js → FlowExecutionViewer-D2lchSo7.js} +1 -1
  19. package/src/ui/public/assets/{FlowOrchestrationWorkspace-BDnAdRr9.js → FlowOrchestrationWorkspace-BY2zLwWB.js} +1 -1
  20. package/src/ui/public/assets/{LogList-DbGz7_dy.js → LogList-DTfAGnlt.js} +1 -1
  21. package/src/ui/public/assets/{MindmapView-mbTFeVj8.js → MindmapView-DArneR4u.js} +1 -1
  22. package/src/ui/public/assets/{MonitorView-O7I40RiB.js → MonitorView-BQvMyjEj.js} +1 -1
  23. package/src/ui/public/assets/{ProjectManagerView-D1NVbIOW.js → ProjectManagerView-BRUyrHfg.js} +1 -1
  24. package/src/ui/public/assets/{ProjectStartupButton-C21zy3Bg.js → ProjectStartupButton-D0f8OAb-.js} +1 -1
  25. package/src/ui/public/assets/{RemoteManagerDialog-CpSrItn2.js → RemoteManagerDialog-DXDXCfyD.js} +1 -1
  26. package/src/ui/public/assets/{RemoteRepoCard-CXDXPJK2.js → RemoteRepoCard-BRnjC6vm.js} +1 -1
  27. package/src/ui/public/assets/{SourceMapView-C9qTeaOC.js → SourceMapView-B6xgG5mi.js} +1 -1
  28. package/src/ui/public/assets/{SvgIcon-BmXhx-vA.js → SvgIcon-GLj_3KcS.js} +1 -1
  29. package/src/ui/public/assets/{UserInputNode-i7ER8ZCn.js → UserInputNode-C6Z6Kys_.js} +1 -1
  30. package/src/ui/public/assets/{WorkbenchView-pZz9ykZT.js → WorkbenchView-B2EUXleS.js} +1 -1
  31. package/src/ui/public/assets/_plugin-vue_export-helper-DaO48JOV.js +19 -0
  32. package/src/ui/public/assets/configStore-B_2ifbl_.js +1 -0
  33. package/src/ui/public/assets/{index-DW-2cjNW.js → index-DUzH5036.js} +63 -60
  34. package/src/ui/public/assets/index-zdGFM_7W.css +1 -0
  35. package/src/ui/public/assets/{relativeTime-DsG6UERK.js → relativeTime-DzYQUHQo.js} +1 -1
  36. package/src/ui/public/assets/{taskExecutionExport-C3dV5cuE.js → taskExecutionExport-C3vFixdJ.js} +1 -1
  37. package/src/ui/public/assets/{useWorkbenchProjects-B6k5mmVC.js → useWorkbenchProjects-0fWZsDRX.js} +1 -1
  38. package/src/ui/public/index.html +6 -6
  39. package/src/ui/server/index.js +130 -10
  40. package/src/ui/server/routes/config.js +1317 -1316
  41. package/src/ui/server/routes/peerSettings.js +164 -0
  42. package/src/ui/server/routes/workbench/agentChat.js +811 -811
  43. package/src/ui/server/routes/workbench/agentRoutes.js +9 -0
  44. package/src/ui/server/utils/ensureHub.js +101 -0
  45. package/src/ui/server/utils/instanceRegistry.js +8 -3
  46. package/src/ui/server/utils/peerRuntime.js +77 -0
  47. package/src/ui/server/utils/startServerOnAvailablePort.js +6 -0
  48. package/src/ui/public/assets/AppVersionBadge-9B4b0hbP.js +0 -2
  49. package/src/ui/public/assets/_plugin-vue_export-helper-D6ACRIgd.js +0 -19
  50. package/src/ui/public/assets/configStore-BQoByr2v.js +0 -1
  51. package/src/ui/public/assets/index-B9mqQJGC.css +0 -1
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-C0FnF6B9.js";import{In as e,gr as t,i as n,lr as r,n as i,nr as a,t as o,xn as s}from"./element-plus-CosPN4uA.js";import{S as c,h as l,v as u}from"./vendor-DSY591Nv.js";import{a as d,n as f,r as p}from"./_plugin-vue_export-helper-DaO48JOV.js";var m=[{id:`claude`,name:`Claude Code`},{id:`opencode`,name:`OpenCode`},{id:`codex`,name:`Codex`},{id:`codebuddy`,name:`CodeBuddy Code`},{id:`pi`,name:`Pi Agent`},{id:`codearts`,name:`CodeArts 码道`}];function h(e){return m.some(t=>t.id===e)}function g(e){return m.find(t=>t.id===e)?.name||m[0].name}function ee(e){if(!Array.isArray(e))return[];let t=new Set;for(let n of e)if(h(n)&&!t.has(n)&&(t.add(n),t.size>=m.length))break;return[...t]}function _(e,t,n){for(let n of e)if(t[n])return n;return n}var te=[`git`,`console`,`editor`,`source-map`,`workbench`,`projects`,`monitor`,`mindmap`],v=[{id:``,labelKey:`@42BB9:通用(兜底)`},{id:`git`,labelKey:`@ACTBAR:Git`},{id:`console`,labelKey:`@ACTBAR:控制台`},{id:`editor`,labelKey:`@ACTBAR:编辑器`},{id:`source-map`,labelKey:`@ACTBAR:源码地图`},{id:`workbench`,labelKey:`@ACTBAR:工作台`},{id:`projects`,labelKey:`@ACTBAR:项目管理`},{id:`monitor`,labelKey:`@ACTBAR:系统监控`},{id:`mindmap`,labelKey:`@ACTBAR:思维导图`}];function y(){return[{id:`p1`,label:f(`@AGENT:查看项目结构`),prompt:f(`@AGENT:prompt_p1`)},{id:`p2`,label:f(`@AGENT:分析代码质量`),prompt:f(`@AGENT:prompt_p2`)},{id:`p3`,label:f(`@AGENT:帮我提交代码`),prompt:f(`@AGENT:prompt_p3`)},{id:`p4`,label:f(`@AGENT:Git 状态检查`),prompt:f(`@AGENT:prompt_p4`)},{id:`p5`,label:f(`@AGENT:帮我启动项目`),prompt:f(`@AGENT:prompt_p5`)}]}function b(e,t,n){let r=t&&n&&typeof n==`object`?n[t]:null;if(Array.isArray(r)&&r.length>0)return r;if(Array.isArray(e)&&e.length>0)return e;let i=C(t);return i.length>0?i:y()}function x(e){if(!e)return y();let t=C(e);return t.length>0?t:y()}var S={git:()=>[{id:`git-1`,label:f(`@AGENT:vp_git_1`),prompt:f(`@AGENT:vq_git_1`)},{id:`git-2`,label:f(`@AGENT:vp_git_2`),prompt:f(`@AGENT:vq_git_2`)},{id:`git-3`,label:f(`@AGENT:vp_git_3`),prompt:f(`@AGENT:vq_git_3`)},{id:`git-4`,label:f(`@AGENT:vp_git_4`),prompt:f(`@AGENT:vq_git_4`)}],console:()=>[{id:`console-1`,label:f(`@AGENT:vp_console_1`),prompt:f(`@AGENT:vq_console_1`)},{id:`console-2`,label:f(`@AGENT:vp_console_2`),prompt:f(`@AGENT:vq_console_2`)},{id:`console-3`,label:f(`@AGENT:vp_console_3`),prompt:f(`@AGENT:vq_console_3`)},{id:`console-4`,label:f(`@AGENT:vp_console_4`),prompt:f(`@AGENT:vq_console_4`)}],editor:()=>[{id:`editor-1`,label:f(`@AGENT:vp_editor_1`),prompt:f(`@AGENT:vq_editor_1`)},{id:`editor-2`,label:f(`@AGENT:vp_editor_2`),prompt:f(`@AGENT:vq_editor_2`)},{id:`editor-3`,label:f(`@AGENT:vp_editor_3`),prompt:f(`@AGENT:vq_editor_3`)},{id:`editor-4`,label:f(`@AGENT:vp_editor_4`),prompt:f(`@AGENT:vq_editor_4`)}],"source-map":()=>[{id:`source-map-1`,label:f(`@AGENT:vp_source-map_1`),prompt:f(`@AGENT:vq_source-map_1`)},{id:`source-map-2`,label:f(`@AGENT:vp_source-map_2`),prompt:f(`@AGENT:vq_source-map_2`)},{id:`source-map-3`,label:f(`@AGENT:vp_source-map_3`),prompt:f(`@AGENT:vq_source-map_3`)},{id:`source-map-4`,label:f(`@AGENT:vp_source-map_4`),prompt:f(`@AGENT:vq_source-map_4`)}],mindmap:()=>[{id:`mindmap-1`,label:f(`@AGENT:vp_mindmap_1`),prompt:f(`@AGENT:vq_mindmap_1`)},{id:`mindmap-2`,label:f(`@AGENT:vp_mindmap_2`),prompt:f(`@AGENT:vq_mindmap_2`)},{id:`mindmap-3`,label:f(`@AGENT:vp_mindmap_3`),prompt:f(`@AGENT:vq_mindmap_3`)},{id:`mindmap-4`,label:f(`@AGENT:vp_mindmap_4`),prompt:f(`@AGENT:vq_mindmap_4`)}],monitor:()=>[{id:`monitor-1`,label:f(`@AGENT:vp_monitor_1`),prompt:f(`@AGENT:vq_monitor_1`)},{id:`monitor-2`,label:f(`@AGENT:vp_monitor_2`),prompt:f(`@AGENT:vq_monitor_2`)},{id:`monitor-3`,label:f(`@AGENT:vp_monitor_3`),prompt:f(`@AGENT:vq_monitor_3`)},{id:`monitor-4`,label:f(`@AGENT:vp_monitor_4`),prompt:f(`@AGENT:vq_monitor_4`)}],projects:()=>[{id:`projects-1`,label:f(`@AGENT:vp_projects_1`),prompt:f(`@AGENT:vq_projects_1`)},{id:`projects-2`,label:f(`@AGENT:vp_projects_2`),prompt:f(`@AGENT:vq_projects_2`)},{id:`projects-3`,label:f(`@AGENT:vp_projects_3`),prompt:f(`@AGENT:vq_projects_3`)}],workbench:()=>[{id:`workbench-1`,label:f(`@AGENT:vp_workbench_1`),prompt:f(`@AGENT:vq_workbench_1`)},{id:`workbench-2`,label:f(`@AGENT:vp_workbench_2`),prompt:f(`@AGENT:vq_workbench_2`)},{id:`workbench-3`,label:f(`@AGENT:vp_workbench_3`),prompt:f(`@AGENT:vq_workbench_3`)},{id:`workbench-4`,label:f(`@AGENT:vp_workbench_4`),prompt:f(`@AGENT:vq_workbench_4`)}]};function C(e){if(!e)return[];let t=S[e];return t?t():[]}function w(){return`u${Date.now().toString(36)}${Math.random().toString(36).slice(2,6)}`}var T={"zh-CN":i,"en-US":o};function E(e){return T[e]||i}r(),e();var D=c(`locale`,()=>{let e=t(p()),n=s(()=>E(e.value));async function r(t){d(t),e.value=t;let n=B();n.locale!==t&&await n.saveGeneralSettings({locale:t})}return{currentLocale:e,elementPlusLocale:n,changeLocale:r}}),O=`flowdash-md-preview-theme`,k=`data-md-theme`,A=`github`,j={light:`github`,dark:`github-dark`},M=`md-preview--scoped-`,N=`flowdash-md-preview-scoped-`,P=new Set,F=Object.keys(l);function I(e,t){let n=RegExp(`(?:^|[;{\\n])\\s*${t}\\s*:\\s*([^;]+);`).exec(e);return n?n[1].trim():void 0}var L=F.map(e=>{let t=u(e)||``;return{value:e,bg:I(t,`background`),fg:I(t,`color`)}});function ne(e){if(typeof document>`u`)return;let t=typeof e==`string`&&e.trim()?e.trim():A,n=u(t)??u(`github`),r=document.getElementById(O);if(!n){r?.remove();return}r||(r=document.createElement(`style`),r.id=O,document.head.appendChild(r)),r.setAttribute(k,t),r.textContent!==n&&(r.textContent=n)}function R(e){let t=typeof e==`string`&&e.trim()?e.trim():A;return M+(u(t)?t:A).toLowerCase().replace(/[^a-z0-9_-]+/g,`-`)}function z(e){let t=R(e);if(typeof document>`u`||P.has(t))return t;let n=t.slice(19),r=u(n)??u(`github`);if(!r)return null;let i=document.createElement(`style`);return i.id=`${N}${n}`,i.setAttribute(k,n),i.textContent=r.replace(/\.md-preview(?![\w-])/g,`.md-preview.${t}`),document.head.appendChild(i),P.add(t),t}r(),e();var re={enabled:!0,provider:`firecrawl`,apiKeys:{firecrawl:``,tavily:``,exa:``,searxng:``},baseUrls:{firecrawl:``,tavily:``,exa:``,searxng:``},proxy:``},B=c(`config`,()=>{let e=t(``),r=t([]),i=t([]),o=t([]),c=t([]),l=t([]),u=t([]),p=t([]),m=t([]),g=t(!1),_=t({enabled:!1,type:`command`,refId:``}),v=t(!1),y=t(!1),b=t(``),x=t(``),S=t(``),C=t(``),w=t(!0),T=t(!1),E=t(!0),O=t(!1),k=t(!1),j=t(!0),M=t(`light`),N=t(`zh-CN`),P=t([]),I=t(1e3),L=t(8e5),R=t([]),z=t({}),B=t(``),V=t(null),H=t(`claude`),ie=t(!0),U=t(!1),ae=t(!0),W=t({...re,apiKeys:{...re.apiKeys}}),G={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:[],lastTaskExecutor:null,dispatchExecutorPriority:[],agentProactiveDispatch:!0,pickerGlobalSearch:!1,markdownTheme:A,editorWorkspaceByProject:{}},K=t(JSON.parse(JSON.stringify(G))),q=t(!1);function oe(e,t=``){S.value=e||``,C.value=t||``}let se=s(()=>{let e=S.value;return e?K.value.aiDiffSummaryByProject[e]!==!1:!1});function ce(){let e=S.value;if(e&&K.value.layoutsByProject?.[e]){K.value.layout={...K.value.layoutsByProject[e]};return}}function J(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 le(){let e=document.documentElement.getAttribute(`data-theme`)===`dark`?`light`:`dark`;return M.value=e,J(e),Ge({theme:e}).catch(e=>{console.error(`保存主题切换结果失败:`,e)}),e}J(M.value);let Y=s(()=>({defaultCommitMessage:e.value,descriptionTemplates:r.value,scopeTemplates:i.value,messageTemplates:o.value,commandTemplates:c.value,lockedFiles:l.value,customCommands:u.value,orchestrations:p.value,startupItems:m.value,startupAutoRun:g.value,afterQuickPushAction:_.value,currentDirectory:S.value})),ue=s(()=>!!(b.value&&b.value.trim()));async function de(){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 X(t=!1){if(!t&&y.value&&!v.value)return console.log(f(`@D50BB:使用缓存的配置信息`)),Y.value;v.value=!0;try{v.value=!0,console.log(f(`@D50BB:加载配置信息...`));let t=await fetch(`/api/config/getConfig`),a=await t.json().catch(()=>({}));if(!t.ok||a&&a.success===!1){let e=String(a?.error||f(`@D50BB:加载配置失败`)),t=String(a?.configPath||``),r=t?`\n${f(`@D50BB:配置文件`)}: ${t}`:``;return n.error(`${f(`@D50BB:加载配置失败: `)}${e}${r}`),b.value=e,x.value=t,null}if(b.value=``,x.value=``,e.value=a.defaultCommitMessage||``,r.value=a.descriptionTemplates||[],i.value=a.scopeTemplates||[],o.value=a.messageTemplates||[],c.value=a.commandTemplates||[],l.value=a.lockedFiles||[],u.value=a.customCommands||[],p.value=a.orchestrations||[],m.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&&(E.value=!!a.isStandardCommit),a.skipHooks!==void 0&&(O.value=!!a.skipHooks),a.autoQuickPushOnEnter!==void 0&&(k.value=!!a.autoQuickPushOnEnter),a.autoSetDefaultMessage!==void 0&&(T.value=!!a.autoSetDefaultMessage),a.autoClosePushModal!==void 0&&(w.value=!!a.autoClosePushModal),a.pullBeforePush!==void 0&&(j.value=!!a.pullBeforePush),Array.isArray(a.models)&&(P.value=a.models),Number.isFinite(Number(a.aiMaxToolIterations))&&Number(a.aiMaxToolIterations)>0&&(I.value=Math.floor(Number(a.aiMaxToolIterations))),Number.isFinite(Number(a.aiMaxRequestTokens))&&Number(a.aiMaxRequestTokens)>0&&(L.value=Math.floor(Number(a.aiMaxRequestTokens))),Number.isFinite(Number(a?.aiRequestBudget?.maxUserChars))&&Number(a.aiRequestBudget.maxUserChars)>0&&(V.value={maxTokens:Math.floor(Number(a.aiRequestBudget.maxTokens)||0),maxChars:Math.floor(Number(a.aiRequestBudget.maxChars)||0),maxMessages:Math.floor(Number(a.aiRequestBudget.maxMessages)||0),maxUserChars:Math.floor(Number(a.aiRequestBudget.maxUserChars))}),a.webSearch&&typeof a.webSearch==`object`){let e=a.webSearch,t=e.apiKeys&&typeof e.apiKeys==`object`?e.apiKeys:{},n=e.baseUrls&&typeof e.baseUrls==`object`?e.baseUrls:{};W.value={enabled:typeof e.enabled!=`boolean`||e.enabled,provider:typeof e.provider==`string`?e.provider:`firecrawl`,apiKeys:{firecrawl:String(t.firecrawl??``),tavily:String(t.tavily??``),exa:String(t.exa??``),searxng:String(t.searxng??``)},baseUrls:{firecrawl:String(n.firecrawl??``),tavily:String(n.tavily??``),exa:String(n.exa??``),searxng:String(n.searxng??``)},proxy:typeof e.proxy==`string`?e.proxy:``}}if(Array.isArray(a.agentPresetPrompts)&&(R.value=a.agentPresetPrompts.filter(e=>e&&typeof e.label==`string`&&typeof e.prompt==`string`).map(e=>({id:String(e.id??``),label:e.label,prompt:e.prompt}))),a.agentPresetPromptsByView&&typeof a.agentPresetPromptsByView==`object`&&!Array.isArray(a.agentPresetPromptsByView)){let e={};for(let[t,n]of Object.entries(a.agentPresetPromptsByView)){if(!te.includes(t)||!Array.isArray(n))continue;let r=n.filter(e=>e&&typeof e.label==`string`&&typeof e.prompt==`string`).map(e=>({id:String(e.id??``),label:e.label,prompt:e.prompt}));r.length>0&&(e[t]=r)}z.value=e}if(h(a.taskExecutor)&&(H.value=a.taskExecutor),typeof a.agentDefaultPrompt==`string`&&(B.value=a.agentDefaultPrompt),typeof a.notifyPageOnTaskDone==`boolean`&&(ie.value=a.notifyPageOnTaskDone),typeof a.notifyBrowserOnTaskDone==`boolean`&&(U.value=a.notifyBrowserOnTaskDone),typeof a.notifySoundOnTaskDone==`boolean`&&(ae.value=a.notifySoundOnTaskDone),a.theme&&[`light`,`dark`,`auto`].includes(a.theme)&&(M.value=a.theme,J(a.theme)),a.locale&&[`zh-CN`,`en-US`].includes(a.locale)){N.value=a.locale,d(a.locale);let e=D();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,G.layout.leftRatio),midRatio:e(r,G.layout.midRatio),rightRatio:e(i,G.layout.rightRatio),topRatio:e(a,G.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)):G.commandConsole.splitPercent}}let f=e(`zen-gitsync-editor-auto-save`);f!=null&&(t.editorAutoSave=f===`true`),Object.keys(t).length>0&&(K.value={...K.value,...t}),Object.keys(t).length>0&&$(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):G.layout.leftRatio,midRatio:Number.isFinite(Number(e.midRatio))?Number(e.midRatio):G.layout.midRatio,rightRatio:Number.isFinite(Number(e.rightRatio))?Number(e.rightRatio):G.layout.rightRatio,topRatio:Number.isFinite(Number(e.topRatio))?Number(e.topRatio):G.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=a.ui.editorWorkspaceByProject&&typeof a.ui.editorWorkspaceByProject==`object`&&!Array.isArray(a.ui.editorWorkspaceByProject)?a.ui.editorWorkspaceByProject:{},o={},s=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0):[];for(let[e,t]of Object.entries(i)){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 a.ui.mindmapDir==`string`?a.ui.mindmapDir.trim():``,l=[],u=new Set,d=Array.isArray(a.ui.mindmapDirs)?a.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={...G.layout,...a.ui.layout||{}};K.value={layout:f,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))):G.fileDiffSplitPercent,diffPreviewSplitPercent:Number.isFinite(Number(a.ui.diffPreviewSplitPercent))?Math.min(85,Math.max(25,Number(a.ui.diffPreviewSplitPercent))):G.diffPreviewSplitPercent,commandConsole:{expanded:typeof a.ui.commandConsole?.expanded==`boolean`?a.ui.commandConsole.expanded:G.commandConsole.expanded,useTerminal:typeof a.ui.commandConsole?.useTerminal==`boolean`?a.ui.commandConsole.useTerminal:G.commandConsole.useTerminal,showTerminalSessions:typeof a.ui.commandConsole?.showTerminalSessions==`boolean`?a.ui.commandConsole.showTerminalSessions:G.commandConsole.showTerminalSessions,splitPercent:Number.isFinite(Number(a.ui.commandConsole?.splitPercent))?Math.min(85,Math.max(15,Number(a.ui.commandConsole.splitPercent))):G.commandConsole.splitPercent},editorAutoSave:typeof a.ui.editorAutoSave==`boolean`?a.ui.editorAutoSave:G.editorAutoSave,fileTreeAutoRefresh:typeof a.ui.fileTreeAutoRefresh==`boolean`?a.ui.fileTreeAutoRefresh:G.fileTreeAutoRefresh,editorSidebarWidth:Number.isFinite(Number(a.ui.editorSidebarWidth))?Math.min(400,Math.max(140,Number(a.ui.editorSidebarWidth))):G.editorSidebarWidth,mindmapDirs:l,mindmapDir:c,headerToolsHidden:Array.isArray(a.ui.headerToolsHidden)?a.ui.headerToolsHidden.filter(e=>typeof e==`string`):[],lastTaskExecutor:h(a.ui.lastTaskExecutor)?a.ui.lastTaskExecutor:G.lastTaskExecutor,dispatchExecutorPriority:ee(a.ui.dispatchExecutorPriority),agentProactiveDispatch:typeof a.ui.agentProactiveDispatch==`boolean`?a.ui.agentProactiveDispatch:G.agentProactiveDispatch,pickerGlobalSearch:typeof a.ui.pickerGlobalSearch==`boolean`?a.ui.pickerGlobalSearch:G.pickerGlobalSearch,markdownTheme:typeof a.ui.markdownTheme==`string`&&F.includes(a.ui.markdownTheme)?a.ui.markdownTheme:G.markdownTheme,editorWorkspaceByProject:o}}return ce(),ne(K.value.markdownTheme),q.value=!0,y.value=!0,console.log(f(`@D50BB:配置信息加载完成`)),Y.value}catch(e){return console.error(`加载配置失败:`,e),n.error(`${f(`@D50BB:加载配置失败: `)}${e.message}`),b.value=e.message,null}finally{v.value=!1}}async function fe(){try{await fetch(`/api/config/save-commit-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({isStandardCommit:E.value,skipHooks:O.value,autoQuickPushOnEnter:k.value,autoSetDefaultMessage:T.value,autoClosePushModal:w.value,pullBeforePush:j.value})})}catch(e){console.error(`保存提交设置失败:`,e)}}a([E,O,k,T,w,j],()=>{y.value&&fe()});let Z=null,Q={};async function pe(){if(Z&&=(clearTimeout(Z),null),Object.keys(Q).length===0)return;let e=Q;Q={};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 $(e,t={}){if(q.value){if(t.immediate){Object.assign(Q,e),await pe();return}Object.assign(Q,e),Z&&clearTimeout(Z),Z=setTimeout(()=>{pe()},300)}}async function me(e){h(e)&&K.value.lastTaskExecutor!==e&&(K.value.lastTaskExecutor=e,await $({lastTaskExecutor:e},{immediate:!0}))}async function he(e){let t={};if(e.dispatchExecutorPriority!==void 0){let n=ee(e.dispatchExecutorPriority);t.dispatchExecutorPriority=n,K.value.dispatchExecutorPriority=n}typeof e.agentProactiveDispatch==`boolean`&&(t.agentProactiveDispatch=e.agentProactiveDispatch,K.value.agentProactiveDispatch=e.agentProactiveDispatch),Object.keys(t).length!==0&&await $(t,{immediate:!0})}let ge=s(()=>h(K.value.lastTaskExecutor)?K.value.lastTaskExecutor:H.value);async function _e(){K.value.layout={...G.layout};let e=S.value;return e&&(K.value.layoutsByProject={...K.value.layoutsByProject,[e]:{...K.value.layout}}),await $({layoutsByProject:K.value.layoutsByProject},{immediate:!0}),K.value.layout}async function ve(e){let t=S.value;t&&(K.value.aiDiffSummaryByProject={...K.value.aiDiffSummaryByProject,[t]:e},await $({aiDiffSummaryByProject:{[t]:e}},{immediate:!0}))}async function ye(e){if(!Number.isFinite(e))return;let t=Math.min(400,Math.max(140,e));K.value.editorSidebarWidth=t,await $({editorSidebarWidth:t})}function be(e){let t=S.value;if(!t)return;let n=e.tabs.slice(0,40);K.value.editorWorkspaceByProject={...K.value.editorWorkspaceByProject,[t]:{expandedDirs:e.expandedDirs.slice(0,200),tabs:n,activeTab:e.activeTab&&n.includes(e.activeTab)?e.activeTab:null}},$({editorWorkspaceByProject:K.value.editorWorkspaceByProject})}function xe(e){let t=e??S.value;return t?K.value.editorWorkspaceByProject[t]??null:null}a(()=>K.value.fileListViewMode,e=>{q.value&&$({fileListViewMode:e})}),a(()=>K.value.fileDiffSplitPercent,e=>{q.value&&$({fileDiffSplitPercent:e})}),a(()=>K.value.diffPreviewSplitPercent,e=>{q.value&&e!=null&&$({diffPreviewSplitPercent:e})}),a(()=>K.value.editorAutoSave,e=>{q.value&&$({editorAutoSave:e})}),a(()=>K.value.fileTreeAutoRefresh,e=>{q.value&&$({fileTreeAutoRefresh:e})}),a(()=>K.value.headerToolsHidden,e=>{q.value&&Array.isArray(e)&&$({headerToolsHidden:e})}),a(()=>K.value.mindmapDirs,e=>{q.value&&Array.isArray(e)&&$({mindmapDirs:e})}),a(()=>K.value.pickerGlobalSearch,e=>{q.value&&$({pickerGlobalSearch:e})});let Se=s(()=>K.value.markdownTheme);async function Ce(e){let t=F.includes(e)?e:G.markdownTheme;return K.value.markdownTheme=t,ne(t),await $({markdownTheme:t},{immediate:!0}),t}a(()=>K.value.markdownTheme,e=>{q.value&&typeof e==`string`&&e&&(ne(e),$({markdownTheme:e}))}),a(()=>K.value.layout,e=>{if(!q.value)return;let t=S.value;t&&(K.value.layoutsByProject={...K.value.layoutsByProject,[t]:e},$({layoutsByProject:K.value.layoutsByProject}))},{deep:!0}),a(()=>K.value.commandConsole,e=>{q.value&&$({commandConsole:e})},{deep:!0}),typeof window<`u`&&window.addEventListener(`beforeunload`,()=>{pe()});async function we(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?(e.value=t,n.success(f(`@D50BB:默认提交信息已保存`)),!0):(n.error(`${f(`@D50BB:保存失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存失败: `)}${e.message}`),!1}}async function Te(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 Ee(e,t){try{let a=await(await fetch(`/api/config/save-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:t})})).json();return a.success?(t===`description`?r.value.includes(e)||r.value.push(e):t===`scope`?i.value.includes(e)||i.value.push(e):t===`message`?o.value.includes(e)||o.value.push(e):t===`command`&&(c.value.includes(e)||c.value.push(e)),n.success(f(`@D50BB:模板已保存`)),!0):(n.error(`${f(`@D50BB:保存模板失败: `)}${a.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存模板失败: `)}${e.message}`),!1}}async function De(e,t){try{let a=await(await fetch(`/api/config/delete-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:t})})).json();return a.success?(t===`description`?r.value=r.value.filter(t=>t!==e):t===`scope`?i.value=i.value.filter(t=>t!==e):t===`message`?o.value=o.value.filter(t=>t!==e):t===`command`&&(c.value=c.value.filter(t=>t!==e)),n.success(f(`@D50BB:模板已删除`)),!0):(n.error(`${f(`@D50BB:删除模板失败: `)}${a.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:删除模板失败: `)}${e.message}`),!1}}async function Oe(e,t,a){try{let s=await(await fetch(`/api/config/update-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({oldTemplate:e,newTemplate:t,type:a})})).json();if(s.success){if(a===`description`){let n=r.value.indexOf(e);n!==-1&&(r.value[n]=t)}else if(a===`scope`){let n=i.value.indexOf(e);n!==-1&&(i.value[n]=t)}else if(a===`message`){let n=o.value.indexOf(e);n!==-1&&(o.value[n]=t)}else if(a===`command`){let n=c.value.indexOf(e);n!==-1&&(c.value[n]=t)}return n.success(f(`@D50BB:模板已更新`)),!0}return n.error(`${f(`@D50BB:更新模板失败: `)}${s.error}`),!1}catch(e){return n.error(`${f(`@D50BB:更新模板失败: `)}${e.message}`),!1}}async function ke(e,t){try{let a=await(await fetch(`/api/config/pin-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:t})})).json();return a.success?(t===`description`?(r.value=r.value.filter(t=>t!==e),r.value.unshift(e)):t===`scope`?(i.value=i.value.filter(t=>t!==e),i.value.unshift(e)):t===`message`?(o.value=o.value.filter(t=>t!==e),o.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:置顶模板失败: `)}${a.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:置顶模板失败: `)}${e.message}`),!1}}async function Ae(){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 je(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 Ae(),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 Me(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 Ae(),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 Ne(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 Pe(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 X(!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 Fe(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 X(!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 Ie(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 X(!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 Le(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 X(!0),!0):(n.error(t.error),!1)}catch(e){return n.error(e.message),!1}}async function Re(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 X(!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 ze(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 X(!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 Be(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 X(!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 Ve(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?g.value:t})})).json();return r.success?(m.value=e,t!==void 0&&(g.value=t),!0):(n.error(`保存启动项失败: ${r.error}`),!1)}catch(e){return n.error(`保存启动项失败: ${e.message}`),!1}}async function He(e){try{let t=await(await fetch(`/api/config/save-ai-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({...e.aiMaxToolIterations===void 0?{}:{aiMaxToolIterations:e.aiMaxToolIterations},...e.aiMaxRequestTokens===void 0?{}:{aiMaxRequestTokens:e.aiMaxRequestTokens},...e.agentPresetPrompts===void 0?{}:{agentPresetPrompts:e.agentPresetPrompts},...e.agentPresetPromptsByView===void 0?{}:{agentPresetPromptsByView:e.agentPresetPromptsByView},...e.agentDefaultPrompt===void 0?{}:{agentDefaultPrompt:e.agentDefaultPrompt}})})).json();return t.success?(t.aiMaxToolIterations!==void 0&&(I.value=Number(t.aiMaxToolIterations)||e.aiMaxToolIterations||I.value),t.aiMaxRequestTokens!==void 0&&(L.value=Number(t.aiMaxRequestTokens)||e.aiMaxRequestTokens||L.value),t.aiRequestBudget&&Number(t.aiRequestBudget.maxUserChars)>0&&(V.value={maxTokens:Math.floor(Number(t.aiRequestBudget.maxTokens)||0),maxChars:Math.floor(Number(t.aiRequestBudget.maxChars)||0),maxMessages:Math.floor(Number(t.aiRequestBudget.maxMessages)||0),maxUserChars:Math.floor(Number(t.aiRequestBudget.maxUserChars))}),Array.isArray(t.agentPresetPrompts)&&(R.value=t.agentPresetPrompts),t.agentPresetPromptsByView&&typeof t.agentPresetPromptsByView==`object`&&!Array.isArray(t.agentPresetPromptsByView)&&(z.value=t.agentPresetPromptsByView),typeof t.agentDefaultPrompt==`string`&&(B.value=t.agentDefaultPrompt),!0):(n.error(`${f(`@D50BB:保存 AI 设置失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存 AI 设置失败: `)}${e.message}`),!1}}async function Ue(e){try{let t=await(await fetch(`/api/config/save-ai-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({webSearch:e})})).json();if(t.success){if(t.webSearch&&typeof t.webSearch==`object`){let n=t.webSearch,r=n.apiKeys&&typeof n.apiKeys==`object`?n.apiKeys:e.apiKeys,i=n.baseUrls&&typeof n.baseUrls==`object`?n.baseUrls:e.baseUrls;W.value={enabled:typeof n.enabled==`boolean`?n.enabled:e.enabled,provider:typeof n.provider==`string`?n.provider:e.provider,apiKeys:{firecrawl:String(r.firecrawl??``),tavily:String(r.tavily??``),exa:String(r.exa??``),searxng:String(r.searxng??``)},baseUrls:{firecrawl:String(i.firecrawl??``),tavily:String(i.tavily??``),exa:String(i.exa??``),searxng:String(i.searxng??``)},proxy:typeof n.proxy==`string`?n.proxy:e.proxy}}else W.value=e;return!0}return n.error(`${f(`@D50BB:保存 AI 设置失败: `)}${t.error}`),!1}catch(e){return n.error(`${f(`@D50BB:保存 AI 设置失败: `)}${e.message}`),!1}}async function We(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?(P.value=e,!0):(n.error(`${f(`@D50BB:保存模型失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存模型失败: `)}${e.message}`),!1}}async function Ge(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&&(M.value=e.theme,J(e.theme)),e.locale){N.value=e.locale,d(e.locale);let t=D();t.currentLocale=e.locale}return h(e.taskExecutor)&&(H.value=e.taskExecutor),typeof e.notifyPageOnTaskDone==`boolean`&&(ie.value=e.notifyPageOnTaskDone),typeof e.notifyBrowserOnTaskDone==`boolean`&&(U.value=e.notifyBrowserOnTaskDone),typeof e.notifySoundOnTaskDone==`boolean`&&(ae.value=e.notifySoundOnTaskDone),!0}return n.error(`保存通用设置失败: ${t.error}`),!1}catch(e){return n.error(`保存通用设置失败: ${e.message}`),!1}}return{models:P,aiMaxToolIterations:I,aiMaxRequestTokens:L,agentPresetPrompts:R,agentPresetPromptsByView:z,agentDefaultPrompt:B,webSearch:W,aiRequestBudget:V,taskExecutor:H,resolvedTaskExecutor:ge,setLastTaskExecutor:me,saveDispatchSettings:he,notifyPageOnTaskDone:ie,notifyBrowserOnTaskDone:U,notifySoundOnTaskDone:ae,defaultCommitMessage:e,descriptionTemplates:r,scopeTemplates:i,messageTemplates:o,commandTemplates:c,lockedFiles:l,customCommands:u,orchestrations:p,startupItems:m,startupAutoRun:g,afterQuickPushAction:_,isLoading:v,isLoaded:y,configLoadError:b,configFilePath:x,hasConfigLoadError:ue,currentDirectory:S,currentIconUrl:C,config:Y,autoClosePushModal:w,autoSetDefaultMessage:T,isStandardCommit:E,skipHooks:O,autoQuickPushOnEnter:k,pullBeforePush:j,theme:M,locale:N,ui:K,isUiLoaded:q,aiDiffSummaryEnabled:se,markdownTheme:Se,loadConfig:X,setCurrentDirectory:oe,openSystemConfigFile:de,saveTemplate:Ee,saveModels:We,saveAiSettings:He,saveWebSearchSettings:Ue,saveGeneralSettings:Ge,saveUiSettings:$,setAiDiffSummaryEnabled:ve,setEditorSidebarWidth:ye,saveEditorWorkspace:be,getEditorWorkspace:xe,setMarkdownTheme:Ce,resetUiLayout:_e,applyTheme:J,toggleTheme:le,saveDefaultMessage:we,deleteTemplate:De,updateTemplate:Oe,pinTemplate:ke,loadLockedFiles:Ae,lockFile:je,unlockFile:Me,isFileLocked:Ne,saveCustomCommand:Pe,deleteCustomCommand:Fe,updateCustomCommand:Ie,pinCustomCommand:Le,saveOrchestration:Re,deleteOrchestration:ze,updateOrchestration:Be,saveStartupItems:Ve,saveAfterQuickPushAction:Te,saveCommitSettings:fe}});export{R as a,x as c,m as d,h as f,z as i,w as l,g as m,j as n,D as o,_ as p,L as r,v as s,B as t,b as u};