@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.
@@ -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
- /** Captures working files, including staged/unstaged/untracked input, without writing the user's index. */
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;;;;;CAC+B,CAAC;AAC9D,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;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;AAED,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,CAkCxD;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,GAAG,MAAM,CAEpF;AAuFD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvH;AAED,2GAA2G;AAC3G,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAuB5E"}
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 = { files: 10_000, bytes: 128 * 1024 * 1024,
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', ['-c', 'core.hooksPath=' + (process.platform === 'win32' ? 'NUL' : '/dev/null'),
37
- '-c', 'core.fsmonitor=false', '-c', 'gc.auto=0', '-c', 'maintenance.auto=false', ...args], {
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
- return (0, crypto_1.createHash)('sha256').update(head).update('\0').update(tree).update('\0').update(index).digest('hex');
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
- if ((await promises_1.default.stat(file)).size > exports.CHECKPOINT_LIMITS.outputBytes)
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
- async function boundFiles(root) {
108
- const untracked = entries(await runGit(root, ['ls-files', '-z', '--others', '--exclude-standard']));
109
- if (untracked.some(sensitiveUntracked)) {
110
- throw new Error('Untracked credential/config files prevent a safe checkpoint. Exclude them with Git ignore rules before delegating.');
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 files = [...new Set(entries(await runGit(root, ['ls-files', '-z', '--cached'])).concat(untracked))];
113
- if (files.length > exports.CHECKPOINT_LIMITS.files)
114
- throw new Error('Workspace exceeds the checkpoint file-count limit');
115
- let bytes = 0;
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('Checkpoint paths cannot cross a symbolic-link directory');
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 !== 'ENOENT')
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 (!stat.isFile() && !stat.isSymbolicLink())
137
- throw new Error('Submodules and special files are not supported by Git worktree checkpoints');
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(root, path_1.default.resolve(root, path_1.default.dirname(file), target));
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('Checkpoint symbolic links must remain relative and inside the repository');
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(root, await promises_1.default.realpath(path_1.default.join(root, file)));
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 !== 'ENOENT')
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
- /** Filters and concurrent file growth must not enlarge the immutable tree beyond the filesystem preflight. */
166
- async function boundTree(root, tree) {
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
- if (header[1] !== 'blob' || !Number.isSafeInteger(size) || size < 0) {
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
- /** Captures working files, including staged/unstaged/untracked input, without writing the user's index. */
194
- async function captureCheckpoint(root) {
195
- const head = await gitText(root, ['rev-parse', '--verify', 'HEAD']);
196
- if (!exports.GIT_OID.test(head))
197
- throw new Error('Git worktree delegation requires an initial commit');
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 boundFiles(root);
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 runGit(root, ['add', '--all', '--', '.'], undefined, env);
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 runGit(root, ['add', '--all', '--', '.'], undefined, env);
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 boundTree(root, tree);
219
- return { head, tree, commit: await createCheckpointCommit(root, tree, head, `Remote CLI input checkpoint ${(0, crypto_1.randomUUID)()}`),
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 },