From 342f0d4fefa78f21dcc63bbdf60f9febe2cad882 Mon Sep 17 00:00:00 2001 From: Max Korp Date: Wed, 3 Sep 2025 17:51:52 -0700 Subject: [PATCH 1/2] If state is empty on run_finished event, don't trigger a state update --- typescript-sdk/packages/client/src/legacy/convert.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/typescript-sdk/packages/client/src/legacy/convert.ts b/typescript-sdk/packages/client/src/legacy/convert.ts index b79335563..ae51ed96c 100644 --- a/typescript-sdk/packages/client/src/legacy/convert.ts +++ b/typescript-sdk/packages/client/src/legacy/convert.ts @@ -297,6 +297,11 @@ export const convertToLegacyEvents = currentState.messages = syncedMessages; } + // Only do an update if state is not empty + if (Object.keys(currentState).length === 0) { + return []; + } + return [ { type: LegacyRuntimeEventTypes.enum.AgentStateMessage, From c9142874d92067675fd381c9e47ad1868e7d925c Mon Sep 17 00:00:00 2001 From: Max Korp Date: Wed, 3 Sep 2025 18:03:13 -0700 Subject: [PATCH 2/2] update test --- .../agent/__tests__/legacy-bridged.test.ts | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/typescript-sdk/packages/client/src/agent/__tests__/legacy-bridged.test.ts b/typescript-sdk/packages/client/src/agent/__tests__/legacy-bridged.test.ts index 484910e56..26d1273be 100644 --- a/typescript-sdk/packages/client/src/agent/__tests__/legacy-bridged.test.ts +++ b/typescript-sdk/packages/client/src/agent/__tests__/legacy-bridged.test.ts @@ -160,7 +160,7 @@ describe("AbstractAgent.legacy_to_be_removed_runAgentBridged", () => { const legacyEvents = await lastValueFrom(legacy$.pipe(toArray())); // Verify events are in correct legacy format - expect(legacyEvents).toHaveLength(4); // Start, Content, End, AgentStateMessage + expect(legacyEvents).toHaveLength(3); // Start, Content, End // TextMessageStart expect(legacyEvents[0]).toMatchObject({ @@ -182,12 +182,12 @@ describe("AbstractAgent.legacy_to_be_removed_runAgentBridged", () => { }); // Final AgentStateMessage - expect(legacyEvents[3]).toMatchObject({ - type: "AgentStateMessage", - threadId: "test-thread-id", - agentName: "test-agent-id", - active: false, - }); + // expect(legacyEvents[3]).toMatchObject({ + // type: "AgentStateMessage", + // threadId: "test-thread-id", + // agentName: "test-agent-id", + // active: false, + // }); }); it("should pass configuration to the underlying run method", async () => { @@ -304,7 +304,7 @@ describe("AbstractAgent.legacy_to_be_removed_runAgentBridged", () => { const legacyEvents = await lastValueFrom(legacy$.pipe(toArray())); // Verify events are in correct legacy format - expect(legacyEvents).toHaveLength(4); // Start, Content, End, AgentStateMessage + expect(legacyEvents).toHaveLength(3); // Start, Content, End // TextMessageStart expect(legacyEvents[0]).toMatchObject({ @@ -326,12 +326,12 @@ describe("AbstractAgent.legacy_to_be_removed_runAgentBridged", () => { }); // Final AgentStateMessage - expect(legacyEvents[3]).toMatchObject({ - type: "AgentStateMessage", - threadId: "test-thread-id", - agentName: "test-agent-id", - active: false, - }); + // expect(legacyEvents[3]).toMatchObject({ + // type: "AgentStateMessage", + // threadId: "test-thread-id", + // agentName: "test-agent-id", + // active: false, + // }); }); it("should transform tool call events with results into legacy events with correct tool name", async () => { @@ -348,7 +348,7 @@ describe("AbstractAgent.legacy_to_be_removed_runAgentBridged", () => { const legacyEvents = await lastValueFrom(legacy$.pipe(toArray())); // Verify events are in correct legacy format - expect(legacyEvents).toHaveLength(5); // ActionExecutionStart, ActionExecutionArgs, ActionExecutionEnd, ActionExecutionResult, AgentStateMessage + expect(legacyEvents).toHaveLength(4); // ActionExecutionStart, ActionExecutionArgs, ActionExecutionEnd, ActionExecutionResult // ActionExecutionStart expect(legacyEvents[0]).toMatchObject({ @@ -379,11 +379,11 @@ describe("AbstractAgent.legacy_to_be_removed_runAgentBridged", () => { }); // Final AgentStateMessage - expect(legacyEvents[4]).toMatchObject({ - type: "AgentStateMessage", - threadId: "test-thread-id", - agentName: "test-agent-id", - active: false, - }); + // expect(legacyEvents[4]).toMatchObject({ + // type: "AgentStateMessage", + // threadId: "test-thread-id", + // agentName: "test-agent-id", + // active: false, + // }); }); });