@n8n/n8n-nodes-langchain 2.30.3 → 2.31.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/node-definitions/.nodes-hash +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAwsBedrock/v1.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAwsBedrock/v1.ts +35 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAwsBedrock/v11.schema.js +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAwsBedrock/v11.ts +35 -0
- package/dist/nodes/embeddings/EmbeddingsAwsBedrock/EmbeddingsAwsBedrock.node.js +3 -17
- package/dist/nodes/embeddings/EmbeddingsAwsBedrock/EmbeddingsAwsBedrock.node.js.map +1 -1
- package/dist/nodes/llms/LMChatOllama/LmChatOllama.node.js +2 -1
- package/dist/nodes/llms/LMChatOllama/LmChatOllama.node.js.map +1 -1
- package/dist/nodes/llms/LmChatAwsBedrock/LmChatAwsBedrock.node.js +112 -20
- package/dist/nodes/llms/LmChatAwsBedrock/LmChatAwsBedrock.node.js.map +1 -1
- package/dist/nodes/llms/LmChatCohere/LmChatCohere.node.js +2 -1
- package/dist/nodes/llms/LmChatCohere/LmChatCohere.node.js.map +1 -1
- package/dist/nodes/mcp/McpClientTool/utils.d.ts +2 -0
- package/dist/nodes/mcp/McpClientTool/utils.js +8 -1
- package/dist/nodes/mcp/McpClientTool/utils.js.map +1 -1
- package/dist/nodes/mcp/McpTrigger/McpServer.d.ts +2 -0
- package/dist/nodes/mcp/McpTrigger/McpServer.js +41 -5
- package/dist/nodes/mcp/McpTrigger/McpServer.js.map +1 -1
- package/dist/nodes/mcp/McpTrigger/__tests__/helpers/mock-mcp-sdk.js +2 -0
- package/dist/nodes/mcp/McpTrigger/__tests__/helpers/mock-mcp-sdk.js.map +1 -1
- package/dist/nodes/mcp/McpTrigger/protocol/MessageFormatter.d.ts +6 -0
- package/dist/nodes/mcp/McpTrigger/protocol/MessageFormatter.js +13 -0
- package/dist/nodes/mcp/McpTrigger/protocol/MessageFormatter.js.map +1 -1
- package/dist/nodes/trigger/ChatTrigger/Chat.node.js +14 -1
- package/dist/nodes/trigger/ChatTrigger/Chat.node.js.map +1 -1
- package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js +6 -2
- package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js.map +1 -1
- package/dist/nodes/vendors/Microsoft/microsoft-utils.js +174 -22
- package/dist/nodes/vendors/Microsoft/microsoft-utils.js.map +1 -1
- package/dist/typecheck.tsbuildinfo +1 -1
- package/dist/types/nodes.json +1 -1
- package/dist/utils/agent-execution/buildSteps.js +7 -4
- package/dist/utils/agent-execution/buildSteps.js.map +1 -1
- package/dist/utils/aws/createBedrockRuntimeClient.d.ts +8 -0
- package/dist/utils/aws/createBedrockRuntimeClient.js +27 -0
- package/dist/utils/aws/createBedrockRuntimeClient.js.map +1 -0
- package/dist/utils/aws/resolveAwsCredentials.d.ts +1 -0
- package/dist/utils/aws/resolveAwsCredentials.js +10 -2
- package/dist/utils/aws/resolveAwsCredentials.js.map +1 -1
- package/dist/utils/chatModelMessageWrapper.d.ts +5 -0
- package/dist/utils/chatModelMessageWrapper.js +40 -0
- package/dist/utils/chatModelMessageWrapper.js.map +1 -0
- package/package.json +24 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
b3c076f71b5afbae836d7cad8bd9f51c7ded6295295cf856f97477e81689732f
|
|
@@ -16,7 +16,7 @@ module.exports = function getSchema({ parameters, z, expressionSchema, stringOrE
|
|
|
16
16
|
const parametersSchema = z.object({
|
|
17
17
|
authentication: z.union([z.literal('iam'), z.literal('assumeRole'), expressionSchema]).optional(),
|
|
18
18
|
model: resolveOneOfSchemas({ parameters, variants: [{ schema: stringOrExpression, required: false, displayOptions: {"hide":{"modelSource":["inferenceProfile"]}} }, { schema: stringOrExpression, required: false, displayOptions: {"show":{"modelSource":["inferenceProfile"]}} }] }),
|
|
19
|
-
options: z.object({ maxTokensToSample: numberOrExpression.optional(), temperature: numberOrExpression.optional() }).optional(),
|
|
19
|
+
options: z.object({ maxTokensToSample: numberOrExpression.optional(), temperature: numberOrExpression.optional(), topP: numberOrExpression.optional(), maxRetries: numberOrExpression.optional(), additionalModelRequestFields: z.union([iDataObjectSchema, z.string()]).optional(), latency: z.union([z.literal('standard'), z.literal('optimized'), expressionSchema]).optional(), guardrail: z.object({ values: z.object({ guardrailIdentifier: stringOrExpression.optional(), guardrailVersion: stringOrExpression.optional(), trace: z.union([z.literal('disabled'), z.literal('enabled'), z.literal('enabled_full'), expressionSchema]).optional() }).optional() }).optional() }).optional(),
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
// Return combined config schema
|
|
@@ -24,6 +24,41 @@ export interface LcLmChatAwsBedrockV1Params {
|
|
|
24
24
|
* @default 0.7
|
|
25
25
|
*/
|
|
26
26
|
temperature?: number | Expression<number>;
|
|
27
|
+
/** Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.
|
|
28
|
+
* @default 1
|
|
29
|
+
*/
|
|
30
|
+
topP?: number | Expression<number>;
|
|
31
|
+
/** Maximum number of retries to attempt when a request fails
|
|
32
|
+
* @default 2
|
|
33
|
+
*/
|
|
34
|
+
maxRetries?: number | Expression<number>;
|
|
35
|
+
/** Model-family-specific inference parameters passed through as JSON (e.g. Claude <code>top_k</code>/<code>thinking</code>, Nova <code>inferenceConfig</code>/<code>reasoningConfig</code>, Cohere penalties). See the <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html">AWS model parameters docs</a>.
|
|
36
|
+
* @default {}
|
|
37
|
+
*/
|
|
38
|
+
additionalModelRequestFields?: IDataObject | string | Expression<string>;
|
|
39
|
+
/** Latency optimization mode for the request. "Optimized" can reduce response time for supported models and regions.
|
|
40
|
+
* @default standard
|
|
41
|
+
*/
|
|
42
|
+
latency?: 'standard' | 'optimized' | Expression<string>;
|
|
43
|
+
/** Apply an Amazon Bedrock guardrail to requests
|
|
44
|
+
* @default {}
|
|
45
|
+
*/
|
|
46
|
+
guardrail?: {
|
|
47
|
+
/** Guardrail
|
|
48
|
+
*/
|
|
49
|
+
values?: {
|
|
50
|
+
/** The identifier (ID or ARN) of the guardrail to apply
|
|
51
|
+
*/
|
|
52
|
+
guardrailIdentifier?: string | Expression<string>;
|
|
53
|
+
/** The version of the guardrail to apply
|
|
54
|
+
*/
|
|
55
|
+
guardrailVersion?: string | Expression<string>;
|
|
56
|
+
/** The trace behavior for the guardrail
|
|
57
|
+
* @default disabled
|
|
58
|
+
*/
|
|
59
|
+
trace?: 'disabled' | 'enabled' | 'enabled_full' | Expression<string>;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
27
62
|
};
|
|
28
63
|
}
|
|
29
64
|
|
|
@@ -17,7 +17,7 @@ module.exports = function getSchema({ parameters, z, expressionSchema, stringOrE
|
|
|
17
17
|
authentication: z.union([z.literal('iam'), z.literal('assumeRole'), expressionSchema]).optional(),
|
|
18
18
|
modelSource: z.union([z.literal('onDemand'), z.literal('inferenceProfile'), expressionSchema]).optional(),
|
|
19
19
|
model: resolveOneOfSchemas({ parameters, variants: [{ schema: stringOrExpression, required: false, displayOptions: {"hide":{"modelSource":["inferenceProfile"]}}, defaults: {"modelSource":"onDemand"} }, { schema: stringOrExpression, required: false, displayOptions: {"show":{"modelSource":["inferenceProfile"]}}, defaults: {"modelSource":"onDemand"} }] }),
|
|
20
|
-
options: z.object({ maxTokensToSample: numberOrExpression.optional(), temperature: numberOrExpression.optional() }).optional(),
|
|
20
|
+
options: z.object({ maxTokensToSample: numberOrExpression.optional(), temperature: numberOrExpression.optional(), topP: numberOrExpression.optional(), maxRetries: numberOrExpression.optional(), additionalModelRequestFields: z.union([iDataObjectSchema, z.string()]).optional(), latency: z.union([z.literal('standard'), z.literal('optimized'), expressionSchema]).optional(), guardrail: z.object({ values: z.object({ guardrailIdentifier: stringOrExpression.optional(), guardrailVersion: stringOrExpression.optional(), trace: z.union([z.literal('disabled'), z.literal('enabled'), z.literal('enabled_full'), expressionSchema]).optional() }).optional() }).optional() }).optional(),
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
// Return combined config schema
|
|
@@ -29,6 +29,41 @@ export interface LcLmChatAwsBedrockV11Params {
|
|
|
29
29
|
* @default 0.7
|
|
30
30
|
*/
|
|
31
31
|
temperature?: number | Expression<number>;
|
|
32
|
+
/** Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.
|
|
33
|
+
* @default 1
|
|
34
|
+
*/
|
|
35
|
+
topP?: number | Expression<number>;
|
|
36
|
+
/** Maximum number of retries to attempt when a request fails
|
|
37
|
+
* @default 2
|
|
38
|
+
*/
|
|
39
|
+
maxRetries?: number | Expression<number>;
|
|
40
|
+
/** Model-family-specific inference parameters passed through as JSON (e.g. Claude <code>top_k</code>/<code>thinking</code>, Nova <code>inferenceConfig</code>/<code>reasoningConfig</code>, Cohere penalties). See the <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html">AWS model parameters docs</a>.
|
|
41
|
+
* @default {}
|
|
42
|
+
*/
|
|
43
|
+
additionalModelRequestFields?: IDataObject | string | Expression<string>;
|
|
44
|
+
/** Latency optimization mode for the request. "Optimized" can reduce response time for supported models and regions.
|
|
45
|
+
* @default standard
|
|
46
|
+
*/
|
|
47
|
+
latency?: 'standard' | 'optimized' | Expression<string>;
|
|
48
|
+
/** Apply an Amazon Bedrock guardrail to requests
|
|
49
|
+
* @default {}
|
|
50
|
+
*/
|
|
51
|
+
guardrail?: {
|
|
52
|
+
/** Guardrail
|
|
53
|
+
*/
|
|
54
|
+
values?: {
|
|
55
|
+
/** The identifier (ID or ARN) of the guardrail to apply
|
|
56
|
+
*/
|
|
57
|
+
guardrailIdentifier?: string | Expression<string>;
|
|
58
|
+
/** The version of the guardrail to apply
|
|
59
|
+
*/
|
|
60
|
+
guardrailVersion?: string | Expression<string>;
|
|
61
|
+
/** The trace behavior for the guardrail
|
|
62
|
+
* @default disabled
|
|
63
|
+
*/
|
|
64
|
+
trace?: 'disabled' | 'enabled' | 'enabled_full' | Expression<string>;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
32
67
|
};
|
|
33
68
|
}
|
|
34
69
|
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EmbeddingsAwsBedrock = void 0;
|
|
4
|
-
const client_bedrock_runtime_1 = require("@aws-sdk/client-bedrock-runtime");
|
|
5
4
|
const aws_1 = require("@langchain/aws");
|
|
6
|
-
const node_http_handler_1 = require("@smithy/node-http-handler");
|
|
7
5
|
const ai_utilities_1 = require("@n8n/ai-utilities");
|
|
8
|
-
const aws_credentials_1 = require("n8n-nodes-base/aws-credentials");
|
|
9
6
|
const utils_1 = require("n8n-nodes-base/dist/nodes/Aws/utils");
|
|
10
7
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
8
|
+
const createBedrockRuntimeClient_1 = require("../../../utils/aws/createBedrockRuntimeClient");
|
|
11
9
|
const resolveAwsCredentials_1 = require("../../../utils/aws/resolveAwsCredentials");
|
|
12
10
|
class EmbeddingsAwsBedrock {
|
|
13
11
|
constructor() {
|
|
@@ -97,21 +95,9 @@ class EmbeddingsAwsBedrock {
|
|
|
97
95
|
};
|
|
98
96
|
}
|
|
99
97
|
async supplyData(itemIndex) {
|
|
100
|
-
const { region, credentials } = await (0, resolveAwsCredentials_1.resolveAwsCredentials)(this, itemIndex);
|
|
98
|
+
const { region, credentials, bedrockRuntimeEndpoint } = await (0, resolveAwsCredentials_1.resolveAwsCredentials)(this, itemIndex);
|
|
101
99
|
const modelName = this.getNodeParameter('model', itemIndex);
|
|
102
|
-
const
|
|
103
|
-
const proxyAgent = (0, ai_utilities_1.getNodeProxyAgent)(bedrockEndpoint);
|
|
104
|
-
const clientConfig = {
|
|
105
|
-
region,
|
|
106
|
-
credentials,
|
|
107
|
-
};
|
|
108
|
-
if (proxyAgent) {
|
|
109
|
-
clientConfig.requestHandler = new node_http_handler_1.NodeHttpHandler({
|
|
110
|
-
httpAgent: proxyAgent,
|
|
111
|
-
httpsAgent: proxyAgent,
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
const client = new client_bedrock_runtime_1.BedrockRuntimeClient(clientConfig);
|
|
100
|
+
const client = (0, createBedrockRuntimeClient_1.createBedrockRuntimeClient)({ region, credentials, bedrockRuntimeEndpoint });
|
|
115
101
|
const embeddings = new aws_1.BedrockEmbeddings({
|
|
116
102
|
client,
|
|
117
103
|
model: modelName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbeddingsAwsBedrock.node.js","sourceRoot":"","sources":["../../../../nodes/embeddings/EmbeddingsAwsBedrock/EmbeddingsAwsBedrock.node.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"EmbeddingsAwsBedrock.node.js","sourceRoot":"","sources":["../../../../nodes/embeddings/EmbeddingsAwsBedrock/EmbeddingsAwsBedrock.node.ts"],"names":[],"mappings":";;;AAAA,wCAAmD;AACnD,oDAA6E;AAC7E,+DAA6F;AAC7F,+CAMsB;AAEtB,sFAAmF;AACnF,4EAAyE;AAEzE,MAAa,oBAAoB;IAAjC;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,0BAAkB;YAC/B,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE;gBACT,IAAI,EAAE,wBAAwB;aAC9B;YAED,KAAK,EAAE;gBACN,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,aAAa,EAAE;oBACd,EAAE,EAAE,CAAC,YAAY,CAAC;iBAClB;gBACD,SAAS,EAAE;oBACV,oBAAoB,EAAE;wBACrB;4BACC,GAAG,EAAE,4GAA4G;yBACjH;qBACD;iBACD;aACD;YAED,MAAM,EAAE,EAAE;YAEV,OAAO,EAAE,CAAC,kCAAmB,CAAC,WAAW,CAAC;YAC1C,WAAW,EAAE,CAAC,YAAY,CAAC;YAC3B,eAAe,EAAE;gBAChB,sBAAsB,EAAE,IAAI;gBAC5B,OAAO,EAAE,2EAA2E;aACpF;YACD,UAAU,EAAE;gBACX,0BAAkB;gBAClB,IAAA,2CAA4B,EAAC,CAAC,kCAAmB,CAAC,aAAa,CAAC,CAAC;gBACjE;oBACC,WAAW,EAAE,OAAO;oBACpB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;oBACf,oBAAoB,EAAE,IAAI;oBAC1B,WAAW,EACV,qJAAqJ;oBACtJ,WAAW,EAAE;wBACZ,WAAW,EAAE;4BACZ,OAAO,EAAE;gCACR,OAAO,EAAE;oCACR,MAAM,EAAE,KAAK;oCACb,GAAG,EAAE,yEAAyE;iCAC9E;gCACD,MAAM,EAAE;oCACP,WAAW,EAAE;wCACZ;4CACC,IAAI,EAAE,cAAc;4CACpB,UAAU,EAAE;gDACX,QAAQ,EAAE,gBAAgB;6CAC1B;yCACD;wCACD;4CACC,IAAI,EAAE,aAAa;4CACnB,UAAU,EAAE;gDACX,IAAI,EAAE,8BAA8B;gDACpC,WAAW,EAAE,6BAA6B;gDAC1C,KAAK,EAAE,4BAA4B;6CACnC;yCACD;wCACD;4CACC,IAAI,EAAE,MAAM;4CACZ,UAAU,EAAE;gDACX,GAAG,EAAE,MAAM;6CACX;yCACD;qCACD;iCACD;6BACD;yBACD;qBACD;oBACD,OAAO,EAAE;wBACR,IAAI,EAAE;4BACL,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,OAAO;yBACjB;qBACD;oBACD,OAAO,EAAE,EAAE;iBACX;aACD;SACD,CAAC;IAqBH,CAAC;IAnBA,KAAK,CAAC,UAAU,CAA6B,SAAiB;QAC7D,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,GAAG,MAAM,IAAA,6CAAqB,EAClF,IAAI,EACJ,SAAS,CACT,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC;QAEtE,MAAM,MAAM,GAAG,IAAA,uDAA0B,EAAC,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC3F,MAAM,UAAU,GAAG,IAAI,uBAAiB,CAAC;YACxC,MAAM;YACN,KAAK,EAAE,SAAS;YAChB,UAAU,EAAE,CAAC;YACb,MAAM;SACN,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,IAAA,yBAAU,EAAC,UAAU,EAAE,IAAI,CAAC;SACtC,CAAC;IACH,CAAC;CACD;AA7GD,oDA6GC"}
|
|
@@ -4,6 +4,7 @@ exports.LmChatOllama = void 0;
|
|
|
4
4
|
const ollama_1 = require("@langchain/ollama");
|
|
5
5
|
const ai_utilities_1 = require("@n8n/ai-utilities");
|
|
6
6
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
|
+
const chatModelMessageWrapper_1 = require("../../../utils/chatModelMessageWrapper");
|
|
7
8
|
const description_1 = require("../LMOllama/description");
|
|
8
9
|
class LmChatOllama {
|
|
9
10
|
constructor() {
|
|
@@ -63,7 +64,7 @@ class LmChatOllama {
|
|
|
63
64
|
fetch: fetchWithTimeout,
|
|
64
65
|
});
|
|
65
66
|
return {
|
|
66
|
-
response: model,
|
|
67
|
+
response: (0, chatModelMessageWrapper_1.wrapChatModelMessageInput)(model),
|
|
67
68
|
};
|
|
68
69
|
}
|
|
69
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LmChatOllama.node.js","sourceRoot":"","sources":["../../../../nodes/llms/LMChatOllama/LmChatOllama.node.ts"],"names":[],"mappings":";;;AACA,8CAA+C;AAC/C,oDAK2B;AAC3B,+CAMsB;AAEtB,yDAAwF;AAExF,MAAa,YAAY;IAAzB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,mBAAmB;YAEhC,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE;gBACT,IAAI,EAAE,mBAAmB;aACzB;YACD,KAAK,EAAE;gBACN,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,aAAa,EAAE;oBACd,EAAE,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;oBACrC,iBAAiB,EAAE,CAAC,2BAA2B,CAAC;iBAChD;gBACD,SAAS,EAAE;oBACV,oBAAoB,EAAE;wBACrB;4BACC,GAAG,EAAE,oGAAoG;yBACzG;qBACD;iBACD;aACD;YAED,MAAM,EAAE,EAAE;YAEV,OAAO,EAAE,CAAC,kCAAmB,CAAC,eAAe,CAAC;YAC9C,WAAW,EAAE,CAAC,OAAO,CAAC;YACtB,GAAG,+BAAiB;YACpB,UAAU,EAAE;gBACX,IAAA,2CAA4B,EAAC,CAAC,kCAAmB,CAAC,OAAO,EAAE,kCAAmB,CAAC,OAAO,CAAC,CAAC;gBACxF,yBAAW;gBACX,2BAAa;aACb;SACD,CAAC;IA+BH,CAAC;IA7BA,KAAK,CAAC,UAAU,CAA6B,SAAiB;QAC7D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAoB,CAAC;QACnF,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM;YACjC,CAAC,CAAC;gBACA,aAAa,EAAE,UAAU,WAAW,CAAC,MAAgB,EAAE;aACvD;YACF,CAAC,CAAC,SAAS,CAAC;QAEb,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAwB,EAAE,IAAkB,EAAE,EAAE,CAC/E,MAAM,IAAA,yBAAU,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAEnC,MAAM,KAAK,GAAG,IAAI,mBAAU,CAAC;YAC5B,GAAG,OAAO;YACV,OAAO,EAAE,WAAW,CAAC,OAAiB;YACtC,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;YACjE,SAAS,EAAE,CAAC,IAAI,4BAAa,CAAC,IAAI,CAAC,CAAC;YACpC,eAAe,EAAE,IAAA,6CAA8B,EAAC,IAAI,CAAC;YACrD,OAAO;YACP,KAAK,EAAE,gBAAgB;SACvB,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"LmChatOllama.node.js","sourceRoot":"","sources":["../../../../nodes/llms/LMChatOllama/LmChatOllama.node.ts"],"names":[],"mappings":";;;AACA,8CAA+C;AAC/C,oDAK2B;AAC3B,+CAMsB;AAEtB,4EAA2E;AAE3E,yDAAwF;AAExF,MAAa,YAAY;IAAzB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,mBAAmB;YAEhC,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE;gBACT,IAAI,EAAE,mBAAmB;aACzB;YACD,KAAK,EAAE;gBACN,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,aAAa,EAAE;oBACd,EAAE,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;oBACrC,iBAAiB,EAAE,CAAC,2BAA2B,CAAC;iBAChD;gBACD,SAAS,EAAE;oBACV,oBAAoB,EAAE;wBACrB;4BACC,GAAG,EAAE,oGAAoG;yBACzG;qBACD;iBACD;aACD;YAED,MAAM,EAAE,EAAE;YAEV,OAAO,EAAE,CAAC,kCAAmB,CAAC,eAAe,CAAC;YAC9C,WAAW,EAAE,CAAC,OAAO,CAAC;YACtB,GAAG,+BAAiB;YACpB,UAAU,EAAE;gBACX,IAAA,2CAA4B,EAAC,CAAC,kCAAmB,CAAC,OAAO,EAAE,kCAAmB,CAAC,OAAO,CAAC,CAAC;gBACxF,yBAAW;gBACX,2BAAa;aACb;SACD,CAAC;IA+BH,CAAC;IA7BA,KAAK,CAAC,UAAU,CAA6B,SAAiB;QAC7D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAoB,CAAC;QACnF,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM;YACjC,CAAC,CAAC;gBACA,aAAa,EAAE,UAAU,WAAW,CAAC,MAAgB,EAAE;aACvD;YACF,CAAC,CAAC,SAAS,CAAC;QAEb,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAwB,EAAE,IAAkB,EAAE,EAAE,CAC/E,MAAM,IAAA,yBAAU,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAEnC,MAAM,KAAK,GAAG,IAAI,mBAAU,CAAC;YAC5B,GAAG,OAAO;YACV,OAAO,EAAE,WAAW,CAAC,OAAiB;YACtC,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;YACjE,SAAS,EAAE,CAAC,IAAI,4BAAa,CAAC,IAAI,CAAC,CAAC;YACpC,eAAe,EAAE,IAAA,6CAA8B,EAAC,IAAI,CAAC;YACrD,OAAO;YACP,KAAK,EAAE,gBAAgB;SACvB,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,IAAA,mDAAyB,EAAC,KAAK,CAAC;SAC1C,CAAC;IACH,CAAC;CACD;AApED,oCAoEC"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LmChatAwsBedrock = void 0;
|
|
4
|
-
const client_bedrock_runtime_1 = require("@aws-sdk/client-bedrock-runtime");
|
|
5
4
|
const aws_1 = require("@langchain/aws");
|
|
6
5
|
const ai_utilities_1 = require("@n8n/ai-utilities");
|
|
7
|
-
const node_http_handler_1 = require("@smithy/node-http-handler");
|
|
8
6
|
const aws_credentials_1 = require("n8n-nodes-base/aws-credentials");
|
|
9
7
|
const utils_1 = require("n8n-nodes-base/dist/nodes/Aws/utils");
|
|
10
8
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
9
|
+
const createBedrockRuntimeClient_1 = require("../../../utils/aws/createBedrockRuntimeClient");
|
|
11
10
|
const resolveAwsCredentials_1 = require("../../../utils/aws/resolveAwsCredentials");
|
|
12
11
|
class LmChatAwsBedrock {
|
|
13
12
|
constructor() {
|
|
@@ -207,13 +206,88 @@ class LmChatAwsBedrock {
|
|
|
207
206
|
description: 'Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.',
|
|
208
207
|
type: 'number',
|
|
209
208
|
},
|
|
209
|
+
{
|
|
210
|
+
displayName: 'Top P',
|
|
211
|
+
name: 'topP',
|
|
212
|
+
default: 1,
|
|
213
|
+
typeOptions: { maxValue: 1, minValue: 0, numberPrecision: 1 },
|
|
214
|
+
description: 'Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.',
|
|
215
|
+
type: 'number',
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
displayName: 'Max Retries',
|
|
219
|
+
name: 'maxRetries',
|
|
220
|
+
default: 2,
|
|
221
|
+
description: 'Maximum number of retries to attempt when a request fails',
|
|
222
|
+
type: 'number',
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
displayName: 'Additional Model Request Fields',
|
|
226
|
+
name: 'additionalModelRequestFields',
|
|
227
|
+
default: '{}',
|
|
228
|
+
description: 'Model-family-specific inference parameters passed through as JSON (e.g. Claude <code>top_k</code>/<code>thinking</code>, Nova <code>inferenceConfig</code>/<code>reasoningConfig</code>, Cohere penalties). See the <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html">AWS model parameters docs</a>.',
|
|
229
|
+
type: 'json',
|
|
230
|
+
typeOptions: { rows: 4 },
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
displayName: 'Latency Optimization',
|
|
234
|
+
name: 'latency',
|
|
235
|
+
default: 'standard',
|
|
236
|
+
description: 'Latency optimization mode for the request. "Optimized" can reduce response time for supported models and regions.',
|
|
237
|
+
type: 'options',
|
|
238
|
+
options: [
|
|
239
|
+
{ name: 'Standard', value: 'standard' },
|
|
240
|
+
{ name: 'Optimized', value: 'optimized' },
|
|
241
|
+
],
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
displayName: 'Guardrail',
|
|
245
|
+
name: 'guardrail',
|
|
246
|
+
type: 'fixedCollection',
|
|
247
|
+
default: {},
|
|
248
|
+
description: 'Apply an Amazon Bedrock guardrail to requests',
|
|
249
|
+
options: [
|
|
250
|
+
{
|
|
251
|
+
displayName: 'Guardrail',
|
|
252
|
+
name: 'values',
|
|
253
|
+
values: [
|
|
254
|
+
{
|
|
255
|
+
displayName: 'Guardrail Identifier',
|
|
256
|
+
name: 'guardrailIdentifier',
|
|
257
|
+
type: 'string',
|
|
258
|
+
default: '',
|
|
259
|
+
description: 'The identifier (ID or ARN) of the guardrail to apply',
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
displayName: 'Guardrail Version',
|
|
263
|
+
name: 'guardrailVersion',
|
|
264
|
+
type: 'string',
|
|
265
|
+
default: '',
|
|
266
|
+
description: 'The version of the guardrail to apply',
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
displayName: 'Trace',
|
|
270
|
+
name: 'trace',
|
|
271
|
+
type: 'options',
|
|
272
|
+
default: 'disabled',
|
|
273
|
+
description: 'The trace behavior for the guardrail',
|
|
274
|
+
options: [
|
|
275
|
+
{ name: 'Disabled', value: 'disabled' },
|
|
276
|
+
{ name: 'Enabled', value: 'enabled' },
|
|
277
|
+
{ name: 'Enabled (Full)', value: 'enabled_full' },
|
|
278
|
+
],
|
|
279
|
+
},
|
|
280
|
+
],
|
|
281
|
+
},
|
|
282
|
+
],
|
|
283
|
+
},
|
|
210
284
|
],
|
|
211
285
|
},
|
|
212
286
|
],
|
|
213
287
|
};
|
|
214
288
|
}
|
|
215
289
|
async supplyData(itemIndex) {
|
|
216
|
-
const { region: credentialRegion, credentials } = await (0, resolveAwsCredentials_1.resolveAwsCredentials)(this, itemIndex);
|
|
290
|
+
const { region: credentialRegion, credentials, bedrockRuntimeEndpoint, } = await (0, resolveAwsCredentials_1.resolveAwsCredentials)(this, itemIndex);
|
|
217
291
|
const modelName = this.getNodeParameter('model', itemIndex);
|
|
218
292
|
const options = this.getNodeParameter('options', itemIndex, {});
|
|
219
293
|
let region = credentialRegion;
|
|
@@ -223,28 +297,46 @@ class LmChatAwsBedrock {
|
|
|
223
297
|
(0, aws_credentials_1.assertSupportedAwsRegion)(arnRegion);
|
|
224
298
|
region = arnRegion;
|
|
225
299
|
}
|
|
226
|
-
const
|
|
227
|
-
const
|
|
228
|
-
const clientConfig = {
|
|
229
|
-
region,
|
|
230
|
-
credentials,
|
|
231
|
-
};
|
|
232
|
-
if (proxyAgent) {
|
|
233
|
-
clientConfig.requestHandler = new node_http_handler_1.NodeHttpHandler({
|
|
234
|
-
httpAgent: proxyAgent,
|
|
235
|
-
httpsAgent: proxyAgent,
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
const client = new client_bedrock_runtime_1.BedrockRuntimeClient(clientConfig);
|
|
239
|
-
const model = new aws_1.ChatBedrockConverse({
|
|
300
|
+
const client = (0, createBedrockRuntimeClient_1.createBedrockRuntimeClient)({ region, credentials, bedrockRuntimeEndpoint });
|
|
301
|
+
const modelConfig = {
|
|
240
302
|
client,
|
|
241
303
|
model: modelName,
|
|
242
304
|
region,
|
|
243
|
-
temperature: options.temperature,
|
|
244
|
-
maxTokens: options.maxTokensToSample,
|
|
245
305
|
callbacks: [new ai_utilities_1.N8nLlmTracing(this)],
|
|
246
306
|
onFailedAttempt: (0, ai_utilities_1.makeN8nLlmFailedAttemptHandler)(this),
|
|
247
|
-
}
|
|
307
|
+
};
|
|
308
|
+
if (options.temperature !== undefined)
|
|
309
|
+
modelConfig.temperature = options.temperature;
|
|
310
|
+
if (options.maxTokensToSample !== undefined)
|
|
311
|
+
modelConfig.maxTokens = options.maxTokensToSample;
|
|
312
|
+
if (options.topP !== undefined)
|
|
313
|
+
modelConfig.topP = options.topP;
|
|
314
|
+
if (options.maxRetries !== undefined)
|
|
315
|
+
modelConfig.maxRetries = options.maxRetries;
|
|
316
|
+
if (options.latency !== undefined)
|
|
317
|
+
modelConfig.performanceConfig = { latency: options.latency };
|
|
318
|
+
const guardrail = options.guardrail?.values;
|
|
319
|
+
if (guardrail?.guardrailIdentifier) {
|
|
320
|
+
modelConfig.guardrailConfig = {
|
|
321
|
+
guardrailIdentifier: guardrail.guardrailIdentifier,
|
|
322
|
+
...(guardrail.guardrailVersion ? { guardrailVersion: guardrail.guardrailVersion } : {}),
|
|
323
|
+
...(guardrail.trace ? { trace: guardrail.trace } : {}),
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
const additionalFields = options.additionalModelRequestFields?.trim();
|
|
327
|
+
if (additionalFields && additionalFields !== '{}') {
|
|
328
|
+
let parsed;
|
|
329
|
+
try {
|
|
330
|
+
parsed = (0, n8n_workflow_1.jsonParse)(additionalFields);
|
|
331
|
+
}
|
|
332
|
+
catch {
|
|
333
|
+
throw new n8n_workflow_1.UserError('Additional Model Request Fields must be valid JSON', {
|
|
334
|
+
level: 'warning',
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
modelConfig.additionalModelRequestFields = parsed;
|
|
338
|
+
}
|
|
339
|
+
const model = new aws_1.ChatBedrockConverse(modelConfig);
|
|
248
340
|
return {
|
|
249
341
|
response: model,
|
|
250
342
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LmChatAwsBedrock.node.js","sourceRoot":"","sources":["../../../../nodes/llms/LmChatAwsBedrock/LmChatAwsBedrock.node.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"LmChatAwsBedrock.node.js","sourceRoot":"","sources":["../../../../nodes/llms/LmChatAwsBedrock/LmChatAwsBedrock.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ exports.LmChatCohere = void 0;
|
|
|
4
4
|
exports.tokensUsageParser = tokensUsageParser;
|
|
5
5
|
const cohere_1 = require("@langchain/cohere");
|
|
6
6
|
const ai_utilities_1 = require("@n8n/ai-utilities");
|
|
7
|
+
const chatModelMessageWrapper_1 = require("../../../utils/chatModelMessageWrapper");
|
|
7
8
|
function tokensUsageParser(result) {
|
|
8
9
|
let totalInputTokens = 0;
|
|
9
10
|
let totalOutputTokens = 0;
|
|
@@ -150,7 +151,7 @@ class LmChatCohere {
|
|
|
150
151
|
onFailedAttempt: (0, ai_utilities_1.makeN8nLlmFailedAttemptHandler)(this),
|
|
151
152
|
});
|
|
152
153
|
return {
|
|
153
|
-
response: model,
|
|
154
|
+
response: (0, chatModelMessageWrapper_1.wrapChatModelMessageInput)(model),
|
|
154
155
|
};
|
|
155
156
|
}
|
|
156
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LmChatCohere.node.js","sourceRoot":"","sources":["../../../../nodes/llms/LmChatCohere/LmChatCohere.node.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LmChatCohere.node.js","sourceRoot":"","sources":["../../../../nodes/llms/LmChatCohere/LmChatCohere.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DynamicStructuredTool, type DynamicStructuredToolInput } from '@langchain/core/tools';
|
|
2
2
|
import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
3
3
|
import { type IDataObject } from 'n8n-workflow';
|
|
4
|
+
import { z } from 'zod';
|
|
4
5
|
import type { McpToolIncludeMode } from './types';
|
|
5
6
|
import type { McpTool } from '../shared/types';
|
|
6
7
|
export declare function getSelectedTools({ mode, includeTools, excludeTools, tools, }: {
|
|
@@ -12,4 +13,5 @@ export declare function getSelectedTools({ mode, includeTools, excludeTools, too
|
|
|
12
13
|
export declare const getErrorDescriptionFromToolCall: (result: unknown) => string | undefined;
|
|
13
14
|
export declare const createCallTool: (name: string, client: Client, timeout: number, onError: (error: string) => void, getAbortSignal?: () => AbortSignal | undefined) => (args: IDataObject) => Promise<{} | null>;
|
|
14
15
|
export declare function buildMcpToolName(serverName: string, toolName: string): string;
|
|
16
|
+
export declare function isZodObjectSchema(schema: z.ZodTypeAny): schema is z.ZodObject<z.ZodRawShape>;
|
|
15
17
|
export declare function mcpToolToDynamicTool(tool: McpTool, onCallTool: DynamicStructuredToolInput['func']): DynamicStructuredTool;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createCallTool = exports.getErrorDescriptionFromToolCall = void 0;
|
|
4
4
|
exports.getSelectedTools = getSelectedTools;
|
|
5
5
|
exports.buildMcpToolName = buildMcpToolName;
|
|
6
|
+
exports.isZodObjectSchema = isZodObjectSchema;
|
|
6
7
|
exports.mcpToolToDynamicTool = mcpToolToDynamicTool;
|
|
7
8
|
const tools_1 = require("@langchain/core/tools");
|
|
8
9
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
@@ -90,9 +91,15 @@ function buildMcpToolName(serverName, toolName) {
|
|
|
90
91
|
const maxPrefixLen = MAX_MCP_TOOL_NAME_LENGTH - toolName.length - 1;
|
|
91
92
|
return maxPrefixLen > 0 ? `${sanitizedServerName.slice(0, maxPrefixLen)}_${toolName}` : toolName;
|
|
92
93
|
}
|
|
94
|
+
function isZodObjectSchema(schema) {
|
|
95
|
+
const internals = schema;
|
|
96
|
+
if (internals._zod?.def)
|
|
97
|
+
return internals._zod.def.type === 'object';
|
|
98
|
+
return internals._def?.typeName === 'ZodObject';
|
|
99
|
+
}
|
|
93
100
|
function mcpToolToDynamicTool(tool, onCallTool) {
|
|
94
101
|
const rawSchema = (0, schemaParsing_1.convertJsonSchemaToZod)(tool.inputSchema);
|
|
95
|
-
const objectSchema = rawSchema
|
|
102
|
+
const objectSchema = isZodObjectSchema(rawSchema) ? rawSchema : zod_1.z.object({ value: rawSchema });
|
|
96
103
|
return new tools_1.DynamicStructuredTool({
|
|
97
104
|
name: tool.name,
|
|
98
105
|
description: tool.description ?? '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../nodes/mcp/McpClientTool/utils.ts"],"names":[],"mappings":";;;AAYA,4CAyBC;AA6ED,4CAQC;AAED,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../nodes/mcp/McpClientTool/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,8 @@ export declare class McpServer {
|
|
|
57
57
|
private setupSession;
|
|
58
58
|
private cleanupSession;
|
|
59
59
|
private recreateStreamableHttpTransport;
|
|
60
|
+
private clientSupportsUrlElicitation;
|
|
61
|
+
private handleCredentialGate;
|
|
60
62
|
private setupHandlers;
|
|
61
63
|
}
|
|
62
64
|
export { MCP_LIST_TOOLS_REQUEST_MARKER };
|
|
@@ -19,6 +19,7 @@ const InMemorySessionStore_1 = require("./session/InMemorySessionStore");
|
|
|
19
19
|
const SessionManager_1 = require("./session/SessionManager");
|
|
20
20
|
const StreamableHttpTransport_1 = require("./transport/StreamableHttpTransport");
|
|
21
21
|
const TransportFactory_1 = require("./transport/TransportFactory");
|
|
22
|
+
const ELICITATION_TIMEOUT_MS = 300_000;
|
|
22
23
|
class McpServer {
|
|
23
24
|
constructor(logger) {
|
|
24
25
|
this.resolveFunctions = {};
|
|
@@ -118,7 +119,7 @@ class McpServer {
|
|
|
118
119
|
try {
|
|
119
120
|
await new Promise((resolve) => {
|
|
120
121
|
this.resolveFunctions[callId] = resolve;
|
|
121
|
-
void transport.handleRequest(req, resp, message);
|
|
122
|
+
void transport.handleRequest(req, resp, message).finally(resolve);
|
|
122
123
|
});
|
|
123
124
|
}
|
|
124
125
|
finally {
|
|
@@ -343,6 +344,44 @@ class McpServer {
|
|
|
343
344
|
await server.connect(transport);
|
|
344
345
|
return true;
|
|
345
346
|
}
|
|
347
|
+
clientSupportsUrlElicitation(server) {
|
|
348
|
+
const elicitation = server.getClientCapabilities()?.elicitation;
|
|
349
|
+
return Boolean(elicitation && typeof elicitation === 'object' && 'url' in elicitation);
|
|
350
|
+
}
|
|
351
|
+
async handleCredentialGate(server, gateResult, callId) {
|
|
352
|
+
const missing = gateResult.credentials.filter((c) => c.status !== 'configured');
|
|
353
|
+
const connectable = missing.filter((c) => !!c.authorizationUrl);
|
|
354
|
+
const canElicit = connectable.length > 0 &&
|
|
355
|
+
connectable.length === missing.length &&
|
|
356
|
+
this.clientSupportsUrlElicitation(server);
|
|
357
|
+
if (canElicit) {
|
|
358
|
+
try {
|
|
359
|
+
const outcomes = [];
|
|
360
|
+
for (const cred of connectable) {
|
|
361
|
+
const { action } = await server.elicitInput({
|
|
362
|
+
mode: 'url',
|
|
363
|
+
elicitationId: (0, crypto_1.randomUUID)(),
|
|
364
|
+
url: cred.authorizationUrl,
|
|
365
|
+
message: `Connect ${cred.credentialName} (${cred.credentialType}) to run this tool.`,
|
|
366
|
+
}, { timeout: ELICITATION_TIMEOUT_MS });
|
|
367
|
+
outcomes.push({
|
|
368
|
+
credentialName: cred.credentialName,
|
|
369
|
+
credentialType: cred.credentialType,
|
|
370
|
+
action,
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
if (this.resolveFunctions[callId])
|
|
374
|
+
this.resolveFunctions[callId]();
|
|
375
|
+
return MessageFormatter_1.MessageFormatter.formatCredentialGateElicited(outcomes);
|
|
376
|
+
}
|
|
377
|
+
catch (error) {
|
|
378
|
+
this.logger.warn(`Credential gate elicitation failed, falling back to text response: ${error instanceof Error ? error.message : String(error)}`);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
if (this.resolveFunctions[callId])
|
|
382
|
+
this.resolveFunctions[callId]();
|
|
383
|
+
return MessageFormatter_1.MessageFormatter.formatCredentialGate(gateResult);
|
|
384
|
+
}
|
|
346
385
|
setupHandlers(server) {
|
|
347
386
|
server.setRequestHandler(types_js_1.ListToolsRequestSchema, (_, extra) => {
|
|
348
387
|
if (!extra.sessionId) {
|
|
@@ -378,10 +417,7 @@ class McpServer {
|
|
|
378
417
|
}
|
|
379
418
|
const gateResult = this.pendingGateResults[callId];
|
|
380
419
|
if (gateResult && !gateResult.readyToExecute) {
|
|
381
|
-
|
|
382
|
-
this.resolveFunctions[callId]();
|
|
383
|
-
}
|
|
384
|
-
return MessageFormatter_1.MessageFormatter.formatCredentialGate(gateResult);
|
|
420
|
+
return await this.handleCredentialGate(server, gateResult, callId);
|
|
385
421
|
}
|
|
386
422
|
try {
|
|
387
423
|
if (this.executionCoordinator.isQueueMode()) {
|