opencode-antigravity-auth 1.0.6 → 1.1.0

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.
Files changed (41) hide show
  1. package/README.md +29 -7
  2. package/dist/src/plugin/accounts.d.ts +37 -0
  3. package/dist/src/plugin/accounts.d.ts.map +1 -0
  4. package/dist/src/plugin/accounts.js +190 -0
  5. package/dist/src/plugin/accounts.js.map +1 -0
  6. package/dist/src/plugin/accounts.test.d.ts +2 -0
  7. package/dist/src/plugin/accounts.test.d.ts.map +1 -0
  8. package/dist/src/plugin/accounts.test.js +139 -0
  9. package/dist/src/plugin/accounts.test.js.map +1 -0
  10. package/dist/src/plugin/cli.d.ts +4 -0
  11. package/dist/src/plugin/cli.d.ts.map +1 -1
  12. package/dist/src/plugin/cli.js +14 -0
  13. package/dist/src/plugin/cli.js.map +1 -1
  14. package/dist/src/plugin/project.d.ts +2 -2
  15. package/dist/src/plugin/project.d.ts.map +1 -1
  16. package/dist/src/plugin/project.js +1 -5
  17. package/dist/src/plugin/project.js.map +1 -1
  18. package/dist/src/plugin/request-helpers.d.ts +1 -0
  19. package/dist/src/plugin/request-helpers.d.ts.map +1 -1
  20. package/dist/src/plugin/request-helpers.js +44 -18
  21. package/dist/src/plugin/request-helpers.js.map +1 -1
  22. package/dist/src/plugin/request.d.ts +2 -0
  23. package/dist/src/plugin/request.d.ts.map +1 -1
  24. package/dist/src/plugin/request.js +150 -14
  25. package/dist/src/plugin/request.js.map +1 -1
  26. package/dist/src/plugin/storage.d.ts +24 -0
  27. package/dist/src/plugin/storage.d.ts.map +1 -0
  28. package/dist/src/plugin/storage.js +47 -0
  29. package/dist/src/plugin/storage.js.map +1 -0
  30. package/dist/src/plugin/token.d.ts +13 -0
  31. package/dist/src/plugin/token.d.ts.map +1 -1
  32. package/dist/src/plugin/token.js +29 -30
  33. package/dist/src/plugin/token.js.map +1 -1
  34. package/dist/src/plugin/token.test.js +19 -11
  35. package/dist/src/plugin/token.test.js.map +1 -1
  36. package/dist/src/plugin/types.d.ts +30 -6
  37. package/dist/src/plugin/types.d.ts.map +1 -1
  38. package/dist/src/plugin.d.ts.map +1 -1
  39. package/dist/src/plugin.js +449 -124
  40. package/dist/src/plugin.js.map +1 -1
  41. package/package.json +1 -1
package/README.md CHANGED
@@ -6,10 +6,12 @@ Enable Opencode to authenticate against **Antigravity** (Google's IDE) via OAuth
6
6
 
7
7
  ## What you get
8
8
 
9
- - **Google OAuth sign-in** with automatic token refresh
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
+ - **Automatic endpoint fallback** between Antigravity API endpoints (daily → autopush → prod)
10
12
  - **Antigravity API compatibility** for OpenAI-style requests
11
13
  - **Debug logging** for requests and responses
12
- - **Drop-in setup**—Opencode auto-installs the plugin from config
14
+ - **Drop-in setup** Opencode auto-installs the plugin from config
13
15
 
14
16
  ## Quick start
15
17
 
@@ -17,15 +19,17 @@ Enable Opencode to authenticate against **Antigravity** (Google's IDE) via OAuth
17
19
 
18
20
  ```json
19
21
  {
20
- "plugin": ["opencode-antigravity-auth@1.0.6"]
22
+ "plugin": ["opencode-antigravity-auth@1.1.0"]
21
23
  }
22
24
  ```
23
25
 
24
26
  2) **Authenticate**
25
27
 
26
- - Run `opencode auth login`.
28
+ - For multi-account + per-account project IDs (recommended): run `opencode auth login`.
29
+ - For a quick single-account connect: open `opencode` and run `/connect`.
27
30
  - Choose Google → **OAuth with Google (Antigravity)**.
28
- - Sign in via the browser and return to Opencode. If the browser doesn’t open, use the printed link.
31
+ - Sign in via the browser and return to Opencode. If the browser doesn’t open, use the displayed link.
32
+ - `opencode auth login` will ask for a project ID for each account, and after each sign-in you can add another account (up to 10).
29
33
 
30
34
  3) **Declare the models you want**
