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:174

Returns

AttachmentManager


chatMode

Get Signature

get chatMode(): TMode

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

Returns

TMode


error

Get Signature

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

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

Returns

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


isExecuting

Get Signature

get isExecuting(): boolean

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

Returns

boolean


lastSubmitted

Get Signature

get lastSubmitted(): string | null

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

Returns

string | null


messages

Get Signature

get messages(): readonly ChatMessage[]

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

Returns

readonly ChatMessage[]


mode

Get Signature

get mode(): SteeringMode

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

Returns

SteeringMode


queued

Get Signature

get queued(): readonly Message[]

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

Returns

readonly Message[]


state

Get Signature

get state(): ChatSessionState<TMode>

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

Returns

ChatSessionState<TMode>


toolConfirmation

Get Signature

get toolConfirmation(): ToolConfirmationState | null

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

Returns

ToolConfirmationState | null

Methods

abort()

abort(reason?): void

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

Parameters

reason?

string

Returns

void


appendMessages()

appendMessages(messages): void

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

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:252

Returns

void


clearQueued()

clearQueued(): void

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

Returns

void


destroy()

destroy(): void

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

Returns

void


flush()

flush(): void

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

Returns

void


interrupt()

interrupt(text): Promise<ClientExecutionHandle>

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

Parameters

text

string

Returns

Promise<ClientExecutionHandle>


onStateChange()

onStateChange(listener): () => void

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

Parameters

listener

() => void

Returns

(): void

Returns

void


prependMessages()

prependMessages(messages): void

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

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:196

Parameters

text

string

Returns

void


removeQueued()

removeQueued(index): void

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

Parameters

index

number

Returns

void


respondToConfirmation()

respondToConfirmation(response): void

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

Parameters

response

ToolConfirmationResponse

Returns

void


setMode()

setMode(mode): void

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

Parameters

mode

SteeringMode

Returns

void


steer()

steer(text): void

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

Parameters

text

string

Returns

void


submit()

submit(text): void

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

Parameters

text

string

Returns

void

Released under the ISC License.