@lannguyensi/harness 0.54.0 → 0.56.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/CHANGELOG.md +46 -0
- package/dist/cli/adopt/derive.js +1 -0
- package/dist/cli/adopt/derive.js.map +1 -1
- package/dist/cli/doctor/format.js +8 -0
- package/dist/cli/doctor/format.js.map +1 -1
- package/dist/cli/doctor/index.js +16 -0
- package/dist/cli/doctor/index.js.map +1 -1
- package/dist/cli/doctor/types.d.ts +16 -0
- package/dist/cli/doctor/types.js.map +1 -1
- package/dist/cli/doctor/ug-inflight.d.ts +35 -0
- package/dist/cli/doctor/ug-inflight.js +57 -0
- package/dist/cli/doctor/ug-inflight.js.map +1 -0
- package/dist/cli/gc/index.d.ts +2 -1
- package/dist/cli/gc/index.js +196 -9
- package/dist/cli/gc/index.js.map +1 -1
- package/dist/cli/index.js +42 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/pack/auto-approve-path.d.ts +11 -0
- package/dist/cli/pack/auto-approve-path.js +4 -2
- package/dist/cli/pack/auto-approve-path.js.map +1 -1
- package/dist/cli/pack/hook-bootstrap.d.ts +90 -0
- package/dist/cli/pack/hook-bootstrap.js +162 -0
- package/dist/cli/pack/hook-bootstrap.js.map +1 -1
- package/dist/cli/pack/hook-pre-tool-use.js +164 -10
- package/dist/cli/pack/hook-pre-tool-use.js.map +1 -1
- package/dist/cli/pack/hook-subagent-start.d.ts +21 -0
- package/dist/cli/pack/hook-subagent-start.js +71 -0
- package/dist/cli/pack/hook-subagent-start.js.map +1 -0
- package/dist/cli/pack/hook-subagent-stop.d.ts +19 -0
- package/dist/cli/pack/hook-subagent-stop.js +41 -0
- package/dist/cli/pack/hook-subagent-stop.js.map +1 -0
- package/dist/io/read-regular-file.d.ts +33 -2
- package/dist/io/read-regular-file.js +41 -8
- package/dist/io/read-regular-file.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.d.ts +34 -4
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +34 -3
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +2 -1
- package/dist/policy-packs/builtin/understanding-before-execution/index.js +9 -0
- package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.d.ts +135 -0
- package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js +619 -0
- package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js.map +1 -0
- package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js +25 -11
- package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution.d.ts +4 -4
- package/dist/policy-packs/builtin/understanding-before-execution.js +42 -1
- package/dist/policy-packs/builtin/understanding-before-execution.js.map +1 -1
- package/dist/runtime/read-only-bash.d.ts +33 -0
- package/dist/runtime/read-only-bash.js +291 -7
- package/dist/runtime/read-only-bash.js.map +1 -1
- package/dist/runtime/risk-classifier.js +16 -12
- package/dist/runtime/risk-classifier.js.map +1 -1
- package/dist/schema/hooks.d.ts +13 -13
- package/dist/schema/hooks.js +1 -0
- package/dist/schema/hooks.js.map +1 -1
- package/dist/schema/index.d.ts +24 -24
- package/dist/schema/policies.d.ts +19 -19
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-pre-tool-use.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-pre-tool-use.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook-pre-tool-use.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-pre-tool-use.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Manifest } from "../../schema/index.js";
|
|
2
|
+
import { type LoaderOptions } from "../loader.js";
|
|
3
|
+
export interface PackHookSubagentStartOptions extends LoaderOptions {
|
|
4
|
+
pack?: string;
|
|
5
|
+
generatedDir?: string;
|
|
6
|
+
stdin?: NodeJS.ReadableStream;
|
|
7
|
+
stderr?: NodeJS.WritableStream;
|
|
8
|
+
manifest?: Manifest;
|
|
9
|
+
/** Override the issue timestamp for deterministic tests. */
|
|
10
|
+
now?: Date;
|
|
11
|
+
}
|
|
12
|
+
export interface PackHookSubagentStartResult {
|
|
13
|
+
exitCode: number;
|
|
14
|
+
/** Was an in-flight record actually written? */
|
|
15
|
+
recordWritten: boolean;
|
|
16
|
+
sessionId: string | null;
|
|
17
|
+
agentId: string | null;
|
|
18
|
+
/** Diagnostic line emitted to stderr. */
|
|
19
|
+
diagnostic: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function runPackHookSubagentStartCli(opts?: PackHookSubagentStartOptions): Promise<PackHookSubagentStartResult>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// `harness pack hook subagent-start` — write an in-flight record for a
|
|
2
|
+
// newly-started Agent-tool subagent (docs/decisions/2026-08-27-ug-auto-
|
|
3
|
+
// mode-approval.md "TTL, cwd, and subagents").
|
|
4
|
+
//
|
|
5
|
+
// SubagentStart fires on the PARENT session's `session_id` (subagents
|
|
6
|
+
// share it, they never get one of their own); Claude Code additionally
|
|
7
|
+
// carries `agent_id` and `agent_type` on this event. This hook consults
|
|
8
|
+
// the same operator-approval authority the PreToolUse blocker does
|
|
9
|
+
// (`checkOperatorApprovalMarkers`) and, only when it matches, copies
|
|
10
|
+
// that approval into a signed in-flight record keyed by
|
|
11
|
+
// `(session_id, agent_id)` — see inflight-records.ts's module header
|
|
12
|
+
// for why this is a COPY of authority already granted, never a new
|
|
13
|
+
// grant. When the parent holds no valid approval at spawn time, nothing
|
|
14
|
+
// is written and the subagent gets no record to present later.
|
|
15
|
+
//
|
|
16
|
+
// Never blocks: this hook has no gating role of its own (a later slice
|
|
17
|
+
// teaches the PreToolUse blocker to consult the record it produces
|
|
18
|
+
// here). Every error and refusal path resolves to exit 0 + stderr
|
|
19
|
+
// diagnostic, mirroring every other hook in this pack.
|
|
20
|
+
import { checkOperatorApprovalMarkers, rejectMalformedAgentId, writeInflightRecord, } from "../../policy-packs/builtin/understanding-before-execution-runtime.js";
|
|
21
|
+
import { pickString, readStdin, resolveSubagentHookContext, } from "./hook-bootstrap.js";
|
|
22
|
+
const PACK_NAME = "understanding-before-execution";
|
|
23
|
+
const HOOK_LABEL = "harness pack hook: subagent-start";
|
|
24
|
+
function noop(diagnostic, stderr, sessionId = null, agentId = null) {
|
|
25
|
+
stderr.write(`${diagnostic}\n`);
|
|
26
|
+
return { exitCode: 0, recordWritten: false, sessionId, agentId, diagnostic };
|
|
27
|
+
}
|
|
28
|
+
export async function runPackHookSubagentStartCli(opts = {}) {
|
|
29
|
+
const stdin = opts.stdin ?? process.stdin;
|
|
30
|
+
const stderr = opts.stderr ?? process.stderr;
|
|
31
|
+
const packName = opts.pack ?? PACK_NAME;
|
|
32
|
+
const raw = await readStdin(stdin);
|
|
33
|
+
let event = {};
|
|
34
|
+
try {
|
|
35
|
+
event = JSON.parse(raw.trim() || "{}");
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return noop(`${HOOK_LABEL}: malformed event JSON, skipping`, stderr);
|
|
39
|
+
}
|
|
40
|
+
// Pause sentinel checked before anything else, ids resolved, then pack
|
|
41
|
+
// context resolved — same as every other hook in this pack.
|
|
42
|
+
const ctxResult = resolveSubagentHookContext(HOOK_LABEL, "subagent-start", packName, event, rejectMalformedAgentId, { ...opts, stderr });
|
|
43
|
+
if (!ctxResult.ok) {
|
|
44
|
+
return noop(ctxResult.diagnostic, stderr, ctxResult.sessionId, ctxResult.agentId);
|
|
45
|
+
}
|
|
46
|
+
const { sessionId, agentId, declared, generatedDir } = ctxResult.context;
|
|
47
|
+
const agentType = pickString(event.agent_type) ?? "unknown";
|
|
48
|
+
const approval = checkOperatorApprovalMarkers(generatedDir, sessionId, declared.config, stderr);
|
|
49
|
+
if (!approval.matched) {
|
|
50
|
+
const diagnostic = `${HOOK_LABEL}: parent session ${sessionId} holds no valid approval; no in-flight record for agent ${agentId}`;
|
|
51
|
+
stderr.write(`${diagnostic}\n`);
|
|
52
|
+
return { exitCode: 0, recordWritten: false, sessionId, agentId, diagnostic };
|
|
53
|
+
}
|
|
54
|
+
const writeOpts = {
|
|
55
|
+
generatedDir,
|
|
56
|
+
sessionId,
|
|
57
|
+
agentId,
|
|
58
|
+
agentType,
|
|
59
|
+
parent: approval,
|
|
60
|
+
};
|
|
61
|
+
if (opts.now)
|
|
62
|
+
writeOpts.now = opts.now;
|
|
63
|
+
const result = writeInflightRecord(writeOpts);
|
|
64
|
+
if (!result.ok) {
|
|
65
|
+
return noop(`${HOOK_LABEL}: writeInflightRecord failed for agent ${agentId} (${result.reason}: ${result.detail})`, stderr, sessionId, agentId);
|
|
66
|
+
}
|
|
67
|
+
const diagnostic = `${HOOK_LABEL}: wrote in-flight record for agent ${agentId} (parent=${approval.source})`;
|
|
68
|
+
stderr.write(`${diagnostic}\n`);
|
|
69
|
+
return { exitCode: 0, recordWritten: true, sessionId, agentId, diagnostic };
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=hook-subagent-start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-subagent-start.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-subagent-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Manifest } from "../../schema/index.js";
|
|
2
|
+
import { type LoaderOptions } from "../loader.js";
|
|
3
|
+
export interface PackHookSubagentStopOptions extends LoaderOptions {
|
|
4
|
+
pack?: string;
|
|
5
|
+
generatedDir?: string;
|
|
6
|
+
stdin?: NodeJS.ReadableStream;
|
|
7
|
+
stderr?: NodeJS.WritableStream;
|
|
8
|
+
manifest?: Manifest;
|
|
9
|
+
}
|
|
10
|
+
export interface PackHookSubagentStopResult {
|
|
11
|
+
exitCode: number;
|
|
12
|
+
/** Was clearInflightRecord actually invoked (ids valid, pack enabled)? */
|
|
13
|
+
cleared: boolean;
|
|
14
|
+
sessionId: string | null;
|
|
15
|
+
agentId: string | null;
|
|
16
|
+
/** Diagnostic line emitted to stderr. */
|
|
17
|
+
diagnostic: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function runPackHookSubagentStopCli(opts?: PackHookSubagentStopOptions): Promise<PackHookSubagentStopResult>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// `harness pack hook subagent-stop` — remove the in-flight record a
|
|
2
|
+
// `subagent-start` invocation wrote for this `(session_id, agent_id)`
|
|
3
|
+
// pair (docs/decisions/2026-08-27-ug-auto-mode-approval.md "TTL, cwd,
|
|
4
|
+
// and subagents"). The subagent has finished; its copy of the parent's
|
|
5
|
+
// approval no longer has anything to authorize.
|
|
6
|
+
//
|
|
7
|
+
// Idempotent and never blocks: a missing record (never written, already
|
|
8
|
+
// cleared, or the parent never had approval to copy) is a no-op, same
|
|
9
|
+
// as `clearInflightRecord` itself. Every path resolves to exit 0 +
|
|
10
|
+
// stderr diagnostic.
|
|
11
|
+
import { clearInflightRecord, rejectMalformedAgentId, } from "../../policy-packs/builtin/understanding-before-execution-runtime.js";
|
|
12
|
+
import { readStdin, resolveSubagentHookContext } from "./hook-bootstrap.js";
|
|
13
|
+
const PACK_NAME = "understanding-before-execution";
|
|
14
|
+
const HOOK_LABEL = "harness pack hook: subagent-stop";
|
|
15
|
+
function noop(diagnostic, stderr, sessionId = null, agentId = null) {
|
|
16
|
+
stderr.write(`${diagnostic}\n`);
|
|
17
|
+
return { exitCode: 0, cleared: false, sessionId, agentId, diagnostic };
|
|
18
|
+
}
|
|
19
|
+
export async function runPackHookSubagentStopCli(opts = {}) {
|
|
20
|
+
const stdin = opts.stdin ?? process.stdin;
|
|
21
|
+
const stderr = opts.stderr ?? process.stderr;
|
|
22
|
+
const packName = opts.pack ?? PACK_NAME;
|
|
23
|
+
const raw = await readStdin(stdin);
|
|
24
|
+
let event = {};
|
|
25
|
+
try {
|
|
26
|
+
event = JSON.parse(raw.trim() || "{}");
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return noop(`${HOOK_LABEL}: malformed event JSON, skipping`, stderr);
|
|
30
|
+
}
|
|
31
|
+
const ctxResult = resolveSubagentHookContext(HOOK_LABEL, "subagent-stop", packName, event, rejectMalformedAgentId, { ...opts, stderr });
|
|
32
|
+
if (!ctxResult.ok) {
|
|
33
|
+
return noop(ctxResult.diagnostic, stderr, ctxResult.sessionId, ctxResult.agentId);
|
|
34
|
+
}
|
|
35
|
+
const { sessionId, agentId, generatedDir } = ctxResult.context;
|
|
36
|
+
clearInflightRecord(generatedDir, sessionId, agentId);
|
|
37
|
+
const diagnostic = `${HOOK_LABEL}: cleared in-flight record for agent ${agentId}`;
|
|
38
|
+
stderr.write(`${diagnostic}\n`);
|
|
39
|
+
return { exitCode: 0, cleared: true, sessionId, agentId, diagnostic };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=hook-subagent-stop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-subagent-stop.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-subagent-stop.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,sEAAsE;AACtE,sEAAsE;AACtE,uEAAuE;AACvE,gDAAgD;AAChD,EAAE;AACF,wEAAwE;AACxE,sEAAsE;AACtE,mEAAmE;AACnE,qBAAqB;AAErB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,sEAAsE,CAAC;AAG9E,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,SAAS,GAAG,gCAAgC,CAAC;AACnD,MAAM,UAAU,GAAG,kCAAkC,CAAC;AAyBtD,SAAS,IAAI,CACX,UAAkB,EAClB,MAA6B,EAC7B,YAA2B,IAAI,EAC/B,UAAyB,IAAI;IAE7B,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;IAChC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAoC,EAAE;IAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;IAExC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,KAAK,GAA0B,EAAE,CAAC;IACtC,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAA0B,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,GAAG,UAAU,kCAAkC,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,SAAS,GAAG,0BAA0B,CAC1C,UAAU,EACV,eAAe,EACf,QAAQ,EACR,KAAK,EACL,sBAAsB,EACtB,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CACpB,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC;IAE/D,mBAAmB,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,GAAG,UAAU,wCAAwC,OAAO,EAAE,CAAC;IAClF,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;IAChC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACxE,CAAC"}
|
|
@@ -16,6 +16,18 @@ export type RegularFileRead = {
|
|
|
16
16
|
} | {
|
|
17
17
|
kind: "unreadable";
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Result of a stat-only existence probe (see `probePathPresence`). No
|
|
21
|
+
* `content`: this never reads the file, only classifies what lstat sees at
|
|
22
|
+
* the path. `present` covers a symlink, a directory, or any other non-regular
|
|
23
|
+
* node the caller wants to treat as "something is there" without yet reading
|
|
24
|
+
* it or deciding whether it is a valid regular file.
|
|
25
|
+
*/
|
|
26
|
+
export type PathPresence = {
|
|
27
|
+
kind: "missing";
|
|
28
|
+
} | {
|
|
29
|
+
kind: "present";
|
|
30
|
+
};
|
|
19
31
|
/**
|
|
20
32
|
* Read a marker/verdict file as utf8, refusing symlinks and non-regular
|
|
21
33
|
* files. lstat (NOT stat): defense-in-depth against a symlink at the marker
|
|
@@ -26,7 +38,26 @@ export type RegularFileRead = {
|
|
|
26
38
|
* (agent-tasks/d39f160e).
|
|
27
39
|
*
|
|
28
40
|
* This is THE shared implementation for every gate-marker read; a future
|
|
29
|
-
* defensive fix
|
|
30
|
-
*
|
|
41
|
+
* defensive fix belongs in `lstatOrNull`, above, and nowhere else. Its
|
|
42
|
+
* lighter-weight sibling `probePathPresence`, below, shares this file for
|
|
43
|
+
* the same reason: both stand on the same `lstatOrNull` helper, and a
|
|
44
|
+
* caller that only needs to know "is anything there" before deciding
|
|
45
|
+
* whether to pay for the full read (e.g. `verifyDelegation`'s
|
|
46
|
+
* existence-before-path-hash check in
|
|
47
|
+
* `src/policy-packs/builtin/understanding-before-execution/delegation-markers.ts`)
|
|
48
|
+
* gets that from here instead of hand-rolling its own `lstatSync` try/catch.
|
|
31
49
|
*/
|
|
32
50
|
export declare function readRegularFileRejectingSymlink(filePath: string): RegularFileRead;
|
|
51
|
+
/**
|
|
52
|
+
* Stat-only existence probe: "is anything there", nothing more. Uses the
|
|
53
|
+
* same `lstatOrNull` helper (not `stat`) as `readRegularFileRejectingSymlink`
|
|
54
|
+
* so a symlink or a directory answers `present`, not `missing`; this probe
|
|
55
|
+
* cannot and does not classify WHAT is there (regular file, symlink,
|
|
56
|
+
* directory), only whether lstat can see anything at all. A path lstat
|
|
57
|
+
* cannot reach for any reason (absent, or unreachable: `EACCES`, `ENOTDIR`,
|
|
58
|
+
* ...) comes back `missing`; lstat cannot distinguish those cases, so
|
|
59
|
+
* neither does this probe. Callers that need the file-type distinction
|
|
60
|
+
* (symlink vs directory vs regular) read the file instead, through
|
|
61
|
+
* `readRegularFileRejectingSymlink`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function probePathPresence(filePath: string): PathPresence;
|
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
|
+
/**
|
|
3
|
+
* The single `fs.lstatSync` call both exports below stand on. Returns `null`
|
|
4
|
+
* on any lstat failure (absent path, or unreachable for another reason:
|
|
5
|
+
* `EACCES`, `ENOTDIR`, ...); lstat cannot distinguish those cases from each
|
|
6
|
+
* other, so neither export tries to. A future defensive fix here (e.g.
|
|
7
|
+
* closing the lstat/read race with `O_NOFOLLOW`, `ENOTDIR` handling) lands in
|
|
8
|
+
* this one place and is inherited by both callers.
|
|
9
|
+
*/
|
|
10
|
+
function lstatOrNull(filePath) {
|
|
11
|
+
try {
|
|
12
|
+
return fs.lstatSync(filePath);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
2
18
|
/**
|
|
3
19
|
* Read a marker/verdict file as utf8, refusing symlinks and non-regular
|
|
4
20
|
* files. lstat (NOT stat): defense-in-depth against a symlink at the marker
|
|
@@ -9,17 +25,19 @@ import * as fs from "node:fs";
|
|
|
9
25
|
* (agent-tasks/d39f160e).
|
|
10
26
|
*
|
|
11
27
|
* This is THE shared implementation for every gate-marker read; a future
|
|
12
|
-
* defensive fix
|
|
13
|
-
*
|
|
28
|
+
* defensive fix belongs in `lstatOrNull`, above, and nowhere else. Its
|
|
29
|
+
* lighter-weight sibling `probePathPresence`, below, shares this file for
|
|
30
|
+
* the same reason: both stand on the same `lstatOrNull` helper, and a
|
|
31
|
+
* caller that only needs to know "is anything there" before deciding
|
|
32
|
+
* whether to pay for the full read (e.g. `verifyDelegation`'s
|
|
33
|
+
* existence-before-path-hash check in
|
|
34
|
+
* `src/policy-packs/builtin/understanding-before-execution/delegation-markers.ts`)
|
|
35
|
+
* gets that from here instead of hand-rolling its own `lstatSync` try/catch.
|
|
14
36
|
*/
|
|
15
37
|
export function readRegularFileRejectingSymlink(filePath) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
stat = fs.lstatSync(filePath);
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
38
|
+
const stat = lstatOrNull(filePath);
|
|
39
|
+
if (stat === null)
|
|
21
40
|
return { kind: "missing" };
|
|
22
|
-
}
|
|
23
41
|
if (stat.isSymbolicLink())
|
|
24
42
|
return { kind: "symlink" };
|
|
25
43
|
if (!stat.isFile())
|
|
@@ -31,4 +49,19 @@ export function readRegularFileRejectingSymlink(filePath) {
|
|
|
31
49
|
return { kind: "unreadable" };
|
|
32
50
|
}
|
|
33
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Stat-only existence probe: "is anything there", nothing more. Uses the
|
|
54
|
+
* same `lstatOrNull` helper (not `stat`) as `readRegularFileRejectingSymlink`
|
|
55
|
+
* so a symlink or a directory answers `present`, not `missing`; this probe
|
|
56
|
+
* cannot and does not classify WHAT is there (regular file, symlink,
|
|
57
|
+
* directory), only whether lstat can see anything at all. A path lstat
|
|
58
|
+
* cannot reach for any reason (absent, or unreachable: `EACCES`, `ENOTDIR`,
|
|
59
|
+
* ...) comes back `missing`; lstat cannot distinguish those cases, so
|
|
60
|
+
* neither does this probe. Callers that need the file-type distinction
|
|
61
|
+
* (symlink vs directory vs regular) read the file instead, through
|
|
62
|
+
* `readRegularFileRejectingSymlink`.
|
|
63
|
+
*/
|
|
64
|
+
export function probePathPresence(filePath) {
|
|
65
|
+
return lstatOrNull(filePath) === null ? { kind: "missing" } : { kind: "present" };
|
|
66
|
+
}
|
|
34
67
|
//# sourceMappingURL=read-regular-file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-regular-file.js","sourceRoot":"","sources":["../../src/io/read-regular-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"read-regular-file.js","sourceRoot":"","sources":["../../src/io/read-regular-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAwB9B;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,+BAA+B,CAAC,QAAgB;IAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC9C,IAAI,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACnD,IAAI,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACpF,CAAC"}
|
|
@@ -203,9 +203,37 @@ export type DelegationRefusalReason =
|
|
|
203
203
|
| "unparseable" | "expired" | "cwd_mismatch" | "task_mismatch"
|
|
204
204
|
/** Binds neither a cwd nor a task, so it would authorize the child anywhere, for anything. */
|
|
205
205
|
| "no_binding"
|
|
206
|
-
/**
|
|
206
|
+
/**
|
|
207
|
+
* Fallback shape: a stat-only existence probe (`probePathPresence`,
|
|
208
|
+
* `lstat` under the hood) found nothing at the launcher-supplied path.
|
|
209
|
+
* Covers both a genuinely absent path and one lstat cannot reach for any
|
|
210
|
+
* other reason (e.g. EACCES, ENOTDIR): lstat cannot distinguish "nothing
|
|
211
|
+
* is there" from "something is there but unreachable to us", so this
|
|
212
|
+
* reason does not claim to either. A symlink or a directory sitting there
|
|
213
|
+
* IS something lstat can see, so it is not this reason: verification
|
|
214
|
+
* continues past the existence probe. From there a RESOLVABLE symlink is
|
|
215
|
+
* normally caught one step later, at the path-hash comparison
|
|
216
|
+
* (`hashDelegationCwd` resolves it through `realpathSync`, which disagrees
|
|
217
|
+
* with the bind-time hash taken before anything existed at that path), and
|
|
218
|
+
* lands on `report_path_mismatch`; only a DANGLING or looping symlink (or
|
|
219
|
+
* a directory) reaches the full read and lands on `report_content_mismatch`
|
|
220
|
+
* once it cannot produce matching bytes. Checked BEFORE the path hash, so
|
|
221
|
+
* a symlinked temp root (where the missing-path fallback of
|
|
222
|
+
* `hashDelegationCwd` can disagree with the write-time realpath) never
|
|
223
|
+
* turns a plain "the file is gone" into a `report_path_mismatch`. This
|
|
224
|
+
* existence-first order also decides the case where a delegation binds a
|
|
225
|
+
* report path but no `reportContentHash` (a malformed half-binding
|
|
226
|
+
* `writeDelegationMarker` itself refuses to produce, but a hand-signed
|
|
227
|
+
* marker can still carry): an absent file at that path is still
|
|
228
|
+
* `report_missing`, not `report_content_mismatch`, because existence is
|
|
229
|
+
* checked first regardless of what the rest of the binding contains. The
|
|
230
|
+
* mirror case (no report path offered at all) has nothing to lstat and
|
|
231
|
+
* stays `report_path_mismatch`.
|
|
232
|
+
*/
|
|
233
|
+
| "report_missing"
|
|
234
|
+
/** Fallback shape: the launcher report is not at the path the parent signed (including when no report path was offered at all). */
|
|
207
235
|
| "report_path_mismatch"
|
|
208
|
-
/** Fallback shape: the launcher report's content is not what the parent signed (including a report that cannot be read). */
|
|
236
|
+
/** Fallback shape: the launcher report's content is not what the parent signed (including a report that exists but is a symlink, a directory, or otherwise cannot be read as regular file bytes). */
|
|
209
237
|
| "report_content_mismatch";
|
|
210
238
|
export type DelegationVerification = {
|
|
211
239
|
ok: true;
|
|
@@ -252,8 +280,10 @@ export interface VerifyDelegationOptions {
|
|
|
252
280
|
* 5. it has not expired,
|
|
253
281
|
* 6. the bound cwd hash-matches the caller's cwd,
|
|
254
282
|
* 7. the bound task equals the caller's task,
|
|
255
|
-
* 8. in the fallback shape, the launcher report
|
|
256
|
-
* AND hashes to the bound content
|
|
283
|
+
* 8. in the fallback shape, the launcher report EXISTS at the offered
|
|
284
|
+
* path, sits at the bound path, AND hashes to the bound content
|
|
285
|
+
* (in that order: existence before the path hash, so a missing
|
|
286
|
+
* file is always `report_missing`, never `report_path_mismatch`).
|
|
257
287
|
*
|
|
258
288
|
* Reads only `.delegations/`; an artifact in `.approvals/` is `missing`
|
|
259
289
|
* here, whatever it contains.
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
import * as fs from "node:fs";
|
|
49
49
|
import * as path from "node:path";
|
|
50
50
|
import { atomicWriteFile } from "../../../io/atomic-write.js";
|
|
51
|
-
import { readRegularFileRejectingSymlink } from "../../../io/read-regular-file.js";
|
|
51
|
+
import { probePathPresence, readRegularFileRejectingSymlink, } from "../../../io/read-regular-file.js";
|
|
52
52
|
import { safeJsonParse } from "../../../io/safe-json-parse.js";
|
|
53
53
|
import { sha256Hex, signMarker, signingKeyExists, signingKeyPathFor, verifyMarkerSignature, } from "../../../runtime/approval-signing.js";
|
|
54
54
|
import { rejectMalformedSessionId } from "../../../runtime/reject-malformed-session-id.js";
|
|
@@ -462,8 +462,10 @@ export function writeDelegationMarker(opts) {
|
|
|
462
462
|
* 5. it has not expired,
|
|
463
463
|
* 6. the bound cwd hash-matches the caller's cwd,
|
|
464
464
|
* 7. the bound task equals the caller's task,
|
|
465
|
-
* 8. in the fallback shape, the launcher report
|
|
466
|
-
* AND hashes to the bound content
|
|
465
|
+
* 8. in the fallback shape, the launcher report EXISTS at the offered
|
|
466
|
+
* path, sits at the bound path, AND hashes to the bound content
|
|
467
|
+
* (in that order: existence before the path hash, so a missing
|
|
468
|
+
* file is always `report_missing`, never `report_path_mismatch`).
|
|
467
469
|
*
|
|
468
470
|
* Reads only `.delegations/`; an artifact in `.approvals/` is `missing`
|
|
469
471
|
* here, whatever it contains.
|
|
@@ -637,6 +639,30 @@ export function verifyDelegation(opts) {
|
|
|
637
639
|
detail: `delegation at ${filePath} binds a launcher-supplied report but no report path was offered`,
|
|
638
640
|
};
|
|
639
641
|
}
|
|
642
|
+
// Existence, BEFORE the path hash: `hashDelegationCwd` falls back to
|
|
643
|
+
// `path.resolve` for a path that does not exist, and under a
|
|
644
|
+
// symlinked temp root (macOS `os.tmpdir()`) that fallback can
|
|
645
|
+
// disagree with the write-time `realpathSync`, which would otherwise
|
|
646
|
+
// surface a plain "the file is gone" as `report_path_mismatch`
|
|
647
|
+
// instead of naming what actually happened. `probePathPresence`
|
|
648
|
+
// (shared home: `src/io/read-regular-file.ts`, same `lstatSync` as
|
|
649
|
+
// `readRegularFileRejectingSymlink` below) is a cheap stat-only probe,
|
|
650
|
+
// not the full read: it only asks "is anything there", so the ok path
|
|
651
|
+
// still reads the file's bytes exactly once, below, after the path
|
|
652
|
+
// hash and the content-hash presence have both already passed. A
|
|
653
|
+
// symlink or a directory here answers `present` and falls through to
|
|
654
|
+
// the path/content checks: a resolvable symlink is normally caught at
|
|
655
|
+
// the next step (`report_path_mismatch`); a dangling symlink or a
|
|
656
|
+
// directory reaches the full read and fails there instead
|
|
657
|
+
// (`report_content_mismatch`) once it cannot produce matching bytes.
|
|
658
|
+
// It is deliberately not treated as missing.
|
|
659
|
+
if (probePathPresence(opts.launcherReportPath).kind === "missing") {
|
|
660
|
+
return {
|
|
661
|
+
ok: false,
|
|
662
|
+
reason: "report_missing",
|
|
663
|
+
detail: `delegation at ${filePath} binds a launcher-supplied report but nothing could be stat'ed at ${opts.launcherReportPath} (absent, or not reachable: EACCES, ENOTDIR)`,
|
|
664
|
+
};
|
|
665
|
+
}
|
|
640
666
|
const actualPathHash = hashDelegationCwd(opts.launcherReportPath);
|
|
641
667
|
if (actualPathHash !== reportPathHash) {
|
|
642
668
|
return {
|
|
@@ -653,6 +679,11 @@ export function verifyDelegation(opts) {
|
|
|
653
679
|
detail: `delegation at ${filePath} carries a report path binding but no reportContentHash to check the file against`,
|
|
654
680
|
};
|
|
655
681
|
}
|
|
682
|
+
// The single full read of the launcher report on the ok path: done
|
|
683
|
+
// only now, after the path hash and the content-hash presence have
|
|
684
|
+
// both already passed, so the bytes hashed below are the bytes
|
|
685
|
+
// returned to the caller in `reportContent` (no second read, no
|
|
686
|
+
// second trust decision on a file the child does not control).
|
|
656
687
|
const reportRead = readRegularFileRejectingSymlink(opts.launcherReportPath);
|
|
657
688
|
if (reportRead.kind !== "ok") {
|
|
658
689
|
return {
|