@ai-group/chat-sdk 2.1.14 → 3.0.1-alpha.2

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 (239) hide show
  1. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +9 -2
  2. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js +564 -10
  3. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +2 -2
  4. package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.d.ts +12 -0
  5. package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.js +92 -0
  6. package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.js.map +7 -0
  7. package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.d.ts +44 -0
  8. package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.js +137 -0
  9. package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.js.map +7 -0
  10. package/dist/cjs/components/XAdkChatbot/index.d.ts +10 -0
  11. package/dist/cjs/components/XAdkChatbot/index.js +292 -123
  12. package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
  13. package/dist/cjs/components/XAdkChatbot/styles.d.ts +10 -0
  14. package/dist/cjs/components/XAdkChatbot/styles.js +67 -3
  15. package/dist/cjs/components/XAdkChatbot/styles.js.map +2 -2
  16. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
  17. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +394 -0
  18. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +7 -0
  19. package/dist/cjs/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
  20. package/dist/cjs/components/XAdkProvider/compound/Chatbot.js +64 -0
  21. package/dist/cjs/components/XAdkProvider/compound/Chatbot.js.map +7 -0
  22. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
  23. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +199 -0
  24. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +7 -0
  25. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
  26. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js +117 -0
  27. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js.map +7 -0
  28. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
  29. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js +64 -0
  30. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js.map +7 -0
  31. package/dist/cjs/components/XAdkProvider/compound/Header.d.ts +25 -0
  32. package/dist/cjs/components/XAdkProvider/compound/Header.js +70 -0
  33. package/dist/cjs/components/XAdkProvider/compound/Header.js.map +7 -0
  34. package/dist/cjs/components/XAdkProvider/compound/Messages.d.ts +17 -0
  35. package/dist/cjs/components/XAdkProvider/compound/Messages.js +70 -0
  36. package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +7 -0
  37. package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +27 -0
  38. package/dist/cjs/components/XAdkProvider/compound/Sender.js +55 -0
  39. package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +7 -0
  40. package/dist/cjs/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
  41. package/dist/cjs/components/XAdkProvider/compound/Sidebar.js +151 -0
  42. package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +7 -0
  43. package/dist/cjs/components/XAdkProvider/compound/Welcome.d.ts +6 -0
  44. package/dist/cjs/components/XAdkProvider/compound/Welcome.js +60 -0
  45. package/dist/cjs/components/XAdkProvider/compound/Welcome.js.map +7 -0
  46. package/dist/cjs/components/XAdkProvider/compound/index.d.ts +17 -0
  47. package/dist/cjs/components/XAdkProvider/compound/index.js +55 -0
  48. package/dist/cjs/components/XAdkProvider/compound/index.js.map +7 -0
  49. package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +36 -0
  50. package/dist/cjs/components/XAdkProvider/compound/styles.js +49 -0
  51. package/dist/cjs/components/XAdkProvider/compound/styles.js.map +7 -0
  52. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
  53. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js +40 -0
  54. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js.map +7 -0
  55. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
  56. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js +42 -0
  57. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +7 -0
  58. package/dist/cjs/components/XAdkProvider/context/SessionContext.d.ts +29 -0
  59. package/dist/cjs/components/XAdkProvider/context/SessionContext.js +40 -0
  60. package/dist/cjs/components/XAdkProvider/context/SessionContext.js.map +7 -0
  61. package/dist/cjs/components/XAdkProvider/context/index.d.ts +7 -0
  62. package/dist/cjs/components/XAdkProvider/context/index.js +28 -0
  63. package/dist/cjs/components/XAdkProvider/context/index.js.map +7 -0
  64. package/dist/cjs/components/XAdkProvider/index.d.ts +55 -0
  65. package/dist/cjs/components/XAdkProvider/index.js +221 -0
  66. package/dist/cjs/components/XAdkProvider/index.js.map +7 -0
  67. package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -1
  68. package/dist/cjs/components/XAdkProvider/styles.js.map +7 -0
  69. package/dist/cjs/components/XAdkSender/FileGallery.d.ts +8 -0
  70. package/dist/cjs/components/XAdkSender/FileGallery.js +381 -0
  71. package/dist/cjs/components/XAdkSender/FileGallery.js.map +7 -0
  72. package/dist/cjs/components/XAdkSender/index.js +95 -81
  73. package/dist/cjs/components/XAdkSender/index.js.map +3 -3
  74. package/dist/cjs/components/XAdkSender/styles.d.ts +0 -9
  75. package/dist/cjs/components/XAdkSender/styles.js +21 -150
  76. package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
  77. package/dist/cjs/components/XAiConversations/index.js +1 -1
  78. package/dist/cjs/components/XAiConversations/index.js.map +2 -2
  79. package/dist/cjs/components/XAiConversations/styles.js +5 -0
  80. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  81. package/dist/cjs/hooks/useADKChat.d.ts +7 -1
  82. package/dist/cjs/hooks/useADKChat.js +20 -4
  83. package/dist/cjs/hooks/useADKChat.js.map +2 -2
  84. package/dist/cjs/index.d.ts +25 -9
  85. package/dist/cjs/index.js +37 -0
  86. package/dist/cjs/index.js.map +3 -3
  87. package/dist/cjs/styles/common.js +1 -1
  88. package/dist/cjs/styles/common.js.map +2 -2
  89. package/dist/cjs/types/ChatHook.d.ts +81 -0
  90. package/dist/cjs/types/ChatHook.js +18 -0
  91. package/dist/cjs/types/ChatHook.js.map +7 -0
  92. package/dist/cjs/types/XAdkChatbot.d.ts +80 -15
  93. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  94. package/dist/cjs/types/XAdkProvider.d.ts +10 -27
  95. package/dist/cjs/types/XAdkProvider.js.map +2 -2
  96. package/dist/cjs/types/XAdkSender.d.ts +18 -0
  97. package/dist/cjs/types/XAdkSender.js.map +1 -1
  98. package/dist/cjs/types/XAiConversations.d.ts +4 -2
  99. package/dist/cjs/types/XAiConversations.js.map +1 -1
  100. package/dist/cjs/types/XAiThoughtChain.d.ts +1 -1
  101. package/dist/cjs/types/XAiThoughtChain.js.map +1 -1
  102. package/dist/cjs/utils/index.d.ts +1 -0
  103. package/dist/cjs/utils/index.js +4 -1
  104. package/dist/cjs/utils/index.js.map +2 -2
  105. package/dist/cjs/utils/parseAgentMessage.d.ts +81 -0
  106. package/dist/cjs/utils/parseAgentMessage.js +180 -0
  107. package/dist/cjs/utils/parseAgentMessage.js.map +7 -0
  108. package/dist/cjs/utils/umdEntry.d.ts +91 -0
  109. package/dist/cjs/utils/umdEntry.js +108 -6
  110. package/dist/cjs/utils/umdEntry.js.map +3 -3
  111. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +9 -2
  112. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +485 -8
  113. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +1 -1
  114. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.d.ts +12 -0
  115. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js +104 -0
  116. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js.map +1 -0
  117. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.d.ts +44 -0
  118. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js +20 -0
  119. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js.map +1 -0
  120. package/dist/esm/components/XAdkChatbot/index.d.ts +10 -0
  121. package/dist/esm/components/XAdkChatbot/index.js +388 -172
  122. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  123. package/dist/esm/components/XAdkChatbot/styles.d.ts +10 -0
  124. package/dist/esm/components/XAdkChatbot/styles.js +23 -12
  125. package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
  126. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
  127. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +338 -0
  128. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +1 -0
  129. package/dist/esm/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
  130. package/dist/esm/components/XAdkProvider/compound/Chatbot.js +47 -0
  131. package/dist/esm/components/XAdkProvider/compound/Chatbot.js.map +1 -0
  132. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
  133. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +142 -0
  134. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -0
  135. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
  136. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js +122 -0
  137. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js.map +1 -0
  138. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
  139. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js +34 -0
  140. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js.map +1 -0
  141. package/dist/esm/components/XAdkProvider/compound/Header.d.ts +25 -0
  142. package/dist/esm/components/XAdkProvider/compound/Header.js +79 -0
  143. package/dist/esm/components/XAdkProvider/compound/Header.js.map +1 -0
  144. package/dist/esm/components/XAdkProvider/compound/Messages.d.ts +17 -0
  145. package/dist/esm/components/XAdkProvider/compound/Messages.js +53 -0
  146. package/dist/esm/components/XAdkProvider/compound/Messages.js.map +1 -0
  147. package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +27 -0
  148. package/dist/esm/components/XAdkProvider/compound/Sender.js +41 -0
  149. package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -0
  150. package/dist/esm/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
  151. package/dist/esm/components/XAdkProvider/compound/Sidebar.js +142 -0
  152. package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +1 -0
  153. package/dist/esm/components/XAdkProvider/compound/Welcome.d.ts +6 -0
  154. package/dist/esm/components/XAdkProvider/compound/Welcome.js +36 -0
  155. package/dist/esm/components/XAdkProvider/compound/Welcome.js.map +1 -0
  156. package/dist/esm/components/XAdkProvider/compound/index.d.ts +17 -0
  157. package/dist/esm/components/XAdkProvider/compound/index.js +13 -0
  158. package/dist/esm/components/XAdkProvider/compound/index.js.map +1 -0
  159. package/dist/esm/components/XAdkProvider/compound/styles.d.ts +36 -0
  160. package/dist/esm/components/XAdkProvider/compound/styles.js +10 -0
  161. package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -0
  162. package/dist/esm/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
  163. package/dist/esm/components/XAdkProvider/context/ChatActionContext.js +23 -0
  164. package/dist/esm/components/XAdkProvider/context/ChatActionContext.js.map +1 -0
  165. package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
  166. package/dist/esm/components/XAdkProvider/context/ChatStateContext.js +23 -0
  167. package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +1 -0
  168. package/dist/esm/components/XAdkProvider/context/SessionContext.d.ts +29 -0
  169. package/dist/esm/components/XAdkProvider/context/SessionContext.js +22 -0
  170. package/dist/esm/components/XAdkProvider/context/SessionContext.js.map +1 -0
  171. package/dist/esm/components/XAdkProvider/context/index.d.ts +7 -0
  172. package/dist/esm/components/XAdkProvider/context/index.js +9 -0
  173. package/dist/esm/components/XAdkProvider/context/index.js.map +1 -0
  174. package/dist/esm/components/XAdkProvider/index.d.ts +55 -0
  175. package/dist/esm/components/XAdkProvider/index.js +220 -0
  176. package/dist/esm/components/XAdkProvider/index.js.map +1 -0
  177. package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -2
  178. package/dist/esm/components/XAdkProvider/styles.js.map +1 -0
  179. package/dist/esm/components/XAdkSender/FileGallery.d.ts +8 -0
  180. package/dist/esm/components/XAdkSender/FileGallery.js +236 -0
  181. package/dist/esm/components/XAdkSender/FileGallery.js.map +1 -0
  182. package/dist/esm/components/XAdkSender/index.js +92 -109
  183. package/dist/esm/components/XAdkSender/index.js.map +1 -1
  184. package/dist/esm/components/XAdkSender/styles.d.ts +0 -9
  185. package/dist/esm/components/XAdkSender/styles.js +14 -31
  186. package/dist/esm/components/XAdkSender/styles.js.map +1 -1
  187. package/dist/esm/components/XAiConversations/index.js +1 -1
  188. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  189. package/dist/esm/components/XAiConversations/styles.js +2 -2
  190. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  191. package/dist/esm/hooks/useADKChat.d.ts +7 -1
  192. package/dist/esm/hooks/useADKChat.js +31 -12
  193. package/dist/esm/hooks/useADKChat.js.map +1 -1
  194. package/dist/esm/index.d.ts +25 -9
  195. package/dist/esm/index.js +28 -2
  196. package/dist/esm/index.js.map +1 -1
  197. package/dist/esm/styles/common.js +11 -11
  198. package/dist/esm/styles/common.js.map +1 -1
  199. package/dist/esm/types/ChatHook.d.ts +81 -0
  200. package/dist/esm/types/ChatHook.js +2 -0
  201. package/dist/esm/types/ChatHook.js.map +1 -0
  202. package/dist/esm/types/XAdkChatbot.d.ts +80 -15
  203. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  204. package/dist/esm/types/XAdkProvider.d.ts +10 -27
  205. package/dist/esm/types/XAdkProvider.js.map +1 -1
  206. package/dist/esm/types/XAdkSender.d.ts +18 -0
  207. package/dist/esm/types/XAdkSender.js.map +1 -1
  208. package/dist/esm/types/XAiConversations.d.ts +4 -2
  209. package/dist/esm/types/XAiConversations.js.map +1 -1
  210. package/dist/esm/types/XAiThoughtChain.d.ts +1 -1
  211. package/dist/esm/types/XAiThoughtChain.js.map +1 -1
  212. package/dist/esm/utils/index.d.ts +1 -0
  213. package/dist/esm/utils/index.js +3 -0
  214. package/dist/esm/utils/index.js.map +1 -1
  215. package/dist/esm/utils/parseAgentMessage.d.ts +81 -0
  216. package/dist/esm/utils/parseAgentMessage.js +286 -0
  217. package/dist/esm/utils/parseAgentMessage.js.map +1 -0
  218. package/dist/esm/utils/umdEntry.d.ts +91 -0
  219. package/dist/esm/utils/umdEntry.js +154 -16
  220. package/dist/esm/utils/umdEntry.js.map +1 -1
  221. package/dist/umd/chat-sdk.min.css +1 -1
  222. package/dist/umd/chat-sdk.min.js +1 -1
  223. package/package.json +20 -11
  224. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
  225. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -177
  226. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -7
  227. package/dist/cjs/components/XAdkWebProvider/index.d.ts +0 -4
  228. package/dist/cjs/components/XAdkWebProvider/index.js +0 -372
  229. package/dist/cjs/components/XAdkWebProvider/index.js.map +0 -7
  230. package/dist/cjs/components/XAdkWebProvider/styles.js.map +0 -7
  231. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
  232. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -163
  233. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -1
  234. package/dist/esm/components/XAdkWebProvider/index.d.ts +0 -4
  235. package/dist/esm/components/XAdkWebProvider/index.js +0 -480
  236. package/dist/esm/components/XAdkWebProvider/index.js.map +0 -1
  237. package/dist/esm/components/XAdkWebProvider/styles.js.map +0 -1
  238. /package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
  239. /package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
