()
| 1200 | } |
| 1201 | |
| 1202 | async function getAntigravityCredentials() { |
| 1203 | if (!AppState.antigravityAuthInProgress) { |
| 1204 | showStatus('请先获取 Antigravity 认证链接并完成授权', 'error'); |
| 1205 | return; |
| 1206 | } |
| 1207 | |
| 1208 | const btn = document.getElementById('getAntigravityCredsBtn'); |
| 1209 | btn.disabled = true; |
| 1210 | btn.textContent = '等待OAuth回调中...'; |
| 1211 | |
| 1212 | try { |
| 1213 | showStatus('正在等待 Antigravity OAuth回调...', 'info'); |
| 1214 | |
| 1215 | const response = await fetch('./auth/callback', { |
| 1216 | method: 'POST', |
| 1217 | headers: getAuthHeaders(), |
| 1218 | body: JSON.stringify({ mode: 'antigravity' }) |
| 1219 | }); |
| 1220 | |
| 1221 | const data = await response.json(); |
| 1222 | |
| 1223 | if (response.ok) { |
| 1224 | document.getElementById('antigravityCredsContent').textContent = JSON.stringify(data.credentials, null, 2); |
| 1225 | document.getElementById('antigravityCredsSection').classList.remove('hidden'); |
| 1226 | AppState.antigravityAuthInProgress = false; |
| 1227 | showStatus(`✅ Antigravity 认证成功!文件已保存到: ${data.file_path}`, 'success'); |
| 1228 | } else { |
| 1229 | showStatus(`❌ 错误: ${data.error || '获取认证文件失败'}`, 'error'); |
| 1230 | } |
| 1231 | } catch (error) { |
| 1232 | showStatus(`网络错误: ${error.message}`, 'error'); |
| 1233 | } finally { |
| 1234 | btn.disabled = false; |
| 1235 | btn.textContent = '获取 Antigravity 凭证'; |
| 1236 | } |
| 1237 | } |
| 1238 | |
| 1239 | function downloadAntigravityCredentials() { |
| 1240 | const content = document.getElementById('antigravityCredsContent').textContent; |
nothing calls this directly
no test coverage detected