Skip to content

Commit 81ff6b7

Browse files
committed
Fixed stupid API providers bug
1 parent 251e724 commit 81ff6b7

4 files changed

Lines changed: 46 additions & 2 deletions

File tree

aiduino/extension.vsixmanifest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011">
33
<Metadata>
4-
<Identity Language="en-US" Id="aiduino" Version="1.11.0" Publisher="Monster Maker"/>
4+
<Identity Language="en-US" Id="aiduino" Version="1.11.1" Publisher="Monster Maker"/>
55
<DisplayName>AI.duino</DisplayName>
66
<Description xml:space="preserve">AI-powered assistance for Arduino with multi-language support</Description>
77
</Metadata>

aiduino/extension/out/core/apiClient.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,50 @@ class UnifiedAPIClient {
161161
if (!provider) {
162162
throw new Error(`Unknown provider: ${modelId}`);
163163
}
164+
165+
// For local providers, delegate to local provider handlers
166+
if (provider.type === 'local') {
167+
const localProviders = require('../localProviders');
168+
169+
if (provider.httpConfig) {
170+
const providerHandler = localProviders.getHttpProvider(provider.name);
171+
if (providerHandler && providerHandler.extractResponse) {
172+
return providerHandler.extractResponse(responseData);
173+
}
174+
} else if (provider.processConfig) {
175+
const providerHandler = localProviders.getProcessProvider(provider.name);
176+
if (providerHandler && providerHandler.extractResponse) {
177+
return providerHandler.extractResponse(responseData);
178+
}
179+
}
180+
181+
// Fallback for local providers
182+
return typeof responseData === 'string' ? responseData : JSON.stringify(responseData);
183+
}
184+
185+
// For API providers, use the apiConfig.extractResponse function
186+
if (provider.apiConfig && provider.apiConfig.extractResponse) {
187+
return provider.apiConfig.extractResponse(responseData);
188+
}
189+
190+
// Fallback for API providers without extractResponse
191+
if (responseData && typeof responseData === 'object') {
192+
// Try common response patterns
193+
if (responseData.choices && responseData.choices[0] && responseData.choices[0].message) {
194+
return responseData.choices[0].message.content;
195+
}
196+
if (responseData.content && responseData.content[0] && responseData.content[0].text) {
197+
return responseData.content[0].text;
198+
}
199+
if (responseData.text) {
200+
return responseData.text;
201+
}
202+
if (responseData.message) {
203+
return responseData.message;
204+
}
205+
}
206+
207+
throw new Error(`Unable to extract response from ${provider.name} API`);
164208
}
165209

166210
/**

aiduino/extension/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "aiduino",
33
"displayName": "AI.duino",
44
"description": "AI-powered assistance for Arduino with Claude, ChatGPT, and other AIs: improve code, explain errors, debug help",
5-
"version": "1.11.0",
5+
"version": "1.11.1",
66
"publisher": "MonsterMaker",
77
"engines": {
88
"vscode": "^1.60.0"

installer/aiduino.vsix

299 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)