n8n-editor-ui 1.118.0 → 1.119.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.build/cache-marker +1 -1
- package/.build/node-popularity.json +1987 -1987
- package/README.md +1 -1
- package/dist/assets/{AddDataTableModal-zxWuqmjd.js → AddDataTableModal-78UiDOZ6.js} +20 -20
- package/dist/assets/AnimatedSpinner-CoP6Lyme.css +39 -0
- package/dist/assets/{AnimatedSpinner-DRB4A7Dx.js → AnimatedSpinner-Dd4F9nQ8.js} +2 -2
- package/dist/assets/{AnnotationTagsDropdown.ee-eHW-3UoT.js → AnnotationTagsDropdown.ee-B5SGfmxY.js} +2 -3
- package/dist/assets/{AuthView-ChkAJQce.js → AuthView-CaCXt20h.js} +6 -6
- package/dist/assets/{ChangePasswordView-Nm079kBG.js → ChangePasswordView-sh87mWR6.js} +12 -12
- package/dist/assets/ChatAgentsView-4SiYQ9YJ.js +339 -0
- package/dist/assets/{SettingsUsageAndPlan-pptm91gP.css → ChatAgentsView-Be_TXcAc.css} +94 -68
- package/dist/assets/{ChatSidebar-F_DQiqTc.js → ChatSidebar-C0XXqw3v.js} +38 -31
- package/dist/assets/{ChatView-Bpfv5CaB.js → ChatView-BlkLzP1X.js} +345 -502
- package/dist/assets/{ChatView-tcBlz_g5.css → ChatView-DHznMgQO.css} +60 -349
- package/dist/assets/CollectionParameter-C5ROyrxR.js +58 -0
- package/dist/assets/{CommunityNodeUpdateInfo-vlTmL7RM.js → CommunityNodeUpdateInfo-rHUGLO4H.js} +9 -9
- package/dist/assets/{CopyInput-CwgZTYF4.css → CopyInput-BiDmlr9B.css} +12 -10
- package/dist/assets/{CopyInput-DC5_nXn2.js → CopyInput-DX-FL085.js} +11 -11
- package/dist/assets/{CredentialIcon-BcBcgIsH.js → CredentialIcon-DS3l06t2.js} +2 -2
- package/dist/assets/{CredentialsView-BPSVyrpG.js → CredentialsView-C3SKDwtI.js} +33 -34
- package/dist/assets/{DataTableActions-Cx76tjWJ.js → DataTableActions-lgRuMb9F.js} +7 -7
- package/dist/assets/{DataTableDetailsView-BGWJ7DaO.js → DataTableDetailsView-CoWw-4gy.js} +24 -24
- package/dist/assets/{DataTableDetailsView-CxS46D7a.css → DataTableDetailsView-D4DdqXoL.css} +46 -49
- package/dist/assets/{DataTableView-DAaraaIS.js → DataTableView-hUsgVnZS.js} +30 -31
- package/dist/assets/DemoFooter-C4xOK61v.js +71 -0
- package/dist/assets/{Draggable-BQvrISN2.js → Draggable-DFf4aD-Y.js} +1 -1
- package/dist/assets/{EmptySharedSectionActionBox-Chhv6WKy.js → EmptySharedSectionActionBox-BkPu0yI0.js} +4 -4
- package/dist/assets/{EnterpriseEdition.ee-CS9batXq.js → EnterpriseEdition.ee-BoNEV-MB.js} +1 -1
- package/dist/assets/{EntityNotFound-CKlXW1IL.js → EntityNotFound-Bs-aLs3W.js} +5 -5
- package/dist/assets/{EntityNotFound-DfstTvbZ.css → EntityNotFound-D6gi5ngN.css} +2 -2
- package/dist/assets/{EntityUnAuthorised-DB0HgLOM.js → EntityUnAuthorised-BwhGn6eD.js} +5 -5
- package/dist/assets/{EntityUnAuthorised-C6EIQ1Pq.css → EntityUnAuthorised-D3XTbU6Y.css} +2 -2
- package/dist/assets/{ErrorView-BcG-b8ZO.js → ErrorView-Cvlb8nm0.js} +6 -6
- package/dist/assets/{EvaluationsRootView-p42ZUoIa.js → EvaluationsRootView-BoWo5n7U.js} +23 -23
- package/dist/assets/{EvaluationsView-DsfXDJ-U.css → EvaluationsView-CmcDUAS_.css} +6 -6
- package/dist/assets/{EvaluationsView-BEMEtmQ-.js → EvaluationsView-DxiPOlGL.js} +22 -22
- package/dist/assets/{ExecutionsTime-qhi9xQEs.css → ExecutionsTime-BpajgDjV.css} +6 -6
- package/dist/assets/{ExecutionsTime-DnWwIkdL.js → ExecutionsTime-DwXL-TY4.js} +10 -10
- package/dist/assets/{ExecutionsView-BvXMj9Vu.js → ExecutionsView-B4XGhWmY.js} +52 -42
- package/dist/assets/{ExecutionsView-f-kKRR2k.css → ExecutionsView-DP5OXlS4.css} +6 -6
- package/dist/assets/{ExternalSecretsProviderConnectionSwitch-Df3YK0La.css → ExternalSecretsProviderConnectionSwitch-dpp96SMy.css} +2 -2
- package/dist/assets/{ExternalSecretsProviderConnectionSwitch.ee-DsoWhFxH.js → ExternalSecretsProviderConnectionSwitch.ee-DCTg0mdX.js} +5 -5
- package/dist/assets/{FixedCollectionParameter-CiWWNV7x.js → FixedCollectionParameter-CbrkbI18.js} +49 -49
- package/dist/assets/{FixedCollectionParameter-BkEju_IA.css → FixedCollectionParameter-CgkIJeik.css} +19 -19
- package/dist/assets/{ForgotMyPasswordView-DyxwrSiM.js → ForgotMyPasswordView-KkAVBYit.js} +12 -12
- package/dist/assets/{InsightsChartAverageRuntime-B9_qwMgO.js → InsightsChartAverageRuntime-D5Gh8Rz5.js} +8 -8
- package/dist/assets/{InsightsChartFailed-D8rDUthj.js → InsightsChartFailed-D7PZ_ctV.js} +7 -7
- package/dist/assets/{InsightsChartFailureRate-D7MEDAWL.js → InsightsChartFailureRate-CpPU5Kwd.js} +8 -8
- package/dist/assets/{InsightsChartTimeSaved-BjEX9cpj.js → InsightsChartTimeSaved-DYrv2t2N.js} +8 -8
- package/dist/assets/{InsightsChartTotal-f6iwgPv4.js → InsightsChartTotal-CNqL-Qn3.js} +7 -7
- package/dist/assets/{InsightsDashboard-CXRybzGm.css → InsightsDashboard-B5vBl-U6.css} +24 -24
- package/dist/assets/{InsightsDashboard-Bx8KpVtA.js → InsightsDashboard-CrJZtNDS.js} +54 -49
- package/dist/assets/{InsightsPaywall-ChwaaAze.js → InsightsPaywall-DxgcxZ5z.js} +13 -13
- package/dist/assets/{InsightsSummary-B_Sl6ewi.js → InsightsSummary-Bew3_p6D.js} +18 -18
- package/dist/assets/{InsightsSummary-BazqPYQ0.css → InsightsSummary-D4HBxG4I.css} +26 -26
- package/dist/assets/{InsightsTableWorkflows-B6X6oYiV.js → InsightsTableWorkflows-TAIASHgR.js} +13 -13
- package/dist/assets/{ItemsRenderer-CBKvYrWq.js → ItemsRenderer-CDnrNwFM.js} +21 -25
- package/dist/assets/{ItemsRenderer-B89wKDHQ.css → ItemsRenderer-Cr6c6uYy.css} +21 -21
- package/dist/assets/{KeyboardShortcutTooltip-CXKgjDIT.js → KeyboardShortcutTooltip-y1pBqAge.js} +1 -1
- package/dist/assets/LogsPanel-DO45i29S.js +58 -0
- package/dist/assets/{LogsPanel-C9ihuzgY.js → LogsPanel-DjqKF4Sg.js} +35 -35
- package/dist/assets/{LogsPanel-K1M_gOCT.css → LogsPanel-GVBE8bfm.css} +17 -17
- package/dist/assets/{MainHeader-CmU7j5GG.js → MainHeader-BSUhbWAN.js} +53 -53
- package/dist/assets/{MainHeader-QMv9Ba5g.css → MainHeader-Dz9UViYg.css} +22 -22
- package/dist/assets/{MainSidebar-BqoiqeXY.css → MainSidebar-BBUhoceu.css} +15 -15
- package/dist/assets/{MainSidebar-BxPyEMiS.js → MainSidebar-DIKtZSUX.js} +50 -43
- package/dist/assets/{MainSidebarUserArea-ByBQ0UAN.js → MainSidebarUserArea-UHX8ACa4.js} +5 -5
- package/dist/assets/{Modal-C6HnfA6j.css → Modal-DNkRJkUt.css} +5 -5
- package/dist/assets/{Modal-3SRv9esg.js → Modal-DwutFKNY.js} +12 -12
- package/dist/assets/{ModalDrawer-D09_H3WU.js → ModalDrawer-B2sNzJVm.js} +6 -6
- package/dist/assets/{NDVEmptyState-CFiiknri.js → NDVEmptyState-DdpBamQ9.js} +1 -1
- package/dist/assets/{NodeCreation-u6TbXLrA.js → NodeCreation-C1Hw9qFl.js} +44 -44
- package/dist/assets/{NodeCreator-C-oYFkbs.css → NodeCreator-JpUhf2LN.css} +63 -52
- package/dist/assets/{NodeCreator-BXGYbkZf.js → NodeCreator-ZjTzj0ie.js} +63 -61
- package/dist/assets/{NodeDetailsView-ZROQTwH7.js → NodeDetailsView-CvvoyhiW.js} +64 -64
- package/dist/assets/{NodeDetailsViewV2-rAVfbsOa.css → NodeDetailsViewV2-Ckt2LIo-.css} +19 -19
- package/dist/assets/{NodeDetailsViewV2-FP7sM1NB.js → NodeDetailsViewV2-yMKVDJ3k.js} +77 -77
- package/dist/assets/{NodeIcon-DbpKADJJ.js → NodeIcon-C-rkj6sB.js} +7 -6
- package/dist/assets/{NodeIcon-C-Ise6x6.css → NodeIcon-eaW3atZy.css} +2 -2
- package/dist/assets/{NodeSettings-B50suDD9.css → NodeSettings-DKlYbu9E.css} +80 -77
- package/dist/assets/{NodeSettings-C7FfbVQv.js → NodeSettings-Dr-l_1nO.js} +35 -35
- package/dist/assets/{NodeView-KpAB56Z3.css → NodeView-CnbgHMAv.css} +25 -26
- package/dist/assets/{NodeView-DJ75lhF1.js → NodeView-DUcpE7do.js} +97 -97
- package/dist/assets/{PageViewLayout-CCwb27rd.js → PageViewLayout-Ccqeja5V.js} +2 -2
- package/dist/assets/{PageViewLayout-BIiboMgG.css → PageViewLayout-Cn6FD0Wt.css} +4 -4
- package/dist/assets/{ParameterInputList-gPv74p0o.js → ParameterInputList-BzN5Xx73.js} +175 -171
- package/dist/assets/{ParameterInputList-aGPYvt18.css → ParameterInputList-D18bFGrO.css} +265 -265
- package/dist/assets/{PrebuiltAgentTemplatesView-CPHRp9d1.js → PrebuiltAgentTemplatesView-BTy_QfVt.js} +15 -15
- package/dist/assets/{ProjectBreadcrumb-HQc8Y6pX.js → ProjectBreadcrumb-scGlGqYf.js} +4 -4
- package/dist/assets/{ProjectCardBadge-DhvyVuW1.js → ProjectCardBadge-p4AY0ubu.js} +5 -5
- package/dist/assets/{ProjectHeader-CVo15mE_.js → ProjectHeader-BZeiGuD6.js} +34 -11
- package/dist/assets/{ProjectIcon-Doey-RQc.js → ProjectIcon-DqKjDNbR.js} +1 -1
- package/dist/assets/{ProjectRoleView-CcTSQCDB.js → ProjectRoleView-ByzrSQP-.js} +22 -22
- package/dist/assets/{ProjectRoleView-Cewy9KCA.css → ProjectRoleView-Ds9qdhh9.css} +12 -12
- package/dist/assets/{ProjectRolesView-B1bJiMcv.js → ProjectRolesView-DclD8eEm.js} +16 -16
- package/dist/assets/{ProjectSettings-CkiVn4IE.js → ProjectSettings-4wa93sE4.js} +36 -37
- package/dist/assets/{ProjectSettings-BQOluc3A.css → ProjectSettings-vir6puPd.css} +23 -23
- package/dist/assets/{ProjectSharing-BEoNZXWQ.js → ProjectSharing-BVPUxo_M.js} +5 -5
- package/dist/assets/ProjectVariables-eH7fm87s.css +421 -0
- package/dist/assets/{ProjectVariables-XgLTDYWe.js → ProjectVariables-x9spBaqX.js} +86 -79
- package/dist/assets/{PushConnectionTracker-B8U5jb2a.js → PushConnectionTracker-DYamPLyc.js} +3 -3
- package/dist/assets/{ResourcesListLayout-B8d0Asrt.css → ResourcesListLayout-BXBf2iZI.css} +8 -8
- package/dist/assets/{ResourcesListLayout-Dsx1VsiN.js → ResourcesListLayout-UXbxK1S7.js} +11 -11
- package/dist/assets/{RunDataHtml-DCb1Egc3.js → RunDataHtml-X9lzUZaX.js} +1 -1
- package/dist/assets/{RunDataJson-DE42Mwzq.js → RunDataJson-CxLotBq-.js} +14 -14
- package/dist/assets/{RunDataJsonActions-BTkggY4p.js → RunDataJsonActions-qylVa2u8.js} +12 -12
- package/dist/assets/{RunDataParsedAiContent-KxWt3HUI.js → RunDataParsedAiContent-Cs80jq_q.js} +8 -8
- package/dist/assets/RunDataParsedAiContent-DBP5JHe4.js +25 -0
- package/dist/assets/{RunDataSearch-CBirDE7f.js → RunDataSearch-BvoYWH8W.js} +7 -7
- package/dist/assets/{RunDataTable-CnUH-sL_.css → RunDataTable-HBCyaP8o.css} +54 -54
- package/dist/assets/{RunDataTable-DYt1Fkzz.js → RunDataTable-d3eXUdSg.js} +44 -44
- package/dist/assets/{SamlOnboarding-Cpwf2P16.js → SamlOnboarding-CRtDDWqf.js} +12 -12
- package/dist/assets/{SaveButton-C2Gkwcd6.js → SaveButton-D1iDaopV.js} +3 -3
- package/dist/assets/{SelectedItemsInfo-BO9w2ntq.js → SelectedItemsInfo-CSzniBOD.js} +2 -2
- package/dist/assets/{SettingsApiView-RqjYRzOu.js → SettingsApiView-DqnHEaAj.js} +17 -17
- package/dist/assets/{SettingsCommunityNodesView-CrY_Cdll.js → SettingsCommunityNodesView-BzheuUxN.js} +31 -32
- package/dist/assets/{SettingsExternalSecrets-D4NwV7eZ.js → SettingsExternalSecrets-CqTHs6zk.js} +15 -15
- package/dist/assets/{SettingsLdapView-KgMO_1GA.css → SettingsLdapView-BuamZyhu.css} +11 -11
- package/dist/assets/{SettingsLdapView-DK1CISMa.js → SettingsLdapView-zifHhZKy.js} +25 -25
- package/dist/assets/{SettingsLogStreamingView-CKd4kHKk.js → SettingsLogStreamingView-CQwuqSl8.js} +17 -17
- package/dist/assets/{SettingsMCPView-BBsH7xGg.js → SettingsMCPView-3CpNrA5D.js} +36 -35
- package/dist/assets/{SettingsPersonalView-BuRaIsdm.js → SettingsPersonalView-C1NF8zuk.js} +22 -22
- package/dist/assets/{SettingsPersonalView-D6LtKnaF.css → SettingsPersonalView-DEpYU3TT.css} +14 -17
- package/dist/assets/{SettingsProvisioningView-SzLNb4Qo.js → SettingsProvisioningView-BFUB6c2Z.js} +10 -10
- package/dist/assets/{SettingsSourceControl-B7hg6-GG.js → SettingsSourceControl-CZryQCqT.js} +17 -17
- package/dist/assets/{SettingsSso-BxCxR3wV.js → SettingsSso-CeeFO_Pv.js} +18 -18
- package/dist/assets/SettingsUsageAndPlan-DLcBOCSU.css +462 -0
- package/dist/assets/{SettingsUsageAndPlan-DFJos9P4.js → SettingsUsageAndPlan-M1DF8QfE.js} +139 -22
- package/dist/assets/{SettingsUsersView-DyEDhF0q.js → SettingsUsersView-DWVyE4hY.js} +23 -18
- package/dist/assets/{SettingsView-Do6kHuex.js → SettingsView-trF6L-tM.js} +8 -8
- package/dist/assets/{SetupTemplateFormStep-BC6Gv9Yn.js → SetupTemplateFormStep-BsgzR5CN.js} +6 -6
- package/dist/assets/{SetupView-B5VLMQdy.js → SetupView-Bx4ZLcja.js} +12 -12
- package/dist/assets/{SetupWorkflowCredentialsButton-Sj0qCAav.js → SetupWorkflowCredentialsButton-DR_aufFd.js} +9 -9
- package/dist/assets/{SetupWorkflowFromTemplateView-yiqZFDT5.js → SetupWorkflowFromTemplateView-Ded77Ph-.js} +18 -18
- package/dist/assets/{SigninView-B4TcSDoQ.js → SigninView-DXPofyPm.js} +13 -13
- package/dist/assets/{SignoutView-33NqF1r1.js → SignoutView-B7H_dRJO.js} +9 -9
- package/dist/assets/{SignupView-C9yQZPU6.js → SignupView-BHWVvwh8.js} +12 -12
- package/dist/assets/{TagsDropdown-CBK5Jbvx.js → TagsDropdown-D6CYk5R8.js} +4 -5
- package/dist/assets/{TemplateDetails-_9SG9Ptr.js → TemplateDetails-ezK9JOOl.js} +7 -7
- package/dist/assets/{TemplateList-DciGHvZb.js → TemplateList-DztR2yKa.js} +5 -5
- package/dist/assets/{TemplatesCollectionView--u6YfGq2.js → TemplatesCollectionView-Bu_YRd84.js} +20 -20
- package/dist/assets/{TemplatesSearchView-DdLKh1uT.js → TemplatesSearchView-C7zBEV2b.js} +18 -18
- package/dist/assets/{TemplatesView-FCDPW2Yq.js → TemplatesView-BnozPkTX.js} +7 -7
- package/dist/assets/{TemplatesView-BgdyYmrL.css → TemplatesView-iSPzXjQB.css} +6 -6
- package/dist/assets/{TemplatesWorkflowView-CzE7VNEW.js → TemplatesWorkflowView-BTyHc3MG.js} +22 -22
- package/dist/assets/{TestRunDetailView-BePevBGV.js → TestRunDetailView-B76TM9u8.js} +36 -36
- package/dist/assets/{TestRunDetailView-DkQcfFP4.css → TestRunDetailView-CVGty0j0.css} +28 -28
- package/dist/assets/{TimeAgo-BbJFpIo5.js → TimeAgo-Gv5h1Utx.js} +2 -2
- package/dist/assets/{TriggerPanel-Bo5r6zd1.js → TriggerPanel-BD9WuZSq.js} +28 -28
- package/dist/assets/{TriggerPanel-D5WejHyJ.css → TriggerPanel-BQveVt6Q.css} +19 -19
- package/dist/assets/{VirtualSchema-CSh2c6Ec.css → VirtualSchema-BJ-Q30Fz.css} +51 -49
- package/dist/assets/{VirtualSchema-7sIAPeE0.js → VirtualSchema-BwIrkOUg.js} +21 -21
- package/dist/assets/VirtualSchema-ksNVivg3.js +43 -0
- package/dist/assets/{VueMarkdown-70GnkI0W.js → VueMarkdown-CiR4a0gO.js} +1 -1
- package/dist/assets/{WorkerView-D8am2TKI.js → WorkerView-DNyW9R8a.js} +36 -39
- package/dist/assets/{WorkflowActivator-BNp0duVE.css → WorkflowActivator-DSgMORP6.css} +2 -2
- package/dist/assets/{WorkflowActivator-CbrL5beg.js → WorkflowActivator-k3HTYXbc.js} +9 -9
- package/dist/assets/{WorkflowExecutionsInfoAccordion-Cb62PR2q.js → WorkflowExecutionsInfoAccordion-DL5cBkbK.js} +7 -7
- package/dist/assets/{WorkflowExecutionsLandingPage-DbwtOrCN.js → WorkflowExecutionsLandingPage-DlXz9Jry.js} +18 -18
- package/dist/assets/{WorkflowExecutionsPreview-BS7_jcuB.js → WorkflowExecutionsPreview-DJWD2i74.js} +22 -22
- package/dist/assets/{WorkflowExecutionsView-DYDAaUZI.js → WorkflowExecutionsView-4l7hfPcb.js} +71 -71
- package/dist/assets/{WorkflowExecutionsView-9RB5OO5c.css → WorkflowExecutionsView-J4lWGYW8.css} +36 -36
- package/dist/assets/{WorkflowHistory-BwpkfMMS.js → WorkflowHistory-Cb-ZoRBp.js} +26 -35
- package/dist/assets/{WorkflowOnboardingView-aMUbBMqV.js → WorkflowOnboardingView-CguOMlib.js} +8 -8
- package/dist/assets/{WorkflowPreview-Bt03akXc.css → WorkflowPreview-CYpzxJej.css} +8 -8
- package/dist/assets/{WorkflowPreview-B48ruNsM.js → WorkflowPreview-DY79uYFw.js} +12 -12
- package/dist/assets/{WorkflowTagsDropdown-D2XbYd5V.js → WorkflowTagsDropdown-CdEFZM1A.js} +2 -3
- package/dist/assets/{WorkflowsView-DiNDMl-G.js → WorkflowsView-DIavWNuQ.js} +53 -49
- package/dist/assets/{_MapCache-BGBKpT5S.js → _MapCache-Byd-DTfo.js} +50 -12
- package/dist/assets/{apiKeys.store-BVgdNKhA.js → apiKeys.store-CPsBJKkq.js} +1 -1
- package/dist/assets/{assistant.store-Bifc8qm3.js → assistant.store-DvuxtpS4.js} +16 -8
- package/dist/assets/{auth.eventBus-CUpasXbj.js → auth.eventBus-YsWbuB84.js} +1 -1
- package/dist/assets/{VariablesView-PPP4k5c3.css → banners-UK5wWFEI.css} +21 -25
- package/dist/assets/banners.store-BQPwuqhn.js +192 -0
- package/dist/assets/{chartjs.utils-DrHDj0Lr.js → chartjs.utils-Bf07Y-P-.js} +3 -3
- package/dist/assets/{chatPanel.store-CGEgwWy1.js → chatPanel.store-fM-8PK9i.js} +4 -4
- package/dist/assets/{cloudPlan.store-BJqRknNR.js → cloudPlan.store-DrraBpZJ.js} +18 -3
- package/dist/assets/{col-b1w4xo57.js → col-DK_GtMhM.js} +3 -3
- package/dist/assets/{constants-DlQs6Cav.js → constants-CPQyU8WO.js} +4 -2
- package/dist/assets/{constants-CO7BXe8z.js → constants-DvlTm3U4.js} +404 -314
- package/dist/assets/{core-CGHB7oTc.js → core-6lPsS9S5.js} +1 -1
- package/dist/assets/{dataTable.store-ttcUlJRw.js → dataTable.store-u9fGWest.js} +2 -2
- package/dist/assets/{date-picker-YLC0sjSf.js → date-picker-CVSd-BRt.js} +3 -3
- package/dist/assets/{dateFormatter-jkly8a5N.js → dateFormatter-BD73Za8B.js} +1 -1
- package/dist/assets/{dialog-B1U4ND70.js → dialog-BMoy5MDa.js} +4 -4
- package/dist/assets/{dist-BCqe3G7U.js → dist-CWw8iddm.js} +1 -1
- package/dist/assets/{es-BO7MlKL2.js → es-BazDU8Wd.js} +1 -1
- package/dist/assets/{evaluation.constants-Bk1c697W.js → evaluation.constants-CIiAC2dT.js} +3 -3
- package/dist/assets/{executions.store-BK5GLhI-.js → executions.store-IU9p1s46.js} +1 -1
- package/dist/assets/{externalSecrets.ee.store-DyO5hFK8.js → externalSecrets.ee.store-1z63wMHN.js} +2 -2
- package/dist/assets/{focusPanel.store-Cakdvw91.js → focusPanel.store-BJpwjMIG.js} +4 -4
- package/dist/assets/{folders.store-Cbs7HYLv.js → folders.store-Db975T-w.js} +2 -2
- package/dist/assets/{icon-C8yfF1LY.js → icon-DhADuA9N.js} +1 -1
- package/dist/assets/{index-D9KM9gTZ.css → index-C8erHZ_Y.css} +492 -321
- package/dist/assets/{index-BLT1lCJl.js → index-Dqdzxupj.js} +615 -519
- package/dist/assets/{insights.store-m7dTgwU4.js → insights.store-DC_enAA-.js} +16 -8
- package/dist/assets/{insights.utils-7zZgNSKk.js → insights.utils-ClJRVRAK.js} +2 -2
- package/dist/assets/{isEmpty-Dh4aNe51.js → isEmpty-BLwDER56.js} +144 -120
- package/dist/assets/{isEmpty-B-mcFJ04.css → isEmpty-CAtRkxE7.css} +101 -101
- package/dist/assets/{languageModules-B8UNBljm.js → languageModules-CNluY7w0.js} +1 -1
- package/dist/assets/{logStreaming.store-CkZizwRc.js → logStreaming.store-CPvxjcQB.js} +1 -1
- package/dist/assets/{mcp.store-C8vagCPq.js → mcp.store-YGfe2oZU.js} +2 -2
- package/dist/assets/{merge-Db6rb1_m.js → merge-CKEa8BM2.js} +1 -1
- package/dist/assets/{nodeCreator.store-DKWP5T3f.js → nodeCreator.store-Cxxl141g.js} +1995 -1995
- package/dist/assets/nodeIcon-ry_JIpAT.js +98 -0
- package/dist/assets/{nodeTransforms-smKGxdJz.js → nodeTransforms-PeZUYiCs.js} +2 -2
- package/dist/assets/{npsSurvey.store-D44ME1MU.js → npsSurvey.store-BTpA4Bdf.js} +2 -2
- package/dist/assets/{orderBy-B8m2WvN5.js → orderBy-CMVxNao4.js} +2 -2
- package/dist/assets/{overlay-DeoWJ8oB.js → overlay-B8MMvNgs.js} +2 -2
- package/dist/assets/{personalizedTemplatesV3.store-xAoq0hdB.js → personalizedTemplatesV3.store-C0D2WZuq.js} +4 -4
- package/dist/assets/{pickBy-CsEPk_gZ.js → pickBy-DWZbVA0W.js} +2 -3
- package/dist/assets/{radio-j4rSUoao.js → radio-5XOrKEP7.js} +3 -3
- package/dist/assets/{readyToRunWorkflows.store-0tf5VDt7.js → readyToRunWorkflows.store-C23cIyhu.js} +5 -5
- package/dist/assets/{readyToRunWorkflowsV2.store-VvLyAD65.js → readyToRunWorkflowsV2.store-BxZUJyXQ.js} +40 -58
- package/dist/assets/{roles.store-ZwchRX8D.js → roles.store-Bk6Eo7y8.js} +2 -2
- package/dist/assets/{router-jJtZZKZh.js → router-CSYdJor8.js} +118 -115
- package/dist/assets/{schemaPreview.store--hX2TXb-.js → schemaPreview.store-BVhugjbw.js} +2 -2
- package/dist/assets/{semver-CqxA3iSr.js → semver-lN9oCZPq.js} +1 -1
- package/dist/assets/{sourceControl.eventBus-B10rpVhp.js → sourceControl.eventBus-BkPwCZw_.js} +1 -1
- package/dist/assets/{src-Cl0xZtCE.js → src-D6S9Khji.js} +38 -24
- package/dist/assets/{src-C5a_PFvg.css → src-sI-DsSQQ.css} +10 -9
- package/dist/assets/{sso.store-CUl7u_8B.js → sso.store-qzj82Xj4.js} +1 -1
- package/dist/assets/{table-B9oFv7WW.js → table-s-zqHExs.js} +3 -3
- package/dist/assets/{templateActions-0m3shEBq.js → templateActions-BeIpzgaa.js} +4 -4
- package/dist/assets/{templateTransforms-DAKKzDnq.js → templateTransforms-Cgy40V1P.js} +1 -1
- package/dist/assets/templates.store-COjIpQaS.js +3907 -0
- package/dist/assets/{truncate-Dc79aML5.js → truncate-DGRsht-H.js} +1 -1
- package/dist/assets/{uniqBy-BPM3FjgB.js → uniqBy-BUNHbbw3.js} +1 -1
- package/dist/assets/{usage.store-D55n_Sb8.js → usage.store-EBmhHKPv.js} +6 -3
- package/dist/assets/{useActions-CLFMsePu.js → useActions-BATfRxpg.js} +5 -5
- package/dist/assets/useAgent-BHJHCfap.js +10 -0
- package/dist/assets/{useBeforeUnload-BpdETqAC.js → useBeforeUnload-BPhnlPrH.js} +3 -3
- package/dist/assets/{useBugReporting-CtqZQ5ol.js → useBugReporting-oDEHgPM1.js} +9 -9
- package/dist/assets/{Canvas-Bn6gWZ4a.css → useCanvasMapping-Bldjj0CO.css} +154 -133
- package/dist/assets/{Canvas-C6GNMexh.js → useCanvasMapping-D6tov6XL.js} +2385 -2379
- package/dist/assets/{useCanvasOperations-CArZAi8X.js → useCanvasOperations-DTN9RbNQ.js} +13 -13
- package/dist/assets/useChatCredentials-AjXB38tk.css +442 -0
- package/dist/assets/useChatCredentials-CMV_NA0l.js +591 -0
- package/dist/assets/useChatHubSidebarState-CM9tokIj.js +640 -0
- package/dist/assets/{useClipboard-Ds1DthAm.js → useClipboard-fRnZpGbX.js} +2 -2
- package/dist/assets/{useCommandBar-O5fVoTOU.js → useCommandBar-BqWmMYs4.js} +108 -115
- package/dist/assets/{useDebounce-BRhQZVIC.js → useDebounce-BgcdaJ78.js} +2 -2
- package/dist/assets/{useExecutionData-Dx2GMasN.js → useExecutionData-Bk540rxU.js} +1 -1
- package/dist/assets/{useExecutionDebugging-CQ0k4sDj.js → useExecutionDebugging-BNrxsZTN.js} +7 -7
- package/dist/assets/{useExecutionHelpers-Bjt-batF.js → useExecutionHelpers-DrFWi6u7.js} +5 -5
- package/dist/assets/{useExternalHooks-DA3PzQce.js → useExternalHooks-SxBXYVNW.js} +1 -1
- package/dist/assets/{useImportCurlCommand-DlQ_fBtE.js → useImportCurlCommand-obipPNWg.js} +9 -9
- package/dist/assets/useIntersectionObserver-BkAtQAzK.js +33 -0
- package/dist/assets/{useKeybindings-CeZJtKID.js → useKeybindings-Ds1QlWW4.js} +4 -4
- package/dist/assets/{useLogsTreeExpand-jGcbObcQ.js → useLogsTreeExpand-BWca4dLp.js} +32 -32
- package/dist/assets/{useLogsTreeExpand-BT6XJR8J.css → useLogsTreeExpand-nZMKe2ps.css} +38 -35
- package/dist/assets/{useMcp-dgK39Qex.js → useMcp-_gyuyL1x.js} +2 -2
- package/dist/assets/{useMessage-BRYWi-M_.js → useMessage-Ceo97RRX.js} +5 -5
- package/dist/assets/{usePageRedirectionHelper-CHYQYVQk.js → usePageRedirectionHelper-C_ctyI4O.js} +4 -4
- package/dist/assets/{usePinnedData-wr8coWIe.js → usePinnedData-Csij2qN3.js} +5 -5
- package/dist/assets/{usePushConnection-BZ4Nfuk_.js → usePushConnection-30v29qWj.js} +20 -19
- package/dist/assets/{useRecentResources-BONr7qgn.js → useRecentResources-BRKdroHL.js} +9 -9
- package/dist/assets/{useRunWorkflow-B0NRhnNX.js → useRunWorkflow-hT6C_xWD.js} +16 -13
- package/dist/assets/{useTelemetry-C-PPHLYt.js → useTelemetry-EOV0Llso.js} +52 -157
- package/dist/assets/{useTelemetryContext-dbQiFzDe.js → useTelemetryContext-CSMUQPEW.js} +1 -1
- package/dist/assets/{useToast-DT24R-_J.js → useToast-BlMNYwds.js} +7 -7
- package/dist/assets/{useWorkflowActivate-BN-oa5MP.js → useWorkflowActivate-OfPMIBJ5.js} +8 -8
- package/dist/assets/{useWorkflowSaving-YMreJCAo.js → useWorkflowSaving-CWyt929n.js} +11 -11
- package/dist/assets/{useWorkflowsCache-5wmMXakz.js → useWorkflowsCache-BSXTJC8C.js} +1 -1
- package/dist/assets/{versions.store-DKb-5qaR.js → versions.store-Dx98n6R_.js} +3 -3
- package/dist/assets/{vue-json-pretty-DiH9ZFoW.js → vue-json-pretty-BltKoWq2.js} +1 -1
- package/dist/index.html +116 -114
- package/package.json +1 -1
- package/scripts/fetch-node-popularity.mjs +1 -1
- package/stylelint.config.mjs +7 -1
- package/dist/assets/AnimatedSpinner-ChSRgyeI.css +0 -39
- package/dist/assets/CollectionParameter-bg5wO6z0.js +0 -58
- package/dist/assets/DemoFooter-Dxf2cm1O.js +0 -71
- package/dist/assets/LogsPanel-CblMd42Q.js +0 -58
- package/dist/assets/ProjectVariables-Cw92ZPKE.css +0 -293
- package/dist/assets/RunDataParsedAiContent-wJyf5Rsy.js +0 -25
- package/dist/assets/VariablesUsageBadge-CQU1F9NU.css +0 -129
- package/dist/assets/VariablesUsageBadge-egc5OixT.js +0 -35
- package/dist/assets/VariablesView-oHNpwfBn.js +0 -456
- package/dist/assets/VirtualSchema-_6DLXPlB.js +0 -43
- package/dist/assets/nodeIcon-BAM1uNdC.js +0 -75
- package/dist/assets/templates.store-DTZvTwkj.js +0 -337
- package/dist/assets/useChatHubSidebarState-B3pC_PWc.js +0 -383
- package/dist/assets/useProjectPages-4anfp-hs.js +0 -13
- /package/dist/assets/{FileSaver.min-CR_3Le5x.js → FileSaver.min-DaytN8ae.js} +0 -0
- /package/dist/assets/{RunDataHtml-DOQ0pkg3.js → RunDataHtml-DdtrEw19.js} +0 -0
- /package/dist/assets/{TextWithHighlights-B8mQwCVK.js → TextWithHighlights-CxxIad3D.js} +0 -0
- /package/dist/assets/{buttons.esm-CnepylvE.js → buttons.esm-Euf82NbC.js} +0 -0
- /package/dist/assets/{chart-inxSB4fp.js → chart-BI8B7UPV.js} +0 -0
- /package/dist/assets/{core-BfCr8skN.js → core-CIkXL_1D.js} +0 -0
- /package/dist/assets/{exports-RJH1xso1.js → exports-D2D_Xd3F.js} +0 -0
- /package/dist/assets/{insights.constants-DK2g3nnD.js → insights.constants-NogjFJ3a.js} +0 -0
- /package/dist/assets/{smartDecimal-BitNC0jz.js → smartDecimal-5rgLDM96.js} +0 -0
- /package/dist/assets/{sortByProperty-CUhVU03p.js → sortByProperty-0UtqPmvJ.js} +0 -0
- /package/dist/assets/{typescript.worker-CkR7RUha.js → typescript.worker-DK2Qdfu7.js} +0 -0
- /package/dist/assets/{vue-B27A1Apg.js → vue-LyXhKoPx.js} +0 -0
- /package/dist/assets/{worker-DYbBH4SI.js → worker-CIvWfg3a.js} +0 -0
- /package/dist/assets/{xml-CcxXd9zY.js → xml-F7krcG3E.js} +0 -0
|
@@ -1,171 +1,55 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/es-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/es-BazDU8Wd.js","assets/core-CIkXL_1D.js","assets/chunk-6z4oVpB-.js","assets/languageModules-CNluY7w0.js","assets/xml-F7krcG3E.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import { o as __toESM } from "./chunk-6z4oVpB-.js";
|
|
3
|
-
import { C as computed, D as createElementBlock, E as createCommentVNode, G as nextTick, Gt as unref, It as ref, M as createVNode, P as defineComponent, Sn as toDisplayString, T as createBlock,
|
|
4
|
-
import { I as useSpeechRecognition, L as useSpeechSynthesis, M as useMediaQuery, P as useScroll,
|
|
5
|
-
import { Ct as
|
|
3
|
+
import { C as computed, D as createElementBlock, E as createCommentVNode, G as nextTick, Gt as unref, It as ref, M as createVNode, P as defineComponent, Sn as toDisplayString, T as createBlock, _ as Fragment, _n as normalizeClass, _t as watch, bt as withCtx, et as openBlock, h as withModifiers, it as renderList, j as createTextVNode, mt as useTemplateRef, q as onBeforeMount, w as createBaseVNode, yn as normalizeStyle } from "./vue.runtime.esm-bundler-DDuXT-9r.js";
|
|
4
|
+
import { I as useSpeechRecognition, L as useSpeechSynthesis, M as useMediaQuery, P as useScroll, gt as useI18n, j as useLocalStorage } from "./_MapCache-Byd-DTfo.js";
|
|
5
|
+
import { Ct as N8nInput_default, In as N8nText_default, Ln as N8nButton_default, Pn as N8nHeading_default, Tt as N8nIconButton_default, i as N8nScrollArea_default, mt as N8nLink_default, vt as N8nTooltip_default, yt as require_markdown_it_link_attributes, zn as N8nIcon_default } from "./src-D6S9Khji.js";
|
|
6
6
|
import "./en-BYTsM8fR.js";
|
|
7
7
|
import { t as __vitePreload } from "./preload-helper-CR0ecmWK.js";
|
|
8
8
|
import { t as __plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BwBpWJRZ.js";
|
|
9
|
-
import { b as useRouter,
|
|
10
|
-
import "./icon-
|
|
11
|
-
import "./overlay-
|
|
9
|
+
import { b as useRouter, y as useRoute } from "./truncate-DGRsht-H.js";
|
|
10
|
+
import "./icon-DhADuA9N.js";
|
|
11
|
+
import "./overlay-B8MMvNgs.js";
|
|
12
12
|
import "./empty-BuGRxzl4.js";
|
|
13
|
-
import "./
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
13
|
+
import "./useMessage-Ceo97RRX.js";
|
|
14
|
+
import "./dialog-BMoy5MDa.js";
|
|
15
|
+
import { Ni as useUIStore, Tn as useDocumentTitle, er as useUsersStore, xc as v4_default } from "./useTelemetry-EOV0Llso.js";
|
|
16
|
+
import { t as useToast } from "./useToast-BlMNYwds.js";
|
|
16
17
|
import "./sanitize-html-BuXr7o4T.js";
|
|
17
18
|
import "./path-browserify-DsmB_HMK.js";
|
|
18
|
-
import {
|
|
19
|
-
import "./merge-
|
|
19
|
+
import { Zo as LOCAL_STORAGE_CHAT_HUB_SELECTED_MODEL, cr as PROVIDER_CREDENTIAL_TYPE_MAP, lr as chatHubConversationModelSchema, mo as VIEWS } from "./constants-DvlTm3U4.js";
|
|
20
|
+
import "./merge-CKEa8BM2.js";
|
|
20
21
|
import "./dateformat-D7TIhVd4.js";
|
|
21
|
-
import "./useDebounce-
|
|
22
|
-
import "./useExternalHooks-
|
|
22
|
+
import "./useDebounce-BgcdaJ78.js";
|
|
23
|
+
import "./useExternalHooks-SxBXYVNW.js";
|
|
23
24
|
import "./retry-sDkwzrPY.js";
|
|
24
|
-
import { t as useClipboard } from "./useClipboard-
|
|
25
|
-
import
|
|
26
|
-
import
|
|
27
|
-
import { a as
|
|
28
|
-
import { n as
|
|
29
|
-
import { t as
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
props: {
|
|
33
|
-
models: {},
|
|
34
|
-
selectedModel: {},
|
|
35
|
-
credentialsName: {}
|
|
36
|
-
},
|
|
37
|
-
emits: ["change", "configure"],
|
|
38
|
-
setup(__props, { expose: __expose, emit: __emit }) {
|
|
39
|
-
const props = __props;
|
|
40
|
-
const emit = __emit;
|
|
41
|
-
const dropdownRef = useTemplateRef("dropdownRef");
|
|
42
|
-
const menu = computed(() => chatHubProviderSchema.options.filter((provider) => provider !== "n8n").map((provider) => {
|
|
43
|
-
const models = props.models?.[provider].models ?? [];
|
|
44
|
-
const error = props.models?.[provider].error;
|
|
45
|
-
const modelOptions = models.length > 0 ? models.map((model) => {
|
|
46
|
-
return {
|
|
47
|
-
id: `${provider}::${model.provider === "n8n" ? model.workflowId : model.model}`,
|
|
48
|
-
title: model.name,
|
|
49
|
-
disabled: false
|
|
50
|
-
};
|
|
51
|
-
}) : error ? [{
|
|
52
|
-
id: `${provider}::error`,
|
|
53
|
-
value: null,
|
|
54
|
-
disabled: true,
|
|
55
|
-
title: error
|
|
56
|
-
}] : [];
|
|
57
|
-
const submenu = modelOptions.concat([...provider !== "n8n" && modelOptions.length > 0 ? [{
|
|
58
|
-
isDivider: true,
|
|
59
|
-
id: "divider"
|
|
60
|
-
}] : []]);
|
|
61
|
-
if (provider !== "n8n") submenu.push({
|
|
62
|
-
id: `${provider}::configure`,
|
|
63
|
-
icon: "settings",
|
|
64
|
-
title: "Configure credentials...",
|
|
65
|
-
disabled: false
|
|
66
|
-
});
|
|
67
|
-
return {
|
|
68
|
-
id: provider,
|
|
69
|
-
hidden: true,
|
|
70
|
-
title: providerDisplayNames[provider],
|
|
71
|
-
submenu
|
|
72
|
-
};
|
|
73
|
-
}));
|
|
74
|
-
const selectedLabel = computed(() => {
|
|
75
|
-
if (!props.selectedModel) return "Select model";
|
|
76
|
-
return props.selectedModel.name;
|
|
77
|
-
});
|
|
78
|
-
function onSelect(id) {
|
|
79
|
-
const [provider, identifier] = id.split("::");
|
|
80
|
-
const parsedProvider = chatHubProviderSchema.safeParse(provider).data;
|
|
81
|
-
if (!parsedProvider) return;
|
|
82
|
-
if (identifier === "configure" && parsedProvider !== "n8n") {
|
|
83
|
-
emit("configure", parsedProvider);
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
const model = parsedProvider === "n8n" ? null : identifier;
|
|
87
|
-
const workflowId = parsedProvider === "n8n" ? identifier : null;
|
|
88
|
-
const selected$1 = props.models?.[parsedProvider].models.find((m) => m.provider === "n8n" ? m.workflowId === workflowId : m.model === model);
|
|
89
|
-
if (!selected$1) return;
|
|
90
|
-
emit("change", selected$1);
|
|
91
|
-
}
|
|
92
|
-
onClickOutside(computed(() => dropdownRef.value?.$el), () => dropdownRef.value?.close());
|
|
93
|
-
__expose({ open: () => dropdownRef.value?.open() });
|
|
94
|
-
return (_ctx, _cache) => {
|
|
95
|
-
return openBlock(), createBlock(unref(N8nNavigationDropdown_default), {
|
|
96
|
-
ref_key: "dropdownRef",
|
|
97
|
-
ref: dropdownRef,
|
|
98
|
-
menu: menu.value,
|
|
99
|
-
onSelect
|
|
100
|
-
}, {
|
|
101
|
-
"item-icon": withCtx(({ item }) => [item.id in unref(PROVIDER_CREDENTIAL_TYPE_MAP) ? (openBlock(), createBlock(CredentialIcon_default, {
|
|
102
|
-
key: 0,
|
|
103
|
-
"credential-type-name": unref(PROVIDER_CREDENTIAL_TYPE_MAP)[item.id],
|
|
104
|
-
size: 16,
|
|
105
|
-
class: normalizeClass(_ctx.$style.menuIcon)
|
|
106
|
-
}, null, 8, ["credential-type-name", "class"])) : createCommentVNode("", true)]),
|
|
107
|
-
default: withCtx(() => [createVNode(unref(N8nButton_default), {
|
|
108
|
-
class: normalizeClass(_ctx.$style.dropdownButton),
|
|
109
|
-
type: "secondary",
|
|
110
|
-
text: ""
|
|
111
|
-
}, {
|
|
112
|
-
default: withCtx(() => [
|
|
113
|
-
_ctx.selectedModel && _ctx.selectedModel.provider in unref(PROVIDER_CREDENTIAL_TYPE_MAP) ? (openBlock(), createBlock(CredentialIcon_default, {
|
|
114
|
-
key: 0,
|
|
115
|
-
"credential-type-name": unref(PROVIDER_CREDENTIAL_TYPE_MAP)[_ctx.selectedModel.provider],
|
|
116
|
-
size: _ctx.credentialsName ? 20 : 16,
|
|
117
|
-
class: normalizeClass(_ctx.$style.icon)
|
|
118
|
-
}, null, 8, [
|
|
119
|
-
"credential-type-name",
|
|
120
|
-
"size",
|
|
121
|
-
"class"
|
|
122
|
-
])) : createCommentVNode("", true),
|
|
123
|
-
createBaseVNode("div", { class: normalizeClass(_ctx.$style.selected) }, [createBaseVNode("div", null, toDisplayString(selectedLabel.value), 1), _ctx.credentialsName ? (openBlock(), createBlock(unref(N8nText_default), {
|
|
124
|
-
key: 0,
|
|
125
|
-
size: "xsmall",
|
|
126
|
-
color: "text-light"
|
|
127
|
-
}, {
|
|
128
|
-
default: withCtx(() => [createTextVNode(toDisplayString(_ctx.credentialsName), 1)]),
|
|
129
|
-
_: 1
|
|
130
|
-
})) : createCommentVNode("", true)], 2),
|
|
131
|
-
createVNode(unref(N8nIcon_default), {
|
|
132
|
-
icon: "chevron-down",
|
|
133
|
-
size: "medium"
|
|
134
|
-
})
|
|
135
|
-
]),
|
|
136
|
-
_: 1
|
|
137
|
-
}, 8, ["class"])]),
|
|
138
|
-
_: 1
|
|
139
|
-
}, 8, ["menu"]);
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
var ModelSelector_vue_vue_type_style_index_0_lang_module_default = {
|
|
144
|
-
dropdownButton: "_dropdownButton_1go3j_123",
|
|
145
|
-
selected: "_selected_1go3j_131",
|
|
146
|
-
icon: "_icon_1go3j_144",
|
|
147
|
-
menuIcon: "_menuIcon_1go3j_149"
|
|
148
|
-
};
|
|
149
|
-
var ModelSelector_default = /* @__PURE__ */ __plugin_vue_export_helper_default(ModelSelector_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": ModelSelector_vue_vue_type_style_index_0_lang_module_default }]]);
|
|
25
|
+
import { t as useClipboard } from "./useClipboard-fRnZpGbX.js";
|
|
26
|
+
import "./Modal-DwutFKNY.js";
|
|
27
|
+
import "./CredentialIcon-DS3l06t2.js";
|
|
28
|
+
import { a as MOBILE_MEDIA_QUERY, i as CHAT_VIEW, n as CHAT_CONVERSATION_VIEW, o as providerDisplayNames } from "./constants-CPQyU8WO.js";
|
|
29
|
+
import { a as findOneFromModelsResponse, d as unflattenModel, n as ChatAgentAvatar_default, r as useChatStore, t as useChatHubSidebarState } from "./useChatHubSidebarState-CM9tokIj.js";
|
|
30
|
+
import { n as AgentEditorModal_default, r as ModelSelector_default, t as useChatCredentials } from "./useChatCredentials-CMV_NA0l.js";
|
|
31
|
+
import { t as VueMarkdown_default } from "./VueMarkdown-CiR4a0gO.js";
|
|
32
|
+
import { t as useAgent } from "./useAgent-BHJHCfap.js";
|
|
150
33
|
var ChatConversationHeader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
151
34
|
__name: "ChatConversationHeader",
|
|
152
35
|
props: {
|
|
153
36
|
selectedModel: {},
|
|
154
|
-
credentials: {}
|
|
37
|
+
credentials: {},
|
|
38
|
+
readyToShowModelSelector: { type: Boolean }
|
|
155
39
|
},
|
|
156
40
|
emits: [
|
|
157
41
|
"selectModel",
|
|
158
|
-
"
|
|
159
|
-
"
|
|
42
|
+
"renameConversation",
|
|
43
|
+
"editCustomAgent",
|
|
44
|
+
"createCustomAgent",
|
|
45
|
+
"selectCredential",
|
|
46
|
+
"openWorkflow"
|
|
160
47
|
],
|
|
161
48
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
162
49
|
const emit = __emit;
|
|
163
50
|
const sidebar = useChatHubSidebarState();
|
|
164
|
-
const chatStore = useChatStore();
|
|
165
|
-
const credentialsStore = useCredentialsStore();
|
|
166
51
|
const router = useRouter();
|
|
167
52
|
const modelSelectorRef = useTemplateRef("modelSelectorRef");
|
|
168
|
-
const credentialsName = computed(() => __props.selectedModel ? credentialsStore.getCredentialById(__props.credentials[__props.selectedModel.provider] ?? "")?.name : void 0);
|
|
169
53
|
function onModelChange(selection) {
|
|
170
54
|
emit("selectModel", selection);
|
|
171
55
|
}
|
|
@@ -179,54 +63,124 @@ var ChatConversationHeader_vue_vue_type_script_setup_true_lang_default = /* @__P
|
|
|
179
63
|
__expose({ openModelSelector: () => modelSelectorRef.value?.open() });
|
|
180
64
|
return (_ctx, _cache) => {
|
|
181
65
|
return openBlock(), createElementBlock("div", { class: normalizeClass(_ctx.$style.component) }, [
|
|
182
|
-
|
|
66
|
+
createBaseVNode("div", { class: normalizeClass(_ctx.$style.grow) }, [
|
|
67
|
+
!unref(sidebar).isStatic.value ? (openBlock(), createBlock(unref(N8nIconButton_default), {
|
|
68
|
+
key: 0,
|
|
69
|
+
class: normalizeClass(_ctx.$style.menuButton),
|
|
70
|
+
type: "secondary",
|
|
71
|
+
icon: "panel-left",
|
|
72
|
+
text: "",
|
|
73
|
+
"icon-size": "large",
|
|
74
|
+
onClick: _cache[0] || (_cache[0] = ($event) => unref(sidebar).toggleOpen(true))
|
|
75
|
+
}, null, 8, ["class"])) : createCommentVNode("", true),
|
|
76
|
+
!unref(sidebar).isStatic.value ? (openBlock(), createBlock(unref(N8nIconButton_default), {
|
|
77
|
+
key: 1,
|
|
78
|
+
class: normalizeClass(_ctx.$style.menuButton),
|
|
79
|
+
type: "secondary",
|
|
80
|
+
icon: "square-pen",
|
|
81
|
+
text: "",
|
|
82
|
+
"icon-size": "large",
|
|
83
|
+
onClick: onNewChat
|
|
84
|
+
}, null, 8, ["class"])) : createCommentVNode("", true),
|
|
85
|
+
_ctx.readyToShowModelSelector ? (openBlock(), createBlock(ModelSelector_default, {
|
|
86
|
+
key: 2,
|
|
87
|
+
ref_key: "modelSelectorRef",
|
|
88
|
+
ref: modelSelectorRef,
|
|
89
|
+
selectedAgent: _ctx.selectedModel,
|
|
90
|
+
credentials: _ctx.credentials,
|
|
91
|
+
onChange: onModelChange,
|
|
92
|
+
onCreateCustomAgent: _cache[1] || (_cache[1] = ($event) => emit("createCustomAgent")),
|
|
93
|
+
onSelectCredential: _cache[2] || (_cache[2] = (provider, credentialId) => emit("selectCredential", provider, credentialId))
|
|
94
|
+
}, null, 8, ["selectedAgent", "credentials"])) : createCommentVNode("", true)
|
|
95
|
+
], 2),
|
|
96
|
+
_ctx.selectedModel?.model.provider === "custom-agent" ? (openBlock(), createBlock(unref(N8nButton_default), {
|
|
183
97
|
key: 0,
|
|
184
|
-
class: normalizeClass(_ctx.$style.
|
|
98
|
+
class: normalizeClass(_ctx.$style.editAgent),
|
|
185
99
|
type: "secondary",
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
onClick: _cache[
|
|
100
|
+
size: "small",
|
|
101
|
+
icon: "settings",
|
|
102
|
+
label: "Edit Agent",
|
|
103
|
+
onClick: _cache[3] || (_cache[3] = ($event) => emit("editCustomAgent", _ctx.selectedModel.model.agentId))
|
|
190
104
|
}, null, 8, ["class"])) : createCommentVNode("", true),
|
|
191
|
-
|
|
105
|
+
_ctx.selectedModel?.model.provider === "n8n" ? (openBlock(), createBlock(unref(N8nButton_default), {
|
|
192
106
|
key: 1,
|
|
193
|
-
class: normalizeClass(_ctx.$style.
|
|
107
|
+
class: normalizeClass(_ctx.$style.editAgent),
|
|
194
108
|
type: "secondary",
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
onClick:
|
|
199
|
-
}, null, 8, ["class"])) : createCommentVNode("", true)
|
|
200
|
-
createVNode(ModelSelector_default, {
|
|
201
|
-
ref_key: "modelSelectorRef",
|
|
202
|
-
ref: modelSelectorRef,
|
|
203
|
-
models: unref(chatStore).models ?? null,
|
|
204
|
-
"selected-model": _ctx.selectedModel,
|
|
205
|
-
"credentials-name": credentialsName.value,
|
|
206
|
-
onChange: onModelChange,
|
|
207
|
-
onConfigure: _cache[1] || (_cache[1] = ($event) => emit("setCredentials", $event))
|
|
208
|
-
}, null, 8, [
|
|
209
|
-
"models",
|
|
210
|
-
"selected-model",
|
|
211
|
-
"credentials-name"
|
|
212
|
-
])
|
|
109
|
+
size: "small",
|
|
110
|
+
icon: "settings",
|
|
111
|
+
label: "Open Workflow",
|
|
112
|
+
onClick: _cache[4] || (_cache[4] = ($event) => emit("openWorkflow", _ctx.selectedModel.model.workflowId))
|
|
113
|
+
}, null, 8, ["class"])) : createCommentVNode("", true)
|
|
213
114
|
], 2);
|
|
214
115
|
};
|
|
215
116
|
}
|
|
216
117
|
});
|
|
217
118
|
var ChatConversationHeader_vue_vue_type_style_index_0_lang_module_default = {
|
|
218
|
-
component: "
|
|
219
|
-
menuButton: "
|
|
220
|
-
|
|
119
|
+
component: "_component_1rkfw_123",
|
|
120
|
+
menuButton: "_menuButton_1rkfw_133",
|
|
121
|
+
grow: "_grow_1rkfw_137",
|
|
122
|
+
title: "_title_1rkfw_144",
|
|
123
|
+
editAgent: "_editAgent_1rkfw_148"
|
|
221
124
|
};
|
|
222
125
|
var ChatConversationHeader_default = /* @__PURE__ */ __plugin_vue_export_helper_default(ChatConversationHeader_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": ChatConversationHeader_vue_vue_type_style_index_0_lang_module_default }]]);
|
|
126
|
+
var ChatTypingIndicator_vue_vue_type_style_index_0_lang_module_default = {
|
|
127
|
+
typing: "_typing_9qr9t_123",
|
|
128
|
+
blink: "_blink_9qr9t_1"
|
|
129
|
+
};
|
|
130
|
+
var _sfc_main = {};
|
|
131
|
+
function _sfc_render(_ctx, _cache) {
|
|
132
|
+
return openBlock(), createElementBlock("span", { class: normalizeClass(_ctx.$style.typing) }, _cache[0] || (_cache[0] = [
|
|
133
|
+
createBaseVNode("i", null, null, -1),
|
|
134
|
+
createBaseVNode("i", null, null, -1),
|
|
135
|
+
createBaseVNode("i", null, null, -1)
|
|
136
|
+
]), 2);
|
|
137
|
+
}
|
|
138
|
+
var ChatTypingIndicator_default = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render], ["__cssModules", { "$style": ChatTypingIndicator_vue_vue_type_style_index_0_lang_module_default }]]);
|
|
139
|
+
var hljsInstance;
|
|
140
|
+
var asyncImport = { status: "uninitialized" };
|
|
141
|
+
function useChatHubMarkdownOptions() {
|
|
142
|
+
const forceReRenderKey = ref(0);
|
|
143
|
+
const markdownOptions = { highlight(str, lang) {
|
|
144
|
+
if (!lang) return "";
|
|
145
|
+
const normalizedLang = lang.toLowerCase();
|
|
146
|
+
if (hljsInstance?.getLanguage(normalizedLang)) try {
|
|
147
|
+
return hljsInstance.highlight(str, { language: normalizedLang }).value;
|
|
148
|
+
} catch {}
|
|
149
|
+
loadLanguageModules();
|
|
150
|
+
return "";
|
|
151
|
+
} };
|
|
152
|
+
async function loadLanguageModules() {
|
|
153
|
+
if (asyncImport.status === "done") return;
|
|
154
|
+
if (asyncImport.status === "inProgress") {
|
|
155
|
+
await asyncImport.promise;
|
|
156
|
+
forceReRenderKey.value++;
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
try {
|
|
160
|
+
asyncImport = {
|
|
161
|
+
status: "inProgress",
|
|
162
|
+
promise: Promise.all([__vitePreload(() => import("./es-BazDU8Wd.js"), __vite__mapDeps([0,1,2])), __vitePreload(() => import("./languageModules-CNluY7w0.js"), __vite__mapDeps([3,4]))])
|
|
163
|
+
};
|
|
164
|
+
const [hljs, languages] = await asyncImport.promise;
|
|
165
|
+
asyncImport = { status: "done" };
|
|
166
|
+
hljsInstance = hljs.default.newInstance();
|
|
167
|
+
for (const [lang, module] of Object.entries(languages)) hljsInstance.registerLanguage(lang, module);
|
|
168
|
+
forceReRenderKey.value++;
|
|
169
|
+
} catch (error) {
|
|
170
|
+
console.warn("Failed to load syntax highlighting modules", error);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
markdownOptions,
|
|
175
|
+
forceReRenderKey
|
|
176
|
+
};
|
|
177
|
+
}
|
|
223
178
|
var import_markdown_it_link_attributes = /* @__PURE__ */ __toESM(require_markdown_it_link_attributes());
|
|
224
179
|
var ChatMessageActions_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
225
180
|
__name: "ChatMessageActions",
|
|
226
181
|
props: {
|
|
227
|
-
type: {},
|
|
228
182
|
justCopied: { type: Boolean },
|
|
229
|
-
|
|
183
|
+
message: {},
|
|
230
184
|
alternatives: {},
|
|
231
185
|
isSpeechSynthesisAvailable: { type: Boolean },
|
|
232
186
|
isSpeaking: { type: Boolean }
|
|
@@ -240,12 +194,22 @@ var ChatMessageActions_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
|
|
|
240
194
|
],
|
|
241
195
|
setup(__props, { emit: __emit }) {
|
|
242
196
|
const i18n = useI18n();
|
|
197
|
+
const router = useRouter();
|
|
243
198
|
const emit = __emit;
|
|
244
199
|
const copyTooltip = computed(() => {
|
|
245
200
|
return __props.justCopied ? i18n.baseText("generic.copied") : i18n.baseText("generic.copy");
|
|
246
201
|
});
|
|
247
202
|
const currentAlternativeIndex = computed(() => {
|
|
248
|
-
return __props.alternatives.findIndex((id) => id === __props.
|
|
203
|
+
return __props.alternatives.findIndex((id) => id === __props.message.id);
|
|
204
|
+
});
|
|
205
|
+
const executionUrl = computed(() => {
|
|
206
|
+
if (__props.message.type === "ai" && __props.message.provider === "n8n" && __props.message.executionId) return router.resolve({
|
|
207
|
+
name: VIEWS.EXECUTION_PREVIEW,
|
|
208
|
+
params: {
|
|
209
|
+
name: __props.message.workflowId,
|
|
210
|
+
executionId: __props.message.executionId
|
|
211
|
+
}
|
|
212
|
+
}).href;
|
|
249
213
|
});
|
|
250
214
|
function handleCopy() {
|
|
251
215
|
emit("copy");
|
|
@@ -275,7 +239,7 @@ var ChatMessageActions_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
|
|
|
275
239
|
}, null, 8, ["icon"])]),
|
|
276
240
|
_: 1
|
|
277
241
|
}),
|
|
278
|
-
_ctx.isSpeechSynthesisAvailable && _ctx.type === "ai" ? (openBlock(), createBlock(unref(N8nTooltip_default), {
|
|
242
|
+
_ctx.isSpeechSynthesisAvailable && _ctx.message.type === "ai" ? (openBlock(), createBlock(unref(N8nTooltip_default), {
|
|
279
243
|
key: 0,
|
|
280
244
|
placement: "bottom",
|
|
281
245
|
"show-after": 300
|
|
@@ -304,7 +268,7 @@ var ChatMessageActions_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
|
|
|
304
268
|
})]),
|
|
305
269
|
_: 1
|
|
306
270
|
}),
|
|
307
|
-
_ctx.type === "ai" ? (openBlock(), createBlock(unref(N8nTooltip_default), {
|
|
271
|
+
_ctx.message.type === "ai" ? (openBlock(), createBlock(unref(N8nTooltip_default), {
|
|
308
272
|
key: 1,
|
|
309
273
|
placement: "bottom",
|
|
310
274
|
"show-after": 300
|
|
@@ -319,7 +283,27 @@ var ChatMessageActions_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
|
|
|
319
283
|
})]),
|
|
320
284
|
_: 1
|
|
321
285
|
})) : createCommentVNode("", true),
|
|
322
|
-
_ctx.
|
|
286
|
+
executionUrl.value && _ctx.message.executionId ? (openBlock(), createBlock(unref(N8nTooltip_default), {
|
|
287
|
+
key: 2,
|
|
288
|
+
placement: "bottom",
|
|
289
|
+
"show-after": 300
|
|
290
|
+
}, {
|
|
291
|
+
content: withCtx(() => [_cache[4] || (_cache[4] = createTextVNode(" Execution ID: ")), createVNode(unref(N8nLink_default), {
|
|
292
|
+
to: executionUrl.value,
|
|
293
|
+
"new-window": true
|
|
294
|
+
}, {
|
|
295
|
+
default: withCtx(() => [createTextVNode(toDisplayString(_ctx.message.executionId), 1)]),
|
|
296
|
+
_: 1
|
|
297
|
+
}, 8, ["to"])]),
|
|
298
|
+
default: withCtx(() => [createVNode(unref(N8nIconButton_default), {
|
|
299
|
+
icon: "info",
|
|
300
|
+
type: "tertiary",
|
|
301
|
+
size: "medium",
|
|
302
|
+
text: ""
|
|
303
|
+
})]),
|
|
304
|
+
_: 1
|
|
305
|
+
})) : createCommentVNode("", true),
|
|
306
|
+
_ctx.alternatives.length > 1 ? (openBlock(), createElementBlock(Fragment, { key: 3 }, [
|
|
323
307
|
createVNode(unref(N8nIconButton_default), {
|
|
324
308
|
icon: "chevron-left",
|
|
325
309
|
type: "tertiary",
|
|
@@ -349,59 +333,7 @@ var ChatMessageActions_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
|
|
|
349
333
|
}
|
|
350
334
|
});
|
|
351
335
|
var ChatMessageActions_vue_vue_type_style_index_0_lang_module_default = { actions: "_actions_1sizk_123" };
|
|
352
|
-
var ChatMessageActions_default = /* @__PURE__ */ __plugin_vue_export_helper_default(ChatMessageActions_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": ChatMessageActions_vue_vue_type_style_index_0_lang_module_default }], ["__scopeId", "data-v-
|
|
353
|
-
var ChatTypingIndicator_vue_vue_type_style_index_0_lang_module_default = {
|
|
354
|
-
typing: "_typing_9qr9t_123",
|
|
355
|
-
blink: "_blink_9qr9t_1"
|
|
356
|
-
};
|
|
357
|
-
var _sfc_main = {};
|
|
358
|
-
function _sfc_render(_ctx, _cache) {
|
|
359
|
-
return openBlock(), createElementBlock("span", { class: normalizeClass(_ctx.$style.typing) }, _cache[0] || (_cache[0] = [
|
|
360
|
-
createBaseVNode("i", null, null, -1),
|
|
361
|
-
createBaseVNode("i", null, null, -1),
|
|
362
|
-
createBaseVNode("i", null, null, -1)
|
|
363
|
-
]), 2);
|
|
364
|
-
}
|
|
365
|
-
var ChatTypingIndicator_default = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render], ["__cssModules", { "$style": ChatTypingIndicator_vue_vue_type_style_index_0_lang_module_default }]]);
|
|
366
|
-
var hljsInstance;
|
|
367
|
-
var asyncImport = { status: "uninitialized" };
|
|
368
|
-
function useChatHubMarkdownOptions() {
|
|
369
|
-
const forceReRenderKey = ref(0);
|
|
370
|
-
const markdownOptions = { highlight(str, lang) {
|
|
371
|
-
if (!lang) return "";
|
|
372
|
-
const normalizedLang = lang.toLowerCase();
|
|
373
|
-
if (hljsInstance?.getLanguage(normalizedLang)) try {
|
|
374
|
-
return hljsInstance.highlight(str, { language: normalizedLang }).value;
|
|
375
|
-
} catch {}
|
|
376
|
-
loadLanguageModules();
|
|
377
|
-
return "";
|
|
378
|
-
} };
|
|
379
|
-
async function loadLanguageModules() {
|
|
380
|
-
if (asyncImport.status === "done") return;
|
|
381
|
-
if (asyncImport.status === "inProgress") {
|
|
382
|
-
await asyncImport.promise;
|
|
383
|
-
forceReRenderKey.value++;
|
|
384
|
-
return;
|
|
385
|
-
}
|
|
386
|
-
try {
|
|
387
|
-
asyncImport = {
|
|
388
|
-
status: "inProgress",
|
|
389
|
-
promise: Promise.all([__vitePreload(() => import("./es-BO7MlKL2.js"), __vite__mapDeps([0,1,2])), __vitePreload(() => import("./languageModules-B8UNBljm.js"), __vite__mapDeps([3,4]))])
|
|
390
|
-
};
|
|
391
|
-
const [hljs, languages] = await asyncImport.promise;
|
|
392
|
-
asyncImport = { status: "done" };
|
|
393
|
-
hljsInstance = hljs.default.newInstance();
|
|
394
|
-
for (const [lang, module] of Object.entries(languages)) hljsInstance.registerLanguage(lang, module);
|
|
395
|
-
forceReRenderKey.value++;
|
|
396
|
-
} catch (error) {
|
|
397
|
-
console.warn("Failed to load syntax highlighting modules", error);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
return {
|
|
401
|
-
markdownOptions,
|
|
402
|
-
forceReRenderKey
|
|
403
|
-
};
|
|
404
|
-
}
|
|
336
|
+
var ChatMessageActions_default = /* @__PURE__ */ __plugin_vue_export_helper_default(ChatMessageActions_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": ChatMessageActions_vue_vue_type_style_index_0_lang_module_default }], ["__scopeId", "data-v-1a4933d7"]]);
|
|
405
337
|
var _hoisted_1 = ["data-message-id"];
|
|
406
338
|
var ChatMessage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
407
339
|
__name: "ChatMessage",
|
|
@@ -431,10 +363,7 @@ var ChatMessage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
431
363
|
rate: 1,
|
|
432
364
|
volume: 1
|
|
433
365
|
});
|
|
434
|
-
const
|
|
435
|
-
if (__props.message.type !== "ai" || !__props.message.provider || __props.message.provider === "n8n") return null;
|
|
436
|
-
return PROVIDER_CREDENTIAL_TYPE_MAP[__props.message.provider] ?? null;
|
|
437
|
-
});
|
|
366
|
+
const agent = useAgent(computed(() => unflattenModel(__props.message)));
|
|
438
367
|
async function handleCopy() {
|
|
439
368
|
const text = __props.message.content;
|
|
440
369
|
await clipboard.copy(text);
|
|
@@ -496,18 +425,12 @@ var ChatMessage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
496
425
|
icon: "user",
|
|
497
426
|
width: "20",
|
|
498
427
|
height: "20"
|
|
499
|
-
})) :
|
|
428
|
+
})) : unref(agent) ? (openBlock(), createBlock(ChatAgentAvatar_default, {
|
|
500
429
|
key: 1,
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
default: withCtx(() => [createVNode(CredentialIcon_default, {
|
|
506
|
-
size: 20,
|
|
507
|
-
"credential-type-name": credentialTypeName.value
|
|
508
|
-
}, null, 8, ["credential-type-name"])]),
|
|
509
|
-
_: 1
|
|
510
|
-
})) : (openBlock(), createBlock(unref(N8nIcon_default), {
|
|
430
|
+
agent: unref(agent),
|
|
431
|
+
size: "md",
|
|
432
|
+
tooltip: ""
|
|
433
|
+
}, null, 8, ["agent"])) : (openBlock(), createBlock(unref(N8nIcon_default), {
|
|
511
434
|
key: 2,
|
|
512
435
|
icon: "sparkles",
|
|
513
436
|
width: "20",
|
|
@@ -543,7 +466,7 @@ var ChatMessage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
543
466
|
}, 8, ["disabled"])], 2)], 2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createBaseVNode("div", { class: normalizeClass(_ctx.$style.chatMessage) }, [(openBlock(), createBlock(unref(VueMarkdown_default), {
|
|
544
467
|
key: unref(forceReRenderKey),
|
|
545
468
|
class: normalizeClass([_ctx.$style.chatMessageMarkdown, "chat-message-markdown"]),
|
|
546
|
-
source: _ctx.message.content,
|
|
469
|
+
source: _ctx.message.status === "error" && !_ctx.message.content ? "Error: Unknown error occurred" : _ctx.message.content,
|
|
547
470
|
options: unref(markdownOptions),
|
|
548
471
|
plugins: [linksNewTabPlugin]
|
|
549
472
|
}, null, 8, [
|
|
@@ -556,12 +479,11 @@ var ChatMessage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
556
479
|
class: normalizeClass(_ctx.$style.typingIndicator)
|
|
557
480
|
}, null, 8, ["class"])) : (openBlock(), createBlock(ChatMessageActions_default, {
|
|
558
481
|
key: 1,
|
|
559
|
-
type: _ctx.message.type,
|
|
560
482
|
"just-copied": justCopied.value,
|
|
561
483
|
"is-speech-synthesis-available": unref(speech).isSupported.value,
|
|
562
484
|
"is-speaking": unref(speech).isPlaying.value,
|
|
563
485
|
class: normalizeClass(_ctx.$style.actions),
|
|
564
|
-
|
|
486
|
+
message: _ctx.message,
|
|
565
487
|
alternatives: _ctx.message.alternatives,
|
|
566
488
|
onCopy: handleCopy,
|
|
567
489
|
onEdit: handleEdit,
|
|
@@ -569,12 +491,11 @@ var ChatMessage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
569
491
|
onReadAloud: handleReadAloud,
|
|
570
492
|
onSwitchAlternative: handleSwitchAlternative
|
|
571
493
|
}, null, 8, [
|
|
572
|
-
"type",
|
|
573
494
|
"just-copied",
|
|
574
495
|
"is-speech-synthesis-available",
|
|
575
496
|
"is-speaking",
|
|
576
497
|
"class",
|
|
577
|
-
"message
|
|
498
|
+
"message",
|
|
578
499
|
"alternatives"
|
|
579
500
|
]))], 64))], 2)], 14, _hoisted_1);
|
|
580
501
|
};
|
|
@@ -599,6 +520,7 @@ var ChatPrompt_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
599
520
|
__name: "ChatPrompt",
|
|
600
521
|
props: {
|
|
601
522
|
isResponding: { type: Boolean },
|
|
523
|
+
isNewSession: { type: Boolean },
|
|
602
524
|
selectedModel: {},
|
|
603
525
|
isMissingCredentials: { type: Boolean }
|
|
604
526
|
},
|
|
@@ -618,10 +540,8 @@ var ChatPrompt_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
618
540
|
interimResults: true,
|
|
619
541
|
lang: navigator.language
|
|
620
542
|
});
|
|
621
|
-
const placeholder = computed(() => {
|
|
622
|
-
|
|
623
|
-
return `Message ${__props.selectedModel.name}`;
|
|
624
|
-
});
|
|
543
|
+
const placeholder = computed(() => __props.selectedModel ? `Message ${__props.selectedModel.name ?? "a model"}...` : "Select a model");
|
|
544
|
+
const llmProvider = computed(() => __props.selectedModel?.model.provider === "n8n" || __props.selectedModel?.model.provider === "custom-agent" ? void 0 : __props.selectedModel?.model.provider);
|
|
625
545
|
function onMic() {
|
|
626
546
|
if (speechInput.isListening.value) speechInput.stop();
|
|
627
547
|
else speechInput.start();
|
|
@@ -672,34 +592,48 @@ var ChatPrompt_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
672
592
|
key: 0,
|
|
673
593
|
class: normalizeClass(_ctx.$style.callout)
|
|
674
594
|
}, {
|
|
675
|
-
default: withCtx(() => [
|
|
676
|
-
_cache[
|
|
595
|
+
default: withCtx(() => [_ctx.isNewSession ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
596
|
+
_cache[5] || (_cache[5] = createTextVNode(" Please ")),
|
|
677
597
|
createBaseVNode("a", {
|
|
678
598
|
href: "",
|
|
679
599
|
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => emit("selectModel"), ["prevent"]))
|
|
680
600
|
}, "select a model"),
|
|
681
|
-
_cache[
|
|
682
|
-
]),
|
|
601
|
+
_cache[6] || (_cache[6] = createTextVNode(" to start a conversation "))
|
|
602
|
+
], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
603
|
+
_cache[7] || (_cache[7] = createTextVNode(" Please ")),
|
|
604
|
+
createBaseVNode("a", {
|
|
605
|
+
href: "",
|
|
606
|
+
onClick: _cache[1] || (_cache[1] = withModifiers(($event) => emit("selectModel"), ["prevent"]))
|
|
607
|
+
}, "reselect a model"),
|
|
608
|
+
_cache[8] || (_cache[8] = createTextVNode(" to continue the conversation "))
|
|
609
|
+
], 64))]),
|
|
683
610
|
_: 1
|
|
684
|
-
}, 8, ["class"])) : _ctx.isMissingCredentials ? (openBlock(), createBlock(unref(N8nText_default), {
|
|
611
|
+
}, 8, ["class"])) : _ctx.isMissingCredentials && llmProvider.value ? (openBlock(), createBlock(unref(N8nText_default), {
|
|
685
612
|
key: 1,
|
|
686
613
|
class: normalizeClass(_ctx.$style.callout)
|
|
687
614
|
}, {
|
|
688
|
-
default: withCtx(() => [
|
|
689
|
-
_cache[
|
|
615
|
+
default: withCtx(() => [_ctx.isNewSession ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
616
|
+
_cache[9] || (_cache[9] = createTextVNode(" Please ")),
|
|
690
617
|
createBaseVNode("a", {
|
|
691
618
|
href: "",
|
|
692
|
-
onClick: _cache[
|
|
619
|
+
onClick: _cache[2] || (_cache[2] = withModifiers(($event) => emit("setCredentials", llmProvider.value), ["prevent"]))
|
|
693
620
|
}, " set credentials "),
|
|
694
|
-
createTextVNode(" for " + toDisplayString(unref(providerDisplayNames)[
|
|
695
|
-
]),
|
|
621
|
+
createTextVNode(" for " + toDisplayString(unref(providerDisplayNames)[llmProvider.value]) + " to start a conversation ", 1)
|
|
622
|
+
], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
623
|
+
_cache[10] || (_cache[10] = createTextVNode(" Please ")),
|
|
624
|
+
createBaseVNode("a", {
|
|
625
|
+
href: "",
|
|
626
|
+
onClick: _cache[3] || (_cache[3] = withModifiers(($event) => emit("setCredentials", llmProvider.value), ["prevent"]))
|
|
627
|
+
}, " set credentials "),
|
|
628
|
+
createTextVNode(" for " + toDisplayString(unref(providerDisplayNames)[llmProvider.value]) + " to continue the conversation ", 1)
|
|
629
|
+
], 64))]),
|
|
696
630
|
_: 1
|
|
697
631
|
}, 8, ["class"])) : createCommentVNode("", true),
|
|
698
632
|
createVNode(unref(N8nInput_default), {
|
|
699
633
|
ref_key: "inputRef",
|
|
700
634
|
ref: inputRef,
|
|
701
635
|
modelValue: message$1.value,
|
|
702
|
-
"onUpdate:modelValue": _cache[
|
|
636
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => message$1.value = $event),
|
|
703
637
|
class: normalizeClass(_ctx.$style.input),
|
|
704
638
|
type: "textarea",
|
|
705
639
|
placeholder: placeholder.value,
|
|
@@ -786,108 +720,6 @@ var ChatStarter_vue_vue_type_style_index_0_lang_module_default = {
|
|
|
786
720
|
cardText: "_cardText_1julh_155"
|
|
787
721
|
};
|
|
788
722
|
var ChatStarter_default = /* @__PURE__ */ __plugin_vue_export_helper_default(ChatStarter_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": ChatStarter_vue_vue_type_style_index_0_lang_module_default }]]);
|
|
789
|
-
const credentialsMapSchema = recordType(chatHubProviderSchema, stringType().or(nullType()));
|
|
790
|
-
var CredentialSelectorModal_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
791
|
-
__name: "CredentialSelectorModal",
|
|
792
|
-
props: {
|
|
793
|
-
provider: {},
|
|
794
|
-
initialValue: {}
|
|
795
|
-
},
|
|
796
|
-
emits: ["select", "createNew"],
|
|
797
|
-
setup(__props, { emit: __emit }) {
|
|
798
|
-
const props = __props;
|
|
799
|
-
const emit = __emit;
|
|
800
|
-
const credentialsStore = useCredentialsStore();
|
|
801
|
-
const modalBus = ref(createEventBus());
|
|
802
|
-
const selectedCredentialId = ref(props.initialValue);
|
|
803
|
-
const availableCredentials = computed(() => {
|
|
804
|
-
return credentialsStore.getCredentialsByType(PROVIDER_CREDENTIAL_TYPE_MAP[props.provider]);
|
|
805
|
-
});
|
|
806
|
-
function onCredentialSelect(credentialId) {
|
|
807
|
-
selectedCredentialId.value = credentialId;
|
|
808
|
-
}
|
|
809
|
-
function onConfirm() {
|
|
810
|
-
if (selectedCredentialId.value) {
|
|
811
|
-
emit("select", props.provider, selectedCredentialId.value);
|
|
812
|
-
modalBus.value.emit("close");
|
|
813
|
-
}
|
|
814
|
-
}
|
|
815
|
-
function onCreateNew() {
|
|
816
|
-
emit("createNew", props.provider);
|
|
817
|
-
modalBus.value.emit("close");
|
|
818
|
-
}
|
|
819
|
-
function onCancel() {
|
|
820
|
-
modalBus.value.emit("close");
|
|
821
|
-
}
|
|
822
|
-
return (_ctx, _cache) => {
|
|
823
|
-
return openBlock(), createBlock(Modal_default, {
|
|
824
|
-
name: "chatCredentialSelector",
|
|
825
|
-
"event-bus": modalBus.value,
|
|
826
|
-
width: "50%",
|
|
827
|
-
center: true,
|
|
828
|
-
"max-width": "460px",
|
|
829
|
-
"min-height": "250px"
|
|
830
|
-
}, {
|
|
831
|
-
header: withCtx(() => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.header) }, [createVNode(CredentialIcon_default, {
|
|
832
|
-
"credential-type-name": unref(PROVIDER_CREDENTIAL_TYPE_MAP)[_ctx.provider],
|
|
833
|
-
size: 24,
|
|
834
|
-
class: normalizeClass(_ctx.$style.icon)
|
|
835
|
-
}, null, 8, ["credential-type-name", "class"]), createBaseVNode("h2", { class: normalizeClass(_ctx.$style.title) }, "Select " + toDisplayString(unref(providerDisplayNames)[_ctx.provider]) + " Credential", 3)], 2)]),
|
|
836
|
-
content: withCtx(() => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.content) }, [createVNode(unref(N8nText_default), {
|
|
837
|
-
size: "small",
|
|
838
|
-
color: "text-base"
|
|
839
|
-
}, {
|
|
840
|
-
default: withCtx(() => _cache[0] || (_cache[0] = [createTextVNode(" Choose an existing credential or create a new one ")])),
|
|
841
|
-
_: 1
|
|
842
|
-
}), createVNode(unref(N8nSelect_default), {
|
|
843
|
-
"model-value": selectedCredentialId.value,
|
|
844
|
-
size: "large",
|
|
845
|
-
placeholder: "Select credential...",
|
|
846
|
-
"onUpdate:modelValue": onCredentialSelect
|
|
847
|
-
}, {
|
|
848
|
-
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(availableCredentials.value, (credential) => {
|
|
849
|
-
return openBlock(), createBlock(unref(N8nOption_default), {
|
|
850
|
-
key: credential.id,
|
|
851
|
-
value: credential.id,
|
|
852
|
-
label: credential.name
|
|
853
|
-
}, null, 8, ["value", "label"]);
|
|
854
|
-
}), 128))]),
|
|
855
|
-
_: 1
|
|
856
|
-
}, 8, ["model-value"])], 2)]),
|
|
857
|
-
footer: withCtx(() => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.footer) }, [createVNode(unref(N8nButton_default), {
|
|
858
|
-
type: "secondary",
|
|
859
|
-
onClick: onCreateNew
|
|
860
|
-
}, {
|
|
861
|
-
default: withCtx(() => _cache[1] || (_cache[1] = [createTextVNode(" Create New ")])),
|
|
862
|
-
_: 1
|
|
863
|
-
}), createBaseVNode("div", { class: normalizeClass(_ctx.$style.footerRight) }, [createVNode(unref(N8nButton_default), {
|
|
864
|
-
type: "tertiary",
|
|
865
|
-
onClick: onCancel
|
|
866
|
-
}, {
|
|
867
|
-
default: withCtx(() => _cache[2] || (_cache[2] = [createTextVNode(" Cancel ")])),
|
|
868
|
-
_: 1
|
|
869
|
-
}), createVNode(unref(N8nButton_default), {
|
|
870
|
-
type: "primary",
|
|
871
|
-
disabled: !selectedCredentialId.value,
|
|
872
|
-
onClick: onConfirm
|
|
873
|
-
}, {
|
|
874
|
-
default: withCtx(() => _cache[3] || (_cache[3] = [createTextVNode(" Select ")])),
|
|
875
|
-
_: 1
|
|
876
|
-
}, 8, ["disabled"])], 2)], 2)]),
|
|
877
|
-
_: 1
|
|
878
|
-
}, 8, ["event-bus"]);
|
|
879
|
-
};
|
|
880
|
-
}
|
|
881
|
-
});
|
|
882
|
-
var CredentialSelectorModal_vue_vue_type_style_index_0_lang_module_default = {
|
|
883
|
-
title: "_title_1hes0_123",
|
|
884
|
-
content: "_content_1hes0_129",
|
|
885
|
-
footer: "_footer_1hes0_136",
|
|
886
|
-
footerRight: "_footerRight_1hes0_143",
|
|
887
|
-
header: "_header_1hes0_148",
|
|
888
|
-
icon: "_icon_1hes0_154"
|
|
889
|
-
};
|
|
890
|
-
var CredentialSelectorModal_default = /* @__PURE__ */ __plugin_vue_export_helper_default(CredentialSelectorModal_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": CredentialSelectorModal_vue_vue_type_style_index_0_lang_module_default }]]);
|
|
891
723
|
var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
892
724
|
__name: "ChatView",
|
|
893
725
|
setup(__props) {
|
|
@@ -895,7 +727,6 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
895
727
|
const route = useRoute();
|
|
896
728
|
const usersStore = useUsersStore();
|
|
897
729
|
const chatStore = useChatStore();
|
|
898
|
-
const credentialsStore = useCredentialsStore();
|
|
899
730
|
const toast = useToast();
|
|
900
731
|
const isMobileDevice$1 = useMediaQuery(MOBILE_MEDIA_QUERY);
|
|
901
732
|
const documentTitle = useDocumentTitle();
|
|
@@ -903,16 +734,18 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
903
734
|
const headerRef = useTemplateRef("headerRef");
|
|
904
735
|
const inputRef = useTemplateRef("inputRef");
|
|
905
736
|
const sessionId = computed(() => typeof route.params.id === "string" ? route.params.id : v4_default());
|
|
906
|
-
const
|
|
737
|
+
const isResponding = computed(() => chatStore.isResponding(sessionId.value));
|
|
738
|
+
const isNewSession$1 = computed(() => sessionId.value !== route.params.id);
|
|
907
739
|
const scrollableRef = useTemplateRef("scrollable");
|
|
908
740
|
const scrollContainerRef = computed(() => scrollableRef.value?.parentElement ?? null);
|
|
909
741
|
const currentConversation = computed(() => sessionId.value ? chatStore.sessions.find((session) => session.id === sessionId.value) : void 0);
|
|
910
742
|
const currentConversationTitle = computed(() => currentConversation.value?.title);
|
|
911
|
-
const
|
|
743
|
+
const readyToShowMessages = computed(() => chatStore.agentsReady);
|
|
744
|
+
const { arrivedState, measure } = useScroll(scrollContainerRef, {
|
|
912
745
|
throttle: 100,
|
|
913
746
|
offset: { bottom: 100 }
|
|
914
747
|
});
|
|
915
|
-
const
|
|
748
|
+
const defaultModel = useLocalStorage(LOCAL_STORAGE_CHAT_HUB_SELECTED_MODEL(usersStore.currentUserId ?? "anonymous"), null, {
|
|
916
749
|
writeDefaults: false,
|
|
917
750
|
shallow: true,
|
|
918
751
|
serializer: {
|
|
@@ -926,48 +759,47 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
926
759
|
write: (value) => JSON.stringify(value)
|
|
927
760
|
}
|
|
928
761
|
});
|
|
929
|
-
const
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
762
|
+
const modelFromQuery = computed(() => {
|
|
763
|
+
const agentId = route.query.agentId;
|
|
764
|
+
const workflowId = route.query.workflowId;
|
|
765
|
+
if (!isNewSession$1.value) return null;
|
|
766
|
+
if (typeof agentId === "string") return chatStore.getAgent({
|
|
767
|
+
provider: "custom-agent",
|
|
768
|
+
agentId
|
|
769
|
+
}) ?? null;
|
|
770
|
+
if (typeof workflowId === "string") return chatStore.getAgent({
|
|
771
|
+
provider: "n8n",
|
|
772
|
+
workflowId
|
|
773
|
+
}) ?? null;
|
|
774
|
+
return null;
|
|
775
|
+
});
|
|
776
|
+
const selectedModel = computed(() => {
|
|
777
|
+
if (!chatStore.agentsReady) return;
|
|
778
|
+
if (modelFromQuery.value) return modelFromQuery.value;
|
|
779
|
+
if (currentConversation.value?.provider) {
|
|
780
|
+
const model = unflattenModel(currentConversation.value);
|
|
781
|
+
return model ? chatStore.getAgent(model) : void 0;
|
|
941
782
|
}
|
|
783
|
+
if (chatStore.streaming?.sessionId === sessionId.value) return chatStore.getAgent(chatStore.streaming.model);
|
|
784
|
+
return defaultModel.value ? chatStore.getAgent(defaultModel.value) : void 0;
|
|
942
785
|
});
|
|
943
|
-
const
|
|
944
|
-
if (provider === "n8n") return [provider, null];
|
|
945
|
-
return [provider, credentialsStore.getCredentialsByType(PROVIDER_CREDENTIAL_TYPE_MAP[provider]).toSorted((a, b) => +new Date(b.createdAt) - +new Date(a.createdAt))[0]?.id ?? null];
|
|
946
|
-
})));
|
|
947
|
-
const mergedCredentials = computed(() => ({
|
|
948
|
-
...autoSelectCredentials.value,
|
|
949
|
-
...selectedCredentials.value
|
|
950
|
-
}));
|
|
786
|
+
const { credentialsByProvider, selectCredential } = useChatCredentials(usersStore.currentUserId ?? "anonymous");
|
|
951
787
|
const chatMessages = computed(() => chatStore.getActiveMessages(sessionId.value));
|
|
952
|
-
const
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
if (
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
788
|
+
const credentialsForSelectedProvider = computed(() => {
|
|
789
|
+
const provider = selectedModel.value?.model.provider;
|
|
790
|
+
if (!provider) return null;
|
|
791
|
+
if (provider === "custom-agent" || provider === "n8n") return {};
|
|
792
|
+
const credentialsId = credentialsByProvider.value?.[provider];
|
|
793
|
+
if (!credentialsId) return null;
|
|
794
|
+
return { [PROVIDER_CREDENTIAL_TYPE_MAP[provider]]: {
|
|
795
|
+
id: credentialsId,
|
|
796
|
+
name: ""
|
|
797
|
+
} };
|
|
962
798
|
});
|
|
799
|
+
const isMissingSelectedCredential = computed(() => !credentialsForSelectedProvider.value);
|
|
963
800
|
const editingMessageId = ref();
|
|
964
801
|
const didSubmitInCurrentSession = ref(false);
|
|
965
|
-
const
|
|
966
|
-
credentialsFetched: false,
|
|
967
|
-
modelsFetched: false
|
|
968
|
-
});
|
|
969
|
-
const credentialSelectorProvider = ref(null);
|
|
970
|
-
const isInitialized = computed(() => initialization.value.credentialsFetched && initialization.value.modelsFetched);
|
|
802
|
+
const editingAgentId = ref(void 0);
|
|
971
803
|
function scrollToBottom(smooth) {
|
|
972
804
|
scrollContainerRef.value?.scrollTo({
|
|
973
805
|
top: scrollableRef.value?.scrollHeight,
|
|
@@ -977,24 +809,24 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
977
809
|
function scrollToMessage(messageId) {
|
|
978
810
|
scrollableRef.value?.querySelector(`[data-message-id="${messageId}"]`)?.scrollIntoView({ behavior: "smooth" });
|
|
979
811
|
}
|
|
980
|
-
watch(() => chatMessages.value[chatMessages.value.length - 1]?.id, (lastMessageId) => {
|
|
981
|
-
if (!lastMessageId) return;
|
|
982
|
-
|
|
983
|
-
|
|
812
|
+
watch([readyToShowMessages, () => chatMessages.value[chatMessages.value.length - 1]?.id], ([ready, lastMessageId]) => {
|
|
813
|
+
if (!ready || !lastMessageId) return;
|
|
814
|
+
nextTick(measure);
|
|
815
|
+
if (chatStore.streaming?.sessionId === sessionId.value) {
|
|
816
|
+
scrollToMessage(chatStore.streaming.promptId);
|
|
984
817
|
return;
|
|
985
818
|
}
|
|
986
|
-
|
|
987
|
-
if (message$1?.previousMessageId) scrollToMessage(message$1.previousMessageId);
|
|
819
|
+
scrollToBottom(false);
|
|
988
820
|
}, {
|
|
989
821
|
immediate: true,
|
|
990
822
|
flush: "post"
|
|
991
823
|
});
|
|
992
|
-
watch(
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
824
|
+
watch(() => chatStore.agents, (models) => {
|
|
825
|
+
if (!models || !!selectedModel.value || !isNewSession$1.value) return;
|
|
826
|
+
const model = findOneFromModelsResponse(models) ?? null;
|
|
827
|
+
if (model) handleSelectModel(model);
|
|
996
828
|
}, { immediate: true });
|
|
997
|
-
watch([sessionId, isNewSession], async ([id, isNew]) => {
|
|
829
|
+
watch([sessionId, isNewSession$1], async ([id, isNew]) => {
|
|
998
830
|
didSubmitInCurrentSession.value = false;
|
|
999
831
|
if (!isNew && !chatStore.getConversation(id)) try {
|
|
1000
832
|
await chatStore.fetchMessages(id);
|
|
@@ -1002,26 +834,22 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
1002
834
|
toast.showError(error, "Error fetching a conversation");
|
|
1003
835
|
await router.push({ name: CHAT_VIEW });
|
|
1004
836
|
}
|
|
1005
|
-
inputRef.value?.focus();
|
|
1006
837
|
}, { immediate: true });
|
|
1007
|
-
watch(
|
|
1008
|
-
|
|
838
|
+
watch([inputRef, sessionId], ([input$1]) => {
|
|
839
|
+
input$1?.focus();
|
|
840
|
+
}, { immediate: true });
|
|
841
|
+
watch(currentConversationTitle, (title$1) => {
|
|
842
|
+
documentTitle.set(title$1 ?? "Chat");
|
|
843
|
+
}, { immediate: true });
|
|
844
|
+
watch(credentialsByProvider, (credentials) => {
|
|
845
|
+
if (credentials) chatStore.fetchAgents(credentials);
|
|
1009
846
|
}, { immediate: true });
|
|
1010
|
-
onMounted(async () => {
|
|
1011
|
-
await Promise.all([credentialsStore.fetchCredentialTypes(false), credentialsStore.fetchAllCredentials()]);
|
|
1012
|
-
initialization.value.credentialsFetched = true;
|
|
1013
|
-
});
|
|
1014
847
|
function onSubmit(message$1) {
|
|
1015
|
-
if (!message$1.trim() ||
|
|
848
|
+
if (!message$1.trim() || isResponding.value || !selectedModel.value || !credentialsForSelectedProvider.value) return;
|
|
1016
849
|
didSubmitInCurrentSession.value = true;
|
|
1017
|
-
|
|
1018
|
-
if (selectedModel.value.provider !== "n8n" && credentialsId.value) Object.assign(credentials, { [PROVIDER_CREDENTIAL_TYPE_MAP[selectedModel.value.provider]]: {
|
|
1019
|
-
id: credentialsId.value,
|
|
1020
|
-
name: ""
|
|
1021
|
-
} });
|
|
1022
|
-
chatStore.sendMessage(sessionId.value, message$1, selectedModel.value, credentials);
|
|
850
|
+
chatStore.sendMessage(sessionId.value, message$1, selectedModel.value.model, credentialsForSelectedProvider.value);
|
|
1023
851
|
inputRef.value?.setText("");
|
|
1024
|
-
if (isNewSession.value) router.push({
|
|
852
|
+
if (isNewSession$1.value) router.push({
|
|
1025
853
|
name: CHAT_CONVERSATION_VIEW,
|
|
1026
854
|
params: { id: sessionId.value }
|
|
1027
855
|
});
|
|
@@ -1036,72 +864,86 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
1036
864
|
editingMessageId.value = void 0;
|
|
1037
865
|
}
|
|
1038
866
|
function handleEditMessage(message$1) {
|
|
1039
|
-
if (
|
|
867
|
+
if (isResponding.value || !["human", "ai"].includes(message$1.type) || !selectedModel.value || !credentialsForSelectedProvider.value) return;
|
|
1040
868
|
const messageToEdit = message$1.revisionOfMessageId ?? message$1.id;
|
|
1041
|
-
chatStore.editMessage(sessionId.value, messageToEdit, message$1.content, selectedModel.value,
|
|
1042
|
-
id: credentialsId.value,
|
|
1043
|
-
name: ""
|
|
1044
|
-
} });
|
|
869
|
+
chatStore.editMessage(sessionId.value, messageToEdit, message$1.content, selectedModel.value.model, credentialsForSelectedProvider.value);
|
|
1045
870
|
editingMessageId.value = void 0;
|
|
1046
871
|
}
|
|
1047
872
|
function handleRegenerateMessage(message$1) {
|
|
1048
|
-
if (
|
|
873
|
+
if (isResponding.value || message$1.type !== "ai" || !selectedModel.value || !credentialsForSelectedProvider.value) return;
|
|
1049
874
|
const messageToRetry = message$1.retryOfMessageId ?? message$1.id;
|
|
1050
|
-
chatStore.regenerateMessage(sessionId.value, messageToRetry, selectedModel.value,
|
|
1051
|
-
id: credentialsId.value,
|
|
1052
|
-
name: ""
|
|
1053
|
-
} });
|
|
875
|
+
chatStore.regenerateMessage(sessionId.value, messageToRetry, selectedModel.value.model, credentialsForSelectedProvider.value);
|
|
1054
876
|
}
|
|
1055
|
-
function handleSelectModel(selection) {
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
};
|
|
877
|
+
async function handleSelectModel(selection) {
|
|
878
|
+
if (currentConversation.value) try {
|
|
879
|
+
await chatStore.updateSessionModel(sessionId.value, selection.model);
|
|
880
|
+
} catch (error) {
|
|
881
|
+
toast.showError(error, "Could not update selected model");
|
|
882
|
+
}
|
|
883
|
+
else defaultModel.value = selection.model;
|
|
1063
884
|
}
|
|
1064
885
|
function handleSwitchAlternative(messageId) {
|
|
1065
886
|
chatStore.switchAlternative(sessionId.value, messageId);
|
|
1066
887
|
}
|
|
1067
|
-
function handleConfigureCredentials(
|
|
1068
|
-
const credentialType = PROVIDER_CREDENTIAL_TYPE_MAP[provider];
|
|
1069
|
-
if (credentialsStore.getCredentialsByType(credentialType).length === 0) {
|
|
1070
|
-
uiStore.openNewCredential(credentialType);
|
|
1071
|
-
return;
|
|
1072
|
-
}
|
|
1073
|
-
credentialSelectorProvider.value = provider;
|
|
1074
|
-
uiStore.openModal("chatCredentialSelector");
|
|
1075
|
-
}
|
|
888
|
+
function handleConfigureCredentials(_provider) {}
|
|
1076
889
|
function handleConfigureModel() {
|
|
1077
890
|
headerRef.value?.openModelSelector();
|
|
1078
891
|
}
|
|
1079
|
-
function
|
|
1080
|
-
|
|
892
|
+
async function handleEditAgent(agentId) {
|
|
893
|
+
try {
|
|
894
|
+
await chatStore.fetchCustomAgent(agentId);
|
|
895
|
+
editingAgentId.value = agentId;
|
|
896
|
+
uiStore.openModal("agentEditor");
|
|
897
|
+
} catch (error) {
|
|
898
|
+
toast.showError(error, "Failed to load agent");
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
function openNewAgentCreator() {
|
|
902
|
+
chatStore.currentEditingAgent = null;
|
|
903
|
+
editingAgentId.value = void 0;
|
|
904
|
+
uiStore.openModal("agentEditor");
|
|
905
|
+
}
|
|
906
|
+
function closeAgentEditor() {
|
|
907
|
+
editingAgentId.value = void 0;
|
|
908
|
+
}
|
|
909
|
+
function handleOpenWorkflow(workflowId) {
|
|
910
|
+
const routeData = router.resolve({
|
|
911
|
+
name: VIEWS.WORKFLOW,
|
|
912
|
+
params: { name: workflowId }
|
|
913
|
+
});
|
|
914
|
+
window.open(routeData.href, "_blank");
|
|
1081
915
|
}
|
|
1082
916
|
return (_ctx, _cache) => {
|
|
1083
917
|
return openBlock(), createElementBlock("div", { class: normalizeClass([_ctx.$style.component, {
|
|
1084
|
-
[_ctx.$style.
|
|
918
|
+
[_ctx.$style.isNewSession]: isNewSession$1.value,
|
|
1085
919
|
[_ctx.$style.isMobileDevice]: unref(isMobileDevice$1)
|
|
1086
920
|
}]) }, [
|
|
1087
|
-
|
|
1088
|
-
key: 0,
|
|
921
|
+
createVNode(ChatConversationHeader_default, {
|
|
1089
922
|
ref_key: "headerRef",
|
|
1090
923
|
ref: headerRef,
|
|
1091
|
-
"selected-model":
|
|
1092
|
-
credentials:
|
|
924
|
+
"selected-model": selectedModel.value ?? null,
|
|
925
|
+
credentials: unref(credentialsByProvider),
|
|
926
|
+
"ready-to-show-model-selector": unref(chatStore).agentsReady,
|
|
1093
927
|
onSelectModel: handleSelectModel,
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
"
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
928
|
+
onEditCustomAgent: handleEditAgent,
|
|
929
|
+
onCreateCustomAgent: openNewAgentCreator,
|
|
930
|
+
onSelectCredential: unref(selectCredential),
|
|
931
|
+
onOpenWorkflow: handleOpenWorkflow
|
|
932
|
+
}, null, 8, [
|
|
933
|
+
"selected-model",
|
|
934
|
+
"credentials",
|
|
935
|
+
"ready-to-show-model-selector",
|
|
936
|
+
"onSelectCredential"
|
|
937
|
+
]),
|
|
938
|
+
unref(credentialsByProvider) ? (openBlock(), createBlock(AgentEditorModal_default, {
|
|
939
|
+
key: 0,
|
|
940
|
+
"agent-id": editingAgentId.value,
|
|
941
|
+
credentials: unref(credentialsByProvider),
|
|
942
|
+
onCreateCustomAgent: handleSelectModel,
|
|
943
|
+
onClose: closeAgentEditor
|
|
944
|
+
}, null, 8, ["agent-id", "credentials"])) : createCommentVNode("", true),
|
|
945
|
+
readyToShowMessages.value ? (openBlock(), createBlock(unref(N8nScrollArea_default), {
|
|
946
|
+
key: 1,
|
|
1105
947
|
type: "scroll",
|
|
1106
948
|
"enable-vertical-scroll": true,
|
|
1107
949
|
"enable-horizontal-scroll": false,
|
|
@@ -1111,7 +953,7 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
1111
953
|
default: withCtx(() => [createBaseVNode("div", {
|
|
1112
954
|
class: normalizeClass(_ctx.$style.scrollable),
|
|
1113
955
|
ref: "scrollable"
|
|
1114
|
-
}, [
|
|
956
|
+
}, [isNewSession$1.value ? (openBlock(), createBlock(ChatStarter_default, {
|
|
1115
957
|
key: 0,
|
|
1116
958
|
class: normalizeClass(_ctx.$style.starter),
|
|
1117
959
|
"is-mobile-device": unref(isMobileDevice$1)
|
|
@@ -1126,7 +968,7 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
1126
968
|
message: message$1,
|
|
1127
969
|
compact: unref(isMobileDevice$1),
|
|
1128
970
|
"is-editing": editingMessageId.value === message$1.id,
|
|
1129
|
-
"is-streaming":
|
|
971
|
+
"is-streaming": message$1.status === "running",
|
|
1130
972
|
"min-height": didSubmitInCurrentSession.value && message$1.type === "ai" && index === chatMessages.value.length - 1 && scrollContainerRef.value ? scrollContainerRef.value.offsetHeight - 30 - 200 : void 0,
|
|
1131
973
|
onStartEdit: ($event) => handleStartEditMessage(message$1.id),
|
|
1132
974
|
onCancelEdit: handleCancelEditMessage,
|
|
@@ -1141,21 +983,21 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
1141
983
|
"min-height",
|
|
1142
984
|
"onStartEdit"
|
|
1143
985
|
]);
|
|
1144
|
-
}), 128))], 2)), createBaseVNode("div", { class: normalizeClass(_ctx.$style.promptContainer) }, [!unref(arrivedState).bottom && !
|
|
986
|
+
}), 128))], 2)), createBaseVNode("div", { class: normalizeClass(_ctx.$style.promptContainer) }, [!unref(arrivedState).bottom && !isNewSession$1.value ? (openBlock(), createBlock(unref(N8nIconButton_default), {
|
|
1145
987
|
key: 0,
|
|
1146
988
|
type: "secondary",
|
|
1147
989
|
icon: "arrow-down",
|
|
1148
990
|
class: normalizeClass(_ctx.$style.scrollToBottomButton),
|
|
1149
991
|
title: "Scroll to bottom",
|
|
1150
992
|
onClick: _cache[0] || (_cache[0] = ($event) => scrollToBottom(true))
|
|
1151
|
-
}, null, 8, ["class"])) : createCommentVNode("", true),
|
|
1152
|
-
key: 1,
|
|
993
|
+
}, null, 8, ["class"])) : createCommentVNode("", true), createVNode(ChatPrompt_default, {
|
|
1153
994
|
ref_key: "inputRef",
|
|
1154
995
|
ref: inputRef,
|
|
1155
996
|
class: normalizeClass(_ctx.$style.prompt),
|
|
1156
|
-
"is-responding":
|
|
1157
|
-
"selected-model":
|
|
997
|
+
"is-responding": isResponding.value,
|
|
998
|
+
"selected-model": selectedModel.value ?? null,
|
|
1158
999
|
"is-missing-credentials": isMissingSelectedCredential.value,
|
|
1000
|
+
"is-new-session": isNewSession$1.value,
|
|
1159
1001
|
onSubmit,
|
|
1160
1002
|
onStop,
|
|
1161
1003
|
onSelectModel: handleConfigureModel,
|
|
@@ -1164,8 +1006,9 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
1164
1006
|
"class",
|
|
1165
1007
|
"is-responding",
|
|
1166
1008
|
"selected-model",
|
|
1167
|
-
"is-missing-credentials"
|
|
1168
|
-
|
|
1009
|
+
"is-missing-credentials",
|
|
1010
|
+
"is-new-session"
|
|
1011
|
+
])], 2)], 2)]),
|
|
1169
1012
|
_: 1
|
|
1170
1013
|
}, 8, ["class"])) : createCommentVNode("", true)
|
|
1171
1014
|
], 2);
|
|
@@ -1173,17 +1016,17 @@ var ChatView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
1173
1016
|
}
|
|
1174
1017
|
});
|
|
1175
1018
|
var ChatView_vue_vue_type_style_index_0_lang_module_default = {
|
|
1176
|
-
component: "
|
|
1177
|
-
isMobileDevice: "
|
|
1178
|
-
scrollArea: "
|
|
1179
|
-
scrollable: "
|
|
1180
|
-
|
|
1181
|
-
header: "
|
|
1182
|
-
starter: "
|
|
1183
|
-
messageList: "
|
|
1184
|
-
promptContainer: "
|
|
1185
|
-
prompt: "
|
|
1186
|
-
scrollToBottomButton: "
|
|
1019
|
+
component: "_component_136cw_123",
|
|
1020
|
+
isMobileDevice: "_isMobileDevice_136cw_134",
|
|
1021
|
+
scrollArea: "_scrollArea_136cw_139",
|
|
1022
|
+
scrollable: "_scrollable_136cw_144",
|
|
1023
|
+
isNewSession: "_isNewSession_136cw_153",
|
|
1024
|
+
header: "_header_136cw_157",
|
|
1025
|
+
starter: "_starter_136cw_163",
|
|
1026
|
+
messageList: "_messageList_136cw_168",
|
|
1027
|
+
promptContainer: "_promptContainer_136cw_184",
|
|
1028
|
+
prompt: "_prompt_136cw_184",
|
|
1029
|
+
scrollToBottomButton: "_scrollToBottomButton_136cw_206"
|
|
1187
1030
|
};
|
|
1188
1031
|
var ChatView_default = /* @__PURE__ */ __plugin_vue_export_helper_default(ChatView_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": ChatView_vue_vue_type_style_index_0_lang_module_default }]]);
|
|
1189
1032
|
export { ChatView_default as default };
|