auto-sync: 2026-05-14 11:10:01

This commit is contained in:
Stream
2026-05-14 11:10:01 +03:00
parent 39ea7d1585
commit 1342832335
3 changed files with 239 additions and 1 deletions

46
memory/2026-05-14.md Normal file
View File

@@ -0,0 +1,46 @@
# 2026-05-14 — Claude CLI Proxy + TRI max-aggregation
## Claude CLI Proxy — ГОТОВО ✅
### Что сделано
- **Проект:** `tasks/claude-cli-proxy/` (BRD, DEV_TASK, PROJECT.md)
- **Суть:** CLIProxyAPI (Go, open-source) оборачивает Claude Code CLI в OpenAI-compatible API
- **Деплой:** Docker контейнер `claude-cli-proxy` на mva154 (82.22.50.71)
- **OAuth:** авторизован через Max 5x подписку Славы (claude-homenet542@gmail.com)
- **Сеть:** `openclaw_openclaw-network`, доступен из `openclaw-gateway` по имени `claude-cli-proxy:8317`
- **Порт:** 127.0.0.1:8317 (не наружу)
### OpenClaw интеграция
- Provider `claude-cli-proxy` добавлен в `openclaw.json`
- Dev-агент переключен на `claude-cli-proxy/claude-sonnet-4-20250514`
- Доступные модели: sonnet-4, sonnet-4-6, opus-4, opus-4-7, opus-4-6, haiku-4-5
- Gateway перечитал конфиг (SIGHUP)
### Лимиты
- Max 5x: ~50-200 промптов/5ч окно
- ⚠️ С 15.06.2026 — Agent SDK credit отдельный (детали TBD)
### Переавторизация (если токен протухнет)
1. `docker compose down`
2. `docker run --rm -it -p 54545:54545 -v $(pwd)/auth:/root/.cli-proxy-api eceasy/cli-proxy-api:latest /CLIProxyAPI/CLIProxyAPI --claude-login --no-browser`
3. SSH туннель + открыть URL в браузере
4. `docker compose up -d`
---
## TRI тайлы — max-агрегация для мелких зумов ✅
### Проблема
На мелких зумах (5-8) вся карта TRI жёлтая — bilinear resampling усредняет значения.
### Решение
Python max-pool (factor=10) на raw TRI single-band → colorize → tile. GDAL 3.4 не поддерживает `-r max`, поэтому numpy.
### Результат
- Zoom 5: 6 тайлов, все непустые, 52% visible — преобладает оранжевый/красный
- Zoom 6-8: контраст есть, плоские участки прозрачные
- Zoom 10-12: full-res, без изменений
- Общий размер: 520M
### Ждём фидбек Славы
Нужно подтверждение что на карте теперь видно где холмисто.

View File

@@ -1,6 +1,6 @@
# DEV TASK: Деплой CLIProxyAPI на mva154
**Статус:** Ready for dev
**Статус:** ✅ Выполнено
**Проект:** claude-cli-proxy
**BRD:** `tasks/claude-cli-proxy/BRD.md`

View File

