#!/usr/bin/env bash # Sesiune Claude Code separata pe GLM (Z.AI). NU consuma cota Claude Max. # # tools/claude-glm.sh task "implementeaza T3 din TODO.md" # one-shot, JSON pe stdout # tools/claude-glm.sh resume "continua" # predare / continuare # tools/claude-glm.sh shell # sesiune interactiva # tools/claude-glm.sh -- # # Env optional: GLM_MODEL (default glm-5.3-flash[1m]), GLM_CONTEXT (default 250000) set -euo pipefail KEY_FILE="${ZAI_KEY_FILE:-$HOME/.config/zai/key}" [[ -r "$KEY_FILE" ]] || { echo "Lipseste cheia Z.AI in $KEY_FILE (chmod 600)" >&2; exit 1; } export ANTHROPIC_BASE_URL="https://api.z.ai/api/anthropic" export ANTHROPIC_AUTH_TOKEN="$(tr -d '\r\n' < "$KEY_FILE")" # [1m] = fereastra reala de 1M; fara el Claude Code presupune 200k si compacteaza devreme MODEL="${GLM_MODEL:-glm-5.3-flash[1m]}" export ANTHROPIC_DEFAULT_SONNET_MODEL="$MODEL" export ANTHROPIC_DEFAULT_OPUS_MODEL="$MODEL" export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-5.3-flash[1m]" export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 export API_TIMEOUT_MS=3000000 # config separat: transcripturile GLM nu se amesteca cu cele Anthropic in statistica de consum export CLAUDE_CONFIG_DIR="${CLAUDE_CONFIG_DIR_GLM:-$HOME/.claude-glm}" CTX="${GLM_CONTEXT:-250000}" COMMON=(--model sonnet --autocompact "$CTX" --output-format json) case "${1:-shell}" in task) shift; exec claude -p "$*" "${COMMON[@]}" < /dev/null ;; resume) sid="$2"; shift 2; exec claude -p "$*" --resume "$sid" "${COMMON[@]}" < /dev/null ;; shell) shift || true; exec claude --model sonnet --autocompact "$CTX" "$@" ;; --) shift; exec claude "$@" ;; *) exec claude "$@" ;; esac