fix(cli): handle plugin platforms in _get_platform_tools toolset lookup
The static PLATFORMS registry only contains built-in platforms (slack, discord, etc.). Plugin platforms registered via PluginContext.register_platform_adapter aren't in PLATFORMS, so the existing PLATFORMS[platform]["default_toolset"] lookup raised KeyError during agent loop init for any plugin-platform message. Caught by an end-to-end test that spawns hermes gateway run + a stub OpenAI-compat LLM and routes a real message through a plugin platform (molecule-a2a). Fall back to "hermes-cli" (most permissive in-tree toolset) for plugin platforms; operators can override per-platform via config.platform_toolsets. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
ece9e34ec6
commit
18e4849e75
@ -516,7 +516,15 @@ def _get_platform_tools(
|
||||
toolset_names = platform_toolsets.get(platform)
|
||||
|
||||
if toolset_names is None or not isinstance(toolset_names, list):
|
||||
default_ts = PLATFORMS[platform]["default_toolset"]
|
||||
# Plugin platforms (registered via PluginContext.register_platform_adapter)
|
||||
# aren't in the static PLATFORMS registry — fall back to the cli
|
||||
# toolset, which is the most permissive in-tree default. Operators
|
||||
# can override per-platform via config.platform_toolsets.
|
||||
platform_info = PLATFORMS.get(platform)
|
||||
if platform_info is None:
|
||||
default_ts = "hermes-cli"
|
||||
else:
|
||||
default_ts = platform_info["default_toolset"]
|
||||
toolset_names = [default_ts]
|
||||
|
||||
# YAML may parse bare numeric names (e.g. ``12306:``) as int.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user