31
35
 
@@ -90,6 +94,14 @@ Add Antigravity models under the `provider.google.models` section of your config
90
94
  opencode run "Hello world" --model=google/gemini-3-pro-high
91
95
  ```
92
96
 
97
+ ## Multi-account load balancing
98
+
99
+ - Account pool is stored in `~/.config/opencode/antigravity-accounts.json` (or `%APPDATA%/opencode/antigravity-accounts.json` on Windows).
100
+ - This file contains OAuth refresh tokens; treat it like a password and don’t share/commit it.
101
+ - TUI `/connect` only supports single-account sign-in (no per-account project ID prompts). Use `opencode auth login` to add multiple accounts or set per-account project IDs.
102
+ - Each request picks the next account round-robin; on HTTP `429` the account is cooled down and the request retries with the next account.
103
+ - If Google revokes a refresh token (`invalid_grant`), that account is removed from the pool; rerun `opencode auth login` to add it back.
104
+
93
105
  ## Debugging
94
106
 
95
107
  Enable verbose logging:
@@ -139,5 +151,15 @@ Use at your own risk. Proceed only if you understand and accept these risks.
139
151
 
140
152
  ## Credits
141
153
 
142
- - Inspired by and different from [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) by [jenslys](https://github.com/jenslys). Thanks for the groundwork! 🚀
143
- - Thanks to [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) for the inspiration.
154
+ Built with help and inspiration from:
155
+
156
+ - [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) — Gemini OAuth groundwork by [@jenslys](https://github.com/jenslys)
157
+ - [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) — Helpful reference for Antigravity API
158
+
159
+ ## Support
160
+
161
+ If this plugin helps you, consider supporting its continued maintenance:
162
+
163
+ [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/S6S81QBOIR)
164
+
165
+
@@ -0,0 +1,37 @@
1
+ import { type AccountStorage } from "./storage";
2
+ import type { OAuthAuthDetails, RefreshParts } from "./types";
3
+ export interface ManagedAccount {
4
+ index: number;
5
+ email?: string;
6
+ addedAt: number;
7
+ lastUsed: number;
8
+ parts: RefreshParts;
9
+ access?: string;
10
+ expires?: number;
11
+ isRateLimited: boolean;
12
+ rateLimitResetTime: number;
13
+ }
14
+ /**
15
+ * In-memory multi-account manager for round-robin routing.
16
+ *
17
+ * Source of truth for the pool is `antigravity-accounts.json`.
18
+ */
19
+ export declare class AccountManager {
20
+ private accounts;
21
+ private cursor;
22
+ static loadFromDisk(authFallback?: OAuthAuthDetails): Promise<AccountManager>;
23
+ constructor(authFallback?: OAuthAuthDetails, stored?: AccountStorage | null);
24
+ getAccountCount(): number;
25
+ getAccountsSnapshot(): ManagedAccount[];
26
+ /**
27
+ * Picks the next available account (round-robin), skipping accounts in cooldown.
28
+ */
29
+ pickNext(): ManagedAccount | null;
30
+ markRateLimited(account: ManagedAccount, retryAfterMs: number): void;
31
+ removeAccount(account: ManagedAccount): boolean;
32
+ updateFromAuth(account: ManagedAccount, auth: OAuthAuthDetails): void;
33
+ toAuthDetails(account: ManagedAccount): OAuthAuthDetails;
34
+ getMinWaitTimeMs(): number;
35
+ saveToDisk(): Promise<void>;
36
+ }
37
+ //# sourceMappingURL=accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/plugin/accounts.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9D,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,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAaD;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,MAAM,CAAK;WAEN,YAAY,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;gBAKvE,YAAY,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI;IAuE3E,eAAe,IAAI,MAAM;IAIzB,mBAAmB,IAAI,cAAc,EAAE;IAIvC;;OAEG;IACH,QAAQ,IAAI,cAAc,GAAG,IAAI;IAiCjC,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAMpE,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAwB/C,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAOrE,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,gBAAgB;IASxD,gBAAgB,IAAI,MAAM;IAgBpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBlC"}
@@ -0,0 +1,190 @@
1
+ import { formatRefreshParts, parseRefreshParts } from "./auth";
2
+ import { loadAccounts, saveAccounts } from "./storage";
3
+ function nowMs() {
4
+ return Date.now();
5
+ }
6
+ function clampNonNegativeInt(value, fallback) {
7
+ if (typeof value !== "number" || !Number.isFinite(value)) {
8
+ return fallback;
9
+ }
10
+ return value < 0 ? 0 : Math.floor(value);
11
+ }
12
+ /**
13
+ * In-memory multi-account manager for round-robin routing.
14
+ *
15
+ * Source of truth for the pool is `antigravity-accounts.json`.
16
+ */
17
+ export class AccountManager {
18
+ accounts = [];
19
+ cursor = 0;
20
+ static async loadFromDisk(authFallback) {
21
+ const stored = await loadAccounts();
22
+ return new AccountManager(authFallback, stored);
23
+ }
24
+ constructor(authFallback, stored) {
25
+ const authParts = authFallback ? parseRefreshParts(authFallback.refresh) : null;
26
+ if (stored && stored.accounts.length === 0) {
27
+ this.accounts = [];
28
+ this.cursor = 0;
29
+ return;
30
+ }
31
+ if (stored && stored.accounts.length > 0) {
32
+ const baseNow = nowMs();
33
+ this.accounts = stored.accounts
34
+ .map((acc, index) => {
35
+ if (!acc.refreshToken || typeof acc.refreshToken !== "string") {
36
+ return null;
37
+ }
38
+ const matchesFallback = !!(authFallback &&
39
+ authParts &&
40
+ authParts.refreshToken &&
41
+ acc.refreshToken === authParts.refreshToken);
42
+ return {
43
+ index,
44
+ email: acc.email,
45
+ addedAt: clampNonNegativeInt(acc.addedAt, baseNow),
46
+ lastUsed: clampNonNegativeInt(acc.lastUsed, 0),
47
+ parts: {
48
+ refreshToken: acc.refreshToken,
49
+ projectId: acc.projectId,
50
+ managedProjectId: acc.managedProjectId,
51
+ },
52
+ access: matchesFallback ? authFallback?.access : undefined,
53
+ expires: matchesFallback ? authFallback?.expires : undefined,
54
+ isRateLimited: !!acc.isRateLimited,
55
+ rateLimitResetTime: clampNonNegativeInt(acc.rateLimitResetTime, 0),
56
+ };
57
+ })
58
+ .filter((a) => a !== null);
59
+ this.cursor = clampNonNegativeInt(stored.activeIndex, 0);
60
+ if (this.accounts.length > 0) {
61
+ this.cursor = this.cursor % this.accounts.length;
62
+ }
63
+ return;
64
+ }
65
+ if (authFallback) {
66
+ const parts = parseRefreshParts(authFallback.refresh);
67
+ if (parts.refreshToken) {
68
+ const now = nowMs();
69
+ this.accounts = [
70
+ {
71
+ index: 0,
72
+ email: undefined,
73
+ addedAt: now,
74
+ lastUsed: 0,
75
+ parts,
76
+ access: authFallback.access,
77
+ expires: authFallback.expires,
78
+ isRateLimited: false,
79
+ rateLimitResetTime: 0,
80
+ },
81
+ ];
82
+ this.cursor = 0;
83
+ }
84
+ }
85
+ }
86
+ getAccountCount() {
87
+ return this.accounts.length;
88
+ }
89
+ getAccountsSnapshot() {
90
+ return this.accounts.map((a) => ({ ...a, parts: { ...a.parts } }));
91
+ }
92
+ /**
93
+ * Picks the next available account (round-robin), skipping accounts in cooldown.
94
+ */
95
+ pickNext() {
96
+ const total = this.accounts.length;
97
+ if (total === 0) {
98
+ return null;
99
+ }
100
+ const now = nowMs();
101
+ // Clear expired cooldowns.
102
+ for (const acc of this.accounts) {
103
+ if (acc.isRateLimited && acc.rateLimitResetTime > 0 && now > acc.rateLimitResetTime) {
104
+ acc.isRateLimited = false;
105
+ acc.rateLimitResetTime = 0;
106
+ }
107
+ }
108
+ for (let i = 0; i < total; i++) {
109
+ const idx = (this.cursor + i) % total;
110
+ const candidate = this.accounts[idx];
111
+ if (!candidate) {
112
+ continue;
113
+ }
114
+ if (candidate.isRateLimited) {
115
+ continue;
116
+ }
117
+ this.cursor = (idx + 1) % total;
118
+ candidate.lastUsed = now;
119
+ return candidate;
120
+ }
121
+ return null;
122
+ }
123
+ markRateLimited(account, retryAfterMs) {
124
+ const duration = clampNonNegativeInt(retryAfterMs, 0);
125
+ account.isRateLimited = true;
126
+ account.rateLimitResetTime = nowMs() + duration;
127
+ }
128
+ removeAccount(account) {
129
+ const idx = this.accounts.indexOf(account);
130
+ if (idx < 0) {
131
+ return false;
132
+ }
133
+ this.accounts.splice(idx, 1);
134
+ this.accounts.forEach((acc, index) => {
135
+ acc.index = index;
136
+ });
137
+ if (this.accounts.length === 0) {
138
+ this.cursor = 0;
139
+ return true;
140
+ }
141
+ if (this.cursor > idx) {
142
+ this.cursor -= 1;
143
+ }
144
+ this.cursor = this.cursor % this.accounts.length;
145
+ return true;
146
+ }
147
+ updateFromAuth(account, auth) {
148
+ const parts = parseRefreshParts(auth.refresh);
149
+ account.parts = parts;
150
+ account.access = auth.access;
151
+ account.expires = auth.expires;
152
+ }
153
+ toAuthDetails(account) {
154
+ return {
155
+ type: "oauth",
156
+ refresh: formatRefreshParts(account.parts),
157
+ access: account.access,
158
+ expires: account.expires,
159
+ };
160
+ }
161
+ getMinWaitTimeMs() {
162
+ const now = nowMs();
163
+ const available = this.accounts.some((a) => !a.isRateLimited || (a.rateLimitResetTime > 0 && now > a.rateLimitResetTime));
164
+ if (available) {
165
+ return 0;
166
+ }
167
+ const waits = this.accounts
168
+ .filter((a) => a.isRateLimited && a.rateLimitResetTime > 0)
169
+ .map((a) => Math.max(0, a.rateLimitResetTime - now));
170
+ return waits.length > 0 ? Math.min(...waits) : 0;
171
+ }
172
+ async saveToDisk() {
173
+ const storage = {
174
+ version: 1,
175
+ accounts: this.accounts.map((a) => ({
176
+ email: a.email,
177
+ refreshToken: a.parts.refreshToken,
178
+ projectId: a.parts.projectId,
179
+ managedProjectId: a.parts.managedProjectId,
180
+ addedAt: a.addedAt,
181
+ lastUsed: a.lastUsed,
182
+ isRateLimited: a.isRateLimited,
183
+ rateLimitResetTime: a.rateLimitResetTime,
184
+ })),
185
+ activeIndex: this.cursor,
186
+ };
187
+ await saveAccounts(storage);
188
+ }
189
+ }
190
+ //# sourceMappingURL=accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/plugin/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAuB,MAAM,WAAW,CAAC;AAe5E,SAAS,KAAK;IACZ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,QAAgB;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,cAAc;IACjB,QAAQ,GAAqB,EAAE,CAAC;IAChC,MAAM,GAAG,CAAC,CAAC;IAEnB,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,YAA+B;QACvD,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;QACpC,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,YAAY,YAA+B,EAAE,MAA8B;QACzE,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhF,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;iBAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAyB,EAAE;gBACzC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;oBAC9D,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,eAAe,GAAG,CAAC,CAAC,CACxB,YAAY;oBACZ,SAAS;oBACT,SAAS,CAAC,YAAY;oBACtB,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY,CAC5C,CAAC;gBAEF,OAAO;oBACL,KAAK;oBACL,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;oBAClD,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC9C,KAAK,EAAE;wBACL,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;qBACvC;oBACD,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS;oBAC1D,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;oBAC5D,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa;oBAClC,kBAAkB,EAAE,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;iBACnE,CAAC;YACJ,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAElD,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnD,CAAC;YAED,OAAO;QACT,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,GAAG;oBACd;wBACE,KAAK,EAAE,CAAC;wBACR,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,GAAG;wBACZ,QAAQ,EAAE,CAAC;wBACX,KAAK;wBACL,MAAM,EAAE,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;wBAC7B,aAAa,EAAE,KAAK;wBACpB,kBAAkB,EAAE,CAAC;qBACtB;iBACF,CAAC;gBACF,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;QAEpB,2BAA2B;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,kBAAkB,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC;gBACpF,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC1B,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YACD,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAChC,SAAS,CAAC,QAAQ,GAAG,GAAG,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,OAAuB,EAAE,YAAoB;QAC3D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;QAC7B,OAAO,CAAC,kBAAkB,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,OAAuB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACnC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,OAAuB,EAAE,IAAsB;QAC5D,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,aAAa,CAAC,OAAuB;QACnC,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,kBAAkB,CAAC,CACpF,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC;aAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,CAAC;QAEvD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAmB;YAC9B,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY;gBAClC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS;gBAC5B,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB;gBAC1C,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;aACzC,CAAC,CAAC;YACH,WAAW,EAAE,IAAI,CAAC,MAAM;SACzB,CAAC;QAEF,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=accounts.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.test.d.ts","sourceRoot":"","sources":["../../../src/plugin/accounts.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,139 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ import { AccountManager } from "./accounts";
3
+ describe("AccountManager", () => {
4
+ beforeEach(() => {
5
+ vi.useRealTimers();
6
+ });
7
+ it("treats on-disk storage as source of truth, even when empty", () => {
8
+ const fallback = {
9
+ type: "oauth",
10
+ refresh: "r1|p1",
11
+ access: "access",
12
+ expires: 123,
13
+ };
14
+ const stored = {
15
+ version: 1,
16
+ accounts: [],
17
+ activeIndex: 0,
18
+ };
19
+ const manager = new AccountManager(fallback, stored);
20
+ expect(manager.getAccountCount()).toBe(0);
21
+ });
22
+ it("rotates accounts round-robin", () => {
23
+ const stored = {
24
+ version: 1,
25
+ accounts: [
26
+ { refreshToken: "r1", projectId: "p1", addedAt: 1, lastUsed: 0 },
27
+ { refreshToken: "r2", projectId: "p2", addedAt: 1, lastUsed: 0 },
28
+ ],
29
+ activeIndex: 0,
30
+ };
31
+ const manager = new AccountManager(undefined, stored);
32
+ expect(manager.pickNext()?.parts.refreshToken).toBe("r1");
33
+ expect(manager.pickNext()?.parts.refreshToken).toBe("r2");
34
+ expect(manager.pickNext()?.parts.refreshToken).toBe("r1");
35
+ });
36
+ it("attaches fallback access tokens only to the matching stored account", () => {
37
+ const fallback = {
38
+ type: "oauth",
39
+ refresh: "r2|p2",
40
+ access: "access-2",
41
+ expires: 123,
42
+ };
43
+ const stored = {
44
+ version: 1,
45
+ accounts: [
46
+ { refreshToken: "r1", projectId: "p1", addedAt: 1, lastUsed: 0 },
47
+ { refreshToken: "r2", projectId: "p2", addedAt: 1, lastUsed: 0 },
48
+ ],
49
+ activeIndex: 0,
50
+ };
51
+ const manager = new AccountManager(fallback, stored);
52
+ const snapshot = manager.getAccountsSnapshot();
53
+ expect(snapshot[0]?.access).toBeUndefined();
54
+ expect(snapshot[0]?.expires).toBeUndefined();
55
+ expect(snapshot[1]?.access).toBe("access-2");
56
+ expect(snapshot[1]?.expires).toBe(123);
57
+ });
58
+ it("does not attach fallback access tokens to an unrelated account", () => {
59
+ const fallback = {
60
+ type: "oauth",
61
+ refresh: "r3|p3",
62
+ access: "access-3",
63
+ expires: 456,
64
+ };
65
+ const stored = {
66
+ version: 1,
67
+ accounts: [
68
+ { refreshToken: "r1", projectId: "p1", addedAt: 1, lastUsed: 0 },
69
+ { refreshToken: "r2", projectId: "p2", addedAt: 1, lastUsed: 0 },
70
+ ],
71
+ activeIndex: 0,
72
+ };
73
+ const manager = new AccountManager(fallback, stored);
74
+ const snapshot = manager.getAccountsSnapshot();
75
+ expect(snapshot.some((account) => !!account.access)).toBe(false);
76
+ expect(snapshot.some((account) => typeof account.expires === "number")).toBe(false);
77
+ });
78
+ it("skips rate-limited accounts", () => {
79
+ vi.useFakeTimers();
80
+ vi.setSystemTime(new Date(0));
81
+ const stored = {
82
+ version: 1,
83
+ accounts: [
84
+ { refreshToken: "r1", projectId: "p1", addedAt: 1, lastUsed: 0 },
85
+ { refreshToken: "r2", projectId: "p2", addedAt: 1, lastUsed: 0 },
86
+ ],
87
+ activeIndex: 0,
88
+ };
89
+ const manager = new AccountManager(undefined, stored);
90
+ const first = manager.pickNext();
91
+ expect(first?.parts.refreshToken).toBe("r1");
92
+ manager.markRateLimited(first, 60_000);
93
+ const next = manager.pickNext();
94
+ expect(next?.parts.refreshToken).toBe("r2");
95
+ });
96
+ it("returns minimum wait time and re-enables after cooldown", () => {
97
+ vi.useFakeTimers();
98
+ vi.setSystemTime(new Date(0));
99
+ const stored = {
100
+ version: 1,
101
+ accounts: [
102
+ { refreshToken: "r1", projectId: "p1", addedAt: 1, lastUsed: 0 },
103
+ { refreshToken: "r2", projectId: "p2", addedAt: 1, lastUsed: 0 },
104
+ ],
105
+ activeIndex: 0,
106
+ };
107
+ const manager = new AccountManager(undefined, stored);
108
+ const acc1 = manager.pickNext();
109
+ const acc2 = manager.pickNext();
110
+ manager.markRateLimited(acc1, 10_000);
111
+ manager.markRateLimited(acc2, 5_000);
112
+ expect(manager.pickNext()).toBeNull();
113
+ expect(manager.getMinWaitTimeMs()).toBe(5_000);
114
+ vi.setSystemTime(new Date(6_000));
115
+ const available = manager.pickNext();
116
+ expect(available?.parts.refreshToken).toBe("r2");
117
+ });
118
+ it("removes an account and keeps cursor consistent", () => {
119
+ vi.useFakeTimers();
120
+ vi.setSystemTime(new Date(0));
121
+ const stored = {
122
+ version: 1,
123
+ accounts: [
124
+ { refreshToken: "r1", projectId: "p1", addedAt: 1, lastUsed: 0 },
125
+ { refreshToken: "r2", projectId: "p2", addedAt: 1, lastUsed: 0 },
126
+ { refreshToken: "r3", projectId: "p3", addedAt: 1, lastUsed: 0 },
127
+ ],
128
+ activeIndex: 1,
129
+ };
130
+ const manager = new AccountManager(undefined, stored);
131
+ const picked = manager.pickNext();
132
+ expect(picked?.parts.refreshToken).toBe("r2");
133
+ manager.removeAccount(picked);
134
+ expect(manager.getAccountCount()).toBe(2);
135
+ const next = manager.pickNext();
136
+ expect(next?.parts.refreshToken).toBe("r3");
137
+ });
138
+ });
139
+ //# sourceMappingURL=accounts.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.test.js","sourceRoot":"","sources":["../../../src/plugin/accounts.test.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,8 @@
2
2
  * Prompts the user for a project ID via stdin/stdout.
3
3
  */
4
4
  export declare function promptProjectId(): Promise<string>;
5
+ /**
6
+ * Prompts user whether they want to add another OAuth account.
7
+ */
8
+ export declare function promptAddAnotherAccount(currentCount: number): Promise<boolean>;
5
9
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/plugin/cli.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAQvD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/plugin/cli.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAQvD;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASpF"}
@@ -13,4 +13,18 @@ export async function promptProjectId() {
13
13
  rl.close();
14
14
  }
15
15
  }
16
+ /**
17
+ * Prompts user whether they want to add another OAuth account.
18
+ */
19
+ export async function promptAddAnotherAccount(currentCount) {
20
+ const rl = createInterface({ input, output });
21
+ try {
22
+ const answer = await rl.question(`Add another account? (${currentCount} added) (y/n): `);
23
+ const normalized = answer.trim().toLowerCase();
24
+ return normalized === "y" || normalized === "yes";
25
+ }
26
+ finally {
27
+ rl.close();
28
+ }
29
+ }
16
30
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/plugin/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAEhE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC,CAAC;QAC3F,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/plugin/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAEhE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC,CAAC;QAC3F,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,YAAoB;IAChE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,YAAY,iBAAiB,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC;IACpD,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { OAuthAuthDetails, PluginClient, ProjectContextResult } from "./types";
1
+ import type { OAuthAuthDetails, ProjectContextResult } from "./types";
2
2
  interface AntigravityUserTier {
3
3
  id?: string;
4
4
  isDefault?: boolean;
@@ -28,6 +28,6 @@ export declare function onboardManagedProject(accessToken: string, tierId: strin
28
28
  /**
29
29
  * Resolves an effective project ID for the current auth state, caching results per refresh token.
30
30
  */
31
- export declare function ensureProjectContext(auth: OAuthAuthDetails, client: PluginClient, providerId: string): Promise<ProjectContextResult>;
31
+ export declare function ensureProjectContext(auth: OAuthAuthDetails): Promise<ProjectContextResult>;
32
32
  export {};
33
33
  //# sourceMappingURL=project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/plugin/project.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAWjB,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED,UAAU,qBAAqB;IAC7B,uBAAuB,CAAC,EAAE,MAAM,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,WAAW,CAAC,EAAE;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACtC;AAqFD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAQpE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAuCvC;AAGD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,SAAK,EACb,OAAO,SAAO,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuD7B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC,CAgF/B"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/plugin/project.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAWtE,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED,UAAU,qBAAqB;IAC7B,uBAAuB,CAAC,EAAE,MAAM,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,WAAW,CAAC,EAAE;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACtC;AAqFD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAQpE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAuCvC;AAGD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,SAAK,EACb,OAAO,SAAO,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuD7B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2EhG"}
@@ -169,7 +169,7 @@ export async function onboardManagedProject(accessToken, tierId, projectId, atte
169
169
  /**
170
170
  * Resolves an effective project ID for the current auth state, caching results per refresh token.
171
171
  */
172
- export async function ensureProjectContext(auth, client, providerId) {
172
+ export async function ensureProjectContext(auth) {
173
173
  const accessToken = auth.access;
174
174
  if (!accessToken) {
175
175
  return { auth, effectiveProjectId: "" };
@@ -200,10 +200,6 @@ export async function ensureProjectContext(auth, client, providerId) {
200
200
  managedProjectId,
201
201
  }),
202
202
  };
203
- await client.auth.set({
204
- path: { id: providerId },
205
- body: updatedAuth,
206
- });
207
203
  return { auth: updatedAuth, effectiveProjectId: managedProjectId };
208
204
  };
209
205
  // Try to resolve a managed project from Antigravity if possible.
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/plugin/project.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAO/D,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAgC,CAAC;AAC1E,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAyC,CAAC;AAEpF,MAAM,oBAAoB,GAAG;IAC3B,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,sBAAsB;IAChC,UAAU,EAAE,QAAQ;CACZ,CAAC;AAyBX,MAAM,sBAAuB,SAAQ,KAAK;IACxC;;OAEG;IACH;QACE,KAAK,CACH,iLAAiL,CAClL,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,SAAkB;IACvC,MAAM,QAAQ,GAA2B;QACvC,OAAO,EAAE,oBAAoB,CAAC,OAAO;QACrC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ;QACvC,UAAU,EAAE,oBAAoB,CAAC,UAAU;KAC5C,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC;IACnC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,YAAoC;IAC5D,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,IAAI,CAAC,EAAU;IACtB,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO;QAClC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,OAAqC;IACpE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,uBAAuB,KAAK,QAAQ,EAAE,CAAC;QACxD,OAAO,OAAO,CAAC,uBAAuB,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,uBAAuB,IAAI,OAAO,OAAO,CAAC,uBAAuB,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC9F,OAAO,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAAsB;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACrC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAgB;IAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,0BAA0B,CAAC,KAAK,EAAE,CAAC;QACnC,yBAAyB,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IACD,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,SAAkB;IAElB,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,WAAW,GAA4B,EAAE,QAAQ,EAAE,CAAC;IAE1D,MAAM,WAAW,GAA2B;QAC1C,cAAc,EAAE,kBAAkB;QAClC,aAAa,EAAE,UAAU,WAAW,EAAE;QACtC,YAAY,EAAE,iCAAiC;QAC/C,mBAAmB,EAAE,8CAA8C;QACnE,iBAAiB,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;KAC1D,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAC9B,IAAI,GAAG,CAAS,CAAC,GAAG,0BAA0B,EAAE,GAAG,8BAA8B,CAAC,CAAC,CACpF,CAAC;IAEF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,YAAY,4BAA4B,EAC3C;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;aAClC,CACF,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0B,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kDAAkD,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;YACxF,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAGD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,MAAc,EACd,SAAkB,EAClB,QAAQ,GAAG,EAAE,EACb,OAAO,GAAG,IAAI;IAEd,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,WAAW,GAA4B;QAC3C,MAAM;QACN,QAAQ;KACT,CAAC;IAEF,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,sBAAsB,EAAE,CAAC;QACrC,CAAC;QACD,WAAW,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAClD,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,8BAA8B,EAAE,CAAC;QAC1D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,YAAY,yBAAyB,EACxC;oBACE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,aAAa,EAAE,UAAU,WAAW,EAAE;wBACtC,GAAG,mBAAmB;qBACvB;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;iBAClC,CACF,CAAC;gBAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM;gBACR,CAAC;gBAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;gBAC9D,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,EAAE,uBAAuB,EAAE,EAAE,CAAC;gBACvE,IAAI,OAAO,CAAC,IAAI,IAAI,gBAAgB,EAAE,CAAC;oBACrC,OAAO,gBAAgB,CAAC;gBAC1B,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC9B,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CACX,qDAAqD,YAAY,GAAG,EACpE,KAAK,CACN,CAAC;gBACF,MAAM;YACR,CAAC;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAsB,EACtB,MAAoB,EACpB,UAAkB;IAElB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;IAChC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,IAAmC,EAAE;QAC/D,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC9D,CAAC;QAED,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;QACzD,MAAM,qBAAqB,GAAG,KAAK,EAAE,gBAAwB,EAAiC,EAAE;YAC9F,MAAM,WAAW,GAAqB;gBACpC,GAAG,IAAI;gBACP,OAAO,EAAE,kBAAkB,CAAC;oBAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,gBAAgB;iBACjB,CAAC;aACH,CAAC;YAEF,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpB,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;gBACxB,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;YAEH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;QACrE,CAAC,CAAC;QAEF,iEAAiE;QACjE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,IAAI,iBAAiB,CAAC,CAAC;QAChG,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAEtE,IAAI,wBAAwB,EAAE,CAAC;YAC7B,OAAO,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACvD,CAAC;QAED,6EAA6E;QAC7E,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACzD,CAAC,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,EAAE;SAC7B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QACrD,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,yBAAyB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IAEL,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/plugin/project.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,7 @@ export declare function filterUnsignedThinkingBlocks(contents: any[]): any[];
56
56
  /**
57
57
  * Transforms thinking/reasoning content in response parts to OpenCode's expected format.
58
58
  * Handles both Gemini-style (thought: true) and Anthropic-style (type: "thinking") formats.
59
+ * Also extracts reasoning_content for Anthropic-style responses.
59
60
  */
60
61
  export declare function transformThinkingParts(response: unknown): unknown;
61
62
  /**
@@ -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,aAAa,EAAE,OAAO,EACtB,mBAAmB,EAAE,OAAO,GAC3B,cAAc,GAAG,SAAS,CAU5B;AAsBD;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAkBnE;AA+CD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAiBjE;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":"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,aAAa,EAAE,OAAO,EACtB,mBAAmB,EAAE,OAAO,GAC3B,cAAc,GAAG,SAAS,CAU5B;AAsBD;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAkBnE;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"}