@n8n/n8n-nodes-langchain 2.11.2 → 2.12.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/dist/credentials/ChatHubVectorStorePGVectorApi.credentials.d.ts +8 -0
- package/dist/credentials/ChatHubVectorStorePGVectorApi.credentials.js +22 -0
- package/dist/credentials/ChatHubVectorStorePGVectorApi.credentials.js.map +1 -0
- package/dist/credentials/ChatHubVectorStorePineconeApi.credentials.d.ts +8 -0
- package/dist/credentials/ChatHubVectorStorePineconeApi.credentials.js +30 -0
- package/dist/credentials/ChatHubVectorStorePineconeApi.credentials.js.map +1 -0
- package/dist/credentials/ChatHubVectorStoreQdrantApi.credentials.d.ts +8 -0
- package/dist/credentials/ChatHubVectorStoreQdrantApi.credentials.js +22 -0
- package/dist/credentials/ChatHubVectorStoreQdrantApi.credentials.js.map +1 -0
- package/dist/known/credentials.json +30 -0
- package/dist/known/nodes.json +12 -0
- package/dist/node-definitions/.nodes-hash +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/index.ts +3 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/v13.schema.js +38 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/chat/v13.ts +303 -0
- package/dist/nodes/tools/ToolCode/ToolCode.node.js +4 -21
- package/dist/nodes/tools/ToolCode/ToolCode.node.js.map +1 -1
- package/dist/nodes/trigger/ChatTrigger/Chat.node.js +4 -2
- package/dist/nodes/trigger/ChatTrigger/Chat.node.js.map +1 -1
- package/dist/nodes/vector_store/ChatHubVectorStorePGVector/ChatHubVectorStorePGVector.node.d.ts +20 -0
- package/dist/nodes/vector_store/ChatHubVectorStorePGVector/ChatHubVectorStorePGVector.node.js +132 -0
- package/dist/nodes/vector_store/ChatHubVectorStorePGVector/ChatHubVectorStorePGVector.node.js.map +1 -0
- package/dist/nodes/vector_store/ChatHubVectorStorePinecone/ChatHubVectorStorePinecone.node.d.ts +20 -0
- package/dist/nodes/vector_store/ChatHubVectorStorePinecone/ChatHubVectorStorePinecone.node.js +97 -0
- package/dist/nodes/vector_store/ChatHubVectorStorePinecone/ChatHubVectorStorePinecone.node.js.map +1 -0
- package/dist/nodes/vector_store/ChatHubVectorStoreQdrant/ChatHubVectorStoreQdrant.node.d.ts +20 -0
- package/dist/nodes/vector_store/ChatHubVectorStoreQdrant/ChatHubVectorStoreQdrant.node.js +103 -0
- package/dist/nodes/vector_store/ChatHubVectorStoreQdrant/ChatHubVectorStoreQdrant.node.js.map +1 -0
- package/dist/nodes/vector_store/VectorStoreAzureAISearch/VectorStoreAzureAISearch.node.d.ts +3 -0
- package/dist/nodes/vector_store/VectorStoreChromaDB/VectorStoreChromaDB.node.d.ts +3 -0
- package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.d.ts +3 -0
- package/dist/nodes/vector_store/VectorStoreMilvus/VectorStoreMilvus.node.d.ts +3 -0
- package/dist/nodes/vector_store/VectorStoreMongoDBAtlas/VectorStoreMongoDBAtlas.node.d.ts +3 -0
- package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.d.ts +11 -0
- package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.js +2 -1
- package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.js.map +1 -1
- package/dist/nodes/vector_store/VectorStorePinecone/VectorStorePinecone.node.d.ts +3 -0
- package/dist/nodes/vector_store/VectorStoreQdrant/VectorStoreQdrant.node.d.ts +3 -0
- package/dist/nodes/vector_store/VectorStoreRedis/VectorStoreRedis.node.d.ts +3 -0
- package/dist/nodes/vector_store/VectorStoreSupabase/VectorStoreSupabase.node.d.ts +3 -0
- package/dist/nodes/vector_store/VectorStoreWeaviate/VectorStoreWeaviate.node.d.ts +3 -0
- package/dist/nodes/vector_store/VectorStoreZep/VectorStoreZep.node.d.ts +3 -0
- package/dist/nodes/vector_store/shared/userScoped.d.ts +3 -0
- package/dist/nodes/vector_store/shared/userScoped.js +22 -0
- package/dist/nodes/vector_store/shared/userScoped.js.map +1 -0
- package/dist/typecheck.tsbuildinfo +1 -1
- package/dist/types/credentials.json +4 -1
- package/dist/types/nodes.json +4 -1
- package/package.json +17 -11
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class ChatHubVectorStorePGVectorApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
extends: string[];
|
|
5
|
+
displayName: string;
|
|
6
|
+
documentationUrl: string;
|
|
7
|
+
properties: INodeProperties[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatHubVectorStorePGVectorApi = void 0;
|
|
4
|
+
class ChatHubVectorStorePGVectorApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'chatHubVectorStorePGVectorApi';
|
|
7
|
+
this.extends = ['postgres'];
|
|
8
|
+
this.displayName = 'ChatHub PGVector Store API';
|
|
9
|
+
this.documentationUrl = 'postgres';
|
|
10
|
+
this.properties = [
|
|
11
|
+
{
|
|
12
|
+
displayName: 'Table Name Prefix',
|
|
13
|
+
name: 'tableNamePrefix',
|
|
14
|
+
type: 'string',
|
|
15
|
+
default: 'n8n_vectors',
|
|
16
|
+
description: 'Prefix for table names. The full table name will be {prefix}_{userId}.',
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.ChatHubVectorStorePGVectorApi = ChatHubVectorStorePGVectorApi;
|
|
22
|
+
//# sourceMappingURL=ChatHubVectorStorePGVectorApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatHubVectorStorePGVectorApi.credentials.js","sourceRoot":"","sources":["../../credentials/ChatHubVectorStorePGVectorApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,6BAA6B;IAA1C;QACC,SAAI,GAAG,+BAA+B,CAAC;QAEvC,YAAO,GAAG,CAAC,UAAU,CAAC,CAAC;QAEvB,gBAAW,GAAG,4BAA4B,CAAC;QAE3C,qBAAgB,GAAG,UAAU,CAAC;QAE9B,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,wEAAwE;aACrF;SACD,CAAC;IACH,CAAC;CAAA;AAlBD,sEAkBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class ChatHubVectorStorePineconeApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
extends: string[];
|
|
5
|
+
displayName: string;
|
|
6
|
+
documentationUrl: string;
|
|
7
|
+
properties: INodeProperties[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatHubVectorStorePineconeApi = void 0;
|
|
4
|
+
class ChatHubVectorStorePineconeApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'chatHubVectorStorePineconeApi';
|
|
7
|
+
this.extends = ['pineconeApi'];
|
|
8
|
+
this.displayName = 'ChatHub Pinecone Vector Store API';
|
|
9
|
+
this.documentationUrl = 'pinecone';
|
|
10
|
+
this.properties = [
|
|
11
|
+
{
|
|
12
|
+
displayName: 'Pinecone Index',
|
|
13
|
+
name: 'pineconeIndex',
|
|
14
|
+
type: 'string',
|
|
15
|
+
default: '',
|
|
16
|
+
required: true,
|
|
17
|
+
description: 'The Pinecone index to use for all users.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
displayName: 'Namespace Prefix',
|
|
21
|
+
name: 'namespacePrefix',
|
|
22
|
+
type: 'string',
|
|
23
|
+
default: 'n8n_vectors',
|
|
24
|
+
description: 'Prefix for namespace names. The full namespace will be {prefix}_{userId}.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ChatHubVectorStorePineconeApi = ChatHubVectorStorePineconeApi;
|
|
30
|
+
//# sourceMappingURL=ChatHubVectorStorePineconeApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatHubVectorStorePineconeApi.credentials.js","sourceRoot":"","sources":["../../credentials/ChatHubVectorStorePineconeApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,6BAA6B;IAA1C;QACC,SAAI,GAAG,+BAA+B,CAAC;QAEvC,YAAO,GAAG,CAAC,aAAa,CAAC,CAAC;QAE1B,gBAAW,GAAG,mCAAmC,CAAC;QAElD,qBAAgB,GAAG,UAAU,CAAC;QAE9B,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,0CAA0C;aACvD;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,2EAA2E;aACxF;SACD,CAAC;IACH,CAAC;CAAA;AA1BD,sEA0BC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class ChatHubVectorStoreQdrantApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
extends: string[];
|
|
5
|
+
displayName: string;
|
|
6
|
+
documentationUrl: string;
|
|
7
|
+
properties: INodeProperties[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatHubVectorStoreQdrantApi = void 0;
|
|
4
|
+
class ChatHubVectorStoreQdrantApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'chatHubVectorStoreQdrantApi';
|
|
7
|
+
this.extends = ['qdrantApi'];
|
|
8
|
+
this.displayName = 'ChatHub Qdrant Vector Store API';
|
|
9
|
+
this.documentationUrl = 'qdrant';
|
|
10
|
+
this.properties = [
|
|
11
|
+
{
|
|
12
|
+
displayName: 'Collection Name',
|
|
13
|
+
name: 'collectionName',
|
|
14
|
+
type: 'string',
|
|
15
|
+
default: 'n8n_vectors',
|
|
16
|
+
description: 'The Qdrant collection to use. All users share this collection; access is scoped per user via a userId metadata field.',
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.ChatHubVectorStoreQdrantApi = ChatHubVectorStoreQdrantApi;
|
|
22
|
+
//# sourceMappingURL=ChatHubVectorStoreQdrantApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatHubVectorStoreQdrantApi.credentials.js","sourceRoot":"","sources":["../../credentials/ChatHubVectorStoreQdrantApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,2BAA2B;IAAxC;QACC,SAAI,GAAG,6BAA6B,CAAC;QAErC,YAAO,GAAG,CAAC,WAAW,CAAC,CAAC;QAExB,gBAAW,GAAG,iCAAiC,CAAC;QAEhD,qBAAgB,GAAG,QAAQ,CAAC;QAE5B,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,iBAAiB;gBAC9B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,aAAa;gBACtB,WAAW,EACV,uHAAuH;aACxH;SACD,CAAC;IACH,CAAC;CAAA;AAnBD,kEAmBC"}
|
|
@@ -227,5 +227,35 @@
|
|
|
227
227
|
"vectorStoreZepInsert",
|
|
228
228
|
"vectorStoreZepLoad"
|
|
229
229
|
]
|
|
230
|
+
},
|
|
231
|
+
"chatHubVectorStorePGVectorApi": {
|
|
232
|
+
"className": "ChatHubVectorStorePGVectorApi",
|
|
233
|
+
"sourcePath": "dist/credentials/ChatHubVectorStorePGVectorApi.credentials.js",
|
|
234
|
+
"extends": [
|
|
235
|
+
"postgres"
|
|
236
|
+
],
|
|
237
|
+
"supportedNodes": [
|
|
238
|
+
"chatHubVectorStorePGVector"
|
|
239
|
+
]
|
|
240
|
+
},
|
|
241
|
+
"chatHubVectorStoreQdrantApi": {
|
|
242
|
+
"className": "ChatHubVectorStoreQdrantApi",
|
|
243
|
+
"sourcePath": "dist/credentials/ChatHubVectorStoreQdrantApi.credentials.js",
|
|
244
|
+
"extends": [
|
|
245
|
+
"qdrantApi"
|
|
246
|
+
],
|
|
247
|
+
"supportedNodes": [
|
|
248
|
+
"chatHubVectorStoreQdrant"
|
|
249
|
+
]
|
|
250
|
+
},
|
|
251
|
+
"chatHubVectorStorePineconeApi": {
|
|
252
|
+
"className": "ChatHubVectorStorePineconeApi",
|
|
253
|
+
"sourcePath": "dist/credentials/ChatHubVectorStorePineconeApi.credentials.js",
|
|
254
|
+
"extends": [
|
|
255
|
+
"pineconeApi"
|
|
256
|
+
],
|
|
257
|
+
"supportedNodes": [
|
|
258
|
+
"chatHubVectorStorePinecone"
|
|
259
|
+
]
|
|
230
260
|
}
|
|
231
261
|
}
|
package/dist/known/nodes.json
CHANGED
|
@@ -367,10 +367,22 @@
|
|
|
367
367
|
"className": "VectorStorePGVector",
|
|
368
368
|
"sourcePath": "dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.js"
|
|
369
369
|
},
|
|
370
|
+
"chatHubVectorStorePGVector": {
|
|
371
|
+
"className": "ChatHubVectorStorePGVector",
|
|
372
|
+
"sourcePath": "dist/nodes/vector_store/ChatHubVectorStorePGVector/ChatHubVectorStorePGVector.node.js"
|
|
373
|
+
},
|
|
374
|
+
"chatHubVectorStoreQdrant": {
|
|
375
|
+
"className": "ChatHubVectorStoreQdrant",
|
|
376
|
+
"sourcePath": "dist/nodes/vector_store/ChatHubVectorStoreQdrant/ChatHubVectorStoreQdrant.node.js"
|
|
377
|
+
},
|
|
370
378
|
"vectorStorePinecone": {
|
|
371
379
|
"className": "VectorStorePinecone",
|
|
372
380
|
"sourcePath": "dist/nodes/vector_store/VectorStorePinecone/VectorStorePinecone.node.js"
|
|
373
381
|
},
|
|
382
|
+
"chatHubVectorStorePinecone": {
|
|
383
|
+
"className": "ChatHubVectorStorePinecone",
|
|
384
|
+
"sourcePath": "dist/nodes/vector_store/ChatHubVectorStorePinecone/ChatHubVectorStorePinecone.node.js"
|
|
385
|
+
},
|
|
374
386
|
"vectorStorePineconeInsert": {
|
|
375
387
|
"className": "VectorStorePineconeInsert",
|
|
376
388
|
"sourcePath": "dist/nodes/vector_store/VectorStorePineconeInsert/VectorStorePineconeInsert.node.js"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
2f9d6d1274366eb5424fe236c5ba634216719c3d199d5e8dcf48cf83af87d31e
|
|
@@ -4,13 +4,15 @@
|
|
|
4
4
|
* Re-exports all version-specific types and provides combined union type.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import type { LcChatV13Node } from './v13';
|
|
7
8
|
import type { LcChatV12Node } from './v12';
|
|
8
9
|
import type { LcChatV11Node } from './v11';
|
|
9
10
|
import type { LcChatV1Node } from './v1';
|
|
10
11
|
|
|
12
|
+
export * from './v13';
|
|
11
13
|
export * from './v12';
|
|
12
14
|
export * from './v11';
|
|
13
15
|
export * from './v1';
|
|
14
16
|
|
|
15
17
|
// Combined union type for all versions
|
|
16
|
-
export type LcChatNode = LcChatV12Node | LcChatV11Node | LcChatV1Node;
|
|
18
|
+
export type LcChatNode = LcChatV13Node | LcChatV12Node | LcChatV11Node | LcChatV1Node;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat Node - Version 1.3 - Zod Validation Schemas
|
|
3
|
+
*
|
|
4
|
+
* These schemas validate node configuration at runtime.
|
|
5
|
+
* Use .parse() for strict validation or .safeParse() for error handling.
|
|
6
|
+
*
|
|
7
|
+
* Schema helpers (z, expressionSchema, etc.) are passed as parameters
|
|
8
|
+
* by the schema-validator, not imported from external files.
|
|
9
|
+
*
|
|
10
|
+
* @generated - CommonJS JavaScript for runtime loading
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
module.exports = function getSchema({ parameters, z, expressionSchema, stringOrExpression, numberOrExpression, booleanOrExpression, resourceLocatorValueSchema, resourceMapperValueSchema, filterValueSchema, assignmentCollectionValueSchema, iDataObjectSchema, resolveSchema, memoryInstanceSchema }) {
|
|
14
|
+
|
|
15
|
+
// Static subnode schema
|
|
16
|
+
const subnodesSchema = z.object({
|
|
17
|
+
memory: memoryInstanceSchema.optional(),
|
|
18
|
+
}).strict();
|
|
19
|
+
|
|
20
|
+
// Parameters schema
|
|
21
|
+
const parametersSchema = z.object({
|
|
22
|
+
operation: z.union([z.literal('send'), z.literal('sendAndWait')]).optional(),
|
|
23
|
+
message: stringOrExpression.optional(),
|
|
24
|
+
responseType: resolveSchema({ parameters, schema: z.union([z.literal('approval'), z.literal('freeTextChat'), expressionSchema]), required: false, displayOptions: {"show":{"operation":["sendAndWait"]}}, defaults: {"operation":"send"} }),
|
|
25
|
+
blockUserInput: resolveSchema({ parameters, schema: booleanOrExpression, required: false, displayOptions: {"show":{"responseType":["approval"]}}, defaults: {"responseType":"freeTextChat"} }),
|
|
26
|
+
defineForm: resolveSchema({ parameters, schema: z.union([z.literal('fields'), z.literal('json')]), required: false, displayOptions: {"show":{"responseType":["customForm"],"operation":["sendAndWait"]}}, defaults: {"responseType":"freeTextChat","operation":"send"} }),
|
|
27
|
+
jsonOutput: resolveSchema({ parameters, schema: z.union([iDataObjectSchema, z.string()]), required: false, displayOptions: {"show":{"defineForm":["json"],"responseType":["customForm"],"operation":["sendAndWait"]}}, defaults: {"defineForm":"fields","responseType":"freeTextChat","operation":"send"} }),
|
|
28
|
+
formFields: resolveSchema({ parameters, schema: z.object({ values: z.array(z.object({ fieldName: stringOrExpression.optional(), fieldLabel: stringOrExpression.optional(), fieldLabel: stringOrExpression.optional(), fieldName: stringOrExpression.optional(), fieldType: z.union([z.literal('checkbox'), z.literal('html'), z.literal('date'), z.literal('dropdown'), z.literal('email'), z.literal('file'), z.literal('hiddenField'), z.literal('number'), z.literal('password'), z.literal('radio'), z.literal('text'), z.literal('textarea'), expressionSchema]).optional(), elementName: stringOrExpression.optional(), fieldName: stringOrExpression.optional(), placeholder: stringOrExpression.optional(), defaultValue: stringOrExpression.optional(), defaultValue: stringOrExpression.optional(), defaultValue: stringOrExpression.optional(), defaultValue: stringOrExpression.optional(), fieldValue: stringOrExpression.optional(), fieldOptions: z.unknown().optional(), fieldOptions: z.unknown().optional(), fieldOptions: z.unknown().optional(), multiselect: booleanOrExpression.optional(), limitSelection: z.union([z.literal('exact'), z.literal('range'), z.literal('unlimited'), expressionSchema]).optional(), numberOfSelections: numberOrExpression.optional(), minSelections: numberOrExpression.optional(), maxSelections: numberOrExpression.optional(), html: z.string().optional(), multipleFiles: booleanOrExpression.optional(), acceptFileTypes: stringOrExpression.optional(), requiredField: booleanOrExpression.optional() })).optional() }), required: false, displayOptions: {"show":{"defineForm":["fields"],"responseType":["customForm"],"operation":["sendAndWait"]}}, defaults: {"defineForm":"fields","responseType":"freeTextChat","operation":"send"} }),
|
|
29
|
+
approvalOptions: resolveSchema({ parameters, schema: z.object({ values: z.object({ approvalType: z.union([z.literal('single'), z.literal('double'), expressionSchema]).optional(), approveLabel: stringOrExpression.optional(), buttonApprovalStyle: z.union([z.literal('primary'), z.literal('secondary'), expressionSchema]).optional(), disapproveLabel: stringOrExpression.optional(), buttonDisapprovalStyle: z.union([z.literal('primary'), z.literal('secondary'), expressionSchema]).optional() }).optional() }), required: false, displayOptions: {"show":{"responseType":["approval"],"operation":["sendAndWait"]}}, defaults: {"responseType":"freeTextChat","operation":"send"} }),
|
|
30
|
+
options: resolveSchema({ parameters, schema: z.object({ memoryConnection: booleanOrExpression.optional(), limitWaitTime: z.unknown().optional(), limitWaitTime: z.unknown().optional() }), required: false, displayOptions: {"show":{"@tool":[true],"/waitUserReply":[true],"/operation":["sendAndWait"]},"hide":{"@tool":[true]}} }),
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// Return combined config schema
|
|
34
|
+
return z.object({
|
|
35
|
+
parameters: parametersSchema.optional(),
|
|
36
|
+
subnodes: subnodesSchema.optional(),
|
|
37
|
+
});
|
|
38
|
+
};
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat Node - Version 1.3
|
|
3
|
+
* Send a message into the chat
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export interface LcChatV13Params {
|
|
8
|
+
/**
|
|
9
|
+
* Operation
|
|
10
|
+
* @default send
|
|
11
|
+
*/
|
|
12
|
+
operation?: 'send' | 'sendAndWait';
|
|
13
|
+
message?: string | Expression<string> | PlaceholderValue;
|
|
14
|
+
/**
|
|
15
|
+
* Response Type
|
|
16
|
+
* @displayOptions.show { operation: ["sendAndWait"] }
|
|
17
|
+
* @default freeTextChat
|
|
18
|
+
*/
|
|
19
|
+
responseType?: 'approval' | 'freeTextChat' | Expression<string>;
|
|
20
|
+
/**
|
|
21
|
+
* Whether to block input from the user while waiting for approval
|
|
22
|
+
* @displayOptions.show { responseType: ["approval"] }
|
|
23
|
+
* @default false
|
|
24
|
+
*/
|
|
25
|
+
blockUserInput?: boolean | Expression<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* Define Form
|
|
28
|
+
* @displayOptions.show { responseType: ["customForm"], operation: ["sendAndWait"] }
|
|
29
|
+
* @default fields
|
|
30
|
+
*/
|
|
31
|
+
defineForm?: 'fields' | 'json';
|
|
32
|
+
/**
|
|
33
|
+
* Form Fields
|
|
34
|
+
* @hint <a href="https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.form/" target="_blank">See docs</a> for field syntax
|
|
35
|
+
* @displayOptions.show { defineForm: ["json"], responseType: ["customForm"], operation: ["sendAndWait"] }
|
|
36
|
+
*/
|
|
37
|
+
jsonOutput?: IDataObject | string | Expression<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Form Elements
|
|
40
|
+
* @displayOptions.show { defineForm: ["fields"], responseType: ["customForm"], operation: ["sendAndWait"] }
|
|
41
|
+
* @default {}
|
|
42
|
+
*/
|
|
43
|
+
formFields?: {
|
|
44
|
+
/** Values
|
|
45
|
+
*/
|
|
46
|
+
values?: Array<{
|
|
47
|
+
/** The name of the field, used in input attributes and referenced by the workflow
|
|
48
|
+
* @displayOptions.hide { fieldType: ["html"] }
|
|
49
|
+
*/
|
|
50
|
+
fieldName?: string | Expression<string> | PlaceholderValue;
|
|
51
|
+
/** Label that appears above the input field
|
|
52
|
+
* @displayOptions.hide { fieldType: ["hiddenField", "html"] }
|
|
53
|
+
*/
|
|
54
|
+
fieldLabel?: string | Expression<string> | PlaceholderValue;
|
|
55
|
+
/** Label that appears above the input field
|
|
56
|
+
* @displayOptions.hide { fieldType: ["hiddenField", "html"] }
|
|
57
|
+
*/
|
|
58
|
+
fieldLabel?: string | Expression<string> | PlaceholderValue;
|
|
59
|
+
/** The name of the field, used in input attributes and referenced by the workflow
|
|
60
|
+
* @displayOptions.show { fieldType: ["hiddenField"] }
|
|
61
|
+
*/
|
|
62
|
+
fieldName?: string | Expression<string> | PlaceholderValue;
|
|
63
|
+
/** The type of field to add to the form
|
|
64
|
+
* @default text
|
|
65
|
+
*/
|
|
66
|
+
fieldType?: 'checkbox' | 'html' | 'date' | 'dropdown' | 'email' | 'file' | 'hiddenField' | 'number' | 'password' | 'radio' | 'text' | 'textarea' | Expression<string>;
|
|
67
|
+
/** Optional field. It can be used to include the html in the output.
|
|
68
|
+
* @displayOptions.show { fieldType: ["html"] }
|
|
69
|
+
*/
|
|
70
|
+
elementName?: string | Expression<string> | PlaceholderValue;
|
|
71
|
+
/** The name of the field, used in input attributes and referenced by the workflow
|
|
72
|
+
* @displayOptions.hide { fieldType: ["html"] }
|
|
73
|
+
*/
|
|
74
|
+
fieldName?: string | Expression<string> | PlaceholderValue;
|
|
75
|
+
/** Sample text to display inside the field
|
|
76
|
+
* @displayOptions.hide { fieldType: ["dropdown", "date", "file", "html", "hiddenField", "radio", "checkbox"] }
|
|
77
|
+
*/
|
|
78
|
+
placeholder?: string | Expression<string> | PlaceholderValue;
|
|
79
|
+
/** Default value that will be pre-filled in the form field
|
|
80
|
+
* @displayOptions.show { fieldType: ["text", "number", "email", "textarea"] }
|
|
81
|
+
*/
|
|
82
|
+
defaultValue?: string | Expression<string> | PlaceholderValue;
|
|
83
|
+
/** Default date value that will be pre-filled in the form field (format: YYYY-MM-DD)
|
|
84
|
+
* @displayOptions.show { fieldType: ["date"] }
|
|
85
|
+
*/
|
|
86
|
+
defaultValue?: string | Expression<string>;
|
|
87
|
+
/** Default value that will be pre-selected. Must match one of the option labels.
|
|
88
|
+
* @displayOptions.show { fieldType: ["dropdown", "radio"] }
|
|
89
|
+
*/
|
|
90
|
+
defaultValue?: string | Expression<string> | PlaceholderValue;
|
|
91
|
+
/** Default value(s) that will be pre-selected. Must match one or multiple of the option labels. Separate multiple pre-selected options with a comma.
|
|
92
|
+
* @displayOptions.show { fieldType: ["checkbox"] }
|
|
93
|
+
*/
|
|
94
|
+
defaultValue?: string | Expression<string> | PlaceholderValue;
|
|
95
|
+
/** Input value can be set here or will be passed as a query parameter via Field Name if no value is set
|
|
96
|
+
* @displayOptions.show { fieldType: ["hiddenField"] }
|
|
97
|
+
*/
|
|
98
|
+
fieldValue?: string | Expression<string> | PlaceholderValue;
|
|
99
|
+
/** List of options that can be selected from the dropdown
|
|
100
|
+
* @displayOptions.show { fieldType: ["dropdown"] }
|
|
101
|
+
* @default {"values":[{"option":""}]}
|
|
102
|
+
*/
|
|
103
|
+
fieldOptions?: {
|
|
104
|
+
/** Values
|
|
105
|
+
*/
|
|
106
|
+
values?: Array<{
|
|
107
|
+
/** Option
|
|
108
|
+
*/
|
|
109
|
+
option?: string | Expression<string> | PlaceholderValue;
|
|
110
|
+
}>;
|
|
111
|
+
};
|
|
112
|
+
/** Checkboxes
|
|
113
|
+
* @displayOptions.show { fieldType: ["checkbox"] }
|
|
114
|
+
* @default {"values":[{"option":""}]}
|
|
115
|
+
*/
|
|
116
|
+
fieldOptions?: {
|
|
117
|
+
/** Values
|
|
118
|
+
*/
|
|
119
|
+
values?: Array<{
|
|
120
|
+
/** Checkbox Label
|
|
121
|
+
*/
|
|
122
|
+
option?: string | Expression<string> | PlaceholderValue;
|
|
123
|
+
}>;
|
|
124
|
+
};
|
|
125
|
+
/** Radio Buttons
|
|
126
|
+
* @displayOptions.show { fieldType: ["radio"] }
|
|
127
|
+
* @default {"values":[{"option":""}]}
|
|
128
|
+
*/
|
|
129
|
+
fieldOptions?: {
|
|
130
|
+
/** Values
|
|
131
|
+
*/
|
|
132
|
+
values?: Array<{
|
|
133
|
+
/** Radio Button Label
|
|
134
|
+
*/
|
|
135
|
+
option?: string | Expression<string> | PlaceholderValue;
|
|
136
|
+
}>;
|
|
137
|
+
};
|
|
138
|
+
/** Whether to allow the user to select multiple options from the dropdown list
|
|
139
|
+
* @displayOptions.show { fieldType: ["dropdown"] }
|
|
140
|
+
* @default false
|
|
141
|
+
*/
|
|
142
|
+
multiselect?: boolean | Expression<boolean>;
|
|
143
|
+
/** Limit Selection
|
|
144
|
+
* @displayOptions.show { fieldType: ["checkbox"] }
|
|
145
|
+
* @default unlimited
|
|
146
|
+
*/
|
|
147
|
+
limitSelection?: 'exact' | 'range' | 'unlimited' | Expression<string>;
|
|
148
|
+
/** Number of Selections
|
|
149
|
+
* @displayOptions.show { fieldType: ["checkbox"], limitSelection: ["exact"] }
|
|
150
|
+
* @default 1
|
|
151
|
+
*/
|
|
152
|
+
numberOfSelections?: number | Expression<number>;
|
|
153
|
+
/** Minimum Selections
|
|
154
|
+
* @displayOptions.show { fieldType: ["checkbox"], limitSelection: ["range"] }
|
|
155
|
+
* @default 0
|
|
156
|
+
*/
|
|
157
|
+
minSelections?: number | Expression<number>;
|
|
158
|
+
/** Maximum Selections
|
|
159
|
+
* @displayOptions.show { fieldType: ["checkbox"], limitSelection: ["range"] }
|
|
160
|
+
* @default 1
|
|
161
|
+
*/
|
|
162
|
+
maxSelections?: number | Expression<number>;
|
|
163
|
+
/** HTML elements to display on the form page
|
|
164
|
+
* @hint Does not accept <code><script></code>, <code><style></code> or <code><input></code> tags
|
|
165
|
+
* @displayOptions.show { fieldType: ["html"] }
|
|
166
|
+
*/
|
|
167
|
+
html?: string;
|
|
168
|
+
/** Whether to allow the user to select multiple files from the file input or just one
|
|
169
|
+
* @displayOptions.show { fieldType: ["file"] }
|
|
170
|
+
* @default true
|
|
171
|
+
*/
|
|
172
|
+
multipleFiles?: boolean | Expression<boolean>;
|
|
173
|
+
/** Comma-separated list of allowed file extensions
|
|
174
|
+
* @hint Leave empty to allow all file types
|
|
175
|
+
* @displayOptions.show { fieldType: ["file"] }
|
|
176
|
+
*/
|
|
177
|
+
acceptFileTypes?: string | Expression<string> | PlaceholderValue;
|
|
178
|
+
/** Whether to require the user to enter a value for this field before submitting the form
|
|
179
|
+
* @displayOptions.hide { fieldType: ["html", "hiddenField"] }
|
|
180
|
+
* @default false
|
|
181
|
+
*/
|
|
182
|
+
requiredField?: boolean | Expression<boolean>;
|
|
183
|
+
}>;
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Approval Options
|
|
187
|
+
* @displayOptions.show { responseType: ["approval"], operation: ["sendAndWait"] }
|
|
188
|
+
* @default {}
|
|
189
|
+
*/
|
|
190
|
+
approvalOptions?: {
|
|
191
|
+
/** Values
|
|
192
|
+
*/
|
|
193
|
+
values?: {
|
|
194
|
+
/** Type of Approval
|
|
195
|
+
* @default single
|
|
196
|
+
*/
|
|
197
|
+
approvalType?: 'single' | 'double' | Expression<string>;
|
|
198
|
+
/** Approve Button Label
|
|
199
|
+
* @displayOptions.show { approvalType: ["single", "double"] }
|
|
200
|
+
* @default Approve
|
|
201
|
+
*/
|
|
202
|
+
approveLabel?: string | Expression<string> | PlaceholderValue;
|
|
203
|
+
/** Approve Button Style
|
|
204
|
+
* @displayOptions.show { approvalType: ["single", "double"] }
|
|
205
|
+
* @default primary
|
|
206
|
+
*/
|
|
207
|
+
buttonApprovalStyle?: 'primary' | 'secondary' | Expression<string>;
|
|
208
|
+
/** Disapprove Button Label
|
|
209
|
+
* @displayOptions.show { approvalType: ["double"] }
|
|
210
|
+
* @default Decline
|
|
211
|
+
*/
|
|
212
|
+
disapproveLabel?: string | Expression<string> | PlaceholderValue;
|
|
213
|
+
/** Disapprove Button Style
|
|
214
|
+
* @displayOptions.show { approvalType: ["double"] }
|
|
215
|
+
* @default secondary
|
|
216
|
+
*/
|
|
217
|
+
buttonDisapprovalStyle?: 'primary' | 'secondary' | Expression<string>;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Options
|
|
222
|
+
* @displayOptions.hide { @tool: [true] }
|
|
223
|
+
* @default {}
|
|
224
|
+
*/
|
|
225
|
+
options?: {
|
|
226
|
+
/** Add Memory Input Connection
|
|
227
|
+
* @displayOptions.hide { /responseType: ["approval"] }
|
|
228
|
+
* @default false
|
|
229
|
+
*/
|
|
230
|
+
memoryConnection?: boolean | Expression<boolean>;
|
|
231
|
+
/** Whether to limit the time this node should wait for a user response before execution resumes
|
|
232
|
+
* @displayOptions.show { /waitUserReply: [true] }
|
|
233
|
+
* @default {"values":{"limitType":"afterTimeInterval","resumeAmount":45,"resumeUnit":"minutes"}}
|
|
234
|
+
*/
|
|
235
|
+
limitWaitTime?: {
|
|
236
|
+
/** Values
|
|
237
|
+
*/
|
|
238
|
+
values?: {
|
|
239
|
+
/** Sets the condition for the execution to resume. Can be a specified date or after some time.
|
|
240
|
+
* @default afterTimeInterval
|
|
241
|
+
*/
|
|
242
|
+
limitType?: 'afterTimeInterval' | 'atSpecifiedTime' | Expression<string>;
|
|
243
|
+
/** The time to wait
|
|
244
|
+
* @displayOptions.show { limitType: ["afterTimeInterval"] }
|
|
245
|
+
* @default 1
|
|
246
|
+
*/
|
|
247
|
+
resumeAmount?: number | Expression<number>;
|
|
248
|
+
/** Unit of the interval value
|
|
249
|
+
* @displayOptions.show { limitType: ["afterTimeInterval"] }
|
|
250
|
+
* @default hours
|
|
251
|
+
*/
|
|
252
|
+
resumeUnit?: 'minutes' | 'hours' | 'days' | Expression<string>;
|
|
253
|
+
/** Continue execution after the specified date and time
|
|
254
|
+
* @displayOptions.show { limitType: ["atSpecifiedTime"] }
|
|
255
|
+
*/
|
|
256
|
+
maxDateAndTime?: string | Expression<string>;
|
|
257
|
+
};
|
|
258
|
+
};
|
|
259
|
+
/** Whether to limit the time this node should wait for a user response before execution resumes
|
|
260
|
+
* @displayOptions.show { /operation: ["sendAndWait"] }
|
|
261
|
+
* @default {"values":{"limitType":"afterTimeInterval","resumeAmount":45,"resumeUnit":"minutes"}}
|
|
262
|
+
*/
|
|
263
|
+
limitWaitTime?: {
|
|
264
|
+
/** Values
|
|
265
|
+
*/
|
|
266
|
+
values?: {
|
|
267
|
+
/** Sets the condition for the execution to resume. Can be a specified date or after some time.
|
|
268
|
+
* @default afterTimeInterval
|
|
269
|
+
*/
|
|
270
|
+
limitType?: 'afterTimeInterval' | 'atSpecifiedTime' | Expression<string>;
|
|
271
|
+
/** The time to wait
|
|
272
|
+
* @displayOptions.show { limitType: ["afterTimeInterval"] }
|
|
273
|
+
* @default 1
|
|
274
|
+
*/
|
|
275
|
+
resumeAmount?: number | Expression<number>;
|
|
276
|
+
/** Unit of the interval value
|
|
277
|
+
* @displayOptions.show { limitType: ["afterTimeInterval"] }
|
|
278
|
+
* @default hours
|
|
279
|
+
*/
|
|
280
|
+
resumeUnit?: 'minutes' | 'hours' | 'days' | Expression<string>;
|
|
281
|
+
/** Continue execution after the specified date and time
|
|
282
|
+
* @displayOptions.show { limitType: ["atSpecifiedTime"] }
|
|
283
|
+
*/
|
|
284
|
+
maxDateAndTime?: string | Expression<string>;
|
|
285
|
+
};
|
|
286
|
+
};
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
export interface LcChatV13SubnodeConfig {
|
|
291
|
+
memory?: MemoryInstance;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
interface LcChatV13NodeBase {
|
|
295
|
+
type: '@n8n/n8n-nodes-langchain.chat';
|
|
296
|
+
version: 1.3;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export type LcChatV13ParamsNode = LcChatV13NodeBase & {
|
|
300
|
+
config: NodeConfig<LcChatV13Params> & { subnodes?: LcChatV13SubnodeConfig };
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
export type LcChatV13Node = LcChatV13ParamsNode;
|
|
@@ -2,12 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ToolCode = void 0;
|
|
4
4
|
const tools_1 = require("@langchain/core/tools");
|
|
5
|
-
const config_1 = require("@n8n/config");
|
|
6
|
-
const di_1 = require("@n8n/di");
|
|
7
|
-
const JavaScriptSandbox_1 = require("n8n-nodes-base/dist/nodes/Code/JavaScriptSandbox");
|
|
8
5
|
const JsTaskRunnerSandbox_1 = require("n8n-nodes-base/dist/nodes/Code/JsTaskRunnerSandbox");
|
|
9
6
|
const PythonTaskRunnerSandbox_1 = require("n8n-nodes-base/dist/nodes/Code/PythonTaskRunnerSandbox");
|
|
10
|
-
const Sandbox_1 = require("n8n-nodes-base/dist/nodes/Code/Sandbox");
|
|
11
7
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
12
8
|
const descriptions_1 = require("../../../utils/descriptions");
|
|
13
9
|
const schemaParsing_1 = require("../../../utils/schemaParsing");
|
|
@@ -25,8 +21,6 @@ const jsonSchemaField = (0, descriptions_1.buildInputSchemaField)({ showExtraPro
|
|
|
25
21
|
function getTool(ctx, itemIndex, log = true) {
|
|
26
22
|
const node = ctx.getNode();
|
|
27
23
|
const workflowMode = ctx.getMode();
|
|
28
|
-
const runnersConfig = di_1.Container.get(config_1.TaskRunnersConfig);
|
|
29
|
-
const isJsRunnerEnabled = runnersConfig.enabled;
|
|
30
24
|
const { typeVersion } = node;
|
|
31
25
|
const name = typeVersion <= 1.1
|
|
32
26
|
? ctx.getNodeParameter('name', itemIndex)
|
|
@@ -43,21 +37,10 @@ function getTool(ctx, itemIndex, log = true) {
|
|
|
43
37
|
}
|
|
44
38
|
const runFunction = async (query) => {
|
|
45
39
|
if (language === 'javaScript') {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return await sandbox.runCodeForTool(code);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
const context = Sandbox_1.getSandboxContext.call(ctx, itemIndex);
|
|
54
|
-
context.query = query;
|
|
55
|
-
const sandbox = new JavaScriptSandbox_1.JavaScriptSandbox(context, code, ctx.helpers);
|
|
56
|
-
sandbox.on('output', workflowMode === 'manual'
|
|
57
|
-
? ctx.sendMessageToUI.bind(ctx)
|
|
58
|
-
: (...args) => console.log(`[Workflow "${ctx.getWorkflow().id}"][Node "${node.name}"]`, ...args));
|
|
59
|
-
return await sandbox.runCode();
|
|
60
|
-
}
|
|
40
|
+
const sandbox = new JsTaskRunnerSandbox_1.JsTaskRunnerSandbox(workflowMode, ctx, undefined, {
|
|
41
|
+
query,
|
|
42
|
+
});
|
|
43
|
+
return await sandbox.runCodeForTool(code);
|
|
61
44
|
}
|
|
62
45
|
else {
|
|
63
46
|
const sandbox = new PythonTaskRunnerSandbox_1.PythonTaskRunnerSandbox(code, 'runOnceForAllItems', workflowMode, ctx, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolCode.node.js","sourceRoot":"","sources":["../../../../nodes/tools/ToolCode/ToolCode.node.ts"],"names":[],"mappings":";;;AAAA,iDAA2E;
|
|
1
|
+
{"version":3,"file":"ToolCode.node.js","sourceRoot":"","sources":["../../../../nodes/tools/ToolCode/ToolCode.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,8 @@ class Chat {
|
|
|
14
14
|
icon: 'fa:comments',
|
|
15
15
|
iconColor: 'black',
|
|
16
16
|
group: ['input'],
|
|
17
|
-
version: [1, 1.1, 1.2],
|
|
18
|
-
defaultVersion: 1.
|
|
17
|
+
version: [1, 1.1, 1.2, 1.3],
|
|
18
|
+
defaultVersion: 1.3,
|
|
19
19
|
description: 'Send a message into the chat',
|
|
20
20
|
defaults: {
|
|
21
21
|
name: 'Chat',
|
|
@@ -185,6 +185,8 @@ class Chat {
|
|
|
185
185
|
waitForReply = context.getNodeParameter(n8n_workflow_1.CHAT_WAIT_USER_REPLY, 0, true);
|
|
186
186
|
}
|
|
187
187
|
if (!waitForReply) {
|
|
188
|
+
if (nodeVersion >= 1.3)
|
|
189
|
+
return [[data]];
|
|
188
190
|
const inputData = context.getInputData();
|
|
189
191
|
return [inputData];
|
|
190
192
|
}
|