This commit is contained in:
Your Name committed 2026-10-11 06:43:08 +07:00
1 parent 9237c0eded
commit f5893c3fad
16 files changed
+1230 -114

No files matched your search

+29
View File
@@ -0,0 +1,29 @@
import { describe, expect, test } from "bun:test";
import { presentToolDefinitions, withStructuredContent } from "./tool-presentation";
describe("LLM tool presentation", () => {
test("marks read-only, destructive and open-world tools accurately", () => {
const input = ["get_product_detail", "delete_category", "upload_product_image_from_url"].map((name) => ({
name,
inputSchema: { type: "object" as const },
}));
const tools = presentToolDefinitions(input);
expect(tools[0]?.annotations).toMatchObject({ readOnlyHint: true, idempotentHint: true, destructiveHint: false });
expect(tools[1]?.annotations).toMatchObject({ readOnlyHint: false, destructiveHint: true });
expect(tools[2]?.annotations).toMatchObject({ readOnlyHint: false, openWorldHint: true });
});
test("adds structured JSON without removing the existing text content", () => {
const result = { content: [{ type: "text" as const, text: '{"success":true,"count":2}' }] };
expect(withStructuredContent(result)).toEqual({
...result,
structuredContent: { success: true, count: 2 },
});
});
test("leaves plain text responses untouched", () => {
const result = { content: [{ type: "text" as const, text: "Connection successful!" }] };
expect(withStructuredContent(result)).toEqual(result);
});
});