@layr-labs/ecloud-cli 0.2.0-dev → 0.2.0-dev.1

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.
Files changed (71) hide show
  1. package/VERSION +2 -2
  2. package/dist/commands/auth/generate.js +4 -4
  3. package/dist/commands/auth/generate.js.map +1 -1
  4. package/dist/commands/auth/login.js +2 -2
  5. package/dist/commands/auth/login.js.map +1 -1
  6. package/dist/commands/auth/logout.js +2 -2
  7. package/dist/commands/auth/logout.js.map +1 -1
  8. package/dist/commands/auth/migrate.js +2 -2
  9. package/dist/commands/auth/migrate.js.map +1 -1
  10. package/dist/commands/auth/whoami.js +7 -5
  11. package/dist/commands/auth/whoami.js.map +1 -1
  12. package/dist/commands/billing/cancel.js +9 -7
  13. package/dist/commands/billing/cancel.js.map +1 -1
  14. package/dist/commands/billing/status.js +8 -5
  15. package/dist/commands/billing/status.js.map +1 -1
  16. package/dist/commands/billing/subscribe.js +14 -10
  17. package/dist/commands/billing/subscribe.js.map +1 -1
  18. package/dist/commands/compute/app/create.js +2 -2
  19. package/dist/commands/compute/app/create.js.map +1 -1
  20. package/dist/commands/compute/app/deploy.js +105 -105
  21. package/dist/commands/compute/app/deploy.js.map +1 -1
  22. package/dist/commands/compute/app/info.js +55 -8
  23. package/dist/commands/compute/app/info.js.map +1 -1
  24. package/dist/commands/compute/app/list.js +8 -9
  25. package/dist/commands/compute/app/list.js.map +1 -1
  26. package/dist/commands/compute/app/logs.js +58 -11
  27. package/dist/commands/compute/app/logs.js.map +1 -1
  28. package/dist/commands/compute/app/profile/set.js +147 -22
  29. package/dist/commands/compute/app/profile/set.js.map +1 -1
  30. package/dist/commands/compute/app/releases.js +110 -143
  31. package/dist/commands/compute/app/releases.js.map +1 -1
  32. package/dist/commands/compute/app/start.js +58 -11
  33. package/dist/commands/compute/app/start.js.map +1 -1
  34. package/dist/commands/compute/app/stop.js +58 -11
  35. package/dist/commands/compute/app/stop.js.map +1 -1
  36. package/dist/commands/compute/app/terminate.js +58 -11
  37. package/dist/commands/compute/app/terminate.js.map +1 -1
  38. package/dist/commands/compute/app/upgrade.js +121 -67
  39. package/dist/commands/compute/app/upgrade.js.map +1 -1
  40. package/dist/commands/compute/build/info.js +8 -9
  41. package/dist/commands/compute/build/info.js.map +1 -1
  42. package/dist/commands/compute/build/list.js +50 -131
  43. package/dist/commands/compute/build/list.js.map +1 -1
  44. package/dist/commands/compute/build/logs.js +9 -10
  45. package/dist/commands/compute/build/logs.js.map +1 -1
  46. package/dist/commands/compute/build/status.js +9 -10
  47. package/dist/commands/compute/build/status.js.map +1 -1
  48. package/dist/commands/compute/build/submit.js +8 -9
  49. package/dist/commands/compute/build/submit.js.map +1 -1
  50. package/dist/commands/compute/build/verify.js +59 -12
  51. package/dist/commands/compute/build/verify.js.map +1 -1
  52. package/dist/commands/compute/environment/list.js +2 -2
  53. package/dist/commands/compute/environment/list.js.map +1 -1
  54. package/dist/commands/compute/environment/set.js +2 -2
  55. package/dist/commands/compute/environment/set.js.map +1 -1
  56. package/dist/commands/compute/environment/show.js +2 -2
  57. package/dist/commands/compute/environment/show.js.map +1 -1
  58. package/dist/commands/compute/undelegate.js +8 -9
  59. package/dist/commands/compute/undelegate.js.map +1 -1
  60. package/dist/commands/{telemetry.js → telemetry/disable.js} +15 -64
  61. package/dist/commands/telemetry/disable.js.map +1 -0
  62. package/dist/commands/telemetry/enable.js +164 -0
  63. package/dist/commands/telemetry/enable.js.map +1 -0
  64. package/dist/commands/telemetry/status.js +159 -0
  65. package/dist/commands/telemetry/status.js.map +1 -0
  66. package/dist/commands/upgrade.js +2 -2
  67. package/dist/commands/upgrade.js.map +1 -1
  68. package/dist/commands/version.js +2 -2
  69. package/dist/commands/version.js.map +1 -1
  70. package/package.json +4 -2
  71. package/dist/commands/telemetry.js.map +0 -1
