Skip to content

Documentation / @agentick/client / ChatSession

Class: ChatSession<TMode> ​

Defined in: client/src/chat-session.ts:28

Complete chat controller — composes MessageLog, ToolConfirmations, MessageSteering, and AttachmentManager into a single state snapshot.

Owns a single event subscription and fans out to all three event-driven primitives deterministically. chatMode is derived (not tracked) via ChatModeDeriver. AttachmentManager is pure client-side state (no events).

Generic over TMode for custom chat modes — defaults to "idle" | "streaming" | "confirming_tool".

Type Parameters ​

TMode ​

TMode extends string = ChatMode

Constructors ​

Constructor ​

new ChatSession<TMode>(client, options?): ChatSession<TMode>

Defined in: client/src/chat-session.ts:50

Parameters ​

client ​

AgentickClient

options? ​

ChatSessionOptions<TMode> = ...

Returns ​

ChatSession<TMode>

Accessors ​

attachments ​

Get Signature ​

get attachments(): AttachmentManager

Defined in: client/src/chat-session.ts:163

Returns ​

AttachmentManager


chatMode ​

Get Signature ​

get chatMode(): TMode

Defined in: client/src/chat-session.ts:135

Returns ​

TMode


error ​

Get Signature ​

get error(): { message: string; name: string; } | null

Defined in: client/src/chat-session.ts:159

Returns ​

{ message: string; name: string; } | null


isExecuting ​

Get Signature ​

get isExecuting(): boolean

Defined in: client/src/chat-session.ts:151

Returns ​

boolean


lastSubmitted ​

Get Signature ​

get lastSubmitted(): string | null

Defined in: client/src/chat-session.ts:143

Returns ​

string | null


messages ​

Get Signature ​

get messages(): readonly ChatMessage[]

Defined in: client/src/chat-session.ts:131

Returns ​

readonly ChatMessage[]


mode ​

Get Signature ​

get mode(): SteeringMode

Defined in: client/src/chat-session.ts:155

Returns ​

SteeringMode


queued ​

Get Signature ​

get queued(): readonly Message[]

Defined in: client/src/chat-session.ts:147

Returns ​

readonly Message[]


state ​

Get Signature ​

get state(): ChatSessionState<TMode>

Defined in: client/src/chat-session.ts:127

Returns ​

ChatSessionState<TMode>


toolConfirmation ​

Get Signature ​

get toolConfirmation(): ToolConfirmationState | null

Defined in: client/src/chat-session.ts:139

Returns ​

ToolConfirmationState | null

Methods ​

abort() ​

abort(reason?): void

Defined in: client/src/chat-session.ts:248

Parameters ​

reason? ​

string

Returns ​

void


appendMessages() ​

appendMessages(messages): void

Defined in: client/src/chat-session.ts:236

Append messages (e.g. initial load from DB, or external sources).

Parameters ​

messages ​

readonly ChatMessage[]

Returns ​

void


clearMessages() ​

clearMessages(): void

Defined in: client/src/chat-session.ts:241

Returns ​

void


clearQueued() ​

clearQueued(): void

Defined in: client/src/chat-session.ts:207

Returns ​

void


destroy() ​

destroy(): void

Defined in: client/src/chat-session.ts:259

Returns ​

void


flush() ​

flush(): void

Defined in: client/src/chat-session.ts:197

Returns ​

void


interrupt() ​

interrupt(text): Promise<ClientExecutionHandle>

Defined in: client/src/chat-session.ts:190

Parameters ​

text ​

string

Returns ​

Promise<ClientExecutionHandle>


onStateChange() ​

onStateChange(listener): () => void

Defined in: client/src/chat-session.ts:254

Parameters ​

listener ​

() => void

Returns ​

(): void

Returns ​

void


prependMessages() ​

prependMessages(messages): void

Defined in: client/src/chat-session.ts:228

Prepend older messages (e.g. fetched from DB on scroll-back). New messages appear at the start of the list; dedup counters are adjusted so streaming continues to work correctly.

Parameters ​

messages ​

readonly ChatMessage[]

Returns ​

void


queue() ​

queue(text): void

Defined in: client/src/chat-session.ts:185

Parameters ​

text ​

string

Returns ​

void


removeQueued() ​

removeQueued(index): void

Defined in: client/src/chat-session.ts:202

Parameters ​

index ​

number

Returns ​

void


respondToConfirmation() ​

respondToConfirmation(response): void

Defined in: client/src/chat-session.ts:217

Parameters ​

response ​

ToolConfirmationResponse

Returns ​

void


setMode() ​

setMode(mode): void

Defined in: client/src/chat-session.ts:212

Parameters ​

mode ​

SteeringMode

Returns ​

void


steer() ​

steer(text): void

Defined in: client/src/chat-session.ts:179

Parameters ​

text ​

string

Returns ​

void


submit() ​

submit(text): void

Defined in: client/src/chat-session.ts:169

Parameters ​

text ​

string

Returns ​

void

Released under the ISC License.