@lannguyensi/harness 0.59.2 → 0.60.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 +36 -0
- package/README.md +1 -1
- package/dist/cli/apply/apply.d.ts +20 -0
- package/dist/cli/apply/apply.js +13 -7
- package/dist/cli/apply/apply.js.map +1 -1
- package/dist/cli/apply/install-codex-config.d.ts +11 -3
- package/dist/cli/apply/install-codex-config.js +130 -52
- package/dist/cli/apply/install-codex-config.js.map +1 -1
- package/dist/cli/approve/understanding.js +34 -28
- package/dist/cli/approve/understanding.js.map +1 -1
- package/dist/cli/doctor/format.js +22 -0
- package/dist/cli/doctor/format.js.map +1 -1
- package/dist/cli/doctor/index.js +60 -31
- package/dist/cli/doctor/index.js.map +1 -1
- package/dist/cli/doctor/types.d.ts +17 -0
- package/dist/cli/dry-run.js +7 -0
- package/dist/cli/dry-run.js.map +1 -1
- package/dist/cli/index.js +46 -144
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/pack/auto-approve-path.js +25 -11
- package/dist/cli/pack/auto-approve-path.js.map +1 -1
- package/dist/cli/pack/hook-codex-post-tool-use.js +2 -2
- package/dist/cli/pack/hook-codex-post-tool-use.js.map +1 -1
- package/dist/cli/pack/hook-codex-pre-tool-use.js +32 -5
- package/dist/cli/pack/hook-codex-pre-tool-use.js.map +1 -1
- package/dist/cli/pack/hook-post-merge-gate-record.d.ts +7 -0
- package/dist/cli/pack/hook-post-merge-gate-record.js +39 -2
- package/dist/cli/pack/hook-post-merge-gate-record.js.map +1 -1
- package/dist/cli/pack/hook-post-tool-use.js +2 -2
- package/dist/cli/pack/hook-post-tool-use.js.map +1 -1
- package/dist/cli/pack/hook-pre-tool-use.js +60 -15
- package/dist/cli/pack/hook-pre-tool-use.js.map +1 -1
- package/dist/cli/policy/intercept.js +5 -1
- package/dist/cli/policy/intercept.js.map +1 -1
- package/dist/cli/record/index.d.ts +11 -2
- package/dist/cli/record/index.js +18 -5
- package/dist/cli/record/index.js.map +1 -1
- package/dist/cli/session-start/branch-check.d.ts +3 -29
- package/dist/cli/session-start/branch-check.js +7 -37
- package/dist/cli/session-start/branch-check.js.map +1 -1
- package/dist/cli/session-start/index.d.ts +16 -30
- package/dist/cli/session-start/index.js +72 -26
- package/dist/cli/session-start/index.js.map +1 -1
- package/dist/cli/session-start/shared-options.d.ts +92 -0
- package/dist/cli/session-start/shared-options.js +109 -0
- package/dist/cli/session-start/shared-options.js.map +1 -0
- package/dist/cli/session-start/stale-base-check.d.ts +3 -28
- package/dist/cli/session-start/stale-base-check.js +7 -37
- package/dist/cli/session-start/stale-base-check.js.map +1 -1
- package/dist/cli/session-start/toolchain-parity.d.ts +5 -21
- package/dist/cli/session-start/toolchain-parity.js +6 -38
- package/dist/cli/session-start/toolchain-parity.js.map +1 -1
- package/dist/cli/smoke/index.d.ts +1 -1
- package/dist/cli/smoke/index.js +8 -11
- package/dist/cli/smoke/index.js.map +1 -1
- package/dist/policy-packs/builtin/post-merge-gate-runtime.d.ts +11 -0
- package/dist/policy-packs/builtin/post-merge-gate-runtime.js +11 -0
- package/dist/policy-packs/builtin/post-merge-gate-runtime.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.d.ts +36 -0
- package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js +73 -0
- package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js.map +1 -0
- package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +3 -2
- package/dist/policy-packs/builtin/understanding-before-execution/index.js +5 -2
- package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/markers.js +1 -0
- package/dist/policy-packs/builtin/understanding-before-execution/markers.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.d.ts +205 -1
- package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js +360 -3
- package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.d.ts +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js +2 -2
- package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/task-markers.d.ts +36 -0
- package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js +50 -0
- package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js.map +1 -1
- package/dist/runtime/bash-prefix-parse.js +319 -126
- package/dist/runtime/bash-prefix-parse.js.map +1 -1
- package/dist/runtime/intercept.d.ts +38 -0
- package/dist/runtime/intercept.js +224 -5
- package/dist/runtime/intercept.js.map +1 -1
- package/dist/runtime/read-only-bash.js +11 -1
- package/dist/runtime/read-only-bash.js.map +1 -1
- package/dist/runtime/shell-word.d.ts +16 -1
- package/dist/runtime/shell-word.js +82 -1
- package/dist/runtime/shell-word.js.map +1 -1
- package/package.json +1 -1
|
@@ -471,7 +471,8 @@ function scanOwnedContentEnd(text, start) {
|
|
|
471
471
|
* `scanOwnedContentEnd`; when only blank or comment lines precede the found
|
|
472
472
|
* marker in the zone -- so the pre-marker lookup finds no content line to
|
|
473
473
|
* report -- the header is looked up again just past that marker's own
|
|
474
|
-
* line, since the wedged table then sits after it, not before
|
|
474
|
+
* line, since the wedged table then sits after it, not before, and the
|
|
475
|
+
* message says the marker line sits above the table (task e8f4fc03); printed
|
|
475
476
|
* through `describeTableHeader`, so only the header's own bracketed key
|
|
476
477
|
* path appears, never a trailing comment), and
|
|
477
478
|
* the line number and marker of the first line beyond it
|
|
@@ -485,7 +486,12 @@ function scanOwnedContentEnd(text, start) {
|
|
|
485
486
|
* document (`to` is `text.length`), telling the operator to move something
|
|
486
487
|
* below a marker that does not exist would be nonsensical, so a different
|
|
487
488
|
* fix (add one, or move the table below the last harness hook table) is
|
|
488
|
-
* offered instead (task 6a037359).
|
|
489
|
+
* offered instead (task 6a037359). When the named table is a hook event
|
|
490
|
+
* table spelled without the `[[hooks.` prefix, the guidance offers deleting
|
|
491
|
+
* it if harness wrote it, since the scan reads such a table as foreign with
|
|
492
|
+
* or without a comment line above it (task e8f4fc03). The legacy paths call
|
|
493
|
+
* this too, so the substring matching above applies there as well: a value
|
|
494
|
+
* holding marker text refuses. `blockOpening` names the line the block
|
|
489
495
|
* starts at in the delete-the-lines fix: the BEGIN marker by default; a
|
|
490
496
|
* legacy config (no BEGIN marker) whose END marker survived passes its
|
|
491
497
|
* source-prefix line or generated header instead, since a BEGIN marker it
|
|
@@ -526,9 +532,15 @@ export function assertNoSplitBlock(text, from, to, configPath, hasEndMarker, blo
|
|
|
526
532
|
// the foreign table that split the block is wedged after the marker's own
|
|
527
533
|
// line instead, so look there.
|
|
528
534
|
const markerLineEnd = lineEndAfter(text, zoneStart + markerOffset);
|
|
529
|
-
const
|
|
530
|
-
|
|
535
|
+
const headerBeforeMarker = firstContentLine(text, zoneStart, zoneStart + markerOffset);
|
|
536
|
+
const foreignHeaderLine = headerBeforeMarker ?? firstContentLine(text, markerLineEnd, zoneEnd);
|
|
531
537
|
const firstForeignHeader = describeForeignHeaderLine(text, foreignHeaderLine);
|
|
538
|
+
// Where the marker line sits relative to the named table, so the message
|
|
539
|
+
// stays true when the table was found past the marker (a respelled hook
|
|
540
|
+
// table with its own '# harness hook:' comment line above it, say).
|
|
541
|
+
const placement = headerBeforeMarker === null
|
|
542
|
+
? `below harness-owned content: line ${offendingLineNumber}, above it, contains '${marker}'`
|
|
543
|
+
: `sitting before more harness-owned content: line ${offendingLineNumber} contains '${marker}'`;
|
|
532
544
|
const fixes = hasEndMarker
|
|
533
545
|
? [
|
|
534
546
|
`move ${firstForeignHeader} below the '${CODEX_MANAGED_END}' marker`,
|
|
@@ -548,13 +560,21 @@ export function assertNoSplitBlock(text, from, to, configPath, hasEndMarker, blo
|
|
|
548
560
|
// right for an operator-owned one; name the restore option first (task
|
|
549
561
|
// 01053b27).
|
|
550
562
|
const isHookTable = HOOK_ARRAY_HEADER_RE.test(foreignHeaderLine?.line ?? "");
|
|
563
|
+
// A hook event table spelled another way (`[[ hooks.Stop ]]`) is read as
|
|
564
|
+
// foreign with or without a comment line above it, so restoring one does
|
|
565
|
+
// not help; deleting it does, if harness wrote it (task e8f4fc03).
|
|
566
|
+
const isRespelledHookTable = isHookEventArrayHeader(foreignHeaderLine?.line ?? "");
|
|
551
567
|
const guidance = isHookTable
|
|
552
568
|
? `If ${firstForeignHeader} is a harness hook table whose '${HARNESS_HOOK_COMMENT_PREFIX}<id> ` +
|
|
553
569
|
"(budget_ms=<n>)' comment line was deleted, restore that comment line directly above it. " +
|
|
554
570
|
`If it is an operator-owned table, ${fixes.join(", or ")}`
|
|
555
|
-
:
|
|
556
|
-
|
|
557
|
-
|
|
571
|
+
: isRespelledHookTable
|
|
572
|
+
? `If ${firstForeignHeader} is a harness hook table, delete it together with any ` +
|
|
573
|
+
`'${HARNESS_HOOK_COMMENT_PREFIX}<id> (budget_ms=<n>)' comment line above it (the install ` +
|
|
574
|
+
"replaces only hook tables spelled '[[hooks.<Event>]]' with that comment line above " +
|
|
575
|
+
`them, and writes the fresh block). If it is an operator-owned table, ${fixes.join(", or ")}`
|
|
576
|
+
: fixes.join(", or ").replace(/^./, (c) => c.toUpperCase());
|
|
577
|
+
throw new CodexInstallRefusalError(`Codex config ${configPath} has a foreign table (${firstForeignHeader}) ${placement} and still ` +
|
|
558
578
|
"looks like part of the harness-managed hook block; refusing to guess the block " +
|
|
559
579
|
`boundaries. ${guidance}, then re-run \`harness apply --runtime codex --install\`. As a ` +
|
|
560
580
|
`last resort, restore ${configPath} from the most recent .harness-backup-* file (if one exists), but ` +
|
|
@@ -638,18 +658,22 @@ function foreignSectionRootKey(headerLine) {
|
|
|
638
658
|
* so the operator reads "a whole namespace, N tables" rather than
|
|
639
659
|
* mistaking the printed header for the only table kept; exactly one table
|
|
640
660
|
* under a root prints its own header. Headers print through
|
|
641
|
-
* `describeTableHeader` (no trailing comment).
|
|
642
|
-
|
|
661
|
+
* `describeTableHeader` (no trailing comment). A header that is one of the
|
|
662
|
+
* `kept` operator hook tables (a hook event table spelled without the
|
|
663
|
+
* `[[hooks.` prefix, see `collectKeptHookTables`) is named there instead and
|
|
664
|
+
* not listed twice. */
|
|
665
|
+
function collectForeignSectionHeaders(text, from, to, kept = []) {
|
|
643
666
|
const seenRoots = new Set();
|
|
644
667
|
const headers = [];
|
|
645
668
|
const counts = new Map();
|
|
669
|
+
const keptStarts = new Set(kept.map((t) => t.start));
|
|
646
670
|
let pos = Math.max(from, 0);
|
|
647
671
|
const limit = Math.max(to, from);
|
|
648
672
|
const classify = createLineClassifier(text);
|
|
649
673
|
while (pos < limit) {
|
|
650
674
|
const lineEnd = Math.min(lineEndAfter(text, pos), limit);
|
|
651
675
|
const rawLine = text.slice(pos, lineEnd);
|
|
652
|
-
if (classify(pos, rawLine) === "foreignHeader") {
|
|
676
|
+
if (classify(pos, rawLine) === "foreignHeader" && !keptStarts.has(pos)) {
|
|
653
677
|
const trimmed = rawLine.trim();
|
|
654
678
|
const root = foreignSectionRootKey(trimmed);
|
|
655
679
|
counts.set(root, (counts.get(root) ?? 0) + 1);
|
|
@@ -676,17 +700,28 @@ function extractHookIds(content) {
|
|
|
676
700
|
return ids;
|
|
677
701
|
}
|
|
678
702
|
/**
|
|
679
|
-
* The operator-authored hook tables directly after a managed range
|
|
680
|
-
*
|
|
681
|
-
* `
|
|
682
|
-
* `
|
|
703
|
+
* The operator-authored hook tables directly after a managed range: every
|
|
704
|
+
* hook event table header from `from` up to the first non-hook table header
|
|
705
|
+
* or `to`, each by header, line number and offset. A hook event table is a
|
|
706
|
+
* `[[hooks.*]]` header, or an array-of-tables header spelled another way
|
|
707
|
+
* whose first key resolves to `hooks` and that names an event
|
|
708
|
+
* (`isHookEventArrayHeader`: `[[ hooks.Stop ]]`, `[["hooks".Stop]]`,
|
|
709
|
+
* `[[hooks . Stop]]`). The ownership scan reads such a respelled header as a
|
|
710
|
+
* foreign table, so it ends the managed range there; collected here, it is
|
|
711
|
+
* named and its commands are checked like any kept hook table, instead of
|
|
712
|
+
* being kept as a foreign section whose harness command would then run next
|
|
713
|
+
* to the fresh block's (task e8f4fc03). Lines are read by
|
|
683
714
|
* `createLineClassifier`, so an array element on its own line inside a kept
|
|
684
715
|
* table's multi-line value neither ends the run nor is named, and a hook
|
|
685
|
-
* table after it is still collected (task 01053b27). Empty
|
|
686
|
-
*
|
|
687
|
-
*
|
|
688
|
-
*
|
|
689
|
-
*
|
|
716
|
+
* table after it is still collected (task 01053b27). Empty when the first
|
|
717
|
+
* header at `from` is a non-hook table, or there is none. A hook table after
|
|
718
|
+
* the first non-hook table is not collected: it is kept, not named and not
|
|
719
|
+
* checked, a deliberate boundary (only the run of hook tables directly after
|
|
720
|
+
* the harness tables is examined). The caller refuses a zone that holds a
|
|
721
|
+
* harness marker (`assertNoSplitBlock`) before it uses the tables: over the
|
|
722
|
+
* whole zone on the BEGIN path and when an END marker follows, over the run
|
|
723
|
+
* of hook tables (up to the returned `end`) on the legacy path without one,
|
|
724
|
+
* so no table the install keeps carries a `# harness hook:` comment.
|
|
690
725
|
*/
|
|
691
726
|
function collectKeptHookTables(text, from, to) {
|
|
692
727
|
const tables = [];
|
|
@@ -696,14 +731,15 @@ function collectKeptHookTables(text, from, to) {
|
|
|
696
731
|
const lineEnd = Math.min(lineEndAfter(text, pos), to);
|
|
697
732
|
const rawLine = text.slice(pos, lineEnd);
|
|
698
733
|
const kind = classify(pos, rawLine);
|
|
699
|
-
|
|
734
|
+
const hookTable = kind === "hookHeader" || (kind === "foreignHeader" && isHookEventArrayHeader(rawLine.trim()));
|
|
735
|
+
if (kind === "foreignHeader" && !hookTable)
|
|
700
736
|
break;
|
|
701
|
-
if (
|
|
737
|
+
if (hookTable) {
|
|
702
738
|
tables.push({ header: describeTableHeader(rawLine), line: lineNumberAt(text, pos), start: pos });
|
|
703
739
|
}
|
|
704
740
|
pos = lineEnd;
|
|
705
741
|
}
|
|
706
|
-
return tables;
|
|
742
|
+
return { tables, end: pos };
|
|
707
743
|
}
|
|
708
744
|
/** A kept table as the install names it: its header, its 1-based line
|
|
709
745
|
* number in the config before the install and in the config the install
|
|
@@ -733,15 +769,15 @@ function rangeBeforeStrayEnd(text, start, end, configPath, blockOpening) {
|
|
|
733
769
|
const strayIdx = findExactLine(text, CODEX_MANAGED_END, end);
|
|
734
770
|
if (strayIdx === -1) {
|
|
735
771
|
assertNoSplitBlock(text, end, text.length, configPath, false);
|
|
736
|
-
const
|
|
737
|
-
const
|
|
772
|
+
const keptHookTables = collectKeptHookTables(text, end, text.length).tables;
|
|
773
|
+
const foreignSectionsPreserved = collectForeignSectionHeaders(text, end, text.length, keptHookTables);
|
|
738
774
|
return { start, end, foreignSectionsPreserved, keptHookTables };
|
|
739
775
|
}
|
|
740
776
|
const strayLineStart = lineStartAt(text, strayIdx);
|
|
741
777
|
const strayLineEnd = lineEndAfter(text, strayIdx);
|
|
742
778
|
assertNoSplitBlock(text, end, strayLineStart, configPath, true, blockOpening);
|
|
743
|
-
const
|
|
744
|
-
const
|
|
779
|
+
const keptHookTables = collectKeptHookTables(text, end, strayLineStart).tables;
|
|
780
|
+
const foreignSectionsPreserved = collectForeignSectionHeaders(text, end, strayLineStart, keptHookTables);
|
|
745
781
|
return {
|
|
746
782
|
start,
|
|
747
783
|
end,
|
|
@@ -753,28 +789,50 @@ function rangeBeforeStrayEnd(text, start, end, configPath, blockOpening) {
|
|
|
753
789
|
/**
|
|
754
790
|
* The range of a legacy (no BEGIN marker) config: the source-prefix or
|
|
755
791
|
* generated-header paths. When the scan ended at an operator hook table,
|
|
756
|
-
*
|
|
757
|
-
* (`rangeBeforeStrayEnd`): an END marker that
|
|
758
|
-
* line, sitting after the kept tables
|
|
759
|
-
*
|
|
760
|
-
* kept-table refusal offers moving an operator-owned
|
|
761
|
-
* a harness-commented table after the kept tables
|
|
762
|
-
* split-block check instead of being
|
|
763
|
-
* (the fresh block would repeat it)
|
|
764
|
-
*
|
|
765
|
-
*
|
|
766
|
-
*
|
|
767
|
-
*
|
|
768
|
-
*
|
|
792
|
+
* or at a foreign table with an END marker after it, the zone after it is
|
|
793
|
+
* handled like the BEGIN path's (`rangeBeforeStrayEnd`): an END marker that
|
|
794
|
+
* survived its deleted BEGIN line, sitting after the kept tables or the
|
|
795
|
+
* foreign table, is excised like a drifted END, so the install leaves no
|
|
796
|
+
* orphan END line and the kept-table refusal offers moving an operator-owned
|
|
797
|
+
* table below that END; a harness-commented table after the kept tables or
|
|
798
|
+
* the foreign table refuses through the split-block check instead of being
|
|
799
|
+
* kept as if it were operator content (the fresh block would repeat it)
|
|
800
|
+
* when it sits before that END, or, after kept tables, anywhere later when
|
|
801
|
+
* no END follows (task e8f4fc03 extends the END case to a foreign table).
|
|
802
|
+
* Content below that END is untouched, as on the BEGIN path, so a
|
|
803
|
+
* harness-commented table there is kept and not named. The split-block
|
|
804
|
+
* refusal names `blockOpening` (the source-prefix line or the generated
|
|
805
|
+
* header) as the start of the block, since there is no BEGIN marker (task
|
|
806
|
+
* 01053b27). A scan that ended at a foreign table with no END marker
|
|
807
|
+
* anywhere after it keeps the legacy behaviour (no split-block check), except
|
|
808
|
+
* that hook event tables directly after the block are collected, named and
|
|
809
|
+
* checked (`collectKeptHookTables`), and a harness marker in their run
|
|
810
|
+
* refuses through the split-block check. The END marker is looked up as a
|
|
811
|
+
* whole line outside multi-line strings (`findExactLine`), so END text in a
|
|
812
|
+
* foreign table's value does not route a config here. Like the BEGIN path,
|
|
813
|
+
* the split-block check matches its markers as substrings, so a value in the
|
|
814
|
+
* zone that holds marker text refuses too (see `assertNoSplitBlock`).
|
|
769
815
|
*/
|
|
770
816
|
function legacyManagedRange(text, start, scan, configPath, blockOpening) {
|
|
771
|
-
if (scan.
|
|
817
|
+
if (scan.sawEndMarker) {
|
|
818
|
+
return { start, end: scan.end, foreignSectionsPreserved: [], keptHookTables: [] };
|
|
819
|
+
}
|
|
820
|
+
if (scan.endedAtOperatorHookTable || findExactLine(text, CODEX_MANAGED_END, scan.end) !== -1) {
|
|
772
821
|
return rangeBeforeStrayEnd(text, start, scan.end, configPath, blockOpening);
|
|
773
822
|
}
|
|
774
|
-
const
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
823
|
+
const run = collectKeptHookTables(text, scan.end, text.length);
|
|
824
|
+
// The scan ended at a hook table spelled without the `[[hooks.` prefix: a
|
|
825
|
+
// harness marker in the run of hook tables after it (a harness-commented
|
|
826
|
+
// table, or the respelled table's own comment line) is harness content the
|
|
827
|
+
// scan could not read, so refuse through the split-block check, as the
|
|
828
|
+
// BEGIN path does, instead of naming a table with that comment line above it
|
|
829
|
+
// as one without (task e8f4fc03). The run stops at the first non-hook table:
|
|
830
|
+
// past it the legacy reading below stays unchanged.
|
|
831
|
+
if (run.tables.length > 0)
|
|
832
|
+
assertNoSplitBlock(text, scan.end, run.end, configPath, false);
|
|
833
|
+
const keptHookTables = run.tables;
|
|
834
|
+
const foreignSectionsPreserved = collectForeignSectionHeaders(text, scan.end, text.length, keptHookTables);
|
|
835
|
+
return { start, end: scan.end, foreignSectionsPreserved, keptHookTables };
|
|
778
836
|
}
|
|
779
837
|
function findManagedRange(text, configPath) {
|
|
780
838
|
const begin = text.indexOf(CODEX_MANAGED_BEGIN);
|
|
@@ -1189,6 +1247,17 @@ function resolvedKeyName(segment) {
|
|
|
1189
1247
|
function hooksRooted(trimmed) {
|
|
1190
1248
|
return resolvedKeyName(parseTableHeader(trimmed)?.keys[0] ?? "") === "hooks";
|
|
1191
1249
|
}
|
|
1250
|
+
/** Whether a header line is an array-of-tables header that appends to a
|
|
1251
|
+
* hook event array or below one (`[[hooks.Stop]]`, `[[ hooks.Stop ]]`,
|
|
1252
|
+
* `[["hooks".Stop]]`, `[[hooks . Stop.hooks]]`): double brackets, a first key
|
|
1253
|
+
* that resolves to `hooks` (`hooksRooted`) and at least an event key after
|
|
1254
|
+
* it. A one-key line (`[["hooks"]]`, which may also be an array element on
|
|
1255
|
+
* its own line) is not one. Used by `collectKeptHookTables` for the
|
|
1256
|
+
* spellings the `[[hooks.` prefix does not catch (task e8f4fc03). */
|
|
1257
|
+
function isHookEventArrayHeader(trimmed) {
|
|
1258
|
+
const parsed = parseTableHeader(trimmed);
|
|
1259
|
+
return (parsed !== null && parsed.header.startsWith("[[") && parsed.keys.length >= 2 && hooksRooted(trimmed));
|
|
1260
|
+
}
|
|
1192
1261
|
function subKey(event, index) {
|
|
1193
1262
|
return `${event}\u0000${index}`;
|
|
1194
1263
|
}
|
|
@@ -1210,11 +1279,12 @@ function subKey(event, index) {
|
|
|
1210
1279
|
* scan resolves has the root `hooks` (a `[[hooks.` line has it by its
|
|
1211
1280
|
* prefix), a table outside `hooks` never shifts the order match, and an
|
|
1212
1281
|
* array element on its own line (`["x"]`, `[1]`) costs no parse in this
|
|
1213
|
-
* scan, unless the element
|
|
1214
|
-
* `['hooks']
|
|
1215
|
-
*
|
|
1216
|
-
*
|
|
1217
|
-
* finds it inside the
|
|
1282
|
+
* scan, unless the element line reads as a header whose first key is
|
|
1283
|
+
* `hooks` (`["hooks"]`, `['hooks']`, `[["hooks"]]`, `[[ 'hooks' ]]`): that
|
|
1284
|
+
* line reads as a `hooks` root, so it is probed like the `hooks`-rooted
|
|
1285
|
+
* spellings that `[[hooks.` does not catch (`[[ hooks.Stop ]]`,
|
|
1286
|
+
* `[["hooks".Stop]]`, `[hooks.Stop]`), and the probe finds it inside the
|
|
1287
|
+
* array.
|
|
1218
1288
|
*/
|
|
1219
1289
|
function mapHookArrayHeaders(text) {
|
|
1220
1290
|
const map = { slots: new Map(), eventCounts: new Map(), subCounts: new Map() };
|
|
@@ -1375,14 +1445,22 @@ function assertKeptHookTablesAreOperatorOwned(kept, currentContent, generatedCon
|
|
|
1375
1445
|
const harnessShaped = commands.some((command) => freshCommands.has(command) || command.startsWith("harness "));
|
|
1376
1446
|
if (!harnessShaped)
|
|
1377
1447
|
continue;
|
|
1448
|
+
// harness writes every hook table as `[[hooks.<Event>]]`; a table spelled
|
|
1449
|
+
// another way (`[[ hooks.Stop ]]`) never was one, and with the comment
|
|
1450
|
+
// line restored above it the scan would still read it as a foreign
|
|
1451
|
+
// table, so the restore fix is offered only for the harness spelling
|
|
1452
|
+
// (task e8f4fc03).
|
|
1453
|
+
const fix = HOOK_ARRAY_HEADER_RE.test(table.header)
|
|
1454
|
+
? `Restore the comment line directly above ${table.header}, so the install replaces the table ` +
|
|
1455
|
+
`with the fresh block${moveBelowEndOption(hasEndMarker)}, or delete the table`
|
|
1456
|
+
: "Delete the table (the install replaces only hook tables spelled '[[hooks.<Event>]]' with " +
|
|
1457
|
+
`that comment line above them)${moveBelowEndOption(hasEndMarker)}`;
|
|
1378
1458
|
throw new CodexInstallRefusalError(`Codex config ${configPath} has a hook table ${table.header} (line ${table.line}) with no ` +
|
|
1379
1459
|
`'${HARNESS_HOOK_COMMENT_PREFIX}<id> (budget_ms=<n>)' comment line above it, placed after the ` +
|
|
1380
1460
|
"harness hook tables, whose command is one harness itself writes. harness cannot tell it " +
|
|
1381
1461
|
"from a harness hook table whose comment line was deleted, and keeping it next to the " +
|
|
1382
1462
|
"fresh harness block would run that hook twice (or keep a retired harness hook running). " +
|
|
1383
|
-
|
|
1384
|
-
`with the fresh block${moveBelowEndOption(hasEndMarker)}, or delete the table, then re-run ` +
|
|
1385
|
-
`\`harness apply --runtime codex --install\`. The file is untouched.`, configPath);
|
|
1463
|
+
`${fix}, then re-run \`harness apply --runtime codex --install\`. The file is untouched.`, configPath);
|
|
1386
1464
|
}
|
|
1387
1465
|
}
|
|
1388
1466
|
export function planCodexConfigInstall(opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-codex-config.js","sourceRoot":"","sources":["../../../src/cli/apply/install-codex-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install-codex-config.js","sourceRoot":"","sources":["../../../src/cli/apply/install-codex-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,8 @@ import * as fs from "node:fs";
|
|
|
17
17
|
import * as os from "node:os";
|
|
18
18
|
import * as path from "node:path";
|
|
19
19
|
import { atomicWriteFile } from "../../io/atomic-write.js";
|
|
20
|
-
import { approvedLedgerTagFor, defaultReportsDir, listPersistedReports, readActiveClaim, selectReportForSession, TOLERANT_FALLBACK_MAX_AGE_MS, writeApprovalMarker, writeTaskApprovalMarker, } from "../../policy-packs/builtin/understanding-before-execution-runtime.js";
|
|
20
|
+
import { approvedLedgerTagFor, canonicalReportHashOfFile, defaultReportsDir, hashReportFile, listPersistedReports, readActiveClaim, selectReportForSession, TOLERANT_FALLBACK_MAX_AGE_MS, writeApprovalMarker, writeTaskApprovalMarker, } from "../../policy-packs/builtin/understanding-before-execution-runtime.js";
|
|
21
21
|
import { PACK_NAME as UNDERSTANDING_PACK_NAME, resolveMode, toPackageMode, } from "../../policy-packs/builtin/understanding-before-execution.js";
|
|
22
|
-
import { sha256Hex } from "../../runtime/approval-signing.js";
|
|
23
22
|
import { addLedgerFact } from "../../runtime/ledger-add.js";
|
|
24
23
|
import { clearPendingApproval, resolveGeneratedDir, } from "../../runtime/pending-approval.js";
|
|
25
24
|
import { resolveApprovalSessionId } from "../../runtime/session-id.js";
|
|
@@ -305,9 +304,9 @@ export function rewriteReportApproved(filePath, approvedAt, approvedBy, sessionI
|
|
|
305
304
|
parsed["approvalStatus"] = "approved";
|
|
306
305
|
parsed["approvedAt"] = approvedAt;
|
|
307
306
|
parsed["approvedBy"] = approvedBy;
|
|
308
|
-
// `expiredAt`
|
|
309
|
-
// reached "expired" (understanding-before-execution-runtime.ts);
|
|
310
|
-
//
|
|
307
|
+
// `expiredAt` and `expiredBy` are `expirePersistedReport`'s stamp for how a
|
|
308
|
+
// report reached "expired" (understanding-before-execution-runtime.ts); they
|
|
309
|
+
// describe that specific past state, not the report's current one.
|
|
311
310
|
// Approving a report that was previously expired must not let that
|
|
312
311
|
// stale timestamp survive into the new snapshot, or the persisted
|
|
313
312
|
// record becomes self-contradictory: {approvalStatus: "approved",
|
|
@@ -317,6 +316,7 @@ export function rewriteReportApproved(filePath, approvedAt, approvedBy, sessionI
|
|
|
317
316
|
// drops the key entirely instead of serializing `"expiredAt": null`-
|
|
318
317
|
// adjacent noise.
|
|
319
318
|
delete parsed["expiredAt"];
|
|
319
|
+
delete parsed["expiredBy"];
|
|
320
320
|
// Stamp the session id when the report lacks one (older Stop-hook
|
|
321
321
|
// package versions write reports without a `sessionId` field). This
|
|
322
322
|
// binds the report to the session that approved it, so every later
|
|
@@ -548,6 +548,23 @@ export async function approveUnderstanding(opts = {}) {
|
|
|
548
548
|
else {
|
|
549
549
|
const v = validatePersistedReport(parsed);
|
|
550
550
|
validation = v.ok ? v : { ...v, enforced: !opts.force };
|
|
551
|
+
// A report the canonical hash cannot cover (larger than the size cap
|
|
552
|
+
// the gate reads, not a regular file, nested too deeply) would sign a
|
|
553
|
+
// marker whose `reportContentHash` is null, i.e. one the gate-read
|
|
554
|
+
// content check never applies to, so it fails validation instead
|
|
555
|
+
// (`--force` still overrides, as for any other validation failure).
|
|
556
|
+
// `hashReportFile` reads the file exactly as the gate-read scan does.
|
|
557
|
+
if (validation.ok) {
|
|
558
|
+
const hashed = hashReportFile(latest.filePath);
|
|
559
|
+
if (!hashed.ok) {
|
|
560
|
+
validation = {
|
|
561
|
+
ok: false,
|
|
562
|
+
field: "report",
|
|
563
|
+
reason: `${hashed.detail}, so the approval could not bind it`,
|
|
564
|
+
enforced: !opts.force,
|
|
565
|
+
};
|
|
566
|
+
}
|
|
567
|
+
}
|
|
551
568
|
}
|
|
552
569
|
}
|
|
553
570
|
// Task 5d73d78d review HIGH-2: a stdin report that was REJECTED (failed
|
|
@@ -632,30 +649,19 @@ export async function approveUnderstanding(opts = {}) {
|
|
|
632
649
|
};
|
|
633
650
|
}
|
|
634
651
|
// Report-content hash the marker's signature binds to (harness/f9485cc7):
|
|
635
|
-
//
|
|
652
|
+
// the canonical hash of the persisted report AT APPROVAL TIME, computed
|
|
636
653
|
// BEFORE `rewriteReportApproved` below flips its status/approvedAt/
|
|
637
|
-
// approvedBy fields
|
|
638
|
-
//
|
|
639
|
-
//
|
|
640
|
-
//
|
|
641
|
-
//
|
|
642
|
-
//
|
|
643
|
-
//
|
|
644
|
-
//
|
|
645
|
-
//
|
|
646
|
-
//
|
|
647
|
-
|
|
648
|
-
// inspectable so that follow-up can add the comparison without a
|
|
649
|
-
// marker-format change.
|
|
650
|
-
let reportContentHash = null;
|
|
651
|
-
if (latest) {
|
|
652
|
-
try {
|
|
653
|
-
reportContentHash = sha256Hex(fs.readFileSync(latest.filePath, "utf8"));
|
|
654
|
-
}
|
|
655
|
-
catch {
|
|
656
|
-
reportContentHash = null;
|
|
657
|
-
}
|
|
658
|
-
}
|
|
654
|
+
// approvedBy fields, so it covers what the operator actually reviewed.
|
|
655
|
+
// `canonicalReportHash` leaves the lifecycle fields out, which is why the
|
|
656
|
+
// value survives that flip and a later `expirePersistedReport` rewrite;
|
|
657
|
+
// both PreToolUse hooks look for a report file with that hash at gate-read
|
|
658
|
+
// time (`verifyApprovedReportHash`, task fa423e9b) and refuse the marker
|
|
659
|
+
// when none is left. null when no persisted report was resolved or it
|
|
660
|
+
// cannot be read as a JSON object (validation skipped above, nothing to
|
|
661
|
+
// bind), or when it cannot be hashed: larger than the size cap, not a
|
|
662
|
+
// regular file, nested too deeply (reachable only under --force: the
|
|
663
|
+
// validation above refuses such a report otherwise).
|
|
664
|
+
const reportContentHash = latest ? canonicalReportHashOfFile(latest.filePath) : null;
|
|
659
665
|
// Write the canonical approval marker first. The gate consults this
|
|
660
666
|
// file (not the ledger) since agent-tasks/88ca4bb3 closed the self-
|
|
661
667
|
// approval backdoor: the agent has direct MCP access to the ledger,
|