@ai-group/chat-sdk 2.1.13 → 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 (277) 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/components/FunctionCallRender/index.d.ts +1 -1
  11. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +41 -5
  12. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +2 -2
  13. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +1 -0
  14. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +14 -3
  15. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +2 -2
  16. package/dist/cjs/components/XAdkChatbot/index.d.ts +11 -1
  17. package/dist/cjs/components/XAdkChatbot/index.js +294 -108
  18. package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
  19. package/dist/cjs/components/XAdkChatbot/styles.d.ts +10 -0
  20. package/dist/cjs/components/XAdkChatbot/styles.js +67 -3
  21. package/dist/cjs/components/XAdkChatbot/styles.js.map +2 -2
  22. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
  23. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +394 -0
  24. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +7 -0
  25. package/dist/cjs/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
  26. package/dist/cjs/components/XAdkProvider/compound/Chatbot.js +64 -0
  27. package/dist/cjs/components/XAdkProvider/compound/Chatbot.js.map +7 -0
  28. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
  29. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +199 -0
  30. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +7 -0
  31. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
  32. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js +117 -0
  33. package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js.map +7 -0
  34. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
  35. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js +64 -0
  36. package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js.map +7 -0
  37. package/dist/cjs/components/XAdkProvider/compound/Header.d.ts +25 -0
  38. package/dist/cjs/components/XAdkProvider/compound/Header.js +70 -0
  39. package/dist/cjs/components/XAdkProvider/compound/Header.js.map +7 -0
  40. package/dist/cjs/components/XAdkProvider/compound/Messages.d.ts +17 -0
  41. package/dist/cjs/components/XAdkProvider/compound/Messages.js +70 -0
  42. package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +7 -0
  43. package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +27 -0
  44. package/dist/cjs/components/XAdkProvider/compound/Sender.js +55 -0
  45. package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +7 -0
  46. package/dist/cjs/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
  47. package/dist/cjs/components/XAdkProvider/compound/Sidebar.js +151 -0
  48. package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +7 -0
  49. package/dist/cjs/components/XAdkProvider/compound/Welcome.d.ts +6 -0
  50. package/dist/cjs/components/XAdkProvider/compound/Welcome.js +60 -0
  51. package/dist/cjs/components/XAdkProvider/compound/Welcome.js.map +7 -0
  52. package/dist/cjs/components/XAdkProvider/compound/index.d.ts +17 -0
  53. package/dist/cjs/components/XAdkProvider/compound/index.js +55 -0
  54. package/dist/cjs/components/XAdkProvider/compound/index.js.map +7 -0
  55. package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +36 -0
  56. package/dist/cjs/components/XAdkProvider/compound/styles.js +49 -0
  57. package/dist/cjs/components/XAdkProvider/compound/styles.js.map +7 -0
  58. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
  59. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js +40 -0
  60. package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js.map +7 -0
  61. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
  62. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js +42 -0
  63. package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +7 -0
  64. package/dist/cjs/components/XAdkProvider/context/SessionContext.d.ts +29 -0
  65. package/dist/cjs/components/XAdkProvider/context/SessionContext.js +40 -0
  66. package/dist/cjs/components/XAdkProvider/context/SessionContext.js.map +7 -0
  67. package/dist/cjs/components/XAdkProvider/context/index.d.ts +7 -0
  68. package/dist/cjs/components/XAdkProvider/context/index.js +28 -0
  69. package/dist/cjs/components/XAdkProvider/context/index.js.map +7 -0
  70. package/dist/cjs/components/XAdkProvider/index.d.ts +55 -0
  71. package/dist/cjs/components/XAdkProvider/index.js +221 -0
  72. package/dist/cjs/components/XAdkProvider/index.js.map +7 -0
  73. package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -1
  74. package/dist/cjs/components/XAdkProvider/styles.js.map +7 -0
  75. package/dist/cjs/components/XAdkSender/FileGallery.d.ts +8 -0
  76. package/dist/cjs/components/XAdkSender/FileGallery.js +381 -0
  77. package/dist/cjs/components/XAdkSender/FileGallery.js.map +7 -0
  78. package/dist/cjs/components/XAdkSender/index.js +95 -81
  79. package/dist/cjs/components/XAdkSender/index.js.map +3 -3
  80. package/dist/cjs/components/XAdkSender/styles.d.ts +0 -9
  81. package/dist/cjs/components/XAdkSender/styles.js +21 -150
  82. package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
  83. package/dist/cjs/components/XAiConversations/index.js +1 -1
  84. package/dist/cjs/components/XAiConversations/index.js.map +2 -2
  85. package/dist/cjs/components/XAiConversations/styles.js +5 -0
  86. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  87. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +6 -0
  88. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js +180 -0
  89. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +7 -0
  90. package/dist/cjs/components/XAiThoughtChain/index.d.ts +4 -0
  91. package/dist/cjs/components/XAiThoughtChain/index.js +155 -0
  92. package/dist/cjs/components/XAiThoughtChain/index.js.map +7 -0
  93. package/dist/cjs/components/XAiThoughtChain/styles.d.ts +60 -0
  94. package/dist/cjs/components/XAiThoughtChain/styles.js +195 -0
  95. package/dist/cjs/components/XAiThoughtChain/styles.js.map +7 -0
  96. package/dist/cjs/hooks/useADKChat.d.ts +9 -3
  97. package/dist/cjs/hooks/useADKChat.js +246 -182
  98. package/dist/cjs/hooks/useADKChat.js.map +2 -2
  99. package/dist/cjs/index.d.ts +25 -9
  100. package/dist/cjs/index.js +37 -0
  101. package/dist/cjs/index.js.map +3 -3
  102. package/dist/cjs/styles/common.js +1 -1
  103. package/dist/cjs/styles/common.js.map +2 -2
  104. package/dist/cjs/types/ChatHook.d.ts +81 -0
  105. package/dist/cjs/types/ChatHook.js +18 -0
  106. package/dist/cjs/types/ChatHook.js.map +7 -0
  107. package/dist/cjs/types/XAdkChatbot.d.ts +80 -15
  108. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  109. package/dist/cjs/types/XAdkProvider.d.ts +10 -27
  110. package/dist/cjs/types/XAdkProvider.js.map +2 -2
  111. package/dist/cjs/types/XAdkSender.d.ts +18 -0
  112. package/dist/cjs/types/XAdkSender.js.map +1 -1
  113. package/dist/cjs/types/XAiConversations.d.ts +4 -2
  114. package/dist/cjs/types/XAiConversations.js.map +1 -1
  115. package/dist/cjs/types/XAiThoughtChain.d.ts +25 -0
  116. package/dist/cjs/types/XAiThoughtChain.js +18 -0
  117. package/dist/cjs/types/XAiThoughtChain.js.map +7 -0
  118. package/dist/cjs/types/index.d.ts +9 -8
  119. package/dist/cjs/types/index.js +2 -0
  120. package/dist/cjs/types/index.js.map +2 -2
  121. package/dist/cjs/utils/index.d.ts +2 -0
  122. package/dist/cjs/utils/index.js +11 -1
  123. package/dist/cjs/utils/index.js.map +2 -2
  124. package/dist/cjs/utils/parseAgentMessage.d.ts +81 -0
  125. package/dist/cjs/utils/parseAgentMessage.js +180 -0
  126. package/dist/cjs/utils/parseAgentMessage.js.map +7 -0
  127. package/dist/cjs/utils/umdEntry.d.ts +91 -0
  128. package/dist/cjs/utils/umdEntry.js +108 -6
  129. package/dist/cjs/utils/umdEntry.js.map +3 -3
  130. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +9 -2
  131. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +485 -8
  132. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +1 -1
  133. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.d.ts +12 -0
  134. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js +104 -0
  135. package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js.map +1 -0
  136. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.d.ts +44 -0
  137. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js +20 -0
  138. package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js.map +1 -0
  139. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +1 -1
  140. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +17 -15
  141. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -1
  142. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +1 -0
  143. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +7 -6
  144. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -1
  145. package/dist/esm/components/XAdkChatbot/index.d.ts +11 -1
  146. package/dist/esm/components/XAdkChatbot/index.js +392 -174
  147. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  148. package/dist/esm/components/XAdkChatbot/styles.d.ts +10 -0
  149. package/dist/esm/components/XAdkChatbot/styles.js +23 -12
  150. package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
  151. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
  152. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +338 -0
  153. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +1 -0
  154. package/dist/esm/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
  155. package/dist/esm/components/XAdkProvider/compound/Chatbot.js +47 -0
  156. package/dist/esm/components/XAdkProvider/compound/Chatbot.js.map +1 -0
  157. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
  158. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +142 -0
  159. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -0
  160. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
  161. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js +122 -0
  162. package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js.map +1 -0
  163. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
  164. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js +34 -0
  165. package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js.map +1 -0
  166. package/dist/esm/components/XAdkProvider/compound/Header.d.ts +25 -0
  167. package/dist/esm/components/XAdkProvider/compound/Header.js +79 -0
  168. package/dist/esm/components/XAdkProvider/compound/Header.js.map +1 -0
  169. package/dist/esm/components/XAdkProvider/compound/Messages.d.ts +17 -0
  170. package/dist/esm/components/XAdkProvider/compound/Messages.js +53 -0
  171. package/dist/esm/components/XAdkProvider/compound/Messages.js.map +1 -0
  172. package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +27 -0
  173. package/dist/esm/components/XAdkProvider/compound/Sender.js +41 -0
  174. package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -0
  175. package/dist/esm/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
  176. package/dist/esm/components/XAdkProvider/compound/Sidebar.js +142 -0
  177. package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +1 -0
  178. package/dist/esm/components/XAdkProvider/compound/Welcome.d.ts +6 -0
  179. package/dist/esm/components/XAdkProvider/compound/Welcome.js +36 -0
  180. package/dist/esm/components/XAdkProvider/compound/Welcome.js.map +1 -0
  181. package/dist/esm/components/XAdkProvider/compound/index.d.ts +17 -0
  182. package/dist/esm/components/XAdkProvider/compound/index.js +13 -0
  183. package/dist/esm/components/XAdkProvider/compound/index.js.map +1 -0
  184. package/dist/esm/components/XAdkProvider/compound/styles.d.ts +36 -0
  185. package/dist/esm/components/XAdkProvider/compound/styles.js +10 -0
  186. package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -0
  187. package/dist/esm/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
  188. package/dist/esm/components/XAdkProvider/context/ChatActionContext.js +23 -0
  189. package/dist/esm/components/XAdkProvider/context/ChatActionContext.js.map +1 -0
  190. package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
  191. package/dist/esm/components/XAdkProvider/context/ChatStateContext.js +23 -0
  192. package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +1 -0
  193. package/dist/esm/components/XAdkProvider/context/SessionContext.d.ts +29 -0
  194. package/dist/esm/components/XAdkProvider/context/SessionContext.js +22 -0
  195. package/dist/esm/components/XAdkProvider/context/SessionContext.js.map +1 -0
  196. package/dist/esm/components/XAdkProvider/context/index.d.ts +7 -0
  197. package/dist/esm/components/XAdkProvider/context/index.js +9 -0
  198. package/dist/esm/components/XAdkProvider/context/index.js.map +1 -0
  199. package/dist/esm/components/XAdkProvider/index.d.ts +55 -0
  200. package/dist/esm/components/XAdkProvider/index.js +220 -0
  201. package/dist/esm/components/XAdkProvider/index.js.map +1 -0
  202. package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -2
  203. package/dist/esm/components/XAdkProvider/styles.js.map +1 -0
  204. package/dist/esm/components/XAdkSender/FileGallery.d.ts +8 -0
  205. package/dist/esm/components/XAdkSender/FileGallery.js +236 -0
  206. package/dist/esm/components/XAdkSender/FileGallery.js.map +1 -0
  207. package/dist/esm/components/XAdkSender/index.js +92 -109
  208. package/dist/esm/components/XAdkSender/index.js.map +1 -1
  209. package/dist/esm/components/XAdkSender/styles.d.ts +0 -9
  210. package/dist/esm/components/XAdkSender/styles.js +14 -31
  211. package/dist/esm/components/XAdkSender/styles.js.map +1 -1
  212. package/dist/esm/components/XAiConversations/index.js +1 -1
  213. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  214. package/dist/esm/components/XAiConversations/styles.js +2 -2
  215. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  216. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +6 -0
  217. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js +159 -0
  218. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +1 -0
  219. package/dist/esm/components/XAiThoughtChain/index.d.ts +4 -0
  220. package/dist/esm/components/XAiThoughtChain/index.js +180 -0
  221. package/dist/esm/components/XAiThoughtChain/index.js.map +1 -0
  222. package/dist/esm/components/XAiThoughtChain/styles.d.ts +60 -0
  223. package/dist/esm/components/XAiThoughtChain/styles.js +40 -0
  224. package/dist/esm/components/XAiThoughtChain/styles.js.map +1 -0
  225. package/dist/esm/hooks/useADKChat.d.ts +9 -3
  226. package/dist/esm/hooks/useADKChat.js +75 -54
  227. package/dist/esm/hooks/useADKChat.js.map +1 -1
  228. package/dist/esm/index.d.ts +25 -9
  229. package/dist/esm/index.js +28 -2
  230. package/dist/esm/index.js.map +1 -1
  231. package/dist/esm/styles/common.js +11 -11
  232. package/dist/esm/styles/common.js.map +1 -1
  233. package/dist/esm/types/ChatHook.d.ts +81 -0
  234. package/dist/esm/types/ChatHook.js +2 -0
  235. package/dist/esm/types/ChatHook.js.map +1 -0
  236. package/dist/esm/types/XAdkChatbot.d.ts +80 -15
  237. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  238. package/dist/esm/types/XAdkProvider.d.ts +10 -27
  239. package/dist/esm/types/XAdkProvider.js.map +1 -1
  240. package/dist/esm/types/XAdkSender.d.ts +18 -0
  241. package/dist/esm/types/XAdkSender.js.map +1 -1
  242. package/dist/esm/types/XAiConversations.d.ts +4 -2
  243. package/dist/esm/types/XAiConversations.js.map +1 -1
  244. package/dist/esm/types/XAiThoughtChain.d.ts +25 -0
  245. package/dist/esm/types/XAiThoughtChain.js +2 -0
  246. package/dist/esm/types/XAiThoughtChain.js.map +1 -0
  247. package/dist/esm/types/index.d.ts +9 -8
  248. package/dist/esm/types/index.js +1 -0
  249. package/dist/esm/types/index.js.map +1 -1
  250. package/dist/esm/utils/index.d.ts +2 -0
  251. package/dist/esm/utils/index.js +7 -0
  252. package/dist/esm/utils/index.js.map +1 -1
  253. package/dist/esm/utils/parseAgentMessage.d.ts +81 -0
  254. package/dist/esm/utils/parseAgentMessage.js +286 -0
  255. package/dist/esm/utils/parseAgentMessage.js.map +1 -0
  256. package/dist/esm/utils/umdEntry.d.ts +91 -0
  257. package/dist/esm/utils/umdEntry.js +154 -16
  258. package/dist/esm/utils/umdEntry.js.map +1 -1
  259. package/dist/umd/chat-sdk.min.css +1 -1
  260. package/dist/umd/chat-sdk.min.js +1 -1
  261. package/package.json +20 -11
  262. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
  263. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -160
  264. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -7
  265. package/dist/cjs/components/XAdkWebProvider/index.d.ts +0 -4
  266. package/dist/cjs/components/XAdkWebProvider/index.js +0 -372
  267. package/dist/cjs/components/XAdkWebProvider/index.js.map +0 -7
  268. package/dist/cjs/components/XAdkWebProvider/styles.js.map +0 -7
  269. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
  270. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -158
  271. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -1
  272. package/dist/esm/components/XAdkWebProvider/index.d.ts +0 -4
  273. package/dist/esm/components/XAdkWebProvider/index.js +0 -480
  274. package/dist/esm/components/XAdkWebProvider/index.js.map +0 -1
  275. package/dist/esm/components/XAdkWebProvider/styles.js.map +0 -1
  276. /package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
  277. /package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
