@allixsenos/asu 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -67
- package/dist/output.js +11 -5
- package/dist/output.js.map +1 -1
- package/dist/providers/parse.js +2 -1
- package/dist/providers/parse.js.map +1 -1
- package/docs/agent-usage.md +5 -1
- package/docs/architecture.md +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,31 +11,31 @@ npx --yes @allixsenos/asu --table
|
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
```text
|
|
14
|
-
ASU · 2026-09-
|
|
14
|
+
ASU · 2026-09-08T12:54:06.628Z
|
|
15
15
|
┌──────────────────┬────────────────────┬───────────────────────┬───────────────────────┬────────────────────┐
|
|
16
16
|
│ Provider │ Plan / status │ Window / balance │ Usage │ Resets in │
|
|
17
17
|
├──────────────────┼────────────────────┼───────────────────────┼───────────────────────┼────────────────────┤
|
|
18
|
-
│ Claude │ Max 20x │ 5 hours │
|
|
19
|
-
│ │
|
|
18
|
+
│ Claude │ Max 20x │ 5 hours │ 35% used │ 1h36m │
|
|
19
|
+
│ │ active │ │ │ │
|
|
20
20
|
│ │ fresh │ │ │ │
|
|
21
|
-
│ │ │ Weekly │
|
|
22
|
-
│ │ │ Weekly · Fable │
|
|
21
|
+
│ │ │ Weekly │ 11% used │ 6d16h (Tue 15 Sep) │
|
|
22
|
+
│ │ │ Weekly · Fable │ 11% used │ 6d16h (Tue 15 Sep) │
|
|
23
23
|
│ │ │ Extra usage │ Disabled │ — │
|
|
24
24
|
├──────────────────┼────────────────────┼───────────────────────┼───────────────────────┼────────────────────┤
|
|
25
25
|
│ Codex │ Plus │ 5 hours │ 0% used │ 5h │
|
|
26
|
-
│ │
|
|
26
|
+
│ │ active │ │ │ │
|
|
27
27
|
│ │ fresh │ │ │ │
|
|
28
28
|
│ │ │ Weekly │ 0% used │ 7d (Tue 15 Sep) │
|
|
29
29
|
│ │ │ Gpt Reserve · Weekly │ 0% used │ 7d (Tue 15 Sep) │
|
|
30
30
|
│ │ │ Credits │ 0 credits left │ — │
|
|
31
31
|
│ │ │ Credits available │ No │ — │
|
|
32
32
|
├──────────────────┼────────────────────┼───────────────────────┼───────────────────────┼────────────────────┤
|
|
33
|
-
│ GitHub Copilot │ Individual │ Chat │ 0% used │
|
|
34
|
-
│ │
|
|
33
|
+
│ GitHub Copilot │ Individual │ Chat │ 0% used │ 22d11h (Thu 1 Oct) │
|
|
34
|
+
│ │ active │ │ 0 / 200 requests │ │
|
|
35
35
|
│ │ fresh │ │ │ │
|
|
36
|
-
│ │ │ Completions │ 0% used │
|
|
36
|
+
│ │ │ Completions │ 0% used │ 22d11h (Thu 1 Oct) │
|
|
37
37
|
│ │ │ │ 0 / 2,000 requests │ │
|
|
38
|
-
│ │ │ Premium Interactions │ 100% used │
|
|
38
|
+
│ │ │ Premium Interactions │ 100% used │ 22d11h (Thu 1 Oct) │
|
|
39
39
|
│ │ │ │ 0 / 0 requests │ │
|
|
40
40
|
└──────────────────┴────────────────────┴───────────────────────┴───────────────────────┴────────────────────┘
|
|
41
41
|
Claude: fetched <1m ago; cache expires in 5m.
|
|
@@ -84,7 +84,7 @@ This needs Git. The repository commits the built `dist/` directory, so the insta
|
|
|
84
84
|
|
|
85
85
|
## Real account output
|
|
86
86
|
|
|
87
|
-
We fetched the snapshot below on **2026-09-
|
|
87
|
+
We fetched the snapshot below on **2026-09-08 at 12:54 UTC** from the maintainer's authenticated Claude, Codex, and GitHub Copilot accounts on Linux. These are real provider-reported figures, not fixtures or estimates. They become stale as usage changes.
|
|
88
88
|
|
|
89
89
|
The capture used the local checkout:
|
|
90
90
|
|
|
@@ -101,37 +101,36 @@ Without `--utc`, the table and the plain text show reset, fetch, and expiry time
|
|
|
101
101
|
Use `--table` for this view. It is also the default in an interactive terminal that is wide enough. When a cell would wrap, the default falls back to plain text. Pass `--table` to force the table.
|
|
102
102
|
|
|
103
103
|
```text
|
|
104
|
-
ASU · 2026-09-
|
|
104
|
+
ASU · 2026-09-08T12:54:06.628Z
|
|
105
105
|
┌──────────────────┬────────────────────┬───────────────────────┬───────────────────────┬────────────────────┐
|
|
106
106
|
│ Provider │ Plan / status │ Window / balance │ Usage │ Resets (UTC) │
|
|
107
107
|
├──────────────────┼────────────────────┼───────────────────────┼───────────────────────┼────────────────────┤
|
|
108
|
-
│ Claude │ Max 20x │ 5 hours │
|
|
109
|
-
│ │
|
|
108
|
+
│ Claude │ Max 20x │ 5 hours │ 35% used │ 2026-09-08 14:30 │
|
|
109
|
+
│ │ active │ │ │ │
|
|
110
110
|
│ │ fresh │ │ │ │
|
|
111
|
-
│ │ │ Weekly │
|
|
112
|
-
│ │ │ Weekly · Fable │
|
|
111
|
+
│ │ │ Weekly │ 11% used │ 2026-09-15 05:00 │
|
|
112
|
+
│ │ │ Weekly · Fable │ 11% used │ 2026-09-15 05:00 │
|
|
113
|
+
│ │ │ Extra usage │ Disabled │ — │
|
|
113
114
|
├──────────────────┼────────────────────┼───────────────────────┼───────────────────────┼────────────────────┤
|
|
114
|
-
│ Codex │ Plus │ 5 hours │
|
|
115
|
-
│ │
|
|
115
|
+
│ Codex │ Plus │ 5 hours │ 0% used │ 2026-09-08 17:54 │
|
|
116
|
+
│ │ active │ │ │ │
|
|
116
117
|
│ │ fresh │ │ │ │
|
|
117
|
-
│ │ │ Weekly │
|
|
118
|
-
│ │ │ Gpt Reserve · Weekly │ 0% used │ 2026-09-
|
|
118
|
+
│ │ │ Weekly │ 0% used │ 2026-09-15 12:54 │
|
|
119
|
+
│ │ │ Gpt Reserve · Weekly │ 0% used │ 2026-09-15 12:54 │
|
|
119
120
|
│ │ │ Credits │ 0 credits left │ — │
|
|
121
|
+
│ │ │ Credits available │ No │ — │
|
|
120
122
|
├──────────────────┼────────────────────┼───────────────────────┼───────────────────────┼────────────────────┤
|
|
121
123
|
│ GitHub Copilot │ Individual │ Chat │ 0% used │ 2026-10-01 00:00 │
|
|
122
|
-
│ │
|
|
124
|
+
│ │ active │ │ 0 / 200 requests │ │
|
|
123
125
|
│ │ fresh │ │ │ │
|
|
124
126
|
│ │ │ Completions │ 0% used │ 2026-10-01 00:00 │
|
|
125
127
|
│ │ │ │ 0 / 2,000 requests │ │
|
|
126
128
|
│ │ │ Premium Interactions │ 100% used │ 2026-10-01 00:00 │
|
|
127
129
|
│ │ │ │ 0 / 0 requests │ │
|
|
128
130
|
└──────────────────┴────────────────────┴───────────────────────┴───────────────────────┴────────────────────┘
|
|
129
|
-
Claude:
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
Credits available: No
|
|
133
|
-
GitHub Copilot: installed: yes, authenticated: yes. Fetched 2026-09-07T12:18:06.252Z; cache expires 2026-09-07T12:23:06.252Z.
|
|
134
|
-
Quota reset: 2026-10-01T00:00:00.000Z
|
|
131
|
+
Claude: fetched 2026-09-08T12:54:06.286Z; cache expires 2026-09-08T12:59:06.286Z.
|
|
132
|
+
Codex: fetched 2026-09-08T12:54:06.628Z; cache expires 2026-09-08T12:59:06.628Z.
|
|
133
|
+
GitHub Copilot: fetched 2026-09-08T12:54:06.283Z; cache expires 2026-09-08T12:59:06.283Z.
|
|
135
134
|
```
|
|
136
135
|
|
|
137
136
|
Read Copilot's premium row with care. The endpoint returned zero entitlement, zero remaining requests, and zero percent remaining. ASU therefore shows `100% used` next to `0 / 0 requests`. This does **not** show that anyone consumed a premium request. The internal endpoint can return legacy quota information. Treat its quantities as the provider's reported snapshot, not as a complete billing statement.
|
|
@@ -144,35 +143,34 @@ Use `--plain` for readable output in logs and pipes. It is the default when stdo
|
|
|
144
143
|
<summary>Show the complete plain-text output</summary>
|
|
145
144
|
|
|
146
145
|
```text
|
|
147
|
-
ASU · 2026-09-
|
|
146
|
+
ASU · 2026-09-08T12:54:06.628Z
|
|
148
147
|
|
|
149
148
|
Claude (claude)
|
|
150
|
-
|
|
149
|
+
active
|
|
151
150
|
Plan: Max 20x
|
|
152
|
-
5 hours:
|
|
153
|
-
Weekly:
|
|
154
|
-
Weekly · Fable:
|
|
151
|
+
5 hours: 35% used; resets 2026-09-08T14:30:00.000Z
|
|
152
|
+
Weekly: 11% used; resets 2026-09-15T05:00:00.000Z
|
|
153
|
+
Weekly · Fable: 11% used; resets 2026-09-15T05:00:00.000Z
|
|
155
154
|
Extra usage: Disabled
|
|
156
|
-
Fetched 2026-09-
|
|
155
|
+
Fetched 2026-09-08T12:54:06.286Z; fresh; expires 2026-09-08T12:59:06.286Z
|
|
157
156
|
|
|
158
157
|
Codex (codex)
|
|
159
|
-
|
|
158
|
+
active
|
|
160
159
|
Plan: Plus
|
|
161
|
-
5 hours:
|
|
162
|
-
Weekly:
|
|
163
|
-
Gpt Reserve · Weekly: 0% used; resets 2026-09-
|
|
160
|
+
5 hours: 0% used; resets 2026-09-08T17:54:06.000Z
|
|
161
|
+
Weekly: 0% used; resets 2026-09-15T12:54:06.000Z
|
|
162
|
+
Gpt Reserve · Weekly: 0% used; resets 2026-09-15T12:54:06.000Z
|
|
164
163
|
Credits: 0 credits left
|
|
165
164
|
Credits available: No
|
|
166
|
-
Fetched 2026-09-
|
|
165
|
+
Fetched 2026-09-08T12:54:06.628Z; fresh; expires 2026-09-08T12:59:06.628Z
|
|
167
166
|
|
|
168
167
|
GitHub Copilot (copilot)
|
|
169
|
-
|
|
168
|
+
active
|
|
170
169
|
Plan: Individual
|
|
171
170
|
Chat: 0% used; 0 / 200 requests; resets 2026-10-01T00:00:00.000Z
|
|
172
171
|
Completions: 0% used; 0 / 2,000 requests; resets 2026-10-01T00:00:00.000Z
|
|
173
172
|
Premium Interactions: 100% used; 0 / 0 requests; resets 2026-10-01T00:00:00.000Z
|
|
174
|
-
|
|
175
|
-
Fetched 2026-09-07T12:18:06.252Z; fresh; expires 2026-09-07T12:23:06.252Z
|
|
173
|
+
Fetched 2026-09-08T12:54:06.283Z; fresh; expires 2026-09-08T12:59:06.283Z
|
|
176
174
|
```
|
|
177
175
|
|
|
178
176
|
</details>
|
|
@@ -187,7 +185,7 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
187
185
|
```json
|
|
188
186
|
{
|
|
189
187
|
"schemaVersion": 1,
|
|
190
|
-
"generatedAt": "2026-09-
|
|
188
|
+
"generatedAt": "2026-09-08T12:54:06.628Z",
|
|
191
189
|
"warnings": [],
|
|
192
190
|
"providers": [
|
|
193
191
|
{
|
|
@@ -196,20 +194,20 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
196
194
|
{
|
|
197
195
|
"id": "five_hour",
|
|
198
196
|
"label": "5 hours",
|
|
199
|
-
"percentUsed":
|
|
200
|
-
"resetsAt": "2026-09-
|
|
197
|
+
"percentUsed": 35,
|
|
198
|
+
"resetsAt": "2026-09-08T14:30:00.000Z"
|
|
201
199
|
},
|
|
202
200
|
{
|
|
203
201
|
"id": "seven_day",
|
|
204
202
|
"label": "Weekly",
|
|
205
|
-
"percentUsed":
|
|
206
|
-
"resetsAt": "2026-09-
|
|
203
|
+
"percentUsed": 11,
|
|
204
|
+
"resetsAt": "2026-09-15T05:00:00.000Z"
|
|
207
205
|
},
|
|
208
206
|
{
|
|
209
207
|
"id": "weekly-model-fable",
|
|
210
208
|
"label": "Weekly · Fable",
|
|
211
|
-
"percentUsed":
|
|
212
|
-
"resetsAt": "2026-09-
|
|
209
|
+
"percentUsed": 11,
|
|
210
|
+
"resetsAt": "2026-09-15T05:00:00.000Z",
|
|
213
211
|
"scope": {
|
|
214
212
|
"model": "Fable"
|
|
215
213
|
}
|
|
@@ -230,8 +228,8 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
230
228
|
"authenticated": true,
|
|
231
229
|
"availability": "available",
|
|
232
230
|
"reason": null,
|
|
233
|
-
"fetchedAt": "2026-09-
|
|
234
|
-
"expiresAt": "2026-09-
|
|
231
|
+
"fetchedAt": "2026-09-08T12:54:06.286Z",
|
|
232
|
+
"expiresAt": "2026-09-08T12:59:06.286Z",
|
|
235
233
|
"cached": false
|
|
236
234
|
},
|
|
237
235
|
{
|
|
@@ -240,20 +238,20 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
240
238
|
{
|
|
241
239
|
"id": "usage-primary_window",
|
|
242
240
|
"label": "5 hours",
|
|
243
|
-
"percentUsed":
|
|
244
|
-
"resetsAt": "2026-09-
|
|
241
|
+
"percentUsed": 0,
|
|
242
|
+
"resetsAt": "2026-09-08T17:54:06.000Z"
|
|
245
243
|
},
|
|
246
244
|
{
|
|
247
245
|
"id": "usage-secondary_window",
|
|
248
246
|
"label": "Weekly",
|
|
249
|
-
"percentUsed":
|
|
250
|
-
"resetsAt": "2026-09-
|
|
247
|
+
"percentUsed": 0,
|
|
248
|
+
"resetsAt": "2026-09-15T12:54:06.000Z"
|
|
251
249
|
},
|
|
252
250
|
{
|
|
253
251
|
"id": "additional-0-gpt-reserve-primary_window",
|
|
254
252
|
"label": "Gpt Reserve · Weekly",
|
|
255
253
|
"percentUsed": 0,
|
|
256
|
-
"resetsAt": "2026-09-
|
|
254
|
+
"resetsAt": "2026-09-15T12:54:06.000Z"
|
|
257
255
|
}
|
|
258
256
|
],
|
|
259
257
|
"balances": [
|
|
@@ -279,8 +277,8 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
279
277
|
"authenticated": true,
|
|
280
278
|
"availability": "available",
|
|
281
279
|
"reason": null,
|
|
282
|
-
"fetchedAt": "2026-09-
|
|
283
|
-
"expiresAt": "2026-09-
|
|
280
|
+
"fetchedAt": "2026-09-08T12:54:06.628Z",
|
|
281
|
+
"expiresAt": "2026-09-08T12:59:06.628Z",
|
|
284
282
|
"cached": false
|
|
285
283
|
},
|
|
286
284
|
{
|
|
@@ -318,12 +316,7 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
318
316
|
}
|
|
319
317
|
],
|
|
320
318
|
"balances": [],
|
|
321
|
-
"details": [
|
|
322
|
-
{
|
|
323
|
-
"label": "Quota reset",
|
|
324
|
-
"value": "2026-10-01T00:00:00.000Z"
|
|
325
|
-
}
|
|
326
|
-
],
|
|
319
|
+
"details": [],
|
|
327
320
|
"providerId": "copilot",
|
|
328
321
|
"displayName": "GitHub Copilot",
|
|
329
322
|
"experimental": false,
|
|
@@ -332,8 +325,8 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
332
325
|
"authenticated": true,
|
|
333
326
|
"availability": "available",
|
|
334
327
|
"reason": null,
|
|
335
|
-
"fetchedAt": "2026-09-
|
|
336
|
-
"expiresAt": "2026-09-
|
|
328
|
+
"fetchedAt": "2026-09-08T12:54:06.283Z",
|
|
329
|
+
"expiresAt": "2026-09-08T12:59:06.283Z",
|
|
337
330
|
"cached": false
|
|
338
331
|
}
|
|
339
332
|
]
|
|
@@ -365,7 +358,7 @@ When you run ASU through `npx`, put the ASU options after the package name.
|
|
|
365
358
|
| `--help`, `-h` | Show help |
|
|
366
359
|
| `--version`, `-v` | Print the package version |
|
|
367
360
|
|
|
368
|
-
Without `--all` or `--provider`, ASU omits a provider that has no detected installation, no credentials, and no discovery error. Credentials can work even when the provider's executable is not on `PATH`.
|
|
361
|
+
Without `--all` or `--provider`, ASU omits a provider that has no detected installation, no credentials, and no discovery error. Credentials can work even when the provider's executable is not on `PATH`. The table and the plain text show one status per provider: `active` when usage came back, `not logged in` when credentials are missing or rejected, `not installed` when neither credentials nor the provider's executable were found, and `error` when the request failed. JSON keeps `installed`, `credentialsPresent`, and `authenticated` as separate fields, where `null` means unknown.
|
|
369
362
|
|
|
370
363
|
### Exit codes
|
|
371
364
|
|
|
@@ -404,7 +397,7 @@ A consumer must examine `schemaVersion` before it processes a report. Version 1
|
|
|
404
397
|
| `details` | Additional normalized label and value pairs |
|
|
405
398
|
| `fetchedAt`, `expiresAt`, `cached` | Timestamp and freshness of each provider snapshot |
|
|
406
399
|
|
|
407
|
-
An unknown percentage or reset time is `null`. A missing quantity or balance does not mean zero. An unlimited allowance is explicit. A percentage can exceed 100 if a provider reports overage. Do not assume a fixed number or order of windows. See the [report contract](docs/architecture.md#report-contract) and the [schemas](src/models.ts) for the full model. An agent that wants to watch its own budget can follow [Use ASU from an agent](docs/agent-usage.md).
|
|
400
|
+
An unknown percentage or reset time is `null`. A missing quantity or balance does not mean zero. An unlimited allowance is explicit. A percentage can exceed 100 if a provider reports overage. Do not assume a fixed number or order of windows. See the [report contract](docs/architecture.md#report-contract) and the [schemas](src/models.ts) for the full model. An agent that wants to watch its own budget can follow [Use ASU from an agent](docs/agent-usage.md). The [asu-usage skill](skills/asu-usage/SKILL.md) measures what one command costs, and `npx skills add allixsenos/asu` installs it.
|
|
408
401
|
|
|
409
402
|
## Supported providers
|
|
410
403
|
|
package/dist/output.js
CHANGED
|
@@ -38,7 +38,6 @@ function detailValue(value, options) {
|
|
|
38
38
|
return Date.parse(value) > (options.now ?? Date.now()) ? ahead(value, options) : ago(value, options);
|
|
39
39
|
}
|
|
40
40
|
const amount = (value) => new Intl.NumberFormat('en-US', { maximumFractionDigits: 2 }).format(value);
|
|
41
|
-
const yesNo = (value) => value === null ? 'unknown' : value ? 'yes' : 'no';
|
|
42
41
|
function windowValue(window) {
|
|
43
42
|
if (window.unlimited)
|
|
44
43
|
return 'Unlimited';
|
|
@@ -61,13 +60,20 @@ function balanceValue(balance) {
|
|
|
61
60
|
parts.push(`limit ${amount(balance.limit)} ${balance.unit}`);
|
|
62
61
|
return parts.join('; ') || 'Balance unknown';
|
|
63
62
|
}
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
/** One word per provider. Usage that came back wins, whatever the install check said. */
|
|
64
|
+
function status(provider) {
|
|
65
|
+
if (provider.availability === 'available')
|
|
66
|
+
return 'active';
|
|
67
|
+
if (provider.availability === 'error')
|
|
68
|
+
return 'error';
|
|
69
|
+
if (provider.credentialsPresent)
|
|
70
|
+
return 'not logged in';
|
|
71
|
+
return provider.installed === false ? 'not installed' : 'not logged in';
|
|
66
72
|
}
|
|
67
73
|
export function renderPlain(report, options = {}) {
|
|
68
74
|
const lines = [`ASU · ${report.generatedAt}`];
|
|
69
75
|
for (const provider of report.providers) {
|
|
70
|
-
lines.push('', `${provider.displayName} (${provider.providerId})${provider.experimental ? ' [experimental]' : ''}`, ` ${
|
|
76
|
+
lines.push('', `${provider.displayName} (${provider.providerId})${provider.experimental ? ' [experimental]' : ''}`, ` ${status(provider)}`);
|
|
71
77
|
if (provider.planLabel)
|
|
72
78
|
lines.push(` Plan: ${provider.planLabel}`);
|
|
73
79
|
for (const window of provider.windows)
|
|
@@ -158,7 +164,7 @@ function buildTable(report, options) {
|
|
|
158
164
|
if (!rows.length)
|
|
159
165
|
rows.push(['—', '—', '—']);
|
|
160
166
|
rows.forEach((cells, index) => row([index ? '' : provider.displayName + (provider.experimental ? ' *' : ''),
|
|
161
|
-
index ? '' : [provider.planLabel, provider
|
|
167
|
+
index ? '' : [provider.planLabel, status(provider), provider.cached ? 'cached' : 'fresh'].filter(Boolean).join('\n'), ...cells]));
|
|
162
168
|
}
|
|
163
169
|
lines.push(border('└', '┴', '┘'));
|
|
164
170
|
if (!report.providers.length)
|
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
package/dist/providers/parse.js
CHANGED
|
@@ -39,8 +39,9 @@ export function timestamp(value) {
|
|
|
39
39
|
: numeric < 100_000_000_000 ? numeric * 1000 : numeric;
|
|
40
40
|
if (!Number.isFinite(ms))
|
|
41
41
|
throw new UsageError('invalid_response');
|
|
42
|
+
// Providers compute reset times relative to the request, so the milliseconds jitter between calls. Whole seconds are stable enough.
|
|
42
43
|
try {
|
|
43
|
-
return new Date(ms).toISOString();
|
|
44
|
+
return new Date(Math.round(ms / 1000) * 1000).toISOString();
|
|
44
45
|
}
|
|
45
46
|
catch {
|
|
46
47
|
throw new UsageError('invalid_response');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/providers/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC1G,OAAO,KAAY,CAAC;AACtB,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,KAAc,IAAS,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClG,MAAM,UAAU,IAAI,CAAC,KAAc;IACjC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACjH,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AACD,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,SAAS;QAAE,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC9D,OAAO,CAAC,CAAC,CAAC,2DAA2D;AACvE,CAAC;AACD,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtF,CAAC,CAAC,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACnE,IAAI,CAAC;QAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/providers/parse.ts"],"names":[],"mappings":"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"}
|
package/docs/agent-usage.md
CHANGED
|
@@ -23,7 +23,7 @@ For each entry in `providers`:
|
|
|
23
23
|
- `availability` is `available`, `unavailable`, or `error`. Only `available` carries usage.
|
|
24
24
|
- `windows` is the list of rate-limit windows. Each has `label`, `percentUsed`, and `resetsAt`. A provider can have any number of windows, in any order. Do not assume a fixed set.
|
|
25
25
|
- `percentUsed` is `null` when the provider did not report it. It can exceed 100 when the provider reports overage.
|
|
26
|
-
- `resetsAt` is a UTC timestamp or `null`. Time until reset is `resetsAt` minus now.
|
|
26
|
+
- `resetsAt` is a UTC timestamp or `null`. Time until reset is `resetsAt` minus now. Providers compute it relative to each request, so the value can jitter by a second or more between calls, and an idle Codex window moves with the clock. Treat a change of less than a few minutes as the same reset. A real reset moves it forward by a whole window.
|
|
27
27
|
- `reason.code` explains an unavailable or failed provider: `missing_credentials`, `invalid_credentials`, `unauthorized`, `timeout`, `rate_limited`, `http_error`, `invalid_response`, or `provider_error`.
|
|
28
28
|
- `cached` is true when the figures come from ASU's five-minute cache. `fetchedAt` is the time of that fetch.
|
|
29
29
|
|
|
@@ -70,3 +70,7 @@ Do not run it more than once per five minutes.
|
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
Replace `claude` with the provider you run on.
|
|
73
|
+
|
|
74
|
+
## Measure one command
|
|
75
|
+
|
|
76
|
+
The [asu-usage skill](../skills/asu-usage/SKILL.md) in this repository takes a snapshot before and after a command, prints the percentage points each window consumed, and appends the result to a ledger. Install it with `npx skills add allixsenos/asu`, or copy the directory into your agent's skills folder.
|
package/docs/architecture.md
CHANGED
|
@@ -74,7 +74,7 @@ ASU resolves an installed package name from the current working directory. It ne
|
|
|
74
74
|
|
|
75
75
|
`schemaVersion: 1` is the machine interface. `generatedAt` describes the report. `fetchedAt` and `expiresAt` describe each provider snapshot. A result includes `providerId`, `displayName`, `experimental`, `installed`, `credentialsPresent`, `authenticated`, `availability`, an optional `reason`, `planLabel`, `windows`, `balances`, `details`, and `cached`.
|
|
76
76
|
|
|
77
|
-
A window has a stable ID, a label, `percentUsed`, and a UTC `resetsAt`. It can also have quantities, a unit, an unlimited flag, and a model or surface scope. An unknown percentage or reset is `null`. An absent balance or quantity is not zero. A percentage can exceed 100 when the provider reports overage. The human renderers round to two decimals. JSON keeps the normalized precision. An unlimited window shows no percentage.
|
|
77
|
+
A window has a stable ID, a label, `percentUsed`, and a UTC `resetsAt`. It can also have quantities, a unit, an unlimited flag, and a model or surface scope. An unknown percentage or reset is `null`. `resetsAt` has whole-second precision. Providers compute it relative to the request, so two calls can still differ by a second or more for the same window, and an idle Codex window moves with the clock. Compare reset times with a tolerance of a few minutes. An absent balance or quantity is not zero. A percentage can exceed 100 when the provider reports overage. The human renderers round to two decimals. JSON keeps the normalized precision. An unlimited window shows no percentage.
|
|
78
78
|
|
|
79
79
|
Availability is one of three values. `available` means the provider returned usage. `unavailable` means the credentials are missing, rejected, or unreadable. `error` means the fetch or the normalization failed. `authenticated` is `true` only after a recognized successful usage response. It is `false` for unavailable credentials. It is `null` after a request failure that cannot establish authentication. These are snapshot values. They do not promise that the token stays valid after `fetchedAt`.
|
|
80
80
|
|