DocsAPI referenceUI machineslog-stream

log-stream machine

The public state machine contract for @grassroot/ui-machines/log-stream. The machine owns behaviour; the matching headless layer owns composition.

@grassroot/ui-machines/log-stream

Package

28 exports
View source packages/ui-machines/src/log-stream/index.ts

Service example

log-stream.tsts
import { createService } from "@grassroot/statechart";
import { logStreamMachine } from "@grassroot/ui-machines/log-stream";
const service = createService(logStreamMachine, { input: {} });
service.start();
service.send({ type: "…" });
service.stop();

Exports

Local duplicate of oracle `appendLogLine` — stamp is required (no clock).

DeclarationView source
appendLogStreamLinets
declare function appendLogStreamLine(lines: readonly LogStreamLine[], source: readonly LogStreamEntry[], index: number, maxLines: number, stamp: () => string): LogStreamSeedResult;
Name
Kind
Type
Requirement
lines
parameter
readonly LogStreamLine[]
required
source
parameter
readonly LogStreamEntry[]
required
index
parameter
number
required
maxLines
parameter
number
required
stamp
parameter
() => string
required
return
return value
LogStreamSeedResult
n/a
Name
lines
Kind
parameter
Type
readonly LogStreamLine[]
Requirement
required
Name
source
Kind
parameter
Type
readonly LogStreamEntry[]
Requirement
required
Name
index
Kind
parameter
Type
number
Requirement
required
Name
maxLines
Kind
parameter
Type
number
Requirement
required
Name
stamp
Kind
parameter
Type
() => string
Requirement
required
Name
return
Kind
return value
Type
LogStreamSeedResult
Requirement
n/a

Local duplicate of oracle `createLogLevelFilter`.

