@lannguyensi/harness 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +139 -0
  2. package/dist/cli/approve/understanding.d.ts +46 -0
  3. package/dist/cli/approve/understanding.js +50 -22
  4. package/dist/cli/approve/understanding.js.map +1 -1
  5. package/dist/cli/audit.d.ts +29 -0
  6. package/dist/cli/audit.js +130 -17
  7. package/dist/cli/audit.js.map +1 -1
  8. package/dist/cli/delegate/index.d.ts +63 -0
  9. package/dist/cli/delegate/index.js +313 -0
  10. package/dist/cli/delegate/index.js.map +1 -0
  11. package/dist/cli/doctor/auto-approve-mode.d.ts +37 -0
  12. package/dist/cli/doctor/auto-approve-mode.js +80 -0
  13. package/dist/cli/doctor/auto-approve-mode.js.map +1 -0
  14. package/dist/cli/doctor/codex-config-drift.d.ts +28 -0
  15. package/dist/cli/doctor/codex-config-drift.js +240 -0
  16. package/dist/cli/doctor/codex-config-drift.js.map +1 -0
  17. package/dist/cli/doctor/format.js +32 -1
  18. package/dist/cli/doctor/format.js.map +1 -1
  19. package/dist/cli/doctor/index.js +51 -7
  20. package/dist/cli/doctor/index.js.map +1 -1
  21. package/dist/cli/doctor/settings-drift.d.ts +6 -0
  22. package/dist/cli/doctor/settings-drift.js +20 -6
  23. package/dist/cli/doctor/settings-drift.js.map +1 -1
  24. package/dist/cli/doctor/types.d.ts +43 -0
  25. package/dist/cli/doctor/types.js.map +1 -1
  26. package/dist/cli/doctor/ug-delegations.d.ts +26 -0
  27. package/dist/cli/doctor/ug-delegations.js +112 -0
  28. package/dist/cli/doctor/ug-delegations.js.map +1 -0
  29. package/dist/cli/doctor/understanding-mode-env.d.ts +2 -0
  30. package/dist/cli/doctor/understanding-mode-env.js +5 -2
  31. package/dist/cli/doctor/understanding-mode-env.js.map +1 -1
  32. package/dist/cli/index.js +89 -1
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/pack/approve-escape.js +16 -7
  35. package/dist/cli/pack/approve-escape.js.map +1 -1
  36. package/dist/cli/pack/auto-approve-path.d.ts +17 -0
  37. package/dist/cli/pack/auto-approve-path.js +56 -3
  38. package/dist/cli/pack/auto-approve-path.js.map +1 -1
  39. package/dist/cli/pack/hook-pre-tool-use.d.ts +25 -0
  40. package/dist/cli/pack/hook-pre-tool-use.js +336 -3
  41. package/dist/cli/pack/hook-pre-tool-use.js.map +1 -1
  42. package/dist/cli/pack/transcript-report-scan.d.ts +71 -0
  43. package/dist/cli/pack/transcript-report-scan.js +359 -0
  44. package/dist/cli/pack/transcript-report-scan.js.map +1 -0
  45. package/dist/cli/smoke/index.d.ts +18 -1
  46. package/dist/cli/smoke/index.js +54 -0
  47. package/dist/cli/smoke/index.js.map +1 -1
  48. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.d.ts +76 -2
  49. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js +139 -2
  50. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js.map +1 -1
  51. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.d.ts +223 -0
  52. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +633 -0
  53. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js.map +1 -0
  54. package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +2 -1
  55. package/dist/policy-packs/builtin/understanding-before-execution/index.js +9 -1
  56. package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +1 -1
  57. package/dist/policy-packs/builtin/understanding-before-execution.d.ts +19 -0
  58. package/dist/policy-packs/builtin/understanding-before-execution.js +29 -0
  59. package/dist/policy-packs/builtin/understanding-before-execution.js.map +1 -1
  60. package/dist/runtime/approval-signing.js +28 -0
  61. package/dist/runtime/approval-signing.js.map +1 -1
  62. package/package.json +1 -1
