@kaitranntt/ccs 7.8.0 → 7.9.0-dev.1
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.
- package/dist/api/services/profile-reader.js +3 -3
- package/dist/api/services/profile-reader.js.map +1 -1
- package/dist/api/services/profile-writer.js +1 -1
- package/dist/api/services/profile-writer.js.map +1 -1
- package/dist/ccs.js +17 -8
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/auth/auth-types.d.ts +2 -0
- package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
- package/dist/cliproxy/auth/kiro-import.d.ts +23 -0
- package/dist/cliproxy/auth/kiro-import.d.ts.map +1 -0
- package/dist/cliproxy/auth/kiro-import.js +140 -0
- package/dist/cliproxy/auth/kiro-import.js.map +1 -0
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +10 -0
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-process.js +25 -4
- package/dist/cliproxy/auth/oauth-process.js.map +1 -1
- package/dist/cliproxy/binary-manager.d.ts.map +1 -1
- package/dist/cliproxy/binary-manager.js +21 -0
- package/dist/cliproxy/binary-manager.js.map +1 -1
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +59 -4
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/dist/cliproxy/config-generator.d.ts +3 -2
- package/dist/cliproxy/config-generator.d.ts.map +1 -1
- package/dist/cliproxy/config-generator.js +6 -5
- package/dist/cliproxy/config-generator.js.map +1 -1
- package/dist/cliproxy/index.d.ts +3 -1
- package/dist/cliproxy/index.d.ts.map +1 -1
- package/dist/cliproxy/index.js +5 -3
- package/dist/cliproxy/index.js.map +1 -1
- package/dist/cliproxy/openai-compat-manager.js +2 -2
- package/dist/cliproxy/openai-compat-manager.js.map +1 -1
- package/dist/cliproxy/proxy-detector.d.ts +2 -0
- package/dist/cliproxy/proxy-detector.d.ts.map +1 -1
- package/dist/cliproxy/proxy-detector.js +7 -2
- package/dist/cliproxy/proxy-detector.js.map +1 -1
- package/dist/cliproxy/quota-fetcher.d.ts +46 -0
- package/dist/cliproxy/quota-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/quota-fetcher.js +406 -0
- package/dist/cliproxy/quota-fetcher.js.map +1 -0
- package/dist/cliproxy/services/variant-config-adapter.js +2 -2
- package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
- package/dist/cliproxy/session-tracker.d.ts +13 -1
- package/dist/cliproxy/session-tracker.d.ts.map +1 -1
- package/dist/cliproxy/session-tracker.js +65 -2
- package/dist/cliproxy/session-tracker.js.map +1 -1
- package/dist/cliproxy/stats-fetcher.d.ts +4 -0
- package/dist/cliproxy/stats-fetcher.d.ts.map +1 -1
- package/dist/cliproxy/stats-fetcher.js.map +1 -1
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +3 -1
- package/dist/commands/help-command.js.map +1 -1
- package/dist/management/checks/cliproxy-check.js +1 -1
- package/dist/management/checks/cliproxy-check.js.map +1 -1
- package/dist/types/config.d.ts +4 -4
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/ui/assets/accounts-CmzZXhfc.js +1 -0
- package/dist/ui/assets/alert-dialog-zpnBn2CA.js +1 -0
- package/dist/ui/assets/api-DFbZVPK4.js +1 -0
- package/dist/ui/assets/auth-section-YgJ7Cv--.js +1 -0
- package/dist/ui/assets/{card-BrSGmssG.js → card-dTUi3LxW.js} +1 -1
- package/dist/ui/assets/cliproxy-CsqKCFzj.js +3 -0
- package/dist/ui/assets/cliproxy-control-panel-BRCh_7b3.js +1 -0
- package/dist/ui/assets/confirm-dialog-ByfOsjk9.js +1 -0
- package/dist/ui/assets/copilot-BQscualu.js +4 -0
- package/dist/ui/assets/globalenv-section-BEpPTvKo.js +1 -0
- package/dist/ui/assets/{health-mnF1gWAc.js → health-DTRd-dXk.js} +1 -1
- package/dist/ui/assets/icons-CwFZAiDB.js +1 -0
- package/dist/ui/assets/index-BLoAjpcw.js +1 -0
- package/dist/ui/assets/{index-Buv2h9oP.js → index-Bfwze8tN.js} +1 -1
- package/dist/ui/assets/index-CEZrgkam.js +1 -0
- package/dist/ui/assets/index-QeBLfRj8.js +47 -0
- package/dist/ui/assets/index-oS2cgEFl.css +1 -0
- package/dist/ui/assets/{shared-B9w3h6Sd.js → shared-BgDSyHKz.js} +1 -1
- package/dist/ui/assets/{switch-CRxPpAN8.js → switch-B0PXGFIv.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/utils/config-manager.d.ts +15 -1
- package/dist/utils/config-manager.d.ts.map +1 -1
- package/dist/utils/config-manager.js +87 -13
- package/dist/utils/config-manager.js.map +1 -1
- package/dist/utils/port-utils.d.ts +8 -0
- package/dist/utils/port-utils.d.ts.map +1 -1
- package/dist/utils/port-utils.js +21 -1
- package/dist/utils/port-utils.js.map +1 -1
- package/dist/web-server/health/cliproxy-checks.js +1 -1
- package/dist/web-server/health/cliproxy-checks.js.map +1 -1
- package/dist/web-server/overview-routes.js +1 -1
- package/dist/web-server/overview-routes.js.map +1 -1
- package/dist/web-server/routes/account-routes.d.ts.map +1 -1
- package/dist/web-server/routes/account-routes.js +43 -0
- package/dist/web-server/routes/account-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.js +47 -0
- package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.js +91 -7
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
- package/dist/web-server/routes/route-helpers.d.ts +2 -1
- package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
- package/dist/web-server/routes/route-helpers.js +3 -2
- package/dist/web-server/routes/route-helpers.js.map +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/accounts-SAhf2aVn.js +0 -1
- package/dist/ui/assets/api-DgjYmgeK.js +0 -1
- package/dist/ui/assets/auth-section-c488oSia.js +0 -1
- package/dist/ui/assets/cliproxy-DagVtdBM.js +0 -3
- package/dist/ui/assets/cliproxy-control-panel-CqFvwaNM.js +0 -1
- package/dist/ui/assets/confirm-dialog-B0FsZkP6.js +0 -1
- package/dist/ui/assets/copilot-Bccuuvux.js +0 -4
- package/dist/ui/assets/globalenv-section-Bli-EFPP.js +0 -1
- package/dist/ui/assets/icons-DBie6Tez.js +0 -1
- package/dist/ui/assets/index-B38yaYR3.js +0 -1
- package/dist/ui/assets/index-CytnH70K.css +0 -1
- package/dist/ui/assets/index-mn6heIpP.js +0 -1
- package/dist/ui/assets/index-t5yDkLoB.js +0 -47
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-detector.js","sourceRoot":"","sources":["../../src/cliproxy/proxy-detector.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"proxy-detector.js","sourceRoot":"","sources":["../../src/cliproxy/proxy-detector.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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"}
|
|
@@ -46,7 +46,7 @@ function variantExistsInConfig(name) {
|
|
|
46
46
|
const config = (0, unified_config_loader_1.loadOrCreateUnifiedConfig)();
|
|
47
47
|
return !!(config.cliproxy?.variants && name in config.cliproxy.variants);
|
|
48
48
|
}
|
|
49
|
-
const config = (0, config_manager_1.
|
|
49
|
+
const config = (0, config_manager_1.loadConfigSafe)();
|
|
50
50
|
return !!(config.cliproxy && name in config.cliproxy);
|
|
51
51
|
}
|
|
52
52
|
catch {
|
|
@@ -98,7 +98,7 @@ function listVariantsFromConfig() {
|
|
|
98
98
|
}
|
|
99
99
|
return result;
|
|
100
100
|
}
|
|
101
|
-
const config = (0, config_manager_1.
|
|
101
|
+
const config = (0, config_manager_1.loadConfigSafe)();
|
|
102
102
|
const variants = config.cliproxy || {};
|
|
103
103
|
const result = {};
|
|
104
104
|
for (const name of Object.keys(variants)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variant-config-adapter.js","sourceRoot":"","sources":["../../../src/cliproxy/services/variant-config-adapter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,+
|
|
1
|
+
{"version":3,"file":"variant-config-adapter.js","sourceRoot":"","sources":["../../../src/cliproxy/services/variant-config-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,8 @@ interface SessionLock {
|
|
|
19
19
|
pid: number;
|
|
20
20
|
sessions: string[];
|
|
21
21
|
startedAt: string;
|
|
22
|
+
/** CLIProxy version running (added for version mismatch detection) */
|
|
23
|
+
version?: string;
|
|
22
24
|
}
|
|
23
25
|
/** Get path to session lock file (default port) - kept for future use */
|
|
24
26
|
declare function _getSessionLockPath(): string;
|
|
@@ -34,9 +36,12 @@ export declare function getExistingProxy(port: number): SessionLock | null;
|
|
|
34
36
|
/**
|
|
35
37
|
* Register a new session with the proxy.
|
|
36
38
|
* Call this when starting a new CCS session that will use an existing proxy.
|
|
39
|
+
* @param port Port the proxy is running on
|
|
40
|
+
* @param proxyPid PID of the proxy process
|
|
41
|
+
* @param version Optional CLIProxy version (stored when spawning new proxy)
|
|
37
42
|
* @returns Session ID for this session
|
|
38
43
|
*/
|
|
39
|
-
export declare function registerSession(port: number, proxyPid: number): string;
|
|
44
|
+
export declare function registerSession(port: number, proxyPid: number, version?: string): string;
|
|
40
45
|
/**
|
|
41
46
|
* Unregister a session from the proxy.
|
|
42
47
|
* @param sessionId Session ID to unregister
|
|
@@ -81,5 +86,12 @@ export declare function getProxyStatus(port?: number): {
|
|
|
81
86
|
pid?: number;
|
|
82
87
|
sessionCount?: number;
|
|
83
88
|
startedAt?: string;
|
|
89
|
+
version?: string;
|
|
84
90
|
};
|
|
91
|
+
/**
|
|
92
|
+
* Get the version of the running proxy from session lock.
|
|
93
|
+
* @param port Port to check (defaults to CLIPROXY_DEFAULT_PORT)
|
|
94
|
+
* @returns Version string if available, null otherwise
|
|
95
|
+
*/
|
|
96
|
+
export declare function getRunningProxyVersion(port?: number): string | null;
|
|
85
97
|
//# sourceMappingURL=session-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-tracker.d.ts","sourceRoot":"","sources":["../../src/cliproxy/session-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,kCAAkC;AAClC,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session-tracker.d.ts","sourceRoot":"","sources":["../../src/cliproxy/session-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,kCAAkC;AAClC,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAeD,yEAAyE;AACzE,iBAAS,mBAAmB,IAAI,MAAM,CAErC;AAGD,OAAO,EAAE,mBAAmB,IAAI,kBAAkB,EAAE,CAAC;AAGrD,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAwCpC,iDAAiD;AACjD,iBAAS,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CASpD;AAyCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAmBjE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBxF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CA6C3E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,MAA8B,GAAG,MAAM,CAM5E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAA8B,GAAG,OAAO,CAa/E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAe1D;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,GAAE,MAA8B,GAAG,OAAO,CAAC;IAC7E,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAkFD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,MAA8B,GAAG;IACpE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAqBA;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,MAA8B,GAAG,MAAM,GAAG,IAAI,CAa1F"}
|