DeclarationView source
createLogStreamFilterts
declare function createLogStreamFilter(): LogStreamFilterMap;
Name
Kind
Type
Requirement
return
return value
LogStreamFilterMap
n/a
Name
return
Kind
return value
Type
LogStreamFilterMap
Requirement
n/a
DeclarationView source
LOG_STREAM_DEFAULT_FILTERSts
export declare const LOG_STREAM_DEFAULT_FILTERS: true;
DeclarationView source
LOG_STREAM_DEFAULT_INTERVAL_MSts
export declare const LOG_STREAM_DEFAULT_INTERVAL_MS: 1900;
DeclarationView source
LOG_STREAM_DEFAULT_MAX_LINESts
export declare const LOG_STREAM_DEFAULT_MAX_LINES: 60;
DeclarationView source
LOG_STREAM_DEFAULT_PAUSEDts
export declare const LOG_STREAM_DEFAULT_PAUSED: false;
DeclarationView source
LOG_STREAM_DEFAULT_PREFILLts
export declare const LOG_STREAM_DEFAULT_PREFILL: 8;
DeclarationView source
LOG_STREAM_LEVELSts
export declare const LOG_STREAM_LEVELS: readonly ["INFO", "WARN", "ERR", "OK", "DBG"];
DeclarationView source
LOG_STREAM_TICK_KEYts
export declare const LOG_STREAM_TICK_KEY: "log-stream.tick";
DeclarationView source
LogStreamCommandts
type LogStreamCommand = (CommandObject & {
readonly type: "SCROLL_TO_END";
}) | (CommandObject & {
readonly type: "PAUSED_CHANGE_REQUEST";
readonly paused: boolean;
}) | ScheduleCommand<LogStreamEvent> | CancelCommand;
DeclarationView source
LogStreamContextts
type LogStreamContext = {
readonly mode: BindingMode;
readonly seeded: boolean;
readonly lines: readonly LogStreamLine[];
readonly nextIndex: number;
readonly filters: LogStreamFilterMap;
};
Name
Kind
Type
Requirement
filters
property
LogStreamFilterMap
required
lines
property
readonly LogStreamLine[]
required
mode
property
BindingMode
required
nextIndex
property
number
required
seeded
property
boolean
required
Name
filters
Kind
property
Type
LogStreamFilterMap
Requirement
required
Name
lines
Kind
property
Type
readonly LogStreamLine[]
Requirement
required
Name
mode
Kind
property
Type
BindingMode
Requirement
required
Name
nextIndex
Kind
property
Type
number
Requirement
required
Name
seeded
Kind
property
Type
boolean
Requirement
required
DeclarationView source
LogStreamDiagnosticCodests
export declare const LogStreamDiagnosticCodes: readonly DiagnosticCatalogueEntry[];
DeclarationView source
LogStreamEntryts
type LogStreamEntry = {
readonly level: LogStreamLevel;
readonly message: string;
readonly ts?: string;
};
Name
Kind
Type
Requirement
level
property
LogStreamLevel
required
message
property
string
required
ts
property
string
optional
Name
level
Kind
property
Type
LogStreamLevel
Requirement
required
Name
message
Kind
property
Type
string
Requirement
required
Name
ts
Kind
property
Type
string
Requirement
optional
DeclarationView source
LogStreamEventts
type LogStreamEvent = {
readonly type: "START";
readonly stamps: readonly string[];
} | {
readonly type: "TICK";
readonly stamp: string;
} | {
readonly type: "TICK_DUE";
} | {
readonly type: "PAUSE";
} | {
readonly type: "RESUME";
} | {
readonly type: "FILTER_TOGGLE";
readonly level: LogStreamLevel;
};
DeclarationView source
LogStreamFilterMapts
type LogStreamFilterMap = { readonly [K in LogStreamLevel]: boolean; };
DeclarationView source
LogStreamInputts
type LogStreamInput = {
readonly source?: readonly LogStreamEntry[];
readonly intervalMs?: number;
readonly prefill?: number;
readonly maxLines?: number;
/** Chip UI enabled. When false, FILTER_TOGGLE is a no-op. */
readonly filters?: boolean;
/** S12 paused binding. Defined → controlled; omitted → uncontrolled false. */
readonly paused?: boolean;
};
Name
Kind
Type
Requirement
Description
filters
property
boolean
optional
Chip UI enabled. When false, FILTER_TOGGLE is a no-op.
intervalMs
property
number
optional
maxLines
property
number
optional
paused
property
boolean
optional
S12 paused binding. Defined → controlled; omitted → uncontrolled false.
prefill
property
number
optional
source
property
readonly LogStreamEntry[]
optional
Name
filters
Kind
property
Type
boolean
Requirement
optional
Description
Chip UI enabled. When false, FILTER_TOGGLE is a no-op.
Name
intervalMs
Kind
property
Type
number
Requirement
optional
Description
Name
maxLines
Kind
property
Type
number
Requirement
optional
Description
Name
paused
Kind
property
Type
boolean
Requirement
optional
Description
S12 paused binding. Defined → controlled; omitted → uncontrolled false.
Name
prefill
Kind
property
Type
number
Requirement
optional
Description
Name
source
Kind
property
Type
readonly LogStreamEntry[]
Requirement
optional
Description
DeclarationView source
LogStreamLevelts
type LogStreamLevel = (typeof LOG_STREAM_LEVELS)[number];
DeclarationView source
LogStreamLinets
type LogStreamLine = {
readonly level: LogStreamLevel;
readonly message: string;
readonly ts: string;
};
Name
Kind
Type
Requirement
level
property
LogStreamLevel
required
message
property
string
required
ts
property
string
required
Name
level
Kind
property
Type
LogStreamLevel
Requirement
required
Name
message
Kind
property
Type
string
Requirement
required
Name
ts
Kind
property
Type
string
Requirement
required
DeclarationView source
logStreamMachinets
export declare const logStreamMachine: LogStreamMachine;
DeclarationView source
LogStreamMachinets
type LogStreamMachine = Machine<LogStreamInput, LogStreamStateValue, LogStreamContext, LogStreamEvent, LogStreamCommand>;
DeclarationView source
logStreamReplaySequencets
export declare const logStreamReplaySequence: readonly LogStreamEvent[];
DeclarationView source
LogStreamSeedResultts
type LogStreamSeedResult = {
readonly lines: readonly LogStreamLine[];
readonly nextIndex: number;
};
Name
Kind
Type
Requirement
lines
property
readonly LogStreamLine[]
required
nextIndex
property
number
required
Name
lines
Kind
property
Type
readonly LogStreamLine[]
Requirement
required
Name
nextIndex
Kind
property
Type
number
Requirement
required
DeclarationView source
logStreamSelectorsts
export declare const logStreamSelectors: {
paused: (snapshot: LogStreamSnapshot) => boolean;
running: (snapshot: LogStreamSnapshot) => boolean;
lines: (snapshot: LogStreamSnapshot) => readonly LogStreamLine[];
nextIndex: (snapshot: LogStreamSnapshot) => number;
filters: (snapshot: LogStreamSnapshot) => LogStreamFilterMap;
visible: (snapshot: LogStreamSnapshot, filtersEnabled?: boolean) => LogStreamLine[];
mode: (snapshot: LogStreamSnapshot) => BindingMode;
};
Name
Kind
Type
Requirement
filters
property
(snapshot: LogStreamSnapshot) => LogStreamFilterMap
required
lines
property
(snapshot: LogStreamSnapshot) => readonly LogStreamLine[]
required
mode
property
(snapshot: LogStreamSnapshot) => BindingMode
required
nextIndex
property
(snapshot: LogStreamSnapshot) => number
required
paused
property
(snapshot: LogStreamSnapshot) => boolean
required
running
property
(snapshot: LogStreamSnapshot) => boolean
required
visible
property
(snapshot: LogStreamSnapshot, filtersEnabled?: boolean) => LogStreamLine[]
required
Name
filters
Kind
property
Type
(snapshot: LogStreamSnapshot) => LogStreamFilterMap
Requirement
required
Name
lines
Kind
property
Type
(snapshot: LogStreamSnapshot) => readonly LogStreamLine[]
Requirement
required
Name
mode
Kind
property
Type
(snapshot: LogStreamSnapshot) => BindingMode
Requirement
required
Name
nextIndex
Kind
property
Type
(snapshot: LogStreamSnapshot) => number
Requirement
required
Name
paused
Kind
property
Type
(snapshot: LogStreamSnapshot) => boolean
Requirement
required
Name
running
Kind
property
Type
(snapshot: LogStreamSnapshot) => boolean
Requirement
required
Name
visible
Kind
property
Type
(snapshot: LogStreamSnapshot, filtersEnabled?: boolean) => LogStreamLine[]
Requirement
required
DeclarationView source
LogStreamSnapshotts
type LogStreamSnapshot = Snapshot<LogStreamStateValue, LogStreamContext>;
DeclarationView source
LogStreamStateValuets
type LogStreamStateValue = "running" | "paused";

