anycloud 0.0.28 → 0.0.30

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 (37) hide show
  1. package/binaries/anycloud-darwin-arm64 +0 -0
  2. package/binaries/anycloud-darwin-x64 +0 -0
  3. package/binaries/anycloud-linux-arm64 +0 -0
  4. package/binaries/anycloud-linux-x64 +0 -0
  5. package/dist/cli/commands/config/edit.js +3 -3
  6. package/dist/cli/commands/config/edit.js.map +1 -1
  7. package/dist/cli/commands/config/new.js +3 -3
  8. package/dist/cli/commands/config/new.js.map +1 -1
  9. package/dist/cli/commands/credentials/edit.js +16 -15
  10. package/dist/cli/commands/credentials/edit.js.map +1 -1
  11. package/dist/cli/commands/credentials/new.js +8 -7
  12. package/dist/cli/commands/credentials/new.js.map +1 -1
  13. package/dist/cli/commands/list.js +12 -14
  14. package/dist/cli/commands/list.js.map +1 -1
  15. package/dist/cli/commands/logs.js +39 -0
  16. package/dist/cli/commands/logs.js.map +1 -0
  17. package/dist/cli/commands/ssh.js +23 -158
  18. package/dist/cli/commands/ssh.js.map +1 -1
  19. package/dist/cli/commands/status.js +21 -23
  20. package/dist/cli/commands/status.js.map +1 -1
  21. package/dist/cli/commands/terminate.js +16 -16
  22. package/dist/cli/commands/terminate.js.map +1 -1
  23. package/dist/cli/index.js +2 -0
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/services/config.js +3 -34
  26. package/dist/cli/services/config.js.map +1 -1
  27. package/dist/cli/services/non-interactive.js +4 -3
  28. package/dist/cli/services/non-interactive.js.map +1 -1
  29. package/dist/cli/services/ssh.js +197 -0
  30. package/dist/cli/services/ssh.js.map +1 -0
  31. package/dist/shared/cloud-config.js +159 -0
  32. package/dist/shared/cloud-config.js.map +1 -0
  33. package/dist/shared/types.js +33 -106
  34. package/dist/shared/types.js.map +1 -1
  35. package/dist/shared/utils.js +72 -2
  36. package/dist/shared/utils.js.map +1 -1
  37. package/package.json +2 -1
@@ -1,15 +1,7 @@
1
1
  import { Command } from 'commander';
2
- import { spawn } from 'child_process';
3
- import { writeFileSync, unlinkSync } from 'fs';
4
- import { tmpdir } from 'os';
5
- import { join } from 'path';
6
2
  import prompts from 'prompts';
