@inventarch/steward-hook 1.2.0 → 3.0.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/SPEC.md CHANGED
@@ -1,3 +1,13 @@
1
1
  # @inventarch/steward-hook
2
2
 
3
+ Both guard modes refuse a path with an existing symbolic link or junction whose target cannot be resolved, including a dangling ancestor of a missing leaf and a chain ending at an absent target. Only a component that `lstat` itself reports missing is rebuilt beneath its resolved parent. A `realpath` failure for an existing component remains `IA-HOOK-PATH-UNSAFE`; it cannot erase that component's alias and bypass selected-path or managed-state protection. Ordinary missing files under a resolvable parent keep their existing decisions.
4
+
5
+ Shell-safe recovery roots: a guard's suggested removal, registration and validation commands substitute `--root .` and explicitly say to run from the workspace root when its fixed registration path contains shell-active characters. JSON quoting alone is not a shell escape. Ordinary roots, including spaces, retain existing quoting; the admission report retains its stricter unquoted-root rule. This changes only guidance, not the guard's decision, authority resolution or ownership recovery.
6
+
3
7
  Public language mechanism. The [language reference](LANGUAGE.md) defines vocabulary and evaluation limits. Package exports describe the installed API. Curated agent methods and hosted services are supplied independently.
8
+
9
+ Projection protection (2026-10-09, milestone position-packet task replace-renderers, plan amendments B9 and B12): the hook denies file-tool edits to the position packet's files, `CLAUDE.md` and both `ia-authoring` skills in a workspace with no projection ownership state, and in a consumer workspace only the files its `<host>-projection.json` state owns; the receipt beside that state, like all of `.ia/distributions/`, is protected. A 1.x per-system steward file under `.claude/agents/` stays protected until it is removed: in a consumer workspace while the state lists it, elsewhere while the file carries a 1.x renderer's marker. Any other agent file is the user's. Since milestone generation-binding task host-consumes-generated-set the state's allowlist also admits the generated files apps/distribution's `GENERATED_PATHS` names (a generated agent is the agent pattern above; a generated skill `.claude/skills/<name>/SKILL.md` or `.agents/skills/<name>/SKILL.md`), so a state listing them protects them and stays readable. The retired steward rule for `.ia/src/systems/<name>/` applies only where a 1.x registration survives; the guard registered now is the `@mandate` guard below.
10
+
11
+ Legacy steward marker recognition reads at most 1 MiB plus one sentinel byte from a single opened handle. It checks that the regular file and its unaliased pathname retain identity, size, link count and timestamps through the read; concurrent replacement or growth fails closed. Stable personal, missing and oversized files retain the existing unowned decision, and a stable marked hardlink retains the existing managed decision.
12
+
13
+ Mandate guard (2026-10-11, milestone generation-binding plan amendments C9 and C10; operator decision OD4): the guard entry also accepts `--root <fixed absolute root> --hook <@hook identity>`, which a registration for one authored `@hook` runs through the launcher's `guard` mode for every edit tool (its group matches `Write|Edit|MultiEdit`), and `evaluateMandateHook(root, hook, event)` is exported beside `evaluateHook`. The input checks, the path safety (`IA-HOOK-PATH-UNSAFE`) and the managed-state protection above run first, for every edit tool whatever the hook's own tools, so no hook leaves the installation state, the owned projection files, or the settings and launcher an owned registration runs open to an edit (C9's ownership protection); the retired steward rule for `.ia/src/systems/<name>/` is not applied in this mode and is not a fallback. The `@hook` the registration names must be one admitted authored record that hook generation declares (PreToolUse; Write, Edit or MultiEdit; one or more `/` path selections; a message); otherwise an edit under the root is refused with `IA-HOOK-DECLARATION-UNAVAILABLE` only when it falls under the selection the hook ownership state recorded for that hook at registration, and every edit under the root when no selection is recorded (an edit outside the root is never decided), and so is an edit, with `IA-HOOK-MANDATE-UNAVAILABLE`, when the workspace's records cannot be read at all, such as a descriptor the db cannot read or a lock a Windows checkout rewrote with CRLF line ends (review finding H-R8). Each such refusal names only commands that work from a shell in that state: `ia host claude --root <root> --remove --apply --yes`, which removes the registration and restores editing and needs neither an admitting workspace nor readable records; where the workspace admits, `ia host claude --root <root> --apply --yes`, which registers its current hooks and so removes a group whose record is gone; and where it does not, `ia validate --root <root>`, which shows why (H-R2), or, while an authored `@mandate`, or a record an admitted mandate or workspace depends on, is among what admission refused (runtime R23), the admission report runtime `admissionReport` spells (`ia report --root <root>` when the root is inert unquoted, else `ia report` from the workspace root), since `ia validate`, mandate-gated, refuses in that state (lane D). Which one is named follows what could be read (review D-R4): when the database cannot open at all, the removal and `ia validate --root <root>`; when it opens but its records then cannot be read, the admission it read first decides, the report while a refused mandate or dependency is among what admission refused, else `ia validate --root <root>`. When the hook ownership state itself cannot be read, which the removal refuses too, the refusal names that state's repair instead: delete the state file and every IA hook group in `.claude/settings.local.json` from a shell, which restores editing, then run the removal for the rest of the registration (A-F3). Runtime's `evaluateMandateGuard` (runtime R22) then decides the edit, which the hook decides only when its `hook.paths` select the file and its `hook.tools` name the tool (a workspace guards its `.ia/src` records by selecting them), with db `pathKey` as the fold for `hook.paths` and `authority.covers` alike, so where the volume folds names `DOCS/x.md` is under `docs/**` and `Docs/**`, and elsewhere each case is its own path. The file is matched by its on-disk name as well as its typed one: each existing component as the volume stores it (the deepest existing ancestor through `realpathSync.native`) with the typed tail, so a case variant of an existing folder is that folder, and a typed spelling that differs from the on-disk name other than by case, such as a Windows 8.3 short name (`RESTRI~1`), is refused with `IA-HOOK-PATH-UNSAFE` when the hook selects the file, never matched or decided as typed. A selected path reached through a link or junction is refused with `IA-HOOK-PATH-UNSAFE`, and so is a file with more than one hard link wherever it is under the root, selected or not (a pnpm store link included), since another of its names may be selected and the guard cannot find it (G-N3, H-N13); records that cannot be read as above refuse with `IA-HOOK-MANDATE-UNAVAILABLE` naming what that paragraph says, and a failure while the edit is decided refuses so, naming the admission report as `admissionReport` spells it. The request passes the registration's root (`MandateGuardRequest.root`), so while an authored `@mandate` fails admission, or a refused `@agent` or `@workspace` an admitted mandate's participant or scope or a workspace's steward names (runtime R23's D9, where the reason names the refused record's `path:line` and the record that depends on it), every edit the hook selects is refused with `IA-HOOK-MANDATE-UNAVAILABLE`, whoever acts, naming the refused record's `path:line`, its admission finding and the admission report, not `ia validate`, which is mandate-gated (lane D, operator ruling 2026-10-12); a hook that is not admitted, or not a declaration the guard can decide, refuses the same way in that state, naming the refused record, rather than with `IA-HOOK-DECLARATION-UNAVAILABLE` (review D-N1: the hook may share the refused mandate's file); the main session's refusal still also names `ia host claude --root <root> --remove --apply --yes`, and an edit the hook does not select is still not decided. Every refusal reason is printed without terminal escape sequences, and with each other C0 or C1 control, line or paragraph separator and bidirectional control replaced by a space (`printable`), so an authored message cannot drive the host's display. The `@hook` group ownership state (`.ia/distributions/hosts/claude-hooks-<id>.json`, format `ia.hook-registration-state.v1`) and the hook journal format in `guard-pending.json` (`ia.hook-registration-pending.v1`) are read as the retired guard's were: while either exists, `.claude/settings.local.json`, `.claude/settings.json` and the cache launcher they name are managed. Hook groups are JSON entries owned by their own state, not projection files; the projection allowlist (`PROJECTION_OWNED`) admits the generated files (Projection protection above; review finding H-R9).
package/dist/main.d.ts CHANGED
@@ -7,6 +7,32 @@ export interface HookOutput {
7
7
  };
8
8
  }
9
9
  export declare function deny(code: HookCode, message: string): HookOutput;
10
+ /**
11
+ * A refusal as the host may display it: authored text (a `@hook`'s message) and paths reach the reason, so terminal
12
+ * escape sequences are removed and every other C0 or C1 control, line or paragraph separator and bidirectional control
13
+ * becomes a space; the reason is bounded.
14
+ */
15
+ export declare function printable(text: string): string;
16
+ /**
17
+ * Whether a win32 path holds a `:` other than its drive designator's: after an optional `\\?\` or `\\.\` prefix and an
18
+ * optional `X:` drive, any further `:` names a stream or a drive-relative spelling.
19
+ */
20
+ export declare function streamed(path: string): boolean;
21
+ /** The legacy guard: managed-state protection and the retired steward rule for `.ia/src/systems/<name>/`. */
10
22
  export declare function evaluateHook(root: string, event: unknown, actorsPath?: string): HookOutput;
23
+ /**
24
+ * The `@mandate` guard (milestone generation-binding, plan amendments C9 and C10): one authored `@hook`'s group runs
25
+ * `guard --root <root> --hook <identity>` for every edit tool. The same input checks, path safety and managed-state
26
+ * protection as the legacy guard run first, whatever tools the hook names, so no hook leaves the guard's own
27
+ * registration, the installation state or the owned projection open (the retired steward rule is not one of them). Then
28
+ * the admitted authored `@hook` the registration names is read as hook generation declares it, and runtime's
29
+ * evaluateMandateGuard decides the edit: allowed unless the hook selects it (its paths select the file and its tools
30
+ * name the tool) and the actor is unknown or holds no governing mandate that grants Synthesis there. A selected path
31
+ * reached through an alias is refused. What cannot be read refuses with a code; nothing is allowed because something was
32
+ * unreadable once the hook is known to select the edit. When the hook's record, or the workspace's records at all,
33
+ * cannot be read, the registration refuses only the edits under the selection last registered for it, or every edit
34
+ * under the root when none is recorded (review findings G-N4 and H-R8).
35
+ */
36
+ export declare function evaluateMandateHook(root: string, hook: string, event: unknown): HookOutput;
11
37
  export declare function runHook(args: readonly string[], input: string): HookOutput;
12
38
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC5B,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;QACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;KAC3C,CAAC;CACH;AACD,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAQhE;AAyYD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAoH1F;AACD,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAgB1E"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAKpD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC5B,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;QACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;KAC3C,CAAC;CACH;AACD,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAQhE;AAOD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AA2lBD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG9C;AAkHD,6GAA6G;AAC7G,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAsC1F;AAoCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAyJ1F;AAGD,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAe1E"}
package/dist/main.js CHANGED
@@ -1,21 +1,35 @@
1
- import { closeSync, fstatSync, lstatSync, openSync, readSync, readdirSync, readFileSync, realpathSync, } from 'node:fs';
1
+ import { closeSync, constants, fstatSync, lstatSync, openSync, readSync, readdirSync, readFileSync, realpathSync, } from 'node:fs';
2
2
  import { basename, dirname, isAbsolute, relative, resolve, sep } from 'node:path';
