@ai-group/chat-sdk 2.0.4 → 2.1.1

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 (230) hide show
  1. package/dist/cjs/client/base.d.ts +2 -2
  2. package/dist/cjs/client/base.js.map +1 -1
  3. package/dist/cjs/components/DislikeFeedback.js +16 -1
  4. package/dist/cjs/components/DislikeFeedback.js.map +2 -2
  5. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +6 -0
  6. package/dist/cjs/components/{XAiWebSDKWrapper.js → XAdkChatbot/XAdkChatbot.stories.js} +29 -40
  7. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +7 -0
  8. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +9 -0
  9. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +158 -0
  10. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +7 -0
  11. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +40 -0
  12. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +59 -0
  13. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +7 -0
  14. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +6 -0
  15. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +95 -0
  16. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +7 -0
  17. package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.d.ts +8 -0
  18. package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js +49 -0
  19. package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js.map +7 -0
  20. package/dist/cjs/components/XAdkChatbot/index.d.ts +4 -0
  21. package/dist/cjs/components/XAdkChatbot/index.js +232 -0
  22. package/dist/cjs/components/XAdkChatbot/index.js.map +7 -0
  23. package/dist/cjs/components/XAdkChatbot/styles.d.ts +51 -0
  24. package/dist/cjs/components/XAdkChatbot/styles.js +159 -0
  25. package/dist/cjs/components/XAdkChatbot/styles.js.map +7 -0
  26. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +7 -0
  27. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +144 -0
  28. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +7 -0
  29. package/dist/cjs/components/XAdkWebProvider/index.d.ts +4 -0
  30. package/dist/cjs/components/XAdkWebProvider/index.js +349 -0
  31. package/dist/cjs/components/XAdkWebProvider/index.js.map +7 -0
  32. package/dist/cjs/components/XAdkWebProvider/styles.d.ts +38 -0
  33. package/dist/cjs/components/XAdkWebProvider/styles.js +50 -0
  34. package/dist/cjs/components/XAdkWebProvider/styles.js.map +7 -0
  35. package/dist/cjs/components/XAiChatbot/index.js +15 -13
  36. package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
  37. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +1 -0
  38. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +2 -2
  39. package/dist/cjs/components/XAiJsonView/index.d.ts +8 -0
  40. package/dist/cjs/components/XAiJsonView/index.js +81 -0
  41. package/dist/cjs/components/XAiJsonView/index.js.map +7 -0
  42. package/dist/cjs/components/XAiJsonView/styles.d.ts +39 -0
  43. package/dist/cjs/components/XAiJsonView/styles.js +58 -0
  44. package/dist/cjs/components/XAiJsonView/styles.js.map +7 -0
  45. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +1 -1
  46. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  47. package/dist/cjs/components/XAiSender/index.js +23 -17
  48. package/dist/cjs/components/XAiSender/index.js.map +2 -2
  49. package/dist/cjs/context/AiProviderContext.d.ts +3 -2
  50. package/dist/cjs/context/AiProviderContext.js.map +1 -1
  51. package/dist/cjs/hooks/useADKChat.d.ts +38 -0
  52. package/dist/cjs/hooks/useADKChat.js +595 -0
  53. package/dist/cjs/hooks/useADKChat.js.map +7 -0
  54. package/dist/cjs/hooks/useAgentGenerator.js +6 -6
  55. package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
  56. package/dist/cjs/hooks/useEventStreamRequest.js +6 -3
  57. package/dist/cjs/hooks/useEventStreamRequest.js.map +2 -2
  58. package/dist/cjs/index.d.ts +1 -2
  59. package/dist/cjs/index.js +0 -3
  60. package/dist/cjs/index.js.map +3 -3
  61. package/dist/cjs/services/api.d.ts +36 -19
  62. package/dist/cjs/services/api.js +7 -7
  63. package/dist/cjs/services/api.js.map +2 -2
  64. package/dist/cjs/types/XAdkChatbot.d.ts +197 -0
  65. package/dist/cjs/types/XAdkChatbot.js +18 -0
  66. package/dist/cjs/types/XAdkChatbot.js.map +7 -0
  67. package/dist/cjs/types/XAdkProvider.d.ts +117 -0
  68. package/dist/cjs/types/XAdkProvider.js +18 -0
  69. package/dist/cjs/types/XAdkProvider.js.map +7 -0
  70. package/dist/cjs/types/XAiChatbot.d.ts +2 -2
  71. package/dist/cjs/types/XAiChatbot.js.map +1 -1
  72. package/dist/cjs/types/XAiConversations.d.ts +2 -2
  73. package/dist/cjs/types/XAiConversations.js.map +1 -1
  74. package/dist/cjs/types/index.d.ts +1 -0
  75. package/dist/cjs/types/index.js +3 -1
  76. package/dist/cjs/types/index.js.map +2 -2
  77. package/dist/cjs/utils/providerManager.d.ts +7 -6
  78. package/dist/cjs/utils/providerManager.js.map +2 -2
  79. package/dist/cjs/utils/umdEntry.d.ts +6 -8
  80. package/dist/cjs/utils/umdEntry.js +4 -18
  81. package/dist/cjs/utils/umdEntry.js.map +3 -3
  82. package/dist/esm/client/base.d.ts +2 -2
  83. package/dist/esm/client/base.js.map +1 -1
  84. package/dist/esm/components/DislikeFeedback.js +18 -5
  85. package/dist/esm/components/DislikeFeedback.js.map +1 -1
  86. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +6 -0
  87. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +21 -0
  88. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +1 -0
  89. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +9 -0
  90. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +183 -0
  91. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -0
  92. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +40 -0
  93. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +14 -0
  94. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -0
  95. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +6 -0
  96. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +70 -0
  97. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -0
  98. package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.d.ts +8 -0
  99. package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js +32 -0
  100. package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js.map +1 -0
  101. package/dist/esm/components/XAdkChatbot/index.d.ts +4 -0
  102. package/dist/esm/components/XAdkChatbot/index.js +280 -0
  103. package/dist/esm/components/XAdkChatbot/index.js.map +1 -0
  104. package/dist/esm/components/XAdkChatbot/styles.d.ts +51 -0
  105. package/dist/esm/components/XAdkChatbot/styles.js +25 -0
  106. package/dist/esm/components/XAdkChatbot/styles.js.map +1 -0
  107. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +7 -0
  108. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +149 -0
  109. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -0
  110. package/dist/esm/components/XAdkWebProvider/index.d.ts +4 -0
  111. package/dist/esm/components/XAdkWebProvider/index.js +450 -0
  112. package/dist/esm/components/XAdkWebProvider/index.js.map +1 -0
  113. package/dist/esm/components/XAdkWebProvider/styles.d.ts +38 -0
  114. package/dist/esm/components/XAdkWebProvider/styles.js +13 -0
  115. package/dist/esm/components/XAdkWebProvider/styles.js.map +1 -0
  116. package/dist/esm/components/XAiChatbot/index.js +19 -23
  117. package/dist/esm/components/XAiChatbot/index.js.map +1 -1
  118. package/dist/esm/components/XAiConversations/XAiConversations.stories.js +3 -3
  119. package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +1 -1
  120. package/dist/esm/components/XAiJsonView/index.d.ts +8 -0
  121. package/dist/esm/components/XAiJsonView/index.js +44 -0
  122. package/dist/esm/components/XAiJsonView/index.js.map +1 -0
  123. package/dist/esm/components/XAiJsonView/styles.d.ts +39 -0
  124. package/dist/esm/components/XAiJsonView/styles.js +19 -0
  125. package/dist/esm/components/XAiJsonView/styles.js.map +1 -0
  126. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +1 -1
  127. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  128. package/dist/esm/components/XAiSender/index.js +2 -2
  129. package/dist/esm/components/XAiSender/index.js.map +1 -1
  130. package/dist/esm/context/AiProviderContext.d.ts +3 -2
  131. package/dist/esm/context/AiProviderContext.js.map +1 -1
  132. package/dist/esm/hooks/useADKChat.d.ts +38 -0
  133. package/dist/esm/hooks/useADKChat.js +855 -0
  134. package/dist/esm/hooks/useADKChat.js.map +1 -0
  135. package/dist/esm/hooks/useAgentGenerator.js +10 -10
  136. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  137. package/dist/esm/hooks/useEventStreamRequest.js +5 -2
  138. package/dist/esm/hooks/useEventStreamRequest.js.map +1 -1
  139. package/dist/esm/index.d.ts +1 -2
  140. package/dist/esm/index.js +1 -2
  141. package/dist/esm/index.js.map +1 -1
  142. package/dist/esm/services/api.d.ts +36 -19
  143. package/dist/esm/services/api.js +8 -8
  144. package/dist/esm/services/api.js.map +1 -1
  145. package/dist/esm/types/XAdkChatbot.d.ts +197 -0
  146. package/dist/esm/types/XAdkChatbot.js +2 -0
  147. package/dist/esm/types/XAdkChatbot.js.map +1 -0
  148. package/dist/esm/types/XAdkProvider.d.ts +117 -0
  149. package/dist/esm/types/XAdkProvider.js +2 -0
  150. package/dist/esm/types/XAdkProvider.js.map +1 -0
  151. package/dist/esm/types/XAiChatbot.d.ts +2 -2
  152. package/dist/esm/types/XAiChatbot.js.map +1 -1
  153. package/dist/esm/types/XAiConversations.d.ts +2 -2
  154. package/dist/esm/types/XAiConversations.js.map +1 -1
  155. package/dist/esm/types/index.d.ts +1 -0
  156. package/dist/esm/types/index.js +1 -0
  157. package/dist/esm/types/index.js.map +1 -1
  158. package/dist/esm/utils/providerManager.d.ts +7 -6
  159. package/dist/esm/utils/providerManager.js.map +1 -1
  160. package/dist/esm/utils/umdEntry.d.ts +6 -8
  161. package/dist/esm/utils/umdEntry.js +8 -37
  162. package/dist/esm/utils/umdEntry.js.map +1 -1
  163. package/dist/umd/chat-sdk.min.css +1 -0
  164. package/dist/umd/chat-sdk.min.js +1 -1
  165. package/dist/umd/static/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  166. package/dist/umd/static/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  167. package/dist/umd/static/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  168. package/dist/umd/static/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  169. package/dist/umd/static/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  170. package/dist/umd/static/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  171. package/dist/umd/static/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  172. package/dist/umd/static/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  173. package/dist/umd/static/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  174. package/dist/umd/static/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  175. package/dist/umd/static/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  176. package/dist/umd/static/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  177. package/dist/umd/static/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  178. package/dist/umd/static/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  179. package/dist/umd/static/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  180. package/dist/umd/static/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  181. package/dist/umd/static/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  182. package/dist/umd/static/KaTeX_Main-Bold.d181c465.woff +0 -0
  183. package/dist/umd/static/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  184. package/dist/umd/static/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  185. package/dist/umd/static/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  186. package/dist/umd/static/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  187. package/dist/umd/static/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  188. package/dist/umd/static/KaTeX_Main-Italic.9024d815.woff +0 -0
  189. package/dist/umd/static/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  190. package/dist/umd/static/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  191. package/dist/umd/static/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  192. package/dist/umd/static/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  193. package/dist/umd/static/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  194. package/dist/umd/static/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  195. package/dist/umd/static/KaTeX_Math-Italic.5295ba48.woff +0 -0
  196. package/dist/umd/static/KaTeX_Math-Italic.939bc644.ttf +0 -0
  197. package/dist/umd/static/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  198. package/dist/umd/static/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  199. package/dist/umd/static/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  200. package/dist/umd/static/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  201. package/dist/umd/static/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  202. package/dist/umd/static/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  203. package/dist/umd/static/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  204. package/dist/umd/static/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  205. package/dist/umd/static/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  206. package/dist/umd/static/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  207. package/dist/umd/static/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  208. package/dist/umd/static/KaTeX_Script-Regular.07505710.woff +0 -0
  209. package/dist/umd/static/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  210. package/dist/umd/static/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  211. package/dist/umd/static/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  212. package/dist/umd/static/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  213. package/dist/umd/static/KaTeX_Size2-Regular.57727022.woff +0 -0
  214. package/dist/umd/static/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  215. package/dist/umd/static/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  216. package/dist/umd/static/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  217. package/dist/umd/static/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  218. package/dist/umd/static/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  219. package/dist/umd/static/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  220. package/dist/umd/static/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  221. package/dist/umd/static/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  222. package/dist/umd/static/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  223. package/dist/umd/static/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  224. package/dist/umd/static/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  225. package/package.json +26 -19
  226. package/dist/cjs/components/XAiWebSDKWrapper.d.ts +0 -9
  227. package/dist/cjs/components/XAiWebSDKWrapper.js.map +0 -7
  228. package/dist/esm/components/XAiWebSDKWrapper.d.ts +0 -9
  229. package/dist/esm/components/XAiWebSDKWrapper.js +0 -45
  230. package/dist/esm/components/XAiWebSDKWrapper.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { BubbleDataType } from '@ant-design/x/es/bubble/BubbleList';