@@ -0,0 +1,180 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/utils/parseAgentMessage.ts
20
+ var parseAgentMessage_exports = {};
21
+ __export(parseAgentMessage_exports, {
22
+ cleanProcessText: () => cleanProcessText,
23
+ getPlainText: () => getPlainText,
24
+ hasProcessContent: () => hasProcessContent,
25
+ parseAgentMessage: () => parseAgentMessage
26
+ });
27
+ module.exports = __toCommonJS(parseAgentMessage_exports);
28
+ function cleanProcessText(text) {
29
+ return text.replace(/```json\s*/g, "").replace(/```\s*/g, "").replace(/^\n+/, "").replace(/\n+$/, "").trim();
30
+ }
31
+ function parseXmlMode(text) {
32
+ const parts = [];
33
+ const tagPatterns = [
34
+ { regex: /<reasoning>([\s\S]*?)<\/reasoning>/g, type: "reasoning" },
35
+ { regex: /<planning>([\s\S]*?)<\/planning>/g, type: "planning" },
36
+ { regex: /<replanning>([\s\S]*?)<\/replanning>/g, type: "replanning" },
37
+ { regex: /<action_log>([\s\S]*?)<\/action_log>/g, type: "action_log" }
38
+ ];
39
+ const matches = [];
40
+ tagPatterns.forEach(({ regex, type }) => {
41
+ let match;
42
+ const tempRegex = new RegExp(regex);
43
+ while ((match = tempRegex.exec(text)) !== null) {
44
+ matches.push({
45
+ type,
46
+ start: match.index,
47
+ end: match.index + match[0].length,
48
+ content: match[1].trim()
49
+ });
50
+ }
51
+ });
52
+ matches.sort((a, b) => a.start - b.start);
53
+ let currentPos = 0;
54
+ matches.forEach((match) => {
55
+ if (match.start > currentPos) {
56
+ const textBefore = text.substring(currentPos, match.start).trim();
57
+ if (textBefore) {
58
+ parts.push({ type: "text", content: textBefore });
59
+ }
60
+ }
61
+ parts.push({ type: match.type, content: match.content });
62
+ currentPos = match.end;
63
+ });
64
+ if (currentPos < text.length) {
65
+ const textAfter = text.substring(currentPos).trim();
66
+ if (textAfter) {
67
+ parts.push({ type: "text", content: textAfter });
68
+ }
69
+ }
70
+ return parts;
71
+ }
72
+ function parseCommentMode(text, finalMarker = "/*FINAL_ANSWER*/") {
73
+ if (!text.includes("/*")) {
74
+ return [{ type: "final_result", content: text }];
75
+ }
76
+ const results = [];
77
+ const finalIndex = text.indexOf(finalMarker);
78
+ let processText = text;
79
+ let finalText = "";
80
+ if (finalIndex !== -1) {
81
+ processText = text.substring(0, finalIndex);
82
+ finalText = text.substring(finalIndex + finalMarker.length);
83
+ }
84
+ const regex = /(\/\*PLANNING\*\/|\/\*REPLANNING\*\/|\/\*REASONING\*\/|\/\*ACTION\*\/)/g;
85
+ const parts = processText.split(regex);
86
+ let currentType = "process_text";
87
+ parts.forEach((part) => {
88
+ if (part === "/*PLANNING*/") {
89
+ currentType = "planning";
90
+ return;
91
+ }
92
+ if (part === "/*REPLANNING*/") {
93
+ currentType = "replanning";
94
+ return;
95
+ }
96
+ if (part === "/*REASONING*/") {
97
+ currentType = "reasoning";
98
+ return;
99
+ }
100
+ if (part === "/*ACTION*/") {
101
+ currentType = "action_log";
102
+ return;
103
+ }
104
+ if (part && part.trim().length > 0) {
105
+ results.push({ type: currentType, content: part });
106
+ }
107
+ });
108
+ if (finalText.trim()) {
109
+ results.push({ type: "final_result", content: finalText });
110
+ }
111
+ return results;
112
+ }
113
+ function parseCustomMode(text, patterns) {
114
+ const parts = [];
115
+ const matches = [];
116
+ patterns.forEach(({ regex, type }) => {
117
+ var _a;
118
+ let match;
119
+ const tempRegex = new RegExp(regex);
120
+ while ((match = tempRegex.exec(text)) !== null) {
121
+ matches.push({
122
+ type,
123
+ start: match.index,
124
+ end: match.index + match[0].length,
125
+ content: ((_a = match[1]) == null ? void 0 : _a.trim()) || match[0]
126
+ });
127
+ }
128
+ });
129
+ matches.sort((a, b) => a.start - b.start);
130
+ let currentPos = 0;
131
+ matches.forEach((match) => {
132
+ if (match.start > currentPos) {
133
+ const textBefore = text.substring(currentPos, match.start).trim();
134
+ if (textBefore) {
135
+ parts.push({ type: "text", content: textBefore });
136
+ }
137
+ }
138
+ parts.push({ type: match.type, content: match.content });
139
+ currentPos = match.end;
140
+ });
141
+ if (currentPos < text.length) {
142
+ const textAfter = text.substring(currentPos).trim();
143
+ if (textAfter) {
144
+ parts.push({ type: "text", content: textAfter });
145
+ }
146
+ }
147
+ return parts;
148
+ }
149
+ function parseAgentMessage(text, options = {}) {
150
+ if (!text)
151
+ return [];
152
+ const { mode = "xml", customPatterns, finalMarker } = options;
153
+ if (mode === "comment") {
154
+ return parseCommentMode(text, finalMarker);
155
+ }
156
+ if (mode === "custom" && customPatterns) {
157
+ return parseCustomMode(text, customPatterns);
158
+ }
159
+ const parts = parseXmlMode(text);
160
+ if (parts.length === 0) {
161
+ return [{ type: "text", content: text }];
162
+ }
163
+ return parts;
164
+ }
165
+ function hasProcessContent(parts) {
166
+ return parts.some(
167
+ (part) => ["planning", "replanning", "reasoning", "action_log", "process_text"].includes(part.type)
168
+ );
169
+ }
170
+ function getPlainText(parts) {
171
+ return parts.filter((part) => part.type === "text" || part.type === "final_result").map((part) => part.content).join("\n\n").trim();
172
+ }
173
+ // Annotate the CommonJS export names for ESM import in node:
174
+ 0 && (module.exports = {
175
+ cleanProcessText,
176
+ getPlainText,
177
+ hasProcessContent,
178
+ parseAgentMessage
179
+ });
180
+ //# sourceMappingURL=parseAgentMessage.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/parseAgentMessage.ts"],
4
+ "sourcesContent": ["/**\n * 解析后的消息片段类型\n */\nexport interface ParsedPart {\n type: 'text' | 'planning' | 'replanning' | 'reasoning' | 'action_log' | 'final_result' | 'process_text';\n content: string;\n}\n\n/**\n * 解析规则配置\n */\nexport interface ParseAgentMessageOptions {\n /**\n * 解析模式\n * - 'xml': XML 标签模式 <reasoning>...</reasoning>\n * - 'comment': 注释标签模式 /*REASONING*\\/\n * - 'custom': 自定义正则模式\n */\n mode?: 'xml' | 'comment' | 'custom';\n\n /**\n * 自定义正则规则 (mode='custom' 时使用)\n * @example\n * [\n * { regex: /\\[REASONING\\]([\\s\\S]*?)\\[\\/REASONING\\]/g, type: 'reasoning' },\n * { regex: /\\[PLANNING\\]([\\s\\S]*?)\\[\\/PLANNING\\]/g, type: 'planning' }\n * ]\n */\n customPatterns?: Array<{\n regex: RegExp;\n type: ParsedPart['type'];\n }>;\n\n /**\n * 最终答案标记 (comment 模式使用)\n * @default '/*FINAL_ANSWER*\\/'\n */\n finalMarker?: string;\n}\n\n/**\n * 清理 process 文本\n * - 移除多余的换行\n * - 移除 JSON 代码块标记\n */\nexport function cleanProcessText(text: string): string {\n return text\n .replace(/```json\\s*/g, '')\n .replace(/```\\s*/g, '')\n .replace(/^\\n+/, '')\n .replace(/\\n+$/, '')\n .trim();\n}\n\n/**\n * XML 模式解析 (默认)\n * 识别标签: <reasoning>、<planning>、<replanning>、<action_log>\n */\nfunction parseXmlMode(text: string): ParsedPart[] {\n const parts: ParsedPart[] = [];\n\n // 定义标签模式\n const tagPatterns: Array<{\n regex: RegExp;\n type: ParsedPart['type'];\n }> = [\n { regex: /<reasoning>([\\s\\S]*?)<\\/reasoning>/g, type: 'reasoning' },\n { regex: /<planning>([\\s\\S]*?)<\\/planning>/g, type: 'planning' },\n { regex: /<replanning>([\\s\\S]*?)<\\/replanning>/g, type: 'replanning' },\n { regex: /<action_log>([\\s\\S]*?)<\\/action_log>/g, type: 'action_log' },\n ];\n\n // 收集所有标签位置\n interface TagMatch {\n type: ParsedPart['type'];\n start: number;\n end: number;\n content: string;\n }\n\n const matches: TagMatch[] = [];\n\n tagPatterns.forEach(({ regex, type }) => {\n let match;\n const tempRegex = new RegExp(regex);\n while ((match = tempRegex.exec(text)) !== null) {\n matches.push({\n type,\n start: match.index,\n end: match.index + match[0].length,\n content: match[1].trim(),\n });\n }\n });\n\n // 按位置排序\n matches.sort((a, b) => a.start - b.start);\n\n // 提取文本和标签\n let currentPos = 0;\n\n matches.forEach((match) => {\n // 添加标签前的文本\n if (match.start > currentPos) {\n const textBefore = text.substring(currentPos, match.start).trim();\n if (textBefore) {\n parts.push({ type: 'text', content: textBefore });\n }\n }\n\n // 添加标签内容\n parts.push({ type: match.type, content: match.content });\n\n currentPos = match.end;\n });\n\n // 添加最后的文本\n if (currentPos < text.length) {\n const textAfter = text.substring(currentPos).trim();\n if (textAfter) {\n parts.push({ type: 'text', content: textAfter });\n }\n }\n\n return parts;\n}\n\n/**\n * 注释模式解析 (/*PLANNING*\\/ 格式)\n * 适用于业务项目的格式\n */\nfunction parseCommentMode(text: string, finalMarker: string = '/*FINAL_ANSWER*/'): ParsedPart[] {\n // 如果完全没有 Agent 推理标记,则整段文本视为最终结果\n if (!text.includes('/*')) {\n return [{ type: 'final_result', content: text }];\n }\n\n const results: ParsedPart[] = [];\n const finalIndex = text.indexOf(finalMarker);\n\n let processText = text;\n let finalText = '';\n\n if (finalIndex !== -1) {\n processText = text.substring(0, finalIndex);\n finalText = text.substring(finalIndex + finalMarker.length);\n }\n\n const regex = /(\\/\\*PLANNING\\*\\/|\\/\\*REPLANNING\\*\\/|\\/\\*REASONING\\*\\/|\\/\\*ACTION\\*\\/)/g;\n const parts = processText.split(regex);\n\n let currentType: ParsedPart['type'] = 'process_text';\n\n parts.forEach((part) => {\n if (part === '/*PLANNING*/') {\n currentType = 'planning';\n return;\n }\n if (part === '/*REPLANNING*/') {\n currentType = 'replanning';\n return;\n }\n if (part === '/*REASONING*/') {\n currentType = 'reasoning';\n return;\n }\n if (part === '/*ACTION*/') {\n currentType = 'action_log';\n return;\n }\n\n if (part && part.trim().length > 0) {\n results.push({ type: currentType, content: part });\n }\n });\n\n if (finalText.trim()) {\n results.push({ type: 'final_result', content: finalText });\n }\n\n return results;\n}\n\n/**\n * 自定义模式解析\n */\nfunction parseCustomMode(text: string, patterns: Array<{ regex: RegExp; type: ParsedPart['type'] }>): ParsedPart[] {\n const parts: ParsedPart[] = [];\n const matches: Array<{ type: ParsedPart['type']; start: number; end: number; content: string }> = [];\n\n patterns.forEach(({ regex, type }) => {\n let match;\n const tempRegex = new RegExp(regex);\n while ((match = tempRegex.exec(text)) !== null) {\n matches.push({\n type,\n start: match.index,\n end: match.index + match[0].length,\n content: match[1]?.trim() || match[0],\n });\n }\n });\n\n matches.sort((a, b) => a.start - b.start);\n\n let currentPos = 0;\n matches.forEach((match) => {\n if (match.start > currentPos) {\n const textBefore = text.substring(currentPos, match.start).trim();\n if (textBefore) {\n parts.push({ type: 'text', content: textBefore });\n }\n }\n parts.push({ type: match.type, content: match.content });\n currentPos = match.end;\n });\n\n if (currentPos < text.length) {\n const textAfter = text.substring(currentPos).trim();\n if (textAfter) {\n parts.push({ type: 'text', content: textAfter });\n }\n }\n\n return parts;\n}\n\n/**\n * 解析 Agent 消息 (支持多种格式)\n *\n * @param text 原始消息文本\n * @param options 解析选项\n * @returns 解析后的消息片段数组\n *\n * @example\n * // XML 模式 (默认)\n * const parts1 = parseAgentMessage(`\n * <reasoning>分析用户需求...</reasoning>\n * 最终回复内容\n * `);\n *\n * @example\n * // 注释模式 (业务项目格式)\n * const parts2 = parseAgentMessage(`\n * /*REASONING*\\/分析用户需求...\n * /*FINAL_ANSWER*\\/最终回复内容\n * `, { mode: 'comment' });\n *\n * @example\n * // 自定义模式\n * const parts3 = parseAgentMessage(text, {\n * mode: 'custom',\n * customPatterns: [\n * { regex: /\\[REASONING\\]([\\s\\S]*?)\\[\\/REASONING\\]/g, type: 'reasoning' }\n * ]\n * });\n */\nexport function parseAgentMessage(text: string, options: ParseAgentMessageOptions = {}): ParsedPart[] {\n if (!text) return [];\n\n const { mode = 'xml', customPatterns, finalMarker } = options;\n\n // 根据模式选择解析器\n if (mode === 'comment') {\n return parseCommentMode(text, finalMarker);\n }\n\n if (mode === 'custom' && customPatterns) {\n return parseCustomMode(text, customPatterns);\n }\n\n // 默认 XML 模式\n const parts = parseXmlMode(text);\n\n // 如果没有任何标签,返回整个文本\n if (parts.length === 0) {\n return [{ type: 'text', content: text }];\n }\n\n return parts;\n}\n\n/**\n * 检查是否包含 process 内容\n */\nexport function hasProcessContent(parts: ParsedPart[]): boolean {\n return parts.some((part) =>\n ['planning', 'replanning', 'reasoning', 'action_log', 'process_text'].includes(part.type)\n );\n}\n\n/**\n * 获取纯文本内容(不包含 process 标签)\n */\nexport function getPlainText(parts: ParsedPart[]): string {\n return parts\n .filter((part) => part.type === 'text' || part.type === 'final_result')\n .map((part) => part.content)\n .join('\\n\\n')\n .trim();\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,6 +1,28 @@
1
1
  /// <reference types="react" />
2
2
  import { XAdkSDKProps, XAdkProviderHandle, IMessage } from "../types";
3
3
  import { SendContent } from "../types";
4
+ /**
5
+ * XAiWebSDK - UMD 入口类
6
+ *
7
+ * 用于通过 <script> 标签引入 SDK 的场景
8
+ *
9
+ * @example
10
+ * ```html
11
+ * <script src="chat-sdk.min.js"></script>
12
+ * <script>
13
+ * const sdk = XAiWebSDK.initChatbot({
14
+ * url: 'https://api.example.com',
15
+ * token: 'your-token',
16
+ * config: {
17
+ * appNo: 'your-app-no',
18
+ * session: {
19
+ * showSessionList: true
20
+ * }
21
+ * }
22
+ * });
23
+ * </script>
24
+ * ```
25
+ */
4
26
  declare class XAiWebSDK {
5
27
  container: HTMLElement;
6
28
  props: XAdkSDKProps;
@@ -12,14 +34,83 @@ declare class XAiWebSDK {
12
34
  constructor(container: HTMLElement, props: XAdkSDKProps);
13
35
  mount(): void;
14
36
  unmount(): void;
37
+ /**
38
+ * 初始化聊天机器人(推荐方式)
39
+ *
40
+ * @param props - SDK 配置参数
41
+ * @returns XAiWebSDK 实例
42
+ *
43
+ * @example
44
+ * ```javascript
45
+ * const sdk = XAiWebSDK.initChatbot({
46
+ * url: 'https://api.example.com',
47
+ * token: 'your-token',
48
+ * config: {
49
+ * appNo: 'your-app-no',
50
+ * session: {
51
+ * showSessionList: true // 显示会话列表
52
+ * },
53
+ * allowUpload: true, // 允许文件上传
54
+ * chatProps: {
55
+ * clearBtnShow: false // 隐藏清空按钮
56
+ * }
57
+ * },
58
+ * componentProps: {
59
+ * id: 'my-chatbot', // 容器 ID
60
+ * width: '100%',
61
+ * height: '600px'
62
+ * }
63
+ * });
64
+ * ```
65
+ */
15
66
  static initChatbot(props: XAdkSDKProps): XAiWebSDK;
67
+ /**
68
+ * 兼容旧版本的静态方法
69
+ * @deprecated 使用 initChatbot 替代
70
+ */
16
71
  static create(props: XAdkSDKProps): XAiWebSDK;
72
+ /**
73
+ * 获取当前数据
74
+ * @returns 应用信息、消息列表、会话列表
75
+ */
17
76
  getData(): {
18
77
  appInfo: any;
19
78
  messages: IMessage[] | undefined;
20
79
  sessions: any[] | undefined;
21
80
  };
81
+ /**
82
+ * 发送消息
83
+ * @param content - 消息内容
84
+ *
85
+ * @example
86
+ * ```javascript
87
+ * sdk.chat({ text: 'Hello!' });
88
+ * ```
89
+ */
22
90
  chat(content: SendContent): void;
91
+ /**
92
+ * 停止当前消息生成
93
+ */
23
94
  stop(): void;
95
+ /**
96
+ * 清空当前会话
97
+ */
98
+ clear(): void;
99
+ /**
100
+ * 删除指定会话
101
+ * @param sessionId - 会话 ID
102
+ */
103
+ deleteSession(sessionId: string): void;
104
+ /**
105
+ * 更新会话标题
106
+ * @param sessionId - 会话 ID
107
+ * @param title - 新标题
108
+ */
109
+ updateSession(sessionId: string, title: string): void;
110
+ /**
111
+ * 切换到指定会话
112
+ * @param sessionId - 会话 ID
113
+ */
114
+ switchSession(sessionId: string): void;
24
115
  }
25
116
  export default XAiWebSDK;
@@ -34,7 +34,7 @@ __export(umdEntry_exports, {
34
34
  module.exports = __toCommonJS(umdEntry_exports);
35
35
  var import_react = require("react");
36
36
  var import_client = __toESM(require("react-dom/client"));
37
- var import_XAdkWebProvider = __toESM(require("../components/XAdkWebProvider"));
37
+ var import_XAdkProvider = __toESM(require("../components/XAdkProvider"));
38
38
  var import_jsx_runtime = require("react/jsx-runtime");
39
39
  var XAiWebSDK = class {
40
40
  constructor(container, props) {
@@ -47,14 +47,35 @@ var XAiWebSDK = class {
47
47
  this.mount();
48
48
  }
49
49
  mount() {
50
+ var _a, _b;
51
+ const { config = {} } = this.props;
52
+ const showSessionList = ((_a = config.session) == null ? void 0 : _a.showSessionList) ?? false;
53
+ const allowUpload = config.allowUpload ?? false;
54
+ const clearBtnShow = ((_b = config.chatProps) == null ? void 0 : _b.clearBtnShow) ?? true;
50
55
  if (import_client.default.createRoot) {
51
56
  this.root = import_client.default.createRoot(this.container);
52
57
  this.root.render(
53
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAdkWebProvider.default, { ref: this.providerRef, ...this.props }) })
58
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAdkProvider.default, { ref: this.providerRef, ...this.props, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
59
+ import_XAdkProvider.default.DefaultLayout,
60
+ {
61
+ showSessionList,
62
+ allowUpload,
63
+ clearBtnShow,
64
+ showFnCallDetail: true
65
+ }
66
+ ) }) })
54
67
  );
55
68
  } else {
56
69
  import_client.default.render(
57
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAdkWebProvider.default, { ref: this.providerRef, ...this.props }) }),
70
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAdkProvider.default, { ref: this.providerRef, ...this.props, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
71
+ import_XAdkProvider.default.DefaultLayout,
72
+ {
73
+ showSessionList,
74
+ allowUpload,
75
+ clearBtnShow,
76
+ showFnCallDetail: true
77
+ }
78
+ ) }) }),
58
79
  this.container
