feat: update DeepSeek models to V4 Flash and V4 Pro (#103)

* feat: update DeepSeek models to V4 Flash and V4 Pro

- Replace deprecated deepseek-chat / deepseek-reasoner with deepseek-v4-flash / deepseek-v4-pro
- Update base URL from api.deepseek.com/v1 to api.deepseek.com
- Update context window (1M) and max output (384K) per official API docs
- Old models deprecated 2026-07-24

* fix: resolveGeneralLLMConfig missing baseUrl + Admiral timeout 180s

resolveGeneralLLMConfig constructed a new LLMConfig but omitted
baseUrl, causing the adapter to fall back to api.openai.com/v1
regardless of provider — DeepSeek keys hit OpenAI (401).
Also raised Admiral preview timeout to 180s for thinking-mode models.

* fix: createTempestCommandInstance missing baseUrl for operator exec

Operator LLM calls also lacked baseUrl, same 401-for-DeepSeek bug
as resolveGeneralLLMConfig. Reads provider-specific baseUrl from config.

* fix(deepseek): migrate retired persisted defaults

---------

Co-authored-by: Joseph Magly <1159087+jmagly@users.noreply.github.com>
This commit is contained in:
Krzysztof MarciniakandJoseph Magly authored and GitHub committed 2026-07-20 11:36:50 -04:00
1 parent 9cce68e804
commit 440dedd9c1
6 files changed
+114 -36

No files matched your search

+5 -5
View File
@@ -7037,9 +7037,9 @@ Correlating findings across agents, identifying patterns, producing actionable i
{ id: 'z-ai/glm-4.7', name: 'GLM 4.7', provider: 'Z.AI' },
// Meta
{ id: 'meta-llama/llama-3.3-70b', name: 'Llama 3.3 70B', provider: 'Meta' },
// DeepSeek (Dec 2025)
{ id: 'deepseek/deepseek-r1', name: 'DeepSeek R1', provider: 'DeepSeek' },
{ id: 'deepseek/deepseek-chat', name: 'DeepSeek V3', provider: 'DeepSeek' },
// DeepSeek (Jul 2026 — V4)
{ id: 'deepseek/deepseek-v4-pro', name: 'DeepSeek V4 Pro', provider: 'DeepSeek' },
{ id: 'deepseek/deepseek-v4-flash', name: 'DeepSeek V4 Flash', provider: 'DeepSeek' },
// Mistral
{ id: 'mistralai/mistral-large', name: 'Mistral Large', provider: 'Mistral' },
// Local
@@ -25836,8 +25836,8 @@ Be specific and actionable. Format as structured JSON.`;
const bb = _admBackbone();
try {
// Op Admiral planning is a slow LLM call — cap it so a first-time user never gets a
// permanent "…drafting…" spinner if the model stalls (120s = generous but finite).
const r = await fetch('/api/admiral/launch', { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(Object.assign({ brief: _admBrief('dry_run'), confirmed: false }, bb)), signal: AbortSignal.timeout(120000) });
// permanent "…drafting…" spinner if the model stalls (180s).
const r = await fetch('/api/admiral/launch', { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(Object.assign({ brief: _admBrief('dry_run'), confirmed: false }, bb)), signal: AbortSignal.timeout(180000) });
const d = await r.json();
if (d.error) throw new Error(d.error);
const plan = d.plan || d.directive || d;