1
+ import BubbleDataType from "@ant-design/x/es/bubble/BubbleList";
2
2
  export interface AiClient {
3
3
  appName: string;
4
4
  icon: string;
@@ -6,4 +6,4 @@ export interface AiClient {
6
6
  stream?(message: string, onMessage: (msg: any) => void): void;
7
7
  close?(): void;
8
8
  }
9
- export type MessageType = BubbleDataType;
9
+ export type MessageType = typeof BubbleDataType;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/client/base.ts"],
4
- "sourcesContent": ["// baseClient.ts\nimport { BubbleDataType } from '@ant-design/x/es/bubble/BubbleList';\n\nexport interface AiClient {\n appName: string;\n icon: string;\n send(message: string): Promise<any>;\n stream?(message: string, onMessage: (msg: any) => void): void;\n close?(): void;\n}\n\nexport type MessageType = BubbleDataType;\n"],
4
+ "sourcesContent": ["// baseClient.ts\nimport BubbleDataType from \"@ant-design/x/es/bubble/BubbleList\"\n\nexport interface AiClient {\n appName: string;\n icon: string;\n send(message: string): Promise<any>;\n stream?(message: string, onMessage: (msg: any) => void): void;\n close?(): void;\n}\n\nexport type MessageType = typeof BubbleDataType;\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -39,6 +39,7 @@ var import_icons = require("@ant-design/icons");
39
39
  var import_FeedbackTags = __toESM(require("./FeedbackTags"));
40
40
  var import_jsx_runtime = require("react/jsx-runtime");
41
41
  var DislikeFeedback = ({ msg, activeColor, onSubmit }) => {
42
+ var _a;
42
43
  const [form] = import_antd.Form.useForm();
43
44
  const [showFeedback, setShowFeedback] = (0, import_react.useState)(false);
44
45
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -86,7 +87,21 @@ var DislikeFeedback = ({ msg, activeColor, onSubmit }) => {
86
87
  );
87
88
  } })
