zen-gitsync 2.17.42 → 2.17.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/package.json +14 -2
- package/src/cli/ai/termui.js +21 -7
- package/src/cli/ai/termui.test.js +19 -2
- package/src/ui/public/assets/{AgentEngineSelector-CLJ4rGGb.js → AgentEngineSelector-SBPtLGPv.js} +1 -1
- package/src/ui/public/assets/{AgentView-C7tbE1pr.js → AgentView-Dn4FKdQ4.js} +1 -1
- package/src/ui/public/assets/{AppVersionBadge-CjrqnPHZ.js → AppVersionBadge-DQ4EU4pX.js} +2 -2
- package/src/ui/public/assets/BranchSelector-CzbW12er.js +1 -0
- package/src/ui/public/assets/CommitForm-B-rCGP4U.js +14 -0
- package/src/ui/public/assets/CommitForm-BGpFU-fp.css +1 -0
- package/src/ui/public/assets/{CommonDialog-q8bffY57.js → CommonDialog-BU2WnvCP.js} +1 -1
- package/src/ui/public/assets/EditorView-Ow0NbfoS.js +37 -0
- package/src/ui/public/assets/{EditorView-QROmuz4O.css → EditorView-X6M5DS2w.css} +1 -1
- package/src/ui/public/assets/{FlowExecutionViewer-DMxdFp7T.js → FlowExecutionViewer-DGAyV9U4.js} +1 -1
- package/src/ui/public/assets/{FlowOrchestrationWorkspace-vBWYTGeM.js → FlowOrchestrationWorkspace-D2kYrmGf.js} +2 -2
- package/src/ui/public/assets/{LogList-CinD-VGc.js → LogList-CawuKgSs.js} +4 -4
- package/src/ui/public/assets/MindmapView-B2Oz9nCS.css +1 -0
- package/src/ui/public/assets/MindmapView-DEsuTaSg.js +2 -0
- package/src/ui/public/assets/MonitorView-CTtuMls4.css +1 -0
- package/src/ui/public/assets/MonitorView-DxlF3drD.js +3 -0
- package/src/ui/public/assets/ProjectStartupButton-C8IaVsyB.js +1 -0
- package/src/ui/public/assets/RecentDirectoriesChat-BeRlRXUS.js +3 -0
- package/src/ui/public/assets/RemoteManagerDialog-Cm1FrUFN.js +4 -0
- package/src/ui/public/assets/{RemoteRepoCard-muY6G96M.js → RemoteRepoCard-CIaQJFkO.js} +1 -1
- package/src/ui/public/assets/{SourceMapView-CLrtq2ey.js → SourceMapView-BzABBB5V.js} +2 -2
- package/src/ui/public/assets/{SvgIcon-CVenF0Ye.js → SvgIcon-DKzB5l7x.js} +1 -1
- package/src/ui/public/assets/{UserInputNode-CGKrY_Y8.js → UserInputNode-B9_WFqBz.js} +1 -1
- package/src/ui/public/assets/WorkbenchView-B8Jyku-x.css +1 -0
- package/src/ui/public/assets/WorkbenchView-BbAYZZW0.js +299 -0
- package/src/ui/public/assets/{_plugin-vue_export-helper-BUtBXJ4L.js → _plugin-vue_export-helper-CEyZbjNo.js} +3 -3
- package/src/ui/public/assets/{agentConversations-COO5r7ra.js → agentConversations-zhSKENjT.js} +4 -4
- package/src/ui/public/assets/{configStore-B8_uxBp2.js → configStore-DZgueZaZ.js} +1 -1
- package/src/ui/public/assets/{dagre-BWDqZwmv.js → dagre-BkIBWWsW.js} +3 -3
- package/src/ui/public/assets/{element-plus-0wIX-Gk-.js → element-plus-BM4vMiQt.js} +1 -1
- package/src/ui/public/assets/element-plus-D-6gla1z.css +1 -0
- package/src/ui/public/assets/{flow-mindmap-CY72TleH.js → flow-mindmap-CQ3aUAgf.js} +1 -1
- package/src/ui/public/assets/{index-BetEwMCp.js → index-BUX1f2WT.js} +116 -74
- package/src/ui/public/assets/index-Ja0NzLzp.css +1 -0
- package/src/ui/public/assets/{monaco-CpT1sgBA.js → monaco-uSKsFhgW.js} +1 -1
- package/src/ui/public/assets/{office-docx-COuLzG9K.js → office-docx-CP6zThhk.js} +1 -1
- package/src/ui/public/assets/{office-excel-BTtyMAdK.js → office-excel-BXCp3PSj.js} +1 -1
- package/src/ui/public/assets/{office-pptx-BB2cWQB-.js → office-pptx-h_kukgO8.js} +1 -1
- package/src/ui/public/assets/{vendor-JPxCsYZA.js → vendor-k3t4WBZA.js} +3 -3
- package/src/ui/public/assets/{vue-flow-DinCMZbP.js → vue-flow-B5o0saHS.js} +1 -1
- package/src/ui/public/index.html +14 -26
- package/src/ui/server/routes/instances.js +42 -13
- package/src/ui/server/routes/instances.test.js +55 -32
- package/src/ui/public/assets/BranchSelector-B1RkRjkT.js +0 -1
- package/src/ui/public/assets/CommitForm-Dlr6QTba.js +0 -6
- package/src/ui/public/assets/CommitForm-DoR9UNBD.css +0 -1
- package/src/ui/public/assets/EditorView-WQIQHdqS.js +0 -37
- package/src/ui/public/assets/FileDiffViewer-CFJFN_xQ.js +0 -15
- package/src/ui/public/assets/FileDiffViewer-D1aR4rba.css +0 -1
- package/src/ui/public/assets/IconButton-Ca_axHSP.css +0 -1
- package/src/ui/public/assets/IconButton-Chpl6IGZ.js +0 -1
- package/src/ui/public/assets/MindmapView-BXCi5cvH.css +0 -1
- package/src/ui/public/assets/MindmapView-CAod7lPv.js +0 -2
- package/src/ui/public/assets/MonitorView-B2YVWNrs.css +0 -1
- package/src/ui/public/assets/MonitorView-B5sOfRgx.js +0 -1
- package/src/ui/public/assets/ProjectStartupButton-ZzSQN2oO.js +0 -1
- package/src/ui/public/assets/RecentDirectoriesChat-DiiaL2lT.js +0 -3
- package/src/ui/public/assets/RemoteManagerDialog-D8pMeIHt.js +0 -4
- package/src/ui/public/assets/TemplateManager-Bnek7hoV.css +0 -1
- package/src/ui/public/assets/TemplateManager-DTQ0Oir3.js +0 -1
- package/src/ui/public/assets/WorkbenchView-BnHSL8Lr.js +0 -287
- package/src/ui/public/assets/WorkbenchView-CIuHGPhc.css +0 -1
- package/src/ui/public/assets/element-plus-C1xzgNSR.css +0 -1
- package/src/ui/public/assets/fileIcon-B5p5pGN9.js +0 -1
- package/src/ui/public/assets/gitStore-bZysdieB.js +0 -6
- package/src/ui/public/assets/index-JVjC2bGh.css +0 -1
- package/src/ui/public/assets/previewSandbox-BcYj-0Up.css +0 -1
- package/src/ui/public/assets/previewSandbox-CgcL-OLc.js +0 -9
- package/src/ui/public/assets/toolsStore-CofRox1m.js +0 -1
- package/src/ui/public/assets/useThemeObserver-D0lx06N9.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{$n as t,A as n,At as r,Bn as i,C as a,Dn as o,En as s,Et as c,F as l,Fr as u,G as d,Ht as f,I as p,In as m,J as h,Jr as g,K as _,Kt as v,M as ee,N as y,Nn as b,On as x,Pn as S,Pt as C,Qn as w,Rn as T,S as E,St as D,Tn as O,U as k,Vn as A,W as j,Wn as M,Xn as te,Yn as ne,Zn as N,at as P,bn as F,br as I,bt as L,c as R,cr as z,ct as re,dn as ie,dt as ae,ei as B,er as V,gr as H,i as U,kn as W,kt as G,l as oe,lt as se,m as K,or as q,pr as J,r as ce,rn as le,w as Y,x as X,xn as Z,y as ue,z as de,zt as fe}from"./element-plus-0wIX-Gk-.js";import{b as pe}from"./vendor-JPxCsYZA.js";import{n as Q,t as $}from"./_plugin-vue_export-helper-BUtBXJ4L.js";import{t as me}from"./dagre-BWDqZwmv.js";import{t as he}from"./SvgIcon-CVenF0Ye.js";import{t as ge}from"./IconButton-Chpl6IGZ.js";import{t as _e}from"./configStore-B8_uxBp2.js";import{t as ve}from"./CommonDialog-q8bffY57.js";import{i as ye,l as be,n as xe,s as Se}from"./vue-flow-DinCMZbP.js";import{i as Ce}from"./index-BetEwMCp.js";import{a as we,c as Te,i as Ee,n as De,o as Oe,r as ke,s as Ae,t as je}from"./UserInputNode-CGKrY_Y8.js";var Me=e(me(),1);i(),J();var Ne=m({__name:`NodeContextMenu`,props:{nodeId:{type:String,required:!0}},emits:[`execute-from-node`,`execute-single-node`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,a=I(!1);function o(e){e===`executeFrom`?i(`execute-from-node`,r.nodeId):e===`executeSingle`&&i(`execute-single-node`,r.nodeId)}let s={props:r,emit:i,dropdownVisible:a,handleCommand:o,get VideoPlay(){return le}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}});i();function Pe(e,t,n,r,i,s){let c=h,l=a,u=Y,d=E;return N(),o(d,{trigger:`contextmenu`,onCommand:r.handleCommand,onVisibleChange:t[0]||=e=>r.dropdownVisible=e,"popper-class":`flow-node-dropdown`},{dropdown:z(()=>[S(u,null,{default:z(()=>[S(l,{command:`executeFrom`},{default:z(()=>[S(c,null,{default:z(()=>[S(r.VideoPlay)]),_:1}),t[1]||=b(` 从此处开始执行 `,-1)]),_:1}),S(l,{command:`executeSingle`},{default:z(()=>[S(c,null,{default:z(()=>[S(r.VideoPlay)]),_:1}),t[2]||=b(` 只执行此节点 `,-1)]),_:1})]),_:1})]),default:z(()=>[V(e.$slots,`default`,{dropdownVisible:r.dropdownVisible})]),_:3})}var Fe=$(Ne,[[`render`,Pe],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/nodes/NodeContextMenu.vue`]]);i(),J();var Ie=m({__name:`PackageJsonSelector`,props:{modelValue:{type:String,required:!0},placeholder:{type:String,required:!1},clearable:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1}},emits:[`update:modelValue`,`change`],setup(e,{expose:t,emit:n}){t();let i=e,a=n,o=I(!1),s=I([]),c=I(``),l=O({get:()=>i.modelValue,set:e=>{c.value=e,a(`update:modelValue`,e);let t=s.value.find(t=>t.fullPath===e);a(`change`,t||null)}}),u=O(()=>s.value.map(e=>({label:e.displayName,value:e.fullPath,relativePath:e.relativePath,version:e.version})));async function d(e){o.value=!0;try{let t=e?`/api/scan-package-files?directory=${encodeURIComponent(e)}`:`/api/scan-package-files`,n=await fetch(t);if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.json();if(r.success){s.value=r.packages||[],l.value&&!s.value.some(e=>e.fullPath===l.value)&&(l.value=``);let t=e?`目录 ${e}`:`当前项目`;U.success(`扫描 ${t} 完成,找到 ${s.value.length} 个 package.json 文件`)}else throw Error(r.error||`扫描失败`)}catch(e){console.error(`扫描package.json文件失败:`,e),U.error(`扫描失败: ${e.message}`),s.value=[]}finally{o.value=!1}}async function p(){try{let e=await(await fetch(`/api/browse_directory`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPath:``})})).json();e.success?m(e):e.error&&U.error(e.error)}catch(e){U.error(`浏览目录失败: ${e.message}`)}}function m(e){if(!e||!e.items)return;let t=String(e.path||``),n=()=>{let e=String(t||``).trim();if(!e){U.warning(`请输入目录路径`);return}h(e)};ce.alert(T(`div`,{class:`directory-browser`},[T(`div`,{class:`current-path`},[T(`span`,{class:`path-label`},`当前路径:`),T(`input`,{class:`path-value`,value:t,onInput:e=>{t=e.target.value},onKeydown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}}),T(`button`,{type:`button`,class:`path-jump-btn`,onClick:n},`跳转`)]),T(`div`,{class:`directory-list`},[e.parentPath?T(`div`,{class:`directory-item parent-dir`,onClick:()=>h(e.parentPath)},[T(`span`,{class:`dir-icon`},T(`svg`,{class:`folder-icon`,viewBox:`0 0 24 24`,width:`20`,height:`20`,style:{fill:`var(--color-warning)`}},[T(`path`,{d:`M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z`})])),T(`span`,{class:`dir-name`},`返回上级目录`)]):null,...e.items.map(e=>T(`div`,{class:`directory-item`,onClick:()=>h(e.path)},[T(`span`,{class:`dir-icon`},T(`svg`,{class:`folder-icon`,viewBox:`0 0 24 24`,width:`20`,height:`20`,style:{fill:`var(--color-primary)`}},[T(`path`,{d:`M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z`})])),T(`span`,{class:`dir-name`},e.name)]))])]),`浏览并选择目录`,{confirmButtonText:`确定`,cancelButtonText:`取消`,showCancelButton:!0,customClass:`directory-browser-dialog`,callback:n=>{if(n===`confirm`){let n=String(t||e.path||``).trim();if(!n){U.warning(`请输入目录路径`);return}d(n)}}})}async function h(e){try{ce.close(),setTimeout(async()=>{try{let t=await(await fetch(`/api/browse_directory`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPath:e})})).json();t.success?m(t):t.error&&U.error(t.error)}catch(e){U.error(`浏览目录失败: ${e.message}`)}},100)}catch(e){U.error(`处理目录选择时出错: ${e.message}`)}}d(),q(()=>i.modelValue,e=>{c.value=e},{immediate:!0});let g={props:i,emit:a,loading:o,packageFiles:s,selectedValue:c,computedValue:l,options:u,scanPackageFiles:d,browseDirectory:p,selectDirectoryDialog:m,selectDirectory:h,get Folder(){return D},get Refresh(){return f},get Loading(){return r},get FolderAdd(){return L}};return Object.defineProperty(g,"__isScriptSetup",{enumerable:!1,value:!0}),g}});i(),u();var Le={class:`package-json-selector`},Re={class:`selector-container`},ze={class:`option-content`},Be={class:`option-main`},Ve={class:`package-name`},He={class:`option-path`},Ue={key:0,class:`empty-hint`};function We(e,n,r,i,a,c){let u=h,d=l,f=p,m=de,g=oe;return N(),W(`div`,Le,[s(`div`,Re,[S(f,{modelValue:i.computedValue,"onUpdate:modelValue":n[0]||=e=>i.computedValue=e,placeholder:r.placeholder||`选择 package.json 文件`,clearable:r.clearable,disabled:r.disabled||i.loading,filterable:``,class:`package-select`},{default:z(()=>[(N(!0),W(Z,null,t(i.options,e=>(N(),o(d,{key:e.value,label:e.label,value:e.value},{default:z(()=>[s(`div`,ze,[s(`div`,Be,[S(u,{class:`folder-icon`},{default:z(()=>[S(i.Folder)]),_:1}),s(`span`,Ve,B(e.label),1)]),s(`div`,He,B(e.relativePath),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`clearable`,`disabled`]),S(m,{icon:i.loading?i.Loading:i.Refresh,loading:i.loading,disabled:r.disabled,size:`default`,onClick:n[1]||=e=>i.scanPackageFiles(),class:`refresh-btn`,title:`刷新当前项目`},{default:z(()=>[b(B(i.loading?`扫描中...`:`刷新`),1)]),_:1},8,[`icon`,`loading`,`disabled`]),S(m,{icon:i.FolderAdd,disabled:r.disabled||i.loading,size:`default`,onClick:i.browseDirectory,class:`custom-dir-btn`,title:`浏览并选择其他目录`},{default:z(()=>[...n[2]||=[b(` 其他目录 `,-1)]]),_:1},8,[`icon`,`disabled`])]),i.packageFiles.length===0&&!i.loading?(N(),W(`div`,Ue,[S(g,{type:`info`,size:`small`},{default:z(()=>[...n[3]||=[b(` 未找到 package.json 文件,请确保项目包含有效的 package.json `,-1)]]),_:1})])):x(`v-if`,!0)])}var Ge=$(Ie,[[`render`,We],[`__scopeId`,`data-v-597798fd`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/PackageJsonSelector.vue`]]);i();var Ke=m({__name:`ParamListContainer`,props:{modelValue:{type:Array,required:!0},title:{type:String,required:!1},addable:{type:Boolean,required:!1},removable:{type:Boolean,required:!1},minItems:{type:Number,required:!1},createItem:{type:Function,required:!1},itemKey:{type:Function,required:!1},disableAdd:{type:Boolean,required:!1},disableRemove:{type:Function,required:!1}},emits:[`update:modelValue`,`add`,`remove`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,a=O(()=>Array.isArray(r.modelValue)?r.modelValue:[]);function o(){if(!r.addable||r.disableAdd)return;let e=r.createItem;if(!e)return;let t=[...a.value,e()];i(`update:modelValue`,t),i(`add`)}function s(e){if(!r.removable)return;let t=typeof r.minItems==`number`?r.minItems:0;if(a.value.length<=t)return;let n=a.value[e];if(r.disableRemove&&r.disableRemove(n,e))return;let o=[...a.value];o.splice(e,1),i(`update:modelValue`,o),i(`remove`,e)}function c(e,t){return r.itemKey?r.itemKey(e,t):t}let l={props:r,emit:i,items:a,doAdd:o,doRemove:s,getKey:c,get Plus(){return fe},get Delete(){return se}};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}});u(),i();var qe={class:`param-list`},Je={key:0,class:`param-list__title`},Ye={key:0,class:`param-list__title-text`},Xe={class:`param-list__title-actions`},Ze={key:1,class:`param-list__empty`},Qe={key:2,class:`param-list__body`},$e={class:`param-list__row-content`},et={key:0,class:`param-list__row-actions`};function tt(e,n,r,i,a,c){let l=de;return N(),W(`div`,qe,[r.title!==void 0||r.addable?(N(),W(`div`,Je,[r.title?(N(),W(`span`,Ye,B(r.title),1)):x(`v-if`,!0),s(`div`,Xe,[V(e.$slots,`title-actions`,{},void 0,!0),r.addable?(N(),o(l,{key:0,type:`primary`,plain:``,icon:i.Plus,disabled:r.disableAdd||!r.createItem,onClick:i.doAdd},null,8,[`icon`,`disabled`])):x(`v-if`,!0)])])):x(`v-if`,!0),i.items.length===0?(N(),W(`div`,Ze,[V(e.$slots,`empty`,{},void 0,!0)])):(N(),W(`div`,Qe,[(N(!0),W(Z,null,t(i.items,(t,n)=>(N(),W(`div`,{key:i.getKey(t,n),class:g([`param-list__row`,{"param-list__row--no-actions":!r.removable}])},[s(`div`,$e,[V(e.$slots,`row`,{item:t,index:n},void 0,!0)]),r.removable?(N(),W(`div`,et,[S(l,{type:`danger`,plain:``,icon:i.Delete,disabled:typeof r.minItems==`number`&&i.items.length<=r.minItems||(r.disableRemove?r.disableRemove(t,n):!1),onClick:e=>i.doRemove(n)},null,8,[`icon`,`disabled`,`onClick`])])):x(`v-if`,!0)],2))),128))]))])}var nt=$(Ke,[[`render`,tt],[`__scopeId`,`data-v-27c87a51`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/ParamListContainer.vue`]]);i(),J();var rt=m({__name:`NodeInputConfig`,props:{modelValue:{type:Array,required:!0},paramNames:{type:Array,required:!0},disableParamNameEdit:{type:Boolean,required:!1},predecessorNodes:{type:Array,required:!1}},emits:[`update:modelValue`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,a=I([]);q(()=>r.modelValue,e=>{a.value=e?[...e]:[]},{immediate:!0,deep:!0}),q(()=>r.paramNames,e=>{if(!e||e.length===0){a.value=[],i(`update:modelValue`,[]);return}let t=new Map(a.value.map(e=>[e.paramName,e])),n=[];for(let r of e)t.has(r)?n.push(t.get(r)):n.push({paramName:r,inputType:`manual`,required:!1,manualValue:``});a.value=n,i(`update:modelValue`,n)},{immediate:!0});function o(e,t,n){if(!a.value[e])return;let r=[...a.value];r[e]={...r[e],[t]:n},t===`inputType`&&(n===`manual`?(r[e].referenceNodeId=void 0,r[e].referenceOutputKey=void 0):r[e].manualValue=void 0),a.value=r,i(`update:modelValue`,r)}function s(e){return e.type===`command`?e.data.config?.displayName||e.data.config?.commandName||e.data.label||Q(`@FLOWNODE:命令节点`):e.type===`code`?e.data.config?.displayName||e.data.label||Q(`@FLOWNODE:代码节点`):e.data.label||e.id}function c(e){if(e.type===`command`)return[{key:`stdout`,label:Q(`@NODEINPUT:标准输出(stdout)`)},{key:`stderr`,label:Q(`@NODEINPUT:标准错误(stderr)`)},{key:`error`,label:Q(`@NODEINPUT:错误(error)`)}];if(e.type===`code`){let t=e.data?.config,n=Array.isArray(t?.codeOutputParams)?t.codeOutputParams:[];if(n.length>0)return n.map(e=>String(e?.key||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}));let r=t?.codeOutputKeys;return(Array.isArray(r)?r:[]).map(e=>String(e||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}if(e.type===`user_input`){let t=e.data?.config;return(Array.isArray(t?.userInputParams)?t.userInputParams:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}return[]}let l=O(()=>!r.predecessorNodes||r.predecessorNodes.length===0?[]:r.predecessorNodes.map(e=>({value:e.id,label:s(e),children:c(e).map(t=>({value:`${e.id}::${t.key}`,label:t.label}))})));function u(e,t){if(!t)return;let[n,r]=t.split(`::`),o=[...a.value];o[e]={...o[e],referenceNodeId:n,referenceOutputKey:r},a.value=o,i(`update:modelValue`,o)}function d(e){return e.referenceNodeId&&e.referenceOutputKey?`${e.referenceNodeId}::${e.referenceOutputKey}`:``}let f={props:r,emit:i,inputs:a,updateInput:o,getNodeDisplayName:s,getNodeOutputOptions:c,treeSelectOptions:l,handleReferenceSelect:u,getCurrentReferenceValue:d,get Link(){return G},ParamListContainer:nt,get $t(){return Q}};return Object.defineProperty(f,"__isScriptSetup",{enumerable:!1,value:!0}),f}});u(),i();var it={class:`node-input-config`},at={class:`input-row`},ot={class:`input-field param-name-field`},st={class:`field-label`},ct={class:`input-field type-field`},lt={class:`field-label`},ut={class:`input-field value-field`},dt={class:`field-label`},ft={class:`tree-node-label`},pt={class:`input-field required-field`},mt={class:`field-label`};function ht(e,t,n,r,i,a){let c=k,u=l,d=p,f=h,m=R,g=K;return N(),W(`div`,it,[S(r.ParamListContainer,{"model-value":r.inputs,title:void 0,addable:!1,removable:!1},{empty:z(()=>[b(B(r.$t(`@NODEINPUT:命令中未检测到变量参数`)),1)]),row:z(({item:e,index:t})=>[s(`div`,at,[s(`div`,ot,[s(`label`,st,B(r.$t(`@NODEINPUT:参数名`)),1),S(c,{"model-value":e.paramName,disabled:n.disableParamNameEdit,placeholder:r.$t(`@NODEINPUT:参数名`),size:`default`,"onUpdate:modelValue":e=>r.updateInput(t,`paramName`,e)},null,8,[`model-value`,`disabled`,`placeholder`,`onUpdate:modelValue`])]),s(`div`,ct,[s(`label`,lt,B(r.$t(`@NODEINPUT:类型`)),1),S(d,{"model-value":e.inputType,placeholder:r.$t(`@NODEINPUT:选择类型`),size:`default`,"onUpdate:modelValue":e=>r.updateInput(t,`inputType`,e)},{default:z(()=>[S(u,{value:`manual`,label:r.$t(`@NODEINPUT:手动输入`)},null,8,[`label`]),S(u,{value:`reference`,label:r.$t(`@NODEINPUT:引用节点`),disabled:!n.predecessorNodes||n.predecessorNodes.length===0},null,8,[`label`,`disabled`])]),_:1},8,[`model-value`,`placeholder`,`onUpdate:modelValue`])]),s(`div`,ut,[s(`label`,dt,B(r.$t(`@NODEINPUT:值`)),1),e.inputType===`manual`?(N(),o(c,{key:0,"model-value":e.manualValue,placeholder:r.$t(`@NODEINPUT:输入参数值`),size:`default`,clearable:``,"onUpdate:modelValue":e=>r.updateInput(t,`manualValue`,e)},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`])):(N(),o(m,{key:1,"model-value":r.getCurrentReferenceValue(e),data:r.treeSelectOptions,placeholder:r.$t(`@NODEINPUT:选择节点输出`),size:`default`,clearable:``,filterable:``,"check-strictly":``,"render-after-expand":!1,"onUpdate:modelValue":e=>r.handleReferenceSelect(t,e)},{default:z(({data:e})=>[s(`span`,ft,[e.children?x(`v-if`,!0):(N(),o(f,{key:0},{default:z(()=>[S(r.Link)]),_:1})),b(` `+B(e.label),1)])]),_:1},8,[`model-value`,`data`,`placeholder`,`onUpdate:modelValue`]))]),s(`div`,pt,[s(`label`,mt,B(r.$t(`@NODEINPUT:必填`)),1),S(g,{"model-value":!!e.required,"onUpdate:modelValue":e=>r.updateInput(t,`required`,e)},null,8,[`model-value`,`onUpdate:modelValue`])])])]),_:1},8,[`model-value`])])}var gt=$(rt,[[`render`,ht],[`__scopeId`,`data-v-9c9154d7`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/NodeInputConfig.vue`]]);i(),J();var _t=m({__name:`CodeNodeInputConfig`,props:{modelValue:{type:Array,required:!0},predecessorNodes:{type:Array,required:!1},title:{type:null,required:!1},addable:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=I([]);q(()=>r.modelValue,e=>{a.value=Array.isArray(e)?[...e]:[]},{immediate:!0,deep:!0});function o(e){return e.type===`command`?e.data.config?.displayName||e.data.config?.commandName||e.data.label||Q(`@FLOWNODE:命令节点`):e.type===`code`?e.data.config?.displayName||e.data.label||Q(`@FLOWNODE:代码节点`):e.data.label||e.id}function s(e){if(!e)return[];if(e.type===`command`)return[{key:`stdout`,label:Q(`@NODEINPUT:标准输出(stdout)`)},{key:`stderr`,label:Q(`@NODEINPUT:标准错误(stderr)`)},{key:`error`,label:Q(`@NODEINPUT:错误(error)`)}];if(e.type===`code`){let t=e.data?.config;return(Array.isArray(t?.codeOutputParams)?t.codeOutputParams:[]).map(e=>String(e?.key||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}if(e.type===`user_input`){let t=e.data?.config;return(Array.isArray(t?.userInputParams)?t.userInputParams:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}return[]}let c=O(()=>!r.predecessorNodes||r.predecessorNodes.length===0?[]:r.predecessorNodes.map(e=>({value:e.id,label:o(e),children:s(e).map(t=>({value:`${e.id}::${t.key}`,label:t.label}))})));function l(){return{name:``,source:`reference`,required:!1,ref:{nodeId:``,outputKey:`stdout`}}}function u(){let e=[...a.value,l()];a.value=e,i(`update:modelValue`,e)}t({addRow:u});function d(e,t){if(!a.value[e])return;let n=[...a.value];n[e]={...n[e],...t},t.source&&(t.source===`manual`?(n[e].ref=void 0,n[e].manualValue===void 0&&(n[e].manualValue=``)):(n[e].manualValue=void 0,n[e].ref||(n[e].ref={nodeId:``,outputKey:`stdout`}))),a.value=n,i(`update:modelValue`,n)}function f(e,t){if(!t)return;let[n,r]=t.split(`::`);d(e,{ref:{nodeId:n,outputKey:r}})}function p(e){return e.ref?.nodeId&&e.ref?.outputKey?`${e.ref.nodeId}::${e.ref.outputKey}`:``}let m={props:r,emit:i,inputs:a,getNodeDisplayName:o,getNodeOutputOptions:s,treeSelectOptions:c,createDefaultRow:l,addRow:u,updateRow:d,handleReferenceSelect:f,getCurrentReferenceValue:p,ParamListContainer:nt,get $t(){return Q}};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}});u(),i();var vt={class:`code-node-input-config`},yt={class:`input-row`},bt={class:`input-field name-field`},xt={class:`field-label`},St={class:`input-field type-field`},Ct={class:`field-label`},wt={class:`input-field value-field`},Tt={class:`field-label`},Et={class:`input-field action-field`},Dt={class:`field-label`};function Ot(e,t,n,r,i,a){let c=k,u=l,d=p,f=R,m=K;return N(),W(`div`,vt,[S(r.ParamListContainer,{"model-value":r.inputs,title:n.title,addable:n.addable!==!1,removable:!0,"min-items":0,"create-item":r.createDefaultRow,"onUpdate:modelValue":t[0]||=e=>r.emit(`update:modelValue`,e)},{empty:z(()=>[b(B(r.$t(`@NODECFG:暂无输入参数`)),1)]),row:z(({item:e,index:t})=>[s(`div`,yt,[s(`div`,bt,[s(`label`,xt,B(r.$t(`@NODECFG:参数名`)),1),S(c,{modelValue:e.name,"onUpdate:modelValue":[t=>e.name=t,e=>r.updateRow(t,{name:e})],placeholder:r.$t(`@NODECFG:参数名`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),s(`div`,St,[s(`label`,Ct,B(r.$t(`@NODECFG:参数值`)),1),S(d,{modelValue:e.source,"onUpdate:modelValue":[t=>e.source=t,e=>r.updateRow(t,{source:e})],style:{width:`110px`}},{default:z(()=>[S(u,{label:r.$t(`@NODECFG:引用`),value:`reference`,disabled:!n.predecessorNodes||n.predecessorNodes.length===0},null,8,[`label`,`disabled`]),S(u,{label:r.$t(`@NODECFG:手动`),value:`manual`},null,8,[`label`])]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,wt,[s(`label`,Tt,B(r.$t(`@NODECFG:值`)),1),e.source===`manual`?(N(),o(c,{key:0,modelValue:e.manualValue,"onUpdate:modelValue":[t=>e.manualValue=t,e=>r.updateRow(t,{manualValue:e})],placeholder:r.$t(`@NODECFG:请输入`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(N(),o(f,{key:1,"model-value":r.getCurrentReferenceValue(e),data:r.treeSelectOptions,placeholder:r.$t(`@NODEINPUT:选择节点输出`),clearable:``,filterable:``,"check-strictly":``,"render-after-expand":!1,"onUpdate:modelValue":e=>r.handleReferenceSelect(t,e)},null,8,[`model-value`,`data`,`placeholder`,`onUpdate:modelValue`]))]),s(`div`,Et,[s(`label`,Dt,B(r.$t(`@NODEINPUT:必填`)),1),S(m,{"model-value":!!e.required,"onUpdate:modelValue":e=>r.updateRow(t,{required:e})},null,8,[`model-value`,`onUpdate:modelValue`])])])]),_:1},8,[`model-value`,`title`,`addable`])])}var kt=$(_t,[[`render`,Ot],[`__scopeId`,`data-v-3064cd00`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/CodeNodeInputConfig.vue`]]);i(),J();var At=m({__name:`UserInputParamConfig`,props:{modelValue:{type:Array,required:!0},predecessorNodes:{type:Array,required:!1},title:{type:null,required:!1},addable:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=I([]);q(()=>r.modelValue,e=>{a.value=Array.isArray(e)?[...e]:[]},{immediate:!0,deep:!0});function o(){return{name:``,source:`manual`,defaultValue:``,required:!1}}function s(){let e=[...a.value,o()];a.value=e,i(`update:modelValue`,e)}t({addRow:s});function c(e,t){if(!a.value[e])return;let n=[...a.value];n[e]={...n[e],...t},t.source&&(t.source===`manual`?(n[e].ref=void 0,n[e].defaultValue===void 0&&(n[e].defaultValue=``)):(n[e].defaultValue=void 0,n[e].ref||(n[e].ref={nodeId:``,outputKey:`stdout`}))),a.value=n,i(`update:modelValue`,n)}function l(e){return e.type===`command`?e.data.config?.displayName||e.data.config?.commandName||e.data.label||Q(`@FLOWNODE:命令节点`):e.type===`code`?e.data.config?.displayName||e.data.label||Q(`@FLOWNODE:代码节点`):e.type===`user_input`?e.data.config?.displayName||e.data.label||Q(`@FLOWNODE:用户输入`):e.data.label||e.id}function u(e){if(!e)return[];if(e.type===`command`)return[{key:`stdout`,label:Q(`@NODEINPUT:标准输出(stdout)`)},{key:`stderr`,label:Q(`@NODEINPUT:标准错误(stderr)`)},{key:`error`,label:Q(`@NODEINPUT:错误(error)`)}];if(e.type===`code`){let t=e.data?.config;return(Array.isArray(t?.codeOutputParams)?t.codeOutputParams:[]).map(e=>String(e?.key||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}if(e.type===`user_input`){let t=e.data?.config;return(Array.isArray(t?.userInputParams)?t.userInputParams:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}return[]}let d=O(()=>!r.predecessorNodes||r.predecessorNodes.length===0?[]:r.predecessorNodes.map(e=>({value:e.id,label:l(e),children:u(e).map(t=>({value:`${e.id}::${t.key}`,label:t.label}))})));function f(e,t){if(!t)return;let[n,r]=t.split(`::`);c(e,{ref:{nodeId:n,outputKey:r}})}function p(e){return e.ref?.nodeId&&e.ref?.outputKey?`${e.ref.nodeId}::${e.ref.outputKey}`:``}let m={props:r,emit:i,params:a,createDefaultRow:o,addRow:s,updateRow:c,getNodeDisplayName:l,getNodeOutputOptions:u,treeSelectOptions:d,handleReferenceSelect:f,getCurrentReferenceValue:p,get Link(){return G},ParamListContainer:nt,get $t(){return Q}};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}});u(),i();var jt={class:`user-input-param-config`},Mt={class:`input-row`},Nt={class:`input-field name-field`},Pt={class:`field-label`},Ft={class:`input-field type-field`},It={class:`field-label`},Lt={class:`input-field value-field`},Rt={class:`field-label`},zt={class:`tree-node-label`},Bt={class:`input-field action-field`},Vt={class:`field-label`};function Ht(e,t,n,r,i,a){let c=k,u=l,d=p,f=h,m=R,g=K,_=de;return N(),W(`div`,jt,[S(r.ParamListContainer,{"model-value":r.params,title:n.title,addable:n.addable!==!1,removable:!0,"min-items":0,"create-item":r.createDefaultRow,"onUpdate:modelValue":t[0]||=e=>r.emit(`update:modelValue`,e)},{empty:z(()=>[b(B(r.$t(`@UINPUT:暂无输入参数`)),1)]),row:z(({item:e,index:t})=>[s(`div`,Mt,[s(`div`,Nt,[s(`label`,Pt,B(r.$t(`@UINPUT:参数名`)),1),S(c,{modelValue:e.name,"onUpdate:modelValue":[t=>e.name=t,e=>r.updateRow(t,{name:e})],placeholder:r.$t(`@UINPUT:参数名`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),s(`div`,Ft,[s(`label`,It,B(r.$t(`@UINPUT:类型`)),1),S(d,{modelValue:e.source,"onUpdate:modelValue":[t=>e.source=t,e=>r.updateRow(t,{source:e})],style:{width:`130px`}},{default:z(()=>[S(u,{label:r.$t(`@UINPUT:手动输入`),value:`manual`},null,8,[`label`]),S(u,{label:r.$t(`@UINPUT:引用`),value:`reference`,disabled:!r.props.predecessorNodes||r.props.predecessorNodes.length===0},null,8,[`label`,`disabled`])]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,Lt,[s(`label`,Rt,B(e.source===`manual`?r.$t(`@UINPUT:默认值`):r.$t(`@UINPUT:引用输出`)),1),e.source===`manual`?(N(),o(c,{key:0,modelValue:e.defaultValue,"onUpdate:modelValue":[t=>e.defaultValue=t,e=>r.updateRow(t,{defaultValue:e})],placeholder:r.$t(`@UINPUT:默认值`),clearable:``},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(N(),o(m,{key:1,"model-value":r.getCurrentReferenceValue(e),data:r.treeSelectOptions,placeholder:r.$t(`@NODEINPUT:选择节点输出`),clearable:``,filterable:``,"check-strictly":``,"render-after-expand":!1,"onUpdate:modelValue":e=>r.handleReferenceSelect(t,e)},{default:z(({data:e})=>[s(`span`,zt,[e.children?x(`v-if`,!0):(N(),o(f,{key:0},{default:z(()=>[S(r.Link)]),_:1})),b(` `+B(e.label),1)])]),_:1},8,[`model-value`,`data`,`placeholder`,`onUpdate:modelValue`]))]),s(`div`,Bt,[s(`label`,Vt,B(r.$t(`@NODEINPUT:必填`)),1),S(g,{"model-value":!!e.required,"onUpdate:modelValue":e=>r.updateRow(t,{required:e})},null,8,[`model-value`,`onUpdate:modelValue`])])])]),actions:z(()=>[n.addable===!1?x(`v-if`,!0):(N(),o(_,{key:0,type:`primary`,plain:``,size:`small`,onClick:r.addRow},{default:z(()=>[b(B(r.$t(`@UINPUT:添加参数`)),1)]),_:1}))]),_:1},8,[`model-value`,`title`,`addable`])])}var Ut=$(At,[[`render`,Ht],[`__scopeId`,`data-v-2a315a18`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/UserInputParamConfig.vue`]]);i(),J();var Wt=`function main(param) {
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{$n as t,A as n,At as r,Bn as i,C as a,Dn as o,En as s,Et as c,F as l,Fr as u,G as d,Ht as f,I as p,In as m,J as h,Jr as g,K as _,Kt as v,M as ee,N as y,Nn as b,On as x,Pn as S,Pt as C,Qn as w,Rn as T,S as E,St as D,Tn as O,U as k,Vn as A,W as j,Wn as M,Xn as te,Yn as ne,Zn as N,at as P,bn as F,br as I,bt as L,c as R,cr as z,ct as re,dn as ie,dt as ae,ei as B,er as V,gr as H,i as U,kn as W,kt as G,l as oe,lt as se,m as K,or as q,pr as J,r as ce,rn as le,w as Y,x as X,xn as Z,y as ue,z as de,zt as fe}from"./element-plus-BM4vMiQt.js";import{b as pe}from"./vendor-k3t4WBZA.js";import{n as Q,t as $}from"./_plugin-vue_export-helper-CEyZbjNo.js";import{t as me}from"./dagre-BkIBWWsW.js";import{t as he}from"./SvgIcon-DKzB5l7x.js";import{t as ge}from"./configStore-DZgueZaZ.js";import{t as _e}from"./CommonDialog-BU2WnvCP.js";import{i as ve,l as ye,n as be,s as xe}from"./vue-flow-B5o0saHS.js";import{V as Se,a as Ce}from"./index-BUX1f2WT.js";import{a as we,c as Te,i as Ee,n as De,o as Oe,r as ke,s as Ae,t as je}from"./UserInputNode-B9_WFqBz.js";var Me=e(me(),1);i(),J();var Ne=m({__name:`NodeContextMenu`,props:{nodeId:{type:String,required:!0}},emits:[`execute-from-node`,`execute-single-node`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,a=I(!1);function o(e){e===`executeFrom`?i(`execute-from-node`,r.nodeId):e===`executeSingle`&&i(`execute-single-node`,r.nodeId)}let s={props:r,emit:i,dropdownVisible:a,handleCommand:o,get VideoPlay(){return le}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}});i();function Pe(e,t,n,r,i,s){let c=h,l=a,u=Y,d=E;return N(),o(d,{trigger:`contextmenu`,onCommand:r.handleCommand,onVisibleChange:t[0]||=e=>r.dropdownVisible=e,"popper-class":`flow-node-dropdown`},{dropdown:z(()=>[S(u,null,{default:z(()=>[S(l,{command:`executeFrom`},{default:z(()=>[S(c,null,{default:z(()=>[S(r.VideoPlay)]),_:1}),t[1]||=b(` 从此处开始执行 `,-1)]),_:1}),S(l,{command:`executeSingle`},{default:z(()=>[S(c,null,{default:z(()=>[S(r.VideoPlay)]),_:1}),t[2]||=b(` 只执行此节点 `,-1)]),_:1})]),_:1})]),default:z(()=>[V(e.$slots,`default`,{dropdownVisible:r.dropdownVisible})]),_:3})}var Fe=$(Ne,[[`render`,Pe],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/nodes/NodeContextMenu.vue`]]);i(),J();var Ie=m({__name:`PackageJsonSelector`,props:{modelValue:{type:String,required:!0},placeholder:{type:String,required:!1},clearable:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1}},emits:[`update:modelValue`,`change`],setup(e,{expose:t,emit:n}){t();let i=e,a=n,o=I(!1),s=I([]),c=I(``),l=O({get:()=>i.modelValue,set:e=>{c.value=e,a(`update:modelValue`,e);let t=s.value.find(t=>t.fullPath===e);a(`change`,t||null)}}),u=O(()=>s.value.map(e=>({label:e.displayName,value:e.fullPath,relativePath:e.relativePath,version:e.version})));async function d(e){o.value=!0;try{let t=e?`/api/scan-package-files?directory=${encodeURIComponent(e)}`:`/api/scan-package-files`,n=await fetch(t);if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.json();if(r.success){s.value=r.packages||[],l.value&&!s.value.some(e=>e.fullPath===l.value)&&(l.value=``);let t=e?`目录 ${e}`:`当前项目`;U.success(`扫描 ${t} 完成,找到 ${s.value.length} 个 package.json 文件`)}else throw Error(r.error||`扫描失败`)}catch(e){console.error(`扫描package.json文件失败:`,e),U.error(`扫描失败: ${e.message}`),s.value=[]}finally{o.value=!1}}async function p(){try{let e=await(await fetch(`/api/browse_directory`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPath:``})})).json();e.success?m(e):e.error&&U.error(e.error)}catch(e){U.error(`浏览目录失败: ${e.message}`)}}function m(e){if(!e||!e.items)return;let t=String(e.path||``),n=()=>{let e=String(t||``).trim();if(!e){U.warning(`请输入目录路径`);return}h(e)};ce.alert(T(`div`,{class:`directory-browser`},[T(`div`,{class:`current-path`},[T(`span`,{class:`path-label`},`当前路径:`),T(`input`,{class:`path-value`,value:t,onInput:e=>{t=e.target.value},onKeydown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}}),T(`button`,{type:`button`,class:`path-jump-btn`,onClick:n},`跳转`)]),T(`div`,{class:`directory-list`},[e.parentPath?T(`div`,{class:`directory-item parent-dir`,onClick:()=>h(e.parentPath)},[T(`span`,{class:`dir-icon`},T(`svg`,{class:`folder-icon`,viewBox:`0 0 24 24`,width:`20`,height:`20`,style:{fill:`var(--color-warning)`}},[T(`path`,{d:`M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z`})])),T(`span`,{class:`dir-name`},`返回上级目录`)]):null,...e.items.map(e=>T(`div`,{class:`directory-item`,onClick:()=>h(e.path)},[T(`span`,{class:`dir-icon`},T(`svg`,{class:`folder-icon`,viewBox:`0 0 24 24`,width:`20`,height:`20`,style:{fill:`var(--color-primary)`}},[T(`path`,{d:`M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z`})])),T(`span`,{class:`dir-name`},e.name)]))])]),`浏览并选择目录`,{confirmButtonText:`确定`,cancelButtonText:`取消`,showCancelButton:!0,customClass:`directory-browser-dialog`,callback:n=>{if(n===`confirm`){let n=String(t||e.path||``).trim();if(!n){U.warning(`请输入目录路径`);return}d(n)}}})}async function h(e){try{ce.close(),setTimeout(async()=>{try{let t=await(await fetch(`/api/browse_directory`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPath:e})})).json();t.success?m(t):t.error&&U.error(t.error)}catch(e){U.error(`浏览目录失败: ${e.message}`)}},100)}catch(e){U.error(`处理目录选择时出错: ${e.message}`)}}d(),q(()=>i.modelValue,e=>{c.value=e},{immediate:!0});let g={props:i,emit:a,loading:o,packageFiles:s,selectedValue:c,computedValue:l,options:u,scanPackageFiles:d,browseDirectory:p,selectDirectoryDialog:m,selectDirectory:h,get Folder(){return D},get Refresh(){return f},get Loading(){return r},get FolderAdd(){return L}};return Object.defineProperty(g,"__isScriptSetup",{enumerable:!1,value:!0}),g}});i(),u();var Le={class:`package-json-selector`},Re={class:`selector-container`},ze={class:`option-content`},Be={class:`option-main`},Ve={class:`package-name`},He={class:`option-path`},Ue={key:0,class:`empty-hint`};function We(e,n,r,i,a,c){let u=h,d=l,f=p,m=de,g=oe;return N(),W(`div`,Le,[s(`div`,Re,[S(f,{modelValue:i.computedValue,"onUpdate:modelValue":n[0]||=e=>i.computedValue=e,placeholder:r.placeholder||`选择 package.json 文件`,clearable:r.clearable,disabled:r.disabled||i.loading,filterable:``,class:`package-select`},{default:z(()=>[(N(!0),W(Z,null,t(i.options,e=>(N(),o(d,{key:e.value,label:e.label,value:e.value},{default:z(()=>[s(`div`,ze,[s(`div`,Be,[S(u,{class:`folder-icon`},{default:z(()=>[S(i.Folder)]),_:1}),s(`span`,Ve,B(e.label),1)]),s(`div`,He,B(e.relativePath),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`clearable`,`disabled`]),S(m,{icon:i.loading?i.Loading:i.Refresh,loading:i.loading,disabled:r.disabled,size:`default`,onClick:n[1]||=e=>i.scanPackageFiles(),class:`refresh-btn`,title:`刷新当前项目`},{default:z(()=>[b(B(i.loading?`扫描中...`:`刷新`),1)]),_:1},8,[`icon`,`loading`,`disabled`]),S(m,{icon:i.FolderAdd,disabled:r.disabled||i.loading,size:`default`,onClick:i.browseDirectory,class:`custom-dir-btn`,title:`浏览并选择其他目录`},{default:z(()=>[...n[2]||=[b(` 其他目录 `,-1)]]),_:1},8,[`icon`,`disabled`])]),i.packageFiles.length===0&&!i.loading?(N(),W(`div`,Ue,[S(g,{type:`info`,size:`small`},{default:z(()=>[...n[3]||=[b(` 未找到 package.json 文件,请确保项目包含有效的 package.json `,-1)]]),_:1})])):x(`v-if`,!0)])}var Ge=$(Ie,[[`render`,We],[`__scopeId`,`data-v-597798fd`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/PackageJsonSelector.vue`]]);i();var Ke=m({__name:`ParamListContainer`,props:{modelValue:{type:Array,required:!0},title:{type:String,required:!1},addable:{type:Boolean,required:!1},removable:{type:Boolean,required:!1},minItems:{type:Number,required:!1},createItem:{type:Function,required:!1},itemKey:{type:Function,required:!1},disableAdd:{type:Boolean,required:!1},disableRemove:{type:Function,required:!1}},emits:[`update:modelValue`,`add`,`remove`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,a=O(()=>Array.isArray(r.modelValue)?r.modelValue:[]);function o(){if(!r.addable||r.disableAdd)return;let e=r.createItem;if(!e)return;let t=[...a.value,e()];i(`update:modelValue`,t),i(`add`)}function s(e){if(!r.removable)return;let t=typeof r.minItems==`number`?r.minItems:0;if(a.value.length<=t)return;let n=a.value[e];if(r.disableRemove&&r.disableRemove(n,e))return;let o=[...a.value];o.splice(e,1),i(`update:modelValue`,o),i(`remove`,e)}function c(e,t){return r.itemKey?r.itemKey(e,t):t}let l={props:r,emit:i,items:a,doAdd:o,doRemove:s,getKey:c,get Plus(){return fe},get Delete(){return se}};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}});u(),i();var qe={class:`param-list`},Je={key:0,class:`param-list__title`},Ye={key:0,class:`param-list__title-text`},Xe={class:`param-list__title-actions`},Ze={key:1,class:`param-list__empty`},Qe={key:2,class:`param-list__body`},$e={class:`param-list__row-content`},et={key:0,class:`param-list__row-actions`};function tt(e,n,r,i,a,c){let l=de;return N(),W(`div`,qe,[r.title!==void 0||r.addable?(N(),W(`div`,Je,[r.title?(N(),W(`span`,Ye,B(r.title),1)):x(`v-if`,!0),s(`div`,Xe,[V(e.$slots,`title-actions`,{},void 0,!0),r.addable?(N(),o(l,{key:0,type:`primary`,plain:``,icon:i.Plus,disabled:r.disableAdd||!r.createItem,onClick:i.doAdd},null,8,[`icon`,`disabled`])):x(`v-if`,!0)])])):x(`v-if`,!0),i.items.length===0?(N(),W(`div`,Ze,[V(e.$slots,`empty`,{},void 0,!0)])):(N(),W(`div`,Qe,[(N(!0),W(Z,null,t(i.items,(t,n)=>(N(),W(`div`,{key:i.getKey(t,n),class:g([`param-list__row`,{"param-list__row--no-actions":!r.removable}])},[s(`div`,$e,[V(e.$slots,`row`,{item:t,index:n},void 0,!0)]),r.removable?(N(),W(`div`,et,[S(l,{type:`danger`,plain:``,icon:i.Delete,disabled:typeof r.minItems==`number`&&i.items.length<=r.minItems||(r.disableRemove?r.disableRemove(t,n):!1),onClick:e=>i.doRemove(n)},null,8,[`icon`,`disabled`,`onClick`])])):x(`v-if`,!0)],2))),128))]))])}var nt=$(Ke,[[`render`,tt],[`__scopeId`,`data-v-27c87a51`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/ParamListContainer.vue`]]);i(),J();var rt=m({__name:`NodeInputConfig`,props:{modelValue:{type:Array,required:!0},paramNames:{type:Array,required:!0},disableParamNameEdit:{type:Boolean,required:!1},predecessorNodes:{type:Array,required:!1}},emits:[`update:modelValue`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,a=I([]);q(()=>r.modelValue,e=>{a.value=e?[...e]:[]},{immediate:!0,deep:!0}),q(()=>r.paramNames,e=>{if(!e||e.length===0){a.value=[],i(`update:modelValue`,[]);return}let t=new Map(a.value.map(e=>[e.paramName,e])),n=[];for(let r of e)t.has(r)?n.push(t.get(r)):n.push({paramName:r,inputType:`manual`,required:!1,manualValue:``});a.value=n,i(`update:modelValue`,n)},{immediate:!0});function o(e,t,n){if(!a.value[e])return;let r=[...a.value];r[e]={...r[e],[t]:n},t===`inputType`&&(n===`manual`?(r[e].referenceNodeId=void 0,r[e].referenceOutputKey=void 0):r[e].manualValue=void 0),a.value=r,i(`update:modelValue`,r)}function s(e){return e.type===`command`?e.data.config?.displayName||e.data.config?.commandName||e.data.label||Q(`@FLOWNODE:命令节点`):e.type===`code`?e.data.config?.displayName||e.data.label||Q(`@FLOWNODE:代码节点`):e.data.label||e.id}function c(e){if(e.type===`command`)return[{key:`stdout`,label:Q(`@NODEINPUT:标准输出(stdout)`)},{key:`stderr`,label:Q(`@NODEINPUT:标准错误(stderr)`)},{key:`error`,label:Q(`@NODEINPUT:错误(error)`)}];if(e.type===`code`){let t=e.data?.config,n=Array.isArray(t?.codeOutputParams)?t.codeOutputParams:[];if(n.length>0)return n.map(e=>String(e?.key||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}));let r=t?.codeOutputKeys;return(Array.isArray(r)?r:[]).map(e=>String(e||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}if(e.type===`user_input`){let t=e.data?.config;return(Array.isArray(t?.userInputParams)?t.userInputParams:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}return[]}let l=O(()=>!r.predecessorNodes||r.predecessorNodes.length===0?[]:r.predecessorNodes.map(e=>({value:e.id,label:s(e),children:c(e).map(t=>({value:`${e.id}::${t.key}`,label:t.label}))})));function u(e,t){if(!t)return;let[n,r]=t.split(`::`),o=[...a.value];o[e]={...o[e],referenceNodeId:n,referenceOutputKey:r},a.value=o,i(`update:modelValue`,o)}function d(e){return e.referenceNodeId&&e.referenceOutputKey?`${e.referenceNodeId}::${e.referenceOutputKey}`:``}let f={props:r,emit:i,inputs:a,updateInput:o,getNodeDisplayName:s,getNodeOutputOptions:c,treeSelectOptions:l,handleReferenceSelect:u,getCurrentReferenceValue:d,get Link(){return G},ParamListContainer:nt,get $t(){return Q}};return Object.defineProperty(f,"__isScriptSetup",{enumerable:!1,value:!0}),f}});u(),i();var it={class:`node-input-config`},at={class:`input-row`},ot={class:`input-field param-name-field`},st={class:`field-label`},ct={class:`input-field type-field`},lt={class:`field-label`},ut={class:`input-field value-field`},dt={class:`field-label`},ft={class:`tree-node-label`},pt={class:`input-field required-field`},mt={class:`field-label`};function ht(e,t,n,r,i,a){let c=k,u=l,d=p,f=h,m=R,g=K;return N(),W(`div`,it,[S(r.ParamListContainer,{"model-value":r.inputs,title:void 0,addable:!1,removable:!1},{empty:z(()=>[b(B(r.$t(`@NODEINPUT:命令中未检测到变量参数`)),1)]),row:z(({item:e,index:t})=>[s(`div`,at,[s(`div`,ot,[s(`label`,st,B(r.$t(`@NODEINPUT:参数名`)),1),S(c,{"model-value":e.paramName,disabled:n.disableParamNameEdit,placeholder:r.$t(`@NODEINPUT:参数名`),size:`default`,"onUpdate:modelValue":e=>r.updateInput(t,`paramName`,e)},null,8,[`model-value`,`disabled`,`placeholder`,`onUpdate:modelValue`])]),s(`div`,ct,[s(`label`,lt,B(r.$t(`@NODEINPUT:类型`)),1),S(d,{"model-value":e.inputType,placeholder:r.$t(`@NODEINPUT:选择类型`),size:`default`,"onUpdate:modelValue":e=>r.updateInput(t,`inputType`,e)},{default:z(()=>[S(u,{value:`manual`,label:r.$t(`@NODEINPUT:手动输入`)},null,8,[`label`]),S(u,{value:`reference`,label:r.$t(`@NODEINPUT:引用节点`),disabled:!n.predecessorNodes||n.predecessorNodes.length===0},null,8,[`label`,`disabled`])]),_:1},8,[`model-value`,`placeholder`,`onUpdate:modelValue`])]),s(`div`,ut,[s(`label`,dt,B(r.$t(`@NODEINPUT:值`)),1),e.inputType===`manual`?(N(),o(c,{key:0,"model-value":e.manualValue,placeholder:r.$t(`@NODEINPUT:输入参数值`),size:`default`,clearable:``,"onUpdate:modelValue":e=>r.updateInput(t,`manualValue`,e)},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`])):(N(),o(m,{key:1,"model-value":r.getCurrentReferenceValue(e),data:r.treeSelectOptions,placeholder:r.$t(`@NODEINPUT:选择节点输出`),size:`default`,clearable:``,filterable:``,"check-strictly":``,"render-after-expand":!1,"onUpdate:modelValue":e=>r.handleReferenceSelect(t,e)},{default:z(({data:e})=>[s(`span`,ft,[e.children?x(`v-if`,!0):(N(),o(f,{key:0},{default:z(()=>[S(r.Link)]),_:1})),b(` `+B(e.label),1)])]),_:1},8,[`model-value`,`data`,`placeholder`,`onUpdate:modelValue`]))]),s(`div`,pt,[s(`label`,mt,B(r.$t(`@NODEINPUT:必填`)),1),S(g,{"model-value":!!e.required,"onUpdate:modelValue":e=>r.updateInput(t,`required`,e)},null,8,[`model-value`,`onUpdate:modelValue`])])])]),_:1},8,[`model-value`])])}var gt=$(rt,[[`render`,ht],[`__scopeId`,`data-v-9c9154d7`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/NodeInputConfig.vue`]]);i(),J();var _t=m({__name:`CodeNodeInputConfig`,props:{modelValue:{type:Array,required:!0},predecessorNodes:{type:Array,required:!1},title:{type:null,required:!1},addable:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=I([]);q(()=>r.modelValue,e=>{a.value=Array.isArray(e)?[...e]:[]},{immediate:!0,deep:!0});function o(e){return e.type===`command`?e.data.config?.displayName||e.data.config?.commandName||e.data.label||Q(`@FLOWNODE:命令节点`):e.type===`code`?e.data.config?.displayName||e.data.label||Q(`@FLOWNODE:代码节点`):e.data.label||e.id}function s(e){if(!e)return[];if(e.type===`command`)return[{key:`stdout`,label:Q(`@NODEINPUT:标准输出(stdout)`)},{key:`stderr`,label:Q(`@NODEINPUT:标准错误(stderr)`)},{key:`error`,label:Q(`@NODEINPUT:错误(error)`)}];if(e.type===`code`){let t=e.data?.config;return(Array.isArray(t?.codeOutputParams)?t.codeOutputParams:[]).map(e=>String(e?.key||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}if(e.type===`user_input`){let t=e.data?.config;return(Array.isArray(t?.userInputParams)?t.userInputParams:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}return[]}let c=O(()=>!r.predecessorNodes||r.predecessorNodes.length===0?[]:r.predecessorNodes.map(e=>({value:e.id,label:o(e),children:s(e).map(t=>({value:`${e.id}::${t.key}`,label:t.label}))})));function l(){return{name:``,source:`reference`,required:!1,ref:{nodeId:``,outputKey:`stdout`}}}function u(){let e=[...a.value,l()];a.value=e,i(`update:modelValue`,e)}t({addRow:u});function d(e,t){if(!a.value[e])return;let n=[...a.value];n[e]={...n[e],...t},t.source&&(t.source===`manual`?(n[e].ref=void 0,n[e].manualValue===void 0&&(n[e].manualValue=``)):(n[e].manualValue=void 0,n[e].ref||(n[e].ref={nodeId:``,outputKey:`stdout`}))),a.value=n,i(`update:modelValue`,n)}function f(e,t){if(!t)return;let[n,r]=t.split(`::`);d(e,{ref:{nodeId:n,outputKey:r}})}function p(e){return e.ref?.nodeId&&e.ref?.outputKey?`${e.ref.nodeId}::${e.ref.outputKey}`:``}let m={props:r,emit:i,inputs:a,getNodeDisplayName:o,getNodeOutputOptions:s,treeSelectOptions:c,createDefaultRow:l,addRow:u,updateRow:d,handleReferenceSelect:f,getCurrentReferenceValue:p,ParamListContainer:nt,get $t(){return Q}};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}});u(),i();var vt={class:`code-node-input-config`},yt={class:`input-row`},bt={class:`input-field name-field`},xt={class:`field-label`},St={class:`input-field type-field`},Ct={class:`field-label`},wt={class:`input-field value-field`},Tt={class:`field-label`},Et={class:`input-field action-field`},Dt={class:`field-label`};function Ot(e,t,n,r,i,a){let c=k,u=l,d=p,f=R,m=K;return N(),W(`div`,vt,[S(r.ParamListContainer,{"model-value":r.inputs,title:n.title,addable:n.addable!==!1,removable:!0,"min-items":0,"create-item":r.createDefaultRow,"onUpdate:modelValue":t[0]||=e=>r.emit(`update:modelValue`,e)},{empty:z(()=>[b(B(r.$t(`@NODECFG:暂无输入参数`)),1)]),row:z(({item:e,index:t})=>[s(`div`,yt,[s(`div`,bt,[s(`label`,xt,B(r.$t(`@NODECFG:参数名`)),1),S(c,{modelValue:e.name,"onUpdate:modelValue":[t=>e.name=t,e=>r.updateRow(t,{name:e})],placeholder:r.$t(`@NODECFG:参数名`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),s(`div`,St,[s(`label`,Ct,B(r.$t(`@NODECFG:参数值`)),1),S(d,{modelValue:e.source,"onUpdate:modelValue":[t=>e.source=t,e=>r.updateRow(t,{source:e})],style:{width:`110px`}},{default:z(()=>[S(u,{label:r.$t(`@NODECFG:引用`),value:`reference`,disabled:!n.predecessorNodes||n.predecessorNodes.length===0},null,8,[`label`,`disabled`]),S(u,{label:r.$t(`@NODECFG:手动`),value:`manual`},null,8,[`label`])]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,wt,[s(`label`,Tt,B(r.$t(`@NODECFG:值`)),1),e.source===`manual`?(N(),o(c,{key:0,modelValue:e.manualValue,"onUpdate:modelValue":[t=>e.manualValue=t,e=>r.updateRow(t,{manualValue:e})],placeholder:r.$t(`@NODECFG:请输入`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(N(),o(f,{key:1,"model-value":r.getCurrentReferenceValue(e),data:r.treeSelectOptions,placeholder:r.$t(`@NODEINPUT:选择节点输出`),clearable:``,filterable:``,"check-strictly":``,"render-after-expand":!1,"onUpdate:modelValue":e=>r.handleReferenceSelect(t,e)},null,8,[`model-value`,`data`,`placeholder`,`onUpdate:modelValue`]))]),s(`div`,Et,[s(`label`,Dt,B(r.$t(`@NODEINPUT:必填`)),1),S(m,{"model-value":!!e.required,"onUpdate:modelValue":e=>r.updateRow(t,{required:e})},null,8,[`model-value`,`onUpdate:modelValue`])])])]),_:1},8,[`model-value`,`title`,`addable`])])}var kt=$(_t,[[`render`,Ot],[`__scopeId`,`data-v-3064cd00`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/CodeNodeInputConfig.vue`]]);i(),J();var At=m({__name:`UserInputParamConfig`,props:{modelValue:{type:Array,required:!0},predecessorNodes:{type:Array,required:!1},title:{type:null,required:!1},addable:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=I([]);q(()=>r.modelValue,e=>{a.value=Array.isArray(e)?[...e]:[]},{immediate:!0,deep:!0});function o(){return{name:``,source:`manual`,defaultValue:``,required:!1}}function s(){let e=[...a.value,o()];a.value=e,i(`update:modelValue`,e)}t({addRow:s});function c(e,t){if(!a.value[e])return;let n=[...a.value];n[e]={...n[e],...t},t.source&&(t.source===`manual`?(n[e].ref=void 0,n[e].defaultValue===void 0&&(n[e].defaultValue=``)):(n[e].defaultValue=void 0,n[e].ref||(n[e].ref={nodeId:``,outputKey:`stdout`}))),a.value=n,i(`update:modelValue`,n)}function l(e){return e.type===`command`?e.data.config?.displayName||e.data.config?.commandName||e.data.label||Q(`@FLOWNODE:命令节点`):e.type===`code`?e.data.config?.displayName||e.data.label||Q(`@FLOWNODE:代码节点`):e.type===`user_input`?e.data.config?.displayName||e.data.label||Q(`@FLOWNODE:用户输入`):e.data.label||e.id}function u(e){if(!e)return[];if(e.type===`command`)return[{key:`stdout`,label:Q(`@NODEINPUT:标准输出(stdout)`)},{key:`stderr`,label:Q(`@NODEINPUT:标准错误(stderr)`)},{key:`error`,label:Q(`@NODEINPUT:错误(error)`)}];if(e.type===`code`){let t=e.data?.config;return(Array.isArray(t?.codeOutputParams)?t.codeOutputParams:[]).map(e=>String(e?.key||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}if(e.type===`user_input`){let t=e.data?.config;return(Array.isArray(t?.userInputParams)?t.userInputParams:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}return[]}let d=O(()=>!r.predecessorNodes||r.predecessorNodes.length===0?[]:r.predecessorNodes.map(e=>({value:e.id,label:l(e),children:u(e).map(t=>({value:`${e.id}::${t.key}`,label:t.label}))})));function f(e,t){if(!t)return;let[n,r]=t.split(`::`);c(e,{ref:{nodeId:n,outputKey:r}})}function p(e){return e.ref?.nodeId&&e.ref?.outputKey?`${e.ref.nodeId}::${e.ref.outputKey}`:``}let m={props:r,emit:i,params:a,createDefaultRow:o,addRow:s,updateRow:c,getNodeDisplayName:l,getNodeOutputOptions:u,treeSelectOptions:d,handleReferenceSelect:f,getCurrentReferenceValue:p,get Link(){return G},ParamListContainer:nt,get $t(){return Q}};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}});u(),i();var jt={class:`user-input-param-config`},Mt={class:`input-row`},Nt={class:`input-field name-field`},Pt={class:`field-label`},Ft={class:`input-field type-field`},It={class:`field-label`},Lt={class:`input-field value-field`},Rt={class:`field-label`},zt={class:`tree-node-label`},Bt={class:`input-field action-field`},Vt={class:`field-label`};function Ht(e,t,n,r,i,a){let c=k,u=l,d=p,f=h,m=R,g=K,_=de;return N(),W(`div`,jt,[S(r.ParamListContainer,{"model-value":r.params,title:n.title,addable:n.addable!==!1,removable:!0,"min-items":0,"create-item":r.createDefaultRow,"onUpdate:modelValue":t[0]||=e=>r.emit(`update:modelValue`,e)},{empty:z(()=>[b(B(r.$t(`@UINPUT:暂无输入参数`)),1)]),row:z(({item:e,index:t})=>[s(`div`,Mt,[s(`div`,Nt,[s(`label`,Pt,B(r.$t(`@UINPUT:参数名`)),1),S(c,{modelValue:e.name,"onUpdate:modelValue":[t=>e.name=t,e=>r.updateRow(t,{name:e})],placeholder:r.$t(`@UINPUT:参数名`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),s(`div`,Ft,[s(`label`,It,B(r.$t(`@UINPUT:类型`)),1),S(d,{modelValue:e.source,"onUpdate:modelValue":[t=>e.source=t,e=>r.updateRow(t,{source:e})],style:{width:`130px`}},{default:z(()=>[S(u,{label:r.$t(`@UINPUT:手动输入`),value:`manual`},null,8,[`label`]),S(u,{label:r.$t(`@UINPUT:引用`),value:`reference`,disabled:!r.props.predecessorNodes||r.props.predecessorNodes.length===0},null,8,[`label`,`disabled`])]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,Lt,[s(`label`,Rt,B(e.source===`manual`?r.$t(`@UINPUT:默认值`):r.$t(`@UINPUT:引用输出`)),1),e.source===`manual`?(N(),o(c,{key:0,modelValue:e.defaultValue,"onUpdate:modelValue":[t=>e.defaultValue=t,e=>r.updateRow(t,{defaultValue:e})],placeholder:r.$t(`@UINPUT:默认值`),clearable:``},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(N(),o(m,{key:1,"model-value":r.getCurrentReferenceValue(e),data:r.treeSelectOptions,placeholder:r.$t(`@NODEINPUT:选择节点输出`),clearable:``,filterable:``,"check-strictly":``,"render-after-expand":!1,"onUpdate:modelValue":e=>r.handleReferenceSelect(t,e)},{default:z(({data:e})=>[s(`span`,zt,[e.children?x(`v-if`,!0):(N(),o(f,{key:0},{default:z(()=>[S(r.Link)]),_:1})),b(` `+B(e.label),1)])]),_:1},8,[`model-value`,`data`,`placeholder`,`onUpdate:modelValue`]))]),s(`div`,Bt,[s(`label`,Vt,B(r.$t(`@NODEINPUT:必填`)),1),S(g,{"model-value":!!e.required,"onUpdate:modelValue":e=>r.updateRow(t,{required:e})},null,8,[`model-value`,`onUpdate:modelValue`])])])]),actions:z(()=>[n.addable===!1?x(`v-if`,!0):(N(),o(_,{key:0,type:`primary`,plain:``,size:`small`,onClick:r.addRow},{default:z(()=>[b(B(r.$t(`@UINPUT:添加参数`)),1)]),_:1}))]),_:1},8,[`model-value`,`title`,`addable`])])}var Ut=$(At,[[`render`,Ht],[`__scopeId`,`data-v-2a315a18`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/UserInputParamConfig.vue`]]);i(),J();var Wt=`function main(param) {
|
|
2
2
|
const out = new Object()
|
|
3
3
|
out.key0 = param.input
|
|
4
4
|
return out
|
|
@@ -18,4 +18,4 @@ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{$n as t,A as n,At as r
|
|
|
18
18
|
const out = new Object()
|
|
19
19
|
out.message = (name && ver) ? \`【\${name}】更新版本到\${ver}\` : ""
|
|
20
20
|
return out
|
|
21
|
-
}`}];function i(e){m.value.codeScript=e,U.success(Q(`@NODECFG:已应用示例`))}let a=e,o=n;function s(){o(`open-command-manager`)}let c=_e(),l=O(()=>{let e=Q(`@NODECFG:节点配置`);return a.node?`${e} - ${{command:Q(`@FLOWNODE:命令节点`),wait:Q(`@FLOWNODE:等待节点`),version:Q(`@FLOWNODE:版本管理`),confirm:Q(`@FLOWNODE:用户确认`),code:Q(`@FLOWNODE:代码节点`),condition:Q(`@FLOWNODE:条件`),user_input:Q(`@FLOWNODE:用户输入`)}[a.node.type]||a.node.type}`:e}),u=O({get:()=>a.modelValue,set:e=>o(`update:modelValue`,e)}),d=I(null),f=I(null),p=I(null),m=I({}),h=O(()=>{let e=(Array.isArray(m.value.userInputParams)?m.value.userInputParams:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e);return Array.from(new Set(e)).map(e=>({key:e}))}),g=O(()=>{let e=(Array.isArray(m.value.versionInputs)?m.value.versionInputs:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e);return Array.from(new Set(e))});function _(){let e=g.value;if(e.length===0){m.value.versionInputKey=``;return}let t=String(m.value.versionInputKey||``).trim();t&&e.includes(t)||(m.value.versionInputKey=e.includes(`version`)?`version`:e[0])}function ee(){let e=g.value;if(e.length===0){m.value.dependencyVersionInputKey=``;return}let t=String(m.value.dependencyVersionInputKey||``).trim();if(!(t&&e.includes(t))){if(e.includes(`dependencyVersion`)){m.value.dependencyVersionInputKey=`dependencyVersion`;return}m.value.dependencyVersionInputKey=e.includes(`version`)?`version`:e[0]}}function y(){return{id:`branch-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,name:Q(`@COND:默认分支`),handleId:`default`,priority:999,combine:`all`,rules:[],isDefault:!0}}function b(e){let t=(Array.isArray(e)?e:[]).map(e=>({id:String(e?.id||`branch-${Date.now()}-${Math.random().toString(36).slice(2,6)}`),name:String(e?.name||``).trim()||Q(`@COND:分支名称`),handleId:String(e?.handleId||``).trim()||`branch`,priority:Number.isFinite(Number(e?.priority))?Number(e?.priority):0,combine:e?.combine===`any`?`any`:`all`,rules:Array.isArray(e?.rules)?e.rules:[],isDefault:!!e?.isDefault}));t.some(e=>e.handleId==="default"||e.isDefault)||t.push(y());for(let e of t)e.handleId==="default"&&(e.isDefault=!0,e.name||=Q(`@COND:默认分支`));return t}function x(){return{left:{nodeId:``,outputKey:`stdout`},op:`contains`,right:``}}function S(){let e=b(m.value.conditionBranches);e.push({id:`branch-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,name:Q(`@COND:分支名称`),handleId:`branch-${e.length}`,priority:e.length,combine:`all`,rules:[x()],isDefault:!1}),m.value.conditionBranches=e}function w(e){let t=b(m.value.conditionBranches),n=t.find(t=>t.id===e);if(n?.handleId==="default"||n?.isDefault){U.warning(Q(`@COND:请至少保留一个默认分支`));return}m.value.conditionBranches=t.filter(t=>t.id!==e)}function T(e){let t=b(m.value.conditionBranches),n=t.find(t=>t.id===e);n&&(n.rules=Array.isArray(n.rules)?[...n.rules,x()]:[x()],m.value.conditionBranches=t)}function E(e,t){let n=b(m.value.conditionBranches),r=n.find(t=>t.id===e);r&&(r.rules=(Array.isArray(r.rules)?r.rules:[]).filter((e,n)=>n!==t),m.value.conditionBranches=n)}function k(e){let t=(Array.isArray(e)?e:[]).map(e=>({name:String(e?.name||``).trim(),source:e?.source===`manual`?`manual`:`reference`,manualValue:e?.manualValue===void 0||e?.manualValue===null?``:String(e.manualValue),ref:e?.ref?{nodeId:String(e.ref.nodeId||``),outputKey:String(e.ref.outputKey||`stdout`)}:void 0})).filter(e=>!!e.name||!!e.manualValue||!!e.ref?.nodeId),n=new Set,r=[];for(let e of t)n.has(e.name)||(n.add(e.name),r.push(e));return r.slice(0,30)}function A(e){return(Array.isArray(e)?e:[]).find(e=>String(e?.name||``).trim()===`version`)}function j(e){let t=Array.isArray(m.value.versionInputs)?[...m.value.versionInputs]:[],n=t.findIndex(e=>String(e?.name||``).trim()===`version`),r={...n>=0?t[n]:{name:`version`,source:`manual`,manualValue:``,ref:{nodeId:``,outputKey:`stdout`}},...e,name:`version`};e.source&&(e.source===`manual`?(r.ref=void 0,r.manualValue===void 0&&(r.manualValue=``)):(r.manualValue=void 0,r.ref||={nodeId:``,outputKey:`stdout`})),n>=0?t[n]=r:t.push(r),m.value.versionInputs=k(t)}function M(){let e=Array.isArray(m.value.versionInputs)?m.value.versionInputs:[];m.value.versionInputs=e.filter(e=>String(e?.name||``).trim()!==`version`)}function te(e){return!e?.ref?.nodeId||!e?.ref?.outputKey?``:`${e.ref.nodeId}::${e.ref.outputKey}`}function ne(e){if(!e)return;let[t,n]=e.split(`::`);j({source:`reference`,ref:{nodeId:t,outputKey:n}})}function N(e){let t=(Array.isArray(e)?e:[]).map(e=>({key:String(e?.key||``).trim(),type:e?.type||`String`,desc:String(e?.desc||``).trim()})).filter(e=>!!e.key),n=new Set,r=[];for(let e of t)n.has(e.key)||(n.add(e.key),r.push(e));return r.slice(0,30)}function F(){return{key:``,type:`String`}}function L(){let e=Array.isArray(m.value.codeOutputParams)?[...m.value.codeOutputParams]:[];e.push(F()),m.value.codeOutputParams=e}let R=I([]),z=O(()=>c.customCommands||[]),re=O(()=>{if(!m.value.commandId)return[];let e=z.value.find(e=>e.id===m.value.commandId);return e?Ce(e.command):[]}),ie=O(()=>{if(!a.node||!a.allNodes||!a.edges)return[];let e=a.node.id,t=a.edges,n=a.allNodes,r=[],i=new Set,o=[e];function s(e){return t.filter(t=>t.target===e).map(e=>e.source)}for(;o.length>0;){let e=s(o.shift());for(let t of e)if(!i.has(t)){i.add(t),o.push(t);let e=n.find(e=>e.id===t);if(e&&(e.type===`command`||e.type===`code`||e.type===`user_input`)&&e.data.config){if(e.type===`command`&&e.data.config?.useTerminal===!0)continue;r.push(e)}}}return r});function B(e){if(!e)return[];if(e.type===`command`)return[{key:`stdout`,label:Q(`@NODECFG:标准输出(stdout)`)},{key:`stderr`,label:Q(`@NODECFG:标准错误(stderr)`)},{key:`error`,label:Q(`@NODECFG:错误(error)`)}];if(e.type===`code`){let t=e.data?.config,n=Array.isArray(t?.codeOutputParams)?t.codeOutputParams:[];if(n.length>0)return n.map(e=>String(e?.key||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}));let r=t?.codeOutputKeys;return(Array.isArray(r)?r:[]).map(e=>String(e||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}if(e.type===`user_input`){let t=e.data?.config;return(Array.isArray(t?.userInputParams)?t.userInputParams:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}return[]}function V(e){return e.type===`command`?e.data.config?.commandName||e.data.label||Q(`@NODECFG:命令节点`):e.type===`code`?e.data.label||Q(`@FLOWNODE:代码节点`):e.type===`user_input`?e.data.label||Q(`@FLOWNODE:用户输入`):e.data.label||e.id}function H(e){let t=new Map;for(let n of Array.isArray(e)?e:[]){let e=String(n?.key||``).trim();e&&t.set(e,String(n?.desc||``).trim())}return[{key:`stdout`,desc:t.get(`stdout`)||``},{key:`stderr`,desc:t.get(`stderr`)||``},{key:`error`,desc:t.get(`error`)||``}]}q(()=>a.node,e=>{if(!e)return;let t=e.data.config;if(e.type===`command`)m.value={commandId:t?.commandId,commandName:t?.commandName,useTerminal:t?.useTerminal||!1,restartExistingTerminal:t?.restartExistingTerminal||!1,inputs:Array.isArray(t?.inputs)?t.inputs:[],commandOutputParams:H(t?.commandOutputParams),nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0};else if(e.type===`wait`)m.value={waitSeconds:t?.waitSeconds||5,nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0};else if(e.type===`version`){let n=`bump`;t?.versionSource===`input`&&(n=`input`);let r=A(t?.versionInputs);n!==`input`&&(t?.versionTarget!==`dependency`&&r?n=r.source===`manual`?`manual`:`reference`:t?.inputRef?n=`reference`:t?.dependencyVersion||t?.versionTarget!==`dependency`&&!t?.versionBump?n=`manual`:(t?.dependencyVersionBump||t?.versionBump)&&(n=`bump`)),m.value={versionTarget:t?.versionTarget||`version`,versionBump:t?.versionBump||`patch`,packageJsonPath:t?.packageJsonPath||``,dependencyName:t?.dependencyName||``,dependencyVersion:t?.dependencyVersion||``,dependencyType:t?.dependencyType||`dependencies`,dependencyVersionMode:t?.dependencyVersionBump?`bump`:`manual`,dependencyVersionBump:t?.dependencyVersionBump||`patch`,versionInputs:k(t?.versionInputs),versionSource:n,inputRef:t?.inputRef,extractVersionFromRefOutput:t?.extractVersionFromRefOutput??!0,versionInputKey:String(t?.versionInputKey||``).trim()||void 0,dependencyVersionInputKey:String(t?.dependencyVersionInputKey||``).trim()||void 0,nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0},n===`input`&&(m.value.versionTarget===`dependency`?ee():_()),t?.packageJsonPath&&W(t.packageJsonPath)}else if(e.type===`code`){let n=Array.isArray(t?.codeInputs)?t.codeInputs:[],r=Array.isArray(t?.codeOutputParams)?t.codeOutputParams:[];m.value={codeScript:t?.codeScript||``,codeInputs:n,codeOutputParams:r,nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0}}else if(e.type===`confirm`)m.value={nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0};else if(e.type===`condition`){let n=b(t?.conditionBranches);m.value={conditionBranches:n,nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0}}else e.type===`user_input`&&(m.value={userInputParams:Array.isArray(t?.userInputParams)?t.userInputParams:[],nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0})},{immediate:!0});async function W(e){try{let t=await fetch(`/api/read-package-json`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({packageJsonPath:e})});if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();if(n.success){let e=[],t=m.value.dependencyType||`dependencies`;if(t===`dependencies`&&n.dependencies)e.push(...Object.keys(n.dependencies));else if(t===`devDependencies`&&n.devDependencies)e.push(...Object.keys(n.devDependencies));else if(t===`peerDependencies`){let t=n.peerDependencies&&Object.keys(n.peerDependencies).length>0?n.peerDependencies:n.peerDependenciesMeta;t&&e.push(...Object.keys(t))}R.value=e.sort()}}catch(e){console.error(Q(`@NODECFG:读取依赖列表失败`),e),R.value=[]}}q(()=>m.value.dependencyType,()=>{m.value.packageJsonPath&&W(m.value.packageJsonPath)});function oe(e){m.value.selectedPackageFile=e,e?(m.value.packageJsonPath=e.fullPath,W(e.fullPath)):R.value=[]}function K(e){m.value.commandId=e.id,m.value.commandName=e.name}function J(){return`step-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function ce(){if(!a.node)return;let e=null;if(a.node.type===`command`){if(!m.value.commandId){U.warning(Q(`@NODECFG:请选择要执行的命令`));return}let t=Array.isArray(m.value.inputs)?m.value.inputs:[];for(let e of t){if(!e||!e.required)continue;let t=String(e.paramName||``).trim()||Q(`@NODEINPUT:参数名`);if(e.inputType===`reference`){let n=String(e.referenceNodeId||``).trim(),r=String(e.referenceOutputKey||``).trim();if(!n||!r){U.warning(Q(`@NODECFG:必填参数未选择引用输出`,{name:t}));return}}else{let n=e.manualValue;if(n==null||String(n).trim()===``){U.warning(Q(`@NODECFG:请输入必填参数的值`,{name:t}));return}}}e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`command`,displayName:m.value.nodeName?.trim()||void 0,commandId:m.value.commandId,commandName:m.value.commandName||``,useTerminal:m.value.useTerminal||!1,restartExistingTerminal:m.value.useTerminal&&m.value.restartExistingTerminal||!1,inputs:m.value.inputs||[],commandOutputParams:H(m.value.commandOutputParams),enabled:m.value.enabled??!0}}else if(a.node.type===`wait`){if(!m.value.waitSeconds||m.value.waitSeconds<=0){U.warning(Q(`@NODECFG:等待时间必须大于0秒`));return}e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`wait`,displayName:m.value.nodeName?.trim()||void 0,waitSeconds:m.value.waitSeconds,enabled:m.value.enabled??!0}}else if(a.node.type===`version`){if(m.value.versionTarget===`dependency`){if(!m.value.dependencyName?.trim()){U.warning(Q(`@NODECFG:请选择依赖包名称`));return}if(m.value.versionSource===`manual`&&!m.value.dependencyVersion?.trim()){U.warning(Q(`@NODECFG:请输入依赖包版本号`));return}if(m.value.versionSource===`reference`&&!m.value.inputRef){U.warning(Q(`@NODECFG:请选择要引用的节点输出`));return}if(m.value.versionSource===`input`&&!String(m.value.dependencyVersionInputKey||``).trim()){U.warning(Q(`@NODECFG:请选择要引用的输入字段`));return}}else if(m.value.versionSource===`input`&&!String(m.value.versionInputKey||``).trim()){U.warning(Q(`@NODECFG:请选择要引用的输入字段`));return}e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`version`,displayName:m.value.nodeName?.trim()||void 0,versionTarget:m.value.versionTarget||`version`,versionBump:m.value.versionSource===`bump`?m.value.versionBump||`patch`:void 0,packageJsonPath:m.value.packageJsonPath?.trim()||void 0,dependencyName:m.value.versionTarget===`dependency`?m.value.dependencyName?.trim():void 0,dependencyVersion:m.value.versionTarget===`dependency`&&m.value.versionSource===`manual`?m.value.dependencyVersion?.trim():void 0,dependencyVersionBump:m.value.versionTarget===`dependency`&&m.value.versionSource===`bump`?m.value.dependencyVersionBump:void 0,dependencyType:m.value.versionTarget===`dependency`?m.value.dependencyType:void 0,versionInputs:k(m.value.versionInputs),versionSource:m.value.versionSource,inputRef:m.value.versionSource===`reference`?m.value.inputRef:void 0,extractVersionFromRefOutput:m.value.versionSource===`reference`?m.value.extractVersionFromRefOutput??!0:void 0,versionInputKey:m.value.versionSource===`input`&&m.value.versionTarget!==`dependency`&&String(m.value.versionInputKey||``).trim()||void 0,dependencyVersionInputKey:m.value.versionSource===`input`&&m.value.versionTarget===`dependency`&&String(m.value.dependencyVersionInputKey||``).trim()||void 0,enabled:m.value.enabled??!0}}else if(a.node.type===`code`){if(!m.value.codeScript||!String(m.value.codeScript).trim()){U.warning(Q(`@NODECFG:请输入脚本`));return}let t=k(m.value.codeInputs);for(let e of Array.isArray(t)?t:[]){if(!e||!e.required)continue;let t=String(e.name||``).trim()||Q(`@NODECFG:参数名`);if(e.source===`reference`){let n=String(e.ref?.nodeId||``).trim(),r=String(e.ref?.outputKey||``).trim();if(!n||!r){U.warning(Q(`@NODECFG:必填参数未选择引用输出`,{name:t}));return}}else{let n=e.manualValue;if(n==null||String(n).trim()===``){U.warning(Q(`@NODECFG:请输入必填参数的值`,{name:t}));return}}}let n=N(m.value.codeOutputParams);if(n.length===0){U.warning(Q(`@NODECFG:请配置输出键`));return}let r=n.map(e=>e.key);e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`code`,displayName:m.value.nodeName?.trim()||void 0,codeScript:m.value.codeScript,codeInputs:t,codeOutputParams:n,codeOutputKeys:r,enabled:m.value.enabled??!0}}else if(a.node.type===`confirm`)e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`confirm`,displayName:m.value.nodeName?.trim()||void 0,enabled:m.value.enabled??!0};else if(a.node.type===`condition`){let t=b(m.value.conditionBranches);if(!t.some(e=>e.handleId==="default"||e.isDefault)){U.warning(Q(`@COND:请至少保留一个默认分支`));return}for(let e of t)if(e.isDefault&&e.handleId!=="default"){U.warning(Q(`@COND:默认分支必须使用handleId=default`));return}e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`condition`,displayName:m.value.nodeName?.trim()||void 0,conditionBranches:t,enabled:m.value.enabled??!0}}else if(a.node.type===`user_input`){let t=(Array.isArray(m.value.userInputParams)?m.value.userInputParams:[]).map(e=>({name:String(e?.name||``).trim(),source:e?.source===`reference`?`reference`:`manual`,required:!!e?.required,defaultValue:e?.defaultValue===void 0||e?.defaultValue===null?``:String(e.defaultValue),ref:e?.ref?{nodeId:String(e.ref.nodeId||``),outputKey:String(e.ref.outputKey||`stdout`)}:void 0})).filter(e=>!!e.name),n=new Set,r=[];for(let e of t)e.name&&(n.has(e.name)||(n.add(e.name),r.push(e)));for(let e of r)if(e.required&&e.source===`reference`){let t=String(e?.ref?.nodeId||``).trim(),n=String(e?.ref?.outputKey||``).trim();if(!t||!n){U.warning(Q(`@NODECFG:必填参数未选择引用输出`,{name:e.name}));return}}e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`user_input`,displayName:m.value.nodeName?.trim()||void 0,userInputParams:r,enabled:m.value.enabled??!0}}e&&(o(`update-config`,a.node.id,e),U.success(Q(`@NODECFG:节点配置已保存`)),u.value=!1)}let le={codeScriptExample:Wt,codeScriptExamples:r,applyCodeExample:i,props:a,emit:o,openCommandManager:s,configStore:c,dialogTitle:l,visible:u,codeInputRef:d,versionInputRef:f,userInputRef:p,formData:m,userInputOutputParams:h,availableVersionInputKeys:g,ensureDefaultVersionInputKey:_,ensureDefaultDependencyVersionInputKey:ee,createDefaultBranch:y,normalizeBranches:b,createRule:x,addBranch:S,removeBranch:w,addRuleRow:T,removeRuleRow:E,normalizeCodeInputs:k,getVersionFieldInput:A,upsertVersionFieldInput:j,removeVersionFieldInput:M,getVersionFieldRefValue:te,handleVersionFieldRefSelect:ne,normalizeCodeOutputs:N,createCodeOutputParam:F,addCodeOutputRow:L,availableDependencies:R,availableCommands:z,currentCommandVariables:re,predecessorNodes:ie,getNodeOutputOptions:B,getNodeDisplayName:V,ensureCommandOutputParams:H,loadDependenciesFromPackageJson:W,handlePackageFileChange:oe,selectCommand:K,generateId:J,saveConfig:ce,get Clock(){return P},get DocumentAdd(){return ae},get Link(){return G},get Folder(){return D},get Select(){return v},get Plus(){return fe},get Delete(){return se},get Minus(){return C},CommonDialog:ve,PackageJsonSelector:Ge,NodeInputConfig:gt,CodeNodeInputConfig:kt,UserInputParamConfig:Ut,ParamListContainer:nt,SvgIcon:he,get $t(){return Q}};return Object.defineProperty(le,"__isScriptSetup",{enumerable:!1,value:!0}),le}});i(),u();var Kt={key:0,class:`config-content`},qt={class:`config-section`},Jt={class:`section-title`},Yt={key:0,class:`config-section`},Xt={class:`section-title`},Zt={key:1,class:`config-section`},Qt={class:`section-title`},$t={class:`sub-section`},en={class:`sub-title`},tn={key:0,class:`empty-tip`},nn={key:1,class:`condition-branch-list`},rn={class:`branch-main`},an={class:`branch-header`},on={class:`branch-title`},sn={key:0,class:`branch-badge`},cn={class:`branch-meta`},ln={key:0,class:`branch-rules`},un={class:`rules-header`},dn={class:`rule-col`},fn={class:`field-label`},pn={class:`rule-col`},mn={class:`field-label`},hn={class:`rule-col`},gn={class:`field-label`},_n={class:`rule-col`,style:{"align-self":`flex-end`}},vn={key:1,class:`branch-default-tip`},yn={key:0,class:`branch-actions`},bn={key:2,class:`config-section`},xn={class:`section-title`},Sn={key:3,class:`config-section`},Cn={class:`section-title`},wn={key:4,class:`config-section`},Tn={class:`section-title`},En={key:5,class:`config-section`},Dn={class:`section-title`},On={key:6,class:`config-section`},kn={class:`section-title`},An={class:`output-param-row`},jn={class:`output-param-field`},Mn={class:`field-label`},Nn={key:7,class:`config-section`},Pn={class:`section-title`},Fn={key:0,class:`empty-tip`},In={key:1,class:`command-list`},Ln=[`onClick`],Rn={class:`command-info`},zn={class:`command-header`},Bn={class:`command-name`},Vn={key:0,class:`command-desc`},Hn={class:`command-code`},Un={class:`command-dir`},Wn={key:8,class:`config-section`},Gn={class:`section-title`},Kn={style:{"margin-left":`var(--spacing-md)`}},qn={key:9,class:`config-section`},Jn={class:`section-title`},Yn={class:`sub-section`},Xn={class:`sub-title`},Zn={class:`code-examples`},Qn={class:`examples-title`},$n={class:`examples-actions`},er={key:10,class:`config-section`},tr={class:`section-title`},nr={class:`reference-tip`},rr={class:`reference-tip`},ir={class:`node-option`},ar={class:`node-name`},or={class:`node-id`},sr={class:`reference-tip`},cr={class:`reference-tip`},lr={key:11,class:`config-section`},ur={class:`section-title`},dr={class:`output-param-row`},fr={class:`output-param-field`},pr={class:`field-label`},mr={class:`output-param-field`},hr={class:`field-label`},gr={key:12,class:`config-section`},_r={class:`section-title`},vr={class:`output-param-row`},yr={class:`output-param-field`},br={class:`field-label`},xr={class:`output-param-field`},Sr={class:`field-label`},Cr={class:`dialog-footer`},wr={class:`footer-actions`};function Tr(e,r,i,a,c,u){let f=h,m=k,v=_,C=K,w=d,T=de,E=ue,D=n,O=ee,A=l,M=p,te=y,ne=j,P=R;return N(),o(a.CommonDialog,{modelValue:a.visible,"onUpdate:modelValue":r[35]||=e=>a.visible=e,title:a.dialogTitle,size:`extra-large`,"append-to-body":!0,"z-index":8e5,"custom-class":`node-config-dialog`},{footer:z(()=>[s(`div`,Cr,[s(`div`,wr,[s(`button`,{type:`button`,class:`dialog-cancel-btn`,onClick:r[34]||=e=>a.visible=!1},B(a.$t(`@NODECFG:取消`)),1),s(`button`,{type:`button`,class:`dialog-confirm-btn`,onClick:a.saveConfig},[S(f,null,{default:z(()=>[S(a.Select)]),_:1}),s(`span`,null,B(a.$t(`@NODECFG:保存配置`)),1)])])])]),default:z(()=>[i.node?(N(),W(`div`,Kt,[x(` 通用配置 `),s(`div`,qt,[s(`div`,Jt,[S(f,null,{default:z(()=>[S(a.Select)]),_:1}),b(` `+B(a.$t(`@NODECFG:通用设置`)),1)]),S(w,{"label-width":`120px`},{default:z(()=>[S(v,{label:a.$t(`@NODECFG:节点名称`)},{default:z(()=>[S(m,{modelValue:a.formData.nodeName,"onUpdate:modelValue":r[0]||=e=>a.formData.nodeName=e,placeholder:a.$t(`@NODECFG:请输入节点名称`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),S(v,{label:a.$t(`@NODECFG:启用节点`)},{default:z(()=>[S(C,{modelValue:a.formData.enabled,"onUpdate:modelValue":r[1]||=e=>a.formData.enabled=e},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1})]),x(` 版本节点输入参数配置(同代码节点) `),i.node?.type===`version`?(N(),W(`div`,Yt,[s(`div`,Xt,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输入配置`))+` `,1),S(T,{type:`primary`,plain:``,icon:a.Plus,style:{"margin-left":`auto`},onClick:r[2]||=e=>a.versionInputRef?.addRow()},null,8,[`icon`])]),S(a.CodeNodeInputConfig,{ref:`versionInputRef`,"model-value":a.formData.versionInputs||[],"onUpdate:modelValue":r[3]||=e=>a.formData.versionInputs=e,"predecessor-nodes":a.predecessorNodes,title:void 0,addable:!1},null,8,[`model-value`,`predecessor-nodes`])])):x(`v-if`,!0),x(` 条件节点配置 `),i.node?.type===`condition`?(N(),W(`div`,Zt,[s(`div`,Qt,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@COND:条件配置`))+` `,1),S(T,{class:`icon-btn`,type:`primary`,plain:``,circle:``,icon:a.Plus,style:{"margin-left":`auto`},title:a.$t(`@COND:添加分支`),onClick:a.addBranch},null,8,[`icon`,`title`])]),s(`div`,$t,[s(`div`,en,[s(`span`,null,B(a.$t(`@COND:分支列表`)),1)]),!a.formData.conditionBranches||a.formData.conditionBranches.length===0?(N(),W(`div`,tn,B(a.$t(`@COND:请至少保留一个默认分支`)),1)):(N(),W(`div`,nn,[(N(!0),W(Z,null,t(a.formData.conditionBranches,e=>(N(),W(`div`,{key:e.id,class:`condition-branch-card`},[s(`div`,rn,[s(`div`,an,[s(`div`,on,[e.handleId==="default"||e.isDefault?(N(),W(`span`,sn,B(a.$t(`@COND:默认分支`)),1)):x(`v-if`,!0),S(m,{modelValue:e.name,"onUpdate:modelValue":t=>e.name=t,size:`small`,disabled:e.handleId==="default"||e.isDefault,placeholder:a.$t(`@COND:分支名称`)},null,8,[`modelValue`,`onUpdate:modelValue`,`disabled`,`placeholder`])])]),s(`div`,cn,[S(w,{"label-width":`80px`},{default:z(()=>[S(v,{label:a.$t(`@COND:优先级`)},{default:z(()=>[S(E,{modelValue:e.priority,"onUpdate:modelValue":t=>e.priority=t,min:0,max:9999,size:`small`},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`label`]),S(v,{label:a.$t(`@COND:规则组合`)},{default:z(()=>[S(O,{modelValue:e.combine,"onUpdate:modelValue":t=>e.combine=t,size:`small`},{default:z(()=>[S(D,{value:`all`},{default:z(()=>[b(B(a.$t(`@COND:且(ALL)`)),1)]),_:1}),S(D,{value:`any`},{default:z(()=>[b(B(a.$t(`@COND:或(ANY)`)),1)]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`label`])]),_:2},1024)]),e.handleId!=="default"&&!e.isDefault?(N(),W(`div`,ln,[s(`div`,un,[s(`span`,null,B(a.$t(`@COND:规则`)),1),S(T,{class:`icon-btn`,type:`primary`,plain:``,circle:``,icon:a.Plus,title:a.$t(`@COND:添加规则`),onClick:t=>a.addRuleRow(e.id)},null,8,[`icon`,`title`,`onClick`])]),(N(!0),W(Z,null,t(e.rules,(n,r)=>(N(),W(`div`,{key:r,class:`rule-row`},[s(`div`,dn,[s(`div`,fn,B(a.$t(`@COND:左值(引用输出)`)),1),S(M,{modelValue:n.left.nodeId,"onUpdate:modelValue":e=>n.left.nodeId=e,filterable:``,clearable:``,size:`small`,style:{width:`100%`},placeholder:a.$t(`@NODECFG:引用节点`)},{default:z(()=>[(N(!0),W(Z,null,t(a.predecessorNodes,e=>(N(),o(A,{key:e.id,label:a.getNodeDisplayName(e),value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),S(M,{modelValue:n.left.outputKey,"onUpdate:modelValue":e=>n.left.outputKey=e,filterable:``,size:`small`,style:{width:`100%`,"margin-top":`6px`},placeholder:a.$t(`@NODECFG:输出`)},{default:z(()=>[(N(!0),W(Z,null,t(a.getNodeOutputOptions(a.predecessorNodes.find(e=>e.id===n.left.nodeId)),e=>(N(),o(A,{key:e.key,label:e.label,value:e.key},null,8,[`label`,`value`]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),s(`div`,pn,[s(`div`,mn,B(a.$t(`@COND:操作符`)),1),S(M,{modelValue:n.op,"onUpdate:modelValue":e=>n.op=e,size:`small`,style:{width:`100%`}},{default:z(()=>[S(A,{label:`==`,value:`==`}),S(A,{label:`!=`,value:`!=`}),S(A,{label:`>`,value:`>`}),S(A,{label:`>=`,value:`>=`}),S(A,{label:`<`,value:`<`}),S(A,{label:`<=`,value:`<=`}),S(A,{label:`contains`,value:`contains`}),S(A,{label:`not_contains`,value:`not_contains`}),S(A,{label:`isEmpty`,value:`isEmpty`}),S(A,{label:`isNotEmpty`,value:`isNotEmpty`})]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,hn,[s(`div`,gn,B(a.$t(`@COND:右值`)),1),S(m,{modelValue:n.right,"onUpdate:modelValue":e=>n.right=e,size:`small`,disabled:n.op===`isEmpty`||n.op===`isNotEmpty`},null,8,[`modelValue`,`onUpdate:modelValue`,`disabled`])]),s(`div`,_n,[S(T,{class:`icon-btn`,type:`danger`,plain:``,circle:``,icon:a.Minus,title:a.$t(`@COND:删除规则`),onClick:t=>a.removeRuleRow(e.id,r)},null,8,[`icon`,`title`,`onClick`])])]))),128))])):(N(),W(`div`,vn,B(a.$t(`@COND:默认分支`))+`:不配置规则,未命中其它分支时走这里 `,1))]),e.handleId==="default"||e.isDefault?x(`v-if`,!0):(N(),W(`div`,yn,[S(T,{class:`icon-btn`,type:`danger`,plain:``,circle:``,icon:a.Delete,title:a.$t(`@COND:删除分支`),onClick:t=>a.removeBranch(e.id)},null,8,[`icon`,`title`,`onClick`])]))]))),128))]))])])):x(`v-if`,!0),i.node?.type===`command`?(N(),W(`div`,bn,[s(`div`,xn,[S(f,null,{default:z(()=>[S(a.Select)]),_:1}),b(` `+B(a.$t(`@NODECFG:执行方式`)),1)]),S(w,{"label-width":`120px`},{default:z(()=>[S(v,{label:a.$t(`@NODECFG:执行方式`)},{default:z(()=>[S(O,{modelValue:a.formData.useTerminal,"onUpdate:modelValue":r[4]||=e=>a.formData.useTerminal=e},{default:z(()=>[S(D,{value:!1},{default:z(()=>[b(B(a.$t(`@NODECFG:普通执行`)),1)]),_:1}),S(D,{value:!0},{default:z(()=>[b(B(a.$t(`@NODECFG:终端执行`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),a.formData.useTerminal?(N(),o(v,{key:0,label:a.$t(`@NODECFG:终端选项`)},{default:z(()=>[S(te,{modelValue:a.formData.restartExistingTerminal,"onUpdate:modelValue":r[5]||=e=>a.formData.restartExistingTerminal=e},{default:z(()=>[b(B(a.$t(`@NODECFG:重启现存终端命令`)),1)]),_:1},8,[`modelValue`])]),_:1},8,[`label`])):x(`v-if`,!0)]),_:1})])):x(`v-if`,!0),x(` 命令输入参数配置(独立版块) `),i.node?.type===`command`&&a.formData.commandId&&a.formData.inputs?(N(),W(`div`,Sn,[s(`div`,Cn,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输入配置`)),1)]),S(a.NodeInputConfig,{modelValue:a.formData.inputs,"onUpdate:modelValue":r[6]||=e=>a.formData.inputs=e,"param-names":a.currentCommandVariables,"disable-param-name-edit":!0,"predecessor-nodes":a.predecessorNodes},null,8,[`modelValue`,`param-names`,`predecessor-nodes`])])):x(`v-if`,!0),x(` 代码节点输入参数配置(节点级独立版块) `),i.node?.type===`code`?(N(),W(`div`,wn,[s(`div`,Tn,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输入配置`))+` `,1),S(T,{type:`primary`,plain:``,icon:a.Plus,style:{"margin-left":`auto`},onClick:r[7]||=e=>a.codeInputRef?.addRow()},null,8,[`icon`])]),S(a.CodeNodeInputConfig,{ref:`codeInputRef`,"model-value":a.formData.codeInputs||[],"onUpdate:modelValue":r[8]||=e=>a.formData.codeInputs=e,"predecessor-nodes":a.predecessorNodes,title:void 0,addable:!1},null,8,[`model-value`,`predecessor-nodes`])])):x(`v-if`,!0),x(` 用户输入节点参数配置(节点级独立版块) `),i.node?.type===`user_input`?(N(),W(`div`,En,[s(`div`,Dn,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输入配置`))+` `,1),S(T,{type:`primary`,plain:``,icon:a.Plus,style:{"margin-left":`auto`},onClick:r[9]||=e=>a.userInputRef?.addRow()},null,8,[`icon`])]),S(a.UserInputParamConfig,{ref:`userInputRef`,"model-value":a.formData.userInputParams||[],"onUpdate:modelValue":r[10]||=e=>a.formData.userInputParams=e,"predecessor-nodes":a.predecessorNodes,title:void 0,addable:!1},null,8,[`model-value`,`predecessor-nodes`])])):x(`v-if`,!0),x(` 用户输入节点输出配置(字段与输入一致,禁用) `),i.node?.type===`user_input`?(N(),W(`div`,On,[s(`div`,kn,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输出配置`)),1)]),S(a.ParamListContainer,{"model-value":a.userInputOutputParams,title:void 0,addable:!1,removable:!1},{empty:z(()=>[b(B(a.$t(`@NODECFG:暂无输出参数`)||``),1)]),row:z(({item:e})=>[s(`div`,An,[s(`div`,jn,[s(`label`,Mn,B(a.$t(`@NODECFG:参数名`)),1),S(m,{"model-value":e.key,disabled:``},null,8,[`model-value`])])])]),_:1},8,[`model-value`])])):x(`v-if`,!0),x(` 命令节点配置 `),i.node?.type===`command`?(N(),W(`div`,Nn,[s(`div`,Pn,[S(f,null,{default:z(()=>[S(a.SvgIcon,{"icon-class":`custom-cmd`})]),_:1}),b(` `+B(a.$t(`@NODECFG:命令配置`))+` `,1),S(T,{type:`primary`,plain:``,size:`small`,style:{"margin-left":`auto`},onClick:a.openCommandManager},{default:z(()=>[b(B(a.$t(`@NODECFG:管理命令`)),1)]),_:1})]),S(w,{"label-width":`100px`},{default:z(()=>[S(v,{label:a.$t(`@NODECFG:选择命令`),required:``},{default:z(()=>[a.availableCommands.length===0?(N(),W(`div`,Fn,B(a.$t(`@NODECFG:暂无可用命令请先创建命令`)),1)):(N(),W(`div`,In,[(N(!0),W(Z,null,t(a.availableCommands,e=>(N(),W(`div`,{key:e.id,class:g([`command-item`,{selected:a.formData.commandId===e.id}]),onClick:t=>a.selectCommand(e)},[s(`div`,Rn,[s(`div`,zn,[s(`span`,Bn,B(e.name),1),e.description?(N(),W(`span`,Vn,B(e.description),1)):x(`v-if`,!0)]),s(`code`,Hn,B(e.command),1),s(`div`,Un,[S(f,null,{default:z(()=>[S(a.Folder)]),_:1}),s(`span`,null,B(e.directory?e.directory.replace(/\\/g,`/`):a.$t(`@NODECFG:当前目录`)),1)])]),a.formData.commandId===e.id?(N(),o(f,{key:0,class:`check-icon`},{default:z(()=>[S(a.Select)]),_:1})):x(`v-if`,!0)],10,Ln))),128))]))]),_:1},8,[`label`])]),_:1})])):x(`v-if`,!0),x(` 等待节点配置 `),i.node?.type===`wait`?(N(),W(`div`,Wn,[s(`div`,Gn,[S(f,null,{default:z(()=>[S(a.Clock)]),_:1}),b(` `+B(a.$t(`@NODECFG:等待配置`)),1)]),S(w,{"label-width":`100px`},{default:z(()=>[S(v,{label:a.$t(`@NODECFG:等待时间`),required:``},{default:z(()=>[S(E,{modelValue:a.formData.waitSeconds,"onUpdate:modelValue":r[11]||=e=>a.formData.waitSeconds=e,min:1,max:3600,step:1},null,8,[`modelValue`]),s(`span`,Kn,B(a.$t(`@NODECFG:秒`)),1)]),_:1},8,[`label`])]),_:1})])):x(`v-if`,!0),i.node?.type===`code`?(N(),W(`div`,qn,[s(`div`,Jn,[S(f,null,{default:z(()=>[S(a.DocumentAdd)]),_:1}),b(` `+B(a.$t(`@NODECFG:代码配置`)),1)]),s(`div`,Yn,[s(`div`,Xn,[s(`span`,null,B(a.$t(`@NODECFG:代码`)),1)]),S(m,{modelValue:a.formData.codeScript,"onUpdate:modelValue":r[12]||=e=>a.formData.codeScript=e,type:`textarea`,rows:10,placeholder:a.codeScriptExample},null,8,[`modelValue`]),s(`div`,Zn,[s(`div`,Qn,B(a.$t(`@NODECFG:示例代码`)),1),s(`div`,$n,[(N(),W(Z,null,t(a.codeScriptExamples,e=>S(T,{key:e.key,type:`primary`,plain:``,onClick:t=>a.applyCodeExample(e.script)},{default:z(()=>[b(B(e.title),1)]),_:2},1032,[`onClick`])),64))])])])])):x(`v-if`,!0),x(` 版本节点配置 `),i.node?.type===`version`?(N(),W(`div`,er,[s(`div`,tr,[S(f,null,{default:z(()=>[S(a.DocumentAdd)]),_:1}),b(` `+B(a.$t(`@NODECFG:版本配置`)),1)]),S(w,{"label-width":`120px`},{default:z(()=>[S(v,{label:a.$t(`@NODECFG:package.json`)},{default:z(()=>[S(a.PackageJsonSelector,{modelValue:a.formData.packageJsonPath,"onUpdate:modelValue":r[13]||=e=>a.formData.packageJsonPath=e,placeholder:a.$t(`@NODECFG:留空则使用当前目录的package.json`),clearable:``,onChange:a.handlePackageFileChange},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),S(v,{label:a.$t(`@NODECFG:修改目标`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.versionTarget,"onUpdate:modelValue":r[14]||=e=>a.formData.versionTarget=e},{default:z(()=>[S(D,{value:`version`},{default:z(()=>[b(B(a.$t(`@NODECFG:version字段`)),1)]),_:1}),S(D,{value:`dependency`},{default:z(()=>[b(B(a.$t(`@NODECFG:dependencies中的依赖`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),x(` version 字段配置 `),a.formData.versionTarget===`version`?(N(),W(Z,{key:0},[S(v,{label:a.$t(`@NODECFG:版本号来源`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.versionSource,"onUpdate:modelValue":r[15]||=e=>a.formData.versionSource=e,onChange:r[16]||=e=>{e===`bump`?a.removeVersionFieldInput():e===`manual`?a.upsertVersionFieldInput({source:`manual`,manualValue:a.getVersionFieldInput(a.formData.versionInputs)?.manualValue??``}):e===`reference`?a.upsertVersionFieldInput({source:`reference`,ref:a.getVersionFieldInput(a.formData.versionInputs)?.ref||{nodeId:``,outputKey:`stdout`}}):e===`input`&&a.ensureDefaultVersionInputKey()}},{default:z(()=>[S(D,{value:`bump`},{default:z(()=>[b(B(a.$t(`@NODECFG:自动递增`)),1)]),_:1}),S(D,{value:`manual`},{default:z(()=>[b(B(a.$t(`@NODECFG:手动输入`)),1)]),_:1}),S(D,{value:`reference`,disabled:a.predecessorNodes.length===0},{default:z(()=>[b(B(a.$t(`@NODECFG:引用输出`))+` `,1),a.predecessorNodes.length===0?(N(),o(ne,{key:0,content:a.$t(`@NODECFG:无可用的前置命令节点`),placement:`top`},{default:z(()=>[S(f,{style:{"margin-left":`4px`}},{default:z(()=>[S(a.Link)]),_:1})]),_:1},8,[`content`])):x(`v-if`,!0)]),_:1},8,[`disabled`]),S(D,{value:`input`,disabled:a.availableVersionInputKeys.length===0},{default:z(()=>[b(B(a.$t(`@NODECFG:引用输入`)),1)]),_:1},8,[`disabled`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),a.formData.versionSource===`bump`?(N(),o(v,{key:0,label:a.$t(`@NODECFG:版本增量类型`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.versionBump,"onUpdate:modelValue":r[17]||=e=>a.formData.versionBump=e},{default:z(()=>[S(D,{value:`patch`},{default:z(()=>[b(B(a.$t(`@NODECFG:补丁版本x.x.+1`)),1)]),_:1}),S(D,{value:`minor`},{default:z(()=>[b(B(a.$t(`@NODECFG:次版本x.+1.0`)),1)]),_:1}),S(D,{value:`major`},{default:z(()=>[b(B(a.$t(`@NODECFG:主版本+1.0.0`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`label`])):x(`v-if`,!0),a.formData.versionSource===`manual`?(N(),o(v,{key:1,label:a.$t(`@NODECFG:版本号`),required:``},{default:z(()=>[S(m,{"model-value":a.getVersionFieldInput(a.formData.versionInputs)?.manualValue,placeholder:a.$t(`@NODECFG:例如1.2.3`),"onUpdate:modelValue":r[18]||=e=>a.upsertVersionFieldInput({source:`manual`,manualValue:e})},null,8,[`model-value`,`placeholder`])]),_:1},8,[`label`])):x(`v-if`,!0),a.formData.versionSource===`reference`?(N(),W(Z,{key:2},[S(v,{label:a.$t(`@NODECFG:引用节点`),required:``},{default:z(()=>[S(P,{"model-value":a.getVersionFieldRefValue(a.getVersionFieldInput(a.formData.versionInputs)),data:a.predecessorNodes.map(e=>({value:e.id,label:a.getNodeDisplayName(e),children:a.getNodeOutputOptions(e).map(t=>({value:`${e.id}::${t.key}`,label:t.label}))})),placeholder:a.$t(`@NODECFG:选择要引用的前置节点`),clearable:``,filterable:``,"check-strictly":``,"render-after-expand":!1,"onUpdate:modelValue":r[19]||=e=>a.handleVersionFieldRefSelect(e)},null,8,[`model-value`,`data`,`placeholder`])]),_:1},8,[`label`]),S(v,{label:a.$t(`@NODECFG:提取版本号`)},{default:z(()=>[S(C,{modelValue:a.formData.extractVersionFromRefOutput,"onUpdate:modelValue":r[20]||=e=>a.formData.extractVersionFromRefOutput=e},null,8,[`modelValue`])]),_:1},8,[`label`]),s(`div`,nr,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),s(`span`,null,B(a.$t(`@NODECFG:版本号将使用所选节点的输出结果`)),1)])],64)):x(`v-if`,!0),a.formData.versionSource===`input`?(N(),W(Z,{key:3},[S(v,{label:a.$t(`@NODECFG:引用输入`),required:``},{default:z(()=>[S(M,{modelValue:a.formData.versionInputKey,"onUpdate:modelValue":r[21]||=e=>a.formData.versionInputKey=e,filterable:``,clearable:``,style:{width:`100%`},placeholder:a.$t(`@NODECFG:选择要引用的输入字段`),onChange:a.ensureDefaultVersionInputKey},{default:z(()=>[(N(!0),W(Z,null,t(a.availableVersionInputKeys,e=>(N(),o(A,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),s(`div`,rr,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),s(`span`,null,B(a.$t(`@NODECFG:版本号将使用本节点输入参数的值`)),1)])],64)):x(`v-if`,!0)],64)):x(`v-if`,!0),x(` dependency 配置 `),a.formData.versionTarget===`dependency`?(N(),W(Z,{key:1},[S(v,{label:a.$t(`@NODECFG:依赖类型`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.dependencyType,"onUpdate:modelValue":r[22]||=e=>a.formData.dependencyType=e},{default:z(()=>[S(D,{value:`dependencies`},{default:z(()=>[...r[36]||=[b(`dependencies`,-1)]]),_:1}),S(D,{value:`devDependencies`},{default:z(()=>[...r[37]||=[b(`devDependencies`,-1)]]),_:1}),S(D,{value:`peerDependencies`},{default:z(()=>[...r[38]||=[b(`peerDependencies`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),S(v,{label:a.$t(`@NODECFG:依赖包名称`),required:``},{default:z(()=>[S(M,{modelValue:a.formData.dependencyName,"onUpdate:modelValue":r[23]||=e=>a.formData.dependencyName=e,placeholder:a.$t(`@NODECFG:请先选择package.json`),clearable:``,filterable:``,"allow-create":``,style:{width:`100%`}},{default:z(()=>[(N(!0),W(Z,null,t(a.availableDependencies,e=>(N(),o(A,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),S(v,{label:a.$t(`@NODECFG:版本号来源`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.versionSource,"onUpdate:modelValue":r[24]||=e=>a.formData.versionSource=e,onChange:r[25]||=e=>{e===`input`&&a.ensureDefaultDependencyVersionInputKey()}},{default:z(()=>[S(D,{value:`bump`},{default:z(()=>[b(B(a.$t(`@NODECFG:自动递增`)),1)]),_:1}),S(D,{value:`manual`},{default:z(()=>[b(B(a.$t(`@NODECFG:手动输入`)),1)]),_:1}),S(D,{value:`reference`,disabled:a.predecessorNodes.length===0},{default:z(()=>[b(B(a.$t(`@NODECFG:引用输出`))+` `,1),a.predecessorNodes.length===0?(N(),o(ne,{key:0,content:a.$t(`@NODECFG:无可用的前置命令节点`),placement:`top`},{default:z(()=>[S(f,{style:{"margin-left":`4px`}},{default:z(()=>[S(a.Link)]),_:1})]),_:1},8,[`content`])):x(`v-if`,!0)]),_:1},8,[`disabled`]),S(D,{value:`input`,disabled:a.availableVersionInputKeys.length===0},{default:z(()=>[b(B(a.$t(`@NODECFG:引用输入`)),1)]),_:1},8,[`disabled`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),a.formData.versionSource===`bump`?(N(),o(v,{key:0,label:a.$t(`@NODECFG:递增类型`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.dependencyVersionBump,"onUpdate:modelValue":r[26]||=e=>a.formData.dependencyVersionBump=e},{default:z(()=>[S(D,{value:`patch`},{default:z(()=>[b(B(a.$t(`@NODECFG:补丁版本`)),1)]),_:1}),S(D,{value:`minor`},{default:z(()=>[b(B(a.$t(`@NODECFG:次版本`)),1)]),_:1}),S(D,{value:`major`},{default:z(()=>[b(B(a.$t(`@NODECFG:主版本`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`label`])):x(`v-if`,!0),a.formData.versionSource===`manual`?(N(),o(v,{key:1,label:a.$t(`@NODECFG:版本号`),required:``},{default:z(()=>[S(m,{modelValue:a.formData.dependencyVersion,"onUpdate:modelValue":r[27]||=e=>a.formData.dependencyVersion=e,placeholder:a.$t(`@NODECFG:例如1.2.3`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])):x(`v-if`,!0),x(` 引用输出配置 `),a.formData.versionSource===`reference`?(N(),W(Z,{key:2},[S(v,{label:a.$t(`@NODECFG:引用节点`),required:``},{default:z(()=>[S(M,{modelValue:a.formData.inputRef,"onUpdate:modelValue":r[28]||=e=>a.formData.inputRef=e,"value-key":`nodeId`,placeholder:a.$t(`@NODECFG:选择要引用的前置节点`),style:{width:`100%`}},{default:z(()=>[(N(!0),W(Z,null,t(a.predecessorNodes,e=>(N(),o(A,{key:e.id,label:a.getNodeDisplayName(e),value:{nodeId:e.id,outputKey:`stdout`}},{default:z(()=>[s(`div`,ir,[s(`span`,ar,B(a.getNodeDisplayName(e)),1),s(`span`,or,B(a.$t(`@NODECFG:ID`))+`: `+B(e.id.substring(0,15))+`...`,1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),a.formData.inputRef?(N(),o(v,{key:0,label:a.$t(`@NODECFG:输出字段`),required:``},{default:z(()=>[S(M,{modelValue:a.formData.inputRef.outputKey,"onUpdate:modelValue":r[29]||=e=>a.formData.inputRef.outputKey=e,placeholder:a.$t(`@NODECFG:选择要引用的输出字段`),style:{width:`100%`}},{default:z(()=>[(N(!0),W(Z,null,t(a.getNodeOutputOptions(a.predecessorNodes.find(e=>e.id===a.formData.inputRef?.nodeId)),e=>(N(),o(A,{key:e.key,label:e.label,value:e.key},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])):x(`v-if`,!0),a.formData.inputRef?(N(),o(v,{key:1,label:a.$t(`@NODECFG:提取版本号`)},{default:z(()=>[S(C,{modelValue:a.formData.extractVersionFromRefOutput,"onUpdate:modelValue":r[30]||=e=>a.formData.extractVersionFromRefOutput=e},null,8,[`modelValue`])]),_:1},8,[`label`])):x(`v-if`,!0),s(`div`,sr,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),s(`span`,null,B(a.$t(`@NODECFG:版本号将使用所选节点的输出结果`)),1)])],64)):x(`v-if`,!0),a.formData.versionSource===`input`?(N(),W(Z,{key:3},[S(v,{label:a.$t(`@NODECFG:引用输入`),required:``},{default:z(()=>[S(M,{modelValue:a.formData.dependencyVersionInputKey,"onUpdate:modelValue":r[31]||=e=>a.formData.dependencyVersionInputKey=e,filterable:``,clearable:``,style:{width:`100%`},placeholder:a.$t(`@NODECFG:选择要引用的输入字段`),onChange:a.ensureDefaultDependencyVersionInputKey},{default:z(()=>[(N(!0),W(Z,null,t(a.availableVersionInputKeys,e=>(N(),o(A,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),s(`div`,cr,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),s(`span`,null,B(a.$t(`@NODECFG:版本号将使用本节点输入参数的值`)),1)])],64)):x(`v-if`,!0)],64)):x(`v-if`,!0)]),_:1})])):x(`v-if`,!0),i.node?.type===`code`?(N(),W(`div`,lr,[s(`div`,ur,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输出`))+` `,1),S(T,{type:`primary`,plain:``,icon:a.Plus,style:{"margin-left":`auto`},onClick:a.addCodeOutputRow},null,8,[`icon`])]),S(a.ParamListContainer,{"model-value":a.formData.codeOutputParams||[],title:void 0,addable:!1,removable:!0,"min-items":0,"create-item":a.createCodeOutputParam,"onUpdate:modelValue":r[32]||=e=>a.formData.codeOutputParams=e},{empty:z(()=>[b(B(a.$t(`@NODECFG:暂无输出参数`)||``),1)]),row:z(({item:e})=>[s(`div`,dr,[s(`div`,fr,[s(`label`,pr,B(a.$t(`@NODECFG:参数名`)),1),S(m,{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:a.$t(`@NODECFG:参数名`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),s(`div`,mr,[s(`label`,hr,B(a.$t(`@NODECFG:参数类型`)),1),S(M,{modelValue:e.type,"onUpdate:modelValue":t=>e.type=t,style:{width:`180px`}},{default:z(()=>[S(A,{label:`String`,value:`String`}),S(A,{label:`Number`,value:`Number`}),S(A,{label:`Boolean`,value:`Boolean`}),S(A,{label:`JSON`,value:`JSON`})]),_:1},8,[`modelValue`,`onUpdate:modelValue`])])])]),_:1},8,[`model-value`])])):x(`v-if`,!0),i.node?.type===`command`?(N(),W(`div`,gr,[s(`div`,_r,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输出配置`)),1)]),S(a.ParamListContainer,{"model-value":a.formData.commandOutputParams||[],title:void 0,addable:!1,removable:!1,"onUpdate:modelValue":r[33]||=e=>a.formData.commandOutputParams=e},{empty:z(()=>[b(B(a.$t(`@NODECFG:暂无输出参数`)||``),1)]),row:z(({item:e})=>[s(`div`,vr,[s(`div`,yr,[s(`label`,br,B(a.$t(`@NODECFG:参数名`)),1),S(m,{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,disabled:``},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,xr,[s(`label`,Sr,B(a.$t(`@NODECFG:参数描述`)),1),S(m,{modelValue:e.desc,"onUpdate:modelValue":t=>e.desc=t,placeholder:a.$t(`@NODECFG:参数描述`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])])])]),_:1},8,[`model-value`])])):x(`v-if`,!0)])):x(`v-if`,!0)]),_:1},8,[`modelValue`,`title`])}var Er=$(Gt,[[`render`,Tr],[`__scopeId`,`data-v-e230c70f`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/NodeConfigPanel.vue`]]);i(),J();var Dr=m({__name:`FlowOrchestrationWorkspace`,props:{visible:{type:Boolean,required:!0}},emits:[`update:visible`,`execute-flow`,`open-command-manager`],setup(e,{expose:t,emit:n}){t();let r=Symbol(`FLOW_NODE_ACTIONS`);function i(e){switch(e){case`command`:return`📋`;case`wait`:return`⏰`;case`version`:return`📦`;case`confirm`:return`✋`;case`code`:return`🧩`;case`start`:return`🚀`;case`condition`:return`🔀`;case`user_input`:return`⌨️`;default:return``}}function a(e){return m({name:`FlowWrappedNode`,props:{id:{type:String,required:!0},data:{type:Object,required:!0}},setup(t){let n=A(r,null),a=O(()=>{let e=t.data?.config,n=[...Array.isArray(e?.conditionBranches)?e.conditionBranches:[]].sort((e,t)=>{let n=e?.handleId==="default"||e?.isDefault,r=t?.handleId==="default"||t?.isDefault;return n&&!r?1:!n&&r?-1:Number(e?.priority??0)-Number(t?.priority??0)}).map(e=>String(e?.handleId||``).trim()).filter(e=>!!e);return n.includes(`default`)||n.push(`default`),n.length?n:[`default`]});return()=>T(Fe,{nodeId:t.id,onExecuteFromNode:e=>n?.executeFromNode(e),onExecuteSingleNode:e=>n?.executeSingleNode(e)},{default:()=>T(Te,{id:t.id,nodeId:t.id,nodeType:t.data?.type,title:t.data?.label,icon:i(t.data?.type),enabled:t.data?.enabled??!0,selected:t.data?.selected??!1,sourceHandleIds:t.data?.type===`condition`?a.value:void 0,onDelete:e=>n?.deleteNode(e)},{default:()=>T(e,{data:t.data,id:t.id})})})}})}let o=m({name:`FlowStartNodeRenderer`,props:{id:{type:String,required:!0},data:{type:Object,required:!0}},setup(e){return()=>T(Te,{id:e.id,nodeId:e.id,nodeType:`start`,title:Q(`@FLOWNODE:开始`),icon:i(`start`),enabled:e.data?.enabled,selected:e.data?.selected,deletable:!1},{})}}),s={start:H(o),command:H(a(Ae)),wait:H(a(Oe)),version:H(a(we)),confirm:H(a(Ee)),code:H(a(ke)),condition:H(a(De)),user_input:H(a(je))},l=e,u=n,{t:d}=pe(),f=_e(),p=O({get:()=>l.visible,set:e=>u(`update:visible`,e)}),{onConnect:h,addEdges:g,getViewport:_,setViewport:ee,onNodeDragStart:y,onNodeDragStop:b,getSelectedEdges:x,updateNodeInternals:S}=be(),C=I([]),E=I([]),D=I(``),k=I(``),j=I(null),N=I(!1),P=I(null),F=null,L=O(()=>f.orchestrations||[]),R=I(null),z=1;function ie(e){return`${e}-${Date.now()}-${z++}`}function ae(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function B(e){let t=String(e||``).trim()||d(`@ORCH:未命名`),n=new Set((Array.isArray(L.value)?L.value:[]).map(e=>String(e?.name||``).trim())),r=`${t}(复制)`;if(!n.has(r))return r;let i=2;for(;i<1e3;){let e=`${t}(复制${i})`;if(!n.has(e))return e;i+=1}return`${t}(复制${Date.now()})`}async function V(e){try{let t={name:B(e?.name),description:e?.description||``,flowData:e?.flowData?JSON.parse(JSON.stringify(e.flowData)):null},n=await f.saveOrchestration(t);n&&typeof n==`object`&&`id`in n&&(R.value=n.id,j.value=n.id,He(n),U.success(d(`@ORCH:已复制`)))}catch(e){U.error(`${d(`@ORCH:错误`)}: ${e?.message||e}`)}}function W(){return C.value.filter(e=>e.type!==`start`&&e.data?.config)}function G(e){return e===`version`?{w:250,h:120}:e===`wait`||e===`confirm`||e===`user_input`?{w:200,h:120}:e===`condition`?{w:260,h:160}:{w:220,h:120}}function oe(e){let t=_(),n=document.querySelector(`.vue-flow-container`)?.getBoundingClientRect(),r=n?n.width/2:500,i=n?n.height/2:300,a=t.zoom||1,o=(r-t.x)/a,s=(i-t.y)/a,{w:c,h:l}=G(e);return{x:o-c/2,y:s-l/2}}function K(e,t){let n=C.value.filter(t=>t.type===e).map(e=>String(e?.data?.label||``).trim()).filter(e=>!!e),r=String(t||``).trim();if(!r)return r;let i=RegExp(`^${ae(r)}(\\d+)?$`),a=-1;for(let e of n){let t=e.match(i);if(!t)continue;let n=t[1]?Number(t[1]):0;Number.isFinite(n)&&(a=Math.max(a,n))}return a<0?r:`${r}${a+1}`}function q(e){return e.map(e=>({id:e.id,type:e.type,position:e.position,data:e.data}))}function J(e){return e.map(e=>({id:e.id,source:e.source,target:e.target,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle}))}async function Y(e){await M();let t=e&&e.length?e:C.value.map(e=>e.id);requestAnimationFrame(()=>{S(t)})}function X(){j.value&&D.value.trim()&&(F&&clearTimeout(F),F=window.setTimeout(()=>{Re()},1e3))}function Z(){C.value=[{id:`start-node`,type:`start`,position:{x:50,y:200},data:{id:`start-node`,type:`start`,label:d(`@FLOWNODE:开始`),enabled:!0}}],E.value=[],z=1}function ue(e){let t=ie(e),n={command:d(`@FLOWNODE:命令节点`),wait:d(`@FLOWNODE:等待节点`),version:d(`@FLOWNODE:版本管理`),confirm:d(`@FLOWNODE:用户确认`),code:d(`@FLOWNODE:代码节点`),condition:d(`@FLOWNODE:条件`),user_input:d(`@FLOWNODE:用户输入`)}[e],r=K(e,n),i=oe(e),a={id:t,type:e,position:{x:i.x,y:i.y},data:{id:t,type:e,label:r,enabled:!0,config:e===`confirm`?{id:t,type:`confirm`}:e===`condition`?{id:t,type:`condition`,conditionBranches:[{id:`branch-${Date.now()}`,name:Q(`@COND:默认分支`),handleId:`default`,priority:999,combine:`all`,rules:[],isDefault:!0}]}:e===`user_input`?{id:t,type:`user_input`,userInputParams:[]}:void 0}};C.value.push(a),C.value.forEach(e=>{e.data&&(e.data.selected=!1)}),a.data&&(a.data.selected=!0),P.value=a,N.value=!1,U.success(`${d(`@FLOWNODE:已添加`)}${a.data.label}`),X()}h(e=>{g([e]),X()}),y(e=>{C.value.forEach(e=>{e.data&&(e.data.selected=!1)});let t=C.value.find(t=>t.id===e.node.id);t&&t.data&&(t.data.selected=!0)}),b(()=>{X()});function de(e){C.value.forEach(e=>{e.data&&(e.data.selected=!1)});let t=C.value.find(t=>t.id===e.node.id);t&&(t.data.selected=!0,t.type!==`start`&&(P.value=t,N.value=!0)),Y([e.node.id])}function $(){C.value.forEach(e=>{e.data&&(e.data.selected=!1)}),Y()}function me(e,t){let n=C.value.find(t=>t.id===e);n&&(n.data.config=t,n.data.label=he(t),X())}function he(e){return e.displayName&&String(e.displayName).trim()?String(e.displayName).trim():e.type===`command`?e.commandName||d(`@FLOWNODE:未知命令`):e.type===`wait`?d(`@FLOWNODE:等待 {seconds} 秒`,{seconds:e.waitSeconds}):e.type===`version`?e.versionTarget===`dependency`?d(`@FLOWNODE:修改依赖: {name}`,{name:e.dependencyName}):d(`@FLOWNODE:版本号 +1 ({bump})`,{bump:e.versionBump}):e.type===`confirm`?d(`@FLOWNODE:用户确认`):e.type===`user_input`?d(`@FLOWNODE:用户输入`):e.type===`code`?d(`@FLOWNODE:代码节点`):d(`@FLOWNODE:未配置`)}function Ce(e){if(console.log(`nodeId ==>`,e),e===`start-node`){U.warning(d(`@FLOWNODE:不能删除起始节点`));return}console.log(`nodes ==>`,C),C.value=C.value.filter(t=>t.id!==e),E.value=E.value.filter(t=>t.source!==e&&t.target!==e),P.value?.id===e&&(P.value=null,N.value=!1),U.success(d(`@FLOWNODE:节点已删除`)),X()}function Ne(e){for(let t of e)t.type===`remove`&&(E.value=E.value.filter(e=>e.id!==t.id));X()}function Pe(e){if(e.key===`Delete`||e.key===`Backspace`){let t=x.value;if(t&&t.length>0){let n=t.map(e=>e.id);E.value=E.value.filter(e=>!n.includes(e.id)),X(),e.preventDefault()}}}function Ie(){ce.confirm(`确定要清空整个流程吗?`,`确认清空`,{confirmButtonText:`清空`,cancelButtonText:`取消`,type:`warning`}).then(()=>{Z(),U.success(`流程已清空`),X()}).catch(()=>{})}async function Le(){if(C.value.length<=1){U.info(`节点太少,无需优化布局`);return}await Y(),await new Promise(e=>requestAnimationFrame(()=>e()));let e=new Me.default.graphlib.Graph;e.setDefaultEdgeLabel(()=>({})),e.setGraph({rankdir:`LR`,nodesep:80,ranksep:80,marginx:50,marginy:50}),C.value.forEach(t=>{let n=220,r=100;t.type===`start`?(n=100,r=100):t.type===`wait`||t.type===`confirm`?(n=200,r=120):t.type===`version`&&(n=250,r=120);let i=document.querySelector(`.vue-flow__node[data-id="${t.id}"]`);if(i){let e=i.offsetWidth,t=i.offsetHeight;e>0&&t>0&&(n=e,r=t)}e.setNode(t.id,{width:n,height:r})}),E.value.forEach(t=>{e.setEdge(t.source,t.target)}),Me.default.layout(e),C.value.forEach(t=>{let n=e.node(t.id);n&&(t.position={x:n.x-n.width/2,y:n.y-n.height/2})}),U.success(`布局优化完成(dagre)`),X()}async function Re(){if(!D.value.trim()){U.warning(`请输入编排名称`);return}let e=C.value.filter(e=>e.type!==`start`&&!e.data.config);if(e.length>0){let t=e.map(e=>e.data.label).join(`、`);U.warning(`以下节点还未配置:${t}。未配置的节点不会被保存。`)}if(W().length===0){U.warning(`请至少添加一个执行步骤`);return}let t=_(),n={name:D.value.trim(),description:k.value.trim(),flowData:{nodes:q(C.value),edges:J(E.value),viewport:{x:t.x,y:t.y,zoom:t.zoom}}};if(j.value)await f.updateOrchestration(j.value,n);else{let e=await f.saveOrchestration(n);U.success(`编排已保存`),e&&typeof e==`object`&&`id`in e&&(R.value=e.id,j.value=e.id)}}function ze(){if(W().length===0){U.warning(`请至少添加一个执行步骤`);return}p.value=!1;let e=_(),t=C.value.find(e=>e.type===`start`);u(`execute-flow`,{flowData:{nodes:JSON.parse(JSON.stringify(C.value)),edges:JSON.parse(JSON.stringify(E.value)),viewport:{x:e.x,y:e.y,zoom:e.zoom}},startNodeId:t?.id,isSingleExecution:!1,orchestrationMeta:{id:j.value||void 0,name:D.value||void 0}})}function Be(e){let t=C.value.find(t=>t.id===e);if(!t||t.type===`start`||!t.data.config){U.warning(`该节点无法执行`);return}p.value=!1;let n=_();u(`execute-flow`,{flowData:{nodes:JSON.parse(JSON.stringify(C.value)),edges:JSON.parse(JSON.stringify(E.value)),viewport:{x:n.x,y:n.y,zoom:n.zoom}},startNodeId:e,isSingleExecution:!1,orchestrationMeta:{id:j.value||void 0,name:D.value||void 0}})}function Ve(e){let t=C.value.find(t=>t.id===e);if(!t||t.type===`start`||!t.data.config){U.warning(`该节点无法执行`);return}p.value=!1;let n=_();u(`execute-flow`,{flowData:{nodes:JSON.parse(JSON.stringify(C.value)),edges:JSON.parse(JSON.stringify(E.value)),viewport:{x:n.x,y:n.y,zoom:n.zoom}},startNodeId:e,isSingleExecution:!0,orchestrationMeta:{id:j.value||void 0,name:D.value||void 0}})}w(r,{deleteNode:Ce,executeFromNode:Be,executeSingleNode:Ve});function He(e){R.value=e.id,j.value=e.id,D.value=e.name,k.value=e.description||``,e.flowData?(C.value=JSON.parse(JSON.stringify(e.flowData.nodes)),E.value=JSON.parse(JSON.stringify(e.flowData.edges)),Y(),e.flowData.viewport&&setTimeout(()=>{ee(e.flowData.viewport)},100)):Z()}function Ue(){R.value=null,j.value=null,D.value=``,k.value=``,Z()}async function We(e){try{await ce.confirm(`确定要删除编排 "${e.name}" 吗?`,`确认删除`,{confirmButtonText:`删除`,cancelButtonText:`取消`,type:`warning`}),await f.deleteOrchestration(e.id),j.value===e.id&&Ue()}catch(e){e!==`cancel`&&U.error(`删除编排失败: ${e.message||e}`)}}function Ge(e){if(p.value=!1,e?.flowData){let t=Array.isArray(e.flowData.nodes)?e.flowData.nodes.find(e=>e?.type===`start`):void 0;u(`execute-flow`,{flowData:e.flowData,startNodeId:t?.id,isSingleExecution:!1,orchestrationMeta:{id:e?.id,name:e?.name}});return}U.warning(`该编排缺少流程数据,无法执行`)}ne(()=>{Z(),window.addEventListener(`keydown`,Pe),Y()}),te(()=>{window.removeEventListener(`keydown`,Pe)});let Ke={FLOW_NODE_ACTIONS_KEY:r,getNodeIcon:i,createWrappedNode:a,StartNodeRenderer:o,nodeTypes:s,props:l,emit:u,t:d,configStore:f,dialogVisible:p,onConnect:h,addEdges:g,getViewport:_,setViewport:ee,onNodeDragStart:y,onNodeDragStop:b,getSelectedEdges:x,updateNodeInternals:S,nodes:C,edges:E,orchestrationName:D,orchestrationDescription:k,editingOrchestrationId:j,showConfigPanel:N,selectedNode:P,get autoSaveTimer(){return F},set autoSaveTimer(e){F=e},orchestrations:L,selectedOrchestrationId:R,get nodeIdCounter(){return z},set nodeIdCounter(e){z=e},generateNodeId:ie,escapeRegExp:ae,generateCopyName:B,duplicateOrchestration:V,getExecutableNodes:W,estimateNodeSize:G,getViewportCenterPosition:oe,generateUniqueNodeLabel:K,sanitizeNodesForSave:q,sanitizeEdgesForSave:J,refreshNodeInternals:Y,scheduleAutoSave:X,initializeFlow:Z,addNode:ue,onNodeClick:de,onPaneClick:$,updateNodeConfig:me,getNodeLabel:he,handleNodeDelete:Ce,onEdgesChange:Ne,handleKeyDown:Pe,clearFlow:Ie,optimizeLayout:Le,saveOrchestration:Re,executeCurrentFlow:ze,executeFromNode:Be,executeSingleNode:Ve,loadOrchestration:He,createNewOrchestration:Ue,deleteOrchestration:We,executeOrchestration:Ge,get VueFlow(){return Se},get Background(){return ye},get Controls(){return xe},get Delete(){return se},get VideoPlay(){return le},get Plus(){return fe},get Select(){return v},get Grid(){return c},get CopyDocument(){return re},CommonDialog:ve,IconButton:ge,NodeConfigPanel:Er};return Object.defineProperty(Ke,"__isScriptSetup",{enumerable:!1,value:!0}),Ke}});i(),u(),ie();var Or={class:`flow-workspace-container`},kr={class:`left-sidebar`},Ar={class:`sidebar-header`},jr={class:`orchestration-list`},Mr=[`onClick`],Nr={class:`item-content`},Pr={key:0,class:`description`},Fr={class:`item-actions`},Ir={class:`flow-canvas`},Lr={class:`canvas-header`},Rr={class:`flow-header-info`},zr={class:`header-actions`},Br={class:`right-sidebar`},Vr={class:`sidebar-header`},Hr={class:`node-toolbox`},Ur={class:`tool-label`},Wr={class:`tool-desc`},Gr={class:`tool-label`},Kr={class:`tool-desc`},qr={class:`tool-label`},Jr={class:`tool-desc`},Yr={class:`tool-label`},Xr={class:`tool-desc`},Zr={class:`tool-label`},Qr={class:`tool-desc`},$r={class:`tool-label`},ei={class:`tool-desc`},ti={class:`tool-label`},ni={class:`tool-desc`};function ri(e,n,r,i,a,c){let l=h,u=X,d=k;return N(),o(i.CommonDialog,{modelValue:i.dialogVisible,"onUpdate:modelValue":n[13]||=e=>i.dialogVisible=e,title:i.t(`@ORCH:可视化编排工作台`),"close-on-click-modal":!1,"append-to-body":!0,size:`fullscreen`,type:`flex`,heightMode:`fixed`,"custom-class":`flow-orchestration-dialog`},{default:z(()=>[s(`div`,Or,[x(` 左侧:编排列表 `),s(`div`,kr,[s(`div`,Ar,[s(`h3`,null,B(i.t(`@ORCH:已保存的编排`)),1),S(i.IconButton,{tooltip:i.t(`@ORCH:新建编排`),size:`small`,"hover-color":`var(--color-primary)`,onClick:i.createNewOrchestration},{default:z(()=>[S(l,null,{default:z(()=>[S(i.Plus)]),_:1})]),_:1},8,[`tooltip`])]),s(`div`,jr,[i.orchestrations.length===0?(N(),o(u,{key:0,description:i.t(`@ORCH:暂无编排`),"image-size":80},null,8,[`description`])):x(`v-if`,!0),(N(!0),W(Z,null,t(i.orchestrations,e=>(N(),W(`div`,{key:e.id,class:g([`orchestration-item`,{active:i.selectedOrchestrationId===e.id}]),onClick:t=>i.loadOrchestration(e)},[s(`div`,Nr,[s(`h4`,null,B(e.name),1),e.description?(N(),W(`p`,Pr,B(e.description),1)):x(`v-if`,!0),s(`div`,Fr,[S(i.IconButton,{tooltip:i.t(`@ORCH:执行`),size:`small`,"hover-color":`var(--color-primary)`,onClick:F(t=>i.executeOrchestration(e),[`stop`])},{default:z(()=>[S(l,null,{default:z(()=>[S(i.VideoPlay)]),_:1})]),_:1},8,[`tooltip`,`onClick`]),S(i.IconButton,{tooltip:i.t(`@ORCH:复制`),size:`small`,"hover-color":`var(--color-primary)`,onClick:F(t=>i.duplicateOrchestration(e),[`stop`])},{default:z(()=>[S(l,null,{default:z(()=>[S(i.CopyDocument)]),_:1})]),_:1},8,[`tooltip`,`onClick`]),S(i.IconButton,{tooltip:i.t(`@ORCH:删除`),size:`small`,"hover-color":`var(--color-danger)`,onClick:F(t=>i.deleteOrchestration(e),[`stop`])},{default:z(()=>[S(l,null,{default:z(()=>[S(i.Delete)]),_:1})]),_:1},8,[`tooltip`,`onClick`])])])],10,Mr))),128))])]),x(` 中间:流程画布 `),s(`div`,Ir,[s(`div`,Lr,[s(`div`,Rr,[S(d,{modelValue:i.orchestrationName,"onUpdate:modelValue":n[0]||=e=>i.orchestrationName=e,placeholder:i.t(`@ORCH:编排名称(必填)`),size:`large`,style:{width:`300px`,"margin-right":`10px`}},null,8,[`modelValue`,`placeholder`]),S(d,{modelValue:i.orchestrationDescription,"onUpdate:modelValue":n[1]||=e=>i.orchestrationDescription=e,placeholder:i.t(`@ORCH:编排描述(选填)`),size:`large`,style:{width:`400px`}},null,8,[`modelValue`,`placeholder`])]),s(`div`,zr,[S(i.IconButton,{tooltip:i.t(`@ORCH:保存编排`),size:`large`,"hover-color":`var(--color-success)`,onClick:i.saveOrchestration},{default:z(()=>[S(l,null,{default:z(()=>[S(i.Select)]),_:1})]),_:1},8,[`tooltip`]),S(i.IconButton,{tooltip:`执行流程`,size:`large`,"hover-color":`var(--color-primary)`,onClick:i.executeCurrentFlow},{default:z(()=>[S(l,null,{default:z(()=>[S(i.VideoPlay)]),_:1})]),_:1}),S(i.IconButton,{tooltip:`清空流程`,size:`large`,"hover-color":`var(--color-danger)`,onClick:i.clearFlow},{default:z(()=>[S(l,null,{default:z(()=>[S(i.Delete)]),_:1})]),_:1})])]),S(i.VueFlow,{nodes:i.nodes,"onUpdate:nodes":n[2]||=e=>i.nodes=e,edges:i.edges,"onUpdate:edges":n[3]||=e=>i.edges=e,class:`vue-flow-container`,"default-zoom":1,"min-zoom":.2,"max-zoom":4,"node-types":i.nodeTypes,onNodeClick:i.onNodeClick,onPaneClick:i.onPaneClick,onEdgesChange:i.onEdgesChange},{default:z(()=>[S(i.Background,{"pattern-color":`#aaa`,gap:16}),S(i.Controls,{showInteractive:!1},{default:z(()=>[s(`button`,{class:`vue-flow__controls-button`,onClick:i.optimizeLayout,title:`优化布局`},[S(l,null,{default:z(()=>[S(i.Grid)]),_:1})])]),_:1})]),_:1},8,[`nodes`,`edges`])]),x(` 右侧:节点工具栏 `),s(`div`,Br,[s(`div`,Vr,[s(`h3`,null,B(i.t(`@ORCH:节点工具箱`)),1)]),s(`div`,Hr,[s(`div`,{class:`tool-item`,onClick:n[4]||=e=>i.addNode(`command`)},[n[14]||=s(`div`,{class:`tool-icon command`},`📋`,-1),s(`div`,Ur,B(i.t(`@ORCH:命令节点`)),1),s(`div`,Wr,B(i.t(`@ORCH:执行自定义命令`)),1)]),s(`div`,{class:`tool-item`,onClick:n[5]||=e=>i.addNode(`wait`)},[n[15]||=s(`div`,{class:`tool-icon wait`},`⏰`,-1),s(`div`,Gr,B(i.t(`@ORCH:等待节点`)),1),s(`div`,Kr,B(i.t(`@ORCH:暂停指定时间`)),1)]),s(`div`,{class:`tool-item`,onClick:n[6]||=e=>i.addNode(`version`)},[n[16]||=s(`div`,{class:`tool-icon version`},`📦`,-1),s(`div`,qr,B(i.t(`@ORCH:版本管理`)),1),s(`div`,Jr,B(i.t(`@ORCH:修改版本号或依赖`)),1)]),s(`div`,{class:`tool-item`,onClick:n[7]||=e=>i.addNode(`condition`)},[n[17]||=s(`div`,{class:`tool-icon condition`},`🔀`,-1),s(`div`,Yr,B(i.t(`@FLOWNODE:条件`)),1),s(`div`,Xr,B(i.t(`@ORCH:条件分支`)),1)]),s(`div`,{class:`tool-item`,onClick:n[8]||=e=>i.addNode(`code`)},[n[18]||=s(`div`,{class:`tool-icon code`},`🧩`,-1),s(`div`,Zr,B(i.t(`@FLOWNODE:代码节点`)),1),s(`div`,Qr,B(i.t(`@ORCH:执行自定义代码`)),1)]),s(`div`,{class:`tool-item`,onClick:n[9]||=e=>i.addNode(`confirm`)},[n[19]||=s(`div`,{class:`tool-icon confirm`},`✋`,-1),s(`div`,$r,B(i.t(`@ORCH:用户确认`)),1),s(`div`,ei,B(i.t(`@ORCH:等待用户确认后继续`)),1)]),s(`div`,{class:`tool-item`,onClick:n[10]||=e=>i.addNode(`user_input`)},[n[20]||=s(`div`,{class:`tool-icon confirm`},`⌨️`,-1),s(`div`,ti,B(i.t(`@FLOWNODE:用户输入`)),1),s(`div`,ni,B(i.t(`@UINPUT:执行到该节点暂停并等待输入`)),1)])])])]),x(` 节点配置面板 `),S(i.NodeConfigPanel,{modelValue:i.showConfigPanel,"onUpdate:modelValue":n[11]||=e=>i.showConfigPanel=e,node:i.selectedNode,"all-nodes":i.nodes,edges:i.edges,onUpdateConfig:i.updateNodeConfig,onOpenCommandManager:n[12]||=()=>i.emit(`open-command-manager`)},null,8,[`modelValue`,`node`,`all-nodes`,`edges`])]),_:1},8,[`modelValue`,`title`])}var ii=$(Dr,[[`render`,ri],[`__scopeId`,`data-v-94a84301`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/FlowOrchestrationWorkspace.vue`]]);export{ii as default};
|
|
21
|
+
}`}];function i(e){m.value.codeScript=e,U.success(Q(`@NODECFG:已应用示例`))}let a=e,o=n;function s(){o(`open-command-manager`)}let c=ge(),l=O(()=>{let e=Q(`@NODECFG:节点配置`);return a.node?`${e} - ${{command:Q(`@FLOWNODE:命令节点`),wait:Q(`@FLOWNODE:等待节点`),version:Q(`@FLOWNODE:版本管理`),confirm:Q(`@FLOWNODE:用户确认`),code:Q(`@FLOWNODE:代码节点`),condition:Q(`@FLOWNODE:条件`),user_input:Q(`@FLOWNODE:用户输入`)}[a.node.type]||a.node.type}`:e}),u=O({get:()=>a.modelValue,set:e=>o(`update:modelValue`,e)}),d=I(null),f=I(null),p=I(null),m=I({}),h=O(()=>{let e=(Array.isArray(m.value.userInputParams)?m.value.userInputParams:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e);return Array.from(new Set(e)).map(e=>({key:e}))}),g=O(()=>{let e=(Array.isArray(m.value.versionInputs)?m.value.versionInputs:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e);return Array.from(new Set(e))});function _(){let e=g.value;if(e.length===0){m.value.versionInputKey=``;return}let t=String(m.value.versionInputKey||``).trim();t&&e.includes(t)||(m.value.versionInputKey=e.includes(`version`)?`version`:e[0])}function ee(){let e=g.value;if(e.length===0){m.value.dependencyVersionInputKey=``;return}let t=String(m.value.dependencyVersionInputKey||``).trim();if(!(t&&e.includes(t))){if(e.includes(`dependencyVersion`)){m.value.dependencyVersionInputKey=`dependencyVersion`;return}m.value.dependencyVersionInputKey=e.includes(`version`)?`version`:e[0]}}function y(){return{id:`branch-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,name:Q(`@COND:默认分支`),handleId:`default`,priority:999,combine:`all`,rules:[],isDefault:!0}}function b(e){let t=(Array.isArray(e)?e:[]).map(e=>({id:String(e?.id||`branch-${Date.now()}-${Math.random().toString(36).slice(2,6)}`),name:String(e?.name||``).trim()||Q(`@COND:分支名称`),handleId:String(e?.handleId||``).trim()||`branch`,priority:Number.isFinite(Number(e?.priority))?Number(e?.priority):0,combine:e?.combine===`any`?`any`:`all`,rules:Array.isArray(e?.rules)?e.rules:[],isDefault:!!e?.isDefault}));t.some(e=>e.handleId==="default"||e.isDefault)||t.push(y());for(let e of t)e.handleId==="default"&&(e.isDefault=!0,e.name||=Q(`@COND:默认分支`));return t}function x(){return{left:{nodeId:``,outputKey:`stdout`},op:`contains`,right:``}}function S(){let e=b(m.value.conditionBranches);e.push({id:`branch-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,name:Q(`@COND:分支名称`),handleId:`branch-${e.length}`,priority:e.length,combine:`all`,rules:[x()],isDefault:!1}),m.value.conditionBranches=e}function w(e){let t=b(m.value.conditionBranches),n=t.find(t=>t.id===e);if(n?.handleId==="default"||n?.isDefault){U.warning(Q(`@COND:请至少保留一个默认分支`));return}m.value.conditionBranches=t.filter(t=>t.id!==e)}function T(e){let t=b(m.value.conditionBranches),n=t.find(t=>t.id===e);n&&(n.rules=Array.isArray(n.rules)?[...n.rules,x()]:[x()],m.value.conditionBranches=t)}function E(e,t){let n=b(m.value.conditionBranches),r=n.find(t=>t.id===e);r&&(r.rules=(Array.isArray(r.rules)?r.rules:[]).filter((e,n)=>n!==t),m.value.conditionBranches=n)}function k(e){let t=(Array.isArray(e)?e:[]).map(e=>({name:String(e?.name||``).trim(),source:e?.source===`manual`?`manual`:`reference`,manualValue:e?.manualValue===void 0||e?.manualValue===null?``:String(e.manualValue),ref:e?.ref?{nodeId:String(e.ref.nodeId||``),outputKey:String(e.ref.outputKey||`stdout`)}:void 0})).filter(e=>!!e.name||!!e.manualValue||!!e.ref?.nodeId),n=new Set,r=[];for(let e of t)n.has(e.name)||(n.add(e.name),r.push(e));return r.slice(0,30)}function A(e){return(Array.isArray(e)?e:[]).find(e=>String(e?.name||``).trim()===`version`)}function j(e){let t=Array.isArray(m.value.versionInputs)?[...m.value.versionInputs]:[],n=t.findIndex(e=>String(e?.name||``).trim()===`version`),r={...n>=0?t[n]:{name:`version`,source:`manual`,manualValue:``,ref:{nodeId:``,outputKey:`stdout`}},...e,name:`version`};e.source&&(e.source===`manual`?(r.ref=void 0,r.manualValue===void 0&&(r.manualValue=``)):(r.manualValue=void 0,r.ref||={nodeId:``,outputKey:`stdout`})),n>=0?t[n]=r:t.push(r),m.value.versionInputs=k(t)}function M(){let e=Array.isArray(m.value.versionInputs)?m.value.versionInputs:[];m.value.versionInputs=e.filter(e=>String(e?.name||``).trim()!==`version`)}function te(e){return!e?.ref?.nodeId||!e?.ref?.outputKey?``:`${e.ref.nodeId}::${e.ref.outputKey}`}function ne(e){if(!e)return;let[t,n]=e.split(`::`);j({source:`reference`,ref:{nodeId:t,outputKey:n}})}function N(e){let t=(Array.isArray(e)?e:[]).map(e=>({key:String(e?.key||``).trim(),type:e?.type||`String`,desc:String(e?.desc||``).trim()})).filter(e=>!!e.key),n=new Set,r=[];for(let e of t)n.has(e.key)||(n.add(e.key),r.push(e));return r.slice(0,30)}function F(){return{key:``,type:`String`}}function L(){let e=Array.isArray(m.value.codeOutputParams)?[...m.value.codeOutputParams]:[];e.push(F()),m.value.codeOutputParams=e}let R=I([]),z=O(()=>c.customCommands||[]),re=O(()=>{if(!m.value.commandId)return[];let e=z.value.find(e=>e.id===m.value.commandId);return e?Ce(e.command):[]}),ie=O(()=>{if(!a.node||!a.allNodes||!a.edges)return[];let e=a.node.id,t=a.edges,n=a.allNodes,r=[],i=new Set,o=[e];function s(e){return t.filter(t=>t.target===e).map(e=>e.source)}for(;o.length>0;){let e=s(o.shift());for(let t of e)if(!i.has(t)){i.add(t),o.push(t);let e=n.find(e=>e.id===t);if(e&&(e.type===`command`||e.type===`code`||e.type===`user_input`)&&e.data.config){if(e.type===`command`&&e.data.config?.useTerminal===!0)continue;r.push(e)}}}return r});function B(e){if(!e)return[];if(e.type===`command`)return[{key:`stdout`,label:Q(`@NODECFG:标准输出(stdout)`)},{key:`stderr`,label:Q(`@NODECFG:标准错误(stderr)`)},{key:`error`,label:Q(`@NODECFG:错误(error)`)}];if(e.type===`code`){let t=e.data?.config,n=Array.isArray(t?.codeOutputParams)?t.codeOutputParams:[];if(n.length>0)return n.map(e=>String(e?.key||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}));let r=t?.codeOutputKeys;return(Array.isArray(r)?r:[]).map(e=>String(e||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}if(e.type===`user_input`){let t=e.data?.config;return(Array.isArray(t?.userInputParams)?t.userInputParams:[]).map(e=>String(e?.name||``).trim()).filter(e=>!!e).map(e=>({key:e,label:e}))}return[]}function V(e){return e.type===`command`?e.data.config?.commandName||e.data.label||Q(`@NODECFG:命令节点`):e.type===`code`?e.data.label||Q(`@FLOWNODE:代码节点`):e.type===`user_input`?e.data.label||Q(`@FLOWNODE:用户输入`):e.data.label||e.id}function H(e){let t=new Map;for(let n of Array.isArray(e)?e:[]){let e=String(n?.key||``).trim();e&&t.set(e,String(n?.desc||``).trim())}return[{key:`stdout`,desc:t.get(`stdout`)||``},{key:`stderr`,desc:t.get(`stderr`)||``},{key:`error`,desc:t.get(`error`)||``}]}q(()=>a.node,e=>{if(!e)return;let t=e.data.config;if(e.type===`command`)m.value={commandId:t?.commandId,commandName:t?.commandName,useTerminal:t?.useTerminal||!1,restartExistingTerminal:t?.restartExistingTerminal||!1,inputs:Array.isArray(t?.inputs)?t.inputs:[],commandOutputParams:H(t?.commandOutputParams),nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0};else if(e.type===`wait`)m.value={waitSeconds:t?.waitSeconds||5,nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0};else if(e.type===`version`){let n=`bump`;t?.versionSource===`input`&&(n=`input`);let r=A(t?.versionInputs);n!==`input`&&(t?.versionTarget!==`dependency`&&r?n=r.source===`manual`?`manual`:`reference`:t?.inputRef?n=`reference`:t?.dependencyVersion||t?.versionTarget!==`dependency`&&!t?.versionBump?n=`manual`:(t?.dependencyVersionBump||t?.versionBump)&&(n=`bump`)),m.value={versionTarget:t?.versionTarget||`version`,versionBump:t?.versionBump||`patch`,packageJsonPath:t?.packageJsonPath||``,dependencyName:t?.dependencyName||``,dependencyVersion:t?.dependencyVersion||``,dependencyType:t?.dependencyType||`dependencies`,dependencyVersionMode:t?.dependencyVersionBump?`bump`:`manual`,dependencyVersionBump:t?.dependencyVersionBump||`patch`,versionInputs:k(t?.versionInputs),versionSource:n,inputRef:t?.inputRef,extractVersionFromRefOutput:t?.extractVersionFromRefOutput??!0,versionInputKey:String(t?.versionInputKey||``).trim()||void 0,dependencyVersionInputKey:String(t?.dependencyVersionInputKey||``).trim()||void 0,nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0},n===`input`&&(m.value.versionTarget===`dependency`?ee():_()),t?.packageJsonPath&&W(t.packageJsonPath)}else if(e.type===`code`){let n=Array.isArray(t?.codeInputs)?t.codeInputs:[],r=Array.isArray(t?.codeOutputParams)?t.codeOutputParams:[];m.value={codeScript:t?.codeScript||``,codeInputs:n,codeOutputParams:r,nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0}}else if(e.type===`confirm`)m.value={nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0};else if(e.type===`condition`){let n=b(t?.conditionBranches);m.value={conditionBranches:n,nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0}}else e.type===`user_input`&&(m.value={userInputParams:Array.isArray(t?.userInputParams)?t.userInputParams:[],nodeName:t?.displayName||e.data.label||``,enabled:e.data.enabled??!0})},{immediate:!0});async function W(e){try{let t=await fetch(`/api/read-package-json`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({packageJsonPath:e})});if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();if(n.success){let e=[],t=m.value.dependencyType||`dependencies`;if(t===`dependencies`&&n.dependencies)e.push(...Object.keys(n.dependencies));else if(t===`devDependencies`&&n.devDependencies)e.push(...Object.keys(n.devDependencies));else if(t===`peerDependencies`){let t=n.peerDependencies&&Object.keys(n.peerDependencies).length>0?n.peerDependencies:n.peerDependenciesMeta;t&&e.push(...Object.keys(t))}R.value=e.sort()}}catch(e){console.error(Q(`@NODECFG:读取依赖列表失败`),e),R.value=[]}}q(()=>m.value.dependencyType,()=>{m.value.packageJsonPath&&W(m.value.packageJsonPath)});function oe(e){m.value.selectedPackageFile=e,e?(m.value.packageJsonPath=e.fullPath,W(e.fullPath)):R.value=[]}function K(e){m.value.commandId=e.id,m.value.commandName=e.name}function J(){return`step-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function ce(){if(!a.node)return;let e=null;if(a.node.type===`command`){if(!m.value.commandId){U.warning(Q(`@NODECFG:请选择要执行的命令`));return}let t=Array.isArray(m.value.inputs)?m.value.inputs:[];for(let e of t){if(!e||!e.required)continue;let t=String(e.paramName||``).trim()||Q(`@NODEINPUT:参数名`);if(e.inputType===`reference`){let n=String(e.referenceNodeId||``).trim(),r=String(e.referenceOutputKey||``).trim();if(!n||!r){U.warning(Q(`@NODECFG:必填参数未选择引用输出`,{name:t}));return}}else{let n=e.manualValue;if(n==null||String(n).trim()===``){U.warning(Q(`@NODECFG:请输入必填参数的值`,{name:t}));return}}}e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`command`,displayName:m.value.nodeName?.trim()||void 0,commandId:m.value.commandId,commandName:m.value.commandName||``,useTerminal:m.value.useTerminal||!1,restartExistingTerminal:m.value.useTerminal&&m.value.restartExistingTerminal||!1,inputs:m.value.inputs||[],commandOutputParams:H(m.value.commandOutputParams),enabled:m.value.enabled??!0}}else if(a.node.type===`wait`){if(!m.value.waitSeconds||m.value.waitSeconds<=0){U.warning(Q(`@NODECFG:等待时间必须大于0秒`));return}e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`wait`,displayName:m.value.nodeName?.trim()||void 0,waitSeconds:m.value.waitSeconds,enabled:m.value.enabled??!0}}else if(a.node.type===`version`){if(m.value.versionTarget===`dependency`){if(!m.value.dependencyName?.trim()){U.warning(Q(`@NODECFG:请选择依赖包名称`));return}if(m.value.versionSource===`manual`&&!m.value.dependencyVersion?.trim()){U.warning(Q(`@NODECFG:请输入依赖包版本号`));return}if(m.value.versionSource===`reference`&&!m.value.inputRef){U.warning(Q(`@NODECFG:请选择要引用的节点输出`));return}if(m.value.versionSource===`input`&&!String(m.value.dependencyVersionInputKey||``).trim()){U.warning(Q(`@NODECFG:请选择要引用的输入字段`));return}}else if(m.value.versionSource===`input`&&!String(m.value.versionInputKey||``).trim()){U.warning(Q(`@NODECFG:请选择要引用的输入字段`));return}e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`version`,displayName:m.value.nodeName?.trim()||void 0,versionTarget:m.value.versionTarget||`version`,versionBump:m.value.versionSource===`bump`?m.value.versionBump||`patch`:void 0,packageJsonPath:m.value.packageJsonPath?.trim()||void 0,dependencyName:m.value.versionTarget===`dependency`?m.value.dependencyName?.trim():void 0,dependencyVersion:m.value.versionTarget===`dependency`&&m.value.versionSource===`manual`?m.value.dependencyVersion?.trim():void 0,dependencyVersionBump:m.value.versionTarget===`dependency`&&m.value.versionSource===`bump`?m.value.dependencyVersionBump:void 0,dependencyType:m.value.versionTarget===`dependency`?m.value.dependencyType:void 0,versionInputs:k(m.value.versionInputs),versionSource:m.value.versionSource,inputRef:m.value.versionSource===`reference`?m.value.inputRef:void 0,extractVersionFromRefOutput:m.value.versionSource===`reference`?m.value.extractVersionFromRefOutput??!0:void 0,versionInputKey:m.value.versionSource===`input`&&m.value.versionTarget!==`dependency`&&String(m.value.versionInputKey||``).trim()||void 0,dependencyVersionInputKey:m.value.versionSource===`input`&&m.value.versionTarget===`dependency`&&String(m.value.dependencyVersionInputKey||``).trim()||void 0,enabled:m.value.enabled??!0}}else if(a.node.type===`code`){if(!m.value.codeScript||!String(m.value.codeScript).trim()){U.warning(Q(`@NODECFG:请输入脚本`));return}let t=k(m.value.codeInputs);for(let e of Array.isArray(t)?t:[]){if(!e||!e.required)continue;let t=String(e.name||``).trim()||Q(`@NODECFG:参数名`);if(e.source===`reference`){let n=String(e.ref?.nodeId||``).trim(),r=String(e.ref?.outputKey||``).trim();if(!n||!r){U.warning(Q(`@NODECFG:必填参数未选择引用输出`,{name:t}));return}}else{let n=e.manualValue;if(n==null||String(n).trim()===``){U.warning(Q(`@NODECFG:请输入必填参数的值`,{name:t}));return}}}let n=N(m.value.codeOutputParams);if(n.length===0){U.warning(Q(`@NODECFG:请配置输出键`));return}let r=n.map(e=>e.key);e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`code`,displayName:m.value.nodeName?.trim()||void 0,codeScript:m.value.codeScript,codeInputs:t,codeOutputParams:n,codeOutputKeys:r,enabled:m.value.enabled??!0}}else if(a.node.type===`confirm`)e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`confirm`,displayName:m.value.nodeName?.trim()||void 0,enabled:m.value.enabled??!0};else if(a.node.type===`condition`){let t=b(m.value.conditionBranches);if(!t.some(e=>e.handleId==="default"||e.isDefault)){U.warning(Q(`@COND:请至少保留一个默认分支`));return}for(let e of t)if(e.isDefault&&e.handleId!=="default"){U.warning(Q(`@COND:默认分支必须使用handleId=default`));return}e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`condition`,displayName:m.value.nodeName?.trim()||void 0,conditionBranches:t,enabled:m.value.enabled??!0}}else if(a.node.type===`user_input`){let t=(Array.isArray(m.value.userInputParams)?m.value.userInputParams:[]).map(e=>({name:String(e?.name||``).trim(),source:e?.source===`reference`?`reference`:`manual`,required:!!e?.required,defaultValue:e?.defaultValue===void 0||e?.defaultValue===null?``:String(e.defaultValue),ref:e?.ref?{nodeId:String(e.ref.nodeId||``),outputKey:String(e.ref.outputKey||`stdout`)}:void 0})).filter(e=>!!e.name),n=new Set,r=[];for(let e of t)e.name&&(n.has(e.name)||(n.add(e.name),r.push(e)));for(let e of r)if(e.required&&e.source===`reference`){let t=String(e?.ref?.nodeId||``).trim(),n=String(e?.ref?.outputKey||``).trim();if(!t||!n){U.warning(Q(`@NODECFG:必填参数未选择引用输出`,{name:e.name}));return}}e={id:a.node.data.config?.id||J(),nodeId:a.node.id,type:`user_input`,displayName:m.value.nodeName?.trim()||void 0,userInputParams:r,enabled:m.value.enabled??!0}}e&&(o(`update-config`,a.node.id,e),U.success(Q(`@NODECFG:节点配置已保存`)),u.value=!1)}let le={codeScriptExample:Wt,codeScriptExamples:r,applyCodeExample:i,props:a,emit:o,openCommandManager:s,configStore:c,dialogTitle:l,visible:u,codeInputRef:d,versionInputRef:f,userInputRef:p,formData:m,userInputOutputParams:h,availableVersionInputKeys:g,ensureDefaultVersionInputKey:_,ensureDefaultDependencyVersionInputKey:ee,createDefaultBranch:y,normalizeBranches:b,createRule:x,addBranch:S,removeBranch:w,addRuleRow:T,removeRuleRow:E,normalizeCodeInputs:k,getVersionFieldInput:A,upsertVersionFieldInput:j,removeVersionFieldInput:M,getVersionFieldRefValue:te,handleVersionFieldRefSelect:ne,normalizeCodeOutputs:N,createCodeOutputParam:F,addCodeOutputRow:L,availableDependencies:R,availableCommands:z,currentCommandVariables:re,predecessorNodes:ie,getNodeOutputOptions:B,getNodeDisplayName:V,ensureCommandOutputParams:H,loadDependenciesFromPackageJson:W,handlePackageFileChange:oe,selectCommand:K,generateId:J,saveConfig:ce,get Clock(){return P},get DocumentAdd(){return ae},get Link(){return G},get Folder(){return D},get Select(){return v},get Plus(){return fe},get Delete(){return se},get Minus(){return C},CommonDialog:_e,PackageJsonSelector:Ge,NodeInputConfig:gt,CodeNodeInputConfig:kt,UserInputParamConfig:Ut,ParamListContainer:nt,SvgIcon:he,get $t(){return Q}};return Object.defineProperty(le,"__isScriptSetup",{enumerable:!1,value:!0}),le}});i(),u();var Kt={key:0,class:`config-content`},qt={class:`config-section`},Jt={class:`section-title`},Yt={key:0,class:`config-section`},Xt={class:`section-title`},Zt={key:1,class:`config-section`},Qt={class:`section-title`},$t={class:`sub-section`},en={class:`sub-title`},tn={key:0,class:`empty-tip`},nn={key:1,class:`condition-branch-list`},rn={class:`branch-main`},an={class:`branch-header`},on={class:`branch-title`},sn={key:0,class:`branch-badge`},cn={class:`branch-meta`},ln={key:0,class:`branch-rules`},un={class:`rules-header`},dn={class:`rule-col`},fn={class:`field-label`},pn={class:`rule-col`},mn={class:`field-label`},hn={class:`rule-col`},gn={class:`field-label`},_n={class:`rule-col`,style:{"align-self":`flex-end`}},vn={key:1,class:`branch-default-tip`},yn={key:0,class:`branch-actions`},bn={key:2,class:`config-section`},xn={class:`section-title`},Sn={key:3,class:`config-section`},Cn={class:`section-title`},wn={key:4,class:`config-section`},Tn={class:`section-title`},En={key:5,class:`config-section`},Dn={class:`section-title`},On={key:6,class:`config-section`},kn={class:`section-title`},An={class:`output-param-row`},jn={class:`output-param-field`},Mn={class:`field-label`},Nn={key:7,class:`config-section`},Pn={class:`section-title`},Fn={key:0,class:`empty-tip`},In={key:1,class:`command-list`},Ln=[`onClick`],Rn={class:`command-info`},zn={class:`command-header`},Bn={class:`command-name`},Vn={key:0,class:`command-desc`},Hn={class:`command-code`},Un={class:`command-dir`},Wn={key:8,class:`config-section`},Gn={class:`section-title`},Kn={style:{"margin-left":`var(--spacing-md)`}},qn={key:9,class:`config-section`},Jn={class:`section-title`},Yn={class:`sub-section`},Xn={class:`sub-title`},Zn={class:`code-examples`},Qn={class:`examples-title`},$n={class:`examples-actions`},er={key:10,class:`config-section`},tr={class:`section-title`},nr={class:`reference-tip`},rr={class:`reference-tip`},ir={class:`node-option`},ar={class:`node-name`},or={class:`node-id`},sr={class:`reference-tip`},cr={class:`reference-tip`},lr={key:11,class:`config-section`},ur={class:`section-title`},dr={class:`output-param-row`},fr={class:`output-param-field`},pr={class:`field-label`},mr={class:`output-param-field`},hr={class:`field-label`},gr={key:12,class:`config-section`},_r={class:`section-title`},vr={class:`output-param-row`},yr={class:`output-param-field`},br={class:`field-label`},xr={class:`output-param-field`},Sr={class:`field-label`},Cr={class:`dialog-footer`},wr={class:`footer-actions`};function Tr(e,r,i,a,c,u){let f=h,m=k,v=_,C=K,w=d,T=de,E=ue,D=n,O=ee,A=l,M=p,te=y,ne=j,P=R;return N(),o(a.CommonDialog,{modelValue:a.visible,"onUpdate:modelValue":r[35]||=e=>a.visible=e,title:a.dialogTitle,size:`extra-large`,"append-to-body":!0,"z-index":8e5,"custom-class":`node-config-dialog`},{footer:z(()=>[s(`div`,Cr,[s(`div`,wr,[s(`button`,{type:`button`,class:`dialog-cancel-btn`,onClick:r[34]||=e=>a.visible=!1},B(a.$t(`@NODECFG:取消`)),1),s(`button`,{type:`button`,class:`dialog-confirm-btn`,onClick:a.saveConfig},[S(f,null,{default:z(()=>[S(a.Select)]),_:1}),s(`span`,null,B(a.$t(`@NODECFG:保存配置`)),1)])])])]),default:z(()=>[i.node?(N(),W(`div`,Kt,[x(` 通用配置 `),s(`div`,qt,[s(`div`,Jt,[S(f,null,{default:z(()=>[S(a.Select)]),_:1}),b(` `+B(a.$t(`@NODECFG:通用设置`)),1)]),S(w,{"label-width":`120px`},{default:z(()=>[S(v,{label:a.$t(`@NODECFG:节点名称`)},{default:z(()=>[S(m,{modelValue:a.formData.nodeName,"onUpdate:modelValue":r[0]||=e=>a.formData.nodeName=e,placeholder:a.$t(`@NODECFG:请输入节点名称`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),S(v,{label:a.$t(`@NODECFG:启用节点`)},{default:z(()=>[S(C,{modelValue:a.formData.enabled,"onUpdate:modelValue":r[1]||=e=>a.formData.enabled=e},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1})]),x(` 版本节点输入参数配置(同代码节点) `),i.node?.type===`version`?(N(),W(`div`,Yt,[s(`div`,Xt,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输入配置`))+` `,1),S(T,{type:`primary`,plain:``,icon:a.Plus,style:{"margin-left":`auto`},onClick:r[2]||=e=>a.versionInputRef?.addRow()},null,8,[`icon`])]),S(a.CodeNodeInputConfig,{ref:`versionInputRef`,"model-value":a.formData.versionInputs||[],"onUpdate:modelValue":r[3]||=e=>a.formData.versionInputs=e,"predecessor-nodes":a.predecessorNodes,title:void 0,addable:!1},null,8,[`model-value`,`predecessor-nodes`])])):x(`v-if`,!0),x(` 条件节点配置 `),i.node?.type===`condition`?(N(),W(`div`,Zt,[s(`div`,Qt,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@COND:条件配置`))+` `,1),S(T,{class:`icon-btn`,type:`primary`,plain:``,circle:``,icon:a.Plus,style:{"margin-left":`auto`},title:a.$t(`@COND:添加分支`),onClick:a.addBranch},null,8,[`icon`,`title`])]),s(`div`,$t,[s(`div`,en,[s(`span`,null,B(a.$t(`@COND:分支列表`)),1)]),!a.formData.conditionBranches||a.formData.conditionBranches.length===0?(N(),W(`div`,tn,B(a.$t(`@COND:请至少保留一个默认分支`)),1)):(N(),W(`div`,nn,[(N(!0),W(Z,null,t(a.formData.conditionBranches,e=>(N(),W(`div`,{key:e.id,class:`condition-branch-card`},[s(`div`,rn,[s(`div`,an,[s(`div`,on,[e.handleId==="default"||e.isDefault?(N(),W(`span`,sn,B(a.$t(`@COND:默认分支`)),1)):x(`v-if`,!0),S(m,{modelValue:e.name,"onUpdate:modelValue":t=>e.name=t,size:`small`,disabled:e.handleId==="default"||e.isDefault,placeholder:a.$t(`@COND:分支名称`)},null,8,[`modelValue`,`onUpdate:modelValue`,`disabled`,`placeholder`])])]),s(`div`,cn,[S(w,{"label-width":`80px`},{default:z(()=>[S(v,{label:a.$t(`@COND:优先级`)},{default:z(()=>[S(E,{modelValue:e.priority,"onUpdate:modelValue":t=>e.priority=t,min:0,max:9999,size:`small`},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`label`]),S(v,{label:a.$t(`@COND:规则组合`)},{default:z(()=>[S(O,{modelValue:e.combine,"onUpdate:modelValue":t=>e.combine=t,size:`small`},{default:z(()=>[S(D,{value:`all`},{default:z(()=>[b(B(a.$t(`@COND:且(ALL)`)),1)]),_:1}),S(D,{value:`any`},{default:z(()=>[b(B(a.$t(`@COND:或(ANY)`)),1)]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`label`])]),_:2},1024)]),e.handleId!=="default"&&!e.isDefault?(N(),W(`div`,ln,[s(`div`,un,[s(`span`,null,B(a.$t(`@COND:规则`)),1),S(T,{class:`icon-btn`,type:`primary`,plain:``,circle:``,icon:a.Plus,title:a.$t(`@COND:添加规则`),onClick:t=>a.addRuleRow(e.id)},null,8,[`icon`,`title`,`onClick`])]),(N(!0),W(Z,null,t(e.rules,(n,r)=>(N(),W(`div`,{key:r,class:`rule-row`},[s(`div`,dn,[s(`div`,fn,B(a.$t(`@COND:左值(引用输出)`)),1),S(M,{modelValue:n.left.nodeId,"onUpdate:modelValue":e=>n.left.nodeId=e,filterable:``,clearable:``,size:`small`,style:{width:`100%`},placeholder:a.$t(`@NODECFG:引用节点`)},{default:z(()=>[(N(!0),W(Z,null,t(a.predecessorNodes,e=>(N(),o(A,{key:e.id,label:a.getNodeDisplayName(e),value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),S(M,{modelValue:n.left.outputKey,"onUpdate:modelValue":e=>n.left.outputKey=e,filterable:``,size:`small`,style:{width:`100%`,"margin-top":`6px`},placeholder:a.$t(`@NODECFG:输出`)},{default:z(()=>[(N(!0),W(Z,null,t(a.getNodeOutputOptions(a.predecessorNodes.find(e=>e.id===n.left.nodeId)),e=>(N(),o(A,{key:e.key,label:e.label,value:e.key},null,8,[`label`,`value`]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),s(`div`,pn,[s(`div`,mn,B(a.$t(`@COND:操作符`)),1),S(M,{modelValue:n.op,"onUpdate:modelValue":e=>n.op=e,size:`small`,style:{width:`100%`}},{default:z(()=>[S(A,{label:`==`,value:`==`}),S(A,{label:`!=`,value:`!=`}),S(A,{label:`>`,value:`>`}),S(A,{label:`>=`,value:`>=`}),S(A,{label:`<`,value:`<`}),S(A,{label:`<=`,value:`<=`}),S(A,{label:`contains`,value:`contains`}),S(A,{label:`not_contains`,value:`not_contains`}),S(A,{label:`isEmpty`,value:`isEmpty`}),S(A,{label:`isNotEmpty`,value:`isNotEmpty`})]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,hn,[s(`div`,gn,B(a.$t(`@COND:右值`)),1),S(m,{modelValue:n.right,"onUpdate:modelValue":e=>n.right=e,size:`small`,disabled:n.op===`isEmpty`||n.op===`isNotEmpty`},null,8,[`modelValue`,`onUpdate:modelValue`,`disabled`])]),s(`div`,_n,[S(T,{class:`icon-btn`,type:`danger`,plain:``,circle:``,icon:a.Minus,title:a.$t(`@COND:删除规则`),onClick:t=>a.removeRuleRow(e.id,r)},null,8,[`icon`,`title`,`onClick`])])]))),128))])):(N(),W(`div`,vn,B(a.$t(`@COND:默认分支`))+`:不配置规则,未命中其它分支时走这里 `,1))]),e.handleId==="default"||e.isDefault?x(`v-if`,!0):(N(),W(`div`,yn,[S(T,{class:`icon-btn`,type:`danger`,plain:``,circle:``,icon:a.Delete,title:a.$t(`@COND:删除分支`),onClick:t=>a.removeBranch(e.id)},null,8,[`icon`,`title`,`onClick`])]))]))),128))]))])])):x(`v-if`,!0),i.node?.type===`command`?(N(),W(`div`,bn,[s(`div`,xn,[S(f,null,{default:z(()=>[S(a.Select)]),_:1}),b(` `+B(a.$t(`@NODECFG:执行方式`)),1)]),S(w,{"label-width":`120px`},{default:z(()=>[S(v,{label:a.$t(`@NODECFG:执行方式`)},{default:z(()=>[S(O,{modelValue:a.formData.useTerminal,"onUpdate:modelValue":r[4]||=e=>a.formData.useTerminal=e},{default:z(()=>[S(D,{value:!1},{default:z(()=>[b(B(a.$t(`@NODECFG:普通执行`)),1)]),_:1}),S(D,{value:!0},{default:z(()=>[b(B(a.$t(`@NODECFG:终端执行`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),a.formData.useTerminal?(N(),o(v,{key:0,label:a.$t(`@NODECFG:终端选项`)},{default:z(()=>[S(te,{modelValue:a.formData.restartExistingTerminal,"onUpdate:modelValue":r[5]||=e=>a.formData.restartExistingTerminal=e},{default:z(()=>[b(B(a.$t(`@NODECFG:重启现存终端命令`)),1)]),_:1},8,[`modelValue`])]),_:1},8,[`label`])):x(`v-if`,!0)]),_:1})])):x(`v-if`,!0),x(` 命令输入参数配置(独立版块) `),i.node?.type===`command`&&a.formData.commandId&&a.formData.inputs?(N(),W(`div`,Sn,[s(`div`,Cn,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输入配置`)),1)]),S(a.NodeInputConfig,{modelValue:a.formData.inputs,"onUpdate:modelValue":r[6]||=e=>a.formData.inputs=e,"param-names":a.currentCommandVariables,"disable-param-name-edit":!0,"predecessor-nodes":a.predecessorNodes},null,8,[`modelValue`,`param-names`,`predecessor-nodes`])])):x(`v-if`,!0),x(` 代码节点输入参数配置(节点级独立版块) `),i.node?.type===`code`?(N(),W(`div`,wn,[s(`div`,Tn,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输入配置`))+` `,1),S(T,{type:`primary`,plain:``,icon:a.Plus,style:{"margin-left":`auto`},onClick:r[7]||=e=>a.codeInputRef?.addRow()},null,8,[`icon`])]),S(a.CodeNodeInputConfig,{ref:`codeInputRef`,"model-value":a.formData.codeInputs||[],"onUpdate:modelValue":r[8]||=e=>a.formData.codeInputs=e,"predecessor-nodes":a.predecessorNodes,title:void 0,addable:!1},null,8,[`model-value`,`predecessor-nodes`])])):x(`v-if`,!0),x(` 用户输入节点参数配置(节点级独立版块) `),i.node?.type===`user_input`?(N(),W(`div`,En,[s(`div`,Dn,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输入配置`))+` `,1),S(T,{type:`primary`,plain:``,icon:a.Plus,style:{"margin-left":`auto`},onClick:r[9]||=e=>a.userInputRef?.addRow()},null,8,[`icon`])]),S(a.UserInputParamConfig,{ref:`userInputRef`,"model-value":a.formData.userInputParams||[],"onUpdate:modelValue":r[10]||=e=>a.formData.userInputParams=e,"predecessor-nodes":a.predecessorNodes,title:void 0,addable:!1},null,8,[`model-value`,`predecessor-nodes`])])):x(`v-if`,!0),x(` 用户输入节点输出配置(字段与输入一致,禁用) `),i.node?.type===`user_input`?(N(),W(`div`,On,[s(`div`,kn,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输出配置`)),1)]),S(a.ParamListContainer,{"model-value":a.userInputOutputParams,title:void 0,addable:!1,removable:!1},{empty:z(()=>[b(B(a.$t(`@NODECFG:暂无输出参数`)||``),1)]),row:z(({item:e})=>[s(`div`,An,[s(`div`,jn,[s(`label`,Mn,B(a.$t(`@NODECFG:参数名`)),1),S(m,{"model-value":e.key,disabled:``},null,8,[`model-value`])])])]),_:1},8,[`model-value`])])):x(`v-if`,!0),x(` 命令节点配置 `),i.node?.type===`command`?(N(),W(`div`,Nn,[s(`div`,Pn,[S(f,null,{default:z(()=>[S(a.SvgIcon,{"icon-class":`custom-cmd`})]),_:1}),b(` `+B(a.$t(`@NODECFG:命令配置`))+` `,1),S(T,{type:`primary`,plain:``,size:`small`,style:{"margin-left":`auto`},onClick:a.openCommandManager},{default:z(()=>[b(B(a.$t(`@NODECFG:管理命令`)),1)]),_:1})]),S(w,{"label-width":`100px`},{default:z(()=>[S(v,{label:a.$t(`@NODECFG:选择命令`),required:``},{default:z(()=>[a.availableCommands.length===0?(N(),W(`div`,Fn,B(a.$t(`@NODECFG:暂无可用命令请先创建命令`)),1)):(N(),W(`div`,In,[(N(!0),W(Z,null,t(a.availableCommands,e=>(N(),W(`div`,{key:e.id,class:g([`command-item`,{selected:a.formData.commandId===e.id}]),onClick:t=>a.selectCommand(e)},[s(`div`,Rn,[s(`div`,zn,[s(`span`,Bn,B(e.name),1),e.description?(N(),W(`span`,Vn,B(e.description),1)):x(`v-if`,!0)]),s(`code`,Hn,B(e.command),1),s(`div`,Un,[S(f,null,{default:z(()=>[S(a.Folder)]),_:1}),s(`span`,null,B(e.directory?e.directory.replace(/\\/g,`/`):a.$t(`@NODECFG:当前目录`)),1)])]),a.formData.commandId===e.id?(N(),o(f,{key:0,class:`check-icon`},{default:z(()=>[S(a.Select)]),_:1})):x(`v-if`,!0)],10,Ln))),128))]))]),_:1},8,[`label`])]),_:1})])):x(`v-if`,!0),x(` 等待节点配置 `),i.node?.type===`wait`?(N(),W(`div`,Wn,[s(`div`,Gn,[S(f,null,{default:z(()=>[S(a.Clock)]),_:1}),b(` `+B(a.$t(`@NODECFG:等待配置`)),1)]),S(w,{"label-width":`100px`},{default:z(()=>[S(v,{label:a.$t(`@NODECFG:等待时间`),required:``},{default:z(()=>[S(E,{modelValue:a.formData.waitSeconds,"onUpdate:modelValue":r[11]||=e=>a.formData.waitSeconds=e,min:1,max:3600,step:1},null,8,[`modelValue`]),s(`span`,Kn,B(a.$t(`@NODECFG:秒`)),1)]),_:1},8,[`label`])]),_:1})])):x(`v-if`,!0),i.node?.type===`code`?(N(),W(`div`,qn,[s(`div`,Jn,[S(f,null,{default:z(()=>[S(a.DocumentAdd)]),_:1}),b(` `+B(a.$t(`@NODECFG:代码配置`)),1)]),s(`div`,Yn,[s(`div`,Xn,[s(`span`,null,B(a.$t(`@NODECFG:代码`)),1)]),S(m,{modelValue:a.formData.codeScript,"onUpdate:modelValue":r[12]||=e=>a.formData.codeScript=e,type:`textarea`,rows:10,placeholder:a.codeScriptExample},null,8,[`modelValue`]),s(`div`,Zn,[s(`div`,Qn,B(a.$t(`@NODECFG:示例代码`)),1),s(`div`,$n,[(N(),W(Z,null,t(a.codeScriptExamples,e=>S(T,{key:e.key,type:`primary`,plain:``,onClick:t=>a.applyCodeExample(e.script)},{default:z(()=>[b(B(e.title),1)]),_:2},1032,[`onClick`])),64))])])])])):x(`v-if`,!0),x(` 版本节点配置 `),i.node?.type===`version`?(N(),W(`div`,er,[s(`div`,tr,[S(f,null,{default:z(()=>[S(a.DocumentAdd)]),_:1}),b(` `+B(a.$t(`@NODECFG:版本配置`)),1)]),S(w,{"label-width":`120px`},{default:z(()=>[S(v,{label:a.$t(`@NODECFG:package.json`)},{default:z(()=>[S(a.PackageJsonSelector,{modelValue:a.formData.packageJsonPath,"onUpdate:modelValue":r[13]||=e=>a.formData.packageJsonPath=e,placeholder:a.$t(`@NODECFG:留空则使用当前目录的package.json`),clearable:``,onChange:a.handlePackageFileChange},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),S(v,{label:a.$t(`@NODECFG:修改目标`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.versionTarget,"onUpdate:modelValue":r[14]||=e=>a.formData.versionTarget=e},{default:z(()=>[S(D,{value:`version`},{default:z(()=>[b(B(a.$t(`@NODECFG:version字段`)),1)]),_:1}),S(D,{value:`dependency`},{default:z(()=>[b(B(a.$t(`@NODECFG:dependencies中的依赖`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),x(` version 字段配置 `),a.formData.versionTarget===`version`?(N(),W(Z,{key:0},[S(v,{label:a.$t(`@NODECFG:版本号来源`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.versionSource,"onUpdate:modelValue":r[15]||=e=>a.formData.versionSource=e,onChange:r[16]||=e=>{e===`bump`?a.removeVersionFieldInput():e===`manual`?a.upsertVersionFieldInput({source:`manual`,manualValue:a.getVersionFieldInput(a.formData.versionInputs)?.manualValue??``}):e===`reference`?a.upsertVersionFieldInput({source:`reference`,ref:a.getVersionFieldInput(a.formData.versionInputs)?.ref||{nodeId:``,outputKey:`stdout`}}):e===`input`&&a.ensureDefaultVersionInputKey()}},{default:z(()=>[S(D,{value:`bump`},{default:z(()=>[b(B(a.$t(`@NODECFG:自动递增`)),1)]),_:1}),S(D,{value:`manual`},{default:z(()=>[b(B(a.$t(`@NODECFG:手动输入`)),1)]),_:1}),S(D,{value:`reference`,disabled:a.predecessorNodes.length===0},{default:z(()=>[b(B(a.$t(`@NODECFG:引用输出`))+` `,1),a.predecessorNodes.length===0?(N(),o(ne,{key:0,content:a.$t(`@NODECFG:无可用的前置命令节点`),placement:`top`},{default:z(()=>[S(f,{style:{"margin-left":`4px`}},{default:z(()=>[S(a.Link)]),_:1})]),_:1},8,[`content`])):x(`v-if`,!0)]),_:1},8,[`disabled`]),S(D,{value:`input`,disabled:a.availableVersionInputKeys.length===0},{default:z(()=>[b(B(a.$t(`@NODECFG:引用输入`)),1)]),_:1},8,[`disabled`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),a.formData.versionSource===`bump`?(N(),o(v,{key:0,label:a.$t(`@NODECFG:版本增量类型`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.versionBump,"onUpdate:modelValue":r[17]||=e=>a.formData.versionBump=e},{default:z(()=>[S(D,{value:`patch`},{default:z(()=>[b(B(a.$t(`@NODECFG:补丁版本x.x.+1`)),1)]),_:1}),S(D,{value:`minor`},{default:z(()=>[b(B(a.$t(`@NODECFG:次版本x.+1.0`)),1)]),_:1}),S(D,{value:`major`},{default:z(()=>[b(B(a.$t(`@NODECFG:主版本+1.0.0`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`label`])):x(`v-if`,!0),a.formData.versionSource===`manual`?(N(),o(v,{key:1,label:a.$t(`@NODECFG:版本号`),required:``},{default:z(()=>[S(m,{"model-value":a.getVersionFieldInput(a.formData.versionInputs)?.manualValue,placeholder:a.$t(`@NODECFG:例如1.2.3`),"onUpdate:modelValue":r[18]||=e=>a.upsertVersionFieldInput({source:`manual`,manualValue:e})},null,8,[`model-value`,`placeholder`])]),_:1},8,[`label`])):x(`v-if`,!0),a.formData.versionSource===`reference`?(N(),W(Z,{key:2},[S(v,{label:a.$t(`@NODECFG:引用节点`),required:``},{default:z(()=>[S(P,{"model-value":a.getVersionFieldRefValue(a.getVersionFieldInput(a.formData.versionInputs)),data:a.predecessorNodes.map(e=>({value:e.id,label:a.getNodeDisplayName(e),children:a.getNodeOutputOptions(e).map(t=>({value:`${e.id}::${t.key}`,label:t.label}))})),placeholder:a.$t(`@NODECFG:选择要引用的前置节点`),clearable:``,filterable:``,"check-strictly":``,"render-after-expand":!1,"onUpdate:modelValue":r[19]||=e=>a.handleVersionFieldRefSelect(e)},null,8,[`model-value`,`data`,`placeholder`])]),_:1},8,[`label`]),S(v,{label:a.$t(`@NODECFG:提取版本号`)},{default:z(()=>[S(C,{modelValue:a.formData.extractVersionFromRefOutput,"onUpdate:modelValue":r[20]||=e=>a.formData.extractVersionFromRefOutput=e},null,8,[`modelValue`])]),_:1},8,[`label`]),s(`div`,nr,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),s(`span`,null,B(a.$t(`@NODECFG:版本号将使用所选节点的输出结果`)),1)])],64)):x(`v-if`,!0),a.formData.versionSource===`input`?(N(),W(Z,{key:3},[S(v,{label:a.$t(`@NODECFG:引用输入`),required:``},{default:z(()=>[S(M,{modelValue:a.formData.versionInputKey,"onUpdate:modelValue":r[21]||=e=>a.formData.versionInputKey=e,filterable:``,clearable:``,style:{width:`100%`},placeholder:a.$t(`@NODECFG:选择要引用的输入字段`),onChange:a.ensureDefaultVersionInputKey},{default:z(()=>[(N(!0),W(Z,null,t(a.availableVersionInputKeys,e=>(N(),o(A,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),s(`div`,rr,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),s(`span`,null,B(a.$t(`@NODECFG:版本号将使用本节点输入参数的值`)),1)])],64)):x(`v-if`,!0)],64)):x(`v-if`,!0),x(` dependency 配置 `),a.formData.versionTarget===`dependency`?(N(),W(Z,{key:1},[S(v,{label:a.$t(`@NODECFG:依赖类型`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.dependencyType,"onUpdate:modelValue":r[22]||=e=>a.formData.dependencyType=e},{default:z(()=>[S(D,{value:`dependencies`},{default:z(()=>[...r[36]||=[b(`dependencies`,-1)]]),_:1}),S(D,{value:`devDependencies`},{default:z(()=>[...r[37]||=[b(`devDependencies`,-1)]]),_:1}),S(D,{value:`peerDependencies`},{default:z(()=>[...r[38]||=[b(`peerDependencies`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),S(v,{label:a.$t(`@NODECFG:依赖包名称`),required:``},{default:z(()=>[S(M,{modelValue:a.formData.dependencyName,"onUpdate:modelValue":r[23]||=e=>a.formData.dependencyName=e,placeholder:a.$t(`@NODECFG:请先选择package.json`),clearable:``,filterable:``,"allow-create":``,style:{width:`100%`}},{default:z(()=>[(N(!0),W(Z,null,t(a.availableDependencies,e=>(N(),o(A,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),S(v,{label:a.$t(`@NODECFG:版本号来源`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.versionSource,"onUpdate:modelValue":r[24]||=e=>a.formData.versionSource=e,onChange:r[25]||=e=>{e===`input`&&a.ensureDefaultDependencyVersionInputKey()}},{default:z(()=>[S(D,{value:`bump`},{default:z(()=>[b(B(a.$t(`@NODECFG:自动递增`)),1)]),_:1}),S(D,{value:`manual`},{default:z(()=>[b(B(a.$t(`@NODECFG:手动输入`)),1)]),_:1}),S(D,{value:`reference`,disabled:a.predecessorNodes.length===0},{default:z(()=>[b(B(a.$t(`@NODECFG:引用输出`))+` `,1),a.predecessorNodes.length===0?(N(),o(ne,{key:0,content:a.$t(`@NODECFG:无可用的前置命令节点`),placement:`top`},{default:z(()=>[S(f,{style:{"margin-left":`4px`}},{default:z(()=>[S(a.Link)]),_:1})]),_:1},8,[`content`])):x(`v-if`,!0)]),_:1},8,[`disabled`]),S(D,{value:`input`,disabled:a.availableVersionInputKeys.length===0},{default:z(()=>[b(B(a.$t(`@NODECFG:引用输入`)),1)]),_:1},8,[`disabled`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),a.formData.versionSource===`bump`?(N(),o(v,{key:0,label:a.$t(`@NODECFG:递增类型`),required:``},{default:z(()=>[S(O,{modelValue:a.formData.dependencyVersionBump,"onUpdate:modelValue":r[26]||=e=>a.formData.dependencyVersionBump=e},{default:z(()=>[S(D,{value:`patch`},{default:z(()=>[b(B(a.$t(`@NODECFG:补丁版本`)),1)]),_:1}),S(D,{value:`minor`},{default:z(()=>[b(B(a.$t(`@NODECFG:次版本`)),1)]),_:1}),S(D,{value:`major`},{default:z(()=>[b(B(a.$t(`@NODECFG:主版本`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`label`])):x(`v-if`,!0),a.formData.versionSource===`manual`?(N(),o(v,{key:1,label:a.$t(`@NODECFG:版本号`),required:``},{default:z(()=>[S(m,{modelValue:a.formData.dependencyVersion,"onUpdate:modelValue":r[27]||=e=>a.formData.dependencyVersion=e,placeholder:a.$t(`@NODECFG:例如1.2.3`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])):x(`v-if`,!0),x(` 引用输出配置 `),a.formData.versionSource===`reference`?(N(),W(Z,{key:2},[S(v,{label:a.$t(`@NODECFG:引用节点`),required:``},{default:z(()=>[S(M,{modelValue:a.formData.inputRef,"onUpdate:modelValue":r[28]||=e=>a.formData.inputRef=e,"value-key":`nodeId`,placeholder:a.$t(`@NODECFG:选择要引用的前置节点`),style:{width:`100%`}},{default:z(()=>[(N(!0),W(Z,null,t(a.predecessorNodes,e=>(N(),o(A,{key:e.id,label:a.getNodeDisplayName(e),value:{nodeId:e.id,outputKey:`stdout`}},{default:z(()=>[s(`div`,ir,[s(`span`,ar,B(a.getNodeDisplayName(e)),1),s(`span`,or,B(a.$t(`@NODECFG:ID`))+`: `+B(e.id.substring(0,15))+`...`,1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),a.formData.inputRef?(N(),o(v,{key:0,label:a.$t(`@NODECFG:输出字段`),required:``},{default:z(()=>[S(M,{modelValue:a.formData.inputRef.outputKey,"onUpdate:modelValue":r[29]||=e=>a.formData.inputRef.outputKey=e,placeholder:a.$t(`@NODECFG:选择要引用的输出字段`),style:{width:`100%`}},{default:z(()=>[(N(!0),W(Z,null,t(a.getNodeOutputOptions(a.predecessorNodes.find(e=>e.id===a.formData.inputRef?.nodeId)),e=>(N(),o(A,{key:e.key,label:e.label,value:e.key},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])):x(`v-if`,!0),a.formData.inputRef?(N(),o(v,{key:1,label:a.$t(`@NODECFG:提取版本号`)},{default:z(()=>[S(C,{modelValue:a.formData.extractVersionFromRefOutput,"onUpdate:modelValue":r[30]||=e=>a.formData.extractVersionFromRefOutput=e},null,8,[`modelValue`])]),_:1},8,[`label`])):x(`v-if`,!0),s(`div`,sr,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),s(`span`,null,B(a.$t(`@NODECFG:版本号将使用所选节点的输出结果`)),1)])],64)):x(`v-if`,!0),a.formData.versionSource===`input`?(N(),W(Z,{key:3},[S(v,{label:a.$t(`@NODECFG:引用输入`),required:``},{default:z(()=>[S(M,{modelValue:a.formData.dependencyVersionInputKey,"onUpdate:modelValue":r[31]||=e=>a.formData.dependencyVersionInputKey=e,filterable:``,clearable:``,style:{width:`100%`},placeholder:a.$t(`@NODECFG:选择要引用的输入字段`),onChange:a.ensureDefaultDependencyVersionInputKey},{default:z(()=>[(N(!0),W(Z,null,t(a.availableVersionInputKeys,e=>(N(),o(A,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),s(`div`,cr,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),s(`span`,null,B(a.$t(`@NODECFG:版本号将使用本节点输入参数的值`)),1)])],64)):x(`v-if`,!0)],64)):x(`v-if`,!0)]),_:1})])):x(`v-if`,!0),i.node?.type===`code`?(N(),W(`div`,lr,[s(`div`,ur,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输出`))+` `,1),S(T,{type:`primary`,plain:``,icon:a.Plus,style:{"margin-left":`auto`},onClick:a.addCodeOutputRow},null,8,[`icon`])]),S(a.ParamListContainer,{"model-value":a.formData.codeOutputParams||[],title:void 0,addable:!1,removable:!0,"min-items":0,"create-item":a.createCodeOutputParam,"onUpdate:modelValue":r[32]||=e=>a.formData.codeOutputParams=e},{empty:z(()=>[b(B(a.$t(`@NODECFG:暂无输出参数`)||``),1)]),row:z(({item:e})=>[s(`div`,dr,[s(`div`,fr,[s(`label`,pr,B(a.$t(`@NODECFG:参数名`)),1),S(m,{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:a.$t(`@NODECFG:参数名`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),s(`div`,mr,[s(`label`,hr,B(a.$t(`@NODECFG:参数类型`)),1),S(M,{modelValue:e.type,"onUpdate:modelValue":t=>e.type=t,style:{width:`180px`}},{default:z(()=>[S(A,{label:`String`,value:`String`}),S(A,{label:`Number`,value:`Number`}),S(A,{label:`Boolean`,value:`Boolean`}),S(A,{label:`JSON`,value:`JSON`})]),_:1},8,[`modelValue`,`onUpdate:modelValue`])])])]),_:1},8,[`model-value`])])):x(`v-if`,!0),i.node?.type===`command`?(N(),W(`div`,gr,[s(`div`,_r,[S(f,null,{default:z(()=>[S(a.Link)]),_:1}),b(` `+B(a.$t(`@NODECFG:输出配置`)),1)]),S(a.ParamListContainer,{"model-value":a.formData.commandOutputParams||[],title:void 0,addable:!1,removable:!1,"onUpdate:modelValue":r[33]||=e=>a.formData.commandOutputParams=e},{empty:z(()=>[b(B(a.$t(`@NODECFG:暂无输出参数`)||``),1)]),row:z(({item:e})=>[s(`div`,vr,[s(`div`,yr,[s(`label`,br,B(a.$t(`@NODECFG:参数名`)),1),S(m,{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,disabled:``},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,xr,[s(`label`,Sr,B(a.$t(`@NODECFG:参数描述`)),1),S(m,{modelValue:e.desc,"onUpdate:modelValue":t=>e.desc=t,placeholder:a.$t(`@NODECFG:参数描述`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])])])]),_:1},8,[`model-value`])])):x(`v-if`,!0)])):x(`v-if`,!0)]),_:1},8,[`modelValue`,`title`])}var Er=$(Gt,[[`render`,Tr],[`__scopeId`,`data-v-e230c70f`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/NodeConfigPanel.vue`]]);i(),J();var Dr=m({__name:`FlowOrchestrationWorkspace`,props:{visible:{type:Boolean,required:!0}},emits:[`update:visible`,`execute-flow`,`open-command-manager`],setup(e,{expose:t,emit:n}){t();let r=Symbol(`FLOW_NODE_ACTIONS`);function i(e){switch(e){case`command`:return`📋`;case`wait`:return`⏰`;case`version`:return`📦`;case`confirm`:return`✋`;case`code`:return`🧩`;case`start`:return`🚀`;case`condition`:return`🔀`;case`user_input`:return`⌨️`;default:return``}}function a(e){return m({name:`FlowWrappedNode`,props:{id:{type:String,required:!0},data:{type:Object,required:!0}},setup(t){let n=A(r,null),a=O(()=>{let e=t.data?.config,n=[...Array.isArray(e?.conditionBranches)?e.conditionBranches:[]].sort((e,t)=>{let n=e?.handleId==="default"||e?.isDefault,r=t?.handleId==="default"||t?.isDefault;return n&&!r?1:!n&&r?-1:Number(e?.priority??0)-Number(t?.priority??0)}).map(e=>String(e?.handleId||``).trim()).filter(e=>!!e);return n.includes(`default`)||n.push(`default`),n.length?n:[`default`]});return()=>T(Fe,{nodeId:t.id,onExecuteFromNode:e=>n?.executeFromNode(e),onExecuteSingleNode:e=>n?.executeSingleNode(e)},{default:()=>T(Te,{id:t.id,nodeId:t.id,nodeType:t.data?.type,title:t.data?.label,icon:i(t.data?.type),enabled:t.data?.enabled??!0,selected:t.data?.selected??!1,sourceHandleIds:t.data?.type===`condition`?a.value:void 0,onDelete:e=>n?.deleteNode(e)},{default:()=>T(e,{data:t.data,id:t.id})})})}})}let o=m({name:`FlowStartNodeRenderer`,props:{id:{type:String,required:!0},data:{type:Object,required:!0}},setup(e){return()=>T(Te,{id:e.id,nodeId:e.id,nodeType:`start`,title:Q(`@FLOWNODE:开始`),icon:i(`start`),enabled:e.data?.enabled,selected:e.data?.selected,deletable:!1},{})}}),s={start:H(o),command:H(a(Ae)),wait:H(a(Oe)),version:H(a(we)),confirm:H(a(Ee)),code:H(a(ke)),condition:H(a(De)),user_input:H(a(je))},l=e,u=n,{t:d}=pe(),f=ge(),p=O({get:()=>l.visible,set:e=>u(`update:visible`,e)}),{onConnect:h,addEdges:g,getViewport:_,setViewport:ee,onNodeDragStart:y,onNodeDragStop:b,getSelectedEdges:x,updateNodeInternals:S}=ye(),C=I([]),E=I([]),D=I(``),k=I(``),j=I(null),N=I(!1),P=I(null),F=null,L=O(()=>f.orchestrations||[]),R=I(null),z=1;function ie(e){return`${e}-${Date.now()}-${z++}`}function ae(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function B(e){let t=String(e||``).trim()||d(`@ORCH:未命名`),n=new Set((Array.isArray(L.value)?L.value:[]).map(e=>String(e?.name||``).trim())),r=`${t}(复制)`;if(!n.has(r))return r;let i=2;for(;i<1e3;){let e=`${t}(复制${i})`;if(!n.has(e))return e;i+=1}return`${t}(复制${Date.now()})`}async function V(e){try{let t={name:B(e?.name),description:e?.description||``,flowData:e?.flowData?JSON.parse(JSON.stringify(e.flowData)):null},n=await f.saveOrchestration(t);n&&typeof n==`object`&&`id`in n&&(R.value=n.id,j.value=n.id,He(n),U.success(d(`@ORCH:已复制`)))}catch(e){U.error(`${d(`@ORCH:错误`)}: ${e?.message||e}`)}}function W(){return C.value.filter(e=>e.type!==`start`&&e.data?.config)}function G(e){return e===`version`?{w:250,h:120}:e===`wait`||e===`confirm`||e===`user_input`?{w:200,h:120}:e===`condition`?{w:260,h:160}:{w:220,h:120}}function oe(e){let t=_(),n=document.querySelector(`.vue-flow-container`)?.getBoundingClientRect(),r=n?n.width/2:500,i=n?n.height/2:300,a=t.zoom||1,o=(r-t.x)/a,s=(i-t.y)/a,{w:c,h:l}=G(e);return{x:o-c/2,y:s-l/2}}function K(e,t){let n=C.value.filter(t=>t.type===e).map(e=>String(e?.data?.label||``).trim()).filter(e=>!!e),r=String(t||``).trim();if(!r)return r;let i=RegExp(`^${ae(r)}(\\d+)?$`),a=-1;for(let e of n){let t=e.match(i);if(!t)continue;let n=t[1]?Number(t[1]):0;Number.isFinite(n)&&(a=Math.max(a,n))}return a<0?r:`${r}${a+1}`}function q(e){return e.map(e=>({id:e.id,type:e.type,position:e.position,data:e.data}))}function J(e){return e.map(e=>({id:e.id,source:e.source,target:e.target,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle}))}async function Y(e){await M();let t=e&&e.length?e:C.value.map(e=>e.id);requestAnimationFrame(()=>{S(t)})}function X(){j.value&&D.value.trim()&&(F&&clearTimeout(F),F=window.setTimeout(()=>{Re()},1e3))}function Z(){C.value=[{id:`start-node`,type:`start`,position:{x:50,y:200},data:{id:`start-node`,type:`start`,label:d(`@FLOWNODE:开始`),enabled:!0}}],E.value=[],z=1}function ue(e){let t=ie(e),n={command:d(`@FLOWNODE:命令节点`),wait:d(`@FLOWNODE:等待节点`),version:d(`@FLOWNODE:版本管理`),confirm:d(`@FLOWNODE:用户确认`),code:d(`@FLOWNODE:代码节点`),condition:d(`@FLOWNODE:条件`),user_input:d(`@FLOWNODE:用户输入`)}[e],r=K(e,n),i=oe(e),a={id:t,type:e,position:{x:i.x,y:i.y},data:{id:t,type:e,label:r,enabled:!0,config:e===`confirm`?{id:t,type:`confirm`}:e===`condition`?{id:t,type:`condition`,conditionBranches:[{id:`branch-${Date.now()}`,name:Q(`@COND:默认分支`),handleId:`default`,priority:999,combine:`all`,rules:[],isDefault:!0}]}:e===`user_input`?{id:t,type:`user_input`,userInputParams:[]}:void 0}};C.value.push(a),C.value.forEach(e=>{e.data&&(e.data.selected=!1)}),a.data&&(a.data.selected=!0),P.value=a,N.value=!1,U.success(`${d(`@FLOWNODE:已添加`)}${a.data.label}`),X()}h(e=>{g([e]),X()}),y(e=>{C.value.forEach(e=>{e.data&&(e.data.selected=!1)});let t=C.value.find(t=>t.id===e.node.id);t&&t.data&&(t.data.selected=!0)}),b(()=>{X()});function de(e){C.value.forEach(e=>{e.data&&(e.data.selected=!1)});let t=C.value.find(t=>t.id===e.node.id);t&&(t.data.selected=!0,t.type!==`start`&&(P.value=t,N.value=!0)),Y([e.node.id])}function $(){C.value.forEach(e=>{e.data&&(e.data.selected=!1)}),Y()}function me(e,t){let n=C.value.find(t=>t.id===e);n&&(n.data.config=t,n.data.label=he(t),X())}function he(e){return e.displayName&&String(e.displayName).trim()?String(e.displayName).trim():e.type===`command`?e.commandName||d(`@FLOWNODE:未知命令`):e.type===`wait`?d(`@FLOWNODE:等待 {seconds} 秒`,{seconds:e.waitSeconds}):e.type===`version`?e.versionTarget===`dependency`?d(`@FLOWNODE:修改依赖: {name}`,{name:e.dependencyName}):d(`@FLOWNODE:版本号 +1 ({bump})`,{bump:e.versionBump}):e.type===`confirm`?d(`@FLOWNODE:用户确认`):e.type===`user_input`?d(`@FLOWNODE:用户输入`):e.type===`code`?d(`@FLOWNODE:代码节点`):d(`@FLOWNODE:未配置`)}function Ce(e){if(console.log(`nodeId ==>`,e),e===`start-node`){U.warning(d(`@FLOWNODE:不能删除起始节点`));return}console.log(`nodes ==>`,C),C.value=C.value.filter(t=>t.id!==e),E.value=E.value.filter(t=>t.source!==e&&t.target!==e),P.value?.id===e&&(P.value=null,N.value=!1),U.success(d(`@FLOWNODE:节点已删除`)),X()}function Ne(e){for(let t of e)t.type===`remove`&&(E.value=E.value.filter(e=>e.id!==t.id));X()}function Pe(e){if(e.key===`Delete`||e.key===`Backspace`){let t=x.value;if(t&&t.length>0){let n=t.map(e=>e.id);E.value=E.value.filter(e=>!n.includes(e.id)),X(),e.preventDefault()}}}function Ie(){ce.confirm(`确定要清空整个流程吗?`,`确认清空`,{confirmButtonText:`清空`,cancelButtonText:`取消`,type:`warning`}).then(()=>{Z(),U.success(`流程已清空`),X()}).catch(()=>{})}async function Le(){if(C.value.length<=1){U.info(`节点太少,无需优化布局`);return}await Y(),await new Promise(e=>requestAnimationFrame(()=>e()));let e=new Me.default.graphlib.Graph;e.setDefaultEdgeLabel(()=>({})),e.setGraph({rankdir:`LR`,nodesep:80,ranksep:80,marginx:50,marginy:50}),C.value.forEach(t=>{let n=220,r=100;t.type===`start`?(n=100,r=100):t.type===`wait`||t.type===`confirm`?(n=200,r=120):t.type===`version`&&(n=250,r=120);let i=document.querySelector(`.vue-flow__node[data-id="${t.id}"]`);if(i){let e=i.offsetWidth,t=i.offsetHeight;e>0&&t>0&&(n=e,r=t)}e.setNode(t.id,{width:n,height:r})}),E.value.forEach(t=>{e.setEdge(t.source,t.target)}),Me.default.layout(e),C.value.forEach(t=>{let n=e.node(t.id);n&&(t.position={x:n.x-n.width/2,y:n.y-n.height/2})}),U.success(`布局优化完成(dagre)`),X()}async function Re(){if(!D.value.trim()){U.warning(`请输入编排名称`);return}let e=C.value.filter(e=>e.type!==`start`&&!e.data.config);if(e.length>0){let t=e.map(e=>e.data.label).join(`、`);U.warning(`以下节点还未配置:${t}。未配置的节点不会被保存。`)}if(W().length===0){U.warning(`请至少添加一个执行步骤`);return}let t=_(),n={name:D.value.trim(),description:k.value.trim(),flowData:{nodes:q(C.value),edges:J(E.value),viewport:{x:t.x,y:t.y,zoom:t.zoom}}};if(j.value)await f.updateOrchestration(j.value,n);else{let e=await f.saveOrchestration(n);U.success(`编排已保存`),e&&typeof e==`object`&&`id`in e&&(R.value=e.id,j.value=e.id)}}function ze(){if(W().length===0){U.warning(`请至少添加一个执行步骤`);return}p.value=!1;let e=_(),t=C.value.find(e=>e.type===`start`);u(`execute-flow`,{flowData:{nodes:JSON.parse(JSON.stringify(C.value)),edges:JSON.parse(JSON.stringify(E.value)),viewport:{x:e.x,y:e.y,zoom:e.zoom}},startNodeId:t?.id,isSingleExecution:!1,orchestrationMeta:{id:j.value||void 0,name:D.value||void 0}})}function Be(e){let t=C.value.find(t=>t.id===e);if(!t||t.type===`start`||!t.data.config){U.warning(`该节点无法执行`);return}p.value=!1;let n=_();u(`execute-flow`,{flowData:{nodes:JSON.parse(JSON.stringify(C.value)),edges:JSON.parse(JSON.stringify(E.value)),viewport:{x:n.x,y:n.y,zoom:n.zoom}},startNodeId:e,isSingleExecution:!1,orchestrationMeta:{id:j.value||void 0,name:D.value||void 0}})}function Ve(e){let t=C.value.find(t=>t.id===e);if(!t||t.type===`start`||!t.data.config){U.warning(`该节点无法执行`);return}p.value=!1;let n=_();u(`execute-flow`,{flowData:{nodes:JSON.parse(JSON.stringify(C.value)),edges:JSON.parse(JSON.stringify(E.value)),viewport:{x:n.x,y:n.y,zoom:n.zoom}},startNodeId:e,isSingleExecution:!0,orchestrationMeta:{id:j.value||void 0,name:D.value||void 0}})}w(r,{deleteNode:Ce,executeFromNode:Be,executeSingleNode:Ve});function He(e){R.value=e.id,j.value=e.id,D.value=e.name,k.value=e.description||``,e.flowData?(C.value=JSON.parse(JSON.stringify(e.flowData.nodes)),E.value=JSON.parse(JSON.stringify(e.flowData.edges)),Y(),e.flowData.viewport&&setTimeout(()=>{ee(e.flowData.viewport)},100)):Z()}function Ue(){R.value=null,j.value=null,D.value=``,k.value=``,Z()}async function We(e){try{await ce.confirm(`确定要删除编排 "${e.name}" 吗?`,`确认删除`,{confirmButtonText:`删除`,cancelButtonText:`取消`,type:`warning`}),await f.deleteOrchestration(e.id),j.value===e.id&&Ue()}catch(e){e!==`cancel`&&U.error(`删除编排失败: ${e.message||e}`)}}function Ge(e){if(p.value=!1,e?.flowData){let t=Array.isArray(e.flowData.nodes)?e.flowData.nodes.find(e=>e?.type===`start`):void 0;u(`execute-flow`,{flowData:e.flowData,startNodeId:t?.id,isSingleExecution:!1,orchestrationMeta:{id:e?.id,name:e?.name}});return}U.warning(`该编排缺少流程数据,无法执行`)}ne(()=>{Z(),window.addEventListener(`keydown`,Pe),Y()}),te(()=>{window.removeEventListener(`keydown`,Pe)});let Ke={FLOW_NODE_ACTIONS_KEY:r,getNodeIcon:i,createWrappedNode:a,StartNodeRenderer:o,nodeTypes:s,props:l,emit:u,t:d,configStore:f,dialogVisible:p,onConnect:h,addEdges:g,getViewport:_,setViewport:ee,onNodeDragStart:y,onNodeDragStop:b,getSelectedEdges:x,updateNodeInternals:S,nodes:C,edges:E,orchestrationName:D,orchestrationDescription:k,editingOrchestrationId:j,showConfigPanel:N,selectedNode:P,get autoSaveTimer(){return F},set autoSaveTimer(e){F=e},orchestrations:L,selectedOrchestrationId:R,get nodeIdCounter(){return z},set nodeIdCounter(e){z=e},generateNodeId:ie,escapeRegExp:ae,generateCopyName:B,duplicateOrchestration:V,getExecutableNodes:W,estimateNodeSize:G,getViewportCenterPosition:oe,generateUniqueNodeLabel:K,sanitizeNodesForSave:q,sanitizeEdgesForSave:J,refreshNodeInternals:Y,scheduleAutoSave:X,initializeFlow:Z,addNode:ue,onNodeClick:de,onPaneClick:$,updateNodeConfig:me,getNodeLabel:he,handleNodeDelete:Ce,onEdgesChange:Ne,handleKeyDown:Pe,clearFlow:Ie,optimizeLayout:Le,saveOrchestration:Re,executeCurrentFlow:ze,executeFromNode:Be,executeSingleNode:Ve,loadOrchestration:He,createNewOrchestration:Ue,deleteOrchestration:We,executeOrchestration:Ge,get VueFlow(){return xe},get Background(){return ve},get Controls(){return be},get Delete(){return se},get VideoPlay(){return le},get Plus(){return fe},get Select(){return v},get Grid(){return c},get CopyDocument(){return re},CommonDialog:_e,IconButton:Se,NodeConfigPanel:Er};return Object.defineProperty(Ke,"__isScriptSetup",{enumerable:!1,value:!0}),Ke}});i(),u(),ie();var Or={class:`flow-workspace-container`},kr={class:`left-sidebar`},Ar={class:`sidebar-header`},jr={class:`orchestration-list`},Mr=[`onClick`],Nr={class:`item-content`},Pr={key:0,class:`description`},Fr={class:`item-actions`},Ir={class:`flow-canvas`},Lr={class:`canvas-header`},Rr={class:`flow-header-info`},zr={class:`header-actions`},Br={class:`right-sidebar`},Vr={class:`sidebar-header`},Hr={class:`node-toolbox`},Ur={class:`tool-label`},Wr={class:`tool-desc`},Gr={class:`tool-label`},Kr={class:`tool-desc`},qr={class:`tool-label`},Jr={class:`tool-desc`},Yr={class:`tool-label`},Xr={class:`tool-desc`},Zr={class:`tool-label`},Qr={class:`tool-desc`},$r={class:`tool-label`},ei={class:`tool-desc`},ti={class:`tool-label`},ni={class:`tool-desc`};function ri(e,n,r,i,a,c){let l=h,u=X,d=k;return N(),o(i.CommonDialog,{modelValue:i.dialogVisible,"onUpdate:modelValue":n[13]||=e=>i.dialogVisible=e,title:i.t(`@ORCH:可视化编排工作台`),"close-on-click-modal":!1,"append-to-body":!0,size:`fullscreen`,type:`flex`,heightMode:`fixed`,"custom-class":`flow-orchestration-dialog`},{default:z(()=>[s(`div`,Or,[x(` 左侧:编排列表 `),s(`div`,kr,[s(`div`,Ar,[s(`h3`,null,B(i.t(`@ORCH:已保存的编排`)),1),S(i.IconButton,{tooltip:i.t(`@ORCH:新建编排`),size:`small`,"hover-color":`var(--color-primary)`,onClick:i.createNewOrchestration},{default:z(()=>[S(l,null,{default:z(()=>[S(i.Plus)]),_:1})]),_:1},8,[`tooltip`])]),s(`div`,jr,[i.orchestrations.length===0?(N(),o(u,{key:0,description:i.t(`@ORCH:暂无编排`),"image-size":80},null,8,[`description`])):x(`v-if`,!0),(N(!0),W(Z,null,t(i.orchestrations,e=>(N(),W(`div`,{key:e.id,class:g([`orchestration-item`,{active:i.selectedOrchestrationId===e.id}]),onClick:t=>i.loadOrchestration(e)},[s(`div`,Nr,[s(`h4`,null,B(e.name),1),e.description?(N(),W(`p`,Pr,B(e.description),1)):x(`v-if`,!0),s(`div`,Fr,[S(i.IconButton,{tooltip:i.t(`@ORCH:执行`),size:`small`,"hover-color":`var(--color-primary)`,onClick:F(t=>i.executeOrchestration(e),[`stop`])},{default:z(()=>[S(l,null,{default:z(()=>[S(i.VideoPlay)]),_:1})]),_:1},8,[`tooltip`,`onClick`]),S(i.IconButton,{tooltip:i.t(`@ORCH:复制`),size:`small`,"hover-color":`var(--color-primary)`,onClick:F(t=>i.duplicateOrchestration(e),[`stop`])},{default:z(()=>[S(l,null,{default:z(()=>[S(i.CopyDocument)]),_:1})]),_:1},8,[`tooltip`,`onClick`]),S(i.IconButton,{tooltip:i.t(`@ORCH:删除`),size:`small`,"hover-color":`var(--color-danger)`,onClick:F(t=>i.deleteOrchestration(e),[`stop`])},{default:z(()=>[S(l,null,{default:z(()=>[S(i.Delete)]),_:1})]),_:1},8,[`tooltip`,`onClick`])])])],10,Mr))),128))])]),x(` 中间:流程画布 `),s(`div`,Ir,[s(`div`,Lr,[s(`div`,Rr,[S(d,{modelValue:i.orchestrationName,"onUpdate:modelValue":n[0]||=e=>i.orchestrationName=e,placeholder:i.t(`@ORCH:编排名称(必填)`),size:`large`,style:{width:`300px`,"margin-right":`10px`}},null,8,[`modelValue`,`placeholder`]),S(d,{modelValue:i.orchestrationDescription,"onUpdate:modelValue":n[1]||=e=>i.orchestrationDescription=e,placeholder:i.t(`@ORCH:编排描述(选填)`),size:`large`,style:{width:`400px`}},null,8,[`modelValue`,`placeholder`])]),s(`div`,zr,[S(i.IconButton,{tooltip:i.t(`@ORCH:保存编排`),size:`large`,"hover-color":`var(--color-success)`,onClick:i.saveOrchestration},{default:z(()=>[S(l,null,{default:z(()=>[S(i.Select)]),_:1})]),_:1},8,[`tooltip`]),S(i.IconButton,{tooltip:`执行流程`,size:`large`,"hover-color":`var(--color-primary)`,onClick:i.executeCurrentFlow},{default:z(()=>[S(l,null,{default:z(()=>[S(i.VideoPlay)]),_:1})]),_:1}),S(i.IconButton,{tooltip:`清空流程`,size:`large`,"hover-color":`var(--color-danger)`,onClick:i.clearFlow},{default:z(()=>[S(l,null,{default:z(()=>[S(i.Delete)]),_:1})]),_:1})])]),S(i.VueFlow,{nodes:i.nodes,"onUpdate:nodes":n[2]||=e=>i.nodes=e,edges:i.edges,"onUpdate:edges":n[3]||=e=>i.edges=e,class:`vue-flow-container`,"default-zoom":1,"min-zoom":.2,"max-zoom":4,"node-types":i.nodeTypes,onNodeClick:i.onNodeClick,onPaneClick:i.onPaneClick,onEdgesChange:i.onEdgesChange},{default:z(()=>[S(i.Background,{"pattern-color":`#aaa`,gap:16}),S(i.Controls,{showInteractive:!1},{default:z(()=>[s(`button`,{class:`vue-flow__controls-button`,onClick:i.optimizeLayout,title:`优化布局`},[S(l,null,{default:z(()=>[S(i.Grid)]),_:1})])]),_:1})]),_:1},8,[`nodes`,`edges`])]),x(` 右侧:节点工具栏 `),s(`div`,Br,[s(`div`,Vr,[s(`h3`,null,B(i.t(`@ORCH:节点工具箱`)),1)]),s(`div`,Hr,[s(`div`,{class:`tool-item`,onClick:n[4]||=e=>i.addNode(`command`)},[n[14]||=s(`div`,{class:`tool-icon command`},`📋`,-1),s(`div`,Ur,B(i.t(`@ORCH:命令节点`)),1),s(`div`,Wr,B(i.t(`@ORCH:执行自定义命令`)),1)]),s(`div`,{class:`tool-item`,onClick:n[5]||=e=>i.addNode(`wait`)},[n[15]||=s(`div`,{class:`tool-icon wait`},`⏰`,-1),s(`div`,Gr,B(i.t(`@ORCH:等待节点`)),1),s(`div`,Kr,B(i.t(`@ORCH:暂停指定时间`)),1)]),s(`div`,{class:`tool-item`,onClick:n[6]||=e=>i.addNode(`version`)},[n[16]||=s(`div`,{class:`tool-icon version`},`📦`,-1),s(`div`,qr,B(i.t(`@ORCH:版本管理`)),1),s(`div`,Jr,B(i.t(`@ORCH:修改版本号或依赖`)),1)]),s(`div`,{class:`tool-item`,onClick:n[7]||=e=>i.addNode(`condition`)},[n[17]||=s(`div`,{class:`tool-icon condition`},`🔀`,-1),s(`div`,Yr,B(i.t(`@FLOWNODE:条件`)),1),s(`div`,Xr,B(i.t(`@ORCH:条件分支`)),1)]),s(`div`,{class:`tool-item`,onClick:n[8]||=e=>i.addNode(`code`)},[n[18]||=s(`div`,{class:`tool-icon code`},`🧩`,-1),s(`div`,Zr,B(i.t(`@FLOWNODE:代码节点`)),1),s(`div`,Qr,B(i.t(`@ORCH:执行自定义代码`)),1)]),s(`div`,{class:`tool-item`,onClick:n[9]||=e=>i.addNode(`confirm`)},[n[19]||=s(`div`,{class:`tool-icon confirm`},`✋`,-1),s(`div`,$r,B(i.t(`@ORCH:用户确认`)),1),s(`div`,ei,B(i.t(`@ORCH:等待用户确认后继续`)),1)]),s(`div`,{class:`tool-item`,onClick:n[10]||=e=>i.addNode(`user_input`)},[n[20]||=s(`div`,{class:`tool-icon confirm`},`⌨️`,-1),s(`div`,ti,B(i.t(`@FLOWNODE:用户输入`)),1),s(`div`,ni,B(i.t(`@UINPUT:执行到该节点暂停并等待输入`)),1)])])])]),x(` 节点配置面板 `),S(i.NodeConfigPanel,{modelValue:i.showConfigPanel,"onUpdate:modelValue":n[11]||=e=>i.showConfigPanel=e,node:i.selectedNode,"all-nodes":i.nodes,edges:i.edges,onUpdateConfig:i.updateNodeConfig,onOpenCommandManager:n[12]||=()=>i.emit(`open-command-manager`)},null,8,[`modelValue`,`node`,`all-nodes`,`edges`])]),_:1},8,[`modelValue`,`title`])}var ii=$(Dr,[[`render`,ri],[`__scopeId`,`data-v-94a84301`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/flow/FlowOrchestrationWorkspace.vue`]]);export{ii as default};
|