SYMBOL INDEX (43 symbols across 2 files) FILE: server.py class MessageFilter (line 36) | class MessageFilter(logging.Filter): method filter (line 37) | def filter(self, record): class ColorizedFormatter (line 58) | class ColorizedFormatter(logging.Formatter): method format (line 67) | def format(self, record): function clean_gemini_schema (line 126) | def clean_gemini_schema(schema: Any) -> Any: class ContentBlockText (line 149) | class ContentBlockText(BaseModel): class ContentBlockImage (line 153) | class ContentBlockImage(BaseModel): class ContentBlockToolUse (line 157) | class ContentBlockToolUse(BaseModel): class ContentBlockToolResult (line 163) | class ContentBlockToolResult(BaseModel): class SystemContent (line 168) | class SystemContent(BaseModel): class Message (line 172) | class Message(BaseModel): class Tool (line 176) | class Tool(BaseModel): class ThinkingConfig (line 181) | class ThinkingConfig(BaseModel): class MessagesRequest (line 184) | class MessagesRequest(BaseModel): method validate_model_field (line 201) | def validate_model_field(cls, v, info): # Renamed to avoid conflict class TokenCountRequest (line 266) | class TokenCountRequest(BaseModel): method validate_model_token_count (line 276) | def validate_model_token_count(cls, v, info): # Renamed to avoid conflict class TokenCountResponse (line 338) | class TokenCountResponse(BaseModel): class Usage (line 341) | class Usage(BaseModel): class MessagesResponse (line 347) | class MessagesResponse(BaseModel): function log_requests (line 358) | async def log_requests(request: Request, call_next): function parse_tool_result_content (line 373) | def parse_tool_result_content(content): function convert_anthropic_to_litellm (line 417) | def convert_anthropic_to_litellm(anthropic_request: MessagesRequest) -> ... function convert_litellm_to_anthropic (line 638) | def convert_litellm_to_anthropic(litellm_response: Union[Dict[str, Any],... function handle_streaming (line 833) | async def handle_streaming(response_generator, original_request: Message... function create_message (line 1096) | async def create_message( function count_tokens (line 1387) | async def count_tokens( function root (line 1466) | async def root(): class Colors (line 1470) | class Colors: function log_request_beautifully (line 1481) | def log_request_beautifully(method, path, claude_model, openai_model, nu... FILE: tests.py function get_response (line 199) | def get_response(url, headers, data): function compare_responses (line 208) | def compare_responses(anthropic_response, proxy_response, check_tools=Fa... function test_request (line 318) | def test_request(test_name, request_data, check_tools=False): class StreamStats (line 366) | class StreamStats: method __init__ (line 369) | def __init__(self): method add_event (line 383) | def add_event(self, event_data): method get_duration (line 420) | def get_duration(self): method summarize (line 426) | def summarize(self): function stream_response (line 445) | async def stream_response(url, headers, data, stream_name): function compare_stream_stats (line 527) | def compare_stream_stats(anthropic_stats, proxy_stats): function test_streaming (line 568) | async def test_streaming(test_name, request_data): function run_tests (line 634) | async def run_tests(args): function main (line 697) | async def main():