@@ -0,0 +1,192 @@
# Claude CLI Proxy — PROJECT.md
**Статус:** ✅ Работает
**Дата запуска:** 2026-05-14
**Хост:** mva154 (82.22.50.71)
---
## Что это
OpenAI-compatible прокси, который оборачивает Claude Code CLI (авторизованный через Max подписку) в HTTP API. Позволяет OpenClaw использовать Claude по подписке вместо оплаты за токены.
## Архитектура
```
OpenClaw (openclaw-gateway контейнер)
↓ HTTP POST /v1/chat/completions
CLIProxyAPI (контейнер claude-cli-proxy, порт 8317)
↓ Claude Code CLI (OAuth)
Anthropic (Max 5x подписка, $100/мес)
```
## Компоненты
| Компонент | Описание |
|-----------|----------|
| CLIProxyAPI v7.0.6 | Go-сервер, Docker image `eceasy/cli-proxy-api:latest` |
| Claude Code CLI | Встроен в image, авторизован через OAuth |
| OAuth токен | `/home/slin/claude-cli-proxy/auth/claude-homenet542@gmail.com.json` |
## Расположение на сервере
```
/home/slin/claude-cli-proxy/
├── config.yaml # Конфигурация CLIProxyAPI
├── docker-compose.yml # Docker Compose файл
└── auth/ # OAuth токены (volume mount)
└── claude-homenet542@gmail.com.json
```
## Docker
```yaml
# docker-compose.yml
services:
cli-proxy-api:
image: eceasy/cli-proxy-api:latest
container_name: claude-cli-proxy
restart: unless-stopped
ports:
- "127.0.0.1:8317:8317"
volumes:
- ./config.yaml:/CLIProxyAPI/config.yaml
- ./auth:/root/.cli-proxy-api
networks:
- openclaw_openclaw-network
networks:
openclaw_openclaw-network:
external: true
```
## Конфигурация
```yaml
# config.yaml
port: 8317
remote-management:
allow-remote: false
secret-key: ""
auth-dir: "/root/.cli-proxy-api"
auth:
providers: [] # Отключает проверку API key, используется OAuth
debug: false
```
## OpenClaw интеграция
Provider в `~/.openclaw/openclaw.json`:
```json
"claude-cli-proxy": {
"baseUrl": "http://claude-cli-proxy:8317/v1",
"apiKey": "dummy",
"api": "openai-completions",
"models": [
{"id": "claude-sonnet-4-20250514", "name": "Claude Sonnet 4 (cli-proxy)"},
{"id": "claude-sonnet-4-6", "name": "Claude Sonnet 4.6 (cli-proxy)"},
{"id": "claude-opus-4-20250514", "name": "Claude Opus 4 (cli-proxy)"},
{"id": "claude-opus-4-7", "name": "Claude Opus 4.7 (cli-proxy)"}
]
}
```
Dev-агент: `model.primary = "claude-cli-proxy/claude-sonnet-4-20250514"`
## Доступные модели
| Модель | ID |
|--------|-----|
| Claude Sonnet 4 | claude-sonnet-4-20250514 |
| Claude Sonnet 4.6 | claude-sonnet-4-6 |
| Claude Opus 4 | claude-opus-4-20250514 |
| Claude Opus 4.7 | claude-opus-4-7 |
| Claude Opus 4.6 | claude-opus-4-6 |
| Claude Opus 4.1 | claude-opus-4-1-20250805 |
| Claude Haiku 4.5 | claude-haiku-4-5-20251001 |
## Лимиты (Max 5x, $100/мес)
- **5-часовое скользящее окно** — бюджет обновляется каждые 5 часов
- **Недельный cap** — считается только активное compute-время
- **Пиковые часы** (15:00-21:00 MSK) — расход x1.3-1.5
- ~50-200 промптов на 5-часовое окно (зависит от модели и длины)
### ⚠️ С 15 июня 2026
Agent SDK / `claude -p` будет тратить отдельный "Agent SDK credit". Детали TBD.
## Управление
```bash
# SSH на сервер
ssh slin@82.22.50.71
# Статус
cd /home/slin/claude-cli-proxy
docker compose ps
docker logs claude-cli-proxy --tail 20
# Перезапуск
docker compose restart
# Обновление image
docker compose pull && docker compose up -d
# Тест API
curl -s http://127.0.0.1:8317/v1/models | python3 -m json.tool
curl -s -X POST http://127.0.0.1:8317/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer dummy" \
-d '{"model":"claude-sonnet-4-20250514","messages":[{"role":"user","content":"hello"}]}'
```
## Переавторизация OAuth
Если токен протух:
```bash
cd /home/slin/claude-cli-proxy
# Остановить сервис
docker compose down
# Запустить login
docker run --rm -it \
-p 54545:54545 \
-v $(pwd)/auth:/root/.cli-proxy-api \
eceasy/cli-proxy-api:latest \
/CLIProxyAPI/CLIProxyAPI --claude-login --no-browser
# На локальной машине — SSH туннель:
# ssh -L 54545:127.0.0.1:54545 slin@82.22.50.71
# Открыть URL из вывода в браузере, залогиниться
# После логина — запустить сервис
docker compose up -d
```
## Безопасность
- Порт 8317 слушает **только на 127.0.0.1** (не наружу)
- Доступен только из docker network `openclaw_openclaw-network`
- `remote-management.allow-remote: false`
- Один аккаунт, без multi-account
## Troubleshooting
| Проблема | Решение |
|----------|---------|
| `{"data":[],"object":"list"}` (пустые модели) | OAuth токен отсутствует или протух → переавторизация |
| 429 от прокси | Rate limit Max подписки → подождать 5ч окно |
| Контейнер не стартует | `docker logs claude-cli-proxy` → проверить ошибки |
| OpenClaw не видит прокси | Проверить что оба в одной docker network |
## Файлы проекта
- `tasks/claude-cli-proxy/BRD.md` — бизнес-требования
- `tasks/claude-cli-proxy/DEV_TASK.md`ТЗ на деплой
- `tasks/claude-cli-proxy/PROJECT.md` — этот файл
---
*Создано: 2026-05-14 | Автор: Стрим 🌊*