diff --git a/packages/types/src/message.ts b/packages/types/src/message.ts index 82f58f29f2..39b7ed25e3 100644 --- a/packages/types/src/message.ts +++ b/packages/types/src/message.ts @@ -279,6 +279,18 @@ export const clineMessageSchema = z.object({ isProtected: z.boolean().optional(), apiProtocol: z.union([z.literal("openai"), z.literal("anthropic")]).optional(), isAnswered: z.boolean().optional(), + /** + * Optional metadata for API request tracking. + * Used for background mode status display. + */ + metadata: z + .object({ + background: z.boolean().optional(), + backgroundStatus: z + .enum(["queued", "in_progress", "reconnecting", "polling", "completed", "failed", "canceled"]) + .optional(), + }) + .optional(), }) export type ClineMessage = z.infer diff --git a/src/api/providers/__tests__/openai-native.spec.ts b/src/api/providers/__tests__/openai-native.spec.ts index b3500763c9..c0682d1644 100644 --- a/src/api/providers/__tests__/openai-native.spec.ts +++ b/src/api/providers/__tests__/openai-native.spec.ts @@ -1703,7 +1703,7 @@ describe("OpenAI Native streaming metadata tracking", () => { expect(chunks).toContainEqual({ type: "text", text: "A" }) expect(chunks).toContainEqual({ type: "reasoning", text: "B" }) expect(handler.getLastSequenceNumber()).toBe(3) - expect(handler.getLastResponseId()).toBe("resp_123") + expect(handler.getResponseId()).toBe("resp_123") }) })