quota-axi 0.1.13 → 0.1.14
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 +34 -24
- package/dist/src/interpretation.js +21 -1
- 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/providers/claude.d.ts +1 -0
- package/dist/src/providers/claude.js +183 -40
- package/dist/src/providers/claude.js.map +1 -1
- package/dist/src/skill.js +11 -3
- package/dist/src/skill.js.map +1 -1
- package/package.json +1 -1
- package/skills/quota-axi/SKILL.md +11 -3
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
|
|
@@ -289,6 +290,8 @@ Claude `identityStatus` is `verified` only when Anthropic returns an authoritati
|
|
|
289
290
|
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
291
|
Default TOON output includes the same condition in an `advice` block with `provider`, `reason`, and `remedyCommand`, plus the agent-directed help line.
|
|
291
292
|
|
|
293
|
+
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.
|
|
294
|
+
|
|
292
295
|
### Quota windows
|
|
293
296
|
|
|
294
297
|
| Field set | Fields |
|
|
@@ -302,6 +305,8 @@ A model-specific `scope` names the model window or the shared model prefix when
|
|
|
302
305
|
|
|
303
306
|
`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
307
|
|
|
308
|
+
For every stale provider report, raw windows remain available for diagnostics but effective availability is always `unknown` and omits `effectivePercentRemaining` and `limitingWindowIds`. Routing agents must not treat a stale raw percentage as current headroom.
|
|
309
|
+
|
|
305
310
|
### Quota enums
|
|
306
311
|
|
|
307
312
|
| Name | Values |
|
|
@@ -347,22 +352,26 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
|
|
|
347
352
|
|
|
348
353
|
### Provider credential sources
|
|
349
354
|
|
|
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`)
|
|
355
|
+
| Provider | Credential sources read |
|
|
356
|
+
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
357
|
+
| 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 |
|
|
358
|
+
| 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 |
|
|
359
|
+
| Cursor | `$CURSOR_STATE_DB` when set or the platform Cursor state database path |
|
|
360
|
+
| GitHub Copilot | `$GITHUB_COPILOT_APPS_JSON` when set or the local Copilot apps auth file |
|
|
361
|
+
| Grok | `$GROK_AUTH_JSON`, inline `$GROK_AUTH`, `$GROK_AUTH_PATH`, or `$GROK_HOME/auth.json` / `~/.grok/auth.json` |
|
|
362
|
+
| 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
363
|
|
|
359
364
|
### Provider notes
|
|
360
365
|
|
|
361
366
|
**Claude**
|
|
362
367
|
|
|
363
|
-
- quota-axi
|
|
364
|
-
-
|
|
365
|
-
-
|
|
368
|
+
- 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.
|
|
369
|
+
- quota-axi records the non-secret access marker after any successful pinned Keychain value read.
|
|
370
|
+
- 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.
|
|
371
|
+
- 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.
|
|
372
|
+
- In `--full` output, Claude usage attempts identify `oauth-file` or `keychain` as the credential discovery source. They never include the Keychain account.
|
|
373
|
+
- 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.
|
|
374
|
+
- 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
375
|
- 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
376
|
|
|
368
377
|
**Codex**
|
|
@@ -406,17 +415,18 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
|
|
|
406
415
|
|
|
407
416
|
### Cache
|
|
408
417
|
|
|
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
|
-
|
|
|
418
|
+
| Item | Behavior |
|
|
419
|
+
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
420
|
+
| Quota cache | Lives at `~/.cache/quota-axi/quotas.json` or under `$XDG_CACHE_HOME/quota-axi/` when `XDG_CACHE_HOME` is set. |
|
|
421
|
+
| Quota cache permissions | Uses `0600` file permissions. |
|
|
422
|
+
| Quota cache contents | Stores normalized non-secret snapshots only. |
|
|
423
|
+
| 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. |
|
|
424
|
+
| Cached reports | Only fresh provider snapshots with windows are cached. |
|
|
425
|
+
| Fresh provider reports with no windows | Clear any cached snapshot for that provider, so entitlement-only reports do not leave stale quota windows behind. |
|
|
426
|
+
| Reports and details not cached | Failed providers, stale providers, account identity, and source attempts are not cached. |
|
|
427
|
+
| 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. |
|
|
428
|
+
| 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. |
|
|
429
|
+
| 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
430
|
|
|
421
431
|
## Development
|
|
422
432
|
|
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
export function withQuotaSemantics(provider) {
|
|
2
|
-
|
|
2
|
+
const semantics = semanticsFor(provider);
|
|
3
|
+
return {
|
|
4
|
+
...provider,
|
|
5
|
+
quotaSemantics: provider.state.stale
|
|
6
|
+
? staleSemantics(semantics)
|
|
7
|
+
: semantics,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function staleSemantics(semantics) {
|
|
11
|
+
return {
|
|
12
|
+
status: semantics.status === "partial" ? "partial" : "unknown",
|
|
13
|
+
description: "The raw quota windows are stale diagnostic data, so effective remaining is unknown until the provider refreshes successfully.",
|
|
14
|
+
effectiveAvailability: semantics.effectiveAvailability.map(({ scope, boundedBy }) => ({
|
|
15
|
+
scope,
|
|
16
|
+
status: "unknown",
|
|
17
|
+
boundedBy,
|
|
18
|
+
})),
|
|
19
|
+
...(semantics.unresolvedWindowIds
|
|
20
|
+
? { unresolvedWindowIds: semantics.unresolvedWindowIds }
|
|
21
|
+
: {}),
|
|
22
|
+
};
|
|
3
23
|
}
|
|
4
24
|
function semanticsFor(provider) {
|
|
5
25
|
switch (provider.provider) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpretation.js","sourceRoot":"","sources":["../../src/interpretation.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,kBAAkB,CAAC,QAAuB;IACxD,
|
|
1
|
+
{"version":3,"file":"interpretation.js","sourceRoot":"","sources":["../../src/interpretation.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/fs.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export type JsonFileReadResult = {
|
|
|
9
9
|
};
|
|
10
10
|
export declare function collapseHome(path: string): string;
|
|
11
11
|
export declare function cacheFilePath(): string;
|
|
12
|
-
export declare function claudeKeychainAccessMarkerPath(configDir?: string): string;
|
|
12
|
+
export declare function claudeKeychainAccessMarkerPath(account: string, configDir?: string): string;
|
|
13
13
|
export declare function ensurePrivateParent(file: string): void;
|
|
14
14
|
export declare function readJsonFile(file: string): unknown | undefined;
|
|
15
15
|
export declare function readJsonFileResult(file: string): JsonFileReadResult;
|
package/dist/src/lib/fs.js
CHANGED
|
@@ -37,11 +37,15 @@ function samePath(left, right) {
|
|
|
37
37
|
export function cacheFilePath() {
|
|
38
38
|
return join(cacheDirPath(), "quotas.json");
|
|
39
39
|
}
|
|
40
|
-
export function claudeKeychainAccessMarkerPath(configDir) {
|
|
41
|
-
const
|
|
40
|
+
export function claudeKeychainAccessMarkerPath(account, configDir) {
|
|
41
|
+
const profileSuffix = configDir
|
|
42
42
|
? `-${createHash("sha256").update(configDir).digest("hex").slice(0, 8)}`
|
|
43
43
|
: "";
|
|
44
|
-
|
|
44
|
+
const accountSuffix = createHash("sha256")
|
|
45
|
+
.update(account)
|
|
46
|
+
.digest("hex")
|
|
47
|
+
.slice(0, 16);
|
|
48
|
+
return join(cacheDirPath(), `claude-keychain-access-granted${profileSuffix}-account-${accountSuffix}`);
|
|
45
49
|
}
|
|
46
50
|
function cacheDirPath() {
|
|
47
51
|
const base = process.env.XDG_CACHE_HOME || join(homedir(), ".cache");
|
package/dist/src/lib/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/lib/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAOrE,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,YAAY,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,kBAAkB,CAAC,YAAY,CAAC;QAClC,OAAO,KAAK,qBAAqB,CAAC,YAAY,CAAC,EAAE,CAAC;IACpD,IAAI,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;QAClC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,IAAY;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,CACL,SAAS,KAAK,SAAS;QACvB,CAAC,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,IAAI,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAa;IAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;IACpD,OAAO,IAAI,KAAK,KAAK,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,8BAA8B,
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/lib/fs.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,4 +11,5 @@ export declare function normalizeClaudeApiUsage(raw: unknown, plan?: string): {
|
|
|
11
11
|
export declare function normalizeClaudeProfile(raw: unknown): ClaudeAccount | undefined;
|
|
12
12
|
export declare function claudeCredentialFile(): string;
|
|
13
13
|
export declare function claudeKeychainService(): string;
|
|
14
|
+
export declare function claudeKeychainAccount(): string;
|
|
14
15
|
export {};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { chmodSync, existsSync, renameSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { createHash } from "node:crypto";
|
|
3
|
-
import { homedir } from "node:os";
|
|
3
|
+
import { homedir, userInfo } from "node:os";
|
|
4
4
|
import { join } from "node:path";
|
|
5
|
-
import { readCachedProvider } from "../cache.js";
|
|
5
|
+
import { deleteCachedProvider, readCachedProvider } from "../cache.js";
|
|
6
6
|
import { claudeKeychainAccessMarkerPath, ensurePrivateParent, readJsonFileResult, } from "../lib/fs.js";
|
|
7
7
|
import { execFileText } from "../lib/process.js";
|
|
8
8
|
import { clampPercent, nowIso, retryAfterToIso } from "../lib/time.js";
|
|
9
|
-
import { failedProvider, sourceNames,
|
|
9
|
+
import { failedProvider, sourceNames, statusFromError, successProvider, withRemaining, } from "./common.js";
|
|
10
10
|
const API_URL = "https://api.anthropic.com/api/oauth/usage";
|
|
11
11
|
const PROFILE_API_URL = "https://api.anthropic.com/api/oauth/profile";
|
|
12
12
|
const OAUTH_BETA = "oauth-2025-04-20";
|
|
@@ -16,6 +16,10 @@ const KEYCHAIN_PROMPT_TIMEOUT_MS = 60_000;
|
|
|
16
16
|
const KEYCHAIN_PRESENCE_TIMEOUT_MS = 5_000;
|
|
17
17
|
const KEYCHAIN_ITEM_NOT_FOUND_EXIT_CODE = 44;
|
|
18
18
|
const DEFAULT_KEYCHAIN_SERVICE = "Claude Code-credentials";
|
|
19
|
+
const DEFAULT_KEYCHAIN_ACCOUNT = "claude-code-user";
|
|
20
|
+
const SAFE_KEYCHAIN_ACCOUNT = /^[a-zA-Z0-9._-]+$/;
|
|
21
|
+
const FIVE_HOURS_MS = 5 * 60 * 60 * 1_000;
|
|
22
|
+
const SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1_000;
|
|
19
23
|
export const claudeAdapter = {
|
|
20
24
|
id: "claude",
|
|
21
25
|
label: "Claude",
|
|
@@ -24,11 +28,9 @@ export const claudeAdapter = {
|
|
|
24
28
|
};
|
|
25
29
|
export async function fetchQuota(options) {
|
|
26
30
|
const attempts = [];
|
|
27
|
-
let finalError = "Claude quota unavailable";
|
|
28
|
-
let retryAfter;
|
|
29
31
|
const credentialStates = await readCredentialStates(options);
|
|
30
32
|
const credentials = credentialStates
|
|
31
|
-
.filter((state) => state.status === "available")
|
|
33
|
+
.filter((state) => state.status === "available" || state.status === "expired")
|
|
32
34
|
.map((state) => state.credentials)
|
|
33
35
|
.sort((a, b) => {
|
|
34
36
|
if (process.platform === "darwin") {
|
|
@@ -40,7 +42,7 @@ export async function fetchQuota(options) {
|
|
|
40
42
|
return (b.expiresAt ?? 0) - (a.expiresAt ?? 0);
|
|
41
43
|
});
|
|
42
44
|
for (const state of credentialStates) {
|
|
43
|
-
if (state.status === "available")
|
|
45
|
+
if (state.status === "available" || state.status === "expired")
|
|
44
46
|
continue;
|
|
45
47
|
if (state.status === "skipped") {
|
|
46
48
|
const attempt = {
|
|
@@ -51,8 +53,6 @@ export async function fetchQuota(options) {
|
|
|
51
53
|
if (state.source.credentialPresent)
|
|
52
54
|
attempt.credentialPresent = true;
|
|
53
55
|
attempts.push(attempt);
|
|
54
|
-
if (finalError === "Claude quota unavailable")
|
|
55
|
-
finalError = state.source.error ?? finalError;
|
|
56
56
|
continue;
|
|
57
57
|
}
|
|
58
58
|
attempts.push({
|
|
@@ -60,14 +60,18 @@ export async function fetchQuota(options) {
|
|
|
60
60
|
status: "skipped",
|
|
61
61
|
error: `credentials_${state.status}`,
|
|
62
62
|
});
|
|
63
|
-
finalError = "Claude sign-in required";
|
|
64
63
|
}
|
|
64
|
+
let definitiveFailure;
|
|
65
|
+
let transientFailure;
|
|
65
66
|
if (credentials.length > 0) {
|
|
66
67
|
for (const credential of credentials) {
|
|
67
|
-
attempts.push({ source:
|
|
68
|
+
attempts.push({ source: credential.source, status: "failed" });
|
|
68
69
|
try {
|
|
69
70
|
const quota = await fetchOauthUsage(credential);
|
|
70
|
-
attempts[attempts.length - 1] = {
|
|
71
|
+
attempts[attempts.length - 1] = {
|
|
72
|
+
source: credential.source,
|
|
73
|
+
status: "success",
|
|
74
|
+
};
|
|
71
75
|
attempts.push(quota.identityError
|
|
72
76
|
? {
|
|
73
77
|
source: "oauth-profile",
|
|
@@ -88,35 +92,121 @@ export async function fetchQuota(options) {
|
|
|
88
92
|
});
|
|
89
93
|
}
|
|
90
94
|
catch (error) {
|
|
91
|
-
const
|
|
95
|
+
const failure = claudeFailureFor(error);
|
|
92
96
|
attempts[attempts.length - 1] = {
|
|
93
|
-
source:
|
|
97
|
+
source: credential.source,
|
|
94
98
|
status: "failed",
|
|
95
|
-
error:
|
|
99
|
+
error: failure.code,
|
|
96
100
|
};
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
101
|
+
if (failure.definitiveAuth)
|
|
102
|
+
definitiveFailure ??= failure;
|
|
103
|
+
else
|
|
104
|
+
transientFailure = failure;
|
|
103
105
|
}
|
|
104
106
|
}
|
|
105
107
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
108
|
+
else {
|
|
109
|
+
const skipped = credentialStates.find((state) => state.status === "skipped");
|
|
110
|
+
if (skipped) {
|
|
111
|
+
transientFailure = new ClaudeFailure(skipped.source.error ?? "Claude quota unavailable", { staleEligible: true });
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
const invalid = credentialStates.some((state) => state.status === "invalid");
|
|
115
|
+
definitiveFailure = new ClaudeFailure(invalid ? "credentials_invalid" : "credentials_missing", { status: "auth_required", definitiveAuth: true });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return failureReport(definitiveFailure ??
|
|
119
|
+
transientFailure ??
|
|
120
|
+
new ClaudeFailure("Claude quota unavailable", { staleEligible: true }), attempts);
|
|
121
|
+
}
|
|
122
|
+
function failureReport(failure, attempts) {
|
|
123
|
+
if (failure.definitiveAuth) {
|
|
124
|
+
try {
|
|
125
|
+
deleteCachedProvider("claude");
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// Current authentication remains definitive when cache I/O is blocked.
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (failure.staleEligible) {
|
|
132
|
+
try {
|
|
133
|
+
const cached = readCachedProvider("claude");
|
|
134
|
+
const stale = cached
|
|
135
|
+
? staleClaudeReport(cached, failure, attempts, Date.now())
|
|
136
|
+
: undefined;
|
|
137
|
+
if (stale)
|
|
138
|
+
return stale;
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// Cache I/O cannot replace the current bounded provider failure.
|
|
142
|
+
}
|
|
109
143
|
}
|
|
110
144
|
return failedProvider({
|
|
111
145
|
provider: "claude",
|
|
112
146
|
label: "Claude",
|
|
113
|
-
status:
|
|
114
|
-
error:
|
|
115
|
-
retryAfter,
|
|
147
|
+
status: failure.status,
|
|
148
|
+
error: failure.code,
|
|
149
|
+
retryAfter: failure.retryAfter,
|
|
116
150
|
sourcesTried: sourceNames(attempts),
|
|
117
151
|
attempts,
|
|
118
152
|
});
|
|
119
153
|
}
|
|
154
|
+
function staleClaudeReport(cached, failure, attempts, now) {
|
|
155
|
+
if (cached.provider !== "claude" ||
|
|
156
|
+
cached.source !== "oauth" ||
|
|
157
|
+
cached.state.status !== "fresh" ||
|
|
158
|
+
!cached.state.refreshedAt) {
|
|
159
|
+
return undefined;
|
|
160
|
+
}
|
|
161
|
+
const refreshedAt = Date.parse(cached.state.refreshedAt);
|
|
162
|
+
if (!Number.isFinite(refreshedAt) || refreshedAt > now)
|
|
163
|
+
return undefined;
|
|
164
|
+
const ageMilliseconds = now - refreshedAt;
|
|
165
|
+
if (ageMilliseconds >= SEVEN_DAYS_MS)
|
|
166
|
+
return undefined;
|
|
167
|
+
const windows = cached.windows.filter((window) => {
|
|
168
|
+
if (window.resetsAt !== undefined) {
|
|
169
|
+
const resetsAt = Date.parse(window.resetsAt);
|
|
170
|
+
return Number.isFinite(resetsAt) && resetsAt > now;
|
|
171
|
+
}
|
|
172
|
+
const maxAge = resetlessWindowMaxAge(window);
|
|
173
|
+
return maxAge !== undefined && ageMilliseconds < maxAge;
|
|
174
|
+
});
|
|
175
|
+
if (windows.length === 0)
|
|
176
|
+
return undefined;
|
|
177
|
+
return {
|
|
178
|
+
provider: "claude",
|
|
179
|
+
label: "Claude",
|
|
180
|
+
source: "cache",
|
|
181
|
+
...(cached.plan ? { plan: cached.plan } : {}),
|
|
182
|
+
windows,
|
|
183
|
+
state: {
|
|
184
|
+
status: "stale",
|
|
185
|
+
stale: true,
|
|
186
|
+
refreshedAt: cached.state.refreshedAt,
|
|
187
|
+
error: failure.code,
|
|
188
|
+
...(failure.retryAfter ? { retryAfter: failure.retryAfter } : {}),
|
|
189
|
+
sourcesTried: [...new Set([...sourceNames(attempts), "cache"])],
|
|
190
|
+
},
|
|
191
|
+
attempts,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
function resetlessWindowMaxAge(window) {
|
|
195
|
+
if (window.kind === "weekly" || window.kind === "model") {
|
|
196
|
+
return SEVEN_DAYS_MS;
|
|
197
|
+
}
|
|
198
|
+
if (window.kind === "session" ||
|
|
199
|
+
window.kind === "monthly" ||
|
|
200
|
+
window.kind === "credits") {
|
|
201
|
+
return FIVE_HOURS_MS;
|
|
202
|
+
}
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
function claudeFailureFor(error) {
|
|
206
|
+
if (error instanceof ClaudeFailure)
|
|
207
|
+
return error;
|
|
208
|
+
return new ClaudeFailure(errorMessage(error), { staleEligible: true });
|
|
209
|
+
}
|
|
120
210
|
export async function inspectAuth(options) {
|
|
121
211
|
const locations = resolveClaudeProfileLocations();
|
|
122
212
|
const states = await readCredentialStates(options, locations);
|
|
@@ -291,7 +381,13 @@ async function readSkippedKeychainCredentialState(locations) {
|
|
|
291
381
|
}
|
|
292
382
|
async function readKeychainItemPresence(locations) {
|
|
293
383
|
try {
|
|
294
|
-
await execFileText("security", [
|
|
384
|
+
await execFileText("security", [
|
|
385
|
+
"find-generic-password",
|
|
386
|
+
"-a",
|
|
387
|
+
locations.keychainAccount,
|
|
388
|
+
"-s",
|
|
389
|
+
locations.keychainService,
|
|
390
|
+
], KEYCHAIN_PRESENCE_TIMEOUT_MS);
|
|
295
391
|
return "present";
|
|
296
392
|
}
|
|
297
393
|
catch (error) {
|
|
@@ -301,7 +397,14 @@ async function readKeychainItemPresence(locations) {
|
|
|
301
397
|
async function readKeychainCredentialState(locations) {
|
|
302
398
|
let blob;
|
|
303
399
|
try {
|
|
304
|
-
blob = await execFileText("security", [
|
|
400
|
+
blob = await execFileText("security", [
|
|
401
|
+
"find-generic-password",
|
|
402
|
+
"-a",
|
|
403
|
+
locations.keychainAccount,
|
|
404
|
+
"-w",
|
|
405
|
+
"-s",
|
|
406
|
+
locations.keychainService,
|
|
407
|
+
], KEYCHAIN_PROMPT_TIMEOUT_MS);
|
|
305
408
|
}
|
|
306
409
|
catch (error) {
|
|
307
410
|
return keychainFailureState(error);
|
|
@@ -344,14 +447,30 @@ export function claudeCredentialFile() {
|
|
|
344
447
|
export function claudeKeychainService() {
|
|
345
448
|
return resolveClaudeProfileLocations().keychainService;
|
|
346
449
|
}
|
|
450
|
+
export function claudeKeychainAccount() {
|
|
451
|
+
let candidate = process.env.USER;
|
|
452
|
+
if (!candidate) {
|
|
453
|
+
try {
|
|
454
|
+
candidate = userInfo().username;
|
|
455
|
+
}
|
|
456
|
+
catch {
|
|
457
|
+
candidate = undefined;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
return candidate && SAFE_KEYCHAIN_ACCOUNT.test(candidate)
|
|
461
|
+
? candidate
|
|
462
|
+
: DEFAULT_KEYCHAIN_ACCOUNT;
|
|
463
|
+
}
|
|
347
464
|
function resolveClaudeProfileLocations() {
|
|
348
465
|
const configuredDir = process.env.CLAUDE_CONFIG_DIR;
|
|
349
466
|
const configDir = (configuredDir ?? join(homedir(), ".claude")).normalize("NFC");
|
|
350
467
|
const keychainConfigDir = configuredDir ? configDir : undefined;
|
|
468
|
+
const keychainAccount = claudeKeychainAccount();
|
|
351
469
|
return {
|
|
352
470
|
credentialFile: join(configDir, ".credentials.json"),
|
|
471
|
+
keychainAccount,
|
|
353
472
|
keychainService: keychainServiceForConfigDir(keychainConfigDir),
|
|
354
|
-
keychainAccessMarker: claudeKeychainAccessMarkerPath(keychainConfigDir),
|
|
473
|
+
keychainAccessMarker: claudeKeychainAccessMarkerPath(keychainAccount, keychainConfigDir),
|
|
355
474
|
};
|
|
356
475
|
}
|
|
357
476
|
function keychainServiceForConfigDir(configDir) {
|
|
@@ -412,12 +531,18 @@ function extractCredentialState(raw, source, path) {
|
|
|
412
531
|
if (!accessToken)
|
|
413
532
|
return { status: "invalid", source: { source, path, status: "invalid" } };
|
|
414
533
|
const expiresAt = expiresAtMillis(oauth.expiresAt);
|
|
415
|
-
if (expiresAt !== undefined && expiresAt <= Date.now())
|
|
416
|
-
return { status: "expired", source: { source, path, status: "expired" } };
|
|
417
534
|
const plan = stringValue(oauth.subscriptionType) ?? stringValue(data.subscriptionType);
|
|
535
|
+
const credentials = { source, accessToken, plan, expiresAt };
|
|
536
|
+
if (expiresAt !== undefined && expiresAt <= Date.now()) {
|
|
537
|
+
return {
|
|
538
|
+
status: "expired",
|
|
539
|
+
credentials,
|
|
540
|
+
source: { source, path, status: "expired" },
|
|
541
|
+
};
|
|
542
|
+
}
|
|
418
543
|
return {
|
|
419
544
|
status: "available",
|
|
420
|
-
credentials
|
|
545
|
+
credentials,
|
|
421
546
|
};
|
|
422
547
|
}
|
|
423
548
|
async function fetchOauthUsage(credentials) {
|
|
@@ -492,13 +617,22 @@ function unverifiedClaudeIdentity(error) {
|
|
|
492
617
|
// delay in seconds or an HTTP-date).
|
|
493
618
|
function rejectUnusableUsageResponse(response) {
|
|
494
619
|
if (response.status === 401 || response.status === 403) {
|
|
495
|
-
throw new
|
|
620
|
+
throw new ClaudeFailure("Claude sign-in required", {
|
|
621
|
+
status: "auth_required",
|
|
622
|
+
definitiveAuth: true,
|
|
623
|
+
});
|
|
496
624
|
}
|
|
497
625
|
if (response.status === 429) {
|
|
498
|
-
throw new
|
|
626
|
+
throw new ClaudeFailure("Claude quota endpoint rate limited", {
|
|
627
|
+
status: "rate_limited",
|
|
628
|
+
staleEligible: true,
|
|
629
|
+
retryAfter: retryAfterToIso(response.headers.get("retry-after")),
|
|
630
|
+
});
|
|
499
631
|
}
|
|
500
632
|
if (!response.ok) {
|
|
501
|
-
throw new
|
|
633
|
+
throw new ClaudeFailure(`Claude quota unavailable (${response.status})`, {
|
|
634
|
+
staleEligible: true,
|
|
635
|
+
});
|
|
502
636
|
}
|
|
503
637
|
}
|
|
504
638
|
function normalizeWindow(raw, id, label, kind) {
|
|
@@ -571,11 +705,20 @@ function errorMessage(error) {
|
|
|
571
705
|
return "Claude quota request timed out";
|
|
572
706
|
return error instanceof Error ? error.message : "Claude quota unavailable";
|
|
573
707
|
}
|
|
574
|
-
class
|
|
708
|
+
class ClaudeFailure extends Error {
|
|
709
|
+
code;
|
|
710
|
+
status;
|
|
711
|
+
definitiveAuth;
|
|
712
|
+
staleEligible;
|
|
575
713
|
retryAfter;
|
|
576
|
-
constructor(
|
|
577
|
-
super(
|
|
578
|
-
this.
|
|
714
|
+
constructor(code, options = {}) {
|
|
715
|
+
super(code);
|
|
716
|
+
this.code = code;
|
|
717
|
+
this.name = "ClaudeFailure";
|
|
718
|
+
this.status = options.status ?? statusFromError(code);
|
|
719
|
+
this.definitiveAuth = options.definitiveAuth ?? false;
|
|
720
|
+
this.staleEligible = options.staleEligible ?? false;
|
|
721
|
+
this.retryAfter = options.retryAfter;
|
|
579
722
|
}
|
|
580
723
|
}
|
|
581
724
|
//# sourceMappingURL=claude.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/providers/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,GAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAUvE,OAAO,EACL,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,GAAG,2CAA2C,CAAC;AAC5D,MAAM,eAAe,GAAG,6CAA6C,CAAC;AACtE,MAAM,UAAU,GAAG,kBAAkB,CAAC;AACtC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AACrD,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAC1C,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAC3C,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAC7C,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AA2D3D,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,UAAU;IACV,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAwB;IAExB,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,IAAI,UAAU,GAAG,0BAA0B,CAAC;IAC5C,IAAI,UAA8B,CAAC;IAEnC,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,gBAAgB;SACjC,MAAM,CACL,CAAC,KAAK,EAAqC,EAAE,CAC3C,KAAK,CAAC,MAAM,KAAK,WAAW,CAC/B;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;SACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;gBAAE,OAAO,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;gBAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEL,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;YAAE,SAAS;QAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAkB;gBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;gBAC3B,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;aAC1B,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,CAAC,iBAAiB;gBAAE,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACrE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,UAAU,KAAK,0BAA0B;gBAC3C,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC;YAChD,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;YAC3B,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,eAAe,KAAK,CAAC,MAAM,EAAE;SACrC,CAAC,CAAC;QACH,UAAU,GAAG,yBAAyB,CAAC;IACzC,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;gBAChD,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACvE,QAAQ,CAAC,IAAI,CACX,KAAK,CAAC,aAAa;oBACjB,CAAC,CAAC;wBACE,MAAM,EAAE,eAAe;wBACvB,MAAM,EAAE,QAAQ;wBAChB,KAAK,EAAE,KAAK,CAAC,aAAa;qBAC3B;oBACH,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,CACnD,CAAC;gBACF,OAAO,eAAe,CAAC;oBACrB,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC;oBACnC,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG;oBAC9B,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,OAAO;iBACf,CAAC;gBACF,UAAU,GAAG,OAAO,CAAC;gBACrB,IAAI,KAAK,YAAY,cAAc;oBAAE,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACnE,IAAI,OAAO,KAAK,yBAAyB,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,cAAc,CAAC;QACpB,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC;QACjE,KAAK,EAAE,UAAU;QACjB,UAAU;QACV,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC;QACnC,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAwB;IAExB,MAAM,SAAS,GAAG,6BAA6B,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAoB,EAAE;QACrD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjC,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;gBAChC,IAAI,EACF,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,YAAY;oBACvC,CAAC,CAAC,SAAS,CAAC,cAAc;oBAC1B,CAAC,CAAC,SAAS;gBACf,MAAM,EAAE,WAAW;aACpB,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAY,EACZ,IAAa;IAEb,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,IAAI,GAAG,GAA8B,CAAC;IAE5C,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,OAAO,GACX,aAAa,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,CAAC,aAAa;QACf,CAAC,CAAC;YACE,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;YAClE,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC;YAC9D,eAAe,CACb,IAAI,CAAC,cAAc,EACnB,gBAAgB,EAChB,WAAW,EACX,OAAO,CACR;SACF,CAAC,MAAM,CAAC,CAAC,MAAM,EAAyB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAAY;IAEZ,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,OAAO;QACL,SAAS;QACT,KAAK,EACH,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;YAC3B,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC;YACnC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC;YAClC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,YAAY,EACV,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACnC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACpC,cAAc,EAAE,UAAU;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAY;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAY;IAC7C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,KAAK,GAAG,GAAuB,CAAC;IACtC,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9D,OAAO,aAAa,CAAC;YACnB,EAAE,EAAE,SAAS,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,SAAS,OAAO;YAC1B,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC;YAClC,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,aAAa,CAAC;YACnB,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC;YAClC,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,aAAa,CAAC;YACnB,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC;YAClC,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,aAAa,CAAC;QACnB,EAAE,EAAE,IAAI,IAAI,OAAO;QACnB,KAAK,EAAE,IAAI,IAAI,OAAO;QACtB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC;QAClC,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAAwB,EACxB,SAAS,GAAG,6BAA6B,EAAE;IAE3C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,sBAAsB,CACtC,kBAAkB,CAAC,SAAS,CAAC,cAAc,CAAC,EAC5C,YAAY,EACZ,SAAS,CAAC,cAAc,CACzB,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEvB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,mBAAmB,IAAI,uBAAuB,CAAC,SAAS,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,MAAM,2BAA2B,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,MAAM,kCAAkC,CAAC,SAAS,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,SAAiC;IAEjC,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE;gBACN,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,0BAA0B;gBACjC,iBAAiB,EAAE,IAAI;aACxB;SACF,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;SAClD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE;YACN,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,gCAAgC;SACxC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,SAAiC;IAEjC,IAAI,CAAC;QACH,MAAM,YAAY,CAChB,UAAU,EACV,CAAC,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC,EAC1D,4BAA4B,CAC7B,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,SAAiC;IAEjC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,YAAY,CACvB,UAAU,EACV,CAAC,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,EAChE,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,mCAAmC,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,sBAAsB,CAC3B,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAC9C,UAAU,CACX,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE;gBACN,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,kBAAkB;aAC1B;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,SAAiC;IAChE,OAAO,UAAU,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,mCAAmC,CAC1C,SAAiC;IAEjC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,oBAAoB,CAAC;QAC5C,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;QAC1C,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,6BAA6B,EAAE,CAAC,cAAc,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,6BAA6B,EAAE,CAAC,eAAe,CAAC;AACzD,CAAC;AAED,SAAS,6BAA6B;IACpC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CACvE,KAAK,CACN,CAAC;IACF,MAAM,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC;QACpD,eAAe,EAAE,2BAA2B,CAAC,iBAAiB,CAAC;QAC/D,oBAAoB,EAAE,8BAA8B,CAAC,iBAAiB,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAkB;IACrD,IAAI,CAAC,SAAS;QAAE,OAAO,wBAAwB,CAAC;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC;SAChC,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACf,OAAO,GAAG,wBAAwB,IAAI,MAAM,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,CACJ,KAA2C,CAAC,IAAI;QACjD,iCAAiC,CAClC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,MAAM,OAAO,GAAG,KAIf,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE;gBACN,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,yBAAyB;aACjC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;SAClD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE;YACN,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,wBAAwB;SAChC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAAuB,EACvB,MAAmC,EACnC,IAAa;IAEb,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAC1B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;IAC5E,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAC1B,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;SAC9D,CAAC;IACJ,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QACP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;IAC5E,MAAM,KAAK,GACT,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;QAC1D,CAAC,CAAE,IAAI,CAAC,aAAyC;QACjD,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,WAAW,GACf,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpE,IAAI,CAAC,WAAW;QACd,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;IAC5E,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;QACpD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;IAC5E,MAAM,IAAI,GACR,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5E,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACtD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,WAA8B;IAO3D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;YACpC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,CAAC,WAAW,EAAE;gBAClD,gBAAgB,EAAE,UAAU;gBAC5B,YAAY,EAAE,sBAAsB;gBACpC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;YACD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,uBAAuB,CACnC,MAAM,QAAQ,CAAC,IAAI,EAAE,EACrB,WAAW,CAAC,IAAI,CACjB,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO;YACL,GAAG,KAAK;YACR,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,aAAa,EAAE,QAAQ,CAAC,KAAK;SAC9B,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,WAA8B;IAE9B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;YAC5C,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,CAAC,WAAW,EAAE;gBAClD,YAAY,EAAE,sBAAsB;gBACpC,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,kBAAkB;aAC3B;YACD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,wBAAwB,CAC7B,yBAAyB,QAAQ,CAAC,MAAM,EAAE,CAC3C,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,OAAO;YACZ,CAAC,CAAC,EAAE,OAAO,EAAE;YACb,CAAC,CAAC,wBAAwB,CAAC,+BAA+B,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,wBAAwB,CAC7B,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YACnD,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,8BAA8B,CACnC,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAa;IAC7C,OAAO;QACL,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;QACzC,KAAK;KACN,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,4EAA4E;AAC5E,qCAAqC;AACrC,SAAS,2BAA2B,CAAC,QAAkB;IACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,cAAc,CACtB,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CACrD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,GAAY,EACZ,EAAU,EACV,KAAa,EACb,IAAyB;IAEzB,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,IAAI,GAAG,GAAqB,CAAC;IACnC,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,aAAa,CAAC;QACnB,EAAE;QACF,KAAK;QACL,IAAI;QACJ,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC;QAC/B,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;KACpE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,IAAI,GAAG,GAAuB,CAAC;IACrC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,aAAa,GACjB,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,EAAE,IAAI,aAAa,CAAC;IAC7C,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;QACnC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,gBAAgB;QACtC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;QACpC,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,gBAAgB;QACvC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,WAAW,GACf,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QAClC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;QAChC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,IAAI,QAAQ,GAAG,CAAC;YAClD,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAC;IAClB,OAAO,aAAa,CAAC;QACnB,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,SAAS;QACf,WAAW;QACX,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QACvC,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;QACvD,OAAO,gCAAgC,CAAC;IAC1C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;AAC7E,CAAC;AAED,MAAM,cAAe,SAAQ,KAAK;IACX;IAArB,YAAqB,UAA8B;QACjD,KAAK,CAAC,oCAAoC,CAAC,CAAC;QADzB,eAAU,GAAV,UAAU,CAAoB;IAEnD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/providers/claude.ts"],"names":[],"mappings":"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"}
|
package/dist/src/skill.js
CHANGED
|
@@ -70,14 +70,18 @@ or when comparing supported local provider headroom side by side.
|
|
|
70
70
|
\`quotaSemantics.effectiveAvailability\` rather than treating a model window in isolation:
|
|
71
71
|
account windows can bound every model, and \`boundedBy\` names every window included in the
|
|
72
72
|
effective percentage. If relationship status is \`partial\` or \`unknown\`, do not infer one.
|
|
73
|
+
Stale reports keep raw windows for diagnostics, but effective availability is always unknown;
|
|
74
|
+
never route from a stale raw percentage as though it were current headroom.
|
|
73
75
|
4. Pass \`--full\` to include account identity and per-source attempt details.
|
|
74
76
|
5. Run \`npx -y quota-axi auth\` to check local auth-source availability without printing
|
|
75
77
|
secret values.
|
|
76
|
-
6. On macOS, Claude Keychain value reads are
|
|
78
|
+
6. On macOS, Claude Keychain value reads are pinned to the same validated current-user account
|
|
79
|
+
Claude Code selects and are skipped by default until the user grants access once.
|
|
77
80
|
If quota output reports \`reason: keychain_access_required\`, tell your user to run
|
|
78
81
|
\`quota-axi --allow-keychain-prompt\` once and approve Keychain access ("Always Allow").
|
|
79
82
|
After that successful grant, plain \`quota-axi\` calls reuse the existing Keychain access
|
|
80
|
-
marker to refresh live Claude quota without requiring
|
|
83
|
+
marker, scoped to both profile and account, to refresh live Claude quota without requiring
|
|
84
|
+
the flag. Legacy markers are not reused, so an upgrade may require this one-time grant again.
|
|
81
85
|
7. For a managed Codex installation, set \`QUOTA_AXI_CODEX_BINARY\` to its absolute executable
|
|
82
86
|
path. quota-axi uses that exact executable for auth inspection and the read-only app-server
|
|
83
87
|
fallback, and fails closed if the override is invalid.
|
|
@@ -108,7 +112,11 @@ ${TOP_HELP.trimEnd()}
|
|
|
108
112
|
non-secret snapshots.
|
|
109
113
|
Fresh provider reports with no windows clear stale provider snapshots instead of caching
|
|
110
114
|
empty quota.
|
|
111
|
-
|
|
115
|
+
Claude local expiry metadata is advisory when an access token exists: the existing read-only
|
|
116
|
+
usage request decides validity. Missing or invalid credentials without a usable token and HTTP
|
|
117
|
+
401/403 retire Claude cache; only transient failures may use bounded, reset-pruned stale data.
|
|
118
|
+
The Claude Keychain access marker lives alongside it, is scoped by hashed profile and
|
|
119
|
+
account hashes, and contains no credential values or raw account name.
|
|
112
120
|
`;
|
|
113
121
|
}
|
|
114
122
|
//# sourceMappingURL=skill.js.map
|
package/dist/src/skill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEjD,sFAAsF;AACtF,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAC5B,qHAAqH;IACrH,sFAAsF;IACtF,wFAAwF;IACxF,uFAAuF;IACvF,6DAA6D,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAErD,oEAAoE;AACpE,2EAA2E;AAC3E,yEAAyE;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO;IACP,aAAa;IACb,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,MAAM;IACN,MAAM;IACN,KAAK;CACN,CAAC;AACF,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;;eAEM,eAAe,CAAC,iBAAiB,CAAC;;UAEvC,YAAY;;;aAGT,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,eAAe;;;;;EAK7B,WAAW
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEjD,sFAAsF;AACtF,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAC5B,qHAAqH;IACrH,sFAAsF;IACtF,wFAAwF;IACxF,uFAAuF;IACvF,6DAA6D,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAErD,oEAAoE;AACpE,2EAA2E;AAC3E,yEAAyE;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO;IACP,aAAa;IACb,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,MAAM;IACN,MAAM;IACN,KAAK;CACN,CAAC;AACF,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;;eAEM,eAAe,CAAC,iBAAiB,CAAC;;UAEvC,YAAY;;;aAGT,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,eAAe;;;;;EAK7B,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CX,QAAQ,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;CAuBnB,CAAC;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -34,14 +34,18 @@ or when comparing supported local provider headroom side by side.
|
|
|
34
34
|
`quotaSemantics.effectiveAvailability` rather than treating a model window in isolation:
|
|
35
35
|
account windows can bound every model, and `boundedBy` names every window included in the
|
|
36
36
|
effective percentage. If relationship status is `partial` or `unknown`, do not infer one.
|
|
37
|
+
Stale reports keep raw windows for diagnostics, but effective availability is always unknown;
|
|
38
|
+
never route from a stale raw percentage as though it were current headroom.
|
|
37
39
|
4. Pass `--full` to include account identity and per-source attempt details.
|
|
38
40
|
5. Run `npx -y quota-axi auth` to check local auth-source availability without printing
|
|
39
41
|
secret values.
|
|
40
|
-
6. On macOS, Claude Keychain value reads are
|
|
42
|
+
6. On macOS, Claude Keychain value reads are pinned to the same validated current-user account
|
|
43
|
+
Claude Code selects and are skipped by default until the user grants access once.
|
|
41
44
|
If quota output reports `reason: keychain_access_required`, tell your user to run
|
|
42
45
|
`quota-axi --allow-keychain-prompt` once and approve Keychain access ("Always Allow").
|
|
43
46
|
After that successful grant, plain `quota-axi` calls reuse the existing Keychain access
|
|
44
|
-
marker to refresh live Claude quota without requiring
|
|
47
|
+
marker, scoped to both profile and account, to refresh live Claude quota without requiring
|
|
48
|
+
the flag. Legacy markers are not reused, so an upgrade may require this one-time grant again.
|
|
45
49
|
7. For a managed Codex installation, set `QUOTA_AXI_CODEX_BINARY` to its absolute executable
|
|
46
50
|
path. quota-axi uses that exact executable for auth inspection and the read-only app-server
|
|
47
51
|
fallback, and fails closed if the override is invalid.
|
|
@@ -83,4 +87,8 @@ examples:
|
|
|
83
87
|
non-secret snapshots.
|
|
84
88
|
Fresh provider reports with no windows clear stale provider snapshots instead of caching
|
|
85
89
|
empty quota.
|
|
86
|
-
|
|
90
|
+
Claude local expiry metadata is advisory when an access token exists: the existing read-only
|
|
91
|
+
usage request decides validity. Missing or invalid credentials without a usable token and HTTP
|
|
92
|
+
401/403 retire Claude cache; only transient failures may use bounded, reset-pruned stale data.
|
|
93
|
+
The Claude Keychain access marker lives alongside it, is scoped by hashed profile and
|
|
94
|
+
account hashes, and contains no credential values or raw account name.
|