@n8n/ai-workflow-builder 0.19.0 → 0.21.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.
Files changed (75) hide show
  1. package/dist/agents/workflow-planner-agent.d.ts +58 -0
  2. package/dist/agents/workflow-planner-agent.js +269 -0
  3. package/dist/agents/workflow-planner-agent.js.map +1 -0
  4. package/dist/build.tsbuildinfo +1 -1
  5. package/dist/chains/parameter-updater.js +0 -2
  6. package/dist/chains/parameter-updater.js.map +1 -1
  7. package/dist/constants.d.ts +7 -0
  8. package/dist/constants.js +8 -1
  9. package/dist/constants.js.map +1 -1
  10. package/dist/errors/index.d.ts +7 -0
  11. package/dist/errors/index.js +16 -1
  12. package/dist/errors/index.js.map +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.js +0 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/llm-config.js +2 -1
  17. package/dist/llm-config.js.map +1 -1
  18. package/dist/tools/add-node.tool.d.ts +38 -34
  19. package/dist/tools/add-node.tool.js +17 -2
  20. package/dist/tools/add-node.tool.js.map +1 -1
  21. package/dist/tools/connect-nodes.tool.d.ts +29 -26
  22. package/dist/tools/connect-nodes.tool.js +7 -2
  23. package/dist/tools/connect-nodes.tool.js.map +1 -1
  24. package/dist/tools/get-node-parameter.tool.d.ts +18 -0
  25. package/dist/tools/get-node-parameter.tool.js +109 -0
  26. package/dist/tools/get-node-parameter.tool.js.map +1 -0
  27. package/dist/tools/helpers/progress.d.ts +1 -1
  28. package/dist/tools/helpers/progress.js +14 -2
  29. package/dist/tools/helpers/progress.js.map +1 -1
  30. package/dist/tools/helpers/validation.d.ts +1 -0
  31. package/dist/tools/helpers/validation.js +13 -0
  32. package/dist/tools/helpers/validation.js.map +1 -1
  33. package/dist/tools/node-details.tool.d.ts +20 -17
  34. package/dist/tools/node-details.tool.js +7 -2
  35. package/dist/tools/node-details.tool.js.map +1 -1
  36. package/dist/tools/node-search.tool.d.ts +54 -45
  37. package/dist/tools/node-search.tool.js +7 -2
  38. package/dist/tools/node-search.tool.js.map +1 -1
  39. package/dist/tools/prompts/main-agent.prompt.d.ts +2 -0
  40. package/dist/tools/prompts/main-agent.prompt.js +93 -42
  41. package/dist/tools/prompts/main-agent.prompt.js.map +1 -1
  42. package/dist/tools/remove-node.tool.d.ts +14 -11
  43. package/dist/tools/remove-node.tool.js +7 -2
  44. package/dist/tools/remove-node.tool.js.map +1 -1
  45. package/dist/tools/update-node-parameters.tool.d.ts +19 -16
  46. package/dist/tools/update-node-parameters.tool.js +21 -4
  47. package/dist/tools/update-node-parameters.tool.js.map +1 -1
  48. package/dist/types/index.d.ts +8 -8
  49. package/dist/types/index.js +0 -22
  50. package/dist/types/index.js.map +1 -1
  51. package/dist/types/langchain.d.ts +2 -0
  52. package/dist/types/langchain.js +7 -0
  53. package/dist/types/langchain.js.map +1 -0
  54. package/dist/types/messages.d.ts +1 -7
  55. package/dist/types/streaming.d.ts +6 -1
  56. package/dist/types/tools.d.ts +8 -1
  57. package/dist/utils/stream-processor.d.ts +7 -1
  58. package/dist/utils/stream-processor.js +121 -63
  59. package/dist/utils/stream-processor.js.map +1 -1
  60. package/dist/utils/token-usage.d.ts +3 -0
  61. package/dist/utils/token-usage.js +27 -0
  62. package/dist/utils/token-usage.js.map +1 -1
  63. package/dist/utils/trim-workflow-context.d.ts +2 -0
  64. package/dist/utils/trim-workflow-context.js +53 -0
  65. package/dist/utils/trim-workflow-context.js.map +1 -0
  66. package/dist/workflow-builder-agent.d.ts +1 -0
  67. package/dist/workflow-builder-agent.js +136 -8
  68. package/dist/workflow-builder-agent.js.map +1 -1
  69. package/dist/workflow-state.d.ts +17 -0
  70. package/dist/workflow-state.js +12 -0
  71. package/dist/workflow-state.js.map +1 -1
  72. package/package.json +6 -5
  73. package/dist/chains/planner.d.ts +0 -4
  74. package/dist/chains/planner.js +0 -87
  75. package/dist/chains/planner.js.map +0 -1