@@ -0,0 +1,286 @@
1
+ /**
2
+ * 解析后的消息片段类型
3
+ */
4
+
5
+ /**
6
+ * 解析规则配置
7
+ */
8
+
9
+ /**
10
+ * 清理 process 文本
11
+ * - 移除多余的换行
12
+ * - 移除 JSON 代码块标记
13
+ */
14
+ export function cleanProcessText(text) {
15
+ return text.replace(/```json\s*/g, '').replace(/```\s*/g, '').replace(/^\n+/, '').replace(/\n+$/, '').trim();
16
+ }
17
+
18
+ /**
19
+ * XML 模式解析 (默认)
20
+ * 识别标签: <reasoning>、<planning>、<replanning>、<action_log>
21
+ */
22
+ function parseXmlMode(text) {
23
+ var parts = [];
24
+
25
+ // 定义标签模式
26
+ var tagPatterns = [{
27
+ regex: /<reasoning>([\s\S]*?)<\/reasoning>/g,
28
+ type: 'reasoning'
29
+ }, {
30
+ regex: /<planning>([\s\S]*?)<\/planning>/g,
31
+ type: 'planning'
32
+ }, {
33
+ regex: /<replanning>([\s\S]*?)<\/replanning>/g,
34
+ type: 'replanning'
35
+ }, {
36
+ regex: /<action_log>([\s\S]*?)<\/action_log>/g,
37
+ type: 'action_log'
38
+ }];
39
+
40
+ // 收集所有标签位置
41
+
42
+ var matches = [];
43
+ tagPatterns.forEach(function (_ref) {
44
+ var regex = _ref.regex,
45
+ type = _ref.type;
46
+ var match;
47
+ var tempRegex = new RegExp(regex);
48
+ while ((match = tempRegex.exec(text)) !== null) {
49
+ matches.push({
50
+ type: type,
51
+ start: match.index,
52
+ end: match.index + match[0].length,
53
+ content: match[1].trim()
54
+ });
55
+ }
56
+ });
57
+
58
+ // 按位置排序
59
+ matches.sort(function (a, b) {
60
+ return a.start - b.start;
61
+ });
62
+
63
+ // 提取文本和标签
64
+ var currentPos = 0;
65
+ matches.forEach(function (match) {
66
+ // 添加标签前的文本
67
+ if (match.start > currentPos) {
68
+ var textBefore = text.substring(currentPos, match.start).trim();
69
+ if (textBefore) {
70
+ parts.push({
71
+ type: 'text',
72
+ content: textBefore
73
+ });
74
+ }
75
+ }
76
+
77
+ // 添加标签内容
78
+ parts.push({
79
+ type: match.type,
80
+ content: match.content
81
+ });
82
+ currentPos = match.end;
83
+ });
84
+
85
+ // 添加最后的文本
86
+ if (currentPos < text.length) {
87
+ var textAfter = text.substring(currentPos).trim();
88
+ if (textAfter) {
89
+ parts.push({
90
+ type: 'text',
91
+ content: textAfter
92
+ });
93
+ }
94
+ }
95
+ return parts;
96
+ }
97
+
98
+ /**
99
+ * 注释模式解析 (/*PLANNING*\/ 格式)
100
+ * 适用于业务项目的格式
101
+ */
102
+ function parseCommentMode(text) {
103
+ var finalMarker = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '/*FINAL_ANSWER*/';
104
+ // 如果完全没有 Agent 推理标记,则整段文本视为最终结果
105
+ if (!text.includes('/*')) {
106
+ return [{
107
+ type: 'final_result',
108
+ content: text
109
+ }];
110
+ }
111
+ var results = [];
112
+ var finalIndex = text.indexOf(finalMarker);
113
+ var processText = text;
114
+ var finalText = '';
115
+ if (finalIndex !== -1) {
116
+ processText = text.substring(0, finalIndex);
117
+ finalText = text.substring(finalIndex + finalMarker.length);
118
+ }
119
+ var regex = /(\/\*PLANNING\*\/|\/\*REPLANNING\*\/|\/\*REASONING\*\/|\/\*ACTION\*\/)/g;
120
+ var parts = processText.split(regex);
121
+ var currentType = 'process_text';
122
+ parts.forEach(function (part) {
123
+ if (part === '/*PLANNING*/') {
124
+ currentType = 'planning';
125
+ return;
126
+ }
127
+ if (part === '/*REPLANNING*/') {
128
+ currentType = 'replanning';
129
+ return;
130
+ }
131
+ if (part === '/*REASONING*/') {
132
+ currentType = 'reasoning';
133
+ return;
134
+ }
135
+ if (part === '/*ACTION*/') {
136
+ currentType = 'action_log';
137
+ return;
138
+ }
139
+ if (part && part.trim().length > 0) {
140
+ results.push({
141
+ type: currentType,
142
+ content: part
143
+ });
144
+ }
145
+ });
146
+ if (finalText.trim()) {
147
+ results.push({
148
+ type: 'final_result',
149
+ content: finalText
150
+ });
151
+ }
152
+ return results;
153
+ }
154
+
155
+ /**
156
+ * 自定义模式解析
157
+ */
158
+ function parseCustomMode(text, patterns) {
159
+ var parts = [];
160
+ var matches = [];
161
+ patterns.forEach(function (_ref2) {
162
+ var regex = _ref2.regex,
163
+ type = _ref2.type;
164
+ var match;
165
+ var tempRegex = new RegExp(regex);
166
+ while ((match = tempRegex.exec(text)) !== null) {
167
+ var _match$;
168
+ matches.push({
169
+ type: type,
170
+ start: match.index,
171
+ end: match.index + match[0].length,
172
+ content: ((_match$ = match[1]) === null || _match$ === void 0 ? void 0 : _match$.trim()) || match[0]
173
+ });
174
+ }
175
+ });
176
+ matches.sort(function (a, b) {
177
+ return a.start - b.start;
178
+ });
179
+ var currentPos = 0;
180
+ matches.forEach(function (match) {
181
+ if (match.start > currentPos) {
182
+ var textBefore = text.substring(currentPos, match.start).trim();
183
+ if (textBefore) {
184
+ parts.push({
185
+ type: 'text',
186
+ content: textBefore
187
+ });
188
+ }
189
+ }
190
+ parts.push({
191
+ type: match.type,
192
+ content: match.content
193
+ });
194
+ currentPos = match.end;
195
+ });
196
+ if (currentPos < text.length) {
197
+ var textAfter = text.substring(currentPos).trim();
198
+ if (textAfter) {
199
+ parts.push({
200
+ type: 'text',
201
+ content: textAfter
202
+ });
203
+ }
204
+ }
205
+ return parts;
206
+ }
207
+
208
+ /**
209
+ * 解析 Agent 消息 (支持多种格式)
210
+ *
211
+ * @param text 原始消息文本
212
+ * @param options 解析选项
213
+ * @returns 解析后的消息片段数组
214
+ *
215
+ * @example
216
+ * // XML 模式 (默认)
217
+ * const parts1 = parseAgentMessage(`
218
+ * <reasoning>分析用户需求...</reasoning>
219
+ * 最终回复内容
220
+ * `);
221
+ *
222
+ * @example
223
+ * // 注释模式 (业务项目格式)
224
+ * const parts2 = parseAgentMessage(`
225
+ * /*REASONING*\/分析用户需求...
226
+ * /*FINAL_ANSWER*\/最终回复内容
227
+ * `, { mode: 'comment' });
228
+ *
229
+ * @example
230
+ * // 自定义模式
231
+ * const parts3 = parseAgentMessage(text, {
232
+ * mode: 'custom',
233
+ * customPatterns: [
234
+ * { regex: /\[REASONING\]([\s\S]*?)\[\/REASONING\]/g, type: 'reasoning' }
235
+ * ]
236
+ * });
237
+ */
238
+ export function parseAgentMessage(text) {
239
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
240
+ if (!text) return [];
241
+ var _options$mode = options.mode,
242
+ mode = _options$mode === void 0 ? 'xml' : _options$mode,
243
+ customPatterns = options.customPatterns,
244
+ finalMarker = options.finalMarker;
245
+
246
+ // 根据模式选择解析器
247
+ if (mode === 'comment') {
248
+ return parseCommentMode(text, finalMarker);
249
+ }
250
+ if (mode === 'custom' && customPatterns) {
251
+ return parseCustomMode(text, customPatterns);
252
+ }
253
+
254
+ // 默认 XML 模式
255
+ var parts = parseXmlMode(text);
256
+
257
+ // 如果没有任何标签,返回整个文本
258
+ if (parts.length === 0) {
259
+ return [{
260
+ type: 'text',
261
+ content: text
262
+ }];
263
+ }
264
+ return parts;
265
+ }
266
+
267
+ /**
268
+ * 检查是否包含 process 内容
269
+ */
270
+ export function hasProcessContent(parts) {
271
+ return parts.some(function (part) {
272
+ return ['planning', 'replanning', 'reasoning', 'action_log', 'process_text'].includes(part.type);
273
+ });
274
+ }
275
+
276
+ /**
277
+ * 获取纯文本内容(不包含 process 标签)
278
+ */
279
+ export function getPlainText(parts) {
280
+ return parts.filter(function (part) {
281
+ return part.type === 'text' || part.type === 'final_result';
282
+ }).map(function (part) {
283
+ return part.content;
284
+ }).join('\n\n').trim();
285
+ }
286
+ //# sourceMappingURL=parseAgentMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cleanProcessText","text","replace","trim","parseXmlMode","parts","tagPatterns","regex","type","matches","forEach","_ref","match","tempRegex","RegExp","exec","push","start","index","end","length","content","sort","a","b","currentPos","textBefore","substring","textAfter","parseCommentMode","finalMarker","arguments","undefined","includes","results","finalIndex","indexOf","processText","finalText","split","currentType","part","parseCustomMode","patterns","_ref2","_match$","parseAgentMessage","options","_options$mode","mode","customPatterns","hasProcessContent","some","getPlainText","filter","map","join"],"sources":["../../../src/utils/parseAgentMessage.ts"],"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"],"mappings":"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"}
@@ -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;
@@ -4,10 +4,32 @@ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
4
  import _createClass from "@babel/runtime/helpers/esm/createClass";
