@oneuptime/common 9.2.17 → 9.2.20
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/Server/API/AlertAPI.ts +139 -0
- package/Server/API/IncidentAPI.ts +132 -0
- package/Server/API/ScheduledMaintenanceAPI.ts +164 -0
- package/Server/Services/AIService.ts +0 -1
- package/Server/Services/IncidentService.ts +0 -1
- package/Server/Utils/AI/AlertAIContextBuilder.ts +264 -0
- package/Server/Utils/AI/IncidentAIContextBuilder.ts +212 -0
- package/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.ts +345 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +78 -1
- package/Server/Utils/Workspace/Slack/Slack.ts +80 -1
- package/Tests/Types/Domain.test.ts +24 -3
- package/Types/Domain.ts +21 -24
- package/UI/Components/AI/GenerateFromAIModal.tsx +157 -20
- package/build/dist/Server/API/AlertAPI.js +94 -0
- package/build/dist/Server/API/AlertAPI.js.map +1 -0
- package/build/dist/Server/API/IncidentAPI.js +88 -1
- package/build/dist/Server/API/IncidentAPI.js.map +1 -1
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js +103 -0
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -0
- package/build/dist/Server/Services/AIService.js +0 -1
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +0 -1
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Utils/AI/AlertAIContextBuilder.js +238 -0
- package/build/dist/Server/Utils/AI/AlertAIContextBuilder.js.map +1 -0
- package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js +189 -0
- package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js.map +1 -1
- package/build/dist/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.js +311 -0
- package/build/dist/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +59 -2
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +61 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Tests/Types/Domain.test.js +19 -3
- package/build/dist/Tests/Types/Domain.test.js.map +1 -1
- package/build/dist/Types/Domain.js +18 -16
- package/build/dist/Types/Domain.js.map +1 -1
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js +116 -3
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -1
- package/package.json +1 -1
|
@@ -317,6 +317,189 @@ Write in a professional, clear, and concise manner. Use markdown formatting for
|
|
|
317
317
|
messages,
|
|
318
318
|
};
|
|
319
319
|
}
|
|
320
|
+
static formatIncidentContextForNote(contextData, noteType, template) {
|
|
321
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
322
|
+
const { incident, stateTimeline, internalNotes, publicNotes, workspaceMessages, } = contextData;
|
|
323
|
+
let contextText = "";
|
|
324
|
+
// Basic incident information
|
|
325
|
+
contextText += "# Incident Information\n\n";
|
|
326
|
+
contextText += `**Title:** ${incident.title || "N/A"}\n\n`;
|
|
327
|
+
contextText += `**Description:** ${incident.description || "N/A"}\n\n`;
|
|
328
|
+
contextText += `**Severity:** ${((_a = incident.incidentSeverity) === null || _a === void 0 ? void 0 : _a.name) || "N/A"}\n\n`;
|
|
329
|
+
contextText += `**Current State:** ${((_b = incident.currentIncidentState) === null || _b === void 0 ? void 0 : _b.name) || "N/A"}\n\n`;
|
|
330
|
+
contextText += `**Created At:** ${incident.createdAt ? OneUptimeDate.getDateAsFormattedString(incident.createdAt) : "N/A"}\n\n`;
|
|
331
|
+
// Affected monitors
|
|
332
|
+
if (incident.monitors && incident.monitors.length > 0) {
|
|
333
|
+
contextText += "**Affected Monitors:** ";
|
|
334
|
+
contextText += incident.monitors
|
|
335
|
+
.map((m) => {
|
|
336
|
+
return m.name;
|
|
337
|
+
})
|
|
338
|
+
.join(", ");
|
|
339
|
+
contextText += "\n\n";
|
|
340
|
+
}
|
|
341
|
+
// Labels
|
|
342
|
+
if (incident.labels && incident.labels.length > 0) {
|
|
343
|
+
contextText += "**Labels:** ";
|
|
344
|
+
contextText += incident.labels
|
|
345
|
+
.map((l) => {
|
|
346
|
+
return l.name;
|
|
347
|
+
})
|
|
348
|
+
.join(", ");
|
|
349
|
+
contextText += "\n\n";
|
|
350
|
+
}
|
|
351
|
+
// Root cause if available
|
|
352
|
+
if (incident.rootCause) {
|
|
353
|
+
contextText += `**Root Cause:** ${incident.rootCause}\n\n`;
|
|
354
|
+
}
|
|
355
|
+
// State timeline
|
|
356
|
+
if (stateTimeline.length > 0) {
|
|
357
|
+
contextText += "# State Timeline\n\n";
|
|
358
|
+
for (const timeline of stateTimeline) {
|
|
359
|
+
const startTime = timeline.startsAt
|
|
360
|
+
? OneUptimeDate.getDateAsFormattedString(timeline.startsAt)
|
|
361
|
+
: "N/A";
|
|
362
|
+
const stateName = ((_d = (_c = timeline.incidentState) === null || _c === void 0 ? void 0 : _c.name) === null || _d === void 0 ? void 0 : _d.toString()) || "Unknown";
|
|
363
|
+
const createdBy = ((_f = (_e = timeline.createdByUser) === null || _e === void 0 ? void 0 : _e.name) === null || _f === void 0 ? void 0 : _f.toString()) ||
|
|
364
|
+
((_h = (_g = timeline.createdByUser) === null || _g === void 0 ? void 0 : _g.email) === null || _h === void 0 ? void 0 : _h.toString()) ||
|
|
365
|
+
"System";
|
|
366
|
+
contextText += `- **${startTime}**: State changed to **${stateName}** by ${createdBy}\n`;
|
|
367
|
+
if (timeline.rootCause) {
|
|
368
|
+
contextText += ` - Root cause noted: ${timeline.rootCause}\n`;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
contextText += "\n";
|
|
372
|
+
}
|
|
373
|
+
// Include internal notes for context (for both note types)
|
|
374
|
+
if (internalNotes.length > 0) {
|
|
375
|
+
contextText += "# Internal Notes (Private)\n\n";
|
|
376
|
+
for (const note of internalNotes) {
|
|
377
|
+
const noteTime = note.createdAt
|
|
378
|
+
? OneUptimeDate.getDateAsFormattedString(note.createdAt)
|
|
379
|
+
: "N/A";
|
|
380
|
+
const createdBy = ((_k = (_j = note.createdByUser) === null || _j === void 0 ? void 0 : _j.name) === null || _k === void 0 ? void 0 : _k.toString()) ||
|
|
381
|
+
((_m = (_l = note.createdByUser) === null || _l === void 0 ? void 0 : _l.email) === null || _m === void 0 ? void 0 : _m.toString()) ||
|
|
382
|
+
"Unknown";
|
|
383
|
+
contextText += `**[${noteTime}] ${createdBy}:**\n`;
|
|
384
|
+
contextText += `${note.note || "N/A"}\n\n`;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
// Public notes
|
|
388
|
+
if (publicNotes.length > 0) {
|
|
389
|
+
contextText += "# Public Notes\n\n";
|
|
390
|
+
for (const note of publicNotes) {
|
|
391
|
+
const noteTime = note.postedAt
|
|
392
|
+
? OneUptimeDate.getDateAsFormattedString(note.postedAt)
|
|
393
|
+
: note.createdAt
|
|
394
|
+
? OneUptimeDate.getDateAsFormattedString(note.createdAt)
|
|
395
|
+
: "N/A";
|
|
396
|
+
const createdBy = ((_p = (_o = note.createdByUser) === null || _o === void 0 ? void 0 : _o.name) === null || _p === void 0 ? void 0 : _p.toString()) ||
|
|
397
|
+
((_r = (_q = note.createdByUser) === null || _q === void 0 ? void 0 : _q.email) === null || _r === void 0 ? void 0 : _r.toString()) ||
|
|
398
|
+
"Unknown";
|
|
399
|
+
contextText += `**[${noteTime}] ${createdBy}:**\n`;
|
|
400
|
+
contextText += `${note.note || "N/A"}\n\n`;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
// Workspace messages (Slack/Teams)
|
|
404
|
+
if (workspaceMessages.length > 0) {
|
|
405
|
+
contextText += "# Discussion from Incident Channel\n\n";
|
|
406
|
+
contextText += WorkspaceUtil.formatMessagesAsContext(workspaceMessages, {
|
|
407
|
+
includeTimestamp: true,
|
|
408
|
+
includeUsername: true,
|
|
409
|
+
maxLength: 20000,
|
|
410
|
+
});
|
|
411
|
+
contextText += "\n\n";
|
|
412
|
+
}
|
|
413
|
+
// System prompt for note generation
|
|
414
|
+
let systemPrompt;
|
|
415
|
+
if (noteType === "public") {
|
|
416
|
+
if (template) {
|
|
417
|
+
systemPrompt = `You are an expert incident communicator. Your task is to fill in a public incident note template based on the provided incident data.
|
|
418
|
+
|
|
419
|
+
CRITICAL INSTRUCTIONS:
|
|
420
|
+
- You MUST use ONLY the exact template structure provided below
|
|
421
|
+
- Fill in each section of the template with relevant information from the incident data
|
|
422
|
+
- Do NOT add any new sections, headers, or content that is not part of the template
|
|
423
|
+
- Do NOT add introductions, conclusions, or any text outside the template structure
|
|
424
|
+
- Write in a professional, clear, and customer-friendly manner
|
|
425
|
+
- Focus on what customers need to know: impact, current status, and next steps
|
|
426
|
+
- Avoid technical jargon - keep it understandable for non-technical readers
|
|
427
|
+
- Be concise but informative
|
|
428
|
+
|
|
429
|
+
TEMPLATE TO FILL (use this exact structure):
|
|
430
|
+
|
|
431
|
+
${template}`;
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
systemPrompt = `You are an expert incident communicator. Your task is to generate a public incident note that will be visible to customers on the status page.
|
|
435
|
+
|
|
436
|
+
The note should:
|
|
437
|
+
1. Be written in a professional, customer-friendly tone
|
|
438
|
+
2. Clearly communicate the current status of the incident
|
|
439
|
+
3. Explain the impact on users without excessive technical details
|
|
440
|
+
4. Provide information about what is being done to resolve the issue
|
|
441
|
+
5. Set appropriate expectations about resolution timing if known
|
|
442
|
+
6. Be concise but informative
|
|
443
|
+
|
|
444
|
+
DO NOT include:
|
|
445
|
+
- Internal technical details that customers don't need
|
|
446
|
+
- Blame or finger-pointing
|
|
447
|
+
- Confidential information
|
|
448
|
+
- Excessive jargon
|
|
449
|
+
|
|
450
|
+
Write in markdown format for better readability.`;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
else if (template) {
|
|
454
|
+
// Internal note with template
|
|
455
|
+
systemPrompt = `You are an expert Site Reliability Engineer (SRE). Your task is to fill in an internal incident note template based on the provided incident data.
|
|
456
|
+
|
|
457
|
+
CRITICAL INSTRUCTIONS:
|
|
458
|
+
- You MUST use ONLY the exact template structure provided below
|
|
459
|
+
- Fill in each section of the template with relevant information from the incident data
|
|
460
|
+
- Do NOT add any new sections, headers, or content that is not part of the template
|
|
461
|
+
- Do NOT add introductions, conclusions, or any text outside the template structure
|
|
462
|
+
- Be technical and detailed - this is for the internal team
|
|
463
|
+
- Include relevant technical details, metrics, and observations
|
|
464
|
+
|
|
465
|
+
TEMPLATE TO FILL (use this exact structure):
|
|
466
|
+
|
|
467
|
+
${template}`;
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
// Internal note without template
|
|
471
|
+
systemPrompt = `You are an expert Site Reliability Engineer (SRE). Your task is to generate an internal incident note for the response team.
|
|
472
|
+
|
|
473
|
+
The note should:
|
|
474
|
+
1. Provide technical details about the current situation
|
|
475
|
+
2. Document observations, findings, or actions taken
|
|
476
|
+
3. Include relevant metrics or error messages if mentioned in the context
|
|
477
|
+
4. Be detailed enough to help team members understand the situation
|
|
478
|
+
5. Use technical language appropriate for the engineering team
|
|
479
|
+
|
|
480
|
+
Write in markdown format for better readability. Be thorough and technical.`;
|
|
481
|
+
}
|
|
482
|
+
// Build user message
|
|
483
|
+
const userMessage = template
|
|
484
|
+
? `Fill in the template above using ONLY the following incident data. Output only the filled template, nothing else:\n\n${contextText}`
|
|
485
|
+
: `Based on the following incident data, please generate ${noteType === "public" ? "a customer-facing public" : "an internal technical"} incident note:\n\n${contextText}`;
|
|
486
|
+
// Build messages array
|
|
487
|
+
const messages = [
|
|
488
|
+
{
|
|
489
|
+
role: "system",
|
|
490
|
+
content: systemPrompt,
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
role: "user",
|
|
494
|
+
content: userMessage,
|
|
495
|
+
},
|
|
496
|
+
];
|
|
497
|
+
return {
|
|
498
|
+
contextText,
|
|
499
|
+
systemPrompt,
|
|
500
|
+
messages,
|
|
501
|
+
};
|
|
502
|
+
}
|
|
320
503
|
static buildGenericAIContext(data) {
|
|
321
504
|
let userContent = data.userPrompt;
|
|
322
505
|
if (data.context) {
|
|
@@ -393,6 +576,12 @@ __decorate([
|
|
|
393
576
|
__metadata("design:paramtypes", [Object, String]),
|
|
394
577
|
__metadata("design:returntype", Object)
|
|
395
578
|
], IncidentAIContextBuilder, "formatIncidentContextForPostmortem", null);
|
|
579
|
+
__decorate([
|
|
580
|
+
CaptureSpan(),
|
|
581
|
+
__metadata("design:type", Function),
|
|
582
|
+
__metadata("design:paramtypes", [Object, String, String]),
|
|
583
|
+
__metadata("design:returntype", Object)
|
|
584
|
+
], IncidentAIContextBuilder, "formatIncidentContextForNote", null);
|
|
396
585
|
__decorate([
|
|
397
586
|
CaptureSpan(),
|
|
398
587
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncidentAIContextBuilder.js","sourceRoot":"","sources":["../../../../../Server/Utils/AI/IncidentAIContextBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IncidentAIContextBuilder.js","sourceRoot":"","sources":["../../../../../Server/Utils/AI/IncidentAIContextBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import ScheduledMaintenanceService from "../../Services/ScheduledMaintenanceService";
|
|
11
|
+
import ScheduledMaintenanceStateTimelineService from "../../Services/ScheduledMaintenanceStateTimelineService";
|
|
12
|
+
import ScheduledMaintenanceInternalNoteService from "../../Services/ScheduledMaintenanceInternalNoteService";
|
|
13
|
+
import ScheduledMaintenancePublicNoteService from "../../Services/ScheduledMaintenancePublicNoteService";
|
|
14
|
+
import CaptureSpan from "../Telemetry/CaptureSpan";
|
|
15
|
+
import OneUptimeDate from "../../../Types/Date";
|
|
16
|
+
import SortOrder from "../../../Types/BaseDatabase/SortOrder";
|
|
17
|
+
export default class ScheduledMaintenanceAIContextBuilder {
|
|
18
|
+
static async buildScheduledMaintenanceContext(data) {
|
|
19
|
+
const scheduledMaintenance = await ScheduledMaintenanceService.findOneById({
|
|
20
|
+
id: data.scheduledMaintenanceId,
|
|
21
|
+
select: {
|
|
22
|
+
_id: true,
|
|
23
|
+
title: true,
|
|
24
|
+
description: true,
|
|
25
|
+
createdAt: true,
|
|
26
|
+
startsAt: true,
|
|
27
|
+
endsAt: true,
|
|
28
|
+
customFields: true,
|
|
29
|
+
projectId: true,
|
|
30
|
+
currentScheduledMaintenanceState: {
|
|
31
|
+
name: true,
|
|
32
|
+
color: true,
|
|
33
|
+
},
|
|
34
|
+
monitors: {
|
|
35
|
+
name: true,
|
|
36
|
+
},
|
|
37
|
+
labels: {
|
|
38
|
+
name: true,
|
|
39
|
+
color: true,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
props: {
|
|
43
|
+
isRoot: true,
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
if (!scheduledMaintenance) {
|
|
47
|
+
throw new Error("Scheduled Maintenance not found");
|
|
48
|
+
}
|
|
49
|
+
// Fetch state timeline
|
|
50
|
+
const stateTimeline = await ScheduledMaintenanceStateTimelineService.findBy({
|
|
51
|
+
query: {
|
|
52
|
+
scheduledMaintenanceId: data.scheduledMaintenanceId,
|
|
53
|
+
},
|
|
54
|
+
select: {
|
|
55
|
+
_id: true,
|
|
56
|
+
createdAt: true,
|
|
57
|
+
startsAt: true,
|
|
58
|
+
endsAt: true,
|
|
59
|
+
scheduledMaintenanceState: {
|
|
60
|
+
name: true,
|
|
61
|
+
color: true,
|
|
62
|
+
},
|
|
63
|
+
createdByUser: {
|
|
64
|
+
name: true,
|
|
65
|
+
email: true,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
sort: {
|
|
69
|
+
startsAt: SortOrder.Ascending,
|
|
70
|
+
},
|
|
71
|
+
limit: 100,
|
|
72
|
+
skip: 0,
|
|
73
|
+
props: {
|
|
74
|
+
isRoot: true,
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
// Fetch internal notes
|
|
78
|
+
const internalNotes = await ScheduledMaintenanceInternalNoteService.findBy({
|
|
79
|
+
query: {
|
|
80
|
+
scheduledMaintenanceId: data.scheduledMaintenanceId,
|
|
81
|
+
},
|
|
82
|
+
select: {
|
|
83
|
+
_id: true,
|
|
84
|
+
note: true,
|
|
85
|
+
createdAt: true,
|
|
86
|
+
createdByUser: {
|
|
87
|
+
name: true,
|
|
88
|
+
email: true,
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
sort: {
|
|
92
|
+
createdAt: SortOrder.Ascending,
|
|
93
|
+
},
|
|
94
|
+
limit: 100,
|
|
95
|
+
skip: 0,
|
|
96
|
+
props: {
|
|
97
|
+
isRoot: true,
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
// Fetch public notes
|
|
101
|
+
const publicNotes = await ScheduledMaintenancePublicNoteService.findBy({
|
|
102
|
+
query: {
|
|
103
|
+
scheduledMaintenanceId: data.scheduledMaintenanceId,
|
|
104
|
+
},
|
|
105
|
+
select: {
|
|
106
|
+
_id: true,
|
|
107
|
+
note: true,
|
|
108
|
+
createdAt: true,
|
|
109
|
+
postedAt: true,
|
|
110
|
+
createdByUser: {
|
|
111
|
+
name: true,
|
|
112
|
+
email: true,
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
sort: {
|
|
116
|
+
createdAt: SortOrder.Ascending,
|
|
117
|
+
},
|
|
118
|
+
limit: 100,
|
|
119
|
+
skip: 0,
|
|
120
|
+
props: {
|
|
121
|
+
isRoot: true,
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
return {
|
|
125
|
+
scheduledMaintenance,
|
|
126
|
+
stateTimeline,
|
|
127
|
+
internalNotes,
|
|
128
|
+
publicNotes,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
static formatScheduledMaintenanceContextForNote(contextData, noteType, template) {
|
|
132
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
133
|
+
const { scheduledMaintenance, stateTimeline, internalNotes, publicNotes } = contextData;
|
|
134
|
+
let contextText = "";
|
|
135
|
+
// Basic scheduled maintenance information
|
|
136
|
+
contextText += "# Scheduled Maintenance Information\n\n";
|
|
137
|
+
contextText += `**Title:** ${scheduledMaintenance.title || "N/A"}\n\n`;
|
|
138
|
+
contextText += `**Description:** ${scheduledMaintenance.description || "N/A"}\n\n`;
|
|
139
|
+
contextText += `**Current State:** ${((_a = scheduledMaintenance.currentScheduledMaintenanceState) === null || _a === void 0 ? void 0 : _a.name) || "N/A"}\n\n`;
|
|
140
|
+
contextText += `**Scheduled Start:** ${scheduledMaintenance.startsAt ? OneUptimeDate.getDateAsFormattedString(scheduledMaintenance.startsAt) : "N/A"}\n\n`;
|
|
141
|
+
contextText += `**Scheduled End:** ${scheduledMaintenance.endsAt ? OneUptimeDate.getDateAsFormattedString(scheduledMaintenance.endsAt) : "N/A"}\n\n`;
|
|
142
|
+
contextText += `**Created At:** ${scheduledMaintenance.createdAt ? OneUptimeDate.getDateAsFormattedString(scheduledMaintenance.createdAt) : "N/A"}\n\n`;
|
|
143
|
+
// Affected monitors
|
|
144
|
+
if (scheduledMaintenance.monitors &&
|
|
145
|
+
scheduledMaintenance.monitors.length > 0) {
|
|
146
|
+
contextText += "**Affected Monitors:** ";
|
|
147
|
+
contextText += scheduledMaintenance.monitors
|
|
148
|
+
.map((m) => {
|
|
149
|
+
return m.name;
|
|
150
|
+
})
|
|
151
|
+
.join(", ");
|
|
152
|
+
contextText += "\n\n";
|
|
153
|
+
}
|
|
154
|
+
// Labels
|
|
155
|
+
if (scheduledMaintenance.labels && scheduledMaintenance.labels.length > 0) {
|
|
156
|
+
contextText += "**Labels:** ";
|
|
157
|
+
contextText += scheduledMaintenance.labels
|
|
158
|
+
.map((l) => {
|
|
159
|
+
return l.name;
|
|
160
|
+
})
|
|
161
|
+
.join(", ");
|
|
162
|
+
contextText += "\n\n";
|
|
163
|
+
}
|
|
164
|
+
// State timeline
|
|
165
|
+
if (stateTimeline.length > 0) {
|
|
166
|
+
contextText += "# State Timeline\n\n";
|
|
167
|
+
for (const timeline of stateTimeline) {
|
|
168
|
+
const startTime = timeline.startsAt
|
|
169
|
+
? OneUptimeDate.getDateAsFormattedString(timeline.startsAt)
|
|
170
|
+
: "N/A";
|
|
171
|
+
const stateName = ((_c = (_b = timeline.scheduledMaintenanceState) === null || _b === void 0 ? void 0 : _b.name) === null || _c === void 0 ? void 0 : _c.toString()) || "Unknown";
|
|
172
|
+
const createdBy = ((_e = (_d = timeline.createdByUser) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.toString()) ||
|
|
173
|
+
((_g = (_f = timeline.createdByUser) === null || _f === void 0 ? void 0 : _f.email) === null || _g === void 0 ? void 0 : _g.toString()) ||
|
|
174
|
+
"System";
|
|
175
|
+
contextText += `- **${startTime}**: State changed to **${stateName}** by ${createdBy}\n`;
|
|
176
|
+
}
|
|
177
|
+
contextText += "\n";
|
|
178
|
+
}
|
|
179
|
+
// Include internal notes for context (for both note types)
|
|
180
|
+
if (internalNotes.length > 0) {
|
|
181
|
+
contextText += "# Internal Notes (Private)\n\n";
|
|
182
|
+
for (const note of internalNotes) {
|
|
183
|
+
const noteTime = note.createdAt
|
|
184
|
+
? OneUptimeDate.getDateAsFormattedString(note.createdAt)
|
|
185
|
+
: "N/A";
|
|
186
|
+
const createdBy = ((_j = (_h = note.createdByUser) === null || _h === void 0 ? void 0 : _h.name) === null || _j === void 0 ? void 0 : _j.toString()) ||
|
|
187
|
+
((_l = (_k = note.createdByUser) === null || _k === void 0 ? void 0 : _k.email) === null || _l === void 0 ? void 0 : _l.toString()) ||
|
|
188
|
+
"Unknown";
|
|
189
|
+
contextText += `**[${noteTime}] ${createdBy}:**\n`;
|
|
190
|
+
contextText += `${note.note || "N/A"}\n\n`;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// Public notes
|
|
194
|
+
if (publicNotes.length > 0) {
|
|
195
|
+
contextText += "# Public Notes\n\n";
|
|
196
|
+
for (const note of publicNotes) {
|
|
197
|
+
const noteTime = note.postedAt
|
|
198
|
+
? OneUptimeDate.getDateAsFormattedString(note.postedAt)
|
|
199
|
+
: note.createdAt
|
|
200
|
+
? OneUptimeDate.getDateAsFormattedString(note.createdAt)
|
|
201
|
+
: "N/A";
|
|
202
|
+
const createdBy = ((_o = (_m = note.createdByUser) === null || _m === void 0 ? void 0 : _m.name) === null || _o === void 0 ? void 0 : _o.toString()) ||
|
|
203
|
+
((_q = (_p = note.createdByUser) === null || _p === void 0 ? void 0 : _p.email) === null || _q === void 0 ? void 0 : _q.toString()) ||
|
|
204
|
+
"Unknown";
|
|
205
|
+
contextText += `**[${noteTime}] ${createdBy}:**\n`;
|
|
206
|
+
contextText += `${note.note || "N/A"}\n\n`;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// System prompt for note generation
|
|
210
|
+
let systemPrompt;
|
|
211
|
+
if (noteType === "public") {
|
|
212
|
+
if (template) {
|
|
213
|
+
systemPrompt = `You are an expert technical communicator. Your task is to fill in a public scheduled maintenance note template based on the provided maintenance event data.
|
|
214
|
+
|
|
215
|
+
CRITICAL INSTRUCTIONS:
|
|
216
|
+
- You MUST use ONLY the exact template structure provided below
|
|
217
|
+
- Fill in each section of the template with relevant information from the maintenance data
|
|
218
|
+
- Do NOT add any new sections, headers, or content that is not part of the template
|
|
219
|
+
- Do NOT add introductions, conclusions, or any text outside the template structure
|
|
220
|
+
- Write in a professional, clear, and customer-friendly manner
|
|
221
|
+
- Focus on what customers need to know: timing, impact, and what to expect
|
|
222
|
+
- Avoid technical jargon - keep it understandable for non-technical readers
|
|
223
|
+
- Be concise but informative
|
|
224
|
+
|
|
225
|
+
TEMPLATE TO FILL (use this exact structure):
|
|
226
|
+
|
|
227
|
+
${template}`;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
systemPrompt = `You are an expert technical communicator. Your task is to generate a public scheduled maintenance note that will be visible to customers on the status page.
|
|
231
|
+
|
|
232
|
+
The note should:
|
|
233
|
+
1. Be written in a professional, customer-friendly tone
|
|
234
|
+
2. Clearly communicate the current status of the maintenance
|
|
235
|
+
3. Explain what work is being done and any impact on users
|
|
236
|
+
4. Provide timing information (when it started, expected completion, etc.)
|
|
237
|
+
5. Set appropriate expectations
|
|
238
|
+
6. Be concise but informative
|
|
239
|
+
|
|
240
|
+
DO NOT include:
|
|
241
|
+
- Internal technical details that customers don't need
|
|
242
|
+
- Confidential information
|
|
243
|
+
- Excessive jargon
|
|
244
|
+
|
|
245
|
+
Write in markdown format for better readability.`;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
else if (template) {
|
|
249
|
+
// Internal note with template
|
|
250
|
+
systemPrompt = `You are an expert Site Reliability Engineer (SRE). Your task is to fill in an internal scheduled maintenance note template based on the provided maintenance event data.
|
|
251
|
+
|
|
252
|
+
CRITICAL INSTRUCTIONS:
|
|
253
|
+
- You MUST use ONLY the exact template structure provided below
|
|
254
|
+
- Fill in each section of the template with relevant information from the maintenance data
|
|
255
|
+
- Do NOT add any new sections, headers, or content that is not part of the template
|
|
256
|
+
- Do NOT add introductions, conclusions, or any text outside the template structure
|
|
257
|
+
- Be technical and detailed - this is for the internal team
|
|
258
|
+
- Include relevant technical details, progress updates, and observations
|
|
259
|
+
|
|
260
|
+
TEMPLATE TO FILL (use this exact structure):
|
|
261
|
+
|
|
262
|
+
${template}`;
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
// Internal note without template
|
|
266
|
+
systemPrompt = `You are an expert Site Reliability Engineer (SRE). Your task is to generate an internal scheduled maintenance note for the team.
|
|
267
|
+
|
|
268
|
+
The note should:
|
|
269
|
+
1. Provide technical details about the maintenance progress
|
|
270
|
+
2. Document observations, findings, or actions taken
|
|
271
|
+
3. Include any issues encountered or changes to the plan
|
|
272
|
+
4. Be detailed enough to help team members understand the current status
|
|
273
|
+
5. Use technical language appropriate for the engineering team
|
|
274
|
+
|
|
275
|
+
Write in markdown format for better readability. Be thorough and technical.`;
|
|
276
|
+
}
|
|
277
|
+
// Build user message
|
|
278
|
+
const userMessage = template
|
|
279
|
+
? `Fill in the template above using ONLY the following scheduled maintenance data. Output only the filled template, nothing else:\n\n${contextText}`
|
|
280
|
+
: `Based on the following scheduled maintenance data, please generate ${noteType === "public" ? "a customer-facing public" : "an internal technical"} maintenance note:\n\n${contextText}`;
|
|
281
|
+
// Build messages array
|
|
282
|
+
const messages = [
|
|
283
|
+
{
|
|
284
|
+
role: "system",
|
|
285
|
+
content: systemPrompt,
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
role: "user",
|
|
289
|
+
content: userMessage,
|
|
290
|
+
},
|
|
291
|
+
];
|
|
292
|
+
return {
|
|
293
|
+
contextText,
|
|
294
|
+
systemPrompt,
|
|
295
|
+
messages,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
__decorate([
|
|
300
|
+
CaptureSpan(),
|
|
301
|
+
__metadata("design:type", Function),
|
|
302
|
+
__metadata("design:paramtypes", [Object]),
|
|
303
|
+
__metadata("design:returntype", Promise)
|
|
304
|
+
], ScheduledMaintenanceAIContextBuilder, "buildScheduledMaintenanceContext", null);
|
|
305
|
+
__decorate([
|
|
306
|
+
CaptureSpan(),
|
|
307
|
+
__metadata("design:type", Function),
|
|
308
|
+
__metadata("design:paramtypes", [Object, String, String]),
|
|
309
|
+
__metadata("design:returntype", Object)
|
|
310
|
+
], ScheduledMaintenanceAIContextBuilder, "formatScheduledMaintenanceContextForNote", null);
|
|
311
|
+
//# sourceMappingURL=ScheduledMaintenanceAIContextBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScheduledMaintenanceAIContextBuilder.js","sourceRoot":"","sources":["../../../../../Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -261,13 +261,70 @@ class MicrosoftTeamsUtil extends WorkspaceBase {
|
|
|
261
261
|
}
|
|
262
262
|
return { actionType: actionType, actionValue };
|
|
263
263
|
}
|
|
264
|
+
/**
|
|
265
|
+
* Converts markdown tables to HTML tables for Teams MessageCard.
|
|
266
|
+
* Teams MessageCard supports HTML in the text field.
|
|
267
|
+
*/
|
|
268
|
+
static convertMarkdownTablesToHtml(markdown) {
|
|
269
|
+
// Regular expression to match markdown tables
|
|
270
|
+
const tableRegex = /(?:^|\n)((?:\|[^\n]+\|\n)+(?:\|[-:\s|]+\|\n)(?:\|[^\n]+\|\n?)+)/g;
|
|
271
|
+
return markdown.replace(tableRegex, (_match, table) => {
|
|
272
|
+
const lines = table.trim().split("\n");
|
|
273
|
+
if (lines.length < 2) {
|
|
274
|
+
return table;
|
|
275
|
+
}
|
|
276
|
+
// Parse header row
|
|
277
|
+
const headerLine = lines[0] || "";
|
|
278
|
+
const headers = headerLine
|
|
279
|
+
.split("|")
|
|
280
|
+
.map((cell) => {
|
|
281
|
+
return cell.trim();
|
|
282
|
+
})
|
|
283
|
+
.filter((cell) => {
|
|
284
|
+
return cell.length > 0;
|
|
285
|
+
});
|
|
286
|
+
// Skip separator line (line with dashes) and get data rows
|
|
287
|
+
const dataRows = lines.slice(2);
|
|
288
|
+
// Build HTML table
|
|
289
|
+
let html = '<table style="border-collapse: collapse; width: 100%;">';
|
|
290
|
+
// Header row
|
|
291
|
+
html += "<tr>";
|
|
292
|
+
for (const header of headers) {
|
|
293
|
+
html += `<th style="border: 1px solid #ddd; padding: 8px; background-color: #f2f2f2; text-align: left;"><strong>${header}</strong></th>`;
|
|
294
|
+
}
|
|
295
|
+
html += "</tr>";
|
|
296
|
+
// Data rows
|
|
297
|
+
for (const row of dataRows) {
|
|
298
|
+
const cells = row
|
|
299
|
+
.split("|")
|
|
300
|
+
.map((cell) => {
|
|
301
|
+
return cell.trim();
|
|
302
|
+
})
|
|
303
|
+
.filter((cell) => {
|
|
304
|
+
return cell.length > 0;
|
|
305
|
+
});
|
|
306
|
+
if (cells.length === 0) {
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
html += "<tr>";
|
|
310
|
+
for (const cell of cells) {
|
|
311
|
+
html += `<td style="border: 1px solid #ddd; padding: 8px;">${cell}</td>`;
|
|
312
|
+
}
|
|
313
|
+
html += "</tr>";
|
|
314
|
+
}
|
|
315
|
+
html += "</table>";
|
|
316
|
+
return "\n" + html + "\n";
|
|
317
|
+
});
|
|
318
|
+
}
|
|
264
319
|
static buildMessageCardFromMarkdown(markdown) {
|
|
265
|
-
var _a, _b, _c, _d, _e;
|
|
266
320
|
/*
|
|
267
321
|
* Teams MessageCard has limited markdown support. Headings like '##' are not supported
|
|
268
322
|
* and single newlines can collapse. Convert common patterns to a structured card.
|
|
269
323
|
*/
|
|
270
|
-
|
|
324
|
+
var _a, _b, _c, _d, _e;
|
|
325
|
+
// First, convert markdown tables to HTML
|
|
326
|
+
const markdownWithHtmlTables = this.convertMarkdownTablesToHtml(markdown);
|
|
327
|
+
const lines = markdownWithHtmlTables
|
|
271
328
|
.split("\n")
|
|
272
329
|
.map((l) => {
|
|
273
330
|
return l.trim();
|