@metyatech/ai-quota 0.9.3 → 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 +19 -57
- 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 +13 -38
- 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 +16 -0
- package/dist/human-output.d.ts.map +1 -0
- package/dist/human-output.js +247 -0
- package/dist/human-output.js.map +1 -0
- 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 +4 -4
- 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/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EACV,aAAa,EASd,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,eAAO,MAAM,gBAAgB,mDAAoD,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAS/D;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAEzF;AAGD,mBAAmB,YAAY,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,2BAA2B,EAC5B,MAAM,YAAY,CAAC;AAgDpB;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IACjD,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgJzB"}
|
package/dist/index.js
CHANGED
|
@@ -1,27 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @metyatech/ai-quota
|
|
3
3
|
*
|
|
4
|
-
* Quota / rate-limit fetching SDK for Claude, Gemini, Copilot,
|
|
4
|
+
* Quota / rate-limit fetching SDK for Claude, Gemini, Copilot, and Codex.
|
|
5
5
|
*/
|
|
6
|
-
import os from "node:os";
|
|
7
6
|
import { fetchClaudeRateLimits } from "./claude.js";
|
|
8
7
|
import { fetchGeminiRateLimits } from "./gemini.js";
|
|
9
8
|
import { fetchCopilotRateLimits, getCopilotToken } from "./copilot.js";
|
|
10
|
-
import { fetchAmazonQRateLimits, resolveAmazonQUsageStatePath, DEFAULT_AMAZON_Q_MONTHLY_LIMIT } from "./amazon-q.js";
|
|
11
9
|
import { fetchCodexRateLimits, rateLimitSnapshotToStatus } from "./codex.js";
|
|
12
10
|
import { formatResetIn } from "./utils.js";
|
|
11
|
+
import { isQuotaFetchError } from "./errors.js";
|
|
13
12
|
// ---------------------------------------------------------------------------
|
|
14
13
|
// Exports
|
|
15
14
|
// ---------------------------------------------------------------------------
|
|
16
15
|
/**
|
|
17
16
|
* List of AI agent identifiers supported by this SDK.
|
|
18
17
|
*/
|
|
19
|
-
export const SUPPORTED_AGENTS = ["claude", "gemini", "copilot", "
|
|
18
|
+
export const SUPPORTED_AGENTS = ["claude", "gemini", "copilot", "codex"];
|
|
20
19
|
const AGENT_TO_SDK_KEY = {
|
|
21
20
|
claude: "claude",
|
|
22
21
|
gemini: "gemini",
|
|
23
22
|
copilot: "copilot",
|
|
24
|
-
"amazon-q": "amazonQ",
|
|
25
23
|
codex: "codex"
|
|
26
24
|
};
|
|
27
25
|
/**
|
|
@@ -38,7 +36,6 @@ export { runMcpServer } from "./mcp.js";
|
|
|
38
36
|
export { fetchClaudeRateLimits } from "./claude.js";
|
|
39
37
|
export { fetchGeminiRateLimits } from "./gemini.js";
|
|
40
38
|
export { fetchCopilotRateLimits, parseCopilotUserInfo, parseCopilotQuotaHeader, getCopilotToken } from "./copilot.js";
|
|
41
|
-
export { fetchAmazonQRateLimits, recordAmazonQUsage, loadAmazonQUsageState, saveAmazonQUsageState, resolveAmazonQUsageStatePath, DEFAULT_AMAZON_Q_MONTHLY_LIMIT } from "./amazon-q.js";
|
|
42
39
|
export { fetchCodexRateLimits, rateLimitSnapshotToStatus } from "./codex.js";
|
|
43
40
|
// ---------------------------------------------------------------------------
|
|
44
41
|
// High-level Orchestration API Implementation
|
|
@@ -51,12 +48,18 @@ const DEFAULT_SKIPPED_RESULT = {
|
|
|
51
48
|
display: "skipped"
|
|
52
49
|
};
|
|
53
50
|
function classifyError(e) {
|
|
51
|
+
if (isQuotaFetchError(e)) {
|
|
52
|
+
return { reason: e.reason, message: e.message };
|
|
53
|
+
}
|
|
54
54
|
const msg = e instanceof Error ? e.message : String(e);
|
|
55
55
|
let reason = "unknown";
|
|
56
56
|
if (msg.includes("credentials not found") || msg.includes("no credentials")) {
|
|
57
57
|
reason = "no_credentials";
|
|
58
58
|
}
|
|
59
|
-
else if (msg.includes("expired")
|
|
59
|
+
else if (msg.includes("expired")) {
|
|
60
|
+
reason = "token_expired";
|
|
61
|
+
}
|
|
62
|
+
else if (msg.includes("401") || msg.includes("403") || msg.includes("Forbidden")) {
|
|
60
63
|
reason = "auth_failed";
|
|
61
64
|
}
|
|
62
65
|
else if (msg.includes("timeout") || msg.includes("AbortError")) {
|
|
@@ -70,6 +73,16 @@ function classifyError(e) {
|
|
|
70
73
|
}
|
|
71
74
|
return { reason, message: msg };
|
|
72
75
|
}
|
|
76
|
+
function statusForReason(reason) {
|
|
77
|
+
if (reason === "no_credentials" || reason === "token_expired")
|
|
78
|
+
return "no-data";
|
|
79
|
+
return "error";
|
|
80
|
+
}
|
|
81
|
+
function displayForFailure(status, reason, message) {
|
|
82
|
+
if (status === "no-data")
|
|
83
|
+
return `no data (${reason})`;
|
|
84
|
+
return message ? `error (${reason}): ${message}` : `error (${reason})`;
|
|
85
|
+
}
|
|
73
86
|
/**
|
|
74
87
|
* Fetches quota/usage for specified agents (or all by default) using default credential discovery.
|
|
75
88
|
*
|
|
@@ -88,7 +101,7 @@ export async function fetchAllRateLimits(options) {
|
|
|
88
101
|
try {
|
|
89
102
|
const data = await fetchClaudeRateLimits(timeout * 1000);
|
|
90
103
|
if (!data)
|
|
91
|
-
return { status: "no-data", data: null, reason: "
|
|
104
|
+
return { status: "no-data", data: null, reason: "unknown", error: null, display: "no data (unknown)" };
|
|
92
105
|
const buckets = [];
|
|
93
106
|
if (data.five_hour) {
|
|
94
107
|
const resetIn = formatResetIn(new Date(data.five_hour.resets_at));
|
|
@@ -102,14 +115,22 @@ export async function fetchAllRateLimits(options) {
|
|
|
102
115
|
}
|
|
103
116
|
catch (e) {
|
|
104
117
|
const { reason, message } = classifyError(e);
|
|
105
|
-
|
|
118
|
+
const status = statusForReason(reason);
|
|
119
|
+
return {
|
|
120
|
+
status,
|
|
121
|
+
data: null,
|
|
122
|
+
reason,
|
|
123
|
+
error: status === "error" ? message : null,
|
|
124
|
+
rawError: e,
|
|
125
|
+
display: displayForFailure(status, reason, status === "error" ? message : null)
|
|
126
|
+
};
|
|
106
127
|
}
|
|
107
128
|
},
|
|
108
129
|
gemini: async () => {
|
|
109
130
|
try {
|
|
110
|
-
const data = await fetchGeminiRateLimits();
|
|
131
|
+
const data = await fetchGeminiRateLimits(timeout * 1000);
|
|
111
132
|
if (!data)
|
|
112
|
-
return { status: "no-data", data: null, reason: "
|
|
133
|
+
return { status: "no-data", data: null, reason: "unknown", error: null, display: "no data (unknown)" };
|
|
113
134
|
const models = [];
|
|
114
135
|
const seen = new Set();
|
|
115
136
|
for (const [modelId, usage] of Object.entries(data)) {
|
|
@@ -126,55 +147,49 @@ export async function fetchAllRateLimits(options) {
|
|
|
126
147
|
}
|
|
127
148
|
catch (e) {
|
|
128
149
|
const { reason, message } = classifyError(e);
|
|
129
|
-
|
|
150
|
+
const status = statusForReason(reason);
|
|
151
|
+
return {
|
|
152
|
+
status,
|
|
153
|
+
data: null,
|
|
154
|
+
reason,
|
|
155
|
+
error: status === "error" ? message : null,
|
|
156
|
+
rawError: e,
|
|
157
|
+
display: displayForFailure(status, reason, status === "error" ? message : null)
|
|
158
|
+
};
|
|
130
159
|
}
|
|
131
160
|
},
|
|
132
161
|
copilot: async () => {
|
|
133
162
|
try {
|
|
134
163
|
const token = getCopilotToken(verbose);
|
|
135
164
|
if (!token)
|
|
136
|
-
return { status: "no-data", data: null, reason: "no_credentials", error: null, display: "
|
|
165
|
+
return { status: "no-data", data: null, reason: "no_credentials", error: null, display: "no data (no_credentials)" };
|
|
137
166
|
const data = await fetchCopilotRateLimits({ token, timeoutSeconds: timeout });
|
|
138
167
|
if (!data)
|
|
139
|
-
return { status: "
|
|
168
|
+
return { status: "error", data: null, reason: "parse_error", error: "Copilot API response missing quota fields.", display: "error (parse_error)" };
|
|
140
169
|
const usedPercent = Math.round(100 - data.percentRemaining);
|
|
141
170
|
return { status: "ok", data, reason: null, error: null, display: `${usedPercent}% used (resets in ${formatResetIn(data.resetAt)})` };
|
|
142
171
|
}
|
|
143
172
|
catch (e) {
|
|
144
173
|
const { reason, message } = classifyError(e);
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
"amazon-q": async () => {
|
|
149
|
-
try {
|
|
150
|
-
const envPath = process.env.AMAZON_Q_STATE_PATH;
|
|
151
|
-
const statePath = envPath ? envPath : resolveAmazonQUsageStatePath(os.homedir());
|
|
152
|
-
const envLimit = process.env.AMAZON_Q_MONTHLY_LIMIT;
|
|
153
|
-
const limit = envLimit ? parseInt(envLimit, 10) : DEFAULT_AMAZON_Q_MONTHLY_LIMIT;
|
|
154
|
-
const finalLimit = isNaN(limit) ? DEFAULT_AMAZON_Q_MONTHLY_LIMIT : limit;
|
|
155
|
-
const data = fetchAmazonQRateLimits(statePath, finalLimit);
|
|
156
|
-
const usedPercent = data.limit <= 0 ? 0 : Math.min(100, Math.max(0, Math.round((data.used / data.limit) * 100)));
|
|
174
|
+
const status = statusForReason(reason);
|
|
157
175
|
return {
|
|
158
|
-
status
|
|
159
|
-
data,
|
|
160
|
-
reason
|
|
161
|
-
error: null,
|
|
162
|
-
|
|
176
|
+
status,
|
|
177
|
+
data: null,
|
|
178
|
+
reason,
|
|
179
|
+
error: status === "error" ? message : null,
|
|
180
|
+
rawError: e,
|
|
181
|
+
display: displayForFailure(status, reason, status === "error" ? message : null)
|
|
163
182
|
};
|
|
164
183
|
}
|
|
165
|
-
catch (e) {
|
|
166
|
-
const { reason, message } = classifyError(e);
|
|
167
|
-
return { status: "error", data: null, reason, error: message, rawError: e, display: `error: ${reason}` };
|
|
168
|
-
}
|
|
169
184
|
},
|
|
170
185
|
codex: async () => {
|
|
171
186
|
try {
|
|
172
187
|
const data = await fetchCodexRateLimits({ timeoutSeconds: timeout });
|
|
173
188
|
if (!data)
|
|
174
|
-
return { status: "no-data", data: null, reason: "
|
|
189
|
+
return { status: "no-data", data: null, reason: "unknown", error: null, display: "no data (unknown)" };
|
|
175
190
|
const status = rateLimitSnapshotToStatus(data);
|
|
176
191
|
if (!status || status.windows.length === 0)
|
|
177
|
-
return { status: "
|
|
192
|
+
return { status: "error", data, reason: "parse_error", error: "Codex usage windows missing.", display: "error (parse_error)" };
|
|
178
193
|
const disp = status.windows
|
|
179
194
|
.map((w) => `${w.label}: ${Math.round(100 - w.percentLeft)}% used (resets in ${formatResetIn(w.resetAt)})`)
|
|
180
195
|
.join(", ");
|
|
@@ -182,7 +197,15 @@ export async function fetchAllRateLimits(options) {
|
|
|
182
197
|
}
|
|
183
198
|
catch (e) {
|
|
184
199
|
const { reason, message } = classifyError(e);
|
|
185
|
-
|
|
200
|
+
const status = statusForReason(reason);
|
|
201
|
+
return {
|
|
202
|
+
status,
|
|
203
|
+
data: null,
|
|
204
|
+
reason,
|
|
205
|
+
error: status === "error" ? message : null,
|
|
206
|
+
rawError: e,
|
|
207
|
+
display: displayForFailure(status, reason, status === "error" ? message : null)
|
|
208
|
+
};
|
|
186
209
|
}
|
|
187
210
|
}
|
|
188
211
|
};
|
|
@@ -191,7 +214,6 @@ export async function fetchAllRateLimits(options) {
|
|
|
191
214
|
claude: DEFAULT_SKIPPED_RESULT,
|
|
192
215
|
gemini: DEFAULT_SKIPPED_RESULT,
|
|
193
216
|
copilot: DEFAULT_SKIPPED_RESULT,
|
|
194
|
-
amazonQ: DEFAULT_SKIPPED_RESULT,
|
|
195
217
|
codex: DEFAULT_SKIPPED_RESULT
|
|
196
218
|
};
|
|
197
219
|
const results = await Promise.all(agentsToFetch.map(async (name) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp.js
CHANGED
|
@@ -19,7 +19,7 @@ async function getQuotaMarkdown(agent) {
|
|
|
19
19
|
markdown = `### Current AI Agent Quotas\n**Status: ${all.summary.status.toUpperCase()}** - ${all.summary.message}\n\n| Agent | Status | Usage/Limit |\n| :--- | :--- | :--- |\n`;
|
|
20
20
|
markdown += Object.entries(all)
|
|
21
21
|
.filter(([k]) => k !== "summary")
|
|
22
|
-
.map(([k, v]) => `| ${k
|
|
22
|
+
.map(([k, v]) => `| ${k} | ${v.status} | ${v.display} |`)
|
|
23
23
|
.join("\n");
|
|
24
24
|
}
|
|
25
25
|
return markdown;
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAkB,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjG,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0BxC,KAAK,UAAU,gBAAgB,CAAC,KAAc;IAC5C,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC;QACnC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAuB,CAAC,CAAC,CAAC,CAAC,SAAS;KACtD,CAAC,CAAC;IAEH,IAAI,QAAgB,CAAC;IACrB,IAAI,KAAK,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,aAAa,CAAC,KAAuB,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,QAAQ,GAAG,iBAAiB,KAAK,mEAAmE,KAAK,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,IAAI,CAAC;IACjJ,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,0CAA0C,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,gEAAgE,CAAC;QACjL,QAAQ,IAAK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAiE;aAC7F,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -105,21 +105,6 @@ export type CopilotUsage = {
|
|
|
105
105
|
/** Raw response data for debugging */
|
|
106
106
|
raw: unknown;
|
|
107
107
|
};
|
|
108
|
-
/**
|
|
109
|
-
* Usage snapshot for Amazon Q Developer.
|
|
110
|
-
*/
|
|
111
|
-
export type AmazonQUsageSnapshot = {
|
|
112
|
-
/** Number of requests used in the current period */
|
|
113
|
-
used: number;
|
|
114
|
-
/** Total requests allowed per period */
|
|
115
|
-
limit: number;
|
|
116
|
-
/** Percentage of quota remaining (0-100) */
|
|
117
|
-
percentRemaining: number;
|
|
118
|
-
/** Date when the limit is expected to reset */
|
|
119
|
-
resetAt: Date;
|
|
120
|
-
/** Key identifying the current usage period (e.g., "2026-02") */
|
|
121
|
-
periodKey: string;
|
|
122
|
-
};
|
|
123
108
|
/**
|
|
124
109
|
* Status of an agent fetch operation.
|
|
125
110
|
*/
|
|
@@ -127,7 +112,7 @@ export type AgentStatus = "ok" | "no-data" | "error";
|
|
|
127
112
|
/**
|
|
128
113
|
* Standard error reasons for a failed fetch operation.
|
|
129
114
|
*/
|
|
130
|
-
export type ErrorReason = "auth_failed" | "network_error" | "api_error" | "no_credentials" | "timeout" | "unknown";
|
|
115
|
+
export type ErrorReason = "auth_failed" | "network_error" | "api_error" | "no_credentials" | "token_expired" | "timeout" | "endpoint_changed" | "parse_error" | "unknown";
|
|
131
116
|
/**
|
|
132
117
|
* Generic result wrapper for a single agent's quota information.
|
|
133
118
|
*/
|
|
@@ -163,7 +148,6 @@ export type AllRateLimits = {
|
|
|
163
148
|
claude: QuotaResult<ClaudeUsageData>;
|
|
164
149
|
gemini: QuotaResult<GeminiUsage>;
|
|
165
150
|
copilot: QuotaResult<CopilotUsage>;
|
|
166
|
-
amazonQ: QuotaResult<AmazonQUsageSnapshot>;
|
|
167
151
|
codex: QuotaResult<RateLimitSnapshot>;
|
|
168
152
|
};
|
|
169
153
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4DAA4D;IAC5D,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,mDAAmD;IACnD,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAMF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,sCAAsC;IACtC,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,qCAAqC;IACrC,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,6CAA6C;IAC7C,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C,iEAAiE;IACjE,WAAW,EAAE;QACX,UAAU,EAAE,OAAO,CAAC;QACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI,CAAC;CACV,CAAC;AAMF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,sBAAsB,CAAC,EAAE,gBAAgB,CAAC;IAC1C,wBAAwB,CAAC,EAAE,gBAAgB,CAAC;IAC5C,wCAAwC;IACxC,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CACjD,CAAC;AAMF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,OAAO,EAAE,IAAI,CAAC;IACd,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,cAAc,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,sCAAsC;IACtC,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAMF;;GAEG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metyatech/ai-quota",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "AI agent quota/rate-limit fetching library and CLI for Claude, Gemini, Copilot,
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "AI agent quota/rate-limit fetching library and CLI for Claude, Gemini, Copilot, and Codex",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"bin": {
|
|
10
|
-
"ai-quota": "
|
|
10
|
+
"ai-quota": "dist/cli.js"
|
|
11
11
|
},
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"repository": {
|
|
25
25
|
"type": "git",
|
|
26
|
-
"url": "https://github.com/metyatech/ai-quota.git"
|
|
26
|
+
"url": "git+https://github.com/metyatech/ai-quota.git"
|
|
27
27
|
},
|
|
28
28
|
"bugs": {
|
|
29
29
|
"url": "https://github.com/metyatech/ai-quota/issues"
|
package/dist/amazon-q.d.ts
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import type { AmazonQUsageSnapshot } from "./types.js";
|
|
2
|
-
export type { AmazonQUsageSnapshot } from "./types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Default monthly request limit for the Amazon Q Developer free tier.
|
|
5
|
-
* As of February 2026, this is 50 requests per month.
|
|
6
|
-
*/
|
|
7
|
-
export declare const DEFAULT_AMAZON_Q_MONTHLY_LIMIT = 50;
|
|
8
|
-
/**
|
|
9
|
-
* NOTE: Amazon Q Developer (free tier) does not provide a public API for
|
|
10
|
-
* querying usage or quota programmatically (as of February 2026). There is
|
|
11
|
-
* no official AWS SDK method, REST endpoint, or CLI command that returns
|
|
12
|
-
* the number of agentic requests consumed against the 50-requests/month
|
|
13
|
-
* free-tier limit for Builder ID users.
|
|
14
|
-
*
|
|
15
|
-
* The approach used here — a local JSON counter file — is therefore the
|
|
16
|
-
* best available strategy. Callers must record each Amazon Q invocation
|
|
17
|
-
* with `recordAmazonQUsage` to keep the counter accurate.
|
|
18
|
-
*
|
|
19
|
-
* If AWS publishes an official API in the future, this file should be
|
|
20
|
-
* updated to call it (with the local counter as a fallback).
|
|
21
|
-
*/
|
|
22
|
-
type AmazonQUsageState = {
|
|
23
|
-
periodKey: string;
|
|
24
|
-
used: number;
|
|
25
|
-
updatedAt: string;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Resolves the default state file path for the Amazon Q usage counter.
|
|
29
|
-
*
|
|
30
|
-
* @param workdirRoot - The root directory of the agent-runner working directory.
|
|
31
|
-
*/
|
|
32
|
-
export declare function resolveAmazonQUsageStatePath(workdirRoot: string): string;
|
|
33
|
-
/**
|
|
34
|
-
* Loads the Amazon Q usage state from disk.
|
|
35
|
-
*
|
|
36
|
-
* Returns a fresh zeroed state when the file does not exist or when the
|
|
37
|
-
* stored period key does not match the current month (auto-reset).
|
|
38
|
-
*/
|
|
39
|
-
export declare function loadAmazonQUsageState(statePath: string, now?: Date): AmazonQUsageState;
|
|
40
|
-
/**
|
|
41
|
-
* Persists Amazon Q usage state to disk.
|
|
42
|
-
*/
|
|
43
|
-
export declare function saveAmazonQUsageState(statePath: string, state: AmazonQUsageState): void;
|
|
44
|
-
/**
|
|
45
|
-
* Increments the local Amazon Q usage counter by `count` (default 1) and
|
|
46
|
-
* persists the updated state.
|
|
47
|
-
*
|
|
48
|
-
* Call this once per Amazon Q invocation to keep the counter accurate.
|
|
49
|
-
*/
|
|
50
|
-
export declare function recordAmazonQUsage(statePath: string, count?: number, now?: Date): AmazonQUsageState;
|
|
51
|
-
/**
|
|
52
|
-
* Reads the local counter and returns a quota snapshot for Amazon Q Developer.
|
|
53
|
-
*
|
|
54
|
-
* Since Amazon Q does not provide a public usage API, this function relies
|
|
55
|
-
* on a local JSON state file updated by the calling application.
|
|
56
|
-
*
|
|
57
|
-
* @param statePath - Path to the local usage state JSON file
|
|
58
|
-
* @param monthlyLimit - The configured monthly request limit (e.g., 50)
|
|
59
|
-
* @param now - Reference date for parsing (default: current system time)
|
|
60
|
-
* @returns A snapshot of the current local usage counter
|
|
61
|
-
*/
|
|
62
|
-
export declare function fetchAmazonQRateLimits(statePath: string, monthlyLimit: number, now?: Date): AmazonQUsageSnapshot;
|
|
63
|
-
//# sourceMappingURL=amazon-q.d.ts.map
|
package/dist/amazon-q.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"amazon-q.d.ts","sourceRoot":"","sources":["../src/amazon-q.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD;;;;;;;;;;;;;GAaG;AAEH,KAAK,iBAAiB,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAiBF;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,IAAiB,GACrB,iBAAiB,CAkCnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAGvF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAU,EACjB,GAAG,GAAE,IAAiB,GACrB,iBAAiB,CAUnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,GAAG,GAAE,IAAiB,GACrB,oBAAoB,CAetB"}
|
package/dist/amazon-q.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
/**
|
|
4
|
-
* Default monthly request limit for the Amazon Q Developer free tier.
|
|
5
|
-
* As of February 2026, this is 50 requests per month.
|
|
6
|
-
*/
|
|
7
|
-
export const DEFAULT_AMAZON_Q_MONTHLY_LIMIT = 50;
|
|
8
|
-
function resolveMonthlyPeriodKey(now) {
|
|
9
|
-
const year = now.getUTCFullYear();
|
|
10
|
-
const month = now.getUTCMonth() + 1;
|
|
11
|
-
return `${year}-${String(month).padStart(2, "0")}`;
|
|
12
|
-
}
|
|
13
|
-
function resolveNextMonthlyResetAt(now) {
|
|
14
|
-
return new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth() + 1, 1, 0, 0, 0, 0));
|
|
15
|
-
}
|
|
16
|
-
function normalizeUsed(value) {
|
|
17
|
-
if (typeof value !== "number" || !Number.isFinite(value))
|
|
18
|
-
return null;
|
|
19
|
-
return Math.max(0, Math.floor(value));
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Resolves the default state file path for the Amazon Q usage counter.
|
|
23
|
-
*
|
|
24
|
-
* @param workdirRoot - The root directory of the agent-runner working directory.
|
|
25
|
-
*/
|
|
26
|
-
export function resolveAmazonQUsageStatePath(workdirRoot) {
|
|
27
|
-
return path.resolve(workdirRoot, "agent-runner", "state", "amazon-q-usage.json");
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Loads the Amazon Q usage state from disk.
|
|
31
|
-
*
|
|
32
|
-
* Returns a fresh zeroed state when the file does not exist or when the
|
|
33
|
-
* stored period key does not match the current month (auto-reset).
|
|
34
|
-
*/
|
|
35
|
-
export function loadAmazonQUsageState(statePath, now = new Date()) {
|
|
36
|
-
const currentPeriodKey = resolveMonthlyPeriodKey(now);
|
|
37
|
-
if (!fs.existsSync(statePath)) {
|
|
38
|
-
return {
|
|
39
|
-
periodKey: currentPeriodKey,
|
|
40
|
-
used: 0,
|
|
41
|
-
updatedAt: now.toISOString()
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
const raw = fs.readFileSync(statePath, "utf8");
|
|
45
|
-
const parsed = JSON.parse(raw);
|
|
46
|
-
if (!parsed || typeof parsed !== "object") {
|
|
47
|
-
throw new Error(`Invalid Amazon Q usage state at ${statePath}`);
|
|
48
|
-
}
|
|
49
|
-
const record = parsed;
|
|
50
|
-
const periodKey = typeof record.periodKey === "string" ? record.periodKey : null;
|
|
51
|
-
const used = normalizeUsed(record.used);
|
|
52
|
-
const updatedAt = typeof record.updatedAt === "string" ? record.updatedAt : null;
|
|
53
|
-
if (!periodKey || used === null || !updatedAt) {
|
|
54
|
-
throw new Error(`Invalid Amazon Q usage state at ${statePath}`);
|
|
55
|
-
}
|
|
56
|
-
if (periodKey !== currentPeriodKey) {
|
|
57
|
-
return {
|
|
58
|
-
periodKey: currentPeriodKey,
|
|
59
|
-
used: 0,
|
|
60
|
-
updatedAt: now.toISOString()
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
return { periodKey, used, updatedAt };
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Persists Amazon Q usage state to disk.
|
|
67
|
-
*/
|
|
68
|
-
export function saveAmazonQUsageState(statePath, state) {
|
|
69
|
-
fs.mkdirSync(path.dirname(statePath), { recursive: true });
|
|
70
|
-
fs.writeFileSync(statePath, JSON.stringify(state, null, 2));
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Increments the local Amazon Q usage counter by `count` (default 1) and
|
|
74
|
-
* persists the updated state.
|
|
75
|
-
*
|
|
76
|
-
* Call this once per Amazon Q invocation to keep the counter accurate.
|
|
77
|
-
*/
|
|
78
|
-
export function recordAmazonQUsage(statePath, count = 1, now = new Date()) {
|
|
79
|
-
const normalizedCount = Math.max(0, Math.floor(count));
|
|
80
|
-
const state = loadAmazonQUsageState(statePath, now);
|
|
81
|
-
const updated = {
|
|
82
|
-
periodKey: state.periodKey,
|
|
83
|
-
used: state.used + normalizedCount,
|
|
84
|
-
updatedAt: now.toISOString()
|
|
85
|
-
};
|
|
86
|
-
saveAmazonQUsageState(statePath, updated);
|
|
87
|
-
return updated;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Reads the local counter and returns a quota snapshot for Amazon Q Developer.
|
|
91
|
-
*
|
|
92
|
-
* Since Amazon Q does not provide a public usage API, this function relies
|
|
93
|
-
* on a local JSON state file updated by the calling application.
|
|
94
|
-
*
|
|
95
|
-
* @param statePath - Path to the local usage state JSON file
|
|
96
|
-
* @param monthlyLimit - The configured monthly request limit (e.g., 50)
|
|
97
|
-
* @param now - Reference date for parsing (default: current system time)
|
|
98
|
-
* @returns A snapshot of the current local usage counter
|
|
99
|
-
*/
|
|
100
|
-
export function fetchAmazonQRateLimits(statePath, monthlyLimit, now = new Date()) {
|
|
101
|
-
const state = loadAmazonQUsageState(statePath, now);
|
|
102
|
-
const used = Math.max(0, state.used);
|
|
103
|
-
const percentRemaining = monthlyLimit <= 0
|
|
104
|
-
? 0
|
|
105
|
-
: Math.min(100, Math.max(0, ((monthlyLimit - used) / monthlyLimit) * 100));
|
|
106
|
-
return {
|
|
107
|
-
used,
|
|
108
|
-
limit: monthlyLimit,
|
|
109
|
-
percentRemaining,
|
|
110
|
-
resetAt: resolveNextMonthlyResetAt(now),
|
|
111
|
-
periodKey: state.periodKey
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=amazon-q.js.map
|
package/dist/amazon-q.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"amazon-q.js","sourceRoot":"","sources":["../src/amazon-q.ts"],"names":[],"mappings":"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"}
|