feat: переключение аккаунтов через хук без токенов LLM
- UserPromptSubmit хук перехватывает /switch-account до LLM, переключает credentials по кругу и возвращает decision:block - нулевой расход токенов - Статусная строка: effort и имя аккаунта в квадратных скобках [high·work] - ai-setup.sh деплоит хук switch-account-hook.sh и прописывает его в settings.json - Скилл switch-account оставлен как fallback-документация для setup Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -681,6 +681,41 @@ else
|
||||
warn "Файл $STATUSLINE_SRC не найден, пропускаю"
|
||||
fi
|
||||
|
||||
# ── 6.7.1. Хук switch-account ───────────────────────────────────
|
||||
info "Деплою хук switch-account..."
|
||||
SWITCH_HOOK_SRC="$SCRIPT_DIR/home-configs/claude/hooks/switch-account-hook.sh"
|
||||
SWITCH_HOOK_DST="$HOME/.claude/hooks/switch-account-hook.sh"
|
||||
mkdir -p "$HOME/.claude/hooks"
|
||||
if [ -f "$SWITCH_HOOK_SRC" ]; then
|
||||
cp "$SWITCH_HOOK_SRC" "$SWITCH_HOOK_DST"
|
||||
chmod +x "$SWITCH_HOOK_DST"
|
||||
# Прописываем хук в settings.json (идемпотентно)
|
||||
python3 - "$HOME/.claude/settings.json" "$SWITCH_HOOK_DST" <<'PYEOF'
|
||||
import sys, json, os
|
||||
settings_path, hook_path = sys.argv[1], sys.argv[2]
|
||||
data = {}
|
||||
if os.path.exists(settings_path):
|
||||
with open(settings_path) as f:
|
||||
try: data = json.load(f)
|
||||
except json.JSONDecodeError: pass
|
||||
data.setdefault("hooks", {}).setdefault("UserPromptSubmit", [{"hooks": []}])
|
||||
hook_cmd = f'bash "{hook_path}"'
|
||||
ups = data["hooks"]["UserPromptSubmit"]
|
||||
already = any(
|
||||
any(h.get("command", "") == hook_cmd for h in entry.get("hooks", []))
|
||||
for entry in ups
|
||||
)
|
||||
if not already:
|
||||
ups[0]["hooks"].append({"type": "command", "command": hook_cmd})
|
||||
with open(settings_path, "w") as f:
|
||||
json.dump(data, f, indent=2, ensure_ascii=False)
|
||||
f.write("\n")
|
||||
PYEOF
|
||||
success "Хук switch-account установлен"
|
||||
else
|
||||
warn "Файл $SWITCH_HOOK_SRC не найден, пропускаю"
|
||||
fi
|
||||
|
||||
# ── 6.8. Регистрация официального маркетплейса плагинов Claude ──
|
||||
info "Настраиваю маркетплейс плагинов Claude Code..."
|
||||
if ! command -v claude &>/dev/null; then
|
||||
|
||||
Reference in New Issue
Block a user