5
5
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
6
6
  var _excluded = ["id"];
7
- import { createRef } from 'react';
8
- import ReactDOM from 'react-dom/client';
9
- import XAdkWebProvider from "../components/XAdkWebProvider";
7
+ import { createRef } from "react";
8
+ import ReactDOM from "react-dom/client";
9
+ import XAdkProvider from "../components/XAdkProvider";
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
+ /**
12
+ * XAiWebSDK - UMD 入口类
13
+ *
14
+ * 用于通过 <script> 标签引入 SDK 的场景
15
+ *
16
+ * @example
17
+ * ```html
18
+ * <script src="chat-sdk.min.js"></script>
19
+ * <script>
20
+ * const sdk = XAiWebSDK.initChatbot({
21
+ * url: 'https://api.example.com',
22
+ * token: 'your-token',
23
+ * config: {
24
+ * appNo: 'your-app-no',
25
+ * session: {
26
+ * showSessionList: true
27
+ * }
28
+ * }
29
+ * });
30
+ * </script>
31
+ * ```
32
+ */
11
33
  var XAiWebSDK = /*#__PURE__*/function () {
12
34
  function XAiWebSDK(container, props) {
13
35
  _classCallCheck(this, XAiWebSDK);
@@ -29,27 +51,49 @@ var XAiWebSDK = /*#__PURE__*/function () {
29
51
  _createClass(XAiWebSDK, [{
30
52
  key: "mount",
31
53
  value: function mount() {
54
+ var _config$session$showS, _config$session, _config$allowUpload, _config$chatProps$cle, _config$chatProps;
55
+ // 提取配置
56
+ var _this$props$config = this.props.config,
57
+ config = _this$props$config === void 0 ? {} : _this$props$config;
58
+ var showSessionList = (_config$session$showS = (_config$session = config.session) === null || _config$session === void 0 ? void 0 : _config$session.showSessionList) !== null && _config$session$showS !== void 0 ? _config$session$showS : false;
59
+ var allowUpload = (_config$allowUpload = config.allowUpload) !== null && _config$allowUpload !== void 0 ? _config$allowUpload : false;
60
+ var clearBtnShow = (_config$chatProps$cle = (_config$chatProps = config.chatProps) === null || _config$chatProps === void 0 ? void 0 : _config$chatProps.clearBtnShow) !== null && _config$chatProps$cle !== void 0 ? _config$chatProps$cle : true;
32
61
  if (ReactDOM.createRoot) {
33
62
  this.root = ReactDOM.createRoot(this.container);
34
63
  this.root.render( /*#__PURE__*/_jsx("div", {
35
64
  style: {
36
- width: '100%',
37
- height: '100%'
65
+ width: "100%",
66
+ height: "100%"
38
67
  },
39
- children: /*#__PURE__*/_jsx(XAdkWebProvider, _objectSpread({
68
+ children: /*#__PURE__*/_jsx(XAdkProvider, _objectSpread(_objectSpread({
40
69
  ref: this.providerRef
41
- }, this.props))
70
+ }, this.props), {}, {
71
+ children: /*#__PURE__*/_jsx(XAdkProvider.DefaultLayout, {
72
+ showSessionList: showSessionList,
73
+ allowUpload: allowUpload,
74
+ clearBtnShow: clearBtnShow,
75
+ showFnCallDetail: true
76
+ })
77
+ }))
42
78
  }));
43
79
  } else {
80
+ // 兼容 React 17
44
81
  // @ts-ignore
45
82
  ReactDOM.render( /*#__PURE__*/_jsx("div", {
46
83
  style: {
47
- width: '100%',
48
- height: '100%'
84
+ width: "100%",
85
+ height: "100%"
49
86
  },
50
- children: /*#__PURE__*/_jsx(XAdkWebProvider, _objectSpread({
87
+ children: /*#__PURE__*/_jsx(XAdkProvider, _objectSpread(_objectSpread({
51
88
  ref: this.providerRef
52
- }, this.props))
89
+ }, this.props), {}, {
90
+ children: /*#__PURE__*/_jsx(XAdkProvider.DefaultLayout, {
91
+ showSessionList: showSessionList,
92
+ allowUpload: allowUpload,
93
+ clearBtnShow: clearBtnShow,
94
+ showFnCallDetail: true
95
+ })
96
+ }))
53
97
  }), this.container);
54
98
  }
55
99
  }
@@ -61,11 +105,44 @@ var XAiWebSDK = /*#__PURE__*/function () {
61
105
  }
62
106
  }
63
107
 
64
- // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()
108
+ /**
109
+ * 初始化聊天机器人(推荐方式)
110
+ *
111
+ * @param props - SDK 配置参数
112
+ * @returns XAiWebSDK 实例
113
+ *
114
+ * @example
115
+ * ```javascript
116
+ * const sdk = XAiWebSDK.initChatbot({
117
+ * url: 'https://api.example.com',
118
+ * token: 'your-token',
119
+ * config: {
120
+ * appNo: 'your-app-no',
121
+ * session: {
122
+ * showSessionList: true // 显示会话列表
123
+ * },
124
+ * allowUpload: true, // 允许文件上传
125
+ * chatProps: {
126
+ * clearBtnShow: false // 隐藏清空按钮
127
+ * }
128
+ * },
129
+ * componentProps: {
130
+ * id: 'my-chatbot', // 容器 ID
131
+ * width: '100%',
132
+ * height: '600px'
133
+ * }
134
+ * });
135
+ * ```
136
+ */
65
137
  }, {
66
138
  key: "getData",
67
139
  value:
68
140
  // ————对外暴露的方法————
141
+
142
+ /**
143
+ * 获取当前数据
144
+ * @returns 应用信息、消息列表、会话列表
145
+ */
69
146
  function getData() {
70
147
  var _this$providerRef$cur, _this$providerRef$cur2, _this$providerRef$cur3;
71
148
  return {
@@ -74,18 +151,76 @@ var XAiWebSDK = /*#__PURE__*/function () {
74
151
  sessions: (_this$providerRef$cur3 = this.providerRef.current) === null || _this$providerRef$cur3 === void 0 ? void 0 : _this$providerRef$cur3.getSessions()
75
152
  };
76
153
  }
154
+
155
+ /**
156
+ * 发送消息
157
+ * @param content - 消息内容
158
+ *
159
+ * @example
160
+ * ```javascript
161
+ * sdk.chat({ text: 'Hello!' });
162
+ * ```
163
+ */
77
164
  }, {
78
165
  key: "chat",
79
166
  value: function chat(content) {
80
167
  var _this$providerRef$cur4;
81
168
  (_this$providerRef$cur4 = this.providerRef.current) === null || _this$providerRef$cur4 === void 0 || _this$providerRef$cur4.startChat(content);
82
169
  }
170
+
171
+ /**
172
+ * 停止当前消息生成
173
+ */
83
174
  }, {
84
175
  key: "stop",
85
176
  value: function stop() {
86
177
  var _this$providerRef$cur5;
87
178
  (_this$providerRef$cur5 = this.providerRef.current) === null || _this$providerRef$cur5 === void 0 || _this$providerRef$cur5.stopChat();
88
179
  }
180
+
181
+ /**
182
+ * 清空当前会话
183
+ */
184
+ }, {
185
+ key: "clear",
186
+ value: function clear() {
187
+ var _this$providerRef$cur6;
188
+ (_this$providerRef$cur6 = this.providerRef.current) === null || _this$providerRef$cur6 === void 0 || _this$providerRef$cur6.clearChat();
189
+ }
190
+
191
+ /**
192
+ * 删除指定会话
193
+ * @param sessionId - 会话 ID
194
+ */
195
+ }, {
196
+ key: "deleteSession",
197
+ value: function deleteSession(sessionId) {
198
+ var _this$providerRef$cur7;
199
+ (_this$providerRef$cur7 = this.providerRef.current) === null || _this$providerRef$cur7 === void 0 || _this$providerRef$cur7.deleteSession(sessionId);
200
+ }
201
+
202
+ /**
203
+ * 更新会话标题
204
+ * @param sessionId - 会话 ID
205
+ * @param title - 新标题
206
+ */
207
+ }, {
208
+ key: "updateSession",
209
+ value: function updateSession(sessionId, title) {
210
+ var _this$providerRef$cur8;
211
+ (_this$providerRef$cur8 = this.providerRef.current) === null || _this$providerRef$cur8 === void 0 || _this$providerRef$cur8.updateSession(sessionId, title);
212
+ }
213
+
214
+ /**
215
+ * 切换到指定会话
216
+ * @param sessionId - 会话 ID
217
+ */
218
+ }, {
219
+ key: "switchSession",
220
+ value: function switchSession(sessionId) {
221
+ var _this$providerRef$cur9;
222
+ (_this$providerRef$cur9 = this.providerRef.current) === null || _this$providerRef$cur9 === void 0 || _this$providerRef$cur9.setCurrentSessionDetail(sessionId);
223
+ }
89
224
  }], [{
90
225
  key: "initChatbot",
91
226
  value: function initChatbot(props) {
@@ -99,13 +234,13 @@ var XAiWebSDK = /*#__PURE__*/function () {
99
234
  container = existingContainer;
100
235
  } else {
101
236
  // 如果指定的 ID 不存在,创建新元素
102
- container = document.createElement('div');
237
+ container = document.createElement("div");
103
238
  container.id = props.componentProps.id;
104
239
  }
105
240
  } else {
106
241
  // 没有指定 ID,创建默认容器
107
- container = document.createElement('div');
108
- container.id = 'xai-chatbot-container';
242
+ container = document.createElement("div");
243
+ container.id = "xai-chatbot-container";
109
244
  }
110
245
 
111
246
  // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器
@@ -123,7 +258,10 @@ var XAiWebSDK = /*#__PURE__*/function () {
123
258
  return new XAiWebSDK(container, props);
124
259
  }
125
260
 
126
- // 兼容旧版本的静态方法
261
+ /**
262
+ * 兼容旧版本的静态方法
263
+ * @deprecated 使用 initChatbot 替代
264
+ */
127
265
  }, {
128
266
  key: "create",
129
267
  value: function create(props) {