@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
|
@@ -2,6 +2,7 @@ import type { BaseChatModel } from '@langchain/core/language_models/chat_models'
|
|
|
2
2
|
import type { BaseMessage, AIMessage } from '@langchain/core/messages';
|
|
3
3
|
import type { Logger } from '@n8n/backend-common';
|
|
4
4
|
import type { INodeTypeDescription } from 'n8n-workflow';
|
|
5
|
+
import { type ResourceOperationInfo } from '../utils/resource-operation-extractor';
|
|
5
6
|
import type { BuilderFeatureFlags } from '../workflow-builder-agent';
|
|
6
7
|
import { BaseSubgraph } from './subgraph-interface';
|
|
7
8
|
import type { ParentGraphState } from '../parent-graph-state';
|
|
@@ -18,6 +19,14 @@ export declare const DiscoverySubgraphState: import("@langchain/langgraph").Anno
|
|
|
18
19
|
name: string;
|
|
19
20
|
possibleValues: Array<string | boolean | number>;
|
|
20
21
|
}>;
|
|
22
|
+
availableResources?: Array<{
|
|
23
|
+
value: string;
|
|
24
|
+
displayName: string;
|
|
25
|
+
operations: Array<{
|
|
26
|
+
value: string;
|
|
27
|
+
displayName: string;
|
|
28
|
+
}>;
|
|
29
|
+
}>;
|
|
21
30
|
}[], {
|
|
22
31
|
nodeName: string;
|
|
23
32
|
version: number;
|
|
@@ -26,10 +35,19 @@ export declare const DiscoverySubgraphState: import("@langchain/langgraph").Anno
|
|
|
26
35
|
name: string;
|
|
27
36
|
possibleValues: Array<string | boolean | number>;
|
|
28
37
|
}>;
|
|
38
|
+
availableResources?: Array<{
|
|
39
|
+
value: string;
|
|
40
|
+
displayName: string;
|
|
41
|
+
operations: Array<{
|
|
42
|
+
value: string;
|
|
43
|
+
displayName: string;
|
|
44
|
+
}>;
|
|
45
|
+
}>;
|
|
29
46
|
}[]>;
|
|
30
47
|
bestPractices: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
31
48
|
templateIds: import("@langchain/langgraph").BinaryOperatorAggregate<number[], number[]>;
|
|
32
49
|
cachedTemplates: import("@langchain/langgraph").BinaryOperatorAggregate<WorkflowMetadata[], WorkflowMetadata[]>;
|
|
50
|
+
resourceOperationCache: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, ResourceOperationInfo | null>, Record<string, ResourceOperationInfo | null>>;
|
|
33
51
|
}>;
|
|
34
52
|
export interface DiscoverySubgraphConfig {
|
|
35
53
|
parsedNodeTypes: INodeTypeDescription[];
|
|
@@ -43,6 +61,7 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
43
61
|
private agent;
|
|
44
62
|
private toolMap;
|
|
45
63
|
private logger?;
|
|
64
|
+
private parsedNodeTypes;
|
|
46
65
|
create(config: DiscoverySubgraphConfig): import("@langchain/langgraph").CompiledStateGraph<{
|
|
47
66
|
userRequest: string;
|
|
48
67
|
messages: BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[];
|
|
@@ -54,10 +73,19 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
54
73
|
name: string;
|
|
55
74
|
possibleValues: Array<string | boolean | number>;
|
|
56
75
|
}>;
|
|
76
|
+
availableResources?: Array<{
|
|
77
|
+
value: string;
|
|
78
|
+
displayName: string;
|
|
79
|
+
operations: Array<{
|
|
80
|
+
value: string;
|
|
81
|
+
displayName: string;
|
|
82
|
+
}>;
|
|
83
|
+
}>;
|
|
57
84
|
}[];
|
|
58
85
|
bestPractices: string | undefined;
|
|
59
86
|
templateIds: number[];
|
|
60
87
|
cachedTemplates: WorkflowMetadata[];
|
|
88
|
+
resourceOperationCache: Record<string, ResourceOperationInfo | null>;
|
|
61
89
|
}, {
|
|
62
90
|
userRequest?: string | undefined;
|
|
63
91
|
messages?: BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[] | undefined;
|
|
@@ -69,11 +97,20 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
69
97
|
name: string;
|
|
70
98
|
possibleValues: Array<string | boolean | number>;
|
|
71
99
|
}>;
|
|
100
|
+
availableResources?: Array<{
|
|
101
|
+
value: string;
|
|
102
|
+
displayName: string;
|
|
103
|
+
operations: Array<{
|
|
104
|
+
value: string;
|
|
105
|
+
displayName: string;
|
|
106
|
+
}>;
|
|
107
|
+
}>;
|
|
72
108
|
}[] | undefined;
|
|
73
109
|
bestPractices?: string | undefined;
|
|
74
110
|
templateIds?: number[] | undefined;
|
|
75
111
|
cachedTemplates?: WorkflowMetadata[] | undefined;
|
|
76
|
-
|
|
112
|
+
resourceOperationCache?: Record<string, ResourceOperationInfo | null> | undefined;
|
|
113
|
+
}, "tools" | "__start__" | "agent" | "format_output", {
|
|
77
114
|
userRequest: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
78
115
|
messages: import("@langchain/langgraph").BinaryOperatorAggregate<BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[], BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[]>;
|
|
79
116
|
nodesFound: import("@langchain/langgraph").BinaryOperatorAggregate<{
|
|
@@ -84,6 +121,14 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
84
121
|
name: string;
|
|
85
122
|
possibleValues: Array<string | boolean | number>;
|
|
86
123
|
}>;
|
|
124
|
+
availableResources?: Array<{
|
|
125
|
+
value: string;
|
|
126
|
+
displayName: string;
|
|
127
|
+
operations: Array<{
|
|
128
|
+
value: string;
|
|
129
|
+
displayName: string;
|
|
130
|
+
}>;
|
|
131
|
+
}>;
|
|
87
132
|
}[], {
|
|
88
133
|
nodeName: string;
|
|
89
134
|
version: number;
|
|
@@ -92,10 +137,19 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
92
137
|
name: string;
|
|
93
138
|
possibleValues: Array<string | boolean | number>;
|
|
94
139
|
}>;
|
|
140
|
+
availableResources?: Array<{
|
|
141
|
+
value: string;
|
|
142
|
+
displayName: string;
|
|
143
|
+
operations: Array<{
|
|
144
|
+
value: string;
|
|
145
|
+
displayName: string;
|
|
146
|
+
}>;
|
|
147
|
+
}>;
|
|
95
148
|
}[]>;
|
|
96
149
|
bestPractices: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
97
150
|
templateIds: import("@langchain/langgraph").BinaryOperatorAggregate<number[], number[]>;
|
|
98
151
|
cachedTemplates: import("@langchain/langgraph").BinaryOperatorAggregate<WorkflowMetadata[], WorkflowMetadata[]>;
|
|
152
|
+
resourceOperationCache: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, ResourceOperationInfo | null>, Record<string, ResourceOperationInfo | null>>;
|
|
99
153
|
}, {
|
|
100
154
|
userRequest: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
101
155
|
messages: import("@langchain/langgraph").BinaryOperatorAggregate<BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[], BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[]>;
|
|
@@ -107,6 +161,14 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
107
161
|
name: string;
|
|
108
162
|
possibleValues: Array<string | boolean | number>;
|
|
109
163
|
}>;
|
|
164
|
+
availableResources?: Array<{
|
|
165
|
+
value: string;
|
|
166
|
+
displayName: string;
|
|
167
|
+
operations: Array<{
|
|
168
|
+
value: string;
|
|
169
|
+
displayName: string;
|
|
170
|
+
}>;
|
|
171
|
+
}>;
|
|
110
172
|
}[], {
|
|
111
173
|
nodeName: string;
|
|
112
174
|
version: number;
|
|
@@ -115,10 +177,19 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
115
177
|
name: string;
|
|
116
178
|
possibleValues: Array<string | boolean | number>;
|
|
117
179
|
}>;
|
|
180
|
+
availableResources?: Array<{
|
|
181
|
+
value: string;
|
|
182
|
+
displayName: string;
|
|
183
|
+
operations: Array<{
|
|
184
|
+
value: string;
|
|
185
|
+
displayName: string;
|
|
186
|
+
}>;
|
|
187
|
+
}>;
|
|
118
188
|
}[]>;
|
|
119
189
|
bestPractices: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
120
190
|
templateIds: import("@langchain/langgraph").BinaryOperatorAggregate<number[], number[]>;
|
|
121
191
|
cachedTemplates: import("@langchain/langgraph").BinaryOperatorAggregate<WorkflowMetadata[], WorkflowMetadata[]>;
|
|
192
|
+
resourceOperationCache: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, ResourceOperationInfo | null>, Record<string, ResourceOperationInfo | null>>;
|
|
122
193
|
}, import("@langchain/langgraph").StateDefinition, {
|
|
123
194
|
agent: {
|
|
124
195
|
messages: AIMessage<import("@langchain/core/messages").MessageStructure>[];
|
|
@@ -128,6 +199,7 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
128
199
|
workflowOperations?: import("..").WorkflowOperation[] | null;
|
|
129
200
|
templateIds?: number[];
|
|
130
201
|
cachedTemplates?: WorkflowMetadata[];
|
|
202
|
+
bestPractices?: string;
|
|
131
203
|
};
|
|
132
204
|
}, unknown, unknown>;
|
|
133
205
|
private callAgent;
|
|
@@ -148,6 +220,14 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
148
220
|
name: string;
|
|
149
221
|
possibleValues: Array<string | boolean | number>;
|
|
150
222
|
}>;
|
|
223
|
+
availableResources?: Array<{
|
|
224
|
+
value: string;
|
|
225
|
+
displayName: string;
|
|
226
|
+
operations: Array<{
|
|
227
|
+
value: string;
|
|
228
|
+
displayName: string;
|
|
229
|
+
}>;
|
|
230
|
+
}>;
|
|
151
231
|
}[];
|
|
152
232
|
bestPractices: string | undefined;
|
|
153
233
|
};
|
|
@@ -8,8 +8,9 @@ const langgraph_1 = require("@langchain/langgraph");
|
|
|
8
8
|
const zod_1 = require("zod");
|
|
9
9
|
const errors_1 = require("../errors");
|
|
10
10
|
const discovery_prompt_1 = require("../prompts/agents/discovery.prompt");
|
|
11
|
+
const resource_operation_extractor_1 = require("../utils/resource-operation-extractor");
|
|
11
12
|
const subgraph_interface_1 = require("./subgraph-interface");
|
|
12
|
-
const
|
|
13
|
+
const get_documentation_tool_1 = require("../tools/get-documentation.tool");
|
|
13
14
|
const get_workflow_examples_tool_1 = require("../tools/get-workflow-examples.tool");
|
|
14
15
|
const node_details_tool_1 = require("../tools/node-details.tool");
|
|
15
16
|
const node_search_tool_1 = require("../tools/node-search.tool");
|
|
@@ -63,6 +64,10 @@ exports.DiscoverySubgraphState = langgraph_1.Annotation.Root({
|
|
|
63
64
|
reducer: state_reducers_1.cachedTemplatesReducer,
|
|
64
65
|
default: () => [],
|
|
65
66
|
}),
|
|
67
|
+
resourceOperationCache: (0, langgraph_1.Annotation)({
|
|
68
|
+
reducer: (x, y) => ({ ...x, ...y }),
|
|
69
|
+
default: () => ({}),
|
|
70
|
+
}),
|
|
66
71
|
});
|
|
67
72
|
class DiscoverySubgraph extends subgraph_interface_1.BaseSubgraph {
|
|
68
73
|
name = 'discovery_subgraph';
|
|
@@ -70,11 +75,13 @@ class DiscoverySubgraph extends subgraph_interface_1.BaseSubgraph {
|
|
|
70
75
|
agent;
|
|
71
76
|
toolMap;
|
|
72
77
|
logger;
|
|
78
|
+
parsedNodeTypes;
|
|
73
79
|
create(config) {
|
|
74
80
|
this.logger = config.logger;
|
|
81
|
+
this.parsedNodeTypes = config.parsedNodeTypes;
|
|
75
82
|
const includeExamples = config.featureFlags?.templateExamples === true;
|
|
76
83
|
const baseTools = [
|
|
77
|
-
(0,
|
|
84
|
+
(0, get_documentation_tool_1.createGetDocumentationTool)(),
|
|
78
85
|
(0, node_search_tool_1.createNodeSearchTool)(config.parsedNodeTypes),
|
|
79
86
|
(0, node_details_tool_1.createNodeDetailsTool)(config.parsedNodeTypes, config.logger),
|
|
80
87
|
];
|
|
@@ -141,20 +148,72 @@ class DiscoverySubgraph extends subgraph_interface_1.BaseSubgraph {
|
|
|
141
148
|
if (lastMessage && (0, messages_1.isAIMessage)(lastMessage) && lastMessage.tool_calls) {
|
|
142
149
|
const submitCall = lastMessage.tool_calls.find((tc) => tc.name === 'submit_discovery_results');
|
|
143
150
|
if (submitCall) {
|
|
144
|
-
|
|
151
|
+
const parseResult = discoveryOutputSchema.safeParse(submitCall.args);
|
|
152
|
+
if (!parseResult.success) {
|
|
153
|
+
this.logger?.error('[Discovery] Invalid discovery output schema - returning empty results', {
|
|
154
|
+
errors: parseResult.error.errors,
|
|
155
|
+
lastMessageContent: typeof lastMessage?.content === 'string'
|
|
156
|
+
? lastMessage.content.substring(0, 200)
|
|
157
|
+
: JSON.stringify(lastMessage?.content)?.substring(0, 200),
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
nodesFound: [],
|
|
161
|
+
templateIds: [],
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
output = parseResult.data;
|
|
145
165
|
}
|
|
146
166
|
}
|
|
147
167
|
if (!output) {
|
|
148
|
-
this.logger?.error('[Discovery] No
|
|
168
|
+
this.logger?.error('[Discovery] No submit_discovery_results tool call found - agent may have stopped early', {
|
|
169
|
+
messageCount: state.messages.length,
|
|
170
|
+
lastMessageType: lastMessage?.getType(),
|
|
171
|
+
});
|
|
149
172
|
return {
|
|
150
173
|
nodesFound: [],
|
|
151
174
|
templateIds: [],
|
|
152
175
|
};
|
|
153
176
|
}
|
|
154
|
-
const
|
|
177
|
+
const nodeTypeMap = new Map();
|
|
178
|
+
for (const nt of this.parsedNodeTypes) {
|
|
179
|
+
const versions = Array.isArray(nt.version) ? nt.version : [nt.version];
|
|
180
|
+
for (const v of versions) {
|
|
181
|
+
nodeTypeMap.set(`${nt.name}:${v}`, nt);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
const existingCache = state.resourceOperationCache ?? {};
|
|
185
|
+
const hydratedNodesFound = output.nodesFound.map((node) => {
|
|
186
|
+
const cacheKey = (0, resource_operation_extractor_1.createResourceCacheKey)(node.nodeName, node.version);
|
|
187
|
+
if (cacheKey in existingCache) {
|
|
188
|
+
const cached = existingCache[cacheKey];
|
|
189
|
+
if (cached) {
|
|
190
|
+
return {
|
|
191
|
+
...node,
|
|
192
|
+
availableResources: cached.resources,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
return node;
|
|
196
|
+
}
|
|
197
|
+
const nodeType = nodeTypeMap.get(cacheKey);
|
|
198
|
+
if (!nodeType) {
|
|
199
|
+
this.logger?.warn('[Discovery] Node type not found during resource hydration', {
|
|
200
|
+
nodeName: node.nodeName,
|
|
201
|
+
nodeVersion: node.version,
|
|
202
|
+
});
|
|
203
|
+
return node;
|
|
204
|
+
}
|
|
205
|
+
const resourceOpInfo = (0, resource_operation_extractor_1.extractResourceOperations)(nodeType, node.version, this.logger);
|
|
206
|
+
if (!resourceOpInfo) {
|
|
207
|
+
return node;
|
|
208
|
+
}
|
|
209
|
+
return {
|
|
210
|
+
...node,
|
|
211
|
+
availableResources: resourceOpInfo.resources,
|
|
212
|
+
};
|
|
213
|
+
});
|
|
155
214
|
return {
|
|
156
|
-
nodesFound:
|
|
157
|
-
bestPractices:
|
|
215
|
+
nodesFound: hydratedNodesFound,
|
|
216
|
+
bestPractices: state.bestPractices,
|
|
158
217
|
templateIds: state.templateIds ?? [],
|
|
159
218
|
};
|
|
160
219
|
}
|
|
@@ -170,7 +229,7 @@ class DiscoverySubgraph extends subgraph_interface_1.BaseSubgraph {
|
|
|
170
229
|
}
|
|
171
230
|
return 'tools';
|
|
172
231
|
}
|
|
173
|
-
this.logger?.warn('[Discovery
|
|
232
|
+
this.logger?.warn('[Discovery] Agent stopped without calling submit_discovery_results - check if LLM is producing valid tool calls');
|
|
174
233
|
return 'end';
|
|
175
234
|
}
|
|
176
235
|
transformInput(parentState) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.subgraph.js","sourceRoot":"","sources":["../../src/subgraphs/discovery.subgraph.ts"],"names":[],"mappings":";;;AAEA,uDAAuD;AACvD,qDAA6D;AAE7D,iDAAkE;AAClE,oDAAmE;AAGnE,6BAAwB;AAExB,qCAA2C;AAC3C,wEAI2C;
|
|
1
|
+
{"version":3,"file":"discovery.subgraph.js","sourceRoot":"","sources":["../../src/subgraphs/discovery.subgraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,22 +5,22 @@ export declare const nodeCreationSchema: z.ZodObject<{
|
|
|
5
5
|
nodeType: z.ZodString;
|
|
6
6
|
nodeVersion: z.ZodNumber;
|
|
7
7
|
name: z.ZodString;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
initialParametersReasoning: z.ZodString;
|
|
9
|
+
initialParameters: z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>;
|
|
10
10
|
}, "strip", z.ZodTypeAny, {
|
|
11
11
|
nodeType: string;
|
|
12
12
|
name: string;
|
|
13
13
|
nodeVersion: number;
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
initialParametersReasoning: string;
|
|
15
|
+
initialParameters: {} & {
|
|
16
16
|
[k: string]: unknown;
|
|
17
17
|
};
|
|
18
18
|
}, {
|
|
19
19
|
nodeType: string;
|
|
20
20
|
name: string;
|
|
21
21
|
nodeVersion: number;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
initialParametersReasoning: string;
|
|
23
|
+
initialParameters: {} & {
|
|
24
24
|
[k: string]: unknown;
|
|
25
25
|
};
|
|
26
26
|
}>;
|
|
@@ -29,14 +29,14 @@ export declare const nodeCreationE2ESchema: z.ZodObject<{
|
|
|
29
29
|
nodeType: z.ZodString;
|
|
30
30
|
nodeVersion: z.ZodNumber;
|
|
31
31
|
name: z.ZodString;
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
initialParametersReasoning: z.ZodString;
|
|
33
|
+
initialParameters: z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>;
|
|
34
34
|
}, "strip", z.ZodTypeAny, {
|
|
35
35
|
nodeType: string;
|
|
36
36
|
name: string;
|
|
37
37
|
nodeVersion: number;
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
initialParametersReasoning: string;
|
|
39
|
+
initialParameters: {} & {
|
|
40
40
|
[k: string]: unknown;
|
|
41
41
|
};
|
|
42
42
|
id?: string | undefined;
|
|
@@ -44,8 +44,8 @@ export declare const nodeCreationE2ESchema: z.ZodObject<{
|
|
|
44
44
|
nodeType: string;
|
|
45
45
|
name: string;
|
|
46
46
|
nodeVersion: number;
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
initialParametersReasoning: string;
|
|
48
|
+
initialParameters: {} & {
|
|
49
49
|
[k: string]: unknown;
|
|
50
50
|
};
|
|
51
51
|
id?: string | undefined;
|
|
@@ -19,13 +19,13 @@ const baseSchema = {
|
|
|
19
19
|
name: zod_1.z
|
|
20
20
|
.string()
|
|
21
21
|
.describe('A descriptive name for the node that clearly indicates its purpose in the workflow'),
|
|
22
|
-
|
|
22
|
+
initialParametersReasoning: zod_1.z
|
|
23
23
|
.string()
|
|
24
|
-
.describe('REQUIRED: Explain your reasoning about
|
|
25
|
-
|
|
24
|
+
.describe('REQUIRED: Explain your reasoning about initial parameters. Consider: Does this node have dynamic inputs/outputs? Does it need mode/operation/resource parameters? For example: "Vector Store has dynamic inputs based on mode, so I need to set mode:insert for document input" or "Gmail needs resource:message and operation:send to send emails"'),
|
|
25
|
+
initialParameters: zod_1.z
|
|
26
26
|
.object({})
|
|
27
27
|
.passthrough()
|
|
28
|
-
.describe('
|
|
28
|
+
.describe('Initial parameters to set on the node. This includes: (1) connection-affecting parameters like mode, hasOutputParser, textSplittingMode; (2) resource/operation for nodes with multiple resources (Gmail, Notion, Google Sheets, etc.). Pass an empty object {} if no initial parameters are needed.'),
|
|
29
29
|
};
|
|
30
30
|
exports.nodeCreationSchema = zod_1.z.object(baseSchema);
|
|
31
31
|
exports.nodeCreationE2ESchema = zod_1.z.object({
|
|
@@ -35,11 +35,11 @@ exports.nodeCreationE2ESchema = zod_1.z.object({
|
|
|
35
35
|
.optional()
|
|
36
36
|
.describe('Optional: A specific ID to use for this node. If not provided, a unique ID will be generated automatically. This is primarily used for testing purposes to ensure deterministic node IDs.'),
|
|
37
37
|
});
|
|
38
|
-
function createNode(nodeType, typeVersion, customName, existingNodes, nodeTypes,
|
|
38
|
+
function createNode(nodeType, typeVersion, customName, existingNodes, nodeTypes, initialParameters, id) {
|
|
39
39
|
const baseName = customName ?? nodeType.defaults?.name ?? nodeType.displayName;
|
|
40
40
|
const uniqueName = (0, node_creation_utils_1.generateUniqueName)(baseName, existingNodes);
|
|
41
41
|
const position = (0, node_positioning_utils_1.calculateNodePosition)(existingNodes, (0, node_helpers_1.isSubNode)(nodeType), nodeTypes);
|
|
42
|
-
return (0, node_creation_utils_1.createNodeInstance)(nodeType, typeVersion, uniqueName, position,
|
|
42
|
+
return (0, node_creation_utils_1.createNodeInstance)(nodeType, typeVersion, uniqueName, position, initialParameters, id);
|
|
43
43
|
}
|
|
44
44
|
function buildResponseMessage(addedNode, nodeTypes) {
|
|
45
45
|
const nodeType = nodeTypes.find((nt) => nt.name === addedNode.type);
|
|
@@ -77,11 +77,11 @@ function createAddNodeTool(nodeTypes) {
|
|
|
77
77
|
else {
|
|
78
78
|
validatedInput = exports.nodeCreationSchema.parse(input);
|
|
79
79
|
}
|
|
80
|
-
const { nodeType, nodeVersion, name,
|
|
80
|
+
const { nodeType, nodeVersion, name, initialParametersReasoning, initialParameters } = validatedInput;
|
|
81
81
|
reporter.start(validatedInput);
|
|
82
82
|
const state = (0, state_1.getWorkflowState)();
|
|
83
83
|
const workflow = (0, state_1.getCurrentWorkflow)(state);
|
|
84
|
-
reporter.progress(`Adding ${name} (${
|
|
84
|
+
reporter.progress(`Adding ${name} (${initialParametersReasoning})`);
|
|
85
85
|
const nodeTypeDesc = (0, validation_1.findNodeType)(nodeType, nodeVersion, nodeTypes);
|
|
86
86
|
if (!nodeTypeDesc) {
|
|
87
87
|
const nodeError = new errors_1.NodeTypeNotFoundError(nodeType);
|
|
@@ -93,7 +93,7 @@ function createAddNodeTool(nodeTypes) {
|
|
|
93
93
|
reporter.error(error);
|
|
94
94
|
return (0, response_1.createErrorResponse)(config, error);
|
|
95
95
|
}
|
|
96
|
-
const newNode = createNode(nodeTypeDesc, nodeVersion, name, workflow.nodes, nodeTypes,
|
|
96
|
+
const newNode = createNode(nodeTypeDesc, nodeVersion, name, workflow.nodes, nodeTypes, initialParameters, id);
|
|
97
97
|
const addedNodeInfo = {
|
|
98
98
|
id: newNode.id,
|
|
99
99
|
name: newNode.name,
|
|
@@ -112,24 +112,17 @@ function createAddNodeTool(nodeTypes) {
|
|
|
112
112
|
return (0, response_1.createSuccessResponse)(config, message, stateUpdates);
|
|
113
113
|
}
|
|
114
114
|
catch (error) {
|
|
115
|
-
let toolError;
|
|
116
115
|
if (error instanceof zod_1.z.ZodError) {
|
|
117
116
|
const validationError = new errors_1.ValidationError('Invalid input parameters', {
|
|
118
|
-
|
|
119
|
-
value: error.errors[0]?.message,
|
|
117
|
+
extra: { errors: error.errors },
|
|
120
118
|
});
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
code: 'VALIDATION_ERROR',
|
|
124
|
-
details: error.errors,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
toolError = {
|
|
129
|
-
message: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
130
|
-
code: 'EXECUTION_ERROR',
|
|
131
|
-
};
|
|
119
|
+
reporter.error(validationError);
|
|
120
|
+
return (0, response_1.createErrorResponse)(config, validationError);
|
|
132
121
|
}
|
|
122
|
+
const toolError = new errors_1.ToolExecutionError(error instanceof Error ? error.message : 'Unknown error occurred', {
|
|
123
|
+
toolName: builderToolBase.toolName,
|
|
124
|
+
cause: error instanceof Error ? error : undefined,
|
|
125
|
+
});
|
|
133
126
|
reporter.error(toolError);
|
|
134
127
|
return (0, response_1.createErrorResponse)(config, toolError);
|
|
135
128
|
}
|
|
@@ -140,19 +133,19 @@ function createAddNodeTool(nodeTypes) {
|
|
|
140
133
|
To add multiple nodes, call this tool multiple times in parallel.
|
|
141
134
|
|
|
142
135
|
CRITICAL: You MUST provide:
|
|
143
|
-
1.
|
|
144
|
-
2.
|
|
136
|
+
1. initialParametersReasoning - Explain why you're choosing specific initial parameters or using {}
|
|
137
|
+
2. initialParameters - The actual parameters (use {} for nodes without special needs)
|
|
145
138
|
|
|
146
|
-
IMPORTANT: DO NOT rely on default values! Always explicitly set
|
|
139
|
+
IMPORTANT: DO NOT rely on default values! Always explicitly set parameters that affect connections or define the node's behavior.
|
|
147
140
|
|
|
148
141
|
REASONING EXAMPLES:
|
|
149
142
|
- "Vector Store has dynamic inputs that change based on mode parameter, setting mode:insert to accept document inputs"
|
|
150
|
-
- "HTTP Request has static inputs/outputs, no
|
|
151
|
-
- "
|
|
143
|
+
- "HTTP Request has static inputs/outputs, no initial parameters needed"
|
|
144
|
+
- "Gmail needs resource:message and operation:send to send emails"
|
|
152
145
|
- "AI Agent has dynamic inputs, setting hasOutputParser:true to enable output parser connections"
|
|
153
146
|
- "Set node has standard main connections only, using empty parameters"
|
|
154
147
|
|
|
155
|
-
|
|
148
|
+
INITIAL PARAMETERS (set explicitly when needed):
|
|
156
149
|
- AI Agent (@n8n/n8n-nodes-langchain.agent):
|
|
157
150
|
- For output parser support: { hasOutputParser: true }
|
|
158
151
|
- Without output parser: { hasOutputParser: false }
|
|
@@ -163,9 +156,11 @@ CONNECTION PARAMETERS (NEVER rely on defaults - always set explicitly):
|
|
|
163
156
|
- Document Loader (@n8n/n8n-nodes-langchain.documentDefaultDataLoader):
|
|
164
157
|
- For text splitter input: { textSplittingMode: "custom" }
|
|
165
158
|
- For built-in splitting: { textSplittingMode: "simple" }
|
|
159
|
+
- Nodes with resource/operation (Gmail, Notion, Google Sheets, etc.):
|
|
160
|
+
- Set resource AND operation based on user intent (e.g., { resource: "message", operation: "send" })
|
|
166
161
|
- Regular nodes (HTTP Request, Set, Code, etc.): {}
|
|
167
162
|
|
|
168
|
-
Think through the
|
|
163
|
+
Think through the initialParametersReasoning FIRST, then set initialParameters based on your reasoning.`,
|
|
169
164
|
schema: exports.nodeCreationSchema,
|
|
170
165
|
});
|
|
171
166
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-node.tool.js","sourceRoot":"","sources":["../../src/tools/add-node.tool.ts"],"names":[],"mappings":";;;AAqGA,gDAMC;AAKD,
|
|
1
|
+
{"version":3,"file":"add-node.tool.js","sourceRoot":"","sources":["../../src/tools/add-node.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -161,6 +161,11 @@ Best for: Enrichment, validation, conditional logic based on stored data
|
|
|
161
161
|
- **Validate before storing:** Ensure data quality before persistence
|
|
162
162
|
- **Avoid duplicates:** Use unique identifiers or upsert operations when appropriate
|
|
163
163
|
|
|
164
|
+
## Referencing Documents, Sheets, or Tables
|
|
165
|
+
|
|
166
|
+
When configuring storage nodes, use ResourceLocator mode "list". This will allow users to select from existing documents, sheets, or tables rather than passing IDs dynamically.
|
|
167
|
+
Use modes "id", "url" or "name" only when user specifically mentions it in their prompt.
|
|
168
|
+
|
|
164
169
|
## Important Distinctions
|
|
165
170
|
|
|
166
171
|
### Storage vs. Transformation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-persistence.js","sourceRoot":"","sources":["../../../src/tools/best-practices/data-persistence.ts"],"names":[],"mappings":";;;AACA,2DAA2D;AAE3D,MAAa,4BAA4B;IAC/B,SAAS,GAAG,kCAAiB,CAAC,gBAAgB,CAAC;IAC/C,OAAO,GAAG,OAAO,CAAC;IAEV,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"data-persistence.js","sourceRoot":"","sources":["../../../src/tools/best-practices/data-persistence.ts"],"names":[],"mappings":";;;AACA,2DAA2D;AAE3D,MAAa,4BAA4B;IAC/B,SAAS,GAAG,kCAAiB,CAAC,gBAAgB,CAAC;IAC/C,OAAO,GAAG,OAAO,CAAC;IAEV,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuLjC,CAAC;IAED,gBAAgB;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;CACD;AAhMD,oEAgMC"}
|
|
@@ -10,6 +10,7 @@ const data_transformation_1 = require("./data-transformation");
|
|
|
10
10
|
const document_processing_1 = require("./document-processing");
|
|
11
11
|
const form_input_1 = require("./form-input");
|
|
12
12
|
const notification_1 = require("./notification");
|
|
13
|
+
const scheduling_1 = require("./scheduling");
|
|
13
14
|
const scraping_and_research_1 = require("./scraping-and-research");
|
|
14
15
|
const triage_1 = require("./triage");
|
|
15
16
|
exports.documentation = {
|
|
@@ -28,6 +29,6 @@ exports.documentation = {
|
|
|
28
29
|
[categorization_1.WorkflowTechnique.TRIAGE]: new triage_1.TriageBestPractices(),
|
|
29
30
|
[categorization_1.WorkflowTechnique.HUMAN_IN_THE_LOOP]: undefined,
|
|
30
31
|
[categorization_1.WorkflowTechnique.MONITORING]: undefined,
|
|
31
|
-
[categorization_1.WorkflowTechnique.SCHEDULING]:
|
|
32
|
+
[categorization_1.WorkflowTechnique.SCHEDULING]: new scheduling_1.SchedulingBestPractices(),
|
|
32
33
|
};
|
|
33
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/best-practices/index.ts"],"names":[],"mappings":";;;AACA,2DAAuF;AAEvF,uCAAiD;AACjD,6DAAsE;AAEtE,uDAAgE;AAChE,yDAAkE;AAClE,+DAAwE;AACxE,+DAAwE;AAExE,6CAAsD;AAItD,iDAA2D;AAC3D,mEAA2E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/best-practices/index.ts"],"names":[],"mappings":";;;AACA,2DAAuF;AAEvF,uCAAiD;AACjD,6DAAsE;AAEtE,uDAAgE;AAChE,yDAAkE;AAClE,+DAAwE;AACxE,+DAAwE;AAExE,6CAAsD;AAItD,iDAA2D;AAC3D,6CAAuD;AACvD,mEAA2E;AAC3E,qCAA+C;AAElC,QAAA,aAAa,GAAqE;IAC9F,CAAC,kCAAiB,CAAC,qBAAqB,CAAC,EAAE,IAAI,wDAAgC,EAAE;IACjF,CAAC,kCAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,8BAAoB,EAAE;IACvD,CAAC,kCAAiB,CAAC,kBAAkB,CAAC,EAAE,IAAI,mDAA8B,EAAE;IAC5E,CAAC,kCAAiB,CAAC,aAAa,CAAC,EAAE,SAAS;IAC5C,CAAC,kCAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,6CAA2B,EAAE;IACtE,CAAC,kCAAiB,CAAC,gBAAgB,CAAC,EAAE,IAAI,+CAA4B,EAAE;IACxE,CAAC,kCAAiB,CAAC,mBAAmB,CAAC,EAAE,IAAI,qDAA+B,EAAE;IAC9E,CAAC,kCAAiB,CAAC,mBAAmB,CAAC,EAAE,IAAI,qDAA+B,EAAE;IAC9E,CAAC,kCAAiB,CAAC,UAAU,CAAC,EAAE,SAAS;IACzC,CAAC,kCAAiB,CAAC,UAAU,CAAC,EAAE,IAAI,mCAAsB,EAAE;IAC5D,CAAC,kCAAiB,CAAC,cAAc,CAAC,EAAE,SAAS;IAC7C,CAAC,kCAAiB,CAAC,YAAY,CAAC,EAAE,IAAI,wCAAyB,EAAE;IACjE,CAAC,kCAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,4BAAmB,EAAE;IACrD,CAAC,kCAAiB,CAAC,iBAAiB,CAAC,EAAE,SAAS;IAChD,CAAC,kCAAiB,CAAC,UAAU,CAAC,EAAE,SAAS;IACzC,CAAC,kCAAiB,CAAC,UAAU,CAAC,EAAE,IAAI,oCAAuB,EAAE;CAC7D,CAAC"}
|