(filename)
| 1639 | } |
| 1640 | |
| 1641 | async function verifyAntigravityProjectId(filename) { |
| 1642 | try { |
| 1643 | // 显示加载状态 |
| 1644 | showStatus('🔍 正在检验Antigravity Project ID,请稍候...', 'info'); |
| 1645 | |
| 1646 | const response = await fetch(`./creds/verify-project/${encodeURIComponent(filename)}?mode=antigravity`, { |
| 1647 | method: 'POST', |
| 1648 | headers: getAuthHeaders() |
| 1649 | }); |
| 1650 | const data = await response.json(); |
| 1651 | |
| 1652 | if (response.ok && data.success) { |
| 1653 | // 成功时显示绿色成功消息和Project ID |
| 1654 | const tierLine = data.subscription_tier ? `\nTier: ${data.subscription_tier}` : ''; |
| 1655 | const creditLine = data.credit_amount !== undefined && data.credit_amount !== null |
| 1656 | ? `\n积分: ${data.credit_amount}` |
| 1657 | : ''; |
| 1658 | const successMsg = `✅ 检验成功!\n文件: ${filename}\nProject ID: ${data.project_id}${tierLine}${creditLine}\n\n${data.message}`; |
| 1659 | showStatus(successMsg.replace(/\n/g, '<br>'), 'success'); |
| 1660 | |
| 1661 | // 弹出成功提示 |
| 1662 | showMessageModal('检验成功', `✅ Antigravity检验成功!\n\n文件: ${filename}\nProject ID: ${data.project_id}${tierLine}${creditLine}\n\n${data.message}`, 'success'); |
| 1663 | |
| 1664 | await AppState.antigravityCreds.refresh(); |
| 1665 | } else { |
| 1666 | // 失败时显示红色错误消息 |
| 1667 | const errorMsg = data.message || '检验失败'; |
| 1668 | showStatus(`❌ ${errorMsg}`, 'error'); |
| 1669 | showMessageModal('检验失败', `❌ 检验失败\n\n${errorMsg}`, 'error'); |
| 1670 | } |
| 1671 | } catch (error) { |
| 1672 | const errorMsg = `检验失败: ${error.message}`; |
| 1673 | showStatus(`❌ ${errorMsg}`, 'error'); |
| 1674 | showMessageModal('检验失败', `❌ ${errorMsg}`, 'error'); |
| 1675 | } |
| 1676 | } |
| 1677 | |
| 1678 | async function testCredential(filename) { |
| 1679 | try { |
nothing calls this directly
no test coverage detected