@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
@@ -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,7 +37,7 @@ var LLMService = /*#__PURE__*/function () {
37
37
  value: function () {
38
38
  var _handleBatchRequest = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(params, config) {
39
39
  var _config$onRequest;
40
- var req, data, _config$onComplete, result, _config$onError2, _t, _t2;
40
+ var req, url, data, _config$onComplete, result, _config$onError2, _t, _t2;
41
41
  return _regeneratorRuntime.wrap(function (_context) {
42
42
  while (1) switch (_context.prev = _context.next) {
43
43
  case 0:
@@ -57,9 +57,10 @@ var LLMService = /*#__PURE__*/function () {
57
57
  _t = params;
58
58
  case 2:
59
59
  req = _t;
60
+ url = req.url || config.endpoint;
60
61
  _context.prev = 3;
61
62
  _context.next = 4;
62
- return this.batchClient.request(config.endpoint, {
63
+ return this.batchClient.request(url, {
63
64
  method: "POST",
64
65
  headers: _objectSpread({
65
66
  "Content-Type": "application/json"
@@ -97,28 +98,29 @@ var LLMService = /*#__PURE__*/function () {
97
98
  value: function () {
98
99
  var _handleStreamRequest = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(params, config) {
99
100
  var _config$onRequest2;
100
- var req, _t3;
101
+ var req, url, _t3;
101
102
  return _regeneratorRuntime.wrap(function (_context2) {
102
103
  while (1) switch (_context2.prev = _context2.next) {
103
104
  case 0:
104
- if (config.endpoint) {
105
- _context2.next = 1;
106
- break;
107
- }
108
- return _context2.abrupt("return");
109
- case 1:
110
- this.sseClient = new SSEClient(config.endpoint);
111
- _context2.next = 2;
105
+ _context2.next = 1;
112
106
  return (_config$onRequest2 = config.onRequest) === null || _config$onRequest2 === void 0 ? void 0 : _config$onRequest2.call(config, params);
113
- case 2:
107
+ case 1:
114
108
  _t3 = _context2.sent;
115
109
  if (_t3) {
116
- _context2.next = 3;
110
+ _context2.next = 2;
117
111
  break;
118
112
  }
119
113
  _t3 = {};
120
- case 3:
114
+ case 2:
121
115
  req = _t3;
116
+ url = req.url || config.endpoint;
117
+ if (url) {
118
+ _context2.next = 3;
119
+ break;
120
+ }
121
+ return _context2.abrupt("return");
122
+ case 3:
123
+ this.sseClient = new SSEClient(url);
122
124
  this.sseClient.on("start", function (chunk) {
123
125
  var _config$onStart;
124
126
  (_config$onStart = config.onStart) === null || _config$onStart === void 0 || _config$onStart.call(config, chunk);
@@ -1 +1 @@
1
- {"version":3,"file":"llm-service.js","sources":["../../../../../pro-components/chat/chat-engine/core/server/llm-service.ts"],"sourcesContent":["import type { AIMessageContent, ChatRequestParams, ChatServiceConfig, SSEChunkData } from '../type';\nimport { LoggerManager } from '../utils/logger';\nimport { BatchClient } from './batch-client';\nimport { SSEClient } from './sse-client';\n\n// 与原有接口保持兼容\nexport interface ILLMService {\n /**\n * 处理批量请求(非流式)\n */\n handleBatchRequest(\n params: ChatRequestParams,\n config: ChatServiceConfig,\n ): Promise<AIMessageContent | AIMessageContent[]>;\n\n /**\n * 处理流式请求\n */\n handleStreamRequest(params: ChatRequestParams, config: ChatServiceConfig): Promise<void>;\n}\n\n/**\n * Enhanced LLM Service with error handling and connection management\n */\nexport class LLMService implements ILLMService {\n private sseClient: SSEClient | null = null;\n\n private batchClient: BatchClient | null = null;\n\n private isDestroyed = false;\n\n private logger = LoggerManager.getLogger();\n\n /**\n * 处理批量请求(非流式)\n */\n async handleBatchRequest(\n params: ChatRequestParams,\n config: ChatServiceConfig,\n ): Promise<AIMessageContent | AIMessageContent[]> {\n // 确保只有一个客户端实例\n this.batchClient = this.batchClient || new BatchClient();\n this.batchClient.on('error', (error) => {\n config.onError?.(error);\n });\n\n const req = (await config.onRequest?.(params)) || params;\n\n try {\n const data = await this.batchClient.request<AIMessageContent>(\n config.endpoint!,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...req.headers,\n },\n body: req.body,\n },\n config.timeout, // 现在timeout属性已存在\n );\n if (data) {\n const result = config.onComplete?.(false, req, data);\n // 如果onComplete返回了内容,使用它;否则使用原始data\n return result || data;\n }\n // 如果没有data,返回空数组\n return [];\n } catch (error) {\n config.onError?.(error as Error | Response);\n throw error;\n }\n }\n\n /**\n * 处理流式请求\n */\n async handleStreamRequest(params: ChatRequestParams, config: ChatServiceConfig): Promise<void> {\n if (!config.endpoint) return;\n this.sseClient = new SSEClient(config.endpoint);\n\n const req = (await config.onRequest?.(params)) || {};\n\n // 设置事件处理器\n this.sseClient.on('start', (chunk) => {\n config.onStart?.(chunk);\n });\n\n this.sseClient.on('message', (msg) => {\n config.onMessage?.(msg as SSEChunkData);\n });\n\n this.sseClient.on('error', (error) => {\n config.onError?.(error);\n });\n\n this.sseClient.on('complete', (isAborted) => {\n config.onComplete?.(isAborted, req);\n });\n\n await this.sseClient.connect(req);\n }\n\n /**\n * 关闭所有客户端连接\n */\n closeConnect(): void {\n if (this.sseClient) {\n this.sseClient.abort();\n this.sseClient = null;\n }\n if (this.batchClient) {\n this.batchClient.abort();\n this.batchClient = null;\n }\n }\n\n /**\n * 获取连接统计\n */\n getSSEStats(): { id: string; status: string; info: any } | null {\n if (!this.sseClient) return null;\n\n return {\n id: this.sseClient.connectionId,\n status: this.sseClient.getStatus(),\n info: this.sseClient.getInfo(),\n };\n }\n\n /**\n * 销毁服务\n */\n async destroy(): Promise<void> {\n this.isDestroyed = true;\n this.closeConnect();\n this.logger.info('Enhanced LLM Service destroyed');\n }\n}\n"],"names":["LLMService","_classCallCheck","_defineProperty","LoggerManager","getLogger","_createClass","key","value","_handleBatchRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","params","config","_config$onRequest","req","data","_config$onComplete","result","_config$onError2","_t","_t2","wrap","_context","prev","next","batchClient","BatchClient","on","error","_config$onError","onError","call","onRequest","sent","request","endpoint","method","headers","_objectSpread","body","timeout","onComplete","abrupt","stop","handleBatchRequest","_x","_x2","apply","arguments","_handleStreamRequest","_callee2","_config$onRequest2","_t3","_context2","sseClient","SSEClient","chunk","_config$onStart","onStart","msg","_config$onMessage","onMessage","_config$onError3","isAborted","_config$onComplete2","connect","handleStreamRequest","_x3","_x4","closeConnect","abort","getSSEStats","id","connectionId","status","getStatus","info","getInfo","_destroy","_callee3","_context3","isDestroyed","logger","destroy"],"mappings":"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"}
1
+ {"version":3,"file":"llm-service.js","sources":["../../../../../pro-components/chat/chat-engine/core/server/llm-service.ts"],"sourcesContent":["import type { AIMessageContent, ChatRequestParams, ChatServiceConfig, SSEChunkData } from '../type';\nimport { LoggerManager } from '../utils/logger';\nimport { BatchClient } from './batch-client';\nimport { SSEClient } from './sse-client';\n\n// 与原有接口保持兼容\nexport interface ILLMService {\n /**\n * 处理批量请求(非流式)\n */\n handleBatchRequest(\n params: ChatRequestParams,\n config: ChatServiceConfig,\n ): Promise<AIMessageContent | AIMessageContent[]>;\n\n /**\n * 处理流式请求\n */\n handleStreamRequest(params: ChatRequestParams, config: ChatServiceConfig): Promise<void>;\n}\n\n/**\n * Enhanced LLM Service with error handling and connection management\n */\nexport class LLMService implements ILLMService {\n private sseClient: SSEClient | null = null;\n\n private batchClient: BatchClient | null = null;\n\n private isDestroyed = false;\n\n private logger = LoggerManager.getLogger();\n\n /**\n * 处理批量请求(非流式)\n */\n async handleBatchRequest(\n params: ChatRequestParams,\n config: ChatServiceConfig,\n ): Promise<AIMessageContent | AIMessageContent[]> {\n // 确保只有一个客户端实例\n this.batchClient = this.batchClient || new BatchClient();\n this.batchClient.on('error', (error) => {\n config.onError?.(error);\n });\n\n const req = (await config.onRequest?.(params)) || params;\n // 支持 onRequest 返回 url 覆盖默认 endpoint\n const url = (req as any).url || config.endpoint;\n\n try {\n const data = await this.batchClient.request<AIMessageContent>(\n url!,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...req.headers,\n },\n body: req.body,\n },\n config.timeout,\n );\n if (data) {\n const result = config.onComplete?.(false, req, data);\n // 如果onComplete返回了内容,使用它;否则使用原始data\n return result || data;\n }\n // 如果没有data,返回空数组\n return [];\n } catch (error) {\n config.onError?.(error as Error | Response);\n throw error;\n }\n }\n\n /**\n * 处理流式请求\n */\n async handleStreamRequest(params: ChatRequestParams, config: ChatServiceConfig): Promise<void> {\n const req = (await config.onRequest?.(params)) || {};\n // 支持 onRequest 返回 url 覆盖默认 endpoint\n const url = (req as any).url || config.endpoint;\n\n if (!url) return;\n this.sseClient = new SSEClient(url);\n\n // 设置事件处理器\n this.sseClient.on('start', (chunk) => {\n config.onStart?.(chunk);\n });\n\n this.sseClient.on('message', (msg) => {\n config.onMessage?.(msg as SSEChunkData);\n });\n\n this.sseClient.on('error', (error) => {\n config.onError?.(error);\n });\n\n this.sseClient.on('complete', (isAborted) => {\n config.onComplete?.(isAborted, req);\n });\n\n await this.sseClient.connect(req);\n }\n\n /**\n * 关闭所有客户端连接\n */\n closeConnect(): void {\n if (this.sseClient) {\n this.sseClient.abort();\n this.sseClient = null;\n }\n if (this.batchClient) {\n this.batchClient.abort();\n this.batchClient = null;\n }\n }\n\n /**\n * 获取连接统计\n */\n getSSEStats(): { id: string; status: string; info: any } | null {\n if (!this.sseClient) return null;\n\n return {\n id: this.sseClient.connectionId,\n status: this.sseClient.getStatus(),\n info: this.sseClient.getInfo(),\n };\n }\n\n /**\n * 销毁服务\n */\n async destroy(): Promise<void> {\n this.isDestroyed = true;\n this.closeConnect();\n this.logger.info('Enhanced LLM Service destroyed');\n }\n}\n"],"names":["LLMService","_classCallCheck","_defineProperty","LoggerManager","getLogger","_createClass","key","value","_handleBatchRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","params","config","_config$onRequest","req","url","data","_config$onComplete","result","_config$onError2","_t","_t2","wrap","_context","prev","next","batchClient","BatchClient","on","error","_config$onError","onError","call","onRequest","sent","endpoint","request","method","headers","_objectSpread","body","timeout","onComplete","abrupt","stop","handleBatchRequest","_x","_x2","apply","arguments","_handleStreamRequest","_callee2","_config$onRequest2","_t3","_context2","sseClient","SSEClient","chunk","_config$onStart","onStart","msg","_config$onMessage","onMessage","_config$onError3","isAborted","_config$onComplete2","connect","handleStreamRequest","_x3","_x4","closeConnect","abort","getSSEStats","id","connectionId","status","getStatus","info","getInfo","_destroy","_callee3","_context3","isDestroyed","logger","destroy"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAwBO,IAAMA,UAAkC,gBAAA,YAAA;AAAA,EAAA,SAAAA,UAAA,GAAA;AAAAC,IAAAA,eAAA,OAAAD,UAAA,CAAA,CAAA;AAAAE,IAAAA,eAAA,oBACP,IAAA,CAAA,CAAA;AAAAA,IAAAA,eAAA,sBAEI,IAAA,CAAA,CAAA;AAAAA,IAAAA,eAAA,sBAEpB,KAAA,CAAA,CAAA;AAAAA,IAAAA,eAAA,CAELC,IAAAA,EAAAA,QAAAA,EAAAA,cAAcC,SAAU,EAAA,CAAA,CAAA;AAAA,GAAA;EAAA,OAAAC,YAAA,CAAAL,UAAA,EAAA,CAAA;IAAAM,GAAA,EAAA,oBAAA;IAAAC,KAAA,EAAA,YAAA;AAAA,MAAA,IAAAC,mBAAA,GAAAC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAKzC,SAAAC,OAAAA,CACEC,MAAA,EACAC,MACgD,EAAA;AAAA,QAAA,IAAAC,iBAAA,CAAA;AAAA,QAAA,IAAAC,GAAA,EAAAC,GAAA,EAAAC,IAAA,EAAAC,kBAAA,EAAAC,MAAA,EAAAC,gBAAA,EAAAC,EAAA,EAAAC,GAAA,CAAA;AAAA,QAAA,OAAAb,mBAAA,CAAAc,IAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;cAEhD,IAAA,CAAKC,WAAc,GAAA,IAAA,CAAKA,WAAe,IAAA,IAAIC,WAAY,EAAA,CAAA;cACvD,IAAA,CAAKD,WAAY,CAAAE,EAAA,CAAG,OAAS,EAAA,UAACC,KAAU,EAAA;AAAA,gBAAA,IAAAC,eAAA,CAAA;AACtC,gBAAA,CAAAA,eAAA,GAAAlB,MAAA,CAAOmB,yCAAPD,KAAAA,CAAAA,IAAAA,eAAA,CAAAE,IAAA,CAAApB,MAAA,EAAiBiB,KAAK,CAAA,CAAA;AACxB,eAAC,CAAA,CAAA;AAAAN,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAAA,CAAAZ,iBAAA,GAEkBD,MAAO,CAAAqB,SAAA,MAAApB,IAAAA,IAAAA,iBAAA,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAAmB,IAAA,CAAApB,MAAO,EAAYD,MAAM,CAAM,CAAA;AAAA,YAAA,KAAA,CAAA;cAAAS,EAAA,GAAAG,QAAA,CAAAW,IAAA,CAAA;AAAA,cAAA,IAAAd,EAAA,EAAA;AAAAG,gBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAAAL,cAAAA,EAAA,GAAAT,MAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAA5CG,cAAAA,GAAO,GAAAM,EAAA,CAAA;AAEPL,cAAAA,GAAA,GAAOD,GAAY,CAAAC,GAAA,IAAOH,MAAO,CAAAuB,QAAA,CAAA;AAAAZ,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAD,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAGlB,IAAA,CAAKC,WAAY,CAAAU,OAAA,CAClCrB,GAAA,EACA;AACEsB,gBAAAA,MAAQ,EAAA,MAAA;AACRC,gBAAAA,OAAS,EAAAC,aAAA,CAAA;AACP,kBAAA,cAAgB,EAAA,kBAAA;iBACbzB,EAAAA,GAAI,CAAAwB,OAAA,CACT;gBACAE,MAAM1B,GAAI,CAAA0B,IAAAA;AACZ,eAAA,EACA5B,MAAO,CAAA6B,OACT,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAXMzB,IAAA,GAAAO,QAAA,CAAAW,IAAA,CAAA;AAAA,cAAA,IAAA,CAYFlB,IAAM,EAAA;AAAAO,gBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cACFP,MAAS,GAAA,CAAAD,kBAAA,GAAAL,MAAA,CAAO8B,UAAa,MAAA,IAAA,IAAAzB,kBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAAe,IAAA,CAAApB,MAAA,EAAoB,KAAA,EAAOE,KAAKE,IAAI,CAAA,CAAA;AAAA,cAAA,OAAAO,QAAA,CAAAoB,MAAA,CAE5CzB,QAAAA,EAAAA,MAAU,IAAAF,IAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAO,QAAA,CAAAoB,MAAA,CAAA,QAAA,EAGZ,EAAC,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAApB,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAH,cAAAA,GAAA,GAAAE,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAER,cAAA,CAAAJ,gBAAA,GAAAP,MAAA,CAAOmB,0CAAPZ,KAAAA,CAAAA,IAAAA,gBAAA,CAAAa,IAAA,CAAApB,MAAA,EAAAS,GAA0C,CAAA,CAAA;AAAA,cAAA,MAAAA,GAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAE,QAAA,CAAAqB,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAlC,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAG9C,CAAA,CAAA,CAAA;AAAA,MAAA,SAtCMmC,kBACJA,CAAAC,EAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAzC,mBAAA,CAAA0C,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OADIJ,kBACJ,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAzC,GAAA,EAAA,qBAAA;IAAAC,KAAA,EAAA,YAAA;AAAA,MAAA,IAAA6C,oBAAA,GAAA3C,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CA0CF,SAAA0C,QAAAA,CAA0BxC,MAAA,EAA2BC,MAA0C,EAAA;AAAA,QAAA,IAAAwC,kBAAA,CAAA;AAAA,QAAA,IAAAtC,GAAA,EAAAC,GAAA,EAAAsC,GAAA,CAAA;AAAA,QAAA,OAAA7C,mBAAA,CAAAc,IAAA,CAAA,UAAAgC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA9B,IAAA,GAAA8B,SAAA,CAAA7B,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA6B,cAAAA,SAAA,CAAA7B,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAAA,CAAA2B,kBAAA,GAC1ExC,MAAA,CAAOqB,SAAY,MAAAmB,IAAAA,IAAAA,kBAAA,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAApB,IAAA,CAAApB,MAAA,EAAmBD,MAAM;;;;;;;oBAAM,EAAC,CAAA;AAAA,YAAA,KAAA,CAAA;AAA7CG,cAAAA;AAEAC,cAAAA,GAAA,GAAOD,GAAY,CAAAC,GAAA,IAAOH,MAAO,CAAAuB,QAAA,CAAA;AAAA,cAAA,IAElCpB,GAAA,EAAA;AAAAuC,gBAAAA,SAAA,CAAA7B,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cAAA,OAAA6B,SAAA,CAAAX,MAAA,CAAA,QAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AACA,cAAA,IAAA,CAAAY,SAAA,GAAY,IAAIC,SAAA,CAAUzC,GAAG,CAAA,CAAA;cAGlC,IAAA,CAAKwC,SAAU,CAAA3B,EAAA,CAAG,OAAS,EAAA,UAAC6B,KAAU,EAAA;AAAA,gBAAA,IAAAC,eAAA,CAAA;AACpC,gBAAA,CAAAA,eAAA,GAAA9C,MAAA,CAAO+C,yCAAPD,KAAAA,CAAAA,IAAAA,eAAA,CAAA1B,IAAA,CAAApB,MAAA,EAAiB6C,KAAK,CAAA,CAAA;AACxB,eAAC,CAAA,CAAA;cAED,IAAA,CAAKF,SAAU,CAAA3B,EAAA,CAAG,SAAW,EAAA,UAACgC,GAAQ,EAAA;AAAA,gBAAA,IAAAC,iBAAA,CAAA;AACpC,gBAAA,CAAAA,iBAAA,GAAAjD,MAAA,CAAOkD,6CAAPD,KAAAA,CAAAA,IAAAA,iBAAA,CAAA7B,IAAA,CAAApB,MAAA,EAAmBgD,GAAmB,CAAA,CAAA;AACxC,eAAC,CAAA,CAAA;cAED,IAAA,CAAKL,SAAU,CAAA3B,EAAA,CAAG,OAAS,EAAA,UAACC,KAAU,EAAA;AAAA,gBAAA,IAAAkC,gBAAA,CAAA;AACpC,gBAAA,CAAAA,gBAAA,GAAAnD,MAAA,CAAOmB,0CAAPgC,KAAAA,CAAAA,IAAAA,gBAAA,CAAA/B,IAAA,CAAApB,MAAA,EAAiBiB,KAAK,CAAA,CAAA;AACxB,eAAC,CAAA,CAAA;cAED,IAAA,CAAK0B,SAAU,CAAA3B,EAAA,CAAG,UAAY,EAAA,UAACoC,SAAc,EAAA;AAAA,gBAAA,IAAAC,mBAAA,CAAA;AACpC,gBAAA,CAAAA,mBAAA,GAAArD,MAAA,CAAA8B,UAAA,cAAAuB,mBAAA,KAAA,KAAA,CAAA,IAAAA,mBAAA,CAAAjC,IAAA,CAAApB,MAAA,EAAaoD,WAAWlD,GAAG,CAAA,CAAA;AACpC,eAAC,CAAA,CAAA;AAAAwC,cAAAA,SAAA,CAAA7B,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAEK,IAAA,CAAK8B,SAAU,CAAAW,OAAA,CAAQpD,GAAG,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAwC,SAAA,CAAAV,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAO,QAAA,EAAA,IAAA,CAAA,CAAA;OAClC,CAAA,CAAA,CAAA;AAAA,MAAA,SA1BMgB,mBAAoBA,CAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAnB,oBAAA,CAAAF,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAApBkB,mBAAoB,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAA/D,GAAA,EAAA,cAAA;AAAAC,IAAAA,KAAA,EA+B1B,SAAAiE,YAAqBA,GAAA;MACnB,IAAI,KAAKf,SAAW,EAAA;AAClB,QAAA,IAAA,CAAKA,UAAUgB,KAAM,EAAA,CAAA;QACrB,IAAA,CAAKhB,SAAY,GAAA,IAAA,CAAA;AACnB,OAAA;MACA,IAAI,KAAK7B,WAAa,EAAA;AACpB,QAAA,IAAA,CAAKA,YAAY6C,KAAM,EAAA,CAAA;QACvB,IAAA,CAAK7C,WAAc,GAAA,IAAA,CAAA;AACrB,OAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAAtB,GAAA,EAAA,aAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAmE,WAAgEA,GAAA;AAC9D,MAAA,IAAI,CAAC,IAAK,CAAAjB,SAAA,EAAkB,OAAA,IAAA,CAAA;MAErB,OAAA;AACLkB,QAAAA,EAAA,EAAI,KAAKlB,SAAU,CAAAmB,YAAA;AACnBC,QAAAA,MAAA,EAAQ,IAAK,CAAApB,SAAA,CAAUqB,SAAU,EAAA;AACjCC,QAAAA,IAAA,EAAM,IAAK,CAAAtB,SAAA,CAAUuB,OAAQ,EAAA;OAC/B,CAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAA1E,GAAA,EAAA,SAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA0E,QAAA,GAAAxE,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAKA,SAAAuE,QAAA,GAAA;AAAA,QAAA,OAAAxE,mBAAA,CAAAc,IAAA,CAAA,UAAA2D,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAzD,IAAA,GAAAyD,SAAA,CAAAxD,IAAA;AAAA,YAAA,KAAA,CAAA;cACE,IAAA,CAAKyD,WAAc,GAAA,IAAA,CAAA;cACnB,IAAA,CAAKZ,YAAa,EAAA,CAAA;AACb,cAAA,IAAA,CAAAa,MAAA,CAAON,KAAK,gCAAgC,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAI,SAAA,CAAArC,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAoC,QAAA,EAAA,IAAA,CAAA,CAAA;OACnD,CAAA,CAAA,CAAA;AAAA,MAAA,SAJMI,OAAyBA,GAAA;AAAA,QAAA,OAAAL,QAAA,CAAA/B,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAzBmC,OAAyB,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA;;;;"}
@@ -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
  */
@@ -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
  */
@@ -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
  */
@@ -137,12 +137,28 @@ export interface ChatNetworkConfig {
137
137
  /** 协议类型 */
138
138
  protocol?: 'default' | 'agui';
139
139
  }
140
+ export type OnRequestResult = ChatRequestParams & RequestInit & {
141
+ url?: string;
142
+ };
140
143
  export interface DefaultEngineCallbacks {
141
- /** 请求发送前配置 */
142
- onRequest?: (params: ChatRequestParams) => (ChatRequestParams & RequestInit) | Promise<ChatRequestParams & RequestInit>;
144
+ /** 请求发送前配置,可返回 url 覆盖默认 endpoint */
145
+ onRequest?: (params: ChatRequestParams) => OnRequestResult | Promise<OnRequestResult>;
143
146
  onStart?: (chunk: string) => void;
144
147
  /** 接收到消息数据块 - 用于解析和处理聊天内容 */
145
148
  onMessage?: (chunk: SSEChunkData, message?: ChatMessagesData, parsedResult?: AIMessageContent | AIMessageContent[] | null) => AIMessageContent | AIMessageContent[] | null;
149
+ /**
150
+ * 流式输出状态变化回调
151
+ * @param isStreaming 是否正在接收流式数据(true 表示有数据流入,false 表示暂停/停止)
152
+ * @param messageId 当前消息 ID
153
+ * @description 用于感知流式输出的活跃状态,当服务端 SSE chunk 暂停输出时可用于显示 loading
154
+ */
155
+ onStreaming?: (isStreaming: boolean, messageId?: string) => void;
156
+ /**
157
+ * 流式输出超时时间(毫秒)
158
+ * @default 3000
159
+ * @description 超过此时间未收到新的流式数据,则认为流式输出暂停,触发 onStreaming(false)
160
+ */
161
+ streamingTimeout?: number;
146
162
  onComplete?: (isAborted: boolean, params?: ChatRequestParams, result?: any) => AIMessageContent | AIMessageContent[] | void;
147
163
  onAbort?: () => Promise<void>;
148
164
  /** 错误处理 */
@@ -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
  */
@@ -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
  */
@@ -0,0 +1,90 @@
1
+ /**
2
+ * A2UI React Context
3
+ * 双 Context 设计:A2UIContext(运行时状态)+ ComponentRegistryContext(组件注册)
4
+ */
5
+ import React, { ReactNode } from 'react';
6
+ import type { A2uiMessageProcessor } from '../../core/a2ui';
7
+ import type { ActionHandler } from '../../core/a2ui';
8
+ /**
9
+ * A2UI 组件渲染器类型
10
+ */
11
+ export type A2UIComponentRenderer<T = any> = React.ComponentType<T>;
12
+ /**
13
+ * 组件注册表
14
+ */
15
+ export interface ComponentRegistry {
16
+ [componentType: string]: A2UIComponentRenderer;
17
+ }
18
+ /**
19
+ * 组件注册表上下文值
20
+ */
21
+ interface ComponentRegistryContextValue {
22
+ registry: ComponentRegistry;
23
+ getComponent: (type: string) => A2UIComponentRenderer | undefined;
24
+ }
25
+ /**
26
+ * 组件注册表 Provider
27
+ */
28
+ export interface ComponentRegistryProviderProps {
29
+ registry: ComponentRegistry;
30
+ children: ReactNode;
31
+ }
32
+ export declare function ComponentRegistryProvider({ registry, children }: ComponentRegistryProviderProps): import("react/jsx-runtime").JSX.Element;
33
+ /**
34
+ * 获取组件注册表
35
+ */
36
+ export declare function useComponentRegistry(): ComponentRegistryContextValue;
37
+ /**
38
+ * A2UI 运行时上下文值
39
+ */
40
+ export interface A2UIContextValue {
41
+ /** A2UI 消息处理器 */
42
+ processor: A2uiMessageProcessor;
43
+ /** 当前 Surface ID */
44
+ surfaceId: string;
45
+ /** 当前数据上下文路径(用于相对路径解析和 template 渲染) */
46
+ dataContextPath: string;
47
+ /** Action 处理回调 */
48
+ onAction?: ActionHandler;
49
+ }
50
+ /**
51
+ * A2UI 运行时 Provider
52
+ */
53
+ export interface A2UIProviderProps {
54
+ processor: A2uiMessageProcessor;
55
+ surfaceId: string;
56
+ dataContextPath?: string;
57
+ onAction?: ActionHandler;
58
+ children: ReactNode;
59
+ }
60
+ export declare function A2UIProvider({ processor, surfaceId, dataContextPath, onAction, children, }: A2UIProviderProps): import("react/jsx-runtime").JSX.Element;
61
+ /**
62
+ * 获取 A2UI 运行时上下文
63
+ */
64
+ export declare function useA2UIContext(): A2UIContextValue;
65
+ /**
66
+ * 安全获取 A2UI 上下文(可能为 null)
67
+ */
68
+ export declare function useA2UIContextSafe(): A2UIContextValue | null;
69
+ /**
70
+ * A2UI 完整 Provider(组合两个 Context)
71
+ */
72
+ export interface A2UIRootProviderProps {
73
+ processor: A2uiMessageProcessor;
74
+ surfaceId: string;
75
+ registry: ComponentRegistry;
76
+ dataContextPath?: string;
77
+ onAction?: ActionHandler;
78
+ children: ReactNode;
79
+ }
80
+ export declare function A2UIRootProvider({ processor, surfaceId, registry, dataContextPath, onAction, children, }: A2UIRootProviderProps): import("react/jsx-runtime").JSX.Element;
81
+ /**
82
+ * 数据上下文路径 Provider
83
+ * 用于 List/Template 渲染时修改子组件的数据上下文
84
+ */
85
+ export interface DataContextProviderProps {
86
+ path: string;
87
+ children: ReactNode;
88
+ }
89
+ export declare function DataContextProvider({ path, children }: DataContextProviderProps): import("react/jsx-runtime").JSX.Element;
90
+ export {};
@@ -0,0 +1,97 @@
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 React__default, { createContext, useMemo, useContext } from 'react';
9
+
10
+ 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; }
11
+ 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; }
12
+ var ComponentRegistryContext = /*#__PURE__*/createContext(null);
13
+ function ComponentRegistryProvider(_ref) {
14
+ var registry = _ref.registry,
15
+ children = _ref.children;
16
+ var value = useMemo(function () {
17
+ return {
18
+ registry: registry,
19
+ getComponent: function getComponent(type) {
20
+ return registry[type];
21
+ }
22
+ };
23
+ }, [registry]);
24
+ return /* @__PURE__ */React__default.createElement(ComponentRegistryContext.Provider, {
25
+ value: value
26
+ }, children);
27
+ }
28
+ function useComponentRegistry() {
29
+ var context = useContext(ComponentRegistryContext);
30
+ if (!context) {
31
+ throw new Error("useComponentRegistry must be used within ComponentRegistryProvider");
32
+ }
33
+ return context;
34
+ }
35
+ var A2UIContext = /*#__PURE__*/createContext(null);
36
+ function A2UIProvider(_ref2) {
37
+ var processor = _ref2.processor,
38
+ surfaceId = _ref2.surfaceId,
39
+ _ref2$dataContextPath = _ref2.dataContextPath,
40
+ dataContextPath = _ref2$dataContextPath === void 0 ? "/" : _ref2$dataContextPath,
41
+ onAction = _ref2.onAction,
42
+ children = _ref2.children;
43
+ var value = useMemo(function () {
44
+ return {
45
+ processor: processor,
46
+ surfaceId: surfaceId,
47
+ dataContextPath: dataContextPath,
48
+ onAction: onAction
49
+ };
50
+ }, [processor, surfaceId, dataContextPath, onAction]);
51
+ return /* @__PURE__ */React__default.createElement(A2UIContext.Provider, {
52
+ value: value
53
+ }, children);
54
+ }
55
+ function useA2UIContext() {
56
+ var context = useContext(A2UIContext);
57
+ if (!context) {
58
+ throw new Error("useA2UIContext must be used within A2UIProvider");
59
+ }
60
+ return context;
61
+ }
62
+ function useA2UIContextSafe() {
63
+ return useContext(A2UIContext);
64
+ }
65
+ function A2UIRootProvider(_ref3) {
66
+ var processor = _ref3.processor,
67
+ surfaceId = _ref3.surfaceId,
68
+ registry = _ref3.registry,
69
+ _ref3$dataContextPath = _ref3.dataContextPath,
70
+ dataContextPath = _ref3$dataContextPath === void 0 ? "/" : _ref3$dataContextPath,
71
+ onAction = _ref3.onAction,
72
+ children = _ref3.children;
73
+ return /* @__PURE__ */React__default.createElement(ComponentRegistryProvider, {
74
+ registry: registry
75
+ }, /* @__PURE__ */React__default.createElement(A2UIProvider, {
76
+ processor: processor,
77
+ surfaceId: surfaceId,
78
+ dataContextPath: dataContextPath,
79
+ onAction: onAction
80
+ }, children));
81
+ }
82
+ function DataContextProvider(_ref4) {
83
+ var path = _ref4.path,
84
+ children = _ref4.children;
85
+ var parent = useA2UIContext();
86
+ var value = useMemo(function () {
87
+ return _objectSpread(_objectSpread({}, parent), {}, {
88
+ dataContextPath: path
89
+ });
90
+ }, [parent, path]);
91
+ return /* @__PURE__ */React__default.createElement(A2UIContext.Provider, {
92
+ value: value
93
+ }, children);
94
+ }
95
+
96
+ export { A2UIProvider, A2UIRootProvider, ComponentRegistryProvider, DataContextProvider, useA2UIContext, useA2UIContextSafe, useComponentRegistry };
97
+ //# sourceMappingURL=A2UIContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A2UIContext.js","sources":["../../../../../pro-components/chat/chat-engine/hooks/a2ui/A2UIContext.tsx"],"sourcesContent":["/**\n * A2UI React Context\n * 双 Context 设计:A2UIContext(运行时状态)+ ComponentRegistryContext(组件注册)\n */\n\nimport React, { createContext, useContext, useMemo, ReactNode } from 'react';\nimport type { A2uiMessageProcessor } from '../../core/a2ui';\nimport type { ActionHandler } from '../../core/a2ui';\n\n// ============= Component Registry Context =============\n\n/**\n * A2UI 组件渲染器类型\n */\nexport type A2UIComponentRenderer<T = any> = React.ComponentType<T>;\n\n/**\n * 组件注册表\n */\nexport interface ComponentRegistry {\n [componentType: string]: A2UIComponentRenderer;\n}\n\n/**\n * 组件注册表上下文值\n */\ninterface ComponentRegistryContextValue {\n registry: ComponentRegistry;\n getComponent: (type: string) => A2UIComponentRenderer | undefined;\n}\n\nconst ComponentRegistryContext = createContext<ComponentRegistryContextValue | null>(null);\n\n/**\n * 组件注册表 Provider\n */\nexport interface ComponentRegistryProviderProps {\n registry: ComponentRegistry;\n children: ReactNode;\n}\n\nexport function ComponentRegistryProvider({ registry, children }: ComponentRegistryProviderProps) {\n const value = useMemo<ComponentRegistryContextValue>(\n () => ({\n registry,\n getComponent: (type: string) => registry[type],\n }),\n [registry]\n );\n\n return (\n <ComponentRegistryContext.Provider value={value}>\n {children}\n </ComponentRegistryContext.Provider>\n );\n}\n\n/**\n * 获取组件注册表\n */\nexport function useComponentRegistry(): ComponentRegistryContextValue {\n const context = useContext(ComponentRegistryContext);\n if (!context) {\n throw new Error('useComponentRegistry must be used within ComponentRegistryProvider');\n }\n return context;\n}\n\n// ============= A2UI Runtime Context =============\n\n/**\n * A2UI 运行时上下文值\n */\nexport interface A2UIContextValue {\n /** A2UI 消息处理器 */\n processor: A2uiMessageProcessor;\n /** 当前 Surface ID */\n surfaceId: string;\n /** 当前数据上下文路径(用于相对路径解析和 template 渲染) */\n dataContextPath: string;\n /** Action 处理回调 */\n onAction?: ActionHandler;\n}\n\nconst A2UIContext = createContext<A2UIContextValue | null>(null);\n\n/**\n * A2UI 运行时 Provider\n */\nexport interface A2UIProviderProps {\n processor: A2uiMessageProcessor;\n surfaceId: string;\n dataContextPath?: string;\n onAction?: ActionHandler;\n children: ReactNode;\n}\n\nexport function A2UIProvider({\n processor,\n surfaceId,\n dataContextPath = '/',\n onAction,\n children,\n}: A2UIProviderProps) {\n const value = useMemo<A2UIContextValue>(\n () => ({\n processor,\n surfaceId,\n dataContextPath,\n onAction,\n }),\n [processor, surfaceId, dataContextPath, onAction]\n );\n\n return <A2UIContext.Provider value={value}>{children}</A2UIContext.Provider>;\n}\n\n/**\n * 获取 A2UI 运行时上下文\n */\nexport function useA2UIContext(): A2UIContextValue {\n const context = useContext(A2UIContext);\n if (!context) {\n throw new Error('useA2UIContext must be used within A2UIProvider');\n }\n return context;\n}\n\n/**\n * 安全获取 A2UI 上下文(可能为 null)\n */\nexport function useA2UIContextSafe(): A2UIContextValue | null {\n return useContext(A2UIContext);\n}\n\n// ============= 组合 Provider =============\n\n/**\n * A2UI 完整 Provider(组合两个 Context)\n */\nexport interface A2UIRootProviderProps {\n processor: A2uiMessageProcessor;\n surfaceId: string;\n registry: ComponentRegistry;\n dataContextPath?: string;\n onAction?: ActionHandler;\n children: ReactNode;\n}\n\nexport function A2UIRootProvider({\n processor,\n surfaceId,\n registry,\n dataContextPath = '/',\n onAction,\n children,\n}: A2UIRootProviderProps) {\n return (\n <ComponentRegistryProvider registry={registry}>\n <A2UIProvider\n processor={processor}\n surfaceId={surfaceId}\n dataContextPath={dataContextPath}\n onAction={onAction}\n >\n {children}\n </A2UIProvider>\n </ComponentRegistryProvider>\n );\n}\n\n// ============= Data Context Path Provider =============\n\n/**\n * 数据上下文路径 Provider\n * 用于 List/Template 渲染时修改子组件的数据上下文\n */\nexport interface DataContextProviderProps {\n path: string;\n children: ReactNode;\n}\n\nexport function DataContextProvider({ path, children }: DataContextProviderProps) {\n const parent = useA2UIContext();\n\n const value = useMemo<A2UIContextValue>(\n () => ({\n ...parent,\n dataContextPath: path,\n }),\n [parent, path]\n );\n\n return <A2UIContext.Provider value={value}>{children}</A2UIContext.Provider>;\n}\n"],"names":["ComponentRegistryContext","createContext","ComponentRegistryProvider","_ref","registry","children","value","useMemo","getComponent","type","React","createElement","Provider","useComponentRegistry","context","useContext","Error","A2UIContext","A2UIProvider","_ref2","processor","surfaceId","_ref2$dataContextPath","dataContextPath","onAction","useA2UIContext","useA2UIContextSafe","A2UIRootProvider","_ref3","_ref3$dataContextPath","DataContextProvider","_ref4","path","parent","_objectSpread"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * A2UI React 适配层 Hooks 导出
3
+ */
4
+ export { ComponentRegistryProvider, A2UIProvider, A2UIRootProvider, DataContextProvider, useComponentRegistry, useA2UIContext, useA2UIContextSafe, type ComponentRegistry, type A2UIComponentRenderer, type A2UIContextValue, type ComponentRegistryProviderProps, type A2UIProviderProps, type A2UIRootProviderProps, type DataContextProviderProps, } from './A2UIContext';
5
+ export { useDataBinding, useTwoWayBinding, useBindingPath, useDataBindings, useResolvedString, } from './useDataBinding';
6
+ export { useA2UISurface, useA2UISurfaces, useA2UIRoot, useA2UIData, useA2UISurfaceState, useA2UISurfaceIds, } from './useA2UISurface';
7
+ export { useA2UIAction, useActionCallback, useActionWithPayload, } from './useA2UIAction';
@@ -0,0 +1,19 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.12
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ export { A2UIProvider, A2UIRootProvider, ComponentRegistryProvider, DataContextProvider, useA2UIContext, useA2UIContextSafe, useComponentRegistry } from './A2UIContext.js';
8
+ export { useBindingPath, useDataBinding, useDataBindings, useResolvedString, useTwoWayBinding } from './useDataBinding.js';
9
+ export { useA2UIData, useA2UIRoot, useA2UISurface, useA2UISurfaceIds, useA2UISurfaceState, useA2UISurfaces } from './useA2UISurface.js';
10
+ export { useA2UIAction, useActionCallback, useActionWithPayload } from './useA2UIAction.js';
11
+ import '@babel/runtime/helpers/defineProperty';
12
+ import 'react';
13
+ import '@babel/runtime/helpers/slicedToArray';
14
+ import '../../core/a2ui/utils/index.js';
15
+ import '../../core/a2ui/utils/binding.js';
16
+ import '@babel/runtime/helpers/typeof';
17
+ import '../../core/a2ui/utils/validation.js';
18
+ import '@babel/runtime/helpers/toConsumableArray';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A2UI Action 相关 Hooks
3
+ */
4
+ import type { A2UIAction } from '../../core/a2ui';
5
+ /**
6
+ * 获取 Action 分发函数
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * function Button({ action }: { action: A2UIAction }) {
11
+ * const dispatch = useA2UIAction();
12
+ * return <TButton onClick={() => dispatch(action)}>Click</TButton>;
13
+ * }
14
+ * ```
15
+ */
16
+ export declare function useA2UIAction(): (action: A2UIAction, componentId?: string) => void;
17
+ /**
18
+ * 创建绑定特定 Action 的回调
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * function ConfirmButton({ id }: { id: string }) {
23
+ * const handleConfirm = useActionCallback({ name: 'confirm', context: { value: true } }, id);
24
+ * return <TButton onClick={handleConfirm}>确认</TButton>;
25
+ * }
26
+ * ```
27
+ */
28
+ export declare function useActionCallback(action: A2UIAction | undefined, componentId?: string): (() => void) | undefined;
29
+ /**
30
+ * 创建带参数的 Action 回调
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * function Input({ id }: { id: string }) {
35
+ * const handleChange = useActionWithPayload('input-change', id);
36
+ * return <TInput onChange={(val) => handleChange({ value: val })} />;
37
+ * }
38
+ * ```
39
+ */
40
+ export declare function useActionWithPayload(actionName: string, componentId?: string): (context: Record<string, unknown>) => void;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.12
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import { useCallback } from 'react';
8
+ import { useA2UIContext } from './A2UIContext.js';
9
+ import '@babel/runtime/helpers/defineProperty';
10
+
11
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
12
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
13
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
14
+ function useA2UIAction() {
15
+ var _useA2UIContext = useA2UIContext(),
16
+ processor = _useA2UIContext.processor,
17
+ surfaceId = _useA2UIContext.surfaceId,
18
+ onAction = _useA2UIContext.onAction;
19
+ return useCallback(function (action, componentId) {
20
+ if (onAction) {
21
+ var context = {
22
+ surfaceId: surfaceId,
23
+ componentId: componentId,
24
+ updateData: function updateData(path, value) {
25
+ processor.updateDataValue(surfaceId, path, value);
26
+ },
27
+ getData: function getData(path) {
28
+ var surface = processor.getSurface(surfaceId);
29
+ if (!surface) return void 0;
30
+ if (!path) return surface.data;
31
+ var segments = path.split("/").filter(Boolean);
32
+ var result = surface.data;
33
+ var _iterator = _createForOfIteratorHelper(segments),
34
+ _step;
35
+ try {
36
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
37
+ var segment = _step.value;
38
+ if (result === null || result === void 0) return void 0;
39
+ result = result[segment];
40
+ }
41
+ } catch (err) {
42
+ _iterator.e(err);
43
+ } finally {
44
+ _iterator.f();
45
+ }
46
+ return result;
47
+ }
48
+ };
49
+ onAction(action, context);
50
+ } else {
51
+ processor.dispatchAction(action, surfaceId, componentId);
52
+ }
53
+ }, [processor, surfaceId, onAction]);
54
+ }
55
+ function useActionCallback(action, componentId) {
56
+ var dispatch = useA2UIAction();
57
+ return useCallback(function () {
58
+ if (action) {
59
+ dispatch(action, componentId);
60
+ }
61
+ }, [dispatch, action, componentId]);
62
+ }
63
+ function useActionWithPayload(actionName, componentId) {
64
+ var dispatch = useA2UIAction();
65
+ return useCallback(function (context) {
66
+ dispatch({
67
+ name: actionName,
68
+ context: context
69
+ }, componentId);
70
+ }, [dispatch, actionName, componentId]);
71
+ }
72
+
73
+ export { useA2UIAction, useActionCallback, useActionWithPayload };
74
+ //# sourceMappingURL=useA2UIAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useA2UIAction.js","sources":["../../../../../pro-components/chat/chat-engine/hooks/a2ui/useA2UIAction.ts"],"sourcesContent":["/**\n * A2UI Action 相关 Hooks\n */\n\nimport { useCallback } from 'react';\nimport { useA2UIContext } from './A2UIContext';\nimport type { A2UIAction } from '../../core/a2ui';\n\n/**\n * 获取 Action 分发函数\n * \n * @example\n * ```tsx\n * function Button({ action }: { action: A2UIAction }) {\n * const dispatch = useA2UIAction();\n * return <TButton onClick={() => dispatch(action)}>Click</TButton>;\n * }\n * ```\n */\nexport function useA2UIAction(): (action: A2UIAction, componentId?: string) => void {\n const { processor, surfaceId, onAction } = useA2UIContext();\n\n return useCallback(\n (action: A2UIAction, componentId?: string) => {\n // 优先使用外部提供的 onAction\n if (onAction) {\n const context = {\n surfaceId,\n componentId,\n updateData: (path: string, value: unknown) => {\n processor.updateDataValue(surfaceId, path, value);\n },\n getData: (path?: string) => {\n const surface = processor.getSurface(surfaceId);\n if (!surface) return undefined;\n if (!path) return surface.data;\n // 简单路径解析\n const segments = path.split('/').filter(Boolean);\n let result: unknown = surface.data;\n for (const segment of segments) {\n if (result === null || result === undefined) return undefined;\n result = (result as Record<string, unknown>)[segment];\n }\n return result;\n },\n };\n onAction(action, context);\n } else {\n // 使用 processor 内部处理\n processor.dispatchAction(action, surfaceId, componentId);\n }\n },\n [processor, surfaceId, onAction]\n );\n}\n\n/**\n * 创建绑定特定 Action 的回调\n * \n * @example\n * ```tsx\n * function ConfirmButton({ id }: { id: string }) {\n * const handleConfirm = useActionCallback({ name: 'confirm', context: { value: true } }, id);\n * return <TButton onClick={handleConfirm}>确认</TButton>;\n * }\n * ```\n */\nexport function useActionCallback(\n action: A2UIAction | undefined,\n componentId?: string\n): (() => void) | undefined {\n const dispatch = useA2UIAction();\n\n return useCallback(() => {\n if (action) {\n dispatch(action, componentId);\n }\n }, [dispatch, action, componentId]);\n}\n\n/**\n * 创建带参数的 Action 回调\n * \n * @example\n * ```tsx\n * function Input({ id }: { id: string }) {\n * const handleChange = useActionWithPayload('input-change', id);\n * return <TInput onChange={(val) => handleChange({ value: val })} />;\n * }\n * ```\n */\nexport function useActionWithPayload(\n actionName: string,\n componentId?: string\n): (context: Record<string, unknown>) => void {\n const dispatch = useA2UIAction();\n\n return useCallback(\n (context: Record<string, unknown>) => {\n dispatch({ name: actionName, context }, componentId);\n },\n [dispatch, actionName, componentId]\n );\n}\n"],"names":["useA2UIAction","_useA2UIContext","useA2UIContext","processor","surfaceId","onAction","useCallback","action","componentId","context","updateData","path","value","updateDataValue","getData","surface","getSurface","data","segments","split","filter","Boolean","result","_iterator","_createForOfIteratorHelper","_step","s","n","done","segment","err","e","f","dispatchAction","useActionCallback","dispatch","useActionWithPayload","actionName","name"],"mappings":"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"}