@newrelic/preflight 1.17.1 → 1.18.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/dist/dashboard/routes/api-handler.d.ts +3 -0
- package/dist/dashboard/routes/api-handler.d.ts.map +1 -1
- package/dist/dashboard/routes/api-handler.js +45 -4
- package/dist/dashboard/routes/api-handler.js.map +1 -1
- package/dist/hooks/session-resolver.d.ts +134 -0
- package/dist/hooks/session-resolver.d.ts.map +1 -1
- package/dist/hooks/session-resolver.js +283 -16
- package/dist/hooks/session-resolver.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +88 -2
- package/dist/index.js.map +1 -1
- package/dist/metrics/live-session-registry.d.ts +24 -0
- package/dist/metrics/live-session-registry.d.ts.map +1 -1
- package/dist/metrics/live-session-registry.js +57 -2
- package/dist/metrics/live-session-registry.js.map +1 -1
- package/dist/metrics/session-tracker.d.ts +49 -0
- package/dist/metrics/session-tracker.d.ts.map +1 -1
- package/dist/metrics/session-tracker.js +63 -4
- package/dist/metrics/session-tracker.js.map +1 -1
- package/dist/storage/session-store.d.ts +11 -0
- package/dist/storage/session-store.d.ts.map +1 -1
- package/dist/storage/session-store.js +26 -0
- package/dist/storage/session-store.js.map +1 -1
- package/dist/tools/cross-session-tools.d.ts.map +1 -1
- package/dist/tools/cross-session-tools.js +4 -0
- package/dist/tools/cross-session-tools.js.map +1 -1
- package/dist/tools/session-stats.d.ts +2 -0
- package/dist/tools/session-stats.d.ts.map +1 -1
- package/dist/tools/session-stats.js +8 -1
- package/dist/tools/session-stats.js.map +1 -1
- package/package.json +1 -1
|
@@ -68,6 +68,17 @@ export declare function resolveFromJobDir(claudeJobDir: string | null | undefine
|
|
|
68
68
|
* only checks whether the PID is alive, and a recycled PID always is.
|
|
69
69
|
*/
|
|
70
70
|
export declare function resolveFromBreadcrumb(storagePath: string, ppid: number | undefined, processStartMs?: number): string | null;
|
|
71
|
+
/**
|
|
72
|
+
* Sanitize a cwd into the single filename segment used both by the collector's
|
|
73
|
+
* `writeCwdBreadcrumb()` (session-by-cwd breadcrumb) and by Claude Code's own
|
|
74
|
+
* transcript-directory naming under `~/.claude/projects/`: backslash, forward
|
|
75
|
+
* slash, and colon each become `-`. Must stay identical to
|
|
76
|
+
* `collector-script.ts` so both sides derive the same filename independently.
|
|
77
|
+
* Colons are stripped so a Windows drive letter (e.g. `C:`) never survives into
|
|
78
|
+
* a filename where `path.resolve()` on win32 would reinterpret it as a
|
|
79
|
+
* drive-relative component and read/write outside the intended directory.
|
|
80
|
+
*/
|
|
81
|
+
export declare function sanitizeCwdForFilename(cwd: string): string;
|
|
71
82
|
/**
|
|
72
83
|
* Try to resolve the session_id synchronously from the cwd breadcrumb file.
|
|
73
84
|
* Fallback for platforms where the PPID breadcrumb never matches (see the
|
|
@@ -131,4 +142,127 @@ export declare function isSyntheticSessionId(id: string | null | undefined): boo
|
|
|
131
142
|
* double-counting) should check this, not `isSyntheticSessionId`.
|
|
132
143
|
*/
|
|
133
144
|
export declare function isUnscopedAggregatorSessionId(id: string | null | undefined): boolean;
|
|
145
|
+
/** Where a resolved session name came from, most trusted first. */
|
|
146
|
+
export type SessionNameSource = 'user' | 'ai-title' | 'auto' | 'cwd';
|
|
147
|
+
/**
|
|
148
|
+
* The naming-relevant fields read out of `CLAUDE_JOB_DIR/state.json`.
|
|
149
|
+
* `sessionId`/`name`/`nameSource` are labels; `intent` is CONTENT.
|
|
150
|
+
*/
|
|
151
|
+
export interface JobState {
|
|
152
|
+
/** Full session UUID, from the explicit `sessionId` field or `linkScanPath`. */
|
|
153
|
+
readonly sessionId: string | null;
|
|
154
|
+
/** Human-readable title Claude Code wrote for the job. */
|
|
155
|
+
readonly name: string | null;
|
|
156
|
+
/** Whether a human named it (`user`) or Claude auto-generated it (`auto`). */
|
|
157
|
+
readonly nameSource: 'user' | 'auto' | null;
|
|
158
|
+
/**
|
|
159
|
+
* SENSITIVE (CONTENT): the job's first user prompt. Populated ONLY when
|
|
160
|
+
* `readJobState` is called with `{ recordContent: true }`; otherwise null,
|
|
161
|
+
* so the sensitive field is off by construction rather than by convention.
|
|
162
|
+
* Because `recordContent` is force-disabled under highSecurity upstream
|
|
163
|
+
* (never bypass), passing `config.recordContent` keeps intent null in high
|
|
164
|
+
* security mode automatically. Even when populated it is returned verbatim,
|
|
165
|
+
* so any consumer MUST still pass it through `redactSensitive()` before it
|
|
166
|
+
* reaches a log, NR event, tool response, or persisted file. Phase-1 wiring
|
|
167
|
+
* reads `name`/`nameSource` only and never requests or forwards `intent`.
|
|
168
|
+
*/
|
|
169
|
+
readonly intent: string | null;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Read the naming fields from `CLAUDE_JOB_DIR/state.json`. Sibling to
|
|
173
|
+
* `resolveFromJobDir` (whose `string | null` contract is unchanged) — returns
|
|
174
|
+
* null when there is no readable state file. `sessionId` prefers an explicit
|
|
175
|
+
* `sessionId` field, falling back to the UUID embedded in `linkScanPath`.
|
|
176
|
+
*
|
|
177
|
+
* The sensitive `intent` (first-prompt CONTENT) is populated ONLY when
|
|
178
|
+
* `options.recordContent === true`; it is null otherwise. This gates the
|
|
179
|
+
* content field by construction (mirroring `DecisionTracker`'s `recordContent`
|
|
180
|
+
* gate) so a future consumer that copies the `name`/`nameSource` wiring cannot
|
|
181
|
+
* leak prompt content by simply reading `.intent`. Pass `config.recordContent`
|
|
182
|
+
* (already force-disabled under highSecurity) to stay compliant; the `name`/
|
|
183
|
+
* `nameSource` display labels are never gated.
|
|
184
|
+
*/
|
|
185
|
+
export declare function readJobState(claudeJobDir: string | null | undefined, options?: {
|
|
186
|
+
readonly recordContent?: boolean;
|
|
187
|
+
}): JobState | null;
|
|
188
|
+
/**
|
|
189
|
+
* Scan `text` (a suffix of a transcript JSONL file) for the LAST `ai-title`
|
|
190
|
+
* record and return its `aiTitle` (raw, unredacted — the caller redacts).
|
|
191
|
+
* `firstFragmentComplete` must be true only when `text` begins exactly at a
|
|
192
|
+
* file/line boundary; otherwise the substring before the first newline is a
|
|
193
|
+
* partial line whose start lies in an earlier, unread region and is skipped.
|
|
194
|
+
* Scanning newest-first means the first match is the file's last `ai-title`.
|
|
195
|
+
*/
|
|
196
|
+
export declare function findLastAiTitleInText(text: string, firstFragmentComplete: boolean): string | null;
|
|
197
|
+
/**
|
|
198
|
+
* Read the last `ai-title` from a session's transcript JSONL, redacted.
|
|
199
|
+
* Locates the transcript by matching `<sessionId>.jsonl` under any project slug
|
|
200
|
+
* (see `findTranscriptPath` — robust to Claude Code's cwd-slug scheme). Reads
|
|
201
|
+
* BOUNDED — reverse-scans the file's tail one chunk at a time up to
|
|
202
|
+
* `TRANSCRIPT_TITLE_MAX_SCAN_BYTES`, never slurping the whole file. Returns null
|
|
203
|
+
* on any miss (no file, no title, bad sessionId) and never throws.
|
|
204
|
+
*
|
|
205
|
+
* @param projectsDir Override for `~/.claude/projects` (test seam).
|
|
206
|
+
*/
|
|
207
|
+
export declare function readTranscriptTitle(input: {
|
|
208
|
+
readonly projectsDir?: string;
|
|
209
|
+
readonly sessionId: string;
|
|
210
|
+
}): string | null;
|
|
211
|
+
/**
|
|
212
|
+
* Directory basenames too generic to serve as a session label. Single source
|
|
213
|
+
* of truth for the guard `SessionTracker`'s streaming cwd fallback also uses. A
|
|
214
|
+
* degenerate startup cwd yields no authoritative `cwd` name (step 4 falls
|
|
215
|
+
* through to null), leaving the tracker's streaming fallback free to upgrade to
|
|
216
|
+
* a better name from a later tool call's cwd.
|
|
217
|
+
*/
|
|
218
|
+
export declare const DEGENERATE_NAMES: ReadonlySet<string>;
|
|
219
|
+
/** Inputs to the pure `resolveSessionName` precedence decision. */
|
|
220
|
+
export interface ResolveSessionNameInputs {
|
|
221
|
+
/** Parsed background-job state, from `readJobState` (null if none). */
|
|
222
|
+
readonly jobState?: JobState | null;
|
|
223
|
+
/** Last transcript `ai-title`, from `readTranscriptTitle` (null if none). */
|
|
224
|
+
readonly transcriptTitle?: string | null;
|
|
225
|
+
/** Working directory, for the basename fallback. */
|
|
226
|
+
readonly cwd?: string | null;
|
|
227
|
+
}
|
|
228
|
+
/** A resolved session name plus which source produced it. */
|
|
229
|
+
export interface SessionNameResult {
|
|
230
|
+
readonly name: string;
|
|
231
|
+
readonly source: SessionNameSource;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Pure precedence decision for a session's display name (first hit wins):
|
|
235
|
+
* 1. state.json `name` where `nameSource === 'user'` → `user`
|
|
236
|
+
* 2. transcript last `ai-title` → `ai-title`
|
|
237
|
+
* 3. state.json `name` where `nameSource === 'auto'` → `auto`
|
|
238
|
+
* 4. basename(cwd), unless degenerate → `cwd`
|
|
239
|
+
* 5. null
|
|
240
|
+
* Does no IO and gates on nothing: callers pass already-read values and redact
|
|
241
|
+
* the returned name at each sink.
|
|
242
|
+
*/
|
|
243
|
+
export declare function resolveSessionName(inputs: ResolveSessionNameInputs): SessionNameResult | null;
|
|
244
|
+
/**
|
|
245
|
+
* Trust rank of a session-name source; LOWER is more trusted. Mirrors
|
|
246
|
+
* `resolveSessionName`'s precedence exactly: `user`(0) > `ai-title`(1) >
|
|
247
|
+
* `auto`(2) > `cwd`(3). Used to decide whether a freshly re-resolved name may
|
|
248
|
+
* replace the one already in place (see `shouldReplaceSessionName`).
|
|
249
|
+
*/
|
|
250
|
+
export declare function sessionNameSourceRank(source: SessionNameSource): number;
|
|
251
|
+
/**
|
|
252
|
+
* Whether a re-resolved name from `next` should replace a name currently
|
|
253
|
+
* sourced from `current`. Freshness re-resolution (Phase 2) re-reads Claude
|
|
254
|
+
* Code's name sources at persist/shutdown time so a refined `ai-title` — or a
|
|
255
|
+
* name a human later assigns — supersedes the first-prompt guess.
|
|
256
|
+
*
|
|
257
|
+
* Replaces only when `next` is at least as trusted as `current`
|
|
258
|
+
* (`rank(next) <= rank(current)`): an equal-or-better source wins (which also
|
|
259
|
+
* picks up refined text for the SAME source, e.g. an updated `ai-title`),
|
|
260
|
+
* while a strictly-less-trusted source is refused. That refusal is the
|
|
261
|
+
* load-bearing invariant: a `user`-sourced name is NEVER downgraded to
|
|
262
|
+
* `auto`/`cwd`, even if the job-state file that supplied it later disappears
|
|
263
|
+
* and re-resolution would otherwise fall through to the transcript title or
|
|
264
|
+
* the cwd basename. A `null` current source (session not yet named) always
|
|
265
|
+
* accepts.
|
|
266
|
+
*/
|
|
267
|
+
export declare function shouldReplaceSessionName(current: SessionNameSource | null, next: SessionNameSource): boolean;
|
|
134
268
|
//# sourceMappingURL=session-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-resolver.d.ts","sourceRoot":"","sources":["../../src/hooks/session-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"session-resolver.d.ts","sourceRoot":"","sources":["../../src/hooks/session-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,10 +26,11 @@
|
|
|
26
26
|
* tool handlers should report "session_id not yet resolved" rather than make
|
|
27
27
|
* one up.
|
|
28
28
|
*/
|
|
29
|
-
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
29
|
+
import { existsSync, readFileSync, readdirSync, statSync, openSync, readSync, closeSync, constants as fsConstants, } from 'node:fs';
|
|
30
30
|
import { resolve, basename } from 'node:path';
|
|
31
31
|
import { homedir } from 'node:os';
|
|
32
32
|
import { createLogger } from '../shared/index.js';
|
|
33
|
+
import { redactSensitive } from '../config.js';
|
|
33
34
|
const logger = createLogger('session-resolver');
|
|
34
35
|
const SESSION_ID_RE = /^[a-zA-Z0-9_-]{1,128}$/;
|
|
35
36
|
const DEFAULT_STORAGE_DIR = resolve(homedir(), '.newrelic-preflight');
|
|
@@ -37,10 +38,12 @@ const POLL_SCHEDULE_MS = [100, 200, 500, 1000, 2000];
|
|
|
37
38
|
const STEADY_POLL_MS = 2000;
|
|
38
39
|
const WARN_AFTER_MS = 60_000;
|
|
39
40
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
41
|
+
* Read and JSON-parse `<claudeJobDir>/state.json`, returning the parsed object
|
|
42
|
+
* or null on any failure (missing dir, unreadable, invalid JSON, non-object).
|
|
43
|
+
* Shared by `resolveFromJobDir` and `readJobState` so both derive from one
|
|
44
|
+
* read; neither's public contract changes.
|
|
42
45
|
*/
|
|
43
|
-
|
|
46
|
+
function readAndParseJobState(claudeJobDir) {
|
|
44
47
|
if (!claudeJobDir || typeof claudeJobDir !== 'string')
|
|
45
48
|
return null;
|
|
46
49
|
const statePath = resolve(claudeJobDir, 'state.json');
|
|
@@ -64,18 +67,30 @@ export function resolveFromJobDir(claudeJobDir) {
|
|
|
64
67
|
}
|
|
65
68
|
if (parsed === null || typeof parsed !== 'object')
|
|
66
69
|
return null;
|
|
67
|
-
|
|
70
|
+
return parsed;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Extract the session UUID from a `linkScanPath` value: the basename minus its
|
|
74
|
+
* extension, validated against `SESSION_ID_RE` so a path-traversing value is
|
|
75
|
+
* never accepted. Returns null when absent or invalid.
|
|
76
|
+
*/
|
|
77
|
+
function sessionIdFromLinkScanPath(linkScanPath) {
|
|
68
78
|
if (typeof linkScanPath !== 'string' || linkScanPath.length === 0)
|
|
69
79
|
return null;
|
|
70
|
-
// The session UUID is the basename minus its extension. Validate against
|
|
71
|
-
// the same character class used everywhere else so we never accept a
|
|
72
|
-
// path-traversing value.
|
|
73
80
|
const file = basename(linkScanPath);
|
|
74
81
|
const dot = file.lastIndexOf('.');
|
|
75
82
|
const sid = dot > 0 ? file.slice(0, dot) : file;
|
|
76
|
-
|
|
83
|
+
return SESSION_ID_RE.test(sid) ? sid : null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Try to resolve the session_id synchronously from `CLAUDE_JOB_DIR/state.json`.
|
|
87
|
+
* Returns the validated session_id or null.
|
|
88
|
+
*/
|
|
89
|
+
export function resolveFromJobDir(claudeJobDir) {
|
|
90
|
+
const parsed = readAndParseJobState(claudeJobDir);
|
|
91
|
+
if (!parsed)
|
|
77
92
|
return null;
|
|
78
|
-
return
|
|
93
|
+
return sessionIdFromLinkScanPath(parsed.linkScanPath);
|
|
79
94
|
}
|
|
80
95
|
/**
|
|
81
96
|
* Try to resolve the session_id synchronously from the PPID breadcrumb file.
|
|
@@ -123,6 +138,19 @@ export function resolveFromBreadcrumb(storagePath, ppid, processStartMs = Date.n
|
|
|
123
138
|
return null;
|
|
124
139
|
return sid;
|
|
125
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Sanitize a cwd into the single filename segment used both by the collector's
|
|
143
|
+
* `writeCwdBreadcrumb()` (session-by-cwd breadcrumb) and by Claude Code's own
|
|
144
|
+
* transcript-directory naming under `~/.claude/projects/`: backslash, forward
|
|
145
|
+
* slash, and colon each become `-`. Must stay identical to
|
|
146
|
+
* `collector-script.ts` so both sides derive the same filename independently.
|
|
147
|
+
* Colons are stripped so a Windows drive letter (e.g. `C:`) never survives into
|
|
148
|
+
* a filename where `path.resolve()` on win32 would reinterpret it as a
|
|
149
|
+
* drive-relative component and read/write outside the intended directory.
|
|
150
|
+
*/
|
|
151
|
+
export function sanitizeCwdForFilename(cwd) {
|
|
152
|
+
return cwd.replace(/[\\/:]/g, '-');
|
|
153
|
+
}
|
|
126
154
|
/**
|
|
127
155
|
* Try to resolve the session_id synchronously from the cwd breadcrumb file.
|
|
128
156
|
* Fallback for platforms where the PPID breadcrumb never matches (see the
|
|
@@ -131,12 +159,7 @@ export function resolveFromBreadcrumb(storagePath, ppid, processStartMs = Date.n
|
|
|
131
159
|
export function resolveFromCwd(storagePath, cwd) {
|
|
132
160
|
if (typeof cwd !== 'string' || cwd.length === 0)
|
|
133
161
|
return null;
|
|
134
|
-
|
|
135
|
-
// getTranscriptPath() — must stay identical so both sides derive the same
|
|
136
|
-
// filename independently. Colons are stripped too (unlike
|
|
137
|
-
// getTranscriptPath) so a Windows drive letter never survives into the
|
|
138
|
-
// filename — see the matching comment in writeCwdBreadcrumb().
|
|
139
|
-
const sanitizedCwd = cwd.replace(/[\\/:]/g, '-');
|
|
162
|
+
const sanitizedCwd = sanitizeCwdForFilename(cwd);
|
|
140
163
|
const breadcrumbPath = resolve(storagePath, 'session-by-cwd', `${sanitizedCwd}.txt`);
|
|
141
164
|
if (!existsSync(breadcrumbPath))
|
|
142
165
|
return null;
|
|
@@ -354,4 +377,248 @@ export function isUnscopedAggregatorSessionId(id) {
|
|
|
354
377
|
return false;
|
|
355
378
|
return id.startsWith('local-') || id.startsWith('proxy-');
|
|
356
379
|
}
|
|
380
|
+
/**
|
|
381
|
+
* Read the naming fields from `CLAUDE_JOB_DIR/state.json`. Sibling to
|
|
382
|
+
* `resolveFromJobDir` (whose `string | null` contract is unchanged) — returns
|
|
383
|
+
* null when there is no readable state file. `sessionId` prefers an explicit
|
|
384
|
+
* `sessionId` field, falling back to the UUID embedded in `linkScanPath`.
|
|
385
|
+
*
|
|
386
|
+
* The sensitive `intent` (first-prompt CONTENT) is populated ONLY when
|
|
387
|
+
* `options.recordContent === true`; it is null otherwise. This gates the
|
|
388
|
+
* content field by construction (mirroring `DecisionTracker`'s `recordContent`
|
|
389
|
+
* gate) so a future consumer that copies the `name`/`nameSource` wiring cannot
|
|
390
|
+
* leak prompt content by simply reading `.intent`. Pass `config.recordContent`
|
|
391
|
+
* (already force-disabled under highSecurity) to stay compliant; the `name`/
|
|
392
|
+
* `nameSource` display labels are never gated.
|
|
393
|
+
*/
|
|
394
|
+
export function readJobState(claudeJobDir, options) {
|
|
395
|
+
const parsed = readAndParseJobState(claudeJobDir);
|
|
396
|
+
if (!parsed)
|
|
397
|
+
return null;
|
|
398
|
+
const sessionId = typeof parsed.sessionId === 'string' && SESSION_ID_RE.test(parsed.sessionId)
|
|
399
|
+
? parsed.sessionId
|
|
400
|
+
: sessionIdFromLinkScanPath(parsed.linkScanPath);
|
|
401
|
+
const name = typeof parsed.name === 'string' && parsed.name.length > 0 ? parsed.name : null;
|
|
402
|
+
const nameSource = parsed.nameSource === 'user' || parsed.nameSource === 'auto' ? parsed.nameSource : null;
|
|
403
|
+
const intent = options?.recordContent === true && typeof parsed.intent === 'string' && parsed.intent.length > 0
|
|
404
|
+
? parsed.intent
|
|
405
|
+
: null;
|
|
406
|
+
return { sessionId, name, nameSource, intent };
|
|
407
|
+
}
|
|
408
|
+
// Bounded transcript reads: scan at most this many bytes back from EOF, one
|
|
409
|
+
// chunk at a time, to find the last `ai-title`. A degenerate huge transcript
|
|
410
|
+
// with no title in its tail costs at most MAX_SCAN_BYTES of IO, never the
|
|
411
|
+
// whole file.
|
|
412
|
+
const TRANSCRIPT_TITLE_CHUNK_BYTES = 64 * 1024;
|
|
413
|
+
const TRANSCRIPT_TITLE_MAX_SCAN_BYTES = 1024 * 1024;
|
|
414
|
+
/**
|
|
415
|
+
* Scan `text` (a suffix of a transcript JSONL file) for the LAST `ai-title`
|
|
416
|
+
* record and return its `aiTitle` (raw, unredacted — the caller redacts).
|
|
417
|
+
* `firstFragmentComplete` must be true only when `text` begins exactly at a
|
|
418
|
+
* file/line boundary; otherwise the substring before the first newline is a
|
|
419
|
+
* partial line whose start lies in an earlier, unread region and is skipped.
|
|
420
|
+
* Scanning newest-first means the first match is the file's last `ai-title`.
|
|
421
|
+
*/
|
|
422
|
+
export function findLastAiTitleInText(text, firstFragmentComplete) {
|
|
423
|
+
const parts = text.split('\n');
|
|
424
|
+
for (let i = parts.length - 1; i >= 0; i--) {
|
|
425
|
+
if (i === 0 && !firstFragmentComplete)
|
|
426
|
+
break; // partial leading line — its start is unread
|
|
427
|
+
const line = parts[i];
|
|
428
|
+
if (line.length === 0)
|
|
429
|
+
continue;
|
|
430
|
+
// Cheap pre-filter: `ai-title` records are rare, so skip JSON.parse unless
|
|
431
|
+
// the marker is present at all.
|
|
432
|
+
if (!line.includes('"ai-title"'))
|
|
433
|
+
continue;
|
|
434
|
+
let parsed;
|
|
435
|
+
try {
|
|
436
|
+
parsed = JSON.parse(line);
|
|
437
|
+
}
|
|
438
|
+
catch {
|
|
439
|
+
continue;
|
|
440
|
+
}
|
|
441
|
+
if (parsed.type === 'ai-title' &&
|
|
442
|
+
typeof parsed.aiTitle === 'string' &&
|
|
443
|
+
parsed.aiTitle.length > 0) {
|
|
444
|
+
return parsed.aiTitle;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
return null;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Locate a session's transcript file under `<projectsDir>/<slug>/<sessionId>.jsonl`.
|
|
451
|
+
*
|
|
452
|
+
* Claude Code names each project subdirectory with a slug derived from the cwd,
|
|
453
|
+
* but that scheme is NOT the same as our breadcrumb `sanitizeCwdForFilename`
|
|
454
|
+
* (Claude Code also replaces `.` — so `/repo/.claude/wt` becomes
|
|
455
|
+
* `-repo--claude-wt`). Rather than mirror an undocumented slug scheme that can
|
|
456
|
+
* drift, we exploit the fact that a session id is a UUID — globally unique
|
|
457
|
+
* across every project slug — and find the one subdirectory that contains
|
|
458
|
+
* `<sessionId>.jsonl`. Returns the first match, or null.
|
|
459
|
+
*/
|
|
460
|
+
function findTranscriptPath(projectsDir, sessionId) {
|
|
461
|
+
const fileName = `${sessionId}.jsonl`;
|
|
462
|
+
let entries;
|
|
463
|
+
try {
|
|
464
|
+
entries = readdirSync(projectsDir);
|
|
465
|
+
}
|
|
466
|
+
catch (err) {
|
|
467
|
+
logger.debug('projects dir unreadable', { error: String(err) });
|
|
468
|
+
return null;
|
|
469
|
+
}
|
|
470
|
+
for (const entry of entries) {
|
|
471
|
+
const candidate = resolve(projectsDir, entry, fileName);
|
|
472
|
+
if (existsSync(candidate))
|
|
473
|
+
return candidate;
|
|
474
|
+
}
|
|
475
|
+
return null;
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Read the last `ai-title` from a session's transcript JSONL, redacted.
|
|
479
|
+
* Locates the transcript by matching `<sessionId>.jsonl` under any project slug
|
|
480
|
+
* (see `findTranscriptPath` — robust to Claude Code's cwd-slug scheme). Reads
|
|
481
|
+
* BOUNDED — reverse-scans the file's tail one chunk at a time up to
|
|
482
|
+
* `TRANSCRIPT_TITLE_MAX_SCAN_BYTES`, never slurping the whole file. Returns null
|
|
483
|
+
* on any miss (no file, no title, bad sessionId) and never throws.
|
|
484
|
+
*
|
|
485
|
+
* @param projectsDir Override for `~/.claude/projects` (test seam).
|
|
486
|
+
*/
|
|
487
|
+
export function readTranscriptTitle(input) {
|
|
488
|
+
const { sessionId } = input;
|
|
489
|
+
if (!SESSION_ID_RE.test(sessionId))
|
|
490
|
+
return null;
|
|
491
|
+
const projectsDir = input.projectsDir ?? resolve(homedir(), '.claude', 'projects');
|
|
492
|
+
const transcriptPath = findTranscriptPath(projectsDir, sessionId);
|
|
493
|
+
if (transcriptPath === null)
|
|
494
|
+
return null;
|
|
495
|
+
let fd;
|
|
496
|
+
let size;
|
|
497
|
+
try {
|
|
498
|
+
size = statSync(transcriptPath).size;
|
|
499
|
+
if (size === 0)
|
|
500
|
+
return null;
|
|
501
|
+
fd = openSync(transcriptPath, fsConstants.O_RDONLY);
|
|
502
|
+
}
|
|
503
|
+
catch (err) {
|
|
504
|
+
logger.debug('transcript unreadable', { error: String(err) });
|
|
505
|
+
return null;
|
|
506
|
+
}
|
|
507
|
+
try {
|
|
508
|
+
let pos = size;
|
|
509
|
+
// Accumulate raw chunks and decode the contiguous tail as ONE buffer each
|
|
510
|
+
// iteration, so a multi-byte UTF-8 sequence straddling a 64KB chunk
|
|
511
|
+
// boundary is decoded intact — decoding each chunk in isolation would
|
|
512
|
+
// corrupt a straddling character to U+FFFD on both sides.
|
|
513
|
+
const chunks = [];
|
|
514
|
+
while (pos > 0 && size - pos < TRANSCRIPT_TITLE_MAX_SCAN_BYTES) {
|
|
515
|
+
const chunkSize = Math.min(TRANSCRIPT_TITLE_CHUNK_BYTES, pos);
|
|
516
|
+
pos -= chunkSize;
|
|
517
|
+
const buffer = Buffer.alloc(chunkSize);
|
|
518
|
+
const bytesRead = readSync(fd, buffer, 0, chunkSize, pos);
|
|
519
|
+
chunks.unshift(bytesRead === chunkSize ? buffer : buffer.subarray(0, bytesRead));
|
|
520
|
+
const acc = Buffer.concat(chunks).toString('utf-8');
|
|
521
|
+
// `pos === 0` means `acc` now starts at the file head, so its first line
|
|
522
|
+
// is complete; otherwise the leading fragment is partial and skipped.
|
|
523
|
+
const title = findLastAiTitleInText(acc, pos === 0);
|
|
524
|
+
if (title !== null)
|
|
525
|
+
return redactSensitive(title);
|
|
526
|
+
}
|
|
527
|
+
return null;
|
|
528
|
+
}
|
|
529
|
+
catch (err) {
|
|
530
|
+
logger.debug('transcript read failed', { error: String(err) });
|
|
531
|
+
return null;
|
|
532
|
+
}
|
|
533
|
+
finally {
|
|
534
|
+
closeSync(fd);
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Directory basenames too generic to serve as a session label. Single source
|
|
539
|
+
* of truth for the guard `SessionTracker`'s streaming cwd fallback also uses. A
|
|
540
|
+
* degenerate startup cwd yields no authoritative `cwd` name (step 4 falls
|
|
541
|
+
* through to null), leaving the tracker's streaming fallback free to upgrade to
|
|
542
|
+
* a better name from a later tool call's cwd.
|
|
543
|
+
*/
|
|
544
|
+
export const DEGENERATE_NAMES = new Set([
|
|
545
|
+
'tmp',
|
|
546
|
+
'temp',
|
|
547
|
+
'var',
|
|
548
|
+
'usr',
|
|
549
|
+
'opt',
|
|
550
|
+
'home',
|
|
551
|
+
'.',
|
|
552
|
+
'..',
|
|
553
|
+
'',
|
|
554
|
+
]);
|
|
555
|
+
/**
|
|
556
|
+
* Pure precedence decision for a session's display name (first hit wins):
|
|
557
|
+
* 1. state.json `name` where `nameSource === 'user'` → `user`
|
|
558
|
+
* 2. transcript last `ai-title` → `ai-title`
|
|
559
|
+
* 3. state.json `name` where `nameSource === 'auto'` → `auto`
|
|
560
|
+
* 4. basename(cwd), unless degenerate → `cwd`
|
|
561
|
+
* 5. null
|
|
562
|
+
* Does no IO and gates on nothing: callers pass already-read values and redact
|
|
563
|
+
* the returned name at each sink.
|
|
564
|
+
*/
|
|
565
|
+
export function resolveSessionName(inputs) {
|
|
566
|
+
const jobState = inputs.jobState ?? null;
|
|
567
|
+
if (jobState && jobState.nameSource === 'user' && jobState.name) {
|
|
568
|
+
return { name: jobState.name, source: 'user' };
|
|
569
|
+
}
|
|
570
|
+
if (inputs.transcriptTitle && inputs.transcriptTitle.length > 0) {
|
|
571
|
+
return { name: inputs.transcriptTitle, source: 'ai-title' };
|
|
572
|
+
}
|
|
573
|
+
if (jobState && jobState.nameSource === 'auto' && jobState.name) {
|
|
574
|
+
return { name: jobState.name, source: 'auto' };
|
|
575
|
+
}
|
|
576
|
+
const cwd = inputs.cwd;
|
|
577
|
+
if (typeof cwd === 'string' && cwd.length > 0) {
|
|
578
|
+
const base = basename(cwd);
|
|
579
|
+
if (base.length > 0 && !DEGENERATE_NAMES.has(base.toLowerCase())) {
|
|
580
|
+
return { name: base, source: 'cwd' };
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
return null;
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Trust rank of a session-name source; LOWER is more trusted. Mirrors
|
|
587
|
+
* `resolveSessionName`'s precedence exactly: `user`(0) > `ai-title`(1) >
|
|
588
|
+
* `auto`(2) > `cwd`(3). Used to decide whether a freshly re-resolved name may
|
|
589
|
+
* replace the one already in place (see `shouldReplaceSessionName`).
|
|
590
|
+
*/
|
|
591
|
+
export function sessionNameSourceRank(source) {
|
|
592
|
+
switch (source) {
|
|
593
|
+
case 'user':
|
|
594
|
+
return 0;
|
|
595
|
+
case 'ai-title':
|
|
596
|
+
return 1;
|
|
597
|
+
case 'auto':
|
|
598
|
+
return 2;
|
|
599
|
+
case 'cwd':
|
|
600
|
+
return 3;
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Whether a re-resolved name from `next` should replace a name currently
|
|
605
|
+
* sourced from `current`. Freshness re-resolution (Phase 2) re-reads Claude
|
|
606
|
+
* Code's name sources at persist/shutdown time so a refined `ai-title` — or a
|
|
607
|
+
* name a human later assigns — supersedes the first-prompt guess.
|
|
608
|
+
*
|
|
609
|
+
* Replaces only when `next` is at least as trusted as `current`
|
|
610
|
+
* (`rank(next) <= rank(current)`): an equal-or-better source wins (which also
|
|
611
|
+
* picks up refined text for the SAME source, e.g. an updated `ai-title`),
|
|
612
|
+
* while a strictly-less-trusted source is refused. That refusal is the
|
|
613
|
+
* load-bearing invariant: a `user`-sourced name is NEVER downgraded to
|
|
614
|
+
* `auto`/`cwd`, even if the job-state file that supplied it later disappears
|
|
615
|
+
* and re-resolution would otherwise fall through to the transcript title or
|
|
616
|
+
* the cwd basename. A `null` current source (session not yet named) always
|
|
617
|
+
* accepts.
|
|
618
|
+
*/
|
|
619
|
+
export function shouldReplaceSessionName(current, next) {
|
|
620
|
+
if (current === null)
|
|
621
|
+
return true;
|
|
622
|
+
return sessionNameSourceRank(next) <= sessionNameSourceRank(current);
|
|
623
|
+
}
|
|
357
624
|
//# sourceMappingURL=session-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-resolver.js","sourceRoot":"","sources":["../../src/hooks/session-resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-resolver.js","sourceRoot":"","sources":["../../src/hooks/session-resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAYvB,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|