anycloud 0.0.29 → 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.
Binary file
Binary file
Binary file
Binary file
@@ -9,22 +9,18 @@ export function createListCommand() {
9
9
  return new Command('list')
10
10
  .alias('ls')
11
11
  .description('📋 List all deployments')
12
- .option('--all', 'Show all deployments (including old terminal states)')
13
- .option('--active', 'Show only active deployments')
12
+ .option('-n, --limit <number>', 'Number of deployments to show', '20')
13
+ .option('--all', 'Show all deployments')
14
14
  .addHelpText('after', `
15
15
  Examples:
16
- $ anycloud list
17
- $ anycloud list --all # include all historical deployments
18
- $ anycloud list --active # only active (provisioning, starting, running)
16
+ $ anycloud list # last 20 deployments (default)
17
+ $ anycloud list -n 50 # last 50 deployments
18
+ $ anycloud list --all # all deployments
19
19
  `)
20
20
  .action(async (options) => {
21
21
  try {
22
- // Determine filter from flags
23
- const filter = options?.all
24
- ? 'all'
25
- : options?.active
26
- ? 'active'
27
- : 'default';
22
+ // Determine limit from flags
23
+ const limit = options?.all ? 0 : parseInt(options?.limit || '20', 10);
28
24
  // Get GitHub token
29
25
  const accessToken = await getGitHubToken();
30
26
  // Fetch deployments
@@ -32,7 +28,7 @@ Examples:
32
28
  const deployments = await listDeployments({
33
29
  accessToken,
34
30
  version: packageJson.version,
35
- filter,
31
+ limit,
36
32
  });
37
33
  spinner.stop();
38
34
  if (deployments.length === 0) {
@@ -49,11 +45,12 @@ Examples:
49
45
  vmType: 24,
50
46
  bucket: 16,
51
47
  age: 6,
48
+ vm: 4,
52
49
  spot: 3,
53
50
  };
54
51
  // Print header
55
52
  console.log('');
56
- console.log(chalk.cyan(`${'ID'.padEnd(cols.id)}${'IMAGE'.padEnd(cols.image)}${'CLOUD'.padEnd(cols.cloud)}${'REGION'.padEnd(cols.region)}${'ZONE'.padEnd(cols.zone)}${'VM TYPE'.padEnd(cols.vmType)}${'BUCKET'.padEnd(cols.bucket)}${'AGE'.padEnd(cols.age)}SPOT STATE`));
53
+ console.log(chalk.cyan(`${'ID'.padEnd(cols.id)}${'IMAGE'.padEnd(cols.image)}${'CLOUD'.padEnd(cols.cloud)}${'REGION'.padEnd(cols.region)}${'ZONE'.padEnd(cols.zone)}${'VM TYPE'.padEnd(cols.vmType)}${'BUCKET'.padEnd(cols.bucket)}${'AGE'.padEnd(cols.age)}${'VM'.padEnd(cols.vm)}SPOT STATE`));
57
54
  // Print rows
58
55
  for (const d of deployments) {
59
56
  const emoji = stateEmoji[d.state] || '❓';
@@ -76,8 +73,9 @@ Examples:
76
73
  const vmType = (d.vmType || '-').padEnd(cols.vmType);
77
74
  const bucket = (d.bucketName || '-').padEnd(cols.bucket);
78
75
  const ageStr = age.padEnd(cols.age);
76
+ const vmCount = String(d.vmCount ?? '?').padEnd(cols.vm);
79
77
  const spot = d.spot ? '✓ ' : ' ';
80
- console.log(`${id}${img}${cloud}${region}${zone}${vmType}${bucket}${ageStr}${spot}${d.state} ${emoji}`);
78
+ console.log(`${id}${img}${cloud}${region}${zone}${vmType}${bucket}${ageStr}${vmCount}${spot}${d.state} ${emoji}`);
81
79
  }
82
80
  console.log('');
83
81
  printInfo(`${deployments.length} deployment(s)`);
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,OAAO,EAAE,sDAAsD,CAAC;SACvE,MAAM,CAAC,UAAU,EAAE,8BAA8B,CAAC;SAClD,WAAW,CACV,OAAO,EACP;;;;;CAKL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,OAA6C,EAAE,EAAE;QAC9D,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,MAAM,GAAiC,OAAO,EAAE,GAAG;gBACvD,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,OAAO,EAAE,MAAM;oBACf,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,SAAS,CAAC;YAEhB,mBAAmB;YACnB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAE3C,oBAAoB;YACpB,MAAM,OAAO,GAAG,aAAa,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;YAChE,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC;gBACxC,WAAW;gBACX,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,MAAM;aACP,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,SAAS,CAAC,uBAAuB,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,gBAAgB;YAChB,MAAM,IAAI,GAAG;gBACX,EAAE,EAAE,EAAE;gBACN,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,CAAC;aACR,CAAC;YAEF,eAAe;YACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAChP,CACF,CAAC;YAEF,aAAa;YACb,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;gBAEzC,6CAA6C;gBAC7C,IAAI,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;gBACxB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;gBACtD,CAAC;gBACD,uBAAuB;gBACvB,IAAI,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBACtC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC5D,CAAC;gBAED,gBAAgB;gBAChB,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAEnC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,gBAAgB,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAExC,OAAO,CAAC,GAAG,CACT,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,EAAE,CAC3F,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,SAAS,CAAC,GAAG,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,+BAAgC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { Command } from 'commander';
2
+ import { resolveSSHContext, spawnSSH } from '../services/ssh.js';
3
+ import { printInfo, printError } from '../utils/output.js';
4
+ export function createLogsCommand() {
5
+ return new Command('logs')
6
+ .description('📜 View container logs from a deployment')
7
+ .argument('[id]', 'Deployment ID (optional - will prompt to select if not provided)')
8
+ .option('-f, --follow', 'Follow log output')
9
+ .addHelpText('after', `
10
+ Examples:
11
+ $ anycloud logs
12
+ $ anycloud logs job-abc123
13
+ $ anycloud logs job-abc123 -f # Follow/tail logs in real-time
14
+ `)
15
+ .action(async (id, options) => {
16
+ try {
17
+ const ctx = await resolveSSHContext({ id });
18
+ if (!ctx) {
19
+ process.exit(0);
20
+ }
21
+ printInfo(`Fetching logs from ${ctx.vmIp}...`);
22
+ console.log('');
23
+ const dockerCmd = options?.follow
24
+ ? `docker logs -f ${ctx.deploymentId}`
25
+ : `docker logs ${ctx.deploymentId}`;
26
+ spawnSSH({
27
+ deploymentId: ctx.deploymentId,
28
+ vmIp: ctx.vmIp,
29
+ sshPrivateKey: ctx.sshPrivateKey,
30
+ command: dockerCmd,
31
+ });
32
+ }
33
+ catch (error) {
34
+ printError(`Failed to fetch logs: ${error.message}`);
35
+ process.exit(1);
36
+ }
37
+ });
38
+ }
39
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,0CAA0C,CAAC;SACvD,QAAQ,CACP,MAAM,EACN,kEAAkE,CACnE;SACA,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC;SAC3C,WAAW,CACV,OAAO,EACP;;;;;CAKL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,EAAW,EAAE,OAA8B,EAAE,EAAE;QAC5D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,SAAS,CAAC,sBAAsB,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,MAAM,SAAS,GAAG,OAAO,EAAE,MAAM;gBAC/B,CAAC,CAAC,kBAAkB,GAAG,CAAC,YAAY,EAAE;gBACtC,CAAC,CAAC,eAAe,GAAG,CAAC,YAAY,EAAE,CAAC;YAEtC,QAAQ,CAAC;gBACP,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,yBAA0B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -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":"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"}
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"}
@@ -74,16 +74,16 @@ export function createStatusCommand() {
74
74
  return new Command('status')
75
75
  .description('📊 Get deployment status')
76
76
  .argument('[id]', 'Deployment ID (optional - will prompt to select if not provided)')
77
- .option('--all', 'Show all deployments (including old terminal states)')
78
- .option('--active', 'Show only active deployments')
77
+ .option('-n, --limit <number>', 'Number of deployments to show', '20')
78
+ .option('--all', 'Show all deployments')
79
79
  .addHelpText('after', `
80
80
  Examples:
81
81
  $ anycloud status anycloud-123153255
82
82
  $ anycloud status
83
- $ anycloud status --all # include all historical deployments
84
- $ 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
85
85
 
86
- By default, shows active deployments + terminal states from the last 24 hours.
86
+ By default, shows the last 20 deployments.
87
87
 
88
88
  Selection:
89
89
  anycloud-123153255 - myapp running ⚡
@@ -110,12 +110,8 @@ Output:
110
110
  try {
111
111
  let deploymentId = id;
112
112
  let selectedDeployment;
113
- // Determine filter from flags
114
- const filter = options?.all
115
- ? 'all'
116
- : options?.active
117
- ? 'active'
118
- : 'default';
113
+ // Determine limit from flags
114
+ const limit = options?.all ? 0 : parseInt(options?.limit || '20', 10);
119
115
  // Get GitHub token
120
116
  const accessToken = await getGitHubToken();
121
117
  // If no ID provided, fetch and prompt for selection
@@ -130,12 +126,12 @@ Output:
130
126
  }
131
127
  }
132
128
  else {
133
- // List deployments with filter
129
+ // List deployments
134
130
  const loadingSpinner = createSpinner('Loading deployments...').start();
135
131
  const deployments = await listDeployments({
136
132
  accessToken,
137
133
  version: packageJson.version,
138
- filter,
134
+ limit,
139
135
  });
140
136
  loadingSpinner.stop();
141
137
  if (deployments.length === 0) {
@@ -157,7 +153,7 @@ Output:
157
153
  const deployments = await listDeployments({
158
154
  accessToken,
159
155
  version: packageJson.version,
160
- filter,
156
+ limit: 0, // Fetch all to find the specific deployment
161
157
  });
162
158
  selectedDeployment = deployments.find((d) => d.id === deploymentId);
163
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":"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"}
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":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,0BAA0B;AAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,cAAc,CAAC;KAC3B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,aAAa,CAAC;IACb,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,cAAc;QACd,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,WAAW;QACX,MAAM,WAAW,GAAG,MAAM;aACvB,eAAe,CAAC,GAAG,CAAC;aACpB,MAAM,CACL,CAAC,MAAe,EAAE,EAAE,CAClB,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CACzD,CAAC;QACJ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAe,EAAE,EAAE;gBACnD,oCAAoC;gBACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB;qBACpC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAChB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CACrD;qBACA,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;gBAClC,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC;AAEL,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,mEAAmE;AACnE,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAC/C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,uCAAuC;AAEnF,+BAA+B;AAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,197 @@
1
+ import { spawn } from 'child_process';
2
+ import { writeFileSync, unlinkSync } from 'fs';
3
+ import { tmpdir } from 'os';
4
+ import { join } from 'path';
5
+ import prompts from 'prompts';
6
+ import { getGitHubToken } from './auth.js';
7
+ import { getDeploymentStatus, listDeployments, loadSshKey, loadDeploymentCredentials, } from './api-client.js';
8
+ import { printInfo, printError, createSpinner, selectDeployment, } from '../utils/output.js';
9
+ import { isNonInteractive, getEnvOptional } from './non-interactive.js';
10
+ import { DeploymentState, isExitedState, } from '../../shared/types.js';
11
+ import packageJson from '../../../package.json' with { type: 'json' };
12
+ /**
13
+ * Resolves deployment ID, credentials, SSH key, and VM IP for SSH-based commands.
14
+ * Returns null if user cancels selection.
15
+ */
16
+ export async function resolveSSHContext(options = {}) {
17
+ let deploymentId = options.id;
18
+ let isCompletedJob = false;
19
+ // Get GitHub token
20
+ const accessToken = await getGitHubToken();
21
+ // If no ID provided, fetch and prompt for selection
22
+ if (!deploymentId) {
23
+ if (isNonInteractive()) {
24
+ deploymentId = getEnvOptional('ANYCLOUD_DEPLOYMENT_ID');
25
+ if (!deploymentId) {
26
+ printError('Non-interactive mode: Deployment ID required.\n' +
27
+ ' Provide ID as argument or set ANYCLOUD_DEPLOYMENT_ID environment variable.');
28
+ process.exit(1);
29
+ }
30
+ }
31
+ else {
32
+ const loadingSpinner = createSpinner('Loading deployments...').start();
33
+ const deployments = await listDeployments({
34
+ accessToken,
35
+ version: packageJson.version,
36
+ });
37
+ loadingSpinner.stop();
38
+ if (deployments.length === 0) {
39
+ printInfo('No deployments found.');
40
+ process.exit(0);
41
+ }
42
+ console.log('');
43
+ const selectedDeployment = await selectDeployment(deployments.filter((d) => (d.vmCount ?? 1) > 0));
44
+ if (!selectedDeployment) {
45
+ return null;
46
+ }
47
+ // Block container SSH during starting if requested
48
+ if (options.filterStarting &&
49
+ selectedDeployment.state === DeploymentState.Starting) {
50
+ printError(`Deployment is still starting (container may not be ready).\n` +
51
+ ' Use "anycloud ssh --vm" to SSH directly to the VM.\n' +
52
+ ' Or wait for the deployment to be running.');
53
+ process.exit(1);
54
+ }
55
+ deploymentId = selectedDeployment.id;
56
+ isCompletedJob = isExitedState(selectedDeployment.state);
57
+ }
58
+ }
59
+ // Load credentials and SSH key for this deployment
60
+ let credentials;
61
+ let sshPrivateKey;
62
+ try {
63
+ credentials = await loadDeploymentCredentials(deploymentId);
64
+ }
65
+ catch {
66
+ printError(`Credentials not found for deployment ${deploymentId}.\n` +
67
+ ' This deployment may have been created from a different machine.\n' +
68
+ ' Email support@anycloud.sh to reclaim it.');
69
+ process.exit(1);
70
+ }
71
+ try {
72
+ sshPrivateKey = await loadSshKey(deploymentId);
73
+ }
74
+ catch {
75
+ printError(`SSH key not found for deployment ${deploymentId}.\n` +
76
+ ' This deployment may have been created from a different machine.\n' +
77
+ ' Email support@anycloud.sh to reclaim it.');
78
+ process.exit(1);
79
+ }
80
+ // Get VM IPs
81
+ const spinner = createSpinner('Getting VM info...').start();
82
+ const statusRequest = {
83
+ id: deploymentId,
84
+ credentials,
85
+ accessToken,
86
+ version: packageJson.version,
87
+ sshPrivateKey,
88
+ };
89
+ const response = await getDeploymentStatus(statusRequest);
90
+ spinner.stop();
91
+ if (!response.vmStatuses || response.vmStatuses.length === 0) {
92
+ printError('No VMs found for this deployment.');
93
+ process.exit(1);
94
+ }
95
+ // Select VM IP
96
+ let vmIp;
97
+ if (response.vmStatuses.length === 1) {
98
+ vmIp = response.vmStatuses[0].ip;
99
+ }
100
+ else {
101
+ // Multiple VMs - prompt for selection
102
+ const vmSelection = await prompts({
103
+ type: 'select',
104
+ name: 'ip',
105
+ message: 'Select VM to connect to:',
106
+ choices: response.vmStatuses.map((vm) => ({
107
+ title: vm.ip,
108
+ value: vm.ip,
109
+ })),
110
+ });
111
+ if (!vmSelection.ip) {
112
+ return null;
113
+ }
114
+ vmIp = vmSelection.ip;
115
+ }
116
+ return {
117
+ deploymentId,
118
+ vmIp,
119
+ sshPrivateKey,
120
+ isCompletedJob,
121
+ response,
122
+ };
123
+ }
124
+ /**
125
+ * Spawns an SSH process to the given VM.
126
+ * Handles key file creation/cleanup and process lifecycle.
127
+ */
128
+ export function spawnSSH(options) {
129
+ const { deploymentId, vmIp, sshPrivateKey, command, interactive } = options;
130
+ // Write SSH key to temp file
131
+ const keyFile = join(tmpdir(), `anycloud-ssh-${deploymentId}-${Date.now()}`);
132
+ writeFileSync(keyFile, sshPrivateKey, { mode: 0o600 });
133
+ // Build SSH args
134
+ const sshArgs = [
135
+ '-i',
136
+ keyFile,
137
+ '-p',
138
+ '22',
139
+ '-o',
140
+ 'StrictHostKeyChecking=no',
141
+ '-o',
142
+ 'UserKnownHostsFile=/dev/null',
143
+ '-o',
144
+ 'LogLevel=ERROR',
145
+ ];
146
+ if (interactive) {
147
+ sshArgs.push('-t');
148
+ }
149
+ sshArgs.push(`root@${vmIp}`);
150
+ if (command) {
151
+ sshArgs.push(command);
152
+ }
153
+ const sshProcess = spawn('ssh', sshArgs, { stdio: 'inherit' });
154
+ // Clean up key file when SSH exits
155
+ sshProcess.on('close', (code) => {
156
+ try {
157
+ unlinkSync(keyFile);
158
+ }
159
+ catch {
160
+ // Ignore cleanup errors
161
+ }
162
+ if (code !== 0) {
163
+ console.log('');
164
+ const exitCode = code ?? 1;
165
+ if (exitCode === 255) {
166
+ printError(`SSH connection failed (exit code ${exitCode}).\n` +
167
+ ` The VM at ${vmIp} may not be reachable.\n` +
168
+ ' Possible causes:\n' +
169
+ ' - VM is still starting up\n' +
170
+ ' - VM has been terminated\n' +
171
+ ' - Network/firewall issue\n' +
172
+ ' Run "anycloud status" to check VM state.');
173
+ }
174
+ else if (exitCode === 1) {
175
+ printError(`SSH session ended with an error (exit code ${exitCode}).\n` +
176
+ ' The container may have exited or the command failed.\n' +
177
+ ' Try "anycloud ssh --vm" to connect directly to the VM.');
178
+ }
179
+ else {
180
+ printError(`SSH exited with code ${exitCode}.`);
181
+ }
182
+ }
183
+ process.exit(code ?? 0);
184
+ });
185
+ sshProcess.on('error', (err) => {
186
+ try {
187
+ unlinkSync(keyFile);
188
+ }
189
+ catch {
190
+ // Ignore cleanup errors
191
+ }
192
+ printError(`SSH failed: ${err.message}`);
193
+ process.exit(1);
194
+ });
195
+ return sshProcess;
196
+ }
197
+ //# sourceMappingURL=ssh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/cli/services/ssh.ts"],"names":[],"mappings":"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"}
@@ -88,21 +88,10 @@ export const TERMINAL_STATES = [
88
88
  export function isTerminalState(state) {
89
89
  return TERMINAL_STATES.includes(state);
90
90
  }
91
- /** Deployment is active (not yet in terminal state) */
92
- export function isActiveState(state) {
93
- return ACTIVE_STATES.includes(state);
94
- }
95
91
  /** Container ran and exited (for SSH snapshot access) */
96
92
  export function isExitedState(state) {
97
93
  return EXITED_STATES.includes(state);
98
94
  }
99
- /** VM is accessible (not provisioning, failed, or terminated) */
100
- export function isVmAccessible(state) {
101
- return (state !== DeploymentState.Provisioning &&
102
- state !== DeploymentState.Failed &&
103
- state !== DeploymentState.Terminating &&
104
- state !== DeploymentState.Terminated);
105
- }
106
95
  // Credential classes
107
96
  export class AWSCreds {
108
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,39 @@ export function formatMs(ms) {
15
15
  }
16
16
  /** Helper to add a timeout to a promise */
17
17
  export async function withTimeout(promise, timeoutMs, operationName) {
18
- const timeout = new Promise((_, reject) => setTimeout(() => reject(new Error(`${operationName} timed out after ${formatMs(timeoutMs)}`)), timeoutMs));
19
- return Promise.race([promise, timeout]);
18
+ let timeoutId;
19
+ const timeout = new Promise((_, reject) => {
20
+ timeoutId = setTimeout(() => reject(new Error(`${operationName} timed out after ${formatMs(timeoutMs)}`)), timeoutMs);
21
+ });
22
+ try {
23
+ return await Promise.race([promise, timeout]);
24
+ }
25
+ finally {
26
+ clearTimeout(timeoutId);
27
+ }
20
28
  }
21
29
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
30
+ /**
31
+ * Retry an operation until it succeeds or max attempts reached.
32
+ * Retries all errors - transient ones get fixed, permanent ones fail after max attempts.
33
+ */
34
+ export async function withRetry(operation, name, options = {}) {
35
+ const { maxAttempts = 3, waitMs = 5000, onRetry } = options;
36
+ let lastError;
37
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
38
+ try {
39
+ return await operation();
40
+ }
41
+ catch (error) {
42
+ lastError = error;
43
+ if (attempt < maxAttempts) {
44
+ onRetry?.(attempt, maxAttempts, error);
45
+ await sleep(waitMs);
46
+ }
47
+ }
48
+ }
49
+ throw lastError;
50
+ }
22
51
  /**
23
52
  * Poll until all items pass the check function.
24
53
  * @throws Error if timeout is reached before all items pass
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,2EAA2E;IAC3E,iCAAiC;IACjC,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAChD,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,QAAQ,CAAC,EAAU;IACjC,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC;IAC3B,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,UAAU,CAAC;AAC3D,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAmB,EACnB,SAAiB,EACjB,aAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/C,UAAU,CACR,GAAG,EAAE,CACH,MAAM,CACJ,IAAI,KAAK,CAAC,GAAG,aAAa,oBAAoB,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CACrE,EACH,SAAS,CACV,CACF,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAWhF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAuB;IAEvB,MAAM,EACJ,KAAK,EACL,MAAM,EACN,KAAK,EACL,UAAU,GAAG,KAAM,EACnB,SAAS,EACT,YAAY,GACb,GAAG,OAAO,CAAC;IACZ,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3C,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK;iBACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC3C,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAClB,IAAI,CAAC;oBACH,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBAC7C,CAAC;YACH,CAAC,CAAC,CACL,CAAC;YAEF,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;gBACrC,IAAI,KAAK;oBAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anycloud",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
4
4
  "description": "Deploy containerized jobs and servers to any cloud provider",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -28,6 +28,7 @@
28
28
  "deploy:staging": "yarn migrate:staging && yarn deploy:check:staging && wrangler deploy --env staging",
29
29
  "deploy:check:prod": "export $(cat .dev.vars.prod | xargs) && DEPLOY_ENV=production npx tsx scripts/pre-deploy-check.ts",
30
30
  "deploy:prod": "yarn migrate:prod && yarn deploy:check:prod && wrangler deploy --env production",
31
+ "logs:prod": "export $(cat .dev.vars.prod | xargs) && DEPLOY_ENV=production npx tsx scripts/get-deployment-logs.ts",
31
32
  "cli": "CONDUCTOR_URL=https://conductor.laplazahealth.org node ./dist/cli/index.js",
32
33
  "cli:prod": "node ./dist/cli/index.js",
33
34
  "start:conductor": "node ./dist/conductor/server.js",