Commit Graph

191 Commits

Author SHA1 Message Date
Виталий Никитенко
d8be32dd64 feat(eltex): anth-glm-5.3 via /v1/messages on the main proxy
The admins moved the config back to llm.eltex.loc:4000, but the raw
/anthropic path is not set up there (401 "No Anthropic credential";
glm-5.3 is also 403 for the keys). The regular /v1/messages route with
anth-glm-5.3 (glm-5.3 on the Z.ai Anthropic endpoint) covers what we
need, so Claude Code talks to the proxy root again:
- images via Z.ai's server-side analyze_image (Read png ->
  server_tool_use analyze_image -> correct answer, same as ai-glm);
- effort works: low has no thinking, medium/high/max do;
- a 309K-token request passes, [1m] keeps the 1M window;
- prompt cache: 94-98% of input is a cache read from the second call.

anth-glm-5.3 goes into every picker slot; zai-glm-5.3 and flash are
not used. Effort stays max by default via CLI --effort.

Checked on 21.10: all 6 pilot keys see the same models and answer on
anth-glm-5.3; the full checks were run on one key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 16:43:54 +07:00
Виталий Никитенко
c74a435d89 feat(android): install Android CLI only on demand (setup.sh item 8)
ai-setup.sh no longer installs Google Android CLI or runs android init,
so menu items 1 and 7 (setup / update) leave it alone. The install
block moved verbatim into scripts/android-cli-setup.sh, which menu item
8 now runs instead of the whole ai-setup.sh.

The final summary of ai-setup.sh points to item 8, README describes the
opt-in install, tests check the new script and that ai-setup.sh does
not install Android CLI any more.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 11:49:53 +07:00
Виталий Никитенко
709e144a60 feat(eltex): glm-5.3 via the proxy's raw /anthropic path
Claude Code now talks to the raw /anthropic path of the Eltex proxy,
which forwards requests byte-for-byte to the Z.ai Anthropic endpoint,
the same one ai-glm uses directly:
- images work through Z.ai's server-side analyze_image (Read png ->
  server_tool_use analyze_image -> correct answer, same as ai-glm);
  the regular /v1/messages route converts to the OpenAI endpoint,
  where Z.ai rejects images with 400;
- effort reaches Z.ai: low has no thinking, then medium < high < max;
- prompt cache: ~99% of input is a cache read from the second turn,
  same as ai-glm.
The key check and model pick still use the proxy root /v1/models.

The model is glm-5.3 in every picker slot with [1m] for the 1M
window; the anth-glm-5.3 / zai-glm-5.3 / flash names are gone.
Effort stays max by default via CLI --effort.

Checked on 20.10 on llm-t2.eltex.loc:4000; admins are moving that
config to llm.eltex.loc:4000, which stays the default URL.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 13:19:37 +07:00
Виталий Никитенко
0502478081 feat(qwen): add ai-qwen launcher for Alibaba Token Plan (Qwen3.8)
ai-qwen runs Claude Code through Alibaba Cloud Model Studio's
Anthropic-compatible Token Plan endpoint
(token-plan.ap-southeast-1.maas.aliyuncs.com/apps/anthropic). The shared
key is built into the generated script, so it starts right away without
asking for a key.

qwen3.8-max (the smartest model the key has) is in opus/sonnet and for
subagents, --model opus on each start; qwen3.8-flash is in haiku for
background tasks. Measured on 20.10: both models accept up to 983616
input tokens (CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000, autocompact fires
before the API limit) and see images. Qwen validates
output_config.effort (bogus -> 400), Max shows no trend from low to
max, Flash thinks ~2x longer on max; the launcher starts on --effort max
like ai-mimo, EFFORT_MAPPING.md records the measurements.

setup.sh status, statusline brand color, README, QUICK_START and
AGENTS.md list the new launcher.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:01:31 +07:00
Виталий Никитенко
41c5cf9b10 feat(eltex): three proxy models in /model, anth-glm-5.3 by default
Admins now give every key three models. ai-eltex maps them to the
picker slots:
- opus (default): anth-glm-5.3 - glm-5.3 on the Z.ai Anthropic
  endpoint: images via analyze_image, effort works, 1M window;
- sonnet: zai-glm-5.3 - glm-5.3 on the OpenAI endpoint, no images or
  effort, 200K. Two keys get it as zai-glm-5.3-2-2 (zai-glm-5.3 is 403
  for them), so the name is matched exactly or by prefix;
