Lynx

genui / a2ui / MessageStore

MessageStore

A pure append-only buffer of raw protocol messages produced by the developer's IO module. The store knows nothing about the v0.9 protocol — it does not parse, process, or interpret messages. It only:

  1. Stores them in arrival order.
  2. Notifies subscribers when new ones land.
  3. Hands the current snapshot back via getSnapshot() (referentially stable between mutations — required by useSyncExternalStore).

Protocol-aware processing — surfaces, signals, resources, action dispatch — is the responsibility of <A2UI> (the renderer component). Developers who don't want to learn the protocol should use <A2UI>; developers who do can run their own MessageProcessor against the snapshot directly.

Properties

getSnapshot()

readonly getSnapshot: () => readonly any[];

useSyncExternalStore getSnapshot contract — stable between pushes.

Returns

readonly any[]

Defined in

@lynx-js/genui/a2ui/src/store/MessageStore.ts:26


subscribe()

readonly subscribe: (cb: () => void) => () => void;

useSyncExternalStore subscribe contract.

Parameters

ParameterType
cb() => void

Returns

Function

Returns

void

Defined in

@lynx-js/genui/a2ui/src/store/MessageStore.ts:24

Methods

clear()

clear(): void

Reset the buffer. Notifies subscribers.

Returns

void

Defined in

@lynx-js/genui/a2ui/src/store/MessageStore.ts:35


push()

push(message: any): void

Append one or more raw messages to the buffer. Notifies subscribers once per call (batches a single array argument into a single notify).

Parameters

ParameterType
messageany

Returns

void

Defined in

@lynx-js/genui/a2ui/src/store/MessageStore.ts:31

Except as otherwise noted, this work is licensed under a Creative Commons Attribution 4.0 International License, and code samples are licensed under the Apache License 2.0.