@kvell007/embed-labs-cli 0.1.0-alpha.6 → 0.1.0-alpha.61

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.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,75 @@
1
+ #!/usr/bin/env node
2
+ import { writeFileSync } from "node:fs";
3
+ import { createRequire } from "node:module";
4
+ import { arch, platform } from "node:os";
5
+ const phase = process.argv[2] === "preinstall" ? "preinstall" : "postinstall";
6
+ const require = createRequire(import.meta.url);
7
+ const target = `${platform()}-${arch()}`;
8
+ const nativePackages = {
9
+ "darwin-arm64": "@embed-labs/local-bridge-darwin-arm64",
10
+ "linux-x64": "@embed-labs/local-bridge-linux-x64",
11
+ "linux-arm64": "@embed-labs/local-bridge-linux-arm64",
12
+ "win32-x64": "@embed-labs/local-bridge-win32-x64",
13
+ "win32-arm64": "@embed-labs/local-bridge-win32-arm64"
14
+ };
15
+ async function main() {
16
+ if (phase === "preinstall") {
17
+ await progress([
18
+ [5, `install: initializing (${target})`],
19
+ [12, "install: preparing npm package graph"],
20
+ [20, "install: resolving CLI dependencies"]
21
+ ]);
22
+ return;
23
+ }
24
+ const nativeName = nativePackages[target];
25
+ const nativeStatus = nativeName
26
+ ? packageAvailable(nativeName)
27
+ ? `native bridge package ready (${nativeName})`
28
+ : `native bridge package missing (${nativeName})`
29
+ : `native bridge package unavailable for ${target}`;
30
+ await progress([
31
+ [65, "install: verifying CLI files"],
32
+ [78, nativeStatus],
33
+ [92, "install: checking command shims"],
34
+ [100, "install: complete"]
35
+ ]);
36
+ }
37
+ async function progress(steps) {
38
+ for (const [percent, message] of steps) {
39
+ writeProgress(percent, message);
40
+ await sleep(1000);
41
+ }
42
+ }
43
+ function writeProgress(percent, message) {
44
+ const line = `[Embed Labs] ${String(percent).padStart(3, " ")}% ${message}\n`;
45
+ process.stdout.write(line);
46
+ writeDirectConsole(line);
47
+ }
48
+ function writeDirectConsole(line) {
49
+ if (process.stdout.isTTY || process.env.EMBEDLABS_INSTALL_NO_TTY === "1") {
50
+ return;
51
+ }
52
+ try {
53
+ writeFileSync(platform() === "win32" ? "\\\\.\\CONOUT$" : "/dev/tty", line, { flag: "a" });
54
+ }
55
+ catch {
56
+ // CI and some package managers run without a controlling TTY. In that case
57
+ // stdout is still available when lifecycle output is not suppressed.
58
+ }
59
+ }
60
+ function packageAvailable(name) {
61
+ try {
62
+ require.resolve(`${name}/package.json`);
63
+ return true;
64
+ }
65
+ catch {
66
+ return false;
67
+ }
68
+ }
69
+ function sleep(ms) {
70
+ return new Promise((resolve) => setTimeout(resolve, ms));
71
+ }
72
+ main().catch((error) => {
73
+ writeProgress(100, `install: warning (${error instanceof Error ? error.message : String(error)})`);
74
+ });
75
+ //# sourceMappingURL=install-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-progress.js","sourceRoot":"","sources":["../src/install-progress.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;AAC9E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,MAAM,GAAG,GAAG,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;AAEzC,MAAM,cAAc,GAA2B;IAC7C,cAAc,EAAE,uCAAuC;IACvD,WAAW,EAAE,oCAAoC;IACjD,aAAa,EAAE,sCAAsC;IACrD,WAAW,EAAE,oCAAoC;IACjD,aAAa,EAAE,sCAAsC;CACtD,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC3B,MAAM,QAAQ,CAAC;YACb,CAAC,CAAC,EAAE,0BAA0B,MAAM,GAAG,CAAC;YACxC,CAAC,EAAE,EAAE,sCAAsC,CAAC;YAC5C,CAAC,EAAE,EAAE,qCAAqC,CAAC;SAC5C,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC;YAC5B,CAAC,CAAC,gCAAgC,UAAU,GAAG;YAC/C,CAAC,CAAC,kCAAkC,UAAU,GAAG;QACnD,CAAC,CAAC,yCAAyC,MAAM,EAAE,CAAC;IACtD,MAAM,QAAQ,CAAC;QACb,CAAC,EAAE,EAAE,8BAA8B,CAAC;QACpC,CAAC,EAAE,EAAE,YAAY,CAAC;QAClB,CAAC,EAAE,EAAE,iCAAiC,CAAC;QACvC,CAAC,GAAG,EAAE,mBAAmB,CAAC;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,KAA8B;IACpD,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;QACvC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,OAAe;IACrD,MAAM,IAAI,GAAG,gBAAgB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,OAAO,IAAI,CAAC;IAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,EAAE,CAAC;QACzE,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,qEAAqE;IACvE,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,aAAa,CAAC,GAAG,EAAE,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrG,CAAC,CAAC,CAAC"}
@@ -3,9 +3,12 @@ export interface LocalToolchainAuthContext {
3
3
  profile: string;
4
4
  source?: string;
5
5
  account_id?: string;
6
+ api_key_id?: string;
7
+ device_id?: string;
6
8
  }
