Skip to content

Commit 4322141

Browse files
committed
fix(zai): preserve minimal thinking semantics
1 parent 6eed4c2 commit 4322141

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

extensions/zai/index.test.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,37 @@ describe("zai provider plugin", () => {
346346
expect(capturedPayload?.thinking).toEqual({ type: "disabled" });
347347
});
348348

349+
it("keeps minimal thinking enabled for binary GLM models", async () => {
350+
const provider = await registerSingleProviderPlugin(plugin);
351+
let capturedPayload: Record<string, unknown> | undefined;
352+
const baseStreamFn: StreamFn = (model, _context, options) => {
353+
const payload: Record<string, unknown> = {};
354+
options?.onPayload?.(payload as never, model as never);
355+
capturedPayload = payload;
356+
return {} as ReturnType<StreamFn>;
357+
};
358+
359+
const wrapped = provider.wrapStreamFn?.({
360+
provider: "zai",
361+
modelId: "glm-5.1",
362+
extraParams: {},
363+
thinkingLevel: "minimal",
364+
streamFn: baseStreamFn,
365+
} as never);
366+
367+
void wrapped?.(
368+
{
369+
api: "openai-completions",
370+
provider: "zai",
371+
id: "glm-5.1",
372+
} as Model<"openai-completions">,
373+
{ messages: [] } as Context,
374+
{},
375+
);
376+
377+
expect(capturedPayload).not.toHaveProperty("thinking");
378+
});
379+
349380
it("maps GLM-5.2 thinking levels to Z.AI reasoning effort", async () => {
350381
const provider = await registerSingleProviderPlugin(plugin);
351382
const baseStreamFn: StreamFn = (model, _context, options) => {

extensions/zai/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ function shouldPreserveZaiThinking(extraParams?: Record<string, unknown>): boole
125125
}
126126

127127
function isDisabledThinkingLevel(thinkingLevel: ProviderWrapStreamFnContext["thinkingLevel"]) {
128-
return thinkingLevel === "off" || thinkingLevel === "minimal";
128+
return thinkingLevel === "off";
129129
}
130130

131131
function isGlm52ModelId(modelId?: string | null): boolean {

0 commit comments

Comments
 (0)