n8n-nodes-github-copilot 4.4.2 â 4.4.4
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.
|
@@ -43,7 +43,7 @@ class GitHubCopilotOpenAI {
|
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
async execute() {
|
|
46
|
-
var _a, _b, _c, _d, _e, _f;
|
|
46
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
47
47
|
const items = this.getInputData();
|
|
48
48
|
const returnData = [];
|
|
49
49
|
for (let i = 0; i < items.length; i++) {
|
|
@@ -152,19 +152,6 @@ class GitHubCopilotOpenAI {
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
console.log('đ¤ Final messages being sent to API:', JSON.stringify(messages, null, 2));
|
|
155
|
-
for (let msgIndex = 0; msgIndex < messages.length; msgIndex++) {
|
|
156
|
-
const msg = messages[msgIndex];
|
|
157
|
-
if (msg.content !== null &&
|
|
158
|
-
msg.content !== undefined &&
|
|
159
|
-
typeof msg.content === 'object' &&
|
|
160
|
-
!Array.isArray(msg.content)) {
|
|
161
|
-
const originalContent = msg.content;
|
|
162
|
-
msg.content = JSON.stringify(msg.content, null, 2);
|
|
163
|
-
console.log(`đ Auto-converted message[${msgIndex}].content from object to JSON string`);
|
|
164
|
-
console.log(' Original type:', typeof originalContent);
|
|
165
|
-
console.log(' Converted to:', msg.content.substring(0, 100) + '...');
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
155
|
const advancedOptions = this.getNodeParameter('advancedOptions', i, {});
|
|
169
156
|
let parsedTools = [];
|
|
170
157
|
const tools = advancedOptions.tools;
|
|
@@ -256,7 +243,10 @@ class GitHubCopilotOpenAI {
|
|
|
256
243
|
break;
|
|
257
244
|
}
|
|
258
245
|
if (typeof content === 'string') {
|
|
259
|
-
|
|
246
|
+
const trimmed = content.trim();
|
|
247
|
+
const isActualDataUrl = /^data:image\/[a-z]+;base64,[A-Za-z0-9+\/=]{100,}/i.test(trimmed);
|
|
248
|
+
const isCopilotFileUrl = trimmed.startsWith('copilot-file://');
|
|
249
|
+
if (isActualDataUrl || isCopilotFileUrl) {
|
|
260
250
|
hasVisionContent = true;
|
|
261
251
|
break;
|
|
262
252
|
}
|
|
@@ -274,12 +264,15 @@ class GitHubCopilotOpenAI {
|
|
|
274
264
|
}
|
|
275
265
|
if (hasVisionContent) {
|
|
276
266
|
const credentials = await this.getCredentials('githubCopilotApi');
|
|
277
|
-
const oauthToken =
|
|
278
|
-
let supportsVision = oauthToken
|
|
279
|
-
? DynamicModelsManager_1.DynamicModelsManager.modelSupportsVision(oauthToken, copilotModel)
|
|
280
|
-
: null;
|
|
267
|
+
const oauthToken = credentials.oauthToken;
|
|
268
|
+
let supportsVision = DynamicModelsManager_1.DynamicModelsManager.modelSupportsVision(oauthToken, copilotModel);
|
|
281
269
|
if (supportsVision === null) {
|
|
282
270
|
const modelInfo = GitHubCopilotModels_1.GitHubCopilotModelsManager.getModelByValue(copilotModel);
|
|
271
|
+
supportsVision = !!(((_f = modelInfo === null || modelInfo === void 0 ? void 0 : modelInfo.capabilities) === null || _f === void 0 ? void 0 : _f.vision) || ((_g = modelInfo === null || modelInfo === void 0 ? void 0 : modelInfo.capabilities) === null || _g === void 0 ? void 0 : _g.multimodal));
|
|
272
|
+
console.log(`đī¸ Vision check for model ${copilotModel}: using static list, supportsVision=${supportsVision}`);
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
console.log(`đī¸ Vision check for model ${copilotModel}: using API cache, supportsVision=${supportsVision}`);
|
|
283
276
|
}
|
|
284
277
|
if (!supportsVision) {
|
|
285
278
|
const enableVisionFallback = advancedOptions.enableVisionFallback || false;
|
|
@@ -345,7 +338,7 @@ class GitHubCopilotOpenAI {
|
|
|
345
338
|
console.log(' Has Vision Content:', hasVisionContent);
|
|
346
339
|
console.log(' Request body:', JSON.stringify(requestBody, null, 2));
|
|
347
340
|
const response = await (0, utils_1.makeApiRequest)(this, GitHubCopilotEndpoints_1.GITHUB_COPILOT_API.ENDPOINTS.CHAT_COMPLETIONS, requestBody, hasVisionContent);
|
|
348
|
-
const retriesUsed = ((
|
|
341
|
+
const retriesUsed = ((_h = response._retryMetadata) === null || _h === void 0 ? void 0 : _h.retries) || 0;
|
|
349
342
|
if (retriesUsed > 0) {
|
|
350
343
|
console.log(`âšī¸ Request completed with ${retriesUsed} retry(ies)`);
|
|
351
344
|
}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-github-copilot",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.4",
|
|
4
4
|
"description": "n8n community node for GitHub Copilot with CLI integration, Chat API access, and AI Chat Model for workflows with full tools and function calling support - 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": "4.4.
|
|
3
|
+
"version": "4.4.4",
|
|
4
4
|
"description": "n8n community node for GitHub Copilot with CLI integration, Chat API access, and AI Chat Model for workflows with full tools and function calling support - 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",
|