@ai-group/chat-sdk 2.1.13 → 2.1.14

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 (68) hide show
  1. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +1 -1
  2. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +41 -5
  3. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +2 -2
  4. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +1 -0
  5. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +14 -3
  6. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +2 -2
  7. package/dist/cjs/components/XAdkChatbot/index.d.ts +1 -1
  8. package/dist/cjs/components/XAdkChatbot/index.js +30 -13
  9. package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
  10. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +2 -2
  11. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +26 -9
  12. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +2 -2
  13. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +6 -0
  14. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js +180 -0
  15. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +7 -0
  16. package/dist/cjs/components/XAiThoughtChain/index.d.ts +4 -0
  17. package/dist/cjs/components/XAiThoughtChain/index.js +155 -0
  18. package/dist/cjs/components/XAiThoughtChain/index.js.map +7 -0
  19. package/dist/cjs/components/XAiThoughtChain/styles.d.ts +60 -0
  20. package/dist/cjs/components/XAiThoughtChain/styles.js +195 -0
  21. package/dist/cjs/components/XAiThoughtChain/styles.js.map +7 -0
  22. package/dist/cjs/hooks/useADKChat.d.ts +2 -2
  23. package/dist/cjs/hooks/useADKChat.js +228 -180
  24. package/dist/cjs/hooks/useADKChat.js.map +2 -2
  25. package/dist/cjs/types/XAiThoughtChain.d.ts +25 -0
  26. package/dist/cjs/types/XAiThoughtChain.js +18 -0
  27. package/dist/cjs/types/XAiThoughtChain.js.map +7 -0
  28. package/dist/cjs/types/index.d.ts +9 -8
  29. package/dist/cjs/types/index.js +2 -0
  30. package/dist/cjs/types/index.js.map +2 -2
  31. package/dist/cjs/utils/index.d.ts +1 -0
  32. package/dist/cjs/utils/index.js +7 -0
  33. package/dist/cjs/utils/index.js.map +2 -2
  34. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +1 -1
  35. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +17 -15
  36. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -1
  37. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +1 -0
  38. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +7 -6
  39. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -1
  40. package/dist/esm/components/XAdkChatbot/index.d.ts +1 -1
  41. package/dist/esm/components/XAdkChatbot/index.js +20 -18
  42. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  43. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +2 -2
  44. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +45 -40
  45. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -1
  46. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +6 -0
  47. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js +159 -0
  48. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +1 -0
  49. package/dist/esm/components/XAiThoughtChain/index.d.ts +4 -0
  50. package/dist/esm/components/XAiThoughtChain/index.js +180 -0
  51. package/dist/esm/components/XAiThoughtChain/index.js.map +1 -0
  52. package/dist/esm/components/XAiThoughtChain/styles.d.ts +60 -0
  53. package/dist/esm/components/XAiThoughtChain/styles.js +40 -0
  54. package/dist/esm/components/XAiThoughtChain/styles.js.map +1 -0
  55. package/dist/esm/hooks/useADKChat.d.ts +2 -2
  56. package/dist/esm/hooks/useADKChat.js +59 -57
  57. package/dist/esm/hooks/useADKChat.js.map +1 -1
  58. package/dist/esm/types/XAiThoughtChain.d.ts +25 -0
  59. package/dist/esm/types/XAiThoughtChain.js +2 -0
  60. package/dist/esm/types/XAiThoughtChain.js.map +1 -0
  61. package/dist/esm/types/index.d.ts +9 -8
  62. package/dist/esm/types/index.js +1 -0
  63. package/dist/esm/types/index.js.map +1 -1
  64. package/dist/esm/utils/index.d.ts +1 -0
  65. package/dist/esm/utils/index.js +4 -0
  66. package/dist/esm/utils/index.js.map +1 -1
  67. package/dist/umd/chat-sdk.min.js +1 -1
  68. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
2
- import React, { useMemo, useCallback, useEffect, useRef } from 'react';
3
- import { Button } from 'antd';
4
- import { SwapRightOutlined } from '@ant-design/icons';
2
+ import React, { useMemo, useCallback, useEffect, useRef } from "react";
3
+ import { Button } from "antd";
4
+ import { SwapRightOutlined } from "@ant-design/icons";
5
5
  import { useStyles } from "./styles";
6
6
  import MarkdownRender from "./components/MarkdownRender";
7
7
  import FunctionCallRender from "./components/FunctionCallRender";
@@ -42,7 +42,7 @@ var XAdkChatbot = function XAdkChatbot(_ref) {
42
42
  if (!loading) return;
43
43
  if (userHasScrolledRef.current) return;
44
44
  (_messagesEndRef$curre = messagesEndRef.current) === null || _messagesEndRef$curre === void 0 || _messagesEndRef$curre.scrollIntoView({
45
- behavior: 'smooth'
45
+ behavior: "smooth"
46
46
  });
47
47
  }, [loading, messages]);
48
48
 
