






















@@ -4,10 +4,26 @@ import {
44installPinnedHostnameTestHooks,
55} from "openclaw/plugin-sdk/test-env";
66import { describe, expect, it } from "vitest";
7-import { transcribeOpenAiAudio } from "./media-understanding-provider.js";
7+import {
8+openaiCodexMediaUnderstandingProvider,
9+transcribeOpenAiAudio,
10+transcribeOpenAiCodexAudio,
11+} from "./media-understanding-provider.js";
812913installPinnedHostnameTestHooks();
101415+describe("openaiCodexMediaUnderstandingProvider", () => {
16+it("declares audio support with the transcription default", () => {
17+expect(openaiCodexMediaUnderstandingProvider.capabilities).toEqual(["image", "audio"]);
18+expect(openaiCodexMediaUnderstandingProvider.defaultModels).toEqual({
19+image: "gpt-5.5",
20+audio: "gpt-4o-transcribe",
21+});
22+expect(openaiCodexMediaUnderstandingProvider.autoPriority).toEqual({ image: 20, audio: 20 });
23+expect(openaiCodexMediaUnderstandingProvider.transcribeAudio).toBe(transcribeOpenAiCodexAudio);
24+});
25+});
26+1127describe("transcribeOpenAiAudio", () => {
1228it("respects lowercase authorization header overrides", async () => {
1329const { fetchFn, getAuthHeader } = createAuthCaptureJsonFetch({ text: "ok" });
@@ -82,3 +98,22 @@ describe("transcribeOpenAiAudio", () => {
8298).rejects.toThrow("Audio transcription response missing text");
8399});
84100});
101+102+describe("transcribeOpenAiCodexAudio", () => {
103+it("uses the OpenAI transcription default through the Codex provider id", async () => {
104+const { fetchFn, getRequest } = createRequestCaptureJsonFetch({ text: "hello" });
105+106+const result = await transcribeOpenAiCodexAudio({
107+buffer: Buffer.from("audio-bytes"),
108+fileName: "voice.wav",
109+apiKey: "test-key",
110+timeoutMs: 1234,
111+model: " ",
112+ fetchFn,
113+});
114+115+const form = getRequest().init?.body as FormData;
116+expect(result.model).toBe("gpt-4o-transcribe");
117+expect(form.get("model")).toBe("gpt-4o-transcribe");
118+});
119+});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。