audit-tools 0.55.9 → 0.55.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/audit/cli/auditStep.d.ts +1 -1
  2. package/dist/audit/cli/dispatch/packetFilter.d.ts +1 -1
  3. package/dist/audit/cli/functionalPreflight.d.ts +4 -4
  4. package/dist/audit/cli/sampleRunCommand.d.ts +1 -1
  5. package/dist/audit/cli/steps.d.ts +2 -2
  6. package/dist/audit/contracts/workerSchemas.d.ts +14 -14
  7. package/dist/audit/contracts/wrapperResponse.d.ts +8 -8
  8. package/dist/audit/extractors/analyzers/css.d.ts.map +1 -1
  9. package/dist/audit/extractors/analyzers/css.js +2 -30
  10. package/dist/audit/extractors/analyzers/css.js.map +1 -1
  11. package/dist/audit/extractors/analyzers/html.d.ts.map +1 -1
  12. package/dist/audit/extractors/analyzers/html.js +2 -30
  13. package/dist/audit/extractors/analyzers/html.js.map +1 -1
  14. package/dist/audit/extractors/analyzers/python.d.ts.map +1 -1
  15. package/dist/audit/extractors/analyzers/python.js +9 -34
  16. package/dist/audit/extractors/analyzers/python.js.map +1 -1
  17. package/dist/audit/extractors/analyzers/treeSitterBatch.d.ts +6 -0
  18. package/dist/audit/extractors/analyzers/treeSitterBatch.d.ts.map +1 -0
  19. package/dist/audit/extractors/analyzers/treeSitterBatch.js +38 -0
  20. package/dist/audit/extractors/analyzers/treeSitterBatch.js.map +1 -0
  21. package/dist/audit/extractors/graph.d.ts.map +1 -1
  22. package/dist/audit/extractors/graph.js +9 -7
  23. package/dist/audit/extractors/graph.js.map +1 -1
  24. package/dist/audit/extractors/graphPathIndex.d.ts +8 -0
  25. package/dist/audit/extractors/graphPathIndex.d.ts.map +1 -0
  26. package/dist/audit/extractors/graphPathIndex.js +47 -0
  27. package/dist/audit/extractors/graphPathIndex.js.map +1 -0
  28. package/dist/audit/extractors/graphPythonImports.d.ts +5 -4
  29. package/dist/audit/extractors/graphPythonImports.d.ts.map +1 -1
  30. package/dist/audit/extractors/graphPythonImports.js +15 -27
  31. package/dist/audit/extractors/graphPythonImports.js.map +1 -1
  32. package/dist/audit/extractors/graphRouteSources.d.ts +2 -1
  33. package/dist/audit/extractors/graphRouteSources.d.ts.map +1 -1
  34. package/dist/audit/extractors/graphRouteSources.js +5 -4
  35. package/dist/audit/extractors/graphRouteSources.js.map +1 -1
  36. package/dist/audit/extractors/graphSuites.d.ts +2 -1
  37. package/dist/audit/extractors/graphSuites.d.ts.map +1 -1
  38. package/dist/audit/extractors/graphSuites.js +6 -7
  39. package/dist/audit/extractors/graphSuites.js.map +1 -1
  40. package/dist/audit/orchestrator/flowPlanning.d.ts +2 -6
  41. package/dist/audit/orchestrator/flowPlanning.d.ts.map +1 -1
  42. package/dist/audit/orchestrator/flowPlanning.js +2 -9
  43. package/dist/audit/orchestrator/flowPlanning.js.map +1 -1
  44. package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
  45. package/dist/audit/orchestrator/taskBuilder.js +1 -1
  46. package/dist/audit/orchestrator/taskBuilder.js.map +1 -1
  47. package/dist/audit/types/auditState.d.ts +2 -2
  48. package/dist/audit/types/reviewPlanning.d.ts +2 -2
  49. package/dist/audit/types.d.ts +12 -12
  50. package/dist/remediate/intake.d.ts +2 -2
  51. package/dist/shared/decompose/contentCoherence.d.ts.map +1 -1
  52. package/dist/shared/decompose/contentCoherence.js +25 -9
  53. package/dist/shared/decompose/contentCoherence.js.map +1 -1
  54. package/dist/shared/tooling/allowlistedExec.d.ts +10 -7
  55. package/dist/shared/tooling/allowlistedExec.d.ts.map +1 -1
  56. package/dist/shared/tooling/allowlistedExec.js +275 -94
  57. package/dist/shared/tooling/allowlistedExec.js.map +1 -1
  58. package/dist/shared/tooling/exec.d.ts +4 -1
  59. package/dist/shared/tooling/exec.d.ts.map +1 -1
  60. package/dist/shared/tooling/exec.js +76 -71
  61. package/dist/shared/tooling/exec.js.map +1 -1
  62. package/dist/shared/tooling/ownedProcessLifecycle.d.ts +30 -0
  63. package/dist/shared/tooling/ownedProcessLifecycle.d.ts.map +1 -0
  64. package/dist/shared/tooling/ownedProcessLifecycle.js +99 -0
  65. package/dist/shared/tooling/ownedProcessLifecycle.js.map +1 -0
  66. package/dist/shared/tooling/windowsOwnedJob.d.ts +35 -0
  67. package/dist/shared/tooling/windowsOwnedJob.d.ts.map +1 -0
  68. package/dist/shared/tooling/windowsOwnedJob.js +145 -0
  69. package/dist/shared/tooling/windowsOwnedJob.js.map +1 -0
  70. package/package.json +2 -1
  71. package/wrapper/audit-code-wrapper-io.mjs +12 -107
  72. package/wrapper/remediate-code-wrapper-io.mjs +12 -107
  73. package/wrapper/shared-wrapper-io.mjs +109 -0
