Skip to content
AgentsKit

@agentskit/core — Interfaces

API interfaces for @agentskit/core.

#Interface: ActivateSkillsResult

Defined in: packages/core/src/agent-loop.ts:30

#Properties

#skillTools

skillTools: ToolDefinition<Record<string, unknown>>[]

Defined in: packages/core/src/agent-loop.ts:32


#systemPrompt

systemPrompt: string | undefined

Defined in: packages/core/src/agent-loop.ts:31


#Interface: AdapterCapabilities

Defined in: packages/core/src/types/adapter.ts:32

Hints about what an adapter supports. Every field is optional; an adapter may omit the whole capabilities object, and consumers should treat omission as 'unknown — assume the feature works and handle errors if it doesn't'.

This is an additive extension to the Adapter contract (ADR 0001) — adapters without capabilities remain fully compliant. Consumers that care (router / ensemble adapters, UI that hides the tool toggle when the provider can't use tools) can read the hints.

#Properties

#extensions?

optional extensions?: Record<string, unknown>

Defined in: packages/core/src/types/adapter.ts:46

Anything else — e.g. provider-specific hints.


#multiModal?

optional multiModal?: boolean

Defined in: packages/core/src/types/adapter.ts:40

Accepts image inputs in the message list?


#reasoning?

optional reasoning?: boolean

Defined in: packages/core/src/types/adapter.ts:38

Does it emit a separate reasoning/thinking stream (o1/o3 style)?


#streaming?

optional streaming?: boolean

Defined in: packages/core/src/types/adapter.ts:34

Does the adapter stream responses natively?


#structuredOutput?

optional structuredOutput?: boolean

Defined in: packages/core/src/types/adapter.ts:42

Supports confirmations / structured-output primitives?


#tools?

optional tools?: boolean

Defined in: packages/core/src/types/adapter.ts:36

Does it support tool calling (function calling)?


#usage?

optional usage?: boolean

Defined in: packages/core/src/types/adapter.ts:44

Emits token/usage data in chunk metadata?


#Interface: AdapterContext

Defined in: packages/core/src/types/adapter.ts:6

#Properties

#maxTokens?

optional maxTokens?: number

Defined in: packages/core/src/types/adapter.ts:9


#metadata?

optional metadata?: Record<string, unknown>

Defined in: packages/core/src/types/adapter.ts:11


#systemPrompt?

optional systemPrompt?: string

Defined in: packages/core/src/types/adapter.ts:7


#temperature?

optional temperature?: number

Defined in: packages/core/src/types/adapter.ts:8


#tools?

optional tools?: ToolDefinition<Record<string, unknown>>[]

Defined in: packages/core/src/types/adapter.ts:10


#Interface: AdapterRequest

Defined in: packages/core/src/types/adapter.ts:14

#Properties

#context?

optional context?: AdapterContext

Defined in: packages/core/src/types/adapter.ts:16


#correlation?

optional correlation?: AgentEventContext

Defined in: packages/core/src/types/adapter.ts:18

Optional identity propagated to adapters without coupling them to a runtime.


#messages

messages: Message[]

Defined in: packages/core/src/types/adapter.ts:15


#Interface: AgentEventContext

Defined in: packages/core/src/types/agent.ts:6

Optional identity envelope for correlating an event across AgentsKit boundaries. operationId is the stable cross-system identity; the other fields preserve local lifecycle identities without collapsing their meaning.

#Properties

#actionId?

readonly optional actionId?: string

Defined in: packages/core/src/types/agent.ts:11


#operationId

readonly operationId: string

Defined in: packages/core/src/types/agent.ts:7


#runId?

readonly optional runId?: string

Defined in: packages/core/src/types/agent.ts:8


#sessionId?

readonly optional sessionId?: string

Defined in: packages/core/src/types/agent.ts:9


#traceId?

readonly optional traceId?: string

Defined in: packages/core/src/types/agent.ts:12


#turnId?

readonly optional turnId?: string

Defined in: packages/core/src/types/agent.ts:10


#Interface: ArgsValidationError

Defined in: packages/core/src/types/tool.ts:32

#Properties

#message

message: string

Defined in: packages/core/src/types/tool.ts:35


#path

path: string

Defined in: packages/core/src/types/tool.ts:34

JSON pointer / dotted path to the offending field, or '' for root.


#Interface: ArgsValidationResult

Defined in: packages/core/src/types/tool.ts:38

#Properties

#errors?

optional errors?: ArgsValidationError[]

Defined in: packages/core/src/types/tool.ts:40


#message?

optional message?: string

Defined in: packages/core/src/types/tool.ts:42

Optional pre-built human summary; used verbatim in the thrown error.


#valid

valid: boolean

Defined in: packages/core/src/types/tool.ts:39


#Interface: AudioPart

Defined in: packages/core/src/types/content.ts:23

#Properties

#durationSec?

optional durationSec?: number

Defined in: packages/core/src/types/content.ts:28

Duration in seconds, if known.


#mimeType?

optional mimeType?: string

Defined in: packages/core/src/types/content.ts:26


#source

source: string

Defined in: packages/core/src/types/content.ts:25


#type

type: "audio"

Defined in: packages/core/src/types/content.ts:24


#Interface: ChatConfig

Defined in: packages/core/src/types/chat.ts:11

#Properties

#adapter

adapter: AdapterFactory

Defined in: packages/core/src/types/chat.ts:12


#authorizeToolCall?

optional authorizeToolCall?: ToolAuthorizer

Defined in: packages/core/src/types/chat.ts:33


#correlation?

optional correlation?: AgentEventContext

Defined in: packages/core/src/types/chat.ts:14

Optional identity propagated to adapter requests and runtime events.


#initialMessages?

optional initialMessages?: Message[]

Defined in: packages/core/src/types/chat.ts:22


#maxTokens?

optional maxTokens?: number

Defined in: packages/core/src/types/chat.ts:17


#maxToolIterations?

optional maxToolIterations?: number

Defined in: packages/core/src/types/chat.ts:29

Maximum number of LLM ↔ tool feedback turns per send(). After a tool call, the controller feeds the result back to the model so it can continue reasoning. This caps that loop to prevent runaway cost if a model keeps requesting tools. Default: 5. Set to 1 to disable.


#memory?

optional memory?: ChatMemory

Defined in: packages/core/src/types/chat.ts:20


#observers?

optional observers?: Observer[]

Defined in: packages/core/src/types/chat.ts:34


#onError?

optional onError?: (error) => void

Defined in: packages/core/src/types/chat.ts:31

#Parameters

error

Error

#Returns

void


#onMessage?

optional onMessage?: (message) => void

Defined in: packages/core/src/types/chat.ts:30

#Parameters

message

Message

#Returns

void


#onToolCall?

optional onToolCall?: (toolCall, context) => MaybePromise<void>

Defined in: packages/core/src/types/chat.ts:32

#Parameters

toolCall

ToolCall

context

ToolCallHandlerContext

#Returns

MaybePromise<void>


#retriever?

optional retriever?: Retriever

Defined in: packages/core/src/types/chat.ts:21


#skills?

optional skills?: SkillDefinition[]

Defined in: packages/core/src/types/chat.ts:19


#systemPrompt?

optional systemPrompt?: string

Defined in: packages/core/src/types/chat.ts:15


#temperature?

optional temperature?: number

Defined in: packages/core/src/types/chat.ts:16


#tools?

optional tools?: ToolDefinition<Record<string, unknown>>[]

Defined in: packages/core/src/types/chat.ts:18


#validateArgs?

optional validateArgs?: ArgsValidator

Defined in: packages/core/src/types/chat.ts:42

Opt-in runtime validator for tool-call arguments (ADR-0008). When set, args produced by the model are checked against each tool's JSON Schema before execution; mismatches raise AK_TOOL_INVALID_INPUT. Omit for the default passthrough behaviour. Use createAjvValidator() from @agentskit/tools/validation.


#Interface: ChatController

Defined in: packages/core/src/types/chat.ts:66

#Properties

#approve

approve: (toolCallId) => Promise<void>

Defined in: packages/core/src/types/chat.ts:89

#Parameters

toolCallId

string

#Returns

Promise<void>


#clear

clear: () => Promise<void>

Defined in: packages/core/src/types/chat.ts:86

#Returns

Promise<void>


#deny

deny: (toolCallId, reason?) => Promise<void>

Defined in: packages/core/src/types/chat.ts:90

#Parameters

toolCallId

string

reason?

string

#Returns

Promise<void>


#edit

edit: (messageId, newContent, opts?) => Promise<void>

Defined in: packages/core/src/types/chat.ts:77

Edit a message by id. For user messages, truncates all subsequent turns and regenerates (unless opts.regenerate === false). For assistant messages, updates the content in place.

#Parameters

messageId

string

newContent

string

opts?

EditOptions

#Returns

Promise<void>


#getState

getState: () => ChatState

Defined in: packages/core/src/types/chat.ts:67

#Returns

ChatState


#proposeToolCall

proposeToolCall: (proposal) => Promise<ToolCall>

Defined in: packages/core/src/types/chat.ts:88

#Parameters

proposal

Pick<ToolCall, "id" | "name" | "args">

#Returns

Promise<ToolCall>


#regenerate

regenerate: (messageId?) => Promise<void>

Defined in: packages/core/src/types/chat.ts:83

Regenerate the assistant response. If messageId names an assistant message, that one is replaced. Otherwise regenerates the last assistant turn (same as retry()).

#Parameters

messageId?

string

#Returns

Promise<void>


#retry

retry: () => Promise<void>

Defined in: packages/core/src/types/chat.ts:71

#Returns

Promise<void>


#send

send: (text) => Promise<void>

Defined in: packages/core/src/types/chat.ts:69

#Parameters

text

string

#Returns

Promise<void>


#setInput

setInput: (value) => void

Defined in: packages/core/src/types/chat.ts:84

#Parameters

value

string

#Returns

void


#setMessages

setMessages: (messages) => void

Defined in: packages/core/src/types/chat.ts:85

#Parameters

messages

Message[]

#Returns

void


#stop

stop: () => void

Defined in: packages/core/src/types/chat.ts:70

#Returns

void


#subscribe

subscribe: (listener) => () => void

Defined in: packages/core/src/types/chat.ts:68

#Parameters

listener

() => void

#Returns

() => void


#updateConfig

updateConfig: (config) => void

Defined in: packages/core/src/types/chat.ts:87

#Parameters

config

Partial<ChatConfig>

#Returns

void


#Interface: ChatMemory

Defined in: packages/core/src/types/memory.ts:5

#Properties

#clear?

optional clear?: (options?) => MaybePromise<void>

Defined in: packages/core/src/types/memory.ts:10

#Parameters

options?

MemoryOperationOptions

#Returns

MaybePromise<void>


#load

load: (options?) => MaybePromise<Message[]>

Defined in: packages/core/src/types/memory.ts:8

#Parameters

options?

MemoryOperationOptions

#Returns

MaybePromise<Message[]>


#region?

optional region?: DataRegion

Defined in: packages/core/src/types/memory.ts:7

Data-residency region for this memory backend, when known.


#save

save: (messages, options?) => MaybePromise<void>

Defined in: packages/core/src/types/memory.ts:9

#Parameters

messages

Message[]

options?

MemoryOperationOptions

#Returns

MaybePromise<void>


#Interface: ChatReturn

Defined in: packages/core/src/types/chat.ts:93

#Extends

#Properties

#approve

approve: (toolCallId) => Promise<void>

Defined in: packages/core/src/types/chat.ts:102

#Parameters

toolCallId

string

#Returns

Promise<void>


#clear

clear: () => Promise<void>

Defined in: packages/core/src/types/chat.ts:100

#Returns

Promise<void>


#deny

deny: (toolCallId, reason?) => Promise<void>

Defined in: packages/core/src/types/chat.ts:103

#Parameters

toolCallId

string

reason?

string

#Returns

Promise<void>


#edit

edit: (messageId, newContent, opts?) => Promise<void>

Defined in: packages/core/src/types/chat.ts:97

#Parameters

messageId

string

newContent

string

opts?

EditOptions

#Returns

Promise<void>


#error

error: Error | null

Defined in: packages/core/src/types/chat.ts:49

#Inherited from

ChatState.error


#input

input: string

Defined in: packages/core/src/types/chat.ts:48

#Inherited from

ChatState.input


#messages

messages: Message[]

Defined in: packages/core/src/types/chat.ts:46

#Inherited from

ChatState.messages


#proposeToolCall

proposeToolCall: (proposal) => Promise<ToolCall>

Defined in: packages/core/src/types/chat.ts:101

#Parameters

proposal

Pick<ToolCall, "id" | "name" | "args">

#Returns

Promise<ToolCall>


#regenerate

regenerate: (messageId?) => Promise<void>

Defined in: packages/core/src/types/chat.ts:98

#Parameters

messageId?

string

#Returns

Promise<void>


#retry

retry: () => Promise<void>

Defined in: packages/core/src/types/chat.ts:96

#Returns

Promise<void>


#send

send: (text) => Promise<void>

Defined in: packages/core/src/types/chat.ts:94

#Parameters

text

string

#Returns

Promise<void>


#setInput

setInput: (value) => void

Defined in: packages/core/src/types/chat.ts:99

#Parameters

value

string

#Returns

void


#status

status: StreamStatus

Defined in: packages/core/src/types/chat.ts:47

#Inherited from

ChatState.status


#stop

stop: () => void

Defined in: packages/core/src/types/chat.ts:95

#Returns

void


#usage

usage: TokenUsage

Defined in: packages/core/src/types/chat.ts:55

Token usage accumulated across every LLM call in this chat session. Populated when the adapter surfaces usage (OpenAI, Anthropic, Gemini, Ollama all do). Zeroed by clear().

#Inherited from

ChatState.usage


#Interface: ChatState

Defined in: packages/core/src/types/chat.ts:45

#Extended by

#Properties

#error

error: Error | null

Defined in: packages/core/src/types/chat.ts:49


#input

input: string

Defined in: packages/core/src/types/chat.ts:48


#messages

messages: Message[]

Defined in: packages/core/src/types/chat.ts:46


#status

status: StreamStatus

Defined in: packages/core/src/types/chat.ts:47


#usage

usage: TokenUsage

Defined in: packages/core/src/types/chat.ts:55

Token usage accumulated across every LLM call in this chat session. Populated when the adapter surfaces usage (OpenAI, Anthropic, Gemini, Ollama all do). Zeroed by clear().


#Interface: CompileBudgetInput

Defined in: packages/core/src/budget.ts:7

#Properties

#budget

budget: number

Defined in: packages/core/src/budget.ts:9

Hard upper bound (model context limit - reserveForOutput).


#counter?

optional counter?: TokenCounter

Defined in: packages/core/src/budget.ts:14

Token counter. Defaults to approximateCounter (chars/4 heuristic).


#keepRecent?

optional keepRecent?: number

Defined in: packages/core/src/budget.ts:25

Minimum number of recent messages to keep regardless of strategy. Protects against dropping the turn that actually matters. Default 1.


#messages

messages: Message[]

Defined in: packages/core/src/budget.ts:10


#reserveForOutput?

optional reserveForOutput?: number

Defined in: packages/core/src/budget.ts:20

Tokens reserved for the model's output. Subtracted from budget.


#strategy?

optional strategy?: BudgetStrategy

Defined in: packages/core/src/budget.ts:16

Trimming strategy. Default 'drop-oldest'.


#summarizer?

optional summarizer?: (dropped) => Message | Promise<Message>

Defined in: packages/core/src/budget.ts:18

Required when strategy === 'summarize'.

#Parameters

dropped

Message[]

#Returns

Message | Promise<Message>


#systemPrompt?

optional systemPrompt?: string

Defined in: packages/core/src/budget.ts:11


#tools?

optional tools?: ToolDefinition<Record<string, unknown>>[]

Defined in: packages/core/src/budget.ts:12


#Interface: CompileBudgetResult

Defined in: packages/core/src/budget.ts:28

#Properties

#dropped

dropped: Message[]

Defined in: packages/core/src/budget.ts:38


#fits

fits: boolean

Defined in: packages/core/src/budget.ts:39


#messages

messages: Message[]

Defined in: packages/core/src/budget.ts:29


#strategy

strategy: BudgetStrategy

Defined in: packages/core/src/budget.ts:40


#systemPrompt?

optional systemPrompt?: string

Defined in: packages/core/src/budget.ts:30


#tokens

tokens: object

Defined in: packages/core/src/budget.ts:31

#budget

budget: number

#messages

messages: number

#system

system: number

#tools

tools: number

#total

total: number


#Interface: ConsumeStreamHandlers

Defined in: packages/core/src/primitives.ts:255

#Properties

#onDone

onDone: (accumulatedText) => void

Defined in: packages/core/src/primitives.ts:262

#Parameters

accumulatedText

string

#Returns

void


#onError?

optional onError?: (error) => void

Defined in: packages/core/src/primitives.ts:261

#Parameters

error

Error

#Returns

void


#onReasoning?

optional onReasoning?: (accumulated) => void

Defined in: packages/core/src/primitives.ts:257

#Parameters

accumulated

string

#Returns

void


#onText?

optional onText?: (accumulated) => void

Defined in: packages/core/src/primitives.ts:256

#Parameters

accumulated

string

#Returns

void


#onToolCall?

optional onToolCall?: (chunk) => void | Promise<void>

Defined in: packages/core/src/primitives.ts:258

#Parameters

chunk

StreamChunk

#Returns

void | Promise<void>


#onToolResult?

optional onToolResult?: (content) => void

Defined in: packages/core/src/primitives.ts:259

#Parameters

content

string

#Returns

void


#onUsage?

optional onUsage?: (usage) => void

Defined in: packages/core/src/primitives.ts:260

#Parameters

usage

TokenUsage

#Returns

void


#Interface: DefineToolConfig<TSchema>

Defined in: packages/core/src/types/tool.ts:123

Config for defineTool: schema is narrowed to a const type for inference.

#Type Parameters

#TSchema

TSchema extends JSONSchema7

#Properties

#category?

optional category?: string

Defined in: packages/core/src/types/tool.ts:135


#description?

optional description?: string

Defined in: packages/core/src/types/tool.ts:125


#dispose?

optional dispose?: () => MaybePromise<void>

Defined in: packages/core/src/types/tool.ts:133

#Returns

MaybePromise<void>


#execute?

optional execute?: (args, context) => unknown

Defined in: packages/core/src/types/tool.ts:128

#Parameters

args

InferSchemaType<TSchema>

context

ToolExecutionContext

#Returns

unknown


#init?

optional init?: () => MaybePromise<void>

Defined in: packages/core/src/types/tool.ts:132

#Returns

MaybePromise<void>


#name

name: string

Defined in: packages/core/src/types/tool.ts:124


#requiresConfirmation?

optional requiresConfirmation?: boolean

Defined in: packages/core/src/types/tool.ts:127


#schema?

optional schema?: TSchema

Defined in: packages/core/src/types/tool.ts:126


#tags?

optional tags?: string[]

Defined in: packages/core/src/types/tool.ts:134


#Interface: EditOptions

Defined in: packages/core/src/types/chat.ts:58

#Properties

#regenerate?

optional regenerate?: boolean

Defined in: packages/core/src/types/chat.ts:63

When editing a user message, also regenerate the assistant response that followed it (truncating any later turns). Default: true.


#Interface: EvalResult

Defined in: packages/core/src/types/eval.ts:7

#Properties

#accuracy

accuracy: number

Defined in: packages/core/src/types/eval.ts:11


#failed

failed: number

Defined in: packages/core/src/types/eval.ts:10


#passed

passed: number

Defined in: packages/core/src/types/eval.ts:9


#results

results: object[]

Defined in: packages/core/src/types/eval.ts:12

#error?

optional error?: string

#input

input: string

#latencyMs

latencyMs: number

#output

output: string

#passed

passed: boolean

#tokenUsage?

optional tokenUsage?: object

tokenUsage.completion

completion: number

tokenUsage.prompt

prompt: number


#totalCases

totalCases: number

Defined in: packages/core/src/types/eval.ts:8


#Interface: EvalSuite

Defined in: packages/core/src/types/eval.ts:22

#Properties

#cases

cases: EvalTestCase[]

Defined in: packages/core/src/types/eval.ts:24


#name

name: string

Defined in: packages/core/src/types/eval.ts:23


#Interface: EvalTestCase

Defined in: packages/core/src/types/eval.ts:1

#Properties

#expected

expected: string | ((result) => boolean)

Defined in: packages/core/src/types/eval.ts:3


#input

input: string

Defined in: packages/core/src/types/eval.ts:2


#metadata?

optional metadata?: Record<string, unknown>

Defined in: packages/core/src/types/eval.ts:4


#Interface: ExecuteSafeToolOptions

Defined in: packages/core/src/agent-loop.ts:67

#Properties

#authorize?

optional authorize?: ToolAuthorizer

Defined in: packages/core/src/agent-loop.ts:77


#context

context: ToolExecutionContext

Defined in: packages/core/src/agent-loop.ts:70


#correlation?

optional correlation?: AgentEventContext

Defined in: packages/core/src/agent-loop.ts:78


#emitter

emitter: object

Defined in: packages/core/src/agent-loop.ts:71

#addObserver()

addObserver(observer): () => void

Parameters
observer

Observer

Returns

() => void

#emit()

emit(event): void

Parameters
event

AgentEvent

Returns

void


#lifecycle

lifecycle: object

Defined in: packages/core/src/agent-loop.ts:72

#disposeAll()

disposeAll(): Promise<void>

Returns

Promise<void>

#init()

init(tool): Promise<void>

Parameters
tool

ToolDefinition

Returns

Promise<void>


#onConfirm?

optional onConfirm?: (toolCall) => MaybePromise<boolean>

Defined in: packages/core/src/agent-loop.ts:74

#Parameters

toolCall

ToolCall

#Returns

MaybePromise<boolean>


#onPartial?

optional onPartial?: (result) => void

Defined in: packages/core/src/agent-loop.ts:73

#Parameters

result

string

#Returns

void


#tool

tool: ToolDefinition<Record<string, unknown>> | undefined

Defined in: packages/core/src/agent-loop.ts:68


#toolCall

toolCall: ToolCall

Defined in: packages/core/src/agent-loop.ts:69


#validate?

optional validate?: ArgsValidator

Defined in: packages/core/src/agent-loop.ts:76

Opt-in arg validation against tool.schema (ADR-0008).


#Interface: FilePart

Defined in: packages/core/src/types/content.ts:38

#Properties

#filename?

optional filename?: string

Defined in: packages/core/src/types/content.ts:43

Original filename, when available.


#mimeType?

optional mimeType?: string

Defined in: packages/core/src/types/content.ts:41


#source

source: string

Defined in: packages/core/src/types/content.ts:40


#type

type: "file"

Defined in: packages/core/src/types/content.ts:39


#Interface: ImagePart

Defined in: packages/core/src/types/content.ts:14

#Properties

#detail?

optional detail?: "low" | "high" | "auto"

Defined in: packages/core/src/types/content.ts:20

Provider-neutral hint, e.g. 'low' / 'high'.


#mimeType?

optional mimeType?: string

Defined in: packages/core/src/types/content.ts:18


#source

source: string

Defined in: packages/core/src/types/content.ts:17

Data URL, http(s) URL, or provider-hosted reference id.


#type

type: "image"

Defined in: packages/core/src/types/content.ts:15


#Interface: MemoryRecord

Defined in: packages/core/src/types/message.ts:25

#Properties

#messages

messages: Omit<Message, "createdAt"> & object[]

Defined in: packages/core/src/types/message.ts:27


#version

version: 1

Defined in: packages/core/src/types/message.ts:26


#Interface: Message

Defined in: packages/core/src/types/message.ts:7

#Properties

#content

content: string

Defined in: packages/core/src/types/message.ts:11

Text projection of the message. Always populated, even for multi-modal.


#createdAt

createdAt: Date

Defined in: packages/core/src/types/message.ts:22


#id

id: string

Defined in: packages/core/src/types/message.ts:8


#metadata?

optional metadata?: Record<string, unknown>

Defined in: packages/core/src/types/message.ts:21


#parts?

optional parts?: ContentPart[]

Defined in: packages/core/src/types/message.ts:17

Multi-modal parts. When provided, content is a text projection of these parts (see partsToText). Adapters that support the relevant modality should prefer parts over content.


#role

role: MessageRole

Defined in: packages/core/src/types/message.ts:9


#status

status: MessageStatus

Defined in: packages/core/src/types/message.ts:18


#toolCallId?

optional toolCallId?: string

Defined in: packages/core/src/types/message.ts:20


#toolCalls?

optional toolCalls?: ToolCall[]

Defined in: packages/core/src/types/message.ts:19


#Interface: Observer

Defined in: packages/core/src/types/agent.ts:38

#Properties

#name

name: string

Defined in: packages/core/src/types/agent.ts:39


#on

on: (event) => void | Promise<void>

Defined in: packages/core/src/types/agent.ts:40

#Parameters

event

AgentEvent

#Returns

void | Promise<void>


#Interface: ParsedToolArgs

Defined in: packages/core/src/primitives.ts:98

#Properties

#args

args: Record<string, unknown>

Defined in: packages/core/src/primitives.ts:99


#valid

valid: boolean

Defined in: packages/core/src/primitives.ts:100


#Interface: ProgressiveArgParser

Defined in: packages/core/src/progressive.ts:15

#Properties

#buffer

readonly buffer: string

Defined in: packages/core/src/progressive.ts:25

Accumulated raw buffer.


#end

end: () => ProgressiveFieldEvent[]

Defined in: packages/core/src/progressive.ts:19

Mark the stream finished — validates the object closed cleanly. Returns any final events.

#Returns

ProgressiveFieldEvent[]


#events

readonly events: readonly ProgressiveFieldEvent[]

Defined in: packages/core/src/progressive.ts:21

All events seen so far, in order.


#push

push: (chunk) => ProgressiveFieldEvent[]

Defined in: packages/core/src/progressive.ts:17

Append a new chunk of JSON text. Emits onField for each top-level field that completes.

#Parameters

chunk

string

#Returns

ProgressiveFieldEvent[]


#value

readonly value: Record<string, unknown>

Defined in: packages/core/src/progressive.ts:23

Current parsed partial object (fields completed so far).


#Interface: ProgressiveExecOptions

Defined in: packages/core/src/progressive.ts:204

#Properties

#onField?

optional onField?: (event) => void

Defined in: packages/core/src/progressive.ts:208

Called for each field event, including those after execution starts.

#Parameters

event

ProgressiveFieldEvent

#Returns

void


#triggerFields?

optional triggerFields?: string[]

Defined in: packages/core/src/progressive.ts:206

Start executing after these fields have been received. Default: first field.


#Interface: ProgressiveExecResult

Defined in: packages/core/src/progressive.ts:211

#Properties

#execution

execution: Promise<unknown>

Defined in: packages/core/src/progressive.ts:215

Resolves with the tool's return value.


#fields

fields: ProgressiveFieldEvent[]

Defined in: packages/core/src/progressive.ts:212


#finalArgs

finalArgs: Record<string, unknown>

Defined in: packages/core/src/progressive.ts:213


#Interface: ProgressiveFieldEvent

Defined in: packages/core/src/progressive.ts:4

#Properties

#field

field: string

Defined in: packages/core/src/progressive.ts:6

Top-level field name whose value just finished being streamed.


#offset

offset: number

Defined in: packages/core/src/progressive.ts:12

Byte offset in the accumulated buffer where this field ended.


#raw

raw: string

Defined in: packages/core/src/progressive.ts:10

Raw JSON text for that field.


#value

value: unknown

Defined in: packages/core/src/progressive.ts:8

Parsed value (string / number / boolean / array / object / null).


#Interface: RetrievedDocument

Defined in: packages/core/src/types/retrieval.ts:4

#Properties

#content

content: string

Defined in: packages/core/src/types/retrieval.ts:6


#id

id: string

Defined in: packages/core/src/types/retrieval.ts:5


#metadata?

optional metadata?: Record<string, unknown>

Defined in: packages/core/src/types/retrieval.ts:9


#score?

optional score?: number

Defined in: packages/core/src/types/retrieval.ts:8


#source?

optional source?: string

Defined in: packages/core/src/types/retrieval.ts:7


#Interface: Retriever

Defined in: packages/core/src/types/retrieval.ts:17

#Properties

#retrieve

retrieve: (request) => MaybePromise<RetrievedDocument[]>

Defined in: packages/core/src/types/retrieval.ts:18

#Parameters

request

RetrieverRequest

#Returns

MaybePromise<RetrievedDocument[]>


#Interface: RetrieverRequest

Defined in: packages/core/src/types/retrieval.ts:12

#Properties

#messages

messages: Message[]

Defined in: packages/core/src/types/retrieval.ts:14


#query

query: string

Defined in: packages/core/src/types/retrieval.ts:13


#Interface: SkillDefinition

Defined in: packages/core/src/types/skill.ts:4

#Properties

#delegates?

optional delegates?: string[]

Defined in: packages/core/src/types/skill.ts:10


#description

description: string

Defined in: packages/core/src/types/skill.ts:6


#examples?

optional examples?: object[]

Defined in: packages/core/src/types/skill.ts:8

#input

input: string

#output

output: string


#metadata?

optional metadata?: Record<string, unknown>

Defined in: packages/core/src/types/skill.ts:12


#name

name: string

Defined in: packages/core/src/types/skill.ts:5


#onActivate?

optional onActivate?: () => MaybePromise<{ tools?: ToolDefinition<Record<string, unknown>>[]; }>

Defined in: packages/core/src/types/skill.ts:13

#Returns

MaybePromise<{ tools?: ToolDefinition<Record<string, unknown>>[]; }>


#systemPrompt

systemPrompt: string

Defined in: packages/core/src/types/skill.ts:7


#temperature?

optional temperature?: number

Defined in: packages/core/src/types/skill.ts:11


#tools?

optional tools?: string[]

Defined in: packages/core/src/types/skill.ts:9


#Interface: StreamChunk

Defined in: packages/core/src/types/stream.ts:16

#Properties

#content?

optional content?: string

Defined in: packages/core/src/types/stream.ts:18


#metadata?

optional metadata?: Record<string, unknown>

Defined in: packages/core/src/types/stream.ts:21


#toolCall?

optional toolCall?: StreamToolCallPayload

Defined in: packages/core/src/types/stream.ts:19


#type

type: "error" | "text" | "tool_call" | "tool_result" | "reasoning" | "usage" | "done"

Defined in: packages/core/src/types/stream.ts:17


#usage?

optional usage?: TokenUsage

Defined in: packages/core/src/types/stream.ts:20


#Interface: StreamSource

Defined in: packages/core/src/types/stream.ts:24

#Properties

#abort

abort: () => void

Defined in: packages/core/src/types/stream.ts:26

#Returns

void


#stream

stream: () => AsyncIterableIterator<StreamChunk>

Defined in: packages/core/src/types/stream.ts:25

#Returns

AsyncIterableIterator<StreamChunk>


#Interface: StreamToolCallPayload

Defined in: packages/core/src/types/stream.ts:3

#Properties

#args

args: string

Defined in: packages/core/src/types/stream.ts:6


#id

id: string

Defined in: packages/core/src/types/stream.ts:4


#name

name: string

Defined in: packages/core/src/types/stream.ts:5


#result?

optional result?: string

Defined in: packages/core/src/types/stream.ts:7


#Interface: TextPart

Defined in: packages/core/src/types/content.ts:9

Provider-neutral multi-modal content parts. A single Message.content is a string (classic path); multi-modal messages populate parts alongside — adapters that understand parts read them, the rest fall back to content (which we keep as a text projection via partsToText).

#Properties

#text

text: string

Defined in: packages/core/src/types/content.ts:11


#type

type: "text"

Defined in: packages/core/src/types/content.ts:10


#Interface: TokenCounter

Defined in: packages/core/src/types/token-counter.ts:33

Universal token counter contract.

Implementations range from zero-dep approximate counters (chars/4) to provider-specific tokenizers (e.g. tiktoken for OpenAI models).

#Example

const result = await counter.count(messages, { model: 'gpt-4o' })
console.log(`Estimated tokens: ${result.total}`)

#Properties

#name

readonly name: string

Defined in: packages/core/src/types/token-counter.ts:35

Human-readable name of the counter (e.g. "approximate", "tiktoken").

#Methods

#count()

count(messages, options?): number | Promise<number>

Defined in: packages/core/src/types/token-counter.ts:41

Count (or estimate) the number of tokens for a list of messages. May be async to allow lazy-loading of tokenizer WASM modules.

#Parameters

messages

readonly Pick<Message, "role" | "content">[]

options?

TokenCounterOptions

#Returns

number | Promise<number>


#countDetailed()?

optional countDetailed(messages, options?): TokenCountResult | Promise<TokenCountResult>

Defined in: packages/core/src/types/token-counter.ts:47

Count with per-message breakdown. Falls back to calling count once when not overridden.

#Parameters

messages

readonly Pick<Message, "role" | "content">[]

options?

TokenCounterOptions

#Returns

TokenCountResult | Promise<TokenCountResult>


#Interface: TokenCounterOptions

Defined in: packages/core/src/types/token-counter.ts:6

Options passed to a token counter implementation.

#Properties

#model?

optional model?: string

Defined in: packages/core/src/types/token-counter.ts:8

Model identifier — used by provider-specific counters to pick the right tokenizer.


#Interface: TokenCountResult

Defined in: packages/core/src/types/token-counter.ts:14

Result returned by a token counter.

#Properties

#perMessage?

optional perMessage?: number[]

Defined in: packages/core/src/types/token-counter.ts:18

Per-message breakdown (same order as input).


#total

total: number

Defined in: packages/core/src/types/token-counter.ts:16

Total token count across all input messages.


#Interface: TokenUsage

Defined in: packages/core/src/types/stream.ts:10

#Properties

#completionTokens

completionTokens: number

Defined in: packages/core/src/types/stream.ts:12


#promptTokens

promptTokens: number

Defined in: packages/core/src/types/stream.ts:11


#totalTokens

totalTokens: number

Defined in: packages/core/src/types/stream.ts:13


#Interface: ToolAuthorizationContext

Defined in: packages/core/src/types/tool.ts:151

#Extends

#Properties

#messages

messages: Message[]

Defined in: packages/core/src/types/tool.ts:146

#Inherited from

ToolCallHandlerContext.messages


#phase

phase: ToolAuthorizationPhase

Defined in: packages/core/src/types/tool.ts:151


#tool?

optional tool?: ToolDefinition<Record<string, unknown>>

Defined in: packages/core/src/types/tool.ts:147

#Inherited from

ToolCallHandlerContext.tool


#Interface: ToolAuthorizationDecision

Defined in: packages/core/src/types/tool.ts:152

#Properties

#allowed

allowed: boolean

Defined in: packages/core/src/types/tool.ts:152


#reason?

optional reason?: string

Defined in: packages/core/src/types/tool.ts:152


#Interface: ToolCall

Defined in: packages/core/src/types/tool.ts:7

#Properties

#args

args: Record<string, unknown>

Defined in: packages/core/src/types/tool.ts:10


#error?

optional error?: string

Defined in: packages/core/src/types/tool.ts:12


#id

id: string

Defined in: packages/core/src/types/tool.ts:8


#name

name: string

Defined in: packages/core/src/types/tool.ts:9


#result?

optional result?: string

Defined in: packages/core/src/types/tool.ts:11


#status

status: ToolCallStatus

Defined in: packages/core/src/types/tool.ts:13


#Interface: ToolCallHandlerContext

Defined in: packages/core/src/types/tool.ts:145

#Extended by

#Properties

#messages

messages: Message[]

Defined in: packages/core/src/types/tool.ts:146


#tool?

optional tool?: ToolDefinition<Record<string, unknown>>

Defined in: packages/core/src/types/tool.ts:147


#Interface: ToolDefinition<TArgs>

Defined in: packages/core/src/types/tool.ts:103

#Type Parameters

#TArgs

TArgs = Record<string, unknown>

#Properties

#category?

optional category?: string

Defined in: packages/core/src/types/tool.ts:115


#description?

optional description?: string

Defined in: packages/core/src/types/tool.ts:105


#dispose?

optional dispose?: () => MaybePromise<void>

Defined in: packages/core/src/types/tool.ts:113

#Returns

MaybePromise<void>


#execute?

optional execute?: (args, context) => unknown

Defined in: packages/core/src/types/tool.ts:108

#Parameters

args

TArgs

context

ToolExecutionContext

#Returns

unknown


#init?

optional init?: () => MaybePromise<void>

Defined in: packages/core/src/types/tool.ts:112

#Returns

MaybePromise<void>


#name

name: string

Defined in: packages/core/src/types/tool.ts:104


#requiresConfirmation?

optional requiresConfirmation?: boolean

Defined in: packages/core/src/types/tool.ts:107


#schema?

optional schema?: JSONSchema7

Defined in: packages/core/src/types/tool.ts:106


#tags?

optional tags?: string[]

Defined in: packages/core/src/types/tool.ts:114


#Interface: ToolExecResult

Defined in: packages/core/src/agent-loop.ts:60

#Properties

#durationMs

durationMs: number

Defined in: packages/core/src/agent-loop.ts:64


#error?

optional error?: string

Defined in: packages/core/src/agent-loop.ts:63


#result?

optional result?: string

Defined in: packages/core/src/agent-loop.ts:62


#status

status: "complete" | "error" | "skipped"

Defined in: packages/core/src/agent-loop.ts:61


#Interface: ToolExecutionContext

Defined in: packages/core/src/types/tool.ts:16

#Properties

#call

call: ToolCall

Defined in: packages/core/src/types/tool.ts:18


#messages

messages: Message[]

Defined in: packages/core/src/types/tool.ts:17


#runId?

optional runId?: string

Defined in: packages/core/src/types/tool.ts:20

Stable parent run identifier when the caller can provide one.


#Interface: UseStreamOptions

Defined in: packages/core/src/types/stream.ts:29

#Properties

#onChunk?

optional onChunk?: (chunk) => void

Defined in: packages/core/src/types/stream.ts:30

#Parameters

chunk

StreamChunk

#Returns

void


#onComplete?

optional onComplete?: (text) => void

Defined in: packages/core/src/types/stream.ts:31

#Parameters

text

string

#Returns

void


#onError?

optional onError?: (error) => void

Defined in: packages/core/src/types/stream.ts:32

#Parameters

error

Error

#Returns

void


#Interface: UseStreamReturn

Defined in: packages/core/src/types/stream.ts:35

#Properties

#data

data: StreamChunk | null

Defined in: packages/core/src/types/stream.ts:36


#error

error: Error | null

Defined in: packages/core/src/types/stream.ts:39


#status

status: StreamStatus

Defined in: packages/core/src/types/stream.ts:38


#stop

stop: () => void

Defined in: packages/core/src/types/stream.ts:40

#Returns

void


#text

text: string

Defined in: packages/core/src/types/stream.ts:37


#Interface: VectorDocument

Defined in: packages/core/src/types/memory.ts:17

#Properties

#content

content: string

Defined in: packages/core/src/types/memory.ts:19


#embedding

embedding: number[]

Defined in: packages/core/src/types/memory.ts:20


#id

id: string

Defined in: packages/core/src/types/memory.ts:18


#metadata?

optional metadata?: Record<string, unknown>

Defined in: packages/core/src/types/memory.ts:21


#Interface: VectorFilterCompound

Defined in: packages/core/src/types/memory.ts:52

#Properties

#$and?

optional $and?: VectorFilter[]

Defined in: packages/core/src/types/memory.ts:53


#$or?

optional $or?: VectorFilter[]

Defined in: packages/core/src/types/memory.ts:54


#Interface: VectorMemory

Defined in: packages/core/src/types/memory.ts:68

#Properties

#delete?

optional delete?: (ids) => MaybePromise<void>

Defined in: packages/core/src/types/memory.ts:76

#Parameters

ids

string[]

#Returns

MaybePromise<void>


#region?

optional region?: DataRegion

Defined in: packages/core/src/types/memory.ts:70

Data-residency region for this vector backend, when known.


search: (embedding, options?) => MaybePromise<RetrievedDocument[]>

Defined in: packages/core/src/types/memory.ts:72

#Parameters

embedding

number[]

options?

VectorSearchOptions

#Returns

MaybePromise<RetrievedDocument[]>


#store

store: (docs) => MaybePromise<void>

Defined in: packages/core/src/types/memory.ts:71

#Parameters

docs

VectorDocument[]

#Returns

MaybePromise<void>


#Interface: VectorSearchOptions

Defined in: packages/core/src/types/memory.ts:61

#Properties

#filter?

optional filter?: VectorFilter

Defined in: packages/core/src/types/memory.ts:65

Metadata filter applied to candidates before / during similarity search.


#threshold?

optional threshold?: number

Defined in: packages/core/src/types/memory.ts:63


#topK?

optional topK?: number

Defined in: packages/core/src/types/memory.ts:62


#Interface: VideoPart

Defined in: packages/core/src/types/content.ts:31

#Properties

#durationSec?

optional durationSec?: number

Defined in: packages/core/src/types/content.ts:35


#mimeType?

optional mimeType?: string

Defined in: packages/core/src/types/content.ts:34


#source

source: string

Defined in: packages/core/src/types/content.ts:33


#type

type: "video"

Defined in: packages/core/src/types/content.ts:32


#Interface: VirtualizedMemoryOptions

Defined in: packages/core/src/virtualized-memory.ts:4

#Properties

#maxActive?

optional maxActive?: number

Defined in: packages/core/src/virtualized-memory.ts:6

Maximum number of recent messages to keep "hot" (always loaded). Default 50.


#maxRetrieved?

optional maxRetrieved?: number

Defined in: packages/core/src/virtualized-memory.ts:18

Maximum retrieved cold messages per load. Default 10.


#retriever?

optional retriever?: (input) => Message[] | Promise<Message[]>

Defined in: packages/core/src/virtualized-memory.ts:12

Optional retriever used to surface relevant "cold" messages on each load(). Given the hot window, returns up to maxRetrieved older messages to splice back in (in chronological order).

#Parameters

input
cold

Message[]

hot

Message[]

maxRetrieved

number

#Returns

Message[] | Promise<Message[]>

Explore nearby

On this page

Interface: ActivateSkillsResultPropertiesskillToolssystemPromptInterface: AdapterCapabilitiesPropertiesextensions?multiModal?reasoning?streaming?structuredOutput?tools?usage?Interface: AdapterContextPropertiesmaxTokens?metadata?systemPrompt?temperature?tools?Interface: AdapterRequestPropertiescontext?correlation?messagesInterface: AgentEventContextPropertiesactionId?operationIdrunId?sessionId?traceId?turnId?Interface: ArgsValidationErrorPropertiesmessagepathInterface: ArgsValidationResultPropertieserrors?message?validInterface: AudioPartPropertiesdurationSec?mimeType?sourcetypeInterface: ChatConfigPropertiesadapterauthorizeToolCall?correlation?initialMessages?maxTokens?maxToolIterations?memory?observers?onError?ParameterserrorReturnsonMessage?ParametersmessageReturnsonToolCall?ParameterstoolCallcontextReturnsretriever?skills?systemPrompt?temperature?tools?validateArgs?Interface: ChatControllerPropertiesapproveParameterstoolCallIdReturnsclearReturnsdenyParameterstoolCallIdreason?ReturnseditParametersmessageIdnewContentopts?ReturnsgetStateReturnsproposeToolCallParametersproposalReturnsregenerateParametersmessageId?ReturnsretryReturnssendParameterstextReturnssetInputParametersvalueReturnssetMessagesParametersmessagesReturnsstopReturnssubscribeParameterslistenerReturnsupdateConfigParametersconfigReturnsInterface: ChatMemoryPropertiesclear?Parametersoptions?ReturnsloadParametersoptions?Returnsregion?saveParametersmessagesoptions?ReturnsInterface: ChatReturnExtendsPropertiesapproveParameterstoolCallIdReturnsclearReturnsdenyParameterstoolCallIdreason?ReturnseditParametersmessageIdnewContentopts?ReturnserrorInherited frominputInherited frommessagesInherited fromproposeToolCallParametersproposalReturnsregenerateParametersmessageId?ReturnsretryReturnssendParameterstextReturnssetInputParametersvalueReturnsstatusInherited fromstopReturnsusageInherited fromInterface: ChatStateExtended byPropertieserrorinputmessagesstatususageInterface: CompileBudgetInputPropertiesbudgetcounter?keepRecent?messagesreserveForOutput?strategy?summarizer?ParametersdroppedReturnssystemPrompt?tools?Interface: CompileBudgetResultPropertiesdroppedfitsmessagesstrategysystemPrompt?tokensbudgetmessagessystemtoolstotalInterface: ConsumeStreamHandlersPropertiesonDoneParametersaccumulatedTextReturnsonError?ParameterserrorReturnsonReasoning?ParametersaccumulatedReturnsonText?ParametersaccumulatedReturnsonToolCall?ParameterschunkReturnsonToolResult?ParameterscontentReturnsonUsage?ParametersusageReturnsInterface: DefineToolConfig<TSchema>Type ParametersTSchemaPropertiescategory?description?dispose?Returnsexecute?ParametersargscontextReturnsinit?ReturnsnamerequiresConfirmation?schema?tags?Interface: EditOptionsPropertiesregenerate?Interface: EvalResultPropertiesaccuracyfailedpassedresultserror?inputlatencyMsoutputpassedtokenUsage?tokenUsage.completiontokenUsage.prompttotalCasesInterface: EvalSuitePropertiescasesnameInterface: EvalTestCasePropertiesexpectedinputmetadata?Interface: ExecuteSafeToolOptionsPropertiesauthorize?contextcorrelation?emitteraddObserver()ParametersobserverReturnsemit()ParameterseventReturnslifecycledisposeAll()Returnsinit()ParameterstoolReturnsonConfirm?ParameterstoolCallReturnsonPartial?ParametersresultReturnstooltoolCallvalidate?Interface: FilePartPropertiesfilename?mimeType?sourcetypeInterface: ImagePartPropertiesdetail?mimeType?sourcetypeInterface: MemoryRecordPropertiesmessagesversionInterface: MessagePropertiescontentcreatedAtidmetadata?parts?rolestatustoolCallId?toolCalls?Interface: ObserverPropertiesnameonParameterseventReturnsInterface: ParsedToolArgsPropertiesargsvalidInterface: ProgressiveArgParserPropertiesbufferendReturnseventspushParameterschunkReturnsvalueInterface: ProgressiveExecOptionsPropertiesonField?ParameterseventReturnstriggerFields?Interface: ProgressiveExecResultPropertiesexecutionfieldsfinalArgsInterface: ProgressiveFieldEventPropertiesfieldoffsetrawvalueInterface: RetrievedDocumentPropertiescontentidmetadata?score?source?Interface: RetrieverPropertiesretrieveParametersrequestReturnsInterface: RetrieverRequestPropertiesmessagesqueryInterface: SkillDefinitionPropertiesdelegates?descriptionexamples?inputoutputmetadata?nameonActivate?ReturnssystemPrompttemperature?tools?Interface: StreamChunkPropertiescontent?metadata?toolCall?typeusage?Interface: StreamSourcePropertiesabortReturnsstreamReturnsInterface: StreamToolCallPayloadPropertiesargsidnameresult?Interface: TextPartPropertiestexttypeInterface: TokenCounterExamplePropertiesnameMethodscount()Parametersmessagesoptions?ReturnscountDetailed()?Parametersmessagesoptions?ReturnsInterface: TokenCounterOptionsPropertiesmodel?Interface: TokenCountResultPropertiesperMessage?totalInterface: TokenUsagePropertiescompletionTokenspromptTokenstotalTokensInterface: ToolAuthorizationContextExtendsPropertiesmessagesInherited fromphasetool?Inherited fromInterface: ToolAuthorizationDecisionPropertiesallowedreason?Interface: ToolCallPropertiesargserror?idnameresult?statusInterface: ToolCallHandlerContextExtended byPropertiesmessagestool?Interface: ToolDefinition<TArgs>Type ParametersTArgsPropertiescategory?description?dispose?Returnsexecute?ParametersargscontextReturnsinit?ReturnsnamerequiresConfirmation?schema?tags?Interface: ToolExecResultPropertiesdurationMserror?result?statusInterface: ToolExecutionContextPropertiescallmessagesrunId?Interface: UseStreamOptionsPropertiesonChunk?ParameterschunkReturnsonComplete?ParameterstextReturnsonError?ParameterserrorReturnsInterface: UseStreamReturnPropertiesdataerrorstatusstopReturnstextInterface: VectorDocumentPropertiescontentembeddingidmetadata?Interface: VectorFilterCompoundProperties$and?$or?Interface: VectorMemoryPropertiesdelete?ParametersidsReturnsregion?searchParametersembeddingoptions?ReturnsstoreParametersdocsReturnsInterface: VectorSearchOptionsPropertiesfilter?threshold?topK?Interface: VideoPartPropertiesdurationSec?mimeType?sourcetypeInterface: VirtualizedMemoryOptionsPropertiesmaxActive?maxRetrieved?retriever?ParametersinputcoldhotmaxRetrievedReturns