From cbca07e3db339c2ae62955704d8d1aaf42e2ca37 Mon Sep 17 00:00:00 2001 From: Tat Dat Duong Date: Mon, 10 Feb 2025 12:58:11 -0800 Subject: [PATCH] Rename to more sane event type --- libs/sdk-js/src/index.ts | 16 ++--- libs/sdk-js/src/types.stream.ts | 114 ++++++++++++++++++++------------ 2 files changed, 79 insertions(+), 51 deletions(-) diff --git a/libs/sdk-js/src/index.ts b/libs/sdk-js/src/index.ts index 94e27539a..ca30e5d54 100644 --- a/libs/sdk-js/src/index.ts +++ b/libs/sdk-js/src/index.ts @@ -29,14 +29,14 @@ export type { OnConflictBehavior, Command } from "./types.js"; export type { StreamMode } from "./types.stream.js"; export type { - ValuesPayload, - MessagesTuplePayload, - MetadataPayload, - UpdatesPayload, - CustomPayload, - MessagesPayload, - DebugPayload, - EventsPayload, + ValuesStreamEvent, + MessagesTupleStreamEvent, + MetadataStreamEvent, + UpdatesStreamEvent, + CustomStreamEvent, + MessagesStreamEvent, + DebugStreamEvent, + EventsStreamEvent, } from "./types.stream.js"; export type { Message, diff --git a/libs/sdk-js/src/types.stream.ts b/libs/sdk-js/src/types.stream.ts index 9e1ff75ba..4a36652d7 100644 --- a/libs/sdk-js/src/types.stream.ts +++ b/libs/sdk-js/src/types.stream.ts @@ -29,14 +29,20 @@ type AsSubgraph = { data: TEvent["data"]; }; -export type ValuesPayload = { event: "values"; data: StateType }; +/** + * Stream event with values after completion of each step. + */ +export type ValuesStreamEvent = { event: "values"; data: StateType }; /** @internal */ -export type ValuesPayloadSubgraphs = AsSubgraph< - ValuesPayload +export type SubgraphValuesStreamEvent = AsSubgraph< + ValuesStreamEvent >; -export type MessagesTuplePayload = { +/** + * Stream event with message chunks coming from LLM invocations inside nodes. + */ +export type MessagesTupleStreamEvent = { event: "messages"; // TODO: add types for message and config, which do not depend on LangChain // while making sure it's easy to keep them in sync. @@ -44,64 +50,86 @@ export type MessagesTuplePayload = { }; /** @internal */ -export type MessagesTuplePayloadSubgraphs = AsSubgraph; +export type SubgraphMessagesTupleStreamEvent = + AsSubgraph; -export type MetadataPayload = { +/** + * Metadata stream event with information about the run and thread + */ +export type MetadataStreamEvent = { event: "metadata"; data: { run_id: string; thread_id: string }; }; /** @internal */ -export type MetadataPayloadSubgraphs = AsSubgraph; +export type SubgraphMetadataStreamEvent = AsSubgraph; -export type UpdatesPayload = { +/** + * Stream event with updates to the state after each step. + * The streamed outputs include the name of the node that + * produced the update as well as the update. + */ +export type UpdatesStreamEvent = { event: "updates"; data: { [node: string]: UpdateType }; }; /** @internal */ -export type UpdatesPayloadSubgraphs = AsSubgraph< - UpdatesPayload +export type SubgraphUpdatesStreamEvent = AsSubgraph< + UpdatesStreamEvent >; -export type CustomPayload = { event: "custom"; data: T }; +/** + * Streaming custom data from inside the nodes. + */ +export type CustomStreamEvent = { event: "custom"; data: T }; /** @internal */ -export type CustomPayloadSubgraphs = AsSubgraph>; +export type SubgraphCustomStreamEvent = AsSubgraph>; -type MessagesMetadataPayload = { +type MessagesMetadataStreamEvent = { event: "messages/metadata"; data: { [messageId: string]: { metadata: unknown } }; }; -type MessagesCompletePayload = { +type MessagesCompleteStreamEvent = { event: "messages/complete"; data: Message[]; }; -type MessagesPartialPayload = { +type MessagesPartialStreamEvent = { event: "messages/partial"; data: Message[]; }; -export type MessagesPayload = - | MessagesMetadataPayload - | MessagesCompletePayload - | MessagesPartialPayload; +/** + * Message stream event specific to LangGraph Server. + * @deprecated Use `streamMode: "messages-tuple"` instead. + */ +export type MessagesStreamEvent = + | MessagesMetadataStreamEvent + | MessagesCompleteStreamEvent + | MessagesPartialStreamEvent; /** @internal */ -export type MessagesPayloadSubgraphs = - | AsSubgraph - | AsSubgraph - | AsSubgraph; +export type SubgraphMessagesStreamEvent = + | AsSubgraph + | AsSubgraph + | AsSubgraph; -export type DebugPayload = { event: "debug"; data: unknown }; +/** + * Stream event with detailed debug information. + */ +export type DebugStreamEvent = { event: "debug"; data: unknown }; /** @internal */ -export type DebugPayloadSubgraphs = AsSubgraph; +export type SubgraphDebugStreamEvent = AsSubgraph; -export type EventsPayload = { event: "events"; data: unknown }; +/** + * Stream event with events occurring during execution. + */ +export type EventsStreamEvent = { event: "events"; data: unknown }; /** @internal */ -export type EventsPayloadSubgraphs = AsSubgraph; +export type SubgraphEventsStreamEvent = AsSubgraph; type GetStreamModeMap< TStreamMode extends StreamMode | StreamMode[], @@ -110,15 +138,15 @@ type GetStreamModeMap< TCustomType = unknown, > = | { - values: ValuesPayload; - updates: UpdatesPayload; - custom: CustomPayload; - debug: DebugPayload; - messages: MessagesPayload; - "messages-tuple": MessagesTuplePayload; - events: EventsPayload; + values: ValuesStreamEvent; + updates: UpdatesStreamEvent; + custom: CustomStreamEvent; + debug: DebugStreamEvent; + messages: MessagesStreamEvent; + "messages-tuple": MessagesTupleStreamEvent; + events: EventsStreamEvent; }[TStreamMode extends StreamMode[] ? TStreamMode[number] : TStreamMode] - | MetadataPayload; + | MetadataStreamEvent; type GetSubgraphsStreamModeMap< TStreamMode extends StreamMode | StreamMode[], @@ -127,15 +155,15 @@ type GetSubgraphsStreamModeMap< TCustomType = unknown, > = | { - values: ValuesPayloadSubgraphs; - updates: UpdatesPayloadSubgraphs; - custom: CustomPayloadSubgraphs; - debug: DebugPayloadSubgraphs; - messages: MessagesPayloadSubgraphs; - "messages-tuple": MessagesTuplePayloadSubgraphs; - events: EventsPayloadSubgraphs; + values: SubgraphValuesStreamEvent; + updates: SubgraphUpdatesStreamEvent; + custom: SubgraphCustomStreamEvent; + debug: SubgraphDebugStreamEvent; + messages: SubgraphMessagesStreamEvent; + "messages-tuple": SubgraphMessagesTupleStreamEvent; + events: SubgraphEventsStreamEvent; }[TStreamMode extends StreamMode[] ? TStreamMode[number] : TStreamMode] - | MetadataPayloadSubgraphs; + | SubgraphMetadataStreamEvent; export type TypedAsyncGenerator< TStreamMode extends StreamMode | StreamMode[] = [],