import { z } from 'zod';
import { defineTool, } from '../toolDefinition.js';
import { AgentToolNames } from './agentToolNames.js';
export const executeWaitArgumentsSchema = z.object({
    description: z
        .string()
        .max(100)
        .optional()
        .describe('A brief description of what this step does (max 100 characters)'),
    reasoning: z
        .string()
        .optional()
        .describe('Brief explanation of why this action is being taken and what it aims to achieve'),
    waitTime: z.number().meta({
        description: 'The number of seconds to wait. This should be a positive integer.',
    }),
    saveStep: z.boolean().meta({
        description: 'Whether to save the wait as a test step. Only applicable when creating or editing a test; ignored during test recovery.',
    }),
});
export const executeWaitResponseSchema = z.object({
    success: z.boolean(),
    message: z.string().optional(),
});
export const ExecuteWaitToolDefinition = defineTool({
    name: AgentToolNames.ExecuteWait,
    description: 'Waits for the specified amount of time or for the app to settle if no specific time is provided. Set saveStep to true if the user explicitly requested a wait in their prompt. Prefer execute_wait_until whenever a ready-state element exists.',
    argumentsSchema: executeWaitArgumentsSchema,
    responseSchema: executeWaitResponseSchema,
});
//# sourceMappingURL=ExecuteWaitDefinition.js.map