@agentscope-ai/chat 1.1.20 → 1.1.22

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 (335) hide show
  1. package/bin/client.js +1 -1
  2. package/components/AGUI/components/HelpModal/icons.tsx +68 -0
  3. package/components/AGUI/components/HelpModal/index.tsx +1 -0
  4. package/components/AGUI/components/HelpModal/modal.tsx +101 -0
  5. package/components/AGUI/components/chat/Button.tsx +18 -0
  6. package/components/AGUI/components/chat/Chat.tsx +780 -0
  7. package/components/AGUI/components/chat/ChatContext.tsx +248 -0
  8. package/components/AGUI/components/chat/CodeBlock.tsx +406 -0
  9. package/components/AGUI/components/chat/Header.tsx +22 -0
  10. package/components/AGUI/components/chat/Icons.tsx +237 -0
  11. package/components/AGUI/components/chat/ImageUploadQueue.tsx +77 -0
  12. package/components/AGUI/components/chat/Input.tsx +24 -0
  13. package/components/AGUI/components/chat/Markdown.tsx +134 -0
  14. package/components/AGUI/components/chat/Messages.tsx +259 -0
  15. package/components/AGUI/components/chat/Modal.tsx +133 -0
  16. package/components/AGUI/components/chat/Popup.tsx +57 -0
  17. package/components/AGUI/components/chat/PoweredByTag.tsx +29 -0
  18. package/components/AGUI/components/chat/Sidebar.tsx +74 -0
  19. package/components/AGUI/components/chat/Suggestion.tsx +132 -0
  20. package/components/AGUI/components/chat/Suggestions.tsx +20 -0
  21. package/components/AGUI/components/chat/Textarea.tsx +61 -0
  22. package/components/AGUI/components/chat/Window.tsx +152 -0
  23. package/components/AGUI/components/chat/index.tsx +11 -0
  24. package/components/AGUI/components/chat/messages/AssistantMessage.tsx +69 -0
  25. package/components/AGUI/components/chat/messages/RenderActionExecutionMessage.tsx +129 -0
  26. package/components/AGUI/components/chat/messages/RenderAgentStateMessage.tsx +116 -0
  27. package/components/AGUI/components/chat/messages/RenderImageMessage.tsx +64 -0
  28. package/components/AGUI/components/chat/messages/RenderResultMessage.tsx +26 -0
  29. package/components/AGUI/components/chat/messages/RenderTextMessage.tsx +51 -0
  30. package/components/AGUI/components/chat/messages/UserMessage.tsx +10 -0
  31. package/components/AGUI/components/chat/props.ts +186 -0
  32. package/components/AGUI/components/index.ts +1 -0
  33. package/components/AGUI/context/index.ts +1 -0
  34. package/components/AGUI/hooks/index.ts +1 -0
  35. package/components/AGUI/hooks/use-copilot-chat-suggestions.tsx +122 -0
  36. package/components/AGUI/hooks/use-copy-to-clipboard.tsx +29 -0
  37. package/components/AGUI/hooks/use-dark-mode.ts +10 -0
  38. package/components/AGUI/hooks/use-push-to-talk.tsx +166 -0
  39. package/components/AGUI/index.tsx +4 -0
  40. package/components/AGUI/lib/utils.test.ts +7 -0
  41. package/components/AGUI/lib/utils.ts +27 -0
  42. package/components/AGUI/styles.css +0 -0
  43. package/components/AGUI/types/css.ts +0 -0
  44. package/components/AGUI/types/index.ts +1 -0
  45. package/components/AGUI/types/suggestions.ts +6 -0
  46. package/components/Accordion/Accordion.tsx +203 -0
  47. package/components/Accordion/BodyContent.tsx +28 -0
  48. package/components/Accordion/DeepThinking.tsx +91 -0
  49. package/components/Accordion/SoftLightTitle.tsx +13 -0
  50. package/components/Accordion/demo/search.tsx +39 -0
  51. package/components/Accordion/demo/steps.tsx +135 -0
  52. package/components/Accordion/demo/thinking.tsx +62 -0
  53. package/components/Accordion/index.en-US.md +34 -0
  54. package/components/Accordion/index.tsx +3 -0
  55. package/components/Accordion/index.zh-CN.md +34 -0
  56. package/components/Accordion/style.ts +208 -0
  57. package/components/AgentScopeRuntimeWebUI/demo/index.tsx +4 -0
  58. package/components/AgentScopeRuntimeWebUI/index.tsx +3 -0
  59. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/Request/Builder.tsx +82 -0
  60. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/Request/Card.tsx +52 -0
  61. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/Response/Actions.tsx +39 -0
  62. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/Response/Builder.tsx +205 -0
  63. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/Response/Card.tsx +44 -0
  64. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/Response/Error.tsx +7 -0
  65. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/Response/Message.tsx +23 -0
  66. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/Response/Reasoning.tsx +16 -0
  67. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/Response/Tool.tsx +19 -0
  68. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/index.tsx +0 -0
  69. package/components/AgentScopeRuntimeWebUI/lib/AgentScopeRuntime/types.tsx +100 -0
  70. package/components/AgentScopeRuntimeWebUI/lib/Chat/Input/index.tsx +77 -0
  71. package/components/AgentScopeRuntimeWebUI/lib/Chat/Input/useAttachments.tsx +53 -0
  72. package/components/AgentScopeRuntimeWebUI/lib/Chat/MessageList/index.tsx +30 -0
  73. package/components/AgentScopeRuntimeWebUI/lib/Chat/Welcome/index.tsx +66 -0
  74. package/components/AgentScopeRuntimeWebUI/lib/Chat/Welcome/styles.ts +51 -0
  75. package/components/AgentScopeRuntimeWebUI/lib/Chat/hooks/index.tsx +5 -0
  76. package/components/AgentScopeRuntimeWebUI/lib/Chat/hooks/useChatController.tsx +130 -0
  77. package/components/AgentScopeRuntimeWebUI/lib/Chat/hooks/useChatMessageHandler.tsx +87 -0
  78. package/components/AgentScopeRuntimeWebUI/lib/Chat/hooks/useChatRequest.tsx +114 -0
  79. package/components/AgentScopeRuntimeWebUI/lib/Chat/hooks/useChatSessionHandler.tsx +50 -0
  80. package/components/AgentScopeRuntimeWebUI/lib/Chat/index.tsx +18 -0
  81. package/components/AgentScopeRuntimeWebUI/lib/Chat/styles.tsx +59 -0
  82. package/components/AgentScopeRuntimeWebUI/lib/ChatAnywhere/ComposedProvider.tsx +27 -0
  83. package/components/AgentScopeRuntimeWebUI/lib/ChatAnywhere/index.tsx +29 -0
  84. package/components/AgentScopeRuntimeWebUI/lib/Context/ChatAnywhereControl.tsx +0 -0
  85. package/components/AgentScopeRuntimeWebUI/lib/Context/ChatAnywhereInputContext.tsx +27 -0
  86. package/components/AgentScopeRuntimeWebUI/lib/Context/ChatAnywhereLayoutContext.tsx +27 -0
  87. package/components/AgentScopeRuntimeWebUI/lib/Context/ChatAnywhereMessagesContext.tsx +82 -0
  88. package/components/AgentScopeRuntimeWebUI/lib/Context/ChatAnywhereOptionsContext.tsx +76 -0
  89. package/components/AgentScopeRuntimeWebUI/lib/Context/ChatAnywhereSessionsContext.tsx +111 -0
  90. package/components/AgentScopeRuntimeWebUI/lib/Context/useChatAnywhereEventEmitter.tsx +30 -0
  91. package/components/AgentScopeRuntimeWebUI/lib/Header/index.tsx +45 -0
  92. package/components/AgentScopeRuntimeWebUI/lib/Header/styles.ts +23 -0
  93. package/components/AgentScopeRuntimeWebUI/lib/Layout/index.tsx +45 -0
  94. package/components/AgentScopeRuntimeWebUI/lib/Layout/styles.tsx +104 -0
  95. package/components/AgentScopeRuntimeWebUI/lib/Sessions/index.tsx +114 -0
  96. package/components/AgentScopeRuntimeWebUI/lib/Sessions/styles.tsx +0 -0
  97. package/components/AgentScopeRuntimeWebUI/lib/demo/OptionsPanel/FormItem.tsx +37 -0
  98. package/components/AgentScopeRuntimeWebUI/lib/demo/OptionsPanel/OptionsEditor.tsx +163 -0
  99. package/components/AgentScopeRuntimeWebUI/lib/demo/OptionsPanel/defaultConfig.ts +43 -0
  100. package/components/AgentScopeRuntimeWebUI/lib/demo/OptionsPanel/index.tsx +27 -0
  101. package/components/AgentScopeRuntimeWebUI/lib/demo/index.tsx +57 -0
  102. package/components/AgentScopeRuntimeWebUI/lib/demo/sessionApi/index.ts +51 -0
  103. package/components/AgentScopeRuntimeWebUI/lib/types/IChatAnywhere.ts +358 -0
  104. package/components/AgentScopeRuntimeWebUI/lib/types/IMessages.tsx +52 -0
  105. package/components/AgentScopeRuntimeWebUI/lib/types/ISessions.tsx +29 -0
  106. package/components/AgentScopeRuntimeWebUI/lib/types/index.tsx +3 -0
  107. package/components/AgentScopeRuntimeWebUI/starter/OptionsPanel/FormItem.tsx +37 -0
  108. package/components/AgentScopeRuntimeWebUI/starter/OptionsPanel/OptionsEditor.tsx +163 -0
  109. package/components/AgentScopeRuntimeWebUI/starter/OptionsPanel/defaultConfig.ts +43 -0
  110. package/components/AgentScopeRuntimeWebUI/starter/OptionsPanel/index.tsx +27 -0
  111. package/components/AgentScopeRuntimeWebUI/starter/index.tsx +57 -0
  112. package/components/AgentScopeRuntimeWebUI/starter/sessionApi/index.ts +51 -0
  113. package/components/Attachments/DropArea.tsx +97 -0
  114. package/components/Attachments/FileList/AudioIcon.tsx +20 -0
  115. package/components/Attachments/FileList/FileListCard.tsx +270 -0
  116. package/components/Attachments/FileList/Progress.tsx +30 -0
  117. package/components/Attachments/FileList/VideoIcon.tsx +20 -0
  118. package/components/Attachments/FileList/index.tsx +201 -0
  119. package/components/Attachments/PlaceholderUploader.tsx +124 -0
  120. package/components/Attachments/SilentUploader.tsx +39 -0
  121. package/components/Attachments/context.tsx +11 -0
  122. package/components/Attachments/demo/basic.tsx +71 -0
  123. package/components/Attachments/index.en-US.md.bk +10 -0
  124. package/components/Attachments/index.tsx +274 -0
  125. package/components/Attachments/index.zh-CN.md.bk +10 -0
  126. package/components/Attachments/style/fileCard.ts +163 -0
  127. package/components/Attachments/style/index.ts +232 -0
  128. package/components/Attachments/util.ts +56 -0
  129. package/components/Bubble/Avatar.tsx +39 -0
  130. package/components/Bubble/Bubble.tsx +131 -0
  131. package/components/Bubble/BubbleList.tsx +105 -0
  132. package/components/Bubble/Cards.tsx +61 -0
  133. package/components/Bubble/Footer.tsx +55 -0
  134. package/components/Bubble/Interrupted.tsx +82 -0
  135. package/components/Bubble/ScrollToBottom.tsx +42 -0
  136. package/components/Bubble/Spin.tsx +13 -0
  137. package/components/Bubble/demo/assistantWithCode.tsx +60 -0
  138. package/components/Bubble/demo/assistantWithErrorStatus.tsx +102 -0
  139. package/components/Bubble/demo/assistantWithImage.tsx +46 -0
  140. package/components/Bubble/demo/assistantWithProcess.tsx +103 -0
  141. package/components/Bubble/demo/assistantWithSearch.tsx +69 -0
  142. package/components/Bubble/demo/assistantWithThinking.tsx +54 -0
  143. package/components/Bubble/demo/basic.tsx +55 -0
  144. package/components/Bubble/demo/userWithFile.tsx +27 -0
  145. package/components/Bubble/demo/userWithImage.tsx +26 -0
  146. package/components/Bubble/hooks/useDisplayData.ts +0 -0
  147. package/components/Bubble/hooks/useListData.ts +0 -0
  148. package/components/Bubble/index.en-US.md +33 -0
  149. package/components/Bubble/index.tsx +21 -0
  150. package/components/Bubble/index.zh-CN.md +33 -0
  151. package/components/Bubble/interface.ts +71 -0
  152. package/components/Bubble/loading.tsx +15 -0
  153. package/components/Bubble/style/avatar.ts +43 -0
  154. package/components/Bubble/style/footer.ts +45 -0
  155. package/components/Bubble/style/index.ts +192 -0
  156. package/components/Bubble/style/list.ts +51 -0
  157. package/components/ChatAnywhere/Chat/Ref.tsx +20 -0
  158. package/components/ChatAnywhere/Chat/index.tsx +56 -0
  159. package/components/ChatAnywhere/Chat/style.ts +59 -0
  160. package/components/ChatAnywhere/Header/index.tsx +37 -0
  161. package/components/ChatAnywhere/Header/style.ts +27 -0
  162. package/components/ChatAnywhere/Input/index.tsx +158 -0
  163. package/components/ChatAnywhere/Input/style.ts +14 -0
  164. package/components/ChatAnywhere/Layout/index.tsx +70 -0
  165. package/components/ChatAnywhere/Layout/style.ts +51 -0
  166. package/components/ChatAnywhere/SessionList/index.tsx +122 -0
  167. package/components/ChatAnywhere/SessionList/style.ts +53 -0
  168. package/components/ChatAnywhere/hooks/ChatAnywhereProvider.tsx +219 -0
  169. package/components/ChatAnywhere/hooks/types.ts +333 -0
  170. package/components/ChatAnywhere/hooks/useInput.tsx +22 -0
  171. package/components/ChatAnywhere/hooks/useMessages.tsx +63 -0
  172. package/components/ChatAnywhere/hooks/useSessionList.tsx +123 -0
  173. package/components/ChatAnywhere/index.tsx +49 -0
  174. package/components/Conversations/GroupTitle.tsx +28 -0
  175. package/components/Conversations/Item.tsx +189 -0
  176. package/components/Conversations/demo/basic.tsx +107 -0
  177. package/components/Conversations/demo/timeline.tsx +111 -0
  178. package/components/Conversations/demo/timestamp.tsx +110 -0
  179. package/components/Conversations/hooks/useGroupable.ts +81 -0
  180. package/components/Conversations/index.en-US.md +32 -0
  181. package/components/Conversations/index.tsx +176 -0
  182. package/components/Conversations/index.zh-CN.md +31 -0
  183. package/components/Conversations/interface.ts +69 -0
  184. package/components/Conversations/style.ts +153 -0
  185. package/components/DefaultCards/DeepThinking/index.tsx +33 -0
  186. package/components/DefaultCards/Files/index.tsx +69 -0
  187. package/components/DefaultCards/Footer/index.tsx +16 -0
  188. package/components/DefaultCards/Images/index.tsx +53 -0
  189. package/components/DefaultCards/Interrupted/index.tsx +13 -0
  190. package/components/DefaultCards/Text/index.tsx +13 -0
  191. package/components/DefaultCards/index.tsx +6 -0
  192. package/components/DeviceAction/actionMap.tsx +100 -0
  193. package/components/DeviceAction/demo/index.tsx +132 -0
  194. package/components/DeviceAction/index.en-US.md +19 -0
  195. package/components/DeviceAction/index.tsx +75 -0
  196. package/components/DeviceAction/index.zh-CN.md +19 -0
  197. package/components/Disclaimer/demo/index.tsx +4 -0
  198. package/components/Disclaimer/demo/withLink.tsx +4 -0
  199. package/components/Disclaimer/index.en-US.md +23 -0
  200. package/components/Disclaimer/index.tsx +42 -0
  201. package/components/Disclaimer/index.zh-CN.md +24 -0
  202. package/components/Disclaimer/style.ts +17 -0
  203. package/components/ImageGenerator/demo/basic.tsx +23 -0
  204. package/components/ImageGenerator/demo/custom.tsx +56 -0
  205. package/components/ImageGenerator/demo/size.tsx +15 -0
  206. package/components/ImageGenerator/index.en-US.md +23 -0
  207. package/components/ImageGenerator/index.tsx +124 -0
  208. package/components/ImageGenerator/index.zh-CN.md +23 -0
  209. package/components/ImageGenerator/style.ts +99 -0
  210. package/components/Markdown/Markdown/AnimationNode.tsx +89 -0
  211. package/components/Markdown/Markdown/Markdown.tsx +61 -0
  212. package/components/Markdown/Markdown/core/Parser.ts +52 -0
  213. package/components/Markdown/Markdown/core/Renderer.ts +121 -0
  214. package/components/Markdown/Markdown/core/index.ts +4 -0
  215. package/components/Markdown/Markdown/defaultComponents/CodeBlock.tsx +113 -0
  216. package/components/Markdown/Markdown/defaultComponents/DisabledImage.tsx +3 -0
  217. package/components/Markdown/Markdown/defaultComponents/Media.tsx +71 -0
  218. package/components/Markdown/Markdown/hooks/index.ts +4 -0
  219. package/components/Markdown/Markdown/hooks/useAnimation.tsx +27 -0
  220. package/components/Markdown/Markdown/hooks/useCitationsData.tsx +36 -0
  221. package/components/Markdown/Markdown/hooks/useStreaming.ts +503 -0
  222. package/components/Markdown/Markdown/hooks/useTyping.ts +22 -0
  223. package/components/Markdown/Markdown/index.tsx +198 -0
  224. package/components/Markdown/Markdown/interface.ts +217 -0
  225. package/components/Markdown/Markdown/style.ts +152 -0
  226. package/components/Markdown/demo/basic.tsx +107 -0
  227. package/components/Markdown/demo/citations.tsx +47 -0
  228. package/components/Markdown/demo/cursor.tsx +9 -0
  229. package/components/Markdown/demo/latex.tsx +77 -0
  230. package/components/Markdown/demo/typing.tsx +82 -0
  231. package/components/Markdown/index.en-US.md +27 -0
  232. package/components/Markdown/index.ts +1 -0
  233. package/components/Markdown/index.zh-CN.md +28 -0
  234. package/components/Markdown/plugins/citations/CitationComponent.tsx +72 -0
  235. package/components/Markdown/plugins/citations/index.tsx +37 -0
  236. package/components/Markdown/plugins/cursor/Dot.tsx +106 -0
  237. package/components/Markdown/plugins/cursor/Underline.tsx +38 -0
  238. package/components/Markdown/plugins/cursor/index.tsx +59 -0
  239. package/components/Markdown/plugins/latex/index.ts +109 -0
  240. package/components/Markdown/plugins/type.ts +71 -0
  241. package/components/Mermaid/demo/basic.tsx +12 -0
  242. package/components/Mermaid/demo/class.tsx +31 -0
  243. package/components/Mermaid/demo/flowchart.tsx +13 -0
  244. package/components/Mermaid/demo/sequence.tsx +18 -0
  245. package/components/Mermaid/demo/state.tsx +16 -0
  246. package/components/Mermaid/demo/timeline.tsx +15 -0
  247. package/components/Mermaid/index.en-US.md +27 -0
  248. package/components/Mermaid/index.tsx +118 -0
  249. package/components/Mermaid/index.zh-CN.md +27 -0
  250. package/components/OperateCard/OperateCard.tsx +93 -0
  251. package/components/OperateCard/demo/index.tsx +35 -0
  252. package/components/OperateCard/demo/rag.tsx +19 -0
  253. package/components/OperateCard/demo/thinking.tsx +17 -0
  254. package/components/OperateCard/demo/todo.tsx +28 -0
  255. package/components/OperateCard/demo/toolCall.tsx +14 -0
  256. package/components/OperateCard/demo/webSearch.tsx +12 -0
  257. package/components/OperateCard/index.en-US.md +51 -0
  258. package/components/OperateCard/index.tsx +1 -0
  259. package/components/OperateCard/index.zh-CN.md +51 -0
  260. package/components/OperateCard/preset/Rag.tsx +90 -0
  261. package/components/OperateCard/preset/Thinking.tsx +45 -0
  262. package/components/OperateCard/preset/TodoList.tsx +73 -0
  263. package/components/OperateCard/preset/ToolCall.tsx +67 -0
  264. package/components/OperateCard/preset/WebSearch.tsx +65 -0
  265. package/components/OperateCard/preset/index.tsx +5 -0
  266. package/components/OperateCard/style.ts +268 -0
  267. package/components/Provider/CustomCardsProvider.tsx +17 -0
  268. package/components/Provider/GlobalProvider.tsx +17 -0
  269. package/components/Provider/index.tsx +33 -0
  270. package/components/Provider/types.ts +23 -0
  271. package/components/ResponsesAPI/index.tsx +0 -0
  272. package/components/Sender/ModeSelect/index.tsx +160 -0
  273. package/components/Sender/ModeSelect/styles.ts +0 -0
  274. package/components/Sender/SenderHeader.tsx +164 -0
  275. package/components/Sender/StopLoading.tsx +48 -0
  276. package/components/Sender/components/ActionButton.tsx +106 -0
  277. package/components/Sender/components/ClearButton.tsx +10 -0
  278. package/components/Sender/components/LoadingButton.tsx +26 -0
  279. package/components/Sender/components/SendButton.tsx +22 -0
  280. package/components/Sender/components/SpeechButton/RecordingIcon.tsx +68 -0
  281. package/components/Sender/components/SpeechButton/index.tsx +30 -0
  282. package/components/Sender/demo/asr.tsx +7 -0
  283. package/components/Sender/demo/basic.tsx +7 -0
  284. package/components/Sender/demo/loading.tsx +5 -0
  285. package/components/Sender/demo/moreMode.tsx +45 -0
  286. package/components/Sender/demo/morePrefixAction.tsx +40 -0
  287. package/components/Sender/demo/withFile.tsx +54 -0
  288. package/components/Sender/demo/withImage.tsx +52 -0
  289. package/components/Sender/index.en-US.md +29 -0
  290. package/components/Sender/index.tsx +491 -0
  291. package/components/Sender/index.zh-CN.md +30 -0
  292. package/components/Sender/style/index.ts +150 -0
  293. package/components/Sender/useSpeech.ts +133 -0
  294. package/components/StatusCard/demo/index.tsx +32 -0
  295. package/components/StatusCard/index.en-US.md +30 -0
  296. package/components/StatusCard/index.tsx +162 -0
  297. package/components/StatusCard/index.zh-CN.md +27 -0
  298. package/components/StatusCard/style.ts +119 -0
  299. package/components/Stream/index.ts +203 -0
  300. package/components/Util/hooks/use-proxy-imperative-handle.ts +25 -0
  301. package/components/Util/sleep.ts +3 -0
  302. package/components/Util/type.ts +1 -0
  303. package/components/Util/warning.ts +118 -0
  304. package/components/Version/index.ts +3 -0
  305. package/components/Voice/Recorder.tsx +3 -0
  306. package/components/Voice/demo/index.tsx +0 -0
  307. package/components/Voice/index.en-US.md +8 -0
  308. package/components/Voice/index.tsx +0 -0
  309. package/components/Voice/index.zh-CN.md +9 -0
  310. package/components/Welcome/demo/EyeFollower.tsx +161 -0
  311. package/components/Welcome/demo/demo0.tsx +14 -0
  312. package/components/Welcome/demo/demo1.tsx +16 -0
  313. package/components/Welcome/demo/demo2.tsx +30 -0
  314. package/components/Welcome/demo/demo3.tsx +16 -0
  315. package/components/Welcome/index.en-US.md +28 -0
  316. package/components/Welcome/index.tsx +72 -0
  317. package/components/Welcome/index.zh-CN.md +28 -0
  318. package/components/index.ts +88 -0
  319. package/components/overview.en-US.md +10 -0
  320. package/components/overview.zh-CN.md +10 -0
  321. package/lib/AgentScopeRuntimeWebUI/index.d.ts +1 -0
  322. package/lib/AgentScopeRuntimeWebUI/index.js +1 -0
  323. package/lib/AgentScopeRuntimeWebUI/starter/OptionsPanel/FormItem.d.ts +9 -0
  324. package/lib/AgentScopeRuntimeWebUI/starter/OptionsPanel/FormItem.js +33 -0
  325. package/lib/AgentScopeRuntimeWebUI/starter/OptionsPanel/OptionsEditor.d.ts +7 -0
  326. package/lib/AgentScopeRuntimeWebUI/starter/OptionsPanel/OptionsEditor.js +188 -0
  327. package/lib/AgentScopeRuntimeWebUI/starter/OptionsPanel/defaultConfig.d.ts +29 -0
  328. package/lib/AgentScopeRuntimeWebUI/starter/OptionsPanel/defaultConfig.js +35 -0
  329. package/lib/AgentScopeRuntimeWebUI/starter/OptionsPanel/index.d.ts +6 -0
  330. package/lib/AgentScopeRuntimeWebUI/starter/OptionsPanel/index.js +49 -0
  331. package/lib/AgentScopeRuntimeWebUI/starter/index.d.ts +1 -0
  332. package/lib/AgentScopeRuntimeWebUI/starter/index.js +70 -0
  333. package/lib/AgentScopeRuntimeWebUI/starter/sessionApi/index.d.ts +14 -0
  334. package/lib/AgentScopeRuntimeWebUI/starter/sessionApi/index.js +143 -0
  335. package/package.json +3 -2
