Merge a3894db3943e54bc26dfc24f241247df5c0b2133 into 598f1826d8b2bc969aace2c6459824737667218c
This commit is contained in:
commit
8c451c5c2d
@ -33,4 +33,41 @@ describe("resolveCurrentDirectiveLevels", () => {
|
||||
expect(result.currentThinkLevel).toBe("minimal");
|
||||
expect(resolveDefaultThinkingLevel).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
// reasoningDefault tests
|
||||
it("uses agent reasoningDefault when session reasoningLevel is absent", async () => {
|
||||
const result = await resolveCurrentDirectiveLevels({
|
||||
sessionEntry: {},
|
||||
agentCfg: {
|
||||
reasoningDefault: "on",
|
||||
},
|
||||
resolveDefaultThinkingLevel: vi.fn(),
|
||||
});
|
||||
|
||||
expect(result.currentReasoningLevel).toBe("on");
|
||||
});
|
||||
|
||||
it("session reasoningLevel overrides agent reasoningDefault", async () => {
|
||||
const result = await resolveCurrentDirectiveLevels({
|
||||
sessionEntry: {
|
||||
reasoningLevel: "off",
|
||||
},
|
||||
agentCfg: {
|
||||
reasoningDefault: "on",
|
||||
},
|
||||
resolveDefaultThinkingLevel: vi.fn(),
|
||||
});
|
||||
|
||||
expect(result.currentReasoningLevel).toBe("off");
|
||||
});
|
||||
|
||||
it("defaults reasoningLevel to off when neither session nor config is set", async () => {
|
||||
const result = await resolveCurrentDirectiveLevels({
|
||||
sessionEntry: {},
|
||||
agentCfg: {},
|
||||
resolveDefaultThinkingLevel: vi.fn(),
|
||||
});
|
||||
|
||||
expect(result.currentReasoningLevel).toBe("off");
|
||||
});
|
||||
});
|
||||
|
||||
@ -10,6 +10,7 @@ export async function resolveCurrentDirectiveLevels(params: {
|
||||
};
|
||||
agentCfg?: {
|
||||
thinkingDefault?: unknown;
|
||||
reasoningDefault?: unknown;
|
||||
verboseDefault?: unknown;
|
||||
elevatedDefault?: unknown;
|
||||
};
|
||||
@ -32,7 +33,9 @@ export async function resolveCurrentDirectiveLevels(params: {
|
||||
(params.sessionEntry?.verboseLevel as VerboseLevel | undefined) ??
|
||||
(params.agentCfg?.verboseDefault as VerboseLevel | undefined);
|
||||
const currentReasoningLevel =
|
||||
(params.sessionEntry?.reasoningLevel as ReasoningLevel | undefined) ?? "off";
|
||||
(params.sessionEntry?.reasoningLevel as ReasoningLevel | undefined) ??
|
||||
(params.agentCfg?.reasoningDefault as ReasoningLevel | undefined) ??
|
||||
"off";
|
||||
const currentElevatedLevel =
|
||||
(params.sessionEntry?.elevatedLevel as ElevatedLevel | undefined) ??
|
||||
(params.agentCfg?.elevatedDefault as ElevatedLevel | undefined);
|
||||
|
||||
@ -360,6 +360,7 @@ export async function resolveReplyDirectives(params: {
|
||||
let resolvedReasoningLevel: ReasoningLevel =
|
||||
directives.reasoningLevel ??
|
||||
(sessionEntry?.reasoningLevel as ReasoningLevel | undefined) ??
|
||||
(agentCfg?.reasoningDefault as ReasoningLevel | undefined) ??
|
||||
"off";
|
||||
const resolvedElevatedLevel = elevatedAllowed
|
||||
? (directives.elevatedLevel ??
|
||||
@ -412,7 +413,8 @@ export async function resolveReplyDirectives(params: {
|
||||
// be emitted as visible "Reasoning:" messages.
|
||||
const reasoningExplicitlySet =
|
||||
directives.reasoningLevel !== undefined ||
|
||||
(sessionEntry?.reasoningLevel !== undefined && sessionEntry?.reasoningLevel !== null);
|
||||
(sessionEntry?.reasoningLevel !== undefined && sessionEntry?.reasoningLevel !== null) ||
|
||||
agentCfg?.reasoningDefault !== undefined;
|
||||
const thinkingActive = resolvedThinkLevelWithDefault !== "off";
|
||||
if (!reasoningExplicitlySet && resolvedReasoningLevel === "off" && !thinkingActive) {
|
||||
resolvedReasoningLevel = await modelState.resolveDefaultReasoningLevel();
|
||||
|
||||
@ -512,7 +512,8 @@ export function buildStatusMessage(args: StatusArgs): string {
|
||||
const verboseLevel =
|
||||
args.resolvedVerbose ?? args.sessionEntry?.verboseLevel ?? args.agent?.verboseDefault ?? "off";
|
||||
const fastMode = args.resolvedFast ?? args.sessionEntry?.fastMode ?? false;
|
||||
const reasoningLevel = args.resolvedReasoning ?? args.sessionEntry?.reasoningLevel ?? "off";
|
||||
const reasoningLevel =
|
||||
args.resolvedReasoning ?? args.sessionEntry?.reasoningLevel ?? args.agent?.reasoningDefault ?? "off";
|
||||
const elevatedLevel =
|
||||
args.resolvedElevated ??
|
||||
args.sessionEntry?.elevatedLevel ??
|
||||
|
||||
@ -187,6 +187,8 @@ export type AgentDefaultsConfig = {
|
||||
memorySearch?: MemorySearchConfig;
|
||||
/** Default thinking level when no /think directive is present. */
|
||||
thinkingDefault?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive";
|
||||
/** Default reasoning display level when no /reasoning directive is present. */
|
||||
reasoningDefault?: "off" | "on" | "stream";
|
||||
/** Default verbose level when no /verbose directive is present. */
|
||||
verboseDefault?: "off" | "on" | "full";
|
||||
/** Default elevated level when no /elevated directive is present. */
|
||||
|
||||
@ -148,6 +148,9 @@ export const AgentDefaultsSchema = z
|
||||
z.literal("adaptive"),
|
||||
])
|
||||
.optional(),
|
||||
reasoningDefault: z
|
||||
.union([z.literal("off"), z.literal("on"), z.literal("stream")])
|
||||
.optional(),
|
||||
verboseDefault: z.union([z.literal("off"), z.literal("on"), z.literal("full")]).optional(),
|
||||
elevatedDefault: z
|
||||
.union([z.literal("off"), z.literal("on"), z.literal("ask"), z.literal("full")])
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user