n8n-editor-ui
Version:
Workflow Editor UI for n8n
2 lines • 9.97 kB
JavaScript
(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.13.4`}}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]=`d20fa441-8327-46e4-ab6d-eca3956df81a`,e._sentryDebugIdIdentifier=`sentry-dbid-d20fa441-8327-46e4-ab6d-eca3956df81a`)})()}catch{}import{Ft as e,S as t,gt as n}from"./vue.runtime.esm-bundler-D9KLAxvJ.js";import{bt as r}from"./_MapCache-CUJwh2qp.js";import{gt as i}from"./src-wni2AGA3.js";import{As as a,Lr as o,Ya as s,at as ee,ct as te,en as ne,gr as re,ln as ie,ot as c,r as ae,s as oe,sl as l,t as se}from"./users.store-BHWXXawf.js";import{Uo as ce,fs as u}from"./constants-CIP7tKq1.js";import{j as d,r as le,v as f}from"./_baseOrderBy-CaKruttV.js";var p=[`code-diff`,`text`,`block`];const m=d(l.ASSISTANT,()=>{let s=a(),l=le(),d=o(),m=e([]),h=se(),g=ae(),_=oe(),v=i(),y=e(),b=e(null),x=r(),S=ne(),C=te(),{suggestions:ue,applyCodeDiff:de,undoCodeDiff:fe}=ie({chatMessages:m,getTargetNodeName:()=>T.value.node.name,getSessionId:()=>E.value}),w=e(),T=e(),E=e(),D=e(void 0),O=e(),k=e(),A=e(`not_executed`),j=e(),M=e(),N=e(!0),P=e(!0),F=t(()=>m.value.filter(e=>e.role===`assistant`)),I=t(()=>m.value.filter(e=>e.role===`user`)),L=t(()=>{let e=F.value[F.value.length-1],t=e?.type===`event`&&e?.eventName===`end-session`;return E.value===void 0||t}),R=t(()=>s.isAiAssistantEnabled),z=t(()=>u.includes(v.name)&&!_.activeNode()),pe=t(()=>m.value.filter(e=>p.includes(e.type)&&e.role===`assistant`&&!e.read).length),me=t(()=>!d.isOpen&&!z.value&&R.value&&u.includes(v.name)),he=t(()=>re([`rbac`],{rbac:{scope:`aiAssistant:manage`}})),B=t(()=>s.settings.ai.allowSendingParameterValues);function V(e){_e(),E.value=void 0,T.value=void 0,k.value=void 0,D.value=void 0,ue.value={},A.value=`not_executed`,w.value=void 0,M.value=void 0,O.value=e}function H(e,t){let n=d.isOpen&&d.activeMode===`assistant`,r=[...m.value].filter(e=>!(e.id===t&&e.role===`assistant`));j.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`&&(j.value=e.text)}),m.value=r}function U(e){let t=e.node.name;return M.value===`error`&&_.activeExecutionId===D.value&&t===T.value?.node.name}function ge(e){return M.value===`credentials`&&e.name===w.value?.name}function _e(){m.value=[]}function W(){y.value=!1,b.value&&=(b.value.abort(),null)}function ve(){W()}function ye(e,t,n){m.value.push({id:t,role:`assistant`,type:`error`,content:e,read:!0,retry:n})}function G(e){j.value=e}function K(e,t){m.value.push({id:t,role:`user`,type:`text`,content:e,read:!0})}function q(e,t,n){f(e instanceof Error),W(),j.value=void 0,e.name!==`AbortError`&&ye(x.baseText(`aiAssistant.serviceError.message`,{interpolate:{message:e.message}}),t,n)}function J(e,t){if(e.sessionId&&!E.value){if(E.value=e.sessionId,S.track(`Assistant session started`,{chat_session_id:E.value,task:M.value,node_type:T.value?.node.type,credential_type:w.value?.name}),I.value.length===1&&M.value===`support`){let e=I.value[0];Te(e.content,!1)}}else if(E.value!==e.sessionId)return;H(e.messages,t)}function Y(){return`${Math.floor(Math.random()*1e8)}`}function X(e){W(),N.value=!1,P.value=!1,k.value=m.value.find(t=>t.id===e&&!t.read&&t.role===`assistant`&&p.includes(t.type)),setTimeout(()=>{k.value?.id===e&&(k.value=void 0)},4e3)}async function be(e,t){let n=!!E.value;await Z(e,x.baseText(`aiAssistant.builder.credentialHelpMessage`,{interpolate:{credentialName:t.displayName}}),t),$({source:`credential`,task:`credentials`,has_existing_session:n})}async function xe(e){if(M.value===`error`)return{aiUsageSettings:{allowSendingParameterValues:B.value}};let t=v.name,n=_.activeNode(),r=n?await C.processNodeForAssistant(n,[`position`,`parameters.notice`],{excludeParameterValues:!B.value}):null,i=g.activeModals.includes(`editCredential`)?ee().getCredentialTypeByName(g.activeCredentialType??``):void 0,a=_.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,te=o?{status:s?`error`:`success`,error:s?C.simplifyErrorForAssistant(s):void 0}:void 0;return{aiUsageSettings:{allowSendingParameterValues:B.value},currentView:{name:t,description:C.getCurrentViewDescription(t)},activeNodeInfo:{node:r??void 0,nodeIssues:o?void 0:n?.issues,executionStatus:te,nodeInputData:e?.nodeInputData,referencedNodes:e?.schemas},activeCredentials:i?{name:i?.name,displayName:i?.displayName,authType:e?.authType?.name}:void 0,currentWorkflow:N.value?await C.simplifyWorkflowForAssistant(_.workflow,{excludeParameterValues:!B.value}):void 0,executionData:P.value&&a?C.simplifyResultData(a,{removeParameterValues:!B.value}):void 0}}async function Z(e,t,n){V(e),M.value=n?`credentials`:`support`;let r=_.activeNode(),i=C.getNodeInfoForAssistant(e,r,{excludeParameterValues:!B.value}),a=M.value===`support`?await xe(i):{aiUsageSettings:{allowSendingParameterValues:B.value}};i.authType&&M.value===`credentials`&&(t+=` I am using ${i.authType.name}.`);let o=Y();w.value=n,K(t,o),G(x.baseText(`aiAssistant.thinkingSteps.thinking`)),y.value=!0;let s={role:`user`,type:`init-support-chat`,user:{firstName:h.currentUser?.firstName??``},context:a,question:t};n&&(s={...s,type:`init-cred-help`,credentialType:{name:n.name,displayName:n.displayName}}),b.value&&b.value.abort(),b.value=new AbortController,c(l.restApiContext,{payload:s},e=>J(e,o),()=>X(o),r=>q(r,o,async()=>await Z(e,t,n)),b.value.signal)}async function Se(e,t){let n=Y();if(T.value&&U(t))return;V(e),M.value=`error`,T.value=t,O.value=e,_.activeExecutionId&&(D.value=_.activeExecutionId);let{authType:r,nodeInputData:i,schemas:a}=C.getNodeInfoForAssistant(e,t.node,{excludeParameterValues:!B.value});G(x.baseText(`aiAssistant.thinkingSteps.analyzingError`)),y.value=!0;let o={role:`user`,type:`init-error-helper`,user:{firstName:h.currentUser?.firstName??``},error:t.error,node:await C.processNodeForAssistant(t.node,[`position`,`parameters.notice`],{excludeParameterValues:!B.value}),nodeInputData:i,executionSchema:a,authType:r,context:{aiUsageSettings:{allowSendingParameterValues:B.value}}};b.value&&b.value.abort(),b.value=new AbortController,c(l.restApiContext,{payload:o},e=>J(e,n),()=>X(n),r=>q(r,n,async()=>await Se(e,t)),b.value.signal)}async function Q(e,t){if(L.value||y.value)return;f(E.value);let n=Y();G(x.baseText(`aiAssistant.thinkingSteps.thinking`)),y.value=!0,b.value&&b.value.abort(),b.value=new AbortController,c(l.restApiContext,{payload:{role:`user`,type:`event`,eventName:e,error:t},sessionId:E.value},e=>J(e,n),()=>X(n),r=>q(r,n,async()=>await Q(e,t)),b.value.signal)}async function Ce(e){!T.value||e.nodeName!==T.value.node.name||A.value!==`success`&&(e.data.error&&A.value!==`error`?(await Q(`node-execution-errored`,e.data.error),A.value=`error`,S.track(`User executed node after assistant suggestion`,{task:M.value,chat_session_id:E.value,success:!1})):e.data.executionStatus===`success`&&[`error`,`not_executed`].includes(A.value)&&(await Q(`node-execution-succeeded`),A.value=`success`,S.track(`User executed node after assistant suggestion`,{task:M.value,chat_session_id:E.value,success:!0})))}async function we(e,t){if(L.value||y.value)return;let n=Y(),r=async()=>{m.value=m.value.filter(e=>e.id!==n),await we(e,t)};try{K(t.text,n),G(x.baseText(`aiAssistant.thinkingSteps.thinking`)),y.value=!0,f(E.value),t.quickReplyType===`new-suggestion`&&A.value!==`not_executed`&&(A.value=`not_executed`);let i=_.activeNode(),a=await xe(C.getNodeInfoForAssistant(e,i,{excludeParameterValues:!B.value}));b.value&&b.value.abort(),b.value=new AbortController,c(l.restApiContext,{payload:{id:ce(),role:`user`,type:`message`,text:t.text,quickReplyType:t.quickReplyType,context:a},sessionId:E.value},e=>J(e,n),()=>X(n),e=>q(e,n,r),b.value.signal),Te(t.text,!!t.quickReplyType)}catch(e){q(e,n,r)}}function Te(e,t){E.value&&S.track(`User sent message in Assistant`,{message:e,is_quick_reply:t,chat_session_id:E.value,message_number:I.value.length,task:M.value,allow_sending_parameter_values:B.value})}function $({source:e,task:t,has_existing_session:n}){let r=_.allNodes.length===0?`empty`:`existing_workflow`;S.track(`User opened assistant`,{source:e,task:t,has_existing_session:n,instance_id:l.instanceId,workflow_id:_.workflowId,canvas_status:r,node_type:T.value?.node?.type,error:T.value?.error,chat_session_id:E.value})}return n(v,()=>{let e=_.workflowId;!E.value||!O.value||O.value===e||V(e)}),n(()=>g.stateIsDirty,()=>{N.value=!0}),n(()=>_.workflowExecutionResultDataLastUpdate,()=>{P.value=!0},{immediate:!0}),{isAssistantEnabled:R,hideAssistantFloatingButton:z,chatMessages:m,unreadCount:pe,streaming:y,currentSessionId:E,lastUnread:k,isSessionEnded:L,isFloatingButtonShown:me,canManageAISettings:he,onNodeExecution:Ce,trackUserOpenedAssistant:$,isNodeErrorActive:U,initErrorHelper:Se,initSupportChat:Z,sendMessage:we,applyCodeDiff:de,undoCodeDiff:fe,resetAssistantChat:V,addAssistantMessages:H,assistantThinkingMessage:j,chatSessionError:T,chatSessionTask:M,initCredHelp:be,isCredTypeActive:ge,handleServiceError:q,abortStreaming:ve}});export{m as t};
//# sourceMappingURL=assistant.store-BOJw9cI0.js.map