( server: ReturnType<typeof createTrainingAgentServer>, toolName: string, args: Record<string, unknown>, )
| 22 | } |
| 23 | |
| 24 | async function simulateCallTool( |
| 25 | server: ReturnType<typeof createTrainingAgentServer>, |
| 26 | toolName: string, |
| 27 | args: Record<string, unknown>, |
| 28 | ): Promise<{ result: Record<string, unknown>; isError?: boolean }> { |
| 29 | const requestHandlers = (server as any)._requestHandlers as Map<string, Function>; |
| 30 | const handler = requestHandlers.get('tools/call'); |
| 31 | if (!handler) throw new Error('CallTool handler not found'); |
| 32 | const response = await handler( |
| 33 | { method: 'tools/call', params: { name: toolName, arguments: withIdempotencyKey(toolName, args) } }, |
| 34 | {}, |
| 35 | ); |
| 36 | const text = response.content?.[0]?.text; |
| 37 | const parsed: Record<string, unknown> = response.structuredContent |
| 38 | ? (response.structuredContent as Record<string, unknown>) |
| 39 | : (text ? JSON.parse(text) : {}); |
| 40 | // Unwrap adcp_error envelope for error responses (L3 compliance format) |
| 41 | const result = (parsed.adcp_error as Record<string, unknown> | undefined) ?? parsed; |
| 42 | return { result, isError: response.isError }; |
| 43 | } |
| 44 | |
| 45 | async function simulateListTools(server: ReturnType<typeof createTrainingAgentServer>) { |
| 46 | const requestHandlers = (server as any)._requestHandlers as Map<string, Function>; |
no test coverage detected