@claudexor/workspace 4.8.1 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/anchor-store.d.ts +20 -9
  2. package/dist/anchor-store.d.ts.map +1 -1
  3. package/dist/anchor-store.js +96 -16
  4. package/dist/anchor-store.js.map +1 -1
  5. package/dist/capture-failure.d.ts.map +1 -1
  6. package/dist/capture-failure.js +7 -2
  7. package/dist/capture-failure.js.map +1 -1
  8. package/dist/capture-inventory.d.ts +10 -0
  9. package/dist/capture-inventory.d.ts.map +1 -0
  10. package/dist/capture-inventory.js +63 -0
  11. package/dist/capture-inventory.js.map +1 -0
  12. package/dist/capture-objects.d.ts +32 -0
  13. package/dist/capture-objects.d.ts.map +1 -0
  14. package/dist/capture-objects.js +129 -0
  15. package/dist/capture-objects.js.map +1 -0
  16. package/dist/cleanup-fault.d.ts +18 -0
  17. package/dist/cleanup-fault.d.ts.map +1 -0
  18. package/dist/cleanup-fault.js +45 -0
  19. package/dist/cleanup-fault.js.map +1 -0
  20. package/dist/continuation-evidence.d.ts +61 -15
  21. package/dist/continuation-evidence.d.ts.map +1 -1
  22. package/dist/continuation-evidence.js +151 -36
  23. package/dist/continuation-evidence.js.map +1 -1
  24. package/dist/continuation-facts.d.ts +93 -0
  25. package/dist/continuation-facts.d.ts.map +1 -0
  26. package/dist/continuation-facts.js +162 -0
  27. package/dist/continuation-facts.js.map +1 -0
  28. package/dist/directory-workspace.d.ts.map +1 -1
  29. package/dist/directory-workspace.js +1 -3
  30. package/dist/directory-workspace.js.map +1 -1
  31. package/dist/files-io.d.ts.map +1 -1
  32. package/dist/files-io.js +1 -7
  33. package/dist/files-io.js.map +1 -1
  34. package/dist/fs-presence.d.ts +12 -0
  35. package/dist/fs-presence.d.ts.map +1 -0
  36. package/dist/fs-presence.js +35 -0
  37. package/dist/fs-presence.js.map +1 -0
  38. package/dist/git-nested-repositories.d.ts.map +1 -1
  39. package/dist/git-nested-repositories.js +11 -2
  40. package/dist/git-nested-repositories.js.map +1 -1
  41. package/dist/git-observed.d.ts +75 -0
  42. package/dist/git-observed.d.ts.map +1 -0
  43. package/dist/git-observed.js +172 -0
  44. package/dist/git-observed.js.map +1 -0
  45. package/dist/git-result.d.ts +36 -0
  46. package/dist/git-result.d.ts.map +1 -0
  47. package/dist/git-result.js +96 -0
  48. package/dist/git-result.js.map +1 -0
  49. package/dist/git-run.d.ts +11 -0
  50. package/dist/git-run.d.ts.map +1 -1
  51. package/dist/git-run.js +24 -0
  52. package/dist/git-run.js.map +1 -1
  53. package/dist/git-snapshot.d.ts +40 -0
  54. package/dist/git-snapshot.d.ts.map +1 -0
  55. package/dist/git-snapshot.js +238 -0
  56. package/dist/git-snapshot.js.map +1 -0
  57. package/dist/git-transient-capture.d.ts +63 -16
  58. package/dist/git-transient-capture.d.ts.map +1 -1
  59. package/dist/git-transient-capture.js +170 -57
  60. package/dist/git-transient-capture.js.map +1 -1
  61. package/dist/git.d.ts +46 -21
  62. package/dist/git.d.ts.map +1 -1
  63. package/dist/git.js +164 -103
  64. package/dist/git.js.map +1 -1
  65. package/dist/index.d.ts +9 -1
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +9 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/lanes.d.ts +2 -1
  70. package/dist/lanes.d.ts.map +1 -1
  71. package/dist/lanes.js +7 -6
  72. package/dist/lanes.js.map +1 -1
  73. package/dist/manager.d.ts +21 -7
  74. package/dist/manager.d.ts.map +1 -1
  75. package/dist/manager.js +30 -17
  76. package/dist/manager.js.map +1 -1
  77. package/dist/object-compose.d.ts +58 -0
  78. package/dist/object-compose.d.ts.map +1 -0
  79. package/dist/object-compose.js +444 -0
  80. package/dist/object-compose.js.map +1 -0
  81. package/dist/object-materialize.d.ts +52 -0
  82. package/dist/object-materialize.d.ts.map +1 -0
  83. package/dist/object-materialize.js +467 -0
  84. package/dist/object-materialize.js.map +1 -0
  85. package/dist/object-occupied.d.ts +27 -0
  86. package/dist/object-occupied.d.ts.map +1 -0
  87. package/dist/object-occupied.js +131 -0
  88. package/dist/object-occupied.js.map +1 -0
  89. package/dist/object-revert.d.ts +45 -0
  90. package/dist/object-revert.d.ts.map +1 -0
  91. package/dist/object-revert.js +265 -0
  92. package/dist/object-revert.js.map +1 -0
  93. package/dist/object-saved-files.d.ts +50 -0
  94. package/dist/object-saved-files.d.ts.map +1 -0
  95. package/dist/object-saved-files.js +176 -0
  96. package/dist/object-saved-files.js.map +1 -0
  97. package/dist/object-sparse.d.ts +22 -0
  98. package/dist/object-sparse.d.ts.map +1 -0
  99. package/dist/object-sparse.js +72 -0
  100. package/dist/object-sparse.js.map +1 -0
  101. package/dist/object-store-leases.d.ts +41 -0
  102. package/dist/object-store-leases.d.ts.map +1 -0
  103. package/dist/object-store-leases.js +277 -0
  104. package/dist/object-store-leases.js.map +1 -0
  105. package/dist/object-store-roots.d.ts +25 -0
  106. package/dist/object-store-roots.d.ts.map +1 -0
  107. package/dist/object-store-roots.js +114 -0
  108. package/dist/object-store-roots.js.map +1 -0
  109. package/dist/object-store.d.ts +110 -0
  110. package/dist/object-store.d.ts.map +1 -0
  111. package/dist/object-store.js +404 -0
  112. package/dist/object-store.js.map +1 -0
  113. package/dist/object-transfer.d.ts +41 -0
  114. package/dist/object-transfer.d.ts.map +1 -0
  115. package/dist/object-transfer.js +267 -0
  116. package/dist/object-transfer.js.map +1 -0
  117. package/dist/plain-diff-capture.d.ts +1 -2
  118. package/dist/plain-diff-capture.d.ts.map +1 -1
  119. package/dist/plain-diff-capture.js +2 -7
  120. package/dist/plain-diff-capture.js.map +1 -1
  121. package/dist/plain-diff.d.ts +0 -4
  122. package/dist/plain-diff.d.ts.map +1 -1
  123. package/dist/plain-diff.js +2 -44
  124. package/dist/plain-diff.js.map +1 -1
  125. package/dist/raw-patch.d.ts.map +1 -1
  126. package/dist/raw-patch.js +5 -8
  127. package/dist/raw-patch.js.map +1 -1
  128. package/dist/run-expiry.d.ts +3 -0
  129. package/dist/run-expiry.d.ts.map +1 -0
  130. package/dist/run-expiry.js +15 -0
  131. package/dist/run-expiry.js.map +1 -0
  132. package/dist/thread-tree.d.ts +36 -2
  133. package/dist/thread-tree.d.ts.map +1 -1
  134. package/dist/thread-tree.js +87 -11
  135. package/dist/thread-tree.js.map +1 -1
  136. package/package.json +5 -5