3
- import { evaluateSteward, isEntry, openDatabase } from '@inventarch/runtime';
3
+ import { admissionReport, inertCommandRoot, evaluateMandateGuard, evaluateSteward, isAdmissionRefusal, isEntry, mandateGuardSelects, openDatabase, refusedDependencies, refusedMandates, requireMandatesAdmitted, } from '@inventarch/runtime';
4
4
  import { pathKey, sameFile, unaliased } from '@inventarch/db';
5
5
  import { decodeDistributionJson } from '@inventarch/db/distribution';
6
+ import { hookDeclaration, registrableHook } from '@inventarch/workspace-runtime/internal/generate';
6
7
  export function deny(code, message) {
7
8
  return {
8
9
  hookSpecificOutput: {
9
10
  hookEventName: 'PreToolUse',
10
11
  permissionDecision: 'deny',
11
- permissionDecisionReason: `${code}: ${message}`,
12
+ permissionDecisionReason: printable(`${code}: ${message}`),
12
13
  },
13
14
  };
14
15
  }
16
+ // Built from strings: the classes name the control characters themselves.
17
+ const ESCAPES = new RegExp('\\u001b(?:\\[[0-?]*[ -/]*[@-~]|\\][^\\u0007\\u001b]*(?:\\u0007|\\u001b\\\\)?|[@-_])', 'g'), CONTROLS = new RegExp('[\\u0000-\\u001f\\u007f-\\u009f\\u061c\\u200e\\u200f\\u2028\\u2029\\u202a-\\u202e\\u2066-\\u2069]', 'g');
18
+ /**
19
+ * A refusal as the host may display it: authored text (a `@hook`'s message) and paths reach the reason, so terminal
20
+ * escape sequences are removed and every other C0 or C1 control, line or paragraph separator and bidirectional control
21
+ * becomes a space; the reason is bounded.
22
+ */
23
+ export function printable(text) {
24
+ return text.replace(ESCAPES, '').replace(CONTROLS, ' ').slice(0, 4096);
25
+ }
15
26
  function object(value) {
16
27
  return typeof value === 'object' && value !== null && !Array.isArray(value);
17
28
  }