@@ -1,15 +1,15 @@
1
+ // sites-pinned: tests/shared/allowlisted-exec.test.ts, tests/shared/allowlisted-exec-runner-internals.test.ts
1
2
  /**
2
3
  * Allowlisted read-only command runner + a DEFAULT-DENY per-executable flag
3
4
  * allowlist — single source for both orchestrators (drift-plan E2; CRIT
4
5
  * ARC-a06a3945).
5
6
  *
6
- * The auditor's executable-anchor pass (S7 tier-2) runs *model-authored* commands
7
- * at ingest to confirm/refute behavior claims. That is a trust surface: the tool
8
- * spawns whatever the model wrote. The earlier guard checked only `command[0]`
9
- * (the executable) against an allowlist and waved every argument through, so
10
- * `rg --pre <cmd>` (preprocessor exec), `rg --search-zip`, `ast-grep --rewrite`
11
- * (file write), a non-read-only `git` option, etc. slipped past — arbitrary
12
- * code-exec / file-writes at ingest.
7
+ * Exported inspection-command library boundary. There are currently no in-tree
8
+ * production callers. Admission rejects paths and flags outside declared policies;
9
+ * execution resolves a trusted native identity outside the inspected worktree
10
+ * and caller cwd. Git and ripgrep receive fixed configuration protections.
11
+ * Other tools retain their existing argument policies; this is no general
12
+ * sandbox or claim about Madge configuration trust.
13
13
  *
14
14
  * This module replaces that denylist posture with a **default-deny allowlist of
15
15
  * arguments**: each allowed executable declares the exact set of flags it may
@@ -21,26 +21,30 @@
21
21
  *
22
22
  * SAFETY of the runner: commands run only via `runAllowlistedReadOnlyCommand`,
23
23
  * which spawns argv-only (never a shell), under a timeout, with the
24
- * wrapper-only control env stripped (`stripAuditToolsControlEnv`), platform-resolved via the
25
- * shared `resolveExecArgv`, and SIGTERM→SIGKILL on timeout. The runner ENFORCES
24
+ * wrapper-only control env stripped (`stripAuditToolsControlEnv`), a trusted
25
+ * native executable identity, and bounded owned-process cleanup. It ENFORCES
26
26
  * `isAllowedAnchorCommand` on itself, unconditionally, before ever spawning
27
27
  * (invariants[2]) — a caller-side pre-check is only an OPTIONAL fast path,
28
28
  * never the sole guarantee: correctness must not rest on every call site
29
29
  * remembering to gate first.
30
30
  */
31
- import { spawn } from "node:child_process";
32
- import { resolveExecArgv, stripAuditToolsControlEnv } from "./exec.js";
31
+ import { accessSync, constants, existsSync, realpathSync, statSync } from "node:fs";
32
+ import { delimiter, dirname, isAbsolute, join, resolve } from "node:path";
33
+ import { devNull } from "node:os";
34
+ import { stripAuditToolsControlEnv } from "./exec.js";
35
+ import { resolveExecutableFile } from "./resolveExecutable.js";
36
+ import { resolveWithinRoot } from "../io/pathContainment.js";
37
+ import { beginOwnedProcessTermination, spawnOwnedProcess } from "./ownedProcessLifecycle.js";
33
38
  /** Default per-anchor wall-clock budget; a slower command is killed and inconclusive. */
