resolve-solo 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.
- package/README.md +199 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +214 -0
- package/dist/cli.js.map +1 -0
- package/dist/demo-generator.d.ts +12 -0
- package/dist/demo-generator.d.ts.map +1 -0
- package/dist/demo-generator.js +352 -0
- package/dist/demo-generator.js.map +1 -0
- package/dist/demo-output.d.ts +13 -0
- package/dist/demo-output.d.ts.map +1 -0
- package/dist/demo-output.js +116 -0
- package/dist/demo-output.js.map +1 -0
- package/dist/demo-schema.d.ts +66 -0
- package/dist/demo-schema.d.ts.map +1 -0
- package/dist/demo-schema.js +11 -0
- package/dist/demo-schema.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/investigation-types.d.ts +47 -0
- package/dist/investigation-types.d.ts.map +1 -0
- package/dist/investigation-types.js +5 -0
- package/dist/investigation-types.js.map +1 -0
- package/dist/investigation.d.ts +24 -0
- package/dist/investigation.d.ts.map +1 -0
- package/dist/investigation.js +135 -0
- package/dist/investigation.js.map +1 -0
- package/dist/output.d.ts +20 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +151 -0
- package/dist/output.js.map +1 -0
- package/dist/parser.d.ts +16 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +146 -0
- package/dist/parser.js.map +1 -0
- package/dist/storage.d.ts +47 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +133 -0
- package/dist/storage.js.map +1 -0
- package/dist/timeline.d.ts +27 -0
- package/dist/timeline.d.ts.map +1 -0
- package/dist/timeline.js +145 -0
- package/dist/timeline.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demo Data Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates deterministic mock data for demo mode.
|
|
5
|
+
* Uses a fixed seed to ensure reproducibility.
|
|
6
|
+
*/
|
|
7
|
+
import { VERSION } from './index.js';
|
|
8
|
+
const DEMO_SEED = 42; // Answer to everything
|
|
9
|
+
/**
|
|
10
|
+
* Simple seeded random number generator (LCG algorithm)
|
|
11
|
+
* Same seed = same sequence of random numbers
|
|
12
|
+
*/
|
|
13
|
+
class SeededRandom {
|
|
14
|
+
state;
|
|
15
|
+
constructor(seed) {
|
|
16
|
+
this.state = seed;
|
|
17
|
+
}
|
|
18
|
+
next() {
|
|
19
|
+
// Linear congruential generator
|
|
20
|
+
this.state = (this.state * 1664525 + 1013904223) % 2 ** 32;
|
|
21
|
+
return this.state / 2 ** 32;
|
|
22
|
+
}
|
|
23
|
+
nextInt(min, max) {
|
|
24
|
+
return Math.floor(this.next() * (max - min + 1)) + min;
|
|
25
|
+
}
|
|
26
|
+
pick(array) {
|
|
27
|
+
return array[this.nextInt(0, array.length - 1)];
|
|
28
|
+
}
|
|
29
|
+
shuffle(array) {
|
|
30
|
+
const result = [...array];
|
|
31
|
+
for (let i = result.length - 1; i > 0; i--) {
|
|
32
|
+
const j = this.nextInt(0, i);
|
|
33
|
+
[result[i], result[j]] = [result[j], result[i]];
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Generate realistic service catalog
|
|
40
|
+
*/
|
|
41
|
+
function generateServices(rng) {
|
|
42
|
+
const services = [
|
|
43
|
+
{
|
|
44
|
+
id: 'api-gateway',
|
|
45
|
+
name: 'api-gateway',
|
|
46
|
+
displayName: 'API Gateway',
|
|
47
|
+
stack: 'node',
|
|
48
|
+
owner: 'Platform Team',
|
|
49
|
+
ownerEmail: 'platform@example.com',
|
|
50
|
+
repo: 'github.com/company/api-gateway',
|
|
51
|
+
description: 'Main API gateway handling all external requests',
|
|
52
|
+
dependencies: ['auth-service', 'rate-limiter'],
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: 'auth-service',
|
|
56
|
+
name: 'auth-service',
|
|
57
|
+
displayName: 'Authentication Service',
|
|
58
|
+
stack: 'python',
|
|
59
|
+
owner: 'Security Team',
|
|
60
|
+
ownerEmail: 'security@example.com',
|
|
61
|
+
repo: 'github.com/company/auth-service',
|
|
62
|
+
description: 'User authentication and authorization',
|
|
63
|
+
dependencies: ['user-db', 'redis-cache'],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: 'payments-service',
|
|
67
|
+
name: 'payments-service',
|
|
68
|
+
displayName: 'Payments Service',
|
|
69
|
+
stack: 'python',
|
|
70
|
+
owner: 'Payments Team',
|
|
71
|
+
ownerEmail: 'payments@example.com',
|
|
72
|
+
repo: 'github.com/company/payments-service',
|
|
73
|
+
description: 'Payment processing and transaction management',
|
|
74
|
+
dependencies: ['postgres-db', 'stripe-api'],
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: 'ml-inference',
|
|
78
|
+
name: 'ml-inference',
|
|
79
|
+
displayName: 'ML Inference Service',
|
|
80
|
+
stack: 'python',
|
|
81
|
+
owner: 'AI/ML Team',
|
|
82
|
+
ownerEmail: 'ai-ml@example.com',
|
|
83
|
+
repo: 'github.com/company/ml-inference',
|
|
84
|
+
description: 'Machine learning model inference API',
|
|
85
|
+
dependencies: ['model-storage', 'feature-store'],
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: 'notification-service',
|
|
89
|
+
name: 'notification-service',
|
|
90
|
+
displayName: 'Notification Service',
|
|
91
|
+
stack: 'node',
|
|
92
|
+
owner: 'Growth Team',
|
|
93
|
+
ownerEmail: 'growth@example.com',
|
|
94
|
+
repo: 'github.com/company/notification-service',
|
|
95
|
+
description: 'Email and push notification delivery',
|
|
96
|
+
dependencies: ['sendgrid-api', 'fcm-api'],
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
id: 'analytics-pipeline',
|
|
100
|
+
name: 'analytics-pipeline',
|
|
101
|
+
displayName: 'Analytics Pipeline',
|
|
102
|
+
stack: 'python',
|
|
103
|
+
owner: 'Data Team',
|
|
104
|
+
ownerEmail: 'data@example.com',
|
|
105
|
+
repo: 'github.com/company/analytics-pipeline',
|
|
106
|
+
description: 'Real-time analytics data processing',
|
|
107
|
+
dependencies: ['kafka', 'clickhouse'],
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
id: 'user-db',
|
|
111
|
+
name: 'user-db',
|
|
112
|
+
displayName: 'User Database',
|
|
113
|
+
stack: 'infra',
|
|
114
|
+
owner: 'Platform Team',
|
|
115
|
+
ownerEmail: 'platform@example.com',
|
|
116
|
+
repo: 'github.com/company/infrastructure',
|
|
117
|
+
description: 'PostgreSQL database for user data',
|
|
118
|
+
dependencies: [],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: 'redis-cache',
|
|
122
|
+
name: 'redis-cache',
|
|
123
|
+
displayName: 'Redis Cache',
|
|
124
|
+
stack: 'infra',
|
|
125
|
+
owner: 'Platform Team',
|
|
126
|
+
ownerEmail: 'platform@example.com',
|
|
127
|
+
repo: 'github.com/company/infrastructure',
|
|
128
|
+
description: 'Redis cache cluster',
|
|
129
|
+
dependencies: [],
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
id: 'postgres-db',
|
|
133
|
+
name: 'postgres-db',
|
|
134
|
+
displayName: 'Postgres Database',
|
|
135
|
+
stack: 'infra',
|
|
136
|
+
owner: 'Platform Team',
|
|
137
|
+
ownerEmail: 'platform@example.com',
|
|
138
|
+
repo: 'github.com/company/infrastructure',
|
|
139
|
+
description: 'PostgreSQL database cluster',
|
|
140
|
+
dependencies: [],
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
id: 'rate-limiter',
|
|
144
|
+
name: 'rate-limiter',
|
|
145
|
+
displayName: 'Rate Limiter',
|
|
146
|
+
stack: 'node',
|
|
147
|
+
owner: 'Platform Team',
|
|
148
|
+
ownerEmail: 'platform@example.com',
|
|
149
|
+
repo: 'github.com/company/rate-limiter',
|
|
150
|
+
description: 'Distributed rate limiting service',
|
|
151
|
+
dependencies: ['redis-cache'],
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
id: 'config-service',
|
|
155
|
+
name: 'config-service',
|
|
156
|
+
displayName: 'Configuration Service',
|
|
157
|
+
stack: 'config',
|
|
158
|
+
owner: 'Platform Team',
|
|
159
|
+
ownerEmail: 'platform@example.com',
|
|
160
|
+
repo: 'github.com/company/config-service',
|
|
161
|
+
description: 'Centralized configuration management',
|
|
162
|
+
dependencies: [],
|
|
163
|
+
},
|
|
164
|
+
];
|
|
165
|
+
return services;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Generate realistic deploy events (last 7 days)
|
|
169
|
+
*/
|
|
170
|
+
function generateDeploys(services, rng, baseDate = new Date()) {
|
|
171
|
+
const deploys = [];
|
|
172
|
+
const now = baseDate;
|
|
173
|
+
const deployers = [
|
|
174
|
+
{ name: 'Alice Chen', email: 'alice@example.com' },
|
|
175
|
+
{ name: 'Bob Smith', email: 'bob@example.com' },
|
|
176
|
+
{ name: 'Carol Wu', email: 'carol@example.com' },
|
|
177
|
+
{ name: 'David Kim', email: 'david@example.com' },
|
|
178
|
+
];
|
|
179
|
+
// Generate 15-25 deploys over last 7 days
|
|
180
|
+
const deployCount = rng.nextInt(15, 25);
|
|
181
|
+
for (let i = 0; i < deployCount; i++) {
|
|
182
|
+
const service = rng.pick(services.filter((s) => s.stack !== 'infra'));
|
|
183
|
+
const deployer = rng.pick(deployers);
|
|
184
|
+
const hoursAgo = rng.nextInt(0, 168); // 7 days
|
|
185
|
+
const timestamp = new Date(now.getTime() - hoursAgo * 60 * 60 * 1000);
|
|
186
|
+
deploys.push({
|
|
187
|
+
id: `deploy-${i + 1}`,
|
|
188
|
+
timestamp: timestamp.toISOString(),
|
|
189
|
+
service: service.id,
|
|
190
|
+
version: `v1.${rng.nextInt(10, 99)}.${rng.nextInt(0, 20)}`,
|
|
191
|
+
deployer: deployer.name,
|
|
192
|
+
deployerEmail: deployer.email,
|
|
193
|
+
commitSha: rng.next().toString(36).substring(2, 9),
|
|
194
|
+
commitMessage: rng.pick([
|
|
195
|
+
'Fix timeout handling in request pipeline',
|
|
196
|
+
'Update dependencies and security patches',
|
|
197
|
+
'Add retry logic for external API calls',
|
|
198
|
+
'Improve error logging and monitoring',
|
|
199
|
+
'Optimize database query performance',
|
|
200
|
+
'Add feature flag for new experiment',
|
|
201
|
+
'Fix memory leak in worker process',
|
|
202
|
+
'Update configuration for production',
|
|
203
|
+
]),
|
|
204
|
+
environment: 'production',
|
|
205
|
+
status: rng.next() < 0.95 ? 'success' : 'failed',
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
return deploys.sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Generate realistic log entries (last 24 hours)
|
|
212
|
+
*/
|
|
213
|
+
function generateLogs(services, rng, baseDate = new Date()) {
|
|
214
|
+
const logs = [];
|
|
215
|
+
const now = baseDate;
|
|
216
|
+
const errorMessages = [
|
|
217
|
+
'Connection timeout to upstream service after 30s',
|
|
218
|
+
'Database query exceeded timeout threshold',
|
|
219
|
+
'Rate limit exceeded for API key',
|
|
220
|
+
'Invalid authentication token received',
|
|
221
|
+
'Failed to parse JSON payload',
|
|
222
|
+
'Uncaught exception in request handler',
|
|
223
|
+
'Memory allocation failed',
|
|
224
|
+
'Network connection refused',
|
|
225
|
+
];
|
|
226
|
+
const warnMessages = [
|
|
227
|
+
'High memory usage detected (85%)',
|
|
228
|
+
'Slow query detected (>1s)',
|
|
229
|
+
'Retry attempt 3/5 for external API',
|
|
230
|
+
'Cache miss ratio above threshold',
|
|
231
|
+
'Request queue depth increasing',
|
|
232
|
+
];
|
|
233
|
+
// Generate 100-150 log entries over last 24 hours
|
|
234
|
+
const logCount = rng.nextInt(100, 150);
|
|
235
|
+
for (let i = 0; i < logCount; i++) {
|
|
236
|
+
const service = rng.pick(services);
|
|
237
|
+
const hoursAgo = rng.next() * 24; // 0-24 hours
|
|
238
|
+
const timestamp = new Date(now.getTime() - hoursAgo * 60 * 60 * 1000);
|
|
239
|
+
const level = rng.pick(['error', 'error', 'warn', 'warn', 'info', 'info', 'info', 'debug']);
|
|
240
|
+
let message = '';
|
|
241
|
+
if (level === 'error') {
|
|
242
|
+
message = rng.pick(errorMessages);
|
|
243
|
+
}
|
|
244
|
+
else if (level === 'warn') {
|
|
245
|
+
message = rng.pick(warnMessages);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
message = 'Request processed successfully';
|
|
249
|
+
}
|
|
250
|
+
logs.push({
|
|
251
|
+
id: `log-${i + 1}`,
|
|
252
|
+
timestamp: timestamp.toISOString(),
|
|
253
|
+
service: service.id,
|
|
254
|
+
level,
|
|
255
|
+
message,
|
|
256
|
+
metadata: {
|
|
257
|
+
requestId: rng.next().toString(36).substring(2, 15),
|
|
258
|
+
duration: rng.nextInt(10, 5000),
|
|
259
|
+
},
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
return logs.sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Generate realistic past incidents
|
|
266
|
+
*/
|
|
267
|
+
function generateIncidents(services, rng, baseDate = new Date()) {
|
|
268
|
+
const incidents = [];
|
|
269
|
+
const now = baseDate;
|
|
270
|
+
const incidentTemplates = [
|
|
271
|
+
{
|
|
272
|
+
title: 'API Gateway timeout spike',
|
|
273
|
+
symptoms: ['High request latency', '504 errors', 'Timeout alerts firing'],
|
|
274
|
+
rootCause: 'Downstream service experiencing high load',
|
|
275
|
+
resolution: 'Scaled up downstream service, added circuit breakers',
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
title: 'Database connection pool exhausted',
|
|
279
|
+
symptoms: ['Connection errors', 'Slow queries', 'Service health check failures'],
|
|
280
|
+
rootCause: 'Connection leak in ORM layer',
|
|
281
|
+
resolution: 'Fixed connection leak, increased pool size',
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
title: 'Memory leak in ML inference service',
|
|
285
|
+
symptoms: ['OOM errors', 'Service restarts', 'Degraded performance'],
|
|
286
|
+
rootCause: 'Unreleased model objects in cache',
|
|
287
|
+
resolution: 'Implemented proper cleanup in model lifecycle',
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
title: 'Authentication service intermittent failures',
|
|
291
|
+
symptoms: ['401 errors', 'Login failures', 'Token validation errors'],
|
|
292
|
+
rootCause: 'Redis cache eviction causing session loss',
|
|
293
|
+
resolution: 'Increased Redis memory, adjusted eviction policy',
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
title: 'Rate limiter false positives',
|
|
297
|
+
symptoms: ['429 errors for legitimate traffic', 'Customer complaints'],
|
|
298
|
+
rootCause: 'Incorrect rate limit configuration after deploy',
|
|
299
|
+
resolution: 'Rolled back deploy, fixed configuration',
|
|
300
|
+
},
|
|
301
|
+
];
|
|
302
|
+
// Generate 3-5 past incidents (all resolved)
|
|
303
|
+
const incidentCount = rng.nextInt(3, 5);
|
|
304
|
+
for (let i = 0; i < incidentCount; i++) {
|
|
305
|
+
const template = rng.pick(incidentTemplates);
|
|
306
|
+
const daysAgo = rng.nextInt(7, 30);
|
|
307
|
+
const createdAt = new Date(now.getTime() - daysAgo * 24 * 60 * 60 * 1000);
|
|
308
|
+
const timeToResolve = rng.nextInt(15, 180);
|
|
309
|
+
const resolvedAt = new Date(createdAt.getTime() + timeToResolve * 60 * 1000);
|
|
310
|
+
const affectedServices = rng
|
|
311
|
+
.shuffle(services)
|
|
312
|
+
.slice(0, rng.nextInt(1, 3))
|
|
313
|
+
.map((s) => s.id);
|
|
314
|
+
incidents.push({
|
|
315
|
+
id: `incident-${i + 1}`,
|
|
316
|
+
title: template.title,
|
|
317
|
+
createdAt: createdAt.toISOString(),
|
|
318
|
+
resolvedAt: resolvedAt.toISOString(),
|
|
319
|
+
severity: rng.pick(['critical', 'high', 'medium']),
|
|
320
|
+
status: 'resolved',
|
|
321
|
+
affectedServices,
|
|
322
|
+
symptoms: template.symptoms,
|
|
323
|
+
rootCause: template.rootCause,
|
|
324
|
+
resolution: template.resolution,
|
|
325
|
+
timeToResolveMinutes: timeToResolve,
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
return incidents.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Generate complete demo dataset
|
|
332
|
+
*/
|
|
333
|
+
export function generateDemoData(seed = DEMO_SEED, baseDate) {
|
|
334
|
+
const rng = new SeededRandom(seed);
|
|
335
|
+
const now = baseDate || new Date();
|
|
336
|
+
const services = generateServices(rng);
|
|
337
|
+
const deploys = generateDeploys(services, rng, now);
|
|
338
|
+
const logs = generateLogs(services, rng, now);
|
|
339
|
+
const incidents = generateIncidents(services, rng, now);
|
|
340
|
+
return {
|
|
341
|
+
services,
|
|
342
|
+
deploys,
|
|
343
|
+
logs,
|
|
344
|
+
incidents,
|
|
345
|
+
metadata: {
|
|
346
|
+
generatedAt: now.toISOString(),
|
|
347
|
+
seed,
|
|
348
|
+
version: VERSION,
|
|
349
|
+
},
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=demo-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-generator.js","sourceRoot":"","sources":["../src/demo-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demo investigation output formatting
|
|
3
|
+
*/
|
|
4
|
+
import type { InvestigationResult } from './investigation-types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Display investigation result
|
|
7
|
+
*/
|
|
8
|
+
export declare function displayInvestigation(result: InvestigationResult): void;
|
|
9
|
+
/**
|
|
10
|
+
* Prompt for time saved (interactive)
|
|
11
|
+
*/
|
|
12
|
+
export declare function promptTimeSaved(): Promise<number>;
|
|
13
|
+
//# sourceMappingURL=demo-output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-output.d.ts","sourceRoot":"","sources":["../src/demo-output.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CA6GtE;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAevD"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demo investigation output formatting
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
/**
|
|
6
|
+
* Display investigation result
|
|
7
|
+
*/
|
|
8
|
+
export function displayInvestigation(result) {
|
|
9
|
+
console.log();
|
|
10
|
+
// Header
|
|
11
|
+
console.log(chalk.bold.cyan('🔍 Investigation Results'));
|
|
12
|
+
console.log();
|
|
13
|
+
console.log(chalk.gray(`Mode: ${result.mode} | Session: ${result.sessionId}`));
|
|
14
|
+
console.log(chalk.gray(`Time window: ${result.timeWindow}`));
|
|
15
|
+
console.log();
|
|
16
|
+
console.log(chalk.bold('What I think you mean:'), result.query);
|
|
17
|
+
console.log();
|
|
18
|
+
// A) Timeline
|
|
19
|
+
console.log(chalk.bold('A) What changed recently (timeline)'));
|
|
20
|
+
console.log();
|
|
21
|
+
if (result.timeline.length === 0) {
|
|
22
|
+
console.log(chalk.gray(' No significant changes detected'));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
for (let i = 0; i < result.timeline.length; i++) {
|
|
26
|
+
const item = result.timeline[i];
|
|
27
|
+
const time = new Date(item.timestamp).toLocaleString('en-US', {
|
|
28
|
+
month: 'short',
|
|
29
|
+
day: 'numeric',
|
|
30
|
+
hour: '2-digit',
|
|
31
|
+
minute: '2-digit',
|
|
32
|
+
});
|
|
33
|
+
const confidence = item.confidence === 'high'
|
|
34
|
+
? chalk.green('high')
|
|
35
|
+
: item.confidence === 'medium'
|
|
36
|
+
? chalk.yellow('med')
|
|
37
|
+
: chalk.gray('low');
|
|
38
|
+
const signalBadge = item.isDemo ? chalk.gray('(demo)') : '';
|
|
39
|
+
console.log(chalk.cyan(` [${i + 1}]`), chalk.gray(time), chalk.white('|'), chalk.white(item.signal), chalk.white('|'), chalk.white(item.target));
|
|
40
|
+
console.log(chalk.gray(` ${item.summary} ${signalBadge}`));
|
|
41
|
+
console.log(chalk.gray(` Why: ${item.whyItMatters}`));
|
|
42
|
+
console.log(chalk.gray(` Confidence: ${confidence}`));
|
|
43
|
+
console.log();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// B) Investigation paths
|
|
47
|
+
console.log(chalk.bold('B) Where to look next'));
|
|
48
|
+
console.log();
|
|
49
|
+
if (result.paths.length === 0) {
|
|
50
|
+
console.log(chalk.gray(' No specific paths suggested'));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
for (const path of result.paths) {
|
|
54
|
+
console.log(chalk.cyan(` • ${path.title}`));
|
|
55
|
+
console.log(chalk.gray(` Why plausible: ${path.whyPlausible}`));
|
|
56
|
+
console.log(chalk.gray(` Next step: ${path.nextStep}`));
|
|
57
|
+
console.log(chalk.gray(` Expected signal: ${path.expectedSignal}`));
|
|
58
|
+
console.log();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// C) Recall
|
|
62
|
+
console.log(chalk.bold('C) Similar past incidents'));
|
|
63
|
+
console.log();
|
|
64
|
+
if (result.recall.length === 0) {
|
|
65
|
+
console.log(chalk.gray(' No similar incidents found'));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
for (const match of result.recall) {
|
|
69
|
+
console.log(chalk.cyan(` • ${match.title}`));
|
|
70
|
+
console.log(chalk.gray(` Match: ${match.matchReason}`));
|
|
71
|
+
console.log(chalk.green(` ✓ What worked: ${match.whatWorked}`));
|
|
72
|
+
if (match.deadEnds.length > 0) {
|
|
73
|
+
console.log(chalk.red(` ✗ Dead ends: ${match.deadEnds.join(', ')}`));
|
|
74
|
+
}
|
|
75
|
+
console.log();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// D) Missing signals
|
|
79
|
+
console.log(chalk.bold('D) What I\'m missing'));
|
|
80
|
+
console.log();
|
|
81
|
+
for (const signal of result.missingSignals) {
|
|
82
|
+
const impact = signal.impact === 'high'
|
|
83
|
+
? chalk.red('[HIGH]')
|
|
84
|
+
: signal.impact === 'medium'
|
|
85
|
+
? chalk.yellow('[MED]')
|
|
86
|
+
: chalk.gray('[LOW]');
|
|
87
|
+
console.log(chalk.gray(` ${impact} ${signal.type}: ${signal.reason}`));
|
|
88
|
+
}
|
|
89
|
+
console.log();
|
|
90
|
+
// Suggestions
|
|
91
|
+
console.log(chalk.bold('Next steps:'));
|
|
92
|
+
console.log();
|
|
93
|
+
for (const suggestion of result.suggestions) {
|
|
94
|
+
console.log(chalk.cyan(` ${suggestion}`));
|
|
95
|
+
}
|
|
96
|
+
console.log();
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Prompt for time saved (interactive)
|
|
100
|
+
*/
|
|
101
|
+
export async function promptTimeSaved() {
|
|
102
|
+
console.log(chalk.bold('How much time did this save you?'));
|
|
103
|
+
console.log();
|
|
104
|
+
console.log(' 0 - No time saved');
|
|
105
|
+
console.log(' 1 - ~5 minutes');
|
|
106
|
+
console.log(' 2 - ~15 minutes');
|
|
107
|
+
console.log(' 3 - ~30 minutes');
|
|
108
|
+
console.log(' 4 - ~60+ minutes');
|
|
109
|
+
console.log();
|
|
110
|
+
console.log(chalk.gray('(Skipping prompt in demo mode - assuming 15 min)'));
|
|
111
|
+
console.log();
|
|
112
|
+
// In demo mode, auto-return 15 minutes
|
|
113
|
+
// In real mode with stdin, we'd use readline for input
|
|
114
|
+
return 15;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=demo-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-output.js","sourceRoot":"","sources":["../src/demo-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demo Data Schema
|
|
3
|
+
*
|
|
4
|
+
* Models a realistic AI engineer's environment at a mid-sized company:
|
|
5
|
+
* - ~10-15 services
|
|
6
|
+
* - Mixed stack (Python + Node + infra/config)
|
|
7
|
+
* - Medium observability maturity
|
|
8
|
+
* - Fragmented ownership
|
|
9
|
+
*/
|
|
10
|
+
export interface Service {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
displayName: string;
|
|
14
|
+
stack: 'python' | 'node' | 'infra' | 'config';
|
|
15
|
+
owner: string;
|
|
16
|
+
ownerEmail: string;
|
|
17
|
+
repo: string;
|
|
18
|
+
description: string;
|
|
19
|
+
dependencies: string[];
|
|
20
|
+
}
|
|
21
|
+
export interface DeployEvent {
|
|
22
|
+
id: string;
|
|
23
|
+
timestamp: string;
|
|
24
|
+
service: string;
|
|
25
|
+
version: string;
|
|
26
|
+
deployer: string;
|
|
27
|
+
deployerEmail: string;
|
|
28
|
+
commitSha: string;
|
|
29
|
+
commitMessage: string;
|
|
30
|
+
environment: 'production' | 'staging';
|
|
31
|
+
status: 'success' | 'failed' | 'rolled_back';
|
|
32
|
+
}
|
|
33
|
+
export interface LogEntry {
|
|
34
|
+
id: string;
|
|
35
|
+
timestamp: string;
|
|
36
|
+
service: string;
|
|
37
|
+
level: 'error' | 'warn' | 'info' | 'debug';
|
|
38
|
+
message: string;
|
|
39
|
+
stackTrace?: string;
|
|
40
|
+
metadata?: Record<string, unknown>;
|
|
41
|
+
}
|
|
42
|
+
export interface Incident {
|
|
43
|
+
id: string;
|
|
44
|
+
title: string;
|
|
45
|
+
createdAt: string;
|
|
46
|
+
resolvedAt?: string;
|
|
47
|
+
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
48
|
+
status: 'open' | 'investigating' | 'resolved';
|
|
49
|
+
affectedServices: string[];
|
|
50
|
+
symptoms: string[];
|
|
51
|
+
rootCause?: string;
|
|
52
|
+
resolution?: string;
|
|
53
|
+
timeToResolveMinutes?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface DemoDataset {
|
|
56
|
+
services: Service[];
|
|
57
|
+
deploys: DeployEvent[];
|
|
58
|
+
logs: LogEntry[];
|
|
59
|
+
incidents: Incident[];
|
|
60
|
+
metadata: {
|
|
61
|
+
generatedAt: string;
|
|
62
|
+
seed: number;
|
|
63
|
+
version: string;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=demo-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-schema.d.ts","sourceRoot":"","sources":["../src/demo-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,YAAY,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;CAC9C;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,UAAU,CAAC;IAC9C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demo Data Schema
|
|
3
|
+
*
|
|
4
|
+
* Models a realistic AI engineer's environment at a mid-sized company:
|
|
5
|
+
* - ~10-15 services
|
|
6
|
+
* - Mixed stack (Python + Node + infra/config)
|
|
7
|
+
* - Medium observability maturity
|
|
8
|
+
* - Fragmented ownership
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=demo-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-schema.js","sourceRoot":"","sources":["../src/demo-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve Solo - Main Entry Point
|
|
3
|
+
*
|
|
4
|
+
* This file will export the core library functions.
|
|
5
|
+
* Implementation will expand in subsequent milestones.
|
|
6
|
+
*/
|
|
7
|
+
export { main } from './cli.js';
|
|
8
|
+
export declare const VERSION = "0.1.0";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhC,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve Solo - Main Entry Point
|
|
3
|
+
*
|
|
4
|
+
* This file will export the core library functions.
|
|
5
|
+
* Implementation will expand in subsequent milestones.
|
|
6
|
+
*/
|
|
7
|
+
export { main } from './cli.js';
|
|
8
|
+
// Version info
|
|
9
|
+
export const VERSION = '0.1.0';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,eAAe;AACf,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
|