88
89
  ] }) }),
89
- children: msg.isLike === -1 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DislikeFilled, { style: { color: activeColor } }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DislikeOutlined, {})
90
+ children: (((_a = msg.raw) == null ? void 0 : _a.isLike) || msg.isLike) === -1 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
91
+ import_antd.Button,
92
+ {
93
+ type: "text",
94
+ size: "small",
95
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DislikeFilled, { style: { color: activeColor } })
96
+ }
97
+ ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
98
+ import_antd.Button,
99
+ {
100
+ type: "text",
101
+ size: "small",
102
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DislikeOutlined, { style: { color: "#949494" } })
103
+ }
104
+ )
90
105
  }
91
106
  );
92
107
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/DislikeFeedback.tsx"],
4
- "sourcesContent": ["import { Button, Form, Input, message, Popover } from 'antd';\nimport React, { useState } from 'react';\nimport { DislikeFilled, DislikeOutlined } from '@ant-design/icons';\nimport FeedbackTags from './FeedbackTags';\n\nexport interface DislikeFeedbackProps {\n msg: any;\n activeColor: string;\n onSubmit: (v: any) => Promise<boolean>;\n}\n\nexport const DislikeFeedback: React.FC<DislikeFeedbackProps> = ({ msg, activeColor, onSubmit }) => {\n const [form] = Form.useForm();\n const [showFeedback, setShowFeedback] = useState(false);\n return (\n <Popover\n trigger={['click']}\n open={showFeedback}\n onOpenChange={(v) => {\n const isLike = msg.isLike ?? 0;\n if (v && isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (v) {\n form.resetFields();\n }\n setShowFeedback(v);\n }}\n title={(\n <div>\n <div>抱歉,未能满足您的需求</div>\n <div style={{ color: '#999', fontWeight: 'normal', marginBottom: 12 }}>\n 为提升您的使用体验,请告诉我们不足的方向\n </div>\n </div>\n )}\n content={(\n <div>\n <Form form={form}>\n <Form.Item name=\"feedbackTags\" style={{ marginBottom: 12 }}>\n <FeedbackTags />\n </Form.Item>\n <Form.Item name=\"feedbackDescription\" style={{ marginBottom: 12 }}>\n <Input.TextArea rows={4} placeholder=\"欢迎说说你的想法\" />\n </Form.Item>\n <Form.Item dependencies={['feedbackTags', 'feedbackDescription']} noStyle>\n {({ getFieldValue }) => {\n const feedbackTags = getFieldValue('feedbackTags') || [];\n const feedbackDescription = getFieldValue('feedbackDescription');\n const disabled = !feedbackTags.length && !feedbackDescription;\n return (\n <Button\n type=\"primary\"\n block\n disabled={disabled}\n onClick={async () => {\n const formData = await form.validateFields();\n const res = await onSubmit(formData);\n if (res) {\n setShowFeedback(false);\n }\n }}\n >\n 提交反馈\n </Button>\n );\n }}\n </Form.Item>\n </Form>\n </div>\n )}\n >\n {msg.isLike === -1\n ? (\n <DislikeFilled style={{ color: activeColor }} />\n )\n : (\n <DislikeOutlined />\n )}\n </Popover>\n );\n};\n\nexport default DislikeFeedback;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAsD;AACtD,mBAAgC;AAChC,mBAA+C;AAC/C,0BAAyB;AA2BjB;AAnBD,IAAM,kBAAkD,CAAC,EAAE,KAAK,aAAa,SAAS,MAAM;AACjG,QAAM,CAAC,IAAI,IAAI,iBAAK,QAAQ;AAC5B,QAAM,CAAC,cAAc,eAAe,QAAI,uBAAS,KAAK;AACtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,CAAC,OAAO;AAAA,MACjB,MAAM;AAAA,MACN,cAAc,CAAC,MAAM;AACnB,cAAM,SAAS,IAAI,UAAU;AAC7B,YAAI,KAAK,WAAW,GAAG;AACrB,8BAAQ,QAAQ,gBAAgB;AAChC;AAAA,QACF;AACA,YAAI,GAAG;AACL,eAAK,YAAY;AAAA,QACnB;AACA,wBAAgB,CAAC;AAAA,MACnB;AAAA,MACA,OACE,6CAAC,SACC;AAAA,oDAAC,SAAI,yBAAW;AAAA,QAChB,4CAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,YAAY,UAAU,cAAc,GAAG,GAAG,kCAEvE;AAAA,SACF;AAAA,MAEF,SACE,4CAAC,SACC,uDAAC,oBAAK,MACJ;AAAA,oDAAC,iBAAK,MAAL,EAAU,MAAK,gBAAe,OAAO,EAAE,cAAc,GAAG,GACvD,sDAAC,oBAAAA,SAAA,EAAa,GAChB;AAAA,QACA,4CAAC,iBAAK,MAAL,EAAU,MAAK,uBAAsB,OAAO,EAAE,cAAc,GAAG,GAC9D,sDAAC,kBAAM,UAAN,EAAe,MAAM,GAAG,aAAY,YAAW,GAClD;AAAA,QACA,4CAAC,iBAAK,MAAL,EAAU,cAAc,CAAC,gBAAgB,qBAAqB,GAAG,SAAO,MACtE,WAAC,EAAE,cAAc,MAAM;AACtB,gBAAM,eAAe,cAAc,cAAc,KAAK,CAAC;AACvD,gBAAM,sBAAsB,cAAc,qBAAqB;AAC/D,gBAAM,WAAW,CAAC,aAAa,UAAU,CAAC;AAC1C,iBACE;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAK;AAAA,cACL;AAAA,cACA,SAAS,YAAY;AACnB,sBAAM,WAAW,MAAM,KAAK,eAAe;AAC3C,sBAAM,MAAM,MAAM,SAAS,QAAQ;AACnC,oBAAI,KAAK;AACP,kCAAgB,KAAK;AAAA,gBACvB;AAAA,cACF;AAAA,cACD;AAAA;AAAA,UAED;AAAA,QAEJ,GACF;AAAA,SACF,GACF;AAAA,MAGD,cAAI,WAAW,KAEZ,4CAAC,8BAAc,OAAO,EAAE,OAAO,YAAY,GAAG,IAG9C,4CAAC,gCAAgB;AAAA;AAAA,EAEvB;AAEJ;AAEA,IAAO,0BAAQ;",
4
+ "sourcesContent": ["import { Button, Form, Input, message, Popover } from 'antd';\nimport React, { useState } from 'react';\nimport { DislikeFilled, DislikeOutlined } from '@ant-design/icons';\nimport FeedbackTags from './FeedbackTags';\n\nexport interface DislikeFeedbackProps {\n msg: any;\n activeColor: string;\n onSubmit: (v: any) => Promise<boolean>;\n}\n\nexport const DislikeFeedback: React.FC<DislikeFeedbackProps> = ({ msg, activeColor, onSubmit }) => {\n const [form] = Form.useForm();\n const [showFeedback, setShowFeedback] = useState(false);\n return (\n <Popover\n trigger={['click']}\n open={showFeedback}\n onOpenChange={(v) => {\n const isLike = msg.isLike ?? 0;\n if (v && isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (v) {\n form.resetFields();\n }\n setShowFeedback(v);\n }}\n title={(\n <div>\n <div>抱歉,未能满足您的需求</div>\n <div style={{ color: '#999', fontWeight: 'normal', marginBottom: 12 }}>\n 为提升您的使用体验,请告诉我们不足的方向\n </div>\n </div>\n )}\n content={(\n <div>\n <Form form={form}>\n <Form.Item name=\"feedbackTags\" style={{ marginBottom: 12 }}>\n <FeedbackTags />\n </Form.Item>\n <Form.Item name=\"feedbackDescription\" style={{ marginBottom: 12 }}>\n <Input.TextArea rows={4} placeholder=\"欢迎说说你的想法\" />\n </Form.Item>\n <Form.Item dependencies={['feedbackTags', 'feedbackDescription']} noStyle>\n {({ getFieldValue }) => {\n const feedbackTags = getFieldValue('feedbackTags') || [];\n const feedbackDescription = getFieldValue('feedbackDescription');\n const disabled = !feedbackTags.length && !feedbackDescription;\n return (\n <Button\n type=\"primary\"\n block\n disabled={disabled}\n onClick={async () => {\n const formData = await form.validateFields();\n const res = await onSubmit(formData);\n if (res) {\n setShowFeedback(false);\n }\n }}\n >\n 提交反馈\n </Button>\n );\n }}\n </Form.Item>\n </Form>\n </div>\n )}\n >\n {(msg.raw?.isLike || msg.isLike) === -1\n ? (\n <Button\n type=\"text\"\n size=\"small\"\n icon={<DislikeFilled style={{ color: activeColor }} />}\n />\n )\n : (\n <Button\n type=\"text\"\n size=\"small\"\n icon={<DislikeOutlined style={{ color: '#949494' }} />}\n />\n )}\n </Popover>\n );\n};\n\nexport default DislikeFeedback;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAsD;AACtD,mBAAgC;AAChC,mBAA+C;AAC/C,0BAAyB;AA2BjB;AAnBD,IAAM,kBAAkD,CAAC,EAAE,KAAK,aAAa,SAAS,MAAM;AAXnG;AAYE,QAAM,CAAC,IAAI,IAAI,iBAAK,QAAQ;AAC5B,QAAM,CAAC,cAAc,eAAe,QAAI,uBAAS,KAAK;AACtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,CAAC,OAAO;AAAA,MACjB,MAAM;AAAA,MACN,cAAc,CAAC,MAAM;AACnB,cAAM,SAAS,IAAI,UAAU;AAC7B,YAAI,KAAK,WAAW,GAAG;AACrB,8BAAQ,QAAQ,gBAAgB;AAChC;AAAA,QACF;AACA,YAAI,GAAG;AACL,eAAK,YAAY;AAAA,QACnB;AACA,wBAAgB,CAAC;AAAA,MACnB;AAAA,MACA,OACE,6CAAC,SACC;AAAA,oDAAC,SAAI,yBAAW;AAAA,QAChB,4CAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,YAAY,UAAU,cAAc,GAAG,GAAG,kCAEvE;AAAA,SACF;AAAA,MAEF,SACE,4CAAC,SACC,uDAAC,oBAAK,MACJ;AAAA,oDAAC,iBAAK,MAAL,EAAU,MAAK,gBAAe,OAAO,EAAE,cAAc,GAAG,GACvD,sDAAC,oBAAAA,SAAA,EAAa,GAChB;AAAA,QACA,4CAAC,iBAAK,MAAL,EAAU,MAAK,uBAAsB,OAAO,EAAE,cAAc,GAAG,GAC9D,sDAAC,kBAAM,UAAN,EAAe,MAAM,GAAG,aAAY,YAAW,GAClD;AAAA,QACA,4CAAC,iBAAK,MAAL,EAAU,cAAc,CAAC,gBAAgB,qBAAqB,GAAG,SAAO,MACtE,WAAC,EAAE,cAAc,MAAM;AACtB,gBAAM,eAAe,cAAc,cAAc,KAAK,CAAC;AACvD,gBAAM,sBAAsB,cAAc,qBAAqB;AAC/D,gBAAM,WAAW,CAAC,aAAa,UAAU,CAAC;AAC1C,iBACE;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAK;AAAA,cACL;AAAA,cACA,SAAS,YAAY;AACnB,sBAAM,WAAW,MAAM,KAAK,eAAe;AAC3C,sBAAM,MAAM,MAAM,SAAS,QAAQ;AACnC,oBAAI,KAAK;AACP,kCAAgB,KAAK;AAAA,gBACvB;AAAA,cACF;AAAA,cACD;AAAA;AAAA,UAED;AAAA,QAEJ,GACF;AAAA,SACF,GACF;AAAA,MAGA,sBAAI,QAAJ,mBAAS,WAAU,IAAI,YAAY,KAE/B;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,MAAK;AAAA,UACL,MAAM,4CAAC,8BAAc,OAAO,EAAE,OAAO,YAAY,GAAG;AAAA;AAAA,MACtD,IAGA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,MAAK;AAAA,UACL,MAAM,4CAAC,gCAAgB,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA;AAAA,MACtD;AAAA;AAAA,EAER;AAEJ;AAEA,IAAO,0BAAQ;",
6
6
  "names": ["FeedbackTags"]
7
7
  }
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ import XAdkChatbot from '.';
3
+ declare const meta: Meta<typeof XAdkChatbot>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const 基础用法: Story;
@@ -26,46 +26,35 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  ));
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
28
 
