@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.
Files changed (35) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/cli/dry-run.js +18 -12
  3. package/dist/cli/dry-run.js.map +1 -1
  4. package/dist/cli/index.js +4 -3
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/cli/init/templates.d.ts +1 -1
  7. package/dist/cli/init/templates.js +6 -4
  8. package/dist/cli/init/templates.js.map +1 -1
  9. package/dist/cli/pack/hook-post-merge-gate.js +43 -25
  10. package/dist/cli/pack/hook-post-merge-gate.js.map +1 -1
  11. package/dist/cli/policy/intercept.js +168 -40
  12. package/dist/cli/policy/intercept.js.map +1 -1
  13. package/dist/policy-packs/builtin/post-merge-gate-runtime.d.ts +90 -10
  14. package/dist/policy-packs/builtin/post-merge-gate-runtime.js +112 -16
  15. package/dist/policy-packs/builtin/post-merge-gate-runtime.js.map +1 -1
  16. package/dist/policy-packs/builtin/post-merge-gate.js +39 -22
  17. package/dist/policy-packs/builtin/post-merge-gate.js.map +1 -1
  18. package/dist/policy-packs/builtin/solution-acceptance-runtime.d.ts +13 -0
  19. package/dist/policy-packs/builtin/solution-acceptance-runtime.js +14 -1
  20. package/dist/policy-packs/builtin/solution-acceptance-runtime.js.map +1 -1
  21. package/dist/runtime/command-normalize.d.ts +317 -4
  22. package/dist/runtime/command-normalize.js +741 -35
  23. package/dist/runtime/command-normalize.js.map +1 -1
  24. package/dist/runtime/index.d.ts +1 -1
  25. package/dist/runtime/index.js +1 -1
  26. package/dist/runtime/index.js.map +1 -1
  27. package/dist/runtime/intercept.d.ts +171 -3
  28. package/dist/runtime/intercept.js +422 -42
  29. package/dist/runtime/intercept.js.map +1 -1
  30. package/dist/runtime/read-only-bash.js +58 -7
  31. package/dist/runtime/read-only-bash.js.map +1 -1
  32. package/dist/runtime/shell-word.d.ts +21 -0
  33. package/dist/runtime/shell-word.js +242 -0
  34. package/dist/runtime/shell-word.js.map +1 -0
  35. package/package.json +3 -1
@@ -5,12 +5,15 @@
5
5
  // the decisions and the Claude Code deny-JSON (or null when all allow).
6
6
  // Side effects (stdin, stdout, ledger I/O) live in the thin CLI entrypoint
7
7
  // that wraps this.
8
+ import * as fs from "node:fs";
9
+ import * as path from "node:path";
8
10
  import { evaluateExtract, evaluateRequires, parseDurationSeconds, substituteTemplate, } from "../policies/index.js";
9
11
  import { renderProducers } from "../policies/producers.js";
10
12
  import { buildActionEnvelope } from "./action-envelope.js";
11
13
  import { renderAgentFacing } from "./agent-facing.js";
12
- import { normalizeCommand } from "./command-normalize.js";
14
+ import { normalizeCommand, normalizeCommandAmpAware, segmentViewOf, } from "./command-normalize.js";
13
15
  import { resolveEnvironment, } from "./environment-resolver.js";
16
+ import { resolveGitContext } from "./git-context.js";
14
17
  import { POLICY_DECISION_TYPE } from "./ledger-record.js";
15
18
  import { classifyRisk } from "./risk-classifier.js";
16
19
  import { resolveSessionId } from "./session-id.js";
@@ -57,8 +60,16 @@ function enrichEnvelope(manifest, event, riskContext, now) {
57
60
  * tests), which fall back to computing it lazily right here — correct
58
61
  * either way, since `normalizeCommand` is a pure function of the
59
62
  * command string alone.
63
+ *
64
+ * `ampNormalizedCommandThunk` (task aabbad63) is the SAME
65
+ * resolved-by-the-wrapper pattern for the ampersand-aware SECOND
66
+ * normalisation pass, but threaded as a memoised THUNK rather than a
67
+ * precomputed value — see `InterceptOptions.ampNormalizedCommandThunk`
68
+ * for why laziness matters here specifically. Omitted callers fall back
69
+ * to calling `normalizeCommandAmpAware` directly, same shape as the
70
+ * `precomputedNormalizedCommand` fallback above.
60
71
  */
