UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2 lines 10.3 kB
!function(){try{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"n8n@2.13.4"}}catch(e){}}(),System.register(["./vue.runtime.esm-bundler-legacy-IafOlCW8.js","./_MapCache-legacy-DwgdC8YO.js","./src-legacy-Dwzr7bD0.js","./users.store-legacy-OKuN0qAC.js","./constants-legacy-DNCca_FT.js","./_baseOrderBy-legacy-PsQY_Pvh.js"],(function(e,t){var a,s,n,i,o,r,u,l,d,c,v,p,f,g,y,m,h,x,w,k,b,_,A;return{setters:[function(e){a=e.Ft,s=e.S,n=e.gt},function(e){i=e.bt},function(e){o=e.gt},function(e){r=e.As,u=e.Lr,e.Ya,l=e.at,d=e.ct,c=e.en,v=e.gr,p=e.ln,f=e.ot,g=e.r,y=e.s,m=e.sl,h=e.t},function(e){x=e.Uo,w=e.fs},function(e){k=e.j,b=e.r,_=e.v}],execute:function(){try{t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},(S=(new t.Error).stack)&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[S]="5c4c7da8-5017-4fe3-83d0-de3609b63274",t._sentryDebugIdIdentifier="sentry-dbid-5c4c7da8-5017-4fe3-83d0-de3609b63274")}catch(t){}var t,S;A=["code-diff","text","block"],e("t",k(m.ASSISTANT,(()=>{const e=r(),m=b(),k=u(),S=a([]),N=h(),I=g(),T=y(),E=o(),C=a(),D=a(null),R=i(),q=c(),P=d(),{suggestions:U,applyCodeDiff:V,undoCodeDiff:M}=p({chatMessages:S,getTargetNodeName:()=>j.value.node.name,getSessionId:()=>B.value}),F=a(),j=a(),B=a(),O=a(void 0),H=a(),L=a(),W=a("not_executed"),Y=a(),$=a(),z=a(!0),G=a(!0),J=s((()=>S.value.filter((e=>"assistant"===e.role)))),K=s((()=>S.value.filter((e=>"user"===e.role)))),Q=s((()=>{const e=J.value[J.value.length-1],t="event"===e?.type&&"end-session"===e?.eventName;return!(void 0!==B.value)||t})),X=s((()=>e.isAiAssistantEnabled)),Z=s((()=>w.includes(E.name)&&!T.activeNode())),ee=s((()=>S.value.filter((e=>A.includes(e.type)&&"assistant"===e.role&&!e.read)).length)),te=s((()=>!k.isOpen&&!Z.value&&X.value&&w.includes(E.name))),ae=s((()=>v(["rbac"],{rbac:{scope:"aiAssistant:manage"}}))),se=s((()=>e.settings.ai.allowSendingParameterValues));function ne(e){S.value=[],B.value=void 0,j.value=void 0,L.value=void 0,O.value=void 0,U.value={},W.value="not_executed",F.value=void 0,$.value=void 0,H.value=e}function ie(e,t){const a=k.isOpen&&"assistant"===k.activeMode,s=[...S.value].filter((e=>!(e.id===t&&"assistant"===e.role)));Y.value=void 0,(e??[]).forEach((e=>{"message"===e.type?s.push({id:t,type:"text",role:"assistant",content:e.text,quickReplies:e.quickReplies,codeSnippet:e.codeSnippet,read:a}):"code-diff"===e.type?s.push({id:t,role:"assistant",type:"code-diff",description:e.description,codeDiff:e.codeDiff,suggestionId:e.suggestionId,quickReplies:e.quickReplies,read:a}):"summary"===e.type?s.push({id:t,type:"block",role:"assistant",title:e.title,content:e.content,quickReplies:e.quickReplies,read:a}):"event"===e.type?s.push({id:t,type:"event",role:"assistant",eventName:e.eventName,read:!0}):"agent-suggestion"===e.type?s.push({id:t,type:"block",role:"assistant",title:e.title,content:e.text,quickReplies:e.quickReplies,read:a}):"intermediate-step"===e.type&&(Y.value=e.text)})),S.value=s}function oe(e){const t=e.node.name;return"error"===$.value&&T.activeExecutionId===O.value&&t===j.value?.node.name}function re(){C.value=!1,D.value&&(D.value.abort(),D.value=null)}function ue(e){Y.value=e}function le(e,t){S.value.push({id:t,role:"user",type:"text",content:e,read:!0})}function de(e,t,a){_(e instanceof Error),re(),Y.value=void 0,"AbortError"!==e.name&&function(e,t,a){S.value.push({id:t,role:"assistant",type:"error",content:e,read:!0,retry:a})}(R.baseText("aiAssistant.serviceError.message",{interpolate:{message:e.message}}),t,a)}function ce(e,t){if(e.sessionId&&!B.value)B.value=e.sessionId,q.track("Assistant session started",{chat_session_id:B.value,task:$.value,node_type:j.value?.node.type,credential_type:F.value?.name}),1===K.value.length&&"support"===$.value&&me(K.value[0].content,!1);else if(B.value!==e.sessionId)return;ie(e.messages,t)}function ve(){return`${Math.floor(1e8*Math.random())}`}function pe(e){re(),z.value=!1,G.value=!1,L.value=S.value.find((t=>t.id===e&&!t.read&&"assistant"===t.role&&A.includes(t.type))),setTimeout((()=>{L.value?.id===e&&(L.value=void 0)}),4e3)}async function fe(e){if("error"===$.value)return{aiUsageSettings:{allowSendingParameterValues:se.value}};const t=E.name,a=T.activeNode(),s=a?await P.processNodeForAssistant(a,["position","parameters.notice"],{excludeParameterValues:!se.value}):null,n=I.activeModals.includes("editCredential")?l().getCredentialTypeByName(I.activeCredentialType??""):void 0,i=T.workflowExecutionData?.data?.resultData,o=Boolean(i?.runData?.hasOwnProperty(a?.name??"")),r=i?.error&&"node"in i.error&&i.error.node?.name===a?.name?i.error:void 0,u=o?{status:r?"error":"success",error:r?P.simplifyErrorForAssistant(r):void 0}:void 0;return{aiUsageSettings:{allowSendingParameterValues:se.value},currentView:{name:t,description:P.getCurrentViewDescription(t)},activeNodeInfo:{node:s??void 0,nodeIssues:o?void 0:a?.issues,executionStatus:u,nodeInputData:e?.nodeInputData,referencedNodes:e?.schemas},activeCredentials:n?{name:n?.name,displayName:n?.displayName,authType:e?.authType?.name}:void 0,currentWorkflow:z.value?await P.simplifyWorkflowForAssistant(T.workflow,{excludeParameterValues:!se.value}):void 0,executionData:G.value&&i?P.simplifyResultData(i,{removeParameterValues:!se.value}):void 0}}async function ge(e,t,a){ne(e),$.value=a?"credentials":"support";const s=T.activeNode(),n=P.getNodeInfoForAssistant(e,s,{excludeParameterValues:!se.value}),i="support"===$.value?await fe(n):{aiUsageSettings:{allowSendingParameterValues:se.value}};n.authType&&"credentials"===$.value&&(t+=` I am using ${n.authType.name}.`);const o=ve();F.value=a,le(t,o),ue(R.baseText("aiAssistant.thinkingSteps.thinking")),C.value=!0;let r={role:"user",type:"init-support-chat",user:{firstName:N.currentUser?.firstName??""},context:i,question:t};a&&(r={...r,type:"init-cred-help",credentialType:{name:a.name,displayName:a.displayName}}),D.value&&D.value.abort(),D.value=new AbortController,f(m.restApiContext,{payload:r},(e=>ce(e,o)),(()=>pe(o)),(s=>de(s,o,(async()=>await ge(e,t,a)))),D.value.signal)}async function ye(e,t){if(Q.value||C.value)return;_(B.value);const a=ve();ue(R.baseText("aiAssistant.thinkingSteps.thinking")),C.value=!0,D.value&&D.value.abort(),D.value=new AbortController,f(m.restApiContext,{payload:{role:"user",type:"event",eventName:e,error:t},sessionId:B.value},(e=>ce(e,a)),(()=>pe(a)),(s=>de(s,a,(async()=>await ye(e,t)))),D.value.signal)}function me(e,t){B.value&&q.track("User sent message in Assistant",{message:e,is_quick_reply:t,chat_session_id:B.value,message_number:K.value.length,task:$.value,allow_sending_parameter_values:se.value})}function he({source:e,task:t,has_existing_session:a}){const s=0===T.allNodes.length?"empty":"existing_workflow";q.track("User opened assistant",{source:e,task:t,has_existing_session:a,instance_id:m.instanceId,workflow_id:T.workflowId,canvas_status:s,node_type:j.value?.node?.type,error:j.value?.error,chat_session_id:B.value})}return n(E,(()=>{const e=T.workflowId;B.value&&H.value&&H.value!==e&&ne(e)})),n((()=>I.stateIsDirty),(()=>{z.value=!0})),n((()=>T.workflowExecutionResultDataLastUpdate),(()=>{G.value=!0}),{immediate:!0}),{isAssistantEnabled:X,hideAssistantFloatingButton:Z,chatMessages:S,unreadCount:ee,streaming:C,currentSessionId:B,lastUnread:L,isSessionEnded:Q,isFloatingButtonShown:te,canManageAISettings:ae,onNodeExecution:async function(e){j.value&&e.nodeName===j.value.node.name&&"success"!==W.value&&(e.data.error&&"error"!==W.value?(await ye("node-execution-errored",e.data.error),W.value="error",q.track("User executed node after assistant suggestion",{task:$.value,chat_session_id:B.value,success:!1})):"success"===e.data.executionStatus&&["error","not_executed"].includes(W.value)&&(await ye("node-execution-succeeded"),W.value="success",q.track("User executed node after assistant suggestion",{task:$.value,chat_session_id:B.value,success:!0})))},trackUserOpenedAssistant:he,isNodeErrorActive:oe,initErrorHelper:async function e(t,a){const s=ve();if(j.value&&oe(a))return;ne(t),$.value="error",j.value=a,H.value=t,T.activeExecutionId&&(O.value=T.activeExecutionId);const{authType:n,nodeInputData:i,schemas:o}=P.getNodeInfoForAssistant(t,a.node,{excludeParameterValues:!se.value});ue(R.baseText("aiAssistant.thinkingSteps.analyzingError")),C.value=!0;const r={role:"user",type:"init-error-helper",user:{firstName:N.currentUser?.firstName??""},error:a.error,node:await P.processNodeForAssistant(a.node,["position","parameters.notice"],{excludeParameterValues:!se.value}),nodeInputData:i,executionSchema:o,authType:n,context:{aiUsageSettings:{allowSendingParameterValues:se.value}}};D.value&&D.value.abort(),D.value=new AbortController,f(m.restApiContext,{payload:r},(e=>ce(e,s)),(()=>pe(s)),(n=>de(n,s,(async()=>await e(t,a)))),D.value.signal)},initSupportChat:ge,sendMessage:async function e(a,s){if(Q.value||C.value)return;const n=ve(),i=async()=>{S.value=S.value.filter((e=>e.id!==n)),await e(a,s)};try{le(s.text,n),ue(R.baseText("aiAssistant.thinkingSteps.thinking")),C.value=!0,_(B.value),"new-suggestion"===s.quickReplyType&&"not_executed"!==W.value&&(W.value="not_executed");const e=T.activeNode(),t=await fe(P.getNodeInfoForAssistant(a,e,{excludeParameterValues:!se.value}));D.value&&D.value.abort(),D.value=new AbortController,f(m.restApiContext,{payload:{id:x(),role:"user",type:"message",text:s.text,quickReplyType:s.quickReplyType,context:t},sessionId:B.value},(e=>ce(e,n)),(()=>pe(n)),(e=>de(e,n,i)),D.value.signal),me(s.text,!!s.quickReplyType)}catch(t){de(t,n,i)}},applyCodeDiff:V,undoCodeDiff:M,resetAssistantChat:ne,addAssistantMessages:ie,assistantThinkingMessage:Y,chatSessionError:j,chatSessionTask:$,initCredHelp:async function(e,t){const a=!!B.value;await ge(e,R.baseText("aiAssistant.builder.credentialHelpMessage",{interpolate:{credentialName:t.displayName}}),t),he({source:"credential",task:"credentials",has_existing_session:a})},isCredTypeActive:function(e){return"credentials"===$.value&&e.name===F.value?.name},handleServiceError:de,abortStreaming:function(){re()}}})))}}})); //# sourceMappingURL=assistant.store-legacy-kpq6KUPM.js.map