From 889af65ae7114cbe6bb82d207ef576e40a09ab1b Mon Sep 17 00:00:00 2001 From: Developer Date: Wed, 10 Jun 2026 00:26:22 +0200 Subject: [PATCH] fix: GatewayClient Tool-Namen + Response-Unwrapping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - sub_agents_list → subagents (action: list) - cron_list → cron (action: list) - Ping / → /health - Unwrap {ok, result} envelope in InvokeToolAsync --- backend/Services/OpenClawGatewayClient.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/backend/Services/OpenClawGatewayClient.cs b/backend/Services/OpenClawGatewayClient.cs index e932e64..8633c3c 100644 --- a/backend/Services/OpenClawGatewayClient.cs +++ b/backend/Services/OpenClawGatewayClient.cs @@ -50,7 +50,11 @@ public sealed class OpenClawGatewayClient(HttpClient httpClient, IConfiguration if (string.IsNullOrWhiteSpace(json)) return null; - return JsonNode.Parse(json); + var node = JsonNode.Parse(json); + // Unwrap the { ok: true, result: ... } envelope + if (node?["ok"]?.GetValue() == true && node["result"] is not null) + return node["result"]; + return node; } catch { @@ -91,7 +95,7 @@ public sealed class OpenClawGatewayClient(HttpClient httpClient, IConfiguration } // Also get subagents list - var subagentsResult = await InvokeToolAsync("sub_agents_list"); + var subagentsResult = await InvokeToolAsync("subagents", new { action = "list" }); if (subagentsResult is not null && subagentsResult is JsonArray subArray) { foreach (var sub in subArray) @@ -190,7 +194,7 @@ public sealed class OpenClawGatewayClient(HttpClient httpClient, IConfiguration { try { - var result = await InvokeToolAsync("cron_list"); + var result = await InvokeToolAsync("cron", new { action = "list" }); if (result is null) return new List(); @@ -226,7 +230,7 @@ public sealed class OpenClawGatewayClient(HttpClient httpClient, IConfiguration try { // Check gateway health - using var pingRequest = new HttpRequestMessage(HttpMethod.Get, "/"); + using var pingRequest = new HttpRequestMessage(HttpMethod.Get, "/health"); ApplyAuth(pingRequest); using var pingResponse = await httpClient.SendAsync(pingRequest); gatewayOk = pingResponse.IsSuccessStatusCode;