@yu_robotics/remote-cli 1.6.137 → 1.6.141
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 +44 -2
- package/dist/delegation/DelegatedWorkerSessionStore.d.ts +1 -0
- package/dist/delegation/DelegatedWorkerSessionStore.d.ts.map +1 -1
- package/dist/delegation/DelegatedWorkerSessionStore.js +12 -4
- package/dist/delegation/DelegatedWorkerSessionStore.js.map +1 -1
- package/dist/delegation/DelegatedWorkspaceManager.d.ts.map +1 -1
- package/dist/delegation/DelegatedWorkspaceManager.js +38 -13
- package/dist/delegation/DelegatedWorkspaceManager.js.map +1 -1
- package/dist/delegation/DelegationManager.d.ts +2 -0
- package/dist/delegation/DelegationManager.d.ts.map +1 -1
- package/dist/delegation/DelegationManager.js +158 -72
- package/dist/delegation/DelegationManager.js.map +1 -1
- package/dist/delegation/GitCheckpoint.d.ts +10 -4
- package/dist/delegation/GitCheckpoint.d.ts.map +1 -1
- package/dist/delegation/GitCheckpoint.js +290 -58
- package/dist/delegation/GitCheckpoint.js.map +1 -1
- package/dist/delegation/contract.d.ts +1 -1
- package/dist/delegation/contract.js +1 -1
- package/dist/delegation/contract.js.map +1 -1
- package/dist/maintenance/release-notes.json +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export declare const CHECKPOINT_LIMITS: {
|
|
2
|
-
readonly files: 10000;
|
|
3
|
-
readonly bytes: number;
|
|
4
2
|
readonly commandMs: 15000;
|
|
5
3
|
readonly outputBytes: number;
|
|
6
4
|
};
|
|
@@ -10,6 +8,12 @@ export interface GitCheckpoint {
|
|
|
10
8
|
tree: string;
|
|
11
9
|
commit: string;
|
|
12
10
|
revision: string;
|
|
11
|
+
repositories?: NestedRepositoryCheckpoint[];
|
|
12
|
+
}
|
|
13
|
+
export interface NestedRepositoryCheckpoint {
|
|
14
|
+
path: string;
|
|
15
|
+
identity: string;
|
|
16
|
+
revision: string;
|
|
13
17
|
}
|
|
14
18
|
export declare class GitCommandError extends Error {
|
|
15
19
|
readonly command: string;
|
|
@@ -20,8 +24,10 @@ export declare class GitCommandError extends Error {
|
|
|
20
24
|
/** Fixed argv only; neither a shell nor the user's Git environment selects the repository. */
|
|
21
25
|
export declare function runGit(cwd: string, args: string[], input?: Buffer | string, extraEnv?: Record<string, string>): Promise<Buffer>;
|
|
22
26
|
export declare function gitText(cwd: string, args: string[], input?: Buffer | string, env?: Record<string, string>): Promise<string>;
|
|
23
|
-
export declare function checkpointRevision(head: string, tree: string, index: Buffer): string;
|
|
27
|
+
export declare function checkpointRevision(head: string, tree: string, index: Buffer, repositories?: NestedRepositoryCheckpoint[]): string;
|
|
28
|
+
/** Transfer local objects through a pipe, without buffering repository contents or fetching a remote. */
|
|
29
|
+
export declare function importGitTree(source: string, destination: string, tree: string): Promise<void>;
|
|
24
30
|
export declare function createCheckpointCommit(root: string, tree: string, parent: string, label: string): Promise<string>;
|
|
25
|
-
/**
|
|
31
|
+
/** Flatten nested working files in private trees; never alter any source HEAD or index. */
|
|
26
32
|
export declare function captureCheckpoint(root: string): Promise<GitCheckpoint>;
|
|
27
33
|
//# sourceMappingURL=GitCheckpoint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitCheckpoint.d.ts","sourceRoot":"","sources":["../../src/delegation/GitCheckpoint.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"GitCheckpoint.d.ts","sourceRoot":"","sources":["../../src/delegation/GitCheckpoint.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB;;;CAAgE,CAAC;AAC/F,eAAO,MAAM,OAAO,QAAoC,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,0BAA0B,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAgB,SAAQ,KAAK;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAtE,OAAO,EAAE,MAAM,EAAW,IAAI,EAAE,MAAM,GAAG,IAAI,EAAW,MAAM,EAAE,MAAM;CAG5F;AAYD,8FAA8F;AAC9F,wBAAsB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAC/E,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCxD;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAChF,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAC1E,YAAY,GAAE,0BAA0B,EAAO,GAAG,MAAM,CAIzD;AAED,yGAAyG;AACzG,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BpG;AAwMD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvH;AAmFD,2FAA2F;AAC3F,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAiB5E"}
|
|
@@ -7,6 +7,7 @@ exports.GitCommandError = exports.GIT_OID = exports.CHECKPOINT_LIMITS = void 0;
|
|
|
7
7
|
exports.runGit = runGit;
|
|
8
8
|
exports.gitText = gitText;
|
|
9
9
|
exports.checkpointRevision = checkpointRevision;
|
|
10
|
+
exports.importGitTree = importGitTree;
|
|
10
11
|
exports.createCheckpointCommit = createCheckpointCommit;
|
|
11
12
|
exports.captureCheckpoint = captureCheckpoint;
|
|
12
13
|
const child_process_1 = require("child_process");
|
|
@@ -14,8 +15,7 @@ const crypto_1 = require("crypto");
|
|
|
14
15
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
15
16
|
const os_1 = __importDefault(require("os"));
|
|
16
17
|
const path_1 = __importDefault(require("path"));
|
|
17
|
-
exports.CHECKPOINT_LIMITS = {
|
|
18
|
-
commandMs: 15_000, outputBytes: 32 * 1024 * 1024 };
|
|
18
|
+
exports.CHECKPOINT_LIMITS = { commandMs: 15_000, outputBytes: 32 * 1024 * 1024 };
|
|
19
19
|
exports.GIT_OID = /^(?:[a-f0-9]{40}|[a-f0-9]{64})$/;
|
|
20
20
|
class GitCommandError extends Error {
|
|
21
21
|
command;
|
|
@@ -29,13 +29,19 @@ class GitCommandError extends Error {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
exports.GitCommandError = GitCommandError;
|
|
32
|
+
function gitEnvironment(extra = {}) {
|
|
33
|
+
const inherited = Object.fromEntries(Object.entries(process.env).filter(([name]) => !name.startsWith('GIT_')));
|
|
34
|
+
return { ...inherited, LC_ALL: 'C', ...extra };
|
|
35
|
+
}
|
|
36
|
+
function gitArguments(args) {
|
|
37
|
+
return ['-c', 'core.hooksPath=' + (process.platform === 'win32' ? 'NUL' : '/dev/null'),
|
|
38
|
+
'-c', 'core.fsmonitor=false', '-c', 'gc.auto=0', '-c', 'maintenance.auto=false', ...args];
|
|
39
|
+
}
|
|
32
40
|
/** Fixed argv only; neither a shell nor the user's Git environment selects the repository. */
|
|
33
41
|
async function runGit(cwd, args, input, extraEnv = {}) {
|
|
34
|
-
const env = Object.fromEntries(Object.entries(process.env).filter(([name]) => !name.startsWith('GIT_')));
|
|
35
42
|
return new Promise((resolve, reject) => {
|
|
36
|
-
const child = (0, child_process_1.spawn)('git',
|
|
37
|
-
|
|
38
|
-
cwd, env: { ...env, LC_ALL: 'C', ...extraEnv }, stdio: ['pipe', 'pipe', 'pipe'],
|
|
43
|
+
const child = (0, child_process_1.spawn)('git', gitArguments(args), {
|
|
44
|
+
cwd, env: gitEnvironment(extraEnv), stdio: ['pipe', 'pipe', 'pipe'],
|
|
39
45
|
});
|
|
40
46
|
const chunks = [];
|
|
41
47
|
let size = 0;
|
|
@@ -74,19 +80,98 @@ async function runGit(cwd, args, input, extraEnv = {}) {
|
|
|
74
80
|
async function gitText(cwd, args, input, env) {
|
|
75
81
|
return (await runGit(cwd, args, input, env)).toString('utf8').trim();
|
|
76
82
|
}
|
|
77
|
-
function checkpointRevision(head, tree, index) {
|
|
78
|
-
|
|
83
|
+
function checkpointRevision(head, tree, index, repositories = []) {
|
|
84
|
+
const hash = (0, crypto_1.createHash)('sha256').update(head).update('\0').update(tree).update('\0').update(index);
|
|
85
|
+
if (repositories.length)
|
|
86
|
+
hash.update('\0repositories\0').update(JSON.stringify(repositories));
|
|
87
|
+
return hash.digest('hex');
|
|
88
|
+
}
|
|
89
|
+
/** Transfer local objects through a pipe, without buffering repository contents or fetching a remote. */
|
|
90
|
+
async function importGitTree(source, destination, tree) {
|
|
91
|
+
if (!exports.GIT_OID.test(tree))
|
|
92
|
+
throw new Error('Invalid nested checkpoint tree');
|
|
93
|
+
if (await gitText(source, ['rev-parse', '--show-object-format']) !== await gitText(destination, ['rev-parse', '--show-object-format'])) {
|
|
94
|
+
throw new Error('Nested repository uses a different Git object format');
|
|
95
|
+
}
|
|
96
|
+
const objects = await promises_1.default.realpath(path_1.default.resolve(destination, await gitText(destination, ['rev-parse', '--git-path', 'objects'])));
|
|
97
|
+
const incoming = await promises_1.default.mkdtemp(path_1.default.join(objects, 'tmp_objdir-incoming-'));
|
|
98
|
+
try {
|
|
99
|
+
await promises_1.default.mkdir(path_1.default.join(incoming, 'pack'));
|
|
100
|
+
const published = path_1.default.join(objects, 'pack');
|
|
101
|
+
await promises_1.default.mkdir(published, { recursive: true });
|
|
102
|
+
await transferGitTree(source, destination, tree, {
|
|
103
|
+
GIT_OBJECT_DIRECTORY: incoming,
|
|
104
|
+
GIT_ALTERNATE_OBJECT_DIRECTORIES: JSON.stringify(objects),
|
|
105
|
+
});
|
|
106
|
+
const files = await promises_1.default.readdir(path_1.default.join(incoming, 'pack'));
|
|
107
|
+
if (!files.some(file => file.endsWith('.pack')) || !files.some(file => file.endsWith('.idx'))
|
|
108
|
+
|| files.some(file => !/^pack-(?:[a-f0-9]{40}|[a-f0-9]{64})\.(?:pack|idx|rev)$/.test(file))) {
|
|
109
|
+
throw new Error('Nested Git transfer produced an incomplete pack');
|
|
110
|
+
}
|
|
111
|
+
// Only complete packs leave quarantine. Publish indexes last so Git never
|
|
112
|
+
// discovers a pack while its bytes are still being received or promoted.
|
|
113
|
+
files.sort((left, right) => Number(left.endsWith('.idx')) - Number(right.endsWith('.idx')));
|
|
114
|
+
for (const file of files)
|
|
115
|
+
await promises_1.default.rename(path_1.default.join(incoming, 'pack', file), path_1.default.join(published, file));
|
|
116
|
+
}
|
|
117
|
+
finally {
|
|
118
|
+
// transferGitTree settles only after both children exit. Remove only this
|
|
119
|
+
// operation's quarantine, never sweep another process's temporary packs.
|
|
120
|
+
await promises_1.default.rm(incoming, { recursive: true, force: true });
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async function transferGitTree(source, destination, tree, receiveEnv) {
|
|
124
|
+
await new Promise((resolve, reject) => {
|
|
125
|
+
const pack = (0, child_process_1.spawn)('git', gitArguments(['pack-objects', '--compression=1', '--window=0', '--threads=1', '--stdout', '--revs']), {
|
|
126
|
+
cwd: source, env: gitEnvironment(), stdio: ['pipe', 'pipe', 'pipe'],
|
|
127
|
+
});
|
|
128
|
+
const unpack = (0, child_process_1.spawn)('git', gitArguments(['index-pack', '--threads=1', '--stdin']), {
|
|
129
|
+
cwd: destination, env: gitEnvironment(receiveEnv), stdio: ['pipe', 'pipe', 'pipe'],
|
|
130
|
+
});
|
|
131
|
+
let closed = 0;
|
|
132
|
+
let failure;
|
|
133
|
+
let killTimer;
|
|
134
|
+
const stop = (error) => {
|
|
135
|
+
failure ??= error;
|
|
136
|
+
pack.kill('SIGTERM');
|
|
137
|
+
unpack.kill('SIGTERM');
|
|
138
|
+
killTimer ??= setTimeout(() => { pack.kill('SIGKILL'); unpack.kill('SIGKILL'); }, 500);
|
|
139
|
+
};
|
|
140
|
+
const timer = setTimeout(() => stop(new Error('Nested Git object transfer timed out')), exports.CHECKPOINT_LIMITS.commandMs);
|
|
141
|
+
for (const [name, child] of [['pack-objects', pack], ['index-pack', unpack]]) {
|
|
142
|
+
let detail = '';
|
|
143
|
+
child.stderr.on('data', (chunk) => { detail = (detail + chunk.toString('utf8')).slice(-2000); });
|
|
144
|
+
child.on('error', stop);
|
|
145
|
+
child.stdin.on('error', () => { });
|
|
146
|
+
child.on('close', code => {
|
|
147
|
+
if (code !== 0)
|
|
148
|
+
stop(new GitCommandError(name, code, detail.trim()));
|
|
149
|
+
if (++closed === 2) {
|
|
150
|
+
clearTimeout(timer);
|
|
151
|
+
clearTimeout(killTimer);
|
|
152
|
+
if (failure)
|
|
153
|
+
reject(failure);
|
|
154
|
+
else
|
|
155
|
+
resolve();
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
unpack.stdout.resume();
|
|
160
|
+
pack.stdout.pipe(unpack.stdin);
|
|
161
|
+
pack.stdin.end(`${tree}\n`);
|
|
162
|
+
});
|
|
79
163
|
}
|
|
80
164
|
async function readIndex(root) {
|
|
81
165
|
const file = path_1.default.resolve(root, await gitText(root, ['rev-parse', '--git-path', 'index']));
|
|
82
166
|
try {
|
|
83
|
-
|
|
167
|
+
const stat = await promises_1.default.stat(file);
|
|
168
|
+
if (stat.size > exports.CHECKPOINT_LIMITS.outputBytes)
|
|
84
169
|
throw new Error('Git index exceeds the checkpoint limit');
|
|
85
|
-
return await promises_1.default.readFile(file);
|
|
170
|
+
return { bytes: await promises_1.default.readFile(file), mtime: stat.mtime };
|
|
86
171
|
}
|
|
87
172
|
catch (error) {
|
|
88
173
|
if (error.code === 'ENOENT')
|
|
89
|
-
return Buffer.alloc(0);
|
|
174
|
+
return { bytes: Buffer.alloc(0) };
|
|
90
175
|
throw error;
|
|
91
176
|
}
|
|
92
177
|
}
|
|
@@ -104,45 +189,118 @@ function sensitiveUntracked(file) {
|
|
|
104
189
|
|| /^\.env(?:\.|$)/.test(name) && !/^\.env\.(?:example|sample|template)$/.test(name)
|
|
105
190
|
|| /\.(?:pem|key|p12|pfx)$/.test(name);
|
|
106
191
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
192
|
+
function relativeName(scope, root, file) {
|
|
193
|
+
return path_1.default.relative(scope, path_1.default.join(root, file)).split(path_1.default.sep).join('/');
|
|
194
|
+
}
|
|
195
|
+
function within(directory, target) {
|
|
196
|
+
const relative = path_1.default.relative(directory, target);
|
|
197
|
+
return !path_1.default.isAbsolute(relative) && relative !== '..' && !relative.startsWith(`..${path_1.default.sep}`);
|
|
198
|
+
}
|
|
199
|
+
async function nestedGitDirectory(root, scope, ancestors) {
|
|
200
|
+
const metadata = await promises_1.default.lstat(path_1.default.join(root, '.git'));
|
|
201
|
+
const name = JSON.stringify(path_1.default.relative(scope, root).split(path_1.default.sep).join('/'));
|
|
202
|
+
if (metadata.isSymbolicLink() || !metadata.isFile() && !metadata.isDirectory()) {
|
|
203
|
+
throw new Error(`Unsupported nested Git metadata at ${name}`);
|
|
204
|
+
}
|
|
205
|
+
const gitDirectory = await promises_1.default.realpath(await gitText(root, ['rev-parse', '--absolute-git-dir']));
|
|
206
|
+
const common = await promises_1.default.realpath(path_1.default.resolve(root, await gitText(root, ['rev-parse', '--git-common-dir'])));
|
|
207
|
+
if (ancestors.includes(common))
|
|
208
|
+
throw new Error(`Nested worktree shares an ancestor repository at ${name}; exclude it before delegating`);
|
|
209
|
+
const embedded = metadata.isDirectory() && gitDirectory === await promises_1.default.realpath(path_1.default.join(root, '.git'));
|
|
210
|
+
const submodule = metadata.isFile() && ancestors.some(parent => within(path_1.default.join(parent, 'modules'), gitDirectory));
|
|
211
|
+
if ((!embedded && !submodule) || common !== gitDirectory) {
|
|
212
|
+
throw new Error(`Nested Git metadata is outside the permitted repository boundary at ${name}; manual recovery is required`);
|
|
213
|
+
}
|
|
214
|
+
if (await promises_1.default.realpath(await gitText(root, ['rev-parse', '--show-toplevel'])) !== root) {
|
|
215
|
+
throw new Error(`Nested Git repository root does not match ${name}`);
|
|
216
|
+
}
|
|
217
|
+
return gitDirectory;
|
|
218
|
+
}
|
|
219
|
+
async function validateNestedConfig(root) {
|
|
220
|
+
try {
|
|
221
|
+
const configured = await gitText(root, ['config', '--show-scope', '--name-only', '--get-regexp',
|
|
222
|
+
'^(filter\\..*\\.(clean|smudge|process)|extensions\\.partialclone|remote\\..*\\.promisor)$']);
|
|
223
|
+
// Global filters are already trusted by the selected outer repository. Do
|
|
224
|
+
// not discover and execute additional commands from nested-local config.
|
|
225
|
+
if (configured.split('\n').some(line => /^(local|worktree)\s/.test(line) || /\s(?:extensions\.partialclone|remote\..*\.promisor)$/.test(line))) {
|
|
226
|
+
throw new Error('Nested repository filters or partial-clone configuration require manual recovery');
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
if (!(error instanceof GitCommandError && error.code === 1))
|
|
231
|
+
throw error;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
async function validateFiles(root, scope, ancestors, env) {
|
|
235
|
+
const untracked = entries(await runGit(root, ['ls-files', '-z', '--others', '--exclude-standard'], undefined, env));
|
|
236
|
+
const sensitive = untracked.find(sensitiveUntracked);
|
|
237
|
+
if (sensitive) {
|
|
238
|
+
throw new Error(`Untracked credential/config file ${JSON.stringify(relativeName(scope, root, sensitive))} prevents a safe checkpoint. Exclude it with Git ignore rules before delegating.`);
|
|
111
239
|
}
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
240
|
+
const staged = entries(await runGit(root, ['ls-files', '--stage', '-z'], undefined, env));
|
|
241
|
+
const cached = staged.map(entry => entry.slice(entry.indexOf('\t') + 1));
|
|
242
|
+
const gitlinks = new Set(staged.filter(entry => entry.startsWith('160000 ')).map(entry => entry.slice(entry.indexOf('\t') + 1)));
|
|
243
|
+
const files = [...new Set(cached.concat(untracked.map(file => file.replace(/\/$/, ''))))];
|
|
116
244
|
const parents = new Set();
|
|
245
|
+
const checked = new Set();
|
|
246
|
+
const repositories = new Set();
|
|
247
|
+
const plainDirectories = [];
|
|
248
|
+
const checkRepository = async (directory) => {
|
|
249
|
+
if (directory === '.' || checked.has(directory))
|
|
250
|
+
return;
|
|
251
|
+
checked.add(directory);
|
|
252
|
+
const absolute = path_1.default.join(root, directory);
|
|
253
|
+
try {
|
|
254
|
+
await promises_1.default.lstat(path_1.default.join(absolute, '.git'));
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
if (['ENOENT', 'ENOTDIR'].includes(error.code ?? ''))
|
|
258
|
+
return;
|
|
259
|
+
throw error;
|
|
260
|
+
}
|
|
261
|
+
await nestedGitDirectory(absolute, scope, ancestors);
|
|
262
|
+
repositories.add(directory);
|
|
263
|
+
};
|
|
117
264
|
for (const file of files) {
|
|
118
265
|
if (!file || path_1.default.isAbsolute(file) || file.split('/').some(part => part === '..' || part.toLowerCase() === '.git')) {
|
|
119
266
|
throw new Error('Unsafe path in the Git checkpoint');
|
|
120
267
|
}
|
|
121
|
-
let parent = path_1.default.dirname(file);
|
|
268
|
+
let parent = path_1.default.posix.dirname(file);
|
|
122
269
|
while (parent !== '.' && !parents.has(parent)) {
|
|
123
270
|
parents.add(parent);
|
|
124
271
|
try {
|
|
125
|
-
if ((await promises_1.default.lstat(path_1.default.join(root, parent))).isSymbolicLink())
|
|
126
|
-
throw new Error(
|
|
272
|
+
if ((await promises_1.default.lstat(path_1.default.join(root, parent))).isSymbolicLink()) {
|
|
273
|
+
throw new Error(`Checkpoint paths cannot cross a symbolic-link directory: ${JSON.stringify(relativeName(scope, root, parent))}`);
|
|
274
|
+
}
|
|
275
|
+
await checkRepository(parent);
|
|
127
276
|
}
|
|
128
277
|
catch (error) {
|
|
129
|
-
if (error.code
|
|
278
|
+
if (!['ENOENT', 'ENOTDIR'].includes(error.code ?? ''))
|
|
130
279
|
throw error;
|
|
131
280
|
}
|
|
132
|
-
parent = path_1.default.dirname(parent);
|
|
281
|
+
parent = path_1.default.posix.dirname(parent);
|
|
133
282
|
}
|
|
134
283
|
try {
|
|
135
284
|
const stat = await promises_1.default.lstat(path_1.default.join(root, file));
|
|
136
|
-
if (
|
|
137
|
-
|
|
285
|
+
if (stat.isDirectory()) {
|
|
286
|
+
await checkRepository(file);
|
|
287
|
+
// Git also lists the old path when an ordinary tracked file becomes a directory.
|
|
288
|
+
if (gitlinks.has(file) && !repositories.has(file) && (await promises_1.default.readdir(path_1.default.join(root, file))).length) {
|
|
289
|
+
plainDirectories.push(file);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
else if (!stat.isFile() && !stat.isSymbolicLink()) {
|
|
293
|
+
const kind = stat.isFIFO() ? 'FIFO' : stat.isSocket() ? 'socket' : 'device or special file';
|
|
294
|
+
throw new Error(`Unsupported checkpoint entry ${JSON.stringify(relativeName(scope, root, file))}: ${kind}`);
|
|
295
|
+
}
|
|
138
296
|
if (stat.isSymbolicLink()) {
|
|
139
297
|
const target = await promises_1.default.readlink(path_1.default.join(root, file));
|
|
140
|
-
const resolved = path_1.default.relative(
|
|
298
|
+
const resolved = path_1.default.relative(scope, path_1.default.resolve(root, path_1.default.dirname(file), target));
|
|
141
299
|
if (path_1.default.isAbsolute(target) || resolved === '..' || resolved.startsWith(`..${path_1.default.sep}`) || path_1.default.isAbsolute(resolved)) {
|
|
142
|
-
throw new Error(
|
|
300
|
+
throw new Error(`Checkpoint symbolic links must remain relative and inside the repository: ${JSON.stringify(relativeName(scope, root, file))}`);
|
|
143
301
|
}
|
|
144
302
|
try {
|
|
145
|
-
const canonical = path_1.default.relative(
|
|
303
|
+
const canonical = path_1.default.relative(scope, await promises_1.default.realpath(path_1.default.join(root, file)));
|
|
146
304
|
if (canonical === '..' || canonical.startsWith(`..${path_1.default.sep}`) || path_1.default.isAbsolute(canonical)) {
|
|
147
305
|
throw new Error('Checkpoint symbolic-link chain escapes the repository');
|
|
148
306
|
}
|
|
@@ -152,31 +310,25 @@ async function boundFiles(root) {
|
|
|
152
310
|
throw error;
|
|
153
311
|
}
|
|
154
312
|
}
|
|
155
|
-
bytes += stat.size;
|
|
156
|
-
if (bytes > exports.CHECKPOINT_LIMITS.bytes)
|
|
157
|
-
throw new Error('Workspace exceeds the checkpoint byte limit');
|
|
158
313
|
}
|
|
159
314
|
catch (error) {
|
|
160
|
-
if (error.code
|
|
315
|
+
if (!['ENOENT', 'ENOTDIR'].includes(error.code ?? ''))
|
|
161
316
|
throw error;
|
|
162
317
|
}
|
|
163
318
|
}
|
|
319
|
+
const nested = [...repositories].sort().filter(directory => ![...repositories].some(other => directory.startsWith(`${other}/`)));
|
|
320
|
+
return { cached, repositories: nested, plainDirectories };
|
|
164
321
|
}
|
|
165
|
-
/**
|
|
166
|
-
async function
|
|
322
|
+
/** Validate the captured entries after Git filters and filesystem changes. */
|
|
323
|
+
async function validateTree(root, tree) {
|
|
167
324
|
const files = entries(await runGit(root, ['ls-tree', '-r', '-l', '-z', tree]));
|
|
168
|
-
if (files.length > exports.CHECKPOINT_LIMITS.files)
|
|
169
|
-
throw new Error('Checkpoint tree exceeds the file-count limit');
|
|
170
|
-
let bytes = 0;
|
|
171
325
|
for (const file of files) {
|
|
172
326
|
const header = file.slice(0, file.indexOf('\t')).trim().split(/\s+/);
|
|
173
327
|
const size = Number(header[3]);
|
|
174
|
-
|
|
328
|
+
const gitlink = header[0] === '160000' && header[1] === 'commit' && exports.GIT_OID.test(header[2]);
|
|
329
|
+
if (!gitlink && (!/^(100644|100755|120000)$/.test(header[0]) || header[1] !== 'blob' || !Number.isSafeInteger(size) || size < 0)) {
|
|
175
330
|
throw new Error('Checkpoint tree contains an unsupported entry');
|
|
176
331
|
}
|
|
177
|
-
bytes += size;
|
|
178
|
-
if (bytes > exports.CHECKPOINT_LIMITS.bytes)
|
|
179
|
-
throw new Error('Checkpoint tree exceeds the byte limit');
|
|
180
332
|
}
|
|
181
333
|
}
|
|
182
334
|
async function createCheckpointCommit(root, tree, parent, label) {
|
|
@@ -190,37 +342,117 @@ async function createCheckpointCommit(root, tree, parent, label) {
|
|
|
190
342
|
throw new Error('Git returned an invalid checkpoint commit');
|
|
191
343
|
return commit;
|
|
192
344
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
345
|
+
async function checkpointHead(root, nested) {
|
|
346
|
+
try {
|
|
347
|
+
return await gitText(root, ['rev-parse', '--verify', 'HEAD']);
|
|
348
|
+
}
|
|
349
|
+
catch (error) {
|
|
350
|
+
if (nested && error instanceof GitCommandError) {
|
|
351
|
+
const branch = await gitText(root, ['symbolic-ref', '-q', 'HEAD']);
|
|
352
|
+
try {
|
|
353
|
+
await runGit(root, ['show-ref', '--verify', '--quiet', branch]);
|
|
354
|
+
}
|
|
355
|
+
catch (missing) {
|
|
356
|
+
if (missing instanceof GitCommandError && missing.code === 1)
|
|
357
|
+
return '';
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
throw new Error(`Git checkpoint requires a usable HEAD${nested ? '' : ' and an initial commit'}`);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
async function validateIndexFlags(root, env) {
|
|
364
|
+
const flags = entries(await runGit(root, ['ls-files', '-v', '-z'], undefined, env));
|
|
365
|
+
// Preserve the source index and never guess whether sparse absences are deletions.
|
|
366
|
+
if (flags.some(entry => /^[a-zS] /.test(entry))) {
|
|
367
|
+
throw new Error('Git checkpoints cannot include assume-unchanged or skip-worktree entries. Resolve those flags and sparse checkouts explicitly before delegating.');
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
async function captureTree(root, scope, nested, imported, ancestors) {
|
|
371
|
+
if (nested)
|
|
372
|
+
await validateNestedConfig(root);
|
|
373
|
+
const head = await checkpointHead(root, nested);
|
|
198
374
|
if ((await runGit(root, ['ls-files', '-u', '-z'])).length)
|
|
199
375
|
throw new Error('Resolve the existing Git index conflicts before delegating');
|
|
200
376
|
const originalIndex = await readIndex(root);
|
|
201
|
-
await
|
|
377
|
+
let inventory = await validateFiles(root, scope, ancestors);
|
|
202
378
|
const directory = await promises_1.default.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'remote-cli-checkpoint-'));
|
|
203
379
|
try {
|
|
204
380
|
const env = { GIT_INDEX_FILE: path_1.default.join(directory, 'index') };
|
|
205
|
-
if (originalIndex.length)
|
|
206
|
-
await promises_1.default.writeFile(env.GIT_INDEX_FILE, originalIndex, { mode: 0o600 });
|
|
381
|
+
if (originalIndex.bytes.length) {
|
|
382
|
+
await promises_1.default.writeFile(env.GIT_INDEX_FILE, originalIndex.bytes, { mode: 0o600 });
|
|
383
|
+
// Git's racy-clean check compares file times with the index's own time.
|
|
384
|
+
// A fresh copy timestamp can incorrectly bless same-size stale entries.
|
|
385
|
+
if (originalIndex.mtime)
|
|
386
|
+
await promises_1.default.utimes(env.GIT_INDEX_FILE, originalIndex.mtime, originalIndex.mtime);
|
|
387
|
+
}
|
|
207
388
|
else
|
|
208
|
-
await runGit(root, ['read-tree', head], undefined, env);
|
|
209
|
-
await
|
|
389
|
+
await runGit(root, head ? ['read-tree', head] : ['read-tree', '--empty'], undefined, env);
|
|
390
|
+
await validateIndexFlags(root, env);
|
|
391
|
+
for (;;) {
|
|
392
|
+
const replaced = inventory.repositories.concat(inventory.plainDirectories);
|
|
393
|
+
const removed = inventory.cached.filter(file => replaced.some(directory => file === directory || file.startsWith(`${directory}/`)));
|
|
394
|
+
if (!removed.length)
|
|
395
|
+
break;
|
|
396
|
+
await runGit(root, ['update-index', '--force-remove', '-z', '--stdin'], `${removed.join('\0')}\0`, env);
|
|
397
|
+
// Replacing a gitlink can expose more embedded repositories. Preserve
|
|
398
|
+
// earlier discoveries even if outer ignore rules now hide their paths.
|
|
399
|
+
const next = await validateFiles(root, scope, ancestors, env);
|
|
400
|
+
const discovered = [...new Set([...inventory.repositories, ...next.repositories])].sort();
|
|
401
|
+
inventory = { ...next, repositories: discovered.filter(directory => !discovered.some(other => directory.startsWith(`${other}/`))) };
|
|
402
|
+
}
|
|
403
|
+
await runGit(root, ['add', '--all', '--', '.', ...inventory.repositories.map(directory => `:(top,exclude,literal)${directory}`)], undefined, env);
|
|
404
|
+
const repositories = [];
|
|
405
|
+
for (const relative of inventory.repositories) {
|
|
406
|
+
const child = path_1.default.join(root, relative);
|
|
407
|
+
try {
|
|
408
|
+
const gitDirectory = await nestedGitDirectory(child, scope, ancestors);
|
|
409
|
+
const snapshot = await captureTree(child, scope, true, imported, [...ancestors, gitDirectory]);
|
|
410
|
+
const transfer = JSON.stringify([root, snapshot.tree]);
|
|
411
|
+
if (!imported.has(transfer)) {
|
|
412
|
+
await importGitTree(child, root, snapshot.tree);
|
|
413
|
+
imported.add(transfer);
|
|
414
|
+
}
|
|
415
|
+
await runGit(root, ['read-tree', `--prefix=${relative}/`, snapshot.tree], undefined, env);
|
|
416
|
+
const metadata = await promises_1.default.stat(gitDirectory);
|
|
417
|
+
repositories.push({ path: relative, identity: (0, crypto_1.createHash)('sha256')
|
|
418
|
+
.update(JSON.stringify([gitDirectory, metadata.dev, metadata.ino, metadata.birthtimeMs])).digest('hex'),
|
|
419
|
+
revision: checkpointRevision(snapshot.head, snapshot.tree, snapshot.index, snapshot.repositories) });
|
|
420
|
+
repositories.push(...snapshot.repositories.map(repository => ({ ...repository, path: `${relative}/${repository.path}` })));
|
|
421
|
+
}
|
|
422
|
+
catch (error) {
|
|
423
|
+
throw new Error(`Nested checkpoint ${JSON.stringify(relativeName(scope, root, relative))} failed: ${error.message}`);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
210
426
|
const tree = await gitText(root, ['write-tree'], undefined, env);
|
|
211
|
-
await
|
|
212
|
-
if (tree !== await gitText(root, ['write-tree'], undefined, env)
|
|
213
|
-
|| head !== await gitText(root, ['rev-parse', 'HEAD']) || !originalIndex.equals(await readIndex(root))) {
|
|
427
|
+
if (head !== await checkpointHead(root, nested) || !originalIndex.bytes.equals((await readIndex(root)).bytes)) {
|
|
214
428
|
throw new Error('Workspace changed while its checkpoint was being captured; retry after edits stop');
|
|
215
429
|
}
|
|
216
430
|
if (!exports.GIT_OID.test(tree))
|
|
217
431
|
throw new Error('Git returned an invalid checkpoint tree');
|
|
218
|
-
await
|
|
219
|
-
return { head, tree,
|
|
220
|
-
revision: checkpointRevision(head, tree, originalIndex) };
|
|
432
|
+
await validateTree(root, tree);
|
|
433
|
+
return { head, tree, index: originalIndex.bytes, repositories };
|
|
221
434
|
}
|
|
222
435
|
finally {
|
|
223
436
|
await promises_1.default.rm(directory, { recursive: true, force: true });
|
|
224
437
|
}
|
|
225
438
|
}
|
|
439
|
+
/** Flatten nested working files in private trees; never alter any source HEAD or index. */
|
|
440
|
+
async function captureCheckpoint(root) {
|
|
441
|
+
root = await promises_1.default.realpath(root);
|
|
442
|
+
// Reuse only transfers completed in this capture, never just an existing tree
|
|
443
|
+
// object that could still reference missing descendants in the object store.
|
|
444
|
+
const imported = new Set();
|
|
445
|
+
const common = await promises_1.default.realpath(path_1.default.resolve(root, await gitText(root, ['rev-parse', '--git-common-dir'])));
|
|
446
|
+
const gitDirectory = await promises_1.default.realpath(await gitText(root, ['rev-parse', '--absolute-git-dir']));
|
|
447
|
+
const ancestors = [...new Set([common, gitDirectory])];
|
|
448
|
+
const first = await captureTree(root, root, false, imported, ancestors);
|
|
449
|
+
const second = await captureTree(root, root, false, imported, ancestors);
|
|
450
|
+
const revision = checkpointRevision(first.head, first.tree, first.index, first.repositories);
|
|
451
|
+
if (revision !== checkpointRevision(second.head, second.tree, second.index, second.repositories)) {
|
|
452
|
+
throw new Error('Workspace changed while its checkpoint was being captured; retry after edits stop');
|
|
453
|
+
}
|
|
454
|
+
return { head: first.head, tree: first.tree,
|
|
455
|
+
commit: await createCheckpointCommit(root, first.tree, first.head, `Remote CLI input checkpoint ${(0, crypto_1.randomUUID)()}`),
|
|
456
|
+
revision, ...(first.repositories.length ? { repositories: first.repositories } : {}) };
|
|
457
|
+
}
|
|
226
458
|
//# sourceMappingURL=GitCheckpoint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitCheckpoint.js","sourceRoot":"","sources":["../../src/delegation/GitCheckpoint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GitCheckpoint.js","sourceRoot":"","sources":["../../src/delegation/GitCheckpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ export declare const DELEGATION_TOOLS: readonly [{
|
|
|
26
26
|
readonly destructiveHint: true;
|
|
27
27
|
readonly openWorldHint: true;
|
|
28
28
|
};
|
|
29
|
-
readonly description: "Accept an independent managed task on a different backend. Git workspaces use isolated, reusable worker worktrees and may run concurrently; non-Git directories use the shared workspace in FIFO order. Discover scheduling with remote_cli_list_backends. Git input includes nonignored working changes; ignored dependencies are not copied. Completion does not integrate file changes: inspect then explicitly apply or retain artifacts with remote_cli_integrate after all accepted workers finish. Worktrees are not an OS sandbox. The cumulative limit is 12 accepted tasks, including failed/cancelled tasks; queue waits expire after one hour. Same-backend delegation is rejected; use the current backend directly or its native subagents. Pass self-contained context and acceptance criteria; workers never inherit the coordinator conversation. A reused lane retains only its own previous conversation, not sibling results, and starts each Git task on a fresh baseline. Use inherit, including research; put no-write requirements in the objective. In shared-workspace mode do not edit concurrently with a worker. Use remote_cli_result for status; if you return after submitting tasks, Remote CLI waits and resumes this coordinator. Workers cannot delegate again.";
|
|
29
|
+
readonly description: "Accept an independent managed task on a different backend. Git workspaces use isolated, reusable worker worktrees and may run concurrently; non-Git directories use the shared workspace in FIFO order. Discover scheduling with remote_cli_list_backends. Git input includes nonignored working changes. Initialized local submodules and embedded repositories provide working files only; nested Git metadata/history and ignored dependencies are not copied. Uninitialized submodule paths remain empty. Completion does not integrate file changes: inspect then explicitly apply or retain artifacts with remote_cli_integrate after all accepted workers finish. Worktrees are not an OS sandbox. The cumulative limit is 12 accepted tasks, including failed/cancelled tasks; queue waits expire after one hour. Same-backend delegation is rejected; use the current backend directly or its native subagents. Pass self-contained context and acceptance criteria; workers never inherit the coordinator conversation. A reused lane retains only its own previous conversation, not sibling results, and starts each Git task on a fresh baseline. Use inherit, including research; put no-write requirements in the objective. In shared-workspace mode do not edit concurrently with a worker. Use remote_cli_result for status; if you return after submitting tasks, Remote CLI waits and resumes this coordinator. Workers cannot delegate again.";
|
|
30
30
|
readonly inputSchema: {
|
|
31
31
|
type: string;
|
|
32
32
|
properties: Record<string, unknown>;
|
|
@@ -23,7 +23,7 @@ exports.DELEGATION_TOOLS = [
|
|
|
23
23
|
{
|
|
24
24
|
name: 'remote_cli_delegate',
|
|
25
25
|
annotations: { readOnlyHint: false, destructiveHint: true, openWorldHint: true },
|
|
26
|
-
description: 'Accept an independent managed task on a different backend. Git workspaces use isolated, reusable worker worktrees and may run concurrently; non-Git directories use the shared workspace in FIFO order. Discover scheduling with remote_cli_list_backends. Git input includes nonignored working changes; ignored dependencies are not copied. Completion does not integrate file changes: inspect then explicitly apply or retain artifacts with remote_cli_integrate after all accepted workers finish. Worktrees are not an OS sandbox. The cumulative limit is 12 accepted tasks, including failed/cancelled tasks; queue waits expire after one hour. Same-backend delegation is rejected; use the current backend directly or its native subagents. Pass self-contained context and acceptance criteria; workers never inherit the coordinator conversation. A reused lane retains only its own previous conversation, not sibling results, and starts each Git task on a fresh baseline. Use inherit, including research; put no-write requirements in the objective. In shared-workspace mode do not edit concurrently with a worker. Use remote_cli_result for status; if you return after submitting tasks, Remote CLI waits and resumes this coordinator. Workers cannot delegate again.',
|
|
26
|
+
description: 'Accept an independent managed task on a different backend. Git workspaces use isolated, reusable worker worktrees and may run concurrently; non-Git directories use the shared workspace in FIFO order. Discover scheduling with remote_cli_list_backends. Git input includes nonignored working changes. Initialized local submodules and embedded repositories provide working files only; nested Git metadata/history and ignored dependencies are not copied. Uninitialized submodule paths remain empty. Completion does not integrate file changes: inspect then explicitly apply or retain artifacts with remote_cli_integrate after all accepted workers finish. Worktrees are not an OS sandbox. The cumulative limit is 12 accepted tasks, including failed/cancelled tasks; queue waits expire after one hour. Same-backend delegation is rejected; use the current backend directly or its native subagents. Pass self-contained context and acceptance criteria; workers never inherit the coordinator conversation. A reused lane retains only its own previous conversation, not sibling results, and starts each Git task on a fresh baseline. Use inherit, including research; put no-write requirements in the objective. In shared-workspace mode do not edit concurrently with a worker. Use remote_cli_result for status; if you return after submitting tasks, Remote CLI waits and resumes this coordinator. Workers cannot delegate again.',
|
|
27
27
|
inputSchema: object({
|
|
28
28
|
backend: { type: 'string', enum: exports.DELEGATION_BACKENDS },
|
|
29
29
|
objective: { type: 'string', minLength: 1, maxLength: 24000 },
|