@kenkaiiii/gg-ai 5.2.0 → 5.4.0
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/index.cjs +20 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +20 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -144,6 +144,22 @@ function isMythosAccessError(message) {
|
|
|
144
144
|
const lower = message.toLowerCase();
|
|
145
145
|
return lower.includes("mythos") && (lower.includes("not_found") || lower.includes("not found") || lower.includes("no access"));
|
|
146
146
|
}
|
|
147
|
+
function isRawJsonErrorEcho(message) {
|
|
148
|
+
const trimmed = message.trim();
|
|
149
|
+
const jsonStart = trimmed.indexOf("{");
|
|
150
|
+
if (jsonStart === -1) return false;
|
|
151
|
+
const prefix = trimmed.slice(0, jsonStart).trim();
|
|
152
|
+
if (prefix && !/^\d+$/.test(prefix)) return false;
|
|
153
|
+
try {
|
|
154
|
+
const parsed = JSON.parse(trimmed.slice(jsonStart));
|
|
155
|
+
return typeof parsed === "object" && parsed !== null;
|
|
156
|
+
} catch {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function emptyProviderErrorMessage(statusCode) {
|
|
161
|
+
return statusCode ? `The provider returned an empty error response (HTTP ${statusCode}), with no further detail.` : "The provider returned an empty error response, with no further detail.";
|
|
162
|
+
}
|
|
147
163
|
function formatError(err) {
|
|
148
164
|
if (err instanceof ProviderError) {
|
|
149
165
|
const name = providerDisplayName(err.provider);
|
|
@@ -1595,9 +1611,10 @@ function toError(err) {
|
|
|
1595
1611
|
const errorBody = err.error;
|
|
1596
1612
|
const nestedError = errorBody?.error;
|
|
1597
1613
|
const requestId = err.requestID ?? err.request_id ?? (typeof errorBody?.request_id === "string" ? errorBody.request_id : void 0) ?? (typeof nestedError?.request_id === "string" ? nestedError.request_id : void 0) ?? void 0;
|
|
1598
|
-
const bodyMessage = typeof nestedError?.message === "string" ? nestedError.message : typeof errorBody?.message === "string" ? errorBody.message : void 0;
|
|
1614
|
+
const bodyMessage = typeof nestedError?.message === "string" && nestedError.message.trim() ? nestedError.message.trim() : typeof errorBody?.message === "string" && errorBody.message.trim() ? errorBody.message.trim() : void 0;
|
|
1599
1615
|
const bodyType = typeof nestedError?.type === "string" ? nestedError.type : typeof errorBody?.type === "string" ? errorBody.type : typeof err.type === "string" ? err.type : void 0;
|
|
1600
|
-
const
|
|
1616
|
+
const fallbackMessage = isRawJsonErrorEcho(err.message) ? emptyProviderErrorMessage(err.status) : err.message;
|
|
1617
|
+
const message = bodyType && bodyMessage ? `${bodyType}: ${bodyMessage}` : bodyMessage ?? fallbackMessage;
|
|
1601
1618
|
if (err.status === 429) {
|
|
1602
1619
|
const limit = readUnifiedRateLimit(err.headers);
|
|
1603
1620
|
const farOff = limit.resetsAt != null && limit.resetsAt * 1e3 - Date.now() > 6e4;
|
|
@@ -2046,7 +2063,7 @@ function toError2(err, provider = "openai") {
|
|
|
2046
2063
|
const body = err.error;
|
|
2047
2064
|
const bodyMessage = typeof body?.message === "string" && body.message.trim() ? body.message.trim() : void 0;
|
|
2048
2065
|
const modelName = typeof body?.model === "string" ? body.model : "";
|
|
2049
|
-
const cleanMessage = bodyMessage ?? err.message;
|
|
2066
|
+
const cleanMessage = bodyMessage ?? (isRawJsonErrorEcho(err.message) ? emptyProviderErrorMessage(err.status) : err.message);
|
|
2050
2067
|
let hint;
|
|
2051
2068
|
if (modelName === "codex-mini-latest" || cleanMessage.includes("codex-mini-latest")) {
|
|
2052
2069
|
hint = "codex-mini-latest requires an OpenAI Pro or Max subscription. Your account currently has access to GPT-5.4 and GPT-5.4 Mini.";
|