quota-axi 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -32
- package/dist/src/lib/fs.d.ts +1 -1
- package/dist/src/lib/fs.js +6 -2
- package/dist/src/lib/fs.js.map +1 -1
- package/dist/src/providers/claude.d.ts +5 -0
- package/dist/src/providers/claude.js +120 -21
- package/dist/src/providers/claude.js.map +1 -1
- package/dist/src/providers/codex.js +46 -6
- package/dist/src/providers/codex.js.map +1 -1
- package/dist/src/providers/grok.d.ts +6 -6
- package/dist/src/providers/grok.js +354 -182
- package/dist/src/providers/grok.js.map +1 -1
- package/dist/src/render.js +1 -0
- package/dist/src/render.js.map +1 -1
- package/dist/src/skill.js +6 -0
- package/dist/src/skill.js.map +1 -1
- package/dist/src/types.d.ts +1 -0
- package/package.json +1 -1
- package/skills/quota-axi/SKILL.md +6 -0
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ providers[5]{provider,plan,source,status,refreshedAt}:
|
|
|
40
40
|
codex,plus,cli-rpc,fresh,"2026-03-15T16:41:58.000Z"
|
|
41
41
|
cursor,pro,api,fresh,"2026-03-15T16:41:59.000Z"
|
|
42
42
|
copilot,individual,api,fresh,"2026-03-15T16:42:00.000Z"
|
|
43
|
-
grok,
|
|
43
|
+
grok,unknown,web,fresh,"2026-03-15T16:42:00.000Z"
|
|
44
44
|
windows[13]{provider,id,label,percentRemaining,resetsAt,state}:
|
|
45
45
|
claude,five_hour,session,82,"2026-03-15T21:15:00.000Z",fresh
|
|
46
46
|
claude,seven_day,week,64,"2026-03-19T15:00:00.000Z",fresh
|
|
@@ -95,7 +95,7 @@ $ quota-axi --provider claude --json
|
|
|
95
95
|
"state": {
|
|
96
96
|
"status": "fresh",
|
|
97
97
|
"stale": false,
|
|
98
|
-
"sourcesTried": ["oauth"],
|
|
98
|
+
"sourcesTried": ["oauth", "oauth-profile"],
|
|
99
99
|
"refreshedAt": "2026-03-15T16:41:55.000Z"
|
|
100
100
|
}
|
|
101
101
|
}
|
|
@@ -111,7 +111,7 @@ auth[7]{provider,source,path,status,error}:
|
|
|
111
111
|
claude,oauth-file,~/.claude/.credentials.json,available,none
|
|
112
112
|
claude,keychain,none,skipped,keychain_prompt_required
|
|
113
113
|
codex,auth-json,~/.codex/auth.json,available,none
|
|
114
|
-
codex,cli-rpc,
|
|
114
|
+
codex,cli-rpc,~/.local/bin/codex,available,none
|
|
115
115
|
cursor,state-vscdb,~/Library/Application Support/Cursor/User/globalStorage/state.vscdb,available,none
|
|
116
116
|
copilot,apps-json,~/.config/github-copilot/apps.json,available,none
|
|
117
117
|
grok,auth-json,~/.grok/auth.json,available,none
|
|
@@ -224,8 +224,10 @@ It is generated from `src/skill.ts`; update it with `pnpm run build:skill` and v
|
|
|
224
224
|
| Quota report | `providers` |
|
|
225
225
|
| Provider report | `provider`, `label`, `source`, `windows`, `state`, optional `plan`, and optional `credits` |
|
|
226
226
|
| Provider report with `--full` | Optional `account` identity and per-source `attempts` |
|
|
227
|
+
| Account identity (`--full`) | Optional `email`, `organization`, `accountId`, and `identityStatus` |
|
|
227
228
|
|
|
228
229
|
Account identity and per-source `attempts` are omitted unless `--full` is passed.
|
|
230
|
+
Claude `identityStatus` is `verified` only when Anthropic returns an authoritative account identifier; `email` and `organization` are display-only and must not be used for duplicate detection.
|
|
229
231
|
|
|
230
232
|
### Provider `state`
|
|
231
233
|
|
|
@@ -256,7 +258,7 @@ Default TOON output includes the same condition in an `advice` block with `provi
|
|
|
256
258
|
| -------------------------------- | ---------------------------------------------------------------------------- |
|
|
257
259
|
| Provider statuses | `fresh`, `stale`, `unavailable`, `auth_required`, `rate_limited`, or `error` |
|
|
258
260
|
| Provider sources | `oauth`, `cli-rpc`, `api`, `web`, `cache`, or `unavailable` |
|
|
259
|
-
| Current provider adapter sources | `oauth`, `cli-rpc`, `api`, `cache`, and `unavailable`
|
|
261
|
+
| Current provider adapter sources | `oauth`, `cli-rpc`, `api`, `web`, `cache`, and `unavailable` |
|
|
260
262
|
| Window kinds | `session`, `weekly`, `monthly`, `model`, `credits`, or `unknown` |
|
|
261
263
|
| Source attempt statuses | `success`, `failed`, or `skipped` |
|
|
262
264
|
|
|
@@ -264,15 +266,15 @@ Source attempts can include `credentialPresent` when a non-secret probe confirms
|
|
|
264
266
|
|
|
265
267
|
### Provider windows
|
|
266
268
|
|
|
267
|
-
| Provider
|
|
268
|
-
|
|
|
269
|
-
| Claude
|
|
270
|
-
| Claude scoped `limits`
|
|
271
|
-
| Codex
|
|
272
|
-
| Cursor
|
|
273
|
-
| GitHub Copilot
|
|
274
|
-
| Grok
|
|
275
|
-
| Grok
|
|
269
|
+
| Provider | Windows and capabilities |
|
|
270
|
+
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
271
|
+
| Claude | Can report `five_hour`, `seven_day`, optional `seven_day_opus`, and optional `extra_usage` windows. |
|
|
272
|
+
| Claude scoped `limits` | When the account's usage response includes a scoped `limits` list, quota-axi surfaces every active window it describes instead, including model-scoped ones (e.g. Fable) as a `model:<slug>` window. |
|
|
273
|
+
| Codex | Can report `five_hour` and `weekly` windows plus optional credit balance data, plus any additional model- or feature-scoped rate limits the account has as `model:<id>:5h` / `model:<id>:7d` windows, and an optional code-review rate limit as `code_review_five_hour` / `code_review_weekly`. |
|
|
274
|
+
| Cursor | Can report `included_usage`, `auto_usage`, `api_usage`, and optional `spend_limit` windows. |
|
|
275
|
+
| GitHub Copilot | Can report quota snapshot windows such as `chat`, `completions`, and `premium_interactions`; when the first-party endpoint exposes entitlement but no numeric quota windows, quota-axi reports a fresh provider state with an empty `windows` list rather than inventing percentages. |
|
|
276
|
+
| Grok | Reports the shared `credits` window, optional product-scoped `product:<slug>` windows, the current-period reset, and optional prepaid credit balance from the consumer Usage-page operation. |
|
|
277
|
+
| Grok proto3 zero | For the exact consumer operation only, an omitted usage float is the official proto3 zero when a valid weekly or monthly current period proves the config is present; quota-axi reports `0` used and `100` remaining rather than deriving usage from money. |
|
|
276
278
|
|
|
277
279
|
### `auth --json` shape
|
|
278
280
|
|
|
@@ -293,13 +295,13 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
|
|
|
293
295
|
|
|
294
296
|
### Provider credential sources
|
|
295
297
|
|
|
296
|
-
| Provider | Credential sources read
|
|
297
|
-
| -------------- |
|
|
298
|
-
| Claude | `~/.claude/.credentials.json`; on macOS, the
|
|
299
|
-
| Codex | `$CODEX_HOME/auth.json` or `~/.codex/auth.json` before the read-only CLI fallback |
|
|
300
|
-
| Cursor | `$CURSOR_STATE_DB` when set or the platform Cursor state database path
|
|
301
|
-
| GitHub Copilot | `$GITHUB_COPILOT_APPS_JSON` when set or the local Copilot apps auth file
|
|
302
|
-
| Grok | `$GROK_AUTH_JSON`, inline `$GROK_AUTH`, `$GROK_AUTH_PATH`, or `$GROK_HOME/auth.json` / `~/.grok/auth.json`
|
|
298
|
+
| Provider | Credential sources read |
|
|
299
|
+
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
300
|
+
| 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 |
|
|
301
|
+
| 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 |
|
|
302
|
+
| Cursor | `$CURSOR_STATE_DB` when set or the platform Cursor state database path |
|
|
303
|
+
| GitHub Copilot | `$GITHUB_COPILOT_APPS_JSON` when set or the local Copilot apps auth file |
|
|
304
|
+
| Grok | `$GROK_AUTH_JSON`, inline `$GROK_AUTH`, `$GROK_AUTH_PATH`, or `$GROK_HOME/auth.json` / `~/.grok/auth.json` |
|
|
303
305
|
|
|
304
306
|
### Provider notes
|
|
305
307
|
|
|
@@ -308,11 +310,13 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
|
|
|
308
310
|
- quota-axi records the non-secret access marker after any successful Keychain value read.
|
|
309
311
|
- When that marker exists, plain calls read the Keychain value again so an already-approved "Always Allow" grant keeps live Claude quota fresh.
|
|
310
312
|
- Without the flag or marker, quota-axi may perform a non-secret Keychain item presence check so it only suggests Keychain access when a Claude credential item exists.
|
|
313
|
+
- 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.
|
|
311
314
|
|
|
312
315
|
**Codex**
|
|
313
316
|
|
|
314
317
|
- Codex `auth.json` support is OAuth-token only; API key values such as `OPENAI_API_KEY` are treated as invalid for quota usage calls and are not sent to ChatGPT usage endpoints.
|
|
315
318
|
- It may run `codex -s read-only -a untrusted app-server` for Codex JSON-RPC fallback.
|
|
319
|
+
- Set `QUOTA_AXI_CODEX_BINARY` to an absolute executable path when the fallback must use a specific Codex installation. Auth inspection and the app-server probe resolve the same path, and an invalid override fails closed instead of consulting `PATH`.
|
|
316
320
|
|
|
317
321
|
**Cursor**
|
|
318
322
|
|
|
@@ -326,9 +330,9 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
|
|
|
326
330
|
|
|
327
331
|
**Grok**
|
|
328
332
|
|
|
329
|
-
- It selects session-scoped auth instead of API-key entries and
|
|
333
|
+
- It selects session-scoped auth instead of API-key entries and sends a read-only gRPC-web request to Grok's consumer `grok_api_v2.GrokBuildBilling.GetGrokCreditsConfig` operation.
|
|
330
334
|
- Session-scoped Grok auth includes web/session scopes and OIDC records scoped to `auth.x.ai` with `auth_mode` or `authMode` set to `oidc`, including scope keys with `::<client id>` suffixes.
|
|
331
|
-
- It
|
|
335
|
+
- It does not send browser cookies, launch the Grok CLI, refresh credentials, perform OAuth, retain raw response bodies, or derive usage from monetary fields.
|
|
332
336
|
|
|
333
337
|
### Safety guarantees
|
|
334
338
|
|
|
@@ -336,19 +340,20 @@ Auth source entries can include `credentialPresent` when a non-secret probe conf
|
|
|
336
340
|
- The user-initiated `update` command is the only non-provider network surface, and it is not part of quota measurement.
|
|
337
341
|
- It sends credential values only to the first-party provider request they authenticate.
|
|
338
342
|
- It never prints, logs, or caches credential values.
|
|
339
|
-
- It never launches the Claude
|
|
343
|
+
- It never launches the Claude or Grok CLIs, so it cannot spend quota or mutate provider credentials while measuring them.
|
|
340
344
|
|
|
341
345
|
### Cache
|
|
342
346
|
|
|
343
|
-
| Item | Behavior
|
|
344
|
-
| -------------------------------------- |
|
|
345
|
-
| Quota cache | Lives at `~/.cache/quota-axi/quotas.json` or under `$XDG_CACHE_HOME/quota-axi/` when `XDG_CACHE_HOME` is set.
|
|
346
|
-
| Quota cache permissions | Uses `0600` file permissions.
|
|
347
|
-
| Quota cache contents | Stores normalized non-secret snapshots only.
|
|
348
|
-
| Claude Keychain access marker | Lives alongside the quota cache as `claude-keychain-access-granted
|
|
349
|
-
| Cached reports | Only fresh provider snapshots with windows are cached.
|
|
350
|
-
| Fresh provider reports with no windows | Clear any cached snapshot for that provider, so entitlement-only reports do not leave stale quota windows behind.
|
|
351
|
-
| Reports and details not cached | Failed providers, stale providers, account identity, and source attempts are not cached.
|
|
347
|
+
| Item | Behavior |
|
|
348
|
+
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
349
|
+
| Quota cache | Lives at `~/.cache/quota-axi/quotas.json` or under `$XDG_CACHE_HOME/quota-axi/` when `XDG_CACHE_HOME` is set. |
|
|
350
|
+
| Quota cache permissions | Uses `0600` file permissions. |
|
|
351
|
+
| Quota cache contents | Stores normalized non-secret snapshots only. |
|
|
352
|
+
| Claude Keychain access marker | Lives alongside the quota cache as `claude-keychain-access-granted` for the default profile or with an eight-character path-hash suffix for a `$CLAUDE_CONFIG_DIR` profile; uses `0600` file permissions and contains no credential material. |
|
|
353
|
+
| Cached reports | Only fresh provider snapshots with windows are cached. |
|
|
354
|
+
| Fresh provider reports with no windows | Clear any cached snapshot for that provider, so entitlement-only reports do not leave stale quota windows behind. |
|
|
355
|
+
| Reports and details not cached | Failed providers, stale providers, account identity, and source attempts are not cached. |
|
|
356
|
+
| Grok cache provenance | Only snapshots produced by the current `web` consumer operation can be used as Grok stale fallback; legacy `api` billing-proxy snapshots are rejected. |
|
|
352
357
|
|
|
353
358
|
## Development
|
|
354
359
|
|
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(): string;
|
|
12
|
+
export declare function claudeKeychainAccessMarkerPath(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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { mkdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
2
3
|
import { homedir } from "node:os";
|
|
3
4
|
import { dirname, isAbsolute, join, relative, sep } from "node:path";
|
|
4
5
|
export function collapseHome(path) {
|
|
@@ -36,8 +37,11 @@ function samePath(left, right) {
|
|
|
36
37
|
export function cacheFilePath() {
|
|
37
38
|
return join(cacheDirPath(), "quotas.json");
|
|
38
39
|
}
|
|
39
|
-
export function claudeKeychainAccessMarkerPath() {
|
|
40
|
-
|
|
40
|
+
export function claudeKeychainAccessMarkerPath(configDir) {
|
|
41
|
+
const suffix = configDir
|
|
42
|
+
? `-${createHash("sha256").update(configDir).digest("hex").slice(0, 8)}`
|
|
43
|
+
: "";
|
|
44
|
+
return join(cacheDirPath(), `claude-keychain-access-granted${suffix}`);
|
|
41
45
|
}
|
|
42
46
|
function cacheDirPath() {
|
|
43
47
|
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,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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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AuthProviderReport, ProviderAdapter, ProviderOptions, ProviderQuota, QuotaWindow } from "../types.js";
|
|
2
|
+
type ClaudeAccount = NonNullable<ProviderQuota["account"]>;
|
|
2
3
|
export declare const claudeAdapter: ProviderAdapter;
|
|
3
4
|
export declare function fetchQuota(options: ProviderOptions): Promise<ProviderQuota>;
|
|
4
5
|
export declare function inspectAuth(options: ProviderOptions): Promise<AuthProviderReport>;
|
|
@@ -7,3 +8,7 @@ export declare function normalizeClaudeApiUsage(raw: unknown, plan?: string): {
|
|
|
7
8
|
windows: QuotaWindow[];
|
|
8
9
|
refreshedAt: string;
|
|
9
10
|
} | undefined;
|
|
11
|
+
export declare function normalizeClaudeProfile(raw: unknown): ClaudeAccount | undefined;
|
|
12
|
+
export declare function claudeCredentialFile(): string;
|
|
13
|
+
export declare function claudeKeychainService(): string;
|
|
14
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { chmodSync, existsSync, renameSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
2
3
|
import { homedir } from "node:os";
|
|
3
4
|
import { join } from "node:path";
|
|
4
5
|
import { readCachedProvider } from "../cache.js";
|
|
@@ -7,14 +8,14 @@ import { execFileText } from "../lib/process.js";
|
|
|
7
8
|
import { clampPercent, nowIso, retryAfterToIso } from "../lib/time.js";
|
|
8
9
|
import { failedProvider, sourceNames, staleFromCache, statusFromError, successProvider, withRemaining, } from "./common.js";
|
|
9
10
|
const API_URL = "https://api.anthropic.com/api/oauth/usage";
|
|
11
|
+
const PROFILE_API_URL = "https://api.anthropic.com/api/oauth/profile";
|
|
10
12
|
const OAUTH_BETA = "oauth-2025-04-20";
|
|
11
13
|
const CLAUDE_CODE_USER_AGENT = "claude-code/2.1.202";
|
|
12
14
|
const API_TIMEOUT_MS = 15_000;
|
|
13
15
|
const KEYCHAIN_PROMPT_TIMEOUT_MS = 60_000;
|
|
14
16
|
const KEYCHAIN_PRESENCE_TIMEOUT_MS = 5_000;
|
|
15
17
|
const KEYCHAIN_ITEM_NOT_FOUND_EXIT_CODE = 44;
|
|
16
|
-
const
|
|
17
|
-
const KEYCHAIN_SERVICE = "Claude Code-credentials";
|
|
18
|
+
const DEFAULT_KEYCHAIN_SERVICE = "Claude Code-credentials";
|
|
18
19
|
export const claudeAdapter = {
|
|
19
20
|
id: "claude",
|
|
20
21
|
label: "Claude",
|
|
@@ -67,6 +68,13 @@ export async function fetchQuota(options) {
|
|
|
67
68
|
try {
|
|
68
69
|
const quota = await fetchOauthUsage(credential);
|
|
69
70
|
attempts[attempts.length - 1] = { source: "oauth", status: "success" };
|
|
71
|
+
attempts.push(quota.identityError
|
|
72
|
+
? {
|
|
73
|
+
source: "oauth-profile",
|
|
74
|
+
status: "failed",
|
|
75
|
+
error: quota.identityError,
|
|
76
|
+
}
|
|
77
|
+
: { source: "oauth-profile", status: "success" });
|
|
70
78
|
return successProvider({
|
|
71
79
|
provider: "claude",
|
|
72
80
|
label: "Claude",
|
|
@@ -110,13 +118,14 @@ export async function fetchQuota(options) {
|
|
|
110
118
|
});
|
|
111
119
|
}
|
|
112
120
|
export async function inspectAuth(options) {
|
|
113
|
-
const
|
|
121
|
+
const locations = resolveClaudeProfileLocations();
|
|
122
|
+
const states = await readCredentialStates(options, locations);
|
|
114
123
|
const sources = states.map((state) => {
|
|
115
124
|
if (state.status === "available") {
|
|
116
125
|
return {
|
|
117
126
|
source: state.credentials.source,
|
|
118
127
|
path: state.credentials.source === "oauth-file"
|
|
119
|
-
?
|
|
128
|
+
? locations.credentialFile
|
|
120
129
|
: undefined,
|
|
121
130
|
status: "available",
|
|
122
131
|
};
|
|
@@ -148,6 +157,29 @@ export function normalizeClaudeApiUsage(raw, plan) {
|
|
|
148
157
|
return undefined;
|
|
149
158
|
return { plan, windows, refreshedAt: nowIso() };
|
|
150
159
|
}
|
|
160
|
+
export function normalizeClaudeProfile(raw) {
|
|
161
|
+
const data = objectValue(raw);
|
|
162
|
+
if (!data)
|
|
163
|
+
return undefined;
|
|
164
|
+
const account = objectValue(data.account);
|
|
165
|
+
const accountId = stringValue(account?.uuid);
|
|
166
|
+
if (!accountId)
|
|
167
|
+
return undefined;
|
|
168
|
+
const organization = objectValue(data.organization);
|
|
169
|
+
return {
|
|
170
|
+
accountId,
|
|
171
|
+
email: stringValue(account?.email) ??
|
|
172
|
+
stringValue(account?.email_address) ??
|
|
173
|
+
stringValue(account?.emailAddress) ??
|
|
174
|
+
stringValue(data.email_address) ??
|
|
175
|
+
stringValue(data.emailAddress) ??
|
|
176
|
+
stringValue(data.email),
|
|
177
|
+
organization: stringValue(organization?.name) ??
|
|
178
|
+
stringValue(data.organization_name) ??
|
|
179
|
+
stringValue(data.organizationName),
|
|
180
|
+
identityStatus: "verified",
|
|
181
|
+
};
|
|
182
|
+
}
|
|
151
183
|
function normalizeScopedLimits(raw) {
|
|
152
184
|
if (!Array.isArray(raw))
|
|
153
185
|
return [];
|
|
@@ -215,22 +247,22 @@ function slugify(value) {
|
|
|
215
247
|
.replace(/[^a-z0-9]+/g, "_")
|
|
216
248
|
.replace(/^_+|_+$/g, "");
|
|
217
249
|
}
|
|
218
|
-
async function readCredentialStates(options) {
|
|
250
|
+
async function readCredentialStates(options, locations = resolveClaudeProfileLocations()) {
|
|
219
251
|
const states = [];
|
|
220
|
-
const fileState = extractCredentialState(readJsonFileResult(
|
|
252
|
+
const fileState = extractCredentialState(readJsonFileResult(locations.credentialFile), "oauth-file", locations.credentialFile);
|
|
221
253
|
states.push(fileState);
|
|
222
254
|
if (process.platform === "darwin") {
|
|
223
|
-
if (options.allowKeychainPrompt || hasKeychainAccessMarker()) {
|
|
224
|
-
states.push(await readKeychainCredentialState());
|
|
255
|
+
if (options.allowKeychainPrompt || hasKeychainAccessMarker(locations)) {
|
|
256
|
+
states.push(await readKeychainCredentialState(locations));
|
|
225
257
|
}
|
|
226
258
|
else {
|
|
227
|
-
states.push(await readSkippedKeychainCredentialState());
|
|
259
|
+
states.push(await readSkippedKeychainCredentialState(locations));
|
|
228
260
|
}
|
|
229
261
|
}
|
|
230
262
|
return states;
|
|
231
263
|
}
|
|
232
|
-
async function readSkippedKeychainCredentialState() {
|
|
233
|
-
const presence = await readKeychainItemPresence();
|
|
264
|
+
async function readSkippedKeychainCredentialState(locations) {
|
|
265
|
+
const presence = await readKeychainItemPresence(locations);
|
|
234
266
|
if (presence === "present") {
|
|
235
267
|
return {
|
|
236
268
|
status: "skipped",
|
|
@@ -257,24 +289,24 @@ async function readSkippedKeychainCredentialState() {
|
|
|
257
289
|
},
|
|
258
290
|
};
|
|
259
291
|
}
|
|
260
|
-
async function readKeychainItemPresence() {
|
|
292
|
+
async function readKeychainItemPresence(locations) {
|
|
261
293
|
try {
|
|
262
|
-
await execFileText("security", ["find-generic-password", "-s",
|
|
294
|
+
await execFileText("security", ["find-generic-password", "-s", locations.keychainService], KEYCHAIN_PRESENCE_TIMEOUT_MS);
|
|
263
295
|
return "present";
|
|
264
296
|
}
|
|
265
297
|
catch (error) {
|
|
266
298
|
return isKeychainItemNotFound(error) ? "missing" : "unknown";
|
|
267
299
|
}
|
|
268
300
|
}
|
|
269
|
-
async function readKeychainCredentialState() {
|
|
301
|
+
async function readKeychainCredentialState(locations) {
|
|
270
302
|
let blob;
|
|
271
303
|
try {
|
|
272
|
-
blob = await execFileText("security", ["find-generic-password", "-s",
|
|
304
|
+
blob = await execFileText("security", ["find-generic-password", "-s", locations.keychainService, "-w"], KEYCHAIN_PROMPT_TIMEOUT_MS);
|
|
273
305
|
}
|
|
274
306
|
catch (error) {
|
|
275
307
|
return keychainFailureState(error);
|
|
276
308
|
}
|
|
277
|
-
writeKeychainAccessMarkerBestEffort();
|
|
309
|
+
writeKeychainAccessMarkerBestEffort(locations);
|
|
278
310
|
try {
|
|
279
311
|
return extractCredentialState({ status: "success", value: JSON.parse(blob) }, "keychain");
|
|
280
312
|
}
|
|
@@ -289,12 +321,12 @@ async function readKeychainCredentialState() {
|
|
|
289
321
|
};
|
|
290
322
|
}
|
|
291
323
|
}
|
|
292
|
-
function hasKeychainAccessMarker() {
|
|
293
|
-
return existsSync(
|
|
324
|
+
function hasKeychainAccessMarker(locations) {
|
|
325
|
+
return existsSync(locations.keychainAccessMarker);
|
|
294
326
|
}
|
|
295
|
-
function writeKeychainAccessMarkerBestEffort() {
|
|
327
|
+
function writeKeychainAccessMarkerBestEffort(locations) {
|
|
296
328
|
try {
|
|
297
|
-
const file =
|
|
329
|
+
const file = locations.keychainAccessMarker;
|
|
298
330
|
ensurePrivateParent(file);
|
|
299
331
|
const temp = `${file}.${process.pid}.tmp`;
|
|
300
332
|
writeFileSync(temp, "granted\n", { mode: 0o600 });
|
|
@@ -306,6 +338,31 @@ function writeKeychainAccessMarkerBestEffort() {
|
|
|
306
338
|
return;
|
|
307
339
|
}
|
|
308
340
|
}
|
|
341
|
+
export function claudeCredentialFile() {
|
|
342
|
+
return resolveClaudeProfileLocations().credentialFile;
|
|
343
|
+
}
|
|
344
|
+
export function claudeKeychainService() {
|
|
345
|
+
return resolveClaudeProfileLocations().keychainService;
|
|
346
|
+
}
|
|
347
|
+
function resolveClaudeProfileLocations() {
|
|
348
|
+
const configuredDir = process.env.CLAUDE_CONFIG_DIR;
|
|
349
|
+
const configDir = (configuredDir ?? join(homedir(), ".claude")).normalize("NFC");
|
|
350
|
+
const keychainConfigDir = configuredDir ? configDir : undefined;
|
|
351
|
+
return {
|
|
352
|
+
credentialFile: join(configDir, ".credentials.json"),
|
|
353
|
+
keychainService: keychainServiceForConfigDir(keychainConfigDir),
|
|
354
|
+
keychainAccessMarker: claudeKeychainAccessMarkerPath(keychainConfigDir),
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
function keychainServiceForConfigDir(configDir) {
|
|
358
|
+
if (!configDir)
|
|
359
|
+
return DEFAULT_KEYCHAIN_SERVICE;
|
|
360
|
+
const suffix = createHash("sha256")
|
|
361
|
+
.update(configDir)
|
|
362
|
+
.digest("hex")
|
|
363
|
+
.slice(0, 8);
|
|
364
|
+
return `${DEFAULT_KEYCHAIN_SERVICE}-${suffix}`;
|
|
365
|
+
}
|
|
309
366
|
function isKeychainItemNotFound(error) {
|
|
310
367
|
return (error.code ===
|
|
311
368
|
KEYCHAIN_ITEM_NOT_FOUND_EXIT_CODE);
|
|
@@ -381,12 +438,54 @@ async function fetchOauthUsage(credentials) {
|
|
|
381
438
|
const quota = normalizeClaudeApiUsage(await response.json(), credentials.plan);
|
|
382
439
|
if (!quota)
|
|
383
440
|
throw new Error("Claude quota unavailable");
|
|
384
|
-
|
|
441
|
+
const identity = await fetchOauthProfile(credentials);
|
|
442
|
+
return {
|
|
443
|
+
...quota,
|
|
444
|
+
account: identity.account,
|
|
445
|
+
identityError: identity.error,
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
finally {
|
|
449
|
+
clearTimeout(timer);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
async function fetchOauthProfile(credentials) {
|
|
453
|
+
const controller = new AbortController();
|
|
454
|
+
const timer = setTimeout(() => controller.abort(), API_TIMEOUT_MS);
|
|
455
|
+
try {
|
|
456
|
+
const response = await fetch(PROFILE_API_URL, {
|
|
457
|
+
headers: {
|
|
458
|
+
authorization: `Bearer ${credentials.accessToken}`,
|
|
459
|
+
"User-Agent": CLAUDE_CODE_USER_AGENT,
|
|
460
|
+
"Content-Type": "application/json",
|
|
461
|
+
"Cache-Control": "no-cache",
|
|
462
|
+
accept: "application/json",
|
|
463
|
+
},
|
|
464
|
+
signal: controller.signal,
|
|
465
|
+
});
|
|
466
|
+
if (!response.ok) {
|
|
467
|
+
return unverifiedClaudeIdentity(`identity_profile_http_${response.status}`);
|
|
468
|
+
}
|
|
469
|
+
const account = normalizeClaudeProfile(await response.json());
|
|
470
|
+
return account
|
|
471
|
+
? { account }
|
|
472
|
+
: unverifiedClaudeIdentity("identity_profile_unrecognized");
|
|
473
|
+
}
|
|
474
|
+
catch (error) {
|
|
475
|
+
return unverifiedClaudeIdentity(error instanceof Error && error.name === "AbortError"
|
|
476
|
+
? "identity_profile_timeout"
|
|
477
|
+
: "identity_profile_unavailable");
|
|
385
478
|
}
|
|
386
479
|
finally {
|
|
387
480
|
clearTimeout(timer);
|
|
388
481
|
}
|
|
389
482
|
}
|
|
483
|
+
function unverifiedClaudeIdentity(error) {
|
|
484
|
+
return {
|
|
485
|
+
account: { identityStatus: "unverified" },
|
|
486
|
+
error,
|
|
487
|
+
};
|
|
488
|
+
}
|
|
390
489
|
// Anthropic's OAuth usage endpoint follows plain HTTP semantics: 401/403 mean
|
|
391
490
|
// the access token no longer authenticates, and 429 means the caller must
|
|
392
491
|
// back off, honoring the standard `Retry-After` header (RFC 9110 - either a
|
|
@@ -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,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,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,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;AACxE,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAiDnD,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,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,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACnD,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,eAAe;oBACjB,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,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;IAExB,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,sBAAsB,CACtC,kBAAkB,CAAC,eAAe,CAAC,EACnC,YAAY,EACZ,eAAe,CAChB,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,EAAE,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,MAAM,2BAA2B,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,MAAM,kCAAkC,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,kCAAkC;IAC/C,MAAM,QAAQ,GAAG,MAAM,wBAAwB,EAAE,CAAC;IAClD,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;IACrC,IAAI,CAAC;QACH,MAAM,YAAY,CAChB,UAAU,EACV,CAAC,uBAAuB,EAAE,IAAI,EAAE,gBAAgB,CAAC,EACjD,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;IACxC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,YAAY,CACvB,UAAU,EACV,CAAC,uBAAuB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,EACvD,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,mCAAmC,EAAE,CAAC;IACtC,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;IAC9B,OAAO,UAAU,CAAC,8BAA8B,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,mCAAmC;IAC1C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,8BAA8B,EAAE,CAAC;QAC9C,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,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;IAM3D,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,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,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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"}
|