fix(ws): preserve payload overrides

This commit is contained in:
Peter Steinberger
2026-03-11 20:11:42 +00:00
parent bdd9ed238a
commit c8dd06cba2
2 changed files with 18 additions and 19 deletions

View File

@@ -605,10 +605,9 @@ export function createOpenAIWebSocketStreamFn(
...extraParams, ...extraParams,
}; };
const nextPayload = await options?.onPayload?.(payload, model); const nextPayload = await options?.onPayload?.(payload, model);
const requestPayload = const requestPayload = (nextPayload ?? payload) as Parameters<
nextPayload && typeof nextPayload === "object" OpenAIWebSocketManager["send"]
? (nextPayload as Parameters<OpenAIWebSocketManager["send"]>[0]) >[0];
: (payload as Parameters<OpenAIWebSocketManager["send"]>[0]);
try { try {
session.manager.send(requestPayload); session.manager.send(requestPayload);

View File

@@ -276,7 +276,7 @@ describe("applyExtraParamsToAgent", () => {
const payloads: Record<string, unknown>[] = []; const payloads: Record<string, unknown>[] = [];
const baseStreamFn: StreamFn = (_model, _context, options) => { const baseStreamFn: StreamFn = (_model, _context, options) => {
const payload: Record<string, unknown> = { model: "deepseek/deepseek-r1" }; const payload: Record<string, unknown> = { model: "deepseek/deepseek-r1" };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -308,7 +308,7 @@ describe("applyExtraParamsToAgent", () => {
const payloads: Record<string, unknown>[] = []; const payloads: Record<string, unknown>[] = [];
const baseStreamFn: StreamFn = (_model, _context, options) => { const baseStreamFn: StreamFn = (_model, _context, options) => {
const payload: Record<string, unknown> = {}; const payload: Record<string, unknown> = {};
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -332,7 +332,7 @@ describe("applyExtraParamsToAgent", () => {
const payloads: Record<string, unknown>[] = []; const payloads: Record<string, unknown>[] = [];
const baseStreamFn: StreamFn = (_model, _context, options) => { const baseStreamFn: StreamFn = (_model, _context, options) => {
const payload: Record<string, unknown> = { reasoning_effort: "high" }; const payload: Record<string, unknown> = { reasoning_effort: "high" };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -357,7 +357,7 @@ describe("applyExtraParamsToAgent", () => {
const payloads: Record<string, unknown>[] = []; const payloads: Record<string, unknown>[] = [];
const baseStreamFn: StreamFn = (_model, _context, options) => { const baseStreamFn: StreamFn = (_model, _context, options) => {
const payload: Record<string, unknown> = { reasoning: { max_tokens: 256 } }; const payload: Record<string, unknown> = { reasoning: { max_tokens: 256 } };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -381,7 +381,7 @@ describe("applyExtraParamsToAgent", () => {
const payloads: Record<string, unknown>[] = []; const payloads: Record<string, unknown>[] = [];
const baseStreamFn: StreamFn = (_model, _context, options) => { const baseStreamFn: StreamFn = (_model, _context, options) => {
const payload: Record<string, unknown> = { reasoning_effort: "medium" }; const payload: Record<string, unknown> = { reasoning_effort: "medium" };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -588,7 +588,7 @@ describe("applyExtraParamsToAgent", () => {
const payloads: Record<string, unknown>[] = []; const payloads: Record<string, unknown>[] = [];
const baseStreamFn: StreamFn = (_model, _context, options) => { const baseStreamFn: StreamFn = (_model, _context, options) => {
const payload: Record<string, unknown> = { thinking: "off" }; const payload: Record<string, unknown> = { thinking: "off" };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -619,7 +619,7 @@ describe("applyExtraParamsToAgent", () => {
const payloads: Record<string, unknown>[] = []; const payloads: Record<string, unknown>[] = [];
const baseStreamFn: StreamFn = (_model, _context, options) => { const baseStreamFn: StreamFn = (_model, _context, options) => {
const payload: Record<string, unknown> = { thinking: "off" }; const payload: Record<string, unknown> = { thinking: "off" };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -650,7 +650,7 @@ describe("applyExtraParamsToAgent", () => {
const payloads: Record<string, unknown>[] = []; const payloads: Record<string, unknown>[] = [];
const baseStreamFn: StreamFn = (_model, _context, options) => { const baseStreamFn: StreamFn = (_model, _context, options) => {
const payload: Record<string, unknown> = {}; const payload: Record<string, unknown> = {};
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -674,7 +674,7 @@ describe("applyExtraParamsToAgent", () => {
const payloads: Record<string, unknown>[] = []; const payloads: Record<string, unknown>[] = [];
const baseStreamFn: StreamFn = (_model, _context, options) => { const baseStreamFn: StreamFn = (_model, _context, options) => {
const payload: Record<string, unknown> = { tool_choice: "required" }; const payload: Record<string, unknown> = { tool_choice: "required" };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -699,7 +699,7 @@ describe("applyExtraParamsToAgent", () => {
const payloads: Record<string, unknown>[] = []; const payloads: Record<string, unknown>[] = [];
const baseStreamFn: StreamFn = (_model, _context, options) => { const baseStreamFn: StreamFn = (_model, _context, options) => {
const payload: Record<string, unknown> = {}; const payload: Record<string, unknown> = {};
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -749,7 +749,7 @@ describe("applyExtraParamsToAgent", () => {
], ],
tool_choice: { type: "tool", name: "read" }, tool_choice: { type: "tool", name: "read" },
}; };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -793,7 +793,7 @@ describe("applyExtraParamsToAgent", () => {
}, },
], ],
}; };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -832,7 +832,7 @@ describe("applyExtraParamsToAgent", () => {
}, },
], ],
}; };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -896,7 +896,7 @@ describe("applyExtraParamsToAgent", () => {
}, },
}, },
}; };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };
@@ -943,7 +943,7 @@ describe("applyExtraParamsToAgent", () => {
}, },
}, },
}; };
options?.onPayload?.(payload, _model); options?.onPayload?.(payload, model);
payloads.push(payload); payloads.push(payload);
return {} as ReturnType<StreamFn>; return {} as ReturnType<StreamFn>;
}; };