29
- // src/components/XAiWebSDKWrapper.tsx
30
- var XAiWebSDKWrapper_exports = {};
31
- __export(XAiWebSDKWrapper_exports, {
32
- default: () => XAiWebSDKWrapper_default
29
+ // src/components/XAdkChatbot/XAdkChatbot.stories.tsx
30
+ var XAdkChatbot_stories_exports = {};
31
+ __export(XAdkChatbot_stories_exports, {
32
+ default: () => XAdkChatbot_stories_default,
33
+ 基础用法: () => 基础用法
33
34
  });
34
- module.exports = __toCommonJS(XAiWebSDKWrapper_exports);
35
- var import_react = require("react");
36
- var import_umdEntry = __toESM(require("../utils/umdEntry"));
37
- var import_jsx_runtime = require("react/jsx-runtime");
38
- var XAiWebSDKWrapper = ({
39
- onInit,
40
- onDestroy,
41
- ...sdkProps
42
- }) => {
43
- const sdkRef = (0, import_react.useRef)(null);
44
- const containerRef = (0, import_react.useRef)(null);
45
- (0, import_react.useEffect)(() => {
46
- if (containerRef.current && !sdkRef.current) {
47
- sdkRef.current = import_umdEntry.default.initChatbot({
48
- ...sdkProps,
49
- componentProps: {
50
- ...sdkProps.componentProps || {}
51
- // 保证容器 id 唯一或传递其它样式
52
- }
53
- });
54
- if (onInit && sdkRef.current) {
55
- onInit(sdkRef.current);
56
- }
35
+ module.exports = __toCommonJS(XAdkChatbot_stories_exports);
36
+ var import__ = __toESM(require("."));
37
+ var meta = {
38
+ title: "AI组件/XAdkChatbot 聊天框",
39
+ component: import__.default,
40
+ parameters: {
41
+ layout: "centered"
42
+ },
43
+ tags: ["autodocs"],
44
+ argTypes: {
45
+ messages: {
46
+ description: "消息列表"
57
47
  }
58
- return () => {
59
- if (sdkRef.current) {
60
- sdkRef.current.unmount();
61
- sdkRef.current = null;
62
- if (onDestroy) {
63
- onDestroy();
64
- }
65
- }
66
- };
67
- }, []);
68
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref: containerRef });
48
+ }
49
+ };
50
+ var XAdkChatbot_stories_default = meta;
51
+ var 基础用法 = {
52
+ args: {
53
+ messages: []
54
+ }
69
55
  };
70
- var XAiWebSDKWrapper_default = XAiWebSDKWrapper;
71
- //# sourceMappingURL=XAiWebSDKWrapper.js.map
56
+ // Annotate the CommonJS export names for ESM import in node:
57
+ 0 && (module.exports = {
58
+ 基础用法
59
+ });
60
+ //# sourceMappingURL=XAdkChatbot.stories.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/XAdkChatbot/XAdkChatbot.stories.tsx"],
4
+ "sourcesContent": ["import React, { useEffect, useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Divider } from 'antd';\nimport { MessageRole, MessageStatus } from '@/types/XAiMessage';\nimport type { Messages } from '@/types/XAiMessage';\nimport documentIcon from '@/assets/document.svg';\nimport XAiProvider from '../XAiProvider';\nimport XAdkChatbot from '.';\nimport { useProviderContext, useProviderMethods } from '@/hooks/useProviderContext';\n\nconst meta: Meta<typeof XAdkChatbot> = {\n title: 'AI组件/XAdkChatbot 聊天框',\n component: XAdkChatbot,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {\n messages: {\n description: '消息列表',\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const 基础用法: Story = {\n args: {\n messages: [],\n },\n};"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,eAAwB;AAGxB,IAAM,OAAiC;AAAA,EACrC,OAAO;AAAA,EACP,WAAW,SAAAA;AAAA,EACX,YAAY;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA,MAAM,CAAC,UAAU;AAAA,EACjB,UAAU;AAAA,IACR,UAAU;AAAA,MACR,aAAa;AAAA,IACf;AAAA,EACF;AACF;AAEA,IAAO,8BAAQ;AAGR,IAAM,OAAc;AAAA,EACzB,MAAM;AAAA,IACJ,UAAU,CAAC;AAAA,EACb;AACF;",
6
+ "names": ["XAdkChatbot"]
7
+ }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { IMessage } from "../../../../types";
3
+ export interface FunctionCallRenderProps {
4
+ msg: IMessage;
5
+ showDetail?: boolean;
6
+ onConfirm?: (confirmed: boolean) => void;
7
+ }
8
+ declare const FunctionCallRender: React.FC<FunctionCallRenderProps>;
9
+ export default FunctionCallRender;
@@ -0,0 +1,158 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/components/XAdkChatbot/components/FunctionCallRender/index.tsx
30
+ var FunctionCallRender_exports = {};
31
+ __export(FunctionCallRender_exports, {
32
+ default: () => FunctionCallRender_default
33
+ });
34
+ module.exports = __toCommonJS(FunctionCallRender_exports);
35
+ var import_antd = require("antd");
36
+ var import_icons = require("@ant-design/icons");
37
+ var import_styles = require("./styles");
38
+ var import_XAiJsonView = __toESM(require("../../../XAiJsonView"));
39
+ var import_jsx_runtime = require("react/jsx-runtime");
40
+ var FunctionCallRender = ({ msg, showDetail, onConfirm }) => {
41
+ var _a, _b, _c, _d, _e;
42
+ const styles = (0, import_styles.useStyles)();
43
+ const fnCall = msg.functionCall;
44
+ const fnRes = msg.functionResponse;
45
+ const name = (fnCall == null ? void 0 : fnCall.name) || (fnRes == null ? void 0 : fnRes.name);
46
+ if (name === "adk_request_confirmation") {
47
+ if (fnRes) {
48
+ if (msg.role === "bot")
49
+ return null;
50
+ const confirmed = (_a = fnRes.response) == null ? void 0 : _a.confirmed;
51
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: styles.wrapper, children: confirmed ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Alert, { message: "已确认", type: "success", showIcon: true, className: styles.alert }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Alert, { message: "已取消", type: "error", showIcon: true, className: styles.alert }) }, msg.id);
52
+ }
53
+ const originalFn = (_c = (_b = msg == null ? void 0 : msg.functionCall) == null ? void 0 : _b.args) == null ? void 0 : _c.originalFunctionCall;
54
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: styles.wrapper, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: styles.confirm, children: [
55
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mb-4", children: [
56
+ "请确认是否执行工具:",
57
+ originalFn == null ? void 0 : originalFn.name,
58
+ "?"
59
+ ] }),
60
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_antd.Flex, { justify: "end", gap: 8, children: [
61
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Button, { type: "default", onClick: () => onConfirm == null ? void 0 : onConfirm(false), children: "取消" }),
62
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Button, { type: "primary", onClick: () => onConfirm == null ? void 0 : onConfirm(true), children: "确认" })
63
+ ] })
64
+ ] }) }, msg.id);
65
+ }
66
+ if (name === "transferToAgent") {
67
+ const agentName = (_d = fnCall.args) == null ? void 0 : _d.agentName;
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: styles.wrapper, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: styles.fnCall, children: [
69
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.UserSwitchOutlined, { style: { color: "#888" } }),
70
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
71
+ import_antd.Typography.Text,
72
+ {
73
+ ellipsis: { tooltip: agentName },
74
+ style: { maxWidth: 300, lineHeight: "16px" },
75
+ children: [
76
+ "任务转交:",
77
+ agentName
78
+ ]
79
+ }
80
+ ),
81
+ msg.functionResponse ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.CheckCircleTwoTone, { twoToneColor: "#52c41a" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.LoadingOutlined, {})
82
+ ] }) }, msg.id);
83
+ }
84
+ const renderItem = (obj, text) => {
85
+ const str = JSON.stringify(obj, null, 2);
86
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
87
+ import_antd.Form.Item,
88
+ {
89
+ label: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_antd.Flex, { align: "center", children: [
90
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "mr-2", children: text }),
91
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
+ import_antd.Typography.Text,
93
+ {
94
+ copyable: {
95
+ text: str,
96
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.CopyOutlined, {})
97
+ }
98
+ }
99
+ )
100
+ ] }),
101
+ style: { marginBottom: 12 },
102
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAiJsonView.default, { value: str })
103
+ }
104
+ );
105
+ };
106
+ const renderResponse = () => {
107
+ var _a2;
108
+ const res = msg.functionResponse;
109
+ if (res) {
110
+ if ((_a2 = res.response) == null ? void 0 : _a2.error) {
111
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Tooltip, { title: res.response.error, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.InfoCircleOutlined, { style: { color: "#faad14" } }) });
112
+ }
113
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.CheckCircleTwoTone, { twoToneColor: "#52c41a" });
114
+ }
115
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.LoadingOutlined, {});
116
+ };
117
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: styles.wrapper, children: showDetail ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
118
+ import_antd.Popover,
119
+ {
120
+ placement: "left",
121
+ content: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_antd.Form, { style: { width: 400 }, layout: "vertical", children: [
122
+ renderItem(fnCall.args, "工具参数"),
123
+ renderItem((_e = msg.functionResponse) == null ? void 0 : _e.response, "工具响应")
124
+ ] }),
125
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: styles.fnCall, children: [
126
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.ToolOutlined, { style: { color: "#888" } }),
127
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
128
+ import_antd.Typography.Text,
129
+ {
130
+ ellipsis: { tooltip: name },
131
+ style: { maxWidth: 300, lineHeight: "16px" },
132
+ children: [
133
+ "调用工具:",
134
+ name
135
+ ]
136
+ }
137
+ ),
138
+ renderResponse()
139
+ ] })
140
+ }
141
+ ) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: styles.fnCall, children: [
142
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.ToolOutlined, { style: { color: "#888" } }),
143
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
144
+ import_antd.Typography.Text,
145
+ {
146
+ ellipsis: { tooltip: name },
147
+ style: { maxWidth: 300, lineHeight: "16px" },
148
+ children: [
149
+ "调用工具:",
150
+ name
151
+ ]
152
+ }
153
+ ),
154
+ renderResponse()
155
+ ] }) }, msg.id);
156
+ };
157
+ var FunctionCallRender_default = FunctionCallRender;
158
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/XAdkChatbot/components/FunctionCallRender/index.tsx"],
4
+ "sourcesContent": ["import React from 'react';\nimport { Alert, Button, Flex, Form, Popover, Tooltip, Typography } from 'antd';\nimport { CopyOutlined, ToolOutlined, CheckCircleTwoTone, LoadingOutlined, UserSwitchOutlined, InfoCircleOutlined } from '@ant-design/icons';\nimport type { IMessage, FunctionCall } from '@/types';\nimport { useStyles } from './styles';\nimport JsonView from '@/components/XAiJsonView';\n\nexport interface FunctionCallRenderProps {\n msg: IMessage;\n showDetail?: boolean;\n onConfirm?: (confirmed: boolean) => void;\n}\n\nconst FunctionCallRender: React.FC<FunctionCallRenderProps> = ({ msg, showDetail, onConfirm }) => {\n const styles = useStyles();\n const fnCall = msg.functionCall as FunctionCall;\n const fnRes = msg.functionResponse;\n const name = fnCall?.name || fnRes?.name;\n if (name === 'adk_request_confirmation') {\n if (fnRes) {\n if (msg.role === 'bot') return null;\n const confirmed = fnRes.response?.confirmed;\n return (\n <div key={msg.id} className={styles.wrapper}>\n {confirmed\n ? <Alert message=\"已确认\" type=\"success\" showIcon className={styles.alert} />\n : <Alert message=\"已取消\" type=\"error\" showIcon className={styles.alert} />}\n </div>\n );\n }\n const originalFn = msg?.functionCall?.args?.originalFunctionCall;\n return (\n <div key={msg.id} className={styles.wrapper}>\n <div className={styles.confirm}>\n <div className=\"mb-4\">请确认是否执行工具:{originalFn?.name}?</div>\n <Flex justify=\"end\" gap={8}>\n <Button type=\"default\" onClick={() => onConfirm?.(false)}>取消</Button>\n <Button type=\"primary\" onClick={() => onConfirm?.(true)}>\n 确认\n </Button>\n </Flex>\n </div>\n </div>\n );\n }\n if (name === 'transferToAgent') {\n const agentName = fnCall.args?.agentName;\n return (\n <div key={msg.id} className={styles.wrapper}>\n <div className={styles.fnCall}>\n <UserSwitchOutlined style={{ color: '#888' }} />\n <Typography.Text\n ellipsis={{ tooltip: agentName }}\n style={{ maxWidth: 300, lineHeight: '16px' }}\n >\n 任务转交:{agentName}\n </Typography.Text>\n {msg.functionResponse\n ? <CheckCircleTwoTone twoToneColor=\"#52c41a\" />\n : <LoadingOutlined />}\n </div>\n </div>\n );\n }\n const renderItem = (obj: any, text: string) => {\n const str = JSON.stringify(obj, null, 2);\n return (\n <Form.Item\n label={(\n <Flex align=\"center\">\n <span className=\"mr-2\">{text}</span>\n <Typography.Text\n copyable={{\n text: str,\n icon: <CopyOutlined />,\n }}\n />\n </Flex>\n )}\n style={{ marginBottom: 12 }}\n >\n <JsonView value={str} />\n </Form.Item>\n );\n };\n const renderResponse = () => {\n const res = msg.functionResponse;\n if (res) {\n if (res.response?.error) {\n return (\n <Tooltip title={res.response.error}>\n <InfoCircleOutlined style={{ color: '#faad14' }} />\n </Tooltip>\n );\n }\n return <CheckCircleTwoTone twoToneColor=\"#52c41a\" />;\n }\n return <LoadingOutlined />;\n };\n return (\n <div key={msg.id} className={styles.wrapper}>\n {showDetail ? (\n <Popover\n placement=\"left\"\n content={(\n <Form style={{ width: 400 }} layout=\"vertical\">\n {renderItem(fnCall.args, '工具参数')}\n {renderItem(msg.functionResponse?.response, '工具响应')}\n </Form>\n )}\n >\n <div className={styles.fnCall}>\n <ToolOutlined style={{ color: '#888' }} />\n <Typography.Text\n ellipsis={{ tooltip: name }}\n style={{ maxWidth: 300, lineHeight: '16px' }}\n >\n 调用工具:{name}\n </Typography.Text>\n {renderResponse()}\n </div>\n </Popover>\n ) : (\n <div className={styles.fnCall}>\n <ToolOutlined style={{ color: '#888' }} />\n <Typography.Text\n ellipsis={{ tooltip: name }}\n style={{ maxWidth: 300, lineHeight: '16px' }}\n >\n 调用工具:{name}\n </Typography.Text>\n {renderResponse()}\n </div>\n )}\n </div>\n );\n};\n\nexport default FunctionCallRender;\n"],
5
+ "mappings": "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",
6
+ "names": ["JsonView", "_a"]
7
+ }
@@ -0,0 +1,40 @@
1
+ export declare const useStyles: () => {
2
+ wrapper: string;
3
+ fnCall: string;
4
+ confirm: string;
5
+ alert: string;
6
+ } & {
7
+ w: (width: string | number) => string;
8
+ h: (height: string | number) => string;
9
+ p: (padding: string) => string;
10
+ pb: (padding: string | number) => string;
11
+ pt: (padding: string | number) => string;
12
+ pl: (padding: string | number) => string;
13
+ pr: (padding: string | number) => string;
14
+ m: (margin: string) => string;
15
+ mb: (margin: string | number) => string;
16
+ mt: (margin: string | number) => string;
17
+ ml: (margin: string | number) => string;
18
+ mr: (margin: string | number) => string;
19
+ text: (size: string | number) => string;
20
+ weight: (size: number) => string;
21
+ textColor: (c: string) => string;
22
+ bg: (c: string) => string;
23
+ rs: (radius: string | number) => string;
24
+ gap: (g: string | number) => string;
25
+ flex: string;
26
+ flexCenter: string;
27
+ flexBetween: string;
28
+ flexColumn: string;
29
+ flex1: string;
30
+ cursor: (type: string) => string;
31
+ border: (color: string, width?: string) => string;
32
+ boxShadow: (shadow: string) => string;
33
+ transition: (property?: string, duration?: string) => string;
34
+ overflow: (type: string) => string;
35
+ position: (type: string) => string;
36
+ zIndex: (index: number) => string;
37
+ flexCenterGap2: string;
38
+ flexCenterGap4: string;
39
+ };
40
+ export default useStyles;
@@ -0,0 +1,59 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/components/XAdkChatbot/components/FunctionCallRender/styles.tsx
20
+ var styles_exports = {};
21
+ __export(styles_exports, {
22
+ default: () => styles_default,
23
+ useStyles: () => useStyles
24
+ });
25
+ module.exports = __toCommonJS(styles_exports);
26
+ var import_css = require("@emotion/css");
27
+ var import_common = require("../../../../styles/common");
28
+ var useStyles = (0, import_common.withBasicStyles)(() => ({
29
+ wrapper: import_css.css`
30
+ display: flex;
31
+ justify-content: flex-start;
32
+ margin-bottom: 12px;
33
+ `,
34
+ fnCall: import_css.css`
35
+ display: flex;
36
+ align-items: center;
37
+ gap: 8px;
38
+ padding: 7px 12px;
39
+ border-radius: 24px;
40
+ line-height: 16px;
41
+ border: 1px solid #e7e7e7;
42
+ cursor: pointer;
43
+ `,
44
+ confirm: import_css.css`
45
+ padding: 12px;
46
+ border-radius: 12px;
47
+ border: 1px solid #e7e7e7;
48
+ `,
49
+ alert: import_css.css`
50
+ line-height: 1;
51
+ border-radius: 24px;
52
+ `
53
+ }));
54
+ var styles_default = useStyles;
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ useStyles
58
+ });
59
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/XAdkChatbot/components/FunctionCallRender/styles.tsx"],
4
+ "sourcesContent": ["import { css } from '@emotion/css';\nimport { withBasicStyles } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n wrapper: css`\n display: flex;\n justify-content: flex-start;\n margin-bottom: 12px;\n `,\n\n fnCall: css`\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 12px;\n border-radius: 24px;\n line-height: 16px;\n border: 1px solid #e7e7e7;\n cursor: pointer;\n `,\n\n confirm: css`\n padding: 12px;\n border-radius: 12px;\n border: 1px solid #e7e7e7;\n `,\n\n alert: css`\n line-height: 1;\n border-radius: 24px;\n `,\n}));\n\nexport default useStyles;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAoB;AACpB,oBAAgC;AAEzB,IAAM,gBAAY,+BAAgB,OAAO;AAAA,EAC9C,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWR,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,OAAO;AAAA;AAAA;AAAA;AAIT,EAAE;AAEF,IAAO,iBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface MarkdownRenderProps {
3
+ text: string;
4
+ }
5
+ declare const MarkdownRender: React.FC<MarkdownRenderProps>;
6
+ export default MarkdownRender;
@@ -0,0 +1,95 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/components/XAdkChatbot/components/MarkdownRender/index.tsx
30
+ var MarkdownRender_exports = {};
31
+ __export(MarkdownRender_exports, {
32
+ default: () => MarkdownRender_default
33
+ });
34
+ module.exports = __toCommonJS(MarkdownRender_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_x_markdown = __toESM(require("@ant-design/x-markdown"));
37
+ var import_HighlightCode = __toESM(require("@ant-design/x-markdown/plugins/HighlightCode"));
38
+ var import_Latex = __toESM(require("@ant-design/x-markdown/plugins/Latex"));
39
+ var import_antd = require("antd");
40
+ var import_icons = require("@ant-design/icons");
41
+ var import_jsx_runtime = require("react/jsx-runtime");
42
+ var CodeComponent = (props) => {
43
+ var _a;
44
+ const { className, children } = props;
45
+ const lang = ((_a = className == null ? void 0 : className.match(/language-(\w+)/)) == null ? void 0 : _a[1]) || "";
46
+ if (typeof children !== "string")
47
+ return null;
48
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_HighlightCode.default, { lang, children });
49
+ };
50
+ var ThinkComponent = import_react.default.memo((props) => {
51
+ const type = props.type || "";
52
+ const titleMap = {
53
+ planning: "规划",
54
+ replanning: "重新规划",
55
+ reasoning: "推理",
56
+ action: "行动",
57
+ final_answer: "最终答案"
58
+ };
59
+ const iconMap = {
60
+ planning: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.BarsOutlined, {}),
61
+ replanning: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.BarsOutlined, {}),
62
+ reasoning: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.BulbOutlined, {}),
63
+ action: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.ThunderboltOutlined, {}),
64
+ final_answer: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.CheckCircleOutlined, {})
65
+ };
66
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_antd.Flex, { align: "center", gap: 8, style: { color: "#888", margin: "4px 0" }, children: [
67
+ type in titleMap && iconMap[type],
68
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: titleMap[type] })
69
+ ] });
70
+ });
71
+ var MarkdownRender = ({ text }) => {
72
+ const markdown = text.replaceAll(/\/\*\s*PLANNING\s*\*\//g, '<tag type="planning"></tag>').replaceAll(/\/\*\s*REPLANNING\s*\*\//g, '<tag type="replanning"></tag>').replaceAll(/\/\*\s*REASONING\s*\*\//g, '<tag type="reasoning"></tag>').replaceAll(/\/\*\s*ACTION\s*\*\//g, '<tag type="action"></tag>').replaceAll(/\/\*\s*FINAL_ANSWER\s*\*\//g, '<tag type="final_answer"></tag>');
73
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
74
+ import_x_markdown.default,
75
+ {
76
+ content: markdown,
77
+ paragraphTag: "div",
78
+ config: {
79
+ extensions: (0, import_Latex.default)()
80
+ },
81
+ components: {
82
+ tag: ThinkComponent,
83
+ code: CodeComponent
84
+ },
85
+ streaming: {
86
+ enableAnimation: true,
87
+ animationConfig: {
88
+ fadeDuration: 400
89
+ }
90
+ }
91
+ }
92
+ );
93
+ };
94
+ var MarkdownRender_default = MarkdownRender;
95
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/XAdkChatbot/components/MarkdownRender/index.tsx"],
4
+ "sourcesContent": ["import React from 'react';\nimport XMarkdown, { type ComponentProps } from '@ant-design/x-markdown';\nimport HighlightCode from '@ant-design/x-markdown/plugins/HighlightCode';\nimport Latex from '@ant-design/x-markdown/plugins/Latex';\nimport { Flex } from 'antd';\nimport { BarsOutlined, BulbOutlined, ThunderboltOutlined, CheckCircleOutlined } from '@ant-design/icons';\n\nconst CodeComponent: React.FC<ComponentProps> = (props) => {\n const { className, children } = props;\n const lang = className?.match(/language-(\\w+)/)?.[1] || '';\n\n if (typeof children !== 'string') return null;\n return <HighlightCode lang={lang}>{children}</HighlightCode>;\n};\n\nexport interface MarkdownRenderProps {\n text: string;\n}\n\nconst ThinkComponent = React.memo((props: ComponentProps) => {\n const type = (props.type || '') as string;\n const titleMap: Record<string, string> = {\n planning: '规划',\n replanning: '重新规划',\n reasoning: '推理',\n action: '行动',\n final_answer: '最终答案',\n };\n const iconMap = {\n planning: <BarsOutlined />,\n replanning: <BarsOutlined />,\n reasoning: <BulbOutlined />,\n action: <ThunderboltOutlined />,\n final_answer: <CheckCircleOutlined />,\n };\n\n return (\n <Flex align=\"center\" gap={8} style={{ color: '#888', margin: '4px 0' }}>\n {type in titleMap && iconMap[type as keyof typeof iconMap]}\n <span>{titleMap[type]}</span>\n </Flex>\n );\n});\n\nconst MarkdownRender: React.FC<MarkdownRenderProps> = ({ text }) => {\n const markdown = text\n .replaceAll(/\\/\\*\\s*PLANNING\\s*\\*\\//g, '<tag type=\"planning\"></tag>')\n .replaceAll(/\\/\\*\\s*REPLANNING\\s*\\*\\//g, '<tag type=\"replanning\"></tag>')\n .replaceAll(/\\/\\*\\s*REASONING\\s*\\*\\//g, '<tag type=\"reasoning\"></tag>')\n .replaceAll(/\\/\\*\\s*ACTION\\s*\\*\\//g, '<tag type=\"action\"></tag>')\n .replaceAll(/\\/\\*\\s*FINAL_ANSWER\\s*\\*\\//g, '<tag type=\"final_answer\"></tag>');\n return (\n <XMarkdown\n content={markdown}\n paragraphTag=\"div\"\n config={{\n extensions: Latex(),\n }}\n components={{\n tag: ThinkComponent,\n code: CodeComponent,\n }}\n streaming={{\n enableAnimation: true,\n animationConfig: {\n fadeDuration: 400,\n },\n }}\n />\n );\n};\n\nexport default MarkdownRender;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,wBAA+C;AAC/C,2BAA0B;AAC1B,mBAAkB;AAClB,kBAAqB;AACrB,mBAAqF;AAO5E;AALT,IAAM,gBAA0C,CAAC,UAAU;AAP3D;AAQE,QAAM,EAAE,WAAW,SAAS,IAAI;AAChC,QAAM,SAAO,4CAAW,MAAM,sBAAjB,mBAAqC,OAAM;AAExD,MAAI,OAAO,aAAa;AAAU,WAAO;AACzC,SAAO,4CAAC,qBAAAA,SAAA,EAAc,MAAa,UAAS;AAC9C;AAMA,IAAM,iBAAiB,aAAAC,QAAM,KAAK,CAAC,UAA0B;AAC3D,QAAM,OAAQ,MAAM,QAAQ;AAC5B,QAAM,WAAmC;AAAA,IACvC,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,cAAc;AAAA,EAChB;AACA,QAAM,UAAU;AAAA,IACd,UAAU,4CAAC,6BAAa;AAAA,IACxB,YAAY,4CAAC,6BAAa;AAAA,IAC1B,WAAW,4CAAC,6BAAa;AAAA,IACzB,QAAQ,4CAAC,oCAAoB;AAAA,IAC7B,cAAc,4CAAC,oCAAoB;AAAA,EACrC;AAEA,SACE,6CAAC,oBAAK,OAAM,UAAS,KAAK,GAAG,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,GAClE;AAAA,YAAQ,YAAY,QAAQ,IAA4B;AAAA,IACzD,4CAAC,UAAM,mBAAS,IAAI,GAAE;AAAA,KACxB;AAEJ,CAAC;AAED,IAAM,iBAAgD,CAAC,EAAE,KAAK,MAAM;AAClE,QAAM,WAAW,KACd,WAAW,2BAA2B,6BAA6B,EACnE,WAAW,6BAA6B,+BAA+B,EACvE,WAAW,4BAA4B,8BAA8B,EACrE,WAAW,yBAAyB,2BAA2B,EAC/D,WAAW,+BAA+B,iCAAiC;AAC9E,SACE;AAAA,IAAC,kBAAAC;AAAA,IAAA;AAAA,MACC,SAAS;AAAA,MACT,cAAa;AAAA,MACb,QAAQ;AAAA,QACN,gBAAY,aAAAC,SAAM;AAAA,MACpB;AAAA,MACA,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,MACR;AAAA,MACA,WAAW;AAAA,QACT,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,UACf,cAAc;AAAA,QAChB;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,yBAAQ;",
6
+ "names": ["HighlightCode", "React", "XMarkdown", "Latex"]
7
+ }
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { IMessage } from "../../../../types";
3
+ export interface ThinkRenderProps {
4
+ msg: IMessage;
5
+ loading?: boolean;
6
+ }
7
+ declare const ThinkRender: React.FC<ThinkRenderProps>;
8
+ export default ThinkRender;