antigravity-claude-proxy 3.0.1 → 3.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.
@@ -1,17 +1,13 @@
1
1
  <div x-data="accountManager" class="view-container">
2
2
  <!-- Compact Header -->
3
- <div class="flex items-center justify-between gap-4 mb-6">
4
- <!-- Title with inline subtitle -->
5
- <div class="flex flex-wrap items-center gap-4">
6
- <h1 class="text-2xl font-bold text-white tracking-tight" x-text="$store.global.t('accountManagement')">
3
+ <div class="flex items-end justify-between gap-4">
4
+ <div class="flex flex-col gap-1">
5
+ <h1 class="font-display text-[1.5rem] leading-tight font-bold text-white tracking-[-0.01em]" x-text="$store.global.t('accountManagement')">
7
6
  Account Management
8
7
  </h1>
9
- <div class="flex items-center h-6 px-3 rounded-full bg-space-800/80 border border-space-border/50 shadow-sm backdrop-blur-sm">
10
- <span class="text-[10px] font-mono text-gray-400 uppercase tracking-wider"
11
- x-text="$store.global.t('manageTokens')">
12
- Manage Google Account tokens and authorization states
13
- </span>
14
- </div>
8
+ <p class="text-sm text-gray-500" x-text="$store.global.t('manageTokens')">
9
+ Manage Google Account tokens and authorization states
10
+ </p>
15
11
  </div>
16
12
 
17
13
  <!-- Action Buttons -->
@@ -68,7 +64,7 @@
68
64
  :class="$store.data.accounts.length >= $store.data.maxAccounts ? 'text-yellow-400' : 'text-gray-400'"
69
65
  x-text="$store.data.accounts.length + '/' + $store.data.maxAccounts"></span>
70
66
  </div>
71
- <button class="btn bg-neon-purple hover:bg-purple-600 border-none text-white btn-xs gap-2 shadow-lg shadow-neon-purple/20 h-8"
67
+ <button class="btn bg-neon-purple hover:bg-[#7fdbe4] border-none text-space-950 btn-xs gap-2 h-8"
72
68
  :class="{ 'opacity-50 cursor-not-allowed': $store.data.accounts.length >= $store.data.maxAccounts }"
73
69
  :disabled="$store.data.accounts.length >= $store.data.maxAccounts"
74
70
  @click="$store.data.accounts.length < $store.data.maxAccounts && document.getElementById('add_account_modal').showModal()">
@@ -85,13 +81,13 @@
85
81
  <table class="w-full">
86
82
  <thead x-show="$store.data.accounts.length > 0">
87
83
  <tr class="bg-space-900/50 border-b border-space-border/50">
88
- <th class="pl-6 py-3 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider w-16" x-text="$store.global.t('enabled')">Enabled</th>
89
- <th class="py-3 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider flex-1 min-w-[200px]" x-text="$store.global.t('accountEmail')">Account (Email)</th>
90
- <th class="py-3 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider w-20" x-text="$store.global.t('source')">Source</th>
91
- <th class="py-3 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider w-16" x-text="$store.global.t('tier')">Tier</th>
92
- <th class="py-3 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider w-32" x-text="$store.global.t('quota')">Quota</th>
93
- <th class="py-3 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider w-24" x-text="$store.global.t('health')">Health</th>
94
- <th class="py-3 pr-6 text-right text-[10px] font-bold text-gray-500 uppercase tracking-wider w-32" x-text="$store.global.t('operations')">Operations</th>
84
+ <th class="pl-6 py-3 text-left text-[11px] font-medium text-gray-500 w-16" x-text="$store.global.t('enabled')">Enabled</th>
85
+ <th class="py-3 text-left text-[11px] font-medium text-gray-500 flex-1 min-w-[200px]" x-text="$store.global.t('accountEmail')">Account (Email)</th>
86
+ <th class="py-3 text-left text-[11px] font-medium text-gray-500 w-20" x-text="$store.global.t('source')">Source</th>
87
+ <th class="py-3 text-left text-[11px] font-medium text-gray-500 w-16" x-text="$store.global.t('tier')">Tier</th>
88
+ <th class="py-3 text-left text-[11px] font-medium text-gray-500 w-32" x-text="$store.global.t('quota')">Quota</th>
89
+ <th class="py-3 text-left text-[11px] font-medium text-gray-500 w-24" x-text="$store.global.t('health')">Health</th>
90
+ <th class="py-3 pr-6 text-right text-[11px] font-medium text-gray-500 w-32" x-text="$store.global.t('operations')">Operations</th>
95
91
  </tr>
96
92
  </thead>
97
93
  <tbody>
@@ -111,7 +107,7 @@
111
107
  Get started by adding a Google account via OAuth, or use the CLI command to import credentials.
112
108
  </p>
113
109
  <div class="flex items-center gap-4 mt-2">
