@oneuptime/common 11.5.8 → 11.5.9
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/AIAgentTaskPullRequest.ts +15 -6
- package/Models/DatabaseModels/AIRun.ts +37 -0
- package/Models/DatabaseModels/AIRunEvent.ts +34 -1
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +215 -0
- package/Models/DatabaseModels/Project.ts +25 -0
- package/Models/DatabaseModels/StatusPage.ts +42 -0
- package/Server/API/AIAgentTaskAPI.ts +38 -12
- package/Server/API/AIAgentTaskLogAPI.ts +49 -0
- package/Server/API/AIChatAPI.ts +16 -0
- package/Server/API/AIReadinessAPI.ts +84 -0
- package/Server/API/CodeFixRunAPI.ts +182 -0
- package/Server/API/TelemetryExceptionAPI.ts +6 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.ts +95 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.ts +52 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.ts +30 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.ts +49 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
- package/Server/Services/AIRunEventService.ts +15 -1
- package/Server/Services/AIRunService.ts +38 -1
- package/Server/Services/LlmProviderService.ts +2 -0
- package/Server/Services/ProjectService.ts +42 -0
- package/Server/Services/StatusPageService.ts +87 -0
- package/Server/Services/TelemetryExceptionService.ts +19 -90
- package/Server/Types/Markdown.ts +9 -9
- package/Server/Types/MarkdownSlugify.ts +47 -0
- package/Server/Utils/AI/AIRunTranscript.ts +240 -0
- package/Server/Utils/AI/Chat/ChatAgentRunner.ts +9 -0
- package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +119 -5
- package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +75 -0
- package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +235 -0
- package/Server/Utils/AI/SRE/Insights/FixRouting.ts +2 -3
- package/Server/Utils/AI/Toolbox/CodeTools.ts +883 -0
- package/Server/Utils/AI/Toolbox/CodeWriteTools.ts +519 -0
- package/Server/Utils/AI/Toolbox/Index.ts +27 -0
- package/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.ts +279 -0
- package/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.ts +19 -1
- package/Server/Utils/CodeRepository/GitHub/GitHub.ts +600 -0
- package/Server/Utils/CodeRepository/StackTraceRepoResolver.ts +7 -2
- package/Server/Utils/LLM/LLMService.ts +397 -18
- package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +4 -11
- package/Tests/Models/StatusPageEnableMcpServer.test.ts +125 -0
- package/Tests/Server/Services/StatusPageServiceMcp.test.ts +223 -0
- package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +26 -3
- package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +12 -0
- package/Tests/Server/Types/Markdown.test.ts +106 -0
- package/Tests/Server/Utils/AI/AIRunTranscript.test.ts +182 -0
- package/Tests/Server/Utils/AI/CodeFixReadiness.test.ts +411 -0
- package/Tests/Server/Utils/AI/CodeTools.test.ts +596 -0
- package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +475 -0
- package/Tests/Server/Utils/AI/LLMServiceModelCompatibility.test.ts +548 -0
- package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +142 -0
- package/Tests/Server/Utils/AI/ScheduledMaintenanceTools.test.ts +176 -0
- package/Tests/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.test.ts +63 -0
- package/Tests/Server/Utils/GitHubGetFileContent.test.ts +197 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +502 -0
- package/Tests/Types/AI/AIAgentTaskStatus.test.ts +7 -6
- package/Tests/Types/AI/AIChatPageContext.test.ts +0 -0
- package/Tests/Types/AI/AIRunStatus.test.ts +42 -0
- package/Tests/Types/Log/LogSeverity.test.ts +78 -0
- package/Tests/UI/Components/BasicFormDropdownNormalization.test.tsx +167 -0
- package/Tests/UI/Components/Charts/AxisTickColor.test.tsx +66 -0
- package/Tests/UI/Utils/AIChatExport/ChatWidgetData.test.ts +319 -0
- package/Tests/UI/Utils/AIChatExport/ChatWidgetMarkdown.test.ts +188 -0
- package/Types/AI/AIAgentTaskStatus.ts +13 -0
- package/Types/AI/AIChatPageContext.ts +137 -0
- package/Types/AI/AIChatTypes.ts +44 -0
- package/Types/AI/AIFixReadiness.ts +46 -0
- package/Types/AI/AIRunStatus.ts +11 -0
- package/Types/Log/LogSeverity.ts +61 -0
- package/Types/Monitor/SnmpMonitor/SnmpVersion.ts +40 -0
- package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +8 -2
- package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +3 -1
- package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +8 -2
- package/UI/Components/Forms/BasicForm.tsx +26 -8
- package/UI/Styles/Theme.css +1314 -0
- package/UI/Utils/AIChatExport/ChatWidgetData.ts +316 -0
- package/UI/Utils/AIChatExport/ChatWidgetMarkdown.ts +349 -0
- package/UI/Utils/AIChatExport/ConversationMarkdown.ts +177 -0
- package/UI/Utils/AIChatExport/MarkdownBlocks.ts +327 -0
- package/UI/Utils/AIChatExport/MarkdownSafety.ts +215 -0
- package/UI/Utils/DownloadFile.ts +54 -0
- package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +15 -7
- package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIRun.js +38 -0
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIRunEvent.js +31 -0
- package/build/dist/Models/DatabaseModels/AIRunEvent.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +225 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +27 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +43 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskAPI.js +37 -11
- package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskLogAPI.js +32 -7
- package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
- package/build/dist/Server/API/AIChatAPI.js +9 -0
- package/build/dist/Server/API/AIChatAPI.js.map +1 -1
- package/build/dist/Server/API/AIReadinessAPI.js +57 -0
- package/build/dist/Server/API/AIReadinessAPI.js.map +1 -0
- package/build/dist/Server/API/CodeFixRunAPI.js +142 -0
- package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryExceptionAPI.js +4 -0
- package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.js +80 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.js +37 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.js +23 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIRunEventService.js +8 -0
- package/build/dist/Server/Services/AIRunEventService.js.map +1 -1
- package/build/dist/Server/Services/AIRunService.js +29 -0
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/LlmProviderService.js +2 -0
- package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +39 -0
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +81 -0
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryExceptionService.js +14 -61
- package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
- package/build/dist/Server/Types/Markdown.js +8 -8
- package/build/dist/Server/Types/Markdown.js.map +1 -1
- package/build/dist/Server/Types/MarkdownSlugify.js +47 -0
- package/build/dist/Server/Types/MarkdownSlugify.js.map +1 -0
- package/build/dist/Server/Utils/AI/AIRunTranscript.js +180 -0
- package/build/dist/Server/Utils/AI/AIRunTranscript.js.map +1 -0
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +1 -0
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +103 -5
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +55 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +211 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js +654 -0
- package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js +389 -0
- package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +19 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.js +239 -0
- package/build/dist/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.js.map +1 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js +19 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +439 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js +1 -1
- package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +275 -19
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +2 -11
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
- package/build/dist/Types/AI/AIAgentTaskStatus.js +12 -0
- package/build/dist/Types/AI/AIAgentTaskStatus.js.map +1 -1
- package/build/dist/Types/AI/AIChatPageContext.js +101 -0
- package/build/dist/Types/AI/AIChatPageContext.js.map +1 -0
- package/build/dist/Types/AI/AIChatTypes.js +2 -0
- package/build/dist/Types/AI/AIChatTypes.js.map +1 -1
- package/build/dist/Types/AI/AIFixReadiness.js +9 -0
- package/build/dist/Types/AI/AIFixReadiness.js.map +1 -0
- package/build/dist/Types/AI/AIRunStatus.js +11 -0
- package/build/dist/Types/AI/AIRunStatus.js.map +1 -1
- package/build/dist/Types/Log/LogSeverity.js +56 -0
- package/build/dist/Types/Log/LogSeverity.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js +38 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +9 -2
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +3 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +9 -2
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Forms/BasicForm.js +24 -6
- package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
- package/build/dist/UI/Utils/AIChatExport/ChatWidgetData.js +217 -0
- package/build/dist/UI/Utils/AIChatExport/ChatWidgetData.js.map +1 -0
- package/build/dist/UI/Utils/AIChatExport/ChatWidgetMarkdown.js +234 -0
- package/build/dist/UI/Utils/AIChatExport/ChatWidgetMarkdown.js.map +1 -0
- package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js +111 -0
- package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js.map +1 -0
- package/build/dist/UI/Utils/AIChatExport/MarkdownBlocks.js +233 -0
- package/build/dist/UI/Utils/AIChatExport/MarkdownBlocks.js.map +1 -0
- package/build/dist/UI/Utils/AIChatExport/MarkdownSafety.js +134 -0
- package/build/dist/UI/Utils/AIChatExport/MarkdownSafety.js.map +1 -0
- package/build/dist/UI/Utils/DownloadFile.js +41 -0
- package/build/dist/UI/Utils/DownloadFile.js.map +1 -0
- package/package.json +5 -1
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { gfmToMarkdown } from "mdast-util-gfm";
|
|
2
|
+
import { toMarkdown } from "mdast-util-to-markdown";
|
|
3
|
+
import remarkGfm from "remark-gfm";
|
|
4
|
+
import remarkParse from "remark-parse";
|
|
5
|
+
import { unified } from "unified";
|
|
6
|
+
// Node types that may only appear inside a block, never directly under the root.
|
|
7
|
+
const PHRASING_TYPES = new Set(["text", "inlineCode"]);
|
|
8
|
+
function textNode(value) {
|
|
9
|
+
return { type: "text", value: value };
|
|
10
|
+
}
|
|
11
|
+
function codeNode(value) {
|
|
12
|
+
return { type: "inlineCode", value: value };
|
|
13
|
+
}
|
|
14
|
+
// The visible text of a subtree, used to decide whether a label adds anything.
|
|
15
|
+
function textOf(nodes) {
|
|
16
|
+
return nodes
|
|
17
|
+
.map((node) => {
|
|
18
|
+
if (node.type === "text" || node.type === "inlineCode") {
|
|
19
|
+
return node.value || "";
|
|
20
|
+
}
|
|
21
|
+
return node.children ? textOf(node.children) : "";
|
|
22
|
+
})
|
|
23
|
+
.join("");
|
|
24
|
+
}
|
|
25
|
+
/*
|
|
26
|
+
* "label (`url`)" — or just "`url`" when the label is only a repeat of the URL,
|
|
27
|
+
* which is what an autolink or a GFM bare URL parses into.
|
|
28
|
+
*/
|
|
29
|
+
function inertLink(label, url) {
|
|
30
|
+
const labelText = textOf(label);
|
|
31
|
+
const hasDistinctLabel = Boolean(labelText) && labelText !== url;
|
|
32
|
+
if (!url) {
|
|
33
|
+
return hasDistinctLabel ? label : [textNode(labelText)];
|
|
34
|
+
}
|
|
35
|
+
if (!hasDistinctLabel) {
|
|
36
|
+
return [codeNode(url)];
|
|
37
|
+
}
|
|
38
|
+
return [...label, textNode(" ("), codeNode(url), textNode(")")];
|
|
39
|
+
}
|
|
40
|
+
function neutralizeNode(node, definitions, isRootChild) {
|
|
41
|
+
// Depth first, so a link nested inside emphasis is rewritten before its parent.
|
|
42
|
+
if (node.children) {
|
|
43
|
+
const rewritten = [];
|
|
44
|
+
for (const child of node.children) {
|
|
45
|
+
rewritten.push(...neutralizeNode(child, definitions, false));
|
|
46
|
+
}
|
|
47
|
+
node.children = rewritten;
|
|
48
|
+
}
|
|
49
|
+
const identifier = (node.identifier || "").toLowerCase();
|
|
50
|
+
switch (node.type) {
|
|
51
|
+
/*
|
|
52
|
+
* Drop link definitions outright. Their referents have already been
|
|
53
|
+
* inlined below, and leaving a definition behind would let "[x][ref]"
|
|
54
|
+
* resolve to a live link again.
|
|
55
|
+
*/
|
|
56
|
+
case "definition":
|
|
57
|
+
return [];
|
|
58
|
+
/*
|
|
59
|
+
* Raw HTML is inert on screen (react-markdown does not render it without
|
|
60
|
+
* rehype-raw), but a .md file is rendered by viewers that do, where an
|
|
61
|
+
* <img src> or <a href> would be live. Demote it to text — toMarkdown
|
|
62
|
+
* escapes the angle brackets on the way out.
|
|
63
|
+
*/
|
|
64
|
+
case "html": {
|
|
65
|
+
const asText = textNode(node.value || "");
|
|
66
|
+
return isRootChild
|
|
67
|
+
? [{ type: "paragraph", children: [asText] }]
|
|
68
|
+
: [asText];
|
|
69
|
+
}
|
|
70
|
+
case "link":
|
|
71
|
+
return inertLink(node.children || [], node.url || "");
|
|
72
|
+
case "image":
|
|
73
|
+
return inertLink([textNode(`[image: ${node.alt || ""}]`)], node.url || "");
|
|
74
|
+
case "linkReference":
|
|
75
|
+
return inertLink(node.children || [], definitions.get(identifier) || "");
|
|
76
|
+
case "imageReference":
|
|
77
|
+
return inertLink([textNode(`[image: ${node.alt || ""}]`)], definitions.get(identifier) || "");
|
|
78
|
+
default:
|
|
79
|
+
return [node];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function collectDefinitions(node, into) {
|
|
83
|
+
if (node.type === "definition" && node.identifier) {
|
|
84
|
+
into.set(node.identifier.toLowerCase(), node.url || "");
|
|
85
|
+
}
|
|
86
|
+
for (const child of node.children || []) {
|
|
87
|
+
collectDefinitions(child, into);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/*
|
|
91
|
+
* Rewrites every link, image and raw HTML node in `text` into inert text, and
|
|
92
|
+
* returns the result as markdown. Safe to call on any string; a parse failure
|
|
93
|
+
* degrades to a fenced code block rather than emitting unneutralized markdown.
|
|
94
|
+
*/
|
|
95
|
+
export default function neutralizeAssistantMarkdown(text) {
|
|
96
|
+
if (!text) {
|
|
97
|
+
return "";
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const tree = unified()
|
|
101
|
+
.use(remarkParse)
|
|
102
|
+
.use(remarkGfm)
|
|
103
|
+
.parse(text);
|
|
104
|
+
const definitions = new Map();
|
|
105
|
+
collectDefinitions(tree, definitions);
|
|
106
|
+
const children = [];
|
|
107
|
+
for (const child of tree.children || []) {
|
|
108
|
+
children.push(...neutralizeNode(child, definitions, true));
|
|
109
|
+
}
|
|
110
|
+
/*
|
|
111
|
+
* A root child demoted to phrasing (a stray inline node left behind once
|
|
112
|
+
* its link wrapper was removed) is not valid at root level; wrap it back
|
|
113
|
+
* into a paragraph so the serializer stays on its typed path.
|
|
114
|
+
*/
|
|
115
|
+
tree.children = children.map((child) => {
|
|
116
|
+
return PHRASING_TYPES.has(child.type)
|
|
117
|
+
? { type: "paragraph", children: [child] }
|
|
118
|
+
: child;
|
|
119
|
+
});
|
|
120
|
+
return toMarkdown(tree, {
|
|
121
|
+
extensions: [gfmToMarkdown()],
|
|
122
|
+
bullet: "-",
|
|
123
|
+
}).trim();
|
|
124
|
+
}
|
|
125
|
+
catch (_a) {
|
|
126
|
+
/*
|
|
127
|
+
* Never fall back to returning the raw string: that would ship exactly the
|
|
128
|
+
* live links this function exists to remove. A fence renders the content
|
|
129
|
+
* verbatim and inert.
|
|
130
|
+
*/
|
|
131
|
+
return ["```", text.replace(/```/g, "'''"), "```"].join("\n");
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=MarkdownSafety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownSafety.js","sourceRoot":"","sources":["../../../../../UI/Utils/AIChatExport/MarkdownSafety.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Triggers a browser download for content generated in the page.
|
|
3
|
+
*
|
|
4
|
+
* The object URL is revoked once the click has been dispatched so a large
|
|
5
|
+
* export (a PDF can run to megabytes) is not pinned in memory until the user
|
|
6
|
+
* navigates away.
|
|
7
|
+
*/
|
|
8
|
+
export default function downloadFile(data) {
|
|
9
|
+
const blob = data.content instanceof Blob
|
|
10
|
+
? data.content
|
|
11
|
+
: new Blob([data.content], {
|
|
12
|
+
type: data.mimeType || "text/plain;charset=utf-8;",
|
|
13
|
+
});
|
|
14
|
+
const url = window.URL.createObjectURL(blob);
|
|
15
|
+
const anchor = document.createElement("a");
|
|
16
|
+
anchor.href = url;
|
|
17
|
+
anchor.download = data.filename;
|
|
18
|
+
anchor.rel = "noopener";
|
|
19
|
+
document.body.appendChild(anchor);
|
|
20
|
+
anchor.click();
|
|
21
|
+
document.body.removeChild(anchor);
|
|
22
|
+
window.URL.revokeObjectURL(url);
|
|
23
|
+
}
|
|
24
|
+
/*
|
|
25
|
+
* Slugifies a label and stamps it with the export time, so repeated exports of
|
|
26
|
+
* the same conversation land as distinct files. Mirrors the naming used by the
|
|
27
|
+
* CSV export (TableColumnsToCsv.getExportFilename).
|
|
28
|
+
*/
|
|
29
|
+
export function getExportFilename(data) {
|
|
30
|
+
const slug = data.label
|
|
31
|
+
.replace(/[^a-zA-Z0-9-_]+/g, "-")
|
|
32
|
+
.replace(/^-+|-+$/g, "")
|
|
33
|
+
.toLowerCase()
|
|
34
|
+
.substring(0, 60) || "ai-conversation";
|
|
35
|
+
const timestamp = data.exportedAt
|
|
36
|
+
.toISOString()
|
|
37
|
+
.replace(/[:.]/g, "-")
|
|
38
|
+
.slice(0, 19);
|
|
39
|
+
return `${slug}-${timestamp}.${data.extension}`;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=DownloadFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DownloadFile.js","sourceRoot":"","sources":["../../../../UI/Utils/DownloadFile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,IAIpC;IACC,MAAM,IAAI,GACR,IAAI,CAAC,OAAO,YAAY,IAAI;QAC1B,CAAC,CAAC,IAAI,CAAC,OAAO;QACd,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACvB,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,2BAA2B;SACnD,CAAC,CAAC;IAET,MAAM,GAAG,GAAW,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,MAAM,GAAsB,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAIjC;IACC,MAAM,IAAI,GACR,IAAI,CAAC,KAAK;SACP,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE;SACb,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC;IAE3C,MAAM,SAAS,GAAW,IAAI,CAAC,UAAU;SACtC,WAAW,EAAE;SACb,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhB,OAAO,GAAG,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AAClD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneuptime/common",
|
|
3
|
-
"version": "11.5.
|
|
3
|
+
"version": "11.5.9",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -112,6 +112,8 @@
|
|
|
112
112
|
"jsonwebtoken": "^9.0.0",
|
|
113
113
|
"jwt-decode": "^4.0.0",
|
|
114
114
|
"marked": "^12.0.2",
|
|
115
|
+
"mdast-util-gfm": "^3.1.0",
|
|
116
|
+
"mdast-util-to-markdown": "^2.1.2",
|
|
115
117
|
"mermaid": "^11.12.2",
|
|
116
118
|
"moment": "^2.30.1",
|
|
117
119
|
"moment-timezone": "^0.5.45",
|
|
@@ -145,6 +147,7 @@
|
|
|
145
147
|
"redis-semaphore": "^5.5.1",
|
|
146
148
|
"reflect-metadata": "^0.2.2",
|
|
147
149
|
"remark-gfm": "^4.0.0",
|
|
150
|
+
"remark-parse": "^11.0.0",
|
|
148
151
|
"slackify-markdown": "^4.4.0",
|
|
149
152
|
"slugify": "^1.6.5",
|
|
150
153
|
"socket.io": "^4.7.4",
|
|
@@ -155,6 +158,7 @@
|
|
|
155
158
|
"twilio": "^4.22.0",
|
|
156
159
|
"typeorm": "^0.3.26",
|
|
157
160
|
"typeorm-extension": "^2.2.13",
|
|
161
|
+
"unified": "^11.0.5",
|
|
158
162
|
"universal-cookie": "^7.2.1",
|
|
159
163
|
"use-async-effect": "^2.2.6",
|
|
160
164
|
"web-push": "^3.6.7",
|