diff --git a/packages/ai/src/providers/pi-native-server.ts b/packages/ai/src/providers/pi-native-server.ts index b8eddd2c7..7fc3878af 100644 --- a/packages/ai/src/providers/pi-native-server.ts +++ b/packages/ai/src/providers/pi-native-server.ts @@ -78,6 +78,7 @@ const ALLOWED_OPTION_KEYS: ReadonlySet = new Set([ "preferWebsockets", "openrouterVariant", "loopGuard", + "acceptEmptyResponse", ] as const satisfies readonly (keyof SimpleStreamOptions)[]); // --------------------------------------------------------------------------- diff --git a/packages/ai/test/auth-gateway-pi-native.test.ts b/packages/ai/test/auth-gateway-pi-native.test.ts index 330fc0b71..df2439d19 100644 --- a/packages/ai/test/auth-gateway-pi-native.test.ts +++ b/packages/ai/test/auth-gateway-pi-native.test.ts @@ -145,6 +145,15 @@ describe("pi-native parseRequest", () => { expect(parsed.options.loopGuard).toEqual({ enabled: false }); }); + it("forwards acceptEmptyResponse so a passive Google advisor can accept silence server-side", () => { + const parsed = parseRequest({ + modelId: "google/gemini-3.6-flash", + context: baseContext, + options: { acceptEmptyResponse: true }, + }); + expect(parsed.options.acceptEmptyResponse).toBe(true); + }); + it("forwards an explicit statefulResponses disablement to the native stream", () => { const parsed = parseRequest({ modelId: "openai/gpt-5",