From 13e080bea52a6e264aed546c9e7c78e1eb54bc74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Tue, 16 Jun 2026 07:11:03 +0300 Subject: [PATCH] =?UTF-8?q?docs(router-config):=20=D0=B0=D0=BA=D1=82=D1=83?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=BF=D0=BE=D0=B4=20deepseek-v4-pro=20+=20?= =?UTF-8?q?=D1=82=D0=B0=D0=B9=D0=BC=D0=B0=D1=83=D1=82=20300=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- tools/enforce-judge-gate.mjs | 2 +- tools/enforce-mentor-on-plan-write.mjs | 2 +- tools/router-config.mjs | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/enforce-judge-gate.mjs b/tools/enforce-judge-gate.mjs index 684882d..fe7264a 100644 --- a/tools/enforce-judge-gate.mjs +++ b/tools/enforce-judge-gate.mjs @@ -230,7 +230,7 @@ export async function callJudgeModel({ functionName, requiredLenses, promptArgs, const prompt = { system: base.system + '\n' + JSON_DIRECTIVE, user: base.user }; try { // perAttemptTimeoutMs: тяжёлый судья ~25-32с — дефолт 30с давал таймаут→degraded→печать - // не вставала (systematic-debugging 2026-06-14). 90с укладывает с большим запасом. + // не вставала (systematic-debugging 2026-06-14). 300с укладывает латентность deepseek-v4-pro. const text = await transport(prompt, { apiKey, model, perAttemptTimeoutMs }); return parseJudgeResponse(text); } catch (err) { diff --git a/tools/enforce-mentor-on-plan-write.mjs b/tools/enforce-mentor-on-plan-write.mjs index 5218338..828a2d1 100644 --- a/tools/enforce-mentor-on-plan-write.mjs +++ b/tools/enforce-mentor-on-plan-write.mjs @@ -91,7 +91,7 @@ export function decideMentorObjection({ res, planContent, n } = {}) { * его ловит runMentorVerdict → wired:false (SE-R6-6, не суд). */ export function buildLlmCall({ apiKey, model = CLASSIFIER_MODEL, transport = callAnthropicAPI, perAttemptTimeoutMs = HEAVY_LLM_TIMEOUT_MS }) { // perAttemptTimeoutMs: вердикт наставника тяжёлый (~25-32с) — дефолт 30с давал - // таймаут→degraded. 90с укладывает с большим запасом (systematic-debugging 2026-06-14). + // таймаут→degraded. 300с укладывает латентность deepseek-v4-pro (systematic-debugging 2026-06-14). return async ({ buildPrompt }) => transport(buildPrompt(), { apiKey, model, perAttemptTimeoutMs }); } diff --git a/tools/router-config.mjs b/tools/router-config.mjs index 98c5cfe..806bcb3 100644 --- a/tools/router-config.mjs +++ b/tools/router-config.mjs @@ -2,15 +2,15 @@ // Source: spec docs/superpowers/specs/2026-05-24-llm-first-router-overhaul-design.md v2.3 // Resolved Sonnet/Opus IDs via ProxyAPI /v1/models 2026-05-25: // ProxyAPI exposes Sonnet 4.6 only as alias `claude-sonnet-4-6` (no dated YYYYMMDD form) -// — alias is canonical here. Opus 4.7 — `claude-opus-4-7`. +// — CLASSIFIER мигрирован на deepseek-v4-pro, ba10068. Opus 4.7 — `claude-opus-4-7`. export const CLASSIFIER_MODEL = 'deepseek-v4-pro'; export const REVIEWER_MODEL = 'claude-opus-4-7'; // Per-attempt таймаут для ТЯЖЁЛЫХ LLM-вызовов (вердикт наставника + судья). Дефолт // callAnthropicAPI = 30_000 — но реальная латентность судьи/наставника по большой -// спеке/плану (3-6k in / ~1.5k out, sonnet-4-6 через прокси) = 25-32с, на грани 30с. +// спеке/плану (3-6k in / ~1.5k out, deepseek-v4-pro через прокси) = 25-32с, на грани 30с. // При 30с часть попыток упиралась в таймаут → degraded → печать не вставала (спека -// не запечатывалась → план не мог встать). 90с укладывает наблюдаемую латентность с +// не запечатывалась → план не мог встать). 300с укладывает латентность deepseek-v4-pro с // большим запасом (на спайки прокси); ретраи на 5xx сохраняются. systematic-debugging 2026-06-14. export const HEAVY_LLM_TIMEOUT_MS = 300_000; export const INHERITANCE_MAX_AGE_MIN = 30;