@@ -16,6 +16,7 @@ import {
16
16
 
17
17
  // src/flags.ts
18
18
  import { Flags } from "@oclif/core";
19
+ import { getBuildType as getBuildType2 } from "@layr-labs/ecloud-sdk";
19
20
 
20
21
  // src/utils/prompts.ts
21
22
  import { input, select, password, confirm as inquirerConfirm } from "@inquirer/prompts";
@@ -97,6 +98,27 @@ function saveGlobalConfig(config) {
97
98
  const content = dumpYaml(config, { lineWidth: -1 });
98
99
  fs.writeFileSync(configPath, content, { mode: 420 });
99
100
  }
101
+ function normalizeDirectoryPath(directoryPath) {
102
+ const resolved = path.resolve(directoryPath);
103
+ try {
104
+ return fs.realpathSync(resolved);
105
+ } catch {
106
+ return resolved;
107
+ }
108
+ }
109
+ function getLinkedAppForDirectory(environment, directoryPath) {
110
+ if (!directoryPath) {
111
+ return null;
112
+ }
113
+ const config = loadGlobalConfig();
114
+ const links = config.directory_links?.[environment];
115
+ if (!links) {
116
+ return null;
117
+ }
118
+ const normalizedPath = normalizeDirectoryPath(directoryPath);
119
+ const appId = links[normalizedPath];
120
+ return appId || null;
121
+ }
100
122
  function getDefaultEnvironment() {
101
123
  const config = loadGlobalConfig();
102
124
  return config.default_environment;
@@ -193,7 +215,7 @@ function listApps(environment) {
193
215
 
194
216
  // src/utils/version.ts
195
217
  function getCliVersion() {
196
- return true ? "0.2.0-dev" : "0.0.0";
218
+ return true ? "0.2.0-dev.1" : "0.0.0";
197
219
  }
198
220
  function getClientId() {
199
221
  return `ecloud-cli/v${getCliVersion()}`;
@@ -222,6 +244,9 @@ function addHexPrefix(value) {
222
244
  }
223
245
  return `0x${value}`;
224
246
  }
247
+ function getCurrentProjectPath() {
248
+ return process.env.INIT_CWD || process.cwd();
249
+ }
225
250
  var ContractAppStatusStarted = 1;
226
251
  var ContractAppStatusStopped = 2;
227
252
  var ContractAppStatusTerminated = 3;
@@ -360,6 +385,7 @@ Select an app to ${action}:
360
385
  switch (action) {
361
386
  case "view":
362
387
  case "view info for":
388
+ case "view releases for":
363
389
  case "set profile for":
364
390
  return true;
365
391
  case "start":
@@ -388,7 +414,19 @@ Select an app to ${action}:
388
414
  index: i
389
415
  });
390
416
  }
417
+ const linkedAppId = getLinkedAppForDirectory(environment, getCurrentProjectPath());
418
+ const normalizedLinkedAppId = linkedAppId ? linkedAppId.toLowerCase() : "";
391
419
  appItems.sort((a, b) => {
420
+ if (normalizedLinkedAppId) {
421
+ const aLinked = String(a.addr).toLowerCase() === normalizedLinkedAppId;
422
+ const bLinked = String(b.addr).toLowerCase() === normalizedLinkedAppId;
423
+ if (aLinked && !bLinked) {
424
+ return -1;
425
+ }
426
+ if (bLinked && !aLinked) {
427
+ return 1;
428
+ }
429
+ }
392
430
  const aPriority = getStatusPriority(a.status, false);
393
431
  const bPriority = getStatusPriority(b.status, false);
394
432
  if (aPriority !== bPriority) {
@@ -454,7 +492,18 @@ async function getAppIDInteractiveFromRegistry(environment, action) {
454
492
  }
455
493
  throw new Error(`Invalid app ID address: ${appIDInput}`);
456
494
  }
457
- const choices = Object.entries(allApps).map(([name, appID]) => {
495
+ const entries = Object.entries(allApps);
496
+ const linkedAppId = getLinkedAppForDirectory(environment, getCurrentProjectPath());
497
+ if (linkedAppId) {
498
+ const linkedIndex = entries.findIndex(
499
+ ([, appId]) => String(appId).toLowerCase() === linkedAppId.toLowerCase()
500
+ );
501
+ if (linkedIndex > 0) {
502
+ const [linkedEntry] = entries.splice(linkedIndex, 1);
503
+ entries.unshift(linkedEntry);
504
+ }
505
+ }
506
+ const choices = entries.map(([name, appID]) => {
458
507
  const displayName = `${name} (${appID})`;
459
508
  return { name: displayName, value: appID };
460
509
  });
@@ -573,7 +622,8 @@ var commonFlags = {
573
622
  environment: Flags.string({
574
623
  required: false,
575
624
  description: "Deployment environment to use",
576
- env: "ECLOUD_ENV"
625
+ env: "ECLOUD_ENV",
626
+ default: async () => getDefaultEnvironment() || (getBuildType2() === "dev" ? "sepolia-dev" : "sepolia")
577
627
  }),
578
628
  "private-key": Flags.string({
579
629
  required: false,
@@ -592,9 +642,6 @@ var commonFlags = {
592
642
  })
593
643
  };
594
644
  async function validateCommonFlags(flags, options) {
595
- if (!flags["environment"]) {
596
- flags["environment"] = getDefaultEnvironment();
597
- }
598
645
  flags["environment"] = await getEnvironmentInteractive(flags["environment"]);
599
646
  if (options?.requirePrivateKey !== false) {
600
647
  flags["private-key"] = await getPrivateKeyInteractive(flags["private-key"]);
@@ -633,15 +680,15 @@ import {
633
680
  addMetric,
634
681
  addMetricWithDimensions,
635
682
  emitMetrics,
636
- getBuildType as getBuildType2
683
+ getBuildType as getBuildType3
637
684
  } from "@layr-labs/ecloud-sdk";
638
685
  function createCLITelemetryClient() {
639
686
  const userUUID = getOrCreateUserUUID();
640
687
  const environment = createAppEnvironment(userUUID);
641
688
  const telemetryEnabled = getGlobalTelemetryPreference();
642
689
  return createTelemetryClient(environment, "ecloud-cli", {
643
- telemetryEnabled: telemetryEnabled === true
644
- // Only enabled if explicitly set to true
690
+ telemetryEnabled: telemetryEnabled !== false
691
+ // Enabled by default, disabled only if explicitly set to false
645
692
  });
646
693
  }
647
694
  async function withTelemetry(command, action) {
@@ -651,7 +698,7 @@ async function withTelemetry(command, action) {
651
698
  metrics.properties["command"] = command.id || command.constructor.name;
652
699
  const environment = getDefaultEnvironment() || "sepolia";
653
700
  metrics.properties["environment"] = environment;
654
- const buildType = getBuildType2() || "prod";
701
+ const buildType = getBuildType3() || "prod";
655
702
  metrics.properties["build_type"] = buildType;
656
703
  const cliVersion = command.config.version;
657
704
  if (cliVersion) {
@@ -704,7 +751,7 @@ var AppLogs = class _AppLogs extends Command {
704
751
  return withTelemetry(this, async () => {
705
752
  const { args, flags } = await this.parse(_AppLogs);
706
753
  const compute = await createComputeClient(flags);
707
- const environment = flags.environment || "sepolia";
754
+ const environment = flags.environment;
708
755
  const environmentConfig = getEnvironmentConfig3(environment);
709
756
  const rpcUrl = flags["rpc-url"] || environmentConfig.defaultRPCURL;
710
757
  const appID = await getOrPromptAppID({