import type { ElevatedLevel, ReasoningLevel, ThinkLevel, VerboseLevel } from "../thinking.js"; export async function resolveCurrentDirectiveLevels(params: { sessionEntry?: { thinkingLevel?: unknown; verboseLevel?: unknown; reasoningLevel?: unknown; elevatedLevel?: unknown; }; agentCfg?: { thinkingDefault?: unknown; verboseDefault?: unknown; elevatedDefault?: unknown; }; resolveDefaultThinkingLevel: () => Promise; }): Promise<{ currentThinkLevel: ThinkLevel | undefined; currentVerboseLevel: VerboseLevel | undefined; currentReasoningLevel: ReasoningLevel; currentElevatedLevel: ElevatedLevel | undefined; }> { const resolvedDefaultThinkLevel = (params.sessionEntry?.thinkingLevel as ThinkLevel | undefined) ?? (params.agentCfg?.thinkingDefault as ThinkLevel | undefined) ?? (await params.resolveDefaultThinkingLevel()); const currentThinkLevel = resolvedDefaultThinkLevel; const currentVerboseLevel = (params.sessionEntry?.verboseLevel as VerboseLevel | undefined) ?? (params.agentCfg?.verboseDefault as VerboseLevel | undefined); const currentReasoningLevel = (params.sessionEntry?.reasoningLevel as ReasoningLevel | undefined) ?? "off"; const currentElevatedLevel = (params.sessionEntry?.elevatedLevel as ElevatedLevel | undefined) ?? (params.agentCfg?.elevatedDefault as ElevatedLevel | undefined); return { currentThinkLevel, currentVerboseLevel, currentReasoningLevel, currentElevatedLevel, }; }