vtcode_config/constants/models/evolink.rs
1// Evolink models (OpenAI-compatible multi-model gateway)
2// https://docs.evolink.ai/llms.txt
3//
4// Evolink is an aggregator that exposes many upstream models behind a single
5// gateway. GPT/DeepSeek/Doubao models use the OpenAI Chat Completions format
6// at `/v1/chat/completions`; Claude models use the Anthropic Messages format
7// at `/v1/messages`. Bare model names collide with VT Code's first-class
8// providers, so curated `ModelId` catalog entries are namespaced with an
9// `evolink/` prefix; the provider strips that prefix before sending upstream.
10
11// --- OpenAI-compatible models (Chat Completions API) ---
12pub const GPT_5_6: &str = "gpt-5.6";
13pub const GPT_5_6_SOL: &str = "gpt-5.6-sol";
14pub const GEMINI_3_1_PRO: &str = "gemini-3.7-flash";
15pub const GEMINI_3_7_FLASH: &str = "gemini-3.7-flash";
16pub const MINIMAX_M3: &str = "MiniMax-M3";
17
18// --- Anthropic-compatible models (Messages API) ---
19pub const CLAUDE_SONNET_5: &str = "claude-sonnet-5";
20pub const CLAUDE_OPUS_5: &str = "claude-opus-5";
21pub const CLAUDE_OPUS_5_5: &str = "claude-opus-5-5";
22
23pub const DEFAULT_MODEL: &str = GPT_5_6;
24
25/// Curated models VT Code exposes in config flows and `ModelId` metadata.
26pub const SUPPORTED_MODELS: &[&str] = &[
27 GPT_5_6,
28 GPT_5_6_SOL,
29 GEMINI_3_1_PRO,
30 GEMINI_3_7_FLASH,
31 MINIMAX_M3,
32 CLAUDE_SONNET_5,
33 CLAUDE_OPUS_5,
34 CLAUDE_OPUS_5_5,
35 CLAUDE_OPUS_5,
36 CLAUDE_SONNET_5,
37];
38
39/// Models that use the Anthropic Messages API instead of OpenAI Chat Completions.
40const ANTHROPIC_FORMAT_MODELS: &[&str] = &[
41 CLAUDE_SONNET_5,
42 CLAUDE_OPUS_5,
43 CLAUDE_OPUS_5_5,
44 CLAUDE_OPUS_5,
45 CLAUDE_SONNET_5,
46];
47
48/// Models that emit reasoning traces / accept `reasoning_effort`.
49pub const REASONING_MODELS: &[&str] = &[];
50
51/// Returns `true` if the model should use the Anthropic Messages API format.
52pub fn is_anthropic_format(model: &str) -> bool {
53 ANTHROPIC_FORMAT_MODELS.contains(&model)
54}