refactor(core): replace positional execute params with ExecuteOptions bag (#22674)

This commit is contained in:
Adam Weidman
2026-03-16 17:50:24 -04:00
committed by GitHub
parent 990d010ecf
commit 605432ea70
10 changed files with 50 additions and 50 deletions
+13 -5
View File
@@ -22,6 +22,15 @@ import {
import { type ApprovalMode } from '../policy/types.js';
import type { SubagentProgress } from '../agents/types.js';
/**
* Options bag for tool execution, replacing positional parameters that are
* only relevant to specific tool types.
*/
export interface ExecuteOptions {
shellExecutionConfig?: ShellExecutionConfig;
setExecutionIdCallback?: (executionId: number) => void;
}
/**
* Represents a validated and ready-to-execute tool call.
* An instance of this is created by a `ToolBuilder`.
@@ -68,8 +77,7 @@ export interface ToolInvocation<
execute(
signal: AbortSignal,
updateOutput?: (output: ToolLiveOutput) => void,
shellExecutionConfig?: ShellExecutionConfig,
setExecutionIdCallback?: (executionId: number) => void,
options?: ExecuteOptions,
): Promise<TResult>;
/**
@@ -325,7 +333,7 @@ export abstract class BaseToolInvocation<
abstract execute(
signal: AbortSignal,
updateOutput?: (output: ToolLiveOutput) => void,
shellExecutionConfig?: ShellExecutionConfig,
options?: ExecuteOptions,
): Promise<TResult>;
}
@@ -522,10 +530,10 @@ export abstract class DeclarativeTool<
params: TParams,
signal: AbortSignal,
updateOutput?: (output: ToolLiveOutput) => void,
shellExecutionConfig?: ShellExecutionConfig,
options?: ExecuteOptions,
): Promise<TResult> {
const invocation = this.build(params);
return invocation.execute(signal, updateOutput, shellExecutionConfig);
return invocation.execute(signal, updateOutput, options);
}
/**