@lannguyensi/harness 0.51.0 → 0.53.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 +182 -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/bypass-without-auto-approve.d.ts +38 -0
- package/dist/cli/doctor/bypass-without-auto-approve.js +89 -0
- package/dist/cli/doctor/bypass-without-auto-approve.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 +39 -1
- package/dist/cli/doctor/format.js.map +1 -1
- package/dist/cli/doctor/index.js +68 -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 +54 -0
- package/dist/cli/doctor/types.js.map +1 -1
- package/dist/cli/doctor/ug-auto-approvals.js +18 -43
- package/dist/cli/doctor/ug-auto-approvals.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/gc/index.d.ts +13 -2
- package/dist/cli/gc/index.js +203 -1
- package/dist/cli/gc/index.js.map +1 -1
- package/dist/cli/index.js +133 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/composer.js +9 -0
- package/dist/cli/init/composer.js.map +1 -1
- package/dist/cli/init/profiles.d.ts +2 -2
- package/dist/cli/init/profiles.js +11 -0
- package/dist/cli/init/profiles.js.map +1 -1
- package/dist/cli/init/templates.d.ts +1 -1
- package/dist/cli/init/templates.js +11 -0
- package/dist/cli/init/templates.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 +335 -3
- package/dist/cli/pack/hook-pre-tool-use.js.map +1 -1
- package/dist/cli/pack/index.d.ts +1 -0
- package/dist/cli/pack/index.js +1 -0
- package/dist/cli/pack/index.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/pack/upgrade.d.ts +32 -0
- package/dist/cli/pack/upgrade.js +273 -0
- package/dist/cli/pack/upgrade.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/io/read-json-dir-entries.d.ts +36 -0
- package/dist/io/read-json-dir-entries.js +38 -0
- package/dist/io/read-json-dir-entries.js.map +1 -0
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.d.ts +35 -0
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js +86 -0
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js.map +1 -0
- 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 +237 -0
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +647 -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 +4 -1
- package/dist/policy-packs/builtin/understanding-before-execution/index.js +26 -1
- package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.d.ts +71 -0
- package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js +169 -0
- package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js.map +1 -0
- 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/dist/runtime/git-context.js +7 -1
- package/dist/runtime/git-context.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,12 +20,34 @@
|
|
|
20
20
|
// hostile. The npm package's own standalone blocker still runs as a
|
|
21
21
|
// secondary safety net for solo users, and `harness explain --trace`
|
|
22
22
|
// (Phase 4 #6) surfaces the runtime audit trail when configured.
|
|
23
|
+
//
|
|
24
|
+
// SLICE 3 (agent-tasks 37ad0b05) adds the delegation-path capture of the
|
|
25
|
+
// child's own report from its session transcript. Two rules of that path
|
|
26
|
+
// live here rather than in the modules it calls:
|
|
27
|
+
//
|
|
28
|
+
// - ONE TRANSCRIPT ENTRY IS ADOPTED AT MOST ONCE PER SESSION. Every
|
|
29
|
+
// adopted entry's id is appended to
|
|
30
|
+
// `<generatedDir>/.delegation-adoptions/<sid>` BEFORE the capture is
|
|
31
|
+
// persisted, and the scan is given that set. Without it the same
|
|
32
|
+
// report would be re-captured and re-minted every time the auto-marker
|
|
33
|
+
// expired (or a task boundary cleared it), so the delegation's TTL
|
|
34
|
+
// would silently replace the marker's.
|
|
35
|
+
// - A CAPTURE THAT DOES NOT PARSE writes a parse-error log, once per
|
|
36
|
+
// failed capture, through the same `persistStdinReport` the operator
|
|
37
|
+
// path uses. That log is what the block envelope's malformed-sections
|
|
38
|
+
// notice is rendered from, so the per-capture write is deliberate.
|
|
39
|
+
import { appendFileSync, existsSync, lstatSync, mkdirSync } from "node:fs";
|
|
23
40
|
import * as path from "node:path";
|
|
41
|
+
import { readRegularFileRejectingSymlink } from "../../io/read-regular-file.js";
|
|
24
42
|
import { queryLedgerByTag, } from "../../policies/index.js";
|
|
25
43
|
import { renderProducers } from "../../policies/producers.js";
|
|
26
|
-
import { CLAUDE_CODE_HARNESS, checkOperatorApprovalMarkers, checkPersistedReport, defaultReportsDir, matchLedgerEntries, } from "../../policy-packs/builtin/understanding-before-execution-runtime.js";
|
|
44
|
+
import { ADOPTION_LEDGER_DIRNAME, CLAUDE_CODE_HARNESS, checkOperatorApprovalMarkers, checkPersistedReport, defaultReportsDir, delegationMarkerPathFor, harnessAllowed, listPersistedReports, matchLedgerEntries, parseAutoApprove, readActiveClaim, recordPermissionModeObservation, selectNewestStrictSessionReport, verifyDelegation, } from "../../policy-packs/builtin/understanding-before-execution-runtime.js";
|
|
45
|
+
import { resolveMode, toPackageMode, } from "../../policy-packs/builtin/understanding-before-execution.js";
|
|
46
|
+
import { signingKeyExists } from "../../runtime/approval-signing.js";
|
|
27
47
|
import { findLatestParseError, renderMalformedSectionsNotice } from "../approve/understanding.js";
|
|
48
|
+
import { persistStdinReport } from "../approve/stdin-report.js";
|
|
28
49
|
import { attemptAutoApproval, AUTO_APPROVE_LEDGER_SOURCE } from "./auto-approve-path.js";
|
|
50
|
+
import { scanTranscriptForReport } from "./transcript-report-scan.js";
|
|
29
51
|
import { resolveGeneratedDir, writePendingApproval, } from "../../runtime/pending-approval.js";
|
|
30
52
|
import { resolveManifestLedgerWriter } from "../../runtime/ledger-writer.js";
|
|
31
53
|
import { isReadOnlyBashPipeline } from "../../runtime/read-only-bash.js";
|
|
@@ -37,9 +59,102 @@ import { isEscapeCommand } from "./approve-escape.js";
|
|
|
37
59
|
import { checkHookPause, loadManifestOrInjected, parseConfigUx, readStdin, } from "./hook-bootstrap.js";
|
|
38
60
|
import { renderReportSchemaHint } from "./understanding-report-schema-hint.js";
|
|
39
61
|
const PACK_NAME = "understanding-before-execution";
|
|
62
|
+
/**
|
|
63
|
+
* The sentence appended to the standard block reason when a valid
|
|
64
|
+
* delegation was present but the child's own report had not reached the
|
|
65
|
+
* transcript within `auto_approve.report_scan.max_wait` (ADR "Report
|
|
66
|
+
* capture under `-p`": past the bound the hook blocks with an instruction
|
|
67
|
+
* that asks for REPEATED retries, because a text asking for a single
|
|
68
|
+
* retry was measured to leave the outcome to run-to-run variation).
|
|
69
|
+
*
|
|
70
|
+
* Deliberately does NOT pin a heading level. The same block envelope
|
|
71
|
+
* already carries `renderReportSchemaHint`'s "any heading level (#, ##,
|
|
72
|
+
* ###)" rule, and naming one level here would give the agent two
|
|
73
|
+
* different heading rules in one deny text.
|
|
74
|
+
*/
|
|
75
|
+
export const DELEGATION_REPORT_RETRY_INSTRUCTION = "Emit or re-emit your Understanding Report as an `Understanding Report` section (any heading level), then retry this command; if it is denied again, retry again.";
|
|
40
76
|
function findGroundingMcp(manifest) {
|
|
41
77
|
return manifest.tools.mcp.find((m) => m.name === "grounding-mcp") ?? null;
|
|
42
78
|
}
|
|
79
|
+
// `ADOPTION_LEDGER_DIRNAME` (the once-per-session ADOPTED-ENTRY ledger
|
|
80
|
+
// dirname, `.delegation-adoptions/`, a SIBLING of `.delegations/`, never
|
|
81
|
+
// inside it or `.approvals/`) now lives in delegation-markers.ts, next to
|
|
82
|
+
// `DELEGATION_MARKER_DIRNAME`: `harness gc`'s delegation sweep
|
|
83
|
+
// (task 3ece079d) needs the same constant to find orphaned ledgers, and a
|
|
84
|
+
// reader that never writes one has no business importing this CLI verb
|
|
85
|
+
// module for it. One id per line; ids come from the scan (`entryId`),
|
|
86
|
+
// which guarantees they carry no line break.
|
|
87
|
+
function adoptedEntriesPathFor(generatedDir, childSessionId) {
|
|
88
|
+
return path.join(generatedDir, ADOPTION_LEDGER_DIRNAME, childSessionId);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The entry ids this session has already spent. An absent file is the
|
|
92
|
+
* ordinary first-call case and reads as the empty set; every OTHER read
|
|
93
|
+
* failure fails closed with a result the caller declines on, because a
|
|
94
|
+
* ledger we cannot read cannot prove that the next transcript hit has not
|
|
95
|
+
* already been adopted. Goes through the same symlink-rejecting reader
|
|
96
|
+
* every other gate marker uses (`readRegularFileRejectingSymlink`):
|
|
97
|
+
* without it a symlink planted at this path would have the ledger read
|
|
98
|
+
* follow it to an arbitrary target the agent controls, and an empty or
|
|
99
|
+
* missing target there would read as "nothing adopted yet", the same
|
|
100
|
+
* open the delegation and approval marker reads already close.
|
|
101
|
+
*/
|
|
102
|
+
function readAdoptedEntries(filePath) {
|
|
103
|
+
const read = readRegularFileRejectingSymlink(filePath);
|
|
104
|
+
if (read.kind === "missing")
|
|
105
|
+
return { ok: true, ids: new Set() };
|
|
106
|
+
if (read.kind === "symlink") {
|
|
107
|
+
return { ok: false, detail: `${filePath} is a symlink, refusing for safety` };
|
|
108
|
+
}
|
|
109
|
+
if (read.kind === "not-regular") {
|
|
110
|
+
return { ok: false, detail: `${filePath} is not a regular file` };
|
|
111
|
+
}
|
|
112
|
+
if (read.kind !== "ok") {
|
|
113
|
+
return { ok: false, detail: `${filePath} exists but could not be read (I/O error)` };
|
|
114
|
+
}
|
|
115
|
+
const ids = new Set();
|
|
116
|
+
for (const line of read.content.split("\n")) {
|
|
117
|
+
const id = line.trim();
|
|
118
|
+
if (id.length > 0)
|
|
119
|
+
ids.add(id);
|
|
120
|
+
}
|
|
121
|
+
return { ok: true, ids };
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Append one adopted entry id, creating `.delegation-adoptions/` on first
|
|
125
|
+
* use with the same default directory mode `atomicWriteFile` gives
|
|
126
|
+
* `.delegations/` itself (the ledger FILE is 0600, like every marker).
|
|
127
|
+
* `appendFileSync` opens with `O_APPEND`, so a single short write lands
|
|
128
|
+
* whole even if two hooks race on the same session; no read-modify-write,
|
|
129
|
+
* therefore nothing to lose. `lstatSync` (NOT `existsSync`/`statSync`)
|
|
130
|
+
* gates the append the same way `readRegularFileRejectingSymlink` gates
|
|
131
|
+
* the read: a symlink planted at this path would otherwise have
|
|
132
|
+
* `appendFileSync` follow it and write the adoption record through to an
|
|
133
|
+
* arbitrary target, same class of defense as the read side above.
|
|
134
|
+
*/
|
|
135
|
+
function recordAdoptedEntry(filePath, entryId) {
|
|
136
|
+
try {
|
|
137
|
+
let priorStat;
|
|
138
|
+
try {
|
|
139
|
+
priorStat = lstatSync(filePath);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
priorStat = undefined;
|
|
143
|
+
}
|
|
144
|
+
if (priorStat !== undefined && !priorStat.isFile()) {
|
|
145
|
+
return {
|
|
146
|
+
ok: false,
|
|
147
|
+
detail: `${filePath} exists and is not a regular file, refusing to append through it`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
mkdirSync(path.dirname(filePath), { recursive: true });
|
|
151
|
+
appendFileSync(filePath, `${entryId}\n`, { mode: 0o600 });
|
|
152
|
+
return { ok: true };
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
return { ok: false, detail: err.message };
|
|
156
|
+
}
|
|
157
|
+
}
|
|
43
158
|
// The Claude Code "block" envelope. Mirrors the runtime/intercept.ts
|
|
44
159
|
// shape (PR #81): `decision: "block"` keeps legacy 2.0.x CLIs blocking,
|
|
45
160
|
// `hookSpecificOutput.permissionDecision: "deny"` is the Claude Code
|
|
@@ -76,7 +191,7 @@ function parseConfigProducers(raw, stderr) {
|
|
|
76
191
|
// the deny envelope the agent sees becomes the plain-language
|
|
77
192
|
// `{ cannot, required, run }` shape and the legacy "Understanding Gate:
|
|
78
193
|
// no approved..." + schemaHint + producers vocabulary is suppressed.
|
|
79
|
-
function blockJson(toolName, reason, producers, ux, sessionId, escapeHint, malformedSections) {
|
|
194
|
+
function blockJson(toolName, reason, producers, ux, sessionId, escapeHint, malformedSections, retryInstruction) {
|
|
80
195
|
// When the pack config declares `ux:`, the agent-facing surface
|
|
81
196
|
// becomes the plain-language `{ cannot, required, run }` shape, and
|
|
82
197
|
// the legacy schemaHint + producers block is suppressed (the ux
|
|
@@ -125,6 +240,15 @@ function blockJson(toolName, reason, producers, ux, sessionId, escapeHint, malfo
|
|
|
125
240
|
if (escapeHint) {
|
|
126
241
|
reasonText = `${reasonText}\n\n${escapeHint}`;
|
|
127
242
|
}
|
|
243
|
+
// Slice 3's repeated-retry instruction, appended only when a valid
|
|
244
|
+
// delegation was present and the child's report simply had not landed
|
|
245
|
+
// yet. It is the most immediate remediation for that specific case (and
|
|
246
|
+
// the only one the child can act on alone), so it reads last. The
|
|
247
|
+
// standard reason above is kept intact rather than replaced: an
|
|
248
|
+
// operator reading the audit trail still sees the same block cause.
|
|
249
|
+
if (retryInstruction) {
|
|
250
|
+
reasonText = `${reasonText}\n\n${retryInstruction}`;
|
|
251
|
+
}
|
|
128
252
|
return JSON.stringify({
|
|
129
253
|
decision: "block",
|
|
130
254
|
reason: reasonText,
|
|
@@ -543,6 +667,209 @@ export async function runPackHookPreToolUseCli(opts = {}) {
|
|
|
543
667
|
// up `grounding-mcp` in the manifest on demand. Stays audit-only
|
|
544
668
|
// either way: a missing `grounding-mcp` entry costs one stderr line
|
|
545
669
|
// inside the auto path, never an approval.
|
|
670
|
+
// Step 9's key-one-by-delegation branch (slice 3, agent-tasks/37ad0b05,
|
|
671
|
+
// ADR "Decision: two-key design"). Placed immediately before the
|
|
672
|
+
// `attemptAutoApproval` call and therefore, like it, only on a call
|
|
673
|
+
// every branch above has already declined. What happens here is
|
|
674
|
+
// narrow: verify the delegation, and if it holds, obtain the child's
|
|
675
|
+
// OWN report through the bounded transcript poll and persist it
|
|
676
|
+
// `pending`. It writes no marker and returns no allow of its own; the
|
|
677
|
+
// auto path below still applies every condition it applies to a
|
|
678
|
+
// `when`-matched call, the `pending`-only report rule included, and the
|
|
679
|
+
// marker re-check inside it is still the only thing that allows.
|
|
680
|
+
//
|
|
681
|
+
// Fail-closed at every step, each with its own stderr line: no opt-in,
|
|
682
|
+
// an unlisted harness, no payload `session_id`, no delegation file, an
|
|
683
|
+
// absent signing key, any refusal from `verifyDelegation`, an
|
|
684
|
+
// unparseable or absent transcript report. Each one falls through with
|
|
685
|
+
// `delegation` unset, and the block below is what the call then
|
|
686
|
+
// reaches.
|
|
687
|
+
let delegation;
|
|
688
|
+
// Set only by the bound elapsing with no report in the transcript: the
|
|
689
|
+
// measured case where the child DID what it was asked and the write is
|
|
690
|
+
// simply still in flight. That is the one case where the deny text asks
|
|
691
|
+
// for a retry, so it is the one case that sets this flag.
|
|
692
|
+
let reportScanTimedOut = false;
|
|
693
|
+
if (generatedDir !== undefined && !markerForged) {
|
|
694
|
+
// `null` stderr on purpose: `attemptAutoApproval` parses the same
|
|
695
|
+
// block a few lines below and writes the malformed-config line
|
|
696
|
+
// itself, so passing this hook's stderr here would double it.
|
|
697
|
+
const autoCfg = parseAutoApprove(declared.config["auto_approve"], null);
|
|
698
|
+
const payloadSid = typeof event.session_id === "string" && event.session_id.length > 0
|
|
699
|
+
? event.session_id
|
|
700
|
+
: null;
|
|
701
|
+
let delegationPath = null;
|
|
702
|
+
if (autoCfg !== null && harnessAllowed(autoCfg, CLAUDE_CODE_HARNESS) && payloadSid !== null) {
|
|
703
|
+
try {
|
|
704
|
+
delegationPath = delegationMarkerPathFor(generatedDir, payloadSid);
|
|
705
|
+
}
|
|
706
|
+
catch {
|
|
707
|
+
// A session id that cannot name a file has no delegation, by
|
|
708
|
+
// construction (`verifyDelegation` draws the same conclusion).
|
|
709
|
+
delegationPath = null;
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
if (autoCfg !== null && delegationPath !== null && existsSync(delegationPath)) {
|
|
713
|
+
const childSessionId = payloadSid;
|
|
714
|
+
if (!signingKeyExists(generatedDir)) {
|
|
715
|
+
// Never verify through a path that would MINT the key
|
|
716
|
+
// (`verifyMarkerSignature` -> `getOrCreateSigningKey`). The
|
|
717
|
+
// verifier prechecks this too; this line names the condition at
|
|
718
|
+
// the hook, where the operator is reading.
|
|
719
|
+
stderr.write("harness pack hook: delegation present but signing key absent; not verified\n");
|
|
720
|
+
}
|
|
721
|
+
else {
|
|
722
|
+
const verified = verifyDelegation({
|
|
723
|
+
generatedDir,
|
|
724
|
+
childSessionId,
|
|
725
|
+
// The payload's own cwd, held against the hashed binding the
|
|
726
|
+
// parent signed. Absent means the delegation's cwd binding
|
|
727
|
+
// cannot be satisfied, which the verifier reports as a
|
|
728
|
+
// `cwd_mismatch` rather than waving through.
|
|
729
|
+
cwd: typeof event.cwd === "string" && event.cwd.length > 0 ? event.cwd : null,
|
|
730
|
+
// The same active-claim id the task-scoped marker check resolves
|
|
731
|
+
// above, so a delegation issued for one task cannot authorize a
|
|
732
|
+
// child that has claimed another. Read a SECOND time here on
|
|
733
|
+
// purpose: `checkOperatorApprovalMarkers` resolves the claim
|
|
734
|
+
// inside itself and returns only a detail string, never the id,
|
|
735
|
+
// so there is no resolved value to reuse without widening that
|
|
736
|
+
// shared runtime's return shape for one caller.
|
|
737
|
+
taskId: readActiveClaim(generatedDir),
|
|
738
|
+
});
|
|
739
|
+
if (!verified.ok) {
|
|
740
|
+
if (verified.reason === "report_path_mismatch") {
|
|
741
|
+
// This hook never passes `launcherReportPath` to
|
|
742
|
+
// `verifyDelegation`, so a delegation that binds one (the
|
|
743
|
+
// `--report` fallback shape) is refused here every time,
|
|
744
|
+
// not merely on a path/content mismatch. Name the actual
|
|
745
|
+
// limitation instead of the generic `report_path_mismatch`
|
|
746
|
+
// wording `verified.detail` carries: the fallback shape is
|
|
747
|
+
// issued and signature-verifiable by `harness delegate`, it
|
|
748
|
+
// is just not yet consumed by THIS hook (a named
|
|
749
|
+
// follow-up); the transcript scan below is the only report
|
|
750
|
+
// channel this hook acts on today.
|
|
751
|
+
stderr.write(`harness pack hook: delegation for ${childSessionId} refused: it binds a launcher-supplied report file (the --report fallback shape), which is issued and verifiable but not yet consumed by the child hook (a named follow-up); the transcript scan is the only report channel this hook acts on\n`);
|
|
752
|
+
}
|
|
753
|
+
else {
|
|
754
|
+
stderr.write(`harness pack hook: delegation for ${childSessionId} refused: ${verified.reason}: ${verified.detail}\n`);
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
else {
|
|
758
|
+
delegation = { parentSessionId: verified.parentSessionId };
|
|
759
|
+
// Key two: the child's own report. Already on disk and pending
|
|
760
|
+
// (the child was denied once and its report has since been
|
|
761
|
+
// captured) means there is nothing to scan for, so the
|
|
762
|
+
// transcript is not read at all.
|
|
763
|
+
// `childSessionId`, not the outer `sessionId`: this whole block
|
|
764
|
+
// decides the PAYLOAD's session, and the two only coincide
|
|
765
|
+
// because the env fallback never wins on a path that carries a
|
|
766
|
+
// payload session_id. Spelling it out keeps the report this
|
|
767
|
+
// branch looks for bound to the same session the delegation,
|
|
768
|
+
// the scan and the adoption ledger are all keyed by.
|
|
769
|
+
const existing = selectNewestStrictSessionReport(listPersistedReports(reportsDir), childSessionId);
|
|
770
|
+
if (existing === null || existing.approvalStatus !== "pending") {
|
|
771
|
+
const transcriptPath = typeof event.transcript_path === "string" && event.transcript_path.length > 0
|
|
772
|
+
? event.transcript_path
|
|
773
|
+
: null;
|
|
774
|
+
// The once-per-session adoption ledger, read only on the path
|
|
775
|
+
// that can actually capture something.
|
|
776
|
+
const adoptedPath = adoptedEntriesPathFor(generatedDir, childSessionId);
|
|
777
|
+
const adopted = transcriptPath === null
|
|
778
|
+
? { ok: true, ids: new Set() }
|
|
779
|
+
: readAdoptedEntries(adoptedPath);
|
|
780
|
+
if (transcriptPath === null) {
|
|
781
|
+
stderr.write(`harness pack hook: delegation for ${childSessionId} is valid but the payload carries no transcript_path; the child's report cannot be captured\n`);
|
|
782
|
+
}
|
|
783
|
+
else if (!adopted.ok) {
|
|
784
|
+
// Fail closed: without the ledger we cannot tell a fresh
|
|
785
|
+
// report from one this session already spent.
|
|
786
|
+
stderr.write(`harness pack hook: the adopted-entry ledger at ${adoptedPath} could not be read (${adopted.detail}); refusing to capture a transcript entry that may already have been adopted for session ${childSessionId}\n`);
|
|
787
|
+
}
|
|
788
|
+
else {
|
|
789
|
+
const scan = await scanTranscriptForReport({
|
|
790
|
+
transcriptPath,
|
|
791
|
+
sessionId: childSessionId,
|
|
792
|
+
maxWaitMs: autoCfg.reportScan.maxWaitMs,
|
|
793
|
+
adopted: adopted.ids,
|
|
794
|
+
...(opts.reportScanClock?.now !== undefined
|
|
795
|
+
? { now: opts.reportScanClock.now }
|
|
796
|
+
: {}),
|
|
797
|
+
...(opts.reportScanClock?.sleep !== undefined
|
|
798
|
+
? { sleep: opts.reportScanClock.sleep }
|
|
799
|
+
: {}),
|
|
800
|
+
...(opts.reportScanClock?.pollMs !== undefined
|
|
801
|
+
? { pollMs: opts.reportScanClock.pollMs }
|
|
802
|
+
: {}),
|
|
803
|
+
});
|
|
804
|
+
if (scan.found) {
|
|
805
|
+
// RECORD THE ADOPTION FIRST, then persist. In this order a
|
|
806
|
+
// failed ledger write costs one blocked call and leaves the
|
|
807
|
+
// entry re-scannable, while the reverse order would leave a
|
|
808
|
+
// persisted, mintable report behind an unrecorded adoption:
|
|
809
|
+
// exactly the replay this ledger exists to stop.
|
|
810
|
+
const recorded = recordAdoptedEntry(adoptedPath, scan.entryId);
|
|
811
|
+
if (!recorded.ok) {
|
|
812
|
+
stderr.write(`harness pack hook: could not record transcript entry ${scan.entryId} as adopted for session ${childSessionId} (${recorded.detail}); nothing was persisted\n`);
|
|
813
|
+
}
|
|
814
|
+
else {
|
|
815
|
+
// Reuses the SAME persister `harness approve
|
|
816
|
+
// understanding` uses for a heredoc-attached report, so
|
|
817
|
+
// the capture is session-bound, `pending`, and validated
|
|
818
|
+
// by one parser rather than a second one written here.
|
|
819
|
+
// A real `new Date()` on purpose: the persisted report
|
|
820
|
+
// must sort as the newest strict-session report against
|
|
821
|
+
// whatever is already on disk, which a caller-injected
|
|
822
|
+
// clock could not guarantee.
|
|
823
|
+
const persisted = persistStdinReport({
|
|
824
|
+
markdown: scan.markdown,
|
|
825
|
+
reportsDir,
|
|
826
|
+
sessionId: childSessionId,
|
|
827
|
+
now: new Date(),
|
|
828
|
+
mode: toPackageMode(resolveMode(declared).mode),
|
|
829
|
+
});
|
|
830
|
+
if (persisted.ok) {
|
|
831
|
+
stderr.write(`harness pack hook: captured the Understanding Report for session ${childSessionId} from its own transcript (line ${scan.lineIndex}, after ${scan.waitedMs}ms) and persisted it pending at ${persisted.filePath}\n`);
|
|
832
|
+
}
|
|
833
|
+
else {
|
|
834
|
+
// The entry stays adopted: re-reading a report that
|
|
835
|
+
// does not parse would fail identically forever, so
|
|
836
|
+
// the child needs a NEW one, which is what the block's
|
|
837
|
+
// retry instruction asks for. Set the same flag the
|
|
838
|
+
// timeout branch sets, for that reason: the retry
|
|
839
|
+
// sentence reads correctly for this case too, and
|
|
840
|
+
// without it the block below would ask for a retry
|
|
841
|
+
// implicitly while never saying so.
|
|
842
|
+
reportScanTimedOut = true;
|
|
843
|
+
stderr.write(`harness pack hook: the transcript report for session ${childSessionId} did not parse (${persisted.reason}); nothing was persisted\n`);
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
else if (scan.reason === "timeout") {
|
|
848
|
+
reportScanTimedOut = true;
|
|
849
|
+
stderr.write(scan.adoptedOnly === true
|
|
850
|
+
? `harness pack hook: the newest Understanding Report entry in the transcript for session ${childSessionId} was already adopted; emit a fresh report\n`
|
|
851
|
+
: `harness pack hook: no Understanding Report for session ${childSessionId} reached its transcript within ${autoCfg.reportScan.maxWaitMs}ms (waited ${scan.waitedMs}ms); blocking and asking the child to re-emit and retry\n`);
|
|
852
|
+
}
|
|
853
|
+
else {
|
|
854
|
+
stderr.write(`harness pack hook: the transcript at ${transcriptPath} exists but could not be read; the report for session ${childSessionId} cannot be captured\n`);
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
// Task 8f637efd: best-effort observation of this call's
|
|
863
|
+
// `permission_mode`, independent of whether `auto_approve` is even
|
|
864
|
+
// configured: this call site is deliberately the SAME one
|
|
865
|
+
// `attemptAutoApproval` runs at just below (see
|
|
866
|
+
// permission-mode-observations.ts's module header for why every call
|
|
867
|
+
// that reaches this point already needed approval, and for the
|
|
868
|
+
// coverage gap this accepts). Feeds `harness doctor`'s
|
|
869
|
+
// missing-`auto_approve` finding; never a gate input.
|
|
870
|
+
if (generatedDir !== undefined) {
|
|
871
|
+
recordPermissionModeObservation(generatedDir, sessionId, event.permission_mode, stderr);
|
|
872
|
+
}
|
|
546
873
|
const resolveAutoLedger = () => {
|
|
547
874
|
if (opts.writeLedger)
|
|
548
875
|
return { write: opts.writeLedger };
|
|
@@ -572,6 +899,11 @@ export async function runPackHookPreToolUseCli(opts = {}) {
|
|
|
572
899
|
packConfig: declared.config,
|
|
573
900
|
reportsDir,
|
|
574
901
|
markerForged,
|
|
902
|
+
// Slice 3: present only when the branch above verified a delegation
|
|
903
|
+
// for this child session. It supplies key ONE in place of a
|
|
904
|
+
// `when`-listed `permission_mode`; every other condition, key two
|
|
905
|
+
// included, is unchanged.
|
|
906
|
+
...(delegation !== undefined ? { delegation } : {}),
|
|
575
907
|
stderr,
|
|
576
908
|
resolveLedger: resolveAutoLedger,
|
|
577
909
|
});
|
|
@@ -609,7 +941,7 @@ export async function runPackHookPreToolUseCli(opts = {}) {
|
|
|
609
941
|
const latestParseError = report.report === null
|
|
610
942
|
? findLatestParseError(path.join(path.dirname(reportsDir), "parse-errors"), sessionId)
|
|
611
943
|
: null;
|
|
612
|
-
stdout.write(`${blockJson(toolName, "no approved Understanding Report for this session", configProducers, configUx, sessionId, escapeHint, latestParseError?.malformedSections)}\n`);
|
|
944
|
+
stdout.write(`${blockJson(toolName, "no approved Understanding Report for this session", configProducers, configUx, sessionId, escapeHint, latestParseError?.malformedSections, reportScanTimedOut ? DELEGATION_REPORT_RETRY_INSTRUCTION : null)}\n`);
|
|
613
945
|
return {
|
|
614
946
|
exitCode: 0,
|
|
615
947
|
blocked: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-pre-tool-use.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-pre-tool-use.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook-pre-tool-use.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-pre-tool-use.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/pack/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export { packAdd, type PackAddOptions, type PackAddResult } from "./add.js";
|
|
|
2
2
|
export { packRemove, type PackRemoveOptions, type PackRemoveResult } from "./remove.js";
|
|
3
3
|
export { packList, type PackListOptions, type PackListResult } from "./list.js";
|
|
4
4
|
export { packReseed, type PackReseedField, type PackReseedOptions, type PackReseedResult, } from "./reseed.js";
|
|
5
|
+
export { packUpgrade, applyAutoApproveUpgrade, type PackUpgradeName, type PackUpgradeOptions, type PackUpgradeResult, type ApplyAutoApproveUpgradeResult, } from "./upgrade.js";
|
|
5
6
|
export { applyPackAdd, applyPackRemove, applyPackReseedUx, planPackRemove, type PackAddEntry, type PackReseedFields, type PackRemovePlan, } from "./mutate.js";
|
package/dist/cli/pack/index.js
CHANGED
|
@@ -2,5 +2,6 @@ export { packAdd } from "./add.js";
|
|
|
2
2
|
export { packRemove } from "./remove.js";
|
|
3
3
|
export { packList } from "./list.js";
|
|
4
4
|
export { packReseed, } from "./reseed.js";
|
|
5
|
+
export { packUpgrade, applyAutoApproveUpgrade, } from "./upgrade.js";
|
|
5
6
|
export { applyPackAdd, applyPackRemove, applyPackReseedUx, planPackRemove, } from "./mutate.js";
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/pack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2C,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAiD,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,QAAQ,EAA6C,MAAM,WAAW,CAAC;AAChF,OAAO,EACL,UAAU,GAIX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,GAIf,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/pack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2C,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAiD,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,QAAQ,EAA6C,MAAM,WAAW,CAAC;AAChF,OAAO,EACL,UAAU,GAIX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,uBAAuB,GAKxB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,GAIf,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export interface TranscriptReportScanArgs {
|
|
2
|
+
/** The `transcript_path` from the hook payload. The ONLY file this scan opens. */
|
|
3
|
+
transcriptPath: string;
|
|
4
|
+
/** The session being decided; an entry's own `sessionId` must equal this. */
|
|
5
|
+
sessionId: string;
|
|
6
|
+
/** Bound of the poll, from `auto_approve.report_scan.max_wait`. */
|
|
7
|
+
maxWaitMs: number;
|
|
8
|
+
/** Re-read interval. */
|
|
9
|
+
pollMs?: number;
|
|
10
|
+
/** Injectable clock (epoch ms). */
|
|
11
|
+
now?: () => number;
|
|
12
|
+
/** Injectable sleep, so tests never wait for real time. */
|
|
13
|
+
sleep?: (ms: number) => Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Entry ids (see {@link TranscriptReportScanResult}'s `entryId`) this
|
|
16
|
+
* session has ALREADY adopted. A hit whose id is in here is skipped as
|
|
17
|
+
* if it were not a report at all, and a transcript that carries nothing
|
|
18
|
+
* else times out with `adoptedOnly: true`. Absent means "nothing
|
|
19
|
+
* adopted yet", the first-call case.
|
|
20
|
+
*/
|
|
21
|
+
adopted?: ReadonlySet<string>;
|
|
22
|
+
}
|
|
23
|
+
export type TranscriptReportScanResult = {
|
|
24
|
+
found: true;
|
|
25
|
+
/** The report markdown, from its heading line to the end of the text block that carried it. */
|
|
26
|
+
markdown: string;
|
|
27
|
+
/** Zero-based index of the JSONL line the report was found on. */
|
|
28
|
+
lineIndex: number;
|
|
29
|
+
/**
|
|
30
|
+
* Stable identity of the adopted entry, for the caller's
|
|
31
|
+
* once-per-session adoption ledger: the entry's own `uuid` when it
|
|
32
|
+
* carries a usable one, otherwise a digest of the adopted markdown
|
|
33
|
+
* and its line index. Never contains a newline, so the caller can
|
|
34
|
+
* store one id per line.
|
|
35
|
+
*/
|
|
36
|
+
entryId: string;
|
|
37
|
+
waitedMs: number;
|
|
38
|
+
} | {
|
|
39
|
+
found: false;
|
|
40
|
+
/**
|
|
41
|
+
* `timeout`: the bound elapsed with no eligible report (this
|
|
42
|
+
* includes a transcript file that never appeared, since the file
|
|
43
|
+
* may still be created while the poll runs).
|
|
44
|
+
* `unreadable`: the file IS there and could not be read (a
|
|
45
|
+
* permission error, a directory at that path, a symlink loop).
|
|
46
|
+
*/
|
|
47
|
+
reason: "timeout" | "unreadable";
|
|
48
|
+
/**
|
|
49
|
+
* Set when the ONLY report(s) in the transcript were entries this
|
|
50
|
+
* session had already adopted. The outcome is the same block, but
|
|
51
|
+
* the caller can say so: the child must emit a FRESH report, not
|
|
52
|
+
* retry against the one it already spent.
|
|
53
|
+
*/
|
|
54
|
+
adoptedOnly?: true;
|
|
55
|
+
waitedMs: number;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Poll the payload's own transcript for this session's Understanding
|
|
59
|
+
* Report until it appears or `maxWaitMs` elapses. See the module header
|
|
60
|
+
* for the filters and why each one is there.
|
|
61
|
+
*
|
|
62
|
+
* The poll timer is deliberately NOT `unref`'d. A hook process whose
|
|
63
|
+
* stdin has been drained has no other ref'd handle, so an unref'd timer
|
|
64
|
+
* lets Node exit mid-poll: the process would end with an empty stdout,
|
|
65
|
+
* which Claude Code reads as ALLOW: a silent fail-open on precisely the
|
|
66
|
+
* delegation path this scan exists for. The loop is bounded twice over
|
|
67
|
+
* (`maxWaitMs`, itself capped by the config's 5 s ceiling, and the
|
|
68
|
+
* `maxPolls` count below), so it can never hold the process open beyond
|
|
69
|
+
* the bound.
|
|
70
|
+
*/
|
|
71
|
+
export declare function scanTranscriptForReport(args: TranscriptReportScanArgs): Promise<TranscriptReportScanResult>;
|