@yeepay/coderocket-mcp
Version:
CodeRocket MCP - Independent AI-powered code review server for Model Context Protocol
132 lines • 6.35 kB
JavaScript
import { z } from 'zod';
// AI服务类型
export const AIServiceSchema = z.enum(['gemini', 'claudecode']);
// 审查状态
export const ReviewStatusSchema = z.enum(['✅', '⚠️', '❌', '🔍', '📝']);
// 代码审查请求(传统方式,保留向后兼容)
export const ReviewCodeRequestSchema = z.object({
code: z.string().describe('要审查的代码内容'),
language: z.string().optional().describe('代码语言(可选,用于更好的分析)'),
context: z.string().optional().describe('代码上下文信息(可选)'),
ai_service: AIServiceSchema.optional().describe('指定使用的AI服务(可选)'),
custom_prompt: z.string().optional().describe('自定义审查提示词(可选)'),
});
// Git变更审查请求(新的自动化方式)
export const ReviewChangesRequestSchema = z.object({
repository_path: z
.string()
.optional()
.describe('Git仓库路径(可选,默认为当前目录)'),
ai_service: AIServiceSchema.optional().describe('指定使用的AI服务(可选)'),
custom_prompt: z.string().optional().describe('自定义审查提示词(可选)'),
include_staged: z
.boolean()
.optional()
.default(true)
.describe('是否包含已暂存的变更'),
include_unstaged: z
.boolean()
.optional()
.default(true)
.describe('是否包含未暂存的变更'),
});
// Git提交审查请求
export const ReviewCommitRequestSchema = z.object({
commit_hash: z
.string()
.optional()
.describe('提交哈希(可选,默认为最新提交)'),
repository_path: z
.string()
.optional()
.describe('Git仓库路径(可选,默认为当前目录)'),
ai_service: AIServiceSchema.optional().describe('指定使用的AI服务(可选)'),
custom_prompt: z.string().optional().describe('自定义审查提示词(可选)'),
});
// 文件审查请求
export const ReviewFilesRequestSchema = z.object({
files: z.array(z.string()).describe('要审查的文件路径列表'),
repository_path: z
.string()
.optional()
.describe('Git仓库路径(可选,默认为当前目录)'),
ai_service: AIServiceSchema.optional().describe('指定使用的AI服务(可选)'),
custom_prompt: z.string().optional().describe('自定义审查提示词(可选)'),
});
// 审查结果
export const ReviewResultSchema = z.object({
status: ReviewStatusSchema.describe('审查状态'),
summary: z.string().describe('审查摘要'),
details: z.string().describe('详细审查内容'),
ai_service_used: AIServiceSchema.describe('使用的AI服务'),
timestamp: z.string().describe('审查时间'),
report_file: z.string().optional().describe('生成的报告文件路径(如果有)'),
});
// 各种审查操作的响应类型
export const ReviewCodeResponseSchema = z.object({
status: ReviewStatusSchema.describe('审查状态'),
summary: z.string().describe('审查摘要'),
review: z.string().describe('审查结果'),
ai_service_used: AIServiceSchema.describe('使用的AI服务'),
timestamp: z.string().describe('审查时间'),
});
export const ReviewChangesResponseSchema = z.object({
status: ReviewStatusSchema.describe('审查状态'),
summary: z.string().describe('审查摘要'),
review: z.string().describe('审查结果'),
ai_service_used: AIServiceSchema.describe('使用的AI服务'),
timestamp: z.string().describe('审查时间'),
});
export const ReviewCommitResponseSchema = z.object({
status: ReviewStatusSchema.describe('审查状态'),
summary: z.string().describe('审查摘要'),
review: z.string().describe('审查结果'),
ai_service_used: AIServiceSchema.describe('使用的AI服务'),
timestamp: z.string().describe('审查时间'),
});
export const ReviewFilesResponseSchema = z.object({
status: ReviewStatusSchema.describe('审查状态'),
summary: z.string().describe('审查摘要'),
review: z.string().describe('审查结果'),
ai_service_used: AIServiceSchema.describe('使用的AI服务'),
timestamp: z.string().describe('审查时间'),
});
// AI服务状态
export const AIServiceStatusSchema = z.object({
service: AIServiceSchema.describe('AI服务名称'),
available: z.boolean().describe('是否可用'),
configured: z.boolean().describe('是否已配置'),
install_command: z.string().optional().describe('安装命令(如果未安装)'),
config_command: z.string().optional().describe('配置命令(如果未配置)'),
error_message: z.string().optional().describe('错误信息(如果有)'),
});
// 错误响应
export const ErrorResponseSchema = z.object({
error: z.string().describe('错误信息'),
error_code: z.string().optional().describe('错误代码'),
suggestions: z.array(z.string()).optional().describe('解决建议'),
});
// 配置AI服务请求
export const ConfigureAIServiceRequestSchema = z.object({
service: AIServiceSchema.describe('要配置的AI服务(gemini/claudecode)'),
scope: z.enum(['project', 'global']).optional().default('project').describe('配置范围(project: 项目级别, global: 全局级别)'),
api_key: z.string().optional().describe('API密钥'),
timeout: z.number().optional().describe('超时时间(秒)'),
max_retries: z.number().optional().describe('最大重试次数'),
});
// 获取AI服务状态请求(无参数)
export const GetAIServiceStatusRequestSchema = z.object({});
// 配置AI服务响应
export const ConfigureAIServiceResponseSchema = z.object({
success: z.boolean().describe('配置是否成功'),
message: z.string().describe('成功或错误信息'),
config_path: z.string().optional().describe('配置文件保存路径'),
restart_required: z.boolean().optional().describe('是否需要重启服务'),
});
// 获取AI服务状态响应
export const GetAIServiceStatusResponseSchema = z.object({
services: z.array(AIServiceStatusSchema).describe('所有AI服务的状态信息'),
current_service: z.string().describe('当前激活的AI服务'),
auto_switch_enabled: z.boolean().describe('是否启用自动切换'),
});
//# sourceMappingURL=types.js.map