@claudexor/cli 3.0.1 → 3.0.2
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.
|
@@ -7,9 +7,11 @@ import { type QuotaSnapshot } from "@claudexor/schema";
|
|
|
7
7
|
* signals arrive only reactively, AFTER a limit bites.
|
|
8
8
|
*
|
|
9
9
|
* Security (INV-062 class): the access token is read from the profile's OWN
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* vendor store — the keychain item on macOS, the vendor's
|
|
11
|
+
* `<configDir>/.credentials.json` (documented 0600 file store) elsewhere —
|
|
12
|
+
* held transiently for exactly one usage request, and never persisted,
|
|
13
|
+
* logged, or included in errors. A failing endpoint yields NO snapshot
|
|
14
|
+
* (fail-to-unknown) and never degrades auth readiness.
|
|
13
15
|
*/
|
|
14
16
|
/** Vendor formula, live-verified: `Claude Code-credentials-<sha256(configDir)[:8]>`. */
|
|
15
17
|
export declare function claudeOauthKeychainItem(configDir: string): string;
|
|
@@ -17,8 +19,10 @@ export interface ClaudeOauthCredential {
|
|
|
17
19
|
accessToken: string;
|
|
18
20
|
subscriptionType: string | null;
|
|
19
21
|
}
|
|
20
|
-
/** Read the profile's OAuth credential from
|
|
21
|
-
|
|
22
|
+
/** Read the profile's OAuth credential from the vendor's own store: the
|
|
23
|
+
* profile-keyed keychain item on macOS (`security`), or the vendor's
|
|
24
|
+
* `<configDir>/.credentials.json` everywhere else — Linux has no keychain. */
|
|
25
|
+
export declare function readClaudeOauthCredential(configDir: string, platform?: NodeJS.Platform): Promise<ClaudeOauthCredential | null>;
|
|
22
26
|
/** Accepts both credential shapes seen in the wild: flat and `{claudeAiOauth}`. */
|
|
23
27
|
export declare function parseClaudeOauthCredential(raw: string): ClaudeOauthCredential | null;
|
|
24
28
|
/** Pure mapping of the oauth/usage response onto QuotaSnapshot (testable). */
|
|
@@ -27,13 +31,16 @@ export interface ClaudeOauthUsageDeps {
|
|
|
27
31
|
readCredential: typeof readClaudeOauthCredential;
|
|
28
32
|
fetchUsage: (accessToken: string) => Promise<unknown>;
|
|
29
33
|
now: () => Date;
|
|
34
|
+
platform: NodeJS.Platform;
|
|
30
35
|
}
|
|
31
36
|
/** One subject per logged-in config dir: the default native dir (subject null)
|
|
32
37
|
* plus every enabled claude config_dir_login profile (subject = profile_id).
|
|
33
38
|
* The PRIMARY claude source (release cut V11a) — it owns the claude subject
|
|
34
39
|
* universe, so every candidate resolves to a snapshot OR a typed absence:
|
|
35
|
-
* a null credential is not_logged_in (
|
|
36
|
-
* missing item from an unavailable keychain, so
|
|
37
|
-
*
|
|
40
|
+
* a null credential is not_logged_in (on macOS the keychain read cannot tell
|
|
41
|
+
* a missing item from an unavailable keychain, so its detail states both; off
|
|
42
|
+
* macOS a missing credential file IS the vendor's logged-out state), a store
|
|
43
|
+
* read fault is the tagged reason it carries, and a fetch refusal is
|
|
44
|
+
* refresh_failed. Absence is stated, never inferred. */
|
|
38
45
|
export declare function refreshClaudeOauthUsageQuota(deps?: Partial<ClaudeOauthUsageDeps>): Promise<QuotaRefreshResult>;
|
|
39
46
|
//# sourceMappingURL=claude-oauth-usage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-oauth-usage.d.ts","sourceRoot":"","sources":["../src/claude-oauth-usage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-oauth-usage.d.ts","sourceRoot":"","sources":["../src/claude-oauth-usage.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAQ3B;;;;;;;;;;;;GAYG;AAEH,wFAAwF;AACxF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAID;;8EAE8E;AAC9E,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAmBvC;AA8BD,mFAAmF;AACnF,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAkBpF;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,UAAU,OAAa,GACtB,aAAa,GAAG,IAAI,CAqBtB;AA4CD,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,OAAO,yBAAyB,CAAC;IACjD,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC3B;AAmCD;;;;;;;;wDAQwD;AACxD,wBAAsB,4BAA4B,CAChD,IAAI,GAAE,OAAO,CAAC,oBAAoB,CAAM,GACvC,OAAO,CAAC,kBAAkB,CAAC,CAqE7B"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
2
3
|
import { userInfo } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
3
5
|
import { promisify } from "node:util";
|
|
4
6
|
import { loadConfig } from "@claudexor/config";
|
|
5
7
|
import { canonicalProfileConfigDir, defaultNativeClaudeConfigDir } from "@claudexor/harness-claude";
|
|
@@ -16,17 +18,23 @@ const FETCH_TIMEOUT_MS = 10_000;
|
|
|
16
18
|
* signals arrive only reactively, AFTER a limit bites.
|
|
17
19
|
*
|
|
18
20
|
* Security (INV-062 class): the access token is read from the profile's OWN
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
21
|
+
* vendor store — the keychain item on macOS, the vendor's
|
|
22
|
+
* `<configDir>/.credentials.json` (documented 0600 file store) elsewhere —
|
|
23
|
+
* held transiently for exactly one usage request, and never persisted,
|
|
24
|
+
* logged, or included in errors. A failing endpoint yields NO snapshot
|
|
25
|
+
* (fail-to-unknown) and never degrades auth readiness.
|
|
22
26
|
*/
|
|
23
27
|
/** Vendor formula, live-verified: `Claude Code-credentials-<sha256(configDir)[:8]>`. */
|
|
24
28
|
export function claudeOauthKeychainItem(configDir) {
|
|
25
29
|
return `Claude Code-credentials-${sha256(configDir).replace("sha256:", "").slice(0, 8)}`;
|
|
26
30
|
}
|
|
27
31
|
const execFileAsync = promisify(execFile);
|
|
28
|
-
/** Read the profile's OAuth credential from
|
|
29
|
-
|
|
32
|
+
/** Read the profile's OAuth credential from the vendor's own store: the
|
|
33
|
+
* profile-keyed keychain item on macOS (`security`), or the vendor's
|
|
34
|
+
* `<configDir>/.credentials.json` everywhere else — Linux has no keychain. */
|
|
35
|
+
export async function readClaudeOauthCredential(configDir, platform = process.platform) {
|
|
36
|
+
if (platform !== "darwin")
|
|
37
|
+
return readClaudeOauthCredentialFile(configDir);
|
|
30
38
|
try {
|
|
31
39
|
const { stdout } = await execFileAsync("security", [
|
|
32
40
|
"find-generic-password",
|
|
@@ -39,9 +47,35 @@ export async function readClaudeOauthCredential(configDir) {
|
|
|
39
47
|
return parseClaudeOauthCredential(stdout);
|
|
40
48
|
}
|
|
41
49
|
catch {
|
|
42
|
-
return null; // no item /
|
|
50
|
+
return null; // no item / locked keychain — honest absence
|
|
43
51
|
}
|
|
44
52
|
}
|
|
53
|
+
/** The non-macOS vendor store (`.credentials.json`, documented mode 0600).
|
|
54
|
+
* A missing file is the honest logged-out null; a present-but-unreadable or
|
|
55
|
+
* unparseable file throws a reason-tagged error carrying only the error
|
|
56
|
+
* class — never file bytes or a token (INV-062). */
|
|
57
|
+
async function readClaudeOauthCredentialFile(configDir) {
|
|
58
|
+
let raw;
|
|
59
|
+
try {
|
|
60
|
+
raw = await readFile(join(configDir, ".credentials.json"), "utf8");
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
const code = error.code;
|
|
64
|
+
if (code === "ENOENT" || code === "ENOTDIR")
|
|
65
|
+
return null;
|
|
66
|
+
throw taggedRefreshFailure(`credential file unreadable (${code ?? "io_error"})`);
|
|
67
|
+
}
|
|
68
|
+
const credential = parseClaudeOauthCredential(raw);
|
|
69
|
+
if (credential === null) {
|
|
70
|
+
throw taggedRefreshFailure("credential file did not parse as a vendor credential");
|
|
71
|
+
}
|
|
72
|
+
return credential;
|
|
73
|
+
}
|
|
74
|
+
function taggedRefreshFailure(detail) {
|
|
75
|
+
return Object.assign(new Error(detail), {
|
|
76
|
+
quotaAbsenceReason: "refresh_failed",
|
|
77
|
+
});
|
|
78
|
+
}
|
|
45
79
|
/** Accepts both credential shapes seen in the wild: flat and `{claudeAiOauth}`. */
|
|
46
80
|
export function parseClaudeOauthCredential(raw) {
|
|
47
81
|
try {
|
|
@@ -157,13 +191,19 @@ function claudeOauthAbsence(subjectId, reason, detail, observedAt) {
|
|
|
157
191
|
* plus every enabled claude config_dir_login profile (subject = profile_id).
|
|
158
192
|
* The PRIMARY claude source (release cut V11a) — it owns the claude subject
|
|
159
193
|
* universe, so every candidate resolves to a snapshot OR a typed absence:
|
|
160
|
-
* a null credential is not_logged_in (
|
|
161
|
-
* missing item from an unavailable keychain, so
|
|
162
|
-
*
|
|
194
|
+
* a null credential is not_logged_in (on macOS the keychain read cannot tell
|
|
195
|
+
* a missing item from an unavailable keychain, so its detail states both; off
|
|
196
|
+
* macOS a missing credential file IS the vendor's logged-out state), a store
|
|
197
|
+
* read fault is the tagged reason it carries, and a fetch refusal is
|
|
198
|
+
* refresh_failed. Absence is stated, never inferred. */
|
|
163
199
|
export async function refreshClaudeOauthUsageQuota(deps = {}) {
|
|
164
200
|
const readCredential = deps.readCredential ?? readClaudeOauthCredential;
|
|
165
201
|
const fetchUsage = deps.fetchUsage ?? fetchUsageDefault;
|
|
166
202
|
const now = deps.now ?? (() => new Date());
|
|
203
|
+
const platform = deps.platform ?? process.platform;
|
|
204
|
+
const notLoggedInDetail = platform === "darwin"
|
|
205
|
+
? "no OAuth credential in the keychain item (no login, or the keychain tool is unavailable)"
|
|
206
|
+
: "no vendor credential file in the config dir (not logged in)";
|
|
167
207
|
const candidates = [
|
|
168
208
|
{ subjectId: null, configDir: defaultNativeClaudeConfigDir() },
|
|
169
209
|
];
|
|
@@ -185,9 +225,17 @@ export async function refreshClaudeOauthUsageQuota(deps = {}) {
|
|
|
185
225
|
const snapshots = [];
|
|
186
226
|
const absences = [];
|
|
187
227
|
for (const candidate of candidates) {
|
|
188
|
-
|
|
228
|
+
let credential;
|
|
229
|
+
try {
|
|
230
|
+
credential = await readCredential(candidate.configDir, platform);
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
const tagged = error?.quotaAbsenceReason;
|
|
234
|
+
absences.push(claudeOauthAbsence(candidate.subjectId, tagged ?? "refresh_failed", error instanceof Error ? error.message : String(error), now()));
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
189
237
|
if (!credential) {
|
|
190
|
-
absences.push(claudeOauthAbsence(candidate.subjectId, "not_logged_in",
|
|
238
|
+
absences.push(claudeOauthAbsence(candidate.subjectId, "not_logged_in", notLoggedInDetail, now()));
|
|
191
239
|
continue;
|
|
192
240
|
}
|
|
193
241
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-oauth-usage.js","sourceRoot":"","sources":["../src/claude-oauth-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EACL,aAAa,IAAI,mBAAmB,GAGrC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,MAAM,GAAG,oBAA6B,CAAC;AAC7C,MAAM,SAAS,GAAG,2CAA2C,CAAC;AAC9D,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAC7C,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC
|
|
1
|
+
{"version":3,"file":"claude-oauth-usage.js","sourceRoot":"","sources":["../src/claude-oauth-usage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claudexor/cli",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Claudexor CLI (claudexor). Thin surface over the orchestrator.",
|
|
6
6
|
"type": "module",
|
|
@@ -10,28 +10,28 @@
|
|
|
10
10
|
"dist"
|
|
11
11
|
],
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@claudexor/
|
|
14
|
-
"@claudexor/
|
|
15
|
-
"@claudexor/
|
|
16
|
-
"@claudexor/control-api": "3.0.
|
|
17
|
-
"@claudexor/delivery": "3.0.
|
|
18
|
-
"@claudexor/daemon": "3.0.
|
|
19
|
-
"@claudexor/
|
|
20
|
-
"@claudexor/
|
|
21
|
-
"@claudexor/gateway": "3.0.
|
|
22
|
-
"@claudexor/journal": "3.0.
|
|
23
|
-
"@claudexor/orchestrator": "3.0.
|
|
24
|
-
"@claudexor/review": "3.0.
|
|
25
|
-
"@claudexor/harness-claude": "3.0.
|
|
26
|
-
"@claudexor/harness-codex": "3.0.
|
|
27
|
-
"@claudexor/harness-cursor": "3.0.
|
|
28
|
-
"@claudexor/harness-fake": "3.0.
|
|
29
|
-
"@claudexor/harness-opencode": "3.0.
|
|
30
|
-
"@claudexor/
|
|
31
|
-
"@claudexor/
|
|
32
|
-
"@claudexor/
|
|
33
|
-
"@claudexor/
|
|
34
|
-
"@claudexor/
|
|
13
|
+
"@claudexor/artifact-store": "3.0.2",
|
|
14
|
+
"@claudexor/config": "3.0.2",
|
|
15
|
+
"@claudexor/acp-server": "3.0.2",
|
|
16
|
+
"@claudexor/control-api": "3.0.2",
|
|
17
|
+
"@claudexor/delivery": "3.0.2",
|
|
18
|
+
"@claudexor/daemon": "3.0.2",
|
|
19
|
+
"@claudexor/mcp-server": "3.0.2",
|
|
20
|
+
"@claudexor/core": "3.0.2",
|
|
21
|
+
"@claudexor/gateway": "3.0.2",
|
|
22
|
+
"@claudexor/journal": "3.0.2",
|
|
23
|
+
"@claudexor/orchestrator": "3.0.2",
|
|
24
|
+
"@claudexor/review": "3.0.2",
|
|
25
|
+
"@claudexor/harness-claude": "3.0.2",
|
|
26
|
+
"@claudexor/harness-codex": "3.0.2",
|
|
27
|
+
"@claudexor/harness-cursor": "3.0.2",
|
|
28
|
+
"@claudexor/harness-fake": "3.0.2",
|
|
29
|
+
"@claudexor/harness-opencode": "3.0.2",
|
|
30
|
+
"@claudexor/harness-raw-api": "3.0.2",
|
|
31
|
+
"@claudexor/secrets": "3.0.2",
|
|
32
|
+
"@claudexor/schema": "3.0.2",
|
|
33
|
+
"@claudexor/workspace": "3.0.2",
|
|
34
|
+
"@claudexor/util": "3.0.2"
|
|
35
35
|
},
|
|
36
36
|
"repository": {
|
|
37
37
|
"type": "git",
|