Skip to content

Commit b4f04be

Browse files
RoyLinRoyLin
authored andcommitted
fix(node-sdk): add async iterator support to EventStream for for-await-of loops
Fixes #10 - Add Symbol.asyncIterator method to EventStream prototype - Update TypeScript type definitions - Enables 'for await (const event of stream)' syntax - EventStream.next() returns Promise<NextResult> with async iterator protocol
1 parent de0da37 commit b4f04be

2 files changed

Lines changed: 7 additions & 0 deletions

File tree

sdk/node/index.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,8 @@ export declare class EventStream {
574574
* When `done` is true, the stream is exhausted.
575575
*/
576576
next(): Promise<NextResult>
577+
/** Async iterator protocol support for `for await...of` loops */
578+
[Symbol.asyncIterator](): EventStream
577579
}
578580
/**
579581
* File-backed long-term memory store.

sdk/node/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,11 @@ if (!nativeBinding) {
312312

313313
const { EventStream, FileMemoryStore, FileSessionStore, MemorySessionStore, DefaultSecurityProvider, DocumentParserRegistry, StdioTransport, HttpTransport, WebSocketTransport, UnixSocketTransport, Agent, Session, builtinSkills, TeamTaskBoard, Team, TeamRunner, SubAgentHandle, Orchestrator } = nativeBinding
314314

315+
// Add async iterator support to EventStream
316+
EventStream.prototype[Symbol.asyncIterator] = function() {
317+
return this
318+
}
319+
315320
module.exports.EventStream = EventStream
316321
module.exports.FileMemoryStore = FileMemoryStore
317322
module.exports.FileSessionStore = FileSessionStore

0 commit comments

Comments
 (0)