n8n-nodes-github-copilot 3.31.29 → 3.31.31
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,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GitHubCopilotOpenAI = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
4
5
|
const nodeProperties_1 = require("./nodeProperties");
|
|
5
6
|
const utils_1 = require("../GitHubCopilotChatAPI/utils");
|
|
6
7
|
const GitHubCopilotEndpoints_1 = require("../../shared/utils/GitHubCopilotEndpoints");
|
|
@@ -245,6 +246,12 @@ class GitHubCopilotOpenAI {
|
|
|
245
246
|
const errorString = JSON.stringify(error);
|
|
246
247
|
console.error('❌ Error occurred:', errorMessage);
|
|
247
248
|
console.error('❌ Error details:', errorString);
|
|
249
|
+
let cleanMessage = errorMessage;
|
|
250
|
+
cleanMessage = cleanMessage.replace(/\[Token used: [^\]]+\]/g, '').trim();
|
|
251
|
+
cleanMessage = cleanMessage.replace(/\[Attempt: \d+\/\d+\]/g, '').trim();
|
|
252
|
+
cleanMessage = cleanMessage.replace(/^GitHub Copilot API error:\s*/i, '').trim();
|
|
253
|
+
cleanMessage = cleanMessage.replace(/\s+/g, ' ').trim();
|
|
254
|
+
console.log('🧹 Cleaned error message:', cleanMessage);
|
|
248
255
|
let apiError = null;
|
|
249
256
|
try {
|
|
250
257
|
if (error && typeof error === 'object' && 'cause' in error) {
|
|
@@ -266,45 +273,64 @@ class GitHubCopilotOpenAI {
|
|
|
266
273
|
let errorType = "invalid_request_error";
|
|
267
274
|
let errorCode = null;
|
|
268
275
|
let errorParam = null;
|
|
269
|
-
let finalMessage =
|
|
276
|
+
let finalMessage = cleanMessage;
|
|
270
277
|
if (apiError && apiError.error) {
|
|
271
|
-
finalMessage = apiError.error.message ||
|
|
278
|
+
finalMessage = apiError.error.message || cleanMessage;
|
|
272
279
|
errorType = apiError.error.type || errorType;
|
|
273
280
|
errorCode = apiError.error.code || null;
|
|
274
281
|
errorParam = apiError.error.param || null;
|
|
275
282
|
console.log('✅ Using GitHub Copilot API error details');
|
|
276
283
|
}
|
|
277
284
|
else {
|
|
278
|
-
|
|
285
|
+
const lowerMessage = cleanMessage.toLowerCase();
|
|
286
|
+
const is400Error = lowerMessage.includes("400") || lowerMessage.includes("bad request");
|
|
287
|
+
if (is400Error) {
|
|
279
288
|
errorType = "invalid_request_error";
|
|
280
|
-
errorCode = "
|
|
281
|
-
|
|
289
|
+
errorCode = "invalid_request";
|
|
290
|
+
finalMessage = cleanMessage;
|
|
291
|
+
console.log('🚫 400 Bad Request detected - throwing non-retryable error');
|
|
292
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Bad Request (400): ${finalMessage}`, {
|
|
293
|
+
itemIndex: i,
|
|
294
|
+
description: 'The request was malformed or contains invalid parameters. Retrying will not help.',
|
|
295
|
+
});
|
|
282
296
|
}
|
|
283
|
-
else if (
|
|
297
|
+
else if (lowerMessage.includes("403") || lowerMessage.includes("forbidden")) {
|
|
284
298
|
errorType = "invalid_request_error";
|
|
285
299
|
errorCode = "insufficient_quota";
|
|
300
|
+
if (lowerMessage.includes("access") && lowerMessage.includes("forbidden")) {
|
|
301
|
+
finalMessage = "You exceeded your current quota, please check your plan and billing details.";
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
finalMessage = cleanMessage;
|
|
305
|
+
}
|
|
286
306
|
}
|
|
287
|
-
else if (
|
|
307
|
+
else if (lowerMessage.includes("max") && lowerMessage.includes("token")) {
|
|
288
308
|
errorType = "invalid_request_error";
|
|
289
|
-
errorCode = "
|
|
309
|
+
errorCode = "context_length_exceeded";
|
|
310
|
+
errorParam = "max_tokens";
|
|
311
|
+
finalMessage = "This model's maximum context length is exceeded. Please reduce the length of the messages or completion.";
|
|
290
312
|
}
|
|
291
|
-
else if (
|
|
313
|
+
else if (lowerMessage.includes("401") || lowerMessage.includes("unauthorized")) {
|
|
292
314
|
errorType = "invalid_request_error";
|
|
293
|
-
errorCode = "
|
|
315
|
+
errorCode = "invalid_api_key";
|
|
316
|
+
finalMessage = "Incorrect API key provided. You can find your API key at https://platform.openai.com/account/api-keys.";
|
|
294
317
|
}
|
|
295
|
-
else if (
|
|
318
|
+
else if (lowerMessage.includes("429") || lowerMessage.includes("rate limit")) {
|
|
296
319
|
errorType = "rate_limit_error";
|
|
297
320
|
errorCode = "rate_limit_exceeded";
|
|
321
|
+
finalMessage = "Rate limit reached. Please wait before making more requests.";
|
|
298
322
|
}
|
|
299
|
-
else if (
|
|
323
|
+
else if (lowerMessage.includes("timeout")) {
|
|
300
324
|
errorType = "api_error";
|
|
301
325
|
errorCode = "timeout";
|
|
326
|
+
finalMessage = "Request timeout. Please try again.";
|
|
302
327
|
}
|
|
303
328
|
else {
|
|
304
329
|
errorType = "api_error";
|
|
305
330
|
errorCode = "internal_error";
|
|
331
|
+
finalMessage = cleanMessage;
|
|
306
332
|
}
|
|
307
|
-
console.log('⚠️ Using fallback error detection');
|
|
333
|
+
console.log('⚠️ Using fallback error detection with cleaned message');
|
|
308
334
|
}
|
|
309
335
|
console.log('📋 Final error format:', {
|
|
310
336
|
message: finalMessage,
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-github-copilot",
|
|
3
|
-
"version": "3.31.
|
|
3
|
+
"version": "3.31.31",
|
|
4
4
|
"description": "n8n community node for GitHub Copilot with CLI integration, Chat API access, and AI Chat Model for workflows - access GPT-5, Claude, Gemini and more using your Copilot subscription",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/sufficit/n8n-nodes-github-copilot",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-github-copilot",
|
|
3
|
-
"version": "3.31.
|
|
3
|
+
"version": "3.31.31",
|
|
4
4
|
"description": "n8n community node for GitHub Copilot with CLI integration, Chat API access, and AI Chat Model for workflows - access GPT-5, Claude, Gemini and more using your Copilot subscription",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/sufficit/n8n-nodes-github-copilot",
|