@langchain/langgraph 1.2.9 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/graph/graph.cjs +6 -2
- package/dist/graph/graph.cjs.map +1 -1
- package/dist/graph/graph.d.cts +58 -7
- package/dist/graph/graph.d.cts.map +1 -1
- package/dist/graph/graph.d.ts +58 -7
- package/dist/graph/graph.d.ts.map +1 -1
- package/dist/graph/graph.js +6 -2
- package/dist/graph/graph.js.map +1 -1
- package/dist/graph/index.d.ts +1 -1
- package/dist/graph/state.cjs +3 -2
- package/dist/graph/state.cjs.map +1 -1
- package/dist/graph/state.d.cts +13 -5
- package/dist/graph/state.d.cts.map +1 -1
- package/dist/graph/state.d.ts +13 -5
- package/dist/graph/state.d.ts.map +1 -1
- package/dist/graph/state.js +3 -2
- package/dist/graph/state.js.map +1 -1
- package/dist/index.cjs +34 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -2
- package/dist/index.d.ts +12 -2
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/prebuilt/agent_executor.d.cts +1 -1
- package/dist/prebuilt/agent_executor.d.ts +1 -1
- package/dist/pregel/index.cjs +69 -25
- package/dist/pregel/index.cjs.map +1 -1
- package/dist/pregel/index.d.cts +25 -3
- package/dist/pregel/index.d.cts.map +1 -1
- package/dist/pregel/index.d.ts +25 -3
- package/dist/pregel/index.d.ts.map +1 -1
- package/dist/pregel/index.js +69 -25
- package/dist/pregel/index.js.map +1 -1
- package/dist/pregel/loop.cjs +51 -10
- package/dist/pregel/loop.cjs.map +1 -1
- package/dist/pregel/loop.js +51 -10
- package/dist/pregel/loop.js.map +1 -1
- package/dist/pregel/messages-v2.cjs +231 -0
- package/dist/pregel/messages-v2.cjs.map +1 -0
- package/dist/pregel/messages-v2.js +231 -0
- package/dist/pregel/messages-v2.js.map +1 -0
- package/dist/pregel/stream.cjs.map +1 -1
- package/dist/pregel/stream.d.cts +30 -0
- package/dist/pregel/stream.d.cts.map +1 -0
- package/dist/pregel/stream.d.ts +30 -1
- package/dist/pregel/stream.d.ts.map +1 -0
- package/dist/pregel/stream.js.map +1 -1
- package/dist/pregel/types.cjs.map +1 -1
- package/dist/pregel/types.d.cts +8 -1
- package/dist/pregel/types.d.cts.map +1 -1
- package/dist/pregel/types.d.ts +8 -1
- package/dist/pregel/types.d.ts.map +1 -1
- package/dist/pregel/types.js.map +1 -1
- package/dist/stream/convert.cjs +207 -0
- package/dist/stream/convert.cjs.map +1 -0
- package/dist/stream/convert.d.cts +69 -0
- package/dist/stream/convert.d.cts.map +1 -0
- package/dist/stream/convert.d.ts +69 -0
- package/dist/stream/convert.d.ts.map +1 -0
- package/dist/stream/convert.js +206 -0
- package/dist/stream/convert.js.map +1 -0
- package/dist/stream/index.cjs +11 -0
- package/dist/stream/index.d.cts +12 -0
- package/dist/stream/index.d.ts +12 -0
- package/dist/stream/index.js +12 -0
- package/dist/stream/mux.cjs +350 -0
- package/dist/stream/mux.cjs.map +1 -0
- package/dist/stream/mux.d.cts +160 -0
- package/dist/stream/mux.d.cts.map +1 -0
- package/dist/stream/mux.d.ts +160 -0
- package/dist/stream/mux.d.ts.map +1 -0
- package/dist/stream/mux.js +345 -0
- package/dist/stream/mux.js.map +1 -0
- package/dist/stream/run-stream.cjs +439 -0
- package/dist/stream/run-stream.cjs.map +1 -0
- package/dist/stream/run-stream.d.cts +286 -0
- package/dist/stream/run-stream.d.cts.map +1 -0
- package/dist/stream/run-stream.d.ts +285 -0
- package/dist/stream/run-stream.d.ts.map +1 -0
- package/dist/stream/run-stream.js +434 -0
- package/dist/stream/run-stream.js.map +1 -0
- package/dist/stream/stream-channel.cjs +208 -0
- package/dist/stream/stream-channel.cjs.map +1 -0
- package/dist/stream/stream-channel.d.cts +129 -0
- package/dist/stream/stream-channel.d.cts.map +1 -0
- package/dist/stream/stream-channel.d.ts +129 -0
- package/dist/stream/stream-channel.d.ts.map +1 -0
- package/dist/stream/stream-channel.js +207 -0
- package/dist/stream/stream-channel.js.map +1 -0
- package/dist/stream/transformers/index.cjs +4 -0
- package/dist/stream/transformers/index.d.ts +5 -0
- package/dist/stream/transformers/index.js +5 -0
- package/dist/stream/transformers/lifecycle.cjs +326 -0
- package/dist/stream/transformers/lifecycle.cjs.map +1 -0
- package/dist/stream/transformers/lifecycle.d.cts +53 -0
- package/dist/stream/transformers/lifecycle.d.cts.map +1 -0
- package/dist/stream/transformers/lifecycle.d.ts +53 -0
- package/dist/stream/transformers/lifecycle.d.ts.map +1 -0
- package/dist/stream/transformers/lifecycle.js +325 -0
- package/dist/stream/transformers/lifecycle.js.map +1 -0
- package/dist/stream/transformers/messages.cjs +94 -0
- package/dist/stream/transformers/messages.cjs.map +1 -0
- package/dist/stream/transformers/messages.d.cts +23 -0
- package/dist/stream/transformers/messages.d.cts.map +1 -0
- package/dist/stream/transformers/messages.d.ts +23 -0
- package/dist/stream/transformers/messages.d.ts.map +1 -0
- package/dist/stream/transformers/messages.js +94 -0
- package/dist/stream/transformers/messages.js.map +1 -0
- package/dist/stream/transformers/subgraphs.cjs +125 -0
- package/dist/stream/transformers/subgraphs.cjs.map +1 -0
- package/dist/stream/transformers/subgraphs.d.cts +95 -0
- package/dist/stream/transformers/subgraphs.d.cts.map +1 -0
- package/dist/stream/transformers/subgraphs.d.ts +95 -0
- package/dist/stream/transformers/subgraphs.d.ts.map +1 -0
- package/dist/stream/transformers/subgraphs.js +124 -0
- package/dist/stream/transformers/subgraphs.js.map +1 -0
- package/dist/stream/transformers/types.d.cts +89 -0
- package/dist/stream/transformers/types.d.cts.map +1 -0
- package/dist/stream/transformers/types.d.ts +89 -0
- package/dist/stream/transformers/types.d.ts.map +1 -0
- package/dist/stream/transformers/values.cjs +39 -0
- package/dist/stream/transformers/values.cjs.map +1 -0
- package/dist/stream/transformers/values.d.cts +21 -0
- package/dist/stream/transformers/values.d.cts.map +1 -0
- package/dist/stream/transformers/values.d.ts +21 -0
- package/dist/stream/transformers/values.d.ts.map +1 -0
- package/dist/stream/transformers/values.js +39 -0
- package/dist/stream/transformers/values.js.map +1 -0
- package/dist/stream/types.cjs +11 -0
- package/dist/stream/types.cjs.map +1 -0
- package/dist/stream/types.d.cts +255 -0
- package/dist/stream/types.d.cts.map +1 -0
- package/dist/stream/types.d.ts +255 -0
- package/dist/stream/types.d.ts.map +1 -0
- package/dist/stream/types.js +11 -0
- package/dist/stream/types.js.map +1 -0
- package/dist/web.cjs +39 -9
- package/dist/web.d.cts +12 -2
- package/dist/web.d.ts +12 -2
- package/dist/web.js +10 -1
- package/package.json +9 -8
package/dist/pregel/index.d.cts
CHANGED
|
@@ -3,8 +3,10 @@ import { Command, CommandInstance } from "../constants.cjs";
|
|
|
3
3
|
import { LangGraphRunnableConfig } from "./runnable_types.cjs";
|
|
4
4
|
import { RetryPolicy } from "./utils/index.cjs";
|
|
5
5
|
import { PregelNode } from "./read.cjs";
|
|
6
|
+
import { InferExtensions, StreamTransformer } from "../stream/types.cjs";
|
|
6
7
|
import { Durability, GetStateOptions, MultipleChannelSubscriptionOptions, PregelInputType, PregelInterface, PregelOptions, PregelOutputType, PregelParams, SingleChannelSubscriptionOptions, StateSnapshot, StreamMode, StreamOutputMap } from "./types.cjs";
|
|
7
8
|
import { StrRecord } from "./algo.cjs";
|
|
9
|
+
import { GraphRunStream } from "../stream/run-stream.cjs";
|
|
8
10
|
import { ChannelWrite } from "./write.cjs";
|
|
9
11
|
import { All, BaseCache, BaseCheckpointSaver, BaseStore, CheckpointListOptions, CheckpointTuple } from "@langchain/langgraph-checkpoint";
|
|
10
12
|
import { Runnable, RunnableConfig, RunnableFunc } from "@langchain/core/runnables";
|
|
@@ -15,6 +17,14 @@ import { IterableReadableStream } from "@langchain/core/utils/stream";
|
|
|
15
17
|
//#region src/pregel/index.d.ts
|
|
16
18
|
type WriteValue = Runnable | RunnableFunc<unknown, unknown> | unknown;
|
|
17
19
|
type StreamEventsOptions = Parameters<Runnable["streamEvents"]>[2];
|
|
20
|
+
type StreamEventsV3Options<Nodes extends StrRecord<string, PregelNode>, Channels extends StrRecord<string, BaseChannel>, ContextType extends Record<string, any>, TTransformers extends ReadonlyArray<() => StreamTransformer<any>>, TEncoding extends "text/event-stream" | undefined = undefined> = Partial<Omit<PregelOptions<Nodes, Channels, ContextType>, "encoding" | "subgraphs">> & {
|
|
21
|
+
version: "v3"; /** User-supplied transformer factories for custom projections. */
|
|
22
|
+
transformers?: TTransformers;
|
|
23
|
+
} & (TEncoding extends "text/event-stream" ? {
|
|
24
|
+
encoding: "text/event-stream";
|
|
25
|
+
} : {
|
|
26
|
+
encoding?: undefined;
|
|
27
|
+
});
|
|
18
28
|
/**
|
|
19
29
|
* Utility class for working with channels in the Pregel system.
|
|
20
30
|
* Provides static methods for subscribing to channels and writing to them.
|
|
@@ -159,7 +169,8 @@ declare class PartialRunnable<RunInput, RunOutput, CallOptions extends RunnableC
|
|
|
159
169
|
* @typeParam InputType - Type of input values accepted by the graph
|
|
160
170
|
* @typeParam OutputType - Type of output values produced by the graph
|
|
161
171
|
*/
|
|
162
|
-
declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels extends StrRecord<string, BaseChannel>, ContextType extends Record<string, any> = StrRecord<string, any>, InputType = PregelInputType, OutputType = PregelOutputType, StreamUpdatesType = InputType, StreamValuesType = OutputType, NodeReturnType = unknown, CommandType = CommandInstance, StreamCustom = any> extends PartialRunnable<InputType | CommandType | null, OutputType, PregelOptions<Nodes, Channels, ContextType>> implements PregelInterface<Nodes, Channels, ContextType> {
|
|
172
|
+
declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels extends StrRecord<string, BaseChannel>, ContextType extends Record<string, any> = StrRecord<string, any>, InputType = PregelInputType, OutputType = PregelOutputType, StreamUpdatesType = InputType, StreamValuesType = OutputType, NodeReturnType = unknown, CommandType = CommandInstance, StreamCustom = any, TStreamTransformers extends ReadonlyArray<() => StreamTransformer<any>> = []> extends PartialRunnable<InputType | CommandType | null, OutputType, PregelOptions<Nodes, Channels, ContextType>> implements PregelInterface<Nodes, Channels, ContextType> {
|
|
173
|
+
#private;
|
|
163
174
|
/**
|
|
164
175
|
* Name of the class when serialized
|
|
165
176
|
* @internal
|
|
@@ -242,6 +253,12 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
|
|
|
242
253
|
* @internal
|
|
243
254
|
*/
|
|
244
255
|
private userInterrupt?;
|
|
256
|
+
/**
|
|
257
|
+
* Stream reducer factories registered at compile time. These run
|
|
258
|
+
* automatically for every `streamEvents(..., { version: "v3" })` call,
|
|
259
|
+
* before any call-site transformers.
|
|
260
|
+
*/
|
|
261
|
+
streamTransformers: TStreamTransformers;
|
|
245
262
|
/**
|
|
246
263
|
* The trigger to node mapping for the graph run.
|
|
247
264
|
* @internal
|
|
@@ -252,7 +269,7 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
|
|
|
252
269
|
*
|
|
253
270
|
* @internal
|
|
254
271
|
*/
|
|
255
|
-
constructor(fields: PregelParams<Nodes, Channels>);
|
|
272
|
+
constructor(fields: PregelParams<Nodes, Channels, TStreamTransformers>);
|
|
256
273
|
/**
|
|
257
274
|
* Creates a new instance of the Pregel graph with updated configuration.
|
|
258
275
|
* This method follows the immutable pattern - instead of modifying the current instance,
|
|
@@ -272,7 +289,10 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
|
|
|
272
289
|
* @param config - The configuration to merge with the current configuration
|
|
273
290
|
* @returns A new Pregel instance with the merged configuration
|
|
274
291
|
*/
|
|
275
|
-
withConfig(config: Omit<LangGraphRunnableConfig, "store" | "writer" | "interrupt">
|
|
292
|
+
withConfig<const TTransformers extends ReadonlyArray<() => StreamTransformer<any>> = []>(config: Omit<LangGraphRunnableConfig, "store" | "writer" | "interrupt"> & {
|
|
293
|
+
streamTransformers: TTransformers;
|
|
294
|
+
}): Pregel<Nodes, Channels, ContextType, InputType, OutputType, StreamUpdatesType, StreamValuesType, NodeReturnType, CommandType, StreamCustom, readonly [...TStreamTransformers, ...TTransformers]>;
|
|
295
|
+
withConfig(config: PregelOptions<Nodes, Channels, ContextType>): this;
|
|
276
296
|
/**
|
|
277
297
|
* Validates the graph structure to ensure it is well-formed.
|
|
278
298
|
* Checks for:
|
|
@@ -454,6 +474,8 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
|
|
|
454
474
|
/**
|
|
455
475
|
* @inheritdoc
|
|
456
476
|
*/
|
|
477
|
+
streamEvents<const TTransformers extends ReadonlyArray<() => StreamTransformer<any>> = []>(input: InputType | CommandType | null, options: StreamEventsV3Options<Nodes, Channels, ContextType, TTransformers, "text/event-stream">): Promise<IterableReadableStream<Uint8Array>>;
|
|
478
|
+
streamEvents<const TTransformers extends ReadonlyArray<() => StreamTransformer<any>> = []>(input: InputType | CommandType | null, options: StreamEventsV3Options<Nodes, Channels, ContextType, TTransformers>): Promise<GraphRunStream<OutputType, InferExtensions<readonly [...TStreamTransformers, ...TTransformers]>>>;
|
|
457
479
|
streamEvents(input: InputType | CommandType | null, options: Partial<PregelOptions<Nodes, Channels, ContextType>> & {
|
|
458
480
|
version: "v1" | "v2";
|
|
459
481
|
}, streamOptions?: StreamEventsOptions): IterableReadableStream<StreamEvent>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/pregel/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/pregel/index.ts"],"mappings":"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"}
|
package/dist/pregel/index.d.ts
CHANGED
|
@@ -3,8 +3,10 @@ import { Command, CommandInstance } from "../constants.js";
|
|
|
3
3
|
import { LangGraphRunnableConfig } from "./runnable_types.js";
|
|
4
4
|
import { RetryPolicy } from "./utils/index.js";
|
|
5
5
|
import { PregelNode } from "./read.js";
|
|
6
|
+
import { InferExtensions, StreamTransformer } from "../stream/types.js";
|
|
6
7
|
import { Durability, GetStateOptions, MultipleChannelSubscriptionOptions, PregelInputType, PregelInterface, PregelOptions, PregelOutputType, PregelParams, SingleChannelSubscriptionOptions, StateSnapshot, StreamMode, StreamOutputMap } from "./types.js";
|
|
7
8
|
import { StrRecord } from "./algo.js";
|
|
9
|
+
import { GraphRunStream } from "../stream/run-stream.js";
|
|
8
10
|
import { ChannelWrite } from "./write.js";
|
|
9
11
|
import { All, BaseCache, BaseCheckpointSaver, BaseStore, CheckpointListOptions, CheckpointTuple } from "@langchain/langgraph-checkpoint";
|
|
10
12
|
import { Runnable, RunnableConfig, RunnableFunc } from "@langchain/core/runnables";
|
|
@@ -15,6 +17,14 @@ import { StreamEvent } from "@langchain/core/tracers/log_stream";
|
|
|
15
17
|
//#region src/pregel/index.d.ts
|
|
16
18
|
type WriteValue = Runnable | RunnableFunc<unknown, unknown> | unknown;
|
|
17
19
|
type StreamEventsOptions = Parameters<Runnable["streamEvents"]>[2];
|
|
20
|
+
type StreamEventsV3Options<Nodes extends StrRecord<string, PregelNode>, Channels extends StrRecord<string, BaseChannel>, ContextType extends Record<string, any>, TTransformers extends ReadonlyArray<() => StreamTransformer<any>>, TEncoding extends "text/event-stream" | undefined = undefined> = Partial<Omit<PregelOptions<Nodes, Channels, ContextType>, "encoding" | "subgraphs">> & {
|
|
21
|
+
version: "v3"; /** User-supplied transformer factories for custom projections. */
|
|
22
|
+
transformers?: TTransformers;
|
|
23
|
+
} & (TEncoding extends "text/event-stream" ? {
|
|
24
|
+
encoding: "text/event-stream";
|
|
25
|
+
} : {
|
|
26
|
+
encoding?: undefined;
|
|
27
|
+
});
|
|
18
28
|
/**
|
|
19
29
|
* Utility class for working with channels in the Pregel system.
|
|
20
30
|
* Provides static methods for subscribing to channels and writing to them.
|
|
@@ -159,7 +169,8 @@ declare class PartialRunnable<RunInput, RunOutput, CallOptions extends RunnableC
|
|
|
159
169
|
* @typeParam InputType - Type of input values accepted by the graph
|
|
160
170
|
* @typeParam OutputType - Type of output values produced by the graph
|
|
161
171
|
*/
|
|
162
|
-
declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels extends StrRecord<string, BaseChannel>, ContextType extends Record<string, any> = StrRecord<string, any>, InputType = PregelInputType, OutputType = PregelOutputType, StreamUpdatesType = InputType, StreamValuesType = OutputType, NodeReturnType = unknown, CommandType = CommandInstance, StreamCustom = any> extends PartialRunnable<InputType | CommandType | null, OutputType, PregelOptions<Nodes, Channels, ContextType>> implements PregelInterface<Nodes, Channels, ContextType> {
|
|
172
|
+
declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels extends StrRecord<string, BaseChannel>, ContextType extends Record<string, any> = StrRecord<string, any>, InputType = PregelInputType, OutputType = PregelOutputType, StreamUpdatesType = InputType, StreamValuesType = OutputType, NodeReturnType = unknown, CommandType = CommandInstance, StreamCustom = any, TStreamTransformers extends ReadonlyArray<() => StreamTransformer<any>> = []> extends PartialRunnable<InputType | CommandType | null, OutputType, PregelOptions<Nodes, Channels, ContextType>> implements PregelInterface<Nodes, Channels, ContextType> {
|
|
173
|
+
#private;
|
|
163
174
|
/**
|
|
164
175
|
* Name of the class when serialized
|
|
165
176
|
* @internal
|
|
@@ -242,6 +253,12 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
|
|
|
242
253
|
* @internal
|
|
243
254
|
*/
|
|
244
255
|
private userInterrupt?;
|
|
256
|
+
/**
|
|
257
|
+
* Stream reducer factories registered at compile time. These run
|
|
258
|
+
* automatically for every `streamEvents(..., { version: "v3" })` call,
|
|
259
|
+
* before any call-site transformers.
|
|
260
|
+
*/
|
|
261
|
+
streamTransformers: TStreamTransformers;
|
|
245
262
|
/**
|
|
246
263
|
* The trigger to node mapping for the graph run.
|
|
247
264
|
* @internal
|
|
@@ -252,7 +269,7 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
|
|
|
252
269
|
*
|
|
253
270
|
* @internal
|
|
254
271
|
*/
|
|
255
|
-
constructor(fields: PregelParams<Nodes, Channels>);
|
|
272
|
+
constructor(fields: PregelParams<Nodes, Channels, TStreamTransformers>);
|
|
256
273
|
/**
|
|
257
274
|
* Creates a new instance of the Pregel graph with updated configuration.
|
|
258
275
|
* This method follows the immutable pattern - instead of modifying the current instance,
|
|
@@ -272,7 +289,10 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
|
|
|
272
289
|
* @param config - The configuration to merge with the current configuration
|
|
273
290
|
* @returns A new Pregel instance with the merged configuration
|
|
274
291
|
*/
|
|
275
|
-
withConfig(config: Omit<LangGraphRunnableConfig, "store" | "writer" | "interrupt">
|
|
292
|
+
withConfig<const TTransformers extends ReadonlyArray<() => StreamTransformer<any>> = []>(config: Omit<LangGraphRunnableConfig, "store" | "writer" | "interrupt"> & {
|
|
293
|
+
streamTransformers: TTransformers;
|
|
294
|
+
}): Pregel<Nodes, Channels, ContextType, InputType, OutputType, StreamUpdatesType, StreamValuesType, NodeReturnType, CommandType, StreamCustom, readonly [...TStreamTransformers, ...TTransformers]>;
|
|
295
|
+
withConfig(config: PregelOptions<Nodes, Channels, ContextType>): this;
|
|
276
296
|
/**
|
|
277
297
|
* Validates the graph structure to ensure it is well-formed.
|
|
278
298
|
* Checks for:
|
|
@@ -454,6 +474,8 @@ declare class Pregel<Nodes extends StrRecord<string, PregelNode>, Channels exten
|
|
|
454
474
|
/**
|
|
455
475
|
* @inheritdoc
|
|
456
476
|
*/
|
|
477
|
+
streamEvents<const TTransformers extends ReadonlyArray<() => StreamTransformer<any>> = []>(input: InputType | CommandType | null, options: StreamEventsV3Options<Nodes, Channels, ContextType, TTransformers, "text/event-stream">): Promise<IterableReadableStream<Uint8Array>>;
|
|
478
|
+
streamEvents<const TTransformers extends ReadonlyArray<() => StreamTransformer<any>> = []>(input: InputType | CommandType | null, options: StreamEventsV3Options<Nodes, Channels, ContextType, TTransformers>): Promise<GraphRunStream<OutputType, InferExtensions<readonly [...TStreamTransformers, ...TTransformers]>>>;
|
|
457
479
|
streamEvents(input: InputType | CommandType | null, options: Partial<PregelOptions<Nodes, Channels, ContextType>> & {
|
|
458
480
|
version: "v1" | "v2";
|
|
459
481
|
}, streamOptions?: StreamEventsOptions): IterableReadableStream<StreamEvent>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/pregel/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/pregel/index.ts"],"mappings":"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"}
|
package/dist/pregel/index.js
CHANGED
|
@@ -13,7 +13,11 @@ import { printStepCheckpoint, printStepTasks, printStepWrites, tasksWithWrites }
|
|
|
13
13
|
import { IterableReadableStreamWithAbortSignal, IterableReadableWritableStream, StreamToolsHandler, toEventStream } from "./stream.js";
|
|
14
14
|
import { PregelLoop } from "./loop.js";
|
|
15
15
|
import { StreamMessagesHandler } from "./messages.js";
|
|
16
|
+
import { StreamProtocolMessagesHandler } from "./messages-v2.js";
|
|
16
17
|
import { PregelRunner } from "./runner.js";
|
|
18
|
+
import { STREAM_EVENTS_V3_MODES } from "../stream/convert.js";
|
|
19
|
+
import { createGraphRunStream } from "../stream/run-stream.js";
|
|
20
|
+
import "../stream/index.js";
|
|
17
21
|
import { validateGraph, validateKeys } from "./validate.js";
|
|
18
22
|
import { Topic } from "../channels/topic.js";
|
|
19
23
|
import { interrupt } from "../interrupt.js";
|
|
@@ -21,6 +25,22 @@ import { SCHEDULED, compareChannelVersions, copyCheckpoint, emptyCheckpoint, uui
|
|
|
21
25
|
import { Runnable, RunnableSequence, _coerceToRunnable, mergeConfigs, patchConfig } from "@langchain/core/runnables";
|
|
22
26
|
import { CallbackManager } from "@langchain/core/callbacks/manager";
|
|
23
27
|
//#region src/pregel/index.ts
|
|
28
|
+
function protocolEventsToEventStream(run) {
|
|
29
|
+
const encoder = new TextEncoder();
|
|
30
|
+
return new ReadableStream({ async start(controller) {
|
|
31
|
+
try {
|
|
32
|
+
for await (const event of run) {
|
|
33
|
+
const namespace = event.params.namespace;
|
|
34
|
+
const eventName = namespace.length ? `${event.method}|${namespace.join("|")}` : event.method;
|
|
35
|
+
controller.enqueue(encoder.encode(`event: ${eventName}\ndata: ${JSON.stringify(event.params.data ?? {})}\n\n`));
|
|
36
|
+
}
|
|
37
|
+
} catch (error) {
|
|
38
|
+
controller.enqueue(encoder.encode(`event: error\ndata: ${JSON.stringify({ message: String(error) })}\n\n`));
|
|
39
|
+
} finally {
|
|
40
|
+
controller.close();
|
|
41
|
+
}
|
|
42
|
+
} });
|
|
43
|
+
}
|
|
24
44
|
/**
|
|
25
45
|
* Utility class for working with channels in the Pregel system.
|
|
26
46
|
* Provides static methods for subscribing to channels and writing to them.
|
|
@@ -245,6 +265,12 @@ var Pregel = class extends PartialRunnable {
|
|
|
245
265
|
*/
|
|
246
266
|
userInterrupt;
|
|
247
267
|
/**
|
|
268
|
+
* Stream reducer factories registered at compile time. These run
|
|
269
|
+
* automatically for every `streamEvents(..., { version: "v3" })` call,
|
|
270
|
+
* before any call-site transformers.
|
|
271
|
+
*/
|
|
272
|
+
streamTransformers;
|
|
273
|
+
/**
|
|
248
274
|
* The trigger to node mapping for the graph run.
|
|
249
275
|
* @internal
|
|
250
276
|
*/
|
|
@@ -279,32 +305,17 @@ var Pregel = class extends PartialRunnable {
|
|
|
279
305
|
this.name = fields.name;
|
|
280
306
|
this.triggerToNodes = fields.triggerToNodes ?? this.triggerToNodes;
|
|
281
307
|
this.userInterrupt = fields.userInterrupt;
|
|
308
|
+
this.streamTransformers = fields.streamTransformers ?? [];
|
|
282
309
|
if (this.autoValidate) this.validate();
|
|
283
310
|
}
|
|
284
|
-
/**
|
|
285
|
-
* Creates a new instance of the Pregel graph with updated configuration.
|
|
286
|
-
* This method follows the immutable pattern - instead of modifying the current instance,
|
|
287
|
-
* it returns a new instance with the merged configuration.
|
|
288
|
-
*
|
|
289
|
-
* @example
|
|
290
|
-
* ```typescript
|
|
291
|
-
* // Create a new instance with debug enabled
|
|
292
|
-
* const debugGraph = graph.withConfig({ debug: true });
|
|
293
|
-
*
|
|
294
|
-
* // Create a new instance with a specific thread ID
|
|
295
|
-
* const threadGraph = graph.withConfig({
|
|
296
|
-
* configurable: { thread_id: "123" }
|
|
297
|
-
* });
|
|
298
|
-
* ```
|
|
299
|
-
*
|
|
300
|
-
* @param config - The configuration to merge with the current configuration
|
|
301
|
-
* @returns A new Pregel instance with the merged configuration
|
|
302
|
-
*/
|
|
303
311
|
withConfig(config) {
|
|
304
|
-
const
|
|
312
|
+
const { streamTransformers, ...restConfig } = config;
|
|
313
|
+
const mergedConfig = mergeConfigs(this.config, restConfig);
|
|
314
|
+
const mergedStreamTransformers = [...this.streamTransformers, ...streamTransformers ?? []];
|
|
305
315
|
return new this.constructor({
|
|
306
316
|
...this,
|
|
307
|
-
config: mergedConfig
|
|
317
|
+
config: mergedConfig,
|
|
318
|
+
streamTransformers: mergedStreamTransformers
|
|
308
319
|
});
|
|
309
320
|
}
|
|
310
321
|
/**
|
|
@@ -913,7 +924,34 @@ var Pregel = class extends PartialRunnable {
|
|
|
913
924
|
const stream = await super.stream(input, config);
|
|
914
925
|
return new IterableReadableStreamWithAbortSignal(options?.encoding === "text/event-stream" ? toEventStream(stream) : stream, abortController);
|
|
915
926
|
}
|
|
927
|
+
async #streamEventsV3(input, options) {
|
|
928
|
+
const { version, encoding, transformers: userTransformers, ...restOptions } = options;
|
|
929
|
+
const streamOptions = {
|
|
930
|
+
recursionLimit: this.config?.recursionLimit,
|
|
931
|
+
...restOptions,
|
|
932
|
+
configurable: {
|
|
933
|
+
...this.config?.configurable,
|
|
934
|
+
...restOptions?.configurable
|
|
935
|
+
},
|
|
936
|
+
version,
|
|
937
|
+
streamMode: STREAM_EVENTS_V3_MODES,
|
|
938
|
+
subgraphs: true,
|
|
939
|
+
encoding: void 0
|
|
940
|
+
};
|
|
941
|
+
const sourcePromise = this.stream(input, streamOptions);
|
|
942
|
+
const graphRun = createGraphRunStream({ [Symbol.asyncIterator]: async function* () {
|
|
943
|
+
const src = await sourcePromise;
|
|
944
|
+
for await (const chunk of src) yield chunk;
|
|
945
|
+
} }, [...this.streamTransformers ?? [], ...userTransformers ?? []]);
|
|
946
|
+
if (encoding === "text/event-stream") {
|
|
947
|
+
const abortController = new AbortController();
|
|
948
|
+
abortController.signal.addEventListener("abort", () => graphRun.abort(abortController.signal.reason), { once: true });
|
|
949
|
+
return new IterableReadableStreamWithAbortSignal(protocolEventsToEventStream(graphRun), abortController);
|
|
950
|
+
}
|
|
951
|
+
return graphRun;
|
|
952
|
+
}
|
|
916
953
|
streamEvents(input, options, streamOptions) {
|
|
954
|
+
if (options.version === "v3") return this.#streamEventsV3(input, options);
|
|
917
955
|
const abortController = new AbortController();
|
|
918
956
|
const config = {
|
|
919
957
|
recursionLimit: this.config?.recursionLimit,
|
|
@@ -972,7 +1010,7 @@ var Pregel = class extends PartialRunnable {
|
|
|
972
1010
|
config.configurable[CONFIG_KEY_CHECKPOINT_NS] = ns.split("|").map((part) => part.split(":")[0]).join("|");
|
|
973
1011
|
}
|
|
974
1012
|
if (streamMode.includes("messages")) {
|
|
975
|
-
const messageStreamer = new StreamMessagesHandler((chunk) => stream.push(chunk));
|
|
1013
|
+
const messageStreamer = options?.version === "v3" ? new StreamProtocolMessagesHandler((chunk) => stream.push(chunk)) : new StreamMessagesHandler((chunk) => stream.push(chunk));
|
|
976
1014
|
const { callbacks } = config;
|
|
977
1015
|
if (callbacks === void 0) config.callbacks = [messageStreamer];
|
|
978
1016
|
else if (Array.isArray(callbacks)) config.callbacks = callbacks.concat(messageStreamer);
|
|
@@ -1004,7 +1042,8 @@ var Pregel = class extends PartialRunnable {
|
|
|
1004
1042
|
};
|
|
1005
1043
|
config.interrupt ??= this.userInterrupt ?? interrupt;
|
|
1006
1044
|
if (config.serverInfo == null) config.serverInfo = _buildServerInfo(config);
|
|
1007
|
-
const
|
|
1045
|
+
const callbackManagerOptions = { tracerInheritableMetadata: _getTracingMetadataDefaults(config) };
|
|
1046
|
+
const runManager = await (await CallbackManager._configureSync(config?.callbacks, void 0, config?.tags, void 0, config?.metadata, void 0, callbackManagerOptions))?.handleChainStart(this.toJSON(), _coerceToDict(input, "input"), runId, void 0, void 0, void 0, config?.runName ?? this.getName());
|
|
1008
1047
|
const channelSpecs = getOnlyChannels(this.channels);
|
|
1009
1048
|
let loop;
|
|
1010
1049
|
let loopError;
|
|
@@ -1071,7 +1110,7 @@ var Pregel = class extends PartialRunnable {
|
|
|
1071
1110
|
try {
|
|
1072
1111
|
for await (const chunk of stream) {
|
|
1073
1112
|
if (chunk === void 0) throw new Error("Data structure error.");
|
|
1074
|
-
const [namespace, mode, payload] = chunk;
|
|
1113
|
+
const [namespace, mode, payload, meta] = chunk;
|
|
1075
1114
|
if (streamMode.includes(mode)) {
|
|
1076
1115
|
if (streamEncoding === "text/event-stream") {
|
|
1077
1116
|
if (streamSubgraphs) yield [
|
|
@@ -1086,7 +1125,12 @@ var Pregel = class extends PartialRunnable {
|
|
|
1086
1125
|
];
|
|
1087
1126
|
continue;
|
|
1088
1127
|
}
|
|
1089
|
-
if (streamSubgraphs && !streamModeSingle) yield [
|
|
1128
|
+
if (streamSubgraphs && !streamModeSingle) yield meta !== void 0 ? [
|
|
1129
|
+
namespace,
|
|
1130
|
+
mode,
|
|
1131
|
+
payload,
|
|
1132
|
+
meta
|
|
1133
|
+
] : [
|
|
1090
1134
|
namespace,
|
|
1091
1135
|
mode,
|
|
1092
1136
|
payload
|