From 2b759a2a33e141f364bfaf570f7b64577744c5d8 Mon Sep 17 00:00:00 2001 From: Tat Dat Duong Date: Tue, 3 Jun 2025 15:20:13 +0200 Subject: [PATCH] fix(sdk-js): `uiMessageReducer` should handle `undefined` metadata --- libs/sdk-js/package.json | 2 +- libs/sdk-js/src/react-ui/types.ts | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/libs/sdk-js/package.json b/libs/sdk-js/package.json index 82fad7e1c..6a14597f1 100644 --- a/libs/sdk-js/package.json +++ b/libs/sdk-js/package.json @@ -1,6 +1,6 @@ { "name": "@langchain/langgraph-sdk", - "version": "0.0.81", + "version": "0.0.82", "description": "Client library for interacting with the LangGraph API", "type": "module", "packageManager": "yarn@1.22.19", diff --git a/libs/sdk-js/src/react-ui/types.ts b/libs/sdk-js/src/react-ui/types.ts index 32bfe4188..42499996d 100644 --- a/libs/sdk-js/src/react-ui/types.ts +++ b/libs/sdk-js/src/react-ui/types.ts @@ -7,7 +7,7 @@ export interface UIMessage< id: string; name: TName; props: TProps; - metadata: { + metadata?: { merge?: boolean; run_id?: string; name?: string; @@ -51,9 +51,12 @@ export function uiMessageReducer( const index = state.findIndex((ui) => ui.id === event.id); if (index !== -1) { - newState[index] = event.metadata.merge - ? { ...event, props: { ...state[index].props, ...event.props } } - : event; + newState[index] = + typeof event.metadata === "object" && + event.metadata != null && + event.metadata.merge + ? { ...event, props: { ...state[index].props, ...event.props } } + : event; } else { newState.push(event); }