@claudexor/workspace 3.1.1 → 3.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.d.ts CHANGED
@@ -55,6 +55,24 @@ export declare function snapshotTree(repo: string): Promise<string>;
55
55
  * `--binary`: binary changes carry an APPLYABLE payload instead of
56
56
  * degrading to a "Binary files differ" stub that silently loses the work. */
57
57
  export declare function diffTrees(repo: string, baseSha: string, endSha: string): Promise<string>;
58
+ /**
59
+ * Capture the current worktree against an exact base without writing its blobs
60
+ * into the user's Git object database. In-place harness output is untrusted
61
+ * until the secret fence has inspected the resulting patch; `snapshotTree`
62
+ * would otherwise leave a dangling raw-secret blob even when artifact
63
+ * persistence later refused the patch.
64
+ *
65
+ * Git still owns filename, mode, symlink, binary, ignored-file, and untracked
66
+ * semantics. A scratch index plus an isolated temporary object directory holds
67
+ * the candidate tree only for the duration of `git diff`; the real object
68
+ * directory is read-only through Git's alternates mechanism.
69
+ */
70
+ export interface TransientDiffCapture {
71
+ patch: string;
72
+ binarySecretLike: boolean;
73
+ }
74
+ export declare function captureWorkingTreeTransient(repo: string, baseSha: string, pathExcludes?: string[]): Promise<TransientDiffCapture>;
75
+ export declare function diffWorkingTreeTransient(repo: string, baseSha: string, pathExcludes?: string[]): Promise<string>;
58
76
  /**
59
77
  * Materialize a patch against an exact base in a scratch index and return the
60
78
  * resulting tree id. The live index and worktree are never consulted or
@@ -62,34 +80,11 @@ export declare function diffTrees(repo: string, baseSha: string, endSha: string)
62
80
  * concurrently staged user path can never be swept into a Claudexor commit.
63
81
  */
64
82
  export declare function materializePatchTree(repo: string, baseSha: string, diff: string): Promise<string>;
65
- /** Why a revert was refused, decided by the PRODUCER (which branch failed), not
66
- * by regexing the human `reason` downstream (QA-051/W3):
67
- * - `postimage_diverged`: the reverse `--check` failed because the turn-owned
68
- * postimage no longer matches (files changed after the turn);
69
- * - `reverse_apply_failed`: the reverse apply itself failed after a clean
70
- * preflight. */
71
- export type RevertRefusalReason = "postimage_diverged" | "reverse_apply_failed";
72
- export interface RevertResult {
73
- reverted: boolean;
74
- /** Turn-added files removed to restore the pre-turn state (`.claudexor` preserved). */
75
- removed: string[];
76
- reason?: string;
77
- /** Typed refusal class set at the point of failure; absent on success. */
78
- reasonCode?: RevertRefusalReason;
79
- }
80
- /**
81
- * Server-owned in-place revert: restore the live working tree to a recorded
82
- * pre-turn snapshot, but ONLY when the tree still matches the recorded post-turn
83
- * snapshot (i.e. the user hasn't edited since) — otherwise it fails loudly and
84
- * touches nothing. Reverts tracked modifications/deletions AND removes files the
85
- * turn added; `.claudexor` (run artifacts) is always preserved.
86
- */
87
- export declare function revertWorkingTreeTo(repo: string, preTurnSha: string, expectedPostSha: string): Promise<RevertResult>;
88
- /** Reverse an immutable turn patch. This is the GC-independent production
89
- * path used by external revert anchors; the SHA-based wrapper remains useful
90
- * while capturing and testing snapshots. */
91
- export declare function revertWorkingTreePatch(repo: string, patch: string): Promise<RevertResult>;
92
83
  export declare function worktreeAdd(repo: string, path: string, branch: string, baseSha: string): Promise<void>;
84
+ /** Disposable candidate checkout with private refs/index/objects. The source
85
+ * repository is only an object alternate, so harness `git add`/`commit` cannot
86
+ * write candidate blobs or refs into the user's repository. */
87
+ export declare function isolatedCloneAdd(repo: string, path: string, branch: string, baseSha: string): Promise<void>;
93
88
  /** Recreate a worktree for an EXISTING branch (recovery: dir lost, branch survived). */
94
89
  export declare function worktreeAddExisting(repo: string, path: string, branch: string): Promise<void>;
95
90
  export declare function worktreeRemove(repo: string, path: string): Promise<void>;
