"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExecuteWaitToolDefinition = exports.executeWaitResponseSchema = exports.executeWaitArgumentsSchema = void 0;
var zod_1 = require("zod");
var toolDefinition_js_1 = require("../toolDefinition.js");
var agentToolNames_js_1 = require("./agentToolNames.js");
exports.executeWaitArgumentsSchema = zod_1.z.object({
    description: zod_1.z
        .string()
        .max(100)
        .optional()
        .describe('A brief description of what this step does (max 100 characters)'),
    reasoning: zod_1.z
        .string()
        .optional()
        .describe('Brief explanation of why this action is being taken and what it aims to achieve'),
    waitTime: zod_1.z.number().meta({
        description: 'The number of seconds to wait. This should be a positive integer.',
    }),
    saveStep: zod_1.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.',
    }),
});
exports.executeWaitResponseSchema = zod_1.z.object({
    success: zod_1.z.boolean(),
    message: zod_1.z.string().optional(),
});
exports.ExecuteWaitToolDefinition = (0, toolDefinition_js_1.defineTool)({
    name: agentToolNames_js_1.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: exports.executeWaitArgumentsSchema,
    responseSchema: exports.executeWaitResponseSchema,
});
//# sourceMappingURL=ExecuteWaitDefinition.js.map