feat: universal LLM gateway with embedded multilingual admin console

- OpenAI-compatible gateway with intelligent routing via cortiq-router (allaigate)
- Embedded build-free admin SPA at /admin: 7 languages (en/ru/de/fr/es/zh/tr),
  light/dark themes, hot config reload (no restart)
- Admin API, per-request statistics + Prometheus /metrics, secret store, playground
- English documentation (primary) with Russian translations (*.ru.md)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
infosave2007
2026-06-30 10:51:37 +03:00
co-authored by Claude Opus 4.8
commit 51487e6329
63 changed files with 11339 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
*Read this in [English](CONTRIBUTING.md).*
# Contributing to Cortiq Gateway
Спасибо за интерес к проекту! Это открытый шлюз, и мы рады контрибьюциям.
## С чего начать
1. Прочитайте [docs/ARCHITECTURE.md](docs/ARCHITECTURE.ru.md) — устройство и дорожная карта.
2. Посмотрите [docs/PROTOCOLS.md](docs/PROTOCOLS.ru.md) и [docs/ROUTING.md](docs/ROUTING.ru.md).
3. Текущая фаза — **Phase 0** (скелет). Хорошие первые задачи помечены `good first issue`.
## Как добавить...
- **Новый входящий протокол** — реализуйте трейт `InboundProtocol` в `src/protocols/`,
переведите его в/из канонической модели (`ChatRequest`/`ChatResponse`), добавьте флаг
в `[protocols]`. Не трогайте провайдеры.
- **Нового провайдера** — реализуйте трейт `Provider` в `src/providers/`. Большинство
локальных серверов OpenAI-совместимы → часто достаточно переиспользовать `openai.rs`.
- **Новую политику роутинга** — расширьте `src/routing.rs` и секцию `[routing.policy]`.
Принцип: N протоколов × M провайдеров общаются **только** через каноническую модель —
никаких прямых переводов «протокол↔провайдер».
## Стиль и проверки
```bash
cargo fmt --all
cargo clippy --all-targets -- -D warnings
cargo test
```
- Пишите код в стиле окружающего кода.
- Секреты — только через `*_env`, никогда в репозиторий.
- Новый функционал сопровождайте тестами и обновлением docs/.
## Pull requests
- Небольшие, сфокусированные PR. Один PR — одна логическая единица.
- В описании: что, зачем, как протестировано.
- Линкуйте issue, если есть.
## Лицензия
Контрибьюции принимаются под [Apache-2.0](LICENSE).