mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-10-01 18:50:16 +03:00
Add dynamic AI model catalog and reasoning controls
Fetch and cache the models.dev catalog asynchronously, replacing bundled model lists when catalog data is available while preserving local and user-configured providers. Update live AI Assistant instances after refresh, defer startup requests until the UI is ready, and cancel in-flight catalog requests during shutdown. Prioritize providers with configured credentials and infer each provider's cheapest title-generation model from catalog pricing. Add model reasoning metadata, effort controls, request serialization, chat persistence, and localized UI labels. Refresh the bundled fallback models and support API keys for arbitrary catalog providers. Fix ACP Agent mode message chunks enqueue ordering issue (ACP thought chunks were enqueued twice while answer chunks were enqueued once). Fix UIDropDownList WrapContent sizing so dropdown width follows its text, skin, and padding, and tighten UIDropDown automatic height sizing.
This commit is contained in:
@@ -961,4 +961,8 @@ Verwendet strftime-Formatbezeichner. Die Dateierweiterung richtet sich nach dem
|
||||
<string name="couldnt_save_screenshot">Das Bildschirmfoto konnte nicht gespeichert werden.</string>
|
||||
<string name="screenshot_saved">Bildschirmfoto gespeichert:</string>
|
||||
<string name="open_screenshot_folder">Ordner öffnen</string>
|
||||
<string name="reasoning_effort">Denkaufwand</string>
|
||||
<string name="reasoning_off">Aus</string>
|
||||
<string name="reasoning_default">Standard</string>
|
||||
<string name="reasoning_on">Ein</string>
|
||||
</resources>
|
||||
|
||||
@@ -945,4 +945,8 @@ Uses strftime format specifiers. The file extension follows the selected screens
|
||||
<string name="couldnt_save_screenshot">Couldn't save the screenshot.</string>
|
||||
<string name="screenshot_saved">Screenshot saved:</string>
|
||||
<string name="open_screenshot_folder">Open Folder</string>
|
||||
<string name="reasoning_effort">Reasoning Effort</string>
|
||||
<string name="reasoning_off">Off</string>
|
||||
<string name="reasoning_default">Default</string>
|
||||
<string name="reasoning_on">On</string>
|
||||
</resources>
|
||||
|
||||
@@ -940,4 +940,8 @@ Utilise les spécificateurs de format strftime. L’extension du fichier corresp
|
||||
<string name="couldnt_save_screenshot">Impossible d’enregistrer la capture d’écran.</string>
|
||||
<string name="screenshot_saved">Capture d’écran enregistrée :</string>
|
||||
<string name="open_screenshot_folder">Ouvrir le dossier</string>
|
||||
<string name="reasoning_effort">Effort de raisonnement</string>
|
||||
<string name="reasoning_off">Désactivé</string>
|
||||
<string name="reasoning_default">Par défaut</string>
|
||||
<string name="reasoning_on">Activé</string>
|
||||
</resources>
|
||||
|
||||
@@ -719,4 +719,8 @@ file in the directory tree.</string>
|
||||
<string name="couldnt_save_screenshot">无法保存屏幕截图。</string>
|
||||
<string name="screenshot_saved">屏幕截图已保存:</string>
|
||||
<string name="open_screenshot_folder">打开屏幕截图文件夹</string>
|
||||
<string name="reasoning_effort">推理强度</string>
|
||||
<string name="reasoning_off">关闭</string>
|
||||
<string name="reasoning_default">默认</string>
|
||||
<string name="reasoning_on">开启</string>
|
||||
</resources>
|
||||
|
||||
@@ -4,6 +4,24 @@
|
||||
"anthropic": {
|
||||
"api_url": "https://api.anthropic.com/v1/messages",
|
||||
"models": [
|
||||
{
|
||||
"display_name": "Claude Opus 5",
|
||||
"name": "claude-opus-5",
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["low", "medium", "high", "xhigh", "max"] }]
|
||||
},
|
||||
{
|
||||
"display_name": "Claude Sonnet 5",
|
||||
"name": "claude-sonnet-5",
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["low", "medium", "high", "xhigh", "max"] }]
|
||||
},
|
||||
{
|
||||
"display_name": "Claude Opus 4.8",
|
||||
"name": "claude-opus-4-8",
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["low", "medium", "high", "xhigh", "max"] }]
|
||||
},
|
||||
{
|
||||
"display_name": "Claude Opus 4.6",
|
||||
"name": "claude-opus-4-6"
|
||||
@@ -64,6 +82,21 @@
|
||||
"google": {
|
||||
"api_url": "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions",
|
||||
"models": [
|
||||
{
|
||||
"name": "gemini-3.7-flash",
|
||||
"display_name": "Gemini 3.7 Flash",
|
||||
"max_tokens": 1000000,
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["low", "medium", "high"] }]
|
||||
},
|
||||
{
|
||||
"name": "gemini-3.5-flash-lite",
|
||||
"display_name": "Gemini 3.5 Flash Lite",
|
||||
"max_tokens": 1000000,
|
||||
"cheapest": true,
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["minimal", "low", "medium", "high"] }]
|
||||
},
|
||||
{
|
||||
"name": "gemini-2.5-flash-lite",
|
||||
"display_name": "Gemini 2.5 Flash Lite",
|
||||
@@ -106,6 +139,21 @@
|
||||
"mistral": {
|
||||
"api_url": "https://api.mistral.ai/v1/chat/completions",
|
||||
"models": [
|
||||
{
|
||||
"display_name": "Mistral Medium 3.5",
|
||||
"max_tokens": 131000,
|
||||
"name": "mistral-medium-latest",
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["none", "high"] }]
|
||||
},
|
||||
{
|
||||
"display_name": "Mistral Small 4",
|
||||
"max_tokens": 131000,
|
||||
"name": "mistral-small-latest",
|
||||
"cheapest": true,
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["none", "high"] }]
|
||||
},
|
||||
{
|
||||
"display_name": "codestral-latest",
|
||||
"max_tokens": 256000,
|
||||
@@ -144,6 +192,25 @@
|
||||
"api_url": "https://api.openai.com/v1/chat/completions",
|
||||
"display_name": "OpenAI",
|
||||
"models": [
|
||||
{
|
||||
"display_name": "GPT-5.6 Terra",
|
||||
"name": "gpt-5.6-terra",
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["none", "low", "medium", "high", "xhigh", "max"] }]
|
||||
},
|
||||
{
|
||||
"display_name": "GPT-5.6 Sol",
|
||||
"name": "gpt-5.6-sol",
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["none", "low", "medium", "high", "xhigh", "max"] }]
|
||||
},
|
||||
{
|
||||
"display_name": "GPT-5.6 Luna",
|
||||
"name": "gpt-5.6-luna",
|
||||
"cheapest": true,
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["none", "low", "medium", "high", "xhigh", "max"] }]
|
||||
},
|
||||
{
|
||||
"max_tokens": 128000,
|
||||
"name": "gpt-4o"
|
||||
@@ -238,6 +305,18 @@
|
||||
"api_url": "https://api.x.ai/v1/chat/completions",
|
||||
"display_name": "xAI",
|
||||
"models": [
|
||||
{
|
||||
"name": "grok-4.6",
|
||||
"display_name": "Grok 4.6",
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["low", "medium", "high", "xhigh"] }]
|
||||
},
|
||||
{
|
||||
"name": "grok-4.5",
|
||||
"display_name": "Grok 4.5",
|
||||
"reasoning": true,
|
||||
"reasoning_options": [{ "type": "effort", "values": ["low", "medium", "high"] }]
|
||||
},
|
||||
{
|
||||
"name": "grok-4-1-fast-non-reasoning-latest",
|
||||
"cheapest": true
|
||||
@@ -454,7 +533,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"moonshot": {
|
||||
"moonshotai": {
|
||||
"api_url": "https://api.moonshot.ai/v1/chat/completions",
|
||||
"display_name": "Moonshot",
|
||||
"models": [
|
||||
@@ -497,7 +576,7 @@
|
||||
"fetch_models_url": "http://localhost:8080/api/tags",
|
||||
"open_api": true
|
||||
},
|
||||
"together": {
|
||||
"togetherai": {
|
||||
"api_url": "https://api.together.xyz/v1/chat/completions",
|
||||
"display_name": "Together AI",
|
||||
"models": [
|
||||
@@ -532,7 +611,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"xiaomimimo": {
|
||||
"xiaomi": {
|
||||
"api_url": "https://api.xiaomimimo.com/v1/chat/completions",
|
||||
"display_name": "Xiaomi MiMo",
|
||||
"models": [
|
||||
|
||||
Reference in New Issue
Block a user