42 lines
1.5 KiB
TypeScript
42 lines
1.5 KiB
TypeScript
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<ThinkLevel | undefined>;
|
|
}): 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,
|
|
};
|
|
}
|