mcp: fix wrong merge

This commit is contained in:
Adrià Arrufat
2026-03-09 10:37:21 +09:00
parent be73c14395
commit 2a2b067633

View File

@@ -97,22 +97,16 @@ const ToolStreamingText = struct {
arena: ?std.mem.Allocator = null, arena: ?std.mem.Allocator = null,
pub fn jsonStringify(self: @This(), jw: *std.json.Stringify) !void { pub fn jsonStringify(self: @This(), jw: *std.json.Stringify) !void {
try jw.beginWriteRaw();
try jw.writer.writeByte('"');
var escaped: protocol.JsonEscapingWriter = .init(jw.writer);
const w = &escaped.writer;
switch (self.action) { switch (self.action) {
.markdown => { .markdown => lp.markdown.dump(self.page.document.asNode(), .{}, w, self.page) catch |err| {
try jw.beginWriteRaw(); log.err(.mcp, "markdown dump failed", .{ .err = err });
try jw.writer.writeByte('"');
var escaped: protocol.JsonEscapingWriter = .init(jw.writer);
lp.markdown.dump(self.page.document.asNode(), .{}, &escaped.writer, self.page) catch |err| {
log.err(.mcp, "markdown dump failed", .{ .err = err });
};
try jw.writer.writeByte('"');
jw.endWriteRaw();
}, },
.links => { .links => {
try jw.beginWriteRaw();
try jw.writer.writeByte('"');
var escaped: protocol.JsonEscapingWriter = .init(jw.writer);
const w = &escaped.writer;
if (Selector.querySelectorAll(self.page.document.asNode(), "a[href]", self.page)) |list| { if (Selector.querySelectorAll(self.page.document.asNode(), "a[href]", self.page)) |list| {
defer list.deinit(self.page); defer list.deinit(self.page);
var first = true; var first = true;
@@ -133,15 +127,8 @@ const ToolStreamingText = struct {
} else |err| { } else |err| {
log.err(.mcp, "query links failed", .{ .err = err }); log.err(.mcp, "query links failed", .{ .err = err });
} }
try jw.writer.writeByte('"');
jw.endWriteRaw();
}, },
.semantic_tree => { .semantic_tree => {
// Return the highly compressed Stagehand-style text format for maximum token efficiency
try jw.beginWriteRaw();
try jw.writer.writeByte('"');
var escaped: protocol.JsonEscapingWriter = .init(jw.writer);
const st = lp.SemanticTree{ const st = lp.SemanticTree{
.dom_node = self.page.document.asNode(), .dom_node = self.page.document.asNode(),
.registry = self.registry.?, .registry = self.registry.?,
@@ -149,14 +136,14 @@ const ToolStreamingText = struct {
.arena = self.arena.?, .arena = self.arena.?,
}; };
st.textStringify(&escaped.writer) catch |err| { st.textStringify(w) catch |err| {
log.err(.mcp, "semantic tree dump failed", .{ .err = err }); log.err(.mcp, "semantic tree dump failed", .{ .err = err });
}; };
try jw.writer.writeByte('"');
jw.endWriteRaw();
}, },
} }
try jw.writer.writeByte('"');
jw.endWriteRaw();
} }
}; };