61
- export function policyMatchesEvent(policy, event, precomputedNormalizedCommand) {
72
+ export function policyMatchesEvent(policy, event, precomputedNormalizedCommand, ampNormalizedCommandThunk) {
62
73
  if (policy.trigger.event !== event.hook_event_name)
63
74
  return false;
64
75
  if (policy.trigger.match !== undefined) {
@@ -80,23 +91,33 @@ export function policyMatchesEvent(policy, event, precomputedNormalizedCommand)
80
91
  catch {
81
92
  return false;
82
93
  }
83
- // Raw-OR-normalised (D-003, run 2026-07-27-gate-target-repo-
84
- // resolution): test the RAW command first — cheap, and byte-
85
- // identical to the pre-fix behaviour — then, only if that fails,
86
- // fall back to the NORMALISED command (wrapper prefixes peeled, git
87
- // global options dropped, whitespace collapsed). Strictly additive:
88
- // a command that matched today keeps matching via the raw test
89
- // alone; normalisation can only ADD a match a spelling would
90
- // otherwise have missed (env/nice/command wrappers, extra git
91
- // global options, doubled whitespace), never remove the raw one.
92
- // Replacing the matcher input instead of OR-ing it risks silently
93
- // REMOVING an existing match if normalisation ever mangles some
94
- // shape — the fail-open direction for a gate — so this stays
95
- // additive rather than a substitution.
94
+ // Raw-OR-normalised-OR-amp-normalised (D-003, run 2026-07-27-gate-
95
+ // target-repo-resolution; third arm added task aabbad63): test the
96
+ // RAW command first — cheap, and byte-identical to the pre-fix
97
+ // behaviour — then, only if that fails, the primary NORMALISED
98
+ // command (wrapper prefixes peeled, git global options dropped,
99
+ // whitespace collapsed, BOUNDARY_RE segmentation) — then, only if
100
+ // THAT also fails, the ampersand-aware second pass (AMP_BOUNDARY_RE
101
+ // segmentation, closing the bare-`&` family BOUNDARY_RE cannot see:
102
+ // `A=x&env -C /tmp git status`, `echo hi & nice git status`).
103
+ // Strictly additive at every step: a command that matched today
104
+ // keeps matching via the raw test alone; the primary normalised form
105
+ // can only ADD a match (env/nice/command wrappers, extra git global
106
+ // options, doubled whitespace); the amp-aware form can only add a
107
+ // FURTHER match on top of those two, never remove one either of them
108
+ // already found. Replacing the matcher input instead of OR-ing it in
109
+ // risks silently REMOVING an existing match if some pass ever
110
+ // mangles a shape — the fail-open direction for a gate — so this
111
+ // stays additive rather than a substitution at every arm.
96
112
  if (!re.test(command)) {
97
113
  const { normalized } = precomputedNormalizedCommand ?? normalizeCommand(command);
98
- if (!re.test(normalized))
99
- return false;
114
+ if (!re.test(normalized)) {
115
+ const amp = ampNormalizedCommandThunk
116
+ ? ampNormalizedCommandThunk()
117
+ : normalizeCommandAmpAware(command);
118
+ if (!re.test(amp.normalized))
119
+ return false;
120
+ }
100
121
  }
101
122
  }
102
123
  return true;
@@ -323,6 +344,325 @@ function filterEntriesByTag(entries, tag) {
323
344
  (e.content.includes(tag) ||
324
345
  (e.source !== undefined && e.source.includes(tag))));
325
346
  }
347
+ /**
348
+ * Which of a policy's own trigger-satisfying segments name a target — the
349
+ * attribution sibling of `policyMatchesEvent` (task `98ad072f`, T-003).
350
+ * Re-tests the policy's OWN `bash_match` regex against each segment's
351
+ * `text` in isolation: every shipped `bash_match` alternation includes a
352
+ * `^` branch, so testing it against one segment's canonicalised text
353
+ * alone (no leading boundary character — see `CommandSegment.text`'s own
354
+ * doc comment) is well-defined. Returns every segment that matches on its
355
+ * own — usually one, occasionally several (D-004: a decoy read and a cwd
356
+ * read chained in one command can each independently satisfy the SAME
357
+ * trigger).
358
+ *
359
+ * Never changes WHETHER a policy matches — `policyMatchesEvent` already
360
+ * decided that from the WHOLE command (raw-or-normalised-or-amp-
361
+ * normalised), unchanged by this function. This only narrows down WHICH
362
+ * segment(s), if any, are individually responsible for the match, so
363
+ * `intercept()` below knows which segment's target — if any — to resolve
364
+ * the `${REPO}`/`${BRANCH}`/`currentHeadSha` builtins from instead of the
365
+ * event's own cwd. `[]` when the policy has no `bash_match` trigger (an
366
+ * MCP-tool-name-triggered policy — no segment concept applies), when its
367
+ * regex is malformed (mirrors `policyMatchesEvent`'s own defensive
368
+ * `try/catch`), or when the whole-command match came ONLY from the
369
+ * ampersand-aware third arm: `segments` here is always built from the
370
+ * PRIMARY (`BOUNDARY_RE`) segmentation, which — by construction — cannot
371
+ * itself contain the bare-`&` split the amp arm relies on, so an amp-
372
+ * only match finds no individually-matching segment and this returns
373
+ * `[]` (D-003: cwd builtins, identical to shipped).
374
+ */
375
+ export function attributeTriggerSegments(policy, segments) {
376
+ if (policy.trigger.bash_match === undefined)
377
+ return [];
378
+ let re;
379
+ try {
380
+ re = new RegExp(policy.trigger.bash_match);
381
+ }
382
+ catch {
383
+ return [];
384
+ }
385
+ return segments.filter((seg) => re.test(seg.text));
386
+ }
387
+ /**
388
+ * Does a policy's `requires:` reference the per-repo `${REPO}`/`${BRANCH}`
389
+ * builtins, or ask for `at_head`? Only these policies pay the per-policy
390
+ * attribution cost below — every other matching policy keeps the plain,
391
+ * per-event cwd builtins `options.builtins` already carries, byte-
392
+ * identical to before this task. D-005: `at_head` is included even when
393
+ * `ledger_tag` itself doesn't reference `${REPO}`/`${BRANCH}`, because
394
+ * `at_head` compares against `currentHeadSha`, which this task resolves
395
+ * from the SAME per-policy context — splitting the two would check
396
+ * `at_head` against the cwd's HEAD while `${REPO}` (if present elsewhere)
397
+ * named a different repo, the worse inconsistency D-005 rejects.
398
+ */
399
+ function usesPerRepoBuiltins(policy) {
400
+ const requires = policy.requires;
401
+ if (requires === undefined)
402
+ return false;
403
+ return (requires.at_head === true ||
404
+ requires.ledger_tag.includes("${REPO}") ||
405
+ requires.ledger_tag.includes("${BRANCH}"));
406
+ }
407
+ /**
408
+ * Bound on the number of DISTINCT attributed contexts one policy is
409
+ * evaluated against for one event (D-013, fix round, run
410
+ * 2026-08-02-per-repo-gate-scoping-redesign). Each distinct context costs
411
+ * one ledger query and one audit write in `intercept()`'s evaluation loop
412
+ * below; on a manifest with several per-repo-builtins policies (the
413
+ * shipped `FULL_TEMPLATE` has four), an event naming K distinct targets
414
+ * amplifies to 4K queries/writes, unbounded by `MAX_NORMALIZE_LENGTH` —
415
+ * measured 200/200 at K=200 by reviewer 2, on a hook budget whose timeout
416
+ * is ALLOW (same class as the 07-27 quadratic hot-path fail-open: a slow
417
+ * enough event silently passes). `resolveAttributedContexts` returns a
418
+ * `"bounded"` result instead of a `contexts` array once a policy's DISTINCT
419
+ * targets would exceed this constant; `intercept()` denies that policy
420
+ * directly (naming the ambiguity) without querying the ledger for any of
421
+ * them, rather than silently evaluating all of them.
422
+ */
423
+ export const MAX_ATTRIBUTED_CONTEXTS = 4;
424
+ /**
425
+ * Realpath a path for identity comparison, never throwing (D-012, fix
426
+ * round, run 2026-08-02-per-repo-gate-scoping-redesign). Falls back to the
427
+ * LEXICAL path unchanged when the target does not exist or is otherwise
428
+ * unreadable (`fs.realpathSync.native` throws `ENOENT` for a path this
429
+ * module was never guaranteed to have on disk, and this function must
430
+ * never throw — same fail-safe posture as `resolveGitContext` itself,
431
+ * which returns empty strings rather than throwing on a bad path).
432
+ * `.native` (not the plain JS `fs.realpathSync`) resolves via the OS
433
+ * syscall directly — cheaper, and avoids Node's own pure-JS symlink-loop
434
+ * bookkeeping for a value this function only uses for an identity
435
+ * comparison, never for a filesystem walk of its own.
436
+ */
437
+ function realpathOrSelf(p) {
438
+ try {
439
+ return fs.realpathSync.native(p);
440
+ }
441
+ catch {
442
+ return p;
443
+ }
444
+ }
445
+ /**
446
+ * Resolve the distinct `${REPO}`/`${BRANCH}`/`currentHeadSha` contexts a
447
+ * `usesPerRepoBuiltins` policy must be evaluated against (task `98ad072f`,
448
+ * T-003, `01-plan.md` Proposed Approach items 2-4). The engine trusts a
449
+ * trigger-satisfying segment's `effectiveTarget` UNIFORMLY as the
450
+ * directory that segment's own invocation genuinely runs in (bash
451
+ * semantics) — orchestrator decision D-010, 2026-08-02: an earlier
452
+ * revision of this function additionally distrusted an inherited target
453
+ * whenever a DIFFERENT invocation intervened between the `cd` and the
454
+ * satisfying segment — REJECTED: that coupling has no basis in bash's own
455
+ * semantics, is dodgeable by inserting any harmless read between the `cd`
456
+ * and the gated verb, and carried its own unverified `cd`-recognition
457
+ * gap. The `cd <B> && git log && git push` shape this was meant to guard
458
+ * is not a regression at all under this design — `git push` genuinely
459
+ * runs inside B — see `tests/runtime/intercept-cli.test.ts`'s "leading-cd
460
+ * is now a deliverable" block.
461
+ *
462
+ * D-021 (UNIVERSAL-ADDITIVE, operator decision, fix round, run
463
+ * 2026-08-02-per-repo-gate-scoping-redesign): attribution is uniformly
464
+ * ADDITIVE, never REPLACE. Every satisfying segment with an attributable
465
+ * target — `seg.effectiveTarget !== null`, whether it came from the
466
+ * segment's OWN explicit repo-relocating flag (`-C`/`env -C`/`--git-dir`;
467
+ * `--work-tree` is excluded from ever producing a target at all, D-017)
468
+ * or was INHERITED from a preceding `cd` — demands the cwd context AND
469
+ * that target's own context, side by side; `seg.ownTarget` is not
470
+ * consulted for this decision. Any unsatisfied context blocks the whole
471
+ * event (the existing per-context evaluation machinery below is
472
+ * unchanged). `seg.effectiveTarget === null` (fully unattributable —
473
+ * D-003) still adds ONLY the cwd context — there is no foreign target to
474
+ * be additive WITH.
475
+ *
476
+ * Demanding cwd unconditionally makes the engine structurally immune to
477
+ * misattribution of the foreign target: no gap in `command-normalize.ts`'s
478
+ * static, string-only model of shell control flow (subshells, pipes,
479
+ * `cd -`, a later `cd`, an unmodeled git flag composition) can ever make a
480
+ * gate WEAKER than the shipped, cwd-only engine, because cwd's own demand
481
+ * is never dropped — only added to. This replaces an earlier REPLACE-for-
482
+ * own-target design (D-011) that trusted a statically extracted own
483
+ * target as proof of "this one invocation operates there"; four
484
+ * independent review passes each measured a live bypass of that
485
+ * invariant against the shipped binary (a forged `.git/HEAD` directory
486
+ * reached through, respectively, a non-persisting `cd`, `--work-tree`,
487
+ * more than one repo-relocating flag, and a tilde-valued flag not counted
488
+ * by the multi-flag guard) — see `03-decisions.md` D-011/D-017/D-018/
489
+ * D-019/D-020/D-021 for the full history. The static-analysis-proves-it
490
+ * invariant those bypasses each disproved is not carried forward here.
491
+ * Cost accepted by the operator: a legitimate `git -C B` from cwd A now
492
+ * demands BOTH A's and B's context, where the pre-D-021 engine demanded
493
+ * only B's.
494
+ *
495
+ * D-012: a target reached through a symlink resolves to its REAL
496
+ * (realpath'd) repository identity, not the symlink's own lexical
497
+ * basename — `resolveGitContext` derives `repo` from the basename of
498
+ * wherever it's pointed, and never itself realpaths, so an agent could
499
+ * otherwise pick the demanded repo identity by naming a symlink.
500
+ *
501
+ * D-013: distinct contexts are bounded at `MAX_ATTRIBUTED_CONTEXTS`; see
502
+ * that constant's own comment.
503
+ *
504
+ * D-015: the cwd context is deduped by its OWN `[REPO, BRANCH, sha]`
505
+ * signature (not the literal string `"cwd"`), so a foreign path that
506
+ * resolves to the SAME repository identity as cwd (e.g. a subdirectory of
507
+ * the cwd repo reached via an explicit `-C`) collapses into the cwd
508
+ * context instead of producing a spurious duplicate decision/audit write.
509
+ * `repoOverridden` / `branchOverridden` (from `InterceptOptions`, both
510
+ * default `false`) keep an operator's `HARNESS_REPO`/`HARNESS_BRANCH`
511
+ * override intact in an attributed foreign context instead of letting the
512
+ * target repo's own identity silently overwrite it — independently per
513
+ * field. `satisfying` is a `Set` (not `Array.includes` per segment) for
514
+ * O(1) membership tests instead of O(n) per segment.
515
+ *
516
+ * A policy with no attributable foreign target (no `bash_match`, no
517
+ * individually-matching segment, only an amp-arm-only match, an
518
+ * unattributable composition, a target resolving to the SAME repository
519
+ * identity as cwd, or a target outside any git repo — D-003) is evaluated
520
+ * EXACTLY as it is today, with the EXACT SAME `options.builtins` object
521
+ * reference (no clone) when nothing attributed, keeping that the
522
+ * byte-identical common case.
523
+ *
524
+ * `resolveGitContextMemo` is a per-`intercept()`-call cache keyed by the
525
+ * REALPATH'D absolute path (never module-level state — no cross-event
526
+ * caching), so several policies (or several satisfying segments) naming
527
+ * the same foreign path within one event pay the `fs` cost once, not
528
+ * once per policy per segment.
529
+ */
530
+ function resolveAttributedContexts(policy, segments, cwdBuiltins, cwdCurrentHeadSha, resolveGitContextMemo, repoOverridden, branchOverridden) {
531
+ const cwdContext = { builtins: cwdBuiltins, currentHeadSha: cwdCurrentHeadSha };
532
+ const satisfying = new Set(attributeTriggerSegments(policy, segments));
533
+ if (satisfying.size === 0)
534
+ return { kind: "contexts", contexts: [cwdContext] };
535
+ const cwdSignature = [cwdBuiltins.REPO, cwdBuiltins.BRANCH, cwdCurrentHeadSha ?? ""].join("|");
536
+ const seenSignatures = new Set();
537
+ const contexts = [];
538
+ const addCwdOnce = () => {
539
+ if (seenSignatures.has(cwdSignature))
540
+ return;
541
+ seenSignatures.add(cwdSignature);
542
+ contexts.push(cwdContext);
543
+ };
544
+ const cwdReal = realpathOrSelf(cwdBuiltins.CWD);
545
+ for (const seg of segments) {
546
+ if (!satisfying.has(seg))
547
+ continue;
548
+ if (seg.effectiveTarget === null) {
549
+ // D-003: fully unattributable — cwd only, no foreign target to be
550
+ // additive with.
551
+ addCwdOnce();
552
+ continue;
553
+ }
554
+ // D-021 (UNIVERSAL-ADDITIVE, operator decision after the four-pass
555
+ // halt — see this function's own doc comment): the cwd context is
556
+ // demanded UNCONDITIONALLY here, regardless of whether the target came
557
+ // from the segment's own explicit flag or was inherited from a
558
+ // preceding `cd`. `seg.ownTarget` is no longer read for this decision.
559
+ addCwdOnce();
560
+ const resolvedLexical = path.resolve(cwdBuiltins.CWD, seg.effectiveTarget);
561
+ const resolved = realpathOrSelf(resolvedLexical);
562
+ if (resolved === cwdReal) {
563
+ addCwdOnce();
564
+ continue;
565
+ }
566
+ let gitCtx = resolveGitContextMemo.get(resolved);
567
+ if (gitCtx === undefined) {
568
+ gitCtx = resolveGitContext(resolved);
569
+ resolveGitContextMemo.set(resolved, gitCtx);
570
+ }
571
+ if (gitCtx.repo.length === 0) {
572
+ // D-003: outside any repo → cwd fallback, not a distinct context.
573
+ addCwdOnce();
574
+ continue;
575
+ }
576
+ const signature = [gitCtx.repo, gitCtx.branch, gitCtx.sha].join("|");
577
+ if (signature === cwdSignature) {
578
+ // D-015: a foreign target that resolves to cwd's own REAL identity
579
+ // (e.g. a subdirectory of the cwd repo reached via `-C`, a
580
+ // different literal path than `cwdBuiltins.CWD` itself but the SAME
581
+ // `.git`) collapses into the cwd context regardless of segment
582
+ // order — not just when a bare cwd-reading segment happened to add
583
+ // it first.
584
+ addCwdOnce();
585
+ continue;
586
+ }
587
+ if (seenSignatures.has(signature))
588
+ continue;
589
+ if (contexts.length >= MAX_ATTRIBUTED_CONTEXTS) {
590
+ // D-013: fail CLOSED — do not evaluate any of them, name the
591
+ // ambiguity instead. `contexts.length + 1` names "at least this
592
+ // many distinct targets", the count observed before bailing, not
593
+ // necessarily the final total (the loop stops here).
594
+ return { kind: "bounded", distinctCount: contexts.length + 1 };
595
+ }
596
+ seenSignatures.add(signature);
597
+ contexts.push({
598
+ builtins: {
599
+ ...cwdBuiltins,
600
+ REPO: repoOverridden ? cwdBuiltins.REPO : gitCtx.repo,
601
+ BRANCH: branchOverridden ? cwdBuiltins.BRANCH : gitCtx.branch,
602
+ },
603
+ currentHeadSha: gitCtx.sha.length > 0 ? gitCtx.sha : undefined,
604
+ });
605
+ }
606
+ // Defensive fallback: every satisfying segment existed but somehow none
607
+ // was added above (should not happen — every branch above adds either
608
+ // the cwd context or a foreign one). Never leave a matched, per-repo-
609
+ // builtins policy with zero contexts to evaluate against.
610
+ return { kind: "contexts", contexts: contexts.length > 0 ? contexts : [cwdContext] };
611
+ }
612
+ /**
613
+ * Lazily resolve the event's per-segment view for attribution, computed
614
+ * at most once per `intercept()` call (the caller, `intercept()` below,
615
+ * memoises the RESULT in its own `segmentsForAttribution` local — this
616
+ * function itself is called at most once per call already, but stays
617
+ * side-effect-free so that remains true regardless of caller changes).
618
+ * Prefers `options.commandSegmentsThunk` (D-015 fix round: the deferred,
619
+ * compute-only-if-needed seam — see its own doc comment), then the eager
620
+ * `options.commandSegments`, then falls back to computing it directly
621
+ * from the event's own command for standalone callers/tests that inject
622
+ * neither. `null` (truncated — see `segmentViewOf`) and "no Bash command
623
+ * on this event" both collapse to `[]`, the same "nothing to attribute,
624
+ * cwd builtins" shape as a policy with no `bash_match` at all.
625
+ */
626
+ function resolveCommandSegments(options) {
627
+ if (options.commandSegmentsThunk !== undefined)
628
+ return options.commandSegmentsThunk() ?? [];
629
+ if (options.commandSegments !== undefined)
630
+ return options.commandSegments ?? [];
631
+ const command = extractShellCommand(options.event);
632
+ if (command === null)
633
+ return [];
634
+ return segmentViewOf(command) ?? [];
635
+ }
636
+ /**
637
+ * Synthesise the single decision `intercept()` records for a policy whose
638
+ * distinct attributed contexts exceeded `MAX_ATTRIBUTED_CONTEXTS` (D-013).
639
+ * Routes through `outcomeForFailedRequires` — the SAME enforcement-to-
640
+ * outcome mapping every other "could not safely evaluate" branch in
641
+ * `evaluateOnePolicy` uses — rather than a hardcoded outcome, so a
642
+ * `block`-enforcement policy (the security-critical case: preflight/push/
643
+ * merge gates) genuinely denies, while a `warn`-enforcement policy warns
644
+ * instead of hard-blocking, consistent with how every other failed-
645
+ * evaluation branch in this module already respects the policy's own
646
+ * declared enforcement. No ledger query, no template substitution against
647
+ * a resolved `ledger_tag` (there is no single context to substitute one
648
+ * against) — `extractValues` is still computed from `trigger.extract`
649
+ * against the CWD builtins (cheap, pure, matches the `operator_only`
650
+ * short-circuit's own reasoning) so a `ux:`/`producers:` block on this
651
+ * policy can still render.
652
+ */
653
+ function boundedContextsDecision(policy, event, distinctCount, cwdBuiltins, evaluatedAt) {
654
+ const extract = evaluateExtract(policy.trigger.extract ?? {}, buildEventContext(event), cwdBuiltins);
655
+ return {
656
+ policyName: policy.name,
657
+ enforcement: policy.enforcement,
658
+ outcome: outcomeForFailedRequires(policy.enforcement),
659
+ reason: `ambiguous: this command names at least ${distinctCount} distinct repository targets for this policy, ` +
660
+ `exceeding the ${MAX_ATTRIBUTED_CONTEXTS}-context bound — refusing to evaluate all of them`,
661
+ extractValues: extract.values,
662
+ ledgerTag: "(bounded: too many distinct attributed targets — no context queried)",
663
+ evaluatedAt,
664
+ };
665
+ }
326
666
  export async function intercept(options) {
327
667
  const { manifest, event } = options;
328
668
  // The Risk Gate is active only when some policy declares a `when:`
@@ -351,8 +691,9 @@ export async function intercept(options) {
351
691
  const whenFallbackMap = new Map();
352
692
  const matching = [];
353
693
  for (const p of manifest.policies) {
354
- if (!policyMatchesEvent(p, event, options.normalizedCommand))
694
+ if (!policyMatchesEvent(p, event, options.normalizedCommand, options.ampNormalizedCommandThunk)) {
355
695
  continue;
696
+ }
356
697
  if (p.when === undefined) {
357
698
  matching.push(p);
358
699
  continue;
@@ -364,34 +705,73 @@ export async function intercept(options) {
364
705
  matching.push(p);
365
706
  }
366
707
  }
708
+ // Per-policy attribution (task `98ad072f`, T-003): `segmentsForAttribution`
709
+ // is resolved at most once, lazily, only if some matching policy actually
710
+ // uses `${REPO}`/`${BRANCH}`/`at_head` — a manifest with none of those
711
+ // (every Phase 4/5/6-only manifest) never computes it.
712
+ // `resolveGitContextMemo` is this call's own, non-module-level cache
713
+ // (task constraint: no eager/global filesystem work) — see
714
+ // `resolveAttributedContexts`'s own comment.
715
+ let segmentsForAttribution;
716
+ const resolveGitContextMemo = new Map();
367
717
  const decisions = [];
368
718
  for (const policy of matching) {
369
- const base = await evaluateOnePolicy(policy, options);
370
- // Attach the per-event Risk Gate verdicts so `harness audit` /
371
- // `explain --trace` can replay the classification + environment
372
- // that the `when:` match was made against. Also carry the
373
- // unclassifiedFallback flag (M7) when the when: evaluation set it
374
- // to true; leave the field absent otherwise so decisions from
375
- // manifests without a `when:` policy stay byte-identical.
376
- const whenFallback = whenFallbackMap.get(policy.name);
377
- const decision = enriched
378
- ? {
379
- ...base,
380
- risk: enriched.risk,
381
- environment: enriched.environment,
382
- ...(whenFallback === true ? { whenUnclassifiedFallback: true } : {}),
719
+ const attributed = usesPerRepoBuiltins(policy)
720
+ ? resolveAttributedContexts(policy, (segmentsForAttribution ??= resolveCommandSegments(options)), options.builtins, options.currentHeadSha, resolveGitContextMemo, options.repoOverridden === true, options.branchOverridden === true)
721
+ : { kind: "contexts", contexts: [{ builtins: options.builtins, currentHeadSha: options.currentHeadSha }] };
722
+ if (attributed.kind === "bounded") {
723
+ // D-013: fail CLOSED without querying the ledger for any of the
724
+ // (too many) distinct targets — one synthetic decision, one audit
725
+ // write, then move on to the next policy. Ledger-query count for
726
+ // THIS policy stays at zero regardless of how many distinct targets
727
+ // the command actually names, instead of scaling with them.
728
+ const evaluatedAt = (options.now ?? new Date()).toISOString();
729
+ const decision = boundedContextsDecision(policy, event, attributed.distinctCount, options.builtins, evaluatedAt);
730
+ decisions.push(decision);
731
+ try {
732
+ await options.ledger.record(decision, resolveSessionId(event.session_id));
383
733
  }
384
- : base;
385
- decisions.push(decision);
386
- try {
387
- await options.ledger.record(decision, resolveSessionId(event.session_id));
734
+ catch (err) {
735
+ (options.stderr ?? process.stderr).write(`harness runtime intercept: audit-write failed for ${decision.policyName}: ${err instanceof Error ? err.message : String(err)}\n`);
736
+ }
737
+ continue;
388
738
  }
389
- catch (err) {
390
- // Audit-write failure must not block; the decision is still applied.
391
- // Surface the failure to stderr so a persistently-failing recorder
392
- // does not silently leave `harness audit` / `explain --trace` blind.
393
- // Goes to stderr to keep the stdout deny-JSON contract intact.
394
- (options.stderr ?? process.stderr).write(`harness runtime intercept: audit-write failed for ${decision.policyName}: ${err instanceof Error ? err.message : String(err)}\n`);
739
+ for (const context of attributed.contexts) {
740
+ // Same object reference as `options` on the (overwhelmingly common)
741
+ // single-cwd-context path — no clone, byte-identical to the
742
+ // pre-attribution call shape. Only a genuinely foreign context
743
+ // builds a shallow override.
744
+ const contextOptions = context.builtins === options.builtins &&
745
+ context.currentHeadSha === options.currentHeadSha
746
+ ? options
747
+ : { ...options, builtins: context.builtins, currentHeadSha: context.currentHeadSha };
748
+ const base = await evaluateOnePolicy(policy, contextOptions);
749
+ // Attach the per-event Risk Gate verdicts so `harness audit` /
750
+ // `explain --trace` can replay the classification + environment
751
+ // that the `when:` match was made against. Also carry the
752
+ // unclassifiedFallback flag (M7) when the when: evaluation set it
753
+ // to true; leave the field absent otherwise so decisions from
754
+ // manifests without a `when:` policy stay byte-identical.
755
+ const whenFallback = whenFallbackMap.get(policy.name);
756
+ const decision = enriched
757
+ ? {
758
+ ...base,
759
+ risk: enriched.risk,
760
+ environment: enriched.environment,
761
+ ...(whenFallback === true ? { whenUnclassifiedFallback: true } : {}),
762
+ }
763
+ : base;
764
+ decisions.push(decision);
765
+ try {
766
+ await options.ledger.record(decision, resolveSessionId(event.session_id));
767
+ }
768
+ catch (err) {
769
+ // Audit-write failure must not block; the decision is still applied.
770
+ // Surface the failure to stderr so a persistently-failing recorder
771
+ // does not silently leave `harness audit` / `explain --trace` blind.
772
+ // Goes to stderr to keep the stdout deny-JSON contract intact.
773
+ (options.stderr ?? process.stderr).write(`harness runtime intercept: audit-write failed for ${decision.policyName}: ${err instanceof Error ? err.message : String(err)}\n`);
774
+ }
395
775
  }
396
776
  }
397
777
  // First blocking decision wins the envelope. `deny` and
@@ -1 +1 @@
1
- {"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../src/runtime/intercept.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../src/runtime/intercept.ts"],"names":[],"mappings":"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"}