diff --git a/packages/core/src/core/client.test.ts b/packages/core/src/core/client.test.ts index f9da52be00..295e428627 100644 --- a/packages/core/src/core/client.test.ts +++ b/packages/core/src/core/client.test.ts @@ -1827,7 +1827,6 @@ ${JSON.stringify( expect(events).toEqual([ { type: GeminiEventType.ModelInfo, value: 'default-routed-model' }, { type: GeminiEventType.InvalidStream }, - { type: GeminiEventType.ModelInfo, value: 'default-routed-model' }, { type: GeminiEventType.Content, value: 'Continued content' }, ]); @@ -1915,13 +1914,13 @@ ${JSON.stringify( const events = await fromAsync(stream); // Assert - // We expect 4 events (model_info + original + model_info + 1 retry) - expect(events.length).toBe(4); + // We expect 3 events (model_info + original + 1 retry) + expect(events.length).toBe(3); expect( events - .filter((e) => e.type !== GeminiEventType.ModelInfo) - .every((e) => e.type === GeminiEventType.InvalidStream), - ).toBe(true); + .filter((e) => e.type === GeminiEventType.ModelInfo) + .map((e) => e.value), + ).toEqual(['default-routed-model']); // Verify that turn.run was called twice expect(mockTurnRunFn).toHaveBeenCalledTimes(2); diff --git a/packages/core/src/core/client.ts b/packages/core/src/core/client.ts index 1310dfb445..8e56ee61a9 100644 --- a/packages/core/src/core/client.ts +++ b/packages/core/src/core/client.ts @@ -626,10 +626,10 @@ export class GeminiClient { ); modelToUse = finalModel; - this.currentSequenceModel = modelToUse; - if (!signal.aborted) { + if (!signal.aborted && !this.currentSequenceModel) { yield { type: GeminiEventType.ModelInfo, value: modelToUse }; } + this.currentSequenceModel = modelToUse; const resultStream = turn.run(modelConfigKey, request, linkedSignal); let isError = false; let isInvalidStream = false;