fix anth-glm-5.3-5

This commit is contained in:
Виталий Никитенко
2026-10-16 17:01:17 +07:00
parent ef187a1b48
commit f4a8c23af3
2 changed files with 96 additions and 25 deletions

View File

@@ -124,17 +124,69 @@ test_eltex_claude_launcher() {
# ── ai-eltex: модель берётся из /v1/models ключа ──────────────────────────
test_eltex_model_from_key() {
if echo "$ELTEX_SECTION" | grep -q '/v1/models' \
&& echo "$ELTEX_SECTION" | grep -q 'model="${ELTEX_MODEL:-}"' \
&& echo "$ELTEX_SECTION" | grep -q '\*" anth-glm-5.3 "\*) model="anth-glm-5.3"' \
&& echo "$ELTEX_SECTION" | grep -Fq 'model="${ELTEX_MODEL:-${model:-anth-glm-5.3-5}}"' \
&& echo "$ELTEX_SECTION" | grep -Fq '*" anth-glm-5.3-5 "*) echo "anth-glm-5.3-5"' \
&& ! echo "$ELTEX_SECTION" | grep -q 'ids\[0\]' \
&& echo "$ELTEX_SECTION" | grep -q 'ANTHROPIC_DEFAULT_OPUS_MODEL="$model"' \
&& echo "$ELTEX_SECTION" | grep -q 'ANTHROPIC_DEFAULT_HAIKU_MODEL="$model"'; then
ok "ai-eltex: uses anth-glm-5.3, never the first /v1/models entry (ELTEX_MODEL overrides)"
ok "ai-eltex: uses anth-glm-5.3-5, never the first /v1/models entry (ELTEX_MODEL overrides)"
else
fail "ai-eltex: must use anth-glm-5.3 (not the first /v1/models entry), ELTEX_MODEL overrides"
fail "ai-eltex: must use anth-glm-5.3-5 (not the first /v1/models entry), ELTEX_MODEL overrides"
fi
}
# ── ai-eltex: нет anth-glm-5.3-5 у ключа -> авто-логаут, свежий ключ не сохраняется ──
test_eltex_autologout_on_missing_model() {
local tmp ok_run=1 rc=0 out
tmp=$(mktemp -d)
mkdir -p "$tmp/bin" "$tmp/mock" "$tmp/home/.config/ai-setup"
echo "$HELPERS_SECTION" | HELPERS_FILE="$tmp/bin/ai-api-helpers.sh" bash
echo "$ELTEX_SECTION" | BIN_DIR="$tmp/bin" bash
# Прокси отвечает 200, но anth-glm-5.3-5 в списке моделей ключа нет
cat > "$tmp/mock/curl" <<'CURLEOF'
#!/usr/bin/env bash
if [[ "$*" == *"/v1/models"* ]]; then
printf '%s\n%s' "$MODELS_BODY" "200"
else
printf '%s\n%s' '{"ok":true}' "200"
fi
CURLEOF
printf '#!/usr/bin/env bash\nexit 0\n' > "$tmp/mock/claude"
chmod +x "$tmp/mock/curl" "$tmp/mock/claude"
# Сохранённый ключ: авто-логаут (файл удалён), новый ключ не вводим -> выход 1
echo sk-old > "$tmp/home/.config/ai-setup/eltex_key"
out=$(printf 'n\n' | HOME="$tmp/home" PATH="$tmp/mock:$PATH" \
MODELS_BODY='{"data":[{"id":"zai-glm-5.3-flash-2"},{"id":"ZAI-Test-Group"}]}' \
bash "$tmp/bin/ai-eltex" 2>&1) || rc=$?
[ "$rc" -eq 1 ] || ok_run=0
echo "$out" | grep -q 'Ключу недоступна модель anth-glm-5.3-5' || ok_run=0
echo "$out" | grep -q 'авто-логаут' || ok_run=0
[ ! -f "$tmp/home/.config/ai-setup/eltex_key" ] || ok_run=0
# Свежий ключ без anth-glm-5.3-5 не сохраняется вовсе
rc=0
out=$(printf 'sk-new\n' | HOME="$tmp/home" PATH="$tmp/mock:$PATH" \
MODELS_BODY='{"data":[{"id":"zai-glm-5.3-flash-2"}]}' \
bash "$tmp/bin/ai-eltex" 2>&1) || rc=$?
[ "$rc" -eq 1 ] || ok_run=0
echo "$out" | grep -q 'Ключ НЕ сохранён' || ok_run=0
[ ! -f "$tmp/home/.config/ai-setup/eltex_key" ] || ok_run=0
# ELTEX_MODEL перебивает проверку: ключ живёт, запуск идёт
echo sk-keep > "$tmp/home/.config/ai-setup/eltex_key"
rc=0
out=$(HOME="$tmp/home" PATH="$tmp/mock:$PATH" \
MODELS_BODY='{"data":[{"id":"zai-glm-5.3-flash-2"}]}' \
ELTEX_MODEL=anth-glm-5.3-2 bash "$tmp/bin/ai-eltex" 2>&1) || rc=$?
[ "$rc" -eq 0 ] || ok_run=0
echo "$out" | grep -q 'Модель: anth-glm-5.3-2' || ok_run=0
[ "$(cat "$tmp/home/.config/ai-setup/eltex_key")" = "sk-keep" ] || ok_run=0
if [ "$ok_run" -eq 1 ]; then
ok "ai-eltex: missing anth-glm-5.3-5 auto-logouts saved key, fresh key not saved, ELTEX_MODEL bypasses"
else
fail "ai-eltex: missing anth-glm-5.3-5 must auto-logout (saved key removed, fresh key not saved, ELTEX_MODEL bypass)"
fi
rm -rf "$tmp"
}
# ── ai-eltex: без ENABLE_TOOL_SEARCH (на anthropic-пути GLM теряет Read/Bash) ──
test_eltex_no_tool_search() {
if echo "$ELTEX_SECTION" | grep -q '^ENABLE_TOOL_SEARCH='; then
@@ -553,6 +605,7 @@ test_glm_official_api
test_glm_default_effort
test_eltex_claude_launcher
test_eltex_model_from_key
test_eltex_autologout_on_missing_model
test_eltex_no_tool_search
test_eltex_context_window
test_eltex_logout_command