@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.js
CHANGED
|
@@ -89,6 +89,22 @@ function isMythosAccessError(message) {
|
|
|
89
89
|
const lower = message.toLowerCase();
|
|
90
90
|
return lower.includes("mythos") && (lower.includes("not_found") || lower.includes("not found") || lower.includes("no access"));
|
|
91
91
|
}
|
|
92
|
+
function isRawJsonErrorEcho(message) {
|
|
93
|
+
const trimmed = message.trim();
|
|
94
|
+
const jsonStart = trimmed.indexOf("{");
|
|
95
|
+
if (jsonStart === -1) return false;
|
|
96
|
+
const prefix = trimmed.slice(0, jsonStart).trim();
|
|
97
|
+
if (prefix && !/^\d+$/.test(prefix)) return false;
|
|
98
|
+
try {
|
|
99
|
+
const parsed = JSON.parse(trimmed.slice(jsonStart));
|
|
100
|
+
return typeof parsed === "object" && parsed !== null;
|
|
101
|
+
} catch {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function emptyProviderErrorMessage(statusCode) {
|
|
106
|
+
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.";
|
|
107
|
+
}
|
|
92
108
|
function formatError(err) {
|
|
93
109
|
if (err instanceof ProviderError) {
|
|
94
110
|
const name = providerDisplayName(err.provider);
|
|
@@ -1540,9 +1556,10 @@ function toError(err) {
|
|
|
1540
1556
|
const errorBody = err.error;
|
|
1541
1557
|
const nestedError = errorBody?.error;
|
|
1542
1558
|
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;
|
|
1543
|
-
const bodyMessage = typeof nestedError?.message === "string" ? nestedError.message : typeof errorBody?.message === "string" ? errorBody.message : void 0;
|
|
1559
|
+
const bodyMessage = typeof nestedError?.message === "string" && nestedError.message.trim() ? nestedError.message.trim() : typeof errorBody?.message === "string" && errorBody.message.trim() ? errorBody.message.trim() : void 0;
|
|
1544
1560
|
const bodyType = typeof nestedError?.type === "string" ? nestedError.type : typeof errorBody?.type === "string" ? errorBody.type : typeof err.type === "string" ? err.type : void 0;
|
|
1545
|
-
const
|
|
1561
|
+
const fallbackMessage = isRawJsonErrorEcho(err.message) ? emptyProviderErrorMessage(err.status) : err.message;
|
|
1562
|
+
const message = bodyType && bodyMessage ? `${bodyType}: ${bodyMessage}` : bodyMessage ?? fallbackMessage;
|
|
1546
1563
|
if (err.status === 429) {
|
|
1547
1564
|
const limit = readUnifiedRateLimit(err.headers);
|
|
1548
1565
|
const farOff = limit.resetsAt != null && limit.resetsAt * 1e3 - Date.now() > 6e4;
|
|
@@ -1991,7 +2008,7 @@ function toError2(err, provider = "openai") {
|
|
|
1991
2008
|
const body = err.error;
|
|
1992
2009
|
const bodyMessage = typeof body?.message === "string" && body.message.trim() ? body.message.trim() : void 0;
|
|
1993
2010
|
const modelName = typeof body?.model === "string" ? body.model : "";
|
|
1994
|
-
const cleanMessage = bodyMessage ?? err.message;
|
|
2011
|
+
const cleanMessage = bodyMessage ?? (isRawJsonErrorEcho(err.message) ? emptyProviderErrorMessage(err.status) : err.message);
|
|
1995
2012
|
let hint;
|
|
1996
2013
|
if (modelName === "codex-mini-latest" || cleanMessage.includes("codex-mini-latest")) {
|
|
1997
2014
|
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.";
|