@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,104 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.12
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import { z } from 'zod';
8
+
9
+ var PathBindingSchema = z.object({
10
+ path: z.string()
11
+ });
12
+ var ExprBindingSchema = z.object({
13
+ expr: z.string(),
14
+ vars: z.record(z.union([PathBindingSchema, z.any()])).optional(),
15
+ format: z.string().optional()
16
+ });
17
+ var stringOrPathSchema = z.union([z.string(), PathBindingSchema]);
18
+ var numberOrPathSchema = z.union([z.number(), PathBindingSchema]);
19
+ var booleanOrPathSchema = z.union([z["boolean"](), PathBindingSchema]);
20
+ var stringArrayOrPathSchema = z.union([z.array(z.string()), PathBindingSchema]);
21
+ var A2UIActionSchema = z.object({
22
+ name: z.string().optional(),
23
+ context: z.record(z.unknown()).optional(),
24
+ type: z.string().optional(),
25
+ payload: z.unknown().optional()
26
+ }).refine(function (data) {
27
+ return data.name || data.type;
28
+ }, {
29
+ message: "Action must have either name or type"
30
+ });
31
+ var componentCommonSchema = z.object({
32
+ id: z.string(),
33
+ component: z.string()
34
+ });
35
+ var childrenPropertySchema = z.union([z.array(z.string()), z.object({
36
+ componentId: z.string(),
37
+ path: z.string()
38
+ })]);
39
+ var A2UIComponentType = {
40
+ Text: "Text",
41
+ Image: "Image",
42
+ Icon: "Icon",
43
+ Row: "Row",
44
+ Column: "Column",
45
+ List: "List",
46
+ Card: "Card",
47
+ Tabs: "Tabs",
48
+ Divider: "Divider",
49
+ Button: "Button",
50
+ CheckBox: "CheckBox",
51
+ TextField: "TextField",
52
+ DateTimeInput: "DateTimeInput",
53
+ ChoicePicker: "ChoicePicker",
54
+ Slider: "Slider",
55
+ Input: "Input",
56
+ RadioGroup: "RadioGroup",
57
+ CheckboxGroup: "CheckboxGroup"
58
+ };
59
+ var A2UIComponentBaseSchema = z.object({
60
+ id: z.string(),
61
+ component: z.string()
62
+ }).passthrough();
63
+ var createSurfaceMessageSchema = z.object({
64
+ createSurface: z.object({
65
+ surfaceId: z.string(),
66
+ catalogId: z.string()
67
+ })
68
+ });
69
+ var updateComponentsMessageSchema = z.object({
70
+ updateComponents: z.object({
71
+ surfaceId: z.string(),
72
+ components: z.array(A2UIComponentBaseSchema).min(1)
73
+ })
74
+ });
75
+ var updateDataModelMessageSchema = z.object({
76
+ updateDataModel: z.object({
77
+ surfaceId: z.string(),
78
+ path: z.string().optional(),
79
+ op: z["enum"](["add", "replace", "remove"]).optional(),
80
+ value: z.any().optional()
81
+ })
82
+ });
83
+ var deleteSurfaceMessageSchema = z.object({
84
+ deleteSurface: z.object({
85
+ surfaceId: z.string()
86
+ })
87
+ });
88
+ var serverMessageSchema = z.union([createSurfaceMessageSchema, updateComponentsMessageSchema, updateDataModelMessageSchema, deleteSurfaceMessageSchema]);
89
+ var A2UISurfaceSchema = z.object({
90
+ id: z.string(),
91
+ catalogId: z.string().optional(),
92
+ state: z["enum"](["active", "closed", "pending"]),
93
+ root: z.any().nullable(),
94
+ data: z.record(z.unknown()).optional(),
95
+ skeletonHint: z.object({
96
+ layout: z["enum"](["form", "card", "list", "simple", "wizard"]).optional(),
97
+ rowCount: z.number().optional(),
98
+ animation: z["enum"](["gradient", "flashed", "none"]).optional()
99
+ }).optional(),
100
+ updatedAt: z.number().optional()
101
+ });
102
+
103
+ export { A2UIActionSchema, A2UIComponentBaseSchema, A2UIComponentType, A2UISurfaceSchema, ExprBindingSchema, PathBindingSchema, booleanOrPathSchema, childrenPropertySchema, componentCommonSchema, createSurfaceMessageSchema, deleteSurfaceMessageSchema, numberOrPathSchema, serverMessageSchema, stringArrayOrPathSchema, stringOrPathSchema, updateComponentsMessageSchema, updateDataModelMessageSchema };
104
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../../../../pro-components/chat/chat-engine/core/a2ui/types/types.ts"],"sourcesContent":["/**\n * A2UI v0.9 协议类型定义\n * 参考 A2UI Specification 0.9 和 @a2ui/core 实现\n * \n * 核心层:框架无关,可跨 React/Vue 复用\n */\n\nimport { z } from 'zod';\n\n// ============= 基础类型 =============\n\n/**\n * 数据绑定路径 - 支持从数据模型读取值\n * @example { path: \"/user/name\" }\n */\nexport const PathBindingSchema = z.object({\n path: z.string(),\n});\nexport type PathBinding = z.infer<typeof PathBindingSchema>;\n\n/**\n * 表达式绑定 - 支持简单计算表达式\n * @example { expr: \"basePrice + addonTotal\", vars: { basePrice: { path: \"/config/basePrice\" } } }\n */\nexport const ExprBindingSchema = z.object({\n expr: z.string(),\n vars: z.record(z.union([PathBindingSchema, z.any()])).optional(),\n format: z.string().optional(),\n});\nexport type ExprBinding = z.infer<typeof ExprBindingSchema>;\n\n/**\n * 可绑定值 - 字面值、路径绑定或表达式绑定\n */\nexport type Bindable<T> = T | PathBinding | ExprBinding;\n\n// ============= 路径绑定辅助 Schema =============\n\nexport const stringOrPathSchema = z.union([z.string(), PathBindingSchema]);\nexport const numberOrPathSchema = z.union([z.number(), PathBindingSchema]);\nexport const booleanOrPathSchema = z.union([z.boolean(), PathBindingSchema]);\nexport const stringArrayOrPathSchema = z.union([z.array(z.string()), PathBindingSchema]);\n\n// ============= Action 类型 =============\n\n/**\n * A2UI Action - 服务端定义的用户交互\n * 支持两种格式:\n * 1. A2UI v0.9 规范格式:{ name: string, context?: Record<string, unknown> }\n * 2. 简化格式(向后兼容):{ type: string, payload?: unknown }\n */\nexport const A2UIActionSchema = z.object({\n // A2UI v0.9 标准字段\n name: z.string().optional(),\n context: z.record(z.unknown()).optional(),\n // 向后兼容字段\n type: z.string().optional(),\n payload: z.unknown().optional(),\n}).refine(\n (data) => data.name || data.type,\n { message: 'Action must have either name or type' }\n);\n\nexport interface A2UIAction {\n /** A2UI v0.9 标准字段 */\n name?: string;\n context?: Record<string, unknown>;\n /** 向后兼容字段 */\n type?: string;\n payload?: unknown;\n}\n\n/**\n * 用户行为消息 - 发送给服务端\n */\nexport interface UserActionMessage {\n userAction: {\n name: string;\n surfaceId: string;\n sourceComponentId: string;\n timestamp: string;\n context: Record<string, unknown>;\n };\n}\n\n/**\n * Action 处理上下文\n */\nexport interface ActionContext {\n surfaceId: string;\n componentId?: string;\n updateData: (path: string, value: unknown) => void;\n getData: (path?: string) => unknown;\n}\n\n/**\n * Action 处理回调\n */\nexport type ActionHandler = (\n action: A2UIAction,\n context?: ActionContext\n) => void | Promise<void>;\n\n// ============= 组件类型定义 (A2UI v0.9) =============\n\n/**\n * 组件通用属性\n */\nexport const componentCommonSchema = z.object({\n id: z.string(),\n component: z.string(),\n});\n\n/**\n * children 属性定义 (A2UI v0.9 规范)\n * 支持两种模式:\n * 1. 直接引用: [\"comp1\", \"comp2\"]\n * 2. Template 模式: { componentId: \"comp1\", path: \"/items\" }\n */\nexport const childrenPropertySchema = z.union([\n z.array(z.string()),\n z.object({\n componentId: z.string(),\n path: z.string(),\n }),\n]);\nexport type ChildrenProperty = z.infer<typeof childrenPropertySchema>;\n\n/**\n * A2UI 组件基础结构\n */\nexport interface A2UIComponentBase {\n id: string;\n component: string;\n [key: string]: unknown;\n}\n\n// ============= Display Components =============\n\n/**\n * Text 组件\n */\nexport interface A2UITextComponent extends A2UIComponentBase {\n component: 'Text';\n text: Bindable<string>;\n usageHint?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'caption' | 'body';\n}\n\n/**\n * Image 组件\n */\nexport interface A2UIImageComponent extends A2UIComponentBase {\n component: 'Image';\n url: Bindable<string>;\n fit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';\n usageHint?: 'icon' | 'avatar' | 'smallFeature' | 'mediumFeature' | 'largeFeature' | 'header';\n}\n\n/**\n * Icon 组件\n */\nexport interface A2UIIconComponent extends A2UIComponentBase {\n component: 'Icon';\n name: string | PathBinding;\n}\n\n// ============= Layout Components =============\n\n/**\n * Row 布局组件\n */\nexport interface A2UIRowComponent extends A2UIComponentBase {\n component: 'Row';\n children?: ChildrenProperty;\n distribution?: 'center' | 'end' | 'spaceAround' | 'spaceBetween' | 'spaceEvenly' | 'start' | 'stretch';\n alignment?: 'start' | 'center' | 'end' | 'stretch';\n}\n\n/**\n * Column 布局组件\n */\nexport interface A2UIColumnComponent extends A2UIComponentBase {\n component: 'Column';\n children?: ChildrenProperty;\n distribution?: 'start' | 'center' | 'end' | 'spaceBetween' | 'spaceAround' | 'spaceEvenly' | 'stretch';\n alignment?: 'center' | 'end' | 'start' | 'stretch';\n}\n\n/**\n * List 组件\n */\nexport interface A2UIListComponent extends A2UIComponentBase {\n component: 'List';\n children?: ChildrenProperty;\n direction?: 'vertical' | 'horizontal';\n alignment?: 'start' | 'center' | 'end' | 'stretch';\n}\n\n/**\n * Card 组件 (A2UI v0.9 规范: child 是单个组件 ID)\n */\nexport interface A2UICardComponent extends A2UIComponentBase {\n component: 'Card';\n child: string;\n // TDesign 扩展属性\n title?: Bindable<string>;\n bordered?: boolean;\n shadow?: boolean;\n}\n\n/**\n * Tabs 组件\n */\nexport interface A2UITabItem {\n title: Bindable<string>;\n child: string;\n}\n\nexport interface A2UITabsComponent extends A2UIComponentBase {\n component: 'Tabs';\n tabItems: A2UITabItem[];\n}\n\n/**\n * Divider 组件\n */\nexport interface A2UIDividerComponent extends A2UIComponentBase {\n component: 'Divider';\n axis?: 'horizontal' | 'vertical';\n}\n\n// ============= Interactive Components =============\n\n/**\n * Button 组件 (A2UI v0.9: child 是内容组件 ID)\n */\nexport interface A2UIButtonComponent extends A2UIComponentBase {\n component: 'Button';\n child: string;\n primary?: boolean;\n action?: A2UIAction;\n disabled?: Bindable<boolean>;\n loading?: Bindable<boolean>;\n // TDesign 扩展属性\n theme?: 'default' | 'primary' | 'danger' | 'warning' | 'success';\n variant?: 'base' | 'outline' | 'dashed' | 'text';\n size?: 'small' | 'medium' | 'large';\n}\n\n/**\n * CheckBox 组件\n */\nexport interface A2UICheckBoxComponent extends A2UIComponentBase {\n component: 'CheckBox';\n label: Bindable<string>;\n value: Bindable<boolean>;\n}\n\n/**\n * TextField 组件 (A2UI v0.9 规范)\n */\nexport interface A2UITextFieldComponent extends A2UIComponentBase {\n component: 'TextField';\n label: Bindable<string>;\n text?: Bindable<string>;\n usageHint?: 'longText' | 'number' | 'shortText' | 'obscured';\n validationRegexp?: string;\n placeholder?: string;\n disabled?: Bindable<boolean>;\n}\n\n/**\n * DateTimeInput 组件\n */\nexport interface A2UIDateTimeInputComponent extends A2UIComponentBase {\n component: 'DateTimeInput';\n value: Bindable<string>;\n enableDate?: boolean;\n enableTime?: boolean;\n outputFormat?: string;\n label?: Bindable<string>;\n}\n\n/**\n * ChoicePicker 选项\n */\nexport interface A2UIChoiceOption {\n label: Bindable<string>;\n value: string;\n}\n\n/**\n * ChoicePicker 组件 (单选/多选)\n */\nexport interface A2UIChoicePickerComponent extends A2UIComponentBase {\n component: 'ChoicePicker';\n label: Bindable<string>;\n usageHint: 'multipleSelection' | 'mutuallyExclusive';\n options: A2UIChoiceOption[];\n value: Bindable<string[]>;\n}\n\n/**\n * Slider 组件\n */\nexport interface A2UISliderComponent extends A2UIComponentBase {\n component: 'Slider';\n label?: Bindable<string>;\n min?: number;\n max?: number;\n value: Bindable<number>;\n}\n\n// ============= 兼容模式组件 (TDesign 扩展) =============\n\n/**\n * Input 组件 (TDesign 扩展,简化版 TextField)\n */\nexport interface A2UIInputComponent extends A2UIComponentBase {\n component: 'Input';\n value?: Bindable<string>;\n placeholder?: string;\n disabled?: Bindable<boolean>;\n label?: string;\n type?: 'text' | 'password' | 'number';\n clearable?: boolean;\n status?: 'default' | 'success' | 'warning' | 'error';\n tips?: string;\n size?: 'small' | 'medium' | 'large';\n maxlength?: number;\n}\n\n/**\n * RadioGroup 组件 (TDesign 扩展)\n */\nexport interface A2UIRadioOption {\n label: Bindable<string>;\n value: string | number | boolean;\n disabled?: boolean;\n}\n\nexport interface A2UIRadioGroupComponent extends A2UIComponentBase {\n component: 'RadioGroup';\n value?: Bindable<string | number | boolean>;\n options: A2UIRadioOption[];\n disabled?: Bindable<boolean>;\n theme?: 'radio' | 'button';\n variant?: 'outline' | 'primary-filled' | 'default-filled';\n size?: 'small' | 'medium' | 'large';\n allowUncheck?: boolean;\n}\n\n/**\n * CheckboxGroup 组件 (TDesign 扩展)\n */\nexport interface A2UICheckboxGroupComponent extends A2UIComponentBase {\n component: 'CheckboxGroup';\n value?: Bindable<(string | number)[]>;\n options: A2UIRadioOption[];\n disabled?: Bindable<boolean>;\n}\n\n// ============= 所有组件联合类型 =============\n\nexport type A2UIComponent =\n // Display\n | A2UITextComponent\n | A2UIImageComponent\n | A2UIIconComponent\n // Layout\n | A2UIRowComponent\n | A2UIColumnComponent\n | A2UIListComponent\n | A2UICardComponent\n | A2UITabsComponent\n | A2UIDividerComponent\n // Interactive\n | A2UIButtonComponent\n | A2UICheckBoxComponent\n | A2UITextFieldComponent\n | A2UIDateTimeInputComponent\n | A2UIChoicePickerComponent\n | A2UISliderComponent\n // TDesign 扩展\n | A2UIInputComponent\n | A2UIRadioGroupComponent\n | A2UICheckboxGroupComponent;\n\n/**\n * 组件类型枚举\n */\nexport const A2UIComponentType = {\n // Display\n Text: 'Text',\n Image: 'Image',\n Icon: 'Icon',\n // Layout\n Row: 'Row',\n Column: 'Column',\n List: 'List',\n Card: 'Card',\n Tabs: 'Tabs',\n Divider: 'Divider',\n // Interactive\n Button: 'Button',\n CheckBox: 'CheckBox',\n TextField: 'TextField',\n DateTimeInput: 'DateTimeInput',\n ChoicePicker: 'ChoicePicker',\n Slider: 'Slider',\n // TDesign 扩展\n Input: 'Input',\n RadioGroup: 'RadioGroup',\n CheckboxGroup: 'CheckboxGroup',\n} as const;\n\n// ============= A2UI v0.9 消息类型 =============\n\n/**\n * createSurface 消息\n */\nexport interface CreateSurfaceMessage {\n createSurface: {\n surfaceId: string;\n catalogId: string;\n };\n}\n\n/**\n * updateComponents 消息\n */\nexport interface UpdateComponentsMessage {\n updateComponents: {\n surfaceId: string;\n components: A2UIComponentBase[];\n };\n}\n\n/**\n * updateDataModel 消息\n */\nexport interface UpdateDataModelMessage {\n updateDataModel: {\n surfaceId: string;\n path?: string;\n op?: 'add' | 'replace' | 'remove';\n value?: unknown;\n };\n}\n\n/**\n * deleteSurface 消息\n */\nexport interface DeleteSurfaceMessage {\n deleteSurface: {\n surfaceId: string;\n };\n}\n\n/**\n * 服务端消息联合类型\n */\nexport type A2UIServerMessage =\n | CreateSurfaceMessage\n | UpdateComponentsMessage\n | UpdateDataModelMessage\n | DeleteSurfaceMessage;\n\n// ============= Surface 类型 =============\n\n/**\n * Surface 状态\n */\nexport type SurfaceState = 'active' | 'closed' | 'pending';\n\n/**\n * Skeleton 布局提示\n */\nexport type SkeletonLayoutHint = 'form' | 'card' | 'list' | 'simple' | 'wizard';\n\n/**\n * Skeleton 配置\n */\nexport interface SkeletonHint {\n layout?: SkeletonLayoutHint;\n rowCount?: number;\n animation?: 'gradient' | 'flashed' | 'none';\n}\n\n/**\n * 解析后的组件节点(带 children 引用)\n */\nexport interface ResolvedComponent extends A2UIComponentBase {\n resolvedChildren?: ResolvedComponent[];\n dataContextPath?: string;\n}\n\n/**\n * A2UI Surface - UI 表面抽象\n */\nexport interface A2UISurface {\n id: string;\n catalogId?: string;\n state: SurfaceState;\n /** 组件平铺注册表 */\n components: Map<string, A2UIComponentBase>;\n /** 解析后的组件树根节点 */\n root: ResolvedComponent | null;\n /** 数据模型 */\n data: Record<string, unknown>;\n /** 骨架屏提示 */\n skeletonHint?: SkeletonHint;\n updatedAt?: number;\n}\n\n// ============= 兼容旧版 Operation 类型 =============\n\nexport type A2UIOperationType = 'create' | 'update' | 'patch' | 'delete' | 'action';\n\nexport interface A2UIOperation {\n type: A2UIOperationType;\n surfaceId: string;\n componentId?: string;\n payload?: A2UIComponent | Partial<A2UIComponent> | A2UIAction | Record<string, unknown>;\n}\n\nexport interface A2UIMessage {\n surfaceId: string;\n operations: A2UIOperation[];\n data?: Record<string, unknown>;\n}\n\n// ============= Zod Schema (运行时验证) =============\n\nexport const A2UIComponentBaseSchema = z.object({\n id: z.string(),\n component: z.string(),\n}).passthrough();\n\nexport const createSurfaceMessageSchema = z.object({\n createSurface: z.object({\n surfaceId: z.string(),\n catalogId: z.string(),\n }),\n});\n\nexport const updateComponentsMessageSchema = z.object({\n updateComponents: z.object({\n surfaceId: z.string(),\n components: z.array(A2UIComponentBaseSchema).min(1),\n }),\n});\n\nexport const updateDataModelMessageSchema = z.object({\n updateDataModel: z.object({\n surfaceId: z.string(),\n path: z.string().optional(),\n op: z.enum(['add', 'replace', 'remove']).optional(),\n value: z.any().optional(),\n }),\n});\n\nexport const deleteSurfaceMessageSchema = z.object({\n deleteSurface: z.object({\n surfaceId: z.string(),\n }),\n});\n\nexport const serverMessageSchema = z.union([\n createSurfaceMessageSchema,\n updateComponentsMessageSchema,\n updateDataModelMessageSchema,\n deleteSurfaceMessageSchema,\n]);\n\nexport const A2UISurfaceSchema = z.object({\n id: z.string(),\n catalogId: z.string().optional(),\n state: z.enum(['active', 'closed', 'pending']),\n root: z.any().nullable(),\n data: z.record(z.unknown()).optional(),\n skeletonHint: z.object({\n layout: z.enum(['form', 'card', 'list', 'simple', 'wizard']).optional(),\n rowCount: z.number().optional(),\n animation: z.enum(['gradient', 'flashed', 'none']).optional(),\n }).optional(),\n updatedAt: z.number().optional(),\n});\n"],"names":["PathBindingSchema","z","object","path","string","ExprBindingSchema","expr","vars","record","union","any","optional","format","stringOrPathSchema","numberOrPathSchema","number","booleanOrPathSchema","stringArrayOrPathSchema","array","A2UIActionSchema","name","context","unknown","type","payload","refine","data","message","componentCommonSchema","id","component","childrenPropertySchema","componentId","A2UIComponentType","Text","Image","Icon","Row","Column","List","Card","Tabs","Divider","Button","CheckBox","TextField","DateTimeInput","ChoicePicker","Slider","Input","RadioGroup","CheckboxGroup","A2UIComponentBaseSchema","passthrough","createSurfaceMessageSchema","createSurface","surfaceId","catalogId","updateComponentsMessageSchema","updateComponents","components","min","updateDataModelMessageSchema","updateDataModel","op","value","deleteSurfaceMessageSchema","deleteSurface","serverMessageSchema","A2UISurfaceSchema","state","root","nullable","skeletonHint","layout","rowCount","animation","updatedAt"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * A2UI 绑定解析工具
3
+ * 提供路径绑定和表达式绑定的运行时解析能力
4
+ */
5
+ import type { PathBinding, ExprBinding, Bindable } from '../types/types';
6
+ /**
7
+ * 判断是否为路径绑定
8
+ */
9
+ export declare function isPathBinding(value: unknown): value is PathBinding;
10
+ /**
11
+ * 判断是否为表达式绑定
12
+ */
13
+ export declare function isExprBinding(value: unknown): value is ExprBinding;
14
+ /**
15
+ * 解析绑定值
16
+ */
17
+ export declare function resolveBinding<T>(value: Bindable<T>, data: Record<string, unknown>, contextPath?: string): T;
18
+ /**
19
+ * 解析路径绑定
20
+ */
21
+ export declare function resolvePathBinding(path: string, data: Record<string, unknown>, contextPath: string): unknown;
22
+ /**
23
+ * 解析表达式绑定
24
+ * 使用 expr-eval 库进行安全的表达式求值
25
+ */
26
+ export declare function resolveExprBinding(binding: ExprBinding, data: Record<string, unknown>, contextPath: string): unknown;
27
+ /**
28
+ * 使用 expr-eval 进行安全的表达式求值
29
+ */
30
+ export declare function evaluateExpression(expr: string, vars: Record<string, unknown>): unknown;
31
+ /**
32
+ * 格式化数值
33
+ */
34
+ export declare function formatValue(value: number, format: string): string;