litmus-cli 1.4.70 → 1.4.72-capturetest.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/README.md +52 -9
- package/dist/commands/connect.d.ts +33 -2
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +119 -45
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/forward.d.ts +7 -16
- package/dist/commands/forward.d.ts.map +1 -1
- package/dist/commands/forward.js +97 -75
- package/dist/commands/forward.js.map +1 -1
- package/dist/commands/ssh.d.ts +3 -0
- package/dist/commands/ssh.d.ts.map +1 -0
- package/dist/commands/ssh.js +50 -0
- package/dist/commands/ssh.js.map +1 -0
- package/dist/index.js +16 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +7 -1
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +38 -8
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/auto-forward.d.ts +31 -0
- package/dist/lib/auto-forward.d.ts.map +1 -0
- package/dist/lib/auto-forward.js +258 -0
- package/dist/lib/auto-forward.js.map +1 -0
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/connection-attempt.d.ts +13 -2
- package/dist/lib/connection-attempt.d.ts.map +1 -1
- package/dist/lib/connection-attempt.js +16 -3
- package/dist/lib/connection-attempt.js.map +1 -1
- package/dist/lib/cursor-session.d.ts +6 -0
- package/dist/lib/cursor-session.d.ts.map +1 -1
- package/dist/lib/cursor-session.js +21 -1
- package/dist/lib/cursor-session.js.map +1 -1
- package/dist/lib/environment-checks.d.ts +1 -2
- package/dist/lib/environment-checks.d.ts.map +1 -1
- package/dist/lib/environment-checks.js +4 -9
- package/dist/lib/environment-checks.js.map +1 -1
- package/dist/lib/hook-logger.cjs +79 -22
- package/dist/lib/hosted-capture.d.ts +21 -0
- package/dist/lib/hosted-capture.d.ts.map +1 -0
- package/dist/lib/hosted-capture.js +229 -0
- package/dist/lib/hosted-capture.js.map +1 -0
- package/dist/lib/hosted-watcher.d.ts +2 -0
- package/dist/lib/hosted-watcher.d.ts.map +1 -0
- package/dist/lib/hosted-watcher.js +176 -0
- package/dist/lib/hosted-watcher.js.map +1 -0
- package/dist/lib/install-ssh-forward-hook.d.ts +6 -0
- package/dist/lib/install-ssh-forward-hook.d.ts.map +1 -0
- package/dist/lib/install-ssh-forward-hook.js +57 -0
- package/dist/lib/install-ssh-forward-hook.js.map +1 -0
- package/dist/lib/port-forward.d.ts +16 -0
- package/dist/lib/port-forward.d.ts.map +1 -0
- package/dist/lib/port-forward.js +46 -0
- package/dist/lib/port-forward.js.map +1 -0
- package/dist/lib/session-state.d.ts +61 -0
- package/dist/lib/session-state.d.ts.map +1 -0
- package/dist/lib/session-state.js +92 -0
- package/dist/lib/session-state.js.map +1 -0
- package/dist/lib/ssh-client.d.ts +11 -2
- package/dist/lib/ssh-client.d.ts.map +1 -1
- package/dist/lib/ssh-client.js +66 -7
- package/dist/lib/ssh-client.js.map +1 -1
- package/dist/lib/ssh-forward-hook.d.ts +13 -0
- package/dist/lib/ssh-forward-hook.d.ts.map +1 -0
- package/dist/lib/ssh-forward-hook.js +93 -0
- package/dist/lib/ssh-forward-hook.js.map +1 -0
- package/dist/lib/tracker.d.ts.map +1 -1
- package/dist/lib/tracker.js +7 -2
- package/dist/lib/tracker.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-checks.js","sourceRoot":"","sources":["../../src/lib/environment-checks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"environment-checks.js","sourceRoot":"","sources":["../../src/lib/environment-checks.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/hook-logger.cjs
CHANGED
|
@@ -699,17 +699,15 @@ function uploadEvent(config, event) {
|
|
|
699
699
|
const DRAIN_SENDER = "/opt/litmus/bin/litmus-ttee-send"
|
|
700
700
|
const DRAIN_SOCKET = "/run/litmus/ttee.sock"
|
|
701
701
|
|
|
702
|
-
//
|
|
703
|
-
//
|
|
704
|
-
// mid-JSON, hostd's json.loads fails and the event disappears with no diagnostic
|
|
705
|
-
// — which is why the sender REFUSES an over-cap frame rather than clipping it,
|
|
706
|
-
// and why the body is trimmed here, on the only side that knows which field is
|
|
707
|
-
// the body. The margin covers the drain's own envelope and a pathological
|
|
708
|
-
// escape expansion in the fields we do not trim.
|
|
702
|
+
// Other tools and replies keep their existing single-packet budget. The margin
|
|
703
|
+
// below TTEE_MAX_FRAME (8192) covers the drain's envelope and escaped metadata.
|
|
709
704
|
const MAX_DRAIN_FRAME_BYTES = 7800
|
|
705
|
+
// Cursor prompts are retained whole. The extended sender transports this one
|
|
706
|
+
// logical frame in bounded packets; the drain reassembles it before logging.
|
|
707
|
+
// Leave room below audit-sink's 1 MiB line ceiling for its peer envelope.
|
|
708
|
+
const MAX_CURSOR_FRAME_BYTES = 1_000_000
|
|
710
709
|
|
|
711
|
-
// The drain
|
|
712
|
-
// SEQPACKET socket). This bound exists for the pathological case — a wedged
|
|
710
|
+
// The drain uses a local SEQPACKET socket. This bound covers a wedged
|
|
713
711
|
// socket, a stopped drain process — not the normal one, and it is an order of
|
|
714
712
|
// magnitude under every hook runner's allowance.
|
|
715
713
|
const DRAIN_SEND_TIMEOUT_MS = 1500
|
|
@@ -757,10 +755,9 @@ function trimEventToBytes(event, field, maxBytes) {
|
|
|
757
755
|
* `hook_frame_captured`, which greps for it literally — change it in one place
|
|
758
756
|
* and the frame is dropped by the parser and reported as "no frame arrived".
|
|
759
757
|
*
|
|
760
|
-
* ONE frame per event
|
|
761
|
-
*
|
|
762
|
-
*
|
|
763
|
-
* fails on more than one frame for exactly this reason).
|
|
758
|
+
* ONE logical frame per event: the sender may packetize a large Cursor prompt,
|
|
759
|
+
* but the drain reassembles it before emitting one log line. hostd therefore
|
|
760
|
+
* receives exactly one event, never a set of partial prompts.
|
|
764
761
|
*
|
|
765
762
|
* Exported for tests.
|
|
766
763
|
*/
|
|
@@ -802,6 +799,11 @@ function buildDrainFrame(event, hookEventName) {
|
|
|
802
799
|
frame.file_writes = event.file_writes
|
|
803
800
|
}
|
|
804
801
|
frame.text = body
|
|
802
|
+
if (event.type === "ai_prompt" && event.tool === "cursor") {
|
|
803
|
+
const encoded = JSON.stringify(frame)
|
|
804
|
+
return body && Buffer.byteLength(encoded, "utf8") <= MAX_CURSOR_FRAME_BYTES
|
|
805
|
+
? encoded : null
|
|
806
|
+
}
|
|
805
807
|
// Trim the BODY only, so the metering and the pairing ids always survive —
|
|
806
808
|
// they are what makes a truncated record still worth having, and they cost a
|
|
807
809
|
// fixed ~200 bytes.
|
|
@@ -833,7 +835,10 @@ function emitToDrain(event, hookEventName) {
|
|
|
833
835
|
if (process.platform !== "linux") return
|
|
834
836
|
if (!fs.existsSync(DRAIN_SENDER) || !fs.existsSync(DRAIN_SOCKET)) return
|
|
835
837
|
const frame = buildDrainFrame(event, hookEventName)
|
|
836
|
-
if (!frame)
|
|
838
|
+
if (!frame) {
|
|
839
|
+
process.stderr.write("litmus hook: drain frame exceeds capture budget or has no body; skipping drain copy\n")
|
|
840
|
+
return
|
|
841
|
+
}
|
|
837
842
|
spawnSync(DRAIN_SENDER, [], {
|
|
838
843
|
input: frame,
|
|
839
844
|
timeout: DRAIN_SEND_TIMEOUT_MS,
|
|
@@ -1871,7 +1876,26 @@ function claimPrompt(generationId) {
|
|
|
1871
1876
|
* session's) and is the only pointer left once a copied explicit path has
|
|
1872
1877
|
* been rejected.
|
|
1873
1878
|
*/
|
|
1879
|
+
// Hosted capture is explicitly machine-wide for the disclosed assessment
|
|
1880
|
+
// window. An expired lease never falls back to this registration's credentials.
|
|
1881
|
+
function hostedCaptureWindow(now = Date.now()) {
|
|
1882
|
+
try {
|
|
1883
|
+
const window = JSON.parse(fs.readFileSync(path.join(os.homedir(), ".litmus", "hosted-capture.json"), "utf8"))
|
|
1884
|
+
if (typeof window.projectDir !== "string" || !Number.isFinite(window.startedAt)
|
|
1885
|
+
|| !Number.isFinite(window.expiresAt) || now < window.startedAt
|
|
1886
|
+
|| now >= window.expiresAt || window.expiresAt - now > 10000) return null
|
|
1887
|
+
const dir = path.join(window.projectDir, ".litmus")
|
|
1888
|
+
if (sessionOverMarked(dir)) return null
|
|
1889
|
+
const config = readConfig(dir)
|
|
1890
|
+
if (!config || config.captureMode !== "hosted-local") return null
|
|
1891
|
+
if (tokenDigest(config.token) !== window.tokenKey) return null
|
|
1892
|
+
return { ...window, litmusDir: dir }
|
|
1893
|
+
} catch { return null }
|
|
1894
|
+
}
|
|
1895
|
+
|
|
1874
1896
|
function resolveAssessmentDir(parsed, workspaceRoots) {
|
|
1897
|
+
const hosted = hostedCaptureWindow()
|
|
1898
|
+
if (hosted) return hosted.litmusDir
|
|
1875
1899
|
const sessionDirs = [
|
|
1876
1900
|
...(workspaceRoots || []),
|
|
1877
1901
|
...(parsed && typeof parsed.cwd === "string" && parsed.cwd ? [parsed.cwd] : []),
|
|
@@ -1881,7 +1905,10 @@ function resolveAssessmentDir(parsed, workspaceRoots) {
|
|
|
1881
1905
|
const hintDirs = trustExplicit
|
|
1882
1906
|
? [explicitAssessmentDir, ...sessionDirs]
|
|
1883
1907
|
: sessionDirs
|
|
1884
|
-
|
|
1908
|
+
const found = findLitmusDir(hintDirs)
|
|
1909
|
+
// Folder lookup must not resurrect an expired hosted window.
|
|
1910
|
+
if (found && readConfig(found)?.captureMode === "hosted-local") return null
|
|
1911
|
+
return found
|
|
1885
1912
|
}
|
|
1886
1913
|
|
|
1887
1914
|
async function main() {
|
|
@@ -1909,6 +1936,19 @@ async function main() {
|
|
|
1909
1936
|
const earlyRoots = parsed && Array.isArray(parsed.workspace_roots) ? parsed.workspace_roots : []
|
|
1910
1937
|
const earlyLitmusDir = resolveAssessmentDir(parsed, earlyRoots)
|
|
1911
1938
|
if (earlyLitmusDir && sessionOverMarked(earlyLitmusDir)) return
|
|
1939
|
+
const hostedAtStart = hostedCaptureWindow()
|
|
1940
|
+
// Bind occurrence time to the SAME receipt before potentially slow transcript
|
|
1941
|
+
// settling. Renewal during the read must not move this event past its grant.
|
|
1942
|
+
const hostedCapturedAt = hostedAtStart
|
|
1943
|
+
? hostedAtStart.serverTime + Date.now() - hostedAtStart.leaseResponseReceivedAt
|
|
1944
|
+
: null
|
|
1945
|
+
// Responses must have an observed prompt in THIS capture window. Do not
|
|
1946
|
+
// read/import a transcript for a conversation that predates setup.
|
|
1947
|
+
if (hostedAtStart && isResponseEvent(parsed)) {
|
|
1948
|
+
const id = parsed && (parsed.session_id || parsed.sessionId || parsed.conversation_id)
|
|
1949
|
+
const turn = currentTurnRecord(id)
|
|
1950
|
+
if (!turn || !turn.turnId || turn.ts < hostedAtStart.startedAt) return
|
|
1951
|
+
}
|
|
1912
1952
|
|
|
1913
1953
|
// ENG-2477: a capture SELF-TEST probe. `litmus init` (and `litmus doctor`)
|
|
1914
1954
|
// run this script the way the tool would — the tool's own payload shape, on
|
|
@@ -1999,6 +2039,7 @@ async function main() {
|
|
|
1999
2039
|
|
|
2000
2040
|
const litmusDir = resolveAssessmentDir(parsed, workspaceRoots)
|
|
2001
2041
|
if (!litmusDir) return
|
|
2042
|
+
if (hostedAtStart && hostedCaptureWindow()?.litmusDir !== hostedAtStart.litmusDir) return
|
|
2002
2043
|
if (litmusDir !== earlyLitmusDir && sessionOverMarked(litmusDir)) return
|
|
2003
2044
|
|
|
2004
2045
|
// Claim as LATE as possible — only once we know we have content and somewhere
|
|
@@ -2014,7 +2055,8 @@ async function main() {
|
|
|
2014
2055
|
}
|
|
2015
2056
|
}
|
|
2016
2057
|
|
|
2017
|
-
const
|
|
2058
|
+
const fullCursorPrompt = !responseEvent && effectiveTool === "cursor"
|
|
2059
|
+
const maxLength = fullCursorPrompt ? Infinity : responseEvent ? MAX_RESPONSE_LENGTH : MAX_PROMPT_LENGTH
|
|
2018
2060
|
const truncated = content.length > maxLength
|
|
2019
2061
|
? content.slice(0, maxLength) + "...[truncated]"
|
|
2020
2062
|
: content
|
|
@@ -2062,6 +2104,11 @@ async function main() {
|
|
|
2062
2104
|
// no second mechanism; and it survives hostd's `strip_credentials`, whose key
|
|
2063
2105
|
// list would have deleted anything spelled session/token/secret.
|
|
2064
2106
|
event.id = crypto.randomUUID()
|
|
2107
|
+
if (hostedAtStart) {
|
|
2108
|
+
event.capture_location = "local"
|
|
2109
|
+
event.capture_receipt = hostedAtStart.receipt
|
|
2110
|
+
event.ts = new Date(hostedCapturedAt).toISOString()
|
|
2111
|
+
}
|
|
2065
2112
|
if (sessionId) event.sessionId = sessionId
|
|
2066
2113
|
if (turnId) event.turnId = turnId
|
|
2067
2114
|
// ENG-2344: the files Cursor's `afterFileEdit` hook reported the agent
|
|
@@ -2088,12 +2135,13 @@ async function main() {
|
|
|
2088
2135
|
// hook and the drain lane above reuses the same idiom at a much tighter cap,
|
|
2089
2136
|
// where it fires easily. One helper, one convergence argument.
|
|
2090
2137
|
//
|
|
2091
|
-
//
|
|
2092
|
-
//
|
|
2093
|
-
//
|
|
2138
|
+
// Preserve complete Cursor prompts in both the file and upload lanes. Other
|
|
2139
|
+
// bodies keep their existing serialized budget; the server's size filter is
|
|
2140
|
+
// still the final storage bound.
|
|
2094
2141
|
const MAX_SERIALIZED_BYTES = 60000
|
|
2095
2142
|
const bodyField = responseEvent ? "text" : "prompt"
|
|
2096
|
-
trimEventToBytes(event, bodyField, MAX_SERIALIZED_BYTES)
|
|
2143
|
+
if (!fullCursorPrompt) trimEventToBytes(event, bodyField, MAX_SERIALIZED_BYTES)
|
|
2144
|
+
else if (hostedAtStart && !trimEventToBytes(event, bodyField, 6_010_000)) return
|
|
2097
2145
|
|
|
2098
2146
|
// Record that this turn's reply is captured, so the sibling `stop` hook
|
|
2099
2147
|
// doesn't record it a second time (IDE only — see the claim helpers).
|
|
@@ -2101,6 +2149,9 @@ async function main() {
|
|
|
2101
2149
|
markCursorResponseCaptured(cursorConversation)
|
|
2102
2150
|
}
|
|
2103
2151
|
|
|
2152
|
+
// Recheck after transcript reads/settling: teardown may have happened meanwhile.
|
|
2153
|
+
if (hostedAtStart && hostedCaptureWindow()?.litmusDir !== litmusDir) return
|
|
2154
|
+
|
|
2104
2155
|
// 1. Append to activity.jsonl (for submission ZIP)
|
|
2105
2156
|
const logPath = path.join(litmusDir, "activity.jsonl")
|
|
2106
2157
|
let logged = false
|
|
@@ -2125,7 +2176,12 @@ async function main() {
|
|
|
2125
2176
|
// cannot edit or delete it afterwards (ENG-1962). Additive — step 1 above
|
|
2126
2177
|
// stays the submission-zip path, so a container whose drain lane is down
|
|
2127
2178
|
// still grades exactly as it does today.
|
|
2128
|
-
emitToDrain(event, parsed && parsed.hook_event_name)
|
|
2179
|
+
if (!hostedAtStart) emitToDrain(event, parsed && parsed.hook_event_name)
|
|
2180
|
+
|
|
2181
|
+
// Hosted hooks only append to the private local outbox. The supervisor
|
|
2182
|
+
// batches uploads below the activity endpoint's rate limit and persists its
|
|
2183
|
+
// acknowledged cursor. Never spend one HTTP request for each agent call.
|
|
2184
|
+
if (hostedAtStart) return
|
|
2129
2185
|
|
|
2130
2186
|
// 2. Upload to the server. Awaited, bounded — see uploadEvent.
|
|
2131
2187
|
const config = readConfig(litmusDir)
|
|
@@ -2143,7 +2199,7 @@ async function main() {
|
|
|
2143
2199
|
// work — this is a courtesy, and it must never cost the prompt anything.
|
|
2144
2200
|
// Not on a self-test probe: init is about to start the tracker itself, and
|
|
2145
2201
|
// doctor has already dealt with it.
|
|
2146
|
-
if (!selftestNonce) maybeReviveWatcher(litmusDir, config)
|
|
2202
|
+
if (!selftestNonce && !hostedAtStart) maybeReviveWatcher(litmusDir, config)
|
|
2147
2203
|
|
|
2148
2204
|
// No explicit process.exit() — the event loop drains naturally once the upload
|
|
2149
2205
|
// has settled and its timers are cleared (the revival spawn is unref'd).
|
|
@@ -2151,6 +2207,7 @@ async function main() {
|
|
|
2151
2207
|
|
|
2152
2208
|
// Exported for unit tests only; every hook invocation runs this file directly.
|
|
2153
2209
|
module.exports = {
|
|
2210
|
+
hostedCaptureWindow,
|
|
2154
2211
|
nativeSessionPath,
|
|
2155
2212
|
watcherPresumedDead,
|
|
2156
2213
|
isFinalRefusal,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { InitMetadata } from "./schemas.js";
|
|
2
|
+
export declare const HOSTED_CAPTURE_DISCLOSURE_VERSION = "hosted_local_v1";
|
|
3
|
+
export declare const HOSTED_CAPTURE_DISCLOSURE = "During this assessment, Litmus records prompts and responses from supported AI agents on this computer, across all folders and projects, alongside activity captured on the Litmus workspace. The hiring company can review these conversations. Capture stops when the coding session ends; if this computer loses contact with Litmus, capture pauses within ten seconds. Browser AI, Copilot and unsupported tools are not covered. Restart any already running local AI tools after setup so they load the capture hooks.";
|
|
4
|
+
export declare const HOSTED_CAPTURE_FILE: string;
|
|
5
|
+
export declare function atomicPrivateJson(file: string, value: unknown): void;
|
|
6
|
+
export declare function captureLease(backendUrl: string, token: string, accept?: boolean): Promise<{
|
|
7
|
+
active: boolean;
|
|
8
|
+
leaseSeconds: number;
|
|
9
|
+
receipt?: string;
|
|
10
|
+
serverTime?: number;
|
|
11
|
+
receivedAt: number;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function acquireCaptureLock(lock: string): () => void;
|
|
14
|
+
/** OS-owned exclusion makes stale-file recovery a serialized operation.
|
|
15
|
+
* The loopback guard carries no protocol/data and is released by the OS on crash.
|
|
16
|
+
* A fixed per-lock port ensures contenders cannot bind independent guards.
|
|
17
|
+
*/
|
|
18
|
+
export declare function acquireCaptureSetupLock(lock: string): Promise<() => Promise<void>>;
|
|
19
|
+
export declare function askCaptureConsent(): Promise<string>;
|
|
20
|
+
export declare function startHostedCapture(meta: InitMetadata, token: string, apiBase: string): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=hosted-capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-capture.d.ts","sourceRoot":"","sources":["../../src/lib/hosted-capture.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAIhD,eAAO,MAAM,iCAAiC,oBAAoB,CAAA;AAClE,eAAO,MAAM,yBAAyB,kgBAAkgB,CAAA;AACxiB,eAAO,MAAM,mBAAmB,QAA4D,CAAA;AAC5F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAKpE;AACD,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CAAC,CAWjM;AACD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,IAAI,CA6B3D;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAgBxF;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAqBzD;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD1G"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { CLI_VERSION } from "./version.js";
|
|
2
|
+
import { createHash, randomUUID } from "crypto";
|
|
3
|
+
import { mkdirSync, readFileSync, writeFileSync, renameSync, existsSync, rmSync } from "fs";
|
|
4
|
+
import os from "os";
|
|
5
|
+
import path from "path";
|
|
6
|
+
import readline from "readline";
|
|
7
|
+
import tty from "tty";
|
|
8
|
+
import { createServer } from "net";
|
|
9
|
+
import { openSync, linkSync, unlinkSync, realpathSync } from "fs";
|
|
10
|
+
import { startTracker, waitForTrackerReady, isTrackerHealthy } from "./tracker.js";
|
|
11
|
+
import { setupAiTracking } from "../commands/init.js";
|
|
12
|
+
import { releaseAiTrackingForAssessment, readRegistrySnapshot } from "./ai-tracking.js";
|
|
13
|
+
import { retireAiCaptureForEndedSession, sessionOverMarked } from "./session-over.js";
|
|
14
|
+
export const HOSTED_CAPTURE_DISCLOSURE_VERSION = "hosted_local_v1";
|
|
15
|
+
export const HOSTED_CAPTURE_DISCLOSURE = "During this assessment, Litmus records prompts and responses from supported AI agents on this computer, across all folders and projects, alongside activity captured on the Litmus workspace. The hiring company can review these conversations. Capture stops when the coding session ends; if this computer loses contact with Litmus, capture pauses within ten seconds. Browser AI, Copilot and unsupported tools are not covered. Restart any already running local AI tools after setup so they load the capture hooks.";
|
|
16
|
+
export const HOSTED_CAPTURE_FILE = path.join(os.homedir(), ".litmus", "hosted-capture.json");
|
|
17
|
+
export function atomicPrivateJson(file, value) {
|
|
18
|
+
mkdirSync(path.dirname(file), { recursive: true, mode: 0o700 });
|
|
19
|
+
const temp = `${file}.${randomUUID()}.tmp`;
|
|
20
|
+
try {
|
|
21
|
+
writeFileSync(temp, JSON.stringify(value), { mode: 0o600, flag: "wx" });
|
|
22
|
+
renameSync(temp, file);
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
rmSync(temp, { force: true });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export async function captureLease(backendUrl, token, accept = false) {
|
|
29
|
+
const response = await fetch(`${backendUrl}/cli/capture-session${accept ? "/accept" : ""}`, {
|
|
30
|
+
method: accept ? "POST" : "GET", redirect: "error", headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json" },
|
|
31
|
+
...(accept ? { body: JSON.stringify({ disclosureVersion: HOSTED_CAPTURE_DISCLOSURE_VERSION }) } : {}),
|
|
32
|
+
signal: AbortSignal.timeout(4000),
|
|
33
|
+
});
|
|
34
|
+
if (!response.ok)
|
|
35
|
+
throw new Error(`Local capture authorization failed (${response.status})`);
|
|
36
|
+
const value = await response.json();
|
|
37
|
+
if (typeof value.active !== "boolean" || typeof value.leaseSeconds !== "number" || value.leaseSeconds < 0 || value.leaseSeconds > 10)
|
|
38
|
+
throw new Error("Invalid capture authorization");
|
|
39
|
+
if (value.active && (typeof value.receipt !== "string" || value.receipt.length > 2048 || typeof value.serverTime !== "number" || !Number.isFinite(value.serverTime)))
|
|
40
|
+
throw new Error("Missing local capture receipt");
|
|
41
|
+
return { active: value.active, leaseSeconds: value.leaseSeconds, receipt: value.receipt, serverTime: value.serverTime, receivedAt: Date.now() };
|
|
42
|
+
}
|
|
43
|
+
export function acquireCaptureLock(lock) {
|
|
44
|
+
const nonce = randomUUID();
|
|
45
|
+
const temp = `${lock}.${nonce}.tmp`;
|
|
46
|
+
writeFileSync(temp, JSON.stringify({ pid: process.pid, nonce }), { mode: 0o600, flag: "wx" });
|
|
47
|
+
try {
|
|
48
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
49
|
+
try {
|
|
50
|
+
// Publish a COMPLETE owner record atomically, including on Windows.
|
|
51
|
+
linkSync(temp, lock);
|
|
52
|
+
return () => {
|
|
53
|
+
try {
|
|
54
|
+
if (JSON.parse(readFileSync(lock, "utf8")).nonce === nonce)
|
|
55
|
+
unlinkSync(lock);
|
|
56
|
+
}
|
|
57
|
+
catch { /* replaced */ }
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (error.code !== "EEXIST")
|
|
62
|
+
throw error;
|
|
63
|
+
let owner;
|
|
64
|
+
try {
|
|
65
|
+
owner = JSON.parse(readFileSync(lock, "utf8"));
|
|
66
|
+
}
|
|
67
|
+
catch (readError) {
|
|
68
|
+
if (readError.code === "ENOENT")
|
|
69
|
+
continue;
|
|
70
|
+
throw new Error("Local capture setup has an invalid lock. Contact support.");
|
|
71
|
+
}
|
|
72
|
+
if (!Number.isInteger(owner.pid) || owner.pid <= 0 || typeof owner.nonce !== "string")
|
|
73
|
+
throw new Error("Invalid capture setup owner. Contact support.");
|
|
74
|
+
try {
|
|
75
|
+
process.kill(owner.pid, 0);
|
|
76
|
+
throw new Error("Local capture setup is already running. Retry connect.");
|
|
77
|
+
}
|
|
78
|
+
catch (probe) {
|
|
79
|
+
if (probe.code !== "ESRCH")
|
|
80
|
+
throw probe;
|
|
81
|
+
try {
|
|
82
|
+
if (JSON.parse(readFileSync(lock, "utf8")).nonce === owner.nonce)
|
|
83
|
+
unlinkSync(lock);
|
|
84
|
+
}
|
|
85
|
+
catch { /* another recoverer won */ }
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
throw new Error("Could not recover local capture setup. Retry connect.");
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
rmSync(temp, { force: true });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/** OS-owned exclusion makes stale-file recovery a serialized operation.
|
|
96
|
+
* The loopback guard carries no protocol/data and is released by the OS on crash.
|
|
97
|
+
* A fixed per-lock port ensures contenders cannot bind independent guards.
|
|
98
|
+
*/
|
|
99
|
+
export async function acquireCaptureSetupLock(lock) {
|
|
100
|
+
const port = 49152 + parseInt(createHash("sha256").update(path.join(realpathSync(path.dirname(lock)), path.basename(lock))).digest("hex").slice(0, 8), 16) % 16384;
|
|
101
|
+
const guard = createServer(socket => socket.destroy());
|
|
102
|
+
try {
|
|
103
|
+
await new Promise((resolve, reject) => {
|
|
104
|
+
guard.once("error", reject);
|
|
105
|
+
guard.listen({ host: "127.0.0.1", port, exclusive: true }, () => { guard.removeListener("error", reject); resolve(); });
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
throw new Error("Capture setup is already running, or its local coordination port is occupied. Retry after the other setup or application closes.");
|
|
110
|
+
}
|
|
111
|
+
let releaseFile;
|
|
112
|
+
try {
|
|
113
|
+
releaseFile = acquireCaptureLock(lock);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
await new Promise(resolve => guard.close(() => resolve()));
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
return async () => {
|
|
120
|
+
try {
|
|
121
|
+
releaseFile();
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
await new Promise(resolve => guard.close(() => resolve()));
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
export async function askCaptureConsent() {
|
|
129
|
+
let input = process.stdin;
|
|
130
|
+
let output = process.stdout;
|
|
131
|
+
let inputFd, outputFd;
|
|
132
|
+
try {
|
|
133
|
+
if (!process.stdin.isTTY) {
|
|
134
|
+
// stdin may already have carried `connect -`'s token. Consent is a separate
|
|
135
|
+
// interaction with the controlling terminal, never the token pipe.
|
|
136
|
+
inputFd = openSync(process.platform === "win32" ? "CONIN$" : "/dev/tty", "r");
|
|
137
|
+
input = new tty.ReadStream(inputFd);
|
|
138
|
+
outputFd = openSync(process.platform === "win32" ? "CONOUT$" : "/dev/tty", "w");
|
|
139
|
+
output = new tty.WriteStream(outputFd);
|
|
140
|
+
}
|
|
141
|
+
output.write(`\n${HOSTED_CAPTURE_DISCLOSURE}\n\n`);
|
|
142
|
+
const rl = readline.createInterface({ input, output, terminal: false });
|
|
143
|
+
return await new Promise(resolve => { rl.once("close", () => resolve("")); rl.question("Allow local AI capture for this assessment? [y/N] ", resolve); }).finally(() => rl.close());
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
throw new Error("Open an interactive terminal to review local AI capture, then retry litmus connect.");
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
if (inputFd !== undefined) {
|
|
150
|
+
input.destroy();
|
|
151
|
+
}
|
|
152
|
+
if (outputFd !== undefined) {
|
|
153
|
+
output.destroy();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
export async function startHostedCapture(meta, token, apiBase) {
|
|
158
|
+
const key = createHash("sha256").update(token).digest("hex");
|
|
159
|
+
const projectDir = path.join(os.homedir(), ".litmus", "hosted-sessions", key);
|
|
160
|
+
// One machine-wide window: never silently mix two candidates' conversations.
|
|
161
|
+
const lock = `${HOSTED_CAPTURE_FILE}.lock`;
|
|
162
|
+
mkdirSync(path.dirname(lock), { recursive: true, mode: 0o700 });
|
|
163
|
+
const releaseLock = await acquireCaptureSetupLock(lock);
|
|
164
|
+
try {
|
|
165
|
+
let prior = {};
|
|
166
|
+
try {
|
|
167
|
+
prior = JSON.parse(readFileSync(HOSTED_CAPTURE_FILE, "utf8"));
|
|
168
|
+
}
|
|
169
|
+
catch { /* none */ }
|
|
170
|
+
if (prior.projectDir && sessionOverMarked(prior.projectDir)) {
|
|
171
|
+
// Cleanup may have been interrupted after deleting old credentials but
|
|
172
|
+
// before removing the expired routing record. The ended marker survives.
|
|
173
|
+
releaseAiTrackingForAssessment(prior.projectDir);
|
|
174
|
+
rmSync(HOSTED_CAPTURE_FILE, { force: true });
|
|
175
|
+
prior = {};
|
|
176
|
+
}
|
|
177
|
+
if (prior.projectDir && prior.tokenKey !== key) {
|
|
178
|
+
const oldConfig = JSON.parse(readFileSync(path.join(prior.projectDir, ".litmus", "config.json"), "utf8"));
|
|
179
|
+
const oldLease = await captureLease(oldConfig.backendUrl, oldConfig.token);
|
|
180
|
+
if (oldLease.active)
|
|
181
|
+
throw new Error("Another assessment is active on this computer. Finish it before starting this one.");
|
|
182
|
+
// Confirmed server closure, not mere lease expiry, permits replacing a window.
|
|
183
|
+
retireAiCaptureForEndedSession(prior.projectDir, oldConfig.token);
|
|
184
|
+
rmSync(HOSTED_CAPTURE_FILE, { force: true });
|
|
185
|
+
}
|
|
186
|
+
const otherSessions = (readRegistrySnapshot() ?? []).filter(dir => dir !== projectDir && dir !== prior.projectDir);
|
|
187
|
+
if (otherSessions.length)
|
|
188
|
+
throw new Error("Another local assessment is registered on this computer. Finish its capture session before starting hosted local capture.");
|
|
189
|
+
if (prior.projectDir === projectDir && isTrackerHealthy(projectDir))
|
|
190
|
+
return;
|
|
191
|
+
const answer = await askCaptureConsent();
|
|
192
|
+
if (!/^y(es)?$/i.test(answer.trim()))
|
|
193
|
+
throw new Error("Local capture was not enabled. No local prompts have been recorded.");
|
|
194
|
+
const requestStarted = Date.now();
|
|
195
|
+
const lease = await captureLease(meta.backendUrl, token, true);
|
|
196
|
+
if (!lease.active)
|
|
197
|
+
throw new Error("The assessment coding session has ended.");
|
|
198
|
+
mkdirSync(path.join(projectDir, ".litmus"), { recursive: true, mode: 0o700 });
|
|
199
|
+
atomicPrivateJson(path.join(projectDir, ".litmus", "config.json"), { ...meta, apiBase, token, cliVersion: CLI_VERSION, captureMode: "hosted-local" });
|
|
200
|
+
// A setup failure from an earlier attempt is not a terminal session marker.
|
|
201
|
+
const endedMarker = path.join(projectDir, ".litmus", "session-over");
|
|
202
|
+
if (existsSync(endedMarker))
|
|
203
|
+
throw new Error("This local capture session is already retired");
|
|
204
|
+
// Only enable the routing window after consent is persisted by the server.
|
|
205
|
+
atomicPrivateJson(HOSTED_CAPTURE_FILE, { projectDir, tokenKey: key, startedAt: requestStarted, expiresAt: requestStarted + lease.leaseSeconds * 1000, receipt: lease.receipt, serverTime: lease.serverTime, leaseRequestStarted: requestStarted, leaseResponseReceivedAt: lease.receivedAt });
|
|
206
|
+
try {
|
|
207
|
+
const hooks = setupAiTracking(projectDir);
|
|
208
|
+
if (hooks.mode !== "user")
|
|
209
|
+
throw new Error("User-level AI hooks could not be installed");
|
|
210
|
+
startTracker(projectDir);
|
|
211
|
+
if (await waitForTrackerReady(projectDir) !== "ready")
|
|
212
|
+
throw new Error("Local capture watcher did not become ready");
|
|
213
|
+
const missing = [!hooks.codexInstalled && "Codex", !hooks.geminiInstalled && "Gemini"].filter(Boolean);
|
|
214
|
+
if (missing.length)
|
|
215
|
+
console.log(`Capture hooks could not be installed for: ${missing.join(", ")}. Use another supported tool or contact support.`);
|
|
216
|
+
console.log("Local hooks enabled for Claude Code, Codex, Cursor and Gemini where supported. Copilot and browser AI are not covered by this local window. Restart already running local AI tools to load their hooks.");
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
atomicPrivateJson(HOSTED_CAPTURE_FILE, { projectDir, tokenKey: key, expiresAt: 0 });
|
|
220
|
+
releaseAiTrackingForAssessment(projectDir);
|
|
221
|
+
rmSync(HOSTED_CAPTURE_FILE, { force: true });
|
|
222
|
+
throw error;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
finally {
|
|
226
|
+
await releaseLock();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=hosted-capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-capture.js","sourceRoot":"","sources":["../../src/lib/hosted-capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-watcher.d.ts","sourceRoot":"","sources":["../../src/lib/hosted-watcher.ts"],"names":[],"mappings":""}
|