18
- /** Rules match names as the volume does: case on win32; normalization and full case folding on darwin (#315, #323). */
29
+ /**
30
+ * Rules key names with db `pathKey`: case on win32; normalization and full case folding on darwin (#315, #323). It folds
31
+ * by platform, whatever the volume, so on a case-sensitive directory there a sibling spelled in another case matches too.
32
+ */
19
33
  const fold = pathKey;
20
34
  function local(root, target) {
21
35
  const rel = relative(fold(root), fold(target));
@@ -24,7 +38,6 @@ function local(root, target) {
24
38
  function physical(path) {
25
39
  try {
26
40
  lstatSync(path);
27
- return realpathSync.native(path);
28
41
  }
29
42
  catch (error) {
30
43
  if (error.code !== 'ENOENT')
@@ -34,25 +47,144 @@ function physical(path) {
34
47
  throw error;
35
48
  return resolve(physical(parent), relative(parent, path));
36
49
  }
50
+ // An existing link whose target is absent is not an ordinary missing component. Its realpath failure must refuse
51
+ // the edit, including when this is an ancestor of a missing leaf or another link; never rebuild its lexical name.
52
+ return realpathSync.native(path);
37
53
  }
38
54
  /** Paths every workspace protects: the native installation state. */
39
55
  function installation(path) {
40
56
  return (path === '.ia/distributions.lock.json' || path === '.ia/distributions' || path.startsWith('.ia/distributions/'));
41
57
  }
42
- /** The projection list written for this repository; in a consumer workspace only its owned subset stays protected. */
58
+ /**
59
+ * The projection list written for this repository; in a consumer workspace only its owned subset stays protected. The
60
+ * position packet's files (milestone position-packet): `CLAUDE.md` and both `ia-authoring` skills here, and a consumer's
61
+ * `.claude/rules/ia-workspace.md`, `AGENTS.md` and skills; its receipt sits under `.ia/distributions/`.
62
+ */
43
63
  function projectionCandidate(path) {
44
64
  return (path === '.codex/config.toml' ||
45
65
  /^\.codex\/agents\//.test(path) ||
46
66
  /^\.(?:agents|claude)\/skills\//.test(path) ||
47
67
  path === 'claude.md' ||
48
68
  path === 'CLAUDE.md' ||
49
- /^\.claude\/agents\/[^/]+\.md$/.test(path) ||
50
69
  ['.agents/skills/ia-authoring/SKILL.md', '.claude/skills/ia-authoring/SKILL.md'].some((p) => fold(p) === path) ||
51
70
  fold('.claude/rules/ia-workspace.md') === path ||
52
71
  fold('AGENTS.md') === path);
53
72
  }
54
- /** `ownership` is undefined in a legacy workspace (no projection state) and is read only when a candidate path needs it. */
55
- function protection(path, ownership) {
73
+ /**
74
+ * B9: a 1.x per-system steward file. No projection writes one any more, so one stays protected only until it is removed:
75
+ * in a consumer workspace while its projection state lists it, and elsewhere while it carries a 1.x renderer's marker,
76
+ * which `pnpm projections:generate` or the next projection apply deletes. Any other agent file is the user's.
77
+ */
78
+ const LEGACY_STEWARD = /^\.claude\/agents\/[^/]+\.md$/;
79
+ /** The markers compliance's retired 1.x renderers wrote: this repository's and `ia host`'s. */
80
+ const LEGACY_MARKERS = [
81
+ '<!-- Generated by tools/projections/generate.ts; edit the cited native records. -->',
82
+ '<!-- Generated by ia host; edit the cited native records. -->',
83
+ ];
84
+ /**
85
+ * Whether the file at the absolute `target` is a 1.x steward file still: a regular file within the projection bound
86
+ * that carries a legacy marker line. A missing file, or one no renderer wrote, is not.
87
+ */
88
+ function legacySteward(target) {
89
+ let fd;
90
+ try {
91
+ // Open first: a pathname stat cannot authorize a later pathname read. Do not follow a leaf link, or block on a FIFO.
92
+ fd = openSync(target, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0));
93
+ }
94
+ catch (error) {
95
+ if (error.code === 'ENOENT')
96
+ return false;
97
+ throw error;
98
+ }
99
+ try {
100
+ const stat = fstatSync(fd, { bigint: true }), limit = 1024 * 1024;
101
+ if (!stat.isFile() || stat.size > BigInt(limit))
102
+ return false;
103
+ const same = (value) => value.isFile() &&
104
+ value.dev === stat.dev &&
105
+ value.ino === stat.ino &&
106
+ value.nlink === stat.nlink &&
107
+ value.size === stat.size &&
108
+ value.mtimeNs === stat.mtimeNs &&
109
+ value.ctimeNs === stat.ctimeNs;
110
+ if (!same(lstatSync(target, { bigint: true })) || !unaliased(target, physical(target)))
111
+ throw new Error('Legacy steward changed while opening');
112
+ const content = Buffer.alloc(limit + 1);
113
+ let size = 0;
114
+ for (;;) {
115
+ const count = readSync(fd, content, size, content.length - size, null);
116
+ size += count;
117
+ if (count === 0 || size === content.length)
118
+ break;
119
+ }
120
+ if (size > limit ||
121
+ BigInt(size) !== stat.size ||
122
+ !same(fstatSync(fd, { bigint: true })) ||
123
+ !same(lstatSync(target, { bigint: true })) ||
124
+ !unaliased(target, physical(target)))
125
+ throw new Error('Legacy steward changed while reading');
126
+ const lines = content.subarray(0, size).toString('utf8').split(/\r?\n/);
127
+ return LEGACY_MARKERS.some((marker) => lines.includes(marker));
128
+ }
129
+ finally {
130
+ closeSync(fd);
131
+ }
132
+ }
133
+ /**
134
+ * The bytes of the ownership state at the absolute `path`, or undefined when there is none. A state must be a plain,
135
+ * unaliased, single-link file within 1 MiB. It is opened before it is judged, so the checks and the read are of one
136
+ * file (CodeQL js/file-system-race), and it must still be that file after the read. Anything else throws `unsafe`, and
137
+ * the caller fails closed.
138
+ */
139
+ function readState(path, unsafe) {
140
+ let fd;
141
+ try {
142
+ fd = openSync(path, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0));
143
+ }
144
+ catch (error) {
145
+ if (error.code === 'ENOENT')
146
+ return undefined;
147
+ throw error;
148
+ }
149
+ try {
150
+ const stat = fstatSync(fd, { bigint: true }), limit = 1024 * 1024;
151
+ const same = (value) => value.isFile() &&
152
+ value.nlink === 1n &&
153
+ value.dev === stat.dev &&
154
+ value.ino === stat.ino &&
155
+ value.size === stat.size &&
156
+ value.mtimeNs === stat.mtimeNs &&
157
+ value.ctimeNs === stat.ctimeNs;
158
+ if (!same(stat) ||
159
+ stat.size > BigInt(limit) ||
160
+ !same(lstatSync(path, { bigint: true })) ||
161
+ !unaliased(path, physical(path)))
162
+ throw new Error(unsafe);
163
+ const content = Buffer.alloc(limit + 1);
164
+ let size = 0;
165
+ for (;;) {
166
+ const count = readSync(fd, content, size, content.length - size, null);
167
+ size += count;
168
+ if (count === 0 || size === content.length)
169
+ break;
170
+ }
171
+ if (size > limit ||
172
+ BigInt(size) !== stat.size ||
173
+ !same(fstatSync(fd, { bigint: true })) ||
174
+ !same(lstatSync(path, { bigint: true })))
175
+ throw new Error(unsafe);
176
+ return content.subarray(0, size);
177
+ }
178
+ finally {
179
+ closeSync(fd);
180
+ }
181
+ }
182
+ /**
183
+ * `ownership` is undefined in a legacy workspace (no projection state) and is read only when a candidate path needs it;
184
+ * `steward` says whether the edited file, at a legacy-mode agent path, is still a 1.x steward file. `systems` locates the
185
+ * retired steward rule's system folders, which only the legacy mode enforces.
186
+ */
187
+ function protection(path, ownership, steward, systems = true) {
56
188
  if (path === undefined)
57
189
  return undefined;
58
190
  if (installation(path))
@@ -62,7 +194,12 @@ function protection(path, ownership) {
62
194
  if (owned === undefined || owned.files.has(path) || (path === '.codex/config.toml' && owned.codex))
63
195
  return { projection: true };
64
196
  }
65
- if (path === '.ia/src/systems' || path.startsWith('.ia/src/systems/')) {
197
+ if (LEGACY_STEWARD.test(path)) {
198
+ const owned = ownership();
199
+ if (owned === undefined ? steward() : owned.files.has(path))
200
+ return { projection: true };
201
+ }
202
+ if (systems && (path === '.ia/src/systems' || path.startsWith('.ia/src/systems/'))) {
66
203
  const system = path.split('/')[3];
67
204
  return system !== undefined && /^[a-z][a-z0-9-]*$/.test(system) ? { system } : { invalid: true };
68
205
  }
@@ -83,12 +220,21 @@ function hostsArea(root) {
83
220
  }
84
221
  return directory;
85
222
  }
86
- /** The same projection allowlist `@inventarch/distribution` writes (projection.ts), so a state cannot claim other paths. */
223
+ /**
224
+ * The same projection allowlist `@inventarch/distribution` validates a state against (projection.ts), so a state cannot
225
+ * claim other paths: the packet's two files per host, the agents and skills authored generation writes (milestone
226
+ * generation-binding: claude agents and skills, codex skills), and for claude a 1.x steward file a state still lists
227
+ * until the next apply removes it (B9). The state format name is unchanged.
228
+ */
87
229
  const PROJECTION_OWNED = {
88
230
  claude: (path) => path === '.claude/rules/ia-workspace.md' ||
89
231
  path === '.claude/skills/ia-authoring/SKILL.md' ||
90
- /^\.claude\/agents\/[a-z][a-z0-9-]*\.md$/.test(path),
91
- codex: (path) => path === 'AGENTS.md' || path === '.agents/skills/ia-authoring/SKILL.md',
232
+ /^\.claude\/agents\/[a-z][a-z0-9-]*\.md$/.test(path) ||
233
+ // Milestone generation-binding: a generated skill (distribution's GENERATED_PATHS); a generated agent is the pattern above.
234
+ /^\.claude\/skills\/[a-z][a-z0-9-]*\/SKILL\.md$/.test(path),
235
+ codex: (path) => path === 'AGENTS.md' ||
236
+ path === '.agents/skills/ia-authoring/SKILL.md' ||
237
+ /^\.agents\/skills\/[a-z][a-z0-9-]*\/SKILL\.md$/.test(path),
92
238
  };
93
239
  /**
94
240
  * A bounded read of the projection ownership states, not a validation of the projected bytes. Undefined when neither
@@ -101,21 +247,9 @@ function projectionOwnership(root) {
101
247
  const files = new Set();
102
248
  let found = false;
103
249
  for (const host of ['claude', 'codex']) {
104
- const path = resolve(directory, `${host}-projection.json`);
105
- let stat;
106
- try {
107
- stat = lstatSync(path);
108
- }
109
- catch (error) {
110
- if (error.code === 'ENOENT')
111
- continue;
112
- throw error;
113
- }
114
- if (!stat.isFile() || stat.nlink !== 1 || stat.size > 1024 * 1024 || !unaliased(path, physical(path)))
115
- throw new Error('Unsafe projection ownership state');
116
- const content = readFileSync(path);
117
- if (content.length > 1024 * 1024)
118
- throw new Error('Projection ownership state exceeds its bound');
250
+ const content = readState(resolve(directory, `${host}-projection.json`), 'Unsafe projection ownership state');
251
+ if (content === undefined)
252
+ continue;
119
253
  const row = decodeDistributionJson(new TextDecoder('utf-8', { fatal: true }).decode(content));
120
254
  if (!object(row) ||
121
255
  Object.keys(row).sort().join('|') !== 'files|format|host' ||
@@ -148,6 +282,50 @@ function projectionOwnership(root) {
148
282
  }
149
283
  return { files, codex };
150
284
  }
285
+ /**
286
+ * The selection a hook ownership state (`claude-hooks-<id>.json`) recorded for `hook` when its group was registered, or
287
+ * undefined when none records one. The state is read as the other ownership states are: a plain, unaliased, single-link,
288
+ * bounded file of the expected format, else this throws and the caller refuses.
289
+ */
290
+ function registeredSelection(root, hook) {
291
+ const directory = hostsArea(root);
292
+ if (directory === undefined)
293
+ return undefined;
294
+ for (const name of readdirSync(directory).sort()) {
295
+ if (!/^claude-hooks-[a-z][a-z0-9-]{0,63}\.json$/.test(name))
296
+ continue;
297
+ let row;
298
+ try {
299
+ // A state the listing named that is gone by the read refuses, as one that changed does.
300
+ const content = readState(resolve(directory, name), 'Unsafe hook ownership state');
301
+ if (content === undefined)
302
+ throw new Error('Hook ownership state disappeared while read');
303
+ row = decodeDistributionJson(new TextDecoder('utf-8', { fatal: true }).decode(content));
304
+ if (!object(row) || row['format'] !== 'ia.hook-registration-state.v1' || !Array.isArray(row['groups']))
305
+ throw new Error('Invalid hook ownership state');
306
+ }
307
+ catch (error) {
308
+ // The state file that could not be read, root-relative, so a refusal can name its repair (review finding A-F3).
309
+ throw new UnreadableHookState(`.ia/distributions/hosts/${name}`, error);
310
+ }
311
+ for (const group of row['groups'])
312
+ if (object(group) &&
313
+ group['hook'] === hook &&
314
+ Array.isArray(group['paths']) &&
315
+ group['paths'].length > 0 &&
316
+ group['paths'].every((path) => typeof path === 'string'))
317
+ return group['paths'];
318
+ }
319
+ return undefined;
320
+ }
321
+ /** A hook ownership state the guard could not read, by its root-relative path. */
322
+ class UnreadableHookState extends Error {
323
+ path;
324
+ constructor(path, cause) {
325
+ super(`${path} cannot be read: ${cause instanceof Error ? cause.message : String(cause)}`);
326
+ this.path = path;
327
+ }
328
+ }
151
329
  function contextSettingsManaged(root, includeContext = true) {
152
330
  const directory = resolve(root, '.ia/distributions/hosts');
153
331
  let names;
@@ -167,8 +345,8 @@ function contextSettingsManaged(root, includeContext = true) {
167
345
  const launchers = [];
168
346
  for (const name of names) {
169
347
  const match = /^claude-context-([a-z][a-z0-9-]{0,63})\.json$/.exec(fold(name)), pending = fold(name) === 'lifecycle-pending.json';
170
- const guard = /^claude-guard-([a-z][a-z0-9-]{0,63})\.json$/.exec(fold(name)), guardPending = fold(name) === 'guard-pending.json';
171
- if (!guard && !guardPending && (!includeContext || (!match && !pending)))
348
+ const guard = /^claude-guard-([a-z][a-z0-9-]{0,63})\.json$/.exec(fold(name)), guardPending = fold(name) === 'guard-pending.json', hooks = /^claude-hooks-([a-z][a-z0-9-]{0,63})\.json$/.exec(fold(name));
349
+ if (!guard && !guardPending && !hooks && (!includeContext || (!match && !pending)))
172
350
  continue;
173
351
  const path = resolve(directory, name), stat = lstatSync(path), limit = pending || guardPending ? 8 * 1024 * 1024 : 1024 * 1024;
174
352
  if (name !== name.toLowerCase() ||
@@ -196,8 +374,11 @@ function contextSettingsManaged(root, includeContext = true) {
196
374
  }
197
375
  }
198
376
  else if (guardPending) {
377
+ // One journal serves the retired steward guard's registration and the `@hook` groups' (distribution
378
+ // guard-registration.ts): each names its own state format.
379
+ const hookJournal = row['format'] === 'ia.hook-registration-pending.v1';
199
380
  if (Object.keys(row).sort().join('|') !== 'after|before|format|id' ||
200
- row['format'] !== 'ia.guard-registration-pending.v1')
381
+ (row['format'] !== 'ia.guard-registration-pending.v1' && !hookJournal))
201
382
  throw new Error('Invalid pending guard ownership');
202
383
  for (const key of ['before', 'after']) {
203
384
  const side = row[key];
@@ -209,7 +390,7 @@ function contextSettingsManaged(root, includeContext = true) {
209
390
  if (typeof side['state'] === 'string') {
210
391
  const state = decodeDistributionJson(side['state']);
211
392
  if (!object(state) ||
212
- state['format'] !== 'ia.guard-registration-state.v1' ||
393
+ state['format'] !== (hookJournal ? 'ia.hook-registration-state.v1' : 'ia.guard-registration-state.v1') ||
213
394
  state['id'] !== row['id'] ||
214
395
  typeof state['cache'] !== 'string' ||
215
396
  !isAbsolute(state['cache']))
@@ -218,6 +399,26 @@ function contextSettingsManaged(root, includeContext = true) {
218
399
  }
219
400
  }
220
401
  }
402
+ else if (hooks) {
403
+ // The `@hook` groups' ownership state (plan amendment C9): the settings that hold them, and the launcher they run,
404
+ // are managed as the retired guard's were.
405
+ if (Object.keys(row)
406
+ .filter((key) => key !== 'existing')
407
+ .sort()
408
+ .join('|') !== 'cache|created|format|groups|id|release' ||
409
+ (row['existing'] !== undefined && !Array.isArray(row['existing'])) ||
410
+ row['format'] !== 'ia.hook-registration-state.v1' ||
411
+ row['id'] !== hooks[1] ||
412
+ typeof row['cache'] !== 'string' ||
413
+ !isAbsolute(row['cache']) ||
414
+ typeof row['created'] !== 'boolean' ||
415
+ !Array.isArray(row['groups']) ||
416
+ typeof row['release'] !== 'string' ||
417
+ !/^[a-f0-9]{64}$/.test(row['release']))
418
+ throw new Error('Invalid hook ownership state');
419
+ guardManaged = true;
420
+ launchers.push(resolve(row['cache'], 'scripts/ia.mjs'));
421
+ }
221
422
  else if (guard) {
222
423
  if (Object.keys(row)
223
424
  .filter((key) => key !== 'existing')
@@ -258,28 +459,29 @@ function contextSettingsManaged(root, includeContext = true) {
258
459
  }
259
460
  /** Descriptor-bounded read; configuration changes during ownership detection refuse. */
260
461
  function sourceGuardSettings(path) {
261
- let before;
462
+ let fd;
262
463
  try {
263
- before = lstatSync(path);
464
+ fd = openSync(path, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0));
264
465
  }
265
466
  catch (error) {
266
- if (error.code === 'ENOENT')
467
+ if (error.code === 'ENOENT' &&
468
+ lstatSync(path, { bigint: true, throwIfNoEntry: false }) === undefined)
267
469
  return undefined;
268
470
  throw error;
269
471
  }
270
472
  const limit = 1024 * 1024;
271
- if (!before.isFile() || before.nlink !== 1 || before.size > limit || !unaliased(path, physical(path)))
272
- throw new Error('Unsafe source guard registration');
273
- const fd = openSync(path, 'r');
274
473
  try {
275
- const opened = fstatSync(fd), same = (value) => value.isFile() &&
276
- value.nlink === 1 &&
277
- value.dev === before.dev &&
278
- value.ino === before.ino &&
279
- value.size === before.size &&
280
- value.mtimeMs === before.mtimeMs &&
281
- value.ctimeMs === before.ctimeMs;
282
- if (!same(opened))
474
+ const opened = fstatSync(fd, { bigint: true });
475
+ if (!opened.isFile() || opened.nlink !== 1n || opened.size > BigInt(limit))
476
+ throw new Error('Unsafe source guard registration');
477
+ const same = (value) => value.isFile() &&
478
+ value.nlink === 1n &&
479
+ value.dev === opened.dev &&
480
+ value.ino === opened.ino &&
481
+ value.size === opened.size &&
482
+ value.mtimeNs === opened.mtimeNs &&
483
+ value.ctimeNs === opened.ctimeNs;
484
+ if (!same(lstatSync(path, { bigint: true })) || !unaliased(path, physical(path)))
283
485
  throw new Error('Source guard registration changed before read');
284
486
  const content = Buffer.alloc(limit + 1);
285
487
  let size = 0;
@@ -289,7 +491,11 @@ function sourceGuardSettings(path) {
289
491
  break;
290
492
  size += read;
291
493
  }
292
- if (size > limit || !same(fstatSync(fd)) || !same(lstatSync(path)) || !unaliased(path, physical(path)))
494
+ if (size > limit ||
495
+ BigInt(size) !== opened.size ||
496
+ !same(fstatSync(fd, { bigint: true })) ||
497
+ !same(lstatSync(path, { bigint: true })) ||
498
+ !unaliased(path, physical(path)))
293
499
  throw new Error('Source guard registration changed while reading');
294
500
  return new TextDecoder('utf-8', { fatal: true }).decode(content.subarray(0, size));
295
501
  }
@@ -387,18 +593,32 @@ function anchored(root, target) {
387
593
  current = parent;
388
594
  }
389
595
  }
390
- export function evaluateHook(root, event, actorsPath) {
391
- if (!object(event) ||
392
- event['hook_event_name'] !== 'PreToolUse' ||
393
- !['Write', 'Edit', 'MultiEdit'].includes(String(event['tool_name'])) ||
394
- !object(event['tool_input']) ||
395
- typeof event['tool_input']['file_path'] !== 'string' ||
396
- !event['tool_input']['file_path'].trim() ||
397
- event['tool_input']['file_path'].includes('\0') ||
398
- (event['tool_name'] === 'MultiEdit' && !Array.isArray(event['tool_input']['edits'])))
399
- return deny('IA-HOOK-INPUT-INVALID', 'Expected a PreToolUse file edit event');
596
+ /**
597
+ * Whether a win32 path holds a `:` other than its drive designator's: after an optional `\\?\` or `\\.\` prefix and an
598
+ * optional `X:` drive, any further `:` names a stream or a drive-relative spelling.
599
+ */
600
+ export function streamed(path) {
601
+ const rest = path.replace(/^[\\/]{2}[?.][\\/]/, '').replace(/^[A-Za-z]:/, '');
602
+ return rest.includes(':');
603
+ }
604
+ function editEvent(event) {
605
+ return (object(event) &&
606
+ event['hook_event_name'] === 'PreToolUse' &&
607
+ ['Write', 'Edit', 'MultiEdit'].includes(String(event['tool_name'])) &&
608
+ object(event['tool_input']) &&
609
+ typeof event['tool_input']['file_path'] === 'string' &&
610
+ !!event['tool_input']['file_path'].trim() &&
611
+ !event['tool_input']['file_path'].includes('\0') &&
612
+ !(event['tool_name'] === 'MultiEdit' && !Array.isArray(event['tool_input']['edits'])));
613
+ }
614
+ /**
615
+ * The path safety and managed-state protection both modes share. Throws, for IA-HOOK-PATH-UNSAFE, on an unusable root,
616
+ * a relative path without a cwd inside it, unreadable ownership, and a protected path reached through an alias. With
617
+ * `systems`, the retired steward rule's `.ia/src/systems/<name>/` folders are located too (the legacy mode only).
618
+ */
619
+ function editTarget(root, event, systems) {
400
620
  let rule, base;
401
- try {
621
+ {
402
622
  if (!isAbsolute(root))
403
623
  throw new Error('Binding requires an absolute fixed project root');
404
624
  // The registered root as the volume stores it: another case or normalization of the same directory is the same
@@ -409,6 +629,11 @@ export function evaluateHook(root, event, actorsPath) {
409
629
  throw new Error('Project root is aliased');
410
630
  base = real;
411
631
  const path = event['tool_input']['file_path'];
632
+ // On win32 a `:` after the drive designator names an alternate data stream (`x.md::$DATA`, `x.md:s`) or a
633
+ // drive-relative path: the write lands on a file the typed spelling does not name, so it is refused before any rule
634
+ // or selection reads it.
635
+ if (process.platform === 'win32' && streamed(path))
636
+ throw new Error('A path naming an alternate data stream or a drive-relative path is refused');
412
637
  if (!isAbsolute(path) &&
413
638
  (typeof event['cwd'] !== 'string' ||
414
639
  !isAbsolute(event['cwd']) ||
@@ -431,7 +656,7 @@ export function evaluateHook(root, event, actorsPath) {
431
656
  }
432
657
  return owned;
433
658
  };
434
- rule = spellings.reduce((found, spelling) => found ?? protection(spelling, ownership), undefined);
659
+ rule = spellings.reduce((found, spelling) => found ?? protection(spelling, ownership, () => legacySteward(actual), systems), undefined);
435
660
  const localSettings = spellings.includes('.claude/settings.local.json'), projectSettings = spellings.includes('.claude/settings.json');
436
661
  const sourceLauncher = spellings.includes('.claude/hooks/steward-write.mjs');
437
662
  // A cached launcher can be outside the consumer root. Only the exact path in its owned guard marker is managed.
@@ -450,12 +675,24 @@ export function evaluateHook(root, event, actorsPath) {
450
675
  throw new Error('Protected path has an aliased ancestor or target');
451
676
  if (rule?.invalid)
452
677
  throw new Error('Cannot identify the owning system');
678
+ return { base, target, actual, spellings, rule };
679
+ }
680
+ }
681
+ const MANAGED = 'Use the owning command for generated state. Guard settings require a trusted operator edit outside intercepted assistant tools, preserving the guard, followed by registration qualification';
682
+ /** The legacy guard: managed-state protection and the retired steward rule for `.ia/src/systems/<name>/`. */
683
+ export function evaluateHook(root, event, actorsPath) {
684
+ if (!editEvent(event))
685
+ return deny('IA-HOOK-INPUT-INVALID', 'Expected a PreToolUse file edit event');
686
+ let edit;
687
+ try {
688
+ edit = editTarget(root, event, true);
453
689
  }
454
690
  catch (error) {
455
691
  return deny('IA-HOOK-PATH-UNSAFE', error instanceof Error ? error.message : String(error));
456
692
  }
693
+ const { base, rule } = edit;
457
694
  if (rule?.projection)
458
- return deny('IA-HOOK-PROJECTION-MANAGED', 'Use the owning command for generated state. Guard settings require a trusted operator edit outside intercepted assistant tools, preserving the guard, followed by registration qualification');
695
+ return deny('IA-HOOK-PROJECTION-MANAGED', MANAGED);
459
696
  if (rule?.system === undefined)
460
697
  return {};
461
698
  try {
@@ -479,14 +716,199 @@ export function evaluateHook(root, event, actorsPath) {
479
716
  return deny('IA-HOOK-STEWARD-UNAVAILABLE', error instanceof Error ? error.message : String(error));
480
717
  }
481
718
  }
719
+ /** The workspace's admission as `recovery` names it, read from an open database. */
720
+ const admissionOf = (db) => !db.report.findings.some((finding) => finding.severity === 'error')
721
+ ? 'admits'
722
+ : refusedMandates(db).length > 0 || refusedDependencies(db).length > 0
723
+ ? 'mandate'
724
+ : 'refuses';
725
+ /**
726
+ * The commands that bring a registration whose hook or records cannot be read back in step, each runnable from a shell in
727
+ * that very state (review findings G-R7, H-R2 and H-R8): removing the host registration, which restores editing and
728
+ * needs neither an admitting workspace nor readable records; and, only where the workspace admits, re-registering its
729
+ * current hooks, which removes a group whose record is gone. Where it does not admit, `ia validate` shows why; where an
730
+ * authored `@mandate`, or a record a mandate resolution reads, failed admission, `ia validate` refuses like every
731
+ * mandate-gated command (lane D), so the admission report, the version 1 machine route `ia report`, shows it instead,
732
+ * its root spelled only when inert unquoted, else run from the workspace root (runtime `admissionReport`; review D-R1).
733
+ */
734
+ const rootCommand = (command, root, tail = '') => inertCommandRoot(root)
735
+ ? `"${command} --root ${JSON.stringify(root)}${tail}"`
736
+ : `"${command} --root .${tail}" from the workspace root`;
737
+ const recovery = (root, admission) => {
738
+ const remove = rootCommand('ia host claude', root, ' --remove --apply --yes');
739
+ if (admission === 'admits')
740
+ return `run ${rootCommand('ia host claude', root, ' --apply --yes')} from a shell to register the workspace's current hooks, or ${remove} to remove the registration and restore editing`;
741
+ if (admission === 'mandate') {
742
+ const report = admissionReport(root);
743
+ return `run ${remove} from a shell to remove the registration and restore editing, and "${report.command}"${report.fromRoot ? ' from the workspace root' : ''} for the admission findings, the refused record's among them, before registering again`;
744
+ }
745
+ return `run ${remove} from a shell to remove the registration and restore editing, and ${rootCommand('ia validate', root)} to see why the workspace does not admit before registering again`;
746
+ };
747
+ /**
748
+ * The `@mandate` guard (milestone generation-binding, plan amendments C9 and C10): one authored `@hook`'s group runs
749
+ * `guard --root <root> --hook <identity>` for every edit tool. The same input checks, path safety and managed-state
750
+ * protection as the legacy guard run first, whatever tools the hook names, so no hook leaves the guard's own
751
+ * registration, the installation state or the owned projection open (the retired steward rule is not one of them). Then
752
+ * the admitted authored `@hook` the registration names is read as hook generation declares it, and runtime's
753
+ * evaluateMandateGuard decides the edit: allowed unless the hook selects it (its paths select the file and its tools
754
+ * name the tool) and the actor is unknown or holds no governing mandate that grants Synthesis there. A selected path
755
+ * reached through an alias is refused. What cannot be read refuses with a code; nothing is allowed because something was
756
+ * unreadable once the hook is known to select the edit. When the hook's record, or the workspace's records at all,
757
+ * cannot be read, the registration refuses only the edits under the selection last registered for it, or every edit
758
+ * under the root when none is recorded (review findings G-N4 and H-R8).
759
+ */
760
+ export function evaluateMandateHook(root, hook, event) {
761
+ if (!editEvent(event))
762
+ return deny('IA-HOOK-INPUT-INVALID', 'Expected a PreToolUse file edit event');
763
+ if (!registrableHook(hook))
764
+ return deny('IA-HOOK-INPUT-INVALID', 'Expected --hook <canonical @hook identity>');
765
+ let edit;
766
+ try {
767
+ edit = editTarget(root, event, false);
768
+ }
769
+ catch (error) {
770
+ return deny('IA-HOOK-PATH-UNSAFE', error instanceof Error ? error.message : String(error));
771
+ }
772
+ if (edit.rule?.projection)
773
+ return deny('IA-HOOK-PROJECTION-MANAGED', MANAGED);
774
+ // Folded root-relative spellings, the physical one first: its existing components are the names on disk (the deepest
775
+ // existing ancestor through realpathSync.native, which also expands a Windows 8.3 short name), its missing tail as
776
+ // typed. Selections and claims fold too (`fold`), so on win32 and darwin, whatever the volume, `DOCS/x.md` is under
777
+ // `docs/**` and `Docs/**` alike, and on other platforms each case is its own path. A selected file typed any other way than its on-disk name
778
+ // but by case (an 8.3 short name) fails the alias check below and is refused, never decided as typed.
779
+ const paths = [...new Set([edit.spellings[1], edit.spellings[0], ...edit.spellings.slice(2)])].filter((spelling) => spelling !== undefined);
780
+ if (paths.length === 0)
781
+ return {};
782
+ // A file with more than one link has another name a hook may select, which the guard cannot find: the edit is refused
783
+ // wherever it is under the root rather than decided by the name it was typed with (guard review finding G-N3; a pnpm
784
+ // store link is such a file, H-N13).
785
+ try {
786
+ const linked = lstatSync(edit.actual, { throwIfNoEntry: false });
787
+ if (linked !== undefined && linked.isFile() && linked.nlink > 1)
788
+ return deny('IA-HOOK-PATH-UNSAFE', 'A file with more than one link is refused: another of its names may be guarded');
789
+ }
790
+ catch (error) {
791
+ return deny('IA-HOOK-PATH-UNSAFE', error instanceof Error ? error.message : String(error));
792
+ }
793
+ // What cannot be read refuses no more than the selection the hook was registered with, which the hook ownership state
794
+ // recorded (guard review finding G-N4, review finding H-R8): edits elsewhere, the repair among them unless that
795
+ // selection holds it, proceed. With no recorded selection, every edit under the root is refused.
796
+ const unavailable = (code, why, admission) => {
797
+ let selection, unreadable;
798
+ try {
799
+ selection = registeredSelection(edit.base, hook);
800
+ }
801
+ catch (error) {
802
+ selection = undefined;
803
+ unreadable =
804
+ error instanceof UnreadableHookState ? error.path : '.ia/distributions/hosts/claude-hooks-workspace.json';
805
+ }
806
+ if (selection !== undefined &&
807
+ !mandateGuardSelects({
808
+ hook: { identity: hook, tools: ['Write', 'Edit', 'MultiEdit'], paths: selection, message: '' },
809
+ tool: event.tool_name,
810
+ paths,
811
+ fold,
812
+ }))
813
+ return {};
814
+ // An unreadable state is one the removal refuses too: its repair, from a shell, is deleting the state and the groups
815
+ // it owns, which restores editing; the removal then takes the rest of the registration (review finding A-F3).
816
+ if (unreadable !== undefined)
817
+ return deny(code, `${why}; the hook ownership state ${unreadable} cannot be read, so every edit under the root is refused; from a shell, delete ${unreadable} and every IA hook group in .claude/settings.local.json (each runs the guard for one authored @hook) to restore editing, then run ${rootCommand('ia host claude', edit.base, ' --remove --apply --yes')} to remove the rest of the registration`);
818
+ return deny(code, `${why}; ${selection === undefined ? 'no registered selection is recorded, so every edit under the root is refused' : 'this edit is under its last registered selection'}; ${recovery(edit.base, admission)}`);
819
+ };
820
+ const message = (error) => (error instanceof Error ? error.message : String(error));
821
+ let db;
822
+ try {
823
+ db = openDatabase(edit.base, { cache: false });
824
+ }
825
+ catch (error) {
826
+ return unavailable('IA-HOOK-MANDATE-UNAVAILABLE', `The workspace's records cannot be read: ${message(error)}`, 'refuses');
827
+ }
828
+ try {
829
+ let within, nodes;
830
+ // Review D-R4: the admission is read first, so records that then cannot be read still name what runs there.
831
+ let admission = 'refuses';
832
+ try {
833
+ admission = admissionOf(db);
834
+ within = db.resolveScope().token;
835
+ nodes = db
836
+ .records({ within })
837
+ .filter((node) => node.discriminator === 'hook' && node.band === 100 && node.identity === hook);
838
+ }
839
+ catch (error) {
840
+ return unavailable('IA-HOOK-MANDATE-UNAVAILABLE', `The workspace's records cannot be read: ${message(error)}`, admission);
841
+ }
842
+ /**
843
+ * Review D-N1: a hook that cannot be decided while a record a mandate resolution reads failed admission (the hook in
844
+ * the refused mandate's own file, say) fails closed at that record, as a decided edit would.
845
+ */
846
+ const undecided = (why) => {
847
+ try {
848
+ requireMandatesAdmitted(db, within);
849
+ }
850
+ catch (error) {
851
+ if (isAdmissionRefusal(error))
852
+ return unavailable('IA-HOOK-MANDATE-UNAVAILABLE', `${why}, and the mandates that would decide it cannot be read: ${error.message}`, admission);
853
+ throw error;
854
+ }
855
+ return unavailable('IA-HOOK-DECLARATION-UNAVAILABLE', why, admission);
856
+ };
857
+ if (nodes.length !== 1)
858
+ return undecided(`${hook} is not an admitted authored @hook`);
859
+ let declaration;
860
+ try {
861
+ declaration = hookDeclaration(nodes[0]);
862
+ }
863
+ catch (error) {
864
+ return undecided(message(error));
865
+ }
866
+ // `root` spells the registration's root into a next command that cannot find it (`ia report`; lane D, D4).
867
+ const request = {
868
+ hook: declaration,
869
+ tool: event.tool_name,
870
+ paths,
871
+ agentId: event['agent_id'],
872
+ agentType: event['agent_type'],
873
+ fold,
874
+ root: edit.base,
875
+ };
876
+ if (!mandateGuardSelects(request))
877
+ return {};
878
+ if (!unaliased(edit.target, edit.actual))
879
+ return deny('IA-HOOK-PATH-UNSAFE', 'Selected path has an aliased ancestor or target');
880
+ const decision = evaluateMandateGuard(db, within, request);
881
+ if (decision.allowed)
882
+ return {};
883
+ // Guard review finding G-N1: a refusal of the main session names the shell command that lifts every hook, which
884
+ // needs neither an admitting workspace nor readable records (H-R2, H-R8); a subagent's refusal is the main
885
+ // session's to resolve.
886
+ const lift = event['agent_id'] === undefined
887
+ ? `; the main session can lift every hook from a shell with ${rootCommand('ia host claude', edit.base, ' --remove --apply --yes')}`
888
+ : '';
889
+ return deny(decision.code, decision.message + lift);
890
+ }
891
+ catch (error) {
892
+ // `ia validate` is mandate-gated and may refuse in the very state that failed here (lane D); the admission report,
893
+ // the version 1 machine route, never is. Its root is spelled only when inert unquoted (review D-R1, D-N2).
894
+ const report = admissionReport(edit.base);
895
+ return deny('IA-HOOK-MANDATE-UNAVAILABLE', `The records that decide this edit cannot be read: ${message(error)}. Next: ${report.command}${report.fromRoot ? ', run from the workspace root' : ''}`);
896
+ }
897
+ finally {
898
+ db.close();
899
+ }
900
+ }
901
+ const USAGE = 'Usage: steward-hook --root <fixed absolute root> [--actors <trusted absolute mapping> | --hook <@hook identity>] (input limit 1 MiB)';
482
902
  export function runHook(args, input) {
483
903
  try {
484
- if (!(args.length === 2 || (args.length === 4 && args[2] === '--actors' && args[3])) ||
904
+ const mode = args.length === 4 ? args[2] : undefined;
905
+ if (!(args.length === 2 || ((mode === '--actors' || mode === '--hook') && args[3])) ||
485
906
  args[0] !== '--root' ||
486
907
  !args[1] ||
487
908
  Buffer.byteLength(input) > 1024 * 1024)
488
- return deny('IA-HOOK-INPUT-INVALID', 'Usage: steward-hook --root <fixed absolute root> [--actors <trusted absolute mapping>] (input limit 1 MiB)');
489
- return evaluateHook(args[1], JSON.parse(input), args[3]);
909
+ return deny('IA-HOOK-INPUT-INVALID', USAGE);
910
+ const event = JSON.parse(input);
911
+ return mode === '--hook' ? evaluateMandateHook(args[1], args[3], event) : evaluateHook(args[1], event, args[3]);
490
912
  }
491
913
  catch {
492
914
  return deny('IA-HOOK-INPUT-INVALID', 'Invalid JSON input');
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inventarch/steward-hook",
3
- "version": "1.2.0",
3
+ "version": "3.0.0",
4
4
  "type": "module",
5
5
  "main": "./dist/main.js",
6
6
  "types": "./dist/main.d.ts",
@@ -13,9 +13,9 @@
13
13
  "LANGUAGE.md"
14
14
  ],
15
15
  "dependencies": {
16
- "@inventarch/runtime": "1.2.0",
17
- "@inventarch/workspace-runtime": "1.2.0",
18
- "@inventarch/db": "1.2.0"
16
+ "@inventarch/runtime": "3.0.0",
17
+ "@inventarch/workspace-runtime": "3.0.0",
18
+ "@inventarch/db": "3.0.0"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/node": "^22.19.0",