@kvell007/embed-labs-cli 0.1.0-alpha.3 → 0.1.0-alpha.5

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.
@@ -60,7 +60,84 @@ export interface LocalCommandResult {
60
60
  stdout_tail: string[];
61
61
  stderr_tail: string[];
62
62
  }
63
+ export interface LocalToolchainPackageRef {
64
+ id: string;
65
+ version: string;
66
+ manifest?: string;
67
+ }
68
+ export interface LocalToolchainChannel {
69
+ schema: string;
70
+ channel: string;
71
+ packages: LocalToolchainPackageRef[];
72
+ }
73
+ export interface LocalToolchainPackageManifest {
74
+ schema: string;
75
+ id: string;
76
+ version: string;
77
+ kind: "tools" | "family" | "board";
78
+ display_name?: string;
79
+ hosts?: string[];
80
+ family?: string;
81
+ board?: string;
82
+ variant?: string;
83
+ requires?: Array<{
84
+ id: string;
85
+ version: string;
86
+ roles?: string[];
87
+ }>;
88
+ build_modes?: string[];
89
+ provides?: string[];
90
+ }
91
+ export interface LocalToolchainLatestOptions {
92
+ boardId?: string;
93
+ channel?: string;
94
+ metadataRoot?: string;
95
+ }
96
+ export interface LocalToolchainLatestResult {
97
+ board_id: string;
98
+ channel: string;
99
+ host: string;
100
+ version: string;
101
+ metadata_root?: string;
102
+ packages: LocalToolchainPackageRef[];
103
+ }
104
+ export interface LocalToolchainInstallOptions extends LocalToolchainLatestOptions {
105
+ sourceReleaseRoot?: string;
106
+ sourceUrl?: string;
107
+ installRoot?: string;
108
+ force?: boolean;
109
+ }
110
+ export interface LocalToolchainInstallResult {
111
+ board_id: string;
112
+ version: string;
113
+ channel: string;
114
+ host: string;
115
+ install_root: string;
116
+ release_root: string;
117
+ registry_path: string;
118
+ source: {
119
+ kind: "directory" | "url";
120
+ value: string;
121
+ downloaded_path?: string;
122
+ };
123
+ installed_paths: string[];
124
+ packages: LocalToolchainPackageRef[];
125
+ validation: LocalToolchainValidationResult;
126
+ }
127
+ export interface LocalToolchainCurrentResult {
128
+ installed: boolean;
129
+ board_id: string;
130
+ version?: string;
131
+ release_root?: string;
132
+ registry_path: string;
133
+ install_root: string;
134
+ channel?: string;
135
+ packages?: LocalToolchainPackageRef[];
136
+ }
63
137
  export declare function defaultLocalReleaseRoot(): string;
138
+ export declare function latestLocalToolchain(options?: LocalToolchainLatestOptions): Promise<LocalToolchainLatestResult>;
139
+ export declare function currentLocalToolchain(installRoot?: string, boardId?: string): Promise<LocalToolchainCurrentResult>;
140
+ export declare function installLocalToolchain(options?: LocalToolchainInstallOptions): Promise<LocalToolchainInstallResult>;
64
141
  export declare function validateLocalToolchain(releaseRoot?: string): Promise<LocalToolchainValidationResult>;
65
142
  export declare function compileTaishanPiSingleFile(options: LocalCompileOptions): Promise<LocalCompileResult>;
66
143
  export declare function buildTaishanPiQtSmoke(options: LocalQtSmokeBuildOptions): Promise<LocalCompileResult>;
