"""Kimi Code host-allowlist behavior (follow-up to provider support). Kimi Code (https://api.kimi.com/coding/v1) is a subscription, OpenAI-compatible cloud API with native tool-calling. These tests pin the three host-list integrations: - agent loop sends native tool schemas to Kimi Code (not fenced-block parsing), - teacher escalation treats Kimi Code as SOTA (loop OFF, no added latency). """ from src import agent_loop, teacher_escalation class TestAgentToolHosts: def test_kimi_code_in_api_hosts(self): assert "api.kimi.com" in agent_loop._API_HOSTS def test_kimi_code_url_matches_api_host(self): url = "https://api.kimi.com/coding/v1/chat/completions" assert any(h in url for h in agent_loop._API_HOSTS) def test_unknown_host_not_matched(self): url = "https://example.invalid/v1/chat/completions" assert not any(h in url for h in agent_loop._API_HOSTS) class TestTeacherEscalationSota: def test_kimi_code_is_sota_not_self_hosted(self): assert teacher_escalation.is_self_hosted("https://api.kimi.com/coding/v1/chat/completions") is False def test_known_cloud_still_sota(self): assert teacher_escalation.is_self_hosted("https://api.openai.com/v1") is False def test_local_endpoint_still_self_hosted(self): assert teacher_escalation.is_self_hosted("http://localhost:8000/v1") is True