opencode-antigravity-auth-remix 1.0.7

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 (187) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +723 -0
  3. package/dist/index.d.ts +4 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +3 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/src/antigravity/oauth.d.ts +31 -0
  8. package/dist/src/antigravity/oauth.d.ts.map +1 -0
  9. package/dist/src/antigravity/oauth.js +168 -0
  10. package/dist/src/antigravity/oauth.js.map +1 -0
  11. package/dist/src/constants.d.ts +107 -0
  12. package/dist/src/constants.d.ts.map +1 -0
  13. package/dist/src/constants.js +138 -0
  14. package/dist/src/constants.js.map +1 -0
  15. package/dist/src/hooks/auto-update-checker/cache.d.ts +3 -0
  16. package/dist/src/hooks/auto-update-checker/cache.d.ts.map +1 -0
  17. package/dist/src/hooks/auto-update-checker/cache.js +71 -0
  18. package/dist/src/hooks/auto-update-checker/cache.js.map +1 -0
  19. package/dist/src/hooks/auto-update-checker/checker.d.ts +16 -0
  20. package/dist/src/hooks/auto-update-checker/checker.d.ts.map +1 -0
  21. package/dist/src/hooks/auto-update-checker/checker.js +237 -0
  22. package/dist/src/hooks/auto-update-checker/checker.js.map +1 -0
  23. package/dist/src/hooks/auto-update-checker/constants.d.ts +9 -0
  24. package/dist/src/hooks/auto-update-checker/constants.d.ts.map +1 -0
  25. package/dist/src/hooks/auto-update-checker/constants.js +23 -0
  26. package/dist/src/hooks/auto-update-checker/constants.js.map +1 -0
  27. package/dist/src/hooks/auto-update-checker/index.d.ts +34 -0
  28. package/dist/src/hooks/auto-update-checker/index.d.ts.map +1 -0
  29. package/dist/src/hooks/auto-update-checker/index.js +125 -0
  30. package/dist/src/hooks/auto-update-checker/index.js.map +1 -0
  31. package/dist/src/hooks/auto-update-checker/types.d.ts +25 -0
  32. package/dist/src/hooks/auto-update-checker/types.d.ts.map +1 -0
  33. package/dist/src/hooks/auto-update-checker/types.js +1 -0
  34. package/dist/src/hooks/auto-update-checker/types.js.map +1 -0
  35. package/dist/src/plugin/accounts.d.ts +58 -0
  36. package/dist/src/plugin/accounts.d.ts.map +1 -0
  37. package/dist/src/plugin/accounts.js +350 -0
  38. package/dist/src/plugin/accounts.js.map +1 -0
  39. package/dist/src/plugin/auth.d.ts +21 -0
  40. package/dist/src/plugin/auth.d.ts.map +1 -0
  41. package/dist/src/plugin/auth.js +46 -0
  42. package/dist/src/plugin/auth.js.map +1 -0
  43. package/dist/src/plugin/cache/index.d.ts +5 -0
  44. package/dist/src/plugin/cache/index.d.ts.map +1 -0
  45. package/dist/src/plugin/cache/index.js +5 -0
  46. package/dist/src/plugin/cache/index.js.map +1 -0
  47. package/dist/src/plugin/cache/signature-cache.d.ts +111 -0
  48. package/dist/src/plugin/cache/signature-cache.d.ts.map +1 -0
  49. package/dist/src/plugin/cache/signature-cache.js +373 -0
  50. package/dist/src/plugin/cache/signature-cache.js.map +1 -0
  51. package/dist/src/plugin/cache.d.ts +44 -0
  52. package/dist/src/plugin/cache.d.ts.map +1 -0
  53. package/dist/src/plugin/cache.js +200 -0
  54. package/dist/src/plugin/cache.js.map +1 -0
  55. package/dist/src/plugin/cli.d.ts +19 -0
  56. package/dist/src/plugin/cli.d.ts.map +1 -0
  57. package/dist/src/plugin/cli.js +59 -0
  58. package/dist/src/plugin/cli.js.map +1 -0
  59. package/dist/src/plugin/config/index.d.ts +16 -0
  60. package/dist/src/plugin/config/index.d.ts.map +1 -0
  61. package/dist/src/plugin/config/index.js +16 -0
  62. package/dist/src/plugin/config/index.js.map +1 -0
  63. package/dist/src/plugin/config/loader.d.ts +35 -0
  64. package/dist/src/plugin/config/loader.d.ts.map +1 -0
  65. package/dist/src/plugin/config/loader.js +178 -0
  66. package/dist/src/plugin/config/loader.js.map +1 -0
  67. package/dist/src/plugin/config/schema.d.ts +257 -0
  68. package/dist/src/plugin/config/schema.d.ts.map +1 -0
  69. package/dist/src/plugin/config/schema.js +229 -0
  70. package/dist/src/plugin/config/schema.js.map +1 -0
  71. package/dist/src/plugin/core/streaming/index.d.ts +3 -0
  72. package/dist/src/plugin/core/streaming/index.d.ts.map +1 -0
  73. package/dist/src/plugin/core/streaming/index.js +3 -0
  74. package/dist/src/plugin/core/streaming/index.js.map +1 -0
  75. package/dist/src/plugin/core/streaming/transformer.d.ts +9 -0
  76. package/dist/src/plugin/core/streaming/transformer.d.ts.map +1 -0
  77. package/dist/src/plugin/core/streaming/transformer.js +134 -0
  78. package/dist/src/plugin/core/streaming/transformer.js.map +1 -0
  79. package/dist/src/plugin/core/streaming/types.d.ts +26 -0
  80. package/dist/src/plugin/core/streaming/types.d.ts.map +1 -0
  81. package/dist/src/plugin/core/streaming/types.js +1 -0
  82. package/dist/src/plugin/core/streaming/types.js.map +1 -0
  83. package/dist/src/plugin/debug.d.ts +68 -0
  84. package/dist/src/plugin/debug.d.ts.map +1 -0
  85. package/dist/src/plugin/debug.js +321 -0
  86. package/dist/src/plugin/debug.js.map +1 -0
  87. package/dist/src/plugin/errors.d.ts +28 -0
  88. package/dist/src/plugin/errors.d.ts.map +1 -0
  89. package/dist/src/plugin/errors.js +42 -0
  90. package/dist/src/plugin/errors.js.map +1 -0
  91. package/dist/src/plugin/logger.d.ts +54 -0
  92. package/dist/src/plugin/logger.d.ts.map +1 -0
  93. package/dist/src/plugin/logger.js +120 -0
  94. package/dist/src/plugin/logger.js.map +1 -0
  95. package/dist/src/plugin/project.d.ts +33 -0
  96. package/dist/src/plugin/project.d.ts.map +1 -0
  97. package/dist/src/plugin/project.js +239 -0
  98. package/dist/src/plugin/project.js.map +1 -0
  99. package/dist/src/plugin/recovery/constants.d.ts +22 -0
  100. package/dist/src/plugin/recovery/constants.d.ts.map +1 -0
  101. package/dist/src/plugin/recovery/constants.js +43 -0
  102. package/dist/src/plugin/recovery/constants.js.map +1 -0
  103. package/dist/src/plugin/recovery/index.d.ts +12 -0
  104. package/dist/src/plugin/recovery/index.d.ts.map +1 -0
  105. package/dist/src/plugin/recovery/index.js +12 -0
  106. package/dist/src/plugin/recovery/index.js.map +1 -0
  107. package/dist/src/plugin/recovery/storage.d.ts +24 -0
  108. package/dist/src/plugin/recovery/storage.d.ts.map +1 -0
  109. package/dist/src/plugin/recovery/storage.js +354 -0
  110. package/dist/src/plugin/recovery/storage.js.map +1 -0
  111. package/dist/src/plugin/recovery/types.d.ts +116 -0
  112. package/dist/src/plugin/recovery/types.d.ts.map +1 -0
  113. package/dist/src/plugin/recovery/types.js +6 -0
  114. package/dist/src/plugin/recovery/types.js.map +1 -0
  115. package/dist/src/plugin/recovery.d.ts +61 -0
  116. package/dist/src/plugin/recovery.d.ts.map +1 -0
  117. package/dist/src/plugin/recovery.js +376 -0
  118. package/dist/src/plugin/recovery.js.map +1 -0
  119. package/dist/src/plugin/refresh-queue.d.ts +101 -0
  120. package/dist/src/plugin/refresh-queue.d.ts.map +1 -0
  121. package/dist/src/plugin/refresh-queue.js +244 -0
  122. package/dist/src/plugin/refresh-queue.js.map +1 -0
  123. package/dist/src/plugin/request-helpers.d.ts +270 -0
  124. package/dist/src/plugin/request-helpers.d.ts.map +1 -0
  125. package/dist/src/plugin/request-helpers.js +2158 -0
  126. package/dist/src/plugin/request-helpers.js.map +1 -0
  127. package/dist/src/plugin/request.d.ts +87 -0
  128. package/dist/src/plugin/request.d.ts.map +1 -0
  129. package/dist/src/plugin/request.js +1233 -0
  130. package/dist/src/plugin/request.js.map +1 -0
  131. package/dist/src/plugin/search.d.ts +19 -0
  132. package/dist/src/plugin/search.d.ts.map +1 -0
  133. package/dist/src/plugin/search.js +191 -0
  134. package/dist/src/plugin/search.js.map +1 -0
  135. package/dist/src/plugin/server.d.ts +23 -0
  136. package/dist/src/plugin/server.d.ts.map +1 -0
  137. package/dist/src/plugin/server.js +222 -0
  138. package/dist/src/plugin/server.js.map +1 -0
  139. package/dist/src/plugin/storage.d.ts +77 -0
  140. package/dist/src/plugin/storage.d.ts.map +1 -0
  141. package/dist/src/plugin/storage.js +207 -0
  142. package/dist/src/plugin/storage.js.map +1 -0
  143. package/dist/src/plugin/stores/signature-store.d.ts +5 -0
  144. package/dist/src/plugin/stores/signature-store.d.ts.map +1 -0
  145. package/dist/src/plugin/stores/signature-store.js +25 -0
  146. package/dist/src/plugin/stores/signature-store.js.map +1 -0
  147. package/dist/src/plugin/thinking-recovery.d.ts +90 -0
  148. package/dist/src/plugin/thinking-recovery.d.ts.map +1 -0
  149. package/dist/src/plugin/thinking-recovery.js +316 -0
  150. package/dist/src/plugin/thinking-recovery.js.map +1 -0
  151. package/dist/src/plugin/token.d.ts +19 -0
  152. package/dist/src/plugin/token.d.ts.map +1 -0
  153. package/dist/src/plugin/token.js +128 -0
  154. package/dist/src/plugin/token.js.map +1 -0
  155. package/dist/src/plugin/transform/claude.d.ts +80 -0
  156. package/dist/src/plugin/transform/claude.d.ts.map +1 -0
  157. package/dist/src/plugin/transform/claude.js +265 -0
  158. package/dist/src/plugin/transform/claude.js.map +1 -0
  159. package/dist/src/plugin/transform/cross-model-sanitizer.d.ts +35 -0
  160. package/dist/src/plugin/transform/cross-model-sanitizer.d.ts.map +1 -0
  161. package/dist/src/plugin/transform/cross-model-sanitizer.js +225 -0
  162. package/dist/src/plugin/transform/cross-model-sanitizer.js.map +1 -0
  163. package/dist/src/plugin/transform/gemini.d.ts +63 -0
  164. package/dist/src/plugin/transform/gemini.d.ts.map +1 -0
  165. package/dist/src/plugin/transform/gemini.js +142 -0
  166. package/dist/src/plugin/transform/gemini.js.map +1 -0
  167. package/dist/src/plugin/transform/index.d.ts +14 -0
  168. package/dist/src/plugin/transform/index.d.ts.map +1 -0
  169. package/dist/src/plugin/transform/index.js +14 -0
  170. package/dist/src/plugin/transform/index.js.map +1 -0
  171. package/dist/src/plugin/transform/model-resolver.d.ts +78 -0
  172. package/dist/src/plugin/transform/model-resolver.d.ts.map +1 -0
  173. package/dist/src/plugin/transform/model-resolver.js +221 -0
  174. package/dist/src/plugin/transform/model-resolver.js.map +1 -0
  175. package/dist/src/plugin/transform/types.d.ts +93 -0
  176. package/dist/src/plugin/transform/types.d.ts.map +1 -0
  177. package/dist/src/plugin/transform/types.js +1 -0
  178. package/dist/src/plugin/transform/types.js.map +1 -0
  179. package/dist/src/plugin/types.d.ts +97 -0
  180. package/dist/src/plugin/types.d.ts.map +1 -0
  181. package/dist/src/plugin/types.js +1 -0
  182. package/dist/src/plugin/types.js.map +1 -0
  183. package/dist/src/plugin.d.ts +8 -0
  184. package/dist/src/plugin.d.ts.map +1 -0
  185. package/dist/src/plugin.js +1845 -0
  186. package/dist/src/plugin.js.map +1 -0
  187. package/package.json +65 -0
