lua-cli 3.15.1 → 3.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/skills.api.service.d.ts +8 -0
- package/dist/api/skills.api.service.d.ts.map +1 -1
- package/dist/api/skills.api.service.js +8 -0
- package/dist/api/skills.api.service.js.map +1 -1
- package/dist/cli/command-definitions.d.ts.map +1 -1
- package/dist/cli/command-definitions.js +8 -0
- package/dist/cli/command-definitions.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +13 -6
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/push.d.ts +12 -0
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +125 -8
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/source.d.ts.map +1 -1
- package/dist/commands/source.js +17 -7
- package/dist/commands/source.js.map +1 -1
- package/dist/compiler/plugins/agent.plugin.d.ts.map +1 -1
- package/dist/compiler/plugins/agent.plugin.js +2 -0
- package/dist/compiler/plugins/agent.plugin.js.map +1 -1
- package/dist/compiler/utils/common.d.ts +3 -19
- package/dist/compiler/utils/common.d.ts.map +1 -1
- package/dist/compiler/utils/common.js +8 -47
- package/dist/compiler/utils/common.js.map +1 -1
- package/dist/interfaces/backup.d.ts +6 -132
- package/dist/interfaces/backup.d.ts.map +1 -1
- package/dist/interfaces/backup.js +3 -4
- package/dist/interfaces/backup.js.map +1 -1
- package/dist/utils/backup-helpers.d.ts +6 -58
- package/dist/utils/backup-helpers.d.ts.map +1 -1
- package/dist/utils/backup-helpers.js +35 -158
- package/dist/utils/backup-helpers.js.map +1 -1
- package/dist/utils/build-manifest-from-disk.d.ts +3 -12
- package/dist/utils/build-manifest-from-disk.d.ts.map +1 -1
- package/dist/utils/build-manifest-from-disk.js +10 -100
- package/dist/utils/build-manifest-from-disk.js.map +1 -1
- package/node_modules/@lua/shared-source-sync/dist/index.d.mts +424 -0
- package/node_modules/@lua/shared-source-sync/dist/index.d.ts +424 -0
- package/node_modules/@lua/shared-source-sync/dist/index.js +536 -0
- package/node_modules/@lua/shared-source-sync/dist/index.mjs +491 -0
- package/node_modules/@lua/shared-source-sync/package.json +26 -0
- package/node_modules/@lua/shared-source-sync/src/archive.ts +98 -0
- package/node_modules/@lua/shared-source-sync/src/filter.ts +72 -0
- package/node_modules/@lua/shared-source-sync/src/hash.ts +40 -0
- package/node_modules/@lua/shared-source-sync/src/http.ts +132 -0
- package/node_modules/@lua/shared-source-sync/src/index.ts +56 -0
- package/node_modules/@lua/shared-source-sync/src/pull.ts +50 -0
- package/node_modules/@lua/shared-source-sync/src/push.ts +94 -0
- package/node_modules/@lua/shared-source-sync/src/restore.ts +83 -0
- package/node_modules/@lua/shared-source-sync/src/skill-source.ts +55 -0
- package/node_modules/@lua/shared-source-sync/src/transfer.ts +92 -0
- package/node_modules/@lua/shared-source-sync/src/types.ts +88 -0
- package/node_modules/@lua/shared-source-sync/src/walk.ts +91 -0
- package/node_modules/@lua/shared-source-sync/tests/archive.test.ts +108 -0
- package/node_modules/@lua/shared-source-sync/tests/hash.test.ts +40 -0
- package/node_modules/@lua/shared-source-sync/tests/http.test.ts +77 -0
- package/node_modules/@lua/shared-source-sync/tests/push.test.ts +162 -0
- package/node_modules/@lua/shared-source-sync/tests/walk.test.ts +84 -0
- package/node_modules/@lua/shared-source-sync/tsconfig.json +12 -0
- package/node_modules/@lua/shared-source-sync/tsup.config.ts +9 -0
- package/node_modules/@lua/shared-source-sync/vitest.config.ts +8 -0
- package/node_modules/@lua/shared-types/dist/index.d.mts +27 -0
- package/node_modules/@lua/shared-types/dist/index.d.ts +27 -0
- package/node_modules/@lua/shared-types/src/agent-config.types.ts +14 -0
- package/node_modules/@lua/shared-types/src/chat-stream.types.ts +7 -0
- package/node_modules/@lua/shared-types/src/model-registry.ts +6 -0
- package/package.json +3 -1
- package/template/package.json +1 -1
|
@@ -16,19 +16,12 @@ export interface CachedBackupManifest {
|
|
|
16
16
|
}>;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* FULL 64-char SHA-256 — distinct from the truncated 16-char `hashContent`
|
|
20
|
+
* in `compiler/utils/common.ts`, which is used for per-file dedup. This one
|
|
21
|
+
* is used for the combined project hash where collision resistance matters
|
|
22
|
+
* more than key length.
|
|
23
23
|
*/
|
|
24
24
|
export declare function hashContent(content: string): string;
|
|
25
|
-
/**
|
|
26
|
-
* Calculate combined project hash from all project files.
|
|
27
|
-
* This hash is used to detect if the project has changed since last backup.
|
|
28
|
-
*
|
|
29
|
-
* @param projectFiles - Array of project files from the manifest
|
|
30
|
-
* @returns Combined hash of all file hashes (sorted for determinism)
|
|
31
|
-
*/
|
|
32
25
|
export declare function calculateProjectHash(projectFiles: ProjectFile[]): string;
|
|
33
26
|
/**
|
|
34
27
|
* Get the current project hash from the compilation manifest.
|
|
@@ -86,15 +79,8 @@ export declare function prepareFileRefs(projectPath?: string): BackupFileRef[];
|
|
|
86
79
|
*/
|
|
87
80
|
export declare function reconcileManifestWithDisk(projectPath?: string): void;
|
|
88
81
|
/**
|
|
89
|
-
* Upload blobs
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* @param uploadUrls - Map of hash -> presigned S3 PUT URL
|
|
93
|
-
* @param manifest - The compilation manifest (for resolving hash → relativePath)
|
|
94
|
-
* @param projectPath - Path to the project root
|
|
95
|
-
* @param onProgress - Optional callback for progress updates
|
|
96
|
-
* @param concurrency - Maximum parallel uploads (default: 10)
|
|
97
|
-
* @returns Number of blobs uploaded
|
|
82
|
+
* Upload blobs to S3 using presigned URLs. Reads content from the compiled
|
|
83
|
+
* `dist-v2/sources/<hash>.<ext>` sidecar directory.
|
|
98
84
|
*/
|
|
99
85
|
export declare function uploadBlobsToS3(uploadUrls: Record<string, string>, manifest: CompilationManifest, projectPath?: string, onProgress?: (uploaded: number, total: number) => void, concurrency?: number): Promise<number>;
|
|
100
86
|
/**
|
|
@@ -104,48 +90,10 @@ export declare function uploadBlobsToS3(uploadUrls: Record<string, string>, mani
|
|
|
104
90
|
* @returns Array of unique content hashes
|
|
105
91
|
*/
|
|
106
92
|
export declare function getAllFileHashes(projectPath?: string): string[];
|
|
107
|
-
/**
|
|
108
|
-
* Download multiple blobs in parallel from presigned URLs.
|
|
109
|
-
*
|
|
110
|
-
* @param urls - Map of hash -> presigned URL
|
|
111
|
-
* @param concurrency - Maximum number of parallel downloads (default: 10)
|
|
112
|
-
* @returns Map of hash -> content buffer
|
|
113
|
-
*/
|
|
114
93
|
export declare function downloadBlobsParallel(urls: Record<string, string>, concurrency?: number): Promise<Map<string, Buffer>>;
|
|
115
|
-
/**
|
|
116
|
-
* Restore project files from a backup manifest and downloaded blobs.
|
|
117
|
-
* Creates all directories and files in the target directory.
|
|
118
|
-
*
|
|
119
|
-
* @param manifest - The backup manifest (file references)
|
|
120
|
-
* @param blobs - Map of hash -> content buffer (downloaded blobs)
|
|
121
|
-
* @param targetDir - Target directory to restore to
|
|
122
|
-
* @param options - Optional settings
|
|
123
|
-
*/
|
|
124
94
|
export declare function restoreProjectFromBackup(manifest: BackupManifest, blobs: Map<string, Buffer>, targetDir: string, options?: {
|
|
125
95
|
overwrite?: boolean;
|
|
126
96
|
}): void;
|
|
127
|
-
/**
|
|
128
|
-
* Resolve where a single backup entry should land on disk during restore.
|
|
129
|
-
*
|
|
130
|
-
* In-project entries are written at `targetDir/<relativePath>`. External
|
|
131
|
-
* entries (cross-root workspace files captured for BAC-69) are sandboxed
|
|
132
|
-
* under `targetDir/.lua/external/<relativePath>` — we never write them
|
|
133
|
-
* back to their original workspace location, because:
|
|
134
|
-
*
|
|
135
|
-
* 1. The target dir might not even be a monorepo (`lua init --from-server`
|
|
136
|
-
* clones the agent alone), in which case the original path doesn't
|
|
137
|
-
* exist.
|
|
138
|
-
* 2. Writing outside `targetDir` is a footgun: sibling packages may
|
|
139
|
-
* still contain local edits we don't want to clobber.
|
|
140
|
-
*
|
|
141
|
-
* `.lua/external/` is a stable, gitignored mirror the compiler can read
|
|
142
|
-
* from at rebuild time and the human can inspect to see what the backup
|
|
143
|
-
* actually brought along.
|
|
144
|
-
*
|
|
145
|
-
* Defense-in-depth: we also reject paths that would escape `targetDir`
|
|
146
|
-
* after sandboxing, so a malicious manifest with `../` segments can't
|
|
147
|
-
* write outside the project tree.
|
|
148
|
-
*/
|
|
149
97
|
export declare function resolveBackupFileTarget(file: BackupFileRef, targetDir: string): string;
|
|
150
98
|
/**
|
|
151
99
|
* Check which files would be created/overwritten by restore.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/backup-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"backup-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/backup-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import fs from 'fs';
|
|
8
8
|
import path from 'path';
|
|
9
|
-
import
|
|
10
|
-
import zlib from 'zlib';
|
|
9
|
+
import { sha256Hex, combineFileHashes, downloadBlobs as sharedDownloadBlobs, restoreFromBlobs as sharedRestoreFromBlobs, resolveBackupFileTarget as sharedResolveBackupFileTarget, uploadBlobs as sharedUploadBlobs, } from '@lua/shared-source-sync';
|
|
11
10
|
// The compiler writes 16-char truncated SHA-256 hashes for project files into
|
|
12
11
|
// `manifest.projectFiles[].hash`. Those hashes flow into the backup manifest
|
|
13
12
|
// (via `prepareFileRefs`) and the local cache (via `writeBackupManifestCache`).
|
|
@@ -26,31 +25,17 @@ import { BASE_URLS } from '../config/constants.js';
|
|
|
26
25
|
// `lua push backup`. The server does not expose historical manifests, so
|
|
27
26
|
// `lua sync --pull`'s conflict guard relies on this local record.
|
|
28
27
|
const BACKUP_CACHE_FILENAME = 'backup-manifest.json';
|
|
29
|
-
// =============================================================================
|
|
30
|
-
// HASH CALCULATION
|
|
31
|
-
// =============================================================================
|
|
32
28
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
29
|
+
* FULL 64-char SHA-256 — distinct from the truncated 16-char `hashContent`
|
|
30
|
+
* in `compiler/utils/common.ts`, which is used for per-file dedup. This one
|
|
31
|
+
* is used for the combined project hash where collision resistance matters
|
|
32
|
+
* more than key length.
|
|
37
33
|
*/
|
|
38
34
|
export function hashContent(content) {
|
|
39
|
-
return
|
|
35
|
+
return sha256Hex(content);
|
|
40
36
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Calculate combined project hash from all project files.
|
|
43
|
-
* This hash is used to detect if the project has changed since last backup.
|
|
44
|
-
*
|
|
45
|
-
* @param projectFiles - Array of project files from the manifest
|
|
46
|
-
* @returns Combined hash of all file hashes (sorted for determinism)
|
|
47
|
-
*/
|
|
48
37
|
export function calculateProjectHash(projectFiles) {
|
|
49
|
-
|
|
50
|
-
const sortedFiles = [...projectFiles].sort((a, b) => a.relativePath.localeCompare(b.relativePath));
|
|
51
|
-
// Combine all individual file hashes
|
|
52
|
-
const combinedHashes = sortedFiles.map((f) => f.hash).join('|');
|
|
53
|
-
return hashContent(combinedHashes);
|
|
38
|
+
return combineFileHashes(projectFiles);
|
|
54
39
|
}
|
|
55
40
|
/**
|
|
56
41
|
* Get the current project hash from the compilation manifest.
|
|
@@ -193,44 +178,37 @@ export function reconcileManifestWithDisk(projectPath = process.cwd()) {
|
|
|
193
178
|
}
|
|
194
179
|
}
|
|
195
180
|
/**
|
|
196
|
-
* Upload blobs
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
* @param uploadUrls - Map of hash -> presigned S3 PUT URL
|
|
200
|
-
* @param manifest - The compilation manifest (for resolving hash → relativePath)
|
|
201
|
-
* @param projectPath - Path to the project root
|
|
202
|
-
* @param onProgress - Optional callback for progress updates
|
|
203
|
-
* @param concurrency - Maximum parallel uploads (default: 10)
|
|
204
|
-
* @returns Number of blobs uploaded
|
|
181
|
+
* Upload blobs to S3 using presigned URLs. Reads content from the compiled
|
|
182
|
+
* `dist-v2/sources/<hash>.<ext>` sidecar directory.
|
|
205
183
|
*/
|
|
206
184
|
export async function uploadBlobsToS3(uploadUrls, manifest, projectPath = process.cwd(), onProgress, concurrency = 10) {
|
|
207
185
|
const hashes = Object.keys(uploadUrls);
|
|
186
|
+
if (hashes.length === 0)
|
|
187
|
+
return 0;
|
|
208
188
|
const hashToRelativePath = buildHashToRelativePathMap(manifest);
|
|
189
|
+
// Resolve up-front so a missing-source error surfaces before any network IO.
|
|
190
|
+
const contentByHash = new Map();
|
|
191
|
+
for (const hash of hashes) {
|
|
192
|
+
const relativePath = hashToRelativePath.get(hash);
|
|
193
|
+
if (!relativePath) {
|
|
194
|
+
throw new Error(`No file found in manifest for hash: ${hash}`);
|
|
195
|
+
}
|
|
196
|
+
const content = loadSourceByHash(hash, relativePath, projectPath);
|
|
197
|
+
if (!content) {
|
|
198
|
+
throw new Error(`Source file not found for hash: ${hash} (${relativePath})`);
|
|
199
|
+
}
|
|
200
|
+
contentByHash.set(hash, Buffer.from(content, 'utf-8'));
|
|
201
|
+
}
|
|
202
|
+
// Slice into per-batch invocations so the progress callback can fire
|
|
203
|
+
// between batches (shared's uploadBlobs returns a single count per call).
|
|
209
204
|
let uploaded = 0;
|
|
210
205
|
for (let i = 0; i < hashes.length; i += concurrency) {
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
const content = loadSourceByHash(hash, relativePath, projectPath);
|
|
218
|
-
if (!content) {
|
|
219
|
-
throw new Error(`Source file not found for hash: ${hash} (${relativePath})`);
|
|
220
|
-
}
|
|
221
|
-
// Gzip compress before upload
|
|
222
|
-
const compressed = zlib.gzipSync(Buffer.from(content, 'utf-8'));
|
|
223
|
-
// PUT directly to S3 presigned URL
|
|
224
|
-
const response = await fetch(uploadUrls[hash], {
|
|
225
|
-
method: 'PUT',
|
|
226
|
-
body: compressed,
|
|
227
|
-
headers: { 'Content-Type': 'application/octet-stream' },
|
|
228
|
-
});
|
|
229
|
-
if (!response.ok) {
|
|
230
|
-
throw new Error(`S3 upload failed for ${hash.substring(0, 12)}...: ${response.status} ${response.statusText}`);
|
|
231
|
-
}
|
|
232
|
-
}));
|
|
233
|
-
uploaded += batch.length;
|
|
206
|
+
const batchHashes = hashes.slice(i, i + concurrency);
|
|
207
|
+
const batchUrls = {};
|
|
208
|
+
for (const h of batchHashes)
|
|
209
|
+
batchUrls[h] = uploadUrls[h];
|
|
210
|
+
await sharedUploadBlobs({ uploadUrls: batchUrls, contentByHash, concurrency });
|
|
211
|
+
uploaded += batchHashes.length;
|
|
234
212
|
onProgress?.(uploaded, hashes.length);
|
|
235
213
|
}
|
|
236
214
|
return uploaded;
|
|
@@ -262,118 +240,17 @@ export function getAllFileHashes(projectPath = process.cwd()) {
|
|
|
262
240
|
// =============================================================================
|
|
263
241
|
// BLOB DOWNLOAD
|
|
264
242
|
// =============================================================================
|
|
265
|
-
/**
|
|
266
|
-
* Download a blob from a presigned URL.
|
|
267
|
-
* Decompresses gzip content (blobs are stored compressed in S3).
|
|
268
|
-
*
|
|
269
|
-
* @param url - The presigned S3 URL
|
|
270
|
-
* @returns The decompressed blob content as a Buffer
|
|
271
|
-
*/
|
|
272
|
-
async function downloadBlobFromUrl(url) {
|
|
273
|
-
const response = await fetch(url);
|
|
274
|
-
if (!response.ok) {
|
|
275
|
-
throw new Error(`Failed to download blob: ${response.status} ${response.statusText}`);
|
|
276
|
-
}
|
|
277
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
278
|
-
const buffer = Buffer.from(arrayBuffer);
|
|
279
|
-
// Detect gzip via magic bytes (1f 8b). Most blobs are gzip-compressed
|
|
280
|
-
// (CLI/server convention), but legacy/older uploads may be raw — fall
|
|
281
|
-
// back to the raw buffer rather than throwing the whole restore.
|
|
282
|
-
if (buffer.length >= 2 && buffer[0] === 0x1f && buffer[1] === 0x8b) {
|
|
283
|
-
try {
|
|
284
|
-
return zlib.gunzipSync(buffer);
|
|
285
|
-
}
|
|
286
|
-
catch {
|
|
287
|
-
// Looked like gzip but failed to decompress — fall through to raw
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
return buffer;
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Download multiple blobs in parallel from presigned URLs.
|
|
294
|
-
*
|
|
295
|
-
* @param urls - Map of hash -> presigned URL
|
|
296
|
-
* @param concurrency - Maximum number of parallel downloads (default: 10)
|
|
297
|
-
* @returns Map of hash -> content buffer
|
|
298
|
-
*/
|
|
299
243
|
export async function downloadBlobsParallel(urls, concurrency = 10) {
|
|
300
|
-
|
|
301
|
-
const entries = Object.entries(urls);
|
|
302
|
-
// Download in batches
|
|
303
|
-
for (let i = 0; i < entries.length; i += concurrency) {
|
|
304
|
-
const batch = entries.slice(i, i + concurrency);
|
|
305
|
-
const batchResults = await Promise.all(batch.map(async ([hash, url]) => {
|
|
306
|
-
const content = await downloadBlobFromUrl(url);
|
|
307
|
-
return { hash, content };
|
|
308
|
-
}));
|
|
309
|
-
for (const { hash, content } of batchResults) {
|
|
310
|
-
results.set(hash, content);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
return results;
|
|
244
|
+
return sharedDownloadBlobs({ urls, concurrency });
|
|
314
245
|
}
|
|
315
246
|
// =============================================================================
|
|
316
247
|
// PROJECT RESTORATION
|
|
317
248
|
// =============================================================================
|
|
318
|
-
/**
|
|
319
|
-
* Restore project files from a backup manifest and downloaded blobs.
|
|
320
|
-
* Creates all directories and files in the target directory.
|
|
321
|
-
*
|
|
322
|
-
* @param manifest - The backup manifest (file references)
|
|
323
|
-
* @param blobs - Map of hash -> content buffer (downloaded blobs)
|
|
324
|
-
* @param targetDir - Target directory to restore to
|
|
325
|
-
* @param options - Optional settings
|
|
326
|
-
*/
|
|
327
249
|
export function restoreProjectFromBackup(manifest, blobs, targetDir, options = {}) {
|
|
328
|
-
|
|
329
|
-
for (const file of manifest.files) {
|
|
330
|
-
const filePath = resolveBackupFileTarget(file, targetDir);
|
|
331
|
-
const fileDir = path.dirname(filePath);
|
|
332
|
-
// Skip if file exists and overwrite is false
|
|
333
|
-
if (fs.existsSync(filePath) && !overwrite) {
|
|
334
|
-
continue;
|
|
335
|
-
}
|
|
336
|
-
// Get blob content
|
|
337
|
-
const content = blobs.get(file.hash);
|
|
338
|
-
if (!content) {
|
|
339
|
-
throw new Error(`Blob not found for hash: ${file.hash} (${file.relativePath})`);
|
|
340
|
-
}
|
|
341
|
-
fs.mkdirSync(fileDir, { recursive: true });
|
|
342
|
-
fs.writeFileSync(filePath, content);
|
|
343
|
-
}
|
|
250
|
+
sharedRestoreFromBlobs(manifest, blobs, targetDir, options);
|
|
344
251
|
}
|
|
345
|
-
/**
|
|
346
|
-
* Resolve where a single backup entry should land on disk during restore.
|
|
347
|
-
*
|
|
348
|
-
* In-project entries are written at `targetDir/<relativePath>`. External
|
|
349
|
-
* entries (cross-root workspace files captured for BAC-69) are sandboxed
|
|
350
|
-
* under `targetDir/.lua/external/<relativePath>` — we never write them
|
|
351
|
-
* back to their original workspace location, because:
|
|
352
|
-
*
|
|
353
|
-
* 1. The target dir might not even be a monorepo (`lua init --from-server`
|
|
354
|
-
* clones the agent alone), in which case the original path doesn't
|
|
355
|
-
* exist.
|
|
356
|
-
* 2. Writing outside `targetDir` is a footgun: sibling packages may
|
|
357
|
-
* still contain local edits we don't want to clobber.
|
|
358
|
-
*
|
|
359
|
-
* `.lua/external/` is a stable, gitignored mirror the compiler can read
|
|
360
|
-
* from at rebuild time and the human can inspect to see what the backup
|
|
361
|
-
* actually brought along.
|
|
362
|
-
*
|
|
363
|
-
* Defense-in-depth: we also reject paths that would escape `targetDir`
|
|
364
|
-
* after sandboxing, so a malicious manifest with `../` segments can't
|
|
365
|
-
* write outside the project tree.
|
|
366
|
-
*/
|
|
367
252
|
export function resolveBackupFileTarget(file, targetDir) {
|
|
368
|
-
|
|
369
|
-
const sandboxed = file.external
|
|
370
|
-
? path.join(base, '.lua', 'external', file.relativePath)
|
|
371
|
-
: path.join(base, file.relativePath);
|
|
372
|
-
const resolved = path.resolve(sandboxed);
|
|
373
|
-
if (resolved !== base && !resolved.startsWith(base + path.sep)) {
|
|
374
|
-
throw new Error(`Backup entry escapes target directory: ${file.relativePath}`);
|
|
375
|
-
}
|
|
376
|
-
return resolved;
|
|
253
|
+
return sharedResolveBackupFileTarget(file, targetDir);
|
|
377
254
|
}
|
|
378
255
|
/**
|
|
379
256
|
* Check which files would be created/overwritten by restore.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup-helpers.js","sourceRoot":"","sources":["../../src/utils/backup-helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backup-helpers.js","sourceRoot":"","sources":["../../src/utils/backup-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* return a fresh BackupManifest. Replaces the broken
|
|
6
|
-
* `reconcileManifestWithDisk` (in backup-helpers.ts), which only re-hashed
|
|
7
|
-
* files already present in the compiled `manifest.json` — so files
|
|
8
|
-
* written by the Builder (or any out-of-band write that bypasses
|
|
9
|
-
* `lua compile`) never made it into the backup.
|
|
10
|
-
*
|
|
11
|
-
* Used by `runBackupPush({ fresh: true })` so auto-backup-push after every
|
|
12
|
-
* primitive push captures everything currently on disk, not just what
|
|
13
|
-
* the most recent compile happened to know about.
|
|
2
|
+
* Walk a project directory and produce a fresh BackupManifest from disk —
|
|
3
|
+
* captures every source file currently on disk, not just what the most recent
|
|
4
|
+
* compile knew about. Used by `runBackupPush({ fresh: true })`.
|
|
14
5
|
*/
|
|
15
6
|
import type { BackupManifest } from '../interfaces/backup.js';
|
|
16
7
|
export declare function buildManifestFromDisk(projectPath: string, agentId: string): BackupManifest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-manifest-from-disk.d.ts","sourceRoot":"","sources":["../../src/utils/build-manifest-from-disk.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build-manifest-from-disk.d.ts","sourceRoot":"","sources":["../../src/utils/build-manifest-from-disk.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAa1F"}
|
|
@@ -1,111 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* return a fresh BackupManifest. Replaces the broken
|
|
6
|
-
* `reconcileManifestWithDisk` (in backup-helpers.ts), which only re-hashed
|
|
7
|
-
* files already present in the compiled `manifest.json` — so files
|
|
8
|
-
* written by the Builder (or any out-of-band write that bypasses
|
|
9
|
-
* `lua compile`) never made it into the backup.
|
|
10
|
-
*
|
|
11
|
-
* Used by `runBackupPush({ fresh: true })` so auto-backup-push after every
|
|
12
|
-
* primitive push captures everything currently on disk, not just what
|
|
13
|
-
* the most recent compile happened to know about.
|
|
2
|
+
* Walk a project directory and produce a fresh BackupManifest from disk —
|
|
3
|
+
* captures every source file currently on disk, not just what the most recent
|
|
4
|
+
* compile knew about. Used by `runBackupPush({ fresh: true })`.
|
|
14
5
|
*/
|
|
15
|
-
import {
|
|
16
|
-
import { join, sep } from 'path';
|
|
17
|
-
import { hashContent, shouldSkipFile, shouldSkipDirectory } from '../compiler/utils/common.js';
|
|
18
|
-
import { calculateProjectHash } from './backup-helpers.js';
|
|
19
|
-
// Reuse the compiler's `shouldSkipFile` / `shouldSkipDirectory` helpers to
|
|
20
|
-
// keep the fresh-from-disk file set identical to the compiled-manifest path.
|
|
21
|
-
// Otherwise dotfiles (`.eslintrc`, `.vscode/`, `.prettierrc`), test files
|
|
22
|
-
// (`*.test.ts`, `*.spec.ts`, `__tests__/`), `.d.ts`, `.map`, and lockfiles
|
|
23
|
-
// would land in fresh manifests but not compiled ones, producing a different
|
|
24
|
-
// projectHash for identical content and triggering false out-of-sync flags
|
|
25
|
-
// every time the user toggled between the two modes.
|
|
26
|
-
const MAX_FILE_BYTES = 256 * 1024;
|
|
6
|
+
import { walkWorkspace } from '@lua/shared-source-sync';
|
|
27
7
|
export function buildManifestFromDisk(projectPath, agentId) {
|
|
28
|
-
const
|
|
29
|
-
walk(projectPath, '', files);
|
|
30
|
-
files.sort((a, b) => a.relativePath.localeCompare(b.relativePath));
|
|
31
|
-
// Use the SAME hash + projectHash function as the compiled-manifest path
|
|
32
|
-
// (`prepareFileRefs` + `calculateProjectHash` in backup-helpers.ts). Otherwise
|
|
33
|
-
// blob dedup breaks across paths — the same file content uploaded under a
|
|
34
|
-
// 16-char hash via the compiled path is invisible when looked up under a
|
|
35
|
-
// 64-char hash via the fresh path. Same goes for projectHash: switching
|
|
36
|
-
// between fresh and non-fresh modes must produce the same hash for
|
|
37
|
-
// identical content, otherwise `isBackupOutOfSync` flags every push.
|
|
38
|
-
const projectFiles = files.map((f) => ({ relativePath: f.relativePath, hash: f.hash }));
|
|
39
|
-
const totalSize = files.reduce((acc, f) => acc + f.size, 0);
|
|
8
|
+
const walked = walkWorkspace(projectPath);
|
|
40
9
|
return {
|
|
41
10
|
agentId,
|
|
42
|
-
// orgId is
|
|
43
|
-
// it when sending to the server. The disk-side manifest just needs the
|
|
44
|
-
// shape to satisfy the type.
|
|
11
|
+
// orgId is filled in by the caller (runBackupPush) before sending.
|
|
45
12
|
orgId: '',
|
|
46
|
-
projectHash:
|
|
47
|
-
fileCount: files.length,
|
|
48
|
-
totalSize,
|
|
13
|
+
projectHash: walked.projectHash,
|
|
14
|
+
fileCount: walked.files.length,
|
|
15
|
+
totalSize: walked.totalSize,
|
|
49
16
|
createdBy: 'cli',
|
|
50
17
|
createdAt: new Date().toISOString(),
|
|
51
|
-
files,
|
|
18
|
+
files: walked.files,
|
|
52
19
|
};
|
|
53
20
|
}
|
|
54
|
-
function walk(root, relPrefix, out) {
|
|
55
|
-
const dir = relPrefix ? join(root, relPrefix) : root;
|
|
56
|
-
const entries = readdirSync(dir, { withFileTypes: true });
|
|
57
|
-
for (const entry of entries) {
|
|
58
|
-
if (entry.isDirectory()) {
|
|
59
|
-
// Two-pass directory skip:
|
|
60
|
-
// - shouldSkipDirectory covers the curated build/cache list
|
|
61
|
-
// (node_modules / dist / dist-v2 / .git / .lua / .temp /
|
|
62
|
-
// coverage / .next / .turbo)
|
|
63
|
-
// - shouldSkipFile also rejects `__tests__/`, dotted dirs,
|
|
64
|
-
// and any path containing `node_modules` / `__tests__` —
|
|
65
|
-
// applying it to the directory NAME catches those branches
|
|
66
|
-
// and keeps the compiled path's exclusion set in lockstep.
|
|
67
|
-
if (shouldSkipDirectory(entry.name))
|
|
68
|
-
continue;
|
|
69
|
-
if (shouldSkipFile(entry.name))
|
|
70
|
-
continue;
|
|
71
|
-
walk(root, relPrefix ? `${relPrefix}${sep}${entry.name}` : entry.name, out);
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
if (!entry.isFile())
|
|
75
|
-
continue;
|
|
76
|
-
// shouldSkipFile covers dotfiles, test files, .d.ts/.map, lockfiles,
|
|
77
|
-
// and node_modules paths — keeping the fresh manifest file set
|
|
78
|
-
// identical to the compiled path's so projectHash matches across modes.
|
|
79
|
-
if (shouldSkipFile(entry.name))
|
|
80
|
-
continue;
|
|
81
|
-
const rel = (relPrefix ? `${relPrefix}${sep}${entry.name}` : entry.name).split(sep).join('/');
|
|
82
|
-
const abs = join(root, rel);
|
|
83
|
-
const stat = statSync(abs);
|
|
84
|
-
if (stat.size > MAX_FILE_BYTES)
|
|
85
|
-
continue;
|
|
86
|
-
let content;
|
|
87
|
-
try {
|
|
88
|
-
content = readFileSync(abs);
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
const hash = hashContent(content.toString('utf-8'));
|
|
94
|
-
out.push({
|
|
95
|
-
relativePath: rel,
|
|
96
|
-
hash,
|
|
97
|
-
size: stat.size,
|
|
98
|
-
type: classifyFile(rel),
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
function classifyFile(relPath) {
|
|
103
|
-
if (relPath.endsWith('.ts') || relPath.endsWith('.tsx') || relPath.endsWith('.js') || relPath.endsWith('.jsx')) {
|
|
104
|
-
return 'source';
|
|
105
|
-
}
|
|
106
|
-
if (relPath.endsWith('.yaml') || relPath.endsWith('.yml') || relPath.endsWith('.json') || relPath.endsWith('.toml')) {
|
|
107
|
-
return 'config';
|
|
108
|
-
}
|
|
109
|
-
return 'other';
|
|
110
|
-
}
|
|
111
21
|
//# sourceMappingURL=build-manifest-from-disk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-manifest-from-disk.js","sourceRoot":"","sources":["../../src/utils/build-manifest-from-disk.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build-manifest-from-disk.js","sourceRoot":"","sources":["../../src/utils/build-manifest-from-disk.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,OAAe;IACxE,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,OAAO;QACL,OAAO;QACP,mEAAmE;QACnE,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;QAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
|