Skip to content

Commit fbac5b7

Browse files
committed
feat: add data validation message
1 parent aecfa21 commit fbac5b7

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

client/src/components/ToolsTab.tsx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { Label } from "@/components/ui/label";
55
import { TabsContent } from "@/components/ui/tabs";
66
import { Textarea } from "@/components/ui/textarea";
77
import {
8-
CallToolResult,
98
ListToolsResult,
109
Tool,
1110
CallToolResultSchema,
@@ -41,7 +40,24 @@ const ToolsTab = ({
4140
if (!toolResult) return null;
4241

4342
if ("content" in toolResult) {
44-
const structuredResult = CallToolResultSchema.parse(toolResult);
43+
const parsedResult = CallToolResultSchema.safeParse(toolResult);
44+
if (!parsedResult.success) {
45+
return (
46+
<>
47+
<h4 className="font-semibold mb-2">Invalid Tool Result:</h4>
48+
<pre className="bg-gray-50 dark:bg-gray-800 dark:text-gray-100 p-4 rounded text-sm overflow-auto max-h-64">
49+
{JSON.stringify(toolResult, null, 2)}
50+
</pre>
51+
<h4 className="font-semibold mb-2">Errors:</h4>
52+
{parsedResult.error.errors.map((error) => (
53+
<pre className="bg-gray-50 dark:bg-gray-800 dark:text-gray-100 p-4 rounded text-sm overflow-auto max-h-64">
54+
{JSON.stringify(error, null, 2)}
55+
</pre>
56+
))}
57+
</>
58+
);
59+
}
60+
const structuredResult = parsedResult.data;
4561
const isError = structuredResult.isError ?? false;
4662

4763
return (

0 commit comments

Comments
 (0)