Skip to content

Documentation / @agentick/client / AgentickClient

Class: AgentickClient

Defined in: client/src/client.ts:749

AgentickClient - Multiplexed session client.

Connects to a Agentick server with a single SSE connection that can manage multiple session subscriptions.

Example

typescript
const client = createClient({
  baseUrl: 'https://api.example.com',
});

// Get session accessor (cold - no subscription)
const session = client.session('conv-123');

// Subscribe to receive events (hot)
session.subscribe();

// Listen for events
session.onEvent((event) => {
  console.log(event);
});

// Send a message
const handle = session.send({ messages: [{ role: 'user', content: [...] }] });
await handle.result;

// Or use ephemeral send (creates session, executes, closes)
const ephemeral = client.send({ messages: [{...}] });
await ephemeral.result;

Constructors

Constructor

new AgentickClient(config): AgentickClient

Defined in: client/src/client.ts:775

Parameters

config

AgentickClientConfig

Returns

AgentickClient

Accessors

state

Get Signature

get state(): ConnectionState

Defined in: client/src/client.ts:830

Current connection state

Returns

ConnectionState


streamingText

Get Signature

get streamingText(): StreamingTextState

Defined in: client/src/client.ts:1536

Current streaming text state

Returns

StreamingTextState

Methods

_publishToChannel()

_publishToChannel(sessionId, channelName, event): Promise<void>

Defined in: client/src/client.ts:1065

Internal

  • Called by SessionAccessor to publish to a channel

Parameters

sessionId

string

channelName

string

event

ChannelEvent

Returns

Promise<void>


_subscribeToChannel()

_subscribeToChannel(sessionId, channelName): Promise<void>

Defined in: client/src/client.ts:1101

Internal

  • Called by SessionAccessor to subscribe to a channel

Parameters

sessionId

string

channelName

string

Returns

Promise<void>


_subscribeToSession()

_subscribeToSession(sessionId): Promise<void>

Defined in: client/src/client.ts:991

Internal

  • Called by SessionAccessor

Parameters

sessionId

string

Returns

Promise<void>


_unsubscribeFromSession()

_unsubscribeFromSession(sessionId): Promise<void>

Defined in: client/src/client.ts:1031

Internal

  • Called by SessionAccessor

Parameters

sessionId

string

Returns

Promise<void>


abort()

abort(sessionId, reason?): Promise<void>

Defined in: client/src/client.ts:1276

Abort a session's current execution.

Parameters

sessionId

string

reason?

string

Returns

Promise<void>


clearStreamingText()

clearStreamingText(): void

Defined in: client/src/client.ts:1552

Clear the accumulated streaming text

Returns

void


closeSession()

closeSession(sessionId): Promise<void>

Defined in: client/src/client.ts:1323

Close a session.

Parameters

sessionId

string

Returns

Promise<void>


destroy()

destroy(): void

Defined in: client/src/client.ts:1725

Cleanup and close the client.

Returns

void


dispatch()

dispatch(sessionId, name, input): Promise<ContentBlock[]>

Defined in: client/src/client.ts:1358

Dispatch a tool by name. Requires a transport that supports dispatch (e.g. local transport).

Parameters

sessionId

string

name

string

input

Record<string, unknown>

Returns

Promise<ContentBlock[]>


getAuthHeaders()

getAuthHeaders(): Record<string, string>

Defined in: client/src/client.ts:1710

Get authorization headers for use with fetch. Useful for making authenticated requests to custom routes.

Returns

Record<string, string>

Example

typescript
// Make authenticated request to custom API
const response = await fetch("/api/custom", {
  headers: client.getAuthHeaders(),
});

getTransport()

getTransport(): ClientTransport | undefined

Defined in: client/src/client.ts:1752

Get the underlying transport (if using custom transport). Useful for accessing transport-specific features like leadership status.

Returns

ClientTransport | undefined


interrupt()

interrupt(sessionId, input?, reason?): Promise<ClientExecutionHandle>

Defined in: client/src/client.ts:1304

Abort current execution and start a new one with the given input. Sequential abort→send with no race.

Parameters

sessionId

string

input?

string | ContentBlock | ContentBlock[] | Message | Message[] | SendInput<Record<string, unknown>>

reason?

string

Returns

Promise<ClientExecutionHandle>


invoke()

invoke<T>(method, params?): Promise<T>

Defined in: client/src/client.ts:1607

Invoke a custom Gateway method. For session-scoped methods, use session.invoke() instead.

Type Parameters

T

T = unknown

Parameters

method

string

params?

Record<string, unknown> = {}

Returns

Promise<T>

Example

typescript
// Invoke a custom method
const result = await client.invoke("tasks:list", { status: "active" });

// Invoke with admin method
const stats = await client.invoke("admin:stats");

on()

on<T>(eventName, handler): () => void

Defined in: client/src/client.ts:1417

Ergonomic event subscription.

Type Parameters

T

T extends ClientEventName

Parameters

eventName

T

handler

ClientEventHandlerMap[T]

Returns

(): void

Returns

void


onConnectionChange()

onConnectionChange(handler): () => void

Defined in: client/src/client.ts:849

Subscribe to connection state changes.

Parameters

handler

(state) => void

Returns

(): void

Returns

void


onEvent()

onEvent(handler): () => void

Defined in: client/src/client.ts:1407

Subscribe to all stream events (from all sessions).

Parameters

handler

GlobalEventHandler

Returns

(): void

Returns

void


onStreamingText()

onStreamingText(handler): () => void

Defined in: client/src/client.ts:1543

Subscribe to streaming text state changes.

Parameters

handler

StreamingTextHandler

Returns

(): void

Returns

void


send()

send(input, options?): ClientExecutionHandle

Defined in: client/src/client.ts:1142

Send a message.

Parameters

input

Message input (message or messages)

string | ContentBlock | ContentBlock[] | Message | Message[] | SendInput<Record<string, unknown>>

options?

Options including optional sessionId

sessionId?

string

Returns

ClientExecutionHandle


session()

session(sessionId): SessionAccessor

Defined in: client/src/client.ts:972

Get a session accessor (cold - no subscription).

Call accessor.subscribe() to receive events.

Parameters

sessionId

string

Returns

SessionAccessor


stream()

stream<T>(method, params?): AsyncGenerator<T>

Defined in: client/src/client.ts:1643

Invoke a streaming method, returns async iterator. Yields values as they arrive from the server.

Type Parameters

T

T = unknown

Parameters

method

string

params?

Record<string, unknown> = {}

Returns

AsyncGenerator<T>

Example

typescript
// Stream task updates
for await (const change of client.stream("tasks:watch")) {
  console.log("Task changed:", change);
}

submitToolResult()

submitToolResult(sessionId, toolUseId, result): Promise<void>

Defined in: client/src/client.ts:1372

Submit a tool confirmation response.

Parameters

sessionId

string

toolUseId

string

result

ToolConfirmationResponse

Returns

Promise<void>


subscribe()

subscribe(sessionId): SessionAccessor

Defined in: client/src/client.ts:984

Subscribe to a session and get accessor (hot).

Parameters

sessionId

string

Returns

SessionAccessor

Released under the ISC License.