From 90f8b09af053be0a40e97b6fbd7ea01e1a2cd035 Mon Sep 17 00:00:00 2001 From: Thomas B <9094255+Ten0@users.noreply.github.com> Date: Mon, 2 Dec 2024 14:56:14 +0100 Subject: [PATCH 01/17] docs: Update Skip SSL to mention it is insecure (no-changelog) (#11935) --- .../src/components/SettingsLogStreaming/descriptions.ee.ts | 2 +- packages/nodes-base/credentials/CrowdDevApi.credentials.ts | 2 +- packages/nodes-base/credentials/DfirIrisApi.credentials.ts | 2 +- packages/nodes-base/credentials/ERPNextApi.credentials.ts | 2 +- packages/nodes-base/credentials/ElasticsearchApi.credentials.ts | 2 +- packages/nodes-base/credentials/GotifyApi.credentials.ts | 2 +- packages/nodes-base/credentials/MattermostApi.credentials.ts | 2 +- packages/nodes-base/credentials/MicrosoftSql.credentials.ts | 2 +- packages/nodes-base/credentials/OAuth2Api.credentials.ts | 2 +- packages/nodes-base/credentials/Postgres.credentials.ts | 2 +- packages/nodes-base/credentials/S3.credentials.ts | 2 +- packages/nodes-base/credentials/TheHiveApi.credentials.ts | 2 +- .../nodes-base/credentials/TheHiveProjectApi.credentials.ts | 2 +- packages/nodes-base/credentials/TimescaleDb.credentials.ts | 2 +- packages/nodes-base/credentials/WordpressApi.credentials.ts | 2 +- .../nodes-base/credentials/ZammadBasicAuthApi.credentials.ts | 2 +- .../nodes-base/credentials/ZammadTokenAuthApi.credentials.ts | 2 +- .../nodes-base/nodes/EmailReadImap/v1/EmailReadImapV1.node.ts | 2 +- packages/nodes-base/nodes/EmailSend/v1/EmailSendV1.node.ts | 2 +- packages/nodes-base/nodes/EmailSend/v2/send.operation.ts | 2 +- packages/nodes-base/nodes/Facebook/FacebookGraphApi.node.ts | 2 +- packages/nodes-base/nodes/GraphQL/GraphQL.node.ts | 2 +- packages/nodes-base/nodes/HttpRequest/V1/HttpRequestV1.node.ts | 2 +- packages/nodes-base/nodes/HttpRequest/V2/HttpRequestV2.node.ts | 2 +- packages/nodes-base/nodes/HttpRequest/V3/Description.ts | 2 +- packages/nodes-base/nodes/RssFeedRead/RssFeedRead.node.ts | 2 +- packages/workflow/src/NodeHelpers.ts | 2 +- 27 files changed, 27 insertions(+), 27 deletions(-) diff --git a/packages/editor-ui/src/components/SettingsLogStreaming/descriptions.ee.ts b/packages/editor-ui/src/components/SettingsLogStreaming/descriptions.ee.ts index 421d9f1451..46f6447c55 100644 --- a/packages/editor-ui/src/components/SettingsLogStreaming/descriptions.ee.ts +++ b/packages/editor-ui/src/components/SettingsLogStreaming/descriptions.ee.ts @@ -258,7 +258,7 @@ export const webhookModalDescription = [ default: {}, options: [ { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', noDataExpression: true, diff --git a/packages/nodes-base/credentials/CrowdDevApi.credentials.ts b/packages/nodes-base/credentials/CrowdDevApi.credentials.ts index 640b3c09ff..cfb9898343 100644 --- a/packages/nodes-base/credentials/CrowdDevApi.credentials.ts +++ b/packages/nodes-base/credentials/CrowdDevApi.credentials.ts @@ -35,7 +35,7 @@ export class CrowdDevApi implements ICredentialType { default: '', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', description: 'Whether to connect even if SSL certificate validation is not possible', diff --git a/packages/nodes-base/credentials/DfirIrisApi.credentials.ts b/packages/nodes-base/credentials/DfirIrisApi.credentials.ts index cf631fba06..c1db485bdb 100644 --- a/packages/nodes-base/credentials/DfirIrisApi.credentials.ts +++ b/packages/nodes-base/credentials/DfirIrisApi.credentials.ts @@ -40,7 +40,7 @@ export class DfirIrisApi implements ICredentialType { default: '', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'skipSslCertificateValidation', type: 'boolean', default: false, diff --git a/packages/nodes-base/credentials/ERPNextApi.credentials.ts b/packages/nodes-base/credentials/ERPNextApi.credentials.ts index c35a748aaa..78eb6795f9 100644 --- a/packages/nodes-base/credentials/ERPNextApi.credentials.ts +++ b/packages/nodes-base/credentials/ERPNextApi.credentials.ts @@ -93,7 +93,7 @@ export class ERPNextApi implements ICredentialType { }, }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', description: 'Whether to connect even if SSL certificate validation is not possible', diff --git a/packages/nodes-base/credentials/ElasticsearchApi.credentials.ts b/packages/nodes-base/credentials/ElasticsearchApi.credentials.ts index 41633dc369..b487ce894f 100644 --- a/packages/nodes-base/credentials/ElasticsearchApi.credentials.ts +++ b/packages/nodes-base/credentials/ElasticsearchApi.credentials.ts @@ -37,7 +37,7 @@ export class ElasticsearchApi implements ICredentialType { description: "Referred to as Elasticsearch 'endpoint' in the Elastic deployment dashboard", }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'ignoreSSLIssues', type: 'boolean', default: false, diff --git a/packages/nodes-base/credentials/GotifyApi.credentials.ts b/packages/nodes-base/credentials/GotifyApi.credentials.ts index 6d86c0872d..a609dce92f 100644 --- a/packages/nodes-base/credentials/GotifyApi.credentials.ts +++ b/packages/nodes-base/credentials/GotifyApi.credentials.ts @@ -36,7 +36,7 @@ export class GotifyApi implements ICredentialType { description: 'The URL of the Gotify host', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'ignoreSSLIssues', type: 'boolean', default: false, diff --git a/packages/nodes-base/credentials/MattermostApi.credentials.ts b/packages/nodes-base/credentials/MattermostApi.credentials.ts index 51a5d657ed..072d699a5d 100644 --- a/packages/nodes-base/credentials/MattermostApi.credentials.ts +++ b/packages/nodes-base/credentials/MattermostApi.credentials.ts @@ -27,7 +27,7 @@ export class MattermostApi implements ICredentialType { default: '', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', description: 'Whether to connect even if SSL certificate validation is not possible', diff --git a/packages/nodes-base/credentials/MicrosoftSql.credentials.ts b/packages/nodes-base/credentials/MicrosoftSql.credentials.ts index 2d02fa8326..0eef33a2ef 100644 --- a/packages/nodes-base/credentials/MicrosoftSql.credentials.ts +++ b/packages/nodes-base/credentials/MicrosoftSql.credentials.ts @@ -54,7 +54,7 @@ export class MicrosoftSql implements ICredentialType { default: true, }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', default: false, diff --git a/packages/nodes-base/credentials/OAuth2Api.credentials.ts b/packages/nodes-base/credentials/OAuth2Api.credentials.ts index ded876fe28..a6789f6820 100644 --- a/packages/nodes-base/credentials/OAuth2Api.credentials.ts +++ b/packages/nodes-base/credentials/OAuth2Api.credentials.ts @@ -108,7 +108,7 @@ export class OAuth2Api implements ICredentialType { default: 'header', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'ignoreSSLIssues', type: 'boolean', default: false, diff --git a/packages/nodes-base/credentials/Postgres.credentials.ts b/packages/nodes-base/credentials/Postgres.credentials.ts index 12eaddd5f4..a562245b29 100644 --- a/packages/nodes-base/credentials/Postgres.credentials.ts +++ b/packages/nodes-base/credentials/Postgres.credentials.ts @@ -37,7 +37,7 @@ export class Postgres implements ICredentialType { default: '', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', default: false, diff --git a/packages/nodes-base/credentials/S3.credentials.ts b/packages/nodes-base/credentials/S3.credentials.ts index 11e6ad157f..8e9e4345d0 100644 --- a/packages/nodes-base/credentials/S3.credentials.ts +++ b/packages/nodes-base/credentials/S3.credentials.ts @@ -42,7 +42,7 @@ export class S3 implements ICredentialType { default: false, }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'ignoreSSLIssues', type: 'boolean', default: false, diff --git a/packages/nodes-base/credentials/TheHiveApi.credentials.ts b/packages/nodes-base/credentials/TheHiveApi.credentials.ts index 694cc47967..d3353ebc7c 100644 --- a/packages/nodes-base/credentials/TheHiveApi.credentials.ts +++ b/packages/nodes-base/credentials/TheHiveApi.credentials.ts @@ -49,7 +49,7 @@ export class TheHiveApi implements ICredentialType { ], }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', description: 'Whether to connect even if SSL certificate validation is not possible', diff --git a/packages/nodes-base/credentials/TheHiveProjectApi.credentials.ts b/packages/nodes-base/credentials/TheHiveProjectApi.credentials.ts index 65ced26842..090c6be918 100644 --- a/packages/nodes-base/credentials/TheHiveProjectApi.credentials.ts +++ b/packages/nodes-base/credentials/TheHiveProjectApi.credentials.ts @@ -31,7 +31,7 @@ export class TheHiveProjectApi implements ICredentialType { placeholder: 'https://localhost:9000', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', description: 'Whether to connect even if SSL certificate validation is not possible', diff --git a/packages/nodes-base/credentials/TimescaleDb.credentials.ts b/packages/nodes-base/credentials/TimescaleDb.credentials.ts index 04226a8d04..44b96a918c 100644 --- a/packages/nodes-base/credentials/TimescaleDb.credentials.ts +++ b/packages/nodes-base/credentials/TimescaleDb.credentials.ts @@ -36,7 +36,7 @@ export class TimescaleDb implements ICredentialType { default: '', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', default: false, diff --git a/packages/nodes-base/credentials/WordpressApi.credentials.ts b/packages/nodes-base/credentials/WordpressApi.credentials.ts index 01f4761884..44cef12a68 100644 --- a/packages/nodes-base/credentials/WordpressApi.credentials.ts +++ b/packages/nodes-base/credentials/WordpressApi.credentials.ts @@ -36,7 +36,7 @@ export class WordpressApi implements ICredentialType { placeholder: 'https://example.com', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', description: 'Whether to connect even if SSL certificate validation is not possible', diff --git a/packages/nodes-base/credentials/ZammadBasicAuthApi.credentials.ts b/packages/nodes-base/credentials/ZammadBasicAuthApi.credentials.ts index 5e3690b981..f50aec8687 100644 --- a/packages/nodes-base/credentials/ZammadBasicAuthApi.credentials.ts +++ b/packages/nodes-base/credentials/ZammadBasicAuthApi.credentials.ts @@ -35,7 +35,7 @@ export class ZammadBasicAuthApi implements ICredentialType { required: true, }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', description: 'Whether to connect even if SSL certificate validation is not possible', diff --git a/packages/nodes-base/credentials/ZammadTokenAuthApi.credentials.ts b/packages/nodes-base/credentials/ZammadTokenAuthApi.credentials.ts index 6025b39162..48e3994ca6 100644 --- a/packages/nodes-base/credentials/ZammadTokenAuthApi.credentials.ts +++ b/packages/nodes-base/credentials/ZammadTokenAuthApi.credentials.ts @@ -27,7 +27,7 @@ export class ZammadTokenAuthApi implements ICredentialType { required: true, }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', description: 'Whether to connect even if SSL certificate validation is not possible', diff --git a/packages/nodes-base/nodes/EmailReadImap/v1/EmailReadImapV1.node.ts b/packages/nodes-base/nodes/EmailReadImap/v1/EmailReadImapV1.node.ts index 29cac4a002..9f66dec09c 100644 --- a/packages/nodes-base/nodes/EmailReadImap/v1/EmailReadImapV1.node.ts +++ b/packages/nodes-base/nodes/EmailReadImap/v1/EmailReadImapV1.node.ts @@ -200,7 +200,7 @@ const versionDescription: INodeTypeDescription = { 'Custom email fetching rules. See node-imap\'s search function for more details.', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', default: false, diff --git a/packages/nodes-base/nodes/EmailSend/v1/EmailSendV1.node.ts b/packages/nodes-base/nodes/EmailSend/v1/EmailSendV1.node.ts index 45ea02ffa6..cfe18a75de 100644 --- a/packages/nodes-base/nodes/EmailSend/v1/EmailSendV1.node.ts +++ b/packages/nodes-base/nodes/EmailSend/v1/EmailSendV1.node.ts @@ -110,7 +110,7 @@ const versionDescription: INodeTypeDescription = { default: {}, options: [ { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', default: false, diff --git a/packages/nodes-base/nodes/EmailSend/v2/send.operation.ts b/packages/nodes-base/nodes/EmailSend/v2/send.operation.ts index 0c78e6293c..2f182c5862 100644 --- a/packages/nodes-base/nodes/EmailSend/v2/send.operation.ts +++ b/packages/nodes-base/nodes/EmailSend/v2/send.operation.ts @@ -167,7 +167,7 @@ const properties: INodeProperties[] = [ description: 'Email address of BCC recipient', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', default: false, diff --git a/packages/nodes-base/nodes/Facebook/FacebookGraphApi.node.ts b/packages/nodes-base/nodes/Facebook/FacebookGraphApi.node.ts index 30e3beed51..359417e1de 100644 --- a/packages/nodes-base/nodes/Facebook/FacebookGraphApi.node.ts +++ b/packages/nodes-base/nodes/Facebook/FacebookGraphApi.node.ts @@ -189,7 +189,7 @@ export class FacebookGraphApi implements INodeType { placeholder: 'videos', }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', default: false, diff --git a/packages/nodes-base/nodes/GraphQL/GraphQL.node.ts b/packages/nodes-base/nodes/GraphQL/GraphQL.node.ts index 89891bd1c6..dc9edf2167 100644 --- a/packages/nodes-base/nodes/GraphQL/GraphQL.node.ts +++ b/packages/nodes-base/nodes/GraphQL/GraphQL.node.ts @@ -160,7 +160,7 @@ export class GraphQL implements INodeType { required: true, }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', default: false, diff --git a/packages/nodes-base/nodes/HttpRequest/V1/HttpRequestV1.node.ts b/packages/nodes-base/nodes/HttpRequest/V1/HttpRequestV1.node.ts index 740489f23c..24c88dbc26 100644 --- a/packages/nodes-base/nodes/HttpRequest/V1/HttpRequestV1.node.ts +++ b/packages/nodes-base/nodes/HttpRequest/V1/HttpRequestV1.node.ts @@ -196,7 +196,7 @@ export class HttpRequestV1 implements INodeType { required: true, }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', default: false, diff --git a/packages/nodes-base/nodes/HttpRequest/V2/HttpRequestV2.node.ts b/packages/nodes-base/nodes/HttpRequest/V2/HttpRequestV2.node.ts index 1b08aeb096..0916c648fd 100644 --- a/packages/nodes-base/nodes/HttpRequest/V2/HttpRequestV2.node.ts +++ b/packages/nodes-base/nodes/HttpRequest/V2/HttpRequestV2.node.ts @@ -211,7 +211,7 @@ export class HttpRequestV2 implements INodeType { required: true, }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', default: false, diff --git a/packages/nodes-base/nodes/HttpRequest/V3/Description.ts b/packages/nodes-base/nodes/HttpRequest/V3/Description.ts index 827c8f32ea..82df705a69 100644 --- a/packages/nodes-base/nodes/HttpRequest/V3/Description.ts +++ b/packages/nodes-base/nodes/HttpRequest/V3/Description.ts @@ -695,7 +695,7 @@ export const mainProperties: INodeProperties[] = [ ], }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', noDataExpression: true, diff --git a/packages/nodes-base/nodes/RssFeedRead/RssFeedRead.node.ts b/packages/nodes-base/nodes/RssFeedRead/RssFeedRead.node.ts index de9f602b81..3664b16aed 100644 --- a/packages/nodes-base/nodes/RssFeedRead/RssFeedRead.node.ts +++ b/packages/nodes-base/nodes/RssFeedRead/RssFeedRead.node.ts @@ -54,7 +54,7 @@ export class RssFeedRead implements INodeType { default: {}, options: [ { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'ignoreSSL', type: 'boolean', default: false, diff --git a/packages/workflow/src/NodeHelpers.ts b/packages/workflow/src/NodeHelpers.ts index 1856f0b80f..97e63c96d8 100644 --- a/packages/workflow/src/NodeHelpers.ts +++ b/packages/workflow/src/NodeHelpers.ts @@ -320,7 +320,7 @@ const declarativeNodeOptionParameters: INodeProperties = { ], }, { - displayName: 'Ignore SSL Issues', + displayName: 'Ignore SSL Issues (Insecure)', name: 'allowUnauthorizedCerts', type: 'boolean', noDataExpression: true, From d74423c75198d38d0d99a1879051b5e964ecae74 Mon Sep 17 00:00:00 2001 From: Csaba Tuncsik Date: Mon, 2 Dec 2024 14:57:22 +0100 Subject: [PATCH 02/17] fix(editor): Resolve going back from Settings (#11958) --- .../editor-ui/src/components/MainSidebar.vue | 2 +- packages/editor-ui/src/constants.ts | 1 + packages/editor-ui/src/router.ts | 2 + .../editor-ui/src/views/SettingsView.test.ts | 122 ++++++++++++++++++ packages/editor-ui/src/views/SettingsView.vue | 13 +- 5 files changed, 136 insertions(+), 4 deletions(-) create mode 100644 packages/editor-ui/src/views/SettingsView.test.ts diff --git a/packages/editor-ui/src/components/MainSidebar.vue b/packages/editor-ui/src/components/MainSidebar.vue index bb35959474..0ed9eaab58 100644 --- a/packages/editor-ui/src/components/MainSidebar.vue +++ b/packages/editor-ui/src/components/MainSidebar.vue @@ -219,7 +219,7 @@ const onUserActionToggle = (action: string) => { onLogout(); break; case 'settings': - void router.push({ name: VIEWS.PERSONAL_SETTINGS }); + void router.push({ name: VIEWS.SETTINGS }); break; default: break; diff --git a/packages/editor-ui/src/constants.ts b/packages/editor-ui/src/constants.ts index 0ee70b9929..a5236db849 100644 --- a/packages/editor-ui/src/constants.ts +++ b/packages/editor-ui/src/constants.ts @@ -487,6 +487,7 @@ export const enum VIEWS { SETUP = 'SetupView', FORGOT_PASSWORD = 'ForgotMyPasswordView', CHANGE_PASSWORD = 'ChangePasswordView', + SETTINGS = 'Settings', USERS_SETTINGS = 'UsersSettings', LDAP_SETTINGS = 'LdapSettings', PERSONAL_SETTINGS = 'PersonalSettings', diff --git a/packages/editor-ui/src/router.ts b/packages/editor-ui/src/router.ts index f3bf9f656a..cdf162717e 100644 --- a/packages/editor-ui/src/router.ts +++ b/packages/editor-ui/src/router.ts @@ -480,8 +480,10 @@ export const routes: RouteRecordRaw[] = [ }, { path: '/settings', + name: VIEWS.SETTINGS, component: SettingsView, props: true, + redirect: { name: VIEWS.USAGE }, children: [ { path: 'usage', diff --git a/packages/editor-ui/src/views/SettingsView.test.ts b/packages/editor-ui/src/views/SettingsView.test.ts new file mode 100644 index 0000000000..87875147f8 --- /dev/null +++ b/packages/editor-ui/src/views/SettingsView.test.ts @@ -0,0 +1,122 @@ +import { createTestingPinia } from '@pinia/testing'; +import { createRouter, createWebHistory } from 'vue-router'; +import userEvent from '@testing-library/user-event'; +import { createComponentRenderer } from '@/__tests__/render'; +import SettingsView from '@/views/SettingsView.vue'; +import { VIEWS } from '@/constants'; +import { routes as originalRoutes } from '@/router'; + +const component = { template: '
' }; +const settingsRoute = originalRoutes.find((route) => route.name === VIEWS.SETTINGS); + +const settingsRouteChildren = + settingsRoute?.children?.map(({ name, path }) => ({ + name, + path, + component, + })) ?? []; + +const router = createRouter({ + history: createWebHistory(), + routes: [ + { + path: '/', + redirect: '/home', + }, + { + path: '/home', + name: 'Homepage', + redirect: '/home/workflows', + children: [ + { + path: 'workflows', + name: 'Workflows', + component, + }, + { + path: 'credentials', + name: 'Credentials', + component, + }, + { + path: 'executions', + name: 'Executions', + component, + }, + ], + }, + { + path: '/settings', + name: VIEWS.SETTINGS, + component: SettingsView, + props: true, + redirect: { name: VIEWS.USAGE }, + children: settingsRouteChildren, + }, + ], +}); + +const renderView = createComponentRenderer(SettingsView, { + pinia: createTestingPinia(), + global: { + plugins: [router], + }, +}); + +const renderApp = createComponentRenderer( + { + template: '', + }, + { + pinia: createTestingPinia(), + global: { + plugins: [router], + stubs: { + SettingsSidebar: { + template: '
', + }, + }, + }, + }, +); + +describe('SettingsView', () => { + it('should render the view without throwing', () => { + expect(() => renderView()).not.toThrow(); + }); + + test.each([ + ['/', ['/settings', '/settings/users'], '/home/workflows'], + ['/home', ['/settings', '/settings/users'], '/home/workflows'], + ['/home/workflows', ['/settings', '/settings/personal'], '/home/workflows'], + [ + '/home/credentials', + ['/settings', '/settings/personal', '/settings/api', '/settings/environments'], + '/home/credentials', + ], + ['/home/executions', ['/settings'], '/home/executions'], + ['/settings', [], '/home/workflows'], + [ + '/settings', + ['/settings/personal', '/settings/api', '/settings/environments'], + '/home/workflows', + ], + ['/settings/personal', [], '/home/workflows'], + ['/settings/usage', ['/settings/api', '/settings/environments'], '/home/workflows'], + ])( + 'should start from "%s" and visit %s routes and go back to "%s"', + async (startRoute, routes, expectedRoute) => { + const { getByTestId } = renderApp(); + + await router.push(startRoute); + + for (const route of routes) { + await router.push(route); + } + + await userEvent.click(getByTestId('back')); + + expect(router.currentRoute.value.path).toBe(expectedRoute); + }, + ); +}); diff --git a/packages/editor-ui/src/views/SettingsView.vue b/packages/editor-ui/src/views/SettingsView.vue index 3813d2cd91..da3fe44431 100644 --- a/packages/editor-ui/src/views/SettingsView.vue +++ b/packages/editor-ui/src/views/SettingsView.vue @@ -11,9 +11,16 @@ const router = useRouter(); const previousRoute = ref(); function onReturn() { - void router.push( - isRouteLocationRaw(previousRoute.value) ? previousRoute.value : { name: VIEWS.HOMEPAGE }, - ); + const resolvedSettingsRoute = router.resolve({ name: VIEWS.SETTINGS }); + const resolvedPreviousRoute = isRouteLocationRaw(previousRoute.value) + ? router.resolve(previousRoute.value) + : null; + const backRoute = + !resolvedPreviousRoute || resolvedPreviousRoute.path.startsWith(resolvedSettingsRoute.path) + ? { name: VIEWS.HOMEPAGE } + : resolvedPreviousRoute; + + void router.push(backRoute); } onMounted(() => { From 80a20933888c4cb84b26b4c3efe74a1223ec7bec Mon Sep 17 00:00:00 2001 From: Eugene Date: Mon, 2 Dec 2024 15:26:27 +0100 Subject: [PATCH 03/17] feat(core): Collect and aggregate metrics from the evaluation workflow execution (no-changelog) (#11945) Co-authored-by: Tomi Turtiainen <10324676+tomi@users.noreply.github.com> --- .../__tests__/evaluation-metrics.ee.test.ts | 72 +++++++++++++++++++ .../mock-data/workflow.evaluation.json | 6 ++ .../__tests__/test-runner.service.ee.test.ts | 49 +++++++++++-- .../test-runner/evaluation-metrics.ee.ts | 32 +++++++++ .../test-runner/test-runner.service.ee.ts | 35 +++++++-- 5 files changed, 183 insertions(+), 11 deletions(-) create mode 100644 packages/cli/src/evaluation/test-runner/__tests__/evaluation-metrics.ee.test.ts create mode 100644 packages/cli/src/evaluation/test-runner/evaluation-metrics.ee.ts diff --git a/packages/cli/src/evaluation/test-runner/__tests__/evaluation-metrics.ee.test.ts b/packages/cli/src/evaluation/test-runner/__tests__/evaluation-metrics.ee.test.ts new file mode 100644 index 0000000000..27daf3aa79 --- /dev/null +++ b/packages/cli/src/evaluation/test-runner/__tests__/evaluation-metrics.ee.test.ts @@ -0,0 +1,72 @@ +import { EvaluationMetrics } from '../evaluation-metrics.ee'; + +describe('EvaluationMetrics', () => { + test('should aggregate metrics correctly', () => { + const testMetricNames = new Set(['metric1', 'metric2']); + const metrics = new EvaluationMetrics(testMetricNames); + + metrics.addResults({ metric1: 1, metric2: 0 }); + metrics.addResults({ metric1: 0.5, metric2: 0.2 }); + + const aggregatedMetrics = metrics.getAggregatedMetrics(); + + expect(aggregatedMetrics).toEqual({ metric1: 0.75, metric2: 0.1 }); + }); + + test('should aggregate only numbers', () => { + const testMetricNames = new Set(['metric1', 'metric2']); + const metrics = new EvaluationMetrics(testMetricNames); + + metrics.addResults({ metric1: 1, metric2: 0 }); + metrics.addResults({ metric1: '0.5', metric2: 0.2 }); + metrics.addResults({ metric1: 'not a number', metric2: [1, 2, 3] }); + + const aggregatedUpMetrics = metrics.getAggregatedMetrics(); + + expect(aggregatedUpMetrics).toEqual({ metric1: 1, metric2: 0.1 }); + }); + + test('should handle missing values', () => { + const testMetricNames = new Set(['metric1', 'metric2']); + const metrics = new EvaluationMetrics(testMetricNames); + + metrics.addResults({ metric1: 1 }); + metrics.addResults({ metric2: 0.2 }); + + const aggregatedMetrics = metrics.getAggregatedMetrics(); + + expect(aggregatedMetrics).toEqual({ metric1: 1, metric2: 0.2 }); + }); + + test('should handle empty metrics', () => { + const testMetricNames = new Set(['metric1', 'metric2']); + const metrics = new EvaluationMetrics(testMetricNames); + + const aggregatedMetrics = metrics.getAggregatedMetrics(); + + expect(aggregatedMetrics).toEqual({}); + }); + + test('should handle empty testMetrics', () => { + const metrics = new EvaluationMetrics(new Set()); + + metrics.addResults({ metric1: 1, metric2: 0 }); + metrics.addResults({ metric1: 0.5, metric2: 0.2 }); + + const aggregatedMetrics = metrics.getAggregatedMetrics(); + + expect(aggregatedMetrics).toEqual({}); + }); + + test('should ignore non-relevant values', () => { + const testMetricNames = new Set(['metric1']); + const metrics = new EvaluationMetrics(testMetricNames); + + metrics.addResults({ metric1: 1, notRelevant: 0 }); + metrics.addResults({ metric1: 0.5, notRelevant2: { foo: 'bar' } }); + + const aggregatedMetrics = metrics.getAggregatedMetrics(); + + expect(aggregatedMetrics).toEqual({ metric1: 0.75 }); + }); +}); diff --git a/packages/cli/src/evaluation/test-runner/__tests__/mock-data/workflow.evaluation.json b/packages/cli/src/evaluation/test-runner/__tests__/mock-data/workflow.evaluation.json index c2386f010c..6ec7f2c386 100644 --- a/packages/cli/src/evaluation/test-runner/__tests__/mock-data/workflow.evaluation.json +++ b/packages/cli/src/evaluation/test-runner/__tests__/mock-data/workflow.evaluation.json @@ -57,6 +57,12 @@ "name": "success", "value": true, "type": "boolean" + }, + { + "id": "877d1bf8-31a7-4571-9293-a6837b51d22b", + "name": "metric1", + "value": 0.1, + "type": "number" } ] }, diff --git a/packages/cli/src/evaluation/test-runner/__tests__/test-runner.service.ee.test.ts b/packages/cli/src/evaluation/test-runner/__tests__/test-runner.service.ee.test.ts index 5c8f8e958b..cdb8e848d9 100644 --- a/packages/cli/src/evaluation/test-runner/__tests__/test-runner.service.ee.test.ts +++ b/packages/cli/src/evaluation/test-runner/__tests__/test-runner.service.ee.test.ts @@ -2,15 +2,17 @@ import type { SelectQueryBuilder } from '@n8n/typeorm'; import { stringify } from 'flatted'; import { readFileSync } from 'fs'; import { mock, mockDeep } from 'jest-mock-extended'; -import type { IRun } from 'n8n-workflow'; +import type { GenericValue, IRun } from 'n8n-workflow'; import path from 'path'; import type { ActiveExecutions } from '@/active-executions'; import type { ExecutionEntity } from '@/databases/entities/execution-entity'; import type { TestDefinition } from '@/databases/entities/test-definition.ee'; +import type { TestMetric } from '@/databases/entities/test-metric.ee'; import type { TestRun } from '@/databases/entities/test-run.ee'; import type { User } from '@/databases/entities/user'; import type { ExecutionRepository } from '@/databases/repositories/execution.repository'; +import type { TestMetricRepository } from '@/databases/repositories/test-metric.repository.ee'; import type { TestRunRepository } from '@/databases/repositories/test-run.repository.ee'; import type { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import type { WorkflowRunner } from '@/workflow-runner'; @@ -58,12 +60,38 @@ function mockExecutionData() { }); } +function mockEvaluationExecutionData(metrics: Record) { + return mock({ + data: { + resultData: { + lastNodeExecuted: 'lastNode', + runData: { + lastNode: [ + { + data: { + main: [ + [ + { + json: metrics, + }, + ], + ], + }, + }, + ], + }, + }, + }, + }); +} + describe('TestRunnerService', () => { const executionRepository = mock(); const workflowRepository = mock(); const workflowRunner = mock(); const activeExecutions = mock(); const testRunRepository = mock(); + const testMetricRepository = mock(); beforeEach(() => { const executionsQbMock = mockDeep>({ @@ -80,6 +108,11 @@ describe('TestRunnerService', () => { .mockResolvedValueOnce(executionMocks[1]); testRunRepository.createTestRun.mockResolvedValue(mock({ id: 'test-run-id' })); + + testMetricRepository.find.mockResolvedValue([ + mock({ name: 'metric1' }), + mock({ name: 'metric2' }), + ]); }); afterEach(() => { @@ -97,6 +130,7 @@ describe('TestRunnerService', () => { executionRepository, activeExecutions, testRunRepository, + testMetricRepository, ); expect(testRunnerService).toBeInstanceOf(TestRunnerService); @@ -109,6 +143,7 @@ describe('TestRunnerService', () => { executionRepository, activeExecutions, testRunRepository, + testMetricRepository, ); workflowRepository.findById.calledWith('workflow-under-test-id').mockResolvedValueOnce({ @@ -143,6 +178,7 @@ describe('TestRunnerService', () => { executionRepository, activeExecutions, testRunRepository, + testMetricRepository, ); workflowRepository.findById.calledWith('workflow-under-test-id').mockResolvedValueOnce({ @@ -166,17 +202,17 @@ describe('TestRunnerService', () => { .mockResolvedValue(mockExecutionData()); activeExecutions.getPostExecutePromise - .calledWith('some-execution-id-2') + .calledWith('some-execution-id-3') .mockResolvedValue(mockExecutionData()); // Mock executions of evaluation workflow activeExecutions.getPostExecutePromise - .calledWith('some-execution-id-3') - .mockResolvedValue(mockExecutionData()); + .calledWith('some-execution-id-2') + .mockResolvedValue(mockEvaluationExecutionData({ metric1: 1, metric2: 0 })); activeExecutions.getPostExecutePromise .calledWith('some-execution-id-4') - .mockResolvedValue(mockExecutionData()); + .mockResolvedValue(mockEvaluationExecutionData({ metric1: 0.5 })); await testRunnerService.runTest( mock(), @@ -225,7 +261,8 @@ describe('TestRunnerService', () => { expect(testRunRepository.markAsRunning).toHaveBeenCalledWith('test-run-id'); expect(testRunRepository.markAsCompleted).toHaveBeenCalledTimes(1); expect(testRunRepository.markAsCompleted).toHaveBeenCalledWith('test-run-id', { - success: false, + metric1: 0.75, + metric2: 0, }); }); }); diff --git a/packages/cli/src/evaluation/test-runner/evaluation-metrics.ee.ts b/packages/cli/src/evaluation/test-runner/evaluation-metrics.ee.ts new file mode 100644 index 0000000000..ab5c921f8c --- /dev/null +++ b/packages/cli/src/evaluation/test-runner/evaluation-metrics.ee.ts @@ -0,0 +1,32 @@ +import type { IDataObject } from 'n8n-workflow'; + +export class EvaluationMetrics { + private readonly rawMetricsByName = new Map(); + + constructor(private readonly metricNames: Set) { + for (const metricName of metricNames) { + this.rawMetricsByName.set(metricName, []); + } + } + + addResults(result: IDataObject) { + for (const [metricName, metricValue] of Object.entries(result)) { + if (typeof metricValue === 'number' && this.metricNames.has(metricName)) { + this.rawMetricsByName.get(metricName)!.push(metricValue); + } + } + } + + getAggregatedMetrics() { + const aggregatedMetrics: Record = {}; + + for (const [metricName, metricValues] of this.rawMetricsByName.entries()) { + if (metricValues.length > 0) { + const metricSum = metricValues.reduce((acc, val) => acc + val, 0); + aggregatedMetrics[metricName] = metricSum / metricValues.length; + } + } + + return aggregatedMetrics; + } +} diff --git a/packages/cli/src/evaluation/test-runner/test-runner.service.ee.ts b/packages/cli/src/evaluation/test-runner/test-runner.service.ee.ts index 433a84c9dc..5aaaf25558 100644 --- a/packages/cli/src/evaluation/test-runner/test-runner.service.ee.ts +++ b/packages/cli/src/evaluation/test-runner/test-runner.service.ee.ts @@ -15,11 +15,13 @@ import type { TestDefinition } from '@/databases/entities/test-definition.ee'; import type { User } from '@/databases/entities/user'; import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { ExecutionRepository } from '@/databases/repositories/execution.repository'; +import { TestMetricRepository } from '@/databases/repositories/test-metric.repository.ee'; import { TestRunRepository } from '@/databases/repositories/test-run.repository.ee'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { getRunData } from '@/workflow-execute-additional-data'; import { WorkflowRunner } from '@/workflow-runner'; +import { EvaluationMetrics } from './evaluation-metrics.ee'; import { createPinData, getPastExecutionStartNode } from './utils.ee'; /** @@ -40,6 +42,7 @@ export class TestRunnerService { private readonly executionRepository: ExecutionRepository, private readonly activeExecutions: ActiveExecutions, private readonly testRunRepository: TestRunRepository, + private readonly testMetricRepository: TestMetricRepository, ) {} /** @@ -113,6 +116,11 @@ export class TestRunnerService { return await executePromise; } + /** + * Evaluation result is the first item in the output of the last node + * executed in the evaluation workflow. Defaults to an empty object + * in case the node doesn't produce any output items. + */ private extractEvaluationResult(execution: IRun): IDataObject { const lastNodeExecuted = execution.data.resultData.lastNodeExecuted; assert(lastNodeExecuted, 'Could not find the last node executed in evaluation workflow'); @@ -124,6 +132,21 @@ export class TestRunnerService { return mainConnectionData?.[0]?.json ?? {}; } + /** + * Get the metrics to collect from the evaluation workflow execution results. + */ + private async getTestMetricNames(testDefinitionId: string) { + const metrics = await this.testMetricRepository.find({ + where: { + testDefinition: { + id: testDefinitionId, + }, + }, + }); + + return new Set(metrics.map((m) => m.name)); + } + /** * Creates a new test run for the given test definition. */ @@ -152,11 +175,15 @@ export class TestRunnerService { .andWhere('execution.workflowId = :workflowId', { workflowId: test.workflowId }) .getMany(); + // Get the metrics to collect from the evaluation workflow + const testMetricNames = await this.getTestMetricNames(test.id); + // 2. Run over all the test cases await this.testRunRepository.markAsRunning(testRun.id); - const metrics = []; + // Object to collect the results of the evaluation workflow executions + const metrics = new EvaluationMetrics(testMetricNames); for (const { id: pastExecutionId } of pastExecutions) { // Fetch past execution with data @@ -192,12 +219,10 @@ export class TestRunnerService { assert(evalExecution); // Extract the output of the last node executed in the evaluation workflow - metrics.push(this.extractEvaluationResult(evalExecution)); + metrics.addResults(this.extractEvaluationResult(evalExecution)); } - // TODO: 3. Aggregate the results - // Now we just set success to true if all the test cases passed - const aggregatedMetrics = { success: metrics.every((metric) => metric.success) }; + const aggregatedMetrics = metrics.getAggregatedMetrics(); await this.testRunRepository.markAsCompleted(testRun.id, aggregatedMetrics); } From 28487edb13eae810d34f05df270568434f0b0416 Mon Sep 17 00:00:00 2001 From: Eugene Date: Mon, 2 Dec 2024 15:35:23 +0100 Subject: [PATCH 04/17] chore: Upgrade LangChain packages to latest versions (no-changelog) (#11771) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ --- packages/@n8n/json-schema-to-zod/src/index.ts | 2 +- .../nodes/agents/Agent/agents/utils.ts | 4 +- packages/@n8n/nodes-langchain/package.json | 30 +- .../N8nStructuredOutputParser.ts | 4 +- pnpm-lock.yaml | 386 ++++++++---------- pnpm-workspace.yaml | 2 +- 6 files changed, 197 insertions(+), 231 deletions(-) diff --git a/packages/@n8n/json-schema-to-zod/src/index.ts b/packages/@n8n/json-schema-to-zod/src/index.ts index 10dae97784..8de0516a2f 100644 --- a/packages/@n8n/json-schema-to-zod/src/index.ts +++ b/packages/@n8n/json-schema-to-zod/src/index.ts @@ -1,2 +1,2 @@ export type * from './types'; -export { jsonSchemaToZod } from './json-schema-to-zod.js'; +export { jsonSchemaToZod } from './json-schema-to-zod'; diff --git a/packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/utils.ts b/packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/utils.ts index 0d85806bf3..144b622c76 100644 --- a/packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/utils.ts +++ b/packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/utils.ts @@ -1,8 +1,10 @@ -import type { ZodObjectAny } from '@langchain/core/dist/types/zod'; +import type { z } from 'zod'; import type { BaseOutputParser } from '@langchain/core/output_parsers'; import type { DynamicStructuredTool, Tool } from 'langchain/tools'; import { NodeOperationError, type IExecuteFunctions, type INode } from 'n8n-workflow'; +type ZodObjectAny = z.ZodObject; + export async function extractParsedOutput( ctx: IExecuteFunctions, outputParser: BaseOutputParser, diff --git a/packages/@n8n/nodes-langchain/package.json b/packages/@n8n/nodes-langchain/package.json index da65509956..11e2c61cf1 100644 --- a/packages/@n8n/nodes-langchain/package.json +++ b/packages/@n8n/nodes-langchain/package.json @@ -135,47 +135,47 @@ "@getzep/zep-js": "0.9.0", "@google-ai/generativelanguage": "2.6.0", "@google-cloud/resource-manager": "5.3.0", - "@google/generative-ai": "0.19.0", + "@google/generative-ai": "0.21.0", "@huggingface/inference": "2.8.0", - "@langchain/anthropic": "0.3.7", - "@langchain/aws": "0.1.1", + "@langchain/anthropic": "0.3.8", + "@langchain/aws": "0.1.2", "@langchain/cohere": "0.3.1", - "@langchain/community": "0.3.11", + "@langchain/community": "0.3.15", "@langchain/core": "catalog:", - "@langchain/google-genai": "0.1.2", - "@langchain/google-vertexai": "0.1.0", + "@langchain/google-genai": "0.1.4", + "@langchain/google-vertexai": "0.1.3", "@langchain/groq": "0.1.2", - "@langchain/mistralai": "0.1.1", - "@langchain/ollama": "0.1.1", - "@langchain/openai": "0.3.11", - "@langchain/pinecone": "0.1.1", - "@langchain/qdrant": "0.1.0", + "@langchain/mistralai": "0.2.0", + "@langchain/ollama": "0.1.2", + "@langchain/openai": "0.3.14", + "@langchain/pinecone": "0.1.3", + "@langchain/qdrant": "0.1.1", "@langchain/redis": "0.1.0", "@langchain/textsplitters": "0.1.0", "@mozilla/readability": "0.5.0", "@n8n/json-schema-to-zod": "workspace:*", "@n8n/typeorm": "0.3.20-12", "@n8n/vm2": "3.9.25", - "@pinecone-database/pinecone": "3.0.3", + "@pinecone-database/pinecone": "4.0.0", "@qdrant/js-client-rest": "1.11.0", "@supabase/supabase-js": "2.45.4", "@xata.io/client": "0.28.4", "basic-auth": "catalog:", "cheerio": "1.0.0", - "cohere-ai": "7.13.2", + "cohere-ai": "7.14.0", "d3-dsv": "2.0.0", "epub2": "3.0.2", "form-data": "catalog:", "generate-schema": "2.6.0", "html-to-text": "9.0.5", "jsdom": "23.0.1", - "langchain": "0.3.5", + "langchain": "0.3.6", "lodash": "catalog:", "mammoth": "1.7.2", "mime-types": "2.1.35", "n8n-nodes-base": "workspace:*", "n8n-workflow": "workspace:*", - "openai": "4.69.0", + "openai": "4.73.1", "pdf-parse": "1.1.1", "pg": "8.12.0", "redis": "4.6.12", diff --git a/packages/@n8n/nodes-langchain/utils/output_parsers/N8nStructuredOutputParser.ts b/packages/@n8n/nodes-langchain/utils/output_parsers/N8nStructuredOutputParser.ts index a24052f5e1..3b8410df74 100644 --- a/packages/@n8n/nodes-langchain/utils/output_parsers/N8nStructuredOutputParser.ts +++ b/packages/@n8n/nodes-langchain/utils/output_parsers/N8nStructuredOutputParser.ts @@ -32,7 +32,9 @@ export class N8nStructuredOutputParser extends StructuredOutputParser< [{ json: { action: 'parse', text } }], ]); try { - const parsed = await super.parse(text); + const jsonString = text.includes('```') ? text.split(/```(?:json)?/)[1] : text; + const json = JSON.parse(jsonString.trim()); + const parsed = await this.schema.parseAsync(json); const result = (get(parsed, [STRUCTURED_OUTPUT_KEY, STRUCTURED_OUTPUT_OBJECT_KEY]) ?? get(parsed, [STRUCTURED_OUTPUT_KEY, STRUCTURED_OUTPUT_ARRAY_KEY]) ?? diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4f124ce6b8..e6aa8e13bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,8 @@ settings: catalogs: default: '@langchain/core': - specifier: 0.3.15 - version: 0.3.15 + specifier: 0.3.19 + version: 0.3.19 '@sentry/integrations': specifier: 7.87.0 version: 7.87.0 @@ -283,7 +283,7 @@ importers: version: 4.0.7 axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) dotenv: specifier: 8.6.0 version: 8.6.0 @@ -351,7 +351,7 @@ importers: dependencies: axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) packages/@n8n/codemirror-lang: dependencies: @@ -425,7 +425,7 @@ importers: version: 3.666.0(@aws-sdk/client-sts@3.666.0) '@getzep/zep-cloud': specifier: 1.0.12 - version: 1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki)) + version: 1.0.12(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.6(4axcxpjbcq5bce7ff6ajxrpp4i)) '@getzep/zep-js': specifier: 0.9.0 version: 0.9.0 @@ -436,56 +436,56 @@ importers: specifier: 5.3.0 version: 5.3.0(encoding@0.1.13) '@google/generative-ai': - specifier: 0.19.0 - version: 0.19.0 + specifier: 0.21.0 + version: 0.21.0 '@huggingface/inference': specifier: 2.8.0 version: 2.8.0 '@langchain/anthropic': - specifier: 0.3.7 - version: 0.3.7(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + specifier: 0.3.8 + version: 0.3.8(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) '@langchain/aws': - specifier: 0.1.1 - version: 0.1.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0)(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))) + specifier: 0.1.2 + version: 0.1.2(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0)(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))) '@langchain/cohere': specifier: 0.3.1 - version: 0.3.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + version: 0.3.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) '@langchain/community': - specifier: 0.3.11 - version: 0.3.11(ndajhtzj4xqxxpqz4t56suvqri) + specifier: 0.3.15 + version: 0.3.15(v4qhcw25bevfr6xzz4fnsvjiqe) '@langchain/core': specifier: 'catalog:' - version: 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + version: 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) '@langchain/google-genai': - specifier: 0.1.2 - version: 0.1.2(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8) + specifier: 0.1.4 + version: 0.1.4(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8) '@langchain/google-vertexai': - specifier: 0.1.0 - version: 0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(zod@3.23.8) + specifier: 0.1.3 + version: 0.1.3(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(zod@3.23.8) '@langchain/groq': specifier: 0.1.2 - version: 0.1.2(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + version: 0.1.2(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) '@langchain/mistralai': - specifier: 0.1.1 - version: 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + specifier: 0.2.0 + version: 0.2.0(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))) '@langchain/ollama': - specifier: 0.1.1 - version: 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))) + specifier: 0.1.2 + version: 0.1.2(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))) '@langchain/openai': - specifier: 0.3.11 - version: 0.3.11(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + specifier: 0.3.14 + version: 0.3.14(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) '@langchain/pinecone': - specifier: 0.1.1 - version: 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))) + specifier: 0.1.3 + version: 0.1.3(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))) '@langchain/qdrant': - specifier: 0.1.0 - version: 0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(typescript@5.7.2) + specifier: 0.1.1 + version: 0.1.1(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(typescript@5.7.2) '@langchain/redis': specifier: 0.1.0 - version: 0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))) + version: 0.1.0(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))) '@langchain/textsplitters': specifier: 0.1.0 - version: 0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))) + version: 0.1.0(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))) '@mozilla/readability': specifier: 0.5.0 version: 0.5.0 @@ -499,8 +499,8 @@ importers: specifier: 3.9.25 version: 3.9.25 '@pinecone-database/pinecone': - specifier: 3.0.3 - version: 3.0.3 + specifier: 4.0.0 + version: 4.0.0 '@qdrant/js-client-rest': specifier: 1.11.0 version: 1.11.0(typescript@5.7.2) @@ -517,8 +517,8 @@ importers: specifier: 1.0.0 version: 1.0.0 cohere-ai: - specifier: 7.13.2 - version: 7.13.2(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(encoding@0.1.13) + specifier: 7.14.0 + version: 7.14.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(encoding@0.1.13) d3-dsv: specifier: 2.0.0 version: 2.0.0 @@ -538,8 +538,8 @@ importers: specifier: 23.0.1 version: 23.0.1 langchain: - specifier: 0.3.5 - version: 0.3.5(7umjwzmwnymi4lyinuvazmp6ki) + specifier: 0.3.6 + version: 0.3.6(4axcxpjbcq5bce7ff6ajxrpp4i) lodash: specifier: 'catalog:' version: 4.17.21 @@ -556,8 +556,8 @@ importers: specifier: workspace:* version: link:../../workflow openai: - specifier: 4.69.0 - version: 4.69.0(encoding@0.1.13)(zod@3.23.8) + specifier: 4.73.1 + version: 4.73.1(encoding@0.1.13)(zod@3.23.8) pdf-parse: specifier: 1.1.1 version: 1.1.1 @@ -798,7 +798,7 @@ importers: version: 1.11.0 axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) bcryptjs: specifier: 2.4.3 version: 2.4.3 @@ -1117,7 +1117,7 @@ importers: dependencies: '@langchain/core': specifier: 'catalog:' - version: 0.3.15(openai@4.69.0(zod@3.23.8)) + version: 0.3.19(openai@4.73.1(zod@3.23.8)) '@n8n/client-oauth2': specifier: workspace:* version: link:../@n8n/client-oauth2 @@ -1129,7 +1129,7 @@ importers: version: 1.11.0 axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) concat-stream: specifier: 2.0.0 version: 2.0.0 @@ -1422,7 +1422,7 @@ importers: version: 10.11.0(vue@3.5.11(typescript@5.7.2)) axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) bowser: specifier: 2.11.0 version: 2.11.0 @@ -1905,7 +1905,7 @@ importers: version: 0.15.2 axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) callsites: specifier: 3.1.0 version: 3.1.0 @@ -1951,7 +1951,7 @@ importers: devDependencies: '@langchain/core': specifier: 'catalog:' - version: 0.3.15(openai@4.69.0) + version: 0.3.19(openai@4.73.1) '@types/deep-equal': specifier: ^1.0.1 version: 1.0.1 @@ -2915,12 +2915,8 @@ packages: resolution: {integrity: sha512-Z3ZzOnF3YKLuvpkvF+TjQ6lztxcAyTILp+FjKonmVpEwPa9vFvxpZjubLR4sB6bf19i/8HL2AXRjA0YFgHFRmQ==} engines: {node: '>=14'} - '@google/generative-ai@0.19.0': - resolution: {integrity: sha512-iGf/62v3sTwtEJGJY6S5m7PfkglU8hi1URaxqIjiRg1OItV27xyc4aVeR0og8cDkZFkUlGZKv+23bJtT1QWFzQ==} - engines: {node: '>=18.0.0'} - - '@google/generative-ai@0.7.1': - resolution: {integrity: sha512-WTjMLLYL/xfA5BW6xAycRPiAX7FNHKAxrid/ayqC1QMam0KAK0NbMeS9Lubw80gVg5xFMLE+H7pw4wdNzTOlxw==} + '@google/generative-ai@0.21.0': + resolution: {integrity: sha512-7XhUbtnlkSEZK15kN3t+tzIMxsbKm/dSkKBFalj+20NvPKe1kBY7mR2P7vuijEn+f06z5+A8bVGKO0v39cr6Wg==} engines: {node: '>=18.0.0'} '@grpc/grpc-js@1.10.8': @@ -3157,14 +3153,14 @@ packages: '@kwsites/promise-deferred@1.1.1': resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} - '@langchain/anthropic@0.3.7': - resolution: {integrity: sha512-MjV7BNPalnG3S6PqXYHRtv3nEML1fFHl9OsqjT5KCPcULxJImnIZrJX5qMTnezM5A+Q6KOZt3e07x7aYCmU3Sg==} + '@langchain/anthropic@0.3.8': + resolution: {integrity: sha512-7qeRDhNnCf1peAbjY825R2HNszobJeGvqi2cfPl+YsduDIYEGUzfoGRRarPI5joIGX5YshCsch6NFtap2bLfmw==} engines: {node: '>=18'} peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' - '@langchain/aws@0.1.1': - resolution: {integrity: sha512-6JoRoW/8nca+jJcklZ6kJ7qBUQoBskygGiF5Wf3A89JPyGCHDds8rPQFNJO5S7ki+kRRNWh5G5hcc2ahaqZjWQ==} + '@langchain/aws@0.1.2': + resolution: {integrity: sha512-1cQvv8XSbaZXceAbYexSm/8WLqfEJ4VF6qbf/XLwkpUKMFGqpSBA00+Bn5p8K/Ms+PyMguZrxVNqd6daqxhDBQ==} engines: {node: '>=18'} peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' @@ -3175,8 +3171,8 @@ packages: peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' - '@langchain/community@0.3.11': - resolution: {integrity: sha512-hgnqsgWAhfUj9Kp0y+FGxlKot/qJFxat9GfIPJSJU4ViN434PgeMAQK53tkGZ361E2Zoo1V4RoGlSw4AjJILiA==} + '@langchain/community@0.3.15': + resolution: {integrity: sha512-yG4cv33u7zYar14yqZCI7o2KjwRb+9S7upVzEmVVETimpicm9UjpkMfX4qa4A4IslM1TtC4uy2Ymu9EcINZSpQ==} engines: {node: '>=18'} peerDependencies: '@arcjet/redact': ^v1.0.0-alpha.23 @@ -3207,6 +3203,7 @@ packages: '@gradientai/nodejs-sdk': ^1.2.0 '@huggingface/inference': ^2.6.4 '@ibm-cloud/watsonx-ai': '*' + '@lancedb/lancedb': ^0.12.0 '@langchain/core': '>=0.2.21 <0.4.0' '@layerup/layerup-security': ^1.5.12 '@libsql/client': ^0.14.0 @@ -3295,7 +3292,6 @@ packages: typeorm: ^0.3.20 typesense: ^1.5.3 usearch: ^1.1.1 - vectordb: ^0.1.4 voy-search: 0.6.2 weaviate-ts-client: '*' web-auth-library: ^1.0.3 @@ -3357,6 +3353,8 @@ packages: optional: true '@huggingface/inference': optional: true + '@lancedb/lancedb': + optional: true '@layerup/layerup-security': optional: true '@libsql/client': @@ -3529,8 +3527,6 @@ packages: optional: true usearch: optional: true - vectordb: - optional: true voy-search: optional: true weaviate-ts-client: @@ -3544,30 +3540,30 @@ packages: youtubei.js: optional: true - '@langchain/core@0.3.15': - resolution: {integrity: sha512-HheOAhczmIH47fWzLkV+NZjjgYCUjfqjmUb9C9LTKaJMHr+kKnbBi/r9ueSaufeuEHRG2OuKWq+YQ5cHDByU5A==} + '@langchain/core@0.3.19': + resolution: {integrity: sha512-pJVOAHShefu1SRO8uhzUs0Pexah/Ib66WETLMScIC2w9vXlpwQy3DzXJPJ5X7ixry9N666jYO5cHtM2Z1DnQIQ==} engines: {node: '>=18'} - '@langchain/google-common@0.1.1': - resolution: {integrity: sha512-oT/6lBev/Ufkp1dJbOTJ2S7xD9c+w9CqnqKqFOSxuZJbM4G8hzJtt7PDBOGfamIwtQP8dR7ORKXs1sCl+f5Tig==} + '@langchain/google-common@0.1.3': + resolution: {integrity: sha512-yry0taVC5AUwn55Gc6PTQX2XHLfbh6PAOheatkB77u22bYzLNaKG+DGQR8CRVRS9oZEXuNpXyAV7X2+2wv1w6Q==} engines: {node: '>=18'} peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' - '@langchain/google-gauth@0.1.0': - resolution: {integrity: sha512-0kps1NmaNiSl4n3lRw+7xsyhrEfIxNqBjih0kNYWPjLg55f9I9+QAlz7F1Sz/628HF1WQLFLQcBQA4geGzvenQ==} + '@langchain/google-gauth@0.1.3': + resolution: {integrity: sha512-/FfF/5KNP78gUHLMhyqI9kMlYy7v+uyRddjx0lsiTOGWTZeFhhemmYw4Vbb8ltUSgfyx7/c9M8GryxY9vW5pqA==} engines: {node: '>=18'} peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' - '@langchain/google-genai@0.1.2': - resolution: {integrity: sha512-oePFjTurY4O2tJiU4cJ3Wu9L+JGVwYib2LovI+SxGJImVyVlQQ1HV2SVek03vqG4d0kiX0XLQTEC7mJ7EBySkg==} + '@langchain/google-genai@0.1.4': + resolution: {integrity: sha512-b8qrqnHYbNseaAikrWyxuDTww6CUIse82F5/BmF2GtWVR25yJrNUWETfTp7o7iIMxhFR0PuQag4gEZOL74F5Tw==} engines: {node: '>=18'} peerDependencies: - '@langchain/core': '>=0.2.21 <0.4.0' + '@langchain/core': '>=0.3.17 <0.4.0' - '@langchain/google-vertexai@0.1.0': - resolution: {integrity: sha512-xTi5NvNGSLQl/7OTsj4QTT0DkNbZ7cYDrEB0HqpZOwo6I5dulh/h2payGVQ6hdXj7Yyv78dRc5FdQSbyHui/WQ==} + '@langchain/google-vertexai@0.1.3': + resolution: {integrity: sha512-AOvojzPiKKv1gZiH9tBYPBcZ3nOCuQAQsh4a/djYmlwjcA5bIb/teOa9eFZVTB83L2eM1U5steZF4nwQHnIIvw==} engines: {node: '>=18'} peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' @@ -3578,32 +3574,32 @@ packages: peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' - '@langchain/mistralai@0.1.1': - resolution: {integrity: sha512-gnHdQRfn+iBReKD0u1nydGqHgVOjnKHpd0Q2qEN61ZuxiqFOOauWYkrbyml7tzcOdMv2vUAr5+pjpXip+ez59w==} + '@langchain/mistralai@0.2.0': + resolution: {integrity: sha512-VdfbKZopAuSXf/vlXbriGWLK3c7j5s47DoB3S31xpprY2BMSKZZiX9vE9TsgxMfAPuIDPIYcfgU7p1upvTYt8g==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.3.7 <0.4.0' + + '@langchain/ollama@0.1.2': + resolution: {integrity: sha512-WCeogCFjdWf6jGwLt12cxkSpm5eVamv43b48DIlbJ4np9vChwVlZZB6FU7uEXNrJ9c0dsoa6877hJ5mYHdbJvw==} engines: {node: '>=18'} peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' - '@langchain/ollama@0.1.1': - resolution: {integrity: sha512-IQEdzGkfKzdoyys3GW5hCXc64d/u1xkrYXved73BLO+bnyQfzrM224jdsiYGUpjW3cUaO1ebD6PUiMYcANPPFQ==} - engines: {node: '>=18'} - peerDependencies: - '@langchain/core': '>=0.2.21 <0.4.0' - - '@langchain/openai@0.3.11': - resolution: {integrity: sha512-mEFbpJ8w8NPArsquUlCwxvZTKNkXxqwzvTEYzv6Jb7gUoBDOZtwLg6AdcngTJ+w5VFh3wxgPy0g3zb9Aw0Qbpw==} + '@langchain/openai@0.3.14': + resolution: {integrity: sha512-lNWjUo1tbvsss45IF7UQtMu1NJ6oUKvhgPYWXnX9f/d6OmuLu7D99HQ3Y88vLcUo9XjjOy417olYHignMduMjA==} engines: {node: '>=18'} peerDependencies: '@langchain/core': '>=0.2.26 <0.4.0' - '@langchain/pinecone@0.1.1': - resolution: {integrity: sha512-NxIqag6tp2rFKXjy9DTx+wBERXgDlWLlZ56nyje9G/mEd3TCSs9bZk8Tjx8rkT19BgvdHOSqyMyiTzEz6o5cKw==} + '@langchain/pinecone@0.1.3': + resolution: {integrity: sha512-1DPZvkg3Ve1TJSUfmpf7GF2SvRyg8cLjKjffkuW/C3oPONti2a9W7Q+F18YgBf1Swk0bPJ7A1EtMvlsU+NOQmw==} engines: {node: '>=18'} peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' - '@langchain/qdrant@0.1.0': - resolution: {integrity: sha512-6XiURYm9ININpcPhSukCM7e3GQaUfMnJ8eAjUKOPfnBuaRNn/a5nUsg+aVQuIElKgrWn+Z6WRlFgx+wgKEWpKQ==} + '@langchain/qdrant@0.1.1': + resolution: {integrity: sha512-v0A8wMO6x1XnYKgaXoqWUQAkeOvwcUIQPc1tM5sDTuU3JdQrhZDfuaSg7LJAh0wXJ9Eud7MwpkjYHWUiuE17/A==} engines: {node: '>=18'} peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' @@ -3673,8 +3669,10 @@ packages: '@miragejs/pretender-node-polyfill@0.1.2': resolution: {integrity: sha512-M/BexG/p05C5lFfMunxo/QcgIJnMT2vDVCd00wNqK2ImZONIlEETZwWJu1QtLxtmYlSHlCFl3JNzp0tLe7OJ5g==} - '@mistralai/mistralai@0.4.0': - resolution: {integrity: sha512-KmFzNro1RKxIFh19J3osmUQhucefBBauMXN5fa9doG6dT9OHR/moBvvn+riVlR7c0AVfuxO8Dfa03AyLYYzbyg==} + '@mistralai/mistralai@1.3.4': + resolution: {integrity: sha512-db5UhCXqH0N05XbXMR/2bSiGKIFUzS6p0sI9Nl2XDmJuDZIm+WRGTlsq60ALwhvKpHcQKzN5L58HIneksRrn9g==} + peerDependencies: + zod: '>= 3' '@mongodb-js/saslprep@1.1.9': resolution: {integrity: sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==} @@ -3860,8 +3858,8 @@ packages: '@otplib/preset-v11@12.0.1': resolution: {integrity: sha512-9hSetMI7ECqbFiKICrNa4w70deTUfArtwXykPUvSHWOdzOlfa9ajglu7mNCntlvxycTiOAXkQGwjQCzzDEMRMg==} - '@pinecone-database/pinecone@3.0.3': - resolution: {integrity: sha512-0cAG0d/6knVZgVyXM1II4qG3dyOepLuAQsCXTOJomdA7iQxf+/Om9mq9Cw4QObr56oZ+lqtptlw5qz0BQaBX2Q==} + '@pinecone-database/pinecone@4.0.0': + resolution: {integrity: sha512-INYS+GBys9v5BRTyn0tv8srVsPTlSRvE3BPE4Wkc/lOEyAIyB9F7DEMXbeF19FOLEgRwCuHTLjzm1niENl+4FA==} engines: {node: '>=18.0.0'} '@pinia/testing@0.1.6': @@ -6182,9 +6180,6 @@ packages: codemirror-lang-html-n8n@1.0.0: resolution: {integrity: sha512-ofNP6VTDGJ5rue+kTCZlDZdF1PnE0sl2cAkfrsCAd5MlBgDmqTwuFJIkTI6KXOJXs0ucdTYH6QLhy9BSW7EaOQ==} - cohere-ai@7.13.2: - resolution: {integrity: sha512-VCEzlwo/SYCBtDWpCTs9JsEn6jLAPxOvFcqdhT+urCl32hQhs1ENH20c5tvNPupTN/UdP8tkOPJdlrxfBRh5Yw==} - cohere-ai@7.14.0: resolution: {integrity: sha512-hSo2/tFV29whjFFtVtdS7kHmtUsjfMO1sgwE/d5bhOE4O7Vkj5G1R9lLIqkIprp/+rrvCq3HGvEaOgry7xRcDA==} @@ -8688,8 +8683,8 @@ packages: kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - langchain@0.3.5: - resolution: {integrity: sha512-Gq0xC45Sq6nszS8kQG9suCrmBsuXH0INMmiF7D2TwPb6mtG35Jiq4grCk9ykpwPsarTHdty3SzUbII/FqiYSSw==} + langchain@0.3.6: + resolution: {integrity: sha512-erZOIKXzwCOrQHqY9AyjkQmaX62zUap1Sigw1KrwMUOnVoLKkVNRmAyxFlNZDZ9jLs/58MaQcaT9ReJtbj3x6w==} engines: {node: '>=18'} peerDependencies: '@langchain/anthropic': '*' @@ -9808,8 +9803,8 @@ packages: resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} engines: {node: '>=12'} - openai@4.69.0: - resolution: {integrity: sha512-S3hOHSkk609KqwgH+7dwFrSvO3Gm3Nk0YWGyPHNscoMH/Y2tH1qunMi7gtZnLbUv4/N1elqCp6bDior2401kCQ==} + openai@4.73.1: + resolution: {integrity: sha512-nWImDJBcUsqrhy7yJScXB4+iqjzbUEgzfA3un/6UnHFdwWhjX24oztj69Ped/njABfOdLcO/F7CeWTI5dt8Xmg==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -14127,7 +14122,7 @@ snapshots: '@gar/promisify@1.1.3': optional: true - '@getzep/zep-cloud@1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki))': + '@getzep/zep-cloud@1.0.12(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.6(4axcxpjbcq5bce7ff6ajxrpp4i))': dependencies: form-data: 4.0.0 node-fetch: 2.7.0(encoding@0.1.13) @@ -14135,8 +14130,8 @@ snapshots: url-join: 4.0.1 zod: 3.23.8 optionalDependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) - langchain: 0.3.5(7umjwzmwnymi4lyinuvazmp6ki) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) + langchain: 0.3.6(4axcxpjbcq5bce7ff6ajxrpp4i) transitivePeerDependencies: - encoding @@ -14197,9 +14192,7 @@ snapshots: - encoding - supports-color - '@google/generative-ai@0.19.0': {} - - '@google/generative-ai@0.7.1': {} + '@google/generative-ai@0.21.0': {} '@grpc/grpc-js@1.10.8': dependencies: @@ -14566,10 +14559,10 @@ snapshots: '@kwsites/promise-deferred@1.1.1': {} - '@langchain/anthropic@0.3.7(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': + '@langchain/anthropic@0.3.8(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': dependencies: '@anthropic-ai/sdk': 0.27.3(encoding@0.1.13) - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) fast-xml-parser: 4.4.1 zod: 3.23.8 zod-to-json-schema: 3.23.3(zod@3.23.8) @@ -14577,13 +14570,13 @@ snapshots: - encoding - supports-color - '@langchain/aws@0.1.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0)(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))': + '@langchain/aws@0.1.2(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0)(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))': dependencies: '@aws-sdk/client-bedrock-agent-runtime': 3.666.0 '@aws-sdk/client-bedrock-runtime': 3.666.0 '@aws-sdk/client-kendra': 3.666.0 '@aws-sdk/credential-provider-node': 3.666.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0) - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) zod: 3.23.8 zod-to-json-schema: 3.23.3(zod@3.23.8) transitivePeerDependencies: @@ -14591,9 +14584,9 @@ snapshots: - '@aws-sdk/client-sts' - aws-crt - '@langchain/cohere@0.3.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': + '@langchain/cohere@0.3.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) cohere-ai: 7.14.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(encoding@0.1.13) uuid: 10.0.0 zod: 3.23.8 @@ -14603,18 +14596,18 @@ snapshots: - aws-crt - encoding - '@langchain/community@0.3.11(ndajhtzj4xqxxpqz4t56suvqri)': + '@langchain/community@0.3.15(v4qhcw25bevfr6xzz4fnsvjiqe)': dependencies: '@ibm-cloud/watsonx-ai': 1.1.2 - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/openai': 0.3.11(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) + '@langchain/openai': 0.3.14(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) binary-extensions: 2.2.0 expr-eval: 2.0.2 flat: 5.0.2 ibm-cloud-sdk-core: 5.1.0 js-yaml: 4.1.0 - langchain: 0.3.5(7umjwzmwnymi4lyinuvazmp6ki) - langsmith: 0.2.3(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + langchain: 0.3.6(4axcxpjbcq5bce7ff6ajxrpp4i) + langsmith: 0.2.3(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) uuid: 10.0.0 zod: 3.23.8 zod-to-json-schema: 3.23.3(zod@3.23.8) @@ -14626,13 +14619,13 @@ snapshots: '@aws-sdk/client-s3': 3.666.0 '@aws-sdk/credential-provider-node': 3.666.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0) '@azure/storage-blob': 12.18.0(encoding@0.1.13) - '@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki)) + '@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.6(4axcxpjbcq5bce7ff6ajxrpp4i)) '@getzep/zep-js': 0.9.0 '@google-ai/generativelanguage': 2.6.0(encoding@0.1.13) '@google-cloud/storage': 7.12.1(encoding@0.1.13) '@huggingface/inference': 2.8.0 '@mozilla/readability': 0.5.0 - '@pinecone-database/pinecone': 3.0.3 + '@pinecone-database/pinecone': 4.0.0 '@qdrant/js-client-rest': 1.11.0(typescript@5.7.2) '@smithy/eventstream-codec': 2.2.0 '@smithy/protocol-http': 3.3.0 @@ -14641,7 +14634,7 @@ snapshots: '@supabase/supabase-js': 2.45.4 '@xata.io/client': 0.28.4(typescript@5.7.2) cheerio: 1.0.0 - cohere-ai: 7.13.2(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(encoding@0.1.13) + cohere-ai: 7.14.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(encoding@0.1.13) crypto-js: 4.2.0 d3-dsv: 2.0.0 epub2: 3.0.2(ts-toolbelt@9.6.0) @@ -14674,13 +14667,13 @@ snapshots: - peggy - supports-color - '@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))': + '@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))': dependencies: ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.12 - langsmith: 0.2.3(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + langsmith: 0.2.3(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 @@ -14690,13 +14683,13 @@ snapshots: transitivePeerDependencies: - openai - '@langchain/core@0.3.15(openai@4.69.0(zod@3.23.8))': + '@langchain/core@0.3.19(openai@4.73.1(zod@3.23.8))': dependencies: ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.12 - langsmith: 0.2.3(openai@4.69.0(zod@3.23.8)) + langsmith: 0.2.3(openai@4.73.1(zod@3.23.8)) mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 @@ -14706,13 +14699,13 @@ snapshots: transitivePeerDependencies: - openai - '@langchain/core@0.3.15(openai@4.69.0)': + '@langchain/core@0.3.19(openai@4.73.1)': dependencies: ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.12 - langsmith: 0.2.3(openai@4.69.0) + langsmith: 0.2.3(openai@4.73.1) mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 @@ -14722,45 +14715,45 @@ snapshots: transitivePeerDependencies: - openai - '@langchain/google-common@0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8)': + '@langchain/google-common@0.1.3(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8)': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) uuid: 10.0.0 zod-to-json-schema: 3.23.3(zod@3.23.8) transitivePeerDependencies: - zod - '@langchain/google-gauth@0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(zod@3.23.8)': + '@langchain/google-gauth@0.1.3(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(zod@3.23.8)': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/google-common': 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) + '@langchain/google-common': 0.1.3(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8) google-auth-library: 8.9.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color - zod - '@langchain/google-genai@0.1.2(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8)': + '@langchain/google-genai@0.1.4(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8)': dependencies: - '@google/generative-ai': 0.7.1 - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + '@google/generative-ai': 0.21.0 + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) zod-to-json-schema: 3.23.3(zod@3.23.8) transitivePeerDependencies: - zod - '@langchain/google-vertexai@0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(zod@3.23.8)': + '@langchain/google-vertexai@0.1.3(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(zod@3.23.8)': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/google-gauth': 0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(zod@3.23.8) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) + '@langchain/google-gauth': 0.1.3(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(zod@3.23.8) transitivePeerDependencies: - encoding - supports-color - zod - '@langchain/groq@0.1.2(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': + '@langchain/groq@0.1.2(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/openai': 0.3.11(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) + '@langchain/openai': 0.3.14(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) groq-sdk: 0.5.0(encoding@0.1.13) zod: 3.23.8 zod-to-json-schema: 3.23.3(zod@3.23.8) @@ -14768,56 +14761,54 @@ snapshots: - encoding - supports-color - '@langchain/mistralai@0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': + '@langchain/mistralai@0.2.0(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) - '@mistralai/mistralai': 0.4.0(encoding@0.1.13) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) + '@mistralai/mistralai': 1.3.4(zod@3.23.8) uuid: 10.0.0 zod: 3.23.8 zod-to-json-schema: 3.23.3(zod@3.23.8) - transitivePeerDependencies: - - encoding - '@langchain/ollama@0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))': + '@langchain/ollama@0.1.2(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) ollama: 0.5.9 uuid: 10.0.0 - '@langchain/openai@0.3.11(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': + '@langchain/openai@0.3.14(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) js-tiktoken: 1.0.12 - openai: 4.69.0(encoding@0.1.13)(zod@3.23.8) + openai: 4.73.1(encoding@0.1.13)(zod@3.23.8) zod: 3.23.8 zod-to-json-schema: 3.23.3(zod@3.23.8) transitivePeerDependencies: - encoding - supports-color - '@langchain/pinecone@0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))': + '@langchain/pinecone@0.1.3(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) - '@pinecone-database/pinecone': 3.0.3 + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) + '@pinecone-database/pinecone': 4.0.0 flat: 5.0.2 uuid: 10.0.0 - '@langchain/qdrant@0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(typescript@5.7.2)': + '@langchain/qdrant@0.1.1(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(typescript@5.7.2)': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) '@qdrant/js-client-rest': 1.11.0(typescript@5.7.2) uuid: 10.0.0 transitivePeerDependencies: - typescript - '@langchain/redis@0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))': + '@langchain/redis@0.1.0(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) redis: 4.6.14 - '@langchain/textsplitters@0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))': + '@langchain/textsplitters@0.1.0(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))': dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) js-tiktoken: 1.0.12 '@lezer/common@1.1.0': {} @@ -14906,11 +14897,9 @@ snapshots: '@miragejs/pretender-node-polyfill@0.1.2': {} - '@mistralai/mistralai@0.4.0(encoding@0.1.13)': + '@mistralai/mistralai@1.3.4(zod@3.23.8)': dependencies: - node-fetch: 2.7.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding + zod: 3.23.8 '@mongodb-js/saslprep@1.1.9': dependencies: @@ -15127,7 +15116,7 @@ snapshots: '@otplib/plugin-crypto': 12.0.1 '@otplib/plugin-thirty-two': 12.0.1 - '@pinecone-database/pinecone@3.0.3': + '@pinecone-database/pinecone@4.0.0': dependencies: encoding: 0.1.13 @@ -15339,7 +15328,7 @@ snapshots: '@rudderstack/rudder-sdk-node@2.0.9(tslib@2.6.2)': dependencies: - axios: 1.7.4 + axios: 1.7.4(debug@4.3.7) axios-retry: 3.7.0 component-type: 1.2.1 join-component: 1.1.0 @@ -17595,17 +17584,9 @@ snapshots: '@babel/runtime': 7.24.7 is-retry-allowed: 2.2.0 - axios@1.7.4: - dependencies: - follow-redirects: 1.15.6(debug@4.3.6) - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - axios@1.7.4(debug@4.3.7): dependencies: - follow-redirects: 1.15.6(debug@4.3.7) + follow-redirects: 1.15.6(debug@4.3.6) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -18134,25 +18115,6 @@ snapshots: '@lezer/html': 1.3.0 '@lezer/lr': 1.4.0 - cohere-ai@7.13.2(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(encoding@0.1.13): - dependencies: - '@aws-sdk/client-sagemaker': 3.666.0 - '@aws-sdk/credential-providers': 3.666.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0)) - '@aws-sdk/protocol-http': 3.374.0 - '@aws-sdk/signature-v4': 3.374.0 - form-data: 4.0.0 - form-data-encoder: 4.0.2 - formdata-node: 6.0.3 - js-base64: 3.7.2 - node-fetch: 2.7.0(encoding@0.1.13) - qs: 6.11.2 - readable-stream: 4.5.2 - url-join: 4.0.1 - transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - aws-crt - - encoding - cohere-ai@7.14.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(encoding@0.1.13): dependencies: '@aws-sdk/client-sagemaker': 3.666.0 @@ -21447,15 +21409,15 @@ snapshots: kuler@2.0.0: {} - langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki): + langchain@0.3.6(4axcxpjbcq5bce7ff6ajxrpp4i): dependencies: - '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/openai': 0.3.11(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))) + '@langchain/core': 0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) + '@langchain/openai': 0.3.14(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))) js-tiktoken: 1.0.12 js-yaml: 4.1.0 jsonpointer: 5.0.1 - langsmith: 0.2.3(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) + langsmith: 0.2.3(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)) openapi-types: 12.1.3 p-retry: 4.6.2 uuid: 10.0.0 @@ -21463,15 +21425,15 @@ snapshots: zod: 3.23.8 zod-to-json-schema: 3.23.3(zod@3.23.8) optionalDependencies: - '@langchain/anthropic': 0.3.7(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) - '@langchain/aws': 0.1.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0)(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))) - '@langchain/cohere': 0.3.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) - '@langchain/google-genai': 0.1.2(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8) - '@langchain/google-vertexai': 0.1.0(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(zod@3.23.8) - '@langchain/groq': 0.1.2(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) - '@langchain/mistralai': 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) - '@langchain/ollama': 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))) - axios: 1.7.4 + '@langchain/anthropic': 0.3.8(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/aws': 0.1.2(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0)(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))) + '@langchain/cohere': 0.3.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/google-genai': 0.1.4(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8) + '@langchain/google-vertexai': 0.1.3(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(zod@3.23.8) + '@langchain/groq': 0.1.2(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/mistralai': 0.2.0(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))) + '@langchain/ollama': 0.1.2(@langchain/core@0.3.19(openai@4.73.1(encoding@0.1.13)(zod@3.23.8))) + axios: 1.7.4(debug@4.3.7) cheerio: 1.0.0 handlebars: 4.7.8 transitivePeerDependencies: @@ -21479,7 +21441,7 @@ snapshots: - openai - supports-color - langsmith@0.2.3(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)): + langsmith@0.2.3(openai@4.73.1(encoding@0.1.13)(zod@3.23.8)): dependencies: '@types/uuid': 10.0.0 commander: 10.0.1 @@ -21488,9 +21450,9 @@ snapshots: semver: 7.6.0 uuid: 10.0.0 optionalDependencies: - openai: 4.69.0(encoding@0.1.13)(zod@3.23.8) + openai: 4.73.1(encoding@0.1.13)(zod@3.23.8) - langsmith@0.2.3(openai@4.69.0(zod@3.23.8)): + langsmith@0.2.3(openai@4.73.1(zod@3.23.8)): dependencies: '@types/uuid': 10.0.0 commander: 10.0.1 @@ -21499,9 +21461,9 @@ snapshots: semver: 7.6.0 uuid: 10.0.0 optionalDependencies: - openai: 4.69.0(zod@3.23.8) + openai: 4.73.1(zod@3.23.8) - langsmith@0.2.3(openai@4.69.0): + langsmith@0.2.3(openai@4.73.1): dependencies: '@types/uuid': 10.0.0 commander: 10.0.1 @@ -21510,7 +21472,7 @@ snapshots: semver: 7.6.0 uuid: 10.0.0 optionalDependencies: - openai: 4.69.0(zod@3.23.8) + openai: 4.73.1(zod@3.23.8) lazy-ass@1.6.0: {} @@ -22833,7 +22795,7 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@4.69.0(encoding@0.1.13)(zod@3.23.8): + openai@4.73.1(encoding@0.1.13)(zod@3.23.8): dependencies: '@types/node': 18.16.16 '@types/node-fetch': 2.6.4 @@ -22848,7 +22810,7 @@ snapshots: - encoding - supports-color - openai@4.69.0(zod@3.23.8): + openai@4.73.1(zod@3.23.8): dependencies: '@types/node': 18.16.16 '@types/node-fetch': 2.6.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 306d776861..792d97662a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -27,7 +27,7 @@ catalog: xml2js: 0.6.2 xss: 1.0.15 zod: 3.23.8 - '@langchain/core': 0.3.15 + '@langchain/core': 0.3.19 catalogs: frontend: From 967340a2938a79c89319121bf57a8d654f88e06c Mon Sep 17 00:00:00 2001 From: oleg Date: Mon, 2 Dec 2024 16:08:48 +0100 Subject: [PATCH 05/17] fix(editor): Fix copy/paste keyboard events in canvas chat (#12004) --- packages/editor-ui/src/components/CanvasChat/CanvasChat.vue | 2 +- .../src/components/CanvasChat/components/ChatMessagesPanel.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/editor-ui/src/components/CanvasChat/CanvasChat.vue b/packages/editor-ui/src/components/CanvasChat/CanvasChat.vue index 7b27cf4b3d..adfbc8cdd4 100644 --- a/packages/editor-ui/src/components/CanvasChat/CanvasChat.vue +++ b/packages/editor-ui/src/components/CanvasChat/CanvasChat.vue @@ -283,7 +283,7 @@ watchEffect(() => { :style="rootStyles" @resize="onResizeDebounced" > -
+
- +