@kaitranntt/ccs 7.9.0 → 7.10.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 (46) hide show
  1. package/dist/cliproxy/index.d.ts +2 -0
  2. package/dist/cliproxy/index.d.ts.map +1 -1
  3. package/dist/cliproxy/index.js +3 -1
  4. package/dist/cliproxy/index.js.map +1 -1
  5. package/dist/cliproxy/quota-fetcher.d.ts +46 -0
  6. package/dist/cliproxy/quota-fetcher.d.ts.map +1 -0
  7. package/dist/cliproxy/quota-fetcher.js +406 -0
  8. package/dist/cliproxy/quota-fetcher.js.map +1 -0
  9. package/dist/cliproxy/stats-fetcher.d.ts +4 -0
  10. package/dist/cliproxy/stats-fetcher.d.ts.map +1 -1
  11. package/dist/cliproxy/stats-fetcher.js.map +1 -1
  12. package/dist/ui/assets/accounts-CmzZXhfc.js +1 -0
  13. package/dist/ui/assets/{alert-dialog-sKmXLtjs.js → alert-dialog-zpnBn2CA.js} +1 -1
  14. package/dist/ui/assets/api-DFbZVPK4.js +1 -0
  15. package/dist/ui/assets/auth-section-YgJ7Cv--.js +1 -0
  16. package/dist/ui/assets/{card-CfgEo_Fi.js → card-dTUi3LxW.js} +1 -1
  17. package/dist/ui/assets/cliproxy-CsqKCFzj.js +3 -0
  18. package/dist/ui/assets/cliproxy-control-panel-BRCh_7b3.js +1 -0
  19. package/dist/ui/assets/{confirm-dialog-Dut98zdb.js → confirm-dialog-ByfOsjk9.js} +1 -1
  20. package/dist/ui/assets/{copilot-DvOZJmtw.js → copilot-BQscualu.js} +3 -3
  21. package/dist/ui/assets/globalenv-section-BEpPTvKo.js +1 -0
  22. package/dist/ui/assets/{health-D1M4owiM.js → health-DTRd-dXk.js} +1 -1
  23. package/dist/ui/assets/icons-CwFZAiDB.js +1 -0
  24. package/dist/ui/assets/index-BLoAjpcw.js +1 -0
  25. package/dist/ui/assets/{index-Bdp0Hpgh.js → index-Bfwze8tN.js} +1 -1
  26. package/dist/ui/assets/index-CEZrgkam.js +1 -0
  27. package/dist/ui/assets/index-QeBLfRj8.js +47 -0
  28. package/dist/ui/assets/index-oS2cgEFl.css +1 -0
  29. package/dist/ui/assets/{shared-Dgmje0CZ.js → shared-BgDSyHKz.js} +1 -1
  30. package/dist/ui/assets/{switch-MkSHHW1_.js → switch-B0PXGFIv.js} +1 -1
  31. package/dist/ui/index.html +3 -3
  32. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  33. package/dist/web-server/routes/cliproxy-stats-routes.js +89 -5
  34. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  35. package/package.json +1 -1
  36. package/dist/ui/assets/accounts-CZms_PBW.js +0 -1
  37. package/dist/ui/assets/api-TANgowVA.js +0 -1
  38. package/dist/ui/assets/auth-section-Ddg5Cdd6.js +0 -1
  39. package/dist/ui/assets/cliproxy-BpCuX751.js +0 -3
  40. package/dist/ui/assets/cliproxy-control-panel-Cp0Tweyl.js +0 -1
  41. package/dist/ui/assets/globalenv-section-DlnizwvB.js +0 -1
  42. package/dist/ui/assets/icons-CMYcel9O.js +0 -1
  43. package/dist/ui/assets/index-BCBypoXT.js +0 -1
  44. package/dist/ui/assets/index-BXkzlgVE.js +0 -1
  45. package/dist/ui/assets/index-D-LYJymx.js +0 -47
  46. package/dist/ui/assets/index-DQAJ1wqP.css +0 -1
@@ -15,6 +15,8 @@ export type { AuthStatus } from './auth-handler';
15
15
  export { isAuthenticated, getAuthStatus, getAllAuthStatus, clearAuth, triggerOAuth, ensureAuth, getOAuthConfig, getProviderTokenDir, displayAuthStatus, } from './auth-handler';
16
16
  export type { CliproxyStats } from './stats-fetcher';
17
17
  export { fetchCliproxyStats, isCliproxyRunning } from './stats-fetcher';
18
+ export type { ModelQuota, QuotaResult } from './quota-fetcher';
19
+ export { fetchAccountQuota } from './quota-fetcher';
18
20
  export type { OpenAICompatProvider, OpenAICompatModel } from './openai-compat-manager';
19
21
  export { listOpenAICompatProviders, getOpenAICompatProvider, addOpenAICompatProvider, updateOpenAICompatProvider, removeOpenAICompatProvider, OPENROUTER_TEMPLATE, TOGETHER_TEMPLATE, } from './openai-compat-manager';
