bluekiwi 1.2.4 β 1.2.5
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/dist/assets/app-runtime/.next/BUILD_ID +1 -1
- package/dist/assets/app-runtime/.next/app-path-routes-manifest.json +10 -10
- package/dist/assets/app-runtime/.next/build-manifest.json +2 -2
- package/dist/assets/app-runtime/.next/server/app/(app)/credentials/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/instructions/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/settings/groups/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/tutorial/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/workflows/[id]/edit/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/workflows/[id]/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/workflows/new/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/workflows/page.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(app)/workflows/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(auth)/change-password/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(auth)/invite/[token]/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/(auth)/setup/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/_global-error.html +1 -1
- package/dist/assets/app-runtime/.next/server/app/_global-error.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/_not-found.html +1 -1
- package/dist/assets/app-runtime/.next/server/app/_not-found.rsc +3 -3
- package/dist/assets/app-runtime/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/dist/assets/app-runtime/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/dist/assets/app-runtime/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/api/version/route.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/api/workflows/[id]/activate/route.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/api/workflows/[id]/route.js +2 -2
- package/dist/assets/app-runtime/.next/server/app/api/workflows/[id]/transfer/route.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/api/workflows/route.js +1 -1
- package/dist/assets/app-runtime/.next/server/app/change-password.html +1 -1
- package/dist/assets/app-runtime/.next/server/app/change-password.rsc +4 -4
- package/dist/assets/app-runtime/.next/server/app/change-password.segments/!KGF1dGgp/change-password/__PAGE__.segment.rsc +2 -2
- package/dist/assets/app-runtime/.next/server/app/change-password.segments/!KGF1dGgp/change-password.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/change-password.segments/!KGF1dGgp.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/change-password.segments/_full.segment.rsc +4 -4
- package/dist/assets/app-runtime/.next/server/app/change-password.segments/_head.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/change-password.segments/_index.segment.rsc +3 -3
- package/dist/assets/app-runtime/.next/server/app/change-password.segments/_tree.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/login.html +1 -1
- package/dist/assets/app-runtime/.next/server/app/login.rsc +4 -4
- package/dist/assets/app-runtime/.next/server/app/login.segments/!KGF1dGgp/login/__PAGE__.segment.rsc +2 -2
- package/dist/assets/app-runtime/.next/server/app/login.segments/!KGF1dGgp/login.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/login.segments/!KGF1dGgp.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/dist/assets/app-runtime/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/dist/assets/app-runtime/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/setup.html +1 -1
- package/dist/assets/app-runtime/.next/server/app/setup.rsc +4 -4
- package/dist/assets/app-runtime/.next/server/app/setup.segments/!KGF1dGgp/setup/__PAGE__.segment.rsc +2 -2
- package/dist/assets/app-runtime/.next/server/app/setup.segments/!KGF1dGgp/setup.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/setup.segments/!KGF1dGgp.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/setup.segments/_full.segment.rsc +4 -4
- package/dist/assets/app-runtime/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app/setup.segments/_index.segment.rsc +3 -3
- package/dist/assets/app-runtime/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
- package/dist/assets/app-runtime/.next/server/app-paths-manifest.json +10 -10
- package/dist/assets/app-runtime/.next/server/chunks/5589.js +1 -1
- package/dist/assets/app-runtime/.next/server/middleware-build-manifest.js +1 -1
- package/dist/assets/app-runtime/.next/server/pages/404.html +1 -1
- package/dist/assets/app-runtime/.next/server/pages/500.html +1 -1
- package/dist/assets/app-runtime/.next/static/chunks/2360-2e6f6fe26549b313.js +1 -0
- package/dist/assets/app-runtime/.next/static/chunks/app/(app)/workflows/{page-a76941b77690f97c.js β page-5e0523a4b132360a.js} +1 -1
- package/dist/assets/app-runtime/package.json +1 -1
- package/package.json +1 -1
- package/dist/assets/app-runtime/.next/static/chunks/2360-35e89e45b93e4b6e.js +0 -1
- /package/dist/assets/app-runtime/.next/static/{ymP-zxwYrYDNi2qYSDfJr β 1tr4UL4nbWDTT2xlxpwJP}/_buildManifest.js +0 -0
- /package/dist/assets/app-runtime/.next/static/{ymP-zxwYrYDNi2qYSDfJr β 1tr4UL4nbWDTT2xlxpwJP}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[238],{5121:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]])},5387:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("file-braces-corner",[["path",{d:"M14 22h4a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6",key:"14cnrg"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M5 14a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1 1 1 0 0 1 1 1v2a1 1 0 0 0 1 1",key:"sr0ebq"}],["path",{d:"M9 22a1 1 0 0 0 1-1v-2a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-2a1 1 0 0 0-1-1",key:"w793db"}]])},6015:(e,t,s)=>{Promise.resolve().then(s.bind(s,62929))},6296:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},6962:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]])},7019:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("layout-list",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["path",{d:"M14 4h7",key:"3xa0d5"}],["path",{d:"M14 9h7",key:"1icrd9"}],["path",{d:"M14 15h7",key:"1mj8o2"}],["path",{d:"M14 20h7",key:"11slyb"}]])},21362:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},21628:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},21975:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]])},25777:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]])},30971:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]])},37595:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},38798:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},41585:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},41641:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},42129:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])},49387:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},50568:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("folder-symlink",[["path",{d:"M2 9.35V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",key:"y8kt7d"}],["path",{d:"m8 16 3-3-3-3",key:"rlqrt1"}]])},51914:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},53961:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},60285:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]])},61878:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},62929:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>ee});var r=s(95155),a=s(12115),l=s(98500),i=s.n(l),n=s(73321),o=s(96035),d=s(5121),c=s(53961),u=s(21628),h=s(41641),m=s(21362),x=s(30971),p=s(94514),f=s(33210),b=s(7019),v=s(37595),w=s(51914),g=s(21975),y=s(42129),k=s(63393),j=s(61878),N=s(6296),A=s(60285),C=s(49387),S=s(67635),_=s(6962),M=s(68459),$=s(59943),z=s(45160),P=s(89239),E=s(81477),L=s(29991),I=s(37642),R=s(28367),T=s(25777),D=s(7810),q=s(92451),H=s(66609),F=s(42763),O=s(42360);let V=[{value:null,Icon:y.A,labelKey:"visibility.followFolder",descKey:"visibility.followFolderDesc"},{value:"personal",Icon:T.A,labelKey:"folders.visibilityPersonal",descKey:"folders.visibilityPersonalDesc"},{value:"group",Icon:D.A,labelKey:"folders.visibilityGroup",descKey:"folders.visibilityGroupDesc"},{value:"public",Icon:q.A,labelKey:"folders.visibilityPublic",descKey:"folders.visibilityPublicDesc"}];function K({workflowId:e,workflowTitle:t,currentOverride:s,open:l,onClose:i,onUpdate:n}){let{t:o}=(0,O.B)(),[d,c]=(0,a.useState)(null),[u,h]=(0,a.useState)([]),[m,x]=(0,a.useState)([]),[p,f]=(0,a.useState)(""),[b,v]=(0,a.useState)("reader"),[g,y]=(0,a.useState)(!1),k=(0,a.useCallback)(async()=>{if(!e)return;let t=await fetch(`/api/workflows/${e}/shares`);t.ok&&h((await t.json()).data??[])},[e]),j=(0,a.useCallback)(async()=>{let e=await fetch("/api/settings/groups");e.ok&&x((await e.json()).data??[])},[]);(0,a.useEffect)(()=>{l&&e&&(c(s),f(""),k(),j())},[l,e,s,k,j]);let N=async()=>{if(e&&!g){if(d!==s){y(!0);let t=await fetch(`/api/workflows/${e}/visibility`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({override:d})});if(y(!1),!t.ok){let e=await t.json().catch(()=>({}));H.oR.error(e?.error?.message??o("visibility.changeFailed"));return}}n(),i()}},A=async()=>{if(!e||!p)return;let t=await fetch(`/api/workflows/${e}/shares`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({group_id:p,access_level:b})});if(t.ok)f(""),await k();else{let e=await t.json().catch(()=>({}));H.oR.error(e?.error?.message??o("visibility.groupAddFailed"))}},C=async t=>{e&&((await fetch(`/api/workflows/${e}/shares/${t}`,{method:"DELETE"})).ok?await k():H.oR.error(o("visibility.groupRemoveFailed")))},S=m.filter(e=>!u.some(t=>t.group_id===e.id)),_=d!==s;return(0,r.jsx)(F.lG,{open:l,onOpenChange:e=>!e&&i(),children:(0,r.jsxs)(F.Cf,{className:"sm:max-w-[400px]",children:[(0,r.jsx)(F.c7,{children:(0,r.jsxs)(F.L3,{className:"flex items-center gap-2 text-base",children:[(0,r.jsx)("span",{className:"max-w-[200px] truncate",children:t}),(0,r.jsxs)("span",{className:"text-xs font-normal text-[var(--muted-foreground)]",children:["\xb7 ",o("visibility.settings")]})]})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"mb-2 text-[11px] font-medium uppercase tracking-wide text-[var(--muted-foreground)]",children:o("visibility.scope")}),(0,r.jsx)("div",{className:"grid grid-cols-4 gap-2",children:V.map(({value:e,Icon:t,labelKey:s,descKey:a})=>{let l=d===e;return(0,r.jsxs)("button",{type:"button",disabled:g,onClick:()=>c(e),title:o(a),className:`flex flex-col items-center gap-1.5 rounded-[var(--radius-sm)] border px-2 py-2.5 text-xs transition-colors disabled:pointer-events-none disabled:opacity-50 ${l?"border-brand-blue-400 bg-brand-blue-50 text-brand-blue-700":"border-[var(--border)] text-[var(--muted-foreground)] hover:bg-surface-soft"}`,children:[(0,r.jsx)(t,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"font-medium",children:o(s)})]},String(e))})})]}),"group"===d&&(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"mb-2 text-[11px] font-medium uppercase tracking-wide text-[var(--muted-foreground)]",children:o("visibility.groupSharing")}),0===u.length?(0,r.jsx)("p",{className:"px-1 text-xs text-[var(--muted-foreground)]",children:o("visibility.noSharedGroups")}):(0,r.jsx)("ul",{className:"mb-2 space-y-1",children:u.map(e=>(0,r.jsxs)("li",{className:"flex items-center gap-2 rounded-[var(--radius-sm)] bg-surface-soft px-2.5 py-1.5",children:[(0,r.jsx)(D.A,{className:"h-3.5 w-3.5 shrink-0 text-[var(--muted-foreground)]"}),(0,r.jsx)("span",{className:"flex-1 truncate text-sm",children:e.group_name}),(0,r.jsx)("span",{className:`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${"contributor"===e.access_level?"bg-brand-blue-100 text-brand-blue-700":"bg-[var(--border)]/40 text-[var(--muted-foreground)]"}`,children:"contributor"===e.access_level?o("folders.accessLevelEditor"):o("folders.accessLevelViewer")}),(0,r.jsx)("button",{type:"button",onClick:()=>C(e.group_id),className:"flex h-5 w-5 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] hover:bg-destructive/10 hover:text-[var(--destructive)]",children:(0,r.jsx)(M.A,{className:"h-3 w-3"})})]},e.group_id))}),0===m.length?(0,r.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:o("visibility.noGroupsHint")}):0===S.length?(0,r.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:o("visibility.allGroupsShared")}):(0,r.jsxs)("div",{className:"flex gap-1.5",children:[(0,r.jsxs)("select",{value:p,onChange:e=>f(Number(e.target.value)||""),className:"h-7 min-w-0 flex-1 rounded-[var(--radius-sm)] border border-[var(--border)] bg-[var(--background)] px-2 text-xs outline-none focus:border-brand-blue-400",children:[(0,r.jsx)("option",{value:"",children:o("visibility.selectGroup")}),S.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]}),(0,r.jsxs)("select",{value:b,onChange:e=>v(e.target.value),className:"h-7 w-20 rounded-[var(--radius-sm)] border border-[var(--border)] bg-[var(--background)] px-2 text-xs outline-none focus:border-brand-blue-400",children:[(0,r.jsx)("option",{value:"reader",children:o("folders.accessLevelViewer")}),(0,r.jsx)("option",{value:"contributor",children:o("folders.accessLevelEditor")})]}),(0,r.jsx)("button",{type:"button",disabled:!p,onClick:A,className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--radius-sm)] bg-brand-blue-600 text-white hover:bg-brand-blue-700 disabled:opacity-40",children:(0,r.jsx)(w.A,{className:"h-3.5 w-3.5"})})]})]}),(0,r.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,r.jsx)(P.$,{variant:"outline",size:"sm",onClick:i,children:o("common.cancel")}),(0,r.jsx)(P.$,{size:"sm",disabled:g,onClick:N,className:_?"":"opacity-60",children:g?o("visibility.applying"):o("visibility.apply")})]})]})})}var W=s(52997),G=s(80167),Z=s(72264),B=s(21988),J=s(78619);let U="bluekiwi:workflows:folder-pane-width",X=[5,10,20,50];function Q({node:e}){let t=e.node_type,s="gate"===t?{Icon:o.A,className:"border-kiwi-600/30 bg-kiwi-100 text-kiwi-700"}:"loop"===t?{Icon:d.A,className:"border-[var(--border)] bg-transparent text-[var(--muted-foreground)]"}:{Icon:c.A,className:"border-brand-blue-600/20 bg-brand-blue-100 text-brand-blue-700"};return(0,r.jsxs)(z.E,{className:s.className,children:[(0,r.jsx)(s.Icon,{className:"h-3 w-3"}),(0,r.jsx)("span",{className:"truncate text-[11px]",children:e.title})]})}function Y({nodes:e}){let t=e.slice(0,5),s=e.length-5;return(0,r.jsxs)("div",{className:"flex items-center gap-1.5 overflow-hidden",children:[t.map((e,s)=>(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(Q,{node:e}),s<t.length-1&&(0,r.jsx)(u.A,{className:"h-3 w-3 shrink-0 text-[var(--muted-foreground)]"})]},e.id)),s>0&&(0,r.jsxs)("span",{className:"shrink-0 text-[11px] text-[var(--muted-foreground)]",children:["+",s]})]})}function ee(){let e=(0,n.usePathname)(),t=(0,n.useRouter)(),s=(0,n.useSearchParams)(),{t:l}=(0,O.B)(),[o,d]=(0,a.useState)(()=>{let e=Number(s.get("page"));return Number.isFinite(e)&&e>0?e:1}),[c,u]=(0,a.useState)(()=>{let e=Number(s.get("page_size"));return X.includes(e)?e:10}),[z,T]=(0,a.useState)(()=>"grid"===s.get("view")?"grid":"list"),[D,q]=(0,a.useState)(()=>{let e=s.get("folder_id");return e?Number(e):null}),[F,V]=(0,a.useState)([]),[Q,ee]=(0,a.useState)(0),[et,es]=(0,a.useState)(!1),[er,ea]=(0,a.useState)(""),el=(0,a.useRef)(null),ei=(0,a.useRef)(null),en=(0,a.useRef)(null),eo=(0,a.useRef)(null),[ed,ec]=(0,a.useState)(!1),[eu,eh]=(0,a.useState)(!1),[em,ex]=(0,a.useState)(()=>{let e=window.localStorage.getItem(U),t=e?Number(e):NaN;return Number.isFinite(t)?Math.min(520,Math.max(240,t)):320}),[ep,ef]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=window.matchMedia("(min-width: 1024px)"),t=()=>ec(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,a.useEffect)(()=>{window.localStorage.setItem(U,String(em))},[em]),(0,a.useEffect)(()=>{if(!ep)return;let e=()=>ef(null);return document.addEventListener("click",e),document.addEventListener("contextmenu",e),()=>{document.removeEventListener("click",e),document.removeEventListener("contextmenu",e)}},[ep]);let[eb,ev]=(0,a.useState)(()=>s.get("q")??""),[ew,eg]=(0,a.useState)(()=>s.get("q")??""),[ey,ek]=(0,a.useState)(null),[ej,eN]=(0,a.useState)(!1),[eA,eC]=(0,a.useState)(null),{data:eS,loading:e_,refetch:eM}=(0,B.U)(()=>{let e=new URLSearchParams;return null!==D&&e.set("folder_id",String(D)),ew&&e.set("q",ew),`/api/workflows?${e}`},[D,ew]),{deleteTarget:e$,setDeleteTarget:ez,handleDelete:eP}=(0,J.b)({endpoint:e=>`/api/workflows/${e.id}`,onSuccess:async()=>{H.oR.success(l("workflows.deleted")),await eM()},fallbackMessage:l("common.deleteFailed")}),eE=Math.max(1,Math.ceil(eS.length/c)),eL=Math.min(o,eE),eI=eS.slice((eL-1)*c,eL*c);(0,a.useEffect)(()=>{let e=window.setTimeout(()=>{eg(eb.trim())},250);return()=>window.clearTimeout(e)},[eb]),(0,a.useEffect)(()=>{eo.current?.scrollTo({top:0,behavior:"smooth"})},[D,ew,c,z]),(0,a.useEffect)(()=>{let r=new URLSearchParams;null!==D&&r.set("folder_id",String(D)),eb.trim()&&r.set("q",eb.trim()),eL>1&&r.set("page",String(eL)),10!==c&&r.set("page_size",String(c)),"list"!==z&&r.set("view",z);let a=r.toString();a!==s.toString()&&t.replace(a?`${e}?${a}`:e,{scroll:!1})},[e,t,s,D,eb,eL,c,z]);let eR=(0,a.useCallback)(()=>{ev(""),d(1)},[]),eT=(0,a.useCallback)(e=>{q(t=>t===e?null:e),d(1)},[]),eD=null!==D?F.find(e=>e.id===D)??null:null,eq=(0,a.useMemo)(()=>{if(!eD)return[];let e=[],t=eD,s=new Set;for(;t&&!s.has(t.id)&&(s.add(t.id),e.unshift(t),null!==t.parent_id);){;t=F.find(e=>e.id===t.parent_id)}return e},[eD,F]),eH=(0,a.useCallback)(e=>{if(!e||!D||e===D)return[];let t=[],s=F.find(t=>t.id===e),r=new Set;for(;s&&s.id!==D&&!r.has(s.id)&&(r.add(s.id),t.unshift(s.is_system?l("folders.myWorkspace"):s.name),null!==s.parent_id);){;s=F.find(e=>e.id===s.parent_id)}return t},[D,F,l]),eF=(0,a.useCallback)(()=>{eD&&!eD.is_system&&(ea(eD.name),es(!0),setTimeout(()=>{el.current?.focus(),el.current?.select()},0))},[eD]),eO=(0,a.useCallback)(async()=>{if(!D||!er.trim())return void es(!1);es(!1);let e=await fetch(`/api/folders/${D}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:er.trim()})});if(e.ok)ee(e=>e+1);else{let t=await e.json().catch(()=>({}));H.oR.error(t?.error?.message??l("folders.renameFailed"))}},[D,er,l]),eV=(0,a.useCallback)(async(e,t)=>{(await fetch(`/api/workflows/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder_id:t})})).ok&&(H.oR.success(l("workflows.movedToFolder")),eM())},[eM,l]),eK=async e=>{(await fetch("/api/workflows",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:`${e.title} (${l("workflows.copy")})`,description:e.description,nodes:e.nodes.map(e=>({title:e.title,node_type:e.node_type,instruction_id:e.instruction_id,instruction:e.resolved_instruction}))})})).ok&&(H.oR.success(l("workflows.duplicated")),eM())},eW=(0,a.useCallback)(e=>{if(!ed||!en.current)return;e.preventDefault();let t=e.pointerId,s=e.currentTarget;eh(!0),s.setPointerCapture(t);let r=e=>{let t=en.current?.getBoundingClientRect();t&&ex(Math.min(520,Math.max(240,Math.round(e-t.left))))};r(e.clientX);let a=e=>{r(e.clientX)},l=()=>{eh(!1),document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",l),window.removeEventListener("pointercancel",l)};document.body.style.cursor="col-resize",document.body.style.userSelect="none",window.addEventListener("pointermove",a),window.addEventListener("pointerup",l),window.addEventListener("pointercancel",l)},[ed]),eG=(0,a.useMemo)(()=>{if(ed)return{gridTemplateColumns:`${em}px 8px minmax(0,1fr)`}},[em,ed]),eZ=(0,a.useCallback)(e=>(0,r.jsxs)("div",{className:`flex items-center justify-end gap-2 ${"top"===e?"mb-4":"mt-6"}`,children:[(0,r.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[l("workflows.results"),":"]}),(0,r.jsxs)(L.l6,{value:String(c),onValueChange:e=>{u(Number(e)),d(1)},children:[(0,r.jsx)(L.bq,{size:"sm",className:"w-20 bg-background",children:(0,r.jsx)(L.yv,{})}),(0,r.jsx)(L.gC,{align:"end",children:X.map(e=>(0,r.jsx)(L.eb,{value:String(e),children:e},e))})]}),(0,r.jsx)(P.$,{variant:"outline",size:"icon",className:"h-8 w-8",disabled:eL<=1,onClick:()=>d(e=>Math.max(1,e-1)),children:(0,r.jsx)(h.A,{className:"h-4 w-4"})}),(0,r.jsxs)("span",{className:"min-w-16 text-right text-xs text-[var(--muted-foreground)]",children:[eL," / ",eE]}),(0,r.jsx)(P.$,{variant:"outline",size:"icon",className:"h-8 w-8",disabled:eL>=eE,onClick:()=>d(e=>Math.min(eE,e+1)),children:(0,r.jsx)(m.A,{className:"h-4 w-4"})})]}),[eL,c,l,eE]);return(0,r.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,r.jsx)("div",{className:"sticky top-0 z-20 border-b border-[var(--border)] bg-[var(--background)]/95 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"flex h-14 items-center justify-between gap-4 px-5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(x.A,{className:"h-5 w-5 text-[var(--muted-foreground)]"}),(0,r.jsx)("h1",{className:`text-2xl font-bold tracking-tight ${null!==D?"cursor-pointer hover:text-brand-blue-600 transition-colors":""}`,onClick:()=>{null!==D&&(q(null),es(!1),d(1))},children:l("workflows.title")}),eq.map((e,t)=>{let s=t===eq.length-1,a=e.is_system?l("folders.myWorkspace"):e.name;return(0,r.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(m.A,{className:"h-4 w-4 shrink-0 text-[var(--muted-foreground)]/50"}),s&&et?(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("input",{ref:el,value:er,onChange:e=>ea(e.target.value),onKeyDown:e=>{"Enter"===e.key&&eO(),"Escape"===e.key&&es(!1)},className:"h-8 rounded-[var(--radius-sm)] border border-brand-blue-400 bg-transparent px-2 text-lg font-bold outline-none ring-1 ring-brand-blue-400/30"}),(0,r.jsx)("button",{type:"button",onClick:()=>void eO(),className:"flex h-7 w-7 items-center justify-center rounded text-kiwi-600 hover:bg-kiwi-100",children:(0,r.jsx)(p.A,{className:"h-4 w-4"})}),(0,r.jsx)("button",{type:"button",onClick:()=>es(!1),className:"flex h-7 w-7 items-center justify-center rounded text-[var(--muted-foreground)] hover:bg-surface-soft",children:(0,r.jsx)(f.A,{className:"h-4 w-4"})})]}):(0,r.jsx)("span",{className:`text-2xl font-bold tracking-tight select-none ${!s?"cursor-pointer text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors":e.is_system?"cursor-default":"cursor-text"}`,title:s&&!e.is_system?l("folders.doubleClickToRename"):void 0,onClick:s?void 0:()=>{q(e.id),es(!1),d(1)},onDoubleClick:s&&!e.is_system?eF:void 0,children:a})]},e.id)})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("div",{className:"flex rounded-[var(--radius)] border border-[var(--border)] p-0.5",children:[(0,r.jsx)(P.$,{variant:"ghost",size:"icon",className:`h-7 w-7 ${"list"===z?"bg-[var(--card)] shadow-sm":""}`,onClick:()=>T("list"),title:l("common.listView"),children:(0,r.jsx)(b.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)(P.$,{variant:"ghost",size:"icon",className:`h-7 w-7 ${"grid"===z?"bg-[var(--card)] shadow-sm":""}`,onClick:()=>T("grid"),title:l("common.gridView"),children:(0,r.jsx)(v.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)(P.$,{asChild:!0,size:"sm",children:(0,r.jsxs)(i(),{href:D?`/workflows/new?folder_id=${D}`:"/workflows/new",children:[(0,r.jsx)(w.A,{className:"h-4 w-4"}),l("workflows.newWorkflow")]})}),(0,r.jsxs)(P.$,{size:"sm",variant:"outline",onClick:()=>eN(!0),children:[(0,r.jsx)(g.A,{className:"h-4 w-4"}),l("workflows.import")]})]})]})}),(0,r.jsxs)("div",{ref:en,className:`grid min-h-0 flex-1 grid-cols-1 lg:grid-cols-[320px_8px_minmax(0,1fr)] ${eu?"cursor-col-resize":""}`,style:eG,children:[(0,r.jsxs)("aside",{className:"flex min-h-0 flex-col border-b border-[var(--border)] bg-surface-soft/60 lg:border-r lg:border-b-0",children:[(0,r.jsxs)("div",{className:"shrink-0 border-b border-[var(--border)] px-4 py-4",children:[(0,r.jsx)("p",{className:"text-sm font-semibold",children:l("folders.title")}),(0,r.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:eD?eD.is_system?l("folders.myWorkspace"):eD.name:l("workflows.allWorkflows")})]}),(0,r.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto px-3 py-3",children:[(0,r.jsxs)("button",{onClick:()=>eT(null),onContextMenu:e=>{e.preventDefault(),ef({x:e.clientX,y:e.clientY})},className:`mb-1 flex w-full items-center gap-2 rounded-[var(--radius-sm)] px-2 py-1.5 text-sm transition-colors ${null===D?"bg-brand-blue-100 font-medium text-brand-blue-700":"text-[var(--muted-foreground)] hover:bg-surface-soft hover:text-[var(--foreground)]"}`,children:[(0,r.jsx)(y.A,{className:"h-3.5 w-3.5 shrink-0"}),l("workflows.allWorkflows")]}),(0,r.jsx)(G.z,{selectedId:D,onSelect:eT,onFoldersChange:V,onWorkflowDrop:eV,refreshKey:Q,onCreateRootRef:e=>{ei.current=e}}),ep&&(0,r.jsx)("div",{className:"fixed z-50 min-w-[140px] overflow-hidden rounded-[var(--radius-sm)] border border-[var(--border)] bg-[var(--card)] py-1 shadow-[var(--shadow-card)]",style:{top:ep.y,left:ep.x},onClick:()=>ef(null),children:(0,r.jsxs)("button",{className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-surface-soft",onClick:()=>{ei.current?.(),ef(null)},children:[(0,r.jsx)(k.A,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"}),l("folders.new")]})})]})]}),(0,r.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":l("folders.title"),onPointerDown:eW,className:"hidden lg:flex items-stretch justify-center bg-transparent",children:(0,r.jsx)("div",{className:"group flex w-2 cursor-col-resize items-center justify-center",children:(0,r.jsx)("div",{className:"h-full w-px bg-[var(--border)] transition-colors group-hover:bg-brand-blue-400 group-active:bg-brand-blue-500"})})}),(0,r.jsx)("section",{ref:eo,className:"min-h-0 overflow-y-auto",children:(0,r.jsxs)("div",{className:"px-5 py-5",children:[(0,r.jsx)("div",{className:"sticky top-0 z-10 -mx-5 mb-4 border-b border-[var(--border)] bg-[var(--background)]/95 px-5 py-3 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between",children:[(0,r.jsxs)("div",{className:"relative w-full max-w-md",children:[(0,r.jsx)(j.A,{className:"pointer-events-none absolute top-1/2 left-2.5 h-3.5 w-3.5 -translate-y-1/2 text-[var(--muted-foreground)]"}),(0,r.jsx)("input",{type:"text",value:eb,onChange:e=>{ev(e.target.value),d(1)},placeholder:l("common.search"),className:"h-9 w-full rounded-[var(--radius-sm)] border border-[var(--border)] bg-transparent pl-8 pr-7 text-sm outline-none placeholder:text-[var(--muted-foreground)] focus:border-brand-blue-400 focus:ring-1 focus:ring-brand-blue-400/30"}),eb!==ew?(0,r.jsx)("span",{className:"pointer-events-none absolute top-1/2 right-2 -translate-y-1/2 text-[var(--muted-foreground)]",children:(0,r.jsx)(N.A,{className:"h-3.5 w-3.5 animate-spin"})}):eb&&(0,r.jsx)("button",{type:"button",onClick:eR,className:"absolute top-1/2 right-2 -translate-y-1/2 text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,r.jsx)(f.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)("div",{className:"shrink-0",children:eZ("top")})]})}),(eb||null!==D)&&(0,r.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[eb&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-brand-blue-300/50 bg-brand-blue-50 px-2.5 py-0.5 text-xs text-brand-blue-700",children:[(0,r.jsx)(j.A,{className:"h-3 w-3"}),eb,(0,r.jsx)("button",{onClick:eR,className:"ml-0.5 opacity-60 hover:opacity-100",children:(0,r.jsx)(f.A,{className:"h-3 w-3"})})]}),(0,r.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[eS.length,l("workflows.results")]})]}),e_?(0,r.jsx)(E.Zp,{children:(0,r.jsx)(E.Wu,{className:"py-10 text-center text-sm text-[var(--muted-foreground)]",children:l("common.loading")})}):0===eS.length?(0,r.jsx)($.p,{icon:x.A,title:l("workflows.empty"),description:l("workflows.emptyDesc"),actionLabel:l("workflows.newWorkflow"),actionHref:D?`/workflows/new?folder_id=${D}`:"/workflows/new"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"grid"===z?"grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3":"flex flex-col gap-2",children:eI.map(e=>{let s,a;return"list"===z?(0,r.jsx)(E.Zp,{className:"cursor-pointer gap-0 py-0 transition-shadow hover:shadow-soft",draggable:!0,onDragStart:t=>t.dataTransfer.setData("workflowId",String(e.id)),onClick:()=>t.push(`/workflows/${e.id}`),children:(0,r.jsxs)(E.Wu,{className:"px-4 py-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"min-w-0 flex-1",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("p",{className:"truncate text-sm font-semibold",children:0===(s=eH(e.folder_id)).length?e.title:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"text-xs font-normal text-[var(--muted-foreground)]/60",children:[s.join(" > ")," > "]}),e.title]})}),(0,r.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),ek({id:e.id,title:e.title,override:e.visibility_override??null})},className:"rounded opacity-60 hover:opacity-100",title:l("visibility.settings"),children:(0,r.jsx)(I.w,{visibility:e.visibility_override??"inherit",iconOnly:!0})})]})}),(0,r.jsx)("p",{className:"shrink-0 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleDateString("ko-KR")}),(0,r.jsxs)(Z.rI,{children:[(0,r.jsx)(Z.ty,{asChild:!0,children:(0,r.jsx)(P.$,{variant:"ghost",size:"icon",className:"h-7 w-7 shrink-0",onClick:e=>e.stopPropagation(),children:(0,r.jsx)(A.A,{className:"h-4 w-4"})})}),(0,r.jsxs)(Z.SQ,{align:"end",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)(Z._2,{onClick:()=>t.push(`/workflows/${e.id}/edit`),children:[(0,r.jsx)(C.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.edit")]}),(0,r.jsxs)(Z._2,{onClick:()=>eK(e),children:[(0,r.jsx)(S.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.duplicate")]}),(0,r.jsxs)(Z._2,{onClick:()=>eC({id:e.id,title:e.title,folderId:e.folder_id??null}),children:[(0,r.jsx)(_.A,{className:"mr-2 h-3.5 w-3.5"}),l("workflows.export")]}),(0,r.jsx)(Z.mB,{}),(0,r.jsxs)(Z._2,{className:"text-[var(--destructive)]",onClick:()=>ez(e),children:[(0,r.jsx)(M.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.delete")]})]})]})]}),(0,r.jsx)("div",{className:"mt-2 overflow-hidden",children:(0,r.jsx)(Y,{nodes:e.nodes})})]})},e.id):(0,r.jsx)(E.Zp,{className:"cursor-pointer gap-0 py-0 transition-shadow hover:shadow-soft",draggable:!0,onDragStart:t=>t.dataTransfer.setData("workflowId",String(e.id)),onClick:()=>t.push(`/workflows/${e.id}`),children:(0,r.jsxs)(E.Wu,{className:"flex h-full flex-col justify-between p-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("p",{className:"truncate text-sm font-semibold",children:0===(a=eH(e.folder_id)).length?e.title:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"text-xs font-normal text-[var(--muted-foreground)]/60",children:[a.join(" > ")," > "]}),e.title]})}),(0,r.jsx)("p",{className:"mt-0.5 line-clamp-1 text-xs text-[var(--muted-foreground)]",children:e.description||"\xa0"}),(0,r.jsx)("div",{className:"mt-1.5",children:(0,r.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),ek({id:e.id,title:e.title,override:e.visibility_override??null})},className:"rounded opacity-60 hover:opacity-100",title:l("visibility.settings"),children:(0,r.jsx)(I.w,{visibility:e.visibility_override??"inherit",iconOnly:!0})})})]}),(0,r.jsxs)(Z.rI,{children:[(0,r.jsx)(Z.ty,{asChild:!0,children:(0,r.jsx)(P.$,{variant:"ghost",size:"icon",className:"h-7 w-7 shrink-0",onClick:e=>e.stopPropagation(),children:(0,r.jsx)(A.A,{className:"h-4 w-4"})})}),(0,r.jsxs)(Z.SQ,{align:"end",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)(Z._2,{onClick:()=>t.push(`/workflows/${e.id}/edit`),children:[(0,r.jsx)(C.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.edit")]}),(0,r.jsxs)(Z._2,{onClick:()=>eK(e),children:[(0,r.jsx)(S.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.duplicate")]}),(0,r.jsxs)(Z._2,{onClick:()=>eC({id:e.id,title:e.title,folderId:e.folder_id??null}),children:[(0,r.jsx)(_.A,{className:"mr-2 h-3.5 w-3.5"}),l("workflows.export")]}),(0,r.jsx)(Z.mB,{}),(0,r.jsxs)(Z._2,{className:"text-[var(--destructive)]",onClick:()=>ez(e),children:[(0,r.jsx)(M.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.delete")]})]})]})]}),(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)(Y,{nodes:e.nodes})})]}),(0,r.jsxs)("p",{className:"mt-3 text-[11px] text-[var(--muted-foreground)]",children:[e.nodes.length,l("workflows.nodes")," \xb7"," ",new Date(e.created_at).toLocaleDateString("ko-KR")]})]})},e.id)})}),eZ("bottom")]})]})})]}),(0,r.jsx)(R.o,{target:e$,title:l("workflows.deleteConfirm"),description:`"${e$?.title??""}"${l("workflows.deleteDesc")}`,onCancel:()=>ez(null),onConfirm:eP}),(0,r.jsx)(K,{workflowId:ey?.id??null,workflowTitle:ey?.title??"",currentOverride:ey?.override??null,open:null!==ey,onClose:()=>ek(null),onUpdate:eM}),(0,r.jsx)(W.Z,{open:ej,onClose:()=>eN(!1),mode:"import",folderId:D,onImported:e=>t.push(`/workflows/${e}`)}),eA&&(0,r.jsx)(W.Z,{open:null!==eA,onClose:()=>eC(null),mode:"export",workflowId:eA.id,workflowTitle:eA.title,folderId:eA.folderId})]})}},63393:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},67635:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},73321:(e,t,s)=>{"use strict";var r=s(74645);s.o(r,"useParams")&&s.d(t,{useParams:function(){return r.useParams}}),s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})},96035:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]])},97233:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]])}},e=>{e.O(0,[8409,7262,6095,8500,7659,7050,7533,6073,2360,2997,4663,8441,3794,7358],()=>e(e.s=6015)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[238],{5121:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]])},5387:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("file-braces-corner",[["path",{d:"M14 22h4a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6",key:"14cnrg"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M5 14a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1 1 1 0 0 1 1 1v2a1 1 0 0 0 1 1",key:"sr0ebq"}],["path",{d:"M9 22a1 1 0 0 0 1-1v-2a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-2a1 1 0 0 0-1-1",key:"w793db"}]])},6015:(e,t,s)=>{Promise.resolve().then(s.bind(s,62929))},6296:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},6962:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]])},7019:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("layout-list",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["path",{d:"M14 4h7",key:"3xa0d5"}],["path",{d:"M14 9h7",key:"1icrd9"}],["path",{d:"M14 15h7",key:"1mj8o2"}],["path",{d:"M14 20h7",key:"11slyb"}]])},21362:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},21628:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},21975:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]])},25777:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]])},30971:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]])},37595:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},38798:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},41585:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},41641:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},42129:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])},49387:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},50568:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("folder-symlink",[["path",{d:"M2 9.35V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",key:"y8kt7d"}],["path",{d:"m8 16 3-3-3-3",key:"rlqrt1"}]])},51914:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},53961:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},60285:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]])},61878:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},62929:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>ee});var r=s(95155),a=s(12115),l=s(98500),i=s.n(l),n=s(73321),o=s(96035),d=s(5121),c=s(53961),u=s(21628),h=s(41641),m=s(21362),x=s(30971),p=s(94514),f=s(33210),b=s(7019),v=s(37595),w=s(51914),g=s(21975),y=s(42129),k=s(63393),j=s(61878),N=s(6296),A=s(60285),C=s(49387),S=s(67635),_=s(6962),M=s(68459),$=s(59943),z=s(45160),P=s(89239),E=s(81477),L=s(29991),I=s(37642),R=s(28367),T=s(25777),D=s(7810),q=s(92451),H=s(66609),F=s(42763),O=s(42360);let V=[{value:null,Icon:y.A,labelKey:"visibility.followFolder",descKey:"visibility.followFolderDesc"},{value:"personal",Icon:T.A,labelKey:"folders.visibilityPersonal",descKey:"folders.visibilityPersonalDesc"},{value:"group",Icon:D.A,labelKey:"folders.visibilityGroup",descKey:"folders.visibilityGroupDesc"},{value:"public",Icon:q.A,labelKey:"folders.visibilityPublic",descKey:"folders.visibilityPublicDesc"}];function K({workflowId:e,workflowTitle:t,currentOverride:s,open:l,onClose:i,onUpdate:n}){let{t:o}=(0,O.B)(),[d,c]=(0,a.useState)(null),[u,h]=(0,a.useState)([]),[m,x]=(0,a.useState)([]),[p,f]=(0,a.useState)(""),[b,v]=(0,a.useState)("reader"),[g,y]=(0,a.useState)(!1),k=(0,a.useCallback)(async()=>{if(!e)return;let t=await fetch(`/api/workflows/${e}/shares`);t.ok&&h((await t.json()).data??[])},[e]),j=(0,a.useCallback)(async()=>{let e=await fetch("/api/settings/groups");e.ok&&x((await e.json()).data??[])},[]);(0,a.useEffect)(()=>{l&&e&&(c(s),f(""),k(),j())},[l,e,s,k,j]);let N=async()=>{if(e&&!g){if(d!==s){y(!0);let t=await fetch(`/api/workflows/${e}/visibility`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({override:d})});if(y(!1),!t.ok){let e=await t.json().catch(()=>({}));H.oR.error(e?.error?.message??o("visibility.changeFailed"));return}}n(),i()}},A=async()=>{if(!e||!p)return;let t=await fetch(`/api/workflows/${e}/shares`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({group_id:p,access_level:b})});if(t.ok)f(""),await k();else{let e=await t.json().catch(()=>({}));H.oR.error(e?.error?.message??o("visibility.groupAddFailed"))}},C=async t=>{e&&((await fetch(`/api/workflows/${e}/shares/${t}`,{method:"DELETE"})).ok?await k():H.oR.error(o("visibility.groupRemoveFailed")))},S=m.filter(e=>!u.some(t=>t.group_id===e.id)),_=d!==s;return(0,r.jsx)(F.lG,{open:l,onOpenChange:e=>!e&&i(),children:(0,r.jsxs)(F.Cf,{className:"sm:max-w-[400px]",children:[(0,r.jsx)(F.c7,{children:(0,r.jsxs)(F.L3,{className:"flex items-center gap-2 text-base",children:[(0,r.jsx)("span",{className:"max-w-[200px] truncate",children:t}),(0,r.jsxs)("span",{className:"text-xs font-normal text-[var(--muted-foreground)]",children:["\xb7 ",o("visibility.settings")]})]})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"mb-2 text-[11px] font-medium uppercase tracking-wide text-[var(--muted-foreground)]",children:o("visibility.scope")}),(0,r.jsx)("div",{className:"grid grid-cols-4 gap-2",children:V.map(({value:e,Icon:t,labelKey:s,descKey:a})=>{let l=d===e;return(0,r.jsxs)("button",{type:"button",disabled:g,onClick:()=>c(e),title:o(a),className:`flex flex-col items-center gap-1.5 rounded-[var(--radius-sm)] border px-2 py-2.5 text-xs transition-colors disabled:pointer-events-none disabled:opacity-50 ${l?"border-brand-blue-400 bg-brand-blue-50 text-brand-blue-700":"border-[var(--border)] text-[var(--muted-foreground)] hover:bg-surface-soft"}`,children:[(0,r.jsx)(t,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"font-medium",children:o(s)})]},String(e))})})]}),"group"===d&&(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"mb-2 text-[11px] font-medium uppercase tracking-wide text-[var(--muted-foreground)]",children:o("visibility.groupSharing")}),0===u.length?(0,r.jsx)("p",{className:"px-1 text-xs text-[var(--muted-foreground)]",children:o("visibility.noSharedGroups")}):(0,r.jsx)("ul",{className:"mb-2 space-y-1",children:u.map(e=>(0,r.jsxs)("li",{className:"flex items-center gap-2 rounded-[var(--radius-sm)] bg-surface-soft px-2.5 py-1.5",children:[(0,r.jsx)(D.A,{className:"h-3.5 w-3.5 shrink-0 text-[var(--muted-foreground)]"}),(0,r.jsx)("span",{className:"flex-1 truncate text-sm",children:e.group_name}),(0,r.jsx)("span",{className:`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${"contributor"===e.access_level?"bg-brand-blue-100 text-brand-blue-700":"bg-[var(--border)]/40 text-[var(--muted-foreground)]"}`,children:"contributor"===e.access_level?o("folders.accessLevelEditor"):o("folders.accessLevelViewer")}),(0,r.jsx)("button",{type:"button",onClick:()=>C(e.group_id),className:"flex h-5 w-5 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] hover:bg-destructive/10 hover:text-[var(--destructive)]",children:(0,r.jsx)(M.A,{className:"h-3 w-3"})})]},e.group_id))}),0===m.length?(0,r.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:o("visibility.noGroupsHint")}):0===S.length?(0,r.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:o("visibility.allGroupsShared")}):(0,r.jsxs)("div",{className:"flex gap-1.5",children:[(0,r.jsxs)("select",{value:p,onChange:e=>f(Number(e.target.value)||""),className:"h-7 min-w-0 flex-1 rounded-[var(--radius-sm)] border border-[var(--border)] bg-[var(--background)] px-2 text-xs outline-none focus:border-brand-blue-400",children:[(0,r.jsx)("option",{value:"",children:o("visibility.selectGroup")}),S.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]}),(0,r.jsxs)("select",{value:b,onChange:e=>v(e.target.value),className:"h-7 w-20 rounded-[var(--radius-sm)] border border-[var(--border)] bg-[var(--background)] px-2 text-xs outline-none focus:border-brand-blue-400",children:[(0,r.jsx)("option",{value:"reader",children:o("folders.accessLevelViewer")}),(0,r.jsx)("option",{value:"contributor",children:o("folders.accessLevelEditor")})]}),(0,r.jsx)("button",{type:"button",disabled:!p,onClick:A,className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--radius-sm)] bg-brand-blue-600 text-white hover:bg-brand-blue-700 disabled:opacity-40",children:(0,r.jsx)(w.A,{className:"h-3.5 w-3.5"})})]})]}),(0,r.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,r.jsx)(P.$,{variant:"outline",size:"sm",onClick:i,children:o("common.cancel")}),(0,r.jsx)(P.$,{size:"sm",disabled:g,onClick:N,className:_?"":"opacity-60",children:g?o("visibility.applying"):o("visibility.apply")})]})]})})}var W=s(52997),G=s(80167),Z=s(72264),B=s(21988),J=s(78619);let U="bluekiwi:workflows:folder-pane-width",X=[5,10,20,50];function Q({node:e}){let t=e.node_type,s="gate"===t?{Icon:o.A,className:"border-kiwi-600/30 bg-kiwi-100 text-kiwi-700"}:"loop"===t?{Icon:d.A,className:"border-[var(--border)] bg-transparent text-[var(--muted-foreground)]"}:{Icon:c.A,className:"border-brand-blue-600/20 bg-brand-blue-100 text-brand-blue-700"};return(0,r.jsxs)(z.E,{className:s.className,children:[(0,r.jsx)(s.Icon,{className:"h-3 w-3"}),(0,r.jsx)("span",{className:"truncate text-[11px]",children:e.title})]})}function Y({nodes:e}){let t=e.slice(0,5),s=e.length-5;return(0,r.jsxs)("div",{className:"flex items-center gap-1.5 overflow-hidden",children:[t.map((e,s)=>(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(Q,{node:e}),s<t.length-1&&(0,r.jsx)(u.A,{className:"h-3 w-3 shrink-0 text-[var(--muted-foreground)]"})]},e.id)),s>0&&(0,r.jsxs)("span",{className:"shrink-0 text-[11px] text-[var(--muted-foreground)]",children:["+",s]})]})}function ee(){let e=(0,n.usePathname)(),t=(0,n.useRouter)(),s=(0,n.useSearchParams)(),{t:l}=(0,O.B)(),[o,d]=(0,a.useState)(()=>{let e=Number(s.get("page"));return Number.isFinite(e)&&e>0?e:1}),[c,u]=(0,a.useState)(()=>{let e=Number(s.get("page_size"));return X.includes(e)?e:10}),[z,T]=(0,a.useState)(()=>"grid"===s.get("view")?"grid":"list"),[D,q]=(0,a.useState)(()=>{let e=s.get("folder_id");return e?Number(e):null}),[F,V]=(0,a.useState)([]),[Q,ee]=(0,a.useState)(0),[et,es]=(0,a.useState)(!1),[er,ea]=(0,a.useState)(""),el=(0,a.useRef)(null),ei=(0,a.useRef)(null),en=(0,a.useRef)(null),eo=(0,a.useRef)(null),[ed,ec]=(0,a.useState)(!1),[eu,eh]=(0,a.useState)(!1),[em,ex]=(0,a.useState)(()=>{let e=window.localStorage.getItem(U),t=e?Number(e):NaN;return Number.isFinite(t)?Math.min(520,Math.max(240,t)):320}),[ep,ef]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=window.matchMedia("(min-width: 1024px)"),t=()=>ec(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,a.useEffect)(()=>{window.localStorage.setItem(U,String(em))},[em]),(0,a.useEffect)(()=>{if(!ep)return;let e=()=>ef(null);return document.addEventListener("click",e),document.addEventListener("contextmenu",e),()=>{document.removeEventListener("click",e),document.removeEventListener("contextmenu",e)}},[ep]);let[eb,ev]=(0,a.useState)(()=>s.get("q")??""),[ew,eg]=(0,a.useState)(()=>s.get("q")??""),[ey,ek]=(0,a.useState)(null),[ej,eN]=(0,a.useState)(!1),[eA,eC]=(0,a.useState)(null),{data:eS,loading:e_,refetch:eM}=(0,B.U)(()=>{let e=new URLSearchParams;return null!==D&&e.set("folder_id",String(D)),ew&&e.set("q",ew),`/api/workflows?${e}`},[D,ew]),{deleteTarget:e$,setDeleteTarget:ez,handleDelete:eP}=(0,J.b)({endpoint:e=>`/api/workflows/${e.id}`,onSuccess:async()=>{H.oR.success(l("workflows.deleted")),await eM()},fallbackMessage:l("common.deleteFailed")}),eE=Math.max(1,Math.ceil(eS.length/c)),eL=Math.min(o,eE),eI=eS.slice((eL-1)*c,eL*c);(0,a.useEffect)(()=>{let e=window.setTimeout(()=>{eg(eb.trim())},250);return()=>window.clearTimeout(e)},[eb]),(0,a.useEffect)(()=>{eo.current?.scrollTo({top:0,behavior:"smooth"})},[D,ew,c,z]),(0,a.useEffect)(()=>{let r=new URLSearchParams;null!==D&&r.set("folder_id",String(D)),eb.trim()&&r.set("q",eb.trim()),eL>1&&r.set("page",String(eL)),10!==c&&r.set("page_size",String(c)),"list"!==z&&r.set("view",z);let a=r.toString();a!==s.toString()&&t.replace(a?`${e}?${a}`:e,{scroll:!1})},[e,t,s,D,eb,eL,c,z]);let eR=(0,a.useCallback)(()=>{ev(""),d(1)},[]),eT=(0,a.useCallback)(e=>{q(t=>t===e?null:e),d(1)},[]),eD=null!==D?F.find(e=>e.id===D)??null:null,eq=(0,a.useMemo)(()=>{if(!eD)return[];let e=[],t=eD,s=new Set;for(;t&&!s.has(t.id)&&(s.add(t.id),e.unshift(t),null!==t.parent_id);){;t=F.find(e=>e.id===t.parent_id)}return e},[eD,F]),eH=(0,a.useCallback)(e=>{if(!e||!D||e===D)return[];let t=[],s=F.find(t=>t.id===e),r=new Set;for(;s&&s.id!==D&&!r.has(s.id)&&(r.add(s.id),t.unshift(s.is_system?l("folders.myWorkspace"):s.name),null!==s.parent_id);){;s=F.find(e=>e.id===s.parent_id)}return t},[D,F,l]),eF=(0,a.useCallback)(()=>{eD&&!eD.is_system&&(ea(eD.name),es(!0),setTimeout(()=>{el.current?.focus(),el.current?.select()},0))},[eD]),eO=(0,a.useCallback)(async()=>{if(!D||!er.trim())return void es(!1);es(!1);let e=await fetch(`/api/folders/${D}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:er.trim()})});if(e.ok)ee(e=>e+1);else{let t=await e.json().catch(()=>({}));H.oR.error(t?.error?.message??l("folders.renameFailed"))}},[D,er,l]),eV=(0,a.useCallback)(async(e,t)=>{(await fetch(`/api/workflows/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder_id:t})})).ok&&(H.oR.success(l("workflows.movedToFolder")),eM())},[eM,l]),eK=async e=>{(await fetch("/api/workflows",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:`${e.title} (${l("workflows.copy")})`,description:e.description,nodes:e.nodes.map(e=>({title:e.title,node_type:e.node_type,instruction_id:e.instruction_id,instruction:e.resolved_instruction}))})})).ok&&(H.oR.success(l("workflows.duplicated")),eM())},eW=(0,a.useCallback)(e=>{if(!ed||!en.current)return;e.preventDefault();let t=e.pointerId,s=e.currentTarget;eh(!0),s.setPointerCapture(t);let r=e=>{let t=en.current?.getBoundingClientRect();t&&ex(Math.min(520,Math.max(240,Math.round(e-t.left))))};r(e.clientX);let a=e=>{r(e.clientX)},l=()=>{eh(!1),document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",l),window.removeEventListener("pointercancel",l)};document.body.style.cursor="col-resize",document.body.style.userSelect="none",window.addEventListener("pointermove",a),window.addEventListener("pointerup",l),window.addEventListener("pointercancel",l)},[ed]),eG=(0,a.useMemo)(()=>{if(ed)return{gridTemplateColumns:`${em}px 8px minmax(0,1fr)`}},[em,ed]),eZ=(0,a.useCallback)(e=>(0,r.jsxs)("div",{className:`flex items-center justify-end gap-2 ${"top"===e?"mb-4":"mt-6"}`,children:[(0,r.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[l("workflows.results"),":"]}),(0,r.jsxs)(L.l6,{value:String(c),onValueChange:e=>{u(Number(e)),d(1)},children:[(0,r.jsx)(L.bq,{size:"sm",className:"w-20 bg-background",children:(0,r.jsx)(L.yv,{})}),(0,r.jsx)(L.gC,{align:"end",children:X.map(e=>(0,r.jsx)(L.eb,{value:String(e),children:e},e))})]}),(0,r.jsx)(P.$,{variant:"outline",size:"icon",className:"h-8 w-8",disabled:eL<=1,onClick:()=>d(e=>Math.max(1,e-1)),children:(0,r.jsx)(h.A,{className:"h-4 w-4"})}),(0,r.jsxs)("span",{className:"min-w-16 text-right text-xs text-[var(--muted-foreground)]",children:[eL," / ",eE]}),(0,r.jsx)(P.$,{variant:"outline",size:"icon",className:"h-8 w-8",disabled:eL>=eE,onClick:()=>d(e=>Math.min(eE,e+1)),children:(0,r.jsx)(m.A,{className:"h-4 w-4"})})]}),[eL,c,l,eE]);return(0,r.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,r.jsx)("div",{className:"sticky top-0 z-20 border-b border-[var(--border)] bg-[var(--background)]/95 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"flex h-14 items-center justify-between gap-4 px-5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(x.A,{className:"h-5 w-5 text-[var(--muted-foreground)]"}),(0,r.jsx)("h1",{className:`text-2xl font-bold tracking-tight ${null!==D?"cursor-pointer hover:text-brand-blue-600 transition-colors":""}`,onClick:()=>{null!==D&&(q(null),es(!1),d(1))},children:l("workflows.title")}),eq.map((e,t)=>{let s=t===eq.length-1,a=e.is_system?l("folders.myWorkspace"):e.name;return(0,r.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(m.A,{className:"h-4 w-4 shrink-0 text-[var(--muted-foreground)]/50"}),s&&et?(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("input",{ref:el,value:er,onChange:e=>ea(e.target.value),onKeyDown:e=>{"Enter"===e.key&&eO(),"Escape"===e.key&&es(!1)},className:"h-8 rounded-[var(--radius-sm)] border border-brand-blue-400 bg-transparent px-2 text-lg font-bold outline-none ring-1 ring-brand-blue-400/30"}),(0,r.jsx)("button",{type:"button",onClick:()=>void eO(),className:"flex h-7 w-7 items-center justify-center rounded text-kiwi-600 hover:bg-kiwi-100",children:(0,r.jsx)(p.A,{className:"h-4 w-4"})}),(0,r.jsx)("button",{type:"button",onClick:()=>es(!1),className:"flex h-7 w-7 items-center justify-center rounded text-[var(--muted-foreground)] hover:bg-surface-soft",children:(0,r.jsx)(f.A,{className:"h-4 w-4"})})]}):(0,r.jsx)("span",{className:`text-2xl font-bold tracking-tight select-none ${!s?"cursor-pointer text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors":e.is_system?"cursor-default":"cursor-text"}`,title:s&&!e.is_system?l("folders.doubleClickToRename"):void 0,onClick:s?void 0:()=>{q(e.id),es(!1),d(1)},onDoubleClick:s&&!e.is_system?eF:void 0,children:a})]},e.id)})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("div",{className:"flex rounded-[var(--radius)] border border-[var(--border)] p-0.5",children:[(0,r.jsx)(P.$,{variant:"ghost",size:"icon",className:`h-7 w-7 ${"list"===z?"bg-[var(--card)] shadow-sm":""}`,onClick:()=>T("list"),title:l("common.listView"),children:(0,r.jsx)(b.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)(P.$,{variant:"ghost",size:"icon",className:`h-7 w-7 ${"grid"===z?"bg-[var(--card)] shadow-sm":""}`,onClick:()=>T("grid"),title:l("common.gridView"),children:(0,r.jsx)(v.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)(P.$,{asChild:!0,size:"sm",children:(0,r.jsxs)(i(),{href:D?`/workflows/new?folder_id=${D}`:"/workflows/new",children:[(0,r.jsx)(w.A,{className:"h-4 w-4"}),l("workflows.newWorkflow")]})}),(0,r.jsxs)(P.$,{size:"sm",variant:"outline",onClick:()=>eN(!0),children:[(0,r.jsx)(g.A,{className:"h-4 w-4"}),l("workflows.import")]})]})]})}),(0,r.jsxs)("div",{ref:en,className:`grid min-h-0 flex-1 grid-cols-1 lg:grid-cols-[320px_8px_minmax(0,1fr)] ${eu?"cursor-col-resize":""}`,style:eG,children:[(0,r.jsxs)("aside",{className:"flex min-h-0 flex-col border-b border-[var(--border)] bg-surface-soft/60 lg:border-r lg:border-b-0",children:[(0,r.jsxs)("div",{className:"shrink-0 border-b border-[var(--border)] px-4 py-4",children:[(0,r.jsx)("p",{className:"text-sm font-semibold",children:l("folders.title")}),(0,r.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:eD?eD.is_system?l("folders.myWorkspace"):eD.name:l("workflows.allWorkflows")})]}),(0,r.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto px-3 py-3",children:[(0,r.jsxs)("button",{onClick:()=>eT(null),onContextMenu:e=>{e.preventDefault(),ef({x:e.clientX,y:e.clientY})},className:`mb-1 flex w-full items-center gap-2 rounded-[var(--radius-sm)] px-2 py-1.5 text-sm transition-colors ${null===D?"bg-brand-blue-100 font-medium text-brand-blue-700":"text-[var(--muted-foreground)] hover:bg-surface-soft hover:text-[var(--foreground)]"}`,children:[(0,r.jsx)(y.A,{className:"h-3.5 w-3.5 shrink-0"}),l("workflows.allWorkflows")]}),(0,r.jsx)(G.z,{selectedId:D,onSelect:eT,onFoldersChange:V,onWorkflowDrop:eV,refreshKey:Q,onCreateRootRef:e=>{ei.current=e}}),ep&&(0,r.jsx)("div",{className:"fixed z-50 min-w-[140px] overflow-hidden rounded-[var(--radius-sm)] border border-[var(--border)] bg-[var(--card)] py-1 shadow-[var(--shadow-card)]",style:{top:ep.y,left:ep.x},onClick:()=>ef(null),children:(0,r.jsxs)("button",{className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-surface-soft",onClick:()=>{ei.current?.(),ef(null)},children:[(0,r.jsx)(k.A,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"}),l("folders.new")]})})]})]}),(0,r.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":l("folders.title"),onPointerDown:eW,className:"hidden lg:flex items-stretch justify-center bg-transparent",children:(0,r.jsx)("div",{className:"group flex w-2 cursor-col-resize items-center justify-center",children:(0,r.jsx)("div",{className:"h-full w-px bg-[var(--border)] transition-colors group-hover:bg-brand-blue-400 group-active:bg-brand-blue-500"})})}),(0,r.jsx)("section",{ref:eo,className:"min-h-0 overflow-y-auto",children:(0,r.jsxs)("div",{className:"px-5 py-5",children:[(0,r.jsx)("div",{className:"sticky top-0 z-10 -mx-5 mb-4 border-b border-[var(--border)] bg-[var(--background)]/95 px-5 py-3 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between",children:[(0,r.jsxs)("div",{className:"relative w-full max-w-md",children:[(0,r.jsx)(j.A,{className:"pointer-events-none absolute top-1/2 left-2.5 h-3.5 w-3.5 -translate-y-1/2 text-[var(--muted-foreground)]"}),(0,r.jsx)("input",{type:"text",value:eb,onChange:e=>{ev(e.target.value),d(1)},placeholder:l("common.search"),className:"h-9 w-full rounded-[var(--radius-sm)] border border-[var(--border)] bg-transparent pl-8 pr-7 text-sm outline-none placeholder:text-[var(--muted-foreground)] focus:border-brand-blue-400 focus:ring-1 focus:ring-brand-blue-400/30"}),eb!==ew?(0,r.jsx)("span",{className:"pointer-events-none absolute top-1/2 right-2 -translate-y-1/2 text-[var(--muted-foreground)]",children:(0,r.jsx)(N.A,{className:"h-3.5 w-3.5 animate-spin"})}):eb&&(0,r.jsx)("button",{type:"button",onClick:eR,className:"absolute top-1/2 right-2 -translate-y-1/2 text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,r.jsx)(f.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)("div",{className:"shrink-0",children:eZ("top")})]})}),(eb||null!==D)&&(0,r.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[eb&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-brand-blue-300/50 bg-brand-blue-50 px-2.5 py-0.5 text-xs text-brand-blue-700",children:[(0,r.jsx)(j.A,{className:"h-3 w-3"}),eb,(0,r.jsx)("button",{onClick:eR,className:"ml-0.5 opacity-60 hover:opacity-100",children:(0,r.jsx)(f.A,{className:"h-3 w-3"})})]}),(0,r.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[eS.length,l("workflows.results")]})]}),e_?(0,r.jsx)(E.Zp,{children:(0,r.jsx)(E.Wu,{className:"py-10 text-center text-sm text-[var(--muted-foreground)]",children:l("common.loading")})}):0===eS.length?(0,r.jsx)($.p,{icon:x.A,title:l("workflows.empty"),description:l("workflows.emptyDesc"),actionLabel:l("workflows.newWorkflow"),actionHref:D?`/workflows/new?folder_id=${D}`:"/workflows/new"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"grid"===z?"grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3":"flex flex-col gap-2",children:eI.map(e=>{let s,a;return"list"===z?(0,r.jsx)(E.Zp,{className:"cursor-pointer gap-0 py-0 transition-shadow hover:shadow-soft",draggable:!0,onDragStart:t=>t.dataTransfer.setData("workflowId",String(e.id)),onClick:()=>t.push(`/workflows/${e.id}`),children:(0,r.jsxs)(E.Wu,{className:"px-4 py-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"min-w-0 flex-1",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("p",{className:"truncate text-sm font-semibold",children:0===(s=eH(e.folder_id)).length?e.title:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"text-xs font-normal text-[var(--muted-foreground)]/60",children:[s.join(" > ")," > "]}),e.title]})}),(0,r.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),ek({id:e.id,title:e.title,override:e.visibility_override??null})},className:"rounded opacity-60 hover:opacity-100",title:l("visibility.settings"),children:(0,r.jsx)(I.w,{visibility:e.visibility_override??"inherit",iconOnly:!0})})]})}),(0,r.jsx)("p",{className:"shrink-0 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleDateString("ko-KR")}),(0,r.jsxs)(Z.rI,{children:[(0,r.jsx)(Z.ty,{asChild:!0,children:(0,r.jsx)(P.$,{variant:"ghost",size:"icon",className:"h-7 w-7 shrink-0",onClick:e=>e.stopPropagation(),children:(0,r.jsx)(A.A,{className:"h-4 w-4"})})}),(0,r.jsxs)(Z.SQ,{align:"end",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)(Z._2,{onClick:()=>t.push(`/workflows/${e.id}/edit`),children:[(0,r.jsx)(C.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.edit")]}),(0,r.jsxs)(Z._2,{onClick:()=>eK(e),children:[(0,r.jsx)(S.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.duplicate")]}),(0,r.jsxs)(Z._2,{onClick:()=>eC({id:e.id,title:e.title,folderId:e.folder_id??null}),children:[(0,r.jsx)(_.A,{className:"mr-2 h-3.5 w-3.5"}),l("workflows.export")]}),(0,r.jsx)(Z.mB,{}),(0,r.jsxs)(Z._2,{className:"text-[var(--destructive)]",onClick:()=>ez(e),children:[(0,r.jsx)(M.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.delete")]})]})]})]}),(0,r.jsx)("div",{className:"mt-2 overflow-hidden",children:(0,r.jsx)(Y,{nodes:e.nodes})})]})},e.id):(0,r.jsx)(E.Zp,{className:"cursor-pointer gap-0 py-0 transition-shadow hover:shadow-soft",draggable:!0,onDragStart:t=>t.dataTransfer.setData("workflowId",String(e.id)),onClick:()=>t.push(`/workflows/${e.id}`),children:(0,r.jsxs)(E.Wu,{className:"flex h-full flex-col justify-between p-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("p",{className:"truncate text-sm font-semibold",children:0===(a=eH(e.folder_id)).length?e.title:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"text-xs font-normal text-[var(--muted-foreground)]/60",children:[a.join(" > ")," > "]}),e.title]})}),(0,r.jsx)("p",{className:"mt-0.5 line-clamp-1 text-xs text-[var(--muted-foreground)]",children:e.description||"\xa0"}),(0,r.jsx)("div",{className:"mt-1.5",children:(0,r.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),ek({id:e.id,title:e.title,override:e.visibility_override??null})},className:"rounded opacity-60 hover:opacity-100",title:l("visibility.settings"),children:(0,r.jsx)(I.w,{visibility:e.visibility_override??"inherit",iconOnly:!0})})})]}),(0,r.jsxs)(Z.rI,{children:[(0,r.jsx)(Z.ty,{asChild:!0,children:(0,r.jsx)(P.$,{variant:"ghost",size:"icon",className:"h-7 w-7 shrink-0",onClick:e=>e.stopPropagation(),children:(0,r.jsx)(A.A,{className:"h-4 w-4"})})}),(0,r.jsxs)(Z.SQ,{align:"end",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)(Z._2,{onClick:()=>t.push(`/workflows/${e.id}/edit`),children:[(0,r.jsx)(C.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.edit")]}),(0,r.jsxs)(Z._2,{onClick:()=>eK(e),children:[(0,r.jsx)(S.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.duplicate")]}),(0,r.jsxs)(Z._2,{onClick:()=>eC({id:e.id,title:e.title,folderId:e.folder_id??null}),children:[(0,r.jsx)(_.A,{className:"mr-2 h-3.5 w-3.5"}),l("workflows.export")]}),(0,r.jsx)(Z.mB,{}),(0,r.jsxs)(Z._2,{className:"text-[var(--destructive)]",onClick:()=>ez(e),children:[(0,r.jsx)(M.A,{className:"mr-2 h-3.5 w-3.5"}),l("common.delete")]})]})]})]}),(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)(Y,{nodes:e.nodes})})]}),(0,r.jsxs)("p",{className:"mt-3 text-[11px] text-[var(--muted-foreground)]",children:[e.nodes.length,l("workflows.nodes")," \xb7"," ",new Date(e.created_at).toLocaleDateString("ko-KR")]})]})},e.id)})}),eZ("bottom")]})]})})]}),(0,r.jsx)(R.o,{target:e$,title:l("workflows.deleteConfirm"),description:l("workflows.deleteDesc",{title:e$?.title??""}),onCancel:()=>ez(null),onConfirm:eP}),(0,r.jsx)(K,{workflowId:ey?.id??null,workflowTitle:ey?.title??"",currentOverride:ey?.override??null,open:null!==ey,onClose:()=>ek(null),onUpdate:eM}),(0,r.jsx)(W.Z,{open:ej,onClose:()=>eN(!1),mode:"import",folderId:D,onImported:e=>t.push(`/workflows/${e}`)}),eA&&(0,r.jsx)(W.Z,{open:null!==eA,onClose:()=>eC(null),mode:"export",workflowId:eA.id,workflowTitle:eA.title,folderId:eA.folderId})]})}},63393:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},67635:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},73321:(e,t,s)=>{"use strict";var r=s(74645);s.o(r,"useParams")&&s.d(t,{useParams:function(){return r.useParams}}),s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})},96035:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]])},97233:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(82240).A)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]])}},e=>{e.O(0,[8409,7262,6095,8500,7659,7050,7533,6073,2360,2997,4663,8441,3794,7358],()=>e(e.s=6015)),_N_E=e.O()}]);
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2360],{42360:(e,t,s)=>{s.d(t,{I18nProvider:()=>n,B:()=>l});var i=s(95155),o=s(12115);let a={ko:JSON.parse('{"common":{"save":"μ μ₯","cancel":"μ·¨μ","delete":"μμ ","edit":"νΈμ§","preview":"미리보기","all":"μ 체","duplicate":"볡μ ","create":"μμ±","add":"μΆκ°","close":"λ«κΈ°","loading":"λ‘λ© μ€...","confirm":"νμΈ","search":"κ²μ...","noResults":"κ²°κ³Ό μμ","deleteFailed":"μμ μ μ€ν¨νμ΅λλ€.","listView":"리μ€νΈ 보기","gridView":"그리λ 보기","copy":"볡μ¬"},"tutorial":{"heroEyebrow":"Claude, Codex λ± AI μ½λ© λꡬ μ¬μ©μ λ§€λ΄μΌ","tabOverview":"κ°μ","tabGuides":"μ€μ κ°μ΄λ","guidesBack":"β λͺ©λ‘μΌλ‘","guidesLoading":"λ‘λ© μ€...","guidesEmpty":"λ±λ‘λ κ°μ΄λκ° μμ΅λλ€.","tryWorkflowAdd":"μ΄ μν¬νλ‘ λ΄ μν¬μ€νμ΄μ€μ μΆκ°νκΈ°","tryWorkflowLoading":"μν¬νλ‘ λΆλ¬μ€λ μ€...","heroTitle":"μμ
νλ¦μ λ§λλ κ°μ₯ μ§§μ κ²½λ‘","heroDesc":"BlueKiwiμμ μ§μΉ¨ μμ±, μν¬νλ‘ μ‘°λ¦½, μ€ν, κ²°κ³Ό νμΈκΉμ§ μ€μ μ¬μ© νλ¦μ λΉ λ₯΄κ² μ΅ν μ μλλ‘ κ΅¬μ±ν μλ΄μμ
λλ€.","navStart":"μμνκΈ°","navInstructions":"μ§μΉ¨ λ§λ€κΈ°","navWorkflows":"μν¬νλ‘ λ§λ€κΈ°","navExecute":"μ€ννκΈ°","navMonitor":"νμ€ν¬ νμΈ","navExample":"μ€μ μμ","navMcpLoop":"MCP μλν","navTips":"μ΄μ ν","s1Intro":"BlueKiwiμ κΈ°λ³Έ νλ¦μ λ¨μν©λλ€. λ¨Όμ μ§μΉ¨μ λ§λ€κ³ , κ·Έ μ§μΉ¨λ€μ μν¬νλ‘μ λ°°μΉν λ€, μ€ν κ²°κ³Όλ₯Ό νμ€ν¬ νλ©΄μμ νμΈν©λλ€.","s1Screens":"μ£Όμ νλ©΄","s1InstructionsDesc":"μ§μΉ¨μ μμ±νκ³ κ΄λ¦¬ν©λλ€.","s1WorkflowsDesc":"μ€ν μμλ₯Ό μ€κ³ν©λλ€.","s1TasksDesc":"μ€ν κ²°κ³Όμ μνλ₯Ό νμΈν©λλ€.","s1CredentialsDesc":"μΈλΆ μλΉμ€ μ κ·Ό μ 보λ₯Ό κ΄λ¦¬ν©λλ€.","s1AttachmentsTitle":"λ
Έλ μ²¨λΆ νμΌ","s1AttachmentsDesc":"μν¬νλ‘ λ
Έλμ μ€ν¬λ¦½νΈ, λ νΌλ°μ€ λ¬Έμ, μ€μ νμΌ λ±μ 첨λΆν μ μμ΅λλ€. μμ΄μ νΈλ μ€ν μ€ νμν μ²¨λΆ νμΌμ μλμΌλ‘ λ€μ΄λ‘λν©λλ€.","s1Order":"κΆμ₯ μ¬μ© μμ","s1Order1":"1. μ§μΉ¨μμ μμ
λ¨μλ₯Ό λ¨Όμ μ μν©λλ€.","s1Order2":"2. μν¬νλ‘μμ μ€ν μμλ₯Ό 쑰립ν©λλ€.","s1Order3":"3. νμνλ©΄ ν¬λ¦¬λ΄μ
μ μ°κ²°ν©λλ€.","s1Order4":"4. μ€ν ν νμ€ν¬μμ μ§ν μν©κ³Ό κ²°κ³Όλ₯Ό νμΈν©λλ€.","s1WhenToUse":"μ΄λ€ μΌμ BlueKiwiμ λ§‘κΈ°λ©΄ μ’μκ°","s1Use1":"λ°λ³΅μ μΌλ‘ κ°μ μ κ² μ μ°¨λ₯Ό μνν΄μΌ νλ μΌ","s1Use2":"μ¬λμ μΉμΈμ΄λ μλ΅μ΄ μ€κ°μ νμν λ€λ¨κ³ μμ
","s1Use3":"μ€ν κ³Όμ κ³Ό κ²°κ³Όλ₯Ό λμ€μ λ€μ μΆμ ν΄μΌ νλ μμ
","s1FoldersTitle":"ν΄λμ κ³΅κ° λ²μ","s1FoldersDesc":"μν¬νλ‘μ μ§μΉ¨μ ν΄λλ‘ μ 리λ©λλ€. μ¬μ΄λλ°μμ ν΄λλ₯Ό ν΄λ¦νλ©΄ νμ ν΄λμ νλͺ©λ ν¨κ» νμλ©λλ€.","s1VisPersonal":"κ°μΈ β λλ§ λ³Ό μ μμ΅λλ€.","s1VisGroup":"κ·Έλ£Ή β κ°μ κ·Έλ£Ή ꡬμ±μμκ² κ³΅μ λ©λλ€.","s1VisPublic":"κ³΅κ° β λͺ¨λ μ¬μ©μκ° λ³Ό μ μμ΅λλ€.","s1VisInherit":"μμ λ°λ¦ β μμ ν΄λμ κ³΅κ° λ²μλ₯Ό κ·Έλλ‘ λ°λ¦
λλ€.","s1VisTip":"ν΄λ μ μμ΄μ½μΌλ‘ κ³΅κ° λ²μλ₯Ό λΉ λ₯΄κ² νμΈν μ μμ΅λλ€.","s2Intro":"μ§μΉ¨μ μν¬νλ‘μ μ΅μ λ¨μμ
λλ€. ν μ§μΉ¨μλ νλμ λͺ©μ κ³Ό νλμ κΈ°λ κ²°κ³Όλ§ λ΄λ νΈμ΄ μ’μ΅λλ€.","s2Good":"μ’μ μ§μΉ¨ μμ","s2GoodText":"ν¬λ¦¬λ΄μ
μΉ΄λ λͺ©λ‘μ μ κ²νκ³ , μλΉμ€λͺ
μ€λ³΅ μ¬λΆμ λΉ μ€λͺ
μ΄ μλ νλͺ©μ νλ‘ μ 리ν©λλ€.","s2Bad":"νΌν΄μΌ ν μ§μΉ¨","s2BadText":"μ 체 μμ€ν
μ μμμ κ²ν νκ³ νμν λͺ¨λ κ±Έ μμ ν©λλ€.","s2Tips":"μ§μΉ¨μ μ μ°λ κΈ°μ€","s2Tip1":"무μμ νλ¨ν΄μΌ νλμ§λ³΄λ€ 무μμ μ°μΆν΄μΌ νλμ§λ₯Ό λ¨Όμ μλλ€.","s2Tip2":"λͺ¨νΈν νν λμ μ²΄ν¬ κΈ°μ€μ μ μ΅λλ€. μ: 보기 μ’κ²κ° μλλΌ μ€λ³΅ μλΉμ€λͺ
μμ.","s2Tip3":"κ²°κ³Ό νμμ μ§μ ν©λλ€. μ: bullet list, ν, μμ½ λ¬Έλ¨, νμΌ κ²½λ‘.","s3Intro":"μν¬νλ‘λ μ§μΉ¨μ μμλλ‘ μ°κ²°ν μ€ν μ€κ³λμ
λλ€. λ
Έλ μλ₯Ό λ리기보λ€, μΉμΈ μ§μ κ³Ό λ°λ³΅ μ§μ μ μ΄λ λμ§ κ²°μ νλ κ²μ΄ λ μ€μν©λλ€.","s3NodeTypes":"λ
Έλ μ ν μ΄ν΄νκΈ°","s3ActionDesc":"μλμΌλ‘ λ°λ‘ μνλλ μΌλ° μ€ν λ¨κ³μ
λλ€.","s3GateDesc":"μ¬μ©μ νμΈμ΄λ μλ΅μ΄ νμν μΉμΈ λ¨κ³μ
λλ€.","s3LoopDesc":"μ‘°κ±΄μ΄ λ§μ‘±λ λκΉμ§ λ°λ³΅ μ κ²νλ λ¨κ³μ
λλ€.","s3Recommended":"μ²μ λ§λλ μ¬λμκ² κΆμ₯νλ ꡬ쑰","s3Rec1":"1. Action: νμ¬ μνλ₯Ό μμ§ν©λλ€.","s3Rec2":"2. Action: λ¬Έμ λ κ°μ ν¬μΈνΈλ₯Ό μ 리ν©λλ€.","s3Rec3":"3. Gate: μ¬μ©μκ° λ°©ν₯μ νμ ν©λλ€.","s3Rec4":"4. Action: νμ λ λ°©ν₯μΌλ‘ κ²°κ³Όλ¬Όμ λ§λλλ€.","s4Intro":"μν¬νλ‘ μμΈμ μ€ν λ²νΌμ λλ₯΄λ©΄ 2λ¨κ³ λ€μ΄μΌλ‘κ·Έκ° μ΄λ¦½λλ€. μ λͺ©\xb7컨ν
μ€νΈλ₯Ό μ
λ ₯νκ³ , μ¬μ© μ€μΈ AI λꡬ(Claude Code, Codex CLI λ±)λ₯Ό μ ννλ©΄ 볡μ¬ν μ μλ λͺ
λ Ήμ΄κ° μλμΌλ‘ μμ±λ©λλ€. ν΄λΉ λͺ
λ Ήμ΄λ₯Ό μμ΄μ νΈμκ² λΆμ¬λ£μΌλ©΄ νμ€ν¬κ° μμ±\xb7μ€νλ©λλ€.","s4PreCheck":"μ€ν μ μ νμΈν κ²","s4Pre1":"ν¬λ¦¬λ΄μ
μ΄ νμν λ¨κ³λΌλ©΄ μ°κ²° μ¬λΆλ₯Ό λ¨Όμ νμΈν©λλ€.","s4Pre2":"λ°λ³΅ λ¨κ³κ° μλ€λ©΄ μ’
λ£ μ‘°κ±΄μ΄ λΆλͺ
νμ§ νμΈν©λλ€.","s4Pre3":"μΉμΈ λ¨κ³κ° μλ€λ©΄ λκ° μλ΅ν μ§ μ΄μ λ°©μμ μ ν΄λ‘λλ€.","s4HitlTitle":"μΉμΈ λ¨κ³(HITL) μλ΅νκΈ°","s4HitlDesc":"Gate λ
Έλμ HITL(μ¬λ κ°μ
)μ΄ μ€μ λμ΄ μμΌλ©΄, μμ΄μ νΈκ° μμ
μ λ§μΉ λ€ μ¬μ©μμ μΉμΈμ κΈ°λ€λ¦½λλ€.","s4Hitl1":"νμ€ν¬ μμΈμμ \'μΉμΈ λκΈ°\' νμκ° λνλ©λλ€.","s4Hitl2":"κ²°κ³Όλ₯Ό νμΈν λ€ μΉμΈ λ²νΌμ λλ¬ λ€μ λ¨κ³λ‘ μ§νν©λλ€.","s4Hitl3":"κ²°κ³Όκ° λΆμ‘±νλ©΄ λκ°κΈ°(rewind)λ‘ μ΄μ λ¨κ³λΆν° λ€μ μ€νν μ μμ΅λλ€.","s4StatusTitle":"μ€ν μ€ μμ£Ό 보λ μν","s4Running":"μ€ν μ€","s4RunningDesc":"νμ¬ λ¨κ³κ° μ§ν μ€μ΄λ©° μ λ‘κ·Έκ° κ³μ μμ
λλ€.","s4Waiting":"λκΈ°","s4WaitingDesc":"μ¬μ©μ μλ΅ λλ μΈλΆ 쑰건μ κΈ°λ€λ¦¬λ μνμ
λλ€.","s4Failed":"μ€ν¨","s4FailedDesc":"μ€λ¨ μμΈμ νμΈνκ³ νμνλ©΄ λ€μ μ€ννκ±°λ λκ°μ΅λλ€.","s5Intro":"νμ€ν¬ νμ΄μ§μμλ λͺ©λ‘κ³Ό μμΈ λ νλ©΄μ μ€κ°λ©° μνλ₯Ό λ΄
λλ€. λͺ©λ‘μ νμ¬ μν©μ νλ μ©λμ΄κ³ , μμΈλ ν μ€ν 건μ κΉκ² 보λ μ©λμ
λλ€.","s5ListTitle":"λͺ©λ‘ νλ©΄μμ 보λ κ²","s5List1":"μ΄λ€ μν¬νλ‘μμ μμ±λ νμ€ν¬μΈμ§","s5List2":"νμ¬ μνμ μ§νλ₯ μ΄ μ΄λ μ λμΈμ§","s5List3":"κ°μ₯ μ΅κ·Ό λ¨κ³μμ μ΄λ€ κ²°κ³Όκ° λμλμ§","s5DetailTitle":"μμΈ νλ©΄μμ 보λ κ²","s5Detail1":"μΌμͺ½ νμλΌμΈ: μ΄λ λ¨κ³κΉμ§ μλ£λλμ§","s5Detail2":"μ€λ₯Έμͺ½ κ²°κ³Ό ν¨λ: μ€μ μ°μΆλ¬Ό, ꡬ쑰ν μΆλ ₯, μ½λ©νΈ","s5Detail3":"λ°λ³΅ λ¨κ³μΈ κ²½μ°: μ΄μ λ°λ³΅κ³Ό μ΅μ λ°λ³΅μ μ°¨μ΄","s6Intro":"μ²μ μ¨λ³΄λ μ¬μ©μλΌλ©΄ μΆμμ μΈ μ€λͺ
λ³΄λ€ μ€μ ν λ²μ μ΄μ νλ¦μ λ°λΌκ° 보λ νΈμ΄ ν¨μ¬ μ½μ΅λλ€. μλλ UI μ κ² μν¬νλ‘λ₯Ό λ§λλ κ°μ₯ νμ€μ μΈ μμμ
λλ€.","s6Title":"μ§μ ν΄λ³΄κΈ°: ν¬λ¦¬λ΄μ
μΉ΄λ μ κ² μν¬νλ‘","s6Step1Title":"Step 1. μ§μΉ¨ 3κ°λ₯Ό λ§λλλ€","s6Step1_1":"νμ¬ ν¬λ¦¬λ΄μ
μΉ΄λ UIλ₯Ό μ κ²νκ³ λ¬Έμ λ₯Ό λͺ©λ‘ννλ€","s6Step1_2":"λ¬Έμ λ₯Ό μ€μλ μμΌλ‘ μ 리νκ³ μμ μ°μ μμλ₯Ό μ μνλ€","s6Step1_3":"μμ ν λ€μ μ κ²νκ³ λ¨μ μ΄μλ₯Ό μμ½νλ€","s6Step2Title":"Step 2. μν¬νλ‘λ₯Ό 쑰립ν©λλ€","s6Step2_1":"1. Action: νμ¬ μν μ κ²","s6Step2_2":"2. Gate: μ΄ μ€ λ¬΄μμ λ¨Όμ κ³ μΉ μ§ μ¬μ©μ νμΈ","s6Step2_3":"3. Action: μ νλ λ°©ν₯μΌλ‘ μμ μ μ 리","s6Step2_4":"4. Loop: μμ ν λ€μ μ κ²νκ³ μ’
λ£ μ¬λΆ κ²°μ ","s6Step3Title":"Step 3. μ€ν μ μ΄λ κ² μ μ΅λλ€","s6Step3Desc":"νμ€ν¬ 컨ν
μ€νΈμλ μ΄λ κ² κ΅¬μ²΄μ μΌλ‘ μ λ νΈμ΄ μ’μ΅λλ€.","s6Step3Example":"ν¬λ¦¬λ΄μ
νμ΄μ§μ μΉ΄λ UIλ₯Ό μ κ²ν©λλ€. μλΉμ€λͺ
μ€λ³΅ νμ, μ‘μ
λ©λ΄ μμΉ, μ€λͺ
ν
μ€νΈ λ°λ, νΈμ§ μ§μ
λ°©μ μ€μ¬μΌλ‘ λ³΄κ³ μμ μ°μ μμλ₯Ό μ 리ν©λλ€.","s6Step4Title":"Step 4. μ€ν ν νμ€ν¬μμ νμΈν κ²","s6Step4_1":"1. λͺ©λ‘μμ μ΄λ€ μν¬νλ‘κ° μ΄λ€ μνμΈμ§ λΉ λ₯΄κ² νμΈν©λλ€.","s6Step4_2":"2. μμΈμμ κ° λ¨κ³ κ²°κ³Όμ μ½λ©νΈλ₯Ό μ½μ΅λλ€.","s6Step4_3":"3. Gate λ¨κ³κ° λμ€λ©΄ λ°λ‘ μλ΅ν΄μ νλ¦μ μ΄μ΄κ°λλ€.","s6Step4_4":"4. κ²°κ³Όκ° λ§μμ λ€μ§ μμΌλ©΄ rewind ν λ€μ μ§νν©λλ€.","s7Title":"MCP μ°λ","s7Intro":"BlueKiwi MCP μλ²λ₯Ό AI λꡬμ μ°κ²°νλ©΄ μν¬νλ‘ μ€νμ μλνν μ μμ΅λλ€. μ¬λμ΄ μΉ UIμμ νλ μΌμ μμ΄μ νΈκ° λμ μνν©λλ€.","s7SetupTitle":"MCP μλ² μ°κ²°νκΈ°","s7Setup1":"npm install -g bluekiwi λ‘ CLIλ₯Ό μ€μΉν©λλ€.","s7Setup2":"κ΄λ¦¬μκ° λ³΄λΈ μ΄λ λ§ν¬μμ ν ν°μ 볡μ¬ν©λλ€.","s7Setup3":"bluekiwi accept <ν ν°> -s <μλ²URL> λ‘ μ΄λ κΈ°λ° μ°κ²°μ μλ£ν©λλ€.","s7Setup4":"API ν€κ° μλ€λ©΄ bluekiwi init -p <νλ‘ν> -s <μλ²URL> -k <APIν€> λ‘ μ§μ μ°κ²°νκ±°λ MCP μ€μ μ κ°±μ ν©λλ€.","s7Setup5":"bluekiwi status λ‘ νμ¬ νμ± νλ‘νκ³Ό μ°κ²° μνλ₯Ό νμΈν©λλ€.","s7ToolsTitle":"μ£Όμ MCP λꡬ","s7ToolStartWorkflow":"μν¬νλ‘ IDλ‘ μ νμ€ν¬λ₯Ό μμν©λλ€.","s7ToolAdvance":"λ€μ λ¨κ³μ μ§μΉ¨ μ 보λ₯Ό λ°μμ΅λλ€.","s7ToolExecuteStep":"νμ¬ λ¨κ³μ μ€ν κ²°κ³Όλ₯Ό μ μΆν©λλ€.","s7ToolRequestApproval":"HITL λ¨κ³μμ μ¬λμ μΉμΈμ μμ²ν©λλ€.","s7ToolCompleteTask":"λͺ¨λ λ¨κ³κ° λλλ©΄ νμ€ν¬λ₯Ό μλ£ν©λλ€.","s7ToolRewind":"μ΄μ λ¨κ³λ‘ λκ°μ λ€μ μ€νν©λλ€.","s7ToolHeartbeat":"μ€ν μ€ μ§ν μν©μ μ€μκ°μΌλ‘ λ³΄κ³ ν©λλ€.","s7ToolListTasks":"μ€ν μ€μ΄κ±°λ μλ£λ νμ€ν¬ λͺ©λ‘μ μ‘°νν©λλ€.","s7ToolListAttachments":"λ
Έλμ 첨λΆλ νμΌ λͺ©λ‘μ μ‘°νν©λλ€.","s7ToolGetAttachment":"μ²¨λΆ νμΌμ λ΄μ©μ λ€μ΄λ‘λν©λλ€.","s7ToolUploadAttachment":"λ
Έλμ νμΌμ 첨λΆν©λλ€.","s7FlowTitle":"κΈ°λ³Έ μ€ν νλ¦","s7Flow1":"1. start_workflow β νμ€ν¬ μμ±","s7Flow2":"2. advance β νμ¬ λ¨κ³ μ§μΉ¨ μμ ","s7Flow3":"3. execute_step β κ²°κ³Ό μ μΆ","s7Flow4":"4. 2~3 λ°λ³΅. HITL λ¨κ³λ©΄ request_approval ν μ¬λμ μΉμΈ λκΈ°","s7Flow5":"5. complete_task β νμ€ν¬ μλ£","s7AutoTitle":"μλ μμ±κ³Ό μκΈ°κ°μ ","s7AutoDesc":"MCPλ₯Ό μ΄μ©νλ©΄ μ§μΉ¨κ³Ό μν¬νλ‘ μ체λ₯Ό μλμΌλ‘ λ§λ€κ±°λ, μ€ν κ²°κ³Όλ₯Ό λΆμν΄ μ μ§μ μΌλ‘ κ°μ νλ 루νλ μ€κ³ν μ μμ΅λλ€.","s7Auto1":"λΉμ·ν μ νμ μν¬νλ‘λ₯Ό μλμΌλ‘ νμν©λλ€.","s7Auto2":"νμ€ν¬ λ‘κ·Έλ₯Ό λΆμν΄ μμ£Ό λ§νλ λ¨κ³λ₯Ό μ°Ύμ΅λλ€.","s7Auto3":"μ§μΉ¨ 문ꡬλ₯Ό κ°μ ν μ λ²μ μ λ§λ€κ³ λΉκ΅ν©λλ€.","s8Tip1Title":"μ²μμλ μ§§κ² μμν©λλ€","s8Tip1Desc":"3~4λ¨κ³ μμμ λλλ μ§§μ μν¬νλ‘λ₯Ό λ¨Όμ μ±κ³΅μν¨ λ€ μ μ μΉμΈ λ¨κ³λ λ°λ³΅ λ¨κ³λ₯Ό μΆκ°νλ νΈμ΄ μμ μ μ
λλ€.","s8Tip2Title":"κ²°κ³Ό νμμ ν΅μΌν©λλ€","s8Tip2Desc":"κ°μ μ νμ μ§μΉ¨μ νμ κ°μ νμμΌλ‘ κ²°κ³Όλ₯Ό μ°κ² νλ©΄, λμ€μ νμ€ν¬ λ‘κ·Έλ₯Ό μ½κ³ λΉκ΅νκΈ°κ° ν¨μ¬ μ¬μμ§λλ€.","s8Tip3Title":"Gateλ κΌ νμν κ³³μλ§ λ‘λλ€","s8Tip3Desc":"μ¬μ©μμ μλ΅μ΄ μ λ§ μμ¬κ²°μ μ νμν λ¨κ³κ° μλλΌλ©΄ ActionμΌλ‘ λλ΄λ νΈμ΄ μ€ν μλμ μ¬μ©μ±μ΄ μ’μ΅λλ€.","s8Tip4Title":"μ΄λ¦μ ꡬ체μ μΌλ‘ μ§μ΅λλ€","s8Tip4Desc":"μν¬νλ‘ μ λͺ©, μ§μΉ¨ μ λͺ©, νμ€ν¬ 컨ν
μ€νΈκ° ꡬ체μ μΌμλ‘ λͺ©λ‘κ³Ό μμΈ breadcrumbμμ λ°λ‘ λ§₯λ½μ μ½μ μ μμ΅λλ€.","s8CtaTitle":"λ°λ‘ μμνλ €λ©΄","s8CtaDesc":"λ¨Όμ μ§μΉ¨μμ μμ
λ¨μλ₯Ό λ§λ€κ³ , κ·Έλ€μ μν¬νλ‘μμ μμλ₯Ό μ‘°λ¦½ν΄ λ³΄μΈμ. μ€ν κ²°κ³Όλ νμ€ν¬μμ λ°λ‘ νμΈν μ μμ΅λλ€.","s8CtaGoal":"μΆμ² 첫 λͺ©ν:","s8CtaGoal1":"UI μ κ² μν¬νλ‘","s8CtaGoal2":"λ¬Έμ κ²ν μν¬νλ‘","navVS":"Visual Selection","navSkills":"μ€ν¬ λͺ
λ Ήμ΄","sVsIntro":"Gate λ
Έλμ visual_selectionμ μΌλ©΄ μμ΄μ νΈκ° HTML μ ν UIλ₯Ό μ§μ λ λλ§νκ³ , μ¬μ©μκ° λ²νΌμ ν΄λ¦ν΄ μλ΅ν©λλ€. ν
μ€νΈ μ
λ ₯ μμ΄ ν΄λ¦ ν λ²μΌλ‘ μν¬νλ‘κ° μ΄μ΄μ§λλ€.","sVsHowTitle":"μλ λ°©μ","sVsHow1":"μμ΄μ νΈκ° Gate λ¨κ³μ λλ¬νλ©΄ bk-* μ»΄ν¬λνΈ HTMLμ μμ±ν©λλ€.","sVsHow2":"νμ€ν¬ μμΈ νμ΄μ§μ νμ
μ΄ μλμΌλ‘ μ΄λ¦½λλ€.","sVsHow3":"μ¬μ©μκ° μνλ νλͺ©μ ν΄λ¦νκ³ νμΈμ λλ¦
λλ€.","sVsHow4":"μ ν κ²°κ³Όκ° μμ΄μ νΈμ μ λ¬λκ³ λ€μ λ¨κ³λ‘ μ΄μ΄μ§λλ€.","sVsCompTitle":"μ£Όμ μ»΄ν¬λνΈ","sVsDemoOptionsLabel":"bk-options β λ¨μΌ μ ν μΉ΄λ (A/B/C)","sVsDemoChecklistLabel":"bk-checklist β λ€μ€ μ ν","sVsDemoSliderLabel":"bk-slider β μμΉ μ
λ ₯","sVsMoreTitle":"κ·Έ μΈ μ»΄ν¬λνΈ","sVsMore1":"bk-cards β μ΄λ―Έμ§ μΉ΄λ μ ν (λ μ΄μμ\xb7μ°¨νΈ μ ν κ³ λ₯Ό λ)","sVsMore2":"bk-ranking β λλκ·Έ μμ μ λ ¬","sVsMore3":"bk-matrix β 2\xd72 μ€μλ\xb7κΈ΄κΈλ λ°°μΉ","sVsMore4":"bk-code-compare β μ½λ λ λ²μ λΉκ΅","sVsMore5":"bk-split, bk-pros-cons, bk-mockup, bk-timeline β λΉκ΅\xb7κ²ν μ© λ μ΄μμ","sVsTip":"μμ΄μ νΈκ° bk-design λλ bk-start μ€ν μ€ Gate λ
Έλμμ VS UIλ₯Ό μλ μμ±ν©λλ€. λ³λ μ€μ μμ΄ μν¬νλ‘ λ
Έλμμ visual_selection: trueλ‘ μ§μ νλ©΄ λ©λλ€.","sSkIntro":"BlueKiwiλ μΉ UI μΈμ AI μ½λ© λꡬμμ μ¬λμ λͺ
λ Ήμ΄(/skill)λ‘ μ§μ μ¬μ©ν μ μμ΅λλ€. μ€ν¬μ κ°μ₯ λΉ λ₯΄κ³ μμ°μ€λ¬μ΄ μν¬νλ‘ μ€ν κ²½λ‘μ
λλ€.","sSkTableTitle":"μ€ν¬ λͺ©λ‘","sSkBkStart":"μν¬νλ‘λ₯Ό μ ννκ³ νμ€ν¬λ₯Ό μμ±\xb7μ€νν©λλ€. μ€λ¨λ νμ€ν¬ μ¬κ° λ° μ’
λ£λ μ²λ¦¬ν©λλ€.","sSkBkDesign":"μμ°μ΄ λͺ©νλ₯Ό μ
λ ₯νλ©΄ μν¬νλ‘ κ΅¬μ‘°λ₯Ό μ€κ³νκ³ μλ²μ λ±λ‘ν©λλ€.","sSkBkApprove":"HITL λκΈ° μ€μΈ λ¨κ³λ₯Ό CLIμμ μΉμΈνκ±°λ κ²μ΄νΈ μλ΅μ μ
λ ₯ν©λλ€.","sSkBkImprove":"κΈ°μ‘΄ μν¬νλ‘λ₯Ό λΆμν΄ κ°μ λ²μ μ λ§λ€κ³ λΉκ΅ μ€νν©λλ€.","sSkBkNext":"μ€ν μ€μΈ νμ€ν¬λ₯Ό μ°Ύμ νμ¬ λ¨κ³λΆν° μ¬κ°ν©λλ€.","sSkBkReport":"κ°λ°μμκ² λ²κ·Έ\xb7κ°μ νΌλλ°±μ μ μ‘ν©λλ€.","sSkBkInstruction":"μ§μΉ¨ ν
νλ¦Ώμ μμ±\xb7νΈμ§\xb7μμ νκ³ ν¬λ¦¬λ΄μ
μ μ°κ²°ν©λλ€.","sSkBkHelp":"μ¬μ© κ°λ₯ν bk-* λͺ
λ Ήμ΄ λͺ©λ‘κ³Ό μ€λͺ
μ νμν©λλ€.","sSkSessionTitle":"μΈμ
볡ꡬ νλ¦","sSkSession1":"/bk-start μ€ν μ λΉνμ± 2μκ° μ΄κ³Ό νμ€ν¬λ₯Ό μλμΌλ‘ timed_out μ²λ¦¬ν©λλ€.","sSkSession2":"running\xb7timed_out νμ€ν¬κ° μμΌλ©΄ μ΄μ΄μ μ§ν / μ’
λ£νκ³ μλ‘ μμ / μ νμ€ν¬ μμ(κΈ°μ‘΄ μ μ§) μ€ μ νν μ μμ΅λλ€.","sSkSession3":"μ¬λ¬ κ±΄μ΄ μμΌλ©΄ κ°μ₯ μ΅κ·Ό νμ€ν¬λ₯Ό κΈ°μ€μΌλ‘ μ νμ§κ° μ μλ©λλ€.","sSkInterruptTitle":"μ€λ¨ μ²λ¦¬","sSkInterrupt1":"μ€ν μ€ \'μ€λ¨\', \'stop\', \'κ·Έλ§\' λ±μ μ
λ ₯νλ©΄ μ€λ¨ λ€μ΄μΌλ‘κ·Έκ° λνλ©λλ€.","sSkInterrupt2":"μΌμ μ€μ§ β νμ€ν¬λ₯Ό running μνλ‘ λκ³ λμ€μ μ΄μ΄μ μ§νν μ μμ΅λλ€.","sSkInterrupt3":"νμ€ν¬ μ’
λ£ β complete_taskλ₯Ό νΈμΆν΄ νμ€ν 리μ \'μ’
λ£λ¨\'μΌλ‘ κΈ°λ‘ν©λλ€.","s4TimedOut":"μκ° μ΄κ³Ό","s4TimedOutDesc":"2μκ° μ΄μ νλμ΄ μμΌλ©΄ μλμΌλ‘ μ νλ©λλ€. /bk-startλ‘ μ¬κ°νκ±°λ μ’
λ£ν μ μμ΅λλ€.","s4FeedbackTitle":"νΌλλ°± μλ² μ΄","s4FeedbackDesc":"λͺ¨λ λ¨κ³κ° μλ£λλ©΄ μμ΄μ νΈκ° νΌλλ°± μ€λ¬Έμ μ§νν λ€ νμ€ν¬λ₯Ό μλ£ μ²λ¦¬ν©λλ€. κ°λ¨ν νμ κ³Ό μ견μΌλ‘ μν¬νλ‘ κ°μ μ νμ©λ©λλ€.","s5RewindTitle":"λκ°κΈ°(Rewind)","s5RewindDesc":"νμ€ν¬ μμΈ μΌμͺ½ νλ¨μ λκ°κΈ° λ²νΌμ λλ₯΄λ©΄ νμ¬ λ¨κ³λ₯Ό μ·¨μνκ³ μ΄μ λ¨κ³λΆν° λ€μ μ€νν©λλ€. κ²°κ³Όκ° λ§μμ λ€μ§ μμ λ μ¬μ©ν©λλ€.","s5CommentTitle":"μ½λ©νΈ","s5CommentDesc":"κ° λ¨κ³ κ²°κ³Ό μλμ μ½λ©νΈλ₯Ό λ¨κΈΈ μ μμ΅λλ€. μμ΄μ νΈμ μ¬λ λͺ¨λ μ½λ©νΈλ₯Ό μμ±ν μ μμ΄, λ¨κ³λ³ νΌλλ°±κ³Ό λ§₯λ½μ κΈ°λ‘νλ λ° μ μ©ν©λλ€.","s5TimedOutTitle":"timed_out μν","s5TimedOutDesc":"2μκ° μ΄μ νλμ΄ μλ running νμ€ν¬λ μλμΌλ‘ timed_outμΌλ‘ μ νλ©λλ€. λͺ©λ‘μμ ν©μ λ°°μ§λ‘ νμλλ©°, /bk-startλ‘ μ¬κ°νκ±°λ μμ ν μ’
λ£ν μ μμ΅λλ€.","s7ToolSetVisualHtml":"VS Gateμ λ λλ§ν HTML UIλ₯Ό λ±λ‘ν©λλ€.","s7ToolGetWebResponse":"μ¬μ©μμ VS ν΄λ¦ κ²°κ³Όλ₯Ό ν΄λ§ν©λλ€.","s7ToolSaveFeedback":"νμ€ν¬ μλ£ μ νΌλλ°±μ μλ²μ μ μ₯ν©λλ€.","s7ToolSubmitReport":"κ°λ°μ νΌλλ°± 리ν¬νΈλ₯Ό μλ²λ‘ μ μ‘ν©λλ€.","s7ToolListWorkflows":"λ±λ‘λ μν¬νλ‘ λͺ©λ‘μ μ‘°νν©λλ€.","s7ToolListMyGroups":"λ΄ κ·Έλ£Ή λͺ©λ‘μ μ‘°νν©λλ€.","s7FeedbackTitle":"μλ£ νλ‘μ°","s7FeedbackDesc":"μν¬νλ‘ λ§μ§λ§ λ¨κ³κ° λλλ©΄ μμ΄μ νΈλ save_feedback β complete_task μμλ‘ μ€νν©λλ€. νΌλλ°± μμ΄ λ°λ‘ complete_taskλ₯Ό λΆλ₯΄μ§ μμ΅λλ€."},"nav":{"workflows":"μν¬νλ‘","tasks":"νμ€ν¬","credentials":"ν¬λ¦¬λ΄μ
","instructions":"μ§μΉ¨","tutorial":"νν 리μΌ","apiDocs":"API λ¬Έμ","marketplace":"λ§μΌνλ μ΄μ€","settings":"μ€μ ","main":"λ©μΈ","resources":"리μμ€","home":"ν","new":"μλ‘ λ§λ€κΈ°","github":"GitHub μ μ₯μ","license":"λΌμ΄μΌμ€","support":"κ°λ°μ νμ","version":"λ²μ ","updateAvailable":"μ
λ°μ΄νΈ νμ","versionDialogTitle":"BlueKiwi λ²μ ","versionDialogDescUpdate":"μ λ²μ μ΄ μμ΅λλ€. νμ¬ λ²μ μ v{current}μ΄κ³ , μ΅μ 릴리μ€λ v{latest}μ
λλ€.","versionDialogDescCurrent":"νμ¬ μλ €μ§ μ΅μ λ²μ v{current}μ μ¬μ© μ€μ
λλ€.","updateMethodCliTitle":"CLIλ‘ μ€μΉν κ²½μ°","updateMethodNpmTitle":"μ μ μ¬μ€μΉλ₯Ό μν κ²½μ°","updateMethodDockerTitle":"Docker Composeλ‘ μ΄μ μ€μΈ κ²½μ°","viewReleaseNotes":"λ¦΄λ¦¬μ€ λ
ΈνΈ 보기"},"auth":{"login":"λ‘κ·ΈμΈ","logout":"λ‘κ·Έμμ","email":"μ΄λ©μΌ","password":"λΉλ°λ²νΈ","emailPlaceholder":"you@example.com","passwordPlaceholder":"β’β’β’β’β’β’β’β’","logoAlt":"BlueKiwi λ‘κ³ ","brandTagline":"μμ΄μ νΈ μν¬νλ‘ μμ§","loginButton":"λ‘κ·ΈμΈ","loggingIn":"λ‘κ·ΈμΈ μ€...","noAccount":"κ³μ μ΄ μμΌμ κ°μ?","contactAdmin":"κ΄λ¦¬μμκ² λ¬Έμ","invalidCredentials":"μ΄λ©μΌ λλ λΉλ°λ²νΈκ° μ¬λ°λ₯΄μ§ μμ΅λλ€.","enterBoth":"μ΄λ©μΌκ³Ό λΉλ°λ²νΈλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.","connectionError":"μλ²μ μ°κ²°ν μ μμ΅λλ€.","loginFailed":"λ‘κ·ΈμΈμ μ€ν¨νμ΅λλ€."},"setup":{"title":"첫 λ²μ§Έ κ΄λ¦¬μ κ³μ μ μμ±ν©λλ€","name":"μ΄λ¦","namePlaceholder":"κ΄λ¦¬μ μ΄λ¦","emailPlaceholder":"admin@example.com","passwordPlaceholder":"6μ μ΄μ","confirmPassword":"λΉλ°λ²νΈ νμΈ","confirmPlaceholder":"λΉλ°λ²νΈ λ€μ μ
λ ₯","createButton":"κ΄λ¦¬μ κ³μ μμ±","creating":"μμ± μ€...","superuserNote":"μ΄ κ³μ μ superuser κΆνμΌλ‘ μμ±λ©λλ€","passwordMinLength":"λΉλ°λ²νΈλ 6μ μ΄μμ΄μ΄μΌ ν©λλ€.","passwordMismatch":"λΉλ°λ²νΈκ° μΌμΉνμ§ μμ΅λλ€.","setupFailed":"μ€μ μ μ€ν¨νμ΅λλ€.","serverError":"μλ² μ€λ₯ ({status}). λ‘κ·Έ νμΈ: ~/.bluekiwi/quickstart/<profile>/logs/app.log"},"changePassword":{"title":"λΉλ°λ²νΈλ₯Ό λ³κ²½ν΄μ£ΌμΈμ","currentPassword":"νμ¬ λΉλ°λ²νΈ","currentPasswordPlaceholder":"νμ¬ λΉλ°λ²νΈ","newPassword":"μ λΉλ°λ²νΈ","newPasswordPlaceholder":"μ΅μ 6μ μ΄μ","confirmNewPassword":"μ λΉλ°λ²νΈ νμΈ","confirmNewPasswordPlaceholder":"μ λΉλ°λ²νΈ λ€μ μ
λ ₯","changeButton":"λΉλ°λ²νΈ λ³κ²½","changing":"λ³κ²½ μ€...","minLength":"μ λΉλ°λ²νΈλ μ΅μ 6μ μ΄μμ΄μ΄μΌ ν©λλ€.","mismatch":"μ λΉλ°λ²νΈκ° μΌμΉνμ§ μμ΅λλ€.","changeFailed":"λΉλ°λ²νΈ λ³κ²½μ μ€ν¨νμ΅λλ€.","changed":"λΉλ°λ²νΈκ° λ³κ²½λμμ΅λλ€."},"invite":{"title":"BlueKiwiμ μ΄λλμμ΅λλ€","body":"{email}λ, {role} κΆνμΌλ‘ μν¬μ€νμ΄μ€μ μ°Έμ¬νμΈμ.","username":"μ¬μ©μλͺ
","password":"λΉλ°λ²νΈ","accept":"μλ½νκ³ κ³μ λ§λ€κΈ°","success":{"title":"κ³μ μμ± μλ£","installHint":"CLIμμ μλ λͺ
λ Ήμ΄λ‘ BlueKiwiλ₯Ό μ°κ²°νμΈμ","goLogin":"λ‘κ·ΈμΈ νμ΄μ§λ‘"},"error":{"not_found":"μ΄λ λ§ν¬λ₯Ό μ°Ύμ μ μμ΅λλ€","expired":"μ΄λ λ§ν¬κ° λ§λ£λμμ΅λλ€","already_accepted":"μ΄λ―Έ μ¬μ©λ μ΄λ λ§ν¬μ
λλ€","network_error":"μλ²μ ν΅μ ν μ μμ΅λλ€"}},"dashboard":{"title":"λμ보λ","subtitle":"μν¬νλ‘μ νμ€ν¬ νν©μ νλμ νμΈν©λλ€.","workflows":"μν¬νλ‘","activeTasks":"μ§ν μ€","completedTasks":"μλ£","teamMembers":"ν λ©€λ²","registeredWorkflows":"λ±λ‘λ μν¬νλ‘","active":"νμ± νμ€ν¬","completed":"μλ£λ νμ€ν¬","registeredUsers":"λ±λ‘λ μ¬μ©μ","recentActivity":"μ΅κ·Ό νλ","noActivity":"μμ§ νλ κΈ°λ‘μ΄ μμ΅λλ€.","activeTasksList":"μ§ν μ€μΈ νμ€ν¬","viewAll":"μ 체 보기","noActiveTasks":"μ§ν μ€μΈ νμ€ν¬κ° μμ΅λλ€.","quickLinks":"λ°λ‘κ°κΈ°","workflowManagement":"μν¬νλ‘ κ΄λ¦¬","workflowManagementDesc":"μν¬νλ‘ μμ± λ° νΈμ§","taskTitle":"νμ€ν¬","taskDesc":"μ€ν μν μ€μκ° νμΈ","tutorialTitle":"νν 리μΌ","tutorialDesc":"BlueKiwi μ¬μ© κ°μ΄λ","apiDocsTitle":"API λ¬Έμ","apiDocsDesc":"REST API λ νΌλ°μ€","timeJustNow":"λ°©κΈ μ ","timeMinutesAgo":"{n}λΆ μ ","timeHoursAgo":"{n}μκ° μ ","timeDaysAgo":"{n}μΌ μ "},"workflows":{"title":"μν¬νλ‘","newWorkflow":"μ μν¬νλ‘","detailTitle":"μν¬νλ‘ μμΈ","edit":"μμ ","export":"λ΄λ³΄λ΄κΈ°","import":"κ°μ Έμ€κΈ°","exportTitle":"μν¬νλ‘ λ΄λ³΄λ΄κΈ°","importTitle":"μν¬νλ‘ κ°μ Έμ€κΈ°","exportDescription":"μ΄ μν¬νλ‘λ₯Ό JSON νμΌλ‘ μ μ₯ν©λλ€.","importDescription":"JSON νμΌλ‘ μ μ₯λ μν¬νλ‘λ₯Ό κ°μ Έμ΅λλ€.","history":"μ€ν μ΄λ ₯","nodesTab":"λ
Έλ","meta":"λ©νλ°μ΄ν°","version":"λ²μ ","nodeCount":"λ
Έλ μ","nodeStep":"μ€ν
{step}","updatedAt":"μμ λ¨","run":"μ€ν","runFailed":"μν¬νλ‘ μ€νμ μμνμ§ λͺ»νμ΅λλ€.","runStarted":"νμ€ν¬ #{id} μ€νμ μμνμ΅λλ€.","invalidId":"μ ν¨νμ§ μμ μν¬νλ‘ IDμ
λλ€.","notFound":"μν¬νλ‘λ₯Ό μ°Ύμ μ μμ΅λλ€.","backToList":"λͺ©λ‘μΌλ‘ λμκ°κΈ°","noDescription":"μ€λͺ
μ΄ μμ΅λλ€.","noInstruction":"μ°κ²°λ μ§μΉ¨μ΄ μμ΅λλ€.","runningTasks":"μ΄ μν¬νλ‘μ νμ€ν¬ {count}κ°","quickTasksTitle":"μ°κ²°λ νμ€ν¬","quickTasksDesc":"μ΅κ·Ό μ€νκ³Ό νμ¬ μ§ν μνλ₯Ό λ°λ‘ νμΈν©λλ€.","recentTasks":"μ΅κ·Ό μ€ν","totalTasksLabel":"μ 체","viewAllTasks":"μ 체 νμ€ν¬ 보기","openHistory":"μ€ν μ΄λ ₯ μ΄κΈ°","noTasks":"μ΄ μν¬νλ‘λ‘ μ€νλ νμ€ν¬κ° μμ΅λλ€.","noNodes":"λ±λ‘λ λ
Έλκ° μμ΅λλ€.","noNodesDesc":"λ
Έλλ₯Ό μΆκ°νλ©΄ μ¬κΈ°μμ μ 체 ꡬμ±μ νμΈν μ μμ΅λλ€.","metaId":"μν¬νλ‘ ID","metaVersion":"λ²μ ","metaParent":"μλ³Έ μν¬νλ‘","metaNoParent":"μμ","metaContract":"νκ° κ³μ½","noEvaluation":"μ€μ λ νκ° κ³μ½μ΄ μμ΅λλ€.","empty":"μν¬νλ‘κ° μμ΅λλ€","emptyDesc":"첫 λ²μ§Έ μν¬νλ‘λ₯Ό λ§λ€μ΄λ³΄μΈμ","deleteConfirm":"μν¬νλ‘ μμ ","deleteDesc":"μ(λ₯Ό) μμ νμκ² μ΅λκΉ? μ΄ μμ
μ λλ릴 μ μμ΅λλ€.","deleted":"μν¬νλ‘κ° μμ λμμ΅λλ€.","duplicated":"μν¬νλ‘κ° λ³΅μ λμμ΅λλ€.","nodes":"κ° λ
Έλ","saved":"μν¬νλ‘κ° μ μ₯λμμ΅λλ€.","copy":"볡μ¬","versionsTab":"λ²μ ","publishNewVersion":"μ λ²μ λ°ν","publishedVersion":"λ°ν μλ£: {version}","publishFailed":"μ λ²μ λ°νμ μ€ν¨νμ΅λλ€.","activeBadge":"νμ±","inactiveBadge":"보κ΄λ¨","draftBadge":"λλννΈ","activate":"νμ±ν","deactivate":"λΉνμ±ν","activated":"λ²μ μ΄ νμ±νλμμ΅λλ€.","deactivated":"λ²μ μ΄ λΉνμ±νλμμ΅λλ€.","activateFailed":"νμ±νμ μ€ν¨νμ΅λλ€.","deactivateFailed":"λΉνμ±νμ μ€ν¨νμ΅λλ€.","versionHistoryTitle":"λ²μ νμ€ν 리","versionHistoryDesc":"κ°μ familyμ λͺ¨λ λ²μ μ νμΈνκ³ νμ¬ μ΄μ μ€μΈ λ²μ μ μ ννμΈμ.","lineage":"리λμ§","lineageDesc":"μμ λ²μ μμ νμλ κ΄κ³λ₯Ό 보μ¬μ€λλ€.","noParent":"μ΅μμ","createdAt":"μμ±","actions":"λμ","currentlyViewing":"νμ¬ λ³΄κΈ°","showArchived":"λ³΄κ΄ λ²μ ν¬ν¨","hideArchived":"λ³΄κ΄ λ²μ μ¨κΈ°κΈ°","inactiveEditWarning":"νμ¬ νμ± λ²μ μ΄ μλλλ€. νΈμ§ λ΄μ©μ in-place μ μ₯λλ©° μ΄μμ λ°μλμ§ μμ΅λλ€.","inactiveStartBlocked":"μ΄ λ²μ μ λΉνμ± μνλΌ νμ€ν¬λ₯Ό μμν μ μμ΅λλ€. λ¨Όμ νμ±ννμΈμ.","pickVersion":"μ€νν λ²μ μ ν","pickVersionDefault":"νμ± λ²μ μ¬μ©","versionInactive409":"μ νν λ²μ μ΄ λΉνμ± μνμ
λλ€.","folders":"ν΄λ","allWorkflows":"μ 체 μν¬νλ‘","results":"κ°μ κ²°κ³Ό","movedToFolder":"μν¬νλ‘λ₯Ό ν΄λλ‘ μ΄λνμ΅λλ€."},"runDialog":{"step1Label":"νμ€ν¬ μ€μ ","step2Label":"λͺ
λ Ήμ΄ νμΈ","step1Desc":"μ΄λ² μ€νμ λν μ 보λ₯Ό μ
λ ₯νμΈμ. λͺ¨λ μ νμ¬νμ
λλ€.","titleLabel":"μ λͺ© (μ ν)","titlePlaceholder":"μ: Q1 λΆμ, 보μ μ κ²...","contextLabel":"μμ² λ΄μ© (μ ν)","contextPlaceholder":"μμ΄μ νΈμκ² μ λ¬ν μμ²μ΄λ μ§μμ¬νμ μ
λ ₯νμΈμ.","nextBtn":"λ€μ","backBtn":"μ΄μ ","toolLabel":"AI λꡬ μ ν","commandLabel":"μΈμ
μ λΆμ¬λ£κΈ°","copyBtn":"볡μ¬","usageHint":"AI μ½λ© μμ΄μ νΈ μΈμ
μ μ λͺ
λ Ήμ΄λ₯Ό λΆμ¬λ£μΌλ©΄ μν¬νλ‘κ° μμλ©λλ€."},"tasks":{"title":"νμ€ν¬","empty":"νμ€ν¬κ° μμ΅λλ€","emptyDesc":"μν¬νλ‘λ₯Ό μ€ννλ©΄ νμ€ν¬κ° μ¬κΈ°μ νμλ©λλ€","all":"μ 체","inProgress":"μ§ν μ€","completed":"μλ£","pending":"λκΈ°","running":"μ€ν μ€","failed":"μ€ν¨","timedOut":"μκ° μ΄κ³Ό","cancelled":"μ€μ§λ¨","rewind":"λλ리기","stopTask":"μ€μ§","closeTask":"μ’
λ£","resumeTask":"μ¬κ°","cancelTask":"μ·¨μ","statusCompletedMessage":"λͺ¨λ λ¨κ³κ° μλ£λμμ΅λλ€.","userInput":"μ¬μ©μ μ
λ ₯","thinking":"μ¬κ³ κ³Όμ ","assistantOutput":"μ΄μμ€ν΄νΈ μΆλ ₯","artifacts":"μν°ν©νΈ","comments":"μ½λ©νΈ","addComment":"μ½λ©νΈ μΆκ°...","send":"μ μ‘","wsRealtime":"μ€μκ° μ
λ°μ΄νΈ","deleteConfirm":"νμ€ν¬ #{id}λ₯Ό μμ νμκ² μ΅λκΉ?","deleteTitle":"νμ€ν¬ μμ ","deleteDescription":"νμ€ν¬ #{id}μ(λ₯Ό) μμ νμκ² μ΅λκΉ? μ΄ μμ
μ μ·¨μν μ μμ΅λλ€.","workflowFallback":"μν¬νλ‘ #{id}","taskFallback":"νμ€ν¬ #{id}","stepLabel":"μ€ν
{step}","stepTitleFallback":"μ€ν
{step}","steps":"steps","taskNotFound":"νμ€ν¬λ₯Ό μ°Ύμ μ μμ΅λλ€.","backToList":"λͺ©λ‘μΌλ‘ λμκ°κΈ°","selectStep":"μμΈ λ΄μ©μ λ³΄λ €λ©΄ μ€ν
μ μ ννμΈμ","hitlPendingApproval":"μ΄ λ¨κ³λ κ³μ μ§ννκΈ° μ μ μΉμΈμ΄ νμν©λλ€.","hitlApprove":"μΉμΈ","hitlApproved":"μΉμΈ μλ£ β μ€νμ΄ κ³μλ©λλ€.","awaitingResponse":"μλ΅ λκΈ° μ€","responseSubmitted":"μλ΅μ΄ μ μΆλμμ΅λλ€","responseSelections":"μ νν νλͺ©","responseComment":"μΆκ° μ½λ©νΈ","responseFields":"μ
λ ₯ν νλ","responseOptionComments":"μ νμ§λ³ μ½λ©νΈ","responseValues":"μ
λ ₯ κ°","responseRanking":"μ°μ μμ","responseMatrix":"λ§€νΈλ¦μ€ λ°°μΉ","typeResponse":"μλ΅μ μ
λ ₯νμΈμ...","viewVisual":"λΉμ£ΌμΌ 보기","selectVisual":"λΉμ£ΌμΌ μ ν","visualSelectHint":"μλ μ΅μ
μ μ νν ν νμΈ λ²νΌμ λλ¬μ£ΌμΈμ.","visualViewer":"λΉμ£ΌμΌ λ·°μ΄","closeVisualViewer":"λ«κΈ°","input":"μ
λ ₯","output":"μΆλ ₯","showPreviousIterations":"μ΄μ λ°λ³΅ {n}κ° λ³΄κΈ°","hidePreviousIterations":"μ΄μ λ°λ³΅ μ¨κΈ°κΈ°","iteration":"λ°λ³΅","latest":"μ΅μ ","defaultAuthor":"μ¬μ©μ"},"settings":{"title":"μ€μ ","profile":"νλ‘ν","apiKeys":"API Keys","teamManagement":"ν κ΄λ¦¬","notifications":"μλ¦Ό","notificationsTitle":"μλ¦Ό μ€μ ","notificationsPlaceholder":"μλ¦Ό μ€μ μ μΆν μ§μλ©λλ€.","notificationsBody":"μ΄λ©μΌ μλ¦Ό, μ¬λ μ°λ λ±μ μλ¦Ό κΈ°λ₯μ΄ μ€λΉ μ€μ
λλ€.","name":"μ΄λ¦","email":"μ΄λ©μΌ","role":"μν ","changePassword":"λΉλ°λ²νΈ λ³κ²½","saved":"νλ‘νμ΄ μ μ₯λμμ΅λλ€.","saveFailed":"μ μ₯μ μ€ν¨νμ΅λλ€.","profileInfo":"νλ‘ν μ 보","profileDesc":"κ³μ μ κΈ°λ³Έ μ 보λ₯Ό νμΈνκ³ μμ ν μ μμ΅λλ€.","namePlaceholder":"μ΄λ¦μ μ
λ ₯νμΈμ","nameRequired":"μ΄λ¦μ μ
λ ₯ν΄μ£ΌμΈμ.","saving":"μ μ₯ μ€...","userLoadFailed":"μ¬μ©μ μ 보λ₯Ό λΆλ¬μ¬ μ μμ΅λλ€."},"apiKeys":{"title":"API Keys","description":"API νΈμΆμ μ¬μ©ν ν€λ₯Ό κ΄λ¦¬ν©λλ€.","keyName":"μ΄λ¦","owner":"μμ μ","keyPrefix":"ν€ μ λμ¬","expiresAt":"λ§λ£μΌ","status":"μν","action":"μ‘μ
","revoke":"νκΈ°","revoked":"νκΈ°λ¨","activeStatus":"νμ±","none":"μμ","noName":"(μ΄λ¦ μμ)","newKey":"μ API Key μμ±","newKeyTitle":"μ API Key μμ±","newKeyDesc":"API Keyμ μ΄λ¦μ μ
λ ₯νμΈμ.","namePlaceholder":"μ: production-key","generate":"μμ±","generating":"μμ± μ€...","keyCreated":"API Key μμ± μλ£","keyWarning":"μ΄ ν€λ λ€μ νμλμ§ μμ΅λλ€. μμ ν κ³³μ 볡μ¬ν΄λμΈμ.","cliInitLabel":"CLI μ΄κΈ°ν λͺ
λ Ή","copyCliCommand":"CLI λͺ
λ Ή 볡μ¬","keyWarning2":"* μ΄ ν€λ μ°½μ λ«μΌλ©΄ λ€μ νμΈν μ μμ΅λλ€.","copied":"ν΄λ¦½λ³΄λμ 볡μ¬λμμ΅λλ€.","revokeConfirm":"API Key νκΈ°","revokeDesc":"ν€λ₯Ό νκΈ°νμκ² μ΅λκΉ? μ΄ μμ
μ λλ릴 μ μμ΅λλ€.","revokeSuccess":"API Keyκ° νκΈ°λμμ΅λλ€.","revokeFailed":"API Key νκΈ°μ μ€ν¨νμ΅λλ€.","loadFailed":"API Key λͺ©λ‘μ λΆλ¬μ€λλ° μ€ν¨νμ΅λλ€.","noKeys":"λ±λ‘λ API Keyκ° μμ΅λλ€.","nameRequired":"ν€ μ΄λ¦μ μ
λ ₯ν΄μ£ΌμΈμ.","createFailed":"μμ±μ μ€ν¨νμ΅λλ€.","keyNameLabel":"ν€ μ΄λ¦"},"team":{"title":"ν κ΄λ¦¬","description":"νμμ μ‘°ννκ³ μ΄λν©λλ€.","inviteMember":"νμ μ΄λ","inviteTitle":"νμ μ΄λ","inviteDesc":"μλ‘μ΄ νμμ μ 보λ₯Ό μ
λ ₯νμΈμ.","invite":"μ΄λ","inviting":"μ΄λ μ€...","memberAdded":"νμμ΄ μ΄λλμμ΅λλ€.","addFailed":"μ΄λμ μ€ν¨νμ΅λλ€.","name":"μ΄λ¦","namePlaceholder":"μ΄λ¦","email":"μ΄λ©μΌ","emailPlaceholder":"email@example.com","password":"λΉλ°λ²νΈ","passwordPlaceholder":"μ΄κΈ° λΉλ°λ²νΈ","role":"μν ","roleAdmin":"κ΄λ¦¬μ","roleEditor":"νΈμ§μ","roleViewer":"μ‘°νμ","allFieldsRequired":"λͺ¨λ νλλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.","loadFailed":"λ©€λ² λͺ©λ‘μ λΆλ¬μ€λλ° μ€ν¨νμ΅λλ€.","noMembers":"λ±λ‘λ λ©€λ²κ° μμ΅λλ€.","invitesLoadFailed":"μ΄λ λͺ©λ‘μ λΆλ¬μ€λλ° μ€ν¨νμ΅λλ€.","emailRequired":"μ΄λ©μΌμ μ
λ ₯ν΄μ£ΌμΈμ.","inviteCreated":"μ΄λ λ§ν¬κ° μμ±λμμ΅λλ€.","inviteCreateFailed":"μ΄λ μμ±μ μ€ν¨νμ΅λλ€.","inviteCancelled":"μ΄λκ° μ·¨μλμμ΅λλ€.","inviteCancelFailed":"μ΄λ μ·¨μμ μ€ν¨νμ΅λλ€.","inviteLinkCopied":"μ΄λ λ§ν¬κ° 볡μ¬λμμ΅λλ€.","inviteDescription":"κ³μ μ μ§μ λ§λλ λμ μ΄λ λ§ν¬λ₯Ό 곡μ ν©λλ€.","shareLinkExpires":"μλ λ§ν¬λ₯Ό 곡μ νμΈμ (λ§λ£: {date}):","copyLink":"λ§ν¬ 볡μ¬","creating":"μμ± μ€...","createInvite":"μ΄λ μμ±","members":"νμ","invites":"μ΄λ λͺ©λ‘","noInvites":"μ΄λ μ΄λ ₯μ΄ μμ΅λλ€.","invitePending":"{date}κΉμ§ λκΈ° μ€","inviteAccepted":"{date}μ μλ½λ¨","copyInviteLink":"볡μ¬","permViewWorkflows":"μν¬νλ‘ μ‘°ν","permExecuteWorkflows":"μν¬νλ‘ μ€ν","permCreateEditWorkflows":"μν¬νλ‘ μμ±\xb7μμ ","permDeleteOwnWorkflows":"μν¬νλ‘ μμ (λ³ΈμΈ)","permViewCredentials":"μ격μ¦λͺ
μ‘°ν","permCreateEditCredentials":"μ격μ¦λͺ
μμ±\xb7μμ ","permViewMembers":"νμ μ‘°ν","permManageMembers":"νμ κ΄λ¦¬","permManageFolderShares":"ν΄λ 곡μ κ΄λ¦¬","deleteUser":"μμ ","deleteUserTitle":"νμ μμ ","deleteUserDesc":"μ΄ κ³μ κ³Ό κ΄λ ¨λ λ°μ΄ν°λ₯Ό μ²λ¦¬ν ν μꡬ μμ ν©λλ€. μ΄ μμ
μ λλ릴 μ μμ΅λλ€.","deleteUserMode":"μμ 리μμ€ μ²λ¦¬","deleteUserTransfer":"λ€λ₯Έ μ μ μκ² μ΄μ ","deleteUserDeleteAll":"λͺ¨λ μμ ","deleteUserTransferTo":"μ΄μ λμ","deleteUserSelectTarget":"μ μ μ ν","deleteUserTransferWarning":"μν¬νλ‘, ν΄λ, μ§μΉ¨, ν¬λ λ΄μ
μ΄ μ νν μ μ μκ² μ΄μ λ©λλ€.","deleteUserDeleteAllWarning":"μ΄ μ μ μ μν¬νλ‘, νμ€ν¬, ν΄λ, μ§μΉ¨, ν¬λ λ΄μ
μ΄ λͺ¨λ μμ λ©λλ€.","deleteUserSuccess":"νμμ΄ μμ λμμ΅λλ€.","deleteUserFailed":"νμ μμ μ μ€ν¨νμ΅λλ€.","deleteUserCannotSuperuser":"Superuser κ³μ μ μμ ν μ μμ΅λλ€."},"groups":{"title":"κ·Έλ£Ή κ΄λ¦¬","description":"κ·Έλ£Ήμ λ§λ€κ³ λ©€λ²λ₯Ό κ΄λ¦¬ν©λλ€.","tabLabel":"κ·Έλ£Ή","newGroup":"μ κ·Έλ£Ή","groupName":"κ·Έλ£Ή μ΄λ¦","groupNamePlaceholder":"κ·Έλ£Ή μ΄λ¦ μ
λ ₯","noGroups":"μμ±λ κ·Έλ£Ήμ΄ μμ΅λλ€.","selectGroup":"μ’μΈ‘μμ κ·Έλ£Ήμ μ ννμΈμ.","members":"λ©€λ²","noMembers":"λ©€λ²κ° μμ΅λλ€.","addMember":"λ©€λ² μΆκ°","selectUser":"μ¬μ©μ μ ν","deleteGroup":"κ·Έλ£Ή μμ ","deleteConfirm":"μ΄ κ·Έλ£Ήμ μμ νμκ² μ΅λκΉ?","created":"κ·Έλ£Ήμ΄ μμ±λμμ΅λλ€.","createFailed":"κ·Έλ£Ή μμ±μ μ€ν¨νμ΅λλ€.","memberAdded":"λ©€λ²κ° μΆκ°λμμ΅λλ€.","memberAddFailed":"λ©€λ² μΆκ°μ μ€ν¨νμ΅λλ€.","memberRemoved":"λ©€λ²κ° μ κ±°λμμ΅λλ€.","memberRemoveFailed":"λ©€λ² μ κ±°μ μ€ν¨νμ΅λλ€.","deleted":"κ·Έλ£Ήμ΄ μμ λμμ΅λλ€.","deleteFailed":"κ·Έλ£Ή μμ μ μ€ν¨νμ΅λλ€.","nameRequired":"κ·Έλ£Ή μ΄λ¦μ μ
λ ₯ν΄μ£ΌμΈμ."},"deleteAccount":{"title":"κ³μ μμ ","description":"κ³μ μ μꡬμ μΌλ‘ μμ ν©λλ€. μ΄ μμ
μ λλ릴 μ μμ΅λλ€.","button":"κ³μ μμ ","dialogTitle":"κ³μ μ μμ νμκ² μ΅λκΉ?","dialogDesc":"κ³μ μ΄ μꡬμ μΌλ‘ μμ λ©λλ€. μ΄ μμ
μ λλ릴 μ μμ΅λλ€.","mode":"μμ 리μμ€ μ²λ¦¬","transfer":"λ€λ₯Έ μ μ μκ² μ΄μ ","deleteAll":"λͺ¨λ μμ ","transferTo":"μ΄μ λμ","selectTarget":"μ μ μ ν","transferWarning":"μν¬νλ‘, ν΄λ, μ§μΉ¨, ν¬λ λ΄μ
μ΄ μ νν μ μ μκ² μ΄μ λ©λλ€.","deleteAllWarning":"λͺ¨λ μν¬νλ‘, νμ€ν¬, ν΄λ, μ§μΉ¨, ν¬λ λ΄μ
μ΄ μμ λ©λλ€.","password":"λΉλ°λ²νΈ νμΈ","passwordPlaceholder":"νμ¬ λΉλ°λ²νΈλ₯Ό μ
λ ₯νμΈμ","confirm":"μꡬ μμ ","success":"κ³μ μ΄ μμ λμμ΅λλ€.","failed":"κ³μ μμ μ μ€ν¨νμ΅λλ€.","invalidPassword":"λΉλ°λ²νΈκ° μ¬λ°λ₯΄μ§ μμ΅λλ€."},"editor":{"editWorkflow":"μν¬νλ‘ νΈμ§","newWorkflow":"μ μν¬νλ‘ λ§λ€κΈ°","basicInfo":"κΈ°λ³Έ μ 보","workflowTitle":"μν¬νλ‘ μ λͺ©","workflowTitlePlaceholder":"μν¬νλ‘ μ λͺ©","description":"μ€λͺ
(μ νμ¬ν)","descriptionPlaceholder":"μ€λͺ
(μ ν)","addNode":"λ
Έλ μΆκ°","noNodes":"μμ§ λ
Έλκ° μμ΅λλ€","addFirstNode":"첫 λ²μ§Έ λ
Έλ μΆκ°","noNodesDesc":"μ \'+\' λ²νΌμΌλ‘ λ
Έλλ₯Ό μΆκ°νμΈμ","save":"μ μ₯","saving":"μ μ₯ μ€...","cancel":"μ·¨μ","modify":"μμ ","nodeTypes":"κΈ°λ³Έ λ
Έλ νμ
","savedTemplates":"μ μ₯λ μ§μΉ¨ ν
νλ¦Ώ","action":"Action","actionDesc":"μ§μΉ¨μ μννκ³ κ²°κ³Ό λ³΄κ³ ","gate":"Gate","gateDesc":"μ¬μ©μ μ
λ ₯ λκΈ°","loop":"Loop","loopDesc":"쑰건 μΆ©μ‘±κΉμ§ λ°λ³΅","deleteNode":"λ
Έλ μμ ","nodeTitle":"λ
Έλ μ λͺ©","inlineWrite":"μ§μ μμ±","referenceInstruction":"μ§μΉ¨ μ°Έμ‘°","selectInstruction":"μ§μΉ¨ μ ν...","searchInstruction":"μ§μΉ¨ κ²μ...","createNewInstruction":"+ μ μ§μΉ¨ λ§λ€κΈ°","instructionTitle":"μ§μΉ¨ μ λͺ©","instructionContent":"μ§μΉ¨ λ΄μ©","instructionPlaceholder":"μ§μΉ¨ λ΄μ©μ μ
λ ₯νμΈμ...","noCredential":"ν¬λ¦¬λ΄μ
μμ","loopBackTo":"λλμκ° μ€ν
:","loopStepOption":"μ€ν
{step}{title}","selectStep":"-- μ ν --","auto":"μλ","manual":"μλ","nodes":"λ
Έλ","pickerTitle":"λ
Έλ μΆκ°","pickerDesc":"μΆκ°ν λ
Έλ νμ
λλ μ§μΉ¨ ν
νλ¦Ώμ μ ννμΈμ","searchPlaceholder":"κ²μ...","credentialTitle":"ν¬λ¦¬λ΄μ
","autoAdvanceTitle":"μλ μ§ν","attachments":"μ²¨λΆ νμΌ","uploadFile":"νμΌ μ
λ‘λ"},"credentials":{"title":"ν¬λ¦¬λ΄μ
","newCredential":"μ ν¬λ¦¬λ΄μ
","createCredential":"ν¬λ¦¬λ΄μ
μμ±","editCredential":"ν¬λ¦¬λ΄μ
νΈμ§","serviceNamePlaceholder":"μλΉμ€ μ΄λ¦ (μ: openai, github)","defaultServiceName":"μ μλΉμ€","serviceNameEditHint":"μλΉμ€λͺ
μ λλΈν΄λ¦ν΄ μμ ν μ μμ΅λλ€.","descriptionPlaceholder":"μ€λͺ
(μ ν)","secretsLabel":"Secrets (Key-Value)","footerHint":"μ°κ²° μ 보μ λΉλ°κ°μ μ μ₯ ν μν¬νλ‘μμ λ°λ‘ μ¬μ©ν μ μμ΅λλ€.","secretKeyPlaceholder":"KEY","secretValuePlaceholder":"VALUE","secretValueKeepPlaceholder":"(λΉμΉΈμ΄λ©΄ κΈ°μ‘΄ μ μ§)","deleteConfirm":"μ΄ ν¬λ¦¬λ΄μ
μ μμ νμκ² μ΅λκΉ?","empty":"λ±λ‘λ ν¬λ¦¬λ΄μ
μ΄ μμ΅λλ€.","emptyDescription":"μ μ₯λ λΉλ°κ°κ³Ό μ°κ²° μ 보λ₯Ό κ΄λ¦¬ν©λλ€.","secretCount":"μν¬λ¦Ώ {count}κ°","actionMenu":"ν¬λ¦¬λ΄μ
{service} μ‘μ
λ©λ΄","reveal":"νλ¬Έ 보기","mask":"κ°λ¦¬κΈ°","useOnly":"μ¬μ© μ μ© (νλ¬Έ μ‘°ν λΆκ°)","noAccess":"μ΄ ν¬λ λ΄μ
μ λν μ κ·Ό κΆνμ΄ μμ΅λλ€","accessLevelUse":"μ¬μ©","accessLevelManage":"κ΄λ¦¬"},"folders":{"title":"ν΄λ","new":"μ ν΄λ","myWorkspace":"λ΄ μμ
곡κ°","visibilityPersonal":"κ°μΈ","visibilityGroup":"κ·Έλ£Ή","visibilityPublic":"곡κ°","visibilityInherit":"ν΄λλ°λ¦","visibilityPersonalDesc":"λλ§ λ³Ό μ μμ","visibilityGroupDesc":"μ§μ κ·Έλ£Ήμ 곡μ λ¨","visibilityPublicDesc":"λͺ¨λ μ¬μ©μκ° μ κ·Ό κ°λ₯","visibilityInheritDesc":"μμ ν΄λμ κ³΅κ° λ²μλ₯Ό λ°λ¦
λλ€","visibilitySettings":"κ³΅κ° μ€μ ","shareWith":"곡μ λμ","accessLevelViewer":"μ½κΈ°","accessLevelEditor":"νΈμ§","transferOwnership":"μμ κΆ μ΄μ ","moveTo":"μ΄λ","emptyInFolder":"μ΄ ν΄λμ λ΄μ©μ΄ μμ΅λλ€","inheritedFromParent":"μμλ¨","createFailed":"ν΄λλ₯Ό λ§λ€μ§ λͺ»νμ΅λλ€.","renameFailed":"μ΄λ¦μ λ³κ²½νμ§ λͺ»νμ΅λλ€.","deleteFailed":"ν΄λλ₯Ό μμ νμ§ λͺ»νμ΅λλ€.","namePlaceholder":"ν΄λ μ΄λ¦","addSubfolder":"νμ ν΄λ μΆκ°","rename":"μ΄λ¦ λ³κ²½","systemFolderReadonly":"μμ€ν
ν΄λμ κ³΅κ° λ²μλ λ³κ²½ν μ μμ΅λλ€.","doubleClickToRename":"λλΈν΄λ¦μΌλ‘ μ΄λ¦ λ³κ²½","settingsLabel":"μ€μ "},"visibility":{"settings":"κ³΅κ° μ€μ ","scope":"κ³΅κ° λ²μ","changeFailed":"κ³΅κ° λ²μ λ³κ²½ μ€ν¨","groupAddFailed":"κ·Έλ£Ή μΆκ° μ€ν¨","groupRemoveFailed":"κ·Έλ£Ή μ κ±° μ€ν¨","groupSharing":"κ·Έλ£Ή 곡μ ","noSharedGroups":"곡μ λ κ·Έλ£Ήμ΄ μμ΅λλ€.","noGroupsHint":"μμ±λ κ·Έλ£Ήμ΄ μμ΅λλ€. μ€μ > κ·Έλ£Ήμμ λ¨Όμ λ§λ€μ΄ μ£ΌμΈμ.","allGroupsShared":"λͺ¨λ κ·Έλ£Ήμ΄ μ΄λ―Έ 곡μ λμ΄ μμ΅λλ€.","selectGroup":"κ·Έλ£Ή μ ν","applying":"μ μ© μ€β¦","apply":"μ μ©","followFolder":"ν΄λ λ°λ¦","followFolderDesc":"ν΄λ κ³΅κ° λ²μ μμ"},"ownership":{"owner":"μμ μ","sharedWith":"곡μ λ κ·Έλ£Ή","readOnlyPreview":"μ½κΈ° μ μ© λ―Έλ¦¬λ³΄κΈ° β νΈμ§νλ €λ©΄ μμ μ λλ editor 곡μ κ° νμν©λλ€","cantEdit":"μμ μ λλ editor 곡μ κΆνμ΄ νμν©λλ€","cantDelete":"μμ μλ§ μμ ν μ μμ΅λλ€","publicGateAdmin":"Public 곡κ°λ κ΄λ¦¬μ κΆνμ΄ νμν©λλ€"},"rbacErrors":{"ownershipRequired":"μμ μ κΆνμ΄ νμν©λλ€","visibilityGate":"κ΄λ¦¬μ κΆνμ΄ νμν©λλ€","credentialUseDenied":"μ΄ ν¬λ λ΄μ
μ λν μ¬μ© κΆνμ΄ μμ΅λλ€","credentialRevealDenied":"νλ¬Έ μ‘°ν κΆνμ΄ μμ΅λλ€","folderDepthExceeded":"ν΄λ μ€μ²©μ 2λ¨κ³κΉμ§λ§ κ°λ₯ν©λλ€","folderVisibilityInvalid":"μμ ν΄λλ λΆλͺ¨λ³΄λ€ λ λμ visibilityλ₯Ό κ°μ§ μ μμ΅λλ€","folderShareDenied":"곡μ κ΄λ¦¬ κΆνμ΄ μμ΅λλ€","folderNotEmpty":"λΉμ΄μμ§ μμ ν΄λλ μμ ν μ μμ΅λλ€","instructionInUse":"μ΄ μ§μΉ¨μ {count}κ°μ μν¬νλ‘ λ
Έλμμ μ¬μ© μ€μ΄λΌ μμ ν μ μμ΅λλ€. ν΄λΉ μν¬νλ‘μμ λ¨Όμ μ§μΉ¨μ λΆλ¦¬νμΈμ.","credentialInUse":"μ΄ ν¬λ λ΄μ
μ {count}κ°μ μν¬νλ‘ λ
Έλμμ μ¬μ© μ€μ΄λΌ μμ ν μ μμ΅λλ€. ν΄λΉ μν¬νλ‘μμ λ¨Όμ ν¬λ λ΄μ
μ λΆλ¦¬νμΈμ."},"serverErrors":{"notFound":"μμ²ν 리μμ€λ₯Ό μ°Ύμ μ μμ΅λλ€","unauthorized":"μΈμ¦μ΄ νμν©λλ€","forbidden":"μ κ·Όμ΄ κ±°λΆλμμ΅λλ€","conflict":"μμ²μ΄ νμ¬ μνμ μΆ©λν©λλ€","preconditionFailed":"μ ν μ‘°κ±΄μ΄ μΆ©μ‘±λμ§ μμμ΅λλ€","myWorkspaceMissing":"My Workspaceκ° μμ΅λλ€. κ΄λ¦¬μμκ² λ¬ΈμνμΈμ.","versionInactive":"μ΄ μν¬νλ‘ λ²μ μ λΉνμ± μνμ
λλ€","workflowCredentialSetupRequired":"μ΄ μν¬νλ‘λ ν¬λ λ΄μ
μ€μ μ΄ μλ£λμ΄μΌ μ€νν μ μμ΅λλ€"},"validationErrors":{"generic":"μ
λ ₯κ°μ΄ μ¬λ°λ₯΄μ§ μμ΅λλ€"},"instructionsPage":{"title":"μ§μΉ¨","newInstruction":"μ μ§μΉ¨","editInstruction":"μ§μΉ¨ νΈμ§","createInstruction":"μ§μΉ¨ μμ±","dialogDescription":"μ§μΉ¨ μ λͺ©, λ΄μ©, νκ·Έμ μ°μ μμλ₯Ό νΈμ§ν©λλ€.","newInstructionLabel":"μ μ§μΉ¨","newAgentInstruction":"μλ‘μ΄ μμ΄μ νΈ μ§μΉ¨","editMode":"νΈμ§ λͺ¨λ","createMode":"μμ± λͺ¨λ","titlePlaceholder":"μ§μΉ¨ μ λͺ©","contentPlaceholder":"μ§μΉ¨ λ΄μ©μ μ
λ ₯νμΈμ...","searchPlaceholder":"μ§μΉ¨ κ²μ...","tagsPlaceholder":"νκ·Έ (μΌν ꡬλΆ: 보μ, νμ)","tagInputPlaceholder":"νκ·Έ μ
λ ₯ ν Enter λλ μΌν","tagAddPlaceholder":"νκ·Έ μΆκ°","tagRemove":"νκ·Έ {tag} μ κ±°","priorityPlaceholder":"μ°μ μμ","helperText":"μΉ΄λλ₯Ό ν΄λ¦νκ±°λ λ©λ΄μ νΈμ§ μ‘μ
μΌλ‘ κ°μ λ€μ΄μΌλ‘κ·Έλ₯Ό μ½λλ€.","editorHelper":"λ§ν¬λ€μ΄ λ³Έλ¬Έμ νΈμ§νκ±°λ λ λλ§ κ²°κ³Όλ₯Ό λ°λ‘ λΉκ΅ν μ μμ΅λλ€.","editTab":"νΈμ§","previewTab":"미리보기","splitTab":"λ λ€","markdownEditor":"λ§ν¬λ€μ΄ νΈμ§","renderedPreview":"λ λλ§ λ―Έλ¦¬λ³΄κΈ°","previewPlaceholder":"미리볼 λ§ν¬λ€μ΄ λ΄μ©μ μ
λ ₯νμΈμ.","emptyTitle":"λ±λ‘λ μ§μΉ¨μ΄ μμ΅λλ€.","emptyDescription":"μ¬μ¬μ© κ°λ₯ν μμ΄μ νΈ μ§μΉ¨μ μΆκ°ν΄ μν¬νλ‘μμ λ°λ‘ μ ννμΈμ.","noPreview":"μ§μΉ¨ λ―Έλ¦¬λ³΄κΈ°κ° μμ΅λλ€.","deleteTitle":"μ§μΉ¨μ μμ ν κΉμ?","deleteDescription":"\\"{title}\\"μ μμ ν 볡ꡬν μ μμ΅λλ€.","inactive":"λΉνμ±","toggleDisable":"λΉνμ±ν","toggleEnable":"νμ±ν","updatedAt":"μμ : {value}","deleteConfirm":"μ λ§ μμ νμκ² μ΅λκΉ?","actionMenu":"μ§μΉ¨ {title} μ‘μ
λ©λ΄","credentialPlaceholder":"ν¬λ¦¬λ΄μ
μ ν","noCredential":"ν¬λ¦¬λ΄μ
μμ","allInstructions":"μ 체 μ§μΉ¨","results":"κ°μ κ²°κ³Ό","movedToFolder":"μ§μΉ¨μ ν΄λλ‘ μ΄λνμ΅λλ€."},"commandPalette":{"search":"λͺ
λ Ήμ΄ κ²μ...","noResults":"κ²°κ³Όκ° μμ΅λλ€.","navigate":"μ΄λ","actions":"μ‘μ
","newWorkflow":"μ μν¬νλ‘"}}'),en:JSON.parse('{"common":{"save":"Save","cancel":"Cancel","delete":"Delete","edit":"Edit","preview":"Preview","all":"All","duplicate":"Duplicate","create":"Create","add":"Add","close":"Close","loading":"Loading...","confirm":"Confirm","search":"Search...","noResults":"No results","deleteFailed":"Failed to delete.","listView":"List view","gridView":"Grid view","copy":"Copy"},"tutorial":{"heroEyebrow":"User manual for AI coding tools like Claude and Codex","tabOverview":"Overview","tabGuides":"Practical Guides","guidesBack":"β Back to list","guidesLoading":"Loading...","guidesEmpty":"No guides available.","tryWorkflowAdd":"Add this workflow to my workspace","tryWorkflowLoading":"Loading workflow...","heroTitle":"The shortest path to building workflows","heroDesc":"A guide to quickly learn the real workflow: writing instructions, assembling workflows, executing, and reviewing results in BlueKiwi.","navStart":"Getting Started","navInstructions":"Create Instructions","navWorkflows":"Create Workflows","navExecute":"Execute","navMonitor":"Check Tasks","navExample":"Practical Example","navMcpLoop":"MCP Automation","navTips":"Tips","s1Intro":"The basic flow of BlueKiwi is simple. First create instructions, place them in a workflow, then check execution results on the tasks page.","s1Screens":"Key Pages","s1InstructionsDesc":"Write and manage instructions.","s1WorkflowsDesc":"Design execution sequences.","s1TasksDesc":"Check execution results and status.","s1CredentialsDesc":"Manage external service credentials.","s1AttachmentsTitle":"Node Attachments","s1AttachmentsDesc":"Attach scripts, reference docs, and config files to workflow nodes. Agents automatically download needed attachments during execution.","s1Order":"Recommended order","s1Order1":"1. Define work units in Instructions first.","s1Order2":"2. Assemble the execution order in Workflows.","s1Order3":"3. Connect credentials if needed.","s1Order4":"4. Check progress and results in Tasks after execution.","s1WhenToUse":"What tasks are good for BlueKiwi","s1Use1":"Tasks that require repeating the same review procedures","s1Use2":"Multi-step tasks needing human approval or input midway","s1Use3":"Tasks where execution process and results need to be tracked later","s1FoldersTitle":"Folders & Visibility","s1FoldersDesc":"Workflows and instructions are organized in folders. Clicking a folder in the sidebar also shows items from its subfolders.","s1VisPersonal":"Personal β Only you can see it.","s1VisGroup":"Group β Shared with your group members.","s1VisPublic":"Public β Visible to all users.","s1VisInherit":"Inherit β Follows the parent folder\'s visibility.","s1VisTip":"You can quickly check visibility by the icon next to each folder.","s2Intro":"Instructions are the smallest unit of a workflow. It\'s best to have a single purpose and a single expected result per instruction.","s2Good":"Good instruction example","s2GoodText":"Review the credential card list, check for duplicate service names and empty descriptions, and organize findings in a table.","s2Bad":"Instruction to avoid","s2BadText":"Review the entire system and fix everything as needed.","s2Tips":"Tips for writing good instructions","s2Tip1":"Write what to produce before writing what to judge.","s2Tip2":"Use specific criteria instead of vague expressions. e.g., \'no duplicate service names\' instead of \'make it look nice\'.","s2Tip3":"Specify the output format. e.g., bullet list, table, summary paragraph, file path.","s3Intro":"A workflow is a blueprint that connects instructions in order. Rather than adding more nodes, deciding where to place approval and repetition points is more important.","s3NodeTypes":"Understanding node types","s3ActionDesc":"A standard execution step that runs automatically.","s3GateDesc":"An approval step that requires user confirmation or response.","s3LoopDesc":"A step that repeats until a condition is met.","s3Recommended":"Recommended structure for beginners","s3Rec1":"1. Action: Collect current status.","s3Rec2":"2. Action: Organize issues and improvement points.","s3Rec3":"3. Gate: User confirms the direction.","s3Rec4":"4. Action: Produce deliverables in the confirmed direction.","s4Intro":"Clicking the Run button on the workflow detail opens a 2-step dialog. Enter a title and context, then select your AI tool (Claude Code, Codex CLI, etc.) to generate a ready-to-paste command. Paste that command into your agent to create and execute the task.","s4PreCheck":"Things to check before execution","s4Pre1":"If a step requires credentials, verify they are connected first.","s4Pre2":"If there are loop steps, ensure the exit condition is clear.","s4Pre3":"If there are approval steps, decide who will respond.","s4HitlTitle":"Responding to approval steps (HITL)","s4HitlDesc":"When a Gate node has HITL (Human-in-the-Loop) enabled, the agent waits for your approval after completing its work.","s4Hitl1":"An \'Awaiting Approval\' indicator appears in the task detail.","s4Hitl2":"Review the result and click the approve button to proceed.","s4Hitl3":"If the result is insufficient, use rewind to re-execute from a previous step.","s4StatusTitle":"Common statuses during execution","s4Running":"Running","s4RunningDesc":"The current step is in progress and new logs keep accumulating.","s4Waiting":"Waiting","s4WaitingDesc":"Waiting for user response or external conditions.","s4Failed":"Failed","s4FailedDesc":"Check the cause and re-execute or rewind if needed.","s5Intro":"On the tasks page, you switch between list and detail views. The list is for a quick overview; the detail is for deep-diving into a single execution.","s5ListTitle":"What to see in the list view","s5List1":"Which workflow generated the task","s5List2":"Current status and progress","s5List3":"What result came from the most recent step","s5DetailTitle":"What to see in the detail view","s5Detail1":"Left timeline: which steps are completed","s5Detail2":"Right result panel: deliverables, structured output, comments","s5Detail3":"For loop steps: difference between previous and latest iterations","s6Intro":"For first-time users, following a real operational flow is much easier than abstract explanations. Below is the most realistic example of creating a UI review workflow.","s6Title":"Try it: Credential card review workflow","s6Step1Title":"Step 1. Create 3 instructions","s6Step1_1":"Review the current credential card UI and list issues","s6Step1_2":"Organize issues by importance and suggest fix priorities","s6Step1_3":"Re-review after fixes and summarize remaining issues","s6Step2Title":"Step 2. Assemble the workflow","s6Step2_1":"1. Action: Review current status","s6Step2_2":"2. Gate: User confirms what to fix first","s6Step2_3":"3. Action: Organize fix proposals in the chosen direction","s6Step2_4":"4. Loop: Re-review after fixes and decide whether to end","s6Step3Title":"Step 3. Write the task context like this","s6Step3Desc":"It\'s better to be specific in the task context.","s6Step3Example":"Review the credential page card UI. Focus on duplicate service name display, action menu placement, description text density, and edit entry method, then organize fix priorities.","s6Step4Title":"Step 4. What to check in tasks after execution","s6Step4_1":"1. Quickly check which workflow is in which state in the list.","s6Step4_2":"2. Read each step\'s result and comments in the detail view.","s6Step4_3":"3. Respond immediately when a Gate step appears to continue the flow.","s6Step4_4":"4. If unsatisfied with results, rewind and proceed again.","s7Title":"MCP Integration","s7Intro":"Connecting the BlueKiwi MCP server to your AI tool automates workflow execution. The agent performs what a human would do in the web UI.","s7SetupTitle":"Connect the MCP server","s7Setup1":"Install the CLI with npm install -g bluekiwi.","s7Setup2":"Copy the token from the invite link sent by the admin.","s7Setup3":"Complete invite-based setup with bluekiwi accept <token> -s <serverURL>.","s7Setup4":"If you already have an API key, run bluekiwi init -p <profile> -s <serverURL> -k <apiKey> to connect directly or refresh MCP settings.","s7Setup5":"Run bluekiwi status to verify the active profile and connection.","s7ToolsTitle":"Key MCP tools","s7ToolStartWorkflow":"Start a new task from a workflow ID.","s7ToolAdvance":"Get the next step\'s instruction information.","s7ToolExecuteStep":"Submit the execution result for the current step.","s7ToolRequestApproval":"Request human approval at a HITL step.","s7ToolCompleteTask":"Mark the task as complete when all steps are done.","s7ToolRewind":"Rewind to a previous step to re-execute.","s7ToolHeartbeat":"Report progress in real-time during execution.","s7ToolListTasks":"List running or completed tasks.","s7ToolListAttachments":"List files attached to a workflow node.","s7ToolGetAttachment":"Download attachment content.","s7ToolUploadAttachment":"Upload a file to a workflow node.","s7FlowTitle":"Basic execution flow","s7Flow1":"1. start_workflow β Create task","s7Flow2":"2. advance β Receive current step instruction","s7Flow3":"3. execute_step β Submit result","s7Flow4":"4. Repeat 2-3. At HITL steps, call request_approval and wait for human approval","s7Flow5":"5. complete_task β Finish task","s7AutoTitle":"Auto-generation & self-improvement","s7AutoDesc":"With MCP, you can also auto-generate instructions and workflows, or design loops that analyze execution results and improve them incrementally.","s7Auto1":"Auto-derive similar workflow variants.","s7Auto2":"Analyze task logs to find frequently stuck steps.","s7Auto3":"Create improved instruction versions and compare results.","s8Tip1Title":"Start short","s8Tip1Desc":"It\'s more stable to first succeed with a short workflow of 3-4 steps, then gradually add approval or loop steps.","s8Tip2Title":"Unify result formats","s8Tip2Desc":"If instructions of the same type always use the same result format, it becomes much easier to read and compare task logs later.","s8Tip3Title":"Use Gates only where necessary","s8Tip3Desc":"Unless user response is truly needed for decision-making, ending with an Action is better for execution speed and usability.","s8Tip4Title":"Use specific names","s8Tip4Desc":"The more specific the workflow title, instruction title, and task context, the easier it is to read context from the list and detail breadcrumbs.","s8CtaTitle":"To get started right away","s8CtaDesc":"First create work units in Instructions, then assemble the sequence in Workflows. Results can be checked immediately in Tasks.","s8CtaGoal":"Recommended first goal:","s8CtaGoal1":"UI review workflow","s8CtaGoal2":"Document review workflow","navVS":"Visual Selection","navSkills":"Skill Commands","sVsIntro":"Enable visual_selection on a Gate node and the agent renders an HTML selection UI directly. The user clicks a button to respond β no typing required, and the workflow continues instantly.","sVsHowTitle":"How it works","sVsHow1":"When the agent reaches a Gate step, it writes bk-* component HTML.","sVsHow2":"A popup opens automatically on the task detail page.","sVsHow3":"The user clicks their choice and confirms.","sVsHow4":"The selection is sent back to the agent and the next step begins.","sVsCompTitle":"Key components","sVsDemoOptionsLabel":"bk-options β single-select cards (A/B/C)","sVsDemoChecklistLabel":"bk-checklist β multi-select","sVsDemoSliderLabel":"bk-slider β numeric input","sVsMoreTitle":"Other components","sVsMore1":"bk-cards β image card selection (for choosing layouts or chart types)","sVsMore2":"bk-ranking β drag-to-rank sorting","sVsMore3":"bk-matrix β 2\xd72 importance/urgency placement","sVsMore4":"bk-code-compare β compare two versions of code","sVsMore5":"bk-split, bk-pros-cons, bk-mockup, bk-timeline β comparison and review layouts","sVsTip":"During bk-design or bk-start execution, the agent auto-generates VS UIs at Gate nodes. Just set visual_selection: true on the workflow node β no extra configuration needed.","sSkIntro":"Beyond the web UI, BlueKiwi can be used directly from your AI coding tool via slash commands (/skill). Skills are the fastest and most natural path to running workflows.","sSkTableTitle":"Skill list","sSkBkStart":"Select a workflow and create/run a task. Also handles resuming and closing interrupted tasks.","sSkBkDesign":"Input a natural-language goal, design the workflow structure, and register it on the server.","sSkBkApprove":"Approve a HITL-pending step or submit a gate response from the CLI.","sSkBkImprove":"Analyze an existing workflow, create an improved version, and run a comparison.","sSkBkNext":"Find the active task and resume execution from the current step.","sSkBkReport":"Send bug reports and improvement feedback to the developer.","sSkBkInstruction":"Create, edit, and delete instruction templates, and link credentials.","sSkBkHelp":"Display all available bk-* commands with descriptions.","sSkSessionTitle":"Session restore flow","sSkSession1":"When /bk-start runs, tasks inactive for over 2 hours are automatically set to timed_out.","sSkSession2":"If there are running or timed_out tasks, you can choose: continue, close and start fresh, or start new while keeping existing.","sSkSession3":"If multiple tasks exist, the most recent one is used as the reference for your choices.","sSkInterruptTitle":"Handling interruptions","sSkInterrupt1":"Typing \'stop\', \'quit\', or similar during execution triggers an interruption dialog.","sSkInterrupt2":"Pause β keep the task in running state to resume later.","sSkInterrupt3":"Close task β calls complete_task and records it as \'closed\' in history.","s4TimedOut":"Timed Out","s4TimedOutDesc":"Automatically set after 2 hours of inactivity. Resume or close the task with /bk-start.","s4FeedbackTitle":"Feedback survey","s4FeedbackDesc":"Once all steps complete, the agent runs a quick feedback survey before marking the task done. A simple rating and comment helps improve the workflow over time.","s5RewindTitle":"Rewind","s5RewindDesc":"Press the rewind button at the bottom-left of the task detail to cancel the current step and re-run from the previous one. Use it when you\'re not satisfied with a result.","s5CommentTitle":"Comments","s5CommentDesc":"You can leave a comment below any step result. Both agents and humans can write comments, making it useful for recording per-step feedback and context.","s5TimedOutTitle":"timed_out status","s5TimedOutDesc":"Running tasks inactive for 2+ hours are automatically set to timed_out. They appear with a yellow badge in the list and can be resumed or closed with /bk-start.","s7ToolSetVisualHtml":"Register the HTML UI to render at a VS Gate node.","s7ToolGetWebResponse":"Poll for the user\'s VS click result.","s7ToolSaveFeedback":"Save feedback to the server before completing the task.","s7ToolSubmitReport":"Submit a developer feedback report to the server.","s7ToolListWorkflows":"List registered workflows.","s7ToolListMyGroups":"List the current user\'s groups.","s7FeedbackTitle":"Completion flow","s7FeedbackDesc":"When the last workflow step finishes, the agent runs save_feedback β complete_task in order. It never calls complete_task directly without collecting feedback first."},"nav":{"workflows":"Workflows","tasks":"Tasks","credentials":"Credentials","instructions":"Instructions","tutorial":"Tutorial","apiDocs":"API Docs","marketplace":"Marketplace","settings":"Settings","main":"Main","resources":"Resources","home":"Home","new":"New","github":"GitHub Repository","license":"License","support":"Support Developer","version":"Version","updateAvailable":"Update available","versionDialogTitle":"BlueKiwi version","versionDialogDescUpdate":"A newer version is available. You are on v{current}, and the latest release is v{latest}.","versionDialogDescCurrent":"You are using the latest known version: v{current}.","updateMethodCliTitle":"If you installed the CLI","updateMethodNpmTitle":"If you want to reinstall globally","updateMethodDockerTitle":"If you run BlueKiwi with Docker Compose","viewReleaseNotes":"View release notes"},"auth":{"login":"Login","logout":"Logout","email":"Email","password":"Password","emailPlaceholder":"you@example.com","passwordPlaceholder":"β’β’β’β’β’β’β’β’","logoAlt":"BlueKiwi logo","brandTagline":"Agent Workflow Engine","loginButton":"Sign in","loggingIn":"Signing in...","noAccount":"Don\'t have an account?","contactAdmin":"Contact administrator","invalidCredentials":"Invalid email or password.","enterBoth":"Please enter email and password.","connectionError":"Cannot connect to server.","loginFailed":"Login failed."},"setup":{"title":"Create your first admin account","name":"Name","namePlaceholder":"Admin name","emailPlaceholder":"admin@example.com","passwordPlaceholder":"6+ characters","confirmPassword":"Confirm password","confirmPlaceholder":"Re-enter password","createButton":"Create admin account","creating":"Creating...","superuserNote":"This account will have superuser privileges","passwordMinLength":"Password must be at least 6 characters.","passwordMismatch":"Passwords do not match.","setupFailed":"Setup failed.","serverError":"Server error ({status}). Check logs: ~/.bluekiwi/quickstart/<profile>/logs/app.log"},"changePassword":{"title":"Please change your password","currentPassword":"Current password","currentPasswordPlaceholder":"Current password","newPassword":"New password","newPasswordPlaceholder":"At least 6 characters","confirmNewPassword":"Confirm new password","confirmNewPasswordPlaceholder":"Re-enter new password","changeButton":"Change password","changing":"Changing...","minLength":"New password must be at least 6 characters.","mismatch":"New passwords do not match.","changeFailed":"Failed to change password.","changed":"Password has been changed."},"invite":{"title":"Youβre invited to BlueKiwi","body":"{email}, join the workspace with {role} access.","username":"Username","password":"Password","accept":"Accept invite and create account","success":{"title":"Account created","installHint":"Connect BlueKiwi in your CLI with this command","goLogin":"Go to login"},"error":{"not_found":"Invite link was not found","expired":"Invite link has expired","already_accepted":"Invite link was already used","network_error":"Could not reach the server"}},"dashboard":{"title":"Dashboard","subtitle":"Overview of workflows and task status.","workflows":"Workflows","activeTasks":"Active","completedTasks":"Completed","teamMembers":"Team Members","registeredWorkflows":"Registered workflows","active":"Active tasks","completed":"Completed tasks","registeredUsers":"Registered users","recentActivity":"Recent Activity","noActivity":"No activity yet.","activeTasksList":"Active Tasks","viewAll":"View all","noActiveTasks":"No active tasks.","quickLinks":"Quick Links","workflowManagement":"Workflow Management","workflowManagementDesc":"Create and edit workflows","taskTitle":"Tasks","taskDesc":"Real-time execution status","tutorialTitle":"Tutorial","tutorialDesc":"BlueKiwi usage guide","apiDocsTitle":"API Docs","apiDocsDesc":"REST API reference","timeJustNow":"just now","timeMinutesAgo":"{n}m ago","timeHoursAgo":"{n}h ago","timeDaysAgo":"{n}d ago"},"workflows":{"title":"Workflows","newWorkflow":"New Workflow","detailTitle":"Workflow Details","edit":"Edit","export":"Export","import":"Import","exportTitle":"Export Workflow","importTitle":"Import Workflow","exportDescription":"Save this workflow as a JSON file.","importDescription":"Import a workflow saved as a JSON file.","history":"History","nodesTab":"Nodes","meta":"Metadata","version":"Version","nodeCount":"Nodes","nodeStep":"Step {step}","updatedAt":"Updated","run":"Run","runFailed":"Failed to start the workflow run.","runStarted":"Started task #{id}.","invalidId":"Invalid workflow ID.","notFound":"Workflow not found.","backToList":"Back to list","noDescription":"No description provided.","noInstruction":"No instruction attached.","runningTasks":"{count} task(s) for this workflow","quickTasksTitle":"Linked Tasks","quickTasksDesc":"See recent runs and current execution status at a glance.","recentTasks":"Recent runs","totalTasksLabel":"Total","viewAllTasks":"View all tasks","openHistory":"Open history","noTasks":"No tasks have been run for this workflow yet.","noNodes":"No nodes added.","noNodesDesc":"Add nodes to inspect the workflow structure here.","metaId":"Workflow ID","metaVersion":"Version","metaParent":"Parent workflow","metaNoParent":"None","metaContract":"Evaluation contract","noEvaluation":"No evaluation contract configured.","empty":"No workflows","emptyDesc":"Create your first workflow","deleteConfirm":"Delete Workflow","deleteDesc":"Are you sure you want to delete this? This action cannot be undone.","deleted":"Workflow has been deleted.","duplicated":"Workflow has been duplicated.","nodes":"nodes","saved":"Workflow has been saved.","copy":"Copy","versionsTab":"Versions","publishNewVersion":"Publish new version","publishedVersion":"Published: {version}","publishFailed":"Failed to publish a new version.","activeBadge":"Active","inactiveBadge":"Archived","draftBadge":"Draft","activate":"Activate","deactivate":"Deactivate","activated":"Version activated.","deactivated":"Version deactivated.","activateFailed":"Failed to activate.","deactivateFailed":"Failed to deactivate.","versionHistoryTitle":"Version History","versionHistoryDesc":"Browse every version in this family and pick which one is currently live.","lineage":"Lineage","lineageDesc":"Parent-derived relationships across versions.","noParent":"Root","createdAt":"Created","actions":"Actions","currentlyViewing":"Current","showArchived":"Include archived","hideArchived":"Hide archived","inactiveEditWarning":"This is not the active version. Changes save in place and won\'t affect production.","inactiveStartBlocked":"This version is archived and cannot start tasks. Activate it first.","pickVersion":"Choose version","pickVersionDefault":"Use active version","versionInactive409":"The selected version is archived.","folders":"Folders","allWorkflows":"All Workflows","results":" results","movedToFolder":"Workflow moved to folder."},"runDialog":{"step1Label":"Task setup","step2Label":"Get command","step1Desc":"Optionally give this run a title and context. Both fields are optional.","titleLabel":"Title (optional)","titlePlaceholder":"e.g. Q1 Analysis, Security Audit...","contextLabel":"Request (optional)","contextPlaceholder":"Describe what you want the agent to accomplish.","nextBtn":"Next","backBtn":"Back","toolLabel":"Select AI tool","commandLabel":"Paste into session","copyBtn":"Copy","usageHint":"Paste the command above into your AI coding agent session to start the workflow."},"tasks":{"title":"Tasks","empty":"No tasks","emptyDesc":"Tasks will appear here when you run a workflow","all":"All","inProgress":"In Progress","completed":"Completed","pending":"Pending","running":"Running","failed":"Failed","timedOut":"Timed Out","cancelled":"Stopped","rewind":"Rewind","stopTask":"Stop","closeTask":"Close","resumeTask":"Resume","cancelTask":"Cancel","statusCompletedMessage":"All steps have been completed.","userInput":"User Input","thinking":"Thinking","assistantOutput":"Assistant Output","artifacts":"Artifacts","comments":"Comments","addComment":"Add a comment...","send":"Send","wsRealtime":"Real-time updates","deleteConfirm":"Delete task #{id}?","deleteTitle":"Delete task","deleteDescription":"Are you sure you want to delete task #{id}? This action cannot be undone.","workflowFallback":"Workflow #{id}","taskFallback":"Task #{id}","stepLabel":"Step {step}","stepTitleFallback":"Step {step}","steps":"steps","taskNotFound":"Task not found.","backToList":"Back to list","selectStep":"Select a step to view details","hitlPendingApproval":"This step requires your approval before proceeding.","hitlApprove":"Approve","hitlApproved":"Approved β execution will continue.","awaitingResponse":"Awaiting response","responseSubmitted":"Response submitted","responseSelections":"Selections","responseComment":"Additional comment","responseFields":"Field inputs","responseOptionComments":"Per-option comments","responseValues":"Values","responseRanking":"Ranking","responseMatrix":"Matrix placement","typeResponse":"Type your response...","viewVisual":"View Visual","selectVisual":"Select Visual","visualSelectHint":"Select an option below, then click Confirm.","visualViewer":"Visual Viewer","closeVisualViewer":"Close","input":"Input","output":"Output","showPreviousIterations":"Show {n} previous iteration(s)","hidePreviousIterations":"Hide previous iterations","iteration":"Iteration","latest":"Latest","defaultAuthor":"User"},"settings":{"title":"Settings","profile":"Profile","apiKeys":"API Keys","teamManagement":"Team Management","notifications":"Notifications","notificationsTitle":"Notification Settings","notificationsPlaceholder":"Notification settings coming soon.","notificationsBody":"Email notifications, Slack integration, and more are in development.","name":"Name","email":"Email","role":"Role","changePassword":"Change Password","saved":"Profile has been saved.","saveFailed":"Failed to save.","profileInfo":"Profile Information","profileDesc":"View and edit your account information.","namePlaceholder":"Enter your name","nameRequired":"Please enter a name.","saving":"Saving...","userLoadFailed":"Failed to load user information."},"apiKeys":{"title":"API Keys","description":"Manage keys for API calls.","keyName":"Name","owner":"Owner","keyPrefix":"Key prefix","expiresAt":"Expires at","status":"Status","action":"Action","revoke":"Revoke","revoked":"Revoked","activeStatus":"Active","none":"None","noName":"(unnamed)","newKey":"New API Key","newKeyTitle":"Create New API Key","newKeyDesc":"Enter a name for the API key.","namePlaceholder":"e.g. production-key","generate":"Create","generating":"Creating...","keyCreated":"API Key Created","keyWarning":"This key will not be shown again. Copy it to a safe place.","cliInitLabel":"CLI setup command","copyCliCommand":"Copy CLI command","keyWarning2":"* This key cannot be viewed again after closing this dialog.","copied":"Copied to clipboard.","revokeConfirm":"Revoke API Key","revokeDesc":"Are you sure you want to revoke this key? This action cannot be undone.","revokeSuccess":"API Key has been revoked.","revokeFailed":"Failed to revoke API Key.","loadFailed":"Failed to load API keys.","noKeys":"No API keys registered.","nameRequired":"Please enter a key name.","createFailed":"Failed to create.","keyNameLabel":"Key name"},"team":{"title":"Team Management","description":"View and invite team members.","inviteMember":"Invite Member","inviteTitle":"Invite Member","inviteDesc":"Enter the new team member\'s information.","invite":"Invite","inviting":"Inviting...","memberAdded":"Team member has been invited.","addFailed":"Failed to invite.","name":"Name","namePlaceholder":"Name","email":"Email","emailPlaceholder":"email@example.com","password":"Password","passwordPlaceholder":"Initial password","role":"Role","roleAdmin":"Admin","roleEditor":"Editor","roleViewer":"Viewer","allFieldsRequired":"Please fill in all fields.","loadFailed":"Failed to load members.","noMembers":"No members registered.","invitesLoadFailed":"Failed to load invites.","emailRequired":"Email is required.","inviteCreated":"Invite link created.","inviteCreateFailed":"Failed to create invite.","inviteCancelled":"Invite cancelled.","inviteCancelFailed":"Failed to cancel invite.","inviteLinkCopied":"Invite link copied.","inviteDescription":"Share an invite link instead of creating the account directly.","shareLinkExpires":"Share this link (expires {date}):","copyLink":"Copy link","creating":"Creating...","createInvite":"Create invite","members":"Team members","invites":"Invites","noInvites":"No invites yet.","invitePending":"Pending until {date}","inviteAccepted":"Accepted {date}","copyInviteLink":"Copy","permViewWorkflows":"View workflows","permExecuteWorkflows":"Execute workflows","permCreateEditWorkflows":"Create/edit workflows","permDeleteOwnWorkflows":"Delete workflows (own)","permViewCredentials":"View credentials","permCreateEditCredentials":"Create/edit credentials","permViewMembers":"View members","permManageMembers":"Manage members","permManageFolderShares":"Manage folder shares","deleteUser":"Delete","deleteUserTitle":"Delete User","deleteUserDesc":"Process related data and permanently delete this account. This action cannot be undone.","deleteUserMode":"Resource handling","deleteUserTransfer":"Transfer to another user","deleteUserDeleteAll":"Delete all","deleteUserTransferTo":"Transfer to","deleteUserSelectTarget":"Select user","deleteUserTransferWarning":"Workflows, folders, instructions, and credentials will be transferred to the selected user.","deleteUserDeleteAllWarning":"All workflows, tasks, folders, instructions, and credentials will be deleted.","deleteUserSuccess":"User has been deleted.","deleteUserFailed":"Failed to delete user.","deleteUserCannotSuperuser":"Superuser accounts cannot be deleted."},"groups":{"title":"Group Management","description":"Create groups and manage their members.","tabLabel":"Groups","newGroup":"New group","groupName":"Group name","groupNamePlaceholder":"Enter group name","noGroups":"No groups created yet.","selectGroup":"Select a group on the left.","members":"Members","noMembers":"No members.","addMember":"Add member","selectUser":"Select user","deleteGroup":"Delete group","deleteConfirm":"Delete this group?","created":"Group created.","createFailed":"Failed to create group.","memberAdded":"Member added.","memberAddFailed":"Failed to add member.","memberRemoved":"Member removed.","memberRemoveFailed":"Failed to remove member.","deleted":"Group deleted.","deleteFailed":"Failed to delete group.","nameRequired":"Please enter a group name."},"deleteAccount":{"title":"Delete Account","description":"Permanently delete your account. This action cannot be undone.","button":"Delete Account","dialogTitle":"Delete your account?","dialogDesc":"Your account will be permanently deleted. This action cannot be undone.","mode":"Resource handling","transfer":"Transfer to another user","deleteAll":"Delete all","transferTo":"Transfer to","selectTarget":"Select user","transferWarning":"Workflows, folders, instructions, and credentials will be transferred to the selected user.","deleteAllWarning":"All workflows, tasks, folders, instructions, and credentials will be deleted.","password":"Confirm password","passwordPlaceholder":"Enter your current password","confirm":"Permanently delete","success":"Account has been deleted.","failed":"Failed to delete account.","invalidPassword":"Password is incorrect."},"editor":{"editWorkflow":"Edit Workflow","newWorkflow":"Create New Workflow","basicInfo":"Basic Info","workflowTitle":"Workflow Title","workflowTitlePlaceholder":"Workflow title","description":"Description (optional)","descriptionPlaceholder":"Description (optional)","addNode":"Add Node","noNodes":"No nodes yet","addFirstNode":"Add first node","noNodesDesc":"Use the \'+\' button above to add nodes","save":"Save","saving":"Saving...","cancel":"Cancel","modify":"Update","nodeTypes":"Base Node Types","savedTemplates":"Saved Instruction Templates","action":"Action","actionDesc":"Execute instructions and report results","gate":"Gate","gateDesc":"Wait for user input","loop":"Loop","loopDesc":"Repeat until condition is met","deleteNode":"Delete node","nodeTitle":"Node title","inlineWrite":"Write inline","referenceInstruction":"Reference instruction","selectInstruction":"Select instruction...","searchInstruction":"Search instructions...","createNewInstruction":"+ Create new instruction","instructionTitle":"Instruction title","instructionContent":"Instruction content","instructionPlaceholder":"Enter instruction content...","noCredential":"No Credential","loopBackTo":"Loop back to step:","loopStepOption":"Step {step}{title}","selectStep":"-- Select --","auto":"Auto","manual":"Manual","nodes":"Nodes","pickerTitle":"Add Node","pickerDesc":"Select a node type or instruction template to add","searchPlaceholder":"Search...","credentialTitle":"Credential","autoAdvanceTitle":"Auto advance","attachments":"Attachments","uploadFile":"Upload file"},"credentials":{"title":"Credentials","newCredential":"New Credential","createCredential":"Create Credential","editCredential":"Edit Credential","serviceNamePlaceholder":"Service name (e.g. openai, github)","defaultServiceName":"New Service","serviceNameEditHint":"Double-click the service name to rename it.","descriptionPlaceholder":"Description (optional)","secretsLabel":"Secrets (Key-Value)","footerHint":"Saved connection details and secrets are available in workflows immediately.","secretKeyPlaceholder":"KEY","secretValuePlaceholder":"VALUE","secretValueKeepPlaceholder":"(leave blank to keep current value)","deleteConfirm":"Delete this credential?","empty":"No credentials registered.","emptyDescription":"Manage saved secrets and connection information.","secretCount":"{count} secret(s)","actionMenu":"Credential {service} action menu","reveal":"Reveal","mask":"Mask","useOnly":"Use only (plaintext hidden)","noAccess":"You do not have access to this credential","accessLevelUse":"Use","accessLevelManage":"Manage"},"folders":{"title":"Folders","new":"New folder","myWorkspace":"My Workspace","visibilityPersonal":"Personal","visibilityGroup":"Group","visibilityPublic":"Public","visibilityInherit":"Inherit","visibilityPersonalDesc":"Only visible to you","visibilityGroupDesc":"Shared with specified groups","visibilityPublicDesc":"Accessible to all users","visibilityInheritDesc":"Inherits visibility from parent folder","visibilitySettings":"Visibility settings","shareWith":"Shared with","accessLevelViewer":"Viewer","accessLevelEditor":"Editor","transferOwnership":"Transfer ownership","moveTo":"Move","emptyInFolder":"This folder is empty","inheritedFromParent":"inherited","createFailed":"Failed to create folder.","renameFailed":"Failed to rename.","deleteFailed":"Failed to delete folder.","namePlaceholder":"Folder name","addSubfolder":"Add subfolder","rename":"Rename","systemFolderReadonly":"System folder visibility cannot be changed.","doubleClickToRename":"Double-click to rename","settingsLabel":"Settings"},"visibility":{"settings":"Visibility","scope":"Visibility","changeFailed":"Failed to change visibility","groupAddFailed":"Failed to add group","groupRemoveFailed":"Failed to remove group","groupSharing":"Group sharing","noSharedGroups":"No groups shared.","noGroupsHint":"No groups created. Create groups in Settings > Groups first.","allGroupsShared":"All groups are already shared.","selectGroup":"Select group","applying":"Applying...","apply":"Apply","followFolder":"Follow folder","followFolderDesc":"Inherits folder visibility"},"ownership":{"owner":"Owner","sharedWith":"Shared groups","readOnlyPreview":"Read-only preview β editing requires owner or editor share","cantEdit":"Requires owner or editor share","cantDelete":"Only the owner can delete","publicGateAdmin":"Public publish requires admin"},"rbacErrors":{"ownershipRequired":"Owner access required","visibilityGate":"Admin access required","credentialUseDenied":"You cannot use this credential","credentialRevealDenied":"You cannot reveal this credential","folderDepthExceeded":"Folder nesting is limited to 2 levels","folderVisibilityInvalid":"Child folder cannot be more visible than its parent","folderShareDenied":"Not allowed to manage shares","folderNotEmpty":"Cannot delete a non-empty folder","instructionInUse":"This instruction is referenced by {count} workflow node(s) and cannot be deleted. Detach it from those workflows first.","credentialInUse":"This credential is referenced by {count} workflow node(s) and cannot be deleted. Detach it from those workflows first."},"serverErrors":{"notFound":"Requested resource not found","unauthorized":"Authentication required","forbidden":"Access denied","conflict":"Request conflicts with current state","preconditionFailed":"Precondition failed","myWorkspaceMissing":"My Workspace is missing. Contact your administrator.","versionInactive":"This workflow version is inactive","workflowCredentialSetupRequired":"This workflow requires credential setup before it can run"},"validationErrors":{"generic":"Invalid input"},"instructionsPage":{"title":"Instructions","newInstruction":"New Instruction","editInstruction":"Edit Instruction","createInstruction":"Create Instruction","dialogDescription":"Edit the instruction title, content, tags, and priority.","newInstructionLabel":"New Instruction","newAgentInstruction":"New agent instruction","editMode":"Edit mode","createMode":"Create mode","titlePlaceholder":"Instruction title","contentPlaceholder":"Enter instruction content...","searchPlaceholder":"Search instructions...","tagsPlaceholder":"Tags (comma separated: security, required)","tagInputPlaceholder":"Type a tag and press Enter or comma","tagAddPlaceholder":"Add tag","tagRemove":"Remove tag {tag}","priorityPlaceholder":"Priority","helperText":"Click a card or use the edit action from the menu to open the same dialog.","editorHelper":"Edit the Markdown body or compare it with the rendered result immediately.","editTab":"Edit","previewTab":"Preview","splitTab":"Split","markdownEditor":"Markdown editor","renderedPreview":"Rendered preview","previewPlaceholder":"Enter Markdown content to preview.","emptyTitle":"No instructions registered.","emptyDescription":"Add reusable agent instructions so you can select them directly in workflows.","noPreview":"No instruction preview available.","deleteTitle":"Delete instruction?","deleteDescription":"\\"{title}\\" cannot be recovered after deletion.","inactive":"Inactive","toggleDisable":"Disable","toggleEnable":"Enable","updatedAt":"Updated: {value}","deleteConfirm":"Delete this instruction?","actionMenu":"Instruction {title} action menu","credentialPlaceholder":"Select credential","noCredential":"No credential","allInstructions":"All instructions","results":" results","movedToFolder":"Instruction moved to folder."},"commandPalette":{"search":"Search commands...","noResults":"No results found.","navigate":"Navigate","actions":"Actions","newWorkflow":"New Workflow"}}')},r=(0,o.createContext)(null);function n({children:e}){let[t,s]=(0,o.useState)(()=>{let e=window.localStorage.getItem("locale");return"ko"===e||"en"===e?e:"ko"}),l=(0,o.useCallback)(e=>{s(e),localStorage.setItem("locale",e),document.documentElement.lang=e},[]),d=(0,o.useCallback)((e,s)=>{var i;return i=function(e,t){let s=t.split("."),i=e;for(let e of s){if(null==i||"object"!=typeof i)return t;i=i[e]}return"string"==typeof i?i:t}(a[t]??a.ko,e),s?Object.entries(s).reduce((e,[t,s])=>e.replaceAll(`{${t}}`,String(s)),i):i},[t]);return(0,i.jsx)(r.Provider,{value:{locale:t,setLocale:l,t:d},children:e})}function l(){let e=(0,o.useContext)(r);if(!e)throw Error("useTranslation must be used within I18nProvider");return e}}}]);
|
|
File without changes
|
|
File without changes
|