114
- <button class="btn bg-neon-purple hover:bg-purple-600 border-none text-white btn-sm gap-2 shadow-lg shadow-neon-purple/20"
110
+ <button class="btn bg-neon-purple hover:bg-[#7fdbe4] border-none text-space-950 btn-sm gap-2"
115
111
  onclick="document.getElementById('add_account_modal').showModal()">
116
112
  <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
117
113
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4" />
@@ -181,7 +177,7 @@
181
177
  <span class="text-xs text-gray-600">-</span>
182
178
  </template>
183
179
  <div x-show="acc.quotaThreshold !== undefined"
184
- class="text-[10px] font-mono text-neon-yellow/60 mt-0.5"
180
+ class="text-[11px] font-mono text-neon-yellow/60 mt-0.5"
185
181
  x-text="'min: ' + getEffectiveThreshold(acc)"></div>
186
182
  </div>
187
183
  </td>
@@ -199,7 +195,7 @@
199
195
  x-text="acc.status.toUpperCase()">
200
196
  </span>
201
197
  <p x-show="acc.status === 'banned'"
202
- class="text-[9px] text-red-600/70 mt-0.5 max-w-[200px] leading-tight"
198
+ class="text-[10px] text-red-600/70 mt-0.5 max-w-[200px] leading-tight"
203
199
  x-text="acc.error || 'Gemini disabled for ToS violation'">
204
200
  </p>
205
201
  </div>
@@ -208,7 +204,7 @@
208
204
  <div class="flex justify-end gap-2">
209
205
  <!-- Fix Button -->
210
206
  <button x-show="acc.status === 'invalid'"
211
- class="px-3 py-1 text-[10px] font-bold font-mono uppercase tracking-wider rounded bg-yellow-500/10 text-yellow-400 hover:bg-yellow-500/20 border border-yellow-500/30 hover:border-yellow-500/50 transition-all"
207
+ class="px-3 py-1 text-[11px] font-medium rounded bg-yellow-500/10 text-yellow-400 hover:bg-yellow-500/20 border border-yellow-500/30 hover:border-yellow-500/50 transition-all"
212
208
  @click="fixAccount(acc.email)"
213
209
  x-text="$store.global.t('fix')">
214
210
  FIX
@@ -216,7 +212,7 @@
216
212
  <!-- Appeal Button (banned accounts only) -->
217
213
  <a x-show="acc.status === 'banned'"
218
214
  href="mailto:gemini-code-assist-user-feedback@google.com"
219
- class="px-3 py-1 text-[10px] font-bold font-mono uppercase tracking-wider rounded bg-red-900/20 text-red-400 hover:bg-red-900/30 border border-red-800/30 hover:border-red-800/50 transition-all"
215
+ class="px-3 py-1 text-[11px] font-medium rounded bg-red-900/20 text-red-400 hover:bg-red-900/30 border border-red-800/30 hover:border-red-800/50 transition-all"
220
216
  title="Email Google to appeal this ban">
221
217
  APPEAL
222
218
  </a>
@@ -293,7 +289,7 @@
293
289
  <button class="w-full flex items-center justify-between px-6 py-3 bg-space-900/50 border-b border-space-border/50 hover:bg-space-900/70 transition-colors"
294
290
  @click="$store.settings.toggle('healthInspectorOpen'); if ($store.settings.healthInspectorOpen && !healthData.strategy) fetchHealthData()">
295
291
  <div class="flex items-center gap-3">
296
- <span class="text-[9px] font-bold uppercase tracking-wider px-1.5 py-0.5 rounded bg-neon-purple/20 text-neon-purple border border-neon-purple/30">DEV</span>
292
+ <span class="text-[10px] font-medium px-1.5 py-0.5 rounded bg-neon-purple/20 text-neon-purple border border-neon-purple/30">DEV</span>
297
293
  <span class="text-sm font-semibold text-gray-300" x-text="$store.global.t('strategyHealthInspector')">Strategy Health Inspector</span>
298
294
  </div>
299
295
  <svg class="w-4 h-4 text-gray-500 transition-transform" :class="{ 'rotate-180': $store.settings.healthInspectorOpen }"
@@ -331,14 +327,14 @@
331
327
  <table class="w-full">
332
328
  <thead>
333
329
  <tr class="border-b border-space-border/50">
334
- <th class="py-2 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider">Email</th>
335
- <th class="py-2 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider w-40"
330
+ <th class="py-2 text-left text-[11px] font-medium text-gray-500">Email</th>
331
+ <th class="py-2 text-left text-[11px] font-medium text-gray-500 w-40"
336
332
  x-text="$store.global.t('healthScore')">Health Score</th>
337
- <th class="py-2 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider w-28"
333
+ <th class="py-2 text-left text-[11px] font-medium text-gray-500 w-28"
338
334
  x-text="$store.global.t('tokenBucket')">Tokens</th>
339
- <th class="py-2 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider w-20"
335
+ <th class="py-2 text-left text-[11px] font-medium text-gray-500 w-20"
340
336
  x-text="$store.global.t('consecutiveFailures')">Failures</th>
