import type { JinnConfig } from "../shared/types.js"; /** * Validate a mid-chat model/effort change for an existing session. * * Engine is NOT switchable mid-chat (new-chat only), so this only handles * `model` and `effortLevel`, validated against the registry for the session's * (fixed) engine. The change applies from the NEXT turn — the SessionManager * reads session.model / session.effortLevel fresh on every turn and passes them * (with resumeSessionId) to the engine, which our spike confirmed honors a * changed --model in place (no fork needed). Antigravity supports --model; if * its CLI is already warm, the new model applies on the next cold spawn/resume. */ export interface SessionPatchResult { ok: boolean; updates?: { model?: string; effortLevel?: string; }; error?: string; } export interface NewSessionSelectionResult { ok: boolean; engine?: string; model?: string; effortLevel?: string; error?: string; } export interface SessionPatchContext { engineSessionId?: string | null; defaultModel?: string | null; } export declare function validateNewSessionSelection(config: JinnConfig, body: { engine?: unknown; model?: unknown; effortLevel?: unknown; }, defaults?: { engine?: string; model?: string; effortLevel?: string; employee?: string; }): NewSessionSelectionResult; export declare function validateSessionPatch(config: JinnConfig, engine: string, currentModel: string | null | undefined, body: { model?: unknown; effortLevel?: unknown; }, context?: SessionPatchContext): SessionPatchResult; //# sourceMappingURL=session-patch.d.ts.map