fix(gateway): use full beta list in buildUpstreamRequest mimicry path
The previous commit added FullClaudeCodeMimicryBetas() but the two call sites in buildUpstreamRequest still hardcoded the old 3-token subset. Anthropic now checks the complete set of beta tokens to decide if a request qualifies as Claude Code. Wire them up: - /v1/messages mimic path: requiredBetas = FullClaudeCodeMimicryBetas() - /v1/messages/count_tokens mimic path: same + BetaTokenCounting Haiku models keep the 2-token exemption (BetaOAuth + InterleaveThinking).
This commit is contained in:
@@ -5738,7 +5738,7 @@ func (s *GatewayService) buildUpstreamRequest(ctx context.Context, c *gin.Contex
|
|||||||
// Haiku models are exempt from third-party detection and don't need it.
|
// Haiku models are exempt from third-party detection and don't need it.
|
||||||
requiredBetas := []string{claude.BetaOAuth, claude.BetaInterleavedThinking}
|
requiredBetas := []string{claude.BetaOAuth, claude.BetaInterleavedThinking}
|
||||||
if !strings.Contains(strings.ToLower(modelID), "haiku") {
|
if !strings.Contains(strings.ToLower(modelID), "haiku") {
|
||||||
requiredBetas = []string{claude.BetaClaudeCode, claude.BetaOAuth, claude.BetaInterleavedThinking}
|
requiredBetas = claude.FullClaudeCodeMimicryBetas()
|
||||||
}
|
}
|
||||||
setHeaderRaw(req.Header, "anthropic-beta", mergeAnthropicBetaDropping(requiredBetas, incomingBeta, effectiveDropSet))
|
setHeaderRaw(req.Header, "anthropic-beta", mergeAnthropicBetaDropping(requiredBetas, incomingBeta, effectiveDropSet))
|
||||||
} else {
|
} else {
|
||||||
@@ -8739,7 +8739,7 @@ func (s *GatewayService) buildCountTokensRequest(ctx context.Context, c *gin.Con
|
|||||||
applyClaudeCodeMimicHeaders(req, false)
|
applyClaudeCodeMimicHeaders(req, false)
|
||||||
|
|
||||||
incomingBeta := getHeaderRaw(req.Header, "anthropic-beta")
|
incomingBeta := getHeaderRaw(req.Header, "anthropic-beta")
|
||||||
requiredBetas := []string{claude.BetaClaudeCode, claude.BetaOAuth, claude.BetaInterleavedThinking, claude.BetaTokenCounting}
|
requiredBetas := append(claude.FullClaudeCodeMimicryBetas(), claude.BetaTokenCounting)
|
||||||
setHeaderRaw(req.Header, "anthropic-beta", mergeAnthropicBetaDropping(requiredBetas, incomingBeta, ctEffectiveDropSet))
|
setHeaderRaw(req.Header, "anthropic-beta", mergeAnthropicBetaDropping(requiredBetas, incomingBeta, ctEffectiveDropSet))
|
||||||
} else {
|
} else {
|
||||||
clientBetaHeader := getHeaderRaw(req.Header, "anthropic-beta")
|
clientBetaHeader := getHeaderRaw(req.Header, "anthropic-beta")
|
||||||
|
|||||||
Reference in New Issue
Block a user