- haiku: zai-glm-5.3-flash - fast, sees images itself, no effort,
  200K; Claude Code also uses this slot for background tasks.
A missing zai/flash model falls back to the default one.

Model name is anth-glm-5.3 again: with anth-glm-5.3-5 the auto-logout
would drop every saved key, since no key has that name now.

Context window is per model instead of a global
CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000: [1m] only on anth-glm-5.3
(Claude Code strips the suffix before the API call), 200K for the
others, otherwise a long flash/zai session would hit "Prompt exceeds
max length" instead of auto-compacting.

Checked on all 6 pilot keys (19.10): default model reads a png via
Read + analyze_image; sonnet/haiku answer with 200K windows; effort
low on anth-glm-5.3 = 68 output tokens (max ~3500).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 11:51:04 +07:00
Виталий Никитенко
f4a8c23af3 fix anth-glm-5.3-5 2026-10-16 17:01:17 +07:00
Виталий Никитенко
ef187a1b48 feat(glm): default effort xhigh instead of max
Z.ai maps xhigh to native high, so this trims the thinking budget for
everyday ai-glm launches; AI_EFFORT=max still forces the old behavior.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-16 06:51:52 +03:00
Виталий Никитенко
e6fe58eb37 feat(mimo): add ai-mimo launcher for Xiaomi MiMo V2.6 Pro
ai-mimo runs Claude Code through Xiaomi's Anthropic-compatible API
(Token Plan or pay-as-you-go). The key's endpoint is found by probing
token-plan-sgp, token-plan-ams and api.xiaomimimo.com (a key only works
in its own region) and is saved to mimo_base_url; MIMO_BASE_URL
overrides. Unreachable endpoints are skipped, token-plan-cn is left out
of the probe since it times out from our network, and a 402 on the
pay-as-you-go endpoint explains that a tp- Token Plan key is needed.

