@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.
- package/CHANGELOG.md +139 -0
- package/dist/cli/approve/understanding.d.ts +46 -0
- package/dist/cli/approve/understanding.js +50 -22
- package/dist/cli/approve/understanding.js.map +1 -1
- package/dist/cli/audit.d.ts +29 -0
- package/dist/cli/audit.js +130 -17
- package/dist/cli/audit.js.map +1 -1
- package/dist/cli/delegate/index.d.ts +63 -0
- package/dist/cli/delegate/index.js +313 -0
- package/dist/cli/delegate/index.js.map +1 -0
- package/dist/cli/doctor/auto-approve-mode.d.ts +37 -0
- package/dist/cli/doctor/auto-approve-mode.js +80 -0
- package/dist/cli/doctor/auto-approve-mode.js.map +1 -0
- package/dist/cli/doctor/codex-config-drift.d.ts +28 -0
- package/dist/cli/doctor/codex-config-drift.js +240 -0
- package/dist/cli/doctor/codex-config-drift.js.map +1 -0
- package/dist/cli/doctor/format.js +32 -1
- package/dist/cli/doctor/format.js.map +1 -1
- package/dist/cli/doctor/index.js +51 -7
- package/dist/cli/doctor/index.js.map +1 -1
- package/dist/cli/doctor/settings-drift.d.ts +6 -0
- package/dist/cli/doctor/settings-drift.js +20 -6
- package/dist/cli/doctor/settings-drift.js.map +1 -1
- package/dist/cli/doctor/types.d.ts +43 -0
- package/dist/cli/doctor/types.js.map +1 -1
- package/dist/cli/doctor/ug-delegations.d.ts +26 -0
- package/dist/cli/doctor/ug-delegations.js +112 -0
- package/dist/cli/doctor/ug-delegations.js.map +1 -0
- package/dist/cli/doctor/understanding-mode-env.d.ts +2 -0
- package/dist/cli/doctor/understanding-mode-env.js +5 -2
- package/dist/cli/doctor/understanding-mode-env.js.map +1 -1
- package/dist/cli/index.js +89 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/pack/approve-escape.js +16 -7
- package/dist/cli/pack/approve-escape.js.map +1 -1
- package/dist/cli/pack/auto-approve-path.d.ts +17 -0
- package/dist/cli/pack/auto-approve-path.js +56 -3
- package/dist/cli/pack/auto-approve-path.js.map +1 -1
- package/dist/cli/pack/hook-pre-tool-use.d.ts +25 -0
- package/dist/cli/pack/hook-pre-tool-use.js +336 -3
- package/dist/cli/pack/hook-pre-tool-use.js.map +1 -1
- package/dist/cli/pack/transcript-report-scan.d.ts +71 -0
- package/dist/cli/pack/transcript-report-scan.js +359 -0
- package/dist/cli/pack/transcript-report-scan.js.map +1 -0
- package/dist/cli/smoke/index.d.ts +18 -1
- package/dist/cli/smoke/index.js +54 -0
- package/dist/cli/smoke/index.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.d.ts +76 -2
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js +139 -2
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.d.ts +223 -0
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +633 -0
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js.map +1 -0
- package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +2 -1
- package/dist/policy-packs/builtin/understanding-before-execution/index.js +9 -1
- package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution.d.ts +19 -0
- package/dist/policy-packs/builtin/understanding-before-execution.js +29 -0
- package/dist/policy-packs/builtin/understanding-before-execution.js.map +1 -1
- package/dist/runtime/approval-signing.js +28 -0
- package/dist/runtime/approval-signing.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,145 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.52.0] - 2026-08-28
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Understanding gate: `harness delegate`, a signed pre-authorization for headless `claude -p` children, slice 3 of the auto-mode-approval ADR**
|
|
15
|
+
(agent-tasks `37ad0b05`, `docs/decisions/2026-08-27-ug-auto-mode-approval.md`,
|
|
16
|
+
"`claude -p` delegation"). `harness delegate --child-session <uuid>
|
|
17
|
+
(--cwd <path> | --task <id>) [--ttl <duration>] [--report <path>]
|
|
18
|
+
[--session-id <parent>]` issues a signed delegation for a `-p` child,
|
|
19
|
+
bound to an already-approved PARENT session, refusing when the parent
|
|
20
|
+
carries no valid marker or when the delegation binds neither a cwd nor
|
|
21
|
+
a task. The delegation is written to its own directory,
|
|
22
|
+
`harness.generated/.delegations/<child-sid>`, never `.approvals/`,
|
|
23
|
+
signed under markerId `delegation-<child-sid>` with every binding
|
|
24
|
+
(parent session, hashed cwd, task, expiry, and, in the fallback shape,
|
|
25
|
+
the launcher-supplied report's path and content hash) packed into the
|
|
26
|
+
signed `approvedBy` string; a dedicated verifier checks the signature,
|
|
27
|
+
the parsed bindings, expiry, and cwd/task match before the child's own
|
|
28
|
+
PreToolUse hook will mint anything, and every refusal is a distinct
|
|
29
|
+
diagnostic, never a fall-through to allow. The audit-only ledger fact
|
|
30
|
+
`understanding-delegated:<child-sid>:<parent-sid>` is written
|
|
31
|
+
alongside it.
|
|
32
|
+
- **Child report capture under `-p`.** A report the child emits before
|
|
33
|
+
its first tool call is not yet in the session transcript at the
|
|
34
|
+
instant the hook fires; the new `auto_approve.report_scan.max_wait`
|
|
35
|
+
config key bounds a fail-closed poll for it (default `2s`, a
|
|
36
|
+
measured value derived from the observed `-p` latency distribution;
|
|
37
|
+
see `docs/okf/understanding-gate-auto-mode-signals.md` for the
|
|
38
|
+
derivation), with block-and-retry as the behaviour past the bound
|
|
39
|
+
rather than an alternative to it. The default was retuned from an
|
|
40
|
+
initial 500ms after end-to-end dogfood runs against a real
|
|
41
|
+
full-length report (see the evidence doc's "Chosen
|
|
42
|
+
`report_scan.max_wait` default" section for why). The child's own
|
|
43
|
+
PreToolUse hook,
|
|
44
|
+
on a valid delegation, runs this scan, persists the report bound to
|
|
45
|
+
the child's session id, and only then mints the child's own
|
|
46
|
+
auto-marker with `approvedBy` carrying the parent linkage.
|
|
47
|
+
- **Once-per-session report adoption.** The scan accepts the report
|
|
48
|
+
under any heading level (`#` through `######`), matching the schema
|
|
49
|
+
hint the child is given rather than pinning one, and each transcript
|
|
50
|
+
entry a report is captured from is spent at most once per session:
|
|
51
|
+
its id is recorded, one per line, in its own directory
|
|
52
|
+
`harness.generated/.delegation-adoptions/<child-sid>`, a sibling of
|
|
53
|
+
`.delegations/` rather than nested inside it, so `harness doctor`'s
|
|
54
|
+
delegations-on-disk metric (which counts every regular file directly
|
|
55
|
+
under `.delegations/`) never miscounts it. Without this rule an
|
|
56
|
+
expired auto-marker would re-mint itself from the same transcript
|
|
57
|
+
entry, silently handing the delegation's longer TTL to the approval.
|
|
58
|
+
The minted marker's `approvedBy` on this path always carries the
|
|
59
|
+
neutral `delegated` mode literal, never the payload's raw
|
|
60
|
+
`permission_mode`, so a doctor listing never buckets it under a mode
|
|
61
|
+
that played no part in the decision.
|
|
62
|
+
- **The harness smoke runner is the first consumer.** `harness smoke`
|
|
63
|
+
now issues a delegation for the session id it already chooses,
|
|
64
|
+
bound to the cwd the child actually spawns into, before every run;
|
|
65
|
+
a refusal prints one line and the run proceeds exactly as before
|
|
66
|
+
slice 3, and `--no-delegate` opts a launcher back into the
|
|
67
|
+
pre-slice-3 shape entirely.
|
|
68
|
+
- **`harness doctor`** gains a `delegations on disk: <count> (<count>
|
|
69
|
+
expired, <count> unreadable)` line in the understanding-gate
|
|
70
|
+
section, counted from `.delegations/` only (never `.approvals/`),
|
|
71
|
+
informational unless it finds an unreadable file.
|
|
72
|
+
- **The `--report` fallback shape is issued and signature-verifiable
|
|
73
|
+
but not yet consumed by the child hook**: a delegation that binds a
|
|
74
|
+
launcher-supplied report is refused (`report_path_mismatch`) rather
|
|
75
|
+
than checked against it, since the hook never passes
|
|
76
|
+
`launcherReportPath` to the verifier; wiring it in is a named
|
|
77
|
+
follow-up, and the transcript-scan channel above is what this
|
|
78
|
+
release actually acts on.
|
|
79
|
+
- **`harness doctor`: warn when `auto_approve` is configured without
|
|
80
|
+
`mode: grill_me`** (agent-tasks `abfad738`, follow-up of the ADR
|
|
81
|
+
`docs/decisions/2026-08-27-ug-auto-mode-approval.md` slice 1). The
|
|
82
|
+
auto-approval path's report precondition reuses
|
|
83
|
+
`validatePersistedReport`, which only enforces the report's `mode`
|
|
84
|
+
field when it is `grill_me`. Outside that mode, report validation is
|
|
85
|
+
structural only. `harness doctor` now prints one advisory `⚠` line,
|
|
86
|
+
in `harness doctor`'s `Environment` section, when the
|
|
87
|
+
`understanding-before-execution` pack is declared and enabled, its
|
|
88
|
+
`config.auto_approve` parses as a valid opt-in block, and the
|
|
89
|
+
RESOLVED effective mode (`resolveModeFromConfig`, same GENERATION-path
|
|
90
|
+
resolver `checkUnderstandingModeEnvDivergence` uses) is not
|
|
91
|
+
`grill_me`. A missing or unrecognised `config.mode` resolves to the
|
|
92
|
+
`grill_me` default and never fires this warning, since that is the
|
|
93
|
+
mode the generated Stop-hook command actually passes at runtime. A
|
|
94
|
+
session-level `UNDERSTANDING_GATE_MODE` env override is a separate gap
|
|
95
|
+
covered by the existing mode/env divergence advisory, not by this
|
|
96
|
+
check. Always advisory (rolls into `warningCount`, never
|
|
97
|
+
`errorCount`); surfaced in `--json` as `ugAutoApproveMode`. New module
|
|
98
|
+
`src/cli/doctor/auto-approve-mode.ts`.
|
|
99
|
+
- **`harness audit` now shows understanding-gate approval facts** (agent-tasks
|
|
100
|
+
`5ad63b01`, follow-up of slice 1 of the ADR
|
|
101
|
+
`docs/decisions/2026-08-27-ug-auto-mode-approval.md`, "Audit and doctor").
|
|
102
|
+
A new `approvals` section, alongside the unchanged `policy_decision` table,
|
|
103
|
+
lists the raw ledger facts `understanding-approved:<sid>` (plain or
|
|
104
|
+
`:forced:<field>`-suffixed) and `understanding-auto-approved:<sid>` within
|
|
105
|
+
the audited `--since` window, each with timestamp, tag and source (tag
|
|
106
|
+
and source are flattened and length-capped before rendering, so an
|
|
107
|
+
embedded newline in untrusted ledger content can't split one row into
|
|
108
|
+
two). A second server-side ledger fetch narrows by `contentPrefix:
|
|
109
|
+
"understanding-"` when the connected grounding-mcp supports it; matching
|
|
110
|
+
is by exact tag (built from the same `approvedLedgerTagFor` /
|
|
111
|
+
`autoApprovedLedgerTagFor` helpers the two writers use), so an unrelated
|
|
112
|
+
ledger row that merely contains one of these strings (for example a
|
|
113
|
+
`review:<n>:approved` fact) cannot slip in. Filtered by `--since` and
|
|
114
|
+
`--session` only; `--policy` / `--outcome` stay policy-decision-only.
|
|
115
|
+
Empty section is omitted in text output; `--json` always carries an
|
|
116
|
+
`approvals` array plus the resolved `sessionId`. A degraded approvals-only
|
|
117
|
+
fetch degrades softly rather than discarding the already-fetched decisions
|
|
118
|
+
table: text gets one `approvals unavailable: <reason>` line, `--json` gets
|
|
119
|
+
`approvalsUnavailable` (with `approvals: []`), and the audit-only posture
|
|
120
|
+
gets one stderr line; exit code stays tied to the policy-decision fetch.
|
|
121
|
+
`src/cli/audit.ts`, `src/cli/index.ts`, `tests/cli/audit.test.ts`.
|
|
122
|
+
- **`harness doctor` warns on a live Codex `approval_policy = "never"` or
|
|
123
|
+
full-access `default_permissions` selection** (agent-tasks `f59ea0eb`,
|
|
124
|
+
follow-up of slice 2 of the ADR
|
|
125
|
+
`docs/decisions/2026-08-27-ug-auto-mode-approval.md`). Either config
|
|
126
|
+
key in `$CODEX_HOME/config.toml` or `<repo>/.codex/config.toml`
|
|
127
|
+
pre-sets the trusted `permission_mode` signal the Codex `auto_approve`
|
|
128
|
+
path consumes. `approval_policy = "never"` is the measured signal
|
|
129
|
+
(`dogfood/ug-auto-mode-signals/README.md`, section (l)); the
|
|
130
|
+
full-access `default_permissions` check is a threat-model heuristic on
|
|
131
|
+
a key the operator can set, not a measured signal (section (k) shows
|
|
132
|
+
it does not move `permission_mode` under `codex exec`). Codex
|
|
133
|
+
counterpart of the existing `permissions.defaultMode` settings-drift
|
|
134
|
+
warning for Claude Code. Gated on `auto_approve.harnesses` listing
|
|
135
|
+
`codex`, so a repo that never opted Codex into the auto path sees no
|
|
136
|
+
line. Warning only, never an enforcement; new module
|
|
137
|
+
`src/cli/doctor/codex-config-drift.ts`.
|
|
138
|
+
|
|
139
|
+
### Security
|
|
140
|
+
|
|
141
|
+
- **The honest trust model in `src/runtime/approval-signing.ts` names the delegation as a third signed artifact kind and `harness delegate` as a second CLI writer**
|
|
142
|
+
(agent-tasks `37ad0b05`), beside the approval / branch-protection
|
|
143
|
+
markers and the `harness approve` verbs: same key, same HMAC
|
|
144
|
+
primitive, its own markerId namespace (`delegation-<child-sid>`), and
|
|
145
|
+
a different meaning for `reportContentHash` on that artifact kind (the
|
|
146
|
+
launcher-supplied report file, not a persisted one) that a reader must
|
|
147
|
+
branch on.
|
|
148
|
+
|
|
10
149
|
## [0.51.0] - 2026-08-27
|
|
11
150
|
|
|
12
151
|
### Added
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ModeConfigSource } from "../../policy-packs/builtin/understanding-before-execution.js";
|
|
1
2
|
import type { Manifest } from "../../schema/index.js";
|
|
2
3
|
import { type LoaderOptions } from "../loader.js";
|
|
3
4
|
import { type StdinReportOutcome } from "./stdin-report.js";
|
|
@@ -203,6 +204,51 @@ export interface ApproveUnderstandingResult {
|
|
|
203
204
|
skipped: true;
|
|
204
205
|
};
|
|
205
206
|
}
|
|
207
|
+
/** Best-effort manifest load plus the resolved `understanding-before-execution` pack config entry it feeds. */
|
|
208
|
+
export interface DeclaredUnderstandingPack {
|
|
209
|
+
/** `null` when the manifest could not be loaded; the caller degrades gracefully rather than treating this as fatal. */
|
|
210
|
+
manifest: Manifest | null;
|
|
211
|
+
/** The load failure's message, when `manifest` is `null`. `null` on a clean load. */
|
|
212
|
+
manifestLoadError: string | null;
|
|
213
|
+
/**
|
|
214
|
+
* The pack's own declared entry when present and not explicitly
|
|
215
|
+
* `enabled: false`; otherwise a synthesized empty entry (`config: {}`)
|
|
216
|
+
* so a caller's `resolveMode` / `approval_lifecycle` read still resolves
|
|
217
|
+
* via Env > default instead of needing a null check.
|
|
218
|
+
*/
|
|
219
|
+
declaredPack: ModeConfigSource;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Load the manifest (best-effort, never throws) and resolve the
|
|
223
|
+
* `understanding-before-execution` pack's declared config entry from it.
|
|
224
|
+
* Extracted (agent-tasks 37ad0b05) so
|
|
225
|
+
* `approveUnderstanding` and `issueDelegation` (`src/cli/delegate/index.ts`)
|
|
226
|
+
* share one copy of this manifest-load-plus-pack-lookup shape instead of
|
|
227
|
+
* each carrying its own byte-identical block
|
|
228
|
+
* (`npm run check:duplication` was flagging the pair as a clone). Pure
|
|
229
|
+
* extraction: the try/catch and the `declaredPack` fallback are unchanged
|
|
230
|
+
* from what each call site did inline before this change.
|
|
231
|
+
*/
|
|
232
|
+
export declare function loadDeclaredUnderstandingPack(opts: LoaderOptions & {
|
|
233
|
+
manifest?: Manifest;
|
|
234
|
+
}): DeclaredUnderstandingPack;
|
|
235
|
+
/**
|
|
236
|
+
* Exported (agent-tasks 37ad0b05, Slice 3 of the auto-mode-approval ADR)
|
|
237
|
+
* with an additive `source` parameter so `harness delegate` can reuse
|
|
238
|
+
* this writer verbatim instead of re-implementing the same
|
|
239
|
+
* findGroundingMcp + addLedgerFact shape a third time in this codebase
|
|
240
|
+
* (branch-protection.ts already carries its own independent copy for
|
|
241
|
+
* its own `harness-approve-branch-protection` source). `source` defaults
|
|
242
|
+
* to this file's own literal, so `approveUnderstanding`'s own call below
|
|
243
|
+
* (which does not pass it) is byte-identical to before this change: pure
|
|
244
|
+
* additive parameterization, not a behaviour change for that caller.
|
|
245
|
+
*/
|
|
246
|
+
export declare function writeLedgerTag(manifest: Manifest, sessionId: string, content: string, opts: ApproveUnderstandingOptions, source?: string): Promise<{
|
|
247
|
+
ok: true;
|
|
248
|
+
} | {
|
|
249
|
+
ok: false;
|
|
250
|
+
reason: string;
|
|
251
|
+
}>;
|
|
206
252
|
export interface ParseErrorSummary {
|
|
207
253
|
filePath: string;
|
|
208
254
|
/** One-line human-readable summary suitable for inlining in the CLI reason. */
|
|
@@ -52,7 +52,41 @@ function expandHomePath(p) {
|
|
|
52
52
|
return path.join(process.env.HOME ?? os.homedir(), p.slice(2));
|
|
53
53
|
return p;
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Load the manifest (best-effort, never throws) and resolve the
|
|
57
|
+
* `understanding-before-execution` pack's declared config entry from it.
|
|
58
|
+
* Extracted (agent-tasks 37ad0b05) so
|
|
59
|
+
* `approveUnderstanding` and `issueDelegation` (`src/cli/delegate/index.ts`)
|
|
60
|
+
* share one copy of this manifest-load-plus-pack-lookup shape instead of
|
|
61
|
+
* each carrying its own byte-identical block
|
|
62
|
+
* (`npm run check:duplication` was flagging the pair as a clone). Pure
|
|
63
|
+
* extraction: the try/catch and the `declaredPack` fallback are unchanged
|
|
64
|
+
* from what each call site did inline before this change.
|
|
65
|
+
*/
|
|
66
|
+
export function loadDeclaredUnderstandingPack(opts) {
|
|
67
|
+
let manifest = null;
|
|
68
|
+
let manifestLoadError = null;
|
|
69
|
+
try {
|
|
70
|
+
manifest = opts.manifest ?? loadManifest(opts).manifest;
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
manifestLoadError = err instanceof Error ? err.message : String(err);
|
|
74
|
+
}
|
|
75
|
+
const declaredPack = manifest?.policy_packs.find((p) => p.name === UNDERSTANDING_PACK_NAME && p.enabled !== false) ?? { name: UNDERSTANDING_PACK_NAME, config: {} };
|
|
76
|
+
return { manifest, manifestLoadError, declaredPack };
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Exported (agent-tasks 37ad0b05, Slice 3 of the auto-mode-approval ADR)
|
|
80
|
+
* with an additive `source` parameter so `harness delegate` can reuse
|
|
81
|
+
* this writer verbatim instead of re-implementing the same
|
|
82
|
+
* findGroundingMcp + addLedgerFact shape a third time in this codebase
|
|
83
|
+
* (branch-protection.ts already carries its own independent copy for
|
|
84
|
+
* its own `harness-approve-branch-protection` source). `source` defaults
|
|
85
|
+
* to this file's own literal, so `approveUnderstanding`'s own call below
|
|
86
|
+
* (which does not pass it) is byte-identical to before this change: pure
|
|
87
|
+
* additive parameterization, not a behaviour change for that caller.
|
|
88
|
+
*/
|
|
89
|
+
export async function writeLedgerTag(manifest, sessionId, content, opts, source = "harness-approve-understanding") {
|
|
56
90
|
if (opts.ledgerAdd)
|
|
57
91
|
return opts.ledgerAdd(sessionId, content);
|
|
58
92
|
const server = findGroundingMcp(manifest);
|
|
@@ -68,7 +102,7 @@ async function writeLedgerTag(manifest, sessionId, content, opts) {
|
|
|
68
102
|
timeoutMs: server.health?.timeout_ms ?? 5_000,
|
|
69
103
|
sessionId,
|
|
70
104
|
content,
|
|
71
|
-
source
|
|
105
|
+
source,
|
|
72
106
|
});
|
|
73
107
|
}
|
|
74
108
|
/**
|
|
@@ -429,29 +463,23 @@ export async function approveUnderstanding(opts = {}) {
|
|
|
429
463
|
}
|
|
430
464
|
// Manifest is required for the ledger write path; if it can't load,
|
|
431
465
|
// we still try to flip the persisted report so a solo user benefits.
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
catch (err) {
|
|
438
|
-
// Not blocking: a solo user still benefits from the report flip below
|
|
439
|
-
// even with no manifest. But capture the cause so the degraded-ok
|
|
440
|
-
// ledger result names WHY the write was skipped instead of leaving the
|
|
441
|
-
// operator with a bare `ledger: ok false` (no-silent-errors, M8).
|
|
442
|
-
manifestLoadError = err instanceof Error ? err.message : String(err);
|
|
443
|
-
}
|
|
466
|
+
// Not blocking: a solo user still benefits from the report flip below
|
|
467
|
+
// even with no manifest. `manifestLoadError` captures the cause so the
|
|
468
|
+
// degraded-ok ledger result names WHY the write was skipped instead of
|
|
469
|
+
// leaving the operator with a bare `ledger: ok false` (no-silent-errors,
|
|
470
|
+
// M8).
|
|
444
471
|
// Gap-fill mode for a stdin report that declares none of its own
|
|
445
472
|
// (harness task 5d73d78d): resolve via `resolveMode` (Env >
|
|
446
473
|
// config.mode > DEFAULT_MODE — this IS a live runtime consumer, unlike
|
|
447
474
|
// `resolve()`/`buildHooks`'s generation path; see `MODE_ENV`'s doc
|
|
448
475
|
// comment in understanding-before-execution.ts for why the two differ),
|
|
449
|
-
// from whatever manifest is available
|
|
450
|
-
// path is validated against the
|
|
451
|
-
// instead of a hardcoded
|
|
452
|
-
// missing manifest, or a
|
|
453
|
-
//
|
|
454
|
-
// Env > DEFAULT_MODE in
|
|
476
|
+
// from whatever manifest is available (`loadDeclaredUnderstandingPack`
|
|
477
|
+
// above), so a report captured via this path is validated against the
|
|
478
|
+
// operator's actually-configured mode instead of a hardcoded
|
|
479
|
+
// "fast_confirm" regardless of harness.yaml. A missing manifest, or a
|
|
480
|
+
// manifest without the pack declared, resolves the same as an empty
|
|
481
|
+
// `config:` block, resolveMode still applies Env > DEFAULT_MODE in
|
|
482
|
+
// that case.
|
|
455
483
|
//
|
|
456
484
|
// A pack entry that IS declared but `enabled: false` is treated the
|
|
457
485
|
// SAME as undeclared (task 5d73d78d review LOW-10): a disabled pack's
|
|
@@ -460,8 +488,8 @@ export async function approveUnderstanding(opts = {}) {
|
|
|
460
488
|
// fallback only needs `name` + `config` (resolveMode's minimal
|
|
461
489
|
// `ModeConfigSource` shape) — `source`/`enabled` would otherwise have
|
|
462
490
|
// to be invented for a pack entry that, by construction, was never
|
|
463
|
-
// matched.
|
|
464
|
-
const
|
|
491
|
+
// matched. `loadDeclaredUnderstandingPack` applies that same rule.
|
|
492
|
+
const { manifest, manifestLoadError, declaredPack } = loadDeclaredUnderstandingPack(opts);
|
|
465
493
|
// Task 5d73d78d review LOW (fix-round-3): `resolveMode`'s own warning
|
|
466
494
|
// (an invalid `config.mode` or `UNDERSTANDING_GATE_MODE` value) used to
|
|
467
495
|
// be dropped on the floor here — only `.mode` was read. The Codex
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"understanding.js","sourceRoot":"","sources":["../../../src/cli/approve/understanding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"understanding.js","sourceRoot":"","sources":["../../../src/cli/approve/understanding.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/audit.d.ts
CHANGED
|
@@ -27,6 +27,14 @@ export interface AuditOptions extends LoaderOptions {
|
|
|
27
27
|
}) => Promise<LedgerQueryResult>;
|
|
28
28
|
/** Override "now" (tests). */
|
|
29
29
|
now?: Date;
|
|
30
|
+
/**
|
|
31
|
+
* Sink for the audit-only "approvals unavailable" notice (M4: a degraded
|
|
32
|
+
* second fetch degrades softly rather than discarding the already-fetched
|
|
33
|
+
* decisions table). Defaults to `process.stderr.write`, matching the
|
|
34
|
+
* one-stderr-line posture `src/cli/pack/auto-approve-path.ts` uses for its
|
|
35
|
+
* own audit-only ledger writes.
|
|
36
|
+
*/
|
|
37
|
+
stderr?: (s: string) => void;
|
|
30
38
|
}
|
|
31
39
|
export interface AuditDecisionRow {
|
|
32
40
|
timestamp: string;
|
|
@@ -44,8 +52,29 @@ export interface AuditDecisionRow {
|
|
|
44
52
|
*/
|
|
45
53
|
whenUnclassifiedFallback?: boolean;
|
|
46
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* One raw understanding-gate ledger fact in the audit window: a
|
|
57
|
+
* `understanding-approved:<sid>` (human approval, plain or
|
|
58
|
+
* `:forced:<field>`-suffixed) or `understanding-auto-approved:<sid>`
|
|
59
|
+
* (auto-mode) row, exactly as the two writers stamp it
|
|
60
|
+
* (`src/cli/approve/understanding.ts`, `src/cli/pack/auto-approve-path.ts`).
|
|
61
|
+
* Read-only reporting: this section carries no gate authority, mirroring
|
|
62
|
+
* the ledger's audit-only status for both tag families.
|
|
63
|
+
*/
|
|
64
|
+
export interface AuditApprovalRow {
|
|
65
|
+
timestamp: string;
|
|
66
|
+
tag: string;
|
|
67
|
+
source: string;
|
|
68
|
+
}
|
|
47
69
|
export interface AuditResult {
|
|
48
70
|
output: string;
|
|
49
71
|
decisions: AuditDecisionRow[];
|
|
72
|
+
approvals: AuditApprovalRow[];
|
|
73
|
+
/**
|
|
74
|
+
* M4: set when the approvals fetch (only) came back degraded. The
|
|
75
|
+
* decisions table still renders; this carries the reason so `--json`
|
|
76
|
+
* consumers can tell "no approval facts" apart from "couldn't check".
|
|
77
|
+
*/
|
|
78
|
+
approvalsUnavailable?: string;
|
|
50
79
|
}
|
|
51
80
|
export declare function audit(opts?: AuditOptions): Promise<AuditResult>;
|
package/dist/cli/audit.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { parseDurationSeconds, parseLedgerTimestamp, queryLedgerByTag, } from "../policies/index.js";
|
|
2
2
|
import { decisionSortKey, decodeLedgerContent, } from "../io/ledger-record.js";
|
|
3
3
|
import { POLICY_DECISION_TYPE } from "../io/ledger-record.js";
|
|
4
|
+
import { approvedLedgerTagFor, autoApprovedLedgerTagFor, } from "../policy-packs/builtin/understanding-before-execution/index.js";
|
|
4
5
|
import { resolveReadSessionId, } from "../runtime/session-id.js";
|
|
5
6
|
import { EX_UNAVAILABLE, EX_USAGE, HarnessExitError } from "./exit-codes.js";
|
|
6
7
|
import { loadManifest } from "./loader.js";
|
|
@@ -66,6 +67,64 @@ function rowsFromEntries(entries) {
|
|
|
66
67
|
}),
|
|
67
68
|
}));
|
|
68
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* agent-tasks 5ad63b01: build the raw understanding-gate approval-fact
|
|
72
|
+
* rows for the audit window. Reuses the two writers' own tag builders
|
|
73
|
+
* (`approvedLedgerTagFor` / `autoApprovedLedgerTagFor`, keyed on the
|
|
74
|
+
* SAME resolved `sessionId` the ledger fetch itself is scoped to)
|
|
75
|
+
* instead of re-deriving the tag shape with a parser, so a change to
|
|
76
|
+
* either prefix or to the `:forced:<field>` suffix convention cannot
|
|
77
|
+
* drift out of sync with this read path. Matching is exact-or-forced-
|
|
78
|
+
* prefix, never substring, so `review:42:approved` (or any future tag
|
|
79
|
+
* that merely CONTAINS one of these strings) cannot slip in, the same
|
|
80
|
+
* substring-pollution concern `isPolicyDecisionRow` guards on the
|
|
81
|
+
* gate-check side (`ledger.ts`).
|
|
82
|
+
*/
|
|
83
|
+
function rowsFromApprovalEntries(entries, sessionId) {
|
|
84
|
+
const humanTag = approvedLedgerTagFor(sessionId);
|
|
85
|
+
const humanForcedPrefix = `${humanTag}:forced:`;
|
|
86
|
+
const autoTag = autoApprovedLedgerTagFor(sessionId);
|
|
87
|
+
const rows = [];
|
|
88
|
+
for (const entry of entries) {
|
|
89
|
+
const content = entry.content;
|
|
90
|
+
if (content !== humanTag && content !== autoTag && !content.startsWith(humanForcedPrefix)) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
rows.push({
|
|
94
|
+
timestamp: typeof entry.createdAt === "string"
|
|
95
|
+
? entry.createdAt
|
|
96
|
+
: entry.createdAt.toISOString(),
|
|
97
|
+
tag: content,
|
|
98
|
+
source: entry.source ?? "",
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
rows.sort((a, b) => parseLedgerTimestamp(a.timestamp) - parseLedgerTimestamp(b.timestamp));
|
|
102
|
+
return rows;
|
|
103
|
+
}
|
|
104
|
+
function renderTable(header, data) {
|
|
105
|
+
if (data.length === 0)
|
|
106
|
+
return "";
|
|
107
|
+
const widths = header.map((h, i) => Math.max(h.length, ...data.map((row) => row[i].length)));
|
|
108
|
+
const fmt = (cells) => cells.map((c, i) => c.padEnd(widths[i])).join(" ").trimEnd();
|
|
109
|
+
const lines = [];
|
|
110
|
+
lines.push(fmt(header));
|
|
111
|
+
lines.push(widths.map((w) => "-".repeat(w)).join(" ").trimEnd());
|
|
112
|
+
for (const row of data)
|
|
113
|
+
lines.push(fmt(row));
|
|
114
|
+
return `${lines.join("\n")}\n`;
|
|
115
|
+
}
|
|
116
|
+
// Single-line-ify a cell so a newline buried in untrusted content (a policy
|
|
117
|
+
// reason, or a ledger `tag`/`source` value the approvals section reads
|
|
118
|
+
// verbatim) can't split one logical row into two rendered table rows.
|
|
119
|
+
const flatten = (s) => s.replace(/\s+/g, " ").trim();
|
|
120
|
+
// M3: cap after flattening so a very long tag/source can't blow out the
|
|
121
|
+
// table width; the ellipsis marker makes the truncation visible rather than
|
|
122
|
+
// silently swallowing content.
|
|
123
|
+
const MAX_CELL_LEN = 200;
|
|
124
|
+
const flattenAndCap = (s) => {
|
|
125
|
+
const flat = flatten(s);
|
|
126
|
+
return flat.length > MAX_CELL_LEN ? `${flat.slice(0, MAX_CELL_LEN)}…` : flat;
|
|
127
|
+
};
|
|
69
128
|
function formatTable(rows) {
|
|
70
129
|
if (rows.length === 0)
|
|
71
130
|
return "";
|
|
@@ -74,19 +133,29 @@ function formatTable(rows) {
|
|
|
74
133
|
// alignment doesn't break on a newline buried in a future policy's reason.
|
|
75
134
|
// M7: annotate with [unclassified-fallback] when the fail-closed flag is
|
|
76
135
|
// set, so the human table reflects the same information the JSON field does.
|
|
77
|
-
const flatten = (s) => s.replace(/\s+/g, " ").trim();
|
|
78
136
|
const data = rows.map((r) => {
|
|
79
137
|
const reasonCell = flatten(r.reason) + (r.whenUnclassifiedFallback ? " [unclassified-fallback]" : "");
|
|
80
138
|
return [r.timestamp, r.name, r.outcome, reasonCell];
|
|
81
139
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
140
|
+
return renderTable(header, data);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Table rendering for the approvals section. Empty is `""` (never a
|
|
144
|
+
* header-only table), so the caller can decide whether to omit the whole
|
|
145
|
+
* section without inspecting row counts twice.
|
|
146
|
+
*
|
|
147
|
+
* M3: `tag` and `source` are untrusted ledger content (a forged or
|
|
148
|
+
* malformed entry could carry a newline), so both cells are flattened and
|
|
149
|
+
* length-capped the same way `formatTable` treats `reason`, otherwise an
|
|
150
|
+
* embedded newline renders as an extra table row that looks like a second,
|
|
151
|
+
* forged approval fact.
|
|
152
|
+
*/
|
|
153
|
+
function formatApprovals(rows) {
|
|
154
|
+
if (rows.length === 0)
|
|
155
|
+
return "";
|
|
156
|
+
const header = ["timestamp", "tag", "source"];
|
|
157
|
+
const data = rows.map((r) => [r.timestamp, flattenAndCap(r.tag), flattenAndCap(r.source)]);
|
|
158
|
+
return renderTable(header, data);
|
|
90
159
|
}
|
|
91
160
|
export async function audit(opts = {}) {
|
|
92
161
|
const since = opts.since ?? DEFAULT_SINCE;
|
|
@@ -125,15 +194,59 @@ export async function audit(opts = {}) {
|
|
|
125
194
|
if (opts.outcome) {
|
|
126
195
|
filtered = filtered.filter((r) => r.outcome === opts.outcome);
|
|
127
196
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
197
|
+
// Second, independent ledger fetch for the raw understanding-gate
|
|
198
|
+
// approval facts (docs/decisions/2026-08-27-ug-auto-mode-approval.md,
|
|
199
|
+
// "Audit and doctor"). Same server-side-narrowing / client-side-filter-
|
|
200
|
+
// stays-correct contract as the policy_decision fetch above:
|
|
201
|
+
// `contentPrefix: "understanding-"` is pushed server-side when
|
|
202
|
+
// supported, and rowsFromApprovalEntries + the `--since` filter below
|
|
203
|
+
// are applied regardless, so an old server that ignores the hint and
|
|
204
|
+
// returns the whole session still renders correctly. Filtered by
|
|
205
|
+
// `--since` and `--session` only (never `--policy` / `--outcome`,
|
|
206
|
+
// which are policy-decision-only filters); the `--session` filtering
|
|
207
|
+
// falls out of `rowsFromApprovalEntries` matching tags built from this
|
|
208
|
+
// SAME resolved `sessionId`.
|
|
209
|
+
const approvalResult = await fetch(sessionId, {
|
|
210
|
+
sinceIso,
|
|
211
|
+
contentPrefix: "understanding-",
|
|
212
|
+
});
|
|
213
|
+
const stderrSink = opts.stderr ?? ((s) => process.stderr.write(s));
|
|
214
|
+
let approvals = [];
|
|
215
|
+
let approvalsUnavailable;
|
|
216
|
+
if (approvalResult.kind === "degraded") {
|
|
217
|
+
// M4: a degraded approvals fetch degrades softly, it must not discard
|
|
218
|
+
// the decisions table that already fetched successfully. Exit code is
|
|
219
|
+
// unchanged (tied to the policy-decision fetch only, above); the
|
|
220
|
+
// audit-only posture gets one stderr line, matching
|
|
221
|
+
// `src/cli/pack/auto-approve-path.ts`'s own audit-only-write failures.
|
|
222
|
+
approvalsUnavailable = approvalResult.reason;
|
|
223
|
+
stderrSink(`approvals unavailable: ${approvalResult.reason}\n`);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
approvals = rowsFromApprovalEntries(approvalResult.entries, sessionId).filter((r) => parseLedgerTimestamp(r.timestamp) >= cutoffMs);
|
|
133
227
|
}
|
|
228
|
+
const decisionsText = filtered.length === 0 ? `no policy decisions in the last ${since}\n` : formatTable(filtered);
|
|
229
|
+
// Omitted entirely when empty and available (acceptance criterion 1), so
|
|
230
|
+
// the documented empty-window message above stays byte-identical when
|
|
231
|
+
// there is also nothing to approve.
|
|
232
|
+
const approvalsText = approvalsUnavailable !== undefined
|
|
233
|
+
? `\napprovals unavailable: ${approvalsUnavailable}\n`
|
|
234
|
+
: approvals.length === 0
|
|
235
|
+
? ""
|
|
236
|
+
: `\napprovals\n${formatApprovals(approvals)}`;
|
|
134
237
|
const output = opts.json
|
|
135
|
-
? `${JSON.stringify({
|
|
136
|
-
|
|
137
|
-
|
|
238
|
+
? `${JSON.stringify({
|
|
239
|
+
sessionId,
|
|
240
|
+
decisions: filtered,
|
|
241
|
+
approvals,
|
|
242
|
+
...(approvalsUnavailable !== undefined && { approvalsUnavailable }),
|
|
243
|
+
}, null, 2)}\n`
|
|
244
|
+
: `${decisionsText}${approvalsText}`;
|
|
245
|
+
return {
|
|
246
|
+
output,
|
|
247
|
+
decisions: filtered,
|
|
248
|
+
approvals,
|
|
249
|
+
...(approvalsUnavailable !== undefined && { approvalsUnavailable }),
|
|
250
|
+
};
|
|
138
251
|
}
|
|
139
252
|
//# sourceMappingURL=audit.js.map
|