Skip to main content

vtcode_llm/
capabilities.rs

1//! Compatibility re-export for provider capability metadata.
2
3pub use super::provider::ProviderCapabilities;
4
5#[cfg(test)]
6mod tests {
7    use super::ProviderCapabilities;
8
9    #[test]
10    fn capability_summary_reports_enabled_features() {
11        let caps = ProviderCapabilities {
12            provider_name: "gemini".to_owned(),
13            model: "gemini-2.0-pro".to_owned(),
14            streaming: true,
15            reasoning: false,
16            reasoning_effort: false,
17            tools: true,
18            parallel_tool_config: false,
19            structured_output: true,
20            context_caching: true,
21            responses_compaction: false,
22            context_edits: false,
23            turn_scoped_system_messages: false,
24            vision: true,
25            context_size: 2_000_000,
26        };
27
28        let summary = caps.summary();
29        assert!(summary.contains("gemini-2.0-pro"));
30        assert!(summary.contains("2000000"));
31        assert!(summary.contains("structured-output"));
32        assert!(summary.contains("context-caching"));
33    }
34
35    #[test]
36    fn advanced_feature_detection_matches_fields() {
37        let basic = ProviderCapabilities {
38            provider_name: "basic".to_owned(),
39            model: "basic-model".to_owned(),
40            streaming: false,
41            reasoning: false,
42            reasoning_effort: false,
43            tools: true,
44            parallel_tool_config: false,
45            structured_output: false,
46            context_caching: false,
47            responses_compaction: false,
48            context_edits: false,
49            turn_scoped_system_messages: false,
50            vision: false,
51            context_size: 128_000,
52        };
53
54        assert!(!basic.has_advanced_features());
55
56        let advanced = ProviderCapabilities { structured_output: true, ..basic };
57
58        assert!(advanced.has_advanced_features());
59    }
60}