@lannguyensi/harness 0.25.1 → 0.26.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 (68) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/cli/apply/apply.d.ts +11 -0
  3. package/dist/cli/apply/apply.js +11 -0
  4. package/dist/cli/apply/apply.js.map +1 -1
  5. package/dist/cli/event-input.d.ts +28 -0
  6. package/dist/cli/event-input.js +72 -0
  7. package/dist/cli/event-input.js.map +1 -0
  8. package/dist/cli/explain-action.d.ts +20 -0
  9. package/dist/cli/explain-action.js +27 -0
  10. package/dist/cli/explain-action.js.map +1 -0
  11. package/dist/cli/index.js +76 -10
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/cli/init/interactive.js +10 -3
  14. package/dist/cli/init/interactive.js.map +1 -1
  15. package/dist/cli/pack/hook-branch-protection.js +1 -1
  16. package/dist/cli/pack/hook-branch-protection.js.map +1 -1
  17. package/dist/cli/pack/hook-codex-pre-tool-use.js +1 -1
  18. package/dist/cli/pack/hook-codex-pre-tool-use.js.map +1 -1
  19. package/dist/cli/pack/hook-post-tool-use.js +1 -1
  20. package/dist/cli/pack/hook-post-tool-use.js.map +1 -1
  21. package/dist/cli/pack/hook-pre-tool-use.d.ts +8 -0
  22. package/dist/cli/pack/hook-pre-tool-use.js +3 -1
  23. package/dist/cli/pack/hook-pre-tool-use.js.map +1 -1
  24. package/dist/cli/pack/hook-track-active-claim.js +1 -1
  25. package/dist/cli/pack/hook-track-active-claim.js.map +1 -1
  26. package/dist/cli/{pack/pause-check.d.ts → pause-check.d.ts} +1 -1
  27. package/dist/cli/{pack/pause-check.js → pause-check.js} +14 -11
  28. package/dist/cli/pause-check.js.map +1 -0
  29. package/dist/cli/policy/intercept.d.ts +5 -0
  30. package/dist/cli/policy/intercept.js +21 -0
  31. package/dist/cli/policy/intercept.js.map +1 -1
  32. package/dist/cli/resolve-env.d.ts +32 -0
  33. package/dist/cli/resolve-env.js +47 -0
  34. package/dist/cli/resolve-env.js.map +1 -0
  35. package/dist/cli/test-risk.d.ts +26 -0
  36. package/dist/cli/test-risk.js +34 -0
  37. package/dist/cli/test-risk.js.map +1 -0
  38. package/dist/runtime/action-envelope.d.ts +64 -0
  39. package/dist/runtime/action-envelope.js +46 -0
  40. package/dist/runtime/action-envelope.js.map +1 -0
  41. package/dist/runtime/environment-resolver.d.ts +36 -0
  42. package/dist/runtime/environment-resolver.js +138 -0
  43. package/dist/runtime/environment-resolver.js.map +1 -0
  44. package/dist/runtime/home-dir.js +1 -1
  45. package/dist/runtime/home-dir.js.map +1 -1
  46. package/dist/runtime/index.d.ts +4 -0
  47. package/dist/runtime/index.js +4 -0
  48. package/dist/runtime/index.js.map +1 -1
  49. package/dist/runtime/kube-context.d.ts +16 -0
  50. package/dist/runtime/kube-context.js +63 -0
  51. package/dist/runtime/kube-context.js.map +1 -0
  52. package/dist/runtime/risk-classifier.d.ts +38 -0
  53. package/dist/runtime/risk-classifier.js +121 -0
  54. package/dist/runtime/risk-classifier.js.map +1 -0
  55. package/dist/schema/environments.d.ts +215 -0
  56. package/dist/schema/environments.js +101 -0
  57. package/dist/schema/environments.js.map +1 -0
  58. package/dist/schema/index.d.ts +408 -0
  59. package/dist/schema/index.js +8 -0
  60. package/dist/schema/index.js.map +1 -1
  61. package/dist/schema/policies.d.ts +139 -0
  62. package/dist/schema/policies.js +39 -0
  63. package/dist/schema/policies.js.map +1 -1
  64. package/dist/schema/risk.d.ts +131 -0
  65. package/dist/schema/risk.js +87 -0
  66. package/dist/schema/risk.js.map +1 -0
  67. package/package.json +1 -1
  68. package/dist/cli/pack/pause-check.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.26.0] - 2026-05-22
