@forestadmin/workflow-executor 1.32.1 → 1.33.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/errors.d.ts +3 -0
- package/dist/errors.js +9 -3
- package/dist/executors/mcp-step-executor.d.ts +7 -3
- package/dist/executors/mcp-step-executor.js +108 -91
- package/dist/executors/summary/step-execution-formatters.d.ts +3 -1
- package/dist/executors/summary/step-execution-formatters.js +37 -1
- package/dist/executors/summary/step-summary-builder.js +9 -1
- package/dist/types/step-execution-data.d.ts +4 -0
- package/package.json +1 -1
package/dist/errors.d.ts
CHANGED
|
@@ -125,6 +125,9 @@ export declare class McpToolsNotAllowedError extends WorkflowConfigurationError
|
|
|
125
125
|
export declare class McpToolNotFoundError extends WorkflowExecutorError {
|
|
126
126
|
constructor(name: string);
|
|
127
127
|
}
|
|
128
|
+
export declare class McpToolCallLimitError extends WorkflowExecutorError {
|
|
129
|
+
constructor(limit: number);
|
|
130
|
+
}
|
|
128
131
|
export declare function flattenAgentMessage(detail: string): string;
|
|
129
132
|
export declare class AgentPortError extends WorkflowExecutorError {
|
|
130
133
|
constructor(operation: string, cause: unknown);
|
package/dist/errors.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.MalformedRunError = exports.DomainValidationError = exports.HydrationFailedError = exports.InvalidStepDefinitionError = exports.RecordIdSerializationError = exports.UnsupportedStepTypeError = exports.AgentProbeError = exports.SourceRecordStepNotReachedError = exports.SourceRecordCollectionMismatchError = exports.SourceRecordMissingError = exports.InvalidPreRecordedArgsError = exports.InvalidPendingDataError = exports.PendingDataNotFoundError = exports.RunAlreadyInFlightError = exports.UserMismatchError = void 0;
|
|
3
|
+
exports.ExecutorEncryptionKeyMissingError = exports.InvalidTokenEndpointError = exports.OAuthInvalidGrantError = exports.OAuthRefreshError = exports.OAuthReauthRequiredError = exports.ConfigurationError = exports.McpToolInvocationError = exports.AiModelPortError = exports.WorkflowPortError = exports.SchemaNotCachedError = exports.AgentPortError = exports.McpToolCallLimitError = exports.McpToolNotFoundError = exports.McpToolsNotAllowedError = exports.NoMcpToolsError = exports.AiAssistUnavailableError = exports.AiInvokeTimeoutError = exports.AiModelUnusableError = exports.StepTimeoutError = exports.ActivityLogCreationError = exports.StepStateError = exports.ActionNotFoundError = exports.FieldTypeMissingError = exports.PinnedArgNotFoundError = exports.FieldNotFoundError = exports.RelationNotFoundError = exports.InvalidAiRequestError = exports.InvalidAIResponseError = exports.RelatedRecordNotFoundError = exports.NoRelationshipFieldsError = exports.RunStorePortError = exports.ApprovalRequestCreationError = exports.ActionRequiresApprovalError = exports.ActionFormValidationError = exports.UnsupportedActionFormError = exports.NoActionsError = exports.NoWritableFieldsError = exports.NoResolvedFieldsError = exports.NoReadableFieldsError = exports.NoRecordsError = exports.RecordNotFoundError = exports.MalformedToolCallError = exports.MissingToolCallError = exports.WorkflowCallSiteError = exports.WorkflowOperatorError = exports.WorkflowConfigurationError = exports.UnavailableError = exports.AccessDeniedError = exports.NotFoundError = exports.WorkflowExecutorError = void 0;
|
|
4
|
+
exports.MalformedRunError = exports.DomainValidationError = exports.HydrationFailedError = exports.InvalidStepDefinitionError = exports.RecordIdSerializationError = exports.UnsupportedStepTypeError = exports.AgentProbeError = exports.SourceRecordStepNotReachedError = exports.SourceRecordCollectionMismatchError = exports.SourceRecordMissingError = exports.InvalidPreRecordedArgsError = exports.InvalidPendingDataError = exports.PendingDataNotFoundError = exports.RunAlreadyInFlightError = exports.UserMismatchError = exports.RunNotFoundError = void 0;
|
|
5
5
|
exports.causeMessage = causeMessage;
|
|
6
6
|
exports.extractErrorMessage = extractErrorMessage;
|
|
7
7
|
exports.isAiConfigurationError = isAiConfigurationError;
|
|
@@ -320,6 +320,12 @@ class McpToolNotFoundError extends WorkflowExecutorError {
|
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
322
|
exports.McpToolNotFoundError = McpToolNotFoundError;
|
|
323
|
+
class McpToolCallLimitError extends WorkflowExecutorError {
|
|
324
|
+
constructor(limit) {
|
|
325
|
+
super(`AI asked for more than ${limit} MCP tool calls in one step`, `The AI needed more than ${limit} tool calls to complete this step. Try narrowing the step's prompt.`);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
exports.McpToolCallLimitError = McpToolCallLimitError;
|
|
323
329
|
const AGENT_ERROR_MESSAGE_MAX_LENGTH = 500;
|
|
324
330
|
function isAgentHttpResponse(cause) {
|
|
325
331
|
return cause instanceof Error && typeof cause.status === 'number';
|
|
@@ -566,4 +572,4 @@ class MalformedRunError extends WorkflowExecutorError {
|
|
|
566
572
|
}
|
|
567
573
|
}
|
|
568
574
|
exports.MalformedRunError = MalformedRunError;
|
|
569
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBU0Esb0NBSUM7QUFJRCxrREFZQztBQTRURCx3REFNQztBQTJFRCxrREFXQztBQTlhRCw0REFBK0Q7QUFFL0QsU0FBZ0IsWUFBWSxDQUFDLEtBQWM7SUFDekMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBd0IsQ0FBQztJQUV2RCxPQUFPLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM1RCxDQUFDO0FBRUQsZ0dBQWdHO0FBQ2hHLHNHQUFzRztBQUN0RyxTQUFnQixtQkFBbUIsQ0FBQyxHQUFhO0lBQy9DLElBQUksR0FBRyxLQUFLLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUN4QyxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsSUFBSSxHQUFHLENBQUMsT0FBTztRQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUVwQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBMkIsQ0FBQztJQUMvQyxJQUFJLE1BQU0sWUFBWSxLQUFLLElBQUksTUFBTSxDQUFDLE9BQU87UUFBRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFFckUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQTBCLENBQUM7SUFDN0MsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPO1FBQUUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBRWxFLE9BQU8sR0FBRyxDQUFDLElBQUksSUFBSSxlQUFlLENBQUM7QUFDckMsQ0FBQztBQUVELE1BQXNCLHFCQUFzQixTQUFRLEtBQUs7SUFZdkQs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
|
|
575
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBU0Esb0NBSUM7QUFJRCxrREFZQztBQTRURCx3REFNQztBQW9GRCxrREFXQztBQXZiRCw0REFBK0Q7QUFFL0QsU0FBZ0IsWUFBWSxDQUFDLEtBQWM7SUFDekMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBd0IsQ0FBQztJQUV2RCxPQUFPLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM1RCxDQUFDO0FBRUQsZ0dBQWdHO0FBQ2hHLHNHQUFzRztBQUN0RyxTQUFnQixtQkFBbUIsQ0FBQyxHQUFhO0lBQy9DLElBQUksR0FBRyxLQUFLLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUN4QyxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsSUFBSSxHQUFHLENBQUMsT0FBTztRQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUVwQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBMkIsQ0FBQztJQUMvQyxJQUFJLE1BQU0sWUFBWSxLQUFLLElBQUksTUFBTSxDQUFDLE9BQU87UUFBRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFFckUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQTBCLENBQUM7SUFDN0MsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPO1FBQUUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBRWxFLE9BQU8sR0FBRyxDQUFDLElBQUksSUFBSSxlQUFlLENBQUM7QUFDckMsQ0FBQztBQUVELE1BQXNCLHFCQUFzQixTQUFRLEtBQUs7SUFZdkQs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
|
|
@@ -8,6 +8,7 @@ export default class McpStepExecutor extends BaseStepExecutor<McpStepDefinition>
|
|
|
8
8
|
private readonly mcpServerName?;
|
|
9
9
|
private readonly reloadWithFreshAuth?;
|
|
10
10
|
private allowedRemoteTools?;
|
|
11
|
+
private deadline?;
|
|
11
12
|
constructor(context: ExecutionContext<McpStepDefinition>, remoteTools: readonly RemoteTool[], mcpServerName?: string, reloadWithFreshAuth?: () => Promise<RemoteTool[]>);
|
|
12
13
|
protected getExtraLogContext(): Record<string, unknown>;
|
|
13
14
|
protected buildOutcomeResult(outcome: {
|
|
@@ -21,10 +22,13 @@ export default class McpStepExecutor extends BaseStepExecutor<McpStepDefinition>
|
|
|
21
22
|
protected doExecute(): Promise<StepExecutionResult>;
|
|
22
23
|
private clearReauthPauseState;
|
|
23
24
|
private runStep;
|
|
24
|
-
private
|
|
25
|
+
private throwIfTimedOut;
|
|
26
|
+
private continueLoop;
|
|
27
|
+
private executeCall;
|
|
28
|
+
private persistFinalAnswer;
|
|
25
29
|
private invokeWithReauthRetry;
|
|
26
|
-
private
|
|
27
|
-
private
|
|
30
|
+
private selectNextMove;
|
|
31
|
+
private buildRequest;
|
|
28
32
|
private requireTools;
|
|
29
33
|
private filterAllowedTools;
|
|
30
34
|
}
|
|
@@ -7,12 +7,28 @@ const ai_proxy_1 = require("@forestadmin/ai-proxy");
|
|
|
7
7
|
const zod_1 = require("zod");
|
|
8
8
|
const errors_1 = require("../errors");
|
|
9
9
|
const base_step_executor_1 = __importDefault(require("./base-step-executor"));
|
|
10
|
+
const step_execution_formatters_1 = __importDefault(require("./summary/step-execution-formatters"));
|
|
10
11
|
const step_definition_1 = require("../types/validated/step-definition");
|
|
11
|
-
const
|
|
12
|
-
|
|
12
|
+
const MAX_TOOL_CALLS = 10;
|
|
13
|
+
const COMPLETE_STEP_TOOL = new ai_proxy_1.DynamicStructuredTool({
|
|
14
|
+
name: 'complete-step',
|
|
15
|
+
description: 'Ends the step with the final answer for the user. Call it once the request is fulfilled, ' +
|
|
16
|
+
'or when no further tool call can help.',
|
|
17
|
+
schema: zod_1.z.object({
|
|
18
|
+
summary: zod_1.z
|
|
19
|
+
.string()
|
|
20
|
+
.min(1)
|
|
21
|
+
.describe('Concise human-readable answer: what was done and what was found.'),
|
|
22
|
+
}),
|
|
23
|
+
func: undefined,
|
|
24
|
+
});
|
|
25
|
+
const MCP_TASK_SYSTEM_PROMPT = `You are an AI agent fulfilling a user request by calling the tools available to you.
|
|
26
|
+
Call one tool at a time and fill in its parameters precisely. The result of every call is shown to you before you choose the next one.
|
|
13
27
|
|
|
14
28
|
Important rules:
|
|
15
|
-
-
|
|
29
|
+
- Call only the tools directly relevant to the request.
|
|
30
|
+
- You can make at most ${MAX_TOOL_CALLS} tool calls.
|
|
31
|
+
- Once the request is fulfilled, or no further tool call can help, call "${COMPLETE_STEP_TOOL.name}" with a concise answer for the user. Be factual and do not include raw JSON or technical identifiers.
|
|
16
32
|
- Final answer is definitive, you won't receive any other input from the user.`;
|
|
17
33
|
class McpStepExecutor extends base_step_executor_1.default {
|
|
18
34
|
constructor(context, remoteTools, mcpServerName, reloadWithFreshAuth) {
|
|
@@ -48,6 +64,9 @@ class McpStepExecutor extends base_step_executor_1.default {
|
|
|
48
64
|
return null;
|
|
49
65
|
}
|
|
50
66
|
async doExecute() {
|
|
67
|
+
const { stepTimeoutS } = this.context;
|
|
68
|
+
if (stepTimeoutS && stepTimeoutS > 0)
|
|
69
|
+
this.deadline = Date.now() + stepTimeoutS * 1000;
|
|
51
70
|
try {
|
|
52
71
|
return await this.runStep();
|
|
53
72
|
}
|
|
@@ -64,13 +83,13 @@ class McpStepExecutor extends base_step_executor_1.default {
|
|
|
64
83
|
throw error;
|
|
65
84
|
}
|
|
66
85
|
}
|
|
67
|
-
// Keep a
|
|
68
|
-
//
|
|
86
|
+
// Keep a record carrying an approved call or completed calls (clear only the marker) so resume
|
|
87
|
+
// replays or continues from them; delete an empty one, which would mis-route resume into confirmation.
|
|
69
88
|
async clearReauthPauseState() {
|
|
70
89
|
const existing = await this.findPendingExecution('mcp');
|
|
71
90
|
if (!existing)
|
|
72
91
|
return;
|
|
73
|
-
if (existing.pendingData) {
|
|
92
|
+
if (existing.pendingData || existing.toolCalls?.length) {
|
|
74
93
|
await this.context.runStore.saveStepExecution(this.context.runId, {
|
|
75
94
|
...existing,
|
|
76
95
|
idempotencyPhase: undefined,
|
|
@@ -81,32 +100,51 @@ class McpStepExecutor extends base_step_executor_1.default {
|
|
|
81
100
|
}
|
|
82
101
|
}
|
|
83
102
|
async runStep() {
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
103
|
+
const execution = await this.patchAndReloadPendingData(this.context.incomingPendingData);
|
|
104
|
+
// Only a re-authentication pause leaves completed calls with none pending: carry on from them.
|
|
105
|
+
if (execution?.toolCalls?.length && !execution.pendingData) {
|
|
106
|
+
return this.continueLoop(execution);
|
|
87
107
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
108
|
+
if (execution) {
|
|
109
|
+
return this.handleConfirmationFlow(execution, async (accepted) => this.continueLoop(await this.executeCall(accepted.pendingData, accepted)));
|
|
110
|
+
}
|
|
111
|
+
return this.continueLoop({ type: 'mcp', stepIndex: this.context.stepIndex, toolCalls: [] });
|
|
112
|
+
}
|
|
113
|
+
// The base reports a timeout without cancelling this work, so the loop stops itself: a step
|
|
114
|
+
// already reported as timed out must not go on calling tools in the background.
|
|
115
|
+
throwIfTimedOut() {
|
|
116
|
+
if (this.deadline !== undefined && Date.now() >= this.deadline) {
|
|
117
|
+
throw new errors_1.StepTimeoutError(this.context.stepTimeoutS);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async continueLoop(execution) {
|
|
121
|
+
this.throwIfTimedOut();
|
|
122
|
+
const toolCalls = execution.toolCalls ?? [];
|
|
123
|
+
const next = await this.selectNextMove(toolCalls);
|
|
124
|
+
if ('summary' in next)
|
|
125
|
+
return this.persistFinalAnswer(execution, toolCalls, next.summary);
|
|
126
|
+
if (toolCalls.length >= MAX_TOOL_CALLS)
|
|
127
|
+
throw new errors_1.McpToolCallLimitError(MAX_TOOL_CALLS);
|
|
94
128
|
if (this.context.stepDefinition.executionType === step_definition_1.StepExecutionMode.FullyAutomated) {
|
|
95
|
-
return this.
|
|
129
|
+
return this.continueLoop(await this.executeCall(next, execution));
|
|
96
130
|
}
|
|
131
|
+
// A fresh confirmation for the next call: the previous one must not approve it.
|
|
97
132
|
await this.context.runStore.saveStepExecution(this.context.runId, {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
pendingData:
|
|
133
|
+
...execution,
|
|
134
|
+
toolCalls,
|
|
135
|
+
pendingData: next,
|
|
136
|
+
userConfirmation: undefined,
|
|
137
|
+
idempotencyPhase: undefined,
|
|
101
138
|
});
|
|
102
139
|
return this.buildOutcomeResult({ status: 'awaiting-input' });
|
|
103
140
|
}
|
|
104
|
-
async
|
|
141
|
+
async executeCall(target, execution) {
|
|
142
|
+
this.throwIfTimedOut();
|
|
105
143
|
const tools = this.requireTools();
|
|
106
144
|
const tool = tools.find(t => t.base.name === target.name && t.sourceId === target.sourceId);
|
|
107
145
|
if (!tool)
|
|
108
146
|
throw new errors_1.McpToolNotFoundError(target.name);
|
|
109
|
-
const
|
|
147
|
+
const result = await this.context.activityLog.track({
|
|
110
148
|
action: 'action',
|
|
111
149
|
type: 'write',
|
|
112
150
|
label: this.context.stepDefinition.mcpServerId,
|
|
@@ -115,52 +153,38 @@ class McpStepExecutor extends base_step_executor_1.default {
|
|
|
115
153
|
}, {
|
|
116
154
|
operation: () => this.invokeWithReauthRetry(tool, target),
|
|
117
155
|
beforeCall: () => this.context.runStore.saveStepExecution(this.context.runId, {
|
|
118
|
-
...
|
|
119
|
-
type: 'mcp',
|
|
120
|
-
stepIndex: this.context.stepIndex,
|
|
156
|
+
...execution,
|
|
121
157
|
idempotencyPhase: 'executing',
|
|
122
158
|
}),
|
|
123
159
|
});
|
|
124
|
-
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
...
|
|
128
|
-
|
|
129
|
-
stepIndex: this.context.stepIndex,
|
|
130
|
-
executionParams: { name: target.name, sourceId: target.sourceId, input: target.input },
|
|
131
|
-
executionResult: baseExecutionResult,
|
|
132
|
-
idempotencyPhase: 'done',
|
|
160
|
+
const { name, sourceId, input } = target;
|
|
161
|
+
const executed = {
|
|
162
|
+
...execution,
|
|
163
|
+
toolCalls: [...(execution.toolCalls ?? []), { name, sourceId, input, result }],
|
|
164
|
+
idempotencyPhase: 'executing',
|
|
133
165
|
};
|
|
134
|
-
await this.context.runStore.saveStepExecution(this.context.runId,
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
this.context.logger('Error', 'MCP tool result formatted but enriched state could not be persisted', {
|
|
157
|
-
runId: this.context.runId,
|
|
158
|
-
stepIndex: this.context.stepIndex,
|
|
159
|
-
toolName: target.name,
|
|
160
|
-
cause: cause instanceof Error ? cause.message : String(cause),
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
}
|
|
166
|
+
await this.context.runStore.saveStepExecution(this.context.runId, executed);
|
|
167
|
+
return executed;
|
|
168
|
+
}
|
|
169
|
+
async persistFinalAnswer(execution, toolCalls, summary) {
|
|
170
|
+
const lastCall = toolCalls[toolCalls.length - 1];
|
|
171
|
+
await this.context.runStore.saveStepExecution(this.context.runId, {
|
|
172
|
+
...execution,
|
|
173
|
+
toolCalls,
|
|
174
|
+
...(lastCall && {
|
|
175
|
+
executionParams: {
|
|
176
|
+
name: lastCall.name,
|
|
177
|
+
sourceId: lastCall.sourceId,
|
|
178
|
+
input: lastCall.input,
|
|
179
|
+
},
|
|
180
|
+
}),
|
|
181
|
+
executionResult: {
|
|
182
|
+
success: true,
|
|
183
|
+
toolResult: lastCall?.result ?? null,
|
|
184
|
+
...(summary && { formattedResponse: summary }),
|
|
185
|
+
},
|
|
186
|
+
idempotencyPhase: 'done',
|
|
187
|
+
});
|
|
164
188
|
return this.buildOutcomeResult({ status: 'success' });
|
|
165
189
|
}
|
|
166
190
|
// No-op for bearer/none steps (no reloadWithFreshAuth). For an OAuth2 step, a 401 on the call means
|
|
@@ -204,38 +228,31 @@ class McpStepExecutor extends base_step_executor_1.default {
|
|
|
204
228
|
}
|
|
205
229
|
}
|
|
206
230
|
}
|
|
207
|
-
async
|
|
208
|
-
|
|
209
|
-
return null;
|
|
210
|
-
const resultStr = typeof toolResult === 'string' ? toolResult : JSON.stringify(toolResult);
|
|
211
|
-
const truncatedResult = resultStr.length > 20000 ? `${resultStr.slice(0, 20000)}\n... [truncated]` : resultStr;
|
|
212
|
-
const summaryTool = new ai_proxy_1.DynamicStructuredTool({
|
|
213
|
-
name: 'summarize-result',
|
|
214
|
-
description: 'Provides a human-readable summary of the tool execution result.',
|
|
215
|
-
schema: zod_1.z.object({
|
|
216
|
-
summary: zod_1.z.string().min(1).describe('Concise human-readable summary of the tool result.'),
|
|
217
|
-
}),
|
|
218
|
-
func: undefined,
|
|
219
|
-
});
|
|
220
|
-
const messages = [
|
|
221
|
-
this.buildContextMessage(),
|
|
222
|
-
new ai_proxy_1.SystemMessage('You are summarizing the result of a workflow tool execution for the end user. ' +
|
|
223
|
-
'Be concise and factual. Do not include raw JSON or technical identifiers.'),
|
|
224
|
-
new ai_proxy_1.HumanMessage(`Tool "${tool.name}" was executed with input: ${JSON.stringify(tool.input)}.\n` +
|
|
225
|
-
`Result: ${truncatedResult}\n\n` +
|
|
226
|
-
`Provide a concise human-readable summary.`),
|
|
227
|
-
];
|
|
228
|
-
const { summary } = await this.invokeWithTool(messages, summaryTool);
|
|
229
|
-
return summary || null;
|
|
230
|
-
}
|
|
231
|
-
async selectTool(tools) {
|
|
231
|
+
async selectNextMove(toolCalls) {
|
|
232
|
+
const tools = this.requireTools();
|
|
232
233
|
const messages = [
|
|
233
234
|
this.buildContextMessage(),
|
|
234
235
|
...(await this.buildPreviousStepsMessages()),
|
|
235
236
|
new ai_proxy_1.SystemMessage(MCP_TASK_SYSTEM_PROMPT),
|
|
236
|
-
new ai_proxy_1.HumanMessage(
|
|
237
|
+
new ai_proxy_1.HumanMessage(this.buildRequest(toolCalls)),
|
|
237
238
|
];
|
|
238
|
-
|
|
239
|
+
const { toolName, args } = await this.invokeWithTools(messages, [
|
|
240
|
+
...tools.map(t => t.base),
|
|
241
|
+
COMPLETE_STEP_TOOL,
|
|
242
|
+
]);
|
|
243
|
+
if (toolName === COMPLETE_STEP_TOOL.name) {
|
|
244
|
+
return { summary: typeof args.summary === 'string' ? args.summary : '' };
|
|
245
|
+
}
|
|
246
|
+
const selectedTool = tools.find(t => t.base.name === toolName);
|
|
247
|
+
if (!selectedTool)
|
|
248
|
+
throw new errors_1.McpToolNotFoundError(toolName);
|
|
249
|
+
return { name: toolName, sourceId: selectedTool.sourceId, input: args };
|
|
250
|
+
}
|
|
251
|
+
buildRequest(toolCalls) {
|
|
252
|
+
const request = `**Request**: ${this.context.stepDefinition.prompt ?? 'Execute the relevant tool.'}`;
|
|
253
|
+
if (!toolCalls.length)
|
|
254
|
+
return request;
|
|
255
|
+
return `${request}\n\n**Tool calls already made in this step** (oldest first):\n${step_execution_formatters_1.default.formatMcpToolCalls(toolCalls)}`;
|
|
239
256
|
}
|
|
240
257
|
// Tools are pre-scoped to step.mcpServerId upstream. An empty list means either no config
|
|
241
258
|
// matched, or the per-server connection failed at load time (McpClient swallows per-server
|
|
@@ -272,4 +289,4 @@ class McpStepExecutor extends base_step_executor_1.default {
|
|
|
272
289
|
}
|
|
273
290
|
}
|
|
274
291
|
exports.default = McpStepExecutor;
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWNwLXN0ZXAtZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhlY3V0b3JzL21jcC1zdGVwLWV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBVUEsb0RBSytCO0FBQy9CLDZCQUF3QjtBQUV4QixzQ0FPbUI7QUFDbkIsOEVBQW9EO0FBQ3BELHdFQUF1RTtBQUV2RSxNQUFNLHNCQUFzQixHQUFHOzs7OzsrRUFLZ0QsQ0FBQztBQUVoRixNQUFxQixlQUFnQixTQUFRLDRCQUFtQztJQVM5RSxZQUNFLE9BQTRDLEVBQzVDLFdBQWtDLEVBQ2xDLGFBQXNCLEVBQ3RCLG1CQUFpRDtRQUVqRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztJQUVrQixrQkFBa0I7UUFDbkMsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXO1lBQ3BELGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtTQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVTLGtCQUFrQixDQUFDLE9BTTVCO1FBQ0MsT0FBTztZQUNMLFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUsS0FBSztnQkFDWCxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUNqQyxHQUFHLE9BQU87YUFDWDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRWtCLEtBQUssQ0FBQyxnQkFBZ0I7UUFDdkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQXVCLEtBQUssQ0FBQyxDQUFDO1FBRTlFLElBQUks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
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWNwLXN0ZXAtZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhlY3V0b3JzL21jcC1zdGVwLWV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBY0Esb0RBSytCO0FBQy9CLDZCQUF3QjtBQUV4QixzQ0FTbUI7QUFDbkIsOEVBQW9EO0FBQ3BELG9HQUEwRTtBQUMxRSx3RUFBdUU7QUFFdkUsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBRTFCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxnQ0FBcUIsQ0FBQztJQUNuRCxJQUFJLEVBQUUsZUFBZTtJQUNyQixXQUFXLEVBQ1QsMkZBQTJGO1FBQzNGLHdDQUF3QztJQUMxQyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNmLE9BQU8sRUFBRSxPQUFDO2FBQ1AsTUFBTSxFQUFFO2FBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNOLFFBQVEsQ0FBQyxrRUFBa0UsQ0FBQztLQUNoRixDQUFDO0lBQ0YsSUFBSSxFQUFFLFNBQVM7Q0FDaEIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxzQkFBc0IsR0FBRzs7Ozs7eUJBS04sY0FBYzsyRUFDb0Msa0JBQWtCLENBQUMsSUFBSTsrRUFDbkIsQ0FBQztBQUVoRixNQUFxQixlQUFnQixTQUFRLDRCQUFtQztJQVc5RSxZQUNFLE9BQTRDLEVBQzVDLFdBQWtDLEVBQ2xDLGFBQXNCLEVBQ3RCLG1CQUFpRDtRQUVqRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztJQUVrQixrQkFBa0I7UUFDbkMsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFX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
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { StepExecutionData } from '../../types/step-execution-data';
|
|
1
|
+
import type { McpExecutedToolCall, StepExecutionData } from '../../types/step-execution-data';
|
|
2
2
|
export default class StepExecutionFormatters {
|
|
3
3
|
static format(execution: StepExecutionData): string | null;
|
|
4
4
|
private static formatTriggerAction;
|
|
5
|
+
static formatMcpToolCalls(toolCalls: McpExecutedToolCall[]): string;
|
|
6
|
+
static formatMcpCallsWithoutAnswer(execution: StepExecutionData): string | null;
|
|
5
7
|
private static formatMcp;
|
|
6
8
|
private static formatGuidance;
|
|
7
9
|
private static formatLoadRelatedRecord;
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// Caps each result, not the total: every decision of an MCP step replays all of its results, so up
|
|
4
|
+
// to its call limit × 20k characters. Cap the total if a model's context window falls short.
|
|
5
|
+
const MAX_TOOL_RESULT_LENGTH = 20000;
|
|
6
|
+
function formatToolResult(result) {
|
|
7
|
+
const text = typeof result === 'string' ? result : String(JSON.stringify(result));
|
|
8
|
+
return text.length > MAX_TOOL_RESULT_LENGTH
|
|
9
|
+
? `${text.slice(0, MAX_TOOL_RESULT_LENGTH)}\n... [truncated]`
|
|
10
|
+
: text;
|
|
11
|
+
}
|
|
3
12
|
class StepExecutionFormatters {
|
|
4
13
|
// Returns null when no custom format is defined for the step type or when execution data
|
|
5
14
|
// doesn't satisfy formatter preconditions — caller falls back to generic Input:/Output:.
|
|
@@ -45,6 +54,33 @@ class StepExecutionFormatters {
|
|
|
45
54
|
}
|
|
46
55
|
return lines.join('\n');
|
|
47
56
|
}
|
|
57
|
+
static formatMcpToolCalls(toolCalls) {
|
|
58
|
+
return toolCalls
|
|
59
|
+
.map((call, i) => `${i + 1}. "${call.name}" with input ${JSON.stringify(call.input)}\n` +
|
|
60
|
+
`Result: ${formatToolResult(call.result)}`)
|
|
61
|
+
.join('\n\n');
|
|
62
|
+
}
|
|
63
|
+
// An MCP step ending without its answer (handled manually, rejected, failed) still made its calls,
|
|
64
|
+
// and nothing else in its record tells a later step that they ran.
|
|
65
|
+
static formatMcpCallsWithoutAnswer(execution) {
|
|
66
|
+
if (execution.type !== 'mcp' || !execution.toolCalls?.length)
|
|
67
|
+
return null;
|
|
68
|
+
const { executionResult, pendingData, userConfirmation } = execution;
|
|
69
|
+
if (executionResult && 'success' in executionResult && executionResult.formattedResponse) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const lines = [
|
|
73
|
+
` Tool calls made (oldest first):\n${StepExecutionFormatters.formatMcpToolCalls(execution.toolCalls)}`,
|
|
74
|
+
];
|
|
75
|
+
if (executionResult && 'skipped' in executionResult) {
|
|
76
|
+
lines.push(` The user rejected the next call: ${JSON.stringify(pendingData)}`);
|
|
77
|
+
}
|
|
78
|
+
else if (pendingData && !userConfirmation) {
|
|
79
|
+
// An approved call is already among those made.
|
|
80
|
+
lines.push(` Next call proposed, never made: ${JSON.stringify(pendingData)}`);
|
|
81
|
+
}
|
|
82
|
+
return lines.join('\n');
|
|
83
|
+
}
|
|
48
84
|
static formatMcp(execution) {
|
|
49
85
|
const { executionResult } = execution;
|
|
50
86
|
if (!executionResult)
|
|
@@ -80,4 +116,4 @@ class StepExecutionFormatters {
|
|
|
80
116
|
}
|
|
81
117
|
}
|
|
82
118
|
exports.default = StepExecutionFormatters;
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1leGVjdXRpb24tZm9ybWF0dGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGVjdXRvcnMvc3VtbWFyeS9zdGVwLWV4ZWN1dGlvbi1mb3JtYXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0EsbUdBQW1HO0FBQ25HLDZGQUE2RjtBQUM3RixNQUFNLHNCQUFzQixHQUFHLEtBQU0sQ0FBQztBQUV0QyxTQUFTLGdCQUFnQixDQUFDLE1BQWU7SUFDdkMsTUFBTSxJQUFJLEdBQUcsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFbEYsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLHNCQUFzQjtRQUN6QyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxzQkFBc0IsQ0FBQyxtQkFBbUI7UUFDN0QsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNYLENBQUM7QUFFRCxNQUFxQix1QkFBdUI7SUFDMUMseUZBQXlGO0lBQ3pGLHlGQUF5RjtJQUN6RixNQUFNLENBQUMsTUFBTSxDQUFDLFNBQTRCO1FBQ3hDLFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLEtBQUsscUJBQXFCO2dCQUN4QixPQUFPLHVCQUF1QixDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BFLEtBQUssS0FBSztnQkFDUixPQUFPLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxTQUFpQyxDQUFDLENBQUM7WUFDOUUsS0FBSyxVQUFVO2dCQUNiLE9BQU8sdUJBQXVCLENBQUMsY0FBYyxDQUFDLFNBQXNDLENBQUMsQ0FBQztZQUN4RixLQUFLLGdCQUFnQjtnQkFDbkIsT0FBTyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FDaEQsU0FBaUQsQ0FDbEQs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
|
|
@@ -10,6 +10,14 @@ class StepSummaryBuilder {
|
|
|
10
10
|
const header = `Step "${stepOutcome.stepId}" (index ${stepOutcome.stepIndex}):`;
|
|
11
11
|
const lines = [header, ` Prompt: ${prompt}`];
|
|
12
12
|
if (execution !== undefined) {
|
|
13
|
+
const mcpCalls = step_execution_formatters_1.default.formatMcpCallsWithoutAnswer(execution);
|
|
14
|
+
if (mcpCalls !== null) {
|
|
15
|
+
lines.push(mcpCalls);
|
|
16
|
+
if (stepOutcome.status === 'success' && execution.executionResult === undefined) {
|
|
17
|
+
lines.push(` Note: the user handled this step manually — the actual outcome may differ from the calls above.`);
|
|
18
|
+
}
|
|
19
|
+
return lines.join('\n');
|
|
20
|
+
}
|
|
13
21
|
// Detect "handled manually": executor proposed an action (pendingData) but the user
|
|
14
22
|
// completed the step on the frontend without going through the trigger endpoint, so the
|
|
15
23
|
// executor never wrote executionResult. Normal completions (confirmation flow, skip, Branch B)
|
|
@@ -51,4 +59,4 @@ class StepSummaryBuilder {
|
|
|
51
59
|
}
|
|
52
60
|
}
|
|
53
61
|
exports.default = StepSummaryBuilder;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1zdW1tYXJ5LWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXhlY3V0b3JzL3N1bW1hcnkvc3RlcC1zdW1tYXJ5LWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSw0RkFBa0U7QUFFbEUsTUFBcUIsa0JBQWtCO0lBQ3JDLE1BQU0sQ0FBQyxLQUFLLENBQ1YsSUFBb0IsRUFDcEIsV0FBd0IsRUFDeEIsU0FBd0M7UUFFeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsU0FBUyxXQUFXLENBQUMsTUFBTSxZQUFZLFdBQVcsQ0FBQyxTQUFTLElBQUksQ0FBQztRQUNoRixNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRSxhQUFhLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFOUMsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsTUFBTSxRQUFRLEdBQUcsbUNBQXVCLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFaEYsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRXJCLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksU0FBUyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDaEYsS0FBSyxDQUFDLElBQUksQ0FDUixtR0FBbUcsQ0FDcEcsQ0FBQztnQkFDSixDQUFDO2dCQUVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1lBRUQsb0ZBQW9GO1lBQ3BGLHdGQUF3RjtZQUN4RiwrRkFBK0Y7WUFDL0YsNkRBQTZEO1lBQzdELElBQ0UsV0FBVyxDQUFDLE1BQU0sS0FBSyxTQUFTO2dCQUNoQyxhQUFhLElBQUksU0FBUztnQkFDMUIsU0FBUyxDQUFDLFdBQVcsS0FBSyxTQUFTO2dCQUNuQyxTQUFTLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFDdkMsQ0FBQztnQkFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxLQUFLLENBQUMsSUFBSSxDQUNSLHNHQUFzRyxDQUN2RyxDQUFDO2dCQUVGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1lBRUQsMEZBQTBGO1lBQzFGLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxlQUFlO2dCQUMxQyxDQUFDLENBQUMsbUNBQXVCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUVULElBQUksVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLGlCQUFpQixJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUM5RSxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RSxDQUFDO3FCQUFNLElBQUksYUFBYSxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUM3RSxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRSxDQUFDO2dCQUVELElBQUksU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUM5QixLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RSxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sK0ZBQStGO1lBQy9GLGlHQUFpRztZQUNqRyxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQ25GLFdBQVcsQ0FBQztZQUNkLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQXZFRCxxQ0F1RUMifQ==
|
|
@@ -131,8 +131,12 @@ export interface McpToolRef {
|
|
|
131
131
|
export interface McpToolCall extends McpToolRef {
|
|
132
132
|
input: Record<string, unknown>;
|
|
133
133
|
}
|
|
134
|
+
export interface McpExecutedToolCall extends McpToolCall {
|
|
135
|
+
result: unknown;
|
|
136
|
+
}
|
|
134
137
|
export interface McpStepExecutionData extends MutatingStepExecutionData, WithUserConfirmation<McpConfirmation> {
|
|
135
138
|
type: 'mcp';
|
|
139
|
+
toolCalls?: McpExecutedToolCall[];
|
|
136
140
|
executionParams?: McpToolCall;
|
|
137
141
|
executionResult?: {
|
|
138
142
|
success: true;
|