@ironbee-ai/cli 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +2 -95
- package/dist/clients/claude/hooks/session-status.d.ts +5 -0
- package/dist/clients/claude/hooks/session-status.d.ts.map +1 -1
- package/dist/clients/claude/hooks/session-status.js +120 -17
- package/dist/clients/claude/hooks/session-status.js.map +1 -1
- package/dist/clients/claude/index.d.ts.map +1 -1
- package/dist/clients/claude/index.js +11 -14
- package/dist/clients/claude/index.js.map +1 -1
- package/dist/clients/claude/oauth.d.ts +96 -0
- package/dist/clients/claude/oauth.d.ts.map +1 -0
- package/dist/clients/claude/oauth.js +290 -0
- package/dist/clients/claude/oauth.js.map +1 -0
- package/dist/clients/cursor/hooks/session-start.js +1 -1
- package/dist/clients/cursor/hooks/session-start.js.map +1 -1
- package/dist/clients/cursor/index.d.ts.map +1 -1
- package/dist/clients/cursor/index.js +9 -13
- package/dist/clients/cursor/index.js.map +1 -1
- package/dist/commands/claude.d.ts +30 -0
- package/dist/commands/claude.d.ts.map +1 -0
- package/dist/commands/claude.js +188 -0
- package/dist/commands/claude.js.map +1 -0
- package/dist/commands/status.js +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +1 -2
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +41 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +42 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/fs-prune.d.ts +1 -1
- package/dist/lib/fs-prune.js +1 -1
- package/dist/tui/config/schema.d.ts.map +1 -1
- package/dist/tui/config/schema.js +19 -0
- package/dist/tui/config/schema.js.map +1 -1
- package/dist/tui/sessions/area.d.ts.map +1 -1
- package/dist/tui/sessions/area.js +2 -45
- package/dist/tui/sessions/area.js.map +1 -1
- package/package.json +1 -1
- package/dist/analysis/code-changes.d.ts +0 -22
- package/dist/analysis/code-changes.d.ts.map +0 -1
- package/dist/analysis/code-changes.js +0 -141
- package/dist/analysis/code-changes.js.map +0 -1
- package/dist/analysis/cross-session.d.ts +0 -34
- package/dist/analysis/cross-session.d.ts.map +0 -1
- package/dist/analysis/cross-session.js +0 -230
- package/dist/analysis/cross-session.js.map +0 -1
- package/dist/analysis/fix-effectiveness.d.ts +0 -16
- package/dist/analysis/fix-effectiveness.d.ts.map +0 -1
- package/dist/analysis/fix-effectiveness.js +0 -99
- package/dist/analysis/fix-effectiveness.js.map +0 -1
- package/dist/analysis/scoring.d.ts +0 -15
- package/dist/analysis/scoring.d.ts.map +0 -1
- package/dist/analysis/scoring.js +0 -59
- package/dist/analysis/scoring.js.map +0 -1
- package/dist/analysis/time-analysis.d.ts +0 -22
- package/dist/analysis/time-analysis.d.ts.map +0 -1
- package/dist/analysis/time-analysis.js +0 -174
- package/dist/analysis/time-analysis.js.map +0 -1
- package/dist/analysis/verdict-details.d.ts +0 -23
- package/dist/analysis/verdict-details.d.ts.map +0 -1
- package/dist/analysis/verdict-details.js +0 -59
- package/dist/analysis/verdict-details.js.map +0 -1
- package/dist/analysis/verification-quality.d.ts +0 -20
- package/dist/analysis/verification-quality.d.ts.map +0 -1
- package/dist/analysis/verification-quality.js +0 -145
- package/dist/analysis/verification-quality.js.map +0 -1
- package/dist/clients/claude/commands/ironbee-analyze.md +0 -42
- package/dist/clients/cursor/commands/ironbee-analyze/SKILL.md +0 -48
- package/dist/commands/analyze.d.ts +0 -3
- package/dist/commands/analyze.d.ts.map +0 -1
- package/dist/commands/analyze.js +0 -329
- package/dist/commands/analyze.js.map +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { RateLimitWindow } from "../../lib/event";
|
|
2
|
+
export interface ClaudeOauthToken {
|
|
3
|
+
accessToken: string;
|
|
4
|
+
/** Epoch ms; undefined when the blob omitted it. */
|
|
5
|
+
expiresAt?: number;
|
|
6
|
+
/** "pro" / "max" / … when present in the blob; informational only. */
|
|
7
|
+
subscriptionType?: string;
|
|
8
|
+
}
|
|
9
|
+
/** The two rolling-window rate limits we map onto `SessionStatusEvent.rate_limits`. */
|
|
10
|
+
export interface OauthRateLimits {
|
|
11
|
+
five_hour?: RateLimitWindow;
|
|
12
|
+
seven_day?: RateLimitWindow;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Outcome of a macOS Keychain read, with the failure reason mapped from
|
|
16
|
+
* `security`'s exit code so the `enable` / `status` commands can explain WHY
|
|
17
|
+
* the read failed. The hook path uses the quiet {@link readClaudeOauthToken}
|
|
18
|
+
* wrapper instead and only cares about success/failure.
|
|
19
|
+
*/
|
|
20
|
+
export type KeychainResult = {
|
|
21
|
+
ok: true;
|
|
22
|
+
raw: string;
|
|
23
|
+
} | {
|
|
24
|
+
ok: false;
|
|
25
|
+
reason: "not_found" | "locked" | "denied" | "timeout" | "error";
|
|
26
|
+
message: string;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Read the Claude Code credential blob from the macOS login Keychain via the
|
|
30
|
+
* `security` CLI. Exit-code mapping mirrors opencode-claude-auth's keychain.ts:
|
|
31
|
+
* 44 → item not found · 36 → keychain locked · 128 → access denied ·
|
|
32
|
+
* killed / ETIMEDOUT → timeout (seen on macOS Tahoe) · else → generic error.
|
|
33
|
+
*
|
|
34
|
+
* Using the `security` binary (not a node keychain lib) is deliberate: the
|
|
35
|
+
* Keychain ACL identifies the requesting app by code signature, and `security`
|
|
36
|
+
* is a stable Apple-signed binary — so once the user grants "Always Allow",
|
|
37
|
+
* the grant survives IronBee version updates (a node-lib request would re-key
|
|
38
|
+
* on the changing node/ironbee binary and re-prompt).
|
|
39
|
+
*/
|
|
40
|
+
export declare function readKeychainCredential(): KeychainResult;
|
|
41
|
+
/**
|
|
42
|
+
* Parse a raw Claude Code OAuth credential blob. The blob is either
|
|
43
|
+
* `{ claudeAiOauth: {...} }` (the on-disk / keychain wrapper) or the inner
|
|
44
|
+
* object directly. Returns null when there's no usable `accessToken` (e.g. an
|
|
45
|
+
* `mcpOAuth`-only entry, which is an MCP server credential, not a user token).
|
|
46
|
+
*/
|
|
47
|
+
export declare function parseClaudeOauthBlob(raw: string): ClaudeOauthToken | null;
|
|
48
|
+
/**
|
|
49
|
+
* Detailed token resolution for the `enable` / `status` commands. Reports which
|
|
50
|
+
* source supplied the token and, on macOS keychain failure with no file
|
|
51
|
+
* fallback, the mapped diagnostic. `source: "none"` + `diag` = nothing worked.
|
|
52
|
+
*/
|
|
53
|
+
export interface OauthTokenResolution {
|
|
54
|
+
token: ClaudeOauthToken | null;
|
|
55
|
+
source: "keychain" | "file" | "none";
|
|
56
|
+
diag?: string;
|
|
57
|
+
}
|
|
58
|
+
export declare function resolveClaudeOauthToken(homeOverride?: string): OauthTokenResolution;
|
|
59
|
+
/**
|
|
60
|
+
* Quiet cross-platform token read for the hot path (statusline hook). Tries the
|
|
61
|
+
* Keychain (macOS) then the file, returning null on any failure without
|
|
62
|
+
* surfacing diagnostics.
|
|
63
|
+
*/
|
|
64
|
+
export declare function readClaudeOauthToken(homeOverride?: string): ClaudeOauthToken | null;
|
|
65
|
+
/** Map the raw `/api/oauth/usage` body onto the windows we ship. Null when neither maps. */
|
|
66
|
+
export declare function mapOauthUsageToRateLimits(usage: unknown): OauthRateLimits | null;
|
|
67
|
+
/**
|
|
68
|
+
* Generic GET against an OAuth-scoped endpoint (`/usage`, `/profile`, …) with
|
|
69
|
+
* the access token + required beta header. Bounded by `timeoutMs`
|
|
70
|
+
* (AbortController) so a caller on the statusline path never hangs. Returns the
|
|
71
|
+
* parsed JSON body, or null on any failure (non-2xx, timeout, malformed body).
|
|
72
|
+
*/
|
|
73
|
+
export declare function oauthGet(path: string, accessToken: string, timeoutMs?: number): Promise<unknown | null>;
|
|
74
|
+
/** Query `/api/oauth/usage` with a resolved token and map to rate-limit windows. */
|
|
75
|
+
export declare function fetchOauthUsage(accessToken: string, timeoutMs?: number): Promise<OauthRateLimits | null>;
|
|
76
|
+
/** Authoritative plan / org summary from `/api/oauth/profile` (used by `status`). */
|
|
77
|
+
export interface OauthProfileSummary {
|
|
78
|
+
email?: string;
|
|
79
|
+
organizationType?: string;
|
|
80
|
+
rateLimitTier?: string;
|
|
81
|
+
subscriptionStatus?: string;
|
|
82
|
+
}
|
|
83
|
+
export declare function summarizeOauthProfile(profile: unknown): OauthProfileSummary | null;
|
|
84
|
+
/** Query `/api/oauth/profile` with a resolved token and summarize it. */
|
|
85
|
+
export declare function fetchOauthProfile(accessToken: string, timeoutMs?: number): Promise<OauthProfileSummary | null>;
|
|
86
|
+
/**
|
|
87
|
+
* Read the token + query `/api/oauth/usage`, returning the mapped rate limits.
|
|
88
|
+
* The convenience wrapper the statusline hook calls. Returns null when no token
|
|
89
|
+
* is available, the token is already expired (skip the doomed call — we don't
|
|
90
|
+
* refresh), or the fetch fails.
|
|
91
|
+
*/
|
|
92
|
+
export declare function fetchClaudeRateLimits(opts?: {
|
|
93
|
+
timeoutMs?: number;
|
|
94
|
+
homeOverride?: string;
|
|
95
|
+
}): Promise<OauthRateLimits | null>;
|
|
96
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/clients/claude/oauth.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AASlD,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC5B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACpB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,CAmDvD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAyBzE;AAgBD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,uBAAuB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAsBnF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAEnF;AAyBD,4FAA4F;AAC5F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAkBhF;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC1B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAiC,GAC7C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAsBzB;AAED,oFAAoF;AACpF,wBAAsB,eAAe,CACjC,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAiC,GAC7C,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAEjC;AAED,qFAAqF;AACrF,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAiBlF;AAED,yEAAyE;AACzE,wBAAsB,iBAAiB,CACnC,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAiC,GAC7C,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAErC;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,CAAC,EAAE;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAUlC"}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readKeychainCredential = readKeychainCredential;
|
|
4
|
+
exports.parseClaudeOauthBlob = parseClaudeOauthBlob;
|
|
5
|
+
exports.resolveClaudeOauthToken = resolveClaudeOauthToken;
|
|
6
|
+
exports.readClaudeOauthToken = readClaudeOauthToken;
|
|
7
|
+
exports.mapOauthUsageToRateLimits = mapOauthUsageToRateLimits;
|
|
8
|
+
exports.oauthGet = oauthGet;
|
|
9
|
+
exports.fetchOauthUsage = fetchOauthUsage;
|
|
10
|
+
exports.summarizeOauthProfile = summarizeOauthProfile;
|
|
11
|
+
exports.fetchOauthProfile = fetchOauthProfile;
|
|
12
|
+
exports.fetchClaudeRateLimits = fetchClaudeRateLimits;
|
|
13
|
+
/**
|
|
14
|
+
* Claude OAuth access — read the Claude Code OAuth token and call OAuth-scoped
|
|
15
|
+
* Anthropic endpoints (`api.anthropic.com/api/oauth/*`).
|
|
16
|
+
*
|
|
17
|
+
* Why this exists: some signals are only reachable with the user's OAuth token.
|
|
18
|
+
* The first consumer is the statusline rate-limit fallback — the Claude Code
|
|
19
|
+
* statusline JSON only carries subscription `rate_limits` for Pro / Max plans
|
|
20
|
+
* (and only after the first API response); team / enterprise plans never get
|
|
21
|
+
* them. `/api/oauth/usage` returns the same utilization data regardless of
|
|
22
|
+
* plan. `/api/oauth/profile` (authoritative plan / org) is exposed for the
|
|
23
|
+
* `status` command and future consumers.
|
|
24
|
+
*
|
|
25
|
+
* This is the read side of the `claude.oauthAccess` capability (default-on,
|
|
26
|
+
* opt-out via `ironbee claude oauth-access disable`). We are a PASSIVE reader:
|
|
27
|
+
* we never refresh or write back the token (that's Claude Code's job — during
|
|
28
|
+
* an active session the keychain token is kept fresh, which is exactly when the
|
|
29
|
+
* statusline ticks). Every failure path returns null so callers never break.
|
|
30
|
+
*
|
|
31
|
+
* Credential-reading + keychain error mapping adapted from opencode-claude-auth.
|
|
32
|
+
*/
|
|
33
|
+
const child_process_1 = require("child_process");
|
|
34
|
+
const fs_1 = require("fs");
|
|
35
|
+
const os_1 = require("os");
|
|
36
|
+
const path_1 = require("path");
|
|
37
|
+
const logger_1 = require("../../lib/logger");
|
|
38
|
+
const KEYCHAIN_SERVICE = "Claude Code-credentials";
|
|
39
|
+
const OAUTH_BASE = "https://api.anthropic.com/api/oauth";
|
|
40
|
+
/** The OAuth-scoped endpoints require this beta header (matches Claude Code). */
|
|
41
|
+
const OAUTH_BETA = "oauth-2025-04-20";
|
|
42
|
+
const DEFAULT_FETCH_TIMEOUT_MS = 2500;
|
|
43
|
+
/**
|
|
44
|
+
* Read the Claude Code credential blob from the macOS login Keychain via the
|
|
45
|
+
* `security` CLI. Exit-code mapping mirrors opencode-claude-auth's keychain.ts:
|
|
46
|
+
* 44 → item not found · 36 → keychain locked · 128 → access denied ·
|
|
47
|
+
* killed / ETIMEDOUT → timeout (seen on macOS Tahoe) · else → generic error.
|
|
48
|
+
*
|
|
49
|
+
* Using the `security` binary (not a node keychain lib) is deliberate: the
|
|
50
|
+
* Keychain ACL identifies the requesting app by code signature, and `security`
|
|
51
|
+
* is a stable Apple-signed binary — so once the user grants "Always Allow",
|
|
52
|
+
* the grant survives IronBee version updates (a node-lib request would re-key
|
|
53
|
+
* on the changing node/ironbee binary and re-prompt).
|
|
54
|
+
*/
|
|
55
|
+
function readKeychainCredential() {
|
|
56
|
+
if (process.platform !== "darwin") {
|
|
57
|
+
return { ok: false, reason: "not_found", message: "Keychain is macOS-only." };
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
const raw = (0, child_process_1.execFileSync)("/usr/bin/security", ["find-generic-password", "-s", KEYCHAIN_SERVICE, "-w"], { timeout: 2000, encoding: "utf-8", stdio: ["pipe", "pipe", "ignore"] }).trim();
|
|
61
|
+
return { ok: true, raw };
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
const e = err;
|
|
65
|
+
if (e.killed === true || e.code === "ETIMEDOUT") {
|
|
66
|
+
return {
|
|
67
|
+
ok: false,
|
|
68
|
+
reason: "timeout",
|
|
69
|
+
message: "Keychain read timed out (seen on macOS Tahoe). Try restarting Keychain Access.",
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (e.status === 36) {
|
|
73
|
+
return {
|
|
74
|
+
ok: false,
|
|
75
|
+
reason: "locked",
|
|
76
|
+
message: "macOS Keychain is locked. Unlock it: security unlock-keychain ~/Library/Keychains/login.keychain-db",
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
if (e.status === 128) {
|
|
80
|
+
return {
|
|
81
|
+
ok: false,
|
|
82
|
+
reason: "denied",
|
|
83
|
+
message: "Keychain access was denied. Grant access when macOS prompts (choose \"Always Allow\").",
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (e.status === 44) {
|
|
87
|
+
return {
|
|
88
|
+
ok: false,
|
|
89
|
+
reason: "not_found",
|
|
90
|
+
message: "No \"Claude Code-credentials\" Keychain item. Sign in with Claude Code first.",
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
ok: false,
|
|
95
|
+
reason: "error",
|
|
96
|
+
message: `Keychain read failed (exit ${e.status ?? "unknown"}). Try re-authenticating with Claude Code.`,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Parse a raw Claude Code OAuth credential blob. The blob is either
|
|
102
|
+
* `{ claudeAiOauth: {...} }` (the on-disk / keychain wrapper) or the inner
|
|
103
|
+
* object directly. Returns null when there's no usable `accessToken` (e.g. an
|
|
104
|
+
* `mcpOAuth`-only entry, which is an MCP server credential, not a user token).
|
|
105
|
+
*/
|
|
106
|
+
function parseClaudeOauthBlob(raw) {
|
|
107
|
+
let parsed;
|
|
108
|
+
try {
|
|
109
|
+
parsed = JSON.parse(raw);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
if (parsed === null || typeof parsed !== "object") {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
const outer = parsed;
|
|
118
|
+
const inner = outer.claudeAiOauth;
|
|
119
|
+
const data = inner !== null && typeof inner === "object"
|
|
120
|
+
? inner
|
|
121
|
+
: outer;
|
|
122
|
+
if (typeof data.accessToken !== "string" || data.accessToken.length === 0) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
accessToken: data.accessToken,
|
|
127
|
+
expiresAt: typeof data.expiresAt === "number" ? data.expiresAt : undefined,
|
|
128
|
+
subscriptionType: typeof data.subscriptionType === "string" ? data.subscriptionType : undefined,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/** Read the credential blob from `~/.claude/.credentials.json` (Linux/Windows; macOS fallback). */
|
|
132
|
+
function readFileCredentialRaw(homeOverride) {
|
|
133
|
+
const credPath = (0, path_1.join)(homeOverride ?? (0, os_1.homedir)(), ".claude", ".credentials.json");
|
|
134
|
+
if (!(0, fs_1.existsSync)(credPath)) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
return (0, fs_1.readFileSync)(credPath, "utf-8");
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
logger_1.logger.debug(`oauth: credentials.json read failed: ${e instanceof Error ? e.message : e}`);
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function resolveClaudeOauthToken(homeOverride) {
|
|
146
|
+
let diag;
|
|
147
|
+
if (process.platform === "darwin") {
|
|
148
|
+
const kc = readKeychainCredential();
|
|
149
|
+
if (kc.ok) {
|
|
150
|
+
const token = parseClaudeOauthBlob(kc.raw);
|
|
151
|
+
if (token) {
|
|
152
|
+
return { token, source: "keychain" };
|
|
153
|
+
}
|
|
154
|
+
diag = "Keychain item found but no usable accessToken in it.";
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
diag = kc.message;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const fileRaw = readFileCredentialRaw(homeOverride);
|
|
161
|
+
if (fileRaw) {
|
|
162
|
+
const token = parseClaudeOauthBlob(fileRaw);
|
|
163
|
+
if (token) {
|
|
164
|
+
return { token, source: "file" };
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return { token: null, source: "none", diag };
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Quiet cross-platform token read for the hot path (statusline hook). Tries the
|
|
171
|
+
* Keychain (macOS) then the file, returning null on any failure without
|
|
172
|
+
* surfacing diagnostics.
|
|
173
|
+
*/
|
|
174
|
+
function readClaudeOauthToken(homeOverride) {
|
|
175
|
+
return resolveClaudeOauthToken(homeOverride).token;
|
|
176
|
+
}
|
|
177
|
+
/** One rolling window: `{ utilization, resets_at }` → RateLimitWindow (epoch ms). */
|
|
178
|
+
function mapWindow(w) {
|
|
179
|
+
if (w === null || typeof w !== "object") {
|
|
180
|
+
return undefined;
|
|
181
|
+
}
|
|
182
|
+
const o = w;
|
|
183
|
+
const util = o.utilization;
|
|
184
|
+
if (typeof util !== "number" || !Number.isFinite(util)) {
|
|
185
|
+
return undefined;
|
|
186
|
+
}
|
|
187
|
+
// The endpoint reports `resets_at` as an ISO-8601 string (with tz); convert
|
|
188
|
+
// to epoch ms to match every IronBee timestamp. Null/absent → window unusable.
|
|
189
|
+
const resetsAt = o.resets_at;
|
|
190
|
+
if (typeof resetsAt !== "string") {
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
|
193
|
+
const ms = Date.parse(resetsAt);
|
|
194
|
+
if (!Number.isFinite(ms)) {
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
return { used_percentage: util, resets_at: ms };
|
|
198
|
+
}
|
|
199
|
+
/** Map the raw `/api/oauth/usage` body onto the windows we ship. Null when neither maps. */
|
|
200
|
+
function mapOauthUsageToRateLimits(usage) {
|
|
201
|
+
if (usage === null || typeof usage !== "object") {
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
const o = usage;
|
|
205
|
+
const five = mapWindow(o.five_hour);
|
|
206
|
+
const seven = mapWindow(o.seven_day);
|
|
207
|
+
if (!five && !seven) {
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
const out = {};
|
|
211
|
+
if (five) {
|
|
212
|
+
out.five_hour = five;
|
|
213
|
+
}
|
|
214
|
+
if (seven) {
|
|
215
|
+
out.seven_day = seven;
|
|
216
|
+
}
|
|
217
|
+
return out;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Generic GET against an OAuth-scoped endpoint (`/usage`, `/profile`, …) with
|
|
221
|
+
* the access token + required beta header. Bounded by `timeoutMs`
|
|
222
|
+
* (AbortController) so a caller on the statusline path never hangs. Returns the
|
|
223
|
+
* parsed JSON body, or null on any failure (non-2xx, timeout, malformed body).
|
|
224
|
+
*/
|
|
225
|
+
async function oauthGet(path, accessToken, timeoutMs = DEFAULT_FETCH_TIMEOUT_MS) {
|
|
226
|
+
const controller = new AbortController();
|
|
227
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
228
|
+
try {
|
|
229
|
+
const res = await fetch(`${OAUTH_BASE}${path}`, {
|
|
230
|
+
headers: {
|
|
231
|
+
authorization: `Bearer ${accessToken}`,
|
|
232
|
+
"anthropic-beta": OAUTH_BETA,
|
|
233
|
+
},
|
|
234
|
+
signal: controller.signal,
|
|
235
|
+
});
|
|
236
|
+
if (!res.ok) {
|
|
237
|
+
logger_1.logger.debug(`oauth: GET ${path} → HTTP ${res.status}`);
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
return await res.json();
|
|
241
|
+
}
|
|
242
|
+
catch (e) {
|
|
243
|
+
logger_1.logger.debug(`oauth: GET ${path} failed: ${e instanceof Error ? e.message : e}`);
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
finally {
|
|
247
|
+
clearTimeout(timer);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/** Query `/api/oauth/usage` with a resolved token and map to rate-limit windows. */
|
|
251
|
+
async function fetchOauthUsage(accessToken, timeoutMs = DEFAULT_FETCH_TIMEOUT_MS) {
|
|
252
|
+
return mapOauthUsageToRateLimits(await oauthGet("/usage", accessToken, timeoutMs));
|
|
253
|
+
}
|
|
254
|
+
function summarizeOauthProfile(profile) {
|
|
255
|
+
if (profile === null || typeof profile !== "object") {
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
258
|
+
const o = profile;
|
|
259
|
+
const account = o.account !== null && typeof o.account === "object" ? o.account : {};
|
|
260
|
+
const org = o.organization !== null && typeof o.organization === "object" ? o.organization : {};
|
|
261
|
+
const str = (v) => typeof v === "string" && v.length > 0 ? v : undefined;
|
|
262
|
+
return {
|
|
263
|
+
email: str(account.email),
|
|
264
|
+
organizationType: str(org.organization_type),
|
|
265
|
+
rateLimitTier: str(org.rate_limit_tier),
|
|
266
|
+
subscriptionStatus: str(org.subscription_status),
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/** Query `/api/oauth/profile` with a resolved token and summarize it. */
|
|
270
|
+
async function fetchOauthProfile(accessToken, timeoutMs = DEFAULT_FETCH_TIMEOUT_MS) {
|
|
271
|
+
return summarizeOauthProfile(await oauthGet("/profile", accessToken, timeoutMs));
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Read the token + query `/api/oauth/usage`, returning the mapped rate limits.
|
|
275
|
+
* The convenience wrapper the statusline hook calls. Returns null when no token
|
|
276
|
+
* is available, the token is already expired (skip the doomed call — we don't
|
|
277
|
+
* refresh), or the fetch fails.
|
|
278
|
+
*/
|
|
279
|
+
async function fetchClaudeRateLimits(opts) {
|
|
280
|
+
const token = readClaudeOauthToken(opts?.homeOverride);
|
|
281
|
+
if (!token) {
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
if (typeof token.expiresAt === "number" && token.expiresAt <= Date.now()) {
|
|
285
|
+
logger_1.logger.debug("oauth: token expired; skipping /usage (we never refresh).");
|
|
286
|
+
return null;
|
|
287
|
+
}
|
|
288
|
+
return fetchOauthUsage(token.accessToken, opts?.timeoutMs ?? DEFAULT_FETCH_TIMEOUT_MS);
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=oauth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/clients/claude/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ async function run(projectDir) {
|
|
|
30
30
|
(0, logger_1.setLogFile)(`${projectDir}/.ironbee/sessions/${sessionId}/session.log`);
|
|
31
31
|
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
32
32
|
// Cursor provides user_email on every hook stdin — cache the first read
|
|
33
|
-
// in state.json so non-stdin callers (spawned workers
|
|
33
|
+
// in state.json so non-stdin callers (spawned workers) get it.
|
|
34
34
|
(0, session_state_1.setUserEmail)(sessionDir, input.user_email ?? undefined);
|
|
35
35
|
const entry = {
|
|
36
36
|
...(0, actions_1.baseFields)(actionsFile),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../../src/clients/cursor/hooks/session-start.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAuBH,kBA4EC;AAjGD,yDAA2F;AAC3F,qEAAwF;AACxF,gDAAyE;AACzE,gDAAyD;AACzD,gDAAmD;AACnD,8CAA+C;AAC/C,sDAA2D;AAepD,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,KAA8B,CAAC;IACnC,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAA4B,CAAC;IAC/D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAA,qBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO;IACX,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,eAAe,IAAI,SAAS,CAAC;IAC7D,MAAM,WAAW,GAAW,GAAG,UAAU,sBAAsB,SAAS,gBAAgB,CAAC;IACzF,IAAA,mBAAU,EAAC,GAAG,UAAU,sBAAsB,SAAS,cAAc,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAW,GAAG,UAAU,sBAAsB,SAAS,EAAE,CAAC;IAC1E,wEAAwE;IACxE
|
|
1
|
+
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../../src/clients/cursor/hooks/session-start.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAuBH,kBA4EC;AAjGD,yDAA2F;AAC3F,qEAAwF;AACxF,gDAAyE;AACzE,gDAAyD;AACzD,gDAAmD;AACnD,8CAA+C;AAC/C,sDAA2D;AAepD,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,KAA8B,CAAC;IACnC,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAA4B,CAAC;IAC/D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAA,qBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO;IACX,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,eAAe,IAAI,SAAS,CAAC;IAC7D,MAAM,WAAW,GAAW,GAAG,UAAU,sBAAsB,SAAS,gBAAgB,CAAC;IACzF,IAAA,mBAAU,EAAC,GAAG,UAAU,sBAAsB,SAAS,cAAc,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAW,GAAG,UAAU,sBAAsB,SAAS,EAAE,CAAC;IAC1E,wEAAwE;IACxE,+DAA+D;IAC/D,IAAA,4BAAY,EAAC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;IAExD,MAAM,KAAK,GAAuB;QAC9B,GAAG,IAAA,oBAAU,EAAC,WAAW,CAAC;QAC1B,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,SAAS;KACpB,CAAC;IAEF,MAAM,IAAA,sBAAY,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,IAAA,qCAAqB,EAAC,UAAU,EAAE,WAAW,EAAE,sBAAY,CAAC,CAAC;IACnE,MAAM,mBAAmB,GAAY,IAAA,+BAAsB,EAAC,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC,CAAC;IACpF,MAAM,IAAA,6BAAiB,EAAC,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAC9E,eAAM,CAAC,KAAK,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;IAE5C,oEAAoE;IACpE,iEAAiE;IACjE,wCAAwC;IACxC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvB,IAAA,qBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO;IACX,CAAC;IAED,MAAM,WAAW,GAAW,IAAI,CAAC,SAAS,CAAC;QACvC,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,CAAC,2BAA2B,EAAE,0BAA0B,CAAC;KACpE,CAAC,CAAC;IACH,MAAM,WAAW,GAAW,IAAI,CAAC,SAAS,CAAC;QACvC,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,CAAC,cAAc,EAAE,4BAA4B,CAAC;QACtD,MAAM,EAAE,CAAC,iCAAiC,EAAE,sBAAsB,CAAC;KACtE,CAAC,CAAC;IAEH,MAAM,OAAO,GAAW;cACd,SAAS;;;;;;;;UAQb,WAAW;;;UAGX,WAAW;;;;2FAIsE,CAAC;IAExF,MAAM,MAAM,GAA6B;QACrC,kBAAkB,EAAE,OAAO;KAC9B,CAAC;IACF,IAAA,qBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/cursor/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAclC,OAAO,EAAoG,aAAa,EAAsD,MAAM,kBAAkB,CAAC;AA6EvM,qBAAa,YAAa,YAAW,OAAO;IACxC,SAAgB,IAAI,EAAE,MAAM,CAAY;IAEjC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAInC,iBAAiB,IAAI,MAAM;IAI3B,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/cursor/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAclC,OAAO,EAAoG,aAAa,EAAsD,MAAM,kBAAkB,CAAC;AA6EvM,qBAAa,YAAa,YAAW,OAAO;IACxC,SAAgB,IAAI,EAAE,MAAM,CAAY;IAEjC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAInC,iBAAiB,IAAI,MAAM;IAI3B,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI;IA4DzD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAO1C,OAAO,CAAC,gBAAgB;IAgCxB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAchB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAyHxB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,cAAc;CA+CzB"}
|
|
@@ -98,13 +98,6 @@ class CursorClient {
|
|
|
98
98
|
const verifySkillPath = (0, path_1.join)(verifySkillDir, "SKILL.md");
|
|
99
99
|
const verifyContent = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, "commands", "ironbee-verify", "SKILL.md"), "utf-8");
|
|
100
100
|
(0, fs_1.writeFileSync)(verifySkillPath, verifyContent);
|
|
101
|
-
// /ironbee-analyze depends on verification metrics; install it
|
|
102
|
-
// only in enabled mode (mirrors Claude).
|
|
103
|
-
const analyzeSkillDir = (0, path_1.join)(skillsDir, "ironbee-analyze");
|
|
104
|
-
(0, fs_1.mkdirSync)(analyzeSkillDir, { recursive: true });
|
|
105
|
-
const analyzeSkillPath = (0, path_1.join)(analyzeSkillDir, "SKILL.md");
|
|
106
|
-
const analyzeContent = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, "commands", "ironbee-analyze", "SKILL.md"), "utf-8");
|
|
107
|
-
(0, fs_1.writeFileSync)(analyzeSkillPath, analyzeContent);
|
|
108
101
|
const mcpPath = (0, path_1.join)(cursorDir, "mcp.json");
|
|
109
102
|
this.writeMcpConfig(mcpPath, projectDir);
|
|
110
103
|
// Sync platform marker blocks in skill/rule/command md files to the
|
|
@@ -114,7 +107,7 @@ class CursorClient {
|
|
|
114
107
|
console.log(` ${output_1.pc.dim("→")} ${cursorColor("[cursor]")} hooks ${output_1.pc.dim("→")} ${output_1.pc.dim(hooksPath)}`);
|
|
115
108
|
console.log(` ${output_1.pc.dim("→")} ${cursorColor("[cursor]")} skill ${output_1.pc.dim("→")} ${output_1.pc.dim(skillPath)}`);
|
|
116
109
|
console.log(` ${output_1.pc.dim("→")} ${cursorColor("[cursor]")} rule ${output_1.pc.dim("→")} ${output_1.pc.dim(rulePath)}`);
|
|
117
|
-
console.log(` ${output_1.pc.dim("→")} ${cursorColor("[cursor]")} command ${output_1.pc.dim("→")} ${output_1.pc.dim(
|
|
110
|
+
console.log(` ${output_1.pc.dim("→")} ${cursorColor("[cursor]")} command ${output_1.pc.dim("→")} ${output_1.pc.dim(verifySkillPath)}`);
|
|
118
111
|
console.log(` ${output_1.pc.dim("→")} ${cursorColor("[cursor]")} mcp ${output_1.pc.dim("→")} ${output_1.pc.dim(mcpPath)}`);
|
|
119
112
|
console.log();
|
|
120
113
|
console.log(` ${output_1.pc.yellow("⚠")} ${output_1.pc.yellow("Cursor requires manual steps:")}`);
|
|
@@ -137,7 +130,10 @@ class CursorClient {
|
|
|
137
130
|
}
|
|
138
131
|
cleanupArtifacts(projectDir) {
|
|
139
132
|
const cursorDir = (0, path_1.join)(projectDir, ".cursor");
|
|
140
|
-
// remove skill, rule, and command files
|
|
133
|
+
// remove skill, rule, and command files. The ironbee-analyze SKILL is
|
|
134
|
+
// LEGACY (pre-removal versions installed /ironbee-analyze); we still
|
|
135
|
+
// strip any stale copy so an upgrade-reinstall or uninstall leaves no
|
|
136
|
+
// dead command behind.
|
|
141
137
|
const skillPath = (0, path_1.join)(cursorDir, "skills", "ironbee-verification.md");
|
|
142
138
|
const rulePath = (0, path_1.join)(cursorDir, "rules", "ironbee-verification.mdc");
|
|
143
139
|
const analyzeSkillPath = (0, path_1.join)(cursorDir, "skills", "ironbee-analyze", "SKILL.md");
|
|
@@ -153,10 +149,10 @@ class CursorClient {
|
|
|
153
149
|
// remove browser-devtools from mcp.json
|
|
154
150
|
const mcpPath = (0, path_1.join)(cursorDir, "mcp.json");
|
|
155
151
|
this.removeMcpServer(mcpPath);
|
|
156
|
-
// drop now-empty dirs we owned: the nested skills/ironbee-
|
|
157
|
-
// then skills/ rules/, then .cursor
|
|
158
|
-
// `detect()` honest — a lingering
|
|
159
|
-
// as still present).
|
|
152
|
+
// drop now-empty dirs we owned: the nested skills/ironbee-verify/ (and
|
|
153
|
+
// the legacy skills/ironbee-analyze/), then skills/ rules/, then .cursor
|
|
154
|
+
// itself if nothing else remains (keeps `detect()` honest — a lingering
|
|
155
|
+
// empty `.cursor` would report the project as still present).
|
|
160
156
|
(0, fs_prune_1.pruneEmptyDirs)(cursorDir);
|
|
161
157
|
}
|
|
162
158
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/cursor/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/cursor/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ironbee claude <subcommand>` — Claude-specific capabilities.
|
|
3
|
+
*
|
|
4
|
+
* `oauth-access <enable|disable|status>` — manage the `claude.oauthAccess`
|
|
5
|
+
* capability: whether IronBee may read the Claude Code OAuth token (macOS
|
|
6
|
+
* Keychain / `~/.claude/.credentials.json`) and call OAuth-scoped Anthropic
|
|
7
|
+
* endpoints. Default-on. The first consumer is the statusline rate-limit
|
|
8
|
+
* fallback (`/api/oauth/usage` fills `rate_limits` for team / enterprise plans
|
|
9
|
+
* the statusline JSON never carries them for).
|
|
10
|
+
*
|
|
11
|
+
* `enable` additionally PRIMES the macOS Keychain permission: it reads the
|
|
12
|
+
* token NOW, in this interactive terminal, so any "… wants to use the
|
|
13
|
+
* confidential information stored in 'Claude Code-credentials' …" prompt
|
|
14
|
+
* appears at a deliberate moment (choose "Always Allow"). Once granted, the
|
|
15
|
+
* statusline hook reads silently — and the grant survives IronBee version
|
|
16
|
+
* updates because the Keychain ACL keys on the stable `/usr/bin/security`
|
|
17
|
+
* binary, not on node/ironbee.
|
|
18
|
+
*
|
|
19
|
+
* Default target is the GLOBAL config (`~/.ironbee/config.json`) — the OAuth
|
|
20
|
+
* token is machine-global (one Keychain, all projects), so a machine-wide
|
|
21
|
+
* setting fits. `--local` / `--project` (with `-p`) narrow to one project's
|
|
22
|
+
* layer. `oauthAccess` is NOT artifact-affecting, so no client rerender runs.
|
|
23
|
+
*/
|
|
24
|
+
import { Command } from "commander";
|
|
25
|
+
export declare const oauthAccessEnableCommand: Command;
|
|
26
|
+
export declare const oauthAccessDisableCommand: Command;
|
|
27
|
+
export declare const oauthAccessStatusCommand: Command;
|
|
28
|
+
export declare const oauthAccessCommand: Command;
|
|
29
|
+
export declare const claudeCommand: Command;
|
|
30
|
+
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/commands/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0GpC,eAAO,MAAM,wBAAwB,EAAE,OAYjC,CAAC;AAEP,eAAO,MAAM,yBAAyB,EAAE,OAYlC,CAAC;AAEP,eAAO,MAAM,wBAAwB,EAAE,OA+CjC,CAAC;AAEP,eAAO,MAAM,kBAAkB,EAAE,OAIQ,CAAC;AAE1C,eAAO,MAAM,aAAa,EAAE,OAEO,CAAC"}
|