11
+
12
+ **Headline: the Risk Gate's manifest vocabulary and first four runtime stages.** Phase 7 lands the schema for risk classification and environment resolution, the Action Envelope, the static Risk Classifier, and the Context Resolver, exposed through three new read-only debug verbs (`harness explain-action`, `harness test-risk`, `harness resolve-env`). Nothing is wired into the live `policy intercept` gate yet, that is Phase 7 #5 onward, so a manifest written for 0.25.2 still parses and behaves byte-identically. Alongside the Risk Gate groundwork, `harness policy intercept` now honours the pause sentinel, closing a gap where the preflight and repository gates kept firing while harness was paused, exactly when an operator most needs the kill switch. **Operator action**: none; re-run `npm i -g @lannguyensi/harness` to upgrade.
13
+
14
+ ### Added
15
+
16
+ - **Phase 7 #4: Environment resolution** (agent-tasks/0be1de5c). Third runtime sub-task of the Risk Gate. Adds the Context Resolver, the stage that reads the `environments:` schema vocabulary shipped in Phase 7 #1. A pure `resolveEnvironment(envelope, resolvers, signalInputs)` in `src/runtime/environment-resolver.ts` evaluates each `environments.resolvers[]` entry against an Action Envelope plus ambient signal inputs and returns an `EnvironmentResolution` (`{ name, confidence, signals, resolver }`). Per-signal-kind match semantics, deferred by the #1 anchor, are now defined: `branch_patterns` and `kube_namespace_patterns` are `*`-globs, `kube_context_patterns` are regexes, `env_var_patterns` are substrings of the variable's value. Signals within a resolver are OR-ed. When resolvers disagree the most-dangerous environment wins (`production > staging > dev > local`); signals from every resolver asserting the winning environment are unioned for explainability. Per "unknown is not safe", an action no resolver matches resolves to `name: "unknown"`, not a safe default. A new `src/runtime/kube-context.ts` reads `~/.kube/config` best-effort for the current context and namespace (never throws). New debug verb `harness resolve-env <event.json>` builds the envelope, resolves the environment against the manifest (`--config`), and prints the result (YAML, or `--json`). No existing behaviour changes: `harness policy intercept` is not rewired, that is Phase 7 #5. Covered by `tests/runtime/environment-resolver.test.ts`, `tests/runtime/kube-context.test.ts`, and `tests/cli/resolve-env.test.ts`.
17
+
18
+ - **Phase 7 #3: Static risk classification** (agent-tasks/ce784625). Second runtime sub-task of the Risk Gate. Adds the Risk Classifier, the first stage to read the `risk:` schema vocabulary shipped in Phase 7 #1. A pure `classifyRisk(envelope, classifiers)` in `src/runtime/risk-classifier.ts` regex-matches the manifest's `risk.classifiers[]` against an Action Envelope and returns a `RiskProfile` (`{ classified, severity, categories, reversible, confidence, reasons }`). Multiple matched patterns compose: highest severity wins, categories union, one `reasons` line per hit. `reversible` is derived from categories, `false` when any of `irreversible_action` / `data_loss` / `destructive` is present. Per the "unknown is not safe" principle, an action no pattern matches yields an honest unclassified profile (`classified: false`, `severity: null`), deliberately not a low/zero-risk one, so the Phase 7 #5 evaluator can gate on it. New debug verb `harness test-risk <event.json>` builds the envelope, classifies it against the manifest (`--config`), and prints the profile (YAML, or `--json`). The tool-event file front end (read, JSON guards, envelope build) is factored into a shared `src/cli/event-input.ts` used by both `explain-action` and `test-risk`. No existing behaviour changes: `harness policy intercept` is not rewired to classify, that is Phase 7 #5. Covered by `tests/runtime/risk-classifier.test.ts` and `tests/cli/test-risk.test.ts`.
19
+ - **Phase 7 #2: Action Envelope MVP** (agent-tasks/c1709e04). First runtime sub-task of the Risk Gate. Introduces the Action Envelope as a first-class data structure: a `buildActionEnvelope` function in `src/runtime/action-envelope.ts` normalizes a raw `ToolEvent` (the Claude Code PreToolUse hook payload) into a stable `{ event, tool, raw_input, session{id,repo,branch,task_id}, runtime{cwd,user,host}, timestamp }` shape, so the downstream Risk Gate stages (Risk Classifier #3, Context Resolver #4, Policy Evaluator #5) consume one fixed shape instead of re-parsing a runtime payload. The builder is pure: cwd, git context, user, host, and timestamp arrive via an injected `EnvelopeContext`, the same resolved-by-the-wrapper pattern `intercept()` uses. A sparse or malformed event never throws, absent fields become `""` (or `null` for `raw_input`). New debug verb `harness explain-action <event.json>` reads a tool-event JSON file and prints the envelope (YAML, or `--json`); a missing, malformed, or non-object file exits `EX_NOINPUT`. No existing behaviour changes: `harness policy intercept` is not rewired to build or use the envelope, that is Phase 7 #5. Covered by `tests/runtime/action-envelope.test.ts` and `tests/cli/explain-action.test.ts`.
20
+ - **Phase 7 #1 anchor: Risk Gate manifest vocabulary** (agent-tasks/9f7ce9e4). The anchor sub-task for Phase 7 lands the schema vocabulary for the Risk Gate, additive on `version: 1`, with no runtime behaviour. Three new manifest surfaces parse and validate: `risk:` (`classifiers[]`, each binding a tool to regex `patterns[]` that map to a closed `categories` enum and an ordered `severity` scale), `environments:` (`resolvers[]`, each asserting one environment from branch / env-var / kube-context / kube-namespace signals), and an optional `policy.when:` block (`risk.severity_at_least`, `risk.category_in`, `environment.name`, `action.reversible`). Validation covers duplicate-name rejection, `.strict()` entry shapes, regex validation of classifier patterns, closed category / severity / environment enums, an at-least-one-signal rule on resolvers, and an at-least-one-clause rule on `when:`. Nothing reads these keys yet: `harness policy intercept` still matches on `trigger:` alone, and a `when:` block is parsed but inert. The Risk Classifier (#3), Context Resolver (#4), `when:` evaluator and `require_approval` decision (#5), and `PreToolUse` enforcement (#6) wire the runtime in later sub-tasks. The architectural split is settled and documented: the Risk Gate lives entirely inside harness layered onto the Phase 4 `policy intercept` runtime, `agent-grounding` stays the evidence backend and gains no risk-gate code. New canonical reference `docs/risk-gate.md` (target architecture, manifest reference, decision model, resolved open questions); `docs/ROADMAP.md` Phase 7 gains the six-sub-task decomposition. `docs/examples/full-manifest.yaml` carries a worked `dangerous-shell` classifier and `production-signals` resolver, covered by the byte-for-byte `describe` golden. Five invalid fixtures (`19`-`23`) and a dedicated schema test block cover the new validation paths. A manifest written for `0.25.2` parses byte-identically: both keys default to empty.
21
+
22
+ ### Changed
23
+
24
+ - **Internal: the `pause-check` helper moved from `src/cli/pack/` to the `src/cli/` root** (agent-tasks/ef516cda). `checkPauseFromLoader` was authored as a pack-hook helper and lived under `cli/pack/`. The `harness policy intercept` pause-sentinel fix in this release made `cli/policy/intercept.ts` a consumer too, so the helper became genuinely cross-layer and the old location forced `intercept.ts` to reach sideways into the pack layer for a sibling concern. The file now sits at `src/cli/pause-check.ts`; all six consumers (the five pack hooks plus `policy/intercept.ts`) import `../pause-check.js`. Pure relocation, no behaviour change.
25
+
26
+ ### Fixed
27
+
28
+ - **`harness policy intercept` now honours the pause sentinel** (agent-tasks/1cec399e). The preflight / repository gate and every other policy-layer hook routed through `harness policy intercept` kept firing while harness was paused, blocking Bash commands inside an active, unexpired pause window. `harness pause` is documented (`docs/for-humans.md`) as making every PreToolUse / PostToolUse hook dormant, and the pack hooks (`understanding-before-execution`, `branch-protection`) already honoured it via `checkPauseFromLoader()`. `runInterceptCli` in `src/cli/policy/intercept.ts` did not: it went straight from stdin parse to `loadManifest()` to policy evaluation with no pause check. This was especially wrong because the documented primary use of pause is lockout recovery, the exact scenario where a wedged preflight or grounding gate is what the operator is trying to escape. `runInterceptCli` now calls `checkPauseFromLoader()` immediately after parsing the event JSON and BEFORE manifest load (so the bypass holds even when the manifest itself is the broken thing), mirroring `hook-pre-tool-use.ts`. While paused it emits the standard `harness policy intercept: PAUSED ...` stderr notice and allows without evaluating; an expired sentinel auto-resumes and evaluation continues normally. `InterceptCliOptions` gains a test-injection `generatedDir`. Covered by a new `pause -> policy intercept hook -> resume` pair-test (plus an auto-expiry case) in `tests/cli/pause-hook-integration.test.ts`.
29
+
30
+ ## [0.25.2] - 2026-05-20
31
+
32
+ **Headline: three patch fixes from post-v0.25.1 dogfooding.** `harness init --interactive` wire-now no longer misreports an idempotent `settings.json` merge as a failure, so an operator re-running the installer against an already-wired runtime is no longer sent looping through redundant `harness apply` commands. A wall-clock-flaky `pause-hook-integration` test that intermittently dropped `harness preflight` confidence and blocked release pushes is deflaked. And the `~/.claude/` legacy-fallback deprecation warning no longer claims the fallback was removed in v0.25.0, a version that shipped with it intact. **Operator action**: none; re-run `npm i -g @lannguyensi/harness` to upgrade.
33
+
34
+ ### Fixed
35
+
36
+ - **`pause-hook-integration` auto-expiry test is deterministic, no longer wall-clock flaky** (agent-tasks/8fc70e57, friction #17). The `tests/cli/pause-hook-integration.test.ts` "auto-expires past the `--for` window" test paused harness with a 1s `--for` window, then bridged the gap to the hook fire with a real `setTimeout` (~1100ms) before asserting the sentinel had expired. `pause()` writes `expiresAt` off the wall clock and the PreToolUse hook checks expiry against the wall clock, but `setTimeout` counts monotonic time; on a host whose wall clock drifts relative to the monotonic timer (WSL2, a loaded CI runner) the ~100ms margin could read the sentinel as still active, short-circuit the hook to allow, and flake `res.blocked`. Observed twice on 2026-05-20, once dropping `harness preflight` confidence to 0.59 and blocking a release-branch push. `PackHookPreToolUseOptions` gains an optional `now` (test injection) threaded into the pause-check `now` seam that `checkPauseFromLoader` / `maybeAnnouncePause` / `readSentinel` already accept; the test now pauses and fires the hook off a single injected clock with no real sleep. No runtime behaviour change: `now` defaults to `new Date()` exactly as before.
37
+ - **`harness init --interactive` wire-now no longer misreports an idempotent `settings.json` merge as a failure** (agent-tasks/700636f4). When the wire-now step's `--target --merge` produced content byte-identical to the existing `settings.json` (an idempotent re-apply where the runtime was already wired), `apply()` correctly wrote nothing and returned `targetWritten: false`. Two consumers read `!targetWritten` as "not wired": the interactive wizard's `wireRuntime()` printed "Wire-now did not write ... Retry manually", and the `harness apply` Next-steps hint printed "Nothing is wired into Claude Code yet" and recommended another apply, looping the operator through redundant apply commands against an already-correct file. The root cause is that `targetWritten` is tri-state collapsed into a boolean: false covers both the already-in-sync success case and the `target-exists-refuse` failure case. `ApplyResult` gains an explicit `targetInSync` flag, true when the target holds the merged content after the run (written this run or already byte-identical), false only on `target-exists-refuse`. Both consumers now treat `targetWritten || targetInSync` as wired and report an idempotent merge as "wired into `<path>` (already in sync)". The merge logic in `apply()` is unchanged; only the success/failure classification in the two consumers was wrong. New regression tests cover `apply()` returning `applied` with `targetWritten:false` and `targetInSync:true`, the `harness apply` CLI not printing "Nothing is wired" against an in-sync target, and the wizard reporting a re-run wire-now as wired.
38
+ - **`resolveHomeDir` legacy-fallback warning no longer claims a stale removed-in version** (agent-tasks/4fb266a1). The `~/.claude/` legacy-fallback deprecation warning in `src/runtime/home-dir.ts` read "The legacy fallback is removed in v0.25.0", text written back in v0.24.0 anticipating the removal. v0.25.0 shipped with the legacy fallback intentionally intact, so the warning told operators on a legacy install that the fallback was already gone in a version they might be running. The warning now reads "will be removed in a future release" with no hardcoded version, and a regression test asserts it names no specific `removed in vX` version. The same stale v0.25.0 claim is also corrected in `docs/migration/v0.24.0-home-dir.md` and `docs/ROADMAP.md`. No behaviour change.
39
+
10
40
  ## [0.25.1] - 2026-05-20
11
41
 
12
42
  **Headline: `harness init --interactive` works again on migrated installs.** A patch for the one regression in v0.25.0's interactive installer: on an install whose state was migrated to `~/.harness/` (v0.24.0), the wizard probed the legacy `~/.claude/` path, mis-reported the manifest as absent, prompted for the wrong path, and then refused to write, ignoring `--force`. `detect()` now resolves the manifest through `resolveHomeDir()` like the rest of harness, and `--force` is threaded into the wizard. **Operator action**: `npm i -g @lannguyensi/harness` to upgrade; no manifest or config changes.
@@ -112,6 +112,17 @@ export interface ApplyResult {
112
112
  targetPath?: string;
113
113
  /** Whether the target file was written this run. */
114
114
  targetWritten?: boolean;
115
+ /**
116
+ * Set when --target was passed: whether the target file holds the
117
+ * merged/generated settings after this run. True when the file was
118
+ * written this run OR was already byte-identical (an idempotent
119
+ * re-apply); false only when the target exists and apply refused to
120
+ * touch it (`target-exists-refuse`). Distinct from `targetWritten`,
121
+ * which is false in BOTH the already-in-sync and the refused cases —
122
+ * callers that need "is the target correctly wired?" must read this,
123
+ * not `!targetWritten`.
124
+ */
125
+ targetInSync?: boolean;
115
126
  /**
116
127
  * Human-readable one-liner describing the merge outcome, e.g.
117
128
  * `merged into /path: replaced 1 owned key (hooks), preserved 4 other keys`.
@@ -380,6 +380,7 @@ export async function apply(opts = {}) {
380
380
  lockPath,
381
381
  targetPath,
382
382
  targetWritten: false,
383
+ targetInSync: false,
383
384
  };
384
385
  }
385
386
  }
@@ -512,6 +513,9 @@ export async function apply(opts = {}) {
512
513
  if (targetPath) {
513
514
  result.targetPath = targetPath;
514
515
  result.targetWritten = false;
516
+ // Dry run writes nothing, so "in sync" reflects the current
517
+ // on-disk state: in sync iff the merge would be a no-op.
518
+ result.targetInSync = !targetChanged;
515
519
  if (targetMergeSummary !== undefined)
516
520
  result.targetMergeSummary = targetMergeSummary;
517
521
  }
@@ -556,6 +560,9 @@ export async function apply(opts = {}) {
556
560
  if (targetPath) {
557
561
  result.targetPath = targetPath;
558
562
  result.targetWritten = false;
563
+ // `no-changes` is reached only when targetChanged is false, i.e.
564
+ // the target already holds the merged content: in sync.
565
+ result.targetInSync = true;
559
566
  }
560
567
  if (codexInstallPlan)
561
568
  result.codexConfigInstall = codexInstallOutcome(codexInstallPlan);
@@ -626,6 +633,10 @@ export async function apply(opts = {}) {
626
633
  if (targetPath) {
627
634
  result.targetPath = targetPath;
628
635
  result.targetWritten = targetWritten;
636
+ // Reached the write phase without refusing the target: the file now
637
+ // holds the merged content, whether written this run (targetChanged)
638
+ // or already byte-identical.
639
+ result.targetInSync = true;
629
640
  if (targetMergeSummary !== undefined)
630
641
  result.targetMergeSummary = targetMergeSummary;
631
642
  }
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/cli/apply/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/cli/apply/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type ActionEnvelope, type GitRepoContext, type ToolEvent } from "../runtime/index.js";
2
+ /** Injectable seams so callers (and tests) can make resolution deterministic. */
3
+ export interface EventInputSeams {
4
+ /** Override the envelope timestamp. */
5
+ now?: Date;
6
+ /** Override the resolved host name. */
7
+ host?: string;
8
+ /** Override the resolved OS user. */
9
+ user?: string;
10
+ /** Override git-context resolution. */
11
+ resolveGit?: (cwd: string) => GitRepoContext;
12
+ /** Override the cwd fallback used when the event omits `cwd`. */
13
+ cwdFallback?: string;
14
+ }
15
+ export interface LoadedEvent {
16
+ event: ToolEvent;
17
+ envelope: ActionEnvelope;
18
+ }
19
+ /**
20
+ * Read a tool-event JSON file and build its Action Envelope.
21
+ *
22
+ * Throws `HarnessExitError(EX_NOINPUT)` when the file is missing, is not
23
+ * valid JSON, or does not decode to a JSON object. A well-formed but
24
+ * sparse event (e.g. `{}`) is accepted: the envelope builder fills
25
+ * absent fields with empty values rather than throwing. `verb` only
26
+ * prefixes the error messages so the operator sees which command failed.
27
+ */
28
+ export declare function loadEventEnvelope(eventPath: string, seams?: EventInputSeams, verb?: string): LoadedEvent;
@@ -0,0 +1,72 @@
1
+ // Shared tool-event input handling for the Risk Gate debug verbs
2
+ // (`harness explain-action`, `harness test-risk`).
3
+ //
4
+ // Both verbs take a tool-event JSON file path, apply the same
5
+ // not-found / malformed / non-object guards, resolve the same ambient
6
+ // `EnvelopeContext` (git, host, user, now), and build the Action
7
+ // Envelope. This module is that shared front end so the two verbs stay
8
+ // byte-identical in how they read and normalize their input.
9
+ import * as fs from "node:fs";
10
+ import * as os from "node:os";
11
+ import { buildActionEnvelope, resolveGitContext, } from "../runtime/index.js";
12
+ import { EX_NOINPUT, HarnessExitError } from "./exit-codes.js";
13
+ function safeUser() {
14
+ try {
15
+ return os.userInfo().username;
16
+ }
17
+ catch {
18
+ return "";
19
+ }
20
+ }
21
+ function safeHost() {
22
+ try {
23
+ return os.hostname();
24
+ }
25
+ catch {
26
+ return "";
27
+ }
28
+ }
29
+ /**
30
+ * Read a tool-event JSON file and build its Action Envelope.
31
+ *
32
+ * Throws `HarnessExitError(EX_NOINPUT)` when the file is missing, is not
33
+ * valid JSON, or does not decode to a JSON object. A well-formed but
34
+ * sparse event (e.g. `{}`) is accepted: the envelope builder fills
35
+ * absent fields with empty values rather than throwing. `verb` only
36
+ * prefixes the error messages so the operator sees which command failed.
37
+ */
38
+ export function loadEventEnvelope(eventPath, seams = {}, verb = "explain-action") {
39
+ let raw;
40
+ try {
41
+ raw = fs.readFileSync(eventPath, "utf8");
42
+ }
43
+ catch {
44
+ throw new HarnessExitError(`${verb}: event file not found or unreadable: ${eventPath}`, EX_NOINPUT);
45
+ }
46
+ let parsed;
47
+ try {
48
+ parsed = JSON.parse(raw);
49
+ }
50
+ catch (err) {
51
+ throw new HarnessExitError(`${verb}: malformed event JSON in ${eventPath}: ${err.message}`, EX_NOINPUT);
52
+ }
53
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
54
+ const got = parsed === null ? "null" : Array.isArray(parsed) ? "array" : typeof parsed;
55
+ throw new HarnessExitError(`${verb}: event JSON must be an object, got ${got}`, EX_NOINPUT);
56
+ }
57
+ const event = parsed;
58
+ const fallbackCwd = seams.cwdFallback ?? process.cwd();
59
+ const cwd = typeof event.cwd === "string" && event.cwd.length > 0
60
+ ? event.cwd
61
+ : fallbackCwd;
62
+ const resolveGit = seams.resolveGit ?? resolveGitContext;
63
+ const envelope = buildActionEnvelope(event, {
64
+ cwd,
65
+ git: resolveGit(cwd),
66
+ user: seams.user ?? safeUser(),
67
+ host: seams.host ?? safeHost(),
68
+ now: seams.now ?? new Date(),
69
+ });
70
+ return { event, envelope };
71
+ }
72
+ //# sourceMappingURL=event-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-input.js","sourceRoot":"","sources":["../../src/cli/event-input.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { ActionEnvelope } from "../runtime/index.js";
2
+ import { type EventInputSeams } from "./event-input.js";
3
+ export interface ExplainActionOptions extends EventInputSeams {
4
+ /** Path to the tool-event JSON file. */
5
+ eventPath: string;
6
+ /** Emit JSON instead of YAML. */
7
+ json?: boolean;
8
+ }
9
+ export interface ExplainActionResult {
10
+ output: string;
11
+ envelope: ActionEnvelope;
12
+ }
13
+ /**
14
+ * Build and render the Action Envelope for a tool-event JSON file.
15
+ *
16
+ * Throws `HarnessExitError(EX_NOINPUT)` when the file is missing, is not
17
+ * valid JSON, or does not decode to a JSON object (see
18
+ * `loadEventEnvelope`). A well-formed but sparse event is accepted.
19
+ */
20
+ export declare function explainAction(opts: ExplainActionOptions): ExplainActionResult;
@@ -0,0 +1,27 @@
1
+ // Phase 7 #2 — `harness explain-action` CLI entrypoint.
2
+ //
3
+ // Debug verb for the Risk Gate. Reads a tool-event JSON file (the
4
+ // Claude Code PreToolUse hook payload shape), builds the Action
5
+ // Envelope, and prints it. This is the inspection surface for the
6
+ // envelope normalization that Phase 7 #3-#5 build the classifier,
7
+ // resolver, and policy evaluator on top of.
8
+ //
9
+ // File read, JSON guards, and envelope build live in the shared
10
+ // `event-input` front end; this module only renders the result.
11
+ import { stringify as stringifyYaml } from "yaml";
12
+ import { loadEventEnvelope } from "./event-input.js";
13
+ /**
14
+ * Build and render the Action Envelope for a tool-event JSON file.
15
+ *
16
+ * Throws `HarnessExitError(EX_NOINPUT)` when the file is missing, is not
17
+ * valid JSON, or does not decode to a JSON object (see
18
+ * `loadEventEnvelope`). A well-formed but sparse event is accepted.
19
+ */
20
+ export function explainAction(opts) {
21
+ const { envelope } = loadEventEnvelope(opts.eventPath, opts, "explain-action");
22
+ const output = opts.json
23
+ ? `${JSON.stringify(envelope, null, 2)}\n`
24
+ : stringifyYaml(envelope, { lineWidth: 0 });
25
+ return { output, envelope };
26
+ }
27
+ //# sourceMappingURL=explain-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explain-action.js","sourceRoot":"","sources":["../../src/cli/explain-action.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,kEAAkE;AAClE,gEAAgE;AAChE,kEAAkE;AAClE,kEAAkE;AAClE,4CAA4C;AAC5C,EAAE;AACF,gEAAgE;AAChE,gEAAgE;AAEhE,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAwB,MAAM,kBAAkB,CAAC;AAc3E;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAA0B;IACtD,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI;QACtB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;QAC1C,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
package/dist/cli/index.js CHANGED
@@ -41,6 +41,9 @@ import { doctor, isDoctorTarget, KNOWN_DOCTOR_TARGETS } from "./doctor/index.js"
41
41
  import { format as formatDoctor } from "./doctor/format.js";
42
42
  import { EX_FAIL, EX_USAGE, HarnessExitError } from "./exit-codes.js";
43
43
  import { explain } from "./explain.js";
44
+ import { explainAction } from "./explain-action.js";
45
+ import { testRisk } from "./test-risk.js";
46
+ import { resolveEnv } from "./resolve-env.js";
44
47
  import { detect as detectInit } from "./init/detect.js";
45
48
  import { init, isTemplate, KNOWN_TEMPLATES } from "./init/index.js";
46
49
  import { runInteractive } from "./init/interactive.js";
@@ -557,12 +560,20 @@ export function buildProgram(opts = {}) {
557
560
  for (const f of changedFiles) {
558
561
  stdout(` ${f.path}\n`);
559
562
  }
560
- if (result.targetWritten && result.targetPath) {
561
- if (result.targetMergeSummary) {
562
- stdout(`${result.targetMergeSummary}\n`);
563
+ if (result.targetPath && (result.targetWritten || result.targetInSync)) {
564
+ if (result.targetWritten) {
565
+ if (result.targetMergeSummary) {
566
+ stdout(`${result.targetMergeSummary}\n`);
567
+ }
568
+ else {
569
+ stdout(`wrote target: ${result.targetPath}\n`);
570
+ }
563
571
  }
564
572
  else {
565
- stdout(`wrote target: ${result.targetPath}\n`);
573
+ // Idempotent re-apply: the merge was a no-op because the
574
+ // target already held the merged content. Report it as
575
+ // success, not silence.
576
+ stdout(`target already in sync: ${result.targetPath}\n`);
566
577
  }
567
578
  }
568
579
  if (result.codexConfigInstall?.written) {
@@ -573,11 +584,13 @@ export function buildProgram(opts = {}) {
573
584
  }
574
585
  stdout(`harness.lock written to ${result.lockPath}\n`);
575
586
  if (!options.quiet) {
576
- // The hint passes `targetPath` only when the target was
577
- // actually written this run. On a re-apply where the target
578
- // is already in sync (`targetWritten: false`), fall back to
579
- // the three-option block so the user sees a real next step
580
- // instead of an ambiguous "wired into ..." for a no-op.
587
+ // `formatNextSteps` collapses to the single "wired into ..."
588
+ // line when it receives `targetPath`. Pass it whenever the
589
+ // target ended this run in sync written this run, OR
590
+ // already byte-identical (`targetInSync`). Gating on
591
+ // `targetWritten` alone misclassified an idempotent
592
+ // re-apply as "nothing is wired" and looped the operator
593
+ // through redundant apply commands.
581
594
  // `anyChanged` softens the no-target lede when the generated
582
595
  // manifest is already up to date (avoids over-claiming
583
596
  // "nothing is wired" against operators who wired a target
@@ -587,7 +600,7 @@ export function buildProgram(opts = {}) {
587
600
  stdout(formatNextSteps({
588
601
  generatedSettingsPath,
589
602
  anyChanged,
590
- ...(result.targetWritten && result.targetPath
603
+ ...((result.targetWritten || result.targetInSync) && result.targetPath
591
604
  ? { targetPath: result.targetPath }
592
605
  : {}),
593
606
  }));
@@ -1017,6 +1030,59 @@ export function buildProgram(opts = {}) {
1017
1030
  const result = await explain(policyName, explainOpts);
1018
1031
  stdout(result.output);
1019
1032
  });
1033
+ program
1034
+ .command("explain-action <event.json>")
1035
+ .description("Risk Gate debug verb (Phase 7): read a tool-event JSON file (the Claude Code PreToolUse hook payload shape: " +
1036
+ "{ hook_event_name, tool_name, tool_input, session_id, cwd }) and print the normalized Action Envelope. " +
1037
+ "Inspection surface for the envelope that downstream Risk Gate stages consume; does not evaluate policies.")
1038
+ .option("--json", "emit the envelope as JSON instead of YAML")
1039
+ .action((eventPath, options) => {
1040
+ const result = explainAction({
1041
+ eventPath,
1042
+ ...(options.json === true && { json: true }),
1043
+ });
1044
+ stdout(result.output);
1045
+ if (!result.output.endsWith("\n"))
1046
+ stdout("\n");
1047
+ });
1048
+ program
1049
+ .command("test-risk <event.json>")
1050
+ .description("Risk Gate debug verb (Phase 7): read a tool-event JSON file, build its Action Envelope, and classify it " +
1051
+ "against the manifest's risk.classifiers[]. Prints the risk profile (severity, categories, reversibility, " +
1052
+ "confidence, reasons). An action no pattern matches reports as unclassified, not as safe.")
1053
+ .option("--config <path>", "manifest path (default: ~/.harness/harness.yaml; legacy fallback ~/.claude/harness.yaml)")
1054
+ .option("--project <name>", "apply per-project overrides")
1055
+ .option("--json", "emit the risk profile as JSON instead of YAML")
1056
+ .action((eventPath, options) => {
1057
+ const result = testRisk({
1058
+ eventPath,
1059
+ ...(options.config !== undefined && { configPath: options.config }),
1060
+ ...(options.project !== undefined && { project: options.project }),
1061
+ ...(options.json === true && { json: true }),
1062
+ });
1063
+ stdout(result.output);
1064
+ if (!result.output.endsWith("\n"))
1065
+ stdout("\n");
1066
+ });
1067
+ program
1068
+ .command("resolve-env <event.json>")
1069
+ .description("Risk Gate debug verb (Phase 7): read a tool-event JSON file, build its Action Envelope, and resolve its " +
1070
+ "target environment against the manifest's environments.resolvers[] (branch / env-var / kube-context / " +
1071
+ "kube-namespace signals). An action no resolver matches resolves to `unknown`, not to a safe default.")
1072
+ .option("--config <path>", "manifest path (default: ~/.harness/harness.yaml; legacy fallback ~/.claude/harness.yaml)")
1073
+ .option("--project <name>", "apply per-project overrides")
1074
+ .option("--json", "emit the environment resolution as JSON instead of YAML")
1075
+ .action((eventPath, options) => {
1076
+ const result = resolveEnv({
1077
+ eventPath,
1078
+ ...(options.config !== undefined && { configPath: options.config }),
1079
+ ...(options.project !== undefined && { project: options.project }),
1080
+ ...(options.json === true && { json: true }),
1081
+ });
1082
+ stdout(result.output);
1083
+ if (!result.output.endsWith("\n"))
1084
+ stdout("\n");
1085
+ });
1020
1086
  program
1021
1087
  .command("audit")
1022
1088
  .description("Replay policy decisions from the evidence ledger for a time window")