Normalize canonical API formats

This commit is contained in:
fawney19
2026-04-29 10:20:41 +08:00
parent 02ad67fe33
commit 07a319259b
171 changed files with 2460 additions and 1962 deletions
@@ -135,7 +135,7 @@ describe('usage status helpers', () => {
it('defaults OpenAI and Claude requests to non-stream when client flags are absent', () => {
expect(formatUsageStreamLabel(buildUsageRecord({
api_format: 'openai:cli',
api_format: 'openai:responses',
is_stream: true,
upstream_is_stream: true,
client_requested_stream: undefined,
@@ -143,7 +143,7 @@ describe('usage status helpers', () => {
}))).toBe('标准->流式')
expect(formatUsageStreamLabel(buildUsageRecord({
api_format: 'claude:chat',
api_format: 'claude:messages',
is_stream: false,
upstream_is_stream: false,
client_requested_stream: undefined,
@@ -153,7 +153,7 @@ describe('usage status helpers', () => {
it('keeps upstream fallback for formats without a default non-stream convention', () => {
expect(formatUsageStreamLabel(buildUsageRecord({
api_format: 'gemini:cli',
api_format: 'gemini:generate_content',
is_stream: true,
upstream_is_stream: true,
client_requested_stream: undefined,
@@ -163,7 +163,7 @@ describe('usage status helpers', () => {
it('prefers client_requested_stream over stale client_is_stream when they disagree', () => {
expect(formatUsageStreamLabel(buildUsageRecord({
api_format: 'openai:cli',
api_format: 'openai:responses',
is_stream: true,
upstream_is_stream: true,
client_requested_stream: false,
+3 -8
View File
@@ -124,14 +124,10 @@ function normalizeUsageStreamApiFormat(value: string | null | undefined): string
switch (normalized) {
case 'openai':
return 'openai:chat'
case 'openai:cli':
return 'openai:responses'
case 'openai:compact':
return 'openai:responses:compact'
case 'claude':
return 'claude:chat'
return 'claude:messages'
case 'gemini':
return 'gemini:chat'
return 'gemini:generate_content'
default:
return normalized
}
@@ -143,8 +139,7 @@ function usageApiFormatDefaultsToNonStream(apiFormat: string): boolean {
case 'openai:responses':
case 'openai:responses:compact':
case 'openai:image':
case 'claude:chat':
case 'claude:cli':
case 'claude:messages':
return true
default:
return false