quota-axi 0.1.7 → 0.1.8

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
@@ -40,7 +40,7 @@ providers[5]{provider,plan,source,status,refreshedAt}:
40
40
  codex,plus,cli-rpc,fresh,"2026-03-15T16:41:58.000Z"
41
41
  cursor,pro,api,fresh,"2026-03-15T16:41:59.000Z"
42
42
  copilot,individual,api,fresh,"2026-03-15T16:42:00.000Z"
43
- grok,supergrok,api,fresh,"2026-03-15T16:42:00.000Z"
43
+ grok,unknown,web,fresh,"2026-03-15T16:42:00.000Z"
44
44
  windows[13]{provider,id,label,percentRemaining,resetsAt,state}:
45
45
  claude,five_hour,session,82,"2026-03-15T21:15:00.000Z",fresh
46
46
  claude,seven_day,week,64,"2026-03-19T15:00:00.000Z",fresh
@@ -258,7 +258,7 @@ Default TOON output includes the same condition in an `advice` block with `provi
258
258
  | -------------------------------- | ---------------------------------------------------------------------------- |
259
259
  | Provider statuses | `fresh`, `stale`, `unavailable`, `auth_required`, `rate_limited`, or `error` |
260
260
  | Provider sources | `oauth`, `cli-rpc`, `api`, `web`, `cache`, or `unavailable` |
261
- | Current provider adapter sources | `oauth`, `cli-rpc`, `api`, `cache`, and `unavailable` |
261
+ | Current provider adapter sources | `oauth`, `cli-rpc`, `api`, `web`, `cache`, and `unavailable` |
262
262
  | Window kinds | `session`, `weekly`, `monthly`, `model`, `credits`, or `unknown` |
263
263
  | Source attempt statuses | `success`, `failed`, or `skipped` |
264
264
 
@@ -266,15 +266,15 @@ Source attempts can include `credentialPresent` when a non-secret probe confirms
266
266
 
267
267
  ### Provider windows
268
268
 
269
- | Provider | Windows and capabilities |
270
- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
271
- | Claude | Can report `five_hour`, `seven_day`, optional `seven_day_opus`, and optional `extra_usage` windows. |
272
- | Claude scoped `limits` | When the account's usage response includes a scoped `limits` list, quota-axi surfaces every active window it describes instead, including model-scoped ones (e.g. Fable) as a `model:<slug>` window. |
273
- | Codex | Can report `five_hour` and `weekly` windows plus optional credit balance data, plus any additional model- or feature-scoped rate limits the account has as `model:<id>:5h` / `model:<id>:7d` windows, and an optional code-review rate limit as `code_review_five_hour` / `code_review_weekly`. |
274
- | Cursor | Can report `included_usage`, `auto_usage`, `api_usage`, and optional `spend_limit` windows. |
275
- | GitHub Copilot | Can report quota snapshot windows such as `chat`, `completions`, and `premium_interactions`; when the first-party endpoint exposes entitlement but no numeric quota windows, quota-axi reports a fresh provider state with an empty `windows` list rather than inventing percentages. |
276
- | Grok | Can report `credits`, optional `on_demand`, and optional product-scoped `product:<slug>` windows. |
277
- | Grok current period only | If Grok's billing response only exposes the current billing period and prepaid balance, quota-axi reports a fresh `credits` window with `resetsAt` and `credits.remaining` but no usage percentage. |
269
+ | Provider | Windows and capabilities |
270
+ | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
271
+ | Claude | Can report `five_hour`, `seven_day`, optional `seven_day_opus`, and optional `extra_usage` windows. |
272
+ | Claude scoped `limits` | When the account's usage response includes a scoped `limits` list, quota-axi surfaces every active window it describes instead, including model-scoped ones (e.g. Fable) as a `model:<slug>` window. |
273
+ | Codex | Can report `five_hour` and `weekly` windows plus optional credit balance data, plus any additional model- or feature-scoped rate limits the account has as `model:<id>:5h` / `model:<id>:7d` windows, and an optional code-review rate limit as `code_review_five_hour` / `code_review_weekly`. |
274
+ | Cursor | Can report `included_usage`, `auto_usage`, `api_usage`, and optional `spend_limit` windows. |
275
+ | GitHub Copilot | Can report quota snapshot windows such as `chat`, `completions`, and `premium_interactions`; when the first-party endpoint exposes entitlement but no numeric quota windows, quota-axi reports a fresh provider state with an empty `windows` list rather than inventing percentages. |
276
+ | Grok | Reports the shared `credits` window, optional product-scoped `product:<slug>` windows, the current-period reset, and optional prepaid credit balance from the consumer Usage-page operation. |
277
+ | Grok proto3 zero | For the exact consumer operation only, an omitted usage float is the official proto3 zero when a valid weekly or monthly current period proves the config is present; quota-axi reports `0` used and `100` remaining rather than deriving usage from money. |
278
278
 
279
279
  ### `auth --json` shape
280
280
 
@@ -330,9 +330,9 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
330
330
 
331
331
  **Grok**
332
332
 
333
- - It selects session-scoped auth instead of API-key entries and calls Grok's first-party billing endpoint.
333
+ - It selects session-scoped auth instead of API-key entries and sends a read-only gRPC-web request to Grok's consumer `grok_api_v2.GrokBuildBilling.GetGrokCreditsConfig` operation.
334
334
  - Session-scoped Grok auth includes web/session scopes and OIDC records scoped to `auth.x.ai` with `auth_mode` or `authMode` set to `oidc`, including scope keys with `::<client id>` suffixes.
335
- - It may read `$GROK_HOME/version.json` or package metadata near a local `grok` executable to send an `x-grok-client-version` header, but it does not launch the Grok CLI.
335
+ - It does not send browser cookies, launch the Grok CLI, refresh credentials, perform OAuth, retain raw response bodies, or derive usage from monetary fields.
336
336
 
337
337
  ### Safety guarantees
338
338
 
@@ -340,7 +340,7 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
340
340
  - The user-initiated `update` command is the only non-provider network surface, and it is not part of quota measurement.
341
341
  - It sends credential values only to the first-party provider request they authenticate.
342
342
  - It never prints, logs, or caches credential values.
343
- - It never launches the Claude CLI, so it cannot accidentally spend the quota it measures.
343
+ - It never launches the Claude or Grok CLIs, so it cannot spend quota or mutate provider credentials while measuring them.
344
344
 
345
345
  ### Cache
346
346
 
@@ -353,6 +353,7 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
353
353
  | Cached reports | Only fresh provider snapshots with windows are cached. |
354
354
  | Fresh provider reports with no windows | Clear any cached snapshot for that provider, so entitlement-only reports do not leave stale quota windows behind. |
355
355
  | Reports and details not cached | Failed providers, stale providers, account identity, and source attempts are not cached. |
356
+ | Grok cache provenance | Only snapshots produced by the current `web` consumer operation can be used as Grok stale fallback; legacy `api` billing-proxy snapshots are rejected. |
356
357
 
357
358
  ## Development
358
359
 
@@ -5,14 +5,14 @@ type GrokCredentials = {
5
5
  teamId?: string;
6
6
  expiresAt?: string;
7
7
  };
8
- export declare const grokAdapter: ProviderAdapter;
9
- export declare function fetchQuota(_options: ProviderOptions): Promise<ProviderQuota>;
10
- export declare function inspectAuth(_options: ProviderOptions): Promise<AuthProviderReport>;
11
- export declare function normalizeGrokBilling(raw: unknown, credentials?: Pick<GrokCredentials, "email" | "teamId">): {
12
- plan?: string;
8
+ type NormalizedGrokQuota = {
13
9
  account?: ProviderQuota["account"];
14
10
  windows: QuotaWindow[];
15
11
  credits?: ProviderQuota["credits"];
16
12
  refreshedAt: string;
17
- } | undefined;
13
+ };
14
+ export declare const grokAdapter: ProviderAdapter;
15
+ export declare function fetchQuota(_options: ProviderOptions): Promise<ProviderQuota>;
16
+ export declare function inspectAuth(_options: ProviderOptions): Promise<AuthProviderReport>;
17
+ export declare function normalizeGrokConsumerPayload(payload: Uint8Array, credentials?: Pick<GrokCredentials, "email" | "teamId">): NormalizedGrokQuota;
18
18
  export {};
@@ -1,13 +1,24 @@
1
- import { realpathSync } from "node:fs";
2
1
  import { homedir } from "node:os";
3
- import { dirname, join } from "node:path";
2
+ import { join } from "node:path";
4
3
  import { readCachedProvider } from "../cache.js";
5
4
  import { readJsonFileResult } from "../lib/fs.js";
6
- import { findCommandPath } from "../lib/process.js";
7
- import { clampPercent, nowIso, percentRemaining, retryAfterToIso, } from "../lib/time.js";
8
- import { failedProvider, sourceNames, staleFromCache, statusFromError, successProvider, withRemaining, } from "./common.js";
9
- const BILLING_URL = "https://cli-chat-proxy.grok.com/v1/billing?format=credits";
5
+ import { nowIso, retryAfterToIso } from "../lib/time.js";
6
+ import { failedProvider, sourceNames, staleFromCache, statusFromError, successProvider, } from "./common.js";
7
+ const CONSUMER_QUOTA_URL = "https://grok.com/grok_api_v2.GrokBuildBilling/GetGrokCreditsConfig";
10
8
  const API_TIMEOUT_MS = 15_000;
9
+ const RESPONSE_LIMIT_BYTES = 64 * 1024;
10
+ const GRPC_MESSAGE_LIMIT_CHARS = 1_024;
11
+ const EMPTY_GRPC_REQUEST = Uint8Array.from([0, 0, 0, 0, 0]);
12
+ const GROK_SOURCE = "web";
13
+ const PRODUCT_NAMES = {
14
+ 0: { id: "unspecified", label: "Other" },
15
+ 1: { id: "api", label: "API" },
16
+ 2: { id: "grok_build", label: "Grok Build" },
17
+ 3: { id: "grok_plugins", label: "Grok Plugins" },
18
+ 4: { id: "chat", label: "Chat" },
19
+ 5: { id: "imagine", label: "Imagine" },
20
+ 6: { id: "voice", label: "Voice" },
21
+ };
11
22
  export const grokAdapter = {
12
23
  id: "grok",
13
24
  label: "Grok",
@@ -20,15 +31,17 @@ export async function fetchQuota(_options) {
20
31
  let retryAfter;
21
32
  const credentialState = readCredentialState();
22
33
  if (credentialState.status === "available") {
23
- attempts.push({ source: "api", status: "failed" });
34
+ attempts.push({ source: GROK_SOURCE, status: "failed" });
24
35
  try {
25
- const quota = await fetchGrokBilling(credentialState.credentials);
26
- attempts[attempts.length - 1] = { source: "api", status: "success" };
36
+ const quota = await fetchGrokConsumerQuota(credentialState.credentials);
37
+ attempts[attempts.length - 1] = {
38
+ source: GROK_SOURCE,
39
+ status: "success",
40
+ };
27
41
  return successProvider({
28
42
  provider: "grok",
29
43
  label: "Grok",
30
- source: "api",
31
- plan: quota.plan,
44
+ source: GROK_SOURCE,
32
45
  account: quota.account,
33
46
  windows: quota.windows,
34
47
  credits: quota.credits,
@@ -40,7 +53,7 @@ export async function fetchQuota(_options) {
40
53
  catch (error) {
41
54
  finalError = errorMessage(error);
42
55
  attempts[attempts.length - 1] = {
43
- source: "api",
56
+ source: GROK_SOURCE,
44
57
  status: "failed",
45
58
  error: finalError,
46
59
  };
@@ -57,7 +70,7 @@ export async function fetchQuota(_options) {
57
70
  finalError = "Grok sign-in required";
58
71
  }
59
72
  const cached = readCachedProvider("grok");
60
- if (cached) {
73
+ if (cached?.source === GROK_SOURCE) {
61
74
  return staleFromCache(cached, finalError, sourceNames(attempts), attempts);
62
75
  }
63
76
  return failedProvider({
@@ -74,70 +87,64 @@ export async function inspectAuth(_options) {
74
87
  const credentialState = readCredentialState();
75
88
  return { provider: "grok", sources: [credentialState.source] };
76
89
  }
77
- export function normalizeGrokBilling(raw, credentials) {
78
- const data = objectValue(raw);
79
- const config = objectValue(data?.config);
90
+ export function normalizeGrokConsumerPayload(payload, credentials) {
91
+ const response = scanMessage(payload);
92
+ const config = firstMessage(response, 1);
80
93
  if (!config)
81
- return undefined;
82
- const currentPeriod = objectValue(config.currentPeriod);
83
- const resetsAt = parseIso(config.billingPeriodEnd) ?? parseIso(currentPeriod?.end);
94
+ throw new ProtocolError();
95
+ const currentPeriod = firstMessage(config, 8);
96
+ const periodType = currentPeriod
97
+ ? periodTypeAt(currentPeriod)
98
+ : "unspecified";
99
+ const periodStart = currentPeriod ? timestampAt(currentPeriod, 2) : undefined;
100
+ const resetsAt = currentPeriod ? timestampAt(currentPeriod, 3) : undefined;
101
+ const validCurrentPeriod = (periodType === "weekly" || periodType === "monthly") &&
102
+ periodStart !== undefined &&
103
+ resetsAt !== undefined;
84
104
  const windows = [];
85
- const creditUsagePercent = numberValue(config.creditUsagePercent);
86
- if (creditUsagePercent !== undefined) {
87
- windows.push(withRemaining({
105
+ const sharedExplicit = floatAt(config, 1);
106
+ if (sharedExplicit !== undefined || validCurrentPeriod) {
107
+ const percentUsed = clampExactPercent(sharedExplicit ?? 0);
108
+ windows.push({
88
109
  id: "credits",
89
110
  label: "credits",
90
111
  kind: "credits",
91
- percentUsed: clampPercent(creditUsagePercent),
92
- resetsAt,
93
- }));
94
- }
95
- const onDemandCap = numberValue(objectValue(config.onDemandCap)?.val);
96
- const onDemandUsed = numberValue(objectValue(config.onDemandUsed)?.val);
97
- if (onDemandCap !== undefined && onDemandCap > 0) {
98
- windows.push({
99
- id: "on_demand",
100
- label: "on-demand credits",
101
- kind: "credits",
102
- percentUsed: onDemandUsed === undefined
103
- ? undefined
104
- : clampPercent((onDemandUsed / onDemandCap) * 100),
105
- percentRemaining: onDemandUsed === undefined
106
- ? undefined
107
- : percentRemaining(clampPercent((onDemandUsed / onDemandCap) * 100)),
112
+ percentUsed,
113
+ percentRemaining: 100 - percentUsed,
108
114
  resetsAt,
109
115
  });
110
116
  }
111
- for (const entry of arrayValue(config.productUsage)) {
112
- const product = objectValue(entry);
113
- const productName = stringValue(product?.product);
114
- const usagePercent = numberValue(product?.usagePercent);
115
- if (!productName || usagePercent === undefined)
117
+ for (const productPayload of messagesAt(config, 7)) {
118
+ const product = scanMessage(productPayload);
119
+ const explicit = floatAt(product, 2);
120
+ if (explicit === undefined && !validCurrentPeriod)
116
121
  continue;
117
- windows.push(withRemaining({
118
- id: `product:${slugify(productName)}`,
119
- label: productName,
120
- kind: "credits",
121
- percentUsed: clampPercent(usagePercent),
122
- resetsAt,
123
- }));
124
- }
125
- const prepaidBalance = numberValue(objectValue(config.prepaidBalance)?.val);
126
- if (windows.length === 0 && resetsAt) {
122
+ const productNumber = safeNumber(varintAt(product, 1) ?? 0n);
123
+ if (productNumber === undefined)
124
+ continue;
125
+ const productName = PRODUCT_NAMES[productNumber] ?? {
126
+ id: `unknown_${productNumber}`,
127
+ label: `Product ${productNumber}`,
128
+ };
129
+ const percentUsed = clampExactPercent(explicit ?? 0);
127
130
  windows.push({
128
- id: "credits",
129
- label: "credits",
131
+ id: `product:${productName.id}`,
132
+ label: productName.label,
130
133
  kind: "credits",
134
+ percentUsed,
135
+ percentRemaining: 100 - percentUsed,
131
136
  resetsAt,
132
137
  });
133
138
  }
134
139
  if (windows.length === 0)
135
- return undefined;
140
+ throw new ProtocolError();
141
+ const prepaid = firstMessage(config, 12);
142
+ const prepaidBalance = prepaid
143
+ ? safeNumber(varintAt(prepaid, 1) ?? 0n)
144
+ : undefined;
145
+ if (prepaid && prepaidBalance === undefined)
146
+ throw new ProtocolError();
136
147
  return {
137
- plan: stringValue(config.subscription_tier) ??
138
- stringValue(config.subscriptionTier) ??
139
- stringValue(data?.subscription_tier) ??
140
- stringValue(data?.subscriptionTier),
141
148
  account: {
142
149
  email: credentials?.email,
143
150
  organization: credentials?.teamId,
@@ -149,115 +156,286 @@ export function normalizeGrokBilling(raw, credentials) {
149
156
  refreshedAt: nowIso(),
150
157
  };
151
158
  }
152
- async function fetchGrokBilling(credentials) {
159
+ async function fetchGrokConsumerQuota(credentials) {
153
160
  const controller = new AbortController();
154
161
  const timer = setTimeout(() => controller.abort(), API_TIMEOUT_MS);
155
162
  try {
156
- const headers = {
157
- authorization: `Bearer ${credentials.key}`,
158
- accept: "application/json",
159
- };
160
- const clientVersion = await readGrokClientVersion();
161
- if (clientVersion)
162
- headers["x-grok-client-version"] = clientVersion;
163
- const response = await fetch(BILLING_URL, {
164
- headers,
165
- signal: controller.signal,
166
- });
163
+ let response;
164
+ try {
165
+ response = await fetch(CONSUMER_QUOTA_URL, {
166
+ method: "POST",
167
+ headers: {
168
+ Authorization: `Bearer ${credentials.key}`,
169
+ Accept: "*/*",
170
+ "Content-Type": "application/grpc-web+proto",
171
+ Origin: "https://grok.com",
172
+ Referer: "https://grok.com/?_s=usage",
173
+ "x-grpc-web": "1",
174
+ "x-user-agent": "connect-es/2.1.1",
175
+ },
176
+ body: EMPTY_GRPC_REQUEST,
177
+ signal: controller.signal,
178
+ });
179
+ }
180
+ catch (error) {
181
+ if (isAbortError(error) || controller.signal.aborted)
182
+ throw new TimeoutError();
183
+ throw new SafeGrokError("Grok quota unavailable");
184
+ }
167
185
  rejectUnusableUsageResponse(response);
168
- const quota = normalizeGrokBilling(await response.json(), credentials);
169
- if (!quota)
170
- throw new Error("Grok quota unavailable");
171
- return quota;
186
+ throwForGrpcStatus(response.headers.get("grpc-status"), response.headers.get("grpc-message"));
187
+ let bytes;
188
+ try {
189
+ bytes = await readBoundedBody(response);
190
+ }
191
+ catch (error) {
192
+ if (error instanceof SafeGrokError)
193
+ throw error;
194
+ if (isAbortError(error) || controller.signal.aborted)
195
+ throw new TimeoutError();
196
+ throw new SafeGrokError("Grok quota unavailable");
197
+ }
198
+ const payload = decodeGrpcWebPayload(bytes);
199
+ return normalizeGrokConsumerPayload(payload, credentials);
172
200
  }
173
201
  finally {
174
202
  clearTimeout(timer);
175
203
  }
176
204
  }
177
- async function readGrokClientVersion() {
178
- const homeVersion = readGrokHomeClientVersion();
179
- if (homeVersion)
180
- return homeVersion;
181
- const executable = await findCommandPath("grok");
182
- if (!executable)
183
- return undefined;
184
- const realpath = realpathBestEffort(executable);
185
- return (extractGrokVersionFromPath(realpath) ?? readPackageVersionNear(realpath));
186
- }
187
- function readGrokHomeClientVersion() {
188
- const versionJson = readJsonFileResult(join(grokHomeDir(), "version.json"));
189
- if (versionJson.status !== "success")
190
- return undefined;
191
- return versionFromJson(versionJson.value);
192
- }
193
- function versionFromJson(value) {
194
- const direct = stringValue(value);
195
- if (direct)
196
- return extractVersion(direct);
197
- const data = objectValue(value);
198
- if (!data)
199
- return undefined;
200
- for (const key of [
201
- "version",
202
- "clientVersion",
203
- "client_version",
204
- "currentVersion",
205
- "current_version",
206
- ]) {
207
- const version = extractVersion(stringValue(data[key]));
208
- if (version)
209
- return version;
205
+ async function readBoundedBody(response) {
206
+ const contentLength = response.headers.get("content-length");
207
+ if (contentLength && /^\d+$/.test(contentLength)) {
208
+ if (BigInt(contentLength) > BigInt(RESPONSE_LIMIT_BYTES))
209
+ throw new ResponseTooLargeError();
210
210
  }
211
- for (const item of Object.values(data)) {
212
- const version = extractVersion(stringValue(item));
213
- if (version)
214
- return version;
215
- }
216
- return undefined;
217
- }
218
- function extractVersion(value) {
219
- return value?.match(/(?:^|[^0-9])v?(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)(?:$|[^0-9A-Za-z])/)?.[1];
220
- }
221
- function extractGrokVersionFromPath(file) {
222
- for (const part of file.split(/[\\/]+/)) {
223
- if (/grok/i.test(part)) {
224
- const version = extractVersion(part);
225
- if (version)
226
- return version;
211
+ if (!response.body)
212
+ return new Uint8Array();
213
+ const reader = response.body.getReader();
214
+ const chunks = [];
215
+ let length = 0;
216
+ try {
217
+ while (true) {
218
+ const { done, value } = await reader.read();
219
+ if (done)
220
+ break;
221
+ length += value.length;
222
+ if (length > RESPONSE_LIMIT_BYTES) {
223
+ await reader.cancel().catch(() => undefined);
224
+ throw new ResponseTooLargeError();
225
+ }
226
+ chunks.push(value);
227
227
  }
228
228
  }
229
- return undefined;
230
- }
231
- function readPackageVersionNear(file) {
232
- let directory = dirname(file);
233
- while (true) {
234
- const packageJson = readJsonFileResult(join(directory, "package.json"));
235
- if (packageJson.status === "success") {
236
- const pkg = objectValue(packageJson.value);
237
- const version = stringValue(pkg?.version);
238
- if (version && packageLooksLikeGrok(pkg))
239
- return version;
229
+ finally {
230
+ reader.releaseLock();
231
+ }
232
+ const bytes = new Uint8Array(length);
233
+ let offset = 0;
234
+ for (const chunk of chunks) {
235
+ bytes.set(chunk, offset);
236
+ offset += chunk.length;
237
+ }
238
+ return bytes;
239
+ }
240
+ function decodeGrpcWebPayload(bytes) {
241
+ if (bytes.length === 0)
242
+ throw new ProtocolError();
243
+ if (!looksFramed(bytes[0]))
244
+ return bytes;
245
+ const dataFrames = [];
246
+ let trailerSeen = false;
247
+ let index = 0;
248
+ while (index < bytes.length) {
249
+ if (index + 5 > bytes.length)
250
+ throw new ProtocolError();
251
+ const flags = bytes[index];
252
+ if ((flags & 0x01) !== 0)
253
+ throw new ProtocolError();
254
+ if (flags !== 0 && flags !== 0x80)
255
+ throw new ProtocolError();
256
+ const length = new DataView(bytes.buffer, bytes.byteOffset + index + 1, 4).getUint32(0);
257
+ if (length > RESPONSE_LIMIT_BYTES)
258
+ throw new ProtocolError();
259
+ const start = index + 5;
260
+ const end = start + length;
261
+ if (!Number.isSafeInteger(end) || end > bytes.length)
262
+ throw new ProtocolError();
263
+ const frame = bytes.slice(start, end);
264
+ if (flags === 0x80) {
265
+ if (trailerSeen)
266
+ throw new ProtocolError();
267
+ trailerSeen = true;
268
+ const trailers = parseTrailerFields(frame);
269
+ throwForGrpcStatus(trailers.get("grpc-status") ?? null, trailers.get("grpc-message") ?? null);
240
270
  }
241
- const parent = dirname(directory);
242
- if (parent === directory)
243
- return undefined;
244
- directory = parent;
271
+ else {
272
+ if (trailerSeen || dataFrames.length > 0)
273
+ throw new ProtocolError();
274
+ dataFrames.push(frame);
275
+ }
276
+ index = end;
245
277
  }
246
- }
247
- function packageLooksLikeGrok(pkg) {
248
- const name = stringValue(pkg?.name)?.toLowerCase();
249
- if (name?.includes("grok"))
250
- return true;
251
- const bin = objectValue(pkg?.bin);
252
- return stringValue(bin?.grok) !== undefined;
253
- }
254
- function realpathBestEffort(file) {
278
+ if (dataFrames.length !== 1)
279
+ throw new ProtocolError();
280
+ return dataFrames[0];
281
+ }
282
+ function looksFramed(firstByte) {
283
+ return firstByte === 0 || firstByte === 1 || (firstByte & 0x80) !== 0;
284
+ }
285
+ function parseTrailerFields(bytes) {
286
+ const trailers = new Map();
287
+ const text = new TextDecoder().decode(bytes);
288
+ for (const line of text.split(/\r?\n/)) {
289
+ const separator = line.indexOf(":");
290
+ if (separator <= 0)
291
+ continue;
292
+ trailers.set(line.slice(0, separator).trim().toLowerCase(), line.slice(separator + 1).trim());
293
+ }
294
+ return trailers;
295
+ }
296
+ function throwForGrpcStatus(value, message = null) {
297
+ if (value === null)
298
+ return;
299
+ if (!/^(?:[0-9]|1[0-6])$/.test(value))
300
+ throw new ProtocolError();
301
+ const status = Number(value);
302
+ if (status === 0)
303
+ return;
304
+ if (status === 16)
305
+ throw new SafeGrokError("Grok sign-in required");
306
+ if (status === 7 && grpcMessageIndicatesAuthFailure(message))
307
+ throw new SafeGrokError("Grok sign-in required");
308
+ if (status === 8)
309
+ throw new RateLimitError();
310
+ throw new SafeGrokError("Grok quota unavailable");
311
+ }
312
+ function grpcMessageIndicatesAuthFailure(value) {
313
+ if (!value || value.length > GRPC_MESSAGE_LIMIT_CHARS)
314
+ return false;
315
+ let message;
255
316
  try {
256
- return realpathSync(file);
317
+ message = decodeURIComponent(value);
257
318
  }
258
319
  catch {
259
- return file;
320
+ return false;
260
321
  }
322
+ if (message.length > GRPC_MESSAGE_LIMIT_CHARS)
323
+ return false;
324
+ return (/\b(?:unauthenticated|authentication required|sign[ -]?in required)\b/i.test(message) ||
325
+ /\bbad[ -]credentials\b/i.test(message) ||
326
+ /\b(?:oauth2|access token)\b[\s\S]{0,128}\bcould not be validated\b/i.test(message) ||
327
+ /\b(?:invalid|expired|missing|revoked)\s+(?:(?:oauth|access|auth(?:entication)?|bearer)\s+)*(?:token|credentials?|jwt)\b/i.test(message) ||
328
+ /\b(?:token|credentials?|jwt)\s+(?:is |are )?(?:invalid|expired|missing|revoked)\b/i.test(message));
329
+ }
330
+ function scanMessage(bytes) {
331
+ const fields = [];
332
+ let index = 0;
333
+ while (index < bytes.length) {
334
+ const key = readVarint(bytes, index);
335
+ index = key.index;
336
+ const fieldValue = key.value >> 3n;
337
+ if (fieldValue <= 0n || fieldValue > 0x1fffffffn)
338
+ throw new ProtocolError();
339
+ const field = Number(fieldValue);
340
+ const wire = Number(key.value & 7n);
341
+ if (wire === 0) {
342
+ const scalar = readVarint(bytes, index);
343
+ fields.push({ field, wire, value: scalar.value });
344
+ index = scalar.index;
345
+ continue;
346
+ }
347
+ if (wire === 1 || wire === 5) {
348
+ const length = wire === 1 ? 8 : 4;
349
+ if (index + length > bytes.length)
350
+ throw new ProtocolError();
351
+ fields.push({
352
+ field,
353
+ wire,
354
+ value: bytes.slice(index, index + length),
355
+ });
356
+ index += length;
357
+ continue;
358
+ }
359
+ if (wire === 2) {
360
+ const lengthValue = readVarint(bytes, index);
361
+ index = lengthValue.index;
362
+ if (lengthValue.value > BigInt(RESPONSE_LIMIT_BYTES))
363
+ throw new ProtocolError();
364
+ const length = Number(lengthValue.value);
365
+ const end = index + length;
366
+ if (!Number.isSafeInteger(end) || end > bytes.length)
367
+ throw new ProtocolError();
368
+ fields.push({ field, wire, value: bytes.slice(index, end) });
369
+ index = end;
370
+ continue;
371
+ }
372
+ throw new ProtocolError();
373
+ }
374
+ return fields;
375
+ }
376
+ function readVarint(bytes, start) {
377
+ let value = 0n;
378
+ let index = start;
379
+ for (let count = 0; count < 10 && index < bytes.length; count += 1) {
380
+ const byte = bytes[index];
381
+ index += 1;
382
+ if (count === 9 && byte > 1)
383
+ throw new ProtocolError();
384
+ value |= BigInt(byte & 0x7f) << BigInt(count * 7);
385
+ if ((byte & 0x80) === 0)
386
+ return { value, index };
387
+ }
388
+ throw new ProtocolError();
389
+ }
390
+ function messagesAt(fields, field) {
391
+ return fields
392
+ .filter((entry) => entry.field === field && entry.wire === 2)
393
+ .map((entry) => entry.value);
394
+ }
395
+ function firstMessage(fields, field) {
396
+ const bytes = messagesAt(fields, field)[0];
397
+ return bytes ? scanMessage(bytes) : undefined;
398
+ }
399
+ function varintAt(fields, field) {
400
+ return fields.find((entry) => entry.field === field && entry.wire === 0)?.value;
401
+ }
402
+ function floatAt(fields, field) {
403
+ const found = fields.find((entry) => entry.field === field && entry.wire === 5);
404
+ if (!found)
405
+ return undefined;
406
+ const value = new DataView(found.value.buffer, found.value.byteOffset, 4).getFloat32(0, true);
407
+ if (!Number.isFinite(value))
408
+ throw new ProtocolError();
409
+ return value;
410
+ }
411
+ function timestampAt(fields, field) {
412
+ const timestamp = firstMessage(fields, field);
413
+ if (!timestamp)
414
+ return undefined;
415
+ const seconds = safeNumber(varintAt(timestamp, 1));
416
+ if (seconds === undefined)
417
+ return undefined;
418
+ const milliseconds = seconds * 1_000;
419
+ if (!Number.isSafeInteger(milliseconds))
420
+ return undefined;
421
+ const date = new Date(milliseconds);
422
+ return Number.isNaN(date.getTime()) ? undefined : date.toISOString();
423
+ }
424
+ function periodTypeAt(period) {
425
+ const value = varintAt(period, 1);
426
+ if (value === 2n)
427
+ return "weekly";
428
+ if (value === 1n)
429
+ return "monthly";
430
+ return "unspecified";
431
+ }
432
+ function safeNumber(value) {
433
+ if (value === undefined || value > BigInt(Number.MAX_SAFE_INTEGER))
434
+ return undefined;
435
+ return Number(value);
436
+ }
437
+ function clampExactPercent(value) {
438
+ return Math.min(100, Math.max(0, value));
261
439
  }
262
440
  function readCredentialState() {
263
441
  const explicitAuthFile = stringValue(process.env.GROK_AUTH_JSON);
@@ -342,13 +520,13 @@ function grokHomeDir() {
342
520
  }
343
521
  function rejectUnusableUsageResponse(response) {
344
522
  if (response.status === 401 || response.status === 403) {
345
- throw new Error("Grok sign-in required");
523
+ throw new SafeGrokError("Grok sign-in required");
346
524
  }
347
525
  if (response.status === 429) {
348
526
  throw new RateLimitError(retryAfterToIso(response.headers.get("retry-after")));
349
527
  }
350
528
  if (!response.ok)
351
- throw new Error(`Grok quota unavailable (${response.status})`);
529
+ throw new SafeGrokError("Grok quota unavailable");
352
530
  }
353
531
  function isExpired(value) {
354
532
  if (!value)
@@ -444,46 +622,40 @@ function parseScope(value) {
444
622
  function normalizeCredentialScope(value) {
445
623
  return value.replace(/::[^/]*$/, "");
446
624
  }
447
- function parseIso(value) {
448
- if (typeof value !== "string" || value.trim() === "")
449
- return undefined;
450
- const date = new Date(value);
451
- return Number.isNaN(date.getTime()) ? undefined : date.toISOString();
452
- }
453
625
  function objectValue(value) {
454
626
  return value && typeof value === "object"
455
627
  ? value
456
628
  : undefined;
457
629
  }
458
- function arrayValue(value) {
459
- return Array.isArray(value) ? value : [];
460
- }
461
630
  function stringValue(value) {
462
631
  return typeof value === "string" && value.length > 0 ? value : undefined;
463
632
  }
464
- function numberValue(value) {
465
- if (typeof value === "number" && Number.isFinite(value))
466
- return value;
467
- if (typeof value === "string" && value.trim() !== "") {
468
- const parsed = Number(value);
469
- if (Number.isFinite(parsed))
470
- return parsed;
633
+ function isAbortError(error) {
634
+ return error instanceof Error && error.name === "AbortError";
635
+ }
636
+ function errorMessage(error) {
637
+ return error instanceof SafeGrokError
638
+ ? error.message
639
+ : "Grok quota unavailable";
640
+ }
641
+ class SafeGrokError extends Error {
642
+ }
643
+ class ProtocolError extends SafeGrokError {
644
+ constructor() {
645
+ super("Grok quota response invalid");
471
646
  }
472
- return undefined;
473
647
  }
474
- function slugify(value) {
475
- return value
476
- .trim()
477
- .toLowerCase()
478
- .replace(/[^a-z0-9]+/g, "_")
479
- .replace(/^_+|_+$/g, "");
648
+ class ResponseTooLargeError extends SafeGrokError {
649
+ constructor() {
650
+ super("Grok quota response too large");
651
+ }
480
652
  }
481
- function errorMessage(error) {
482
- if (error instanceof Error && error.name === "AbortError")
483
- return "Grok quota request timed out";
484
- return error instanceof Error ? error.message : "Grok quota unavailable";
653
+ class TimeoutError extends SafeGrokError {
654
+ constructor() {
655
+ super("Grok quota request timed out");
656
+ }
485
657
  }
486
- class RateLimitError extends Error {
658
+ class RateLimitError extends SafeGrokError {
487
659
  retryAfter;
488
660
  constructor(retryAfter) {
489
661
  super("Grok quota endpoint rate limited");
@@ -1 +1 @@
1
- {"version":3,"file":"grok.js","sourceRoot":"","sources":["../../../src/providers/grok.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grok.js","sourceRoot":"","sources":["../../../src/providers/grok.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quota-axi",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "packageManager": "pnpm@11.1.1",
5
5
  "description": "AXI CLI that reports local agent-provider quota windows without routing or mutation",
6
6
  "type": "module",