( server: ReturnType<typeof createTrainingAgentServer>, toolName: string, args: Record<string, unknown>, )
| 40 | // using the same pattern + this script should switch together; consider |
| 41 | // extracting a shared `simulateCallTool` helper at that point. |
| 42 | async function callTool( |
| 43 | server: ReturnType<typeof createTrainingAgentServer>, |
| 44 | toolName: string, |
| 45 | args: Record<string, unknown>, |
| 46 | ): Promise<{ result: Record<string, unknown>; isError?: boolean }> { |
| 47 | const requestHandlers = (server as unknown as { _requestHandlers: Map<string, (req: unknown, ctx: unknown) => Promise<{ structuredContent?: unknown; content?: Array<{ text?: string }>; isError?: boolean }>> })._requestHandlers; |
| 48 | const handler = requestHandlers.get('tools/call'); |
| 49 | if (!handler) throw new Error('CallTool handler not found'); |
| 50 | const response = await handler( |
| 51 | { method: 'tools/call', params: { name: toolName, arguments: withIdempotencyKey(toolName, args) } }, |
| 52 | {}, |
| 53 | ); |
| 54 | const text = response.content?.[0]?.text; |
| 55 | const parsed = (response.structuredContent ?? (text ? JSON.parse(text) : {})) as Record<string, unknown>; |
| 56 | const errorInBody = Array.isArray(parsed.errors) && parsed.errors.length > 0 ? parsed.errors[0] : undefined; |
| 57 | const adcpError = parsed.adcp_error as Record<string, unknown> | undefined; |
| 58 | const result = (adcpError ?? errorInBody ?? parsed) as Record<string, unknown>; |
| 59 | return { result, isError: response.isError }; |
| 60 | } |
| 61 | |
| 62 | function tenant(domain: string) { |
| 63 | return { account: { brand: { domain } } }; |
no test coverage detected