7
- import { getGitHubToken } from '../services/auth.js';
8
- import { getDeploymentStatus, listDeployments, loadSshKey, loadDeploymentCredentials, } from '../services/api-client.js';
9
- import { printInfo, printError, createSpinner, selectDeployment, } from '../utils/output.js';
10
- import { isNonInteractive, getEnvOptional, } from '../services/non-interactive.js';
11
- import { DeploymentState, isExitedState, isVmAccessible, } from '../../shared/types.js';
12
- import packageJson from '../../../package.json' with { type: 'json' };
3
+ import { resolveSSHContext, spawnSSH } from '../services/ssh.js';
4
+ import { printInfo, printError } from '../utils/output.js';
13
5
  export function createSshCommand() {
14
6
  return new Command('ssh')
15
7
  .description('🔌 SSH into a deployment container')
@@ -26,113 +18,17 @@ Use --vm to SSH directly to the VM without entering the container.
26
18
  `)
27
19
  .action(async (id, options) => {
28
20
  try {
29
- let deploymentId = id;
30
- let isCompletedJob = false;
31
- // Get GitHub token
32
- const accessToken = await getGitHubToken();
33
- // If no ID provided, fetch and prompt for selection
34
- if (!deploymentId) {
35
- if (isNonInteractive()) {
36
- deploymentId = getEnvOptional('ANYCLOUD_DEPLOYMENT_ID');
37
- if (!deploymentId) {
38
- printError('Non-interactive mode: Deployment ID required.\n' +
39
- ' Provide ID as argument or set ANYCLOUD_DEPLOYMENT_ID environment variable.');
40
- process.exit(1);
41
- }
42
- }
43
- else {
44
- const loadingSpinner = createSpinner('Loading deployments...').start();
45
- const deployments = await listDeployments({
46
- accessToken,
47
- version: packageJson.version,
48
- });
49
- loadingSpinner.stop();
50
- if (deployments.length === 0) {
51
- printInfo('No deployments found.');
52
- process.exit(0);
53
- }
54
- console.log('');
55
- const selectedDeployment = await selectDeployment(deployments);
56
- if (!selectedDeployment) {
57
- process.exit(0);
58
- }
59
- // Check if VM is accessible
60
- if (!isVmAccessible(selectedDeployment.state)) {
61
- printError(`Deployment is ${selectedDeployment.state}.\n` +
62
- ' Cannot SSH - VM is not accessible.');
63
- process.exit(1);
64
- }
65
- // Block container SSH during starting (container may not exist yet)
66
- if (selectedDeployment.state === DeploymentState.Starting &&
67
- !options?.vm) {
68
- printError(`Deployment is still starting (container may not be ready).\n` +
69
- ' Use "anycloud ssh --vm" to SSH directly to the VM.\n' +
70
- ' Or wait for the deployment to be running.');
71
- process.exit(1);
72
- }
73
- deploymentId = selectedDeployment.id;
74
- isCompletedJob = isExitedState(selectedDeployment.state);
75
- }
76
- }
77
- // Load credentials and SSH key for this deployment
78
- let credentials;
79
- let sshPrivateKey;
80
- try {
81
- credentials = await loadDeploymentCredentials(deploymentId);
82
- }
83
- catch {
84
- printError(`Credentials not found for deployment ${deploymentId}.\n` +
85
- ' This deployment may have been created from a different machine.\n' +
86
- ' Email support@anycloud.sh to reclaim it.');
87
- process.exit(1);
88
- }
89
- try {
90
- sshPrivateKey = await loadSshKey(deploymentId);
91
- }
92
- catch {
93
- printError(`SSH key not found for deployment ${deploymentId}.\n` +
94
- ' This deployment may have been created from a different machine.\n' +
95
- ' Email support@anycloud.sh to reclaim it.');
96
- process.exit(1);
97
- }
98
- // Get VM IPs
99
- const spinner = createSpinner('Getting VM info...').start();
100
- const statusRequest = {
101
- id: deploymentId,
102
- credentials,
103
- accessToken,
104
- version: packageJson.version,
105
- sshPrivateKey,
106
- };
107
- const response = await getDeploymentStatus(statusRequest);
108
- spinner.stop();
109
- if (!response.vmStatuses || response.vmStatuses.length === 0) {
110
- printError('No VMs found for this deployment.');
111
- process.exit(1);
112
- }
113
- // Select VM IP
114
- let vmIp;
115
- if (response.vmStatuses.length === 1) {
116
- vmIp = response.vmStatuses[0].ip;
117
- }
118
- else {
119
- // Multiple VMs - prompt for selection
120
- const vmSelection = await prompts({
121
- type: 'select',
122
- name: 'ip',
123
- message: 'Select VM to connect to:',
124
- choices: response.vmStatuses.map((vm) => ({
125
- title: vm.ip,
126
- value: vm.ip,
127
- })),
128
- });
129
- if (!vmSelection.ip) {
130
- process.exit(0);
131
- }
132
- vmIp = vmSelection.ip;
21
+ const vmOnly = options?.vm ?? false;
22
+ const ctx = await resolveSSHContext({
23
+ id,
24
+ filterStarting: !vmOnly,
25
+ });
26
+ if (!ctx) {
27
+ process.exit(0);
133
28
  }
29
+ const { deploymentId, vmIp, sshPrivateKey, isCompletedJob } = ctx;
134
30
  // If job completed/errored, container has exited - prompt for snapshot
135
- if (isCompletedJob && !options?.vm) {
31
+ if (isCompletedJob && !vmOnly) {
136
32
  const { proceed } = await prompts({
137
33
  type: 'confirm',
138
34
  name: 'proceed',
@@ -144,30 +40,12 @@ Use --vm to SSH directly to the VM without entering the container.
144
40
  process.exit(0);
145
41
  }
146
42
  }
147
- // Write SSH key to temp file
148
- const keyFile = join(tmpdir(), `anycloud-ssh-${deploymentId}-${Date.now()}`);
149
- writeFileSync(keyFile, sshPrivateKey, { mode: 0o600 });
150
- const vmOnly = options?.vm ?? false;
151
43
  printInfo(vmOnly
152
44
  ? `Connecting to VM ${vmIp}...`
153
45
  : `Connecting to container on ${vmIp}...`);
154
46
  console.log('');
155
- // Spawn SSH process
156
- const sshArgs = [
157
- '-i',
158
- keyFile,
159
- '-p',
160
- '22',
161
- '-o',
162
- 'StrictHostKeyChecking=no',
163
- '-o',
164
- 'UserKnownHostsFile=/dev/null',
165
- '-o',
166
- 'LogLevel=ERROR',
167
- '-t',
168
- `root@${vmIp}`,
169
- ];
170
- // Add docker exec command unless --vm flag is set
47
+ // Build docker command unless --vm flag is set
48
+ let command;
171
49
  if (!vmOnly) {
172
50
  const snapshotName = `${deploymentId}-snapshot`;
173
51
  // Get volume mounts from original container and pass to snapshot
@@ -176,34 +54,21 @@ Use --vm to SSH directly to the VM without entering the container.
176
54
  const runSnapshot = `docker run -it --rm $MOUNTS ${snapshotName} bash`;
177
55
  if (isCompletedJob) {
178
56
  // Container exited - snapshot and run shell with volume mounts
179
- sshArgs.push(`${getMounts} && docker commit ${deploymentId} ${snapshotName} && ${runSnapshot}`);
57
+ command = `${getMounts} && docker commit ${deploymentId} ${snapshotName} && ${runSnapshot}`;
180
58
  }
181
59
  else {
182
60
  // Try exec first, fallback to snapshot if container exited (handles direct ID case)
183
- sshArgs.push(`docker exec -it ${deploymentId} bash 2>/dev/null || ` +
184
- `(${getMounts} && docker commit ${deploymentId} ${snapshotName} && ${runSnapshot})`);
61
+ command =
62
+ `docker exec -it ${deploymentId} bash 2>/dev/null || ` +
63
+ `(${getMounts} && docker commit ${deploymentId} ${snapshotName} && ${runSnapshot})`;
185
64
  }
186
65
  }
187
- const sshProcess = spawn('ssh', sshArgs, { stdio: 'inherit' });
188
- // Clean up key file when SSH exits
189
- sshProcess.on('close', (code) => {
190
- try {
191
- unlinkSync(keyFile);
192
- }
193
- catch {
194
- // Ignore cleanup errors
195
- }
196
- process.exit(code ?? 0);
197
- });
198
- sshProcess.on('error', (err) => {
199
- try {
200
- unlinkSync(keyFile);
201
- }
202
- catch {
203
- // Ignore cleanup errors
204
- }
205
- printError(`SSH failed: ${err.message}`);
206
- process.exit(1);
66
+ spawnSSH({
67
+ deploymentId,
68
+ vmIp,
69
+ sshPrivateKey,
70
+ command,
71
+ interactive: true,
207
72
  });
208
73
  }
209
74
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/cli/commands/ssh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;SACtB,WAAW,CAAC,oCAAoC,CAAC;SACjD,QAAQ,CACP,MAAM,EACN,kEAAkE,CACnE;SACA,MAAM,CAAC,MAAM,EAAE,kDAAkD,CAAC;SAClE,WAAW,CACV,OAAO,EACP;;;;;;;;CAQL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,EAAW,EAAE,OAA0B,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,cAAc,GAAG,KAAK,CAAC;YAE3B,mBAAmB;YACnB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAE3C,oDAAoD;YACpD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,gBAAgB,EAAE,EAAE,CAAC;oBACvB,YAAY,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;oBACxD,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,UAAU,CACR,iDAAiD;4BAC/C,+EAA+E,CAClF,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,cAAc,GAAG,aAAa,CAClC,wBAAwB,CACzB,CAAC,KAAK,EAAE,CAAC;oBACV,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC;wBACxC,WAAW;wBACX,OAAO,EAAE,WAAW,CAAC,OAAO;qBAC7B,CAAC,CAAC;oBACH,cAAc,CAAC,IAAI,EAAE,CAAC;oBAEtB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC7B,SAAS,CAAC,uBAAuB,CAAC,CAAC;wBACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;oBAE/D,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAED,4BAA4B;oBAC5B,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC9C,UAAU,CACR,iBAAiB,kBAAkB,CAAC,KAAK,KAAK;4BAC5C,uCAAuC,CAC1C,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAED,oEAAoE;oBACpE,IACE,kBAAkB,CAAC,KAAK,KAAK,eAAe,CAAC,QAAQ;wBACrD,CAAC,OAAO,EAAE,EAAE,EACZ,CAAC;wBACD,UAAU,CACR,8DAA8D;4BAC5D,yDAAyD;4BACzD,8CAA8C,CACjD,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAED,YAAY,GAAG,kBAAkB,CAAC,EAAE,CAAC;oBACrC,cAAc,GAAG,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,IAAI,WAAW,CAAC;YAChB,IAAI,aAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,WAAW,GAAG,MAAM,yBAAyB,CAAC,YAAY,CAAC,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,CACR,wCAAwC,YAAY,KAAK;oBACvD,sEAAsE;oBACtE,6CAA6C,CAChD,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC;gBACH,aAAa,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,CACR,oCAAoC,YAAY,KAAK;oBACnD,sEAAsE;oBACtE,6CAA6C,CAChD,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,aAAa;YACb,MAAM,OAAO,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC5D,MAAM,aAAa,GAAkB;gBACnC,EAAE,EAAE,YAAY;gBAChB,WAAW;gBACX,WAAW;gBACX,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,aAAa;aACd,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7D,UAAU,CAAC,mCAAmC,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,eAAe;YACf,IAAI,IAAY,CAAC;YACjB,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,sCAAsC;gBACtC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;oBAChC,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,0BAA0B;oBACnC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBACxC,KAAK,EAAE,EAAE,CAAC,EAAE;wBACZ,KAAK,EAAE,EAAE,CAAC,EAAE;qBACb,CAAC,CAAC;iBACJ,CAAC,CAAC;gBAEH,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAED,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC;YACxB,CAAC;YAED,uEAAuE;YACvE,IAAI,cAAc,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC;gBACnC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC;oBAChC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EACL,mGAAmG;oBACrG,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,SAAS,CAAC,6CAA6C,CAAC,CAAC;oBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,MAAM,OAAO,GAAG,IAAI,CAClB,MAAM,EAAE,EACR,gBAAgB,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAC7C,CAAC;YACF,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,OAAO,EAAE,EAAE,IAAI,KAAK,CAAC;YACpC,SAAS,CACP,MAAM;gBACJ,CAAC,CAAC,oBAAoB,IAAI,KAAK;gBAC/B,CAAC,CAAC,8BAA8B,IAAI,KAAK,CAC5C,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,oBAAoB;YACpB,MAAM,OAAO,GAAG;gBACd,IAAI;gBACJ,OAAO;gBACP,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,0BAA0B;gBAC1B,IAAI;gBACJ,8BAA8B;gBAC9B,IAAI;gBACJ,gBAAgB;gBAChB,IAAI;gBACJ,QAAQ,IAAI,EAAE;aACf,CAAC;YAEF,kDAAkD;YAClD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,YAAY,GAAG,GAAG,YAAY,WAAW,CAAC;gBAChD,iEAAiE;gBACjE,2EAA2E;gBAC3E,MAAM,SAAS,GAAG,+FAA+F,YAAY,eAAe,CAAC;gBAC7I,MAAM,WAAW,GAAG,+BAA+B,YAAY,OAAO,CAAC;gBAEvE,IAAI,cAAc,EAAE,CAAC;oBACnB,+DAA+D;oBAC/D,OAAO,CAAC,IAAI,CACV,GAAG,SAAS,qBAAqB,YAAY,IAAI,YAAY,OAAO,WAAW,EAAE,CAClF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,oFAAoF;oBACpF,OAAO,CAAC,IAAI,CACV,mBAAmB,YAAY,uBAAuB;wBACpD,IAAI,SAAS,qBAAqB,YAAY,IAAI,YAAY,OAAO,WAAW,GAAG,CACtF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAE/D,mCAAmC;YACnC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC9B,IAAI,CAAC;oBACH,UAAU,CAAC,OAAO,CAAC,CAAC;gBACtB,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC7B,IAAI,CAAC;oBACH,UAAU,CAAC,OAAO,CAAC,CAAC;gBACtB,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;gBACD,UAAU,CAAC,eAAe,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,sBAAuB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/cli/commands/ssh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;SACtB,WAAW,CAAC,oCAAoC,CAAC;SACjD,QAAQ,CACP,MAAM,EACN,kEAAkE,CACnE;SACA,MAAM,CAAC,MAAM,EAAE,kDAAkD,CAAC;SAClE,WAAW,CACV,OAAO,EACP;;;;;;;;CAQL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,EAAW,EAAE,OAA0B,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,EAAE,EAAE,IAAI,KAAK,CAAC;YAEpC,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC;gBAClC,EAAE;gBACF,cAAc,EAAE,CAAC,MAAM;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC;YAElE,uEAAuE;YACvE,IAAI,cAAc,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC;oBAChC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EACL,mGAAmG;oBACrG,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,SAAS,CAAC,6CAA6C,CAAC,CAAC;oBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,SAAS,CACP,MAAM;gBACJ,CAAC,CAAC,oBAAoB,IAAI,KAAK;gBAC/B,CAAC,CAAC,8BAA8B,IAAI,KAAK,CAC5C,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,+CAA+C;YAC/C,IAAI,OAA2B,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,YAAY,GAAG,GAAG,YAAY,WAAW,CAAC;gBAChD,iEAAiE;gBACjE,2EAA2E;gBAC3E,MAAM,SAAS,GAAG,+FAA+F,YAAY,eAAe,CAAC;gBAC7I,MAAM,WAAW,GAAG,+BAA+B,YAAY,OAAO,CAAC;gBAEvE,IAAI,cAAc,EAAE,CAAC;oBACnB,+DAA+D;oBAC/D,OAAO,GAAG,GAAG,SAAS,qBAAqB,YAAY,IAAI,YAAY,OAAO,WAAW,EAAE,CAAC;gBAC9F,CAAC;qBAAM,CAAC;oBACN,oFAAoF;oBACpF,OAAO;wBACL,mBAAmB,YAAY,uBAAuB;4BACtD,IAAI,SAAS,qBAAqB,YAAY,IAAI,YAAY,OAAO,WAAW,GAAG,CAAC;gBACxF,CAAC;YACH,CAAC;YAED,QAAQ,CAAC;gBACP,YAAY;gBACZ,IAAI;gBACJ,aAAa;gBACb,OAAO;gBACP,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,sBAAuB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -6,7 +6,7 @@ import { isNonInteractive, getEnvOptional, } from '../services/non-interactive.j
6
6
  import { DeploymentState, isTerminalState, } from '../../shared/types.js';
7
7
  import packageJson from '../../../package.json' with { type: 'json' };
8
8
  // Wrap long lines to terminal width, preserving a prefix on continuation lines
9
- const wrapLine = (line, prefix) => {
9
+ export const wrapLine = (line, prefix) => {
10
10
  const maxWidth = process.stdout.columns || 80;
11
11
  const available = maxWidth - prefix.length;
12
12
  if (line.length <= available)
@@ -26,7 +26,7 @@ const wrapLine = (line, prefix) => {
26
26
  return lines;
27
27
  };
28
28
  // Format deployment events as human-readable log
29
- const formatEvents = (events) => {
29
+ export const formatEvents = (events) => {
30
30
  if (events.length === 0)
31
31
  return 'No events recorded';
32
32
  return events
@@ -36,8 +36,10 @@ const formatEvents = (events) => {
36
36
  if (e.metadata?.message) {
37
37
  message = `: ${e.metadata.message}`;
38
38
  }
39
- // For error events, show the error string
40
- if (e.state === 'error' && e.metadata?.error) {
39
+ // For error states (failed/errored), show the error string from metadata
40
+ if ((e.state === DeploymentState.Failed ||
41
+ e.state === DeploymentState.Errored) &&
42
+ e.metadata?.error) {
41
43
  const errorStr = typeof e.metadata.error === 'string'
42
44
  ? e.metadata.error
43
45
  : e.metadata.error?.message ||
@@ -49,20 +51,20 @@ const formatEvents = (events) => {
49
51
  .join('\n');
50
52
  };
51
53
  // Format events with error lines using box drawing
52
- const formatLogs = (events) => {
54
+ export const formatLogs = (events) => {
53
55
  const formatted = formatEvents(events);
54
56
  return formatted
55
57
  .split('\n')
56
58
  .map((line) => {
57
- // Match error lines: [HH:MM:SS] error: message
58
- const errorMatch = line.match(/^(\[\d{2}:\d{2}:\d{2}\]) error: (.*)$/);
59
+ // Match error lines: [HH:MM:SS] failed: message or [HH:MM:SS] errored: message
60
+ const errorMatch = line.match(/^(\[\d{2}:\d{2}:\d{2}\]) (failed|errored): (.*)$/);
59
61
  if (errorMatch) {
60
- const [, timestamp, message] = errorMatch;
62
+ const [, timestamp, state, message] = errorMatch;
61
63
  const prefix = ' │ ';
62
64
  // Split message on newlines, then wrap each line to terminal width
63
65
  const messageLines = message.split('\\n').filter((l) => l.trim());
64
66
  const wrappedLines = messageLines.flatMap((l) => wrapLine(l.trim(), prefix).map((wrapped) => `${prefix}${wrapped}`));
65
- return `${timestamp} error\n${wrappedLines.join('\n')}`;
67
+ return `${timestamp} ${state}\n${wrappedLines.join('\n')}`;
66
68
  }
67
69
  return line;
68
70
  })
@@ -72,16 +74,16 @@ export function createStatusCommand() {
72
74
  return new Command('status')
73
75
  .description('📊 Get deployment status')
74
76
  .argument('[id]', 'Deployment ID (optional - will prompt to select if not provided)')
75
- .option('--all', 'Show all deployments (including old terminal states)')
76
- .option('--active', 'Show only active deployments')
77
+ .option('-n, --limit <number>', 'Number of deployments to show', '20')
78
+ .option('--all', 'Show all deployments')
77
79
  .addHelpText('after', `
78
80
  Examples:
79
81
  $ anycloud status anycloud-123153255
80
82
  $ anycloud status
81
- $ anycloud status --all # include all historical deployments
82
- $ anycloud status --active # only active (provisioning, starting, running)
83
+ $ anycloud status -n 50 # select from last 50 deployments
84
+ $ anycloud status --all # select from all deployments
83
85
 
84
- By default, shows active deployments + terminal states from the last 24 hours.
86
+ By default, shows the last 20 deployments.
85
87
 
86
88
  Selection:
87
89
  anycloud-123153255 - myapp running ⚡
@@ -108,12 +110,8 @@ Output:
108
110
  try {
109
111
  let deploymentId = id;
110
112
  let selectedDeployment;
111
- // Determine filter from flags
112
- const filter = options?.all
113
- ? 'all'
114
- : options?.active
115
- ? 'active'
116
- : 'default';
113
+ // Determine limit from flags
114
+ const limit = options?.all ? 0 : parseInt(options?.limit || '20', 10);
117
115
  // Get GitHub token
118
116
  const accessToken = await getGitHubToken();
119
117
  // If no ID provided, fetch and prompt for selection
@@ -128,12 +126,12 @@ Output:
128
126
  }
129
127
  }
