feat(eltex): add ai-eltex-qwen, effort max by default; fix model pick and /logout-eltex

ai-eltex-qwen: new launcher for the Eltex proxy on Qwen models
(Coder-Senior, then Flash-Next), own key eltex_qwen_key, config dir and
/logout-eltex-qwen hook branch, 200K window.

Effort: ai-glm and ai-eltex start on max via CLI --effort (AI_EFFORT
overrides), CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 so long GLM answers are
not cut at 32000. EFFORT_MAPPING notes the proxy passes effort for
anth-glm-5.3 since 09.10.

ai-eltex model pick: no longer falls back to the first /v1/models entry,
which twice picked something unusable (zai-glm-5.3 routed to flash, and
the access-group name ZAI-Test-Group -> 400). Without anth-glm-5.3 the
launcher exits with a clear message; ELTEX_MODEL still overrides.

/logout-eltex: Claude Code answered "Unknown command" and never called
the logout hook (the built-in /logout bypasses hooks too). ai-eltex now
registers commands/logout-eltex.md in its config dir, so the hook
receives the command and deletes eltex_key (checked end to end).

ru-bypass: resolve exception hosts via ahostsv4 first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Виталий Никитенко
2026-10-12 11:52:45 +07:00
parent e3a1c500fd
commit 6c507b4549
9 changed files with 298 additions and 46 deletions

View File

@@ -80,7 +80,7 @@ low -> high -> max
`CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1` - иначе Claude Code не считает `glm-5.3` effort-capable
и параметр не уходит.
- Маппинг выполняется на стороне Z.ai API, `ai-glm` локально effort не преобразует.
- Дефолт `ai-glm`: `xhigh` (= `high` у GLM), задаётся через CLI `--effort` при каждом запуске.
- Дефолт `ai-glm`: `max`, задаётся через CLI `--effort` при каждом запуске.
- Официально Z.ai маппинг `medium`/`xhigh` не документирует. Он выведен замером 2026-09-25:
по 3 запроса на уровень, средний `output_tokens` на счётной задаче - `low` ~1.5K,
`medium` ~1.1K, `high` ~3.4K, `xhigh` ~2.8K, `max` ~3.8K. `low`/`medium` уверенно короче
@@ -130,9 +130,10 @@ AI_EFFORT=high ai-deepseek # включить high
ai-deepseek # без флага - использовать уровень из settings.json
```
Дефолты: `xhigh` для `ai-claude` и `ai-glm`, `high` для остальных Claude Code лаунчеров.
`ai-glm` передаёт уровень через CLI `--effort`, поэтому каждый запуск стартует на `xhigh`
(или на `AI_EFFORT`), а `/effort` внутри сессии действует до её конца.
Дефолты: `max` для `ai-glm`, `ai-eltex` и `ai-eltex-qwen`, `xhigh` для `ai-claude`, `high` для
остальных Claude Code лаунчеров. `ai-glm`, `ai-eltex` и `ai-eltex-qwen` передают уровень через CLI
`--effort`, поэтому каждый запуск стартует на `max` (или на `AI_EFFORT`), а `/effort` внутри сессии
действует до её конца.
## Рекомендации
@@ -140,5 +141,6 @@ ai-deepseek # без флага - использовать ур
- `max` effort имеет реальный эффект у Anthropic, DeepSeek и GLM; у Kimi это всё тот же thinking on.
- `low`/`medium` у Kimi фактически не снижают reasoning; у DeepSeek `low` и у GLM `low`/`medium` дают реальный уровень `low` и экономят бюджет.
- У GLM осмысленно выбирать только `low`, `high` (или `xhigh`) и `max`.
- `ai-eltex`: корпоративный прокси Eltex (LiteLLM) игнорирует effort и thinking, GLM за ним
думает всегда одинаково. `/effort` и `AI_EFFORT` там ни на что не влияют.
- `ai-eltex`: с 09.10 прокси пропускает effort для `anth-glm-5.3`, маппинг тот же, что у `ai-glm`
(на стороне Z.ai). Как и `ai-glm`, стартует на `max` через CLI `--effort`, `AI_EFFORT=high ai-eltex`
работает. У `ai-eltex-qwen` прокси effort игнорирует, `/effort` и `AI_EFFORT` там ни на что не влияют.