@@ -665,6 +665,50 @@ describe("openai transport stream", () => {
|
665 | 665 | version: "2026.3.22", |
666 | 666 | "User-Agent": "openclaw/2026.3.22", |
667 | 667 | }); |
| 668 | +expect(headers.Accept).toBeUndefined(); |
| 669 | +expect(headers.accept).toBeUndefined(); |
| 670 | +}); |
| 671 | + |
| 672 | +it("adds SSE Accept only to native ChatGPT/Codex Responses stream requests", () => { |
| 673 | +const codexModel = { |
| 674 | +id: "gpt-5.5", |
| 675 | +name: "GPT-5.5", |
| 676 | +api: "openai-chatgpt-responses", |
| 677 | +provider: "openai", |
| 678 | +baseUrl: "https://chatgpt.com/backend-api/codex", |
| 679 | +reasoning: true, |
| 680 | +input: ["text"], |
| 681 | +cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, |
| 682 | +contextWindow: 400000, |
| 683 | +maxTokens: 128000, |
| 684 | +} satisfies Model<"openai-chatgpt-responses">; |
| 685 | +const transportAliasModel = { |
| 686 | + ...codexModel, |
| 687 | +api: "openclaw-openai-responses-transport" as Api, |
| 688 | +} satisfies Model; |
| 689 | +const nonNativeChatGPTModel = { |
| 690 | + ...codexModel, |
| 691 | +baseUrl: "https://api.openai.com/v1", |
| 692 | +} satisfies Model<"openai-chatgpt-responses">; |
| 693 | +const openAIModel = { |
| 694 | + ...codexModel, |
| 695 | +api: "openai-responses", |
| 696 | +baseUrl: "https://api.openai.com/v1", |
| 697 | +} satisfies Model<"openai-responses">; |
| 698 | + |
| 699 | +expect(testing.buildOpenAISdkRequestOptions(codexModel, undefined, { stream: true })).toEqual({ |
| 700 | +headers: { Accept: "text/event-stream" }, |
| 701 | +}); |
| 702 | +expect( |
| 703 | +testing.buildOpenAISdkRequestOptions(transportAliasModel, undefined, { stream: true }), |
| 704 | +).toEqual({ headers: { Accept: "text/event-stream" } }); |
| 705 | +expect(testing.buildOpenAISdkRequestOptions(codexModel)).toBeUndefined(); |
| 706 | +expect( |
| 707 | +testing.buildOpenAISdkRequestOptions(nonNativeChatGPTModel, undefined, { stream: true }), |
| 708 | +).toBeUndefined(); |
| 709 | +expect( |
| 710 | +testing.buildOpenAISdkRequestOptions(openAIModel, undefined, { stream: true }), |
| 711 | +).toBeUndefined(); |
668 | 712 | }); |
669 | 713 | |
670 | 714 | it("moves Azure OpenAI completions api-version headers into default query params", () => { |
|