@wuyanbin/ai-code-review 1.1.16 → 1.1.17
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reviewer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reviewer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAgKxD;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,MAAM,EACZ,QAAQ,gBAAgB,KACvB,OAAO,CAAC,UAAU,GAAG,IAAI,CAmE3B,CAAC"}
|
package/dist/reviewer/index.js
CHANGED
|
@@ -66,19 +66,88 @@ const buildUserPrompt = (diff, rules) => {
|
|
|
66
66
|
* 解析 AI 返回的 JSON(兼容代码块包裹)
|
|
67
67
|
*/
|
|
68
68
|
const parseAIResponse = (content) => {
|
|
69
|
-
|
|
70
|
-
const
|
|
69
|
+
console.error("[reviewer] AI 返回内容:", content);
|
|
70
|
+
const stripFences = (s) => (s ?? "")
|
|
71
71
|
.replace(/^```(?:json)?\s*/i, "")
|
|
72
72
|
.replace(/```$/i, "")
|
|
73
73
|
.trim();
|
|
74
|
+
const extractJsonObject = (s) => {
|
|
75
|
+
const text = stripFences(s);
|
|
76
|
+
const start = text.indexOf("{");
|
|
77
|
+
const end = text.lastIndexOf("}");
|
|
78
|
+
if (start >= 0 && end > start)
|
|
79
|
+
return text.slice(start, end + 1);
|
|
80
|
+
return text;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* 修复 JSON 字符串字面量中的非法控制字符(未转义的 \n/\r/\t 或其他 0x00-0x1F)
|
|
84
|
+
* 典型症状:SyntaxError: Bad control character in string literal
|
|
85
|
+
*/
|
|
86
|
+
const escapeControlCharsInJsonStrings = (json) => {
|
|
87
|
+
let out = "";
|
|
88
|
+
let inString = false;
|
|
89
|
+
let escape = false;
|
|
90
|
+
for (let i = 0; i < json.length; i++) {
|
|
91
|
+
const ch = json[i];
|
|
92
|
+
if (!inString) {
|
|
93
|
+
if (ch === '"')
|
|
94
|
+
inString = true;
|
|
95
|
+
out += ch;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
// inString === true
|
|
99
|
+
if (escape) {
|
|
100
|
+
out += ch;
|
|
101
|
+
escape = false;
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
if (ch === "\\") {
|
|
105
|
+
out += ch;
|
|
106
|
+
escape = true;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (ch === '"') {
|
|
110
|
+
out += ch;
|
|
111
|
+
inString = false;
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const code = ch.charCodeAt(0);
|
|
115
|
+
if (code < 0x20) {
|
|
116
|
+
// JSON 字符串内不允许出现裸控制字符,必须转义
|
|
117
|
+
if (ch === "\n")
|
|
118
|
+
out += "\\n";
|
|
119
|
+
else if (ch === "\r")
|
|
120
|
+
out += "\\r";
|
|
121
|
+
else if (ch === "\t")
|
|
122
|
+
out += "\\t";
|
|
123
|
+
else if (ch === "\b")
|
|
124
|
+
out += "\\b";
|
|
125
|
+
else if (ch === "\f")
|
|
126
|
+
out += "\\f";
|
|
127
|
+
else
|
|
128
|
+
out += `\\u${code.toString(16).padStart(4, "0")}`;
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
out += ch;
|
|
132
|
+
}
|
|
133
|
+
return out;
|
|
134
|
+
};
|
|
135
|
+
const contentText = extractJsonObject(content);
|
|
74
136
|
try {
|
|
75
137
|
return JSON.parse(contentText);
|
|
76
138
|
}
|
|
77
139
|
catch (parseError) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
140
|
+
// 尝试修复常见“字符串内控制字符未转义”问题后再解析
|
|
141
|
+
try {
|
|
142
|
+
const repaired = escapeControlCharsInJsonStrings(contentText);
|
|
143
|
+
return JSON.parse(repaired);
|
|
144
|
+
}
|
|
145
|
+
catch (parseError2) {
|
|
146
|
+
console.error("[reviewer] AI 返回内容 JSON 解析失败");
|
|
147
|
+
console.error("[reviewer] 原始内容:", content);
|
|
148
|
+
console.error(parseError2);
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
82
151
|
}
|
|
83
152
|
};
|
|
84
153
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reviewer/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,mCAIiB;AACjB,qDAAoE;AAEpE;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB,0CAA0C;IAC1C,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG,GAAW,EAAE;IACrC,OAAO,+DAA+D,CAAC;AACzE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,KAAe,EAAU,EAAE;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,eAAe,GAAG,IAAA,gCAAwB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE7D,OAAO;QACL,gCAAgC;QAChC,yBAAyB;QACzB,GAAG;QACH,iBAAiB;QACjB,OAAO;QACP,8BAA8B;QAC9B,oBAAoB;QACpB,uCAAuC;QACvC,2BAA2B;QAC3B,mCAAmC;QACnC,wCAAwC;QACxC,OAAO;QACP,KAAK;QACL,GAAG;QACH,KAAK;QACL,kCAAkC;QAClC,oCAAoC;QACpC,4CAA4C;QAC5C,6CAA6C;QAC7C,kEAAkE;QAClE,yDAAyD;QACzD,+CAA+C;QAC/C,EAAE;QACF,4CAA4C;QAC5C,eAAe;QACf,EAAE;QACF,WAAW;QACX,UAAU;QACV,EAAE;QACF,eAAe;QACf,IAAI;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,OAAe,EAAqB,EAAE;IAC7D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reviewer/index.ts"],"names":[],"mappings":"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"}
|