hedgequantx 2.6.91 → 2.6.92
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/package.json +1 -1
- package/src/menus/ai-agent.js +14 -2
- package/src/services/ai/client.js +35 -1
package/package.json
CHANGED
package/src/menus/ai-agent.js
CHANGED
|
@@ -955,11 +955,23 @@ const setupBrowserOAuth = async (provider, config) => {
|
|
|
955
955
|
}
|
|
956
956
|
|
|
957
957
|
// Fallback default models if API doesn't return list
|
|
958
|
+
// Updated January 2026 with latest models
|
|
958
959
|
const defaultModels = {
|
|
959
960
|
anthropic: ['claude-sonnet-4-20250514', 'claude-opus-4-20250514', 'claude-3-5-sonnet-20241022', 'claude-3-5-haiku-20241022'],
|
|
960
|
-
openai: [
|
|
961
|
+
openai: [
|
|
962
|
+
'gpt-4.5-preview', // NEW: GPT-4.5 (latest)
|
|
963
|
+
'gpt-4.5', // NEW: GPT-4.5
|
|
964
|
+
'o3', // NEW: o3 (latest reasoning)
|
|
965
|
+
'o3-mini', // o3-mini
|
|
966
|
+
'o1', // o1
|
|
967
|
+
'o1-mini', // o1-mini
|
|
968
|
+
'gpt-4o', // GPT-4o
|
|
969
|
+
'gpt-4o-mini', // GPT-4o mini
|
|
970
|
+
'gpt-4-turbo', // GPT-4 Turbo
|
|
971
|
+
],
|
|
961
972
|
gemini: ['gemini-2.5-pro', 'gemini-2.5-flash', 'gemini-2.0-flash', 'gemini-1.5-pro'],
|
|
962
|
-
iflow: ['deepseek-v3', 'deepseek-chat', 'kimi', 'glm-4']
|
|
973
|
+
iflow: ['deepseek-v3', 'deepseek-chat', 'kimi', 'glm-4'],
|
|
974
|
+
qwen: ['qwen-max', 'qwen-plus', 'qwen-turbo', 'qwen2.5-72b-instruct']
|
|
963
975
|
};
|
|
964
976
|
|
|
965
977
|
if (!models || models.length === 0) {
|
|
@@ -554,10 +554,44 @@ const fetchOpenAIModels = async (endpoint, apiKey) => {
|
|
|
554
554
|
headers['Authorization'] = `Bearer ${apiKey}`;
|
|
555
555
|
}
|
|
556
556
|
|
|
557
|
+
// Priority order for OpenAI models (newest/best first)
|
|
558
|
+
const modelPriority = [
|
|
559
|
+
'gpt-4.5-preview', 'gpt-4.5',
|
|
560
|
+
'o3', 'o3-mini', 'o3-mini-high',
|
|
561
|
+
'o1', 'o1-pro', 'o1-mini',
|
|
562
|
+
'gpt-4o', 'gpt-4o-mini', 'gpt-4o-audio-preview',
|
|
563
|
+
'gpt-4-turbo', 'gpt-4-turbo-preview',
|
|
564
|
+
'gpt-4', 'gpt-3.5-turbo'
|
|
565
|
+
];
|
|
566
|
+
|
|
557
567
|
try {
|
|
558
568
|
const response = await makeRequest(url, { method: 'GET', headers, timeout: 10000 });
|
|
559
569
|
if (response.data && Array.isArray(response.data)) {
|
|
560
|
-
|
|
570
|
+
const allModels = response.data.map(m => m.id).filter(Boolean);
|
|
571
|
+
|
|
572
|
+
// Filter to only chat/completion models, exclude embeddings/audio-only etc
|
|
573
|
+
const chatModels = allModels.filter(m =>
|
|
574
|
+
(m.includes('gpt') || m.includes('o1') || m.includes('o3')) &&
|
|
575
|
+
!m.includes('embedding') &&
|
|
576
|
+
!m.includes('whisper') &&
|
|
577
|
+
!m.includes('tts') &&
|
|
578
|
+
!m.includes('dall-e') &&
|
|
579
|
+
!m.includes('davinci') &&
|
|
580
|
+
!m.includes('babbage') &&
|
|
581
|
+
!m.includes('instruct')
|
|
582
|
+
);
|
|
583
|
+
|
|
584
|
+
// Sort by priority
|
|
585
|
+
chatModels.sort((a, b) => {
|
|
586
|
+
const aIdx = modelPriority.findIndex(p => a.includes(p));
|
|
587
|
+
const bIdx = modelPriority.findIndex(p => b.includes(p));
|
|
588
|
+
if (aIdx === -1 && bIdx === -1) return 0;
|
|
589
|
+
if (aIdx === -1) return 1;
|
|
590
|
+
if (bIdx === -1) return -1;
|
|
591
|
+
return aIdx - bIdx;
|
|
592
|
+
});
|
|
593
|
+
|
|
594
|
+
return chatModels.length > 0 ? chatModels : allModels;
|
|
561
595
|
}
|
|
562
596
|
return null;
|
|
563
597
|
} catch (error) {
|