@lannguyensi/harness 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +107 -0
- package/README.md +99 -58
- package/dist/cli/apply/apply.d.ts +2 -1
- package/dist/cli/apply/apply.js +16 -15
- package/dist/cli/apply/apply.js.map +1 -1
- package/dist/cli/approve/understanding.js +98 -8
- package/dist/cli/approve/understanding.js.map +1 -1
- package/dist/cli/diff/since-apply.d.ts +0 -1
- package/dist/cli/diff/since-apply.js +2 -7
- package/dist/cli/diff/since-apply.js.map +1 -1
- package/dist/cli/doctor/codex.d.ts +6 -1
- package/dist/cli/doctor/codex.js +10 -6
- package/dist/cli/doctor/codex.js.map +1 -1
- package/dist/cli/doctor/format.js +17 -0
- package/dist/cli/doctor/format.js.map +1 -1
- package/dist/cli/doctor/index.js +130 -49
- package/dist/cli/doctor/index.js.map +1 -1
- package/dist/cli/doctor/types.d.ts +25 -0
- package/dist/cli/gate/disable.d.ts +42 -0
- package/dist/cli/gate/disable.js +199 -0
- package/dist/cli/gate/disable.js.map +1 -0
- package/dist/cli/gate/enable.d.ts +33 -0
- package/dist/cli/gate/enable.js +127 -0
- package/dist/cli/gate/enable.js.map +1 -0
- package/dist/cli/gate/snapshot.d.ts +65 -0
- package/dist/cli/gate/snapshot.js +119 -0
- package/dist/cli/gate/snapshot.js.map +1 -0
- package/dist/cli/index.js +122 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/templates.d.ts +1 -1
- package/dist/cli/init/templates.js +34 -3
- package/dist/cli/init/templates.js.map +1 -1
- package/dist/cli/pack/remove.js +2 -7
- package/dist/cli/pack/remove.js.map +1 -1
- package/dist/cli/session-start/index.d.ts +23 -0
- package/dist/cli/session-start/index.js +48 -11
- package/dist/cli/session-start/index.js.map +1 -1
- package/dist/io/generated-dir.d.ts +5 -0
- package/dist/io/generated-dir.js +14 -0
- package/dist/io/generated-dir.js.map +1 -0
- package/dist/io/version-compare.d.ts +13 -0
- package/dist/io/version-compare.js +29 -0
- package/dist/io/version-compare.js.map +1 -0
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.d.ts +27 -0
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.js +32 -0
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution.d.ts +16 -1
- package/dist/policy-packs/builtin/understanding-before-execution.js +28 -7
- package/dist/policy-packs/builtin/understanding-before-execution.js.map +1 -1
- package/dist/policy-packs/expand.d.ts +3 -1
- package/dist/policy-packs/expand.js +2 -2
- package/dist/policy-packs/expand.js.map +1 -1
- package/dist/policy-packs/index.d.ts +1 -1
- package/dist/policy-packs/index.js.map +1 -1
- package/dist/policy-packs/registry.d.ts +2 -1
- package/dist/policy-packs/registry.js +2 -2
- package/dist/policy-packs/registry.js.map +1 -1
- package/dist/probes/memory.d.ts +18 -0
- package/dist/probes/memory.js +53 -1
- package/dist/probes/memory.js.map +1 -1
- package/dist/runtime/ledger-record.d.ts +1 -1
- package/dist/runtime/ledger-record.js +1 -1
- package/dist/runtime/ledger-record.js.map +1 -1
- package/dist/runtime/pending-approval.d.ts +2 -10
- package/dist/runtime/pending-approval.js +2 -15
- package/dist/runtime/pending-approval.js.map +1 -1
- package/dist/schema/hooks.d.ts +66 -2
- package/dist/schema/hooks.js +14 -1
- package/dist/schema/hooks.js.map +1 -1
- package/dist/schema/index.d.ts +88 -6
- package/dist/schema/memory.d.ts +16 -0
- package/dist/schema/memory.js +2 -0
- package/dist/schema/memory.js.map +1 -1
- package/dist/schema/tools.d.ts +24 -4
- package/dist/schema/tools.js +2 -0
- package/dist/schema/tools.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/pack/remove.js
CHANGED
|
@@ -12,6 +12,7 @@ import * as os from "node:os";
|
|
|
12
12
|
import * as path from "node:path";
|
|
13
13
|
import { parse as parseYaml } from "yaml";
|
|
14
14
|
import { atomicWriteFile } from "../../io/atomic-write.js";
|
|
15
|
+
import { resolveGeneratedDir } from "../../io/generated-dir.js";
|
|
15
16
|
import { writeLastApply } from "../../io/last-apply.js";
|
|
16
17
|
import { LAST_APPLY_BASENAME, readLastApply, } from "../../io/last-apply.js";
|
|
17
18
|
import { withFileLock } from "../../io/lock.js";
|
|
@@ -21,17 +22,11 @@ import { EX_FAIL, EX_NOINPUT, HarnessExitError } from "../exit-codes.js";
|
|
|
21
22
|
import { applyPackRemove, planPackRemove } from "./mutate.js";
|
|
22
23
|
const DEFAULT_BASENAME = "harness.yaml";
|
|
23
24
|
const LOCK_BASENAME = ".harness.lock";
|
|
24
|
-
const GENERATED_DIRNAME = "harness.generated";
|
|
25
25
|
function resolveTargetPath(opts) {
|
|
26
26
|
if (opts.configPath)
|
|
27
27
|
return path.resolve(opts.configPath);
|
|
28
28
|
return path.join(opts.homeDir ?? path.join(os.homedir(), ".claude"), DEFAULT_BASENAME);
|
|
29
29
|
}
|
|
30
|
-
function resolveGeneratedDir(opts, manifestPath) {
|
|
31
|
-
if (opts.homeDir !== undefined)
|
|
32
|
-
return path.join(opts.homeDir, GENERATED_DIRNAME);
|
|
33
|
-
return path.join(path.dirname(manifestPath), GENERATED_DIRNAME);
|
|
34
|
-
}
|
|
35
30
|
function packFileKeys(record, packName) {
|
|
36
31
|
if (!record)
|
|
37
32
|
return [];
|
|
@@ -77,7 +72,7 @@ export async function packRemove(name, opts = {}) {
|
|
|
77
72
|
if (!plan.found) {
|
|
78
73
|
throw new HarnessExitError(`policy_packs entry "${name}" not found. Available entries:\n${formatNameList(plan.availableNames)}`, EX_FAIL);
|
|
79
74
|
}
|
|
80
|
-
const generatedDir = resolveGeneratedDir(opts, target);
|
|
75
|
+
const generatedDir = resolveGeneratedDir({ homeDir: opts.homeDir, manifestPath: target });
|
|
81
76
|
const lastApply = readLastApply(generatedDir);
|
|
82
77
|
const trackedFiles = packFileKeys(lastApply, name);
|
|
83
78
|
if (trackedFiles.length > 0 && !opts.force) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/pack/remove.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,uEAAuE;AACvE,sEAAsE;AACtE,qEAAqE;AACrE,wEAAwE;AACxE,iBAAiB;AAEjB,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,mBAAmB,EACnB,aAAa,GAEd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkB9D,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,aAAa,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/pack/remove.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ResolveReadSessionOptions } from "../../runtime/session-id.js";
|
|
1
2
|
import { type LoaderOptions } from "../loader.js";
|
|
2
3
|
/** The slice of `preflight run --json` output this producer reads. */
|
|
3
4
|
export interface PreflightJson {
|
|
@@ -21,6 +22,12 @@ export interface SessionStartPreflightOptions extends LoaderOptions {
|
|
|
21
22
|
stdin?: NodeJS.ReadableStream;
|
|
22
23
|
/** Defaults to process.stderr. stdout is never written (SessionStart). */
|
|
23
24
|
stderr?: NodeJS.WritableStream;
|
|
25
|
+
/**
|
|
26
|
+
* Explicit session id (overrides every other source). Wired to the
|
|
27
|
+
* `--session <id>` CLI flag for manual / scripted invocations where
|
|
28
|
+
* no SessionStart event JSON is being piped on stdin.
|
|
29
|
+
*/
|
|
30
|
+
session?: string;
|
|
24
31
|
/** `preflight` subprocess timeout in ms. */
|
|
25
32
|
preflightTimeoutMs?: number;
|
|
26
33
|
/** Per-call ledger timeout in ms. */
|
|
@@ -36,6 +43,13 @@ export interface SessionStartPreflightOptions extends LoaderOptions {
|
|
|
36
43
|
ok: boolean;
|
|
37
44
|
reason?: string;
|
|
38
45
|
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Inject the read-path session resolver (env + transcript discovery).
|
|
48
|
+
* Test seam — production uses `resolveReadSessionId` from
|
|
49
|
+
* `runtime/session-id` so we get the same precedence chain as
|
|
50
|
+
* `harness audit` and `harness explain --trace`.
|
|
51
|
+
*/
|
|
52
|
+
resolveSession?: (explicit: string | undefined, opts: ResolveReadSessionOptions) => string;
|
|
39
53
|
}
|
|
40
54
|
export interface SessionStartPreflightResult {
|
|
41
55
|
/** Always 0 — a SessionStart hook must never break the session loop. */
|
|
@@ -46,6 +60,15 @@ export interface SessionStartPreflightResult {
|
|
|
46
60
|
repo: string;
|
|
47
61
|
/** Resolved branch (the `${BRANCH}` a tag is namespaced by; "" if detached). */
|
|
48
62
|
branch: string;
|
|
63
|
+
/**
|
|
64
|
+
* Which tier the session id came from. Surfaced so the CLI can
|
|
65
|
+
* loud-warn when the resolved id is the literal `"default"` (a tag
|
|
66
|
+
* recorded under that id will not satisfy any `preflight-before-*`
|
|
67
|
+
* gate, which queries by the real Claude Code session id).
|
|
68
|
+
*/
|
|
69
|
+
sessionSource: "flag" | "stdin" | "env" | "transcript" | "default";
|
|
70
|
+
/** Resolved session id. */
|
|
71
|
+
sessionId: string;
|
|
49
72
|
/** Human-readable explanation of a non-write outcome, for diagnostics. */
|
|
50
73
|
reason?: string;
|
|
51
74
|
}
|
|
@@ -17,8 +17,10 @@
|
|
|
17
17
|
// is "block investigative git reads until agent-preflight ran cleanly",
|
|
18
18
|
// so a failing preflight must leave the gate shut, not satisfy it.
|
|
19
19
|
import { execFile } from "node:child_process";
|
|
20
|
-
import { addLedgerFact, resolveGitContext,
|
|
20
|
+
import { addLedgerFact, resolveGitContext, } from "../../runtime/index.js";
|
|
21
|
+
import { resolveReadSessionId, } from "../../runtime/session-id.js";
|
|
21
22
|
import { loadManifest } from "../loader.js";
|
|
23
|
+
const FALLBACK_SESSION = "default";
|
|
22
24
|
const PREFLIGHT_BIN = "preflight";
|
|
23
25
|
const DEFAULT_PREFLIGHT_TIMEOUT_MS = 25_000;
|
|
24
26
|
const LEDGER_SOURCE = "harness-session-start-preflight";
|
|
@@ -108,11 +110,13 @@ export async function runSessionStartPreflight(opts = {}) {
|
|
|
108
110
|
const note = (msg) => {
|
|
109
111
|
stderr.write(`harness session-start preflight: ${msg}\n`);
|
|
110
112
|
};
|
|
111
|
-
const done = (wrote, repo, branch, reason) => ({
|
|
113
|
+
const done = (wrote, repo, branch, sessionId, sessionSource, reason) => ({
|
|
112
114
|
exitCode: 0,
|
|
113
115
|
wrote,
|
|
114
116
|
repo,
|
|
115
117
|
branch,
|
|
118
|
+
sessionId,
|
|
119
|
+
sessionSource,
|
|
116
120
|
...(reason !== undefined && { reason }),
|
|
117
121
|
});
|
|
118
122
|
let event;
|
|
@@ -122,26 +126,51 @@ export async function runSessionStartPreflight(opts = {}) {
|
|
|
122
126
|
catch (err) {
|
|
123
127
|
const reason = `malformed event JSON: ${err.message}`;
|
|
124
128
|
note(reason);
|
|
125
|
-
return done(false, "", "", reason);
|
|
129
|
+
return done(false, "", "", FALLBACK_SESSION, "default", reason);
|
|
126
130
|
}
|
|
127
131
|
const cwd = typeof event.cwd === "string" && event.cwd.length > 0 ? event.cwd : process.cwd();
|
|
128
132
|
const { repo, branch } = resolveGitContext(cwd);
|
|
129
133
|
if (repo === "") {
|
|
130
134
|
const reason = `cwd is not inside a git work tree (${cwd}); nothing to preflight`;
|
|
131
135
|
note(reason);
|
|
132
|
-
return done(false, "", "", reason);
|
|
136
|
+
return done(false, "", "", FALLBACK_SESSION, "default", reason);
|
|
133
137
|
}
|
|
134
|
-
|
|
138
|
+
// Session-id resolution chain. The hook-driven path (Claude Code feeds
|
|
139
|
+
// SessionStart event JSON on stdin) lands at tier "stdin" and is the
|
|
140
|
+
// common case. Manual invocations from an operator's `!`-shell — where
|
|
141
|
+
// there is no event JSON — fall back through env, then transcript
|
|
142
|
+
// discovery (same heuristic `harness audit` / `harness explain --trace`
|
|
143
|
+
// use), and only as a last resort to the literal `"default"`. Tags
|
|
144
|
+
// recorded under `"default"` will never satisfy a `preflight-before-*`
|
|
145
|
+
// gate, so we loud-warn rather than letting the success line read as
|
|
146
|
+
// if the producer worked.
|
|
147
|
+
const explicit = typeof opts.session === "string" && opts.session.length > 0
|
|
148
|
+
? opts.session
|
|
149
|
+
: typeof event.session_id === "string" && event.session_id.length > 0
|
|
150
|
+
? event.session_id
|
|
151
|
+
: undefined;
|
|
152
|
+
const resolveSession = opts.resolveSession ?? resolveReadSessionId;
|
|
153
|
+
const sessionId = resolveSession(explicit, {});
|
|
154
|
+
const sessionSource = typeof opts.session === "string" && opts.session.length > 0
|
|
155
|
+
? "flag"
|
|
156
|
+
: typeof event.session_id === "string" && event.session_id.length > 0
|
|
157
|
+
? "stdin"
|
|
158
|
+
: sessionId === FALLBACK_SESSION
|
|
159
|
+
? "default"
|
|
160
|
+
: typeof process.env.CLAUDE_SESSION_ID === "string" &&
|
|
161
|
+
process.env.CLAUDE_SESSION_ID === sessionId
|
|
162
|
+
? "env"
|
|
163
|
+
: "transcript";
|
|
135
164
|
const runPreflight = opts.runPreflight ?? spawnPreflight;
|
|
136
165
|
const preflight = await runPreflight(cwd, preflightTimeoutMs);
|
|
137
166
|
if (!preflight.ok) {
|
|
138
167
|
note(preflight.reason);
|
|
139
|
-
return done(false, repo, branch, preflight.reason);
|
|
168
|
+
return done(false, repo, branch, sessionId, sessionSource, preflight.reason);
|
|
140
169
|
}
|
|
141
170
|
if (preflight.json.ready !== true) {
|
|
142
171
|
const reason = describeNotReady(preflight.json);
|
|
143
172
|
note(`${reason} — leaving the preflight tag unwritten so the gate stays closed`);
|
|
144
|
-
return done(false, repo, branch, reason);
|
|
173
|
+
return done(false, repo, branch, sessionId, sessionSource, reason);
|
|
145
174
|
}
|
|
146
175
|
const confidence = typeof preflight.json.confidence === "number"
|
|
147
176
|
? preflight.json.confidence.toFixed(2)
|
|
@@ -165,13 +194,13 @@ export async function runSessionStartPreflight(opts = {}) {
|
|
|
165
194
|
catch (err) {
|
|
166
195
|
const reason = `manifest load failed: ${err.message}`;
|
|
167
196
|
note(reason);
|
|
168
|
-
return done(false, repo, branch, reason);
|
|
197
|
+
return done(false, repo, branch, sessionId, sessionSource, reason);
|
|
169
198
|
}
|
|
170
199
|
const server = findGroundingMcp(manifest);
|
|
171
200
|
if (!server) {
|
|
172
201
|
const reason = "grounding-mcp not declared in manifest; cannot record preflight tag";
|
|
173
202
|
note(reason);
|
|
174
|
-
return done(false, repo, branch, reason);
|
|
203
|
+
return done(false, repo, branch, sessionId, sessionSource, reason);
|
|
175
204
|
}
|
|
176
205
|
const command = mcpCommandList(server);
|
|
177
206
|
const env = server.env ?? undefined;
|
|
@@ -187,9 +216,17 @@ export async function runSessionStartPreflight(opts = {}) {
|
|
|
187
216
|
if (!result.ok) {
|
|
188
217
|
const reason = `ledger write failed: ${result.reason ?? "unknown error"}`;
|
|
189
218
|
note(reason);
|
|
190
|
-
return done(false, repo, branch, reason);
|
|
219
|
+
return done(false, repo, branch, sessionId, sessionSource, reason);
|
|
191
220
|
}
|
|
192
221
|
note(`recorded ${content} for session ${sessionId}`);
|
|
193
|
-
|
|
222
|
+
if (sessionSource === "default") {
|
|
223
|
+
// Loud-warn: the tag landed under the literal "default" session, which
|
|
224
|
+
// no `preflight-before-*` policy ever queries. The recorded line above
|
|
225
|
+
// can read as success; this second line is the actionable corrective.
|
|
226
|
+
note("WARNING: session resolved to the literal \"default\". preflight-before-* gates query " +
|
|
227
|
+
"the real Claude Code session id and will NOT see this tag. Pipe SessionStart event JSON " +
|
|
228
|
+
"on stdin, export $CLAUDE_SESSION_ID, or pass --session <id> for manual / scripted use.");
|
|
229
|
+
}
|
|
230
|
+
return done(true, repo, branch, sessionId, sessionSource);
|
|
194
231
|
}
|
|
195
232
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/session-start/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,wEAAwE;AACxE,iEAAiE;AACjE,wEAAwE;AACxE,yDAAyD;AACzD,sEAAsE;AACtE,2DAA2D;AAC3D,EAAE;AACF,uEAAuE;AACvE,oEAAoE;AACpE,uEAAuE;AACvE,oEAAoE;AACpE,uEAAuE;AACvE,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,mEAAmE;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/session-start/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
// `harness.generated/` lives next to whichever manifest is in use. If the
|
|
3
|
+
// user passed `--config /repo/path/harness.yaml`, generated artefacts go to
|
|
4
|
+
// `/repo/path/harness.generated/` (NOT `~/.claude/harness.generated/`). This
|
|
5
|
+
// avoids the footgun of `harness apply --config <some-other-tree>` writing
|
|
6
|
+
// state into the user's global runtime directory. The `homeDir` override
|
|
7
|
+
// path is for tests and non-default-home installs.
|
|
8
|
+
export const GENERATED_DIRNAME = "harness.generated";
|
|
9
|
+
export function resolveGeneratedDir(opts) {
|
|
10
|
+
if (opts.homeDir !== undefined)
|
|
11
|
+
return path.join(opts.homeDir, GENERATED_DIRNAME);
|
|
12
|
+
return path.join(path.dirname(opts.manifestPath), GENERATED_DIRNAME);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=generated-dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-dir.js","sourceRoot":"","sources":["../../src/io/generated-dir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,yEAAyE;AACzE,mDAAmD;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAErD,MAAM,UAAU,mBAAmB,CAAC,IAGnC;IACC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAClF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric semver compare for `min_version` gates in `harness doctor`.
|
|
3
|
+
* Used by the `tools.mcp[]`, `memory.router`, and `hooks[]` version
|
|
4
|
+
* checks. Lives in `src/io/` (a leaf module with no domain imports) so
|
|
5
|
+
* `runtime/`-, `policies/`-, and `cli/`-side consumers can all depend
|
|
6
|
+
* on it without re-creating the runtime/policies module-init cycle that
|
|
7
|
+
* task 1272feb6 just broke.
|
|
8
|
+
*
|
|
9
|
+
* Returns +1 if `a > b`, -1 if `a < b`, 0 on equality or on any parse
|
|
10
|
+
* failure. Pads short components with zeros (`1.2` is treated as
|
|
11
|
+
* `1.2.0` for the purposes of comparison with `1.2.0`).
|
|
12
|
+
*/
|
|
13
|
+
export declare function compareNumericVersions(a: string, b: string): number;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric semver compare for `min_version` gates in `harness doctor`.
|
|
3
|
+
* Used by the `tools.mcp[]`, `memory.router`, and `hooks[]` version
|
|
4
|
+
* checks. Lives in `src/io/` (a leaf module with no domain imports) so
|
|
5
|
+
* `runtime/`-, `policies/`-, and `cli/`-side consumers can all depend
|
|
6
|
+
* on it without re-creating the runtime/policies module-init cycle that
|
|
7
|
+
* task 1272feb6 just broke.
|
|
8
|
+
*
|
|
9
|
+
* Returns +1 if `a > b`, -1 if `a < b`, 0 on equality or on any parse
|
|
10
|
+
* failure. Pads short components with zeros (`1.2` is treated as
|
|
11
|
+
* `1.2.0` for the purposes of comparison with `1.2.0`).
|
|
12
|
+
*/
|
|
13
|
+
export function compareNumericVersions(a, b) {
|
|
14
|
+
const aa = a.split(".").map((n) => Number.parseInt(n, 10));
|
|
15
|
+
const bb = b.split(".").map((n) => Number.parseInt(n, 10));
|
|
16
|
+
const len = Math.max(aa.length, bb.length);
|
|
17
|
+
for (let i = 0; i < len; i++) {
|
|
18
|
+
const ai = aa[i] ?? 0;
|
|
19
|
+
const bi = bb[i] ?? 0;
|
|
20
|
+
if (Number.isNaN(ai) || Number.isNaN(bi))
|
|
21
|
+
return 0;
|
|
22
|
+
if (ai > bi)
|
|
23
|
+
return 1;
|
|
24
|
+
if (ai < bi)
|
|
25
|
+
return -1;
|
|
26
|
+
}
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=version-compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-compare.js","sourceRoot":"","sources":["../../src/io/version-compare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAS,EAAE,CAAS;IACzD,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,CAAC;QACnD,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC;QACtB,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -12,7 +12,34 @@ export interface PersistedReport {
|
|
|
12
12
|
approvalStatus: string | null;
|
|
13
13
|
approvedAt: string | null;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Env var the persisted-report directory can be set from. Honored by
|
|
17
|
+
* harness (`defaultReportsDir` below + emitted by `harness apply` onto
|
|
18
|
+
* the pack-contributed hook commands) AND by `@lannguyensi/understanding-gate`
|
|
19
|
+
* (its `core/persistence.js:resolveReportDir` reads the same name), so
|
|
20
|
+
* the three actors that touch the directory — Stop hook (package),
|
|
21
|
+
* PreToolUse blocker (harness), `harness approve understanding` — can
|
|
22
|
+
* agree on the path regardless of each process's cwd.
|
|
23
|
+
*/
|
|
24
|
+
export declare const REPORTS_DIR_ENV = "UNDERSTANDING_GATE_REPORT_DIR";
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the persisted-report directory. Precedence:
|
|
27
|
+
* 1. `UNDERSTANDING_GATE_REPORT_DIR` (taken verbatim — apply emits an
|
|
28
|
+
* absolute path, operator-exported values are shell-expanded before
|
|
29
|
+
* we see them).
|
|
30
|
+
* 2. `<cwd>/.understanding-gate/reports` — backward-compat fallback.
|
|
31
|
+
* Callers that have a stable anchor (the manifest directory) pass
|
|
32
|
+
* it as `cwd` so the fallback agrees with whatever path apply
|
|
33
|
+
* baked into the hook commands.
|
|
34
|
+
*/
|
|
15
35
|
export declare function defaultReportsDir(cwd?: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Project root anchor for the reports directory: `<dir-of-manifest>/.understanding-gate/reports`.
|
|
38
|
+
* Used by `harness apply` to bake an absolute, manifest-anchored value into
|
|
39
|
+
* the pack-contributed hook commands' env, and by `harness approve` as the
|
|
40
|
+
* fallback when `UNDERSTANDING_GATE_REPORT_DIR` is unset.
|
|
41
|
+
*/
|
|
42
|
+
export declare function reportsDirForManifest(manifestPath: string): string;
|
|
16
43
|
/** Build the per-session ledger tag the pack searches for. */
|
|
17
44
|
export declare function approvedLedgerTagFor(sessionId: string): string;
|
|
18
45
|
/**
|
|
@@ -20,9 +20,41 @@ import { POLICY_DECISION_TYPE } from "../../runtime/ledger-record.js";
|
|
|
20
20
|
export const APPROVED_LEDGER_TAG_PREFIX = "understanding-approved:";
|
|
21
21
|
const DEFAULT_REPORTS_DIRNAME = ".understanding-gate";
|
|
22
22
|
const REPORTS_SUBDIR = "reports";
|
|
23
|
+
/**
|
|
24
|
+
* Env var the persisted-report directory can be set from. Honored by
|
|
25
|
+
* harness (`defaultReportsDir` below + emitted by `harness apply` onto
|
|
26
|
+
* the pack-contributed hook commands) AND by `@lannguyensi/understanding-gate`
|
|
27
|
+
* (its `core/persistence.js:resolveReportDir` reads the same name), so
|
|
28
|
+
* the three actors that touch the directory — Stop hook (package),
|
|
29
|
+
* PreToolUse blocker (harness), `harness approve understanding` — can
|
|
30
|
+
* agree on the path regardless of each process's cwd.
|
|
31
|
+
*/
|
|
32
|
+
export const REPORTS_DIR_ENV = "UNDERSTANDING_GATE_REPORT_DIR";
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the persisted-report directory. Precedence:
|
|
35
|
+
* 1. `UNDERSTANDING_GATE_REPORT_DIR` (taken verbatim — apply emits an
|
|
36
|
+
* absolute path, operator-exported values are shell-expanded before
|
|
37
|
+
* we see them).
|
|
38
|
+
* 2. `<cwd>/.understanding-gate/reports` — backward-compat fallback.
|
|
39
|
+
* Callers that have a stable anchor (the manifest directory) pass
|
|
40
|
+
* it as `cwd` so the fallback agrees with whatever path apply
|
|
41
|
+
* baked into the hook commands.
|
|
42
|
+
*/
|
|
23
43
|
export function defaultReportsDir(cwd = process.cwd()) {
|
|
44
|
+
const fromEnv = process.env[REPORTS_DIR_ENV];
|
|
45
|
+
if (typeof fromEnv === "string" && fromEnv.length > 0)
|
|
46
|
+
return fromEnv;
|
|
24
47
|
return path.join(cwd, DEFAULT_REPORTS_DIRNAME, REPORTS_SUBDIR);
|
|
25
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Project root anchor for the reports directory: `<dir-of-manifest>/.understanding-gate/reports`.
|
|
51
|
+
* Used by `harness apply` to bake an absolute, manifest-anchored value into
|
|
52
|
+
* the pack-contributed hook commands' env, and by `harness approve` as the
|
|
53
|
+
* fallback when `UNDERSTANDING_GATE_REPORT_DIR` is unset.
|
|
54
|
+
*/
|
|
55
|
+
export function reportsDirForManifest(manifestPath) {
|
|
56
|
+
return path.join(path.dirname(manifestPath), DEFAULT_REPORTS_DIRNAME, REPORTS_SUBDIR);
|
|
57
|
+
}
|
|
26
58
|
/** Build the per-session ledger tag the pack searches for. */
|
|
27
59
|
export function approvedLedgerTagFor(sessionId) {
|
|
28
60
|
return `${APPROVED_LEDGER_TAG_PREFIX}${sessionId}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"understanding-before-execution-runtime.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/understanding-before-execution-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"understanding-before-execution-runtime.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/understanding-before-execution-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,26 @@ export declare const PACK_NAME = "understanding-before-execution";
|
|
|
5
5
|
export type Mode = "fast_confirm" | "grill_me" | "strict";
|
|
6
6
|
export declare const DEFAULT_MODE: Mode;
|
|
7
7
|
export declare function isMode(value: unknown): value is Mode;
|
|
8
|
+
export interface ResolvePackOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Absolute path to the persisted-report directory the pack's hooks
|
|
11
|
+
* should write/read. When provided, the pack prefixes each contributed
|
|
12
|
+
* hook command with `UNDERSTANDING_GATE_REPORT_DIR=<path>` so the
|
|
13
|
+
* Stop hook (writes the report), the PreToolUse blocker (reads it),
|
|
14
|
+
* and `harness approve understanding` (flips it) all resolve the same
|
|
15
|
+
* directory regardless of each process's cwd. Apply sets this to a
|
|
16
|
+
* manifest-anchored absolute path; in test/legacy paths it may be
|
|
17
|
+
* omitted, in which case the commands are emitted unchanged and the
|
|
18
|
+
* runtime `defaultReportsDir()` falls back to the env-var-or-cwd
|
|
19
|
+
* precedence.
|
|
20
|
+
*/
|
|
21
|
+
reportsDir?: string;
|
|
22
|
+
}
|
|
8
23
|
export declare function resolveMode(pack: PolicyPack): {
|
|
9
24
|
mode: Mode;
|
|
10
25
|
warning: string | null;
|
|
11
26
|
};
|
|
12
|
-
export declare function resolve(pack: PolicyPack, runtime?: Runtime): {
|
|
27
|
+
export declare function resolve(pack: PolicyPack, runtime?: Runtime, opts?: ResolvePackOptions): {
|
|
13
28
|
contribution: PackContribution;
|
|
14
29
|
warnings: string[];
|
|
15
30
|
};
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
import { profileToSettingsPermissions } from "../permission-translator.js";
|
|
14
14
|
import { DEFAULT_RUNTIME } from "../runtime.js";
|
|
15
15
|
import { isKnownProfileName, resolveProfile, KNOWN_PROFILE_NAMES, } from "./permission-profiles.js";
|
|
16
|
+
import { REPORTS_DIR_ENV } from "./understanding-before-execution-runtime.js";
|
|
16
17
|
export const PACK_NAME = "understanding-before-execution";
|
|
17
18
|
const MODES = ["fast_confirm", "grill_me", "strict"];
|
|
18
19
|
export const DEFAULT_MODE = "grill_me";
|
|
@@ -59,6 +60,20 @@ const COMMAND_PRE_TOOL_USE_CODEX = "harness pack hook codex-pre-tool-use";
|
|
|
59
60
|
export function isMode(value) {
|
|
60
61
|
return typeof value === "string" && MODES.includes(value);
|
|
61
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* POSIX single-quote-escape for an arbitrary path. Safe inside the
|
|
65
|
+
* `VAR=<value>` prefix of a `sh -c` command line. Always quotes — paths
|
|
66
|
+
* derived from `path.dirname()` may contain spaces or other shell
|
|
67
|
+
* metacharacters, and a plain `VAR=$path` would split on whitespace.
|
|
68
|
+
*/
|
|
69
|
+
function shellQuoteSingle(s) {
|
|
70
|
+
return `'${s.replace(/'/g, "'\\''")}'`;
|
|
71
|
+
}
|
|
72
|
+
function prefixCommandWithReportsDir(command, reportsDir) {
|
|
73
|
+
if (!reportsDir)
|
|
74
|
+
return command;
|
|
75
|
+
return `${REPORTS_DIR_ENV}=${shellQuoteSingle(reportsDir)} ${command}`;
|
|
76
|
+
}
|
|
62
77
|
export function resolveMode(pack) {
|
|
63
78
|
const raw = pack.config["mode"];
|
|
64
79
|
if (raw === undefined)
|
|
@@ -68,11 +83,17 @@ export function resolveMode(pack) {
|
|
|
68
83
|
const warning = `policy_packs[${pack.name}].config.mode: unrecognised value ${JSON.stringify(raw)}, falling back to "${DEFAULT_MODE}". Allowed: ${MODES.join(", ")}.`;
|
|
69
84
|
return { mode: DEFAULT_MODE, warning };
|
|
70
85
|
}
|
|
71
|
-
function buildHooks(runtime) {
|
|
86
|
+
function buildHooks(runtime, opts = {}) {
|
|
72
87
|
// Per-mode hook commands are identical (the mode is passed via the
|
|
73
88
|
// package's UNDERSTANDING_GATE_MODE env var, set elsewhere — out of
|
|
74
89
|
// scope for Phase 6 #2). What changes per mode is the instructions.md
|
|
75
90
|
// content + the actual injected prompt (owned by the npm package).
|
|
91
|
+
//
|
|
92
|
+
// When `opts.reportsDir` is set (the apply path), each command is
|
|
93
|
+
// prefixed with `UNDERSTANDING_GATE_REPORT_DIR=<absolute>` so all hooks
|
|
94
|
+
// — including the standalone-package Stop bin which honors the same
|
|
95
|
+
// env var — write/read the same directory.
|
|
96
|
+
const wrap = (cmd) => prefixCommandWithReportsDir(cmd, opts.reportsDir);
|
|
76
97
|
if (runtime === "codex") {
|
|
77
98
|
return [
|
|
78
99
|
{
|
|
@@ -86,7 +107,7 @@ function buildHooks(runtime) {
|
|
|
86
107
|
{
|
|
87
108
|
name: `${HOOK_NAME_PREFIX}:codex:stop`,
|
|
88
109
|
event: "Stop",
|
|
89
|
-
command: COMMAND_STOP_CODEX,
|
|
110
|
+
command: wrap(COMMAND_STOP_CODEX),
|
|
90
111
|
blocking: false,
|
|
91
112
|
budget_ms: 5000,
|
|
92
113
|
description: "Codex adapter: capture the agent's Understanding Report into .understanding-gate/reports/ as approvalStatus:pending. Phase 6 #6 follow-up.",
|
|
@@ -95,7 +116,7 @@ function buildHooks(runtime) {
|
|
|
95
116
|
name: `${HOOK_NAME_PREFIX}:codex:pre-tool-use`,
|
|
96
117
|
event: "PreToolUse",
|
|
97
118
|
match: PRE_TOOL_USE_MATCH_CODEX,
|
|
98
|
-
command: COMMAND_PRE_TOOL_USE_CODEX,
|
|
119
|
+
command: wrap(COMMAND_PRE_TOOL_USE_CODEX),
|
|
99
120
|
blocking: "hard",
|
|
100
121
|
budget_ms: 5000,
|
|
101
122
|
description: "Codex adapter: block apply_patch/Bash/shell until an approved Understanding Report exists for the session. Consults both the evidence-ledger tag and the persisted JSON report.",
|
|
@@ -114,7 +135,7 @@ function buildHooks(runtime) {
|
|
|
114
135
|
{
|
|
115
136
|
name: `${HOOK_NAME_PREFIX}:stop`,
|
|
116
137
|
event: "Stop",
|
|
117
|
-
command: BIN_STOP_CLAUDE,
|
|
138
|
+
command: wrap(BIN_STOP_CLAUDE),
|
|
118
139
|
blocking: false,
|
|
119
140
|
budget_ms: 5000,
|
|
120
141
|
description: "Capture the agent's Understanding Report into .understanding-gate/reports/. Source: @lannguyensi/understanding-gate.",
|
|
@@ -123,7 +144,7 @@ function buildHooks(runtime) {
|
|
|
123
144
|
name: `${HOOK_NAME_PREFIX}:pre-tool-use`,
|
|
124
145
|
event: "PreToolUse",
|
|
125
146
|
match: PRE_TOOL_USE_MATCH_CLAUDE,
|
|
126
|
-
command: PRE_TOOL_USE_COMMAND_CLAUDE,
|
|
147
|
+
command: wrap(PRE_TOOL_USE_COMMAND_CLAUDE),
|
|
127
148
|
blocking: "hard",
|
|
128
149
|
budget_ms: 5000,
|
|
129
150
|
description: "Block Edit/Write/Bash until an approved Understanding Report exists for the session. Consults both the evidence-ledger tag (understanding-approved:${SESSION_ID}) and the persisted JSON report.",
|
|
@@ -230,9 +251,9 @@ function resolvePermissionProfile(pack) {
|
|
|
230
251
|
return { permissions: null, warning: null };
|
|
231
252
|
return { permissions: profileToSettingsPermissions(profile), warning: null };
|
|
232
253
|
}
|
|
233
|
-
export function resolve(pack, runtime = DEFAULT_RUNTIME) {
|
|
254
|
+
export function resolve(pack, runtime = DEFAULT_RUNTIME, opts = {}) {
|
|
234
255
|
const { mode, warning } = resolveMode(pack);
|
|
235
|
-
const hooks = buildHooks(runtime);
|
|
256
|
+
const hooks = buildHooks(runtime, opts);
|
|
236
257
|
const instructionsContent = buildInstructions(pack, mode, runtime);
|
|
237
258
|
const files = [
|
|
238
259
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"understanding-before-execution.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/understanding-before-execution.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,EAAE;AACF,sEAAsE;AACtE,yEAAyE;AACzE,yEAAyE;AACzE,8EAA8E;AAC9E,0EAA0E;AAC1E,yEAAyE;AACzE,yEAAyE;AACzE,sEAAsE;AACtE,oEAAoE;AACpE,wCAAwC;AAGxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAgB,MAAM,eAAe,CAAC;AAM9D,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"understanding-before-execution.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/understanding-before-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { Manifest } from "../schema/index.js";
|
|
2
|
+
import type { ResolvePackOptions } from "./builtin/understanding-before-execution.js";
|
|
2
3
|
import { type Runtime } from "./runtime.js";
|
|
3
4
|
import type { PackExpansionResult } from "./types.js";
|
|
4
|
-
export
|
|
5
|
+
export type ExpandPolicyPacksOptions = ResolvePackOptions;
|
|
6
|
+
export declare function expandPolicyPacks(manifest: Manifest, runtime?: Runtime, opts?: ExpandPolicyPacksOptions): PackExpansionResult;
|