fix(core): Sanitize tool parameters to fix 400 API errors (#3300)

This commit is contained in:
BigUncle
2025-07-06 05:58:51 +08:00
committed by GitHub
parent 5c9372372c
commit b564d4a088
8 changed files with 438 additions and 176 deletions

View File

@@ -14,7 +14,8 @@ import {
afterEach,
Mocked,
} from 'vitest';
import { discoverMcpTools, sanitizeParameters } from './mcp-client.js';
import { discoverMcpTools } from './mcp-client.js';
import { sanitizeParameters } from './tool-registry.js';
import { Schema, Type } from '@google/genai';
import { Config, MCPServerConfig } from '../config/config.js';
import { DiscoveredMCPTool } from './mcp-tool.js';
@@ -85,9 +86,14 @@ const mockToolRegistryInstance = {
getFunctionDeclarations: vi.fn().mockReturnValue([]),
discoverTools: vi.fn().mockResolvedValue(undefined),
};
vi.mock('./tool-registry.js', () => ({
ToolRegistry: vi.fn(() => mockToolRegistryInstance),
}));
vi.mock('./tool-registry.js', async (importOriginal) => {
const actual = await importOriginal();
return {
...(actual as any),
ToolRegistry: vi.fn(() => mockToolRegistryInstance),
sanitizeParameters: (actual as any).sanitizeParameters,
};
});
describe('discoverMcpTools', () => {
let mockConfig: Mocked<Config>;