Chat State
chat/state
Section titled “chat/state”Classes
Section titled “Classes”ChatAbortController
Section titled “ChatAbortController”Defined in: chat/state.ts:154
Abort controller with external signal linking. Wraps an AbortController and optionally links an external AbortSignal so aborting either side cancels the operation.
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new ChatAbortController(
externalSignal?):ChatAbortController
Defined in: chat/state.ts:159
Parameters
Section titled “Parameters”externalSignal?
Section titled “externalSignal?”AbortSignal
Returns
Section titled “Returns”Accessors
Section titled “Accessors”isAborted
Section titled “isAborted”Get Signature
Section titled “Get Signature”get isAborted():
boolean
Defined in: chat/state.ts:183
Whether the operation has been aborted
Returns
Section titled “Returns”boolean
signal
Section titled “signal”Get Signature
Section titled “Get Signature”get signal():
AbortSignal
Defined in: chat/state.ts:178
The AbortSignal for this controller
Returns
Section titled “Returns”AbortSignal
Methods
Section titled “Methods”abort()
Section titled “abort()”abort(
reason?):void
Defined in: chat/state.ts:191
Abort the operation.
Parameters
Section titled “Parameters”reason?
Section titled “reason?”unknown
Optional abort reason
Returns
Section titled “Returns”void
dispose()
Section titled “dispose()”dispose():
void
Defined in: chat/state.ts:196
Clean up external signal listener to prevent memory leaks
Returns
Section titled “Returns”void
ChatReentrancyGuard
Section titled “ChatReentrancyGuard”Defined in: chat/state.ts:119
Guards against concurrent send() calls in a chat runtime. acquire() before work, release() after (use try/finally). Throws ChatError(REENTRANCY) if already acquired.
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new ChatReentrancyGuard():
ChatReentrancyGuard
Returns
Section titled “Returns”Accessors
Section titled “Accessors”isAcquired
Section titled “isAcquired”Get Signature
Section titled “Get Signature”get isAcquired():
boolean
Defined in: chat/state.ts:123
Whether the guard is currently held
Returns
Section titled “Returns”boolean
Methods
Section titled “Methods”acquire()
Section titled “acquire()”acquire():
void
Defined in: chat/state.ts:131
Acquire the guard. Throws if already acquired.
Returns
Section titled “Returns”void
Throws
Section titled “Throws”ChatError with code REENTRANCY
release()
Section titled “release()”release():
void
Defined in: chat/state.ts:142
Release the guard. Safe to call even if not acquired.
Returns
Section titled “Returns”void
StateMachine
Section titled “StateMachine”Defined in: chat/state.ts:21
Generic validated state machine. Enforces that every transition is declared in the transition map. Throws ChatError(INVALID_TRANSITION) on illegal moves.
Type Parameters
Section titled “Type Parameters”S extends string
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new StateMachine<
S>(initial,transitions):StateMachine<S>
Defined in: chat/state.ts:24
Parameters
Section titled “Parameters”initial
Section titled “initial”S
transitions
Section titled “transitions”Returns
Section titled “Returns”StateMachine<S>
Properties
Section titled “Properties”initial
Section titled “initial”
readonlyinitial:S
Defined in: chat/state.ts:25
transitions
Section titled “transitions”
readonlytransitions:TransitionMap<S>
Defined in: chat/state.ts:26
Accessors
Section titled “Accessors”current
Section titled “current”Get Signature
Section titled “Get Signature”get current():
S
Defined in: chat/state.ts:32
Current state
Returns
Section titled “Returns”S
Methods
Section titled “Methods”canTransition()
Section titled “canTransition()”canTransition(
next):boolean
Defined in: chat/state.ts:41
Check whether transitioning to next is allowed from current state
Parameters
Section titled “Parameters”S
Target state to check
Returns
Section titled “Returns”boolean
True if transition is allowed
reset()
Section titled “reset()”reset():
void
Defined in: chat/state.ts:61
Reset to initial state
Returns
Section titled “Returns”void
transition()
Section titled “transition()”transition(
next):void
Defined in: chat/state.ts:50
Transition to next state.
Parameters
Section titled “Parameters”S
Returns
Section titled “Returns”void
Throws
Section titled “Throws”ChatError(INVALID_TRANSITION) if the transition is not allowed
Type Aliases
Section titled “Type Aliases”TransitionMap
Section titled “TransitionMap”TransitionMap<
S> =Readonly<Record<S, readonlyS[]>>
Defined in: chat/state.ts:14
Map of allowed transitions: current state → set of valid next states
Type Parameters
Section titled “Type Parameters”S extends string
Variables
Section titled “Variables”MESSAGE_TRANSITIONS
Section titled “MESSAGE_TRANSITIONS”
constMESSAGE_TRANSITIONS:TransitionMap<MessageStatus>
Defined in: chat/state.ts:77
Allowed transitions for MessageStatus (pending → streaming → complete, etc.)
RUNTIME_TRANSITIONS
Section titled “RUNTIME_TRANSITIONS”
constRUNTIME_TRANSITIONS:TransitionMap<RuntimeStatus>
Defined in: chat/state.ts:69
Allowed transitions for RuntimeStatus (idle → streaming/disposed, etc.)
TOOL_CALL_TRANSITIONS
Section titled “TOOL_CALL_TRANSITIONS”
constTOOL_CALL_TRANSITIONS:TransitionMap<ToolCallStatus>
Defined in: chat/state.ts:86
Allowed transitions for ToolCallStatus (pending → running → complete, etc.)
Functions
Section titled “Functions”createMessageStateMachine()
Section titled “createMessageStateMachine()”createMessageStateMachine():
StateMachine<MessageStatus>
Defined in: chat/state.ts:103
Create a MessageStatus state machine starting at “pending”
Returns
Section titled “Returns”createRuntimeStateMachine()
Section titled “createRuntimeStateMachine()”createRuntimeStateMachine():
StateMachine<RuntimeStatus>
Defined in: chat/state.ts:98
Create a RuntimeStatus state machine starting at “idle”
Returns
Section titled “Returns”createToolCallStateMachine()
Section titled “createToolCallStateMachine()”createToolCallStateMachine():
StateMachine<ToolCallStatus>
Defined in: chat/state.ts:108
Create a ToolCallStatus state machine starting at “pending”