/** * 代码审查相关类型定义 */ import { z } from "zod"; export declare const IssueCategorySchema: z.ZodEnum<["security", "performance", "quality", "maintainability"]>; export type IssueCategory = z.infer; export declare const ReviewFocusSchema: z.ZodEnum<["security", "performance", "quality", "maintainability", "all"]>; export type ReviewFocus = z.infer; export declare const SeveritySchema: z.ZodEnum<["critical", "major", "minor", "info"]>; export type Severity = z.infer; export declare const ReviewIssueSchema: z.ZodObject<{ /** 问题所在文件 */ file: z.ZodString; /** 起始行号(可选) */ line_start: z.ZodOptional; /** 结束行号(可选) */ line_end: z.ZodOptional; /** 严重程度 */ severity: z.ZodEnum<["critical", "major", "minor", "info"]>; /** 问题类别(不包含 "all") */ category: z.ZodEnum<["security", "performance", "quality", "maintainability"]>; /** 问题标题 */ title: z.ZodString; /** 详细描述 */ description: z.ZodString; /** 修复建议 */ suggestion: z.ZodOptional; /** 相关代码片段 */ code_snippet: z.ZodOptional; }, "strip", z.ZodTypeAny, { file: string; severity: "critical" | "major" | "minor" | "info"; category: "security" | "performance" | "quality" | "maintainability"; title: string; description: string; line_start?: number | undefined; line_end?: number | undefined; suggestion?: string | undefined; code_snippet?: string | undefined; }, { file: string; severity: "critical" | "major" | "minor" | "info"; category: "security" | "performance" | "quality" | "maintainability"; title: string; description: string; line_start?: number | undefined; line_end?: number | undefined; suggestion?: string | undefined; code_snippet?: string | undefined; }>; export type ReviewIssue = z.infer; export declare const ReviewStatsSchema: z.ZodObject<{ total_issues: z.ZodNumber; by_severity: z.ZodRecord; by_category: z.ZodRecord; }, "strip", z.ZodTypeAny, { total_issues: number; by_severity: Record; by_category: Record; }, { total_issues: number; by_severity: Record; by_category: Record; }>; export type ReviewStats = z.infer; export declare const ReviewMetaSchema: z.ZodObject<{ files_reviewed: z.ZodNumber; provider: z.ZodString; model: z.ZodString; tokens_used: z.ZodOptional; duration_ms: z.ZodNumber; }, "strip", z.ZodTypeAny, { files_reviewed: number; provider: string; model: string; duration_ms: number; tokens_used?: number | undefined; }, { files_reviewed: number; provider: string; model: string; duration_ms: number; tokens_used?: number | undefined; }>; export type ReviewMeta = z.infer; export declare const ReviewResultSchema: z.ZodObject<{ /** 总体评分(1-10) */ overall_score: z.ZodNumber; /** 总结 */ summary: z.ZodString; /** 发现的问题列表 */ issues: z.ZodArray; /** 结束行号(可选) */ line_end: z.ZodOptional; /** 严重程度 */ severity: z.ZodEnum<["critical", "major", "minor", "info"]>; /** 问题类别(不包含 "all") */ category: z.ZodEnum<["security", "performance", "quality", "maintainability"]>; /** 问题标题 */ title: z.ZodString; /** 详细描述 */ description: z.ZodString; /** 修复建议 */ suggestion: z.ZodOptional; /** 相关代码片段 */ code_snippet: z.ZodOptional; }, "strip", z.ZodTypeAny, { file: string; severity: "critical" | "major" | "minor" | "info"; category: "security" | "performance" | "quality" | "maintainability"; title: string; description: string; line_start?: number | undefined; line_end?: number | undefined; suggestion?: string | undefined; code_snippet?: string | undefined; }, { file: string; severity: "critical" | "major" | "minor" | "info"; category: "security" | "performance" | "quality" | "maintainability"; title: string; description: string; line_start?: number | undefined; line_end?: number | undefined; suggestion?: string | undefined; code_snippet?: string | undefined; }>, "many">; /** 优点/亮点 */ highlights: z.ZodOptional>; /** 按类别统计 */ stats: z.ZodObject<{ total_issues: z.ZodNumber; by_severity: z.ZodRecord; by_category: z.ZodRecord; }, "strip", z.ZodTypeAny, { total_issues: number; by_severity: Record; by_category: Record; }, { total_issues: number; by_severity: Record; by_category: Record; }>; /** 元信息 */ meta: z.ZodObject<{ files_reviewed: z.ZodNumber; provider: z.ZodString; model: z.ZodString; tokens_used: z.ZodOptional; duration_ms: z.ZodNumber; }, "strip", z.ZodTypeAny, { files_reviewed: number; provider: string; model: string; duration_ms: number; tokens_used?: number | undefined; }, { files_reviewed: number; provider: string; model: string; duration_ms: number; tokens_used?: number | undefined; }>; }, "strip", z.ZodTypeAny, { issues: { file: string; severity: "critical" | "major" | "minor" | "info"; category: "security" | "performance" | "quality" | "maintainability"; title: string; description: string; line_start?: number | undefined; line_end?: number | undefined; suggestion?: string | undefined; code_snippet?: string | undefined; }[]; overall_score: number; summary: string; stats: { total_issues: number; by_severity: Record; by_category: Record; }; meta: { files_reviewed: number; provider: string; model: string; duration_ms: number; tokens_used?: number | undefined; }; highlights?: string[] | undefined; }, { issues: { file: string; severity: "critical" | "major" | "minor" | "info"; category: "security" | "performance" | "quality" | "maintainability"; title: string; description: string; line_start?: number | undefined; line_end?: number | undefined; suggestion?: string | undefined; code_snippet?: string | undefined; }[]; overall_score: number; summary: string; stats: { total_issues: number; by_severity: Record; by_category: Record; }; meta: { files_reviewed: number; provider: string; model: string; duration_ms: number; tokens_used?: number | undefined; }; highlights?: string[] | undefined; }>; export type ReviewResult = z.infer; export declare const ProviderSchema: z.ZodEnum<["openai", "gemini"]>; export type Provider = z.infer; export declare const CodeReviewInputSchema: z.ZodObject<{ /** 要审查的文件/目录/glob 路径列表(与 git_mode 二选一) */ inputs: z.ZodOptional>; /** Git diff 模式:审查未提交的更改 */ git_mode: z.ZodOptional>; /** 是否包含变更文件的完整内容(git_mode 时有效) */ include_full_files: z.ZodDefault; /** 是否包含项目上下文信息 */ include_project_context: z.ZodDefault; /** 审查关注领域 */ focus: z.ZodDefault>; /** 扩展名过滤 */ extensions: z.ZodOptional>; /** 排除规则 */ excludes: z.ZodOptional>; /** 压缩模式 */ mode: z.ZodDefault>; /** LLM Provider(单个) */ provider: z.ZodOptional>; /** 附加审查上下文/说明 */ context: z.ZodOptional; /** 输出方式 */ output: z.ZodDefault>; /** 输出目录 */ output_dir: z.ZodOptional; }, "strip", z.ZodTypeAny, { mode: "full" | "compact"; output: "inline" | "file"; include_full_files: boolean; include_project_context: boolean; focus: "security" | "performance" | "quality" | "maintainability" | "all"; inputs?: string[] | undefined; extensions?: string[] | undefined; excludes?: string[] | undefined; output_dir?: string | undefined; provider?: "openai" | "gemini" | undefined; git_mode?: "all" | "staged" | "unstaged" | undefined; context?: string | undefined; }, { inputs?: string[] | undefined; mode?: "full" | "compact" | undefined; extensions?: string[] | undefined; excludes?: string[] | undefined; output?: "inline" | "file" | undefined; output_dir?: string | undefined; provider?: "openai" | "gemini" | undefined; git_mode?: "all" | "staged" | "unstaged" | undefined; include_full_files?: boolean | undefined; include_project_context?: boolean | undefined; focus?: "security" | "performance" | "quality" | "maintainability" | "all" | undefined; context?: string | undefined; }>; export type CodeReviewInput = z.infer; export declare const CodeReviewStartInputSchema: z.ZodObject<{ /** 要审查的文件/目录/glob 路径列表(与 git_mode 二选一) */ inputs: z.ZodOptional>; /** Git diff 模式:审查未提交的更改 */ git_mode: z.ZodOptional>; /** 是否包含变更文件的完整内容(git_mode 时有效) */ include_full_files: z.ZodDefault; /** 是否包含项目上下文信息 */ include_project_context: z.ZodDefault; /** 审查关注领域 */ focus: z.ZodDefault>; /** 扩展名过滤 */ extensions: z.ZodOptional>; /** 排除规则 */ excludes: z.ZodOptional>; /** 压缩模式 */ mode: z.ZodDefault>; /** LLM Provider(单个) */ provider: z.ZodOptional>; /** 附加审查上下文/说明 */ context: z.ZodOptional; /** 输出方式 */ output: z.ZodDefault>; /** 输出目录 */ output_dir: z.ZodOptional; } & { /** 并发审查使用的 provider 列表 */ providers: z.ZodOptional, "many">>; /** 等待首个结果的超时时间(毫秒) */ wait_first_result_ms: z.ZodOptional; }, "strip", z.ZodTypeAny, { mode: "full" | "compact"; output: "inline" | "file"; include_full_files: boolean; include_project_context: boolean; focus: "security" | "performance" | "quality" | "maintainability" | "all"; inputs?: string[] | undefined; extensions?: string[] | undefined; excludes?: string[] | undefined; output_dir?: string | undefined; provider?: "openai" | "gemini" | undefined; git_mode?: "all" | "staged" | "unstaged" | undefined; context?: string | undefined; providers?: ("openai" | "gemini")[] | undefined; wait_first_result_ms?: number | undefined; }, { inputs?: string[] | undefined; mode?: "full" | "compact" | undefined; extensions?: string[] | undefined; excludes?: string[] | undefined; output?: "inline" | "file" | undefined; output_dir?: string | undefined; provider?: "openai" | "gemini" | undefined; git_mode?: "all" | "staged" | "unstaged" | undefined; include_full_files?: boolean | undefined; include_project_context?: boolean | undefined; focus?: "security" | "performance" | "quality" | "maintainability" | "all" | undefined; context?: string | undefined; providers?: ("openai" | "gemini")[] | undefined; wait_first_result_ms?: number | undefined; }>; export type CodeReviewStartInput = z.infer; export declare const CodeReviewStatusInputSchema: z.ZodObject<{ /** 任务 ID */ task_id: z.ZodString; }, "strip", z.ZodTypeAny, { task_id: string; }, { task_id: string; }>; export type CodeReviewStatusInput = z.infer; export interface CodeReviewOutput { /** 结构化审查结果 */ result: ReviewResult; /** 格式化的 Markdown 报告 */ report: string; /** 输出文件路径(如果落盘) */ output_path?: string; /** 环境变量配置的 provider 列表(告知调用方应调用哪些) */ configured_providers: string[]; /** 是否需要询问用户反馈 */ ask_user_feedback: boolean; /** 是否为并发模式执行 */ is_concurrent: boolean; /** 各 provider 的独立结果(并发模式时存在) */ provider_results?: Record; } export type ReviewTaskStatus = "pending" | "partial" | "completed" | "failed"; export interface CodeReviewTaskSummary { overall_score: number; files_reviewed: number; total_issues: number; duration_ms: number; provider: string; } export interface CodeReviewTaskStatusOutput { task_id: string; status: ReviewTaskStatus; snapshot_id: string; providers: string[]; ready_providers: string[]; pending_providers: string[]; failed_providers?: string[]; provider_errors?: Record; summary?: CodeReviewTaskSummary; report?: string; provider_reports?: Record; output_path?: string; ask_user_feedback: boolean; is_concurrent: boolean; created_at: number; updated_at: number; poll_after_ms?: number; } //# sourceMappingURL=review.d.ts.map