diff --git a/tests/test_tui_gateway_server.py b/tests/test_tui_gateway_server.py index 41b5194da63a..32eaa0a1e38a 100644 --- a/tests/test_tui_gateway_server.py +++ b/tests/test_tui_gateway_server.py @@ -137,10 +137,10 @@ def test_load_enabled_toolsets_rejects_disabled_mcp_env(monkeypatch, capsys): ) monkeypatch.setattr(config_mod, "load_config", lambda: {"platform_toolsets": {"cli": ["memory"]}}) - # Sorted: ["kanban", "memory"]. `kanban` is auto-recovered by - # _get_platform_tools because it's a non-configurable platform toolset + # Sorted: ["kanban", "memory", "nudge"]. `kanban` is auto-recovered by + # _get_platform_tool because it's a non-configurable platform toolset # whose tools live in hermes-cli's universe (see toolsets.py). - assert server._load_enabled_toolsets() == ["kanban", "memory"] + assert server._load_enabled_toolsets() == ["kanban", "memory", "nudge"] err = capsys.readouterr().err assert "ignoring disabled MCP servers" in err assert "mcp-off" in err @@ -159,7 +159,7 @@ def test_load_enabled_toolsets_falls_back_when_tui_env_invalid(monkeypatch, caps monkeypatch.setattr(config_mod, "load_config", lambda: {"platform_toolsets": {"cli": ["memory"]}}) - assert server._load_enabled_toolsets() == ["kanban", "memory"] + assert server._load_enabled_toolsets() == ["kanban", "memory", "nudge"] assert "using configured CLI toolsets" in capsys.readouterr().err diff --git a/tools/nudge_tool.py b/tools/nudge_tool.py index bfeba638f88d..30c9fe647f1b 100644 --- a/tools/nudge_tool.py +++ b/tools/nudge_tool.py @@ -119,6 +119,7 @@ def nudge_tool( action: str = "send", target: Optional[str] = None, content: Optional[str] = None, + **kwargs, # Accept framework-injected params like task_id ) -> dict: """Manage nudges — inject messages into agent sessions. @@ -283,7 +284,7 @@ def _check_nudge() -> bool: registry.register( name="nudge", - toolset="cronjob", + toolset="nudge", schema=NUDGE_SCHEMA, handler=nudge_tool, check_fn=_check_nudge, diff --git a/toolsets.py b/toolsets.py index 57e226d3c082..4a6cfdea1519 100644 --- a/toolsets.py +++ b/toolsets.py @@ -56,6 +56,8 @@ "execute_code", "delegate_task", # Cronjob management "cronjob", + # Nudge - for cronjobs to communicate with agent sessions + "nudge", # Cross-platform messaging (gated on gateway running via check_fn) "send_message", # Home Assistant smart home control (gated on HASS_TOKEN via check_fn) @@ -132,6 +134,12 @@ "includes": [] }, + "nudge": { + "description": "Nudge tool for cronjobs to send messages to running agent sessions", + "tools": ["nudge"], + "includes": [] + }, + "messaging": { "description": "Cross-platform messaging: send messages to Telegram, Discord, Slack, SMS, etc.", "tools": ["send_message"],