@@ -0,0 +1,267 @@
1
+ import { existsSync, linkSync, mkdirSync, openSync, closeSync, readSync, readdirSync, renameSync, rmSync, statSync, statfsSync, fstatSync, } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { randomUUID } from "node:crypto";
4
+ import { fileSink, gitObserved, GitOperationError } from "./git-observed.js";
5
+ /** Margin kept free on the destination filesystem beyond what a copy needs. */
6
+ const SPACE_MARGIN_BYTES = 64 * 1024 * 1024;
7
+ /** Copies of big blobs stream in bounded memory: Git treats every blob above this as "big". */
8
+ const STREAMING_THRESHOLD = ["-c", "core.bigFileThreshold=1m"];
9
+ export function looseObjectPath(objectsDir, oid) {
10
+ return join(objectsDir, oid.slice(0, 2), oid.slice(2));
11
+ }
12
+ const PACK_INDEX_HEADER = 8 + 256 * 4;
13
+ /** The object count of a version-2 pack index: its fanout total, one fixed read. */
14
+ function readPackIndexCount(fd, idxPath) {
15
+ const header = Buffer.alloc(PACK_INDEX_HEADER);
16
+ if (readSync(fd, header, 0, header.length, 0) !== header.length)
17
+ throw new Error(`short pack index ${idxPath}`);
18
+ if (header.readUInt32BE(0) !== 0xff744f63 || header.readUInt32BE(4) !== 2)
19
+ throw new Error(`unsupported pack index ${idxPath}`);
20
+ return header.readUInt32BE(8 + 255 * 4);
21
+ }
22
+ function packIndexObjectCount(idxPath) {
23
+ const fd = openSync(idxPath, "r");
24
+ try {
25
+ return readPackIndexCount(fd, idxPath);
26
+ }
27
+ finally {
28
+ closeSync(fd);
29
+ }
30
+ }
31
+ /** Object ids of a version-2 pack index, read in bounded chunks (no whole-file read). */
32
+ export function packIndexObjectIds(idxPath, hashLength) {
33
+ const fd = openSync(idxPath, "r");
34
+ try {
35
+ const count = readPackIndexCount(fd, idxPath);
36
+ // v2 layout: header, fanout, sorted oids, crc32s, offsets, large offsets, checksums.
37
+ if (fstatSync(fd).size < PACK_INDEX_HEADER + count * (hashLength + 8) + 2 * hashLength)
38
+ throw new Error(`short pack index ${idxPath}`);
39
+ const oids = [];
40
+ const chunk = Buffer.alloc(hashLength * 4096);
41
+ for (let index = 0; index < count;) {
42
+ const take = Math.min(4096, count - index);
43
+ const read = readSync(fd, chunk, 0, take * hashLength, PACK_INDEX_HEADER + index * hashLength);
44
+ if (read !== take * hashLength)
45
+ throw new Error(`short pack index ${idxPath}`);
46
+ for (let entry = 0; entry < take; entry += 1)
47
+ oids.push(chunk.toString("hex", entry * hashLength, (entry + 1) * hashLength));
48
+ index += take;
49
+ }
50
+ return oids;
51
+ }
52
+ finally {
53
+ closeSync(fd);
54
+ }
55
+ }
56
+ function sameDevice(a, b) {
57
+ try {
58
+ return statSync(a).dev === statSync(b).dev;
59
+ }
60
+ catch {
61
+ return false;
62
+ }
63
+ }
64
+ /** Hard-link errors meaning "this filesystem cannot link here": the caller streams instead. */
65
+ const LINK_UNAVAILABLE = new Set(["EXDEV", "EPERM", "ENOTSUP", "EOPNOTSUPP", "EMLINK", "ENOSYS"]);
66
+ /** Publish `source` at `target` by hard link, never overwriting; false when the
67
+ * filesystem refuses hard links (FAT/exFAT, some network mounts), so the
68
+ * objects are streamed as a pack instead of failing the capture. */
69
+ function tryLink(source, target) {
70
+ if (existsSync(target))
71
+ return true;
72
+ const temp = `${target}.tmp-${randomUUID()}`;
73
+ try {
74
+ linkSync(source, temp);
75
+ renameSync(temp, target);
76
+ return true;
77
+ }
78
+ catch (error) {
79
+ if (LINK_UNAVAILABLE.has(error.code ?? ""))
80
+ return false;
81
+ throw error;
82
+ }
83
+ finally {
84
+ rmSync(temp, { force: true });
85
+ }
86
+ }
87
+ /** Bytes free for an unprivileged writer on the filesystem holding `path`;
88
+ * null when the platform or filesystem cannot report it (free space unknown). */
89
+ export function availableBytes(path) {
90
+ try {
91
+ const stats = statfsSync(path);
92
+ const free = Number(stats.bavail) * Number(stats.bsize);
93
+ return Number.isFinite(free) ? free : null;
94
+ }
95
+ catch {
96
+ return null;
97
+ }
98
+ }
99
+ /** A write that ran out of space is the typed space refusal, wherever it happened. */
100
+ function typedSpaceFailure(error, label) {
101
+ const code = error?.code;
102
+ if (code !== "ENOSPC" && code !== "EDQUOT")
103
+ return error;
104
+ return new GitOperationError("capture_space_insufficient", `${label} ran out of space: ${error.message}`);
105
+ }
106
+ /** On-disk sizes of the given objects at an endpoint (missing objects count zero). */
107
+ export async function objectDiskSizes(endpoint, oids) {
108
+ const sizes = new Map();
109
+ if (oids.length === 0)
110
+ return sizes;
111
+ const result = await gitObserved(endpoint.cwd, ["cat-file", "--batch-check=%(objectname) %(objectsize:disk)"], { env: endpoint.env, input: `${oids.join("\n")}\n`, label: "cat-file --batch-check" });
112
+ for (const line of result.stdout.split("\n")) {
113
+ const [oid, size] = line.split(" ");
114
+ if (oid && size && /^\d+$/.test(size))
115
+ sizes.set(oid, Number(size));
116
+ }
117
+ return sizes;
118
+ }
119
+ /** The subset of `oids` an endpoint lacks (its own objects plus any alternates its env names). */
120
+ export async function missingObjects(endpoint, oids) {
121
+ if (oids.length === 0)
122
+ return [];
123
+ const result = await gitObserved(endpoint.cwd, ["cat-file", "--batch-check=%(objectname)"], {
124
+ env: endpoint.env,
125
+ input: `${oids.join("\n")}\n`,
126
+ label: "cat-file --batch-check",
127
+ });
128
+ return result.stdout
129
+ .split("\n")
130
+ .filter((line) => line.endsWith(" missing"))
131
+ .map((line) => line.slice(0, -" missing".length));
132
+ }
133
+ /** Refuse before writing when the destination cannot hold what is about to be
134
+ * copied. Unknown free space refuses nothing: a write that then runs out of
135
+ * space still ends as the same typed refusal (see typedSpaceFailure). */
136
+ export function assertSpaceFor(destinationDir, requiredBytes, label) {
137
+ if (requiredBytes <= 0)
138
+ return;
139
+ const free = availableBytes(destinationDir);
140
+ if (free !== null && free < requiredBytes + SPACE_MARGIN_BYTES) {
141
+ throw new GitOperationError("capture_space_insufficient", `${label} needs ${requiredBytes} bytes plus a ${SPACE_MARGIN_BYTES}-byte margin; ${free} bytes are free`, { requiredBytes: requiredBytes + SPACE_MARGIN_BYTES, availableBytes: free });
142
+ }
143
+ }
144
+ /**
145
+ * Make every object of `oids` present in `to`. Whole source packs whose objects
146
+ * are all wanted are adopted by hard link on one filesystem; wanted loose
147
+ * objects are linked; the rest are streamed as one self-contained pack (no
148
+ * deltas, big-blob streaming on both sides), so no child holds a large blob in
149
+ * memory and no JS string ever holds object bytes. A streamed pack is staged
150
+ * inside the destination object directory (`tmp_*`, which Git's own prune
151
+ * reclaims after a crash), so its publication is a same-filesystem rename even
152
+ * when the source lives on another volume.
153
+ */
154
+ export async function transferObjects(from, to, oids, hashLength) {
155
+ try {
156
+ return await transferObjectsUnchecked(from, to, oids, hashLength);
157
+ }
158
+ catch (error) {
159
+ throw typedSpaceFailure(error, "object copy");
160
+ }
161
+ }
162
+ async function transferObjectsUnchecked(from, to, oids, hashLength) {
163
+ const result = {
164
+ linkedPacks: 0,
165
+ linkedLoose: 0,
166
+ streamedObjects: 0,
167
+ copiedBytes: 0,
168
+ };
169
+ let wanted = new Set(await missingObjects(to, [...new Set(oids)]));
170
+ if (wanted.size === 0)
171
+ return result;
172
+ const sizes = await objectDiskSizes(from, [...wanted]);
173
+ let linkable = sameDevice(from.objectsDir, to.objectsDir);
174
+ // Adopt whole packs only on one filesystem: a cross-device copy of a pack
175
+ // with foreign objects would cost more than streaming just the wanted ones.
176
+ const packDir = join(from.objectsDir, "pack");
177
+ if (linkable && existsSync(packDir)) {
178
+ mkdirSync(join(to.objectsDir, "pack"), { recursive: true });
179
+ for (const name of readdirSync(packDir)) {
180
+ if (!name.endsWith(".idx"))
181
+ continue;
182
+ const idx = join(packDir, name);
183
+ const pack = idx.slice(0, -4) + ".pack";
184
+ if (!existsSync(pack))
185
+ continue;
186
+ // A pack holding more objects than are wanted can never be adopted whole.
187
+ const count = packIndexObjectCount(idx);
188
+ if (count === 0 || count > wanted.size)
189
+ continue;
190
+ const members = packIndexObjectIds(idx, hashLength);
191
+ if (!members.every((oid) => wanted.has(oid)))
192
+ continue;
193
+ const packTarget = join(to.objectsDir, "pack", name.slice(0, -4) + ".pack");
194
+ if (!tryLink(pack, packTarget)) {
195
+ linkable = false;
196
+ break;
197
+ }
198
+ // The .idx makes a pack visible; without it the linked .pack is inert.
199
+ if (!tryLink(idx, join(to.objectsDir, "pack", name))) {
200
+ rmSync(packTarget, { force: true });
201
+ linkable = false;
202
+ break;
203
+ }
204
+ for (const oid of members)
205
+ wanted.delete(oid);
206
+ result.linkedPacks += 1;
207
+ }
208
+ }
209
+ if (linkable) {
210
+ for (const oid of [...wanted]) {
211
+ const source = looseObjectPath(from.objectsDir, oid);
212
+ if (!existsSync(source))
213
+ continue;
214
+ mkdirSync(join(to.objectsDir, oid.slice(0, 2)), { recursive: true });
215
+ if (!tryLink(source, looseObjectPath(to.objectsDir, oid)))
216
+ break;
217
+ wanted.delete(oid);
218
+ result.linkedLoose += 1;
219
+ }
220
+ }
221
+ if (wanted.size > 0) {
222
+ const required = [...wanted].reduce((sum, oid) => sum + (sizes.get(oid) ?? 0), 0);
223
+ assertSpaceFor(to.objectsDir, required, "object copy");
224
+ const staging = join(to.objectsDir, `tmp_claudexor-${randomUUID()}`);
225
+ mkdirSync(staging, { recursive: true, mode: 0o700 });
226
+ try {
227
+ const base = join(staging, "transfer");
228
+ const sink = fileSink(`${base}.pack`);
229
+ try {
230
+ await gitObserved(from.cwd, [...STREAMING_THRESHOLD, "pack-objects", "--stdout", "-q", "--window=0", "--depth=0"], {
231
+ env: from.env,
232
+ input: `${[...wanted].join("\n")}\n`,
233
+ stdout: sink,
234
+ label: "pack-objects",
235
+ });
236
+ }
237
+ finally {
238
+ sink.end();
239
+ }
240
+ result.copiedBytes += sink.bytes();
241
+ const indexed = await gitObserved(to.cwd, [...STREAMING_THRESHOLD, "index-pack", `${base}.pack`], { env: to.env, label: "index-pack", progress: () => statSafe(`${base}.idx`) });
242
+ const name = indexed.stdout.trim().split(/\s+/).pop() ?? "";
243
+ if (!/^[0-9a-f]{40,64}$/.test(name)) {
244
+ throw new GitOperationError("capture_failed", "index-pack returned no pack name");
245
+ }
246
+ mkdirSync(join(to.objectsDir, "pack"), { recursive: true });
247
+ // The .idx makes a pack visible; it moves last.
248
+ renameSync(`${base}.pack`, join(to.objectsDir, "pack", `pack-${name}.pack`));
249
+ renameSync(`${base}.idx`, join(to.objectsDir, "pack", `pack-${name}.idx`));
250
+ result.streamedObjects += wanted.size;
251
+ wanted = new Set();
252
+ }
253
+ finally {
254
+ rmSync(staging, { recursive: true, force: true });
255
+ }
256
+ }
257
+ return result;
258
+ }
259
+ function statSafe(path) {
260
+ try {
261
+ return statSync(path).size;
262
+ }
263
+ catch {
264
+ return 0;
265
+ }
266
+ }
267
+ //# sourceMappingURL=object-transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-transfer.js","sourceRoot":"","sources":["../src/object-transfer.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { CapturedWorkspaceDiff } from "./manager.js";
3
3
  /** Drain the entire diff but retain only the preview. Four-line lookahead keeps
4
4
  * structural header recognition and exact owned-directory exclusion intact;
5
5
  * even a single enormous hunk line is bounded before it becomes a string.
6
- * Binary stubs beyond the preview still receive the existing secret inspection. */
6
+ */
7
7
  export declare class PlainDiffProjection implements CaptureProjection {
8
8
  private baseline;
9
9
  private root;
@@ -17,7 +17,6 @@ export declare class PlainDiffProjection implements CaptureProjection {
17
17
  private preview;
18
18
  private truncated;
19
19
  get complete(): boolean;
20
- readonly binarySecretPaths: Set<string>;
21
20
  constructor(baseline: string, root: string, artifactRelative?: string | null | undefined);
22
21
  write(chunk: Buffer): void;
23
22
  private consume;
@@ -1 +1 @@
1
- {"version":3,"file":"plain-diff-capture.d.ts","sourceRoot":"","sources":["../src/plain-diff-capture.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAW1D;;;mFAGmF;AACnF,qBAAa,mBAAoB,YAAW,iBAAiB;IAezD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,gBAAgB,CAAC;IAhB3B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,QAAQ,CAAC,iBAAiB,cAAqB;IAE/C,YACU,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,YAAA,EACtC;IAEJ,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEzB;IAED,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,SAAS;IA0CjB,GAAG,IAAI,MAAM,CAKZ;CACF;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAiDhC"}
1
+ {"version":3,"file":"plain-diff-capture.d.ts","sourceRoot":"","sources":["../src/plain-diff-capture.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAO1D;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,iBAAiB;IAczD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,gBAAgB,CAAC;IAf3B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,YACU,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,YAAA,EACtC;IAEJ,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEzB;IAED,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,SAAS;IAuCjB,GAAG,IAAI,MAAM,CAKZ;CACF;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAgDhC"}
@@ -2,13 +2,13 @@ import { existsSync } from "node:fs";
2
2
  import { StringDecoder } from "node:string_decoder";
3
3
  import { assertCaptureComplete, runCaptureRaw } from "@claudexor/core";
4
4
  import { incompleteWorkspaceCapture } from "./capture-failure.js";
5
- import { excludePlainDiffPathPrefix, plainDiffFlaggedBinaries, relativizePlainDiffHeaders, } from "./plain-diff.js";
5
+ import { excludePlainDiffPathPrefix, relativizePlainDiffHeaders } from "./plain-diff.js";
6
6
  const PROJECTION_CHARS = 200_000; // Existing legacy non-Git preview contract.
7
7
  const TRUNCATED = "\n... [diff truncated]\n";
8
8
  /** Drain the entire diff but retain only the preview. Four-line lookahead keeps
9
9
  * structural header recognition and exact owned-directory exclusion intact;
10
10
  * even a single enormous hunk line is bounded before it becomes a string.
11
- * Binary stubs beyond the preview still receive the existing secret inspection. */
11
+ */
12
12
  export class PlainDiffProjection {
13
13
  baseline;
14
14
  root;
@@ -24,7 +24,6 @@ export class PlainDiffProjection {
24
24
  get complete() {
25
25
  return !this.truncated;
26
26
  }
27
- binarySecretPaths = new Set();
28
27
  constructor(baseline, root, artifactRelative) {
29
28
  this.baseline = baseline;
30
29
  this.root = root;
@@ -76,9 +75,6 @@ export class PlainDiffProjection {
76
75
  else if (line.text.startsWith("@@"))
77
76
  this.inHunk = true;
78
77
  if (!this.excluded) {
79
- if (binary)
80
- for (const path of plainDiffFlaggedBinaries(line.text, this.root))
81
- this.binarySecretPaths.add(path);
82
78
  const text = line.text + (line.newline ? "\n" : "");
83
79
  const room = PROJECTION_CHARS - this.preview.length;
84
80
  this.preview += text.slice(0, room);
@@ -122,7 +118,6 @@ export async function capturePlainDiff(baseline, root, artifactRelative) {
122
118
  }));
123
119
  return {
124
120
  diff: result.stdout,
125
- binarySecretPaths: [...projection.binarySecretPaths],
126
121
  captureIncomplete: !projection.complete,
127
122
  ...(!projection.complete
128
123
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"plain-diff-capture.js","sourceRoot":"","sources":["../src/plain-diff-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plain-diff-capture.js","sourceRoot":"","sources":["../src/plain-diff-capture.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,4 @@ export declare function relativizePlainDiffHeaders(text: string, baselineRoot: s
9
9
  * every depth and would hide unrelated user files that happen to share an
10
10
  * engine-generated envelope basename. Ambiguous/unparsed blocks stay captured. */
11
11
  export declare function excludePlainDiffPathPrefix(text: string, relativeDir: string): string;
12
- /** `diff -ruN` carries no binary payload, so inspect each live binary
13
- * postimage directly and name the ones a persisted copy must disclose.
14
- * Oversized, non-regular, or unreadable bytes are unprovable and are named too. */
15
- export declare function plainDiffFlaggedBinaries(text: string, liveRoot: string): string[];
16
12
  //# sourceMappingURL=plain-diff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plain-diff.d.ts","sourceRoot":"","sources":["../src/plain-diff.ts"],"names":[],"mappings":"AAiBA,oGAAoG;AACpG,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYpF;AAED;;8EAE8E;AAC9E,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAkDR;AAED;;;kFAGkF;AAClF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAiCpF;AAED;;mFAEmF;AACnF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAkCjF"}
1
+ {"version":3,"file":"plain-diff.d.ts","sourceRoot":"","sources":["../src/plain-diff.ts"],"names":[],"mappings":"AAIA,oGAAoG;AACpG,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYpF;AAED;;8EAE8E;AAC9E,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAkDR;AAED;;;kFAGkF;AAClF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAiCpF"}
@@ -1,8 +1,6 @@
1
- import { closeSync, constants, cpSync, existsSync, fstatSync, mkdirSync, openSync, readFileSync, readdirSync, } from "node:fs";
2
- import { join, resolve, sep } from "node:path";
1
+ import { cpSync, existsSync, mkdirSync, readdirSync } from "node:fs";
2
+ import { join } from "node:path";
3
3
  import { parseUnifiedDiff } from "@claudexor/core";
4
- import { containsSecretLikeToken } from "@claudexor/util";
5
- const MAX_BINARY_SECRET_SCAN_BYTES = 32 * 1024 * 1024;
6
4
  /** Legacy live convergence capture only. Explicit directory workspaces use a selected footprint. */
7
5
  export function snapshotLegacyDirectoryBaseline(repoRoot, base) {
8
6
  const baseline = join(base, "baseline");
@@ -109,44 +107,4 @@ export function excludePlainDiffPathPrefix(text, relativeDir) {
109
107
  }
110
108
  return filtered;
111
109
  }
112
- /** `diff -ruN` carries no binary payload, so inspect each live binary
113
- * postimage directly and name the ones a persisted copy must disclose.
114
- * Oversized, non-regular, or unreadable bytes are unprovable and are named too. */
115
- export function plainDiffFlaggedBinaries(text, liveRoot) {
116
- const root = resolve(liveRoot);
117
- const flagged = [];
118
- for (const file of parseUnifiedDiff(text).files) {
119
- if (!file.binaryStub || file.deleted || !file.newPath)
120
- continue;
121
- const source = resolve(root, file.newPath);
122
- if (source !== root && !source.startsWith(root + sep)) {
123
- flagged.push(file.newPath);
124
- continue;
125
- }
126
- let fd;
127
- try {
128
- fd = openSync(source, constants.O_RDONLY | constants.O_NOFOLLOW);
129
- }
130
- catch (error) {
131
- if (error.code !== "ENOENT")
132
- flagged.push(file.newPath);
133
- continue;
134
- }
135
- try {
136
- const stat = fstatSync(fd);
137
- const bytes = stat.isFile() && stat.size <= MAX_BINARY_SECRET_SCAN_BYTES ? readFileSync(fd) : null;
138
- if (bytes === null ||
139
- bytes.length > MAX_BINARY_SECRET_SCAN_BYTES ||
140
- containsSecretLikeToken(bytes.toString("latin1")))
141
- flagged.push(file.newPath);
142
- }
143
- catch {
144
- flagged.push(file.newPath);
145
- }
146
- finally {
147
- closeSync(fd);
148
- }
149
- }
150
- return flagged;
151
- }
152
110
  //# sourceMappingURL=plain-diff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plain-diff.js","sourceRoot":"","sources":["../src/plain-diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plain-diff.js","sourceRoot":"","sources":["../src/plain-diff.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"raw-patch.d.ts","sourceRoot":"","sources":["../src/raw-patch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAI3B,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,IAAI,EAAE,mBAAmB;IAD3C,YACkB,IAAI,EAAE,mBAAmB,EACzC,OAAO,EAAE,MAAM,EAIhB;CACF;AAuBD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,EACpC,KAAK,EAAE,YAAY,GAClB,mBAAmB,GAAG,IAAI,CAS5B;AAED,oFAAoF;AACpF,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACtC,GAAG,OAAO,CAAC;IAAE,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC,CA0H3C"}
1
+ {"version":3,"file":"raw-patch.d.ts","sourceRoot":"","sources":["../src/raw-patch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAI3B,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,IAAI,EAAE,mBAAmB;IAD3C,YACkB,IAAI,EAAE,mBAAmB,EACzC,OAAO,EAAE,MAAM,EAIhB;CACF;AAuBD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,EACpC,KAAK,EAAE,YAAY,GAClB,mBAAmB,GAAG,IAAI,CAS5B;AAED,oFAAoF;AACpF,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACtC,GAAG,OAAO,CAAC;IAAE,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC,CAuH3C"}
package/dist/raw-patch.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { isAbsolute, resolve } from "node:path";
2
2
  import { parseUnifiedDiff } from "@claudexor/core";
3
- import { sensitiveResourcePolicy, sha256 } from "@claudexor/util";
3
+ import { sha256 } from "@claudexor/util";
4
4
  import { applyPatchProtected, git, materializePatchTree, revParse } from "./git.js";
5
5
  export class RawPatchRefusalError extends Error {
6
6
  code;
@@ -32,10 +32,10 @@ export function captureRawPatchEnvelope(enabled, previous, event) {
32
32
  return previous;
33
33
  if (!enabled || !event.patch_envelope || previous)
34
34
  refuse("raw_patch_missing_evidence", "expected exactly one enabled patch envelope");
35
- // INV-062: secret-like CONTENT is no refusal. The envelope is memory-only; it
36
- // materializes in the isolated candidate tree and reaches saved artifacts only
37
- // through the shared keep-and-mask capture. Scope, preimage and digest
38
- // evidence are still enforced by consumeRawPatchEnvelope.
35
+ // Credential-shaped CONTENT is no refusal. The envelope is memory-only; it
36
+ // materializes in the isolated candidate tree and reaches saved artifacts
37
+ // through the shared exact capture. Scope, preimage and digest evidence are
38
+ // still enforced by consumeRawPatchEnvelope.
39
39
  return event.patch_envelope;
40
40
  }
41
41
  /** Validate and materialize a raw patch only inside its isolated candidate tree. */
@@ -115,9 +115,6 @@ export async function consumeRawPatchEnvelope(input) {
115
115
  declared.set(item.path, item.expected_blob_oid);
116
116
  }
117
117
  for (const path of actualPaths) {
118
- if (sensitiveResourcePolicy.classifyPath(path).sensitive) {
119
- refuse("raw_patch_outside_scope", `${path} is outside the packet's exact editable scope`);
120
- }
121
118
  const presence = expectedPresence.get(path);
122
119
  const file = editable.get(path);
123
120
  const expected = declared.get(path);
@@ -1 +1 @@
1
- {"version":3,"file":"raw-patch.js","sourceRoot":"","sources":["../src/raw-patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAOnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpF,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAE3B,IAAI;IADtB,YACkB,IAAyB,EACzC,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;oBAHC,IAAI;QAIpB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,SAAS,MAAM,CAAC,IAAyB,EAAE,MAAc;IACvD,MAAM,IAAI,oBAAoB,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IACE,CAAC,IAAI;QACL,UAAU,CAAC,IAAI,CAAC;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,EAC5E,CAAC;QACD,MAAM,CAAC,0BAA0B,EAAE,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,IAAY;IAC5C,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC9B,YAAY,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAgB,EAChB,QAAoC,EACpC,KAAmB;IAEnB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,QAAQ,CAAC;IACrD,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ;QAC/C,MAAM,CAAC,4BAA4B,EAAE,6CAA6C,CAAC,CAAC;IACtF,8EAA8E;IAC9E,+EAA+E;IAC/E,uEAAuE;IACvE,0DAA0D;IAC1D,OAAO,KAAK,CAAC,cAAc,CAAC;AAC9B,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAM7C;IACC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3E,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;QACvB,MAAM,CAAC,4BAA4B,EAAE,yCAAyC,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,8BAA8B,EAAE,iDAAiD,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,QAAQ,CAAC,mBAAmB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,CAAC,4BAA4B,EAAE,oDAAoD,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,GAAG,aAAa,SAAS,CAAC,CAAC;IAC3E,IACE,OAAO,CAAC,eAAe,KAAK,aAAa;QACzC,OAAO,CAAC,aAAa,KAAK,cAAc;QACxC,QAAQ,CAAC,aAAa,KAAK,cAAc,EACzC,CAAC;QACD,MAAM,CAAC,yBAAyB,EAAE,uDAAuD,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,gBAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,gBAAgB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,8BAA8B,EAAE,8CAA8C,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,gBAAgB,KAAK,cAAc,EAAE,CAAC;QACxC,MAAM,CAAC,yBAAyB,EAAE,2DAA2D,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE;QAC7C,QAAQ;QACR,gBAAgB;QAChB,IAAI;QACJ,uBAAuB;KACxB,CAAC,CAAC;IACH,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,8BAA8B,EAAE,gDAAgD,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,8BAA8B,EAAE,kDAAkD,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,CAAC,2BAA2B,EAAE,iDAAiD,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC,CAAC;IAClG,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,8BAA8B,EAAE,mDAAmD,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgC,CAAC;IACjE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtE,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,CACJ,4BAA4B,EAC5B,wCAAwC,IAAI,CAAC,OAAO,EAAE,CACvD,CAAC;YACJ,CAAC;YACD,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC1C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,4BAA4B,EAAE,0BAA0B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACzD,MAAM,CAAC,yBAAyB,EAAE,GAAG,IAAI,+CAA+C,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,4BAA4B,EAAE,iCAAiC,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpD,MAAM,CAAC,yBAAyB,EAAE,GAAG,IAAI,+CAA+C,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,CAAC,0BAA0B,EAAE,oBAAoB,IAAI,4BAA4B,CAAC,CAAC;YAC3F,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,yBAAyB,EAAE,GAAG,IAAI,6CAA6C,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,CAAC,0BAA0B,EAAE,oBAAoB,IAAI,4BAA4B,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IACD,IACE,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;QAClC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EACtD,CAAC;QACD,MAAM,CAAC,4BAA4B,EAAE,kDAAkD,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,mBAA2B,CAAC;IAChC,IAAI,CAAC;QACH,mBAAmB,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,wBAAwB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxE,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,wBAAwB,EAAE,OAAO,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC;IACzF,OAAO,EAAE,mBAAmB,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"raw-patch.js","sourceRoot":"","sources":["../src/raw-patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAOnD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpF,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAE3B,IAAI;IADtB,YACkB,IAAyB,EACzC,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;oBAHC,IAAI;QAIpB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,SAAS,MAAM,CAAC,IAAyB,EAAE,MAAc;IACvD,MAAM,IAAI,oBAAoB,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IACE,CAAC,IAAI;QACL,UAAU,CAAC,IAAI,CAAC;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,EAC5E,CAAC;QACD,MAAM,CAAC,0BAA0B,EAAE,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,IAAY;IAC5C,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC9B,YAAY,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAgB,EAChB,QAAoC,EACpC,KAAmB;IAEnB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,QAAQ,CAAC;IACrD,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ;QAC/C,MAAM,CAAC,4BAA4B,EAAE,6CAA6C,CAAC,CAAC;IACtF,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,6CAA6C;IAC7C,OAAO,KAAK,CAAC,cAAc,CAAC;AAC9B,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAM7C;IACC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3E,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;QACvB,MAAM,CAAC,4BAA4B,EAAE,yCAAyC,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,8BAA8B,EAAE,iDAAiD,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,QAAQ,CAAC,mBAAmB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,CAAC,4BAA4B,EAAE,oDAAoD,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,GAAG,aAAa,SAAS,CAAC,CAAC;IAC3E,IACE,OAAO,CAAC,eAAe,KAAK,aAAa;QACzC,OAAO,CAAC,aAAa,KAAK,cAAc;QACxC,QAAQ,CAAC,aAAa,KAAK,cAAc,EACzC,CAAC;QACD,MAAM,CAAC,yBAAyB,EAAE,uDAAuD,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,gBAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,gBAAgB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,8BAA8B,EAAE,8CAA8C,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,gBAAgB,KAAK,cAAc,EAAE,CAAC;QACxC,MAAM,CAAC,yBAAyB,EAAE,2DAA2D,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE;QAC7C,QAAQ;QACR,gBAAgB;QAChB,IAAI;QACJ,uBAAuB;KACxB,CAAC,CAAC;IACH,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,8BAA8B,EAAE,gDAAgD,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,8BAA8B,EAAE,kDAAkD,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,CAAC,2BAA2B,EAAE,iDAAiD,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC,CAAC;IAClG,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,8BAA8B,EAAE,mDAAmD,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgC,CAAC;IACjE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtE,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,CACJ,4BAA4B,EAC5B,wCAAwC,IAAI,CAAC,OAAO,EAAE,CACvD,CAAC;YACJ,CAAC;YACD,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC1C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,4BAA4B,EAAE,0BAA0B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,4BAA4B,EAAE,iCAAiC,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpD,MAAM,CAAC,yBAAyB,EAAE,GAAG,IAAI,+CAA+C,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,CAAC,0BAA0B,EAAE,oBAAoB,IAAI,4BAA4B,CAAC,CAAC;YAC3F,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,yBAAyB,EAAE,GAAG,IAAI,6CAA6C,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,CAAC,0BAA0B,EAAE,oBAAoB,IAAI,4BAA4B,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IACD,IACE,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;QAClC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EACtD,CAAC;QACD,MAAM,CAAC,4BAA4B,EAAE,kDAAkD,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,mBAA2B,CAAC;IAChC,IAAI,CAAC;QACH,mBAAmB,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,wBAAwB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxE,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,wBAAwB,EAAE,OAAO,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC;IACzF,OAAO,EAAE,mBAAmB,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** A run whose files retention reclaimed: its directory keeps only `tombstone.yaml`. */
2
+ export declare function runFilesExpired(runDir: string): boolean;
3
+ //# sourceMappingURL=run-expiry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-expiry.d.ts","sourceRoot":"","sources":["../src/run-expiry.ts"],"names":[],"mappings":"AAGA,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQvD"}
@@ -0,0 +1,15 @@
1
+ import { lstatSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ /** A run whose files retention reclaimed: its directory keeps only `tombstone.yaml`. */
4
+ export function runFilesExpired(runDir) {
5
+ try {
6
+ lstatSync(join(runDir, "tombstone.yaml"));
7
+ return true;
8
+ }
9
+ catch (error) {
10
+ if (error.code === "ENOENT")
11
+ return false;
12
+ throw error;
13
+ }
14
+ }
15
+ //# sourceMappingURL=run-expiry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-expiry.js","sourceRoot":"","sources":["../src/run-expiry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,IAAI,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACrE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -27,7 +27,41 @@ export declare function advanceThreadWorktree(projectRoot: string, threadId: str
27
27
  /** Whether an isolated thread's directory is still on disk: its purge failed
28
28
  * after the journal commit, and the next retention pass retries it. */
29
29
  export declare function threadWorktreeDirExists(projectRoot: string, threadId: string): boolean;
30
+ /** The repository a purge attempt asked, kept by its caller for the next one:
31
+ * the common Git directory, and that directory's inode, which tells it apart
32
+ * from another repository later put at the same path. Unlike the device
33
+ * number, an inode survives a restart; null where the filesystem has none. */
34
+ export interface PurgeRepositoryRecord {
35
+ gitDir: string;
36
+ identity: string | null;
37
+ }
30
38
  /** Explicit purge of daemon-owned isolated-thread resources. Lifecycle
31
- * authority lives in the journal; the generic orphan sweeper never guesses. */
32
- export declare function purgeThreadWorktree(projectRoot: string, threadId: string): Promise<void>;
39
+ * authority lives in the journal; the generic orphan sweeper never guesses.
40
+ * Git drops the worktree registration and then the branch before the
41
+ * directory goes: a refusal (a locked worktree, a held ref lock) throws with
42
+ * the directory still on disk, so the purge stays pending instead of reporting
43
+ * what Git still records as deleted. What is already gone counts as done, but
44
+ * only where it was looked for: in the repository the worktree's own `.git`
45
+ * file names (`worktreeRepository`), else the one an earlier attempt recorded
46
+ * (`repository`), else the project folder's. Git deletes that file with the
47
+ * worktree and a project folder can be replaced, so the repository asked goes
48
+ * to `recordRepository` before Git's first change in it, wherever it was
49
+ * found: a retry after a refused branch deletion asks the same repository,
50
+ * not whatever is at the project path by then. That holds after Git deleted
51
+ * the registration but not the directory too: the `.git` file left behind
52
+ * names a registration that is gone, and when it was in the recorded
53
+ * repository, still at its path, that one is asked. Where Git has nothing of the
54
+ * thread to change, nothing is recorded. A repository that cannot be
55
+ * reached, or a recorded one replaced at its path, keeps the purge pending. A
56
+ * link above the thread directory is refused (`ownedProjectRuntimeDir`); one
57
+ * at the directory or its tree is unlinked first, so Git sees a missing
58
+ * worktree and neither Git nor rm follows it. `worktreeRecorded`: the thread
59
+ * record names a worktree; a thread that never had one leaves no Git state to
60
+ * look for. Returns the common Git directory the cleanup asked, null when
61
+ * there was none. */
62
+ export declare function purgeThreadWorktree(projectRoot: string, threadId: string, { worktreeRecorded, repository, recordRepository, }?: {
63
+ worktreeRecorded?: boolean;
64
+ repository?: PurgeRepositoryRecord | null;
65
+ recordRepository?: (repository: PurgeRepositoryRecord) => Promise<void>;
66
+ }): Promise<string | null>;
33
67
  //# sourceMappingURL=thread-tree.d.ts.map