UNPKG

@bobmatnyc/ai-code-review

Version:

A TypeScript-based tool for automated code reviews using AI models from Google Gemini, Anthropic Claude, and OpenRouter

1,254 lines 65.9 kB
/** * @fileoverview Schema definition for consolidated code reviews with grading. * * This module defines the TypeScript interfaces and Zod schemas for the consolidated code review schema * that includes comprehensive grading across multiple files. The schema is designed to provide * a holistic assessment of the entire codebase with detailed grading categories. */ import { z } from 'zod'; /** * Grade levels following academic grading scale */ export declare const GradeLevel: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; export type GradeLevel = z.infer<typeof GradeLevel>; /** * Grading categories for comprehensive assessment */ export declare const GradeCategoriesSchema: z.ZodObject<{ functionality: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; codeQuality: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; documentation: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; testing: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; maintainability: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; security: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; performance: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; }, "strip", z.ZodTypeAny, { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }, { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }>; export type GradeCategories = z.infer<typeof GradeCategoriesSchema>; /** * Issue priority levels */ export declare const IssuePriority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; export type IssuePriority = z.infer<typeof IssuePriority>; /** * A single issue identified in the consolidated review */ export declare const ConsolidatedIssueSchema: z.ZodObject<{ id: z.ZodString; priority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; title: z.ZodString; description: z.ZodString; files: z.ZodArray<z.ZodString, "many">; recommendation: z.ZodString; impact: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }>; export type ConsolidatedIssue = z.infer<typeof ConsolidatedIssueSchema>; /** * Strength identified in the codebase */ export declare const StrengthSchema: z.ZodObject<{ title: z.ZodString; description: z.ZodString; files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; files?: string[] | undefined; }, { description: string; title: string; files?: string[] | undefined; }>; export type Strength = z.infer<typeof StrengthSchema>; /** * Architectural insight or pattern */ export declare const ArchitecturalInsightSchema: z.ZodObject<{ title: z.ZodString; description: z.ZodString; recommendation: z.ZodOptional<z.ZodString>; relatedFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }, { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }>; export type ArchitecturalInsight = z.infer<typeof ArchitecturalInsightSchema>; /** * Main consolidated review schema */ export declare const ConsolidatedReviewSchema: z.ZodObject<{ version: z.ZodLiteral<"1.0">; timestamp: z.ZodString; projectName: z.ZodString; filesReviewed: z.ZodNumber; executiveSummary: z.ZodString; overallGrade: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; gradeRationale: z.ZodString; gradeCategories: z.ZodObject<{ functionality: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; codeQuality: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; documentation: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; testing: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; maintainability: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; security: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; performance: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; }, "strip", z.ZodTypeAny, { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }, { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }>; categoryRationale: z.ZodObject<{ functionality: z.ZodString; codeQuality: z.ZodString; documentation: z.ZodString; testing: z.ZodString; maintainability: z.ZodString; security: z.ZodString; performance: z.ZodString; }, "strip", z.ZodTypeAny, { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }, { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }>; issues: z.ZodObject<{ high: z.ZodArray<z.ZodObject<{ id: z.ZodString; priority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; title: z.ZodString; description: z.ZodString; files: z.ZodArray<z.ZodString, "many">; recommendation: z.ZodString; impact: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }>, "many">; medium: z.ZodArray<z.ZodObject<{ id: z.ZodString; priority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; title: z.ZodString; description: z.ZodString; files: z.ZodArray<z.ZodString, "many">; recommendation: z.ZodString; impact: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }>, "many">; low: z.ZodArray<z.ZodObject<{ id: z.ZodString; priority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; title: z.ZodString; description: z.ZodString; files: z.ZodArray<z.ZodString, "many">; recommendation: z.ZodString; impact: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }>, "many">; }, "strip", z.ZodTypeAny, { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; medium: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; low: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; }, { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; medium: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; low: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; }>; strengths: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; files?: string[] | undefined; }, { description: string; title: string; files?: string[] | undefined; }>, "many">; architecturalInsights: z.ZodOptional<z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; recommendation: z.ZodOptional<z.ZodString>; relatedFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }, { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }>, "many">>; summary: z.ZodObject<{ totalIssues: z.ZodNumber; highPriorityIssues: z.ZodNumber; mediumPriorityIssues: z.ZodNumber; lowPriorityIssues: z.ZodNumber; totalStrengths: z.ZodNumber; }, "strip", z.ZodTypeAny, { highPriorityIssues: number; mediumPriorityIssues: number; lowPriorityIssues: number; totalIssues: number; totalStrengths: number; }, { highPriorityIssues: number; mediumPriorityIssues: number; lowPriorityIssues: number; totalIssues: number; totalStrengths: number; }>; recommendations: z.ZodObject<{ immediate: z.ZodArray<z.ZodString, "many">; shortTerm: z.ZodArray<z.ZodString, "many">; longTerm: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { immediate: string[]; shortTerm: string[]; longTerm: string[]; }, { immediate: string[]; shortTerm: string[]; longTerm: string[]; }>; }, "strip", z.ZodTypeAny, { issues: { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; medium: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; low: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; }; version: "1.0"; projectName: string; timestamp: string; summary: { highPriorityIssues: number; mediumPriorityIssues: number; lowPriorityIssues: number; totalIssues: number; totalStrengths: number; }; filesReviewed: number; executiveSummary: string; overallGrade: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; gradeRationale: string; gradeCategories: { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }; categoryRationale: { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }; strengths: { description: string; title: string; files?: string[] | undefined; }[]; recommendations: { immediate: string[]; shortTerm: string[]; longTerm: string[]; }; architecturalInsights?: { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }[] | undefined; }, { issues: { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; medium: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; low: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; }; version: "1.0"; projectName: string; timestamp: string; summary: { highPriorityIssues: number; mediumPriorityIssues: number; lowPriorityIssues: number; totalIssues: number; totalStrengths: number; }; filesReviewed: number; executiveSummary: string; overallGrade: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; gradeRationale: string; gradeCategories: { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }; categoryRationale: { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }; strengths: { description: string; title: string; files?: string[] | undefined; }[]; recommendations: { immediate: string[]; shortTerm: string[]; longTerm: string[]; }; architecturalInsights?: { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }[] | undefined; }>; export type ConsolidatedReview = z.infer<typeof ConsolidatedReviewSchema>; /** * Root object for the consolidated review schema */ export declare const ConsolidatedReviewRootSchema: z.ZodObject<{ review: z.ZodObject<{ version: z.ZodLiteral<"1.0">; timestamp: z.ZodString; projectName: z.ZodString; filesReviewed: z.ZodNumber; executiveSummary: z.ZodString; overallGrade: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; gradeRationale: z.ZodString; gradeCategories: z.ZodObject<{ functionality: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; codeQuality: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; documentation: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; testing: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; maintainability: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; security: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; performance: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; }, "strip", z.ZodTypeAny, { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }, { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }>; categoryRationale: z.ZodObject<{ functionality: z.ZodString; codeQuality: z.ZodString; documentation: z.ZodString; testing: z.ZodString; maintainability: z.ZodString; security: z.ZodString; performance: z.ZodString; }, "strip", z.ZodTypeAny, { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }, { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }>; issues: z.ZodObject<{ high: z.ZodArray<z.ZodObject<{ id: z.ZodString; priority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; title: z.ZodString; description: z.ZodString; files: z.ZodArray<z.ZodString, "many">; recommendation: z.ZodString; impact: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }>, "many">; medium: z.ZodArray<z.ZodObject<{ id: z.ZodString; priority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; title: z.ZodString; description: z.ZodString; files: z.ZodArray<z.ZodString, "many">; recommendation: z.ZodString; impact: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }>, "many">; low: z.ZodArray<z.ZodObject<{ id: z.ZodString; priority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; title: z.ZodString; description: z.ZodString; files: z.ZodArray<z.ZodString, "many">; recommendation: z.ZodString; impact: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }>, "many">; }, "strip", z.ZodTypeAny, { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; medium: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; low: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; }, { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; medium: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; low: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; }>; strengths: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; files?: string[] | undefined; }, { description: string; title: string; files?: string[] | undefined; }>, "many">; architecturalInsights: z.ZodOptional<z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; recommendation: z.ZodOptional<z.ZodString>; relatedFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }, { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }>, "many">>; summary: z.ZodObject<{ totalIssues: z.ZodNumber; highPriorityIssues: z.ZodNumber; mediumPriorityIssues: z.ZodNumber; lowPriorityIssues: z.ZodNumber; totalStrengths: z.ZodNumber; }, "strip", z.ZodTypeAny, { highPriorityIssues: number; mediumPriorityIssues: number; lowPriorityIssues: number; totalIssues: number; totalStrengths: number; }, { highPriorityIssues: number; mediumPriorityIssues: number; lowPriorityIssues: number; totalIssues: number; totalStrengths: number; }>; recommendations: z.ZodObject<{ immediate: z.ZodArray<z.ZodString, "many">; shortTerm: z.ZodArray<z.ZodString, "many">; longTerm: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { immediate: string[]; shortTerm: string[]; longTerm: string[]; }, { immediate: string[]; shortTerm: string[]; longTerm: string[]; }>; }, "strip", z.ZodTypeAny, { issues: { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; medium: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; low: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; }; version: "1.0"; projectName: string; timestamp: string; summary: { highPriorityIssues: number; mediumPriorityIssues: number; lowPriorityIssues: number; totalIssues: number; totalStrengths: number; }; filesReviewed: number; executiveSummary: string; overallGrade: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; gradeRationale: string; gradeCategories: { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }; categoryRationale: { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }; strengths: { description: string; title: string; files?: string[] | undefined; }[]; recommendations: { immediate: string[]; shortTerm: string[]; longTerm: string[]; }; architecturalInsights?: { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }[] | undefined; }, { issues: { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; medium: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; low: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; }; version: "1.0"; projectName: string; timestamp: string; summary: { highPriorityIssues: number; mediumPriorityIssues: number; lowPriorityIssues: number; totalIssues: number; totalStrengths: number; }; filesReviewed: number; executiveSummary: string; overallGrade: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; gradeRationale: string; gradeCategories: { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }; categoryRationale: { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }; strengths: { description: string; title: string; files?: string[] | undefined; }[]; recommendations: { immediate: string[]; shortTerm: string[]; longTerm: string[]; }; architecturalInsights?: { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }[] | undefined; }>; }, "strip", z.ZodTypeAny, { review: { issues: { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; medium: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; low: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; }; version: "1.0"; projectName: string; timestamp: string; summary: { highPriorityIssues: number; mediumPriorityIssues: number; lowPriorityIssues: number; totalIssues: number; totalStrengths: number; }; filesReviewed: number; executiveSummary: string; overallGrade: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; gradeRationale: string; gradeCategories: { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }; categoryRationale: { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }; strengths: { description: string; title: string; files?: string[] | undefined; }[]; recommendations: { immediate: string[]; shortTerm: string[]; longTerm: string[]; }; architecturalInsights?: { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }[] | undefined; }; }, { review: { issues: { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; medium: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; low: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }[]; }; version: "1.0"; projectName: string; timestamp: string; summary: { highPriorityIssues: number; mediumPriorityIssues: number; lowPriorityIssues: number; totalIssues: number; totalStrengths: number; }; filesReviewed: number; executiveSummary: string; overallGrade: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; gradeRationale: string; gradeCategories: { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }; categoryRationale: { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }; strengths: { description: string; title: string; files?: string[] | undefined; }[]; recommendations: { immediate: string[]; shortTerm: string[]; longTerm: string[]; }; architecturalInsights?: { description: string; title: string; recommendation?: string | undefined; relatedFiles?: string[] | undefined; }[] | undefined; }; }>; export type ConsolidatedReviewRoot = z.infer<typeof ConsolidatedReviewRootSchema>; /** * Get the schema as a string for inclusion in prompts */ export declare function getConsolidatedSchemaAsString(): string; /** * Get schema instructions for consolidated reviews */ export declare function getConsolidatedSchemaInstructions(): string; /** * Export schema for use in other modules */ export declare const consolidatedReviewSchema: z.ZodObject<{ review: z.ZodObject<{ version: z.ZodLiteral<"1.0">; timestamp: z.ZodString; projectName: z.ZodString; filesReviewed: z.ZodNumber; executiveSummary: z.ZodString; overallGrade: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; gradeRationale: z.ZodString; gradeCategories: z.ZodObject<{ functionality: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; codeQuality: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; documentation: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; testing: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; maintainability: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; security: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; performance: z.ZodEnum<["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"]>; }, "strip", z.ZodTypeAny, { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }, { security: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; performance: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; functionality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; codeQuality: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; documentation: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; testing: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; maintainability: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; }>; categoryRationale: z.ZodObject<{ functionality: z.ZodString; codeQuality: z.ZodString; documentation: z.ZodString; testing: z.ZodString; maintainability: z.ZodString; security: z.ZodString; performance: z.ZodString; }, "strip", z.ZodTypeAny, { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }, { security: string; performance: string; functionality: string; codeQuality: string; documentation: string; testing: string; maintainability: string; }>; issues: z.ZodObject<{ high: z.ZodArray<z.ZodObject<{ id: z.ZodString; priority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; title: z.ZodString; description: z.ZodString; files: z.ZodArray<z.ZodString, "many">; recommendation: z.ZodString; impact: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }>, "many">; medium: z.ZodArray<z.ZodObject<{ id: z.ZodString; priority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; title: z.ZodString; description: z.ZodString; files: z.ZodArray<z.ZodString, "many">; recommendation: z.ZodString; impact: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }>, "many">; low: z.ZodArray<z.ZodObject<{ id: z.ZodString; priority: z.ZodEnum<["HIGH", "MEDIUM", "LOW"]>; title: z.ZodString; description: z.ZodString; files: z.ZodArray<z.ZodString, "many">; recommendation: z.ZodString; impact: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }, { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: string; recommendation: string; impact: string; }>, "many">; }, "strip", z.ZodTypeAny, { high: { description: string; id: string; priority: "HIGH" | "MEDIUM" | "LOW"; files: string[]; title: strin