resolve-solo 0.1.0 → 0.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/README.md +8 -6
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +192 -4
- package/dist/cli.js.map +1 -1
- package/dist/database.d.ts +46 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +185 -0
- package/dist/database.js.map +1 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +9 -2
- package/dist/parser.js.map +1 -1
- package/dist/timeline.d.ts +2 -0
- package/dist/timeline.d.ts.map +1 -1
- package/dist/timeline.js +41 -4
- package/dist/timeline.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ A local-first CLI on-call assistant for individual developers. Natural language
|
|
|
7
7
|
Try the demo with a single command:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npx
|
|
10
|
+
npx resolve-solo demo
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
This will:
|
|
@@ -22,13 +22,13 @@ This will:
|
|
|
22
22
|
No installation needed! Just run:
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
npx
|
|
25
|
+
npx resolve-solo <command>
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
### Option 2: Install from
|
|
28
|
+
### Option 2: Install globally from npm
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
npm install -g
|
|
31
|
+
npm install -g resolve-solo
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
Then use the `resolveai` command:
|
|
@@ -37,10 +37,12 @@ Then use the `resolveai` command:
|
|
|
37
37
|
resolveai demo
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
### Option 3: Install from
|
|
40
|
+
### Option 3: Install from GitHub (Enterprise)
|
|
41
|
+
|
|
42
|
+
For development or enterprise GitHub:
|
|
41
43
|
|
|
42
44
|
```bash
|
|
43
|
-
npm install -g resolve-solo
|
|
45
|
+
npm install -g git+https://github.cbhq.net/srinath-sinha/resolve-solo
|
|
44
46
|
resolveai demo
|
|
45
47
|
```
|
|
46
48
|
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AA6BH,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,iBAgEhE"}
|
package/dist/cli.js
CHANGED
|
@@ -11,6 +11,7 @@ import { saveDemoData, loadDemoData, deleteDemoData, demoDataExists, getStorageI
|
|
|
11
11
|
import { buildTimeline, deduplicateTimeline } from './timeline.js';
|
|
12
12
|
import { generateInvestigationPaths, findRecallMatches, detectMissingSignals, generateSuggestions, } from './investigation.js';
|
|
13
13
|
import { displayInvestigation, promptTimeSaved } from './demo-output.js';
|
|
14
|
+
import { saveSession, getActiveSession, getTimelineItem, addNote, getNotes, closeSession } from './database.js';
|
|
14
15
|
import chalk from 'chalk';
|
|
15
16
|
export async function main(args = process.argv.slice(2)) {
|
|
16
17
|
// Join all args into a single natural language input
|
|
@@ -37,16 +38,16 @@ export async function main(args = process.argv.slice(2)) {
|
|
|
37
38
|
handleDemoReset();
|
|
38
39
|
break;
|
|
39
40
|
case 'investigate':
|
|
40
|
-
|
|
41
|
+
await handleInvestigate(parsed.query || 'recent issues');
|
|
41
42
|
break;
|
|
42
43
|
case 'details':
|
|
43
|
-
|
|
44
|
+
handleDetails(parsed.args);
|
|
44
45
|
break;
|
|
45
46
|
case 'note':
|
|
46
|
-
|
|
47
|
+
handleNote(parsed.args.join(' '));
|
|
47
48
|
break;
|
|
48
49
|
case 'close':
|
|
49
|
-
|
|
50
|
+
await handleClose(parsed.args.join(' '));
|
|
50
51
|
break;
|
|
51
52
|
case 'report-weekly':
|
|
52
53
|
showNotImplemented('report weekly');
|
|
@@ -135,6 +136,193 @@ async function handleDemo() {
|
|
|
135
136
|
console.log(chalk.gray(' resolveai uninstall'));
|
|
136
137
|
console.log();
|
|
137
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Handle custom investigate command
|
|
141
|
+
*/
|
|
142
|
+
async function handleInvestigate(query) {
|
|
143
|
+
console.log();
|
|
144
|
+
console.log(chalk.cyan('🔍 Running investigation...'));
|
|
145
|
+
console.log();
|
|
146
|
+
// Check if demo data exists
|
|
147
|
+
if (!demoDataExists()) {
|
|
148
|
+
console.log(chalk.yellow('⚠️ No demo data found'));
|
|
149
|
+
console.log();
|
|
150
|
+
console.log('Demo mode: Run', chalk.cyan('resolveai demo seed'), 'to generate data first');
|
|
151
|
+
console.log('Real mode: Not yet implemented (v1 uses demo data only)');
|
|
152
|
+
console.log();
|
|
153
|
+
console.log(chalk.gray('For now, try:'));
|
|
154
|
+
console.log(chalk.gray(' resolveai demo seed'));
|
|
155
|
+
console.log(chalk.gray(' resolveai investigate timeouts'));
|
|
156
|
+
console.log();
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
// Load demo data
|
|
160
|
+
const dataset = loadDemoData();
|
|
161
|
+
if (!dataset) {
|
|
162
|
+
console.log(chalk.red('✗ Failed to load demo data'));
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
console.log(`Investigating: "${query}"`);
|
|
166
|
+
console.log();
|
|
167
|
+
console.log();
|
|
168
|
+
// Build timeline filtered by query
|
|
169
|
+
const timeline = buildTimeline(dataset, {
|
|
170
|
+
hoursAgo: 48,
|
|
171
|
+
maxItems: 15,
|
|
172
|
+
query
|
|
173
|
+
});
|
|
174
|
+
// Deduplicate timeline
|
|
175
|
+
const dedupedTimeline = deduplicateTimeline(timeline, { maxPerService: 3 });
|
|
176
|
+
// Generate investigation paths
|
|
177
|
+
const paths = generateInvestigationPaths(dedupedTimeline, dataset);
|
|
178
|
+
// Find similar past incidents
|
|
179
|
+
const recall = findRecallMatches(query, dataset);
|
|
180
|
+
// Detect missing signals
|
|
181
|
+
const missingSignals = detectMissingSignals(dedupedTimeline);
|
|
182
|
+
// Generate suggestions
|
|
183
|
+
const suggestions = generateSuggestions(dedupedTimeline);
|
|
184
|
+
// Create investigation result
|
|
185
|
+
const result = {
|
|
186
|
+
mode: 'demo',
|
|
187
|
+
sessionId: `inv-${Date.now()}`,
|
|
188
|
+
query,
|
|
189
|
+
timeWindow: 'Last 48 hours',
|
|
190
|
+
timeline: dedupedTimeline,
|
|
191
|
+
paths,
|
|
192
|
+
recall,
|
|
193
|
+
missingSignals,
|
|
194
|
+
suggestions,
|
|
195
|
+
};
|
|
196
|
+
// Save session to database
|
|
197
|
+
saveSession(result);
|
|
198
|
+
// Display investigation
|
|
199
|
+
displayInvestigation(result);
|
|
200
|
+
// Suggest next commands
|
|
201
|
+
console.log();
|
|
202
|
+
console.log(chalk.bold('Next steps:'));
|
|
203
|
+
console.log(chalk.cyan(' resolveai show details for item 1'));
|
|
204
|
+
console.log(chalk.cyan(' resolveai note investigating the timeout issue'));
|
|
205
|
+
console.log(chalk.cyan(' resolveai close fixed connection pool size'));
|
|
206
|
+
console.log();
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Handle show details command
|
|
210
|
+
*/
|
|
211
|
+
function handleDetails(args) {
|
|
212
|
+
console.log();
|
|
213
|
+
// Get active session
|
|
214
|
+
const session = getActiveSession();
|
|
215
|
+
if (!session) {
|
|
216
|
+
console.log(chalk.yellow('⚠️ No active investigation session'));
|
|
217
|
+
console.log();
|
|
218
|
+
console.log('Run', chalk.cyan('resolveai investigate <query>'), 'first');
|
|
219
|
+
console.log();
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
// Extract item number from args (e.g., "show details for item 3" -> 3)
|
|
223
|
+
const itemNum = parseInt(args[args.length - 1]);
|
|
224
|
+
if (isNaN(itemNum)) {
|
|
225
|
+
console.log(chalk.red('✗ Invalid item number'));
|
|
226
|
+
console.log('Usage:', chalk.cyan('resolveai show details for item <number>'));
|
|
227
|
+
console.log();
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
// Get timeline item
|
|
231
|
+
const item = getTimelineItem(session.sessionId, itemNum);
|
|
232
|
+
if (!item) {
|
|
233
|
+
console.log(chalk.red(`✗ Item ${itemNum} not found in current investigation`));
|
|
234
|
+
console.log();
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
// Display detailed view
|
|
238
|
+
console.log(chalk.bold.cyan(`📋 Item ${itemNum} Details`));
|
|
239
|
+
console.log();
|
|
240
|
+
console.log(chalk.bold('Type:'), item.signal);
|
|
241
|
+
console.log(chalk.bold('Target:'), item.target);
|
|
242
|
+
console.log(chalk.bold('Time:'), new Date(item.timestamp).toLocaleString());
|
|
243
|
+
console.log(chalk.bold('Summary:'), item.summary);
|
|
244
|
+
console.log(chalk.bold('Why it matters:'), item.whyItMatters);
|
|
245
|
+
console.log(chalk.bold('Confidence:'), item.confidence);
|
|
246
|
+
console.log();
|
|
247
|
+
if (item.details) {
|
|
248
|
+
console.log(chalk.bold('Additional Details:'));
|
|
249
|
+
console.log(JSON.stringify(item.details, null, 2));
|
|
250
|
+
console.log();
|
|
251
|
+
}
|
|
252
|
+
console.log(chalk.gray('Session:'), chalk.gray(session.sessionId));
|
|
253
|
+
console.log();
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Handle note command
|
|
257
|
+
*/
|
|
258
|
+
function handleNote(note) {
|
|
259
|
+
console.log();
|
|
260
|
+
if (!note.trim()) {
|
|
261
|
+
console.log(chalk.red('✗ Note cannot be empty'));
|
|
262
|
+
console.log('Usage:', chalk.cyan('resolveai note <your note>'));
|
|
263
|
+
console.log();
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
// Get active session
|
|
267
|
+
const session = getActiveSession();
|
|
268
|
+
if (!session) {
|
|
269
|
+
console.log(chalk.yellow('⚠️ No active investigation session'));
|
|
270
|
+
console.log();
|
|
271
|
+
console.log('Run', chalk.cyan('resolveai investigate <query>'), 'first');
|
|
272
|
+
console.log();
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
// Add note
|
|
276
|
+
addNote(session.sessionId, note);
|
|
277
|
+
console.log(chalk.green('✓ Note added'));
|
|
278
|
+
console.log();
|
|
279
|
+
console.log(chalk.gray(`Session: ${session.sessionId}`));
|
|
280
|
+
console.log();
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Handle close command
|
|
284
|
+
*/
|
|
285
|
+
async function handleClose(resolution) {
|
|
286
|
+
console.log();
|
|
287
|
+
// Get active session
|
|
288
|
+
const session = getActiveSession();
|
|
289
|
+
if (!session) {
|
|
290
|
+
console.log(chalk.yellow('⚠️ No active investigation session'));
|
|
291
|
+
console.log();
|
|
292
|
+
console.log('Run', chalk.cyan('resolveai investigate <query>'), 'first');
|
|
293
|
+
console.log();
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
// Use provided resolution or default
|
|
297
|
+
const finalResolution = resolution.trim() || 'Investigation closed';
|
|
298
|
+
console.log(chalk.cyan('🎯 Closing investigation...'));
|
|
299
|
+
console.log();
|
|
300
|
+
console.log(chalk.bold('Query:'), session.query);
|
|
301
|
+
console.log(chalk.bold('Resolution:'), finalResolution);
|
|
302
|
+
console.log();
|
|
303
|
+
// Get all notes for this session
|
|
304
|
+
const notes = getNotes(session.sessionId);
|
|
305
|
+
if (notes.length > 0) {
|
|
306
|
+
console.log(chalk.bold('Your notes:'));
|
|
307
|
+
for (const note of notes) {
|
|
308
|
+
const time = new Date(note.timestamp).toLocaleTimeString();
|
|
309
|
+
console.log(chalk.gray(` [${time}]`), note.note);
|
|
310
|
+
}
|
|
311
|
+
console.log();
|
|
312
|
+
}
|
|
313
|
+
// Prompt for time saved
|
|
314
|
+
const timeSaved = await promptTimeSaved();
|
|
315
|
+
// Close session and save to memory
|
|
316
|
+
closeSession(session.sessionId, finalResolution, timeSaved);
|
|
317
|
+
console.log();
|
|
318
|
+
console.log(chalk.green('✓ Investigation closed and saved to memory'));
|
|
319
|
+
console.log(chalk.gray(` Time saved: ${timeSaved} minutes`));
|
|
320
|
+
console.log();
|
|
321
|
+
console.log(chalk.bold('Next steps:'));
|
|
322
|
+
console.log(chalk.cyan(' resolveai investigate <new issue>'));
|
|
323
|
+
console.log(chalk.cyan(' resolveai report weekly'));
|
|
324
|
+
console.log();
|
|
325
|
+
}
|
|
138
326
|
/**
|
|
139
327
|
* Handle demo seed command
|
|
140
328
|
*/
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database module for session persistence
|
|
3
|
+
*
|
|
4
|
+
* Uses SQLite to store:
|
|
5
|
+
* - Investigation sessions
|
|
6
|
+
* - Session timeline items
|
|
7
|
+
* - Session notes
|
|
8
|
+
* - Closed incidents for recall
|
|
9
|
+
*/
|
|
10
|
+
import Database from 'better-sqlite3';
|
|
11
|
+
import type { InvestigationResult, TimelineItem } from './investigation-types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Get or create database connection
|
|
14
|
+
*/
|
|
15
|
+
export declare function getDatabase(): Database.Database;
|
|
16
|
+
/**
|
|
17
|
+
* Save investigation session
|
|
18
|
+
*/
|
|
19
|
+
export declare function saveSession(result: InvestigationResult): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get active session (most recent unclosed session)
|
|
22
|
+
*/
|
|
23
|
+
export declare function getActiveSession(): {
|
|
24
|
+
sessionId: string;
|
|
25
|
+
query: string;
|
|
26
|
+
} | null;
|
|
27
|
+
/**
|
|
28
|
+
* Get timeline item by index for active session
|
|
29
|
+
*/
|
|
30
|
+
export declare function getTimelineItem(sessionId: string, itemIndex: number): TimelineItem | null;
|
|
31
|
+
/**
|
|
32
|
+
* Add note to session
|
|
33
|
+
*/
|
|
34
|
+
export declare function addNote(sessionId: string, note: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Get all notes for a session
|
|
37
|
+
*/
|
|
38
|
+
export declare function getNotes(sessionId: string): Array<{
|
|
39
|
+
timestamp: string;
|
|
40
|
+
note: string;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Close session and save to incidents
|
|
44
|
+
*/
|
|
45
|
+
export declare function closeSession(sessionId: string, resolution: string, timeSavedMinutes: number): void;
|
|
46
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAQlF;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAY/C;AAuDD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAiC7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAY9E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAYzF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAS7D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAUtF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,GACvB,IAAI,CA4CN"}
|
package/dist/database.js
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database module for session persistence
|
|
3
|
+
*
|
|
4
|
+
* Uses SQLite to store:
|
|
5
|
+
* - Investigation sessions
|
|
6
|
+
* - Session timeline items
|
|
7
|
+
* - Session notes
|
|
8
|
+
* - Closed incidents for recall
|
|
9
|
+
*/
|
|
10
|
+
import Database from 'better-sqlite3';
|
|
11
|
+
import path from 'node:path';
|
|
12
|
+
import fs from 'node:fs';
|
|
13
|
+
// Use test database path if running tests
|
|
14
|
+
const DB_DIR = process.env.NODE_ENV === 'test'
|
|
15
|
+
? path.join(process.cwd(), '.resolveai-test')
|
|
16
|
+
: path.join(process.cwd(), '.resolveai');
|
|
17
|
+
const DB_PATH = path.join(DB_DIR, 'memory.sqlite');
|
|
18
|
+
/**
|
|
19
|
+
* Get or create database connection
|
|
20
|
+
*/
|
|
21
|
+
export function getDatabase() {
|
|
22
|
+
// Ensure directory exists
|
|
23
|
+
if (!fs.existsSync(DB_DIR)) {
|
|
24
|
+
fs.mkdirSync(DB_DIR, { recursive: true });
|
|
25
|
+
}
|
|
26
|
+
const db = new Database(DB_PATH);
|
|
27
|
+
// Initialize schema if needed
|
|
28
|
+
initializeSchema(db);
|
|
29
|
+
return db;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Initialize database schema
|
|
33
|
+
*/
|
|
34
|
+
function initializeSchema(db) {
|
|
35
|
+
// Sessions table
|
|
36
|
+
db.exec(`
|
|
37
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
38
|
+
id TEXT PRIMARY KEY,
|
|
39
|
+
query TEXT NOT NULL,
|
|
40
|
+
mode TEXT NOT NULL,
|
|
41
|
+
created_at TEXT NOT NULL,
|
|
42
|
+
closed_at TEXT,
|
|
43
|
+
resolution TEXT,
|
|
44
|
+
time_saved_minutes INTEGER
|
|
45
|
+
)
|
|
46
|
+
`);
|
|
47
|
+
// Session timeline items
|
|
48
|
+
db.exec(`
|
|
49
|
+
CREATE TABLE IF NOT EXISTS session_timeline (
|
|
50
|
+
session_id TEXT NOT NULL,
|
|
51
|
+
item_id TEXT NOT NULL,
|
|
52
|
+
item_index INTEGER NOT NULL,
|
|
53
|
+
item_data TEXT NOT NULL,
|
|
54
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id)
|
|
55
|
+
)
|
|
56
|
+
`);
|
|
57
|
+
// Session notes
|
|
58
|
+
db.exec(`
|
|
59
|
+
CREATE TABLE IF NOT EXISTS session_notes (
|
|
60
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
61
|
+
session_id TEXT NOT NULL,
|
|
62
|
+
timestamp TEXT NOT NULL,
|
|
63
|
+
note TEXT NOT NULL,
|
|
64
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id)
|
|
65
|
+
)
|
|
66
|
+
`);
|
|
67
|
+
// Closed incidents for recall
|
|
68
|
+
db.exec(`
|
|
69
|
+
CREATE TABLE IF NOT EXISTS incidents (
|
|
70
|
+
id TEXT PRIMARY KEY,
|
|
71
|
+
query TEXT NOT NULL,
|
|
72
|
+
resolution TEXT NOT NULL,
|
|
73
|
+
time_saved_minutes INTEGER,
|
|
74
|
+
created_at TEXT NOT NULL,
|
|
75
|
+
closed_at TEXT NOT NULL,
|
|
76
|
+
timeline_summary TEXT
|
|
77
|
+
)
|
|
78
|
+
`);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Save investigation session
|
|
82
|
+
*/
|
|
83
|
+
export function saveSession(result) {
|
|
84
|
+
const db = getDatabase();
|
|
85
|
+
// Insert session
|
|
86
|
+
const insertSession = db.prepare(`
|
|
87
|
+
INSERT OR REPLACE INTO sessions (id, query, mode, created_at)
|
|
88
|
+
VALUES (?, ?, ?, ?)
|
|
89
|
+
`);
|
|
90
|
+
insertSession.run(result.sessionId, result.query, result.mode, new Date().toISOString());
|
|
91
|
+
// Insert timeline items
|
|
92
|
+
const insertItem = db.prepare(`
|
|
93
|
+
INSERT OR REPLACE INTO session_timeline (session_id, item_id, item_index, item_data)
|
|
94
|
+
VALUES (?, ?, ?, ?)
|
|
95
|
+
`);
|
|
96
|
+
for (let i = 0; i < result.timeline.length; i++) {
|
|
97
|
+
const item = result.timeline[i];
|
|
98
|
+
insertItem.run(result.sessionId, item.id, i + 1, // 1-indexed for user display
|
|
99
|
+
JSON.stringify(item));
|
|
100
|
+
}
|
|
101
|
+
db.close();
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get active session (most recent unclosed session)
|
|
105
|
+
*/
|
|
106
|
+
export function getActiveSession() {
|
|
107
|
+
const db = getDatabase();
|
|
108
|
+
const session = db
|
|
109
|
+
.prepare('SELECT id, query FROM sessions WHERE closed_at IS NULL ORDER BY created_at DESC LIMIT 1')
|
|
110
|
+
.get();
|
|
111
|
+
db.close();
|
|
112
|
+
if (!session)
|
|
113
|
+
return null;
|
|
114
|
+
return { sessionId: session.id, query: session.query };
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get timeline item by index for active session
|
|
118
|
+
*/
|
|
119
|
+
export function getTimelineItem(sessionId, itemIndex) {
|
|
120
|
+
const db = getDatabase();
|
|
121
|
+
const row = db
|
|
122
|
+
.prepare('SELECT item_data FROM session_timeline WHERE session_id = ? AND item_index = ?')
|
|
123
|
+
.get(sessionId, itemIndex);
|
|
124
|
+
db.close();
|
|
125
|
+
if (!row)
|
|
126
|
+
return null;
|
|
127
|
+
return JSON.parse(row.item_data);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Add note to session
|
|
131
|
+
*/
|
|
132
|
+
export function addNote(sessionId, note) {
|
|
133
|
+
const db = getDatabase();
|
|
134
|
+
db.prepare(`
|
|
135
|
+
INSERT INTO session_notes (session_id, timestamp, note)
|
|
136
|
+
VALUES (?, ?, ?)
|
|
137
|
+
`).run(sessionId, new Date().toISOString(), note);
|
|
138
|
+
db.close();
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get all notes for a session
|
|
142
|
+
*/
|
|
143
|
+
export function getNotes(sessionId) {
|
|
144
|
+
const db = getDatabase();
|
|
145
|
+
const notes = db
|
|
146
|
+
.prepare('SELECT timestamp, note FROM session_notes WHERE session_id = ? ORDER BY timestamp')
|
|
147
|
+
.all(sessionId);
|
|
148
|
+
db.close();
|
|
149
|
+
return notes;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Close session and save to incidents
|
|
153
|
+
*/
|
|
154
|
+
export function closeSession(sessionId, resolution, timeSavedMinutes) {
|
|
155
|
+
const db = getDatabase();
|
|
156
|
+
// Update session
|
|
157
|
+
db.prepare(`
|
|
158
|
+
UPDATE sessions
|
|
159
|
+
SET closed_at = ?, resolution = ?, time_saved_minutes = ?
|
|
160
|
+
WHERE id = ?
|
|
161
|
+
`).run(new Date().toISOString(), resolution, timeSavedMinutes, sessionId);
|
|
162
|
+
// Copy to incidents table for recall
|
|
163
|
+
const session = db
|
|
164
|
+
.prepare('SELECT query, created_at FROM sessions WHERE id = ?')
|
|
165
|
+
.get(sessionId);
|
|
166
|
+
if (session) {
|
|
167
|
+
// Get timeline summary
|
|
168
|
+
const timeline = db
|
|
169
|
+
.prepare('SELECT item_data FROM session_timeline WHERE session_id = ? ORDER BY item_index')
|
|
170
|
+
.all(sessionId);
|
|
171
|
+
const timelineSummary = timeline
|
|
172
|
+
.slice(0, 5)
|
|
173
|
+
.map((row) => {
|
|
174
|
+
const item = JSON.parse(row.item_data);
|
|
175
|
+
return `${item.signal}: ${item.summary}`;
|
|
176
|
+
})
|
|
177
|
+
.join('; ');
|
|
178
|
+
db.prepare(`
|
|
179
|
+
INSERT INTO incidents (id, query, resolution, time_saved_minutes, created_at, closed_at, timeline_summary)
|
|
180
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
181
|
+
`).run(sessionId, session.query, resolution, timeSavedMinutes, session.created_at, new Date().toISOString(), timelineSummary);
|
|
182
|
+
}
|
|
183
|
+
db.close();
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAmFxD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAmFxD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CA8BxD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAwCrD"}
|
package/dist/parser.js
CHANGED
|
@@ -91,10 +91,17 @@ export function parseIntent(input) {
|
|
|
91
91
|
// Try to match against known patterns
|
|
92
92
|
for (const { intent, patterns } of INTENT_PATTERNS) {
|
|
93
93
|
for (const pattern of patterns) {
|
|
94
|
-
|
|
94
|
+
const match = pattern.exec(trimmed);
|
|
95
|
+
if (match) {
|
|
95
96
|
// Extract remaining args by removing the matched pattern
|
|
96
97
|
const args = trimmed.split(/\s+/).slice(1);
|
|
97
|
-
|
|
98
|
+
// For investigate commands, extract the full query after the trigger word
|
|
99
|
+
let query;
|
|
100
|
+
if (intent === 'investigate') {
|
|
101
|
+
// Remove the trigger word(s) and extract the rest as the query
|
|
102
|
+
query = trimmed.replace(pattern, '').trim();
|
|
103
|
+
}
|
|
104
|
+
return { intent, args, raw: trimmed, query };
|
|
98
105
|
}
|
|
99
106
|
}
|
|
100
107
|
}
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,+DAA+D;AAC/D,MAAM,eAAe,GAAoB;IACvC;QACE,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC;KAC5C;IACD;QACE,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;KAC/C;IACD;QACE,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;KACjD;IACD;QACE,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD;QACE,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE;YACR,0DAA0D;YAC1D,kBAAkB;YAClB,cAAc;SACf;KACF;IACD;QACE,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE;YACR,WAAW;YACX,iBAAiB;YACjB,UAAU;SACX;KACF;IACD;QACE,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE;YACR,gBAAgB;YAChB,kBAAkB;YAClB,yBAAyB;YACzB,kCAAkC;SACnC;KACF;IACD;QACE,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE;YACR,oBAAoB;YACpB,oBAAoB;YACpB,WAAW;SACZ;KACF;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC;KAC7C;IACD;QACE,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE;YACR,cAAc;YACd,WAAW;YACX,YAAY;SACb;KACF;IACD;QACE,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE;YACR,kBAAkB;YAClB,kBAAkB;YAClB,gBAAgB;YAChB,YAAY;YACZ,kBAAkB;YAClB,YAAY;SACb;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,gDAAgD;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAClD,CAAC;IAED,sCAAsC;IACtC,KAAK,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,eAAe,EAAE,CAAC;QACnD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/timeline.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export declare function buildTimeline(dataset: DemoDataset, options?: {
|
|
|
13
13
|
maxItems?: number;
|
|
14
14
|
relevantServices?: string[];
|
|
15
15
|
baseDate?: Date;
|
|
16
|
+
query?: string;
|
|
17
|
+
relevanceThreshold?: number;
|
|
16
18
|
}): TimelineItem[];
|
|
17
19
|
/**
|
|
18
20
|
* Get services affected in timeline
|
package/dist/timeline.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,0BAA0B,CAAC;AAsBzE;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACxB,GACL,YAAY,EAAE,CA0IhB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAMtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GACvC,YAAY,EAAE,CAuBhB"}
|
package/dist/timeline.js
CHANGED
|
@@ -3,11 +3,28 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Merges deploys, logs, and incidents into a unified timeline.
|
|
5
5
|
*/
|
|
6
|
+
/**
|
|
7
|
+
* Calculate relevance score for a timeline item based on query keywords
|
|
8
|
+
* Returns 0-1 score (0 = not relevant, 1 = highly relevant)
|
|
9
|
+
*/
|
|
10
|
+
function calculateRelevance(item, query) {
|
|
11
|
+
if (!query)
|
|
12
|
+
return 1; // No query = all items equally relevant
|
|
13
|
+
const keywords = query.toLowerCase().split(/\s+/);
|
|
14
|
+
const searchText = `${item.summary} ${item.target} ${item.whyItMatters}`.toLowerCase();
|
|
15
|
+
let matches = 0;
|
|
16
|
+
for (const keyword of keywords) {
|
|
17
|
+
if (searchText.includes(keyword)) {
|
|
18
|
+
matches++;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return matches / keywords.length;
|
|
22
|
+
}
|
|
6
23
|
/**
|
|
7
24
|
* Build a timeline from demo dataset
|
|
8
25
|
*/
|
|
9
26
|
export function buildTimeline(dataset, options = {}) {
|
|
10
|
-
const { hoursAgo = 24, maxItems = 15, relevantServices, baseDate } = options;
|
|
27
|
+
const { hoursAgo = 24, maxItems = 15, relevantServices, baseDate, query, relevanceThreshold = 0.2 } = options;
|
|
11
28
|
const now = baseDate || new Date();
|
|
12
29
|
const cutoffTime = new Date(now.getTime() - hoursAgo * 60 * 60 * 1000);
|
|
13
30
|
const items = [];
|
|
@@ -104,10 +121,30 @@ export function buildTimeline(dataset, options = {}) {
|
|
|
104
121
|
isDemo: true,
|
|
105
122
|
});
|
|
106
123
|
}
|
|
107
|
-
//
|
|
108
|
-
|
|
124
|
+
// Filter by query relevance if specified
|
|
125
|
+
let filteredItems = items;
|
|
126
|
+
if (query) {
|
|
127
|
+
filteredItems = items
|
|
128
|
+
.map((item) => ({
|
|
129
|
+
item,
|
|
130
|
+
relevance: calculateRelevance(item, query),
|
|
131
|
+
}))
|
|
132
|
+
.filter((scored) => scored.relevance >= relevanceThreshold)
|
|
133
|
+
.sort((a, b) => {
|
|
134
|
+
// Sort by relevance first, then by timestamp
|
|
135
|
+
if (b.relevance !== a.relevance) {
|
|
136
|
+
return b.relevance - a.relevance;
|
|
137
|
+
}
|
|
138
|
+
return new Date(b.item.timestamp).getTime() - new Date(a.item.timestamp).getTime();
|
|
139
|
+
})
|
|
140
|
+
.map((scored) => scored.item);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// No query filter - just sort by timestamp (most recent first)
|
|
144
|
+
filteredItems.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
145
|
+
}
|
|
109
146
|
// Limit to maxItems
|
|
110
|
-
return
|
|
147
|
+
return filteredItems.slice(0, maxItems);
|
|
111
148
|
}
|
|
112
149
|
/**
|
|
113
150
|
* Get services affected in timeline
|
package/dist/timeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,MAAM,GACd,MAAM,GACN,MAAM,GACN,WAAW,GACX,YAAY,GACZ,aAAa,GACb,SAAS,GACT,MAAM,GACN,OAAO,GACP,eAAe,GACf,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,MAAM,GACd,MAAM,GACN,MAAM,GACN,WAAW,GACX,YAAY,GACZ,aAAa,GACb,SAAS,GACT,MAAM,GACN,OAAO,GACP,eAAe,GACf,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|