@lannguyensi/harness 0.39.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/dist/cli/approve/stdin-report.d.ts +42 -0
  3. package/dist/cli/approve/stdin-report.js +143 -0
  4. package/dist/cli/approve/stdin-report.js.map +1 -0
  5. package/dist/cli/approve/understanding.d.ts +20 -0
  6. package/dist/cli/approve/understanding.js +44 -0
  7. package/dist/cli/approve/understanding.js.map +1 -1
  8. package/dist/cli/diff/git.d.ts +5 -0
  9. package/dist/cli/diff/git.js +25 -3
  10. package/dist/cli/diff/git.js.map +1 -1
  11. package/dist/cli/doctor/codex.d.ts +8 -0
  12. package/dist/cli/doctor/codex.js +8 -1
  13. package/dist/cli/doctor/codex.js.map +1 -1
  14. package/dist/cli/doctor/format.js +23 -11
  15. package/dist/cli/doctor/format.js.map +1 -1
  16. package/dist/cli/doctor/index.d.ts +36 -0
  17. package/dist/cli/doctor/index.js +131 -29
  18. package/dist/cli/doctor/index.js.map +1 -1
  19. package/dist/cli/doctor/types.d.ts +26 -0
  20. package/dist/cli/dry-run.js +5 -0
  21. package/dist/cli/dry-run.js.map +1 -1
  22. package/dist/cli/explain.js +16 -3
  23. package/dist/cli/explain.js.map +1 -1
  24. package/dist/cli/index.js +109 -6
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/init/composer.js +10 -31
  27. package/dist/cli/init/composer.js.map +1 -1
  28. package/dist/cli/init/index.d.ts +18 -0
  29. package/dist/cli/init/index.js +28 -2
  30. package/dist/cli/init/index.js.map +1 -1
  31. package/dist/cli/init/interactive.d.ts +8 -0
  32. package/dist/cli/init/interactive.js +22 -1
  33. package/dist/cli/init/interactive.js.map +1 -1
  34. package/dist/cli/init/profiles.d.ts +2 -2
  35. package/dist/cli/init/profiles.js +11 -2
  36. package/dist/cli/init/profiles.js.map +1 -1
  37. package/dist/cli/init/templates.d.ts +1 -1
  38. package/dist/cli/init/templates.js +174 -4
  39. package/dist/cli/init/templates.js.map +1 -1
  40. package/dist/cli/list.js +3 -1
  41. package/dist/cli/list.js.map +1 -1
  42. package/dist/cli/pack/approve-escape.d.ts +19 -0
  43. package/dist/cli/pack/approve-escape.js +120 -0
  44. package/dist/cli/pack/approve-escape.js.map +1 -0
  45. package/dist/cli/pack/hook-bootstrap.d.ts +24 -0
  46. package/dist/cli/pack/hook-bootstrap.js +47 -1
  47. package/dist/cli/pack/hook-bootstrap.js.map +1 -1
  48. package/dist/cli/pack/hook-branch-protection.js +9 -1
  49. package/dist/cli/pack/hook-branch-protection.js.map +1 -1
  50. package/dist/cli/pack/hook-codex-post-tool-use.d.ts +25 -0
  51. package/dist/cli/pack/hook-codex-post-tool-use.js +160 -0
  52. package/dist/cli/pack/hook-codex-post-tool-use.js.map +1 -0
  53. package/dist/cli/pack/hook-codex-pre-tool-use.d.ts +1 -0
  54. package/dist/cli/pack/hook-codex-pre-tool-use.js +43 -10
  55. package/dist/cli/pack/hook-codex-pre-tool-use.js.map +1 -1
  56. package/dist/cli/pack/hook-codex-stop.js +1 -8
  57. package/dist/cli/pack/hook-codex-stop.js.map +1 -1
  58. package/dist/cli/pack/hook-post-tool-use.js +16 -131
  59. package/dist/cli/pack/hook-post-tool-use.js.map +1 -1
  60. package/dist/cli/pack/hook-pre-tool-use.js +69 -26
  61. package/dist/cli/pack/hook-pre-tool-use.js.map +1 -1
  62. package/dist/cli/pack/hook-stay-in-scope.js +63 -20
  63. package/dist/cli/pack/hook-stay-in-scope.js.map +1 -1
  64. package/dist/cli/pack/hook-track-active-claim.js +33 -9
  65. package/dist/cli/pack/hook-track-active-claim.js.map +1 -1
  66. package/dist/cli/pack/index.d.ts +2 -1
  67. package/dist/cli/pack/index.js +2 -1
  68. package/dist/cli/pack/index.js.map +1 -1
  69. package/dist/cli/pack/mutate.d.ts +19 -0
  70. package/dist/cli/pack/mutate.js +38 -0
  71. package/dist/cli/pack/mutate.js.map +1 -1
  72. package/dist/cli/pack/reseed.d.ts +19 -0
  73. package/dist/cli/pack/reseed.js +118 -0
  74. package/dist/cli/pack/reseed.js.map +1 -0
  75. package/dist/cli/pack/understanding-report-schema-hint.js +12 -1
  76. package/dist/cli/pack/understanding-report-schema-hint.js.map +1 -1
  77. package/dist/cli/pause/index.js +12 -3
  78. package/dist/cli/pause/index.js.map +1 -1
  79. package/dist/cli/session-start/index.d.ts +14 -0
  80. package/dist/cli/session-start/index.js +42 -2
  81. package/dist/cli/session-start/index.js.map +1 -1
  82. package/dist/cli/validate/checks.js +8 -0
  83. package/dist/cli/validate/checks.js.map +1 -1
  84. package/dist/policy-packs/builtin/branch-protection-runtime.d.ts +4 -2
  85. package/dist/policy-packs/builtin/branch-protection-runtime.js +4 -2
  86. package/dist/policy-packs/builtin/branch-protection-runtime.js.map +1 -1
  87. package/dist/policy-packs/builtin/branch-protection.d.ts +10 -1
  88. package/dist/policy-packs/builtin/branch-protection.js +17 -0
  89. package/dist/policy-packs/builtin/branch-protection.js.map +1 -1
  90. package/dist/policy-packs/builtin/understanding-before-execution-runtime.d.ts +197 -24
  91. package/dist/policy-packs/builtin/understanding-before-execution-runtime.js +342 -40
  92. package/dist/policy-packs/builtin/understanding-before-execution-runtime.js.map +1 -1
  93. package/dist/policy-packs/builtin/understanding-before-execution.d.ts +26 -1
  94. package/dist/policy-packs/builtin/understanding-before-execution.js +302 -17
  95. package/dist/policy-packs/builtin/understanding-before-execution.js.map +1 -1
  96. package/dist/policy-packs/registry.d.ts +22 -1
  97. package/dist/policy-packs/registry.js +19 -2
  98. package/dist/policy-packs/registry.js.map +1 -1
  99. package/dist/policy-packs/ux-compare.d.ts +14 -0
  100. package/dist/policy-packs/ux-compare.js +58 -0
  101. package/dist/policy-packs/ux-compare.js.map +1 -0
  102. package/dist/policy-packs/ux-drift-check.d.ts +27 -0
  103. package/dist/policy-packs/ux-drift-check.js +78 -0
  104. package/dist/policy-packs/ux-drift-check.js.map +1 -0
  105. package/dist/probes/mcp.d.ts +13 -0
  106. package/dist/probes/mcp.js +57 -0
  107. package/dist/probes/mcp.js.map +1 -1
  108. package/dist/runtime/approval-signing.d.ts +82 -0
  109. package/dist/runtime/approval-signing.js +275 -0
  110. package/dist/runtime/approval-signing.js.map +1 -0
  111. package/dist/runtime/intercept.js +62 -5
  112. package/dist/runtime/intercept.js.map +1 -1
  113. package/dist/runtime/ledger-add.js +5 -1
  114. package/dist/runtime/ledger-add.js.map +1 -1
  115. package/dist/runtime/pause-sentinel.js +14 -3
  116. package/dist/runtime/pause-sentinel.js.map +1 -1
  117. package/dist/runtime/recovery-git-commit.d.ts +22 -0
  118. package/dist/runtime/recovery-git-commit.js +284 -0
  119. package/dist/runtime/recovery-git-commit.js.map +1 -0
  120. package/dist/runtime/tool-name-aliases.d.ts +1 -0
  121. package/dist/runtime/tool-name-aliases.js +7 -1
  122. package/dist/runtime/tool-name-aliases.js.map +1 -1
  123. package/dist/schema/index.d.ts +53 -42
  124. package/dist/schema/policies.d.ts +56 -44
  125. package/dist/schema/policies.js +79 -9
  126. package/dist/schema/policies.js.map +1 -1
  127. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/cli/diff/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAO9E,SAAS,MAAM,CAAC,IAAc,EAAE,GAAW;IACzC,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;QAC/B,GAAG;QACH,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACrD,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,gBAAgB,CACxB,2BAA2B,GAAG,mCAAoC,GAAa,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAChG,cAAc,CACf,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAChE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAe,EAAE,GAAW;IAC5D,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAmC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAK,GAAa,CAAC,OAAO,CAAC;QAC9F,MAAM,IAAI,gBAAgB,CACxB,eAAe,GAAG,CAAC,eAAe,gBAAgB,GAAG,MAAM,OAAO,EAAE,EACpE,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAe,EAAE,OAAe;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAe,EACf,GAAW,EACX,OAAe;IAEf,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/cli/diff/git.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,14 @@ export interface RunCodexCheckOptions {
32
32
  */
33
33
  versionProbe?: (binary: string) => string | null;
34
34
  }