Local duplicate of oracle `seedLogLines` — stamp is required (no clock).

DeclarationView source
seedLogStreamLinests
declare function seedLogStreamLines(source: readonly LogStreamEntry[], prefill: number, maxLines: number, stamp: () => string): LogStreamSeedResult;
Name
Kind
Type
Requirement
source
parameter
readonly LogStreamEntry[]
required
prefill
parameter
number
required
maxLines
parameter
number
required
stamp
parameter
() => string
required
return
return value
LogStreamSeedResult
n/a
Name
source
Kind
parameter
Type
readonly LogStreamEntry[]
Requirement
required
Name
prefill
Kind
parameter
Type
number
Requirement
required
Name
maxLines
Kind
parameter
Type
number
Requirement
required
Name
stamp
Kind
parameter
Type
() => string
Requirement
required
Name
return
Kind
return value
Type
LogStreamSeedResult
Requirement
n/a

Local duplicate of oracle `toggleLogLevelFilter`.

DeclarationView source
toggleLogStreamFilterts
declare function toggleLogStreamFilter(active: LogStreamFilterMap, level: LogStreamLevel): LogStreamFilterMap;
Name
Kind
Type
Requirement
active
parameter
LogStreamFilterMap
required
level
parameter
LogStreamLevel
required
return
return value
LogStreamFilterMap
n/a
Name
active
Kind
parameter
Type
LogStreamFilterMap
Requirement
required
Name
level
Kind
parameter
Type
LogStreamLevel
Requirement
required
Name
return
Kind
return value
Type
LogStreamFilterMap
Requirement
n/a

Local duplicate of oracle `visibleLogLines`.

DeclarationView source
visibleLogStreamLinests
declare function visibleLogStreamLines(lines: readonly LogStreamLine[], active: LogStreamFilterMap): LogStreamLine[];
Name
Kind
Type
Requirement
lines
parameter
readonly LogStreamLine[]
required
active
parameter
LogStreamFilterMap
required
return
return value
LogStreamLine[]
n/a
Name
lines
Kind
parameter
Type
readonly LogStreamLine[]
Requirement
required
Name
active
Kind
parameter
Type
LogStreamFilterMap
Requirement
required
Name
return
Kind
return value
Type
LogStreamLine[]
Requirement
n/a