From 54b8c2843be7f0d96fd996bc70a486d4bfc713c8 Mon Sep 17 00:00:00 2001 From: Alisa Novikova <62909685+alisa-alisa@users.noreply.github.com> Date: Wed, 11 Mar 2026 09:13:46 -0700 Subject: [PATCH] fix(a2a): simplify card resolution and fix redundant fetching --- packages/core/src/agents/a2a-client-manager.test.ts | 2 +- packages/core/src/agents/a2a-client-manager.ts | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/core/src/agents/a2a-client-manager.test.ts b/packages/core/src/agents/a2a-client-manager.test.ts index b99c955962..6f7afa1013 100644 --- a/packages/core/src/agents/a2a-client-manager.test.ts +++ b/packages/core/src/agents/a2a-client-manager.test.ts @@ -60,8 +60,8 @@ describe('A2AClientManager', () => { beforeEach(() => { vi.clearAllMocks(); + A2AClientManager.resetInstanceForTesting(); manager = A2AClientManager.getInstance(); - manager.clearCache(); // Re-create the instances as plain objects that can be spied on const factoryInstance = { diff --git a/packages/core/src/agents/a2a-client-manager.ts b/packages/core/src/agents/a2a-client-manager.ts index f8817e5d1e..8934a4e121 100644 --- a/packages/core/src/agents/a2a-client-manager.ts +++ b/packages/core/src/agents/a2a-client-manager.ts @@ -72,10 +72,19 @@ export class A2AClientManager { return A2AClientManager.instance; } + /** + * Resets the singleton instance. Only for testing purposes. + * @internal + */ + static resetInstanceForTesting() { + // @ts-expect-error - Resetting singleton for testing + A2AClientManager.instance = undefined; + } + /** * Loads an agent by fetching its AgentCard and caches the client. * @param name The name to assign to the agent. - * @param agentCardUrl {string} The full URL to the agent's card. + * @param agentCardUrl The full URL to the agent's card. * @param authHandler Optional authentication handler to use for this agent. * @returns The loaded AgentCard. */ @@ -185,7 +194,7 @@ export class A2AClientManager { try { yield* client.sendMessageStream(messageParams, { signal: options?.signal, - }) as AsyncIterable; + }); } catch (error: unknown) { const prefix = `[A2AClientManager] sendMessageStream Error [${agentName}]`; if (error instanceof Error) {