Skip to content

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

typescript
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 });
typescript
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'
typescript
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

Unsubscribe

Call Signature

addListener(handler): Unsubscribe

Defined in: kernel/src/event-buffer.ts:488

Alias for on() (EventEmitter compatibility)

Parameters
handler

EventHandler<T>

Returns

Unsubscribe


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): readonly EventMap<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

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

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

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

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

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

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

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

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[]

Released under the ISC License.