@@ -128,20 +123,4 @@ export declare function reversePatchAndIndexProtected(repo: string, diff: string
128
123
  export declare function worktreePrune(repo: string): Promise<void>;
129
124
  /** Delete a local branch (best-effort GC of per-attempt claudexor/* branches). */
130
125
  export declare function branchDelete(repo: string, branch: string): Promise<void>;
131
- /**
132
- * Stage everything (so untracked files appear) and return the diff vs the
133
- * recorded BASE sha — NOT the worktree HEAD. A harness that commits inside the
134
- * worktree (Claude Code does this routinely) advances HEAD; diffing vs HEAD
135
- * would then hide the committed work and report an empty no-op diff, silently
136
- * losing the candidate's real output. Diffing the staged tree vs base_sha
137
- * captures all net change since the run started regardless of intermediate
138
- * commits. Git op failures throw loudly instead of masquerading as "no changes".
139
- */
140
- export declare function diffStaged(worktreePath: string, baseSha?: string,
141
- /** Additional EXACT-path pathspec excludes (e.g. the generated CLAUDE.md
142
- * bridge, excluded by the caller only when it was created THIS run and its
143
- * bytes still equal CLAUDE_BRIDGE_CONTENT). Each must already be a git
144
- * pathspec magic term like `:(exclude,top)<path>`. Applied to BOTH the scratch
145
- * `add -A` and the diff, so an excluded path is neither staged nor reported. */
146
- extraExcludes?: readonly string[]): Promise<string>;
147
126
  //# sourceMappingURL=git.d.ts.map
package/dist/git.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
package/dist/git.js CHANGED
@@ -1,7 +1,8 @@
1
- import { mkdtempSync, rmSync } from "node:fs";
1
+ import { mkdirSync, mkdtempSync, rmSync } from "node:fs";
2
2
  import { tmpdir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  import { CLAUDEXOR_ARTIFACT_DIR, parseUnifiedDiff, runCaptureRaw, WorkspaceError, } from "@claudexor/core";
5
+ import { containsSecretLikeToken } from "@claudexor/util";
5
6
  /** BYTE-FAITHFUL git capture: raw buffers, never readline — CR
6
7
  * bytes in CRLF diff content survive, and no trailing newline is fabricated
7
8
  * (trim-based consumers like revParse are unaffected: git ends its own
@@ -177,6 +178,109 @@ export async function diffTrees(repo, baseSha, endSha) {
177
178
  assertNoBinaryStubs(r.stdout, `git diff ${baseSha} ${endSha}`);
178
179
  return r.stdout;
179
180
  }
181
+ export async function captureWorkingTreeTransient(repo, baseSha, pathExcludes = []) {
182
+ const scratchDir = mkdtempSync(join(tmpdir(), "claudexor-transient-diff-"));
183
+ const objectDir = join(scratchDir, "objects");
184
+ const indexPath = join(scratchDir, "index");
185
+ mkdirSync(objectDir, { recursive: true, mode: 0o700 });
186
+ let primaryError;
187
+ try {
188
+ const actualObjects = await git(repo, [
189
+ "rev-parse",
190
+ "--path-format=absolute",
191
+ "--git-path",
192
+ "objects",
193
+ ]);
194
+ if (actualObjects.code !== 0 || !actualObjects.stdout.trim()) {
195
+ throw new WorkspaceError(`transient diff could not resolve Git objects: ${actualObjects.stderr.trim()}`);
196
+ }
197
+ const env = {
198
+ GIT_INDEX_FILE: indexPath,
199
+ GIT_OBJECT_DIRECTORY: objectDir,
200
+ // Git parses this as a path-list. C-style quoting keeps a legal `:` in a
201
+ // macOS path from becoming a separator (and escapes quotes/backslashes).
202
+ GIT_ALTERNATE_OBJECT_DIRECTORIES: JSON.stringify(actualObjects.stdout.trim()),
203
+ GIT_OPTIONAL_LOCKS: "0",
204
+ };
205
+ const read = await gitEnv(repo, ["read-tree", baseSha], env);
206
+ if (read.code !== 0) {
207
+ throw new WorkspaceError(`transient diff read-tree failed: ${read.stderr.trim()}`);
208
+ }
209
+ const excludes = [`:(exclude,top)${CLAUDEXOR_ARTIFACT_DIR}`, ...pathExcludes];
210
+ const add = await gitEnv(repo, ["add", "-A", "--", ".", ...excludes], env);
211
+ if (add.code !== 0) {
212
+ throw new WorkspaceError(`transient diff add failed: ${add.stderr.trim()}`);
213
+ }
214
+ const writeTree = await gitEnv(repo, ["write-tree"], env);
215
+ if (writeTree.code !== 0 || !writeTree.stdout.trim()) {
216
+ throw new WorkspaceError(`transient diff write-tree failed: ${writeTree.stderr.trim()}`);
217
+ }
218
+ const diff = await gitEnv(repo, ["diff", "--binary", baseSha, writeTree.stdout.trim()], env);
219
+ if (diff.code !== 0) {
220
+ throw new WorkspaceError(`transient diff failed: ${diff.stderr.trim()}`);
221
+ }
222
+ assertNoBinaryStubs(diff.stdout, `transient git diff ${baseSha}`);
223
+ let binarySecretLike = false;
224
+ for (const file of parseUnifiedDiff(diff.stdout).files.filter((entry) => entry.binary)) {
225
+ const blobs = [
226
+ ...(!file.added && file.oldPath ? [{ tree: baseSha, path: file.oldPath }] : []),
227
+ ...(!file.deleted && file.newPath
228
+ ? [{ tree: writeTree.stdout.trim(), path: file.newPath }]
229
+ : []),
230
+ ];
231
+ for (const blob of blobs) {
232
+ const content = await gitEnv(repo, ["show", `${blob.tree}:${blob.path}`], env);
233
+ if (content.code !== 0 || containsSecretLikeToken(content.stdout)) {
234
+ binarySecretLike = true;
235
+ break;
236
+ }
237
+ }
238
+ if (binarySecretLike)
239
+ break;
240
+ }
241
+ return { patch: diff.stdout, binarySecretLike };
242
+ }
243
+ catch (error) {
244
+ primaryError = error;
245
+ throw error;
246
+ }
247
+ finally {
248
+ // Unlike ordinary best-effort scratch cleanup, this directory may contain
249
+ // a candidate token blob. A cleanup failure is therefore terminal and must
250
+ // never be hidden behind the original capture result.
251
+ try {
252
+ rmSync(scratchDir, { recursive: true, force: true });
253
+ }
254
+ catch (cleanupError) {
255
+ // A cleanup failure is terminal on its own, but must not erase the typed
256
+ // capture error that explains the primary failure.
257
+ if (primaryError === undefined) {
258
+ const terminal = new WorkspaceError("transient diff scratch cleanup failed", {
259
+ cause: cleanupError,
260
+ });
261
+ Object.defineProperty(terminal, "cleanupError", {
262
+ value: cleanupError,
263
+ enumerable: false,
264
+ });
265
+ throw terminal;
266
+ }
267
+ if (primaryError instanceof Error) {
268
+ try {
269
+ Object.defineProperty(primaryError, "cleanupError", {
270
+ value: cleanupError,
271
+ enumerable: false,
272
+ });
273
+ }
274
+ catch {
275
+ // Even a frozen/non-extensible typed error remains the primary cause.
276
+ }
277
+ }
278
+ }
279
+ }
280
+ }
281
+ export async function diffWorkingTreeTransient(repo, baseSha, pathExcludes = []) {
282
+ return (await captureWorkingTreeTransient(repo, baseSha, pathExcludes)).patch;
283
+ }
180
284
  /**
181
285
  * Materialize a patch against an exact base in a scratch index and return the
182
286
  * resulting tree id. The live index and worktree are never consulted or
@@ -223,60 +327,28 @@ function assertNoBinaryStubs(diff, label) {
223
327
  throw new WorkspaceError(`${label} produced undeliverable binary stub(s) for: ${names}; the work product cannot be applied`);
224
328
  }
225
329
  }
226
- /**
227
- * Server-owned in-place revert: restore the live working tree to a recorded
228
- * pre-turn snapshot, but ONLY when the tree still matches the recorded post-turn
229
- * snapshot (i.e. the user hasn't edited since) — otherwise it fails loudly and
230
- * touches nothing. Reverts tracked modifications/deletions AND removes files the
231
- * turn added; `.claudexor` (run artifacts) is always preserved.
232
- */
233
- export async function revertWorkingTreeTo(repo, preTurnSha, expectedPostSha) {
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
- reasonCode: "postimage_diverged",
257
- };
258
- }
259
- const before = await statusPorcelain(repo);
260
- const apply = await git(repo, ["apply", "--reverse", "--whitespace=nowarn", "-"], patch);
261
- if (apply.code !== 0) {
262
- const after = await statusPorcelain(repo);
263
- return {
264
- reverted: false,
265
- removed: [],
266
- reason: `reverse apply failed after preflight: ${apply.stderr.trim()}; ` +
267
- (after === before
268
- ? "tree remains at the observed pre-revert state"
269
- : "target changed during revert; no destructive rollback was attempted"),
270
- reasonCode: "reverse_apply_failed",
271
- };
272
- }
273
- return { reverted: true, removed };
274
- }
275
330
  export async function worktreeAdd(repo, path, branch, baseSha) {
276
331
  const r = await git(repo, ["worktree", "add", "-b", branch, path, baseSha]);
277
332
  if (r.code !== 0)
278
333
  throw new WorkspaceError(`git worktree add failed: ${r.stderr.trim()}`);
279
334
  }
