@salza80/openclaw-aws 0.1.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 (140) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +414 -0
  3. package/dist/cdk/app.d.ts +3 -0
  4. package/dist/cdk/app.d.ts.map +1 -0
  5. package/dist/cdk/app.js +60 -0
  6. package/dist/cdk/app.js.map +1 -0
  7. package/dist/cdk/stack.d.ts +16 -0
  8. package/dist/cdk/stack.d.ts.map +1 -0
  9. package/dist/cdk/stack.js +151 -0
  10. package/dist/cdk/stack.js.map +1 -0
  11. package/dist/cli/commands/connect.d.ts +7 -0
  12. package/dist/cli/commands/connect.d.ts.map +1 -0
  13. package/dist/cli/commands/connect.js +99 -0
  14. package/dist/cli/commands/connect.js.map +1 -0
  15. package/dist/cli/commands/current.d.ts +4 -0
  16. package/dist/cli/commands/current.d.ts.map +1 -0
  17. package/dist/cli/commands/current.js +18 -0
  18. package/dist/cli/commands/current.js.map +1 -0
  19. package/dist/cli/commands/dashboard.d.ts +8 -0
  20. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  21. package/dist/cli/commands/dashboard.js +231 -0
  22. package/dist/cli/commands/dashboard.js.map +1 -0
  23. package/dist/cli/commands/deploy.d.ts +9 -0
  24. package/dist/cli/commands/deploy.d.ts.map +1 -0
  25. package/dist/cli/commands/deploy.js +380 -0
  26. package/dist/cli/commands/deploy.js.map +1 -0
  27. package/dist/cli/commands/destroy.d.ts +10 -0
  28. package/dist/cli/commands/destroy.d.ts.map +1 -0
  29. package/dist/cli/commands/destroy.js +359 -0
  30. package/dist/cli/commands/destroy.js.map +1 -0
  31. package/dist/cli/commands/init.d.ts +12 -0
  32. package/dist/cli/commands/init.d.ts.map +1 -0
  33. package/dist/cli/commands/init.js +258 -0
  34. package/dist/cli/commands/init.js.map +1 -0
  35. package/dist/cli/commands/list.d.ts +4 -0
  36. package/dist/cli/commands/list.d.ts.map +1 -0
  37. package/dist/cli/commands/list.js +23 -0
  38. package/dist/cli/commands/list.js.map +1 -0
  39. package/dist/cli/commands/logs.d.ts +11 -0
  40. package/dist/cli/commands/logs.d.ts.map +1 -0
  41. package/dist/cli/commands/logs.js +163 -0
  42. package/dist/cli/commands/logs.js.map +1 -0
  43. package/dist/cli/commands/outputs.d.ts +7 -0
  44. package/dist/cli/commands/outputs.d.ts.map +1 -0
  45. package/dist/cli/commands/outputs.js +69 -0
  46. package/dist/cli/commands/outputs.js.map +1 -0
  47. package/dist/cli/commands/restart.d.ts +8 -0
  48. package/dist/cli/commands/restart.d.ts.map +1 -0
  49. package/dist/cli/commands/restart.js +91 -0
  50. package/dist/cli/commands/restart.js.map +1 -0
  51. package/dist/cli/commands/start.d.ts +7 -0
  52. package/dist/cli/commands/start.d.ts.map +1 -0
  53. package/dist/cli/commands/start.js +80 -0
  54. package/dist/cli/commands/start.js.map +1 -0
  55. package/dist/cli/commands/status.d.ts +12 -0
  56. package/dist/cli/commands/status.d.ts.map +1 -0
  57. package/dist/cli/commands/status.js +244 -0
  58. package/dist/cli/commands/status.js.map +1 -0
  59. package/dist/cli/commands/stop.d.ts +8 -0
  60. package/dist/cli/commands/stop.d.ts.map +1 -0
  61. package/dist/cli/commands/stop.js +86 -0
  62. package/dist/cli/commands/stop.js.map +1 -0
  63. package/dist/cli/commands/use.d.ts +7 -0
  64. package/dist/cli/commands/use.d.ts.map +1 -0
  65. package/dist/cli/commands/use.js +26 -0
  66. package/dist/cli/commands/use.js.map +1 -0
  67. package/dist/cli/constants.d.ts +63 -0
  68. package/dist/cli/constants.d.ts.map +1 -0
  69. package/dist/cli/constants.js +37 -0
  70. package/dist/cli/constants.js.map +1 -0
  71. package/dist/cli/index.d.ts +3 -0
  72. package/dist/cli/index.d.ts.map +1 -0
  73. package/dist/cli/index.js +43 -0
  74. package/dist/cli/index.js.map +1 -0
  75. package/dist/cli/types/index.d.ts +47 -0
  76. package/dist/cli/types/index.d.ts.map +1 -0
  77. package/dist/cli/types/index.js +2 -0
  78. package/dist/cli/types/index.js.map +1 -0
  79. package/dist/cli/utils/api-keys.d.ts +6 -0
  80. package/dist/cli/utils/api-keys.d.ts.map +1 -0
  81. package/dist/cli/utils/api-keys.js +14 -0
  82. package/dist/cli/utils/api-keys.js.map +1 -0
  83. package/dist/cli/utils/aws-clients.d.ts +7 -0
  84. package/dist/cli/utils/aws-clients.d.ts.map +1 -0
  85. package/dist/cli/utils/aws-clients.js +13 -0
  86. package/dist/cli/utils/aws-clients.js.map +1 -0
  87. package/dist/cli/utils/aws-validation.d.ts +35 -0
  88. package/dist/cli/utils/aws-validation.d.ts.map +1 -0
  89. package/dist/cli/utils/aws-validation.js +266 -0
  90. package/dist/cli/utils/aws-validation.js.map +1 -0
  91. package/dist/cli/utils/aws.d.ts +17 -0
  92. package/dist/cli/utils/aws.d.ts.map +1 -0
  93. package/dist/cli/utils/aws.js +213 -0
  94. package/dist/cli/utils/aws.js.map +1 -0
  95. package/dist/cli/utils/cdk.d.ts +12 -0
  96. package/dist/cli/utils/cdk.d.ts.map +1 -0
  97. package/dist/cli/utils/cdk.js +52 -0
  98. package/dist/cli/utils/cdk.js.map +1 -0
  99. package/dist/cli/utils/cloud-init.d.ts +11 -0
  100. package/dist/cli/utils/cloud-init.d.ts.map +1 -0
  101. package/dist/cli/utils/cloud-init.js +104 -0
  102. package/dist/cli/utils/cloud-init.js.map +1 -0
  103. package/dist/cli/utils/config-store.d.ts +17 -0
  104. package/dist/cli/utils/config-store.d.ts.map +1 -0
  105. package/dist/cli/utils/config-store.js +85 -0
  106. package/dist/cli/utils/config-store.js.map +1 -0
  107. package/dist/cli/utils/config-validation.d.ts +4 -0
  108. package/dist/cli/utils/config-validation.d.ts.map +1 -0
  109. package/dist/cli/utils/config-validation.js +89 -0
  110. package/dist/cli/utils/config-validation.js.map +1 -0
  111. package/dist/cli/utils/config.d.ts +12 -0
  112. package/dist/cli/utils/config.d.ts.map +1 -0
  113. package/dist/cli/utils/config.js +80 -0
  114. package/dist/cli/utils/config.js.map +1 -0
  115. package/dist/cli/utils/context.d.ts +14 -0
  116. package/dist/cli/utils/context.d.ts.map +1 -0
  117. package/dist/cli/utils/context.js +28 -0
  118. package/dist/cli/utils/context.js.map +1 -0
  119. package/dist/cli/utils/ec2.d.ts +6 -0
  120. package/dist/cli/utils/ec2.d.ts.map +1 -0
  121. package/dist/cli/utils/ec2.js +103 -0
  122. package/dist/cli/utils/ec2.js.map +1 -0
  123. package/dist/cli/utils/errors.d.ts +23 -0
  124. package/dist/cli/utils/errors.d.ts.map +1 -0
  125. package/dist/cli/utils/errors.js +126 -0
  126. package/dist/cli/utils/errors.js.map +1 -0
  127. package/dist/cli/utils/logger.d.ts +9 -0
  128. package/dist/cli/utils/logger.d.ts.map +1 -0
  129. package/dist/cli/utils/logger.js +25 -0
  130. package/dist/cli/utils/logger.js.map +1 -0
  131. package/dist/cli/utils/suggestions.d.ts +7 -0
  132. package/dist/cli/utils/suggestions.d.ts.map +1 -0
  133. package/dist/cli/utils/suggestions.js +44 -0
  134. package/dist/cli/utils/suggestions.js.map +1 -0
  135. package/dist/cli/utils/validation.d.ts +12 -0
  136. package/dist/cli/utils/validation.d.ts.map +1 -0
  137. package/dist/cli/utils/validation.js +52 -0
  138. package/dist/cli/utils/validation.js.map +1 -0
  139. package/package.json +96 -0
  140. package/templates/openclaw.config.json.template +23 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CommandModule } from 'yargs';
