From 3685803f938962e487dd82451fddd0569b04dbee Mon Sep 17 00:00:00 2001 From: Jason Guo Date: Thu, 10 Apr 2025 11:25:35 -0700 Subject: [PATCH] fix(chat): Fix toolUse input is missing when parsing fails --- .../controllers/chat/messenger/messenger.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts b/packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts index e10eeb6a6bb..da875e68cf6 100644 --- a/packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts +++ b/packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts @@ -272,7 +272,16 @@ export class Messenger { toolUse.toolUseId = cwChatEvent.toolUseEvent.toolUseId ?? '' toolUse.name = cwChatEvent.toolUseEvent.name ?? '' try { - toolUse.input = JSON.parse(toolUseInput) + try { + toolUse.input = JSON.parse(toolUseInput) + } catch (error: any) { + getLogger().error(`JSON parse error for toolUseInput: ${toolUseInput}`) + // set toolUse.input to the raw value + toolUse.input = toolUseInput + error.message = `Tool input has invalid JSON format: ${error.message}` + // throw it out to allow the error to be handled in the catch block + throw error + } const availableToolsNames = (session.pairProgrammingModeOn ? tools : noWriteTools).map( (item) => item.toolSpecification?.name )