legionai 1.0.0-beta.6 → 1.0.0-beta.8
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/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +2 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/license.d.ts +41 -0
- package/dist/auth/license.d.ts.map +1 -0
- package/dist/auth/license.js +202 -0
- package/dist/auth/license.js.map +1 -0
- package/dist/commands/activate.d.ts +3 -0
- package/dist/commands/activate.d.ts.map +1 -0
- package/dist/commands/activate.js +129 -0
- package/dist/commands/activate.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +278 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/deploy.d.ts +3 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +430 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +306 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/recruit.d.ts +3 -0
- package/dist/commands/recruit.d.ts.map +1 -0
- package/dist/commands/recruit.js +136 -0
- package/dist/commands/recruit.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +130 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/wizard.d.ts +9 -0
- package/dist/commands/wizard.d.ts.map +1 -0
- package/dist/commands/wizard.js +719 -0
- package/dist/commands/wizard.js.map +1 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +2 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/store.d.ts +24 -0
- package/dist/config/store.d.ts.map +1 -0
- package/dist/config/store.js +95 -0
- package/dist/config/store.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/legion.cjs +736 -228
- package/dist/legion.mjs +1180 -0
- package/dist/ui/animations.d.ts +162 -0
- package/dist/ui/animations.d.ts.map +1 -0
- package/dist/ui/animations.js +734 -0
- package/dist/ui/animations.js.map +1 -0
- package/dist/ui/theme.d.ts +164 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +324 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/wizard/agent-setup.d.ts +15 -0
- package/dist/wizard/agent-setup.d.ts.map +1 -0
- package/dist/wizard/agent-setup.js +654 -0
- package/dist/wizard/agent-setup.js.map +1 -0
- package/dist/wizard/existing-project.d.ts +50 -0
- package/dist/wizard/existing-project.d.ts.map +1 -0
- package/dist/wizard/existing-project.js +700 -0
- package/dist/wizard/existing-project.js.map +1 -0
- package/dist/wizard/index.d.ts +8 -0
- package/dist/wizard/index.d.ts.map +1 -0
- package/dist/wizard/index.js +11 -0
- package/dist/wizard/index.js.map +1 -0
- package/dist/wizard/mcp-config.d.ts +14 -0
- package/dist/wizard/mcp-config.d.ts.map +1 -0
- package/dist/wizard/mcp-config.js +410 -0
- package/dist/wizard/mcp-config.js.map +1 -0
- package/dist/wizard/post-setup.d.ts +10 -0
- package/dist/wizard/post-setup.d.ts.map +1 -0
- package/dist/wizard/post-setup.js +288 -0
- package/dist/wizard/post-setup.js.map +1 -0
- package/dist/wizard/questions.d.ts +18 -0
- package/dist/wizard/questions.d.ts.map +1 -0
- package/dist/wizard/questions.js +473 -0
- package/dist/wizard/questions.js.map +1 -0
- package/dist/wizard/strategic-phase.d.ts +54 -0
- package/dist/wizard/strategic-phase.d.ts.map +1 -0
- package/dist/wizard/strategic-phase.js +570 -0
- package/dist/wizard/strategic-phase.js.map +1 -0
- package/dist/wizard/wizard-animations.d.ts +42 -0
- package/dist/wizard/wizard-animations.d.ts.map +1 -0
- package/dist/wizard/wizard-animations.js +662 -0
- package/dist/wizard/wizard-animations.js.map +1 -0
- package/package.json +10 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface LicenseInfo {
|
|
2
|
+
isValid: boolean;
|
|
3
|
+
tier: 'beta' | 'standard' | 'pro' | null;
|
|
4
|
+
expiresAt: Date | null;
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Validate a license key
|
|
9
|
+
* In production, this would call your license server
|
|
10
|
+
*/
|
|
11
|
+
export declare function validateLicense(key: string): Promise<LicenseInfo>;
|
|
12
|
+
/**
|
|
13
|
+
* Activate a license key
|
|
14
|
+
*/
|
|
15
|
+
export declare function activateLicense(key: string): Promise<LicenseInfo>;
|
|
16
|
+
/**
|
|
17
|
+
* Check if there's a valid active license
|
|
18
|
+
*/
|
|
19
|
+
export declare function checkLicense(): LicenseInfo;
|
|
20
|
+
/**
|
|
21
|
+
* Deactivate the current license
|
|
22
|
+
*/
|
|
23
|
+
export declare function deactivateLicense(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Get stored license info (for display)
|
|
26
|
+
*/
|
|
27
|
+
export declare function getLicenseInfo(): {
|
|
28
|
+
key: string | null;
|
|
29
|
+
tier: string | null;
|
|
30
|
+
activatedAt: string | null;
|
|
31
|
+
expiresAt: string | null;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Require valid license - throws if not valid
|
|
35
|
+
*/
|
|
36
|
+
export declare function requireLicense(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Display license status
|
|
39
|
+
*/
|
|
40
|
+
export declare function displayLicenseStatus(): void;
|
|
41
|
+
//# sourceMappingURL=license.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/auth/license.ts"],"names":[],"mappings":"AA8CA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC;IACzC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAyCvE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAavE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,WAAW,CAoD1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAChC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAOA;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAgBrC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAqB3C"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// LegionAI License Validation
|
|
3
|
+
// Protects IP by requiring valid license
|
|
4
|
+
// ============================================
|
|
5
|
+
import Conf from 'conf';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import crypto from 'crypto';
|
|
8
|
+
import os from 'os';
|
|
9
|
+
// License store (separate from project config)
|
|
10
|
+
const licenseStore = new Conf({
|
|
11
|
+
projectName: 'legionai-license',
|
|
12
|
+
encryptionKey: 'legion-ai-2024-secure-key', // In production, use env var
|
|
13
|
+
defaults: {
|
|
14
|
+
licenseKey: null,
|
|
15
|
+
activatedAt: null,
|
|
16
|
+
expiresAt: null,
|
|
17
|
+
tier: null,
|
|
18
|
+
machineId: null,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
// Generate machine-specific ID for license binding
|
|
22
|
+
function getMachineId() {
|
|
23
|
+
const data = `${os.hostname()}-${os.platform()}-${os.arch()}-${os.cpus()[0]?.model || 'unknown'}`;
|
|
24
|
+
return crypto.createHash('sha256').update(data).digest('hex').substring(0, 16);
|
|
25
|
+
}
|
|
26
|
+
// Beta license keys (in production, these would be validated server-side)
|
|
27
|
+
// Format: LEGION-BETA-XXXX-XXXX-XXXX
|
|
28
|
+
const BETA_KEYS = new Set([
|
|
29
|
+
'LEGION-BETA-2024-ALPHA-0001',
|
|
30
|
+
'LEGION-BETA-2024-ALPHA-0002',
|
|
31
|
+
'LEGION-BETA-2024-ALPHA-0003',
|
|
32
|
+
'LEGION-BETA-2024-EARLY-0001',
|
|
33
|
+
'LEGION-BETA-2024-EARLY-0002',
|
|
34
|
+
// Add more beta keys as needed
|
|
35
|
+
]);
|
|
36
|
+
/**
|
|
37
|
+
* Validate a license key
|
|
38
|
+
* In production, this would call your license server
|
|
39
|
+
*/
|
|
40
|
+
export async function validateLicense(key) {
|
|
41
|
+
// Normalize key
|
|
42
|
+
const normalizedKey = key.trim().toUpperCase();
|
|
43
|
+
// Check format
|
|
44
|
+
if (!normalizedKey.startsWith('LEGION-')) {
|
|
45
|
+
return {
|
|
46
|
+
isValid: false,
|
|
47
|
+
tier: null,
|
|
48
|
+
expiresAt: null,
|
|
49
|
+
message: 'Invalid license key format',
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// Beta key validation (local for now)
|
|
53
|
+
if (BETA_KEYS.has(normalizedKey)) {
|
|
54
|
+
const expiresAt = new Date();
|
|
55
|
+
expiresAt.setMonth(expiresAt.getMonth() + 3); // Beta expires in 3 months
|
|
56
|
+
return {
|
|
57
|
+
isValid: true,
|
|
58
|
+
tier: 'beta',
|
|
59
|
+
expiresAt,
|
|
60
|
+
message: 'Beta license activated',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// TODO: In production, call license server
|
|
64
|
+
// const response = await fetch('https://api.legionai.dev/validate', {
|
|
65
|
+
// method: 'POST',
|
|
66
|
+
// headers: { 'Content-Type': 'application/json' },
|
|
67
|
+
// body: JSON.stringify({ key: normalizedKey, machineId: getMachineId() }),
|
|
68
|
+
// });
|
|
69
|
+
// return await response.json();
|
|
70
|
+
return {
|
|
71
|
+
isValid: false,
|
|
72
|
+
tier: null,
|
|
73
|
+
expiresAt: null,
|
|
74
|
+
message: 'Invalid or expired license key',
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Activate a license key
|
|
79
|
+
*/
|
|
80
|
+
export async function activateLicense(key) {
|
|
81
|
+
const validation = await validateLicense(key);
|
|
82
|
+
if (validation.isValid) {
|
|
83
|
+
// Store the license
|
|
84
|
+
licenseStore.set('licenseKey', key.trim().toUpperCase());
|
|
85
|
+
licenseStore.set('activatedAt', new Date().toISOString());
|
|
86
|
+
licenseStore.set('expiresAt', validation.expiresAt?.toISOString() || null);
|
|
87
|
+
licenseStore.set('tier', validation.tier);
|
|
88
|
+
licenseStore.set('machineId', getMachineId());
|
|
89
|
+
}
|
|
90
|
+
return validation;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Check if there's a valid active license
|
|
94
|
+
*/
|
|
95
|
+
export function checkLicense() {
|
|
96
|
+
const licenseKey = licenseStore.get('licenseKey');
|
|
97
|
+
const expiresAt = licenseStore.get('expiresAt');
|
|
98
|
+
const tier = licenseStore.get('tier');
|
|
99
|
+
const storedMachineId = licenseStore.get('machineId');
|
|
100
|
+
// No license stored
|
|
101
|
+
if (!licenseKey) {
|
|
102
|
+
return {
|
|
103
|
+
isValid: false,
|
|
104
|
+
tier: null,
|
|
105
|
+
expiresAt: null,
|
|
106
|
+
message: 'No license activated',
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
// Check machine binding
|
|
110
|
+
if (storedMachineId && storedMachineId !== getMachineId()) {
|
|
111
|
+
return {
|
|
112
|
+
isValid: false,
|
|
113
|
+
tier: null,
|
|
114
|
+
expiresAt: null,
|
|
115
|
+
message: 'License is bound to a different machine',
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// Check expiration
|
|
119
|
+
if (expiresAt) {
|
|
120
|
+
const expDate = new Date(expiresAt);
|
|
121
|
+
if (expDate < new Date()) {
|
|
122
|
+
return {
|
|
123
|
+
isValid: false,
|
|
124
|
+
tier: null,
|
|
125
|
+
expiresAt: expDate,
|
|
126
|
+
message: 'License has expired',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
isValid: true,
|
|
131
|
+
tier,
|
|
132
|
+
expiresAt: expDate,
|
|
133
|
+
message: `${tier} license active`,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
isValid: true,
|
|
138
|
+
tier,
|
|
139
|
+
expiresAt: null,
|
|
140
|
+
message: `${tier} license active (no expiration)`,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Deactivate the current license
|
|
145
|
+
*/
|
|
146
|
+
export function deactivateLicense() {
|
|
147
|
+
licenseStore.clear();
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get stored license info (for display)
|
|
151
|
+
*/
|
|
152
|
+
export function getLicenseInfo() {
|
|
153
|
+
return {
|
|
154
|
+
key: licenseStore.get('licenseKey'),
|
|
155
|
+
tier: licenseStore.get('tier'),
|
|
156
|
+
activatedAt: licenseStore.get('activatedAt'),
|
|
157
|
+
expiresAt: licenseStore.get('expiresAt'),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Require valid license - throws if not valid
|
|
162
|
+
*/
|
|
163
|
+
export function requireLicense() {
|
|
164
|
+
const license = checkLicense();
|
|
165
|
+
if (!license.isValid) {
|
|
166
|
+
console.log('');
|
|
167
|
+
console.log(chalk.red('⚔️ License Required'));
|
|
168
|
+
console.log('');
|
|
169
|
+
console.log(chalk.dim('LegionAI requires a valid license to operate.'));
|
|
170
|
+
console.log('');
|
|
171
|
+
console.log(chalk.white('To activate your license:'));
|
|
172
|
+
console.log(chalk.hex('#FF6B00')(' legionai activate <LICENSE-KEY>'));
|
|
173
|
+
console.log('');
|
|
174
|
+
console.log(chalk.dim('Get a license at: https://legionai.dev/pricing'));
|
|
175
|
+
console.log('');
|
|
176
|
+
process.exit(1);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Display license status
|
|
181
|
+
*/
|
|
182
|
+
export function displayLicenseStatus() {
|
|
183
|
+
const license = checkLicense();
|
|
184
|
+
const info = getLicenseInfo();
|
|
185
|
+
console.log('');
|
|
186
|
+
if (license.isValid) {
|
|
187
|
+
console.log(chalk.green(`✓ License: ${license.tier?.toUpperCase()} (Active)`));
|
|
188
|
+
if (license.expiresAt) {
|
|
189
|
+
const daysLeft = Math.ceil((license.expiresAt.getTime() - Date.now()) / (1000 * 60 * 60 * 24));
|
|
190
|
+
console.log(chalk.dim(` Expires: ${license.expiresAt.toLocaleDateString()} (${daysLeft} days)`));
|
|
191
|
+
}
|
|
192
|
+
if (info.key) {
|
|
193
|
+
console.log(chalk.dim(` Key: ${info.key.substring(0, 15)}...`));
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
console.log(chalk.red(`✗ License: ${license.message}`));
|
|
198
|
+
console.log(chalk.dim(' Run: legionai activate <LICENSE-KEY>'));
|
|
199
|
+
}
|
|
200
|
+
console.log('');
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=license.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license.js","sourceRoot":"","sources":["../../src/auth/license.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activate.d.ts","sourceRoot":"","sources":["../../src/commands/activate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,eAAe,SAoIxB,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// LegionAI Activate Command
|
|
3
|
+
// License activation for beta/paid users
|
|
4
|
+
// ============================================
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import boxen from 'boxen';
|
|
8
|
+
import ora from 'ora';
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
import { activateLicense, checkLicense, displayLicenseStatus, deactivateLicense, } from '../auth/license.js';
|
|
11
|
+
export const activateCommand = new Command('activate')
|
|
12
|
+
.description('Activate your LegionAI license')
|
|
13
|
+
.argument('[license-key]', 'Your license key')
|
|
14
|
+
.option('--status', 'Check current license status')
|
|
15
|
+
.option('--deactivate', 'Deactivate current license')
|
|
16
|
+
.action(async (licenseKey, options) => {
|
|
17
|
+
console.log('');
|
|
18
|
+
console.log(boxen(chalk.bold.hex('#FF6B00')(' ⚔️ LegionAI License Activation ⚔️ '), {
|
|
19
|
+
padding: 1,
|
|
20
|
+
borderStyle: 'round',
|
|
21
|
+
borderColor: '#FF6B00',
|
|
22
|
+
}));
|
|
23
|
+
// Status check
|
|
24
|
+
if (options?.status) {
|
|
25
|
+
displayLicenseStatus();
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// Deactivate
|
|
29
|
+
if (options?.deactivate) {
|
|
30
|
+
const currentLicense = checkLicense();
|
|
31
|
+
if (!currentLicense.isValid) {
|
|
32
|
+
console.log(chalk.yellow('\n⚠️ No active license to deactivate.\n'));
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const { confirm } = await inquirer.prompt([
|
|
36
|
+
{
|
|
37
|
+
type: 'confirm',
|
|
38
|
+
name: 'confirm',
|
|
39
|
+
message: 'Are you sure you want to deactivate your license?',
|
|
40
|
+
default: false,
|
|
41
|
+
},
|
|
42
|
+
]);
|
|
43
|
+
if (confirm) {
|
|
44
|
+
deactivateLicense();
|
|
45
|
+
console.log(chalk.green('\n✓ License deactivated successfully.\n'));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
console.log(chalk.dim('\nDeactivation cancelled.\n'));
|
|
49
|
+
}
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
// Check if already activated
|
|
53
|
+
const currentLicense = checkLicense();
|
|
54
|
+
if (currentLicense.isValid) {
|
|
55
|
+
console.log('');
|
|
56
|
+
console.log(chalk.green(`✓ You already have an active ${currentLicense.tier} license.`));
|
|
57
|
+
displayLicenseStatus();
|
|
58
|
+
const { reactivate } = await inquirer.prompt([
|
|
59
|
+
{
|
|
60
|
+
type: 'confirm',
|
|
61
|
+
name: 'reactivate',
|
|
62
|
+
message: 'Do you want to activate a different license?',
|
|
63
|
+
default: false,
|
|
64
|
+
},
|
|
65
|
+
]);
|
|
66
|
+
if (!reactivate) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Get license key
|
|
71
|
+
let key = licenseKey;
|
|
72
|
+
if (!key) {
|
|
73
|
+
const response = await inquirer.prompt([
|
|
74
|
+
{
|
|
75
|
+
type: 'input',
|
|
76
|
+
name: 'licenseKey',
|
|
77
|
+
message: 'Enter your license key:',
|
|
78
|
+
validate: (input) => {
|
|
79
|
+
if (!input || input.trim().length === 0) {
|
|
80
|
+
return 'License key is required';
|
|
81
|
+
}
|
|
82
|
+
if (!input.trim().toUpperCase().startsWith('LEGION-')) {
|
|
83
|
+
return 'Invalid license key format (should start with LEGION-)';
|
|
84
|
+
}
|
|
85
|
+
return true;
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
]);
|
|
89
|
+
key = response.licenseKey;
|
|
90
|
+
}
|
|
91
|
+
// Activate
|
|
92
|
+
const spinner = ora('Validating license...').start();
|
|
93
|
+
try {
|
|
94
|
+
const result = await activateLicense(key);
|
|
95
|
+
if (result.isValid) {
|
|
96
|
+
spinner.succeed('License activated!');
|
|
97
|
+
console.log('');
|
|
98
|
+
console.log(boxen(chalk.green.bold('✓ Welcome to the Legion, Commander!\n\n') +
|
|
99
|
+
chalk.white(`Tier: ${result.tier?.toUpperCase()}\n`) +
|
|
100
|
+
(result.expiresAt
|
|
101
|
+
? chalk.dim(`Expires: ${result.expiresAt.toLocaleDateString()}`)
|
|
102
|
+
: chalk.dim('No expiration')), {
|
|
103
|
+
padding: 1,
|
|
104
|
+
borderStyle: 'round',
|
|
105
|
+
borderColor: 'green',
|
|
106
|
+
}));
|
|
107
|
+
console.log('');
|
|
108
|
+
console.log(chalk.hex('#FF6B00')('Next steps:'));
|
|
109
|
+
console.log(chalk.dim(' legionai init <project-name> # Create a new Legion project'));
|
|
110
|
+
console.log(chalk.dim(' legionai recruit # Recruit your agents'));
|
|
111
|
+
console.log(chalk.dim(' legionai deploy # Deploy your Legion'));
|
|
112
|
+
console.log('');
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
spinner.fail('License validation failed');
|
|
116
|
+
console.log('');
|
|
117
|
+
console.log(chalk.red(`✗ ${result.message}`));
|
|
118
|
+
console.log('');
|
|
119
|
+
console.log(chalk.dim('Need a license? Visit: https://legionai.dev/pricing'));
|
|
120
|
+
console.log('');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
spinner.fail('Activation failed');
|
|
125
|
+
console.error(chalk.red('Error:'), error);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=activate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activate.js","sourceRoot":"","sources":["../../src/commands/activate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,aAAa,SAoLtB,CAAC"}
|