cloudops-cli 0.1.0

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 (86) hide show
  1. package/README.md +132 -0
  2. package/dist/api/api-client.d.ts +78 -0
  3. package/dist/api/api-client.d.ts.map +1 -0
  4. package/dist/api/api-client.js +197 -0
  5. package/dist/api/api-client.js.map +1 -0
  6. package/dist/api/index.d.ts +3 -0
  7. package/dist/api/index.d.ts.map +1 -0
  8. package/dist/api/index.js +8 -0
  9. package/dist/api/index.js.map +1 -0
  10. package/dist/auth/__mocks__/auth-handler.d.ts +27 -0
  11. package/dist/auth/__mocks__/auth-handler.d.ts.map +1 -0
  12. package/dist/auth/__mocks__/auth-handler.js +24 -0
  13. package/dist/auth/__mocks__/auth-handler.js.map +1 -0
  14. package/dist/auth/auth-handler.d.ts +80 -0
  15. package/dist/auth/auth-handler.d.ts.map +1 -0
  16. package/dist/auth/auth-handler.js +266 -0
  17. package/dist/auth/auth-handler.js.map +1 -0
  18. package/dist/auth/callback-server.d.ts +31 -0
  19. package/dist/auth/callback-server.d.ts.map +1 -0
  20. package/dist/auth/callback-server.js +143 -0
  21. package/dist/auth/callback-server.js.map +1 -0
  22. package/dist/auth/index.d.ts +3 -0
  23. package/dist/auth/index.d.ts.map +1 -0
  24. package/dist/auth/index.js +8 -0
  25. package/dist/auth/index.js.map +1 -0
  26. package/dist/cli.d.ts +3 -0
  27. package/dist/cli.d.ts.map +1 -0
  28. package/dist/cli.js +422 -0
  29. package/dist/cli.js.map +1 -0
  30. package/dist/commands/accounts.d.ts +15 -0
  31. package/dist/commands/accounts.d.ts.map +1 -0
  32. package/dist/commands/accounts.js +307 -0
  33. package/dist/commands/accounts.js.map +1 -0
  34. package/dist/commands/audit.d.ts +23 -0
  35. package/dist/commands/audit.d.ts.map +1 -0
  36. package/dist/commands/audit.js +348 -0
  37. package/dist/commands/audit.js.map +1 -0
  38. package/dist/commands/config.d.ts +15 -0
  39. package/dist/commands/config.d.ts.map +1 -0
  40. package/dist/commands/config.js +148 -0
  41. package/dist/commands/config.js.map +1 -0
  42. package/dist/commands/incident.d.ts +59 -0
  43. package/dist/commands/incident.d.ts.map +1 -0
  44. package/dist/commands/incident.js +1032 -0
  45. package/dist/commands/incident.js.map +1 -0
  46. package/dist/commands/init.d.ts +9 -0
  47. package/dist/commands/init.d.ts.map +1 -0
  48. package/dist/commands/init.js +300 -0
  49. package/dist/commands/init.js.map +1 -0
  50. package/dist/commands/investigate.d.ts +15 -0
  51. package/dist/commands/investigate.d.ts.map +1 -0
  52. package/dist/commands/investigate.js +65 -0
  53. package/dist/commands/investigate.js.map +1 -0
  54. package/dist/commands/runbook.d.ts +20 -0
  55. package/dist/commands/runbook.d.ts.map +1 -0
  56. package/dist/commands/runbook.js +265 -0
  57. package/dist/commands/runbook.js.map +1 -0
  58. package/dist/config/__mocks__/config-handler.d.ts +11 -0
  59. package/dist/config/__mocks__/config-handler.d.ts.map +1 -0
  60. package/dist/config/__mocks__/config-handler.js +31 -0
  61. package/dist/config/__mocks__/config-handler.js.map +1 -0
  62. package/dist/config/certificate-pinning.d.ts +68 -0
  63. package/dist/config/certificate-pinning.d.ts.map +1 -0
  64. package/dist/config/certificate-pinning.js +249 -0
  65. package/dist/config/certificate-pinning.js.map +1 -0
  66. package/dist/config/config-handler.d.ts +45 -0
  67. package/dist/config/config-handler.d.ts.map +1 -0
  68. package/dist/config/config-handler.js +149 -0
  69. package/dist/config/config-handler.js.map +1 -0
  70. package/dist/config/index.d.ts +2 -0
  71. package/dist/config/index.d.ts.map +1 -0
  72. package/dist/config/index.js +7 -0
  73. package/dist/config/index.js.map +1 -0
  74. package/dist/index.d.ts +4 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +25 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/types/cli-options.d.ts +31 -0
  79. package/dist/types/cli-options.d.ts.map +1 -0
  80. package/dist/types/cli-options.js +3 -0
  81. package/dist/types/cli-options.js.map +1 -0
  82. package/dist/utils/output-formatter.d.ts +67 -0
  83. package/dist/utils/output-formatter.d.ts.map +1 -0
  84. package/dist/utils/output-formatter.js +147 -0
  85. package/dist/utils/output-formatter.js.map +1 -0
  86. package/package.json +65 -0
