n8n-editor-ui
Version:
Workflow Editor UI for n8n
4 lines (3 loc) • 35.9 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]=`2f428452-ae66-4230-b925-4b9f18ed02b0`,e._sentryDebugIdIdentifier=`sentry-dbid-2f428452-ae66-4230-b925-4b9f18ed02b0`)})()}catch{}import{$ as e,A as t,C as n,E as r,Ft as i,K as a,N as o,O as s,S as c,Sn as l,T as u,W as d,Wt as f,_ as p,_n as m,gt as h,h as g,it as _,j as v,pt as y,q as b,rt as x,w as S,y as C,yn as w,yt as T}from"./vue.runtime.esm-bundler-C3C09Zii.js";import{C as ee,at as E,ot as D,p as O,w as k,x as A}from"./core-Bz5WjPxS.js";import{Di as j,Fi as M,Ji as N,Mi as P,Pt as F,Qi as I,Xi as L,Yi as R,Zi as z,ji as B,jt as V,lt as te,tt as ne}from"./src-XqE2yCpG.js";import{t as H}from"./_plugin-vue_export-helper-CIL7EULb.js";import{Pn as U,s as W}from"./users.store-xP93bV7X.js";import{Qo as G}from"./constants-DuQbSl-q.js";import{t as re}from"./useRootStore-XEREVjMN.js";import{t as ie}from"./useClipboard-D2UtD35U.js";import{t as K}from"./pushConnection.store-D7Wwlyyp.js";import{h as q}from"./constants-BVzsnVB6.js";import{o as ae,t as J}from"./chat.store-mz4IZJ73.js";import{C as oe,T as se,b as ce,g as le,s as ue,v as Y,x as de}from"./fileUtils-D6dhtxVJ.js";import{t as X}from"./ChatAgentAvatar-DKWX_rQ_.js";import{t as Z}from"./ChatFile-BWveoZV5.js";import{t as fe}from"./ToolsSelector-B0IuM6LH.js";import{t as pe}from"./ChatMarkdownChunk-4B441pzM.js";function Q(){let e=K(),t=J(),n=i(new Map),r=i(null),a=i(null);function o(e){let{sessionId:n}=e.data;t.handleWebSocketExecutionBegin({sessionId:n})}function s(e){let{sessionId:r,status:i}=e.data;n.value.delete(r),t.handleWebSocketExecutionEnd({sessionId:r,status:i})}function c(e){let{sessionId:r,messageId:i,sequenceNumber:a,previousMessageId:o,retryOfMessageId:s}=e.data;n.value.set(r,{sessionId:r,messageId:i,lastSequenceNumber:a,content:``}),t.streaming?.sessionId===r&&t.streaming.messageId!==i&&(t.streaming.messageId=i),t.handleWebSocketStreamBegin({sessionId:r,messageId:i,previousMessageId:o,retryOfMessageId:s})}function l(e){let{sessionId:r,messageId:i,sequenceNumber:a,content:o}=e.data,s=n.value.get(r);!s||s.messageId!==i||a<=s.lastSequenceNumber||(s.lastSequenceNumber=a,s.content+=o,t.handleWebSocketStreamChunk({sessionId:r,messageId:i,content:o}))}function u(e){let{sessionId:r,messageId:i,status:a}=e.data;n.value.delete(r),t.handleWebSocketStreamEnd({sessionId:r,messageId:i,status:a})}function d(e){let{sessionId:r,messageId:i,error:a}=e.data;n.value.delete(r),t.handleWebSocketStreamError({sessionId:r,messageId:i,error:a})}function f(e){t.handleHumanMessageCreated(e.data)}function p(e){t.handleMessageEdited(e.data)}async function m(){for(let[e,r]of n.value.entries()){let n=await t.reconnectToStream(e,r.lastSequenceNumber);if(n?.pendingChunks?.length)for(let e of n.pendingChunks)e.sequenceNumber>r.lastSequenceNumber&&(r.lastSequenceNumber=e.sequenceNumber)}}function g(e){switch(e.type){case`chatHubHumanMessageCreated`:f(e);break;case`chatHubMessageEdited`:p(e);break;case`chatHubExecutionBegin`:o(e);break;case`chatHubExecutionEnd`:s(e);break;case`chatHubStreamBegin`:c(e);break;case`chatHubStreamChunk`:l(e);break;case`chatHubStreamEnd`:u(e);break;case`chatHubStreamError`:d(e);break}}function _(){r.value||(e.pushConnect(),r.value=e.addEventListener(g),a.value=h(()=>e.isConnected,async(e,t)=>{e&&!t&&await m()}))}function v(){a.value&&=(a.value(),null),r.value&&=(r.value(),null),n.value.clear(),e.pushDisconnect()}function y(e){return n.value.get(e)}function b(e){return!!n.value.get(e)}function x(e,t,r){n.value.set(e,{sessionId:e,messageId:t,lastSequenceNumber:r,content:``})}function S(e){return n.value.get(e)?.lastSequenceNumber??0}return{activeStreams:n,initialize:_,terminate:v,getStreamState:y,hasActiveStream:b,getLastSequenceNumber:S,initializeStreamState:x}}function me(e){let{sessionId:t,scrollableRef:n,extendMessagingState:r,shouldSkipScroll:i}=e,o=J(),s=Q();a(()=>{s.initialize()}),b(()=>{s.terminate()});let l=c(()=>o.getActiveMessages(t.value)),u=c(()=>o.isResponding(t.value)),f=e.isNewSession??c(()=>l.value.length===0),p=c(()=>{if(o.streaming?.sessionId===t.value)return o.streaming.messageId?`receiving`:`waitingFirstChunk`;if(de(o.lastMessage(t.value)))return`waitingForApproval`;if(r){let e=r();if(e!==null)return e}return`idle`}),m=c(()=>n.value?.parentElement??null),{arrivedState:g,measure:_}=A(m,{throttle:100,offset:{bottom:100}});function v(e){m.value?.scrollTo({top:n.value?.scrollHeight,behavior:e?`smooth`:`instant`})}function y(e){n.value?.querySelector(`[data-message-id="${e}"]`)?.scrollIntoView({behavior:`smooth`})}async function x(e){o.getConversation(e)||await o.fetchMessages(e);let t=await o.reconnectToStream(e,0);t?.hasActiveStream&&t.currentMessageId&&s.initializeStreamState(e,t.currentMessageId,t.lastSequenceNumber)}return h(()=>l.value[l.value.length-1]?.id,e=>{if(e&&!i?.()){if(d(_),o.streaming?.sessionId===t.value){y(o.streaming.promptId);return}v(!1)}},{immediate:!0,flush:`post`}),{chatMessages:l,isResponding:u,isNewSession:f,messagingState:p,scrollContainerRef:m,arrivedState:g,scrollToBottom:v,scrollToMessage:y,loadSession:x}}var he={typing:`_typing_v8rma_125`,blink:`_blink_v8rma_1`},ge={};function _e(t,i){return e(),r(`span`,{class:m(t.$style.typing),"data-test-id":`chat-typing-indicator`},[...i[0]||=[n(`i`,null,null,-1),n(`i`,null,null,-1),n(`i`,null,null,-1)]],2)}var ve=H(ge,[[`render`,_e],[`__cssModules`,{$style:he}]]),ye=H(o({__name:`CopyButton`,props:{content:{}},setup(n){let r=E(),a=ie(),o=i(!1),s=c(()=>o.value?r.baseText(`generic.copied`):r.baseText(`generic.copy`));async function u(){await a.copy(n.content),o.value=!0,setTimeout(()=>{o.value=!1},1e3)}return(n,r)=>(e(),S(f(j),{placement:`bottom`,"show-after":300},{content:T(()=>[t(l(s.value),1)]),default:T(()=>[v(f(P),{variant:`ghost`,icon:o.value?`check`:`copy`,size:`medium`,class:m(n.$style.button),tabindex:`0`,"aria-label":s.value,onClick:u},null,8,[`icon`,`class`,`aria-label`])]),_:1}))}}),[[`__cssModules`,{$style:{button:`_button_1pgkm_125`}}]]),be=H(o({__name:`ChatMessageActions`,props:{message:{},isSpeechSynthesisAvailable:{type:Boolean},isSpeaking:{type:Boolean},hasSessionStreaming:{type:Boolean}},emits:[`edit`,`regenerate`,`switchAlternative`,`readAloud`],setup(n,{emit:i}){let a=E(),o=te(),s=W(),d=i,h=c(()=>n.message.alternatives.findIndex(e=>e===n.message.id)),g=c(()=>n.message.content.map(e=>e.content).join(`
`)),_=c(()=>{if(s.canViewWorkflows&&n.message.type===`ai`&&n.message.provider===`n8n`&&n.message.executionId)return o.resolve({name:G.EXECUTION_PREVIEW,params:{name:n.message.workflowId,executionId:n.message.executionId}}).href}),y=c(()=>le(n.message)),b=c(()=>ce(n.message));function x(){d(`edit`)}function C(){d(`regenerate`)}function w(){d(`readAloud`)}return(i,o)=>(e(),r(`div`,{class:m(i.$style.actions),"data-test-id":`chat-message-actions`},[v(ye,{content:g.value,"data-test-id":`chat-message-copy`},null,8,[`content`]),n.isSpeechSynthesisAvailable&&n.message.type===`ai`?(e(),S(f(j),{key:0,placement:`bottom`,"show-after":300},{content:T(()=>[t(l(n.isSpeaking?f(a).baseText(`chatHub.message.actions.stopReading`):f(a).baseText(`chatHub.message.actions.readAloud`)),1)]),default:T(()=>[v(f(P),{variant:`ghost`,icon:n.isSpeaking?`volume-x`:`volume-2`,size:`medium`,onClick:w},null,8,[`icon`])]),_:1})):u(``,!0),y.value?(e(),S(f(j),{key:1,placement:`bottom`,"show-after":300},{content:T(()=>[t(l(f(a).baseText(`chatHub.message.actions.edit`)),1)]),default:T(()=>[v(f(P),{variant:`ghost`,icon:`pen`,size:`medium`,"data-test-id":`chat-message-edit`,disabled:n.hasSessionStreaming,onClick:x},null,8,[`disabled`])]),_:1})):u(``,!0),b.value?(e(),S(f(j),{key:2,placement:`bottom`,"show-after":300},{content:T(()=>[t(l(f(a).baseText(`chatHub.message.actions.regenerate`)),1)]),default:T(()=>[v(f(P),{variant:`ghost`,icon:`refresh-cw`,size:`medium`,"data-test-id":`chat-message-regenerate`,disabled:n.hasSessionStreaming,onClick:C},null,8,[`disabled`])]),_:1})):u(``,!0),_.value?(e(),S(f(j),{key:3,placement:`bottom`,"show-after":300},{content:T(()=>[t(l(f(a).baseText(`chatHub.message.actions.executionId`))+`: `,1),v(f(ne),{to:_.value,"new-window":!0},{default:T(()=>[t(l(n.message.executionId),1)]),_:1},8,[`to`])]),default:T(()=>[v(f(P),{variant:`ghost`,icon:`info`,size:`medium`,"data-test-id":`chat-message-info`})]),_:1})):u(``,!0),n.message.alternatives.length>1?(e(),r(p,{key:4},[v(f(P),{variant:`ghost`,icon:`chevron-left`,size:`medium`,disabled:n.hasSessionStreaming||h.value===0,"data-test-id":`chat-message-prev-alternative`,onClick:o[0]||=e=>i.$emit(`switchAlternative`,n.message.alternatives[h.value-1])},null,8,[`disabled`]),v(f(L),{size:`medium`,color:`text-base`},{default:T(()=>[t(l(`${h.value+1}/${n.message.alternatives.length}`),1)]),_:1}),v(f(P),{variant:`ghost`,icon:`chevron-right`,size:`medium`,disabled:n.hasSessionStreaming||h.value===n.message.alternatives.length-1,"data-test-id":`chat-message-next-alternative`,onClick:o[1]||=e=>i.$emit(`switchAlternative`,n.message.alternatives[h.value+1])},null,8,[`disabled`])],64)):u(``,!0)],2))}}),[[`__cssModules`,{$style:{actions:`_actions_1dz1l_125`}}],[`__scopeId`,`data-v-ec3f5f08`]]),xe=[`data-message-id`,`data-test-id`],Se=[`accept`],Ce={key:1},we=H(o({__name:`ChatMessage`,props:{message:{},compact:{type:Boolean},isEditing:{type:Boolean},isEditSubmitting:{type:Boolean},hasSessionStreaming:{type:Boolean},cachedAgentDisplayName:{},cachedAgentIcon:{},acceptedMimeTypes:{},minHeight:{}},emits:[`startEdit`,`cancelEdit`,`update`,`regenerate`,`switchAlternative`,`openArtifact`],setup(o,{expose:s,emit:d}){let _=d,b=J(),ee=re(),{isCtrlKeyPressed:D}=F(),A=E(),j=i(``),M=i([]),N=i(new Set),L=y(`fileInputRef`),R=y(`textarea`),V=y(`attachmentsRef`),te=O(V,void 0,{box:`border-box`}),ne=y(`markdownChunk`),H=c(()=>{let e=ne.value;if(!e||!Array.isArray(e))return null;for(let t of e)if(t?.hoveredCodeBlockActions){let e=t.getHoveredCodeBlockContent();if(e)return{target:t.hoveredCodeBlockActions,content:e}}return null}),U=c(()=>o.message.content.flatMap((e,t,n)=>{if(e.type===`hidden`)return[];if(e.type===`with-buttons`)return[e];if(e.type===`artifact-create`||e.type===`artifact-edit`){let r=n[t-1];return r?.type===e.type&&r.command.title===e.command.title?[]:[e]}return o.message.status===`error`&&!e.content?[{type:`text`,content:A.baseText(`chatHub.message.error.unknown`)}]:/\[\^[^\]]+\]/.test(e.content)?[{type:`text`,content:e.content}]:oe(e.content).flatMap(e=>e.trim()===``?[]:[{type:`text`,content:e}])})),W=c(()=>U.value.flatMap(e=>e.type===`text`?[e.content]:[]).join(``)),G=k(W,{pitch:1,rate:1,volume:1}),ie=c(()=>{let e=se(o.message);return e?b.getAgent(e,{name:o.cachedAgentDisplayName,icon:o.cachedAgentIcon}):null}),K=c(()=>o.message.attachments.map(({fileName:e,mimeType:t},n)=>({file:new File([],e??`file`,{type:t}),downloadUrl:ae(ee.restApiContext,o.message.sessionId,o.message.id,n)}))),q=c(()=>[...K.value.flatMap(({downloadUrl:e,file:t},n)=>N.value.has(n)?[]:[{isNew:!1,file:t,index:n,downloadUrl:e}]),...M.value.map((e,t)=>({isNew:!0,file:e,index:t}))]),ce=c(()=>ue(o.acceptedMimeTypes)),le=c(()=>o.message.status===`success`&&W.value===``&&!o.message.content.some(e=>e.type===`with-buttons`)),Y=c(()=>o.message.status===`running`);function de(){_(`startEdit`)}function fe(){_(`cancelEdit`)}function Q(){if(!j.value.trim())return;let e=o.message.attachments.map((e,t)=>t).filter(e=>!N.value.has(e));_(`update`,j.value,e,M.value)}function me(){L.value?.click()}function he(e){let t=e.target,n=t.files;if(!(!n||n.length===0)){for(let e of Array.from(n))M.value.push(e);t&&(t.value=``)}}function ge(e){if(e.isNew){M.value=M.value.filter((t,n)=>n!==e.index);return}N.value.add(e.index)}function _e(e){for(let t of e)M.value.push(t)}s({addFiles:_e});function we(e){if(e.key===`Escape`){_(`cancelEdit`);return}let t=j.value.trim();e.key===`Enter`&&D(e)&&!e.isComposing&&t&&(e.preventDefault(),Q())}function $(){_(`regenerate`,o.message)}function Te(){G.isSupported.value&&(G.isPlaying.value?G.stop():G.speak())}function Ee(e){_(`switchAlternative`,e)}return h(()=>o.isEditing,e=>{j.value=e?W.value:``,M.value=[],N.value=new Set},{immediate:!0}),h(R,async e=>{e&&(await new Promise(e=>setTimeout(e,0)),e.focus(),e.$el.scrollIntoView({block:`nearest`}))},{immediate:!0,flush:`post`}),a(()=>{G.stop()}),(i,a)=>le.value?u(``,!0):(e(),r(`div`,{key:0,class:m([i.$style.message,o.message.type===`human`?i.$style.user:i.$style.assistant,{[i.$style.compact]:o.compact}]),style:w({minHeight:o.minHeight?`${o.minHeight}px`:void 0}),"data-message-id":o.message.id,"data-test-id":`chat-message-${o.message.id}`},[n(`div`,{class:m(i.$style.avatar)},[o.message.type===`human`?(e(),S(f(I),{key:0,icon:`user`,width:`20`,height:`20`})):(e(),S(X,{key:1,agent:ie.value,size:`md`,tooltip:``},null,8,[`agent`]))],2),n(`div`,{class:m(i.$style.content)},[o.message.type===`human`?(e(),r(`input`,{key:0,ref_key:`fileInputRef`,ref:L,type:`file`,"data-test-id":`message-edit-file-input`,class:m(i.$style.fileInput),accept:ce.value,multiple:``,onChange:he},null,42,Se)):u(``,!0),o.isEditing?(e(),r(`div`,{key:1,class:m(i.$style.editContainer),style:w({"--attachments--height":`${f(te).height.value}px`})},[o.message.type===`human`&&q.value.length>0?(e(),r(`div`,{key:0,ref_key:`attachmentsRef`,ref:V,class:m(i.$style.attachments)},[(e(!0),r(p,null,x(q.value,(t,n)=>(e(),S(Z,{key:n,file:t.file,"is-removable":``,href:t.isNew?void 0:t.downloadUrl,onRemove:e=>ge(t)},null,8,[`file`,`href`,`onRemove`]))),128))],2)):u(``,!0),v(f(B),{ref:`textarea`,modelValue:j.value,"onUpdate:modelValue":a[0]||=e=>j.value=e,type:`textarea`,autosize:{minRows:1,maxRows:20},class:m(i.$style.textarea),onKeydown:we},null,8,[`modelValue`,`class`]),n(`div`,{class:m(i.$style.editFooter)},[o.message.type===`human`?(e(),S(f(P),{key:0,variant:`ghost`,icon:`paperclip`,onClick:g(me,[`stop`])})):u(``,!0),n(`div`,{class:m(i.$style.editActions)},[v(f(z),{variant:`subtle`,size:`small`,onClick:fe},{default:T(()=>[t(l(f(A).baseText(`chatHub.message.edit.cancel`)),1)]),_:1}),v(f(z),{variant:`solid`,size:`small`,disabled:!j.value.trim()||o.isEditSubmitting,loading:o.isEditSubmitting,onClick:Q},{default:T(()=>[t(l(f(A).baseText(`chatHub.message.edit.send`)),1)]),_:1},8,[`disabled`,`loading`])],2)],2)],6)):(e(),r(p,{key:2},[n(`div`,{class:m([i.$style.chatMessage,{[i.$style.errorMessage]:o.message.status===`error`}])},[K.value.length>0?(e(),r(`div`,{key:0,class:m(i.$style.attachments)},[(e(!0),r(p,null,x(K.value,(t,n)=>(e(),S(Z,{key:n,file:t.file,"is-removable":!1,href:t.downloadUrl},null,8,[`file`,`href`]))),128))],2)):u(``,!0),o.message.type===`human`?(e(),r(`div`,Ce,l(W.value),1)):(e(),r(`div`,{key:2,class:m(i.$style.markdownContent)},[(e(!0),r(p,null,x(U.value,(t,n)=>(e(),S(pe,{ref_for:!0,ref:`markdownChunk`,key:n,source:t,"is-buttons-disabled":o.message.status!==`waiting`,onOpenArtifact:a[1]||=e=>_(`openArtifact`,e)},null,8,[`source`,`is-buttons-disabled`]))),128)),H.value?(e(),S(C,{key:0,to:H.value.target},[v(ye,{content:H.value.content},null,8,[`content`])],8,[`to`])):u(``,!0)],2))],2),Y.value?(e(),S(ve,{key:0,class:m(i.$style.typingIndicator)},null,8,[`class`])):(e(),S(be,{key:1,"is-speech-synthesis-available":f(G).isSupported.value,"is-speaking":f(G).isPlaying.value,class:m(i.$style.actions),message:o.message,"has-session-streaming":o.hasSessionStreaming,onEdit:de,onRegenerate:$,onReadAloud:Te,onSwitchAlternative:Ee},null,8,[`is-speech-synthesis-available`,`is-speaking`,`class`,`message`,`has-session-streaming`]))],64))],2)],14,xe))}}),[[`__cssModules`,{$style:{message:`_message_1ptod_125`,markdownContent:`_markdownContent_1ptod_130`,codeBlockActions:`_codeBlockActions_1ptod_142`,avatar:`_avatar_1ptod_146`,compact:`_compact_1ptod_159`,content:`_content_1ptod_165`,actions:`_actions_1ptod_171`,attachments:`_attachments_1ptod_177`,chatMessage:`_chatMessage_1ptod_182`,editContainer:`_editContainer_1ptod_185`,user:`_user_1ptod_201`,errorMessage:`_errorMessage_1ptod_212`,textarea:`_textarea_1ptod_244`,fileInput:`_fileInput_1ptod_257`,editFooter:`_editFooter_1ptod_261`,editActions:`_editActions_1ptod_275`,typingIndicator:`_typingIndicator_1ptod_281`}}]]),$=H(o({__name:`ChatPromptCallouts`,props:{showMissingAgentCallout:{type:Boolean},showMissingCredentialsCallout:{type:Boolean},showDynamicCredentialsMissingCallout:{type:Boolean},showCreditsClaimedCallout:{type:Boolean},isNewSession:{type:Boolean},llmProvider:{},aiCreditsQuota:{},compact:{type:Boolean}},emits:[`selectModel`,`setCredentials`,`dismissCreditsCallout`,`openDynamicCredentials`],setup(r,{emit:i}){let a=i,o=E();return(i,s)=>r.showMissingAgentCallout?(e(),S(f(R),{key:0,icon:`info`,theme:`secondary`,class:m([i.$style.callout,{[i.$style.calloutCompact]:r.compact}])},{default:T(()=>[v(f(D),{keypath:r.isNewSession?`chatHub.chat.prompt.callout.selectModel.new`:`chatHub.chat.prompt.callout.selectModel.existing`,tag:`span`,scope:`global`},{link:T(()=>[n(`a`,{href:``,onClick:s[0]||=g(e=>a(`selectModel`),[`prevent`])},l(f(o).baseText(r.isNewSession?`chatHub.chat.prompt.callout.selectModel.new.link`:`chatHub.chat.prompt.callout.selectModel.existing.link`)),1)]),_:1},8,[`keypath`])]),_:1},8,[`class`])):r.showMissingCredentialsCallout?(e(),S(f(R),{key:1,icon:`info`,theme:`secondary`,class:m([i.$style.callout,{[i.$style.calloutCompact]:r.compact}])},{default:T(()=>[v(f(D),{keypath:r.isNewSession?`chatHub.chat.prompt.callout.setCredentials.new`:`chatHub.chat.prompt.callout.setCredentials.existing`,tag:`span`,scope:`global`},{link:T(()=>[n(`a`,{href:``,onClick:s[1]||=g(e=>a(`setCredentials`,r.llmProvider),[`prevent`])},l(f(o).baseText(r.isNewSession?`chatHub.chat.prompt.callout.setCredentials.new.link`:`chatHub.chat.prompt.callout.setCredentials.existing.link`)),1)]),provider:T(()=>[t(l(f(q)[r.llmProvider]),1)]),_:1},8,[`keypath`])]),_:1},8,[`class`])):r.showDynamicCredentialsMissingCallout?(e(),S(f(R),{key:2,theme:`warning`,class:m([i.$style.callout,{[i.$style.calloutCompact]:r.compact}]),"data-testid":`dynamic-credentials-missing-callout`},{trailingContent:T(()=>[v(f(z),{type:`warning`,"native-type":`button`,size:`small`,"data-testid":`dynamic-credentials-connect-button`,onClick:s[2]||=e=>a(`openDynamicCredentials`)},{default:T(()=>[t(l(f(o).baseText(`chatHub.chat.prompt.callout.dynamicCredentials.missing.button`)),1)]),_:1})]),default:T(()=>[v(f(L),null,{default:T(()=>[t(l(f(o).baseText(r.isNewSession?`chatHub.chat.prompt.callout.dynamicCredentials.missing`:`chatHub.chat.prompt.callout.dynamicCredentials.expired`)),1)]),_:1})]),_:1},8,[`class`])):r.showCreditsClaimedCallout?(e(),S(f(R),{key:3,icon:`info`,theme:`secondary`,class:m([i.$style.callout,{[i.$style.calloutCompact]:r.compact}])},{trailingContent:T(()=>[v(f(I),{icon:`x`,title:`Dismiss`,size:`medium`,type:`secondary`,onClick:s[3]||=e=>a(`dismissCreditsCallout`)})]),default:T(()=>[v(f(L),null,{default:T(()=>[t(l(f(o).baseText(`freeAi.credits.callout.success.chatHub.beginning`)),1)]),_:1}),v(f(L),{bold:``},{default:T(()=>[t(l(f(o).baseText(`freeAi.credits.callout.success.chatHub.credits`,{interpolate:{amount:r.aiCreditsQuota}})),1)]),_:1}),v(f(L),null,{default:T(()=>[t(l(f(o).baseText(`freeAi.credits.callout.success.chatHub.end`)),1)]),_:1})]),_:1},8,[`class`])):u(``,!0)}}),[[`__cssModules`,{$style:{callout:`_callout_50o58_125`,calloutCompact:`_calloutCompact_50o58_131`}}]]),Te=[`accept`],Ee=H(o({__name:`ChatPromptCompact`,props:{message:{},attachments:{},placeholder:{},messagingState:{},acceptedMimeTypes:{},canUploadFiles:{type:Boolean},calloutVisible:{type:Boolean},isSpeechSupported:{type:Boolean},isListening:{type:Boolean}},emits:[`submit`,`update:message`,`keydown`,`fileSelect`,`attach`,`mic`,`stop`,`removeAttachment`],setup(t,{expose:i,emit:a}){let o=t,s=a,c=E(),l=y(`inputRef`),d=y(`fileInputRef`);function h(){l.value?.focus()}return i({inputRef:l,fileInputRef:d}),(i,a)=>(e(),r(`form`,{class:m(i.$style.prompt),onSubmit:a[8]||=g(e=>s(`submit`),[`prevent`])},[n(`div`,{class:m(i.$style.inputWrap)},[_(i.$slots,`callouts`),n(`input`,{ref_key:`fileInputRef`,ref:d,type:`file`,class:m(i.$style.fileInput),accept:t.acceptedMimeTypes,multiple:``,onChange:a[0]||=e=>s(`fileSelect`,e)},null,42,Te),n(`div`,{class:m([i.$style.inputWrapper,{[i.$style.calloutVisible]:t.calloutVisible}]),onClick:h},[t.attachments.length>0?(e(),r(`div`,{key:0,class:m(i.$style.compactAttachments)},[(e(!0),r(p,null,x(t.attachments,(n,r)=>(e(),S(Z,{key:r,file:n,"is-previewable":!0,"is-removable":t.messagingState===`idle`,onRemove:a[1]||=e=>s(`removeAttachment`,e)},null,8,[`file`,`is-removable`]))),128))],2)):u(``,!0),n(`div`,{class:m(i.$style.compactRow)},[v(f(B),{ref_key:`inputRef`,ref:l,"model-value":o.message,type:`textarea`,placeholder:t.placeholder,autocomplete:`off`,autosize:{minRows:1,maxRows:3},autofocus:``,disabled:t.messagingState!==`idle`,"onUpdate:modelValue":a[2]||=e=>s(`update:message`,e),onKeydown:a[3]||=e=>s(`keydown`,e)},null,8,[`model-value`,`placeholder`,`disabled`]),n(`div`,{class:m(i.$style.actions)},[v(f(j),{content:t.canUploadFiles?f(c).baseText(`chatHub.chat.prompt.button.attach`):f(c).baseText(`chatHub.chat.prompt.button.attach.disabled`),disabled:t.canUploadFiles&&t.messagingState===`idle`,placement:`top`},{default:T(()=>[v(f(P),{variant:`ghost`,disabled:t.messagingState!==`idle`||!t.canUploadFiles,icon:`paperclip`,"icon-size":`large`,onClick:a[4]||=g(e=>s(`attach`),[`stop`])},null,8,[`disabled`])]),_:1},8,[`content`,`disabled`]),t.isSpeechSupported?(e(),S(f(P),{key:0,variant:`ghost`,title:t.isListening?f(c).baseText(`chatHub.chat.prompt.button.stopRecording`):f(c).baseText(`chatHub.chat.prompt.button.voiceInput`),disabled:t.messagingState!==`idle`,icon:t.isListening?`square`:`mic`,class:m({[i.$style.recording]:t.isListening}),"icon-size":`large`,onClick:a[5]||=g(e=>s(`mic`),[`stop`])},null,8,[`title`,`disabled`,`icon`,`class`])):u(``,!0),t.messagingState===`receiving`?(e(),S(f(P),{key:2,"native-type":`button`,title:f(c).baseText(`chatHub.chat.prompt.button.stopGenerating`),icon:`square`,"icon-size":`large`,onClick:a[7]||=g(e=>s(`stop`),[`stop`])},null,8,[`title`])):(e(),S(f(P),{key:1,type:`submit`,disabled:t.messagingState!==`idle`||!t.message.trim(),title:f(c).baseText(`chatHub.chat.prompt.button.send`),loading:t.messagingState===`waitingFirstChunk`,icon:`arrow-up`,"icon-size":`large`,onClick:a[6]||=g(()=>{},[`stop`])},null,8,[`disabled`,`title`,`loading`]))],2)],2)],2)],2)],34))}}),[[`__cssModules`,{$style:{prompt:`_prompt_omdff_125`,fileInput:`_fileInput_omdff_143`,inputWrap:`_inputWrap_omdff_147`,inputWrapper:`_inputWrapper_omdff_155`,calloutVisible:`_calloutVisible_omdff_209`,compactAttachments:`_compactAttachments_omdff_213`,compactRow:`_compactRow_omdff_219`,actions:`_actions_omdff_230`,recording:`_recording_omdff_240`,chatHubPromptRecordingPulse:`_chatHubPromptRecordingPulse_omdff_1`}}]]),De=[`accept`],Oe=H(o({__name:`ChatPromptFull`,props:{message:{},attachments:{},placeholder:{},messagingState:{},acceptedMimeTypes:{},canUploadFiles:{type:Boolean},calloutVisible:{type:Boolean},isSpeechSupported:{type:Boolean},isListening:{type:Boolean},checkedToolIds:{},customAgentId:{},isToolsSelectable:{type:Boolean},selectedModel:{}},emits:[`submit`,`update:message`,`keydown`,`fileSelect`,`attach`,`mic`,`stop`,`removeAttachment`,`toolToggle`],setup(t,{expose:i,emit:a}){let o=t,s=a,c=E(),l=y(`inputRef`),d=y(`fileInputRef`),h=y(`attachmentsEl`),b=O(h,void 0,{box:`border-box`});return i({inputRef:l,fileInputRef:d}),(i,a)=>(e(),r(`form`,{class:m([i.$style.prompt,{[i.$style.hasCallout]:t.calloutVisible}]),style:w({"--attachments-el--height":`${f(b).height.value}px`}),onSubmit:a[9]||=g(e=>s(`submit`),[`prevent`])},[n(`input`,{ref_key:`fileInputRef`,ref:d,type:`file`,class:m(i.$style.fileInput),accept:t.acceptedMimeTypes,multiple:``,onChange:a[0]||=e=>s(`fileSelect`,e)},null,42,De),n(`div`,{class:m(i.$style.header)},[_(i.$slots,`callouts`),t.attachments.length>0?(e(),r(`div`,{key:0,ref_key:`attachmentsEl`,ref:h,class:m(i.$style.attachments)},[(e(!0),r(p,null,x(t.attachments,(n,r)=>(e(),S(Z,{key:r,file:n,"is-previewable":!0,"is-removable":t.messagingState===`idle`,onRemove:a[1]||=e=>s(`removeAttachment`,e)},null,8,[`file`,`is-removable`]))),128))],2)):u(``,!0)],2),v(f(B),{ref_key:`inputRef`,ref:l,"model-value":o.message,type:`textarea`,placeholder:t.placeholder,autocomplete:`off`,autosize:{minRows:1,maxRows:6},autofocus:``,disabled:t.messagingState!==`idle`,"onUpdate:modelValue":a[2]||=e=>s(`update:message`,e),onKeydown:a[3]||=e=>s(`keydown`,e)},null,8,[`model-value`,`placeholder`,`disabled`]),n(`div`,{class:m(i.$style.footer)},[n(`div`,{class:m(i.$style.tools)},[v(fe,{class:m(i.$style.toolsButton),"checked-tool-ids":t.checkedToolIds,"custom-agent-id":t.customAgentId,disabled:t.messagingState!==`idle`||!t.isToolsSelectable,"disabled-tooltip":t.isToolsSelectable?void 0:t.selectedModel?f(c).baseText(`chatHub.tools.selector.disabled.tooltip`):f(c).baseText(`chatHub.tools.selector.disabled.noModel.tooltip`),onToggle:a[4]||=e=>s(`toolToggle`,e)},null,8,[`class`,`checked-tool-ids`,`custom-agent-id`,`disabled`,`disabled-tooltip`])],2),n(`div`,{class:m(i.$style.actions)},[v(f(j),{content:t.canUploadFiles?f(c).baseText(`chatHub.chat.prompt.button.attach`):f(c).baseText(`chatHub.chat.prompt.button.attach.disabled`),disabled:t.canUploadFiles&&t.messagingState===`idle`,placement:`top`},{default:T(()=>[v(f(P),{variant:`ghost`,disabled:t.messagingState!==`idle`||!t.canUploadFiles,icon:`paperclip`,"icon-size":`large`,onClick:a[5]||=g(e=>s(`attach`),[`stop`])},null,8,[`disabled`])]),_:1},8,[`content`,`disabled`]),t.isSpeechSupported?(e(),S(f(P),{key:0,variant:`outline`,title:t.isListening?f(c).baseText(`chatHub.chat.prompt.button.stopRecording`):f(c).baseText(`chatHub.chat.prompt.button.voiceInput`),disabled:t.messagingState!==`idle`,icon:t.isListening?`square`:`mic`,class:m({[i.$style.recording]:t.isListening}),"icon-size":`large`,onClick:a[6]||=g(e=>s(`mic`),[`stop`])},null,8,[`title`,`disabled`,`icon`,`class`])):u(``,!0),t.messagingState===`receiving`?(e(),S(f(P),{key:2,"native-type":`button`,title:f(c).baseText(`chatHub.chat.prompt.button.stopGenerating`),icon:`square`,"icon-size":`large`,onClick:a[8]||=g(e=>s(`stop`),[`stop`])},null,8,[`title`])):(e(),S(f(P),{key:1,type:`submit`,disabled:t.messagingState!==`idle`||!t.message.trim(),title:f(c).baseText(`chatHub.chat.prompt.button.send`),loading:t.messagingState===`waitingFirstChunk`,icon:`arrow-up`,"icon-size":`large`,onClick:a[7]||=g(()=>{},[`stop`])},null,8,[`disabled`,`title`,`loading`]))],2)],2)],38))}}),[[`__cssModules`,{$style:{prompt:`_prompt_2i08r_125`,hasCallout:`_hasCallout_2i08r_148`,fileInput:`_fileInput_2i08r_152`,header:`_header_2i08r_156`,footer:`_footer_2i08r_157`,tools:`_tools_2i08r_184`,toolsButton:`_toolsButton_2i08r_188`,actions:`_actions_2i08r_193`,attachments:`_attachments_2i08r_202`,recording:`_recording_2i08r_210`,chatHubPromptRecordingPulse:`_chatHubPromptRecordingPulse_2i08r_1`}}]]),ke=o({__name:`ChatPrompt`,props:{messagingState:{},isNewSession:{type:Boolean},isToolsSelectable:{type:Boolean},selectedModel:{},checkedToolIds:{},sessionId:{},customAgentId:{},showCreditsClaimedCallout:{type:Boolean},showDynamicCredentialsMissingCallout:{type:Boolean},aiCreditsQuota:{},compact:{type:Boolean},placeholder:{}},emits:[`submit`,`stop`,`selectModel`,`setCredentials`,`editAgent`,`dismissCreditsCallout`,`openDynamicCredentials`],setup(t,{expose:n,emit:r}){let a=t,o=J(),s=r,l=i(),u=i(``),d=i(``),p=i([]),m=U(),g=E(),_=ee({continuous:!0,interimResults:!0,lang:navigator.language}),y=c(()=>a.placeholder?a.placeholder:a.selectedModel?g.baseText(`chatHub.chat.prompt.placeholder.withModel`,{interpolate:{model:a.selectedModel.name??`a model`}}):g.baseText(`chatHub.chat.prompt.placeholder.selectModel`)),b=c(()=>Y(a.selectedModel?.model)?a.selectedModel?.model.provider:void 0),x=c(()=>ue(a.selectedModel?.metadata.allowedFilesMimeTypes??``)),C=c(()=>a.selectedModel?.metadata.allowFileUploads??!1),w=c(()=>a.messagingState===`missingAgent`),D=c(()=>a.messagingState===`missingCredentials`&&!!b.value),O=c(()=>w.value||D.value||a.showDynamicCredentialsMissingCallout||a.showCreditsClaimedCallout);function k(){d.value=u.value,_.isListening.value?_.stop():_.start()}function A(){s(`stop`)}function j(){l.value?.fileInputRef?.click()}function M(e){let t=e.target,n=t.files;if(!(!n||n.length===0)){for(let e of Array.from(n))p.value.push(e);t&&(t.value=``),l.value?.inputRef?.focus()}}function N(e){p.value=p.value.filter(t=>t!==e)}function P(){let e=u.value.trim();e&&(_.stop(),s(`submit`,e,p.value))}function F(e){let t=u.value.trim();_.stop(),e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&t&&(e.preventDefault(),e.stopPropagation(),_.stop(),s(`submit`,t,p.value))}h(_.result,e=>{u.value=d.value+` `+e.trimStart()}),h(_.isFinal,e=>{e&&(d.value=u.value)},{flush:`post`}),h(_.error,e=>{if(e?.error===`not-allowed`){m.showError(Error(g.baseText(`chatHub.chat.prompt.microphone.accessDenied`)),g.baseText(`chatHub.chat.prompt.microphone.allowAccess`));return}e?.error===`no-speech`&&m.showMessage({title:g.baseText(`chatHub.chat.prompt.microphone.noSpeech`),type:`warning`})});async function I(e){if(a.customAgentId){await o.toggleCustomAgentTool(a.customAgentId,e);return}if(a.sessionId){await o.toggleSessionTool(a.sessionId,e);return}let t=o.configuredTools.find(t=>t.definition.id===e);t&&await o.toggleToolEnabled(e,!t.enabled)}return n({focus:()=>l.value?.inputRef?.focus(),reset:()=>{u.value=``,d.value=``,p.value=[]},setText:e=>{u.value=e},appendText:e=>{u.value+=e},addAttachments:e=>{p.value.push(...e),l.value?.inputRef?.focus()}}),(n,r)=>t.compact?(e(),S(Ee,{key:0,ref_key:`activePromptRef`,ref:l,message:u.value,"onUpdate:message":r[4]||=e=>u.value=e,attachments:p.value,placeholder:y.value,"messaging-state":t.messagingState,"accepted-mime-types":x.value,"can-upload-files":C.value,"callout-visible":O.value,"is-speech-supported":f(_).isSupported.value,"is-listening":f(_).isListening.value,onSubmit:P,onKeydown:F,onFileSelect:M,onAttach:j,onMic:k,onStop:A,onRemoveAttachment:N},{callouts:T(()=>[v($,{"show-missing-agent-callout":w.value,"show-missing-credentials-callout":D.value,"show-dynamic-credentials-missing-callout":t.showDynamicCredentialsMissingCallout,"show-credits-claimed-callout":t.showCreditsClaimedCallout,"is-new-session":t.isNewSession,"llm-provider":b.value,"ai-credits-quota":t.aiCreditsQuota,compact:``,onSelectModel:r[0]||=e=>s(`selectModel`),onSetCredentials:r[1]||=e=>s(`setCredentials`,e),onDismissCreditsCallout:r[2]||=e=>s(`dismissCreditsCallout`),onOpenDynamicCredentials:r[3]||=e=>s(`openDynamicCredentials`)},null,8,[`show-missing-agent-callout`,`show-missing-credentials-callout`,`show-dynamic-credentials-missing-callout`,`show-credits-claimed-callout`,`is-new-session`,`llm-provider`,`ai-credits-quota`])]),_:1},8,[`message`,`attachments`,`placeholder`,`messaging-state`,`accepted-mime-types`,`can-upload-files`,`callout-visible`,`is-speech-supported`,`is-listening`])):(e(),S(Oe,{key:1,ref_key:`activePromptRef`,ref:l,message:u.value,"onUpdate:message":r[9]||=e=>u.value=e,attachments:p.value,placeholder:y.value,"messaging-state":t.messagingState,"accepted-mime-types":x.value,"can-upload-files":C.value,"callout-visible":O.value,"is-speech-supported":f(_).isSupported.value,"is-listening":f(_).isListening.value,"checked-tool-ids":t.checkedToolIds,"custom-agent-id":t.customAgentId,"is-tools-selectable":t.isToolsSelectable,"selected-model":t.selectedModel,onSubmit:P,onKeydown:F,onFileSelect:M,onAttach:j,onMic:k,onStop:A,onRemoveAttachment:N,onToolToggle:I},{callouts:T(()=>[v($,{"show-missing-agent-callout":w.value,"show-missing-credentials-callout":D.value,"show-dynamic-credentials-missing-callout":t.showDynamicCredentialsMissingCallout,"show-credits-claimed-callout":t.showCreditsClaimedCallout,"is-new-session":t.isNewSession,"llm-provider":b.value,"ai-credits-quota":t.aiCreditsQuota,onSelectModel:r[5]||=e=>s(`selectModel`),onSetCredentials:r[6]||=e=>s(`setCredentials`,e),onDismissCreditsCallout:r[7]||=e=>s(`dismissCreditsCallout`),onOpenDynamicCredentials:r[8]||=e=>s(`openDynamicCredentials`)},null,8,[`show-missing-agent-callout`,`show-missing-credentials-callout`,`show-dynamic-credentials-missing-callout`,`show-credits-claimed-callout`,`is-new-session`,`llm-provider`,`ai-credits-quota`])]),_:1},8,[`message`,`attachments`,`placeholder`,`messaging-state`,`accepted-mime-types`,`can-upload-files`,`callout-visible`,`is-speech-supported`,`is-listening`,`checked-tool-ids`,`custom-agent-id`,`is-tools-selectable`,`selected-model`]))}}),Ae=`message-circle`,je=H(o({__name:`ChatSuggestedPrompts`,props:{prompts:{}},emits:[`select`],setup(i,{emit:a}){let o=a;function c(e){if(e?.type!==`emoji`)return e?.value??Ae}return(a,u)=>(e(),r(`div`,{class:m(a.$style.container)},[(e(!0),r(p,null,x(i.prompts,r=>(e(),S(f(z),{key:r.text,variant:`outline`,size:`small`,icon:c(r.icon),"icon-size":`large`,class:m(a.$style.chip),onClick:e=>o(`select`,r.text)},s({default:T(()=>[t(` `+l(r.text),1)]),_:2},[r.icon?.type===`emoji`?{name:`icon`,fn:T(()=>[n(`span`,{class:m(a.$style.emoji)},l(r.icon.value),3)]),key:`0`}:void 0]),1032,[`icon`,`class`,`onClick`]))),128))],2))}}),[[`__cssModules`,{$style:{container:`_container_140do_125`,chip:`_chip_140do_132`,emoji:`_emoji_140do_139`}}]]),Me=H(o({__name:`ChatGreetings`,props:{selectedAgent:{},loading:{type:Boolean}},emits:[`select-prompt`],setup(i,{emit:a}){let o=i,s=a,d=E(),h=c(()=>o.selectedAgent&&!Y(o.selectedAgent.model));return(a,o)=>(e(),r(`div`,{key:`greetings`,class:m(a.$style.greetings)},[h.value&&i.selectedAgent?(e(),r(`div`,{key:0,class:m(a.$style.agentCard)},[i.loading?(e(),r(p,{key:0},[v(f(V),{variant:`circle`}),v(f(V),{rows:1,variant:`p`,class:m(a.$style.skeletonName)},null,8,[`class`])],64)):(e(),r(p,{key:1},[v(X,{agent:i.selectedAgent,size:`xl`},null,8,[`agent`]),v(f(N),{tag:`h2`,size:`xlarge`,class:m(a.$style.agentName)},{default:T(()=>[t(l(f(M)(i.selectedAgent.name,40)),1)]),_:1},8,[`class`])],64)),i.loading?(e(),r(p,{key:2},[v(f(V),{rows:3,variant:`p`,"shrink-last":!1,class:m(a.$style.skeletonDescription)},null,8,[`class`]),n(`div`,{class:m([a.$style.suggestions,a.$style.skeletonPrompts])},[v(f(V),{rows:1,variant:`p`,class:m(a.$style.skeletonChip)},null,8,[`class`]),v(f(V),{rows:1,variant:`p`,class:m(a.$style.skeletonChip)},null,8,[`class`])],2)],64)):(e(),r(p,{key:3},[i.selectedAgent.description?(e(),r(`p`,{key:0,class:m(a.$style.agentDescription)},l(i.selectedAgent.description),3)):u(``,!0),i.selectedAgent.suggestedPrompts?.length?(e(),S(je,{key:1,class:m(a.$style.suggestions),prompts:i.selectedAgent.suggestedPrompts,onSelect:o[0]||=e=>s(`select-prompt`,e)},null,8,[`class`,`prompts`])):u(``,!0)],64))],2)):(e(),r(`div`,{key:1,class:m(a.$style.header)},[i.selectedAgent?(e(),r(p,{key:0},[v(f(N),{tag:`h2`},{default:T(()=>[t(l(f(d).baseText(`chatHub.chat.greeting`)),1)]),_:1}),v(X,{agent:i.selectedAgent,size:`md`,class:m(a.$style.inlineIcon)},null,8,[`agent`,`class`]),v(f(N),{bold:``},{default:T(()=>[t(l(f(M)(i.selectedAgent.name,40)),1)]),_:1})],64)):(e(),S(f(N),{key:1,tag:`h2`},{default:T(()=>[t(l(f(d).baseText(`chatHub.chat.greeting.fallback`)),1)]),_:1}))],2))],2))}}),[[`__cssModules`,{$style:{greetings:`_greetings_17frw_125`,agentCard:`_agentCard_17frw_132`,agentName:`_agentName_17frw_140`,agentDescription:`_agentDescription_17frw_148`,suggestions:`_suggestions_17frw_158`,skeletonName:`_skeletonName_17frw_162`,skeletonDescription:`_skeletonDescription_17frw_167`,skeletonPrompts:`_skeletonPrompts_17frw_172`,skeletonChip:`_skeletonChip_17frw_178`,header:`_header_17frw_182`,inlineIcon:`_inlineIcon_17frw_188`}}]]);export{me as i,ke as n,we as r,Me as t};
//# sourceMappingURL=ChatGreetings-DnhhyYq1.js.map