n8n-editor-ui
Version:
Workflow Editor UI for n8n
2 lines • 10.2 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]=`37643acc-8acf-4f8a-a4d9-e899a900849e`,e._sentryDebugIdIdentifier=`sentry-dbid-37643acc-8acf-4f8a-a4d9-e899a900849e`)})()}catch{}import{$ as e,A as t,C as n,E as r,Ft as i,Ht as a,N as o,S as s,Sn as c,T as l,Wt as u,_ as d,_n as f,gt as p,j as m,pt as h,rt as g,w as _,yt as v}from"./vue.runtime.esm-bundler-D9KLAxvJ.js";import{bt as ee}from"./_MapCache-CUJwh2qp.js";import{$i as y,Bi as b,Mi as te,Qi as ne,Zi as x,n as re}from"./src-wni2AGA3.js";import{t as S}from"./_plugin-vue_export-helper-Dm3nT7Ps.js";import{As as C,Ft as w,at as T,en as E,r as ie}from"./users.store-BHWXXawf.js";import{is as ae,li as oe,pi as D}from"./constants-CIP7tKq1.js";import{n as O}from"./dist-DG6crvT0.js";import{d as k,f as A,g as j,i as se,m as M,p as N,r as ce,y as P}from"./constants-B7scOakb.js";import{C as F,a as I,g as L,l as R,p as z,t as B,u as V,x as H,y as U}from"./chat.store-Bg89IR0u.js";import{t as W}from"./ChatAgentAvatar-Dxv-BN__.js";var le=o({__name:`ChatProviderAvatar`,props:{provider:{},icon:{}},setup(t){let n=s(()=>I(t.provider===`n8n`?{provider:`n8n`,workflowId:``}:t.provider===`custom-agent`?{provider:`custom-agent`,agentId:``}:{provider:t.provider,model:``},{icon:t.icon}));return(t,r)=>(e(),_(W,{agent:n.value,size:`sm`},null,8,[`agent`]))}});function G(e,t){return t?(e.data?.fullName??e.label??``).toLowerCase().includes(t):!0}function K(e){let t=e.id;return!!(t.endsWith(`::configure`)||t.endsWith(`::add-model`)||t.endsWith(`::error`)||t.endsWith(`::loading`)||e.disabled||!e.data?.provider)}function q(e,t,n=!1){if(K(e))return null;if(!t||n)return e;let r=G(e,t),i=e.children??[],a=i.flatMap(e=>{let n=q(e,t,r);return n?[n]:[]});return r||a.length>0?i.length>0&&a.length===0?null:{...e,children:a}:null}function J(e,t){return{id:H(e.model),icon:e.icon??t??void 0,label:b(e.name,45),disabled:!1,data:{provider:e.model.provider,description:e.description??void 0,fullName:e.name}}}function Y(e,{isLoading:t,i18n:n,includeCustomAgents:r}){if(!r)return null;let i=t?[]:e.map(e=>J(e,U));return{id:`custom-agent`,label:n.baseText(`chatHub.agent.personalAgents`),icon:U,data:{provider:`custom-agent`},children:[...t?[{id:`custom-agent::loading`,label:n.baseText(`generic.loadingEllipsis`),disabled:!0}]:i,{id:j,icon:{type:`icon`,value:`plus`},label:n.baseText(`chatHub.agent.newAgent`),disabled:!1,divided:t||i.length>0}]}}function X(e,t){let n=new Map;for(let t of e){let e=t.groupName??``,r=n.get(e)??[];n.set(e,[...r,t])}return n.size<2?e.map(e=>J(e,F)):[...n].map(([e,n])=>{let r=e===``?t.baseText(`chatHub.models.selector.personalProject`):e;return{id:`n8n-project-${e}`,label:r,icon:n[0]?.groupIcon??F,data:{provider:`n8n`},children:n.map(e=>J(e,F))}})}function Z(e,{includeCustomAgents:t,i18n:n,isLoading:r}){if(!t)return null;let i=n.baseText(`chatHub.workflowAgents.empty.noAgents`),a=n.baseText(`generic.loadingEllipsis`);return{id:`n8n`,label:n.baseText(`chatHub.agent.workflowAgents`),icon:F,data:{provider:`n8n`},children:r?[{id:`n8n::loading`,label:a,disabled:!0}]:e.length===0?[{id:`n8n::no-agents`,label:i,disabled:!0}]:X(e,n)}}function Q(e,{models:t,error:n},r){let{settings:i,i18n:a,isLoading:o,credentials:s}=r,c=i[e];if(c?.enabled===!1)return null;let l={id:`${e}::configure`,icon:{type:`icon`,value:`settings`},label:a.baseText(`chatHub.agent.configureCredentials`),disabled:!1};if(o)return{id:e,label:P[e],data:{provider:e},children:[l,{id:`${e}::loading`,label:a.baseText(`generic.loadingEllipsis`),disabled:!0,divided:!0}]};let u=(c?.allowedModels??[]).flatMap(t=>t.isManual?[I({provider:e,model:t.model},{name:t.displayName})]:[]),d=[...t,...u].toSorted((e,t)=>(t.metadata.priority??0)-(e.metadata.priority??0)),f=d.length>0?d.flatMap((e,t)=>{if(c&&!z(c,e.model))return[];let n=J(e);return[t===0?{...n,divided:!0}:n]}).filter((e,t,n)=>n.findIndex(t=>t.id===e.id)===t):n?[{id:`${e}::error`,divided:!0,disabled:!0,label:n}]:[],p=[l,...f,...(f.length>0||s?.[e])&&c?.allowedModels.length===0?[{id:`${e}::add-model`,icon:{type:`icon`,value:`plus`},label:a.baseText(`chatHub.agent.addModel`),disabled:!1,divided:!0}]:[]];return{id:e,data:{provider:e},label:P[e],children:p}}function $(e,t){let n=e.children??[],r=[...t,e.label];return n.length===0?[{...e,divided:!1,data:e.data?{...e.data,parts:r}:void 0}]:n.flatMap(e=>$(e,r))}function ue(e,t,n){return t?e.reduce((e,r)=>{let i=q(r,t);if(!i)return e;let a=$(i,[]),o=Math.max(0,10-e.length),s=i.data?.provider,c=s?P[s]:``;if(e.push(...a.slice(0,o)),a.length>o){let t=o>0?n.baseText(`chatHub.models.selector.moreModels`,{interpolate:{providerName:c}}):i.label,r=a.slice(o).map(e=>({...e,label:b(e.data?.fullName??``,45),data:e.data?{...e.data,parts:void 0}:void 0}));e.push({...i,divided:!1,label:t,children:r})}return e},[]):e}function de(e,t){let n=[],r=Y(e[`custom-agent`].models,t),i=Z(e.n8n.models,t);r&&n.push(r),i&&n.push(i);let a=D.options.toSorted((e,t)=>(k.includes(e)?1:-1)-(k.includes(t)?1:-1)),o=!1;for(let r of a){let i=Q(r,e[r],t);i&&(n.push(o?i:{...i,divided:!0}),o=!0)}return n}var fe=S(o({__name:`ModelSelector`,props:{selectedAgent:{},includeCustomAgents:{type:Boolean,default:!0},credentials:{},text:{type:Boolean},warnMissingCredentials:{type:Boolean,default:!1},agents:{},isLoading:{type:Boolean}},emits:[`change`,`createCustomAgent`,`selectCredential`],setup(a,{expose:o,emit:p}){let b=p;function S(e,t){b(`selectCredential`,e,t)}function D(e,t){b(`change`,{provider:e,model:t})}let k=ee(),A=h(`dropdownRef`),j=ie(),M=C(),N=T(),F=w(),I=E(),z=i(``),B=s(()=>a.selectedAgent?N.getCredentialById(a.credentials?.[a.selectedAgent.model.provider]??``)?.name:void 0),H=s(()=>L(a.selectedAgent?.model)),U=s(()=>a.warnMissingCredentials&&H.value&&a.selectedAgent?.model.provider&&!a.credentials?.[a.selectedAgent?.model.provider]),G=s(()=>de(a.agents,{includeCustomAgents:a.includeCustomAgents,isLoading:a.isLoading,i18n:k,settings:M.moduleSettings?.[`chat-hub`]?.providers??{},credentials:a.credentials})),K=s(()=>ue(G.value,z.value,k)),q=s(()=>a.selectedAgent?.name??k.baseText(`chatHub.models.selector.defaultLabel`)),J=s(()=>ae(F.personalProject?.scopes).credential.create);function Y(e){let t=oe[e];if(N.getCredentialsByType(t).length===0&&J.value){j.openNewCredential(t);return}j.openModalWithData({name:ce,data:{credentialType:t,displayName:P[e],initialValue:a.credentials?.[e]??null,onSelect:t=>S(e,t)}})}function X(e){j.openModalWithData({name:se,data:{provider:e,initialValue:null,onSelect:D}})}function Z(e){if(e===`agent::new`){b(`createCustomAgent`);return}let[,t]=e.split(`::`),n=V(e);if(n){if(t===`configure`&&L(n)){Y(n.provider);return}if(t===`add-model`&&L(n)){X(n.provider);return}I.track(`User selected model or agent`,{...R(n),is_custom:n.provider===`custom-agent`}),b(`change`,n)}}function Q(e){z.value=e.toLowerCase()}return o({open:()=>A.value?.open(),openCredentialSelector:e=>Y(e)}),(i,o)=>(e(),_(u(re),{ref_key:`dropdownRef`,ref:A,items:K.value,teleported:``,placement:`bottom-start`,"extra-popper-class":[i.$style.component,z.value?i.$style.searching:``].join(` `),searchable:``,emptyText:z.value?u(k).baseText(`chatHub.models.selector.noMatch`):void 0,onSearch:Q,onSelect:Z},{trigger:v(()=>[m(u(ne),{variant:a.text?`ghost`:`subtle`,class:f(i.$style.dropdownButton),text:a.text,"data-test-id":`chat-model-selector`},{default:v(()=>[m(W,{agent:a.selectedAgent,size:B.value||!H.value?`md`:`sm`,class:f(i.$style.icon)},null,8,[`agent`,`size`,`class`]),n(`div`,{class:f(i.$style.selected)},[n(`div`,null,c(u(O)(q.value,u(30))),1),B.value?(e(),_(u(x),{key:0,size:`xsmall`,color:`text-light`},{default:v(()=>[t(c(u(O)(B.value,u(30))),1)]),_:1})):U.value?(e(),_(u(x),{key:1,size:`xsmall`,color:`danger`},{default:v(()=>[m(u(y),{icon:`node-validation-error`,size:`xsmall`,class:f(i.$style.credentialsMissingIcon)},null,8,[`class`]),t(` `+c(u(k).baseText(`chatHub.agent.credentialsMissing`)),1)]),_:1})):l(``,!0)],2),m(u(y),{icon:`chevron-down`,size:`medium`})]),_:1},8,[`variant`,`class`,`text`])]),"item-leading":v(({item:t})=>[t.data?.provider?(e(),_(le,{key:0,provider:t.data?.provider,icon:t.icon,class:f(i.$style.menuIcon)},null,8,[`provider`,`icon`,`class`])):l(``,!0)]),"item-label":v(({item:n,ui:a})=>[n.data?.parts?(e(),r(`div`,{key:0,class:f([i.$style.flattenedLabel,a.class])},[(e(!0),r(d,null,g(n.data.parts,(a,o)=>(e(),r(d,{key:o},[o>0?(e(),_(u(x),{key:0,color:`text-light`,class:f(i.$style.separator)},{default:v(()=>[m(u(y),{icon:`chevron-right`,size:`small`})]),_:1},8,[`class`])):l(``,!0),m(u(x),{size:`medium`,color:o===n.data.parts.length-1?`text-dark`:`text-base`},{default:v(()=>[t(c(a),1)]),_:2},1032,[`color`])],64))),128))],2)):(e(),_(u(x),{key:1,class:f(a.class),size:`medium`,color:`text-dark`},{default:v(()=>[t(c(n.label),1)]),_:2},1032,[`class`]))]),"item-trailing":v(({item:t,ui:n})=>[t.data?.description?(e(),_(u(te),{key:0,content:u(O)(t.data.description,200,0),class:f(n.class),"content-class":i.$style.tooltip,placement:`right`},{default:v(()=>[m(u(y),{icon:`info`,size:`medium`,color:`text-light`,class:f(i.$style.infoIcon)},null,8,[`class`])]),_:1},8,[`content`,`class`,`content-class`])):l(``,!0)]),_:1},8,[`items`,`extra-popper-class`,`emptyText`]))}}),[[`__cssModules`,{$style:{component:`_component_wt5tl_125`,dropdownButton:`_dropdownButton_wt5tl_130`,credentialsMissingIcon:`_credentialsMissingIcon_wt5tl_141`,selected:`_selected_wt5tl_146`,icon:`_icon_wt5tl_153`,infoIcon:`_infoIcon_wt5tl_158`,menuIcon:`_menuIcon_wt5tl_159`,avatarIcon:`_avatarIcon_wt5tl_167`,tooltip:`_tooltip_wt5tl_171`,flattenedLabel:`_flattenedLabel_wt5tl_176`,separator:`_separator_wt5tl_185`}}]]);function pe(e){let t=B(),n=i(!1),r=s(()=>a(e)),o=s(()=>{if(r.value)return t.customAgents[r.value]});return p(r,async e=>{if(e)try{n.value=!0,await t.fetchCustomAgent(e)}finally{n.value=!1}},{immediate:!0}),{isLoading:n,customAgent:o}}export{fe as n,pe as t};
//# sourceMappingURL=useCustomAgent-CI-guKOt.js.map