fix:catch toolCalls doesn't return validate json (#405)

Co-authored-by: Willem Jiang <143703838+willem-bd@users.noreply.github.com>
This commit is contained in:
Willem Jiang
2025-07-12 23:31:43 +08:00
committed by GitHub
parent 0dc6c16c42
commit 2121510f63

View File

@@ -22,12 +22,20 @@ export const Link = ({
(toolCalls || []).forEach((call) => {
if (call && call.name === "web_search" && call.result) {
const result = JSON.parse(call.result) as Array<{ url: string }>;
result.forEach((r) => {
// encodeURI is used to handle the case where the link contains chinese or other special characters
links.add(encodeURI(r.url));
links.add(r.url);
});
try {
const result = JSON.parse(call.result) as Array<{ url: string }>;
if (Array.isArray(result)) {
result.forEach((r) => {
if (r && typeof r.url === 'string') {
// encodeURI is used to handle the case where the link contains chinese or other special characters
links.add(encodeURI(r.url));
links.add(r.url);
}
});
}
} catch (error) {
console.warn('Failed to parse web_search result:', error);
}
}
});
return links;