litmus-cli 1.4.1 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/commands/doctor.d.ts +136 -0
  2. package/dist/commands/doctor.d.ts.map +1 -0
  3. package/dist/commands/doctor.js +1055 -0
  4. package/dist/commands/doctor.js.map +1 -0
  5. package/dist/commands/init.d.ts +1 -0
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +8 -2
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/status.d.ts.map +1 -1
  10. package/dist/commands/status.js +5 -1
  11. package/dist/commands/status.js.map +1 -1
  12. package/dist/index.js +25 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/ai-tracking.d.ts +35 -0
  15. package/dist/lib/ai-tracking.d.ts.map +1 -1
  16. package/dist/lib/ai-tracking.js +40 -10
  17. package/dist/lib/ai-tracking.js.map +1 -1
  18. package/dist/lib/api.d.ts +14 -0
  19. package/dist/lib/api.d.ts.map +1 -1
  20. package/dist/lib/api.js +40 -0
  21. package/dist/lib/api.js.map +1 -1
  22. package/dist/lib/backfill.d.ts +106 -0
  23. package/dist/lib/backfill.d.ts.map +1 -0
  24. package/dist/lib/backfill.js +356 -0
  25. package/dist/lib/backfill.js.map +1 -0
  26. package/dist/lib/chain.d.ts +42 -0
  27. package/dist/lib/chain.d.ts.map +1 -0
  28. package/dist/lib/chain.js +98 -0
  29. package/dist/lib/chain.js.map +1 -0
  30. package/dist/lib/errors.d.ts +19 -0
  31. package/dist/lib/errors.d.ts.map +1 -1
  32. package/dist/lib/errors.js +9 -1
  33. package/dist/lib/errors.js.map +1 -1
  34. package/dist/lib/tracker.d.ts +16 -0
  35. package/dist/lib/tracker.d.ts.map +1 -1
  36. package/dist/lib/tracker.js +23 -0
  37. package/dist/lib/tracker.js.map +1 -1
  38. package/dist/lib/watcher.js +110 -5
  39. package/dist/lib/watcher.js.map +1 -1
  40. package/package.json +1 -1
package/dist/lib/api.js CHANGED
@@ -383,6 +383,46 @@ export async function fetchSubmitStatus(backendUrl, token) {
383
383
  });
384
384
  }
385
385
  }
