SYMBOL INDEX (47 symbols across 9 files) FILE: src/plamo_translate/clients/translate.py function message_handler (line 17) | async def message_handler( class MCPClient (line 25) | class MCPClient: method __init__ (line 26) | def __init__(self, stream: bool) -> None: method translate (line 40) | async def translate(self, messages: List[Dict[str, str]]) -> AsyncGene... method _translate_stream (line 82) | async def _translate_stream(self, session: ClientSession, request: Tra... FILE: src/plamo_translate/main.py function start_mcp_server (line 32) | def start_mcp_server(backend_type: str, log_level: str, show_progress: b... function check_server_running (line 55) | def check_server_running() -> bool: function wait_for_server_ready (line 66) | def wait_for_server_ready() -> None: function print_translation (line 71) | async def print_translation( function run_translate (line 84) | def run_translate(args: argparse.Namespace) -> None: function main (line 184) | def main() -> None: FILE: src/plamo_translate/servers/mlx/server.py class PLaMoTranslateServer (line 40) | class PLaMoTranslateServer(FastMCP): method __init__ (line 43) | def __init__(self, log_level: str, show_progress: bool = False) -> None: method lifespan (line 70) | async def lifespan(self, server: FastMCP): method load_model (line 80) | def load_model(self) -> Tuple[nn.Module, TokenizerWrapper, Callable[..... method translate (line 144) | async def translate(self, request: TranslateRequest, stream: bool, con... FILE: src/plamo_translate/servers/mock/server.py function _extract_input_text (line 17) | def _extract_input_text(request: TranslateRequest) -> str: class PLaMoTranslateServer (line 28) | class PLaMoTranslateServer(FastMCP): method __init__ (line 31) | def __init__(self, log_level: str, show_progress: bool = False) -> None: method translate (line 48) | async def translate(self, request: TranslateRequest, stream: bool, con... FILE: src/plamo_translate/servers/utils.py function verify_mcp_server_ready (line 60) | async def verify_mcp_server_ready(port: int) -> List[str]: function find_free_port (line 80) | def find_free_port( function update_config (line 130) | def update_config(**kwargs) -> Dict[str, Any]: function _write_config (line 165) | def _write_config(path: Path, config: Dict[str, Any], *, indent: int | N... class Message (line 175) | class Message(BaseModel): class TranslateRequest (line 182) | class TranslateRequest(BaseModel): function construct_llm_input (line 204) | def construct_llm_input(request: TranslateRequest) -> List[Message]: FILE: src/plamo_translate/servers/warnings.py function suppress_optional_gpu_dependency_warnings (line 13) | def suppress_optional_gpu_dependency_warnings() -> Iterator[None]: function build_optional_gpu_dependency_warning_options (line 25) | def build_optional_gpu_dependency_warning_options() -> list[str]: FILE: tests/test_cli.py function isolated_test_environment (line 19) | def isolated_test_environment(monkeypatch, tmp_path): function wait_for_server_ready (line 27) | def wait_for_server_ready(timeout: int = SERVER_STARTUP_TIMEOUT_SECONDS)... function wait_for_port_in_use (line 37) | def wait_for_port_in_use(port: int, timeout: int = SERVER_STARTUP_TIMEOU... function test_update_config_without_kwargs_is_read_only (line 48) | def test_update_config_without_kwargs_is_read_only(tmp_path): function stop_subprocess (line 62) | def stop_subprocess(process: subprocess.Popen[str] | None) -> None: function stop_multiprocess (line 74) | def stop_multiprocess(process: multiprocessing.Process | None) -> None: function test_plamo_translate_without_server (line 85) | def test_plamo_translate_without_server(): function test_plamo_translate_server_simple_use (line 93) | def test_plamo_translate_server_simple_use(): function test_plamo_translate_server_already_running (line 127) | def test_plamo_translate_server_already_running(): function start_http_server (line 152) | def start_http_server(): function test_plamo_translate_server_find_new_port (line 159) | def test_plamo_translate_server_find_new_port(): function test_plamo_translate_server_interactive (line 188) | def test_plamo_translate_server_interactive(): FILE: tests/test_cli_integration.py function integration_test_environment (line 15) | def integration_test_environment(monkeypatch, tmp_path): function wait_for_server_ready (line 23) | def wait_for_server_ready(timeout: int = SERVER_STARTUP_TIMEOUT_SECONDS)... function stop_subprocess (line 33) | def stop_subprocess(process: subprocess.Popen[str] | None) -> None: function test_plamo_translate_server_roundtrip_with_real_model (line 45) | def test_plamo_translate_server_roundtrip_with_real_model(): FILE: tests/test_warning_filters.py function test_build_optional_gpu_dependency_warning_options (line 10) | def test_build_optional_gpu_dependency_warning_options(): function test_suppress_optional_gpu_dependency_warnings_only_hides_known_messages (line 19) | def test_suppress_optional_gpu_dependency_warnings_only_hides_known_mess...