"""Tests for AIClient forced tool name extraction.""" from src.ai.client import AIClient def test_extract_forced_tool_name_full_name(): tools = [ "humanizer_zh.read_skill_doc", "skills_creator.create_skill", ] message = "please call tool humanizer_zh.read_skill_doc and return first 100 chars" forced = AIClient._extract_forced_tool_name(message, tools) assert forced == "humanizer_zh.read_skill_doc" def test_extract_forced_tool_name_unique_prefix(): tools = [ "humanizer_zh.read_skill_doc", "skills_creator.create_skill", ] message = "please call tool humanizer_zh only" forced = AIClient._extract_forced_tool_name(message, tools) assert forced == "humanizer_zh.read_skill_doc" def test_extract_forced_tool_name_ambiguous_prefix_returns_none(): tools = [ "skills_creator.create_skill", "skills_creator.reload_skill", ] message = "please call tool skills_creator" forced = AIClient._extract_forced_tool_name(message, tools) assert forced is None