386
+ /**
387
+ * POST a batch of activity events to /cli/activity — the same endpoint the
388
+ * background watcher uploads through, so anything sent here lands in the same
389
+ * server-side store the team's monitoring reads.
390
+ *
391
+ * Used by `litmus doctor` to (a) flush a backlog of locally-recorded events
392
+ * the dead watcher never delivered and (b) record that doctor ran. Events are
393
+ * sent VERBATIM — no field is added or rewritten, so chained watcher events
394
+ * stay verifiable.
395
+ *
396
+ * Throws ServerError on any non-2xx so the caller can distinguish "assessment
397
+ * ended" (400 "Session over") / bad token (404) from a transient failure.
398
+ */
399
+ export async function uploadActivityEvents(backendUrl, token, events) {
400
+ const url = `${backendUrl}/cli/activity`;
401
+ const { res, rawBody, durationMs } = await fetchWithRetries(url, {
402
+ method: "POST",
403
+ headers: { ...authHeaders(token), "Content-Type": "application/json" },
404
+ body: JSON.stringify({ events }),
405
+ signal: AbortSignal.timeout(TIMEOUT_MS),
406
+ });
407
+ if (!res.ok) {
408
+ let body = {};
409
+ try {
410
+ body = JSON.parse(rawBody);
411
+ }
412
+ catch { /* not JSON */ }
413
+ const detail = body.detail;
414
+ const detailMsg = typeof detail === "object" && detail !== null
415
+ ? detail.message
416
+ : typeof detail === "string" ? detail : undefined;
417
+ throw new ServerError({
418
+ message: detailMsg || body.message || body.error || `Server returned ${res.status}`,
419
+ statusCode: res.status, responseBody: rawBody, url,
420
+ responseHeaders: Object.fromEntries(res.headers.entries()),
421
+ durationMs,
422
+ errorCode: extractErrorCode(body) || (typeof detail === "string" ? detail : undefined),
423
+ });
424
+ }
425
+ }
386
426
  /**
387
427
  * Upload a ZIP file for submission.
388
428
  * Streams the file to avoid loading it entirely into memory.
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Prompt backfill from Claude Code's own session transcripts (`litmus doctor
3
+ * --backfill-prompts`).
4
+ *
5
+ * The live capture path (hook-logger.cjs) silently records nothing while
6
+ * `.litmus/config.json` is unresolvable — the hook fires, finds no assessment
7
+ * in scope, and returns. The prompts themselves are NOT lost: Claude Code
8
+ * keeps a full JSONL transcript of every session under
9
+ * `~/.claude/projects/<munged-cwd>/<session-id>.jsonl`. This module re-reads
10
+ * those transcripts and synthesizes the `ai_prompt` / `ai_response` events the
11
+ * hook would have produced, for upload through the normal /cli/activity path.
12
+ *
13
+ * Two invariants, in priority order:
14
+ *
15
+ * 1. NEVER silent over-capture. Every synthesized event carries
16
+ * `backfilled: true` and `backfillSource: "claude_transcript"`, so the
17
+ * grader, the report UI, and any reviewer can always tell a recovered
18
+ * event from a live-captured one. Doctor also prints exactly how many
19
+ * events came from which session files, so the candidate sees what was
20
+ * taken.
21
+ * 2. Prefer over-capture to under-capture, within the declared scope. The
22
+ * default scope is sessions whose recorded cwd sits inside the assessment
23
+ * directory; `--all-sessions` widens to every session on the machine for
24
+ * support-guided recoveries. Re-running the backfill can duplicate events
25
+ * server-side — accepted, because the provenance flag makes duplicates
26
+ * identifiable and the server store is append-only.
27
+ *
28
+ * Parsing mirrors the hook-logger's Stop-hook transcript reader
29
+ * (parseClaudeTranscript in hook-logger.cjs): same entry filtering
30
+ * (isMeta / isSidechain skipped), same genuine-prompt predicate (tool_result
31
+ * entries are not turn boundaries), same system-injected-block stripping, and
32
+ * the same size caps — keep the two in step.
33
+ */
34
+ export declare const MAX_PROMPT_LENGTH = 1800;
35
+ export declare const MAX_RESPONSE_LENGTH = 30000;
36
+ export declare const MAX_TRANSCRIPT_BYTES: number;
37
+ export declare function isSystemInjectedPrompt(text: string): boolean;
38
+ export interface BackfillEvent {
39
+ ts: string;
40
+ type: "ai_prompt" | "ai_response";
41
+ tool: "claude";
42
+ prompt?: string;
43
+ text?: string;
44
+ sessionId?: string;
45
+ /** Provenance — REQUIRED on every backfilled event, never uploaded without. */
46
+ backfilled: true;
47
+ backfillSource: "claude_transcript";
48
+ }
49
+ export interface TranscriptExtract {
50
+ events: BackfillEvent[];
51
+ /** Distinct cwd values the session's entries reported, in first-seen order. */
52
+ cwds: string[];
53
+ sessionId: string | null;
54
+ }
55
+ /**
56
+ * Extract candidate prompts and per-turn assistant responses from raw Claude
57
+ * Code transcript JSONL.
58
+ *
59
+ * Unlike the hook-logger's reader (which only needs the FINAL turn, because a
60
+ * Stop hook fires per turn), this walks every turn: each genuine user prompt
61
+ * becomes an `ai_prompt` event and closes out the previous turn's accumulated
62
+ * assistant prose as an `ai_response` event. Timestamps come from the
63
+ * transcript entries themselves, so backfilled events sort into the activity
64
+ * timeline at the times the exchange actually happened; `fallbackTs` (file
65
+ * mtime) covers entries with no usable timestamp.
66
+ */
67
+ export declare function extractEventsFromTranscriptText(raw: string, fallbackTs: string): TranscriptExtract;
68
+ /**
69
+ * Does a session belong to this assessment? True when ANY cwd the session's
70
+ * entries reported sits at or under the assessment root, after both sides
71
+ * are normalized through realpathUpward.
72
+ */
73
+ export declare function sessionMatchesAssessment(cwds: string[], assessmentRoot: string): boolean;
74
+ /** All Claude Code session transcript paths under the projects dir. */
75
+ export declare function enumerateClaudeSessionFiles(claudeProjectsDir: string): string[];
76
+ export declare function defaultClaudeProjectsDir(): string;
77
+ export declare const MAX_EVENTS_PER_UPLOAD = 500;
78
+ export declare const MAX_UPLOAD_BYTES = 2000000;
79
+ /** Chunk events into upload batches by count and serialized size. */
80
+ export declare function planUploadBatches(events: BackfillEvent[]): BackfillEvent[][];
81
+ export interface SessionBackfill {
82
+ file: string;
83
+ sessionId: string | null;
84
+ prompts: number;
85
+ responses: number;
86
+ events: BackfillEvent[];
87
+ }
88
+ export interface BackfillScan {
89
+ sessions: SessionBackfill[];
90
+ scannedFiles: number;
91
+ skippedOversized: string[];
92
+ unreadable: string[];
93
+ }
94
+ /**
95
+ * Read every Claude Code session transcript, extract events, and filter to
96
+ * scope. `sinceMs` drops events before the cutoff (a session stays in scope if
97
+ * any of its events survive). Pure filesystem reads — uploading is the
98
+ * caller's job, so this is directly testable.
99
+ */
100
+ export declare function collectBackfillSessions(opts: {
101
+ claudeProjectsDir: string;
102
+ assessmentRoot: string;
103
+ allSessions: boolean;
104
+ sinceMs: number | null;
105
+ }): BackfillScan;
106
+ //# sourceMappingURL=backfill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../src/lib/backfill.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,eAAO,MAAM,iBAAiB,OAAO,CAAA;AACrC,eAAO,MAAM,mBAAmB,QAAQ,CAAA;AAKxC,eAAO,MAAM,oBAAoB,QAAmB,CAAA;AAcpD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,GAAG,aAAa,CAAA;IACjC,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,UAAU,EAAE,IAAI,CAAA;IAChB,cAAc,EAAE,mBAAmB,CAAA;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAgDD;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB,iBAAiB,CAyFnB;AAoCD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAOxF;AAED,uEAAuE;AACvE,wBAAgB,2BAA2B,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB/E;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAMD,eAAO,MAAM,qBAAqB,MAAM,CAAA;AACxC,eAAO,MAAM,gBAAgB,UAAY,CAAA;AAEzC,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,EAAE,CAgB5E;AAID,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,aAAa,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB,GAAG,YAAY,CA2Cf"}
@@ -0,0 +1,356 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import os from "os";
4
+ /**
5
+ * Prompt backfill from Claude Code's own session transcripts (`litmus doctor
6
+ * --backfill-prompts`).
7
+ *
8
+ * The live capture path (hook-logger.cjs) silently records nothing while
9
+ * `.litmus/config.json` is unresolvable — the hook fires, finds no assessment
10
+ * in scope, and returns. The prompts themselves are NOT lost: Claude Code
11
+ * keeps a full JSONL transcript of every session under
12
+ * `~/.claude/projects/<munged-cwd>/<session-id>.jsonl`. This module re-reads
13
+ * those transcripts and synthesizes the `ai_prompt` / `ai_response` events the
14
+ * hook would have produced, for upload through the normal /cli/activity path.
15
+ *
16
+ * Two invariants, in priority order:
17
+ *
18
+ * 1. NEVER silent over-capture. Every synthesized event carries
19
+ * `backfilled: true` and `backfillSource: "claude_transcript"`, so the
20
+ * grader, the report UI, and any reviewer can always tell a recovered
21
+ * event from a live-captured one. Doctor also prints exactly how many
22
+ * events came from which session files, so the candidate sees what was
23
+ * taken.
24
+ * 2. Prefer over-capture to under-capture, within the declared scope. The
25
+ * default scope is sessions whose recorded cwd sits inside the assessment
26
+ * directory; `--all-sessions` widens to every session on the machine for
27
+ * support-guided recoveries. Re-running the backfill can duplicate events
28
+ * server-side — accepted, because the provenance flag makes duplicates
29
+ * identifiable and the server store is append-only.
30
+ *
31
+ * Parsing mirrors the hook-logger's Stop-hook transcript reader
32
+ * (parseClaudeTranscript in hook-logger.cjs): same entry filtering
33
+ * (isMeta / isSidechain skipped), same genuine-prompt predicate (tool_result
34
+ * entries are not turn boundaries), same system-injected-block stripping, and
35
+ * the same size caps — keep the two in step.
36
+ */
37
+ // Same caps as hook-logger.cjs so a backfilled event can never exceed what the
38
+ // live path would have produced (and stays inside the server's per-event
39
+ // ingest caps).
40
+ export const MAX_PROMPT_LENGTH = 1800;
41
+ export const MAX_RESPONSE_LENGTH = 30000;
42
+ const MAX_SERIALIZED_EVENT_BYTES = 60000;
43
+ // Transcript files grow with the session. Anything past this is refused (and
44
+ // reported) rather than read into memory; no ordinary session gets here.
45
+ export const MAX_TRANSCRIPT_BYTES = 64 * 1024 * 1024;
46
+ // Same wrapper-block list as hook-logger.cjs isSystemInjectedPrompt — a
47
+ // UserPromptSubmit-shaped entry whose text is nothing but Claude Code's own
48
+ // plumbing is not a candidate prompt and must not be backfilled as one.
49
+ const SYSTEM_INJECTED_BLOCKS = [
50
+ /<task-notification>[\s\S]*?<\/task-notification>/g,
51
+ /<system-reminder>[\s\S]*?<\/system-reminder>/g,
52
+ /<local-command-stdout>[\s\S]*?<\/local-command-stdout>/g,
53
+ /<local-command-stderr>[\s\S]*?<\/local-command-stderr>/g,
54
+ /<user-prompt-submit-hook>[\s\S]*?<\/user-prompt-submit-hook>/g,
55
+ /<command-(?:name|message|args)>[\s\S]*?<\/command-(?:name|message|args)>/g,
56
+ ];
57
+ export function isSystemInjectedPrompt(text) {
58
+ if (typeof text !== "string")
59
+ return false;
60
+ let remaining = text;
61
+ for (const re of SYSTEM_INJECTED_BLOCKS)
62
+ remaining = remaining.replace(re, "");
63
+ return remaining.trim() === "" && text.trim() !== "";
64
+ }
65
+ function truncate(text, max) {
66
+ return text.length > max ? text.slice(0, max) + "...[truncated]" : text;
67
+ }
68
+ /** Trim the content field until the serialized event fits the ingest cap
69
+ * (same loop as hook-logger.cjs — JSON escaping can exceed character caps). */
70
+ function fitSerialized(event) {
71
+ const bodyField = event.type === "ai_response" ? "text" : "prompt";
72
+ while (Buffer.byteLength(JSON.stringify(event), "utf8") > MAX_SERIALIZED_EVENT_BYTES
73
+ && (event[bodyField]?.length ?? 0) > 0) {
74
+ const body = event[bodyField];
75
+ const kept = Math.max(0, Math.floor(body.length / 2));
76
+ event[bodyField] = kept ? body.slice(0, kept) + "...[truncated]" : "";
77
+ }
78
+ return event;
79
+ }
80
+ function promptTextFromContent(content) {
81
+ if (typeof content === "string")
82
+ return content;
83
+ if (!Array.isArray(content))
84
+ return null;
85
+ const isToolResult = content.some((b) => b && typeof b === "object" && b.type === "tool_result");
86
+ if (isToolResult)
87
+ return null; // tool result riding a user entry, not a prompt
88
+ const texts = content
89
+ .filter((b) => !!b && typeof b === "object"
90
+ && b.type === "text"
91
+ && typeof b.text === "string"
92
+ && b.text.length > 0)
93
+ .map((b) => b.text);
94
+ return texts.length > 0 ? texts.join("\n\n") : null;
95
+ }
96
+ /**
97
+ * Extract candidate prompts and per-turn assistant responses from raw Claude
98
+ * Code transcript JSONL.
99
+ *
100
+ * Unlike the hook-logger's reader (which only needs the FINAL turn, because a
101
+ * Stop hook fires per turn), this walks every turn: each genuine user prompt
102
+ * becomes an `ai_prompt` event and closes out the previous turn's accumulated
103
+ * assistant prose as an `ai_response` event. Timestamps come from the
104
+ * transcript entries themselves, so backfilled events sort into the activity
105
+ * timeline at the times the exchange actually happened; `fallbackTs` (file
106
+ * mtime) covers entries with no usable timestamp.
107
+ */
108
+ export function extractEventsFromTranscriptText(raw, fallbackTs) {
109
+ const events = [];
110
+ const cwds = [];
111
+ let sessionId = null;
112
+ let lastTs = fallbackTs;
113
+ let responseParts = [];
114
+ let responseTs = null;
115
+ let responseSession = null;
116
+ const provenance = { backfilled: true, backfillSource: "claude_transcript" };
117
+ const flushResponse = () => {
118
+ if (responseParts.length === 0)
119
+ return;
120
+ const event = {
121
+ ts: responseTs ?? lastTs,
122
+ type: "ai_response",
123
+ tool: "claude",
124
+ text: truncate(responseParts.join("\n\n"), MAX_RESPONSE_LENGTH),
125
+ ...provenance,
126
+ };
127
+ if (responseSession)
128
+ event.sessionId = responseSession;
129
+ events.push(fitSerialized(event));
130
+ responseParts = [];
131
+ responseTs = null;
132
+ responseSession = null;
133
+ };
134
+ for (const line of raw.split("\n")) {
135
+ const trimmed = line.trim();
136
+ if (!trimmed)
137
+ continue;
138
+ let entry;
139
+ try {
140
+ entry = JSON.parse(trimmed);
141
+ }
142
+ catch {
143
+ continue; // torn or non-JSON line
144
+ }
145
+ if (!entry || typeof entry !== "object")
146
+ continue;
147
+ if (typeof entry.cwd === "string" && entry.cwd && !cwds.includes(entry.cwd)) {
148
+ cwds.push(entry.cwd);
149
+ }
150
+ if (!sessionId && typeof entry.sessionId === "string" && entry.sessionId) {
151
+ sessionId = entry.sessionId;
152
+ }
153
+ const ts = typeof entry.timestamp === "string" && entry.timestamp ? entry.timestamp : lastTs;
154
+ lastTs = ts;
155
+ if (entry.isMeta || entry.isSidechain)
156
+ continue;
157
+ const content = entry.message?.content;
158
+ if (entry.type === "user") {
159
+ const promptText = promptTextFromContent(content);
160
+ if (promptText === null)
161
+ continue; // tool_result carrier, not a turn boundary
162
+ if (isSystemInjectedPrompt(promptText))
163
+ continue;
164
+ // A genuine prompt closes the previous turn's response.
165
+ flushResponse();
166
+ const event = {
167
+ ts,
168
+ type: "ai_prompt",
169
+ tool: "claude",
170
+ prompt: truncate(promptText, MAX_PROMPT_LENGTH),
171
+ ...provenance,
172
+ };
173
+ const sid = typeof entry.sessionId === "string" && entry.sessionId ? entry.sessionId : sessionId;
174
+ if (sid)
175
+ event.sessionId = sid;
176
+ events.push(fitSerialized(event));
177
+ continue;
178
+ }
179
+ if (entry.type === "assistant" && Array.isArray(content)) {
180
+ for (const block of content) {
181
+ if (block && typeof block === "object"
182
+ && block.type === "text"
183
+ && typeof block.text === "string"
184
+ && block.text) {
185
+ responseParts.push(block.text);
186
+ }
187
+ }
188
+ if (responseParts.length > 0) {
189
+ responseTs = ts;
190
+ const sid = typeof entry.sessionId === "string" && entry.sessionId ? entry.sessionId : sessionId;
191
+ if (sid)
192
+ responseSession = sid;
193
+ }
194
+ }
195
+ }
196
+ flushResponse();
197
+ return { events, cwds, sessionId };
198
+ }
199
+ // ── Session scoping ───────────────────────────────────────────────
200
+ function realpathOrNull(p) {
201
+ try {
202
+ return fs.realpathSync(p);
203
+ }
204
+ catch {
205
+ return null;
206
+ }
207
+ }
208
+ /**
209
+ * Realpath that survives deletion: resolve through the deepest ancestor that
210
+ * still exists, then re-append the missing tail. A session whose cwd was a
211
+ * since-deleted subdirectory reached through a symlinked root (macOS /tmp →
212
+ * /private/tmp, symlinked homes) still normalizes to the same real path.
213
+ */
214
+ function realpathUpward(p) {
215
+ let base = path.resolve(p);
216
+ const tail = [];
217
+ for (;;) {
218
+ const real = realpathOrNull(base);
219
+ if (real !== null)
220
+ return tail.length ? path.join(real, ...tail.reverse()) : real;
221
+ const parent = path.dirname(base);
222
+ if (parent === base)
223
+ return path.resolve(p); // nothing on the path exists
224
+ tail.push(path.basename(base));
225
+ base = parent;
226
+ }
227
+ }
228
+ function isAtOrUnder(child, parent) {
229
+ if (child === parent)
230
+ return true;
231
+ return child.startsWith(parent.endsWith(path.sep) ? parent : parent + path.sep);
232
+ }
233
+ /**
234
+ * Does a session belong to this assessment? True when ANY cwd the session's
235
+ * entries reported sits at or under the assessment root, after both sides
236
+ * are normalized through realpathUpward.
237
+ */
238
+ export function sessionMatchesAssessment(cwds, assessmentRoot) {
239
+ const rootReal = realpathUpward(assessmentRoot);
240
+ for (const cwd of cwds) {
241
+ if (typeof cwd !== "string" || !cwd)
242
+ continue;
243
+ if (isAtOrUnder(realpathUpward(cwd), rootReal))
244
+ return true;
245
+ }
246
+ return false;
247
+ }
248
+ /** All Claude Code session transcript paths under the projects dir. */
249
+ export function enumerateClaudeSessionFiles(claudeProjectsDir) {
250
+ const files = [];
251
+ let projectDirs;
252
+ try {
253
+ projectDirs = fs.readdirSync(claudeProjectsDir, { withFileTypes: true });
254
+ }
255
+ catch {
256
+ return files; // no ~/.claude/projects — nothing to backfill
257
+ }
258
+ for (const dirent of projectDirs) {
259
+ if (!dirent.isDirectory())
260
+ continue;
261
+ const dir = path.join(claudeProjectsDir, dirent.name);
262
+ let entries;
263
+ try {
264
+ entries = fs.readdirSync(dir);
265
+ }
266
+ catch {
267
+ continue;
268
+ }
269
+ for (const name of entries) {
270
+ if (name.endsWith(".jsonl"))
271
+ files.push(path.join(dir, name));
272
+ }
273
+ }
274
+ return files;
275
+ }
276
+ export function defaultClaudeProjectsDir() {
277
+ return path.join(os.homedir(), ".claude", "projects");
278
+ }
279
+ // ── Batching for upload ───────────────────────────────────────────
280
+ // Match doctor's backlog-flush caps: well inside the server's 5000-event batch
281
+ // limit and modest enough for its per-candidate rate limit.
282
+ export const MAX_EVENTS_PER_UPLOAD = 500;
283
+ export const MAX_UPLOAD_BYTES = 2000000;
284
+ /** Chunk events into upload batches by count and serialized size. */
285
+ export function planUploadBatches(events) {
286
+ const batches = [];
287
+ let current = [];
288
+ let currentBytes = 0;
289
+ for (const event of events) {
290
+ const bytes = Buffer.byteLength(JSON.stringify(event), "utf8");
291
+ if (current.length >= MAX_EVENTS_PER_UPLOAD || (current.length > 0 && currentBytes + bytes > MAX_UPLOAD_BYTES)) {
292
+ batches.push(current);
293
+ current = [];
294
+ currentBytes = 0;
295
+ }
296
+ current.push(event);
297
+ currentBytes += bytes;
298
+ }
299
+ if (current.length > 0)
300
+ batches.push(current);
301
+ return batches;
302
+ }
303
+ /**
304
+ * Read every Claude Code session transcript, extract events, and filter to
305
+ * scope. `sinceMs` drops events before the cutoff (a session stays in scope if
306
+ * any of its events survive). Pure filesystem reads — uploading is the
307
+ * caller's job, so this is directly testable.
308
+ */
309
+ export function collectBackfillSessions(opts) {
310
+ const scan = { sessions: [], scannedFiles: 0, skippedOversized: [], unreadable: [] };
311
+ for (const file of enumerateClaudeSessionFiles(opts.claudeProjectsDir)) {
312
+ scan.scannedFiles++;
313
+ let stat;
314
+ try {
315
+ stat = fs.statSync(file);
316
+ }
317
+ catch {
318
+ scan.unreadable.push(file);
319
+ continue;
320
+ }
321
+ if (stat.size > MAX_TRANSCRIPT_BYTES) {
322
+ scan.skippedOversized.push(file);
323
+ continue;
324
+ }
325
+ let raw;
326
+ try {
327
+ raw = fs.readFileSync(file, "utf8");
328
+ }
329
+ catch {
330
+ scan.unreadable.push(file);
331
+ continue;
332
+ }
333
+ const extract = extractEventsFromTranscriptText(raw, stat.mtime.toISOString());
334
+ if (extract.events.length === 0)
335
+ continue;
336
+ if (!opts.allSessions && !sessionMatchesAssessment(extract.cwds, opts.assessmentRoot))
337
+ continue;
338
+ const events = opts.sinceMs === null
339
+ ? extract.events
340
+ : extract.events.filter((e) => {
341
+ const t = Date.parse(e.ts);
342
+ return !isNaN(t) && t >= opts.sinceMs;
343
+ });
344
+ if (events.length === 0)
345
+ continue;
346
+ scan.sessions.push({
347
+ file,
348
+ sessionId: extract.sessionId,
349
+ prompts: events.filter((e) => e.type === "ai_prompt").length,
350
+ responses: events.filter((e) => e.type === "ai_response").length,
351
+ events,
352
+ });
353
+ }
354
+ return scan;
355
+ }
356
+ //# sourceMappingURL=backfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../src/lib/backfill.ts"],"names":[],"mappings":"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"}