import type { Session } from './storageTypes'; import type { Settings } from './settings'; import { getAgentDefaultOverride } from './agentDefaults'; import type { PermissionModeKey } from '@/components/PermissionModeSelector'; export type MessageModeMeta = { permissionMode?: PermissionModeKey; model?: string | null; effort?: string | null; }; export function resolveMessageModeMeta( session: Pick, settings?: Pick, ): MessageModeMeta { const agentOverrides = getAgentDefaultOverride(settings?.agentDefaultOverrides, session.metadata?.flavor); const meta: MessageModeMeta = {}; if (session.permissionMode !== null && session.permissionMode !== undefined) { meta.permissionMode = session.permissionMode; } else if (agentOverrides.permissionMode !== undefined) { meta.permissionMode = agentOverrides.permissionMode; } const modelMode = session.modelMode ?? agentOverrides.modelMode; if (modelMode !== undefined) { meta.model = modelMode === 'default' ? null : modelMode; } const effort = session.effortLevel ?? agentOverrides.effortLevel; if (effort !== undefined) { meta.effort = effort; } return meta; }