@lannguyensi/harness 0.23.1 → 0.24.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 +27 -0
- package/dist/cli/add/index.js +2 -2
- package/dist/cli/add/index.js.map +1 -1
- package/dist/cli/adopt/index.js +2 -2
- package/dist/cli/adopt/index.js.map +1 -1
- package/dist/cli/apply/apply.d.ts +19 -0
- package/dist/cli/apply/apply.js +65 -6
- package/dist/cli/apply/apply.js.map +1 -1
- package/dist/cli/apply/generate-codex-config.js +43 -36
- package/dist/cli/apply/generate-codex-config.js.map +1 -1
- package/dist/cli/apply/index.d.ts +2 -1
- package/dist/cli/apply/index.js +1 -0
- package/dist/cli/apply/index.js.map +1 -1
- package/dist/cli/apply/install-codex-config.d.ts +28 -0
- package/dist/cli/apply/install-codex-config.js +171 -0
- package/dist/cli/apply/install-codex-config.js.map +1 -0
- package/dist/cli/approve/understanding.d.ts +1 -1
- package/dist/cli/approve/understanding.js +55 -30
- package/dist/cli/approve/understanding.js.map +1 -1
- package/dist/cli/diff/since-apply.js +2 -2
- package/dist/cli/diff/since-apply.js.map +1 -1
- package/dist/cli/index.js +69 -36
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/composer.js +4 -4
- package/dist/cli/init/composer.js.map +1 -1
- package/dist/cli/init/index.js +2 -2
- package/dist/cli/init/index.js.map +1 -1
- package/dist/cli/init/interactive.js +15 -5
- package/dist/cli/init/interactive.js.map +1 -1
- package/dist/cli/init/profiles.d.ts +2 -2
- package/dist/cli/init/profiles.js +6 -6
- package/dist/cli/init/profiles.js.map +1 -1
- package/dist/cli/init/templates.d.ts +2 -2
- package/dist/cli/init/templates.js +16 -16
- package/dist/cli/loader.js +12 -8
- package/dist/cli/loader.js.map +1 -1
- package/dist/cli/main.js +4 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/migrate-home/index.d.ts +39 -0
- package/dist/cli/migrate-home/index.js +194 -0
- package/dist/cli/migrate-home/index.js.map +1 -0
- package/dist/cli/pack/add.js +2 -2
- package/dist/cli/pack/add.js.map +1 -1
- package/dist/cli/pack/hook-codex-pre-tool-use.js +16 -1
- package/dist/cli/pack/hook-codex-pre-tool-use.js.map +1 -1
- package/dist/cli/pack/remove.js +2 -2
- package/dist/cli/pack/remove.js.map +1 -1
- package/dist/cli/remove/index.js +2 -2
- package/dist/cli/remove/index.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution.js +23 -13
- package/dist/policy-packs/builtin/understanding-before-execution.js.map +1 -1
- package/dist/runtime/home-dir.d.ts +39 -0
- package/dist/runtime/home-dir.js +105 -0
- package/dist/runtime/home-dir.js.map +1 -0
- package/dist/runtime/intercept.js +10 -6
- package/dist/runtime/intercept.js.map +1 -1
- package/dist/runtime/tool-name-aliases.d.ts +7 -0
- package/dist/runtime/tool-name-aliases.js +74 -0
- package/dist/runtime/tool-name-aliases.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
// Phase 7 / v0.24.0 — `harness migrate-home` command.
|
|
2
|
+
//
|
|
3
|
+
// Moves harness operator-state from the legacy `~/.claude/` root to the
|
|
4
|
+
// runtime-neutral `~/.harness/` introduced in task e65decef. Default
|
|
5
|
+
// behaviour is dry-run (plan + report, no writes); `--apply` performs
|
|
6
|
+
// the move. Re-running on already-migrated state is a no-op.
|
|
7
|
+
//
|
|
8
|
+
// What gets moved:
|
|
9
|
+
// - `~/.claude/harness.yaml` → `~/.harness/harness.yaml`
|
|
10
|
+
// - `~/.claude/harness.generated/` → `~/.harness/harness.generated/`
|
|
11
|
+
// - `~/.claude/.understanding-gate/` → `~/.harness/.understanding-gate/`
|
|
12
|
+
// - `~/.claude/harness.lock` → `~/.harness/harness.lock`
|
|
13
|
+
//
|
|
14
|
+
// What is NOT touched (operator-owned, runtime config, not harness state):
|
|
15
|
+
// - `~/.claude/settings.json` (Claude Code's runtime config)
|
|
16
|
+
// - any other operator-authored content under `~/.claude/`
|
|
17
|
+
//
|
|
18
|
+
// Atomicity contract:
|
|
19
|
+
// - Each item is moved with `fs.renameSync` first. If that fails with
|
|
20
|
+
// `EXDEV` (cross-filesystem rename), the command falls back to a
|
|
21
|
+
// copy-then-delete sequence so the source side is removed only
|
|
22
|
+
// after the destination side is fully written.
|
|
23
|
+
// - The four items are moved in sequence. A failure midway leaves a
|
|
24
|
+
// partial state in `~/.harness/` and the remaining items in
|
|
25
|
+
// `~/.claude/`. The deprecation warning will fire on the next
|
|
26
|
+
// command (legacy detection sees the remaining state) and the
|
|
27
|
+
// operator can re-run `harness migrate-home --apply` to finish.
|
|
28
|
+
// - Subsequent passes are idempotent: items already missing on the
|
|
29
|
+
// source side are skipped.
|
|
30
|
+
//
|
|
31
|
+
// On successful `--apply`, a small marker `MOVED_TO_~_DOT_HARNESS.txt`
|
|
32
|
+
// is written into `~/.claude/` so an operator who later runs an old
|
|
33
|
+
// command from muscle memory has a paper trail pointing at the new
|
|
34
|
+
// location. The marker is plain text and does not block any other
|
|
35
|
+
// `~/.claude/` consumer (e.g. Claude Code itself).
|
|
36
|
+
import * as fs from "node:fs";
|
|
37
|
+
import * as os from "node:os";
|
|
38
|
+
import * as path from "node:path";
|
|
39
|
+
import { HARNESS_HOME_DIRNAME, LEGACY_HARNESS_HOME_DIRNAME, } from "../../runtime/home-dir.js";
|
|
40
|
+
import { EX_FAIL, HarnessExitError } from "../exit-codes.js";
|
|
41
|
+
export const MIGRATION_MARKER_BASENAME = "MOVED_TO_~_DOT_HARNESS.txt";
|
|
42
|
+
const ITEMS = [
|
|
43
|
+
{ basename: "harness.yaml", isDir: false },
|
|
44
|
+
{ basename: "harness.generated", isDir: true },
|
|
45
|
+
{ basename: ".understanding-gate", isDir: true },
|
|
46
|
+
{ basename: "harness.lock", isDir: false },
|
|
47
|
+
];
|
|
48
|
+
export function migrateHome(opts = {}) {
|
|
49
|
+
const userHome = opts.userHome ?? os.homedir();
|
|
50
|
+
const legacyPath = path.join(userHome, LEGACY_HARNESS_HOME_DIRNAME);
|
|
51
|
+
const newPath = path.join(userHome, HARNESS_HOME_DIRNAME);
|
|
52
|
+
const stdout = opts.stdout ?? process.stdout;
|
|
53
|
+
const stderr = opts.stderr ?? process.stderr;
|
|
54
|
+
const apply = opts.apply === true;
|
|
55
|
+
// Plan phase: classify each item by (legacy exists, new exists).
|
|
56
|
+
const items = ITEMS.map((it) => {
|
|
57
|
+
const legacyItem = path.join(legacyPath, it.basename);
|
|
58
|
+
const newItem = path.join(newPath, it.basename);
|
|
59
|
+
const legacyExists = pathExists(legacyItem);
|
|
60
|
+
const newExists = pathExists(newItem);
|
|
61
|
+
if (!legacyExists) {
|
|
62
|
+
return { basename: it.basename, legacyExists, newExists, action: "skip" };
|
|
63
|
+
}
|
|
64
|
+
if (newExists) {
|
|
65
|
+
return {
|
|
66
|
+
basename: it.basename,
|
|
67
|
+
legacyExists,
|
|
68
|
+
newExists,
|
|
69
|
+
action: "target-exists",
|
|
70
|
+
detail: `${newItem} already present; refuse to overwrite. Inspect, then remove one side and re-run.`,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
basename: it.basename,
|
|
75
|
+
legacyExists,
|
|
76
|
+
newExists,
|
|
77
|
+
action: "would-move",
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
const movable = items.filter((i) => i.action === "would-move");
|
|
81
|
+
const conflicts = items.filter((i) => i.action === "target-exists");
|
|
82
|
+
if (conflicts.length > 0) {
|
|
83
|
+
for (const c of conflicts) {
|
|
84
|
+
stderr.write(`harness migrate-home: ${c.basename}: ${c.detail}\n`);
|
|
85
|
+
}
|
|
86
|
+
return { legacyPath, newPath, items, outcome: "target-conflict" };
|
|
87
|
+
}
|
|
88
|
+
if (movable.length === 0) {
|
|
89
|
+
stdout.write(`harness migrate-home: nothing to migrate (no harness state under ${legacyPath}).\n`);
|
|
90
|
+
return { legacyPath, newPath, items, outcome: "no-op" };
|
|
91
|
+
}
|
|
92
|
+
if (!apply) {
|
|
93
|
+
stdout.write(`harness migrate-home: would move ${movable.length} item(s) from ${legacyPath} to ${newPath}:\n`);
|
|
94
|
+
for (const m of movable) {
|
|
95
|
+
stdout.write(` ${path.join(legacyPath, m.basename)}\n`);
|
|
96
|
+
}
|
|
97
|
+
stdout.write("Re-run with --apply to perform the move. After moving, run `harness apply` to regenerate any embedded paths (e.g. UNDERSTANDING_GATE_REPORT_DIR in settings.json).\n");
|
|
98
|
+
return { legacyPath, newPath, items, outcome: "would-apply" };
|
|
99
|
+
}
|
|
100
|
+
// Apply phase: move each item. Create the destination root first.
|
|
101
|
+
try {
|
|
102
|
+
fs.mkdirSync(newPath, { recursive: true });
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
throw new HarnessExitError(`failed to create ${newPath}: ${err.message}`, EX_FAIL);
|
|
106
|
+
}
|
|
107
|
+
let anyError = null;
|
|
108
|
+
for (const m of movable) {
|
|
109
|
+
const src = path.join(legacyPath, m.basename);
|
|
110
|
+
const dst = path.join(newPath, m.basename);
|
|
111
|
+
try {
|
|
112
|
+
moveSync(src, dst);
|
|
113
|
+
m.action = "moved";
|
|
114
|
+
stdout.write(`moved ${src} to ${dst}\n`);
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
const msg = err.message;
|
|
118
|
+
m.detail = msg;
|
|
119
|
+
anyError = msg;
|
|
120
|
+
stderr.write(`harness migrate-home: failed to move ${m.basename}: ${msg}\n`);
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const moved = items.filter((i) => i.action === "moved");
|
|
125
|
+
if (moved.length > 0) {
|
|
126
|
+
// Breadcrumb: drop a small text file so an operator who later
|
|
127
|
+
// recalls the old path knows where to look.
|
|
128
|
+
const markerPath = path.join(legacyPath, MIGRATION_MARKER_BASENAME);
|
|
129
|
+
try {
|
|
130
|
+
const body = [
|
|
131
|
+
`harness state was migrated to ${newPath} on ${new Date().toISOString()}.`,
|
|
132
|
+
"",
|
|
133
|
+
"If you are looking for harness.yaml, harness.generated/, or .understanding-gate/,",
|
|
134
|
+
`they now live under ${newPath}.`,
|
|
135
|
+
"",
|
|
136
|
+
"Files moved this run:",
|
|
137
|
+
...moved.map((m) => ` - ${m.basename}`),
|
|
138
|
+
"",
|
|
139
|
+
"Note: this marker is harness-owned. Your Claude Code settings.json and any",
|
|
140
|
+
"other ~/.claude/ contents were not touched.",
|
|
141
|
+
"",
|
|
142
|
+
].join("\n");
|
|
143
|
+
fs.writeFileSync(markerPath, body);
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
/* best-effort breadcrumb; failure to write the marker does not unwind the move */
|
|
147
|
+
}
|
|
148
|
+
if (anyError !== null) {
|
|
149
|
+
return {
|
|
150
|
+
legacyPath,
|
|
151
|
+
newPath,
|
|
152
|
+
items,
|
|
153
|
+
outcome: "partial",
|
|
154
|
+
markerPath,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
stdout.write("Run `harness apply` to regenerate any embedded paths (e.g. UNDERSTANDING_GATE_REPORT_DIR in settings.json) and re-emit hook command strings against the new home dir.\n");
|
|
158
|
+
return {
|
|
159
|
+
legacyPath,
|
|
160
|
+
newPath,
|
|
161
|
+
items,
|
|
162
|
+
outcome: "applied",
|
|
163
|
+
markerPath,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
// No items actually moved despite plan saying we should — fell into
|
|
167
|
+
// an error on the first item. Surface as partial.
|
|
168
|
+
return { legacyPath, newPath, items, outcome: "partial" };
|
|
169
|
+
}
|
|
170
|
+
function pathExists(p) {
|
|
171
|
+
try {
|
|
172
|
+
fs.lstatSync(p);
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
function moveSync(src, dst) {
|
|
180
|
+
try {
|
|
181
|
+
fs.renameSync(src, dst);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
const e = err;
|
|
186
|
+
if (e.code !== "EXDEV")
|
|
187
|
+
throw err;
|
|
188
|
+
}
|
|
189
|
+
// Cross-filesystem fallback: recursive copy then delete. fs.cpSync
|
|
190
|
+
// is in Node 16.7+; harness requires Node 18+ per package.json.
|
|
191
|
+
fs.cpSync(src, dst, { recursive: true });
|
|
192
|
+
fs.rmSync(src, { recursive: true, force: true });
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/migrate-home/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/pack/add.js
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
// flock; surface dup-name + bad-mode errors at the point the user runs
|
|
5
5
|
// the command, not at the next `harness apply`.
|
|
6
6
|
import * as fs from "node:fs";
|
|
7
|
-
import * as os from "node:os";
|
|
8
7
|
import * as path from "node:path";
|
|
9
8
|
import { parse as parseYaml } from "yaml";
|
|
10
9
|
import { atomicWriteFile } from "../../io/atomic-write.js";
|
|
10
|
+
import { resolveHomeDir } from "../../runtime/home-dir.js";
|
|
11
11
|
import { withFileLock } from "../../io/lock.js";
|
|
12
12
|
import { unifiedDiff } from "../../io/patch.js";
|
|
13
13
|
import { formatValidationErrors, validateBeforeWrite, } from "../../io/validate-before-write.js";
|
|
@@ -20,7 +20,7 @@ const LOCK_BASENAME = ".harness.lock";
|
|
|
20
20
|
function resolveTargetPath(opts) {
|
|
21
21
|
if (opts.configPath)
|
|
22
22
|
return path.resolve(opts.configPath);
|
|
23
|
-
return path.join(opts.homeDir
|
|
23
|
+
return path.join(resolveHomeDir({ ...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}) }).path, DEFAULT_BASENAME);
|
|
24
24
|
}
|
|
25
25
|
export async function packAdd(entry, opts = {}) {
|
|
26
26
|
const target = resolveTargetPath(opts);
|
package/dist/cli/pack/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/cli/pack/add.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,gDAAgD;AAEhD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/cli/pack/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
// net for solo users; the harness blocker is strictly more powerful.
|
|
22
22
|
import { queryLedgerByTag } from "../../policies/index.js";
|
|
23
23
|
import { checkApprovalMarker, checkPersistedReport, defaultReportsDir, matchLedgerEntries, } from "../../policy-packs/builtin/understanding-before-execution-runtime.js";
|
|
24
|
-
import { resolveGeneratedDir } from "../../runtime/pending-approval.js";
|
|
24
|
+
import { resolveGeneratedDir, writePendingApproval, } from "../../runtime/pending-approval.js";
|
|
25
25
|
import { renderAgentFacing } from "../../runtime/agent-facing.js";
|
|
26
26
|
import { PolicyUxSchema } from "../../schema/index.js";
|
|
27
27
|
import { loadManifest } from "../loader.js";
|
|
@@ -187,6 +187,21 @@ export async function runPackHookCodexPreToolUseCli(opts = {}) {
|
|
|
187
187
|
}
|
|
188
188
|
// Audit-only ledger probe.
|
|
189
189
|
const ledger = await checkLedger(manifest, sessionId, opts);
|
|
190
|
+
// Stage the session id so `harness approve understanding`, run from
|
|
191
|
+
// the operator's shell where neither $CODEX_SESSION_ID nor
|
|
192
|
+
// $CLAUDE_SESSION_ID is set, can resolve it without scraping logs or
|
|
193
|
+
// grepping transcript dirs. Mirrors the Claude blocker's symmetric
|
|
194
|
+
// staging (hook-pre-tool-use.ts) so arg-less approval after a Codex
|
|
195
|
+
// PreToolUse block has the same shape. Best-effort: a staging-write
|
|
196
|
+
// failure must not escalate a gate block into a hook error.
|
|
197
|
+
if (generatedDir !== undefined) {
|
|
198
|
+
try {
|
|
199
|
+
writePendingApproval(generatedDir, sessionId);
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
/* best-effort; the block below proceeds regardless */
|
|
203
|
+
}
|
|
204
|
+
}
|
|
190
205
|
// Neither operator source approved. Codex blocks via non-zero exit
|
|
191
206
|
// + stderr reason; there is no JSON-decision wire to write to stdout.
|
|
192
207
|
const reason = generatedDir !== undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-codex-pre-tool-use.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-codex-pre-tool-use.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,qEAAqE;AACrE,wEAAwE;AACxE,4BAA4B;AAC5B,EAAE;AACF,+DAA+D;AAC/D,wEAAwE;AACxE,+DAA+D;AAC/D,0CAA0C;AAC1C,mEAAmE;AACnE,sCAAsC;AACtC,qEAAqE;AACrE,oEAAoE;AACpE,sEAAsE;AACtE,0DAA0D;AAC1D,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,qEAAqE;AAErE,OAAO,EAAE,gBAAgB,EAAoB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,sEAAsE,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"hook-codex-pre-tool-use.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-codex-pre-tool-use.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,qEAAqE;AACrE,wEAAwE;AACxE,4BAA4B;AAC5B,EAAE;AACF,+DAA+D;AAC/D,wEAAwE;AACxE,+DAA+D;AAC/D,0CAA0C;AAC1C,mEAAmE;AACnE,sCAAsC;AACtC,qEAAqE;AACrE,oEAAoE;AACpE,sEAAsE;AACtE,0DAA0D;AAC1D,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,qEAAqE;AAErE,OAAO,EAAE,gBAAgB,EAAoB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,sEAAsE,CAAC;AAC9E,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAgD,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAsB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,SAAS,GAAG,gCAAgC,CAAC;AACnD,MAAM,UAAU,GAAG,CAAC,CAAC;AAyCrB,KAAK,UAAU,SAAS,CAAC,MAA6B;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,IAAI,IAAI,KAAK,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CACpB,GAAY,EACZ,MAA6B;IAE7B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CACV,+CAA+C,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CACnB,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,UAAqB;IAC1C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB;IAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,QAAkB,EAClB,SAAiB,EACjB,IAAoC;IAEpC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC5E,CAAC;QACD,OAAO,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3C,CAAC,CAAC,MAAM,CAAC,OAAO;QAChB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC;IAC7E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;QACpC,UAAU,EAAE,OAAO;QACnB,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC3B,SAAS;QACT,SAAS;KACV,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,WAAW,CAClB,MAAc,EACd,MAAqC,EACrC,MAA6B;IAE7B,MAAM,UAAU,GAAG,4BAA4B,MAAM,aAAa,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;IAChC,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;QACjD,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAuC,EAAE;IAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;IAExC,mEAAmE;IACnE,kCAAkC;IAClC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,KAAK,GAAuB,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAuB,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;IAED,MAAM,SAAS,GACb,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAChC,EAAE,CAAC;IACL,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;IAExE,yEAAyE;IACzE,wDAAwD;IACxD,CAAC;QACC,MAAM,SAAS,GAA+C;YAC5D,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,oBAAoB;YAC/B,MAAM;SACP,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAChF,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3C,OAAO,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,oDAAoD;IACpD,IAAI,QAAkB,CAAC;IACvB,IAAI,YAAgC,CAAC;IACrC,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3B,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAChB,yBAA0B,GAAa,CAAC,OAAO,GAAG,EAClD,MAAM,EACN,MAAM,CACP,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,WAAW,CAAC,SAAS,QAAQ,4BAA4B,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,WAAW,CAAC,SAAS,QAAQ,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,OAAO,WAAW,CAChB,6EAA6E,EAC7E,MAAM,EACN,MAAM,CACP,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,MAAM,YAAY,GAChB,IAAI,CAAC,YAAY;QACjB,CAAC,YAAY,KAAK,SAAS;YACzB,CAAC,CAAC,mBAAmB,CAAC;gBAClB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,YAAY;aACb,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,oEAAoE;IACpE,+DAA+D;IAC/D,oEAAoE;IACpE,4DAA4D;IAC5D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,iBAAiB,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,2BAA2B;IAC3B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAE5D,oEAAoE;IACpE,2DAA2D;IAC3D,qEAAqE;IACrE,mEAAmE;IACnE,oEAAoE;IACpE,oEAAoE;IACpE,4DAA4D;IAC5D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,oBAAoB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,sEAAsE;IACtE,MAAM,MAAM,GAAG,YAAY,KAAK,SAAS;QACvC,CAAC,CAAC,kCAAkC,SAAS,KAAK,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;QACnF,CAAC,CAAC,sDAAsD,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;IAC5F,sEAAsE;IACtE,6DAA6D;IAC7D,mEAAmE;IACnE,iEAAiE;IACjE,uBAAuB;IACvB,MAAM,QAAQ,GAAG,aAAa,CAC3B,QAAQ,CAAC,MAAkC,CAAC,IAAI,CAAC,EAClD,MAAM,CACP,CAAC;IACF,MAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC7E,CAAC,CAAC,wGAAwG,sBAAsB,EAAE,EAAE,CAAC;IACvI,MAAM,UAAU,GAAG,QAAQ;QACzB,CAAC,CAAC,mCAAmC,MAAM,MAAM,WAAW,EAAE;QAC9D,CAAC,CAAC,mCAAmC,MAAM,WAAW,QAAQ,KAAK,WAAW,EAAE,CAAC;IACnF,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;IAChC,OAAO;QACL,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QAClE,UAAU;KACX,CAAC;AACJ,CAAC"}
|
package/dist/cli/pack/remove.js
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
// `.last-apply` file entries are pruned, so the next `harness apply` is
|
|
9
9
|
// a clean no-op.
|
|
10
10
|
import * as fs from "node:fs";
|
|
11
|
-
import * as os from "node:os";
|
|
12
11
|
import * as path from "node:path";
|
|
13
12
|
import { parse as parseYaml } from "yaml";
|
|
13
|
+
import { resolveHomeDir } from "../../runtime/home-dir.js";
|
|
14
14
|
import { atomicWriteFile } from "../../io/atomic-write.js";
|
|
15
15
|
import { resolveGeneratedDir } from "../../io/generated-dir.js";
|
|
16
16
|
import { writeLastApply } from "../../io/last-apply.js";
|
|
@@ -25,7 +25,7 @@ const LOCK_BASENAME = ".harness.lock";
|
|
|
25
25
|
function resolveTargetPath(opts) {
|
|
26
26
|
if (opts.configPath)
|
|
27
27
|
return path.resolve(opts.configPath);
|
|
28
|
-
return path.join(opts.homeDir
|
|
28
|
+
return path.join(resolveHomeDir({ ...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}) }).path, DEFAULT_BASENAME);
|
|
29
29
|
}
|
|
30
30
|
function packFileKeys(record, packName) {
|
|
31
31
|
if (!record)
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/pack/remove.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/remove/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
|
-
import * as os from "node:os";
|
|
3
2
|
import * as path from "node:path";
|
|
4
3
|
import { parse as parseYaml } from "yaml";
|
|
5
4
|
import { atomicWriteFile } from "../../io/atomic-write.js";
|
|
5
|
+
import { resolveHomeDir } from "../../runtime/home-dir.js";
|
|
6
6
|
import { withFileLock } from "../../io/lock.js";
|
|
7
7
|
import { unifiedDiff } from "../../io/patch.js";
|
|
8
8
|
import { formatValidationErrors, validateBeforeWrite, } from "../../io/validate-before-write.js";
|
|
@@ -13,7 +13,7 @@ const LOCK_BASENAME = ".harness.lock";
|
|
|
13
13
|
function resolveTargetPath(opts) {
|
|
14
14
|
if (opts.configPath)
|
|
15
15
|
return path.resolve(opts.configPath);
|
|
16
|
-
return path.join(opts.homeDir
|
|
16
|
+
return path.join(resolveHomeDir({ ...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}) }).path, DEFAULT_BASENAME);
|
|
17
17
|
}
|
|
18
18
|
function formatNameList(names) {
|
|
19
19
|
if (names.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/remove/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/remove/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,13 +19,14 @@ const MODES = ["fast_confirm", "grill_me", "strict"];
|
|
|
19
19
|
export const DEFAULT_MODE = "grill_me";
|
|
20
20
|
const HOOK_NAME_PREFIX = `policy-pack:${PACK_NAME}`;
|
|
21
21
|
// Per-runtime hook surface. Claude Code keys on tool name (Edit|Write|Bash);
|
|
22
|
-
// Codex's write surface is `apply_patch`
|
|
23
|
-
//
|
|
24
|
-
// same generic envelope harness publishes:
|
|
25
|
-
// raw_input, event }` on stdin, `{ decision }`
|
|
26
|
-
// block. See dogfood/phase6-6/README.md for the wire
|
|
22
|
+
// Codex's write surface is `apply_patch` plus shell tool aliases used by
|
|
23
|
+
// current runtimes (`Bash`/`shell`/`exec_command`). The hook contract Codex
|
|
24
|
+
// feeds to the adapter is the same generic envelope harness publishes:
|
|
25
|
+
// `{ session_id, tool_name, raw_input, event }` on stdin, `{ decision }`
|
|
26
|
+
// on stdout, exit 2 on block. See dogfood/phase6-6/README.md for the wire
|
|
27
|
+
// format.
|
|
27
28
|
const PRE_TOOL_USE_MATCH_CLAUDE = "Edit|Write|Bash";
|
|
28
|
-
const PRE_TOOL_USE_MATCH_CODEX = "apply_patch|Bash|shell";
|
|
29
|
+
const PRE_TOOL_USE_MATCH_CODEX = "apply_patch|Bash|shell|exec_command|functions.exec_command";
|
|
29
30
|
// UserPromptSubmit + Stop hooks point at `@lannguyensi/understanding-gate`
|
|
30
31
|
// bare bin names (npm i -g). The harness validator's checkHooks skips
|
|
31
32
|
// PATH lookup for non-rooted commands by design, so missing-bin shows
|
|
@@ -46,7 +47,7 @@ const PRE_TOOL_USE_COMMAND_CLAUDE = "harness pack hook pre-tool-use";
|
|
|
46
47
|
// - UserPromptSubmit-equivalent injector (Phase 6 #6).
|
|
47
48
|
// - Stop-equivalent capture into `.understanding-gate/reports/`
|
|
48
49
|
// (Phase 6 #6 follow-up).
|
|
49
|
-
// - PreToolUse blocker on apply_patch
|
|
50
|
+
// - PreToolUse blocker on apply_patch plus Codex shell aliases (Phase 6 #6).
|
|
50
51
|
//
|
|
51
52
|
// Cross-runtime sessions can still approve from a Claude Code report:
|
|
52
53
|
// the ledger tag is the canonical source for harnessed sessions,
|
|
@@ -58,7 +59,7 @@ const COMMAND_USER_PROMPT_SUBMIT_CODEX = "harness pack hook codex-user-prompt-su
|
|
|
58
59
|
const COMMAND_STOP_CODEX = "harness pack hook codex-stop";
|
|
59
60
|
const COMMAND_PRE_TOOL_USE_CODEX = "harness pack hook codex-pre-tool-use";
|
|
60
61
|
export function isMode(value) {
|
|
61
|
-
return typeof value === "string" && MODES.includes(value);
|
|
62
|
+
return (typeof value === "string" && MODES.includes(value));
|
|
62
63
|
}
|
|
63
64
|
/**
|
|
64
65
|
* POSIX single-quote-escape for an arbitrary path. Safe inside the
|
|
@@ -177,7 +178,7 @@ function buildHooks(runtime, pack, opts = {}) {
|
|
|
177
178
|
command: wrap(COMMAND_PRE_TOOL_USE_CODEX),
|
|
178
179
|
blocking: "hard",
|
|
179
180
|
budget_ms: 5000,
|
|
180
|
-
description: "Codex adapter: block apply_patch
|
|
181
|
+
description: "Codex adapter: block apply_patch and Codex shell tools until an approved Understanding Report exists for the session. Consults both the evidence-ledger tag and the persisted JSON report.",
|
|
181
182
|
},
|
|
182
183
|
];
|
|
183
184
|
}
|
|
@@ -191,7 +192,10 @@ function buildHooks(runtime, pack, opts = {}) {
|
|
|
191
192
|
// harness PR #169. The PreToolUse blocker below is the harness CLI
|
|
192
193
|
// itself, not an npm-backed bin, so it does not carry a floor here.
|
|
193
194
|
const UG_MIN_VERSION = "0.3.1";
|
|
194
|
-
const UG_VERSION_COMMAND = [
|
|
195
|
+
const UG_VERSION_COMMAND = [
|
|
196
|
+
"understanding-gate",
|
|
197
|
+
"--version",
|
|
198
|
+
];
|
|
195
199
|
return [
|
|
196
200
|
{
|
|
197
201
|
name: `${HOOK_NAME_PREFIX}:user-prompt-submit`,
|
|
@@ -280,10 +284,16 @@ function modeFriction(mode) {
|
|
|
280
284
|
function buildInstructions(pack, mode, runtime) {
|
|
281
285
|
const description = pack.description?.trim() ?? "";
|
|
282
286
|
const isCodex = runtime === "codex";
|
|
283
|
-
const injectorCmd = isCodex
|
|
287
|
+
const injectorCmd = isCodex
|
|
288
|
+
? COMMAND_USER_PROMPT_SUBMIT_CODEX
|
|
289
|
+
: BIN_USER_PROMPT_SUBMIT_CLAUDE;
|
|
284
290
|
const stopCmd = isCodex ? COMMAND_STOP_CODEX : BIN_STOP_CLAUDE;
|
|
285
|
-
const blockerCmd = isCodex
|
|
286
|
-
|
|
291
|
+
const blockerCmd = isCodex
|
|
292
|
+
? COMMAND_PRE_TOOL_USE_CODEX
|
|
293
|
+
: PRE_TOOL_USE_COMMAND_CLAUDE;
|
|
294
|
+
const blockerMatch = isCodex
|
|
295
|
+
? PRE_TOOL_USE_MATCH_CODEX
|
|
296
|
+
: PRE_TOOL_USE_MATCH_CLAUDE;
|
|
287
297
|
const settingsArtefact = isCodex
|
|
288
298
|
? "`harness.generated/codex/config.toml`"
|
|
289
299
|
: "harness-managed `settings.json`";
|
|
@@ -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;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAE9E,MAAM,CAAC,MAAM,SAAS,GAAG,gCAAgC,CAAC;AAI1D,MAAM,KAAK,GAAoB,CAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,YAAY,GAAS,UAAU,CAAC;AAE7C,MAAM,gBAAgB,GAAG,eAAe,SAAS,EAAE,CAAC;AAEpD,6EAA6E;AAC7E,
|
|
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;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAE9E,MAAM,CAAC,MAAM,SAAS,GAAG,gCAAgC,CAAC;AAI1D,MAAM,KAAK,GAAoB,CAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,YAAY,GAAS,UAAU,CAAC;AAE7C,MAAM,gBAAgB,GAAG,eAAe,SAAS,EAAE,CAAC;AAEpD,6EAA6E;AAC7E,yEAAyE;AACzE,4EAA4E;AAC5E,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,UAAU;AACV,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AACpD,MAAM,wBAAwB,GAC5B,4DAA4D,CAAC;AAE/D,2EAA2E;AAC3E,sEAAsE;AACtE,sEAAsE;AACtE,sEAAsE;AACtE,+BAA+B;AAC/B,MAAM,6BAA6B,GAAG,gCAAgC,CAAC;AACvE,MAAM,eAAe,GAAG,gCAAgC,CAAC;AACzD,yEAAyE;AACzE,sEAAsE;AACtE,iEAAiE;AACjE,yEAAyE;AACzE,mEAAmE;AACnE,0BAA0B;AAC1B,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AAErE,qEAAqE;AACrE,wDAAwD;AACxD,EAAE;AACF,yDAAyD;AACzD,kEAAkE;AAClE,8BAA8B;AAC9B,+EAA+E;AAC/E,EAAE;AACF,sEAAsE;AACtE,iEAAiE;AACjE,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,0DAA0D;AAC1D,MAAM,gCAAgC,GACpC,4CAA4C,CAAC;AAC/C,MAAM,kBAAkB,GAAG,8BAA8B,CAAC;AAC1D,MAAM,0BAA0B,GAAG,sCAAsC,CAAC;AAE1E,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAK,KAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC1E,CAAC;AACJ,CAAC;AAkBD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,CAAS;IACjC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,2BAA2B,CAClC,OAAe,EACf,UAA8B;IAE9B,IAAI,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC;IAChC,OAAO,GAAG,eAAe,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAgB;IAI1C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACpE,IAAI,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,gBAAgB,IAAI,CAAC,IAAI,qCAAqC,IAAI,CAAC,SAAS,CAC1F,GAAG,CACJ,sBAAsB,YAAY,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACtE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC;AAED,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,iDAAiD;AACjD,MAAM,4BAA4B,GAA0B;IAC1D,+BAA+B;IAC/B,gCAAgC;IAChC,uCAAuC;IACvC,yEAAyE;IACzE,sEAAsE;IACtE,qEAAqE;IACrE,uDAAuD;IACvD,oCAAoC;CACrC,CAAC;AAEF,MAAM,4BAA4B,GAAG,iCAAiC,CAAC;AACvE,MAAM,iCAAiC,GACrC,sCAAsC,CAAC;AAEzC,wEAAwE;AACxE,sEAAsE;AACtE,sEAAsE;AACtE,mEAAmE;AACnE,MAAM,wBAAwB,GAC5B,oIAAoI,CAAC;AAEvI;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,KAA4B;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3E,OAAO,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACtC,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAgB;IAIhD,MAAM,GAAG,GAAI,IAAI,CAAC,MAAkC,CAAC,oBAAoB,CAAC,CAAC;IAC3E,qEAAqE;IACrE,oEAAoE;IACpE,4DAA4D;IAC5D,2CAA2C;IAC3C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,4BAA4B,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,4BAA4B,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtE,CAAC;IACD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CACvB,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAC1D,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,4BAA4B,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,UAAU,CACjB,OAAgB,EAChB,IAAgB,EAChB,OAA2B,EAAE;IAE7B,mEAAmE;IACnE,oEAAoE;IACpE,sEAAsE;IACtE,mEAAmE;IACnE,EAAE;IACF,kEAAkE;IAClE,wEAAwE;IACxE,oEAAoE;IACpE,2CAA2C;IAC3C,MAAM,IAAI,GAAG,CAAC,GAAW,EAAU,EAAE,CACnC,2BAA2B,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO;YACL;gBACE,IAAI,EAAE,GAAG,gBAAgB,2BAA2B;gBACpD,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,gCAAgC;gBACzC,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EACT,sGAAsG;aACzG;YACD;gBACE,IAAI,EAAE,GAAG,gBAAgB,aAAa;gBACtC,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC;gBACjC,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EACT,4IAA4I;aAC/I;YACD;gBACE,IAAI,EAAE,GAAG,gBAAgB,qBAAqB;gBAC9C,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,wBAAwB;gBAC/B,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC;gBACzC,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,IAAI;gBACf,WAAW,EACT,4LAA4L;aAC/L;SACF,CAAC;IACJ,CAAC;IACD,yEAAyE;IACzE,oEAAoE;IACpE,qEAAqE;IACrE,qEAAqE;IACrE,iEAAiE;IACjE,sEAAsE;IACtE,qEAAqE;IACrE,mEAAmE;IACnE,oEAAoE;IACpE,MAAM,cAAc,GAAG,OAAO,CAAC;IAC/B,MAAM,kBAAkB,GAAqB;QAC3C,oBAAoB;QACpB,WAAW;KACZ,CAAC;IACF,OAAO;QACL;YACE,IAAI,EAAE,GAAG,gBAAgB,qBAAqB;YAC9C,KAAK,EAAE,kBAAkB;YACzB,OAAO,EAAE,6BAA6B;YACtC,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,cAAc;YAC3B,eAAe,EAAE,kBAAkB;YACnC,WAAW,EACT,oHAAoH;SACvH;QACD;YACE,IAAI,EAAE,GAAG,gBAAgB,OAAO;YAChC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC;YAC9B,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,cAAc;YAC3B,eAAe,EAAE,kBAAkB;YACnC,WAAW,EACT,sHAAsH;SACzH;QACD;YACE,IAAI,EAAE,GAAG,gBAAgB,eAAe;YACxC,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,yBAAyB;YAChC,OAAO,EAAE,IAAI,CAAC,2BAA2B,CAAC;YAC1C,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,IAAI;YACf,WAAW,EACT,kMAAkM;SACrM;QACD,sEAAsE;QACtE,oEAAoE;QACpE,oEAAoE;QACpE,wEAAwE;QACxE,oEAAoE;QACpE,mEAAmE;QACnE,gEAAgE;QAChE,kDAAkD;QAClD,GAAG,CAAC,GAAW,EAAE;YACf,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,GAAS;gBACjB,IAAI,EAAE,GAAG,gBAAgB,gBAAgB;gBACzC,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC;gBACrC,+DAA+D;gBAC/D,4DAA4D;gBAC5D,gEAAgE;gBAChE,4DAA4D;gBAC5D,OAAO,EAAE,IAAI,CAAC,4BAA4B,CAAC;gBAC3C,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EACT,0NAA0N;aAC7N,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,EAAE;QACJ,+DAA+D;QAC/D,mEAAmE;QACnE,gEAAgE;QAChE,6DAA6D;QAC7D,iEAAiE;QACjE,6DAA6D;QAC7D,+CAA+C;QAC/C;YACE,IAAI,EAAE,GAAG,gBAAgB,qBAAqB;YAC9C,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,wBAAwB;YAC/B,OAAO,EAAE,iCAAiC;YAC1C,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,WAAW,EACT,kNAAkN;SACrN;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAU;IAC9B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,oIAAoI,CAAC;QAC9I,KAAK,UAAU;YACb,OAAO,wNAAwN,CAAC;QAClO,KAAK,QAAQ;YACX,OAAO,8IAA8I,CAAC;IAC1J,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAgB,EAChB,IAAU,EACV,OAAgB;IAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,KAAK,OAAO,CAAC;IACpC,MAAM,WAAW,GAAG,OAAO;QACzB,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,6BAA6B,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe,CAAC;IAC/D,MAAM,UAAU,GAAG,OAAO;QACxB,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,2BAA2B,CAAC;IAChC,MAAM,YAAY,GAAG,OAAO;QAC1B,CAAC,CAAC,wBAAwB;QAC1B,CAAC,CAAC,yBAAyB,CAAC;IAC9B,MAAM,gBAAgB,GAAG,OAAO;QAC9B,CAAC,CAAC,uCAAuC;QACzC,CAAC,CAAC,iCAAiC,CAAC;IACtC,MAAM,UAAU,GAAG,0BAA0B,OAAO;;;CAGrD,CAAC;IACA,MAAM,cAAc,GAAG,GAAG,CAAC;IAC3B,OAAO,kBAAkB,SAAS;;;UAG1B,WAAW;;;;;;;EAOnB,OAAO;;;;EAIP,IAAI;;EAEJ,YAAY,CAAC,IAAI,CAAC;;;;uDAImC,gBAAgB;;sCAEjC,WAAW;;EAE/C,UAAU,GAAG,cAAc,+BAA+B,UAAU;UAC5D,YAAY;;;;;;;;;;;;;;;;;EAiBpB,WAAW,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;YAEtD,SAAS;YACT,IAAI;eACD,OAAO;;;;;;CAMrB,CAAC;AACF,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAgB;IAIhD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC9C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,gBAAgB,IAAI,CAAC,IAAI,uDAAuD,OAAO,GAAG,qCAAqC;SACzI,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,gBAAgB,IAAI,CAAC,IAAI,qDAAqD,IAAI,CAAC,SAAS,CACnG,GAAG,CACJ,cAAc,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC;SACnF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1D,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,IAAgB,EAChB,UAAmB,eAAe,EAClC,OAA2B,EAAE;IAE7B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,KAAK,GAA2B;QACpC;YACE,YAAY,EAAE,gBAAgB,SAAS,kBAAkB;YACzD,OAAO,EAAE,mBAAmB;SAC7B;KACF,CAAC;IACF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,OAAO;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,aAAa,CAAC,OAAO;QAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,YAAY,GAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACxD,IAAI,aAAa,CAAC,WAAW;QAC3B,YAAY,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IAEvD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare const HARNESS_HOME_DIRNAME = ".harness";
|
|
2
|
+
export declare const LEGACY_HARNESS_HOME_DIRNAME = ".claude";
|
|
3
|
+
export declare const HARNESS_HOME_ENV = "HARNESS_HOME";
|
|
4
|
+
export interface ResolveHomeDirOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Explicit override. Tests inject a tmp dir here; the CLI passes the
|
|
7
|
+
* `--home` flag value when set.
|
|
8
|
+
*/
|
|
9
|
+
homeDir?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Stream to write the legacy-fallback deprecation warning to. Defaults
|
|
12
|
+
* to `process.stderr`. Tests can capture by passing a buffer-backed
|
|
13
|
+
* Writable.
|
|
14
|
+
*/
|
|
15
|
+
stderr?: NodeJS.WritableStream;
|
|
16
|
+
/**
|
|
17
|
+
* Test injection: override `os.homedir()`. The `homeDir` field is for
|
|
18
|
+
* an explicit harness state-root; this is for the operator's `$HOME`
|
|
19
|
+
* which the new + legacy preferred-existence checks anchor on.
|
|
20
|
+
*/
|
|
21
|
+
userHome?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface HomeDirResolution {
|
|
24
|
+
/** Resolved harness state-root directory. */
|
|
25
|
+
path: string;
|
|
26
|
+
/**
|
|
27
|
+
* Which precedence tier won. `legacy` indicates the deprecation
|
|
28
|
+
* warning fired (or would have, had it not already fired this
|
|
29
|
+
* process).
|
|
30
|
+
*/
|
|
31
|
+
source: "explicit" | "env" | "new" | "legacy" | "default-new";
|
|
32
|
+
}
|
|
33
|
+
export declare function resolveHomeDir(opts?: ResolveHomeDirOptions): HomeDirResolution;
|
|
34
|
+
/**
|
|
35
|
+
* Reset the per-process warning flag. Test-only — production code never
|
|
36
|
+
* needs to clear this. Exported so vitest's `beforeEach` can isolate
|
|
37
|
+
* test cases without leaking warning state between them.
|
|
38
|
+
*/
|
|
39
|
+
export declare function _resetLegacyWarningForTests(): void;
|