@oneuptime/common 11.5.7 → 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 +68 -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 +190 -57
- package/Server/API/TelemetryExceptionAPI.ts +6 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784105912819-BackfillCodeFixTaskType.ts +41 -0
- 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 +10 -0
- package/Server/Middleware/MasterAdminAuthorization.ts +1 -1
- package/Server/Middleware/ProjectAuthorization.ts +1 -1
- package/Server/Services/AIRunEventService.ts +15 -1
- package/Server/Services/AIRunService.ts +48 -12
- 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/AIRunPrivacyFilter.ts +106 -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/AIRunPrivacyFilter.test.ts +295 -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/Email/EmailTemplateType.ts +2 -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/EditionLabel/EditionLabel.tsx +821 -331
- 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 +69 -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 +165 -51
- 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/1784105912819-BackfillCodeFixTaskType.js +36 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784105912819-BackfillCodeFixTaskType.js.map +1 -0
- 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 +10 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/MasterAdminAuthorization.js +1 -1
- package/build/dist/Server/Middleware/ProjectAuthorization.js +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 +39 -3
- 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/AIRunPrivacyFilter.js +82 -0
- package/build/dist/Server/Utils/AI/AIRunPrivacyFilter.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/Email/EmailTemplateType.js +1 -0
- package/build/dist/Types/Email/EmailTemplateType.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/EditionLabel/EditionLabel.js +424 -139
- package/build/dist/UI/Components/EditionLabel/EditionLabel.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",
|