agent: reuse ToolExecutor.buildTools in SlashCommand tests

This commit is contained in:
Adrià Arrufat
2026-05-19 12:03:50 +02:00
parent 2ca26c8bbf
commit 74ba2fb6bd
2 changed files with 3 additions and 9 deletions

View File

@@ -367,6 +367,7 @@ fn lookupFieldType(schema: *const SchemaInfo, key: []const u8) FieldType {
// ---------- tests ----------
const testing = std.testing;
const ToolExecutor = @import("ToolExecutor.zig");
const ParsedTest = struct {
tool_name: []const u8,
@@ -374,14 +375,7 @@ const ParsedTest = struct {
};
fn parse(arena: std.mem.Allocator, input: []const u8) !ParsedTest {
const tools = try arena.alloc(zenai.provider.Tool, browser_tools.tool_defs.len);
for (browser_tools.tool_defs, 0..) |td, i| {
tools[i] = .{
.name = td.name,
.description = td.description,
.parameters = try std.json.parseFromSliceLeaky(std.json.Value, arena, td.input_schema, .{}),
};
}
const tools = try ToolExecutor.buildTools(arena);
const schemas = try buildSchemas(arena, tools);
const split = splitNameRest(input) orelse return error.MissingName;
const schema = findSchema(schemas, split.name) orelse return error.UnknownTool;

View File

@@ -66,7 +66,7 @@ pub fn init(allocator: std.mem.Allocator, app: *App) !*ToolExecutor {
return self;
}
fn buildTools(arena: std.mem.Allocator) ![]const zenai.provider.Tool {
pub fn buildTools(arena: std.mem.Allocator) ![]const zenai.provider.Tool {
const tools = try arena.alloc(zenai.provider.Tool, browser_tools.tool_defs.len);
for (browser_tools.tool_defs, 0..) |t, i| {
const parsed = try std.json.parseFromSliceLeaky(std.json.Value, arena, t.input_schema, .{});