fix(api-server): reuse toolset feature snapshot
This commit is contained in:
parent
16bd5d23b4
commit
b45d886906
|
|
@ -3095,6 +3095,7 @@ class APIServerAdapter(BasePlatformAdapter):
|
|||
_get_effective_configurable_toolsets,
|
||||
_get_platform_tools,
|
||||
_toolset_has_keys,
|
||||
get_nous_subscription_features,
|
||||
)
|
||||
from toolsets import resolve_toolset
|
||||
|
||||
|
|
@ -3104,6 +3105,7 @@ class APIServerAdapter(BasePlatformAdapter):
|
|||
"api_server",
|
||||
include_default_mcp_servers=False,
|
||||
)
|
||||
features = get_nous_subscription_features(config)
|
||||
data: List[Dict[str, Any]] = []
|
||||
for name, label, desc in _get_effective_configurable_toolsets():
|
||||
try:
|
||||
|
|
@ -3116,7 +3118,7 @@ class APIServerAdapter(BasePlatformAdapter):
|
|||
"label": label,
|
||||
"description": desc,
|
||||
"enabled": is_enabled,
|
||||
"configured": _toolset_has_keys(name, config),
|
||||
"configured": _toolset_has_keys(name, config, features=features),
|
||||
"tools": tools,
|
||||
})
|
||||
except Exception:
|
||||
|
|
|
|||
|
|
@ -913,6 +913,7 @@ class TestToolsetsEndpoint:
|
|||
("default", "Default Tools", "Core tools"),
|
||||
("web", "Web Tools", "Search and extract"),
|
||||
]
|
||||
feature_snapshot = object()
|
||||
with patch(
|
||||
"hermes_cli.tools_config._get_effective_configurable_toolsets",
|
||||
return_value=fake_toolsets,
|
||||
|
|
@ -920,9 +921,12 @@ class TestToolsetsEndpoint:
|
|||
"hermes_cli.tools_config._get_platform_tools",
|
||||
return_value={"default"},
|
||||
), patch(
|
||||
"hermes_cli.tools_config.get_nous_subscription_features",
|
||||
return_value=feature_snapshot,
|
||||
) as resolve_features, patch(
|
||||
"hermes_cli.tools_config._toolset_has_keys",
|
||||
return_value=True,
|
||||
), patch(
|
||||
) as has_keys, patch(
|
||||
"toolsets.resolve_toolset",
|
||||
side_effect=lambda name: {
|
||||
"default": ["terminal", "read_file"],
|
||||
|
|
@ -943,6 +947,13 @@ class TestToolsetsEndpoint:
|
|||
assert by_name["web"]["tools"] == ["web_search"]
|
||||
assert by_name["default"]["configured"] is True
|
||||
|
||||
resolve_features.assert_called_once()
|
||||
assert has_keys.call_count == len(fake_toolsets)
|
||||
assert all(
|
||||
call.kwargs["features"] is feature_snapshot
|
||||
for call in has_keys.call_args_list
|
||||
)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# /v1/chat/completions endpoint
|
||||
|
|
@ -2846,4 +2857,3 @@ class TestCreateAgentModelRecovery:
|
|||
adapter._create_agent(session_id="another-session", gateway_session_key="stable-chan-1")
|
||||
assert captured[1]["model"] == "minimax/minimax-m3"
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue