n8n-editor-ui
Version:
Workflow Editor UI for n8n
6 lines (4 loc) • 25.5 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.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]=`9fe7a7fa-3bd1-44ea-aa68-b55aee323ab7`,e._sentryDebugIdIdentifier=`sentry-dbid-9fe7a7fa-3bd1-44ea-aa68-b55aee323ab7`)})()}catch{}import{$ as e,A as t,C as n,E as r,Ft as i,N as a,S as o,Sn as s,T as c,Ut as l,Wt as u,_n as d,j as f,n as p,yn as m,yt as h}from"./vue.runtime.esm-bundler-C3C09Zii.js";import{at as g,n as _}from"./core-Bz5WjPxS.js";import{Di as v,Qi as y,Zi as b}from"./src-XqE2yCpG.js";import{t as x}from"./_plugin-vue_export-helper-CIL7EULb.js";import{Pn as ee,fr as S,sr as C}from"./users.store-xP93bV7X.js";import{Br as w,Eo as T,Go as E,Lr as D,Rr as O,Wo as te,zr as k}from"./constants-DuQbSl-q.js";import{T as A,a as ne,c as j,t as re}from"./useRootStore-XEREVjMN.js";import{t as ie}from"./settings.store-CAFiYCMH.js";import{t as ae}from"./pushConnection.store-D7Wwlyyp.js";import{i as oe}from"./constants-Dn3JdkLw.js";import{a as se,i as ce,n as le,o as ue,r as de,s as fe,t as pe}from"./instanceAiSettings.store-T1CQqwB0.js";async function M(e,t){return await j(e,`GET`,`/instance-ai/memory/${t}`)}async function N(e,t,n){await j(e,`PUT`,`/instance-ai/memory/${t}`,{content:n})}async function me(e){return await j(e,`GET`,`/instance-ai/threads`)}async function he(e,t){await j(e,`DELETE`,`/instance-ai/threads/${t}`)}async function ge(e,t,n){return await j(e,`PATCH`,`/instance-ai/threads/${t}`,{title:n})}async function _e(e,t,n,r){let i=new URLSearchParams;n!==void 0&&i.set(`limit`,String(n)),r!==void 0&&i.set(`page`,String(r));let a=i.toString();return await j(e,`GET`,`/instance-ai/threads/${t}/messages${a?`?${a}`:``}`)}async function ve(e,t){return await j(e,`GET`,`/instance-ai/threads/${t}/status`)}async function ye(e,t){return await j(e,`GET`,`/instance-ai/threads/${t}/context`)}function be(e,t){if(!E(t))return t;let n=e.groupIdByRunId[t];return n&&E(n)?n:t}function xe(e,t){if(E(t))return e.messages.find(e=>e.messageGroupId===t||e.runId===t)}function P(e,t){if(e?.agentTree)return Se(e.agentTree,t)}function Se(e,t){if(e.agentId===t)return e;for(let n of e.children){let e=Se(n,t);if(e)return e}}function Ce(e,t,n){if(!E(t))return D(n);let r=e.runStateByGroupId[t];return r||(r=D(n),e.runStateByGroupId[t]=r),r}function F(e,t,n){!E(t)||!E(n)||(e.groupIdByRunId[t]=n)}function we(e){if(!E(e.runId)||!E(e.agentId))return!1;switch(e.type){case`run-start`:return e.payload.messageGroupId?E(e.payload.messageGroupId):!0;case`agent-spawned`:return E(e.payload.parentId);case`tool-call`:case`tool-result`:case`tool-error`:case`confirmation-request`:return E(e.payload.toolCallId);default:return!0}}function I(e,t){if(!e.agentTree){e.agentTree=w(t);return}L(e.agentTree,t)||(e.agentTree=w(t))}function L(e,t){let n=t.agentsById[e.agentId];if(!n)return!1;let r=t.childrenByAgentId[e.agentId]??[],i=t.toolCallIdsByAgentId[e.agentId]??[],a=t.timelineByAgentId[e.agentId]??[];if(e.children.length!==r.length||e.toolCalls.length!==i.length)return!1;for(let t=0;t<r.length;t++)if(e.children[t].agentId!==r[t])return!1;e.status=n.status,e.textContent=n.textContent,e.reasoning=n.reasoning,e.result=n.result,e.error=n.error,e.tasks=n.tasks,e.kind=n.kind,e.title=n.title,e.subtitle=n.subtitle,e.goal=n.goal,e.targetResource=n.targetResource;for(let n=0;n<i.length;n++){if(!E(i[n]))return!1;let r=t.toolCallsById[i[n]],a=e.toolCalls[n];if(!r||!a||a.toolCallId!==r.toolCallId)return!1;e.toolCalls[n]={...r}}if(e.timeline.length!==a.length)return!1;for(let t=0;t<a.length;t++){let n=e.timeline[t],r=a[t];if(n.type!==r.type)return!1;n.type===`text`&&r.type===`text`&&(n.content=r.content)}for(let n=0;n<r.length;n++)if(!L(e.children[n],t))return!1;return!0}function R(e,t){if(e.timeline.length===t.length){if(t.length===0)return!0;for(let n=0;n<t.length;n++)if(e.timeline[n].type!==t[n].type)return!1;let n=e.timeline.at(-1),r=t.at(-1);return n?.type!==`text`||r?.type!==`text`?!1:(n.content=r.content,!0)}if(e.timeline.length+1!==t.length)return!1;for(let n=0;n<e.timeline.length;n++)if(e.timeline[n].type!==t[n].type)return!1;let n=t.at(-1);return n?.type===`text`?(e.timeline.push({type:`text`,content:n.content}),!0):!1}function z(e,t,n){if(!e.agentTree){e.agentTree=w(t);return}let r=P(e,n),i=O(t,n);if(!r||!i){I(e,t);return}if(r.status=i.status,r.textContent=i.textContent,r.result=i.result,r.error=i.error,!R(r,t.timelineByAgentId[n]??[])){I(e,t);return}n===t.rootAgentId&&(e.content=i.textContent)}function B(e,t,n){if(!e.agentTree){e.agentTree=w(t);return}let r=P(e,n),i=O(t,n);if(!r||!i){I(e,t);return}r.status=i.status,r.reasoning=i.reasoning,r.result=i.result,r.error=i.error,n===t.rootAgentId&&(e.reasoning=i.reasoning)}function Te(e){if(!E(e.agentId))return;let t=D(e.agentId);return V(t,e,void 0),t.status=e.status===`active`?`active`:e.status,t}function V(e,t,n){if(!E(t.agentId))return;e.agentsById[t.agentId]={agentId:t.agentId,role:t.role,tools:t.tools,taskId:t.taskId,kind:t.kind,title:t.title,subtitle:t.subtitle,goal:t.goal,targetResource:t.targetResource,status:t.status,textContent:t.textContent,reasoning:t.reasoning,tasks:t.tasks,result:t.result,error:t.error},n&&E(n)&&(e.parentByAgentId[t.agentId]=n);let r=t.children.filter(e=>E(e.agentId));e.childrenByAgentId[t.agentId]=r.map(e=>e.agentId),e.timelineByAgentId[t.agentId]=t.timeline.filter(e=>e.type===`child`?E(e.agentId):e.type===`tool-call`?E(e.toolCallId):!0);let i=t.toolCalls.filter(e=>E(e.toolCallId));e.toolCallIdsByAgentId[t.agentId]=i.map(e=>e.toolCallId);for(let t of i)e.toolCallsById[t.toolCallId]={...t};for(let n of r)V(e,n,t.agentId)}function H(e,t){let n=be(e,t);return{msg:xe(e,n),runState:e.runStateByGroupId[n],groupId:n}}function Ee(e,t){if(e.groupIdByRunId||={},e.runStateByGroupId||={},!we(t))return e.activeRunId;if(t.type!==`run-start`){let{msg:n,groupId:r}=H(e,t.runId);if(!n){let n=t.type===`agent-spawned`?t.payload.parentId:t.agentId;F(e,t.runId,r);let i=Ce(e,r,n);e.messages.push({id:r,runId:t.runId,messageGroupId:r,role:`assistant`,createdAt:new Date().toISOString(),content:``,reasoning:``,isStreaming:!0,agentTree:w(i)})}}switch(t.type){case`run-start`:{let n=t.payload.messageGroupId??t.runId;F(e,t.runId,n);let r=xe(e,n);if(r){let i=e.runStateByGroupId[n];if(i){i.status=`active`;let e=O(i,i.rootAgentId);e&&(e.status=`active`)}return r.runId=t.runId,r.isStreaming=!0,i&&I(r,i),t.runId}let i=Ce(e,n,t.agentId);return k(i,t),e.messages.push({id:t.runId,runId:t.runId,messageGroupId:n,role:`assistant`,createdAt:new Date().toISOString(),content:``,reasoning:``,isStreaming:!0,agentTree:w(i)}),t.runId}case`text-delta`:{let{msg:n,runState:r}=H(e,t.runId);return r&&(k(r,t),n&&z(n,r,t.agentId)),e.activeRunId}case`reasoning-delta`:{let{msg:n,runState:r}=H(e,t.runId);return r&&(k(r,t),n&&B(n,r,t.agentId)),e.activeRunId}case`tool-call`:case`tool-result`:case`tool-error`:case`agent-spawned`:case`agent-completed`:case`confirmation-request`:case`tasks-update`:{let{msg:n,runState:r}=H(e,t.runId);return r&&(k(r,t),n&&I(n,r)),e.activeRunId}case`error`:{let{msg:n,runState:r}=H(e,t.runId);if(r){if(k(r,t),n){let e=O(r,t.agentId)?t.agentId:r.rootAgentId;z(n,r,e);let i=P(n,e)??n.agentTree;i&&(i.status=`error`,i.error=t.payload.content,i.errorDetails={...t.payload.statusCode===void 0?{}:{statusCode:t.payload.statusCode},...t.payload.provider?{provider:t.payload.provider}:{},...t.payload.technicalDetails?{technicalDetails:t.payload.technicalDetails}:{}})}}else n&&(n.content+=`
*Error: `+t.payload.content+`*`);return e.activeRunId}case`filesystem-request`:case`thread-title-updated`:return e.activeRunId;case`run-finish`:{let{msg:n,runState:r}=H(e,t.runId);if(r){if(k(r,t),n){n.isStreaming=!1,I(n,r);let{status:e,reason:i}=t.payload;n.agentTree&&n.agentTree.status!==`error`&&e===`error`&&(n.agentTree.status=`error`),n.agentTree&&e===`error`&&i&&!n.agentTree.error&&(n.agentTree.error=i)}}else if(n){n.isStreaming=!1;let{status:e,reason:r}=t.payload;e===`error`&&r&&(n.content+=`
*Error: `+r+`*`)}return null}default:return e.activeRunId}}function U(e,t,n){if(typeof n.name==`string`&&typeof n.id==`string`){let r={type:t,id:n.id,name:n.name};typeof n.createdAt==`string`&&(r.createdAt=n.createdAt),typeof n.updatedAt==`string`&&(r.updatedAt=n.updatedAt),typeof n.projectId==`string`&&(r.projectId=n.projectId),e.set(n.name.toLowerCase(),r)}}var De=new Set([`build-workflow`,`build-workflow-with-agent`,`submit-workflow`,`setup-workflow`,`publish-workflow`,`apply-workflow-credentials`,`setup-credentials`,`create-data-table`,`data-table-agent`]);function W(e,t){if(!De.has(e.toolName)||!e.result||typeof e.result!=`object`)return;let n=e.result;if(Array.isArray(n.workflows))for(let e of n.workflows)U(t,`workflow`,e);if(typeof n.workflowId==`string`){let r=typeof n.workflowName==`string`?n.workflowName:typeof e.args?.name==`string`?e.args.name:void 0,i=r??`Untitled`,a=r?r.toLowerCase():n.workflowId;t.set(a,{type:`workflow`,id:n.workflowId,name:i})}if(n.workflow&&typeof n.workflow==`object`&&U(t,`workflow`,n.workflow),Array.isArray(n.credentials))for(let e of n.credentials)U(t,`credential`,e);if(Array.isArray(n.tables))for(let e of n.tables)U(t,`data-table`,e);if(Array.isArray(n.dataTables))for(let e of n.dataTables)U(t,`data-table`,e);n.table&&typeof n.table==`object`&&U(t,`data-table`,n.table)}function G(e,t){for(let n of e.toolCalls)W(n,t);for(let n of e.children)G(n,t)}function Oe(e,t){return{registry:o(()=>{let n=new Map;for(let t of e())t.agentTree&&G(t.agentTree,n);if(t)for(let[e,r]of n){if(r.type!==`workflow`)continue;let i=t(r.id);i&&i!==r.name&&(n.delete(e),n.set(i.toLowerCase(),{...r,name:i}))}return n})}}function K(e){return e.status===`active`?!0:e.children.some(e=>K(e))}function q(e){return e.toolCalls.some(e=>e.isLoading)?!0:e.children.some(e=>q(e))}function J(e){return e.toolCalls.some(e=>e.confirmation&&e.confirmationStatus===`pending`)?!0:e.children.some(e=>J(e))}function ke({messages:e,currentThreadId:t,telemetry:n}){let r=i({}),a=o(()=>{let t=-1;for(let n=e.value.length-1;n>=0;n--)if(e.value[n].role===`assistant`){t=n;break}if(t===-1)return null;let n=e.value[t];for(let n=t+1;n<e.value.length;n++)if(e.value[n].role===`user`)return null;if(n.isStreaming)return null;let r=n.agentTree;return r&&(K(r)||q(r)||J(r)||r.status===`cancelled`||r.status!==`completed`&&r.status!==`error`)?null:n.messageGroupId??n.id});function s(e,i){E(e)&&(i.rating&&(n.track(`Instance AI response rating submitted`,{threadId:t.value,responseId:e,helpful:i.rating===`up`}),i.rating===`up`&&(r.value[e]=i)),i.feedback!==void 0&&(n.track(`Instance AI response feedback text submitted`,{threadId:t.value,responseId:e,feedback:i.feedback}),r.value[e]={...r.value[e],...i}))}function c(){r.value={}}return{feedbackByResponseId:r,rateableResponseId:a,submitFeedback:s,resetFeedback:c}}function Ae(e,t,n,r){for(let i of e.toolCalls)i.confirmation&&i.isLoading&&i.confirmationStatus!==`approved`&&i.confirmationStatus!==`denied`&&!n.has(i.confirmation.requestId)&&i.confirmation.inputType!==`plan-review`&&r.push({toolCall:i,agentNode:e,messageId:t});for(let i of e.children)Ae(i,t,n,r)}function je(e,t){for(let n of e.toolCalls)if(n.confirmation?.requestId===t)return n;for(let n of e.children){let e=je(n,t);if(e)return e}}function Me(e){for(let t=e.length-1;t>=0;t--){let n=e[t].agentTree?.tasks;if(n)return n}return null}var Y=null,X={},Z={},Q=0,$=A(`instanceAi`,()=>{let e=re(),t=ie(),n=pe(),r=ee(),a=S(),s=new Set,c=i(T()),u=i([]),d=i(`disconnected`),f=i({}),p=i(null),m=i([]),h=i(null),g=i([]),_=i(!1),v=i(localStorage.getItem(`instanceAi.researchMode`)===`true`),y=i(null),b=i(void 0),x=i(void 0),w=i(new Map),D=1e3,O=o(()=>p.value!==null),k=o(()=>m.value.length>0),A=o(()=>t.moduleSettings?.[`instance-ai`]?.localGateway===!0),j=o(()=>n.isGatewayConnected),M=o(()=>n.gatewayDirectory),N=o(()=>t.moduleSettings?.[`instance-ai`]?.localGatewayFallbackDirectory??null),ye=o(()=>M.value??N.value),be=C(),{registry:xe}=Oe(()=>m.value,e=>be.getWorkflowById(e)?.name),{feedbackByResponseId:P,rateableResponseId:Se,submitFeedback:Ce,resetFeedback:F}=ke({messages:m,currentThreadId:c,telemetry:a}),we=o(()=>h.value??Me(m.value)),I=o(()=>{if(O.value)return null;let e=[...m.value].reverse().find(e=>e.role===`assistant`);if(!e||e.isStreaming)return null;let t=e.agentTree;if(!t)return null;let n=t.children.find(e=>e.role===`workflow-builder`);return n?n.status===`error`||n.status===`cancelled`?`Try building the workflow again with different settings`:`Add error handling to the workflow`:t.children.find(e=>e.role===`data-table-manager`)?`Query the data table to show recent entries`:null}),L=o(()=>{if(!(b.value===void 0||x.value===void 0||b.value===-1))return Math.max(0,b.value-x.value)}),R=o(()=>{if(!(b.value===void 0||b.value===-1||L.value===void 0))return b.value===0?0:L.value/b.value*100}),z=o(()=>R.value!==void 0&&R.value<=10),B=null;function V(){B||=ae().addEventListener(e=>{e.type===`updateInstanceAiCredits`&&(b.value=e.data.creditsQuota,x.value=e.data.creditsClaimed)})}function H(){B&&=(B(),null)}async function U(){try{let t=await de(e.restApiContext);b.value=t.creditsQuota,x.value=t.creditsClaimed}catch{}}let De=o(()=>{let e=[];for(let t of m.value)t.role!==`assistant`||!t.agentTree||Ae(t.agentTree,t.id,w.value,e);return e});function W(e,t){let n=new Map(w.value);n.set(e,t),w.value=n}function G(e){for(let t of m.value){if(!t.agentTree)continue;let n=je(t.agentTree,e);if(n)return n}}function K(e){e.lastEventId&&(f.value[c.value]=Number(e.lastEventId));try{let t=te.safeParse(JSON.parse(String(e.data)));if(!t.success){console.warn(`[InstanceAI] Invalid SSE event, skipping:`,t.error.message);return}g.value.push({timestamp:new Date().toISOString(),event:t.data}),g.value.length>D&&g.value.splice(0,g.value.length-D);let n=p.value;if(p.value=Ee({messages:m.value,activeRunId:p.value,runStateByGroupId:X,groupIdByRunId:Z},t.data),t.data.type===`tasks-update`&&(h.value=t.data.payload.tasks),t.data.type===`thread-title-updated`){let e=u.value.find(e=>e.id===c.value);e&&(e.title=t.data.payload.title)}(t.data.type===`run-start`||t.data.type===`run-finish`)&&l(m),n&&p.value===null&&Ie()}catch{}}function q(e){try{let t=JSON.parse(String(e.data)),n=t.messageGroupId??t.runId;if(!E(t.runId)||!E(n))return;let r=Te(t.agentTree);if(!r)return;let i;if(t.messageGroupId&&(i=m.value.find(e=>e.messageGroupId===t.messageGroupId&&e.role===`assistant`)),i||=m.value.find(e=>e.runId===t.runId),i){i.agentTree=t.agentTree,i.runId=t.runId,i.messageGroupId=n,h.value=Me(m.value);let e=t.status===`active`||t.status===`suspended`;if(i.isStreaming=e,e&&(p.value=t.runId),X[n]=r,t.runIds)for(let e of t.runIds)E(e)&&(Z[e]=n);Z[t.runId]=n}}catch{}}function J(t){let n=t??c.value;Y&&$(),d.value=`connecting`;let r=++Q,i=n,a=f.value[n],o=e.restApiContext.baseUrl,s=a==null?`${o}/instance-ai/events/${n}`:`${o}/instance-ai/events/${n}?lastEventId=${String(a)}`;Y=new EventSource(s,{withCredentials:!0}),Y.onopen=()=>{r===Q&&(d.value=`connected`)},Y.onmessage=e=>{r!==Q||i!==c.value||K(e)},Y.addEventListener(`run-sync`,e=>{r!==Q||i!==c.value||q(e)}),Y.onerror=()=>{r===Q&&(Y?.readyState===EventSource.CONNECTING?d.value=`reconnecting`:Y?.readyState===EventSource.CLOSED&&(d.value=`disconnected`,Y=null))}}function $(){Y&&=(Y.close(),null),d.value=`disconnected`}function Ne(e){$(),m.value=[],h.value=null,p.value=null,g.value=[],F(),w.value=new Map,X={},Z={},c.value=e,delete f.value[e],Re(e).then(()=>{ze(e),J(e)})}function Pe(){let e=T();return $(),m.value=[],h.value=null,p.value=null,g.value=[],F(),w.value=new Map,X={},Z={},c.value=e,u.value.unshift({id:e,title:oe,createdAt:new Date().toISOString()}),J(e),e}async function Fe(t){let n=t===c.value;if(s.has(t))try{await he(e.restApiContext,t),s.delete(t)}catch{return r.showError(Error(`Failed to delete thread. Try again.`),`Delete failed`),{currentThreadId:c.value,wasActive:n}}if(u.value=u.value.filter(e=>e.id!==t),delete f.value[t],n)if(u.value.length>0)Ne(u.value[0].id);else{let e=T();$(),m.value=[],h.value=null,p.value=null,g.value=[],F(),w.value=new Map,X={},Z={},c.value=e,u.value.push({id:e,title:oe,createdAt:new Date().toISOString()}),J(e)}return{currentThreadId:c.value,wasActive:n}}async function Ie(){try{let t=await me(e.restApiContext);for(let e of t.threads)s.add(e.id);let n=new Set(t.threads.map(e=>e.id)),r=u.value.filter(e=>!n.has(e.id)),i=t.threads.map(e=>({id:e.id,title:e.title||`New conversation`,createdAt:e.createdAt}));u.value=[...r,...i]}catch{}}async function Le(t){if(s.has(t))return;let n=await le(e.restApiContext,t);s.add(n.thread.id);let r=u.value.find(e=>e.id===t);if(r){r.createdAt=n.thread.createdAt,r.title=n.thread.title||r.title;return}u.value.unshift({id:n.thread.id,title:n.thread.title||`New conversation`,createdAt:n.thread.createdAt})}async function Re(t){try{let n=await _e(e.restApiContext,t,100);if(c.value!==t||m.value.length>0)return;if(n.messages.length>0){m.value=n.messages,h.value=Me(n.messages);for(let e of n.messages){if(e.role!==`assistant`||!e.agentTree)continue;let t=e.messageGroupId??e.runId;if(!t||!E(t))continue;let n=Te(e.agentTree);if(n){if(X[t]=n,e.runIds)for(let n of e.runIds)E(n)&&(Z[n]=t);e.runId&&E(e.runId)&&(Z[e.runId]=t)}}}n.nextEventId!==null&&n.nextEventId!==void 0&&(f.value[t]=n.nextEventId-1)}catch{}}async function ze(t){try{let n=await ve(e.restApiContext,t);if(c.value!==t||!(n.hasActiveRun||n.isSuspended||n.backgroundTasks.length>0))return;let r=[...m.value].reverse().find(e=>e.role===`assistant`);if(!r)return;(n.hasActiveRun||n.isSuspended)&&(p.value=r.runId??null,r.isStreaming=n.hasActiveRun)}catch{}}async function Be(t,n,i){y.value=null;try{await Le(c.value)}catch{r.showError(Error(`Failed to start a new thread. Try again.`),`Send failed`);return}let a={id:T(),role:`user`,createdAt:new Date().toISOString(),content:t,reasoning:``,isStreaming:!1,attachments:n&&n.length>0?n:void 0};m.value.push(a);try{await fe(e.restApiContext,c.value,t,v.value||void 0,n,Intl.DateTimeFormat().resolvedOptions().timeZone,i)}catch(e){let t=e instanceof ne?e.httpStatusCode:void 0;t===409?r.showError(Error(`Agent is still working on your previous message`),`Cannot send message`):t===400?r.showError(Error(`Message cannot be empty`),`Invalid message`):r.showError(Error(`Failed to send message. Try again.`),`Send failed`);let n=m.value.indexOf(a);n!==-1&&m.value.splice(n,1)}}async function Ve(){if(p.value)try{await ce(e.restApiContext,c.value)}catch{r.showError(Error(`Failed to cancel. Try again.`),`Cancel failed`)}}async function He(t){try{await se(e.restApiContext,c.value,t)}catch{r.showError(Error(`Failed to cancel task. Try again.`),`Cancel failed`)}}function Ue(e,t,n){n?He(n):Ve(),y.value={agentId:e,role:t}}async function We(t,n,i,a,o,s,c,l,u,d){try{return await ue(e.restApiContext,t,n,i,a,o,s,c,l,u,d),!0}catch{return r.showError(Error(`Failed to send confirmation. Try again.`),`Confirmation failed`),!1}}async function Ge(e,t){W(e,`approved`),await We(e,!0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,t)}function Ke(){v.value=!v.value,localStorage.setItem(`instanceAi.researchMode`,String(v.value))}function qe(){let e=[],t=null,n=null;for(let r of g.value){let{event:i}=r;if(i.type===`text-delta`){t&&t.event.agentId===i.agentId?t.buffer+=i.payload.text:(t&&(t.event.payload.text=t.buffer,e.push(t)),t={timestamp:r.timestamp,event:{...i,payload:{...i.payload}},buffer:i.payload.text});continue}if(i.type===`reasoning-delta`){n&&n.event.agentId===i.agentId?n.buffer+=i.payload.text:(n&&(n.event.payload.text=n.buffer,e.push(n)),n={timestamp:r.timestamp,event:{...i,payload:{...i.payload}},buffer:i.payload.text});continue}t&&=(t.event.payload.text=t.buffer,e.push(t),null),n&&=(n.event.payload.text=n.buffer,e.push(n),null),e.push(r)}return t&&(t.event.payload.text=t.buffer,e.push(t)),n&&(n.event.payload.text=n.buffer,e.push(n)),JSON.stringify({threadId:c.value,exportedAt:new Date().toISOString(),messages:m.value,events:e},null,2)}async function Je(t,n){let r=u.value.find(e=>e.id===t);r&&(r.title=n),s.has(t)&&await ge(e.restApiContext,t,n)}return{currentThreadId:c,threads:u,sseState:d,lastEventIdByThread:f,activeRunId:p,messages:m,debugEvents:g,debugMode:_,researchMode:v,amendContext:y,feedbackByResponseId:P,creditsQuota:b,creditsClaimed:x,resolvedConfirmationIds:w,isStreaming:O,hasMessages:k,isLocalGatewayEnabled:A,isGatewayConnected:j,gatewayDirectory:M,localGatewayFallbackDirectory:N,activeDirectory:ye,contextualSuggestion:I,currentTasks:we,resourceRegistry:xe,rateableResponseId:Se,creditsRemaining:L,creditsPercentageRemaining:R,isLowCredits:z,pendingConfirmations:De,newThread:Pe,deleteThread:Fe,renameThread:Je,switchThread:Ne,loadThreads:Ie,loadHistoricalMessages:Re,loadThreadStatus:ze,sendMessage:Be,cancelRun:Ve,cancelBackgroundTask:He,amendAgent:Ue,toggleResearchMode:Ke,confirmAction:We,confirmResourceDecision:Ge,resolveConfirmation:W,findToolCallByRequestId:G,copyFullTrace:qe,submitFeedback:Ce,fetchCredits:U,startCreditsPushListener:V,stopCreditsPushListener:H,connectSSE:J,closeSSE:$}}),Ne=x(a({__name:`CreditsSettingsDropdown`,props:{creditsRemaining:{},creditsQuota:{},isLowCredits:{type:Boolean}},emits:[`upgrade-click`],setup(a,{emit:l}){let x=a,ee=l,S=g(),C=i(!1),w=i();_(w,()=>{C.value=!1},{ignore:[`.n8n-tooltip`]});let T=o(()=>x.creditsQuota!==void 0&&x.creditsRemaining!==void 0),E=o(()=>x.creditsRemaining===void 0?``:S.baseText(`aiAssistant.builder.settings.creditsLeft`,{interpolate:{count:String(x.creditsRemaining)}})),D=o(()=>x.creditsQuota===void 0||x.creditsRemaining===void 0||x.creditsQuota===0?0:x.creditsRemaining/x.creditsQuota*100),O=()=>{let e=new Date;return new Date(e.getFullYear(),e.getMonth()+1,1).toLocaleDateString(`en-US`,{month:`long`,day:`numeric`,year:`numeric`})},te=o(()=>{let e=O();return S.baseText(`aiAssistant.builder.settings.creditsTooltip`,{interpolate:{renewalDate:e,expiryDate:e}})});function k(){C.value=!C.value}function A(){ee(`upgrade-click`),C.value=!1}return(i,o)=>(e(),r(`div`,{ref_key:`dropdownRef`,ref:w,class:d(i.$style.wrapper)},[f(u(b),{icon:`circle-dollar-sign`,variant:`ghost`,size:`large`,"icon-only":``,class:d({[i.$style.active]:C.value}),"data-test-id":`credits-dropdown-button`,onClick:k},null,8,[`class`]),f(p,{name:`dropdown`},{default:h(()=>[C.value?(e(),r(`div`,{key:0,class:d(i.$style.dropdown),"data-test-id":`credits-dropdown`},[T.value?(e(),r(`div`,{key:0,class:d(i.$style.creditsSection)},[n(`div`,{class:d(i.$style.creditsHeader)},[n(`div`,{class:d(i.$style.creditsLabel)},[n(`span`,null,s(u(S).baseText(`aiAssistant.builder.settings.credits`)),1),f(u(v),{content:te.value,placement:`bottom`,"show-after":300},{default:h(()=>[f(u(y),{icon:`info`,size:`small`,class:d(i.$style.infoIcon)},null,8,[`class`])]),_:1},8,[`content`])],2),n(`span`,{class:d(i.$style.creditsCount)},s(E.value),3)],2),n(`div`,{class:d(i.$style.progressBar)},[n(`div`,{class:d([i.$style.progressFill,{[i.$style.low]:a.isLowCredits}]),style:m({width:`${D.value}%`})},null,6)],2),f(u(b),{variant:`outline`,size:`small`,class:d(i.$style.getMoreButton),"data-test-id":`credits-get-more`,onClick:A},{default:h(()=>[t(s(u(S).baseText(`aiAssistant.builder.settings.getMoreCredits`)),1)]),_:1},8,[`class`])],2)):c(``,!0)],2)):c(``,!0)]),_:1})],2))}}),[[`__cssModules`,{$style:{wrapper:`_wrapper_s46z5_125`,dropdown:`_dropdown_s46z5_131`,creditsSection:`_creditsSection_s46z5_143`,creditsHeader:`_creditsHeader_s46z5_152`,creditsLabel:`_creditsLabel_s46z5_159`,infoIcon:`_infoIcon_s46z5_168`,creditsCount:`_creditsCount_s46z5_174`,progressBar:`_progressBar_s46z5_181`,progressFill:`_progressFill_s46z5_189`,low:`_low_s46z5_195`,active:`_active_s46z5_199`,getMoreButton:`_getMoreButton_s46z5_203`}}],[`__scopeId`,`data-v-0b2730cc`]]),Pe=x(a({__name:`CreditWarningBanner`,props:{creditsRemaining:{},creditsQuota:{}},emits:[`upgrade-click`,`dismiss`],setup(i,{emit:a}){let c=i,l=a,p=g(),m=o(()=>p.baseText(`aiAssistant.builder.creditBanner.text`,{interpolate:{remaining:String(c.creditsRemaining??0),total:String(c.creditsQuota??0)}})),_=()=>{let e=new Date;return new Date(e.getFullYear(),e.getMonth()+1,1).toLocaleDateString(`en-US`,{month:`long`,day:`numeric`,year:`numeric`})},x=o(()=>{let e=_();return p.baseText(`aiAssistant.builder.settings.creditsTooltip`,{interpolate:{renewalDate:e,expiryDate:e}})});return(i,a)=>(e(),r(`div`,{class:d(i.$style.banner),"data-test-id":`credit-warning-banner`},[n(`div`,{class:d(i.$style.content)},[n(`span`,{class:d(i.$style.text)},s(m.value),3),f(u(v),{content:x.value,placement:`top`,"show-after":300},{default:h(()=>[f(u(y),{icon:`info`,size:`small`,class:d(i.$style.infoIcon)},null,8,[`class`])]),_:1},8,[`content`])],2),f(u(b),{variant:`outline`,size:`xsmall`,"data-test-id":`credit-banner-get-more`,onClick:a[0]||=e=>l(`upgrade-click`)},{default:h(()=>[t(s(u(p).baseText(`aiAssistant.builder.creditBanner.getMore`)),1)]),_:1}),f(u(y),{icon:`x`,size:`small`,class:d(i.$style.closeIcon),"data-test-id":`credit-banner-dismiss`,onClick:a[1]||=e=>l(`dismiss`)},null,8,[`class`])],2))}}),[[`__cssModules`,{$style:{banner:`_banner_1krbe_125`,content:`_content_1krbe_138`,text:`_text_1krbe_146`,infoIcon:`_infoIcon_1krbe_154`,closeIcon:`_closeIcon_1krbe_160`}}]]);export{ye as a,N as c,M as i,Ne as n,_e as o,$ as r,me as s,Pe as t};
//# sourceMappingURL=CreditWarningBanner-qtsaNkFV.js.map