@@ -1,19 +1,22 @@
1
1
  import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
2
2
  import type { INodeTypeDescription, Logger } from 'n8n-workflow';
3
3
  import { z } from 'zod';
4
- export declare function createUpdateNodeParametersTool(nodeTypes: INodeTypeDescription[], llm: BaseChatModel, logger?: Logger, instanceUrl?: string): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
5
- nodeId: z.ZodString;
6
- changes: z.ZodArray<z.ZodString, "many">;
7
- }, "strip", z.ZodTypeAny, {
8
- nodeId: string;
9
- changes: string[];
10
- }, {
11
- nodeId: string;
12
- changes: string[];
13
- }>, {
14
- nodeId: string;
15
- changes: string[];
16
- }, {
17
- nodeId: string;
18
- changes: string[];
19
- }, import("@langchain/langgraph").Command<unknown>>;
4
+ export declare function createUpdateNodeParametersTool(nodeTypes: INodeTypeDescription[], llm: BaseChatModel, logger?: Logger, instanceUrl?: string): {
5
+ tool: import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
6
+ nodeId: z.ZodString;
7
+ changes: z.ZodArray<z.ZodString, "many">;
8
+ }, "strip", z.ZodTypeAny, {
9
+ nodeId: string;
10
+ changes: string[];
11
+ }, {
12
+ nodeId: string;
13
+ changes: string[];
14
+ }>, {
15
+ nodeId: string;
16
+ changes: string[];
17
+ }, {
18
+ nodeId: string;
19
+ changes: string[];
20
+ }, import("@langchain/langgraph").Command<unknown>>;
21
+ displayTitle: string;
22
+ };
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createUpdateNodeParametersTool = createUpdateNodeParametersTool;
4
4
  const tools_1 = require("@langchain/core/tools");
5
5
  const zod_1 = require("zod");
6
+ const trim_workflow_context_1 = require("../utils/trim-workflow-context");
6
7
  const parameter_updater_1 = require("../chains/parameter-updater");
7
8
  const errors_1 = require("../errors");
8
9
  const progress_1 = require("./helpers/progress");
@@ -10,6 +11,7 @@ const response_1 = require("./helpers/response");
10
11
  const state_1 = require("./helpers/state");
11
12
  const validation_1 = require("./helpers/validation");
12
13
  const parameter_update_utils_1 = require("./utils/parameter-update.utils");
