quota-axi 0.1.13 → 0.1.15
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 +176 -69
- package/dist/src/advice.d.ts +3 -0
- package/dist/src/advice.js +45 -14
- package/dist/src/advice.js.map +1 -1
- package/dist/src/cache.js +1 -0
- package/dist/src/cache.js.map +1 -1
- package/dist/src/commands.js +3 -2
- package/dist/src/commands.js.map +1 -1
- package/dist/src/interpretation.d.ts +1 -1
- package/dist/src/interpretation.js +53 -3
- package/dist/src/interpretation.js.map +1 -1
- package/dist/src/lib/fs.d.ts +1 -1
- package/dist/src/lib/fs.js +7 -3
- package/dist/src/lib/fs.js.map +1 -1
- package/dist/src/pace.d.ts +14 -0
- package/dist/src/pace.js +209 -0
- package/dist/src/pace.js.map +1 -0
- package/dist/src/providers/claude.d.ts +1 -0
- package/dist/src/providers/claude.js +201 -40
- package/dist/src/providers/claude.js.map +1 -1
- package/dist/src/providers/common.js +2 -1
- package/dist/src/providers/common.js.map +1 -1
- package/dist/src/providers/grok.js +23 -4
- package/dist/src/providers/grok.js.map +1 -1
- package/dist/src/providers/kimi.js +1 -0
- package/dist/src/providers/kimi.js.map +1 -1
- package/dist/src/render.js +20 -11
- package/dist/src/render.js.map +1 -1
- package/dist/src/skill.js +27 -9
- package/dist/src/skill.js.map +1 -1
- package/dist/src/types.d.ts +47 -2
- package/package.json +1 -1
- package/skills/quota-axi/SKILL.md +37 -8
package/README.md
CHANGED
|
@@ -26,9 +26,10 @@ It is data only: it never routes, recommends, proxies, intercepts, logs in, impo
|
|
|
26
26
|
## Quick Start
|
|
27
27
|
|
|
28
28
|
**macOS + Claude note:** Claude Code keeps its live token in the macOS Keychain.
|
|
29
|
-
quota-axi will not read
|
|
29
|
+
quota-axi pins that lookup to the same current-user Keychain item Claude Code selects and will not read its value unless the user grants permission, so Claude quota reads can stay stale when no usable on-disk access token is available.
|
|
30
30
|
Run `quota-axi --allow-keychain-prompt` once and approve Keychain access with "Always Allow".
|
|
31
|
-
After a successful Keychain read, future non-interactive quota reads use that
|
|
31
|
+
After a successful Keychain read, future non-interactive quota reads use that profile-and-account-scoped grant and refresh live Claude data without requiring the flag.
|
|
32
|
+
Legacy markers created before account-pinned lookup are not reused, so an upgrade may require this one-time grant again.
|
|
32
33
|
|
|
33
34
|
```sh
|
|
34
35
|
$ npx -y quota-axi
|
|
@@ -42,32 +43,32 @@ providers[6]{provider,plan,source,status,refreshedAt}:
|
|
|
42
43
|
copilot,individual,api,fresh,"2026-03-15T16:42:00.000Z"
|
|
43
44
|
grok,unknown,web,fresh,"2026-03-15T16:42:00.000Z"
|
|
44
45
|
kimi,unknown,api,fresh,"2026-03-15T16:42:00.000Z"
|
|
45
|
-
windows[15]{provider,id,label,percentRemaining,resetsAt,state}:
|
|
46
|
-
claude,five_hour,session,82,"2026-03-
|
|
47
|
-
claude,seven_day,week,64,"2026-03-
|
|
48
|
-
claude,seven_day_opus,opus week,93,"2026-03-
|
|
49
|
-
claude,"model:fable",Fable week,71,"2026-03-
|
|
50
|
-
codex,five_hour,session,58,"2026-03-
|
|
51
|
-
codex,weekly,week,47,"2026-03-19T09:
|
|
52
|
-
codex,"model:gpt-5.1-codex:5h",GPT-5.1-Codex session,100,"2026-03-
|
|
53
|
-
cursor,included_usage,included usage,72,"2026-04-01T00:00:00.000Z",fresh
|
|
54
|
-
cursor,auto_usage,auto usage,91,"2026-04-01T00:00:00.000Z",fresh
|
|
55
|
-
cursor,api_usage,API usage,100,"2026-04-01T00:00:00.000Z",fresh
|
|
56
|
-
copilot,chat,chat,84,"2026-04-01T00:00:00.000Z",fresh
|
|
57
|
-
copilot,premium_interactions,premium interactions,53,"2026-04-01T00:00:00.000Z",fresh
|
|
58
|
-
grok,credits,credits,67,"2026-04-01T00:00:00.000Z",fresh
|
|
59
|
-
kimi,weekly,week,74,"2026-03-
|
|
60
|
-
kimi,five_hour,session,88,"2026-03-
|
|
61
|
-
effective[9]{provider,scope,effectivePercentRemaining,boundedBy,limitingWindowIds,unresolvedWindowIds,relationshipStatus}:
|
|
62
|
-
claude,all_models,64,"five_hour + seven_day",seven_day,none,known
|
|
63
|
-
claude,"model:fable",64,"five_hour + seven_day + model:fable",seven_day,none,known
|
|
64
|
-
claude,seven_day_opus,64,"five_hour + seven_day + seven_day_opus",seven_day,none,known
|
|
65
|
-
codex,all_models,47,"five_hour + weekly",weekly,none,known
|
|
66
|
-
codex,"model:gpt-5.1-codex",47,"five_hour + weekly + model:gpt-5.1-codex:5h",weekly,none,known
|
|
67
|
-
cursor,unresolved,unknown,none,unknown,"included_usage + auto_usage + api_usage",unknown
|
|
68
|
-
copilot,unresolved,unknown,none,unknown,"chat + premium_interactions",unknown
|
|
69
|
-
grok,all_products,67,credits,credits,none,known
|
|
70
|
-
kimi,all_models,74,"weekly + five_hour",weekly,none,known
|
|
46
|
+
windows[15]{provider,id,label,percentRemaining,resetsAt,pace,reserve,state}:
|
|
47
|
+
claude,five_hour,session,82,"2026-03-15T20:10:48.000Z",behind,12.4,fresh
|
|
48
|
+
claude,seven_day,week,64,"2026-03-20T17:59:45.600Z",ahead,-8.2,fresh
|
|
49
|
+
claude,seven_day_opus,opus week,93,"2026-03-20T17:29:31.200Z",behind,21.1,fresh
|
|
50
|
+
claude,"model:fable",Fable week,71,"2026-03-20T08:25:12.000Z",behind,4.5,fresh
|
|
51
|
+
codex,five_hour,session,58,"2026-03-15T19:36:54.000Z",on_pace,-0.3,fresh
|
|
52
|
+
codex,weekly,week,47,"2026-03-19T09:54:28.800Z",ahead,-6.1,fresh
|
|
53
|
+
codex,"model:gpt-5.1-codex:5h",GPT-5.1-Codex session,100,"2026-03-15T20:48:00.000Z",behind,18.0,fresh
|
|
54
|
+
cursor,included_usage,included usage,72,"2026-04-01T00:00:00.000Z",unknown,unknown,fresh
|
|
55
|
+
cursor,auto_usage,auto usage,91,"2026-04-01T00:00:00.000Z",unknown,unknown,fresh
|
|
56
|
+
cursor,api_usage,API usage,100,"2026-04-01T00:00:00.000Z",unknown,unknown,fresh
|
|
57
|
+
copilot,chat,chat,84,"2026-04-01T00:00:00.000Z",unknown,unknown,fresh
|
|
58
|
+
copilot,premium_interactions,premium interactions,53,"2026-04-01T00:00:00.000Z",unknown,unknown,fresh
|
|
59
|
+
grok,credits,credits,67,"2026-04-01T00:00:00.000Z",behind,3.6,fresh
|
|
60
|
+
kimi,weekly,week,74,"2026-03-20T12:17:02.400Z",behind,5.2,fresh
|
|
61
|
+
kimi,five_hour,session,88,"2026-03-15T20:45:00.000Z",behind,7.0,fresh
|
|
62
|
+
effective[9]{provider,scope,effectivePercentRemaining,boundedBy,limitingWindowIds,pace,aheadWindows,unknownPace,worstReserve,unresolvedWindowIds,relationshipStatus}:
|
|
63
|
+
claude,all_models,64,"five_hour + seven_day",seven_day,mixed,seven_day,none,-8.2,none,known
|
|
64
|
+
claude,"model:fable",64,"five_hour + seven_day + model:fable",seven_day,mixed,seven_day,none,-8.2,none,known
|
|
65
|
+
claude,seven_day_opus,64,"five_hour + seven_day + seven_day_opus",seven_day,mixed,seven_day,none,-8.2,none,known
|
|
66
|
+
codex,all_models,47,"five_hour + weekly",weekly,ahead,weekly,none,-6.1,none,known
|
|
67
|
+
codex,"model:gpt-5.1-codex",47,"five_hour + weekly + model:gpt-5.1-codex:5h",weekly,mixed,weekly,none,-6.1,none,known
|
|
68
|
+
cursor,unresolved,unknown,none,unknown,unknown,none,none,unknown,"included_usage + auto_usage + api_usage",unknown
|
|
69
|
+
copilot,unresolved,unknown,none,unknown,unknown,none,none,unknown,"chat + premium_interactions",unknown
|
|
70
|
+
grok,all_products,67,credits,credits,behind,none,none,3.6,none,known
|
|
71
|
+
kimi,all_models,74,"weekly + five_hour",weekly,behind,none,none,5.2,none,known
|
|
71
72
|
help[3]:
|
|
72
73
|
Run `quota-axi --provider claude --json` for JSON output
|
|
73
74
|
Run `quota-axi --full` to include account and source-attempt details
|
|
@@ -79,8 +80,8 @@ help[3]:
|
|
|
79
80
|
```sh
|
|
80
81
|
$ quota-axi --provider claude --json
|
|
81
82
|
{
|
|
82
|
-
"generatedAt": "2026-03-15T16:42:
|
|
83
|
-
"schemaVersion":
|
|
83
|
+
"generatedAt": "2026-03-15T16:42:00.000Z",
|
|
84
|
+
"schemaVersion": 3,
|
|
84
85
|
"providers": [
|
|
85
86
|
{
|
|
86
87
|
"provider": "claude",
|
|
@@ -94,7 +95,20 @@ $ quota-axi --provider claude --json
|
|
|
94
95
|
"kind": "session",
|
|
95
96
|
"percentUsed": 18,
|
|
96
97
|
"percentRemaining": 82,
|
|
97
|
-
"resetsAt": "2026-03-
|
|
98
|
+
"resetsAt": "2026-03-15T20:10:48.000Z",
|
|
99
|
+
"windowSeconds": 18000,
|
|
100
|
+
"pace": {
|
|
101
|
+
"status": "behind",
|
|
102
|
+
"timeRemainingPercent": 69.6,
|
|
103
|
+
"elapsedPercent": 30.4,
|
|
104
|
+
"reservePercentPoints": 12.4,
|
|
105
|
+
"burnMultiple": 0.5921,
|
|
106
|
+
"projectedExhaustedAt": "2026-03-15T23:37:28.000Z",
|
|
107
|
+
"projectionConfidence": "established",
|
|
108
|
+
"projectionBasis": "cycle_average",
|
|
109
|
+
"cycleBasis": "window_seconds",
|
|
110
|
+
"cycleSeconds": 18000
|
|
111
|
+
}
|
|
98
112
|
},
|
|
99
113
|
{
|
|
100
114
|
"id": "seven_day",
|
|
@@ -102,7 +116,20 @@ $ quota-axi --provider claude --json
|
|
|
102
116
|
"kind": "weekly",
|
|
103
117
|
"percentUsed": 36,
|
|
104
118
|
"percentRemaining": 64,
|
|
105
|
-
"resetsAt": "2026-03-
|
|
119
|
+
"resetsAt": "2026-03-20T17:59:45.600Z",
|
|
120
|
+
"windowSeconds": 604800,
|
|
121
|
+
"pace": {
|
|
122
|
+
"status": "ahead",
|
|
123
|
+
"timeRemainingPercent": 72.2,
|
|
124
|
+
"elapsedPercent": 27.8,
|
|
125
|
+
"reservePercentPoints": -8.2,
|
|
126
|
+
"burnMultiple": 1.295,
|
|
127
|
+
"projectedExhaustedAt": "2026-03-19T03:43:45.600Z",
|
|
128
|
+
"projectionConfidence": "established",
|
|
129
|
+
"projectionBasis": "cycle_average",
|
|
130
|
+
"cycleBasis": "window_seconds",
|
|
131
|
+
"cycleSeconds": 604800
|
|
132
|
+
}
|
|
106
133
|
},
|
|
107
134
|
{
|
|
108
135
|
"id": "model:fable",
|
|
@@ -110,7 +137,20 @@ $ quota-axi --provider claude --json
|
|
|
110
137
|
"kind": "model",
|
|
111
138
|
"percentUsed": 29,
|
|
112
139
|
"percentRemaining": 71,
|
|
113
|
-
"resetsAt": "2026-03-
|
|
140
|
+
"resetsAt": "2026-03-20T08:25:12.000Z",
|
|
141
|
+
"windowSeconds": 604800,
|
|
142
|
+
"pace": {
|
|
143
|
+
"status": "behind",
|
|
144
|
+
"timeRemainingPercent": 66.5,
|
|
145
|
+
"elapsedPercent": 33.5,
|
|
146
|
+
"reservePercentPoints": 4.5,
|
|
147
|
+
"burnMultiple": 0.8657,
|
|
148
|
+
"projectedExhaustedAt": "2026-03-21T10:29:20.275Z",
|
|
149
|
+
"projectionConfidence": "established",
|
|
150
|
+
"projectionBasis": "cycle_average",
|
|
151
|
+
"cycleBasis": "window_seconds",
|
|
152
|
+
"cycleSeconds": 604800
|
|
153
|
+
}
|
|
114
154
|
}
|
|
115
155
|
],
|
|
116
156
|
"quotaSemantics": {
|
|
@@ -122,14 +162,28 @@ $ quota-axi --provider claude --json
|
|
|
122
162
|
"status": "known",
|
|
123
163
|
"effectivePercentRemaining": 64,
|
|
124
164
|
"boundedBy": ["five_hour", "seven_day"],
|
|
125
|
-
"limitingWindowIds": ["seven_day"]
|
|
165
|
+
"limitingWindowIds": ["seven_day"],
|
|
166
|
+
"pace": {
|
|
167
|
+
"status": "mixed",
|
|
168
|
+
"aheadWindowIds": ["seven_day"],
|
|
169
|
+
"behindWindowIds": ["five_hour"],
|
|
170
|
+
"worstReservePercentPoints": -8.2,
|
|
171
|
+
"worstReserveWindowId": "seven_day"
|
|
172
|
+
}
|
|
126
173
|
},
|
|
127
174
|
{
|
|
128
175
|
"scope": "model:fable",
|
|
129
176
|
"status": "known",
|
|
130
177
|
"effectivePercentRemaining": 64,
|
|
131
178
|
"boundedBy": ["five_hour", "seven_day", "model:fable"],
|
|
132
|
-
"limitingWindowIds": ["seven_day"]
|
|
179
|
+
"limitingWindowIds": ["seven_day"],
|
|
180
|
+
"pace": {
|
|
181
|
+
"status": "mixed",
|
|
182
|
+
"aheadWindowIds": ["seven_day"],
|
|
183
|
+
"behindWindowIds": ["five_hour", "model:fable"],
|
|
184
|
+
"worstReservePercentPoints": -8.2,
|
|
185
|
+
"worstReserveWindowId": "seven_day"
|
|
186
|
+
}
|
|
133
187
|
}
|
|
134
188
|
]
|
|
135
189
|
},
|
|
@@ -258,7 +312,7 @@ It is generated from `src/skill.ts`; update it with `pnpm run build:skill` and v
|
|
|
258
312
|
|
|
259
313
|
## Output Model
|
|
260
314
|
|
|
261
|
-
`--json` emits `schemaVersion:
|
|
315
|
+
`--json` emits `schemaVersion: 3`.
|
|
262
316
|
|
|
263
317
|
### Quota report shape
|
|
264
318
|
|
|
@@ -287,14 +341,17 @@ Claude `identityStatus` is `verified` only when Anthropic returns an authoritati
|
|
|
287
341
|
| `untrustedWindowIds` | Optional identifiers for limits that could not be parsed authoritatively |
|
|
288
342
|
|
|
289
343
|
When stale or unavailable quota is likely fixable by a one-time macOS Keychain grant, `state.reason` is `keychain_access_required`, `state.remedyCommand` is `quota-axi --allow-keychain-prompt`, and JSON includes an agent-directed `help` entry.
|
|
290
|
-
|
|
344
|
+
When Grok's local OIDC session still has a refreshable record but the access token's `expires_at` is past, `state.error` is `Grok access token expired`, `state.reason` is `credentials_expired`, `state.remedyCommand` is `grok`, and JSON includes an agent-directed `help` entry telling the user to open the Grok CLI once so Grok can refresh its local session token. Default JSON exposes that `reason` and `remedyCommand` without requiring `--full`; full output still includes `attempts[].error: credentials_expired`.
|
|
345
|
+
Default TOON output includes the same conditions in an `advice` block with `provider`, `reason`, and `remedyCommand`, plus the agent-directed help line.
|
|
346
|
+
|
|
347
|
+
Claude credential failures without a usable access token preserve the precise `credentials_missing` or `credentials_invalid` error. A usage response with HTTP 401/403 reports `Claude sign-in required`. These definitive failures return no windows and retire the Claude cache instead of masking current authentication state with stale quota.
|
|
291
348
|
|
|
292
349
|
### Quota windows
|
|
293
350
|
|
|
294
|
-
| Field set | Fields
|
|
295
|
-
| --------- |
|
|
296
|
-
| Required | `id`, `label`, `kind`
|
|
297
|
-
| Optional | Percentages, reset fields, `windowSeconds`,
|
|
351
|
+
| Field set | Fields |
|
|
352
|
+
| --------- | ----------------------------------------------------------------------------------------------- |
|
|
353
|
+
| Required | `id`, `label`, `kind` |
|
|
354
|
+
| Optional | Percentages, `startsAt`, reset fields, `windowSeconds`, credit-spend fields, and derived `pace` |
|
|
298
355
|
|
|
299
356
|
Do not interpret a model window's percentage in isolation. `quotaSemantics.effectiveAvailability` reports the effective percentage for each understood scope, the complete `boundedBy` window set used to compute it, and the currently limiting window IDs. `all_models` applies to any model without a more specific scope; a matching `model:*` scope includes both account and model-specific bounds. Grok uses the analogous `all_products` and `product:*` scopes.
|
|
300
357
|
|
|
@@ -302,6 +359,46 @@ A model-specific `scope` names the model window or the shared model prefix when
|
|
|
302
359
|
|
|
303
360
|
`quotaSemantics.status` is `known` only when quota-axi understands the relationships needed for the reported scopes. A non-definitive availability entry omits `effectivePercentRemaining`. Unfamiliar vendor windows produce `partial` or `unknown` semantics and are named in `unresolvedWindowIds`; an empty provider report is `unknown` without inventing an unresolved window.
|
|
304
361
|
|
|
362
|
+
For every stale provider report, raw windows remain available for diagnostics but effective availability is always `unknown` and omits `effectivePercentRemaining` and `limitingWindowIds`. Window pace is `unknown` with reason `stale`, and each effective pace summary is also `unknown`. Routing agents must not treat a stale raw percentage as current headroom.
|
|
363
|
+
|
|
364
|
+
### Pace signals
|
|
365
|
+
|
|
366
|
+
Each window may include a derived `pace` object that compares cumulative usage to elapsed cycle time using the response `generatedAt` clock:
|
|
367
|
+
|
|
368
|
+
```text
|
|
369
|
+
timeRemainingPercent = 100 * (resetsAt - generatedAt) / cycleDuration
|
|
370
|
+
reservePercentPoints = percentRemaining - timeRemainingPercent
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
| `reservePercentPoints` | Meaning |
|
|
374
|
+
| ---------------------- | ---------------------------------------------------------------------------- |
|
|
375
|
+
| Negative | Usage is **ahead** of the reset clock (burning faster than linear); conserve |
|
|
376
|
+
| Positive | Usage is **behind** the reset clock |
|
|
377
|
+
| Within ±1.0 | `on_pace` deadband for API rounding noise |
|
|
378
|
+
|
|
379
|
+
| Pace field | Meaning |
|
|
380
|
+
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
381
|
+
| `status` | `ahead`, `on_pace`, `behind`, or `unknown` |
|
|
382
|
+
| `reason` | Why pace is unknown (`stale`, `missing_usage`, `missing_cycle`, `invalid_cycle`, `future_cycle_start`, `expired_reset`, `unsupported_period`) |
|
|
383
|
+
| `timeRemainingPercent` / `elapsedPercent` | Cycle progress from `generatedAt` |
|
|
384
|
+
| `reservePercentPoints` | Signed residual capacity vs the linear clock |
|
|
385
|
+
| `burnMultiple` | `percentUsed / elapsedPercent` when elapsed > 0 |
|
|
386
|
+
| `projectedExhaustedAt` | Linear cycle-average exhaustion timestamp when defined |
|
|
387
|
+
| `projectionConfidence` | `early` when elapsed < 10% of the cycle; otherwise `established` |
|
|
388
|
+
| `projectionBasis` | Currently always `cycle_average` |
|
|
389
|
+
| `cycleBasis` | `starts_at_resets_at` when both boundaries are trusted; otherwise `window_seconds` with `resetsAt` |
|
|
390
|
+
| `cycleSeconds` | Trusted cycle duration used for the math |
|
|
391
|
+
|
|
392
|
+
Pace is calculated only from trusted cycle evidence:
|
|
393
|
+
|
|
394
|
+
- Prefer provider-reported `startsAt` + `resetsAt` (Grok current period).
|
|
395
|
+
- Otherwise use provider-owned `windowSeconds` with `resetsAt` (Codex durations; Claude fixed 5h/7d; Kimi fixed 5h/weekly).
|
|
396
|
+
- Do not infer monthly, rolling, or unlabeled periods.
|
|
397
|
+
|
|
398
|
+
Default TOON keeps token cost low: window rows expose `pace` status and signed `reserve` only. Full projection evidence is in `--json`. Pace is recomputed on every report from `generatedAt` and is not written to the quota cache.
|
|
399
|
+
|
|
400
|
+
Each `effectiveAvailability` entry also carries a compact `pace` summary over **every** bounding window for that scope (not only the current lowest-remaining limiter): per-status window lists, including `aheadWindowIds` and `unknownWindowIds`, plus `worstReservePercentPoints` / `worstReserveWindowId` (most negative signed reserve among known-pace windows). Different windows keep their own reset horizons; quota-axi does not invent one synthetic reset for a scope. This is factual inspectable data, never a provider/model routing recommendation.
|
|
401
|
+
|
|
305
402
|
### Quota enums
|
|
306
403
|
|
|
307
404
|
| Name | Values |
|
|
@@ -310,6 +407,10 @@ A model-specific `scope` names the model window or the shared model prefix when
|
|
|
310
407
|
| Provider sources | `oauth`, `cli-rpc`, `api`, `web`, `cache`, or `unavailable` |
|
|
311
408
|
| Current provider adapter sources | `oauth`, `cli-rpc`, `api`, `web`, `cache`, and `unavailable` |
|
|
312
409
|
| Window kinds | `session`, `weekly`, `monthly`, `model`, `credits`, or `unknown` |
|
|
410
|
+
| Window pace statuses | `ahead`, `on_pace`, `behind`, or `unknown` |
|
|
411
|
+
| Effective pace statuses | `ahead`, `on_pace`, `behind`, `mixed`, or `unknown` |
|
|
412
|
+
| Pace projection confidence | `early` or `established` |
|
|
413
|
+
| Pace cycle basis | `starts_at_resets_at` or `window_seconds` |
|
|
313
414
|
| Quota relationship statuses | `known`, `partial`, or `unknown` |
|
|
314
415
|
| Source attempt statuses | `success`, `failed`, or `skipped` |
|
|
315
416
|
|
|
@@ -319,14 +420,14 @@ Source attempts can include `credentialPresent` when a non-secret probe confirms
|
|
|
319
420
|
|
|
320
421
|
| Provider | Windows and capabilities |
|
|
321
422
|
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
322
|
-
| Claude | Can report `five_hour`, `seven_day`, optional `seven_day_opus`, and optional `extra_usage` windows.
|
|
323
|
-
| 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.
|
|
423
|
+
| Claude | Can report `five_hour`, `seven_day`, optional `seven_day_opus`, and optional `extra_usage` windows. Trusted session/weekly/model windows emit fixed `windowSeconds` (18,000 or 604,800) for pace; `extra_usage` does not invent a monthly duration. |
|
|
424
|
+
| 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 with the same trusted weekly duration. |
|
|
324
425
|
| Codex | Identifies exact 18,000-second and 604,800-second periods as `five_hour` and `weekly`, regardless of source slot; periods without a duration retain their positional identity. Additional model- or feature-scoped limits use `model:<id>:5h` / `model:<id>:7d`, and code-review limits use `code_review_five_hour` / `code_review_weekly`. Unfamiliar durations remain honest `<hours>h` windows instead of being classified as known periods. Duplicate derived IDs are preserved with `_2`, `_3`, and later suffixes. Optional credit balance data can also appear. |
|
|
325
|
-
| Cursor | Can report `included_usage`, `auto_usage`, `api_usage`, and optional `spend_limit` windows.
|
|
326
|
-
| 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.
|
|
327
|
-
| 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.
|
|
426
|
+
| Cursor | Can report `included_usage`, `auto_usage`, `api_usage`, and optional `spend_limit` windows. Monthly labels alone are not trusted cycle evidence, so pace stays `unknown` unless a future provider duration appears. |
|
|
427
|
+
| 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. Pace stays `unknown` without trusted cycle boundaries. |
|
|
428
|
+
| Grok | Reports the shared `credits` window, optional product-scoped `product:<slug>` windows, the current-period `startsAt` and reset, and optional prepaid credit balance from the consumer Usage-page operation. Top-level `credits.remaining` is prepaid/on-demand balance, distinct from the shared period `windows` credits percentage used for effective availability. Pace prefers the startsAt/resetsAt pair. |
|
|
328
429
|
| 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. |
|
|
329
|
-
| Kimi | Reports the principal `weekly` subscription window plus every valid self-described limit in wire order. Only a limit whose normalized duration is exactly 18,000 seconds is identified as `five_hour`; future limits remain `limit:<index>` unknown windows.
|
|
430
|
+
| Kimi | Reports the principal `weekly` subscription window (with trusted 604,800s duration) plus every valid self-described limit in wire order. Only a limit whose normalized duration is exactly 18,000 seconds is identified as `five_hour`; future limits remain `limit:<index>` unknown windows. |
|
|
330
431
|
|
|
331
432
|
### `auth --json` shape
|
|
332
433
|
|
|
@@ -347,22 +448,26 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
|
|
|
347
448
|
|
|
348
449
|
### Provider credential sources
|
|
349
450
|
|
|
350
|
-
| Provider | Credential sources read
|
|
351
|
-
| -------------- |
|
|
352
|
-
| Claude | `$CLAUDE_CONFIG_DIR/.credentials.json` or `~/.claude/.credentials.json`; on macOS, the corresponding default or path-hashed Claude Code Keychain value with `--allow-keychain-prompt` or, after a profile-scoped non-secret access marker exists, on plain calls
|
|
353
|
-
| Codex | `$CODEX_HOME/auth.json` or `~/.codex/auth.json` before the read-only CLI fallback; `$QUOTA_AXI_CODEX_BINARY` can pin that fallback to an absolute executable path
|
|
354
|
-
| Cursor | `$CURSOR_STATE_DB` when set or the platform Cursor state database path
|
|
355
|
-
| GitHub Copilot | `$GITHUB_COPILOT_APPS_JSON` when set or the local Copilot apps auth file
|
|
356
|
-
| Grok | `$GROK_AUTH_JSON`, inline `$GROK_AUTH`, `$GROK_AUTH_PATH`, or `$GROK_HOME/auth.json` / `~/.grok/auth.json`
|
|
357
|
-
| Kimi | Pi's `$PI_CODING_AGENT_DIR/auth.json` (default `~/.pi/agent/auth.json`) for a literal `kimi-coding` API key first, then a fresh official Kimi Code CLI access token from `$KIMI_CODE_HOME/credentials/kimi-code.json` (default `$HOME/.kimi-code/credentials/kimi-code.json`)
|
|
451
|
+
| Provider | Credential sources read |
|
|
452
|
+
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
453
|
+
| Claude | `$CLAUDE_CONFIG_DIR/.credentials.json` or `~/.claude/.credentials.json`; on macOS, the corresponding default or path-hashed Claude Code Keychain value pinned to Claude Code's validated current-user account, with `--allow-keychain-prompt` or, after a profile-and-account-scoped non-secret access marker exists, on plain calls |
|
|
454
|
+
| Codex | `$CODEX_HOME/auth.json` or `~/.codex/auth.json` before the read-only CLI fallback; `$QUOTA_AXI_CODEX_BINARY` can pin that fallback to an absolute executable path |
|
|
455
|
+
| Cursor | `$CURSOR_STATE_DB` when set or the platform Cursor state database path |
|
|
456
|
+
| GitHub Copilot | `$GITHUB_COPILOT_APPS_JSON` when set or the local Copilot apps auth file |
|
|
457
|
+
| Grok | `$GROK_AUTH_JSON`, inline `$GROK_AUTH`, `$GROK_AUTH_PATH`, or `$GROK_HOME/auth.json` / `~/.grok/auth.json` |
|
|
458
|
+
| Kimi | Pi's `$PI_CODING_AGENT_DIR/auth.json` (default `~/.pi/agent/auth.json`) for a literal `kimi-coding` API key first, then a fresh official Kimi Code CLI access token from `$KIMI_CODE_HOME/credentials/kimi-code.json` (default `$HOME/.kimi-code/credentials/kimi-code.json`) |
|
|
358
459
|
|
|
359
460
|
### Provider notes
|
|
360
461
|
|
|
361
462
|
**Claude**
|
|
362
463
|
|
|
363
|
-
- quota-axi
|
|
364
|
-
-
|
|
365
|
-
-
|
|
464
|
+
- quota-axi mirrors Claude Code's Keychain account selector: nonempty `USER`, otherwise the operating-system username, validated against Claude Code's safe account pattern with the same `claude-code-user` fallback. Both presence and value reads require that account plus the resolved service. There is no ambiguous service-only fallback.
|
|
465
|
+
- quota-axi records the non-secret access marker after any successful pinned Keychain value read.
|
|
466
|
+
- When that profile-and-account-scoped marker exists, plain calls read the pinned Keychain value again so an already-approved "Always Allow" grant keeps live Claude quota fresh. Legacy service-only markers remain untouched but do not authorize a value read.
|
|
467
|
+
- Without the flag or the current marker, quota-axi may perform a non-secret pinned Keychain item presence check so it only suggests Keychain access when the selected Claude credential item exists.
|
|
468
|
+
- In `--full` output, Claude usage attempts identify `oauth-file` or `keychain` as the credential discovery source. They never include the Keychain account.
|
|
469
|
+
- When an access token exists, local `expiresAt` metadata is advisory. quota-axi sends that token only to Anthropic's existing read-only usage request; success returns fresh quota, while HTTP 401/403 is the definitive authentication result.
|
|
470
|
+
- Missing or invalid credentials without a usable access token and usage HTTP 401/403 bypass and best-effort retire Claude cache. Timeout, network, rate-limit, server, and response-compatibility failures may use only a formerly fresh Claude snapshot less than seven days old. Reset-expired windows are removed; resetless session, monthly, and credit windows expire after five hours, resetless weekly and model windows expire after seven days, and resetless unknown windows are rejected.
|
|
366
471
|
- After a successful usage read, quota-axi queries Anthropic's first-party OAuth profile endpoint with the same credential. Its authoritative root `account.uuid` is exposed as `account.accountId` only in `--full` output; if that field is absent, `identityStatus` is `unverified` instead of deriving an identity from email, organization data, or cached account metadata.
|
|
367
472
|
|
|
368
473
|
**Codex**
|
|
@@ -385,6 +490,7 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
|
|
|
385
490
|
|
|
386
491
|
- 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.
|
|
387
492
|
- 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.
|
|
493
|
+
- The Grok CLI owns OIDC access-token refresh and rewrites `~/.grok/auth.json`; quota-axi only reads the resulting session and never refreshes tokens itself. Expired-session classification and recovery fields are documented under [Provider `state`](#provider-state).
|
|
388
494
|
- It does not send browser cookies, launch the Grok CLI, refresh credentials, perform OAuth, retain raw response bodies, or derive usage from monetary fields.
|
|
389
495
|
|
|
390
496
|
**Kimi**
|
|
@@ -406,17 +512,18 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
|
|
|
406
512
|
|
|
407
513
|
### Cache
|
|
408
514
|
|
|
409
|
-
| Item | Behavior
|
|
410
|
-
| -------------------------------------- |
|
|
411
|
-
| Quota cache | Lives at `~/.cache/quota-axi/quotas.json` or under `$XDG_CACHE_HOME/quota-axi/` when `XDG_CACHE_HOME` is set.
|
|
412
|
-
| Quota cache permissions | Uses `0600` file permissions.
|
|
413
|
-
| Quota cache contents | Stores normalized non-secret snapshots only.
|
|
414
|
-
| Claude Keychain access marker | Lives alongside the quota cache as `claude-keychain-access-granted
|
|
415
|
-
| Cached reports | Only fresh provider snapshots with windows are cached.
|
|
416
|
-
| Fresh provider reports with no windows | Clear any cached snapshot for that provider, so entitlement-only reports do not leave stale quota windows behind.
|
|
417
|
-
| Reports and details not cached | Failed providers, stale providers, account identity, and source attempts are not cached.
|
|
418
|
-
|
|
|
419
|
-
|
|
|
515
|
+
| Item | Behavior |
|
|
516
|
+
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
517
|
+
| Quota cache | Lives at `~/.cache/quota-axi/quotas.json` or under `$XDG_CACHE_HOME/quota-axi/` when `XDG_CACHE_HOME` is set. |
|
|
518
|
+
| Quota cache permissions | Uses `0600` file permissions. |
|
|
519
|
+
| Quota cache contents | Stores normalized non-secret snapshots only. |
|
|
520
|
+
| Claude Keychain access marker | Lives alongside the quota cache as `claude-keychain-access-granted[-<profile-hash>]-account-<account-hash>`; the profile hash is eight hexadecimal characters when applicable and the account hash is sixteen. It uses `0600` file permissions, contains no credential material or raw account name, and legacy service-only markers are ignored rather than deleted. |
|
|
521
|
+
| Cached reports | Only fresh provider snapshots with windows are cached. |
|
|
522
|
+
| Fresh provider reports with no windows | Clear any cached snapshot for that provider, so entitlement-only reports do not leave stale quota windows behind. |
|
|
523
|
+
| Reports and details not cached | Failed providers, stale providers, account identity, and source attempts are not cached. |
|
|
524
|
+
| Claude cache fallback | Definitive missing/invalid credential and HTTP 401/403 failures retire the snapshot. Only transient failures may use a formerly fresh snapshot, with a seven-day provider bound plus reset and resetless-window pruning. |
|
|
525
|
+
| Codex cache identities | Cached Codex windows are accepted only when ID, label, kind, duration, and duplicate suffix order agree; stale snapshots with mismatched identities are rejected. |
|
|
526
|
+
| 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. |
|
|
420
527
|
|
|
421
528
|
## Development
|
|
422
529
|
|
package/dist/src/advice.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { QuotaAxiResponse } from "./types.js";
|
|
2
2
|
export declare const KEYCHAIN_ACCESS_REASON = "keychain_access_required";
|
|
3
3
|
export declare const KEYCHAIN_ACCESS_REMEDY_COMMAND = "quota-axi --allow-keychain-prompt";
|
|
4
|
+
export declare const CREDENTIALS_EXPIRED_REASON = "credentials_expired";
|
|
5
|
+
export declare const GROK_TOKEN_REFRESH_REMEDY_COMMAND = "grok";
|
|
6
|
+
export declare const GROK_ACCESS_TOKEN_EXPIRED_ERROR = "Grok access token expired";
|
|
4
7
|
export declare function annotateQuotaAdvice(response: Omit<QuotaAxiResponse, "schemaVersion">): QuotaAxiResponse;
|
|
5
8
|
export declare function quotaHelpLines(response: QuotaAxiResponse): string[];
|
package/dist/src/advice.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
export const KEYCHAIN_ACCESS_REASON = "keychain_access_required";
|
|
2
2
|
export const KEYCHAIN_ACCESS_REMEDY_COMMAND = "quota-axi --allow-keychain-prompt";
|
|
3
|
+
export const CREDENTIALS_EXPIRED_REASON = "credentials_expired";
|
|
4
|
+
export const GROK_TOKEN_REFRESH_REMEDY_COMMAND = "grok";
|
|
5
|
+
export const GROK_ACCESS_TOKEN_EXPIRED_ERROR = "Grok access token expired";
|
|
3
6
|
const BLOCKED_CREDENTIAL_ERRORS = new Set([
|
|
4
7
|
"credentials_expired",
|
|
5
8
|
"credentials_missing",
|
|
6
9
|
]);
|
|
7
10
|
export function annotateQuotaAdvice(response) {
|
|
8
11
|
const providers = response.providers.map(annotateProviderAdvice);
|
|
9
|
-
const help = providers
|
|
10
|
-
.filter(hasKeychainAccessAdvice)
|
|
11
|
-
.map(keychainAccessHelpLine);
|
|
12
|
+
const help = providers.flatMap(providerHelpLines);
|
|
12
13
|
return {
|
|
13
14
|
generatedAt: response.generatedAt,
|
|
14
|
-
schemaVersion:
|
|
15
|
+
schemaVersion: 3,
|
|
15
16
|
providers,
|
|
16
17
|
...(help.length > 0 ? { help } : {}),
|
|
17
18
|
};
|
|
@@ -25,16 +26,27 @@ export function quotaHelpLines(response) {
|
|
|
25
26
|
];
|
|
26
27
|
}
|
|
27
28
|
function annotateProviderAdvice(provider) {
|
|
28
|
-
if (
|
|
29
|
-
return
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
}
|
|
29
|
+
if (needsKeychainAccessAdvice(provider)) {
|
|
30
|
+
return {
|
|
31
|
+
...provider,
|
|
32
|
+
state: {
|
|
33
|
+
...provider.state,
|
|
34
|
+
reason: KEYCHAIN_ACCESS_REASON,
|
|
35
|
+
remedyCommand: KEYCHAIN_ACCESS_REMEDY_COMMAND,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (needsGrokTokenRefreshAdvice(provider)) {
|
|
40
|
+
return {
|
|
41
|
+
...provider,
|
|
42
|
+
state: {
|
|
43
|
+
...provider.state,
|
|
44
|
+
reason: CREDENTIALS_EXPIRED_REASON,
|
|
45
|
+
remedyCommand: GROK_TOKEN_REFRESH_REMEDY_COMMAND,
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return provider;
|
|
38
50
|
}
|
|
39
51
|
function needsKeychainAccessAdvice(provider) {
|
|
40
52
|
const attempts = provider.attempts ?? [];
|
|
@@ -43,6 +55,11 @@ function needsKeychainAccessAdvice(provider) {
|
|
|
43
55
|
attempts.some(isBlockedCredentialAttempt) &&
|
|
44
56
|
attempts.some(isPromptBlockedKeychainAttempt));
|
|
45
57
|
}
|
|
58
|
+
function needsGrokTokenRefreshAdvice(provider) {
|
|
59
|
+
return (provider.provider === "grok" &&
|
|
60
|
+
provider.state.status !== "fresh" &&
|
|
61
|
+
provider.state.error === GROK_ACCESS_TOKEN_EXPIRED_ERROR);
|
|
62
|
+
}
|
|
46
63
|
function isBlockedCredentialAttempt(attempt) {
|
|
47
64
|
return (attempt.source !== "keychain" &&
|
|
48
65
|
attempt.status === "skipped" &&
|
|
@@ -54,11 +71,25 @@ function isPromptBlockedKeychainAttempt(attempt) {
|
|
|
54
71
|
attempt.error === "keychain_prompt_required" &&
|
|
55
72
|
attempt.credentialPresent === true);
|
|
56
73
|
}
|
|
74
|
+
function providerHelpLines(provider) {
|
|
75
|
+
if (hasKeychainAccessAdvice(provider))
|
|
76
|
+
return [keychainAccessHelpLine(provider)];
|
|
77
|
+
if (hasGrokTokenRefreshAdvice(provider))
|
|
78
|
+
return [grokTokenRefreshHelpLine()];
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
57
81
|
function hasKeychainAccessAdvice(provider) {
|
|
58
82
|
return (provider.state.reason === KEYCHAIN_ACCESS_REASON &&
|
|
59
83
|
provider.state.remedyCommand === KEYCHAIN_ACCESS_REMEDY_COMMAND);
|
|
60
84
|
}
|
|
85
|
+
function hasGrokTokenRefreshAdvice(provider) {
|
|
86
|
+
return (provider.state.reason === CREDENTIALS_EXPIRED_REASON &&
|
|
87
|
+
provider.state.remedyCommand === GROK_TOKEN_REFRESH_REMEDY_COMMAND);
|
|
88
|
+
}
|
|
61
89
|
function keychainAccessHelpLine(provider) {
|
|
62
90
|
return `Tell your user: run \`${KEYCHAIN_ACCESS_REMEDY_COMMAND}\` once and approve Keychain access ("Always Allow") so quota-axi can read ${provider.provider}'s live quota.`;
|
|
63
91
|
}
|
|
92
|
+
function grokTokenRefreshHelpLine() {
|
|
93
|
+
return `Tell your user: open the Grok CLI (\`${GROK_TOKEN_REFRESH_REMEDY_COMMAND}\`) once so it can refresh Grok's local session token. quota-axi does not refresh credentials.`;
|
|
94
|
+
}
|
|
64
95
|
//# sourceMappingURL=advice.js.map
|
package/dist/src/advice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advice.js","sourceRoot":"","sources":["../../src/advice.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AACjE,MAAM,CAAC,MAAM,8BAA8B,GACzC,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"advice.js","sourceRoot":"","sources":["../../src/advice.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cache.js
CHANGED
|
@@ -220,6 +220,7 @@ function normalizeCachedWindow(raw) {
|
|
|
220
220
|
const result = { id, label, kind };
|
|
221
221
|
assignNumber(result, "percentUsed", data.percentUsed);
|
|
222
222
|
assignNumber(result, "percentRemaining", data.percentRemaining);
|
|
223
|
+
assignString(result, "startsAt", data.startsAt);
|
|
223
224
|
assignString(result, "resetsAt", data.resetsAt);
|
|
224
225
|
assignString(result, "resetText", data.resetText);
|
|
225
226
|
assignNumber(result, "windowSeconds", data.windowSeconds);
|
package/dist/src/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/src/commands.js
CHANGED
|
@@ -33,9 +33,10 @@ export async function authCommand(args, context) {
|
|
|
33
33
|
: renderAuthToon(reports, binPath);
|
|
34
34
|
}
|
|
35
35
|
async function fetchQuota(providers, options) {
|
|
36
|
-
const
|
|
36
|
+
const generatedAt = nowIso();
|
|
37
|
+
const results = (await Promise.all(providers.map((provider) => PROVIDERS[provider].fetchQuota(options)))).map((provider) => withQuotaSemantics(provider, generatedAt));
|
|
37
38
|
return annotateQuotaAdvice({
|
|
38
|
-
generatedAt
|
|
39
|
+
generatedAt,
|
|
39
40
|
providers: results,
|
|
40
41
|
});
|
|
41
42
|
}
|