Always the smartest model: mimo-v2.6-pro in every slot and for
subagents, --model opus and --effort max on each start, 128000 output
tokens (Claude Code's ceiling), real 1M context window. Measured on
13.10: MiMo ignores output_config.effort (even "bogus" is accepted, no
length trend from low to max) and treats thinking adaptive like
enabled, so reasoning is always on; EFFORT_MAPPING.md records this.

/logout-mimo is registered as a command and handled by the logout hook
(removes mimo_key and mimo_base_url). setup.sh status, statusline brand
color, README, QUICK_START and AGENTS.md list the new launcher.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 15:43:25 +07:00
Виталий Никитенко
6c507b4549 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>
2026-10-12 11:52:45 +07:00
Виталий Никитенко
e3a1c500fd fix(statusline): keep last ctx value while a Z.ai request is running
Z.ai (ai-glm, ai-eltex) streams message_start with input_tokens=0 and
sends the real usage only in the final message_delta, so while a
request runs Claude Code passes used_percentage=0 and ctx: dropped to
0%. Keep the last non-zero value per session_id in
~/.cache/ai-setup/ctx_last_<id> and show it instead of the zero.
/clear starts a new session id, so it still shows 0 there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 12:46:18 +07:00
Виталий Никитенко
17a943069a fix(eltex): use the real 1M context window like ai-glm
ctx: in ai-eltex filled up too fast: the launcher capped the window at
200K (CLAUDE_CODE_AUTO_COMPACT_WINDOW from the admins' doc plus
CLAUDE_CODE_DISABLE_1M_CONTEXT), while anth-glm-5.3 is the same glm-5.3
on the Z.ai Anthropic endpoint that ai-glm runs with a 1M window.
A 598K-token request went through the proxy fine (glm-5.3 answered
correctly from the last line). Claude Code now reports contextWindow
1000000.

The 200K cap also made Z.ai's analyze_image turns dangerous: their
usage covers both internal model passes (~x2), e.g. 82.7K -> 166.7K
(83% of 200K), which could trigger an early auto-compact.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 12:39:32 +07:00
Виталий Никитенко
5e1e3cc796 fix(eltex): default to anth-glm-5.3, drop forced ENABLE_TOOL_SEARCH
Admins moved the pilot to anth-glm-5.3: proxy deployments on the Z.ai
Anthropic endpoint. Checked on all 6 pilot keys: 48/48 requests served
by glm-5.3 (no flash), images recognised via Z.ai analyze_image in
Claude Code 8/8. zai-glm-5.3 goes through an auto-router that swaps in
glm-5.3-flash, so ai-eltex now prefers anth-glm-5.3 when the key has it
(ELTEX_MODEL still overrides).

ENABLE_TOOL_SEARCH is no longer forced: on the anthropic path GLM
searched for Read/Bash via ToolSearch and decided they were missing.

Effort still has no effect: Claude Code sends output_config.effort, but
LiteLLM drops it (direct Z.ai low/max = 81/3712 output tokens, via the
proxy ~3-5K at any level).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 10:08:08 +07:00
Виталий Никитенко
083a614940 feat(eltex): add ai-eltex launcher for corporate LLM proxy
ai-eltex runs Claude Code through the Eltex LiteLLM proxy
(http://llm.eltex.loc:4000, team GLM subscription). The personal key
from admins is checked via /v1/models and stored in
~/.config/ai-setup/eltex_key; the model is taken from the key's
allowed list (ELTEX_MODEL / ELTEX_BASE_URL override). The proxy
ignores effort/thinking, so no effort forcing. /logout-eltex and
/logout in ai-eltex drop the key; setup.sh status shows it.

ru-bypass: hosts block now has an end marker and only that block is
rewritten, manual entries outside it survive; llm.eltex.loc/llm2 added
since the VPN DNS does not resolve it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:21:02 +07:00
Виталий Никитенко
08ad4bb429 fix(glm): default effort xhigh, document real GLM 5.3 effort mapping
Z.ai Anthropic endpoint reads output_config.effort and accepts all 5
Claude Code levels, but GLM 5.3 has only low/high/max natively:
medium -> low, xhigh -> high (measured, not documented by Z.ai).
ai-glm now starts on xhigh instead of max.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:49:02 +07:00
Виталий Никитенко
b3468095c9 docs(rules): authorize Eltex merge-request review writes 2026-08-21 15:42:04 +03:00
Виталий Никитенко
676b25217e docs(effort): DeepSeek V4 has 3 native effort levels
low->low, medium/xhigh->high, max->max on the DeepSeek API side.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-21 15:41:59 +03:00
Виталий Никитенко
9448212a26 fix(deepseek): USD-only balance display, drop CNY/¥
Launcher and statusline show only USD from balance_infos; ¥ removed.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-21 15:41:55 +03:00
Виталий Никитенко
4331ebb675 feat(statusline): dot-separated format, GLM brand color, blue branch
- сегменты через жирную серую точку · вместо пробелов, квадратные скобки
  убраны (ветка, effort, аккаунты)
- glm → фирменный кремовый Z.ai (#FFE4B5 ≈ 256-палитра 223)
- ветка → светло-синий (#8FB3EF ≈ 111) вместо серого
- суффикс [1m]/[1M] вычищается из отображения модели: окно задаёт
  CLAUDE_CODE_MAX_CONTEXT_TOKENS, суффиксу в статусной строке делать нечего

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-17 07:01:32 +03:00
Виталий Никитенко
8c7c2e9e0f fix(glm): correct context window to 1M for all ai-glm slots
Claude Code не знает моделей glm-* и для glm-5.3 без суффикса считал окно
= 200K: счётчик ctx: врал в ~5 раз, автокомпакт жал сессию в 200K.
Окно теперь задаётся CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000 (env применяется
к не-claude моделям независимо от суффикса), поэтому [1m] у Haiku-слота
стал дублирующим и убран — все три слота пикера теперь glm-5.3.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-17 07:01:22 +03:00
Виталий Никитенко
60b915de5f feat(setup): add ./setup.sh update CLI mode
./setup.sh update (или --update) запускает git pull --ff-only + перегенерацию
всех ai-* лаунчеров без интерактивного меню — то же, что пункт меню 7 (логика
вынесена в общую do_update). Неизвестный аргумент печатает usage и выходит
с кодом 1, без аргументов открывается меню как раньше.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-17 06:00:27 +03:00
Виталий Никитенко
f61f2cde84 feat(glm): switch ai-glm to GLM 5.3
glm-5.3 доступна на api.z.ai (вышла 2026-08-14, 1M контекст): opus/sonnet =
glm-5.3, haiku = glm-5.3[1m], subagent = glm-5.3, health-check ключа тоже
на 5.3. Секция OpenRouter остаётся на z-ai/glm-5.2 — там 5.3 ещё нет.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-17 06:00:11 +03:00
Виталий Никитенко
7304c5c84b docs(rules): document per-project GitLab tokens
GitLab access uses project access tokens, one per project, and a token from
another project answers 404 instead of 403 - a wrong token is indistinguishable
from a missing project. Nothing described where those tokens live, so agents
either guessed or gave up.

Added section 10 with the file -> project mapping (superapp-launcher,
common-library, smart_home), a working curl example, and the note that the
generic `gitlab_token` fallback is gone: helpers such as eltex-review need an
explicit --token-file.
2026-08-12 11:24:06 +03:00
Виталий Никитенко
ee32371d30 refactor(rules): simplify global agent guidance 2026-08-08 21:02:00 +03:00
Виталий Никитенко
4723d21693 fix(codex): prevent sound hook timeouts 2026-08-08 19:20:10 +03:00
Виталий Никитенко
532d70f478 fix(add-account): unhang oauth login via fifo stdin
Логин Claude.ai подвисал навсегда: claude auth login ждёт код из браузера в stdin, а хук запускал его в фоне с </dev/null, куда код вставить невозможно. Теперь /add-account поднимает логин со stdin из fifo и печатает ссылку, а /add-account <код> отдаёт код, дожидается обмена и сохраняет новый аккаунт по email из токена. Провал логина больше не маскируется под успешное сохранение текущего аккаунта, а фоновые процессы гасятся строго по своим PID вместо широкого pkill -f. Поведение закреплено пятью тестами в tests/test_fixes.sh.
2026-08-08 19:20:10 +03:00
Виталий Никитенко
eb6a7bddad feat(rules): доступ к Redmine (red.eltex.loc) через API-ключ
Правило №6: читать задачи Redmine по персональному API-ключу из
~/.config/ai-setup/redmine_key, вытаскивать ТЗ/статус/комментарии
через /issues/<N>.json?include=journals. Ключ держать только в этом
файле, не вписывать в git.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 09:04:08 +03:00
Виталий Никитенко
57857cda4d remove bundled skills; skills now come from separate repo
Удалены все кастомные скиллы из home-configs/claude/skills и логика
их деплоя (секция 6.6 ai-setup.sh для Claude и Gemini). Из README
убраны упоминания про деплой скиллов, из test_fixes.sh — тест наличия
android-скилла. Хуки аккаунтов, команда android init, правило #5 про
reusable skills и симлинк общей папки ~/.claude/skills оставлены
нетронутыми — скиллы теперь устанавливаются из отдельного репозитория.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 11:44:05 +03:00
ekaterina soloveva
0c5057bc21 require node >=18 in ai-setup, not just presence
ai-setup.sh проверял только наличие node через command -v, поэтому системный Node v12 (Ubuntu 22.04) проходил проверку и установка NodeSource 22 не запускалась. Из-за этого хук claude-notifier падал с SyntaxError на optional chaining (?.) и nullish coalescing (??), которые поддерживаются только начиная с Node 14. Теперь скрипт извлекает мажорную версию и при значении меньше 18 ставит/обновляет Node, чтобы регенерация не возвращала сломанные хуки.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-14 11:26:49 +03:00
Виталий Никитенко
c379ee8efc feat(ai-setup): /logout для ai-glm, ai-deepseek, ai-kimi
Новый UserPromptSubmit хук logout-account-hook.sh перехватывает /logout
(провайдер по AI_LAUNCHER) и /logout-glm|/logout-deepseek|/logout-kimi
(явно), удаляет сохранённый ключ провайдера. Для ai-claude /logout
отступает — работает нативный oauth-logout.

- хук: удаляет glm_key/deepseek_key или текущий kimi_keys/<current>.key
  (+.meta) с пересчётом current; exit 2 глушит нативную /logout для
  api-key провайдеров
- 3 скилла logout-{glm,deepseek,kimi} для автокомплита
- ai-setup.sh: секция деплоя 6.7.3 + хук в копирование/регистрацию
  изолированных cfg

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-14 10:10:14 +03:00
1bfef33da1 fix(ai-glm): чиним разорванный env-блок и включаем /effort max
Регрессия из c571584: поясняющий комментарий оказался посреди цепочки
continuation-строк (\), из-за чего statement разрывался — claude
запускался без ANTHROPIC_BASE_URL/AUTH_TOKEN/DEFAULT_*_MODEL (дефолтный
Anthropic, "Not logged in", glm-5.2 not recognized, откат на Haiku 4.5).
Комментарий перенесён над env-блоком, цепочка восстановлена.

Дополнительно: ai-glm стартует на /effort max. max невалиден в settings.json
(там только low/medium/high/xhigh), поэтому задаётся через CLI --effort +
CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1 (без неё glm-5.2 не распознан как
effort-capable и параметр не уходит к Z.ai). Проверено перехватом трафика:
Claude Code шлёт output_config.effort=max, Z.ai включает thinking
(+35% reasoning tokens vs low на нетривиальной задаче). /effort внутри
сессии работает; ручной override запуска: AI_EFFORT=high ai-glm.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-04 18:59:57 +03:00
c57158420e fix: корректный счётчик контекста в ai-glm (GLM 5.2 = 1M)
CLAUDE_CODE_DISABLE_1M_CONTEXT=1 заставлял Claude Code считать
контекстное окно = 200K, из-за чего ctx: в статус-баре заполнялся
в ~5 раз раньше реального лимита GLM 5.2 (1M токенов).

Флаг убран только в секции ai-glm. Прочие лаунчеры (deepseek/kimi/
openrouter/opencode) флаг оставляют — у них другой контекст, и флаг
убирает [1M]-дубли из пикера. ai-claude его не использует.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-04 17:35:10 +03:00
Виталий Никитенко
0f88f1e07a feat: полная поддержка macOS (Darwin arm64/x86_64)
- ai-setup.sh: brew shellenv + brew-ветки для jq/Node; npm-prefix теперь после установки Node
- ai-setup.sh: install_proxy использует OS_TAG/ARCH_TAG (качает darwin-arm64/amd64)
- ai-setup.sh: afplay в 5 звуковых блоках, портабельный sed -i (BSD), touch ~/.zshrc
- setup.sh: скрытие сетевых пунктов (2/3/4/6) на macOS + адаптация Статуса

Устраняет на маке: npm not found, «не удалось определить пакетный менеджер»,
«неизвестная архитектура: arm64». Сетевые скрипты (ru-bypass/ks-*) оставлены Linux-only.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-01 09:12:06 +03:00
9e64088e46 chore: убрать VLESS-прокси, proxychains и fuck-rkn.sh
Пользователь перешёл на Amnezia VPN — встроенный VLESS-прокси (xray + proxychains4)
и отдельный server-installer fuck-rkn.sh (telemt + xray) больше не нужны. Убран
весь код в ai-setup.sh/setup.sh, конфиги с VPN-кредами, неактуальный тест и
упоминания в документации.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-06-30 21:50:50 +03:00
Виталий Никитенко
9b906823cd feat: добавить ai-cursor лаунчер (нативный Cursor CLI agent)
Генерация нативного лаунчера ai-cursor для Cursor CLI (agent) с
автоустановкой через cursor.com/install, интеграцией proxychains4 в
VLESS-режиме, обновлением ~/.cursorrules и флагом --force (--yolo).
Очистка старого ai-cursor из ~/.local/bin при нестандартном BIN_DIR.
Добавлены тест генерации и упоминания в EFFORT_MAPPING/QUICK_START/README.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-30 09:27:02 +03:00
5038b4f8c6 Merge pull request 'Добавлена лицензия MIT и копирайты' (#21) from add-license into main
Reviewed-on: #21
2026-06-30 12:15:13 +07:00
Кокос Артем Николаевич
d250099dc5 Добавлена лицензия MIT и копирайты 2026-06-30 12:12:42 +07:00
Виталий Никитенко
1626453813 feat: добавить ~/.cursorrules в глобальные правила — Cursor видит то же, что Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-24 11:10:22 +03:00
Виталий Никитенко
0e15033351 refactor: убрать multi-agent из /el-review — инлайн-ревью силами Claude
Убран вызов встроенного /review (multi-agent workflow). Теперь Claude
читает дифф сам и выдаёт только критические проблемы с готовыми diff-фиксами.

- Никаких sub-agent'ов и deep cross-file investigations
- Только баги, утечки, падения, гонки, нарушения инвариантов
- Исключены: форматирование, нейминг, стиль, рефакторинг
- Готовый diff на каждую проблему, коротко, на русском

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 09:19:39 +03:00
Виталий Никитенко
a74597dba6 feat: добавить ai-opencode лаунчер (OpenCode Go + routatic-proxy)
- Новый лаунчер ai-opencode с routatic-proxy на 127.0.0.1:3456
- Автоустановка routatic-proxy под linux/darwin amd64/arm64
- Модели: deepseek-v4-pro (opus/sonnet), kimi-k2.6 (haiku)
- AI_RESET_KEY, OPENCODE_GO_API_KEY env fallback, управление opencode_key
- Документация: EFFORT_MAPPING.md, QUICK_START.md, README.md
- Статус-проверка в setup.sh: ai-opencode, opencode_key, opencode.ai
- Тесты: 4 новых теста для ai-opencode в test_fixes.sh

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 08:41:38 +03:00
Виталий Никитенко
cf0cd749e9 chore: убрать правило про типографику из глобальных правил агентов
Удалён пункт Typography (дефис-минус вместо длинных тире),
последующие пункты перенумерованы.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-22 14:42:41 +03:00
Виталий Никитенко
c4fea61d74 refactor: пункт 1 больше не трогает сеть, управление VLESS только в пункте 9
Пункты 1/7/8 вызывали AI_SETUP_VLESS=0, что запускало откат сетевых настроек
(stop xray, сброс прокси GNOME, перепись Firefox user.js, IPv6 on), хотя они
относятся только к установке AI-инструментов. Добавлен режим skip (дефолт):
сеть не трогается, лаунчеры синхронизируются с текущим состоянием xray.
Включение/отключение VLESS - только пункт 9.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-22 14:41:29 +03:00
24416e88e4 refactor: убрать MiniMax/Llama из ai-openrouter, заменить на GLM 5.2
- слот HAIKU переведён с MiniMax M3 на GLM 5.2 (z-ai/glm-5.2)
- слот FABLE (Llama 4 Maverick) удалён полностью
- README и заголовок ai-setup.sh обновлены соответственно

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-21 20:48:02 +03:00
b99b9fcb7d Add AI launcher sound notifications 2026-06-21 09:46:33 +03:00
c0f27600cb feat: сброс ключа через AI_RESET_KEY и переввод при 429
- ai-deepseek, ai-glm, ai-openrouter: AI_RESET_KEY=1 принудительно
  удаляет сохранённый ключ перед запуском
- при 429 предлагается ввести новый ключ вместо немедленного выхода
- OpenRouter сбрасывает ключ без reauth (там нет переменной reauth)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-20 11:27:22 +03:00
41aadbc50f fix: автоматическая установка jq и неинтерактивный пункт 1 setup
- устанавливать jq автоматически, необходим для statusline-command.sh
- не спрашивать GitHub PAT в пункте 1, пропускать marketplace без GITHUB_TOKEN
- добавлена документация по Unicode-рендерингу статусной строки

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-20 11:00:41 +03:00
Виталий Никитенко
3e15729a81 refactor: вынести вопрос про VLESS из пункта 1 в отдельный пункт меню (9)
Пункты 1 (AI-инструменты), 7 (Обновить), 8 (Android CLI) теперь запускают
ai-setup.sh с AI_SETUP_VLESS=0 без вопросов. Пункт 9 (VLESS) спрашивает
включить/отключить и передаёт AI_SETUP_VLESS=1/0 соответственно.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 06:46:14 +03:00
Виталий Никитенко
83a7790235 feat: добавить ai-glm - лаунчер Claude Code через Zhipu AI GLM 5.2
Новый лаунчер ai-glm запускает Claude Code через официальный Anthropic-совместимый
API Zhipu AI (api.z.ai). Модели: glm-5.2 (opus/sonnet), glm-5.2[1m] (haiku).
Обновлены документация, статус, тесты и EFFORT_MAPPING.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 06:41:41 +03:00
Виталий Никитенко
463a3f0bc6 feat: добавить study-git и study-red в исключения ru-bypass
Добавлены домены study-git.eltex-co.ru и study-red.eltex-co.ru в builtin kill switch exceptions и /etc/hosts блок.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-18 08:09:21 +03:00
Виталий Никитенко
61a4421ed2 fix: статусбар показывает реальный email активного Claude-аккаунта
Статусбар слепо доверял accounts/current и показывал legacy-имя даже когда
активна сессия другого аккаунта. Теперь сверяем accessToken из
<current>.credentials.json с активным ~/.claude/.credentials.json и при
расхождении резолвим аккаунт по токену: локальный матч плюс account-email.sh
вместо haiku-велосипеда. Kimi-блок показывает alias (account1/account2).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 06:41:33 +03:00
1cb4853dca refactor: нативный persistence effort, выпил мёртвого кэша effort_*
EFFORT_MAPPING, statusline и _apply_effort переведены на нативное
хранение уровня в settings.json лаунчера. Убран CLAUDE_CODE_EFFORT_LEVEL
(он блокировал /effort внутри сессии) и кэш ~/.cache/ai-setup/effort_*,
который никто не читал и который врал относительно реального уровня.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 05:21:12 +03:00