From 6c46d7d31cd509732ec624f7e70810ad6e65fccf Mon Sep 17 00:00:00 2001 From: monsterlag <64719697+monsterlag@users.noreply.github.com> Date: Thu, 22 Oct 2026 02:02:22 -0400 Subject: [PATCH] fix(network): reject string values for includeBody --- .../src/tools/network/network-request.ts | 2 +- .../tool-server/test/chromium-network.test.ts | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/tool-server/src/tools/network/network-request.ts b/packages/tool-server/src/tools/network/network-request.ts index d9603d353..99c432271 100644 --- a/packages/tool-server/src/tools/network/network-request.ts +++ b/packages/tool-server/src/tools/network/network-request.ts @@ -78,7 +78,7 @@ const zodSchema = z.object({ "Device id from list-devices (iOS simulator UDID or Android serial), the same id used with debugger-connect." ), requestId: z.string().describe("The requestId from view-network-logs to get full details for"), - includeBody: z.coerce + includeBody: z .boolean() .default(true) .describe("Whether to include the response body (if captured). Defaults to true."), diff --git a/packages/tool-server/test/chromium-network.test.ts b/packages/tool-server/test/chromium-network.test.ts index 998294e19..82b1a1052 100644 --- a/packages/tool-server/test/chromium-network.test.ts +++ b/packages/tool-server/test/chromium-network.test.ts @@ -334,4 +334,25 @@ describe("view-network-request-details (chromium branch)", () => { }); expect(out).toMatch(/not found/); }); + + it.each(["false", "0", "true"])("rejects a string includeBody %j", (value) => { + const result = networkRequestTool.zodSchema!.safeParse({ + device_id: "chromium-cdp-9222", + requestId: "r1", + includeBody: value, + }); + + expect(result.error?.issues).toMatchObject([{ code: "invalid_type", path: ["includeBody"] }]); + }); + + it.each([true, false])("accepts a boolean includeBody %j", (value) => { + const result = networkRequestTool.zodSchema!.safeParse({ + device_id: "chromium-cdp-9222", + requestId: "r1", + includeBody: value, + }); + + expect(result.success).toBe(true); + expect(result.data?.includeBody).toBe(value); + }); });