@wuyanbin/ai-code-review-cli-remote 1.0.21 → 1.0.22
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.
- package/dist/core/model.d.ts.map +1 -1
- package/dist/core/model.js +54 -39
- package/dist/core/model.js.map +1 -1
- package/package.json +1 -1
package/dist/core/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,IAAI,CACF,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,IAAI,CACF,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC3B;AA4LD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,gBAAgB,GAC3B,YAAY,CAWd"}
|
package/dist/core/model.js
CHANGED
|
@@ -11,45 +11,59 @@ class BaseModelAdapter {
|
|
|
11
11
|
constructor(endpoint, apiKey) {
|
|
12
12
|
this.endpoint = endpoint;
|
|
13
13
|
this.apiKey = apiKey;
|
|
14
|
+
// 部分模型(如 Claude Opus 4.7+/Fable 5)已移除 temperature 参数,发送即 400;
|
|
15
|
+
// 首次被拒后记住该结论,同一进程内的后续请求不再发送。
|
|
16
|
+
this.temperatureUnsupported = false;
|
|
14
17
|
}
|
|
15
18
|
async call(model, systemPrompt, userPrompt) {
|
|
16
19
|
const tag = this.providerName;
|
|
17
20
|
console.error(`[model] ${tag} request start model=${model}`);
|
|
18
|
-
let
|
|
19
|
-
|
|
20
|
-
resp
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
let withTemperature = !this.temperatureUnsupported;
|
|
22
|
+
for (;;) {
|
|
23
|
+
let resp;
|
|
24
|
+
try {
|
|
25
|
+
resp = await (0, http_1.fetchWithTimeout)(this.buildRequestUrl(), {
|
|
26
|
+
method: "POST",
|
|
27
|
+
headers: {
|
|
28
|
+
"Content-Type": "application/json",
|
|
29
|
+
...this.buildHeaders(),
|
|
30
|
+
},
|
|
31
|
+
body: JSON.stringify(this.buildBody(model, systemPrompt, userPrompt, withTemperature)),
|
|
32
|
+
}, constants_1.REQUEST_TIMEOUT_MS);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
const reason = err instanceof Error && err.name === "AbortError"
|
|
36
|
+
? "timeout"
|
|
37
|
+
: "network error";
|
|
38
|
+
console.error(`[model] ${tag} request ${reason}: ${err}`);
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
if (!resp.ok) {
|
|
42
|
+
const body = await readErrorBody(resp);
|
|
43
|
+
if (resp.status === 400 &&
|
|
44
|
+
withTemperature &&
|
|
45
|
+
body.includes("temperature")) {
|
|
46
|
+
this.temperatureUnsupported = true;
|
|
47
|
+
withTemperature = false;
|
|
48
|
+
console.error(`[model] ${tag} model rejected temperature, retrying without it`);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
console.error(body
|
|
52
|
+
? `[model] ${tag} API failed status=${resp.status} body=${body}`
|
|
53
|
+
: `[model] ${tag} API failed status=${resp.status}`);
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const json = await (0, http_1.parseJsonSafe)(resp);
|
|
57
|
+
if (!json) {
|
|
58
|
+
console.error(`[model] ${tag} response body parse failed`);
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const content = this.extractContent(json);
|
|
62
|
+
console.error(content
|
|
63
|
+
? `[model] ${tag} request complete bytes=${Buffer.byteLength(content)}`
|
|
64
|
+
: `[model] ${tag} response empty`);
|
|
65
|
+
return content;
|
|
28
66
|
}
|
|
29
|
-
catch (err) {
|
|
30
|
-
const reason = err instanceof Error && err.name === "AbortError"
|
|
31
|
-
? "timeout"
|
|
32
|
-
: "network error";
|
|
33
|
-
console.error(`[model] ${tag} request ${reason}: ${err}`);
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
if (!resp.ok) {
|
|
37
|
-
const body = await readErrorBody(resp);
|
|
38
|
-
console.error(body
|
|
39
|
-
? `[model] ${tag} API failed status=${resp.status} body=${body}`
|
|
40
|
-
: `[model] ${tag} API failed status=${resp.status}`);
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
const json = await (0, http_1.parseJsonSafe)(resp);
|
|
44
|
-
if (!json) {
|
|
45
|
-
console.error(`[model] ${tag} response body parse failed`);
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
const content = this.extractContent(json);
|
|
49
|
-
console.error(content
|
|
50
|
-
? `[model] ${tag} request complete bytes=${Buffer.byteLength(content)}`
|
|
51
|
-
: `[model] ${tag} response empty`);
|
|
52
|
-
return content;
|
|
53
67
|
}
|
|
54
68
|
}
|
|
55
69
|
class OpenAIAdapter extends BaseModelAdapter {
|
|
@@ -63,7 +77,7 @@ class OpenAIAdapter extends BaseModelAdapter {
|
|
|
63
77
|
buildHeaders() {
|
|
64
78
|
return { Authorization: `Bearer ${this.apiKey}` };
|
|
65
79
|
}
|
|
66
|
-
buildBody(model, systemPrompt, userPrompt) {
|
|
80
|
+
buildBody(model, systemPrompt, userPrompt, withTemperature) {
|
|
67
81
|
return {
|
|
68
82
|
model,
|
|
69
83
|
messages: [
|
|
@@ -72,7 +86,7 @@ class OpenAIAdapter extends BaseModelAdapter {
|
|
|
72
86
|
],
|
|
73
87
|
stream: false,
|
|
74
88
|
// 同一 diff 多次评审需要结果尽量可复现,固定贪心采样
|
|
75
|
-
temperature: 0,
|
|
89
|
+
...(withTemperature ? { temperature: 0 } : {}),
|
|
76
90
|
};
|
|
77
91
|
}
|
|
78
92
|
extractContent(json) {
|
|
@@ -94,14 +108,15 @@ class ClaudeAdapter extends BaseModelAdapter {
|
|
|
94
108
|
"anthropic-version": "2023-06-01",
|
|
95
109
|
};
|
|
96
110
|
}
|
|
97
|
-
buildBody(model, systemPrompt, userPrompt) {
|
|
111
|
+
buildBody(model, systemPrompt, userPrompt, withTemperature) {
|
|
98
112
|
return {
|
|
99
113
|
model,
|
|
100
114
|
max_tokens: 32768,
|
|
101
115
|
system: systemPrompt,
|
|
102
116
|
messages: [{ role: "user", content: userPrompt }],
|
|
103
|
-
// 同一 diff
|
|
104
|
-
|
|
117
|
+
// 同一 diff 多次评审需要结果尽量可复现,固定贪心采样;
|
|
118
|
+
// Claude Opus 4.7+/Fable 5 已移除该参数,由基类在 400 后自动降级
|
|
119
|
+
...(withTemperature ? { temperature: 0 } : {}),
|
|
105
120
|
};
|
|
106
121
|
}
|
|
107
122
|
extractContent(json) {
|
package/dist/core/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":";;AAsMA,gDAeC;AArND,4CAAkD;AAClD,yCAAiE;AAmBjE,KAAK,UAAU,aAAa,CAAC,IAAc;IACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAe,gBAAgB;IAK7B,YACqB,QAAgB,EAChB,MAAc;QADd,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QANnC,8DAA8D;QAC9D,6BAA6B;QACrB,2BAAsB,GAAG,KAAK,CAAC;IAKpC,CAAC;IAaJ,KAAK,CAAC,IAAI,CACR,KAAa,EACb,YAAoB,EACpB,UAAkB;QAElB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,wBAAwB,KAAK,EAAE,CAAC,CAAC;QAE7D,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC;QACnD,SAAS,CAAC;YACR,IAAI,IAAc,CAAC;YACnB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,IAAA,uBAAgB,EAC3B,IAAI,CAAC,eAAe,EAAE,EACtB;oBACE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,GAAG,IAAI,CAAC,YAAY,EAAE;qBACvB;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC,CACjE;iBACF,EACD,8BAAkB,CACnB,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GACV,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;oBAC/C,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,eAAe,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;gBACvC,IACE,IAAI,CAAC,MAAM,KAAK,GAAG;oBACnB,eAAe;oBACf,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC5B,CAAC;oBACD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;oBACnC,eAAe,GAAG,KAAK,CAAC;oBACxB,OAAO,CAAC,KAAK,CACX,WAAW,GAAG,kDAAkD,CACjE,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,KAAK,CACX,IAAI;oBACF,CAAC,CAAC,WAAW,GAAG,sBAAsB,IAAI,CAAC,MAAM,SAAS,IAAI,EAAE;oBAChE,CAAC,CAAC,WAAW,GAAG,sBAAsB,IAAI,CAAC,MAAM,EAAE,CACtD,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,6BAA6B,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,KAAK,CACX,OAAO;gBACL,CAAC,CAAC,WAAW,GAAG,2BAA2B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACvE,CAAC,CAAC,WAAW,GAAG,iBAAiB,CACpC,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;CACF;AAED,MAAM,aAAc,SAAQ,gBAAgB;IAC1C,IAAc,YAAY;QACxB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAES,eAAe;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,mBAAmB,CAAC;IAC7E,CAAC;IAES,YAAY;QACpB,OAAO,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IACpD,CAAC;IAES,SAAS,CACjB,KAAa,EACb,YAAoB,EACpB,UAAkB,EAClB,eAAwB;QAExB,OAAO;YACL,KAAK;YACL,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;gBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;aACtC;YACD,MAAM,EAAE,KAAK;YACb,+BAA+B;YAC/B,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAES,cAAc,CAAC,IAAa;QACpC,MAAM,IAAI,GAAG,IAAsB,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IAC7D,CAAC;CACF;AAED,MAAM,aAAc,SAAQ,gBAAgB;IAC1C,IAAc,YAAY;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,eAAe;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,cAAc,CAAC;IACnE,CAAC;IAES,YAAY;QACpB,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,mBAAmB,EAAE,YAAY;SAClC,CAAC;IACJ,CAAC;IAES,SAAS,CACjB,KAAa,EACb,YAAoB,EACpB,UAAkB,EAClB,eAAwB;QAExB,OAAO;YACL,KAAK;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;YACjD,gCAAgC;YAChC,iDAAiD;YACjD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAES,cAAc,CAAC,IAAa;QACpC,MAAM,IAAI,GAAG,IAAsB,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IAC5E,CAAC;CACF;AAED,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,MAAc,EACd,SAA4B;IAE5B,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC"}
|
package/package.json
CHANGED