code-gate 1.2.0 → 1.3.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.
Files changed (69) hide show
  1. package/README.md +143 -2
  2. package/README_ZH.md +140 -1
  3. package/dist/agent/index.d.ts +8 -0
  4. package/dist/agent/index.js +10 -0
  5. package/dist/agent/index.js.map +1 -0
  6. package/dist/agent/orchestrator.d.ts +13 -0
  7. package/dist/agent/orchestrator.js +109 -0
  8. package/dist/agent/orchestrator.js.map +1 -0
  9. package/dist/agent/prompts/system.d.ts +14 -0
  10. package/dist/agent/prompts/system.js +108 -0
  11. package/dist/agent/prompts/system.js.map +1 -0
  12. package/dist/agent/tools/index.d.ts +15 -0
  13. package/dist/agent/tools/index.js +57 -0
  14. package/dist/agent/tools/index.js.map +1 -0
  15. package/dist/agent/tools/list-directory.d.ts +13 -0
  16. package/dist/agent/tools/list-directory.js +162 -0
  17. package/dist/agent/tools/list-directory.js.map +1 -0
  18. package/dist/agent/tools/read-file.d.ts +13 -0
  19. package/dist/agent/tools/read-file.js +106 -0
  20. package/dist/agent/tools/read-file.js.map +1 -0
  21. package/dist/agent/tools/search-content.d.ts +13 -0
  22. package/dist/agent/tools/search-content.js +110 -0
  23. package/dist/agent/tools/search-content.js.map +1 -0
  24. package/dist/agent/tools/types.d.ts +71 -0
  25. package/dist/agent/tools/types.js +5 -0
  26. package/dist/agent/tools/types.js.map +1 -0
  27. package/dist/agent/types.d.ts +55 -0
  28. package/dist/agent/types.js +5 -0
  29. package/dist/agent/types.js.map +1 -0
  30. package/dist/cli/commands/hook.js +18 -3
  31. package/dist/cli/commands/hook.js.map +1 -1
  32. package/dist/cli/commands/review.js +18 -3
  33. package/dist/cli/commands/review.js.map +1 -1
  34. package/dist/config/defaults.js +5 -0
  35. package/dist/config/defaults.js.map +1 -1
  36. package/dist/config/index.js +34 -25
  37. package/dist/config/index.js.map +1 -1
  38. package/dist/config/types.d.ts +6 -0
  39. package/dist/core/review.d.ts +2 -1
  40. package/dist/core/review.js +128 -66
  41. package/dist/core/review.js.map +1 -1
  42. package/dist/llm/base.d.ts +20 -0
  43. package/dist/llm/base.js +15 -0
  44. package/dist/llm/base.js.map +1 -1
  45. package/dist/llm/index.d.ts +13 -1
  46. package/dist/llm/index.js +25 -0
  47. package/dist/llm/index.js.map +1 -1
  48. package/dist/llm/providers/deepseek.d.ts +20 -2
  49. package/dist/llm/providers/deepseek.js +89 -4
  50. package/dist/llm/providers/deepseek.js.map +1 -1
  51. package/dist/llm/providers/zhipu.d.ts +20 -2
  52. package/dist/llm/providers/zhipu.js +80 -4
  53. package/dist/llm/providers/zhipu.js.map +1 -1
  54. package/dist/locales/de.js +3 -0
  55. package/dist/locales/de.js.map +1 -1
  56. package/dist/locales/en.js +3 -0
  57. package/dist/locales/en.js.map +1 -1
  58. package/dist/locales/fr.js +3 -0
  59. package/dist/locales/fr.js.map +1 -1
  60. package/dist/locales/ja.js +3 -0
  61. package/dist/locales/ja.js.map +1 -1
  62. package/dist/locales/ko.js +3 -0
  63. package/dist/locales/ko.js.map +1 -1
  64. package/dist/locales/types.d.ts +3 -0
  65. package/dist/locales/zh-CN.js +3 -0
  66. package/dist/locales/zh-CN.js.map +1 -1
  67. package/dist/locales/zh-TW.js +3 -0
  68. package/dist/locales/zh-TW.js.map +1 -1
  69. package/package.json +1 -1
@@ -1,4 +1,16 @@
1
1
  import { Config } from '../config/types.js';
2
- import { LLMProvider } from './base.js';
2
+ import { LLMProvider, AgentLLMProvider } from './base.js';
3
3
  export * from './base.js';
4
+ /**
5
+ * 创建 LLM Provider(普通模式)
6
+ */
4
7
  export declare function createLLMProvider(config: Config): LLMProvider;
8
+ /**
9
+ * 创建支持 Agent 模式的 Provider
10
+ * 仅 DeepSeek 和 Zhipu 支持 Agent 模式
11
+ */
12
+ export declare function createAgentProvider(config: Config): AgentLLMProvider;
13
+ /**
14
+ * 检查 Provider 是否支持 Agent 模式
15
+ */
16
+ export declare function supportsAgent(provider: string): boolean;
package/dist/llm/index.js CHANGED
@@ -10,6 +10,11 @@ import { AliyunProvider } from './providers/aliyun.js';
10
10
  import { VolcengineProvider } from './providers/volcengine.js';
11
11
  import { ZhipuProvider } from './providers/zhipu.js';
12
12
  export * from './base.js';
