@lannguyensi/harness 0.43.0 → 0.44.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 +35 -0
- package/dist/cli/dry-run.js +18 -12
- package/dist/cli/dry-run.js.map +1 -1
- package/dist/cli/index.js +4 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/templates.d.ts +1 -1
- package/dist/cli/init/templates.js +6 -4
- package/dist/cli/init/templates.js.map +1 -1
- package/dist/cli/pack/hook-post-merge-gate.js +43 -25
- package/dist/cli/pack/hook-post-merge-gate.js.map +1 -1
- package/dist/cli/policy/intercept.js +168 -40
- package/dist/cli/policy/intercept.js.map +1 -1
- package/dist/policy-packs/builtin/post-merge-gate-runtime.d.ts +90 -10
- package/dist/policy-packs/builtin/post-merge-gate-runtime.js +112 -16
- package/dist/policy-packs/builtin/post-merge-gate-runtime.js.map +1 -1
- package/dist/policy-packs/builtin/post-merge-gate.js +39 -22
- package/dist/policy-packs/builtin/post-merge-gate.js.map +1 -1
- package/dist/policy-packs/builtin/solution-acceptance-runtime.d.ts +13 -0
- package/dist/policy-packs/builtin/solution-acceptance-runtime.js +14 -1
- package/dist/policy-packs/builtin/solution-acceptance-runtime.js.map +1 -1
- package/dist/runtime/command-normalize.d.ts +317 -4
- package/dist/runtime/command-normalize.js +741 -35
- package/dist/runtime/command-normalize.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/intercept.d.ts +171 -3
- package/dist/runtime/intercept.js +422 -42
- package/dist/runtime/intercept.js.map +1 -1
- package/dist/runtime/read-only-bash.js +58 -7
- package/dist/runtime/read-only-bash.js.map +1 -1
- package/dist/runtime/shell-word.d.ts +21 -0
- package/dist/runtime/shell-word.js +242 -0
- package/dist/runtime/shell-word.js.map +1 -0
- package/package.json +3 -1
|
@@ -10,7 +10,8 @@ import * as path from "node:path";
|
|
|
10
10
|
import { intercept, recordPolicyDecisionOnSession, resolveGitContext, resolveKubeContext, } from "../../runtime/index.js";
|
|
11
11
|
import { resolveGeneratedDir, writePendingApproval } from "../../runtime/pending-approval.js";
|
|
12
12
|
import { parseBashPrefix } from "../../runtime/bash-prefix-parse.js";
|
|
13
|
-
import { MAX_NORMALIZE_LENGTH, normalizeCommand, } from "../../runtime/command-normalize.js";
|
|
13
|
+
import { MAX_NORMALIZE_LENGTH, normalizeCommand, normalizeCommandAmpAware, segmentViewOf, } from "../../runtime/command-normalize.js";
|
|
14
|
+
import { extractShellCommand, SHELL_ALIASES } from "../../runtime/tool-name-aliases.js";
|
|
14
15
|
import { loadManifest } from "../loader.js";
|
|
15
16
|
import { checkPauseFromLoader } from "../pause-check.js";
|
|
16
17
|
async function readStdin(stream) {
|
|
@@ -92,11 +93,13 @@ function readBashCommand(input) {
|
|
|
92
93
|
const cmd = input.command;
|
|
93
94
|
return typeof cmd === "string" && cmd.length > 0 ? cmd : null;
|
|
94
95
|
}
|
|
96
|
+
// Derived from `SHELL_ALIASES` rather than hand-copying its members (fix
|
|
97
|
+
// round 2): `tool-name-aliases.ts`'s own header warns against the copy,
|
|
98
|
+
// and since fix round 1 the precompute-matches-matcher argument above
|
|
99
|
+
// depends on this set and the alias expansion agreeing. Deriving it means
|
|
100
|
+
// they cannot drift apart.
|
|
95
101
|
function isCodexShellTool(toolName) {
|
|
96
|
-
return
|
|
97
|
-
toolName === "shell" ||
|
|
98
|
-
toolName === "exec_command" ||
|
|
99
|
-
toolName === "functions.exec_command");
|
|
102
|
+
return typeof toolName === "string" && SHELL_ALIASES.includes(toolName);
|
|
100
103
|
}
|
|
101
104
|
function extractPerCallCwd(input) {
|
|
102
105
|
if (!input || typeof input !== "object" || Array.isArray(input))
|
|
@@ -303,45 +306,166 @@ export async function runInterceptCli(opts = {}) {
|
|
|
303
306
|
// literal `preflight:`. An explicit env var still wins: it is the
|
|
304
307
|
// operator's deliberate override of the derived value.
|
|
305
308
|
//
|
|
306
|
-
//
|
|
307
|
-
//
|
|
308
|
-
//
|
|
309
|
-
//
|
|
310
|
-
//
|
|
311
|
-
//
|
|
312
|
-
//
|
|
313
|
-
//
|
|
314
|
-
//
|
|
315
|
-
//
|
|
316
|
-
//
|
|
317
|
-
//
|
|
318
|
-
//
|
|
319
|
-
//
|
|
320
|
-
//
|
|
321
|
-
//
|
|
322
|
-
//
|
|
323
|
-
//
|
|
324
|
-
//
|
|
325
|
-
//
|
|
326
|
-
//
|
|
309
|
+
// `cwdGitContext` below is the DEFAULT / FALLBACK builtins basis, not
|
|
310
|
+
// the only one used anymore (task `98ad072f`, T-003). A command that
|
|
311
|
+
// explicitly names a different repository (`git -C <B>`, `env -C <B>`,
|
|
312
|
+
// a leading `cd <B> &&`) still resolves `builtins.REPO`/`.BRANCH` (and
|
|
313
|
+
// `currentHeadSha`, below) from THIS cwd for the majority of policies —
|
|
314
|
+
// any policy whose `requires:` doesn't reference `${REPO}`/`${BRANCH}`/
|
|
315
|
+
// `at_head` stays exactly on this cwd-only path, as does any policy
|
|
316
|
+
// whose own trigger-satisfying segment names no foreign target. Only a
|
|
317
|
+
// MATCHED policy that (a) uses `${REPO}`/`${BRANCH}`/`at_head` and (b)
|
|
318
|
+
// whose own `bash_match`-satisfying segment names a different,
|
|
319
|
+
// resolvable git repository gets a per-policy override — resolved
|
|
320
|
+
// lazily, inside `intercept()`, from the `commandSegments` view threaded
|
|
321
|
+
// below, never from this `cwdGitContext`. A prior attempt (run
|
|
322
|
+
// `2026-07-27-gate-target-repo-resolution`) tried a single global
|
|
323
|
+
// `targetDir` per event instead and was removed before shipping: three
|
|
324
|
+
// consecutive review rounds each found a different way one event-wide
|
|
325
|
+
// target leaked into the wrong evaluation (Risk Gate risk
|
|
326
|
+
// declassification; a push-gate multi-invocation fail-open; a non-git
|
|
327
|
+
// gated verb sharing a chain with a targeted git call). This
|
|
328
|
+
// `cwdGitContext` variable, and the `builtins` object built from it
|
|
329
|
+
// below, remain exactly what they were before this task — the resolved
|
|
330
|
+
// fallback every policy without a foreign attribution still uses,
|
|
331
|
+
// including the Risk Gate's own `resolverGit` further down, which
|
|
332
|
+
// this task does not touch at all.
|
|
327
333
|
const cwd = resolvePolicyCwd(event, opts.codexCommandCwd);
|
|
328
334
|
const cwdGitContext = resolveGitContext(cwd);
|
|
329
|
-
// Computed once here (not per-policy) so `intercept()` below can
|
|
330
|
-
//
|
|
331
|
-
//
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
335
|
+
// Computed once here (not per-policy) so `intercept()` below can thread
|
|
336
|
+
// the SAME `NormalizedCommand` into every `bash_match` trigger check
|
|
337
|
+
// instead of each one recomputing it.
|
|
338
|
+
//
|
|
339
|
+
// Fix round 1, finding F4: derive this from `extractShellCommand(event)`
|
|
340
|
+
// — the SAME function `policyMatchesEvent`'s `bash_match` branch itself
|
|
341
|
+
// calls (`src/runtime/tool-name-aliases.ts`) — instead of the narrower
|
|
342
|
+
// `event.tool_name === "Bash"` + `readBashCommand(event.tool_input)` pair
|
|
343
|
+
// this used before, which only ever looked at `tool_input.command`. A
|
|
344
|
+
// Codex shell event (`tool_name: "shell"` / `"exec_command"` /
|
|
345
|
+
// `"functions.exec_command"`, which `expandToolNameAliases` maps onto
|
|
346
|
+
// `match: "Bash"` policies) commonly carries its command under
|
|
347
|
+
// `raw_input`/`input` rather than `tool_input`, or under a `cmd` key —
|
|
348
|
+
// `extractShellCommand` reads all of those, `readBashCommand` read none
|
|
349
|
+
// of them. Before this fix such an event still reached the `bash_match`
|
|
350
|
+
// branch (via alias expansion) but with no precomputed value, so
|
|
351
|
+
// `policyMatchesEvent`'s per-policy fallback ran BOTH normalisation
|
|
352
|
+
// passes once PER MATCHING POLICY instead of once per event.
|
|
353
|
+
// `isCodexShellTool` scopes the precompute to exactly the tool-name set
|
|
354
|
+
// `SHELL_ALIASES` expands (Bash plus the three Codex shell aliases), so
|
|
355
|
+
// this does not start normalising unrelated tool calls that merely
|
|
356
|
+
// happen to carry a `command`/`cmd`-named argument for some other
|
|
357
|
+
// purpose.
|
|
358
|
+
//
|
|
359
|
+
// Fix round 2: that set is NOT, as this comment previously claimed, the
|
|
360
|
+
// only way a `match: "Bash"` policy's `bash_match` branch can be
|
|
361
|
+
// reached. `trigger.match` is a SUBSTRING test over the expanded alias
|
|
362
|
+
// list, so `BashOutput` and `KillBash` — real Claude Code tool names —
|
|
363
|
+
// satisfy `match: "Bash"` too and do reach that branch (measured: both
|
|
364
|
+
// return `policyMatchesEvent === true`). They simply fall through to
|
|
365
|
+
// the per-policy fallback here, exactly as they did before this change,
|
|
366
|
+
// so nothing is gated differently; the precompute just does not
|
|
367
|
+
// de-duplicate for them.
|
|
368
|
+
//
|
|
369
|
+
// This also makes the precomputed value and the matcher's own value
|
|
370
|
+
// PROVABLY consistent for the common case: both are now the same
|
|
371
|
+
// `extractShellCommand(event)` call, so the latent
|
|
372
|
+
// `raw_input`/`input`/`cmd` divergence `InterceptOptions.normalizedCommand`'s
|
|
373
|
+
// own JSDoc warns about (nothing verifies the threaded value came from
|
|
374
|
+
// the event's real command) can no longer actually diverge for a
|
|
375
|
+
// `tool_name` in `SHELL_ALIASES` — the one production call site
|
|
376
|
+
// (`runInterceptCli`) derives both from the identical event via the
|
|
377
|
+
// identical function. It remains an unenforced INVARIANT, not a checked
|
|
378
|
+
// one: nothing stops a future second caller from threading a mismatched
|
|
379
|
+
// value in, and `event.tool_input`/`raw_input`/`input` could still
|
|
380
|
+
// change between the moment this is read and any later read of the same
|
|
381
|
+
// event object, however unlikely in practice.
|
|
382
|
+
//
|
|
383
|
+
// TWO behavioural differences, both checked (fix round 2 corrects the
|
|
384
|
+
// prior wording, which named only the first):
|
|
385
|
+
//
|
|
386
|
+
// 1. `readBashCommand` required a NON-EMPTY string; `extractShellCommand`
|
|
387
|
+
// accepts an empty one. An empty command now becomes
|
|
388
|
+
// `bashCommand = ""` instead of `null`, so `normalizedCommand`
|
|
389
|
+
// becomes a defined `normalizeCommand("") = {normalized: "",
|
|
390
|
+
// truncated: false, ...}` instead of staying `undefined` —
|
|
391
|
+
// behaviourally identical either way (a pure function of the empty
|
|
392
|
+
// string, now computed once instead of falling back per policy), and
|
|
393
|
+
// `truncated` can never be `true` for an empty string, so the
|
|
394
|
+
// `MAX_NORMALIZE_LENGTH` stderr line just below cannot fire from it.
|
|
395
|
+
//
|
|
396
|
+
// 2. That stderr line's SCOPE widened. Under the old ternary
|
|
397
|
+
// `bashCommand` was unconditionally `null` for any non-`Bash`
|
|
398
|
+
// `tool_name`, so `normalizedCommand` stayed `undefined` and the
|
|
399
|
+
// guard could never fire for a Codex shell event, nor for a command
|
|
400
|
+
// carried under `raw_input`/`input` or a `cmd` key. Measured at
|
|
401
|
+
// HEAD: a `tool_name: "shell"` event with a 100,001-char
|
|
402
|
+
// `raw_input.cmd` now emits the line. The direction is
|
|
403
|
+
// safety-positive — a previously SILENT loss of normalised-form
|
|
404
|
+
// coverage on those events is now reported — but it is a real change
|
|
405
|
+
// in observable output, so it is named here rather than implied.
|
|
406
|
+
const bashCommand = isCodexShellTool(event.tool_name) ? extractShellCommand(event) : null;
|
|
407
|
+
const normalizedCommand = bashCommand === null ? undefined : normalizeCommand(bashCommand);
|
|
408
|
+
// Per-segment view for `intercept()`'s per-policy attribution (task
|
|
409
|
+
// `98ad072f`, T-003) — deferred behind a memoised thunk, mirroring
|
|
410
|
+
// `ampNormalizedCommandThunk` below (D-015 fix round, run
|
|
411
|
+
// 2026-08-02-per-repo-gate-scoping-redesign, correcting this comment's
|
|
412
|
+
// own prior claim). CORRECTED: this is NOT "the same class as
|
|
413
|
+
// `normalizeCommand`'s own eager call just above" — `segmentViewOf` runs
|
|
414
|
+
// its OWN full segmentation walk over `bashCommand` (`command-
|
|
415
|
+
// normalize.ts`'s `segmentAndCanonicalize`, a SEPARATE call from the one
|
|
416
|
+
// `normalizeCommand` just made on the SAME string), and computing it
|
|
417
|
+
// unconditionally, for every Bash event, regardless of whether any
|
|
418
|
+
// policy in the manifest even uses `${REPO}`/`${BRANCH}`/`at_head`, was
|
|
419
|
+
// measured as a real, avoidable second pass — +206% at
|
|
420
|
+
// `MAX_NORMALIZE_LENGTH` (2.73 → 8.36 ms; see `segmentViewOf`'s own doc
|
|
421
|
+
// comment in `command-normalize.ts`). Threading it as a self-memoising
|
|
422
|
+
// thunk instead — the exact shape `ampNormalizedCommandThunk` below
|
|
423
|
+
// already uses for the same reason — lets `intercept()`'s
|
|
424
|
+
// `usesPerRepoBuiltins` gate decide whether the walk happens at all: a
|
|
425
|
+
// manifest with none of those policies never calls `segmentViewOf`, and
|
|
426
|
+
// a manifest that DOES still only pays the cost once per event, on
|
|
427
|
+
// first use, not once per Bash event regardless of need.
|
|
428
|
+
let commandSegmentsCache;
|
|
429
|
+
const commandSegmentsThunk = bashCommand === null
|
|
430
|
+
? undefined
|
|
431
|
+
: () => {
|
|
432
|
+
if (commandSegmentsCache === undefined) {
|
|
433
|
+
commandSegmentsCache = segmentViewOf(bashCommand);
|
|
434
|
+
}
|
|
435
|
+
return commandSegmentsCache;
|
|
436
|
+
};
|
|
437
|
+
// Memoised thunk for the ampersand-aware SECOND normalisation pass
|
|
438
|
+
// (task aabbad63). Unlike `normalizedCommand` above — eagerly computed
|
|
439
|
+
// once per Bash event, because `policyMatchesEvent`'s first two arms
|
|
440
|
+
// may need it on every raw-miss — the amp-aware pass is consulted only
|
|
441
|
+
// as a THIRD, additional arm, and only when a policy's regex has
|
|
442
|
+
// already missed BOTH the raw command and `normalizedCommand`; most
|
|
443
|
+
// events never reach it at all. Computing it eagerly here would pay
|
|
444
|
+
// its segmentation cost on the common path for every single Bash call
|
|
445
|
+
// inside the ~1000ms hook budget, whether or not any policy ends up
|
|
446
|
+
// needing it. Wrapping it in a lazily-evaluated, self-memoising thunk
|
|
447
|
+
// instead lets `policyMatchesEvent` call it from inside the manifest-
|
|
448
|
+
// wide `matching` loop below (once per policy that still hasn't
|
|
449
|
+
// matched) while the actual segmentation work happens AT MOST ONCE per
|
|
450
|
+
// event — the same "computed once per event, not once per policy"
|
|
451
|
+
// discipline `normalizedCommand` already has, just deferred until
|
|
452
|
+
// first use instead of forced up front.
|
|
453
|
+
let ampNormalizedCommandCache;
|
|
454
|
+
const ampNormalizedCommandThunk = bashCommand === null
|
|
455
|
+
? undefined
|
|
456
|
+
: () => (ampNormalizedCommandCache ??= normalizeCommandAmpAware(bashCommand));
|
|
338
457
|
// Above `MAX_NORMALIZE_LENGTH`, `normalizeCommand` skips normalisation
|
|
339
458
|
// entirely and `truncated` comes back `true`. Raw matching still
|
|
340
|
-
// applies regardless (`policyMatchesEvent`'s raw-OR-normalised
|
|
341
|
-
// construction), so an oversized command only loses the
|
|
342
|
-
// normalised-form coverage — but that skip must not be
|
|
343
|
-
// stderr line reports it here, keeping the module itself
|
|
344
|
-
// I/O-free.
|
|
459
|
+
// applies regardless (`policyMatchesEvent`'s raw-OR-normalised-OR-amp-
|
|
460
|
+
// normalised construction), so an oversized command only loses the
|
|
461
|
+
// ADDITIONAL normalised-form coverage — but that skip must not be
|
|
462
|
+
// silent, so one stderr line reports it here, keeping the module itself
|
|
463
|
+
// pure and I/O-free. This one line also covers the amp-aware SECOND
|
|
464
|
+
// pass (`normalizeCommandAmpAware`, task `aabbad63`, fix round 1 finding
|
|
465
|
+
// F6): it shares the identical `MAX_NORMALIZE_LENGTH` bound over the
|
|
466
|
+
// identical `bashCommand`, so its own `truncated` can never disagree
|
|
467
|
+
// with `normalizedCommand`'s for this call — no separate stderr line
|
|
468
|
+
// names the amp pass's own skip, nor does one need to.
|
|
345
469
|
if (normalizedCommand?.truncated === true) {
|
|
346
470
|
stderr.write(`harness policy intercept${hookSuffix(opts.hookName)}: Bash command exceeds ${MAX_NORMALIZE_LENGTH} chars; normalised-form matching skipped for this call (raw match only)\n`);
|
|
347
471
|
}
|
|
@@ -444,6 +568,10 @@ export async function runInterceptCli(opts = {}) {
|
|
|
444
568
|
...(cwdGitContext.sha.length > 0 && { currentHeadSha: cwdGitContext.sha }),
|
|
445
569
|
...(riskContext && { riskContext }),
|
|
446
570
|
...(normalizedCommand && { normalizedCommand }),
|
|
571
|
+
...(ampNormalizedCommandThunk && { ampNormalizedCommandThunk }),
|
|
572
|
+
...(commandSegmentsThunk && { commandSegmentsThunk }),
|
|
573
|
+
...(process.env.HARNESS_REPO !== undefined && { repoOverridden: true }),
|
|
574
|
+
...(process.env.HARNESS_BRANCH !== undefined && { branchOverridden: true }),
|
|
447
575
|
});
|
|
448
576
|
}
|
|
449
577
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../../src/cli/policy/intercept.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../../src/cli/policy/intercept.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,21 @@ export declare function buildMergedTagContent(args: {
|
|
|
27
27
|
* indirection defeats this match before the producer ever runs — not
|
|
28
28
|
* attempted to close here (the MCP merge path, `pull_requests_merge`, is
|
|
29
29
|
* the other documented gap; see the pack's instructions.md).
|
|
30
|
+
*
|
|
31
|
+
* Task 76671e5a: bare `&` added to the boundary alternation (`&&` kept to
|
|
32
|
+
* its left only to mirror `src/runtime/command-normalize.ts`'s alternation
|
|
33
|
+
* order for readability — NOT because order is load-bearing here, unlike
|
|
34
|
+
* that module). Same fix as `d834a065` applied to every policy trigger —
|
|
35
|
+
* bash starts a new command after a single `&`, so `A=x&gh pr merge` used
|
|
36
|
+
* to miss this trigger entirely and the producer silently never recorded
|
|
37
|
+
* the merged-tip fact for that spelling. Broadening a TRIGGER only widens
|
|
38
|
+
* when the producer fires (a strictly safer direction, mirrors the
|
|
39
|
+
* deny-side reasoning below), unlike the escape allowlist further down.
|
|
40
|
+
* Measured: swapping to `&|&&` produces a byte-identical match set for this
|
|
41
|
+
* matcher (a `RegExp.test` existential check over every start offset, not a
|
|
42
|
+
* segmenter — the reasoning that makes order matter in
|
|
43
|
+
* `command-normalize.ts`'s `BOUNDARY_RE`/`AMP_BOUNDARY_RE` does not transfer
|
|
44
|
+
* to a plain `.test()` matcher like this one).
|
|
30
45
|
*/
|
|
31
46
|
export declare const GH_PR_MERGE_BASH_RE: RegExp;
|
|
32
47
|
/**
|
|
@@ -34,29 +49,94 @@ export declare const GH_PR_MERGE_BASH_RE: RegExp;
|
|
|
34
49
|
* list. Deliberately NOT "every Bash command" — read-only git
|
|
35
50
|
* (status/log/diff/branch) and unrelated shell stay unaffected. Same
|
|
36
51
|
* anchoring convention as `GH_PR_MERGE_BASH_RE`.
|
|
52
|
+
*
|
|
53
|
+
* Task 76671e5a: bare `&` added to the boundary alternation, same reasoning
|
|
54
|
+
* as `GH_PR_MERGE_BASH_RE` above — this is a DENY-scope matcher, so
|
|
55
|
+
* broadening it is the STRICTER direction (more commands recognized as
|
|
56
|
+
* curated mutations, none dropped). Verified disjoint from the escape
|
|
57
|
+
* allowlist below on a single-command corpus (no verb overlap), so this
|
|
58
|
+
* broadening cannot lock out the documented recovery path.
|
|
37
59
|
*/
|
|
38
60
|
export declare const CURATED_MUTATION_BASH_RE: RegExp;
|
|
39
61
|
/**
|
|
40
62
|
* Escape allowlist, git verbs (03-decisions.md): the exact recovery path
|
|
41
|
-
* the deny message recommends, plus read-only stash inspection.
|
|
42
|
-
*
|
|
43
|
-
*
|
|
63
|
+
* the deny message recommends, plus read-only stash inspection. Since task
|
|
64
|
+
* 19356be7 this list no longer short-circuits the blocker — the deny
|
|
65
|
+
* match decides gate-eligibility, and every one of these verbs stays free
|
|
66
|
+
* simply because it is not a curated mutation (verb disjointness, pinned).
|
|
67
|
+
* The list remains the deny message's recovery vocabulary and a
|
|
68
|
+
* diagnostics aid.
|
|
69
|
+
*
|
|
70
|
+
* Task 76671e5a, DELIBERATELY LEFT on the old (no bare-`&`) boundary
|
|
71
|
+
* alphabet: this is an ALLOW-side matcher, so broadening it is the LOOSER
|
|
72
|
+
* direction. Its remaining consumers (diagnostics, docs interpolation)
|
|
73
|
+
* still must not silently widen what reads as "recovery". Pinned by a
|
|
74
|
+
* regression test asserting this regex's source never gains the `&|`
|
|
75
|
+
* boundary token.
|
|
44
76
|
*/
|
|
45
77
|
export declare const ESCAPE_GIT_BASH_RE: RegExp;
|
|
46
78
|
/**
|
|
47
|
-
* Escape allowlist, harness verbs (03-decisions.md): any invocation
|
|
48
|
-
* harness's own CLI (recovery commands like `harness session-start
|
|
49
|
-
* branch-check`, diagnostics, a future self-check)
|
|
50
|
-
*
|
|
51
|
-
*
|
|
79
|
+
* Escape allowlist, harness verbs (03-decisions.md): names any invocation
|
|
80
|
+
* of harness's own CLI (recovery commands like `harness session-start
|
|
81
|
+
* branch-check`, diagnostics, a future self-check), regardless of
|
|
82
|
+
* spelling — mirrors the `npx` / absolute-path / `./node_modules/.bin`
|
|
83
|
+
* robustness the `deny-kill-switch-bash` regex in
|
|
52
84
|
* `src/cli/init/templates.ts` already established for the same class of
|
|
53
|
-
* bypass concern.
|
|
85
|
+
* bypass concern. Since task 19356be7 its only job is the deny message's
|
|
86
|
+
* / diagnostics' vocabulary: a bare harness command stays free through
|
|
87
|
+
* verb disjointness with the curated deny list, not through a
|
|
88
|
+
* short-circuit.
|
|
89
|
+
*
|
|
90
|
+
* Task 76671e5a: DELIBERATELY LEFT narrow, same reasoning as
|
|
91
|
+
* `ESCAPE_GIT_BASH_RE` immediately above — an allow-side matcher, so
|
|
92
|
+
* broadening its boundary alphabet is the loosening direction.
|
|
54
93
|
*/
|
|
55
94
|
export declare const ESCAPE_HARNESS_BASH_RE: RegExp;
|
|
56
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* True when `command` matches any escape pattern. Since task 19356be7
|
|
97
|
+
* this is DIAGNOSTICS ONLY — the blocker's decision is
|
|
98
|
+
* `isGateEligibleCommand` below; when escape and deny both match, deny
|
|
99
|
+
* wins. (Under the original escape-first ordering this function was the
|
|
100
|
+
* blocker's first, unconditional check, which let `harness preflight &&
|
|
101
|
+
* git push origin master` — the documented normal workflow — skip the
|
|
102
|
+
* gate entirely.)
|
|
103
|
+
*/
|
|
57
104
|
export declare function isEscapeCommand(command: string): boolean;
|
|
58
105
|
/** True when `command` matches the curated v1 deny-scope. */
|
|
59
106
|
export declare function isCuratedMutationCommand(command: string): boolean;
|
|
107
|
+
/**
|
|
108
|
+
* The blocker's single classification entry point (task 19356be7): a
|
|
109
|
+
* command is gate-eligible iff the curated mutation matcher fires.
|
|
110
|
+
* Everything else — the whole recovery vocabulary, read-only git,
|
|
111
|
+
* unrelated shell — is allowed by the hook BEFORE any manifest load or
|
|
112
|
+
* ledger query, preserving the recovery-never-starved property the
|
|
113
|
+
* escape-first ordering used to provide.
|
|
114
|
+
*
|
|
115
|
+
* A thin wrapper over `isCuratedMutationCommand` by DELIBERATE choice,
|
|
116
|
+
* not by accident. An earlier iteration of this task pre-processed the
|
|
117
|
+
* command here, stripping the bodies of quoted-delimiter heredocs fed to
|
|
118
|
+
* a harness invocation, so that an `harness approve understanding <<'…'`
|
|
119
|
+
* report body mentioning a mutation verb would not become gate-eligible.
|
|
120
|
+
* Two review rounds found two successive families of UNDER-blocks in that
|
|
121
|
+
* pre-processing (bodies consumed that bash really executes), both rooted
|
|
122
|
+
* in the same cause: deciding where a heredoc body BEGINS requires
|
|
123
|
+
* re-implementing bash's quote and word grammar on the permissive side of
|
|
124
|
+
* a security boundary. Tasks `dbc6d303` and `5b1b24fb` had already been
|
|
125
|
+
* halted for that same reason. It was therefore removed rather than
|
|
126
|
+
* patched a third time; see
|
|
127
|
+
* `.ai/runs/2026-08-02-post-merge-gate-escape-precedence/03-decisions.md`
|
|
128
|
+
* D5/D6 for the measurement history, and task `5b1b24fb` for the real
|
|
129
|
+
* fix, which belongs at the `bash_match` layer for every surface at once.
|
|
130
|
+
*
|
|
131
|
+
* Accepted consequence, OVER-block direction: a harness report heredoc
|
|
132
|
+
* whose body carries a boundary-anchored mutation verb IS gate-eligible.
|
|
133
|
+
* It only denies while the branch tip equals a recorded merged tip, and
|
|
134
|
+
* `git switch <default>` — the gate's own recommended recovery — stays
|
|
135
|
+
* free. Same residual class as the quoted-text false positives this
|
|
136
|
+
* change already accepts. Do NOT reintroduce a strip here without a
|
|
137
|
+
* design that does not re-derive bash's grammar.
|
|
138
|
+
*/
|
|
139
|
+
export declare function isGateEligibleCommand(command: string): boolean;
|
|
60
140
|
/**
|
|
61
141
|
* Defensive `tool_output.exit_code` reader for the PostToolUse Bash
|
|
62
142
|
* payload — Contract A. Returns `null` on ANY shape other than a plain
|
|
@@ -29,10 +29,24 @@
|
|
|
29
29
|
// scope" section). Read-only git (status/log/diff/branch) and
|
|
30
30
|
// unrelated shell are never touched.
|
|
31
31
|
//
|
|
32
|
-
// -
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
32
|
+
// - DENY WINS over the escape allowlist (task 19356be7, REVERSES the
|
|
33
|
+
// original escape-first decision): the blocker classifies a command as
|
|
34
|
+
// gate-eligible iff the curated mutation matcher fires
|
|
35
|
+
// (`isGateEligibleCommand` below). The escape allowlist no longer
|
|
36
|
+
// short-circuits the whole command — under escape-first, any chained
|
|
37
|
+
// command containing an escape verb anywhere (`harness preflight &&
|
|
38
|
+
// git push origin master`, the documented normal workflow) skipped the
|
|
39
|
+
// gate entirely. Measured before changing, over a 66-row corpus with
|
|
40
|
+
// bash ground truth: per-segment evaluation and deny-wins are
|
|
41
|
+
// 0-divergent — a consequence of the pinned verb disjointness between
|
|
42
|
+
// the escape and deny lists — so the simplest (deny-wins) is
|
|
43
|
+
// implemented. The third candidate, escape-at-start-only, was measured
|
|
44
|
+
// and REJECTED: it diverges on 26 rows and still exempts three of the
|
|
45
|
+
// four lines this task exists to close (`git switch master && git push
|
|
46
|
+
// origin master` and friends). The recovery-never-starved property is preserved
|
|
47
|
+
// structurally: a non-eligible command is allowed before any manifest
|
|
48
|
+
// load or ledger query, exactly where the escape short-circuit used to
|
|
49
|
+
// sit (see hook-post-merge-gate.ts for the ordering).
|
|
36
50
|
//
|
|
37
51
|
// - Fails OPEN (allows) when the ledger is unreachable, unlike
|
|
38
52
|
// branch-protection's fail-closed posture: without the ledger,
|
|
@@ -70,33 +84,80 @@ export function buildMergedTagContent(args) {
|
|
|
70
84
|
* indirection defeats this match before the producer ever runs — not
|
|
71
85
|
* attempted to close here (the MCP merge path, `pull_requests_merge`, is
|
|
72
86
|
* the other documented gap; see the pack's instructions.md).
|
|
87
|
+
*
|
|
88
|
+
* Task 76671e5a: bare `&` added to the boundary alternation (`&&` kept to
|
|
89
|
+
* its left only to mirror `src/runtime/command-normalize.ts`'s alternation
|
|
90
|
+
* order for readability — NOT because order is load-bearing here, unlike
|
|
91
|
+
* that module). Same fix as `d834a065` applied to every policy trigger —
|
|
92
|
+
* bash starts a new command after a single `&`, so `A=x&gh pr merge` used
|
|
93
|
+
* to miss this trigger entirely and the producer silently never recorded
|
|
94
|
+
* the merged-tip fact for that spelling. Broadening a TRIGGER only widens
|
|
95
|
+
* when the producer fires (a strictly safer direction, mirrors the
|
|
96
|
+
* deny-side reasoning below), unlike the escape allowlist further down.
|
|
97
|
+
* Measured: swapping to `&|&&` produces a byte-identical match set for this
|
|
98
|
+
* matcher (a `RegExp.test` existential check over every start offset, not a
|
|
99
|
+
* segmenter — the reasoning that makes order matter in
|
|
100
|
+
* `command-normalize.ts`'s `BOUNDARY_RE`/`AMP_BOUNDARY_RE` does not transfer
|
|
101
|
+
* to a plain `.test()` matcher like this one).
|
|
73
102
|
*/
|
|
74
|
-
export const GH_PR_MERGE_BASH_RE = /(?:^|\n
|
|
103
|
+
export const GH_PR_MERGE_BASH_RE = /(?:^|\n|;|\||&&|&|\()\s*(?:\w+=\S+\s+)*gh\s+pr\s+merge\b/;
|
|
75
104
|
/**
|
|
76
105
|
* Blocker deny-scope v1 (03-decisions.md): the curated mutation command
|
|
77
106
|
* list. Deliberately NOT "every Bash command" — read-only git
|
|
78
107
|
* (status/log/diff/branch) and unrelated shell stay unaffected. Same
|
|
79
108
|
* anchoring convention as `GH_PR_MERGE_BASH_RE`.
|
|
109
|
+
*
|
|
110
|
+
* Task 76671e5a: bare `&` added to the boundary alternation, same reasoning
|
|
111
|
+
* as `GH_PR_MERGE_BASH_RE` above — this is a DENY-scope matcher, so
|
|
112
|
+
* broadening it is the STRICTER direction (more commands recognized as
|
|
113
|
+
* curated mutations, none dropped). Verified disjoint from the escape
|
|
114
|
+
* allowlist below on a single-command corpus (no verb overlap), so this
|
|
115
|
+
* broadening cannot lock out the documented recovery path.
|
|
80
116
|
*/
|
|
81
|
-
export const CURATED_MUTATION_BASH_RE = /(?:^|\n
|
|
117
|
+
export const CURATED_MUTATION_BASH_RE = /(?:^|\n|;|\||&&|&|\()\s*(?:\w+=\S+\s+)*(?:git(?:\s+-C\s+\S+)?\s+(?:commit|add|push|merge|rebase|cherry-pick|revert|reset|stash\s+(?:pop|apply))\b|gh\s+pr\s+(?:create|merge)\b)/;
|
|
82
118
|
/**
|
|
83
119
|
* Escape allowlist, git verbs (03-decisions.md): the exact recovery path
|
|
84
|
-
* the deny message recommends, plus read-only stash inspection.
|
|
85
|
-
*
|
|
86
|
-
*
|
|
120
|
+
* the deny message recommends, plus read-only stash inspection. Since task
|
|
121
|
+
* 19356be7 this list no longer short-circuits the blocker — the deny
|
|
122
|
+
* match decides gate-eligibility, and every one of these verbs stays free
|
|
123
|
+
* simply because it is not a curated mutation (verb disjointness, pinned).
|
|
124
|
+
* The list remains the deny message's recovery vocabulary and a
|
|
125
|
+
* diagnostics aid.
|
|
126
|
+
*
|
|
127
|
+
* Task 76671e5a, DELIBERATELY LEFT on the old (no bare-`&`) boundary
|
|
128
|
+
* alphabet: this is an ALLOW-side matcher, so broadening it is the LOOSER
|
|
129
|
+
* direction. Its remaining consumers (diagnostics, docs interpolation)
|
|
130
|
+
* still must not silently widen what reads as "recovery". Pinned by a
|
|
131
|
+
* regression test asserting this regex's source never gains the `&|`
|
|
132
|
+
* boundary token.
|
|
87
133
|
*/
|
|
88
134
|
export const ESCAPE_GIT_BASH_RE = /(?:^|\n|;|\||&&|\()\s*(?:\w+=\S+\s+)*git(?:\s+-C\s+\S+)?\s+(?:switch\b|checkout\b|pull\b|fetch\b|branch\s+-(?:d|D)\b|stash\s+(?:list|show)\b)/;
|
|
89
135
|
/**
|
|
90
|
-
* Escape allowlist, harness verbs (03-decisions.md): any invocation
|
|
91
|
-
* harness's own CLI (recovery commands like `harness session-start
|
|
92
|
-
* branch-check`, diagnostics, a future self-check)
|
|
93
|
-
*
|
|
94
|
-
*
|
|
136
|
+
* Escape allowlist, harness verbs (03-decisions.md): names any invocation
|
|
137
|
+
* of harness's own CLI (recovery commands like `harness session-start
|
|
138
|
+
* branch-check`, diagnostics, a future self-check), regardless of
|
|
139
|
+
* spelling — mirrors the `npx` / absolute-path / `./node_modules/.bin`
|
|
140
|
+
* robustness the `deny-kill-switch-bash` regex in
|
|
95
141
|
* `src/cli/init/templates.ts` already established for the same class of
|
|
96
|
-
* bypass concern.
|
|
142
|
+
* bypass concern. Since task 19356be7 its only job is the deny message's
|
|
143
|
+
* / diagnostics' vocabulary: a bare harness command stays free through
|
|
144
|
+
* verb disjointness with the curated deny list, not through a
|
|
145
|
+
* short-circuit.
|
|
146
|
+
*
|
|
147
|
+
* Task 76671e5a: DELIBERATELY LEFT narrow, same reasoning as
|
|
148
|
+
* `ESCAPE_GIT_BASH_RE` immediately above — an allow-side matcher, so
|
|
149
|
+
* broadening its boundary alphabet is the loosening direction.
|
|
97
150
|
*/
|
|
98
151
|
export const ESCAPE_HARNESS_BASH_RE = /(?:^|\n|;|\||&&|\()\s*(?:\w+=\S+\s+)*(?:npx\s+|\S*\/)?harness\b/;
|
|
99
|
-
/**
|
|
152
|
+
/**
|
|
153
|
+
* True when `command` matches any escape pattern. Since task 19356be7
|
|
154
|
+
* this is DIAGNOSTICS ONLY — the blocker's decision is
|
|
155
|
+
* `isGateEligibleCommand` below; when escape and deny both match, deny
|
|
156
|
+
* wins. (Under the original escape-first ordering this function was the
|
|
157
|
+
* blocker's first, unconditional check, which let `harness preflight &&
|
|
158
|
+
* git push origin master` — the documented normal workflow — skip the
|
|
159
|
+
* gate entirely.)
|
|
160
|
+
*/
|
|
100
161
|
export function isEscapeCommand(command) {
|
|
101
162
|
return ESCAPE_GIT_BASH_RE.test(command) || ESCAPE_HARNESS_BASH_RE.test(command);
|
|
102
163
|
}
|
|
@@ -104,6 +165,41 @@ export function isEscapeCommand(command) {
|
|
|
104
165
|
export function isCuratedMutationCommand(command) {
|
|
105
166
|
return CURATED_MUTATION_BASH_RE.test(command);
|
|
106
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* The blocker's single classification entry point (task 19356be7): a
|
|
170
|
+
* command is gate-eligible iff the curated mutation matcher fires.
|
|
171
|
+
* Everything else — the whole recovery vocabulary, read-only git,
|
|
172
|
+
* unrelated shell — is allowed by the hook BEFORE any manifest load or
|
|
173
|
+
* ledger query, preserving the recovery-never-starved property the
|
|
174
|
+
* escape-first ordering used to provide.
|
|
175
|
+
*
|
|
176
|
+
* A thin wrapper over `isCuratedMutationCommand` by DELIBERATE choice,
|
|
177
|
+
* not by accident. An earlier iteration of this task pre-processed the
|
|
178
|
+
* command here, stripping the bodies of quoted-delimiter heredocs fed to
|
|
179
|
+
* a harness invocation, so that an `harness approve understanding <<'…'`
|
|
180
|
+
* report body mentioning a mutation verb would not become gate-eligible.
|
|
181
|
+
* Two review rounds found two successive families of UNDER-blocks in that
|
|
182
|
+
* pre-processing (bodies consumed that bash really executes), both rooted
|
|
183
|
+
* in the same cause: deciding where a heredoc body BEGINS requires
|
|
184
|
+
* re-implementing bash's quote and word grammar on the permissive side of
|
|
185
|
+
* a security boundary. Tasks `dbc6d303` and `5b1b24fb` had already been
|
|
186
|
+
* halted for that same reason. It was therefore removed rather than
|
|
187
|
+
* patched a third time; see
|
|
188
|
+
* `.ai/runs/2026-08-02-post-merge-gate-escape-precedence/03-decisions.md`
|
|
189
|
+
* D5/D6 for the measurement history, and task `5b1b24fb` for the real
|
|
190
|
+
* fix, which belongs at the `bash_match` layer for every surface at once.
|
|
191
|
+
*
|
|
192
|
+
* Accepted consequence, OVER-block direction: a harness report heredoc
|
|
193
|
+
* whose body carries a boundary-anchored mutation verb IS gate-eligible.
|
|
194
|
+
* It only denies while the branch tip equals a recorded merged tip, and
|
|
195
|
+
* `git switch <default>` — the gate's own recommended recovery — stays
|
|
196
|
+
* free. Same residual class as the quoted-text false positives this
|
|
197
|
+
* change already accepts. Do NOT reintroduce a strip here without a
|
|
198
|
+
* design that does not re-derive bash's grammar.
|
|
199
|
+
*/
|
|
200
|
+
export function isGateEligibleCommand(command) {
|
|
201
|
+
return isCuratedMutationCommand(command);
|
|
202
|
+
}
|
|
107
203
|
/**
|
|
108
204
|
* Defensive `tool_output.exit_code` reader for the PostToolUse Bash
|
|
109
205
|
* payload — Contract A. Returns `null` on ANY shape other than a plain
|