@metyatech/ai-quota 0.9.5 → 1.0.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.
- package/README.md +12 -51
- package/dist/claude.d.ts +1 -1
- package/dist/claude.d.ts.map +1 -1
- package/dist/claude.js +42 -16
- package/dist/claude.js.map +1 -1
- package/dist/cli.js +8 -26
- package/dist/cli.js.map +1 -1
- package/dist/codex.d.ts +4 -12
- package/dist/codex.d.ts.map +1 -1
- package/dist/codex.js +92 -177
- package/dist/codex.js.map +1 -1
- package/dist/copilot.d.ts.map +1 -1
- package/dist/copilot.js +16 -4
- package/dist/copilot.js.map +1 -1
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +21 -0
- package/dist/errors.js.map +1 -0
- package/dist/gemini.d.ts +2 -9
- package/dist/gemini.d.ts.map +1 -1
- package/dist/gemini.js +130 -94
- package/dist/gemini.js.map +1 -1
- package/dist/human-output.d.ts.map +1 -1
- package/dist/human-output.js +23 -34
- package/dist/human-output.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -39
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +1 -1
- package/dist/mcp.js.map +1 -1
- package/dist/types.d.ts +1 -17
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/amazon-q.d.ts +0 -63
- package/dist/amazon-q.d.ts.map +0 -1
- package/dist/amazon-q.js +0 -114
- package/dist/amazon-q.js.map +0 -1
package/dist/codex.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { readFile
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
|
-
|
|
5
|
-
// Internal helpers
|
|
6
|
-
// ---------------------------------------------------------------------------
|
|
4
|
+
import { QuotaFetchError } from "./errors.js";
|
|
7
5
|
function resolveCodexHome(codexHome) {
|
|
8
6
|
return codexHome ?? join(homedir(), ".codex");
|
|
9
7
|
}
|
|
@@ -47,12 +45,8 @@ function clampPercent(value) {
|
|
|
47
45
|
return 0;
|
|
48
46
|
return Math.min(Math.max(value, 0), 100);
|
|
49
47
|
}
|
|
50
|
-
// ---------------------------------------------------------------------------
|
|
51
|
-
// Public conversion utility
|
|
52
|
-
// ---------------------------------------------------------------------------
|
|
53
48
|
/**
|
|
54
|
-
* Converts a raw `RateLimitSnapshot`
|
|
55
|
-
* API) into a structured `CodexStatus` with labelled usage windows.
|
|
49
|
+
* Converts a raw `RateLimitSnapshot` into a structured `CodexStatus` with labelled usage windows.
|
|
56
50
|
*/
|
|
57
51
|
export function rateLimitSnapshotToStatus(snapshot, now = new Date()) {
|
|
58
52
|
const candidates = [
|
|
@@ -112,115 +106,45 @@ export function rateLimitSnapshotToStatus(snapshot, now = new Date()) {
|
|
|
112
106
|
resetText: weeklyCandidate.data.resetAt.toISOString()
|
|
113
107
|
});
|
|
114
108
|
}
|
|
115
|
-
|
|
116
|
-
return null;
|
|
117
|
-
return {
|
|
118
|
-
windows,
|
|
119
|
-
credits: null,
|
|
120
|
-
raw: JSON.stringify(snapshot)
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
function convertJsonlRateLimits(entry, now) {
|
|
124
|
-
const convertWindow = (w) => {
|
|
125
|
-
if (!w || typeof w !== "object")
|
|
126
|
-
return null;
|
|
127
|
-
const used = w.used_percent ?? w.usedPercent;
|
|
128
|
-
if (typeof used !== "number")
|
|
129
|
-
return null;
|
|
130
|
-
return {
|
|
131
|
-
used_percent: used,
|
|
132
|
-
window_minutes: w.window_minutes ?? w.window_duration_minutes ?? w.windowDurationMins ?? null,
|
|
133
|
-
resets_at: w.resets_at ??
|
|
134
|
-
w.resetsAt ??
|
|
135
|
-
(typeof w.resets_in_seconds === "number"
|
|
136
|
-
? Math.floor(now.getTime() / 1000) + w.resets_in_seconds
|
|
137
|
-
: null)
|
|
138
|
-
};
|
|
139
|
-
};
|
|
140
|
-
return {
|
|
141
|
-
primary: convertWindow(entry.primary),
|
|
142
|
-
secondary: convertWindow(entry.secondary)
|
|
143
|
-
};
|
|
109
|
+
return { windows, credits: typeof snapshot.credits === "number" ? snapshot.credits : null, raw: "" };
|
|
144
110
|
}
|
|
145
|
-
async function
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const entries = await readdir(dayDir);
|
|
157
|
-
const jsonlFiles = entries.filter((f) => f.endsWith(".jsonl"));
|
|
158
|
-
if (jsonlFiles.length === 0)
|
|
159
|
-
continue;
|
|
160
|
-
// Sort by modification time (newest first)
|
|
161
|
-
const withStats = await Promise.all(jsonlFiles.map(async (f) => {
|
|
162
|
-
const fullPath = join(dayDir, f);
|
|
163
|
-
try {
|
|
164
|
-
const s = await stat(fullPath);
|
|
165
|
-
return { name: f, mtimeMs: s.mtimeMs };
|
|
166
|
-
}
|
|
167
|
-
catch {
|
|
168
|
-
return { name: f, mtimeMs: 0 };
|
|
169
|
-
}
|
|
170
|
-
}));
|
|
171
|
-
withStats.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
172
|
-
files = withStats.map((f) => join(dayDir, f.name));
|
|
173
|
-
}
|
|
174
|
-
catch {
|
|
175
|
-
continue;
|
|
176
|
-
}
|
|
177
|
-
for (const filePath of files) {
|
|
178
|
-
let content;
|
|
179
|
-
try {
|
|
180
|
-
content = await readFile(filePath, "utf8");
|
|
181
|
-
}
|
|
182
|
-
catch {
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
const lines = content.split("\n");
|
|
186
|
-
for (let i = lines.length - 1; i >= 0; i--) {
|
|
187
|
-
const line = lines[i].trim();
|
|
188
|
-
if (!line || !line.startsWith("{"))
|
|
189
|
-
continue;
|
|
190
|
-
try {
|
|
191
|
-
const obj = JSON.parse(line);
|
|
192
|
-
const payload = obj.payload;
|
|
193
|
-
if (!payload || payload.type !== "token_count")
|
|
194
|
-
continue;
|
|
195
|
-
const rateLimits = payload.rate_limits ?? payload.info?.rate_limits;
|
|
196
|
-
if (!rateLimits)
|
|
197
|
-
continue;
|
|
198
|
-
const result = convertJsonlRateLimits(rateLimits, now);
|
|
199
|
-
if (result && (result.primary || result.secondary)) {
|
|
200
|
-
return result;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
catch {
|
|
204
|
-
continue;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
111
|
+
async function readAuthJson(authPath) {
|
|
112
|
+
let raw;
|
|
113
|
+
try {
|
|
114
|
+
raw = await readFile(authPath, "utf8");
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
const code = e?.code;
|
|
118
|
+
if (code === "ENOENT") {
|
|
119
|
+
throw new QuotaFetchError("no_credentials", `Codex auth.json not found at ${authPath}`, {
|
|
120
|
+
cause: e
|
|
121
|
+
});
|
|
207
122
|
}
|
|
123
|
+
throw new QuotaFetchError("api_error", `Failed to read Codex auth.json at ${authPath}`, { cause: e });
|
|
208
124
|
}
|
|
209
|
-
return null;
|
|
210
|
-
}
|
|
211
|
-
async function fetchCodexRateLimitsFromApi(codexHome, timeoutMs, timingSink) {
|
|
212
|
-
const authPath = join(codexHome, "auth.json");
|
|
213
|
-
let auth;
|
|
214
125
|
try {
|
|
215
|
-
|
|
216
|
-
auth = JSON.parse(raw);
|
|
126
|
+
return JSON.parse(raw);
|
|
217
127
|
}
|
|
218
|
-
catch {
|
|
219
|
-
|
|
128
|
+
catch (e) {
|
|
129
|
+
throw new QuotaFetchError("parse_error", `Failed to parse Codex auth.json at ${authPath}`, {
|
|
130
|
+
cause: e
|
|
131
|
+
});
|
|
220
132
|
}
|
|
133
|
+
}
|
|
134
|
+
function reasonFromHttpStatus(status) {
|
|
135
|
+
if (status === 401 || status === 403)
|
|
136
|
+
return "auth_failed";
|
|
137
|
+
if (status === 404 || status === 410)
|
|
138
|
+
return "endpoint_changed";
|
|
139
|
+
return "api_error";
|
|
140
|
+
}
|
|
141
|
+
async function fetchCodexRateLimitsFromApi(codexHome, timeoutMs, timingSink) {
|
|
142
|
+
const authPath = join(codexHome, "auth.json");
|
|
143
|
+
const auth = await readAuthJson(authPath);
|
|
221
144
|
const accessToken = auth?.tokens?.access_token;
|
|
222
|
-
if (!accessToken)
|
|
223
|
-
|
|
145
|
+
if (!accessToken) {
|
|
146
|
+
throw new QuotaFetchError("no_credentials", `Codex access_token missing in ${authPath}`);
|
|
147
|
+
}
|
|
224
148
|
const accountId = auth?.tokens?.account_id ?? auth?.account_id;
|
|
225
149
|
const headers = {
|
|
226
150
|
Authorization: `Bearer ${accessToken}`,
|
|
@@ -230,91 +154,82 @@ async function fetchCodexRateLimitsFromApi(codexHome, timeoutMs, timingSink) {
|
|
|
230
154
|
headers["chatgpt-account-id"] = accountId;
|
|
231
155
|
}
|
|
232
156
|
const controller = new AbortController();
|
|
233
|
-
const timer = setTimeout(() =>
|
|
234
|
-
controller.abort();
|
|
235
|
-
}, timeoutMs);
|
|
157
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
236
158
|
const apiStart = Date.now();
|
|
159
|
+
let response;
|
|
160
|
+
let bodyText = "";
|
|
237
161
|
try {
|
|
238
|
-
|
|
162
|
+
response = await fetch("https://chatgpt.com/backend-api/wham/usage", {
|
|
239
163
|
method: "GET",
|
|
240
164
|
headers,
|
|
241
165
|
signal: controller.signal
|
|
242
166
|
});
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
167
|
+
bodyText = await response.text();
|
|
168
|
+
}
|
|
169
|
+
catch (e) {
|
|
170
|
+
if (e instanceof Error && e.name === "AbortError") {
|
|
171
|
+
throw new QuotaFetchError("timeout", "Codex usage request timed out.", { cause: e });
|
|
172
|
+
}
|
|
173
|
+
throw new QuotaFetchError("network_error", "Codex usage request failed.", { cause: e });
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
clearTimeout(timer);
|
|
246
177
|
if (timingSink) {
|
|
247
178
|
timingSink("api", Date.now() - apiStart);
|
|
248
179
|
}
|
|
249
|
-
|
|
250
|
-
|
|
180
|
+
}
|
|
181
|
+
if (!response.ok) {
|
|
182
|
+
const reason = reasonFromHttpStatus(response.status);
|
|
183
|
+
throw new QuotaFetchError(reason, `Codex usage request failed (${response.status} ${response.statusText}).`, { httpStatus: response.status });
|
|
184
|
+
}
|
|
185
|
+
let data = null;
|
|
186
|
+
try {
|
|
187
|
+
data = bodyText.trim() ? JSON.parse(bodyText) : null;
|
|
188
|
+
}
|
|
189
|
+
catch (e) {
|
|
190
|
+
throw new QuotaFetchError("parse_error", "Codex usage response was not valid JSON.", { cause: e });
|
|
191
|
+
}
|
|
192
|
+
if (!data || typeof data !== "object") {
|
|
193
|
+
throw new QuotaFetchError("parse_error", "Codex usage response missing JSON object.");
|
|
194
|
+
}
|
|
195
|
+
const record = data;
|
|
196
|
+
const rateLimits = record["rate_limits"];
|
|
197
|
+
if (!rateLimits || typeof rateLimits !== "object") {
|
|
198
|
+
throw new QuotaFetchError("parse_error", "Codex usage response missing rate_limits.");
|
|
199
|
+
}
|
|
200
|
+
const now = new Date();
|
|
201
|
+
const nowSecs = Math.floor(now.getTime() / 1000);
|
|
202
|
+
const rl = rateLimits;
|
|
203
|
+
const convertApiWindow = (w) => {
|
|
204
|
+
if (typeof w !== "object" || w === null)
|
|
251
205
|
return null;
|
|
252
|
-
const
|
|
253
|
-
const
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
const ww = w;
|
|
259
|
-
const usedPercent = ww["used_percent"];
|
|
260
|
-
if (typeof usedPercent !== "number")
|
|
261
|
-
return null;
|
|
262
|
-
const limitWindowSeconds = ww["limit_window_seconds"];
|
|
263
|
-
const resetAfterSeconds = ww["reset_after_seconds"];
|
|
264
|
-
return {
|
|
265
|
-
used_percent: usedPercent,
|
|
266
|
-
windowDurationMins: typeof limitWindowSeconds === "number" ? limitWindowSeconds / 60 : null,
|
|
267
|
-
resetsAt: typeof resetAfterSeconds === "number" ? nowSecs + resetAfterSeconds : null
|
|
268
|
-
};
|
|
269
|
-
};
|
|
206
|
+
const ww = w;
|
|
207
|
+
const usedPercent = ww["used_percent"];
|
|
208
|
+
if (typeof usedPercent !== "number")
|
|
209
|
+
return null;
|
|
210
|
+
const limitWindowSeconds = ww["limit_window_seconds"];
|
|
211
|
+
const resetAfterSeconds = ww["reset_after_seconds"];
|
|
270
212
|
return {
|
|
271
|
-
|
|
272
|
-
|
|
213
|
+
used_percent: usedPercent,
|
|
214
|
+
windowDurationMins: typeof limitWindowSeconds === "number" ? limitWindowSeconds / 60 : null,
|
|
215
|
+
resetsAt: typeof resetAfterSeconds === "number" ? nowSecs + resetAfterSeconds : null
|
|
273
216
|
};
|
|
217
|
+
};
|
|
218
|
+
const primary = convertApiWindow(rl["primary"]);
|
|
219
|
+
const secondary = convertApiWindow(rl["secondary"]);
|
|
220
|
+
if (!primary && !secondary) {
|
|
221
|
+
throw new QuotaFetchError("parse_error", "Codex usage response missing primary/secondary windows.");
|
|
274
222
|
}
|
|
275
|
-
|
|
276
|
-
return null;
|
|
277
|
-
}
|
|
278
|
-
finally {
|
|
279
|
-
clearTimeout(timer);
|
|
280
|
-
}
|
|
223
|
+
return { primary, secondary };
|
|
281
224
|
}
|
|
282
|
-
// ---------------------------------------------------------------------------
|
|
283
|
-
// Main export
|
|
284
|
-
// ---------------------------------------------------------------------------
|
|
285
225
|
/**
|
|
286
|
-
* Fetches Codex (ChatGPT) rate limit data.
|
|
226
|
+
* Fetches Codex (ChatGPT) rate limit data from the remote ChatGPT backend API.
|
|
287
227
|
*
|
|
288
|
-
*
|
|
289
|
-
* 1. Reads the most recent JSONL session file from `~/.codex/sessions/`.
|
|
290
|
-
* This is the fastest method and handles both modern and legacy log formats.
|
|
291
|
-
* 2. If no session data is found, it attempts to call the ChatGPT backend API
|
|
292
|
-
* using the access token found in `~/.codex/auth.json`.
|
|
293
|
-
*
|
|
294
|
-
* @param options - Configuration for file paths and timeouts
|
|
295
|
-
* @returns A promise resolving to a RateLimitSnapshot or null if no source is available
|
|
228
|
+
* Reads credentials from `~/.codex/auth.json` and calls the `/backend-api/wham/usage` endpoint.
|
|
296
229
|
*/
|
|
297
230
|
export async function fetchCodexRateLimits(options) {
|
|
298
|
-
const totalStart = Date.now();
|
|
299
231
|
const codexHome = resolveCodexHome(options?.codexHome);
|
|
300
232
|
const timeoutSeconds = options?.timeoutSeconds ?? 20;
|
|
301
|
-
|
|
302
|
-
const sessionsStart = Date.now();
|
|
303
|
-
const now = new Date();
|
|
304
|
-
const sessionResult = await readCodexRateLimitsFromSessions(codexHome, now);
|
|
305
|
-
if (timingSink) {
|
|
306
|
-
timingSink("sessions", Date.now() - sessionsStart);
|
|
307
|
-
}
|
|
308
|
-
if (sessionResult !== null) {
|
|
309
|
-
if (timingSink) {
|
|
310
|
-
timingSink("total", Date.now() - totalStart);
|
|
311
|
-
}
|
|
312
|
-
return sessionResult;
|
|
313
|
-
}
|
|
314
|
-
const apiResult = await fetchCodexRateLimitsFromApi(codexHome, timeoutSeconds * 1000, timingSink);
|
|
315
|
-
if (timingSink) {
|
|
316
|
-
timingSink("total", Date.now() - totalStart);
|
|
317
|
-
}
|
|
318
|
-
return apiResult;
|
|
233
|
+
return fetchCodexRateLimitsFromApi(codexHome, timeoutSeconds * 1000, options?.timingSink);
|
|
319
234
|
}
|
|
320
235
|
//# sourceMappingURL=codex.js.map
|
package/dist/codex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"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"}
|
package/dist/copilot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../src/copilot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../src/copilot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,OAAe,GAAG,MAAM,GAAG,IAAI,CA0CvE;AAKD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA4BF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,IAAiB,GAAG,YAAY,GAAG,IAAI,CA8BhG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,GAAG,GAAE,IAAiB,GACrB,YAAY,GAAG,IAAI,CA6BrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,EACtC,GAAG,GAAE,IAAiB,GACrB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgE9B"}
|
package/dist/copilot.js
CHANGED
|
@@ -2,6 +2,7 @@ import fs from "node:fs";
|
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { execSync } from "node:child_process";
|
|
5
|
+
import { QuotaFetchError } from "./errors.js";
|
|
5
6
|
/**
|
|
6
7
|
* Resolves a GitHub Copilot token from environment variables,
|
|
7
8
|
* local GitHub CLI configuration files, or the 'gh' CLI command.
|
|
@@ -189,7 +190,12 @@ export async function fetchCopilotRateLimits(options, now = new Date()) {
|
|
|
189
190
|
const headerUsage = headerValue ? parseCopilotQuotaHeader(headerValue, now) : null;
|
|
190
191
|
const bodyText = await response.text();
|
|
191
192
|
if (!response.ok) {
|
|
192
|
-
|
|
193
|
+
const reason = response.status === 401 || response.status === 403
|
|
194
|
+
? "auth_failed"
|
|
195
|
+
: response.status === 404 || response.status === 410
|
|
196
|
+
? "endpoint_changed"
|
|
197
|
+
: "api_error";
|
|
198
|
+
throw new QuotaFetchError(reason, `Copilot user info request failed (${response.status} ${response.statusText}).`, { httpStatus: response.status });
|
|
193
199
|
}
|
|
194
200
|
let parsed = null;
|
|
195
201
|
if (bodyText.trim()) {
|
|
@@ -201,13 +207,19 @@ export async function fetchCopilotRateLimits(options, now = new Date()) {
|
|
|
201
207
|
}
|
|
202
208
|
}
|
|
203
209
|
const usage = parseCopilotUserInfo(parsed, now);
|
|
204
|
-
|
|
210
|
+
const out = usage ?? headerUsage;
|
|
211
|
+
if (!out) {
|
|
212
|
+
throw new QuotaFetchError("parse_error", "Copilot API response missing quota fields.");
|
|
213
|
+
}
|
|
214
|
+
return out;
|
|
205
215
|
}
|
|
206
216
|
catch (error) {
|
|
217
|
+
if (error instanceof QuotaFetchError)
|
|
218
|
+
throw error;
|
|
207
219
|
if (error instanceof Error && error.name === "AbortError") {
|
|
208
|
-
throw new
|
|
220
|
+
throw new QuotaFetchError("timeout", "Copilot user info request timed out.", { cause: error });
|
|
209
221
|
}
|
|
210
|
-
throw error;
|
|
222
|
+
throw new QuotaFetchError("network_error", "Copilot user info request failed.", { cause: error });
|
|
211
223
|
}
|
|
212
224
|
finally {
|
|
213
225
|
clearTimeout(timeout);
|
package/dist/copilot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../src/copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../src/copilot.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ErrorReason } from "./types.js";
|
|
2
|
+
export declare class QuotaFetchError extends Error {
|
|
3
|
+
readonly reason: ErrorReason;
|
|
4
|
+
readonly httpStatus?: number;
|
|
5
|
+
constructor(reason: ErrorReason, message: string, options?: {
|
|
6
|
+
httpStatus?: number;
|
|
7
|
+
cause?: unknown;
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
export declare function isQuotaFetchError(e: unknown): e is QuotaFetchError;
|
|
11
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAG3B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CASrD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAKlE"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export class QuotaFetchError extends Error {
|
|
2
|
+
reason;
|
|
3
|
+
httpStatus;
|
|
4
|
+
constructor(reason, message, options) {
|
|
5
|
+
// Node 18 supports ErrorOptions, but keep this compatible even if it's ignored.
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
+
super(message, options);
|
|
8
|
+
this.name = "QuotaFetchError";
|
|
9
|
+
this.reason = reason;
|
|
10
|
+
this.httpStatus = options?.httpStatus;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function isQuotaFetchError(e) {
|
|
14
|
+
if (e instanceof QuotaFetchError)
|
|
15
|
+
return true;
|
|
16
|
+
if (!e || typeof e !== "object")
|
|
17
|
+
return false;
|
|
18
|
+
const r = e;
|
|
19
|
+
return r.name === "QuotaFetchError" && typeof r.reason === "string";
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,MAAM,CAAc;IACpB,UAAU,CAAU;IAE7B,YACE,MAAmB,EACnB,OAAe,EACf,OAAkD;QAElD,gFAAgF;QAChF,8DAA8D;QAC9D,KAAK,CAAC,OAAO,EAAE,OAAc,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IACxC,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC1C,IAAI,CAAC,YAAY,eAAe;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAyC,CAAC;IACpD,OAAO,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC;AACtE,CAAC"}
|
package/dist/gemini.d.ts
CHANGED
|
@@ -3,14 +3,7 @@ export type { GeminiUsage, GeminiModelUsage } from "./types.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Fetches Gemini quota usage from the Cloud Code Assist API.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* 1. Reads credentials from `~/.gemini/oauth_creds.json`.
|
|
8
|
-
* 2. Automatically refreshes the access token if it's missing or expired.
|
|
9
|
-
* 3. Calls the `loadCodeAssist` API to identify the active project.
|
|
10
|
-
* 4. Calls the `retrieveUserQuota` API to get the actual usage metrics.
|
|
11
|
-
*
|
|
12
|
-
* @returns A promise resolving to GeminiUsage or null if the process fails.
|
|
13
|
-
* The returned object contains per-model usage data for Pro and Flash models.
|
|
6
|
+
* @param timeoutMs - Per-request timeout in milliseconds (default: 10000ms)
|
|
14
7
|
*/
|
|
15
|
-
export declare function fetchGeminiRateLimits(): Promise<GeminiUsage
|
|
8
|
+
export declare function fetchGeminiRateLimits(timeoutMs?: number): Promise<GeminiUsage>;
|
|
16
9
|
//# sourceMappingURL=gemini.d.ts.map
|
package/dist/gemini.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../src/gemini.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../src/gemini.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA+PhE;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,GAAE,MAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAiG3F"}
|