@claudexor/workspace 1.0.0 → 2.1.2

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/dist/git.js CHANGED
@@ -1,8 +1,7 @@
1
- import { appendFileSync, existsSync, readFileSync, rmSync, writeFileSync } from "node:fs";
1
+ import { mkdtempSync, rmSync } from "node:fs";
2
2
  import { tmpdir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  import { parseUnifiedDiff, runCaptureRaw, WorkspaceError } from "@claudexor/core";
5
- import { claudexorArtifactPredicate, trackedArtifactDirPaths } from "./artifact-paths.js";
6
5
  /** BYTE-FAITHFUL git capture: raw buffers, never readline — CR
7
6
  * bytes in CRLF diff content survive, and no trailing newline is fabricated
8
7
  * (trim-based consumers like revParse are unaffected: git ends its own
@@ -12,8 +11,12 @@ export async function git(repo, args, input) {
12
11
  return { code: r.code, stdout: r.stdout, stderr: r.stderr };
13
12
  }
14
13
  /** `git` with extra environment (e.g. a scratch GIT_INDEX_FILE for snapshots). */
15
- async function gitEnv(repo, args, env) {
16
- const r = await runCaptureRaw("git", ["-C", repo, ...args], { timeoutMs: 60_000, env });
14
+ async function gitEnv(repo, args, env, input) {
15
+ const r = await runCaptureRaw("git", ["-C", repo, ...args], {
16
+ timeoutMs: 60_000,
17
+ env,
18
+ input,
19
+ });
17
20
  return { code: r.code, stdout: r.stdout, stderr: r.stderr };
18
21
  }
19
22
  export async function isGitRepo(repo) {
@@ -26,7 +29,6 @@ export async function revParse(repo, ref) {
26
29
  throw new WorkspaceError(`git rev-parse ${ref} failed: ${r.stderr.trim()}`);
27
30
  return r.stdout.trim();
28
31
  }
29
- const GITIGNORE_SEED = ".claudexor/";
30
32
  /**
31
33
  * Make a project folder usable as a git boundary for write-mode runs.
32
34
  *
@@ -34,8 +36,8 @@ const GITIGNORE_SEED = ".claudexor/";
34
36
  * quick start is `mkdir && git init && codex`); Claudexor goes one step
35
37
  * further and creates the boundary itself, announced via the
36
38
  * `project.git.initialized` run event. The baseline commit makes worktree
37
- * diffs honest from the very first run; `.claudexor/` is seeded into
38
- * .gitignore FIRST so run artifacts never enter the baseline.
39
+ * diffs honest from the first run. Runtime is external, so project ignore
40
+ * files are never created or edited as a side effect.
39
41
  *
40
42
  * The baseline commit is authored as "Claudexor" deterministically — it is a
41
43
  * tool-created commit and must not depend on (or pollute) user git identity.
@@ -44,25 +46,12 @@ export async function ensureGitRepository(repo) {
44
46
  const isRepo = await isGitRepo(repo);
45
47
  const hasHead = isRepo && (await git(repo, ["rev-parse", "--verify", "HEAD"])).code === 0;
46
48
  if (isRepo && hasHead) {
47
- return { initialized: false, baselineCommitted: false, gitignoreSeeded: false, headSha: await revParse(repo, "HEAD") };
48
- }
49
- let gitignoreSeeded = false;
50
- const gitignorePath = join(repo, ".gitignore");
51
- if (!existsSync(gitignorePath)) {
52
- writeFileSync(gitignorePath, `${GITIGNORE_SEED}\n`, "utf8");
53
- gitignoreSeeded = true;
54
- }
55
- else {
56
- const raw = readFileSync(gitignorePath, "utf8");
57
- const lines = raw.split("\n").map((l) => l.trim());
58
- if (!lines.includes(GITIGNORE_SEED) && !lines.includes(".claudexor")) {
59
- // A missing trailing newline would concatenate the seed onto the last
60
- // pattern (e.g. "node_modules.claudexor/"), silently un-ignoring run
61
- // artifacts right before the baseline `git add -A`.
62
- const separator = raw.length > 0 && !raw.endsWith("\n") ? "\n" : "";
63
- appendFileSync(gitignorePath, `${separator}${GITIGNORE_SEED}\n`, "utf8");
64
- gitignoreSeeded = true;
65
- }
49
+ return {
50
+ initialized: false,
51
+ baselineCommitted: false,
52
+ gitignoreSeeded: false,
53
+ headSha: await revParse(repo, "HEAD"),
54
+ };
66
55
  }
67
56
  let initialized = false;
68
57
  if (!isRepo) {
@@ -87,7 +76,12 @@ export async function ensureGitRepository(repo) {
87
76
  ]);
88
77
  if (commit.code !== 0)
89
78
  throw new WorkspaceError(`baseline commit failed during repository initialization: ${commit.stderr.trim()}`);
90
- return { initialized, baselineCommitted: true, gitignoreSeeded, headSha: await revParse(repo, "HEAD") };
79
+ return {
80
+ initialized,
81
+ baselineCommitted: true,
82
+ gitignoreSeeded: false,
83
+ headSha: await revParse(repo, "HEAD"),
84
+ };
91
85
  }
92
86
  export async function statusPorcelain(repo) {
93
87
  return (await git(repo, ["status", "--porcelain"])).stdout;
@@ -100,16 +94,12 @@ export async function statusPorcelain(repo) {
100
94
  * respects .gitignore, so run artifacts stay out), and commit-tree the result.
101
95
  */
102
96
  export async function stashCreate(repo) {
103
- const status = await statusPorcelain(repo);
104
- // Claudexor's own run/workspace artifacts are never part of the user's dirty
105
- // state (concurrent envelope creation materializes `.claudexor/workspaces/...`
106
- // inside the repo); snapshotting them would bake run artifacts into the base.
107
- const isArtifact = await claudexorArtifactPredicate(repo);
108
- const meaningful = status
109
- .split("\n")
110
- .map((l) => l.slice(3).trim().replace(/^"|"$/g, ""))
111
- .filter((p) => p.length > 0 && !isArtifact(p));
112
- if (meaningful.length === 0)
97
+ // NUL form is filename-faithful (newlines, quotes and whitespace are legal
98
+ // path bytes). Runtime is external, so every reported path is user state.
99
+ const status = await git(repo, ["status", "--porcelain=v1", "-z", "--untracked-files=all"]);
100
+ if (status.code !== 0)
101
+ throw new WorkspaceError(`snapshot status failed: ${status.stderr.trim()}`);
102
+ if (status.stdout.length === 0)
113
103
  return null;
114
104
  const head = await git(repo, ["rev-parse", "HEAD"]);
115
105
  if (head.code !== 0)
@@ -119,7 +109,8 @@ export async function stashCreate(repo) {
119
109
  // collide on the scratch index (same pid + same millisecond is real). It lives
120
110
  // in the OS temp dir, NOT under `<repo>/.git` — in a linked worktree `.git` is
121
111
  // a FILE (gitdir pointer), so a scratch path there fails (review #8).
122
- const tmpIndex = join(tmpdir(), `claudexor-snapshot-index-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`);
112
+ const scratchDir = mkdtempSync(join(tmpdir(), "claudexor-snapshot-index-"));
113
+ const tmpIndex = join(scratchDir, "index");
123
114
  const env = {
124
115
  GIT_INDEX_FILE: tmpIndex,
125
116
  GIT_AUTHOR_NAME: "Claudexor",
@@ -131,42 +122,24 @@ export async function stashCreate(repo) {
131
122
  const read = await gitEnv(repo, ["read-tree", "HEAD"], env);
132
123
  if (read.code !== 0)
133
124
  throw new WorkspaceError(`snapshot read-tree failed: ${read.stderr.trim()}`);
134
- // Bare `git add -A` with NO pathspec. A pathspec — positive OR `:(exclude)` —
135
- // that *names* an ignored path makes git hard-error ("paths are ignored ...
136
- // use -f") when the project's own .gitignore lists `.claudexor` (the in-place
137
- // bug the user hit). Bare `add -A` honors .gitignore and silently skips ignored
138
- // paths instead. We then unstage `.claudexor` from the SCRATCH index so run
139
- // artifacts never enter the snapshot even when `.claudexor` is NOT gitignored
140
- // (concurrent envelope materialization); `--ignore-unmatch` makes the already-
141
- // ignored case a clean no-op rather than an error.
125
+ // Bare add runs only against the scratch index. It respects the project's
126
+ // own ignore policy without changing the live index. `.claudexor/` is not a
127
+ // runtime exception in v2: tracked or untracked project config is user state.
142
128
  const add = await gitEnv(repo, ["add", "-A"], env);
143
129
  if (add.code !== 0)
144
130
  throw new WorkspaceError(`snapshot add -A failed: ${add.stderr.trim()}`);
145
- // TRACKED files under the artifact dirs are USER STATE (versioned config)
146
- // — capture them (INDEX ∪ HEAD via the shared owner: index alone misses a
147
- // user-STAGED deletion, HEAD alone misses a user-staged new config) and
148
- // restore the still-present ones after the bulk unstage, so a tracked
149
- // .claudexor/config.yaml edit survives into the snapshot TREE while a
150
- // staged deletion stays deleted. Reads the REAL index (no scratch env):
151
- // the scratch index just add -A'd runtime artifacts, which must not
152
- // masquerade as tracked.
153
- const trackedKeep = [...(await trackedArtifactDirPaths(repo))];
154
- const unstage = await gitEnv(repo, ["rm", "-r", "--cached", "--quiet", "--ignore-unmatch", ".claudexor", ".claudexor-review-evidence"], env);
155
- if (unstage.code !== 0)
156
- throw new WorkspaceError(`snapshot exclude .claudexor failed: ${unstage.stderr.trim()}`);
157
- // Only re-add paths still PRESENT in the worktree: a deleted tracked
158
- // file stays absent from the scratch index — that IS the deletion.
159
- const keepPresent = trackedKeep.filter((p) => existsSync(join(repo, p)));
160
- if (keepPresent.length > 0) {
161
- const readd = await gitEnv(repo, ["add", "-f", "--", ...keepPresent], env);
162
- if (readd.code !== 0)
163
- throw new WorkspaceError(`snapshot re-add of tracked artifact-dir files failed: ${readd.stderr.trim()}`);
164
- }
165
131
  const writeTree = await gitEnv(repo, ["write-tree"], env);
166
132
  if (writeTree.code !== 0)
167
133
  throw new WorkspaceError(`snapshot write-tree failed: ${writeTree.stderr.trim()}`);
168
134
  const tree = writeTree.stdout.trim();
169
- const commit = await gitEnv(repo, ["commit-tree", tree, "-p", headSha, "-m", "claudexor: dirty worktree snapshot (incl. untracked)"], env);
135
+ const commit = await gitEnv(repo, [
136
+ "commit-tree",
137
+ tree,
138
+ "-p",
139
+ headSha,
140
+ "-m",
141
+ "claudexor: dirty worktree snapshot (incl. untracked)",
142
+ ], env);
170
143
  if (commit.code !== 0)
171
144
  throw new WorkspaceError(`snapshot commit-tree failed: ${commit.stderr.trim()}`);
172
145
  const sha = commit.stdout.trim();
@@ -174,7 +147,7 @@ export async function stashCreate(repo) {
174
147
  }
175
148
  finally {
176
149
  try {
177
- rmSync(tmpIndex, { force: true });
150
+ rmSync(scratchDir, { recursive: true, force: true });
178
151
  }
179
152
  catch {
180
153
  /* scratch index cleanup is best-effort */
@@ -204,6 +177,42 @@ export async function diffTrees(repo, baseSha, endSha) {
204
177
  assertNoBinaryStubs(r.stdout, `git diff ${baseSha} ${endSha}`);
205
178
  return r.stdout;
206
179
  }
180
+ /**
181
+ * Materialize a patch against an exact base in a scratch index and return the
182
+ * resulting tree id. The live index and worktree are never consulted or
183
+ * changed. Commit-class delivery uses this as its expected candidate tree so a
184
+ * concurrently staged user path can never be swept into a Claudexor commit.
185
+ */
186
+ export async function materializePatchTree(repo, baseSha, diff) {
187
+ const scratchDir = mkdtempSync(join(tmpdir(), "claudexor-patch-index-"));
188
+ const indexPath = join(scratchDir, "index");
189
+ const env = { GIT_INDEX_FILE: indexPath, GIT_OPTIONAL_LOCKS: "0" };
190
+ try {
191
+ const read = await gitEnv(repo, ["read-tree", baseSha], env);
192
+ if (read.code !== 0) {
193
+ throw new WorkspaceError(`git read-tree ${baseSha} failed during patch materialization: ${read.stderr.trim()}`);
194
+ }
195
+ if (diff.trim()) {
196
+ const applied = await gitEnv(repo, ["apply", "--cached", "--whitespace=nowarn", "-"], env, diff);
197
+ if (applied.code !== 0) {
198
+ throw new WorkspaceError(`scratch git apply failed during patch materialization: ${applied.stderr.trim()}`);
199
+ }
200
+ }
201
+ const written = await gitEnv(repo, ["write-tree"], env);
202
+ if (written.code !== 0) {
203
+ throw new WorkspaceError(`scratch git write-tree failed: ${written.stderr.trim()}`);
204
+ }
205
+ return written.stdout.trim();
206
+ }
207
+ finally {
208
+ try {
209
+ rmSync(scratchDir, { recursive: true, force: true });
210
+ }
211
+ catch {
212
+ /* scratch index cleanup is best-effort */
213
+ }
214
+ }
215
+ }
207
216
  /** Capture-time honesty: with --binary a payload-less "Binary files differ"
208
217
  * stub should be impossible; if one appears anyway, fail AT CAPTURE with a
209
218
  * typed error instead of shipping a patch that cannot apply. */
@@ -214,15 +223,6 @@ function assertNoBinaryStubs(diff, label) {
214
223
  throw new WorkspaceError(`${label} produced undeliverable binary stub(s) for: ${names}; the work product cannot be applied`);
215
224
  }
216
225
  }
217
- /** Resolve the TREE object sha for a commit-ish. snapshotTree returns COMMIT
218
- * shas whose ids vary by timestamp even for identical content; comparing the
219
- * underlying tree shas is the content-stable equality test. */
220
- async function treeOf(repo, sha) {
221
- const r = await git(repo, ["rev-parse", `${sha}^{tree}`]);
222
- if (r.code !== 0)
223
- throw new WorkspaceError(`rev-parse ${sha}^{tree} failed: ${r.stderr.trim()}`);
224
- return r.stdout.trim();
225
- }
226
226
  /**
227
227
  * Server-owned in-place revert: restore the live working tree to a recorded
228
228
  * pre-turn snapshot, but ONLY when the tree still matches the recorded post-turn
@@ -231,56 +231,41 @@ async function treeOf(repo, sha) {
231
231
  * turn added; `.claudexor` (run artifacts) is always preserved.
232
232
  */
233
233
  export async function revertWorkingTreeTo(repo, preTurnSha, expectedPostSha) {
234
- // Divergence fence (compare content-stable tree shas, never commit shas).
235
- const current = await snapshotTree(repo);
236
- const [currentTree, expectedTree] = await Promise.all([treeOf(repo, current), treeOf(repo, expectedPostSha)]);
237
- if (currentTree !== expectedTree) {
238
- return { reverted: false, removed: [], reason: "working tree diverged from the recorded post-turn state; refusing to revert" };
239
- }
240
- // Files the turn ADDED (in post, absent in pre) must be removed; restore alone
241
- // only reverts tracked modifications/deletions, never deletes extra files.
242
- // `--no-renames` forces a turn rename to surface as delete-old + ADD-new so the
243
- // new path is caught here (rename detection would hide it under an R status).
244
- // `-z`: NUL-separated RAW paths — git C-quotes special names on the
245
- // newline format, and the quoted literal never exists on disk, so rmSync
246
- // "removed" nothing while the old code still reported reverted:true.
247
- const added = await git(repo, ["diff", "--no-renames", "--name-only", "--diff-filter=A", "-z", preTurnSha, expectedPostSha]);
248
- if (added.code !== 0)
249
- throw new WorkspaceError(`revert diff failed: ${added.stderr.trim()}`);
250
- const isArtifact = await claudexorArtifactPredicate(repo);
251
- const toRemove = added.stdout
252
- .split("\0")
253
- .map((l) => l.replace(/\n$/, ""))
254
- .filter((p) => p.length > 0 && !isArtifact(p));
255
- // Restore every path present in the pre-turn snapshot (mods + deletions).
256
- const restore = await git(repo, ["checkout", preTurnSha, "--", "."]);
257
- if (restore.code !== 0)
258
- throw new WorkspaceError(`revert checkout failed: ${restore.stderr.trim()}`);
259
- const removed = [];
260
- const survivors = [];
261
- for (const rel of toRemove) {
262
- try {
263
- rmSync(join(repo, rel), { force: true });
264
- }
265
- catch {
266
- /* verified below: existence decides, not the rm call */
267
- }
268
- if (existsSync(join(repo, rel)))
269
- survivors.push(rel);
270
- else
271
- removed.push(rel);
234
+ // Git itself produces the exact binary/mode/symlink-aware forward patch.
235
+ // Reverse-applying it touches only turn-owned hunks. A later edit that
236
+ // overlaps those hunks makes --check fail; unrelated user edits, staged state,
237
+ // and untracked files remain outside the mutation surface.
238
+ const patch = await diffTrees(repo, preTurnSha, expectedPostSha);
239
+ return revertWorkingTreePatch(repo, patch);
240
+ }
241
+ /** Reverse an immutable turn patch. This is the GC-independent production
242
+ * path used by external revert anchors; the SHA-based wrapper remains useful
243
+ * while capturing and testing snapshots. */
244
+ export async function revertWorkingTreePatch(repo, patch) {
245
+ if (!patch.trim())
246
+ return { reverted: true, removed: [] };
247
+ const removed = parseUnifiedDiff(patch)
248
+ .files.filter((file) => file.added && file.newPath)
249
+ .map((file) => file.newPath);
250
+ const check = await git(repo, ["apply", "--check", "--reverse", "--whitespace=nowarn", "-"], patch);
251
+ if (check.code !== 0) {
252
+ return {
253
+ reverted: false,
254
+ removed: [],
255
+ reason: `turn-owned postimage no longer matches; refusing to overwrite later user edits: ${check.stderr.trim()}`,
256
+ };
272
257
  }
273
- // Re-sync the index so `git status` reflects the restored tree (checkout left
274
- // turn-added paths staged-for-delete handling to us).
275
- await git(repo, ["add", "-A", "--", "."]);
276
- await git(repo, ["reset", "--quiet"]);
277
- if (survivors.length > 0) {
278
- // A survivor means the tree does NOT match the pre-turn state: refusing
279
- // to claim reverted:true is the honesty contract (INV-114 family).
258
+ const before = await statusPorcelain(repo);
259
+ const apply = await git(repo, ["apply", "--reverse", "--whitespace=nowarn", "-"], patch);
260
+ if (apply.code !== 0) {
261
+ const after = await statusPorcelain(repo);
280
262
  return {
281
263
  reverted: false,
282
- removed,
283
- reason: `failed to remove turn-added file(s): ${survivors.join(", ")}`,
264
+ removed: [],
265
+ reason: `reverse apply failed after preflight: ${apply.stderr.trim()}; ` +
266
+ (after === before
267
+ ? "tree remains at the observed pre-revert state"
268
+ : "target changed during revert; no destructive rollback was attempted"),
284
269
  };
285
270
  }
286
271
  return { reverted: true, removed };
@@ -301,48 +286,73 @@ export async function worktreeAddExisting(repo, path, branch) {
301
286
  export async function worktreeRemove(repo, path) {
302
287
  await git(repo, ["worktree", "remove", "--force", path]);
303
288
  }
304
- /**
305
- * The PROTECTED apply path: `git apply --check` first (clean typed
306
- * refusal, tree untouched), then `--3way`; if 3way still fails (race with a
307
- * concurrent edit), RESTORE — `checkout -- .` for tracked content plus
308
- * removal of files the partial apply CREATED (from the shared diff parser's
309
- * added-paths) — and verify with `status --porcelain`. `ok:false,
310
- * treeMutated:false` is a GUARANTEE the tree is byte-identical (INV-114);
311
- * a failed restoration reports `treeMutated:true` honestly instead.
312
- */
313
- export async function applyPatchProtected(repo, diff) {
289
+ async function runProtectedApply(repo, diff, options) {
314
290
  if (!diff.trim())
315
291
  return { ok: true, treeMutated: false, detail: "empty patch; no-op" };
316
- const check = await git(repo, ["apply", "--check", "--whitespace=nowarn", "-"], diff);
292
+ const flags = [
293
+ "apply",
294
+ ...(options.index ? ["--index"] : []),
295
+ ...(options.reverse ? ["--reverse"] : []),
296
+ "--whitespace=nowarn",
297
+ ];
298
+ const check = await git(repo, [...flags, "--check", "-"], diff);
317
299
  if (check.code !== 0) {
318
- return { ok: false, treeMutated: false, detail: `apply --check refused: ${check.stderr.trim()}` };
300
+ return {
301
+ ok: false,
302
+ // A refused forward apply has not touched the tree. A refused reverse
303
+ // means the Claudexor-written postimage could not be removed exactly and
304
+ // therefore remains a mutation that must be surfaced to the operator.
305
+ treeMutated: options.reverse,
306
+ detail: `${options.reverse ? "reverse " : ""}apply --check refused: ${check.stderr.trim()}`,
307
+ };
319
308
  }
320
309
  const before = await statusPorcelain(repo);
321
- const ap = await git(repo, ["apply", "--3way", "--whitespace=nowarn", "-"], diff);
322
- if (ap.code === 0)
323
- return { ok: true, treeMutated: true };
324
- // 3way failed after a passing --check (concurrent mutation): restore.
325
- const added = parseUnifiedDiff(diff)
326
- .files.filter((f) => f.added && f.newPath)
327
- .map((f) => f.newPath);
328
- for (const rel of added) {
329
- try {
330
- rmSync(join(repo, rel), { force: true });
331
- }
332
- catch {
333
- /* verified below via the status fingerprint */
334
- }
310
+ const applied = await git(repo, [...flags, "-"], diff);
311
+ if (applied.code === 0) {
312
+ return {
313
+ ok: true,
314
+ // Forward apply introduces the patch; reverse apply removes it.
315
+ treeMutated: !options.reverse,
316
+ };
335
317
  }
336
- await git(repo, ["checkout", "--", "."]);
337
318
  const after = await statusPorcelain(repo);
338
- const restored = after === before;
319
+ const unchanged = after === before;
339
320
  return {
340
321
  ok: false,
341
- treeMutated: !restored,
342
- detail: `apply --3way failed: ${ap.stderr.trim()}` +
343
- (restored ? "; tree restored to its pre-apply state" : "; RESTORE FAILED — tree left mutated, inspect manually"),
322
+ treeMutated: options.reverse ? true : !unchanged,
323
+ detail: `${options.reverse ? "reverse " : ""}apply failed after preflight: ${applied.stderr.trim()}` +
324
+ (unchanged
325
+ ? "; tree and index remain at the observed pre-operation state"
326
+ : "; target changed during apply; no destructive rollback was attempted"),
344
327
  };
345
328
  }
329
+ /**
330
+ * The protected apply path deliberately does not use `--3way`: 3-way failures
331
+ * may leave conflict stages and historically triggered a destructive
332
+ * `checkout -- .` rollback. Plain `git apply` is all-or-nothing unless
333
+ * `--reject` is requested (we never request it). A stale/concurrent target is
334
+ * refused; no automatic rollback ever overwrites user state.
335
+ */
336
+ export async function applyPatchProtected(repo, diff) {
337
+ return runProtectedApply(repo, diff, { index: false, reverse: false });
338
+ }
339
+ /**
340
+ * Commit-class delivery updates the worktree and index as one Git operation.
341
+ * `git apply --index` refuses when either preimage diverged and does not sweep
342
+ * unrelated paths into the index.
343
+ */
344
+ export async function applyPatchAndIndexProtected(repo, diff) {
345
+ return runProtectedApply(repo, diff, { index: true, reverse: false });
346
+ }
347
+ /**
348
+ * Remove only an exact Claudexor-written patch postimage from worktree+index.
349
+ * This is the sole post-apply compensation path: no reset, checkout, or
350
+ * path-blind deletion is permitted. Concurrent overlapping edits make the
351
+ * reverse check fail and are preserved for an explicit recovery decision.
352
+ */
353
+ export async function reversePatchAndIndexProtected(repo, diff) {
354
+ return runProtectedApply(repo, diff, { index: true, reverse: true });
355
+ }
346
356
  export async function worktreePrune(repo) {
347
357
  await git(repo, ["worktree", "prune"]);
348
358
  }
@@ -360,17 +370,28 @@ export async function branchDelete(repo, branch) {
360
370
  * commits. Git op failures throw loudly instead of masquerading as "no changes".
361
371
  */
362
372
  export async function diffStaged(worktreePath, baseSha) {
363
- await runCaptureRaw("rm", ["-rf", ".claudexor-review-evidence"], { cwd: worktreePath, timeoutMs: 10_000 }).catch(() => null);
364
- const add = await git(worktreePath, ["add", "-A"]);
365
- if (add.code !== 0) {
366
- throw new WorkspaceError(`git add -A failed during diff capture: ${add.stderr.trim()}`);
367
- }
368
373
  const target = baseSha && baseSha.length > 0 ? baseSha : "HEAD";
369
- const diff = await git(worktreePath, ["diff", "--binary", "--cached", target]);
370
- if (diff.code !== 0) {
371
- throw new WorkspaceError(`git diff --cached ${target} failed during diff capture: ${diff.stderr.trim()}`);
374
+ const scratchDir = mkdtempSync(join(tmpdir(), "claudexor-diff-index-"));
375
+ const indexPath = join(scratchDir, "index");
376
+ const env = { GIT_INDEX_FILE: indexPath, GIT_OPTIONAL_LOCKS: "0" };
377
+ try {
378
+ const read = await gitEnv(worktreePath, ["read-tree", target], env);
379
+ if (read.code !== 0) {
380
+ throw new WorkspaceError(`git read-tree ${target} failed during diff capture: ${read.stderr.trim()}`);
381
+ }
382
+ const add = await gitEnv(worktreePath, ["add", "-A"], env);
383
+ if (add.code !== 0) {
384
+ throw new WorkspaceError(`scratch git add -A failed during diff capture: ${add.stderr.trim()}`);
385
+ }
386
+ const diff = await gitEnv(worktreePath, ["diff", "--binary", "--cached", target], env);
387
+ if (diff.code !== 0) {
388
+ throw new WorkspaceError(`git diff --cached ${target} failed during diff capture: ${diff.stderr.trim()}`);
389
+ }
390
+ assertNoBinaryStubs(diff.stdout, `git diff --cached ${target}`);
391
+ return diff.stdout;
392
+ }
393
+ finally {
394
+ rmSync(scratchDir, { recursive: true, force: true });
372
395
  }
373
- assertNoBinaryStubs(diff.stdout, `git diff --cached ${target}`);
374
- return diff.stdout;
375
396
  }
376
397
  //# sourceMappingURL=git.js.map
package/dist/git.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE1F;;;sBAGsB;AACtB,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,IAAY,EACZ,IAAc,EACd,KAAc;IAEd,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1F,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9D,CAAC;AAED,kFAAkF;AAClF,KAAK,UAAU,MAAM,CACnB,IAAY,EACZ,IAAc,EACd,GAA2B;IAE3B,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACxF,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAW;IACtD,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,iBAAiB,GAAG,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9F,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAaD,MAAM,cAAc,GAAG,aAAa,CAAC;AAErC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY;IACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;IAC1F,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;QACtB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;IACzH,CAAC;IAED,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,aAAa,CAAC,aAAa,EAAE,GAAG,cAAc,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5D,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACrE,sEAAsE;YACtE,qEAAqE;YACrE,oDAAoD;YACpD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,cAAc,CAAC,aAAa,EAAE,GAAG,SAAS,GAAG,cAAc,IAAI,EAAE,MAAM,CAAC,CAAC;YACzE,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxF,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,oDAAoD,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACtH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;QAC7B,IAAI;QACJ,qBAAqB;QACrB,IAAI;QACJ,oCAAoC;QACpC,QAAQ;QACR,eAAe;QACf,aAAa;QACb,IAAI;QACJ,2CAA2C;KAC5C,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,4DAA4D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpI,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AAC1G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3C,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM;SACtB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SACnD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,mCAAmC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,6EAA6E;IAC7E,+EAA+E;IAC/E,+EAA+E;IAC/E,sEAAsE;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,4BAA4B,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACnI,MAAM,GAAG,GAA2B;QAClC,cAAc,EAAE,QAAQ;QACxB,eAAe,EAAE,WAAW;QAC5B,gBAAgB,EAAE,yBAAyB;QAC3C,kBAAkB,EAAE,WAAW;QAC/B,mBAAmB,EAAE,yBAAyB;KAC/C,CAAC;IACF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,8BAA8B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClG,8EAA8E;QAC9E,4EAA4E;QAC5E,8EAA8E;QAC9E,gFAAgF;QAChF,4EAA4E;QAC5E,8EAA8E;QAC9E,+EAA+E;QAC/E,mDAAmD;QACnD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,2BAA2B,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7F,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,sEAAsE;QACtE,sEAAsE;QACtE,wEAAwE;QACxE,oEAAoE;QACpE,yBAAyB;QACzB,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,YAAY,EAAE,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7I,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,uCAAuC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjH,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3E,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;gBAAE,MAAM,IAAI,cAAc,CAAC,yDAAyD,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjI,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,+BAA+B,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7G,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CACzB,IAAI,EACJ,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,sDAAsD,CAAC,EAClG,GAAG,CACJ,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,gCAAgC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxG,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;6EAE6E;AAC7E,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,OAAe,EAAE,MAAc;IAC3E,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,cAAc,CAAC,YAAY,OAAO,IAAI,MAAM,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,mBAAmB,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC,MAAM,CAAC;AAClB,CAAC;AAED;;gEAEgE;AAChE,SAAS,mBAAmB,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,IAAI,cAAc,CACtB,GAAG,KAAK,+CAA+C,KAAK,sCAAsC,CACnG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;+DAE+D;AAC/D,KAAK,UAAU,MAAM,CAAC,IAAY,EAAE,GAAW;IAC7C,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,aAAa,GAAG,mBAAmB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjG,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AASD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAY,EACZ,UAAkB,EAClB,eAAuB;IAEvB,0EAA0E;IAC1E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC9G,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,6EAA6E,EAAE,CAAC;IACjI,CAAC;IACD,+EAA+E;IAC/E,2EAA2E;IAC3E,gFAAgF;IAChF,8EAA8E;IAC9E,oEAAoE;IACpE,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAC7H,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,uBAAuB,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;SAC1B,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,0EAA0E;IAC1E,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,2BAA2B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrG,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,8EAA8E;IAC9E,sDAAsD;IACtD,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACtC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,wEAAwE;QACxE,mEAAmE;QACnE,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO;YACP,MAAM,EAAE,wCAAwC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACvE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc,EAAE,OAAe;IAC3F,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc;IAClF,+EAA+E;IAC/E,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,8CAA8C,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY;IAC7D,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAeD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY;IAClE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IACxF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACtF,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;IACpG,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAClF,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1D,sEAAsE;IACtE,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC;SACjC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAiB,CAAC,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;IACH,CAAC;IACD,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,KAAK,MAAM,CAAC;IAClC,OAAO;QACL,EAAE,EAAE,KAAK;QACT,WAAW,EAAE,CAAC,QAAQ;QACtB,MAAM,EACJ,wBAAwB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;YAC1C,CAAC,QAAQ,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,wDAAwD,CAAC;KACnH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,MAAc;IAC7D,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,YAAoB,EAAE,OAAgB;IACrE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,4BAA4B,CAAC,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7H,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACnD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,cAAc,CAAC,0CAA0C,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/E,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,cAAc,CAAC,qBAAqB,MAAM,gCAAgC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,MAAM,EAAE,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from "./git.js";
2
+ export * from "./raw-patch.js";
2
3
  export * from "./artifact-paths.js";
4
+ export * from "./anchor-store.js";
3
5
  export * from "./manager.js";
4
6
  export * from "./thread-tree.js";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from "./git.js";
2
+ export * from "./raw-patch.js";
2
3
  export * from "./artifact-paths.js";
4
+ export * from "./anchor-store.js";
3
5
  export * from "./manager.js";
4
6
  export * from "./thread-tree.js";
5
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
package/dist/manager.d.ts CHANGED
@@ -25,7 +25,10 @@ export interface CreateEnvelopeOptions {
25
25
  export declare function processStartTime(pid: number): string | null;
26
26
  export declare class WorkspaceManager {
27
27
  private readonly repoRoot;
28
- constructor(repoRoot: string);
28
+ private readonly runtimeRoot;
29
+ constructor(repoRoot: string, options?: {
30
+ runtimeRoot?: string;
31
+ });
29
32
  private workspacesDir;
30
33
  /**
31
34
  * The scoped envelope base for a task/attempt. The sole on-disk root we
@@ -37,11 +40,10 @@ export declare class WorkspaceManager {
37
40
  create(opts: CreateEnvelopeOptions): Promise<WorkspaceEnvelope>;
38
41
  /**
39
42
  * Best-effort baseline copy of the live tree for in-place diff(). Copies each
40
- * top-level entry individually (skipping heavy/ephemeral dirs, notably `.claudexor`
41
- * which holds this base) — this both prunes noise and avoids Node's "cannot copy
42
- * a directory into its own subdirectory" guard, since the baseline lives under
43
- * `.claudexor`. On any failure the baseline is simply absent and diff() returns
44
- * empty; reviewers still read the live tree directly.
43
+ * top-level entry individually while skipping only VCS/heavy ephemeral dirs.
44
+ * The baseline is external, so project `.claudexor/` content is ordinary user
45
+ * state and is copied like every other project path. On any failure the
46
+ * baseline is absent and diff() returns empty; reviewers still read the tree.
45
47
  */
46
48
  private snapshotBaseline;
47
49
  /** Env vars that scope a child harness to this envelope (HOME + per-harness config dirs). */
@@ -52,10 +54,11 @@ export declare class WorkspaceManager {
52
54
  * but a harness still writes native state — claude-code plan files, codex
53
55
  * session rollouts, transcripts — into `$HOME/.claude`, `$CODEX_HOME`, etc.
54
56
  * Without this, those land in the operator's REAL home (a live-caught leak: a
55
- * read-only `plan` wrote into `~/.claude/plans`). Same env shape as `envFor`,
56
- * so the adapters seed auth (subscription creds / api key) into these scoped
57
- * dirs exactly as they do for a write envelope (CLAUDEXOR_BIBLE §6). Caller
58
- * disposes when the run ends.
57
+ * read-only `plan` wrote into `~/.claude/plans`). Same env shape as `envFor`:
58
+ * non-native state and injected API-key routes stay scoped, while native
59
+ * Codex/Claude auth keeps using its vendor-owned host-user store and Cursor
60
+ * may bridge the OS keychain without copying credentials. Caller disposes
61
+ * the scoped state when the run ends.
59
62
  */
60
63
  readOnlyHomeEnv(): {
61
64
  env: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAmBvF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH;;sEAEsE;AACtE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO3D;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAE7C,OAAO,CAAC,aAAa;IAIrB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAcd,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6GrE;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAcxB,6FAA6F;IAC7F,MAAM,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYtD;;;;;;;;;;OAUG;IACH,eAAe,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE;IAsBvE;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAiDtC,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkC7C,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDpD;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0BtE"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAkBvF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH;;sEAEsE;AACtE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS3D;AAED,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAH3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAGlB,QAAQ,EAAE,MAAM,EACjC,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAKxC,OAAO,CAAC,aAAa;IAIrB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAiBd,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4GrE;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAcxB,6FAA6F;IAC7F,MAAM,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYtD;;;;;;;;;;;OAWG;IACH,eAAe,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE;IA2BvE;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAqDtC,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAsD7C,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDpD;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBtE"}