@lannguyensi/harness 0.59.1 → 0.59.2
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 +15 -1
- package/README.md +1 -1
- package/dist/cli/apply/install-codex-config.d.ts +105 -2
- package/dist/cli/apply/install-codex-config.js +566 -62
- package/dist/cli/apply/install-codex-config.js.map +1 -1
- package/dist/policy-packs/builtin/solution-acceptance-runtime.js +1 -1
- package/dist/policy-packs/builtin/solution-acceptance-runtime.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.59.2] - 2026-09-30
|
|
11
|
+
|
|
12
|
+
### Security
|
|
13
|
+
|
|
14
|
+
- **`fast-uri` 3.1.8 in the lockfile** (transitive under ajv; lockfile-only, no source change), closing GHSA-hrr3-gc8f-f4qj (inconsistent host case normalization via percent-encoded octets; moderate).
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- **The Codex install keeps an operator-authored `[[hooks.<Event>]]` table that sits after the harness hook tables** (task `01053b27`). In a config with a drifted END marker, or a BEGIN marker, a legacy source prefix or a legacy generated header but no END marker, the ownership scan folded such a table into the replaced block and deleted it without naming it in `removedHookIds`; the TOML-semantic safety net does not compare hook event arrays, so it did not catch this either. The scan now tells a harness hook table from an operator one by the `# harness hook: <id> (budget_ms=N)` comment the generator writes above every hook table: a `[[hooks.*]]` header without that comment above it, after at least one header that has it, ends the owned range like a foreign table, together with a comment run attached to it, and the table is kept byte for byte after the fresh END marker (apply twice gives the same bytes). Failure modes, both by design: a block whose hook tables never carried the comment (older generator output) has no commented table before its first hook table and is still replaced whole; a harness table whose comment the operator deleted ends the range there, so a later harness table that still has its comment makes the install refuse through the split-block check with the file untouched, while a deleted comment on the last harness table leaves that table in place after the fresh block as if it were an operator table, so the install names every kept operator hook table (header and line number, never value text) among the preserved sections, in `--dry-run` (`preserving foreign section: [[hooks.Stop]] (line 14 before the install, line 40 after it)`) and in the install summary (`preserved foreign section: ...`), and in the plan's `keptOperatorHookTables`, and it refuses, file untouched, when a kept table's hook command equals a command of the fresh block or starts with `harness `, asking the operator to restore the comment line or delete the table, or, when an END marker follows the kept table, to move an operator-owned table below it. A retired hook whose command does not start with `harness ` (an environment-prefixed report-dir wrap, the memory-router hook, a custom manifest hook) is kept and named, not refused. The kept tables' commands are read from the parsed whole config (the parser the safety net uses), each table matched to its parsed entry by the order of the `[[hooks.<Event>]]` headers, so no part of the file is parsed on its own and the parser's code frame never reaches the output; the kept-table scan and the header order match read each line with the same line classifier as the managed-range scan and the foreign-section listing, so a header-shaped array element on its own line inside a kept table's multi-line value (`["x"]`, `['x']`, `[1979-05-27]`) counts as a header only where it starts at the top level of the document (never, for an element; see the task `6b56d735` entry), and it neither hides that table's own commands, nor ends the run of kept tables, nor is printed: a hook table after it is still named and still refused when it looks harness-generated; the order match reads a header-shaped line as a header only when its root key resolves to `hooks`, checked before the top-level check, so the element lines of a large array add no parse there, other than an element that is the string `hooks` (`["hooks"]`), which reads as a `hooks` root and is probed like a header (the preserved-section listing still checks each element line of a foreign table after the kept tables, as the task `6b56d735` entry measures), and a same-event table spelled another way anywhere in the file (`[[ hooks.Stop ]]`, `[["hooks".Stop]]`, `[[hooks . Stop]]`) is counted, so the kept table is still matched to its own entry; only hook commands count (`hooks.<Event>[].command` and `hooks.<Event>[].hooks[].command`), not any other key named `command`; a kept table the order match cannot place exactly (an escape sequence in a quoted header key of that event, or a nested `hooks` table with no entry before it) refuses with its header and line number only. The split-block refusal for an uncommented table in the middle of the block now offers both fixes: restore the comment line, or move an operator-owned table below the END marker. In the two legacy paths (no BEGIN marker) a harness-commented table after such an operator table, before the END marker when one follows, now refuses through the same split-block check instead of being kept beside the fresh block; content below that END is left untouched, so a harness-commented table there is kept and not named, as on the BEGIN path. There the split-block refusal names the lines between the source-prefix line and the END marker, or, on the generated-header path, every line from the generated header through the END marker line, both included (a generated header left alone above END no longer marks a harness block, so the install would add a fresh block and leave that pair behind), not a BEGIN marker the config does not have. In those legacy paths an END marker that survived its deleted BEGIN line and follows the kept tables is handled like a drifted END: the install removes it (the written config holds one END, the fresh block's, before the kept tables), the preserved-section listing stops at it, and the kept-table refusal offers moving an operator-owned table below it. A bare `key =` line directly under a harness table cannot be told from that table's own fields and is still consumed with it; bare keys under an operator table follow that table. Pinned in `tests/cli/apply/apply-codex-runtime.test.ts` (drifted END, no END with a foreign table after it, the legacy source-prefix and legacy generated-header paths, idempotency, the uncommented-block control, the deleted-comment cases including the refusal clauses, the naming in the plan, the dry-run and the summary with both line numbers, the multi-line array value, an array element line followed by a named, a duplicate and a retired harness table, the hook-command-only reading, the order-match refusals, a multi-line string holding a hook header line and the literal-quoted header, the END-marker option, the legacy paths with a surviving END and their split-block text, that text's delete fix followed literally, a harness-commented table below the END marker, END-marker text inside a harness table's multi-line string, same-event tables spelled another way above BEGIN or below END, tables whose root only starts with `hooks` or differs from it in case and a `[[hooks.<Event>.hooks2]]` sub-table (not counted), a `[[hooks]]` array-of-tables root and a kept header whose comment holds U+2028 (a refusal, not a crash), a deeper array of tables under a kept nested hooks table, an escaped event key next to an event named `null`, and the quoted-key, indented-header, indented-comment and CRLF spellings; the order match's parse count in `tests/cli/apply/apply-codex-hook-header-map-cost.test.ts`; output parsed to show the operator table survives semantically): the drifted-END and no-END fixtures fail against the previous implementation and pass now. Mutation probes (`agent-primitives probe --pre 'npm run build'`) reverting each clause of the new condition are killed by those fixtures.
|
|
19
|
+
|
|
20
|
+
- **The Codex install no longer takes an array element on its own line for a table header** (task `6b56d735`). A multi-line array whose element sits on its own line (`["x"]`, `['x']`, `[1]`, `[1979-05-27]`) has the shape of a table header, and the install's header recognition accepted it. `harness apply --runtime codex --install --dry-run` printed such an element as `preserving foreign section: ...` (a token inside an `args` array leaked into the plan, the install summary and `--json`), an element inside a hook table ended the harness-owned region early so the install refused a config that parses, and the split-block refusal named the element as the foreign table on stderr and in `--json`. A header candidate now counts only when the document text before it parses on its own, so a line inside an open array, inline table or multi-line string is never a header, even when a real table of the same name exists elsewhere. The refusal names a header-shaped line that is not a header by its line number, never by its text. A line counts as top level exactly when the text before it parses (the full-prefix verdict); as a fast path the check first parses only the text since the last confirmed top-level line and confirms the line when that parses, and when it does not, the full prefix decides. So a config with thousands of ordinary tables stays fast, and a table after an array-of-tables element whose sub-table was confirmed before it is still listed. Any candidate whose segment fails costs a full-prefix parse as well, quadratic in the number of such candidates: a foreign array with many element lines each on its own line (measured in-process: about 0.8 s for 2000 such lines, 12 s for 8000), or many sub-tables that each follow a later element of the same array of tables (about 1.5 s for 2000). In a config that does not parse, the install now refuses with the parse-error message instead of the split-block refusal, since header recognition stops at the parse error. No other splice behaviour changes.
|
|
21
|
+
|
|
22
|
+
- **The solution-acceptance null-verdict deny now opens with a reason that states only what the gate observed** (task `8e9d7333`, follow-up to the note-line fix of task `8fe0f633`; agent-facing text and tests only, no gate decision changes). `evaluateGate`'s reason for a missing verdict read `no solution-acceptance verdict recorded for "<id>" (run mcp__grounding-mcp__solution_evaluate first)`; "recorded" is falsified by a marker recorded then deleted, an attempt finishing between the marker read and the lock read, and an `lstat` failure folded into `missing`, and "run ... first" contradicted the live-attempt deny, whose converge step says to poll the same attempt. It now reads `no usable solution-acceptance verdict for "<id>"`: the gate only knows that it received no usable verdict, so the line makes no claim about a read: the unusable-id state reads nothing and the invalid-record state reads a marker that is not a valid record. What was read stays in the note line, and the next-action guidance stays in the note line and the converge steps below it. The tests that pinned the old wording were updated; the state table now asserts on every state's deny that the first line carries no "recorded", no "first" and no read claim, against a state list the test owns and compares to the source list, and absence tests cover the plain reason and the never-evaluated and live-attempt denies.
|
|
23
|
+
|
|
10
24
|
## [0.59.1] - 2026-09-29
|
|
11
25
|
|
|
12
26
|
### Fixed
|
|
@@ -64,7 +78,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
64
78
|
|
|
65
79
|
Also hardened in the same change (task `6a037359`): a dedicated fixture in `tests/cli/apply/apply-codex-runtime.test.ts` for each guard that previously had no fixture exercising it -- an operator comment sitting directly above the first foreign table (stays attached to that table, not folded into the replaced block, and appears exactly once); two harness-managed BEGIN markers (refused, file untouched); a BEGIN with no END where a foreign table is followed further down by a real `# harness hook:` comment (refused, since the block boundaries can no longer be read as a plain line scan); a managed block whose END marker is followed by a trailing operator comment at EOF (kept, not silently replaced away; a config with no END marker keeps a trailing operator comment too, unless the trailing run holds a harness-authored line, see the task `b34ed105` entry above); exact (not `arrayContaining`) equality on `foreignSectionsPreserved` and `removedHookIds`, plus one exact byte-for-byte equality on the whole installed output for the drifted fixture. A CLI-level test (through the built program, not only the library function) asserts `--dry-run`'s and the applied install's own stdout for the removed-hook-block and preserved-foreign-section lines. The refusal itself is more actionable: it names the RESOLVED config path (never a hard-coded `~/.codex`), the first foreign table (its bracketed header only) and the line number of the first line beyond it that still looks like harness content (never that line's own text), and either tells the operator to move that table below the END marker or delete the lines between BEGIN and END (when one exists), or, when there is no END marker at all, to add one after the last harness hook table or move the foreign table below it instead (telling the operator to move something below a marker that does not exist would be nonsensical); a duplicate-BEGIN refusal tells the operator to delete the entire unwanted BEGIN/END pair, including its own marker lines and source-prefix comment, not just the lines between them. Either refusal offers the `.harness-backup-*` restore only as a last resort with an explicit warning that it discards any Codex state (hook trust, marketplaces, plugins) written since that backup; it throws a dedicated `CodexInstallRefusalError` (a `HarnessExitError` at `EX_FAIL`) instead of a plain `Error`, and `--json` emits a structured `{ outcome: "codex-install-refuse", configPath, error }` object on stdout the same way `target-exists-refuse`/`drift-refuse` already do, instead of only the plain-text message reaching stderr. The install's own permissions no longer widen a secret-bearing config: it preserves the EXISTING file's mode for both the rewritten config and its `.harness-backup-*` copy (0640 as well as 0600, pinned), defaulting to `0600` (not `atomicWriteFile`'s own `0644`) only when creating a config that did not exist before. `foreignSectionsPreserved` prints a namespace's ROOT with a wildcard and its table count when more than one table collapses into it (e.g. `[marketplaces.*] (2 tables)`), instead of silently representing several preserved tables as one indistinguishable header; a single table under a root still prints its own full header. The namespace is the header's first key, or its first two keys under `hooks` (e.g. `[hooks.state.*] (27 tables)`, so Codex's trust table is not reported as `hooks`, which also holds the harness-managed hook arrays), with keys split quote-aware and a trailing comment never part of the namespace or of a printed header. Table-header recognition is a full single-line TOML header shape, quote-aware so a key containing `[`, `]`, `.` or `#` (a real path used as a TOML key, e.g. `[projects."/Users/x/Photos [2024]"]`) is still recognized as one header on every managed-range detection path (a drifted END, no END, and the legacy no-BEGIN path), instead of being misread as ending the header early or as still-owned content; a multi-line array's own continuation line inside a still-owned hook table (e.g. ` [1, 2],`) is never misread as a foreign table header ending the region early. The stray-END search matches a whole trimmed line, not a raw substring, so a foreign single-line value that merely contains the END marker text as a substring is never mistaken for the real stray END. A TOML multi-line string is now tracked by its own opening delimiter (`"""` or `'''`), closed only by that same delimiter, with an escaped quote and a delimiter inside a comment or a single-line string ignored, so a foreign table's own multi-line string value (or a still-owned hook table's own multi-line matcher) can contain a line that reads exactly like a comment, a table header, or even the END marker without corrupting the scan.
|
|
66
80
|
|
|
67
|
-
A TOML-parsing safety net now runs after the byte-preserving splice above computes its output, before anything is written: both the current and the about-to-be-written config are parsed with `smol-toml` (a new runtime dependency, pinned `~1.8.0`) and compared. The invariant: both must parse, and once every harness-managed hook event array (`[[hooks.<Event>]]`) is removed from both documents, everything else must come out identical: `[hooks.state]` and every other single-table `hooks.*` key, plus all non-hooks content (`[projects.*]`, `[plugins.*]`, `[marketplaces.*]`, `[mcp_servers.*]`, top-level keys). Any difference refuses via `CodexInstallRefusalError`, naming the first differing key path, with the file left untouched (a `--dry-run` plan hits the same check and reports the same refusal). For that content the net is independent of the header-recognition and multi-line-string fixes above, so a future scanner regression there refuses instead of silently dropping content. It does not cover the hook event arrays themselves: an operator-authored `[[hooks.<Event>]]` entry that the line scan counts as part of the harness-managed block
|
|
81
|
+
A TOML-parsing safety net now runs after the byte-preserving splice above computes its output, before anything is written: both the current and the about-to-be-written config are parsed with `smol-toml` (a new runtime dependency, pinned `~1.8.0`) and compared. The invariant: both must parse, and once every harness-managed hook event array (`[[hooks.<Event>]]`) is removed from both documents, everything else must come out identical: `[hooks.state]` and every other single-table `hooks.*` key, plus all non-hooks content (`[projects.*]`, `[plugins.*]`, `[marketplaces.*]`, `[mcp_servers.*]`, top-level keys). Any difference refuses via `CodexInstallRefusalError`, naming the first differing key path, with the file left untouched (a `--dry-run` plan hits the same check and reports the same refusal). For that content the net is independent of the header-recognition and multi-line-string fixes above, so a future scanner regression there refuses instead of silently dropping content. It does not cover the hook event arrays themselves: an operator-authored `[[hooks.<Event>]]` entry that the line scan counts as part of the harness-managed block would be replaced without a refusal. The scan no longer counts one that sits after the harness hook tables without the `# harness hook:` comment above it, whether between the block and a drifted END marker or after a BEGIN with no END marker (named scope of task `01053b27`, see its entry above); the remaining cases, still replaced silently, are entries the scan cannot tell apart: an operator table before the first harness table inside the block, an operator table under a comment run that holds a `# harness hook:` line, bare key lines directly under a harness table, and an operator table after an old block that never carried the comments. An operator hook entry outside the managed block is kept whatever its header spelling (a trailing comment, a quoted event key). A leading UTF-8 byte order mark is ignored for parsing (the splice keeps it exactly once, also when the harness block starts on the file's first line, see the task `b34ed105` entry above), and an integer beyond 2^53 (TOML integers are 64-bit) is compared exactly instead of failing the parse. A config the harness parser cannot read refuses with "the TOML parser used by harness could not read this file", the parser's line, column and one-line reason, not a claim that the operator's syntax is wrong; a would-be output that does not parse names an operator-defined inline `hooks` table or inline hook-event array as the likely cause before a harness defect. No refusal quotes a value line of the config or the parser's code frame; only table headers and key paths are named: parse refusals carry only that position and reason (never the parser's code frame, which would echo neighbouring lines such as an API token), and the split-block and duplicate-BEGIN refusals name a line number instead of that line's text.
|
|
68
82
|
|
|
69
83
|
## [0.58.0] - 2026-09-23
|
|
70
84
|
|
package/README.md
CHANGED
|
@@ -98,7 +98,7 @@ steps).
|
|
|
98
98
|
|
|
99
99
|
## Status
|
|
100
100
|
|
|
101
|
-
The current release is `v0.59.
|
|
101
|
+
The current release is `v0.59.2`. All seven planned phases have
|
|
102
102
|
shipped; phase acceptance criteria are in
|
|
103
103
|
[`docs/ROADMAP.md`](docs/ROADMAP.md), and what shipped in each version
|
|
104
104
|
is in [`CHANGELOG.md`](CHANGELOG.md).
|
|
@@ -64,6 +64,21 @@ export interface CodexConfigInstallPlan {
|
|
|
64
64
|
* preserved byte-for-byte instead.
|
|
65
65
|
*/
|
|
66
66
|
foreignSectionsPreserved: string[];
|
|
67
|
+
/**
|
|
68
|
+
* Operator-authored `[[hooks.<Event>]]` tables (no `# harness hook:`
|
|
69
|
+
* comment above them) that the managed-range scan ended the harness block
|
|
70
|
+
* at and that are kept after the fresh block, one entry per table: its
|
|
71
|
+
* header and its 1-based line number in the config before the install and
|
|
72
|
+
* in the config the install writes (for example
|
|
73
|
+
* `[[hooks.Stop]] (line 14 before the install, line 40 after it)`), never
|
|
74
|
+
* any value text. Named because the
|
|
75
|
+
* scan cannot tell such a table from a harness table whose comment line an
|
|
76
|
+
* operator deleted (task 01053b27); a kept table that looks
|
|
77
|
+
* harness-generated is refused instead (see `assertKeptHookTablesAreOperatorOwned`).
|
|
78
|
+
* The same entries are appended to `foreignSectionsPreserved`, which is
|
|
79
|
+
* what `--dry-run` and the install summary print.
|
|
80
|
+
*/
|
|
81
|
+
keptOperatorHookTables: string[];
|
|
67
82
|
}
|
|
68
83
|
export interface CodexConfigInstallResult extends CodexConfigInstallPlan {
|
|
69
84
|
backupPath?: string;
|
|
@@ -77,6 +92,90 @@ export interface CodexConfigInstallOptions {
|
|
|
77
92
|
now?: Date;
|
|
78
93
|
}
|
|
79
94
|
export declare function defaultCodexConfigPath(homeDir?: string): string;
|
|
95
|
+
/** Answers, for a line start in `text`, whether that line sits at the top
|
|
96
|
+
* level of the document, that is, not inside a multi-line array, a multi-line
|
|
97
|
+
* inline table or a multi-line string opened by an earlier line. The document
|
|
98
|
+
* parser is the oracle: the text before the line parses on its own exactly
|
|
99
|
+
* when nothing is still open there, whereas a prefix that ends inside an
|
|
100
|
+
* array is an unterminated array and fails. A line that merely LOOKS like a
|
|
101
|
+
* table header (an array element on its own line such as `["x"]`, `['x']`,
|
|
102
|
+
* `[1]` or `[1979-05-27]`) is therefore told apart from a real header even
|
|
103
|
+
* when a real table of the same name exists elsewhere in the document, which
|
|
104
|
+
* a lookup of the header's key path in the parsed document could not do.
|
|
105
|
+
* A line inside an open construct never has a prefix that parses, so such a
|
|
106
|
+
* line is never taken for a header.
|
|
107
|
+
*
|
|
108
|
+
* The verdict is the full-prefix verdict: a line is top level when
|
|
109
|
+
* `text.slice(0, lineStart)` parses. The probe first tries a fast path: it
|
|
110
|
+
* remembers the last line start it confirmed as top level and parses only
|
|
111
|
+
* the text from there; when that segment parses, the line is confirmed
|
|
112
|
+
* without parsing the full prefix. When the segment fails, the full prefix
|
|
113
|
+
* decides, and a line it accepts is confirmed too. The segment is not
|
|
114
|
+
* claimed to agree with the full prefix: a segment can fail where the full
|
|
115
|
+
* prefix parses (a sub-table `[hooks.Stop.meta]` confirmed, then the next
|
|
116
|
+
* `[[hooks.Stop]]` element, which is never a candidate and so stays in the
|
|
117
|
+
* segment, redefines `hooks.Stop` as seen from the segment alone), and then
|
|
118
|
+
* the full prefix is what answers. So a line is reported as not top level
|
|
119
|
+
* only when the full prefix fails, and a line whose full prefix parses is
|
|
120
|
+
* always reported as top level. The fast path can only answer "top level"
|
|
121
|
+
* where the full prefix fails if the prefix holds a conflict of its own (a
|
|
122
|
+
* table defined twice); such a document does not parse as a whole, and the
|
|
123
|
+
* install refuses it through the parse check on the config either way. Even
|
|
124
|
+
* then the segment starts at a confirmed line with nothing open, so a line
|
|
125
|
+
* inside an open array, inline table or multi-line string still fails it.
|
|
126
|
+
*
|
|
127
|
+
* Cost: a real table confirmed on the fast path costs a segment parse. Any
|
|
128
|
+
* candidate whose segment fails costs a full-prefix parse too: an array
|
|
129
|
+
* element on its own line, or a sub-table after a later element of the same
|
|
130
|
+
* array of tables. Many of those are quadratic in their number (seconds at
|
|
131
|
+
* thousands; the CHANGELOG entry for this change has the measurements).
|
|
132
|
+
* Both scans query non-decreasing line starts. A query
|
|
133
|
+
* before the last confirmed line start throws instead of answering; a line
|
|
134
|
+
* reported as not top level is never confirmed, so it never moves that
|
|
135
|
+
* bound (task 6b56d735). Exported for direct tests only. */
|
|
136
|
+
export declare function createTopLevelProbe(text: string): (lineStart: number) => boolean;
|
|
137
|
+
/**
|
|
138
|
+
* Refuses loudly (mirror case of the stray-END bug) when the zone between
|
|
139
|
+
* `from` and `to` still contains a recognizable fragment of a harness
|
|
140
|
+
* hook block: a second BEGIN/source-prefix marker, or a `# harness hook:`
|
|
141
|
+
* comment. Either means a foreign table was wedged between two harness
|
|
142
|
+
* hook tables, or the BEGIN marker moved, and the true block boundaries
|
|
143
|
+
* can no longer be determined by a line scan; guessing risks reordering
|
|
144
|
+
* or dropping harness- or foreign-owned bytes, so this throws instead. The
|
|
145
|
+
* message names the resolved config path (never a hard-coded `~/.codex`),
|
|
146
|
+
* the foreign table header the scan found (usually `from` itself, see
|
|
147
|
+
* `scanOwnedContentEnd`; when only blank or comment lines precede the found
|
|
148
|
+
* marker in the zone -- so the pre-marker lookup finds no content line to
|
|
149
|
+
* report -- the header is looked up again just past that marker's own
|
|
150
|
+
* line, since the wedged table then sits after it, not before; printed
|
|
151
|
+
* through `describeTableHeader`, so only the header's own bracketed key
|
|
152
|
+
* path appears, never a trailing comment), and
|
|
153
|
+
* the line number and marker of the first line beyond it
|
|
154
|
+
* that still looks like harness content. That line's own text is never
|
|
155
|
+
* echoed: the marker is found by a substring search, so the line may be
|
|
156
|
+
* foreign content (a value holding an API token, say) that merely contains
|
|
157
|
+
* the marker text, and the refusal is printed to stderr and into `--json`
|
|
158
|
+
* output. `hasEndMarker` distinguishes the two callers: when `to` was
|
|
159
|
+
* derived from a real stray `CODEX_MANAGED_END` line, the fix guidance can
|
|
160
|
+
* point at that marker; when there is no END marker anywhere in the
|
|
161
|
+
* document (`to` is `text.length`), telling the operator to move something
|
|
162
|
+
* below a marker that does not exist would be nonsensical, so a different
|
|
163
|
+
* fix (add one, or move the table below the last harness hook table) is
|
|
164
|
+
* offered instead (task 6a037359). `blockOpening` names the line the block
|
|
165
|
+
* starts at in the delete-the-lines fix: the BEGIN marker by default; a
|
|
166
|
+
* legacy config (no BEGIN marker) whose END marker survived passes its
|
|
167
|
+
* source-prefix line or generated header instead, since a BEGIN marker it
|
|
168
|
+
* does not have is no line to delete from (task 01053b27). For the generated
|
|
169
|
+
* header the fix deletes that line and the END marker line too: a generated
|
|
170
|
+
* header left alone above END no longer marks a harness block
|
|
171
|
+
* (`findManagedRange` needs a `[[hooks.` line after it), so the install
|
|
172
|
+
* would add a fresh block and leave that pair behind as an orphan. Exported for
|
|
173
|
+
* direct tests only: the scan
|
|
174
|
+
* that feeds it never hands it a line that is not a real header, so its own
|
|
175
|
+
* naming rule is reachable in isolation only by calling it directly (task
|
|
176
|
+
* 6b56d735).
|
|
177
|
+
*/
|
|
178
|
+
export declare function assertNoSplitBlock(text: string, from: number, to: number, configPath: string, hasEndMarker: boolean, blockOpening?: string): void;
|
|
80
179
|
export declare function validateCodexManagedConfig(content: string): void;
|
|
81
180
|
/**
|
|
82
181
|
* The TOML-semantic safety net (task 6a037359). The byte-preserving text
|
|
@@ -101,8 +200,12 @@ export declare function validateCodexManagedConfig(content: string): void;
|
|
|
101
200
|
* from a harness-written one would need the same line-level reading of the
|
|
102
201
|
* file this net is meant to be independent of. An operator-authored
|
|
103
202
|
* `[[hooks.<Event>]]` entry that the line scan wrongly counts as part of
|
|
104
|
-
* the harness-managed block is therefore replaced without a refusal
|
|
105
|
-
*
|
|
203
|
+
* the harness-managed block is therefore replaced without a refusal (task
|
|
204
|
+
* 01053b27 covers the operator table after the harness tables, which the scan
|
|
205
|
+
* now keeps and names; still replaced silently are an operator table before
|
|
206
|
+
* the first harness table inside the block, one under a comment run that
|
|
207
|
+
* holds a `# harness hook:` line, bare keys directly under a harness table,
|
|
208
|
+
* and one after an old block that never carried the comments).
|
|
106
209
|
*
|
|
107
210
|
* Parsing goes through `parseToml` (a leading byte order mark ignored,
|
|
108
211
|
* 64-bit integers kept as `bigint`). A document that does not parse refuses
|
|
@@ -25,6 +25,9 @@ export class CodexInstallRefusalError extends HarnessExitError {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
const GENERATED_HEADER = "# Generated by harness apply --runtime codex.";
|
|
28
|
+
/** How the split-block refusal names a legacy generated header as the line
|
|
29
|
+
* its block starts at (`assertNoSplitBlock`, `findManagedRange`). */
|
|
30
|
+
const GENERATED_HEADER_OPENING = `the '${GENERATED_HEADER}' line`;
|
|
28
31
|
const LEGACY_HOOK_TABLE_RE = /^\[\[hooks\.(pre_tool_use|post_tool_use|user_prompt_submit|session_start|stop)\]\]$/;
|
|
29
32
|
const CURRENT_HOOK_TABLE_RE = /^\[\[hooks\.[A-Za-z][A-Za-z0-9_]*\]\]$/;
|
|
30
33
|
// A single, unquoted-or-quoted TOML bare/quoted key: `foo-bar_1`, a basic
|
|
@@ -45,7 +48,11 @@ const TOML_KEY = String.raw `(?:[A-Za-z0-9_-]+|"(?:[^"\\]|\\.)*"|'[^']*')`;
|
|
|
45
48
|
// single key with nothing after it, never as an array element) so a
|
|
46
49
|
// multi-line array/value sitting inside a still-owned harness hook table
|
|
47
50
|
// is never misread as a foreign table header ending the owned region
|
|
48
|
-
// early (task 6a037359).
|
|
51
|
+
// early (task 6a037359). A lone element on its own line (`["x"]`, `['x']`,
|
|
52
|
+
// `[1]`, `[1979-05-27]`) does have the shape of a header, so this regex is
|
|
53
|
+
// only a candidate filter: every caller also requires `createTopLevelProbe`
|
|
54
|
+
// before treating a match as a real header (task 6b56d735), the scans
|
|
55
|
+
// through `createLineClassifier` (task 01053b27).
|
|
49
56
|
const NON_HOOK_TABLE_RE = new RegExp(String.raw `^\[(?!\[hooks\.)\[?\s*${TOML_KEY}(?:\s*\.\s*${TOML_KEY})*\s*\]\]?\s*(?:#.*)?$`);
|
|
50
57
|
// Every emitted hook table is preceded by exactly this comment shape
|
|
51
58
|
// (generate-codex-config.ts's `emitHook`); used both to name removed hook
|
|
@@ -53,6 +60,16 @@ const NON_HOOK_TABLE_RE = new RegExp(String.raw `^\[(?!\[hooks\.)\[?\s*${TOML_KE
|
|
|
53
60
|
// between two harness hook tables (see `assertNoSplitBlock`).
|
|
54
61
|
const HARNESS_HOOK_COMMENT_PREFIX = "# harness hook: ";
|
|
55
62
|
const HOOK_ID_LINE_RE = /^# harness hook: (.+) \(budget_ms=\d+\)$/;
|
|
63
|
+
// A `[[hooks.<Event>]]` array-of-tables header, harness-written or not.
|
|
64
|
+
// `NON_HOOK_TABLE_RE` deliberately excludes it, so the ownership scan tells
|
|
65
|
+
// the two apart by the `# harness hook:` comment above the header instead
|
|
66
|
+
// (see `scanOwnedContentEnd`).
|
|
67
|
+
const HOOK_ARRAY_HEADER_RE = /^\[\[hooks\./;
|
|
68
|
+
/** True when a run of comment/blank lines holds a line the generator writes
|
|
69
|
+
* above every hook table (`# harness hook: <id> (budget_ms=N)`). */
|
|
70
|
+
function runHoldsHarnessHookComment(run) {
|
|
71
|
+
return run.split("\n").some((line) => line.trim().startsWith(HARNESS_HOOK_COMMENT_PREFIX));
|
|
72
|
+
}
|
|
56
73
|
export function defaultCodexConfigPath(homeDir) {
|
|
57
74
|
return path.join(homeDir ?? os.homedir(), ".codex", "config.toml");
|
|
58
75
|
}
|
|
@@ -202,9 +219,72 @@ function findExactLine(text, target, from) {
|
|
|
202
219
|
}
|
|
203
220
|
return -1;
|
|
204
221
|
}
|
|
222
|
+
/** Answers, for a line start in `text`, whether that line sits at the top
|
|
223
|
+
* level of the document, that is, not inside a multi-line array, a multi-line
|
|
224
|
+
* inline table or a multi-line string opened by an earlier line. The document
|
|
225
|
+
* parser is the oracle: the text before the line parses on its own exactly
|
|
226
|
+
* when nothing is still open there, whereas a prefix that ends inside an
|
|
227
|
+
* array is an unterminated array and fails. A line that merely LOOKS like a
|
|
228
|
+
* table header (an array element on its own line such as `["x"]`, `['x']`,
|
|
229
|
+
* `[1]` or `[1979-05-27]`) is therefore told apart from a real header even
|
|
230
|
+
* when a real table of the same name exists elsewhere in the document, which
|
|
231
|
+
* a lookup of the header's key path in the parsed document could not do.
|
|
232
|
+
* A line inside an open construct never has a prefix that parses, so such a
|
|
233
|
+
* line is never taken for a header.
|
|
234
|
+
*
|
|
235
|
+
* The verdict is the full-prefix verdict: a line is top level when
|
|
236
|
+
* `text.slice(0, lineStart)` parses. The probe first tries a fast path: it
|
|
237
|
+
* remembers the last line start it confirmed as top level and parses only
|
|
238
|
+
* the text from there; when that segment parses, the line is confirmed
|
|
239
|
+
* without parsing the full prefix. When the segment fails, the full prefix
|
|
240
|
+
* decides, and a line it accepts is confirmed too. The segment is not
|
|
241
|
+
* claimed to agree with the full prefix: a segment can fail where the full
|
|
242
|
+
* prefix parses (a sub-table `[hooks.Stop.meta]` confirmed, then the next
|
|
243
|
+
* `[[hooks.Stop]]` element, which is never a candidate and so stays in the
|
|
244
|
+
* segment, redefines `hooks.Stop` as seen from the segment alone), and then
|
|
245
|
+
* the full prefix is what answers. So a line is reported as not top level
|
|
246
|
+
* only when the full prefix fails, and a line whose full prefix parses is
|
|
247
|
+
* always reported as top level. The fast path can only answer "top level"
|
|
248
|
+
* where the full prefix fails if the prefix holds a conflict of its own (a
|
|
249
|
+
* table defined twice); such a document does not parse as a whole, and the
|
|
250
|
+
* install refuses it through the parse check on the config either way. Even
|
|
251
|
+
* then the segment starts at a confirmed line with nothing open, so a line
|
|
252
|
+
* inside an open array, inline table or multi-line string still fails it.
|
|
253
|
+
*
|
|
254
|
+
* Cost: a real table confirmed on the fast path costs a segment parse. Any
|
|
255
|
+
* candidate whose segment fails costs a full-prefix parse too: an array
|
|
256
|
+
* element on its own line, or a sub-table after a later element of the same
|
|
257
|
+
* array of tables. Many of those are quadratic in their number (seconds at
|
|
258
|
+
* thousands; the CHANGELOG entry for this change has the measurements).
|
|
259
|
+
* Both scans query non-decreasing line starts. A query
|
|
260
|
+
* before the last confirmed line start throws instead of answering; a line
|
|
261
|
+
* reported as not top level is never confirmed, so it never moves that
|
|
262
|
+
* bound (task 6b56d735). Exported for direct tests only. */
|
|
263
|
+
export function createTopLevelProbe(text) {
|
|
264
|
+
let confirmed = 0;
|
|
265
|
+
const parses = (content) => {
|
|
266
|
+
try {
|
|
267
|
+
parseToml(content);
|
|
268
|
+
return true;
|
|
269
|
+
}
|
|
270
|
+
catch {
|
|
271
|
+
return false;
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
return (lineStart) => {
|
|
275
|
+
if (lineStart < confirmed) {
|
|
276
|
+
throw new Error(`top-level probe queried at offset ${lineStart}, before the last confirmed line start ${confirmed}`);
|
|
277
|
+
}
|
|
278
|
+
const topLevel = parses(text.slice(confirmed, lineStart)) ||
|
|
279
|
+
(confirmed > 0 && parses(text.slice(0, lineStart)));
|
|
280
|
+
if (topLevel)
|
|
281
|
+
confirmed = lineStart;
|
|
282
|
+
return topLevel;
|
|
283
|
+
};
|
|
284
|
+
}
|
|
205
285
|
/** The first non-blank, non-comment line at or after `from` (bounded by
|
|
206
|
-
* `limit`), trimmed. Used to name the
|
|
207
|
-
* refusal message. */
|
|
286
|
+
* `limit`), trimmed, with the offset its line starts at. Used to name the
|
|
287
|
+
* offending foreign header in a refusal message. */
|
|
208
288
|
function firstContentLine(text, from, limit) {
|
|
209
289
|
let pos = Math.max(from, 0);
|
|
210
290
|
const end = Math.max(limit, from);
|
|
@@ -212,11 +292,59 @@ function firstContentLine(text, from, limit) {
|
|
|
212
292
|
const lineEnd = Math.min(lineEndAfter(text, pos), end);
|
|
213
293
|
const trimmed = text.slice(pos, lineEnd).trim();
|
|
214
294
|
if (trimmed !== "" && !trimmed.startsWith("#"))
|
|
215
|
-
return trimmed;
|
|
295
|
+
return { line: trimmed, start: pos };
|
|
216
296
|
pos = lineEnd;
|
|
217
297
|
}
|
|
218
298
|
return null;
|
|
219
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* The one line classifier every header scan of the install uses (the
|
|
302
|
+
* managed-range scan, the foreign-section listing, the kept hook table scan
|
|
303
|
+
* and the hook header map), so a line is read the same way wherever it is
|
|
304
|
+
* met (task 01053b27). Called once per line, in order, from a line start at
|
|
305
|
+
* which nothing is open. The rule, applied in this order:
|
|
306
|
+
*
|
|
307
|
+
* 1. A line that starts inside a multi-line string opened by an earlier line
|
|
308
|
+
* (`nextTripleDelim`) is `string`: string content, whatever it looks like.
|
|
309
|
+
* 2. A blank line or a `#` comment line is `comment` (the END marker and the
|
|
310
|
+
* `# harness hook:` lines are comment lines the callers check by text).
|
|
311
|
+
* 3. A line starting `[[hooks.` is `hookHeader`. No parse is needed: a dotted
|
|
312
|
+
* bare key is not a TOML value, so in a config that parses such a line is
|
|
313
|
+
* never inside an array or inline table, and a config that does not parse
|
|
314
|
+
* is refused by the parse checks before anything is written.
|
|
315
|
+
* 4. Any other line with the shape of a table header (`NON_HOOK_TABLE_RE`)
|
|
316
|
+
* is `foreignHeader` only when it starts at the top level of the document
|
|
317
|
+
* (`createTopLevelProbe`); otherwise it is an array element on its own
|
|
318
|
+
* line inside a multi-line value (`["x"]`, `['x']`, `[1]`,
|
|
319
|
+
* `[1979-05-27]`) and is `content`, never a header.
|
|
320
|
+
* 5. Every other line is `content` (a key/value line or a continuation line
|
|
321
|
+
* of a multi-line value).
|
|
322
|
+
*
|
|
323
|
+
* `wanted` narrows rule 4 for a scan that only uses some headers: a
|
|
324
|
+
* header-shaped line it rejects is `content` for that scan without the
|
|
325
|
+
* top-level probe, whose full-prefix parse is the cost of rule 4 (see
|
|
326
|
+
* `createTopLevelProbe`). Only the hook header map passes one, since it
|
|
327
|
+
* resolves nothing but headers whose root key is `hooks`.
|
|
328
|
+
*/
|
|
329
|
+
function createLineClassifier(text, wanted = () => true) {
|
|
330
|
+
let delim = null;
|
|
331
|
+
const startsAtTopLevel = createTopLevelProbe(text);
|
|
332
|
+
return (lineStart, rawLine) => {
|
|
333
|
+
const startedInsideString = delim !== null;
|
|
334
|
+
delim = nextTripleDelim(rawLine, delim);
|
|
335
|
+
if (startedInsideString)
|
|
336
|
+
return "string";
|
|
337
|
+
const trimmed = rawLine.trim();
|
|
338
|
+
if (trimmed === "" || trimmed.startsWith("#"))
|
|
339
|
+
return "comment";
|
|
340
|
+
if (HOOK_ARRAY_HEADER_RE.test(trimmed))
|
|
341
|
+
return "hookHeader";
|
|
342
|
+
if (NON_HOOK_TABLE_RE.test(trimmed) && wanted(trimmed) && startsAtTopLevel(lineStart)) {
|
|
343
|
+
return "foreignHeader";
|
|
344
|
+
}
|
|
345
|
+
return "content";
|
|
346
|
+
};
|
|
347
|
+
}
|
|
220
348
|
/**
|
|
221
349
|
* Scans forward from `start` classifying each line as either still-owned
|
|
222
350
|
* harness content or the start of foreign (non-harness) content, WITHOUT
|
|
@@ -235,7 +363,24 @@ function firstContentLine(text, from, limit) {
|
|
|
235
363
|
* into the replaced block.
|
|
236
364
|
*
|
|
237
365
|
* A line is "foreign" exactly when it is a table header that is not one
|
|
238
|
-
* of ours (`NON_HOOK_TABLE_RE`, mirroring the pre-existing legacy scan)
|
|
366
|
+
* of ours (`NON_HOOK_TABLE_RE`, mirroring the pre-existing legacy scan) and
|
|
367
|
+
* sits at the top level of the document (`createTopLevelProbe`: an array
|
|
368
|
+
* element on its own line inside a multi-line value has the same shape but
|
|
369
|
+
* is not a header), or
|
|
370
|
+
* a `[[hooks.<Event>]]` header without a `# harness hook:` comment above it
|
|
371
|
+
* that comes after at least one header that has one (task 01053b27).
|
|
372
|
+
* Failure modes of that second rule: a harness table whose comment an
|
|
373
|
+
* operator deleted ends the range there (a later harness table still
|
|
374
|
+
* carrying its comment, before the END marker when one follows, lands in
|
|
375
|
+
* the zone `assertNoSplitBlock` refuses on; a
|
|
376
|
+
* last table stays as an operator table, which the install names in
|
|
377
|
+
* `keptOperatorHookTables` and refuses when its command is one harness
|
|
378
|
+
* writes, see `assertKeptHookTablesAreOperatorOwned`); a
|
|
379
|
+
* block that never carried the comments (older generator output) has no
|
|
380
|
+
* marked table before its first hook table, so it is consumed whole as
|
|
381
|
+
* before. Bare `key =` lines of an operator table follow that table out of
|
|
382
|
+
* the range; bare keys placed directly under a harness table cannot be told
|
|
383
|
+
* apart from the harness table's own fields and are still consumed with it;
|
|
239
384
|
* every other non-blank, non-comment line (a hook table's `matcher =` /
|
|
240
385
|
* `hooks =` field, or an older schema's bare `command =` / `match =` /
|
|
241
386
|
* `timeout_ms =` / `blocking =` field) is treated as still-owned content,
|
|
@@ -252,31 +397,43 @@ function scanOwnedContentEnd(text, start) {
|
|
|
252
397
|
let pos = start;
|
|
253
398
|
let commentRunStart = null;
|
|
254
399
|
let sawOwnedContent = false;
|
|
255
|
-
let
|
|
400
|
+
let sawMarkedHookTable = false;
|
|
401
|
+
const classify = createLineClassifier(text);
|
|
256
402
|
while (pos < text.length) {
|
|
257
403
|
const lineEnd = lineEndAfter(text, pos);
|
|
258
404
|
const rawLine = text.slice(pos, lineEnd);
|
|
259
|
-
const
|
|
260
|
-
|
|
261
|
-
if (startedInsideString) {
|
|
405
|
+
const kind = classify(pos, rawLine);
|
|
406
|
+
if (kind === "string") {
|
|
262
407
|
commentRunStart = null;
|
|
263
408
|
sawOwnedContent = true;
|
|
264
409
|
pos = lineEnd;
|
|
265
410
|
continue;
|
|
266
411
|
}
|
|
267
|
-
|
|
268
|
-
if (trimmed === CODEX_MANAGED_END) {
|
|
412
|
+
if (rawLine.trim() === CODEX_MANAGED_END) {
|
|
269
413
|
return { end: lineEnd, sawEndMarker: true };
|
|
270
414
|
}
|
|
271
|
-
if (
|
|
415
|
+
if (kind === "comment") {
|
|
272
416
|
if (commentRunStart === null)
|
|
273
417
|
commentRunStart = pos;
|
|
274
418
|
pos = lineEnd;
|
|
275
419
|
continue;
|
|
276
420
|
}
|
|
277
|
-
if (
|
|
421
|
+
if (kind === "foreignHeader") {
|
|
278
422
|
return { end: commentRunStart ?? pos, sawEndMarker: false };
|
|
279
423
|
}
|
|
424
|
+
if (kind === "hookHeader") {
|
|
425
|
+
const marked = commentRunStart !== null &&
|
|
426
|
+
runHoldsHarnessHookComment(text.slice(commentRunStart, pos));
|
|
427
|
+
if (marked) {
|
|
428
|
+
sawMarkedHookTable = true;
|
|
429
|
+
}
|
|
430
|
+
else if (sawMarkedHookTable) {
|
|
431
|
+
// An operator-authored hook table (no `# harness hook:` comment
|
|
432
|
+
// above it) after the harness tables ends the owned region, like a
|
|
433
|
+
// foreign table, and keeps a comment attached to it (task 01053b27).
|
|
434
|
+
return { end: commentRunStart ?? pos, sawEndMarker: false, endedAtOperatorHookTable: true };
|
|
435
|
+
}
|
|
436
|
+
}
|
|
280
437
|
commentRunStart = null;
|
|
281
438
|
sawOwnedContent = true;
|
|
282
439
|
pos = lineEnd;
|
|
@@ -328,9 +485,21 @@ function scanOwnedContentEnd(text, start) {
|
|
|
328
485
|
* document (`to` is `text.length`), telling the operator to move something
|
|
329
486
|
* below a marker that does not exist would be nonsensical, so a different
|
|
330
487
|
* fix (add one, or move the table below the last harness hook table) is
|
|
331
|
-
* offered instead (task 6a037359).
|
|
488
|
+
* offered instead (task 6a037359). `blockOpening` names the line the block
|
|
489
|
+
* starts at in the delete-the-lines fix: the BEGIN marker by default; a
|
|
490
|
+
* legacy config (no BEGIN marker) whose END marker survived passes its
|
|
491
|
+
* source-prefix line or generated header instead, since a BEGIN marker it
|
|
492
|
+
* does not have is no line to delete from (task 01053b27). For the generated
|
|
493
|
+
* header the fix deletes that line and the END marker line too: a generated
|
|
494
|
+
* header left alone above END no longer marks a harness block
|
|
495
|
+
* (`findManagedRange` needs a `[[hooks.` line after it), so the install
|
|
496
|
+
* would add a fresh block and leave that pair behind as an orphan. Exported for
|
|
497
|
+
* direct tests only: the scan
|
|
498
|
+
* that feeds it never hands it a line that is not a real header, so its own
|
|
499
|
+
* naming rule is reachable in isolation only by calling it directly (task
|
|
500
|
+
* 6b56d735).
|
|
332
501
|
*/
|
|
333
|
-
function assertNoSplitBlock(text, from, to, configPath, hasEndMarker) {
|
|
502
|
+
export function assertNoSplitBlock(text, from, to, configPath, hasEndMarker, blockOpening = `'${CODEX_MANAGED_BEGIN}'`) {
|
|
334
503
|
const zoneStart = Math.max(from, 0);
|
|
335
504
|
const zoneEnd = Math.max(to, from);
|
|
336
505
|
const zone = text.slice(zoneStart, zoneEnd);
|
|
@@ -359,13 +528,31 @@ function assertNoSplitBlock(text, from, to, configPath, hasEndMarker) {
|
|
|
359
528
|
const markerLineEnd = lineEndAfter(text, zoneStart + markerOffset);
|
|
360
529
|
const foreignHeaderLine = firstContentLine(text, zoneStart, zoneStart + markerOffset) ??
|
|
361
530
|
firstContentLine(text, markerLineEnd, zoneEnd);
|
|
362
|
-
const firstForeignHeader =
|
|
363
|
-
const
|
|
364
|
-
?
|
|
365
|
-
`
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
531
|
+
const firstForeignHeader = describeForeignHeaderLine(text, foreignHeaderLine);
|
|
532
|
+
const fixes = hasEndMarker
|
|
533
|
+
? [
|
|
534
|
+
`move ${firstForeignHeader} below the '${CODEX_MANAGED_END}' marker`,
|
|
535
|
+
blockOpening === GENERATED_HEADER_OPENING
|
|
536
|
+
? `delete every line from ${blockOpening} through the '${CODEX_MANAGED_END}' marker ` +
|
|
537
|
+
"line, both included, so the install writes a fresh harness block"
|
|
538
|
+
: `delete the lines between ${blockOpening} and '${CODEX_MANAGED_END}' so only ` +
|
|
539
|
+
"harness-owned tables remain between them",
|
|
540
|
+
]
|
|
541
|
+
: [
|
|
542
|
+
`add a '${CODEX_MANAGED_END}' marker line right after the last harness hook table ` +
|
|
543
|
+
`(before ${firstForeignHeader})`,
|
|
544
|
+
`move ${firstForeignHeader} below the last harness hook table`,
|
|
545
|
+
];
|
|
546
|
+
// An uncommented hook table in the middle may be a harness table whose
|
|
547
|
+
// comment line was deleted, so moving it (the operator-table fix) is only
|
|
548
|
+
// right for an operator-owned one; name the restore option first (task
|
|
549
|
+
// 01053b27).
|
|
550
|
+
const isHookTable = HOOK_ARRAY_HEADER_RE.test(foreignHeaderLine?.line ?? "");
|
|
551
|
+
const guidance = isHookTable
|
|
552
|
+
? `If ${firstForeignHeader} is a harness hook table whose '${HARNESS_HOOK_COMMENT_PREFIX}<id> ` +
|
|
553
|
+
"(budget_ms=<n>)' comment line was deleted, restore that comment line directly above it. " +
|
|
554
|
+
`If it is an operator-owned table, ${fixes.join(", or ")}`
|
|
555
|
+
: fixes.join(", or ").replace(/^./, (c) => c.toUpperCase());
|
|
369
556
|
throw new CodexInstallRefusalError(`Codex config ${configPath} has a foreign table (${firstForeignHeader}) sitting before ` +
|
|
370
557
|
`more harness-owned content: line ${offendingLineNumber} contains '${marker}' and still ` +
|
|
371
558
|
"looks like part of the harness-managed hook block; refusing to guess the block " +
|
|
@@ -398,6 +585,23 @@ function parseTableHeader(line) {
|
|
|
398
585
|
function describeTableHeader(line) {
|
|
399
586
|
return parseTableHeader(line)?.header ?? "(unknown)";
|
|
400
587
|
}
|
|
588
|
+
/** How a refusal names the line it found where the foreign table's header
|
|
589
|
+
* should be. A verified header prints as its bracketed key path. A line that
|
|
590
|
+
* has the shape of a header but is not one (an array element on its own line
|
|
591
|
+
* inside a multi-line value) is never printed, since it can hold a config
|
|
592
|
+
* value such as a token; only its line number is. Any other line is
|
|
593
|
+
* `(unknown)`, as before. */
|
|
594
|
+
function describeForeignHeaderLine(text, found) {
|
|
595
|
+
if (found === null)
|
|
596
|
+
return "(unknown)";
|
|
597
|
+
const parsed = parseTableHeader(found.line);
|
|
598
|
+
if (parsed === null)
|
|
599
|
+
return "(unknown)";
|
|
600
|
+
if (!createTopLevelProbe(text)(found.start)) {
|
|
601
|
+
return `line ${lineNumberAt(text, found.start)}`;
|
|
602
|
+
}
|
|
603
|
+
return parsed.header;
|
|
604
|
+
}
|
|
401
605
|
/** A key segment's bare name: a literal (`'...'`) key's inner text, a basic
|
|
402
606
|
* (`"..."`) key's inner text when it holds no escape sequence, otherwise
|
|
403
607
|
* the segment as written. Used only to recognize the `hooks` root however
|
|
@@ -441,18 +645,12 @@ function collectForeignSectionHeaders(text, from, to) {
|
|
|
441
645
|
const counts = new Map();
|
|
442
646
|
let pos = Math.max(from, 0);
|
|
443
647
|
const limit = Math.max(to, from);
|
|
444
|
-
|
|
648
|
+
const classify = createLineClassifier(text);
|
|
445
649
|
while (pos < limit) {
|
|
446
650
|
const lineEnd = Math.min(lineEndAfter(text, pos), limit);
|
|
447
651
|
const rawLine = text.slice(pos, lineEnd);
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
if (startedInsideString) {
|
|
451
|
-
pos = lineEnd;
|
|
452
|
-
continue;
|
|
453
|
-
}
|
|
454
|
-
const trimmed = rawLine.trim();
|
|
455
|
-
if (NON_HOOK_TABLE_RE.test(trimmed)) {
|
|
652
|
+
if (classify(pos, rawLine) === "foreignHeader") {
|
|
653
|
+
const trimmed = rawLine.trim();
|
|
456
654
|
const root = foreignSectionRootKey(trimmed);
|
|
457
655
|
counts.set(root, (counts.get(root) ?? 0) + 1);
|
|
458
656
|
if (!seenRoots.has(root)) {
|
|
@@ -477,6 +675,42 @@ function extractHookIds(content) {
|
|
|
477
675
|
}
|
|
478
676
|
return ids;
|
|
479
677
|
}
|
|
678
|
+
/**
|
|
679
|
+
* The operator-authored hook tables directly after a managed range that
|
|
680
|
+
* ended at one (`scanOwnedContentEnd`'s `endedAtOperatorHookTable`): every
|
|
681
|
+
* `[[hooks.*]]` header from `from` up to the first non-hook table header or
|
|
682
|
+
* `to`, each by header, line number and offset. Lines are read by
|
|
683
|
+
* `createLineClassifier`, so an array element on its own line inside a kept
|
|
684
|
+
* 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 for any other ending
|
|
686
|
+
* (the first header at `from` is then a non-hook table, or there is none).
|
|
687
|
+
* The caller has already refused a zone that holds a harness marker
|
|
688
|
+
* (`assertNoSplitBlock`), so no header found here carries a `# harness
|
|
689
|
+
* hook:` comment.
|
|
690
|
+
*/
|
|
691
|
+
function collectKeptHookTables(text, from, to) {
|
|
692
|
+
const tables = [];
|
|
693
|
+
let pos = from;
|
|
694
|
+
const classify = createLineClassifier(text);
|
|
695
|
+
while (pos < to) {
|
|
696
|
+
const lineEnd = Math.min(lineEndAfter(text, pos), to);
|
|
697
|
+
const rawLine = text.slice(pos, lineEnd);
|
|
698
|
+
const kind = classify(pos, rawLine);
|
|
699
|
+
if (kind === "foreignHeader")
|
|
700
|
+
break;
|
|
701
|
+
if (kind === "hookHeader") {
|
|
702
|
+
tables.push({ header: describeTableHeader(rawLine), line: lineNumberAt(text, pos), start: pos });
|
|
703
|
+
}
|
|
704
|
+
pos = lineEnd;
|
|
705
|
+
}
|
|
706
|
+
return tables;
|
|
707
|
+
}
|
|
708
|
+
/** A kept table as the install names it: its header, its 1-based line
|
|
709
|
+
* number in the config before the install and in the config the install
|
|
710
|
+
* writes (`nextLines`, same order as `kept`), never any value text. */
|
|
711
|
+
function describeKeptHookTables(kept, nextLines) {
|
|
712
|
+
return kept.map((t, i) => `${t.header} (line ${t.line} before the install, line ${nextLines[i]} after it)`);
|
|
713
|
+
}
|
|
480
714
|
const UTF8_BOM = "\uFEFF";
|
|
481
715
|
/** A leading UTF-8 BOM is not part of any managed range: a range that would
|
|
482
716
|
* start at offset 0 starts just past the BOM instead, so the splice keeps
|
|
@@ -484,6 +718,64 @@ const UTF8_BOM = "\uFEFF";
|
|
|
484
718
|
function startPastBom(text, start) {
|
|
485
719
|
return start === 0 && text.startsWith(UTF8_BOM) ? UTF8_BOM.length : start;
|
|
486
720
|
}
|
|
721
|
+
/**
|
|
722
|
+
* The range from `start` to `end`, where the ownership scan stopped short of
|
|
723
|
+
* an END marker, plus what it keeps after `end`: when a stray END marker line
|
|
724
|
+
* follows (a drifted END), the zone up to it is checked for a split block
|
|
725
|
+
* (`assertNoSplitBlock`), its foreign sections and kept operator hook tables
|
|
726
|
+
* are collected, and that END line is excised by the splice (`strayEnd`);
|
|
727
|
+
* without one, the same happens up to the end of the document. Content below
|
|
728
|
+
* that END line is never read here and the splice leaves it untouched.
|
|
729
|
+
* `blockOpening` is the line the split-block refusal names as the start of
|
|
730
|
+
* the block (`assertNoSplitBlock`; the BEGIN marker when omitted).
|
|
731
|
+
*/
|
|
732
|
+
function rangeBeforeStrayEnd(text, start, end, configPath, blockOpening) {
|
|
733
|
+
const strayIdx = findExactLine(text, CODEX_MANAGED_END, end);
|
|
734
|
+
if (strayIdx === -1) {
|
|
735
|
+
assertNoSplitBlock(text, end, text.length, configPath, false);
|
|
736
|
+
const foreignSectionsPreserved = collectForeignSectionHeaders(text, end, text.length);
|
|
737
|
+
const keptHookTables = collectKeptHookTables(text, end, text.length);
|
|
738
|
+
return { start, end, foreignSectionsPreserved, keptHookTables };
|
|
739
|
+
}
|
|
740
|
+
const strayLineStart = lineStartAt(text, strayIdx);
|
|
741
|
+
const strayLineEnd = lineEndAfter(text, strayIdx);
|
|
742
|
+
assertNoSplitBlock(text, end, strayLineStart, configPath, true, blockOpening);
|
|
743
|
+
const foreignSectionsPreserved = collectForeignSectionHeaders(text, end, strayLineStart);
|
|
744
|
+
const keptHookTables = collectKeptHookTables(text, end, strayLineStart);
|
|
745
|
+
return {
|
|
746
|
+
start,
|
|
747
|
+
end,
|
|
748
|
+
strayEnd: { start: strayLineStart, end: strayLineEnd },
|
|
749
|
+
foreignSectionsPreserved,
|
|
750
|
+
keptHookTables,
|
|
751
|
+
};
|
|
752
|
+
}
|
|
753
|
+
/**
|
|
754
|
+
* The range of a legacy (no BEGIN marker) config: the source-prefix or
|
|
755
|
+
* generated-header paths. When the scan ended at an operator hook table,
|
|
756
|
+
* the zone after it is handled like the BEGIN path's
|
|
757
|
+
* (`rangeBeforeStrayEnd`): an END marker that survived its deleted BEGIN
|
|
758
|
+
* line, sitting after the kept tables, is excised like a drifted END, so
|
|
759
|
+
* the install leaves no orphan END line below the kept tables and the
|
|
760
|
+
* kept-table refusal offers moving an operator-owned table below that END;
|
|
761
|
+
* a harness-commented table after the kept tables refuses through the
|
|
762
|
+
* split-block check instead of being kept as if it were operator content
|
|
763
|
+
* (the fresh block would repeat it) when it sits before that END, or
|
|
764
|
+
* anywhere later when no END follows. Content below that END is untouched,
|
|
765
|
+
* as on the BEGIN path, so a harness-commented table there is kept and not
|
|
766
|
+
* named. The split-block refusal names `blockOpening` (the source-prefix
|
|
767
|
+
* line or the generated header) as the start of the block, since there is
|
|
768
|
+
* no BEGIN marker (task 01053b27). Other endings keep the legacy behaviour.
|
|
769
|
+
*/
|
|
770
|
+
function legacyManagedRange(text, start, scan, configPath, blockOpening) {
|
|
771
|
+
if (scan.endedAtOperatorHookTable) {
|
|
772
|
+
return rangeBeforeStrayEnd(text, start, scan.end, configPath, blockOpening);
|
|
773
|
+
}
|
|
774
|
+
const foreignSectionsPreserved = scan.sawEndMarker
|
|
775
|
+
? []
|
|
776
|
+
: collectForeignSectionHeaders(text, scan.end, text.length);
|
|
777
|
+
return { start, end: scan.end, foreignSectionsPreserved, keptHookTables: [] };
|
|
778
|
+
}
|
|
487
779
|
function findManagedRange(text, configPath) {
|
|
488
780
|
const begin = text.indexOf(CODEX_MANAGED_BEGIN);
|
|
489
781
|
if (begin !== -1) {
|
|
@@ -518,34 +810,14 @@ function findManagedRange(text, configPath) {
|
|
|
518
810
|
const scan = scanOwnedContentEnd(text, contentStart);
|
|
519
811
|
const end = scan.end;
|
|
520
812
|
if (scan.sawEndMarker) {
|
|
521
|
-
return { start, end, foreignSectionsPreserved: [] };
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
if (strayIdx === -1) {
|
|
525
|
-
assertNoSplitBlock(text, end, text.length, configPath, false);
|
|
526
|
-
const foreignSectionsPreserved = collectForeignSectionHeaders(text, end, text.length);
|
|
527
|
-
return { start, end, foreignSectionsPreserved };
|
|
528
|
-
}
|
|
529
|
-
const strayLineStart = lineStartAt(text, strayIdx);
|
|
530
|
-
const strayLineEnd = lineEndAfter(text, strayIdx);
|
|
531
|
-
assertNoSplitBlock(text, end, strayLineStart, configPath, true);
|
|
532
|
-
const foreignSectionsPreserved = collectForeignSectionHeaders(text, end, strayLineStart);
|
|
533
|
-
return {
|
|
534
|
-
start,
|
|
535
|
-
end,
|
|
536
|
-
strayEnd: { start: strayLineStart, end: strayLineEnd },
|
|
537
|
-
foreignSectionsPreserved,
|
|
538
|
-
};
|
|
813
|
+
return { start, end, foreignSectionsPreserved: [], keptHookTables: [] };
|
|
814
|
+
}
|
|
815
|
+
return rangeBeforeStrayEnd(text, start, end, configPath);
|
|
539
816
|
}
|
|
540
817
|
const source = text.indexOf(CODEX_MANAGED_SOURCE_PREFIX);
|
|
541
818
|
if (source !== -1) {
|
|
542
819
|
const start = startPastBom(text, lineStartAt(text, source));
|
|
543
|
-
|
|
544
|
-
const end = scan.end;
|
|
545
|
-
const foreignSectionsPreserved = scan.sawEndMarker
|
|
546
|
-
? []
|
|
547
|
-
: collectForeignSectionHeaders(text, end, text.length);
|
|
548
|
-
return { start, end, foreignSectionsPreserved };
|
|
820
|
+
return legacyManagedRange(text, start, scanOwnedContentEnd(text, start), configPath, `the '${CODEX_MANAGED_SOURCE_PREFIX}' source-prefix line`);
|
|
549
821
|
}
|
|
550
822
|
const generated = text.indexOf(GENERATED_HEADER);
|
|
551
823
|
if (generated !== -1) {
|
|
@@ -555,10 +827,7 @@ function findManagedRange(text, configPath) {
|
|
|
555
827
|
const candidate = text.slice(start, end);
|
|
556
828
|
if (candidate.includes("[[hooks.") ||
|
|
557
829
|
candidate.includes("[[hooks.pre_tool_use]]")) {
|
|
558
|
-
|
|
559
|
-
? []
|
|
560
|
-
: collectForeignSectionHeaders(text, end, text.length);
|
|
561
|
-
return { start, end, foreignSectionsPreserved };
|
|
830
|
+
return legacyManagedRange(text, start, scan, configPath, GENERATED_HEADER_OPENING);
|
|
562
831
|
}
|
|
563
832
|
}
|
|
564
833
|
return null;
|
|
@@ -747,8 +1016,12 @@ function firstDifferingKeyPath(a, b, path) {
|
|
|
747
1016
|
* from a harness-written one would need the same line-level reading of the
|
|
748
1017
|
* file this net is meant to be independent of. An operator-authored
|
|
749
1018
|
* `[[hooks.<Event>]]` entry that the line scan wrongly counts as part of
|
|
750
|
-
* the harness-managed block is therefore replaced without a refusal
|
|
751
|
-
*
|
|
1019
|
+
* the harness-managed block is therefore replaced without a refusal (task
|
|
1020
|
+
* 01053b27 covers the operator table after the harness tables, which the scan
|
|
1021
|
+
* now keeps and names; still replaced silently are an operator table before
|
|
1022
|
+
* the first harness table inside the block, one under a comment run that
|
|
1023
|
+
* holds a `# harness hook:` line, bare keys directly under a harness table,
|
|
1024
|
+
* and one after an old block that never carried the comments).
|
|
752
1025
|
*
|
|
753
1026
|
* Parsing goes through `parseToml` (a leading byte order mark ignored,
|
|
754
1027
|
* 64-bit integers kept as `bigint`). A document that does not parse refuses
|
|
@@ -896,6 +1169,222 @@ function withBackupLocation(linkPath, check) {
|
|
|
896
1169
|
`sit beside the link, as ${linkPath}.harness-backup-* files.`, err.configPath);
|
|
897
1170
|
}
|
|
898
1171
|
}
|
|
1172
|
+
/** A header key segment's name as TOML reads it: a bare key as written, a
|
|
1173
|
+
* literal (`'...'`) key's inner text, a basic (`"..."`) key's inner text
|
|
1174
|
+
* when it holds no escape sequence. `null` for a basic key with an escape,
|
|
1175
|
+
* which this scan does not decode; a header holding one is not matched to a
|
|
1176
|
+
* parsed entry (see `mapHookArrayHeaders`). */
|
|
1177
|
+
function resolvedKeyName(segment) {
|
|
1178
|
+
const quote = segment[0];
|
|
1179
|
+
if (quote === "'")
|
|
1180
|
+
return segment.slice(1, -1);
|
|
1181
|
+
if (quote === '"') {
|
|
1182
|
+
const inner = segment.slice(1, -1);
|
|
1183
|
+
return inner.includes("\\") ? null : inner;
|
|
1184
|
+
}
|
|
1185
|
+
return segment;
|
|
1186
|
+
}
|
|
1187
|
+
/** Whether a header-shaped line's first key resolves to `hooks`, the only
|
|
1188
|
+
* root `mapHookArrayHeaders` resolves. */
|
|
1189
|
+
function hooksRooted(trimmed) {
|
|
1190
|
+
return resolvedKeyName(parseTableHeader(trimmed)?.keys[0] ?? "") === "hooks";
|
|
1191
|
+
}
|
|
1192
|
+
function subKey(event, index) {
|
|
1193
|
+
return `${event}\u0000${index}`;
|
|
1194
|
+
}
|
|
1195
|
+
/**
|
|
1196
|
+
* Every table header of the whole document that appends to a hook
|
|
1197
|
+
* event array (`[[hooks.<Event>]]`, however its keys are spelled) or to such
|
|
1198
|
+
* an entry's own `hooks` array (`[[hooks.<Event>.hooks]]`), with the entry it
|
|
1199
|
+
* appends: TOML appends each header's table to its array in document order,
|
|
1200
|
+
* and a sub-array header to the array's LAST entry so far. Only the lines
|
|
1201
|
+
* `createLineClassifier` reads as a header are resolved: a line inside a
|
|
1202
|
+
* multi-line string, and an array element on its own line, are skipped. A line resolved
|
|
1203
|
+
* to such a header cannot be a value line of a document that parses (a
|
|
1204
|
+
* dotted bare path is not a TOML value), and a header this scan cannot
|
|
1205
|
+
* resolve (an escape in a quoted key) is not counted, so the caller compares
|
|
1206
|
+
* `eventCounts` and `subCounts` with the parsed arrays' lengths and treats a
|
|
1207
|
+
* mismatch as "cannot match exactly". The classifier reads a header-shaped
|
|
1208
|
+
* line as a header here only when its root key resolves to `hooks`
|
|
1209
|
+
* (`hooksRooted`, checked before the top-level probe), so every header this
|
|
1210
|
+
* scan resolves has the root `hooks` (a `[[hooks.` line has it by its
|
|
1211
|
+
* prefix), a table outside `hooks` never shifts the order match, and an
|
|
1212
|
+
* array element on its own line (`["x"]`, `[1]`) costs no parse in this
|
|
1213
|
+
* scan, unless the element is the string `hooks` (`["hooks"]`,
|
|
1214
|
+
* `['hooks']`): that line reads as a `hooks` root, so it is probed like the
|
|
1215
|
+
* `hooks`-rooted spellings that `[[hooks.` does not catch
|
|
1216
|
+
* (`[[ hooks.Stop ]]`, `[["hooks".Stop]]`, `[hooks.Stop]`), and the probe
|
|
1217
|
+
* finds it inside the array.
|
|
1218
|
+
*/
|
|
1219
|
+
function mapHookArrayHeaders(text) {
|
|
1220
|
+
const map = { slots: new Map(), eventCounts: new Map(), subCounts: new Map() };
|
|
1221
|
+
let pos = 0;
|
|
1222
|
+
const classify = createLineClassifier(text, hooksRooted);
|
|
1223
|
+
while (pos < text.length) {
|
|
1224
|
+
const lineEnd = lineEndAfter(text, pos);
|
|
1225
|
+
const rawLine = text.slice(pos, lineEnd);
|
|
1226
|
+
const kind = classify(pos, rawLine);
|
|
1227
|
+
const parsed = kind === "hookHeader" || kind === "foreignHeader" ? parseTableHeader(rawLine) : null;
|
|
1228
|
+
// The bracket kind is not checked: a single-bracket `[hooks.<Event>]`
|
|
1229
|
+
// cannot coexist with a `[[hooks.<Event>]]` array in a document that
|
|
1230
|
+
// parses, and a single-bracket `[hooks.<Event>.hooks]` makes that entry's
|
|
1231
|
+
// `hooks` a table, whose `command` is not a hook command either way.
|
|
1232
|
+
if (parsed !== null) {
|
|
1233
|
+
const [, event, sub] = parsed.keys.map(resolvedKeyName);
|
|
1234
|
+
if (typeof event === "string") {
|
|
1235
|
+
const count = map.eventCounts.get(event) ?? 0;
|
|
1236
|
+
if (parsed.keys.length === 2) {
|
|
1237
|
+
map.slots.set(pos, { event, index: count });
|
|
1238
|
+
map.eventCounts.set(event, count + 1);
|
|
1239
|
+
}
|
|
1240
|
+
else if (parsed.keys.length === 3 && sub === "hooks") {
|
|
1241
|
+
// Appends to the event's last entry so far; with no entry before
|
|
1242
|
+
// it (`index` -1) TOML makes the event a table, not an array, and
|
|
1243
|
+
// the caller finds no array to match.
|
|
1244
|
+
const key = subKey(event, count - 1);
|
|
1245
|
+
const subIndex = map.subCounts.get(key) ?? 0;
|
|
1246
|
+
map.slots.set(pos, { event, index: count - 1, subIndex });
|
|
1247
|
+
map.subCounts.set(key, subIndex + 1);
|
|
1248
|
+
}
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
pos = lineEnd;
|
|
1252
|
+
}
|
|
1253
|
+
return map;
|
|
1254
|
+
}
|
|
1255
|
+
/** The hook command of one parsed hook entry, `{ command = "..." }`, as a
|
|
1256
|
+
* one-element list; empty for anything else. */
|
|
1257
|
+
function hookCommandOf(entry) {
|
|
1258
|
+
return isTomlTable(entry) && typeof entry.command === "string" ? [entry.command] : [];
|
|
1259
|
+
}
|
|
1260
|
+
/** The hook commands of one parsed `hooks.<Event>` entry: its own `command`
|
|
1261
|
+
* plus each `command` of its `hooks` array (inline `hooks = [{ ... }]` or the
|
|
1262
|
+
* expanded `[[hooks.<Event>.hooks]]` form). No other `command` key counts. */
|
|
1263
|
+
function eventEntryCommands(entry) {
|
|
1264
|
+
if (!isTomlTable(entry))
|
|
1265
|
+
return [];
|
|
1266
|
+
const nested = Array.isArray(entry.hooks) ? entry.hooks.flatMap(hookCommandOf) : [];
|
|
1267
|
+
return [...hookCommandOf(entry), ...nested];
|
|
1268
|
+
}
|
|
1269
|
+
/** Every hook command of a parsed document's `hooks.<Event>` arrays. */
|
|
1270
|
+
function documentHookCommands(doc) {
|
|
1271
|
+
if (!isTomlTable(doc) || !isTomlTable(doc.hooks))
|
|
1272
|
+
return [];
|
|
1273
|
+
return Object.values(doc.hooks).flatMap((value) => Array.isArray(value) ? value.flatMap(eventEntryCommands) : []);
|
|
1274
|
+
}
|
|
1275
|
+
/**
|
|
1276
|
+
* The hook commands a kept table defines, read from the parsed whole
|
|
1277
|
+
* document (`doc`) at the entry its header appends (`map`): for
|
|
1278
|
+
* `[[hooks.<Event>]]` the entry's own `command`, plus its `hooks` array's
|
|
1279
|
+
* commands unless `[[hooks.<Event>.hooks]]` headers build that array (each
|
|
1280
|
+
* of those is its own kept table); for `[[hooks.<Event>.hooks]]` that nested
|
|
1281
|
+
* entry's `command`. A header appending nowhere else (`[[hooks.<Event>.x]]`)
|
|
1282
|
+
* defines none. `null` when the header cannot be matched exactly: a header
|
|
1283
|
+
* the scan did not resolve, a count of headers that differs from the parsed
|
|
1284
|
+
* array's length, or a nested `hooks` header with no entry before it.
|
|
1285
|
+
*/
|
|
1286
|
+
function keptTableCommands(table, doc, map) {
|
|
1287
|
+
const slot = map.slots.get(table.start);
|
|
1288
|
+
if (slot === undefined) {
|
|
1289
|
+
// Not an append the map resolved: a `[[hooks.<Event>.x]]` table holds no
|
|
1290
|
+
// hook command; a header with a key the map does not resolve cannot be
|
|
1291
|
+
// matched.
|
|
1292
|
+
const resolved = parseTableHeader(table.header)?.keys.every((k) => resolvedKeyName(k) !== null);
|
|
1293
|
+
return resolved === true ? [] : null;
|
|
1294
|
+
}
|
|
1295
|
+
const hooks = isTomlTable(doc) && isTomlTable(doc.hooks) ? doc.hooks : undefined;
|
|
1296
|
+
const entries = hooks?.[slot.event];
|
|
1297
|
+
if (!Array.isArray(entries) || entries.length !== map.eventCounts.get(slot.event))
|
|
1298
|
+
return null;
|
|
1299
|
+
const entry = entries[slot.index];
|
|
1300
|
+
const subCount = map.subCounts.get(subKey(slot.event, slot.index)) ?? 0;
|
|
1301
|
+
if (slot.subIndex === undefined) {
|
|
1302
|
+
return subCount > 0 ? hookCommandOf(entry) : eventEntryCommands(entry);
|
|
1303
|
+
}
|
|
1304
|
+
const nested = isTomlTable(entry) && Array.isArray(entry.hooks) ? entry.hooks : [];
|
|
1305
|
+
if (nested.length !== subCount)
|
|
1306
|
+
return null;
|
|
1307
|
+
return hookCommandOf(nested[slot.subIndex]);
|
|
1308
|
+
}
|
|
1309
|
+
/** The move-below-END option of a kept-table refusal: only when the config
|
|
1310
|
+
* has an END marker after the kept tables, since below it the install never
|
|
1311
|
+
* touches a table (an operator-owned table whose command starts with
|
|
1312
|
+
* `harness `, the operator's own CLI, is kept that way). Every range with
|
|
1313
|
+
* kept tables and an END marker after them records that marker as
|
|
1314
|
+
* `strayEnd`, on the BEGIN path and on the legacy paths alike
|
|
1315
|
+
* (`rangeBeforeStrayEnd`), so the caller keys the option on it. */
|
|
1316
|
+
function moveBelowEndOption(hasEndMarker) {
|
|
1317
|
+
return hasEndMarker
|
|
1318
|
+
? `, or, if it is an operator-owned table, move it below the '${CODEX_MANAGED_END}' marker, ` +
|
|
1319
|
+
"where the install never touches it"
|
|
1320
|
+
: "";
|
|
1321
|
+
}
|
|
1322
|
+
/** Parses the whole document for the kept-table check, refusing with the
|
|
1323
|
+
* parser's position and one-line reason only (never its code frame). */
|
|
1324
|
+
function parseForKeptTableCheck(content, what, configPath) {
|
|
1325
|
+
try {
|
|
1326
|
+
return parseToml(content);
|
|
1327
|
+
}
|
|
1328
|
+
catch (err) {
|
|
1329
|
+
throw new CodexInstallRefusalError(`Codex config ${configPath}: the TOML parser used by harness could not read ${what} ` +
|
|
1330
|
+
`(${describeTomlParseError(err)}), so harness cannot check the operator hook tables it ` +
|
|
1331
|
+
"would keep after the harness hook tables; refusing to install. The file is untouched.", configPath);
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1334
|
+
/**
|
|
1335
|
+
* Refuses (file untouched) when an operator hook table the install keeps
|
|
1336
|
+
* looks like one harness wrote: one of its hook commands equals a command of
|
|
1337
|
+
* the fresh block, or starts with `harness `. The line scan tells a harness
|
|
1338
|
+
* table from an operator one only by the `# harness hook:` comment above it,
|
|
1339
|
+
* so a harness table whose comment an operator deleted, sitting last, would
|
|
1340
|
+
* otherwise be kept next to the fresh block: the hook would run twice, or a
|
|
1341
|
+
* hook the manifest retired would keep running after every later install
|
|
1342
|
+
* (task 01053b27). A retired hook whose command does not start with
|
|
1343
|
+
* `harness ` (an environment-prefixed report-dir wrap, the memory-router
|
|
1344
|
+
* hook, a custom manifest hook) is not recognised: it is kept and named only.
|
|
1345
|
+
*
|
|
1346
|
+
* The commands come from the parsed WHOLE document (the same `parseToml` the
|
|
1347
|
+
* semantic net uses), each kept table matched to its parsed entry by the
|
|
1348
|
+
* order of the `[[hooks.<Event>]]` headers (`mapHookArrayHeaders`); no part
|
|
1349
|
+
* of the file is parsed on its own. Only hook commands count
|
|
1350
|
+
* (`hooks.<Event>[].command` and `hooks.<Event>[].hooks[].command`), not any
|
|
1351
|
+
* other key named `command`. A kept table that cannot be matched exactly
|
|
1352
|
+
* refuses too. Every message names the table's header and line number only,
|
|
1353
|
+
* never a command or any other value text, and never a parser code frame,
|
|
1354
|
+
* since a refusal is printed to stderr and into `--json` output.
|
|
1355
|
+
*/
|
|
1356
|
+
function assertKeptHookTablesAreOperatorOwned(kept, currentContent, generatedContent, configPath, hasEndMarker) {
|
|
1357
|
+
if (kept.length === 0)
|
|
1358
|
+
return;
|
|
1359
|
+
const freshCommands = new Set(documentHookCommands(parseForKeptTableCheck(generatedContent, "the generated hook block", configPath)));
|
|
1360
|
+
const doc = parseForKeptTableCheck(currentContent, "this file", configPath);
|
|
1361
|
+
const map = mapHookArrayHeaders(currentContent);
|
|
1362
|
+
for (const table of kept) {
|
|
1363
|
+
const commands = keptTableCommands(table, doc, map);
|
|
1364
|
+
if (commands === null) {
|
|
1365
|
+
throw new CodexInstallRefusalError(`Codex config ${configPath} has a hook table ${table.header} (line ${table.line}) with no ` +
|
|
1366
|
+
`'${HARNESS_HOOK_COMMENT_PREFIX}<id> (budget_ms=<n>)' comment line above it, placed after the ` +
|
|
1367
|
+
"harness hook tables, that harness could not match to its entry in the parsed config " +
|
|
1368
|
+
"(a header it does not resolve: an escape sequence in a quoted key, on this table or on " +
|
|
1369
|
+
"another table of the same hook event, or a nested hooks table it cannot place), so it " +
|
|
1370
|
+
"cannot check whether harness wrote that table. Spell those header keys without escape " +
|
|
1371
|
+
`sequences, restore the '${HARNESS_HOOK_COMMENT_PREFIX}<id> (budget_ms=<n>)' comment line ` +
|
|
1372
|
+
`directly above ${table.header} if harness wrote it${moveBelowEndOption(hasEndMarker)}, or ` +
|
|
1373
|
+
"delete the table, then re-run `harness apply --runtime codex --install`. The file is untouched.", configPath);
|
|
1374
|
+
}
|
|
1375
|
+
const harnessShaped = commands.some((command) => freshCommands.has(command) || command.startsWith("harness "));
|
|
1376
|
+
if (!harnessShaped)
|
|
1377
|
+
continue;
|
|
1378
|
+
throw new CodexInstallRefusalError(`Codex config ${configPath} has a hook table ${table.header} (line ${table.line}) with no ` +
|
|
1379
|
+
`'${HARNESS_HOOK_COMMENT_PREFIX}<id> (budget_ms=<n>)' comment line above it, placed after the ` +
|
|
1380
|
+
"harness hook tables, whose command is one harness itself writes. harness cannot tell it " +
|
|
1381
|
+
"from a harness hook table whose comment line was deleted, and keeping it next to the " +
|
|
1382
|
+
"fresh harness block would run that hook twice (or keep a retired harness hook running). " +
|
|
1383
|
+
`Restore the comment line directly above ${table.header}, so the install replaces the table ` +
|
|
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);
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
899
1388
|
export function planCodexConfigInstall(opts) {
|
|
900
1389
|
validateCodexManagedConfig(opts.generatedContent);
|
|
901
1390
|
const requestedPath = opts.configPath ?? defaultCodexConfigPath(opts.homeDir);
|
|
@@ -919,16 +1408,29 @@ export function planCodexConfigInstall(opts) {
|
|
|
919
1408
|
let summary;
|
|
920
1409
|
let removedHookIds = [];
|
|
921
1410
|
let foreignSectionsPreserved = [];
|
|
1411
|
+
let keptHookTables = [];
|
|
1412
|
+
let keptTableDescriptions = [];
|
|
1413
|
+
let hasEndMarkerAfterKept = false;
|
|
922
1414
|
if (range) {
|
|
923
1415
|
const oldHookIds = extractHookIds(currentContent.slice(range.start, range.end));
|
|
924
1416
|
const newHookIds = extractHookIds(managedBlock);
|
|
925
1417
|
removedHookIds = [...oldHookIds].filter((id) => !newHookIds.has(id));
|
|
926
|
-
|
|
1418
|
+
keptHookTables = range.keptHookTables;
|
|
1419
|
+
hasEndMarkerAfterKept = range.strayEnd !== undefined;
|
|
927
1420
|
const middleForeign = range.strayEnd
|
|
928
1421
|
? currentContent.slice(range.end, range.strayEnd.start)
|
|
929
1422
|
: "";
|
|
930
1423
|
const tailStart = range.strayEnd ? range.strayEnd.end : range.end;
|
|
931
1424
|
nextContent = `${currentContent.slice(0, range.start)}${managedBlock}${middleForeign}${currentContent.slice(tailStart)}`;
|
|
1425
|
+
// A kept table sits right after the fresh block in the written config
|
|
1426
|
+
// (it is in `middleForeign`, or at the start of the tail when there is
|
|
1427
|
+
// no stray END), so its offset there follows from the splice.
|
|
1428
|
+
const shift = range.start + managedBlock.length - range.end;
|
|
1429
|
+
keptTableDescriptions = describeKeptHookTables(keptHookTables, keptHookTables.map((t) => lineNumberAt(nextContent, t.start + shift)));
|
|
1430
|
+
// The kept operator hook tables ride the same list, so the dry-run and
|
|
1431
|
+
// the install summary name them exactly like the foreign tables kept
|
|
1432
|
+
// beside them (task 01053b27).
|
|
1433
|
+
foreignSectionsPreserved = [...range.foreignSectionsPreserved, ...keptTableDescriptions];
|
|
932
1434
|
summary = `updated harness-managed Codex hook block in ${configPath}${viaLink}`;
|
|
933
1435
|
}
|
|
934
1436
|
else {
|
|
@@ -945,6 +1447,7 @@ export function planCodexConfigInstall(opts) {
|
|
|
945
1447
|
if (currentContent !== nextContent) {
|
|
946
1448
|
withBackupLocation(linkPath, () => assertConfigSemanticInvariant(currentContent, nextContent, configPath));
|
|
947
1449
|
}
|
|
1450
|
+
assertKeptHookTablesAreOperatorOwned(keptHookTables, currentContent, opts.generatedContent, configPath, hasEndMarkerAfterKept);
|
|
948
1451
|
return {
|
|
949
1452
|
configPath,
|
|
950
1453
|
...(linkPath !== undefined ? { linkPath } : {}),
|
|
@@ -958,6 +1461,7 @@ export function planCodexConfigInstall(opts) {
|
|
|
958
1461
|
: summary,
|
|
959
1462
|
removedHookIds,
|
|
960
1463
|
foreignSectionsPreserved,
|
|
1464
|
+
keptOperatorHookTables: keptTableDescriptions,
|
|
961
1465
|
};
|
|
962
1466
|
}
|
|
963
1467
|
function timestampForBackup(now) {
|
|
@@ -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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"}
|
|
@@ -407,7 +407,7 @@ export function evaluateGate(verdict, currentHead, id, generatedDir) {
|
|
|
407
407
|
if (!verdict) {
|
|
408
408
|
return {
|
|
409
409
|
allowed: false,
|
|
410
|
-
reason: `no solution-acceptance verdict
|
|
410
|
+
reason: `no usable solution-acceptance verdict for "${id}"`,
|
|
411
411
|
verdict: null,
|
|
412
412
|
forged: false,
|
|
413
413
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solution-acceptance-runtime.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/solution-acceptance-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"solution-acceptance-runtime.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/solution-acceptance-runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lannguyensi/harness",
|
|
3
|
-
"version": "0.59.
|
|
3
|
+
"version": "0.59.2",
|
|
4
4
|
"description": "Declarative control plane for agent harnesses — one YAML for grounding, tools, memory, and hooks.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/LanNguyenSi/harness",
|