@metyatech/ai-quota 1.2.2 → 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
 
@@ -246,6 +249,40 @@ npm run format # Prettier format
246
249
  npm run verify # lint + test + build (full CI suite)
247
250
  ```
248
251
 
252
+ ## Release and publish
253
+
254
+ `ai-quota` publishes to npm from GitHub Actions via npm trusted publishing (OIDC). The
255
+ release workflow lives in `.github/workflows/publish.yml`, runs when a GitHub release is
256
+ published, and uses Node.js 24 because npm trusted publishing requires a modern npm/Node
257
+ runtime in CI.
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
+
269
+ Release flow:
270
+
271
+ ```bash
272
+ npm version patch --no-git-tag-version
273
+ # update CHANGELOG.md as needed
274
+ npm run verify
275
+ git add package.json package-lock.json CHANGELOG.md
276
+ git commit -m "Release vX.Y.Z"
277
+ git push origin main
278
+ git tag vX.Y.Z
279
+ git push origin vX.Y.Z
280
+ ```
281
+
282
+ Then publish a GitHub release for the `vX.Y.Z` tag. GitHub Actions will run the publish
283
+ workflow, publish the package to npm, and attach npm provenance automatically when trusted
284
+ publishing is configured for the package.
285
+
249
286
  ## Environment variables
250
287
 
251
288
  | Variable | Used by | Purpose |
@@ -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":"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"}
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.2",
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
  },