Private
Public Access
refactor(ai_client): merge vendor_capabilities into ai_client; git rm src/vendor_capabilities.py
Per spec FR2 + Phase 2.1: VendorCapabilities + register + get_capabilities + list_models_for_vendor + the ~40 vendor registrations move into ai_client.py as a region block. Renamed internal _REGISTRY to _VENDOR_REGISTRY to avoid collision with mcp_tool_specs._REGISTRY. Importers (in src/) updated: - src/ai_client.py: removed top-level import; removed 4 local imports of list_models_for_vendor/get_capabilities (symbol now in module namespace) - src/app_controller.py: 2 sites updated to 'from src.ai_client import get_capabilities' - src/gui_2.py: 1 site updated to 'from src.ai_client import VendorCapabilities, get_capabilities' Tests updated: - 8 test_*.py files: changed 'from src.vendor_capabilities import' to 'from src.ai_client import' - tests/test_vendor_capabilities.py: _clean_registry fixture updated to reference src.ai_client._VENDOR_REGISTRY (was src.vendor_capabilities._REGISTRY) Verification: 157 tests pass across the affected files (vendor_capabilities, ai_client_tool_loop variants, openai_compatible, command_palette, diff_viewer, patch_modal, app_controller_result, app_controller_sigint, handle_reset_session, ai_loop_regressions, grok/llama/minimax provider tests).
This commit is contained in:
@@ -42,7 +42,7 @@ def test_minimax_reasoning_extractor_used_when_caps_reasoning_true() -> None:
|
||||
def _fake_send(client, request, *, capabilities):
|
||||
captured_kwargs.append({"model": request.model})
|
||||
return MagicMock(text="ok", tool_calls=[], usage=UsageStats(input_tokens=0, output_tokens=0, cache_read_tokens=0, cache_creation_tokens=0), raw_response=None)
|
||||
from src.vendor_capabilities import register, VendorCapabilities
|
||||
from src.ai_client import register, VendorCapabilities
|
||||
register(VendorCapabilities(vendor='minimax', model='MiniMax-M2.5', reasoning=True))
|
||||
with patch.object(oc, "send_openai_compatible", side_effect=_fake_send), \
|
||||
patch("src.ai_client._ensure_minimax_client", return_value=MagicMock()), \
|
||||
@@ -54,7 +54,7 @@ def test_minimax_reasoning_extractor_omitted_when_caps_reasoning_false() -> None
|
||||
"""caps.reasoning=False (M2/M2.1) should NOT pass the reasoning_extractor (avoid useless getattr)."""
|
||||
from src import openai_compatible as oc
|
||||
from src.openai_schemas import UsageStats
|
||||
from src.vendor_capabilities import register, VendorCapabilities
|
||||
from src.ai_client import register, VendorCapabilities
|
||||
register(VendorCapabilities(vendor='minimax', model='MiniMax-M2', reasoning=False))
|
||||
captured_kwargs: list[dict] = []
|
||||
def _fake_send(client, request, *, capabilities):
|
||||
|
||||
Reference in New Issue
Block a user