

























@@ -1020,7 +1020,7 @@ describe("openai transport stream", () => {
10201020expect(params.max_output_tokens).toBe(65_536);
10211021});
102210221023-it("uses top-level instructions for Codex responses and strips unsupported ChatGPT params", () => {
1023+it("uses top-level instructions for Codex responses and preserves prompt cache identity", () => {
10241024const params = buildOpenAIResponsesParams(
10251025{
10261026id: "gpt-5.4",
@@ -1059,7 +1059,7 @@ describe("openai transport stream", () => {
10591059expect(params.input?.some((item) => item.role === "system" || item.role === "developer")).toBe(
10601060false,
10611061);
1062-expect(params).not.toHaveProperty("prompt_cache_key");
1062+expect(params.prompt_cache_key).toBe("session-123");
10631063expect(params.store).toBe(false);
10641064expect(params).not.toHaveProperty("metadata");
10651065expect(params).not.toHaveProperty("max_output_tokens");
@@ -1068,7 +1068,7 @@ describe("openai transport stream", () => {
10681068expect(params).not.toHaveProperty("temperature");
10691069});
107010701071-it("sanitizes Codex responses params after payload hooks mutate them", () => {
1071+it("sanitizes Codex responses params after payload hooks mutate them without stripping cache identity", () => {
10721072const payload = {
10731073model: "gpt-5.4",
10741074input: [],
@@ -1097,7 +1097,7 @@ describe("openai transport stream", () => {
10971097payload,
10981098);
109910991100-expect(sanitized).not.toHaveProperty("prompt_cache_key");
1100+expect(sanitized.prompt_cache_key).toBe("session-123");
11011101expect(sanitized).not.toHaveProperty("metadata");
11021102expect(sanitized).not.toHaveProperty("max_output_tokens");
11031103expect(sanitized).not.toHaveProperty("prompt_cache_retention");
@@ -1257,10 +1257,16 @@ describe("openai transport stream", () => {
12571257id?: string;
12581258call_id?: string;
12591259phase?: string;
1260+encrypted_content?: string;
12601261}>;
12611262};
126212631263-expect(params.input?.some((item) => item.type === "reasoning")).toBe(false);
1264+const reasoningItem = params.input?.find((item) => item.type === "reasoning");
1265+expect(reasoningItem).toMatchObject({
1266+type: "reasoning",
1267+encrypted_content: "ciphertext",
1268+});
1269+expect(reasoningItem?.id).toBeUndefined();
12641270const assistantMessage = params.input?.find(
12651271(item) => item.type === "message" && item.role === "assistant",
12661272);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。