@oneuptime/common 9.2.16 → 9.2.18
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/Models/DatabaseModels/CodeRepository.ts +664 -0
- package/Models/DatabaseModels/Index.ts +8 -0
- package/Models/DatabaseModels/LlmLog.ts +818 -0
- package/Models/DatabaseModels/LlmProvider.ts +21 -0
- package/Models/DatabaseModels/Project.ts +206 -0
- package/Models/DatabaseModels/ServiceCatalogCodeRepository.ts +549 -0
- package/Server/API/AIBillingAPI.ts +126 -0
- package/Server/API/AlertAPI.ts +139 -0
- package/Server/API/GitHubAPI.ts +360 -0
- package/Server/API/IncidentAPI.ts +258 -0
- package/Server/API/ScheduledMaintenanceAPI.ts +164 -0
- package/Server/EnvironmentConfig.ts +44 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.ts +79 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.ts +75 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.ts +32 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.ts +69 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.ts +111 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.ts +39 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
- package/Server/Services/AIBillingService.ts +247 -0
- package/Server/Services/AIService.ts +238 -0
- package/Server/Services/CodeRepositoryService.ts +10 -0
- package/Server/Services/IncidentService.ts +88 -0
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/LlmLogService.ts +14 -0
- package/Server/Services/LlmProviderService.ts +58 -0
- package/Server/Services/ServiceCatalogCodeRepositoryService.ts +55 -0
- package/Server/Utils/AI/AlertAIContextBuilder.ts +264 -0
- package/Server/Utils/AI/IncidentAIContextBuilder.ts +710 -0
- package/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.ts +345 -0
- package/Server/Utils/CodeRepository/GitHub/GitHub.ts +226 -0
- package/Server/Utils/LLM/LLMService.ts +276 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +166 -0
- package/Server/Utils/Workspace/Slack/Slack.ts +134 -0
- package/Server/Utils/Workspace/Workspace.ts +126 -0
- package/Tests/Types/Domain.test.ts +24 -3
- package/Types/CodeRepository/CodeRepositoryType.ts +1 -1
- package/Types/Domain.ts +21 -24
- package/Types/LlmLogStatus.ts +7 -0
- package/Types/Permission.ts +87 -0
- package/Types/ServiceCatalog/CodeRepositoryImprovementAction.ts +9 -0
- package/UI/Components/AI/AILoader.tsx +95 -0
- package/UI/Components/AI/GenerateFromAIModal.tsx +432 -0
- package/UI/Components/Modal/Modal.tsx +6 -1
- package/build/dist/Models/DatabaseModels/CodeRepository.js +689 -0
- package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Index.js +7 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LlmLog.js +856 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -0
- package/build/dist/Models/DatabaseModels/LlmProvider.js +22 -0
- package/build/dist/Models/DatabaseModels/LlmProvider.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +220 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogCodeRepository.js +565 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalogCodeRepository.js.map +1 -0
- package/build/dist/Server/API/AIBillingAPI.js +58 -0
- package/build/dist/Server/API/AIBillingAPI.js.map +1 -0
- package/build/dist/Server/API/AlertAPI.js +94 -0
- package/build/dist/Server/API/AlertAPI.js.map +1 -0
- package/build/dist/Server/API/GitHubAPI.js +207 -0
- package/build/dist/Server/API/GitHubAPI.js.map +1 -0
- package/build/dist/Server/API/IncidentAPI.js +171 -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/EnvironmentConfig.js +31 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.js +38 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.js +44 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIBillingService.js +187 -0
- package/build/dist/Server/Services/AIBillingService.js.map +1 -0
- package/build/dist/Server/Services/AIService.js +184 -0
- package/build/dist/Server/Services/AIService.js.map +1 -0
- package/build/dist/Server/Services/CodeRepositoryService.js +9 -0
- package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -0
- package/build/dist/Server/Services/IncidentService.js +60 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +2 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/LlmLogService.js +13 -0
- package/build/dist/Server/Services/LlmLogService.js.map +1 -0
- package/build/dist/Server/Services/LlmProviderService.js +65 -0
- package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
- package/build/dist/Server/Services/ServiceCatalogCodeRepositoryService.js +54 -0
- package/build/dist/Server/Services/ServiceCatalogCodeRepositoryService.js.map +1 -0
- 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 +597 -0
- package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js.map +1 -0
- 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/CodeRepository/GitHub/GitHub.js +163 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +225 -0
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +110 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +89 -0
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Workspace.js +80 -0
- package/build/dist/Server/Utils/Workspace/Workspace.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/CodeRepository/CodeRepositoryType.js +1 -1
- package/build/dist/Types/CodeRepository/CodeRepositoryType.js.map +1 -1
- package/build/dist/Types/Domain.js +18 -16
- package/build/dist/Types/Domain.js.map +1 -1
- package/build/dist/Types/LlmLogStatus.js +8 -0
- package/build/dist/Types/LlmLogStatus.js.map +1 -0
- package/build/dist/Types/Permission.js +74 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/ServiceCatalog/CodeRepositoryImprovementAction.js +10 -0
- package/build/dist/Types/ServiceCatalog/CodeRepositoryImprovementAction.js.map +1 -0
- package/build/dist/UI/Components/AI/AILoader.js +64 -0
- package/build/dist/UI/Components/AI/AILoader.js.map +1 -0
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js +320 -0
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -0
- package/build/dist/UI/Components/Modal/Modal.js +6 -1
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import React, { useState, useEffect, } from "react";
|
|
2
|
+
import Modal, { ModalWidth } from "../Modal/Modal";
|
|
3
|
+
import AILoader from "./AILoader";
|
|
4
|
+
import ErrorMessage from "../ErrorMessage/ErrorMessage";
|
|
5
|
+
import ButtonType from "../Button/ButtonTypes";
|
|
6
|
+
import { ButtonStyleType } from "../Button/Button";
|
|
7
|
+
import IconProp from "../../../Types/Icon/IconProp";
|
|
8
|
+
import Dropdown from "../Dropdown/Dropdown";
|
|
9
|
+
import MarkdownEditor from "../Markdown.tsx/MarkdownEditor";
|
|
10
|
+
// Default hardcoded templates for incident postmortem
|
|
11
|
+
const POSTMORTEM_TEMPLATES = [
|
|
12
|
+
{
|
|
13
|
+
id: "default-standard",
|
|
14
|
+
name: "Standard Postmortem",
|
|
15
|
+
content: `## Executive Summary
|
|
16
|
+
[Brief overview of the incident, its impact, and resolution]
|
|
17
|
+
|
|
18
|
+
## Incident Timeline
|
|
19
|
+
| Time | Event |
|
|
20
|
+
|------|-------|
|
|
21
|
+
| [Time] | [Event description] |
|
|
22
|
+
|
|
23
|
+
## Root Cause Analysis
|
|
24
|
+
[Detailed analysis of what caused the incident]
|
|
25
|
+
|
|
26
|
+
## Impact Assessment
|
|
27
|
+
- **Duration**: [How long the incident lasted]
|
|
28
|
+
- **Users Affected**: [Number or percentage of affected users]
|
|
29
|
+
- **Services Affected**: [List of affected services]
|
|
30
|
+
|
|
31
|
+
## Resolution
|
|
32
|
+
[Steps taken to resolve the incident]
|
|
33
|
+
|
|
34
|
+
## Action Items
|
|
35
|
+
- [ ] [Action item 1]
|
|
36
|
+
- [ ] [Action item 2]
|
|
37
|
+
- [ ] [Action item 3]
|
|
38
|
+
|
|
39
|
+
## Lessons Learned
|
|
40
|
+
[Key takeaways and improvements identified]`,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: "default-detailed",
|
|
44
|
+
name: "Detailed Technical Postmortem",
|
|
45
|
+
content: `## Incident Overview
|
|
46
|
+
**Incident Title**: [Title]
|
|
47
|
+
**Severity**: [P1/P2/P3/P4]
|
|
48
|
+
**Duration**: [Start time] - [End time]
|
|
49
|
+
**Authors**: [Names]
|
|
50
|
+
|
|
51
|
+
## Summary
|
|
52
|
+
[2-3 sentence summary of the incident]
|
|
53
|
+
|
|
54
|
+
## Detection
|
|
55
|
+
- **How was the incident detected?** [Monitoring alert / Customer report / etc.]
|
|
56
|
+
- **Time to detection**: [Duration from start to detection]
|
|
57
|
+
|
|
58
|
+
## Timeline
|
|
59
|
+
| Timestamp | Action | Owner |
|
|
60
|
+
|-----------|--------|-------|
|
|
61
|
+
| [Time] | [What happened] | [Who did it] |
|
|
62
|
+
|
|
63
|
+
## Root Cause
|
|
64
|
+
### Primary Cause
|
|
65
|
+
[Detailed explanation of the root cause]
|
|
66
|
+
|
|
67
|
+
### Contributing Factors
|
|
68
|
+
1. [Factor 1]
|
|
69
|
+
2. [Factor 2]
|
|
70
|
+
|
|
71
|
+
## Impact
|
|
72
|
+
### Customer Impact
|
|
73
|
+
[Description of how customers were affected]
|
|
74
|
+
|
|
75
|
+
### Business Impact
|
|
76
|
+
[Description of business consequences]
|
|
77
|
+
|
|
78
|
+
### Technical Impact
|
|
79
|
+
[Systems and services affected]
|
|
80
|
+
|
|
81
|
+
## Mitigation & Resolution
|
|
82
|
+
### Immediate Actions
|
|
83
|
+
[Steps taken to stop the bleeding]
|
|
84
|
+
|
|
85
|
+
### Permanent Fix
|
|
86
|
+
[Long-term solution implemented]
|
|
87
|
+
|
|
88
|
+
## Prevention
|
|
89
|
+
### What Went Well
|
|
90
|
+
- [Item 1]
|
|
91
|
+
- [Item 2]
|
|
92
|
+
|
|
93
|
+
### What Went Wrong
|
|
94
|
+
- [Item 1]
|
|
95
|
+
- [Item 2]
|
|
96
|
+
|
|
97
|
+
### Where We Got Lucky
|
|
98
|
+
- [Item 1]
|
|
99
|
+
|
|
100
|
+
## Action Items
|
|
101
|
+
| Action | Owner | Priority | Due Date |
|
|
102
|
+
|--------|-------|----------|----------|
|
|
103
|
+
| [Action] | [Name] | [High/Medium/Low] | [Date] |
|
|
104
|
+
|
|
105
|
+
## Appendix
|
|
106
|
+
[Any additional technical details, logs, or graphs]`,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
id: "default-brief",
|
|
110
|
+
name: "Brief Postmortem",
|
|
111
|
+
content: `## What Happened
|
|
112
|
+
[Concise description of the incident]
|
|
113
|
+
|
|
114
|
+
## Why It Happened
|
|
115
|
+
[Root cause explanation]
|
|
116
|
+
|
|
117
|
+
## How We Fixed It
|
|
118
|
+
[Resolution steps]
|
|
119
|
+
|
|
120
|
+
## How We Prevent It
|
|
121
|
+
- [ ] [Prevention action 1]
|
|
122
|
+
- [ ] [Prevention action 2]`,
|
|
123
|
+
},
|
|
124
|
+
];
|
|
125
|
+
// Default templates for public notes (customer-facing)
|
|
126
|
+
const PUBLIC_NOTE_TEMPLATES = [
|
|
127
|
+
{
|
|
128
|
+
id: "public-status-update",
|
|
129
|
+
name: "Status Update",
|
|
130
|
+
content: `## Current Status
|
|
131
|
+
[Brief description of the current situation]
|
|
132
|
+
|
|
133
|
+
## What We're Doing
|
|
134
|
+
[Actions being taken to resolve the issue]
|
|
135
|
+
|
|
136
|
+
## Next Update
|
|
137
|
+
[Expected time for next update or resolution]`,
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: "public-resolution",
|
|
141
|
+
name: "Resolution Notice",
|
|
142
|
+
content: `## Issue Resolved
|
|
143
|
+
[Brief description of what was resolved]
|
|
144
|
+
|
|
145
|
+
## Summary
|
|
146
|
+
[What happened and how it was fixed]
|
|
147
|
+
|
|
148
|
+
## Prevention
|
|
149
|
+
[Steps taken to prevent recurrence]
|
|
150
|
+
|
|
151
|
+
Thank you for your patience.`,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
id: "public-maintenance",
|
|
155
|
+
name: "Maintenance Update",
|
|
156
|
+
content: `## Maintenance Status
|
|
157
|
+
[Current phase of the maintenance]
|
|
158
|
+
|
|
159
|
+
## Progress
|
|
160
|
+
[What has been completed]
|
|
161
|
+
|
|
162
|
+
## Remaining Work
|
|
163
|
+
[What still needs to be done]
|
|
164
|
+
|
|
165
|
+
## Expected Completion
|
|
166
|
+
[Estimated completion time]`,
|
|
167
|
+
},
|
|
168
|
+
];
|
|
169
|
+
// Default templates for internal notes (team-facing)
|
|
170
|
+
const INTERNAL_NOTE_TEMPLATES = [
|
|
171
|
+
{
|
|
172
|
+
id: "internal-investigation",
|
|
173
|
+
name: "Investigation Update",
|
|
174
|
+
content: `## Current Investigation Status
|
|
175
|
+
[What we're looking at]
|
|
176
|
+
|
|
177
|
+
## Findings So Far
|
|
178
|
+
- [Finding 1]
|
|
179
|
+
- [Finding 2]
|
|
180
|
+
|
|
181
|
+
## Hypothesis
|
|
182
|
+
[Current theory about the root cause]
|
|
183
|
+
|
|
184
|
+
## Next Steps
|
|
185
|
+
- [ ] [Action 1]
|
|
186
|
+
- [ ] [Action 2]`,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
id: "internal-technical",
|
|
190
|
+
name: "Technical Analysis",
|
|
191
|
+
content: `## Technical Details
|
|
192
|
+
[Detailed technical observations]
|
|
193
|
+
|
|
194
|
+
## Metrics/Logs
|
|
195
|
+
[Relevant metrics or log entries]
|
|
196
|
+
|
|
197
|
+
## Impact Assessment
|
|
198
|
+
[Technical impact analysis]
|
|
199
|
+
|
|
200
|
+
## Recommendations
|
|
201
|
+
[Technical recommendations for resolution]`,
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: "internal-handoff",
|
|
205
|
+
name: "Shift Handoff",
|
|
206
|
+
content: `## Current State
|
|
207
|
+
[Where things stand now]
|
|
208
|
+
|
|
209
|
+
## Actions Taken
|
|
210
|
+
[What has been done so far]
|
|
211
|
+
|
|
212
|
+
## Open Questions
|
|
213
|
+
[Things that still need investigation]
|
|
214
|
+
|
|
215
|
+
## Immediate Priorities
|
|
216
|
+
- [ ] [Priority 1]
|
|
217
|
+
- [ ] [Priority 2]
|
|
218
|
+
|
|
219
|
+
## Contacts
|
|
220
|
+
[Key people involved or to contact]`,
|
|
221
|
+
},
|
|
222
|
+
];
|
|
223
|
+
// Function to get default templates based on note type
|
|
224
|
+
const getDefaultTemplates = (noteType) => {
|
|
225
|
+
switch (noteType) {
|
|
226
|
+
case "postmortem":
|
|
227
|
+
return POSTMORTEM_TEMPLATES;
|
|
228
|
+
case "public-note":
|
|
229
|
+
return PUBLIC_NOTE_TEMPLATES;
|
|
230
|
+
case "internal-note":
|
|
231
|
+
return INTERNAL_NOTE_TEMPLATES;
|
|
232
|
+
default:
|
|
233
|
+
return POSTMORTEM_TEMPLATES;
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
const GenerateFromAIModal = (props) => {
|
|
237
|
+
var _a;
|
|
238
|
+
// Get default templates based on note type
|
|
239
|
+
const defaultTemplates = getDefaultTemplates(props.noteType || "postmortem");
|
|
240
|
+
const [isGenerating, setIsGenerating] = useState(false);
|
|
241
|
+
const [error, setError] = useState("");
|
|
242
|
+
const [selectedTemplateId, setSelectedTemplateId] = useState(((_a = defaultTemplates[0]) === null || _a === void 0 ? void 0 : _a.id) || "");
|
|
243
|
+
const [templateContent, setTemplateContent] = useState("");
|
|
244
|
+
// Combine default templates with custom templates
|
|
245
|
+
const allTemplates = [
|
|
246
|
+
...defaultTemplates,
|
|
247
|
+
...(props.templates || []),
|
|
248
|
+
];
|
|
249
|
+
// Build dropdown options
|
|
250
|
+
const templateOptions = allTemplates.map((template) => {
|
|
251
|
+
return {
|
|
252
|
+
label: template.name,
|
|
253
|
+
value: template.id,
|
|
254
|
+
};
|
|
255
|
+
});
|
|
256
|
+
// Update template content when selection changes
|
|
257
|
+
useEffect(() => {
|
|
258
|
+
if (selectedTemplateId) {
|
|
259
|
+
const selectedTemplate = allTemplates.find((t) => {
|
|
260
|
+
return t.id === selectedTemplateId;
|
|
261
|
+
});
|
|
262
|
+
setTemplateContent((selectedTemplate === null || selectedTemplate === void 0 ? void 0 : selectedTemplate.content) || "");
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
setTemplateContent("");
|
|
266
|
+
}
|
|
267
|
+
}, [selectedTemplateId]);
|
|
268
|
+
const handleGenerate = async () => {
|
|
269
|
+
setIsGenerating(true);
|
|
270
|
+
setError("");
|
|
271
|
+
try {
|
|
272
|
+
const requestData = {};
|
|
273
|
+
// Use the edited template content if a template was selected
|
|
274
|
+
if (selectedTemplateId && templateContent) {
|
|
275
|
+
requestData.template = templateContent;
|
|
276
|
+
requestData.templateId = selectedTemplateId;
|
|
277
|
+
}
|
|
278
|
+
const generatedContent = await props.onGenerate(requestData);
|
|
279
|
+
props.onSuccess(generatedContent);
|
|
280
|
+
}
|
|
281
|
+
catch (err) {
|
|
282
|
+
if (err instanceof Error) {
|
|
283
|
+
setError(err.message);
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
setError("An error occurred while generating content.");
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
finally {
|
|
290
|
+
setIsGenerating(false);
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
return (React.createElement(Modal, { title: props.title, description: props.description ||
|
|
294
|
+
"Generate content using AI based on the available data.", onClose: () => {
|
|
295
|
+
if (!isGenerating) {
|
|
296
|
+
props.onClose();
|
|
297
|
+
}
|
|
298
|
+
}, submitButtonText: isGenerating ? "Generating..." : "Generate with AI", submitButtonStyleType: ButtonStyleType.PRIMARY, submitButtonType: ButtonType.Button, isLoading: isGenerating, disableSubmitButton: isGenerating, onSubmit: handleGenerate, modalWidth: ModalWidth.Large, icon: IconProp.Bolt },
|
|
299
|
+
React.createElement(React.Fragment, null,
|
|
300
|
+
error && React.createElement(ErrorMessage, { message: error }),
|
|
301
|
+
isGenerating && React.createElement(AILoader, null),
|
|
302
|
+
!isGenerating && (React.createElement("div", { className: "space-y-4" },
|
|
303
|
+
React.createElement("div", null,
|
|
304
|
+
React.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-1" }, "Select Template"),
|
|
305
|
+
React.createElement(Dropdown, { options: templateOptions, value: templateOptions.find((opt) => {
|
|
306
|
+
return opt.value === selectedTemplateId;
|
|
307
|
+
}), onChange: (value) => {
|
|
308
|
+
setSelectedTemplateId(value || "");
|
|
309
|
+
}, placeholder: "Select a template..." }),
|
|
310
|
+
React.createElement("p", { className: "mt-1 text-xs text-gray-500" }, "Choose a template to guide the AI generation. You can edit it below before generating.")),
|
|
311
|
+
selectedTemplateId && (React.createElement("div", null,
|
|
312
|
+
React.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-1" }, "Template Preview"),
|
|
313
|
+
React.createElement("p", { className: "text-xs text-gray-500 mb-2" }, "Edit the template below. AI will fill in the sections with incident data."),
|
|
314
|
+
React.createElement("div", { className: "" },
|
|
315
|
+
React.createElement(MarkdownEditor, { key: selectedTemplateId, initialValue: templateContent, onChange: (value) => {
|
|
316
|
+
setTemplateContent(value);
|
|
317
|
+
}, placeholder: "Template content..." })))))))));
|
|
318
|
+
};
|
|
319
|
+
export default GenerateFromAIModal;
|
|
320
|
+
//# sourceMappingURL=GenerateFromAIModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenerateFromAIModal.js","sourceRoot":"","sources":["../../../../../UI/Components/AI/GenerateFromAIModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,17 +15,22 @@ export var ModalWidth;
|
|
|
15
15
|
})(ModalWidth || (ModalWidth = {}));
|
|
16
16
|
const Modal = (props) => {
|
|
17
17
|
let iconBgColor = "bg-indigo-100";
|
|
18
|
+
let iconColor = "text-indigo-600";
|
|
18
19
|
if (props.iconType === IconType.Info) {
|
|
19
20
|
iconBgColor = "bg-indigo-100";
|
|
21
|
+
iconColor = "text-indigo-600";
|
|
20
22
|
}
|
|
21
23
|
else if (props.iconType === IconType.Warning) {
|
|
22
24
|
iconBgColor = "bg-yellow-100";
|
|
25
|
+
iconColor = "text-yellow-600";
|
|
23
26
|
}
|
|
24
27
|
else if (props.iconType === IconType.Success) {
|
|
25
28
|
iconBgColor = "bg-green-100";
|
|
29
|
+
iconColor = "text-green-600";
|
|
26
30
|
}
|
|
27
31
|
else if (props.iconType === IconType.Danger) {
|
|
28
32
|
iconBgColor = "bg-red-100";
|
|
33
|
+
iconColor = "text-red-600";
|
|
29
34
|
}
|
|
30
35
|
return (React.createElement("div", { className: "relative z-20", "aria-labelledby": "modal-title", role: "dialog", "aria-modal": "true" },
|
|
31
36
|
React.createElement("div", { className: "fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity" }),
|
|
@@ -42,7 +47,7 @@ const Modal = (props) => {
|
|
|
42
47
|
props.icon && (React.createElement("div", { className: `mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full ${iconBgColor} md:mx-0 md:h-10 md:w-10`, "data-testid": "icon" },
|
|
43
48
|
React.createElement(Icon, { thick: ThickProp.Thick, type: props.iconType === undefined
|
|
44
49
|
? IconType.Info
|
|
45
|
-
: props.iconType, className:
|
|
50
|
+
: props.iconType, className: `${iconColor} h-6 w-6 stroke-2`, icon: props.icon, size: SizeProp.Large }))),
|
|
46
51
|
React.createElement("div", { className: "text-left md:mt-0 md:ml-4 md:mr-4" },
|
|
47
52
|
React.createElement("div", { className: "flex flex-col md:flex-row md:justify-between" },
|
|
48
53
|
React.createElement("div", { className: "flex-1" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../../UI/Components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,+CAAM,CAAA;IACN,+CAAM,CAAA;IACN,6CAAK,CAAA;AACP,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAuBD,MAAM,KAAK,GAAsC,CAC/C,KAAqB,EACP,EAAE;IAChB,IAAI,WAAW,GAAW,eAAe,CAAC;IAE1C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,WAAW,GAAG,eAAe,CAAC;IAChC,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC/C,WAAW,GAAG,eAAe,CAAC;IAChC,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC/C,WAAW,GAAG,cAAc,CAAC;IAC/B,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC9C,WAAW,GAAG,YAAY,CAAC;IAC7B,CAAC;IAED,OAAO,CACL,6BACE,SAAS,EAAC,eAAe,qBACT,aAAa,EAC7B,IAAI,EAAC,QAAQ,gBACF,MAAM;QAEjB,6BAAK,SAAS,EAAC,4DAA4D,GAAO;QAElF,6BAAK,SAAS,EAAC,oCAAoC;YACjD,6BAAK,SAAS,EAAC,mFAAmF;gBAChG,6BACE,SAAS,EAAE,sGACT,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK;wBACvD,CAAC,CAAC,cAAc;wBAChB,CAAC,CAAC,EACN,IACE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM;wBACxD,CAAC,CAAC,cAAc;wBAChB,CAAC,CAAC,EACN,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,iBACjC,OAAO;oBAElB,KAAK,CAAC,OAAO,IAAI,CAChB,6BAAK,SAAS,EAAC,0DAA0D;wBACvE,oBAAC,MAAM,IACL,WAAW,EAAE,eAAe,CAAC,IAAI,EACjC,IAAI,EAAE,QAAQ,CAAC,KAAK,EACpB,QAAQ,EAAE,QAAQ,CAAC,KAAK,EACxB,KAAK,EAAC,OAAO,EACb,UAAU,EAAC,cAAc,EACzB,OAAO,EAAE,KAAK,CAAC,OAAO,GACtB,CACE,CACP;oBACD,6BAAK,SAAS,EAAC,YAAY;wBACxB,KAAK,CAAC,IAAI,IAAI,CACb,6BACE,SAAS,EAAE,iFAAiF,WAAW,0BAA0B,iBACrH,MAAM;4BAElB,oBAAC,IAAI,IACH,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,IAAI,EACF,KAAK,CAAC,QAAQ,KAAK,SAAS;oCAC1B,CAAC,CAAC,QAAQ,CAAC,IAAI;oCACf,CAAC,CAAC,KAAK,CAAC,QAAQ,EAEpB,SAAS,EAAE
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../../UI/Components/Modal/Modal.tsx"],"names":[],"mappings":"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"}
|