Skip to content

Documentation / @agentick/angular / ChatSessionService

Class: ChatSessionService

Defined in: angular/src/chat-session.service.ts:98

Angular service wrapping ChatSession with signals.

Exposes all ChatSessionState fields as Angular signals and all ChatSession actions as methods. Automatically syncs on every state change and cleans up on destroy.

Supports session switching via switchSession() — tears down the current session and creates a new one with the given sessionId, reusing the same underlying client connection.

Example

typescript
@Component({
  providers: [
    provideAgentick({ baseUrl: '/api/v2', token: myJwt }),
    provideChatSession({ renderMode: 'streaming' }),
  ],
  template: `
    @for (msg of chat.messages(); track msg.id) {
      <div>{{ msg.role }}: {{ msg.content }}</div>
    }
    <input #input />
    <button (click)="chat.submit(input.value); input.value = ''">Send</button>
  `,
})
export class ChatComponent {
  chat = inject(ChatSessionService);
}

Implements

  • OnDestroy

Constructors

Constructor

new ChatSessionService(): ChatSessionService

Defined in: angular/src/chat-session.service.ts:133

Returns

ChatSessionService

Properties

attachments

readonly attachments: WritableSignal&lt;readonly Attachment[]>

Defined in: angular/src/chat-session.service.ts:116


chatMode

readonly chatMode: WritableSignal<ChatMode>

Defined in: angular/src/chat-session.service.ts:109


error

readonly error: WritableSignal<{ message: string; name: string; } | null>

Defined in: angular/src/chat-session.service.ts:115


isConfirmingTool

readonly isConfirmingTool: Signal<boolean>

Defined in: angular/src/chat-session.service.ts:127


isExecuting

readonly isExecuting: WritableSignal<boolean>

Defined in: angular/src/chat-session.service.ts:113


isIdle

readonly isIdle: Signal<boolean>

Defined in: angular/src/chat-session.service.ts:125


isStreaming

readonly isStreaming: Signal<boolean>

Defined in: angular/src/chat-session.service.ts:126


lastSubmitted

readonly lastSubmitted: WritableSignal<string | null>

Defined in: angular/src/chat-session.service.ts:111


messages

readonly messages: WritableSignal&lt;readonly ChatMessage[]>

Defined in: angular/src/chat-session.service.ts:108


mode

readonly mode: WritableSignal<SteeringMode>

Defined in: angular/src/chat-session.service.ts:114


queued

readonly queued: WritableSignal&lt;readonly Message[]>

Defined in: angular/src/chat-session.service.ts:112


sessionId

readonly sessionId: WritableSignal<string | undefined>

Defined in: angular/src/chat-session.service.ts:119

The current session ID, or undefined if no session is connected.


toolConfirmation

readonly toolConfirmation: WritableSignal<ToolConfirmationState | null>

Defined in: angular/src/chat-session.service.ts:110

Methods

abort()

abort(reason?): void

Defined in: angular/src/chat-session.service.ts:192

Parameters

reason?

string

Returns

void


addAttachment()

addAttachment(input): Attachment

Defined in: angular/src/chat-session.service.ts:236

Parameters

input

AttachmentInput

Returns

Attachment


appendMessages()

appendMessages(messages): void

Defined in: angular/src/chat-session.service.ts:228

Append messages (e.g. initial load from DB, or external sources). Messages appear at the end of the list.

Parameters

messages

readonly ChatMessage[]

Returns

void


clearAttachments()

clearAttachments(): void

Defined in: angular/src/chat-session.service.ts:244

Returns

void


clearMessages()

clearMessages(): void

Defined in: angular/src/chat-session.service.ts:232

Returns

void


clearQueued()

clearQueued(): void

Defined in: angular/src/chat-session.service.ts:204

Returns

void


flush()

flush(): void

Defined in: angular/src/chat-session.service.ts:196

Returns

void


interrupt()

interrupt(text): Promise<ClientExecutionHandle>

Defined in: angular/src/chat-session.service.ts:188

Parameters

text

string

Returns

Promise<ClientExecutionHandle>


ngOnDestroy()

ngOnDestroy(): void

Defined in: angular/src/chat-session.service.ts:252

A callback method that performs custom clean-up, invoked immediately before a directive, pipe, or service instance is destroyed.

Returns

void

Implementation of

OnDestroy.ngOnDestroy


prependMessages()

prependMessages(messages): void

Defined in: angular/src/chat-session.service.ts:220

Prepend older messages (e.g. fetched from DB on scroll-back). Messages appear at the start of the list.

Parameters

messages

readonly ChatMessage[]

Returns

void


queue()

queue(text): void

Defined in: angular/src/chat-session.service.ts:184

Parameters

text

string

Returns

void


removeAttachment()

removeAttachment(id): void

Defined in: angular/src/chat-session.service.ts:240

Parameters

id

string

Returns

void


removeQueued()

removeQueued(index): void

Defined in: angular/src/chat-session.service.ts:200

Parameters

index

number

Returns

void


respondToConfirmation()

respondToConfirmation(response): void

Defined in: angular/src/chat-session.service.ts:212

Parameters

response

ToolConfirmationResponse

Returns

void


setMode()

setMode(mode): void

Defined in: angular/src/chat-session.service.ts:208

Parameters

mode

SteeringMode

Returns

void


steer()

steer(text): void

Defined in: angular/src/chat-session.service.ts:180

Parameters

text

string

Returns

void


submit()

submit(text): void

Defined in: angular/src/chat-session.service.ts:176

Parameters

text

string

Returns

void


switchSession()

switchSession(sessionId, initialMessages?): void

Defined in: angular/src/chat-session.service.ts:158

Switch to a different session. Tears down the current session, creates a new one with the given sessionId, and optionally pre-populates with initial messages.

Reuses the same underlying client connection (SSE transport).

Parameters

sessionId

string

— the new session to connect to

initialMessages?

readonly ChatMessage[]

— messages to populate the message log with

Returns

void

Released under the ISC License.