@@ -69,9 +69,9 @@ var XAdkChatbot = function XAdkChatbot(_ref) {
69
69
  useEffect(function () {
70
70
  var listElement = listRef.current;
71
71
  if (!listElement) return;
72
- listElement.addEventListener('scroll', handleScroll);
72
+ listElement.addEventListener("scroll", handleScroll);
73
73
  return function () {
74
- listElement.removeEventListener('scroll', handleScroll);
74
+ listElement.removeEventListener("scroll", handleScroll);
75
75
  };
76
76
  }, []);
77
77
 
@@ -89,7 +89,7 @@ var XAdkChatbot = function XAdkChatbot(_ref) {
89
89
  queueMicrotask(function () {
90
90
  var _messagesEndRef$curre2;
91
91
  (_messagesEndRef$curre2 = messagesEndRef.current) === null || _messagesEndRef$curre2 === void 0 || _messagesEndRef$curre2.scrollIntoView({
92
- behavior: 'instant'
92
+ behavior: "instant"
93
93
  });
94
94
  });
95
95
  // 重置用户滚动状态
@@ -105,7 +105,7 @@ var XAdkChatbot = function XAdkChatbot(_ref) {
105
105
  try {
106
106
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
107
107
  var msg = _step.value;
108
- if (msg.role === 'bot' && msg.invocationId) {
108
+ if (msg.role === "bot" && msg.invocationId) {
109
109
  map.set(msg.invocationId, msg.id);
110
110
  }
111
111
  }
@@ -121,11 +121,13 @@ var XAdkChatbot = function XAdkChatbot(_ref) {
121
121
  children: [/*#__PURE__*/_jsxs("div", {
122
122
  className: styles.list,
123
123
  ref: listRef,
124
- children: [/*#__PURE__*/_jsx("div", {
124
+ children: [prologue && /*#__PURE__*/_jsx("div", {
125
125
  className: styles.prologue,
126
- children: prologue
126
+ children: /*#__PURE__*/_jsx(MarkdownRender, {
127
+ text: prologue
128
+ })
127
129
  }), messages.map(function (msg, i) {
128
- if (msg.role === 'user') {
130
+ if (msg.role === "user") {
129
131
  if (msg.text) {
130
132
  return /*#__PURE__*/_jsx("div", {
131
133
  className: styles.userMsg,
@@ -148,7 +150,7 @@ var XAdkChatbot = function XAdkChatbot(_ref) {
148
150
  }
149
151
  var isLast = i === lastIndex;
150
152
  var isLoading = isLast && loading;
151
- var isLastBotMsg = lastMessageMap.get((msg === null || msg === void 0 ? void 0 : msg.invocationId) || '') === msg.id;
153
+ var isLastBotMsg = lastMessageMap.get((msg === null || msg === void 0 ? void 0 : msg.invocationId) || "") === msg.id;
152
154
  if (msg.text) {
153
155
  if (msg.thought) {
154
156
  return /*#__PURE__*/_jsxs("div", {
@@ -212,12 +214,12 @@ var XAdkChatbot = function XAdkChatbot(_ref) {
212
214
  onSuggest === null || onSuggest === void 0 || onSuggest(item);
213
215
  },
214
216
  style: {
215
- whiteSpace: 'normal',
216
- height: 'auto',
217
- wordWrap: 'break-word',
218
- textAlign: 'left',
219
- padding: '4px 15px',
220
- lineHeight: '1.5'
217
+ whiteSpace: "normal",
218
+ height: "auto",
219
+ wordWrap: "break-word",
220
+ textAlign: "left",
221
+ padding: "4px 15px",
222
+ lineHeight: "1.5"
221
223
  },
222
224
  children: item
223
225
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","useCallback","useEffect","useRef","Button","SwapRightOutlined","useStyles","MarkdownRender","FunctionCallRender","ThinkRender","XAdkSender","jsx","_jsx","jsxs","_jsxs","scrollThreshold","XAdkChatbot","_ref","_ref$allowUpload","allowUpload","_ref$uploadRequest","uploadRequest","_ref$loading","loading","prologue","suggestions","messages","_ref$initialized","initialized","footer","showFnCallDetail","_ref$clearBtnShow","clearBtnShow","onConfirm","onSubmit","onSuggest","onStop","onClear","styles","listRef","lastScrollTopRef","userHasScrolledRef","messagesEndRef","_messagesEndRef$curre","current","scrollIntoView","behavior","handleScroll","el","currentTop","scrollTop","isAtBottom","Math","abs","scrollHeight","clientHeight","listElement","addEventListener","removeEventListener","handleSubmit","_ref2","text","files","trim","queueMicrotask","_messagesEndRef$curre2","setTimeout","lastIndex","length","lastMessageMap","map","Map","_iterator","_createForOfIteratorHelper","_step","s","n","done","msg","value","role","invocationId","set","id","err","e","f","className","wrapper","children","list","ref","i","userMsg","card","concat","functionResponse","showDetail","isLast","isLoading","isLastBotMsg","get","thought","botMsg","message","isLastMsg","fnCall","functionCall","item","suggestion","suggestContent","type","icon","iconPosition","onClick","style","whiteSpace","height","wordWrap","textAlign","padding","lineHeight"],"sources":["../../../../src/components/XAdkChatbot/index.tsx"],"sourcesContent":["import React, { useMemo, useCallback, useEffect, useRef } from 'react';\nimport { Button } from 'antd';\nimport { SwapRightOutlined } from '@ant-design/icons';\nimport { useStyles } from './styles';\nimport MarkdownRender from './components/MarkdownRender';\nimport FunctionCallRender from './components/FunctionCallRender';\nimport ThinkRender from './components/ThinkRender';\nimport XAdkSender from '../XAdkSender';\nimport type { IMessage, XAdkChatbotProps, SendContent } from '@/types';\n\nconst scrollThreshold = 10; // 滚动阈值\n\n\nconst XAdkChatbot: React.FC<XAdkChatbotProps> = ({ \n allowUpload = false,\n uploadRequest = () => {},\n loading = false,\n prologue,\n suggestions,\n messages,\n initialized = true,\n footer,\n showFnCallDetail,\n clearBtnShow = true,\n onConfirm,\n onSubmit,\n onSuggest,\n onStop,\n onClear,\n }) => {\n const styles = useStyles();\n const listRef = useRef<HTMLDivElement>(null);\n const lastScrollTopRef = useRef(0);\n const userHasScrolledRef = useRef(false);\n const messagesEndRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!loading) return;\n if (userHasScrolledRef.current) return;\n messagesEndRef.current?.scrollIntoView({\n behavior: 'smooth',\n });\n }, [loading, messages]);\n\n // 处理滚动事件 - 检测用户是否手动滚动\n const handleScroll = useCallback(() => {\n const el = listRef.current;\n if (!el) return;\n const currentTop = el.scrollTop;\n // 如果向上滚动,说明是手动干预\n if (currentTop < lastScrollTopRef.current) {\n userHasScrolledRef.current = true;\n }\n // 如果向下并且已经到了底部,则恢复自动\n const isAtBottom = \n Math.abs(el.scrollHeight - currentTop - el.clientHeight) <= scrollThreshold;\n\n if (isAtBottom) {\n userHasScrolledRef.current = false;\n }\n\n // 更新上次位置\n lastScrollTopRef.current = currentTop;\n }, []);\n\n // 监听滚动事件\n useEffect(() => {\n const listElement = listRef.current\n if (!listElement) return;\n\n listElement.addEventListener('scroll', handleScroll);\n return () => {\n listElement.removeEventListener('scroll', handleScroll);\n };\n }, []);\n\n // 发送消息\n const handleSubmit = ({ text, files }: SendContent) => {\n if (loading) return;\n if (!text?.trim()) return;\n onSubmit?.({ text, files });\n // 滚动\n queueMicrotask(() => {\n messagesEndRef.current?.scrollIntoView({ behavior: 'instant' });\n });\n // 重置用户滚动状态\n setTimeout(() => {\n userHasScrolledRef.current = false;\n }, 0);\n };\n\n const lastIndex = messages.length - 1;\n\n const lastMessageMap = useMemo(() => {\n const map = new Map<string, string>();\n for (const msg of messages) {\n if (msg.role === 'bot' && msg.invocationId) {\n map.set(msg.invocationId, msg.id);\n }\n }\n return map;\n }, [messages]);\n\n return (\n <div className={styles.wrapper}>\n <div className={styles.list} ref={listRef}>\n <div className={styles.prologue}>\n {prologue}\n </div>\n {messages.map((msg, i) => {\n if (msg.role === 'user') {\n if (msg.text) {\n return (\n <div key={`${msg.id}-${i}`} className={styles.userMsg}>\n <div className={styles.card}>{msg.text}</div>\n </div>\n );\n }\n if (msg.functionResponse) {\n return (\n <div key={`${msg.id}-${i}`} className={styles.userMsg}>\n <FunctionCallRender msg={msg} showDetail={showFnCallDetail} />\n </div>\n );\n }\n return null;\n }\n const isLast = i === lastIndex;\n const isLoading = isLast && loading;\n const isLastBotMsg = lastMessageMap.get(msg?.invocationId || '') === msg.id;\n \n if (msg.text) {\n if (msg.thought) {\n return (\n <div key={`${msg.id}-${i}`} className={styles.botMsg}>\n <ThinkRender\n msg={msg}\n loading={isLoading}\n />\n {!isLoading && footer?.({ message: msg as IMessage, isLastMsg: isLast, isLastBotMsg })}\n </div>\n );\n }\n return (\n <div key={`${msg.id}-${i}`} className={styles.botMsg}>\n <MarkdownRender text={msg.text} />\n {!isLoading && footer?.({ message: msg as IMessage, isLastMsg: isLast, isLastBotMsg })}\n </div>\n );\n }\n const fnCall = msg.functionCall;\n if (fnCall) {\n return (\n <div key={`${msg.id}-${i}`} className={styles.botMsg}>\n <FunctionCallRender msg={msg} showDetail={showFnCallDetail} onConfirm={onConfirm}/>\n {!isLoading && footer?.({ message: msg as IMessage, isLastMsg: isLast, isLastBotMsg })}\n </div>\n );\n }\n return (\n <div key={`${msg.id}-${i}`} className={styles.botMsg}>\n {!isLoading && footer?.({ message: msg as IMessage, isLastMsg: isLast, isLastBotMsg })}\n </div>\n );\n })}\n <div>\n {suggestions?.map((item) => (\n <div key={item} className={styles.suggestion}>\n <div className={styles.suggestContent}>\n <Button\n type=\"text\"\n icon={<SwapRightOutlined />}\n iconPosition='end'\n onClick={() => {\n if (!item) return;\n onSuggest?.(item);\n }}\n style={{ \n whiteSpace: 'normal',\n height: 'auto',\n wordWrap: 'break-word',\n textAlign: 'left',\n padding: '4px 15px',\n lineHeight: '1.5'\n }}\n >\n {item}\n </Button>\n </div>\n </div>\n ))}\n </div>\n <div ref={messagesEndRef} />\n </div>\n <XAdkSender\n allowUpload={allowUpload}\n uploadRequest={uploadRequest}\n loading={loading}\n clearBtnShow={clearBtnShow}\n onSubmit={handleSubmit}\n onClear={onClear}\n onStop={onStop}\n />\n </div>\n );\n};\n\nexport default XAdkChatbot;"],"mappings":"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"}
1
+ {"version":3,"names":["React","useMemo","useCallback","useEffect","useRef","Button","SwapRightOutlined","useStyles","MarkdownRender","FunctionCallRender","ThinkRender","XAdkSender","jsx","_jsx","jsxs","_jsxs","scrollThreshold","XAdkChatbot","_ref","_ref$allowUpload","allowUpload","_ref$uploadRequest","uploadRequest","_ref$loading","loading","prologue","suggestions","messages","_ref$initialized","initialized","footer","showFnCallDetail","_ref$clearBtnShow","clearBtnShow","onConfirm","onSubmit","onSuggest","onStop","onClear","styles","listRef","lastScrollTopRef","userHasScrolledRef","messagesEndRef","_messagesEndRef$curre","current","scrollIntoView","behavior","handleScroll","el","currentTop","scrollTop","isAtBottom","Math","abs","scrollHeight","clientHeight","listElement","addEventListener","removeEventListener","handleSubmit","_ref2","text","files","trim","queueMicrotask","_messagesEndRef$curre2","setTimeout","lastIndex","length","lastMessageMap","map","Map","_iterator","_createForOfIteratorHelper","_step","s","n","done","msg","value","role","invocationId","set","id","err","e","f","className","wrapper","children","list","ref","i","userMsg","card","concat","functionResponse","showDetail","isLast","isLoading","isLastBotMsg","get","thought","botMsg","message","isLastMsg","fnCall","functionCall","item","suggestion","suggestContent","type","icon","iconPosition","onClick","style","whiteSpace","height","wordWrap","textAlign","padding","lineHeight"],"sources":["../../../../src/components/XAdkChatbot/index.tsx"],"sourcesContent":["import React, { useMemo, useCallback, useEffect, useRef } from \"react\";\nimport { Button } from \"antd\";\nimport { SwapRightOutlined } from \"@ant-design/icons\";\nimport { useStyles } from \"./styles\";\nimport MarkdownRender from \"./components/MarkdownRender\";\nimport FunctionCallRender from \"./components/FunctionCallRender\";\nimport ThinkRender from \"./components/ThinkRender\";\nimport XAdkSender from \"../XAdkSender\";\nimport type { IMessage, XAdkChatbotProps, SendContent } from \"@/types\";\n\nconst scrollThreshold = 10; // 滚动阈值\n\nconst XAdkChatbot: React.FC<XAdkChatbotProps> = ({\n allowUpload = false,\n uploadRequest = () => {},\n loading = false,\n prologue,\n suggestions,\n messages,\n initialized = true,\n footer,\n showFnCallDetail,\n clearBtnShow = true,\n onConfirm,\n onSubmit,\n onSuggest,\n onStop,\n onClear,\n}) => {\n const styles = useStyles();\n const listRef = useRef<HTMLDivElement>(null);\n const lastScrollTopRef = useRef(0);\n const userHasScrolledRef = useRef(false);\n const messagesEndRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!loading) return;\n if (userHasScrolledRef.current) return;\n messagesEndRef.current?.scrollIntoView({\n behavior: \"smooth\",\n });\n }, [loading, messages]);\n\n // 处理滚动事件 - 检测用户是否手动滚动\n const handleScroll = useCallback(() => {\n const el = listRef.current;\n if (!el) return;\n const currentTop = el.scrollTop;\n // 如果向上滚动,说明是手动干预\n if (currentTop < lastScrollTopRef.current) {\n userHasScrolledRef.current = true;\n }\n // 如果向下并且已经到了底部,则恢复自动\n const isAtBottom =\n Math.abs(el.scrollHeight - currentTop - el.clientHeight) <=\n scrollThreshold;\n\n if (isAtBottom) {\n userHasScrolledRef.current = false;\n }\n\n // 更新上次位置\n lastScrollTopRef.current = currentTop;\n }, []);\n\n // 监听滚动事件\n useEffect(() => {\n const listElement = listRef.current;\n if (!listElement) return;\n\n listElement.addEventListener(\"scroll\", handleScroll);\n return () => {\n listElement.removeEventListener(\"scroll\", handleScroll);\n };\n }, []);\n\n // 发送消息\n const handleSubmit = ({ text, files }: SendContent) => {\n if (loading) return;\n if (!text?.trim()) return;\n onSubmit?.({ text, files });\n // 滚动\n queueMicrotask(() => {\n messagesEndRef.current?.scrollIntoView({ behavior: \"instant\" });\n });\n // 重置用户滚动状态\n setTimeout(() => {\n userHasScrolledRef.current = false;\n }, 0);\n };\n\n const lastIndex = messages.length - 1;\n\n const lastMessageMap = useMemo(() => {\n const map = new Map<string, string>();\n for (const msg of messages) {\n if (msg.role === \"bot\" && msg.invocationId) {\n map.set(msg.invocationId, msg.id);\n }\n }\n return map;\n }, [messages]);\n\n return (\n <div className={styles.wrapper}>\n <div className={styles.list} ref={listRef}>\n {prologue && (\n <div className={styles.prologue}>\n <MarkdownRender text={prologue} />\n </div>\n )}\n {messages.map((msg, i) => {\n if (msg.role === \"user\") {\n if (msg.text) {\n return (\n <div key={`${msg.id}-${i}`} className={styles.userMsg}>\n <div className={styles.card}>{msg.text}</div>\n </div>\n );\n }\n if (msg.functionResponse) {\n return (\n <div key={`${msg.id}-${i}`} className={styles.userMsg}>\n <FunctionCallRender msg={msg} showDetail={showFnCallDetail} />\n </div>\n );\n }\n return null;\n }\n const isLast = i === lastIndex;\n const isLoading = isLast && loading;\n const isLastBotMsg =\n lastMessageMap.get(msg?.invocationId || \"\") === msg.id;\n\n if (msg.text) {\n if (msg.thought) {\n return (\n <div key={`${msg.id}-${i}`} className={styles.botMsg}>\n <ThinkRender msg={msg} loading={isLoading} />\n {!isLoading &&\n footer?.({\n message: msg as IMessage,\n isLastMsg: isLast,\n isLastBotMsg,\n })}\n </div>\n );\n }\n return (\n <div key={`${msg.id}-${i}`} className={styles.botMsg}>\n <MarkdownRender text={msg.text} />\n {!isLoading &&\n footer?.({\n message: msg as IMessage,\n isLastMsg: isLast,\n isLastBotMsg,\n })}\n </div>\n );\n }\n const fnCall = msg.functionCall;\n if (fnCall) {\n return (\n <div key={`${msg.id}-${i}`} className={styles.botMsg}>\n <FunctionCallRender\n msg={msg}\n showDetail={showFnCallDetail}\n onConfirm={onConfirm}\n />\n {!isLoading &&\n footer?.({\n message: msg as IMessage,\n isLastMsg: isLast,\n isLastBotMsg,\n })}\n </div>\n );\n }\n return (\n <div key={`${msg.id}-${i}`} className={styles.botMsg}>\n {!isLoading &&\n footer?.({\n message: msg as IMessage,\n isLastMsg: isLast,\n isLastBotMsg,\n })}\n </div>\n );\n })}\n <div>\n {suggestions?.map((item) => (\n <div key={item} className={styles.suggestion}>\n <div className={styles.suggestContent}>\n <Button\n type=\"text\"\n icon={<SwapRightOutlined />}\n iconPosition=\"end\"\n onClick={() => {\n if (!item) return;\n onSuggest?.(item);\n }}\n style={{\n whiteSpace: \"normal\",\n height: \"auto\",\n wordWrap: \"break-word\",\n textAlign: \"left\",\n padding: \"4px 15px\",\n lineHeight: \"1.5\",\n }}\n >\n {item}\n </Button>\n </div>\n </div>\n ))}\n </div>\n <div ref={messagesEndRef} />\n </div>\n <XAdkSender\n allowUpload={allowUpload}\n uploadRequest={uploadRequest}\n loading={loading}\n clearBtnShow={clearBtnShow}\n onSubmit={handleSubmit}\n onClear={onClear}\n onStop={onStop}\n />\n </div>\n );\n};\n\nexport default XAdkChatbot;\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import XAdkWebProvider from './index';
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import XAdkWebProvider from "./index";
3
3
  declare const meta: Meta<typeof XAdkWebProvider>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof meta>;
@@ -1,30 +1,30 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import React from 'react';
3
- import { Button } from 'antd';
2
+ import React from "react";
3
+ import { Button } from "antd";
4
4
  import XAdkWebProvider from "./index";
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  import { jsxs as _jsxs } from "react/jsx-runtime";
7
7
  var meta = {
8
- title: 'AI组件/XAdkWebProvider AI容器',
8
+ title: "AI组件/XAdkWebProvider AI容器",
9
9
  component: XAdkWebProvider,
10
10
  parameters: {
11
- layout: 'centered',
11
+ layout: "centered",
12
12
  docs: {
13
13
  description: {
14
- component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。'
14
+ component: "AI 聊天机器人容器组件,提供全局上下文和消息管理功能。"
15
15
  }
16
16
  }
17
17
  },
18
- tags: ['autodocs'],
18
+ tags: ["autodocs"],
19
19
  argTypes: {
20
20
  config: {
21
- description: '配置信息',
21
+ description: "配置信息",
22
22
  table: {
23
23
  type: {
24
- summary: 'XAdkWebProviderConfig',
24
+ summary: "XAdkWebProviderConfig",
25
25
  detail: "{\n appNo?: string; // \u5E94\u7528\u552F\u4E00\u7F16\u53F7\n }"
26
26
  },
27
- category: '配置选项'
27
+ category: "配置选项"
28
28
  }
29
29
  }
30
30
  },
@@ -32,7 +32,7 @@ var meta = {
32
32
  decorators: [function (Story) {
33
33
  return /*#__PURE__*/_jsx("div", {
34
34
  style: {
35
- padding: '20px'
35
+ padding: "20px"
36
36
  },
37
37
  children: /*#__PURE__*/_jsx(Story, {})
38
38
  });
@@ -47,23 +47,23 @@ export var 单聊天窗口实例 = {
47
47
  var _providerRef$current;
48
48
  if ((_providerRef$current = providerRef.current) !== null && _providerRef$current !== void 0 && _providerRef$current.chat) {
49
49
  providerRef.current.chat({
50
- text: '你好,AI!'
50
+ text: "你好,AI!"
51
51
  });
52
52
  } else {
53
- console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');
53
+ console.log("XAdkWebProvider ref 未准备好或 chat 方法不存在");
54
54
  }
55
55
  };
56
56
  return /*#__PURE__*/_jsxs("div", {
57
57
  style: {
58
- display: 'flex'
58
+ display: "flex"
59
59
  },
60
60
  children: [/*#__PURE__*/_jsx("div", {
61
61
  style: {
62
- display: 'flex',
63
- flexDirection: 'column',
64
- gap: '12px',
65
- marginRight: '24px',
66
- justifyContent: 'center'
62
+ display: "flex",
63
+ flexDirection: "column",
64
+ gap: "12px",
65
+ marginRight: "24px",
66
+ justifyContent: "center"
67
67
  },
68
68
  children: /*#__PURE__*/_jsx(Button, {
69
69
  type: "primary",
@@ -72,8 +72,8 @@ export var 单聊天窗口实例 = {
72
72
  })
73
73
  }), /*#__PURE__*/_jsx("div", {
74
74
  style: {
75
- maxWidth: '350px',
76
- height: '600px'
75
+ maxWidth: "350px",
76
+ height: "600px"
77
77
  },
78
78
  children: /*#__PURE__*/_jsx(XAdkWebProvider, _objectSpread({
79
79
  ref: providerRef
@@ -82,12 +82,12 @@ export var 单聊天窗口实例 = {
82
82
  });
83
83
  },
84
84
  args: {
85
- url: 'https://m-poc-dev.zaxline.com',
86
- token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiTUZYNVR4bGhlSUtiZWtaSEtvZU9WTmxvIl0sImV4cCI6MTc2Nzk1MjM0NywianRpIjoiSHpLMll4cVdjSTA3QWtmOHlsQXYwV0w0aE5jIiwiY2xpZW50X2lkIjoiTUZYNVR4bGhlSUtiZWtaSEtvZU9WTmxvIn0.AjABoyZFxAACkfy-ywLlfaJd6YY0Ir3pBGx_-HzW9di9p_4rnptbFI4adk9pktSVtlLB0cs45SU6uzp6VCJUj9-q-MP8QBqL6i7u2HV9e-kuBJgyIZD4t0PsazpJNu4rDlBAymYzw73ptLPjCwsUkckUz4Xhy1WmR8mpmuG0nuSWzlDlWKiaPgeMhA0Cnp4BV47zplvQ-r60VkarCg9JGHQNmIkQfG3llcjc-ZK4UKVkrFZynXhcCsp1ry7TwfRnwtXwQ1kZXDmeQxWFudhVaHwthraFF-fkHmYZpyTDrZQJY2Rn9nWO59ZHNh3I6-KiKdsNzv8Jl5T_dCUVPj7l3w',
85
+ url: "https://m-poc-dev.zaxline.com",
86
+ token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiTUZYNVR4bGhlSUtiZWtaSEtvZU9WTmxvIl0sImV4cCI6MTc2Nzk1MjM0NywianRpIjoiSHpLMll4cVdjSTA3QWtmOHlsQXYwV0w0aE5jIiwiY2xpZW50X2lkIjoiTUZYNVR4bGhlSUtiZWtaSEtvZU9WTmxvIn0.AjABoyZFxAACkfy-ywLlfaJd6YY0Ir3pBGx_-HzW9di9p_4rnptbFI4adk9pktSVtlLB0cs45SU6uzp6VCJUj9-q-MP8QBqL6i7u2HV9e-kuBJgyIZD4t0PsazpJNu4rDlBAymYzw73ptLPjCwsUkckUz4Xhy1WmR8mpmuG0nuSWzlDlWKiaPgeMhA0Cnp4BV47zplvQ-r60VkarCg9JGHQNmIkQfG3llcjc-ZK4UKVkrFZynXhcCsp1ry7TwfRnwtXwQ1kZXDmeQxWFudhVaHwthraFF-fkHmYZpyTDrZQJY2Rn9nWO59ZHNh3I6-KiKdsNzv8Jl5T_dCUVPj7l3w",
87
87
  config: {
88
- appNo: 'MFX5TxlheIKbekZHKoeOVNlo'
88
+ appNo: "MFX5TxlheIKbekZHKoeOVNlo"
89
89
  },
90
- providerId: 'demo-provider'
90
+ providerId: "demo-provider"
91
91
  }
92
92
  };
93
93
 
@@ -97,34 +97,38 @@ export var 携带历史记录实例 = {
97
97
  var providerRef = React.useRef(null);
98
98
  var handleSendMessage = function handleSendMessage() {
99
99
  var _providerRef$current2;
100
- if ((_providerRef$current2 = providerRef.current) !== null && _providerRef$current2 !== void 0 && _providerRef$current2.chat) {
101
- providerRef.current.chat({
102
- text: '你好,AI!',
100
+ if ((_providerRef$current2 = providerRef.current) !== null && _providerRef$current2 !== void 0 && _providerRef$current2.startChat) {
101
+ providerRef.current.startChat({
102
+ text: "你好,AI!",
103
103
  // 上传文案
104
104
  files: [] // 如果需要上传附件
105
105
  });
106
106
  } else {
107
- console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');
107
+ console.log("XAdkWebProvider ref 未准备好或 chat 方法不存在");
108
108
  }
109
109
  };
110
110
  var handleOnEvent = function handleOnEvent(event) {
111
111
  var code = event.code,
112
112
  data = event.data;
113
113
  console.warn(code);
114
- if (code === 'SESSION_SWITCH') {
114
+ if (code === "SESSION_SWITCH") {
115
115
  console.log(providerRef.current.getMessages());
116
- } else if (code === 'APP_MESSAGES_INIT_SUCCESS') {
116
+ } else if (code === "APP_MESSAGES_INIT_SUCCESS") {
117
117
  console.log(code, data);
118
+ } else if (code === "APP_CONFIG_INIT_SUCCESS") {
119
+ setTimeout(function () {
120
+ handleSendMessage();
121
+ }, 2000);
118
122
  }
119
123
  };
120
124
  return /*#__PURE__*/_jsx("div", {
121
125
  style: {
122
- display: 'flex'
126
+ display: "flex"
123
127
  },
124
128
  children: /*#__PURE__*/_jsx("div", {
125
129
  style: {
126
- height: '600px',
127
- width: '100vw'
130
+ height: "600px",
131
+ width: "100vw"
128
132
  },
129
133
  children: /*#__PURE__*/_jsx(XAdkWebProvider, _objectSpread(_objectSpread({
130
134
  ref: providerRef
@@ -142,17 +146,18 @@ export var 携带历史记录实例 = {
142
146
  });
143
147
  },
144
148
  args: {
145
- url: 'https://m-poc.zaxline.com',
146
- token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiU0tUYkp6MDE5bWFVdnFqcC9OUGJEQT09Iiwic2NvcGUiOlsiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIl0sImV4cCI6MTc2OTE2MzM1NCwianRpIjoiSlFGN21SSEwyLWFhaVF3Nlh0Q19mcEw3eTEwIiwiY2xpZW50X2lkIjoiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIn0.NxxxWuSjnDt6Md79wOJX2AznuZ0sE4vZ8p9Gdva-ncDt-Qz6ghUUlKq47HIgAdrnDxIABU7H0RsHXv43rzFcBTK5GMr-SprF4TqhbMbhhEdTwGPgN76kaJVh4SagfbczWuIVBQl4PIzVZ2yMrYz0M2itYYoaAfvnbGBfRIZ6MJIhM-BCAAjrv86I3qDHnYQedjKmdiS9CXeoOt_lqQWk-GU-wl2FhkTsmo4Xt9PD055PPdEmsGCj5I__lIe4W2jqtGPmq82SNfLuzd0TUU7kmf6maUgLqVIRX7EUv51tW4P9BjnNP6fkG7Gkvte46pcO93OAXSlxd7QZ7jca5Gs62w',
149
+ url: "https://m-poc-dev.zaxline.com",
150
+ token: "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJhdWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJuYmYiOjE3NzI3MDA1MzcsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3MjcwNzczNywiaWF0IjoxNzcyNzAwNTM3LCJqdGkiOiJlZWM3NzA2Mi01YmNjLTRlOTgtYTExZC1hOThjN2Q3NmZlZjIiLCJjbGllbnRfaWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08ifQ.eDF_7XsgyAehFXTfB-6FcJglLDacEQz-UGLYGuI3lv-QQnSLekK5DvHBBA9T56OZ6DlQLMC3vhtvJV10lQwigWLE-b4fYTM205mhrtcBQFTUu0EBRTm0g_5sItw-0qaR9E6729H4s8Ty8zyst_nwGhxHWGMjg80cZM47UXhzEpL18wr2JDEWZmq7ZrvxFxqGiR2kjHMB1MOqIEIqGdwBmIDWkZus1qOFJzKN2tSd5Rd4hcLW3pdXmcEJZnVQfAwjqUTu5Peq7mSS0jXh_CIie8tJMOBX7-Fy3N10GSuYZSPCm3Aw0SPnRKgqzh2l4_401yw0lbX36QHBrTOxlXu_Zw",
147
151
  config: {
148
- appNo: '0hbsdWbFUbKYEy10K1437XXm',
152
+ appNo: "3jt2YbDjewVn2PHRKaDfJEgO",
153
+ chatProps: {
154
+ clearBtnShow: false
155
+ },
149
156
  session: {
150
157
  showSessionList: true
151
- },
152
- showFirstSession: true,
153
- allowUpload: true
158
+ }
154
159
  },
155
- providerId: 'demo-provider'
160
+ providerId: "demo-provider"
156
161
  }
157
162
  };
158
163
  //# sourceMappingURL=XAdkWebProvider.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Button","XAdkWebProvider","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","text","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","url","token","appNo","providerId","携带历史记录实例","_providerRef$current2","files","handleOnEvent","event","code","data","warn","getMessages","width","onError","providerError","onSuccess","onStream","onEvent","session","showSessionList","showFirstSession","allowUpload"],"sources":["../../../../src/components/XAdkWebProvider/XAdkWebProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAdkWebProvider from './index';\n\nconst meta: Meta<typeof XAdkWebProvider> = {\n title: 'AI组件/XAdkWebProvider AI容器',\n component: XAdkWebProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: {\n summary: 'XAdkWebProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n }`,\n },\n category: '配置选项',\n },\n },\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: '你好,AI!' });\n } else {\n console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ maxWidth: '350px', height: '600px' }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n // onError={(providerError) => console.log(providerError)}\n // onMessage={(data) => console.log(data)}\n >\n </XAdkWebProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiTUZYNVR4bGhlSUtiZWtaSEtvZU9WTmxvIl0sImV4cCI6MTc2Nzk1MjM0NywianRpIjoiSHpLMll4cVdjSTA3QWtmOHlsQXYwV0w0aE5jIiwiY2xpZW50X2lkIjoiTUZYNVR4bGhlSUtiZWtaSEtvZU9WTmxvIn0.AjABoyZFxAACkfy-ywLlfaJd6YY0Ir3pBGx_-HzW9di9p_4rnptbFI4adk9pktSVtlLB0cs45SU6uzp6VCJUj9-q-MP8QBqL6i7u2HV9e-kuBJgyIZD4t0PsazpJNu4rDlBAymYzw73ptLPjCwsUkckUz4Xhy1WmR8mpmuG0nuSWzlDlWKiaPgeMhA0Cnp4BV47zplvQ-r60VkarCg9JGHQNmIkQfG3llcjc-ZK4UKVkrFZynXhcCsp1ry7TwfRnwtXwQ1kZXDmeQxWFudhVaHwthraFF-fkHmYZpyTDrZQJY2Rn9nWO59ZHNh3I6-KiKdsNzv8Jl5T_dCUVPj7l3w',\n config: {\n appNo: 'MFX5TxlheIKbekZHKoeOVNlo',\n },\n providerId: 'demo-provider',\n },\n};\n\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({\n text: '你好,AI!', // 上传文案\n files: [], // 如果需要上传附件\n });\n } else {\n console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n const handleOnEvent = (event: any) => {\n const { code, data } = event;\n console.warn(code);\n if (code === 'SESSION_SWITCH') {\n console.log(providerRef.current.getMessages());\n } else if (code === 'APP_MESSAGES_INIT_SUCCESS') {\n console.log(code, data);\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ height: '600px', width: '100vw' }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onSuccess={handleOnEvent}\n onStream={(data) => console.log(data)}\n onEvent={handleOnEvent}\n />\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiU0tUYkp6MDE5bWFVdnFqcC9OUGJEQT09Iiwic2NvcGUiOlsiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIl0sImV4cCI6MTc2OTE2MzM1NCwianRpIjoiSlFGN21SSEwyLWFhaVF3Nlh0Q19mcEw3eTEwIiwiY2xpZW50X2lkIjoiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIn0.NxxxWuSjnDt6Md79wOJX2AznuZ0sE4vZ8p9Gdva-ncDt-Qz6ghUUlKq47HIgAdrnDxIABU7H0RsHXv43rzFcBTK5GMr-SprF4TqhbMbhhEdTwGPgN76kaJVh4SagfbczWuIVBQl4PIzVZ2yMrYz0M2itYYoaAfvnbGBfRIZ6MJIhM-BCAAjrv86I3qDHnYQedjKmdiS9CXeoOt_lqQWk-GU-wl2FhkTsmo4Xt9PD055PPdEmsGCj5I__lIe4W2jqtGPmq82SNfLuzd0TUU7kmf6maUgLqVIRX7EUv51tW4P9BjnNP6fkG7Gkvte46pcO93OAXSlxd7QZ7jca5Gs62w',\n config: {\n appNo: '0hbsdWbFUbKYEy10K1437XXm',\n session: {\n showSessionList: true,\n },\n showFirstSession: true,\n allowUpload: true\n },\n providerId: 'demo-provider',\n },\n};"],"mappings":"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"}
1
+ {"version":3,"names":["React","Button","XAdkWebProvider","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","text","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","url","token","appNo","providerId","携带历史记录实例","_providerRef$current2","startChat","files","handleOnEvent","event","code","data","warn","getMessages","setTimeout","width","onError","providerError","onSuccess","onStream","onEvent","chatProps","clearBtnShow","session","showSessionList"],"sources":["../../../../src/components/XAdkWebProvider/XAdkWebProvider.stories.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { Button } from \"antd\";\nimport XAdkWebProvider from \"./index\";\n\nconst meta: Meta<typeof XAdkWebProvider> = {\n title: \"AI组件/XAdkWebProvider AI容器\",\n component: XAdkWebProvider,\n parameters: {\n layout: \"centered\",\n docs: {\n description: {\n component: \"AI 聊天机器人容器组件,提供全局上下文和消息管理功能。\",\n },\n },\n },\n tags: [\"autodocs\"],\n argTypes: {\n config: {\n description: \"配置信息\",\n table: {\n type: {\n summary: \"XAdkWebProviderConfig\",\n detail: `{\n appNo?: string; // 应用唯一编号\n }`,\n },\n category: \"配置选项\",\n },\n },\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: \"20px\" }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: \"你好,AI!\" });\n } else {\n console.log(\"XAdkWebProvider ref 未准备好或 chat 方法不存在\");\n }\n };\n\n return (\n <div style={{ display: \"flex\" }}>\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"12px\",\n marginRight: \"24px\",\n justifyContent: \"center\",\n }}\n >\n <Button type=\"primary\" onClick={handleSendMessage}>\n 发送消息\n </Button>\n </div>\n <div style={{ maxWidth: \"350px\", height: \"600px\" }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n // onError={(providerError) => console.log(providerError)}\n // onMessage={(data) => console.log(data)}\n ></XAdkWebProvider>\n </div>\n </div>\n );\n },\n args: {\n url: \"https://m-poc-dev.zaxline.com\",\n token:\n \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiTUZYNVR4bGhlSUtiZWtaSEtvZU9WTmxvIl0sImV4cCI6MTc2Nzk1MjM0NywianRpIjoiSHpLMll4cVdjSTA3QWtmOHlsQXYwV0w0aE5jIiwiY2xpZW50X2lkIjoiTUZYNVR4bGhlSUtiZWtaSEtvZU9WTmxvIn0.AjABoyZFxAACkfy-ywLlfaJd6YY0Ir3pBGx_-HzW9di9p_4rnptbFI4adk9pktSVtlLB0cs45SU6uzp6VCJUj9-q-MP8QBqL6i7u2HV9e-kuBJgyIZD4t0PsazpJNu4rDlBAymYzw73ptLPjCwsUkckUz4Xhy1WmR8mpmuG0nuSWzlDlWKiaPgeMhA0Cnp4BV47zplvQ-r60VkarCg9JGHQNmIkQfG3llcjc-ZK4UKVkrFZynXhcCsp1ry7TwfRnwtXwQ1kZXDmeQxWFudhVaHwthraFF-fkHmYZpyTDrZQJY2Rn9nWO59ZHNh3I6-KiKdsNzv8Jl5T_dCUVPj7l3w\",\n config: {\n appNo: \"MFX5TxlheIKbekZHKoeOVNlo\",\n },\n providerId: \"demo-provider\",\n },\n};\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.startChat) {\n providerRef.current.startChat({\n text: \"你好,AI!\", // 上传文案\n files: [], // 如果需要上传附件\n });\n } else {\n console.log(\"XAdkWebProvider ref 未准备好或 chat 方法不存在\");\n }\n };\n\n const handleOnEvent = (event: any) => {\n const { code, data } = event;\n console.warn(code);\n if (code === \"SESSION_SWITCH\") {\n console.log(providerRef.current.getMessages());\n } else if (code === \"APP_MESSAGES_INIT_SUCCESS\") {\n console.log(code, data);\n } else if (code === \"APP_CONFIG_INIT_SUCCESS\") {\n setTimeout(() => {\n handleSendMessage();\n }, 2000);\n }\n };\n\n return (\n <div style={{ display: \"flex\" }}>\n <div style={{ height: \"600px\", width: \"100vw\" }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onSuccess={handleOnEvent}\n onStream={(data) => console.log(data)}\n onEvent={handleOnEvent}\n />\n </div>\n </div>\n );\n },\n args: {\n url: \"https://m-poc-dev.zaxline.com\",\n token:\n \"eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJhdWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iLCJuYmYiOjE3NzI3MDA1MzcsInVzZXJfaWQiOiJWNFNPSG1KbzNaZWE0Uk51ZzdYWDJBPT0iLCJzY29wZSI6WyIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08iXSwiaXNzIjoiaHR0cDovL2htLWF1dGgtc2VydmVyLnhsaW5lLWRldi50ZXN0LnhpbmtlLmJpeiIsImV4cCI6MTc3MjcwNzczNywiaWF0IjoxNzcyNzAwNTM3LCJqdGkiOiJlZWM3NzA2Mi01YmNjLTRlOTgtYTExZC1hOThjN2Q3NmZlZjIiLCJjbGllbnRfaWQiOiIzanQyWWJEamV3Vm4yUEhSS2FEZkpFZ08ifQ.eDF_7XsgyAehFXTfB-6FcJglLDacEQz-UGLYGuI3lv-QQnSLekK5DvHBBA9T56OZ6DlQLMC3vhtvJV10lQwigWLE-b4fYTM205mhrtcBQFTUu0EBRTm0g_5sItw-0qaR9E6729H4s8Ty8zyst_nwGhxHWGMjg80cZM47UXhzEpL18wr2JDEWZmq7ZrvxFxqGiR2kjHMB1MOqIEIqGdwBmIDWkZus1qOFJzKN2tSd5Rd4hcLW3pdXmcEJZnVQfAwjqUTu5Peq7mSS0jXh_CIie8tJMOBX7-Fy3N10GSuYZSPCm3Aw0SPnRKgqzh2l4_401yw0lbX36QHBrTOxlXu_Zw\",\n config: {\n appNo: \"3jt2YbDjewVn2PHRKaDfJEgO\",\n chatProps: {\n clearBtnShow: false,\n },\n session: {\n showSessionList: true,\n },\n },\n providerId: \"demo-provider\",\n },\n};\n"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import XAiThoughtChain from ".";
3
+ declare const meta: Meta<typeof XAiThoughtChain>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const 基础用法: Story;
@@ -0,0 +1,159 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
+ import { useState, useEffect } from "react";
5
+ import XAiThoughtChain from ".";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ var meta = {
8
+ title: "AI组件/XAiThoughtChain 思维链",
9
+ component: XAiThoughtChain,
10
+ parameters: {},
11
+ tags: ["autodocs"],
12
+ argTypes: {}
13
+ };
14
+ export default meta;
15
+ // 基础用法
16
+ var BasicUsageStory = function BasicUsageStory() {
17
+ var _useState = useState([]),
18
+ _useState2 = _slicedToArray(_useState, 2),
19
+ items = _useState2[0],
20
+ setItems = _useState2[1];
21
+ var _useState3 = useState(true),
22
+ _useState4 = _slicedToArray(_useState3, 2),
23
+ loading = _useState4[0],
24
+ setLoading = _useState4[1];
25
+ var steps = [{
26
+ type: "text",
27
+ key: "planning",
28
+ title: "任务规划",
29
+ content: "\n为了规划审核路线,我需要明确以下几个步骤:\n1. 确认审核的具体内容或目标(例如:OCR审核、批注生成等)。\n2. 根据审核内容,选择合适的工具(例如:`OCR审核1`、`生成批注pdf1`)。\n3. 提供必要的输入参数(例如:文件链接、日期、流水号等)。\n4. 执行工具并获取结果。\n\n由于用户未提供具体的审核内容或目标,我需要进一步澄清。\n\n"
30
+ }, {
31
+ type: "text",
32
+ key: "reasoning",
33
+ title: "推理分析",
34
+ content: "\n用户没有提供具体的审核内容或目标,因此无法直接调用工具。我需要请求用户提供更多信息,例如:\n- 审核的文件类型(图片、PDF等)。\n- 审核的具体任务(OCR识别、批注生成等)。\n- 是否有现成的文件链接或其他输入参数。\n\n"
35
+ },
36
+ // 待执行工具
37
+ // {
38
+ // type: "tool",
39
+ // msg: {
40
+ // id: "040c3341-759f-43cb-8f51-d33f8d16063c",
41
+ // author: "aaa111",
42
+ // invocationId: "e-b8f96c1d-5432-42cf-8cff-c04745538504",
43
+ // eventId: "2029398995837837312",
44
+ // timestamp: 1772681399674,
45
+ // role: "bot",
46
+ // functionCall: {
47
+ // id: "adk-a30a7fb0-4413-4251-8229-b48e6f9c0b32",
48
+ // args: {
49
+ // originalFunctionCall: {
50
+ // id: "call_8c999d1ae7f34f98ad2666",
51
+ // args: {
52
+ // size: "1024*1024",
53
+ // prompt: "一只猫在草地上,卡通风格",
54
+ // n: 1,
55
+ // },
56
+ // name: "bailian_image_gen",
57
+ // },
58
+ // toolConfirmation: {
59
+ // hint: "Please approve or reject the tool call vdjxxwbgpwlfs() by responding with a FunctionResponse with an expected ToolConfirmation payload.",
60
+ // confirmed: false,
61
+ // },
62
+ // },
63
+ // name: "adk_request_confirmation",
64
+ // },
65
+ // },
66
+ // },
67
+ // 确认执行
68
+ {
69
+ type: "tool",
70
+ msg: {
71
+ id: "99f7dff6-3780-4712-829f-4670707e76cc",
72
+ author: "aaa111",
73
+ invocationId: "e-fe701a0d-9fa2-4b82-b338-751c2ab31619",
74
+ eventId: "2029431631083794432",
75
+ timestamp: 1772689180523,
76
+ role: "bot",
77
+ functionCall: {
78
+ id: "call_ed77f343b5614de096ce35",
79
+ args: {
80
+ size: "1024*1024",
81
+ prompt: "一只可爱的小猫"
82
+ },
83
+ name: "bailian_image_gen"
84
+ },
85
+ functionResponse: {
86
+ id: "call_ed77f343b5614de096ce35",
87
+ name: "bailian_image_gen",
88
+ response: {
89
+ error: "This tool call requires confirmation, please approve or reject."
90
+ }
91
+ }
92
+ }
93
+ }];
94
+ useEffect(function () {
95
+ var stepIndex = 0;
96
+ var charIndex = 0;
97
+ var currentContent = "";
98
+
99
+ // 先插入第一个空 step
100
+ setItems([_objectSpread(_objectSpread({}, steps[0]), {}, {
101
+ content: ""
102
+ })]);
103
+ var timer = setInterval(function () {
104
+ var currentStep = steps[stepIndex];
105
+ if (!currentStep) {
106
+ clearInterval(timer);
107
+ setLoading(false);
108
+ return;
109
+ }
110
+ if (charIndex < currentStep.content.length) {
111
+ currentContent += currentStep.content[charIndex];
112
+ charIndex++;
113
+ setItems(function (prev) {
114
+ var newItems = _toConsumableArray(prev);
115
+ newItems[stepIndex] = _objectSpread(_objectSpread({}, currentStep), {}, {
116
+ content: currentContent
117
+ });
118
+ return newItems;
119
+ });
120
+ } else {
121
+ // 当前 step 打完
122
+ stepIndex++;
123
+ charIndex = 0;
124
+ currentContent = "";
125
+ if (stepIndex < steps.length) {
126
+ setItems(function (prev) {
127
+ return [].concat(_toConsumableArray(prev), [_objectSpread(_objectSpread({}, steps[stepIndex]), {}, {
128
+ content: ""
129
+ })]);
130
+ });
131
+ } else {
132
+ clearInterval(timer);
133
+ setLoading(false);
134
+ }
135
+ }
136
+ }, 20); // 20ms 一个字符
137
+
138
+ return function () {
139
+ return clearInterval(timer);
140
+ };
141
+ }, []);
142
+ return /*#__PURE__*/_jsx("div", {
143
+ style: {
144
+ width: 440,
145
+ border: "1px solid #eee",
146
+ padding: 20
147
+ },
148
+ children: /*#__PURE__*/_jsx(XAiThoughtChain, {
149
+ loading: loading,
150
+ items: items,
151
+ defaultOpen: true
152
+ })
153
+ });
154
+ };
155
+ export var 基础用法 = {
156
+ render: BasicUsageStory,
157
+ args: {}
158
+ };
159
+ //# sourceMappingURL=XAiThoughtChain.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","useEffect","XAiThoughtChain","jsx","_jsx","meta","title","component","parameters","tags","argTypes","BasicUsageStory","_useState","_useState2","_slicedToArray","items","setItems","_useState3","_useState4","loading","setLoading","steps","type","key","content","msg","id","author","invocationId","eventId","timestamp","role","functionCall","args","size","prompt","name","functionResponse","response","error","stepIndex","charIndex","currentContent","_objectSpread","timer","setInterval","currentStep","clearInterval","length","prev","newItems","_toConsumableArray","concat","style","width","border","padding","children","defaultOpen","基础用法","render"],"sources":["../../../../src/components/XAiThoughtChain/XAiThoughtChain.stories.tsx"],"sourcesContent":["import { useState, useEffect } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport XAiThoughtChain from \".\";\n\nconst meta: Meta<typeof XAiThoughtChain> = {\n title: \"AI组件/XAiThoughtChain 思维链\",\n component: XAiThoughtChain,\n parameters: {},\n tags: [\"autodocs\"],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = () => {\n const [items, setItems] = useState<any[]>([]);\n const [loading, setLoading] = useState(true);\n\n const steps = [\n {\n type: \"text\",\n key: \"planning\",\n title: \"任务规划\",\n content:\n \"\\n为了规划审核路线,我需要明确以下几个步骤:\\n1. 确认审核的具体内容或目标(例如:OCR审核、批注生成等)。\\n2. 根据审核内容,选择合适的工具(例如:`OCR审核1`、`生成批注pdf1`)。\\n3. 提供必要的输入参数(例如:文件链接、日期、流水号等)。\\n4. 执行工具并获取结果。\\n\\n由于用户未提供具体的审核内容或目标,我需要进一步澄清。\\n\\n\",\n },\n {\n type: \"text\",\n key: \"reasoning\",\n title: \"推理分析\",\n content:\n \"\\n用户没有提供具体的审核内容或目标,因此无法直接调用工具。我需要请求用户提供更多信息,例如:\\n- 审核的文件类型(图片、PDF等)。\\n- 审核的具体任务(OCR识别、批注生成等)。\\n- 是否有现成的文件链接或其他输入参数。\\n\\n\",\n },\n // 待执行工具\n // {\n // type: \"tool\",\n // msg: {\n // id: \"040c3341-759f-43cb-8f51-d33f8d16063c\",\n // author: \"aaa111\",\n // invocationId: \"e-b8f96c1d-5432-42cf-8cff-c04745538504\",\n // eventId: \"2029398995837837312\",\n // timestamp: 1772681399674,\n // role: \"bot\",\n // functionCall: {\n // id: \"adk-a30a7fb0-4413-4251-8229-b48e6f9c0b32\",\n // args: {\n // originalFunctionCall: {\n // id: \"call_8c999d1ae7f34f98ad2666\",\n // args: {\n // size: \"1024*1024\",\n // prompt: \"一只猫在草地上,卡通风格\",\n // n: 1,\n // },\n // name: \"bailian_image_gen\",\n // },\n // toolConfirmation: {\n // hint: \"Please approve or reject the tool call vdjxxwbgpwlfs() by responding with a FunctionResponse with an expected ToolConfirmation payload.\",\n // confirmed: false,\n // },\n // },\n // name: \"adk_request_confirmation\",\n // },\n // },\n // },\n // 确认执行\n {\n type: \"tool\",\n msg: {\n id: \"99f7dff6-3780-4712-829f-4670707e76cc\",\n author: \"aaa111\",\n invocationId: \"e-fe701a0d-9fa2-4b82-b338-751c2ab31619\",\n eventId: \"2029431631083794432\",\n timestamp: 1772689180523,\n role: \"bot\",\n functionCall: {\n id: \"call_ed77f343b5614de096ce35\",\n args: {\n size: \"1024*1024\",\n prompt: \"一只可爱的小猫\",\n },\n name: \"bailian_image_gen\",\n },\n functionResponse: {\n id: \"call_ed77f343b5614de096ce35\",\n name: \"bailian_image_gen\",\n response: {\n error:\n \"This tool call requires confirmation, please approve or reject.\",\n },\n },\n },\n },\n ];\n\n useEffect(() => {\n let stepIndex = 0;\n let charIndex = 0;\n let currentContent = \"\";\n\n // 先插入第一个空 step\n setItems([\n {\n ...steps[0],\n content: \"\",\n },\n ]);\n\n const timer = setInterval(() => {\n const currentStep = steps[stepIndex];\n\n if (!currentStep) {\n clearInterval(timer);\n setLoading(false);\n return;\n }\n\n if (charIndex < currentStep.content!.length) {\n currentContent += currentStep.content![charIndex];\n charIndex++;\n\n setItems((prev) => {\n const newItems = [...prev];\n newItems[stepIndex] = {\n ...currentStep,\n content: currentContent,\n };\n return newItems;\n });\n } else {\n // 当前 step 打完\n stepIndex++;\n charIndex = 0;\n currentContent = \"\";\n\n if (stepIndex < steps.length) {\n setItems((prev) => [\n ...prev,\n {\n ...steps[stepIndex],\n content: \"\",\n },\n ]);\n } else {\n clearInterval(timer);\n setLoading(false);\n }\n }\n }, 20); // 20ms 一个字符\n\n return () => clearInterval(timer);\n }, []);\n\n return (\n <div style={{ width: 440, border: \"1px solid #eee\", padding: 20 }}>\n <XAiThoughtChain loading={loading} items={items} defaultOpen />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { XAiThoughtChainProps } from "../../types";
3
+ declare const XAiThoughtChain: React.FC<XAiThoughtChainProps>;
4
+ export default XAiThoughtChain;