@yeepay/coderocket-mcp 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,211 @@
1
+ import { z } from 'zod';
2
+ export declare const AIServiceSchema: z.ZodEnum<["gemini", "opencode", "claudecode"]>;
3
+ export type AIService = z.infer<typeof AIServiceSchema>;
4
+ export declare const ReviewStatusSchema: z.ZodEnum<["✅", "⚠️", "❌", "🔍"]>;
5
+ export type ReviewStatus = z.infer<typeof ReviewStatusSchema>;
6
+ export declare const ConfigScopeSchema: z.ZodEnum<["project", "global"]>;
7
+ export type ConfigScope = z.infer<typeof ConfigScopeSchema>;
8
+ export declare const ReviewCodeRequestSchema: z.ZodObject<{
9
+ code: z.ZodString;
10
+ language: z.ZodOptional<z.ZodString>;
11
+ context: z.ZodOptional<z.ZodString>;
12
+ ai_service: z.ZodOptional<z.ZodEnum<["gemini", "opencode", "claudecode"]>>;
13
+ custom_prompt: z.ZodOptional<z.ZodString>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ code: string;
16
+ language?: string | undefined;
17
+ context?: string | undefined;
18
+ ai_service?: "gemini" | "opencode" | "claudecode" | undefined;
19
+ custom_prompt?: string | undefined;
20
+ }, {
21
+ code: string;
22
+ language?: string | undefined;
23
+ context?: string | undefined;
24
+ ai_service?: "gemini" | "opencode" | "claudecode" | undefined;
25
+ custom_prompt?: string | undefined;
26
+ }>;
27
+ export type ReviewCodeRequest = z.infer<typeof ReviewCodeRequestSchema>;
28
+ export declare const ReviewCommitRequestSchema: z.ZodObject<{
29
+ commit_hash: z.ZodOptional<z.ZodString>;
30
+ repository_path: z.ZodOptional<z.ZodString>;
31
+ ai_service: z.ZodOptional<z.ZodEnum<["gemini", "opencode", "claudecode"]>>;
32
+ custom_prompt: z.ZodOptional<z.ZodString>;
33
+ }, "strip", z.ZodTypeAny, {
34
+ ai_service?: "gemini" | "opencode" | "claudecode" | undefined;
35
+ custom_prompt?: string | undefined;
36
+ commit_hash?: string | undefined;
37
+ repository_path?: string | undefined;
38
+ }, {
39
+ ai_service?: "gemini" | "opencode" | "claudecode" | undefined;
40
+ custom_prompt?: string | undefined;
41
+ commit_hash?: string | undefined;
42
+ repository_path?: string | undefined;
43
+ }>;
44
+ export type ReviewCommitRequest = z.infer<typeof ReviewCommitRequestSchema>;
45
+ export declare const ReviewFilesRequestSchema: z.ZodObject<{
46
+ files: z.ZodArray<z.ZodString, "many">;
47
+ repository_path: z.ZodOptional<z.ZodString>;
48
+ ai_service: z.ZodOptional<z.ZodEnum<["gemini", "opencode", "claudecode"]>>;
49
+ custom_prompt: z.ZodOptional<z.ZodString>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ files: string[];
52
+ ai_service?: "gemini" | "opencode" | "claudecode" | undefined;
53
+ custom_prompt?: string | undefined;
54
+ repository_path?: string | undefined;
55
+ }, {
56
+ files: string[];
57
+ ai_service?: "gemini" | "opencode" | "claudecode" | undefined;
58
+ custom_prompt?: string | undefined;
59
+ repository_path?: string | undefined;
60
+ }>;
61
+ export type ReviewFilesRequest = z.infer<typeof ReviewFilesRequestSchema>;
62
+ export declare const ConfigureAIServiceRequestSchema: z.ZodObject<{
63
+ service: z.ZodEnum<["gemini", "opencode", "claudecode"]>;
64
+ scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["project", "global"]>>>;
65
+ api_key: z.ZodOptional<z.ZodString>;
66
+ timeout: z.ZodOptional<z.ZodNumber>;
67
+ max_retries: z.ZodOptional<z.ZodNumber>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ service: "gemini" | "opencode" | "claudecode";
70
+ scope: "project" | "global";
71
+ api_key?: string | undefined;
72
+ timeout?: number | undefined;
73
+ max_retries?: number | undefined;
74
+ }, {
75
+ service: "gemini" | "opencode" | "claudecode";
76
+ scope?: "project" | "global" | undefined;
77
+ api_key?: string | undefined;
78
+ timeout?: number | undefined;
79
+ max_retries?: number | undefined;
80
+ }>;
81
+ export type ConfigureAIServiceRequest = z.infer<typeof ConfigureAIServiceRequestSchema>;
82
+ export declare const ReviewResultSchema: z.ZodObject<{
83
+ status: z.ZodEnum<["✅", "⚠️", "❌", "🔍"]>;
84
+ summary: z.ZodString;
85
+ details: z.ZodString;
86
+ ai_service_used: z.ZodEnum<["gemini", "opencode", "claudecode"]>;
87
+ timestamp: z.ZodString;
88
+ report_file: z.ZodOptional<z.ZodString>;
89
+ }, "strip", z.ZodTypeAny, {
90
+ status: "✅" | "⚠️" | "❌" | "🔍";
91
+ summary: string;
92
+ details: string;
93
+ ai_service_used: "gemini" | "opencode" | "claudecode";
94
+ timestamp: string;
95
+ report_file?: string | undefined;
96
+ }, {
97
+ status: "✅" | "⚠️" | "❌" | "🔍";
98
+ summary: string;
99
+ details: string;
100
+ ai_service_used: "gemini" | "opencode" | "claudecode";
101
+ timestamp: string;
102
+ report_file?: string | undefined;
103
+ }>;
104
+ export type ReviewResult = z.infer<typeof ReviewResultSchema>;
105
+ export declare const AIServiceStatusSchema: z.ZodObject<{
106
+ service: z.ZodEnum<["gemini", "opencode", "claudecode"]>;
107
+ available: z.ZodBoolean;
108
+ configured: z.ZodBoolean;
109
+ install_command: z.ZodOptional<z.ZodString>;
110
+ config_command: z.ZodOptional<z.ZodString>;
111
+ error_message: z.ZodOptional<z.ZodString>;
112
+ }, "strip", z.ZodTypeAny, {
113
+ service: "gemini" | "opencode" | "claudecode";
114
+ available: boolean;
115
+ configured: boolean;
116
+ install_command?: string | undefined;
117
+ config_command?: string | undefined;
118
+ error_message?: string | undefined;
119
+ }, {
120
+ service: "gemini" | "opencode" | "claudecode";
121
+ available: boolean;
122
+ configured: boolean;
123
+ install_command?: string | undefined;
124
+ config_command?: string | undefined;
125
+ error_message?: string | undefined;
126
+ }>;
127
+ export type AIServiceStatus = z.infer<typeof AIServiceStatusSchema>;
128
+ export declare const ServiceStatusResponseSchema: z.ZodObject<{
129
+ current_service: z.ZodEnum<["gemini", "opencode", "claudecode"]>;
130
+ services: z.ZodArray<z.ZodObject<{
131
+ service: z.ZodEnum<["gemini", "opencode", "claudecode"]>;
132
+ available: z.ZodBoolean;
133
+ configured: z.ZodBoolean;
134
+ install_command: z.ZodOptional<z.ZodString>;
135
+ config_command: z.ZodOptional<z.ZodString>;
136
+ error_message: z.ZodOptional<z.ZodString>;
137
+ }, "strip", z.ZodTypeAny, {
138
+ service: "gemini" | "opencode" | "claudecode";
139
+ available: boolean;
140
+ configured: boolean;
141
+ install_command?: string | undefined;
142
+ config_command?: string | undefined;
143
+ error_message?: string | undefined;
144
+ }, {
145
+ service: "gemini" | "opencode" | "claudecode";
146
+ available: boolean;
147
+ configured: boolean;
148
+ install_command?: string | undefined;
149
+ config_command?: string | undefined;
150
+ error_message?: string | undefined;
151
+ }>, "many">;
152
+ auto_switch_enabled: z.ZodBoolean;
153
+ global_config_path: z.ZodOptional<z.ZodString>;
154
+ project_config_path: z.ZodOptional<z.ZodString>;
155
+ }, "strip", z.ZodTypeAny, {
156
+ current_service: "gemini" | "opencode" | "claudecode";
157
+ services: {
158
+ service: "gemini" | "opencode" | "claudecode";
159
+ available: boolean;
160
+ configured: boolean;
161
+ install_command?: string | undefined;
162
+ config_command?: string | undefined;
163
+ error_message?: string | undefined;
164
+ }[];
165
+ auto_switch_enabled: boolean;
166
+ global_config_path?: string | undefined;
167
+ project_config_path?: string | undefined;
168
+ }, {
169
+ current_service: "gemini" | "opencode" | "claudecode";
170
+ services: {
171
+ service: "gemini" | "opencode" | "claudecode";
172
+ available: boolean;
173
+ configured: boolean;
174
+ install_command?: string | undefined;
175
+ config_command?: string | undefined;
176
+ error_message?: string | undefined;
177
+ }[];
178
+ auto_switch_enabled: boolean;
179
+ global_config_path?: string | undefined;
180
+ project_config_path?: string | undefined;
181
+ }>;
182
+ export type ServiceStatusResponse = z.infer<typeof ServiceStatusResponseSchema>;
183
+ export declare const ErrorResponseSchema: z.ZodObject<{
184
+ error: z.ZodString;
185
+ error_code: z.ZodOptional<z.ZodString>;
186
+ suggestions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
187
+ }, "strip", z.ZodTypeAny, {
188
+ error: string;
189
+ error_code?: string | undefined;
190
+ suggestions?: string[] | undefined;
191
+ }, {
192
+ error: string;
193
+ error_code?: string | undefined;
194
+ suggestions?: string[] | undefined;
195
+ }>;
196
+ export type ErrorResponse = z.infer<typeof ErrorResponseSchema>;
197
+ export declare const SuccessResponseSchema: z.ZodObject<{
198
+ success: z.ZodBoolean;
199
+ message: z.ZodString;
200
+ data: z.ZodOptional<z.ZodAny>;
201
+ }, "strip", z.ZodTypeAny, {
202
+ message: string;
203
+ success: boolean;
204
+ data?: any;
205
+ }, {
206
+ message: string;
207
+ success: boolean;
208
+ data?: any;
209
+ }>;
210
+ export type SuccessResponse = z.infer<typeof SuccessResponseSchema>;
211
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe,iDAA+C,CAAC;AAC5E,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAGxD,eAAO,MAAM,kBAAkB,mCAAiC,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,eAAO,MAAM,iBAAiB,kCAAgC,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAMlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGxE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAWpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAG5E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;EAQnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAG1E,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;EAM1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;EAOhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAGhF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGhE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAIhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,85 @@
1
+ import { z } from 'zod';
2
+ // AI服务类型
3
+ export const AIServiceSchema = z.enum(['gemini', 'opencode', 'claudecode']);
4
+ // 审查状态
5
+ export const ReviewStatusSchema = z.enum(['✅', '⚠️', '❌', '🔍']);
6
+ // 配置范围
7
+ export const ConfigScopeSchema = z.enum(['project', 'global']);
8
+ // 代码审查请求
9
+ export const ReviewCodeRequestSchema = z.object({
10
+ code: z.string().describe('要审查的代码内容'),
11
+ language: z.string().optional().describe('代码语言(可选,用于更好的分析)'),
12
+ context: z.string().optional().describe('代码上下文信息(可选)'),
13
+ ai_service: AIServiceSchema.optional().describe('指定使用的AI服务(可选)'),
14
+ custom_prompt: z.string().optional().describe('自定义审查提示词(可选)'),
15
+ });
16
+ // Git提交审查请求
17
+ export const ReviewCommitRequestSchema = z.object({
18
+ commit_hash: z
19
+ .string()
20
+ .optional()
21
+ .describe('提交哈希(可选,默认为最新提交)'),
22
+ repository_path: z
23
+ .string()
24
+ .optional()
25
+ .describe('Git仓库路径(可选,默认为当前目录)'),
26
+ ai_service: AIServiceSchema.optional().describe('指定使用的AI服务(可选)'),
27
+ custom_prompt: z.string().optional().describe('自定义审查提示词(可选)'),
28
+ });
29
+ // 文件审查请求
30
+ export const ReviewFilesRequestSchema = z.object({
31
+ files: z.array(z.string()).describe('要审查的文件路径列表'),
32
+ repository_path: z
33
+ .string()
34
+ .optional()
35
+ .describe('Git仓库路径(可选,默认为当前目录)'),
36
+ ai_service: AIServiceSchema.optional().describe('指定使用的AI服务(可选)'),
37
+ custom_prompt: z.string().optional().describe('自定义审查提示词(可选)'),
38
+ });
39
+ // AI服务配置请求
40
+ export const ConfigureAIServiceRequestSchema = z.object({
41
+ service: AIServiceSchema.describe('要配置的AI服务'),
42
+ scope: ConfigScopeSchema.optional().default('project').describe('配置范围'),
43
+ api_key: z.string().optional().describe('API密钥(可选)'),
44
+ timeout: z.number().optional().describe('超时时间(秒)'),
45
+ max_retries: z.number().optional().describe('最大重试次数'),
46
+ });
47
+ // 审查结果
48
+ export const ReviewResultSchema = z.object({
49
+ status: ReviewStatusSchema.describe('审查状态'),
50
+ summary: z.string().describe('审查摘要'),
51
+ details: z.string().describe('详细审查内容'),
52
+ ai_service_used: AIServiceSchema.describe('使用的AI服务'),
53
+ timestamp: z.string().describe('审查时间'),
54
+ report_file: z.string().optional().describe('生成的报告文件路径(如果有)'),
55
+ });
56
+ // AI服务状态
57
+ export const AIServiceStatusSchema = z.object({
58
+ service: AIServiceSchema.describe('AI服务名称'),
59
+ available: z.boolean().describe('是否可用'),
60
+ configured: z.boolean().describe('是否已配置'),
61
+ install_command: z.string().optional().describe('安装命令(如果未安装)'),
62
+ config_command: z.string().optional().describe('配置命令(如果未配置)'),
63
+ error_message: z.string().optional().describe('错误信息(如果有)'),
64
+ });
65
+ // 服务状态响应
66
+ export const ServiceStatusResponseSchema = z.object({
67
+ current_service: AIServiceSchema.describe('当前使用的AI服务'),
68
+ services: z.array(AIServiceStatusSchema).describe('所有AI服务的状态'),
69
+ auto_switch_enabled: z.boolean().describe('是否启用自动切换'),
70
+ global_config_path: z.string().optional().describe('全局配置文件路径'),
71
+ project_config_path: z.string().optional().describe('项目配置文件路径'),
72
+ });
73
+ // 错误响应
74
+ export const ErrorResponseSchema = z.object({
75
+ error: z.string().describe('错误信息'),
76
+ error_code: z.string().optional().describe('错误代码'),
77
+ suggestions: z.array(z.string()).optional().describe('解决建议'),
78
+ });
79
+ // 成功响应
80
+ export const SuccessResponseSchema = z.object({
81
+ success: z.boolean().describe('操作是否成功'),
82
+ message: z.string().describe('成功信息'),
83
+ data: z.any().optional().describe('返回数据'),
84
+ });
85
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,SAAS;AACT,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;AAG5E,OAAO;AACP,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAGjE,OAAO;AACP,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAG/D,SAAS;AACT,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;IACtD,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAChE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC9D,CAAC,CAAC;AAGH,YAAY;AACZ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qBAAqB,CAAC;IAClC,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAChE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC9D,CAAC,CAAC;AAGH,SAAS;AACT,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;IACjD,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qBAAqB,CAAC;IAClC,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAChE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC9D,CAAC,CAAC;AAGH,WAAW;AACX,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC7C,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IACpD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;CACtD,CAAC,CAAC;AAKH,OAAO;AACP,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACtC,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;IACpD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;CAC9D,CAAC,CAAC;AAGH,SAAS;AACT,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC9D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC7D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;CAC3D,CAAC,CAAC;AAGH,SAAS;AACT,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC;IACtD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC9D,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;IACrD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC9D,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;CAChE,CAAC,CAAC;AAGH,OAAO;AACP,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;CAC7D,CAAC,CAAC;AAGH,OAAO;AACP,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;CAC1C,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import js from "@eslint/js";
2
+ import globals from "globals";
3
+ import tseslint from "typescript-eslint";
4
+ import { defineConfig } from "eslint/config";
5
+
6
+ export default defineConfig([
7
+ { files: ["**/*.{js,mjs,cjs,ts,mts,cts}"], plugins: { js }, extends: ["js/recommended"], languageOptions: { globals: globals.node } },
8
+ tseslint.configs.recommended,
9
+ ]);
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@yeepay/coderocket-mcp",
3
+ "version": "1.0.1",
4
+ "description": "CodeRocket MCP - AI-powered code review server for Model Context Protocol",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "coderocket-mcp": "./bin/coderocket-mcp"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "start": "node dist/index.js",
13
+ "dev": "tsx src/index.ts",
14
+ "test": "node dist/test.js",
15
+ "test:mcp": "npm run build && node bin/coderocket-mcp test",
16
+ "lint": "eslint src/**/*.ts",
17
+ "format": "prettier --write src/**/*.ts",
18
+ "prepare": "npm run build",
19
+ "prepublishOnly": "npm run build && npm test",
20
+ "preversion": "npm run build",
21
+ "version": "npm run format && git add -A src",
22
+ "postversion": "git push && git push --tags"
23
+ },
24
+ "keywords": [
25
+ "mcp",
26
+ "model-context-protocol",
27
+ "code-review",
28
+ "ai",
29
+ "gemini",
30
+ "opencode",
31
+ "claudecode",
32
+ "typescript",
33
+ "code-analysis",
34
+ "git",
35
+ "programming-tools",
36
+ "automation",
37
+ "claude",
38
+ "ai-tools"
39
+ ],
40
+ "author": "dreambt <dreambt@gmail.com>",
41
+ "license": "Apache-2.0",
42
+ "dependencies": {
43
+ "@modelcontextprotocol/sdk": "^0.5.0",
44
+ "zod": "^3.22.4"
45
+ },
46
+ "devDependencies": {
47
+ "@eslint/js": "^9.32.0",
48
+ "@types/node": "^20.0.0",
49
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
50
+ "@typescript-eslint/parser": "^6.0.0",
51
+ "eslint": "^8.57.1",
52
+ "globals": "^16.3.0",
53
+ "jest": "^29.0.0",
54
+ "prettier": "^3.0.0",
55
+ "tsx": "^4.0.0",
56
+ "typescript": "^5.0.0",
57
+ "typescript-eslint": "^8.38.0"
58
+ },
59
+ "engines": {
60
+ "node": ">=18.0.0"
61
+ },
62
+ "repository": {
63
+ "type": "git",
64
+ "url": "https://github.com/im47cn/coderocket-mcp.git",
65
+ "directory": "coderocket-mcp"
66
+ },
67
+ "bugs": {
68
+ "url": "https://github.com/im47cn/coderocket-mcp/issues"
69
+ },
70
+ "homepage": "https://github.com/im47cn/coderocket-mcp#readme"
71
+ }
@@ -0,0 +1,150 @@
1
+ #!/bin/bash
2
+
3
+ # CodeRocket MCP 发布准备脚本
4
+
5
+ set -e
6
+
7
+ # 颜色定义
8
+ RED='\033[0;31m'
9
+ GREEN='\033[0;32m'
10
+ YELLOW='\033[1;33m'
11
+ BLUE='\033[0;34m'
12
+ NC='\033[0m' # No Color
13
+
14
+ echo -e "${BLUE}🚀 准备发布 CodeRocket MCP...${NC}"
15
+ echo ""
16
+
17
+ # 检查是否在正确的目录
18
+ if [ ! -f "package.json" ]; then
19
+ echo -e "${RED}❌ 错误:请在coderocket-mcp目录中运行此脚本${NC}"
20
+ exit 1
21
+ fi
22
+
23
+ # 检查Git状态
24
+ if [ -n "$(git status --porcelain)" ]; then
25
+ echo -e "${YELLOW}⚠️ 警告:工作目录有未提交的更改${NC}"
26
+ echo "请先提交所有更改后再发布"
27
+ git status --short
28
+ exit 1
29
+ fi
30
+
31
+ # 检查当前分支
32
+ CURRENT_BRANCH=$(git branch --show-current)
33
+ if [ "$CURRENT_BRANCH" != "main" ] && [ "$CURRENT_BRANCH" != "master" ]; then
34
+ echo -e "${YELLOW}⚠️ 警告:当前不在主分支 (当前: $CURRENT_BRANCH)${NC}"
35
+ read -p "是否继续?(y/N): " -n 1 -r
36
+ echo
37
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
38
+ exit 1
39
+ fi
40
+ fi
41
+
42
+ # 获取当前版本
43
+ CURRENT_VERSION=$(node -p "require('./package.json').version")
44
+ echo -e "${BLUE}📋 当前版本: $CURRENT_VERSION${NC}"
45
+
46
+ # 询问新版本
47
+ echo ""
48
+ echo "选择版本类型:"
49
+ echo "1) patch (修复版本): $CURRENT_VERSION -> 修复版本"
50
+ echo "2) minor (功能版本): $CURRENT_VERSION -> 功能版本"
51
+ echo "3) major (重大版本): $CURRENT_VERSION -> 重大版本"
52
+ echo "4) 自定义版本"
53
+ echo ""
54
+
55
+ read -p "请选择 (1-4): " CHOICE
56
+ echo ""
57
+
58
+ case $CHOICE in
59
+ 1)
60
+ VERSION_TYPE="patch"
61
+ ;;
62
+ 2)
63
+ VERSION_TYPE="minor"
64
+ ;;
65
+ 3)
66
+ VERSION_TYPE="major"
67
+ ;;
68
+ 4)
69
+ read -p "请输入版本号 (例如: 1.2.3): " CUSTOM_VERSION
70
+ if [[ ! $CUSTOM_VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
71
+ echo -e "${RED}❌ 错误:版本号格式不正确${NC}"
72
+ exit 1
73
+ fi
74
+ VERSION_TYPE=$CUSTOM_VERSION
75
+ ;;
76
+ "")
77
+ echo -e "${RED}❌ 错误:请选择一个选项${NC}"
78
+ exit 1
79
+ ;;
80
+ *)
81
+ echo -e "${RED}❌ 错误:无效选择 '$CHOICE'${NC}"
82
+ exit 1
83
+ ;;
84
+ esac
85
+
86
+ echo -e "${BLUE}🔍 运行预发布检查...${NC}"
87
+
88
+ # 安装依赖
89
+ echo "📦 安装依赖..."
90
+ npm ci
91
+
92
+ # 代码检查(跳过,因为需要额外的TypeScript ESLint配置)
93
+ echo "🔍 代码检查..."
94
+ echo "⚠️ 跳过ESLint检查(需要完整的TypeScript ESLint配置)"
95
+
96
+ # 构建项目
97
+ echo "🔨 构建项目..."
98
+ npm run build
99
+
100
+ # 运行测试
101
+ echo "🧪 运行测试..."
102
+ npm test
103
+
104
+ echo -e "${GREEN}✅ 所有检查通过!${NC}"
105
+ echo ""
106
+
107
+ # 确认发布
108
+ NEW_VERSION=$(npm version $VERSION_TYPE --dry-run | cut -d'v' -f2)
109
+ echo -e "${YELLOW}📋 准备发布版本: $NEW_VERSION${NC}"
110
+ echo ""
111
+ echo "发布内容预览:"
112
+ echo "- 包名: @yeepay/coderocket-mcp"
113
+ echo "- 版本: $NEW_VERSION"
114
+ echo "- 描述: $(node -p "require('./package.json').description")"
115
+ echo "- 主要文件: dist/, bin/, README.md, package.json"
116
+ echo ""
117
+
118
+ read -p "确认发布到npm?(y/N): " -n 1 -r
119
+ echo ""
120
+
121
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
122
+ echo -e "${YELLOW}❌ 发布已取消${NC}"
123
+ exit 0
124
+ fi
125
+
126
+ echo -e "${BLUE}🚀 开始发布...${NC}"
127
+
128
+ # 更新版本号
129
+ npm version $VERSION_TYPE
130
+
131
+ # 发布到npm
132
+ npm publish
133
+
134
+ echo ""
135
+ echo -e "${GREEN}🎉 发布成功!${NC}"
136
+ echo ""
137
+ echo "📋 发布信息:"
138
+ echo "- 包名: @yeepay/coderocket-mcp"
139
+ echo "- 版本: $NEW_VERSION"
140
+ echo "- npm链接: https://www.npmjs.com/package/@yeepay/coderocket-mcp"
141
+ echo ""
142
+ echo "📖 用户现在可以通过以下命令安装和使用:"
143
+ echo " npm install -g @yeepay/coderocket-mcp"
144
+ echo " npx -y @yeepay/coderocket-mcp --version"
145
+ echo ""
146
+ echo "🔗 下一步:"
147
+ echo "1. 更新项目文档"
148
+ echo "2. 发布Release Notes"
149
+ echo "3. 通知用户更新"
150
+ echo ""