UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

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