@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.
- package/LICENSE +21 -0
- package/README.md +414 -0
- package/dist/cdk/app.d.ts +3 -0
- package/dist/cdk/app.d.ts.map +1 -0
- package/dist/cdk/app.js +60 -0
- package/dist/cdk/app.js.map +1 -0
- package/dist/cdk/stack.d.ts +16 -0
- package/dist/cdk/stack.d.ts.map +1 -0
- package/dist/cdk/stack.js +151 -0
- package/dist/cdk/stack.js.map +1 -0
- package/dist/cli/commands/connect.d.ts +7 -0
- package/dist/cli/commands/connect.d.ts.map +1 -0
- package/dist/cli/commands/connect.js +99 -0
- package/dist/cli/commands/connect.js.map +1 -0
- package/dist/cli/commands/current.d.ts +4 -0
- package/dist/cli/commands/current.d.ts.map +1 -0
- package/dist/cli/commands/current.js +18 -0
- package/dist/cli/commands/current.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +8 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -0
- package/dist/cli/commands/dashboard.js +231 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/deploy.d.ts +9 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +380 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/destroy.d.ts +10 -0
- package/dist/cli/commands/destroy.d.ts.map +1 -0
- package/dist/cli/commands/destroy.js +359 -0
- package/dist/cli/commands/destroy.js.map +1 -0
- package/dist/cli/commands/init.d.ts +12 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +258 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/list.d.ts +4 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +23 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/logs.d.ts +11 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +163 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/outputs.d.ts +7 -0
- package/dist/cli/commands/outputs.d.ts.map +1 -0
- package/dist/cli/commands/outputs.js +69 -0
- package/dist/cli/commands/outputs.js.map +1 -0
- package/dist/cli/commands/restart.d.ts +8 -0
- package/dist/cli/commands/restart.d.ts.map +1 -0
- package/dist/cli/commands/restart.js +91 -0
- package/dist/cli/commands/restart.js.map +1 -0
- package/dist/cli/commands/start.d.ts +7 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +80 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +12 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +244 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +8 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +86 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/use.d.ts +7 -0
- package/dist/cli/commands/use.d.ts.map +1 -0
- package/dist/cli/commands/use.js +26 -0
- package/dist/cli/commands/use.js.map +1 -0
- package/dist/cli/constants.d.ts +63 -0
- package/dist/cli/constants.d.ts.map +1 -0
- package/dist/cli/constants.js +37 -0
- package/dist/cli/constants.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +43 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/types/index.d.ts +47 -0
- package/dist/cli/types/index.d.ts.map +1 -0
- package/dist/cli/types/index.js +2 -0
- package/dist/cli/types/index.js.map +1 -0
- package/dist/cli/utils/api-keys.d.ts +6 -0
- package/dist/cli/utils/api-keys.d.ts.map +1 -0
- package/dist/cli/utils/api-keys.js +14 -0
- package/dist/cli/utils/api-keys.js.map +1 -0
- package/dist/cli/utils/aws-clients.d.ts +7 -0
- package/dist/cli/utils/aws-clients.d.ts.map +1 -0
- package/dist/cli/utils/aws-clients.js +13 -0
- package/dist/cli/utils/aws-clients.js.map +1 -0
- package/dist/cli/utils/aws-validation.d.ts +35 -0
- package/dist/cli/utils/aws-validation.d.ts.map +1 -0
- package/dist/cli/utils/aws-validation.js +266 -0
- package/dist/cli/utils/aws-validation.js.map +1 -0
- package/dist/cli/utils/aws.d.ts +17 -0
- package/dist/cli/utils/aws.d.ts.map +1 -0
- package/dist/cli/utils/aws.js +213 -0
- package/dist/cli/utils/aws.js.map +1 -0
- package/dist/cli/utils/cdk.d.ts +12 -0
- package/dist/cli/utils/cdk.d.ts.map +1 -0
- package/dist/cli/utils/cdk.js +52 -0
- package/dist/cli/utils/cdk.js.map +1 -0
- package/dist/cli/utils/cloud-init.d.ts +11 -0
- package/dist/cli/utils/cloud-init.d.ts.map +1 -0
- package/dist/cli/utils/cloud-init.js +104 -0
- package/dist/cli/utils/cloud-init.js.map +1 -0
- package/dist/cli/utils/config-store.d.ts +17 -0
- package/dist/cli/utils/config-store.d.ts.map +1 -0
- package/dist/cli/utils/config-store.js +85 -0
- package/dist/cli/utils/config-store.js.map +1 -0
- package/dist/cli/utils/config-validation.d.ts +4 -0
- package/dist/cli/utils/config-validation.d.ts.map +1 -0
- package/dist/cli/utils/config-validation.js +89 -0
- package/dist/cli/utils/config-validation.js.map +1 -0
- package/dist/cli/utils/config.d.ts +12 -0
- package/dist/cli/utils/config.d.ts.map +1 -0
- package/dist/cli/utils/config.js +80 -0
- package/dist/cli/utils/config.js.map +1 -0
- package/dist/cli/utils/context.d.ts +14 -0
- package/dist/cli/utils/context.d.ts.map +1 -0
- package/dist/cli/utils/context.js +28 -0
- package/dist/cli/utils/context.js.map +1 -0
- package/dist/cli/utils/ec2.d.ts +6 -0
- package/dist/cli/utils/ec2.d.ts.map +1 -0
- package/dist/cli/utils/ec2.js +103 -0
- package/dist/cli/utils/ec2.js.map +1 -0
- package/dist/cli/utils/errors.d.ts +23 -0
- package/dist/cli/utils/errors.d.ts.map +1 -0
- package/dist/cli/utils/errors.js +126 -0
- package/dist/cli/utils/errors.js.map +1 -0
- package/dist/cli/utils/logger.d.ts +9 -0
- package/dist/cli/utils/logger.d.ts.map +1 -0
- package/dist/cli/utils/logger.js +25 -0
- package/dist/cli/utils/logger.js.map +1 -0
- package/dist/cli/utils/suggestions.d.ts +7 -0
- package/dist/cli/utils/suggestions.d.ts.map +1 -0
- package/dist/cli/utils/suggestions.js +44 -0
- package/dist/cli/utils/suggestions.js.map +1 -0
- package/dist/cli/utils/validation.d.ts +12 -0
- package/dist/cli/utils/validation.d.ts.map +1 -0
- package/dist/cli/utils/validation.js +52 -0
- package/dist/cli/utils/validation.js.map +1 -0
- package/package.json +96 -0
- package/templates/openclaw.config.json.template +23 -0
|
@@ -0,0 +1,244 @@
|
|
|
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 { getStackStatus, getSSMStatus, checkGatewayStatus } from '../utils/aws.js';
|
|
6
|
+
import { handleError, withRetry } from '../utils/errors.js';
|
|
7
|
+
import { listConfigNames } from '../utils/config-store.js';
|
|
8
|
+
export function formatStackStatus(status) {
|
|
9
|
+
if (status.includes('COMPLETE'))
|
|
10
|
+
return chalk.green('✓ ' + status);
|
|
11
|
+
if (status.includes('FAILED'))
|
|
12
|
+
return chalk.red('✗ ' + status);
|
|
13
|
+
if (status.includes('PROGRESS'))
|
|
14
|
+
return chalk.yellow('⚙ ' + status);
|
|
15
|
+
return chalk.yellow('⚙ ' + status);
|
|
16
|
+
}
|
|
17
|
+
export function formatInstanceStatus(status) {
|
|
18
|
+
if (status === 'running')
|
|
19
|
+
return chalk.green('✓ Running');
|
|
20
|
+
if (status === 'stopped')
|
|
21
|
+
return chalk.yellow('○ Stopped') + chalk.gray(' (not incurring compute costs)');
|
|
22
|
+
if (status === 'stopping')
|
|
23
|
+
return chalk.yellow('⚙ Stopping...');
|
|
24
|
+
if (status === 'pending')
|
|
25
|
+
return chalk.yellow('⚙ Starting...');
|
|
26
|
+
if (status === 'terminated')
|
|
27
|
+
return chalk.red('✗ Terminated');
|
|
28
|
+
return chalk.yellow('⚙ ' + status);
|
|
29
|
+
}
|
|
30
|
+
export function formatSSMStatus(status) {
|
|
31
|
+
if (status === 'ready')
|
|
32
|
+
return chalk.green('✓ Ready');
|
|
33
|
+
if (status === 'not-ready')
|
|
34
|
+
return chalk.yellow('⚠ Not Ready');
|
|
35
|
+
return chalk.yellow('⚠ ' + status);
|
|
36
|
+
}
|
|
37
|
+
export function formatGatewayStatus(running, error) {
|
|
38
|
+
if (running)
|
|
39
|
+
return chalk.green('✓ Running');
|
|
40
|
+
if (error)
|
|
41
|
+
return chalk.red('✗ Not Running') + chalk.gray(` (${error})`);
|
|
42
|
+
return chalk.red('✗ Not Running');
|
|
43
|
+
}
|
|
44
|
+
export const statusCommand = {
|
|
45
|
+
command: 'status',
|
|
46
|
+
describe: 'Check deployment and instance status',
|
|
47
|
+
builder: (yargs) => {
|
|
48
|
+
return yargs
|
|
49
|
+
.option('all', {
|
|
50
|
+
type: 'boolean',
|
|
51
|
+
describe: 'Show status for all configs',
|
|
52
|
+
default: false,
|
|
53
|
+
})
|
|
54
|
+
.option('name', {
|
|
55
|
+
type: 'string',
|
|
56
|
+
describe: 'Deployment name',
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
handler: async (argv) => {
|
|
60
|
+
try {
|
|
61
|
+
if (argv.all) {
|
|
62
|
+
const names = listConfigNames();
|
|
63
|
+
if (names.length === 0) {
|
|
64
|
+
logger.info('No configs found');
|
|
65
|
+
console.log('\nRun: ' + chalk.cyan('openclaw-aws init --name <name>'));
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
logger.title('OpenClaw AWS - All Config Status');
|
|
69
|
+
for (const name of names) {
|
|
70
|
+
const ctx = await buildCommandContext({ name });
|
|
71
|
+
const config = ctx.config;
|
|
72
|
+
const spinner = ora(`Checking ${name}...`).start();
|
|
73
|
+
try {
|
|
74
|
+
const status = await withRetry(() => getStackStatus(config.stack.name, config.aws.region), { maxAttempts: 2, operationName: 'get stack status' });
|
|
75
|
+
spinner.succeed(`${name}: ${status.stackStatus}`);
|
|
76
|
+
const stackDisplay = formatStackStatus(status.stackStatus);
|
|
77
|
+
const instanceDisplay = status.instanceStatus
|
|
78
|
+
? formatInstanceStatus(status.instanceStatus)
|
|
79
|
+
: chalk.gray('unknown');
|
|
80
|
+
const ssmDisplay = status.ssmStatus
|
|
81
|
+
? formatSSMStatus(status.ssmStatus)
|
|
82
|
+
: chalk.gray('unknown');
|
|
83
|
+
let gatewayDisplay = chalk.gray('unknown');
|
|
84
|
+
if (status.instanceStatus === 'running' && status.instanceId) {
|
|
85
|
+
const detailedSSM = await getSSMStatus(status.instanceId, config.aws.region);
|
|
86
|
+
if (detailedSSM.status === 'Online') {
|
|
87
|
+
try {
|
|
88
|
+
const gatewayStatus = await checkGatewayStatus(status.instanceId, config.aws.region);
|
|
89
|
+
gatewayDisplay = formatGatewayStatus(gatewayStatus.running, gatewayStatus.error);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
gatewayDisplay = chalk.yellow('⚠ Unknown');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
gatewayDisplay = chalk.yellow('⚠ Unknown');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
console.log(' ' +
|
|
100
|
+
chalk.bold('Stack:') +
|
|
101
|
+
' ' +
|
|
102
|
+
stackDisplay +
|
|
103
|
+
' ' +
|
|
104
|
+
chalk.bold('Instance:') +
|
|
105
|
+
' ' +
|
|
106
|
+
instanceDisplay +
|
|
107
|
+
' ' +
|
|
108
|
+
chalk.bold('SSM:') +
|
|
109
|
+
' ' +
|
|
110
|
+
ssmDisplay +
|
|
111
|
+
' ' +
|
|
112
|
+
chalk.bold('Gateway:') +
|
|
113
|
+
' ' +
|
|
114
|
+
gatewayDisplay);
|
|
115
|
+
console.log(' ' +
|
|
116
|
+
chalk.bold('Region:') +
|
|
117
|
+
' ' +
|
|
118
|
+
chalk.gray(config.aws.region) +
|
|
119
|
+
' ' +
|
|
120
|
+
chalk.bold('Type:') +
|
|
121
|
+
' ' +
|
|
122
|
+
chalk.cyan(config.instance.type));
|
|
123
|
+
console.log('');
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
spinner.warn(`${name}: not deployed`);
|
|
127
|
+
console.log(chalk.bold(' Region:'), chalk.gray(config.aws.region));
|
|
128
|
+
console.log(chalk.bold(' Instance Type:'), chalk.cyan(config.instance.type));
|
|
129
|
+
console.log('');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
const ctx = await buildCommandContext({ name: argv.name });
|
|
135
|
+
const config = ctx.config;
|
|
136
|
+
const spinner = ora('Checking status...').start();
|
|
137
|
+
try {
|
|
138
|
+
const status = await withRetry(() => getStackStatus(config.stack.name, config.aws.region), {
|
|
139
|
+
maxAttempts: 2,
|
|
140
|
+
operationName: 'get stack status',
|
|
141
|
+
});
|
|
142
|
+
spinner.succeed('Status retrieved');
|
|
143
|
+
// Display status
|
|
144
|
+
logger.title('OpenClaw AWS - Deployment Status');
|
|
145
|
+
logger.info(`Status for ${chalk.cyan(ctx.name)}`);
|
|
146
|
+
console.log(chalk.bold('Stack:'), config.stack.name);
|
|
147
|
+
// Stack status with color
|
|
148
|
+
const stackStatusDisplay = formatStackStatus(status.stackStatus);
|
|
149
|
+
console.log(chalk.bold('Status:'), stackStatusDisplay, chalk.gray(`(${config.aws.region})`));
|
|
150
|
+
// Instance info if available
|
|
151
|
+
if (status.instanceId) {
|
|
152
|
+
console.log('\n' + chalk.bold('Instance:'), config.instance.name, chalk.gray(`(${status.instanceId})`));
|
|
153
|
+
if (status.instanceStatus) {
|
|
154
|
+
const instanceStatusDisplay = formatInstanceStatus(status.instanceStatus);
|
|
155
|
+
console.log(chalk.bold('Status:'), instanceStatusDisplay);
|
|
156
|
+
}
|
|
157
|
+
if (status.ssmStatus) {
|
|
158
|
+
// Get detailed SSM status
|
|
159
|
+
let ssmDisplay = '';
|
|
160
|
+
if (status.ssmStatus === 'ready') {
|
|
161
|
+
// Double-check with detailed status
|
|
162
|
+
const detailedSSM = await getSSMStatus(status.instanceId, config.aws.region);
|
|
163
|
+
if (detailedSSM.status === 'Online') {
|
|
164
|
+
ssmDisplay = chalk.green('✓ Ready (Online)');
|
|
165
|
+
}
|
|
166
|
+
else if (detailedSSM.status === 'ConnectionLost') {
|
|
167
|
+
ssmDisplay =
|
|
168
|
+
chalk.red('✗ Connection Lost') +
|
|
169
|
+
chalk.gray(` (last ping: ${detailedSSM.lastPing || 'unknown'})`);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
ssmDisplay = chalk.yellow(`⚠ ${detailedSSM.status}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
ssmDisplay = formatSSMStatus(status.ssmStatus);
|
|
177
|
+
}
|
|
178
|
+
console.log(chalk.bold('SSM:'), ssmDisplay);
|
|
179
|
+
}
|
|
180
|
+
console.log(chalk.bold('Type:'), config.instance.type);
|
|
181
|
+
}
|
|
182
|
+
// OpenClaw Gateway status (only if instance is running and SSM is ready)
|
|
183
|
+
if (status.instanceStatus === 'running' && status.instanceId) {
|
|
184
|
+
console.log('\n' + chalk.bold('OpenClaw Gateway:'));
|
|
185
|
+
// Check if SSM is online before checking gateway
|
|
186
|
+
const detailedSSM = await getSSMStatus(status.instanceId, config.aws.region);
|
|
187
|
+
if (detailedSSM.status === 'Online') {
|
|
188
|
+
try {
|
|
189
|
+
const gatewayStatus = await checkGatewayStatus(status.instanceId, config.aws.region);
|
|
190
|
+
if (gatewayStatus.running) {
|
|
191
|
+
console.log(chalk.bold('Status:'), chalk.green('✓ Running'));
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
console.log(chalk.bold('Status:'), chalk.red('✗ Not Running'));
|
|
195
|
+
if (gatewayStatus.error) {
|
|
196
|
+
console.log(chalk.gray(' Error:'), chalk.gray(gatewayStatus.error));
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
console.log(chalk.bold('Status:'), chalk.yellow('⚠ Unknown'), chalk.gray('(check failed)'));
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
console.log(chalk.bold('Status:'), chalk.yellow('⚠ Unknown'), chalk.gray('(SSM not connected)'));
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Quick commands based on instance state
|
|
209
|
+
console.log('\n' + chalk.bold('Quick Commands:'));
|
|
210
|
+
if (status.instanceStatus === 'running') {
|
|
211
|
+
console.log(` ${chalk.cyan('openclaw-aws connect')} - Connect via SSM`);
|
|
212
|
+
console.log(` ${chalk.cyan('openclaw-aws dashboard')} - Access dashboard`);
|
|
213
|
+
console.log(` ${chalk.cyan('openclaw-aws stop')} - Stop instance (save costs)`);
|
|
214
|
+
console.log(` ${chalk.cyan('openclaw-aws restart')} - Reboot instance`);
|
|
215
|
+
}
|
|
216
|
+
else if (status.instanceStatus === 'stopped') {
|
|
217
|
+
console.log(` ${chalk.cyan('openclaw-aws start')} - Start instance`);
|
|
218
|
+
console.log(` ${chalk.cyan('openclaw-aws destroy')} - Delete deployment`);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
console.log(` ${chalk.cyan('openclaw-aws status')} - Check current status`);
|
|
222
|
+
}
|
|
223
|
+
if (status.instanceStatus === 'running' || status.instanceStatus === 'stopped') {
|
|
224
|
+
console.log(` ${chalk.cyan('openclaw-aws destroy')} - Delete deployment`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
spinner.fail('Failed to get status');
|
|
229
|
+
if (error instanceof Error && error.message.includes('not found')) {
|
|
230
|
+
console.log('\n' + chalk.yellow('⚠ No deployment found'));
|
|
231
|
+
console.log('\nRun: ' + chalk.cyan('openclaw-aws deploy'));
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
throw error;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
handleError(error);
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
};
|
|
243
|
+
export default statusCommand;
|
|
244
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAU3C,UAAU,QAAQ;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,EAAE,EAAE,QAAQ,CAqFnD,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 } from '../utils/aws.js';
|
|
7
|
+
import { getInstanceState, stopInstance, waitForInstanceState } from '../utils/ec2.js';
|
|
8
|
+
import { handleError } from '../utils/errors.js';
|
|
9
|
+
export const stopCommand = {
|
|
10
|
+
command: 'stop',
|
|
11
|
+
describe: 'Stop the EC2 instance (saves ~90% on costs)',
|
|
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 - Stop Instance');
|
|
29
|
+
logger.info(`Stopping ${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
|
+
const currentState = await getInstanceState(instanceId, config.aws.region);
|
|
35
|
+
if (currentState === 'stopped') {
|
|
36
|
+
logger.info('Instance is already stopped');
|
|
37
|
+
console.log('\n' + chalk.bold('To restart:'));
|
|
38
|
+
console.log(' ' + chalk.cyan('openclaw-aws start'));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Show cost savings
|
|
42
|
+
console.log('\n' + chalk.bold('Cost Savings:'));
|
|
43
|
+
console.log(' Running: ~$8.30/month');
|
|
44
|
+
console.log(' Stopped: ~$0.80/month (EBS storage only)');
|
|
45
|
+
console.log(' ' + chalk.green('Savings: ~$7.50/month (~90%)'));
|
|
46
|
+
console.log('\n' + chalk.bold('Note:'));
|
|
47
|
+
console.log(' • Instance data is preserved');
|
|
48
|
+
console.log(' • Restart anytime with: ' + chalk.cyan('openclaw-aws start'));
|
|
49
|
+
console.log(' • IP address may change after restart');
|
|
50
|
+
// Confirm
|
|
51
|
+
if (!argv.force) {
|
|
52
|
+
console.log('');
|
|
53
|
+
const { confirm } = await prompts({
|
|
54
|
+
type: 'confirm',
|
|
55
|
+
name: 'confirm',
|
|
56
|
+
message: `Stop instance ${config.instance.name}?`,
|
|
57
|
+
initial: true,
|
|
58
|
+
});
|
|
59
|
+
if (!confirm) {
|
|
60
|
+
logger.warn('Stop cancelled');
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Stop instance
|
|
65
|
+
spinner.start('Stopping instance...');
|
|
66
|
+
await stopInstance(instanceId, config.aws.region);
|
|
67
|
+
spinner.text = 'Waiting for instance to stop...';
|
|
68
|
+
const didStop = await waitForInstanceState(instanceId, config.aws.region, 'stopped', 120000);
|
|
69
|
+
if (didStop) {
|
|
70
|
+
spinner.succeed('Instance stopped successfully');
|
|
71
|
+
logger.success('Instance is now stopped');
|
|
72
|
+
console.log('\n' + chalk.bold('To restart:'));
|
|
73
|
+
console.log(' ' + chalk.cyan('openclaw-aws start'));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
spinner.warn('Instance stop initiated (still stopping...)');
|
|
77
|
+
console.log('\nCheck status with: ' + chalk.cyan('openclaw-aws status'));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
handleError(error);
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
export default stopCommand;
|
|
86
|
+
//# sourceMappingURL=stop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/cli/commands/stop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/use.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,EAAE,EAAE,OAAO,CAqBjD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { logger } from '../utils/logger.js';
|
|
3
|
+
import { listConfigNames, setCurrentName } from '../utils/config-store.js';
|
|
4
|
+
export const useCommand = {
|
|
5
|
+
command: 'use <name>',
|
|
6
|
+
describe: 'Select a config',
|
|
7
|
+
builder: (yargs) => {
|
|
8
|
+
return yargs.positional('name', {
|
|
9
|
+
type: 'string',
|
|
10
|
+
describe: 'Config name',
|
|
11
|
+
demandOption: true,
|
|
12
|
+
});
|
|
13
|
+
},
|
|
14
|
+
handler: async (argv) => {
|
|
15
|
+
const names = listConfigNames();
|
|
16
|
+
if (!names.includes(argv.name)) {
|
|
17
|
+
logger.error(`Config not found: ${argv.name}`);
|
|
18
|
+
console.log('\nCreate it first: ' + chalk.cyan(`openclaw-aws init --name ${argv.name}`));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
setCurrentName(argv.name);
|
|
22
|
+
logger.success(`Current config set to ${chalk.cyan(argv.name)}`);
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
export default useCommand;
|
|
26
|
+
//# sourceMappingURL=use.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/cli/commands/use.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;AAM3E,MAAM,CAAC,MAAM,UAAU,GAA+B;IACpD,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;YAC9B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,aAAa;YACvB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QAED,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export declare const API_PROVIDERS: readonly [{
|
|
2
|
+
readonly title: "Anthropic (Claude)";
|
|
3
|
+
readonly value: "anthropic-api-key";
|
|
4
|
+
readonly description: "Official Anthropic API (claude.ai)";
|
|
5
|
+
}, {
|
|
6
|
+
readonly title: "OpenRouter";
|
|
7
|
+
readonly value: "openrouter-api-key";
|
|
8
|
+
readonly description: "Multi-provider API (100+ models)";
|
|
9
|
+
}, {
|
|
10
|
+
readonly title: "OpenAI (GPT)";
|
|
11
|
+
readonly value: "openai-api-key";
|
|
12
|
+
readonly description: "Official OpenAI API";
|
|
13
|
+
}, {
|
|
14
|
+
readonly title: "Gemini (Google)";
|
|
15
|
+
readonly value: "gemini-api-key";
|
|
16
|
+
readonly description: "Official Google API for Gemini models";
|
|
17
|
+
}, {
|
|
18
|
+
readonly title: "AI Gateway";
|
|
19
|
+
readonly value: "ai-gateway-api-key";
|
|
20
|
+
readonly description: "AI Gateway API";
|
|
21
|
+
}, {
|
|
22
|
+
readonly title: "Cloudflare AI Gateway";
|
|
23
|
+
readonly value: "cloudflare-ai-gateway-api-key";
|
|
24
|
+
readonly description: "Cloudflare AI Gateway API";
|
|
25
|
+
}, {
|
|
26
|
+
readonly title: "Moonshot";
|
|
27
|
+
readonly value: "moonshot-api-key";
|
|
28
|
+
readonly description: "Moonshot API";
|
|
29
|
+
}, {
|
|
30
|
+
readonly title: "Kimi Code";
|
|
31
|
+
readonly value: "kimi-code-api-key";
|
|
32
|
+
readonly description: "Kimi Code API";
|
|
33
|
+
}, {
|
|
34
|
+
readonly title: "Synthetic";
|
|
35
|
+
readonly value: "synthetic-api-key";
|
|
36
|
+
readonly description: "Synthetic API";
|
|
37
|
+
}, {
|
|
38
|
+
readonly title: "Venice";
|
|
39
|
+
readonly value: "venice-api-key";
|
|
40
|
+
readonly description: "Venice API";
|
|
41
|
+
}, {
|
|
42
|
+
readonly title: "Zai";
|
|
43
|
+
readonly value: "zai-api-key";
|
|
44
|
+
readonly description: "Zai API";
|
|
45
|
+
}, {
|
|
46
|
+
readonly title: "Xiaomi";
|
|
47
|
+
readonly value: "xiaomi-api-key";
|
|
48
|
+
readonly description: "Xiaomi API";
|
|
49
|
+
}, {
|
|
50
|
+
readonly title: "XAI";
|
|
51
|
+
readonly value: "xai-api-key";
|
|
52
|
+
readonly description: "XAI API";
|
|
53
|
+
}, {
|
|
54
|
+
readonly title: "Minimax";
|
|
55
|
+
readonly value: "minimax-api-key";
|
|
56
|
+
readonly description: "Minimax API";
|
|
57
|
+
}, {
|
|
58
|
+
readonly title: "Opencode Zen";
|
|
59
|
+
readonly value: "opencode-zen-api-key";
|
|
60
|
+
readonly description: "Opencode Zen API";
|
|
61
|
+
}];
|
|
62
|
+
export declare const MIN_NODE_VERSION = 20;
|
|
63
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/cli/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgChB,CAAC;AAGX,eAAO,MAAM,gBAAgB,KAAK,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// API Provider options
|
|
2
|
+
export const API_PROVIDERS = [
|
|
3
|
+
{
|
|
4
|
+
title: 'Anthropic (Claude)',
|
|
5
|
+
value: 'anthropic-api-key',
|
|
6
|
+
description: 'Official Anthropic API (claude.ai)',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
title: 'OpenRouter',
|
|
10
|
+
value: 'openrouter-api-key',
|
|
11
|
+
description: 'Multi-provider API (100+ models)',
|
|
12
|
+
},
|
|
13
|
+
{ title: 'OpenAI (GPT)', value: 'openai-api-key', description: 'Official OpenAI API' },
|
|
14
|
+
{
|
|
15
|
+
title: 'Gemini (Google)',
|
|
16
|
+
value: 'gemini-api-key',
|
|
17
|
+
description: 'Official Google API for Gemini models',
|
|
18
|
+
},
|
|
19
|
+
{ title: 'AI Gateway', value: 'ai-gateway-api-key', description: 'AI Gateway API' },
|
|
20
|
+
{
|
|
21
|
+
title: 'Cloudflare AI Gateway',
|
|
22
|
+
value: 'cloudflare-ai-gateway-api-key',
|
|
23
|
+
description: 'Cloudflare AI Gateway API',
|
|
24
|
+
},
|
|
25
|
+
{ title: 'Moonshot', value: 'moonshot-api-key', description: 'Moonshot API' },
|
|
26
|
+
{ title: 'Kimi Code', value: 'kimi-code-api-key', description: 'Kimi Code API' },
|
|
27
|
+
{ title: 'Synthetic', value: 'synthetic-api-key', description: 'Synthetic API' },
|
|
28
|
+
{ title: 'Venice', value: 'venice-api-key', description: 'Venice API' },
|
|
29
|
+
{ title: 'Zai', value: 'zai-api-key', description: 'Zai API' },
|
|
30
|
+
{ title: 'Xiaomi', value: 'xiaomi-api-key', description: 'Xiaomi API' },
|
|
31
|
+
{ title: 'XAI', value: 'xai-api-key', description: 'XAI API' },
|
|
32
|
+
{ title: 'Minimax', value: 'minimax-api-key', description: 'Minimax API' },
|
|
33
|
+
{ title: 'Opencode Zen', value: 'opencode-zen-api-key', description: 'Opencode Zen API' },
|
|
34
|
+
];
|
|
35
|
+
// Minimum supported Node.js major version
|
|
36
|
+
export const MIN_NODE_VERSION = 20;
|
|
37
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/cli/constants.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;QACE,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,oCAAoC;KAClD;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,kCAAkC;KAChD;IACD,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,EAAE;IACtF;QACE,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,uCAAuC;KACrD;IACD,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,gBAAgB,EAAE;IACnF;QACE,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE,2BAA2B;KACzC;IACD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE;IAC7E,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE;IAChF,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE;IAChF,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE;IACvE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE;IAC9D,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE;IACvE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE;IAC9D,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE;IAC1E,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,kBAAkB,EAAE;CACjF,CAAC;AAEX,0CAA0C;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import yargs from 'yargs';
|
|
3
|
+
import { hideBin } from 'yargs/helpers';
|
|
4
|
+
import initCommand from './commands/init.js';
|
|
5
|
+
import listCommand from './commands/list.js';
|
|
6
|
+
import currentCommand from './commands/current.js';
|
|
7
|
+
import useCommand from './commands/use.js';
|
|
8
|
+
import deployCommand from './commands/deploy.js';
|
|
9
|
+
import destroyCommand from './commands/destroy.js';
|
|
10
|
+
import connectCommand from './commands/connect.js';
|
|
11
|
+
import dashboardCommand from './commands/dashboard.js';
|
|
12
|
+
import statusCommand from './commands/status.js';
|
|
13
|
+
import outputsCommand from './commands/outputs.js';
|
|
14
|
+
import logsCommand from './commands/logs.js';
|
|
15
|
+
import stopCommand from './commands/stop.js';
|
|
16
|
+
import startCommand from './commands/start.js';
|
|
17
|
+
import restartCommand from './commands/restart.js';
|
|
18
|
+
yargs(hideBin(process.argv))
|
|
19
|
+
.scriptName('openclaw-aws')
|
|
20
|
+
.usage('$0 <command> [options]')
|
|
21
|
+
.command(initCommand)
|
|
22
|
+
.command(listCommand)
|
|
23
|
+
.command(currentCommand)
|
|
24
|
+
.command(useCommand)
|
|
25
|
+
.command(deployCommand)
|
|
26
|
+
.command(statusCommand)
|
|
27
|
+
.command(connectCommand)
|
|
28
|
+
.command(dashboardCommand)
|
|
29
|
+
.command(outputsCommand)
|
|
30
|
+
.command(logsCommand)
|
|
31
|
+
.command(stopCommand)
|
|
32
|
+
.command(startCommand)
|
|
33
|
+
.command(restartCommand)
|
|
34
|
+
.command(destroyCommand)
|
|
35
|
+
.demandCommand(1, 'You must specify a command')
|
|
36
|
+
.help()
|
|
37
|
+
.alias('h', 'help')
|
|
38
|
+
.version()
|
|
39
|
+
.alias('v', 'version')
|
|
40
|
+
.epilogue('For more information, visit: https://github.com/salza80/openclaw-aws')
|
|
41
|
+
.strict()
|
|
42
|
+
.parse();
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAEnD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,UAAU,CAAC,cAAc,CAAC;KAC1B,KAAK,CAAC,wBAAwB,CAAC;KAC/B,OAAO,CAAC,WAAW,CAAC;KACpB,OAAO,CAAC,WAAW,CAAC;KACpB,OAAO,CAAC,cAAc,CAAC;KACvB,OAAO,CAAC,UAAU,CAAC;KACnB,OAAO,CAAC,aAAa,CAAC;KACtB,OAAO,CAAC,aAAa,CAAC;KACtB,OAAO,CAAC,cAAc,CAAC;KACvB,OAAO,CAAC,gBAAgB,CAAC;KACzB,OAAO,CAAC,cAAc,CAAC;KACvB,OAAO,CAAC,WAAW,CAAC;KACpB,OAAO,CAAC,WAAW,CAAC;KACpB,OAAO,CAAC,YAAY,CAAC;KACrB,OAAO,CAAC,cAAc,CAAC;KACvB,OAAO,CAAC,cAAc,CAAC;KACvB,aAAa,CAAC,CAAC,EAAE,4BAA4B,CAAC;KAC9C,IAAI,EAAE;KACN,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;KAClB,OAAO,EAAE;KACT,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;KACrB,QAAQ,CAAC,sEAAsE,CAAC;KAChF,MAAM,EAAE;KACR,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { API_PROVIDERS } from '../constants.js';
|
|
2
|
+
export type Provider = (typeof API_PROVIDERS)[number]['value'];
|
|
3
|
+
export interface OpenClawConfig {
|
|
4
|
+
version: string;
|
|
5
|
+
aws: {
|
|
6
|
+
region: string;
|
|
7
|
+
profile?: string;
|
|
8
|
+
};
|
|
9
|
+
network: {
|
|
10
|
+
useDefaultVpc: boolean;
|
|
11
|
+
};
|
|
12
|
+
instance: {
|
|
13
|
+
type: string;
|
|
14
|
+
name: string;
|
|
15
|
+
};
|
|
16
|
+
security?: {
|
|
17
|
+
enableSsh?: boolean;
|
|
18
|
+
sshSourceIp?: string;
|
|
19
|
+
};
|
|
20
|
+
features: {
|
|
21
|
+
cloudWatchLogs: boolean;
|
|
22
|
+
};
|
|
23
|
+
stack: {
|
|
24
|
+
name: string;
|
|
25
|
+
};
|
|
26
|
+
openclaw?: {
|
|
27
|
+
apiProvider: Provider;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export interface StackConfig {
|
|
31
|
+
projectName: string;
|
|
32
|
+
instanceName: string;
|
|
33
|
+
instanceType: {
|
|
34
|
+
class: string;
|
|
35
|
+
size: string;
|
|
36
|
+
};
|
|
37
|
+
enableCloudWatchLogs: boolean;
|
|
38
|
+
useDefaultVpc: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface DeploymentStatus {
|
|
41
|
+
stackName: string;
|
|
42
|
+
stackStatus: string;
|
|
43
|
+
instanceId?: string;
|
|
44
|
+
instanceStatus?: string;
|
|
45
|
+
ssmStatus?: string;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,EAAE;QACP,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE;QACR,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,QAAQ,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/types/index.ts"],"names":[],"mappings":""}
|