fix: force identity encoding for claude messages
This commit is contained in:
@@ -83,7 +83,7 @@ function buildClaudeRuntimeHeaders(input: {
|
|||||||
'User-Agent': getInputHeader(input.claudeHeaders, 'user-agent') || CLAUDE_DEFAULT_USER_AGENT,
|
'User-Agent': getInputHeader(input.claudeHeaders, 'user-agent') || CLAUDE_DEFAULT_USER_AGENT,
|
||||||
Connection: 'keep-alive',
|
Connection: 'keep-alive',
|
||||||
Accept: input.stream ? 'text/event-stream' : 'application/json',
|
Accept: input.stream ? 'text/event-stream' : 'application/json',
|
||||||
'Accept-Encoding': input.stream ? 'identity' : 'gzip, deflate, br, zstd',
|
'Accept-Encoding': 'identity',
|
||||||
};
|
};
|
||||||
if (input.isClaudeOauthUpstream) {
|
if (input.isClaudeOauthUpstream) {
|
||||||
headers.Authorization = `Bearer ${input.tokenValue}`;
|
headers.Authorization = `Bearer ${input.tokenValue}`;
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ describe('resolveProviderProfile', () => {
|
|||||||
expect(result.headers.Authorization).toBe('Bearer oauth-access-token');
|
expect(result.headers.Authorization).toBe('Bearer oauth-access-token');
|
||||||
expect(result.headers['x-api-key']).toBeUndefined();
|
expect(result.headers['x-api-key']).toBeUndefined();
|
||||||
expect(result.headers['anthropic-version']).toBe('2023-06-01');
|
expect(result.headers['anthropic-version']).toBe('2023-06-01');
|
||||||
|
expect(result.headers['Accept-Encoding']).toBe('identity');
|
||||||
expect(result.runtime).toMatchObject({
|
expect(result.runtime).toMatchObject({
|
||||||
executor: 'claude',
|
executor: 'claude',
|
||||||
modelName: 'claude-opus-4-6',
|
modelName: 'claude-opus-4-6',
|
||||||
|
|||||||
@@ -867,7 +867,7 @@ describe('buildUpstreamEndpointRequest', () => {
|
|||||||
expect(request.headers['Accept-Encoding']).toBe('identity');
|
expect(request.headers['Accept-Encoding']).toBe('identity');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('uses claude-code beta headers and compressed non-stream responses for claude upstream requests', () => {
|
it('uses claude-code beta headers and uncompressed non-stream responses for claude upstream requests', () => {
|
||||||
const request = buildUpstreamEndpointRequest({
|
const request = buildUpstreamEndpointRequest({
|
||||||
endpoint: 'messages',
|
endpoint: 'messages',
|
||||||
modelName: 'claude-opus-4-6',
|
modelName: 'claude-opus-4-6',
|
||||||
@@ -887,7 +887,7 @@ describe('buildUpstreamEndpointRequest', () => {
|
|||||||
expect(request.headers['anthropic-beta']).toContain('oauth-2025-04-20');
|
expect(request.headers['anthropic-beta']).toContain('oauth-2025-04-20');
|
||||||
expect(request.headers['anthropic-beta']).toContain('context-management-2025-06-27');
|
expect(request.headers['anthropic-beta']).toContain('context-management-2025-06-27');
|
||||||
expect(request.headers.Accept).toBe('application/json');
|
expect(request.headers.Accept).toBe('application/json');
|
||||||
expect(request.headers['Accept-Encoding']).toBe('gzip, deflate, br, zstd');
|
expect(request.headers['Accept-Encoding']).toBe('identity');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('converts system roles to developer in native codex responses bodies', () => {
|
it('converts system roles to developer in native codex responses bodies', () => {
|
||||||
|
|||||||
@@ -443,7 +443,7 @@ function buildClaudeRuntimeHeaders(input: {
|
|||||||
'User-Agent': getInputHeader(input.claudeHeaders, 'user-agent') || CLAUDE_DEFAULT_USER_AGENT,
|
'User-Agent': getInputHeader(input.claudeHeaders, 'user-agent') || CLAUDE_DEFAULT_USER_AGENT,
|
||||||
Connection: 'keep-alive',
|
Connection: 'keep-alive',
|
||||||
Accept: input.stream ? 'text/event-stream' : 'application/json',
|
Accept: input.stream ? 'text/event-stream' : 'application/json',
|
||||||
'Accept-Encoding': input.stream ? 'identity' : 'gzip, deflate, br, zstd',
|
'Accept-Encoding': 'identity',
|
||||||
};
|
};
|
||||||
if (input.isClaudeOauthUpstream) {
|
if (input.isClaudeOauthUpstream) {
|
||||||
headers.Authorization = `Bearer ${input.tokenValue}`;
|
headers.Authorization = `Bearer ${input.tokenValue}`;
|
||||||
|
|||||||
Reference in New Issue
Block a user