Priority: Critical
Related: #199
_map_user_tool() is implemented identically in both chatcompletions/parameters.py and openresponses/parameters.py. Should be extracted to a shared base class or utility.
What to fix:
- Extract
_map_user_tool() to a shared ToolsMapper base in celeste.tools or celeste.parameters
- Have both protocol ToolsMappers inherit from or call the shared implementation
Files:
src/celeste/protocols/chatcompletions/parameters.py:112-129
src/celeste/protocols/openresponses/parameters.py:165-182