diff options
Diffstat (limited to 'packages/core/src/tools')
| -rw-r--r-- | packages/core/src/tools/mcp-tool.test.ts | 7 | ||||
| -rw-r--r-- | packages/core/src/tools/mcp-tool.ts | 9 |
2 files changed, 9 insertions, 7 deletions
diff --git a/packages/core/src/tools/mcp-tool.test.ts b/packages/core/src/tools/mcp-tool.test.ts index 86968b3d..fc6ce6be 100644 --- a/packages/core/src/tools/mcp-tool.test.ts +++ b/packages/core/src/tools/mcp-tool.test.ts @@ -138,12 +138,7 @@ describe('DiscoveredMCPTool', () => { const stringifiedResponseContent = JSON.stringify( mockToolSuccessResultObject, ); - // getStringifiedResultForDisplay joins text parts, then wraps the array of processed parts in JSON - const expectedDisplayOutput = - '```json\n' + - JSON.stringify([stringifiedResponseContent], null, 2) + - '\n```'; - expect(toolResult.returnDisplay).toBe(expectedDisplayOutput); + expect(toolResult.returnDisplay).toBe(stringifiedResponseContent); }); it('should handle empty result from getStringifiedResultForDisplay', async () => { diff --git a/packages/core/src/tools/mcp-tool.ts b/packages/core/src/tools/mcp-tool.ts index 65c0cae8..8a7694d8 100644 --- a/packages/core/src/tools/mcp-tool.ts +++ b/packages/core/src/tools/mcp-tool.ts @@ -149,6 +149,13 @@ function getStringifiedResultForDisplay(result: Part[]) { return part; // Fallback for unexpected structure or non-FunctionResponsePart }; - const processedResults = result.map(processFunctionResponse); + const processedResults = + result.length === 1 + ? processFunctionResponse(result[0]) + : result.map(processFunctionResponse); + if (typeof processedResults === 'string') { + return processedResults; + } + return '```json\n' + JSON.stringify(processedResults, null, 2) + '\n```'; } |
