opencode-antigravity-auth 1.2.2 → 1.2.4

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 CHANGED
@@ -1,4 +1,4 @@
1
- # Antigravity OAuth Plugin for Opencode
1
+ # Antigravity + Gemini CLI OAuth Plugin for Opencode
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/opencode-antigravity-auth.svg)](https://www.npmjs.com/package/opencode-antigravity-auth)
4
4
 
@@ -7,8 +7,8 @@ Enable Opencode to authenticate against **Antigravity** (Google's IDE) via OAuth
7
7
  ## What you get
8
8
 
9
9
  - **Google OAuth sign-in** (multi-account via `opencode auth login`) with automatic token refresh
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
10
+ - **Multi-account load balancing** Automatically cycle through multiple Google accounts to maximize throughput
11
+ - **Two quota sources for Gemini** Automatic fallback between **Antigravity quota** and **Gemini CLI quota** (same account) before switching accounts
12
12
  - **Real-time SSE streaming** including thinking blocks and incremental output
13
13
  - **Advanced Claude support** Interleaved thinking, stable multi-turn signatures, and validated tool calling
14
14
  - **Automatic endpoint fallback** between Antigravity API endpoints (daily → autopush → prod)
@@ -42,7 +42,7 @@ If the agent only installs the plugin, ask it to also add models under `provider
42
42
 
43
43
  ```json
44
44
  {
45
- "plugin": ["opencode-antigravity-auth@1.2.2"]
45
+ "plugin": ["opencode-antigravity-auth@1.2.4"]
46
46
  }
47
47
  ```
48
48
 
@@ -60,7 +60,7 @@ If the agent only installs the plugin, ask it to also add models under `provider
60
60
 
61
61
  ```json
62
62
  {
63
- "plugin": ["opencode-antigravity-auth@1.2.2"],
63
+ "plugin": ["opencode-antigravity-auth@1.2.4"],
64
64
  "provider": {
65
65
  "google": {
66
66
  "models": {
@@ -110,14 +110,14 @@ mkdir -p ~/.config/opencode
110
110
 
111
111
  if [ -f ~/.config/opencode/opencode.json ]; then
112
112
  if command -v jq &> /dev/null; then
113
- jq '.plugin = ((.plugin // []) + ["opencode-antigravity-auth@1.2.2"] | unique)' \
113
+ jq '.plugin = ((.plugin // []) + ["opencode-antigravity-auth@1.2.4"] | unique)' \
114
114
  ~/.config/opencode/opencode.json > /tmp/oc.json && \
115
115
  mv /tmp/oc.json ~/.config/opencode/opencode.json
116
116
  else
117
- echo "Add \"opencode-antigravity-auth@1.2.2\" to the plugin array manually"
117
+ echo "Add \"opencode-antigravity-auth@1.2.4\" to the plugin array manually"
118
118
  fi
119
119
  else
120
- echo '{"plugin":["opencode-antigravity-auth@1.2.2"]}' > ~/.config/opencode/opencode.json
120
+ echo '{"plugin":["opencode-antigravity-auth@1.2.4"]}' > ~/.config/opencode/opencode.json
121
121
  fi
122
122
  ```
123
123
 
@@ -265,14 +265,20 @@ The plugin supports multiple Google accounts to maximize rate limits and provide
265
265
 
266
266
  ### Dual quota pools (Gemini only)
267
267
 
268
- For Gemini models, the plugin can access two independent quota pools using the same Google account:
268
+ For Gemini models, the plugin can access **two independent quota pools** using the same Google account:
269
269
 
270
270
  | Quota Pool | Headers Used | When Used |
271
271
  |------------|--------------|-----------|
272
- | Antigravity | Antigravity headers | Primary (tried first) |
273
- | Gemini CLI | Gemini CLI headers | Fallback when Antigravity is rate-limited |
272
+ | **Antigravity** | Antigravity headers | Primary (tried first) |
273
+ | **Gemini CLI** | Gemini CLI headers | Fallback when Antigravity is rate-limited |
274
274
 
275
- This effectively **doubles your Gemini quota** per account. The fallback is seamless — conversation context is preserved when switching between quota pools.
275
+ This effectively **doubles your Gemini quota** per account.
276
+
277
+ **How it works:**
278
+ 1. Plugin tries Antigravity quota first
279
+ 2. If rate-limited (429), it automatically retries using Gemini CLI headers
280
+ 3. Only if **both** pools are exhausted does it switch to the next account
281
+ 4. This happens seamlessly — conversation context is preserved when switching between quota pools.
276
282
 
277
283
  > **Note:** Claude models only work with Antigravity headers, so this dual-pool fallback only applies to Gemini models.
278
284
 
@@ -55,4 +55,16 @@ export type HeaderStyle = "antigravity" | "gemini-cli";
55
55
  * Provider identifier shared between the plugin loader and credential store.
56
56
  */
57
57
  export declare const ANTIGRAVITY_PROVIDER_ID = "google";
58
+ /**
59
+ * When true, preserves thinking blocks for Claude models using signature caching/restoration.
60
+ * By default (false), thinking blocks are stripped from Claude requests for reliability.
61
+ *
62
+ * Set OPENCODE_ANTIGRAVITY_KEEP_THINKING=1 to enable thinking preservation.
63
+ *
64
+ * Trade-offs:
65
+ * - false (default): 100% reliable, no signature errors, ~5-15% more tokens per turn
66
+ * - true: Full context preserved, but may encounter signature validation errors if
67
+ * OpenCode SDK modifies thinking blocks (adds cache_control, wraps in objects)
68
+ */
69
+ export declare const KEEP_THINKING_BLOCKS: boolean;
58
70
  //# sourceMappingURL=constants.d.ts.map
@@ -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,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAEvD;;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;AAEhD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,SAE0B,CAAC"}
@@ -68,4 +68,17 @@ export const GEMINI_CLI_HEADERS = {
68
68
  * Provider identifier shared between the plugin loader and credential store.
69
69
  */
70
70
  export const ANTIGRAVITY_PROVIDER_ID = "google";
71
+ /**
72
+ * When true, preserves thinking blocks for Claude models using signature caching/restoration.
73
+ * By default (false), thinking blocks are stripped from Claude requests for reliability.
74
+ *
75
+ * Set OPENCODE_ANTIGRAVITY_KEEP_THINKING=1 to enable thinking preservation.
76
+ *
77
+ * Trade-offs:
78
+ * - false (default): 100% reliable, no signature errors, ~5-15% more tokens per turn
79
+ * - true: Full context preserved, but may encounter signature validation errors if
80
+ * OpenCode SDK modifies thinking blocks (adds cache_control, wraps in objects)
81
+ */
82
+ export const KEEP_THINKING_BLOCKS = process.env.OPENCODE_ANTIGRAVITY_KEEP_THINKING === "1" ||
83
+ process.env.OPENCODE_ANTIGRAVITY_KEEP_THINKING === "true";
71
84
  //# sourceMappingURL=constants.js.map
@@ -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,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
+ {"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;AAEhD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,OAAO,CAAC,GAAG,CAAC,kCAAkC,KAAK,GAAG;IACtD,OAAO,CAAC,GAAG,CAAC,kCAAkC,KAAK,MAAM,CAAC"}
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Cleans a JSON schema for Antigravity API compatibility.
3
+ * Transforms unsupported features into description hints while preserving semantic information.
4
+ *
5
+ * Ported from CLIProxyAPI's CleanJSONSchemaForAntigravity (gemini_schema.go)
6
+ */
7
+ export declare function cleanJSONSchemaForAntigravity(schema: any): any;
1
8
  export interface AntigravityApiError {
2
9
  code?: number;
3
10
  message?: string;
@@ -50,18 +57,19 @@ export declare function extractThinkingConfig(requestPayload: Record<string, unk
50
57
  */
51
58
  export declare function resolveThinkingConfig(userConfig: ThinkingConfig | undefined, isThinkingModel: boolean, _isClaudeModel: boolean, _hasAssistantHistory: boolean): ThinkingConfig | undefined;
52
59
  /**
53
- * Filters out unsigned thinking blocks from contents (required by Claude API).
54
- * Attempts to restore signatures from cache for thinking blocks that lack valid signatures.
60
+ * Filters thinking blocks from contents unless the signature matches our cache.
61
+ * Attempts to restore signatures from cache for thinking blocks that lack signatures.
55
62
  *
56
63
  * @param contents - The contents array from the request
57
64
  * @param sessionId - Optional session ID for signature cache lookup
58
65
  * @param getCachedSignatureFn - Optional function to retrieve cached signatures
59
66
  */
60
- export declare function filterUnsignedThinkingBlocks(contents: any[], sessionId?: string, getCachedSignatureFn?: (sessionId: string, text: string) => string | undefined): any[];
67
+ export declare function filterUnsignedThinkingBlocks(contents: any[], sessionId?: string, getCachedSignatureFn?: (sessionId: string, text: string) => string | undefined, isClaudeModel?: boolean): any[];
61
68
  /**
62
- * Filters thinking blocks from Anthropic-style messages[] payloads.
69
+ * Filters thinking blocks from Anthropic-style messages[] payloads using cached signatures.
63
70
  */
64
- export declare function filterMessagesThinkingBlocks(messages: any[], sessionId?: string, getCachedSignatureFn?: (sessionId: string, text: string) => string | undefined): any[];
71
+ export declare function filterMessagesThinkingBlocks(messages: any[], sessionId?: string, getCachedSignatureFn?: (sessionId: string, text: string) => string | undefined, isClaudeModel?: boolean): any[];
72
+ export declare function deepFilterThinkingBlocks(payload: unknown, sessionId?: string, getCachedSignatureFn?: (sessionId: string, text: string) => string | undefined, isClaudeModel?: boolean): unknown;
65
73
  /**
66
74
  * Transforms thinking/reasoning content in response parts to OpenCode's expected format.
67
75
  * Handles both Gemini-style (thought: true) and Anthropic-style (type: "thinking") formats.
@@ -1 +1 @@
1
- {"version":3,"file":"request-helpers.d.ts","sourceRoot":"","sources":["../../../src/plugin/request-helpers.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKjE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACxD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC7C,cAAc,GAAG,SAAS,CA0B5B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,eAAe,EAAE,OAAO,EACxB,cAAc,EAAE,OAAO,EACvB,oBAAoB,EAAE,OAAO,GAC5B,cAAc,GAAG,SAAS,CAQ5B;AA2JD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,GAAG,EAAE,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC7E,GAAG,EAAE,CAgCP;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,GAAG,EAAE,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC7E,GAAG,EAAE,CAmBP;AAmDD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAwCjE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CA2BnF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAmBlF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,wBAAwB,GAAG,IAAI,CAmB9F;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI,CAuB3F;AAED;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,kBAAkB,GAAG,IAAI,CAmB3B"}
1
+ {"version":3,"file":"request-helpers.d.ts","sourceRoot":"","sources":["../../../src/plugin/request-helpers.ts"],"names":[],"mappings":"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"}