@@ -1,16 +1,206 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { spawn } from "node:child_process";
3
- import { constants } from "node:fs";
4
- import { access, mkdir, readFile, stat, writeFile } from "node:fs/promises";
5
- import { arch, platform } from "node:os";
3
+ import { constants, createWriteStream } from "node:fs";
4
+ import { access, cp, mkdir, mkdtemp, readdir, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
5
+ import { arch, homedir, platform, tmpdir } from "node:os";
6
6
  import { basename, dirname, extname, join, resolve } from "node:path";
7
+ import { Readable } from "node:stream";
8
+ import { pipeline } from "node:stream/promises";
9
+ import { fileURLToPath } from "node:url";
7
10
  const DEFAULT_RELEASE_ROOT = "/Volumes/LLVM-TSPI/tspi-rk3566-llvm-release-minimal";
8
11
  const DEFAULT_QT_SMOKE_SOURCE = "/Users/kvell/kk-project/DBT-Agent-Project/llvm-build-tspi/qt-smoke";
12
+ const DEFAULT_METADATA_ROOT = "/Users/kvell/kk-project/DBT-Agent-Project/llvm-build-tspi/embedlabs-release";
13
+ const DEFAULT_BOARD_ID = "taishanpi-1m-rk3566";
14
+ const DEFAULT_CHANNEL = "stable";
15
+ const BUILT_IN_CHANNEL = {
16
+ schema: "embedlabs.channel.v1",
17
+ channel: DEFAULT_CHANNEL,
18
+ packages: [
19
+ { id: "embedlabs.tools.vendor.rockchip", version: "1.0.0", manifest: "" },
20
+ { id: "embedlabs.tools.common.llvm", version: "22.1.3", manifest: "" },
21
+ { id: "embedlabs.tools.common.e2fsprogs", version: "1.0.0", manifest: "" },
22
+ { id: "embedlabs.family.rk356x", version: "1.0.0", manifest: "" },
23
+ { id: "embedlabs.board.taishanpi.1m-rk3566", version: "1.0.31", manifest: "" }
24
+ ]
25
+ };
26
+ const BUILT_IN_MANIFESTS = {
27
+ "embedlabs.tools.vendor.rockchip": {
28
+ schema: "embedlabs.package.v1",
29
+ id: "embedlabs.tools.vendor.rockchip",
30
+ version: "1.0.0",
31
+ kind: "tools",
32
+ hosts: ["darwin-arm64", "linux-x86_64"],
33
+ provides: ["rockchip.mkimage", "rockchip.dumpimage", "rockchip.resource_tool", "rockchip.rkdeveloptool"]
34
+ },
35
+ "embedlabs.tools.common.llvm": {
36
+ schema: "embedlabs.package.v1",
37
+ id: "embedlabs.tools.common.llvm",
38
+ version: "22.1.3",
39
+ kind: "tools",
40
+ hosts: ["darwin-arm64", "linux-x86_64"],
41
+ provides: ["llvm.clang", "llvm.clangxx", "llvm.ld_lld", "llvm.ar", "llvm.objcopy", "llvm.readelf"]
42
+ },
43
+ "embedlabs.tools.common.e2fsprogs": {
44
+ schema: "embedlabs.package.v1",
45
+ id: "embedlabs.tools.common.e2fsprogs",
46
+ version: "1.0.0",
47
+ kind: "tools",
48
+ hosts: ["darwin-arm64", "linux-x86_64"],
49
+ provides: ["ext4.mke2fs", "ext4.resize2fs", "fakeroot"]
50
+ },
51
+ "embedlabs.family.rk356x": {
52
+ schema: "embedlabs.package.v1",
53
+ id: "embedlabs.family.rk356x",
54
+ version: "1.0.0",
55
+ kind: "family",
56
+ family: "rk356x",
57
+ requires: [
58
+ { id: "embedlabs.tools.vendor.rockchip", version: "^1.0.0" },
59
+ { id: "embedlabs.tools.common.llvm", version: "22.x" },
60
+ { id: "embedlabs.tools.common.e2fsprogs", version: "^1.0.0" }
61
+ ]
62
+ },
63
+ "embedlabs.board.taishanpi.1m-rk3566": {
64
+ schema: "embedlabs.package.v1",
65
+ id: "embedlabs.board.taishanpi.1m-rk3566",
66
+ version: "1.0.31",
67
+ kind: "board",
68
+ family: "rk356x",
69
+ board: "TaishanPi",
70
+ variant: "1M-RK3566",
71
+ requires: [
72
+ { id: "embedlabs.family.rk356x", version: "^1.0.0" },
73
+ { id: "embedlabs.tools.vendor.rockchip", version: "^1.0.0", roles: ["flash", "resource-image"] },
74
+ { id: "embedlabs.tools.common.llvm", version: "22.x", roles: ["compile"] },
75
+ { id: "embedlabs.tools.common.e2fsprogs", version: "^1.0.0", roles: ["userdata-image"] }
76
+ ],
77
+ build_modes: ["local-llvm"]
78
+ }
79
+ };
80
+ const INSTALL_COPY_PATHS = [
81
+ "toolchain/llvm-cross",
82
+ "toolchain/host/aarch64-buildroot-linux-gnu/sysroot",
83
+ "qt-target/qt6-rk3566-llvm-6.8.3",
84
+ "tools/mac",
85
+ "images/current",
86
+ "userdata/rootfs",
87
+ "boot-workspace/kernel-tree"
88
+ ];
9
89
  export function defaultLocalReleaseRoot() {
10
- return DEFAULT_RELEASE_ROOT;
90
+ return process.env.EMBEDLABS_LOCAL_RELEASE_ROOT?.trim()
91
+ || process.env.EMBEDLABS_RELEASE_ROOT?.trim()
92
+ || DEFAULT_RELEASE_ROOT;
93
+ }
94
+ export async function latestLocalToolchain(options = {}) {
95
+ const boardId = options.boardId ?? DEFAULT_BOARD_ID;
96
+ const channelName = options.channel ?? DEFAULT_CHANNEL;
97
+ const { channel, manifests, metadataRoot } = await loadLocalToolchainMetadata(options.metadataRoot, channelName);
98
+ const boardPackageId = boardPackageIdFor(boardId);
99
+ const board = manifests.get(boardPackageId);
100
+ if (!board) {
101
+ throw new Error(`No local toolchain board package found for ${boardId}.`);
102
+ }
103
+ const packages = resolvePackageRefs(boardPackageId, channel, manifests);
104
+ return {
105
+ board_id: boardId,
106
+ channel: channel.channel,
107
+ host: hostId(),
108
+ version: board.version,
109
+ metadata_root: metadataRoot,
110
+ packages
111
+ };
112
+ }
113
+ export async function currentLocalToolchain(installRoot, boardId = DEFAULT_BOARD_ID) {
114
+ const root = resolveInstallRoot(installRoot);
115
+ const registryPath = localToolchainRegistryPath(root);
116
+ try {
117
+ const registry = JSON.parse(await readFile(registryPath, "utf8"));
118
+ const releaseRoot = typeof registry.release_root === "string" ? registry.release_root : undefined;
119
+ return {
120
+ installed: !!releaseRoot,
121
+ board_id: typeof registry.board_id === "string" ? registry.board_id : boardId,
122
+ version: typeof registry.version === "string" ? registry.version : undefined,
123
+ release_root: releaseRoot,
124
+ registry_path: registryPath,
125
+ install_root: root,
126
+ channel: typeof registry.channel === "string" ? registry.channel : undefined,
127
+ packages: Array.isArray(registry.packages) ? registry.packages : undefined
128
+ };
129
+ }
130
+ catch {
131
+ return {
132
+ installed: false,
133
+ board_id: boardId,
134
+ registry_path: registryPath,
135
+ install_root: root
136
+ };
137
+ }
138
+ }
139
+ export async function installLocalToolchain(options = {}) {
140
+ const latest = await latestLocalToolchain(options);
141
+ const installRoot = resolveInstallRoot(options.installRoot);
142
+ const releaseRoot = resolve(installRoot, "toolchains", latest.board_id, latest.version);
143
+ if (await pathExists(releaseRoot) && !options.force) {
144
+ const validation = await validateLocalToolchain(releaseRoot);
145
+ if (!validation.ok) {
146
+ throw new Error(`Existing local toolchain is incomplete at ${releaseRoot}; rerun with --force.`);
147
+ }
148
+ await writeCurrentRegistry(installRoot, latest, releaseRoot);
149
+ return {
150
+ board_id: latest.board_id,
151
+ version: latest.version,
152
+ channel: latest.channel,
153
+ host: latest.host,
154
+ install_root: installRoot,
155
+ release_root: releaseRoot,
156
+ registry_path: localToolchainRegistryPath(installRoot),
157
+ source: { kind: "directory", value: releaseRoot },
158
+ installed_paths: [],
159
+ packages: latest.packages,
160
+ validation
161
+ };
162
+ }
163
+ const tempDir = await mkdtemp(join(tmpdir(), "embedlabs-local-toolchain-install-"));
164
+ try {
165
+ const sourceRoot = await sourceReleaseRootForInstall(options, installRoot, tempDir);
166
+ await rm(releaseRoot, { recursive: true, force: true });
167
+ await mkdir(releaseRoot, { recursive: true });
168
+ const installedPaths = [];
169
+ for (const relativePath of INSTALL_COPY_PATHS) {
170
+ const sourcePath = resolve(sourceRoot.path, relativePath);
171
+ if (!await pathExists(sourcePath)) {
172
+ continue;
173
+ }
174
+ const targetPath = resolve(releaseRoot, relativePath);
175
+ await mkdir(dirname(targetPath), { recursive: true });
176
+ await cp(sourcePath, targetPath, { recursive: true, force: true, preserveTimestamps: true });
177
+ installedPaths.push(relativePath);
178
+ }
179
+ await writeCurrentRegistry(installRoot, latest, releaseRoot);
180
+ const validation = await validateLocalToolchain(releaseRoot);
181
+ if (!validation.ok) {
182
+ throw new Error(`Installed local toolchain is incomplete: ${validation.missing_paths.join(", ")}`);
183
+ }
184
+ return {
185
+ board_id: latest.board_id,
186
+ version: latest.version,
187
+ channel: latest.channel,
188
+ host: latest.host,
189
+ install_root: installRoot,
190
+ release_root: releaseRoot,
191
+ registry_path: localToolchainRegistryPath(installRoot),
192
+ source: sourceRoot.source,
193
+ installed_paths: installedPaths,
194
+ packages: latest.packages,
195
+ validation
196
+ };
197
+ }
198
+ finally {
199
+ await rm(tempDir, { recursive: true, force: true });
200
+ }
11
201
  }
12
- export async function validateLocalToolchain(releaseRoot = DEFAULT_RELEASE_ROOT) {
13
- const resolvedRoot = resolve(releaseRoot);
202
+ export async function validateLocalToolchain(releaseRoot) {
203
+ const resolvedRoot = await resolveLocalReleaseRoot(releaseRoot);
14
204
  const required = [
15
205
  ["release root", "."],
16
206
  ["C compiler", "toolchain/llvm-cross/bin/aarch64-linux-gnu-gcc"],
@@ -38,7 +228,7 @@ export async function validateLocalToolchain(releaseRoot = DEFAULT_RELEASE_ROOT)
38
228
  platform: platform(),
39
229
  arch: arch()
40
230
  },
41
- board_id: "taishanpi-1m-rk3566",
231
+ board_id: DEFAULT_BOARD_ID,
42
232
  release_root: resolvedRoot,
43
233
  checked_paths,
44
234
  missing_paths,
@@ -50,7 +240,7 @@ export async function validateLocalToolchain(releaseRoot = DEFAULT_RELEASE_ROOT)
50
240
  }
51
241
  export async function compileTaishanPiSingleFile(options) {
52
242
  assertAuthenticated(options.auth);
53
- const releaseRoot = resolve(options.releaseRoot ?? DEFAULT_RELEASE_ROOT);
243
+ const releaseRoot = await resolveLocalReleaseRoot(options.releaseRoot);
54
244
  const sourcePath = resolve(options.sourcePath);
55
245
  const outputPath = resolve(options.outputPath);
56
246
  await access(sourcePath, constants.R_OK);
@@ -77,7 +267,7 @@ export async function compileTaishanPiSingleFile(options) {
77
267
  }
78
268
  export async function buildTaishanPiQtSmoke(options) {
79
269
  assertAuthenticated(options.auth);
80
- const releaseRoot = resolve(options.releaseRoot ?? DEFAULT_RELEASE_ROOT);
270
+ const releaseRoot = await resolveLocalReleaseRoot(options.releaseRoot);
81
271
  const sourceDir = resolve(options.sourceDir ?? DEFAULT_QT_SMOKE_SOURCE);
82
272
  const buildDir = resolve(options.buildDir);
83
273
  const targetName = options.targetName ?? "qt_llvm_smoke";
@@ -104,7 +294,7 @@ export async function buildTaishanPiQtSmoke(options) {
104
294
  }
105
295
  const artifactPath = join(buildDir, targetName);
106
296
  return await localCompileResult({
107
- boardId: "taishanpi-1m-rk3566",
297
+ boardId: DEFAULT_BOARD_ID,
108
298
  operation: "local.build.qt_smoke",
109
299
  releaseRoot,
110
300
  accountId: options.accountId,
@@ -115,6 +305,230 @@ export async function buildTaishanPiQtSmoke(options) {
115
305
  commands: [configure, build]
116
306
  });
117
307
  }
308
+ async function loadLocalToolchainMetadata(metadataRoot, channelName) {
309
+ const explicitRoot = metadataRoot || process.env.EMBEDLABS_METADATA_ROOT?.trim();
310
+ const candidateRoot = explicitRoot || (await pathExists(DEFAULT_METADATA_ROOT) ? DEFAULT_METADATA_ROOT : undefined);
311
+ if (!candidateRoot) {
312
+ return {
313
+ channel: BUILT_IN_CHANNEL,
314
+ manifests: new Map(Object.entries(BUILT_IN_MANIFESTS)),
315
+ metadataRoot: undefined
316
+ };
317
+ }
318
+ const root = resolve(candidateRoot);
319
+ const channelPath = join(root, "channels", channelName, "index.json");
320
+ const channel = JSON.parse(await readFile(channelPath, "utf8"));
321
+ if (channel.schema !== "embedlabs.channel.v1") {
322
+ throw new Error(`Unexpected local toolchain channel schema ${channel.schema}.`);
323
+ }
324
+ const manifests = new Map();
325
+ for (const entry of channel.packages) {
326
+ const manifestPath = entry.manifest
327
+ ? resolve(dirname(channelPath), entry.manifest)
328
+ : join(root, "manifests", entry.id, entry.version, "manifest.json");
329
+ const manifest = JSON.parse(await readFile(manifestPath, "utf8"));
330
+ if (manifest.schema !== "embedlabs.package.v1") {
331
+ throw new Error(`Unexpected local toolchain manifest schema for ${entry.id}: ${manifest.schema}.`);
332
+ }
333
+ if (manifest.id !== entry.id || manifest.version !== entry.version) {
334
+ throw new Error(`Local toolchain manifest mismatch for ${entry.id}@${entry.version}.`);
335
+ }
336
+ manifests.set(manifest.id, manifest);
337
+ }
338
+ return { channel, manifests, metadataRoot: root };
339
+ }
340
+ function resolvePackageRefs(packageId, channel, manifests, seen = new Set()) {
341
+ if (seen.has(packageId)) {
342
+ return [];
343
+ }
344
+ seen.add(packageId);
345
+ const manifest = manifests.get(packageId);
346
+ if (!manifest) {
347
+ throw new Error(`Local toolchain package ${packageId} is not present in the channel.`);
348
+ }
349
+ const refs = [];
350
+ for (const requirement of manifest.requires ?? []) {
351
+ refs.push(...resolvePackageRefs(requirement.id, channel, manifests, seen));
352
+ }
353
+ const channelEntry = channel.packages.find((item) => item.id === packageId);
354
+ refs.push({
355
+ id: packageId,
356
+ version: manifest.version,
357
+ manifest: channelEntry?.manifest
358
+ });
359
+ return refs;
360
+ }
361
+ function boardPackageIdFor(boardId) {
362
+ if (boardId === DEFAULT_BOARD_ID || boardId === "taishanpi" || boardId === "taishanpi-1m-rk3566") {
363
+ return "embedlabs.board.taishanpi.1m-rk3566";
364
+ }
365
+ if (boardId.startsWith("embedlabs.board.")) {
366
+ return boardId;
367
+ }
368
+ throw new Error(`Unsupported local toolchain board ${boardId}.`);
369
+ }
370
+ function hostId() {
371
+ if (platform() === "darwin" && arch() === "arm64") {
372
+ return "darwin-arm64";
373
+ }
374
+ if (platform() === "linux" && arch() === "x64") {
375
+ return "linux-x86_64";
376
+ }
377
+ return `${platform()}-${arch()}`;
378
+ }
379
+ function resolveInstallRoot(installRoot) {
380
+ return resolve(installRoot
381
+ || process.env.EMBEDLABS_HOME?.trim()
382
+ || join(homedir(), ".embedlabs"));
383
+ }
384
+ function localToolchainRegistryPath(installRoot) {
385
+ return join(installRoot, "registry", "local-toolchains.json");
386
+ }
387
+ async function writeCurrentRegistry(installRoot, latest, releaseRoot) {
388
+ const registryPath = localToolchainRegistryPath(installRoot);
389
+ await mkdir(dirname(registryPath), { recursive: true });
390
+ await writeFile(registryPath, `${JSON.stringify({
391
+ installed: true,
392
+ board_id: latest.board_id,
393
+ version: latest.version,
394
+ channel: latest.channel,
395
+ host: latest.host,
396
+ release_root: releaseRoot,
397
+ packages: latest.packages,
398
+ updated_at: new Date().toISOString()
399
+ }, null, 2)}\n`, "utf8");
400
+ }
401
+ async function resolveLocalReleaseRoot(releaseRoot) {
402
+ if (releaseRoot?.trim()) {
403
+ return resolve(releaseRoot);
404
+ }
405
+ const envRoot = process.env.EMBEDLABS_LOCAL_RELEASE_ROOT?.trim() || process.env.EMBEDLABS_RELEASE_ROOT?.trim();
406
+ if (envRoot) {
407
+ return resolve(envRoot);
408
+ }
409
+ const current = await currentLocalToolchain(undefined, DEFAULT_BOARD_ID);
410
+ if (current.release_root) {
411
+ return resolve(current.release_root);
412
+ }
413
+ return resolve(DEFAULT_RELEASE_ROOT);
414
+ }
415
+ async function sourceReleaseRootForInstall(options, installRoot, tempDir) {
416
+ if (options.sourceReleaseRoot) {
417
+ return {
418
+ path: resolve(options.sourceReleaseRoot),
419
+ source: { kind: "directory", value: resolve(options.sourceReleaseRoot) }
420
+ };
421
+ }
422
+ if (options.sourceUrl) {
423
+ const downloadedPath = await downloadToolchainArchive(options.sourceUrl, installRoot);
424
+ const extractRoot = join(tempDir, "extract");
425
+ await mkdir(extractRoot, { recursive: true });
426
+ const extracted = await runCommand(["tar", "-xzf", downloadedPath, "-C", extractRoot], tempDir);
427
+ if (extracted.exit_code !== 0) {
428
+ throw new Error(`Could not extract local toolchain archive: ${extracted.stderr_tail.join("\n")}`);
429
+ }
430
+ return {
431
+ path: await findReleaseRoot(extractRoot),
432
+ source: { kind: "url", value: options.sourceUrl, downloaded_path: downloadedPath }
433
+ };
434
+ }
435
+ if (await pathExists(DEFAULT_RELEASE_ROOT)) {
436
+ return {
437
+ path: resolve(DEFAULT_RELEASE_ROOT),
438
+ source: { kind: "directory", value: resolve(DEFAULT_RELEASE_ROOT) }
439
+ };
440
+ }
441
+ throw new Error("Local toolchain install needs --source-url <tar.gz> or --source-release-root <path> until the public download service is configured.");
442
+ }
443
+ async function downloadToolchainArchive(sourceUrl, installRoot) {
444
+ const downloadsDir = join(installRoot, "cache", "downloads");
445
+ await mkdir(downloadsDir, { recursive: true });
446
+ const parsed = new URL(sourceUrl);
447
+ const filename = basename(parsed.pathname) || `local-toolchain-${Date.now()}.tar.gz`;
448
+ const outputPath = join(downloadsDir, filename);
449
+ if (parsed.protocol === "file:") {
450
+ await cp(fileURLToPath(parsed), outputPath, { force: true });
451
+ return outputPath;
452
+ }
453
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
454
+ throw new Error(`Unsupported local toolchain download URL protocol: ${parsed.protocol}`);
455
+ }
456
+ const partialPath = `${outputPath}.part`;
457
+ const existingComplete = await fileSize(outputPath);
458
+ const remoteSize = await remoteContentLength(sourceUrl);
459
+ if (existingComplete > 0 && remoteSize !== undefined && existingComplete === remoteSize) {
460
+ return outputPath;
461
+ }
462
+ let resumeFrom = await fileSize(partialPath);
463
+ const headers = new Headers();
464
+ if (resumeFrom > 0) {
465
+ headers.set("range", `bytes=${resumeFrom}-`);
466
+ }
467
+ let response = await fetch(sourceUrl, { headers });
468
+ if (resumeFrom > 0 && response.status !== 206) {
469
+ await rm(partialPath, { force: true });
470
+ resumeFrom = 0;
471
+ response = await fetch(sourceUrl);
472
+ }
473
+ if (!response.ok) {
474
+ throw new Error(`Local toolchain download failed with HTTP ${response.status}: ${sourceUrl}`);
475
+ }
476
+ if (!response.body) {
477
+ throw new Error(`Local toolchain download returned an empty response body: ${sourceUrl}`);
478
+ }
479
+ const writeStream = createWriteStream(partialPath, { flags: resumeFrom > 0 ? "a" : "w" });
480
+ await pipeline(Readable.fromWeb(response.body), writeStream);
481
+ const downloadedSize = await fileSize(partialPath);
482
+ if (remoteSize !== undefined && downloadedSize !== remoteSize) {
483
+ throw new Error(`Local toolchain download incomplete: expected ${remoteSize} bytes, got ${downloadedSize} bytes.`);
484
+ }
485
+ await rename(partialPath, outputPath);
486
+ return outputPath;
487
+ }
488
+ async function remoteContentLength(sourceUrl) {
489
+ try {
490
+ const response = await fetch(sourceUrl, { method: "HEAD" });
491
+ if (!response.ok) {
492
+ return undefined;
493
+ }
494
+ const length = response.headers.get("content-length");
495
+ if (!length) {
496
+ return undefined;
497
+ }
498
+ const parsed = Number.parseInt(length, 10);
499
+ return Number.isFinite(parsed) && parsed >= 0 ? parsed : undefined;
500
+ }
501
+ catch {
502
+ return undefined;
503
+ }
504
+ }
505
+ async function fileSize(filePath) {
506
+ try {
507
+ return (await stat(filePath)).size;
508
+ }
509
+ catch {
510
+ return 0;
511
+ }
512
+ }
513
+ async function findReleaseRoot(extractRoot) {
514
+ if (await pathExists(join(extractRoot, "toolchain"))) {
515
+ return extractRoot;
516
+ }
517
+ const entries = await readdir(extractRoot);
518
+ for (const entry of entries) {
519
+ const candidate = join(extractRoot, entry);
520
+ try {
521
+ const info = await stat(candidate);
522
+ if (info.isDirectory() && await pathExists(join(candidate, "toolchain"))) {
523
+ return candidate;
524
+ }
525
+ }
526
+ catch {
527
+ // Ignore entries that disappear during extraction cleanup.
528
+ }
529
+ }
530
+ throw new Error("Downloaded local toolchain archive did not contain a release root with toolchain/.");
531
+ }
118
532
  function compilerForSource(releaseRoot, sourcePath) {
119
533
  const extension = extname(sourcePath).toLowerCase();
120
534
  const binDir = join(releaseRoot, "toolchain", "llvm-cross", "bin");
@@ -1 +1 @@
1
- {"version":3,"file":"local-toolchain.js","sourceRoot":"","sources":["../src/local-toolchain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-toolchain.js","sourceRoot":"","sources":["../src/local-toolchain.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kvell007/embed-labs-cli",
3
- "version": "0.1.0-alpha.3",
3
+ "version": "0.1.0-alpha.5",
4
4
  "description": "Command-line interface for Embed Labs Cloud. Experimental npm publish.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -18,8 +18,8 @@
18
18
  "embedlabs": "dist/index.js"
19
19
  },
20
20
  "dependencies": {
21
- "@embed-labs/local-bridge": "npm:@kvell007/embed-labs-local-bridge@0.1.0-alpha.3",
22
- "@embed-labs/protocol": "npm:@kvell007/embed-labs-protocol@0.1.0-alpha.3",
21
+ "@embed-labs/local-bridge": "npm:@kvell007/embed-labs-local-bridge@0.1.0-alpha.5",
22
+ "@embed-labs/protocol": "npm:@kvell007/embed-labs-protocol@0.1.0-alpha.5",
23
23
  "qrcode-terminal": "^0.12.0"
24
24
  },
25
25
  "publishConfig": {