From 535fdcea2c6a47251eb677c652ea3457d98a8190 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Thu, 23 Apr 2026 21:20:23 +0200 Subject: [PATCH] test(ai): refresh responses and codex e2e coverage closes #3576 --- packages/ai/CHANGELOG.md | 1 + packages/ai/test/stream.test.ts | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/ai/CHANGELOG.md b/packages/ai/CHANGELOG.md index add6f587..d118b3d5 100644 --- a/packages/ai/CHANGELOG.md +++ b/packages/ai/CHANGELOG.md @@ -9,6 +9,7 @@ ### Fixed - Fixed `openai-completions` streamed tool-call assembly to coalesce deltas by stable tool index when OpenAI-compatible gateways mutate tool call IDs mid-stream, preventing malformed Kimi K2.6/OpenCode tool streams from splitting one call into multiple bogus tool calls ([#3576](https://github.com/badlogic/pi-mono/issues/3576)) +- Fixed `packages/ai` E2E coverage to use currently supported OpenAI Responses and OpenAI Codex models, and updated the Bedrock adaptive-thinking payload expectation to match the current `display: "summarized"` shape. - Fixed built-in `kimi-coding` model generation to attach `User-Agent: KimiCLI/1.5` to all generated Kimi models, overriding the Anthropic SDK default UA so direct Kimi Coding requests use the provider's expected client identity ([#3586](https://github.com/badlogic/pi-mono/issues/3586)) ## [0.69.0] - 2026-04-22 diff --git a/packages/ai/test/stream.test.ts b/packages/ai/test/stream.test.ts index 4bfdedc7..432a47c7 100644 --- a/packages/ai/test/stream.test.ts +++ b/packages/ai/test/stream.test.ts @@ -447,8 +447,8 @@ describe("Generate E2E Tests", () => { }); }); - describe.skipIf(!process.env.OPENAI_API_KEY)("OpenAI Responses Provider (gpt-5-mini)", () => { - const llm = getModel("openai", "gpt-5-mini"); + describe.skipIf(!process.env.OPENAI_API_KEY)("OpenAI Responses Provider (gpt-5.4)", () => { + const llm = getModel("openai", "gpt-5.4"); it("should complete basic text generation", { retry: 3 }, async () => { await basicTextGeneration(llm); @@ -1120,8 +1120,8 @@ describe("Generate E2E Tests", () => { }); }); - describe("OpenAI Codex Provider (gpt-5.3-codex)", () => { - const llm = getModel("openai-codex", "gpt-5.3-codex"); + describe("OpenAI Codex Provider (gpt-5.5)", () => { + const llm = getModel("openai-codex", "gpt-5.5"); it.skipIf(!openaiCodexToken)("should complete basic text generation", { retry: 3 }, async () => { await basicTextGeneration(llm, { apiKey: openaiCodexToken }); @@ -1148,8 +1148,8 @@ describe("Generate E2E Tests", () => { }); }); - describe("OpenAI Codex Provider (gpt-5.3-codex via WebSocket)", () => { - const llm = getModel("openai-codex", "gpt-5.3-codex"); + describe("OpenAI Codex Provider (gpt-5.5 via WebSocket)", () => { + const llm = getModel("openai-codex", "gpt-5.5"); const wsOptions = { apiKey: openaiCodexToken, transport: "websocket" as const }; it.skipIf(!openaiCodexToken)("should complete basic text generation", { retry: 3 }, async () => { @@ -1237,13 +1237,16 @@ describe("Generate E2E Tests", () => { const payload = capturedPayload as { additionalModelRequestFields?: { - thinking?: { type?: string }; + thinking?: { type?: string; display?: string }; output_config?: { effort?: string }; anthropic_beta?: string[]; }; }; - expect(payload.additionalModelRequestFields?.thinking).toEqual({ type: "adaptive" }); + expect(payload.additionalModelRequestFields?.thinking).toEqual({ + type: "adaptive", + display: "summarized", + }); expect(payload.additionalModelRequestFields?.output_config).toEqual({ effort: "max" }); expect(payload.additionalModelRequestFields?.anthropic_beta).toBeUndefined(); });