@wuyanbin/ai-code-review-cli-remote 1.0.11 → 1.0.12

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 (56) hide show
  1. package/dist/core/context.d.ts +6 -0
  2. package/dist/core/context.d.ts.map +1 -0
  3. package/dist/core/context.js +154 -0
  4. package/dist/core/context.js.map +1 -0
  5. package/dist/core/diff.d.ts +14 -0
  6. package/dist/core/diff.d.ts.map +1 -0
  7. package/dist/core/diff.js +179 -0
  8. package/dist/core/diff.js.map +1 -0
  9. package/dist/core/model.d.ts +6 -0
  10. package/dist/core/model.d.ts.map +1 -0
  11. package/dist/core/model.js +120 -0
  12. package/dist/core/model.js.map +1 -0
  13. package/dist/core/output.d.ts +4 -0
  14. package/dist/core/output.d.ts.map +1 -0
  15. package/dist/core/output.js +31 -0
  16. package/dist/core/output.js.map +1 -0
  17. package/dist/core/prompt.d.ts +17 -0
  18. package/dist/core/prompt.d.ts.map +1 -0
  19. package/dist/core/prompt.js +92 -0
  20. package/dist/core/prompt.js.map +1 -0
  21. package/dist/core/reviewer.d.ts +6 -0
  22. package/dist/core/reviewer.d.ts.map +1 -0
  23. package/dist/core/reviewer.js +123 -0
  24. package/dist/core/reviewer.js.map +1 -0
  25. package/dist/core/summarizer.d.ts +3 -0
  26. package/dist/core/summarizer.d.ts.map +1 -0
  27. package/dist/core/summarizer.js +48 -0
  28. package/dist/core/summarizer.js.map +1 -0
  29. package/dist/gitlab/api.d.ts +13 -0
  30. package/dist/gitlab/api.d.ts.map +1 -0
  31. package/dist/gitlab/api.js +317 -0
  32. package/dist/gitlab/api.js.map +1 -0
  33. package/dist/gitlab.d.ts.map +1 -1
  34. package/dist/gitlab.js +25 -21
  35. package/dist/gitlab.js.map +1 -1
  36. package/dist/http.d.ts +1 -0
  37. package/dist/http.d.ts.map +1 -1
  38. package/dist/http.js +13 -0
  39. package/dist/http.js.map +1 -1
  40. package/dist/platform/config.d.ts +10 -0
  41. package/dist/platform/config.d.ts.map +1 -0
  42. package/dist/platform/config.js +156 -0
  43. package/dist/platform/config.js.map +1 -0
  44. package/dist/platform/report.d.ts +9 -0
  45. package/dist/platform/report.d.ts.map +1 -0
  46. package/dist/platform/report.js +32 -0
  47. package/dist/platform/report.js.map +1 -0
  48. package/dist/shared/http.d.ts +3 -0
  49. package/dist/shared/http.d.ts.map +1 -0
  50. package/dist/shared/http.js +18 -0
  51. package/dist/shared/http.js.map +1 -0
  52. package/dist/shared/identity.d.ts +18 -0
  53. package/dist/shared/identity.d.ts.map +1 -0
  54. package/dist/shared/identity.js +51 -0
  55. package/dist/shared/identity.js.map +1 -0
  56. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/gitlab/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../src/gitlab.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAoIzC,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsDlB;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC,OAAO,CAAC,CAgEnB"}
