@metyatech/ai-quota 1.2.4 → 1.2.5

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 CHANGED
@@ -25,6 +25,7 @@ ai-quota [agent] Show quota for all agents, or a single named agent
25
25
  ai-quota --json Machine-readable JSON output
26
26
  ai-quota --mcp Start as an MCP server
27
27
  ai-quota --quiet Suppress non-error output (useful in scripts)
28
+ ai-quota --strict Exit non-zero if any provider fetch returns error
28
29
  ai-quota --verbose Print debug info to stderr
29
30
  ai-quota --help Show usage information
30
31
  ai-quota --version Show version
@@ -116,7 +117,9 @@ ai-quota --json
116
117
  Claude token behavior: `ai-quota` automatically refreshes Claude OAuth tokens using `refreshToken` when needed (including stale-token `401/403/429` retries).
117
118
  Copilot token behavior: if you already authenticated with `copilot login`, `ai-quota` will reuse that stored OAuth token automatically, including Windows Credential Manager entries created by Copilot CLI.
118
119
 
119
- Exit code is `0` on success. Exit code `1` if any agent fetch fails.
120
+ Exit code is `0` when the command successfully reports status output (table or JSON), even if some providers are unavailable/login-required/waiting for reset.
121
+ Use `--strict` to make provider fetch errors fail with exit code `1`.
122
+ Invalid usage (unknown option/agent) and fatal command failures also exit with `1`.
120
123
 
121
124
  ### Advanced usage (SDK)
122
125
 
@@ -253,6 +256,16 @@ release workflow lives in `.github/workflows/publish.yml`, runs when a GitHub re
253
256
  published, and uses Node.js 24 because npm trusted publishing requires a modern npm/Node
254
257
  runtime in CI.
255
258
 
259
+ Canonical publish path: create/publish a GitHub Release for a `vX.Y.Z` tag and let
260
+ GitHub Actions publish to npm. Do not use long-lived `NPM_TOKEN` secrets for this package.
261
+
262
+ One-time npm setup (outside this repo):
263
+
264
+ 1. In npm package settings for `@metyatech/ai-quota`, add a trusted publisher for
265
+ `metyatech/ai-quota` with workflow `.github/workflows/publish.yml` and trigger
266
+ environment matching published releases.
267
+ 2. Keep that npm trusted publisher binding active; no npm automation token is required.
268
+
256
269
  Release flow:
257
270
 
