diff --git a/EFFORT_MAPPING.md b/EFFORT_MAPPING.md
index 26bfc19..2018073 100644
--- a/EFFORT_MAPPING.md
+++ b/EFFORT_MAPPING.md
@@ -9,9 +9,9 @@
## Таблица маппинга
-> Актуально на 30 мая 2026 г.
+> Актуально на 12 июня 2026 г.
-| Claude Code
`/effort` | Anthropic
(Claude) | GPT-5.5
(ChatGPT) | DeepSeek V4 | Kimi K2.6
(Moonshot) | Gemini 3.x |
+| Claude Code
`/effort` | Anthropic
(Claude) | GPT-5.5
(ChatGPT) | DeepSeek V4 | Kimi K2.7
(Moonshot) | Gemini 3.x |
|:---:|:---:|:---:|:---:|:---:|:---:|
| `low` | ✅ `low` | ✅ `low` | ⬆ `high` | 🔛 thinking on | ✅ `LOW` |
| `medium` | ✅ `medium` | ✅ `medium` | ⬆ `high` | 🔛 thinking on | ✅ `MEDIUM` |
@@ -54,7 +54,7 @@ high → max
- `xhigh` → автоматически поднимается до `max`
- Маппинг выполняется на стороне DeepSeek API
-### Kimi K2.6 (Moonshot AI)
+### Kimi K2.7 (Moonshot AI)
```
on / off
```
@@ -80,7 +80,7 @@ MINIMAL → LOW → MEDIUM → HIGH
| Anthropic | Не нужен | — |
| GPT-5.5 | effort-proxy (наш) | `~/.local/bin/claude-gpt-effort-proxy.py` |
| DeepSeek V4 | DeepSeek API | На стороне сервера |
-| Kimi K2.6 | Moonshot API | На стороне сервера |
+| Kimi K2.7 | Moonshot API | На стороне сервера |
| Gemini 3.x | antigravity-claude-proxy | npm пакет |
## Persistence effort между сессиями
diff --git a/scripts/ai-setup.sh b/scripts/ai-setup.sh
index 02ab9ee..d009ec6 100755
--- a/scripts/ai-setup.sh
+++ b/scripts/ai-setup.sh
@@ -1408,7 +1408,7 @@ api_key=""
if [ -n "$api_key" ]; then
echo -n "Проверка сохранённого Kimi ключа... "
- _claude_test_api "https://api.kimi.com/coding/v1/messages" "x-api-key: $api_key" "kimi-k2.6"
+ _claude_test_api "https://api.kimi.com/coding/v1/messages" "x-api-key: $api_key" "kimi-k2.7"
_handle_api_response "Kimi" "$_CLAUDE_TEST_CODE" "$_CLAUDE_TEST_BODY" "Пополните баланс: https://www.kimi.com/code"
ret=$_API_RET
if [ $ret -eq 401 ]; then
@@ -1428,7 +1428,7 @@ if [ -z "$api_key" ]; then
[ -z "$api_key" ] && { echo "Выход."; exit 1; }
echo -n "Проверяю ключ и баланс... "
- _claude_test_api "https://api.kimi.com/coding/v1/messages" "x-api-key: $api_key" "kimi-k2.6"
+ _claude_test_api "https://api.kimi.com/coding/v1/messages" "x-api-key: $api_key" "kimi-k2.7"
_handle_api_response "Kimi" "$_CLAUDE_TEST_CODE" "$_CLAUDE_TEST_BODY" "Пополните баланс: https://www.kimi.com/code"
ret=$_API_RET
if [ $ret -eq 0 ] || [ $ret -eq 429 ]; then
@@ -1457,23 +1457,23 @@ trap 'rm -f "$_PROMPT_FILE"' EXIT INT TERM
_build_ai_sys_prompt > "$_PROMPT_FILE"
export AI_LAUNCHER=kimi
export CLAUDE_CONFIG_DIR="$HOME/.config/ai-setup/cfg/kimi"
-# Пикер: Kimi K2.6 - единственная модель провайдера. availableModels НЕ задаём
+# Пикер: Opus/Sonnet = Kimi K2.7 Code, Haiku = Kimi K2.6. availableModels НЕ задаём
# (он схлопывает пикер в Default). Claude Code навязывает 3 слота opus/sonnet/haiku;
-# незаданный показал бы чужой Claude, поэтому все три мапим на Kimi K2.6
-# (в пикере 3 одинаковых пункта, но все - Kimi). DISABLE_1M убирает [1M] дубли.
+# незаданный показал бы чужой Claude, поэтому opus+sonnet = K2.7, haiku = K2.6
+# DISABLE_1M убирает [1M] дубли из пикера.
_setup_isolated_config kimi opus high ''
_apply_effort kimi high
ANTHROPIC_BASE_URL=https://api.kimi.com/coding \
ANTHROPIC_AUTH_TOKEN="$api_key" \
-ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k2.6 \
-ANTHROPIC_DEFAULT_OPUS_MODEL_NAME="Kimi K2.6" \
-ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION="Kimi K2.6 (Moonshot AI)" \
-ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k2.6 \
-ANTHROPIC_DEFAULT_SONNET_MODEL_NAME="Kimi K2.6" \
-ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION="Kimi K2.6 (Moonshot AI)" \
+ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k2.7 \
+ANTHROPIC_DEFAULT_OPUS_MODEL_NAME="Kimi K2.7 Code" \
+ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION="Kimi K2.7 Code — флагманский программист (Moonshot AI)" \
+ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k2.7 \
+ANTHROPIC_DEFAULT_SONNET_MODEL_NAME="Kimi K2.7 Code" \
+ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION="Kimi K2.7 Code — флагманский программист (Moonshot AI)" \
ANTHROPIC_DEFAULT_HAIKU_MODEL=kimi-k2.6 \
ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME="Kimi K2.6" \
-ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION="Kimi K2.6 (Moonshot AI)" \
+ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION="Kimi K2.6 — быстрый универсал (Moonshot AI)" \
CLAUDE_CODE_SUBAGENT_MODEL=kimi-k2.6 \
CLAUDE_CODE_DISABLE_1M_CONTEXT=1 \
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \
@@ -1662,7 +1662,7 @@ echo ""
echo " На базе Claude Code:"
echo -e " ${CYAN}ai-claude${NC} - Оригинальный Claude Code (Anthropic)"
echo -e " ${CYAN}ai-deepseek${NC} - DeepSeek (через Claude Code, API ключ сохраняется)"
-echo -e " ${CYAN}ai-kimi${NC} - Kimi K2.6 (через Claude Code, API ключ сохраняется)"
+echo -e " ${CYAN}ai-kimi${NC} - Kimi K2.7 Code (через Claude Code, API ключ сохраняется)"
echo -e " ${CYAN}ai-openrouter${NC} - OpenRouter (через Claude Code: GPT-5.5, Opus 4.8, Sonnet 4.6)"
echo ""
echo " Нативные CLI:"
diff --git a/tests/test_fixes.sh b/tests/test_fixes.sh
index b349747..4ecda4e 100755
--- a/tests/test_fixes.sh
+++ b/tests/test_fixes.sh
@@ -48,11 +48,12 @@ test_kimi_claude_launcher() {
# ── ai-kimi: uses official Kimi API ──────────────────────────────────────
test_kimi_official_api() {
if echo "$KIMI_SECTION" | grep -q 'api.kimi.com/coding' \
- && echo "$KIMI_SECTION" | grep -q 'ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k2.6' \
+ && echo "$KIMI_SECTION" | grep -q 'ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k2.7' \
+ && echo "$KIMI_SECTION" | grep -q 'ANTHROPIC_DEFAULT_HAIKU_MODEL=kimi-k2.6' \
&& ! echo "$KIMI_SECTION" | grep -q 'artemox'; then
- ok "ai-kimi: uses official Kimi API and model"
+ ok "ai-kimi: uses official Kimi API (K2.7 opus/sonnet, K2.6 haiku)"
else
- fail "ai-kimi: must use official Kimi API (api.kimi.com/coding) and model kimi-k2.6"
+ fail "ai-kimi: must use official Kimi API (api.kimi.com/coding) with K2.7 opus/sonnet, K2.6 haiku"
fi
}