@n8n/ai-workflow-builder 1.4.1 → 1.5.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/agents/responder.agent.d.ts +4 -2
- package/dist/agents/responder.agent.js +9 -2
- package/dist/agents/responder.agent.js.map +1 -1
- package/dist/agents/supervisor.agent.d.ts +2 -1
- package/dist/agents/supervisor.agent.js +2 -2
- package/dist/agents/supervisor.agent.js.map +1 -1
- package/dist/ai-workflow-builder-agent.service.js +11 -7
- package/dist/ai-workflow-builder-agent.service.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/chains/conversation-compact.d.ts +2 -1
- package/dist/chains/conversation-compact.js +2 -2
- package/dist/chains/conversation-compact.js.map +1 -1
- package/dist/chains/workflow-name.d.ts +2 -1
- package/dist/chains/workflow-name.js +3 -2
- package/dist/chains/workflow-name.js.map +1 -1
- package/dist/constants.d.ts +0 -1
- package/dist/constants.js +1 -2
- package/dist/constants.js.map +1 -1
- package/dist/llm-config.d.ts +14 -5
- package/dist/llm-config.js +90 -35
- package/dist/llm-config.js.map +1 -1
- package/dist/multi-agent-workflow-subgraphs.d.ts +2 -4
- package/dist/multi-agent-workflow-subgraphs.js +20 -15
- package/dist/multi-agent-workflow-subgraphs.js.map +1 -1
- package/dist/prompts/agents/builder.prompt.js +211 -33
- package/dist/prompts/agents/builder.prompt.js.map +1 -1
- package/dist/prompts/agents/configurator.prompt.js +24 -2
- package/dist/prompts/agents/configurator.prompt.js.map +1 -1
- package/dist/prompts/agents/discovery.prompt.js +84 -7
- package/dist/prompts/agents/discovery.prompt.js.map +1 -1
- package/dist/prompts/chains/parameter-updater/guides/gmail.js +27 -2
- package/dist/prompts/chains/parameter-updater/guides/gmail.js.map +1 -1
- package/dist/prompts/chains/parameter-updater/guides/index.d.ts +1 -0
- package/dist/prompts/chains/parameter-updater/guides/index.js +3 -1
- package/dist/prompts/chains/parameter-updater/guides/index.js.map +1 -1
- package/dist/prompts/chains/parameter-updater/guides/predecessor-output.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/predecessor-output.js +25 -0
- package/dist/prompts/chains/parameter-updater/guides/predecessor-output.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/registry.js +1 -0
- package/dist/prompts/chains/parameter-updater/registry.js.map +1 -1
- package/dist/prompts/index.d.ts +0 -1
- package/dist/prompts/index.js +1 -4
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/shared/node-guidance/structured-output-parser.js +1 -1
- package/dist/prompts/shared/node-recommendations/audio-generation.d.ts +2 -0
- package/dist/prompts/shared/node-recommendations/audio-generation.js +18 -0
- package/dist/prompts/shared/node-recommendations/audio-generation.js.map +1 -0
- package/dist/prompts/shared/node-recommendations/image-generation.d.ts +2 -0
- package/dist/prompts/shared/node-recommendations/image-generation.js +18 -0
- package/dist/prompts/shared/node-recommendations/image-generation.js.map +1 -0
- package/dist/prompts/shared/node-recommendations/index.d.ts +3 -0
- package/dist/prompts/shared/node-recommendations/index.js +17 -0
- package/dist/prompts/shared/node-recommendations/index.js.map +1 -0
- package/dist/prompts/shared/node-recommendations/text-manipulation.d.ts +2 -0
- package/dist/prompts/shared/node-recommendations/text-manipulation.js +27 -0
- package/dist/prompts/shared/node-recommendations/text-manipulation.js.map +1 -0
- package/dist/prompts/shared/node-recommendations/utils/format-recommendation.d.ts +2 -0
- package/dist/prompts/shared/node-recommendations/utils/format-recommendation.js +24 -0
- package/dist/prompts/shared/node-recommendations/utils/format-recommendation.js.map +1 -0
- package/dist/prompts/shared/node-recommendations/video-generation.d.ts +2 -0
- package/dist/prompts/shared/node-recommendations/video-generation.js +15 -0
- package/dist/prompts/shared/node-recommendations/video-generation.js.map +1 -0
- package/dist/subgraphs/builder.subgraph.d.ts +3 -1
- package/dist/subgraphs/builder.subgraph.js +28 -4
- package/dist/subgraphs/builder.subgraph.js.map +1 -1
- package/dist/subgraphs/configurator.subgraph.d.ts +3 -1
- package/dist/subgraphs/configurator.subgraph.js +5 -3
- package/dist/subgraphs/configurator.subgraph.js.map +1 -1
- package/dist/subgraphs/discovery.subgraph.d.ts +81 -1
- package/dist/subgraphs/discovery.subgraph.js +67 -8
- package/dist/subgraphs/discovery.subgraph.js.map +1 -1
- package/dist/tools/add-node.tool.d.ts +12 -12
- package/dist/tools/add-node.tool.js +25 -30
- package/dist/tools/add-node.tool.js.map +1 -1
- package/dist/tools/best-practices/data-persistence.js +5 -0
- package/dist/tools/best-practices/data-persistence.js.map +1 -1
- package/dist/tools/best-practices/index.js +2 -1
- package/dist/tools/best-practices/index.js.map +1 -1
- package/dist/tools/best-practices/scheduling.js +41 -168
- package/dist/tools/best-practices/scheduling.js.map +1 -1
- package/dist/tools/builder-tools.d.ts +1 -10
- package/dist/tools/builder-tools.js +6 -17
- package/dist/tools/builder-tools.js.map +1 -1
- package/dist/tools/get-documentation.tool.d.ts +79 -0
- package/dist/tools/get-documentation.tool.js +164 -0
- package/dist/tools/get-documentation.tool.js.map +1 -0
- package/dist/tools/helpers/state.d.ts +1 -0
- package/dist/tools/helpers/state.js +6 -0
- package/dist/tools/helpers/state.js.map +1 -1
- package/dist/tools/node-details.tool.js +14 -3
- package/dist/tools/node-details.tool.js.map +1 -1
- package/dist/tools/rename-node.tool.d.ts +15 -0
- package/dist/tools/rename-node.tool.js +141 -0
- package/dist/tools/rename-node.tool.js.map +1 -0
- package/dist/tools/update-node-parameters.tool.d.ts +1 -1
- package/dist/tools/update-node-parameters.tool.js +131 -2
- package/dist/tools/update-node-parameters.tool.js.map +1 -1
- package/dist/tools/utils/mermaid.utils.js +12 -10
- package/dist/tools/utils/mermaid.utils.js.map +1 -1
- package/dist/tools/validate-structure.tool.js +3 -2
- package/dist/tools/validate-structure.tool.js.map +1 -1
- package/dist/types/discovery-types.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/node-recommendations.d.ts +26 -0
- package/dist/types/node-recommendations.js +16 -0
- package/dist/types/node-recommendations.js.map +1 -0
- package/dist/types/tools.d.ts +5 -3
- package/dist/types/workflow.d.ts +5 -0
- package/dist/utils/context-builders.js +17 -2
- package/dist/utils/context-builders.js.map +1 -1
- package/dist/utils/operations-processor.js +37 -5
- package/dist/utils/operations-processor.js.map +1 -1
- package/dist/utils/resource-operation-extractor.d.ts +16 -0
- package/dist/utils/resource-operation-extractor.js +148 -0
- package/dist/utils/resource-operation-extractor.js.map +1 -0
- package/dist/utils/state-modifier.d.ts +3 -2
- package/dist/utils/state-modifier.js +4 -4
- package/dist/utils/state-modifier.js.map +1 -1
- package/dist/utils/stream-processor.js +1 -1
- package/dist/utils/stream-processor.js.map +1 -1
- package/dist/utils/subgraph-helpers.d.ts +1 -0
- package/dist/utils/subgraph-helpers.js +12 -0
- package/dist/utils/subgraph-helpers.js.map +1 -1
- package/dist/validation/auto-fix/auto-fix-connections.d.ts +21 -0
- package/dist/validation/auto-fix/auto-fix-connections.js +207 -0
- package/dist/validation/auto-fix/auto-fix-connections.js.map +1 -0
- package/dist/validation/auto-fix/index.d.ts +2 -0
- package/dist/validation/auto-fix/index.js +6 -0
- package/dist/validation/auto-fix/index.js.map +1 -0
- package/dist/validation/checks/connections.js +10 -0
- package/dist/validation/checks/connections.js.map +1 -1
- package/dist/validation/checks/credentials.js +6 -6
- package/dist/validation/checks/credentials.js.map +1 -1
- package/dist/validation/types.d.ts +1 -1
- package/dist/workflow-builder-agent.d.ts +14 -14
- package/dist/workflow-builder-agent.js +22 -239
- package/dist/workflow-builder-agent.js.map +1 -1
- package/dist/workflow-state.d.ts +0 -1
- package/dist/workflow-state.js +0 -17
- package/dist/workflow-state.js.map +1 -1
- package/package.json +15 -12
- package/dist/prompts/legacy-agent.prompt.d.ts +0 -6
- package/dist/prompts/legacy-agent.prompt.js +0 -587
- package/dist/prompts/legacy-agent.prompt.js.map +0 -1
- package/dist/tools/categorize-prompt.tool.d.ts +0 -5
- package/dist/tools/categorize-prompt.tool.js +0 -85
- package/dist/tools/categorize-prompt.tool.js.map +0 -1
- package/dist/tools/get-best-practices.tool.d.ts +0 -34
- package/dist/tools/get-best-practices.tool.js +0 -94
- package/dist/tools/get-best-practices.tool.js.map +0 -1
- package/dist/tools/validate-workflow.tool.d.ts +0 -5
- package/dist/tools/validate-workflow.tool.js +0 -73
- package/dist/tools/validate-workflow.tool.js.map +0 -1
- package/dist/utils/workflow-validation.d.ts +0 -2
- package/dist/utils/workflow-validation.js +0 -37
- package/dist/utils/workflow-validation.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
2
2
|
import type { BaseMessage } from '@langchain/core/messages';
|
|
3
|
-
|
|
3
|
+
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
4
|
+
export declare function conversationCompactChain(llm: BaseChatModel, messages: BaseMessage[], previousSummary?: string, config?: RunnableConfig): Promise<{
|
|
4
5
|
success: boolean;
|
|
5
6
|
summary: Record<string, any>;
|
|
6
7
|
summaryPlain: string;
|
|
@@ -7,7 +7,7 @@ exports.conversationCompactChain = conversationCompactChain;
|
|
|
7
7
|
const messages_1 = require("@langchain/core/messages");
|
|
8
8
|
const zod_1 = __importDefault(require("zod"));
|
|
9
9
|
const compact_prompt_1 = require("../prompts/chains/compact.prompt");
|
|
10
|
-
async function conversationCompactChain(llm, messages, previousSummary = '') {
|
|
10
|
+
async function conversationCompactChain(llm, messages, previousSummary = '', config) {
|
|
11
11
|
const CompactedSession = zod_1.default.object({
|
|
12
12
|
summary: zod_1.default.string().describe('A concise summary of the conversation so far'),
|
|
13
13
|
key_decisions: zod_1.default.array(zod_1.default.string()).describe('List of key decisions and actions taken'),
|
|
@@ -36,7 +36,7 @@ async function conversationCompactChain(llm, messages, previousSummary = '') {
|
|
|
36
36
|
previousSummary,
|
|
37
37
|
conversationText,
|
|
38
38
|
});
|
|
39
|
-
const structuredOutput = await modelWithStructure.invoke(compactPrompt);
|
|
39
|
+
const structuredOutput = await modelWithStructure.invoke(compactPrompt, config);
|
|
40
40
|
const formattedSummary = `## Previous Conversation Summary
|
|
41
41
|
|
|
42
42
|
**Summary:** ${structuredOutput.summary}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-compact.js","sourceRoot":"","sources":["../../src/chains/conversation-compact.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"conversation-compact.js","sourceRoot":"","sources":["../../src/chains/conversation-compact.ts"],"names":[],"mappings":";;;;;AAQA,4DA0DC;AAhED,uDAAmE;AAEnE,8CAAoB;AAEpB,oEAAwE;AAEjE,KAAK,UAAU,wBAAwB,CAC7C,GAAkB,EAClB,QAAuB,EACvB,kBAA0B,EAAE,EAC5B,MAAuB;IAGvB,MAAM,gBAAgB,GAAG,aAAC,CAAC,MAAM,CAAC;QACjC,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QAC5E,aAAa,EAAE,aAAC,CAAC,KAAK,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QACtF,aAAa,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAC/E,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;KACjF,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,GAAG,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAGtE,MAAM,gBAAgB,GAAG,QAAQ;SAC/B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,IAAI,GAAG,YAAY,uBAAY,EAAE,CAAC;YAEjC,OAAO,SAAS,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC;aAAM,IAAI,GAAG,YAAY,oBAAS,EAAE,CAAC;YACrC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACP,OAAO,uBAAuB,CAAC;YAChC,CAAC;QACF,CAAC;QAED,OAAO,EAAE,CAAC;IACX,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,aAAa,GAAG,MAAM,sCAAqB,CAAC,MAAM,CAAC;QACxD,eAAe;QACf,gBAAgB;KAChB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAEhF,MAAM,gBAAgB,GAAG;;eAEX,gBAAgB,CAAC,OAAO;;;EAGpC,gBAAgB,CAAC,aAA0B,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;qBAEjE,gBAAgB,CAAC,aAAa;;kBAEjC,gBAAgB,CAAC,UAAU,EAAE,CAAC;IAE/C,OAAO;QACN,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,gBAAgB;QACzB,YAAY,EAAE,gBAAgB;KAC9B,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
2
|
-
|
|
2
|
+
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
3
|
+
export declare function workflowNameChain(llm: BaseChatModel, initialPrompt: string, config?: RunnableConfig): Promise<{
|
|
3
4
|
name: string;
|
|
4
5
|
}>;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.workflowNameChain = workflowNameChain;
|
|
7
7
|
const zod_1 = __importDefault(require("zod"));
|
|
8
8
|
const workflow_name_prompt_1 = require("../prompts/chains/workflow-name.prompt");
|
|
9
|
-
async function workflowNameChain(llm, initialPrompt) {
|
|
9
|
+
async function workflowNameChain(llm, initialPrompt, config) {
|
|
10
10
|
const nameSchema = zod_1.default.object({
|
|
11
11
|
name: zod_1.default.string().min(10).max(128).describe('Name of the workflow based on the prompt'),
|
|
12
12
|
});
|
|
@@ -14,7 +14,8 @@ async function workflowNameChain(llm, initialPrompt) {
|
|
|
14
14
|
const prompt = await workflow_name_prompt_1.workflowNamingPromptTemplate.invoke({
|
|
15
15
|
initialPrompt,
|
|
16
16
|
});
|
|
17
|
-
const
|
|
17
|
+
const rawOutput = await modelWithStructure.invoke(prompt, config);
|
|
18
|
+
const structuredOutput = nameSchema.parse(rawOutput);
|
|
18
19
|
return {
|
|
19
20
|
name: structuredOutput.name,
|
|
20
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-name.js","sourceRoot":"","sources":["../../src/chains/workflow-name.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"workflow-name.js","sourceRoot":"","sources":["../../src/chains/workflow-name.ts"],"names":[],"mappings":";;;;;AAMA,8CAsBC;AA1BD,8CAAoB;AAEpB,gFAAqF;AAE9E,KAAK,UAAU,iBAAiB,CACtC,GAAkB,EAClB,aAAqB,EACrB,MAAuB;IAGvB,MAAM,UAAU,GAAG,aAAC,CAAC,MAAM,CAAC;QAC3B,IAAI,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;KACtF,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,MAAM,mDAA4B,CAAC,MAAM,CAAC;QACxD,aAAa;KACb,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAErD,OAAO;QACN,IAAI,EAAE,gBAAgB,CAAC,IAAI;KAC3B,CAAC;AACH,CAAC"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -11,4 +11,3 @@ export declare const MAX_BUILDER_ITERATIONS = 30;
|
|
|
11
11
|
export declare const MAX_CONFIGURATOR_ITERATIONS = 30;
|
|
12
12
|
export declare const MAX_DISCOVERY_ITERATIONS = 50;
|
|
13
13
|
export declare const MAX_MULTI_AGENT_STREAM_ITERATIONS: number;
|
|
14
|
-
export declare const MAX_SINGLE_AGENT_STREAM_ITERATIONS = 50;
|
package/dist/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.MAX_MULTI_AGENT_STREAM_ITERATIONS = exports.MAX_DISCOVERY_ITERATIONS = exports.MAX_CONFIGURATOR_ITERATIONS = exports.MAX_BUILDER_ITERATIONS = exports.MAX_NODE_EXAMPLE_CHARS = exports.AVG_CHARS_PER_TOKEN_ANTHROPIC = exports.MAX_WORKFLOW_LENGTH_TOKENS = exports.DEFAULT_AUTO_COMPACT_THRESHOLD_TOKENS = exports.MAX_PARAMETER_VALUE_LENGTH = exports.MAX_INPUT_TOKENS = exports.MAX_OUTPUT_TOKENS = exports.MAX_TOTAL_TOKENS = exports.MAX_AI_BUILDER_PROMPT_LENGTH = void 0;
|
|
4
4
|
exports.MAX_AI_BUILDER_PROMPT_LENGTH = 5000;
|
|
5
5
|
exports.MAX_TOTAL_TOKENS = 200_000;
|
|
6
6
|
exports.MAX_OUTPUT_TOKENS = 16_000;
|
|
@@ -14,5 +14,4 @@ exports.MAX_BUILDER_ITERATIONS = 30;
|
|
|
14
14
|
exports.MAX_CONFIGURATOR_ITERATIONS = 30;
|
|
15
15
|
exports.MAX_DISCOVERY_ITERATIONS = 50;
|
|
16
16
|
exports.MAX_MULTI_AGENT_STREAM_ITERATIONS = exports.MAX_BUILDER_ITERATIONS + exports.MAX_CONFIGURATOR_ITERATIONS + exports.MAX_DISCOVERY_ITERATIONS;
|
|
17
|
-
exports.MAX_SINGLE_AGENT_STREAM_ITERATIONS = 50;
|
|
18
17
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAIa,QAAA,4BAA4B,GAAG,IAAI,CAAC;AAKpC,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAC3B,QAAA,gBAAgB,GAAG,wBAAgB,GAAG,yBAAiB,GAAG,KAAK,CAAC;AAMhE,QAAA,0BAA0B,GAAG,MAAM,CAAC;AAQpC,QAAA,qCAAqC,GAAG,wBAAgB,GAAG,MAAM,CAAC;AAMlE,QAAA,0BAA0B,GAAG,MAAM,CAAC;AAMpC,QAAA,6BAA6B,GAAG,GAAG,CAAC;AAOpC,QAAA,sBAAsB,GAAG,IAAI,GAAG,qCAA6B,CAAC;AAM9D,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAC5B,QAAA,2BAA2B,GAAG,EAAE,CAAC;AACjC,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAC9B,QAAA,iCAAiC,GAC7C,8BAAsB,GAAG,mCAA2B,GAAG,gCAAwB,CAAC
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAIa,QAAA,4BAA4B,GAAG,IAAI,CAAC;AAKpC,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAC3B,QAAA,gBAAgB,GAAG,wBAAgB,GAAG,yBAAiB,GAAG,KAAK,CAAC;AAMhE,QAAA,0BAA0B,GAAG,MAAM,CAAC;AAQpC,QAAA,qCAAqC,GAAG,wBAAgB,GAAG,MAAM,CAAC;AAMlE,QAAA,0BAA0B,GAAG,MAAM,CAAC;AAMpC,QAAA,6BAA6B,GAAG,GAAG,CAAC;AAOpC,QAAA,sBAAsB,GAAG,IAAI,GAAG,qCAA6B,CAAC;AAM9D,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAC5B,QAAA,2BAA2B,GAAG,EAAE,CAAC;AACjC,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAC9B,QAAA,iCAAiC,GAC7C,8BAAsB,GAAG,mCAA2B,GAAG,gCAAwB,CAAC"}
|
package/dist/llm-config.d.ts
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
2
|
+
export interface LLMProviderConfig {
|
|
2
3
|
apiKey: string;
|
|
3
4
|
baseUrl?: string;
|
|
4
5
|
headers?: Record<string, string>;
|
|
5
6
|
}
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const gpt41mini: (config: LLMProviderConfig) => Promise<import("@langchain/openai").ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>>;
|
|
8
|
-
export declare const gpt41: (config: LLMProviderConfig) => Promise<import("@langchain/openai").ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>>;
|
|
7
|
+
export declare const gpt52: (config: LLMProviderConfig) => Promise<import("@langchain/openai").ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>>;
|
|
9
8
|
export declare const anthropicClaudeSonnet45: (config: LLMProviderConfig) => Promise<import("@langchain/anthropic").ChatAnthropic>;
|
|
10
9
|
export declare const anthropicHaiku45: (config: LLMProviderConfig) => Promise<import("@langchain/anthropic").ChatAnthropic>;
|
|
11
|
-
export
|
|
10
|
+
export declare const anthropicClaudeOpus45: (config: LLMProviderConfig) => Promise<import("@langchain/anthropic").ChatAnthropic>;
|
|
11
|
+
export declare const glm47: (config: LLMProviderConfig) => Promise<import("@langchain/openai").ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>>;
|
|
12
|
+
export declare const gemini3Flash: (config: LLMProviderConfig) => Promise<import("@langchain/openai").ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>>;
|
|
13
|
+
export declare const deepseekV32: (config: LLMProviderConfig) => Promise<import("@langchain/openai").ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>>;
|
|
14
|
+
export declare const gemini3Pro: (config: LLMProviderConfig) => Promise<import("@langchain/openai").ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>>;
|
|
15
|
+
export declare const devstral: (config: LLMProviderConfig) => Promise<import("@langchain/openai").ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>>;
|
|
16
|
+
export type ModelId = 'claude-opus-4.5' | 'claude-sonnet-4.5' | 'claude-haiku-4.5' | 'gpt-5.2' | 'glm-4.7' | 'gemini-3-flash' | 'deepseek-v3.2' | 'gemini-3-pro' | 'devstral';
|
|
17
|
+
export declare const MODEL_FACTORIES: Record<ModelId, (config: LLMProviderConfig) => Promise<BaseChatModel>>;
|
|
18
|
+
export declare function getApiKeyEnvVar(modelId: ModelId): string;
|
|
19
|
+
export declare const AVAILABLE_MODELS: readonly ModelId[];
|
|
20
|
+
export declare const DEFAULT_MODEL: ModelId;
|
package/dist/llm-config.js
CHANGED
|
@@ -33,28 +33,14 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
36
|
+
exports.DEFAULT_MODEL = exports.AVAILABLE_MODELS = exports.MODEL_FACTORIES = exports.devstral = exports.gemini3Pro = exports.deepseekV32 = exports.gemini3Flash = exports.glm47 = exports.anthropicClaudeOpus45 = exports.anthropicHaiku45 = exports.anthropicClaudeSonnet45 = exports.gpt52 = void 0;
|
|
37
|
+
exports.getApiKeyEnvVar = getApiKeyEnvVar;
|
|
37
38
|
const constants_1 = require("./constants");
|
|
38
39
|
const http_proxy_agent_1 = require("./utils/http-proxy-agent");
|
|
39
|
-
const
|
|
40
|
+
const gpt52 = async (config) => {
|
|
40
41
|
const { ChatOpenAI } = await Promise.resolve().then(() => __importStar(require('@langchain/openai')));
|
|
41
42
|
return new ChatOpenAI({
|
|
42
|
-
model: '
|
|
43
|
-
apiKey: config.apiKey,
|
|
44
|
-
configuration: {
|
|
45
|
-
baseURL: config.baseUrl,
|
|
46
|
-
defaultHeaders: config.headers,
|
|
47
|
-
fetchOptions: {
|
|
48
|
-
dispatcher: (0, http_proxy_agent_1.getProxyAgent)(config.baseUrl ?? 'https://api.openai.com/v1'),
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
};
|
|
53
|
-
exports.o4mini = o4mini;
|
|
54
|
-
const gpt41mini = async (config) => {
|
|
55
|
-
const { ChatOpenAI } = await Promise.resolve().then(() => __importStar(require('@langchain/openai')));
|
|
56
|
-
return new ChatOpenAI({
|
|
57
|
-
model: 'gpt-4.1-mini-2025-04-14',
|
|
43
|
+
model: 'gpt-5.2-2025-12-11',
|
|
58
44
|
apiKey: config.apiKey,
|
|
59
45
|
temperature: 0,
|
|
60
46
|
maxTokens: -1,
|
|
@@ -67,28 +53,30 @@ const gpt41mini = async (config) => {
|
|
|
67
53
|
},
|
|
68
54
|
});
|
|
69
55
|
};
|
|
70
|
-
exports.
|
|
71
|
-
const
|
|
72
|
-
const {
|
|
73
|
-
|
|
74
|
-
model: '
|
|
56
|
+
exports.gpt52 = gpt52;
|
|
57
|
+
const anthropicClaudeSonnet45 = async (config) => {
|
|
58
|
+
const { ChatAnthropic } = await Promise.resolve().then(() => __importStar(require('@langchain/anthropic')));
|
|
59
|
+
const model = new ChatAnthropic({
|
|
60
|
+
model: 'claude-sonnet-4-5-20250929',
|
|
75
61
|
apiKey: config.apiKey,
|
|
76
|
-
temperature: 0
|
|
77
|
-
maxTokens:
|
|
78
|
-
|
|
79
|
-
|
|
62
|
+
temperature: 0,
|
|
63
|
+
maxTokens: constants_1.MAX_OUTPUT_TOKENS,
|
|
64
|
+
anthropicApiUrl: config.baseUrl,
|
|
65
|
+
clientOptions: {
|
|
80
66
|
defaultHeaders: config.headers,
|
|
81
67
|
fetchOptions: {
|
|
82
|
-
dispatcher: (0, http_proxy_agent_1.getProxyAgent)(config.baseUrl
|
|
68
|
+
dispatcher: (0, http_proxy_agent_1.getProxyAgent)(config.baseUrl),
|
|
83
69
|
},
|
|
84
70
|
},
|
|
85
71
|
});
|
|
72
|
+
delete model.topP;
|
|
73
|
+
return model;
|
|
86
74
|
};
|
|
87
|
-
exports.
|
|
88
|
-
const
|
|
75
|
+
exports.anthropicClaudeSonnet45 = anthropicClaudeSonnet45;
|
|
76
|
+
const anthropicHaiku45 = async (config) => {
|
|
89
77
|
const { ChatAnthropic } = await Promise.resolve().then(() => __importStar(require('@langchain/anthropic')));
|
|
90
78
|
const model = new ChatAnthropic({
|
|
91
|
-
model: 'claude-
|
|
79
|
+
model: 'claude-haiku-4-5-20251001',
|
|
92
80
|
apiKey: config.apiKey,
|
|
93
81
|
temperature: 0,
|
|
94
82
|
maxTokens: constants_1.MAX_OUTPUT_TOKENS,
|
|
@@ -103,11 +91,11 @@ const anthropicClaudeSonnet45 = async (config) => {
|
|
|
103
91
|
delete model.topP;
|
|
104
92
|
return model;
|
|
105
93
|
};
|
|
106
|
-
exports.
|
|
107
|
-
const
|
|
94
|
+
exports.anthropicHaiku45 = anthropicHaiku45;
|
|
95
|
+
const anthropicClaudeOpus45 = async (config) => {
|
|
108
96
|
const { ChatAnthropic } = await Promise.resolve().then(() => __importStar(require('@langchain/anthropic')));
|
|
109
97
|
const model = new ChatAnthropic({
|
|
110
|
-
model: 'claude-
|
|
98
|
+
model: 'claude-opus-4-5-20251101',
|
|
111
99
|
apiKey: config.apiKey,
|
|
112
100
|
temperature: 0,
|
|
113
101
|
maxTokens: constants_1.MAX_OUTPUT_TOKENS,
|
|
@@ -122,5 +110,72 @@ const anthropicHaiku45 = async (config) => {
|
|
|
122
110
|
delete model.topP;
|
|
123
111
|
return model;
|
|
124
112
|
};
|
|
125
|
-
exports.
|
|
113
|
+
exports.anthropicClaudeOpus45 = anthropicClaudeOpus45;
|
|
114
|
+
const OPENROUTER_BASE_URL = 'https://openrouter.ai/api/v1';
|
|
115
|
+
function createOpenRouterModel(modelName) {
|
|
116
|
+
return async (config) => {
|
|
117
|
+
const { ChatOpenAI } = await Promise.resolve().then(() => __importStar(require('@langchain/openai')));
|
|
118
|
+
return new ChatOpenAI({
|
|
119
|
+
model: modelName,
|
|
120
|
+
apiKey: config.apiKey,
|
|
121
|
+
temperature: 0,
|
|
122
|
+
maxTokens: -1,
|
|
123
|
+
configuration: {
|
|
124
|
+
baseURL: OPENROUTER_BASE_URL,
|
|
125
|
+
defaultHeaders: {
|
|
126
|
+
...config.headers,
|
|
127
|
+
'HTTP-Referer': 'https://n8n.io',
|
|
128
|
+
'X-Title': 'n8n AI Workflow Builder',
|
|
129
|
+
},
|
|
130
|
+
fetchOptions: {
|
|
131
|
+
dispatcher: (0, http_proxy_agent_1.getProxyAgent)(OPENROUTER_BASE_URL),
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
exports.glm47 = createOpenRouterModel('thudm/glm-4-plus');
|
|
138
|
+
exports.gemini3Flash = createOpenRouterModel('google/gemini-3-flash-preview');
|
|
139
|
+
exports.deepseekV32 = createOpenRouterModel('deepseek/deepseek-chat-v3-0324');
|
|
140
|
+
exports.gemini3Pro = createOpenRouterModel('google/gemini-3-pro-preview');
|
|
141
|
+
exports.devstral = createOpenRouterModel('mistralai/devstral-small');
|
|
142
|
+
exports.MODEL_FACTORIES = {
|
|
143
|
+
'claude-opus-4.5': exports.anthropicClaudeOpus45,
|
|
144
|
+
'claude-sonnet-4.5': exports.anthropicClaudeSonnet45,
|
|
145
|
+
'claude-haiku-4.5': exports.anthropicHaiku45,
|
|
146
|
+
'gpt-5.2': exports.gpt52,
|
|
147
|
+
'glm-4.7': exports.glm47,
|
|
148
|
+
'gemini-3-flash': exports.gemini3Flash,
|
|
149
|
+
'deepseek-v3.2': exports.deepseekV32,
|
|
150
|
+
'gemini-3-pro': exports.gemini3Pro,
|
|
151
|
+
devstral: exports.devstral,
|
|
152
|
+
};
|
|
153
|
+
const OPENROUTER_MODELS = [
|
|
154
|
+
'glm-4.7',
|
|
155
|
+
'gemini-3-flash',
|
|
156
|
+
'deepseek-v3.2',
|
|
157
|
+
'gemini-3-pro',
|
|
158
|
+
'devstral',
|
|
159
|
+
];
|
|
160
|
+
function getApiKeyEnvVar(modelId) {
|
|
161
|
+
if (OPENROUTER_MODELS.includes(modelId)) {
|
|
162
|
+
return 'OPENROUTER_API_KEY';
|
|
163
|
+
}
|
|
164
|
+
if (modelId.startsWith('gpt')) {
|
|
165
|
+
return 'N8N_AI_OPENAI_KEY';
|
|
166
|
+
}
|
|
167
|
+
return 'N8N_AI_ANTHROPIC_KEY';
|
|
168
|
+
}
|
|
169
|
+
exports.AVAILABLE_MODELS = [
|
|
170
|
+
'claude-opus-4.5',
|
|
171
|
+
'claude-sonnet-4.5',
|
|
172
|
+
'claude-haiku-4.5',
|
|
173
|
+
'gpt-5.2',
|
|
174
|
+
'glm-4.7',
|
|
175
|
+
'gemini-3-flash',
|
|
176
|
+
'deepseek-v3.2',
|
|
177
|
+
'gemini-3-pro',
|
|
178
|
+
'devstral',
|
|
179
|
+
];
|
|
180
|
+
exports.DEFAULT_MODEL = 'claude-sonnet-4.5';
|
|
126
181
|
//# sourceMappingURL=llm-config.js.map
|
package/dist/llm-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-config.js","sourceRoot":"","sources":["../src/llm-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"llm-config.js","sourceRoot":"","sources":["../src/llm-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
2
1
|
import { type MemorySaver } from '@langchain/langgraph';
|
|
3
2
|
import type { Logger } from '@n8n/backend-common';
|
|
4
3
|
import type { INodeTypeDescription } from 'n8n-workflow';
|
|
5
|
-
import type { BuilderFeatureFlags } from './workflow-builder-agent';
|
|
4
|
+
import type { BuilderFeatureFlags, StageLLMs } from './workflow-builder-agent';
|
|
6
5
|
export interface MultiAgentSubgraphConfig {
|
|
7
6
|
parsedNodeTypes: INodeTypeDescription[];
|
|
8
|
-
|
|
9
|
-
llmComplexTask: BaseChatModel;
|
|
7
|
+
stageLLMs: StageLLMs;
|
|
10
8
|
logger?: Logger;
|
|
11
9
|
instanceUrl?: string;
|
|
12
10
|
checkpointer?: MemorySaver;
|
|
@@ -24,10 +24,14 @@ function routeToNode(next) {
|
|
|
24
24
|
return nodeMapping[next] ?? 'responder';
|
|
25
25
|
}
|
|
26
26
|
function createSubgraphNodeHandler(subgraph, compiledGraph, name, logger, recursionLimit) {
|
|
27
|
-
return async (state) => {
|
|
27
|
+
return async (state, config) => {
|
|
28
28
|
try {
|
|
29
29
|
const input = subgraph.transformInput(state);
|
|
30
|
-
const
|
|
30
|
+
const invokeConfig = {
|
|
31
|
+
...config,
|
|
32
|
+
recursionLimit,
|
|
33
|
+
};
|
|
34
|
+
const result = await compiledGraph.invoke(input, invokeConfig);
|
|
31
35
|
const output = subgraph.transformOutput(result, state);
|
|
32
36
|
return output;
|
|
33
37
|
}
|
|
@@ -60,51 +64,52 @@ function createSubgraphNodeHandler(subgraph, compiledGraph, name, logger, recurs
|
|
|
60
64
|
};
|
|
61
65
|
}
|
|
62
66
|
function createMultiAgentWorkflowWithSubgraphs(config) {
|
|
63
|
-
const { parsedNodeTypes,
|
|
64
|
-
const supervisorAgent = new supervisor_agent_1.SupervisorAgent({ llm:
|
|
65
|
-
const responderAgent = new responder_agent_1.ResponderAgent({ llm:
|
|
67
|
+
const { parsedNodeTypes, stageLLMs, logger, instanceUrl, checkpointer, autoCompactThresholdTokens = constants_1.DEFAULT_AUTO_COMPACT_THRESHOLD_TOKENS, featureFlags, onGenerationSuccess, } = config;
|
|
68
|
+
const supervisorAgent = new supervisor_agent_1.SupervisorAgent({ llm: stageLLMs.supervisor });
|
|
69
|
+
const responderAgent = new responder_agent_1.ResponderAgent({ llm: stageLLMs.responder });
|
|
66
70
|
const discoverySubgraph = new discovery_subgraph_1.DiscoverySubgraph();
|
|
67
71
|
const builderSubgraph = new builder_subgraph_1.BuilderSubgraph();
|
|
68
72
|
const configuratorSubgraph = new configurator_subgraph_1.ConfiguratorSubgraph();
|
|
69
73
|
const compiledDiscovery = discoverySubgraph.create({
|
|
70
74
|
parsedNodeTypes,
|
|
71
|
-
llm:
|
|
75
|
+
llm: stageLLMs.discovery,
|
|
72
76
|
logger,
|
|
73
77
|
featureFlags,
|
|
74
78
|
});
|
|
75
79
|
const compiledBuilder = builderSubgraph.create({
|
|
76
80
|
parsedNodeTypes,
|
|
77
|
-
llm:
|
|
81
|
+
llm: stageLLMs.builder,
|
|
78
82
|
logger,
|
|
79
83
|
featureFlags,
|
|
80
84
|
});
|
|
81
85
|
const compiledConfigurator = configuratorSubgraph.create({
|
|
82
86
|
parsedNodeTypes,
|
|
83
|
-
llm:
|
|
87
|
+
llm: stageLLMs.configurator,
|
|
88
|
+
llmParameterUpdater: stageLLMs.parameterUpdater,
|
|
84
89
|
logger,
|
|
85
90
|
instanceUrl,
|
|
86
91
|
featureFlags,
|
|
87
92
|
});
|
|
88
93
|
return (new langgraph_1.StateGraph(parent_graph_state_1.ParentGraphState)
|
|
89
|
-
.addNode('supervisor', async (state) => {
|
|
94
|
+
.addNode('supervisor', async (state, config) => {
|
|
90
95
|
const routing = await supervisorAgent.invoke({
|
|
91
96
|
messages: state.messages,
|
|
92
97
|
workflowJSON: state.workflowJSON,
|
|
93
98
|
coordinationLog: state.coordinationLog,
|
|
94
99
|
previousSummary: state.previousSummary,
|
|
95
|
-
});
|
|
100
|
+
}, config);
|
|
96
101
|
return {
|
|
97
102
|
nextPhase: routing.next,
|
|
98
103
|
};
|
|
99
104
|
})
|
|
100
|
-
.addNode('responder', async (state) => {
|
|
105
|
+
.addNode('responder', async (state, config) => {
|
|
101
106
|
const response = await responderAgent.invoke({
|
|
102
107
|
messages: state.messages,
|
|
103
108
|
coordinationLog: state.coordinationLog,
|
|
104
109
|
discoveryContext: state.discoveryContext,
|
|
105
110
|
workflowJSON: state.workflowJSON,
|
|
106
111
|
previousSummary: state.previousSummary,
|
|
107
|
-
});
|
|
112
|
+
}, config);
|
|
108
113
|
if (onGenerationSuccess && !(0, coordination_log_1.hasErrorInLog)(state.coordinationLog)) {
|
|
109
114
|
void Promise.resolve(onGenerationSuccess()).catch((error) => {
|
|
110
115
|
logger?.warn('Failed to execute onGenerationSuccess callback', { error });
|
|
@@ -125,13 +130,13 @@ function createMultiAgentWorkflowWithSubgraphs(config) {
|
|
|
125
130
|
nextPhase: (0, state_modifier_1.determineStateAction)(state, autoCompactThresholdTokens),
|
|
126
131
|
}))
|
|
127
132
|
.addNode('cleanup_dangling', (state) => (0, state_modifier_1.handleCleanupDangling)(state.messages, logger))
|
|
128
|
-
.addNode('compact_messages', async (state) => {
|
|
133
|
+
.addNode('compact_messages', async (state, config) => {
|
|
129
134
|
const isAutoCompact = state.messages[state.messages.length - 1]?.content !== '/compact';
|
|
130
|
-
return await (0, state_modifier_1.handleCompactMessages)(state.messages, state.previousSummary ?? '',
|
|
135
|
+
return await (0, state_modifier_1.handleCompactMessages)(state.messages, state.previousSummary ?? '', stageLLMs.responder, isAutoCompact, config);
|
|
131
136
|
})
|
|
132
137
|
.addNode('delete_messages', (state) => (0, state_modifier_1.handleDeleteMessages)(state.messages))
|
|
133
138
|
.addNode('clear_error_state', (state) => (0, state_modifier_1.handleClearErrorState)(state.coordinationLog, logger))
|
|
134
|
-
.addNode('create_workflow_name', async (state) => await (0, state_modifier_1.handleCreateWorkflowName)(state.messages, state.workflowJSON,
|
|
139
|
+
.addNode('create_workflow_name', async (state, config) => await (0, state_modifier_1.handleCreateWorkflowName)(state.messages, state.workflowJSON, stageLLMs.responder, logger, config))
|
|
135
140
|
.addNode('discovery_subgraph', createSubgraphNodeHandler(discoverySubgraph, compiledDiscovery, 'discovery_subgraph', logger, constants_1.MAX_DISCOVERY_ITERATIONS))
|
|
136
141
|
.addNode('builder_subgraph', createSubgraphNodeHandler(builderSubgraph, compiledBuilder, 'builder_subgraph', logger, constants_1.MAX_BUILDER_ITERATIONS))
|
|
137
142
|
.addNode('configurator_subgraph', createSubgraphNodeHandler(configuratorSubgraph, compiledConfigurator, 'configurator_subgraph', logger, constants_1.MAX_CONFIGURATOR_ITERATIONS))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-agent-workflow-subgraphs.js","sourceRoot":"","sources":["../src/multi-agent-workflow-subgraphs.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"multi-agent-workflow-subgraphs.js","sourceRoot":"","sources":["../src/multi-agent-workflow-subgraphs.ts"],"names":[],"mappings":"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"}
|