258
271
  ```bash
@@ -0,0 +1,14 @@
1
+ import type { AllRateLimits, SupportedAgent } from "./index.js";
2
+ export declare class CliUsageError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export type CliRunOptions = {
6
+ jsonMode: boolean;
7
+ quiet: boolean;
8
+ verbose: boolean;
9
+ strict: boolean;
10
+ requestedAgents: SupportedAgent[];
11
+ };
12
+ export declare function parseCliRunOptions(args: string[], supportedAgents: readonly SupportedAgent[]): CliRunOptions;
13
+ export declare function shouldExitNonZero(result: AllRateLimits, strict: boolean): boolean;
14
+ //# sourceMappingURL=cli-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-core.d.ts","sourceRoot":"","sources":["../src/cli-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC,CAAC;AAIF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,eAAe,EAAE,SAAS,cAAc,EAAE,GACzC,aAAa,CAyBf;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CASjF"}
@@ -0,0 +1,39 @@
1
+ export class CliUsageError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = "CliUsageError";
5
+ }
6
+ }
7
+ const RUNTIME_FLAGS = new Set(["--json", "--quiet", "--verbose", "--strict"]);
8
+ export function parseCliRunOptions(args, supportedAgents) {
9
+ const supportedSet = new Set(supportedAgents);
10
+ const requestedAgents = [];
11
+ for (const arg of args) {
12
+ if (arg.startsWith("-")) {
13
+ if (!RUNTIME_FLAGS.has(arg)) {
14
+ throw new CliUsageError(`unknown option: ${arg}`);
15
+ }
16
+ continue;
17
+ }
18
+ if (!supportedSet.has(arg)) {
19
+ throw new CliUsageError(`unknown agent: ${arg}`);
20
+ }
21
+ requestedAgents.push(arg);
22
+ }
23
+ return {
24
+ jsonMode: args.includes("--json"),
25
+ quiet: args.includes("--quiet"),
26
+ verbose: args.includes("--verbose"),
27
+ strict: args.includes("--strict"),
28
+ requestedAgents
29
+ };
30
+ }
31
+ export function shouldExitNonZero(result, strict) {
32
+ if (!strict)
33
+ return false;
34
+ return (result.claude.status === "error" ||
35
+ result.gemini.status === "error" ||
36
+ result.copilot.status === "error" ||
37
+ result.codex.status === "error");
38
+ }
39
+ //# sourceMappingURL=cli-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-core.js","sourceRoot":"","sources":["../src/cli-core.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAUD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AAE9E,MAAM,UAAU,kBAAkB,CAChC,IAAc,EACd,eAA0C;IAE1C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,eAAe,CAAC,CAAC;IACtD,MAAM,eAAe,GAAqB,EAAE,CAAC;IAE7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,aAAa,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,eAAe,CAAC,IAAI,CAAC,GAAqB,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACjC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QACnC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAqB,EAAE,MAAe;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,OAAO,CACL,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO;QAChC,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO;QAChC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO;QACjC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAChC,CAAC;AACJ,CAAC"}
package/dist/cli.js CHANGED
@@ -5,6 +5,7 @@
5
5
  import { fetchAllRateLimits, runMcpServer, SUPPORTED_AGENTS, agentToSdkKey } from "./index.js";
6
6
  import { getVersion } from "./utils.js";
7
7
  import { buildHumanRows, formatHumanTable } from "./human-output.js";
8
+ import { CliUsageError, parseCliRunOptions, shouldExitNonZero } from "./cli-core.js";
8
9
  function showHelp() {
9
10
  process.stdout.write(`ai-quota v${getVersion()}\n\n` +
10
11
  "Usage:\n" +
@@ -12,6 +13,7 @@ function showHelp() {
12
13
  " ai-quota --json Output machine-readable JSON\n" +
13
14
  " ai-quota --mcp Start as an MCP server\n" +
14
15
  " ai-quota --quiet Suppress non-error output\n" +
16
+ " ai-quota --strict Exit non-zero if any provider fetch errors\n" +
15
17
  " ai-quota --verbose Show extra debug info on stderr\n" +
16
18
  " ai-quota --help Show this help message\n" +
17
19
  " ai-quota --version Show version\n\n" +
@@ -19,6 +21,7 @@ function showHelp() {
19
21
  SUPPORTED_AGENTS.join(", ") +
20
22
  "\n" +
21
23
  "Output: table with AGENT, STATUS, LIMIT, DETAILS\n" +
24
+ "Exit codes: default 0 when status report succeeds; use --strict for fetch-error exit.\n" +
22
25
  "Note: Use --json for scripts.\n");
23
26
  }
24
27
  async function main() {
@@ -35,25 +38,19 @@ async function main() {
35
38
  await runMcpServer();
36
39
  return;
37
40
  }
38
- const jsonMode = args.includes("--json");
39
- const quiet = args.includes("--quiet");
40
- const verbose = args.includes("--verbose");
41
- const requestedAgents = args.filter((a) => !a.startsWith("-"));
41
+ const { jsonMode, quiet, verbose, strict, requestedAgents } = parseCliRunOptions(args, SUPPORTED_AGENTS);
42
42
  const allResults = await fetchAllRateLimits({
43
43
  agents: requestedAgents.length > 0 ? requestedAgents : undefined,
44
44
  verbose,
45
45
  timeoutSeconds: 10
46
46
  });
47
47
  const agentsToDisplay = (requestedAgents.length > 0 ? requestedAgents : [...SUPPORTED_AGENTS]);
48
- let anyError = false;
49
48
  const outputJson = {};
50
49
  for (const agent of agentsToDisplay) {
51
50
  const sdkKey = agentToSdkKey(agent);
52
51
  const res = allResults[sdkKey];
53
52
  if (!res)
54
53
  continue;
55
- if (res.status === "error")
56
- anyError = true;
57
54
  if (jsonMode) {
58
55
  outputJson[agent] = {
59
56
  status: res.status,
@@ -71,10 +68,16 @@ async function main() {
71
68
  if (jsonMode && !quiet) {
72
69
  process.stdout.write(JSON.stringify(outputJson, null, 2) + "\n");
73
70
  }
74
- if (anyError)
71
+ if (shouldExitNonZero(allResults, strict))
75
72
  process.exitCode = 1;
76
73
  }
77
74
  main().catch((err) => {
75
+ if (err instanceof CliUsageError) {
76
+ process.stderr.write(`ai-quota: ${err.message}\n`);
77
+ process.stderr.write("Run 'ai-quota --help' for usage.\n");
78
+ process.exitCode = 1;
79
+ return;
80
+ }
78
81
  process.stderr.write(`ai-quota: fatal error: ${err}\n`);
79
82
  process.exitCode = 1;
80
83
  });
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAEhB,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErE,SAAS,QAAQ;IACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,UAAU,EAAE,MAAM;QAC7B,UAAU;QACV,+EAA+E;QAC/E,6DAA6D;QAC7D,uDAAuD;QACvD,0DAA0D;QAC1D,gEAAgE;QAChE,uDAAuD;QACvD,+CAA+C;QAC/C,UAAU;QACV,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI;QACJ,oDAAoD;QACpD,iCAAiC,CACpC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,QAAQ,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE3C,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAqB,CAAC;IAEnF,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC;QAC1C,MAAM,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAChE,OAAO;QACP,cAAc,EAAE,EAAE;KACnB,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,CACtB,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CACjD,CAAC;IAEtB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,UAAU,GAA4B,EAAE,CAAC;IAE/C,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,GAAG,GAAI,UAAkB,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;YAAE,QAAQ,GAAG,IAAI,CAAC;QAE5C,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,KAAK,CAAC,GAAG;gBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACtF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,QAAQ;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC;IACxD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metyatech/ai-quota",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
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",
@@ -38,7 +38,8 @@
38
38
  "lint": "eslint . && tsc -p tsconfig.json --noEmit",
39
39
  "format": "prettier --write .",
40
40
  "format:check": "prettier --check .",
41
- "verify": "npm run format:check && npm run lint && npm test && npm run build",
41
+ "verify:publish-workflow": "node scripts/verify-publish-workflow.mjs",
42
+ "verify": "npm run format:check && npm run lint && npm run verify:publish-workflow && npm test && npm run build",
42
43
  "verify:live": "npm run build && node dist/cli.js --verbose",
43
44
  "prepare": "husky"
44
45
  },