@ironbee-ai/cli 0.13.0 → 0.14.1
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 +12 -0
- package/README.md +9 -0
- package/dist/clients/claude/hooks/activity-start.d.ts.map +1 -1
- package/dist/clients/claude/hooks/activity-start.js +4 -0
- package/dist/clients/claude/hooks/activity-start.js.map +1 -1
- package/dist/clients/claude/hooks/session-start.d.ts.map +1 -1
- package/dist/clients/claude/hooks/session-start.js +4 -0
- package/dist/clients/claude/hooks/session-start.js.map +1 -1
- 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 +10 -0
- package/dist/clients/claude/index.d.ts.map +1 -1
- package/dist/clients/claude/index.js +105 -0
- 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/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/config.d.ts.map +1 -1
- package/dist/commands/config.js +1 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/otel.d.ts +20 -0
- package/dist/commands/otel.d.ts.map +1 -0
- package/dist/commands/otel.js +132 -0
- package/dist/commands/otel.js.map +1 -0
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +88 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +98 -3
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/event.d.ts +112 -0
- package/dist/lib/event.d.ts.map +1 -1
- package/dist/lib/event.js +1 -0
- package/dist/lib/event.js.map +1 -1
- package/dist/lib/gitignore.d.ts.map +1 -1
- package/dist/lib/gitignore.js +6 -0
- package/dist/lib/gitignore.js.map +1 -1
- package/dist/lib/version.d.ts +5 -0
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +5 -0
- package/dist/lib/version.js.map +1 -1
- package/dist/otel/collector.d.ts +66 -0
- package/dist/otel/collector.d.ts.map +1 -0
- package/dist/otel/collector.js +317 -0
- package/dist/otel/collector.js.map +1 -0
- package/dist/otel/context/build.d.ts +37 -0
- package/dist/otel/context/build.d.ts.map +1 -0
- package/dist/otel/context/build.js +103 -0
- package/dist/otel/context/build.js.map +1 -0
- package/dist/otel/context/classify.d.ts +40 -0
- package/dist/otel/context/classify.d.ts.map +1 -0
- package/dist/otel/context/classify.js +228 -0
- package/dist/otel/context/classify.js.map +1 -0
- package/dist/otel/context/extract.d.ts +39 -0
- package/dist/otel/context/extract.d.ts.map +1 -0
- package/dist/otel/context/extract.js +76 -0
- package/dist/otel/context/extract.js.map +1 -0
- package/dist/otel/context/markers.d.ts +37 -0
- package/dist/otel/context/markers.d.ts.map +1 -0
- package/dist/otel/context/markers.js +179 -0
- package/dist/otel/context/markers.js.map +1 -0
- package/dist/otel/context/util.d.ts +15 -0
- package/dist/otel/context/util.d.ts.map +1 -0
- package/dist/otel/context/util.js +33 -0
- package/dist/otel/context/util.js.map +1 -0
- package/dist/otel/daemon/ensure.d.ts +52 -0
- package/dist/otel/daemon/ensure.d.ts.map +1 -0
- package/dist/otel/daemon/ensure.js +226 -0
- package/dist/otel/daemon/ensure.js.map +1 -0
- package/dist/otel/daemon/forward.d.ts +47 -0
- package/dist/otel/daemon/forward.d.ts.map +1 -0
- package/dist/otel/daemon/forward.js +0 -0
- package/dist/otel/daemon/forward.js.map +1 -0
- package/dist/otel/daemon/paths.d.ts +24 -0
- package/dist/otel/daemon/paths.d.ts.map +1 -0
- package/dist/otel/daemon/paths.js +47 -0
- package/dist/otel/daemon/paths.js.map +1 -0
- package/dist/otel/daemon/process.d.ts +21 -0
- package/dist/otel/daemon/process.d.ts.map +1 -0
- package/dist/otel/daemon/process.js +149 -0
- package/dist/otel/daemon/process.js.map +1 -0
- package/dist/otel/daemon/reprocess.d.ts +27 -0
- package/dist/otel/daemon/reprocess.d.ts.map +1 -0
- package/dist/otel/daemon/reprocess.js +112 -0
- package/dist/otel/daemon/reprocess.js.map +1 -0
- package/dist/otel/log-handler.d.ts +37 -0
- package/dist/otel/log-handler.d.ts.map +1 -0
- package/dist/otel/log-handler.js +332 -0
- package/dist/otel/log-handler.js.map +1 -0
- package/dist/otel/metric-handler.d.ts +12 -0
- package/dist/otel/metric-handler.d.ts.map +1 -0
- package/dist/otel/metric-handler.js +18 -0
- package/dist/otel/metric-handler.js.map +1 -0
- package/dist/otel/trace-handler.d.ts +12 -0
- package/dist/otel/trace-handler.d.ts.map +1 -0
- package/dist/otel/trace-handler.js +18 -0
- package/dist/otel/trace-handler.js.map +1 -0
- package/dist/otel/types.d.ts +105 -0
- package/dist/otel/types.d.ts.map +1 -0
- package/dist/otel/types.js +15 -0
- package/dist/otel/types.js.map +1 -0
- package/dist/tui/config/schema.d.ts.map +1 -1
- package/dist/tui/config/schema.js +63 -0
- package/dist/tui/config/schema.js.map +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.14.1 (2026-05-26)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **oauth:** add Claude OAuth access capability + statusline rate-limit fallback ([600ff2c](https://github.com/ironbee-ai/ironbee-cli/commit/600ff2c0e6b04aca3afc445927964d3e416ddcbc))
|
|
8
|
+
|
|
9
|
+
## 0.14.0 (2026-05-26)
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **events:** introduce session_context event with OTEL collector ([#18](https://github.com/ironbee-ai/ironbee-cli/issues/18)) ([c643b06](https://github.com/ironbee-ai/ironbee-cli/commit/c643b068fa4b06e1e354bb1465c8e1e3fd1493d0))
|
|
14
|
+
|
|
3
15
|
## 0.13.0 (2026-05-24)
|
|
4
16
|
|
|
5
17
|
### Features
|
package/README.md
CHANGED
|
@@ -171,6 +171,14 @@ Auto-enabled when a collector is configured (same as analytics); otherwise opt i
|
|
|
171
171
|
|
|
172
172
|
> Claude-only — Cursor has no equivalent statusline mechanism. The events ship through the same queue + collector pipeline as everything else; nothing is written when no collector is configured.
|
|
173
173
|
|
|
174
|
+
### Optional: context-usage (`session_context`) events (Claude)
|
|
175
|
+
|
|
176
|
+
When a collector is configured, IronBee taps Claude Code's OpenTelemetry log export to emit a `session_context` event per API request — a breakdown of **what is consuming the model's context window** (system prompt, project rules, skills, MCP tool definitions, conversation history, tool results, …), measured in bytes and approximate tokens. A single machine-global local collector daemon receives the export from every concurrent session, derives the breakdown, and forwards it; it idle-reaps when sessions go quiet and restarts on the next one — no process to manage.
|
|
177
|
+
|
|
178
|
+
Auto-enabled when a collector is configured (same as analytics); opt out with `otel.enable: false`. Only structural signals cross the wire — never prompt/tool content. Inspect or operate the daemon with `ironbee otel status` / `stop` / `retry` (catch-up after a collector outage). Full spec: [`docs/claude-otel.md`](docs/claude-otel.md).
|
|
179
|
+
|
|
180
|
+
> Claude-only — `OTEL_LOG_RAW_API_BODIES` is a Claude Code feature; Cursor sessions emit nothing here.
|
|
181
|
+
|
|
174
182
|
### Cursor: additional setup
|
|
175
183
|
|
|
176
184
|
Cursor requires manual activation of MCP servers after install:
|
|
@@ -201,6 +209,7 @@ ironbee backend <enable|disable> [-g|--local] [--client <name>] Manage the r
|
|
|
201
209
|
ironbee node <enable|disable> [-g|--local] [--client <name>] Manage the Node.js runtime debug cycle (V8 inspector probes via node-devtools)
|
|
202
210
|
ironbee verification <enable|disable> [-g|--local] [--client <name>] Master verification toggle (enable = enforce; disable = monitoring-only, no enforcement but sessions/tools still ship to collector)
|
|
203
211
|
ironbee statusline <enable|disable|sync> [-g|--local] [--client <name>] Manage the Claude statusline integration (emits session_status events — context-window size, cost, subscription rate-limits — and chains your existing statusline). sync re-resolves the chained statusline for active sessions
|
|
212
|
+
ironbee otel <run|status|stop|retry> Operate the local OTEL collector daemon (Claude OTLP → session_context context-usage events). status/stop inspect/shut down the daemon; retry re-sends bodies held back during a collector outage
|
|
204
213
|
ironbee config get <key> [-g|--project|--local] Read a config value (default: merged effective value; flags narrow to one of the three layers)
|
|
205
214
|
ironbee config set <key> <value> [-g|--local] [--client <name>] [--no-rerender] [--json] [--apply-all|--no-apply-all] Write a config value; auto re-renders client artifacts on artifact-affecting keys; -g writes global, --local writes project-local (gitignored)
|
|
206
215
|
ironbee config unset <key> [-g|--local] [--client <name>] [--no-rerender] [--apply-all|--no-apply-all] Remove a config value (idempotent); same target / rerender rules as set
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-start.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/activity-start.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"activity-start.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/activity-start.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB3D"}
|
|
@@ -12,6 +12,7 @@ exports.run = run;
|
|
|
12
12
|
const activity_1 = require("../../../hooks/core/activity");
|
|
13
13
|
const logger_1 = require("../../../lib/logger");
|
|
14
14
|
const stdin_1 = require("../../../lib/stdin");
|
|
15
|
+
const ensure_1 = require("../../../otel/daemon/ensure");
|
|
15
16
|
async function run(projectDir) {
|
|
16
17
|
let input;
|
|
17
18
|
try {
|
|
@@ -26,6 +27,9 @@ async function run(projectDir) {
|
|
|
26
27
|
(0, logger_1.setLogFile)(`${sessionDir}/session.log`);
|
|
27
28
|
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
28
29
|
await (0, activity_1.startActivity)({ sessionDir, actionsFile, source: "user_prompt" });
|
|
30
|
+
// A turn (and its API calls / request bodies) is about to start — best point
|
|
31
|
+
// to ensure the shared OTEL collector daemon is up. No-op when otel disabled.
|
|
32
|
+
await (0, ensure_1.ensureOTELCollector)(projectDir);
|
|
29
33
|
process.exit(0);
|
|
30
34
|
}
|
|
31
35
|
//# sourceMappingURL=activity-start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-start.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/activity-start.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;
|
|
1
|
+
{"version":3,"file":"activity-start.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/activity-start.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAWH,kBAqBC;AA9BD,2DAA6D;AAC7D,gDAAyD;AACzD,8CAA+C;AAC/C,wDAAkE;AAM3D,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,KAAkC,CAAC;IACvC,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAAgC,CAAC;IACnE,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACxD,MAAM,UAAU,GAAW,GAAG,UAAU,sBAAsB,SAAS,EAAE,CAAC;IAC1E,IAAA,mBAAU,EAAC,GAAG,UAAU,cAAc,CAAC,CAAC;IAExC,MAAM,WAAW,GAAW,GAAG,UAAU,gBAAgB,CAAC;IAC1D,MAAM,IAAA,wBAAa,EAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAExE,6EAA6E;IAC7E,8EAA8E;IAC9E,MAAM,IAAA,4BAAmB,EAAC,UAAU,CAAC,CAAC;IAEtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-start.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-start.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkBH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqG3D"}
|
|
@@ -18,6 +18,7 @@ const logger_1 = require("../../../lib/logger");
|
|
|
18
18
|
const output_1 = require("../../../lib/output");
|
|
19
19
|
const stdin_1 = require("../../../lib/stdin");
|
|
20
20
|
const telemetry_1 = require("../../../lib/telemetry");
|
|
21
|
+
const ensure_1 = require("../../../otel/daemon/ensure");
|
|
21
22
|
async function run(projectDir) {
|
|
22
23
|
let input;
|
|
23
24
|
try {
|
|
@@ -30,6 +31,9 @@ async function run(projectDir) {
|
|
|
30
31
|
const sessionId = input.session_id ?? "default";
|
|
31
32
|
const actionsFile = `${projectDir}/.ironbee/sessions/${sessionId}/actions.jsonl`;
|
|
32
33
|
(0, logger_1.setLogFile)(`${projectDir}/.ironbee/sessions/${sessionId}/session.log`);
|
|
34
|
+
// Ensure the shared, machine-global OTEL collector daemon is up. No-op when
|
|
35
|
+
// the otel pipeline is disabled; fire-and-forget + throw-safe internally.
|
|
36
|
+
await (0, ensure_1.ensureOTELCollector)(projectDir);
|
|
33
37
|
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
34
38
|
// Resolve Claude's OAuth user email + auth/billing mode once at session
|
|
35
39
|
// start and cache in state.json — baseFields() picks them up from there
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-start.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;
|
|
1
|
+
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* user's statusline vanish.
|
|
17
17
|
*/
|
|
18
18
|
import { SessionStatusEvent } from "../../../lib/event";
|
|
19
|
+
import { OauthRateLimits } from "../oauth";
|
|
19
20
|
/** Subset of the statusline stdin JSON this wrapper consumes. */
|
|
20
21
|
interface StatusLinePayload {
|
|
21
22
|
session_id?: string;
|
|
@@ -120,6 +121,10 @@ export declare function deriveSessionStatusEventId(sessionId: string, totalDurat
|
|
|
120
121
|
* resource snapshot, so the later one is a redundant emit and is skipped.
|
|
121
122
|
*/
|
|
122
123
|
export declare function computeSessionStatusSignature(e: SessionStatusEvent): string;
|
|
124
|
+
/** True when the event has no rate-limit windows at all (the team/enterprise case). */
|
|
125
|
+
export declare function needsRateLimitFallback(e: SessionStatusEvent): boolean;
|
|
126
|
+
/** Fill ONLY missing windows on the event from the OAuth usage cache (never overwrites). */
|
|
127
|
+
export declare function applyOauthRateLimits(e: SessionStatusEvent, usage: OauthRateLimits): void;
|
|
123
128
|
/**
|
|
124
129
|
* Statusline entry point. Reads stdin, submits the event (gated, fire-and-
|
|
125
130
|
* forget), then chains the user's original statusline.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-status.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"session-status.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAiBH,OAAO,EAAuC,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAM7F,OAAO,EAAyB,eAAe,EAAE,MAAM,UAAU,CAAC;AAElE,iEAAiE;AACjE,UAAU,iBAAiB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,SAAS,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,IAAI,CAAC,EAAE;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,cAAc,CAAC,EAAE;QACb,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,aAAa,CAAC,EAAE;YACZ,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,2BAA2B,CAAC,EAAE,MAAM,CAAC;YACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;SACpC,GAAG,IAAI,CAAC;KACZ,CAAC;IACF,WAAW,CAAC,EAAE;QACV,SAAS,CAAC,EAAE;YAAE,eAAe,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7D,SAAS,CAAC,EAAE;YAAE,eAAe,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAChE,CAAC;CACL;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKxE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAIlE;AAwBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAczE;AAMD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/D;AA+BD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,CA6C3H;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAK7F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAY3E;AAiMD,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAErE;AAED,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAWxF;AA8FD;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuDtD"}
|
|
@@ -24,6 +24,8 @@ exports.normalizeModelId = normalizeModelId;
|
|
|
24
24
|
exports.buildSessionStatusEvent = buildSessionStatusEvent;
|
|
25
25
|
exports.deriveSessionStatusEventId = deriveSessionStatusEventId;
|
|
26
26
|
exports.computeSessionStatusSignature = computeSessionStatusSignature;
|
|
27
|
+
exports.needsRateLimitFallback = needsRateLimitFallback;
|
|
28
|
+
exports.applyOauthRateLimits = applyOauthRateLimits;
|
|
27
29
|
exports.runSessionStatus = runSessionStatus;
|
|
28
30
|
const child_process_1 = require("child_process");
|
|
29
31
|
const crypto_1 = require("crypto");
|
|
@@ -37,6 +39,7 @@ const stdin_1 = require("../../../lib/stdin");
|
|
|
37
39
|
const queue_1 = require("../../../queue");
|
|
38
40
|
const actions_1 = require("../../../hooks/core/actions");
|
|
39
41
|
const session_state_1 = require("../../../hooks/core/session-state");
|
|
42
|
+
const oauth_1 = require("../oauth");
|
|
40
43
|
const CLIENT = "claude";
|
|
41
44
|
/**
|
|
42
45
|
* True only when the command is EXACTLY our bare wrapper invocation. A tight
|
|
@@ -256,6 +259,8 @@ function readStatuslineState(path) {
|
|
|
256
259
|
return {
|
|
257
260
|
sig: typeof obj.sig === "string" ? obj.sig : undefined,
|
|
258
261
|
lastEmitMs: typeof obj.lastEmitMs === "number" ? obj.lastEmitMs : undefined,
|
|
262
|
+
usage: parseCachedUsage(obj.usage),
|
|
263
|
+
usageFetchedMs: typeof obj.usageFetchedMs === "number" ? obj.usageFetchedMs : undefined,
|
|
259
264
|
};
|
|
260
265
|
}
|
|
261
266
|
catch (e) {
|
|
@@ -263,6 +268,37 @@ function readStatuslineState(path) {
|
|
|
263
268
|
return {};
|
|
264
269
|
}
|
|
265
270
|
}
|
|
271
|
+
/** Parse one cached `{ used_percentage, resets_at }` window (both numbers required). */
|
|
272
|
+
function parseCachedWindow(v) {
|
|
273
|
+
if (v === null || typeof v !== "object") {
|
|
274
|
+
return undefined;
|
|
275
|
+
}
|
|
276
|
+
const o = v;
|
|
277
|
+
if (typeof o.used_percentage === "number" && typeof o.resets_at === "number") {
|
|
278
|
+
return { used_percentage: o.used_percentage, resets_at: o.resets_at };
|
|
279
|
+
}
|
|
280
|
+
return undefined;
|
|
281
|
+
}
|
|
282
|
+
/** Parse the cached OAuth rate-limit fallback from our own state file (lenient). */
|
|
283
|
+
function parseCachedUsage(v) {
|
|
284
|
+
if (v === null || typeof v !== "object") {
|
|
285
|
+
return undefined;
|
|
286
|
+
}
|
|
287
|
+
const o = v;
|
|
288
|
+
const five = parseCachedWindow(o.five_hour);
|
|
289
|
+
const seven = parseCachedWindow(o.seven_day);
|
|
290
|
+
if (!five && !seven) {
|
|
291
|
+
return undefined;
|
|
292
|
+
}
|
|
293
|
+
const out = {};
|
|
294
|
+
if (five) {
|
|
295
|
+
out.five_hour = five;
|
|
296
|
+
}
|
|
297
|
+
if (seven) {
|
|
298
|
+
out.seven_day = seven;
|
|
299
|
+
}
|
|
300
|
+
return out;
|
|
301
|
+
}
|
|
266
302
|
/** Atomic write (tmp+rename). Single writer, so no lost-update concern. */
|
|
267
303
|
function writeStatuslineState(path, state) {
|
|
268
304
|
const tmp = `${path}.tmp.${process.pid}.${Date.now()}`;
|
|
@@ -318,26 +354,85 @@ async function submitSessionStatusEvent(input, projectDir) {
|
|
|
318
354
|
return;
|
|
319
355
|
}
|
|
320
356
|
const event = buildSessionStatusEvent(input, projectDir, sessionId);
|
|
321
|
-
const sig = computeSessionStatusSignature(event);
|
|
322
357
|
const statePath = statuslineStatePath(projectDir, sessionId);
|
|
323
358
|
const prev = readStatuslineState(statePath);
|
|
324
|
-
//
|
|
325
|
-
//
|
|
326
|
-
|
|
359
|
+
// OAuth rate-limit fallback (TTL-cached, before the signature so the filled
|
|
360
|
+
// windows participate in skip-if-unchanged). Naturally targets team /
|
|
361
|
+
// enterprise: Pro/Max already carry rate_limits in the statusline JSON by
|
|
362
|
+
// the time we pass the empty-tick guard, so `needsRateLimitFallback` is
|
|
363
|
+
// false for them and the keychain is never touched.
|
|
364
|
+
const fb = await maybeFillRateLimitsFromOauth(event, cfg, prev);
|
|
365
|
+
const sig = computeSessionStatusSignature(event);
|
|
366
|
+
const now = Date.now();
|
|
367
|
+
const intervalMs = (0, config_1.getStatusLineEmitMinIntervalSeconds)(cfg) * 1000;
|
|
368
|
+
const sigUnchanged = prev.sig === sig;
|
|
369
|
+
const throttled = intervalMs > 0 && prev.lastEmitMs !== undefined && now - prev.lastEmitMs < intervalMs;
|
|
370
|
+
const willEmit = !sigUnchanged && !throttled;
|
|
371
|
+
// 1) Skip-if-unchanged: same resource signature → redundant tick (the
|
|
372
|
+
// dominant case — vim/permission/re-render ticks).
|
|
373
|
+
// 2) Min-interval throttle: even on a real change, coalesce to at most one
|
|
374
|
+
// emit per `emitMinIntervalSeconds` (default 10; 0 disables). Skipping
|
|
375
|
+
// does NOT advance sig/lastEmitMs so the pending change still emits once
|
|
376
|
+
// the window opens — but we DO persist a refreshed usage cache so the
|
|
377
|
+
// TTL'd `/api/oauth/usage` fetch doesn't re-fire on every skipped tick.
|
|
378
|
+
if (willEmit) {
|
|
379
|
+
(0, queue_1.submit)(projectDir, sessionId, "send_event", event);
|
|
380
|
+
writeStatuslineState(statePath, { sig, lastEmitMs: now, usage: fb.usage, usageFetchedMs: fb.usageFetchedMs });
|
|
327
381
|
return;
|
|
328
382
|
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
383
|
+
if (fb.fetched) {
|
|
384
|
+
writeStatuslineState(statePath, {
|
|
385
|
+
sig: prev.sig,
|
|
386
|
+
lastEmitMs: prev.lastEmitMs,
|
|
387
|
+
usage: fb.usage,
|
|
388
|
+
usageFetchedMs: fb.usageFetchedMs,
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
/** True when the event has no rate-limit windows at all (the team/enterprise case). */
|
|
393
|
+
function needsRateLimitFallback(e) {
|
|
394
|
+
return e.rate_limits === undefined || (e.rate_limits.five_hour === undefined && e.rate_limits.seven_day === undefined);
|
|
395
|
+
}
|
|
396
|
+
/** Fill ONLY missing windows on the event from the OAuth usage cache (never overwrites). */
|
|
397
|
+
function applyOauthRateLimits(e, usage) {
|
|
398
|
+
if (!usage.five_hour && !usage.seven_day) {
|
|
337
399
|
return;
|
|
338
400
|
}
|
|
339
|
-
|
|
340
|
-
|
|
401
|
+
e.rate_limits = e.rate_limits ?? {};
|
|
402
|
+
if (usage.five_hour && !e.rate_limits.five_hour) {
|
|
403
|
+
e.rate_limits.five_hour = usage.five_hour;
|
|
404
|
+
}
|
|
405
|
+
if (usage.seven_day && !e.rate_limits.seven_day) {
|
|
406
|
+
e.rate_limits.seven_day = usage.seven_day;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* When `claude.oauthAccess` is on AND the statusline gave no rate_limits, fill
|
|
411
|
+
* them from `/api/oauth/usage` — TTL-cached in the statusline state file so the
|
|
412
|
+
* network + credential read fire at most once per `usageTtlSeconds`. Mutates
|
|
413
|
+
* `event` in place; returns the cache fields the caller persists.
|
|
414
|
+
*/
|
|
415
|
+
async function maybeFillRateLimitsFromOauth(event, cfg, prev) {
|
|
416
|
+
if (!(0, config_1.getClaudeOauthAccessEnabled)(cfg) || !needsRateLimitFallback(event)) {
|
|
417
|
+
return { usage: prev.usage, usageFetchedMs: prev.usageFetchedMs, fetched: false };
|
|
418
|
+
}
|
|
419
|
+
const ttlMs = (0, config_1.getClaudeOauthAccessUsageTtlSeconds)(cfg) * 1000;
|
|
420
|
+
const fresh = prev.usageFetchedMs !== undefined && Date.now() - prev.usageFetchedMs < ttlMs;
|
|
421
|
+
if (fresh) {
|
|
422
|
+
if (prev.usage) {
|
|
423
|
+
applyOauthRateLimits(event, prev.usage);
|
|
424
|
+
}
|
|
425
|
+
return { usage: prev.usage, usageFetchedMs: prev.usageFetchedMs, fetched: false };
|
|
426
|
+
}
|
|
427
|
+
// Cache stale/empty → fetch once. On failure keep the prior cached value
|
|
428
|
+
// (a slightly stale window beats none) but still advance the TTL anchor so
|
|
429
|
+
// we don't hammer the endpoint when it's down.
|
|
430
|
+
const fetched = await (0, oauth_1.fetchClaudeRateLimits)();
|
|
431
|
+
const usage = fetched ?? prev.usage;
|
|
432
|
+
if (usage) {
|
|
433
|
+
applyOauthRateLimits(event, usage);
|
|
434
|
+
}
|
|
435
|
+
return { usage, usageFetchedMs: Date.now(), fetched: true };
|
|
341
436
|
}
|
|
342
437
|
/**
|
|
343
438
|
* Spawn the chained statusline command, piping our stdin to it and inheriting
|
|
@@ -418,8 +513,13 @@ async function runSessionStatus() {
|
|
|
418
513
|
return;
|
|
419
514
|
}
|
|
420
515
|
const projectDir = resolveProjectDir(input);
|
|
421
|
-
// 1) Submit our metrics —
|
|
422
|
-
|
|
516
|
+
// 1) Submit our metrics — fire-and-forget. Run it CONCURRENTLY with the
|
|
517
|
+
// chained render below (not before) so the OAuth rate-limit fallback's
|
|
518
|
+
// network round-trip OVERLAPS the chained render instead of serializing
|
|
519
|
+
// ahead of it. The fetch is bounded (2.5s timeout) and TTL-gated (fires
|
|
520
|
+
// at most once per usageTtlSeconds), so added process lifetime is rare
|
|
521
|
+
// and capped — not a per-tick cost.
|
|
522
|
+
const submitPromise = submitSessionStatusEvent(input, projectDir).catch((e) => {
|
|
423
523
|
logger_1.logger.debug(`session-status: submit failed: ${e instanceof Error ? e.message : e}`);
|
|
424
524
|
});
|
|
425
525
|
// 2) Chain the user's original statusline. Primary: SessionStart cache.
|
|
@@ -439,10 +539,13 @@ async function runSessionStatus() {
|
|
|
439
539
|
chained = resolveChainTarget(projectDir);
|
|
440
540
|
}
|
|
441
541
|
if (chained && !isIronbeeStatusLine(chained)) {
|
|
442
|
-
await
|
|
542
|
+
// Render + submit in parallel; await both before exit so a queued event
|
|
543
|
+
// (and any refreshed usage cache) lands even when the chain finishes first.
|
|
544
|
+
await Promise.all([submitPromise, runChained(chained, raw)]);
|
|
443
545
|
return;
|
|
444
546
|
}
|
|
445
547
|
// 3) Nothing to chain → silent unless renderDefault is on.
|
|
548
|
+
await submitPromise;
|
|
446
549
|
if ((0, config_1.getStatusLineRenderDefault)((0, config_1.loadConfig)(projectDir))) {
|
|
447
550
|
process.stdout.write(buildDefaultLine(input) + "\n");
|
|
448
551
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-status.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-status.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-status.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAgEH,kDAKC;AAUD,8CAIC;AAkCD,gDAcC;AAaD,4CAEC;AAqCD,0DA6CC;AASD,gEAKC;AAeD,sEAYC;AAkMD,wDAEC;AAGD,oDAWC;AAkGD,4CAuDC;AAtnBD,iDAAoD;AACpD,mCAAoC;AACpC,2BAAgG;AAChG,2BAA6B;AAC7B,+BAAqC;AACrC,sEAAwE;AACxE,gDAQ6B;AAE7B,gDAA6C;AAC7C,8CAA+C;AAC/C,0CAAwC;AACxC,yDAAyD;AACzD,qEAAkG;AAClG,oCAAkE;AAiClE,MAAM,MAAM,GAAW,QAAQ,CAAC;AAEhC;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,OAA2B;IAC3D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,6DAA6D,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,KAAwB;IACtD,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB;WAC9B,KAAK,CAAC,SAAS,EAAE,WAAW;WAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;AACzB,CAAC;AAED,qFAAqF;AACrF,SAAS,qBAAqB,CAAC,YAAoB;IAC/C,IAAI,CAAC,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC;QACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,EAAE,GAAa,MAAkC,CAAC,UAAU,CAAC;QACnE,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,GAAa,EAA8B,CAAC,OAAO,CAAC;QAC7D,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,kDAAkD,YAAY,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACjD,MAAM,QAAQ,GAAuB,IAAA,0CAAsB,EAAC,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IACzF,IAAI,QAAQ,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,MAAM,UAAU,GAAuB,qBAAqB,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;IAC3G,IAAI,UAAU,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,MAAM,OAAO,GAAuB,qBAAqB,CAAC,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;IACvG,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,GAAG,CAAC,KAAyB;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,EAAsB;IACnD,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AASD,kFAAkF;AAClF,SAAS,eAAe,CAAC,KAAyC;IAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO;QACH,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;QACrC,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;QACvC,2BAA2B,EAAE,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC;QACnE,uBAAuB,EAAE,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC;KAC9D,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CAAC,CAA+D;IACvF,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACjF,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,wEAAwE;IACxE,uCAAuC;IACvC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC;AACjF,CAAC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,KAAwB,EAAE,UAAkB,EAAE,SAAiB;IACnG,MAAM,UAAU,GAAW,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAW,IAAA,WAAI,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAC9D,MAAM,EAAE,GAAqD,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;IACxF,MAAM,IAAI,GAA2C,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;IACtE,MAAM,EAAE,GAAgC,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACzF,MAAM,GAAG,GAAgC,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1F,6EAA6E;IAC7E,0EAA0E;IAC1E,yCAAyC;IACzC,MAAM,KAAK,GAAiB,IAAA,yBAAS,EAAC,UAAU,CAAC,CAAC;IAClD,MAAM,KAAK,GAAuB;QAC9B,GAAG,IAAA,oBAAU,EAAC,WAAW,CAAC;QAC1B,EAAE,EAAE,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtE,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,WAAW,EAAE,KAAK,CAAC,gBAAgB,IAAI,EAAE;QACzC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QACxC,IAAI,EAAE;YACF,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;YACxC,4EAA4E;YAC5E,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC3C,kBAAkB,EAAE,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC;YACnD,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC9C,mBAAmB,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;SACrD;QACD,cAAc,EAAE;YACZ,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC;YAC9C,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC;YAChD,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC;YAChD,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC;YACxC,oBAAoB,EAAE,GAAG,CAAC,EAAE,CAAC,oBAAoB,CAAC;YAClD,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC,aAAa,CAAC;SACnD;KACJ,CAAC;IACF,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;QACZ,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,EAAE,EAAE,CAAC;YACL,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,GAAG,EAAE,CAAC;YACN,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,GAAG,CAAC;QACtC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,0BAA0B,CAAC,SAAiB,EAAE,eAAuB;IACjF,MAAM,GAAG,GAAW,IAAA,mBAAU,EAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,kBAAkB,SAAS,IAAI,eAAe,EAAE,CAAC;SACxD,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,6BAA6B,CAAC,CAAqB;IAC/D,MAAM,MAAM,GAA4B;QACpC,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,IAAI,EAAE;YACF,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc;YACrC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB;YAC3C,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB;SAClD;QACD,WAAW,EAAE,CAAC,CAAC,WAAW;KAC7B,CAAC;IACF,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAyBD;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,UAAkB,EAAE,SAAiB;IAC9D,OAAO,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACrC,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAA4B,MAAiC,CAAC;QACvE,OAAO;YACH,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACtD,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC3E,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;YAClC,cAAc,EAAE,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;SAC1F,CAAC;IACN,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,mDAAmD,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/G,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,wFAAwF;AACxF,SAAS,iBAAiB,CAAC,CAAU;IACjC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,CAAC,GAA4B,CAA4B,CAAC;IAChE,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,oFAAoF;AACpF,SAAS,gBAAgB,CAAC,CAAU;IAChC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,CAAC,GAA4B,CAA4B,CAAC;IAChE,MAAM,IAAI,GAAgC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzE,MAAM,KAAK,GAAgC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1E,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,IAAI,IAAI,EAAE,CAAC;QACP,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACR,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAsB;IAC9D,MAAM,GAAG,GAAW,GAAG,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC/D,IAAI,CAAC;QACD,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAA,kBAAa,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,IAAA,eAAU,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,IAAI,CAAC;YACD,IAAI,IAAA,eAAU,EAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAA,eAAU,EAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,sBAAsB;QAC1B,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,oDAAoD,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;AACL,CAAC;AAED,gEAAgE;AAChE,SAAS,eAAe,CAAC,GAAW;IAChC,MAAM,CAAC,GAAW,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACzG,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,wBAAwB,CAAC,KAAwB,EAAE,UAAkB;IAChF,MAAM,SAAS,GAAuB,KAAK,CAAC,UAAU,CAAC;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO;IACX,CAAC;IACD,MAAM,GAAG,GAAkB,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,IAAA,+BAAsB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO;IACX,CAAC;IACD,kEAAkE;IAClE,MAAM,UAAU,GAAW,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC/E,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,OAAO;IACX,CAAC;IACD,wEAAwE;IACxE,MAAM,EAAE,GAAqD,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;IACxF,IAAI,CAAC,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,EAAE,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QACpG,OAAO;IACX,CAAC;IACD,MAAM,KAAK,GAAuB,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACxF,MAAM,SAAS,GAAW,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACrE,MAAM,IAAI,GAAoB,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAE7D,4EAA4E;IAC5E,sEAAsE;IACtE,0EAA0E;IAC1E,wEAAwE;IACxE,oDAAoD;IACpD,MAAM,EAAE,GAAsB,MAAM,4BAA4B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAEnF,MAAM,GAAG,GAAW,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,GAAG,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAW,IAAA,4CAAmC,EAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC3E,MAAM,YAAY,GAAY,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC;IAC/C,MAAM,SAAS,GAAY,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjH,MAAM,QAAQ,GAAY,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC;IAEtD,sEAAsE;IACtE,sDAAsD;IACtD,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,QAAQ,EAAE,CAAC;QACX,IAAA,cAAM,EAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACnD,oBAAoB,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;QAC9G,OAAO;IACX,CAAC;IACD,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,oBAAoB,CAAC,SAAS,EAAE;YAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,cAAc,EAAE,EAAE,CAAC,cAAc;SACpC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAWD,uFAAuF;AACvF,SAAgB,sBAAsB,CAAC,CAAqB;IACxD,OAAO,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AAC3H,CAAC;AAED,4FAA4F;AAC5F,SAAgB,oBAAoB,CAAC,CAAqB,EAAE,KAAsB;IAC9E,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO;IACX,CAAC;IACD,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;IACpC,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC9C,CAAC,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC9C,CAAC,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9C,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,4BAA4B,CACvC,KAAyB,EACzB,GAAkB,EAClB,IAAqB;IAErB,IAAI,CAAC,IAAA,oCAA2B,EAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtF,CAAC;IACD,MAAM,KAAK,GAAW,IAAA,4CAAmC,EAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACtE,MAAM,KAAK,GAAY,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IACrG,IAAI,KAAK,EAAE,CAAC;QACR,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtF,CAAC;IACD,yEAAyE;IACzE,2EAA2E;IAC3E,+CAA+C;IAC/C,MAAM,OAAO,GAA2B,MAAM,IAAA,6BAAqB,GAAE,CAAC;IACtE,MAAM,KAAK,GAAgC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;IACjE,IAAI,KAAK,EAAE,CAAC;QACR,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,OAAe,EAAE,YAAoB;IACrD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAmB,EAAQ,EAAE;QACnD,IAAI,KAAmB,CAAC;QACxB,MAAM,IAAI,GAAuB,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,IAAI,CAAC;YACD,KAAK,GAAG,IAAI;gBACR,CAAC,CAAC,IAAA,qBAAK,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;gBACzE,CAAC,CAAC,IAAA,qBAAK,EAAC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YAClB,eAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1G,OAAO,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QACD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAQ,EAAE;YACjC,eAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAmB,EAAQ,EAAE;YAC3C,mEAAmE;YACnE,8DAA8D;YAC9D,OAAO,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC;YAC7B,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAS,EAAE,GAAkD,CAAC,CAAC,CAAC;YACxF,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,sFAAsF;AACtF,SAAS,WAAW;IAChB,MAAM,UAAU,GAAa;QACzB,uCAAuC;QACvC,4CAA4C;QAC5C,6CAA6C;KAChD,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QACzB,IAAI,IAAA,eAAU,EAAC,CAAC,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,iEAAiE;AACjE,SAAS,gBAAgB,CAAC,KAAwB;IAC9C,MAAM,KAAK,GAAW,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,GAAG,CAAC;IAC7C,MAAM,GAAG,GAAW,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAC/D,OAAO,IAAI,KAAK,KAAK,GAAG,OAAO,CAAC;AACpC,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB;IAClC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACD,GAAG,GAAG,IAAA,iBAAS,GAAE,CAAC;IACtB,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO;IACX,CAAC;IACD,IAAI,KAAwB,CAAC;IAC7B,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;IACjD,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO;IACX,CAAC;IAED,MAAM,UAAU,GAAW,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEpD,wEAAwE;IACxE,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,uCAAuC;IACvC,MAAM,aAAa,GAAkB,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAQ,EAAE;QACxG,eAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,2EAA2E;IAC3E,kDAAkD;IAClD,IAAI,OAA2B,CAAC;IAChC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,UAAU,GAAW,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACtF,IAAI,CAAC;YACD,OAAO,GAAG,IAAA,oCAAoB,EAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,GAAG,SAAS,CAAC;QACxB,CAAC;IACL,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,wEAAwE;QACxE,4EAA4E;QAC5E,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO;IACX,CAAC;IAED,2DAA2D;IAC3D,MAAM,aAAa,CAAC;IACpB,IAAI,IAAA,mCAA0B,EAAC,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;AACL,CAAC"}
|
|
@@ -33,6 +33,16 @@ export declare class ClaudeClient implements IClient {
|
|
|
33
33
|
private writeStatusLineBlock;
|
|
34
34
|
/** Remove the `statusLine` key from a settings file; delete the file if it's then empty. */
|
|
35
35
|
private removeStatusLineBlock;
|
|
36
|
+
/**
|
|
37
|
+
* Write the OTEL collector env block into `settings.json` so Claude Code
|
|
38
|
+
* exports raw API bodies to the local daemon. Project name is resolved once
|
|
39
|
+
* (git/worktree-aware) and baked into the resource attr. Existing-OTEL
|
|
40
|
+
* guard: if the user already has their own OTEL endpoint configured (not
|
|
41
|
+
* ours), leave it untouched rather than hijack their telemetry.
|
|
42
|
+
*/
|
|
43
|
+
private writeOTELEnv;
|
|
44
|
+
/** Strip the IronBee-owned OTEL env keys from `settings.json` (leaves a user's own OTEL env). */
|
|
45
|
+
private removeOTELEnv;
|
|
36
46
|
/**
|
|
37
47
|
* After stripping ironbee hooks + permissions, if `settings.json` is
|
|
38
48
|
* left as a hollow `{ "hooks": {}, "permissions": { "allow": [], "deny": [] } }`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/claude/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAelC,OAAO,EAAoG,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/claude/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAelC,OAAO,EAAoG,aAAa,EAAwI,MAAM,kBAAkB,CAAC;AAqJzR,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;IA6EzD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK1C,OAAO,CAAC,gBAAgB;IAmCxB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAgB3B,uFAAuF;IACvF,OAAO,CAAC,mBAAmB;IAiC3B,8EAA8E;IAC9E,OAAO,CAAC,oBAAoB;IAkB5B,4FAA4F;IAC5F,OAAO,CAAC,qBAAqB;IAqB7B;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAyCpB,iGAAiG;IACjG,OAAO,CAAC,aAAa;IA8BrB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAcnB,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;IA0KxB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,eAAe;IAqCvB,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,cAAc;IAkDtB,OAAO,CAAC,gBAAgB;CAuE3B;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAG1D"}
|
|
@@ -19,6 +19,7 @@ const activity_start_1 = require("./hooks/activity-start");
|
|
|
19
19
|
const activity_end_1 = require("./hooks/activity-end");
|
|
20
20
|
const session_end_1 = require("./hooks/session-end");
|
|
21
21
|
const config_1 = require("../../lib/config");
|
|
22
|
+
const actions_1 = require("../../hooks/core/actions");
|
|
22
23
|
const platform_section_1 = require("../../lib/platform-section");
|
|
23
24
|
const install_snapshots_1 = require("../../lib/install-snapshots");
|
|
24
25
|
const session_status_1 = require("./hooks/session-status");
|
|
@@ -101,6 +102,26 @@ function isClaudeSettingsEmpty(settings) {
|
|
|
101
102
|
}
|
|
102
103
|
return true;
|
|
103
104
|
}
|
|
105
|
+
/** Env keys IronBee owns in the OTEL collector block (written into settings.json). */
|
|
106
|
+
const OTEL_ENV_KEYS = [
|
|
107
|
+
"CLAUDE_CODE_ENABLE_TELEMETRY",
|
|
108
|
+
"OTEL_LOGS_EXPORTER",
|
|
109
|
+
"OTEL_METRICS_EXPORTER",
|
|
110
|
+
"OTEL_EXPORTER_OTLP_PROTOCOL",
|
|
111
|
+
"OTEL_EXPORTER_OTLP_ENDPOINT",
|
|
112
|
+
"OTEL_LOG_RAW_API_BODIES",
|
|
113
|
+
"OTEL_RESOURCE_ATTRIBUTES",
|
|
114
|
+
"OTEL_LOGS_EXPORT_INTERVAL",
|
|
115
|
+
];
|
|
116
|
+
/** True when an `env.OTEL_*` block was written by IronBee (carries our resource attr). */
|
|
117
|
+
function otelEnvOwnedByUs(env) {
|
|
118
|
+
const ra = env.OTEL_RESOURCE_ATTRIBUTES;
|
|
119
|
+
return typeof ra === "string" && ra.includes("ironbee.project_name");
|
|
120
|
+
}
|
|
121
|
+
/** Make a project name safe as an `OTEL_RESOURCE_ATTRIBUTES` value (no `,` / `=` / whitespace). */
|
|
122
|
+
function sanitizeResourceValue(v) {
|
|
123
|
+
return v.replace(/[,=\s]+/g, "-").replace(/^-+|-+$/g, "") || "project";
|
|
124
|
+
}
|
|
104
125
|
class ClaudeClient {
|
|
105
126
|
constructor() {
|
|
106
127
|
this.name = "claude";
|
|
@@ -128,6 +149,12 @@ class ClaudeClient {
|
|
|
128
149
|
const settingsPath = (0, path_1.join)(claudeDir, "settings.json");
|
|
129
150
|
this.mergeHooksConfig(settingsPath, verificationEnabled);
|
|
130
151
|
this.writePermissions(settingsPath, verificationEnabled, projectDir);
|
|
152
|
+
// OTEL collector env block (Claude-only). Independent of verification —
|
|
153
|
+
// session_context is a pure monitoring signal, so it's written in
|
|
154
|
+
// monitoring mode too. Gated on the otel pipeline being enabled.
|
|
155
|
+
if ((0, config_1.isOTELEnabled)(cfg)) {
|
|
156
|
+
this.writeOTELEnv(settingsPath, projectDir, cfg);
|
|
157
|
+
}
|
|
131
158
|
// Statusline wrapper (independent of verification mode — it's a
|
|
132
159
|
// telemetry surface, not enforcement). Gated on the session_status
|
|
133
160
|
// feature being enabled; otherwise the user's statusline is left
|
|
@@ -190,6 +217,7 @@ class ClaudeClient {
|
|
|
190
217
|
const settingsPath = (0, path_1.join)(claudeDir, "settings.json");
|
|
191
218
|
this.removeIronBeeHooks(settingsPath);
|
|
192
219
|
this.removePermission(settingsPath);
|
|
220
|
+
this.removeOTELEnv(settingsPath);
|
|
193
221
|
this.maybeDeleteEmptySettings(settingsPath);
|
|
194
222
|
// remove browser-devtools from .mcp.json
|
|
195
223
|
const mcpPath = (0, path_1.join)(projectDir, ".mcp.json");
|
|
@@ -336,6 +364,83 @@ class ClaudeClient {
|
|
|
336
364
|
logger_1.logger.debug(`failed to remove statusLine from ${settingsPath}: ${e}`);
|
|
337
365
|
}
|
|
338
366
|
}
|
|
367
|
+
/**
|
|
368
|
+
* Write the OTEL collector env block into `settings.json` so Claude Code
|
|
369
|
+
* exports raw API bodies to the local daemon. Project name is resolved once
|
|
370
|
+
* (git/worktree-aware) and baked into the resource attr. Existing-OTEL
|
|
371
|
+
* guard: if the user already has their own OTEL endpoint configured (not
|
|
372
|
+
* ours), leave it untouched rather than hijack their telemetry.
|
|
373
|
+
*/
|
|
374
|
+
writeOTELEnv(settingsPath, projectDir, cfg) {
|
|
375
|
+
let settings = {};
|
|
376
|
+
if ((0, fs_1.existsSync)(settingsPath)) {
|
|
377
|
+
try {
|
|
378
|
+
const parsed = JSON.parse((0, fs_1.readFileSync)(settingsPath, "utf-8"));
|
|
379
|
+
if (parsed !== null && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
380
|
+
settings = parsed;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
catch (e) {
|
|
384
|
+
logger_1.logger.debug(`failed to read ${settingsPath} for otel env write: ${e}`);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(settingsPath, ".."), { recursive: true });
|
|
389
|
+
}
|
|
390
|
+
const rawEnv = settings.env;
|
|
391
|
+
const env = (rawEnv !== null && typeof rawEnv === "object" && !Array.isArray(rawEnv))
|
|
392
|
+
? rawEnv
|
|
393
|
+
: {};
|
|
394
|
+
const existingEndpoint = env.OTEL_EXPORTER_OTLP_ENDPOINT;
|
|
395
|
+
if (typeof existingEndpoint === "string" && existingEndpoint.length > 0 && !otelEnvOwnedByUs(env)) {
|
|
396
|
+
console.log(` ${output_1.pc.dim("→")} ${(0, output_1.orange)("[claude]")} ${output_1.pc.yellow("existing OTEL telemetry env detected — left untouched (session_context not wired for this project)")}`);
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
const port = (0, config_1.getOTELPort)(cfg);
|
|
400
|
+
const projectName = sanitizeResourceValue((0, actions_1.resolveProjectName)(projectDir));
|
|
401
|
+
env.CLAUDE_CODE_ENABLE_TELEMETRY = "1";
|
|
402
|
+
env.OTEL_LOGS_EXPORTER = "otlp";
|
|
403
|
+
env.OTEL_METRICS_EXPORTER = "none";
|
|
404
|
+
env.OTEL_EXPORTER_OTLP_PROTOCOL = "http/json";
|
|
405
|
+
env.OTEL_EXPORTER_OTLP_ENDPOINT = `http://127.0.0.1:${port}`;
|
|
406
|
+
env.OTEL_LOG_RAW_API_BODIES = "file:.ironbee/otel";
|
|
407
|
+
env.OTEL_RESOURCE_ATTRIBUTES = `ironbee.project_name=${projectName}`;
|
|
408
|
+
env.OTEL_LOGS_EXPORT_INTERVAL = "5000";
|
|
409
|
+
settings.env = env;
|
|
410
|
+
(0, fs_1.writeFileSync)(settingsPath, JSON.stringify(settings, null, 2));
|
|
411
|
+
console.log(` ${output_1.pc.dim("→")} ${(0, output_1.orange)("[claude]")} otel env ${output_1.pc.dim("→")} ${output_1.pc.dim(`${settingsPath} (127.0.0.1:${port})`)}`);
|
|
412
|
+
}
|
|
413
|
+
/** Strip the IronBee-owned OTEL env keys from `settings.json` (leaves a user's own OTEL env). */
|
|
414
|
+
removeOTELEnv(settingsPath) {
|
|
415
|
+
if (!(0, fs_1.existsSync)(settingsPath)) {
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
try {
|
|
419
|
+
const parsed = JSON.parse((0, fs_1.readFileSync)(settingsPath, "utf-8"));
|
|
420
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
421
|
+
return;
|
|
422
|
+
}
|
|
423
|
+
const settings = parsed;
|
|
424
|
+
const rawEnv = settings.env;
|
|
425
|
+
if (rawEnv === null || typeof rawEnv !== "object" || Array.isArray(rawEnv)) {
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
const env = rawEnv;
|
|
429
|
+
if (!otelEnvOwnedByUs(env)) {
|
|
430
|
+
return; // a user's own OTEL env — never strip it
|
|
431
|
+
}
|
|
432
|
+
for (const k of OTEL_ENV_KEYS) {
|
|
433
|
+
delete env[k];
|
|
434
|
+
}
|
|
435
|
+
if (Object.keys(env).length === 0) {
|
|
436
|
+
delete settings.env;
|
|
437
|
+
}
|
|
438
|
+
(0, fs_1.writeFileSync)(settingsPath, JSON.stringify(settings, null, 2));
|
|
439
|
+
}
|
|
440
|
+
catch (e) {
|
|
441
|
+
logger_1.logger.debug(`failed to remove otel env from ${settingsPath}: ${e}`);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
339
444
|
/**
|
|
340
445
|
* After stripping ironbee hooks + permissions, if `settings.json` is
|
|
341
446
|
* left as a hollow `{ "hooks": {}, "permissions": { "allow": [], "deny": [] } }`
|