@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
TypeScript
/**
* @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