@ai-group/chat-sdk 3.7.0 → 3.7.1-alpha10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/cjs/components/FileGallery/index.js +59 -40
- package/dist/cjs/components/FileGallery/index.js.map +2 -2
- package/dist/cjs/components/FileGallery/styles.d.ts +7 -0
- package/dist/cjs/components/FileGallery/styles.js +78 -0
- package/dist/cjs/components/FileGallery/styles.js.map +2 -2
- package/dist/cjs/components/Sources/components/CarouselCard.d.ts +12 -0
- package/dist/cjs/components/Sources/components/CarouselCard.js +130 -0
- package/dist/cjs/components/Sources/components/CarouselCard.js.map +7 -0
- package/dist/cjs/components/Sources/index.d.ts +5 -0
- package/dist/cjs/components/Sources/index.js +162 -0
- package/dist/cjs/components/Sources/index.js.map +7 -0
- package/dist/cjs/components/Sources/styles.d.ts +59 -0
- package/dist/cjs/components/Sources/styles.js +179 -0
- package/dist/cjs/components/Sources/styles.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +19 -1
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +232 -22
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +3 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js +83 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/index.d.ts +2 -2
- package/dist/cjs/components/XAdkChatbot/index.js +75 -8
- package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/styles.js +1 -1
- package/dist/cjs/components/XAdkChatbot/styles.js.map +1 -1
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +7 -2
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +30 -12
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +3 -1
- package/dist/cjs/components/XAdkProvider/compound/Sender.js +81 -4
- package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +3 -3
- package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +1 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.js +16 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/context/ChatSenderStateContext.d.ts +4 -0
- package/dist/cjs/components/XAdkProvider/context/ChatSenderStateContext.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.d.ts +9 -0
- package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.js +34 -0
- package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/index.d.ts +5 -4
- package/dist/cjs/components/XAdkProvider/context/index.js +3 -1
- package/dist/cjs/components/XAdkProvider/context/index.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/index.js +11 -10
- package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
- package/dist/cjs/components/XAdkSender/InlineTagInput.d.ts +31 -0
- package/dist/cjs/components/XAdkSender/InlineTagInput.js +759 -0
- package/dist/cjs/components/XAdkSender/InlineTagInput.js.map +7 -0
- package/dist/cjs/components/XAdkSender/InputTags.d.ts +8 -0
- package/dist/cjs/components/XAdkSender/InputTags.js +51 -0
- package/dist/cjs/components/XAdkSender/InputTags.js.map +7 -0
- package/dist/cjs/components/XAdkSender/QuickList.d.ts +16 -0
- package/dist/cjs/components/XAdkSender/QuickList.js +105 -0
- package/dist/cjs/components/XAdkSender/QuickList.js.map +7 -0
- package/dist/cjs/components/XAdkSender/index.d.ts +1 -6
- package/dist/cjs/components/XAdkSender/index.js +422 -150
- package/dist/cjs/components/XAdkSender/index.js.map +3 -3
- package/dist/cjs/components/XAdkSender/styles.d.ts +19 -0
- package/dist/cjs/components/XAdkSender/styles.js +225 -5
- package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/styles.js +11 -1
- package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
- package/dist/cjs/hooks/useADKChat.js +5 -1
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/index.d.ts +8 -3
- package/dist/cjs/index.js +44 -10
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/presets/base.d.ts +6 -0
- package/dist/cjs/presets/base.js +50 -0
- package/dist/cjs/presets/base.js.map +7 -0
- package/dist/cjs/presets/define.d.ts +11 -0
- package/dist/cjs/presets/define.js +58 -0
- package/dist/cjs/presets/define.js.map +7 -0
- package/dist/cjs/presets/index.d.ts +3 -0
- package/dist/cjs/presets/index.js +28 -0
- package/dist/cjs/presets/index.js.map +7 -0
- package/dist/cjs/presets/runtime.d.ts +22 -0
- package/dist/cjs/presets/runtime.js +75 -0
- package/dist/cjs/presets/runtime.js.map +7 -0
- package/dist/cjs/presets/xgroup/index.d.ts +5 -0
- package/dist/cjs/presets/xgroup/index.js +10 -0
- package/dist/cjs/presets/xgroup/index.js.map +2 -2
- package/dist/cjs/presets/xgroup/knowledgeReference.d.ts +17 -0
- package/dist/cjs/presets/xgroup/knowledgeReference.js +162 -0
- package/dist/cjs/presets/xgroup/knowledgeReference.js.map +7 -0
- package/dist/cjs/presets/xgroup/preset.d.ts +1 -13
- package/dist/cjs/presets/xgroup/preset.js +16 -37
- package/dist/cjs/presets/xgroup/preset.js.map +2 -2
- package/dist/cjs/presets/xgroup/strategies.d.ts +5 -4
- package/dist/cjs/presets/xgroup/strategies.js +11 -15
- package/dist/cjs/presets/xgroup/strategies.js.map +3 -3
- package/dist/cjs/presets/xgroup/webReference.d.ts +10 -0
- package/dist/cjs/presets/xgroup/webReference.js +85 -0
- package/dist/cjs/presets/xgroup/webReference.js.map +7 -0
- package/dist/cjs/types/ChatStrategies.d.ts +11 -2
- package/dist/cjs/types/ChatStrategies.js.map +1 -1
- package/dist/cjs/types/FileGallery.d.ts +3 -0
- package/dist/cjs/types/FileGallery.js.map +1 -1
- package/dist/cjs/types/Sources.d.ts +30 -0
- package/dist/cjs/types/Sources.js +18 -0
- package/dist/cjs/types/Sources.js.map +7 -0
- package/dist/cjs/types/XAdkChatbot.d.ts +33 -0
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/cjs/types/XAdkSender.d.ts +154 -8
- package/dist/cjs/types/XAdkSender.js.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.js +3 -1
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.js +3 -1
- package/dist/cjs/utils/index.js.map +2 -2
- package/dist/cjs/utils/markdownResource.d.ts +14 -0
- package/dist/cjs/utils/markdownResource.js +131 -0
- package/dist/cjs/utils/markdownResource.js.map +7 -0
- package/dist/esm/components/FileGallery/index.js +22 -16
- package/dist/esm/components/FileGallery/index.js.map +1 -1
- package/dist/esm/components/FileGallery/styles.d.ts +7 -0
- package/dist/esm/components/FileGallery/styles.js +24 -17
- package/dist/esm/components/FileGallery/styles.js.map +1 -1
- package/dist/esm/components/Sources/components/CarouselCard.d.ts +12 -0
- package/dist/esm/components/Sources/components/CarouselCard.js +107 -0
- package/dist/esm/components/Sources/components/CarouselCard.js.map +1 -0
- package/dist/esm/components/Sources/index.d.ts +5 -0
- package/dist/esm/components/Sources/index.js +127 -0
- package/dist/esm/components/Sources/index.js.map +1 -0
- package/dist/esm/components/Sources/styles.d.ts +59 -0
- package/dist/esm/components/Sources/styles.js +34 -0
- package/dist/esm/components/Sources/styles.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +19 -1
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +190 -11
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +3 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js +5 -2
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/index.d.ts +2 -2
- package/dist/esm/components/XAdkChatbot/index.js +55 -10
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/styles.js +1 -1
- package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +7 -2
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +40 -17
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +3 -1
- package/dist/esm/components/XAdkProvider/compound/Sender.js +70 -6
- package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/styles.d.ts +1 -0
- package/dist/esm/components/XAdkProvider/compound/styles.js +3 -2
- package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -1
- package/dist/esm/components/XAdkProvider/context/ChatSenderStateContext.d.ts +4 -0
- package/dist/esm/components/XAdkProvider/context/ChatSenderStateContext.js.map +1 -1
- package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.d.ts +9 -0
- package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.js +9 -0
- package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/index.d.ts +5 -4
- package/dist/esm/components/XAdkProvider/context/index.js +1 -0
- package/dist/esm/components/XAdkProvider/context/index.js.map +1 -1
- package/dist/esm/components/XAdkProvider/index.js +7 -3
- package/dist/esm/components/XAdkProvider/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/InlineTagInput.d.ts +31 -0
- package/dist/esm/components/XAdkSender/InlineTagInput.js +734 -0
- package/dist/esm/components/XAdkSender/InlineTagInput.js.map +1 -0
- package/dist/esm/components/XAdkSender/InputTags.d.ts +8 -0
- package/dist/esm/components/XAdkSender/InputTags.js +37 -0
- package/dist/esm/components/XAdkSender/InputTags.js.map +1 -0
- package/dist/esm/components/XAdkSender/QuickList.d.ts +16 -0
- package/dist/esm/components/XAdkSender/QuickList.js +96 -0
- package/dist/esm/components/XAdkSender/QuickList.js.map +1 -0
- package/dist/esm/components/XAdkSender/index.d.ts +1 -6
- package/dist/esm/components/XAdkSender/index.js +476 -143
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/styles.d.ts +19 -0
- package/dist/esm/components/XAdkSender/styles.js +34 -12
- package/dist/esm/components/XAdkSender/styles.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.js +3 -3
- package/dist/esm/components/XAiConversations/styles.js.map +1 -1
- package/dist/esm/hooks/useADKChat.js +8 -2
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/index.d.ts +8 -3
- package/dist/esm/index.js +7 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/presets/base.d.ts +6 -0
- package/dist/esm/presets/base.js +28 -0
- package/dist/esm/presets/base.js.map +1 -0
- package/dist/esm/presets/define.d.ts +11 -0
- package/dist/esm/presets/define.js +33 -0
- package/dist/esm/presets/define.js.map +1 -0
- package/dist/esm/presets/index.d.ts +3 -0
- package/dist/esm/presets/index.js +4 -0
- package/dist/esm/presets/index.js.map +1 -0
- package/dist/esm/presets/runtime.d.ts +22 -0
- package/dist/esm/presets/runtime.js +45 -0
- package/dist/esm/presets/runtime.js.map +1 -0
- package/dist/esm/presets/xgroup/index.d.ts +5 -0
- package/dist/esm/presets/xgroup/index.js +6 -0
- package/dist/esm/presets/xgroup/index.js.map +1 -1
- package/dist/esm/presets/xgroup/knowledgeReference.d.ts +17 -0
- package/dist/esm/presets/xgroup/knowledgeReference.js +95 -0
- package/dist/esm/presets/xgroup/knowledgeReference.js.map +1 -0
- package/dist/esm/presets/xgroup/preset.d.ts +1 -13
- package/dist/esm/presets/xgroup/preset.js +9 -29
- package/dist/esm/presets/xgroup/preset.js.map +1 -1
- package/dist/esm/presets/xgroup/strategies.d.ts +5 -4
- package/dist/esm/presets/xgroup/strategies.js +8 -20
- package/dist/esm/presets/xgroup/strategies.js.map +1 -1
- package/dist/esm/presets/xgroup/webReference.d.ts +10 -0
- package/dist/esm/presets/xgroup/webReference.js +46 -0
- package/dist/esm/presets/xgroup/webReference.js.map +1 -0
- package/dist/esm/types/ChatStrategies.d.ts +11 -2
- package/dist/esm/types/ChatStrategies.js.map +1 -1
- package/dist/esm/types/FileGallery.d.ts +3 -0
- package/dist/esm/types/FileGallery.js.map +1 -1
- package/dist/esm/types/Sources.d.ts +30 -0
- package/dist/esm/types/Sources.js +2 -0
- package/dist/esm/types/Sources.js.map +1 -0
- package/dist/esm/types/XAdkChatbot.d.ts +33 -0
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/types/XAdkSender.d.ts +154 -8
- package/dist/esm/types/XAdkSender.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/markdownResource.d.ts +14 -0
- package/dist/esm/utils/markdownResource.js +101 -0
- package/dist/esm/utils/markdownResource.js.map +1 -0
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +6 -1
- package/dist/cjs/components/XAdkSender/Switch.d.ts +0 -16
- package/dist/cjs/components/XAdkSender/Switch.js +0 -95
- package/dist/cjs/components/XAdkSender/Switch.js.map +0 -7
- package/dist/esm/components/XAdkSender/Switch.d.ts +0 -16
- package/dist/esm/components/XAdkSender/Switch.js +0 -53
- package/dist/esm/components/XAdkSender/Switch.js.map +0 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
export var MARKDOWN_RESOURCE_LINK_SCHEMES = ["skill", "kb"
|
|
2
|
+
// "plugin",
|
|
3
|
+
// "tool",
|
|
4
|
+
// "knowledge",
|
|
5
|
+
// "agent",
|
|
6
|
+
// "model",
|
|
7
|
+
];
|
|
8
|
+
var getResourceLinkSchemeSet = function getResourceLinkSchemeSet(options) {
|
|
9
|
+
return new Set((options === null || options === void 0 ? void 0 : options.schemes) || MARKDOWN_RESOURCE_LINK_SCHEMES);
|
|
10
|
+
};
|
|
11
|
+
var RESOURCE_LINK_REGEX = /\[([^\]\n]+)\]\(([a-z][a-z0-9+.-]*:\/{2,3}[^)\s]+)\)/gi;
|
|
12
|
+
var stripTriggerPrefix = function stripTriggerPrefix(label) {
|
|
13
|
+
return label.replace(/^[@/#$]+/, "");
|
|
14
|
+
};
|
|
15
|
+
export var getMarkdownResourceDisplayLabel = function getMarkdownResourceDisplayLabel(label) {
|
|
16
|
+
return stripTriggerPrefix(label).trim();
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/** 将包含资源链接的 Markdown 还原成 Sender 可编辑的有序片段。 */
|
|
20
|
+
export var parseMarkdownResourceLinksAsParts = function parseMarkdownResourceLinksAsParts(text, options) {
|
|
21
|
+
if (!text) return [];
|
|
22
|
+
var parts = [];
|
|
23
|
+
var lastIndex = 0;
|
|
24
|
+
var mentionIndex = 0;
|
|
25
|
+
var regex = new RegExp(RESOURCE_LINK_REGEX.source, RESOURCE_LINK_REGEX.flags);
|
|
26
|
+
var match;
|
|
27
|
+
while ((match = regex.exec(text)) !== null) {
|
|
28
|
+
var _match$index, _label$match;
|
|
29
|
+
var source = match[0];
|
|
30
|
+
var label = match[1] || "";
|
|
31
|
+
var href = match[2] || "";
|
|
32
|
+
var start = (_match$index = match.index) !== null && _match$index !== void 0 ? _match$index : 0;
|
|
33
|
+
var _link = parseMarkdownResourceHref(href, label, options);
|
|
34
|
+
if (!_link) continue;
|
|
35
|
+
if (start > lastIndex) {
|
|
36
|
+
parts.push({
|
|
37
|
+
type: "text",
|
|
38
|
+
text: text.slice(lastIndex, start)
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
var displayName = getMarkdownResourceDisplayLabel(_link.label || _link.value);
|
|
42
|
+
var mention = {
|
|
43
|
+
id: "pasted-".concat(_link.type, "-").concat(mentionIndex, "-").concat(Date.now().toString(36)),
|
|
44
|
+
label: displayName,
|
|
45
|
+
displayName: displayName,
|
|
46
|
+
type: _link.type,
|
|
47
|
+
uri: _link.href,
|
|
48
|
+
targetId: _link.value,
|
|
49
|
+
value: _link.value,
|
|
50
|
+
trigger: (_label$match = label.match(/^[@/#$]+/)) === null || _label$match === void 0 ? void 0 : _label$match[0],
|
|
51
|
+
data: {
|
|
52
|
+
uri: _link.href,
|
|
53
|
+
value: _link.value
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
parts.push({
|
|
57
|
+
type: "mention",
|
|
58
|
+
mention: mention
|
|
59
|
+
});
|
|
60
|
+
mentionIndex += 1;
|
|
61
|
+
lastIndex = start + source.length;
|
|
62
|
+
}
|
|
63
|
+
if (lastIndex < text.length) {
|
|
64
|
+
parts.push({
|
|
65
|
+
type: "text",
|
|
66
|
+
text: text.slice(lastIndex)
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return parts.length > 0 ? parts : [{
|
|
70
|
+
type: "text",
|
|
71
|
+
text: text
|
|
72
|
+
}];
|
|
73
|
+
};
|
|
74
|
+
export var parseMarkdownResourceHref = function parseMarkdownResourceHref(href) {
|
|
75
|
+
var label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
76
|
+
var options = arguments.length > 2 ? arguments[2] : undefined;
|
|
77
|
+
var match = href.match(/^([a-z][a-z0-9+.-]*):\/{2,3}(.+)$/i);
|
|
78
|
+
if (!match) return null;
|
|
79
|
+
var type = match[1].toLowerCase();
|
|
80
|
+
if (!getResourceLinkSchemeSet(options).has(type)) return null;
|
|
81
|
+
return {
|
|
82
|
+
href: href,
|
|
83
|
+
label: label || href,
|
|
84
|
+
type: type,
|
|
85
|
+
value: decodeURIComponent(match[2])
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
export var replaceMarkdownResourceLinks = function replaceMarkdownResourceLinks(text, replacer, options) {
|
|
89
|
+
if (!text) return "";
|
|
90
|
+
return text.replace(RESOURCE_LINK_REGEX, function (source, label, href) {
|
|
91
|
+
var link = parseMarkdownResourceHref(href, label, options);
|
|
92
|
+
return link ? replacer(link) : source;
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
export var formatMarkdownResourceLinksAsText = function formatMarkdownResourceLinksAsText(text, options) {
|
|
96
|
+
return replaceMarkdownResourceLinks(text, function (link) {
|
|
97
|
+
var label = link.label || link.value;
|
|
98
|
+
return (options === null || options === void 0 ? void 0 : options.stripTrigger) === false ? label : stripTriggerPrefix(label);
|
|
99
|
+
}, options);
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=markdownResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MARKDOWN_RESOURCE_LINK_SCHEMES","getResourceLinkSchemeSet","options","Set","schemes","RESOURCE_LINK_REGEX","stripTriggerPrefix","label","replace","getMarkdownResourceDisplayLabel","trim","parseMarkdownResourceLinksAsParts","text","parts","lastIndex","mentionIndex","regex","RegExp","source","flags","match","exec","_match$index","_label$match","href","start","index","link","parseMarkdownResourceHref","push","type","slice","displayName","value","mention","id","concat","Date","now","toString","uri","targetId","trigger","data","length","arguments","undefined","toLowerCase","has","decodeURIComponent","replaceMarkdownResourceLinks","replacer","formatMarkdownResourceLinksAsText","stripTrigger"],"sources":["../../../src/utils/markdownResource.ts"],"sourcesContent":["import type {\n MarkdownResourceLink,\n MentionTag,\n XAdkSenderSubmitPart,\n} from \"@/types\";\n\nexport const MARKDOWN_RESOURCE_LINK_SCHEMES = [\n \"skill\",\n \"kb\",\n // \"plugin\",\n // \"tool\",\n // \"knowledge\",\n // \"agent\",\n // \"model\",\n] as const;\n\nexport type MarkdownResourceLinkScheme =\n | (typeof MARKDOWN_RESOURCE_LINK_SCHEMES)[number]\n | (string & {});\n\nexport interface MarkdownResourceLinkOptions {\n schemes?: readonly MarkdownResourceLinkScheme[];\n}\n\nconst getResourceLinkSchemeSet = (options?: MarkdownResourceLinkOptions) =>\n new Set<string>(options?.schemes || MARKDOWN_RESOURCE_LINK_SCHEMES);\n\nconst RESOURCE_LINK_REGEX =\n /\\[([^\\]\\n]+)\\]\\(([a-z][a-z0-9+.-]*:\\/{2,3}[^)\\s]+)\\)/gi;\n\nconst stripTriggerPrefix = (label: string) => label.replace(/^[@/#$]+/, \"\");\n\nexport const getMarkdownResourceDisplayLabel = (label: string) =>\n stripTriggerPrefix(label).trim();\n\n/** 将包含资源链接的 Markdown 还原成 Sender 可编辑的有序片段。 */\nexport const parseMarkdownResourceLinksAsParts = (\n text: string,\n options?: MarkdownResourceLinkOptions,\n): XAdkSenderSubmitPart[] => {\n if (!text) return [];\n\n const parts: XAdkSenderSubmitPart[] = [];\n let lastIndex = 0;\n let mentionIndex = 0;\n const regex = new RegExp(\n RESOURCE_LINK_REGEX.source,\n RESOURCE_LINK_REGEX.flags,\n );\n\n let match: RegExpExecArray | null;\n while ((match = regex.exec(text)) !== null) {\n const source = match[0];\n const label = match[1] || \"\";\n const href = match[2] || \"\";\n const start = match.index ?? 0;\n const link = parseMarkdownResourceHref(href, label, options);\n if (!link) continue;\n\n if (start > lastIndex) {\n parts.push({ type: \"text\", text: text.slice(lastIndex, start) });\n }\n\n const displayName = getMarkdownResourceDisplayLabel(\n link.label || link.value,\n );\n const mention: MentionTag = {\n id: `pasted-${link.type}-${mentionIndex}-${Date.now().toString(36)}`,\n label: displayName,\n displayName,\n type: link.type,\n uri: link.href,\n targetId: link.value,\n value: link.value,\n trigger: label.match(/^[@/#$]+/)?.[0],\n data: { uri: link.href, value: link.value },\n };\n parts.push({ type: \"mention\", mention });\n mentionIndex += 1;\n lastIndex = start + source.length;\n }\n\n if (lastIndex < text.length) {\n parts.push({ type: \"text\", text: text.slice(lastIndex) });\n }\n return parts.length > 0 ? parts : [{ type: \"text\", text }];\n};\n\nexport const parseMarkdownResourceHref = (\n href: string,\n label = \"\",\n options?: MarkdownResourceLinkOptions,\n): MarkdownResourceLink | null => {\n const match = href.match(/^([a-z][a-z0-9+.-]*):\\/{2,3}(.+)$/i);\n if (!match) return null;\n\n const type = match[1].toLowerCase();\n if (!getResourceLinkSchemeSet(options).has(type)) return null;\n\n return {\n href,\n label: label || href,\n type,\n value: decodeURIComponent(match[2]),\n };\n};\n\nexport const replaceMarkdownResourceLinks = (\n text: string,\n replacer: (link: MarkdownResourceLink) => string,\n options?: MarkdownResourceLinkOptions,\n) => {\n if (!text) return \"\";\n return text.replace(\n RESOURCE_LINK_REGEX,\n (source, label: string, href: string) => {\n const link = parseMarkdownResourceHref(href, label, options);\n return link ? replacer(link) : source;\n },\n );\n};\n\nexport const formatMarkdownResourceLinksAsText = (\n text: string,\n options?: MarkdownResourceLinkOptions & { stripTrigger?: boolean },\n) =>\n replaceMarkdownResourceLinks(\n text,\n (link) => {\n const label = link.label || link.value;\n return options?.stripTrigger === false\n ? label\n : stripTriggerPrefix(label);\n },\n options,\n );\n"],"mappings":"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"}
|