34
39
  export const ALLOWLISTED_EXEC_TIMEOUT_MS = 60_000;
35
- /** Grace before a timed-out child is escalated from SIGTERM to SIGKILL. */
36
- const SIGKILL_GRACE_MS = 2_000;
37
40
  /** Cap on captured combined output so a runaway command cannot exhaust memory. */
38
41
  const MAX_CAPTURED_OUTPUT = 256 * 1024;
39
42
  /**
40
43
  * The inspection-only executables a model-authored anchor may invoke, each with
41
- * the explicit set of flags it may carry. Every listed flag is read-only: it
42
- * cannot write a file, execute a sub-process/preprocessor, or decompress
43
- * arbitrary input. Deliberately ABSENT (so default-deny refuses them):
44
+ * the explicit set of flags it may carry. These historical policies do not
45
+ * establish configuration/subcommand safety for every analyzer: Madge config
46
+ * modules and ast-grep positional subcommands/config discovery remain separate
47
+ * review scopes. Deliberately ABSENT (so default-deny refuses them):
44
48
  * - ripgrep: --pre / --pre-glob (run a preprocessor), --search-zip / -z
45
49
  * (decompress), --hostname-bin, -o is fine (only-matching) but
46
50
  * --files-from style file reads are omitted out of caution.
@@ -84,7 +88,7 @@ const ARG_POLICIES = new Map([
84
88
  "--hidden", "--no-ignore", "--color", "--colors", "-H", "--with-filename",
85
89
  "--no-filename", "--no-heading", "--heading", "-U", "--multiline",
86
90
  "--multiline-dotall", "-P", "--pcre2", "--json", "--vimgrep", "-0",
87
- "--null", "-m", "--max-count", "--max-depth", "--maxdepth",
91
+ "--null", "-m", "--max-count", "--max-depth", "--maxdepth", "--no-config",
88
92
  ]),
89
93
  allowPositionals: true,
90
94
  },
@@ -104,7 +108,7 @@ const ARG_POLICIES = new Map([
104
108
  "--hidden", "--no-ignore", "--color", "--colors", "-H", "--with-filename",
105
109
  "--no-filename", "--no-heading", "--heading", "-U", "--multiline",
106
110
  "--multiline-dotall", "-P", "--pcre2", "--json", "--vimgrep", "-0",
107
- "--null", "-m", "--max-count", "--max-depth", "--maxdepth",
111
+ "--null", "-m", "--max-count", "--max-depth", "--maxdepth", "--no-config",
108
112
  ]),
109
113
  allowPositionals: true,
110
114
  },
@@ -122,7 +126,7 @@ const ARG_POLICIES = new Map([
122
126
  [
123
127
  "madge",
124
128
  {
125
- // Read-only dependency analysis: circular detection, orphans, JSON. The
129
+ // Dependency-reporting flags; config modules remain a separate trust surface. The
126
130
  // image/dot/svg output-writing flags are absent → refused.
127
131
  flags: new Set([
128
132
  "--circular", "-c", "--orphans", "--leaves", "--summary", "-s",
@@ -135,8 +139,8 @@ const ARG_POLICIES = new Map([
135
139
  [
136
140
  "ast-grep",
137
141
  {
138
- // Structural search only. --rewrite/-r/--update-all/-U/--interactive/-i
139
- // (all of which edit files) are absent → refused. `run`/`scan` are positional.
142
+ // Known editing flags are absent. Positional subcommands and configuration/
143
+ // native parser discovery remain separate review scopes.
140
144
  flags: new Set([
141
145
  "-p", "--pattern", "-l", "--lang", "--language", "--json", "--globs",
142
146
  "-A", "--after", "-B", "--before", "-C", "--context", "--heading",
@@ -158,33 +162,33 @@ const ARG_POLICIES = new Map([
158
162
  },
159
163
  ],
160
164
  ]);
161
- /** Read-only git subcommands an anchor may run (no checkout/reset/clean/push/…). */
162
- export const GIT_READONLY_SUBCOMMANDS = new Set([
163
- "grep",
164
- "log",
165
- "diff",
166
- "show",
167
- "ls-files",
168
- "cat-file",
169
- "blame",
170
- "rev-parse",
171
- "status",
172
- ]);
165
+ const nonempty = value => value.length > 0 && !value.startsWith("-");
166
+ const count = value => /^\d+$/.test(value);
167
+ const anyPositionals = () => true;
168
+ const gitFlags = (zero, values = []) => new Map([...zero.map(flag => [flag, null]), ...values]);
169
+ const diffFlags = ["--stat", "--numstat", "--shortstat", "--name-only", "--name-status", "--patch", "-p", "--no-patch", "-s", "--raw", "--check", "--no-renames", "--no-ext-diff", "--no-textconv", "--exit-code", "--quiet", "-w", "--ignore-all-space", "--ignore-space-change", "--no-color"];
170
+ const logValues = [["-n", count], ["--max-count", count], ["--skip", count], ["--since", nonempty], ["--until", nonempty], ["--author", nonempty], ["--grep", nonempty]];
173
171
  /**
174
- * git flags that write a file or otherwise escape read-only inspection, refused
175
- * even on a read-only subcommand. `-o`/`--output` write to a file; `-c`,
176
- * `--exec-path`, `--config-env` reconfigure git arbitrarily (incl. running
177
- * pagers/externals). Anything in this set, anywhere in the argv, refuses.
172
+ * Small per-subcommand grammar, not Git's complete CLI. Exact flag names only;
173
+ * null means zero operands, a predicate means one required operand. Required
174
+ * short operands may be attached; long operands may use '='. Short clusters,
175
+ * abbreviations and arbitrary pretty formats are omitted. Optional-value Git
176
+ * flags require an explicit '=' value when included (equalsOnly).
177
+ * '--' ends option parsing only for commands with path positionals.
178
178
  */