35
+ /**
36
+ * Resolve `binary` against `pathEnv`: absolute paths resolve to themselves
37
+ * (when they exist and are executable), everything else scans each `PATH`
38
+ * segment. Exported (task 7f8fb4bc) so `doctor/index.ts`'s `checkCli` and
39
+ * the lighter-weight `checkBinResolution` reuse this instead of a second,
40
+ * near-identical copy (the check:duplication fitness function flags that).
41
+ */
42
+ export declare function findOnPath(binary: string, pathEnv: string, isExecutable: (p: string) => boolean): string | null;
35
43
  export declare function runCodexTargetChecks(manifest: Manifest, opts: RunCodexCheckOptions): CodexTargetReport;
36
44
  export declare function countCodexDiagnostics(report: CodexTargetReport): {
37
45
  errorCount: number;
@@ -28,7 +28,14 @@ function defaultIsExecutable(p) {
28
28
  return false;
29
29
  }
30
30
  }
31
- function findOnPath(binary, pathEnv, isExecutable) {
31
+ /**
32
+ * Resolve `binary` against `pathEnv`: absolute paths resolve to themselves
33
+ * (when they exist and are executable), everything else scans each `PATH`
34
+ * segment. Exported (task 7f8fb4bc) so `doctor/index.ts`'s `checkCli` and
35
+ * the lighter-weight `checkBinResolution` reuse this instead of a second,
36
+ * near-identical copy (the check:duplication fitness function flags that).
37
+ */
38
+ export function findOnPath(binary, pathEnv, isExecutable) {
32
39
  if (path.isAbsolute(binary)) {
33
40
  return fs.existsSync(binary) && isExecutable(binary) ? binary : null;
34
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/cli/doctor/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/cli/doctor/codex.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,18 @@
1
1
  import { VERSION } from "../../version.js";
2
- function mcpLine(r, shallow) {
2
+ function mcpLines(r, shallow) {
3
3
  switch (r.outcome.kind) {
4
4
  case "healthy":
5
- return shallow
6
- ? ` ~ ${r.name} manifest-only (probe skipped)`
7
- : ` ${r.name} healthy in ${r.outcome.latencyMs}ms`;
8
- case "error":
9
- return ` ✗ ${r.name} FAILED: ${r.outcome.message}`;
5
+ return [
6
+ shallow
7
+ ? ` ~ ${r.name} manifest-only (probe skipped)`
8
+ : ` ✓ ${r.name} healthy in ${r.outcome.latencyMs}ms`,
9
+ ];
10
+ case "error": {
11
+ const out = [` ✗ ${r.name} FAILED: ${r.outcome.message}`];
12
+ if (r.outcome.pathHint)
13
+ out.push(` ${r.outcome.pathHint}`);
14
+ return out;
15
+ }
10
16
  case "no-response": {
11
17
  // Render distinct from `error` so a clean exit-0 ("config issue")
12
18
  // is not framed as a process crash. The visual marker stays ✗
@@ -14,12 +20,12 @@ function mcpLine(r, shallow) {
14
20
  const phase = r.outcome.phase === "initialize"
15
21
  ? "initialize"
16
22
  : `${r.outcome.verb ?? "verb"} call`;
17
- return ` ✗ ${r.name} no JSON-RPC response (process exited cleanly during ${phase})`;
23
+ return [` ✗ ${r.name} no JSON-RPC response (process exited cleanly during ${phase})`];
18
24
  }
19
25
  case "missing-verb":
20
- return ` ? ${r.name} unknown — no health verb declared`;
26
+ return [` ? ${r.name} unknown — no health verb declared`];
21
27
  case "disabled":
22
- return ` ✓ ${r.name} disabled (skipped)`;
28
+ return [` ✓ ${r.name} disabled (skipped)`];
23
29
  }
24
30
  }
25
31
  function describeStaleness(date) {
@@ -66,7 +72,7 @@ function formatToolsSection(report) {
66
72
  const out = ["", "Tools"];
67
73
  out.push(` MCP servers (${report.tools.mcp.length} declared)`);
68
74
  for (const m of report.tools.mcp)
69
- out.push(mcpLine(m, report.shallow));
75
+ out.push(...mcpLines(m, report.shallow));
70
76
  // Only render the version-check sub-block when at least one MCP server
71
77
  // declared `min_version`; an empty list otherwise would be noise.
72
78
  if (report.tools.mcpVersions.length > 0) {
@@ -81,6 +87,8 @@ function formatToolsSection(report) {
81
87
  for (const c of report.tools.cli) {
82
88
  const marker = c.status === "ok" ? "✓" : c.status === "warn" ? "⚠" : "✗";
83
89
  out.push(` ${marker} ${c.name} ${c.message}`);
90
+ if (c.pathHint)
91
+ out.push(` ${c.pathHint}`);
84
92
  }
85
93
  const skillsLine = report.tools.skillsEnabled.join(", ") || "(none)";
86
94
  out.push(` Skills (${report.tools.skillsEnabled.length} enabled${report.tools.skillsRequiredMissing.length === 0 ? ", all required by manifest" : `, ${report.tools.skillsRequiredMissing.length} required missing`})`);
@@ -169,10 +177,11 @@ function formatPoliciesSection(report) {
169
177
  // Both render ✗ here. Section stays silent when both lists are empty
170
178
  // (the healthy case is common; a noisy ✓ would dilute doctor's signal).
171
179
  function formatPolicyPacksSection(report) {
172
- const { unresolved, configIssues, versionGaps, solutionAcceptance } = report.policyPacks;
180
+ const { unresolved, configIssues, versionGaps, uxDrift, solutionAcceptance } = report.policyPacks;
173
181
  if (unresolved.length === 0 &&
174
182
  configIssues.length === 0 &&
175
183
  versionGaps.length === 0 &&
184
+ uxDrift.length === 0 &&
176
185
  solutionAcceptance.length === 0) {
177
186
  return [];
178
187
  }
@@ -190,6 +199,9 @@ function formatPolicyPacksSection(report) {
190
199
  out.push(` ⚠ ${gap.name}.min_version ${gap.message}`);
191
200
  out.push(` the pack runs in degraded mode; any \`config:\` key that requires the newer release is silently ignored. Upgrade the package-side bin or lower the declared \`min_version\`.`);
192
201
  }
202
+ for (const drift of uxDrift) {
203
+ out.push(` ⚠ ${drift.name}.config.${drift.fields.join("/")} ${drift.message}`);
204
+ }
193
205
  for (const d of solutionAcceptance) {
194
206
  if (d.severity === "error") {
195
207
  out.push(` ✗ ${d.path} ${d.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/cli/doctor/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/cli/doctor/format.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type McpProbe } from "../../probes/mcp.js";
2
+ import type { Manifest } from "../../schema/index.js";
2
3
  import { type GitIgnoreProbe } from "../validate/checks.js";
3
4
  import { type LoaderOptions } from "../loader.js";
4
5
  import { type RunCodexCheckOptions } from "./codex.js";
@@ -45,6 +46,41 @@ export interface DoctorOptions extends LoaderOptions {
45
46
  gitIgnoreProbe?: GitIgnoreProbe;
46
47
  }
47
48
  export { isDoctorTarget, KNOWN_DOCTOR_TARGETS };
49
+ /** One unresolved `tools.mcp[]` / `tools.cli[]` binary from `checkBinResolution`. */
50
+ export interface BinResolutionIssue {
51
+ kind: "mcp" | "cli";
52
+ name: string;
53
+ binary: string;
54
+ message: string;
55
+ /** PATH-shadow remediation, see `pathShadowHint`. */
56
+ pathHint?: string;
57
+ }
58
+ export interface BinResolutionReport {
59
+ issues: BinResolutionIssue[];
60
+ errorCount: number;
61
+ }
62
+ export interface CheckBinResolutionOptions {
63
+ pathEnv?: string;
64
+ npmBinExec?: NpmExec;
65
+ }
66
+ /**
67
+ * Lightweight, spawn-free bin-resolution check for `tools.mcp[]` /
68
+ * `tools.cli[]` (task 7f8fb4bc). Resolves each declared, enabled MCP
69
+ * binary and each REQUIRED CLI binary against PATH — the same rule
70
+ * `checkCli` and `doctor`'s MCP decoration use — WITHOUT the live
71
+ * health-verb spawn `doctor()` does for MCP servers. `harness init` uses
72
+ * this at the end of a fresh write so an unresolvable binary (including
73
+ * the PATH-shadow case: installed, but under a dir not on PATH) surfaces
74
+ * immediately, without the cost or side effects of actually starting
75
+ * every declared MCP server just to write a manifest.
76
+ *
77
+ * Optional CLI tools are intentionally excluded — mirroring `checkCli`'s
78
+ * warn-not-error treatment, an unresolved optional binary is not the
79
+ * "fresh install fails loudly" case this check exists for.
80
+ */
81
+ export declare function checkBinResolution(manifest: Manifest, opts?: CheckBinResolutionOptions): Promise<BinResolutionReport>;
82
+ /** Render `checkBinResolution`'s issues as human-readable lines for the `init` tail. */
83
+ export declare function formatBinResolutionIssues(report: BinResolutionReport): string[];
48
84
  /**
49
85
  * Declared-but-not-live policy pack check. `expandPolicyPacks` silently
50
86
  * skips a pack whose `source:` token is unrecognised or whose builtin
@@ -9,10 +9,11 @@ import { parsePackSource } from "../../policy-packs/source.js";
9
9
  import { resolveBuiltin } from "../../policy-packs/registry.js";
10
10
  import { checkPolicyPackConfigs } from "../../policy-packs/config-check.js";
11
11
  import { checkPolicyPackVersions } from "../../policy-packs/version-check.js";
12
+ import { checkPolicyPackUxDrift } from "../../policy-packs/ux-drift-check.js";
12
13
  import { DEFAULT_RUNTIME } from "../../policy-packs/runtime.js";
13
14
  import { checkPolicyRiskWithoutEnvScope, checkSolutionAcceptanceKnobIgnored, checkSolutionAcceptanceProducer, createDefaultGitIgnoreProbe, } from "../validate/checks.js";
14
15
  import { loadManifest } from "../loader.js";
15
- import { countCodexDiagnostics, runCodexTargetChecks, } from "./codex.js";
16
+ import { countCodexDiagnostics, findOnPath, runCodexTargetChecks, } from "./codex.js";
16
17
  import { checkNpmBinPath } from "./npm-bin-path.js";
17
18
  import { scanForRogueLedgers } from "./rogue-ledger.js";
18
19
  import { isDoctorTarget, KNOWN_DOCTOR_TARGETS, } from "./types.js";
@@ -34,34 +35,43 @@ function isExecutable(filePath) {
34
35
  return false;
35
36
  }
36
37
  }
37
- function checkCli(manifest, opts) {
38
+ /**
39
+ * PATH-shadow diagnosis (task 7f8fb4bc): a declared binary that resolves
40
+ * to "not found" might still exist under the resolved npm global bin dir
41
+ * (`npm prefix -g` + `/bin`), just not on the operator's PATH — the
42
+ * nvm-drift footgun the `npmGlobalBin` check (task 4ddd78ed) already
43
+ * detects independently. When that is the case, name the directory and
44
+ * tell the operator to add it, instead of leaving "not found" as the only
45
+ * signal (which reads as "not installed" and sends operators down the
46
+ * wrong remediation path — reinstalling a package that is already there).
47
+ * Returns undefined when `binaryToken` is already an absolute path (PATH
48
+ * is not the resolution mechanism for those) or when no candidate file
49
+ * exists under `npmBinDir`.
50
+ */
51
+ function pathShadowHint(binaryToken, npmBinDir) {
52
+ if (!npmBinDir || !binaryToken || path.isAbsolute(binaryToken))
53
+ return undefined;
54
+ const candidate = path.join(npmBinDir, path.basename(binaryToken));
55
+ if (fs.existsSync(candidate) && isExecutable(candidate)) {
56
+ return `found at ${candidate} but that directory is not on PATH — add it: export PATH="${npmBinDir}:$PATH"`;
57
+ }
58
+ return undefined;
59
+ }
60
+ function checkCli(manifest, opts, npmBinDir) {
38
61
  const out = [];
39
62
  const pathEnv = opts.pathEnv ?? process.env.PATH ?? "";
40
63
  const versionProbe = opts.versionProbe ?? (() => null);
41
64
  for (const cli of manifest.tools.cli) {
42
- let resolved;
43
- if (path.isAbsolute(cli.binary)) {
44
- resolved = fs.existsSync(cli.binary) && isExecutable(cli.binary) ? cli.binary : null;
45
- }
46
- else {
47
- resolved = null;
48
- for (const seg of pathEnv.split(path.delimiter)) {
49
- if (!seg)
50
- continue;
51
- const candidate = path.join(seg, cli.binary);
52
- if (fs.existsSync(candidate) && isExecutable(candidate)) {
53
- resolved = candidate;
54
- break;
55
- }
56
- }
57
- }
65
+ const resolved = findOnPath(cli.binary, pathEnv, isExecutable);
58
66
  if (!resolved) {
67
+ const hint = pathShadowHint(cli.binary, npmBinDir);
59
68
  out.push({
60
69
  name: cli.name,
61
70
  status: cli.required ? "error" : "warn",
62
71
  message: cli.required
63
72
  ? `required binary not found: ${cli.binary}`
64
73
  : `binary not found on PATH: ${cli.binary}`,
74
+ ...(hint !== undefined ? { pathHint: hint } : {}),
65
75
  });
66
76
  continue;
67
77
  }
@@ -182,6 +192,70 @@ function checkMcpVersions(manifest, opts) {
182
192
  // `compareVersions` aliases the shared helper to avoid renaming every
183
193
  // existing call site in this file.
184
194
  const compareVersions = compareNumericVersions;
195
+ /**
196
+ * Lightweight, spawn-free bin-resolution check for `tools.mcp[]` /
197
+ * `tools.cli[]` (task 7f8fb4bc). Resolves each declared, enabled MCP
198
+ * binary and each REQUIRED CLI binary against PATH — the same rule
199
+ * `checkCli` and `doctor`'s MCP decoration use — WITHOUT the live
200
+ * health-verb spawn `doctor()` does for MCP servers. `harness init` uses
201
+ * this at the end of a fresh write so an unresolvable binary (including
202
+ * the PATH-shadow case: installed, but under a dir not on PATH) surfaces
203
+ * immediately, without the cost or side effects of actually starting
204
+ * every declared MCP server just to write a manifest.
205
+ *
206
+ * Optional CLI tools are intentionally excluded — mirroring `checkCli`'s
207
+ * warn-not-error treatment, an unresolved optional binary is not the
208
+ * "fresh install fails loudly" case this check exists for.
209
+ */
210
+ export async function checkBinResolution(manifest, opts = {}) {
211
+ const pathEnv = opts.pathEnv ?? process.env.PATH ?? "";
212
+ const npmGlobalBin = await checkNpmBinPath({
213
+ ...(opts.npmBinExec !== undefined ? { exec: opts.npmBinExec } : {}),
214
+ pathEnv,
215
+ });
216
+ const npmBinDir = npmGlobalBin.binDir !== "" ? npmGlobalBin.binDir : undefined;
217
+ const issues = [];
218
+ for (const mcp of manifest.tools.mcp) {
219
+ if (mcp.enabled === false)
220
+ continue;
221
+ const binary = mcpBinary(mcp.command);
222
+ if (!binary || findOnPath(binary, pathEnv, isExecutable))
223
+ continue;
224
+ const hint = pathShadowHint(binary, npmBinDir);
225
+ issues.push({
226
+ kind: "mcp",
227
+ name: mcp.name,
228
+ binary,
229
+ message: `binary not found on PATH: ${binary}`,
230
+ ...(hint !== undefined ? { pathHint: hint } : {}),
231
+ });
232
+ }
233
+ for (const cli of manifest.tools.cli) {
234
+ if (!cli.required || findOnPath(cli.binary, pathEnv, isExecutable))
235
+ continue;
236
+ const hint = pathShadowHint(cli.binary, npmBinDir);
237
+ issues.push({
238
+ kind: "cli",
239
+ name: cli.name,
240
+ binary: cli.binary,
241
+ message: `required binary not found: ${cli.binary}`,
242
+ ...(hint !== undefined ? { pathHint: hint } : {}),
243
+ });
244
+ }
245
+ return { issues, errorCount: issues.length };
246
+ }
247
+ /** Render `checkBinResolution`'s issues as human-readable lines for the `init` tail. */
248
+ export function formatBinResolutionIssues(report) {
249
+ if (report.issues.length === 0)
250
+ return [];
251
+ const out = ["", "Unresolved binaries (harness doctor bin-resolution check):"];
252
+ for (const issue of report.issues) {
253
+ out.push(` ✗ [${issue.kind}] ${issue.name} ${issue.message}`);
254
+ if (issue.pathHint)
255
+ out.push(` ${issue.pathHint}`);
256
+ }
257
+ return out;
258
+ }
185
259
  function checkSkills(manifest, home) {
186
260
  const enabled = manifest.tools.skills.enabled;
187
261
  const required = manifest.tools.skills.required ?? [];
@@ -316,6 +390,10 @@ function buildPolicies(manifest) {
316
390
  // already enforces `producers: .min(1).optional()`, so a defined
317
391
  // array is guaranteed non-empty for any manifest that loaded.
318
392
  if (p.enforcement === "block" &&
393
+ // operator_only: true (task 2cc73f55) policies declare no
394
+ // requires: at all — there is no ledger_tag/within to go stale, so
395
+ // there is nothing for a producer to keep fresh.
396
+ p.requires !== undefined &&
319
397
  p.requires.within !== undefined &&
320
398
  (p.producers === undefined || p.producers.length === 0)) {
321
399
  const prefix = ledgerTagPrefix(p.requires.ledger_tag);
@@ -395,6 +473,11 @@ function buildPolicyPacks(manifest, versionProbe, gitIgnoreProbe) {
395
473
  actualVersion: gap.actualVersion,
396
474
  message: gap.message,
397
475
  }));
476
+ const uxDrift = checkPolicyPackUxDrift(manifest).map((drift) => ({
477
+ name: drift.packName,
478
+ fields: drift.fields,
479
+ message: drift.message,
480
+ }));
398
481
  // Same array as the producer check on purpose: countDiagnostics and the
399
482
  // renderers already tally / print `solutionAcceptance` by severity, so
400
483
  // the knob-ignored warning (task 24f6ceb9) inherits doctor parity with
@@ -403,7 +486,7 @@ function buildPolicyPacks(manifest, versionProbe, gitIgnoreProbe) {
403
486
  ...checkSolutionAcceptanceProducer(manifest),
404
487
  ...checkSolutionAcceptanceKnobIgnored(manifest, gitIgnoreProbe),
405
488
  ];
406
- return { unresolved, configIssues, versionGaps, solutionAcceptance };
489
+ return { unresolved, configIssues, versionGaps, uxDrift, solutionAcceptance };
407
490
  }
408
491
  function buildWorkflows(manifest) {
409
492
  const entries = manifest.workflows.map((wf) => {
@@ -576,6 +659,11 @@ function countDiagnostics(report) {
576
659
  // release are lost. Parallel to the hook-level version probe's
577
660
  // `status: warn`.
578
661
  warningCount += report.policyPacks.versionGaps.length;
662
+ // Ux/producers drift is always warn: the pack still functions with the
663
+ // stale wording, the operator is just missing a wording improvement.
664
+ // Fix is opt-in (`harness pack reseed <name>`), so this never escalates
665
+ // to an error the way an unresolved pack or a rejected config value does.
666
+ warningCount += report.policyPacks.uxDrift.length;
579
667
  for (const d of report.policyPacks.solutionAcceptance) {
580
668
  if (d.severity === "error")
581
669
  errorCount++;
@@ -612,6 +700,17 @@ export async function doctor(opts = {}) {
612
700
  const { manifest, resolved } = loadManifest(opts);
613
701
  const home = opts.homeOverride ?? opts.homeDir ?? os.homedir();
614
702
  const probe = opts.mcpProbe ?? new RealMcpProbe();
703
+ // Resolved ahead of the MCP / CLI checks (moved up from its previous
704
+ // spot near the end of this function) so both can use it for the
705
+ // PATH-shadow hint (task 7f8fb4bc). Shallow mode still skips the real
706
+ // `npm prefix -g` spawn.
707
+ const npmGlobalBin = opts.shallow
708
+ ? undefined
709
+ : await checkNpmBinPath({
710
+ ...(opts.npmBinExec !== undefined ? { exec: opts.npmBinExec } : {}),
711
+ ...(opts.pathEnv !== undefined ? { pathEnv: opts.pathEnv } : {}),
712
+ });
713
+ const npmBinDir = npmGlobalBin && npmGlobalBin.binDir !== "" ? npmGlobalBin.binDir : undefined;
615
714
  const mcpResults = opts.shallow
616
715
  ? manifest.tools.mcp.map((s) => ({
617
716
  name: s.name,
@@ -628,7 +727,19 @@ export async function doctor(opts = {}) {
628
727
  outcome: { kind: "disabled" },
629
728
  });
630
729
  });
631
- const cli = checkCli(manifest, opts);
730
+ // ENOENT-specific MCP failures get the same PATH-shadow diagnosis as
731
+ // CLI tools below: the declared binary may simply be installed
732
+ // somewhere not on PATH rather than genuinely missing.
733
+ for (const r of mcpResults) {
734
+ if (r.outcome.kind === "error" && r.outcome.enoent) {
735
+ const server = manifest.tools.mcp.find((s) => s.name === r.name);
736
+ const binary = server ? mcpBinary(server.command) : "";
737
+ const hint = pathShadowHint(binary, npmBinDir);
738
+ if (hint !== undefined)
739
+ r.outcome.pathHint = hint;
740
+ }
741
+ }
742
+ const cli = checkCli(manifest, opts, npmBinDir);
632
743
  const mcpVersions = checkMcpVersions(manifest, opts);
633
744
  const skills = checkSkills(manifest, home);
634
745
  const tools = {
@@ -663,15 +774,6 @@ export async function doctor(opts = {}) {
663
774
  ? { fsInterface: opts.rogueLedgerScanOptions.fsInterface }
664
775
  : {}),
665
776
  });
666
- // Shallow mode skips real spawns: the npm-bin probe shells out to
667
- // `npm prefix -g` which costs ~30ms and breaks the shallow timing
668
- // budget. Mirrors how MCP probes degrade above.
669
- const npmGlobalBin = opts.shallow
670
- ? undefined
671
- : await checkNpmBinPath({
672
- ...(opts.npmBinExec !== undefined ? { exec: opts.npmBinExec } : {}),
673
- ...(opts.pathEnv !== undefined ? { pathEnv: opts.pathEnv } : {}),
674
- });
675
777
  const partial = {
676
778
  manifestPath: resolved.base,
677
779
  manifestVersion: manifest.version,