Documentation / @agentick/kernel / EventBuffer
Class: EventBuffer<T>
Defined in: kernel/src/event-buffer.ts:100
EventBuffer enables typed, channel-based event streaming.
The event's type property IS the channel. Subscribing to 'delta' means you only receive events where event.type === 'delta'.
Examples
type StreamEvent =
| { type: 'delta'; value: string }
| { type: 'complete'; result: any };
const buffer = new EventBuffer<StreamEvent>();
// Subscribe to specific channel - handler gets narrowed type
buffer.on('delta', (event) => {
console.log(event.value); // TypeScript knows: { type: 'delta', value: string }
});
// Subscribe to all events
buffer.on((event) => {
console.log(event); // StreamEvent union
});
// Emit - type can be first arg (event.type omitted) or in event object
buffer.emit('delta', { value: 'Hello' });
buffer.emit({ type: 'complete', result: 42 });buffer.emit('delta', { value: 'first' });
buffer.emit('delta', { value: 'second' });
// Late subscriber gets all past 'delta' events replayed
buffer.onReplay('delta', (e) => console.log(e.value));
// logs: 'first', 'second'for await (const event of buffer) {
if (event.type === 'complete') break;
console.log(event);
}Type Parameters
T
T extends TypedEvent
Constructors
Constructor
new EventBuffer<
T>():EventBuffer<T>
Returns
EventBuffer<T>
Accessors
closed
Get Signature
get closed():
boolean
Defined in: kernel/src/event-buffer.ts:376
Whether the buffer is closed.
Returns
boolean
errorValue
Get Signature
get errorValue():
Error|null
Defined in: kernel/src/event-buffer.ts:381
Error that closed the buffer (if any).
Returns
Error | null
length
Get Signature
get length():
number
Defined in: kernel/src/event-buffer.ts:386
Number of buffered events.
Returns
number
listenerCount
Get Signature
get listenerCount():
number
Defined in: kernel/src/event-buffer.ts:391
Total number of active subscribers across all channels.
Returns
number
Methods
[asyncIterator]()
[asyncIterator]():
AsyncGenerator<T,void,unknown>
Defined in: kernel/src/event-buffer.ts:436
Async iterator that replays all events then waits for new ones.
Multiple iterators can exist simultaneously - each sees all events.
Returns
AsyncGenerator<T, void, unknown>
addListener()
Call Signature
addListener<
K>(eventType,handler):Unsubscribe
Defined in: kernel/src/event-buffer.ts:484
Alias for on() (EventEmitter compatibility)
Type Parameters
K
K extends string
Parameters
eventType
K
handler
EventHandler<EventMap<T>[K]>
Returns
Call Signature
addListener(
handler):Unsubscribe
Defined in: kernel/src/event-buffer.ts:488
Alias for on() (EventEmitter compatibility)
Parameters
handler
EventHandler<T>
Returns
close()
close():
void
Defined in: kernel/src/event-buffer.ts:345
Close the buffer (no more events). Completes all async iterators gracefully.
Returns
void
emit()
Call Signature
emit<
K>(eventType,event):boolean
Defined in: kernel/src/event-buffer.ts:150
Emit an event (two-param form: type + event without type property).
Type Parameters
K
K extends string
Parameters
eventType
K
event
Omit<EventMap<T>[K], "type">
Returns
boolean
true if there were listeners
Call Signature
emit(
eventType,event):boolean
Defined in: kernel/src/event-buffer.ts:156
Emit an event with wildcard (backwards compat with EventEmitter). The event must be a full event object with type property.
Parameters
eventType
"*"
event
T
Returns
boolean
true if there were listeners
Call Signature
emit(
event):boolean
Defined in: kernel/src/event-buffer.ts:161
Emit an event (one-param form: full event object with type).
Parameters
event
T
Returns
boolean
true if there were listeners
error()
error(
err):void
Defined in: kernel/src/event-buffer.ts:360
Close with an error. All waiting iterators will throw this error.
Parameters
err
Error
Returns
void
filter()
filter<
K>(eventType):AsyncGenerator<EventMap<T>[K],void,unknown>
Defined in: kernel/src/event-buffer.ts:471
Create a filtered async iterator for a specific event type.
Type Parameters
K
K extends string
Parameters
eventType
K
Returns
AsyncGenerator<EventMap<T>[K], void, unknown>
getBuffer()
getBuffer(): readonly
T[]
Defined in: kernel/src/event-buffer.ts:413
Get all buffered events (readonly).
Returns
readonly T[]
getBufferByType()
getBufferByType<
K>(eventType): readonlyEventMap<T>[K][]
Defined in: kernel/src/event-buffer.ts:418
Get buffered events of a specific type.
Type Parameters
K
K extends string
Parameters
eventType
K
Returns
readonly EventMap<T>[K][]
getListenerCount()
Call Signature
getListenerCount<
K>(eventType):number
Defined in: kernel/src/event-buffer.ts:404
Get listener count for a specific event type.
Type Parameters
K
K extends string
Parameters
eventType
K
Returns
number
Call Signature
getListenerCount():
number
Defined in: kernel/src/event-buffer.ts:406
Get wildcard listener count.
Returns
number
off()
Call Signature
off<
K>(eventType,handler):boolean
Defined in: kernel/src/event-buffer.ts:263
Unsubscribe a handler from a specific event type.
Type Parameters
K
K extends string
Parameters
eventType
K
handler
EventHandler<EventMap<T>[K]>
Returns
boolean
true if handler was found and removed
Call Signature
off(
eventType,handler):boolean
Defined in: kernel/src/event-buffer.ts:269
Unsubscribe a wildcard handler. Pass "*" or no event type for wildcard.
Parameters
eventType
"*"
handler
EventHandler<T>
Returns
boolean
true if handler was found and removed
Call Signature
off(
handler):boolean
Defined in: kernel/src/event-buffer.ts:270
Unsubscribe a handler from a specific event type.
Parameters
handler
EventHandler<T>
Returns
boolean
true if handler was found and removed
on()
Call Signature
on<
K>(eventType,handler):Unsubscribe
Defined in: kernel/src/event-buffer.ts:200
Subscribe to events of a specific type. Handler receives the narrowed type for that event.
Type Parameters
K
K extends string
Parameters
eventType
K
handler
EventHandler<EventMap<T>[K]>
Returns
Unsubscribe function
Call Signature
on(
eventType,handler):Unsubscribe
Defined in: kernel/src/event-buffer.ts:206
Subscribe to all events (wildcard). Pass "*" or no event type for wildcard subscription.
Parameters
eventType
"*"
handler
EventHandler<T>
Returns
Unsubscribe function
Call Signature
on(
handler):Unsubscribe
Defined in: kernel/src/event-buffer.ts:207
Subscribe to events of a specific type. Handler receives the narrowed type for that event.
Parameters
handler
EventHandler<T>
Returns
Unsubscribe function
once()
Call Signature
once<
K>(eventType,handler):Unsubscribe
Defined in: kernel/src/event-buffer.ts:226
Subscribe for a single event of a specific type.
Type Parameters
K
K extends string
Parameters
eventType
K
handler
EventHandler<EventMap<T>[K]>
Returns
Unsubscribe function
Call Signature
once(
eventType,handler):Unsubscribe
Defined in: kernel/src/event-buffer.ts:232
Subscribe for a single event (any type). Pass "*" or no event type for wildcard subscription.
Parameters
eventType
"*"
handler
EventHandler<T>
Returns
Unsubscribe function
Call Signature
once(
handler):Unsubscribe
Defined in: kernel/src/event-buffer.ts:233
Subscribe for a single event of a specific type.
Parameters
handler
EventHandler<T>
Returns
Unsubscribe function
onReplay()
Call Signature
onReplay<
K>(eventType,handler):Unsubscribe
Defined in: kernel/src/event-buffer.ts:288
Subscribe to a specific event type and replay all buffered events of that type.
Type Parameters
K
K extends string
Parameters
eventType
K
handler
EventHandler<EventMap<T>[K]>
Returns
Unsubscribe function
Call Signature
onReplay(
handler):Unsubscribe
Defined in: kernel/src/event-buffer.ts:293
Subscribe to all events and replay entire buffer.
Parameters
handler
EventHandler<T>
Returns
Unsubscribe function
push()
push(
event):void
Defined in: kernel/src/event-buffer.ts:115
Push an event into the buffer. Notifies subscribers for this event's type and wildcard subscribers.
Parameters
event
T
Returns
void
removeListener()
Call Signature
removeListener<
K>(eventType,handler):boolean
Defined in: kernel/src/event-buffer.ts:497
Alias for off() (EventEmitter compatibility)
Type Parameters
K
K extends string
Parameters
eventType
K
handler
EventHandler<EventMap<T>[K]>
Returns
boolean
Call Signature
removeListener(
handler):boolean
Defined in: kernel/src/event-buffer.ts:498
Alias for off() (EventEmitter compatibility)
Parameters
handler
EventHandler<T>
Returns
boolean
toArray()
toArray():
T[]
Defined in: kernel/src/event-buffer.ts:423
Convert buffer to array (copy).
Returns
T[]