@omnicross/contracts 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -188,6 +188,29 @@ type CopilotTokenConfig = {
188
188
  /** Managed-account credential warning (duplicate-token, projected on listing). */
189
189
  syncWarning?: SyncWarningCode;
190
190
  };
191
+ /**
192
+ * Antigravity (Google) token configuration. OAuth is an authorization-code
193
+ * flow (client_secret, no PKCE, loopback `127.0.0.1:51121`) on the
194
+ * Antigravity-dedicated Google client — a SEPARATE credential domain from
195
+ * `gemini`'s gemini-cli client. The access token serves the
196
+ * `daily-cloudcode-pa` inference/quota endpoints; `projectId` is the
197
+ * Cloud AI Companion project the post-login handshake discovers (a refresh
198
+ * product — re-resolved after every token refresh); `email` (from
199
+ * `oauth2/v1/userinfo`) is the account's display identifier.
200
+ */
201
+ type AntigravityTokenConfig = {
202
+ authMethod: AuthMethod;
203
+ status: TokenStatus;
204
+ accessToken?: string;
205
+ refreshToken?: string;
206
+ expiresAt?: string;
207
+ email?: string;
208
+ projectId?: string;
209
+ lastRefreshedAt?: string;
210
+ errorMessage?: string;
211
+ /** Managed-account credential warning (duplicate-token, projected on listing). */
212
+ syncWarning?: SyncWarningCode;
213
+ };
191
214
  /**
192
215
  * A single subscription account entry. The provider's existing token config
193
216
  * is carried verbatim under a nested `tokens` field; entry metadata
@@ -279,6 +302,7 @@ type AccountTokensConfig = {
279
302
  kimi?: KimiTokenConfig;
280
303
  grok?: GrokTokenConfig;
281
304
  copilot?: CopilotTokenConfig;
305
+ antigravity?: AntigravityTokenConfig;
282
306
  claudeAccounts?: SubscriptionAccountEntry<ClaudeTokenConfig>[];
283
307
  activeClaudeAccountId?: string;
284
308
  codexAccounts?: SubscriptionAccountEntry<CodexTokenConfig>[];
@@ -293,6 +317,8 @@ type AccountTokensConfig = {
293
317
  activeGrokAccountId?: string;
294
318
  copilotAccounts?: SubscriptionAccountEntry<CopilotTokenConfig>[];
295
319
  activeCopilotAccountId?: string;
320
+ antigravityAccounts?: SubscriptionAccountEntry<AntigravityTokenConfig>[];
321
+ activeAntigravityAccountId?: string;
296
322
  updatedAt: string;
297
323
  };
298
324
  /**
@@ -415,4 +441,4 @@ type TokenExchangeRequest = {
415
441
  state: string;
416
442
  };
417
443
 
418
- export type { AccountClientIdentity, AccountTokensConfig, AuthMethod, ClaudeAuthMethod, ClaudeTokenConfig, CodexTokenConfig, CopilotTokenConfig, GeminiTokenConfig, GrokTokenConfig, KimiTokenConfig, OAuthParams, ProxyConfig, SanitizedProxyConfig, SubscriptionAccountEntry, SubscriptionAccountSanitized, SubscriptionLevel, SyncWarningCode, TokenExchangeRequest, TokenStatus };
444
+ export type { AccountClientIdentity, AccountTokensConfig, AntigravityTokenConfig, AuthMethod, ClaudeAuthMethod, ClaudeTokenConfig, CodexTokenConfig, CopilotTokenConfig, GeminiTokenConfig, GrokTokenConfig, KimiTokenConfig, OAuthParams, ProxyConfig, SanitizedProxyConfig, SubscriptionAccountEntry, SubscriptionAccountSanitized, SubscriptionLevel, SyncWarningCode, TokenExchangeRequest, TokenStatus };
@@ -188,6 +188,29 @@ type CopilotTokenConfig = {
188
188
  /** Managed-account credential warning (duplicate-token, projected on listing). */
189
189
  syncWarning?: SyncWarningCode;
190
190
  };
191
+ /**
192
+ * Antigravity (Google) token configuration. OAuth is an authorization-code
193
+ * flow (client_secret, no PKCE, loopback `127.0.0.1:51121`) on the
194
+ * Antigravity-dedicated Google client — a SEPARATE credential domain from
195
+ * `gemini`'s gemini-cli client. The access token serves the
196
+ * `daily-cloudcode-pa` inference/quota endpoints; `projectId` is the
197
+ * Cloud AI Companion project the post-login handshake discovers (a refresh
198
+ * product — re-resolved after every token refresh); `email` (from
199
+ * `oauth2/v1/userinfo`) is the account's display identifier.
200
+ */
201
+ type AntigravityTokenConfig = {
202
+ authMethod: AuthMethod;
203
+ status: TokenStatus;
204
+ accessToken?: string;
205
+ refreshToken?: string;
206
+ expiresAt?: string;
207
+ email?: string;
208
+ projectId?: string;
209
+ lastRefreshedAt?: string;
210
+ errorMessage?: string;
211
+ /** Managed-account credential warning (duplicate-token, projected on listing). */
212
+ syncWarning?: SyncWarningCode;
213
+ };
191
214
  /**
192
215
  * A single subscription account entry. The provider's existing token config
193
216
  * is carried verbatim under a nested `tokens` field; entry metadata
@@ -279,6 +302,7 @@ type AccountTokensConfig = {
279
302
  kimi?: KimiTokenConfig;
280
303
  grok?: GrokTokenConfig;
281
304
  copilot?: CopilotTokenConfig;
305
+ antigravity?: AntigravityTokenConfig;
282
306
  claudeAccounts?: SubscriptionAccountEntry<ClaudeTokenConfig>[];
283
307
  activeClaudeAccountId?: string;
284
308
  codexAccounts?: SubscriptionAccountEntry<CodexTokenConfig>[];
@@ -293,6 +317,8 @@ type AccountTokensConfig = {
293
317
  activeGrokAccountId?: string;
294
318
  copilotAccounts?: SubscriptionAccountEntry<CopilotTokenConfig>[];
295
319
  activeCopilotAccountId?: string;
320
+ antigravityAccounts?: SubscriptionAccountEntry<AntigravityTokenConfig>[];
321
+ activeAntigravityAccountId?: string;
296
322
  updatedAt: string;
297
323
  };
298
324
  /**
@@ -415,4 +441,4 @@ type TokenExchangeRequest = {
415
441
  state: string;
416
442
  };
417
443
 
418
- export type { AccountClientIdentity, AccountTokensConfig, AuthMethod, ClaudeAuthMethod, ClaudeTokenConfig, CodexTokenConfig, CopilotTokenConfig, GeminiTokenConfig, GrokTokenConfig, KimiTokenConfig, OAuthParams, ProxyConfig, SanitizedProxyConfig, SubscriptionAccountEntry, SubscriptionAccountSanitized, SubscriptionLevel, SyncWarningCode, TokenExchangeRequest, TokenStatus };
444
+ export type { AccountClientIdentity, AccountTokensConfig, AntigravityTokenConfig, AuthMethod, ClaudeAuthMethod, ClaudeTokenConfig, CodexTokenConfig, CopilotTokenConfig, GeminiTokenConfig, GrokTokenConfig, KimiTokenConfig, OAuthParams, ProxyConfig, SanitizedProxyConfig, SubscriptionAccountEntry, SubscriptionAccountSanitized, SubscriptionLevel, SyncWarningCode, TokenExchangeRequest, TokenStatus };
@@ -45,6 +45,7 @@ var OPENAI_MODELS = {
45
45
  "o4-mini": { category: "reasoning", contextLength: 2e5, maxTokens: 1e5, reasoning: true, thinkingLevels: ["low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 32768 } }
46
46
  };
47
47
  var ANTHROPIC_MODELS = {
48
+ "claude-fable-5-1": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
48
49
  "claude-fable-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
49
50
  "claude-opus-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
50
51
  "claude-opus-4-8": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
@@ -195,6 +196,26 @@ var KUAISHOU_KAT_MODELS = {
195
196
  "kat-coder-pro-v1": { category: "code", contextLength: 256e3, maxTokens: 128e3, functionCall: true },
196
197
  "kat-coder-air-v1": { category: "code", contextLength: 128e3, maxTokens: 32768, functionCall: true }
197
198
  };
199
+ var ANTIGRAVITY_MODELS = {
200
+ "gemini-2.5-flash": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
201
+ "gemini-2.5-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
202
+ "gemini-3-pro": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["low", "high"], thinkingTokenLimit: { min: 128, max: 32768 } },
203
+ // NanoBanana image-chat models (multi-provider-image-generation D7): the
204
+ // canonical gemini image ids routed to the antigravity provider. vision:true —
205
+ // they accept reference images (Images edits / session input); reasoning and
206
+ // function calling are not part of the image line. Numbers mirror the census
207
+ // entry; per-row overrides stay authoritative.
208
+ "gemini-2.5-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
209
+ "gemini-2.5-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
210
+ "gemini-3.1-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
211
+ "gemini-3.1-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
212
+ "gemini-3-pro-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
213
+ "gemini-3.1-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
214
+ "gemini-3.8-flash": { category: "chat", contextLength: 1048576, maxTokens: 65536, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
215
+ "gpt-oss-120b": { category: "chat", contextLength: 131072, maxTokens: 32768, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
216
+ "tab_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false },
217
+ "tab_jump_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false }
218
+ };
198
219
  var VENDOR_GROUPS = [
199
220
  { name: "OPENAI_MODELS", entries: OPENAI_MODELS },
200
221
  { name: "ANTHROPIC_MODELS", entries: ANTHROPIC_MODELS },
@@ -213,7 +234,8 @@ var VENDOR_GROUPS = [
213
234
  { name: "MISTRAL_MODELS", entries: MISTRAL_MODELS },
214
235
  { name: "PERPLEXITY_MODELS", entries: PERPLEXITY_MODELS },
215
236
  { name: "BAIDU_ERNIE_MODELS", entries: BAIDU_ERNIE_MODELS },
216
- { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS }
237
+ { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS },
238
+ { name: "ANTIGRAVITY_MODELS", entries: ANTIGRAVITY_MODELS }
217
239
  ];
218
240
  function assertNoDuplicateCanonicalIds() {
219
241
  const seen = /* @__PURE__ */ new Map();
