UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

8 lines (7 loc) 30.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.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]=`cc16594a-ece6-48ef-984b-e5c02eda8bca`,e._sentryDebugIdIdentifier=`sentry-dbid-cc16594a-ece6-48ef-984b-e5c02eda8bca`)})()}catch{}import{Ft as e,S as t}from"./vue.runtime.esm-bundler-D9KLAxvJ.js";import{bt as n}from"./_MapCache-CUJwh2qp.js";import{As as r,Tr as i,at as a,en as o,s}from"./users.store-BHWXXawf.js";import{Gt as c,N as l,Uo as u,Xa as d,_i as f,gi as p,hi as m,li as ee,mi as h,pi as g,pl as te,sa as ne,ui as re}from"./constants-CIP7tKq1.js";import{a as _,c as ie,d as v,j as y,r as ae}from"./_baseOrderBy-CaKruttV.js";import{t as oe}from"./retry-CLoylW83.js";import{l as b,s as x}from"./constants-B7scOakb.js";const se=async(e,t)=>await v(e,`POST`,`/chat/models`,t);async function ce(e,t){return await v(e,`POST`,`/chat/conversations/send`,t)}async function le(e,t,n){return await v(e,`POST`,`/chat/conversations/manual/${t}/send`,n)}async function ue(e,t){return await v(e,`POST`,`/chat/conversations/${t.sessionId}/messages/${t.editId}/edit`,t.payload)}async function de(e,t){return await v(e,`POST`,`/chat/conversations/manual/${t.workflowId}/${t.sessionId}/messages/${t.editId}/edit`,t.payload)}async function fe(e,t){return await v(e,`POST`,`/chat/conversations/${t.sessionId}/messages/${t.retryId}/regenerate`,t.payload)}async function pe(e,t){return await v(e,`POST`,`/chat/conversations/manual/${t.workflowId}/${t.sessionId}/messages/${t.retryId}/regenerate`,t.payload)}async function me(e,t,n){return await v(e,`POST`,`/chat/conversations/${t}/reconnect${n===void 0?``:`?lastSequence=${n}`}`,{})}const he=async(e,t,n)=>{await v(e,`POST`,`/chat/conversations/${t}/messages/${n}/stop`)},ge=async(e,t,n,r)=>{let i=new URLSearchParams;return i.append(`limit`,t.toString()),n&&i.append(`cursor`,n),r&&i.append(`type`,r),await v(e,`GET`,`/chat/conversations?${i.toString()}`)},S=async(e,t,n)=>await v(e,`PATCH`,`/chat/conversations/${t}`,n),_e=async(e,t,n)=>await S(e,t,{title:n}),ve=async(e,t)=>{await v(e,`DELETE`,`/chat/conversations/${t}`)},ye=async(e,t)=>await v(e,`GET`,`/chat/conversations/${t}`),C=async(e,t)=>await v(e,`GET`,`/chat/agents/${t}`),be=async(e,t)=>await v(e,`POST`,`/chat/agents`,t),xe=async(e,t,n)=>await v(e,`POST`,`/chat/agents/${t}`,n),Se=async(e,t)=>{await v(e,`DELETE`,`/chat/agents/${t}`)},Ce=async(e,t,n)=>{let r=new FormData;for(let e of n)r.append(`files`,e);return await v(e,`POST`,`/chat/agents/${t}/files`,r)},we=async(e,t,n)=>{await v(e,`DELETE`,`/chat/agents/${t}/files/${encodeURIComponent(n)}`)},Te=async e=>(await v(e,`GET`,`/chat/settings`)).providers,Ee=async(e,t)=>(await v(e,`GET`,`/chat/settings/`+t)).settings,De=async(e,t)=>await v(e,`POST`,`/chat/settings`,{payload:t}),w=async(e,t)=>{await v(e,`PUT`,`/chat/semantic-search`,t)};function T(e,t,n,r){return`${e.baseUrl}/chat/conversations/${t}/messages/${n}/attachments/${r}`}async function E(e,t){return await v(e,`GET`,`/workflows/${t}/execution-status?authSource=cookie`)}async function D(e,t,n){return await v(e,`POST`,`/credentials/${t}/authorize?resolverId=${encodeURIComponent(n)}&authSource=cookie`)}async function O(e,t,n){await v(e,`DELETE`,`/credentials/${t}/revoke?resolverId=${encodeURIComponent(n)}&authSource=cookie`)}const Oe=async e=>await v(e,`GET`,`/chat/tools`),ke=async(e,t)=>await v(e,`POST`,`/chat/tools`,{definition:t}),Ae=async(e,t,n)=>await v(e,`PATCH`,`/chat/tools/${t}`,n),je=async(e,t)=>{await v(e,`DELETE`,`/chat/tools/${t}`)};function k(e,t){let n=new Date(t),r=new Date(e.getFullYear(),e.getMonth(),e.getDate()),i=new Date(r);i.setDate(i.getDate()-1);let a=new Date(r);a.setDate(a.getDate()-7);let o=new Date(n.getFullYear(),n.getMonth(),n.getDate());return o.getTime()===r.getTime()?`Today`:o.getTime()===i.getTime()?`Yesterday`:o>=a?`This week`:`Older`}function A(e){let t=new Date,n=new Map;for(let r of e){let e=k(t,r.lastMessageAt??r.updatedAt);n.has(e)||n.set(e,[]),n.get(e).push(r)}return[`Today`,`Yesterday`,`This week`,`Older`].flatMap(e=>{let t=n.get(e)??[];return t.length>0?[{group:e,sessions:t.sort((e,t)=>Date.parse(t.lastMessageAt??t.updatedAt)-Date.parse(e.lastMessageAt??e.updatedAt))}]:[]})}function j(e){return e.provider===`n8n`?{name:b,query:{workflowId:e.workflowId}}:e.provider===`custom-agent`?{name:b,query:{agentId:e.agentId}}:{name:b,query:{provider:e.provider,model:e.model}}}function M(e){return{provider:e.provider,model:e?.provider===`n8n`||e?.provider===`custom-agent`?null:e?.model??null,workflowId:e?.provider===`n8n`?e.workflowId:null,agentId:e?.provider===`custom-agent`?e.agentId:null}}function Me(e){if(e.provider===null)return null;switch(e.provider){case`custom-agent`:return e.agentId?{provider:`custom-agent`,agentId:e.agentId}:null;case`n8n`:return e.workflowId?{provider:`n8n`,workflowId:e.workflowId}:null;default:return e.model===null?null:{provider:e.provider,model:e.model}}}function N(e,t){let n=e;if(t.search.trim()){let e=t.search.toLowerCase();n=n.filter(t=>t.name.toLowerCase().includes(e))}return n=[...n].sort((e,n)=>{let r=e[t.sortBy],i=n[t.sortBy],a=r?Date.parse(r):void 0,o=i?Date.parse(i):void 0;return a&&o?o-a:a&&!o?-1:!a&&o?1:0}),n}function Ne(e){return`${e.provider}::${e.provider===`custom-agent`?e.agentId:e.provider===`n8n`?e.workflowId:e.model}`}function P(e){let[t,n]=e.split(`::`),r=m.safeParse(t).data;if(r)return r===`n8n`?{provider:`n8n`,workflowId:n}:r===`custom-agent`?{provider:`custom-agent`,agentId:n}:{provider:r,model:n}}function Pe(e,t){return t.provider===`n8n`?e.model.provider===`n8n`&&e.model.workflowId===t.workflowId:t.provider===`custom-agent`?e.model.provider===`custom-agent`&&e.model.agentId===t.agentId:e.model.provider===t.provider&&e.model.model===t.model}function Fe(e,t,n){return{id:t,sessionId:e,type:`ai`,name:`AI`,content:[],executionId:n?.executionId??null,status:`running`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),previousMessageId:n?.previousMessageId??null,retryOfMessageId:n?.retryOfMessageId??null,revisionOfMessageId:null,responses:[],alternatives:[],attachments:[],...n?.agent?M(n.agent.model):{provider:null,model:null,workflowId:null,agentId:null}}}function Ie(e,t,n){let r=[],i=!1;for(let a=0;a<t.activeMessageChain.length;a++){let o=t.activeMessageChain[a],s=t.messages[o];if(s){if(i||=s.status===`running`,i||n?.sessionId!==e||s.type!==`ai`){r.push(s);continue}if(n.retryOfMessageId===o&&!n.messageId){r.push({...s,content:[],status:`running`,...M(n.agent.model)}),i=!0;continue}if(n.messageId&&a===t.activeMessageChain.length-1){r.push({...s,status:`running`}),i=!0;continue}r.push(s)}}return r}function F(e){return e!==`n8n`&&e!==`custom-agent`}function Le(e){return F(e?.provider)}function I({enabled:e=!0,allowedModels:t},n){return e&&(t.length===0||t.some(e=>`model`in n&&e.model===n.model))}function L(e,t){for(let n of m.options){let r,i=-1/0,a=F(n)?t[n]:void 0,o=e[n].models.filter(e=>!a||I(a,e.model));for(let e of o){let t=e.metadata.priority??0;t>i&&(i=t,r=e)}if(r)return r}}function Re(e,t,n=!1){return{id:e.sessionId,title:`New Chat`,ownerId:``,lastMessageAt:new Date().toISOString(),credentialId:null,agentName:e.agent.name,agentIcon:e.agent.icon,type:n?`manual`:`production`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),toolIds:t,...M(e.agent.model)}}const R={type:`icon`,value:`message-square`},ze={type:`icon`,value:`bot`};function Be(e,t){return{model:e,name:t?.name||``,description:null,icon:t?.icon??null,createdAt:null,updatedAt:null,metadata:{allowFileUploads:!1,allowedFilesMimeTypes:``,capabilities:{functionCalling:e.provider!==`n8n`},available:!0},groupName:null,groupIcon:null}}function z(e){return e&&(e.includes(`text/*`)||e.includes(`text/markdown`))?`${e},.md`:e}const B=e=>e.status===`success`&&e.type!==`ai`,Ve=e=>e.type===`ai`;function He(e){if(!e)return[];let t=[],n=``,r={type:`normal`},i=e.split(` `),a=()=>{n.trim()&&(t.push(n.trimEnd()),n=``)};for(let e=0;e<i.length;e++){let t=i[e],o=e<i.length-1?i[e+1]:``,s=t.trim(),c=/^( {4}|\t)/.test(t),l=/^( {0,3})(`{3,}|~{3,})/.test(t);if(r.type===`backtick-fence`){if(l&&s.startsWith("```")){let e=s.match(/^(`+)/);if((e?e[1].length:0)>=r.count){n+=t+` `,r={type:`normal`},a();continue}}}else if(r.type===`tilde-fence`){if(l&&s.startsWith(`~~~`)){let e=s.match(/^(~+)/);if((e?e[1].length:0)>=r.count){n+=t+` `,r={type:`normal`},a();continue}}}else if(r.type===`indented`)!c&&s!==``&&(r={type:`normal`},a());else if(l&&s.startsWith("```")){let e=s.match(/^(`+)/);r={type:`backtick-fence`,count:e?e[1].length:0}}else if(l&&s.startsWith(`~~~`)){let e=s.match(/^(~+)/);r={type:`tilde-fence`,count:e?e[1].length:0}}else c&&s!==``&&(a(),r={type:`indented`});if(n+=t+` `,r.type===`normal`){let e=s===``,t=o.trim()===``,n=o.trim().startsWith(`#`);(e&&t||e&&n)&&a()}}return a(),t}function Ue(e){return!e||e.status!==`waiting`?!1:e.content.some(e=>e.type===`with-buttons`&&e.blockUserInput)}function We(e,t){let n=[],r=[],i=0;for(let a of e)i+a.size>t&&r.length>0&&(n.push(r),r=[],i=0),r.push(a),i+=a.size;return r.length>0&&n.push(r),n}async function Ge(e){let t=new FileReader;return await new Promise((n,r)=>{t.onload=()=>{n({data:t.result.split(`base64,`)?.[1]??``,mimeType:e.type,fileName:e.name,fileSize:`${e.size} bytes`,fileExtension:e.name.split(`.`).pop()??``,fileType:e.type.split(`/`)[0]})},t.onerror=()=>{r(Error(`Failed to convert file to binary data`))},t.readAsDataURL(e)})}function Ke(e,t){let n=[...e],r=t;if(n.length>0){let e=n[n.length-1];(e.type===`hidden`||(e.type===`artifact-create`||e.type===`artifact-edit`)&&e.isIncomplete)&&(r=e.content+t,n.pop())}let i=Je(r);if(i)return n.push(i),n;let a=0,o=/<command:artifact-create>/g,s=/<command:artifact-edit>/g;for(;a<r.length;){o.lastIndex=a,s.lastIndex=a;let e=o.exec(r),t=s.exec(r),i=null,c=null;if(e&&t?e.index<t.index?(i=e,c=`create`):(i=t,c=`edit`):e?(i=e,c=`create`):t&&(i=t,c=`edit`),!i||!c){let e=r.slice(a);if(e){let{text:t,hiddenPrefix:r}=qe(e);t&&V(n,t),r&&n.push({type:`hidden`,content:r})}break}i.index>a&&V(n,r.slice(a,i.index));let l=i.index,u=r.slice(l);if(c===`create`){let e=H(u);n.push(e.item),a=l+e.consumed}else{let e=U(u);n.push(e.item),a=l+e.consumed}}return n}function V(e,t){if(t!==``){if(e.length>0){let n=e[e.length-1];if(n.type===`text`){e[e.length-1]={type:`text`,content:n.content+t};return}}e.push({type:`text`,content:t})}}function qe(e){let t=[`<command:artifact-create>`,`<command:artifact-edit>`];for(let n=1;n<=Math.min(e.length,30);n++){let r=e.slice(-n);for(let i of t)if(i.startsWith(r))return{text:e.slice(0,-n),hiddenPrefix:r}}return{text:e,hiddenPrefix:``}}function H(e){let t=e.indexOf(`</command:artifact-create>`),n=t===-1,r=n?e:e.slice(0,t+26);return{item:{type:`artifact-create`,content:r,command:{title:W(r,`title`)??``,type:W(r,`type`)??``,content:W(r,`content`)??``},isIncomplete:n},consumed:r.length}}function U(e){let t=e.indexOf(`</command:artifact-edit>`),n=t===-1,r=n?e:e.slice(0,t+24);return{item:{type:`artifact-edit`,content:r,command:{title:W(r,`title`)??``,oldString:W(r,`oldString`)??``,newString:W(r,`newString`)??``,replaceAll:(W(r,`replaceAll`)??`false`).toLowerCase()===`true`},isIncomplete:n},consumed:r.length}}function W(e,t){let n=`<${t}>`,r=`</${t}>`,i=e.indexOf(n);if(i===-1)return null;let a=i+n.length,o=e.indexOf(r,a);if(o===-1){let t=e.slice(a);for(let e=1;e<r.length;e++){let n=r.slice(0,e);if(t.endsWith(n)){t=t.slice(0,-e);break}}return t.length>0?t:null}return e.slice(a,o)}function Je(e){if(!e.startsWith(`{`))return null;try{let t=JSON.parse(e),n=h.safeParse(t);if(n.success)return{type:`with-buttons`,content:n.data.text,buttons:n.data.buttons,blockUserInput:n.data.blockUserInput}}catch{}return null}function G(e){let t=[];for(let n of e)if(n.type===`artifact-create`){if(!n.command.title)continue;t.push({title:n.command.title,type:n.command.type,content:n.command.content})}else if(n.type===`artifact-edit`){let e=t.find(e=>e.title===n.command.title);e&&(n.command.replaceAll?e.content=e.content.split(n.command.oldString).join(n.command.newString):e.content=e.content.replace(n.command.oldString,n.command.newString))}return t}const K={openai:{name:`@n8n/n8n-nodes-langchain.embeddingsOpenAi`,version:1.2},google:{name:`@n8n/n8n-nodes-langchain.embeddingsGoogleGemini`,version:1},azureOpenAi:{name:`@n8n/n8n-nodes-langchain.embeddingsAzureOpenAi`,version:1},azureEntraId:{name:`@n8n/n8n-nodes-langchain.embeddingsAzureOpenAi`,version:1},ollama:{name:`@n8n/n8n-nodes-langchain.embeddingsOllama`,version:1},awsBedrock:{name:`@n8n/n8n-nodes-langchain.embeddingsAwsBedrock`,version:1},cohere:{name:`@n8n/n8n-nodes-langchain.embeddingsCohere`,version:1},mistralCloud:{name:`@n8n/n8n-nodes-langchain.embeddingsMistralCloud`,version:1}},q={embeddingModel:{credentialId:null,provider:g.options.filter(e=>e in K)[0]},vectorStore:{credentialId:null,provider:p.options[0]}},Ye=y(_.CHAT_HUB,()=>{let p=ae(),m=r(),h=a(),g=i(),_=o(),v=n(),y=e(null),b=null,x=e({}),w=e({byId:{},ids:null,hasMore:!1,nextCursor:null,lastFetchedType:void 0}),T=e(!1),E=e(),D=e(!1),O=e(null),k=e([]),A=e(!1),j=e(new Map),N=e=>j.value.get(e),Ne=e=>{let t=N(e);return t?Ie(e,t,E.value):[]};function P(e){j.value.has(e)||j.value.set(e,{messages:{},activeMessageChain:[]});let t=j.value.get(e);if(!t)throw Error(`Conversation for session ID ${e} not found`);return t}function F(e){let t=N(e);if(!t||t.activeMessageChain.length===0)return null;let n=t.activeMessageChain[t.activeMessageChain.length-1];return t.messages[n]??null}function Le(e){return E.value?.sessionId===e}function I(e,t){let n=[];if(!t)return n;let r=t;for(;;){let t=e[r].responses;if(t.length===0)break;r=t[t.length-1]}let i=r,a=new Set;for(;i&&!a.has(i);)n.unshift(i),a.add(i),i=e[i]?.previousMessageId??null;return n}function L(e){let t={};for(let n of e)t[n.id]={...n,responses:[],alternatives:[]};for(let e of Object.values(t))e.previousMessageId&&t[e.previousMessageId]&&t[e.previousMessageId].responses.push(e.id),e.retryOfMessageId&&t[e.retryOfMessageId]&&t[e.retryOfMessageId].alternatives.push(e.id),e.revisionOfMessageId&&t[e.revisionOfMessageId]&&t[e.revisionOfMessageId].alternatives.push(e.id);let n=(e,n)=>{let r=t[e],i=t[n];return r.createdAt===i.createdAt?r.id<i.id?-1:1:r.createdAt<i.createdAt?-1:1};for(let e of Object.values(t)){if(e.alternatives.includes(e.id)||e.alternatives.push(e.id),e.retryOfMessageId&&t[e.retryOfMessageId]){e.alternatives.push(e.retryOfMessageId);for(let n of t[e.retryOfMessageId].alternatives)n!==e.id&&!e.alternatives.includes(n)&&e.alternatives.push(n)}if(e.revisionOfMessageId&&t[e.revisionOfMessageId]){e.alternatives.push(e.revisionOfMessageId);for(let n of t[e.revisionOfMessageId].alternatives)n!==e.id&&!e.alternatives.includes(n)&&e.alternatives.push(n)}e.responses.sort(n),e.alternatives.sort(n)}return t}function R(e,t){let n=P(e);return n.messages[t.id]=t,n.messages=L(Object.values(n.messages)),n.activeMessageChain=I(n.messages,t.id),t}function ze(e,t,n){let r=P(e).messages[t];if(!r)throw Error(`Message with ID ${t} not found in session ${e}`);r.content=[{type:`text`,content:n}]}function z(e,t,n){let r=P(e).messages[t];if(!r)throw Error(`Message with ID ${t} not found in session ${e}`);r.content=Ke(r.content,n)}function B(e,t,n,r){let i=P(e).messages[t];if(!i)throw Error(`Message with ID ${t} not found in session ${e}`);i.status=n,r&&(i.content=r),i.updatedAt=new Date().toISOString()}async function Ve(){let e=await Oe(p.restApiContext);return k.value=e,A.value=!0,e}async function He(e){let t=await ke(p.restApiContext,e);return k.value=[...k.value,t],t}async function Ue(e,t){let n=await Ae(p.restApiContext,e,{definition:t});return k.value=k.value.map(t=>t.definition.id===e?n:t),n}async function V(e,t){let n=await Ae(p.restApiContext,e,{enabled:t});return k.value=k.value.map(t=>t.definition.id===e?n:t),n}async function qe(e){await je(p.restApiContext,e),k.value=k.value.filter(t=>t.definition.id!==e)}async function H(e,t={}){return b??=se(p.restApiContext,{credentials:e}).finally(()=>{b=null}),[y.value]=await Promise.all([b,new Promise(e=>setTimeout(e,t.minLoadingTime??0))]),y.value}async function U(e,t={}){if(!T.value&&(t.type!==void 0&&t.type!==w.value.lastFetchedType&&(e=!0),!(!e&&w.value&&!w.value.hasMore&&(w.value.ids??[]).length>0))){e||(T.value=!0);try{let n=e?void 0:w.value?.nextCursor??void 0,[r]=await Promise.all([ge(p.restApiContext,18,n,t.type),new Promise(e=>setTimeout(e,t.minLoadingTime??0))]);(e||w.value.ids===null)&&(w.value.ids=[]),w.value.hasMore=r.hasMore,w.value.nextCursor=r.nextCursor,w.value.lastFetchedType=t.type;for(let e of r.data){w.value.ids.push(e.id);let t=w.value.byId[e.id];w.value.byId[e.id]={...e,toolIds:t?.toolIds??e.toolIds}}}finally{T.value=!1}}}async function W(e={}){w.value?.hasMore&&!T.value&&await U(!1,e)}async function Je(e){let{conversation:t,session:n}=await ye(p.restApiContext,e),r=L(Object.values(t.messages)),i=I(r,Object.values(r).sort((e,t)=>e.createdAt<t.createdAt?-1:1).pop()?.id??null);j.value.set(e,{messages:r,activeMessageChain:i}),w.value.byId[e]=n}async function G(e){let t=w.value.byId[e];t?.type!==`manual`&&((!t||t.title===`New Chat`)&&await oe(async()=>{try{return(await ye(p.restApiContext,e)).session.title!==`New Chat`}catch{return!1}},2e3,10),await U(!0))}function K(e,t){return P(e).messages[t]||R(e,Fe(e,t,E.value))}function Ye(e,t){let n={413:v.baseText(`chatHub.error.payloadTooLarge`),400:t??v.baseText(`chatHub.error.badRequest`),403:v.baseText(`chatHub.error.forbidden`),500:t?v.baseText(`chatHub.error.serverErrorWithReason`,{interpolate:{error:t}}):v.baseText(`chatHub.error.serverError`)};return e&&n[e]||t||v.baseText(`chatHub.error.unknown`)}async function J(e){if(!E.value)return;let t=e instanceof ie?Error(Ye(e.httpStatusCode,e.message)):e instanceof Error&&e.message.includes(`Failed to fetch`)?Error(v.baseText(`chatHub.error.noConnection`)):e;g.showError(t,v.baseText(`chatHub.error.sendMessageFailed`));let{sessionId:n}=E.value;E.value=void 0,await G(n)}function Y(e){if(e.provider!==`n8n`)return!1;let t=s();if(t.workflowId!==e.workflowId)return!1;let n=t.allNodes.find(e=>e.type===c);return n?n.parameters?.availableInChat===!0:!1}function X(){let e=s();e.workflowExecutionData={id:l,finished:!1,mode:`manual`,status:`running`,createdAt:new Date,startedAt:new Date,stoppedAt:void 0,workflowId:e.workflowId,data:ne({resultData:{runData:{}}}),workflowData:e.workflow},e.private.setActiveExecutionId(null)}async function Xe(e,t,n,r,i=[]){let a=u(),o=P(e),s=o.activeMessageChain.length?o.activeMessageChain[o.activeMessageChain.length-1]:null,c=(await Promise.all(i.map(Ge))).map(e=>({fileName:e.fileName??`unnamed file`,mimeType:e.mimeType,data:e.data}));E.value={promptPreviousMessageId:s,promptId:a,promptText:t,sessionId:e,retryOfMessageId:null,revisionOfMessageId:null,attachments:c,agent:n};let l=Y(n.model),d=l?`manual`:`production`,f=l?`canvas`:`chat_hub`;_.track(`User sent chat hub message`,{...M(n.model),is_custom:n.model.provider===`custom-agent`,chat_session_id:e,mode:d,source:f});let m={model:n.model,messageId:a,sessionId:e,message:t,credentials:r,previousMessageId:s,attachments:c,agentName:n.name,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone};try{if(w.value.byId[e]||(w.value.byId[e]=Re(E.value,k.value.filter(e=>e.enabled).map(e=>e.definition.id),l),w.value.ids??=[],w.value.ids.unshift(e)),l){X();let{workflowId:r}=n.model;await le(p.restApiContext,r,{messageId:a,sessionId:e,message:t,previousMessageId:s,attachments:c,agentName:n.name,timeZone:m.timeZone})}else await ce(p.restApiContext,m)}catch(e){await J(e)}}async function Ze(e,t,n,r,i,a=[],o=[]){let s=u(),c=P(e).messages[t],l=c?.previousMessageId??null,d=await Promise.all(o.map(Ge)),f={model:r.model,messageId:s,message:n,credentials:i,newAttachments:d.map(e=>({fileName:e.fileName??`unnamed file`,mimeType:e.mimeType,data:e.data})),keepAttachmentIndices:a,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone};c?.type===`ai`&&ze(e,t,n),E.value={promptPreviousMessageId:l,promptId:s,promptText:n,sessionId:e,agent:r,retryOfMessageId:null,revisionOfMessageId:t,attachments:[...a.flatMap(e=>{let t=c?.attachments[e];return t?[{fileName:t.fileName??`unnamed file`,mimeType:t.mimeType??`application/octet-stream`,data:``}]:[]}),...d]};let m=Y(r.model),ee=m?`manual`:`production`,h=m?`canvas`:`chat_hub`;_.track(`User edited chat hub message`,{...M(r.model),is_custom:r.model.provider===`custom-agent`,chat_session_id:e,chat_message_id:t,mode:ee,source:h});try{m?(X(),await de(p.restApiContext,{workflowId:r.model.workflowId,sessionId:e,editId:t,payload:{messageId:f.messageId,message:f.message,newAttachments:f.newAttachments,keepAttachmentIndices:f.keepAttachmentIndices,timeZone:f.timeZone}})):await ue(p.restApiContext,{sessionId:e,editId:t,payload:f})}catch(e){await J(e)}}async function Qe(e,t,n,r){let i=P(e).messages[t]?.previousMessageId??null,a={model:n.model,credentials:r,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone};if(!i)throw Error(`No previous message to base regeneration on`);E.value={promptPreviousMessageId:i,promptId:t,promptText:``,sessionId:e,agent:n,retryOfMessageId:t,revisionOfMessageId:null,attachments:[]};let o=Y(n.model),s=o?`manual`:`production`,c=o?`canvas`:`chat_hub`;_.track(`User regenerated chat hub message`,{...M(n.model),is_custom:n.model.provider===`custom-agent`,chat_session_id:e,chat_message_id:t,mode:s,source:c});try{o?(X(),await pe(p.restApiContext,{workflowId:n.model.workflowId,sessionId:e,retryId:t,payload:{timeZone:a.timeZone}})):await fe(p.restApiContext,{sessionId:e,retryId:t,payload:a})}catch(e){await J(e)}}async function $e(e){let t=F(e);t&&t.status===`running`&&(B(e,t.id,`cancelled`),await he(p.restApiContext,e,t.id),E.value?.sessionId===e&&(E.value=void 0,await G(e)))}function Z(e,t){let n=w.value.byId[e];n&&(w.value.byId[e]={...n,...t})}async function et(e,t){let n=x.value[e];if(!n)throw Error(`Custom agent with ID ${e} not found`);let r=n.toolIds??[],i=r.includes(t)?r.filter(e=>e!==t):[...r,t];x.value[e]={...n,toolIds:i},await xe(p.restApiContext,e,{toolIds:i})}async function tt(e,t){let n=w.value?.byId[e];if(!n)throw Error(`Session with ID ${e} not found`);let r=n.toolIds??[],i=r.includes(t)?r.filter(e=>e!==t):[...r,t];Z(e,(await S(p.restApiContext,e,{toolIds:i})).session)}async function nt(e,t){Z(e,(await _e(p.restApiContext,e,t)).session)}async function rt(e,t,n){Z(e,(await S(p.restApiContext,e,{agent:{model:t,name:n}})).session)}async function it(e){await ve(p.restApiContext,e),delete w.value.byId[e],w.value.ids=w.value.ids?.filter(t=>t!==e)??null}function at(e,t){let n=N(e);if(!n?.messages[t])throw Error(`Message with ID ${t} not found in session ${e}`);n.activeMessageChain=I(n.messages,t)}async function ot(e){let t=await C(p.restApiContext,e);x.value[e]=t}function st(e){return y.value?.[`custom-agent`].models.find(t=>`agentId`in t&&t.agentId===e)}async function ct(e,t){let n=We(t,(m.moduleSettings[`chat-hub`]?.agentUploadMaxSizeMb??20)*1024*1024),r;for(let t of n)r=await Ce(p.restApiContext,e,t);return r}async function lt(e,t,n){let r=await be(p.restApiContext,e);t.length>0&&(r=await ct(r.id,t));let i=y.value?.[r.provider]?.models.find(e=>e.name===r.model),a=r.suggestedPrompts.filter(e=>e.text.trim().length>0),o={model:{provider:`custom-agent`,agentId:r.id},name:r.name,description:r.description??null,icon:r.icon,createdAt:r.createdAt,updatedAt:r.updatedAt,metadata:i?.metadata??{capabilities:{functionCalling:!1},allowFileUploads:!1,allowedFilesMimeTypes:``,available:!0},groupName:null,groupIcon:null,...a.length>0?{suggestedPrompts:a}:{}};return y.value?.[`custom-agent`].models.push(o),x.value[r.id]=r,await H(n),_.track(`User created agent`,{...M(e)}),o}async function ut(e,t,n,r,i){await xe(p.restApiContext,e,t);for(let t of r)await we(p.restApiContext,e,t);n.length>0&&await ct(e,n);let a=await C(p.restApiContext,e);if(y.value?.[`custom-agent`]){let t=a.suggestedPrompts.filter(e=>e.text.trim().length>0);y.value[`custom-agent`].models=y.value[`custom-agent`].models.map(n=>`agentId`in n&&n.agentId===e?{...n,name:a.name,...t.length>0?{suggestedPrompts:t}:{suggestedPrompts:void 0}}:n)}return x.value[e]=a,await H(i),a}async function dt(e,t){await Se(p.restApiContext,e),y.value?.[`custom-agent`]&&(y.value[`custom-agent`].models=y.value[`custom-agent`].models.filter(t=>!(`agentId`in t)||t.agentId!==e)),delete x.value[e],await H(t)}function ft(e,t){return y.value?.[e.provider]?.models.find(t=>Pe(t,e))||Be(e,t)}async function pt(){try{D.value=!0,O.value=await Te(p.restApiContext)}finally{D.value=!1}return O.value}async function mt(e){let t=await Ee(p.restApiContext,e);return O.value&&(O.value[e]=d(t)),t}async function ht(e){e.enabled||(e.allowedModels=[]);let t=await De(p.restApiContext,e);return O.value&&(O.value[e.provider]=d(t)),t}function gt(e){let{sessionId:t,messageId:n,previousMessageId:r,retryOfMessageId:i}=e;E.value?.sessionId===t&&(E.value.messageId=n,E.value.promptPreviousMessageId=r,E.value.retryOfMessageId=i);let a=N(t);if(a?.messages[n])return;r&&a?.messages[r]?.status===`waiting`&&B(t,r,`success`);let o=Fe(t,n,E.value?.sessionId===t?E.value:void 0);o.previousMessageId=r,o.retryOfMessageId=i,R(t,o)}function _t(e){let{sessionId:t,messageId:n,content:r}=e;N(t)?.messages[n]||K(t,n),z(t,n,r)}function vt(e){let{sessionId:t,messageId:n,status:r}=e;B(t,n,r)}function yt(e){let{sessionId:t,messageId:n,error:r}=e,i=K(t,n);i.content?i.content=Ke(i.content,` `+r):i.content=[{type:`text`,content:r}],i.status=`error`,B(t,n,`error`,i.content)}function bt(e){let{sessionId:t}=e;if(E.value?.sessionId===t)return;let n=w.value.byId[t];if(!n)return;let r=Me(n);r&&(E.value={promptPreviousMessageId:null,promptId:``,promptText:``,sessionId:t,retryOfMessageId:null,revisionOfMessageId:null,attachments:[],agent:ft(r,{name:n.agentName,icon:n.agentIcon})})}function xt(e){let{sessionId:t,status:n}=e;if(E.value?.sessionId===t){let e=E.value.sessionId;if(E.value.messageId){let e=N(t)?.messages[E.value.messageId];e&&e.status===`running`&&B(t,E.value.messageId,n)}E.value=void 0,n===`error`&&g.showError(Error(`Execution failed`),v.baseText(`chatHub.error.unknown`)),G(e)}}async function St(e,t){try{let n=await me(p.restApiContext,e,t);if(n.pendingChunks&&n.pendingChunks.length>0)for(let t of n.pendingChunks)n.currentMessageId&&z(e,n.currentMessageId,t.content);return n}catch{return null}}function Ct(e){let t=j.value.get(e.sessionId);if(!t||t.messages[e.messageId])return;let n={id:e.messageId,sessionId:e.sessionId,type:`human`,name:`User`,content:[{type:`text`,content:e.content}],previousMessageId:e.previousMessageId,retryOfMessageId:null,revisionOfMessageId:null,status:`success`,attachments:e.attachments.map(e=>({fileName:e.fileName,mimeType:e.mimeType})),provider:null,model:null,workflowId:null,agentId:null,executionId:null,createdAt:new Date(e.timestamp).toISOString(),updatedAt:new Date(e.timestamp).toISOString(),responses:[],alternatives:[]};R(e.sessionId,n)}function wt(e){let t=j.value.get(e.sessionId);if(!t||t.messages[e.messageId])return;let n=t.messages[e.revisionOfMessageId],r={id:e.messageId,sessionId:e.sessionId,type:`human`,name:n?.name??`User`,content:[{type:`text`,content:e.content}],previousMessageId:n?.previousMessageId??null,retryOfMessageId:null,revisionOfMessageId:e.revisionOfMessageId,status:`success`,attachments:e.attachments.map(e=>({fileName:e.fileName,mimeType:e.mimeType})),provider:n?.provider??null,model:n?.model??null,workflowId:n?.workflowId??null,agentId:n?.agentId??null,executionId:null,createdAt:new Date(e.timestamp).toISOString(),updatedAt:new Date(e.timestamp).toISOString(),responses:[],alternatives:[]};R(e.sessionId,r)}let Q=t(()=>{let e=m.isEnterpriseFeatureEnabled[te.Sharing],t=m.moduleSettings[`chat-hub`]?.semanticSearch??q,n=t?.vectorStore.credentialId??``,r=h.getCredentialById(n);if(!n)return`unspecified`;if(!r||r?.type!==re[t.vectorStore.provider])return`notFound`;if(e&&!r.isGlobal)return`notShared`}),$=t(()=>{let e=m.isEnterpriseFeatureEnabled[te.Sharing],t=m.moduleSettings[`chat-hub`]?.semanticSearch??q,n=t?.embeddingModel.credentialId??``,r=h.getCredentialById(n);if(!n)return`unspecified`;if(!r||r?.type!==ee[t.embeddingModel.provider])return`notFound`;if(e&&!r.isGlobal)return`notShared`}),Tt=t(()=>({isReadyForCurrentUser:(!Q.value||Q.value===`notShared`)&&(!$.value||$.value===`notShared`),vectorStoreIssue:Q.value,embeddingIssue:$.value}));return{agents:t(()=>y.value??f),agentsReady:t(()=>y.value!==null),customAgents:x,getAgent:ft,fetchAgents:H,getCustomAgent:st,fetchCustomAgent:ot,createCustomAgent:lt,updateCustomAgent:ut,deleteCustomAgent:dt,configuredTools:k,configuredToolsLoaded:A,fetchConfiguredTools:Ve,addConfiguredTool:He,updateConfiguredTool:Ue,toggleToolEnabled:V,removeConfiguredTool:qe,sessions:w,sessionsReady:t(()=>w.value.ids!==null),sessionsLoading:t(()=>T.value),fetchSessions:U,fetchMoreSessions:W,renameSession:nt,updateSessionModel:rt,deleteSession:it,toggleSessionTool:tt,toggleCustomAgentTool:et,conversationsBySession:j,getConversation:N,fetchMessages:Je,getActiveMessages:Ne,switchAlternative:at,lastMessage:F,streaming:E,isResponding:Le,sendMessage:Xe,editMessage:Ze,regenerateMessage:Qe,stopStreamingMessage:$e,settings:O,settingsLoading:D,fetchAllChatSettings:pt,fetchProviderSettings:mt,updateProviderSettings:ht,semanticSearchReadiness:Tt,handleWebSocketExecutionBegin:bt,handleWebSocketExecutionEnd:xt,handleWebSocketStreamBegin:gt,handleWebSocketStreamChunk:_t,handleWebSocketStreamEnd:vt,handleWebSocketStreamError:yt,handleHumanMessageCreated:Ct,handleMessageEdited:wt,reconnectToStream:St}});export{w as A,ze as C,se as D,C as E,E as O,Me as S,T,Ve as _,Be as a,He as b,L as c,j as d,A as f,Le as g,F as h,G as i,O as k,M as l,B as m,q as n,z as o,I as p,K as r,N as s,Ye as t,P as u,Ue as v,D as w,Ne as x,R as y}; //# sourceMappingURL=chat.store-Bg89IR0u.js.map