130
128
  else {
131
- // List deployments with filter
129
+ // List deployments
132
130
  const loadingSpinner = createSpinner('Loading deployments...').start();
133
131
  const deployments = await listDeployments({
134
132
  accessToken,
135
133
  version: packageJson.version,
136
- filter,
134
+ limit,
137
135
  });
138
136
  loadingSpinner.stop();
139
137
  if (deployments.length === 0) {
@@ -155,7 +153,7 @@ Output:
155
153
  const deployments = await listDeployments({
156
154
  accessToken,
157
155
  version: packageJson.version,
158
- filter,
156
+ limit: 0, // Fetch all to find the specific deployment
159
157
  });
160
158
  selectedDeployment = deployments.find((d) => d.id === deploymentId);
161
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
@@ -40,17 +40,17 @@ Output:
40
40
  deploymentIds = envIds.split(',').map((id) => id.trim());
41
41
  }
42
42
  else {
43
- // List all deployments (fast KV-based)
43
+ // List all deployments, only show those with active VMs
44
44
  const loadingSpinner = createSpinner('Loading deployments...').start();
45
- const deployments = await listDeployments({
45
+ const allDeployments = await listDeployments({
46
46
  accessToken,
47
47
  version: packageJson.version,
48
- filter: 'active',
48
+ limit: 0,
49
49
  });
50
+ const deployments = allDeployments.filter((d) => (d.vmCount ?? 1) > 0);
50
51
  loadingSpinner.stop();
51
52
  if (deployments.length === 0) {
52
- printInfo('No active deployments found.');
53
- printInfo('Only active deployments can be terminated. Inactive deployments are already stopped.');
53
+ printInfo('No deployments to terminate.');
54
54
  process.exit(0);
55
55
  }
56
56
  // Prompt for deployment selection (multi-select)
@@ -74,24 +74,24 @@ Output:
74
74
  deploymentIds = selection.deployments;
75
75
  }
76
76
  }
77
- // When IDs are provided directly, validate they are active
77
+ // When IDs are provided directly, validate they have active VMs
78
78
  if (ids?.length || isNonInteractive()) {
79
- const activeDeployments = await listDeployments({
79
+ const allDeployments = await listDeployments({
80
80
  accessToken,
81
81
  version: packageJson.version,
82
- filter: 'active',
82
+ limit: 0,
83
83
  });
84
- const activeIds = new Set(activeDeployments.map((d) => d.id));
85
- // Filter out inactive deployments and warn the user
86
- const inactiveIds = deploymentIds.filter((id) => !activeIds.has(id));
87
- if (inactiveIds.length > 0) {
88
- for (const id of inactiveIds) {
89
- printError(`Deployment ${id} is inactive and cannot be terminated.`);
84
+ const terminatableIds = new Set(allDeployments.filter((d) => (d.vmCount ?? 1) > 0).map((d) => d.id));
85
+ // Filter out deployments with no VMs and warn the user
86
+ const noVmIds = deploymentIds.filter((id) => !terminatableIds.has(id));
87
+ if (noVmIds.length > 0) {
88
+ for (const id of noVmIds) {
89
+ printError(`Deployment ${id} has no active VMs.`);
90
90
  }
91
91
  }
92
- deploymentIds = deploymentIds.filter((id) => activeIds.has(id));
92
+ deploymentIds = deploymentIds.filter((id) => terminatableIds.has(id));
93
93
  if (deploymentIds.length === 0) {
94
- printInfo('No active deployments to terminate.');
94
+ printInfo('No deployments to terminate.');
95
95
  process.exit(0);
96
96
  }
97
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../src/cli/commands/terminate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../src/cli/commands/terminate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,UAAU,sBAAsB;IACpC,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;SAC5B,WAAW,CAAC,sCAAsC,CAAC;SACnD,QAAQ,CACP,UAAU,EACV,mEAAmE,CACpE;SACA,WAAW,CACV,OAAO,EACP;;;;;;;;;;;CAWL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,GAAc,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,IAAI,aAAa,GAAa,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAErD,mBAAmB;YACnB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAE3C,qDAAqD;YACrD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,yDAAyD;gBACzD,IAAI,gBAAgB,EAAE,EAAE,CAAC;oBACvB,MAAM,MAAM,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;oBACxD,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,UAAU,CACR,iDAAiD;4BAC/C,gHAAgH,CACnH,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3D,CAAC;qBAAM,CAAC;oBACN,wDAAwD;oBACxD,MAAM,cAAc,GAAG,aAAa,CAClC,wBAAwB,CACzB,CAAC,KAAK,EAAE,CAAC;oBACV,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC;wBAC3C,WAAW;wBACX,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,KAAK,EAAE,CAAC;qBACT,CAAC,CAAC;oBACH,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAC5B,CAAC;oBACF,cAAc,CAAC,IAAI,EAAE,CAAC;oBAEtB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC7B,SAAS,CAAC,8BAA8B,CAAC,CAAC;wBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAED,iDAAiD;oBACjD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;wBAC9B,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,kCAAkC;wBAC3C,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;4BACtC,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;4BAClD,OAAO;gCACL,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,KAAK,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE;gCACxD,KAAK,EAAE,UAAU,CAAC,EAAE;6BACrB,CAAC;wBACJ,CAAC,CAAC;wBACF,IAAI,EAAE,qCAAqC;qBAC5C,CAAC,CAAC;oBAEH,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjE,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;wBAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAED,aAAa,GAAG,SAAS,CAAC,WAAW,CAAC;gBACxC,CAAC;YACH,CAAC;YAED,gEAAgE;YAChE,IAAI,GAAG,EAAE,MAAM,IAAI,gBAAgB,EAAE,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC;oBAC3C,WAAW;oBACX,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACpE,CAAC;gBAEF,uDAAuD;gBACvD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CACjC,CAAC;gBACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;wBACzB,UAAU,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBACD,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEtE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,SAAS,CAAC,8BAA8B,CAAC,CAAC;oBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBACzC,SAAS,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;gBAE1C,uCAAuC;gBACvC,IAAI,WAAW,CAAC;gBAChB,IAAI,CAAC;oBACH,WAAW,GAAG,MAAM,yBAAyB,CAAC,YAAY,CAAC,CAAC;gBAC9D,CAAC;gBAAC,MAAM,CAAC;oBACP,UAAU,CACR,wCAAwC,YAAY,KAAK;wBACvD,sEAAsE;wBACtE,6CAA6C,CAChD,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,MAAM,OAAO,GAAG,aAAa,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;gBACnE,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;wBACzC,EAAE,EAAE,YAAY;wBAChB,WAAW;wBACX,WAAW;wBACX,OAAO,EAAE,WAAW,CAAC,OAAO;qBAC7B,CAAC,CAAC;oBACH,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;oBAEvD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACrB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;oBACpD,UAAU,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CACR,mCAAoC,KAAe,CAAC,OAAO,EAAE,CAC9D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/cli/index.js CHANGED
@@ -7,6 +7,7 @@ import { createTerminateCommand } from './commands/terminate.js';
7
7
  import { createListCommand } from './commands/list.js';
8
8
  import { createUpdateCommand } from './commands/update.js';
9
9
  import { createSshCommand } from './commands/ssh.js';
10
+ import { createLogsCommand } from './commands/logs.js';
10
11
  import { createCredentialsCommand } from './commands/credentials/index.js';
11
12
  import { createConfigCommand } from './commands/config/index.js';
12
13
  import { createLoginCommand } from './commands/login.js';
@@ -57,6 +58,7 @@ program.addCommand(createListCommand());
57
58
  program.addCommand(createTerminateCommand());
58
59
  program.addCommand(createUpdateCommand());
59
60
  program.addCommand(createSshCommand());
61
+ program.addCommand(createLogsCommand());
60
62
  program.addCommand(createCredentialsCommand());
61
63
  program.addCommand(createConfigCommand());
62
64
  program.addCommand(_createDaemonCommand()); // Internal use only - hidden from help
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import yaml from 'js-yaml';
4
4
  import { CONFIG_FILE_YAML, CONFIG_FILE_JSON } from '../config.js';
5
5
  import { exitWithError, printInfo } from '../utils/output.js';
6
6
  import { loadCredentials, getCredentialsByName } from './credentials.js';
7
- import { AWSCreds, GCPCreds, AzureCreds } from '../../shared/types.js';
7
+ import { extractCredentials } from '../../shared/cloud-config.js';
8
8
  /** Track which config file format is in use */
9
9
  let activeConfigFile = null;
10
10
  /**
@@ -90,14 +90,14 @@ export async function resolveDeploymentProfile(profileName) {
90
90
  const credentialsMap = await loadCredentials();
91
91
  const credentials = getCredentialsByName(credentialsMap, entry.credentialsName);
92
92
  // Build CloudConfig by merging profile and credentials
93
- return buildCloudConfig(entry, credentials);
93
+ return buildCloudConfigFromProfile(entry, credentials);
94
94
  }
95
95
  /**
96
96
  * Merge profile entry with credentials to create CloudConfig
97
97
  * Uses spread operator to automatically include all profile fields,
98
98
  * preventing bugs where new fields are forgotten
99
99
  */
100
- function buildCloudConfig(profile, credentials) {
100
+ function buildCloudConfigFromProfile(profile, credentials) {
101
101
  // Destructure to exclude credentialsName (not needed in CloudConfig)
102
102
  const { credentialsName: _, ...profileFields } = profile;
103
103
  return {
@@ -106,9 +106,6 @@ function buildCloudConfig(profile, credentials) {
106
106
  ...profileFields, // Spread all profile fields (region, vmType, minVmCount, maxVmCount, spot, bucketName, etc.)
107
107
  };
108
108
  }
109
- /**
110
- * Extract credential fields based on cloud provider
111
- */
112
109
  /**
113
110
  * Convert deployment profiles to table entries for display
114
111
  * Centralizes the mapping to avoid duplication and missing fields
@@ -126,32 +123,4 @@ export function profilesToTableEntries(profiles) {
126
123
  availabilityZone: entry.availabilityZone,
127
124
  }));
128
125
  }
129
- /**
130
- * Extract credential fields based on cloud provider
131
- */
132
- function extractCredentials(credentials) {
133
- switch (credentials.cloudProvider) {
134
- case 'AWS': {
135
- const creds = new AWSCreds();
136
- creds.accessKeyId = credentials.accessKeyId;
137
- creds.secretAccessKey = credentials.secretAccessKey;
138
- return creds;
139
- }
140
- case 'GCP': {
141
- const creds = new GCPCreds();
142
- creds.projectId = credentials.projectId;
143
- creds.privateKey = credentials.privateKey;
144
- creds.clientEmail = credentials.clientEmail;
145
- return creds;
146
- }
147
- case 'Azure': {
148
- const creds = new AzureCreds();
149
- creds.applicationId = credentials.applicationId;
150
- creds.secret = credentials.secret;
151
- creds.directoryId = credentials.directoryId;
152
- creds.subscriptionId = credentials.subscriptionId;
153
- return creds;
154
- }
155
- }
156
- }
157
126
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/services/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/services/config.ts"],"names":[],"mappings":"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"}