@autonoma-io/a6s 5.1.2

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 (92) hide show
  1. package/README.md +200 -0
  2. package/bin/binaries/a6s-darwin-amd64 +0 -0
  3. package/bin/binaries/a6s-darwin-arm64 +0 -0
  4. package/bin/binaries/a6s-linux-amd64 +0 -0
  5. package/bin/binaries/a6s-linux-arm64 +0 -0
  6. package/bin/binaries/a6s-win32-x64.exe +0 -0
  7. package/dist/commands/ai-learning-demo.d.ts +3 -0
  8. package/dist/commands/ai-learning-demo.d.ts.map +1 -0
  9. package/dist/commands/ai-learning-demo.js +176 -0
  10. package/dist/commands/ai-learning-demo.js.map +1 -0
  11. package/dist/commands/auth.d.ts +33 -0
  12. package/dist/commands/auth.d.ts.map +1 -0
  13. package/dist/commands/auth.js +603 -0
  14. package/dist/commands/auth.js.map +1 -0
  15. package/dist/consent/consent.d.ts +74 -0
  16. package/dist/consent/consent.d.ts.map +1 -0
  17. package/dist/consent/consent.js +184 -0
  18. package/dist/consent/consent.js.map +1 -0
  19. package/dist/consent/disclosure.d.ts +26 -0
  20. package/dist/consent/disclosure.d.ts.map +1 -0
  21. package/dist/consent/disclosure.js +170 -0
  22. package/dist/consent/disclosure.js.map +1 -0
  23. package/dist/consent/ignore.d.ts +50 -0
  24. package/dist/consent/ignore.d.ts.map +1 -0
  25. package/dist/consent/ignore.js +277 -0
  26. package/dist/consent/ignore.js.map +1 -0
  27. package/dist/consent/index.d.ts +4 -0
  28. package/dist/consent/index.d.ts.map +1 -0
  29. package/dist/consent/index.js +23 -0
  30. package/dist/consent/index.js.map +1 -0
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +390 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/interactive.d.ts +19 -0
  36. package/dist/interactive.d.ts.map +1 -0
  37. package/dist/interactive.js +367 -0
  38. package/dist/interactive.js.map +1 -0
  39. package/dist/modules/ab-testing.d.ts +16 -0
  40. package/dist/modules/ab-testing.d.ts.map +1 -0
  41. package/dist/modules/ab-testing.js +375 -0
  42. package/dist/modules/ab-testing.js.map +1 -0
  43. package/dist/modules/ai-orchestration.d.ts +70 -0
  44. package/dist/modules/ai-orchestration.d.ts.map +1 -0
  45. package/dist/modules/ai-orchestration.js +546 -0
  46. package/dist/modules/ai-orchestration.js.map +1 -0
  47. package/dist/modules/auth-access-control.d.ts +118 -0
  48. package/dist/modules/auth-access-control.d.ts.map +1 -0
  49. package/dist/modules/auth-access-control.js +832 -0
  50. package/dist/modules/auth-access-control.js.map +1 -0
  51. package/dist/modules/campaign.d.ts +20 -0
  52. package/dist/modules/campaign.d.ts.map +1 -0
  53. package/dist/modules/campaign.js +301 -0
  54. package/dist/modules/campaign.js.map +1 -0
  55. package/dist/modules/database.d.ts +14 -0
  56. package/dist/modules/database.d.ts.map +1 -0
  57. package/dist/modules/database.js +253 -0
  58. package/dist/modules/database.js.map +1 -0
  59. package/dist/modules/deployment.d.ts +17 -0
  60. package/dist/modules/deployment.d.ts.map +1 -0
  61. package/dist/modules/deployment.js +201 -0
  62. package/dist/modules/deployment.js.map +1 -0
  63. package/dist/modules/edge-computing.d.ts +130 -0
  64. package/dist/modules/edge-computing.d.ts.map +1 -0
  65. package/dist/modules/edge-computing.js +672 -0
  66. package/dist/modules/edge-computing.js.map +1 -0
  67. package/dist/modules/load-testing.d.ts +21 -0
  68. package/dist/modules/load-testing.d.ts.map +1 -0
  69. package/dist/modules/load-testing.js +372 -0
  70. package/dist/modules/load-testing.js.map +1 -0
  71. package/dist/modules/monitoring.d.ts +18 -0
  72. package/dist/modules/monitoring.d.ts.map +1 -0
  73. package/dist/modules/monitoring.js +375 -0
  74. package/dist/modules/monitoring.js.map +1 -0
  75. package/dist/modules/onboarding.d.ts +20 -0
  76. package/dist/modules/onboarding.d.ts.map +1 -0
  77. package/dist/modules/onboarding.js +455 -0
  78. package/dist/modules/onboarding.js.map +1 -0
  79. package/dist/nlp/memory.d.ts +43 -0
  80. package/dist/nlp/memory.d.ts.map +1 -0
  81. package/dist/nlp/memory.js +205 -0
  82. package/dist/nlp/memory.js.map +1 -0
  83. package/dist/nlp/processor.d.ts +29 -0
  84. package/dist/nlp/processor.d.ts.map +1 -0
  85. package/dist/nlp/processor.js +321 -0
  86. package/dist/nlp/processor.js.map +1 -0
  87. package/dist/utils/db-client.d.ts +35 -0
  88. package/dist/utils/db-client.d.ts.map +1 -0
  89. package/dist/utils/db-client.js +132 -0
  90. package/dist/utils/db-client.js.map +1 -0
  91. package/package.json +97 -0
  92. package/scripts/chmod-binaries.js +33 -0
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DatabaseModule = void 0;
7
+ const pg_1 = require("pg");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const child_process_1 = require("child_process");
11
+ const util_1 = require("util");
12
+ const path_1 = __importDefault(require("path"));
13
+ const promises_1 = __importDefault(require("fs/promises"));
14
+ const db_client_1 = require("../utils/db-client");
15
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
16
+ class DatabaseModule {
17
+ dbClient;
18
+ connectionString;
19
+ constructor() {
20
+ this.connectionString = db_client_1.DEFAULT_CONNECTION_STRING;
21
+ // Use secure SSL configuration with AWS RDS CA bundle
22
+ this.dbClient = (0, db_client_1.createDbClient)(this.connectionString);
23
+ }
24
+ async runMigrations() {
25
+ const spinner = (0, ora_1.default)('Running database migrations...').start();
26
+ try {
27
+ await this.dbClient.connect();
28
+ // Check for migrations table
29
+ const tableExists = await this.dbClient.query(`
30
+ SELECT EXISTS (
31
+ SELECT FROM information_schema.tables
32
+ WHERE table_name = 'migrations'
33
+ );
34
+ `);
35
+ if (!tableExists.rows[0].exists) {
36
+ spinner.text = 'Creating migrations table...';
37
+ await this.dbClient.query(`
38
+ CREATE TABLE migrations (
39
+ id SERIAL PRIMARY KEY,
40
+ name VARCHAR(255) UNIQUE NOT NULL,
41
+ executed_at TIMESTAMP DEFAULT NOW()
42
+ );
43
+ `);
44
+ }
45
+ // Get list of migration files
46
+ const migrationsPath = path_1.default.join(process.env.HOME || '', 'Desktop/Dev/autonoma/migrations');
47
+ let migrationFiles = [];
48
+ try {
49
+ const files = await promises_1.default.readdir(migrationsPath);
50
+ migrationFiles = files.filter(f => f.endsWith('.sql')).sort();
51
+ }
52
+ catch (error) {
53
+ spinner.warn('No migrations directory found');
54
+ return;
55
+ }
56
+ // Check which migrations have been run
57
+ const executedMigrations = await this.dbClient.query('SELECT name FROM migrations');
58
+ const executed = new Set(executedMigrations.rows.map(r => r.name));
59
+ // Run pending migrations
60
+ let migrationsRun = 0;
61
+ for (const file of migrationFiles) {
62
+ if (!executed.has(file)) {
63
+ spinner.text = `Running migration: ${file}`;
64
+ const sql = await promises_1.default.readFile(path_1.default.join(migrationsPath, file), 'utf-8');
65
+ try {
66
+ await this.dbClient.query('BEGIN');
67
+ await this.dbClient.query(sql);
68
+ await this.dbClient.query('INSERT INTO migrations (name) VALUES ($1)', [file]);
69
+ await this.dbClient.query('COMMIT');
70
+ migrationsRun++;
71
+ }
72
+ catch (error) {
73
+ await this.dbClient.query('ROLLBACK');
74
+ throw new Error(`Migration ${file} failed: ${error.message}`);
75
+ }
76
+ }
77
+ }
78
+ if (migrationsRun > 0) {
79
+ spinner.succeed(`Successfully ran ${migrationsRun} migration(s)`);
80
+ }
81
+ else {
82
+ spinner.succeed('All migrations are up to date');
83
+ }
84
+ }
85
+ catch (error) {
86
+ spinner.fail('Migration failed');
87
+ console.error(chalk_1.default.red('Error:'), error.message);
88
+ throw error;
89
+ }
90
+ finally {
91
+ await this.dbClient.end();
92
+ }
93
+ }
94
+ async executeQuery(sql, options = {}) {
95
+ const spinner = (0, ora_1.default)('Executing query...').start();
96
+ try {
97
+ // Safety check for destructive queries
98
+ if (options.safe) {
99
+ const lowerSql = sql.toLowerCase();
100
+ if (lowerSql.includes('drop') || lowerSql.includes('delete') ||
101
+ lowerSql.includes('truncate') || lowerSql.includes('update')) {
102
+ spinner.fail('Unsafe query detected. Remove --safe flag to execute destructive queries.');
103
+ return;
104
+ }
105
+ }
106
+ await this.dbClient.connect();
107
+ const result = await this.dbClient.query(sql);
108
+ spinner.stop();
109
+ // Display results
110
+ if (result.rows && result.rows.length > 0) {
111
+ console.log(chalk_1.default.cyan(`\n📊 Query Results (${result.rows.length} rows):\n`));
112
+ // Simple table rendering
113
+ console.table(result.rows.slice(0, 20));
114
+ if (result.rows.length > 20) {
115
+ console.log(chalk_1.default.gray(`\n... and ${result.rows.length - 20} more rows`));
116
+ }
117
+ }
118
+ else if (result.command) {
119
+ console.log(chalk_1.default.green(`\n✅ Query executed successfully`));
120
+ console.log(chalk_1.default.gray(`Command: ${result.command}`));
121
+ if (result.rowCount !== null) {
122
+ console.log(chalk_1.default.gray(`Rows affected: ${result.rowCount}`));
123
+ }
124
+ }
125
+ else {
126
+ console.log(chalk_1.default.yellow('\nQuery executed but returned no results'));
127
+ }
128
+ }
129
+ catch (error) {
130
+ spinner.fail('Query execution failed');
131
+ console.error(chalk_1.default.red('Error:'), error.message);
132
+ throw error;
133
+ }
134
+ finally {
135
+ await this.dbClient.end();
136
+ }
137
+ }
138
+ async createBackup() {
139
+ const spinner = (0, ora_1.default)('Creating database backup...').start();
140
+ try {
141
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
142
+ const backupPath = path_1.default.join(process.env.HOME || '', 'Desktop/Dev/autonoma/backups');
143
+ const backupFile = path_1.default.join(backupPath, `autonoma-backup-${timestamp}.sql`);
144
+ // Ensure backup directory exists
145
+ await promises_1.default.mkdir(backupPath, { recursive: true });
146
+ spinner.text = 'Dumping database...';
147
+ // Parse connection string
148
+ const url = new URL(this.connectionString.replace('postgresql://', 'http://'));
149
+ const host = url.hostname;
150
+ const port = url.port || '5432';
151
+ const database = url.pathname.slice(1).split('?')[0];
152
+ const username = url.username;
153
+ const password = url.password;
154
+ // Execute pg_dump
155
+ const env = { ...process.env, PGPASSWORD: password };
156
+ const command = `pg_dump -h ${host} -p ${port} -U ${username} -d ${database} -f ${backupFile} --no-owner --no-acl`;
157
+ await execAsync(command, { env });
158
+ // Get file size
159
+ const stats = await promises_1.default.stat(backupFile);
160
+ const sizeMB = (stats.size / 1024 / 1024).toFixed(2);
161
+ spinner.succeed(`Backup created successfully`);
162
+ console.log(chalk_1.default.green('\n✅ Database backup completed!'));
163
+ console.log(chalk_1.default.gray(`File: ${backupFile}`));
164
+ console.log(chalk_1.default.gray(`Size: ${sizeMB} MB`));
165
+ // Also create a compressed version
166
+ spinner.start('Compressing backup...');
167
+ await execAsync(`gzip -k ${backupFile}`);
168
+ spinner.succeed('Backup compressed');
169
+ const compressedStats = await promises_1.default.stat(`${backupFile}.gz`);
170
+ const compressedSizeMB = (compressedStats.size / 1024 / 1024).toFixed(2);
171
+ console.log(chalk_1.default.gray(`Compressed size: ${compressedSizeMB} MB`));
172
+ }
173
+ catch (error) {
174
+ spinner.fail('Backup failed');
175
+ console.error(chalk_1.default.red('Error:'), error.message);
176
+ throw error;
177
+ }
178
+ }
179
+ async fixSSLConfiguration() {
180
+ const spinner = (0, ora_1.default)('Fixing SSL configuration...').start();
181
+ try {
182
+ spinner.text = 'Testing current connection...';
183
+ // Test without SSL fix
184
+ const testClient = new pg_1.Client({
185
+ connectionString: this.connectionString
186
+ });
187
+ let needsFix = false;
188
+ try {
189
+ await testClient.connect();
190
+ await testClient.query('SELECT 1');
191
+ await testClient.end();
192
+ }
193
+ catch (error) {
194
+ if (error.message.includes('self-signed certificate')) {
195
+ needsFix = true;
196
+ }
197
+ }
198
+ if (!needsFix) {
199
+ spinner.succeed('SSL configuration is already working');
200
+ return;
201
+ }
202
+ spinner.text = 'Applying SSL fix with CA bundle...';
203
+ // Create a test with proper SSL configuration using CA bundle
204
+ const fixedClient = (0, db_client_1.createDbClient)(this.connectionString);
205
+ await fixedClient.connect();
206
+ await fixedClient.query('SELECT 1');
207
+ await fixedClient.end();
208
+ spinner.succeed('SSL configuration fixed');
209
+ console.log(chalk_1.default.green('\n✅ SSL configuration has been fixed!'));
210
+ console.log(chalk_1.default.yellow('\n⚠️ Important: Using AWS RDS CA bundle for SSL validation'));
211
+ console.log(chalk_1.default.gray('The CA bundle is loaded from certs/rds-global-bundle.pem'));
212
+ console.log(chalk_1.default.gray('This is more secure than disabling SSL verification'));
213
+ // Check all endpoints for SSL configuration
214
+ spinner.start('Checking endpoints for SSL configuration...');
215
+ const endpointsToCheck = [
216
+ '/api/admin/health',
217
+ '/api/admin/send-campaign-v3',
218
+ '/api/admin/add-columns',
219
+ '/api/admin/import-contacts'
220
+ ];
221
+ console.log(chalk_1.default.cyan('\n📋 Endpoint SSL Status:\n'));
222
+ for (const endpoint of endpointsToCheck) {
223
+ try {
224
+ const response = await fetch(`https://www.theautonoma.io${endpoint}`, {
225
+ method: 'POST',
226
+ headers: {
227
+ 'Authorization': `Bearer ${process.env.AUTONOMA_API_KEY || ''}`,
228
+ 'Content-Type': 'application/json'
229
+ },
230
+ body: JSON.stringify({ test: true })
231
+ });
232
+ if (response.ok) {
233
+ console.log(chalk_1.default.green(` ✅ ${endpoint} - SSL working`));
234
+ }
235
+ else {
236
+ console.log(chalk_1.default.red(` ❌ ${endpoint} - Failed (${response.status})`));
237
+ }
238
+ }
239
+ catch (error) {
240
+ console.log(chalk_1.default.red(` ❌ ${endpoint} - Error: ${error.message}`));
241
+ }
242
+ }
243
+ spinner.stop();
244
+ }
245
+ catch (error) {
246
+ spinner.fail('SSL fix failed');
247
+ console.error(chalk_1.default.red('Error:'), error.message);
248
+ throw error;
249
+ }
250
+ }
251
+ }
252
+ exports.DatabaseModule = DatabaseModule;
253
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/modules/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ interface DeploymentOptions {
2
+ env?: string;
3
+ skipTests?: boolean;
4
+ force?: boolean;
5
+ }
6
+ export declare class DeploymentModule {
7
+ private ecsClient;
8
+ private readonly scriptPath;
9
+ private readonly websitePath;
10
+ constructor();
11
+ deployLatest(options?: DeploymentOptions): Promise<void>;
12
+ rollback(targetRevision?: string): Promise<void>;
13
+ showStatus(): Promise<void>;
14
+ private monitorDeployment;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=deployment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../src/modules/deployment.ts"],"names":[],"mappings":"AASA,UAAU,iBAAiB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsG;IACjI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqE;;IAM3F,YAAY,CAAC,OAAO,GAAE,iBAAsB;IAsE5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM;IA0ChC,UAAU;YAuEF,iBAAiB;CAkChC"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DeploymentModule = void 0;
7
+ const child_process_1 = require("child_process");
8
+ const util_1 = require("util");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const ora_1 = __importDefault(require("ora"));
11
+ const client_ecs_1 = require("@aws-sdk/client-ecs");
12
+ const path_1 = __importDefault(require("path"));
13
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
14
+ class DeploymentModule {
15
+ ecsClient;
16
+ scriptPath = path_1.default.join(process.env.HOME || '', 'Desktop/Dev/autonoma/scripts/deploy-10-step-ultra-verified.sh');
17
+ websitePath = path_1.default.join(process.env.HOME || '', 'Desktop/Dev/autonoma/website');
18
+ constructor() {
19
+ this.ecsClient = new client_ecs_1.ECSClient({ region: 'us-east-1' });
20
+ }
21
+ async deployLatest(options = {}) {
22
+ const spinner = (0, ora_1.default)('Starting deployment process...').start();
23
+ try {
24
+ // Step 1: Check for uncommitted changes
25
+ spinner.text = 'Checking for uncommitted changes...';
26
+ const gitStatus = await execAsync('git status --porcelain', { cwd: this.websitePath });
27
+ if (gitStatus.stdout && !options.force) {
28
+ spinner.fail('Uncommitted changes detected');
29
+ console.log(chalk_1.default.yellow('\nUncommitted files:'));
30
+ console.log(gitStatus.stdout);
31
+ console.log(chalk_1.default.gray('Use --force to deploy anyway or commit your changes first'));
32
+ return;
33
+ }
34
+ // Step 2: Run tests unless skipped
35
+ if (!options.skipTests) {
36
+ spinner.text = 'Running tests...';
37
+ await execAsync('npm run lint && npm run typecheck', { cwd: this.websitePath });
38
+ spinner.succeed('Tests passed');
39
+ }
40
+ // Step 3: Build Next.js app
41
+ spinner.text = 'Building Next.js application...';
42
+ await execAsync('npm run build', { cwd: this.websitePath });
43
+ spinner.succeed('Build completed');
44
+ // Step 4: Execute proven deployment script
45
+ spinner.text = 'Deploying to AWS ECS (this may take 5-10 minutes)...';
46
+ // Set environment variables for deployment. SENDGRID_* must come from
47
+ // the operator's environment; do NOT inject hardcoded fallbacks here —
48
+ // they propagate into npm tarballs and trigger SendGrid auto-deletion
49
+ // (incident: 2025-08-31 key found in @autonoma-io/a6s 5.1.0 + 5.1.1
50
+ // by SendGrid scanner 2026-04-28).
51
+ const env = {
52
+ ...process.env,
53
+ SKIP_GIT_CHECK: options.force ? 'true' : 'false',
54
+ TARGET_ENV: options.env || 'production'
55
+ };
56
+ const { stdout } = await execAsync(this.scriptPath, {
57
+ cwd: this.websitePath,
58
+ env,
59
+ maxBuffer: 1024 * 1024 * 10 // 10MB buffer for large outputs
60
+ });
61
+ // Extract revision number from output
62
+ const revisionMatch = stdout.match(/revision:\s*(\d+)/i);
63
+ const revision = revisionMatch ? revisionMatch[1] : 'unknown';
64
+ spinner.succeed(`Deployment initiated (revision ${revision})`);
65
+ // Step 5: Monitor deployment status
66
+ await this.monitorDeployment(revision);
67
+ console.log(chalk_1.default.green('\n✅ Deployment completed successfully!'));
68
+ console.log(chalk_1.default.gray(`URL: https://www.theautonoma.io`));
69
+ }
70
+ catch (error) {
71
+ spinner.fail('Deployment failed');
72
+ console.error(chalk_1.default.red('Error:'), error.message);
73
+ if (error.stderr) {
74
+ console.error(chalk_1.default.red('Details:'), error.stderr);
75
+ }
76
+ throw error;
77
+ }
78
+ }
79
+ async rollback(targetRevision) {
80
+ const spinner = (0, ora_1.default)('Fetching deployment history...').start();
81
+ try {
82
+ // Get current and previous task definitions
83
+ const result = await this.ecsClient.send(new client_ecs_1.DescribeServicesCommand({
84
+ cluster: 'autonoma-alpha',
85
+ services: ['autonoma-web']
86
+ }));
87
+ const service = result.services?.[0];
88
+ if (!service) {
89
+ throw new Error('Service not found');
90
+ }
91
+ const currentTaskDef = service.taskDefinition?.split(':').pop();
92
+ const previousRevision = targetRevision || String(Number(currentTaskDef) - 1);
93
+ spinner.text = `Rolling back to revision ${previousRevision}...`;
94
+ // Update service with previous task definition
95
+ await this.ecsClient.send(new client_ecs_1.UpdateServiceCommand({
96
+ cluster: 'autonoma-alpha',
97
+ service: 'autonoma-web',
98
+ taskDefinition: `autonoma-alpha-web:${previousRevision}`,
99
+ forceNewDeployment: true
100
+ }));
101
+ spinner.succeed(`Rollback to revision ${previousRevision} initiated`);
102
+ // Monitor rollback
103
+ await this.monitorDeployment(previousRevision);
104
+ console.log(chalk_1.default.green('\n✅ Rollback completed successfully!'));
105
+ }
106
+ catch (error) {
107
+ spinner.fail('Rollback failed');
108
+ console.error(chalk_1.default.red('Error:'), error.message);
109
+ throw error;
110
+ }
111
+ }
112
+ async showStatus() {
113
+ const spinner = (0, ora_1.default)('Fetching deployment status...').start();
114
+ try {
115
+ // Get service status
116
+ const serviceResult = await this.ecsClient.send(new client_ecs_1.DescribeServicesCommand({
117
+ cluster: 'autonoma-alpha',
118
+ services: ['autonoma-web']
119
+ }));
120
+ const service = serviceResult.services?.[0];
121
+ if (!service) {
122
+ throw new Error('Service not found');
123
+ }
124
+ spinner.stop();
125
+ // Display service information
126
+ console.log(chalk_1.default.cyan('\n📊 Deployment Status\n'));
127
+ console.log(chalk_1.default.white('Service:'), 'autonoma-web');
128
+ console.log(chalk_1.default.white('Status:'), service.status);
129
+ console.log(chalk_1.default.white('Running Tasks:'), `${service.runningCount}/${service.desiredCount}`);
130
+ console.log(chalk_1.default.white('Task Definition:'), service.taskDefinition?.split('/').pop());
131
+ // Get recent deployments
132
+ if (service.deployments && service.deployments.length > 0) {
133
+ console.log(chalk_1.default.cyan('\n📋 Recent Deployments:\n'));
134
+ service.deployments.slice(0, 3).forEach((deployment, index) => {
135
+ const taskDef = deployment.taskDefinition?.split(':').pop();
136
+ const status = deployment.status === 'PRIMARY' ? chalk_1.default.green('PRIMARY') : chalk_1.default.gray(deployment.status);
137
+ console.log(` ${index + 1}. Revision ${taskDef} - ${status}`);
138
+ console.log(` Running: ${deployment.runningCount}/${deployment.desiredCount}`);
139
+ console.log(` Created: ${deployment.createdAt?.toLocaleString()}`);
140
+ });
141
+ }
142
+ // Get running tasks
143
+ const tasksResult = await this.ecsClient.send(new client_ecs_1.ListTasksCommand({
144
+ cluster: 'autonoma-alpha',
145
+ serviceName: 'autonoma-web',
146
+ desiredStatus: 'RUNNING'
147
+ }));
148
+ if (tasksResult.taskArns && tasksResult.taskArns.length > 0) {
149
+ const taskDetails = await this.ecsClient.send(new client_ecs_1.DescribeTasksCommand({
150
+ cluster: 'autonoma-alpha',
151
+ tasks: tasksResult.taskArns
152
+ }));
153
+ console.log(chalk_1.default.cyan('\n🏃 Running Tasks:\n'));
154
+ taskDetails.tasks?.forEach((task, index) => {
155
+ const taskId = task.taskArn?.split('/').pop()?.substring(0, 8);
156
+ const image = task.containers?.[0]?.image?.split(':').pop();
157
+ console.log(` ${index + 1}. Task ${taskId} - Image: ${image}`);
158
+ console.log(` Status: ${task.lastStatus}`);
159
+ console.log(` Started: ${task.startedAt?.toLocaleString()}`);
160
+ });
161
+ }
162
+ console.log(chalk_1.default.cyan('\n🔗 Links:\n'));
163
+ console.log(` Website: ${chalk_1.default.blue('https://www.theautonoma.io')}`);
164
+ console.log(` AWS Console: ${chalk_1.default.blue('https://console.aws.amazon.com/ecs/home?region=us-east-1')}`);
165
+ }
166
+ catch (error) {
167
+ spinner.fail('Failed to fetch status');
168
+ console.error(chalk_1.default.red('Error:'), error.message);
169
+ throw error;
170
+ }
171
+ }
172
+ async monitorDeployment(targetRevision) {
173
+ const spinner = (0, ora_1.default)(`Monitoring deployment of revision ${targetRevision}...`).start();
174
+ let attempts = 0;
175
+ const maxAttempts = 40;
176
+ while (attempts < maxAttempts) {
177
+ const result = await this.ecsClient.send(new client_ecs_1.DescribeServicesCommand({
178
+ cluster: 'autonoma-alpha',
179
+ services: ['autonoma-web']
180
+ }));
181
+ const service = result.services?.[0];
182
+ const primaryDeployment = service?.deployments?.find(d => d.status === 'PRIMARY');
183
+ const currentRevision = primaryDeployment?.taskDefinition?.split(':').pop();
184
+ const runningCount = primaryDeployment?.runningCount || 0;
185
+ const desiredCount = primaryDeployment?.desiredCount || 0;
186
+ spinner.text = `Monitoring revision ${targetRevision} (${runningCount}/${desiredCount} running)`;
187
+ if (currentRevision === targetRevision && runningCount === desiredCount && runningCount > 0) {
188
+ spinner.succeed(`Deployment complete! All tasks running revision ${targetRevision}`);
189
+ break;
190
+ }
191
+ if (attempts >= maxAttempts) {
192
+ spinner.warn('Deployment is taking longer than expected. Check AWS console for details.');
193
+ break;
194
+ }
195
+ await new Promise(resolve => setTimeout(resolve, 15000)); // Wait 15 seconds
196
+ attempts++;
197
+ }
198
+ }
199
+ }
200
+ exports.DeploymentModule = DeploymentModule;
201
+ //# sourceMappingURL=deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../src/modules/deployment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import { EventEmitter } from 'events';
2
+ export declare class EdgeComputingModule extends EventEmitter {
3
+ private edgeModels;
4
+ private deployments;
5
+ private localCache;
6
+ private performanceMetrics;
7
+ constructor();
8
+ private initializeEdgeModels;
9
+ private createDeploymentConfigurations;
10
+ /**
11
+ * Execute inference at the edge
12
+ */
13
+ executeEdgeInference(task: string, options?: any): Promise<any>;
14
+ /**
15
+ * Select best edge model based on task and constraints
16
+ */
17
+ private selectBestEdgeModel;
18
+ /**
19
+ * Prepare model for edge deployment
20
+ */
21
+ private prepareModelForEdge;
22
+ /**
23
+ * Quantize internal model for edge
24
+ */
25
+ private quantizeInternalModel;
26
+ /**
27
+ * Build cache index for third-party models
28
+ */
29
+ private buildCacheIndex;
30
+ /**
31
+ * Load distilled knowledge from large models
32
+ */
33
+ private loadDistilledKnowledge;
34
+ /**
35
+ * Load quantized model
36
+ */
37
+ private loadQuantizedModel;
38
+ /**
39
+ * Run local inference on edge
40
+ */
41
+ private runLocalInference;
42
+ /**
43
+ * Run TensorFlow inference
44
+ */
45
+ private runTensorFlowInference;
46
+ /**
47
+ * Run ONNX inference
48
+ */
49
+ private runONNXInference;
50
+ /**
51
+ * Run CoreML inference (for Apple Silicon)
52
+ */
53
+ private runCoreMLInference;
54
+ /**
55
+ * Run WebGPU inference (browser/edge)
56
+ */
57
+ private runWebGPUInference;
58
+ /**
59
+ * Run cached inference for third-party models
60
+ */
61
+ private runCachedInference;
62
+ /**
63
+ * Helper methods
64
+ */
65
+ private determineTaskType;
66
+ private getDeploymentConfig;
67
+ private isHardwareAvailable;
68
+ private calculateModelScore;
69
+ private simulateQuantization;
70
+ private tokenize;
71
+ private findSimilarCached;
72
+ private fallbackToCloud;
73
+ private trackPerformance;
74
+ /**
75
+ * Public API Methods
76
+ */
77
+ getEdgeCapabilities(): Promise<{
78
+ availableModels: {
79
+ id: string;
80
+ type: "internal" | "third-party-cached" | "distilled" | "quantized";
81
+ source: string;
82
+ size: string;
83
+ latency: string;
84
+ location: "edge" | "fog" | "cloud";
85
+ quantization: "8bit" | "4bit" | "2bit" | undefined;
86
+ hardware: "cpu" | "gpu" | "npu" | "tpu" | undefined;
87
+ }[];
88
+ deployments: {
89
+ name: string;
90
+ modelCount: number;
91
+ cacheSize: string;
92
+ maxLatency: string;
93
+ offlineCapable: boolean;
94
+ }[];
95
+ supportedFormats: string[];
96
+ quantizationLevels: string[];
97
+ hardwareAcceleration: string[];
98
+ }>;
99
+ compareEdgeVsCloud(task: string): Promise<{
100
+ edge: {
101
+ latency: string;
102
+ location: any;
103
+ model: any;
104
+ cost: string;
105
+ privacy: string;
106
+ offline: boolean;
107
+ };
108
+ cloud: {
109
+ latency: string;
110
+ location: string;
111
+ model: string;
112
+ cost: string;
113
+ privacy: string;
114
+ offline: boolean;
115
+ };
116
+ improvement: {
117
+ latencyReduction: string;
118
+ costSaving: string;
119
+ privacyGain: string;
120
+ };
121
+ }>;
122
+ getPerformanceMetrics(): Promise<{
123
+ model: string;
124
+ inferences: any;
125
+ avgLatency: string;
126
+ cacheHitRate: string;
127
+ reliability: string;
128
+ }[]>;
129
+ }
130
+ //# sourceMappingURL=edge-computing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-computing.d.ts","sourceRoot":"","sources":["../../src/modules/edge-computing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AA6BtC,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,kBAAkB,CAAmB;;IAW7C,OAAO,CAAC,oBAAoB;IAgI5B,OAAO,CAAC,8BAA8B;IAiDtC;;OAEG;IACG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ;IAyC1D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;YACW,mBAAmB;IA8BjC;;OAEG;YACW,qBAAqB;IA2BnC;;OAEG;YACW,eAAe;IAmB7B;;OAEG;YACW,sBAAsB;IAepC;;OAEG;YACW,kBAAkB;IAchC;;OAEG;YACW,iBAAiB;IAsC/B;;OAEG;YACW,sBAAsB;IAuBpC;;OAEG;YACW,gBAAgB;IAkB9B;;OAEG;YACW,kBAAkB;IAUhC;;OAEG;YACW,kBAAkB;IAUhC;;OAEG;YACW,kBAAkB;IAwBhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,iBAAiB;YAQX,eAAe;IAS7B,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACG,mBAAmB;;;;;;;;;;;;;;;;;;;;;;IAyBnB,kBAAkB,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;IAkC/B,qBAAqB;;;;;;;CAgB5B"}