// schemas/registry.ts — Zod schemas for SPEC-072 registry tools
import { z } from 'zod';
/** Schema for a framework pattern object (correct, deprecated, or mistake). */
const FrameworkPatternSchema = z.object({
    pattern: z.string().describe('Descripcion del patron'),
    example: z.string().optional().describe('Ejemplo de codigo ilustrativo'),
    since: z.string().optional().describe('Version desde la que aplica (solo correctPatterns)'),
    replacedBy: z.string().optional().describe('Reemplazo para patrones obsoletos o errores'),
    severity: z.enum(['error', 'warning']).optional().describe('Severidad: error | warning'),
});
/** Input schema for the check_spec_accuracy tool. */
export const CheckSpecAccuracySchema = z.object({
    specContent: z
        .string()
        .min(1)
        .describe('Contenido de la spec o fragmento a validar (texto de HU.md o criterios de aceptacion)'),
    frameworks: z
        .array(z.string())
        .optional()
        .describe('Frameworks especificos a verificar (e.g. ["nextjs", "react"]). Si se omite, se detectan automaticamente del texto'),
});
/** Input schema for the update_registry tool. */
export const UpdateRegistrySchema = z.object({
    framework: z
        .string()
        .min(1)
        .describe('ID unico del framework en snake_case minusculas (e.g. "my-internal-framework")'),
    displayName: z
        .string()
        .min(1)
        .describe('Nombre legible del framework (e.g. "My Internal Framework")'),
    ecosystem: z
        .string()
        .describe('Ecosistema del framework: typescript | python | go | rust | java | swift | php | ruby | csharp | dart | other'),
    frameworkVersion: z
        .string()
        .min(1)
        .describe('Version de referencia del framework (e.g. "2.x", "1.0.0")'),
    correctPatterns: z
        .array(FrameworkPatternSchema)
        .min(1)
        .describe('Patrones correctos y recomendados. Minimo 1 requerido'),
    deprecatedPatterns: z
        .array(z.object({
        pattern: z.string().describe('Patron obsoleto'),
        replacedBy: z.string().describe('Reemplazo recomendado'),
        severity: z.enum(['error', 'warning']).describe('Severidad: error | warning'),
    }))
        .optional()
        .describe('Patrones obsoletos con su reemplazo recomendado'),
    commonMistakes: z
        .array(z.object({
        pattern: z.string().describe('Descripcion del error comun'),
        example: z.string().optional().describe('Ejemplo del error'),
        replacedBy: z.string().optional().describe('La forma correcta'),
        severity: z.enum(['error', 'warning']).describe('Severidad: error | warning'),
    }))
        .optional()
        .describe('Errores comunes o alucinaciones frecuentes de LLMs para este framework'),
});
// Note: CheckSpecAccuracyInput and UpdateRegistryInput types live in src/types/registry.ts
//# sourceMappingURL=registry.js.map