@tdesign-react/chat 1.0.2-alpha.11 → 1.0.2-alpha.13

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 (209) hide show
  1. package/es/_util/reactify.js +4 -4
  2. package/es/_util/reactify.js.map +1 -1
  3. package/es/_util/useDynamicStyle.js +1 -1
  4. package/es/attachments/index.js +1 -1
  5. package/es/chat-actionbar/index.js +1 -1
  6. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +91 -0
  7. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +236 -0
  8. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
  9. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
  10. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
  11. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
  12. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
  13. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
  14. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
  15. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
  16. package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
  17. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
  18. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
  19. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
  20. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
  21. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
  22. package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
  23. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
  24. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
  25. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
  26. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
  27. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
  28. package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
  29. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
  30. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
  31. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
  32. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
  33. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
  34. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
  35. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
  36. package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
  37. package/es/chat-engine/components/a2ui/containers/index.js +30 -0
  38. package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
  39. package/es/chat-engine/components/a2ui/index.d.ts +11 -0
  40. package/es/chat-engine/components/a2ui/index.js +60 -0
  41. package/es/chat-engine/components/a2ui/index.js.map +1 -0
  42. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +31 -0
  43. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +76 -0
  44. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
  45. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
  46. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
  47. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
  48. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
  49. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
  50. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
  51. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
  52. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
  53. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
  54. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
  55. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
  56. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
  57. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
  58. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
  59. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
  60. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
  61. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
  62. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
  63. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
  64. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
  65. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
  66. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
  67. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
  68. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
  69. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
  70. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
  71. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
  72. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
  73. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
  74. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
  75. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
  76. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
  77. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
  78. package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
  79. package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
  80. package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
  81. package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
  82. package/es/chat-engine/components/a2ui/registry.js +74 -0
  83. package/es/chat-engine/components/a2ui/registry.js.map +1 -0
  84. package/es/chat-engine/components/activity/index.js +1 -1
  85. package/es/chat-engine/components/activity/registry.js +4 -4
  86. package/es/chat-engine/components/activity/registry.js.map +1 -1
  87. package/es/chat-engine/components/activity/render.js +6 -6
  88. package/es/chat-engine/components/activity/render.js.map +1 -1
  89. package/es/chat-engine/components/activity/types.js +1 -1
  90. package/es/chat-engine/components/index.js +4 -1
  91. package/es/chat-engine/components/index.js.map +1 -1
  92. package/es/chat-engine/components/provider/agent-state.js +6 -3
  93. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  94. package/es/chat-engine/components/toolcall/index.js +4 -1
  95. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  96. package/es/chat-engine/components/toolcall/registry.js +4 -4
  97. package/es/chat-engine/components/toolcall/registry.js.map +1 -1
  98. package/es/chat-engine/components/toolcall/render.js +14 -11
  99. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  100. package/es/chat-engine/components/toolcall/types.js +1 -1
  101. package/es/chat-engine/core/a2ui/index.d.ts +10 -0
  102. package/es/chat-engine/core/a2ui/index.js +24 -0
  103. package/es/chat-engine/core/a2ui/index.js.map +1 -0
  104. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  105. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
  106. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  107. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
  108. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
  109. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
  110. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
  111. package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
  112. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
  113. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
  114. package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
  115. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
  116. package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
  117. package/es/chat-engine/core/a2ui/types/index.js +9 -0
  118. package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
  119. package/es/chat-engine/core/a2ui/types/types.d.ts +769 -0
  120. package/es/chat-engine/core/a2ui/types/types.js +104 -0
  121. package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
  122. package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
  123. package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
  124. package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
  125. package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
  126. package/es/chat-engine/core/a2ui/utils/index.js +13 -0
  127. package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
  128. package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
  129. package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
  130. package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
  131. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +16 -0
  132. package/es/chat-engine/core/adapters/agui/event-mapper.js +60 -6
  133. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
  134. package/es/chat-engine/core/adapters/agui/events.js +1 -1
  135. package/es/chat-engine/core/adapters/agui/index.d.ts +1 -1
  136. package/es/chat-engine/core/adapters/agui/index.js +1 -1
  137. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  138. package/es/chat-engine/core/adapters/agui/state-manager.js +1 -1
  139. package/es/chat-engine/core/adapters/agui/types.js +1 -1
  140. package/es/chat-engine/core/adapters/agui/utils.d.ts +5 -1
  141. package/es/chat-engine/core/adapters/agui/utils.js +6 -2
  142. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
  143. package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
  144. package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
  145. package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
  146. package/es/chat-engine/core/event-bus/index.d.ts +5 -0
  147. package/es/chat-engine/core/event-bus/index.js +13 -0
  148. package/es/chat-engine/core/event-bus/index.js.map +1 -0
  149. package/es/chat-engine/core/event-bus/types.d.ts +230 -0
  150. package/es/chat-engine/core/event-bus/types.js +32 -0
  151. package/es/chat-engine/core/event-bus/types.js.map +1 -0
  152. package/es/chat-engine/core/index.d.ts +8 -1
  153. package/es/chat-engine/core/index.js +128 -10
  154. package/es/chat-engine/core/index.js.map +1 -1
  155. package/es/chat-engine/core/processor/index.js +1 -1
  156. package/es/chat-engine/core/server/batch-client.js +1 -1
  157. package/es/chat-engine/core/server/connection-manager.js +1 -1
  158. package/es/chat-engine/core/server/errors.js +1 -1
  159. package/es/chat-engine/core/server/index.js +1 -1
  160. package/es/chat-engine/core/server/llm-service.js +17 -15
  161. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  162. package/es/chat-engine/core/server/sse-client.js +1 -1
  163. package/es/chat-engine/core/server/sse-parser.js +1 -1
  164. package/es/chat-engine/core/server/types.js +1 -1
  165. package/es/chat-engine/core/store/message.js +1 -1
  166. package/es/chat-engine/core/store/model.js +1 -1
  167. package/es/chat-engine/core/store/reactiveState.js +1 -1
  168. package/es/chat-engine/core/type.d.ts +18 -2
  169. package/es/chat-engine/core/type.js +1 -1
  170. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  171. package/es/chat-engine/core/utils/index.js +1 -1
  172. package/es/chat-engine/core/utils/logger.js +1 -1
  173. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
  174. package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
  175. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
  176. package/es/chat-engine/hooks/a2ui/index.d.ts +7 -0
  177. package/es/chat-engine/hooks/a2ui/index.js +19 -0
  178. package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
  179. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
  180. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
  181. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
  182. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
  183. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
  184. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
  185. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
  186. package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
  187. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
  188. package/es/chat-engine/hooks/index.js +4 -1
  189. package/es/chat-engine/hooks/index.js.map +1 -1
  190. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  191. package/es/chat-engine/hooks/useAgentState.js +4 -1
  192. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  193. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  194. package/es/chat-engine/hooks/useChat.js +4 -1
  195. package/es/chat-engine/hooks/useChat.js.map +1 -1
  196. package/es/chat-engine/index.js +4 -1
  197. package/es/chat-engine/index.js.map +1 -1
  198. package/es/chat-filecard/index.js +1 -1
  199. package/es/chat-loading/index.js +1 -1
  200. package/es/chat-markdown/index.js +1 -1
  201. package/es/chat-message/index.js +1 -1
  202. package/es/chat-sender/index.js +1 -1
  203. package/es/chat-thinking/index.js +1 -1
  204. package/es/chatbot/docs/react-best-practice.d.ts +13 -0
  205. package/es/chatbot/index.js +1 -1
  206. package/es/index.js +4 -1
  207. package/es/index.js.map +1 -1
  208. package/es/style/index.js +1 -1
  209. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A2UITextField.js","sources":["../../../../../../pro-components/chat/chat-engine/components/a2ui/primitives/A2UITextField.tsx"],"sourcesContent":["/**\n * A2UI TextField 组件\n * A2UI v0.9 标准输入框组件\n */\n\nimport React, { useCallback } from 'react';\nimport { Input, Textarea } from 'tdesign-react';\nimport { useDataBinding, useTwoWayBinding } from '../../../hooks/a2ui/useDataBinding';\nimport type { A2UITextFieldComponent } from '../../../core/a2ui';\n\nexport interface A2UITextFieldProps extends Omit<A2UITextFieldComponent, 'component'> {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const A2UITextField: React.FC<A2UITextFieldProps> = ({\n id,\n label,\n text,\n usageHint = 'shortText',\n validationRegexp,\n placeholder,\n disabled,\n className,\n style,\n}) => {\n // 解析标签\n const resolvedLabel = useDataBinding<React.ReactNode>(label);\n // 双向绑定文本值\n const [inputValue, setInputValue] = useTwoWayBinding<string>(text, '');\n // 解析禁用状态\n const resolvedDisabled = useDataBinding<boolean | undefined>(disabled);\n\n // 处理 onChange\n const handleChange = useCallback(\n (val: string) => {\n // 如果有验证正则,进行验证\n if (validationRegexp && typeof validationRegexp === 'string') {\n const regex = new RegExp(validationRegexp);\n if (!regex.test(val) && val !== '') {\n return; // 不符合正则,不更新\n }\n }\n setInputValue(val);\n },\n [setInputValue, validationRegexp]\n );\n\n // 根据 usageHint 决定渲染组件\n if (usageHint === 'longText') {\n return (\n <div className={className} style={style}>\n {resolvedLabel && (\n <label style={{ display: 'block', marginBottom: 4 }}>{resolvedLabel}</label>\n )}\n <Textarea\n value={inputValue as string}\n placeholder={placeholder as string}\n disabled={resolvedDisabled as boolean}\n onChange={handleChange}\n autosize={{ minRows: 3, maxRows: 10 }}\n />\n </div>\n );\n }\n\n // shortText, number, obscured 使用 Input\n const inputType = usageHint === 'obscured' ? 'password' : usageHint === 'number' ? 'number' : 'text';\n\n return (\n <Input\n className={className}\n style={style}\n value={inputValue as string}\n placeholder={placeholder as string}\n disabled={resolvedDisabled as boolean}\n label={resolvedLabel}\n type={inputType}\n onChange={handleChange}\n />\n );\n};\n\nA2UITextField.displayName = 'A2UITextField';\n\nexport default A2UITextField;\n"],"names":["A2UITextField","id","_ref","label","text","_ref$usageHint","usageHint","validationRegexp","placeholder","disabled","className","style","resolvedLabel","useDataBinding","_useTwoWayBinding","useTwoWayBinding","_useTwoWayBinding2","_slicedToArray","inputValue","setInputValue","resolvedDisabled","handleChange","useCallback","val","regex","RegExp","test","React","createElement","display","marginBottom","Textarea","value","onChange","autosize","minRows","maxRows","inputType","Input","type","displayName"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * A2UI 基础组件导出
3
+ */
4
+ export { A2UIText, type A2UITextProps } from './A2UIText';
5
+ export { A2UIImage, type A2UIImageProps } from './A2UIImage';
6
+ export { A2UIIcon, type A2UIIconProps } from './A2UIIcon';
7
+ export { A2UIButton, type A2UIButtonProps } from './A2UIButton';
8
+ export { A2UIInput, type A2UIInputProps } from './A2UIInput';
9
+ export { A2UITextField, type A2UITextFieldProps } from './A2UITextField';
10
+ export { A2UICheckBox, type A2UICheckBoxProps } from './A2UICheckBox';
11
+ export { A2UIChoicePicker, type A2UIChoicePickerProps } from './A2UIChoicePicker';
12
+ export { A2UISlider, type A2UISliderProps } from './A2UISlider';
13
+ export { A2UIRadioGroup, type A2UIRadioGroupProps } from './A2UIRadioGroup';
14
+ export { A2UICheckboxGroup, type A2UICheckboxGroupProps } from './A2UICheckboxGroup';
15
+ export { A2UIDivider, type A2UIDividerProps } from './A2UIDivider';
@@ -0,0 +1,39 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.12
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ export { A2UIText } from './A2UIText.js';
8
+ export { A2UIImage } from './A2UIImage.js';
9
+ export { A2UIIcon } from './A2UIIcon.js';
10
+ export { A2UIButton } from './A2UIButton.js';
11
+ export { A2UIInput } from './A2UIInput.js';
12
+ export { A2UITextField } from './A2UITextField.js';
13
+ export { A2UICheckBox } from './A2UICheckBox.js';
14
+ export { A2UIChoicePicker } from './A2UIChoicePicker.js';
15
+ export { A2UISlider } from './A2UISlider.js';
16
+ export { A2UIRadioGroup } from './A2UIRadioGroup.js';
17
+ export { A2UICheckboxGroup } from './A2UICheckboxGroup.js';
18
+ export { A2UIDivider } from './A2UIDivider.js';
19
+ import '@babel/runtime/helpers/defineProperty';
20
+ import 'react';
21
+ import 'classnames';
22
+ import '../../../hooks/a2ui/useDataBinding.js';
23
+ import '@babel/runtime/helpers/slicedToArray';
24
+ import '../../../hooks/a2ui/A2UIContext.js';
25
+ import '../../../core/a2ui/utils/index.js';
26
+ import '../../../core/a2ui/utils/binding.js';
27
+ import '@babel/runtime/helpers/typeof';
28
+ import '../../../core/a2ui/utils/validation.js';
29
+ import '@babel/runtime/helpers/toConsumableArray';
30
+ import 'tdesign-react';
31
+ import '../../../hooks/a2ui/useA2UIAction.js';
32
+ import '../A2UIComponentRenderer.js';
33
+ import '../A2UIErrorBoundary.js';
34
+ import '@babel/runtime/helpers/classCallCheck';
35
+ import '@babel/runtime/helpers/createClass';
36
+ import '@babel/runtime/helpers/possibleConstructorReturn';
37
+ import '@babel/runtime/helpers/getPrototypeOf';
38
+ import '@babel/runtime/helpers/inherits';
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * A2UI 默认组件注册表
3
+ * 将 A2UI 组件类型映射到 TDesign 实现
4
+ */
5
+ import type { ComponentRegistry } from '../../hooks/a2ui/A2UIContext';
6
+ /**
7
+ * 默认组件注册表
8
+ *
9
+ * 组件类型名称遵循 A2UI v0.9 协议规范
10
+ */
11
+ export declare const defaultComponentRegistry: ComponentRegistry;
12
+ /**
13
+ * 创建自定义组件注册表
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * const customRegistry = createComponentRegistry({
18
+ * ...defaultComponentRegistry,
19
+ * Button: MyCustomButton, // 覆盖默认 Button
20
+ * CustomWidget: MyWidget, // 添加自定义组件
21
+ * });
22
+ * ```
23
+ */
24
+ export declare function createComponentRegistry(components: ComponentRegistry): ComponentRegistry;
25
+ /**
26
+ * 扩展默认注册表
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * const registry = extendComponentRegistry({
31
+ * CustomWidget: MyWidget,
32
+ * });
33
+ * ```
34
+ */
35
+ export declare function extendComponentRegistry(extensions: Partial<ComponentRegistry>): ComponentRegistry;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.12
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
8
+ import { A2UIText } from './primitives/A2UIText.js';
9
+ import { A2UIImage } from './primitives/A2UIImage.js';
10
+ import { A2UIIcon } from './primitives/A2UIIcon.js';
11
+ import { A2UIButton } from './primitives/A2UIButton.js';
12
+ import { A2UIInput } from './primitives/A2UIInput.js';
13
+ import { A2UITextField } from './primitives/A2UITextField.js';
14
+ import { A2UICheckBox } from './primitives/A2UICheckBox.js';
15
+ import { A2UIChoicePicker } from './primitives/A2UIChoicePicker.js';
16
+ import { A2UISlider } from './primitives/A2UISlider.js';
17
+ import { A2UIRadioGroup } from './primitives/A2UIRadioGroup.js';
18
+ import { A2UICheckboxGroup } from './primitives/A2UICheckboxGroup.js';
19
+ import { A2UIDivider } from './primitives/A2UIDivider.js';
20
+ import { A2UICard } from './containers/A2UICard.js';
21
+ import { A2UIRow } from './containers/A2UIRow.js';
22
+ import { A2UIColumn } from './containers/A2UIColumn.js';
23
+ import { A2UIList } from './containers/A2UIList.js';
24
+ import { A2UITabs } from './containers/A2UITabs.js';
25
+ import 'react';
26
+ import 'classnames';
27
+ import '../../hooks/a2ui/useDataBinding.js';
28
+ import '@babel/runtime/helpers/slicedToArray';
29
+ import '../../hooks/a2ui/A2UIContext.js';
30
+ import '../../core/a2ui/utils/index.js';
31
+ import '../../core/a2ui/utils/binding.js';
32
+ import '@babel/runtime/helpers/typeof';
33
+ import '../../core/a2ui/utils/validation.js';
34
+ import '@babel/runtime/helpers/toConsumableArray';
35
+ import 'tdesign-react';
36
+ import '../../hooks/a2ui/useA2UIAction.js';
37
+ import './A2UIComponentRenderer.js';
38
+ import './A2UIErrorBoundary.js';
39
+ import '@babel/runtime/helpers/classCallCheck';
40
+ import '@babel/runtime/helpers/createClass';
41
+ import '@babel/runtime/helpers/possibleConstructorReturn';
42
+ import '@babel/runtime/helpers/getPrototypeOf';
43
+ import '@babel/runtime/helpers/inherits';
44
+
45
+ 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; }
46
+ 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; }
47
+ var defaultComponentRegistry = {
48
+ Text: A2UIText,
49
+ Image: A2UIImage,
50
+ Icon: A2UIIcon,
51
+ Button: A2UIButton,
52
+ TextField: A2UITextField,
53
+ CheckBox: A2UICheckBox,
54
+ ChoicePicker: A2UIChoicePicker,
55
+ Slider: A2UISlider,
56
+ Divider: A2UIDivider,
57
+ Card: A2UICard,
58
+ Row: A2UIRow,
59
+ Column: A2UIColumn,
60
+ List: A2UIList,
61
+ Tabs: A2UITabs,
62
+ Input: A2UIInput,
63
+ RadioGroup: A2UIRadioGroup,
64
+ CheckboxGroup: A2UICheckboxGroup
65
+ };
66
+ function createComponentRegistry(components) {
67
+ return _objectSpread({}, components);
68
+ }
69
+ function extendComponentRegistry(extensions) {
70
+ return _objectSpread(_objectSpread({}, defaultComponentRegistry), extensions);
71
+ }
72
+
73
+ export { createComponentRegistry, defaultComponentRegistry, extendComponentRegistry };
74
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sources":["../../../../../pro-components/chat/chat-engine/components/a2ui/registry.ts"],"sourcesContent":["/**\n * A2UI 默认组件注册表\n * 将 A2UI 组件类型映射到 TDesign 实现\n */\n\nimport type { ComponentRegistry } from '../../hooks/a2ui/A2UIContext';\n\n// Display 组件\nimport { A2UIText } from './primitives/A2UIText';\nimport { A2UIImage } from './primitives/A2UIImage';\nimport { A2UIIcon } from './primitives/A2UIIcon';\n\n// Interactive 组件\nimport { A2UIButton } from './primitives/A2UIButton';\nimport { A2UIInput } from './primitives/A2UIInput';\nimport { A2UITextField } from './primitives/A2UITextField';\nimport { A2UICheckBox } from './primitives/A2UICheckBox';\nimport { A2UIChoicePicker } from './primitives/A2UIChoicePicker';\nimport { A2UISlider } from './primitives/A2UISlider';\nimport { A2UIRadioGroup } from './primitives/A2UIRadioGroup';\nimport { A2UICheckboxGroup } from './primitives/A2UICheckboxGroup';\nimport { A2UIDivider } from './primitives/A2UIDivider';\n\n// 容器组件\nimport { A2UICard } from './containers/A2UICard';\nimport { A2UIRow } from './containers/A2UIRow';\nimport { A2UIColumn } from './containers/A2UIColumn';\nimport { A2UIList } from './containers/A2UIList';\nimport { A2UITabs } from './containers/A2UITabs';\n\n/**\n * 默认组件注册表\n * \n * 组件类型名称遵循 A2UI v0.9 协议规范\n */\nexport const defaultComponentRegistry: ComponentRegistry = {\n // ===== Display 组件 =====\n Text: A2UIText,\n Image: A2UIImage,\n Icon: A2UIIcon,\n\n // ===== Interactive 组件 =====\n Button: A2UIButton,\n TextField: A2UITextField,\n CheckBox: A2UICheckBox,\n ChoicePicker: A2UIChoicePicker,\n Slider: A2UISlider,\n Divider: A2UIDivider,\n\n // ===== Layout 组件 =====\n Card: A2UICard,\n Row: A2UIRow,\n Column: A2UIColumn,\n List: A2UIList,\n Tabs: A2UITabs,\n\n // ===== TDesign 扩展(向后兼容)=====\n Input: A2UIInput,\n RadioGroup: A2UIRadioGroup,\n CheckboxGroup: A2UICheckboxGroup,\n};\n\n/**\n * 创建自定义组件注册表\n * \n * @example\n * ```tsx\n * const customRegistry = createComponentRegistry({\n * ...defaultComponentRegistry,\n * Button: MyCustomButton, // 覆盖默认 Button\n * CustomWidget: MyWidget, // 添加自定义组件\n * });\n * ```\n */\nexport function createComponentRegistry(\n components: ComponentRegistry\n): ComponentRegistry {\n return { ...components };\n}\n\n/**\n * 扩展默认注册表\n * \n * @example\n * ```tsx\n * const registry = extendComponentRegistry({\n * CustomWidget: MyWidget,\n * });\n * ```\n */\nexport function extendComponentRegistry(\n extensions: Partial<ComponentRegistry>\n): ComponentRegistry {\n return {\n ...defaultComponentRegistry,\n ...extensions,\n };\n}\n"],"names":["defaultComponentRegistry","Text","A2UIText","Image","A2UIImage","Icon","A2UIIcon","Button","A2UIButton","TextField","A2UITextField","CheckBox","A2UICheckBox","ChoicePicker","A2UIChoicePicker","Slider","A2UISlider","Divider","A2UIDivider","Card","A2UICard","Row","A2UIRow","Column","A2UIColumn","List","A2UIList","Tabs","A2UITabs","Input","A2UIInput","RadioGroup","A2UIRadioGroup","CheckboxGroup","A2UICheckboxGroup","createComponentRegistry","components","_objectSpread","extendComponentRegistry","extensions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCO,IAAMA,wBAA8C,GAAA;AAEzDC,EAAAA,IAAM,EAAAC,QAAA;AACNC,EAAAA,KAAO,EAAAC,SAAA;AACPC,EAAAA,IAAM,EAAAC,QAAA;AAGNC,EAAAA,MAAQ,EAAAC,UAAA;AACRC,EAAAA,SAAW,EAAAC,aAAA;AACXC,EAAAA,QAAU,EAAAC,YAAA;AACVC,EAAAA,YAAc,EAAAC,gBAAA;AACdC,EAAAA,MAAQ,EAAAC,UAAA;AACRC,EAAAA,OAAS,EAAAC,WAAA;AAGTC,EAAAA,IAAM,EAAAC,QAAA;AACNC,EAAAA,GAAK,EAAAC,OAAA;AACLC,EAAAA,MAAQ,EAAAC,UAAA;AACRC,EAAAA,IAAM,EAAAC,QAAA;AACNC,EAAAA,IAAM,EAAAC,QAAA;AAGNC,EAAAA,KAAO,EAAAC,SAAA;AACPC,EAAAA,UAAY,EAAAC,cAAA;AACZC,EAAAA,aAAe,EAAAC,iBAAAA;AACjB,EAAA;AAcO,SAASC,wBACdC,UACmB,EAAA;EACZ,OAAAC,aAAA,KAAKD,UAAW,CAAA,CAAA;AACzB,CAAA;AAYO,SAASE,wBACdC,UACmB,EAAA;AACZ,EAAA,OAAAF,aAAA,CAAAA,aAAA,CACFrC,EAAAA,EAAAA,wBAAA,GACAuC,UAAA,CAAA,CAAA;AAEP;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.10
2
+ * tdesign v1.0.2-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.10
2
+ * tdesign v1.0.2-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -7,7 +7,7 @@
7
7
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
8
8
  import _createClass from '@babel/runtime/helpers/createClass';
