42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
export type ThinkLevel = "off" | "minimal" | "low" | "medium" | "high";
|
|
export type VerboseLevel = "off" | "on";
|
|
|
|
// Normalize user-provided thinking level strings to the canonical enum.
|
|
export function normalizeThinkLevel(
|
|
raw?: string | null,
|
|
): ThinkLevel | undefined {
|
|
if (!raw) return undefined;
|
|
const key = raw.toLowerCase();
|
|
if (["off"].includes(key)) return "off";
|
|
if (["min", "minimal"].includes(key)) return "minimal";
|
|
if (["low", "thinkhard", "think-hard", "think_hard"].includes(key))
|
|
return "low";
|
|
if (["med", "medium", "thinkharder", "think-harder", "harder"].includes(key))
|
|
return "medium";
|
|
if (
|
|
[
|
|
"high",
|
|
"ultra",
|
|
"ultrathink",
|
|
"think-hard",
|
|
"thinkhardest",
|
|
"highest",
|
|
"max",
|
|
].includes(key)
|
|
)
|
|
return "high";
|
|
if (["think"].includes(key)) return "minimal";
|
|
return undefined;
|
|
}
|
|
|
|
// Normalize verbose flags used to toggle agent verbosity.
|
|
export function normalizeVerboseLevel(
|
|
raw?: string | null,
|
|
): VerboseLevel | undefined {
|
|
if (!raw) return undefined;
|
|
const key = raw.toLowerCase();
|
|
if (["off", "false", "no", "0"].includes(key)) return "off";
|
|
if (["on", "full", "true", "yes", "1"].includes(key)) return "on";
|
|
return undefined;
|
|
}
|