Skip to content

Interface: AgentSessionConfigOption

Defined in: packages/sdk/src/agents-service.ts:909

Beta

One session-level control the agent advertised at connect — the Agent Client Protocol session/new configOptions list (recon 2026-09-08). It is self-describing and subsumes the older modes / models fields: Cursor advertises a "mode" entry and a "model" entry, Claude a single "mode" entry (its permission mode), and a vendor may add its own.

The write path is generic too: AgentSessionHandle.setConfigOption goes through the protocol's session/set_config_option, so a category Silo has never heard of still works — Claude's "thought_level" (Effort) has no typed method anywhere in the protocol and sets fine. Silo keeps session/set_mode / session/set_model only as a fallback for an agent that does not implement the generic setter.

Render one control per entry and skip an entry whose type you do not recognise — the same tolerance rule AgentSessionUpdate follows for unknown kinds. Do not assume every advertised entry is settable: an adapter may list an id its own handler rejects, so treat a failed AgentSessionHandle.setConfigOption as "stop offering this one".

Properties

id

ts
readonly id: string;

Defined in: packages/sdk/src/agents-service.ts:911

Beta

Stable id — pass it to AgentSessionHandle.setConfigOption.


name

ts
readonly name: string;

Defined in: packages/sdk/src/agents-service.ts:913

Beta

Label for the control, e.g. "Mode", "Model".


description?

ts
readonly optional description?: string;

Defined in: packages/sdk/src/agents-service.ts:915

Beta

A longer explanation, when the agent gave one.


category

ts
readonly category: string;

Defined in: packages/sdk/src/agents-service.ts:921

Beta

The protocol category that decides how a write is delivered — "mode", "model", or a vendor's own. AgentSessionHandle.setConfigOption rejects a category with no verified writer.


type

ts
readonly type: string;

Defined in: packages/sdk/src/agents-service.ts:926

Beta

The control shape. Only "select" is modelled today; treat any other value as "do not render".


currentValue

ts
readonly currentValue: string;

Defined in: packages/sdk/src/agents-service.ts:933

Beta

The currently-selected AgentSessionConfigChoice.value. Kept current when the agent moves it itself (an ACP current_mode_update), so a bound control always reflects reality — subscribe with AgentSessionHandle.onConfigOptionsChanged.


options

ts
readonly options: readonly AgentSessionConfigChoice[];

Defined in: packages/sdk/src/agents-service.ts:935

Beta

The choices, in the agent's order.