| 471 | } |
| 472 | |
| 473 | async function registerGatewayTools({ |
| 474 | gatewayUrl, |
| 475 | sessionToken, |
| 476 | createClient = createMCPClient, |
| 477 | }: RegisterGatewayToolsParams): Promise<{ |
| 478 | tools: ToolSet; |
| 479 | close: () => Promise<void>; |
| 480 | }> { |
| 481 | console.log(`[AGENT] Connecting to MCP gateway at ${gatewayUrl} to discover tools`); |
| 482 | const mcpClient = await createClient({ |
| 483 | transport: { |
| 484 | type: 'http', |
| 485 | url: gatewayUrl, |
| 486 | headers: { Authorization: `Bearer ${sessionToken}` }, |
| 487 | }, |
| 488 | }); |
| 489 | |
| 490 | const tools = await mcpClient.tools(); |
| 491 | console.log( |
| 492 | `[AGENT] Discovered ${Object.keys(tools).length} tools from gateway: ${Object.keys(tools).join(', ') || 'none'}`, |
| 493 | ); |
| 494 | return { |
| 495 | tools, |
| 496 | close: async () => { |
| 497 | await mcpClient.close(); |
| 498 | }, |
| 499 | }; |
| 500 | } |
| 501 | |
| 502 | const definition = defineComponent({ |
| 503 | id: 'core.ai.agent', |