支持 Gemini Interactions 与 Antigravity 配额精细化

This commit is contained in:
MMEXA
2026-07-08 22:34:29 +08:00
parent 1ca83ca3fb
commit 80a6579766
41 changed files with 1072 additions and 225 deletions
@@ -17,6 +17,7 @@ describe('api format display helpers', () => {
expect(normalizeApiFormatAlias('GEMINI_GENERATE_CONTENT')).toBe(API_FORMATS.GEMINI_GENERATE_CONTENT)
expect(normalizeApiFormatAlias('OPENAI_EMBEDDING')).toBe(API_FORMATS.OPENAI_EMBEDDING)
expect(normalizeApiFormatAlias('OPENAI_RERANK')).toBe(API_FORMATS.OPENAI_RERANK)
expect(normalizeApiFormatAlias('GEMINI_INTERACTIONS')).toBe(API_FORMATS.GEMINI_INTERACTIONS)
expect(normalizeApiFormatAlias('GEMINI_EMBEDDING')).toBe(API_FORMATS.GEMINI_EMBEDDING)
expect(normalizeApiFormatAlias('JINA_EMBEDDING')).toBe(API_FORMATS.JINA_EMBEDDING)
expect(normalizeApiFormatAlias('JINA_RERANK')).toBe(API_FORMATS.JINA_RERANK)
@@ -33,6 +34,8 @@ describe('api format display helpers', () => {
})
it('formats embedding api format ids distinctly from chat formats', () => {
expect(formatApiFormat(API_FORMATS.GEMINI_INTERACTIONS)).toBe('Gemini Interactions')
expect(formatApiFormatShort(API_FORMATS.GEMINI_INTERACTIONS)).toBe('GI')
expect(formatApiFormat(API_FORMATS.OPENAI_EMBEDDING)).toBe('OpenAI Embedding')
expect(formatApiFormat(API_FORMATS.GEMINI_EMBEDDING)).toBe('Gemini Embedding')
expect(formatApiFormat(API_FORMATS.JINA_EMBEDDING)).toBe('Jina Embedding')
@@ -73,6 +76,7 @@ describe('api format display helpers', () => {
API_FORMATS.OPENAI_RESPONSES,
API_FORMATS.OPENAI_EMBEDDING,
API_FORMATS.OPENAI_RERANK,
API_FORMATS.GEMINI_INTERACTIONS,
API_FORMATS.GEMINI_EMBEDDING,
API_FORMATS.JINA_EMBEDDING,
API_FORMATS.JINA_RERANK,
@@ -82,6 +86,7 @@ describe('api format display helpers', () => {
API_FORMATS.OPENAI_RESPONSES,
API_FORMATS.OPENAI_EMBEDDING,
API_FORMATS.OPENAI_RERANK,
API_FORMATS.GEMINI_INTERACTIONS,
API_FORMATS.GEMINI_EMBEDDING,
API_FORMATS.JINA_EMBEDDING,
API_FORMATS.JINA_RERANK,
@@ -97,12 +102,14 @@ describe('api format display helpers', () => {
API_FORMATS.OPENAI_EMBEDDING,
API_FORMATS.OPENAI_RERANK,
API_FORMATS.GEMINI_GENERATE_CONTENT,
API_FORMATS.GEMINI_INTERACTIONS,
API_FORMATS.OPENAI,
])).toEqual([
API_FORMATS.OPENAI,
API_FORMATS.OPENAI_EMBEDDING,
API_FORMATS.OPENAI_RERANK,
API_FORMATS.GEMINI_GENERATE_CONTENT,
API_FORMATS.GEMINI_INTERACTIONS,
API_FORMATS.GEMINI_EMBEDDING,
])
})
@@ -12,6 +12,7 @@ export const API_FORMATS = {
OPENAI_RERANK: 'openai:rerank',
GEMINI: 'gemini:generate_content',
GEMINI_GENERATE_CONTENT: 'gemini:generate_content',
GEMINI_INTERACTIONS: 'gemini:interactions',
GEMINI_VIDEO: 'gemini:video',
GEMINI_FILES: 'gemini:files',
GEMINI_EMBEDDING: 'gemini:embedding',
@@ -34,6 +35,7 @@ export const API_FORMAT_LABELS: Record<string, string> = {
[API_FORMATS.OPENAI_EMBEDDING]: 'OpenAI Embedding',
[API_FORMATS.OPENAI_RERANK]: 'OpenAI Rerank',
[API_FORMATS.GEMINI_GENERATE_CONTENT]: 'Gemini Generate Content',
[API_FORMATS.GEMINI_INTERACTIONS]: 'Gemini Interactions',
[API_FORMATS.GEMINI_VIDEO]: 'Gemini Video',
[API_FORMATS.GEMINI_FILES]: 'Gemini Files',
[API_FORMATS.GEMINI_EMBEDDING]: 'Gemini Embedding',
@@ -52,6 +54,7 @@ export const API_FORMAT_LABELS: Record<string, string> = {
OPENAI_RERANK: 'OpenAI Rerank',
GEMINI: 'Gemini Generate Content',
GEMINI_GENERATE_CONTENT: 'Gemini Generate Content',
GEMINI_INTERACTIONS: 'Gemini Interactions',
GEMINI_VIDEO: 'Gemini Video',
GEMINI_FILES: 'Gemini Files',
GEMINI_EMBEDDING: 'Gemini Embedding',
@@ -72,6 +75,7 @@ export const API_FORMAT_SHORT: Record<string, string> = {
[API_FORMATS.OPENAI_RERANK]: 'ORR',
[API_FORMATS.CLAUDE_MESSAGES]: 'CM',
[API_FORMATS.GEMINI_GENERATE_CONTENT]: 'G',
[API_FORMATS.GEMINI_INTERACTIONS]: 'GI',
[API_FORMATS.GEMINI_VIDEO]: 'GV',
[API_FORMATS.GEMINI_FILES]: 'GF',
[API_FORMATS.GEMINI_EMBEDDING]: 'GE',
@@ -90,6 +94,7 @@ export const API_FORMAT_SHORT: Record<string, string> = {
CLAUDE_MESSAGES: 'CM',
GEMINI: 'G',
GEMINI_GENERATE_CONTENT: 'G',
GEMINI_INTERACTIONS: 'GI',
GEMINI_VIDEO: 'GV',
GEMINI_FILES: 'GF',
GEMINI_EMBEDDING: 'GE',
@@ -110,6 +115,7 @@ export const API_FORMAT_ORDER: string[] = [
API_FORMATS.OPENAI_VIDEO,
API_FORMATS.CLAUDE_MESSAGES,
API_FORMATS.GEMINI_GENERATE_CONTENT,
API_FORMATS.GEMINI_INTERACTIONS,
API_FORMATS.GEMINI_EMBEDDING,
API_FORMATS.GEMINI_VIDEO,
API_FORMATS.GEMINI_FILES,
@@ -136,6 +142,7 @@ export const API_FORMAT_KIND_LABELS: Record<string, string> = {
'responses:compact': 'Responses Compact',
messages: 'Messages',
generate_content: 'Generate Content',
interactions: 'Interactions',
image: 'Image',
video: 'Video',
files: 'Files',
@@ -178,6 +185,8 @@ export function normalizeApiFormatAlias(format: string | null | undefined): stri
case 'GEMINI':
case 'GEMINI_GENERATE_CONTENT':
return API_FORMATS.GEMINI_GENERATE_CONTENT
case 'GEMINI_INTERACTIONS':
return API_FORMATS.GEMINI_INTERACTIONS
case 'GEMINI_VIDEO':
return API_FORMATS.GEMINI_VIDEO
case 'GEMINI_FILES':
+10 -3
View File
@@ -344,9 +344,16 @@ export interface CodexUpstreamMetadata {
}
export interface AntigravityModelQuota {
remaining_fraction: number // 剩余比例 (0.0-1.0)
used_percent: number // 已用百分比 (0.0-100.0)
reset_time?: string // RFC3339
remaining_fraction?: number | string | null // 剩余比例 (0.0-1.0)
used_percent?: number | string | null // 已用百分比 (0.0-100.0)
remaining?: number | string | null
total?: number | string | null
reset_time?: string | null // RFC3339
reset_at?: number | string | null
display_name?: string | null
model_id?: string | null
token_type?: string | null
is_exhausted?: boolean | null
}
export interface AntigravityUpstreamMetadata {