/** * SessionHydrator — read persisted per-session config and push it into the * in-memory runtime (AgentManager + ModelManager). * * These three operations were three sibling private methods on `AgentService` * with subtly different signatures. They are the mirror image of * {@link SessionConfigService} — the latter writes user choices into the * config store, this hydrator reads them back out before a turn runs. * * - `workspace()` — apply persisted `workingDirectoryOverride` to AgentManager * and ensure the directory exists on disk * - `model()` — apply persisted `modelOverride` via ModelManager * - `thinking()` — resolve effective thinking level (request override > * per-session override > agent default) and apply */ import type { Config } from '../../config/schema.js'; import { type SessionConfigStore } from '../../session/index.js'; import type { AgentInstanceGateway } from '../agent-instance-gateway.js'; import type { ModelManager } from '../models/index.js'; export interface SessionHydratorOptions { sessionConfigStore: SessionConfigStore; agentManager: AgentInstanceGateway; modelManager: ModelManager; /** Effective config snapshot accessor (honours runtime overrides). */ getConfig: () => Config | undefined; } export declare class SessionHydrator { private readonly opts; constructor(opts: SessionHydratorOptions); /** * Load persisted workingDirectory override into AgentManager and `mkdir -p` * the effective workspace path. Safe to call before `getOrCreateAgent`. */ workspace(sessionKey: string): Promise; /** Apply persisted `modelOverride` to ModelManager (no-op when none stored). */ model(sessionKey: string): Promise; /** * Resolve the effective thinking level (request override > per-session * override > agent default) and apply it to the live agent instance. */ thinking(sessionKey: string, requestOverride?: string | null): Promise; }