@@ -0,0 +1,348 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.auditSearchCommand = auditSearchCommand;
40
+ exports.auditExportCommand = auditExportCommand;
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const cli_table3_1 = __importDefault(require("cli-table3"));
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const api_client_1 = require("../api/api-client");
46
+ /**
47
+ * Search audit logs
48
+ */
49
+ async function auditSearchCommand(options) {
50
+ console.log(chalk_1.default.bold.blue(`\n🔍 Searching audit logs...\n`));
51
+ try {
52
+ // Build search parameters
53
+ const searchParams = {};
54
+ if (options.user) {
55
+ searchParams.user_id = options.user;
56
+ }
57
+ if (options.from) {
58
+ // Parse date string
59
+ const fromDate = parseDate(options.from);
60
+ if (!fromDate) {
61
+ console.error(chalk_1.default.red(`Error: Invalid from date: ${options.from}`));
62
+ console.error(chalk_1.default.gray(' Expected format: YYYY-MM-DD or ISO 8601'));
63
+ process.exit(1);
64
+ }
65
+ searchParams.from_date = fromDate.toISOString();
66
+ }
67
+ if (options.to) {
68
+ // Parse date string
69
+ const toDate = parseDate(options.to);
70
+ if (!toDate) {
71
+ console.error(chalk_1.default.red(`Error: Invalid to date: ${options.to}`));
72
+ console.error(chalk_1.default.gray(' Expected format: YYYY-MM-DD or ISO 8601'));
73
+ process.exit(1);
74
+ }
75
+ searchParams.to_date = toDate.toISOString();
76
+ }
77
+ if (options.action) {
78
+ searchParams.action = options.action;
79
+ }
80
+ if (options.incident) {
81
+ searchParams.incident_id = options.incident;
82
+ }
83
+ if (options.limit) {
84
+ searchParams.limit = options.limit;
85
+ }
86
+ else {
87
+ searchParams.limit = 50; // Default limit
88
+ }
89
+ // Call search endpoint
90
+ const apiClient = (0, api_client_1.createAPIClient)();
91
+ const logs = await apiClient.post('/api/v1/audit/search', searchParams);
92
+ if (logs.length === 0) {
93
+ console.log(chalk_1.default.yellow('No audit logs found'));
94
+ console.log(chalk_1.default.gray(' Try adjusting your search criteria.'));
95
+ console.log();
96
+ return;
97
+ }
98
+ console.log(chalk_1.default.green(`✓ Found ${logs.length} audit log(s)\n`));
99
+ // Display logs in a table
100
+ const table = new cli_table3_1.default({
101
+ head: [
102
+ chalk_1.default.bold('Timestamp'),
103
+ chalk_1.default.bold('User'),
104
+ chalk_1.default.bold('Action'),
105
+ chalk_1.default.bold('Resource'),
106
+ chalk_1.default.bold('Incident ID'),
107
+ ],
108
+ colWidths: [20, 20, 25, 20, 20],
109
+ wordWrap: true,
110
+ });
111
+ logs.forEach((log) => {
112
+ table.push([
113
+ new Date(log.timestamp).toLocaleString(),
114
+ log.user_id,
115
+ formatAction(log.action),
116
+ `${log.resource_type}${log.resource_id ? '\n' + log.resource_id.substring(0, 15) : ''}`,
117
+ log.incident_id ? log.incident_id.substring(0, 15) : chalk_1.default.gray('N/A'),
118
+ ]);
119
+ });
120
+ console.log(table.toString());
121
+ console.log();
122
+ // Show summary
123
+ console.log(chalk_1.default.bold('Summary:'));
124
+ console.log(chalk_1.default.gray(` Total logs: ${logs.length}`));
125
+ const uniqueUsers = new Set(logs.map((l) => l.user_id));
126
+ console.log(chalk_1.default.gray(` Unique users: ${uniqueUsers.size}`));
127
+ const uniqueActions = new Set(logs.map((l) => l.action));
128
+ console.log(chalk_1.default.gray(` Unique actions: ${uniqueActions.size}`));
129
+ console.log();
130
+ // Show export option
131
+ console.log(chalk_1.default.bold('Export Options:'));
132
+ console.log(chalk_1.default.gray(' • Export as JSON: cloudops audit export --format json --output <file>'));
133
+ console.log(chalk_1.default.gray(' • Export as CSV: cloudops audit export --format csv --output <file>'));
134
+ console.log();
135
+ }
136
+ catch (error) {
137
+ handleAPIError(error, 'search audit logs');
138
+ }
139
+ }
140
+ /**
141
+ * Export audit logs
142
+ */
143
+ async function auditExportCommand(options) {
144
+ if (!options.output) {
145
+ console.error(chalk_1.default.red('Error: Output file is required'));
146
+ console.error(chalk_1.default.gray(' Use --output <file> to specify the output file'));
147
+ process.exit(1);
148
+ }
149
+ if (!options.format) {
150
+ console.error(chalk_1.default.red('Error: Export format is required'));
151
+ console.error(chalk_1.default.gray(' Use --format json or --format csv'));
152
+ process.exit(1);
153
+ }
154
+ const format = options.format.toLowerCase();
155
+ if (format !== 'json' && format !== 'csv') {
156
+ console.error(chalk_1.default.red(`Error: Invalid format: ${options.format}`));
157
+ console.error(chalk_1.default.gray(' Supported formats: json, csv'));
158
+ process.exit(1);
159
+ }
160
+ console.log(chalk_1.default.bold.blue(`\n📤 Exporting audit logs...\n`));
161
+ try {
162
+ // Build search parameters (same as search command)
163
+ const searchParams = {};
164
+ if (options.user) {
165
+ searchParams.user_id = options.user;
166
+ }
167
+ if (options.from) {
168
+ const fromDate = parseDate(options.from);
169
+ if (!fromDate) {
170
+ console.error(chalk_1.default.red(`Error: Invalid from date: ${options.from}`));
171
+ process.exit(1);
172
+ }
173
+ searchParams.from_date = fromDate.toISOString();
174
+ }
175
+ if (options.to) {
176
+ const toDate = parseDate(options.to);
177
+ if (!toDate) {
178
+ console.error(chalk_1.default.red(`Error: Invalid to date: ${options.to}`));
179
+ process.exit(1);
180
+ }
181
+ searchParams.to_date = toDate.toISOString();
182
+ }
183
+ if (options.action) {
184
+ searchParams.action = options.action;
185
+ }
186
+ if (options.incident) {
187
+ searchParams.incident_id = options.incident;
188
+ }
189
+ // No limit for export - get all matching logs
190
+ searchParams.limit = 10000;
191
+ // Build export request
192
+ const exportRequest = {
193
+ search_params: searchParams,
194
+ format: format,
195
+ };
196
+ // Call export endpoint
197
+ const apiClient = (0, api_client_1.createAPIClient)();
198
+ const exportData = await apiClient.post('/api/v1/audit/export', exportRequest);
199
+ // Write to file
200
+ const resolvedPath = path.resolve(options.output);
201
+ const dir = path.dirname(resolvedPath);
202
+ // Ensure directory exists
203
+ if (!fs.existsSync(dir)) {
204
+ fs.mkdirSync(dir, { recursive: true });
205
+ }
206
+ // Write data based on format
207
+ if (format === 'json') {
208
+ const jsonData = typeof exportData === 'string' ? exportData : JSON.stringify(exportData, null, 2);
209
+ fs.writeFileSync(resolvedPath, jsonData, 'utf-8');
210
+ }
211
+ else {
212
+ // CSV format
213
+ const csvData = typeof exportData === 'string' ? exportData : convertToCSV(exportData);
214
+ fs.writeFileSync(resolvedPath, csvData, 'utf-8');
215
+ }
216
+ console.log(chalk_1.default.green('✓ Audit logs exported successfully\n'));
217
+ const resultTable = new cli_table3_1.default({
218
+ colWidths: [25, 55],
219
+ wordWrap: true,
220
+ });
221
+ resultTable.push([chalk_1.default.bold('File'), chalk_1.default.cyan(resolvedPath)], [chalk_1.default.bold('Format'), format.toUpperCase()], [chalk_1.default.bold('Size'), `${(fs.statSync(resolvedPath).size / 1024).toFixed(2)} KB`]);
222
+ console.log(resultTable.toString());
223
+ console.log();
224
+ // Show summary
225
+ if (Array.isArray(exportData)) {
226
+ console.log(chalk_1.default.bold('Summary:'));
227
+ console.log(chalk_1.default.gray(` Total logs exported: ${exportData.length}`));
228
+ console.log();
229
+ }
230
+ }
231
+ catch (error) {
232
+ handleAPIError(error, 'export audit logs');
233
+ }
234
+ }
235
+ /**
236
+ * Parse date string to Date object
237
+ * Supports YYYY-MM-DD and ISO 8601 formats
238
+ */
239
+ function parseDate(dateStr) {
240
+ // Try ISO 8601 format first
241
+ const isoDate = new Date(dateStr);
242
+ if (!isNaN(isoDate.getTime())) {
243
+ return isoDate;
244
+ }
245
+ // Try YYYY-MM-DD format
246
+ const match = dateStr.match(/^(\d{4})-(\d{2})-(\d{2})$/);
247
+ if (match) {
248
+ const [, year, month, day] = match;
249
+ const date = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
250
+ if (!isNaN(date.getTime())) {
251
+ return date;
252
+ }
253
+ }
254
+ return null;
255
+ }
256
+ /**
257
+ * Convert audit logs to CSV format
258
+ */
259
+ function convertToCSV(logs) {
260
+ if (logs.length === 0) {
261
+ return '';
262
+ }
263
+ // CSV header
264
+ const headers = [
265
+ 'log_id',
266
+ 'tenant_id',
267
+ 'timestamp',
268
+ 'user_id',
269
+ 'action',
270
+ 'resource_type',
271
+ 'resource_id',
272
+ 'incident_id',
273
+ 'ip_address',
274
+ 'user_agent',
275
+ 'hash',
276
+ ];
277
+ const rows = [headers.join(',')];
278
+ // CSV rows
279
+ logs.forEach((log) => {
280
+ const row = [
281
+ escapeCsvValue(log.log_id),
282
+ escapeCsvValue(log.tenant_id),
283
+ escapeCsvValue(log.timestamp),
284
+ escapeCsvValue(log.user_id),
285
+ escapeCsvValue(log.action),
286
+ escapeCsvValue(log.resource_type),
287
+ escapeCsvValue(log.resource_id || ''),
288
+ escapeCsvValue(log.incident_id || ''),
289
+ escapeCsvValue(log.ip_address || ''),
290
+ escapeCsvValue(log.user_agent || ''),
291
+ escapeCsvValue(log.hash),
292
+ ];
293
+ rows.push(row.join(','));
294
+ });
295
+ return rows.join('\n');
296
+ }
297
+ /**
298
+ * Escape CSV value
299
+ */
300
+ function escapeCsvValue(value) {
301
+ if (value.includes(',') || value.includes('"') || value.includes('\n')) {
302
+ return `"${value.replace(/"/g, '""')}"`;
303
+ }
304
+ return value;
305
+ }
306
+ /**
307
+ * Format action with color
308
+ */
309
+ function formatAction(action) {
310
+ const actionColors = {
311
+ 'incident.create': chalk_1.default.blue,
312
+ 'incident.update': chalk_1.default.cyan,
313
+ 'incident.diagnose': chalk_1.default.magenta,
314
+ 'incident.remediate': chalk_1.default.yellow,
315
+ 'incident.execute': chalk_1.default.green,
316
+ 'plan.approve': chalk_1.default.green,
317
+ 'plan.reject': chalk_1.default.red,
318
+ 'runbook.execute': chalk_1.default.yellow,
319
+ 'auth.login': chalk_1.default.gray,
320
+ 'auth.logout': chalk_1.default.gray,
321
+ };
322
+ const colorFn = actionColors[action] || chalk_1.default.white;
323
+ return colorFn(action);
324
+ }
325
+ /**
326
+ * Handle API errors consistently
327
+ */
328
+ function handleAPIError(error, action) {
329
+ if (error instanceof api_client_1.APIError) {
330
+ console.error(chalk_1.default.red(`\n✗ Failed to ${action}:`));
331
+ console.error(chalk_1.default.red(` ${error.message}`));
332
+ if (error.statusCode === 401) {
333
+ console.error(chalk_1.default.yellow('\nAuthentication required. Please run: cloudops init'));
334
+ }
335
+ else if (error.statusCode === 403) {
336
+ console.error(chalk_1.default.yellow('\nAccess denied. Check your permissions.'));
337
+ }
338
+ else if (error.details) {
339
+ console.error(chalk_1.default.gray('\nDetails:'), error.details);
340
+ }
341
+ }
342
+ else {
343
+ console.error(chalk_1.default.red(`\n✗ Unexpected error:`));
344
+ console.error(chalk_1.default.red(` ${error instanceof Error ? error.message : 'Unknown error'}`));
345
+ }
346
+ process.exit(1);
347
+ }
348
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Options for config commands
3
+ */
4
+ export interface ConfigCommandOptions {
5
+ config?: string;
6
+ }
7
+ /**
8
+ * Show current configuration
9
+ */
10
+ export declare function configShowCommand(options: ConfigCommandOptions): Promise<void>;
11
+ /**
12
+ * Set a configuration value
13
+ */
14
+ export declare function configSetCommand(key: string, value: string, options: ConfigCommandOptions): Promise<void>;
15
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCpF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAuBf"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.configShowCommand = configShowCommand;
40
+ exports.configSetCommand = configSetCommand;
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const config_handler_1 = require("../config/config-handler");
43
+ /**
44
+ * Show current configuration
45
+ */
46
+ async function configShowCommand(options) {
47
+ const configHandler = options.config
48
+ ? new (await Promise.resolve().then(() => __importStar(require('../config/config-handler')))).ConfigHandler(options.config)
49
+ : (0, config_handler_1.getDefaultConfigHandler)();
50
+ try {
51
+ const config = configHandler.readConfig();
52
+ console.log(chalk_1.default.bold('\nCurrent Configuration:'));
53
+ console.log(chalk_1.default.gray('─'.repeat(50)));
54
+ console.log(chalk_1.default.cyan('Tenant ID: '), config.tenant_id);
55
+ console.log(chalk_1.default.cyan('Control Plane URL: '), config.control_plane_url);
56
+ console.log(chalk_1.default.cyan('Auth Method: '), config.auth.method);
57
+ if (config.auth.sso_provider) {
58
+ console.log(chalk_1.default.cyan('SSO Provider: '), config.auth.sso_provider);
59
+ }
60
+ if (config.auth.sso_url) {
61
+ console.log(chalk_1.default.cyan('SSO URL: '), config.auth.sso_url);
62
+ }
63
+ if (config.default_profile) {
64
+ console.log(chalk_1.default.cyan('Default Profile: '), config.default_profile);
65
+ }
66
+ console.log(chalk_1.default.gray('─'.repeat(50)));
67
+ console.log(chalk_1.default.gray(`\nConfig file: ${configHandler.getConfigPath()}\n`));
68
+ }
69
+ catch (error) {
70
+ if (error instanceof Error) {
71
+ throw new Error(`Failed to read configuration: ${error.message}`);
72
+ }
73
+ throw error;
74
+ }
75
+ }
76
+ /**
77
+ * Set a configuration value
78
+ */
79
+ async function configSetCommand(key, value, options) {
80
+ const configHandler = options.config
81
+ ? new (await Promise.resolve().then(() => __importStar(require('../config/config-handler')))).ConfigHandler(options.config)
82
+ : (0, config_handler_1.getDefaultConfigHandler)();
83
+ try {
84
+ // Read existing config
85
+ const config = configHandler.readConfig();
86
+ // Update the specified key
87
+ const updatedConfig = updateConfigValue(config, key, value);
88
+ // Write back to file
89
+ configHandler.writeConfig(updatedConfig);
90
+ console.log(chalk_1.default.green(`✓ Configuration updated: ${key} = ${value}`));
91
+ console.log(chalk_1.default.gray(`Config file: ${configHandler.getConfigPath()}\n`));
92
+ }
93
+ catch (error) {
94
+ if (error instanceof Error) {
95
+ throw new Error(`Failed to update configuration: ${error.message}`);
96
+ }
97
+ throw error;
98
+ }
99
+ }
100
+ /**
101
+ * Update a configuration value by key path
102
+ */
103
+ function updateConfigValue(config, key, value) {
104
+ const updatedConfig = { ...config };
105
+ // Handle nested keys with dot notation
106
+ const keys = key.split('.');
107
+ if (keys.length === 1) {
108
+ // Top-level keys
109
+ switch (key) {
110
+ case 'tenant_id':
111
+ updatedConfig.tenant_id = value;
112
+ break;
113
+ case 'control_plane_url':
114
+ updatedConfig.control_plane_url = value;
115
+ break;
116
+ case 'default_profile':
117
+ updatedConfig.default_profile = value;
118
+ break;
119
+ default:
120
+ throw new Error(`Unknown configuration key: ${key}`);
121
+ }
122
+ }
123
+ else if (keys.length === 2 && keys[0] === 'auth') {
124
+ // Auth nested keys
125
+ updatedConfig.auth = { ...config.auth };
126
+ switch (keys[1]) {
127
+ case 'method':
128
+ if (!['sso', 'oauth', 'api_key'].includes(value)) {
129
+ throw new Error('auth.method must be one of: sso, oauth, api_key');
130
+ }
131
+ updatedConfig.auth.method = value;
132
+ break;
133
+ case 'sso_provider':
134
+ updatedConfig.auth.sso_provider = value;
135
+ break;
136
+ case 'sso_url':
137
+ updatedConfig.auth.sso_url = value;
138
+ break;
139
+ default:
140
+ throw new Error(`Unknown auth configuration key: ${keys[1]}`);
141
+ }
142
+ }
143
+ else {
144
+ throw new Error(`Invalid configuration key: ${key}`);
145
+ }
146
+ return updatedConfig;
147
+ }
148
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Options for incident commands
3
+ */
4
+ export interface IncidentOptions {
5
+ config?: string;
6
+ profile?: string;
7
+ export?: string;
8
+ useProfile?: string;
9
+ iacTool?: string;
10
+ skipApproval?: boolean;
11
+ }
12
+ /**
13
+ * Get incident status
14
+ * Displays current status and metadata for an incident
15
+ */
16
+ export declare function incidentStatusCommand(incidentId: string, _options: IncidentOptions): Promise<void>;
17
+ /**
18
+ * Get incident context
19
+ * Displays gathered context including metrics, logs, events, topology, and changes
20
+ */
21
+ export declare function incidentContextCommand(incidentId: string, options: IncidentOptions): Promise<void>;
22
+ /**
23
+ * Get incident diagnosis
24
+ * Displays AI-generated root cause analysis with evidence
25
+ */
26
+ export declare function incidentDiagnoseCommand(incidentId: string, options: IncidentOptions): Promise<void>;
27
+ /**
28
+ * Ask a follow-up question about an incident
29
+ * Displays AI response based on existing context and conversation history
30
+ */
31
+ export declare function incidentAskCommand(incidentId: string, question: string, options: IncidentOptions): Promise<void>;
32
+ /**
33
+ * Generate remediation plan for an incident
34
+ * Displays remediation plan with risk assessment
35
+ */
36
+ export declare function incidentRemediateCommand(incidentId: string, options: IncidentOptions): Promise<void>;
37
+ /**
38
+ * Show remediation plan for an incident
39
+ */
40
+ export declare function incidentPlanShowCommand(incidentId: string, _options: IncidentOptions): Promise<void>;
41
+ /**
42
+ * Edit remediation plan for an incident
43
+ * Opens the plan in the default editor
44
+ */
45
+ export declare function incidentPlanEditCommand(incidentId: string, _options: IncidentOptions): Promise<void>;
46
+ /**
47
+ * Execute remediation plan for an incident
48
+ * Handles approval workflow and displays PR URL and pipeline status
49
+ */
50
+ export declare function incidentExecuteCommand(incidentId: string, options: IncidentOptions): Promise<void>;
51
+ /**
52
+ * List all incidents with optional filtering
53
+ * Displays incidents in a table format
54
+ */
55
+ export declare function incidentListCommand(options: IncidentOptions & {
56
+ status?: string;
57
+ severity?: string;
58
+ }): Promise<void>;
59
+ //# sourceMappingURL=incident.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incident.d.ts","sourceRoot":"","sources":["../../src/commands/incident.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAgJf;AA0MD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAoHf;AAoFD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAqEf;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAmJf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CA8Ff;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAuDf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAyIf;AAiDD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,eAAe,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,IAAI,CAAC,CAkDf"}