From 0e5138069e35c2b1c167f5ab075e8adc5cf1de71 Mon Sep 17 00:00:00 2001 From: operator Date: Mon, 5 Oct 2026 05:30:11 +0000 Subject: [PATCH] feat(harvester): enforce strict tool invocation rejection on conversational comments --- bin/response-harvester.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/response-harvester.py b/bin/response-harvester.py index 4f02fc8..98b9db5 100755 --- a/bin/response-harvester.py +++ b/bin/response-harvester.py @@ -1060,12 +1060,14 @@ def maybe_nudge_untagged_sidechat(agent, thread_id, thread_name, mid, text, dry_ if rec.get("nudged_for_mid") == mid or rec.get("nudge_count", 0) >= 1: return - # Inject terse nudge footer with runtime & tool directive + # Inject strict tool directive footer thread_url = f"https://box.muse-dev.online/thread/{thread_id}" nudge_msg = ( - f"[Nudge: Work thread active at {thread_url}]\n" - f"Available Tools: [TOOL ] or curl to https://box.muse-dev.online/exec\n" - f"Reply with [TOOL ] to execute or close with [RESULT {matching_job_id}] ." + f"[STRICT ENFORCEMENT: Conversational commentary is rejected. Work requires active execution.]\n" + f"Thread Console: {thread_url}\n" + f"You must emit an executable tool call: [TOOL ] or curl command against https://box.muse-dev.online/exec\n" + f"Example: [TOOL service.status {{\"unit\": \"board.service\"}}] or [TOOL followup.create {{\"in_m\": 10, \"prompt\": \"continue\"}}]\n" + f"When all operations are finished, close strictly with [RESULT {matching_job_id}] ." ) try: import muse_hybrid