Merge pull request #37283 from NousResearch/fix-toolset-provider-selection-display

fix(desktop): reflect active toolset provider in config panel
This commit is contained in:
Jeffrey Quesnelle 2026-06-02 04:05:52 -04:00 committed by GitHub
commit 89db6c8534
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 122 additions and 7 deletions

View file

@ -5792,6 +5792,7 @@ async def get_toolset_config(name: str):
from hermes_cli.tools_config import (
TOOL_CATEGORIES,
_get_effective_configurable_toolsets,
_is_provider_active,
_visible_providers,
)
from hermes_cli.config import get_env_value
@ -5803,6 +5804,7 @@ async def get_toolset_config(name: str):
config = load_config()
cat = TOOL_CATEGORIES.get(name)
providers = []
active_provider = None
if cat:
for prov in _visible_providers(cat, config, force_fresh=True):
env_vars = [
@ -5815,6 +5817,13 @@ async def get_toolset_config(name: str):
}
for e in prov.get("env_vars", [])
]
# Surface the same active-provider determination the CLI picker
# uses (``_is_provider_active``) so the GUI highlights the provider
# actually written to config (e.g. web.backend), not just the first
# keyless one in the list.
is_active = _is_provider_active(prov, config, force_fresh=True)
if is_active and active_provider is None:
active_provider = prov["name"]
providers.append({
"name": prov["name"],
"badge": prov.get("badge", ""),
@ -5822,11 +5831,13 @@ async def get_toolset_config(name: str):
"env_vars": env_vars,
"post_setup": prov.get("post_setup"),
"requires_nous_auth": bool(prov.get("requires_nous_auth")),
"is_active": is_active,
})
return {
"name": name,
"has_category": cat is not None,
"providers": providers,
"active_provider": active_provider,
}