59
80
  );
60
81
  }
@@ -64,12 +85,42 @@ var XAiWebSDK = class {
64
85
  this.root.unmount();
65
86
  }
66
87
  }
67
- // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()
88
+ /**
89
+ * 初始化聊天机器人(推荐方式)
90
+ *
91
+ * @param props - SDK 配置参数
92
+ * @returns XAiWebSDK 实例
93
+ *
94
+ * @example
95
+ * ```javascript
96
+ * const sdk = XAiWebSDK.initChatbot({
97
+ * url: 'https://api.example.com',
98
+ * token: 'your-token',
99
+ * config: {
100
+ * appNo: 'your-app-no',
101
+ * session: {
102
+ * showSessionList: true // 显示会话列表
103
+ * },
104
+ * allowUpload: true, // 允许文件上传
105
+ * chatProps: {
106
+ * clearBtnShow: false // 隐藏清空按钮
107
+ * }
108
+ * },
109
+ * componentProps: {
110
+ * id: 'my-chatbot', // 容器 ID
111
+ * width: '100%',
112
+ * height: '600px'
113
+ * }
114
+ * });
115
+ * ```
116
+ */
68
117
  static initChatbot(props) {
69
118
  var _a;
70
119
  let container;
71
120
  if ((_a = props.componentProps) == null ? void 0 : _a.id) {
72
- const existingContainer = document.getElementById(props.componentProps.id);
121
+ const existingContainer = document.getElementById(
122
+ props.componentProps.id
123
+ );
73
124
  if (existingContainer) {
74
125
  container = existingContainer;
75
126
  } else {
@@ -89,11 +140,18 @@ var XAiWebSDK = class {
89
140
  }
90
141
  return new XAiWebSDK(container, props);
91
142
  }
92
- // 兼容旧版本的静态方法
143
+ /**
144
+ * 兼容旧版本的静态方法
145
+ * @deprecated 使用 initChatbot 替代
146
+ */
93
147
  static create(props) {
94
148
  return this.initChatbot(props);
95
149
  }
96
150
  // ————对外暴露的方法————
151
+ /**
152
+ * 获取当前数据
153
+ * @returns 应用信息、消息列表、会话列表
154
+ */
97
155
  getData() {
98
156
  var _a, _b, _c;
99
157
  return {
@@ -102,14 +160,58 @@ var XAiWebSDK = class {
102
160
  sessions: (_c = this.providerRef.current) == null ? void 0 : _c.getSessions()
103
161
  };
104
162
  }
163
+ /**
164
+ * 发送消息
165
+ * @param content - 消息内容
166
+ *
167
+ * @example
168
+ * ```javascript
169
+ * sdk.chat({ text: 'Hello!' });
170
+ * ```
171
+ */
105
172
  chat(content) {
106
173
  var _a;
107
174
  (_a = this.providerRef.current) == null ? void 0 : _a.startChat(content);
108
175
  }
176
+ /**
177
+ * 停止当前消息生成
178
+ */
109
179
  stop() {
110
180
  var _a;
111
181
  (_a = this.providerRef.current) == null ? void 0 : _a.stopChat();
112
182
  }
183
+ /**
184
+ * 清空当前会话
185
+ */
186
+ clear() {
187
+ var _a;
188
+ (_a = this.providerRef.current) == null ? void 0 : _a.clearChat();
189
+ }
190
+ /**
191
+ * 删除指定会话
192
+ * @param sessionId - 会话 ID
193
+ */
194
+ deleteSession(sessionId) {
195
+ var _a;
196
+ (_a = this.providerRef.current) == null ? void 0 : _a.deleteSession(sessionId);
197
+ }
198
+ /**
199
+ * 更新会话标题
200
+ * @param sessionId - 会话 ID
201
+ * @param title - 新标题
202
+ */
203
+ updateSession(sessionId, title) {
204
+ var _a;
205
+ (_a = this.providerRef.current) == null ? void 0 : _a.updateSession(sessionId, title);
206
+ }
207
+ /**
208
+ * 切换到指定会话
209
+ * @param sessionId - 会话 ID
210
+ */
211
+ switchSession(sessionId) {
212
+ var _a;
213
+ (_a = this.providerRef.current) == null ? void 0 : _a.setCurrentSessionDetail(sessionId);
214
+ }
113
215
  };
114
216
  window.XAiWebSDK = XAiWebSDK;
115
217
  var umdEntry_default = XAiWebSDK;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/umdEntry.tsx"],
4
- "sourcesContent": ["import { createRef } from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAdkSDKProps, XAdkProviderHandle, IMessage } from '@/types';\nimport XAdkWebProvider from '@/components/XAdkWebProvider';\nimport { SendContent } from '@/types';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAdkSDKProps;\n\n root: any;\n\n providerRef = createRef<XAdkProviderHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n onMessage?: (content: string, data: IMessage) => void;\n\n constructor(container: HTMLElement, props: XAdkSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAdkWebProvider ref={this.providerRef} {...this.props} />\n </div>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAdkWebProvider ref={this.providerRef} {...this.props} />\n </div>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()\n static initChatbot(props: XAdkSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(props.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n // 兼容旧版本的静态方法\n static create(props: XAdkSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n sessions: this.providerRef.current?.getSessions(),\n };\n }\n\n chat(content: SendContent) {\n this.providerRef.current?.startChat(content);\n }\n\n stop() {\n this.providerRef.current?.stopChat();\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAC1B,oBAAqB;AAErB,6BAA4B;AAgClB;AA7BV,IAAM,YAAN,MAAgB;AAAA,EAed,YAAY,WAAwB,OAAqB;AARzD,2BAAc,wBAA8B;AAS1C,SAAK,YAAY;AACjB,SAAK,QAAQ;AACb,SAAK,UAAU,MAAM;AACrB,SAAK,YAAY,MAAM;AACvB,SAAK,YAAY,MAAM;AACvB,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,QAAQ;AACN,QAAI,cAAAA,QAAS,YAAY;AACvB,WAAK,OAAO,cAAAA,QAAS,WAAW,KAAK,SAAS;AAC9C,WAAK,KAAK;AAAA,QACR,4CAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO,GAC1C,sDAAC,uBAAAC,SAAA,EAAgB,KAAK,KAAK,aAAc,GAAG,KAAK,OAAO,GAC1D;AAAA,MACF;AAAA,IACF,OAAO;AAEL,oBAAAD,QAAS;AAAA,QACP,4CAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO,GAC1C,sDAAC,uBAAAC,SAAA,EAAgB,KAAK,KAAK,aAAc,GAAG,KAAK,OAAO,GAC1D;AAAA,QACA,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EAEA,UAAU;AACR,QAAI,KAAK,QAAQ,KAAK,KAAK,SAAS;AAClC,WAAK,KAAK,QAAQ;AAAA,IACpB;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,YAAY,OAAgC;AAxDrD;AAyDI,QAAI;AAGJ,SAAI,WAAM,mBAAN,mBAAsB,IAAI;AAC5B,YAAM,oBAAoB,SAAS,eAAe,MAAM,eAAe,EAAE;AACzE,UAAI,mBAAmB;AACrB,oBAAY;AAAA,MACd,OAAO;AAEL,oBAAY,SAAS,cAAc,KAAK;AACxC,kBAAU,KAAK,MAAM,eAAe;AAAA,MACtC;AAAA,IACF,OAAO;AAEL,kBAAY,SAAS,cAAc,KAAK;AACxC,gBAAU,KAAK;AAAA,IACjB;AAGA,QAAI,MAAM,gBAAgB;AACxB,YAAM,EAAE,IAAI,GAAG,WAAW,IAAI,MAAM;AACpC,aAAO,OAAO,UAAU,OAAO,UAAU;AAAA,IAC3C;AAGA,QAAI,CAAC,UAAU,YAAY;AACzB,eAAS,KAAK,YAAY,SAAS;AAAA,IACrC;AAEA,WAAO,IAAI,UAAU,WAAW,KAAK;AAAA,EACvC;AAAA;AAAA,EAGA,OAAO,OAAO,OAAgC;AAC5C,WAAO,KAAK,YAAY,KAAK;AAAA,EAC/B;AAAA;AAAA,EAGA,UAAU;AA/FZ;AAgGI,WAAO;AAAA,MACL,UAAS,UAAK,YAAY,YAAjB,mBAA0B;AAAA,MACnC,WAAU,UAAK,YAAY,YAAjB,mBAA0B;AAAA,MACpC,WAAU,UAAK,YAAY,YAAjB,mBAA0B;AAAA,IACtC;AAAA,EACF;AAAA,EAEA,KAAK,SAAsB;AAvG7B;AAwGI,eAAK,YAAY,YAAjB,mBAA0B,UAAU;AAAA,EACtC;AAAA,EAEA,OAAO;AA3GT;AA4GI,eAAK,YAAY,YAAjB,mBAA0B;AAAA,EAC5B;AACF;AAIA,OAAO,YAAY;AAGnB,IAAO,mBAAQ;",
6
- "names": ["ReactDOM", "XAdkWebProvider"]
4
+ "sourcesContent": ["import { createRef } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { XAdkSDKProps, XAdkProviderHandle, IMessage } from \"@/types\";\nimport XAdkProvider from \"@/components/XAdkProvider\";\nimport { SendContent } from \"@/types\";\n\n/**\n * XAiWebSDK - UMD 入口类\n *\n * 用于通过 <script> 标签引入 SDK 的场景\n *\n * @example\n * ```html\n * <script src=\"chat-sdk.min.js\"></script>\n * <script>\n * const sdk = XAiWebSDK.initChatbot({\n * url: 'https://api.example.com',\n * token: 'your-token',\n * config: {\n * appNo: 'your-app-no',\n * session: {\n * showSessionList: true\n * }\n * }\n * });\n * </script>\n * ```\n */\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAdkSDKProps;\n\n root: any;\n\n providerRef = createRef<XAdkProviderHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (content: string, data: IMessage) => void;\n\n constructor(container: HTMLElement, props: XAdkSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n // 提取配置\n const { config = {} } = this.props;\n const showSessionList = config.session?.showSessionList ?? false;\n const allowUpload = config.allowUpload ?? false;\n const clearBtnShow = config.chatProps?.clearBtnShow ?? true;\n\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <div style={{ width: \"100%\", height: \"100%\" }}>\n <XAdkProvider ref={this.providerRef} {...this.props}>\n {/* 使用 DefaultLayout 作为默认布局 */}\n <XAdkProvider.DefaultLayout\n showSessionList={showSessionList}\n allowUpload={allowUpload}\n clearBtnShow={clearBtnShow}\n showFnCallDetail={true}\n />\n </XAdkProvider>\n </div>,\n );\n } else {\n // 兼容 React 17\n // @ts-ignore\n ReactDOM.render(\n <div style={{ width: \"100%\", height: \"100%\" }}>\n <XAdkProvider ref={this.providerRef} {...this.props}>\n <XAdkProvider.DefaultLayout\n showSessionList={showSessionList}\n allowUpload={allowUpload}\n clearBtnShow={clearBtnShow}\n showFnCallDetail={true}\n />\n </XAdkProvider>\n </div>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n /**\n * 初始化聊天机器人(推荐方式)\n *\n * @param props - SDK 配置参数\n * @returns XAiWebSDK 实例\n *\n * @example\n * ```javascript\n * const sdk = XAiWebSDK.initChatbot({\n * url: 'https://api.example.com',\n * token: 'your-token',\n * config: {\n * appNo: 'your-app-no',\n * session: {\n * showSessionList: true // 显示会话列表\n * },\n * allowUpload: true, // 允许文件上传\n * chatProps: {\n * clearBtnShow: false // 隐藏清空按钮\n * }\n * },\n * componentProps: {\n * id: 'my-chatbot', // 容器 ID\n * width: '100%',\n * height: '600px'\n * }\n * });\n * ```\n */\n static initChatbot(props: XAdkSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(\n props.componentProps.id,\n );\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement(\"div\");\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement(\"div\");\n container.id = \"xai-chatbot-container\";\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n /**\n * 兼容旧版本的静态方法\n * @deprecated 使用 initChatbot 替代\n */\n static create(props: XAdkSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n\n /**\n * 获取当前数据\n * @returns 应用信息、消息列表、会话列表\n */\n getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n sessions: this.providerRef.current?.getSessions(),\n };\n }\n\n /**\n * 发送消息\n * @param content - 消息内容\n *\n * @example\n * ```javascript\n * sdk.chat({ text: 'Hello!' });\n * ```\n */\n chat(content: SendContent) {\n this.providerRef.current?.startChat(content);\n }\n\n /**\n * 停止当前消息生成\n */\n stop() {\n this.providerRef.current?.stopChat();\n }\n\n /**\n * 清空当前会话\n */\n clear() {\n this.providerRef.current?.clearChat();\n }\n\n /**\n * 删除指定会话\n * @param sessionId - 会话 ID\n */\n deleteSession(sessionId: string) {\n this.providerRef.current?.deleteSession(sessionId);\n }\n\n /**\n * 更新会话标题\n * @param sessionId - 会话 ID\n * @param title - 新标题\n */\n updateSession(sessionId: string, title: string) {\n this.providerRef.current?.updateSession(sessionId, title);\n }\n\n /**\n * 切换到指定会话\n * @param sessionId - 会话 ID\n */\n switchSession(sessionId: string) {\n this.providerRef.current?.setCurrentSessionDetail(sessionId);\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],
5
+ "mappings": "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",
6
+ "names": ["ReactDOM", "XAdkProvider"]
7
7
  }
@@ -1,6 +1,13 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import XAdkChatbot from '.';
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import XAdkChatbot from "./index";
3
3
  declare const meta: Meta<typeof XAdkChatbot>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof meta>;
6
6
  export declare const 基础用法: Story;
7
+ export declare const 开场白和建议: Story;
8
+ export declare const 流式输出: Story;
9
+ export declare const 自定义Footer: Story;
10
+ export declare const 函数调用: Story;
11
+ export declare const 思维链: Story;
12
+ export declare const 代码高亮: Story;
13
+ export declare const 多轮对话: Story;