From ff03d96f6411845bf1b623e871cc6950e66efee2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= Date: Tue, 12 May 2026 12:12:01 +0200 Subject: [PATCH] agent: format tool schema in slash command help --- src/agent/Agent.zig | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/agent/Agent.zig b/src/agent/Agent.zig index c3207c53..9e6f664d 100644 --- a/src/agent/Agent.zig +++ b/src/agent/Agent.zig @@ -446,7 +446,17 @@ fn printSlashHelp(self: *Self, target: []const u8) void { return; }; self.terminal.printInfoFmt("/{s} — {s}", .{ schema.tool_name, schema.description }); - self.terminal.printInfoFmt("schema: {s}", .{schema.input_schema_raw}); + + var arena: std.heap.ArenaAllocator = .init(self.allocator); + defer arena.deinit(); + const aa = arena.allocator(); + const pretty: []const u8 = blk: { + const v = std.json.parseFromSliceLeaky(std.json.Value, aa, schema.input_schema_raw, .{}) catch break :blk schema.input_schema_raw; + var aw: std.Io.Writer.Allocating = .init(aa); + std.json.Stringify.value(v, .{ .whitespace = .indent_2 }, &aw.writer) catch break :blk schema.input_schema_raw; + break :blk aw.written(); + }; + self.terminal.printInfoFmt("schema:\n{s}", .{pretty}); } fn printSlashParseError(self: *Self, err: SlashCommand.ParseError, name: []const u8) void {