@@ -0,0 +1,321 @@
1
+ import { createWriteStream, mkdirSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { homedir } from "node:os";
4
+ import { env } from "node:process";
5
+ const MAX_BODY_PREVIEW_CHARS = 12000;
6
+ const MAX_BODY_VERBOSE_CHARS = 50000;
7
+ export const DEBUG_MESSAGE_PREFIX = "[opencode-antigravity-auth debug]";
8
+ let debugState = null;
9
+ /**
10
+ * Parse debug level from a flag string.
11
+ * 0 = off, 1 = basic, 2 = verbose (full bodies)
12
+ */
13
+ function parseDebugLevel(flag) {
14
+ const trimmed = flag.trim();
15
+ if (trimmed === "2" || trimmed === "verbose")
16
+ return 2;
17
+ if (trimmed === "1" || trimmed === "true")
18
+ return 1;
19
+ return 0;
20
+ }
21
+ /**
22
+ * Get the OS-specific config directory.
23
+ */
24
+ function getConfigDir() {
25
+ const platform = process.platform;
26
+ if (platform === "win32") {
27
+ return join(env.APPDATA || join(homedir(), "AppData", "Roaming"), "opencode");
28
+ }
29
+ const xdgConfig = env.XDG_CONFIG_HOME || join(homedir(), ".config");
30
+ return join(xdgConfig, "opencode");
31
+ }
32
+ /**
33
+ * Returns the logs directory, creating it if needed.
34
+ */
35
+ function getLogsDir(customLogDir) {
36
+ const logsDir = customLogDir || join(getConfigDir(), "antigravity-logs");
37
+ try {
38
+ mkdirSync(logsDir, { recursive: true });
39
+ }
40
+ catch {
41
+ // Directory may already exist or we don't have permission
42
+ }
43
+ return logsDir;
44
+ }
45
+ /**
46
+ * Builds a timestamped log file path.
47
+ */
48
+ function createLogFilePath(customLogDir) {
49
+ const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
50
+ return join(getLogsDir(customLogDir), `antigravity-debug-${timestamp}.log`);
51
+ }
52
+ /**
53
+ * Creates a log writer function that writes to a file.
54
+ */
55
+ function createLogWriter(filePath) {
56
+ if (!filePath) {
57
+ return () => { };
58
+ }
59
+ try {
60
+ const stream = createWriteStream(filePath, { flags: "a" });
61
+ stream.on("error", () => { });
62
+ return (line) => {
63
+ const timestamp = new Date().toISOString();
64
+ const formatted = `[${timestamp}] ${line}`;
65
+ stream.write(`${formatted}\n`);
66
+ };
67
+ }
68
+ catch {
69
+ return () => { };
70
+ }
71
+ }
72
+ /**
73
+ * Initialize or reinitialize debug state with the given config.
74
+ * Call this once at plugin startup after loading config.
75
+ */
76
+ export function initializeDebug(config) {
77
+ // Config takes precedence, but env var can force enable for debugging
78
+ const envDebugFlag = env.OPENCODE_ANTIGRAVITY_DEBUG ?? "";
79
+ const debugLevel = config.debug ? (envDebugFlag === "2" || envDebugFlag === "verbose" ? 2 : 1) : parseDebugLevel(envDebugFlag);
80
+ const debugEnabled = debugLevel >= 1;
81
+ const verboseEnabled = debugLevel >= 2;
82
+ const logFilePath = debugEnabled ? createLogFilePath(config.log_dir) : undefined;
83
+ const logWriter = createLogWriter(logFilePath);
84
+ debugState = {
85
+ debugLevel,
86
+ debugEnabled,
87
+ verboseEnabled,
88
+ logFilePath,
89
+ logWriter,
90
+ };
91
+ }
92
+ /**
93
+ * Get the current debug state, initializing with defaults if needed.
94
+ * This allows the module to work even before initializeDebug is called.
95
+ */
96
+ function getDebugState() {
97
+ if (!debugState) {
98
+ // Fallback to env-based initialization for backward compatibility
99
+ const envDebugFlag = env.OPENCODE_ANTIGRAVITY_DEBUG ?? "";
100
+ const debugLevel = parseDebugLevel(envDebugFlag);
101
+ const debugEnabled = debugLevel >= 1;
102
+ const verboseEnabled = debugLevel >= 2;
103
+ const logFilePath = debugEnabled ? createLogFilePath() : undefined;
104
+ const logWriter = createLogWriter(logFilePath);
105
+ debugState = {
106
+ debugLevel,
107
+ debugEnabled,
108
+ verboseEnabled,
109
+ logFilePath,
110
+ logWriter,
111
+ };
112
+ }
113
+ return debugState;
114
+ }
115
+ // =============================================================================
116
+ // Public API
117
+ // =============================================================================
118
+ export function isDebugEnabled() {
119
+ return getDebugState().debugEnabled;
120
+ }
121
+ export function isVerboseEnabled() {
122
+ return getDebugState().verboseEnabled;
123
+ }
124
+ export function getLogFilePath() {
125
+ return getDebugState().logFilePath;
126
+ }
127
+ let requestCounter = 0;
128
+ /**
129
+ * Begins a debug trace for an Antigravity request.
130
+ */
131
+ export function startAntigravityDebugRequest(meta) {
132
+ const state = getDebugState();
133
+ if (!state.debugEnabled) {
134
+ return null;
135
+ }
136
+ const id = `ANTIGRAVITY-${++requestCounter}`;
137
+ const method = meta.method ?? "GET";
138
+ logDebug(`[Antigravity Debug ${id}] ${method} ${meta.resolvedUrl}`);
139
+ if (meta.originalUrl && meta.originalUrl !== meta.resolvedUrl) {
140
+ logDebug(`[Antigravity Debug ${id}] Original URL: ${meta.originalUrl}`);
141
+ }
142
+ if (meta.projectId) {
143
+ logDebug(`[Antigravity Debug ${id}] Project: ${meta.projectId}`);
144
+ }
145
+ logDebug(`[Antigravity Debug ${id}] Streaming: ${meta.streaming ? "yes" : "no"}`);
146
+ logDebug(`[Antigravity Debug ${id}] Headers: ${JSON.stringify(maskHeaders(meta.headers))}`);
147
+ const bodyPreview = formatBodyPreview(meta.body);
148
+ if (bodyPreview) {
149
+ logDebug(`[Antigravity Debug ${id}] Body Preview: ${bodyPreview}`);
150
+ }
151
+ return { id, streaming: meta.streaming, startedAt: Date.now() };
152
+ }
153
+ /**
154
+ * Logs response details for a previously started debug trace.
155
+ */
156
+ export function logAntigravityDebugResponse(context, response, meta = {}) {
157
+ const state = getDebugState();
158
+ if (!state.debugEnabled || !context) {
159
+ return;
160
+ }
161
+ const durationMs = Date.now() - context.startedAt;
162
+ logDebug(`[Antigravity Debug ${context.id}] Response ${response.status} ${response.statusText} (${durationMs}ms)`);
163
+ logDebug(`[Antigravity Debug ${context.id}] Response Headers: ${JSON.stringify(maskHeaders(meta.headersOverride ?? response.headers))}`);
164
+ if (meta.note) {
165
+ logDebug(`[Antigravity Debug ${context.id}] Note: ${meta.note}`);
166
+ }
167
+ if (meta.error) {
168
+ logDebug(`[Antigravity Debug ${context.id}] Error: ${formatError(meta.error)}`);
169
+ }
170
+ if (meta.body) {
171
+ logDebug(`[Antigravity Debug ${context.id}] Response Body Preview: ${truncateForLog(meta.body)}`);
172
+ }
173
+ }
174
+ /**
175
+ * Obscures sensitive headers and returns a plain object for logging.
176
+ */
177
+ function maskHeaders(headers) {
178
+ if (!headers) {
179
+ return {};
180
+ }
181
+ const result = {};
182
+ const parsed = headers instanceof Headers ? headers : new Headers(headers);
183
+ parsed.forEach((value, key) => {
184
+ if (key.toLowerCase() === "authorization") {
185
+ result[key] = "[redacted]";
186
+ }
187
+ else {
188
+ result[key] = value;
189
+ }
190
+ });
191
+ return result;
192
+ }
193
+ /**
194
+ * Produces a short, type-aware preview of a request/response body for logs.
195
+ */
196
+ function formatBodyPreview(body) {
197
+ if (body == null) {
198
+ return undefined;
199
+ }
200
+ if (typeof body === "string") {
201
+ return truncateForLog(body);
202
+ }
203
+ if (body instanceof URLSearchParams) {
204
+ return truncateForLog(body.toString());
205
+ }
206
+ if (typeof Blob !== "undefined" && body instanceof Blob) {
207
+ return `[Blob size=${body.size}]`;
208
+ }
209
+ if (typeof FormData !== "undefined" && body instanceof FormData) {
210
+ return "[FormData payload omitted]";
211
+ }
212
+ return `[${body.constructor?.name ?? typeof body} payload omitted]`;
213
+ }
214
+ /**
215
+ * Truncates long strings to a fixed preview length for logging.
216
+ */
217
+ function truncateForLog(text) {
218
+ if (text.length <= MAX_BODY_PREVIEW_CHARS) {
219
+ return text;
220
+ }
221
+ return `${text.slice(0, MAX_BODY_PREVIEW_CHARS)}... (truncated ${text.length - MAX_BODY_PREVIEW_CHARS} chars)`;
222
+ }
223
+ /**
224
+ * Writes a single debug line using the configured writer.
225
+ */
226
+ function logDebug(line) {
227
+ getDebugState().logWriter(line);
228
+ }
229
+ /**
230
+ * Converts unknown error-like values into printable strings.
231
+ */
232
+ function formatError(error) {
233
+ if (error instanceof Error) {
234
+ return error.stack ?? error.message;
235
+ }
236
+ try {
237
+ return JSON.stringify(error);
238
+ }
239
+ catch {
240
+ return String(error);
241
+ }
242
+ }
243
+ export function logAccountContext(label, info) {
244
+ if (!getDebugState().debugEnabled)
245
+ return;
246
+ const accountLabel = info.email
247
+ ? info.email
248
+ : info.index >= 0
249
+ ? `Account ${info.index + 1}`
250
+ : "All accounts";
251
+ const indexLabel = info.index >= 0 ? `${info.index + 1}/${info.totalAccounts}` : `-/${info.totalAccounts}`;
252
+ const rateLimitInfo = info.rateLimitState ? ` rateLimits=${JSON.stringify(info.rateLimitState)}` : "";
253
+ logDebug(`[Account] ${label}: ${accountLabel} (${indexLabel}) family=${info.family}${rateLimitInfo}`);
254
+ }
255
+ export function logRateLimitEvent(accountIndex, email, family, status, retryAfterMs, bodyInfo) {
256
+ if (!getDebugState().debugEnabled)
257
+ return;
258
+ const accountLabel = email || `Account ${accountIndex + 1}`;
259
+ logDebug(`[RateLimit] ${status} on ${accountLabel} family=${family} retryAfterMs=${retryAfterMs}`);
260
+ if (bodyInfo.message) {
261
+ logDebug(`[RateLimit] message: ${bodyInfo.message}`);
262
+ }
263
+ if (bodyInfo.quotaResetTime) {
264
+ logDebug(`[RateLimit] quotaResetTime: ${bodyInfo.quotaResetTime}`);
265
+ }
266
+ if (bodyInfo.retryDelayMs !== undefined && bodyInfo.retryDelayMs !== null) {
267
+ logDebug(`[RateLimit] body retryDelayMs: ${bodyInfo.retryDelayMs}`);
268
+ }
269
+ if (bodyInfo.reason) {
270
+ logDebug(`[RateLimit] reason: ${bodyInfo.reason}`);
271
+ }
272
+ }
273
+ export function logRateLimitSnapshot(family, accounts) {
274
+ if (!getDebugState().debugEnabled)
275
+ return;
276
+ const now = Date.now();
277
+ const entries = accounts.map((account) => {
278
+ const label = account.email ? account.email : `Account ${account.index + 1}`;
279
+ const reset = account.rateLimitResetTimes?.[family];
280
+ if (typeof reset !== "number") {
281
+ return `${label}=ready`;
282
+ }
283
+ const remaining = Math.max(0, reset - now);
284
+ const seconds = Math.ceil(remaining / 1000);
285
+ return `${label}=wait ${seconds}s`;
286
+ });
287
+ logDebug(`[RateLimit] snapshot family=${family} ${entries.join(" | ")}`);
288
+ }
289
+ export async function logResponseBody(context, response, status) {
290
+ const state = getDebugState();
291
+ if (!state.debugEnabled || !context)
292
+ return undefined;
293
+ const isError = status >= 400;
294
+ const shouldLogBody = state.verboseEnabled || isError;
295
+ if (!shouldLogBody)
296
+ return undefined;
297
+ try {
298
+ const text = await response.clone().text();
299
+ const maxChars = state.verboseEnabled ? MAX_BODY_VERBOSE_CHARS : MAX_BODY_PREVIEW_CHARS;
300
+ const preview = text.length <= maxChars
301
+ ? text
302
+ : `${text.slice(0, maxChars)}... (truncated ${text.length - maxChars} chars)`;
303
+ logDebug(`[Antigravity Debug ${context.id}] Response Body (${status}): ${preview}`);
304
+ return text;
305
+ }
306
+ catch (e) {
307
+ logDebug(`[Antigravity Debug ${context.id}] Failed to read response body: ${formatError(e)}`);
308
+ return undefined;
309
+ }
310
+ }
311
+ export function logModelFamily(url, extractedModel, family) {
312
+ if (!getDebugState().debugEnabled)
313
+ return;
314
+ logDebug(`[ModelFamily] url=${url} model=${extractedModel ?? "unknown"} family=${family}`);
315
+ }
316
+ export function debugLogToFile(message) {
317
+ if (!getDebugState().debugEnabled)
318
+ return;
319
+ logDebug(message);
320
+ }
321
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/plugin/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC,MAAM,CAAC,MAAM,oBAAoB,GAAG,mCAAmC,CAAC;AAcxE,IAAI,UAAU,GAAsB,IAAI,CAAC;AAEzC;;;GAGG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACvD,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,YAAY;IACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,YAAqB;IACvC,MAAM,OAAO,GAAG,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,YAAqB;IAC9C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,qBAAqB,SAAS,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,QAAiB;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAY,EAAE,EAAE;YACtB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,sEAAsE;IACtE,MAAM,YAAY,GAAG,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAC/H,MAAM,YAAY,GAAG,UAAU,IAAI,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,UAAU,IAAI,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAE/C,UAAU,GAAG;QACX,UAAU;QACV,YAAY;QACZ,cAAc;QACd,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa;IACpB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,kEAAkE;QAClE,MAAM,YAAY,GAAG,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,UAAU,IAAI,CAAC,CAAC;QACrC,MAAM,cAAc,GAAG,UAAU,IAAI,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAE/C,UAAU,GAAG;YACX,UAAU;YACV,YAAY;YACZ,cAAc;YACd,WAAW;YACX,SAAS;SACV,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,MAAM,UAAU,cAAc;IAC5B,OAAO,aAAa,EAAE,CAAC,YAAY,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,aAAa,EAAE,CAAC,cAAc,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,aAAa,EAAE,CAAC,WAAW,CAAC;AACrC,CAAC;AAyBD,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAiC;IAC5E,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,GAAG,eAAe,EAAE,cAAc,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACpC,QAAQ,CAAC,sBAAsB,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9D,QAAQ,CAAC,sBAAsB,EAAE,mBAAmB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,QAAQ,CAAC,sBAAsB,EAAE,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,QAAQ,CAAC,sBAAsB,EAAE,gBAAgB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,QAAQ,CAAC,sBAAsB,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,CAAC,sBAAsB,EAAE,mBAAmB,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAmD,EACnD,QAAkB,EAClB,OAAqC,EAAE;IAEvC,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAClD,QAAQ,CACN,sBAAsB,OAAO,CAAC,EAAE,cAAc,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,KAAK,CACzG,CAAC;IACF,QAAQ,CACN,sBAAsB,OAAO,CAAC,EAAE,uBAAuB,IAAI,CAAC,SAAS,CACnE,WAAW,CAAC,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,OAAO,CAAC,CACtD,EAAE,CACJ,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,QAAQ,CAAC,sBAAsB,OAAO,CAAC,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,sBAAsB,OAAO,CAAC,EAAE,YAAY,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,QAAQ,CACN,sBAAsB,OAAO,CAAC,EAAE,4BAA4B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,OAA+B;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,YAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAsB;IAC/C,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;QACpC,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACxD,OAAO,cAAc,IAAI,CAAC,IAAI,GAAG,CAAC;IACpC,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;QAChE,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,OAAO,IAAI,mBAAmB,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,IAAI,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,IAAI,CAAC,MAAM,GAAG,sBAAsB,SAAS,CAAC;AACjH,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,IAAY;IAC5B,aAAa,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAUD,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,IAAsB;IACrE,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY;QAAE,OAAO;IAE1C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK;QAC7B,CAAC,CAAC,IAAI,CAAC,KAAK;QACZ,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;YACf,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAC7B,CAAC,CAAC,cAAc,CAAC;IAErB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;IAE3G,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtG,QAAQ,CAAC,aAAa,KAAK,KAAK,YAAY,KAAK,UAAU,YAAY,IAAI,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,KAAyB,EACzB,MAAc,EACd,MAAc,EACd,YAAoB,EACpB,QAAsG;IAEtG,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY;QAAE,OAAO;IAC1C,MAAM,YAAY,GAAG,KAAK,IAAI,WAAW,YAAY,GAAG,CAAC,EAAE,CAAC;IAC5D,QAAQ,CAAC,eAAe,MAAM,OAAO,YAAY,WAAW,MAAM,iBAAiB,YAAY,EAAE,CAAC,CAAC;IACnG,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,QAAQ,CAAC,wBAAwB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC5B,QAAQ,CAAC,+BAA+B,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1E,QAAQ,CAAC,kCAAkC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,QAA8G;IAE9G,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY;QAAE,OAAO;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,MAA6B,CAAC,CAAC;QAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,GAAG,KAAK,QAAQ,CAAC;QAC1B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAC5C,OAAO,GAAG,KAAK,SAAS,OAAO,GAAG,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,+BAA+B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAmD,EACnD,QAAkB,EAClB,MAAc;IAEd,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAEtD,MAAM,OAAO,GAAG,MAAM,IAAI,GAAG,CAAC;IAC9B,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,IAAI,OAAO,CAAC;IAEtD,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACxF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ;YACrC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,IAAI,CAAC,MAAM,GAAG,QAAQ,SAAS,CAAC;QAChF,QAAQ,CAAC,sBAAsB,OAAO,CAAC,EAAE,oBAAoB,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,sBAAsB,OAAO,CAAC,EAAE,mCAAmC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,cAA6B,EAAE,MAAc;IACvF,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY;QAAE,OAAO;IAC1C,QAAQ,CAAC,qBAAqB,GAAG,UAAU,cAAc,IAAI,SAAS,WAAW,MAAM,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY;QAAE,OAAO;IAC1C,QAAQ,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Custom error types for opencode-antigravity-auth plugin.
3
+ *
4
+ * Ported from LLM-API-Key-Proxy for robust error handling.
5
+ */
6
+ /**
7
+ * Error thrown when Antigravity returns an empty response after retry attempts.
8
+ *
9
+ * Empty responses can occur when:
10
+ * - The model has no candidates/choices
11
+ * - The response body is empty or malformed
12
+ * - A temporary service issue prevents generation
13
+ */
14
+ export declare class EmptyResponseError extends Error {
15
+ readonly provider: string;
16
+ readonly model: string;
17
+ readonly attempts: number;
18
+ constructor(provider: string, model: string, attempts: number, message?: string);
19
+ }
20
+ /**
21
+ * Error thrown when tool ID matching fails and cannot be recovered.
22
+ */
23
+ export declare class ToolIdMismatchError extends Error {
24
+ readonly expectedIds: string[];
25
+ readonly foundIds: string[];
26
+ constructor(expectedIds: string[], foundIds: string[], message?: string);
27
+ }
28
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/plugin/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAGxB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM;CAYnB;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAEhB,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM;CASxE"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Custom error types for opencode-antigravity-auth plugin.
3
+ *
4
+ * Ported from LLM-API-Key-Proxy for robust error handling.
5
+ */
6
+ /**
7
+ * Error thrown when Antigravity returns an empty response after retry attempts.
8
+ *
9
+ * Empty responses can occur when:
10
+ * - The model has no candidates/choices
11
+ * - The response body is empty or malformed
12
+ * - A temporary service issue prevents generation
13
+ */
14
+ export class EmptyResponseError extends Error {
15
+ provider;
16
+ model;
17
+ attempts;
18
+ constructor(provider, model, attempts, message) {
19
+ super(message ??
20
+ `The model returned an empty response after ${attempts} attempts. ` +
21
+ `This may indicate a temporary service issue. Please try again.`);
22
+ this.name = "EmptyResponseError";
23
+ this.provider = provider;
24
+ this.model = model;
25
+ this.attempts = attempts;
26
+ }
27
+ }
28
+ /**
29
+ * Error thrown when tool ID matching fails and cannot be recovered.
30
+ */
31
+ export class ToolIdMismatchError extends Error {
32
+ expectedIds;
33
+ foundIds;
34
+ constructor(expectedIds, foundIds, message) {
35
+ super(message ??
36
+ `Tool ID mismatch: expected [${expectedIds.join(", ")}] but found [${foundIds.join(", ")}]`);
37
+ this.name = "ToolIdMismatchError";
38
+ this.expectedIds = expectedIds;
39
+ this.foundIds = foundIds;
40
+ }
41
+ }
42
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/plugin/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,QAAQ,CAAS;IACjB,KAAK,CAAS;IACd,QAAQ,CAAS;IAE1B,YACE,QAAgB,EAChB,KAAa,EACb,QAAgB,EAChB,OAAgB;QAEhB,KAAK,CACH,OAAO;YACL,8CAA8C,QAAQ,aAAa;gBACnE,gEAAgE,CACnE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,WAAW,CAAW;IACtB,QAAQ,CAAW;IAE5B,YAAY,WAAqB,EAAE,QAAkB,EAAE,OAAgB;QACrE,KAAK,CACH,OAAO;YACL,+BAA+B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Structured Logger for Antigravity Plugin
3
+ *
4
+ * Provides TUI-integrated logging that is silent by default.
5
+ * Logs are only visible when:
6
+ * 1. TUI client is available (logs to app log panel)
7
+ * 2. OPENCODE_ANTIGRAVITY_CONSOLE_LOG=1 is set (logs to console)
8
+ *
9
+ * Ported from opencode-google-antigravity-auth/src/plugin/logger.ts
10
+ */
11
+ import type { PluginClient } from "./types";
12
+ type LogLevel = "debug" | "info" | "warn" | "error";
13
+ export interface Logger {
14
+ debug(message: string, extra?: Record<string, unknown>): void;
15
+ info(message: string, extra?: Record<string, unknown>): void;
16
+ warn(message: string, extra?: Record<string, unknown>): void;
17
+ error(message: string, extra?: Record<string, unknown>): void;
18
+ }
19
+ /**
20
+ * Initialize the logger with the plugin client.
21
+ * Must be called during plugin initialization to enable TUI logging.
22
+ */
23
+ export declare function initLogger(client: PluginClient): void;
24
+ /**
25
+ * Get the current client (for testing or advanced usage).
26
+ */
27
+ export declare function getLoggerClient(): PluginClient | null;
28
+ /**
29
+ * Create a logger instance for a specific module.
30
+ *
31
+ * @param module - The module name (e.g., "refresh-queue", "transform.claude")
32
+ * @returns Logger instance with debug, info, warn, error methods
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const log = createLogger("refresh-queue");
37
+ * log.debug("Checking tokens", { count: 5 });
38
+ * log.warn("Token expired", { accountIndex: 0 });
39
+ * ```
40
+ */
41
+ export declare function createLogger(module: string): Logger;
42
+ /**
43
+ * Print a message to the console with Antigravity prefix.
44
+ * Only outputs when OPENCODE_ANTIGRAVITY_CONSOLE_LOG=1 is set.
45
+ *
46
+ * Use this for standalone messages that don't belong to a specific module.
47
+ *
48
+ * @param level - Log level
49
+ * @param message - Message to print
50
+ * @param extra - Optional extra data
51
+ */
52
+ export declare function printAntigravityConsole(level: LogLevel, message: string, extra?: unknown): void;
53
+ export {};
54
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/plugin/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAKpD,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC/D;AAYD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAErD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA0CnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GACd,IAAI,CAsBN"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Structured Logger for Antigravity Plugin
3
+ *
4
+ * Provides TUI-integrated logging that is silent by default.
5
+ * Logs are only visible when:
6
+ * 1. TUI client is available (logs to app log panel)
7
+ * 2. OPENCODE_ANTIGRAVITY_CONSOLE_LOG=1 is set (logs to console)
8
+ *
9
+ * Ported from opencode-google-antigravity-auth/src/plugin/logger.ts
10
+ */
11
+ const ENV_CONSOLE_LOG = "OPENCODE_ANTIGRAVITY_CONSOLE_LOG";
12
+ const ANTIGRAVITY_CONSOLE_PREFIX = "[Antigravity]";
13
+ let _client = null;
14
+ /**
15
+ * Check if console logging is enabled via environment variable.
16
+ */
17
+ function isConsoleLogEnabled() {
18
+ const val = process.env[ENV_CONSOLE_LOG];
19
+ return val === "1" || val?.toLowerCase() === "true";
20
+ }
21
+ /**
22
+ * Initialize the logger with the plugin client.
23
+ * Must be called during plugin initialization to enable TUI logging.
24
+ */
25
+ export function initLogger(client) {
26
+ _client = client;
27
+ }
28
+ /**
29
+ * Get the current client (for testing or advanced usage).
30
+ */
31
+ export function getLoggerClient() {
32
+ return _client;
33
+ }
34
+ /**
35
+ * Create a logger instance for a specific module.
36
+ *
37
+ * @param module - The module name (e.g., "refresh-queue", "transform.claude")
38
+ * @returns Logger instance with debug, info, warn, error methods
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const log = createLogger("refresh-queue");
43
+ * log.debug("Checking tokens", { count: 5 });
44
+ * log.warn("Token expired", { accountIndex: 0 });
45
+ * ```
46
+ */
47
+ export function createLogger(module) {
48
+ const service = `antigravity.${module}`;
49
+ const log = (level, message, extra) => {
50
+ // Try TUI logging first
51
+ const app = _client?.app;
52
+ if (app && typeof app.log === "function") {
53
+ app
54
+ .log({
55
+ body: { service, level, message, extra },
56
+ })
57
+ .catch(() => {
58
+ // Silently ignore logging errors
59
+ });
60
+ }
61
+ else if (isConsoleLogEnabled()) {
62
+ // Fallback to console if env var is set
63
+ const prefix = `[${service}]`;
64
+ const args = extra ? [prefix, message, extra] : [prefix, message];
65
+ switch (level) {
66
+ case "debug":
67
+ console.debug(...args);
68
+ break;
69
+ case "info":
70
+ console.info(...args);
71
+ break;
72
+ case "warn":
73
+ console.warn(...args);
74
+ break;
75
+ case "error":
76
+ console.error(...args);
77
+ break;
78
+ }
79
+ }
80
+ // If neither TUI nor console logging is enabled, log is silently discarded
81
+ };
82
+ return {
83
+ debug: (message, extra) => log("debug", message, extra),
84
+ info: (message, extra) => log("info", message, extra),
85
+ warn: (message, extra) => log("warn", message, extra),
86
+ error: (message, extra) => log("error", message, extra),
87
+ };
88
+ }
89
+ /**
90
+ * Print a message to the console with Antigravity prefix.
91
+ * Only outputs when OPENCODE_ANTIGRAVITY_CONSOLE_LOG=1 is set.
92
+ *
93
+ * Use this for standalone messages that don't belong to a specific module.
94
+ *
95
+ * @param level - Log level
96
+ * @param message - Message to print
97
+ * @param extra - Optional extra data
98
+ */
99
+ export function printAntigravityConsole(level, message, extra) {
100
+ if (!isConsoleLogEnabled()) {
101
+ return;
102
+ }
103
+ const prefixedMessage = `${ANTIGRAVITY_CONSOLE_PREFIX} ${message}`;
104
+ const args = extra === undefined ? [prefixedMessage] : [prefixedMessage, extra];
105
+ switch (level) {
106
+ case "debug":
107
+ console.debug(...args);
108
+ break;
109
+ case "info":
110
+ console.info(...args);
111
+ break;
112
+ case "warn":
113
+ console.warn(...args);
114
+ break;
115
+ case "error":
116
+ console.error(...args);
117
+ break;
118
+ }
119
+ }
120
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/plugin/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { OAuthAuthDetails, ProjectContextResult } from "./types";
2
+ interface AntigravityUserTier {
3
+ id?: string;
4
+ isDefault?: boolean;
5
+ userDefinedCloudaicompanionProject?: boolean;
6
+ }
7
+ interface LoadCodeAssistPayload {
8
+ cloudaicompanionProject?: string | {
9
+ id?: string;
10
+ };
11
+ currentTier?: {
12
+ id?: string;
13
+ };
14
+ allowedTiers?: AntigravityUserTier[];
15
+ }
16
+ /**
17
+ * Clears cached project context results and pending promises, globally or for a refresh key.
18
+ */
19
+ export declare function invalidateProjectContextCache(refresh?: string): void;
20
+ /**
21
+ * Loads managed project information for the given access token and optional project.
22
+ */
23
+ export declare function loadManagedProject(accessToken: string, projectId?: string): Promise<LoadCodeAssistPayload | null>;
24
+ /**
25
+ * Onboards a managed project for the user, optionally retrying until completion.
26
+ */
27
+ export declare function onboardManagedProject(accessToken: string, tierId: string, projectId?: string, attempts?: number, delayMs?: number): Promise<string | undefined>;
28
+ /**
29
+ * Resolves an effective project ID for the current auth state, caching results per refresh token.
30
+ */
31
+ export declare function ensureProjectContext(auth: OAuthAuthDetails): Promise<ProjectContextResult>;
32
+ export {};
33
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/plugin/project.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAatE,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,CAoD7B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2EhG"}