(
tools: Array<AnyTool>,
name: string,
args: unknown,
options: { context?: unknown; signal?: AbortSignal } = {},
)
| 162 | * tool or one with no `execute` — the orchestrator surfaces that as a 4xx/5xx. |
| 163 | */ |
| 164 | export function executeHostTool( |
| 165 | tools: Array<AnyTool>, |
| 166 | name: string, |
| 167 | args: unknown, |
| 168 | options: { context?: unknown; signal?: AbortSignal } = {}, |
| 169 | ): Promise<unknown> { |
| 170 | const tool = tools.find((candidate) => candidate.name === name) |
| 171 | if (!tool?.execute) { |
| 172 | return Promise.reject(new Error(`Unknown tool: ${name}`)) |
| 173 | } |
| 174 | return Promise.resolve( |
| 175 | tool.execute(args ?? {}, { |
| 176 | context: options.context, |
| 177 | abortSignal: options.signal, |
| 178 | }), |
| 179 | ) |
| 180 | } |
no test coverage detected