@@ -16,6 +16,7 @@ var OPENAI_MODELS = {
16
16
  "o4-mini": { category: "reasoning", contextLength: 2e5, maxTokens: 1e5, reasoning: true, thinkingLevels: ["low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 32768 } }
17
17
  };
18
18
  var ANTHROPIC_MODELS = {
19
+ "claude-fable-5-1": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
19
20
  "claude-fable-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
20
21
  "claude-opus-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
21
22
  "claude-opus-4-8": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
@@ -166,6 +167,26 @@ var KUAISHOU_KAT_MODELS = {
166
167
  "kat-coder-pro-v1": { category: "code", contextLength: 256e3, maxTokens: 128e3, functionCall: true },
167
168
  "kat-coder-air-v1": { category: "code", contextLength: 128e3, maxTokens: 32768, functionCall: true }
168
169
  };
170
+ var ANTIGRAVITY_MODELS = {
171
+ "gemini-2.5-flash": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
172
+ "gemini-2.5-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
173
+ "gemini-3-pro": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["low", "high"], thinkingTokenLimit: { min: 128, max: 32768 } },
174
+ // NanoBanana image-chat models (multi-provider-image-generation D7): the
175
+ // canonical gemini image ids routed to the antigravity provider. vision:true —
176
+ // they accept reference images (Images edits / session input); reasoning and
177
+ // function calling are not part of the image line. Numbers mirror the census
178
+ // entry; per-row overrides stay authoritative.
179
+ "gemini-2.5-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
180
+ "gemini-2.5-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
181
+ "gemini-3.1-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
182
+ "gemini-3.1-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
183
+ "gemini-3-pro-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
184
+ "gemini-3.1-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
185
+ "gemini-3.8-flash": { category: "chat", contextLength: 1048576, maxTokens: 65536, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
186
+ "gpt-oss-120b": { category: "chat", contextLength: 131072, maxTokens: 32768, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
187
+ "tab_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false },
188
+ "tab_jump_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false }
189
+ };
169
190
  var VENDOR_GROUPS = [
170
191
  { name: "OPENAI_MODELS", entries: OPENAI_MODELS },
171
192
  { name: "ANTHROPIC_MODELS", entries: ANTHROPIC_MODELS },
@@ -184,7 +205,8 @@ var VENDOR_GROUPS = [
184
205
  { name: "MISTRAL_MODELS", entries: MISTRAL_MODELS },
185
206
  { name: "PERPLEXITY_MODELS", entries: PERPLEXITY_MODELS },
186
207
  { name: "BAIDU_ERNIE_MODELS", entries: BAIDU_ERNIE_MODELS },
187
- { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS }
208
+ { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS },
209
+ { name: "ANTIGRAVITY_MODELS", entries: ANTIGRAVITY_MODELS }
188
210
  ];
189
211
  function assertNoDuplicateCanonicalIds() {
190
212
  const seen = /* @__PURE__ */ new Map();
package/dist/index.cjs CHANGED
@@ -123,6 +123,7 @@ var OPENAI_MODELS = {
123
123
  "o4-mini": { category: "reasoning", contextLength: 2e5, maxTokens: 1e5, reasoning: true, thinkingLevels: ["low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 32768 } }
124
124
  };
125
125
  var ANTHROPIC_MODELS = {
126
+ "claude-fable-5-1": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
126
127
  "claude-fable-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
127
128
  "claude-opus-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
128
129
  "claude-opus-4-8": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
@@ -273,6 +274,26 @@ var KUAISHOU_KAT_MODELS = {
273
274
  "kat-coder-pro-v1": { category: "code", contextLength: 256e3, maxTokens: 128e3, functionCall: true },
274
275
  "kat-coder-air-v1": { category: "code", contextLength: 128e3, maxTokens: 32768, functionCall: true }
275
276
  };
277
+ var ANTIGRAVITY_MODELS = {
278
+ "gemini-2.5-flash": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
279
+ "gemini-2.5-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
280
+ "gemini-3-pro": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["low", "high"], thinkingTokenLimit: { min: 128, max: 32768 } },
281
+ // NanoBanana image-chat models (multi-provider-image-generation D7): the
282
+ // canonical gemini image ids routed to the antigravity provider. vision:true —
283
+ // they accept reference images (Images edits / session input); reasoning and
284
+ // function calling are not part of the image line. Numbers mirror the census
285
+ // entry; per-row overrides stay authoritative.
286
+ "gemini-2.5-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
287
+ "gemini-2.5-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
288
+ "gemini-3.1-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
289
+ "gemini-3.1-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
290
+ "gemini-3-pro-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
291
+ "gemini-3.1-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
292
+ "gemini-3.8-flash": { category: "chat", contextLength: 1048576, maxTokens: 65536, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
293
+ "gpt-oss-120b": { category: "chat", contextLength: 131072, maxTokens: 32768, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
294
+ "tab_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false },
295
+ "tab_jump_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false }
296
+ };
276
297
  var VENDOR_GROUPS = [
277
298
  { name: "OPENAI_MODELS", entries: OPENAI_MODELS },
278
299
  { name: "ANTHROPIC_MODELS", entries: ANTHROPIC_MODELS },
@@ -291,7 +312,8 @@ var VENDOR_GROUPS = [
291
312
  { name: "MISTRAL_MODELS", entries: MISTRAL_MODELS },
292
313
  { name: "PERPLEXITY_MODELS", entries: PERPLEXITY_MODELS },
293
314
  { name: "BAIDU_ERNIE_MODELS", entries: BAIDU_ERNIE_MODELS },
294
- { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS }
315
+ { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS },
316
+ { name: "ANTIGRAVITY_MODELS", entries: ANTIGRAVITY_MODELS }
295
317
  ];
296
318
  function assertNoDuplicateCanonicalIds() {
297
319
  const seen = /* @__PURE__ */ new Map();
@@ -707,22 +729,15 @@ var anthropic_default = {
707
729
  api_base_url: "https://api.anthropic.com/v1/messages",
708
730
  modelsEndpoint: "https://api.anthropic.com/v1/models",
709
731
  models: [
710
- "claude-fable-5",
732
+ "claude-fable-5-1",
711
733
  "claude-opus-5",
712
- "claude-opus-4-8",
713
- "claude-opus-4-7",
714
- "claude-opus-4-7[1m]",
715
734
  "claude-sonnet-5",
716
- "claude-sonnet-4-6",
717
- "claude-sonnet-4-6[1m]",
718
- "claude-opus-4-6",
719
- "claude-opus-4-6[1m]",
720
735
  "claude-haiku-4-5"
721
736
  ],
722
737
  modelConfigs: [
723
738
  {
724
- id: "claude-fable-5",
725
- name: "Claude Fable 5",
739
+ id: "claude-fable-5-1",
740
+ name: "Claude Fable 5.1",
726
741
  enabled: true
727
742
  },
728
743
  {
@@ -730,46 +745,11 @@ var anthropic_default = {
730
745
  name: "Claude Opus 5",
731
746
  enabled: true
732
747
  },
733
- {
734
- id: "claude-opus-4-8",
735
- name: "Claude Opus 4.8",
736
- enabled: true
737
- },
738
- {
739
- id: "claude-opus-4-7",
740
- name: "Claude Opus 4.7",
741
- enabled: true
742
- },
743
- {
744
- id: "claude-opus-4-7[1m]",
745
- name: "Claude Opus 4.7 (1M)",
746
- enabled: false
747
- },
748
748
  {
749
749
  id: "claude-sonnet-5",
750
750
  name: "Claude Sonnet 5",
751
751
  enabled: true
752
752
  },
753
- {
754
- id: "claude-sonnet-4-6",
755
- name: "Claude Sonnet 4.6",
756
- enabled: true
757
- },
758
- {
759
- id: "claude-sonnet-4-6[1m]",
760
- name: "Claude Sonnet 4.6 (1M)",
761
- enabled: false
762
- },
763
- {
764
- id: "claude-opus-4-6",
765
- name: "Claude Opus 4.6",
766
- enabled: true
767
- },
768
- {
769
- id: "claude-opus-4-6[1m]",
770
- name: "Claude Opus 4.6 (1M)",
771
- enabled: false
772
- },
773
753
  {
774
754
  id: "claude-haiku-4-5",
775
755
  name: "Claude Haiku 4.5",
@@ -1654,12 +1634,17 @@ var openai_default = {
1654
1634
  apiType: "openai",
1655
1635
  api_base_url: "https://api.openai.com/v1/chat/completions",
1656
1636
  models: [
1637
+ "gpt-6-astra",
1657
1638
  "gpt-5.6-sol",
1658
1639
  "gpt-5.6-terra",
1659
- "gpt-5.6-luna",
1660
- "gpt-5.5"
1640
+ "gpt-5.6-luna"
1661
1641
  ],
1662
1642
  modelConfigs: [
1643
+ {
1644
+ id: "gpt-6-astra",
1645
+ name: "GPT-6 Astra",
1646
+ enabled: true
1647
+ },
1663
1648
  {
1664
1649
  id: "gpt-5.6-sol",
1665
1650
  name: "GPT-5.6 Sol",
@@ -1674,11 +1659,6 @@ var openai_default = {
1674
1659
  id: "gpt-5.6-luna",
1675
1660
  name: "GPT-5.6 Luna",
1676
1661
  enabled: true
1677
- },
1678
- {
1679
- id: "gpt-5.5",
1680
- name: "GPT-5.5",
1681
- enabled: true
1682
1662
  }
1683
1663
  ],
1684
1664
  description: "OpenAI\u5B98\u65B9API",
@@ -1712,12 +1692,17 @@ var openai_response_default = {
1712
1692
  apiFormat: "openai-response",
1713
1693
  api_base_url: "https://api.openai.com",
1714
1694
  models: [
1695
+ "gpt-6-astra",
1715
1696
  "gpt-5.6-sol",
1716
1697
  "gpt-5.6-terra",
1717
- "gpt-5.6-luna",
1718
- "gpt-5.5"
1698
+ "gpt-5.6-luna"
1719
1699
  ],
1720
1700
  modelConfigs: [
1701
+ {
1702
+ id: "gpt-6-astra",
1703
+ name: "GPT-6 Astra",
1704
+ enabled: true
1705
+ },
1721
1706
  {
1722
1707
  id: "gpt-5.6-sol",
1723
1708
  name: "GPT-5.6 Sol",
@@ -1732,11 +1717,6 @@ var openai_response_default = {
1732
1717
  id: "gpt-5.6-luna",
1733
1718
  name: "GPT-5.6 Luna",
1734
1719
  enabled: true
1735
- },
1736
- {
1737
- id: "gpt-5.5",
1738
- name: "GPT-5.5",
1739
- enabled: true
1740
1720
  }
1741
1721
  ],
1742
1722
  description: "OpenAI Responses API (/v1/responses endpoint)",
@@ -3010,7 +2990,7 @@ function describeUnknownError(value) {
3010
2990
 
3011
2991
  // src/subscription-model-catalog.ts
3012
2992
  var SUBSCRIPTION_MODEL_CATALOG = {
3013
- claude: ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-5", "claude-fable-5"],
2993
+ claude: ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-5", "claude-fable-5-1"],
3014
2994
  codex: ["gpt-5.6-luna", "gpt-5.6-terra", "gpt-5.6-sol", "gpt-6-astra"],
3015
2995
  gemini: [],
3016
2996
  opencodego: [],
@@ -3081,6 +3061,30 @@ var SUBSCRIPTION_MODEL_CATALOG = {
3081
3061
  "gpt-5.6-sol",
3082
3062
  "grok-4.5",
3083
3063
  "grok-4.6"
3064
+ ],
3065
+ // Antigravity's static CCA catalog (transcribed from the reference census,
3066
+ // denylist `chat_20706`/`chat_23310`/`gemini-2.5-pro` applied; the dynamic
3067
+ // `fetchAvailableModels` discovery merges into this at runtime with static
3068
+ // priority). Small → large; one Google account serves all three families.
3069
+ antigravity: [
3070
+ "tab_flash_lite_preview",
3071
+ "tab_jump_flash_lite_preview",
3072
+ "gpt-oss-120b",
3073
+ "gemini-3.1-flash-image",
3074
+ "claude-opus-4-5",
3075
+ "claude-opus-4-6",
3076
+ "claude-sonnet-4-6",
3077
+ "gemini-2.5-flash",
3078
+ "gemini-2.5-flash-lite",
3079
+ "gemini-3-flash",
3080
+ "gemini-3-pro",
3081
+ "gemini-3.1-flash-lite",
3082
+ "gemini-3.1-pro",
3083
+ "gemini-3.5-flash",
3084
+ "gemini-3.6-flash",
3085
+ "gemini-3.7-flash",
3086
+ "gemini-3.8-flash",
3087
+ "claude-sonnet-4-5"
3084
3088
  ]
3085
3089
  };
3086
3090
  function subscriptionProviderHasCatalog(providerId) {
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { AccountClientIdentity, AccountTokensConfig, AuthMethod, ClaudeAuthMethod, ClaudeTokenConfig, CodexTokenConfig, CopilotTokenConfig, GeminiTokenConfig, GrokTokenConfig, KimiTokenConfig, OAuthParams, ProxyConfig, SanitizedProxyConfig, SubscriptionAccountEntry, SubscriptionAccountSanitized, SubscriptionLevel, SyncWarningCode, TokenExchangeRequest, TokenStatus } from './account-tokens-types.cjs';
1
+ export { AccountClientIdentity, AccountTokensConfig, AntigravityTokenConfig, AuthMethod, ClaudeAuthMethod, ClaudeTokenConfig, CodexTokenConfig, CopilotTokenConfig, GeminiTokenConfig, GrokTokenConfig, KimiTokenConfig, OAuthParams, ProxyConfig, SanitizedProxyConfig, SubscriptionAccountEntry, SubscriptionAccountSanitized, SubscriptionLevel, SyncWarningCode, TokenExchangeRequest, TokenStatus } from './account-tokens-types.cjs';
2
2
  import { SubscriptionProviderId } from './subscription-types.cjs';
3
3
  export { OpenCodeGoModelEntry, OpenCodeGoScenario, OpenCodeGoTokenConfig, OpenCodeGoTokenSanitized, ProviderChannel, SubscriptionListEntry, SubscriptionStatusEntry, legacyCliBackendToSubscriptionProvider, subscriptionTargetForSession } from './subscription-types.cjs';
4
4
  export { AuditBodyResult, AuditConfig, AuditQueryResult, AuditRecord, AuditStats, DEFAULT_AUDIT_CONFIG } from './audit-types.cjs';
@@ -54,6 +54,14 @@ type AllowanceWindow = {
54
54
  /** Remaining whole seconds at the time this DTO was materialized. */
55
55
  remainingSeconds?: number;
56
56
  state: AllowanceWindowState;
57
+ /**
58
+ * Present when the upstream flagged this window's counter as DISABLED
59
+ * (antigravity quotaSummary buckets): the family's requests are rejected
60
+ * until the reset, independent of the used percent. Scheduling treats a
61
+ * disabled window for a model's family as a hard block (spec: disabled 桶
62
+ * 阻塞对应族模型调度). Additive — older snapshots parse unchanged.
63
+ */
64
+ disabled?: boolean;
57
65
  };
58
66
  /**
59
67
  * Secret-free allowance snapshot for exactly one stored subscription account.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { AccountClientIdentity, AccountTokensConfig, AuthMethod, ClaudeAuthMethod, ClaudeTokenConfig, CodexTokenConfig, CopilotTokenConfig, GeminiTokenConfig, GrokTokenConfig, KimiTokenConfig, OAuthParams, ProxyConfig, SanitizedProxyConfig, SubscriptionAccountEntry, SubscriptionAccountSanitized, SubscriptionLevel, SyncWarningCode, TokenExchangeRequest, TokenStatus } from './account-tokens-types.js';
1
+ export { AccountClientIdentity, AccountTokensConfig, AntigravityTokenConfig, AuthMethod, ClaudeAuthMethod, ClaudeTokenConfig, CodexTokenConfig, CopilotTokenConfig, GeminiTokenConfig, GrokTokenConfig, KimiTokenConfig, OAuthParams, ProxyConfig, SanitizedProxyConfig, SubscriptionAccountEntry, SubscriptionAccountSanitized, SubscriptionLevel, SyncWarningCode, TokenExchangeRequest, TokenStatus } from './account-tokens-types.js';
2
2
  import { SubscriptionProviderId } from './subscription-types.js';
3
3
  export { OpenCodeGoModelEntry, OpenCodeGoScenario, OpenCodeGoTokenConfig, OpenCodeGoTokenSanitized, ProviderChannel, SubscriptionListEntry, SubscriptionStatusEntry, legacyCliBackendToSubscriptionProvider, subscriptionTargetForSession } from './subscription-types.js';
4
4
  export { AuditBodyResult, AuditConfig, AuditQueryResult, AuditRecord, AuditStats, DEFAULT_AUDIT_CONFIG } from './audit-types.js';
@@ -54,6 +54,14 @@ type AllowanceWindow = {
54
54
  /** Remaining whole seconds at the time this DTO was materialized. */
55
55
  remainingSeconds?: number;
56
56
  state: AllowanceWindowState;
57
+ /**
58
+ * Present when the upstream flagged this window's counter as DISABLED
59
+ * (antigravity quotaSummary buckets): the family's requests are rejected
60
+ * until the reset, independent of the used percent. Scheduling treats a
61
+ * disabled window for a model's family as a hard block (spec: disabled 桶
62
+ * 阻塞对应族模型调度). Additive — older snapshots parse unchanged.
63
+ */
64
+ disabled?: boolean;
57
65
  };
58
66
  /**
59
67
  * Secret-free allowance snapshot for exactly one stored subscription account.
package/dist/index.js CHANGED
@@ -32,6 +32,7 @@ var OPENAI_MODELS = {
32
32
  "o4-mini": { category: "reasoning", contextLength: 2e5, maxTokens: 1e5, reasoning: true, thinkingLevels: ["low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 32768 } }
33
33
  };
34
34
  var ANTHROPIC_MODELS = {
35
+ "claude-fable-5-1": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
35
36
  "claude-fable-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
36
37
  "claude-opus-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
37
38
  "claude-opus-4-8": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
@@ -182,6 +183,26 @@ var KUAISHOU_KAT_MODELS = {
182
183
  "kat-coder-pro-v1": { category: "code", contextLength: 256e3, maxTokens: 128e3, functionCall: true },
183
184
  "kat-coder-air-v1": { category: "code", contextLength: 128e3, maxTokens: 32768, functionCall: true }
184
185
  };
186
+ var ANTIGRAVITY_MODELS = {
187
+ "gemini-2.5-flash": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
188
+ "gemini-2.5-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
189
+ "gemini-3-pro": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["low", "high"], thinkingTokenLimit: { min: 128, max: 32768 } },
190
+ // NanoBanana image-chat models (multi-provider-image-generation D7): the
191
+ // canonical gemini image ids routed to the antigravity provider. vision:true —
192
+ // they accept reference images (Images edits / session input); reasoning and
193
+ // function calling are not part of the image line. Numbers mirror the census
194
+ // entry; per-row overrides stay authoritative.
195
+ "gemini-2.5-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
196
+ "gemini-2.5-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
197
+ "gemini-3.1-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
198
+ "gemini-3.1-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
199
+ "gemini-3-pro-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
200
+ "gemini-3.1-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
201
+ "gemini-3.8-flash": { category: "chat", contextLength: 1048576, maxTokens: 65536, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
202
+ "gpt-oss-120b": { category: "chat", contextLength: 131072, maxTokens: 32768, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
203
+ "tab_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false },
204
+ "tab_jump_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false }
205
+ };
185
206
  var VENDOR_GROUPS = [
186
207
  { name: "OPENAI_MODELS", entries: OPENAI_MODELS },
187
208
  { name: "ANTHROPIC_MODELS", entries: ANTHROPIC_MODELS },
@@ -200,7 +221,8 @@ var VENDOR_GROUPS = [
200
221
  { name: "MISTRAL_MODELS", entries: MISTRAL_MODELS },
201
222
  { name: "PERPLEXITY_MODELS", entries: PERPLEXITY_MODELS },
202
223
  { name: "BAIDU_ERNIE_MODELS", entries: BAIDU_ERNIE_MODELS },
203
- { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS }
224
+ { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS },
225
+ { name: "ANTIGRAVITY_MODELS", entries: ANTIGRAVITY_MODELS }
204
226
  ];
205
227
  function assertNoDuplicateCanonicalIds() {
206
228
  const seen = /* @__PURE__ */ new Map();
@@ -616,22 +638,15 @@ var anthropic_default = {
616
638
  api_base_url: "https://api.anthropic.com/v1/messages",
617
639
  modelsEndpoint: "https://api.anthropic.com/v1/models",
618
640
  models: [
619
- "claude-fable-5",
641
+ "claude-fable-5-1",
620
642
  "claude-opus-5",
621
- "claude-opus-4-8",
622
- "claude-opus-4-7",
623
- "claude-opus-4-7[1m]",
624
643
  "claude-sonnet-5",
625
- "claude-sonnet-4-6",
626
- "claude-sonnet-4-6[1m]",
627
- "claude-opus-4-6",
628
- "claude-opus-4-6[1m]",
629
644
  "claude-haiku-4-5"
630
645
  ],
631
646
  modelConfigs: [
632
647
  {
633
- id: "claude-fable-5",
634
- name: "Claude Fable 5",
648
+ id: "claude-fable-5-1",
649
+ name: "Claude Fable 5.1",
635
650
  enabled: true
636
651
  },
637
652
  {
@@ -639,46 +654,11 @@ var anthropic_default = {
639
654
  name: "Claude Opus 5",
640
655
  enabled: true
641
656
  },
642
- {
643
- id: "claude-opus-4-8",
644
- name: "Claude Opus 4.8",
645
- enabled: true
646
- },
647
- {
648
- id: "claude-opus-4-7",
649
- name: "Claude Opus 4.7",
650
- enabled: true
651
- },
652
- {
653
- id: "claude-opus-4-7[1m]",
654
- name: "Claude Opus 4.7 (1M)",
655
- enabled: false
656
- },
657
657
  {
658
658
  id: "claude-sonnet-5",
659
659
  name: "Claude Sonnet 5",
660
660
  enabled: true
661
661
  },
662
- {
663
- id: "claude-sonnet-4-6",
664
- name: "Claude Sonnet 4.6",
665
- enabled: true
666
- },
667
- {
668
- id: "claude-sonnet-4-6[1m]",
669
- name: "Claude Sonnet 4.6 (1M)",
670
- enabled: false
671
- },
672
- {
673
- id: "claude-opus-4-6",
674
- name: "Claude Opus 4.6",
675
- enabled: true
676
- },
677
- {
678
- id: "claude-opus-4-6[1m]",
679
- name: "Claude Opus 4.6 (1M)",
680
- enabled: false
681
- },
682
662
  {
683
663
  id: "claude-haiku-4-5",
684
664
  name: "Claude Haiku 4.5",
@@ -1563,12 +1543,17 @@ var openai_default = {
1563
1543
  apiType: "openai",
1564
1544
  api_base_url: "https://api.openai.com/v1/chat/completions",
1565
1545
  models: [
1546
+ "gpt-6-astra",
1566
1547
  "gpt-5.6-sol",
1567
1548
  "gpt-5.6-terra",
1568
- "gpt-5.6-luna",
1569
- "gpt-5.5"
1549
+ "gpt-5.6-luna"
1570
1550
  ],
1571
1551
  modelConfigs: [
1552
+ {
1553
+ id: "gpt-6-astra",
1554
+ name: "GPT-6 Astra",
1555
+ enabled: true
1556
+ },
1572
1557
  {
1573
1558
  id: "gpt-5.6-sol",
1574
1559
  name: "GPT-5.6 Sol",
@@ -1583,11 +1568,6 @@ var openai_default = {
1583
1568
  id: "gpt-5.6-luna",
1584
1569
  name: "GPT-5.6 Luna",
1585
1570
  enabled: true
1586
- },
1587
- {
1588
- id: "gpt-5.5",
1589
- name: "GPT-5.5",
1590
- enabled: true
1591
1571
  }
1592
1572
  ],
1593
1573
  description: "OpenAI\u5B98\u65B9API",
@@ -1621,12 +1601,17 @@ var openai_response_default = {
1621
1601
  apiFormat: "openai-response",
1622
1602
  api_base_url: "https://api.openai.com",
1623
1603
  models: [
1604
+ "gpt-6-astra",
1624
1605
  "gpt-5.6-sol",
1625
1606
  "gpt-5.6-terra",
1626
- "gpt-5.6-luna",
1627
- "gpt-5.5"
1607
+ "gpt-5.6-luna"
1628
1608
  ],
1629
1609
  modelConfigs: [
1610
+ {
1611
+ id: "gpt-6-astra",
1612
+ name: "GPT-6 Astra",
1613
+ enabled: true
1614
+ },
1630
1615
  {
1631
1616
  id: "gpt-5.6-sol",
1632
1617
  name: "GPT-5.6 Sol",
@@ -1641,11 +1626,6 @@ var openai_response_default = {
1641
1626
  id: "gpt-5.6-luna",
1642
1627
  name: "GPT-5.6 Luna",
1643
1628
  enabled: true
1644
- },
1645
- {
1646
- id: "gpt-5.5",
1647
- name: "GPT-5.5",
1648
- enabled: true
1649
1629
  }
1650
1630
  ],
1651
1631
  description: "OpenAI Responses API (/v1/responses endpoint)",
@@ -2919,7 +2899,7 @@ function describeUnknownError(value) {
2919
2899
 
2920
2900
  // src/subscription-model-catalog.ts
2921
2901
  var SUBSCRIPTION_MODEL_CATALOG = {
2922
- claude: ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-5", "claude-fable-5"],
2902
+ claude: ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-5", "claude-fable-5-1"],
2923
2903
  codex: ["gpt-5.6-luna", "gpt-5.6-terra", "gpt-5.6-sol", "gpt-6-astra"],
2924
2904
  gemini: [],
2925
2905
  opencodego: [],
@@ -2990,6 +2970,30 @@ var SUBSCRIPTION_MODEL_CATALOG = {
2990
2970
  "gpt-5.6-sol",
2991
2971
  "grok-4.5",
2992
2972
  "grok-4.6"
2973
+ ],
2974
+ // Antigravity's static CCA catalog (transcribed from the reference census,
2975
+ // denylist `chat_20706`/`chat_23310`/`gemini-2.5-pro` applied; the dynamic
2976
+ // `fetchAvailableModels` discovery merges into this at runtime with static
2977
+ // priority). Small → large; one Google account serves all three families.
2978
+ antigravity: [
2979
+ "tab_flash_lite_preview",
2980
+ "tab_jump_flash_lite_preview",
2981
+ "gpt-oss-120b",
2982
+ "gemini-3.1-flash-image",
2983
+ "claude-opus-4-5",
2984
+ "claude-opus-4-6",
2985
+ "claude-sonnet-4-6",
2986
+ "gemini-2.5-flash",
2987
+ "gemini-2.5-flash-lite",
2988
+ "gemini-3-flash",
2989
+ "gemini-3-pro",
2990
+ "gemini-3.1-flash-lite",
2991
+ "gemini-3.1-pro",
2992
+ "gemini-3.5-flash",
2993
+ "gemini-3.6-flash",
2994
+ "gemini-3.7-flash",
2995
+ "gemini-3.8-flash",
2996
+ "claude-sonnet-4-5"
2993
2997
  ]
2994
2998
  };
2995
2999
  function subscriptionProviderHasCatalog(providerId) {
@@ -271,22 +271,15 @@ var anthropic_default = {
271
271
  api_base_url: "https://api.anthropic.com/v1/messages",
272
272
  modelsEndpoint: "https://api.anthropic.com/v1/models",
273
273
  models: [
274
- "claude-fable-5",
274
+ "claude-fable-5-1",
275
275
  "claude-opus-5",
276
- "claude-opus-4-8",
277
- "claude-opus-4-7",
278
- "claude-opus-4-7[1m]",
279
276
  "claude-sonnet-5",
280
- "claude-sonnet-4-6",
281
- "claude-sonnet-4-6[1m]",
282
- "claude-opus-4-6",
283
- "claude-opus-4-6[1m]",
284
277
  "claude-haiku-4-5"
285
278
  ],
286
279
  modelConfigs: [
287
280
  {
288
- id: "claude-fable-5",
289
- name: "Claude Fable 5",
281
+ id: "claude-fable-5-1",
282
+ name: "Claude Fable 5.1",
290
283
  enabled: true
291
284
  },
292
285
  {
@@ -294,46 +287,11 @@ var anthropic_default = {
294
287
  name: "Claude Opus 5",
295
288
  enabled: true
296
289
  },
297
- {
298
- id: "claude-opus-4-8",
299
- name: "Claude Opus 4.8",
300
- enabled: true
301
- },
302
- {
303
- id: "claude-opus-4-7",
304
- name: "Claude Opus 4.7",
305
- enabled: true
306
- },
307
- {
308
- id: "claude-opus-4-7[1m]",
309
- name: "Claude Opus 4.7 (1M)",
310
- enabled: false
311
- },
312
290
  {
313
291
  id: "claude-sonnet-5",
314
292
  name: "Claude Sonnet 5",
315
293
  enabled: true
316
294
  },
317
- {
318
- id: "claude-sonnet-4-6",
319
- name: "Claude Sonnet 4.6",
320
- enabled: true
321
- },
322
- {
323
- id: "claude-sonnet-4-6[1m]",
324
- name: "Claude Sonnet 4.6 (1M)",
325
- enabled: false
326
- },
327
- {
328
- id: "claude-opus-4-6",
329
- name: "Claude Opus 4.6",
330
- enabled: true
331
- },
332
- {
333
- id: "claude-opus-4-6[1m]",
334
- name: "Claude Opus 4.6 (1M)",
335
- enabled: false
336
- },
337
295
  {
338
296
  id: "claude-haiku-4-5",
339
297
  name: "Claude Haiku 4.5",
@@ -1218,12 +1176,17 @@ var openai_default = {
1218
1176
  apiType: "openai",
1219
1177
  api_base_url: "https://api.openai.com/v1/chat/completions",
1220
1178
  models: [
1179
+ "gpt-6-astra",
1221
1180
  "gpt-5.6-sol",
1222
1181
  "gpt-5.6-terra",
1223
- "gpt-5.6-luna",
1224
- "gpt-5.5"
1182
+ "gpt-5.6-luna"
1225
1183
  ],
1226
1184
  modelConfigs: [
1185
+ {
1186
+ id: "gpt-6-astra",
1187
+ name: "GPT-6 Astra",
1188
+ enabled: true
1189
+ },
1227
1190
  {
1228
1191
  id: "gpt-5.6-sol",
1229
1192
  name: "GPT-5.6 Sol",
@@ -1238,11 +1201,6 @@ var openai_default = {
1238
1201
  id: "gpt-5.6-luna",
1239
1202
  name: "GPT-5.6 Luna",
1240
1203
  enabled: true
1241
- },
1242
- {
1243
- id: "gpt-5.5",
1244
- name: "GPT-5.5",
1245
- enabled: true
1246
1204
  }
1247
1205
  ],
1248
1206
  description: "OpenAI\u5B98\u65B9API",
@@ -1276,12 +1234,17 @@ var openai_response_default = {
1276
1234
  apiFormat: "openai-response",
1277
1235
  api_base_url: "https://api.openai.com",
1278
1236
  models: [
1237
+ "gpt-6-astra",
1279
1238
  "gpt-5.6-sol",
1280
1239
  "gpt-5.6-terra",
1281
- "gpt-5.6-luna",
1282
- "gpt-5.5"
1240
+ "gpt-5.6-luna"
1283
1241
  ],
1284
1242
  modelConfigs: [
1243
+ {
1244
+ id: "gpt-6-astra",
1245
+ name: "GPT-6 Astra",
1246
+ enabled: true
1247
+ },
1285
1248
  {
1286
1249
  id: "gpt-5.6-sol",
1287
1250
  name: "GPT-5.6 Sol",
@@ -1296,11 +1259,6 @@ var openai_response_default = {
1296
1259
  id: "gpt-5.6-luna",
1297
1260
  name: "GPT-5.6 Luna",
1298
1261
  enabled: true
1299
- },
1300
- {
1301
- id: "gpt-5.5",
1302
- name: "GPT-5.5",
1303
- enabled: true
1304
1262
  }
1305
1263
  ],
1306
1264
  description: "OpenAI Responses API (/v1/responses endpoint)",
@@ -232,22 +232,15 @@ var anthropic_default = {
232
232
  api_base_url: "https://api.anthropic.com/v1/messages",
233
233
  modelsEndpoint: "https://api.anthropic.com/v1/models",
234
234
  models: [
235
- "claude-fable-5",
235
+ "claude-fable-5-1",
236
236
  "claude-opus-5",
237
- "claude-opus-4-8",
238
- "claude-opus-4-7",
239
- "claude-opus-4-7[1m]",
240
237
  "claude-sonnet-5",
241
- "claude-sonnet-4-6",
242
- "claude-sonnet-4-6[1m]",
243
- "claude-opus-4-6",
244
- "claude-opus-4-6[1m]",
245
238
  "claude-haiku-4-5"
246
239
  ],
247
240
  modelConfigs: [
248
241
  {
249
- id: "claude-fable-5",
250
- name: "Claude Fable 5",
242
+ id: "claude-fable-5-1",
243
+ name: "Claude Fable 5.1",
251
244
  enabled: true
252
245
  },
253
246
  {
@@ -255,46 +248,11 @@ var anthropic_default = {
255
248
  name: "Claude Opus 5",
256
249
  enabled: true
257
250
  },
258
- {
259
- id: "claude-opus-4-8",
260
- name: "Claude Opus 4.8",
261
- enabled: true
262
- },
263
- {
264
- id: "claude-opus-4-7",
265
- name: "Claude Opus 4.7",
266
- enabled: true
267
- },
268
- {
269
- id: "claude-opus-4-7[1m]",
270
- name: "Claude Opus 4.7 (1M)",
271
- enabled: false
272
- },
273
251
  {
274
252
  id: "claude-sonnet-5",
275
253
  name: "Claude Sonnet 5",
276
254
  enabled: true
277
255
  },
278
- {
279
- id: "claude-sonnet-4-6",
280
- name: "Claude Sonnet 4.6",
281
- enabled: true
282
- },
283
- {
284
- id: "claude-sonnet-4-6[1m]",
285
- name: "Claude Sonnet 4.6 (1M)",
286
- enabled: false
287
- },
288
- {
289
- id: "claude-opus-4-6",
290
- name: "Claude Opus 4.6",
291
- enabled: true
292
- },
293
- {
294
- id: "claude-opus-4-6[1m]",
295
- name: "Claude Opus 4.6 (1M)",
296
- enabled: false
297
- },
298
256
  {
299
257
  id: "claude-haiku-4-5",
300
258
  name: "Claude Haiku 4.5",
@@ -1179,12 +1137,17 @@ var openai_default = {
1179
1137
  apiType: "openai",
1180
1138
  api_base_url: "https://api.openai.com/v1/chat/completions",
1181
1139
  models: [
1140
+ "gpt-6-astra",
1182
1141
  "gpt-5.6-sol",
1183
1142
  "gpt-5.6-terra",
1184
- "gpt-5.6-luna",
1185
- "gpt-5.5"
1143
+ "gpt-5.6-luna"
1186
1144
  ],
1187
1145
  modelConfigs: [
1146
+ {
1147
+ id: "gpt-6-astra",
1148
+ name: "GPT-6 Astra",
1149
+ enabled: true
1150
+ },
1188
1151
  {
1189
1152
  id: "gpt-5.6-sol",
1190
1153
  name: "GPT-5.6 Sol",
@@ -1199,11 +1162,6 @@ var openai_default = {
1199
1162
  id: "gpt-5.6-luna",
1200
1163
  name: "GPT-5.6 Luna",
1201
1164
  enabled: true
1202
- },
1203
- {
1204
- id: "gpt-5.5",
1205
- name: "GPT-5.5",
1206
- enabled: true
1207
1165
  }
1208
1166
  ],
1209
1167
  description: "OpenAI\u5B98\u65B9API",
@@ -1237,12 +1195,17 @@ var openai_response_default = {
1237
1195
  apiFormat: "openai-response",
1238
1196
  api_base_url: "https://api.openai.com",
1239
1197
  models: [
1198
+ "gpt-6-astra",
1240
1199
  "gpt-5.6-sol",
1241
1200
  "gpt-5.6-terra",
1242
- "gpt-5.6-luna",
1243
- "gpt-5.5"
1201
+ "gpt-5.6-luna"
1244
1202
  ],
1245
1203
  modelConfigs: [
1204
+ {
1205
+ id: "gpt-6-astra",
1206
+ name: "GPT-6 Astra",
1207
+ enabled: true
1208
+ },
1246
1209
  {
1247
1210
  id: "gpt-5.6-sol",
1248
1211
  name: "GPT-5.6 Sol",
@@ -1257,11 +1220,6 @@ var openai_response_default = {
1257
1220
  id: "gpt-5.6-luna",
1258
1221
  name: "GPT-5.6 Luna",
1259
1222
  enabled: true
1260
- },
1261
- {
1262
- id: "gpt-5.5",
1263
- name: "GPT-5.5",
1264
- enabled: true
1265
1223
  }
1266
1224
  ],
1267
1225
  description: "OpenAI Responses API (/v1/responses endpoint)",
@@ -25,7 +25,7 @@ __export(subscription_model_catalog_exports, {
25
25
  });
26
26
  module.exports = __toCommonJS(subscription_model_catalog_exports);
27
27
  var SUBSCRIPTION_MODEL_CATALOG = {
28
- claude: ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-5", "claude-fable-5"],
28
+ claude: ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-5", "claude-fable-5-1"],
29
29
  codex: ["gpt-5.6-luna", "gpt-5.6-terra", "gpt-5.6-sol", "gpt-6-astra"],
30
30
  gemini: [],
31
31
  opencodego: [],
@@ -96,6 +96,30 @@ var SUBSCRIPTION_MODEL_CATALOG = {
96
96
  "gpt-5.6-sol",
97
97
  "grok-4.5",
98
98
  "grok-4.6"
99
+ ],
100
+ // Antigravity's static CCA catalog (transcribed from the reference census,
101
+ // denylist `chat_20706`/`chat_23310`/`gemini-2.5-pro` applied; the dynamic
102
+ // `fetchAvailableModels` discovery merges into this at runtime with static
103
+ // priority). Small → large; one Google account serves all three families.
104
+ antigravity: [
105
+ "tab_flash_lite_preview",
106
+ "tab_jump_flash_lite_preview",
107
+ "gpt-oss-120b",
108
+ "gemini-3.1-flash-image",
109
+ "claude-opus-4-5",
110
+ "claude-opus-4-6",
111
+ "claude-sonnet-4-6",
112
+ "gemini-2.5-flash",
113
+ "gemini-2.5-flash-lite",
114
+ "gemini-3-flash",
115
+ "gemini-3-pro",
116
+ "gemini-3.1-flash-lite",
117
+ "gemini-3.1-pro",
118
+ "gemini-3.5-flash",
119
+ "gemini-3.6-flash",
120
+ "gemini-3.7-flash",
121
+ "gemini-3.8-flash",
122
+ "claude-sonnet-4-5"
99
123
  ]
100
124
  };
101
125
  function subscriptionProviderHasCatalog(providerId) {
@@ -24,7 +24,7 @@ import { SubscriptionProviderId } from './subscription-types.cjs';
24
24
  /**
25
25
  * The model ids each subscription provider serves, small → large.
26
26
  *
27
- * - claude: `claude-haiku-4-5` < `claude-sonnet-5` < `claude-opus-5` < `claude-fable-5`
27
+ * - claude: `claude-haiku-4-5` < `claude-sonnet-5` < `claude-opus-5` < `claude-fable-5-1`
28
28
  * - codex: `gpt-5.6-luna` (nano) < `gpt-5.6-terra` (mini) < `gpt-5.6-sol` (flagship) < `gpt-6-astra`
29
29
  */
30
30
  declare const SUBSCRIPTION_MODEL_CATALOG: Record<SubscriptionProviderId, string[]>;
@@ -24,7 +24,7 @@ import { SubscriptionProviderId } from './subscription-types.js';
24
24
  /**
25
25
  * The model ids each subscription provider serves, small → large.
26
26
  *
27
- * - claude: `claude-haiku-4-5` < `claude-sonnet-5` < `claude-opus-5` < `claude-fable-5`
27
+ * - claude: `claude-haiku-4-5` < `claude-sonnet-5` < `claude-opus-5` < `claude-fable-5-1`
28
28
  * - codex: `gpt-5.6-luna` (nano) < `gpt-5.6-terra` (mini) < `gpt-5.6-sol` (flagship) < `gpt-6-astra`
29
29
  */
30
30
  declare const SUBSCRIPTION_MODEL_CATALOG: Record<SubscriptionProviderId, string[]>;
@@ -1,6 +1,6 @@
1
1
  // src/subscription-model-catalog.ts
2
2
  var SUBSCRIPTION_MODEL_CATALOG = {
3
- claude: ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-5", "claude-fable-5"],
3
+ claude: ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-5", "claude-fable-5-1"],
4
4
  codex: ["gpt-5.6-luna", "gpt-5.6-terra", "gpt-5.6-sol", "gpt-6-astra"],
5
5
  gemini: [],
6
6
  opencodego: [],
@@ -71,6 +71,30 @@ var SUBSCRIPTION_MODEL_CATALOG = {
71
71
  "gpt-5.6-sol",
72
72
  "grok-4.5",
73
73
  "grok-4.6"
74
+ ],
75
+ // Antigravity's static CCA catalog (transcribed from the reference census,
76
+ // denylist `chat_20706`/`chat_23310`/`gemini-2.5-pro` applied; the dynamic
77
+ // `fetchAvailableModels` discovery merges into this at runtime with static
78
+ // priority). Small → large; one Google account serves all three families.
79
+ antigravity: [
80
+ "tab_flash_lite_preview",
81
+ "tab_jump_flash_lite_preview",
82
+ "gpt-oss-120b",
83
+ "gemini-3.1-flash-image",
84
+ "claude-opus-4-5",
85
+ "claude-opus-4-6",
86
+ "claude-sonnet-4-6",
87
+ "gemini-2.5-flash",
88
+ "gemini-2.5-flash-lite",
89
+ "gemini-3-flash",
90
+ "gemini-3-pro",
91
+ "gemini-3.1-flash-lite",
92
+ "gemini-3.1-pro",
93
+ "gemini-3.5-flash",
94
+ "gemini-3.6-flash",
95
+ "gemini-3.7-flash",
96
+ "gemini-3.8-flash",
97
+ "claude-sonnet-4-5"
74
98
  ]
75
99
  };
76
100
  function subscriptionProviderHasCatalog(providerId) {
@@ -10,7 +10,7 @@
10
10
  * helpers the `@omnicross/*` packages consume.
11
11
  */
12
12
  /** Stable IDs for built-in subscription providers. */
13
- type SubscriptionProviderId = 'claude' | 'codex' | 'gemini' | 'opencodego' | 'kimi' | 'grok' | 'copilot';
13
+ type SubscriptionProviderId = 'claude' | 'codex' | 'gemini' | 'opencodego' | 'kimi' | 'grok' | 'copilot' | 'antigravity';
14
14
  /**
15
15
  * OpenCodeGo routing scenarios used for model selection and fallback.
16
16
  *
@@ -10,7 +10,7 @@
10
10
  * helpers the `@omnicross/*` packages consume.
11
11
  */
12
12
  /** Stable IDs for built-in subscription providers. */
13
- type SubscriptionProviderId = 'claude' | 'codex' | 'gemini' | 'opencodego' | 'kimi' | 'grok' | 'copilot';
13
+ type SubscriptionProviderId = 'claude' | 'codex' | 'gemini' | 'opencodego' | 'kimi' | 'grok' | 'copilot' | 'antigravity';
14
14
  /**
15
15
  * OpenCodeGo routing scenarios used for model selection and fallback.
16
16
  *
@@ -57,6 +57,7 @@ var OPENAI_MODELS = {
57
57
  "o4-mini": { category: "reasoning", contextLength: 2e5, maxTokens: 1e5, reasoning: true, thinkingLevels: ["low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 32768 } }
58
58
  };
59
59
  var ANTHROPIC_MODELS = {
60
+ "claude-fable-5-1": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
60
61
  "claude-fable-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
61
62
  "claude-opus-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
62
63
  "claude-opus-4-8": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
@@ -207,6 +208,26 @@ var KUAISHOU_KAT_MODELS = {
207
208
  "kat-coder-pro-v1": { category: "code", contextLength: 256e3, maxTokens: 128e3, functionCall: true },
208
209
  "kat-coder-air-v1": { category: "code", contextLength: 128e3, maxTokens: 32768, functionCall: true }
209
210
  };
211
+ var ANTIGRAVITY_MODELS = {
212
+ "gemini-2.5-flash": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
213
+ "gemini-2.5-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
214
+ "gemini-3-pro": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["low", "high"], thinkingTokenLimit: { min: 128, max: 32768 } },
215
+ // NanoBanana image-chat models (multi-provider-image-generation D7): the
216
+ // canonical gemini image ids routed to the antigravity provider. vision:true —
217
+ // they accept reference images (Images edits / session input); reasoning and
218
+ // function calling are not part of the image line. Numbers mirror the census
219
+ // entry; per-row overrides stay authoritative.
220
+ "gemini-2.5-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
221
+ "gemini-2.5-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
222
+ "gemini-3.1-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
223
+ "gemini-3.1-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
224
+ "gemini-3-pro-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
225
+ "gemini-3.1-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
226
+ "gemini-3.8-flash": { category: "chat", contextLength: 1048576, maxTokens: 65536, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
227
+ "gpt-oss-120b": { category: "chat", contextLength: 131072, maxTokens: 32768, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
228
+ "tab_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false },
229
+ "tab_jump_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false }
230
+ };
210
231
  var VENDOR_GROUPS = [
211
232
  { name: "OPENAI_MODELS", entries: OPENAI_MODELS },
212
233
  { name: "ANTHROPIC_MODELS", entries: ANTHROPIC_MODELS },
@@ -225,7 +246,8 @@ var VENDOR_GROUPS = [
225
246
  { name: "MISTRAL_MODELS", entries: MISTRAL_MODELS },
226
247
  { name: "PERPLEXITY_MODELS", entries: PERPLEXITY_MODELS },
227
248
  { name: "BAIDU_ERNIE_MODELS", entries: BAIDU_ERNIE_MODELS },
228
- { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS }
249
+ { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS },
250
+ { name: "ANTIGRAVITY_MODELS", entries: ANTIGRAVITY_MODELS }
229
251
  ];
230
252
  function assertNoDuplicateCanonicalIds() {
231
253
  const seen = /* @__PURE__ */ new Map();
@@ -16,6 +16,7 @@ var OPENAI_MODELS = {
16
16
  "o4-mini": { category: "reasoning", contextLength: 2e5, maxTokens: 1e5, reasoning: true, thinkingLevels: ["low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 32768 } }
17
17
  };
18
18
  var ANTHROPIC_MODELS = {
19
+ "claude-fable-5-1": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
19
20
  "claude-fable-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
20
21
  "claude-opus-5": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
21
22
  "claude-opus-4-8": { category: "reasoning", contextLength: 2e5, maxTokens: 128e3, vision: true, functionCall: true, reasoning: true },
@@ -166,6 +167,26 @@ var KUAISHOU_KAT_MODELS = {
166
167
  "kat-coder-pro-v1": { category: "code", contextLength: 256e3, maxTokens: 128e3, functionCall: true },
167
168
  "kat-coder-air-v1": { category: "code", contextLength: 128e3, maxTokens: 32768, functionCall: true }
168
169
  };
170
+ var ANTIGRAVITY_MODELS = {
171
+ "gemini-2.5-flash": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
172
+ "gemini-2.5-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"], thinkingTokenLimit: { min: 0, max: 24576 } },
173
+ "gemini-3-pro": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["low", "high"], thinkingTokenLimit: { min: 128, max: 32768 } },
174
+ // NanoBanana image-chat models (multi-provider-image-generation D7): the
175
+ // canonical gemini image ids routed to the antigravity provider. vision:true —
176
+ // they accept reference images (Images edits / session input); reasoning and
177
+ // function calling are not part of the image line. Numbers mirror the census
178
+ // entry; per-row overrides stay authoritative.
179
+ "gemini-2.5-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
180
+ "gemini-2.5-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
181
+ "gemini-3.1-flash-image": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
182
+ "gemini-3.1-flash-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
183
+ "gemini-3-pro-image-preview": { category: "chat", contextLength: 2e5, maxTokens: 64e3, vision: true, functionCall: false, reasoning: false },
184
+ "gemini-3.1-flash-lite": { category: "chat", contextLength: 1048576, maxTokens: 65535, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
185
+ "gemini-3.8-flash": { category: "chat", contextLength: 1048576, maxTokens: 65536, vision: true, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
186
+ "gpt-oss-120b": { category: "chat", contextLength: 131072, maxTokens: 32768, functionCall: true, reasoning: true, thinkingLevels: ["none", "low", "medium", "high"] },
187
+ "tab_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false },
188
+ "tab_jump_flash_lite_preview": { category: "chat", contextLength: 16384, maxTokens: 4096, vision: false, functionCall: false, reasoning: false }
189
+ };
169
190
  var VENDOR_GROUPS = [
170
191
  { name: "OPENAI_MODELS", entries: OPENAI_MODELS },
171
192
  { name: "ANTHROPIC_MODELS", entries: ANTHROPIC_MODELS },
@@ -184,7 +205,8 @@ var VENDOR_GROUPS = [
184
205
  { name: "MISTRAL_MODELS", entries: MISTRAL_MODELS },
185
206
  { name: "PERPLEXITY_MODELS", entries: PERPLEXITY_MODELS },
186
207
  { name: "BAIDU_ERNIE_MODELS", entries: BAIDU_ERNIE_MODELS },
187
- { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS }
208
+ { name: "KUAISHOU_KAT_MODELS", entries: KUAISHOU_KAT_MODELS },
209
+ { name: "ANTIGRAVITY_MODELS", entries: ANTIGRAVITY_MODELS }
188
210
  ];
189
211
  function assertNoDuplicateCanonicalIds() {
190
212
  const seen = /* @__PURE__ */ new Map();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omnicross/contracts",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "Dependency-light, host-agnostic contract types + runtime-value helpers shared by the @omnicross/* packages.",
5
5
  "license": "MIT",
6
6
  "author": "Sayo (https://github.com/Dumoedss)",