20
22
  export type { ServiceStartResult } from './service-manager';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cliproxy/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cliproxy/index.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.configureProviderModel = exports.getCurrentModel = exports.hasUserSettings = exports.findModel = exports.getProviderCatalog = exports.supportsModelConfig = exports.MODEL_CATALOG = exports.clearConfigCache = exports.getEnvVarsFromConfig = exports.getModelMappingFromConfig = exports.loadBaseConfig = exports.CLIPROXY_CONFIG_VERSION = exports.CLIPROXY_DEFAULT_PORT = exports.deleteConfig = exports.configExists = exports.getBinDir = exports.getCliproxyConfigPath = exports.getAuthDir = exports.getProviderAuthDir = exports.getCliproxyDir = exports.getModelMapping = exports.getProviderConfig = exports.ensureProviderSettings = exports.getProviderSettingsPath = exports.getEffectiveEnvVars = exports.getClaudeEnvVars = exports.parseUserApiKeys = exports.configNeedsRegeneration = exports.regenerateConfig = exports.generateConfig = exports.getVersionPinPath = exports.isVersionPinned = exports.clearPinnedVersion = exports.savePinnedVersion = exports.getPinnedVersion = exports.fetchLatestCliproxyVersion = exports.installCliproxyVersion = exports.getInstalledCliproxyVersion = exports.getCLIProxyPath = exports.isCLIProxyInstalled = exports.ensureCLIProxyBinary = exports.BinaryManager = exports.CLIPROXY_VERSION = exports.getPlatformDescription = exports.isPlatformSupported = exports.getArchiveBinaryName = exports.getExecutableName = exports.getChecksumsUrl = exports.getDownloadUrl = exports.detectPlatform = void 0;
8
- exports.getAuthSummary = exports.resetAuthToDefaults = exports.setVariantApiKey = exports.setGlobalManagementSecret = exports.setGlobalApiKey = exports.getEffectiveManagementSecret = exports.getEffectiveApiKey = exports.maskToken = exports.generateSecureToken = exports.withStartupLock = exports.acquireStartupLock = exports.reclaimOrphanedProxy = exports.waitForProxyHealthy = exports.detectRunningProxy = exports.getServiceStatus = exports.stopCliproxyService = exports.ensureCliproxyService = exports.TOGETHER_TEMPLATE = exports.OPENROUTER_TEMPLATE = exports.removeOpenAICompatProvider = exports.updateOpenAICompatProvider = exports.addOpenAICompatProvider = exports.getOpenAICompatProvider = exports.listOpenAICompatProviders = exports.isCliproxyRunning = exports.fetchCliproxyStats = exports.displayAuthStatus = exports.getProviderTokenDir = exports.getOAuthConfig = exports.ensureAuth = exports.triggerOAuth = exports.clearAuth = exports.getAllAuthStatus = exports.getAuthStatus = exports.isAuthenticated = exports.findAvailablePort = exports.isPortAvailable = exports.execClaudeWithCLIProxy = exports.showCurrentConfig = void 0;
8
+ exports.getAuthSummary = exports.resetAuthToDefaults = exports.setVariantApiKey = exports.setGlobalManagementSecret = exports.setGlobalApiKey = exports.getEffectiveManagementSecret = exports.getEffectiveApiKey = exports.maskToken = exports.generateSecureToken = exports.withStartupLock = exports.acquireStartupLock = exports.reclaimOrphanedProxy = exports.waitForProxyHealthy = exports.detectRunningProxy = exports.getServiceStatus = exports.stopCliproxyService = exports.ensureCliproxyService = exports.TOGETHER_TEMPLATE = exports.OPENROUTER_TEMPLATE = exports.removeOpenAICompatProvider = exports.updateOpenAICompatProvider = exports.addOpenAICompatProvider = exports.getOpenAICompatProvider = exports.listOpenAICompatProviders = exports.fetchAccountQuota = exports.isCliproxyRunning = exports.fetchCliproxyStats = exports.displayAuthStatus = exports.getProviderTokenDir = exports.getOAuthConfig = exports.ensureAuth = exports.triggerOAuth = exports.clearAuth = exports.getAllAuthStatus = exports.getAuthStatus = exports.isAuthenticated = exports.findAvailablePort = exports.isPortAvailable = exports.execClaudeWithCLIProxy = exports.showCurrentConfig = void 0;
9
9
  // Platform detection
10
10
  var platform_detector_1 = require("./platform-detector");
11
11
  Object.defineProperty(exports, "detectPlatform", { enumerable: true, get: function () { return platform_detector_1.detectPlatform; } });
