/** * Monotonic sequence number generator — shared by stream + buffer. * * Each chunk of output gets a unique, monotonically increasing seq number. * This lets clients resume a stream from a known position (IC-1 `lastSeq`). * * Owner: T-1.2 */ export type SeqNum = number; // safe JS integer, starts at 1 /** * Per-session sequence counter. * Create one instance per session; share between the buffer writer and the * WebSocket broadcaster. */ export class SequenceCounter { private current: SeqNum = 0; /** Increment and return the next seq number. */ next(): SeqNum { this.current += 1; return this.current; } /** Current value without incrementing. */ peek(): SeqNum { return this.current; } /** Reset (e.g. after session restart). */ reset(): void { this.current = 0; } }