| 1 | # Registri Penyedia (Provider Registry) |
| 2 | |
| 3 | Registri ini menjelaskan perilaku penyedia (provider) yang terhubung ke dalam basis kode Codewhale saat ini. Registri ini sengaja dibuat konservatif: entri yang dirilis terbatas pada ID penyedia, kunci konfigurasi, jalur autentikasi, URL dasar, resolusi model, dan metadata kapabilitas yang sudah dikelola oleh sistem. |
| 4 | |
| 5 | DeepSeek tetap menjadi penyedia bawaan (default), tetapi setiap entri dalam `ProviderKind::ALL` dan `PROVIDER_REGISTRY` adalah rute penyedia yang dapat dipilih sebagai warga kelas satu. Rute ter-host, endpoint generik kompatibel-OpenAI, rute OpenAI Codex/ChatGPT, Anthropic native, dan runtime lokal semuanya menjalankan harness terminal yang sama terhadap penyedia/model/URL dasar terpilih. |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## Pemilihan Penyedia (Provider Selection) |
| 10 | |
| 11 | ID penyedia kanonik yang didukung meliputi: |
| 12 | |
| 13 | `deepseek`, `deepseek-anthropic`, `nvidia-nim`, `openai`, `atlascloud`, `wanjie-ark`, `volcengine`, `openrouter`, `xiaomi-mimo`, `novita`, `fireworks`, `siliconflow`, `arcee`, `siliconflow-CN`, `moonshot`, `sglang`, `vllm`, `ollama`, `huggingface`, `together`, `qianfan`, `openai-codex`, `anthropic`, `openmodel`, `zai`, `stepfun`, `minimax`, `deepinfra`, `sakana`, `longcat`, `opencode-go`, `meta`, `telecomjs`, dan `xai`. |
| 14 | |
| 15 | Gunakan salah satu cara berikut untuk memilih penyedia: |
| 16 | |
| 17 | - CLI: `codewhale --provider <id>` |
| 18 | - TUI: `/provider <id>` atau melalui pemilih penyedia (provider picker) |
| 19 | - Variabel Lingkungan: `CODEWHALE_PROVIDER=<id>` (atau alias lama `DEEPSEEK_PROVIDER=<id>`) |
| 20 | - Konfigurasi (`config.toml`): `provider = "<id>"` |
| 21 | |
| 22 | --- |
| 23 | |
| 24 | ## Ringkasan Rute Utama |
| 25 | |
| 26 | 1. **DeepSeek (`deepseek`)**: |
| 27 | - URL Dasar: `https://api.deepseek.com` |
| 28 | - Model bawaan: `deepseek-chat` / `deepseek-coder` |
| 29 | - Autentikasi: `DEEPSEEK_API_KEY` (Bearer auth) |
| 30 | |
| 31 | 2. **OpenAI (`openai`)**: |
| 32 | - URL Dasar: `https://api.openai.com/v1` |
| 33 | - Model bawaan: `gpt-4o`, `gpt-4o-mini`, `o1`, `o3-mini` |
| 34 | - Autentikasi: `OPENAI_API_KEY` |
| 35 | |
| 36 | 3. **Anthropic (`anthropic`)**: |
| 37 | - URL Dasar: `https://api.anthropic.com` |
| 38 | - Model bawaan: `claude-3-5-sonnet-latest`, `claude-3-5-haiku-latest` |
| 39 | - Autentikasi: `ANTHROPIC_API_KEY` (`x-api-key`) |
| 40 | |
| 41 | 4. **Runtime Lokal (`vllm`, `ollama`, `sglang`)**: |
| 42 | - Ollama bawaan: `http://127.0.0.1:11434/v1` |
| 43 | - vLLM / SGLang bawaan: `http://127.0.0.1:8000/v1` |
| 44 | - Tidak memerlukan API key untuk eksekusi lokal. |
| 45 |