import type { ToolSet } from "ai"; import type { StepCatalog } from "#execution/catalog/step-catalog.js"; import type { HarnessToolDefinition } from "#harness/execute-tool.js"; import type { GenerationSteering } from "#harness/generation-steering.js"; import type { ModelProfile } from "#harness/model-profile.js"; import type { Step } from "#harness/step/context.js"; import type { CallResolver } from "#harness/types.js"; /** * Assembles the tools one model call offers: the catalog's listed entries with provider tools in * place, and `eve__reply` when the turn asks for a structured result. */ export declare function prepareModelTools(step: Step, input: { readonly catalog: StepCatalog; readonly disabledProviderTools?: ReadonlySet; readonly generation: GenerationSteering; readonly profile: ModelProfile; }): Promise; /** The entries that can end the turn, with their `endsTurn` option, when `endsTurn` applies. */ export declare function endsTurnTools(catalog: StepCatalog, applies: boolean): EndsTurnTools; /** The names of the entries eve provides, which tracing marks as framework tools. */ export declare function frameworkToolNames(catalog: StepCatalog): ReadonlySet; /** * Wired as the agent's `onToolExecutionEnd`. On the `tool-error` branch * the `error` is still the original throwable (stack/cause intact), * unlike the message-only `tool-error` part the model later sees. */ export declare function logToolExecutionError(event: { readonly toolCall: { readonly input: unknown; readonly toolName: string; readonly toolCallId: string; }; readonly toolOutput: { readonly type: string; readonly error?: unknown; }; }, resolve: CallResolver): void; export type EndsTurnTools = ReadonlyMap>;