@autonoma-io/a6s 5.2.1 → 5.3.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.
- package/bin/binaries/a6s-darwin-arm64 +0 -0
- package/bin/binaries/a6s-darwin-x64 +0 -0
- package/bin/binaries/a6s-linux-arm64 +0 -0
- package/bin/binaries/a6s-linux-x64 +0 -0
- package/bin/binaries/a6s-win32-x64.exe +0 -0
- package/dist/go-bridge.d.ts +14 -0
- package/dist/go-bridge.d.ts.map +1 -0
- package/dist/go-bridge.js +92 -0
- package/dist/go-bridge.js.map +1 -0
- package/dist/go-verbs.generated.d.ts +2 -0
- package/dist/go-verbs.generated.d.ts.map +1 -0
- package/dist/go-verbs.generated.js +46 -0
- package/dist/go-verbs.generated.js.map +1 -0
- package/dist/index.js +79 -312
- package/dist/index.js.map +1 -1
- package/dist/interactive.d.ts +9 -2
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +38 -194
- package/dist/interactive.js.map +1 -1
- package/dist/nlp/command-map.d.ts +33 -0
- package/dist/nlp/command-map.d.ts.map +1 -0
- package/dist/nlp/command-map.js +275 -0
- package/dist/nlp/command-map.js.map +1 -0
- package/dist/nlp/processor.d.ts +10 -0
- package/dist/nlp/processor.d.ts.map +1 -1
- package/dist/nlp/processor.js +81 -94
- package/dist/nlp/processor.js.map +1 -1
- package/package.json +7 -31
- package/dist/commands/ai-learning-demo.d.ts +0 -3
- package/dist/commands/ai-learning-demo.d.ts.map +0 -1
- package/dist/commands/ai-learning-demo.js +0 -176
- package/dist/commands/ai-learning-demo.js.map +0 -1
- package/dist/commands/auth.d.ts +0 -33
- package/dist/commands/auth.d.ts.map +0 -1
- package/dist/commands/auth.js +0 -603
- package/dist/commands/auth.js.map +0 -1
- package/dist/modules/ab-testing.d.ts +0 -16
- package/dist/modules/ab-testing.d.ts.map +0 -1
- package/dist/modules/ab-testing.js +0 -375
- package/dist/modules/ab-testing.js.map +0 -1
- package/dist/modules/ai-orchestration.d.ts +0 -70
- package/dist/modules/ai-orchestration.d.ts.map +0 -1
- package/dist/modules/ai-orchestration.js +0 -546
- package/dist/modules/ai-orchestration.js.map +0 -1
- package/dist/modules/auth-access-control.d.ts +0 -118
- package/dist/modules/auth-access-control.d.ts.map +0 -1
- package/dist/modules/auth-access-control.js +0 -832
- package/dist/modules/auth-access-control.js.map +0 -1
- package/dist/modules/campaign.d.ts +0 -20
- package/dist/modules/campaign.d.ts.map +0 -1
- package/dist/modules/campaign.js +0 -301
- package/dist/modules/campaign.js.map +0 -1
- package/dist/modules/database.d.ts +0 -14
- package/dist/modules/database.d.ts.map +0 -1
- package/dist/modules/database.js +0 -253
- package/dist/modules/database.js.map +0 -1
- package/dist/modules/deployment.d.ts +0 -17
- package/dist/modules/deployment.d.ts.map +0 -1
- package/dist/modules/deployment.js +0 -201
- package/dist/modules/deployment.js.map +0 -1
- package/dist/modules/edge-computing.d.ts +0 -130
- package/dist/modules/edge-computing.d.ts.map +0 -1
- package/dist/modules/edge-computing.js +0 -656
- package/dist/modules/edge-computing.js.map +0 -1
- package/dist/modules/load-testing.d.ts +0 -21
- package/dist/modules/load-testing.d.ts.map +0 -1
- package/dist/modules/load-testing.js +0 -372
- package/dist/modules/load-testing.js.map +0 -1
- package/dist/modules/monitoring.d.ts +0 -18
- package/dist/modules/monitoring.d.ts.map +0 -1
- package/dist/modules/monitoring.js +0 -375
- package/dist/modules/monitoring.js.map +0 -1
- package/dist/modules/onboarding.d.ts +0 -20
- package/dist/modules/onboarding.d.ts.map +0 -1
- package/dist/modules/onboarding.js +0 -455
- package/dist/modules/onboarding.js.map +0 -1
- package/dist/utils/db-client.d.ts +0 -35
- package/dist/utils/db-client.d.ts.map +0 -1
- package/dist/utils/db-client.js +0 -132
- package/dist/utils/db-client.js.map +0 -1
|
@@ -1,375 +0,0 @@
|
|
|
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.ABTestingModule = void 0;
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const ora_1 = __importDefault(require("ora"));
|
|
9
|
-
const table_1 = require("table");
|
|
10
|
-
const db_client_1 = require("../utils/db-client");
|
|
11
|
-
class ABTestingModule {
|
|
12
|
-
dbClient;
|
|
13
|
-
constructor() {
|
|
14
|
-
// Use secure SSL configuration with AWS RDS CA bundle
|
|
15
|
-
this.dbClient = (0, db_client_1.createDbClient)();
|
|
16
|
-
}
|
|
17
|
-
async createExperiment(name, options = {}) {
|
|
18
|
-
const spinner = (0, ora_1.default)('Creating A/B test experiment...').start();
|
|
19
|
-
try {
|
|
20
|
-
await this.dbClient.connect();
|
|
21
|
-
// Parse variants
|
|
22
|
-
const variantNames = options.variants?.split(',').map(v => v.trim()) || ['control', 'treatment'];
|
|
23
|
-
// Parse traffic split
|
|
24
|
-
const splitRatios = options.split?.split('/').map(s => parseInt(s)) ||
|
|
25
|
-
variantNames.map(() => Math.floor(100 / variantNames.length));
|
|
26
|
-
// Validate split ratios
|
|
27
|
-
const totalSplit = splitRatios.reduce((a, b) => a + b, 0);
|
|
28
|
-
if (totalSplit !== 100) {
|
|
29
|
-
spinner.fail(`Traffic split must equal 100% (currently ${totalSplit}%)`);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
spinner.text = 'Setting up experiment...';
|
|
33
|
-
// Check if experiments table exists
|
|
34
|
-
const tableExists = await this.dbClient.query(`
|
|
35
|
-
SELECT EXISTS (
|
|
36
|
-
SELECT FROM information_schema.tables
|
|
37
|
-
WHERE table_name = 'ab_experiments'
|
|
38
|
-
);
|
|
39
|
-
`);
|
|
40
|
-
if (!tableExists.rows[0].exists) {
|
|
41
|
-
spinner.text = 'Creating experiments table...';
|
|
42
|
-
await this.dbClient.query(`
|
|
43
|
-
CREATE TABLE ab_experiments (
|
|
44
|
-
id SERIAL PRIMARY KEY,
|
|
45
|
-
name VARCHAR(255) UNIQUE NOT NULL,
|
|
46
|
-
variants JSONB NOT NULL,
|
|
47
|
-
traffic_split JSONB NOT NULL,
|
|
48
|
-
status VARCHAR(50) DEFAULT 'active',
|
|
49
|
-
winner VARCHAR(100),
|
|
50
|
-
created_at TIMESTAMP DEFAULT NOW(),
|
|
51
|
-
updated_at TIMESTAMP DEFAULT NOW()
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
CREATE TABLE ab_experiment_events (
|
|
55
|
-
id SERIAL PRIMARY KEY,
|
|
56
|
-
experiment_id INTEGER REFERENCES ab_experiments(id),
|
|
57
|
-
variant VARCHAR(100) NOT NULL,
|
|
58
|
-
event_type VARCHAR(50) NOT NULL,
|
|
59
|
-
user_id VARCHAR(255),
|
|
60
|
-
metadata JSONB,
|
|
61
|
-
created_at TIMESTAMP DEFAULT NOW()
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
CREATE INDEX idx_experiment_events_exp_id ON ab_experiment_events(experiment_id);
|
|
65
|
-
CREATE INDEX idx_experiment_events_variant ON ab_experiment_events(variant);
|
|
66
|
-
`);
|
|
67
|
-
}
|
|
68
|
-
// Create experiment
|
|
69
|
-
const result = await this.dbClient.query(`
|
|
70
|
-
INSERT INTO ab_experiments (name, variants, traffic_split, status)
|
|
71
|
-
VALUES ($1, $2, $3, 'active')
|
|
72
|
-
RETURNING id
|
|
73
|
-
`, [name, JSON.stringify(variantNames), JSON.stringify(splitRatios)]);
|
|
74
|
-
const experimentId = result.rows[0].id;
|
|
75
|
-
spinner.succeed(`Experiment "${name}" created successfully`);
|
|
76
|
-
// Display experiment configuration
|
|
77
|
-
console.log(chalk_1.default.cyan('\n🧪 Experiment Configuration:\n'));
|
|
78
|
-
console.log(` ID: ${experimentId}`);
|
|
79
|
-
console.log(` Name: ${name}`);
|
|
80
|
-
console.log(` Status: ${chalk_1.default.green('Active')}`);
|
|
81
|
-
console.log(` Variants: ${variantNames.join(', ')}`);
|
|
82
|
-
console.log(` Split: ${variantNames.map((v, i) => `${v}: ${splitRatios[i]}%`).join(', ')}`);
|
|
83
|
-
// Generate implementation code
|
|
84
|
-
console.log(chalk_1.default.cyan('\n📝 Implementation Code:\n'));
|
|
85
|
-
console.log(chalk_1.default.gray('```typescript'));
|
|
86
|
-
console.log(`// In your application code:
|
|
87
|
-
const variant = await getExperimentVariant('${name}', userId);
|
|
88
|
-
|
|
89
|
-
if (variant === 'control') {
|
|
90
|
-
// Show original experience
|
|
91
|
-
} else if (variant === 'treatment') {
|
|
92
|
-
// Show new experience
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// Track conversion:
|
|
96
|
-
await trackConversion('${name}', variant, userId);`);
|
|
97
|
-
console.log(chalk_1.default.gray('```'));
|
|
98
|
-
console.log(chalk_1.default.yellow('\n⚠️ Note: Implement getExperimentVariant() and trackConversion() in your application'));
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
spinner.fail('Failed to create experiment');
|
|
102
|
-
console.error(chalk_1.default.red('Error:'), error.message);
|
|
103
|
-
throw error;
|
|
104
|
-
}
|
|
105
|
-
finally {
|
|
106
|
-
await this.dbClient.end();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
async showMetrics(experimentName) {
|
|
110
|
-
const spinner = (0, ora_1.default)('Fetching experiment metrics...').start();
|
|
111
|
-
try {
|
|
112
|
-
await this.dbClient.connect();
|
|
113
|
-
// Get experiments
|
|
114
|
-
let query = `
|
|
115
|
-
SELECT
|
|
116
|
-
e.id,
|
|
117
|
-
e.name,
|
|
118
|
-
e.variants,
|
|
119
|
-
e.traffic_split,
|
|
120
|
-
e.status,
|
|
121
|
-
e.winner,
|
|
122
|
-
e.created_at
|
|
123
|
-
FROM ab_experiments e
|
|
124
|
-
`;
|
|
125
|
-
const params = [];
|
|
126
|
-
if (experimentName) {
|
|
127
|
-
query += ' WHERE e.name = $1';
|
|
128
|
-
params.push(experimentName);
|
|
129
|
-
}
|
|
130
|
-
query += ' ORDER BY e.created_at DESC';
|
|
131
|
-
const experimentsResult = await this.dbClient.query(query, params);
|
|
132
|
-
if (experimentsResult.rows.length === 0) {
|
|
133
|
-
spinner.warn('No experiments found');
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
spinner.stop();
|
|
137
|
-
console.log(chalk_1.default.cyan('\n🧪 A/B Test Experiments:\n'));
|
|
138
|
-
for (const exp of experimentsResult.rows) {
|
|
139
|
-
// Get metrics for each experiment
|
|
140
|
-
const metricsResult = await this.dbClient.query(`
|
|
141
|
-
SELECT
|
|
142
|
-
variant,
|
|
143
|
-
event_type,
|
|
144
|
-
COUNT(*) as count,
|
|
145
|
-
COUNT(DISTINCT user_id) as unique_users
|
|
146
|
-
FROM ab_experiment_events
|
|
147
|
-
WHERE experiment_id = $1
|
|
148
|
-
GROUP BY variant, event_type
|
|
149
|
-
`, [exp.id]);
|
|
150
|
-
const metrics = this.calculateMetrics(metricsResult.rows, exp.variants);
|
|
151
|
-
console.log(chalk_1.default.blue(`📊 ${exp.name}`));
|
|
152
|
-
console.log(` Status: ${this.getStatusColor(exp.status)}`);
|
|
153
|
-
console.log(` Created: ${exp.created_at.toLocaleDateString()}`);
|
|
154
|
-
if (exp.winner) {
|
|
155
|
-
console.log(` Winner: ${chalk_1.default.green(exp.winner)} 🏆`);
|
|
156
|
-
}
|
|
157
|
-
// Display variant metrics
|
|
158
|
-
const tableData = [
|
|
159
|
-
['Variant', 'Split', 'Impressions', 'Conversions', 'Rate', 'Confidence'],
|
|
160
|
-
...exp.variants.map((variant, i) => [
|
|
161
|
-
variant,
|
|
162
|
-
`${exp.traffic_split[i]}%`,
|
|
163
|
-
metrics.impressions.get(variant) || 0,
|
|
164
|
-
metrics.conversions.get(variant) || 0,
|
|
165
|
-
`${((metrics.conversionRates.get(variant) || 0) * 100).toFixed(2)}%`,
|
|
166
|
-
variant === metrics.winner ? chalk_1.default.green(`${metrics.confidence.toFixed(1)}%`) : '-'
|
|
167
|
-
])
|
|
168
|
-
];
|
|
169
|
-
console.log((0, table_1.table)(tableData));
|
|
170
|
-
// Statistical significance
|
|
171
|
-
if (metrics.confidence >= 95) {
|
|
172
|
-
console.log(chalk_1.default.green(` ✅ Statistically significant (${metrics.confidence.toFixed(1)}% confidence)`));
|
|
173
|
-
console.log(chalk_1.default.green(` 🏆 Winner: ${metrics.winner}`));
|
|
174
|
-
}
|
|
175
|
-
else if (metrics.confidence >= 90) {
|
|
176
|
-
console.log(chalk_1.default.yellow(` ⚠️ Approaching significance (${metrics.confidence.toFixed(1)}% confidence)`));
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
console.log(chalk_1.default.gray(` 📊 Need more data (${metrics.confidence.toFixed(1)}% confidence)`));
|
|
180
|
-
}
|
|
181
|
-
console.log('');
|
|
182
|
-
}
|
|
183
|
-
// Show recommendations
|
|
184
|
-
await this.showRecommendations(experimentsResult.rows);
|
|
185
|
-
}
|
|
186
|
-
catch (error) {
|
|
187
|
-
spinner.fail('Failed to fetch metrics');
|
|
188
|
-
console.error(chalk_1.default.red('Error:'), error.message);
|
|
189
|
-
throw error;
|
|
190
|
-
}
|
|
191
|
-
finally {
|
|
192
|
-
await this.dbClient.end();
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
async concludeExperiment(name) {
|
|
196
|
-
const spinner = (0, ora_1.default)('Concluding experiment...').start();
|
|
197
|
-
try {
|
|
198
|
-
await this.dbClient.connect();
|
|
199
|
-
// Get experiment
|
|
200
|
-
const expResult = await this.dbClient.query(`
|
|
201
|
-
SELECT id, variants, status
|
|
202
|
-
FROM ab_experiments
|
|
203
|
-
WHERE name = $1
|
|
204
|
-
`, [name]);
|
|
205
|
-
if (expResult.rows.length === 0) {
|
|
206
|
-
spinner.fail('Experiment not found');
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
const experiment = expResult.rows[0];
|
|
210
|
-
if (experiment.status === 'concluded') {
|
|
211
|
-
spinner.warn('Experiment already concluded');
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
spinner.text = 'Analyzing results...';
|
|
215
|
-
// Get final metrics
|
|
216
|
-
const metricsResult = await this.dbClient.query(`
|
|
217
|
-
SELECT
|
|
218
|
-
variant,
|
|
219
|
-
event_type,
|
|
220
|
-
COUNT(*) as count,
|
|
221
|
-
COUNT(DISTINCT user_id) as unique_users
|
|
222
|
-
FROM ab_experiment_events
|
|
223
|
-
WHERE experiment_id = $1
|
|
224
|
-
GROUP BY variant, event_type
|
|
225
|
-
`, [experiment.id]);
|
|
226
|
-
const metrics = this.calculateMetrics(metricsResult.rows, experiment.variants);
|
|
227
|
-
// Determine winner
|
|
228
|
-
let winner = 'control';
|
|
229
|
-
let maxRate = 0;
|
|
230
|
-
metrics.conversionRates.forEach((rate, variant) => {
|
|
231
|
-
if (rate > maxRate) {
|
|
232
|
-
maxRate = rate;
|
|
233
|
-
winner = variant;
|
|
234
|
-
}
|
|
235
|
-
});
|
|
236
|
-
// Update experiment
|
|
237
|
-
await this.dbClient.query(`
|
|
238
|
-
UPDATE ab_experiments
|
|
239
|
-
SET status = 'concluded',
|
|
240
|
-
winner = $1,
|
|
241
|
-
updated_at = NOW()
|
|
242
|
-
WHERE id = $2
|
|
243
|
-
`, [winner, experiment.id]);
|
|
244
|
-
spinner.succeed('Experiment concluded');
|
|
245
|
-
// Display results
|
|
246
|
-
console.log(chalk_1.default.cyan('\n🏁 Experiment Results:\n'));
|
|
247
|
-
console.log(` Experiment: ${name}`);
|
|
248
|
-
console.log(` Winner: ${chalk_1.default.green(winner)} 🏆`);
|
|
249
|
-
console.log(` Lift: ${chalk_1.default.green(`+${((maxRate - (metrics.conversionRates.get('control') || 0)) * 100).toFixed(2)}%`)}`);
|
|
250
|
-
console.log(` Confidence: ${metrics.confidence.toFixed(1)}%`);
|
|
251
|
-
// Display final metrics
|
|
252
|
-
const tableData = [
|
|
253
|
-
['Variant', 'Impressions', 'Conversions', 'Rate', 'Result'],
|
|
254
|
-
...Array.from(metrics.conversionRates.entries()).map(([variant, rate]) => [
|
|
255
|
-
variant,
|
|
256
|
-
metrics.impressions.get(variant) || 0,
|
|
257
|
-
metrics.conversions.get(variant) || 0,
|
|
258
|
-
`${(rate * 100).toFixed(2)}%`,
|
|
259
|
-
variant === winner ? chalk_1.default.green('Winner 🏆') : chalk_1.default.gray('Loser')
|
|
260
|
-
])
|
|
261
|
-
];
|
|
262
|
-
console.log('\n' + (0, table_1.table)(tableData));
|
|
263
|
-
// Recommendations
|
|
264
|
-
console.log(chalk_1.default.cyan('\n💡 Next Steps:\n'));
|
|
265
|
-
console.log(` 1. Implement ${winner} variant as the default experience`);
|
|
266
|
-
console.log(` 2. Document learnings from this experiment`);
|
|
267
|
-
console.log(` 3. Plan follow-up experiments to optimize further`);
|
|
268
|
-
if (metrics.confidence < 95) {
|
|
269
|
-
console.log(chalk_1.default.yellow(`\n⚠️ Warning: Results may not be statistically significant (${metrics.confidence.toFixed(1)}% confidence)`));
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
catch (error) {
|
|
273
|
-
spinner.fail('Failed to conclude experiment');
|
|
274
|
-
console.error(chalk_1.default.red('Error:'), error.message);
|
|
275
|
-
throw error;
|
|
276
|
-
}
|
|
277
|
-
finally {
|
|
278
|
-
await this.dbClient.end();
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
calculateMetrics(data, variants) {
|
|
282
|
-
const metrics = {
|
|
283
|
-
impressions: new Map(),
|
|
284
|
-
conversions: new Map(),
|
|
285
|
-
conversionRates: new Map(),
|
|
286
|
-
confidence: 0
|
|
287
|
-
};
|
|
288
|
-
// Initialize metrics for all variants
|
|
289
|
-
variants.forEach(variant => {
|
|
290
|
-
metrics.impressions.set(variant, 0);
|
|
291
|
-
metrics.conversions.set(variant, 0);
|
|
292
|
-
metrics.conversionRates.set(variant, 0);
|
|
293
|
-
});
|
|
294
|
-
// Populate metrics from data
|
|
295
|
-
data.forEach(row => {
|
|
296
|
-
if (row.event_type === 'impression') {
|
|
297
|
-
metrics.impressions.set(row.variant, row.unique_users);
|
|
298
|
-
}
|
|
299
|
-
else if (row.event_type === 'conversion') {
|
|
300
|
-
metrics.conversions.set(row.variant, row.unique_users);
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
// Calculate conversion rates
|
|
304
|
-
variants.forEach(variant => {
|
|
305
|
-
const impressions = metrics.impressions.get(variant) || 0;
|
|
306
|
-
const conversions = metrics.conversions.get(variant) || 0;
|
|
307
|
-
if (impressions > 0) {
|
|
308
|
-
metrics.conversionRates.set(variant, conversions / impressions);
|
|
309
|
-
}
|
|
310
|
-
});
|
|
311
|
-
// Calculate statistical significance (simplified)
|
|
312
|
-
if (variants.length >= 2) {
|
|
313
|
-
const control = variants[0];
|
|
314
|
-
const treatment = variants[1];
|
|
315
|
-
const n1 = metrics.impressions.get(control) || 0;
|
|
316
|
-
const n2 = metrics.impressions.get(treatment) || 0;
|
|
317
|
-
const p1 = metrics.conversionRates.get(control) || 0;
|
|
318
|
-
const p2 = metrics.conversionRates.get(treatment) || 0;
|
|
319
|
-
if (n1 > 0 && n2 > 0) {
|
|
320
|
-
// Simplified confidence calculation
|
|
321
|
-
const pooledSE = Math.sqrt(p1 * (1 - p1) / n1 + p2 * (1 - p2) / n2);
|
|
322
|
-
const zScore = Math.abs(p2 - p1) / (pooledSE || 0.001);
|
|
323
|
-
// Convert z-score to confidence level (simplified)
|
|
324
|
-
if (zScore > 2.58)
|
|
325
|
-
metrics.confidence = 99;
|
|
326
|
-
else if (zScore > 1.96)
|
|
327
|
-
metrics.confidence = 95;
|
|
328
|
-
else if (zScore > 1.64)
|
|
329
|
-
metrics.confidence = 90;
|
|
330
|
-
else
|
|
331
|
-
metrics.confidence = zScore * 35; // Rough approximation
|
|
332
|
-
// Determine winner if significant
|
|
333
|
-
if (metrics.confidence >= 90) {
|
|
334
|
-
metrics.winner = p2 > p1 ? treatment : control;
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
return metrics;
|
|
339
|
-
}
|
|
340
|
-
getStatusColor(status) {
|
|
341
|
-
switch (status) {
|
|
342
|
-
case 'active':
|
|
343
|
-
return chalk_1.default.green(status);
|
|
344
|
-
case 'paused':
|
|
345
|
-
return chalk_1.default.yellow(status);
|
|
346
|
-
case 'concluded':
|
|
347
|
-
return chalk_1.default.gray(status);
|
|
348
|
-
default:
|
|
349
|
-
return status;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
async showRecommendations(experiments) {
|
|
353
|
-
const activeCount = experiments.filter(e => e.status === 'active').length;
|
|
354
|
-
const concludedCount = experiments.filter(e => e.status === 'concluded').length;
|
|
355
|
-
console.log(chalk_1.default.cyan('💡 Recommendations:\n'));
|
|
356
|
-
if (activeCount === 0 && concludedCount > 0) {
|
|
357
|
-
console.log(' • Start a new experiment to continue optimization');
|
|
358
|
-
console.log(' • Consider testing different aspects of your application');
|
|
359
|
-
}
|
|
360
|
-
if (activeCount > 3) {
|
|
361
|
-
console.log(' • Consider concluding some experiments to reduce complexity');
|
|
362
|
-
console.log(' • Too many concurrent tests can interfere with each other');
|
|
363
|
-
}
|
|
364
|
-
const recentExperiments = experiments.filter(e => {
|
|
365
|
-
const daysSinceCreated = (Date.now() - new Date(e.created_at).getTime()) / (1000 * 60 * 60 * 24);
|
|
366
|
-
return e.status === 'active' && daysSinceCreated > 30;
|
|
367
|
-
});
|
|
368
|
-
if (recentExperiments.length > 0) {
|
|
369
|
-
console.log(' • Some experiments have been running for over 30 days');
|
|
370
|
-
console.log(' • Consider concluding or pausing long-running experiments');
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
exports.ABTestingModule = ABTestingModule;
|
|
375
|
-
//# sourceMappingURL=ab-testing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ab-testing.js","sourceRoot":"","sources":["../../src/modules/ab-testing.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,8CAAsB;AACtB,iCAA8B;AAC9B,kDAAoD;AAepD,MAAa,eAAe;IAClB,QAAQ,CAAS;IAEzB;QACE,sDAAsD;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAA,0BAAc,GAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,UAA6B,EAAE;QAClE,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;QAE/D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAE9B,iBAAiB;YACjB,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAEjG,sBAAsB;YACtB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAChD,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YAEjF,wBAAwB;YACxB,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,4CAA4C,UAAU,IAAI,CAAC,CAAC;gBACzE,OAAO;YACT,CAAC;YAED,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAC;YAE1C,oCAAoC;YACpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;;;;OAK7C,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,GAAG,+BAA+B,CAAC;gBAC/C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;SAwBzB,CAAC,CAAC;YACL,CAAC;YAED,oBAAoB;YACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;;;OAIxC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAEtE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEvC,OAAO,CAAC,OAAO,CAAC,eAAe,IAAI,wBAAwB,CAAC,CAAC;YAE7D,mCAAmC;YACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,eAAe,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEhG,+BAA+B;YAC/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC;8CAC4B,IAAI;;;;;;;;;yBASzB,IAAI,sBAAsB,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAE/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wFAAwF,CAAC,CAAC,CAAC;QAEtH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,cAAuB;QACvC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAE9B,kBAAkB;YAClB,IAAI,KAAK,GAAG;;;;;;;;;;OAUX,CAAC;YAEF,MAAM,MAAM,GAAU,EAAE,CAAC;YACzB,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,IAAI,oBAAoB,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9B,CAAC;YAED,KAAK,IAAI,6BAA6B,CAAC;YAEvC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAEnE,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAExD,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBACzC,kCAAkC;gBAClC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;;;;;;;;SAS/C,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEb,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAExE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;gBAEjE,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,aAAa,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzD,CAAC;gBAED,0BAA0B;gBAC1B,MAAM,SAAS,GAAG;oBAChB,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC;oBACxE,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,CAAS,EAAE,EAAE,CAAC;wBAClD,OAAO;wBACP,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG;wBAC1B,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;wBACrC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;wBACrC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;wBACpE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;qBACpF,CAAC;iBACH,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,IAAA,aAAK,EAAC,SAAS,CAAC,CAAC,CAAC;gBAE9B,2BAA2B;gBAC3B,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;oBACzG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC7D,CAAC;qBAAM,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mCAAmC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC7G,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;gBAChG,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YAED,uBAAuB;YACvB,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEzD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY;QACnC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QAExD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAE9B,iBAAiB;YACjB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;;;OAI3C,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAEX,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAErC,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC;YAEtC,oBAAoB;YACpB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;;;;;;;;OAS/C,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YAE/E,mBAAmB;YACnB,IAAI,MAAM,GAAG,SAAS,CAAC;YACvB,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;gBAChD,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;oBACnB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,GAAG,OAAO,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,oBAAoB;YACpB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;;;;;OAMzB,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAE5B,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAExC,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,iBAAiB,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,iBAAiB,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjI,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAE/D,wBAAwB;YACxB,MAAM,SAAS,GAAG;gBAChB,CAAC,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC;gBAC3D,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;oBACxE,OAAO;oBACP,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;oBACrC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;oBACrC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;oBAC7B,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC;iBACpE,CAAC;aACH,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAA,aAAK,EAAC,SAAS,CAAC,CAAC,CAAC;YAErC,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,oCAAoC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YAEnE,IAAI,OAAO,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gEAAgE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YAC1I,CAAC;QAEH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAW,EAAE,QAAkB;QACtD,MAAM,OAAO,GAAsB;YACjC,WAAW,EAAE,IAAI,GAAG,EAAE;YACtB,WAAW,EAAE,IAAI,GAAG,EAAE;YACtB,eAAe,EAAE,IAAI,GAAG,EAAE;YAC1B,UAAU,EAAE,CAAC;SACd,CAAC;QAEF,sCAAsC;QACtC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,GAAG,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;gBACpC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;gBAC3C,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE1D,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAE9B,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEvD,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACrB,oCAAoC;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBACpE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;gBAEvD,mDAAmD;gBACnD,IAAI,MAAM,GAAG,IAAI;oBAAE,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;qBACtC,IAAI,MAAM,GAAG,IAAI;oBAAE,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;qBAC3C,IAAI,MAAM,GAAG,IAAI;oBAAE,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;;oBAC3C,OAAO,CAAC,UAAU,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,sBAAsB;gBAE7D,kCAAkC;gBAClC,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;oBAC7B,OAAO,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,cAAc,CAAC,MAAc;QACnC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,KAAK,QAAQ;gBACX,OAAO,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,KAAK,WAAW;gBACd,OAAO,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B;gBACE,OAAO,MAAM,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,WAAkB;QAClD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAC1E,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QAEhF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAEjD,IAAI,WAAW,KAAK,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC/C,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACjG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,gBAAgB,GAAG,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;CACF;AAraD,0CAqaC"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'events';
|
|
2
|
-
interface ModelPerformance {
|
|
3
|
-
accuracy: number;
|
|
4
|
-
latency: number;
|
|
5
|
-
costPerInference: number;
|
|
6
|
-
successRate: number;
|
|
7
|
-
}
|
|
8
|
-
export declare class AIOrchestrationModule extends EventEmitter {
|
|
9
|
-
private internalModels;
|
|
10
|
-
private learningQueue;
|
|
11
|
-
private modelVersions;
|
|
12
|
-
constructor();
|
|
13
|
-
private initializeInternalModels;
|
|
14
|
-
orchestrateTask(task: string, options?: any): Promise<any>;
|
|
15
|
-
private analyzeWithInternalModel;
|
|
16
|
-
private enhanceWithThirdPartyModels;
|
|
17
|
-
private learnFromThirdPartyModels;
|
|
18
|
-
private applyTransferLearning;
|
|
19
|
-
private applyModelDistillation;
|
|
20
|
-
private applyFederatedLearning;
|
|
21
|
-
private executeEnsemble;
|
|
22
|
-
private determineModelType;
|
|
23
|
-
private runInternalInference;
|
|
24
|
-
private callThirdPartyModel;
|
|
25
|
-
private extractPatterns;
|
|
26
|
-
private extractRules;
|
|
27
|
-
private extractOptimizations;
|
|
28
|
-
private calculateGradients;
|
|
29
|
-
private aggregateGradients;
|
|
30
|
-
private extractFeatures;
|
|
31
|
-
private generateRecommendations;
|
|
32
|
-
private combineEnsembleResults;
|
|
33
|
-
private storeExecutionFeedback;
|
|
34
|
-
private updateModelPerformance;
|
|
35
|
-
getModelStatus(): Promise<{
|
|
36
|
-
id: string;
|
|
37
|
-
version: string;
|
|
38
|
-
type: "deployment" | "code-generation" | "requirements" | "testing" | "architecture";
|
|
39
|
-
performance: ModelPerformance;
|
|
40
|
-
trainingDataCount: number;
|
|
41
|
-
adaptiveLearningEnabled: boolean;
|
|
42
|
-
lastUpdated: Date;
|
|
43
|
-
}[]>;
|
|
44
|
-
getLearningProgress(): Promise<{
|
|
45
|
-
queueSize: number;
|
|
46
|
-
modelsLearning: number;
|
|
47
|
-
totalTrainingData: number;
|
|
48
|
-
learningStrategies: {
|
|
49
|
-
transferLearning: number;
|
|
50
|
-
modelDistillation: number;
|
|
51
|
-
federatedLearning: number;
|
|
52
|
-
};
|
|
53
|
-
}>;
|
|
54
|
-
compareModelPerformance(taskType: string): Promise<{
|
|
55
|
-
internal: {
|
|
56
|
-
id: string;
|
|
57
|
-
accuracy: number;
|
|
58
|
-
latency: number;
|
|
59
|
-
cost: number;
|
|
60
|
-
}[];
|
|
61
|
-
thirdParty: {
|
|
62
|
-
provider: string;
|
|
63
|
-
accuracy: number;
|
|
64
|
-
latency: number;
|
|
65
|
-
cost: number;
|
|
66
|
-
}[];
|
|
67
|
-
}>;
|
|
68
|
-
}
|
|
69
|
-
export {};
|
|
70
|
-
//# sourceMappingURL=ai-orchestration.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-orchestration.d.ts","sourceRoot":"","sources":["../../src/modules/ai-orchestration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAoBtC,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAUD,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,aAAa,CAAwB;;IAU7C,OAAO,CAAC,wBAAwB;IA2G1B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ;YAmCvC,wBAAwB;YAuBxB,2BAA2B;YAyB3B,yBAAyB;YAwCzB,qBAAqB;YAmBrB,sBAAsB;YA6BtB,sBAAsB;YA6BtB,eAAe;IA+B7B,OAAO,CAAC,kBAAkB;YAkBZ,oBAAoB;YASpB,mBAAmB;IA2BjC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,uBAAuB;IAiC/B,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,sBAAsB;YAahB,sBAAsB;IAuB9B,cAAc;;;;;;;;;IAkBd,mBAAmB;;;;;;;;;;IAkBnB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;CAoB/C"}
|