@@ -2,6 +2,7 @@ import { z } from "zod/v3";
22import { BaseMessage , HumanMessage } from "@langchain/core/messages" ;
33import { LanguageModelLike } from "@langchain/core/language_models/base" ;
44import { describe , it , expectTypeOf } from "vitest" ;
5+ import type { IterableReadableStream } from "@langchain/core/utils/stream" ;
56
67import { createAgent } from "../index.js" ;
78
@@ -61,6 +62,54 @@ describe("reactAgent", () => {
6162 } ) ;
6263 } ) ;
6364
65+ it ( "supports streaming" , async ( ) => {
66+ const agent = createAgent ( {
67+ model : "openai:gpt-4" ,
68+ } ) ;
69+ const stream = await agent . stream (
70+ {
71+ messages : [ new HumanMessage ( "Hello, world!" ) ] ,
72+ } ,
73+ {
74+ encoding : "text/event-stream" ,
75+ streamMode : [ "values" , "updates" , "messages" ] ,
76+ configurable : {
77+ thread_id : "test-123" ,
78+ } ,
79+ recursionLimit : 10 ,
80+ }
81+ ) ;
82+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
83+ expectTypeOf ( stream ) . toEqualTypeOf < IterableReadableStream < any > > ( ) ;
84+
85+ await agent . invoke (
86+ {
87+ messages : [ new HumanMessage ( "Hello, world!" ) ] ,
88+ } ,
89+ {
90+ // @ts -expect-error encoding is not a valid property
91+ encoding : "text/event-stream" ,
92+ configurable : {
93+ thread_id : "test-123" ,
94+ } ,
95+ recursionLimit : 10 ,
96+ }
97+ ) ;
98+ await agent . invoke (
99+ {
100+ messages : [ new HumanMessage ( "Hello, world!" ) ] ,
101+ } ,
102+ {
103+ // @ts -expect-error encoding is not a valid property
104+ streamMode : [ "values" , "updates" , "messages" ] ,
105+ configurable : {
106+ thread_id : "test-123" ,
107+ } ,
108+ recursionLimit : 10 ,
109+ }
110+ ) ;
111+ } ) ;
112+
64113 it ( "should allow a state schema that makes invoke calls require to pass in a state" , async ( ) => {
65114 const agent = createAgent ( {
66115 model : "openai:gpt-4" ,
0 commit comments