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.
- package/dist/commands/doctor.d.ts +136 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +1055 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +8 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +5 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/ai-tracking.d.ts +35 -0
- package/dist/lib/ai-tracking.d.ts.map +1 -1
- package/dist/lib/ai-tracking.js +40 -10
- package/dist/lib/ai-tracking.js.map +1 -1
- package/dist/lib/api.d.ts +14 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +40 -0
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/backfill.d.ts +106 -0
- package/dist/lib/backfill.d.ts.map +1 -0
- package/dist/lib/backfill.js +356 -0
- package/dist/lib/backfill.js.map +1 -0
- package/dist/lib/chain.d.ts +42 -0
- package/dist/lib/chain.d.ts.map +1 -0
- package/dist/lib/chain.js +98 -0
- package/dist/lib/chain.js.map +1 -0
- package/dist/lib/errors.d.ts +19 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +9 -1
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/tracker.d.ts +16 -0
- package/dist/lib/tracker.d.ts.map +1 -1
- package/dist/lib/tracker.js +23 -0
- package/dist/lib/tracker.js.map +1 -1
- package/dist/lib/watcher.js +110 -5
- package/dist/lib/watcher.js.map +1 -1
- 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.
|
package/dist/lib/api.js.map
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,+EAA+E;AAC/E,yEAAyE;AACzE,gBAAgB;AAChB,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAA;AACxC,MAAM,0BAA0B,GAAG,KAAK,CAAA;AAExC,6EAA6E;AAC7E,yEAAyE;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAEpD,wEAAwE;AACxE,4EAA4E;AAC5E,wEAAwE;AACxE,MAAM,sBAAsB,GAAG;IAC7B,mDAAmD;IACnD,+CAA+C;IAC/C,yDAAyD;IACzD,yDAAyD;IACzD,+DAA+D;IAC/D,2EAA2E;CAC5E,CAAA;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC1C,IAAI,SAAS,GAAG,IAAI,CAAA;IACpB,KAAK,MAAM,EAAE,IAAI,sBAAsB;QAAE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC9E,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;AACtD,CAAC;AAqBD,SAAS,QAAQ,CAAC,IAAY,EAAE,GAAW;IACzC,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAA;AACzE,CAAC;AAED;gFACgF;AAChF,SAAS,aAAa,CAAC,KAAoB;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;IAClE,OACE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,0BAA0B;WAC1E,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EACtC,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAW,CAAA;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QACrD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACvE,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAYD,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAA;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAAwB,CAAC,IAAI,KAAK,aAAa,CACtF,CAAA;IACD,IAAI,YAAY;QAAE,OAAO,IAAI,CAAA,CAAC,gDAAgD;IAC9E,MAAM,KAAK,GAAG,OAAO;SAClB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CACjD,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;WACxB,CAAwB,CAAC,IAAI,KAAK,MAAM;WACzC,OAAQ,CAAwB,CAAC,IAAI,KAAK,QAAQ;WACjD,CAAsB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACrB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACrD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,+BAA+B,CAC7C,GAAW,EACX,UAAkB;IAElB,MAAM,MAAM,GAAoB,EAAE,CAAA;IAClC,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,SAAS,GAAkB,IAAI,CAAA;IAEnC,IAAI,MAAM,GAAG,UAAU,CAAA;IACvB,IAAI,aAAa,GAAa,EAAE,CAAA;IAChC,IAAI,UAAU,GAAkB,IAAI,CAAA;IACpC,IAAI,eAAe,GAAkB,IAAI,CAAA;IAEzC,MAAM,UAAU,GAAG,EAAE,UAAU,EAAE,IAAa,EAAE,cAAc,EAAE,mBAA4B,EAAE,CAAA;IAE9F,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACtC,MAAM,KAAK,GAAkB;YAC3B,EAAE,EAAE,UAAU,IAAI,MAAM;YACxB,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;YAC/D,GAAG,UAAU;SACd,CAAA;QACD,IAAI,eAAe;YAAE,KAAK,CAAC,SAAS,GAAG,eAAe,CAAA;QACtD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QACjC,aAAa,GAAG,EAAE,CAAA;QAClB,UAAU,GAAG,IAAI,CAAA;QACjB,eAAe,GAAG,IAAI,CAAA;IACxB,CAAC,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO;YAAE,SAAQ;QACtB,IAAI,KAAsB,CAAA;QAC1B,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAA;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ,CAAC,wBAAwB;QACnC,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAQ;QAEjD,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,IAAI,CAAC,SAAS,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACzE,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;QAC7B,CAAC;QACD,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;QAC5F,MAAM,GAAG,EAAE,CAAA;QAEX,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW;YAAE,SAAQ;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAA;QAEtC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;YACjD,IAAI,UAAU,KAAK,IAAI;gBAAE,SAAQ,CAAC,2CAA2C;YAC7E,IAAI,sBAAsB,CAAC,UAAU,CAAC;gBAAE,SAAQ;YAChD,wDAAwD;YACxD,aAAa,EAAE,CAAA;YACf,MAAM,KAAK,GAAkB;gBAC3B,EAAE;gBACF,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;gBAC/C,GAAG,UAAU;aACd,CAAA;YACD,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;YAChG,IAAI,GAAG;gBAAE,KAAK,CAAC,SAAS,GAAG,GAAG,CAAA;YAC9B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;YACjC,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;uBAChC,KAA4B,CAAC,IAAI,KAAK,MAAM;uBAC7C,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;uBACrD,KAA0B,CAAC,IAAI,EAAE,CAAC;oBACtC,aAAa,CAAC,IAAI,CAAE,KAA0B,CAAC,IAAI,CAAC,CAAA;gBACtD,CAAC;YACH,CAAC;YACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,UAAU,GAAG,EAAE,CAAA;gBACf,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;gBAChG,IAAI,GAAG;oBAAE,eAAe,GAAG,GAAG,CAAA;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IACD,aAAa,EAAE,CAAA;IAEf,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AACpC,CAAC;AAED,qEAAqE;AAErE,SAAS,cAAc,CAAC,CAAS;IAC/B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,CAAS;IAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACjF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAC,6BAA6B;QACzE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9B,IAAI,GAAG,MAAM,CAAA;IACf,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc;IAChD,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACjC,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAc,EAAE,cAAsB;IAC7E,MAAM,QAAQ,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;IAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG;YAAE,SAAQ;QAC7C,IAAI,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAA;IAC7D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,2BAA2B,CAAC,iBAAyB;IACnE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,WAAwB,CAAA;IAC5B,IAAI,CAAC;QACH,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA,CAAC,8CAA8C;IAC7D,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAAE,SAAQ;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACrD,IAAI,OAAiB,CAAA;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;AACvD,CAAC;AAED,qEAAqE;AAErE,+EAA+E;AAC/E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAS,CAAA;AAEzC,qEAAqE;AACrE,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,MAAM,OAAO,GAAsB,EAAE,CAAA;IACrC,IAAI,OAAO,GAAoB,EAAE,CAAA;IACjC,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;QAC9D,IAAI,OAAO,CAAC,MAAM,IAAI,qBAAqB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,GAAG,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAC/G,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,GAAG,EAAE,CAAA;YACZ,YAAY,GAAG,CAAC,CAAA;QAClB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,YAAY,IAAI,KAAK,CAAA;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7C,OAAO,OAAO,CAAA;AAChB,CAAC;AAmBD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAKvC;IACC,MAAM,IAAI,GAAiB,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;IAClG,KAAK,MAAM,IAAI,IAAI,2BAA2B,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvE,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,IAAc,CAAA;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC1B,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,GAAG,oBAAoB,EAAE,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChC,SAAQ;QACV,CAAC;QACD,IAAI,GAAW,CAAA;QACf,IAAI,CAAC;YACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC1B,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAG,+BAA+B,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9E,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QACzC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;YAAE,SAAQ;QAE/F,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI;YAClC,CAAC,CAAC,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;gBAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAQ,CAAA;YACxC,CAAC,CAAC,CAAA;QACJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAEjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI;YACJ,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,MAAM;YAC5D,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,MAAM;YAChE,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|