opencode-antigravity-auth 1.2.1 → 1.2.2
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.
- package/README.md +20 -5
- package/dist/src/constants.d.ts +6 -0
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +5 -0
- package/dist/src/constants.js.map +1 -1
- package/dist/src/plugin/accounts.d.ts +11 -8
- package/dist/src/plugin/accounts.d.ts.map +1 -1
- package/dist/src/plugin/accounts.js +91 -31
- package/dist/src/plugin/accounts.js.map +1 -1
- package/dist/src/plugin/request.d.ts +3 -1
- package/dist/src/plugin/request.d.ts.map +1 -1
- package/dist/src/plugin/request.js +9 -5
- package/dist/src/plugin/request.js.map +1 -1
- package/dist/src/plugin/storage.d.ts +29 -2
- package/dist/src/plugin/storage.d.ts.map +1 -1
- package/dist/src/plugin/storage.js +40 -3
- package/dist/src/plugin/storage.js.map +1 -1
- package/dist/src/plugin.d.ts.map +1 -1
- package/dist/src/plugin.js +207 -131
- package/dist/src/plugin.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,7 @@ Enable Opencode to authenticate against **Antigravity** (Google's IDE) via OAuth
|
|
|
8
8
|
|
|
9
9
|
- **Google OAuth sign-in** (multi-account via `opencode auth login`) with automatic token refresh
|
|
10
10
|
- **Multi-account load balancing** Automatically cycle through multiple Google accounts to maximize rate limits
|
|
11
|
+
- **Dual Gemini quota pools** Gemini models automatically fallback to a second quota pool when the first is exhausted, effectively doubling your Gemini quota per account
|
|
11
12
|
- **Real-time SSE streaming** including thinking blocks and incremental output
|
|
12
13
|
- **Advanced Claude support** Interleaved thinking, stable multi-turn signatures, and validated tool calling
|
|
13
14
|
- **Automatic endpoint fallback** between Antigravity API endpoints (daily → autopush → prod)
|
|
@@ -41,7 +42,7 @@ If the agent only installs the plugin, ask it to also add models under `provider
|
|
|
41
42
|
|
|
42
43
|
```json
|
|
43
44
|
{
|
|
44
|
-
"plugin": ["opencode-antigravity-auth@1.2.
|
|
45
|
+
"plugin": ["opencode-antigravity-auth@1.2.2"]
|
|
45
46
|
}
|
|
46
47
|
```
|
|
47
48
|
|
|
@@ -59,7 +60,7 @@ If the agent only installs the plugin, ask it to also add models under `provider
|
|
|
59
60
|
|
|
60
61
|
```json
|
|
61
62
|
{
|
|
62
|
-
"plugin": ["opencode-antigravity-auth@1.2.
|
|
63
|
+
"plugin": ["opencode-antigravity-auth@1.2.2"],
|
|
63
64
|
"provider": {
|
|
64
65
|
"google": {
|
|
65
66
|
"models": {
|
|
@@ -109,14 +110,14 @@ mkdir -p ~/.config/opencode
|
|
|
109
110
|
|
|
110
111
|
if [ -f ~/.config/opencode/opencode.json ]; then
|
|
111
112
|
if command -v jq &> /dev/null; then
|
|
112
|
-
jq '.plugin = ((.plugin // []) + ["opencode-antigravity-auth@1.2.
|
|
113
|
+
jq '.plugin = ((.plugin // []) + ["opencode-antigravity-auth@1.2.2"] | unique)' \
|
|
113
114
|
~/.config/opencode/opencode.json > /tmp/oc.json && \
|
|
114
115
|
mv /tmp/oc.json ~/.config/opencode/opencode.json
|
|
115
116
|
else
|
|
116
|
-
echo "Add \"opencode-antigravity-auth@1.2.
|
|
117
|
+
echo "Add \"opencode-antigravity-auth@1.2.2\" to the plugin array manually"
|
|
117
118
|
fi
|
|
118
119
|
else
|
|
119
|
-
echo '{"plugin":["opencode-antigravity-auth@1.2.
|
|
120
|
+
echo '{"plugin":["opencode-antigravity-auth@1.2.2"]}' > ~/.config/opencode/opencode.json
|
|
120
121
|
fi
|
|
121
122
|
```
|
|
122
123
|
|
|
@@ -253,6 +254,7 @@ The plugin supports multiple Google accounts to maximize rate limits and provide
|
|
|
253
254
|
|
|
254
255
|
- **Sticky account selection:** The plugin sticks to the same account for all requests until it hits a rate limit. This preserves Anthropic's prompt cache, which is organization-scoped.
|
|
255
256
|
- **Per-model-family rate limits:** Rate limits are tracked separately for Claude and Gemini models. If an account is rate-limited for Claude, it can still be used for Gemini requests.
|
|
257
|
+
- **Dual quota pools for Gemini:** Gemini models have access to two separate quota pools (Antigravity and Gemini CLI). When one pool is exhausted, the plugin automatically switches to the other before trying a different account.
|
|
256
258
|
- **Smart retry threshold:** Short rate limits (≤5s) are retried on the same account to avoid unnecessary switching.
|
|
257
259
|
- **Exponential backoff:** Consecutive rate limits trigger exponential backoff with increasing delays.
|
|
258
260
|
- **Quota-aware messages:** Rate limit toasts show quota reset times when available from the API.
|
|
@@ -261,6 +263,19 @@ The plugin supports multiple Google accounts to maximize rate limits and provide
|
|
|
261
263
|
- **Single-account retry:** If you only have one account, the plugin waits for the rate limit to reset and retries automatically.
|
|
262
264
|
- **Debounced notifications:** Toast notifications are debounced to avoid spam during streaming responses.
|
|
263
265
|
|
|
266
|
+
### Dual quota pools (Gemini only)
|
|
267
|
+
|
|
268
|
+
For Gemini models, the plugin can access two independent quota pools using the same Google account:
|
|
269
|
+
|
|
270
|
+
| Quota Pool | Headers Used | When Used |
|
|
271
|
+
|------------|--------------|-----------|
|
|
272
|
+
| Antigravity | Antigravity headers | Primary (tried first) |
|
|
273
|
+
| Gemini CLI | Gemini CLI headers | Fallback when Antigravity is rate-limited |
|
|
274
|
+
|
|
275
|
+
This effectively **doubles your Gemini quota** per account. The fallback is seamless — conversation context is preserved when switching between quota pools.
|
|
276
|
+
|
|
277
|
+
> **Note:** Claude models only work with Antigravity headers, so this dual-pool fallback only applies to Gemini models.
|
|
278
|
+
|
|
264
279
|
### Quiet mode
|
|
265
280
|
|
|
266
281
|
To suppress account-related toast notifications (useful for streaming/recording):
|
package/dist/src/constants.d.ts
CHANGED
|
@@ -45,6 +45,12 @@ export declare const ANTIGRAVITY_HEADERS: {
|
|
|
45
45
|
readonly "X-Goog-Api-Client": "google-cloud-sdk vscode_cloudshelleditor/0.1";
|
|
46
46
|
readonly "Client-Metadata": "{\"ideType\":\"IDE_UNSPECIFIED\",\"platform\":\"PLATFORM_UNSPECIFIED\",\"pluginType\":\"GEMINI\"}";
|
|
47
47
|
};
|
|
48
|
+
export declare const GEMINI_CLI_HEADERS: {
|
|
49
|
+
readonly "User-Agent": "google-api-nodejs-client/9.15.1";
|
|
50
|
+
readonly "X-Goog-Api-Client": "gl-node/22.17.0";
|
|
51
|
+
readonly "Client-Metadata": "ideType=IDE_UNSPECIFIED,platform=PLATFORM_UNSPECIFIED,pluginType=GEMINI";
|
|
52
|
+
};
|
|
53
|
+
export type HeaderStyle = "antigravity" | "gemini-cli";
|
|
48
54
|
/**
|
|
49
55
|
* Provider identifier shared between the plugin loader and credential store.
|
|
50
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB,8EAA8E,CAAC;AAEjH;;GAEG;AACH,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAM/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,sDAAsD,CAAC;AAC9F,eAAO,MAAM,6BAA6B,yDAAyD,CAAC;AACpG,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,8BAA8B,+JAIjC,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,0BAA0B,+JAI7B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,oBAAoB,sDAA6B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,8BAA8B,sBAAsB,CAAC;AAElE,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,uBAAuB,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB,8EAA8E,CAAC;AAEjH;;GAEG;AACH,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAM/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,sDAAsD,CAAC;AAC9F,eAAO,MAAM,6BAA6B,yDAAyD,CAAC;AACpG,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,8BAA8B,+JAIjC,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,0BAA0B,+JAI7B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,oBAAoB,sDAA6B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,8BAA8B,sBAAsB,CAAC;AAElE,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,uBAAuB,WAAW,CAAC"}
|
package/dist/src/constants.js
CHANGED
|
@@ -59,6 +59,11 @@ export const ANTIGRAVITY_HEADERS = {
|
|
|
59
59
|
"X-Goog-Api-Client": "google-cloud-sdk vscode_cloudshelleditor/0.1",
|
|
60
60
|
"Client-Metadata": '{"ideType":"IDE_UNSPECIFIED","platform":"PLATFORM_UNSPECIFIED","pluginType":"GEMINI"}',
|
|
61
61
|
};
|
|
62
|
+
export const GEMINI_CLI_HEADERS = {
|
|
63
|
+
"User-Agent": "google-api-nodejs-client/9.15.1",
|
|
64
|
+
"X-Goog-Api-Client": "gl-node/22.17.0",
|
|
65
|
+
"Client-Metadata": "ideType=IDE_UNSPECIFIED,platform=PLATFORM_UNSPECIFIED,pluginType=GEMINI",
|
|
66
|
+
};
|
|
62
67
|
/**
|
|
63
68
|
* Provider identifier shared between the plugin loader and credential store.
|
|
64
69
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,2EAA2E,CAAC;AAEjH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qCAAqC,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,gDAAgD;IAChD,gDAAgD;IAChD,kDAAkD;IAClD,uCAAuC;IACvC,uDAAuD;CACxD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,mDAAmD,CAAC;AAC9F,MAAM,CAAC,MAAM,6BAA6B,GAAG,sDAAsD,CAAC;AACpG,MAAM,CAAC,MAAM,yBAAyB,GAAG,qCAAqC,CAAC;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,0BAA0B;IAC1B,6BAA6B;IAC7B,yBAAyB;CACjB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,yBAAyB;IACzB,0BAA0B;IAC1B,6BAA6B;CACrB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,mBAAmB,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,kCAAkC;IAChD,mBAAmB,EAAE,8CAA8C;IACnE,iBAAiB,EAAE,uFAAuF;CAClG,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,2EAA2E,CAAC;AAEjH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qCAAqC,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,gDAAgD;IAChD,gDAAgD;IAChD,kDAAkD;IAClD,uCAAuC;IACvC,uDAAuD;CACxD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,mDAAmD,CAAC;AAC9F,MAAM,CAAC,MAAM,6BAA6B,GAAG,sDAAsD,CAAC;AACpG,MAAM,CAAC,MAAM,yBAAyB,GAAG,qCAAqC,CAAC;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,0BAA0B;IAC1B,6BAA6B;IAC7B,yBAAyB;CACjB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,yBAAyB;IACzB,0BAA0B;IAC1B,6BAA6B;CACrB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,mBAAmB,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,kCAAkC;IAChD,mBAAmB,EAAE,8CAA8C;IACnE,iBAAiB,EAAE,uFAAuF;CAClG,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,YAAY,EAAE,iCAAiC;IAC/C,mBAAmB,EAAE,iBAAiB;IACtC,iBAAiB,EAAE,yEAAyE;CACpF,CAAC;AAIX;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,QAAQ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type AccountStorageV3, type RateLimitStateV3, type ModelFamily, type HeaderStyle } from "./storage";
|
|
2
2
|
import type { OAuthAuthDetails, RefreshParts } from "./types";
|
|
3
|
-
export type { ModelFamily } from "./storage";
|
|
3
|
+
export type { ModelFamily, HeaderStyle } from "./storage";
|
|
4
|
+
export type QuotaKey = "claude" | "gemini-antigravity" | "gemini-cli";
|
|
4
5
|
export interface ManagedAccount {
|
|
5
6
|
index: number;
|
|
6
7
|
email?: string;
|
|
@@ -9,7 +10,7 @@ export interface ManagedAccount {
|
|
|
9
10
|
parts: RefreshParts;
|
|
10
11
|
access?: string;
|
|
11
12
|
expires?: number;
|
|
12
|
-
rateLimitResetTimes:
|
|
13
|
+
rateLimitResetTimes: RateLimitStateV3;
|
|
13
14
|
lastSwitchReason?: "rate-limit" | "initial" | "rotation";
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
@@ -24,20 +25,22 @@ export interface ManagedAccount {
|
|
|
24
25
|
export declare class AccountManager {
|
|
25
26
|
private accounts;
|
|
26
27
|
private cursor;
|
|
27
|
-
private
|
|
28
|
+
private currentAccountIndexByFamily;
|
|
28
29
|
private lastToastAccountIndex;
|
|
29
30
|
private lastToastTime;
|
|
30
31
|
static loadFromDisk(authFallback?: OAuthAuthDetails): Promise<AccountManager>;
|
|
31
|
-
constructor(authFallback?: OAuthAuthDetails, stored?:
|
|
32
|
+
constructor(authFallback?: OAuthAuthDetails, stored?: AccountStorageV3 | null);
|
|
32
33
|
getAccountCount(): number;
|
|
33
34
|
getAccountsSnapshot(): ManagedAccount[];
|
|
34
|
-
|
|
35
|
-
markSwitched(account: ManagedAccount, reason: "rate-limit" | "initial" | "rotation"): void;
|
|
35
|
+
getCurrentAccountForFamily(family: ModelFamily): ManagedAccount | null;
|
|
36
|
+
markSwitched(account: ManagedAccount, reason: "rate-limit" | "initial" | "rotation", family: ModelFamily): void;
|
|
36
37
|
shouldShowAccountToast(accountIndex: number, debounceMs?: number): boolean;
|
|
37
38
|
markToastShown(accountIndex: number): void;
|
|
38
39
|
getCurrentOrNextForFamily(family: ModelFamily): ManagedAccount | null;
|
|
39
40
|
getNextForFamily(family: ModelFamily): ManagedAccount | null;
|
|
40
|
-
markRateLimited(account: ManagedAccount, retryAfterMs: number, family: ModelFamily): void;
|
|
41
|
+
markRateLimited(account: ManagedAccount, retryAfterMs: number, family: ModelFamily, headerStyle?: HeaderStyle): void;
|
|
42
|
+
isRateLimitedForHeaderStyle(account: ManagedAccount, family: ModelFamily, headerStyle: HeaderStyle): boolean;
|
|
43
|
+
getAvailableHeaderStyle(account: ManagedAccount, family: ModelFamily): HeaderStyle | null;
|
|
41
44
|
removeAccount(account: ManagedAccount): boolean;
|
|
42
45
|
updateFromAuth(account: ManagedAccount, auth: OAuthAuthDetails): void;
|
|
43
46
|
toAuthDetails(account: ManagedAccount): OAuthAuthDetails;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/plugin/accounts.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/plugin/accounts.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACzI,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,oBAAoB,GAAG,YAAY,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,gBAAgB,CAAC;IACtC,gBAAgB,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;CAC1D;AA2CD;;;;;;;;GAQG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,2BAA2B,CAGjC;IACF,OAAO,CAAC,qBAAqB,CAAM;IACnC,OAAO,CAAC,aAAa,CAAK;WAEb,YAAY,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;gBAKvE,YAAY,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAiF7E,eAAe,IAAI,MAAM;IAIzB,mBAAmB,IAAI,cAAc,EAAE;IAIvC,0BAA0B,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI;IAQtE,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAK/G,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,SAAQ,GAAG,OAAO;IAQzE,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAK1C,yBAAyB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI;IAiBrE,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI;IAoB5D,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAE,WAA2B,GAAG,IAAI;IAKnI,2BAA2B,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO;IAM5G,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IAczF,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAmC/C,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAOrE,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,gBAAgB;IASxD,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IA6BpD,WAAW,IAAI,cAAc,EAAE;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAyBlC"}
|
|
@@ -9,17 +9,30 @@ function clampNonNegativeInt(value, fallback) {
|
|
|
9
9
|
}
|
|
10
10
|
return value < 0 ? 0 : Math.floor(value);
|
|
11
11
|
}
|
|
12
|
-
function
|
|
13
|
-
|
|
12
|
+
function getQuotaKey(family, headerStyle) {
|
|
13
|
+
if (family === "claude") {
|
|
14
|
+
return "claude";
|
|
15
|
+
}
|
|
16
|
+
return headerStyle === "gemini-cli" ? "gemini-cli" : "gemini-antigravity";
|
|
17
|
+
}
|
|
18
|
+
function isRateLimitedForQuotaKey(account, key) {
|
|
19
|
+
const resetTime = account.rateLimitResetTimes[key];
|
|
14
20
|
return resetTime !== undefined && nowMs() < resetTime;
|
|
15
21
|
}
|
|
22
|
+
function isRateLimitedForFamily(account, family) {
|
|
23
|
+
if (family === "claude") {
|
|
24
|
+
return isRateLimitedForQuotaKey(account, "claude");
|
|
25
|
+
}
|
|
26
|
+
return isRateLimitedForQuotaKey(account, "gemini-antigravity") &&
|
|
27
|
+
isRateLimitedForQuotaKey(account, "gemini-cli");
|
|
28
|
+
}
|
|
16
29
|
function clearExpiredRateLimits(account) {
|
|
17
30
|
const now = nowMs();
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
31
|
+
const keys = ["claude", "gemini-antigravity", "gemini-cli"];
|
|
32
|
+
for (const key of keys) {
|
|
33
|
+
if (account.rateLimitResetTimes[key] !== undefined && now >= account.rateLimitResetTimes[key]) {
|
|
34
|
+
delete account.rateLimitResetTimes[key];
|
|
35
|
+
}
|
|
23
36
|
}
|
|
24
37
|
}
|
|
25
38
|
/**
|
|
@@ -34,7 +47,10 @@ function clearExpiredRateLimits(account) {
|
|
|
34
47
|
export class AccountManager {
|
|
35
48
|
accounts = [];
|
|
36
49
|
cursor = 0;
|
|
37
|
-
|
|
50
|
+
currentAccountIndexByFamily = {
|
|
51
|
+
claude: -1,
|
|
52
|
+
gemini: -1,
|
|
53
|
+
};
|
|
38
54
|
lastToastAccountIndex = -1;
|
|
39
55
|
lastToastTime = 0;
|
|
40
56
|
static async loadFromDisk(authFallback) {
|
|
@@ -79,7 +95,9 @@ export class AccountManager {
|
|
|
79
95
|
this.cursor = clampNonNegativeInt(stored.activeIndex, 0);
|
|
80
96
|
if (this.accounts.length > 0) {
|
|
81
97
|
this.cursor = this.cursor % this.accounts.length;
|
|
82
|
-
|
|
98
|
+
const defaultIndex = this.cursor;
|
|
99
|
+
this.currentAccountIndexByFamily.claude = clampNonNegativeInt(stored.activeIndexByFamily?.claude, defaultIndex) % this.accounts.length;
|
|
100
|
+
this.currentAccountIndexByFamily.gemini = clampNonNegativeInt(stored.activeIndexByFamily?.gemini, defaultIndex) % this.accounts.length;
|
|
83
101
|
}
|
|
84
102
|
return;
|
|
85
103
|
}
|
|
@@ -100,7 +118,8 @@ export class AccountManager {
|
|
|
100
118
|
},
|
|
101
119
|
];
|
|
102
120
|
this.cursor = 0;
|
|
103
|
-
this.
|
|
121
|
+
this.currentAccountIndexByFamily.claude = 0;
|
|
122
|
+
this.currentAccountIndexByFamily.gemini = 0;
|
|
104
123
|
}
|
|
105
124
|
}
|
|
106
125
|
}
|
|
@@ -110,15 +129,16 @@ export class AccountManager {
|
|
|
110
129
|
getAccountsSnapshot() {
|
|
111
130
|
return this.accounts.map((a) => ({ ...a, parts: { ...a.parts }, rateLimitResetTimes: { ...a.rateLimitResetTimes } }));
|
|
112
131
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
132
|
+
getCurrentAccountForFamily(family) {
|
|
133
|
+
const currentIndex = this.currentAccountIndexByFamily[family];
|
|
134
|
+
if (currentIndex >= 0 && currentIndex < this.accounts.length) {
|
|
135
|
+
return this.accounts[currentIndex] ?? null;
|
|
116
136
|
}
|
|
117
137
|
return null;
|
|
118
138
|
}
|
|
119
|
-
markSwitched(account, reason) {
|
|
139
|
+
markSwitched(account, reason, family) {
|
|
120
140
|
account.lastSwitchReason = reason;
|
|
121
|
-
this.
|
|
141
|
+
this.currentAccountIndexByFamily[family] = account.index;
|
|
122
142
|
}
|
|
123
143
|
shouldShowAccountToast(accountIndex, debounceMs = 30000) {
|
|
124
144
|
const now = nowMs();
|
|
@@ -132,7 +152,7 @@ export class AccountManager {
|
|
|
132
152
|
this.lastToastTime = nowMs();
|
|
133
153
|
}
|
|
134
154
|
getCurrentOrNextForFamily(family) {
|
|
135
|
-
const current = this.
|
|
155
|
+
const current = this.getCurrentAccountForFamily(family);
|
|
136
156
|
if (current) {
|
|
137
157
|
clearExpiredRateLimits(current);
|
|
138
158
|
if (!isRateLimitedForFamily(current, family)) {
|
|
@@ -142,7 +162,7 @@ export class AccountManager {
|
|
|
142
162
|
}
|
|
143
163
|
const next = this.getNextForFamily(family);
|
|
144
164
|
if (next) {
|
|
145
|
-
this.
|
|
165
|
+
this.currentAccountIndexByFamily[family] = next.index;
|
|
146
166
|
}
|
|
147
167
|
return next;
|
|
148
168
|
}
|
|
@@ -162,8 +182,27 @@ export class AccountManager {
|
|
|
162
182
|
account.lastUsed = nowMs();
|
|
163
183
|
return account;
|
|
164
184
|
}
|
|
165
|
-
markRateLimited(account, retryAfterMs, family) {
|
|
166
|
-
|
|
185
|
+
markRateLimited(account, retryAfterMs, family, headerStyle = "antigravity") {
|
|
186
|
+
const key = getQuotaKey(family, headerStyle);
|
|
187
|
+
account.rateLimitResetTimes[key] = nowMs() + retryAfterMs;
|
|
188
|
+
}
|
|
189
|
+
isRateLimitedForHeaderStyle(account, family, headerStyle) {
|
|
190
|
+
clearExpiredRateLimits(account);
|
|
191
|
+
const key = getQuotaKey(family, headerStyle);
|
|
192
|
+
return isRateLimitedForQuotaKey(account, key);
|
|
193
|
+
}
|
|
194
|
+
getAvailableHeaderStyle(account, family) {
|
|
195
|
+
clearExpiredRateLimits(account);
|
|
196
|
+
if (family === "claude") {
|
|
197
|
+
return isRateLimitedForQuotaKey(account, "claude") ? null : "antigravity";
|
|
198
|
+
}
|
|
199
|
+
if (!isRateLimitedForQuotaKey(account, "gemini-antigravity")) {
|
|
200
|
+
return "antigravity";
|
|
201
|
+
}
|
|
202
|
+
if (!isRateLimitedForQuotaKey(account, "gemini-cli")) {
|
|
203
|
+
return "gemini-cli";
|
|
204
|
+
}
|
|
205
|
+
return null;
|
|
167
206
|
}
|
|
168
207
|
removeAccount(account) {
|
|
169
208
|
const idx = this.accounts.indexOf(account);
|
|
@@ -176,18 +215,21 @@ export class AccountManager {
|
|
|
176
215
|
});
|
|
177
216
|
if (this.accounts.length === 0) {
|
|
178
217
|
this.cursor = 0;
|
|
179
|
-
this.
|
|
218
|
+
this.currentAccountIndexByFamily.claude = -1;
|
|
219
|
+
this.currentAccountIndexByFamily.gemini = -1;
|
|
180
220
|
return true;
|
|
181
221
|
}
|
|
182
222
|
if (this.cursor > idx) {
|
|
183
223
|
this.cursor -= 1;
|
|
184
224
|
}
|
|
185
225
|
this.cursor = this.cursor % this.accounts.length;
|
|
186
|
-
|
|
187
|
-
this.
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
this.
|
|
226
|
+
for (const family of ["claude", "gemini"]) {
|
|
227
|
+
if (this.currentAccountIndexByFamily[family] > idx) {
|
|
228
|
+
this.currentAccountIndexByFamily[family] -= 1;
|
|
229
|
+
}
|
|
230
|
+
if (this.currentAccountIndexByFamily[family] >= this.accounts.length) {
|
|
231
|
+
this.currentAccountIndexByFamily[family] = -1;
|
|
232
|
+
}
|
|
191
233
|
}
|
|
192
234
|
return true;
|
|
193
235
|
}
|
|
@@ -213,18 +255,32 @@ export class AccountManager {
|
|
|
213
255
|
if (available.length > 0) {
|
|
214
256
|
return 0;
|
|
215
257
|
}
|
|
216
|
-
const waitTimes =
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
258
|
+
const waitTimes = [];
|
|
259
|
+
for (const a of this.accounts) {
|
|
260
|
+
if (family === "claude") {
|
|
261
|
+
const t = a.rateLimitResetTimes.claude;
|
|
262
|
+
if (t !== undefined)
|
|
263
|
+
waitTimes.push(Math.max(0, t - nowMs()));
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
// For Gemini, account becomes available when EITHER pool expires
|
|
267
|
+
const t1 = a.rateLimitResetTimes["gemini-antigravity"];
|
|
268
|
+
const t2 = a.rateLimitResetTimes["gemini-cli"];
|
|
269
|
+
const accountWait = Math.min(t1 !== undefined ? Math.max(0, t1 - nowMs()) : Infinity, t2 !== undefined ? Math.max(0, t2 - nowMs()) : Infinity);
|
|
270
|
+
if (accountWait !== Infinity)
|
|
271
|
+
waitTimes.push(accountWait);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
220
274
|
return waitTimes.length > 0 ? Math.min(...waitTimes) : 0;
|
|
221
275
|
}
|
|
222
276
|
getAccounts() {
|
|
223
277
|
return [...this.accounts];
|
|
224
278
|
}
|
|
225
279
|
async saveToDisk() {
|
|
280
|
+
const claudeIndex = Math.max(0, this.currentAccountIndexByFamily.claude);
|
|
281
|
+
const geminiIndex = Math.max(0, this.currentAccountIndexByFamily.gemini);
|
|
226
282
|
const storage = {
|
|
227
|
-
version:
|
|
283
|
+
version: 3,
|
|
228
284
|
accounts: this.accounts.map((a) => ({
|
|
229
285
|
email: a.email,
|
|
230
286
|
refreshToken: a.parts.refreshToken,
|
|
@@ -235,7 +291,11 @@ export class AccountManager {
|
|
|
235
291
|
lastSwitchReason: a.lastSwitchReason,
|
|
236
292
|
rateLimitResetTimes: Object.keys(a.rateLimitResetTimes).length > 0 ? a.rateLimitResetTimes : undefined,
|
|
237
293
|
})),
|
|
238
|
-
activeIndex:
|
|
294
|
+
activeIndex: claudeIndex,
|
|
295
|
+
activeIndexByFamily: {
|
|
296
|
+
claude: claudeIndex,
|
|
297
|
+
gemini: geminiIndex,
|
|
298
|
+
},
|
|
239
299
|
};
|
|
240
300
|
await saveAccounts(storage);
|
|
241
301
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/plugin/accounts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/plugin/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type HeaderStyle } from "../constants";
|
|
1
2
|
import { type AntigravityDebugContext } from "./debug";
|
|
2
3
|
/**
|
|
3
4
|
* Gets the stable session ID for this plugin instance.
|
|
@@ -11,7 +12,7 @@ export declare function isGenerativeLanguageRequest(input: RequestInfo): input i
|
|
|
11
12
|
* Rewrites OpenAI-style requests into Antigravity shape, normalizing model, headers,
|
|
12
13
|
* optional cached_content, and thinking config. Also toggles streaming mode for SSE actions.
|
|
13
14
|
*/
|
|
14
|
-
export declare function prepareAntigravityRequest(input: RequestInfo, init: RequestInit | undefined, accessToken: string, projectId: string, endpointOverride?: string): {
|
|
15
|
+
export declare function prepareAntigravityRequest(input: RequestInfo, init: RequestInit | undefined, accessToken: string, projectId: string, endpointOverride?: string, headerStyle?: HeaderStyle): {
|
|
15
16
|
request: RequestInfo;
|
|
16
17
|
init: RequestInit;
|
|
17
18
|
streaming: boolean;
|
|
@@ -24,6 +25,7 @@ export declare function prepareAntigravityRequest(input: RequestInfo, init: Requ
|
|
|
24
25
|
toolDebugSummary?: string;
|
|
25
26
|
toolDebugPayload?: string;
|
|
26
27
|
needsSignedThinkingWarmup?: boolean;
|
|
28
|
+
headerStyle: HeaderStyle;
|
|
27
29
|
};
|
|
28
30
|
export declare function buildThinkingWarmupBody(bodyText: string | undefined, isClaudeThinkingModel: boolean): string | null;
|
|
29
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/plugin/request.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/plugin/request.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,SAAS,CAAC;AAkWjB;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAaD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,IAAI,MAAM,CAE/E;AAmKD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,EACzB,WAAW,GAAE,WAA2B,GACvC;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,WAAW,EAAE,WAAW,CAAC;CAC1B,CAirBA;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,qBAAqB,EAAE,OAAO,GAC7B,MAAM,GAAG,IAAI,CAuCf;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,OAAO,EAClB,YAAY,CAAC,EAAE,uBAAuB,GAAG,IAAI,EAC7C,cAAc,CAAC,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,EACzB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,QAAQ,CAAC,CAyInB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
|
-
import { ANTIGRAVITY_HEADERS, ANTIGRAVITY_ENDPOINT, } from "../constants";
|
|
2
|
+
import { ANTIGRAVITY_HEADERS, GEMINI_CLI_HEADERS, ANTIGRAVITY_ENDPOINT, } from "../constants";
|
|
3
3
|
import { cacheSignature, getCachedSignature } from "./cache";
|
|
4
4
|
import { DEBUG_MESSAGE_PREFIX, isDebugEnabled, logAntigravityDebugResponse, } from "./debug";
|
|
5
5
|
import { DEFAULT_THINKING_BUDGET, extractThinkingConfig, extractUsageFromSsePayload, extractUsageMetadata, filterUnsignedThinkingBlocks, filterMessagesThinkingBlocks, isThinkingCapableModel, normalizeThinkingConfig, parseAntigravityApiBody, resolveThinkingConfig, rewriteAntigravityPreviewAccessError, transformThinkingParts, } from "./request-helpers";
|
|
@@ -427,7 +427,7 @@ function cacheThinkingSignatures(response, sessionId, thoughtBuffer) {
|
|
|
427
427
|
* Rewrites OpenAI-style requests into Antigravity shape, normalizing model, headers,
|
|
428
428
|
* optional cached_content, and thinking config. Also toggles streaming mode for SSE actions.
|
|
429
429
|
*/
|
|
430
|
-
export function prepareAntigravityRequest(input, init, accessToken, projectId, endpointOverride) {
|
|
430
|
+
export function prepareAntigravityRequest(input, init, accessToken, projectId, endpointOverride, headerStyle = "antigravity") {
|
|
431
431
|
const baseInit = { ...init };
|
|
432
432
|
const headers = new Headers(init?.headers ?? {});
|
|
433
433
|
let resolvedProjectId = projectId?.trim() || "";
|
|
@@ -441,6 +441,7 @@ export function prepareAntigravityRequest(input, init, accessToken, projectId, e
|
|
|
441
441
|
request: input,
|
|
442
442
|
init: { ...baseInit, headers },
|
|
443
443
|
streaming: false,
|
|
444
|
+
headerStyle,
|
|
444
445
|
};
|
|
445
446
|
}
|
|
446
447
|
headers.set("Authorization", `Bearer ${accessToken}`);
|
|
@@ -451,6 +452,7 @@ export function prepareAntigravityRequest(input, init, accessToken, projectId, e
|
|
|
451
452
|
request: input,
|
|
452
453
|
init: { ...baseInit, headers },
|
|
453
454
|
streaming: false,
|
|
455
|
+
headerStyle,
|
|
454
456
|
};
|
|
455
457
|
}
|
|
456
458
|
const [, rawModel = "", rawAction = ""] = match;
|
|
@@ -972,9 +974,10 @@ export function prepareAntigravityRequest(input, init, accessToken, projectId, e
|
|
|
972
974
|
headers.set("anthropic-beta", interleavedHeader);
|
|
973
975
|
}
|
|
974
976
|
}
|
|
975
|
-
|
|
976
|
-
headers.set("
|
|
977
|
-
headers.set("Client
|
|
977
|
+
const selectedHeaders = headerStyle === "gemini-cli" ? GEMINI_CLI_HEADERS : ANTIGRAVITY_HEADERS;
|
|
978
|
+
headers.set("User-Agent", selectedHeaders["User-Agent"]);
|
|
979
|
+
headers.set("X-Goog-Api-Client", selectedHeaders["X-Goog-Api-Client"]);
|
|
980
|
+
headers.set("Client-Metadata", selectedHeaders["Client-Metadata"]);
|
|
978
981
|
// Optional debug header to observe tool normalization on the backend if surfaced
|
|
979
982
|
if (toolDebugMissing > 0) {
|
|
980
983
|
headers.set("X-Opencode-Tools-Debug", String(toolDebugMissing));
|
|
@@ -996,6 +999,7 @@ export function prepareAntigravityRequest(input, init, accessToken, projectId, e
|
|
|
996
999
|
toolDebugSummary: toolDebugSummaries.slice(0, 20).join(" | "),
|
|
997
1000
|
toolDebugPayload,
|
|
998
1001
|
needsSignedThinkingWarmup,
|
|
1002
|
+
headerStyle,
|
|
999
1003
|
};
|
|
1000
1004
|
}
|
|
1001
1005
|
export function buildThinkingWarmupBody(bodyText, isClaudeThinkingModel) {
|