@@ -0,0 +1,240 @@
1
+ // Codex counterpart of settings-drift.ts (ADR
2
+ // docs/decisions/2026-08-27-ug-auto-mode-approval.md, threat model (c),
3
+ // "Audit and doctor"), follow-up of slice 2 (agent-tasks f59ea0eb).
4
+ //
5
+ // `approval_policy = "never"` is the MEASURED signal: dogfood/ug-auto-
6
+ // mode-signals/README.md section (l) (Codex TUI) shows `tui-config-never`
7
+ // (`config.toml`: `approval_policy = "never"`) reports `bypassPermissions`
8
+ // where the otherwise-comparable `tui-default` shape (no `approval_policy`
9
+ // set) reports `default`, and section (k) (Codex exec) shows the same
10
+ // key discriminating `exec-onrequest`/`exec-onfailure` (`bypassPermissions`
11
+ // regardless, exec auto-approves almost everything headless) from nothing
12
+ // special, i.e. exec's own vocabulary does not turn on this key either
13
+ // way there. The `default_permissions` full-access check below is NOT a
14
+ // measured signal in the same sense: section (k)'s exec rows show
15
+ // `config-perm-fullaccess` (`default_permissions = ":danger-full-access"`)
16
+ // and `config-perm-readonly` (`default_permissions = ":read-only"`) both
17
+ // reporting `bypassPermissions`, i.e. this key does not discriminate
18
+ // `permission_mode` at all under `codex exec`, and section (l)'s TUI
19
+ // table has no `default_permissions`-via-`config.toml` row at all (the
20
+ // one full-access TUI shape, `tui-perm-full-access`, was set through the
21
+ // `/permissions` menu, not this config key, per
22
+ // `payloads/codex-tui-perm-full-access.config.toml`). This check flags
23
+ // `default_permissions` as a threat-model heuristic on a key the operator
24
+ // can set (it is documented Codex config surface that plausibly feeds a
25
+ // yet-unmeasured code path), not because measurement showed it moving
26
+ // `permission_mode`.
27
+ //
28
+ // Either key pre-sets the trusted `when`-allowlist signal the Codex
29
+ // auto-approval path (`src/cli/pack/auto-approve-path.ts`,
30
+ // `CODEX_HARNESS`) consumes, the same way `permissions.defaultMode` does
31
+ // for Claude Code (settings-drift.ts's module header, threat model (c)).
32
+ //
33
+ // Gated on the pack's `auto_approve.harnesses` actually listing `codex`
34
+ // (`isCodexOptedIntoAutoApprove` below): a repo that never opted Codex
35
+ // into the auto path has no live Codex `permission_mode` signal for this
36
+ // key to pre-set, so warning there would be noise unconnected to any
37
+ // live risk (mirrors the per-harness gate `attemptAutoApproval` itself
38
+ // applies before the `when` allowlist, `auto-approve.ts`'s module
39
+ // header).
40
+ //
41
+ // Unlike settings-drift.ts's `permissions.defaultMode` check, this is
42
+ // NOT drift-gated (warn only when the live value differs from the
43
+ // apply-time baseline): `approval_policy = "never"` is a real live risk
44
+ // the moment it is present, whether or not it was already there at the
45
+ // last `harness apply`, so this check always warns while present and
46
+ // opted in. There is no apply-time three-way distinction to annotate
47
+ // with either: harness never snapshots the operator's live, whole
48
+ // `config.toml` (only `harness apply --runtime codex --install`'s own
49
+ // generated hook block, merged in place by `install-codex-config.ts`,
50
+ // ever lands in `.last-apply`'s `"codex/config.toml"` entry), and
51
+ // `apply.ts` never records a `kind: "target"` lock entry for the
52
+ // installed Codex config path the way it does for Claude Code's
53
+ // `--target` write, so there is no baseline to compare the live value
54
+ // against and no lock entry to tell a harness-touched file apart from
55
+ // one it has never seen. Every warning below therefore carries the same
56
+ // constant `NO_SNAPSHOT_SUFFIX`, reporting presence, not drift.
57
+ //
58
+ // Fail-open, like every other doctor check in this family: a missing or
59
+ // unreadable candidate file resolves to "nothing to report" for that
60
+ // file, and a candidate whose TOML this module's minimal scanner cannot
61
+ // make sense of (an unterminated quoted string) adds ONE diagnostic
62
+ // line, never a thrown error; the keys that did parse from the rest of
63
+ // that same file are still evaluated and can still warn.
64
+ //
65
+ // No full TOML parser: none is a dependency of this package (checked
66
+ // before writing this file), and `install-codex-config.ts` itself never
67
+ // parses the operator's config.toml into an object either, it locates
68
+ // harness's own managed block by string search. This module only needs
69
+ // two ROOT-LEVEL (not inside any `[table]`) string-valued keys, so a
70
+ // small line-oriented scanner is enough: it accepts a bare or quoted key
71
+ // (`approval_policy = ...` and `"approval_policy" = ...`), skips over
72
+ // multi-line basic/literal string bodies (`"""`/`'''`) so a body line
73
+ // that happens to look like `key = "value"` inside one is never
74
+ // mistaken for a root-level assignment, and does not attempt custom
75
+ // `[profiles.*]` tables: a profile-scoped `approval_policy` under
76
+ // `[profiles.<name>]` is out of scope and not detected today (see the
77
+ // task's constraints).
78
+ import * as fs from "node:fs";
79
+ import * as path from "node:path";
80
+ import { PACK_NAME as UNDERSTANDING_PACK_NAME } from "../../policy-packs/builtin/understanding-before-execution.js";
81
+ import { CODEX_HARNESS, harnessAllowed, parseAutoApprove, } from "../../policy-packs/builtin/understanding-before-execution/auto-approve.js";
82
+ import { tildeize } from "./settings-drift.js";
83
+ /** Every warning line carries this: harness keeps no apply-time snapshot of a live Codex config.toml (see module header). */
84
+ const NO_SNAPSHOT_SUFFIX = " (harness keeps no apply-time snapshot of this file; presence only)";
85
+ /**
86
+ * Whether the manifest's `understanding-before-execution` pack has opted
87
+ * Codex into the `auto_approve` path (`auto_approve.harnesses` contains
88
+ * `"codex"`). Pure and side-effect-free: reuses the same fail-closed
89
+ * parser the Codex PreToolUse hook itself consults
90
+ * (`attemptAutoApproval` in `../pack/auto-approve-path.ts`), so a
91
+ * malformed `auto_approve` block resolves to "not opted in" here too,
92
+ * never a guess.
93
+ */
94
+ export function isCodexOptedIntoAutoApprove(manifest) {
95
+ const pack = manifest.policy_packs.find((p) => p.name === UNDERSTANDING_PACK_NAME && p.enabled !== false);
96
+ if (!pack)
97
+ return false;
98
+ const cfg = parseAutoApprove(pack.config["auto_approve"], null);
99
+ return harnessAllowed(cfg, CODEX_HARNESS);
100
+ }
101
+ /**
102
+ * Scan the ROOT-LEVEL (before the first `[table]` header) `key = "..."`
103
+ * assignments in a Codex `config.toml` body. Returns the string-valued
104
+ * keys found, plus `malformed: true` when a candidate assignment opens a
105
+ * single-line quoted string that never closes on the same line (the one
106
+ * shape this scanner treats as broken TOML rather than "not a string /
107
+ * not a key we track"). A multi-line basic/literal string (`"""`/`'''`)
108
+ * is a different, valid TOML shape: every line up to and including its
109
+ * closing delimiter is skipped rather than scanned as assignments, and
110
+ * skipping it never sets `malformed`. Non-string values (numbers,
111
+ * booleans, arrays, inline tables) are silently skipped too, not flagged
112
+ * malformed: this scanner has no opinion about them. The key itself may
113
+ * be bare (`approval_policy`) or a quoted TOML key
114
+ * (`"approval_policy"` / `'approval_policy'`); either form is accepted.
115
+ */
116
+ function scanRootLevelStringKeys(raw) {
117
+ const values = {};
118
+ let malformed = false;
119
+ let multilineDelim = null;
120
+ for (const rawLine of raw.split(/\r?\n/)) {
121
+ if (multilineDelim !== null) {
122
+ // Inside a multi-line basic/literal string body: this line is
123
+ // string content, never a root-level assignment, however much it
124
+ // may look like one. Only the closing delimiter ends the skip.
125
+ if (rawLine.includes(multilineDelim))
126
+ multilineDelim = null;
127
+ continue;
128
+ }
129
+ const line = rawLine.trim();
130
+ if (line.length === 0 || line.startsWith("#"))
131
+ continue;
132
+ // A `[table]` or `[[array-of-tables]]` header ends the root-level
133
+ // scope for every key from here on; this module only tracks
134
+ // root-level keys.
135
+ if (line.startsWith("["))
136
+ break;
137
+ const eq = line.indexOf("=");
138
+ if (eq === -1)
139
+ continue;
140
+ let key = line.slice(0, eq).trim();
141
+ if ((key.startsWith('"') && key.endsWith('"') && key.length >= 2) ||
142
+ (key.startsWith("'") && key.endsWith("'") && key.length >= 2)) {
143
+ key = key.slice(1, -1);
144
+ }
145
+ if (!/^[A-Za-z0-9_-]+$/.test(key))
146
+ continue;
147
+ const valuePart = line.slice(eq + 1).trim();
148
+ if (valuePart.startsWith('"""') || valuePart.startsWith("'''")) {
149
+ const delim = valuePart.slice(0, 3);
150
+ // A closing delimiter later on this same line makes it a
151
+ // single-line multi-line-string literal; this scanner does not
152
+ // track such values (out of scope, same as any other value shape
153
+ // it has no opinion about), it just must not treat the rest of
154
+ // the file as still inside the string.
155
+ if (valuePart.indexOf(delim, 3) === -1)
156
+ multilineDelim = delim;
157
+ continue;
158
+ }
159
+ const parsed = matchTomlString(valuePart);
160
+ if (parsed === null) {
161
+ if (valuePart.startsWith('"') || valuePart.startsWith("'"))
162
+ malformed = true;
163
+ continue;
164
+ }
165
+ values[key] = parsed;
166
+ }
167
+ return { values, malformed };
168
+ }
169
+ /** A basic (`"..."`) or literal (`'...'`) single-line TOML string, or `null` if `value` is not one. */
170
+ function matchTomlString(value) {
171
+ if (value.startsWith('"')) {
172
+ const m = /^"((?:[^"\\]|\\.)*)"/.exec(value);
173
+ if (!m)
174
+ return null;
175
+ return (m[1] ?? "")
176
+ .replace(/\\"/g, '"')
177
+ .replace(/\\n/g, "\n")
178
+ .replace(/\\t/g, "\t")
179
+ .replace(/\\\\/g, "\\");
180
+ }
181
+ if (value.startsWith("'")) {
182
+ const m = /^'([^']*)'/.exec(value);
183
+ if (!m)
184
+ return null;
185
+ return m[1] ?? "";
186
+ }
187
+ return null;
188
+ }
189
+ function checkOneFile(file, warnings) {
190
+ let raw;
191
+ try {
192
+ raw = fs.readFileSync(file.absolutePath, "utf8");
193
+ }
194
+ catch {
195
+ return;
196
+ }
197
+ const scan = scanRootLevelStringKeys(raw);
198
+ if (scan.malformed) {
199
+ warnings.push(`${file.displayLabel}: unreadable/invalid Codex config TOML`);
200
+ // Keep going: a malformed line elsewhere in the file must not hide a
201
+ // risky key that DID parse from a different line of the same file.
202
+ }
203
+ const approvalPolicy = scan.values["approval_policy"];
204
+ if (approvalPolicy === "never") {
205
+ warnings.push(`approval_policy = "never" set in ${file.displayLabel}${NO_SNAPSHOT_SUFFIX}`);
206
+ }
207
+ const defaultPermissions = scan.values["default_permissions"];
208
+ if (defaultPermissions !== undefined) {
209
+ const stripped = defaultPermissions.startsWith(":")
210
+ ? defaultPermissions.slice(1)
211
+ : defaultPermissions;
212
+ if (stripped === "danger-full-access") {
213
+ warnings.push(`default_permissions = ${JSON.stringify(defaultPermissions)} (full access) set in ${file.displayLabel}${NO_SNAPSHOT_SUFFIX}`);
214
+ }
215
+ }
216
+ }
217
+ export function buildCodexConfigDrift(opts) {
218
+ const warnings = [];
219
+ const codexHomeEnv = opts.env["CODEX_HOME"];
220
+ const codexHomeFromEnv = typeof codexHomeEnv === "string" && codexHomeEnv.trim().length > 0;
221
+ const codexHomeDir = codexHomeFromEnv ? codexHomeEnv : path.join(opts.home, ".codex");
222
+ const codexHomeConfigPath = path.join(codexHomeDir, "config.toml");
223
+ const candidates = [
224
+ {
225
+ absolutePath: path.resolve(codexHomeConfigPath),
226
+ displayLabel: codexHomeFromEnv
227
+ ? "$CODEX_HOME/config.toml"
228
+ : tildeize(codexHomeConfigPath, opts.home),
229
+ },
230
+ {
231
+ absolutePath: path.resolve(opts.cwd, ".codex", "config.toml"),
232
+ displayLabel: ".codex/config.toml",
233
+ },
234
+ ];
235
+ for (const c of candidates) {
236
+ checkOneFile(c, warnings);
237
+ }
238
+ return { warnings };
239
+ }
240
+ //# sourceMappingURL=codex-config-drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-config-drift.js","sourceRoot":"","sources":["../../../src/cli/doctor/codex-config-drift.ts"],"names":[],"mappings":"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"}
@@ -60,13 +60,28 @@ function formatEnvironmentSection(report) {
60
60
  const bin = report.npmGlobalBin;
61
61
  const modeEnv = report.understandingModeEnv;
62
62
  const ugAuto = report.ugAutoApprovals;
63
+ const autoApproveMode = report.ugAutoApproveMode;
63
64
  // "nothing when `.approvals/` is absent" (ug-auto-approvals.ts's AC 1):
64
65
  // stay silent unless the directory actually exists, mirroring the rest
65
66
  // of this section's "no line for a check that found nothing" style.
66
67
  const showUgAuto = ugAuto !== undefined && ugAuto.approvalsDirPresent;
68
+ const ugDeleg = report.ugDelegations;
69
+ // Same "no line for a check that found nothing" convention as
70
+ // showUgAuto: silent unless `.delegations/` actually exists. A
71
+ // present-but-empty directory still renders the zero-count line
72
+ // (ug-delegations.ts's own doc comment on `delegationsDirPresent`).
73
+ const showUgDeleg = ugDeleg !== undefined && ugDeleg.delegationsDirPresent;
67
74
  const drift = report.settingsDrift;
68
75
  const hasDriftContent = drift !== undefined && (drift.notes.length > 0 || drift.warnings.length > 0);
69
- if ((!bin || bin.status !== "warn") && !modeEnv && !showUgAuto && !hasDriftContent)
76
+ const codexDrift = report.codexConfigDrift;
77
+ const hasCodexDriftContent = codexDrift !== undefined && codexDrift.warnings.length > 0;
78
+ if ((!bin || bin.status !== "warn") &&
79
+ !modeEnv &&
80
+ !autoApproveMode &&
81
+ !showUgAuto &&
82
+ !showUgDeleg &&
83
+ !hasDriftContent &&
84
+ !hasCodexDriftContent)
70
85
  return [];
71
86
  const out = ["", "Environment"];
72
87
  if (bin && bin.status === "warn") {
@@ -77,6 +92,11 @@ function formatEnvironmentSection(report) {
77
92
  for (const line of modeEnv.detail)
78
93
  out.push(` ${line}`);
79
94
  }
95
+ if (autoApproveMode) {
96
+ out.push(` ⚠ ${autoApproveMode.message}`);
97
+ for (const line of autoApproveMode.detail)
98
+ out.push(` ${line}`);
99
+ }
80
100
  if (showUgAuto && ugAuto) {
81
101
  const modeParts = Object.keys(ugAuto.byMode)
82
102
  .sort()
@@ -99,12 +119,23 @@ function formatEnvironmentSection(report) {
99
119
  out.push(` ${ugAuto.unreadableCount} marker${ugAuto.unreadableCount === 1 ? "" : "s"} unreadable, excluded from the count`);
100
120
  }
101
121
  }
122
+ if (showUgDeleg && ugDeleg) {
123
+ const marker = ugDeleg.unreadable > 0 ? "⚠" : "ℹ";
124
+ const line = ugDeleg.total === 0
125
+ ? ` ${marker} delegations on disk: 0`
126
+ : ` ${marker} delegations on disk: ${ugDeleg.total} (${ugDeleg.expired} expired, ${ugDeleg.unreadable} unreadable)`;
127
+ out.push(line);
128
+ }
102
129
  if (drift) {
103
130
  for (const n of drift.notes)
104
131
  out.push(` ℹ ${n}`);
105
132
  for (const w of drift.warnings)
106
133
  out.push(` ⚠ ${w}`);
107
134
  }
135
+ if (codexDrift) {
136
+ for (const w of codexDrift.warnings)
137
+ out.push(` ⚠ ${w}`);
138
+ }
108
139
  return out;
109
140
  }
110
141
  function formatToolsSection(report) {
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/cli/doctor/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/cli/doctor/format.ts"],"names":[],"mappings":"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"}
@@ -22,9 +22,12 @@ import { checkNpmBinPath } from "./npm-bin-path.js";
22
22
  import { scanForRogueLedgers } from "./rogue-ledger.js";
23
23
  import { buildClaudeMcpRegistration } from "./claude-mcp.js";
24
24
  import { checkUnderstandingModeEnvDivergence, isUnderstandingPackEnabled, } from "./understanding-mode-env.js";
25
+ import { checkAutoApproveMode } from "./auto-approve-mode.js";
25
26
  import { runDoctorToolchainParity, } from "./toolchain-parity.js";
26
27
  import { buildUgAutoApprovals, DEFAULT_RECENT_SESSIONS } from "./ug-auto-approvals.js";
28
+ import { buildUgDelegations } from "./ug-delegations.js";
27
29
  import { buildSettingsDrift } from "./settings-drift.js";
30
+ import { buildCodexConfigDrift, isCodexOptedIntoAutoApprove } from "./codex-config-drift.js";
28
31
  import { LOCK_BASENAME } from "../../io/harness-lock.js";
29
32
  import { isDoctorTarget, KNOWN_DOCTOR_TARGETS, } from "./types.js";
30
33
  export { isDoctorTarget, KNOWN_DOCTOR_TARGETS };
@@ -898,8 +901,19 @@ function countDiagnostics(report) {
898
901
  if (report.understandingModeEnv)
899
902
  warningCount++;
900
903
  // ugAutoApprovals is informational only (ℹ), never contributes here.
904
+ // ugDelegations is informational (ℹ) UNLESS it found an unreadable
905
+ // file, in which case it rolls exactly one warning (ug-delegations.ts,
906
+ // agent-tasks 37ad0b05), not one per unreadable file.
907
+ if (report.ugDelegations && report.ugDelegations.unreadable > 0)
908
+ warningCount++;
909
+ // auto_approve configured outside grill_me (agent-tasks abfad738):
910
+ // always advisory, never an error, see auto-approve-mode.ts.
911
+ if (report.ugAutoApproveMode)
912
+ warningCount++;
901
913
  if (report.settingsDrift)
902
914
  warningCount += report.settingsDrift.warnings.length;
915
+ if (report.codexConfigDrift)
916
+ warningCount += report.codexConfigDrift.warnings.length;
903
917
  if (report.memory.routerExecutable && !report.memory.routerExecutable.exists)
904
918
  errorCount++;
905
919
  if (!report.memory.routerExecutable)
@@ -1024,6 +1038,7 @@ export async function doctor(opts = {}) {
1024
1038
  })
1025
1039
  : undefined;
1026
1040
  const understandingModeEnv = checkUnderstandingModeEnvDivergence(manifest, opts.envOverride ?? process.env);
1041
+ const ugAutoApproveMode = checkAutoApproveMode(manifest);
1027
1042
  // ADR docs/decisions/2026-08-27-ug-auto-mode-approval.md slice 1
1028
1043
  // (agent-tasks 74b4b17d), "Audit and doctor": the auto-approval
1029
1044
  // listing + last-N metric, and the settings-drift compensating
@@ -1039,6 +1054,27 @@ export async function doctor(opts = {}) {
1039
1054
  const ugAutoApprovals = understandingPackEnabled
1040
1055
  ? buildUgAutoApprovals(generatedDir, { recentSessions: recentSessionsWindow })
1041
1056
  : undefined;
1057
+ // Slice 3 (agent-tasks 37ad0b05), same "Audit and doctor"
1058
+ // section: delegations-on-disk metric from `.delegations/`, gated on
1059
+ // the same pack-enabled check, computed even when the directory is
1060
+ // absent (`delegationsDirPresent: false`, `total: 0`), the render
1061
+ // layer (format.ts) is what stays silent for that case, mirroring
1062
+ // `ugAutoApprovals`'s own `approvalsDirPresent` gate; see
1063
+ // ug-delegations.ts.
1064
+ const ugDelegations = understandingPackEnabled
1065
+ ? buildUgDelegations(generatedDir, { ...(opts.now !== undefined ? { now: opts.now } : {}) })
1066
+ : undefined;
1067
+ // Shared option shape both drift checks below take (same manifest,
1068
+ // same generated dir, same lock, same cwd/home/env resolution), one
1069
+ // literal instead of two near-identical ones (`buildSettingsDrift` and
1070
+ // `buildCodexConfigDrift` both accept exactly this shape).
1071
+ const driftCheckOpts = {
1072
+ generatedDir,
1073
+ lockPath: path.join(path.dirname(resolved.base), LOCK_BASENAME),
1074
+ cwd: opts.cwd ?? process.cwd(),
1075
+ home,
1076
+ env: opts.envOverride ?? process.env,
1077
+ };
1042
1078
  // Settings-drift additionally requires `harness.generated/` to exist:
1043
1079
  // without at least one prior `harness apply`, there is no baseline to
1044
1080
  // compare against and nothing this check owns an opinion about (a
@@ -1047,13 +1083,18 @@ export async function doctor(opts = {}) {
1047
1083
  // mode-env fixture that already asserts a bare "Environment"-less
1048
1084
  // report for that exact shape).
1049
1085
  const settingsDrift = understandingPackEnabled && fs.existsSync(generatedDir)
1050
- ? buildSettingsDrift({
1051
- generatedDir,
1052
- lockPath: path.join(path.dirname(resolved.base), LOCK_BASENAME),
1053
- cwd: opts.cwd ?? process.cwd(),
1054
- home,
1055
- env: opts.envOverride ?? process.env,
1056
- })
1086
+ ? buildSettingsDrift(driftCheckOpts)
1087
+ : undefined;
1088
+ // Codex counterpart of `settingsDrift` (follow-up of slice 2 of the
1089
+ // same ADR, agent-tasks f59ea0eb). Gated on the pack's
1090
+ // `auto_approve.harnesses` actually listing `codex` rather than on
1091
+ // `understandingPackEnabled` alone, and NOT gated on
1092
+ // `harness.generated/` existing: unlike `permissions.defaultMode`,
1093
+ // `approval_policy = "never"` is a live risk the moment it is present,
1094
+ // whether or not a `harness apply` has ever run for this manifest (see
1095
+ // codex-config-drift.ts's module header).
1096
+ const codexConfigDrift = isCodexOptedIntoAutoApprove(manifest)
1097
+ ? buildCodexConfigDrift(driftCheckOpts)
1057
1098
  : undefined;
1058
1099
  // Toolchain-parity on-demand comparison (task 13919613). Gated purely on
1059
1100
  // `toolchain_parity.enabled` — mirrors `grounding`'s "only when the
@@ -1098,7 +1139,10 @@ export async function doctor(opts = {}) {
1098
1139
  ...(npmGlobalBin !== undefined ? { npmGlobalBin } : {}),
1099
1140
  ...(understandingModeEnv !== undefined ? { understandingModeEnv } : {}),
1100
1141
  ...(ugAutoApprovals !== undefined ? { ugAutoApprovals } : {}),
1142
+ ...(ugDelegations !== undefined ? { ugDelegations } : {}),
1143
+ ...(ugAutoApproveMode !== undefined ? { ugAutoApproveMode } : {}),
1101
1144
  ...(settingsDrift !== undefined ? { settingsDrift } : {}),
1145
+ ...(codexConfigDrift !== undefined ? { codexConfigDrift } : {}),
1102
1146
  };
1103
1147
  if (opts.target === "codex") {
1104
1148
  const manifestDir = path.dirname(resolved.base);