7
9
  export interface LocalToolchainValidationResult {
8
10
  ok: boolean;
11
+ mode: string;
9
12
  host: {
10
13
  platform: string;
11
14
  arch: string;
@@ -14,6 +17,10 @@ export interface LocalToolchainValidationResult {
14
17
  release_root: string;
15
18
  checked_paths: LocalToolchainPathCheck[];
16
19
  missing_paths: string[];
20
+ path_leaks: LocalToolchainPathLeak[];
21
+ missing_groups: string[];
22
+ repair_command?: string;
23
+ summary_for_user: string;
17
24
  notes: string[];
18
25
  }
19
26
  export interface LocalToolchainPathCheck {
@@ -21,6 +28,11 @@ export interface LocalToolchainPathCheck {
21
28
  path: string;
22
29
  exists: boolean;
23
30
  }
31
+ export interface LocalToolchainPathLeak {
32
+ label: string;
33
+ path: string;
34
+ forbidden: string;
35
+ }
24
36
  export interface LocalCompileOptions {
25
37
  boardId: string;
26
38
  sourcePath: string;
@@ -80,6 +92,7 @@ export interface LocalToolchainPackageManifest {
80
92
  family?: string;
81
93
  board?: string;
82
94
  variant?: string;
95
+ board_id?: string;
83
96
  requires?: Array<{
84
97
  id: string;
85
98
  version: string;
@@ -103,10 +116,66 @@ export interface LocalToolchainLatestResult {
103
116
  download?: LocalToolchainDownloadPlan;
104
117
  download_error?: string;
105
118
  }
119
+ export interface WindowsWslStatusResult {
120
+ host: string;
121
+ platform: string;
122
+ arch: string;
123
+ checked_at: string;
124
+ applicable: boolean;
125
+ wsl_available: boolean;
126
+ usable: boolean;
127
+ distributions: Array<{
128
+ name: string;
129
+ state?: string;
130
+ version?: string;
131
+ default?: boolean;
132
+ }>;
133
+ online_distributions: Array<{
134
+ name: string;
135
+ friendly_name?: string;
136
+ default?: boolean;
137
+ }>;
138
+ taishanpi_execution: WindowsWslTaishanPiExecution;
139
+ commands: {
140
+ status: string;
141
+ list: string;
142
+ list_online: string;
143
+ install_ubuntu: string;
144
+ };
145
+ notes: string[];
146
+ }
147
+ export interface WindowsWslTaishanPiExecution {
148
+ supported: boolean;
149
+ required_host: "linux-x86_64";
150
+ actual_host?: string;
151
+ windows_host: string;
152
+ route: "wsl2";
153
+ status: "ready" | "wsl_not_applicable" | "wsl_missing" | "wsl_not_configured" | "architecture_mismatch" | "package_missing";
154
+ install_command: string;
155
+ reason: string;
156
+ }
157
+ export interface WindowsWslInstallOptions {
158
+ distribution?: string;
159
+ noLaunch?: boolean;
160
+ webDownload?: boolean;
161
+ timeoutMs?: number;
162
+ }
163
+ export interface WindowsWslInstallResult {
164
+ host: string;
165
+ platform: string;
166
+ arch: string;
167
+ command: string[];
168
+ exit_code: number;
169
+ stdout_tail: string[];
170
+ stderr_tail: string[];
171
+ status_after: WindowsWslStatusResult;
172
+ notes: string[];
173
+ }
106
174
  export interface LocalToolchainInstallOptions extends LocalToolchainLatestOptions {
107
175
  sourceReleaseRoot?: string;
108
176
  sourceUrl?: string;
109
177
  installRoot?: string;
178
+ mode?: string;
110
179
  force?: boolean;
111
180
  }
112
181
  export interface LocalToolchainInstallResult {
@@ -114,16 +183,18 @@ export interface LocalToolchainInstallResult {
114
183
  version: string;
115
184
  channel: string;
116
185
  host: string;
186
+ mode: string;
117
187
  install_root: string;
118
188
  release_root: string;
119
189
  registry_path: string;
120
190
  source: {
121
- kind: "directory" | "url";
191
+ kind: "directory" | "url" | "components";
122
192
  value: string;
123
193
  downloaded_path?: string;
124
194
  mirror_kind?: string;
125
195
  sha256?: string;
126
196
  size_bytes?: number;
197
+ components?: LocalToolchainInstalledComponent[];
127
198
  };
128
199
  installed_paths: string[];
129
200
  packages: LocalToolchainPackageRef[];
@@ -133,12 +204,91 @@ export interface LocalToolchainCurrentResult {
133
204
  installed: boolean;
134
205
  board_id: string;
135
206
  version?: string;
207
+ mode?: string;
136
208
  release_root?: string;
137
209
  registry_path: string;
138
210
  install_root: string;
139
211
  channel?: string;
140
212
  packages?: LocalToolchainPackageRef[];
141
213
  }
214
+ export interface LocalToolchainListOptions extends LocalToolchainLatestOptions {
215
+ installRoot?: string;
216
+ installedOnly?: boolean;
217
+ }
218
+ export interface LocalToolchainUninstallOptions {
219
+ boardId?: string;
220
+ installRoot?: string;
221
+ }
222
+ export interface LocalToolchainEnvironmentRecord {
223
+ board_id: string;
224
+ package_id: string;
225
+ display_name: string;
226
+ family?: string;
227
+ variant?: string;
228
+ channel: string;
229
+ host: string;
230
+ status: "installed" | "available" | "update_available" | "unsupported_host";
231
+ supported_host: boolean;
232
+ unsupported_packages: string[];
233
+ install_modes: string[];
234
+ installed?: {
235
+ version?: string;
236
+ channel?: string;
237
+ mode?: string;
238
+ release_root?: string;
239
+ };
240
+ latest: {
241
+ version: string;
242
+ default_mode?: string;
243
+ source_url?: string;
244
+ manifest_url?: string;
245
+ component_count?: number;
246
+ download_error?: string;
247
+ };
248
+ packages: LocalToolchainPackageRef[];
249
+ components?: LocalToolchainEnvironmentComponent[];
250
+ execution?: LocalToolchainExecutionRoute;
251
+ install_command: string;
252
+ update_command: string;
253
+ notes: string[];
254
+ }
255
+ export interface LocalToolchainExecutionRoute {
256
+ kind: "native" | "wsl2";
257
+ supported: boolean;
258
+ required_host?: string;
259
+ actual_host?: string;
260
+ status_command?: string;
261
+ install_command?: string;
262
+ reason?: string;
263
+ }
264
+ export interface LocalToolchainEnvironmentComponent {
265
+ id: string;
266
+ version: string;
267
+ role?: string;
268
+ install_modes?: string[];
269
+ file: string;
270
+ size_bytes: number;
271
+ source_url?: string;
272
+ }
273
+ export interface LocalToolchainListResult {
274
+ host: string;
275
+ channel: string;
276
+ metadata_source: "built_in" | "local_override";
277
+ metadata_root?: string;
278
+ install_root: string;
279
+ registry_path: string;
280
+ environments: LocalToolchainEnvironmentRecord[];
281
+ }
282
+ export interface LocalToolchainUninstallResult {
283
+ board_id: string;
284
+ install_root: string;
285
+ registry_path: string;
286
+ removed: boolean;
287
+ removed_paths: string[];
288
+ removed_registry_entry: boolean;
289
+ remaining_installed_boards: string[];
290
+ observed_at: string;
291
+ }
142
292
  export interface LocalToolchainDownloadPlan {
143
293
  channel_url: string;
144
294
  manifest_url: string;
@@ -147,15 +297,17 @@ export interface LocalToolchainDownloadPlan {
147
297
  board_id: string;
148
298
  host: string;
149
299
  toolchain: string;
150
- source_url: string;
151
- mirror_kind: string;
152
- archive: {
300
+ source_url?: string;
301
+ mirror_kind?: string;
302
+ archive?: {
153
303
  file: string;
154
304
  size_bytes: number;
155
305
  sha256: string;
156
306
  content_type?: string;
157
307
  };
158
308
  mirrors: LocalToolchainDownloadMirror[];
309
+ components?: LocalToolchainDownloadComponent[];
310
+ default_mode?: string;
159
311
  }
160
312
  export interface LocalToolchainDownloadMirror {
161
313
  kind: string;
@@ -164,10 +316,43 @@ export interface LocalToolchainDownloadMirror {
164
316
  sha256?: string;
165
317
  size_bytes?: number;
166
318
  }
319
+ export interface LocalToolchainDownloadComponent {
320
+ id: string;
321
+ version: string;
322
+ role?: string;
323
+ install_modes?: string[];
324
+ archive: {
325
+ file: string;
326
+ size_bytes: number;
327
+ sha256: string;
328
+ content_type?: string;
329
+ };
330
+ source_url?: string;
331
+ mirror_kind?: string;
332
+ mirrors: LocalToolchainDownloadMirror[];
333
+ }
334
+ export interface LocalToolchainInstalledComponent {
335
+ id: string;
336
+ version: string;
337
+ role?: string;
338
+ archive_file: string;
339
+ mirror_kind?: string;
340
+ downloaded_path: string;
341
+ size_bytes: number;
342
+ sha256: string;
343
+ }
167
344
  export declare function defaultLocalReleaseRoot(): string;
168
345
  export declare function latestLocalToolchain(options?: LocalToolchainLatestOptions): Promise<LocalToolchainLatestResult>;
169
346
  export declare function currentLocalToolchain(installRoot?: string, boardId?: string): Promise<LocalToolchainCurrentResult>;
347
+ export declare function listLocalToolchainEnvironments(options?: LocalToolchainListOptions): Promise<LocalToolchainListResult>;
170
348
  export declare function installLocalToolchain(options?: LocalToolchainInstallOptions): Promise<LocalToolchainInstallResult>;
171
- export declare function validateLocalToolchain(releaseRoot?: string): Promise<LocalToolchainValidationResult>;
349
+ export declare function windowsWslStatus(): Promise<WindowsWslStatusResult>;
350
+ export declare function windowsWslInstall(options?: WindowsWslInstallOptions): Promise<WindowsWslInstallResult>;
351
+ export declare function uninstallLocalToolchain(options?: LocalToolchainUninstallOptions): Promise<LocalToolchainUninstallResult>;
352
+ export declare function validateLocalToolchain(input?: string | {
353
+ releaseRoot?: string;
354
+ mode?: string;
355
+ boardId?: string;
356
+ }): Promise<LocalToolchainValidationResult>;
172
357
  export declare function compileTaishanPiSingleFile(options: LocalCompileOptions): Promise<LocalCompileResult>;
173
358
  export declare function buildTaishanPiQtSmoke(options: LocalQtSmokeBuildOptions): Promise<LocalCompileResult>;