341
- <th class="py-2 text-left text-[10px] font-bold text-gray-500 uppercase tracking-wider w-20">Status</th>
337
+ <th class="py-2 text-left text-[11px] font-medium text-gray-500 w-20">Status</th>
342
338
  </tr>
343
339
  </thead>
344
340
  <tbody>
@@ -375,7 +371,7 @@
375
371
  x-text="acc.consecutiveFailures"></span>
376
372
  </td>
377
373
  <td class="py-2">
378
- <span class="text-[10px] font-bold uppercase px-1.5 py-0.5 rounded"
374
+ <span class="text-[11px] font-medium capitalize px-1.5 py-0.5 rounded"
379
375
  :class="acc.isUsable ? 'bg-neon-green/10 text-neon-green border border-neon-green/20' : 'bg-red-500/10 text-red-400 border border-red-500/20'"
380
376
  x-text="acc.isUsable ? 'OK' : 'DEGRADED'"></span>
381
377
  </td>
@@ -387,7 +383,7 @@
387
383
 
388
384
  <!-- Scoring reference -->
389
385
  <div x-show="healthData.trackers !== null && healthData.trackers?.accounts?.length > 0" class="mt-3 px-3 py-2 rounded bg-space-900/40 border border-space-border/30">
390
- <p class="text-[10px] text-gray-500 font-mono leading-relaxed">
386
+ <p class="text-[11px] text-gray-500 font-mono leading-relaxed">
391
387
  Score is adjusted for successes, rate limits, and failures with passive recovery.
392
388
  <br>
393
389
  Selection uses weighted health, token usage, quota, and recency (LRU).
@@ -444,7 +440,7 @@
444
440
  </dialog>
445
441
 
446
442
  <!-- Quota Distribution Modal -->
447
- <dialog id="quota_modal" class="modal backdrop-blur-sm">
443
+ <dialog id="quota_modal" class="modal">
448
444
  <div class="modal-box max-w-2xl w-full bg-space-900 border border-space-border text-gray-300 shadow-2xl p-6">
449
445
  <h3 class="font-bold text-xl text-white mb-2 flex items-center gap-2">
450
446
  <svg class="w-6 h-6 text-neon-cyan" fill="none" stroke="currentColor" viewBox="0 0 24 24">
@@ -474,9 +470,9 @@
474
470
  </div>
475
471
 
476
472
  <div class="flex justify-between items-center">
477
- <span class="text-[10px] text-gray-500 uppercase font-bold" x-text="$store.data.getModelFamily(modelId)"></span>
473
+ <span class="text-[11px] text-gray-500 capitalize font-medium" x-text="$store.data.getModelFamily(modelId)"></span>
478
474
  <template x-if="limit.resetTime">
479
- <span class="text-[10px] text-yellow-500/80 font-mono italic"
475
+ <span class="text-[11px] text-yellow-500/80 font-mono italic"
480
476
  x-text="$store.global.t('resetsIn', { time: window.utils.formatTimeUntil(limit.resetTime) })"></span>
481
477
  </template>
482
478
  </div>
@@ -502,7 +498,7 @@
502
498
  </dialog>
503
499
 
504
500
  <!-- Threshold Settings Modal -->
505
- <dialog id="threshold_modal" class="modal backdrop-blur-sm">
501
+ <dialog id="threshold_modal" class="modal">
506
502
  <div class="modal-box max-w-md w-full bg-space-900 border border-space-border text-gray-300 shadow-2xl p-6">
507
503
  <h3 class="font-bold text-xl text-white mb-2 flex items-center gap-2">
508
504
  <svg class="w-6 h-6 text-neon-yellow" fill="none" stroke="currentColor" viewBox="0 0 24 24">
@@ -546,7 +542,7 @@
546
542
  <span class="text-gray-500 text-xs">%</span>
547
543
  </div>
548
544
  </div>
549
- <p class="text-[10px] text-gray-600 mt-1">
545
+ <p class="text-[11px] text-gray-600 mt-1">
550
546
  Leave empty to use the global threshold from Settings.
551
547
  </p>
552
548
  </div>
@@ -585,7 +581,7 @@
585
581
  :value="threshold"
586
582
  @input="updateModelThreshold(modelId, $event.target.value)"
587
583
  aria-label="Model threshold">
588
- <span class="text-gray-500 text-[10px]">%</span>
584
+ <span class="text-gray-500 text-[11px]">%</span>
589
585
  </div>
590
586
  <button class="btn btn-xs btn-ghost text-gray-500 hover:text-red-400 px-1"
591
587
  @click="removeModelThreshold(modelId)">
@@ -597,7 +593,7 @@
597
593
  </template>
598
594
 
599
595
  <template x-if="Object.keys(thresholdDialog.modelQuotaThresholds).length === 0">
600
- <p class="text-[10px] text-gray-600 text-center py-2">
596
+ <p class="text-[11px] text-gray-600 text-center py-2">
601
597
  No per-model overrides configured.
602
598
  </p>
603
599
  </template>