@tdesign-react/chat 1.0.0-beta.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 (166) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENSE +9 -0
  3. package/README.md +74 -0
  4. package/es/_util/_reactify.d.ts +7 -0
  5. package/es/_util/_reactify.js +381 -0
  6. package/es/_util/_reactify.js.map +1 -0
  7. package/es/_util/reactify.d.ts +7 -0
  8. package/es/_util/reactify.js +392 -0
  9. package/es/_util/reactify.js.map +1 -0
  10. package/es/_util/reactifyLazy.d.ts +16 -0
  11. package/es/_util/reactifyLazy.js +74 -0
  12. package/es/_util/reactifyLazy.js.map +1 -0
  13. package/es/_util/reactify_v2.d.ts +7 -0
  14. package/es/_util/reactify_v2.js +391 -0
  15. package/es/_util/reactify_v2.js.map +1 -0
  16. package/es/_util/useDynamicStyle.d.ts +4 -0
  17. package/es/_util/useDynamicStyle.js +40 -0
  18. package/es/_util/useDynamicStyle.js.map +1 -0
  19. package/es/chat-actionbar/index.d.ts +7 -0
  20. package/es/chat-actionbar/index.js +26 -0
  21. package/es/chat-actionbar/index.js.map +1 -0
  22. package/es/chat-attachments/index.d.ts +5 -0
  23. package/es/chat-attachments/index.js +26 -0
  24. package/es/chat-attachments/index.js.map +1 -0
  25. package/es/chat-filecard/index.d.ts +5 -0
  26. package/es/chat-filecard/index.js +26 -0
  27. package/es/chat-filecard/index.js.map +1 -0
  28. package/es/chat-loading/index.d.ts +5 -0
  29. package/es/chat-loading/index.js +26 -0
  30. package/es/chat-loading/index.js.map +1 -0
  31. package/es/chat-markdown/index.d.ts +6 -0
  32. package/es/chat-markdown/index.js +28 -0
  33. package/es/chat-markdown/index.js.map +1 -0
  34. package/es/chat-message/index.d.ts +5 -0
  35. package/es/chat-message/index.js +26 -0
  36. package/es/chat-message/index.js.map +1 -0
  37. package/es/chat-sender/index.d.ts +5 -0
  38. package/es/chat-sender/index.js +26 -0
  39. package/es/chat-sender/index.js.map +1 -0
  40. package/es/chat-thinking/index.d.ts +5 -0
  41. package/es/chat-thinking/index.js +27 -0
  42. package/es/chat-thinking/index.js.map +1 -0
  43. package/es/chatbot/components/provider/agent-state.d.ts +5 -0
  44. package/es/chatbot/components/provider/agent-state.js +28 -0
  45. package/es/chatbot/components/provider/agent-state.js.map +1 -0
  46. package/es/chatbot/components/toolcall/index.d.ts +3 -0
  47. package/es/chatbot/components/toolcall/index.js +19 -0
  48. package/es/chatbot/components/toolcall/index.js.map +1 -0
  49. package/es/chatbot/components/toolcall/registry.d.ts +35 -0
  50. package/es/chatbot/components/toolcall/registry.js +75 -0
  51. package/es/chatbot/components/toolcall/registry.js.map +1 -0
  52. package/es/chatbot/components/toolcall/render.d.ts +13 -0
  53. package/es/chatbot/components/toolcall/render.js +207 -0
  54. package/es/chatbot/components/toolcall/render.js.map +1 -0
  55. package/es/chatbot/components/toolcall/toolcallRenderer.d.ts +12 -0
  56. package/es/chatbot/components/toolcall/toolcallRenderer.js +132 -0
  57. package/es/chatbot/components/toolcall/toolcallRenderer.js.map +1 -0
  58. package/es/chatbot/components/toolcall/types.d.ts +57 -0
  59. package/es/chatbot/components/toolcall/types.js +15 -0
  60. package/es/chatbot/components/toolcall/types.js.map +1 -0
  61. package/es/chatbot/core/adapters/agui/event-mapper.d.ts +104 -0
  62. package/es/chatbot/core/adapters/agui/event-mapper.js +342 -0
  63. package/es/chatbot/core/adapters/agui/event-mapper.js.map +1 -0
  64. package/es/chatbot/core/adapters/agui/events.d.ts +1394 -0
  65. package/es/chatbot/core/adapters/agui/events.js +181 -0
  66. package/es/chatbot/core/adapters/agui/events.js.map +1 -0
  67. package/es/chatbot/core/adapters/agui/index.d.ts +75 -0
  68. package/es/chatbot/core/adapters/agui/index.js +165 -0
  69. package/es/chatbot/core/adapters/agui/index.js.map +1 -0
  70. package/es/chatbot/core/adapters/agui/state/StateManager.d.ts +60 -0
  71. package/es/chatbot/core/adapters/agui/state/StateManager.js +160 -0
  72. package/es/chatbot/core/adapters/agui/state/StateManager.js.map +1 -0
  73. package/es/chatbot/core/adapters/agui/state/types.d.ts +63 -0
  74. package/es/chatbot/core/adapters/agui/state/types.js +7 -0
  75. package/es/chatbot/core/adapters/agui/state/types.js.map +1 -0
  76. package/es/chatbot/core/adapters/agui/state-manager-fixed.d.ts +107 -0
  77. package/es/chatbot/core/adapters/agui/state-manager-fixed.js +189 -0
  78. package/es/chatbot/core/adapters/agui/state-manager-fixed.js.map +1 -0
  79. package/es/chatbot/core/adapters/agui/state-manager.d.ts +99 -0
  80. package/es/chatbot/core/adapters/agui/state-manager.js +168 -0
  81. package/es/chatbot/core/adapters/agui/state-manager.js.map +1 -0
  82. package/es/chatbot/core/adapters/agui/types.d.ts +760 -0
  83. package/es/chatbot/core/adapters/agui/types.js +89 -0
  84. package/es/chatbot/core/adapters/agui/types.js.map +1 -0
  85. package/es/chatbot/core/adapters/agui/utils.d.ts +188 -0
  86. package/es/chatbot/core/adapters/agui/utils.js +323 -0
  87. package/es/chatbot/core/adapters/agui/utils.js.map +1 -0
  88. package/es/chatbot/core/index.d.ts +131 -0
  89. package/es/chatbot/core/index.js +585 -0
  90. package/es/chatbot/core/index.js.map +1 -0
  91. package/es/chatbot/core/processor/index.d.ts +20 -0
  92. package/es/chatbot/core/processor/index.js +148 -0
  93. package/es/chatbot/core/processor/index.js.map +1 -0
  94. package/es/chatbot/core/server/batch-client.d.ts +20 -0
  95. package/es/chatbot/core/server/batch-client.js +114 -0
  96. package/es/chatbot/core/server/batch-client.js.map +1 -0
  97. package/es/chatbot/core/server/connection-manager.d.ts +39 -0
  98. package/es/chatbot/core/server/connection-manager.js +84 -0
  99. package/es/chatbot/core/server/connection-manager.js.map +1 -0
  100. package/es/chatbot/core/server/errors.d.ts +22 -0
  101. package/es/chatbot/core/server/errors.js +80 -0
  102. package/es/chatbot/core/server/errors.js.map +1 -0
  103. package/es/chatbot/core/server/index.d.ts +11 -0
  104. package/es/chatbot/core/server/index.js +26 -0
  105. package/es/chatbot/core/server/index.js.map +1 -0
  106. package/es/chatbot/core/server/llm-service.d.ts +44 -0
  107. package/es/chatbot/core/server/llm-service.js +198 -0
  108. package/es/chatbot/core/server/llm-service.js.map +1 -0
  109. package/es/chatbot/core/server/sse-client.d.ts +77 -0
  110. package/es/chatbot/core/server/sse-client.js +362 -0
  111. package/es/chatbot/core/server/sse-client.js.map +1 -0
  112. package/es/chatbot/core/server/sse-parser.d.ts +49 -0
  113. package/es/chatbot/core/server/sse-parser.js +116 -0
  114. package/es/chatbot/core/server/sse-parser.js.map +1 -0
  115. package/es/chatbot/core/server/types.d.ts +54 -0
  116. package/es/chatbot/core/server/types.js +28 -0
  117. package/es/chatbot/core/server/types.js.map +1 -0
  118. package/es/chatbot/core/store/message.d.ts +27 -0
  119. package/es/chatbot/core/store/message.js +263 -0
  120. package/es/chatbot/core/store/message.js.map +1 -0
  121. package/es/chatbot/core/store/model.d.ts +8 -0
  122. package/es/chatbot/core/store/model.js +65 -0
  123. package/es/chatbot/core/store/model.js.map +1 -0
  124. package/es/chatbot/core/store/reactiveState.d.ts +52 -0
  125. package/es/chatbot/core/store/reactiveState.js +1359 -0
  126. package/es/chatbot/core/store/reactiveState.js.map +1 -0
  127. package/es/chatbot/core/type.d.ts +238 -0
  128. package/es/chatbot/core/type.js +7 -0
  129. package/es/chatbot/core/type.js.map +1 -0
  130. package/es/chatbot/core/utils/eventEmitter.d.ts +10 -0
  131. package/es/chatbot/core/utils/eventEmitter.js +67 -0
  132. package/es/chatbot/core/utils/eventEmitter.js.map +1 -0
  133. package/es/chatbot/core/utils/index.d.ts +31 -0
  134. package/es/chatbot/core/utils/index.js +221 -0
  135. package/es/chatbot/core/utils/index.js.map +1 -0
  136. package/es/chatbot/core/utils/logger.d.ts +30 -0
  137. package/es/chatbot/core/utils/logger.js +87 -0
  138. package/es/chatbot/core/utils/logger.js.map +1 -0
  139. package/es/chatbot/hooks/useAgentState.d.ts +40 -0
  140. package/es/chatbot/hooks/useAgentState.js +76 -0
  141. package/es/chatbot/hooks/useAgentState.js.map +1 -0
  142. package/es/chatbot/hooks/useAgentStateAction.d.ts +9 -0
  143. package/es/chatbot/hooks/useAgentStateAction.js +101 -0
  144. package/es/chatbot/hooks/useAgentStateAction.js.map +1 -0
  145. package/es/chatbot/hooks/useAgentToolcall.d.ts +28 -0
  146. package/es/chatbot/hooks/useAgentToolcall.js +78 -0
  147. package/es/chatbot/hooks/useAgentToolcall.js.map +1 -0
  148. package/es/chatbot/hooks/useAgentToolcallAction.d.ts +6 -0
  149. package/es/chatbot/hooks/useAgentToolcallAction.js +29 -0
  150. package/es/chatbot/hooks/useAgentToolcallAction.js.map +1 -0
  151. package/es/chatbot/hooks/useChat.d.ts +11 -0
  152. package/es/chatbot/hooks/useChat.js +66 -0
  153. package/es/chatbot/hooks/useChat.js.map +1 -0
  154. package/es/chatbot/index.d.ts +17 -0
  155. package/es/chatbot/index.js +43 -0
  156. package/es/chatbot/index.js.map +1 -0
  157. package/es/chatbot/useChat.d.ts +10 -0
  158. package/es/chatbot/useChat.js +55 -0
  159. package/es/chatbot/useChat.js.map +1 -0
  160. package/es/index.d.ts +11 -0
  161. package/es/index.js +55 -0
  162. package/es/index.js.map +1 -0
  163. package/es/style/index.d.ts +1 -0
  164. package/es/style/index.js +8 -0
  165. package/es/style/index.js.map +1 -0
  166. package/package.json +67 -0