@@ -85,6 +85,8 @@ Object.defineProperty(exports, "displayAuthStatus", { enumerable: true, get: fun
85
85
  var stats_fetcher_1 = require("./stats-fetcher");
86
86
  Object.defineProperty(exports, "fetchCliproxyStats", { enumerable: true, get: function () { return stats_fetcher_1.fetchCliproxyStats; } });
87
87
  Object.defineProperty(exports, "isCliproxyRunning", { enumerable: true, get: function () { return stats_fetcher_1.isCliproxyRunning; } });
88
+ var quota_fetcher_1 = require("./quota-fetcher");
89
+ Object.defineProperty(exports, "fetchAccountQuota", { enumerable: true, get: function () { return quota_fetcher_1.fetchAccountQuota; } });
88
90
  var openai_compat_manager_1 = require("./openai-compat-manager");
89
91
  Object.defineProperty(exports, "listOpenAICompatProviders", { enumerable: true, get: function () { return openai_compat_manager_1.listOpenAICompatProviders; } });
90
92
  Object.defineProperty(exports, "getOpenAICompatProvider", { enumerable: true, get: function () { return openai_compat_manager_1.getOpenAICompatProvider; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cliproxy/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cliproxy/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Quota Fetcher for Antigravity Accounts
3
+ *
4
+ * Fetches quota information from Google Cloud Code internal API.
5
+ * Used for displaying remaining quota percentages and reset times.
6
+ */
7
+ import { CLIProxyProvider } from './types';
8
+ /** Individual model quota info */
9
+ export interface ModelQuota {
10
+ /** Model name, e.g., "gemini-3-pro-high" */
11
+ name: string;
12
+ /** Display name from API, e.g., "Gemini 3 Pro" */
13
+ displayName?: string;
14
+ /** Remaining quota as percentage (0-100) */
15
+ percentage: number;
16
+ /** ISO timestamp when quota resets, null if unknown */
17
+ resetTime: string | null;
18
+ }
19
+ /** Quota fetch result */
20
+ export interface QuotaResult {
21
+ /** Whether fetch succeeded */
22
+ success: boolean;
23
+ /** Quota for each available model */
24
+ models: ModelQuota[];
25
+ /** Timestamp of fetch */
26
+ lastUpdated: number;
27
+ /** True if account lacks quota access (403) */
28
+ isForbidden?: boolean;
29
+ /** Error message if fetch failed */
30
+ error?: string;
31
+ /** True if token is expired and needs re-auth */
32
+ isExpired?: boolean;
33
+ /** ISO timestamp when token expires/expired */
34
+ expiresAt?: string;
35
+ /** True if account hasn't been activated in official Antigravity app */
36
+ isUnprovisioned?: boolean;
37
+ }
38
+ /**
39
+ * Fetch quota for an Antigravity account
40
+ *
41
+ * @param provider - Provider name (only 'agy' supported)
42
+ * @param accountId - Account identifier (email)
43
+ * @returns Quota result with models and percentages
44
+ */
45
+ export declare function fetchAccountQuota(provider: CLIProxyProvider, accountId: string): Promise<QuotaResult>;
46
+ //# sourceMappingURL=quota-fetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-fetcher.d.ts","sourceRoot":"","sources":["../../src/cliproxy/quota-fetcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,kCAAkC;AAClC,MAAM,WAAW,UAAU;IACzB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,yBAAyB;AACzB,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAuYD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CAiFtB"}
@@ -0,0 +1,406 @@
1
+ "use strict";
2
+ /**
3
+ * Quota Fetcher for Antigravity Accounts
4
+ *
5
+ * Fetches quota information from Google Cloud Code internal API.
6
+ * Used for displaying remaining quota percentages and reset times.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.fetchAccountQuota = void 0;
33
+ const fs = __importStar(require("node:fs"));
34
+ const path = __importStar(require("node:path"));
35
+ const config_generator_1 = require("./config-generator");
36
+ /** Google Cloud Code API endpoints */
37
+ const ANTIGRAVITY_API_BASE = 'https://cloudcode-pa.googleapis.com';
38
+ const ANTIGRAVITY_API_VERSION = 'v1internal';
39
+ /** Google OAuth token endpoint */
40
+ const GOOGLE_TOKEN_URL = 'https://oauth2.googleapis.com/token';
41
+ /** Antigravity OAuth credentials (from CLIProxyAPIPlus - public in open-source code) */
42
+ const ANTIGRAVITY_CLIENT_ID = '1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com';
43
+ const ANTIGRAVITY_CLIENT_SECRET = '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';
44
+ /** Headers for loadCodeAssist (matches CLIProxyAPI antigravity.go) */
45
+ const LOADCODEASSIST_HEADERS = {
46
+ 'Content-Type': 'application/json',
47
+ 'User-Agent': 'google-api-nodejs-client/9.15.1',
48
+ 'X-Goog-Api-Client': 'google-cloud-sdk vscode_cloudshelleditor/0.1',
49
+ 'Client-Metadata': '{"ideType":"IDE_UNSPECIFIED","platform":"PLATFORM_UNSPECIFIED","pluginType":"GEMINI"}',
50
+ };
51
+ /** Headers for fetchAvailableModels (matches CLIProxyAPI antigravity_executor.go) */
52
+ const FETCHMODELS_HEADERS = {
53
+ 'Content-Type': 'application/json',
54
+ 'User-Agent': 'antigravity/1.104.0 darwin/arm64',
55
+ };
56
+ /**
57
+ * Sanitize email to match CLIProxyAPI auth file naming convention
58
+ * Replaces @ and . with underscores (matches Go sanitizeAntigravityFileName)
59
+ */
60
+ function sanitizeEmail(email) {
61
+ return email.replace(/@/g, '_').replace(/\./g, '_');
62
+ }
63
+ /**
64
+ * Check if token is expired based on the expired timestamp
65
+ */
66
+ function isTokenExpired(expiredStr) {
67
+ if (!expiredStr)
68
+ return false;
69
+ try {
70
+ const expiredDate = new Date(expiredStr);
71
+ return expiredDate.getTime() < Date.now();
72
+ }
73
+ catch {
74
+ return false;
75
+ }
76
+ }
77
+ /**
78
+ * Refresh access token using refresh_token via Google OAuth
79
+ * This allows CCS to get fresh tokens independently of CLIProxyAPI
80
+ */
81
+ async function refreshAccessToken(refreshToken) {
82
+ const controller = new AbortController();
83
+ const timeoutId = setTimeout(() => controller.abort(), 10000);
84
+ try {
85
+ const response = await fetch(GOOGLE_TOKEN_URL, {
86
+ method: 'POST',
87
+ signal: controller.signal,
88
+ headers: {
89
+ 'Content-Type': 'application/x-www-form-urlencoded',
90
+ },
91
+ body: new URLSearchParams({
92
+ grant_type: 'refresh_token',
93
+ refresh_token: refreshToken,
94
+ client_id: ANTIGRAVITY_CLIENT_ID,
95
+ client_secret: ANTIGRAVITY_CLIENT_SECRET,
96
+ }).toString(),
97
+ });
98
+ clearTimeout(timeoutId);
99
+ const data = (await response.json());
100
+ if (!response.ok || data.error) {
101
+ return {
102
+ accessToken: null,
103
+ error: data.error_description || data.error || `OAuth error: ${response.status}`,
104
+ };
105
+ }
106
+ if (!data.access_token) {
107
+ return { accessToken: null, error: 'No access_token in response' };
108
+ }
109
+ return { accessToken: data.access_token };
110
+ }
111
+ catch (err) {
112
+ clearTimeout(timeoutId);
113
+ if (err instanceof Error && err.name === 'AbortError') {
114
+ return { accessToken: null, error: 'Token refresh timeout' };
115
+ }
116
+ return { accessToken: null, error: err instanceof Error ? err.message : 'Unknown error' };
117
+ }
118
+ }
119
+ /**
120
+ * Read auth data from auth file (access token, project_id, expiry status)
121
+ */
122
+ function readAuthData(provider, accountId) {
123
+ const authDir = (0, config_generator_1.getAuthDir)();
124
+ // Check if auth directory exists
125
+ if (!fs.existsSync(authDir)) {
126
+ return null;
127
+ }
128
+ // Sanitize accountId (email) to match auth file naming: @ and . → _
129
+ const sanitizedId = sanitizeEmail(accountId);
130
+ const prefix = provider === 'agy' ? 'antigravity-' : `${provider}-`;
131
+ const expectedFile = `${prefix}${sanitizedId}.json`;
132
+ const filePath = path.join(authDir, expectedFile);
133
+ // Direct file access (most common case)
134
+ if (fs.existsSync(filePath)) {
135
+ try {
136
+ const content = fs.readFileSync(filePath, 'utf-8');
137
+ const data = JSON.parse(content);
138
+ if (!data.access_token)
139
+ return null;
140
+ return {
141
+ accessToken: data.access_token,
142
+ refreshToken: data.refresh_token || null,
143
+ projectId: data.project_id || null,
144
+ isExpired: isTokenExpired(data.expired),
145
+ expiresAt: data.expired || null,
146
+ };
147
+ }
148
+ catch {
149
+ return null;
150
+ }
151
+ }
152
+ // Fallback: scan directory for matching email in file content
153
+ const files = fs.readdirSync(authDir);
154
+ for (const file of files) {
155
+ if (file.startsWith(prefix) && file.endsWith('.json')) {
156
+ const candidatePath = path.join(authDir, file);
157
+ try {
158
+ const content = fs.readFileSync(candidatePath, 'utf-8');
159
+ const data = JSON.parse(content);
160
+ // Match by email field inside the auth file
161
+ if (data.email === accountId && data.access_token) {
162
+ return {
163
+ accessToken: data.access_token,
164
+ refreshToken: data.refresh_token || null,
165
+ projectId: data.project_id || null,
166
+ isExpired: isTokenExpired(data.expired),
167
+ expiresAt: data.expired || null,
168
+ };
169
+ }
170
+ }
171
+ catch {
172
+ continue;
173
+ }
174
+ }
175
+ }
176
+ return null;
177
+ }
178
+ /**
179
+ * Get project ID via loadCodeAssist endpoint
180
+ */
181
+ async function getProjectId(accessToken) {
182
+ const url = `${ANTIGRAVITY_API_BASE}/${ANTIGRAVITY_API_VERSION}:loadCodeAssist`;
183
+ const controller = new AbortController();
184
+ const timeoutId = setTimeout(() => controller.abort(), 5000);
185
+ try {
186
+ const response = await fetch(url, {
187
+ method: 'POST',
188
+ signal: controller.signal,
189
+ headers: {
190
+ ...LOADCODEASSIST_HEADERS,
191
+ Authorization: `Bearer ${accessToken}`,
192
+ },
193
+ body: JSON.stringify({
194
+ metadata: {
195
+ ideType: 'IDE_UNSPECIFIED',
196
+ platform: 'PLATFORM_UNSPECIFIED',
197
+ pluginType: 'GEMINI',
198
+ },
199
+ }),
200
+ });
201
+ clearTimeout(timeoutId);
202
+ if (!response.ok) {
203
+ // Return specific error based on status
204
+ if (response.status === 401) {
205
+ return { projectId: null, error: 'Token expired or invalid' };
206
+ }
207
+ if (response.status === 403) {
208
+ return { projectId: null, error: 'Access forbidden' };
209
+ }
210
+ return { projectId: null, error: `API error: ${response.status}` };
211
+ }
212
+ const data = (await response.json());
213
+ // Extract project ID from response
214
+ let projectId;
215
+ if (typeof data.cloudaicompanionProject === 'string') {
216
+ projectId = data.cloudaicompanionProject;
217
+ }
218
+ else if (typeof data.cloudaicompanionProject === 'object') {
219
+ projectId = data.cloudaicompanionProject?.id;
220
+ }
221
+ if (!projectId?.trim()) {
222
+ // Account authenticated but not provisioned - user needs to sign in via Antigravity app
223
+ return {
224
+ projectId: null,
225
+ error: 'Sign in to Antigravity app to activate quota.',
226
+ isUnprovisioned: true,
227
+ };
228
+ }
229
+ return { projectId: projectId.trim() };
230
+ }
231
+ catch (err) {
232
+ clearTimeout(timeoutId);
233
+ if (err instanceof Error && err.name === 'AbortError') {
234
+ return { projectId: null, error: 'Request timeout' };
235
+ }
236
+ return { projectId: null, error: err instanceof Error ? err.message : 'Unknown error' };
237
+ }
238
+ }
239
+ /**
240
+ * Fetch available models with quota info
241
+ * Note: projectId is kept for potential future use but not sent in body
242
+ * (CLIProxyAPI sends empty {} body for this endpoint)
243
+ */
244
+ async function fetchAvailableModels(accessToken, _projectId) {
245
+ const url = `${ANTIGRAVITY_API_BASE}/${ANTIGRAVITY_API_VERSION}:fetchAvailableModels`;
246
+ const controller = new AbortController();
247
+ const timeoutId = setTimeout(() => controller.abort(), 5000);
248
+ try {
249
+ // Match CLIProxyAPI exactly: empty body, minimal headers
250
+ const response = await fetch(url, {
251
+ method: 'POST',
252
+ signal: controller.signal,
253
+ headers: {
254
+ ...FETCHMODELS_HEADERS,
255
+ Authorization: `Bearer ${accessToken}`,
256
+ },
257
+ body: JSON.stringify({}),
258
+ });
259
+ clearTimeout(timeoutId);
260
+ if (response.status === 403) {
261
+ return {
262
+ success: false,
263
+ models: [],
264
+ lastUpdated: Date.now(),
265
+ isForbidden: true,
266
+ error: 'Quota access forbidden for this account',
267
+ };
268
+ }
269
+ if (response.status === 401) {
270
+ return {
271
+ success: false,
272
+ models: [],
273
+ lastUpdated: Date.now(),
274
+ error: 'Access token expired or invalid',
275
+ };
276
+ }
277
+ if (!response.ok) {
278
+ return {
279
+ success: false,
280
+ models: [],
281
+ lastUpdated: Date.now(),
282
+ error: `API error: ${response.status}`,
283
+ };
284
+ }
285
+ const data = (await response.json());
286
+ const models = [];
287
+ if (data.models && typeof data.models === 'object') {
288
+ for (const [modelId, modelData] of Object.entries(data.models)) {
289
+ const quotaInfo = modelData.quotaInfo || modelData.quota_info;
290
+ if (!quotaInfo)
291
+ continue;
292
+ // Extract remaining fraction (0-1 range)
293
+ const remaining = quotaInfo.remainingFraction ?? quotaInfo.remaining_fraction ?? quotaInfo.remaining;
294
+ // Skip invalid values (NaN, Infinity, non-numbers)
295
+ if (typeof remaining !== 'number' || !isFinite(remaining))
296
+ continue;
297
+ // Convert to percentage (0-100) and clamp to valid range
298
+ const percentage = Math.max(0, Math.min(100, Math.round(remaining * 100)));
299
+ // Extract reset time
300
+ const resetTime = quotaInfo.resetTime || quotaInfo.reset_time || null;
301
+ models.push({
302
+ name: modelId,
303
+ displayName: modelData.displayName,
304
+ percentage,
305
+ resetTime,
306
+ });
307
+ }
308
+ }
309
+ return {
310
+ success: true,
311
+ models,
312
+ lastUpdated: Date.now(),
313
+ };
314
+ }
315
+ catch (err) {
316
+ clearTimeout(timeoutId);
317
+ return {
318
+ success: false,
319
+ models: [],
320
+ lastUpdated: Date.now(),
321
+ error: err instanceof Error ? err.message : 'Unknown error',
322
+ };
323
+ }
324
+ }
325
+ /**
326
+ * Fetch quota for an Antigravity account
327
+ *
328
+ * @param provider - Provider name (only 'agy' supported)
329
+ * @param accountId - Account identifier (email)
330
+ * @returns Quota result with models and percentages
331
+ */
332
+ async function fetchAccountQuota(provider, accountId) {
333
+ // Only Antigravity supports quota fetching
334
+ if (provider !== 'agy') {
335
+ return {
336
+ success: false,
337
+ models: [],
338
+ lastUpdated: Date.now(),
339
+ error: `Quota not supported for provider: ${provider}`,
340
+ };
341
+ }
342
+ // Read auth data from auth file
343
+ const authData = readAuthData(provider, accountId);
344
+ if (!authData) {
345
+ return {
346
+ success: false,
347
+ models: [],
348
+ lastUpdated: Date.now(),
349
+ error: 'Auth file not found for account',
350
+ };
351
+ }
352
+ // Determine which access token to use
353
+ // File-based token is often stale (CLIProxyAPIPlus refreshes at runtime but doesn't persist)
354
+ // Proactive refresh: refresh 5 minutes before expiry (matches CLIProxyAPIPlus behavior)
355
+ let accessToken = authData.accessToken;
356
+ const REFRESH_LEAD_TIME_MS = 5 * 60 * 1000; // 5 minutes
357
+ if (authData.refreshToken) {
358
+ const shouldRefresh = authData.isExpired || // Already expired
359
+ !authData.expiresAt || // No expiry info - refresh to be safe
360
+ new Date(authData.expiresAt).getTime() - Date.now() < REFRESH_LEAD_TIME_MS; // Expiring soon
361
+ if (shouldRefresh) {
362
+ const refreshResult = await refreshAccessToken(authData.refreshToken);
363
+ if (refreshResult.accessToken) {
364
+ accessToken = refreshResult.accessToken;
365
+ }
366
+ // If refresh fails, fall back to existing token (might still work)
367
+ }
368
+ }
369
+ // Get project ID - prefer stored value, fallback to API call
370
+ let projectId = authData.projectId;
371
+ if (!projectId) {
372
+ let lastProjectResult = await getProjectId(accessToken);
373
+ if (!lastProjectResult.projectId) {
374
+ // If project ID fetch fails, it might be token issue - try refresh if we haven't
375
+ if (authData.refreshToken && accessToken === authData.accessToken) {
376
+ const refreshResult = await refreshAccessToken(authData.refreshToken);
377
+ if (refreshResult.accessToken) {
378
+ accessToken = refreshResult.accessToken;
379
+ lastProjectResult = await getProjectId(accessToken);
380
+ }
381
+ }
382
+ if (!lastProjectResult.projectId) {
383
+ return {
384
+ success: false,
385
+ models: [],
386
+ lastUpdated: Date.now(),
387
+ error: lastProjectResult.error || 'Failed to retrieve project ID',
388
+ isUnprovisioned: lastProjectResult.isUnprovisioned,
389
+ };
390
+ }
391
+ }
392
+ projectId = lastProjectResult.projectId;
393
+ }
394
+ // Fetch models with quota
395
+ const result = await fetchAvailableModels(accessToken, projectId);
396
+ // If quota fetch fails with auth error and we haven't refreshed yet, try refresh
397
+ if (!result.success && result.error?.includes('expired') && authData.refreshToken) {
398
+ const refreshResult = await refreshAccessToken(authData.refreshToken);
399
+ if (refreshResult.accessToken) {
400
+ return fetchAvailableModels(refreshResult.accessToken, projectId);
401
+ }
402
+ }
403
+ return result;
404
+ }
405
+ exports.fetchAccountQuota = fetchAccountQuota;
406
+ //# sourceMappingURL=quota-fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-fetcher.js","sourceRoot":"","sources":["../../src/cliproxy/quota-fetcher.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,10 @@ export interface CliproxyErrorLog {
79
79
  modified: number;
80
80
  /** Absolute path to the log file (injected by backend) */
81
81
  absolutePath?: string;
82
+ /** HTTP status code extracted from log (injected by backend) */
83
+ statusCode?: number;
84
+ /** Model name extracted from request body (injected by backend) */
85
+ model?: string;
82
86
  }
83
87
  /**
84
88
  * Fetch error log file list from CLIProxyAPI management API
@@ -1 +1 @@
1
- {"version":3,"file":"stats-fetcher.d.ts","sourceRoot":"","sources":["../../src/cliproxy/stats-fetcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,mCAAmC;IACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAChD,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AA2CD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA2GrF;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAQD,yCAAyC;AACzC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAsD/F;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAkC9F;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoCxB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBvE"}
1
+ {"version":3,"file":"stats-fetcher.d.ts","sourceRoot":"","sources":["../../src/cliproxy/stats-fetcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,mCAAmC;IACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAChD,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AA2CD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA2GrF;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAQD,yCAAyC;AACzC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAsD/F;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAkC9F;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoCxB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"stats-fetcher.js","sourceRoot":"","sources":["../../src/cliproxy/stats-fetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats-fetcher.js","sourceRoot":"","sources":["../../src/cliproxy/stats-fetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{j as e}from"./radix-ui-uXQB-q0u.js";import{r as p}from"./react-vendor-B_CU-WTZ.js";import{a as D,u as b,b as N,d as A,f as y,g as T}from"./tanstack-Coed0rqz.js";import{c as m,ad as f,a as d,_ as k,$ as R,a0 as S,a1 as z,a2 as P,L as C,I as _}from"./index-QeBLfRj8.js";import{A as q,a as F,b as K,c as L,d as M,e as $,f as E,g as H}from"./alert-dialog-zpnBn2CA.js";import{t as u}from"./notifications-dJQY2-U6.js";import{R as O,j,a9 as Q,t as I,l as v,O as B}from"./icons-CwFZAiDB.js";import"./utils-CzKF5WmX.js";import"./form-utils-kUVlZZAO.js";import"./code-highlight-DKN39ySy.js";function U({className:t,...s}){return e.jsx("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:e.jsx("table",{"data-slot":"table",className:m("w-full caption-bottom text-sm",t),...s})})}function V({className:t,...s}){return e.jsx("thead",{"data-slot":"table-header",className:m("[&_tr]:border-b",t),...s})}function Z({className:t,...s}){return e.jsx("tbody",{"data-slot":"table-body",className:m("[&_tr:last-child]:border-0",t),...s})}function w({className:t,...s}){return e.jsx("tr",{"data-slot":"table-row",className:m("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",t),...s})}function G({className:t,...s}){return e.jsx("th",{"data-slot":"table-head",className:m("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...s})}function J({className:t,...s}){return e.jsx("td",{"data-slot":"table-cell",className:m("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...s})}function W(){return D({queryKey:["accounts"],queryFn:()=>f.accounts.list()})}function X(){const t=b();return N({mutationFn:s=>f.accounts.setDefault(s),onSuccess:(s,l)=>{t.invalidateQueries({queryKey:["accounts"]}),u.success(`Default account set to "${l}"`)},onError:s=>{u.error(s.message)}})}function Y(){const t=b();return N({mutationFn:()=>f.accounts.resetDefault(),onSuccess:()=>{t.invalidateQueries({queryKey:["accounts"]}),u.success("Default account reset to CCS")},onError:s=>{u.error(s.message)}})}function ee(){const t=b();return N({mutationFn:s=>f.accounts.delete(s),onSuccess:(s,l)=>{t.invalidateQueries({queryKey:["accounts"]}),u.success(`Account "${l}" deleted`)},onError:s=>{u.error(s.message)}})}function se({data:t,defaultAccount:s}){const l=X(),i=ee(),r=Y(),[c,o]=p.useState(null),x=A({data:t,columns:[{accessorKey:"name",header:"Name",size:200,cell:({row:a})=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium",children:a.original.name}),a.original.name===s&&e.jsx("span",{className:"text-xs bg-primary/10 text-primary px-1.5 py-0.5 rounded border border-primary/20",children:"default"})]})},{accessorKey:"type",header:"Type",size:100,cell:({row:a})=>e.jsx("span",{className:"capitalize text-muted-foreground",children:a.original.type||"oauth"})},{accessorKey:"created",header:"Created",size:150,cell:({row:a})=>{const n=new Date(a.original.created);return e.jsx("span",{className:"text-muted-foreground",children:n.toLocaleDateString()})}},{accessorKey:"last_used",header:"Last Used",size:150,cell:({row:a})=>{if(!a.original.last_used)return e.jsx("span",{className:"text-muted-foreground/50",children:"-"});const n=new Date(a.original.last_used);return e.jsx("span",{className:"text-muted-foreground",children:n.toLocaleDateString()})}},{id:"actions",header:"Actions",size:180,cell:({row:a})=>{const n=a.original.name===s,h=l.isPending||i.isPending;return e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsxs(d,{variant:n?"secondary":"default",size:"sm",className:"h-8 px-2",disabled:n||h,onClick:()=>l.mutate(a.original.name),children:[e.jsx(j,{className:`w-3 h-3 mr-1 ${n?"opacity-50":""}`}),n?"Active":"Set Default"]}),e.jsx(d,{variant:"ghost",size:"sm",className:"h-8 px-2 text-destructive hover:text-destructive hover:bg-destructive/10",disabled:n||h,onClick:()=>o(a.original.name),title:n?"Cannot delete default account":"Delete account",children:e.jsx(Q,{className:"w-4 h-4"})})]})}}],getCoreRowModel:T()});return t.length===0?e.jsxs("div",{className:"text-center py-8 text-muted-foreground",children:["No accounts found. Use"," ",e.jsx("code",{className:"text-sm bg-muted px-1 rounded",children:"ccs auth create"})," to add accounts."]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"border rounded-md",children:e.jsxs(U,{children:[e.jsx(V,{children:x.getHeaderGroups().map(a=>e.jsx(w,{children:a.headers.map(n=>{const h={name:"w-[200px]",type:"w-[100px]",created:"w-[150px]",last_used:"w-[150px]",actions:"w-[180px]"}[n.id]||"w-auto";return e.jsx(G,{className:h,children:n.isPlaceholder?null:y(n.column.columnDef.header,n.getContext())},n.id)})},a.id))}),e.jsx(Z,{children:x.getRowModel().rows.map(a=>e.jsx(w,{children:a.getVisibleCells().map(n=>e.jsx(J,{children:y(n.column.columnDef.cell,n.getContext())},n.id))},a.id))})]})}),s&&e.jsx("div",{className:"flex justify-end",children:e.jsxs(d,{variant:"outline",size:"sm",onClick:()=>r.mutate(),disabled:r.isPending,children:[e.jsx(O,{className:"w-4 h-4 mr-2"}),"Reset to CCS Default"]})})]}),e.jsx(q,{open:!!c,onOpenChange:a=>!a&&o(null),children:e.jsxs(F,{children:[e.jsxs(K,{children:[e.jsx(L,{children:"Delete Account"}),e.jsxs(M,{children:['Are you sure you want to delete the account "',c,'"? This will remove the profile and all its session data. This action cannot be undone.']})]}),e.jsxs($,{children:[e.jsx(E,{children:"Cancel"}),e.jsx(H,{className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",onClick:()=>{c&&(i.mutate(c),o(null))},children:"Delete"})]})]})})]})}function te({open:t,onClose:s}){const[l,i]=p.useState(""),[r,c]=p.useState(!1),o=/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(l),g=l?`ccs auth create ${l}`:"ccs auth create <name>",x=async()=>{o&&(await navigator.clipboard.writeText(g),c(!0),setTimeout(()=>c(!1),2e3))},a=()=>{i(""),c(!1),s()};return e.jsx(k,{open:t,onOpenChange:n=>!n&&a(),children:e.jsxs(R,{className:"sm:max-w-md",children:[e.jsxs(S,{children:[e.jsx(z,{children:"Create New Account"}),e.jsx(P,{children:"Auth profiles require Claude CLI login. Run the command below in your terminal."})]}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(C,{htmlFor:"profile-name",children:"Profile Name"}),e.jsx(_,{id:"profile-name",value:l,onChange:n=>i(n.target.value),placeholder:"e.g., work, personal, client",autoComplete:"off"}),l&&!o&&e.jsx("p",{className:"text-xs text-destructive",children:"Name must start with a letter and contain only letters, numbers, dashes, or underscores."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(C,{children:"Command"}),e.jsxs("div",{className:"flex items-center gap-2 p-3 bg-muted rounded-md font-mono text-sm",children:[e.jsx(I,{className:"w-4 h-4 text-muted-foreground shrink-0"}),e.jsx("code",{className:"flex-1 break-all",children:g}),e.jsx(d,{variant:"ghost",size:"sm",className:"shrink-0 h-8 px-2",onClick:x,disabled:!o,children:r?e.jsx(j,{className:"w-4 h-4 text-green-500"}):e.jsx(v,{className:"w-4 h-4"})})]})]}),e.jsxs("div",{className:"text-sm text-muted-foreground space-y-1",children:[e.jsx("p",{children:"After running the command:"}),e.jsxs("ol",{className:"list-decimal list-inside pl-2 space-y-0.5",children:[e.jsx("li",{children:"Complete the Claude login in your browser"}),e.jsx("li",{children:"Return here and refresh to see the new account"})]})]}),e.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[e.jsx(d,{variant:"ghost",onClick:a,children:"Close"}),e.jsx(d,{onClick:x,disabled:!o,children:r?e.jsxs(e.Fragment,{children:[e.jsx(j,{className:"w-4 h-4 mr-2"}),"Copied!"]}):e.jsxs(e.Fragment,{children:[e.jsx(v,{className:"w-4 h-4 mr-2"}),"Copy Command"]})})]})]})]})})}function xe(){const{data:t,isLoading:s,refetch:l}=W(),[i,r]=p.useState(!1);return e.jsxs("div",{className:"p-6 max-w-6xl mx-auto space-y-8",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Accounts"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"Manage multi-account Claude sessions (profiles.json)"})]}),e.jsxs(d,{onClick:()=>r(!0),children:[e.jsx(B,{className:"w-4 h-4 mr-2"}),"Create Account"]})]}),s?e.jsx("div",{className:"text-muted-foreground",children:"Loading accounts..."}):e.jsx(se,{data:t?.accounts||[],defaultAccount:t?.default??null,onRefresh:l}),e.jsx(te,{open:i,onClose:()=>r(!1)})]})}export{xe as AccountsPage};
@@ -1 +1 @@
1
- import{j as e,a0 as s,a1 as r,a2 as n,a3 as i,a4 as d,a5 as c,a6 as u,a7 as f}from"./radix-ui-uXQB-q0u.js";import"./react-vendor-B_CU-WTZ.js";import{c as o,an as l}from"./index-D-LYJymx.js";function A({...a}){return e.jsx(s,{"data-slot":"alert-dialog",...a})}function g({...a}){return e.jsx(u,{"data-slot":"alert-dialog-portal",...a})}function m({className:a,...t}){return e.jsx(f,{"data-slot":"alert-dialog-overlay",className:o("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...t})}function D({className:a,...t}){return e.jsxs(g,{children:[e.jsx(m,{}),e.jsx(r,{"data-slot":"alert-dialog-content",className:o("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",a),...t})]})}function b({className:a,...t}){return e.jsx("div",{"data-slot":"alert-dialog-header",className:o("flex flex-col gap-2 text-center sm:text-left",a),...t})}function N({className:a,...t}){return e.jsx("div",{"data-slot":"alert-dialog-footer",className:o("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...t})}function v({className:a,...t}){return e.jsx(n,{"data-slot":"alert-dialog-title",className:o("text-lg font-semibold",a),...t})}function w({className:a,...t}){return e.jsx(i,{"data-slot":"alert-dialog-description",className:o("text-muted-foreground text-sm",a),...t})}function y({className:a,...t}){return e.jsx(c,{className:o(l(),a),...t})}function z({className:a,...t}){return e.jsx(d,{className:o(l({variant:"outline"}),a),...t})}export{A,D as a,b,v as c,w as d,N as e,z as f,y as g};
1
+ import{j as e,a0 as s,a1 as r,a2 as n,a3 as i,a4 as d,a5 as c,a6 as u,a7 as f}from"./radix-ui-uXQB-q0u.js";import"./react-vendor-B_CU-WTZ.js";import{c as o,at as l}from"./index-QeBLfRj8.js";function A({...a}){return e.jsx(s,{"data-slot":"alert-dialog",...a})}function g({...a}){return e.jsx(u,{"data-slot":"alert-dialog-portal",...a})}function m({className:a,...t}){return e.jsx(f,{"data-slot":"alert-dialog-overlay",className:o("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...t})}function D({className:a,...t}){return e.jsxs(g,{children:[e.jsx(m,{}),e.jsx(r,{"data-slot":"alert-dialog-content",className:o("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",a),...t})]})}function b({className:a,...t}){return e.jsx("div",{"data-slot":"alert-dialog-header",className:o("flex flex-col gap-2 text-center sm:text-left",a),...t})}function N({className:a,...t}){return e.jsx("div",{"data-slot":"alert-dialog-footer",className:o("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...t})}function v({className:a,...t}){return e.jsx(n,{"data-slot":"alert-dialog-title",className:o("text-lg font-semibold",a),...t})}function w({className:a,...t}){return e.jsx(i,{"data-slot":"alert-dialog-description",className:o("text-muted-foreground text-sm",a),...t})}function y({className:a,...t}){return e.jsx(c,{className:o(l(),a),...t})}function z({className:a,...t}){return e.jsx(d,{className:o(l({variant:"outline"}),a),...t})}export{A,D as a,b,v as c,w as d,N as e,z as f,y as g};