From 8488a47c862047cb3077b6183bafbf7bdeef5867 Mon Sep 17 00:00:00 2001 From: kosta Date: Mon, 7 Sep 2026 19:08:55 -0400 Subject: [PATCH] fix(responses): strip Muse web_search fields on direct Meta Direct api.meta.ai still 400s Codex search_content_types on ordinary web_search for Muse Spark Contributor. #3456 scoped the sanitizer to OpenCode Zen/Go URLs and preserved the field for Meta; live 2026-09-07 traffic shows Meta rejects the same field. Add https://api.meta.ai/v1/responses to the exact-URL allowlist and invert the Meta preservation regression. --- ...se-spark-meta-search-content-types-400.jpg | Bin 0 -> 61033 bytes src/adapters/openai-responses.ts | 14 +++--- .../muse-spark-web-search-compat.test.ts | 40 ++++++++++++++++-- 3 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 .github/pr-assets/muse-spark-meta-search-content-types-400.jpg diff --git a/.github/pr-assets/muse-spark-meta-search-content-types-400.jpg b/.github/pr-assets/muse-spark-meta-search-content-types-400.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d18dd98dab30eae3b04688f587440bd1942c35d5 GIT binary patch literal 61033 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 { return { @@ -219,7 +225,14 @@ describe("#2617/#3378 Muse Spark web_search compatibility", () => { } }); - test("direct Meta preserves its web_search fields at both tool positions", () => { + /** + * #3456 scoped the guard to OpenCode Zen/Go URLs on the assumption that + * `https://api.meta.ai/v1` accepted Codex's extra web_search fields. Direct + * Meta still 400s `tools[].search_content_types` on ordinary `web_search` + * (live 2026-09-07 against muse-spark-1.3-contributor). Same model-id set, + * same field drop, same preview preservation. + */ + test("direct Meta strips rejected web_search fields at both tool positions", () => { const body = buildForProvider(META_PROVIDER, "muse-spark-1.3-contributor", { tools: [webSearchTool()], input: [{ type: "additional_tools", tools: [webSearchTool()] }], @@ -228,8 +241,29 @@ describe("#2617/#3378 Muse Spark web_search compatibility", () => { const item = (body.input as Array>)[0]!; const nested = (item.tools as Array>)[0]!; for (const declaration of [tool, nested]) { - expect(declaration.search_content_types).toEqual(["text", "image"]); - expect(declaration.indexed_web_access).toBe(true); + expect(declaration.type).toBe("web_search"); + expect(declaration.search_context_size).toBe("medium"); + expect(Object.hasOwn(declaration, "search_content_types")).toBe(false); + expect(Object.hasOwn(declaration, "indexed_web_access")).toBe(false); } }); + + test("direct Meta keeps the field on web_search_preview", () => { + const body = buildForProvider(META_PROVIDER, "muse-spark-1.3-contributor", { + tools: [{ ...webSearchTool(), type: "web_search_preview" }], + }); + const tool = toolsOf(body)[0]!; + expect(tool.type).toBe("web_search_preview"); + expect(tool.search_content_types).toEqual(["text", "image"]); + expect(tool.indexed_web_access).toBe(true); + }); + + test("split Meta baseUrl and responsesPath derives the same strict destination", () => { + const body = buildForProvider(META_PATH_PROVIDER, "muse-spark-1.3-contributor", { + tools: [webSearchTool()], + }); + const tool = toolsOf(body)[0]!; + expect(Object.hasOwn(tool, "search_content_types")).toBe(false); + expect(Object.hasOwn(tool, "indexed_web_access")).toBe(false); + }); });