Skip to content

Function: ensureAgentModel()

Makaio Framework


Makaio Framework / services-core / ensureAgentModel

ensureAgentModel(bus, agent, desiredModel, options?): Promise<{ changed: false; } | { changed: true; swapped: boolean; }>

Defined in: ../../../packages/services/core/src/session/utils/agent-recovery.ts:85

Ensure an agent uses the desired model and/or reasoning effort, performing an in-place change or connector swap as needed.

Mirrors the ensureAgentCwd() pattern. At least one of desiredModel, options.reasoningEffort, or options.providerConfigId must be defined for a change to occur.

IMakaioBus

The bus instance for RPC

The agent to change (mutated in-place on success)

string = ...

Adapter instance that owns this agent

string = ...

Adapter type name (e.g., ‘claude-code’, ‘copilot’)

string = ...

Provider’s session ID for native resume support

string = ...

Unique agent execution unit ID (stable across connector swaps and restarts)

string = ...

Client identifier for the client application this agent runs under (e.g., ‘claude-code’, ‘codex’). Omit for API-only adapters.

"manual" | "auto" | "off" = ...

Compression mode for session context management.

number = ...

Timestamp when agent was created (= when added to session)

string = ...

Current working directory

string = ...

Resolved harness ID for this agent.

number = ...

Timestamp of last activity (message sent/received)

string = ...

Current model identifier

string = ...

Persona used to configure this agent (if any).

string = ...

Profile used to configure this agent (if any).

string = ...

Provider config UUID for credential/endpoint resolution

"lead" | "member" = AgentRoleSchema

Agent’s role in the session

string = ...

Makaio session this agent belongs to

"active" | "idle" | "dead" | "disposed" = AgentStatusSchema

Agent lifecycle status

string | undefined

The model identifier to switch to, or undefined to keep current model

Optional configuration: providerConfigId triggers a swap when it differs from the current one; reasoningEffort is applied after the model change; skipWarning suppresses the model-change confirmation dialog

string

"none" | "low" | "medium" | "high" | "extra-high"

boolean

Promise<{ changed: false; } | { changed: true; swapped: boolean; }>

Discriminated union: no change, or changed with swap info