@@ -0,0 +1,333 @@
1
+ import { GetProp, Upload, UploadFile } from 'antd';
2
+ import { ScrollToBottomOptions } from 'use-stick-to-bottom';
3
+ import { IChatAnywhereContext } from './ChatAnywhereProvider';
4
+
5
+ export interface TSession {
6
+ /**
7
+ * @description 会话的唯一标识符,用于区分不同的聊天会话
8
+ * @descriptionEn Unique identifier for the session to distinguish different chat sessions
9
+ */
10
+ key: string;
11
+ /**
12
+ * @description 会话中的消息列表,按组进行组织
13
+ * @descriptionEn Message list in the session, organized by groups
14
+ */
15
+ messages: TMessage[][];
16
+ /**
17
+ * @description 会话的显示名称
18
+ * @descriptionEn Display name for the session
19
+ */
20
+ label: string;
21
+ }
22
+
23
+ export interface TMessageCard {
24
+ /**
25
+ * @description 卡片的唯一标识符
26
+ * @descriptionEn Unique identifier for the card
27
+ */
28
+ id?: string;
29
+ /**
30
+ * @description 卡片的类型代码
31
+ * @descriptionEn Type code for the card
32
+ */
33
+ code: string;
34
+ /**
35
+ * @description 卡片的渲染组件
36
+ * @descriptionEn Rendering component for the card
37
+ */
38
+ component?: React.FC;
39
+ /**
40
+ * @description 卡片的数据内容
41
+ * @descriptionEn Data content for the card
42
+ */
43
+ data?: string | any;
44
+ }
45
+
46
+ export interface TMessage {
47
+ /**
48
+ * @description 消息的唯一标识符
49
+ * @descriptionEn Unique identifier for the message
50
+ */
51
+ id: string;
52
+ /**
53
+ * @description 消息的文本内容
54
+ * @descriptionEn Text content of the message
55
+ */
56
+ content?: string;
57
+ /**
58
+ * @description 消息中的卡片组件配置
59
+ * @descriptionEn Card component configuration in the message
60
+ */
61
+ cards?: TMessageCard[];
62
+ /**
63
+ * @description 消息的角色类型,区分用户、助手和系统消息
64
+ * @descriptionEn Role type of the message to distinguish user, assistant, and system messages
65
+ */
66
+ role: 'user' | 'assistant' | 'system';
67
+ /**
68
+ * @description 消息的处理状态,影响显示效果
69
+ * @descriptionEn Processing status of the message, affects display effects
70
+ */
71
+ msgStatus?: 'finished' | 'interrupted' | 'generating' | 'error';
72
+ }
73
+
74
+ export interface IChatAnywhereConfigUIConfig {
75
+ /**
76
+ * @description 是否启用窄屏模式,影响响应式布局
77
+ * @descriptionEn Whether to enable narrow screen mode, affects responsive layout
78
+ */
79
+ narrowScreen?: boolean;
80
+ /**
81
+ * @description 背景样式配置
82
+ * @descriptionEn Background style configuration
83
+ */
84
+ background?: string;
85
+ /**
86
+ * @description 自定义头部组件
87
+ * @descriptionEn Custom header component
88
+ */
89
+ header?: React.ReactElement;
90
+ /**
91
+ * @description 快速输入组件,用于提供预设的输入选项
92
+ * @descriptionEn Quick input component for providing preset input options
93
+ */
94
+ quickInput?: React.ReactElement | React.ReactElement[];
95
+ /**
96
+ * @description 应用logo组件
97
+ * @descriptionEn Application logo component
98
+ */
99
+ logo?: React.ReactElement;
100
+ /**
101
+ * @description 欢迎页面组件
102
+ * @descriptionEn Welcome page component
103
+ */
104
+ welcome?: React.ReactElement;
105
+ /**
106
+ * @description 免责声明组件或文本
107
+ * @descriptionEn Disclaimer component or text
108
+ */
109
+ disclaimer?: React.ReactElement | string;
110
+ }
111
+
112
+ export interface IChatAnywhereConfigOnInput {
113
+ /**
114
+ * @description 输入框前的UI组件
115
+ * @descriptionEn UI component before the input field
116
+ */
117
+ beforeUI?: React.ReactElement;
118
+ /**
119
+ * @description 输入框后的UI组件
120
+ * @descriptionEn UI component after the input field
121
+ */
122
+ afterUI?: React.ReactElement;
123
+ /**
124
+ * @description 更多前缀操作组件
125
+ * @descriptionEn More prefix action components
126
+ */
127
+ morePrefixActions?: React.ReactElement | React.ReactElement[];
128
+ /**
129
+ * @description 是否隐藏输入框
130
+ * @descriptionEn Whether to hide the input field
131
+ */
132
+ hide?: boolean;
133
+ /**
134
+ * @description 输入框头部组件
135
+ * @descriptionEn Input field header components
136
+ */
137
+ header?: React.ReactElement | React.ReactElement[];
138
+ /**
139
+ * @description 提交消息时的回调函数
140
+ * @descriptionEn Callback function when submitting messages
141
+ */
142
+ onSubmit(data: { query: string; fileList?: UploadFile[][] }): void;
143
+ /**
144
+ * @description 输入内容的最大长度限制
145
+ * @descriptionEn Maximum length limit for input content
146
+ */
147
+ maxLength?: number;
148
+ /**
149
+ * @description 提交前的验证函数
150
+ * @descriptionEn Validation function before submission
151
+ */
152
+ beforeSubmit?: () => Promise<Boolean>;
153
+ /**
154
+ * @description 是否支持缩放功能
155
+ * @descriptionEn Whether to support zoom functionality
156
+ */
157
+ zoomable?: boolean;
158
+ /**
159
+ * @description 输入框的占位符文本
160
+ * @descriptionEn Placeholder text for the input field
161
+ */
162
+ placeholder?: string;
163
+
164
+ /**
165
+ * @description 输入框是否禁用
166
+ * @descriptionEn Whether the input field is disabled
167
+ */
168
+ disabled?: boolean;
169
+ }
170
+
171
+ export interface IChatAnywhereConfigOnUpload {
172
+ /**
173
+ * @description 上传组件的渲染类型,影响上传附件样式
174
+ * @descriptionEn Render type for the upload component, affects the style of the uploaded attachment
175
+ */
176
+ renderType?: 'simple' | 'default';
177
+ /**
178
+ * @description 最大上传文件数量
179
+ * @descriptionEn Maximum number of files to upload
180
+ */
181
+ maxCount?: GetProp<typeof Upload, 'maxCount'>;
182
+ /**
183
+ * @description 上传前的处理函数
184
+ * @descriptionEn Pre-upload processing function
185
+ */
186
+ beforeUpload?: GetProp<typeof Upload, 'beforeUpload'>;
187
+ /**
188
+ * @description 自定义上传请求函数
189
+ * @descriptionEn Custom upload request function
190
+ */
191
+ customRequest: GetProp<typeof Upload, 'customRequest'>;
192
+ /**
193
+ * @description 是否支持多文件上传
194
+ * @descriptionEn Whether to support multiple file uploads
195
+ */
196
+ multiple?: boolean;
197
+ /**
198
+ * @description 接受的文件类型
199
+ * @descriptionEn Accepted file types
200
+ */
201
+ accept?: string;
202
+ /**
203
+ * @description 上传按钮的图标
204
+ * @descriptionEn Icon for the upload button
205
+ */
206
+ icon?: string | React.ReactElement;
207
+ /**
208
+ * @description 是否禁用上传组件
209
+ * @descriptionEn Whether to disable the upload component
210
+ */
211
+ disabled?: boolean;
212
+ }
213
+
214
+ export interface IChatAnywhereConfig {
215
+ /**
216
+ * @description 卡片组件的配置映射,用于自定义不同类型卡片的渲染
217
+ * @descriptionEn Card component configuration mapping for customizing rendering of different card types
218
+ */
219
+ cardConfig?: {
220
+ [key: string]: React.FC<any>;
221
+ };
222
+ /**
223
+ * @description UI界面的配置选项,用于自定义外观和布局
224
+ * @descriptionEn UI interface configuration options for customizing appearance and layout
225
+ */
226
+ uiConfig?: IChatAnywhereConfigUIConfig;
227
+ /**
228
+ * @description 输入功能的配置选项
229
+ * @descriptionEn Configuration options for input functionality
230
+ */
231
+ onInput: IChatAnywhereConfigOnInput;
232
+ /**
233
+ * @description 停止生成的回调函数
234
+ * @descriptionEn Callback function for stopping generation
235
+ */
236
+ onStop?(): void;
237
+ /**
238
+ * @description 重新生成消息的回调函数
239
+ * @descriptionEn Callback function for regenerating messages
240
+ */
241
+ onRegenerate?(msg: Partial<TMessage>): void;
242
+ /**
243
+ * @description 会话切换时的回调函数
244
+ * @descriptionEn Callback function when switching sessions
245
+ */
246
+ onSessionKeyChange?(key: string): void;
247
+ /**
248
+ * @description 文件上传功能的配置选项
249
+ * @descriptionEn Configuration options for file upload functionality
250
+ */
251
+ onUpload?: IChatAnywhereConfigOnUpload[];
252
+ }
253
+
254
+ export interface IChatAnywhereRef extends IChatAnywhereContext {
255
+ /**
256
+ * @description 设置输入框内容的方法
257
+ * @descriptionEn Method to set input field content
258
+ */
259
+ setInputContent: (content: string) => void;
260
+ /**
261
+ * @description 滚动到底部的方法
262
+ * @descriptionEn Method to scroll to bottom
263
+ */
264
+ scrollToBottom: (options?: ScrollToBottomOptions) => void;
265
+ /**
266
+ * @description 重新加载的方法
267
+ * @descriptionEn Method to reload
268
+ */
269
+ reload: () => void;
270
+
271
+ /**
272
+ * @description 当前会话的消息列表
273
+ * @descriptionEn Message list for the current session
274
+ */
275
+ messages: TMessage[];
276
+
277
+ /**
278
+ * @description 更新消息的方法
279
+ * @descriptionEn Method to update message
280
+ */
281
+ updateMessage(message: Partial<TMessage> & { id: string }): void;
282
+ updateMessage(id: string, message: Partial<TMessage> & { id: string }): void;
283
+
284
+ /**
285
+ * @description 获取当前消息列表的同步函数
286
+ * @descriptionEn Synchronous function to get current message list
287
+ */
288
+ getMessages: () => TMessage[];
289
+
290
+ /**
291
+ * @description 删除消息的方法
292
+ * @descriptionEn Method to remove message
293
+ */
294
+ removeMessage: (message: Partial<TMessage>) => void;
295
+
296
+ /**
297
+ * @description 删除所有消息的方法
298
+ * @descriptionEn Method to remove all messages
299
+ */
300
+ removeAllMessages: () => void;
301
+
302
+ /**
303
+ * @description 是否正在加载状态,影响UI的交互性
304
+ * @descriptionEn Whether in loading state, affects UI interactivity
305
+ */
306
+ loading: boolean;
307
+ /**
308
+ * @description 设置加载状态的状态更新函数
309
+ * @descriptionEn State update function for setting loading state
310
+ */
311
+ setLoading: React.Dispatch<React.SetStateAction<boolean>>;
312
+ /**
313
+ * @description 获取当前加载状态的同步函数
314
+ * @descriptionEn Synchronous function to get current loading state
315
+ */
316
+ getLoading: () => boolean;
317
+
318
+ /**
319
+ * @description 是否禁用组件,影响所有交互功能
320
+ * @descriptionEn Whether to disable the component, affects all interaction functionality
321
+ */
322
+ disabled: boolean;
323
+ /**
324
+ * @description 设置禁用状态的状态更新函数
325
+ * @descriptionEn State update function for setting disabled state
326
+ */
327
+ setDisabled: React.Dispatch<React.SetStateAction<boolean>>;
328
+ /**
329
+ * @description 获取当前禁用状态的同步函数
330
+ * @descriptionEn Synchronous function to get current disabled state
331
+ */
332
+ getDisabled: () => boolean;
333
+ }
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { useChatAnywhere } from "./ChatAnywhereProvider";
3
+
4
+ export function useInput() {
5
+ const { loading, disabled, setLoading, setDisabled, getLoading, getDisabled } = useChatAnywhere(v => ({
6
+ loading: v.loading,
7
+ getLoading: v.getLoading,
8
+ disabled: v.disabled,
9
+ getDisabled: v.getDisabled,
10
+ setLoading: v.setLoading,
11
+ setDisabled: v.setDisabled,
12
+ }));
13
+
14
+ return {
15
+ loading,
16
+ disabled,
17
+ setLoading,
18
+ setDisabled,
19
+ getLoading,
20
+ getDisabled,
21
+ }
22
+ }
@@ -0,0 +1,63 @@
1
+ import React from 'react';
2
+ import { useChatAnywhere } from "./ChatAnywhereProvider";
3
+ import { IChatAnywhereRef, TMessage } from './types';
4
+ export function useMessages() {
5
+ const { messages, setMessages, getMessages } = useChatAnywhere(v => ({
6
+ messages: v.messages,
7
+ setMessages: v.setMessages,
8
+ getMessages: v.getMessages,
9
+ }));
10
+
11
+
12
+ const updateMessage = React.useCallback<IChatAnywhereRef['updateMessage']>((...args) => {
13
+
14
+ const id = args[0]?.id || args[0];
15
+ const message = args[1] || args[0];
16
+
17
+
18
+ setMessages?.((prev) => {
19
+ const index = prev.findIndex((item) => item.id === id);
20
+ if (index > -1) {
21
+ const nextMessage = {
22
+ ...prev[index],
23
+ ...message
24
+ };
25
+ return [...prev.slice(0, index), nextMessage, ...prev.slice(index + 1)];
26
+ } else {
27
+ return [...prev, message];
28
+ }
29
+ });
30
+
31
+
32
+
33
+ // @ts-ignore
34
+ }, []);
35
+
36
+
37
+ const removeMessage = React.useCallback((message: Partial<TMessage>) => {
38
+ setMessages(prev => {
39
+ return prev.filter(item => item.id !== message.id);
40
+ })
41
+ }, []);
42
+
43
+
44
+ const removeAllMessages = React.useCallback(() => {
45
+ setMessages([]);
46
+ }, []);
47
+
48
+ const getMessage = React.useCallback((id: string) => {
49
+ return getMessages().find(item => item.id === id);
50
+ }, []);
51
+
52
+
53
+
54
+ return {
55
+ messages,
56
+ getMessage,
57
+ setMessages,
58
+ getMessages,
59
+ updateMessage,
60
+ removeMessage,
61
+ removeAllMessages,
62
+ }
63
+ }
@@ -0,0 +1,123 @@
1
+ import React from 'react';
2
+ import { useChatAnywhere } from './ChatAnywhereProvider';
3
+ import { v4 as uuid } from 'uuid';
4
+ import { TMessage, TSession } from './types';
5
+ import ReactDOM from 'react-dom';
6
+
7
+ export function useSessionList() {
8
+ const {
9
+ getCurrentSessionKey,
10
+ sessionList,
11
+ setSessionList,
12
+ currentSessionKey,
13
+ setCurrentSessionKey,
14
+ sessionListShow,
15
+ setSessionListShow,
16
+ currentRegenerateIndex,
17
+ setCurrentRegenerateIndex,
18
+ getCurrentRegenerateIndex,
19
+ getSessionList,
20
+ } = useChatAnywhere(v => ({
21
+ getCurrentSessionKey: v.getCurrentSessionKey,
22
+ currentRegenerateIndex: v.currentRegenerateIndex,
23
+ setCurrentRegenerateIndex: v.setCurrentRegenerateIndex,
24
+ getCurrentRegenerateIndex: v.getCurrentRegenerateIndex,
25
+ sessionListShow: v.sessionListShow,
26
+ setSessionListShow: v.setSessionListShow,
27
+ sessionList: v.sessionList,
28
+ setSessionList: v.setSessionList,
29
+ currentSessionKey: v.currentSessionKey,
30
+ setCurrentSessionKey: v.setCurrentSessionKey,
31
+ getSessionList: v.getSessionList,
32
+ }));
33
+
34
+
35
+ const createSession = React.useCallback(() => {
36
+ const newKey = uuid();
37
+ const newSession: TSession = {
38
+ label: Date.now().toString(),
39
+ key: newKey,
40
+ messages: [[]],
41
+ };
42
+
43
+ ReactDOM.flushSync(() => {
44
+ setSessionList((sessionList) => {
45
+ const newSessionList = [...sessionList, newSession];
46
+ return newSessionList;
47
+ });
48
+ setCurrentSessionKey(newKey);
49
+ });
50
+
51
+ return newKey;
52
+ }, []);
53
+
54
+ const deleteSession = React.useCallback((key: string) => {
55
+ setSessionList((sessionList) => {
56
+ const newSessionList = sessionList.filter((item) => item.key !== key);
57
+ return newSessionList;
58
+ });
59
+ }, []);
60
+
61
+
62
+ const updateSessionMessages = React.useCallback((messages: TMessage[]) => {
63
+ const currentSessionKey = getCurrentSessionKey();
64
+ const currentRegenerateIndex = getCurrentRegenerateIndex();
65
+
66
+ setSessionList((sessionList) => {
67
+ return sessionList.map((session) => {
68
+ if (session.key === currentSessionKey) {
69
+ session.messages[currentRegenerateIndex] = messages;
70
+ return { ...session };
71
+ }
72
+ return session;
73
+ });
74
+ });
75
+ }, []);
76
+
77
+
78
+ const getMessagesBySession = React.useCallback((currentSessionKey, currentRegenerateIndex) => {
79
+ return getSessionList().find((session) => session.key === currentSessionKey)?.messages[currentRegenerateIndex];
80
+ }, []);
81
+
82
+ const getSession = React.useCallback(() => {
83
+ return {
84
+ sessionList: getSessionList(),
85
+ currentSessionKey: getCurrentSessionKey(),
86
+ currentRegenerateIndex: getCurrentRegenerateIndex(),
87
+ }
88
+ }, []);
89
+
90
+
91
+ const updateSession = React.useCallback((data) => {
92
+ const {
93
+ sessionList,
94
+ currentSessionKey,
95
+ currentRegenerateIndex,
96
+ } = data;
97
+
98
+ setSessionList(sessionList);
99
+ setCurrentSessionKey(currentSessionKey);
100
+ setCurrentRegenerateIndex(currentRegenerateIndex);
101
+
102
+ }, []);
103
+
104
+
105
+ return {
106
+ currentRegenerateIndex,
107
+ setCurrentRegenerateIndex,
108
+ getCurrentRegenerateIndex,
109
+ sessionList,
110
+ setSessionList,
111
+ getSessionList,
112
+ currentSessionKey,
113
+ setCurrentSessionKey,
114
+ sessionListShow,
115
+ setSessionListShow,
116
+ createSession,
117
+ deleteSession,
118
+ updateSessionMessages,
119
+ getMessagesBySession,
120
+ getSession,
121
+ updateSession,
122
+ };
123
+ }
@@ -0,0 +1,49 @@
1
+ import React, { forwardRef, useMemo, useRef, useState } from 'react';
2
+ import Layout from './Layout';
3
+ import SessionList from './SessionList';
4
+ import Chat from './Chat';
5
+ import Header from './Header';
6
+ import { v4 as uuid } from 'uuid';
7
+ import { CustomCardsProvider } from '@agentscope-ai/chat';
8
+ import { ChatAnywhereProvider, ChatAnywhereRef, useChatAnywhere } from './hooks/ChatAnywhereProvider';
9
+ import ContextRef from './Chat/Ref';
10
+ import { IChatAnywhereConfig } from './hooks/types';
11
+ import { useMessages } from './hooks/useMessages';
12
+ import { useInput } from './hooks/useInput';
13
+ import { useSessionList } from './hooks/useSessionList';
14
+
15
+
16
+ export type { ChatAnywhereRef }
17
+ export { uuid, useChatAnywhere, useMessages, useInput, useSessionList };
18
+ export type { TMessage, TSession } from './hooks/types';
19
+
20
+ export default forwardRef(function (chatanywhereConfig: IChatAnywhereConfig, ref) {
21
+ const [key, setKey] = useState(0);
22
+ const { cardConfig, ...rest } = chatanywhereConfig;
23
+ const chatRef = useRef(null);
24
+ const inputRef = useRef(null);
25
+ const contextRef = useRef(null);
26
+
27
+ React.useImperativeHandle(ref, () => {
28
+ return {
29
+ ...chatRef.current,
30
+ ...inputRef.current,
31
+ ...contextRef.current,
32
+ reload: () => {
33
+ setKey(key => key + 1);
34
+ },
35
+ };
36
+ });
37
+
38
+ return <ChatAnywhereProvider {...rest} key={key}>
39
+ <CustomCardsProvider cardConfig={cardConfig}>
40
+ <Layout
41
+ top={rest.uiConfig?.header ? <Header /> : null}
42
+ left={rest.onSessionKeyChange ? <SessionList /> : null}
43
+ // @ts-ignore
44
+ right={<Chat ref={{ chatRef, inputRef }} />}
45
+ />
46
+ <ContextRef ref={contextRef} />
47
+ </CustomCardsProvider>
48
+ </ChatAnywhereProvider>
49
+ });
@@ -0,0 +1,28 @@
1
+ import { Typography } from 'antd';
2
+ import type { ConfigProviderProps, GetProp } from 'antd';
3
+ import classnames from 'classnames';
4
+ import React from 'react';
5
+
6
+ export interface GroupTitleProps {
7
+ /**
8
+ * @description 分组标题的内容,支持文本或React元素
9
+ * @descriptionEn Content of the group title, supports text or React elements
10
+ */
11
+ children?: React.ReactNode;
12
+ }
13
+
14
+ export const GroupTitleContext = React.createContext<{
15
+ prefixCls?: GetProp<ConfigProviderProps, 'prefixCls'>;
16
+ }>(null!);
17
+
18
+ const GroupTitle: React.FC<GroupTitleProps> = ({ children }) => {
19
+ const { prefixCls } = React.useContext(GroupTitleContext);
20
+
21
+ return (
22
+ <div className={classnames(`${prefixCls}-group-title`)}>
23
+ {children && <Typography.Text>{children}</Typography.Text>}
24
+ </div>
25
+ );
26
+ };
27
+
28
+ export default GroupTitle;