Skip to main content

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}