@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.
Files changed (235) hide show
  1. package/README.md +22 -0
  2. package/dist/cjs/components/FileGallery/index.js +59 -40
  3. package/dist/cjs/components/FileGallery/index.js.map +2 -2
  4. package/dist/cjs/components/FileGallery/styles.d.ts +7 -0
  5. package/dist/cjs/components/FileGallery/styles.js +78 -0
  6. package/dist/cjs/components/FileGallery/styles.js.map +2 -2
  7. package/dist/cjs/components/Sources/components/CarouselCard.d.ts +12 -0
  8. package/dist/cjs/components/Sources/components/CarouselCard.js +130 -0
  9. package/dist/cjs/components/Sources/components/CarouselCard.js.map +7 -0
  10. package/dist/cjs/components/Sources/index.d.ts +5 -0
  11. package/dist/cjs/components/Sources/index.js +162 -0
  12. package/dist/cjs/components/Sources/index.js.map +7 -0
  13. package/dist/cjs/components/Sources/styles.d.ts +59 -0
  14. package/dist/cjs/components/Sources/styles.js +179 -0
  15. package/dist/cjs/components/Sources/styles.js.map +7 -0
  16. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +19 -1
  17. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +232 -22
  18. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +2 -2
  19. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +3 -0
  20. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js +83 -0
  21. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js.map +2 -2
  22. package/dist/cjs/components/XAdkChatbot/index.d.ts +2 -2
  23. package/dist/cjs/components/XAdkChatbot/index.js +75 -8
  24. package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
  25. package/dist/cjs/components/XAdkChatbot/styles.js +1 -1
  26. package/dist/cjs/components/XAdkChatbot/styles.js.map +1 -1
  27. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +7 -2
  28. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +30 -12
  29. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +2 -2
  30. package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +3 -1
  31. package/dist/cjs/components/XAdkProvider/compound/Sender.js +81 -4
  32. package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +3 -3
  33. package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +1 -0
  34. package/dist/cjs/components/XAdkProvider/compound/styles.js +16 -0
  35. package/dist/cjs/components/XAdkProvider/compound/styles.js.map +2 -2
  36. package/dist/cjs/components/XAdkProvider/context/ChatSenderStateContext.d.ts +4 -0
  37. package/dist/cjs/components/XAdkProvider/context/ChatSenderStateContext.js.map +2 -2
  38. package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.d.ts +9 -0
  39. package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.js +34 -0
  40. package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.js.map +7 -0
  41. package/dist/cjs/components/XAdkProvider/context/index.d.ts +5 -4
  42. package/dist/cjs/components/XAdkProvider/context/index.js +3 -1
  43. package/dist/cjs/components/XAdkProvider/context/index.js.map +2 -2
  44. package/dist/cjs/components/XAdkProvider/index.js +11 -10
  45. package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
  46. package/dist/cjs/components/XAdkSender/InlineTagInput.d.ts +31 -0
  47. package/dist/cjs/components/XAdkSender/InlineTagInput.js +759 -0
  48. package/dist/cjs/components/XAdkSender/InlineTagInput.js.map +7 -0
  49. package/dist/cjs/components/XAdkSender/InputTags.d.ts +8 -0
  50. package/dist/cjs/components/XAdkSender/InputTags.js +51 -0
  51. package/dist/cjs/components/XAdkSender/InputTags.js.map +7 -0
  52. package/dist/cjs/components/XAdkSender/QuickList.d.ts +16 -0
  53. package/dist/cjs/components/XAdkSender/QuickList.js +105 -0
  54. package/dist/cjs/components/XAdkSender/QuickList.js.map +7 -0
  55. package/dist/cjs/components/XAdkSender/index.d.ts +1 -6
  56. package/dist/cjs/components/XAdkSender/index.js +422 -150
  57. package/dist/cjs/components/XAdkSender/index.js.map +3 -3
  58. package/dist/cjs/components/XAdkSender/styles.d.ts +19 -0
  59. package/dist/cjs/components/XAdkSender/styles.js +225 -5
  60. package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
  61. package/dist/cjs/components/XAiConversations/styles.js +11 -1
  62. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  63. package/dist/cjs/hooks/useADKChat.js +5 -1
  64. package/dist/cjs/hooks/useADKChat.js.map +2 -2
  65. package/dist/cjs/index.d.ts +8 -3
  66. package/dist/cjs/index.js +44 -10
  67. package/dist/cjs/index.js.map +3 -3
  68. package/dist/cjs/presets/base.d.ts +6 -0
  69. package/dist/cjs/presets/base.js +50 -0
  70. package/dist/cjs/presets/base.js.map +7 -0
  71. package/dist/cjs/presets/define.d.ts +11 -0
  72. package/dist/cjs/presets/define.js +58 -0
  73. package/dist/cjs/presets/define.js.map +7 -0
  74. package/dist/cjs/presets/index.d.ts +3 -0
  75. package/dist/cjs/presets/index.js +28 -0
  76. package/dist/cjs/presets/index.js.map +7 -0
  77. package/dist/cjs/presets/runtime.d.ts +22 -0
  78. package/dist/cjs/presets/runtime.js +75 -0
  79. package/dist/cjs/presets/runtime.js.map +7 -0
  80. package/dist/cjs/presets/xgroup/index.d.ts +5 -0
  81. package/dist/cjs/presets/xgroup/index.js +10 -0
  82. package/dist/cjs/presets/xgroup/index.js.map +2 -2
  83. package/dist/cjs/presets/xgroup/knowledgeReference.d.ts +17 -0
  84. package/dist/cjs/presets/xgroup/knowledgeReference.js +162 -0
  85. package/dist/cjs/presets/xgroup/knowledgeReference.js.map +7 -0
  86. package/dist/cjs/presets/xgroup/preset.d.ts +1 -13
  87. package/dist/cjs/presets/xgroup/preset.js +16 -37
  88. package/dist/cjs/presets/xgroup/preset.js.map +2 -2
  89. package/dist/cjs/presets/xgroup/strategies.d.ts +5 -4
  90. package/dist/cjs/presets/xgroup/strategies.js +11 -15
  91. package/dist/cjs/presets/xgroup/strategies.js.map +3 -3
  92. package/dist/cjs/presets/xgroup/webReference.d.ts +10 -0
  93. package/dist/cjs/presets/xgroup/webReference.js +85 -0
  94. package/dist/cjs/presets/xgroup/webReference.js.map +7 -0
  95. package/dist/cjs/types/ChatStrategies.d.ts +11 -2
  96. package/dist/cjs/types/ChatStrategies.js.map +1 -1
  97. package/dist/cjs/types/FileGallery.d.ts +3 -0
  98. package/dist/cjs/types/FileGallery.js.map +1 -1
  99. package/dist/cjs/types/Sources.d.ts +30 -0
  100. package/dist/cjs/types/Sources.js +18 -0
  101. package/dist/cjs/types/Sources.js.map +7 -0
  102. package/dist/cjs/types/XAdkChatbot.d.ts +33 -0
  103. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  104. package/dist/cjs/types/XAdkSender.d.ts +154 -8
  105. package/dist/cjs/types/XAdkSender.js.map +1 -1
  106. package/dist/cjs/types/index.d.ts +1 -0
  107. package/dist/cjs/types/index.js +3 -1
  108. package/dist/cjs/types/index.js.map +2 -2
  109. package/dist/cjs/utils/index.d.ts +1 -0
  110. package/dist/cjs/utils/index.js +3 -1
  111. package/dist/cjs/utils/index.js.map +2 -2
  112. package/dist/cjs/utils/markdownResource.d.ts +14 -0
  113. package/dist/cjs/utils/markdownResource.js +131 -0
  114. package/dist/cjs/utils/markdownResource.js.map +7 -0
  115. package/dist/esm/components/FileGallery/index.js +22 -16
  116. package/dist/esm/components/FileGallery/index.js.map +1 -1
  117. package/dist/esm/components/FileGallery/styles.d.ts +7 -0
  118. package/dist/esm/components/FileGallery/styles.js +24 -17
  119. package/dist/esm/components/FileGallery/styles.js.map +1 -1
  120. package/dist/esm/components/Sources/components/CarouselCard.d.ts +12 -0
  121. package/dist/esm/components/Sources/components/CarouselCard.js +107 -0
  122. package/dist/esm/components/Sources/components/CarouselCard.js.map +1 -0
  123. package/dist/esm/components/Sources/index.d.ts +5 -0
  124. package/dist/esm/components/Sources/index.js +127 -0
  125. package/dist/esm/components/Sources/index.js.map +1 -0
  126. package/dist/esm/components/Sources/styles.d.ts +59 -0
  127. package/dist/esm/components/Sources/styles.js +34 -0
  128. package/dist/esm/components/Sources/styles.js.map +1 -0
  129. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +19 -1
  130. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +190 -11
  131. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -1
  132. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +3 -0
  133. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js +5 -2
  134. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js.map +1 -1
  135. package/dist/esm/components/XAdkChatbot/index.d.ts +2 -2
  136. package/dist/esm/components/XAdkChatbot/index.js +55 -10
  137. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  138. package/dist/esm/components/XAdkChatbot/styles.js +1 -1
  139. package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
  140. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +7 -2
  141. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +40 -17
  142. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -1
  143. package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +3 -1
  144. package/dist/esm/components/XAdkProvider/compound/Sender.js +70 -6
  145. package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -1
  146. package/dist/esm/components/XAdkProvider/compound/styles.d.ts +1 -0
  147. package/dist/esm/components/XAdkProvider/compound/styles.js +3 -2
  148. package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -1
  149. package/dist/esm/components/XAdkProvider/context/ChatSenderStateContext.d.ts +4 -0
  150. package/dist/esm/components/XAdkProvider/context/ChatSenderStateContext.js.map +1 -1
  151. package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.d.ts +9 -0
  152. package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.js +9 -0
  153. package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.js.map +1 -0
  154. package/dist/esm/components/XAdkProvider/context/index.d.ts +5 -4
  155. package/dist/esm/components/XAdkProvider/context/index.js +1 -0
  156. package/dist/esm/components/XAdkProvider/context/index.js.map +1 -1
  157. package/dist/esm/components/XAdkProvider/index.js +7 -3
  158. package/dist/esm/components/XAdkProvider/index.js.map +1 -1
  159. package/dist/esm/components/XAdkSender/InlineTagInput.d.ts +31 -0
  160. package/dist/esm/components/XAdkSender/InlineTagInput.js +734 -0
  161. package/dist/esm/components/XAdkSender/InlineTagInput.js.map +1 -0
  162. package/dist/esm/components/XAdkSender/InputTags.d.ts +8 -0
  163. package/dist/esm/components/XAdkSender/InputTags.js +37 -0
  164. package/dist/esm/components/XAdkSender/InputTags.js.map +1 -0
  165. package/dist/esm/components/XAdkSender/QuickList.d.ts +16 -0
  166. package/dist/esm/components/XAdkSender/QuickList.js +96 -0
  167. package/dist/esm/components/XAdkSender/QuickList.js.map +1 -0
  168. package/dist/esm/components/XAdkSender/index.d.ts +1 -6
  169. package/dist/esm/components/XAdkSender/index.js +476 -143
  170. package/dist/esm/components/XAdkSender/index.js.map +1 -1
  171. package/dist/esm/components/XAdkSender/styles.d.ts +19 -0
  172. package/dist/esm/components/XAdkSender/styles.js +34 -12
  173. package/dist/esm/components/XAdkSender/styles.js.map +1 -1
  174. package/dist/esm/components/XAiConversations/styles.js +3 -3
  175. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  176. package/dist/esm/hooks/useADKChat.js +8 -2
  177. package/dist/esm/hooks/useADKChat.js.map +1 -1
  178. package/dist/esm/index.d.ts +8 -3
  179. package/dist/esm/index.js +7 -4
  180. package/dist/esm/index.js.map +1 -1
  181. package/dist/esm/presets/base.d.ts +6 -0
  182. package/dist/esm/presets/base.js +28 -0
  183. package/dist/esm/presets/base.js.map +1 -0
  184. package/dist/esm/presets/define.d.ts +11 -0
  185. package/dist/esm/presets/define.js +33 -0
  186. package/dist/esm/presets/define.js.map +1 -0
  187. package/dist/esm/presets/index.d.ts +3 -0
  188. package/dist/esm/presets/index.js +4 -0
  189. package/dist/esm/presets/index.js.map +1 -0
  190. package/dist/esm/presets/runtime.d.ts +22 -0
  191. package/dist/esm/presets/runtime.js +45 -0
  192. package/dist/esm/presets/runtime.js.map +1 -0
  193. package/dist/esm/presets/xgroup/index.d.ts +5 -0
  194. package/dist/esm/presets/xgroup/index.js +6 -0
  195. package/dist/esm/presets/xgroup/index.js.map +1 -1
  196. package/dist/esm/presets/xgroup/knowledgeReference.d.ts +17 -0
  197. package/dist/esm/presets/xgroup/knowledgeReference.js +95 -0
  198. package/dist/esm/presets/xgroup/knowledgeReference.js.map +1 -0
  199. package/dist/esm/presets/xgroup/preset.d.ts +1 -13
  200. package/dist/esm/presets/xgroup/preset.js +9 -29
  201. package/dist/esm/presets/xgroup/preset.js.map +1 -1
  202. package/dist/esm/presets/xgroup/strategies.d.ts +5 -4
  203. package/dist/esm/presets/xgroup/strategies.js +8 -20
  204. package/dist/esm/presets/xgroup/strategies.js.map +1 -1
  205. package/dist/esm/presets/xgroup/webReference.d.ts +10 -0
  206. package/dist/esm/presets/xgroup/webReference.js +46 -0
  207. package/dist/esm/presets/xgroup/webReference.js.map +1 -0
  208. package/dist/esm/types/ChatStrategies.d.ts +11 -2
  209. package/dist/esm/types/ChatStrategies.js.map +1 -1
  210. package/dist/esm/types/FileGallery.d.ts +3 -0
  211. package/dist/esm/types/FileGallery.js.map +1 -1
  212. package/dist/esm/types/Sources.d.ts +30 -0
  213. package/dist/esm/types/Sources.js +2 -0
  214. package/dist/esm/types/Sources.js.map +1 -0
  215. package/dist/esm/types/XAdkChatbot.d.ts +33 -0
  216. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  217. package/dist/esm/types/XAdkSender.d.ts +154 -8
  218. package/dist/esm/types/XAdkSender.js.map +1 -1
  219. package/dist/esm/types/index.d.ts +1 -0
  220. package/dist/esm/types/index.js +1 -0
  221. package/dist/esm/types/index.js.map +1 -1
  222. package/dist/esm/utils/index.d.ts +1 -0
  223. package/dist/esm/utils/index.js +1 -0
  224. package/dist/esm/utils/index.js.map +1 -1
  225. package/dist/esm/utils/markdownResource.d.ts +14 -0
  226. package/dist/esm/utils/markdownResource.js +101 -0
  227. package/dist/esm/utils/markdownResource.js.map +1 -0
  228. package/dist/umd/chat-sdk.min.js +1 -1
  229. package/package.json +6 -1
  230. package/dist/cjs/components/XAdkSender/Switch.d.ts +0 -16
  231. package/dist/cjs/components/XAdkSender/Switch.js +0 -95
  232. package/dist/cjs/components/XAdkSender/Switch.js.map +0 -7
  233. package/dist/esm/components/XAdkSender/Switch.d.ts +0 -16
  234. package/dist/esm/components/XAdkSender/Switch.js +0 -53
  235. 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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"}