1
+ {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../src/gitlab.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAsIzC,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2DlB;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC,OAAO,CAAC,CAgEnB"}
package/dist/gitlab.js CHANGED
@@ -4,6 +4,7 @@ exports.cleanupBotComments = cleanupBotComments;
4
4
  exports.postGitlabDiscussions = postGitlabDiscussions;
5
5
  const constants_1 = require("./constants");
6
6
  const http_1 = require("./http");
7
+ const GITLAB_API_CONCURRENCY = 5;
7
8
  function gitlabFetch(url, init = {}) {
8
9
  return (0, http_1.fetchWithTimeout)(url, init, constants_1.API_TIMEOUT_MS);
9
10
  }
@@ -103,29 +104,33 @@ async function cleanupBotComments(options) {
103
104
  }
104
105
  console.error(`[gitlab] cleanup bot user=${user.username} (id=${user.id})`);
105
106
  const discussions = await fetchAllPages(discussionUrl, options.token);
106
- let deleted = 0;
107
+ const toDelete = [];
107
108
  for (const discussion of discussions) {
108
109
  for (const note of discussion.notes) {
109
110
  if (note.author.id !== user.id || note.system)
110
111
  continue;
111
- const deleteUrl = `${discussionUrl}/${discussion.id}/notes/${note.id}`;
112
- try {
113
- const resp = await gitlabFetch(deleteUrl, {
114
- method: "DELETE",
115
- headers: { Authorization: `Bearer ${options.token}` },
116
- });
117
- if (resp.ok || resp.status === 204) {
118
- deleted += 1;
119
- }
120
- else {
121
- console.error(`[gitlab] delete note failed discussion=${discussion.id} note=${note.id} status=${resp.status}`);
122
- }
112
+ toDelete.push({ discussionId: discussion.id, noteId: note.id });
113
+ }
114
+ }
115
+ let deleted = 0;
116
+ await (0, http_1.mapConcurrent)(toDelete, GITLAB_API_CONCURRENCY, async ({ discussionId, noteId }) => {
117
+ const deleteUrl = `${discussionUrl}/${discussionId}/notes/${noteId}`;
118
+ try {
119
+ const resp = await gitlabFetch(deleteUrl, {
120
+ method: "DELETE",
121
+ headers: { Authorization: `Bearer ${options.token}` },
122
+ });
123
+ if (resp.ok || resp.status === 204) {
124
+ deleted += 1;
123
125
  }
124
- catch (err) {
125
- console.error(`[gitlab] delete note error discussion=${discussion.id} note=${note.id}: ${err instanceof Error ? err.message : err}`);
126
+ else {
127
+ console.error(`[gitlab] delete note failed discussion=${discussionId} note=${noteId} status=${resp.status}`);
126
128
  }
127
129
  }
128
- }
130
+ catch (err) {
131
+ console.error(`[gitlab] delete note error discussion=${discussionId} note=${noteId}: ${err instanceof Error ? err.message : err}`);
132
+ }
133
+ });
129
134
  console.error(`[gitlab] cleanup complete deleted=${deleted}`);
130
135
  return deleted;
131
136
  }
@@ -150,10 +155,9 @@ async function postGitlabDiscussions(options) {
150
155
  console.error("[gitlab] MR discussions skipped: missing diff refs");
151
156
  return false;
152
157
  }
158
+ const validComments = options.comments.filter((c) => c.file && c.line);
153
159
  let posted = 0;
154
- for (const comment of options.comments) {
155
- if (!comment.file || !comment.line)
156
- continue;
160
+ await (0, http_1.mapConcurrent)(validComments, GITLAB_API_CONCURRENCY, async (comment) => {
157
161
  try {
158
162
  const resp = await gitlabFetch(discussionUrl, {
159
163
  method: "POST",
@@ -175,14 +179,14 @@ async function postGitlabDiscussions(options) {
175
179
  });
176
180
  if (!resp.ok) {
177
181
  console.error(`[gitlab] MR discussion failed file=${comment.file} line=${comment.line} status=${resp.status}`);
178
- continue;
182
+ return;
179
183
  }
180
184
  posted += 1;
181
185
  }
182
186
  catch (err) {
183
187
  console.error(`[gitlab] MR discussion error file=${comment.file} line=${comment.line}: ${err instanceof Error ? err.message : err}`);
184
188
  }
185
- }
189
+ });
186
190
  console.error(`[gitlab] MR discussions posted count=${posted}`);
187
191
  return posted > 0;
188
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../src/gitlab.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../src/gitlab.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export declare function fetchWithTimeout(url: string, init: RequestInit, timeoutMs: number): Promise<Response>;
2
2
  export declare function parseJsonSafe<T>(resp: Response): Promise<T | null>;
3
+ export declare function mapConcurrent<T, R>(items: T[], concurrency: number, fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
3
4
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAMnB;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAMxE"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAMnB;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAMxE;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,CAAC,EACtC,KAAK,EAAE,CAAC,EAAE,EACV,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACzC,OAAO,CAAC,CAAC,EAAE,CAAC,CAad"}
package/dist/http.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fetchWithTimeout = fetchWithTimeout;
4
4
  exports.parseJsonSafe = parseJsonSafe;
5
+ exports.mapConcurrent = mapConcurrent;
5
6
  function fetchWithTimeout(url, init, timeoutMs) {
6
7
  const controller = new AbortController();
7
8
  const timer = setTimeout(() => controller.abort(), timeoutMs);
@@ -15,4 +16,16 @@ async function parseJsonSafe(resp) {
15
16
  return null;
16
17
  }
17
18
  }
19
+ async function mapConcurrent(items, concurrency, fn) {
20
+ const results = new Array(items.length);
21
+ let next = 0;
22
+ async function worker() {
23
+ while (next < items.length) {
24
+ const i = next++;
25
+ results[i] = await fn(items[i], i);
26
+ }
27
+ }
28
+ await Promise.all(Array.from({ length: Math.min(concurrency, items.length) }, worker));
29
+ return results;
30
+ }
18
31
  //# sourceMappingURL=http.js.map
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";;AAAA,4CAUC;AAED,sCAMC;AAlBD,SAAgB,gBAAgB,CAC9B,GAAW,EACX,IAAiB,EACjB,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CACrE,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CAAI,IAAc;IACnD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAM,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";;AAAA,4CAUC;AAED,sCAMC;AAED,sCAiBC;AArCD,SAAgB,gBAAgB,CAC9B,GAAW,EACX,IAAiB,EACjB,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CACrE,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CAAI,IAAc;IACnD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAM,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,KAAU,EACV,WAAmB,EACnB,EAA0C;IAE1C,MAAM,OAAO,GAAG,IAAI,KAAK,CAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,UAAU,MAAM;QACnB,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CACpE,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { CodeReviewConfig } from "../types";
2
+ type FetchLike = (input: string, init?: RequestInit) => Promise<Response>;
3
+ export interface LoadReviewConfigOptions {
4
+ cwd?: string;
5
+ env?: NodeJS.ProcessEnv;
6
+ fetchImpl?: FetchLike;
7
+ }
8
+ export declare function loadReviewConfig(options?: LoadReviewConfigOptions): Promise<CodeReviewConfig>;
9
+ export {};
10
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/platform/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAoB,gBAAgB,EAAY,MAAM,UAAU,CAAC;AAE7E,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE1E,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAkLD,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAiB3B"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadReviewConfig = loadReviewConfig;
4
+ const node_fs_1 = require("node:fs");
5
+ const promises_1 = require("node:fs/promises");
6
+ const node_path_1 = require("node:path");
7
+ const node_module_1 = require("node:module");
8
+ const constants_1 = require("../constants");
9
+ const http_1 = require("../shared/http");
10
+ const LOCAL_CONFIG_FILES = [
11
+ ".aicr.config.js",
12
+ "aicr.config.js",
13
+ ".aicr.config.cjs",
14
+ "aicr.config.cjs",
15
+ ];
16
+ const requireConfig = (0, node_module_1.createRequire)(__filename);
17
+ function normalizePlatformUrl(env) {
18
+ const raw = env[constants_1.ENV_PLATFORM_URL]?.replace(/\/+$/, "");
19
+ return raw || null;
20
+ }
21
+ function asStringArray(value) {
22
+ return Array.isArray(value)
23
+ ? value.filter((item) => typeof item === "string")
24
+ : [];
25
+ }
26
+ function normalizeSeverity(value) {
27
+ return value === "info" || value === "warning" || value === "error"
28
+ ? value
29
+ : "warning";
30
+ }
31
+ function normalizeMaxComments(value) {
32
+ return typeof value === "number" && Number.isFinite(value) && value > 0
33
+ ? Math.floor(value)
34
+ : 100;
35
+ }
36
+ function normalizeShardMaxBytes(value) {
37
+ return typeof value === "number" && Number.isFinite(value) && value >= 20000
38
+ ? Math.floor(value)
39
+ : 120000;
40
+ }
41
+ function normalizeApiFormat(value, provider, endpoint) {
42
+ if (value === "openai" || value === "claude")
43
+ return value;
44
+ if (provider === "claude")
45
+ return "claude";
46
+ if (typeof endpoint === "string" &&
47
+ (endpoint.includes("anthropic.com") || endpoint.includes("/v1/messages"))) {
48
+ return "claude";
49
+ }
50
+ return "openai";
51
+ }
52
+ function normalizeConfig(raw, source, env) {
53
+ return {
54
+ source,
55
+ ai: {
56
+ name: raw.ai?.name,
57
+ provider: raw.ai?.provider,
58
+ apiFormat: normalizeApiFormat(raw.ai?.apiFormat, raw.ai?.provider, raw.ai?.endpoint),
59
+ model: raw.ai?.model || "deepseek-chat",
60
+ endpoint: raw.ai?.endpoint || "https://api.deepseek.com/chat/completions",
61
+ apiKey: env.MODEL_API_KEY || raw.ai?.apiKey || "",
62
+ },
63
+ rules: {
64
+ custom: asStringArray(raw.rules?.custom),
65
+ },
66
+ review: {
67
+ severity: normalizeSeverity(raw.review?.severity),
68
+ ignore: asStringArray(raw.review?.ignore),
69
+ maxComments: normalizeMaxComments(raw.review?.maxComments),
70
+ shardMaxBytes: normalizeShardMaxBytes(raw.review?.shardMaxBytes),
71
+ },
72
+ gitlab: raw.gitlab?.token ? { token: raw.gitlab.token } : undefined,
73
+ };
74
+ }
75
+ async function loadDevhubConfig(env, fetchImpl) {
76
+ const platformUrl = normalizePlatformUrl(env);
77
+ const token = env[constants_1.ENV_PROJECT_TOKEN];
78
+ if (!platformUrl || !token)
79
+ return null;
80
+ const url = `${platformUrl}${constants_1.API_CONFIG_PATH}`;
81
+ try {
82
+ console.error("[config] fetching Devhub config");
83
+ const resp = await fetchImpl(url, {
84
+ method: "GET",
85
+ headers: { Authorization: `Bearer ${token}` },
86
+ });
87
+ if (!resp.ok) {
88
+ console.error(`[config] Devhub 配置获取失败 status=${resp.status}`);
89
+ return null;
90
+ }
91
+ const raw = (await resp.json());
92
+ const config = normalizeConfig(raw, "devhub", {});
93
+ if (!config.ai.apiKey || !config.ai.endpoint) {
94
+ console.error("[config] Devhub 配置缺少模型密钥或 endpoint,回退本地配置");
95
+ return null;
96
+ }
97
+ return config;
98
+ }
99
+ catch (error) {
100
+ console.error("[config] Devhub 配置获取异常,回退本地配置:", error instanceof Error ? error.message : String(error));
101
+ return null;
102
+ }
103
+ }
104
+ async function loadCachedConfig(env) {
105
+ const cachePath = env.AICR_CONFIG_CACHE;
106
+ if (!cachePath || !(0, node_fs_1.existsSync)(cachePath))
107
+ return null;
108
+ try {
109
+ const raw = JSON.parse(await (0, promises_1.readFile)(cachePath, "utf8"));
110
+ if (raw.source === "devhub" && raw.ai?.apiKey && raw.ai?.endpoint) {
111
+ console.error("[config] Loaded config from Devhub cache");
112
+ return normalizeConfig(raw, "devhub", {});
113
+ }
114
+ }
115
+ catch (error) {
116
+ console.error("[config] Devhub 配置缓存读取失败:", error instanceof Error ? error.message : String(error));
117
+ }
118
+ return null;
119
+ }
120
+ async function writeCachedConfig(env, config) {
121
+ const cachePath = env.AICR_CONFIG_CACHE;
122
+ if (!cachePath || config.source !== "devhub")
123
+ return;
124
+ await (0, promises_1.writeFile)(cachePath, JSON.stringify(config), { mode: 0o600 });
125
+ console.error("[config] Devhub config cached");
126
+ }
127
+ async function loadLocalConfig(cwd, env) {
128
+ for (const filename of LOCAL_CONFIG_FILES) {
129
+ const file = (0, node_path_1.resolve)(cwd, filename);
130
+ if (!(0, node_fs_1.existsSync)(file))
131
+ continue;
132
+ delete requireConfig.cache[requireConfig.resolve(file)];
133
+ const imported = requireConfig(file);
134
+ const raw = imported.default ?? imported;
135
+ console.error(`[config] Loaded local config from: ${file}`);
136
+ return normalizeConfig(raw, "local", env);
137
+ }
138
+ console.error("[config] No local config file found, using defaults.");
139
+ return normalizeConfig({}, "local", env);
140
+ }
141
+ async function loadReviewConfig(options = {}) {
142
+ const env = options.env ?? process.env;
143
+ const fetchImpl = options.fetchImpl ??
144
+ ((url, init) => (0, http_1.fetchWithTimeout)(url, init ?? {}, constants_1.API_TIMEOUT_MS));
145
+ const cached = await loadCachedConfig(env);
146
+ if (cached)
147
+ return cached;
148
+ const devhubConfig = await loadDevhubConfig(env, fetchImpl);
149
+ if (devhubConfig) {
150
+ await writeCachedConfig(env, devhubConfig);
151
+ console.error("[config] Loaded config from Devhub");
152
+ return devhubConfig;
153
+ }
154
+ return loadLocalConfig(options.cwd ?? process.cwd(), env);
155
+ }
156
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/platform/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface RunReportPayload {
2
+ status: "SUCCESS" | "FAILED" | "TIMEOUT" | "QUOTA_EXCEEDED";
3
+ modelUsed?: string;
4
+ commentCount?: number;
5
+ duration?: number;
6
+ mrIid?: string | number;
7
+ }
8
+ export declare function postRunReport(payload: RunReportPayload, env?: NodeJS.ProcessEnv): Promise<void>;
9
+ //# sourceMappingURL=report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/platform/report.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAGD,wBAAsB,aAAa,CACjC,OAAO,EAAE,gBAAgB,EACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.postRunReport = postRunReport;
4
+ const constants_1 = require("../constants");
5
+ const http_1 = require("../shared/http");
6
+ // 上报CR结果
7
+ async function postRunReport(payload, env = process.env) {
8
+ const platformUrl = env[constants_1.ENV_PLATFORM_URL]?.replace(/\/+$/, "");
9
+ const token = env[constants_1.ENV_PROJECT_TOKEN];
10
+ if (!platformUrl || !token)
11
+ return;
12
+ try {
13
+ console.error(`[report] posting run report status=${payload.status}`);
14
+ const resp = await (0, http_1.fetchWithTimeout)(`${platformUrl}${constants_1.API_RUNS_PATH}`, {
15
+ method: "POST",
16
+ headers: {
17
+ "Content-Type": "application/json",
18
+ Authorization: `Bearer ${token}`,
19
+ },
20
+ body: JSON.stringify(payload),
21
+ }, constants_1.API_TIMEOUT_MS);
22
+ if (!resp.ok) {
23
+ console.error(`[report] 运行结果上报失败 status=${resp.status}`);
24
+ return;
25
+ }
26
+ console.error("[report] run report posted");
27
+ }
28
+ catch (error) {
29
+ console.error("[report] 运行结果上报异常:", error instanceof Error ? error.message : String(error));
30
+ }
31
+ }
32
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/platform/report.ts"],"names":[],"mappings":";;AAiBA,sCAiCC;AAlDD,4CAKsB;AACtB,yCAAkD;AAUlD,SAAS;AACF,KAAK,UAAU,aAAa,CACjC,OAAyB,EACzB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,WAAW,GAAG,GAAG,CAAC,4BAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,6BAAiB,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnC,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAgB,EACjC,GAAG,WAAW,GAAG,yBAAa,EAAE,EAChC;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,EACD,0BAAc,CACf,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,oBAAoB,EACpB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function fetchWithTimeout(url: string, init: RequestInit, timeoutMs: number): Promise<Response>;
2
+ export declare function parseJsonSafe<T>(resp: Response): Promise<T | null>;
3
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/shared/http.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAMnB;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAMxE"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchWithTimeout = fetchWithTimeout;
4
+ exports.parseJsonSafe = parseJsonSafe;
5
+ function fetchWithTimeout(url, init, timeoutMs) {
6
+ const controller = new AbortController();
7
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
8
+ return fetch(url, { ...init, signal: controller.signal }).finally(() => clearTimeout(timer));
9
+ }
10
+ async function parseJsonSafe(resp) {
11
+ try {
12
+ return (await resp.json());
13
+ }
14
+ catch {
15
+ return null;
16
+ }
17
+ }
18
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/shared/http.ts"],"names":[],"mappings":";;AAAA,4CAUC;AAED,sCAMC;AAlBD,SAAgB,gBAAgB,CAC9B,GAAW,EACX,IAAiB,EACjB,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CACrE,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CAAI,IAAc;IACnD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAM,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { AIComment } from "../types";
2
+ export declare const COMMENT_MARKER_PREFIX = "aicr-comment";
3
+ export declare const SUMMARY_MARKER = "aicr-summary";
4
+ export declare function stableHash(value: string): string;
5
+ /**
6
+ * Position-based fingerprint for GitLab note lifecycle (create/update/delete).
7
+ * Excludes AI-generated prose (message/suggestion) so that rephrased descriptions
8
+ * of the same issue still match the existing note instead of creating duplicates.
9
+ */
10
+ export declare function buildCommentFingerprint(comment: AIComment): string;
11
+ /**
12
+ * Content-based fingerprint for within-run deduplication.
13
+ * Includes full message to distinguish genuinely different comments at the same location.
14
+ */
15
+ export declare function buildContentFingerprint(comment: AIComment): string;
16
+ export declare function buildHiddenMarker(kind: string, fingerprint: string): string;
17
+ export declare function extractHiddenMarker(body: string, kind: string): string | null;
18
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/shared/identity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CASlE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAWlE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7E"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUMMARY_MARKER = exports.COMMENT_MARKER_PREFIX = void 0;
4
+ exports.stableHash = stableHash;
5
+ exports.buildCommentFingerprint = buildCommentFingerprint;
6
+ exports.buildContentFingerprint = buildContentFingerprint;
7
+ exports.buildHiddenMarker = buildHiddenMarker;
8
+ exports.extractHiddenMarker = extractHiddenMarker;
9
+ const node_crypto_1 = require("node:crypto");
10
+ const diff_1 = require("../core/diff");
11
+ exports.COMMENT_MARKER_PREFIX = "aicr-comment";
12
+ exports.SUMMARY_MARKER = "aicr-summary";
13
+ function stableHash(value) {
14
+ return (0, node_crypto_1.createHash)("sha1").update(value).digest("hex").slice(0, 16);
15
+ }
16
+ /**
17
+ * Position-based fingerprint for GitLab note lifecycle (create/update/delete).
18
+ * Excludes AI-generated prose (message/suggestion) so that rephrased descriptions
19
+ * of the same issue still match the existing note instead of creating duplicates.
20
+ */
21
+ function buildCommentFingerprint(comment) {
22
+ return stableHash([
23
+ (0, diff_1.normalizePath)(comment.file),
24
+ String(comment.line),
25
+ comment.code?.trim() ?? "",
26
+ comment.severity,
27
+ ].join("\0"));
28
+ }
29
+ /**
30
+ * Content-based fingerprint for within-run deduplication.
31
+ * Includes full message to distinguish genuinely different comments at the same location.
32
+ */
33
+ function buildContentFingerprint(comment) {
34
+ return stableHash([
35
+ (0, diff_1.normalizePath)(comment.file),
36
+ String(comment.line),
37
+ comment.code?.trim() ?? "",
38
+ comment.severity,
39
+ comment.message.trim(),
40
+ comment.suggestion?.trim() ?? "",
41
+ ].join("\0"));
42
+ }
43
+ function buildHiddenMarker(kind, fingerprint) {
44
+ return `<!-- ${kind}:${fingerprint} -->`;
45
+ }
46
+ function extractHiddenMarker(body, kind) {
47
+ const escaped = kind.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
48
+ const match = new RegExp(`<!--\\s*${escaped}:([a-f0-9-]+)\\s*-->`).exec(body);
49
+ return match?.[1] ?? null;
50
+ }
51
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/shared/identity.ts"],"names":[],"mappings":";;;AAOA,gCAEC;AAOD,0DASC;AAMD,0DAWC;AAED,8CAEC;AAED,kDAIC;AApDD,6CAAyC;AAEzC,uCAA6C;AAEhC,QAAA,qBAAqB,GAAG,cAAc,CAAC;AACvC,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,OAAkB;IACxD,OAAO,UAAU,CACf;QACE,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1B,OAAO,CAAC,QAAQ;KACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,OAAkB;IACxD,OAAO,UAAU,CACf;QACE,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1B,OAAO,CAAC,QAAQ;QAChB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;QACtB,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;KACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAY,EAAE,WAAmB;IACjE,OAAO,QAAQ,IAAI,IAAI,WAAW,MAAM,CAAC;AAC3C,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAY,EAAE,IAAY;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,OAAO,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wuyanbin/ai-code-review-cli-remote",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "description": "AI Code Review remote client - sends diffs to AICR platform for review",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",