import { z } from 'zod' export const BandSchema = z.enum(['elite', 'high', 'medium', 'low']) export const MetricsInputSchema = z.object({ deploymentFrequency: z.enum(['multiple_per_day', 'daily', 'weekly', 'monthly', 'less_than_monthly']), leadTimeDays: z.number().nonnegative(), changeFailureRate: z.number().min(0).max(100), mttrHours: z.number().nonnegative(), pipelineDurationMinutes: z.number().nonnegative(), prReviewTimeHours: z.number().nonnegative(), engineerCount: z.number().int().positive(), serviceCount: z.number().int().positive(), }) export const TeamContextSchema = z.object({ architecture: z.enum(['monolith', 'microservices', 'hybrid']), releaseStrategy: z.enum(['continuous', 'scheduled', 'mixed']), hasComplianceConstraints: z.boolean(), }) export const InterpretationReportSchema = z.object({ deliveryProfile: z.string().min(1), benchmarkAlignment: z.array(z.object({ metric: z.string().min(1), yourValue: z.string().min(1), typicalRange: z.string().min(1), band: BandSchema, })), likelyBottlenecks: z.array(z.string().min(1)), improvements: z.array(z.object({ priority: z.number().int().positive(), action: z.string().min(1), rationale: z.string().min(1), })), leadershipSummary: z.object({ deliverySpeed: z.enum(['strong', 'moderate', 'weak']), reliability: z.enum(['strong', 'moderate', 'weak']), focusArea: z.string().min(1), }), }) export const BenchmarkTierSchema = z.object({ elite: z.string(), high: z.string(), medium: z.string(), low: z.string(), }) export const BenchmarkPatternSchema = z.object({ id: z.string(), signature: z.string(), interpretation: z.string(), improvements: z.array(z.string()), }) export const BenchmarkDataSchema = z.object({ deploymentFrequency: BenchmarkTierSchema, leadTime: BenchmarkTierSchema, changeFailureRate: BenchmarkTierSchema, mttr: BenchmarkTierSchema, patterns: z.array(BenchmarkPatternSchema), keyInsights: z.array(z.string()), })