335
+ /** Disposable candidate checkout with private refs/index/objects. The source
336
+ * repository is only an object alternate, so harness `git add`/`commit` cannot
337
+ * write candidate blobs or refs into the user's repository. */
338
+ export async function isolatedCloneAdd(repo, path, branch, baseSha) {
339
+ const cloned = await runCaptureRaw("git", ["clone", "--shared", "--no-checkout", "--", repo, path], { timeoutMs: 120_000 });
340
+ if (cloned.code !== 0) {
341
+ throw new WorkspaceError(`isolated clone failed: ${cloned.stderr.trim()}`);
342
+ }
343
+ const checkout = await git(path, ["checkout", "-b", branch, baseSha]);
344
+ if (checkout.code !== 0) {
345
+ throw new WorkspaceError(`isolated clone checkout failed: ${checkout.stderr.trim()}`);
346
+ }
347
+ const detachedRemote = await git(path, ["remote", "remove", "origin"]);
348
+ if (detachedRemote.code !== 0) {
349
+ throw new WorkspaceError(`isolated clone remote removal failed: ${detachedRemote.stderr.trim()}`);
350
+ }
351
+ }
280
352
  /** Recreate a worktree for an EXISTING branch (recovery: dir lost, branch survived). */
281
353
  export async function worktreeAddExisting(repo, path, branch) {
282
354
  // A stale registration for the lost directory would fail the add; prune first.
@@ -362,54 +434,4 @@ export async function worktreePrune(repo) {
362
434
  export async function branchDelete(repo, branch) {
363
435
  await git(repo, ["branch", "-D", branch]);
364
436
  }
365
- /**
366
- * Stage everything (so untracked files appear) and return the diff vs the
367
- * recorded BASE sha — NOT the worktree HEAD. A harness that commits inside the
368
- * worktree (Claude Code does this routinely) advances HEAD; diffing vs HEAD
369
- * would then hide the committed work and report an empty no-op diff, silently
370
- * losing the candidate's real output. Diffing the staged tree vs base_sha
371
- * captures all net change since the run started regardless of intermediate
372
- * commits. Git op failures throw loudly instead of masquerading as "no changes".
373
- */
374
- export async function diffStaged(worktreePath, baseSha,
375
- /** Additional EXACT-path pathspec excludes (e.g. the generated CLAUDE.md
376
- * bridge, excluded by the caller only when it was created THIS run and its
377
- * bytes still equal CLAUDE_BRIDGE_CONTENT). Each must already be a git
378
- * pathspec magic term like `:(exclude,top)<path>`. Applied to BOTH the scratch
379
- * `add -A` and the diff, so an excluded path is neither staged nor reported. */
380
- extraExcludes = []) {
381
- const target = baseSha && baseSha.length > 0 ? baseSha : "HEAD";
382
- const scratchDir = mkdtempSync(join(tmpdir(), "claudexor-diff-index-"));
383
- const indexPath = join(scratchDir, "index");
384
- const env = { GIT_INDEX_FILE: indexPath, GIT_OPTIONAL_LOCKS: "0" };
385
- try {
386
- const read = await gitEnv(worktreePath, ["read-tree", target], env);
387
- if (read.code !== 0) {
388
- throw new WorkspaceError(`git read-tree ${target} failed during diff capture: ${read.stderr.trim()}`);
389
- }
390
- // F4: EXCLUDE the claudexor-owned artifact dir from the candidate
391
- // patch. Media a harness saves for the user (browser-MCP screenshots,
392
- // declared artifacts) lives here and must never enter the candidate diff —
393
- // a screenshot-only run then reads as `noChanges` and is never
394
- // review-blocked. Exclusion is by EXACT owned path only (no file-type
395
- // guess), so a real code change elsewhere can never be silently dropped.
396
- // `extraExcludes` adds further EXACT owned paths (the generated CLAUDE.md
397
- // bridge) under the same doctrine.
398
- const excludeArtifacts = `:(exclude,top)${CLAUDEXOR_ARTIFACT_DIR}`;
399
- const excludes = [excludeArtifacts, ...extraExcludes];
400
- const add = await gitEnv(worktreePath, ["add", "-A", "--", ".", ...excludes], env);
401
- if (add.code !== 0) {
402
- throw new WorkspaceError(`scratch git add -A failed during diff capture: ${add.stderr.trim()}`);
403
- }
404
- const diff = await gitEnv(worktreePath, ["diff", "--binary", "--cached", target, "--", ".", ...excludes], env);
405
- if (diff.code !== 0) {
406
- throw new WorkspaceError(`git diff --cached ${target} failed during diff capture: ${diff.stderr.trim()}`);
407
- }
408
- assertNoBinaryStubs(diff.stdout, `git diff --cached ${target}`);
409
- return diff.stdout;
410
- }
411
- finally {
412
- rmSync(scratchDir, { recursive: true, force: true });
413
- }
414
- }
415
437
  //# 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":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./git.js";
2
+ export * from "./revert.js";
2
3
  export * from "./claude-bridge.js";
3
4
  export * from "./raw-patch.js";
4
5
  export * from "./artifact-paths.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./git.js";
2
+ export * from "./revert.js";
2
3
  export * from "./claude-bridge.js";
3
4
  export * from "./raw-patch.js";
4
5
  export * from "./artifact-paths.js";
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,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
package/dist/manager.d.ts CHANGED
@@ -16,7 +16,7 @@ export interface CreateEnvelopeOptions {
16
16
  inPlace?: boolean;
17
17
  }
18
18
  /**
19
- * Manages WorkspaceEnvelopes: an isolated git worktree plus scoped HOME and
19
+ * Manages WorkspaceEnvelopes: an isolated Git checkout plus scoped HOME and
20
20
  * per-harness config dirs, and dirty-tree handling. Claudexor owns these
21
21
  * envelopes (it does not rely on a harness's native --worktree).
22
22
  */
@@ -88,19 +88,10 @@ export declare class WorkspaceManager {
88
88
  * the run — the thread-purge / profile-deletion / retention owners remove it.
89
89
  */
90
90
  laneHomeEnv(threadId: string, harnessId: string, profileId: string | null): LaneHomeEnv;
91
- /**
92
- * Header-only rewrite of a plain GNU `diff -ruN <baseline> <live>` document:
93
- * absolute baseline/live prefixes become git-style `a/<rel>` / `b/<rel>` so
94
- * repo-relative protected-path and risk globs see the SAME shape they see
95
- * for git diffs. STATEFUL, mirroring the shared plain-diff parser's
96
- * structural rules: only the GNU `diff …` command echo, the `--- `/`+++ `
97
- * pair of a real file-header triple (`--- ` + `+++ ` + `@@` on consecutive
98
- * lines), and structural `Binary files … differ` lines are rewritten.
99
- * Hunk CONTENT is never touched — a removed/added content line that merely
100
- * starts with `-- `/`++ ` (rendering as `--- `/`+++ ` in the diff) keeps
101
- * its bytes, per the diff-fidelity contract (INV-041).
102
- */
103
- private static relativizePlainDiffHeadersFor;
91
+ captureDiff(env: WorkspaceEnvelope): Promise<{
92
+ diff: string;
93
+ binarySecretLike: boolean;
94
+ }>;
104
95
  diff(env: WorkspaceEnvelope): Promise<string>;
105
96
  /** The created-this-run bridge fact for diff(): in-memory set first, else
106
97
  * the persisted envelope-id-bound marker (survives manager recreation). */
@@ -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;AAIvF,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAsBjE,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;IAkBzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjB3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;gBAGzC,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;IAyIrE;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAcxB,6FAA6F;IAC7F,MAAM,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYtD;;;;;;;;;;;;OAYG;IACH,eAAe,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE;IA2BvE;;;;;;;OAOG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW;IAIvF;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAqDtC,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyEnD;gFAC4E;IAC5E,OAAO,CAAC,iBAAiB;IAKnB,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkEpD;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBtE"}
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;AAUvF,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAsBjE,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;IAkBzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjB3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;gBAGzC,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;IAuIrE;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAcxB,6FAA6F;IAC7F,MAAM,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYtD;;;;;;;;;;;;OAYG;IACH,eAAe,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE;IA2BvE;;;;;;;OAOG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW;IAIjF,WAAW,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC;QACjD,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;IAuFI,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAInD;gFAC4E;IAC5E,OAAO,CAAC,iBAAiB;IAKnB,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoEpD;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBtE"}
package/dist/manager.js CHANGED
@@ -4,12 +4,13 @@ import { tmpdir } from "node:os";
4
4
  import { join, sep } from "node:path";
5
5
  import { WorkspaceEnvelope as WorkspaceEnvelopeSchema } from "@claudexor/schema";
6
6
  import { CLAUDEXOR_ARTIFACT_DIR, runCaptureRaw, WorkspaceError } from "@claudexor/core";
7
- import { ensureDir, newId, nowIso, projectRuntimeDir } from "@claudexor/util";
7
+ import { containsSecretLikeToken, ensureDir, newId, nowIso, projectRuntimeDir, } from "@claudexor/util";
8
8
  import { ensureLaneHomeEnv } from "./lanes.js";
9
+ import { plainDiffBinarySecretLike, relativizePlainDiffHeaders } from "./plain-diff.js";
9
10
  import { CLAUDE_BRIDGE_BASENAME, bridgeCreatedMarkerMatches, ensureClaudeBridge, isGeneratedClaudeBridge, writeBridgeCreatedMarker, } from "./claude-bridge.js";
10
- import { branchDelete, diffStaged, diffTrees, isGitRepo, revParse, snapshotTree, statusPorcelain, stashCreate, worktreeAdd, worktreePrune, worktreeRemove, } from "./git.js";
11
+ import { branchDelete, captureWorkingTreeTransient, isolatedCloneAdd, isGitRepo, revParse, snapshotTree, statusPorcelain, stashCreate, worktreePrune, worktreeRemove, } from "./git.js";
11
12
  /**
12
- * Manages WorkspaceEnvelopes: an isolated git worktree plus scoped HOME and
13
+ * Manages WorkspaceEnvelopes: an isolated Git checkout plus scoped HOME and
13
14
  * per-harness config dirs, and dirty-tree handling. Claudexor owns these
14
15
  * envelopes (it does not rely on a harness's native --worktree).
15
16
  */
@@ -106,7 +107,7 @@ export class WorkspaceManager {
106
107
  started: processStartTime(process.pid),
107
108
  created_at: nowIso(),
108
109
  }) + "\n");
109
- // In-place mode: mutate the live repoRoot directly (no isolated worktree).
110
+ // In-place mode: mutate the live repoRoot directly (no isolated checkout).
110
111
  // Used for thread turns (chat-first: the next turn sees this one's work) and
111
112
  // for stateful external environments where runtime state is the deliverable.
112
113
  // For a git project we record a per-turn snapshot sha so diff() captures only
@@ -155,15 +156,13 @@ export class WorkspaceManager {
155
156
  }
156
157
  const path = join(base, "tree");
157
158
  const branch = `claudexor/${opts.taskId}/${opts.attemptId}`;
158
- await worktreeAdd(this.repoRoot, path, branch, baseSha);
159
- // AGENTS.md bridge (INV-113): a worktree materializes only the COMMITTED
160
- // tree, so the project-root bridge (an untracked file) never reaches this
159
+ await isolatedCloneAdd(this.repoRoot, path, branch, baseSha);
160
+ writeFileSync(join(base, "private-clone-v1"), "private Git authority\n");
161
+ // AGENTS.md bridge (INV-113): the checkout omits the untracked project-root bridge,
161
162
  // envelope — a Claude Code candidate here would otherwise lack CLAUDE.md.
162
- // Write an envelope-local bridge into the worktree so the candidate reads the
163
- // same AGENTS.md instructions. Self-fenced (acts only with a committed
164
- // AGENTS.md and no CLAUDE.md), best-effort (a convenience, never a
165
- // precondition), and no run event — this envelope is disposable and
166
- // Claudexor-owned. `diff()` excludes the generated bridge so it never enters
163
+ // Write an envelope-local bridge so the candidate reads the same AGENTS.md.
164
+ // Self-fenced (acts only with a committed AGENTS.md and no CLAUDE.md),
165
+ // best-effort, and no run event. `diff()` excludes the generated bridge so it never enters
167
166
  // the candidate patch.
168
167
  // ONLY when THIS prep actually created the bridge (recorded below) does diff()
169
168
  // exclude it; a CLAUDE.md already present is never excluded (A-3 residual).
@@ -286,79 +285,22 @@ export class WorkspaceManager {
286
285
  laneHomeEnv(threadId, harnessId, profileId) {
287
286
  return ensureLaneHomeEnv(this.runtimeRoot, threadId, harnessId, profileId);
288
287
  }
289
- /**
290
- * Header-only rewrite of a plain GNU `diff -ruN <baseline> <live>` document:
291
- * absolute baseline/live prefixes become git-style `a/<rel>` / `b/<rel>` so
292
- * repo-relative protected-path and risk globs see the SAME shape they see
293
- * for git diffs. STATEFUL, mirroring the shared plain-diff parser's
294
- * structural rules: only the GNU `diff …` command echo, the `--- `/`+++ `
295
- * pair of a real file-header triple (`--- ` + `+++ ` + `@@` on consecutive
296
- * lines), and structural `Binary files … differ` lines are rewritten.
297
- * Hunk CONTENT is never touched — a removed/added content line that merely
298
- * starts with `-- `/`++ ` (rendering as `--- `/`+++ ` in the diff) keeps
299
- * its bytes, per the diff-fidelity contract (INV-041).
300
- */
301
- static relativizePlainDiffHeadersFor(text, baselineRoot, liveRoot) {
302
- const base = baselineRoot.endsWith("/") ? baselineRoot : `${baselineRoot}/`;
303
- const live = liveRoot.endsWith("/") ? liveRoot : `${liveRoot}/`;
304
- const swap = (s) => s.split(base).join("a/").split(live).join("b/");
305
- const lines = text.split("\n");
306
- // Same structural rule as the shared plain-diff parser: INSIDE a hunk the
307
- // loose triple can be forged by content (a deleted `-- …` line + an added
308
- // `++ …` line + the next `@@`), so a mid-hunk boundary must also carry a
309
- // header witness — the GNU tab-separated timestamp (or /dev/null) on both
310
- // path lines, which +/- content lines never have.
311
- const headerWitness = (l) => l !== undefined && (l.includes("\t") || l.slice(4).trim() === "/dev/null");
312
- const isFileHeaderTriple = (idx, midHunk) => {
313
- const triple = (lines[idx]?.startsWith("--- ") ?? false) &&
314
- (lines[idx + 1]?.startsWith("+++ ") ?? false) &&
315
- (lines[idx + 2]?.startsWith("@@") ?? false);
316
- if (!triple)
317
- return false;
318
- return midHunk ? headerWitness(lines[idx]) && headerWitness(lines[idx + 1]) : true;
319
- };
320
- let inHunk = false;
321
- for (let i = 0; i < lines.length; i += 1) {
322
- const line = lines[i];
323
- if (line.startsWith("diff ")) {
324
- // GNU command echo between files: structural, resets hunk state.
325
- inHunk = false;
326
- lines[i] = swap(line);
327
- continue;
328
- }
329
- if (isFileHeaderTriple(i, inHunk)) {
330
- // Real file boundary — same rule as the shared parser (a full triple
331
- // opens a file even mid-document without a `diff` echo).
332
- lines[i] = swap(line);
333
- lines[i + 1] = swap(lines[i + 1]);
334
- inHunk = false;
335
- i += 1; // the `+++ ` line is handled; `@@` flips state next.
336
- continue;
337
- }
338
- if (line.startsWith("@@")) {
339
- inHunk = true;
340
- continue;
341
- }
342
- if (line.startsWith("Binary files ") && line.endsWith(" differ") && !inHunk) {
343
- lines[i] = swap(line);
344
- }
345
- }
346
- return lines.join("\n");
347
- }
348
- async diff(env) {
349
- // In-place: there is no isolated worktree. For a git project, diff the
350
- // per-turn base snapshot against a fresh end snapshot — net change of THIS
351
- // turn only, untracked included, prior dirty state folded into base.
288
+ async captureDiff(env) {
289
+ // In-place: there is no isolated worktree. Capture the candidate tree in a
290
+ // temporary object database so a secret refusal cannot leave its bytes as
291
+ // dangling objects in the user's repository. The exact per-turn base still
292
+ // folds prior dirty state out of this turn's diff.
352
293
  if (env.worktree_path === env.repo_root) {
353
294
  if (env.base_sha) {
354
- const end = await snapshotTree(env.repo_root);
355
- return diffTrees(env.repo_root, env.base_sha, end);
295
+ const captured = await captureWorkingTreeTransient(env.repo_root, env.base_sha);
296
+ return { diff: captured.patch, binarySecretLike: captured.binarySecretLike };
356
297
  }
357
298
  // Non-git fallback: diff the best-effort cpSync baseline against the live
358
- // tree; if no baseline was captured, return empty (reviewers read the tree).
299
+ // tree. Missing or failed capture is an uncaptured binary risk, never a
300
+ // safe no-change result.
359
301
  const baseline = join(this.envelopeBase(env.task_id, env.attempt_id), "baseline");
360
302
  if (!existsSync(baseline))
361
- return "";
303
+ return { diff: "", binarySecretLike: true };
362
304
  try {
363
305
  const r = await runCaptureRaw("diff", [
364
306
  "-ruN",
@@ -375,19 +317,28 @@ export class WorkspaceManager {
375
317
  baseline,
376
318
  env.repo_root,
377
319
  ], { timeoutMs: 120_000 });
320
+ if (r.code !== 0 && r.code !== 1) {
321
+ return { diff: "", binarySecretLike: true };
322
+ }
378
323
  // Relativize the header paths to the git-style a/<rel> b/<rel> shape.
379
324
  // Downstream consumers (diffstat, protected-path/risk gating) match
380
325
  // REPO-RELATIVE globs like `test/**`; absolute `/…/repo/test/x`
381
326
  // headers would silently bypass every one of them.
382
- const relativized = WorkspaceManager.relativizePlainDiffHeadersFor(r.stdout, baseline, env.repo_root);
327
+ const relativized = relativizePlainDiffHeaders(r.stdout, baseline, env.repo_root);
383
328
  const CAP = 200_000;
384
- return relativized.length > CAP
385
- ? relativized.slice(0, CAP) + "\n... [diff truncated]\n"
386
- : relativized;
329
+ return {
330
+ diff: relativized.length > CAP
331
+ ? relativized.slice(0, CAP) + "\n... [diff truncated]\n"
332
+ : relativized,
333
+ // Inspect the complete captured text before projecting it into the
334
+ // bounded artifact. A token beyond the 200k display cap must still
335
+ // trip the secret fence.
336
+ binarySecretLike: containsSecretLikeToken(relativized) ||
337
+ plainDiffBinarySecretLike(relativized, env.repo_root),
338
+ };
387
339
  }
388
340
  catch {
389
- // best-effort: if `diff` is unavailable the loop still works (reviewers read the live tree)
390
- return "";
341
+ return { diff: "", binarySecretLike: true };
391
342
  }
392
343
  }
393
344
  // Exclude the envelope-local generated CLAUDE.md bridge (INV-113) from the
@@ -408,7 +359,11 @@ export class WorkspaceManager {
408
359
  const bridgeExcludes = this.bridgeCreatedFact(env) && isGeneratedClaudeBridge(env.worktree_path)
409
360
  ? [`:(exclude,top)${CLAUDE_BRIDGE_BASENAME}`]
410
361
  : [];
411
- return diffStaged(env.worktree_path, env.base_sha ?? undefined, bridgeExcludes);
362
+ const captured = await captureWorkingTreeTransient(env.worktree_path, env.base_sha ?? "HEAD", bridgeExcludes);
363
+ return { diff: captured.patch, binarySecretLike: captured.binarySecretLike };
364
+ }
365
+ async diff(env) {
366
+ return (await this.captureDiff(env)).diff;
412
367
  }
413
368
  /** The created-this-run bridge fact for diff(): in-memory set first, else
414
369
  * the persisted envelope-id-bound marker (survives manager recreation). */
@@ -437,22 +392,22 @@ export class WorkspaceManager {
437
392
  }
438
393
  }
439
394
  if (!inPlace) {
440
- try {
441
- await worktreeRemove(this.repoRoot, env.worktree_path);
442
- }
443
- catch {
444
- /* best-effort */
445
- }
446
- // Delete the per-attempt branch so re-attempts with the same ids don't
447
- // collide on `worktree add -b`, and the user's repo doesn't accumulate
448
- // permanent claudexor/<task>/<attempt> branches (the v0.8 leak).
449
- if (env.branch_name && env.branch_name !== "inplace") {
395
+ const privateClone = existsSync(join(this.envelopeBase(env.task_id, env.attempt_id), "private-clone-v1"));
396
+ if (!privateClone) {
450
397
  try {
451
- await branchDelete(this.repoRoot, env.branch_name);
398
+ await worktreeRemove(this.repoRoot, env.worktree_path);
452
399
  }
453
400
  catch {
454
401
  /* best-effort */
455
402
  }
403
+ if (env.branch_name && env.branch_name !== "inplace") {
404
+ try {
405
+ await branchDelete(this.repoRoot, env.branch_name);
406
+ }
407
+ catch {
408
+ /* best-effort */
409
+ }
410
+ }
456
411
  }
457
412
  }
458
413
  // Remove only the scoped envelope base (worktree + scoped home/env/logs/artifacts/
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** Rewrite only structural GNU/BSD `diff -ruN` headers to git-style paths.
2
+ * Missing-side headers become `/dev/null`, making added/deleted files exactly
3
+ * reversible with `git apply --no-index`; hunk content is never rewritten. */
4
+ export declare function relativizePlainDiffHeaders(text: string, baselineRoot: string, liveRoot: string): string;
5
+ /** `diff -ruN` carries no binary payload, so inspect each live binary
6
+ * postimage directly. Oversized, non-regular, or unreadable bytes fail closed. */
7
+ export declare function plainDiffBinarySecretLike(text: string, liveRoot: string): boolean;
8
+ //# sourceMappingURL=plain-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain-diff.d.ts","sourceRoot":"","sources":["../src/plain-diff.ts"],"names":[],"mappings":"AAOA;;8EAE8E;AAC9E,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CA2CR;AAED;kFACkF;AAClF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CA0BjF"}
@@ -0,0 +1,90 @@
1
+ import { closeSync, constants, existsSync, fstatSync, openSync, readFileSync } from "node:fs";
2
+ import { resolve, sep } from "node:path";
3
+ import { parseUnifiedDiff } from "@claudexor/core";
4
+ import { containsSecretLikeToken } from "@claudexor/util";
5
+ const MAX_BINARY_SECRET_SCAN_BYTES = 32 * 1024 * 1024;
6
+ /** Rewrite only structural GNU/BSD `diff -ruN` headers to git-style paths.
7
+ * Missing-side headers become `/dev/null`, making added/deleted files exactly
8
+ * reversible with `git apply --no-index`; hunk content is never rewritten. */
9
+ export function relativizePlainDiffHeaders(text, baselineRoot, liveRoot) {
10
+ const base = baselineRoot.endsWith("/") ? baselineRoot : `${baselineRoot}/`;
11
+ const live = liveRoot.endsWith("/") ? liveRoot : `${liveRoot}/`;
12
+ const swap = (line) => line.split(base).join("a/").split(live).join("b/");
13
+ const lines = text.split("\n");
14
+ const headerWitness = (line) => line !== undefined && (line.includes("\t") || line.slice(4).trim() === "/dev/null");
15
+ const isFileHeaderTriple = (index, midHunk) => {
16
+ const triple = (lines[index]?.startsWith("--- ") ?? false) &&
17
+ (lines[index + 1]?.startsWith("+++ ") ?? false) &&
18
+ (lines[index + 2]?.startsWith("@@") ?? false);
19
+ if (!triple)
20
+ return false;
21
+ return midHunk ? headerWitness(lines[index]) && headerWitness(lines[index + 1]) : true;
22
+ };
23
+ const canonicalHeader = (line) => {
24
+ const path = line.slice(4).split("\t", 1)[0];
25
+ return path !== "/dev/null" && !existsSync(path) ? `${line.slice(0, 4)}/dev/null` : swap(line);
26
+ };
27
+ let inHunk = false;
28
+ for (let index = 0; index < lines.length; index += 1) {
29
+ const line = lines[index];
30
+ if (line.startsWith("diff ")) {
31
+ inHunk = false;
32
+ lines[index] = swap(line);
33
+ continue;
34
+ }
35
+ if (isFileHeaderTriple(index, inHunk)) {
36
+ lines[index] = canonicalHeader(line);
37
+ lines[index + 1] = canonicalHeader(lines[index + 1]);
38
+ inHunk = false;
39
+ index += 1;
40
+ continue;
41
+ }
42
+ if (line.startsWith("@@")) {
43
+ inHunk = true;
44
+ continue;
45
+ }
46
+ if (line.startsWith("Binary files ") && line.endsWith(" differ") && !inHunk) {
47
+ lines[index] = swap(line);
48
+ }
49
+ }
50
+ return lines.join("\n");
51
+ }
52
+ /** `diff -ruN` carries no binary payload, so inspect each live binary
53
+ * postimage directly. Oversized, non-regular, or unreadable bytes fail closed. */
54
+ export function plainDiffBinarySecretLike(text, liveRoot) {
55
+ const root = resolve(liveRoot);
56
+ for (const file of parseUnifiedDiff(text).files) {
57
+ if (!file.binaryStub || file.deleted || !file.newPath)
58
+ continue;
59
+ const source = resolve(root, file.newPath);
60
+ if (source !== root && !source.startsWith(root + sep))
61
+ return true;
62
+ let fd;
63
+ try {
64
+ fd = openSync(source, constants.O_RDONLY | constants.O_NOFOLLOW);
65
+ }
66
+ catch (error) {
67
+ if (error.code === "ENOENT")
68
+ continue;
69
+ return true;
70
+ }
71
+ try {
72
+ const stat = fstatSync(fd);
73
+ if (!stat.isFile() || stat.size > MAX_BINARY_SECRET_SCAN_BYTES)
74
+ return true;
75
+ const bytes = readFileSync(fd);
76
+ if (bytes.length > MAX_BINARY_SECRET_SCAN_BYTES)
77
+ return true;
78
+ if (containsSecretLikeToken(bytes.toString("latin1")))
79
+ return true;
80
+ }
81
+ catch {
82
+ return true;
83
+ }
84
+ finally {
85
+ closeSync(fd);
86
+ }
87
+ }
88
+ return false;
89
+ }
90
+ //# sourceMappingURL=plain-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain-diff.js","sourceRoot":"","sources":["../src/plain-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,4BAA4B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD;;8EAE8E;AAC9E,MAAM,UAAU,0BAA0B,CACxC,IAAY,EACZ,YAAoB,EACpB,QAAgB;IAEhB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC;IAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC;IAChE,MAAM,IAAI,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,aAAa,GAAG,CAAC,IAAwB,EAAW,EAAE,CAC1D,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,CAAC;IACtF,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,OAAgB,EAAW,EAAE;QACtE,MAAM,MAAM,GACV,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;YAC3C,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;YAC/C,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,OAAO,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,IAAY,EAAU,EAAE;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;QACvD,OAAO,IAAI,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjG,CAAC,CAAC;IACF,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAW,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,KAAK,CAAC;YACf,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,IAAI,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAW,CAAC,CAAC;YAC/D,MAAM,GAAG,KAAK,CAAC;YACf,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,IAAI,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5E,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;kFACkF;AAClF,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,QAAgB;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,SAAS;QAChE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACnE,IAAI,EAAU,CAAC;QACf,IAAI,CAAC;YACH,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,4BAA4B;gBAAE,OAAO,IAAI,CAAC;YAC5E,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,4BAA4B;gBAAE,OAAO,IAAI,CAAC;YAC7D,IAAI,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,27 @@
1
+ /** Why a revert was refused, decided by the producer rather than by parsing a
2
+ * human message downstream. */
3
+ export type RevertRefusalReason = "postimage_diverged" | "reverse_apply_failed";
4
+ export interface RevertResult {
5
+ reverted: boolean;
6
+ /** Turn-added files removed to restore the pre-turn state (`.claudexor` preserved). */
7
+ removed: string[];
8
+ reason?: string;
9
+ /** Typed refusal class set at the point of failure; absent on success. */
10
+ reasonCode?: RevertRefusalReason;
11
+ /** Scratch cleanup failed after the primary rollback result was known. */
12
+ cleanupError?: string;
13
+ }
14
+ export interface RevertPatchOptions {
15
+ /** Keep any object writes performed internally by `git apply` out of the
16
+ * user's repository. Required when the patch itself failed the secret fence. */
17
+ isolateObjectWrites?: boolean;
18
+ /** Apply a git-style patch in a directory with no repository metadata. */
19
+ noIndex?: boolean;
20
+ }
21
+ /** Restore the live tree to a pre-turn snapshot only while the exact recorded
22
+ * postimage still matches. */
23
+ export declare function revertWorkingTreeTo(repo: string, preTurnSha: string, expectedPostSha: string): Promise<RevertResult>;
24
+ /** Reverse an immutable turn patch. Secret-refused callers isolate the object
25
+ * directory because `git apply` may materialize postimage blobs internally. */
26
+ export declare function revertWorkingTreePatch(repo: string, patch: string, options?: RevertPatchOptions): Promise<RevertResult>;
27
+ //# sourceMappingURL=revert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revert.d.ts","sourceRoot":"","sources":["../src/revert.ts"],"names":[],"mappings":"AAMA;+BAC+B;AAC/B,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAEhF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC;oFACgF;IAChF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgBD;8BAC8B;AAC9B,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,CAAC,CAGvB;AAED;+EAC+E;AAC/E,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,YAAY,CAAC,CAyGvB"}
package/dist/revert.js ADDED
@@ -0,0 +1,126 @@
1
+ import { mkdirSync, mkdtempSync, rmSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { parseUnifiedDiff, runCaptureRaw, WorkspaceError } from "@claudexor/core";
5
+ import { diffTrees, git, statusPorcelain } from "./git.js";
6
+ async function gitEnv(repo, args, env, input) {
7
+ const result = await runCaptureRaw("git", ["-C", repo, ...args], {
8
+ timeoutMs: 60_000,
9
+ env,
10
+ input,
11
+ });
12
+ return { code: result.code, stdout: result.stdout, stderr: result.stderr };
13
+ }
14
+ /** Restore the live tree to a pre-turn snapshot only while the exact recorded
15
+ * postimage still matches. */
16
+ export async function revertWorkingTreeTo(repo, preTurnSha, expectedPostSha) {
17
+ const patch = await diffTrees(repo, preTurnSha, expectedPostSha);
18
+ return revertWorkingTreePatch(repo, patch);
19
+ }
20
+ /** Reverse an immutable turn patch. Secret-refused callers isolate the object
21
+ * directory because `git apply` may materialize postimage blobs internally. */
22
+ export async function revertWorkingTreePatch(repo, patch, options = {}) {
23
+ if (!patch.trim())
24
+ return { reverted: true, removed: [] };
25
+ const removed = parseUnifiedDiff(patch)
26
+ .files.filter((file) => file.added && file.newPath)
27
+ .map((file) => file.newPath);
28
+ let scratchDir = null;
29
+ let isolatedEnv = null;
30
+ let primaryError;
31
+ let primaryResult;
32
+ try {
33
+ if (options.isolateObjectWrites) {
34
+ scratchDir = mkdtempSync(join(tmpdir(), "claudexor-transient-revert-"));
35
+ const objectDir = join(scratchDir, "objects");
36
+ mkdirSync(objectDir, { recursive: true, mode: 0o700 });
37
+ const actualObjects = await git(repo, [
38
+ "rev-parse",
39
+ "--path-format=absolute",
40
+ "--git-path",
41
+ "objects",
42
+ ]);
43
+ if (actualObjects.code !== 0 || !actualObjects.stdout.trim()) {
44
+ throw new WorkspaceError(`transient revert could not resolve Git objects: ${actualObjects.stderr.trim()}`);
45
+ }
46
+ isolatedEnv = {
47
+ GIT_OBJECT_DIRECTORY: objectDir,
48
+ GIT_ALTERNATE_OBJECT_DIRECTORIES: JSON.stringify(actualObjects.stdout.trim()),
49
+ GIT_OPTIONAL_LOCKS: "0",
50
+ };
51
+ }
52
+ const runApply = (args, input) => isolatedEnv ? gitEnv(repo, args, isolatedEnv, input) : git(repo, args, input);
53
+ const mode = options.noIndex ? ["--no-index"] : [];
54
+ const check = await runApply(["apply", ...mode, "--check", "--reverse", "--whitespace=nowarn", "-"], patch);
55
+ if (check.code !== 0) {
56
+ primaryResult = {
57
+ reverted: false,
58
+ removed: [],
59
+ reason: options.noIndex
60
+ ? `exact no-index reverse check failed; candidate output could not be proven reversible: ${check.stderr.trim()}`
61
+ : `turn-owned postimage no longer matches; refusing to overwrite later user edits: ${check.stderr.trim()}`,
62
+ reasonCode: options.noIndex ? "reverse_apply_failed" : "postimage_diverged",
63
+ };
64
+ return primaryResult;
65
+ }
66
+ const before = options.noIndex ? null : await statusPorcelain(repo);
67
+ const apply = await runApply(["apply", ...mode, "--reverse", "--whitespace=nowarn", "-"], patch);
68
+ if (apply.code !== 0) {
69
+ const after = options.noIndex ? null : await statusPorcelain(repo);
70
+ primaryResult = {
71
+ reverted: false,
72
+ removed: [],
73
+ reason: `reverse apply failed after preflight: ${apply.stderr.trim()}; ` +
74
+ (before !== null && after === before
75
+ ? "tree remains at the observed pre-revert state"
76
+ : "target changed during revert; no destructive rollback was attempted"),
77
+ reasonCode: "reverse_apply_failed",
78
+ };
79
+ return primaryResult;
80
+ }
81
+ primaryResult = { reverted: true, removed };
82
+ return primaryResult;
83
+ }
84
+ catch (error) {
85
+ primaryError = error;
86
+ throw error;
87
+ }
88
+ finally {
89
+ if (scratchDir) {
90
+ try {
91
+ rmSync(scratchDir, { recursive: true, force: true });
92
+ }
93
+ catch (cleanupError) {
94
+ const message = cleanupError instanceof Error ? cleanupError.message : String(cleanupError);
95
+ if (primaryResult?.reverted === false) {
96
+ primaryResult.cleanupError = message;
97
+ }
98
+ else if (primaryResult?.reverted === true) {
99
+ const terminal = new WorkspaceError("transient revert scratch cleanup failed", {
100
+ cause: cleanupError,
101
+ });
102
+ Object.defineProperties(terminal, {
103
+ cleanupError: { value: cleanupError, enumerable: false },
104
+ rollbackReverted: { value: true, enumerable: false },
105
+ });
106
+ throw terminal;
107
+ }
108
+ else if (primaryError instanceof Error) {
109
+ try {
110
+ Object.defineProperty(primaryError, "cleanupError", {
111
+ value: cleanupError,
112
+ enumerable: false,
113
+ });
114
+ }
115
+ catch {
116
+ // A frozen typed error still remains the primary failure.
117
+ }
118
+ }
119
+ else {
120
+ throw cleanupError;
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
126
+ //# sourceMappingURL=revert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revert.js","sourceRoot":"","sources":["../src/revert.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudexor/workspace",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "license": "MIT",
5
5
  "description": "WorkspaceEnvelope manager: git worktree + scoped HOME/harness-config isolation + dirty policy.",
6
6
  "type": "module",
@@ -16,9 +16,9 @@
16
16
  "dist"
17
17
  ],
18
18
  "dependencies": {
19
- "@claudexor/util": "3.1.1",
20
- "@claudexor/schema": "3.1.1",
21
- "@claudexor/core": "3.1.1"
19
+ "@claudexor/core": "3.1.2",
20
+ "@claudexor/util": "3.1.2",
21
+ "@claudexor/schema": "3.1.2"
22
22
  },
23
23
  "repository": {
24
24
  "type": "git",