85 lines
7.5 KiB
Markdown
85 lines
7.5 KiB
Markdown
---
|
||
_last_updated_: 2026-08-22T16:45:00Z
|
||
session_id: llm-web-proxy-2026-08-22
|
||
---
|
||
|
||
# Next session handoff
|
||
|
||
## llm-web-proxy — построен (эта сессия)
|
||
|
||
Кастомный web-LLM провайдер для pi + Claude Code (веб-чаты DeepSeek вместо API).
|
||
Код: `C:/Users/vitya/projects/.common/lib/llm-web-proxy` (git repo, remote `victor/llm-web-proxy`).
|
||
Таска: `.tasks/llm-web-proxy.md` (спека). Вики: `.wiki/` в проекте (концепты tool-emulation/combo/blocking).
|
||
|
||
### Что работает (58 тестов GREEN, live-проверено)
|
||
- `/v1/chat/completions` (OpenAI) + `/v1/messages` (Anthropic, Claude Code) — оба формата
|
||
- Эмуляция `<tool>` → tool_calls / tool_use (из кода omniroute, vendor/)
|
||
- 4 комбо: flash/pro + flash-search/pro-search (search отдельно, НЕ смешивать с агентскими)
|
||
- Round-robin по аккаунтам (megan/yulia/vitya) + cooldown/circuit + failover
|
||
- API-ключи (SHA-256, `lwp key create`), auth на /v1/*
|
||
- Блокировки: операторская (`lwp account block --until`) + авто-детект mute (persist в data/)
|
||
- Per-account proxy (undici), конфиг через CLI (`lwp combo/account/key/status/test`)
|
||
- npm-пакет: data-dir кроссплатформенно (APPDATA/XDG), `lwp serve`, `lwp autostart enable`
|
||
(win .vbs / linux systemd-user / mac launchd — паттерн omniroute)
|
||
- Уведомления: нативные toast (node-notifier) по умолчанию; ntfy — OFF (включается конфигом)
|
||
- Docker: docker-compose (data volume), НО docker демон на машине был выключен — проверка в docker не финальна
|
||
|
||
### Состояние аккаунтов deepseek-web
|
||
- **megan: muted** в DeepSeek до 2026-08-23 14:38 МСК (авто-блок стоит, переживает рестарт)
|
||
- yulia, vitya — работают. Ротация идёт по ним.
|
||
|
||
### pi-интеграция
|
||
`~/.pi/agent/models.json` → провайдер `llm-web` (baseUrl http://127.0.0.1:8788/v1, ключ выпущен)
|
||
- `local/deepseek-flash-web`, `local/deepseek-pro-web`
|
||
- `local/deepseek-flash-search-web`, `local/deepseek-pro-search-web`
|
||
- omniroute удалён из models.json (заменён llm-web-proxy)
|
||
|
||
### Планы на следующую сессию (по приоритету)
|
||
1. **npm i -g реально не проверен** — прогнать `npm pack` + `npm i -g <tarball>` на win;
|
||
проверить `lwp serve`/`lwp autostart` из глобальной установки (files-список, resolveCli пути).
|
||
2. **mac/linux ветки autostart не протестированы** — только pure-builder тесты; live только win .vbs.
|
||
3. **lwp serve при автозапуске** — .vbs указывает на bin/lwp.mjs в .common; при глобальной установке
|
||
путь другой — проверить, что autostart резолвит правильный cli.
|
||
4. **qwen-web** — ключ есть, падал по DNS (EAI_AGAIN); починить = второй web-канал.
|
||
5. **gemini-web / kimi-web / grok-web** — кандидаты (emulated tool calling), добавить отдельными комбо.
|
||
6. **Скилл с субагент-поиском** на `*-search` комбо — план юзера (writing-skills).
|
||
|
||
### Открытые вопросы юзеру
|
||
- npm i -g локально или в registry (verdaccio)? Деплой llm-web-proxy как службы — уже autostart.
|
||
|
||
---
|
||
|
||
# Next session handoff
|
||
|
||
## Recent commits
|
||
- .admin `da97d25c` docs(tasks): F&F daemon-image closed — fixes accepted (0.10.1)
|
||
- .admin `6fdb9b51` docs(tasks): F&F daemon-image 7/7 PASS + findings F1/F2
|
||
- .admin `aa88f538` docs(handoff): сессия 0.2.0-симуляция завершена (предыдущая сессия)
|
||
|
||
## F&F daemon-npm-image-storage — ЗАКРЫТ (эта сессия)
|
||
Лестница **7/7 PASS** + фиксы sched (commit e755b52, daemon **0.10.1**, digest `269093a08f6e…`) приняты после ретеста затронутых поверхностей (F1/F2/N2 живьём + регресс ступеней 1/2/3/5 — без изменений). Письма: отчёт `2026-08-21T23-27-41Z-admin.md`, акцепт `2026-08-21T23-41-30Z-admin.md` (sched/.agents/inbox, gitignored file-drop). Стенд: `.tmp/fnf-daemon-image/` (gitignored): Dockerfile.mongo (0.10.0), Dockerfile.doc-recipe-v2 (0.10.1, как в доках), my-storage.mjs, my-storage-bad.mjs, tasks.json. Дальше — sched/books сами.
|
||
|
||
## Open треки
|
||
| Трек | Готовность | Entry-point |
|
||
|---|---|---|
|
||
| Реальный деплой apilki (npmjs + github.com) | ждёт отмашки | «Спроси user'а» |
|
||
| sched-vds-deploy | 🟡 paused | ждёт результатов миграции books→sched (phase-3) |
|
||
| books миграция на sched | в процессе | victor/books `sched-migration-phase-3` (blocked), victor/sched `books-sched-integration` (paused) |
|
||
| sched-pipelines-local-stack | Status: active в STATUS.md; по handoff предыдущей сессии кампания финализирована (0.1.0 published, повторные раны noop) → кандидат на закрытие (предложено в ритуале) | .tasks/STATUS.md |
|
||
|
||
## Спроси user'а
|
||
- **Реальный деплой apilki-билдеров**: npmjs + github.com (не мок). Требует отмашки + настоящие NPM_TOKEN/GITHUB_TOKEN (в pass). Не гонять без явной команды.
|
||
- (F&F daemon-image — закрыт, вопросов нет)
|
||
|
||
## Не делать (preemptive guards)
|
||
- Не запускать реальный publish в npmjs/github.com без явной отмашки.
|
||
- **sched-vds-deploy не запускать** — paused по решению vitya (2026-08-21), ждём миграцию books→sched.
|
||
- Не писать токены в git/handoff/письма (secrets rule: только pass). ⚠️ tasks.generated.json с токеном — gitignored, не коммитить.
|
||
- Не лезть в код агентов самим (юзер: «ты сам в код не лезь») — фиксы через режект-письма; исключение — стенд-конфиг (.admin).
|
||
- Не трогать `llm-router-failover-proxy` (юзер закрыл 2026-08-18).
|
||
|
||
## Memory updates за сессию
|
||
- **Кандидат на shared-wiki ingest**: verdaccio-токен в производных docker-образах — BuildKit secret, не ARG (ARG → JWT в `docker history`, воспроизведено на schedd-mongo 0.10.0); `npmMinimalAgeGate: 0` обязателен для yarn 4.18 против verdaccio (нет publish-time метаданных). Касается books T2-паттерна (FROM + yarn add + env) и любых композиций поверх @sched/*.
|
||
- **Кандидат на shared-wiki ingest**: Windows git-bash + docker run — нужен `MSYS_NO_PATHCONV=1` (иначе POSIX-пути манглятся в `C:/Program Files/Git/…` → `unable to open database file`). sched задокументировал в 13.self-hosting.
|
||
- (прошлая сессия, не заингещено): паттерн «симуляция апстрим-апдейта в мок-стенде»; «мок не зеркалит прод-контракт» (3 случая).
|