@cerbur/clutch-dsh-worktree 0.1.7 → 0.1.8
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/README.md +28 -8
- package/README.zh.md +21 -3
- package/lib/client/WorktreeSurface.d.ts.map +1 -1
- package/lib/client/WorktreeSurface.js +24 -8
- package/lib/client/WorktreeSurface.js.map +1 -1
- package/lib/client/locales.d.ts +12 -0
- package/lib/client/locales.d.ts.map +1 -1
- package/lib/client/locales.js +12 -0
- package/lib/client/locales.js.map +1 -1
- package/lib/client/worktree-context.js +1 -1
- package/lib/client/worktree-context.js.map +1 -1
- package/lib/client/worktree-error-copy.d.ts.map +1 -1
- package/lib/client/worktree-error-copy.js +8 -0
- package/lib/client/worktree-error-copy.js.map +1 -1
- package/lib/client/worktree-session.d.ts.map +1 -1
- package/lib/client/worktree-session.js +3 -1
- package/lib/client/worktree-session.js.map +1 -1
- package/lib/client/worktree-surface-rows.d.ts.map +1 -1
- package/lib/client/worktree-surface-rows.js +7 -0
- package/lib/client/worktree-surface-rows.js.map +1 -1
- package/lib/client.js +47 -11
- package/lib/client.js.map +1 -1
- package/lib/contract/index.d.ts +6 -2
- package/lib/contract/index.d.ts.map +1 -1
- package/lib/contract/index.js +4 -0
- package/lib/contract/index.js.map +1 -1
- package/lib/host/dsh-read-adapter.d.ts +1 -0
- package/lib/host/dsh-read-adapter.d.ts.map +1 -1
- package/lib/host/dsh-read-adapter.js +6 -0
- package/lib/host/dsh-read-adapter.js.map +1 -1
- package/lib/host/service.d.ts +2 -0
- package/lib/host/service.d.ts.map +1 -1
- package/lib/host/service.js +6 -1
- package/lib/host/service.js.map +1 -1
- package/lib/host/worktree-permission-manager.d.ts.map +1 -1
- package/lib/host/worktree-permission-manager.js +3 -1
- package/lib/host/worktree-permission-manager.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/manage/manager-context.d.ts +2 -0
- package/lib/manage/manager-context.d.ts.map +1 -1
- package/lib/manage/manager-worktrees.d.ts +5 -0
- package/lib/manage/manager-worktrees.d.ts.map +1 -1
- package/lib/manage/manager-worktrees.js +125 -37
- package/lib/manage/manager-worktrees.js.map +1 -1
- package/lib/manage/manager.d.ts +20 -0
- package/lib/manage/manager.d.ts.map +1 -1
- package/lib/manage/manager.js +91 -13
- package/lib/manage/manager.js.map +1 -1
- package/lib/manage/types.d.ts +9 -1
- package/lib/manage/types.d.ts.map +1 -1
- package/lib/provider/git.d.ts +37 -9
- package/lib/provider/git.d.ts.map +1 -1
- package/lib/provider/git.js +162 -61
- package/lib/provider/git.js.map +1 -1
- package/lib/provider/index.d.ts +5 -1
- package/lib/provider/index.d.ts.map +1 -1
- package/lib/provider/index.js +4 -0
- package/lib/provider/index.js.map +1 -1
- package/lib/provider/mutation-lock.d.ts +37 -0
- package/lib/provider/mutation-lock.d.ts.map +1 -0
- package/lib/provider/mutation-lock.js +270 -0
- package/lib/provider/mutation-lock.js.map +1 -0
- package/lib/provider/mutation-token.d.ts +8 -0
- package/lib/provider/mutation-token.d.ts.map +1 -0
- package/lib/provider/mutation-token.js +20 -0
- package/lib/provider/mutation-token.js.map +1 -0
- package/lib/provider/repository-fingerprint.d.ts +8 -0
- package/lib/provider/repository-fingerprint.d.ts.map +1 -0
- package/lib/provider/repository-fingerprint.js +13 -0
- package/lib/provider/repository-fingerprint.js.map +1 -0
- package/lib/provider/sidecar-persistence.d.ts +7 -3
- package/lib/provider/sidecar-persistence.d.ts.map +1 -1
- package/lib/provider/sidecar-persistence.js +118 -44
- package/lib/provider/sidecar-persistence.js.map +1 -1
- package/lib/provider/sidecar-schema.d.ts +1 -1
- package/lib/provider/sidecar-schema.d.ts.map +1 -1
- package/lib/provider/sidecar-schema.js +140 -8
- package/lib/provider/sidecar-schema.js.map +1 -1
- package/lib/provider/sidecar.d.ts +3 -1
- package/lib/provider/sidecar.d.ts.map +1 -1
- package/lib/provider/sidecar.js +6 -1
- package/lib/provider/sidecar.js.map +1 -1
- package/lib/provider/subprocess.d.ts +37 -0
- package/lib/provider/subprocess.d.ts.map +1 -0
- package/lib/provider/subprocess.js +319 -0
- package/lib/provider/subprocess.js.map +1 -0
- package/lib/provider/transaction.d.ts +65 -0
- package/lib/provider/transaction.d.ts.map +1 -0
- package/lib/provider/transaction.js +1011 -0
- package/lib/provider/transaction.js.map +1 -0
- package/lib/provider/types.d.ts +98 -7
- package/lib/provider/types.d.ts.map +1 -1
- package/lib/provider/types.js +1 -1
- package/lib/provider/types.js.map +1 -1
- package/lib/typert.host.js +29 -25
- package/lib/typert.remote-client.d.ts +2 -2
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +29 -25
- package/package.json +3 -1
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { execFile as execFileCallback } from 'node:child_process';
|
|
2
|
+
import { promisify } from 'node:util';
|
|
3
|
+
import { scrubbedParentEnv } from '@deepseek-ai/dsh-subprocess';
|
|
4
|
+
const execFile = promisify(execFileCallback);
|
|
5
|
+
// Git 的原始进程证据只在 Provider runner 内流转;上层只接收稳定的 Provider 错误。
|
|
6
|
+
// Raw Git process evidence stays inside the Provider runner; callers receive only
|
|
7
|
+
// stable Provider errors at the public boundary.
|
|
8
|
+
export class GitCommandError extends Error {
|
|
9
|
+
args;
|
|
10
|
+
cwd;
|
|
11
|
+
stdout;
|
|
12
|
+
stderr;
|
|
13
|
+
exitCode;
|
|
14
|
+
timedOut;
|
|
15
|
+
aborted;
|
|
16
|
+
outputTruncated;
|
|
17
|
+
processTreeDidNotExit;
|
|
18
|
+
signal;
|
|
19
|
+
constructor(args, cwd, stdout, stderr, exitCode, options) {
|
|
20
|
+
super(stderr || stdout || (options.processTreeDidNotExit
|
|
21
|
+
? 'Git subprocess tree did not exit before cleanup deadline'
|
|
22
|
+
: `git exited with ${String(exitCode)}`));
|
|
23
|
+
this.name = 'GitCommandError';
|
|
24
|
+
this.args = args;
|
|
25
|
+
this.cwd = cwd;
|
|
26
|
+
this.stdout = stdout;
|
|
27
|
+
this.stderr = stderr;
|
|
28
|
+
this.exitCode = exitCode;
|
|
29
|
+
this.timedOut = options.timedOut;
|
|
30
|
+
this.aborted = options.aborted;
|
|
31
|
+
this.outputTruncated = options.outputTruncated;
|
|
32
|
+
this.processTreeDidNotExit = options.processTreeDidNotExit ?? false;
|
|
33
|
+
this.signal = options.signal;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function createDeadline(timeoutMs, parentSignal) {
|
|
37
|
+
const controller = new AbortController();
|
|
38
|
+
let timedOut = false;
|
|
39
|
+
let aborted = false;
|
|
40
|
+
let disposed = false;
|
|
41
|
+
const timer = setTimeout(() => {
|
|
42
|
+
if (disposed)
|
|
43
|
+
return;
|
|
44
|
+
timedOut = true;
|
|
45
|
+
controller.abort(Object.assign(new Error('Git subprocess timed out'), { code: 'ETIMEDOUT' }));
|
|
46
|
+
}, timeoutMs);
|
|
47
|
+
const abortFromParent = () => {
|
|
48
|
+
if (disposed)
|
|
49
|
+
return;
|
|
50
|
+
aborted = true;
|
|
51
|
+
controller.abort(parentSignal?.reason);
|
|
52
|
+
};
|
|
53
|
+
if (parentSignal) {
|
|
54
|
+
if (parentSignal.aborted) {
|
|
55
|
+
abortFromParent();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
parentSignal.addEventListener('abort', abortFromParent, { once: true });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
signal: controller.signal,
|
|
63
|
+
get timedOut() {
|
|
64
|
+
return timedOut;
|
|
65
|
+
},
|
|
66
|
+
get aborted() {
|
|
67
|
+
return aborted;
|
|
68
|
+
},
|
|
69
|
+
dispose() {
|
|
70
|
+
if (disposed)
|
|
71
|
+
return;
|
|
72
|
+
disposed = true;
|
|
73
|
+
clearTimeout(timer);
|
|
74
|
+
parentSignal?.removeEventListener('abort', abortFromParent);
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function gitEnvironment(readOnly) {
|
|
79
|
+
return {
|
|
80
|
+
...scrubbedParentEnv(),
|
|
81
|
+
GIT_TERMINAL_PROMPT: '0',
|
|
82
|
+
GCM_INTERACTIVE: 'Never',
|
|
83
|
+
LC_ALL: 'C',
|
|
84
|
+
LANG: 'C',
|
|
85
|
+
// Explicitly clear an ambient read-only override for mutations. An
|
|
86
|
+
// inherited GIT_OPTIONAL_LOCKS=0 would otherwise silently weaken writes.
|
|
87
|
+
GIT_OPTIONAL_LOCKS: readOnly ? '0' : undefined,
|
|
88
|
+
GIT_DIR: undefined,
|
|
89
|
+
GIT_WORK_TREE: undefined,
|
|
90
|
+
GIT_INDEX_FILE: undefined,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function lookupEnvironment(environment) {
|
|
94
|
+
const result = {};
|
|
95
|
+
for (const [key, value] of Object.entries(environment)) {
|
|
96
|
+
if (value !== undefined)
|
|
97
|
+
result[key] = value;
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
function asText(value) {
|
|
102
|
+
return typeof value === 'string' ? value : '';
|
|
103
|
+
}
|
|
104
|
+
function asProcessError(error) {
|
|
105
|
+
return error;
|
|
106
|
+
}
|
|
107
|
+
function errorExitCode(error) {
|
|
108
|
+
return error.code ?? null;
|
|
109
|
+
}
|
|
110
|
+
function errorSignal(error) {
|
|
111
|
+
return error.signal;
|
|
112
|
+
}
|
|
113
|
+
function errorOutputTruncated(error) {
|
|
114
|
+
return error.code === 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER' ||
|
|
115
|
+
error.message?.includes('maxBuffer') === true;
|
|
116
|
+
}
|
|
117
|
+
function errorAborted(error) {
|
|
118
|
+
return error.name === 'AbortError' || error.code === 'ABORT_ERR';
|
|
119
|
+
}
|
|
120
|
+
function errorTimedOut(error, aborted) {
|
|
121
|
+
return error.timedOut === true || error.code === 'ETIMEDOUT' ||
|
|
122
|
+
(error.killed === true && !aborted);
|
|
123
|
+
}
|
|
124
|
+
function abortReason(signal, fallback) {
|
|
125
|
+
return signal.reason ?? new Error(fallback);
|
|
126
|
+
}
|
|
127
|
+
async function awaitWithAbort(promise, signal) {
|
|
128
|
+
if (signal.aborted)
|
|
129
|
+
throw abortReason(signal, 'Git subprocess was aborted');
|
|
130
|
+
let onAbort;
|
|
131
|
+
const aborted = new Promise((_resolve, reject) => {
|
|
132
|
+
onAbort = () => reject(abortReason(signal, 'Git subprocess was aborted'));
|
|
133
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
134
|
+
});
|
|
135
|
+
try {
|
|
136
|
+
return await Promise.race([promise, aborted]);
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
if (onAbort)
|
|
140
|
+
signal.removeEventListener('abort', onAbort);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function readCollectedStream(handle, stream) {
|
|
144
|
+
const reader = handle.collected[stream];
|
|
145
|
+
if (!reader) {
|
|
146
|
+
throw new Error(`Git subprocess did not expose collected ${stream}`);
|
|
147
|
+
}
|
|
148
|
+
const result = reader.readFrom(0);
|
|
149
|
+
return {
|
|
150
|
+
text: result.text,
|
|
151
|
+
truncated: result.lossy,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function readCollectedStreams(handle) {
|
|
155
|
+
const stdout = readCollectedStream(handle, 'stdout');
|
|
156
|
+
const stderr = readCollectedStream(handle, 'stderr');
|
|
157
|
+
return {
|
|
158
|
+
stdout: stdout.text,
|
|
159
|
+
stderr: stderr.text,
|
|
160
|
+
outputTruncated: stdout.truncated || stderr.truncated,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function readCollectedStreamsSafely(handle) {
|
|
164
|
+
if (!handle)
|
|
165
|
+
return { stdout: '', stderr: '', outputTruncated: false };
|
|
166
|
+
try {
|
|
167
|
+
return readCollectedStreams(handle);
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
return { stdout: '', stderr: '', outputTruncated: false };
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
async function waitForExitWithin(handle, timeoutMs) {
|
|
174
|
+
const controller = new AbortController();
|
|
175
|
+
let timer;
|
|
176
|
+
const timeout = new Promise((resolve) => {
|
|
177
|
+
timer = setTimeout(() => {
|
|
178
|
+
controller.abort(new Error('Git subprocess tree cleanup timed out'));
|
|
179
|
+
resolve(false);
|
|
180
|
+
}, timeoutMs);
|
|
181
|
+
});
|
|
182
|
+
const wait = Promise.resolve().then(() => handle.waitForExit(controller.signal));
|
|
183
|
+
try {
|
|
184
|
+
return await Promise.race([wait, timeout]);
|
|
185
|
+
}
|
|
186
|
+
finally {
|
|
187
|
+
if (timer)
|
|
188
|
+
clearTimeout(timer);
|
|
189
|
+
if (!controller.signal.aborted)
|
|
190
|
+
controller.abort();
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
async function stopAndWait(handle, cleanupTimeoutMs) {
|
|
194
|
+
try {
|
|
195
|
+
handle.terminate();
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
// Preserve the original Git/runtime error; the runtime owns termination details.
|
|
199
|
+
}
|
|
200
|
+
try {
|
|
201
|
+
return await waitForExitWithin(handle, cleanupTimeoutMs);
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
// Preserve the original Git/runtime error after making a best-effort tree cleanup.
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
function commandErrorFrom(args, cwd, error, output, options) {
|
|
209
|
+
const processError = asProcessError(error);
|
|
210
|
+
const aborted = options.aborted || errorAborted(processError);
|
|
211
|
+
return new GitCommandError(args, cwd, output.stdout || asText(processError.stdout), output.stderr || asText(processError.stderr), errorExitCode(processError), {
|
|
212
|
+
timedOut: options.timedOut || errorTimedOut(processError, aborted),
|
|
213
|
+
aborted,
|
|
214
|
+
outputTruncated: output.outputTruncated || errorOutputTruncated(processError),
|
|
215
|
+
processTreeDidNotExit: options.processTreeDidNotExit,
|
|
216
|
+
...(errorSignal(processError) ? { signal: errorSignal(processError) } : {}),
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
async function runWithSubprocess(args, cwd, executable, executableArgs, options) {
|
|
220
|
+
const deadline = createDeadline(options.timeoutMs, options.signal);
|
|
221
|
+
const environment = gitEnvironment(options.readOnly);
|
|
222
|
+
let handle;
|
|
223
|
+
let treeSettled = false;
|
|
224
|
+
try {
|
|
225
|
+
const resolvedExecutable = await awaitWithAbort(options.subprocess.resolveExecutable(executable, lookupEnvironment(environment), deadline.signal), deadline.signal);
|
|
226
|
+
handle = options.subprocess.spawn({
|
|
227
|
+
argv: [resolvedExecutable, ...executableArgs, ...args],
|
|
228
|
+
cwd,
|
|
229
|
+
stdio: {
|
|
230
|
+
stdin: 'ignore',
|
|
231
|
+
stdout: { maxBytes: options.maxOutputBytes },
|
|
232
|
+
stderr: { maxBytes: options.maxOutputBytes },
|
|
233
|
+
},
|
|
234
|
+
graceMs: options.graceMs,
|
|
235
|
+
signal: deadline.signal,
|
|
236
|
+
env: environment,
|
|
237
|
+
});
|
|
238
|
+
const outcome = await awaitWithAbort(handle.done, deadline.signal);
|
|
239
|
+
deadline.dispose();
|
|
240
|
+
const cleanupCompleted = await stopAndWait(handle, options.cleanupTimeoutMs);
|
|
241
|
+
treeSettled = cleanupCompleted;
|
|
242
|
+
const output = readCollectedStreams(handle);
|
|
243
|
+
const timedOut = deadline.timedOut;
|
|
244
|
+
const aborted = deadline.aborted && !timedOut;
|
|
245
|
+
if (!cleanupCompleted) {
|
|
246
|
+
throw new GitCommandError(args, cwd, output.stdout, output.stderr, outcome.exitCode, {
|
|
247
|
+
timedOut: deadline.timedOut,
|
|
248
|
+
aborted,
|
|
249
|
+
outputTruncated: output.outputTruncated,
|
|
250
|
+
processTreeDidNotExit: true,
|
|
251
|
+
...(outcome.signal ? { signal: outcome.signal } : {}),
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
if (timedOut || aborted || output.outputTruncated || outcome.exitCode !== 0 || outcome.signal) {
|
|
255
|
+
throw new GitCommandError(args, cwd, output.stdout, output.stderr, outcome.exitCode, {
|
|
256
|
+
timedOut,
|
|
257
|
+
aborted,
|
|
258
|
+
outputTruncated: output.outputTruncated,
|
|
259
|
+
processTreeDidNotExit: false,
|
|
260
|
+
...(outcome.signal ? { signal: outcome.signal } : {}),
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
return { stdout: output.stdout, stderr: output.stderr };
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
if (error instanceof GitCommandError)
|
|
267
|
+
throw error;
|
|
268
|
+
let cleanupCompleted = treeSettled;
|
|
269
|
+
if (handle && !treeSettled) {
|
|
270
|
+
cleanupCompleted = await stopAndWait(handle, options.cleanupTimeoutMs);
|
|
271
|
+
}
|
|
272
|
+
throw commandErrorFrom(args, cwd, error, readCollectedStreamsSafely(handle), {
|
|
273
|
+
timedOut: deadline.timedOut,
|
|
274
|
+
aborted: deadline.aborted && !deadline.timedOut,
|
|
275
|
+
processTreeDidNotExit: handle !== undefined && !cleanupCompleted,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
finally {
|
|
279
|
+
deadline.dispose();
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
async function runWithNode(args, cwd, executable, executableArgs, options) {
|
|
283
|
+
const environment = gitEnvironment(options.readOnly);
|
|
284
|
+
try {
|
|
285
|
+
const result = await execFile(executable, [...executableArgs, ...args], {
|
|
286
|
+
cwd,
|
|
287
|
+
encoding: 'utf8',
|
|
288
|
+
maxBuffer: options.maxOutputBytes,
|
|
289
|
+
timeout: options.timeoutMs,
|
|
290
|
+
killSignal: 'SIGTERM',
|
|
291
|
+
signal: options.signal,
|
|
292
|
+
shell: false,
|
|
293
|
+
windowsHide: true,
|
|
294
|
+
env: environment,
|
|
295
|
+
});
|
|
296
|
+
return { stdout: result.stdout, stderr: result.stderr };
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
const processError = asProcessError(error);
|
|
300
|
+
const aborted = errorAborted(processError);
|
|
301
|
+
throw new GitCommandError(args, cwd, asText(processError.stdout), asText(processError.stderr), errorExitCode(processError), {
|
|
302
|
+
timedOut: errorTimedOut(processError, aborted),
|
|
303
|
+
aborted,
|
|
304
|
+
outputTruncated: errorOutputTruncated(processError),
|
|
305
|
+
...(errorSignal(processError) ? { signal: errorSignal(processError) } : {}),
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/** Execute one fixed Git argv through DSH subprocess or the direct Node fallback. */
|
|
310
|
+
export function runGit(args, cwd, executable, executableArgs, options) {
|
|
311
|
+
if (options.subprocess) {
|
|
312
|
+
return runWithSubprocess(args, cwd, executable, executableArgs, {
|
|
313
|
+
...options,
|
|
314
|
+
subprocess: options.subprocess,
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
return runWithNode(args, cwd, executable, executableArgs, options);
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=subprocess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subprocess.js","sourceRoot":"","sources":["../../src/provider/subprocess.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { WorktreeRecord } from '../contract/index.js';
|
|
2
|
+
import type { GitWorktreeAdapter, SidecarStore } from './types.js';
|
|
3
|
+
export interface CreateWorktreeTransactionInput {
|
|
4
|
+
readonly workspaceId: string;
|
|
5
|
+
readonly workspaceRoot: string;
|
|
6
|
+
readonly targetPath: string;
|
|
7
|
+
readonly worktreeId: string;
|
|
8
|
+
readonly baseBranch: string;
|
|
9
|
+
readonly newBranch?: string;
|
|
10
|
+
readonly targetBranch: string;
|
|
11
|
+
}
|
|
12
|
+
export interface RemoveWorktreeTransactionInput {
|
|
13
|
+
readonly workspaceId: string;
|
|
14
|
+
readonly workspaceRoot: string;
|
|
15
|
+
readonly worktreeId: string;
|
|
16
|
+
readonly mutationToken: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ImportWorktreeTransactionInput {
|
|
19
|
+
readonly workspaceId: string;
|
|
20
|
+
readonly workspaceRoot: string;
|
|
21
|
+
readonly absolutePath: string;
|
|
22
|
+
readonly worktreeId: string;
|
|
23
|
+
}
|
|
24
|
+
export interface RecoverWorktreesInput {
|
|
25
|
+
readonly workspaceId: string;
|
|
26
|
+
readonly workspaceRoot: string;
|
|
27
|
+
}
|
|
28
|
+
export interface WorktreeMutationTransactionOptions {
|
|
29
|
+
readonly dshHome: string;
|
|
30
|
+
readonly git: GitWorktreeAdapter;
|
|
31
|
+
readonly sidecar: SidecarStore;
|
|
32
|
+
}
|
|
33
|
+
export declare class WorktreeMutationTransaction {
|
|
34
|
+
private readonly dshHome;
|
|
35
|
+
private readonly git;
|
|
36
|
+
private readonly sidecar;
|
|
37
|
+
private readonly repositoryLock;
|
|
38
|
+
constructor(options: WorktreeMutationTransactionOptions);
|
|
39
|
+
create(input: CreateWorktreeTransactionInput): Promise<WorktreeRecord>;
|
|
40
|
+
remove(input: RemoveWorktreeTransactionInput): Promise<void>;
|
|
41
|
+
import(input: ImportWorktreeTransactionInput): Promise<WorktreeRecord>;
|
|
42
|
+
recover(input: RecoverWorktreesInput): Promise<void>;
|
|
43
|
+
private withShardLock;
|
|
44
|
+
private resolveRepository;
|
|
45
|
+
private assertMutationAdmitted;
|
|
46
|
+
private assertMutationToken;
|
|
47
|
+
private assertRepositoryCompatible;
|
|
48
|
+
private assertGeneratedTarget;
|
|
49
|
+
private assertSafeRemovalPath;
|
|
50
|
+
private assertRecoverableCreatePath;
|
|
51
|
+
private assertNotSymlink;
|
|
52
|
+
private findExactWorktree;
|
|
53
|
+
private findWorktreeByPhysicalPath;
|
|
54
|
+
private findSidecarWorktreeByPhysicalPath;
|
|
55
|
+
private isExactCreatedWorktree;
|
|
56
|
+
private findStaleActiveRecord;
|
|
57
|
+
private publishCreated;
|
|
58
|
+
private publishRemoved;
|
|
59
|
+
private clearPending;
|
|
60
|
+
private appendRecoveryIssue;
|
|
61
|
+
private markRecovery;
|
|
62
|
+
private reconcileCreateFailure;
|
|
63
|
+
private reconcileRemoveFailure;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/provider/transaction.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAEV,kBAAkB,EAOlB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAChC;AAqID,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;gBAE9C,OAAO,EAAE,kCAAkC;IASjD,MAAM,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,cAAc,CAAC;IAuItE,MAAM,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IAsJ5D,MAAM,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,cAAc,CAAC;IAwFtE,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;YAsJ5C,aAAa;YAUb,iBAAiB;IAU/B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,0BAA0B;IA0BlC,OAAO,CAAC,qBAAqB;YAcf,qBAAqB;YA2BrB,2BAA2B;YA8B3B,gBAAgB;YAchB,iBAAiB;YAWjB,0BAA0B;YAU1B,iCAAiC;YAUjC,sBAAsB;YAQtB,qBAAqB;YAWrB,cAAc;YAqCd,cAAc;YA8Bd,YAAY;YAgBZ,mBAAmB;YAoBnB,YAAY;YAuBZ,sBAAsB;YA+DtB,sBAAsB;CAgDrC"}
|