Files
infosave2007 cbc385f6c7 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)
2026-06-30 10:51:37 +03:00

47 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
*Read this in [Русский](CONTRIBUTING.ru.md).*
# Contributing to Cortiq Gateway
Thank you for your interest in the project! This is an open gateway and we welcome contributions.
## Getting started
1. Read [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) — design overview and roadmap.
2. Review [docs/PROTOCOLS.md](docs/PROTOCOLS.md) and [docs/ROUTING.md](docs/ROUTING.md).
3. The current phase is **Phase 0** (skeleton). Good entry-point tasks are labeled
`good first issue`.
## How to add...
- **A new inbound protocol** — implement the `InboundProtocol` trait in `src/protocols/`,
translate to/from the canonical model (`ChatRequest`/`ChatResponse`), and add the
corresponding flag in `[protocols]`. Do not touch the providers.
- **A new provider** — implement the `Provider` trait in `src/providers/`. Most local
servers are OpenAI-compatible, so reusing `openai.rs` is often sufficient.
- **A new routing policy** — extend `src/routing.rs` and the `[routing.policy]` section.
Core principle: N protocols × M providers communicate **only** through the canonical model —
no direct protocol↔provider translations.
## Style and checks
```bash
cargo fmt --all
cargo clippy --all-targets -- -D warnings
cargo test
```
- Match the style of the surrounding code.
- Secrets go only through `*_env` variables — never commit them to the repository.
- New functionality must be accompanied by tests and updates to `docs/`.
## Pull requests
- Keep PRs small and focused. One PR = one logical unit of change.
- In the description: what, why, and how it was tested.
- Link the related issue if one exists.
## License
Contributions are accepted under [Apache-2.0](LICENSE).