2
+ export declare const listCommand: CommandModule;
3
+ export default listCommand;
4
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,eAAO,MAAM,WAAW,EAAE,aAkBzB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,23 @@
1
+ import chalk from 'chalk';
2
+ import { logger } from '../utils/logger.js';
3
+ import { listConfigNames, getCurrentName } from '../utils/config-store.js';
4
+ export const listCommand = {
5
+ command: 'list',
6
+ describe: 'List configs',
7
+ handler: async () => {
8
+ const names = listConfigNames();
9
+ if (names.length === 0) {
10
+ logger.info('No configs found');
11
+ console.log('\nRun: ' + chalk.cyan('openclaw-aws init --name <name>'));
12
+ return;
13
+ }
14
+ const current = getCurrentName();
15
+ logger.title('OpenClaw AWS - Configs');
16
+ names.forEach((name) => {
17
+ const marker = current === name ? chalk.green(' (current)') : '';
18
+ console.log(' ' + chalk.cyan(name) + marker);
19
+ });
20
+ },
21
+ };
22
+ export default listCommand;
23
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CommandModule } from 'yargs';
2
+ interface LogsArgs {
3
+ name?: string;
4
+ init?: boolean;
5
+ service?: boolean;
6
+ tail?: number;
7
+ follow?: boolean;
8
+ }
9
+ export declare const logsCommand: CommandModule<{}, LogsArgs>;
10
+ export default logsCommand;
11
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAU3C,UAAU,QAAQ;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAwFD,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,EAAE,EAAE,QAAQ,CA8FnD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,163 @@
1
+ import ora from 'ora';
2
+ import chalk from 'chalk';
3
+ import { logger } from '../utils/logger.js';
4
+ import { buildCommandContext } from '../utils/context.js';
5
+ import { resolveInstanceId, checkSSMStatus } from '../utils/aws.js';
6
+ import { handleError, AWSError } from '../utils/errors.js';
7
+ import { createSsmClient } from '../utils/aws-clients.js';
8
+ import { SendCommandCommand, GetCommandInvocationCommand } from '@aws-sdk/client-ssm';
9
+ function buildInitCommands(tail) {
10
+ const files = [
11
+ '/var/log/cloud-init-output.log',
12
+ '/var/log/cloud-init.log',
13
+ '/var/log/user-data.log',
14
+ ];
15
+ const commands = [];
16
+ for (const file of files) {
17
+ commands.push(`echo "== ${file} =="`);
18
+ commands.push(`sudo tail -n ${tail} ${file} 2>/dev/null || echo "(missing)"`);
19
+ commands.push('echo ""');
20
+ }
21
+ return commands;
22
+ }
23
+ function buildServiceCommands(tail) {
24
+ const env = 'XDG_RUNTIME_DIR=/run/user/1000 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus';
25
+ const commands = [];
26
+ commands.push('echo "== openclaw-gateway.service =="');
27
+ commands.push(`sudo -u ubuntu ${env} journalctl --user -u openclaw-gateway.service -n ${tail} --no-pager || echo "(no logs)"`);
28
+ commands.push('echo ""');
29
+ commands.push('echo "== openclaw-daemon.service =="');
30
+ commands.push(`sudo -u ubuntu ${env} journalctl --user -u openclaw-daemon.service -n ${tail} --no-pager || echo "(no logs)"`);
31
+ commands.push('echo ""');
32
+ return commands;
33
+ }
34
+ async function runSsmCommand(instanceId, region, commands, timeoutSeconds = 30) {
35
+ const client = createSsmClient(region);
36
+ try {
37
+ const send = await client.send(new SendCommandCommand({
38
+ InstanceIds: [instanceId],
39
+ DocumentName: 'AWS-RunShellScript',
40
+ Parameters: { commands },
41
+ TimeoutSeconds: timeoutSeconds,
42
+ }));
43
+ const commandId = send.Command?.CommandId;
44
+ if (!commandId) {
45
+ throw new AWSError('Failed to send SSM command', [
46
+ 'Check instance status: openclaw-aws status',
47
+ 'Try again in a few minutes',
48
+ ]);
49
+ }
50
+ const start = Date.now();
51
+ while (Date.now() - start < timeoutSeconds * 1000) {
52
+ const result = await client.send(new GetCommandInvocationCommand({
53
+ CommandId: commandId,
54
+ InstanceId: instanceId,
55
+ }));
56
+ if (result.Status && ['Success', 'Failed', 'Cancelled', 'TimedOut'].includes(result.Status)) {
57
+ return {
58
+ stdout: result.StandardOutputContent?.trim() ?? '',
59
+ stderr: result.StandardErrorContent?.trim() ?? '',
60
+ };
61
+ }
62
+ await new Promise((resolve) => setTimeout(resolve, 1000));
63
+ }
64
+ throw new AWSError('Timed out waiting for logs', [
65
+ 'Try again with a smaller --tail value',
66
+ 'Check instance health: openclaw-aws status',
67
+ ]);
68
+ }
69
+ finally {
70
+ client.destroy();
71
+ }
72
+ }
73
+ export const logsCommand = {
74
+ command: 'logs',
75
+ describe: 'Fetch instance logs (init and service)',
76
+ builder: (yargs) => {
77
+ return yargs
78
+ .option('name', {
79
+ type: 'string',
80
+ describe: 'Deployment name',
81
+ })
82
+ .option('init', {
83
+ type: 'boolean',
84
+ describe: 'Show init/cloud-init logs',
85
+ default: false,
86
+ })
87
+ .option('service', {
88
+ type: 'boolean',
89
+ describe: 'Show OpenClaw service logs',
90
+ default: false,
91
+ })
92
+ .option('tail', {
93
+ type: 'number',
94
+ describe: 'Number of lines to show',
95
+ default: 200,
96
+ })
97
+ .option('follow', {
98
+ type: 'boolean',
99
+ describe: 'Poll logs periodically (like tail -f)',
100
+ default: false,
101
+ });
102
+ },
103
+ handler: async (argv) => {
104
+ try {
105
+ const ctx = await buildCommandContext({ name: argv.name });
106
+ const config = ctx.config;
107
+ const tail = argv.tail && argv.tail > 0 ? Math.floor(argv.tail) : 200;
108
+ const showInit = argv.init || (!argv.init && !argv.service);
109
+ const showService = argv.service || (!argv.init && !argv.service);
110
+ logger.info(`Fetching logs for ${chalk.cyan(ctx.name)}`);
111
+ const spinner = ora('Finding instance...').start();
112
+ let instanceId;
113
+ try {
114
+ instanceId = await resolveInstanceId(config.stack.name, config.aws.region);
115
+ spinner.succeed(`Found instance: ${chalk.cyan(instanceId)}`);
116
+ }
117
+ catch (error) {
118
+ spinner.fail('Instance not found');
119
+ throw error;
120
+ }
121
+ spinner.start('Checking SSM connectivity...');
122
+ const isReady = await checkSSMStatus(instanceId, config.aws.region);
123
+ if (!isReady) {
124
+ spinner.fail('Instance not ready');
125
+ throw new AWSError('Instance not ready for SSM log retrieval', [
126
+ 'Run: openclaw-aws status (to check instance state)',
127
+ 'Wait a few minutes and try again',
128
+ ]);
129
+ }
130
+ spinner.succeed('Instance ready');
131
+ const commands = [
132
+ ...(showInit ? buildInitCommands(tail) : []),
133
+ ...(showService ? buildServiceCommands(tail) : []),
134
+ ];
135
+ const printOnce = async () => {
136
+ const result = await runSsmCommand(instanceId, config.aws.region, commands, 60);
137
+ if (result.stdout)
138
+ console.log(result.stdout);
139
+ if (result.stderr)
140
+ console.log(chalk.yellow(result.stderr));
141
+ };
142
+ if (!argv.follow) {
143
+ await printOnce();
144
+ return;
145
+ }
146
+ logger.info('Follow mode enabled (polling every 2s). Press Ctrl+C to stop.');
147
+ let stopped = false;
148
+ process.on('SIGINT', () => {
149
+ stopped = true;
150
+ });
151
+ while (!stopped) {
152
+ console.log('\n' + chalk.gray(`--- ${new Date().toISOString()} ---`));
153
+ await printOnce();
154
+ await new Promise((resolve) => setTimeout(resolve, 2000));
155
+ }
156
+ }
157
+ catch (error) {
158
+ handleError(error);
159
+ }
160
+ },
161
+ };
162
+ export default logsCommand;
163
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CommandModule } from 'yargs';
2
+ interface OutputsArgs {
3
+ name?: string;
4
+ }
5
+ export declare const outputsCommand: CommandModule<{}, OutputsArgs>;
6
+ export default outputsCommand;
7
+ //# sourceMappingURL=outputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputs.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/outputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAQ3C,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,EAAE,EAAE,WAAW,CAqEzD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,69 @@
1
+ import ora from 'ora';
2
+ import chalk from 'chalk';
3
+ import { logger } from '../utils/logger.js';
4
+ import { buildCommandContext } from '../utils/context.js';
5
+ import { getStackOutputs } from '../utils/aws.js';
6
+ import { handleError, withRetry } from '../utils/errors.js';
7
+ export const outputsCommand = {
8
+ command: 'outputs',
9
+ describe: 'Show CloudFormation stack outputs',
10
+ builder: (yargs) => {
11
+ return yargs.option('name', {
12
+ type: 'string',
13
+ describe: 'Deployment name',
14
+ });
15
+ },
16
+ handler: async (argv) => {
17
+ try {
18
+ const ctx = await buildCommandContext({ name: argv.name });
19
+ const config = ctx.config;
20
+ logger.title('CloudFormation Outputs');
21
+ logger.info(`Showing outputs for ${chalk.cyan(ctx.name)}`);
22
+ const spinner = ora('Fetching stack outputs...').start();
23
+ try {
24
+ const outputs = await withRetry(() => getStackOutputs(config.stack.name, config.aws.region), { maxAttempts: 2, operationName: 'get stack outputs' });
25
+ spinner.succeed('Outputs retrieved');
26
+ if (Object.keys(outputs).length === 0) {
27
+ console.log(chalk.yellow('No outputs found'));
28
+ return;
29
+ }
30
+ // Display each output
31
+ for (const [key, value] of Object.entries(outputs)) {
32
+ console.log(chalk.bold(key + ':'));
33
+ // Format commands nicely
34
+ if (value.includes('aws ssm')) {
35
+ // Multi-line command
36
+ const parts = value.split(' --');
37
+ console.log(' ' + chalk.cyan(parts[0]));
38
+ parts.slice(1).forEach((part) => {
39
+ console.log(' ' + chalk.cyan('--' + part));
40
+ });
41
+ }
42
+ else {
43
+ console.log(' ' + chalk.cyan(value));
44
+ }
45
+ console.log('');
46
+ }
47
+ // Provide helpful tips
48
+ console.log(chalk.bold('Quick Commands:'));
49
+ console.log(` ${chalk.cyan('openclaw-aws connect')} - Use SSMConnectCommand`);
50
+ console.log(` ${chalk.cyan('openclaw-aws dashboard')} - Use SSMPortForwardCommand`);
51
+ }
52
+ catch (error) {
53
+ spinner.fail('Failed to get outputs');
54
+ if (error instanceof Error && error.message.includes('not found')) {
55
+ console.log('\n' + chalk.yellow('⚠ No deployment found'));
56
+ console.log('\nRun: ' + chalk.cyan('openclaw-aws deploy'));
57
+ }
58
+ else {
59
+ throw error;
60
+ }
61
+ }
62
+ }
63
+ catch (error) {
64
+ handleError(error);
65
+ }
66
+ },
67
+ };
68
+ export default outputsCommand;
69
+ //# sourceMappingURL=outputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputs.js","sourceRoot":"","sources":["../../../src/cli/commands/outputs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CommandModule } from 'yargs';
2
+ interface RestartArgs {
3
+ name?: string;
4
+ force?: boolean;
5
+ }
6
+ export declare const restartCommand: CommandModule<{}, RestartArgs>;
7
+ export default restartCommand;
8
+ //# sourceMappingURL=restart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/restart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAU3C,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,EAAE,EAAE,WAAW,CA+FzD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,91 @@
1
+ import ora from 'ora';
2
+ import chalk from 'chalk';
3
+ import prompts from 'prompts';
4
+ import { logger } from '../utils/logger.js';
5
+ import { buildCommandContext } from '../utils/context.js';
6
+ import { resolveInstanceId, checkSSMStatus } from '../utils/aws.js';
7
+ import { rebootInstance, waitForInstanceState } from '../utils/ec2.js';
8
+ import { handleError } from '../utils/errors.js';
9
+ export const restartCommand = {
10
+ command: 'restart',
11
+ describe: 'Restart (reboot) the EC2 instance',
12
+ builder: (yargs) => {
13
+ return yargs
14
+ .option('name', {
15
+ type: 'string',
16
+ describe: 'Deployment name',
17
+ })
18
+ .option('force', {
19
+ type: 'boolean',
20
+ describe: 'Skip confirmation prompt',
21
+ default: false,
22
+ });
23
+ },
24
+ handler: async (argv) => {
25
+ try {
26
+ const ctx = await buildCommandContext({ name: argv.name });
27
+ const config = ctx.config;
28
+ logger.title('OpenClaw AWS - Restart Instance');
29
+ logger.info(`Restarting ${chalk.cyan(ctx.name)}`);
30
+ // Get instance ID
31
+ const spinner = ora('Finding instance...').start();
32
+ const instanceId = await resolveInstanceId(config.stack.name, config.aws.region);
33
+ spinner.succeed(`Found instance: ${chalk.cyan(instanceId)}`);
34
+ console.log('\n' + chalk.bold('Note:'));
35
+ console.log(' • This will reboot the instance');
36
+ console.log(' • OpenClaw service will restart automatically');
37
+ console.log(' • Brief downtime (~1-2 minutes)');
38
+ // Confirm
39
+ if (!argv.force) {
40
+ console.log('');
41
+ const { confirm } = await prompts({
42
+ type: 'confirm',
43
+ name: 'confirm',
44
+ message: `Restart instance ${config.instance.name}?`,
45
+ initial: true,
46
+ });
47
+ if (!confirm) {
48
+ logger.warn('Restart cancelled');
49
+ return;
50
+ }
51
+ }
52
+ // Reboot instance
53
+ spinner.start('Rebooting instance...');
54
+ await rebootInstance(instanceId, config.aws.region);
55
+ spinner.succeed('Reboot initiated');
56
+ spinner.start('Waiting for instance to restart... (this may take 1-2 minutes)');
57
+ // Wait for instance to go through stopping and back to running
58
+ await new Promise((resolve) => setTimeout(resolve, 10000)); // Wait 10s for reboot to start
59
+ const didRestart = await waitForInstanceState(instanceId, config.aws.region, 'running', 180000);
60
+ if (didRestart) {
61
+ spinner.text = 'Waiting for SSM to be ready...';
62
+ // Wait for SSM
63
+ let ssmReady = false;
64
+ for (let i = 0; i < 24; i++) {
65
+ // 2 minutes
66
+ ssmReady = await checkSSMStatus(instanceId, config.aws.region);
67
+ if (ssmReady)
68
+ break;
69
+ await new Promise((resolve) => setTimeout(resolve, 5000));
70
+ }
71
+ if (ssmReady) {
72
+ spinner.succeed('Instance restarted and ready');
73
+ logger.success('Instance is back online');
74
+ }
75
+ else {
76
+ spinner.warn('Instance restarted, SSM not ready yet');
77
+ console.log('\nWait a minute then check: ' + chalk.cyan('openclaw-aws status'));
78
+ }
79
+ }
80
+ else {
81
+ spinner.warn('Instance reboot in progress...');
82
+ console.log('\nCheck status with: ' + chalk.cyan('openclaw-aws status'));
83
+ }
84
+ }
85
+ catch (error) {
86
+ handleError(error);
87
+ }
88
+ },
89
+ };
90
+ export default restartCommand;
91
+ //# sourceMappingURL=restart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart.js","sourceRoot":"","sources":["../../../src/cli/commands/restart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CommandModule } from 'yargs';
2
+ interface StartArgs {
3
+ name?: string;
4
+ }
5
+ export declare const startCommand: CommandModule<{}, StartArgs>;
6
+ export default startCommand;
7
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAS3C,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,CA8ErD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,80 @@
1
+ import ora from 'ora';
2
+ import chalk from 'chalk';
3
+ import { logger } from '../utils/logger.js';
4
+ import { buildCommandContext } from '../utils/context.js';
5
+ import { resolveInstanceId, checkSSMStatus } from '../utils/aws.js';
6
+ import { getInstanceState, startInstance, waitForInstanceState } from '../utils/ec2.js';
7
+ import { handleError } from '../utils/errors.js';
8
+ export const startCommand = {
9
+ command: 'start',
10
+ describe: 'Start a stopped EC2 instance',
11
+ builder: (yargs) => {
12
+ return yargs.option('name', {
13
+ type: 'string',
14
+ describe: 'Deployment name',
15
+ });
16
+ },
17
+ handler: async (argv) => {
18
+ try {
19
+ const ctx = await buildCommandContext({ name: argv.name });
20
+ const config = ctx.config;
21
+ logger.title('OpenClaw AWS - Start Instance');
22
+ logger.info(`Starting ${chalk.cyan(ctx.name)}`);
23
+ // Get instance ID
24
+ const spinner = ora('Finding instance...').start();
25
+ const instanceId = await resolveInstanceId(config.stack.name, config.aws.region);
26
+ spinner.succeed(`Found instance: ${chalk.cyan(instanceId)}`);
27
+ const currentState = await getInstanceState(instanceId, config.aws.region);
28
+ if (currentState === 'running') {
29
+ logger.info('Instance is already running');
30
+ console.log('\n' + chalk.bold('Next steps:'));
31
+ console.log(' ' + chalk.cyan('openclaw-aws connect') + ' - Connect via SSM');
32
+ console.log(' ' + chalk.cyan('openclaw-aws dashboard') + ' - Access dashboard');
33
+ console.log(' ' + chalk.cyan('openclaw-aws status') + ' - Check instance status');
34
+ console.log(' ' + chalk.cyan('openclaw-aws stop') + ' - Stop to save costs');
35
+ return;
36
+ }
37
+ // Start instance
38
+ spinner.start('Starting instance...');
39
+ await startInstance(instanceId, config.aws.region);
40
+ spinner.text = 'Waiting for instance to start... (this may take 1-2 minutes)';
41
+ const didStart = await waitForInstanceState(instanceId, config.aws.region, 'running', 180000);
42
+ if (didStart) {
43
+ spinner.succeed('Instance started successfully');
44
+ // Check SSM connectivity
45
+ spinner.start('Waiting for SSM to be ready...');
46
+ let ssmReady = false;
47
+ // Wait up to 2 minutes for SSM
48
+ for (let i = 0; i < 24; i++) {
49
+ // 24 * 5 seconds = 2 minutes
50
+ ssmReady = await checkSSMStatus(instanceId, config.aws.region);
51
+ if (ssmReady)
52
+ break;
53
+ await new Promise((resolve) => setTimeout(resolve, 5000));
54
+ }
55
+ if (ssmReady) {
56
+ spinner.succeed('Instance ready for connection');
57
+ }
58
+ else {
59
+ spinner.warn('Instance running, SSM not ready yet');
60
+ console.log('\nWait a minute then check: ' + chalk.cyan('openclaw-aws status'));
61
+ }
62
+ console.log('\n' + chalk.bold('Instance is now running'));
63
+ console.log('\n' + chalk.bold('Next steps:'));
64
+ console.log(' ' + chalk.cyan('openclaw-aws connect') + ' - Connect via SSM');
65
+ console.log(' ' + chalk.cyan('openclaw-aws dashboard') + ' - Access dashboard');
66
+ console.log(' ' + chalk.cyan('openclaw-aws status') + ' - Check instance status');
67
+ console.log(' ' + chalk.cyan('openclaw-aws stop') + ' - Stop to save costs');
68
+ }
69
+ else {
70
+ spinner.warn('Instance start initiated (still starting...)');
71
+ console.log('\nCheck status with: ' + chalk.cyan('openclaw-aws status'));
72
+ }
73
+ }
74
+ catch (error) {
75
+ handleError(error);
76
+ }
77
+ },
78
+ };
79
+ export default startCommand;
80
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { CommandModule } from 'yargs';
2
+ export declare function formatStackStatus(status: string): string;
3
+ export declare function formatInstanceStatus(status: string): string;
4
+ export declare function formatSSMStatus(status: string): string;
5
+ export declare function formatGatewayStatus(running: boolean, error?: string): string;
6
+ interface StatusArgs {
7
+ name?: string;
8
+ all?: boolean;
9
+ }
10
+ export declare const statusCommand: CommandModule<{}, StatusArgs>;
11
+ export default statusCommand;
12
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAS3C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,UAAU,CAwOvD,CAAC;AAEF,eAAe,aAAa,CAAC"}