@@ -0,0 +1,26 @@
1
+ /**
2
+ * tdesign v1.0.0-beta.1
3
+ * (c) 2025 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import 'tdesign-web-components/lib/chat-loading';
8
+ import reactify from '../_util/reactify.js';
9
+ import '@babel/runtime/helpers/objectWithoutProperties';
10
+ import '@babel/runtime/helpers/toConsumableArray';
11
+ import '@babel/runtime/helpers/classCallCheck';
12
+ import '@babel/runtime/helpers/createClass';
13
+ import '@babel/runtime/helpers/possibleConstructorReturn';
14
+ import '@babel/runtime/helpers/getPrototypeOf';
15
+ import '@babel/runtime/helpers/inherits';
16
+ import '@babel/runtime/helpers/defineProperty';
17
+ import '@babel/runtime/helpers/slicedToArray';
18
+ import '@babel/runtime/helpers/typeof';
19
+ import 'react';
20
+ import 'react-dom';
21
+ import 'react-dom/client';
22
+
23
+ var ChatLoading = reactify("t-chat-loading");
24
+
25
+ export { ChatLoading, ChatLoading as default };
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../pro-components/chat/chat-loading/index.ts"],"sourcesContent":["import { TdChatLoadingProps } from 'tdesign-web-components';\nimport 'tdesign-web-components/lib/chat-loading';\nimport reactify from '../_util/reactify';\n\nexport const ChatLoading: React.ForwardRefExoticComponent<\n Omit<TdChatLoadingProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdChatLoadingProps>('t-chat-loading');\n\nexport default ChatLoading;\nexport type { TdChatLoadingProps, ChatLoadingAnimationType } from 'tdesign-web-components';\n"],"names":["ChatLoading","reactify"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IAIaA,WAAA,GAETC,SAA6B,gBAAgB;;;;"}
@@ -0,0 +1,6 @@
1
+ import { TdChatMarkdownContentProps, TdMarkdownEngine } from 'tdesign-web-components';
2
+ export declare const MarkdownEngine: typeof TdMarkdownEngine;
3
+ export declare const ChatMarkdown: React.ForwardRefExoticComponent<Omit<TdChatMarkdownContentProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>>;
4
+ import 'tdesign-web-components/lib/chat-message/content/markdown-content';
5
+ export default ChatMarkdown;
6
+ export type { TdChatMarkdownContentProps } from 'tdesign-web-components';
@@ -0,0 +1,28 @@
1
+ /**
2
+ * tdesign v1.0.0-beta.1
3
+ * (c) 2025 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import { TdMarkdownEngine } from 'tdesign-web-components';
8
+ import reactify from '../_util/reactify.js';
9
+ import 'tdesign-web-components/lib/chat-message/content/markdown-content';
10
+ import '@babel/runtime/helpers/objectWithoutProperties';
11
+ import '@babel/runtime/helpers/toConsumableArray';
12
+ import '@babel/runtime/helpers/classCallCheck';
13
+ import '@babel/runtime/helpers/createClass';
14
+ import '@babel/runtime/helpers/possibleConstructorReturn';
15
+ import '@babel/runtime/helpers/getPrototypeOf';
16
+ import '@babel/runtime/helpers/inherits';
17
+ import '@babel/runtime/helpers/defineProperty';
18
+ import '@babel/runtime/helpers/slicedToArray';
19
+ import '@babel/runtime/helpers/typeof';
20
+ import 'react';
21
+ import 'react-dom';
22
+ import 'react-dom/client';
23
+
24
+ var MarkdownEngine = TdMarkdownEngine;
25
+ var ChatMarkdown = reactify("t-chat-md-content");
26
+
27
+ export { ChatMarkdown, MarkdownEngine, ChatMarkdown as default };
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../pro-components/chat/chat-markdown/index.ts"],"sourcesContent":["import { TdChatMarkdownContentProps, TdMarkdownEngine } from 'tdesign-web-components';\nimport reactify from '../_util/reactify';\n\nexport const MarkdownEngine: typeof TdMarkdownEngine = TdMarkdownEngine;\nexport const ChatMarkdown: React.ForwardRefExoticComponent<\n Omit<TdChatMarkdownContentProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdChatMarkdownContentProps>('t-chat-md-content');\n\n// eslint-disable-next-line import/first\nimport 'tdesign-web-components/lib/chat-message/content/markdown-content';\n\nexport default ChatMarkdown;\nexport type { TdChatMarkdownContentProps } from 'tdesign-web-components';\n"],"names":["MarkdownEngine","TdMarkdownEngine","ChatMarkdown","reactify"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGO,IAAMA,cAA0C,GAAAC,iBAAA;IAC1CC,YAAA,GAETC,SAAqC,mBAAmB;;;;"}
@@ -0,0 +1,5 @@
1
+ import { type TdChatMessageProps } from 'tdesign-web-components';
2
+ import 'tdesign-web-components/lib/chat-message';
3
+ export declare const ChatMessage: React.ForwardRefExoticComponent<Omit<TdChatMessageProps & React.PropsWithChildren, 'ref'> & React.RefAttributes<HTMLElement | undefined>>;
4
+ export default ChatMessage;
5
+ export type { TdChatMessageProps } from 'tdesign-web-components';
@@ -0,0 +1,26 @@
1
+ /**
2
+ * tdesign v1.0.0-beta.1
3
+ * (c) 2025 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import 'tdesign-web-components/lib/chat-message';
8
+ import reactify from '../_util/reactify.js';
9
+ import '@babel/runtime/helpers/objectWithoutProperties';
10
+ import '@babel/runtime/helpers/toConsumableArray';
11
+ import '@babel/runtime/helpers/classCallCheck';
12
+ import '@babel/runtime/helpers/createClass';
13
+ import '@babel/runtime/helpers/possibleConstructorReturn';
14
+ import '@babel/runtime/helpers/getPrototypeOf';
15
+ import '@babel/runtime/helpers/inherits';
16
+ import '@babel/runtime/helpers/defineProperty';
17
+ import '@babel/runtime/helpers/slicedToArray';
18
+ import '@babel/runtime/helpers/typeof';
19
+ import 'react';
20
+ import 'react-dom';
21
+ import 'react-dom/client';
22
+
23
+ var ChatMessage = reactify("t-chat-item");
24
+
25
+ export { ChatMessage, ChatMessage as default };
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../pro-components/chat/chat-message/index.ts"],"sourcesContent":["import { type TdChatMessageProps } from 'tdesign-web-components';\nimport 'tdesign-web-components/lib/chat-message';\nimport reactify from '../_util/reactify';\n\nexport const ChatMessage: React.ForwardRefExoticComponent<\n Omit<TdChatMessageProps & React.PropsWithChildren, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdChatMessageProps>('t-chat-item');\n\nexport default ChatMessage;\n\nexport type { TdChatMessageProps } from 'tdesign-web-components';\n"],"names":["ChatMessage","reactify"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IAIaA,WAAA,GAETC,SAA6B,aAAa;;;;"}
@@ -0,0 +1,5 @@
1
+ import { TdChatSenderProps } from 'tdesign-web-components';
2
+ import 'tdesign-web-components/lib/chat-sender';
3
+ export declare const ChatSender: React.ForwardRefExoticComponent<Omit<TdChatSenderProps & React.PropsWithChildren, 'ref'> & React.RefAttributes<HTMLElement | undefined>>;
4
+ export default ChatSender;
5
+ export type * from 'tdesign-web-components/lib/chat-sender/type';
@@ -0,0 +1,26 @@
1
+ /**
2
+ * tdesign v1.0.0-beta.1
3
+ * (c) 2025 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import 'tdesign-web-components/lib/chat-sender';
8
+ import reactify from '../_util/reactify.js';
9
+ import '@babel/runtime/helpers/objectWithoutProperties';
10
+ import '@babel/runtime/helpers/toConsumableArray';
11
+ import '@babel/runtime/helpers/classCallCheck';
12
+ import '@babel/runtime/helpers/createClass';
13
+ import '@babel/runtime/helpers/possibleConstructorReturn';
14
+ import '@babel/runtime/helpers/getPrototypeOf';
15
+ import '@babel/runtime/helpers/inherits';
16
+ import '@babel/runtime/helpers/defineProperty';
17
+ import '@babel/runtime/helpers/slicedToArray';
18
+ import '@babel/runtime/helpers/typeof';
19
+ import 'react';
20
+ import 'react-dom';
21
+ import 'react-dom/client';
22
+
23
+ var ChatSender = reactify("t-chat-sender");
24
+
25
+ export { ChatSender, ChatSender as default };
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../pro-components/chat/chat-sender/index.ts"],"sourcesContent":["import { TdChatSenderProps } from 'tdesign-web-components';\nimport 'tdesign-web-components/lib/chat-sender';\nimport reactify from '../_util/reactify';\n\nexport const ChatSender: React.ForwardRefExoticComponent<\n Omit<TdChatSenderProps & React.PropsWithChildren, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdChatSenderProps>('t-chat-sender');\n\nexport default ChatSender;\nexport type * from 'tdesign-web-components/lib/chat-sender/type';\n"],"names":["ChatSender","reactify"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IAIaA,UAAA,GAETC,SAA4B,eAAe;;;;"}
@@ -0,0 +1,5 @@
1
+ import { TdChatThinkContentProps } from 'tdesign-web-components';
2
+ import 'tdesign-web-components/lib/chat-message/content/thinking-content';
3
+ export declare const ChatThinking: import("react").ForwardRefExoticComponent<Omit<TdChatThinkContentProps, "ref"> & import("react").RefAttributes<HTMLElement>>;
4
+ export default ChatThinking;
5
+ export type { TdChatThinkContentProps } from 'tdesign-web-components';
@@ -0,0 +1,27 @@
1
+ /**
2
+ * tdesign v1.0.0-beta.1
3
+ * (c) 2025 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import 'tdesign-web-components/lib/chat-message/content/thinking-content';
8
+ import reactify from '../_util/reactify.js';
9
+ import '@babel/runtime/helpers/objectWithoutProperties';
10
+ import '@babel/runtime/helpers/toConsumableArray';
11
+ import '@babel/runtime/helpers/classCallCheck';
12
+ import '@babel/runtime/helpers/createClass';
13
+ import '@babel/runtime/helpers/possibleConstructorReturn';
14
+ import '@babel/runtime/helpers/getPrototypeOf';
15
+ import '@babel/runtime/helpers/inherits';
16
+ import '@babel/runtime/helpers/defineProperty';
17
+ import '@babel/runtime/helpers/slicedToArray';
18
+ import '@babel/runtime/helpers/typeof';
19
+ import 'react';
20
+ import 'react-dom';
21
+ import 'react-dom/client';
22
+
23
+ var ChatThinkContent = reactify("t-chat-thinking-content");
24
+ var ChatThinking = ChatThinkContent;
25
+
26
+ export { ChatThinking, ChatThinking as default };
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../pro-components/chat/chat-thinking/index.ts"],"sourcesContent":["import { TdChatThinkContentProps } from 'tdesign-web-components';\nimport 'tdesign-web-components/lib/chat-message/content/thinking-content';\nimport reactify from '../_util/reactify';\n\nconst ChatThinkContent: React.ForwardRefExoticComponent<\n Omit<TdChatThinkContentProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdChatThinkContentProps>('t-chat-thinking-content');\n\nexport const ChatThinking = ChatThinkContent;\n\nexport default ChatThinking;\n\nexport type { TdChatThinkContentProps } from 'tdesign-web-components';\n"],"names":["ChatThinkContent","reactify","ChatThinking"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,gBAAA,GAEFC,SAAkC,yBAAyB,CAAA,CAAA;AAExD,IAAMC,YAAe,GAAAF;;;;"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { type StateActionOptions } from '../../hooks/useAgentState';
3
+ export declare const AgentStateProvider: ({ children, initialState, subscribeKey }: StateActionOptions & {
4
+ children: React.ReactNode;
5
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * tdesign v1.0.0-beta.1
3
+ * (c) 2025 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import React from 'react';
8
+ import { useAgentState, AgentStateContext } from '../../hooks/useAgentState.js';
9
+ import '@babel/runtime/helpers/defineProperty';
10
+ import '@babel/runtime/helpers/slicedToArray';
11
+ import 'tdesign-web-components/lib/chat-engine';
12
+
13
+ var AgentStateProvider = function AgentStateProvider(_ref) {
14
+ var children = _ref.children,
15
+ _ref$initialState = _ref.initialState,
16
+ initialState = _ref$initialState === void 0 ? {} : _ref$initialState,
17
+ subscribeKey = _ref.subscribeKey;
18
+ var agentStateResult = useAgentState({
19
+ initialState: initialState,
20
+ subscribeKey: subscribeKey
21
+ });
22
+ return /* @__PURE__ */React.createElement(AgentStateContext.Provider, {
23
+ value: agentStateResult
24
+ }, children);
25
+ };
26
+
27
+ export { AgentStateProvider };
28
+ //# sourceMappingURL=agent-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-state.js","sources":["../../../../../pro-components/chat/chatbot/components/provider/agent-state.tsx"],"sourcesContent":["import React from 'react';\nimport { AgentStateContext, type StateActionOptions, useAgentState } from '../../hooks/useAgentState';\n\n// 导出 Provider 组件\nexport const AgentStateProvider = ({ children, initialState = {}, subscribeKey }: StateActionOptions & {\n children: React.ReactNode;\n}) => {\n const agentStateResult = useAgentState({\n initialState,\n subscribeKey,\n });\n\n return (\n <AgentStateContext.Provider value={agentStateResult}>\n {children}\n </AgentStateContext.Provider>\n );\n};\n"],"names":["AgentStateProvider","_ref","children","_ref$initialState","initialState","subscribeKey","agentStateResult","useAgentState","React","createElement","AgentStateContext","Provider","value"],"mappings":";;;;;;;;;;;;IAIaA,kBAAA,GAAqB,SAArBA,kBAAAA,CAAAC,IAAA,EAEP;AAAA,EAAA,IAF+BC,QAAA,GAAAD,IAAA,CAAAC,QAAA;IAAAC,iBAAA,GAAAF,IAAA,CAAUG;AAAAA,IAAAA,8CAAe,EAAC,GAAAD,iBAAA;IAAGE,oBAAAA;EAGhE,IAAMC,mBAAmBC,aAAc,CAAA;AACrCH,IAAAA,YAAA,EAAAA,YAAA;AACAC,IAAAA,YAAA,EAAAA,YAAAA;AACF,GAAC,CAAA,CAAA;EAGC,sBAAAG,KAAA,CAAAC,aAAA,CAACC,kBAAkBC,QAAlB,EAAA;AAA2BC,IAAAA,KAAO,EAAAN,gBAAAA;GAAA,EAChCJ,QACH,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,3 @@
1
+ export * from './types';
2
+ export * from './registry';
3
+ export * from './render';
@@ -0,0 +1,19 @@
1
+ /**
2
+ * tdesign v1.0.0-beta.1
3
+ * (c) 2025 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ export { isNonInteractive, isNonInteractiveConfig } from './types.js';
8
+ export { agentToolcallRegistry } from './registry.js';
9
+ export { ToolCallRenderer, withAgentStateToolcall, withAgentStateToolcall1 } from './render.js';
10
+ import '@babel/runtime/helpers/classCallCheck';
11
+ import '@babel/runtime/helpers/createClass';
12
+ import '@babel/runtime/helpers/defineProperty';
13
+ import 'react';
14
+ import '@babel/runtime/helpers/asyncToGenerator';
15
+ import '@babel/runtime/helpers/slicedToArray';
16
+ import '@babel/runtime/regenerator';
17
+ import '../../hooks/useAgentState.js';
18
+ import 'tdesign-web-components/lib/chat-engine';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import type { AgentToolcallConfig, AgentToolcallRegistry, ToolcallComponentProps } from './types';
3
+ /**
4
+ * 全局 Agent Toolcall 注册表
5
+ */
6
+ declare class AgentToolcallRegistryManager {
7
+ private registry;
8
+ private renderFunctionCache;
9
+ /**
10
+ * 注册一个 Agent Toolcall
11
+ */
12
+ register<TArgs extends object = any, TResult = any, TResponse = any>(config: AgentToolcallConfig<TArgs, TResult, TResponse>): void;
13
+ /**
14
+ * 获取指定名称的 Agent Toolcall 配置
15
+ */
16
+ get(name: string): AgentToolcallConfig | undefined;
17
+ /**
18
+ * 获取或创建缓存的组件渲染函数
19
+ */
20
+ getRenderFunction(name: string): React.MemoExoticComponent<React.ComponentType<ToolcallComponentProps>> | null;
21
+ /**
22
+ * 获取所有已注册的 Agent Toolcall
23
+ */
24
+ getAll(): AgentToolcallRegistry;
25
+ /**
26
+ * 取消注册指定的 Agent Toolcall
27
+ */
28
+ unregister(name: string): void;
29
+ /**
30
+ * 清空所有注册的 Agent Toolcall
31
+ */
32
+ clear(): void;
33
+ }
34
+ export declare const agentToolcallRegistry: AgentToolcallRegistryManager;
35
+ export {};
@@ -0,0 +1,75 @@
1
+ /**
2
+ * tdesign v1.0.0-beta.1
3
+ * (c) 2025 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
8
+ import _createClass from '@babel/runtime/helpers/createClass';
9
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
10
+ import React from 'react';
11
+
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ var AgentToolcallRegistryManager = /*#__PURE__*/function () {
15
+ function AgentToolcallRegistryManager() {
16
+ _classCallCheck(this, AgentToolcallRegistryManager);
17
+ _defineProperty(this, "registry", {});
18
+ _defineProperty(this, "renderFunctionCache", /* @__PURE__ */new Map());
19
+ }
20
+ return _createClass(AgentToolcallRegistryManager, [{
21
+ key: "register",
22
+ value: function register(config) {
23
+ var existingConfig = this.registry[config.name];
24
+ if (existingConfig && existingConfig.component !== config.component) {
25
+ this.renderFunctionCache["delete"](config.name);
26
+ }
27
+ this.registry[config.name] = config;
28
+ window.dispatchEvent(new CustomEvent("toolcall-registered", {
29
+ detail: {
30
+ name: config.name
31
+ }
32
+ }));
33
+ }
34
+ }, {
35
+ key: "get",
36
+ value: function get(name) {
37
+ return this.registry[name];
38
+ }
39
+ }, {
40
+ key: "getRenderFunction",
41
+ value: function getRenderFunction(name) {
42
+ var config = this.registry[name];
43
+ if (!config) return null;
44
+ var memoizedComponent = this.renderFunctionCache.get(name);
45
+ if (!memoizedComponent) {
46
+ memoizedComponent = /*#__PURE__*/React.memo(function (props) {
47
+ return /*#__PURE__*/React.createElement(config.component, props);
48
+ });
49
+ this.renderFunctionCache.set(name, memoizedComponent);
50
+ }
51
+ return memoizedComponent;
52
+ }
53
+ }, {
54
+ key: "getAll",
55
+ value: function getAll() {
56
+ return _objectSpread({}, this.registry);
57
+ }
58
+ }, {
59
+ key: "unregister",
60
+ value: function unregister(name) {
61
+ delete this.registry[name];
62
+ this.renderFunctionCache["delete"](name);
63
+ }
64
+ }, {
65
+ key: "clear",
66
+ value: function clear() {
67
+ this.registry = {};
68
+ this.renderFunctionCache.clear();
69
+ }
70
+ }]);
71
+ }();
72
+ var agentToolcallRegistry = new AgentToolcallRegistryManager();
73
+
74
+ export { agentToolcallRegistry };
75
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sources":["../../../../../pro-components/chat/chatbot/components/toolcall/registry.ts"],"sourcesContent":["import React from 'react';\nimport type { AgentToolcallConfig, AgentToolcallRegistry, ToolcallComponentProps } from './types';\n\n/**\n * 全局 Agent Toolcall 注册表\n */\nclass AgentToolcallRegistryManager {\n private registry: AgentToolcallRegistry = {};\n\n // 添加组件渲染函数缓存(类似CopilotKit的chatComponentsCache.current.actions)\n private renderFunctionCache = new Map<\n string,\n React.MemoExoticComponent<React.ComponentType<ToolcallComponentProps>>\n >();\n\n /**\n * 注册一个 Agent Toolcall\n */\n register<TArgs extends object = any, TResult = any, TResponse = any>(\n config: AgentToolcallConfig<TArgs, TResult, TResponse>,\n ): void {\n const existingConfig = this.registry[config.name];\n\n // 如果组件发生变化,清除旧的缓存\n if (existingConfig && existingConfig.component !== config.component) {\n this.renderFunctionCache.delete(config.name);\n }\n this.registry[config.name] = config;\n window.dispatchEvent(\n new CustomEvent('toolcall-registered', {\n detail: { name: config.name },\n }),\n );\n }\n\n /**\n * 获取指定名称的 Agent Toolcall 配置\n */\n get(name: string): AgentToolcallConfig | undefined {\n return this.registry[name];\n }\n\n /**\n * 获取或创建缓存的组件渲染函数\n */\n getRenderFunction(name: string): React.MemoExoticComponent<React.ComponentType<ToolcallComponentProps>> | null {\n const config = this.registry[name];\n if (!config) return null;\n\n // 检查缓存\n let memoizedComponent = this.renderFunctionCache.get(name);\n\n if (!memoizedComponent) {\n // 创建memo化的组件\n memoizedComponent = React.memo((props: ToolcallComponentProps) => React.createElement(config.component, props));\n\n // 缓存组件\n this.renderFunctionCache.set(name, memoizedComponent);\n }\n\n return memoizedComponent;\n }\n\n /**\n * 获取所有已注册的 Agent Toolcall\n */\n getAll(): AgentToolcallRegistry {\n return { ...this.registry };\n }\n\n /**\n * 取消注册指定的 Agent Toolcall\n */\n unregister(name: string): void {\n delete this.registry[name];\n this.renderFunctionCache.delete(name);\n }\n\n /**\n * 清空所有注册的 Agent Toolcall\n */\n clear(): void {\n this.registry = {};\n this.renderFunctionCache.clear();\n }\n}\n\n// 导出单例实例\nexport const agentToolcallRegistry = new AgentToolcallRegistryManager();\n"],"names":["AgentToolcallRegistryManager","_classCallCheck","_defineProperty","Map","_createClass","key","value","register","config","existingConfig","registry","name","component","renderFunctionCache","window","dispatchEvent","CustomEvent","detail","get","getRenderFunction","memoizedComponent","React","memo","props","createElement","set","getAll","_objectSpread","unregister","clear","agentToolcallRegistry"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { ToolCall } from 'tdesign-web-components/lib/chat-engine';
3
+ interface ToolCallRendererProps {
4
+ toolCall: ToolCall;
5
+ onRespond?: (toolCall: ToolCall, response: any) => void;
6
+ }
7
+ export declare const ToolCallRenderer: React.NamedExoticComponent<ToolCallRendererProps>;
8
+ type WithAgentStateProps<P> = P & {
9
+ agentState?: Record<string, any>;
10
+ };
11
+ export declare const withAgentStateToolcall1: <P extends object>(Component: React.ComponentType<WithAgentStateProps<P>>) => React.ComponentType<P>;
12
+ export declare const withAgentStateToolcall: <P extends object>(Component: React.ComponentType<WithAgentStateProps<P>>, subscribeKeyExtractor?: (props: P) => string | undefined) => React.ComponentType<P>;
13
+ export {};
@@ -0,0 +1,207 @@
1
+ /**
2
+ * tdesign v1.0.0-beta.1
3
+ * (c) 2025 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
8
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
9
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
11
+ import React, { useState, useMemo, useCallback, useEffect } from 'react';
12
+ import { isNonInteractiveConfig } from './types.js';
13
+ import { agentToolcallRegistry } from './registry.js';
14
+ import { useAgentStateDataByKey, AgentStateContext } from '../../hooks/useAgentState.js';
15
+ import '@babel/runtime/helpers/classCallCheck';
16
+ import '@babel/runtime/helpers/createClass';
17
+ import 'tdesign-web-components/lib/chat-engine';
18
+
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
+ var ToolCallRenderer = /*#__PURE__*/React.memo(function (_ref) {
22
+ var toolCall = _ref.toolCall,
23
+ onRespond = _ref.onRespond;
24
+ var _useState = useState({
25
+ status: "idle"
26
+ }),
27
+ _useState2 = _slicedToArray(_useState, 2),
28
+ actionState = _useState2[0],
29
+ setActionState = _useState2[1];
30
+ var config = useMemo(function () {
31
+ var cfg = agentToolcallRegistry.get(toolCall.toolCallName);
32
+ return cfg;
33
+ }, [toolCall.toolCallName]);
34
+ var _useState3 = useState(function () {
35
+ return !!agentToolcallRegistry.getRenderFunction(toolCall.toolCallName);
36
+ }),
37
+ _useState4 = _slicedToArray(_useState3, 2),
38
+ isRegistered = _useState4[0],
39
+ setIsRegistered = _useState4[1];
40
+ var args = useMemo(function () {
41
+ try {
42
+ return toolCall.args ? JSON.parse(toolCall.args) : {};
43
+ } catch (error) {
44
+ console.error("\u89E3\u6790\u5DE5\u5177\u8C03\u7528\u53C2\u6570\u5931\u8D25:", error);
45
+ return {};
46
+ }
47
+ }, [toolCall.args]);
48
+ var handleRespond = useCallback(function (response) {
49
+ if (onRespond) {
50
+ onRespond(toolCall, response);
51
+ setActionState(function (prev) {
52
+ return _objectSpread(_objectSpread({}, prev), {}, {
53
+ status: "complete",
54
+ result: response
55
+ });
56
+ });
57
+ }
58
+ }, [toolCall.toolCallId, onRespond]);
59
+ useEffect(function () {
60
+ if (!config) return;
61
+ if (isNonInteractiveConfig(config)) {
62
+ var executeHandler = /*#__PURE__*/function () {
63
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
64
+ var backendResult, result, _t;
65
+ return _regeneratorRuntime.wrap(function (_context) {
66
+ while (1) switch (_context.prev = _context.next) {
67
+ case 0:
68
+ _context.prev = 0;
69
+ setActionState({
70
+ status: "executing"
71
+ });
72
+ if (toolCall.result) {
73
+ try {
74
+ backendResult = JSON.parse(toolCall.result);
75
+ } catch (error) {
76
+ console.warn("\u89E3\u6790\u540E\u7AEF\u7ED3\u679C\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CB\u5B57\u7B26\u4E32:", error);
77
+ backendResult = toolCall.result;
78
+ }
79
+ }
80
+ _context.next = 1;
81
+ return config.handler(args, backendResult);
82
+ case 1:
83
+ result = _context.sent;
84
+ setActionState({
85
+ status: "complete",
86
+ result: result
87
+ });
88
+ _context.next = 3;
89
+ break;
90
+ case 2:
91
+ _context.prev = 2;
92
+ _t = _context["catch"](0);
93
+ setActionState({
94
+ status: "error",
95
+ error: _t
96
+ });
97
+ case 3:
98
+ case "end":
99
+ return _context.stop();
100
+ }
101
+ }, _callee, null, [[0, 2]]);
102
+ }));
103
+ return function executeHandler() {
104
+ return _ref2.apply(this, arguments);
105
+ };
106
+ }();
107
+ executeHandler();
108
+ } else if (toolCall.result) {
109
+ try {
110
+ var result = JSON.parse(toolCall.result);
111
+ setActionState({
112
+ status: "complete",
113
+ result: result
114
+ });
115
+ } catch (error) {
116
+ setActionState({
117
+ status: "error",
118
+ error: error
119
+ });
120
+ }
121
+ } else {
122
+ setActionState({
123
+ status: "executing"
124
+ });
125
+ }
126
+ }, [config, args, toolCall.result]);
127
+ var subscribeKeyExtractor = useMemo(function () {
128
+ return config === null || config === void 0 ? void 0 : config.subscribeKey;
129
+ }, [config]);
130
+ var targetStateKey = useMemo(function () {
131
+ if (!subscribeKeyExtractor) return void 0;
132
+ var fullProps = {
133
+ status: actionState.status,
134
+ args: args,
135
+ result: actionState.result,
136
+ error: actionState.error,
137
+ respond: handleRespond
138
+ };
139
+ return subscribeKeyExtractor(fullProps);
140
+ }, [subscribeKeyExtractor, args, actionState]);
141
+ useEffect(function () {
142
+ if (!isRegistered) {
143
+ var handleRegistered = function handleRegistered(event) {
144
+ var _event$detail;
145
+ if (((_event$detail = event.detail) === null || _event$detail === void 0 ? void 0 : _event$detail.name) === toolCall.toolCallName) {
146
+ setIsRegistered(true);
147
+ }
148
+ };
149
+ window.addEventListener("toolcall-registered", handleRegistered);
150
+ return function () {
151
+ window.removeEventListener("toolcall-registered", handleRegistered);
152
+ };
153
+ }
154
+ }, [toolCall.toolCallName, isRegistered]);
155
+ var agentState = useAgentStateDataByKey(targetStateKey);
156
+ var componentProps = useMemo(function () {
157
+ return {
158
+ status: actionState.status,
159
+ args: args,
160
+ result: actionState.result,
161
+ error: actionState.error,
162
+ respond: handleRespond,
163
+ agentState: agentState
164
+ };
165
+ }, [actionState.status, args, actionState.result, actionState.error, handleRespond, agentState]);
166
+ var MemoizedComponent = useMemo(function () {
167
+ return agentToolcallRegistry.getRenderFunction(toolCall.toolCallName);
168
+ }, [toolCall.toolCallName, isRegistered]);
169
+ if (!MemoizedComponent) {
170
+ return null;
171
+ }
172
+ return /* @__PURE__ */React.createElement(MemoizedComponent, _objectSpread({}, componentProps));
173
+ }, function (prevProps, nextProps) {
174
+ return prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId && prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName && prevProps.toolCall.args === nextProps.toolCall.args && prevProps.toolCall.result === nextProps.toolCall.result && prevProps.onRespond === nextProps.onRespond;
175
+ });
176
+ var withAgentStateToolcall1 = function withAgentStateToolcall1(Component) {
177
+ var WrappedComponent = function WrappedComponent(props) {
178
+ return /* @__PURE__ */React.createElement(AgentStateContext.Consumer, null, function (context) {
179
+ if (!context) {
180
+ console.warn("AgentStateContext not found, component will render without state");
181
+ return /* @__PURE__ */React.createElement(Component, _objectSpread({}, props));
182
+ }
183
+ return /* @__PURE__ */React.createElement(Component, _objectSpread(_objectSpread({}, props), {}, {
184
+ agentState: context.stateMap
185
+ }));
186
+ });
187
+ };
188
+ WrappedComponent.displayName = "withAgentState(".concat(Component.displayName || Component.name || "Component", ")");
189
+ return /*#__PURE__*/React.memo(WrappedComponent);
190
+ };
191
+ var withAgentStateToolcall = function withAgentStateToolcall(Component, subscribeKeyExtractor) {
192
+ var WrappedComponent = function WrappedComponent(props) {
193
+ var targetStateKey = useMemo(function () {
194
+ return subscribeKeyExtractor ? subscribeKeyExtractor(props) : void 0;
195
+ }, [props]);
196
+ var agentState = useAgentStateDataByKey(targetStateKey);
197
+ console.log("====WrappedComponent", agentState, targetStateKey);
198
+ return /* @__PURE__ */React.createElement(Component, _objectSpread(_objectSpread({}, props), {}, {
199
+ agentState: agentState
200
+ }));
201
+ };
202
+ WrappedComponent.displayName = "withAgentState(".concat(Component.displayName || Component.name || "Component", ")");
203
+ return /*#__PURE__*/React.memo(WrappedComponent);
204
+ };
205
+
206
+ export { ToolCallRenderer, withAgentStateToolcall, withAgentStateToolcall1 };
207
+ //# sourceMappingURL=render.js.map