command: use Action enum for ToolCall name

Replaces the string `name` in `ToolCall` with `action: browser_tools.Action`.
This avoids repeated string-to-enum parsing and simplifies schema lookups.
Also updates `zenai` dependency to use its JSON duplication helper.
This commit is contained in:
Adrià Arrufat
2026-05-21 22:51:52 +02:00
parent 13ebb9e802
commit e9943a3976
9 changed files with 82 additions and 101 deletions

View File

@@ -343,12 +343,12 @@ test "applyReplacements: heals a multi-line /eval block using iterator span" {
var iter: Command.ScriptIterator = .init(arena.allocator(), content);
const e1 = (try iter.next()).?;
try std.testing.expect(e1.command == .tool_call);
try std.testing.expectEqualStrings("goto", e1.command.tool_call.name);
try std.testing.expectEqualStrings("goto", e1.command.tool_call.name());
const e2 = (try iter.next()).?;
try std.testing.expect(e2.command == .tool_call);
try std.testing.expectEqualStrings("eval", e2.command.tool_call.name);
try std.testing.expectEqualStrings("eval", e2.command.tool_call.name());
const e3 = (try iter.next()).?;
try std.testing.expectEqualStrings("click", e3.command.tool_call.name);
try std.testing.expectEqualStrings("click", e3.command.tool_call.name());
try std.testing.expect((try iter.next()) == null);
const replacements = [_]Replacement{.{