@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,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;