diff --git a/packages/opencode/src/tool/webfetch.ts b/packages/opencode/src/tool/webfetch.ts index 66344c67d96..96d14900e40 100644 --- a/packages/opencode/src/tool/webfetch.ts +++ b/packages/opencode/src/tool/webfetch.ts @@ -108,7 +108,7 @@ export const WebFetchTool = Tool.define( const contentType = response.headers["content-type"] || "" const mime = contentType.split(";")[0]?.trim().toLowerCase() || "" const title = `${url} (${contentType})` // kilocode_change - + if (isIconMimeType(mime)) throw new Error(`Unsupported image format: ${mime}`) // kilocode_change if (isImageAttachment(mime)) { const base64Content = Buffer.from(arrayBuffer).toString("base64") return { @@ -125,16 +125,6 @@ export const WebFetchTool = Tool.define( } } - // kilocode_change start - if (isIconMimeType(mime)) { - return { - title, - output: `Unsupported image format: ${mime}.`, - metadata: {}, - } - } - // kilocode_change end - const content = new TextDecoder().decode(arrayBuffer) // Handle content based on requested format and actual content type diff --git a/packages/opencode/test/tool/webfetch.test.ts b/packages/opencode/test/tool/webfetch.test.ts index e7df83c4f7b..20a48f445c5 100644 --- a/packages/opencode/test/tool/webfetch.test.ts +++ b/packages/opencode/test/tool/webfetch.test.ts @@ -91,9 +91,9 @@ describe("tool.webfetch", () => { await WithInstance.provide({ directory: projectRoot, fn: async () => { - const result = await exec({ url: new URL("/favicon.ico", url).toString(), format: "markdown" }) - expect(result.output).toContain(`Unsupported image format: ${mime}`) - expect(result.attachments).toBeUndefined() + await expect(exec({ url: new URL("/favicon.ico", url).toString(), format: "markdown" })).rejects.toThrow( + `Unsupported image format: ${mime}`, + ) }, }) },