14
+ const DISPLAY_TITLE = 'Updating node parameters';
13
15
  const updateNodeParametersSchema = zod_1.z.object({
14
16
  nodeId: zod_1.z.string().describe('The ID of the node to update'),
15
17
  changes: zod_1.z
@@ -32,7 +34,7 @@ async function processParameterUpdates(node, nodeType, nodeId, changes, state, l
32
34
  requestedChanges: changes,
33
35
  }, logger);
34
36
  const newParameters = (await parametersChain.invoke({
35
- workflow_json: workflow,
37
+ workflow_json: (0, trim_workflow_context_1.trimWorkflowJSON)(workflow),
36
38
  execution_schema: state.workflowContext?.executionSchema ?? 'NO SCHEMA',
37
39
  execution_data: state.workflowContext?.executionData ?? 'NO EXECUTION DATA YET',
38
40
  node_id: nodeId,
@@ -57,15 +59,26 @@ async function processParameterUpdates(node, nodeType, nodeId, changes, state, l
57
59
  }
58
60
  return (0, parameter_update_utils_1.fixExpressionPrefixes)(newParameters.parameters);
59
61
  }
62
+ function getCustomNodeTitle(input, nodes) {
63
+ if ('nodeId' in input && typeof input['nodeId'] === 'string') {
64
+ const targetNode = nodes?.find((node) => node.id === input.nodeId);
65
+ if (targetNode) {
66
+ return `Updating "${targetNode.name}" node parameters`;
67
+ }
68
+ }
69
+ return DISPLAY_TITLE;
70
+ }
60
71
  function createUpdateNodeParametersTool(nodeTypes, llm, logger, instanceUrl) {
61
- return (0, tools_1.tool)(async (input, config) => {
62
- const reporter = (0, progress_1.createProgressReporter)(config, 'update_node_parameters');
72
+ const dynamicTool = (0, tools_1.tool)(async (input, config) => {
73
+ const reporter = (0, progress_1.createProgressReporter)(config, 'update_node_parameters', DISPLAY_TITLE);
63
74
  try {
64
75
  const validatedInput = updateNodeParametersSchema.parse(input);
65
76
  const { nodeId, changes } = validatedInput;
66
- reporter.start(validatedInput);
67
77
  const state = (0, state_1.getWorkflowState)();
68
78
  const workflow = (0, state_1.getCurrentWorkflow)(state);
79
+ reporter.start(validatedInput, {
80
+ customDisplayTitle: getCustomNodeTitle(input, workflow.nodes),
81
+ });
69
82
  const node = (0, validation_1.validateNodeExists)(nodeId, workflow.nodes);
70
83
  if (!node) {
71
84
  const error = (0, validation_1.createNodeNotFoundError)(nodeId);
@@ -131,5 +144,9 @@ function createUpdateNodeParametersTool(nodeTypes, llm, logger, instanceUrl) {
131
144
  description: 'Update the parameters of an existing node in the workflow based on natural language changes. This tool intelligently modifies only the specified parameters while preserving others. Examples: "Set the URL to https://api.example.com", "Add authentication header", "Change method to POST", "Set the condition to check if status equals success".',
132
145
  schema: updateNodeParametersSchema,
133
146
  });
147
+ return {
148
+ tool: dynamicTool,
149
+ displayTitle: DISPLAY_TITLE,
150
+ };
134
151
  }
135
152
  //# sourceMappingURL=update-node-parameters.tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-node-parameters.tool.js","sourceRoot":"","sources":["../../src/tools/update-node-parameters.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-node-parameters.tool.js","sourceRoot":"","sources":["../../src/tools/update-node-parameters.tool.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- export * from './workflow';
2
- export * from './messages';
3
- export * from './tools';
4
- export * from './connections';
5
- export * from './streaming';
6
- export * from './nodes';
7
- export * from './config';
8
- export * from './utils';
1
+ export type * from './workflow';
2
+ export type * from './messages';
3
+ export type * from './tools';
4
+ export type * from './connections';
5
+ export type * from './streaming';
6
+ export type * from './nodes';
7
+ export type * from './config';
8
+ export type * from './utils';
@@ -1,25 +1,3 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./workflow"), exports);
18
- __exportStar(require("./messages"), exports);
19
- __exportStar(require("./tools"), exports);
20
- __exportStar(require("./connections"), exports);
21
- __exportStar(require("./streaming"), exports);
22
- __exportStar(require("./nodes"), exports);
23
- __exportStar(require("./config"), exports);
24
- __exportStar(require("./utils"), exports);
25
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,6CAA2B;AAC3B,6CAA2B;AAC3B,0CAAwB;AACxB,gDAA8B;AAC9B,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import type { AIMessage, BaseMessage } from '@langchain/core/messages';
2
+ export declare function isAIMessage(msg: BaseMessage): msg is AIMessage;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAIMessage = isAIMessage;
4
+ function isAIMessage(msg) {
5
+ return msg.getType() === 'ai';
6
+ }
7
+ //# sourceMappingURL=langchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchain.js","sourceRoot":"","sources":["../../src/types/langchain.ts"],"names":[],"mappings":";;AAEA,kCAEC;AAFD,SAAgB,WAAW,CAAC,GAAgB;IAC3C,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC;AAC/B,CAAC"}
@@ -27,12 +27,6 @@ export interface AgentChatMessage {
27
27
  title: string;
28
28
  text: string;
29
29
  }
30
- export interface PromptValidationMessage {
31
- role: 'assistant';
32
- type: 'prompt-validation';
33
- isWorkflowPrompt: boolean;
34
- id: string;
35
- }
36
- export type MessageResponse = ((AssistantChatMessage | AssistantSummaryMessage | AgentChatMessage | PromptValidationMessage) & {
30
+ export type MessageResponse = ((AssistantChatMessage | AssistantSummaryMessage | AgentChatMessage) & {
37
31
  quickReplies?: QuickReplyOption[];
38
32
  }) | EndSessionMessage;
@@ -19,7 +19,12 @@ export interface ExecutionRequestChunk {
19
19
  type: 'execution-requested';
20
20
  reason: string;
21
21
  }
22
- export type StreamChunk = AgentMessageChunk | ToolProgressChunk | WorkflowUpdateChunk | ExecutionRequestChunk;
22
+ export interface PlanChunk {
23
+ role: 'assistant';
24
+ type: 'plan';
25
+ plan: unknown;
26
+ }
27
+ export type StreamChunk = AgentMessageChunk | ToolProgressChunk | WorkflowUpdateChunk | ExecutionRequestChunk | PlanChunk;
23
28
  export interface StreamOutput {
24
29
  messages: StreamChunk[];
25
30
  }
@@ -13,6 +13,8 @@ export interface ToolProgressMessage<TToolName extends string = string> {
13
13
  toolCallId?: string;
14
14
  status: 'running' | 'completed' | 'error';
15
15
  updates: ProgressUpdate[];
16
+ displayTitle?: string;
17
+ customDisplayTitle?: string;
16
18
  }
17
19
  export interface ToolError {
18
20
  message: string;
@@ -20,7 +22,9 @@ export interface ToolError {
20
22
  details?: ZodIssue[] | Record<string, unknown>;
21
23
  }
22
24
  export interface ProgressReporter {
23
- start: <T>(input: T) => void;
25
+ start: <T>(input: T, options?: {
26
+ customDisplayTitle: string;
27
+ }) => void;
24
28
  progress: (message: string, data?: Record<string, unknown>) => void;
25
29
  complete: <T>(output: T) => void;
26
30
  error: (error: ToolError) => void;
@@ -74,3 +78,6 @@ export interface NodeSearchOutput {
74
78
  totalResults: number;
75
79
  message: string;
76
80
  }
81
+ export interface GetNodeParameterOutput {
82
+ message: string;
83
+ }
@@ -1,6 +1,12 @@
1
1
  import { AIMessage, HumanMessage, ToolMessage } from '@langchain/core/messages';
2
+ import type { DynamicStructuredTool } from '@langchain/core/tools';
2
3
  import type { StreamOutput } from '../types/streaming';
4
+ export interface BuilderTool {
5
+ tool: DynamicStructuredTool;
6
+ displayTitle: string;
7
+ getCustomDisplayTitle?: (values: Record<string, unknown>) => string;
8
+ }
3
9
  export declare const DEFAULT_WORKFLOW_UPDATE_TOOLS: string[];
4
10
  export declare function processStreamChunk(streamMode: string, chunk: unknown): StreamOutput | null;
5
11
  export declare function createStreamProcessor(stream: AsyncGenerator<[string, unknown], void, unknown>): AsyncGenerator<StreamOutput>;
6
- export declare function formatMessages(messages: Array<AIMessage | HumanMessage | ToolMessage>): Array<Record<string, unknown>>;
12
+ export declare function formatMessages(messages: Array<AIMessage | HumanMessage | ToolMessage>, builderTools?: BuilderTool[]): Array<Record<string, unknown>>;
@@ -44,14 +44,46 @@ function processStreamChunk(streamMode, chunk) {
44
44
  else {
45
45
  content = lastMessage.content;
46
46
  }
47
- const messageChunk = {
48
- role: 'assistant',
49
- type: 'message',
50
- text: content,
51
- };
52
- return { messages: [messageChunk] };
47
+ if (content) {
48
+ const messageChunk = {
49
+ role: 'assistant',
50
+ type: 'message',
51
+ text: content,
52
+ };
53
+ return { messages: [messageChunk] };
54
+ }
55
+ return null;
53
56
  }
54
57
  }
58
+ if (agentChunk?.create_plan?.workflowPlan) {
59
+ const workflowPlan = agentChunk.create_plan.workflowPlan;
60
+ const planChunk = {
61
+ role: 'assistant',
62
+ type: 'plan',
63
+ plan: workflowPlan.plan,
64
+ message: workflowPlan.intro,
65
+ };
66
+ return { messages: [planChunk] };
67
+ }
68
+ else if ((agentChunk?.create_plan?.messages ?? []).length > 0) {
69
+ const lastMessage = agentChunk.create_plan.messages[agentChunk.create_plan.messages.length - 1];
70
+ const messageChunk = {
71
+ role: 'assistant',
72
+ type: 'message',
73
+ text: lastMessage.content,
74
+ };
75
+ return { messages: [messageChunk] };
76
+ }
77
+ if (agentChunk?.adjust_plan?.workflowPlan) {
78
+ const workflowPlan = agentChunk.adjust_plan.workflowPlan;
79
+ const planChunk = {
80
+ role: 'assistant',
81
+ type: 'plan',
82
+ plan: workflowPlan.plan,
83
+ message: workflowPlan.intro,
84
+ };
85
+ return { messages: [planChunk] };
86
+ }
55
87
  if (agentChunk?.process_operations) {
56
88
  const update = agentChunk.process_operations;
57
89
  if (update.workflowJSON && update.workflowOperations !== undefined) {
@@ -81,71 +113,97 @@ async function* createStreamProcessor(stream) {
81
113
  }
82
114
  }
83
115
  }
84
- function formatMessages(messages) {
116
+ function formatHumanMessage(msg) {
117
+ return {
118
+ role: 'user',
119
+ type: 'message',
120
+ text: msg.content,
121
+ };
122
+ }
123
+ function processArrayContent(content) {
124
+ const textMessages = content.filter((c) => typeof c === 'object' && c !== null && 'type' in c && c.type === 'text' && 'text' in c);
125
+ return textMessages.map((textMessage) => ({
126
+ role: 'assistant',
127
+ type: 'message',
128
+ text: textMessage.text,
129
+ }));
130
+ }
131
+ function processAIMessageContent(msg) {
132
+ if (!msg.content) {
133
+ return [];
134
+ }
135
+ if (Array.isArray(msg.content)) {
136
+ return processArrayContent(msg.content);
137
+ }
138
+ return [
139
+ {
140
+ role: 'assistant',
141
+ type: 'message',
142
+ text: msg.content,
143
+ },
144
+ ];
145
+ }
146
+ function createToolCallMessage(toolCall, builderTool) {
147
+ if (toolCall.name === 'generate_workflow_plan') {
148
+ const workflowPlan = toolCall.args;
149
+ return {
150
+ role: 'assistant',
151
+ type: 'plan',
152
+ plan: workflowPlan.plan,
153
+ message: workflowPlan.intro,
154
+ };
155
+ }
156
+ return {
157
+ id: toolCall.id,
158
+ toolCallId: toolCall.id,
159
+ role: 'assistant',
160
+ type: 'tool',
161
+ toolName: toolCall.name,
162
+ displayTitle: builderTool?.displayTitle,
163
+ customDisplayTitle: toolCall.args && builderTool?.getCustomDisplayTitle?.(toolCall.args),
164
+ status: 'completed',
165
+ updates: [
166
+ {
167
+ type: 'input',
168
+ data: toolCall.args || {},
169
+ },
170
+ ],
171
+ };
172
+ }
173
+ function processToolCalls(toolCalls, builderTools) {
174
+ return toolCalls.map((toolCall) => {
175
+ const builderTool = builderTools?.find((bt) => bt.tool.name === toolCall.name);
176
+ return createToolCallMessage(toolCall, builderTool);
177
+ });
178
+ }
179
+ function processToolMessage(msg, formattedMessages) {
180
+ const toolCallId = msg.tool_call_id;
181
+ for (let i = formattedMessages.length - 1; i >= 0; i--) {
182
+ const m = formattedMessages[i];
183
+ if (m.type === 'tool' && m.id === toolCallId) {
184
+ m.updates ??= [];
185
+ m.updates.push({
186
+ type: 'output',
187
+ data: typeof msg.content === 'string' ? { result: msg.content } : msg.content,
188
+ });
189
+ break;
190
+ }
191
+ }
192
+ }
193
+ function formatMessages(messages, builderTools) {
85
194
  const formattedMessages = [];
86
195
  for (const msg of messages) {
87
196
  if (msg instanceof messages_1.HumanMessage) {
88
- formattedMessages.push({
89
- role: 'user',
90
- type: 'message',
91
- text: msg.content,
92
- });
197
+ formattedMessages.push(formatHumanMessage(msg));
93
198
  }
94
199
  else if (msg instanceof messages_1.AIMessage) {
95
- if (msg.content) {
96
- if (Array.isArray(msg.content)) {
97
- const textMessages = msg.content.filter((c) => c.type === 'text');
98
- textMessages.forEach((textMessage) => {
99
- if (textMessage.type !== 'text') {
100
- return;
101
- }
102
- formattedMessages.push({
103
- role: 'assistant',
104
- type: 'message',
105
- text: textMessage.text,
106
- });
107
- });
108
- }
109
- else {
110
- formattedMessages.push({
111
- role: 'assistant',
112
- type: 'message',
113
- text: msg.content,
114
- });
115
- }
116
- }
117
- if (msg.tool_calls && msg.tool_calls.length > 0) {
118
- for (const toolCall of msg.tool_calls) {
119
- formattedMessages.push({
120
- id: toolCall.id,
121
- toolCallId: toolCall.id,
122
- role: 'assistant',
123
- type: 'tool',
124
- toolName: toolCall.name,
125
- status: 'completed',
126
- updates: [
127
- {
128
- type: 'input',
129
- data: toolCall.args || {},
130
- },
131
- ],
132
- });
133
- }
200
+ formattedMessages.push(...processAIMessageContent(msg));
201
+ if (msg.tool_calls?.length) {
202
+ formattedMessages.push(...processToolCalls(msg.tool_calls, builderTools));
134
203
  }
135
204
  }
136
205
  else if (msg instanceof messages_1.ToolMessage) {
137
- const toolCallId = msg.tool_call_id;
138
- for (let i = formattedMessages.length - 1; i >= 0; i--) {
139
- const m = formattedMessages[i];
140
- if (m.type === 'tool' && m.id === toolCallId) {
141
- m.updates ??= [];
142
- m.updates.push({
143
- type: 'output',
144
- data: typeof msg.content === 'string' ? { result: msg.content } : msg.content,
145
- });
146
- break;
147
- }
148
- }
206
+ processToolMessage(msg, formattedMessages);
149
207
  }
150
208
  }
151
209
  return formattedMessages;
@@ -1 +1 @@
1
- {"version":3,"file":"stream-processor.js","sourceRoot":"","sources":["../../src/utils/stream-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-processor.js","sourceRoot":"","sources":["../../src/utils/stream-processor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { BaseMessage } from '@langchain/core/messages';
1
2
  import { AIMessage } from '@langchain/core/messages';
2
3
  export type AIMessageWithUsageMetadata = AIMessage & {
3
4
  response_metadata: {
@@ -14,3 +15,5 @@ export interface TokenUsage {
14
15
  output_tokens: number;
15
16
  }
16
17
  export declare function extractLastTokenUsage(messages: unknown[]): TokenUsage | undefined;
18
+ export declare function estimateTokenCountFromString(text: string): number;
19
+ export declare function estimateTokenCountFromMessages(messages: BaseMessage[]): number;
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractLastTokenUsage = extractLastTokenUsage;
4
+ exports.estimateTokenCountFromString = estimateTokenCountFromString;
5
+ exports.estimateTokenCountFromMessages = estimateTokenCountFromMessages;
4
6
  const messages_1 = require("@langchain/core/messages");
7
+ const constants_1 = require("../constants");
5
8
  function extractLastTokenUsage(messages) {
6
9
  const lastAiAssistantMessage = messages.findLast((m) => m instanceof messages_1.AIMessage &&
7
10
  m.response_metadata?.usage !== undefined &&
@@ -12,4 +15,28 @@ function extractLastTokenUsage(messages) {
12
15
  }
13
16
  return lastAiAssistantMessage.response_metadata.usage;
14
17
  }
18
+ function concatenateMessageContent(messages) {
19
+ return messages.reduce((acc, message) => {
20
+ if (typeof message.content === 'string') {
21
+ return acc + message.content;
22
+ }
23
+ else if (Array.isArray(message.content)) {
24
+ return (acc +
25
+ message.content.reduce((innerAcc, item) => {
26
+ if (typeof item === 'object' && item !== null && 'text' in item) {
27
+ return innerAcc + item.text;
28
+ }
29
+ return innerAcc;
30
+ }, ''));
31
+ }
32
+ return acc;
33
+ }, '');
34
+ }
35
+ function estimateTokenCountFromString(text) {
36
+ return Math.ceil(text.length / constants_1.AVG_CHARS_PER_TOKEN_ANTHROPIC);
37
+ }
38
+ function estimateTokenCountFromMessages(messages) {
39
+ const entireInput = concatenateMessageContent(messages);
40
+ return estimateTokenCountFromString(entireInput);
41
+ }
15
42
  //# sourceMappingURL=token-usage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-usage.js","sourceRoot":"","sources":["../../src/utils/token-usage.ts"],"names":[],"mappings":";;AAqBA,sDAcC;AAnCD,uDAAqD;AAqBrD,SAAgB,qBAAqB,CAAC,QAAmB;IACxD,MAAM,sBAAsB,GAAG,QAAQ,CAAC,QAAQ,CAC/C,CAAC,CAAC,EAAmC,EAAE,CACtC,CAAC,YAAY,oBAAS;QACtB,CAAC,CAAC,iBAAiB,EAAE,KAAK,KAAK,SAAS;QACxC,cAAc,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK;QAC3C,eAAe,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAC7C,CAAC;IAEF,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,sBAAsB,CAAC,iBAAiB,CAAC,KAAK,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"token-usage.js","sourceRoot":"","sources":["../../src/utils/token-usage.ts"],"names":[],"mappings":";;AAwBA,sDAcC;AAqBD,oEAEC;AAED,wEAIC;AAlED,uDAAqD;AAErD,2CAA4D;AAqB5D,SAAgB,qBAAqB,CAAC,QAAmB;IACxD,MAAM,sBAAsB,GAAG,QAAQ,CAAC,QAAQ,CAC/C,CAAC,CAAC,EAAmC,EAAE,CACtC,CAAC,YAAY,oBAAS;QACtB,CAAC,CAAC,iBAAiB,EAAE,KAAK,KAAK,SAAS;QACxC,cAAc,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK;QAC3C,eAAe,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAC7C,CAAC;IAEF,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,sBAAsB,CAAC,iBAAiB,CAAC,KAAK,CAAC;AACvD,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAuB;IACzD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,OAAO,EAAE,EAAE;QAC/C,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9B,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO,CACN,GAAG;gBACH,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAgB,EAAE,IAAI,EAAE,EAAE;oBACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACjE,OAAO,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC7B,CAAC;oBACD,OAAO,QAAQ,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC,CACN,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,EAAE,CAAC,CAAC;AACR,CAAC;AAED,SAAgB,4BAA4B,CAAC,IAAY;IACxD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,yCAA6B,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,8BAA8B,CAAC,QAAuB;IACrE,MAAM,WAAW,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAExD,OAAO,4BAA4B,CAAC,WAAW,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SimpleWorkflow } from '../types';
2
+ export declare function trimWorkflowJSON(workflow: SimpleWorkflow): SimpleWorkflow;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.trimWorkflowJSON = trimWorkflowJSON;
4
+ const constants_1 = require("../constants");
5
+ const token_usage_1 = require("../utils/token-usage");
6
+ const MAX_PARAMETER_VALUE_LENGTH_THRESHOLDS = [10000, 5000, 2000, 1000];
7
+ function trimParameterValue(value, threshold) {
8
+ if (value === undefined || value === null) {
9
+ return value;
10
+ }
11
+ const valueStr = JSON.stringify(value);
12
+ if (valueStr.length > threshold) {
13
+ if (typeof value === 'string') {
14
+ return '[Large value omitted]';
15
+ }
16
+ else if (Array.isArray(value)) {
17
+ return '[Large array omitted]';
18
+ }
19
+ else if (typeof value === 'object' && value !== null) {
20
+ return '[Large object omitted]';
21
+ }
22
+ }
23
+ return value;
24
+ }
25
+ function trimWorkflowJsonWithThreshold(workflow, threshold) {
26
+ const simplifiedWorkflow = { ...workflow };
27
+ if (simplifiedWorkflow.nodes) {
28
+ simplifiedWorkflow.nodes = simplifiedWorkflow.nodes.map((node) => {
29
+ const simplifiedNode = { ...node };
30
+ if (simplifiedNode.parameters) {
31
+ const simplifiedParameters = {};
32
+ for (const [key, value] of Object.entries(simplifiedNode.parameters)) {
33
+ simplifiedParameters[key] = trimParameterValue(value, threshold);
34
+ }
35
+ simplifiedNode.parameters = simplifiedParameters;
36
+ }
37
+ return simplifiedNode;
38
+ });
39
+ }
40
+ return simplifiedWorkflow;
41
+ }
42
+ function trimWorkflowJSON(workflow) {
43
+ for (const threshold of MAX_PARAMETER_VALUE_LENGTH_THRESHOLDS) {
44
+ const simplified = trimWorkflowJsonWithThreshold(workflow, threshold);
45
+ const workflowStr = JSON.stringify(simplified);
46
+ const estimatedTokens = (0, token_usage_1.estimateTokenCountFromString)(workflowStr);
47
+ if (estimatedTokens <= constants_1.MAX_WORKFLOW_LENGTH_TOKENS) {
48
+ return simplified;
49
+ }
50
+ }
51
+ return trimWorkflowJsonWithThreshold(workflow, MAX_PARAMETER_VALUE_LENGTH_THRESHOLDS[MAX_PARAMETER_VALUE_LENGTH_THRESHOLDS.length - 1]);
52
+ }
53
+ //# sourceMappingURL=trim-workflow-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trim-workflow-context.js","sourceRoot":"","sources":["../../src/utils/trim-workflow-context.ts"],"names":[],"mappings":";;AAoFA,4CAmBC;AArGD,2CAAyD;AAEzD,qDAAmE;AAMnE,MAAM,qCAAqC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAUxE,SAAS,kBAAkB,CAC1B,KAA6B,EAC7B,SAAiB;IAGjB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAEjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,uBAAuB,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,uBAAuB,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO,wBAAwB,CAAC;QACjC,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAUD,SAAS,6BAA6B,CACrC,QAAwB,EACxB,SAAiB;IAEjB,MAAM,kBAAkB,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC3C,IAAI,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC9B,kBAAkB,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChE,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAGnC,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;gBAC/B,MAAM,oBAAoB,GAAoB,EAAE,CAAC;gBACjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtE,oBAAoB,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAClE,CAAC;gBACD,cAAc,CAAC,UAAU,GAAG,oBAAoB,CAAC;YAClD,CAAC;YAED,OAAO,cAAc,CAAC;QACvB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC3B,CAAC;AASD,SAAgB,gBAAgB,CAAC,QAAwB;IAExD,KAAK,MAAM,SAAS,IAAI,qCAAqC,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,6BAA6B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,IAAA,0CAA4B,EAAC,WAAW,CAAC,CAAC;QAGlE,IAAI,eAAe,IAAI,sCAA0B,EAAE,CAAC;YACnD,OAAO,UAAU,CAAC;QACnB,CAAC;IACF,CAAC;IAID,OAAO,6BAA6B,CACnC,QAAQ,EACR,qCAAqC,CAAC,qCAAqC,CAAC,MAAM,GAAG,CAAC,CAAC,CACvF,CAAC;AACH,CAAC"}