diff --git a/cli.py b/cli.py index 2e50b30a2fb..bfe0dcbaa9d 100644 --- a/cli.py +++ b/cli.py @@ -15,8 +15,8 @@ Usage: import logging import os -import platform import shutil +import sys import json import re import concurrent.futures diff --git a/gateway/run.py b/gateway/run.py index ea1977c34eb..65394935c67 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -7988,6 +7988,8 @@ class GatewayRunner: from hermes_cli.tools_config import _get_platform_tools enabled_toolsets = sorted(_get_platform_tools(user_config, platform_key)) + agent_cfg = user_config.get("agent") or {} + disabled_toolsets = agent_cfg.get("disabled_toolsets") or None pr = self._provider_routing max_iterations = int(os.getenv("HERMES_MAX_ITERATIONS", "90")) @@ -8004,6 +8006,7 @@ class GatewayRunner: quiet_mode=True, verbose_logging=False, enabled_toolsets=enabled_toolsets, + disabled_toolsets=disabled_toolsets, reasoning_config=reasoning_config, service_tier=self._service_tier, request_overrides=turn_route.get("request_overrides"), @@ -10379,6 +10382,7 @@ class GatewayRunner: ("compression", "threshold"), ("compression", "target_ratio"), ("compression", "protect_last_n"), + ("agent", "disabled_toolsets"), ) @classmethod @@ -11162,6 +11166,8 @@ class GatewayRunner: from hermes_cli.tools_config import _get_platform_tools enabled_toolsets = sorted(_get_platform_tools(user_config, platform_key)) + agent_cfg_local = user_config.get("agent") or {} + disabled_toolsets = agent_cfg_local.get("disabled_toolsets") or None display_config = user_config.get("display", {}) if not isinstance(display_config, dict): @@ -11790,6 +11796,7 @@ class GatewayRunner: quiet_mode=True, verbose_logging=False, enabled_toolsets=enabled_toolsets, + disabled_toolsets=disabled_toolsets, ephemeral_system_prompt=combined_ephemeral or None, prefill_messages=self._prefill_messages or None, reasoning_config=reasoning_config, diff --git a/model_tools.py b/model_tools.py index 1eb84d03f95..2eb31ab0df7 100644 --- a/model_tools.py +++ b/model_tools.py @@ -23,8 +23,6 @@ Public API (signatures preserved from the original 2,400-line version): import json import asyncio import logging -import os -import sys import threading import time from typing import Dict, Any, List, Optional, Tuple @@ -367,7 +365,7 @@ def _compute_tool_definitions( # Always apply disabled toolsets as a subtraction step at the end. # This ensures that even if a composite toolset (like hermes-cli) # is enabled, any tools belonging to a disabled toolset are strictly - # stripped out. See issue #15291. + # stripped out. See issue #17309. if disabled_toolsets: for toolset_name in disabled_toolsets: if validate_toolset(toolset_name):