13
+ // 支持 Agent 模式的 Provider 列表
14
+ const AGENT_SUPPORTED_PROVIDERS = ['deepseek', 'zhipu'];
15
+ /**
16
+ * 创建 LLM Provider(普通模式)
17
+ */
13
18
  export function createLLMProvider(config) {
14
19
  switch (config.provider) {
15
20
  case 'deepseek':
@@ -38,4 +43,24 @@ export function createLLMProvider(config) {
38
43
  throw new Error(`Unsupported provider: ${config.provider}`);
39
44
  }
40
45
  }
46
+ /**
47
+ * 创建支持 Agent 模式的 Provider
48
+ * 仅 DeepSeek 和 Zhipu 支持 Agent 模式
49
+ */
50
+ export function createAgentProvider(config) {
51
+ switch (config.provider) {
52
+ case 'deepseek':
53
+ return new DeepSeekProvider(config);
54
+ case 'zhipu':
55
+ return new ZhipuProvider(config);
56
+ default:
57
+ throw new Error(`Agent mode not supported for provider: ${config.provider}. Supported providers: ${AGENT_SUPPORTED_PROVIDERS.join(', ')}`);
58
+ }
59
+ }
60
+ /**
61
+ * 检查 Provider 是否支持 Agent 模式
62
+ */
63
+ export function supportsAgent(provider) {
64
+ return AGENT_SUPPORTED_PROVIDERS.includes(provider);
65
+ }
41
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,cAAc,WAAW,CAAA;AAEzB,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,UAAU;YACb,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACrC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACtC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,SAAS;YACZ,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;QACpC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,aAAa;YAChB,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;QACxC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,YAAY;YACf,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACvC,KAAK,OAAO;YACV,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;QAClC;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,cAAc,WAAW,CAAA;AAEzB,2BAA2B;AAC3B,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAU,CAAA;AAEhE;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,UAAU;YACb,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACrC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACtC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,SAAS;YACZ,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;QACpC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,aAAa;YAChB,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;QACxC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,YAAY;YACf,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACvC,KAAK,OAAO;YACV,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;QAClC;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,UAAU;YACb,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACrC,KAAK,OAAO;YACV,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;QAClC;YACE,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,QAAQ,0BAA0B,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC9I,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAQ,yBAA+C,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC5E,CAAC"}
@@ -1,4 +1,22 @@
1
- import { BaseLLMProvider, ReviewInput } from '../base.js';
2
- export declare class DeepSeekProvider extends BaseLLMProvider {
1
+ import { BaseAgentProvider, ReviewInput } from '../base.js';
2
+ import type { AgentMessage } from '../../agent/types.js';
3
+ import type { ToolDefinition, ToolCall } from '../../agent/tools/types.js';
4
+ export declare class DeepSeekProvider extends BaseAgentProvider {
5
+ private client;
6
+ /**
7
+ * 获取或创建 OpenAI 客户端
8
+ */
9
+ private getClient;
10
+ /**
11
+ * 普通模式审查
12
+ */
3
13
  review(input: ReviewInput): Promise<string>;
14
+ /**
15
+ * 带工具的 LLM 调用(Agent 模式使用)
16
+ */
17
+ protected callLLMWithTools(messages: AgentMessage[], tools: ToolDefinition[]): Promise<{
18
+ content: string | null;
19
+ toolCalls: ToolCall[];
20
+ reasoning_content?: string;
21
+ }>;
4
22
  }
@@ -1,7 +1,17 @@
1
1
  import OpenAI from 'openai';
2
- import { BaseLLMProvider } from '../base.js';
3
- export class DeepSeekProvider extends BaseLLMProvider {
4
- async review(input) {
2
+ import { BaseAgentProvider } from '../base.js';
3
+ export class DeepSeekProvider extends BaseAgentProvider {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.client = null;
7
+ }
8
+ /**
9
+ * 获取或创建 OpenAI 客户端
10
+ */
11
+ getClient() {
12
+ if (this.client) {
13
+ return this.client;
14
+ }
5
15
  const opts = this.config.providerOptions?.deepseek;
6
16
  // Clean up baseURL to avoid issues with copy-pasted configs containing backticks
7
17
  const baseURL = (opts?.baseURL || 'https://api.deepseek.com').replace(/`/g, '').trim();
@@ -10,7 +20,15 @@ export class DeepSeekProvider extends BaseLLMProvider {
10
20
  if (!apiKey) {
11
21
  throw new Error(`Missing DeepSeek API key. Please set ${apiKeyEnv} in environment variables or configure 'apiKey' in .codegate.js`);
12
22
  }
13
- const client = new OpenAI({ baseURL, apiKey });
23
+ this.client = new OpenAI({ baseURL, apiKey });
24
+ return this.client;
25
+ }
26
+ /**
27
+ * 普通模式审查
28
+ */
29
+ async review(input) {
30
+ const client = this.getClient();
31
+ const opts = this.config.providerOptions?.deepseek;
14
32
  const model = opts?.model || 'deepseek-chat';
15
33
  const res = await client.chat.completions.create({
16
34
  model,
@@ -22,5 +40,72 @@ export class DeepSeekProvider extends BaseLLMProvider {
22
40
  });
23
41
  return res.choices?.[0]?.message?.content || '';
24
42
  }
43
+ /**
44
+ * 带工具的 LLM 调用(Agent 模式使用)
45
+ */
46
+ async callLLMWithTools(messages, tools) {
47
+ const client = this.getClient();
48
+ const opts = this.config.providerOptions?.deepseek;
49
+ const model = opts?.model || 'deepseek-chat';
50
+ // 检测是否使用 Reasoner 模型
51
+ const isReasonerModel = model.includes('reasoner');
52
+ // 转换消息格式
53
+ const openaiMessages = messages.map(m => {
54
+ if (m.role === 'tool') {
55
+ return {
56
+ role: 'tool',
57
+ content: m.content || '',
58
+ tool_call_id: m.tool_call_id
59
+ };
60
+ }
61
+ if (m.role === 'assistant' && m.tool_calls) {
62
+ const assistantMsg = {
63
+ role: 'assistant',
64
+ content: m.content,
65
+ tool_calls: m.tool_calls.map(tc => ({
66
+ id: tc.id,
67
+ type: 'function',
68
+ function: {
69
+ name: tc.name,
70
+ arguments: JSON.stringify(tc.arguments)
71
+ }
72
+ }))
73
+ };
74
+ // DeepSeek Reasoner 模型需要保留 reasoning_content
75
+ if (isReasonerModel && m.reasoning_content) {
76
+ assistantMsg.reasoning_content = m.reasoning_content;
77
+ }
78
+ return assistantMsg;
79
+ }
80
+ return {
81
+ role: m.role,
82
+ content: m.content || ''
83
+ };
84
+ });
85
+ // 调用 API
86
+ const response = await client.chat.completions.create({
87
+ model,
88
+ messages: openaiMessages,
89
+ tools: tools.length > 0 ? tools.map(t => ({
90
+ type: 'function',
91
+ function: t.function
92
+ })) : undefined,
93
+ tool_choice: tools.length > 0 ? 'auto' : undefined,
94
+ ...opts?.request
95
+ });
96
+ const message = response.choices?.[0]?.message;
97
+ // 解析工具调用
98
+ const toolCalls = (message?.tool_calls || []).map((tc) => ({
99
+ id: tc.id,
100
+ name: tc.function.name,
101
+ arguments: JSON.parse(tc.function.arguments || '{}')
102
+ }));
103
+ return {
104
+ content: message?.content || null,
105
+ toolCalls,
106
+ // DeepSeek Reasoner 模型会返回 reasoning_content
107
+ reasoning_content: message?.reasoning_content
108
+ };
109
+ }
25
110
  }
26
111
  //# sourceMappingURL=deepseek.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../../src/llm/providers/deepseek.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAe,MAAM,YAAY,CAAA;AAEzD,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IACnD,KAAK,CAAC,MAAM,CAAC,KAAkB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAA;QAClD,iFAAiF;QACjF,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,0BAA0B,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACtF,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,kBAAkB,CAAA;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,MAAM,CAAA;QAErD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,iEAAiE,CAAC,CAAA;QACrI,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,eAAe,CAAA;QAE5C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC/C,KAAK;YACL,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE;gBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;aAC5D;YACD,GAAG,IAAI,EAAE,OAAO;SACjB,CAAC,CAAA;QAEF,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAA;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../../src/llm/providers/deepseek.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,22 @@
1
- import { BaseLLMProvider, ReviewInput } from '../base.js';
2
- export declare class ZhipuProvider extends BaseLLMProvider {
1
+ import { BaseAgentProvider, ReviewInput } from '../base.js';
2
+ import type { AgentMessage } from '../../agent/types.js';
3
+ import type { ToolDefinition, ToolCall } from '../../agent/tools/types.js';
4
+ export declare class ZhipuProvider extends BaseAgentProvider {
5
+ private client;
6
+ /**
7
+ * 获取或创建 OpenAI 客户端
8
+ */
9
+ private getClient;
10
+ /**
11
+ * 普通模式审查
12
+ */
3
13
  review(input: ReviewInput): Promise<string>;
14
+ /**
15
+ * 带工具的 LLM 调用(Agent 模式使用)
16
+ */
17
+ protected callLLMWithTools(messages: AgentMessage[], tools: ToolDefinition[]): Promise<{
18
+ content: string | null;
19
+ toolCalls: ToolCall[];
20
+ reasoning_content?: string;
21
+ }>;
4
22
  }
@@ -1,7 +1,17 @@
1
1
  import OpenAI from 'openai';
2
- import { BaseLLMProvider } from '../base.js';
3
- export class ZhipuProvider extends BaseLLMProvider {
4
- async review(input) {
2
+ import { BaseAgentProvider } from '../base.js';
3
+ export class ZhipuProvider extends BaseAgentProvider {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.client = null;
7
+ }
8
+ /**
9
+ * 获取或创建 OpenAI 客户端
10
+ */
11
+ getClient() {
12
+ if (this.client) {
13
+ return this.client;
14
+ }
5
15
  const opts = this.config.providerOptions?.zhipu;
6
16
  const baseURL = (opts?.baseURL || 'https://open.bigmodel.cn/api/paas/v4').replace(/`/g, '').trim();
7
17
  const apiKeyEnv = opts?.apiKeyEnv || 'ZHIPU_API_KEY';
@@ -9,7 +19,15 @@ export class ZhipuProvider extends BaseLLMProvider {
9
19
  if (!apiKey) {
10
20
  throw new Error(`Missing Zhipu AI API key. Please set ${apiKeyEnv} in environment variables or configure 'apiKey' in .codegate.js`);
11
21
  }
12
- const client = new OpenAI({ baseURL, apiKey });
22
+ this.client = new OpenAI({ baseURL, apiKey });
23
+ return this.client;
24
+ }
25
+ /**
26
+ * 普通模式审查
27
+ */
28
+ async review(input) {
29
+ const client = this.getClient();
30
+ const opts = this.config.providerOptions?.zhipu;
13
31
  const model = opts?.model || 'glm-4';
14
32
  const res = await client.chat.completions.create({
15
33
  model,
@@ -21,5 +39,63 @@ export class ZhipuProvider extends BaseLLMProvider {
21
39
  });
22
40
  return res.choices?.[0]?.message?.content || '';
23
41
  }
42
+ /**
43
+ * 带工具的 LLM 调用(Agent 模式使用)
44
+ */
45
+ async callLLMWithTools(messages, tools) {
46
+ const client = this.getClient();
47
+ const opts = this.config.providerOptions?.zhipu;
48
+ const model = opts?.model || 'glm-4';
49
+ // 转换消息格式
50
+ const openaiMessages = messages.map(m => {
51
+ if (m.role === 'tool') {
52
+ return {
53
+ role: 'tool',
54
+ content: m.content || '',
55
+ tool_call_id: m.tool_call_id
56
+ };
57
+ }
58
+ if (m.role === 'assistant' && m.tool_calls) {
59
+ return {
60
+ role: 'assistant',
61
+ content: m.content,
62
+ tool_calls: m.tool_calls.map(tc => ({
63
+ id: tc.id,
64
+ type: 'function',
65
+ function: {
66
+ name: tc.name,
67
+ arguments: JSON.stringify(tc.arguments)
68
+ }
69
+ }))
70
+ };
71
+ }
72
+ return {
73
+ role: m.role,
74
+ content: m.content || ''
75
+ };
76
+ });
77
+ // 调用 API
78
+ const response = await client.chat.completions.create({
79
+ model,
80
+ messages: openaiMessages,
81
+ tools: tools.length > 0 ? tools.map(t => ({
82
+ type: 'function',
83
+ function: t.function
84
+ })) : undefined,
85
+ tool_choice: tools.length > 0 ? 'auto' : undefined,
86
+ ...opts?.request
87
+ });
88
+ const message = response.choices?.[0]?.message;
89
+ // 解析工具调用
90
+ const toolCalls = (message?.tool_calls || []).map(tc => ({
91
+ id: tc.id,
92
+ name: tc.function.name,
93
+ arguments: JSON.parse(tc.function.arguments || '{}')
94
+ }));
95
+ return {
96
+ content: message?.content || null,
97
+ toolCalls
98
+ };
99
+ }
24
100
  }
25
101
  //# sourceMappingURL=zhipu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zhipu.js","sourceRoot":"","sources":["../../../src/llm/providers/zhipu.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAe,MAAM,YAAY,CAAA;AAEzD,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,KAAK,CAAC,MAAM,CAAC,KAAkB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAA;QAC/C,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,sCAAsC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAClG,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,eAAe,CAAA;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,MAAM,CAAA;QAErD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,iEAAiE,CAAC,CAAA;QACrI,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,OAAO,CAAA;QAEpC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC/C,KAAK;YACL,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE;gBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;aAC5D;YACD,GAAG,IAAI,EAAE,OAAO;SACjB,CAAC,CAAA;QAEF,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAA;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"zhipu.js","sourceRoot":"","sources":["../../../src/llm/providers/zhipu.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,10 @@ export const de = {
7
7
  reviewSkipped: 'AI-Review übersprungen',
8
8
  initReview: 'AI-Review wird initialisiert...',
9
9
  preparingReview: 'Bereite Review für {total} Dateien vor...',
10
+ preparingReviewAgent: '[Agent-Modus] Bereite Review für {total} Dateien vor...',
10
11
  analyzing: 'Analysiere [{idx}/{total}] {file}',
12
+ analyzingAgent: '[Agent] Sammle Kontext...',
13
+ agentToolCall: '[Agent] Werkzeugaufruf: {tool}',
11
14
  taskSubmitted: 'AI-Review-Aufgabe gesendet',
12
15
  previewUrl: 'Vorschau-URL',
13
16
  confirmCommit: 'Review abgeschlossen. Mit Commit fortfahren?',
@@ -1 +1 @@
1
- {"version":3,"file":"de.js","sourceRoot":"","sources":["../../src/locales/de.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAgB;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,iEAAiE;QACjF,aAAa,EAAE,8CAA8C;QAC7D,WAAW,EAAE,qBAAqB;QAClC,aAAa,EAAE,wBAAwB;QACvC,UAAU,EAAE,iCAAiC;QAC7C,eAAe,EAAE,2CAA2C;QAC5D,SAAS,EAAE,mCAAmC;QAC9C,aAAa,EAAE,4BAA4B;QAC3C,UAAU,EAAE,cAAc;QAC1B,aAAa,EAAE,8CAA8C;QAC7D,eAAe,EAAE,oBAAoB;QACrC,eAAe,EAAE,iCAAiC;QAClD,aAAa,EAAE,+DAA+D;QAC9E,iBAAiB,EAAE,kGAAkG;QACrH,gBAAgB,EAAE,6CAA6C;QAC/D,cAAc,EAAE,gEAAgE;QAChF,OAAO,EAAE,+BAA+B;QACxC,kBAAkB,EAAE,0EAA0E;KAC/F;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,gBAAgB;QAC/B,YAAY,EAAE,oBAAoB;QAClC,UAAU,EAAE,YAAY;QACxB,gBAAgB,EAAE,wCAAwC;QAC1D,WAAW,EAAE,8BAA8B;KAC5C;IACD,MAAM,EAAE;QACN,YAAY,EAAE,sJAAsJ;KACrK;CACF,CAAA"}
1
+ {"version":3,"file":"de.js","sourceRoot":"","sources":["../../src/locales/de.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAgB;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,iEAAiE;QACjF,aAAa,EAAE,8CAA8C;QAC7D,WAAW,EAAE,qBAAqB;QAClC,aAAa,EAAE,wBAAwB;QACvC,UAAU,EAAE,iCAAiC;QAC7C,eAAe,EAAE,2CAA2C;QAC5D,oBAAoB,EAAE,yDAAyD;QAC/E,SAAS,EAAE,mCAAmC;QAC9C,cAAc,EAAE,2BAA2B;QAC3C,aAAa,EAAE,gCAAgC;QAC/C,aAAa,EAAE,4BAA4B;QAC3C,UAAU,EAAE,cAAc;QAC1B,aAAa,EAAE,8CAA8C;QAC7D,eAAe,EAAE,oBAAoB;QACrC,eAAe,EAAE,iCAAiC;QAClD,aAAa,EAAE,+DAA+D;QAC9E,iBAAiB,EAAE,kGAAkG;QACrH,gBAAgB,EAAE,6CAA6C;QAC/D,cAAc,EAAE,gEAAgE;QAChF,OAAO,EAAE,+BAA+B;QACxC,kBAAkB,EAAE,0EAA0E;KAC/F;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,gBAAgB;QAC/B,YAAY,EAAE,oBAAoB;QAClC,UAAU,EAAE,YAAY;QACxB,gBAAgB,EAAE,wCAAwC;QAC1D,WAAW,EAAE,8BAA8B;KAC5C;IACD,MAAM,EAAE;QACN,YAAY,EAAE,sJAAsJ;KACrK;CACF,CAAA"}
@@ -7,7 +7,10 @@ export const en = {
7
7
  reviewSkipped: 'AI Review skipped',
8
8
  initReview: 'Initializing AI Review...',
9
9
  preparingReview: 'Preparing to review {total} files...',
10
+ preparingReviewAgent: '[Agent Mode] Preparing to review {total} files...',
10
11
  analyzing: 'Analyzing [{idx}/{total}] {file}',
12
+ analyzingAgent: '[Agent] Gathering context...',
13
+ agentToolCall: '[Agent] Calling tool: {tool}',
11
14
  taskSubmitted: 'AI Review task submitted',
12
15
  previewUrl: 'Preview URL',
13
16
  confirmCommit: 'Review completed. Continue to commit?',
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAgB;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,yDAAyD;QACzE,aAAa,EAAE,oCAAoC;QACnD,WAAW,EAAE,qBAAqB;QAClC,aAAa,EAAE,mBAAmB;QAClC,UAAU,EAAE,2BAA2B;QACvC,eAAe,EAAE,sCAAsC;QACvD,SAAS,EAAE,kCAAkC;QAC7C,aAAa,EAAE,0BAA0B;QACzC,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,uCAAuC;QACtD,eAAe,EAAE,kBAAkB;QACnC,eAAe,EAAE,iCAAiC;QAClD,aAAa,EAAE,2DAA2D;QAC1E,iBAAiB,EAAE,8EAA8E;QACjG,gBAAgB,EAAE,wBAAwB;QAC1C,cAAc,EAAE,qDAAqD;QACrE,OAAO,EAAE,2BAA2B;QACpC,kBAAkB,EAAE,qDAAqD;KAC1E;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,aAAa;QAC5B,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,UAAU;QACtB,gBAAgB,EAAE,mCAAmC;QACrD,WAAW,EAAE,6BAA6B;KAC3C;IACD,MAAM,EAAE;QACN,YAAY,EAAE,iIAAiI;KAChJ;CACF,CAAA"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAgB;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,yDAAyD;QACzE,aAAa,EAAE,oCAAoC;QACnD,WAAW,EAAE,qBAAqB;QAClC,aAAa,EAAE,mBAAmB;QAClC,UAAU,EAAE,2BAA2B;QACvC,eAAe,EAAE,sCAAsC;QACvD,oBAAoB,EAAE,mDAAmD;QACzE,SAAS,EAAE,kCAAkC;QAC7C,cAAc,EAAE,8BAA8B;QAC9C,aAAa,EAAE,8BAA8B;QAC7C,aAAa,EAAE,0BAA0B;QACzC,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,uCAAuC;QACtD,eAAe,EAAE,kBAAkB;QACnC,eAAe,EAAE,iCAAiC;QAClD,aAAa,EAAE,2DAA2D;QAC1E,iBAAiB,EAAE,8EAA8E;QACjG,gBAAgB,EAAE,wBAAwB;QAC1C,cAAc,EAAE,qDAAqD;QACrE,OAAO,EAAE,2BAA2B;QACpC,kBAAkB,EAAE,qDAAqD;KAC1E;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,aAAa;QAC5B,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,UAAU;QACtB,gBAAgB,EAAE,mCAAmC;QACrD,WAAW,EAAE,6BAA6B;KAC3C;IACD,MAAM,EAAE;QACN,YAAY,EAAE,iIAAiI;KAChJ;CACF,CAAA"}
@@ -7,7 +7,10 @@ export const fr = {
7
7
  reviewSkipped: 'Révision AI ignorée',
8
8
  initReview: 'Initialisation de la révision AI...',
9
9
  preparingReview: 'Préparation de la révision pour {total} fichiers...',
10
+ preparingReviewAgent: '[Mode Agent] Préparation de la révision pour {total} fichiers...',
10
11
  analyzing: 'Analyse en cours [{idx}/{total}] {file}',
12
+ analyzingAgent: '[Agent] Collecte du contexte...',
13
+ agentToolCall: '[Agent] Appel d\'outil: {tool}',
11
14
  taskSubmitted: 'Tâche de révision AI soumise',
12
15
  previewUrl: 'URL de prévisualisation',
13
16
  confirmCommit: 'Révision terminée. Continuer le commit ?',
@@ -1 +1 @@
1
- {"version":3,"file":"fr.js","sourceRoot":"","sources":["../../src/locales/fr.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAgB;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,2DAA2D;QAC3E,aAAa,EAAE,6DAA6D;QAC5E,WAAW,EAAE,mBAAmB;QAChC,aAAa,EAAE,qBAAqB;QACpC,UAAU,EAAE,qCAAqC;QACjD,eAAe,EAAE,qDAAqD;QACtE,SAAS,EAAE,yCAAyC;QACpD,aAAa,EAAE,8BAA8B;QAC7C,UAAU,EAAE,yBAAyB;QACrC,aAAa,EAAE,0CAA0C;QACzD,eAAe,EAAE,eAAe;QAChC,eAAe,EAAE,+CAA+C;QAChE,aAAa,EAAE,gFAAgF;QAC/F,iBAAiB,EAAE,wHAAwH;QAC3I,gBAAgB,EAAE,oCAAoC;QACtD,cAAc,EAAE,oEAAoE;QACpF,OAAO,EAAE,mCAAmC;QAC5C,kBAAkB,EAAE,gEAAgE;KACrF;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,gBAAgB;QAC/B,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,aAAa;QACzB,gBAAgB,EAAE,yCAAyC;QAC3D,WAAW,EAAE,sCAAsC;KACpD;IACD,MAAM,EAAE;QACN,YAAY,EAAE,2IAA2I;KAC1J;CACF,CAAA"}
1
+ {"version":3,"file":"fr.js","sourceRoot":"","sources":["../../src/locales/fr.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAgB;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,2DAA2D;QAC3E,aAAa,EAAE,6DAA6D;QAC5E,WAAW,EAAE,mBAAmB;QAChC,aAAa,EAAE,qBAAqB;QACpC,UAAU,EAAE,qCAAqC;QACjD,eAAe,EAAE,qDAAqD;QACtE,oBAAoB,EAAE,kEAAkE;QACxF,SAAS,EAAE,yCAAyC;QACpD,cAAc,EAAE,iCAAiC;QACjD,aAAa,EAAE,gCAAgC;QAC/C,aAAa,EAAE,8BAA8B;QAC7C,UAAU,EAAE,yBAAyB;QACrC,aAAa,EAAE,0CAA0C;QACzD,eAAe,EAAE,eAAe;QAChC,eAAe,EAAE,+CAA+C;QAChE,aAAa,EAAE,gFAAgF;QAC/F,iBAAiB,EAAE,wHAAwH;QAC3I,gBAAgB,EAAE,oCAAoC;QACtD,cAAc,EAAE,oEAAoE;QACpF,OAAO,EAAE,mCAAmC;QAC5C,kBAAkB,EAAE,gEAAgE;KACrF;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,gBAAgB;QAC/B,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,aAAa;QACzB,gBAAgB,EAAE,yCAAyC;QAC3D,WAAW,EAAE,sCAAsC;KACpD;IACD,MAAM,EAAE;QACN,YAAY,EAAE,2IAA2I;KAC1J;CACF,CAAA"}
@@ -7,7 +7,10 @@ export const ja = {
7
7
  reviewSkipped: 'AIレビューをスキップしました',
8
8
  initReview: 'AIレビューを初期化中...',
9
9
  preparingReview: '{total} ファイルのレビューを準備中...',
10
+ preparingReviewAgent: '[Agent モード] {total} ファイルのレビューを準備中...',
10
11
  analyzing: '[{idx}/{total}] {file} を分析中',
12
+ analyzingAgent: '[Agent] コンテキストを取得中...',
13
+ agentToolCall: '[Agent] ツール呼び出し: {tool}',
11
14
  taskSubmitted: 'AIレビュータスクを送信しました',
12
15
  previewUrl: 'プレビュー URL',
13
16
  confirmCommit: 'レビューが完了しました。コミットを続行しますか?',
@@ -1 +1 @@
1
- {"version":3,"file":"ja.js","sourceRoot":"","sources":["../../src/locales/ja.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAgB;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,kCAAkC;QAClD,aAAa,EAAE,wBAAwB;QACvC,WAAW,EAAE,eAAe;QAC5B,aAAa,EAAE,iBAAiB;QAChC,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,0BAA0B;QAC3C,SAAS,EAAE,6BAA6B;QACxC,aAAa,EAAE,kBAAkB;QACjC,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,0BAA0B;QACzC,eAAe,EAAE,gBAAgB;QACjC,eAAe,EAAE,sBAAsB;QACvC,aAAa,EAAE,2CAA2C;QAC1D,iBAAiB,EAAE,gEAAgE;QACnF,gBAAgB,EAAE,kBAAkB;QACpC,cAAc,EAAE,kCAAkC;QAClD,OAAO,EAAE,oBAAoB;QAC7B,kBAAkB,EAAE,0BAA0B;KAC/C;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,QAAQ;QACpB,gBAAgB,EAAE,oBAAoB;QACtC,WAAW,EAAE,cAAc;KAC5B;IACD,MAAM,EAAE;QACN,YAAY,EAAE,8DAA8D;KAC7E;CACF,CAAA"}
1
+ {"version":3,"file":"ja.js","sourceRoot":"","sources":["../../src/locales/ja.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAgB;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,kCAAkC;QAClD,aAAa,EAAE,wBAAwB;QACvC,WAAW,EAAE,eAAe;QAC5B,aAAa,EAAE,iBAAiB;QAChC,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,0BAA0B;QAC3C,oBAAoB,EAAE,sCAAsC;QAC5D,SAAS,EAAE,6BAA6B;QACxC,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,yBAAyB;QACxC,aAAa,EAAE,kBAAkB;QACjC,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,0BAA0B;QACzC,eAAe,EAAE,gBAAgB;QACjC,eAAe,EAAE,sBAAsB;QACvC,aAAa,EAAE,2CAA2C;QAC1D,iBAAiB,EAAE,gEAAgE;QACnF,gBAAgB,EAAE,kBAAkB;QACpC,cAAc,EAAE,kCAAkC;QAClD,OAAO,EAAE,oBAAoB;QAC7B,kBAAkB,EAAE,0BAA0B;KAC/C;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,QAAQ;QACpB,gBAAgB,EAAE,oBAAoB;QACtC,WAAW,EAAE,cAAc;KAC5B;IACD,MAAM,EAAE;QACN,YAAY,EAAE,8DAA8D;KAC7E;CACF,CAAA"}
@@ -7,7 +7,10 @@ export const ko = {
7
7
  reviewSkipped: 'AI 리뷰 건너뜀',
8
8
  initReview: 'AI 리뷰 초기화 중...',
9
9
  preparingReview: '{total}개 파일 리뷰 준비 중...',
10
+ preparingReviewAgent: '[Agent 모드] {total}개 파일 리뷰 준비 중...',
10
11
  analyzing: '[{idx}/{total}] {file} 분석 중',
12
+ analyzingAgent: '[Agent] 컨텍스트 수집 중...',
13
+ agentToolCall: '[Agent] 도구 호출: {tool}',
11
14
  taskSubmitted: 'AI 리뷰 작업 제출됨',
12
15
  previewUrl: '미리보기 URL',
13
16
  confirmCommit: '리뷰가 완료되었습니다. 커밋을 계속하시겠습니까?',
@@ -1 +1 @@
1
- {"version":3,"file":"ko.js","sourceRoot":"","sources":["../../src/locales/ko.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAgB;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,4BAA4B;QAC5C,aAAa,EAAE,4BAA4B;QAC3C,WAAW,EAAE,aAAa;QAC1B,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,wBAAwB;QACzC,SAAS,EAAE,6BAA6B;QACxC,aAAa,EAAE,cAAc;QAC7B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,4BAA4B;QAC3C,eAAe,EAAE,QAAQ;QACzB,eAAe,EAAE,kBAAkB;QACnC,aAAa,EAAE,gDAAgD;QAC/D,iBAAiB,EAAE,wDAAwD;QAC3E,gBAAgB,EAAE,wBAAwB;QAC1C,cAAc,EAAE,qCAAqC;QACrD,OAAO,EAAE,uBAAuB;QAChC,kBAAkB,EAAE,2BAA2B;KAChD;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,UAAU;QACzB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,QAAQ;QACpB,gBAAgB,EAAE,mBAAmB;QACrC,WAAW,EAAE,UAAU;KACxB;IACD,MAAM,EAAE;QACN,YAAY,EAAE,+DAA+D;KAC9E;CACF,CAAA"}
1
+ {"version":3,"file":"ko.js","sourceRoot":"","sources":["../../src/locales/ko.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAgB;IAC7B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,4BAA4B;QAC5C,aAAa,EAAE,4BAA4B;QAC3C,WAAW,EAAE,aAAa;QAC1B,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,wBAAwB;QACzC,oBAAoB,EAAE,mCAAmC;QACzD,SAAS,EAAE,6BAA6B;QACxC,cAAc,EAAE,sBAAsB;QACtC,aAAa,EAAE,uBAAuB;QACtC,aAAa,EAAE,cAAc;QAC7B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,4BAA4B;QAC3C,eAAe,EAAE,QAAQ;QACzB,eAAe,EAAE,kBAAkB;QACnC,aAAa,EAAE,gDAAgD;QAC/D,iBAAiB,EAAE,wDAAwD;QAC3E,gBAAgB,EAAE,wBAAwB;QAC1C,cAAc,EAAE,qCAAqC;QACrD,OAAO,EAAE,uBAAuB;QAChC,kBAAkB,EAAE,2BAA2B;KAChD;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,UAAU;QACzB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,QAAQ;QACpB,gBAAgB,EAAE,mBAAmB;QACrC,WAAW,EAAE,UAAU;KACxB;IACD,MAAM,EAAE;QACN,YAAY,EAAE,+DAA+D;KAC9E;CACF,CAAA"}
@@ -7,7 +7,10 @@ export interface Translation {
7
7
  reviewSkipped: string;
8
8
  initReview: string;
9
9
  preparingReview: string;
10
+ preparingReviewAgent: string;
10
11
  analyzing: string;
12
+ analyzingAgent: string;
13
+ agentToolCall: string;
11
14
  taskSubmitted: string;
12
15
  previewUrl: string;
13
16
  confirmCommit: string;
@@ -7,7 +7,10 @@ export const zhCN = {
7
7
  reviewSkipped: '已跳过 AI 审查',
8
8
  initReview: '正在初始化 AI 审查...',
9
9
  preparingReview: '准备审查 {total} 个文件...',
10
+ preparingReviewAgent: '[Agent 模式] 准备审查 {total} 个文件...',
10
11
  analyzing: '正在分析 [{idx}/{total}] {file}',
12
+ analyzingAgent: '[Agent] 正在获取上下文...',
13
+ agentToolCall: '[Agent] 调用工具: {tool}',
11
14
  taskSubmitted: 'AI 审查任务已提交',
12
15
  previewUrl: '预览地址',
13
16
  confirmCommit: 'Review 已完成,是否继续提交?',
@@ -1 +1 @@
1
- {"version":3,"file":"zh-CN.js","sourceRoot":"","sources":["../../src/locales/zh-CN.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAgB;IAC/B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,wBAAwB;QACxC,aAAa,EAAE,uBAAuB;QACtC,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,qBAAqB;QACtC,SAAS,EAAE,6BAA6B;QACxC,aAAa,EAAE,YAAY;QAC3B,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,oBAAoB;QACnC,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,cAAc;QAC/B,aAAa,EAAE,gCAAgC;QAC/C,iBAAiB,EAAE,+CAA+C;QAClE,gBAAgB,EAAE,WAAW;QAC7B,cAAc,EAAE,sBAAsB;QACtC,OAAO,EAAE,UAAU;QACnB,kBAAkB,EAAE,iBAAiB;KACtC;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,UAAU;QACtB,gBAAgB,EAAE,iBAAiB;QACnC,WAAW,EAAE,QAAQ;KACtB;IACD,MAAM,EAAE;QACN,YAAY,EAAE,8CAA8C;KAC7D;CACF,CAAA"}
1
+ {"version":3,"file":"zh-CN.js","sourceRoot":"","sources":["../../src/locales/zh-CN.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAgB;IAC/B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,wBAAwB;QACxC,aAAa,EAAE,uBAAuB;QACtC,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,qBAAqB;QACtC,oBAAoB,EAAE,gCAAgC;QACtD,SAAS,EAAE,6BAA6B;QACxC,cAAc,EAAE,oBAAoB;QACpC,aAAa,EAAE,sBAAsB;QACrC,aAAa,EAAE,YAAY;QAC3B,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,oBAAoB;QACnC,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,cAAc;QAC/B,aAAa,EAAE,gCAAgC;QAC/C,iBAAiB,EAAE,+CAA+C;QAClE,gBAAgB,EAAE,WAAW;QAC7B,cAAc,EAAE,sBAAsB;QACtC,OAAO,EAAE,UAAU;QACnB,kBAAkB,EAAE,iBAAiB;KACtC;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,UAAU;QACtB,gBAAgB,EAAE,iBAAiB;QACnC,WAAW,EAAE,QAAQ;KACtB;IACD,MAAM,EAAE;QACN,YAAY,EAAE,8CAA8C;KAC7D;CACF,CAAA"}
@@ -7,7 +7,10 @@ export const zhTW = {
7
7
  reviewSkipped: '已跳過 AI 審查',
8
8
  initReview: '正在初始化 AI 審查...',
9
9
  preparingReview: '準備審查 {total} 個文件...',
10
+ preparingReviewAgent: '[Agent 模式] 準備審查 {total} 個文件...',
10
11
  analyzing: '正在分析 [{idx}/{total}] {file}',
12
+ analyzingAgent: '[Agent] 正在獲取上下文...',
13
+ agentToolCall: '[Agent] 調用工具: {tool}',
11
14
  taskSubmitted: 'AI 審查任務已提交',
12
15
  previewUrl: '預覽地址',
13
16
  confirmCommit: 'Review 已完成,是否繼續提交?',
@@ -1 +1 @@
1
- {"version":3,"file":"zh-TW.js","sourceRoot":"","sources":["../../src/locales/zh-TW.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAgB;IAC/B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,wBAAwB;QACxC,aAAa,EAAE,uBAAuB;QACtC,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,qBAAqB;QACtC,SAAS,EAAE,6BAA6B;QACxC,aAAa,EAAE,YAAY;QAC3B,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,oBAAoB;QACnC,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,cAAc;QAC/B,aAAa,EAAE,gCAAgC;QAC/C,iBAAiB,EAAE,+CAA+C;QAClE,gBAAgB,EAAE,gBAAgB;QAClC,cAAc,EAAE,qBAAqB;QACrC,OAAO,EAAE,WAAW;QACpB,kBAAkB,EAAE,iBAAiB;KACtC;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,UAAU;QACtB,gBAAgB,EAAE,iBAAiB;QACnC,WAAW,EAAE,QAAQ;KACtB;IACD,MAAM,EAAE;QACN,YAAY,EAAE,8CAA8C;KAC7D;CACF,CAAA"}
1
+ {"version":3,"file":"zh-TW.js","sourceRoot":"","sources":["../../src/locales/zh-TW.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAgB;IAC/B,GAAG,EAAE;QACH,OAAO,EAAE,uBAAuB;QAChC,cAAc,EAAE,wBAAwB;QACxC,aAAa,EAAE,uBAAuB;QACtC,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,qBAAqB;QACtC,oBAAoB,EAAE,gCAAgC;QACtD,SAAS,EAAE,6BAA6B;QACxC,cAAc,EAAE,oBAAoB;QACpC,aAAa,EAAE,sBAAsB;QACrC,aAAa,EAAE,YAAY;QAC3B,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,oBAAoB;QACnC,eAAe,EAAE,OAAO;QACxB,eAAe,EAAE,cAAc;QAC/B,aAAa,EAAE,gCAAgC;QAC/C,iBAAiB,EAAE,+CAA+C;QAClE,gBAAgB,EAAE,gBAAgB;QAClC,cAAc,EAAE,qBAAqB;QACrC,OAAO,EAAE,WAAW;QACpB,kBAAkB,EAAE,iBAAiB;KACtC;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,UAAU;QACtB,gBAAgB,EAAE,iBAAiB;QACnC,WAAW,EAAE,QAAQ;KACtB;IACD,MAAM,EAAE;QACN,YAAY,EAAE,8CAA8C;KAC7D;CACF,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-gate",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "Intelligent Git commit guard and code reviewer. Supports local (Ollama) and cloud models (DeepSeek, OpenAI, Anthropic, etc.) with a rich CLI UI.",
5
5
  "type": "module",
6
6
  "bin": {