9
9
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
10
- import React from 'react';
10
+ import React__default from 'react';
11
11
 
12
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
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; }
@@ -43,8 +43,8 @@ var ActivityRegistryManager = /*#__PURE__*/function () {
43
43
  if (!config) return null;
44
44
  var memoizedComponent = this.renderFunctionCache.get(activityType);
45
45
  if (!memoizedComponent) {
46
- memoizedComponent = /*#__PURE__*/React.memo(function (props) {
47
- return /*#__PURE__*/React.createElement(config.component, props);
46
+ memoizedComponent = /*#__PURE__*/React__default.memo(function (props) {
47
+ return /*#__PURE__*/React__default.createElement(config.component, props);
48
48
  });
49
49
  this.renderFunctionCache.set(activityType, memoizedComponent);
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sources":["../../../../../pro-components/chat/chat-engine/components/activity/registry.ts"],"sourcesContent":["import React from 'react';\nimport type { ActivityConfig, ActivityRegistry, ActivityComponentProps } from './types';\n\n/**\n * Activity 注册表管理器\n * 参考 AgentToolcallRegistryManager 的设计,但简化了复杂的状态管理\n */\nclass ActivityRegistryManager {\n private registry: ActivityRegistry = {};\n\n // 组件渲染函数缓存,避免重复创建 React 组件\n private renderFunctionCache = new Map<\n string,\n React.MemoExoticComponent<React.ComponentType<ActivityComponentProps>>\n >();\n\n /**\n * 注册一个 Activity 配置\n */\n register<TContent = any>(config: ActivityConfig<TContent>): void {\n const existingConfig = this.registry[config.activityType];\n\n // 如果组件发生变化,清除旧的缓存\n if (existingConfig && existingConfig.component !== config.component) {\n this.renderFunctionCache.delete(config.activityType);\n }\n\n this.registry[config.activityType] = config;\n\n // 触发注册事件,支持动态注册\n window.dispatchEvent(\n new CustomEvent('activity-registered', {\n detail: { activityType: config.activityType },\n }),\n );\n }\n\n /**\n * 获取指定类型的 Activity 配置\n */\n get(activityType: string): ActivityConfig | undefined {\n return this.registry[activityType];\n }\n\n /**\n * 获取或创建缓存的组件渲染函数\n */\n getRenderFunction(activityType: string): React.MemoExoticComponent<React.ComponentType<ActivityComponentProps>> | null {\n const config = this.registry[activityType];\n if (!config) return null;\n\n // 检查缓存\n let memoizedComponent = this.renderFunctionCache.get(activityType);\n\n if (!memoizedComponent) {\n // 创建 memo 化的组件\n memoizedComponent = React.memo((props: ActivityComponentProps) => \n React.createElement(config.component, props)\n );\n\n // 缓存组件\n this.renderFunctionCache.set(activityType, memoizedComponent);\n }\n\n return memoizedComponent;\n }\n\n /**\n * 获取所有已注册的 Activity 配置\n */\n getAll(): ActivityRegistry {\n return { ...this.registry };\n }\n\n /**\n * 取消注册指定的 Activity\n */\n unregister(activityType: string): void {\n delete this.registry[activityType];\n this.renderFunctionCache.delete(activityType);\n }\n\n /**\n * 清空所有注册的 Activity\n */\n clear(): void {\n this.registry = {};\n this.renderFunctionCache.clear();\n }\n\n /**\n * 检查指定类型是否已注册\n */\n has(activityType: string): boolean {\n return activityType in this.registry;\n }\n\n /**\n * 获取所有已注册的 Activity 类型\n */\n getRegisteredTypes(): string[] {\n return Object.keys(this.registry);\n }\n}\n\n// 导出单例实例\nexport const activityRegistry = new ActivityRegistryManager();"],"names":["ActivityRegistryManager","_classCallCheck","_defineProperty","Map","_createClass","key","value","register","config","existingConfig","registry","activityType","component","renderFunctionCache","window","dispatchEvent","CustomEvent","detail","get","getRenderFunction","memoizedComponent","React","memo","props","createElement","set","getAll","_objectSpread","unregister","clear","has","getRegisteredTypes","Object","keys","activityRegistry"],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sources":["../../../../../pro-components/chat/chat-engine/components/activity/registry.ts"],"sourcesContent":["import React from 'react';\nimport type { ActivityConfig, ActivityRegistry, ActivityComponentProps } from './types';\n\n/**\n * Activity 注册表管理器\n * 参考 AgentToolcallRegistryManager 的设计,但简化了复杂的状态管理\n */\nclass ActivityRegistryManager {\n private registry: ActivityRegistry = {};\n\n // 组件渲染函数缓存,避免重复创建 React 组件\n private renderFunctionCache = new Map<\n string,\n React.MemoExoticComponent<React.ComponentType<ActivityComponentProps>>\n >();\n\n /**\n * 注册一个 Activity 配置\n */\n register<TContent = any>(config: ActivityConfig<TContent>): void {\n const existingConfig = this.registry[config.activityType];\n\n // 如果组件发生变化,清除旧的缓存\n if (existingConfig && existingConfig.component !== config.component) {\n this.renderFunctionCache.delete(config.activityType);\n }\n\n this.registry[config.activityType] = config;\n\n // 触发注册事件,支持动态注册\n window.dispatchEvent(\n new CustomEvent('activity-registered', {\n detail: { activityType: config.activityType },\n }),\n );\n }\n\n /**\n * 获取指定类型的 Activity 配置\n */\n get(activityType: string): ActivityConfig | undefined {\n return this.registry[activityType];\n }\n\n /**\n * 获取或创建缓存的组件渲染函数\n */\n getRenderFunction(activityType: string): React.MemoExoticComponent<React.ComponentType<ActivityComponentProps>> | null {\n const config = this.registry[activityType];\n if (!config) return null;\n\n // 检查缓存\n let memoizedComponent = this.renderFunctionCache.get(activityType);\n\n if (!memoizedComponent) {\n // 创建 memo 化的组件\n memoizedComponent = React.memo((props: ActivityComponentProps) => \n React.createElement(config.component, props)\n );\n\n // 缓存组件\n this.renderFunctionCache.set(activityType, memoizedComponent);\n }\n\n return memoizedComponent;\n }\n\n /**\n * 获取所有已注册的 Activity 配置\n */\n getAll(): ActivityRegistry {\n return { ...this.registry };\n }\n\n /**\n * 取消注册指定的 Activity\n */\n unregister(activityType: string): void {\n delete this.registry[activityType];\n this.renderFunctionCache.delete(activityType);\n }\n\n /**\n * 清空所有注册的 Activity\n */\n clear(): void {\n this.registry = {};\n this.renderFunctionCache.clear();\n }\n\n /**\n * 检查指定类型是否已注册\n */\n has(activityType: string): boolean {\n return activityType in this.registry;\n }\n\n /**\n * 获取所有已注册的 Activity 类型\n */\n getRegisteredTypes(): string[] {\n return Object.keys(this.registry);\n }\n}\n\n// 导出单例实例\nexport const activityRegistry = new ActivityRegistryManager();"],"names":["ActivityRegistryManager","_classCallCheck","_defineProperty","Map","_createClass","key","value","register","config","existingConfig","registry","activityType","component","renderFunctionCache","window","dispatchEvent","CustomEvent","detail","get","getRenderFunction","memoizedComponent","React","memo","props","createElement","set","getAll","_objectSpread","unregister","clear","has","getRegisteredTypes","Object","keys","activityRegistry"],"mappings":";;;;;;;;;;;;;AAAkB,IAOZA,uBAAwB,gBAAA,YAAA;AAAA,EAAA,SAAAA,uBAAA,GAAA;AAAAC,IAAAA,eAAA,OAAAD,uBAAA,CAAA,CAAA;IAAAE,eAAA,CAAA,IAAA,EAAA,UAAA,EACS,EAAC,CAAA,CAAA;AAAAA,IAAAA,eAAA,CAGR,IAAA,EAAA,qBAAA,qBAAIC,GAGhC,EAAA,CAAA,CAAA;AAAA,GAAA;EAAA,OAAAC,YAAA,CAAAJ,uBAAA,EAAA,CAAA;IAAAK,GAAA,EAAA,UAAA;AAAAC,IAAAA,KAAA,EAKF,SAAAC,SAAyBC,MAAwC,EAAA;MACzD,IAAAC,cAAA,GAAiB,IAAK,CAAAC,QAAA,CAASF,MAAO,CAAAG,YAAA,CAAA,CAAA;MAG5C,IAAIF,cAAkB,IAAAA,cAAA,CAAeG,SAAc,KAAAJ,MAAA,CAAOI,SAAW,EAAA;AAC9D,QAAA,IAAA,CAAAC,mBAAA,CAAA,QAAA,CAA2B,CAAAL,MAAA,CAAOG,YAAY,CAAA,CAAA;AACrD,OAAA;MAEK,IAAA,CAAAD,QAAA,CAASF,OAAOG,YAAgB,CAAA,GAAAH,MAAA,CAAA;AAG9BM,MAAAA,MAAA,CAAAC,aAAA,CACL,IAAIC,YAAY,qBAAuB,EAAA;AACrCC,QAAAA,MAAQ,EAAA;UAAEN,YAAc,EAAAH,MAAA,CAAOG,YAAAA;AAAa,SAAA;AAC9C,OAAC,CACH,CAAA,CAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAAN,GAAA,EAAA,KAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAY,IAAIP,YAAkD,EAAA;AACpD,MAAA,OAAO,KAAKD,QAAS,CAAAC,YAAA,CAAA,CAAA;AACvB,KAAA;AAAA,GAAA,EAAA;IAAAN,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAa,kBAAkBR,YAAqG,EAAA;AAC/G,MAAA,IAAAH,MAAA,GAAS,KAAKE,QAAS,CAAAC,YAAA,CAAA,CAAA;AAC7B,MAAA,IAAI,CAACH,MAAA,EAAe,OAAA,IAAA,CAAA;MAGpB,IAAIY,iBAAoB,GAAA,IAAA,CAAKP,mBAAoB,CAAAK,GAAA,CAAIP,YAAY,CAAA,CAAA;MAEjE,IAAI,CAACS,iBAAmB,EAAA;AAEtBA,QAAAA,iBAAA,gBAAoBC,cAAM,CAAAC,IAAA,CAAK,UAACC,KAC9B,EAAA;UAAA,oBAAAF,cAAA,CAAMG,aAAc,CAAAhB,MAAA,CAAOI,WAAWW,KAAK,CAAA,CAAA;AAAA,SAC7C,CAAA,CAAA;QAGK,IAAA,CAAAV,mBAAA,CAAoBY,GAAI,CAAAd,YAAA,EAAcS,iBAAiB,CAAA,CAAA;AAC9D,OAAA;AAEO,MAAA,OAAAA,iBAAA,CAAA;AACT,KAAA;AAAA,GAAA,EAAA;IAAAf,GAAA,EAAA,QAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAoB,MAA2BA,GAAA;AAClB,MAAA,OAAAC,aAAA,CAAA,EAAA,EAAK,IAAA,CAAKjB,QAAS,CAAA,CAAA;AAC5B,KAAA;AAAA,GAAA,EAAA;IAAAL,GAAA,EAAA,YAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAsB,WAAWjB,YAA4B,EAAA;AACrC,MAAA,OAAO,KAAKD,QAAS,CAAAC,YAAA,CAAA,CAAA;AAChB,MAAA,IAAA,CAAAE,mBAAA,WAA2BF,YAAY,CAAA,CAAA;AAC9C,KAAA;AAAA,GAAA,EAAA;IAAAN,GAAA,EAAA,OAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAuB,KAAcA,GAAA;AACZ,MAAA,IAAA,CAAKnB,WAAW,EAAC,CAAA;AACjB,MAAA,IAAA,CAAKG,oBAAoBgB,KAAM,EAAA,CAAA;AACjC,KAAA;AAAA,GAAA,EAAA;IAAAxB,GAAA,EAAA,KAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAwB,IAAInB,YAA+B,EAAA;AACjC,MAAA,OAAOA,gBAAgB,IAAK,CAAAD,QAAA,CAAA;AAC9B,KAAA;AAAA,GAAA,EAAA;IAAAL,GAAA,EAAA,oBAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAyB,kBAA+BA,GAAA;AACtB,MAAA,OAAAC,MAAA,CAAOC,IAAK,CAAA,IAAA,CAAKvB,QAAQ,CAAA,CAAA;AAClC,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA,EAAA,CAAA;IAIWwB,gBAAA,GAAmB,IAAIlC,uBAAwB;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.10
2
+ * tdesign v1.0.2-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -11,7 +11,7 @@ import _createClass from '@babel/runtime/helpers/createClass';
11
11
  import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
12
12
  import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
13
13
  import _inherits from '@babel/runtime/helpers/inherits';
14
- import React, { Component, useState, useMemo, useEffect } from 'react';
14
+ import React__default, { Component, useState, useMemo, useEffect } from 'react';
15
15
  import { activityRegistry } from './registry.js';
16
16
 
17
17
  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; }
@@ -58,7 +58,7 @@ var DefaultActivityRenderer = function DefaultActivityRenderer(_ref) {
58
58
  console.warn("[ActivityRenderer] Unknown activity type: ".concat(activity.activityType), activity.content);
59
59
  return null;
60
60
  };
61
- var ActivityRenderer = /*#__PURE__*/React.memo(function (_ref2) {
61
+ var ActivityRenderer = /*#__PURE__*/React__default.memo(function (_ref2) {
62
62
  var activity = _ref2.activity;
63
63
  var _useState = useState(function () {
64
64
  return !!activityRegistry.getRenderFunction(activity.activityType);
@@ -91,13 +91,13 @@ var ActivityRenderer = /*#__PURE__*/React.memo(function (_ref2) {
91
91
  return activityRegistry.getRenderFunction(activity.activityType);
92
92
  }, [activity.activityType, isRegistered]);
93
93
  if (!MemoizedComponent) {
94
- return /* @__PURE__ */React.createElement(DefaultActivityRenderer, {
94
+ return /* @__PURE__ */React__default.createElement(DefaultActivityRenderer, {
95
95
  activity: activity
96
96
  });
97
97
  }
98
- return /* @__PURE__ */React.createElement(ActivityErrorBoundary, {
98
+ return /* @__PURE__ */React__default.createElement(ActivityErrorBoundary, {
99
99
  activityType: activity.activityType
100
- }, /* @__PURE__ */React.createElement(MemoizedComponent, _objectSpread({}, componentProps)));
100
+ }, /* @__PURE__ */React__default.createElement(MemoizedComponent, _objectSpread({}, componentProps)));
101
101
  }, function (prevProps, nextProps) {
102
102
  return prevProps.activity.activityType === nextProps.activity.activityType && prevProps.activity.messageId === nextProps.activity.messageId && JSON.stringify(prevProps.activity.content) === JSON.stringify(nextProps.activity.content);
103
103
  });
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sources":["../../../../../pro-components/chat/chat-engine/components/activity/render.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, Component, ErrorInfo } from 'react';\nimport type { ActivityComponentProps } from './types';\nimport { activityRegistry } from './registry';\nimport { type ActivityData } from 'tdesign-web-components/lib/chat-engine';\n\ninterface ActivityRendererProps {\n activity: ActivityData;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n}\n\n/**\n * Activity 错误边界组件\n * 捕获子组件渲染错误,防止整个对话列表崩溃\n * TODO: 后续支持配置化的错误 UI\n */\nclass ActivityErrorBoundary extends Component<\n { children: React.ReactNode; activityType: string },\n ErrorBoundaryState\n> {\n constructor(props: { children: React.ReactNode; activityType: string }) {\n super(props);\n this.state = { hasError: false, error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n console.error(`[ActivityRenderer] Error in activity \"${this.props.activityType}\":`, error, errorInfo);\n }\n\n render() {\n if (this.state.hasError) {\n return null;\n }\n\n return this.props.children;\n }\n}\n\n/**\n * 默认的 Activity 渲染器\n * 当没有注册对应类型的组件时使用\n * TODO: 后续支持配置化的默认 UI\n */\nconst DefaultActivityRenderer: React.FC<ActivityRendererProps> = ({ activity }) => {\n // 空白兜底,仅在控制台输出警告\n console.warn(`[ActivityRenderer] Unknown activity type: ${activity.activityType}`, activity.content);\n return null;\n};\n\n/**\n * Activity 渲染器组件\n * 根据 activityType 查找注册的组件进行渲染\n */\nexport const ActivityRenderer = React.memo<ActivityRendererProps>(\n ({ activity }) => {\n // 添加注册状态监听\n const [isRegistered, setIsRegistered] = useState(\n () => !!activityRegistry.getRenderFunction(activity.activityType),\n );\n\n // 缓存组件 props\n const componentProps = useMemo<ActivityComponentProps>(\n () => ({\n activityType: activity.activityType,\n content: activity.content,\n messageId: activity.messageId || '',\n }),\n [activity.activityType, activity.content, activity.messageId],\n );\n\n // 监听组件注册事件,支持动态注册\n useEffect(() => {\n if (!isRegistered) {\n const handleRegistered = (event: CustomEvent) => {\n if (event.detail?.activityType === activity.activityType) {\n setIsRegistered(true);\n }\n };\n\n // 添加事件监听\n window.addEventListener('activity-registered', handleRegistered as EventListener);\n\n return () => {\n window.removeEventListener('activity-registered', handleRegistered as EventListener);\n };\n }\n }, [activity.activityType, isRegistered]);\n\n // 使用 registry 的缓存渲染函数\n const MemoizedComponent = useMemo(\n () => activityRegistry.getRenderFunction(activity.activityType),\n [activity.activityType, isRegistered],\n );\n\n // 如果没有注册对应的组件,使用默认渲染器\n if (!MemoizedComponent) {\n return <DefaultActivityRenderer activity={activity} />;\n }\n\n return (\n <ActivityErrorBoundary activityType={activity.activityType}>\n <MemoizedComponent {...componentProps} />\n </ActivityErrorBoundary>\n );\n },\n (prevProps, nextProps) =>\n prevProps.activity.activityType === nextProps.activity.activityType &&\n prevProps.activity.messageId === nextProps.activity.messageId &&\n JSON.stringify(prevProps.activity.content) === JSON.stringify(nextProps.activity.content),\n);\n\nActivityRenderer.displayName = 'ActivityRenderer';"],"names":["ActivityErrorBoundary","props","_this","_classCallCheck","_callSuper","state","hasError","error","_inherits","_Component","_createClass","key","value","componentDidCatch","errorInfo","console","activityType","render","children","getDerivedStateFromError","Component","DefaultActivityRenderer","_ref","activity","warn","concat","content","ActivityRenderer","React","memo","_ref2","_useState","useState","activityRegistry","getRenderFunction","_useState2","_slicedToArray","isRegistered","setIsRegistered","componentProps","useMemo","messageId","useEffect","handleRegistered","event","_event$detail","detail","window","addEventListener","removeEventListener","MemoizedComponent","createElement","_objectSpread","prevProps","nextProps","JSON","stringify","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sources":["../../../../../pro-components/chat/chat-engine/components/activity/render.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, Component, ErrorInfo } from 'react';\nimport type { ActivityComponentProps } from './types';\nimport { activityRegistry } from './registry';\nimport { type ActivityData } from 'tdesign-web-components/lib/chat-engine';\n\ninterface ActivityRendererProps {\n activity: ActivityData;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n}\n\n/**\n * Activity 错误边界组件\n * 捕获子组件渲染错误,防止整个对话列表崩溃\n * TODO: 后续支持配置化的错误 UI\n */\nclass ActivityErrorBoundary extends Component<\n { children: React.ReactNode; activityType: string },\n ErrorBoundaryState\n> {\n constructor(props: { children: React.ReactNode; activityType: string }) {\n super(props);\n this.state = { hasError: false, error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n console.error(`[ActivityRenderer] Error in activity \"${this.props.activityType}\":`, error, errorInfo);\n }\n\n render() {\n if (this.state.hasError) {\n return null;\n }\n\n return this.props.children;\n }\n}\n\n/**\n * 默认的 Activity 渲染器\n * 当没有注册对应类型的组件时使用\n * TODO: 后续支持配置化的默认 UI\n */\nconst DefaultActivityRenderer: React.FC<ActivityRendererProps> = ({ activity }) => {\n // 空白兜底,仅在控制台输出警告\n console.warn(`[ActivityRenderer] Unknown activity type: ${activity.activityType}`, activity.content);\n return null;\n};\n\n/**\n * Activity 渲染器组件\n * 根据 activityType 查找注册的组件进行渲染\n */\nexport const ActivityRenderer = React.memo<ActivityRendererProps>(\n ({ activity }) => {\n // 添加注册状态监听\n const [isRegistered, setIsRegistered] = useState(\n () => !!activityRegistry.getRenderFunction(activity.activityType),\n );\n\n // 缓存组件 props\n const componentProps = useMemo<ActivityComponentProps>(\n () => ({\n activityType: activity.activityType,\n content: activity.content,\n messageId: activity.messageId || '',\n }),\n [activity.activityType, activity.content, activity.messageId],\n );\n\n // 监听组件注册事件,支持动态注册\n useEffect(() => {\n if (!isRegistered) {\n const handleRegistered = (event: CustomEvent) => {\n if (event.detail?.activityType === activity.activityType) {\n setIsRegistered(true);\n }\n };\n\n // 添加事件监听\n window.addEventListener('activity-registered', handleRegistered as EventListener);\n\n return () => {\n window.removeEventListener('activity-registered', handleRegistered as EventListener);\n };\n }\n }, [activity.activityType, isRegistered]);\n\n // 使用 registry 的缓存渲染函数\n const MemoizedComponent = useMemo(\n () => activityRegistry.getRenderFunction(activity.activityType),\n [activity.activityType, isRegistered],\n );\n\n // 如果没有注册对应的组件,使用默认渲染器\n if (!MemoizedComponent) {\n return <DefaultActivityRenderer activity={activity} />;\n }\n\n return (\n <ActivityErrorBoundary activityType={activity.activityType}>\n <MemoizedComponent {...componentProps} />\n </ActivityErrorBoundary>\n );\n },\n (prevProps, nextProps) =>\n prevProps.activity.activityType === nextProps.activity.activityType &&\n prevProps.activity.messageId === nextProps.activity.messageId &&\n JSON.stringify(prevProps.activity.content) === JSON.stringify(nextProps.activity.content),\n);\n\nActivityRenderer.displayName = 'ActivityRenderer';"],"names":["ActivityErrorBoundary","props","_this","_classCallCheck","_callSuper","state","hasError","error","_inherits","_Component","_createClass","key","value","componentDidCatch","errorInfo","console","activityType","render","children","getDerivedStateFromError","Component","DefaultActivityRenderer","_ref","activity","warn","concat","content","ActivityRenderer","React","memo","_ref2","_useState","useState","activityRegistry","getRenderFunction","_useState2","_slicedToArray","isRegistered","setIsRegistered","componentProps","useMemo","messageId","useEffect","handleRegistered","event","_event$detail","detail","window","addEventListener","removeEventListener","MemoizedComponent","createElement","_objectSpread","prevProps","nextProps","JSON","stringify","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEiC,IAiB3BA;EAIJ,SAAAA,qBAAAA,CAAYC,KAA4D,EAAA;AAAA,IAAA,IAAAC,KAAA,CAAA;AAAAC,IAAAA,eAAA,OAAAH,qBAAA,CAAA,CAAA;AACtEE,IAAAA,KAAA,GAAAE,UAAA,CAAAJ,IAAAA,EAAAA,qBAAA,GAAMC,KAAK,CAAA,CAAA,CAAA;IACXC,KAAA,CAAKG,KAAQ,GAAA;AAAEC,MAAAA,QAAU,EAAA,KAAA;AAAOC,MAAAA,OAAO,IAAA;KAAK,CAAA;AAAA,IAAA,OAAAL,KAAA,CAAA;AAC9C,GAAA;EAAAM,SAAA,CAAAR,qBAAA,EAAAS,UAAA,CAAA,CAAA;EAAA,OAAAC,YAAA,CAAAV,qBAAA,EAAA,CAAA;IAAAW,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EAMA,SAAAC,iBAAAA,CAAkBN,OAAcO,SAA4B,EAAA;AAC1DC,MAAAA,OAAA,CAAQR,uDAA+C,IAAA,CAAKN,KAAM,CAAAe,YAAA,EAAA,KAAA,CAAA,EAAkBT,OAAOO,SAAS,CAAA,CAAA;AACtG,KAAA;AAAA,GAAA,EAAA;IAAAH,GAAA,EAAA,QAAA;AAAAC,IAAAA,KAAA,EAEA,SAAAK,MAASA,GAAA;AACH,MAAA,IAAA,IAAA,CAAKZ,MAAMC,QAAU,EAAA;AAChB,QAAA,OAAA,IAAA,CAAA;AACT,OAAA;AAEA,MAAA,OAAO,KAAKL,KAAM,CAAAiB,QAAA,CAAA;AACpB,KAAA;AAAA,GAAA,CAAA,EAAA,CAAA;IAAAP,GAAA,EAAA,0BAAA;AAAAC,IAAAA,KAAA,EAdA,SAAOO,yBAAyBZ,KAAkC,EAAA;MACzD,OAAA;AAAED,QAAAA,QAAU,EAAA,IAAA;AAAMC,QAAAA,KAAM,EAANA,KAAAA;OAAM,CAAA;AACjC,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAXkCa,SAGlC,CAAA,CAAA;AA4BF,IAAMC,uBAA2D,GAAA,SAA3DA,uBAA2DA,CAAAC,IAAA,EAAkB;AAAA,EAAA,IAAfC,QAAA,GAAAD,IAAA,CAAAC,QAAA,CAAA;AAElER,EAAAA,OAAA,CAAQS,IAAK,CAAAC,4CAAAA,CAAAA,MAAA,CAA6CF,QAAS,CAAAP,YAAA,CAAgBO,EAAAA,SAASG,OAAO,CAAA,CAAA;AAC5F,EAAA,OAAA,IAAA,CAAA;AACT,CAAA,CAAA;AAMO,IAAMC,gCAAmBC,cAAM,CAAAC,IAAA,CACpC,UAAAC,KAAA,EAAkB;AAAA,EAAA,IAAfP,QAAA,GAAAO,KAAA,CAAAP,QAAA,CAAA;EAEK,IAAAQ,SAAA,GAAkCC,QAAA,CACtC,YAAA;MAAA,OAAM,CAAC,CAACC,gBAAiB,CAAAC,iBAAA,CAAkBX,SAASP,YAAY,CAAA,CAAA;AAAA,KAClE,CAAA;IAAAmB,UAAA,GAAAC,cAAA,CAAAL,SAAA,EAAA,CAAA,CAAA;AAFOM,IAAAA,YAAc,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,eAAe,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;EAKpC,IAAMI,cAAiB,GAAAC,OAAA,CACrB,YAAA;IAAA,OAAO;MACLxB,cAAcO,QAAS,CAAAP,YAAA;MACvBU,SAASH,QAAS,CAAAG,OAAA;AAClBe,MAAAA,SAAA,EAAWlB,SAASkB,SAAa,IAAA,EAAA;KACnC,CAAA;AAAA,GAAA,EACA,CAAClB,QAAS,CAAAP,YAAA,EAAcO,QAAS,CAAAG,OAAA,EAASH,SAASkB,SAAS,CAC9D,CAAA,CAAA;AAGAC,EAAAA,SAAA,CAAU,YAAM;IACd,IAAI,CAACL,YAAc,EAAA;AACX,MAAA,IAAAM,gBAAA,GAAmB,SAAnBA,gBAAAA,CAAoBC,KAAuB,EAAA;AAAA,QAAA,IAAAC,aAAA,CAAA;AAC/C,QAAA,IAAI,EAAAA,aAAA,GAAAD,KAAM,CAAAE,MAAA,MAAAD,IAAAA,IAAAA,aAAA,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAc7B,YAAiB,MAAAO,QAAA,CAASP,YAAc,EAAA;UACxDsB,eAAA,CAAgB,IAAI,CAAA,CAAA;AACtB,SAAA;OACF,CAAA;AAGOS,MAAAA,MAAA,CAAAC,gBAAA,CAAiB,uBAAuBL,gBAAiC,CAAA,CAAA;AAEhF,MAAA,OAAO,YAAM;AACJI,QAAAA,MAAA,CAAAE,mBAAA,CAAoB,uBAAuBN,gBAAiC,CAAA,CAAA;OACrF,CAAA;AACF,KAAA;GACC,EAAA,CAACpB,QAAS,CAAAP,YAAA,EAAcqB,YAAY,CAAC,CAAA,CAAA;EAGxC,IAAMa,iBAAoB,GAAAV,OAAA,CACxB,YAAA;AAAA,IAAA,OAAMP,gBAAA,CAAiBC,iBAAkB,CAAAX,QAAA,CAASP,YAAY,CAAA,CAAA;AAAA,GAAA,EAC9D,CAACO,QAAS,CAAAP,YAAA,EAAcqB,YAAY,CACtC,CAAA,CAAA;EAGA,IAAI,CAACa,iBAAmB,EAAA;AACtB,IAAA,sBAAQtB,cAAA,CAAAuB,aAAA,CAAA9B,uBAAA,EAAA;AAAwBE,MAAAA,QAAA,EAAAA,QAAAA;AAAoB,KAAA,CAAA,CAAA;AACtD,GAAA;AAEA,EAAA,sBACGK,cAAA,CAAAuB,aAAA,CAAAnD,qBAAA,EAAA;IAAsBgB,cAAcO,QAAS,CAAAP,YAAAA;AAAA,GAAA,iBAC3CY,cAAA,CAAAuB,aAAA,CAAAD,iBAAA,EAAAE,aAAA,CAAA,EAAA,EAAsBb,cAAA,CAAgB,CACzC,CAAA,CAAA;AAEJ,CAAA,EACA,UAACc,SAAW,EAAAC,SAAA,EAAA;EAAA,OACVD,SAAU,CAAA9B,QAAA,CAASP,iBAAiBsC,SAAU,CAAA/B,QAAA,CAASP,YACvD,IAAAqC,SAAA,CAAU9B,QAAS,CAAAkB,SAAA,KAAca,UAAU/B,QAAS,CAAAkB,SAAA,IACpDc,IAAK,CAAAC,SAAA,CAAUH,SAAU,CAAA9B,QAAA,CAASG,OAAO,CAAA,KAAM6B,IAAK,CAAAC,SAAA,CAAUF,SAAU,CAAA/B,QAAA,CAASG,OAAO,CAAA,CAAA;AAAA,CAC5F,EAAA;AAEAC,gBAAA,CAAiB8B,WAAc,GAAA,kBAAA;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.10
2
+ * tdesign v1.0.2-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.10
2
+ * tdesign v1.0.2-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -37,6 +37,9 @@ import '../core/adapters/agui/state-manager.js';
37
37
  import '@babel/runtime/helpers/typeof';
38
38
  import '../core/utils/index.js';
39
39
  import '../core/adapters/agui/utils.js';
40
+ import '../core/event-bus/index.js';
41
+ import '../core/event-bus/ChatEventBus.js';
42
+ import '../core/event-bus/types.js';
40
43
  import '../core/store/message.js';
41
44
  import '@babel/runtime/helpers/get';
42
45
  import '../core/store/reactiveState.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,10 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.10
2
+ * tdesign v1.0.2-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
6
6
 
7
- import React from 'react';
7
+ import React__default from 'react';
8
8
  import { useAgentState, AgentStateContext } from '../../hooks/useAgentState.js';
9
9
  import '@babel/runtime/helpers/defineProperty';
10
10
  import '@babel/runtime/helpers/slicedToArray';
@@ -28,6 +28,9 @@ import '../../core/adapters/agui/state-manager.js';
28
28
  import '@babel/runtime/helpers/typeof';
29
29
  import '../../core/utils/index.js';
30
30
  import '../../core/adapters/agui/utils.js';
31
+ import '../../core/event-bus/index.js';
32
+ import '../../core/event-bus/ChatEventBus.js';
33
+ import '../../core/event-bus/types.js';
31
34
  import '../../core/store/message.js';
32
35
  import '@babel/runtime/helpers/get';
33
36
  import '../../core/store/reactiveState.js';
@@ -52,7 +55,7 @@ var AgentStateProvider = function AgentStateProvider(_ref) {
52
55
  initialState: initialState,
53
56
  subscribeKey: subscribeKey
54
57
  });
55
- return /* @__PURE__ */React.createElement(AgentStateContext.Provider, {
58
+ return /* @__PURE__ */React__default.createElement(AgentStateContext.Provider, {
56
59
  value: agentStateResult
57
60
  }, children);
58
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"agent-state.js","sources":["../../../../../pro-components/chat/chat-engine/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;;;;"}
1
+ {"version":3,"file":"agent-state.js","sources":["../../../../../pro-components/chat/chat-engine/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,cAAA,CAAAC,aAAA,CAACC,kBAAkBC,QAAlB,EAAA;AAA2BC,IAAAA,KAAO,EAAAN,gBAAAA;GAAA,EAChCJ,QACH,CAAA,CAAA;AAEJ;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.10
2
+ * tdesign v1.0.2-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -31,6 +31,9 @@ import '../../core/adapters/agui/state-manager.js';
31
31
  import '@babel/runtime/helpers/typeof';
32
32
  import '../../core/utils/index.js';
33
33
  import '../../core/adapters/agui/utils.js';
34
+ import '../../core/event-bus/index.js';
35
+ import '../../core/event-bus/ChatEventBus.js';
36
+ import '../../core/event-bus/types.js';
34
37
  import '../../core/store/message.js';
35
38
  import '@babel/runtime/helpers/get';
36
39
  import '../../core/store/reactiveState.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.10
2
+ * tdesign v1.0.2-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -7,7 +7,7 @@
7
7
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
8
8
  import _createClass from '@babel/runtime/helpers/createClass';
9
9
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
10
- import React from 'react';
10
+ import React__default from 'react';
11
11
 
12
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
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; }
@@ -43,8 +43,8 @@ var AgentToolcallRegistryManager = /*#__PURE__*/function () {
43
43
  if (!config) return null;
44
44
  var memoizedComponent = this.renderFunctionCache.get(name);
45
45
  if (!memoizedComponent) {
46
- memoizedComponent = /*#__PURE__*/React.memo(function (props) {
47
- return /*#__PURE__*/React.createElement(config.component, props);
46
+ memoizedComponent = /*#__PURE__*/React__default.memo(function (props) {
47
+ return /*#__PURE__*/React__default.createElement(config.component, props);
48
48
  });
49
49
  this.renderFunctionCache.set(name, memoizedComponent);
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sources":["../../../../../pro-components/chat/chat-engine/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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"}
1
+ {"version":3,"file":"registry.js","sources":["../../../../../pro-components/chat/chat-engine/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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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.10
2
+ * tdesign v1.0.2-alpha.12
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -13,7 +13,7 @@ import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstruct
13
13
  import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
14
14
  import _inherits from '@babel/runtime/helpers/inherits';
15
15
  import _regeneratorRuntime from '@babel/runtime/regenerator';
16
- import React, { Component, useState, useMemo, useCallback, useEffect } from 'react';
16
+ import React__default, { Component, useState, useMemo, useCallback, useEffect } from 'react';
17
17
  import { isNonInteractiveConfig } from './types.js';
18
18
  import { agentToolcallRegistry } from './registry.js';
19
19
  import { useAgentStateDataByKey, AgentStateContext } from '../../hooks/useAgentState.js';
@@ -30,6 +30,9 @@ import '../../core/adapters/agui/utils.js';
30
30
  import 'zod';
31
31
  import '../../core/adapters/agui/types.js';
32
32
  import '@babel/runtime/helpers/wrapNativeSuper';
33
+ import '../../core/event-bus/index.js';
34
+ import '../../core/event-bus/ChatEventBus.js';
35
+ import '../../core/event-bus/types.js';
33
36
  import '../../core/store/message.js';
34
37
  import '@babel/runtime/helpers/get';
35
38
  import '../../core/store/reactiveState.js';
@@ -84,7 +87,7 @@ var ToolCallErrorBoundary = /*#__PURE__*/function (_Component) {
84
87
  }
85
88
  }]);
86
89
  }(Component);
87
- var ToolCallRenderer = /*#__PURE__*/React.memo(function (_ref) {
90
+ var ToolCallRenderer = /*#__PURE__*/React__default.memo(function (_ref) {
88
91
  var toolCall = _ref.toolCall,
89
92
  onRespond = _ref.onRespond;
90
93
  var _useState = useState({
@@ -239,26 +242,26 @@ var ToolCallRenderer = /*#__PURE__*/React.memo(function (_ref) {
239
242
  if (!MemoizedComponent) {
240
243
  return null;
241
244
  }
242
- return /* @__PURE__ */React.createElement(ToolCallErrorBoundary, {
245
+ return /* @__PURE__ */React__default.createElement(ToolCallErrorBoundary, {
243
246
  toolCallName: toolCall.toolCallName
244
- }, /* @__PURE__ */React.createElement(MemoizedComponent, _objectSpread({}, componentProps)));
247
+ }, /* @__PURE__ */React__default.createElement(MemoizedComponent, _objectSpread({}, componentProps)));
245
248
  }, function (prevProps, nextProps) {
246
249
  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.toolCall.eventType === nextProps.toolCall.eventType && prevProps.onRespond === nextProps.onRespond;
247
250
  });
248
251
  var withAgentStateToolcall1 = function withAgentStateToolcall1(Component2) {
249
252
  var WrappedComponent = function WrappedComponent(props) {
250
- return /* @__PURE__ */React.createElement(AgentStateContext.Consumer, null, function (context) {
253
+ return /* @__PURE__ */React__default.createElement(AgentStateContext.Consumer, null, function (context) {
251
254
  if (!context) {
252
255
  console.warn("AgentStateContext not found, component will render without state");
253
- return /* @__PURE__ */React.createElement(Component2, _objectSpread({}, props));
256
+ return /* @__PURE__ */React__default.createElement(Component2, _objectSpread({}, props));
254
257
  }
255
- return /* @__PURE__ */React.createElement(Component2, _objectSpread(_objectSpread({}, props), {}, {
258
+ return /* @__PURE__ */React__default.createElement(Component2, _objectSpread(_objectSpread({}, props), {}, {
256
259
  agentState: context.stateMap
257
260
  }));
258
261
  });
259
262
  };
260
263
  WrappedComponent.displayName = "withAgentState(".concat(Component2.displayName || Component2.name || "Component", ")");
261
- return /*#__PURE__*/React.memo(WrappedComponent);
264
+ return /*#__PURE__*/React__default.memo(WrappedComponent);
262
265
  };
263
266
  var withAgentStateToolcall = function withAgentStateToolcall(Component2, subscribeKeyExtractor) {
264
267
  var WrappedComponent = function WrappedComponent(props) {
@@ -266,12 +269,12 @@ var withAgentStateToolcall = function withAgentStateToolcall(Component2, subscri
266
269
  return subscribeKeyExtractor ? subscribeKeyExtractor(props) : void 0;
267
270
  }, [props]);
268
271
  var agentState = useAgentStateDataByKey(targetStateKey);
269
- return /* @__PURE__ */React.createElement(Component2, _objectSpread(_objectSpread({}, props), {}, {
272
+ return /* @__PURE__ */React__default.createElement(Component2, _objectSpread(_objectSpread({}, props), {}, {
270
273
  agentState: agentState
271
274
  }));
272
275
  };
273
276
  WrappedComponent.displayName = "withAgentState(".concat(Component2.displayName || Component2.name || "Component", ")");
274
- return /*#__PURE__*/React.memo(WrappedComponent);
277
+ return /*#__PURE__*/React__default.memo(WrappedComponent);
275
278
  };
276
279
 
277
280
  export { ToolCallRenderer, withAgentStateToolcall, withAgentStateToolcall1 };