fix(tool): treat .fbs files as text instead of images (#9276)
Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -59,7 +59,9 @@ export const ReadTool = Tool.define("read", {
|
|||||||
throw new Error(`File not found: ${filepath}`)
|
throw new Error(`File not found: ${filepath}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
const isImage = file.type.startsWith("image/") && file.type !== "image/svg+xml"
|
// Exclude SVG (XML-based) and vnd.fastbidsheet (.fbs extension, commonly FlatBuffers schema files)
|
||||||
|
const isImage =
|
||||||
|
file.type.startsWith("image/") && file.type !== "image/svg+xml" && file.type !== "image/vnd.fastbidsheet"
|
||||||
const isPdf = file.type === "application/pdf"
|
const isPdf = file.type === "application/pdf"
|
||||||
if (isImage || isPdf) {
|
if (isImage || isPdf) {
|
||||||
const mime = file.type
|
const mime = file.type
|
||||||
|
|||||||
@@ -300,4 +300,33 @@ describe("tool.read truncation", () => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test(".fbs files (FlatBuffers schema) are read as text, not images", async () => {
|
||||||
|
await using tmp = await tmpdir({
|
||||||
|
init: async (dir) => {
|
||||||
|
// FlatBuffers schema content
|
||||||
|
const fbsContent = `namespace MyGame;
|
||||||
|
|
||||||
|
table Monster {
|
||||||
|
pos:Vec3;
|
||||||
|
name:string;
|
||||||
|
inventory:[ubyte];
|
||||||
|
}
|
||||||
|
|
||||||
|
root_type Monster;`
|
||||||
|
await Bun.write(path.join(dir, "schema.fbs"), fbsContent)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
await Instance.provide({
|
||||||
|
directory: tmp.path,
|
||||||
|
fn: async () => {
|
||||||
|
const read = await ReadTool.init()
|
||||||
|
const result = await read.execute({ filePath: path.join(tmp.path, "schema.fbs") }, ctx)
|
||||||
|
// Should be read as text, not as image
|
||||||
|
expect(result.attachments).toBeUndefined()
|
||||||
|
expect(result.output).toContain("namespace MyGame")
|
||||||
|
expect(result.output).toContain("table Monster")
|
||||||
|
},
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user