From d32545874de5d5d56bca6d254797c434a03b4032 Mon Sep 17 00:00:00 2001 From: can1357 Date: Mon, 27 Jul 2026 05:03:29 +0200 Subject: [PATCH] fix(catalog): declared signingEndpoint on spec-level AnthropicCompat - Runtime already honored spec compat signingEndpoint via applyCompatOverrides and generated models.json emits it; the spec interface never declared it, breaking typecheck for explicit opaque-proxy overrides (#6717 remediation path). - Moved the resolved-view doc onto the spec field; ResolvedAnthropicCompat keeps only officialEndpoint as resolved-exclusive. --- packages/catalog/src/types.ts | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/catalog/src/types.ts b/packages/catalog/src/types.ts index 8f070099a..acaa86730 100644 --- a/packages/catalog/src/types.ts +++ b/packages/catalog/src/types.ts @@ -471,6 +471,20 @@ export interface AnthropicCompat { * blocks instead of normal `tool_use` calls. */ escapeBuiltinToolNames?: boolean; + /** + * The configured endpoint enforces Anthropic's signature protocol on + * replayed thinking blocks — either the official API itself or a proxy + * that forwards to it (GitHub Copilot, ZenMux, Cloudflare AI Gateway's + * `/anthropic` route, Google Vertex's `publishers/anthropic/…`). + * Downstream transforms strip stale cross-model thinking signatures on + * these endpoints so the signing proxy doesn't 400 with + * `Invalid signature in thinking block` (#4297), and adaptive-thinking + * models keep the interleaved-thinking beta on them (#6717). Known hosts + * are auto-detected from provider id and baseUrl; set this to mark an + * opaque signing proxy the URL list can't recognize. Superset of + * {@link ResolvedAnthropicCompat.officialEndpoint}. + */ + signingEndpoint?: boolean; } /** @@ -704,17 +718,6 @@ export type ResolvedAnthropicCompat = Required & { * env headers, and cache-TTL shaping without per-request URL parsing. */ officialEndpoint: boolean; - /** - * The configured endpoint enforces Anthropic's signature protocol on - * replayed thinking blocks — either the official API itself or a proxy - * that forwards to it (GitHub Copilot, ZenMux, Cloudflare AI Gateway's - * `/anthropic` route, Google Vertex's `publishers/anthropic/…`). - * Downstream transforms strip stale cross-model thinking signatures on - * these endpoints so the signing proxy doesn't 400 with - * `Invalid signature in thinking block` (#4297). Superset of - * {@link officialEndpoint}. - */ - signingEndpoint: boolean; }; /**