




















@@ -197,23 +197,30 @@ describe("codex media understanding provider", () => {
197197"thread/start",
198198"turn/start",
199199]);
200-expect(requests[1]?.params).toMatchObject({
200+expect(requests[1]?.params).toEqual({
201201model: "gpt-5.4",
202202modelProvider: "openai",
203+cwd: "/tmp/openclaw-agent",
203204approvalPolicy: "on-request",
204205sandbox: "read-only",
206+serviceName: "OpenClaw",
207+developerInstructions:
208+"You are OpenClaw's bounded image-understanding worker. Describe only the provided image content. Do not call tools, edit files, or ask follow-up questions.",
205209dynamicTools: [],
210+experimentalRawEvents: true,
206211ephemeral: true,
207212persistExtendedHistory: false,
208213});
209-expect(requests[2]?.params).toMatchObject({
214+expect(requests[2]?.params).toEqual({
210215threadId: "thread-1",
211-approvalPolicy: "on-request",
212-model: "gpt-5.4",
213216input: [
214217{ type: "text", text: "Describe briefly.", text_elements: [] },
215218{ type: "image", url: "data:image/png;base64,aW1hZ2UtYnl0ZXM=" },
216219],
220+cwd: "/tmp/openclaw-agent",
221+approvalPolicy: "on-request",
222+model: "gpt-5.4",
223+effort: "low",
217224});
218225});
219226@@ -347,27 +354,47 @@ describe("codex media understanding provider", () => {
347354"thread/start",
348355"turn/start",
349356]);
350-expect(requests[1]?.params).toMatchObject({
357+expect(requests[1]?.params).toEqual({
351358model: "gpt-5.4",
352359modelProvider: "openai",
360+cwd: "/tmp/openclaw-agent",
353361approvalPolicy: "on-request",
354362sandbox: "read-only",
363+serviceName: "OpenClaw",
364+developerInstructions:
365+"You are OpenClaw's bounded structured-extraction worker. Return only the requested extraction. Do not call tools, edit files, ask follow-up questions, or include secrets.",
355366dynamicTools: [],
367+experimentalRawEvents: true,
356368ephemeral: true,
357369persistExtendedHistory: false,
358370});
359-expect(requests[2]?.params).toMatchObject({
360-threadId: "thread-1",
361-approvalPolicy: "on-request",
362-model: "gpt-5.4",
363-input: [
364-expect.objectContaining({
365-type: "text",
366-text: expect.stringContaining("Return valid JSON only"),
367-}),
368-{ type: "text", text: "Extract searchable evidence.", text_elements: [] },
369-{ type: "image", url: "data:image/png;base64,aW1hZ2UtYnl0ZXM=" },
370-],
371+const turnParams = requests[2]?.params as
372+| {
373+threadId?: unknown;
374+approvalPolicy?: unknown;
375+model?: unknown;
376+input?: Array<{ type?: unknown; text?: unknown; text_elements?: unknown; url?: unknown }>;
377+cwd?: unknown;
378+effort?: unknown;
379+}
380+| undefined;
381+expect(turnParams?.threadId).toBe("thread-1");
382+expect(turnParams?.approvalPolicy).toBe("on-request");
383+expect(turnParams?.model).toBe("gpt-5.4");
384+expect(turnParams?.cwd).toBe("/tmp/openclaw-agent");
385+expect(turnParams?.effort).toBe("low");
386+expect(turnParams?.input).toHaveLength(3);
387+expect(turnParams?.input?.[0]?.type).toBe("text");
388+expect(turnParams?.input?.[0]?.text).toContain("Return valid JSON only");
389+expect(turnParams?.input?.[0]?.text_elements).toStrictEqual([]);
390+expect(turnParams?.input?.[1]).toStrictEqual({
391+type: "text",
392+text: "Extract searchable evidence.",
393+text_elements: [],
394+});
395+expect(turnParams?.input?.[2]).toStrictEqual({
396+type: "image",
397+url: "data:image/png;base64,aW1hZ2UtYnl0ZXM=",
371398});
372399});
373400此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。