179
- const GIT_REFUSED_OPTIONS = new Set([
180
- "-o",
181
- "--output",
182
- "-c",
183
- "--exec-path",
184
- "--config-env",
185
- "--upload-pack",
186
- "--receive-pack",
179
+ const GIT_POLICIES = new Map([
180
+ ["grep", { flags: gitFlags(["-n", "--line-number", "-i", "--ignore-case", "-I", "-l", "--files-with-matches", "-c", "--count", "-w", "--word-regexp", "-v", "--invert-match", "-E", "--extended-regexp", "-F", "--fixed-strings", "--cached", "--no-index", "--full-name", "--no-textconv"], [["-e", nonempty], ["-A", count], ["-B", count], ["-C", count]]), paths: true, positionals: (values, flags) => flags.has("-e") || values.length > 0 }],
181
+ ["log", { flags: gitFlags([...diffFlags, "--oneline", "--decorate", "--no-decorate", "--all", "--reverse", "--first-parent", "--no-merges", "--merges", "--follow"], [...logValues, ["-U", count]]), paths: true, positionals: anyPositionals }],
182
+ ["diff", { flags: gitFlags(diffFlags, [["-U", count], ["--unified", count]]), paths: true, positionals: anyPositionals }],
183
+ ["show", { flags: gitFlags([...diffFlags, "--oneline"], [["-U", count], ["--unified", count]]), paths: true, positionals: anyPositionals }],
184
+ ["ls-files", { flags: gitFlags(["-z", "--cached", "-c", "--deleted", "-d", "--modified", "-m", "--others", "-o", "--ignored", "-i", "--exclude-standard", "--stage", "-s", "--unmerged", "-u", "--full-name"]), paths: true, positionals: anyPositionals }],
185
+ ["cat-file", { flags: gitFlags(["-p", "-t", "-s", "-e"]), paths: false, positionals: (values, flags) => values.length === 1 && flags.size === 1 }],
186
+ ["blame", { flags: gitFlags(["--porcelain", "--line-porcelain", "--incremental", "-w", "--show-email", "-e", "--root", "--no-textconv"], [["-L", value => /^\d+(?:,\d+)?$/.test(value)]]), paths: true, positionals: values => values.length >= 1 && values.length <= 2 }],
187
+ ["rev-parse", { flags: gitFlags(["--verify", "--short", "--abbrev-ref", "--symbolic-full-name", "--is-inside-work-tree", "--show-toplevel", "--show-prefix", "--git-dir", "--is-bare-repository"]), paths: false, positionals: values => values.length <= 1 }],
188
+ ["status", { flags: gitFlags(["--short", "-s", "--branch", "-b", "--porcelain", "-z", "--no-renames"], [["--untracked-files", value => ["no", "normal", "all"].includes(value)]]), equalsOnly: new Set(["--untracked-files"]), paths: true, positionals: anyPositionals }],
187
189
  ]);
190
+ /** Read-only Git subcommands, derived from the grammar used for admission. */
191
+ export const GIT_READONLY_SUBCOMMANDS = new Set(GIT_POLICIES.keys());
188
192
  /**
189
193
  * The set of executables the runner will auto-run, for callers that want to
190
194
  * display the allowlist. Derived from the per-executable policies plus git.
@@ -247,32 +251,64 @@ function isAllowedNonGitCommand(args, policy) {
247
251
  }
248
252
  return true;
249
253
  }
250
- /**
251
- * Validate a git command: the first positional must be a read-only subcommand,
252
- * and no token (before OR after the subcommand) may be a write/reconfigure
253
- * option from {@link GIT_REFUSED_OPTIONS}. A `-c key=val` style reconfiguration
254
- * before the subcommand is refused, as is an `--output=file` on `git log`.
255
- */
254
+ const GIT_GLOBAL_FLAGS = new Set(["--no-pager", "--no-optional-locks", "--literal-pathspecs"]);
255
+ function gitSubcommandIndex(args) {
256
+ let index = 0;
257
+ while (GIT_GLOBAL_FLAGS.has(args[index]))
258
+ index++;
259
+ return index;
260
+ }
261
+ /** Default-deny Git grammar; positionals after '--' are never reparsed. */
256
262
  function isAllowedGitCommand(args) {
257
- let subcommand;
258
- for (const arg of args) {
259
- if (typeof arg !== "string")
263
+ const sub = gitSubcommandIndex(args);
264
+ const policy = GIT_POLICIES.get(args[sub]);
265
+ if (!policy)
266
+ return false;
267
+ const positionals = [];
268
+ const flags = new Set();
269
+ let pathsOnly = false;
270
+ for (let index = sub + 1; index < args.length; index++) {
271
+ const arg = args[index];
272
+ if (pathsOnly || !arg.startsWith("-")) {
273
+ positionals.push(arg);
274
+ continue;
275
+ }
276
+ if (arg === "--") {
277
+ if (!policy.paths)
278
+ return false;
279
+ pathsOnly = true;
280
+ continue;
281
+ }
282
+ const equals = arg.startsWith("--") ? arg.indexOf("=") : -1;
283
+ let name = equals < 0 ? arg : arg.slice(0, equals);
284
+ let value = equals < 0 ? undefined : arg.slice(equals + 1);
285
+ if (!policy.flags.has(name) && /^-[^-].+/.test(arg)) {
286
+ name = arg.slice(0, 2);
287
+ value = arg.slice(2);
288
+ }
289
+ if (!policy.flags.has(name))
260
290
  return false;
261
- if (GIT_REFUSED_OPTIONS.has(flagName(arg)))
291
+ if (policy.equalsOnly?.has(name) && equals < 0)
262
292
  return false;
263
- if (subcommand === undefined && !arg.startsWith("-")) {
264
- subcommand = arg.trim().toLowerCase();
293
+ const validate = policy.flags.get(name);
294
+ if (validate === null) {
295
+ if (value !== undefined)
296
+ return false;
297
+ }
298
+ else {
299
+ value ??= args[++index];
300
+ if (value === undefined || !validate(value))
301
+ return false;
265
302
  }
303
+ flags.add(name);
266
304
  }
267
- if (subcommand === undefined)
268
- return false;
269
- return GIT_READONLY_SUBCOMMANDS.has(subcommand);
305
+ return policy.positionals(positionals, flags);
270
306
  }
271
307
  /**
272
308
  * The single authority for what the tool will auto-run on the model's behalf:
273
309
  * `command[0]` must be an allowlisted inspection-only executable, AND every
274
310
  * argument must satisfy that executable's default-deny argument policy (git:
275
- * read-only subcommand + no write/reconfigure option). Anything else → false.
311
+ * subcommand-specific grammar). Anything else → false.
276
312
  *
277
313
  * CRIT ARC-a06a3945: argument validation is the point — an allowed executable
278
314
  * carrying a code-exec/file-write flag (`rg --pre`, `ast-grep --rewrite`,
@@ -280,8 +316,12 @@ function isAllowedGitCommand(args) {
280
316
  */
281
317
  export function isAllowedAnchorCommand(command) {
282
318
  const exe = command[0];
283
- if (typeof exe !== "string" || exe.trim() === "")
319
+ if (typeof exe !== "string" || !/^[a-zA-Z0-9.-]+$/.test(exe))
284
320
  return false;
321
+ for (const arg of command) {
322
+ if (typeof arg !== "string" || /[\x00-\x1f\x7f]/.test(arg))
323
+ return false;
324
+ }
285
325
  const base = executableBaseName(exe);
286
326
  const args = command.slice(1);
287
327
  if (base === "git")
@@ -291,13 +331,117 @@ export function isAllowedAnchorCommand(command) {
291
331
  return false;
292
332
  return isAllowedNonGitCommand(args, policy);
293
333
  }
334
+ /** Discover the enclosing worktree without executing repository config. */
335
+ function inspectionRoot(cwd) {
336
+ let path = realpathSync(cwd);
337
+ const initial = path;
338
+ let bareRoot;
339
+ for (;;) {
340
+ if (existsSync(join(path, ".git")))
341
+ return path;
342
+ // Metadata inside a normal worktree also resembles a bare repository.
343
+ // Keep searching for the enclosing worktree before using this fallback.
344
+ if (existsSync(join(path, "HEAD")) && existsSync(join(path, "objects")) && existsSync(join(path, "refs")))
345
+ bareRoot ??= path;
346
+ const parent = dirname(path);
347
+ if (parent === path)
348
+ return bareRoot ?? initial;
349
+ path = parent;
350
+ }
351
+ }
352
+ /**
353
+ * Inspection-specific installation trust: absolute physical PATH directories and
354
+ * final executable targets outside the inspected worktree and caller cwd only.
355
+ * The general resolver retains its normal relative/empty PATH semantics.
356
+ * Windows uses native EXE/COM only, never PATHEXT, CMD/BAT or ComSpec fallback.
357
+ * Host-managed installations outside those roots are trusted, not sandboxed;
358
+ * this does not protect against concurrent executable replacement.
359
+ */
360
+ function inspectionExecutable(base, cwd) {
361
+ const roots = [inspectionRoot(cwd), realpathSync(process.cwd())];
362
+ const env = stripAuditToolsControlEnv();
363
+ const pathKey = Object.keys(env).find(key => process.platform === "win32" ? key.toUpperCase() === "PATH" : key === "PATH");
364
+ const directories = [];
365
+ for (let entry of (pathKey ? env[pathKey] ?? "" : "").split(delimiter)) {
366
+ if (process.platform === "win32" && entry.startsWith('"') && entry.endsWith('"'))
367
+ entry = entry.slice(1, -1);
368
+ if (!isAbsolute(entry) || roots.some(root => resolveWithinRoot(root, resolve(entry)) !== null))
369
+ continue;
370
+ try {
371
+ const physical = realpathSync(entry);
372
+ if (statSync(physical).isDirectory() && !roots.some(root => resolveWithinRoot(root, physical) !== null))
373
+ directories.push(physical);
374
+ }
375
+ catch { /* Missing PATH entries cannot establish trusted identity. */ }
376
+ }
377
+ for (const key of Object.keys(env)) {
378
+ if (key.toUpperCase() === "PATH" || key.toUpperCase() === "PATHEXT")
379
+ delete env[key];
380
+ }
381
+ env.PATH = directories.join(delimiter);
382
+ if (process.platform === "win32")
383
+ env.PATHEXT = ".EXE;.COM";
384
+ const file = resolveExecutableFile(base, {
385
+ cwd, env,
386
+ executableFile: candidate => {
387
+ try {
388
+ if (!statSync(candidate).isFile())
389
+ return null;
390
+ if (process.platform !== "win32")
391
+ accessSync(candidate, constants.X_OK);
392
+ const physical = realpathSync(candidate);
393
+ if (process.platform === "win32" && !/\.(exe|com)$/i.test(physical))
394
+ return null;
395
+ return roots.some(root => resolveWithinRoot(root, physical) !== null) ? null : physical;
396
+ }
397
+ catch {
398
+ return null;
399
+ }
400
+ },
401
+ });
402
+ if (!file)
403
+ throw new Error("No trusted native inspection executable found for " + base);
404
+ return { file, env };
405
+ }
406
+ /**
407
+ * Git >=2.45 is required by the fixed --no-lazy-fetch global flag: older Git
408
+ * rejects that flag before repository setup/subcommand execution. This also
409
+ * excludes old Git's interpretation of core.fsmonitor=false as a hook path.
410
+ * https://github.com/git/git/blob/v2.45.1/git.c (handle_options)
411
+ * https://git-scm.com/docs/git-config#Documentation/git-config.txt-corefsmonitor
412
+ */
413
+ function inspectionGit(args, env) {
414
+ for (const key of Object.keys(env))
415
+ if (key.toUpperCase().startsWith("GIT_"))
416
+ delete env[key];
417
+ Object.assign(env, {
418
+ GIT_CONFIG_NOSYSTEM: "1", GIT_CONFIG_SYSTEM: process.platform === "win32" ? "NUL" : devNull,
419
+ GIT_CONFIG_GLOBAL: process.platform === "win32" ? "NUL" : devNull,
420
+ GIT_PAGER: "cat", GIT_TERMINAL_PROMPT: "0", GIT_OPTIONAL_LOCKS: "0", GIT_NO_LAZY_FETCH: "1",
421
+ });
422
+ const index = gitSubcommandIndex(args);
423
+ const sub = args[index];
424
+ const fixed = ["--no-lazy-fetch", "--no-pager", "--no-optional-locks", "--literal-pathspecs"];
425
+ for (const config of [
426
+ "core.fsmonitor=false", "core.pager=cat", "log.showSignature=false",
427
+ "format.pretty=format:%h %s", "submodule.recurse=false",
428
+ "diff.submodule=short", "status.submoduleSummary=false",
429
+ ])
430
+ fixed.push("-c", config);
431
+ const protections = ["log", "show", "diff"].includes(sub) ? ["--no-ext-diff", "--no-textconv"] : [];
432
+ if (["diff", "status"].includes(sub))
433
+ protections.push("--ignore-submodules=all");
434
+ if (["grep", "blame"].includes(sub))
435
+ protections.push("--no-textconv");
436
+ return [...fixed, sub, ...protections, ...args.slice(index + 1)];
437
+ }
294
438
  /**
295
439
  * Spawn an allowlisted read-only command argv-only (never a shell), capturing
296
440
  * combined stdout+stderr (bounded). Strips the host-signalling env
297
- * (`stripAuditToolsControlEnv`), resolves the platform-correct argv via the shared
298
- * `resolveExecArgv`, and kills a command that exceeds `timeoutMs`
299
- * (SIGTERM→SIGKILL). The single runner both orchestrators use for the grounding
300
- * anchor pass.
441
+ * (`stripAuditToolsControlEnv`), resolves a trusted native executable outside
442
+ * the inspected worktree and caller cwd, and kills commands exceeding `timeoutMs`
443
+ * with bounded owned-process cleanup. This library entry point is shared by
444
+ * callers of the exported inspection API.
301
445
  *
302
446
  * INTERNAL GATE (invariants[2]): enforces {@link isAllowedAnchorCommand} on
303
447
  * itself, unconditionally, before ever spawning — `isAllowedAnchorCommand` is
@@ -324,13 +468,31 @@ export const runAllowlistedReadOnlyCommand = (command, cwd, timeoutMs) => {
324
468
  });
325
469
  }
326
470
  return new Promise((resolvePromise) => {
327
- const [resolvedCommand, ...resolvedArgs] = resolveExecArgv(command);
328
- const child = spawn(resolvedCommand, resolvedArgs, {
329
- cwd,
330
- env: stripAuditToolsControlEnv(),
331
- stdio: ["ignore", "pipe", "pipe"],
332
- windowsHide: true,
333
- });
471
+ let owned;
472
+ try {
473
+ const base = executableBaseName(command[0]);
474
+ const { file, env } = inspectionExecutable(base, cwd);
475
+ let args = command.slice(1);
476
+ if (base === "git")
477
+ args = inspectionGit(args, env);
478
+ else if (base === "rg" || base === "ripgrep") {
479
+ // Fixed before pattern/path operands, even if a caller uses '--'.
480
+ // https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md#configuration-file
481
+ for (const key of Object.keys(env))
482
+ if (key.toUpperCase() === "RIPGREP_CONFIG_PATH")
483
+ delete env[key];
484
+ args = ["--no-config", ...args];
485
+ }
486
+ owned = spawnOwnedProcess([file, ...args], { cwd, env, deadlineAt: Date.now() + Math.max(1, Number.isFinite(timeoutMs) ? timeoutMs : 1) });
487
+ }
488
+ catch (error) {
489
+ resolvePromise({ exit_code: null, timed_out: false, output: "", spawn_error: error instanceof Error ? error.message : String(error) });
490
+ return;
491
+ }
492
+ const child = owned.child;
493
+ // This runner has always supplied EOF to the admitted read-only command.
494
+ child.stdin.on("error", () => { });
495
+ child.stdin.end();
334
496
  let output = "";
335
497
  // A chunk that arrives once the cap is already reached is genuinely
336
498
  // DROPPED (never appended) — that is the only condition that makes the
@@ -339,7 +501,15 @@ export const runAllowlistedReadOnlyCommand = (command, cwd, timeoutMs) => {
339
501
  // still recorded in full (unchanged cap-application behavior); nothing was
340
502
  // lost in that case, so `truncated` correctly stays unset.
341
503
  let truncated = false;
504
+ let settled = false;
505
+ let stdioIncomplete = false;
506
+ let stdoutEnded = false;
507
+ let stderrEnded = false;
508
+ child.stdout.on("end", () => { stdoutEnded = true; });
509
+ child.stderr.on("end", () => { stderrEnded = true; });
342
510
  const capture = (chunk) => {
511
+ if (settled)
512
+ return;
343
513
  if (output.length < MAX_CAPTURED_OUTPUT) {
344
514
  output += String(chunk);
345
515
  }
@@ -350,31 +520,42 @@ export const runAllowlistedReadOnlyCommand = (command, cwd, timeoutMs) => {
350
520
  child.stdout?.on("data", capture);
351
521
  child.stderr?.on("data", capture);
352
522
  let timedOut = false;
353
- const timer = setTimeout(() => {
354
- timedOut = true;
355
- child.kill("SIGTERM");
356
- const hardKill = setTimeout(() => child.kill("SIGKILL"), SIGKILL_GRACE_MS);
357
- hardKill.unref?.();
358
- }, timeoutMs);
359
- timer.unref?.();
360
- child.on("error", (error) => {
523
+ let cancelTermination;
524
+ const finish = (code, spawnError) => {
525
+ if (settled)
526
+ return;
527
+ settled = true;
361
528
  clearTimeout(timer);
362
- resolvePromise({
363
- exit_code: null,
364
- timed_out: timedOut,
365
- spawn_error: error.message,
366
- output,
367
- ...(truncated ? { truncated: true } : {}),
529
+ cancelTermination?.();
530
+ const cleanup = timedOut ? owned.cleanup(stdioIncomplete) : undefined;
531
+ owned.release();
532
+ resolvePromise({ exit_code: code, timed_out: timedOut, output, ...(spawnError ? { spawn_error: spawnError } : {}), ...(truncated ? { truncated: true } : {}), ...(cleanup ? { cleanup } : {}) });
533
+ };
534
+ const beginTimeout = () => {
535
+ if (settled || timedOut)
536
+ return;
537
+ timedOut = true;
538
+ cancelTermination = beginOwnedProcessTermination(owned, () => { }, () => {
539
+ stdioIncomplete = !stdoutEnded || !stderrEnded;
540
+ child.stdout.destroy();
541
+ child.stderr.destroy();
542
+ child.stdin.destroy();
543
+ finish(owned.rootStatus());
368
544
  });
545
+ if (settled)
546
+ cancelTermination();
547
+ };
548
+ const timer = setTimeout(beginTimeout, timeoutMs);
549
+ child.on("error", (error) => {
550
+ if (error.code === "ETIMEDOUT")
551
+ beginTimeout();
552
+ else if (!timedOut)
553
+ finish(null, error.message);
369
554
  });
370
555
  child.on("close", (code) => {
371
- clearTimeout(timer);
372
- resolvePromise({
373
- exit_code: code,
374
- timed_out: timedOut,
375
- output,
376
- ...(truncated ? { truncated: true } : {}),
377
- });
556
+ if (timedOut && !owned.cleanup(false).cleanup_verified)
557
+ return;
558
+ finish(owned.rootExited() ? owned.rootStatus() : code);
378
559
  });
379
560
  });
380
561
  };
@@ -1 +1 @@
1
- {"version":3,"file":"allowlistedExec.js","sourceRoot":"","sources":["../../../src/shared/tooling/allowlistedExec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"allowlistedExec.js","sourceRoot":"","sources":["../../../src/shared/tooling/allowlistedExec.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { spawn, spawnSync, type StdioOptions } from "node:child_process";
2
+ import { type OwnedProcessCleanup } from "./ownedProcessLifecycle.js";
2
3
  export { resolveExecutableFile, type ExecutableLookupOptions } from "./resolveExecutable.js";
3
4
  export interface RunTrackedOptions {
4
5
  cwd?: string;
@@ -47,6 +48,8 @@ export interface RunTrackedResult {
47
48
  * ruled out.
48
49
  */
49
50
  signal?: string | null;
51
+ /** Observed owned-job cleanup/capture state on a bounded failure. */
52
+ cleanup?: OwnedProcessCleanup;
50
53
  }
51
54
  /**
52
55
  * Deadline for one fold-reachable tracked child. These spawns run inside the
@@ -99,7 +102,7 @@ export interface SpawnDeadlineMiss {
99
102
  elapsed_ms: number;
100
103
  /** Whether the child had already exited when the deadline fired. */
101
104
  child_exited: boolean;
102
- /** Whether the child outlived the SIGTERM grace and needed SIGKILL. */
105
+ /** Whether owned cleanup remained unsettled at the TERM grace and escalation was requested. */
103
106
  survived_grace: boolean;
104
107
  }
105
108
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"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"}