import { z } from 'zod';
import { defineTool, } from '../toolDefinition.js';
import { AgentToolNames } from '../shared/agentToolNames.js';
export const getVariableValueArgumentsSchema = z.object({
    variable_name: z
        .string()
        .describe('The variable name without curly brackets or @. ' +
        'For example, the variable {{@user.address}} should be passed as "user.address".'),
    reasoning: z
        .string()
        .optional()
        .describe('Brief explanation of why this action is being taken and what it aims to achieve'),
});
export const getVariableValueServerPrepareResultSchema = z.object({
    normalizedName: z.string().describe('The variable name after stripping {{@...}} wrapper'),
});
export const getVariableValueResponseSchema = z.object({
    success: z.boolean().describe('Whether the variable was found and its value retrieved'),
    variable_name: z.string().describe('The variable name that was looked up'),
    variable_value: z.string().optional().describe('The current value of the variable, if found'),
    message: z.string().optional().describe('Status message or error description'),
});
export const GetVariableValueToolDefinition = defineTool({
    name: AgentToolNames.GetVariableValue,
    description: `Look up the current value of a test variable from the execution context. Use this to understand the current execution state when deciding whether to recover or fail.

Pass the variable name without curly brackets or @. For example, {{@user.address}} becomes "user.address".

This tool only reads the variable — it does not modify it.`,
    argumentsSchema: getVariableValueArgumentsSchema,
    serverPrepareResultSchema: getVariableValueServerPrepareResultSchema,
    responseSchema: getVariableValueResponseSchema,
});
//# sourceMappingURL=GetVariableValueDefinition.js.map