@tdesign-react/chat 1.1.0-alpha.16 → 1.1.0-alpha.18
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.
- package/es/_chunks/{dep-3e40d789.js → dep-5d7a98b7.js} +2 -2
- package/es/_chunks/{dep-3e40d789.js.map → dep-5d7a98b7.js.map} +1 -1
- package/es/_chunks/{dep-1ca64fef.js → dep-907337f3.js} +2 -2
- package/es/_chunks/{dep-93283bbd.js.map → dep-907337f3.js.map} +1 -1
- package/es/_chunks/{dep-dfe91b1f.js → dep-e1e84ed7.js} +1 -1
- package/es/_chunks/{dep-13fe70ea.js.map → dep-e1e84ed7.js.map} +1 -1
- package/es/_chunks/{dep-076af7c3.js → dep-ee7a509c.js} +3 -3
- package/es/_chunks/{dep-076af7c3.js.map → dep-ee7a509c.js.map} +1 -1
- package/es/_util/reactify.js +1 -1
- package/es/_util/useDynamicStyle.js +1 -1
- package/es/attachments/index.js +1 -1
- package/es/chat-actionbar/index.js +1 -1
- package/es/chat-engine/components/activity/index.js +2 -2
- package/es/chat-engine/components/activity/registry.js +1 -1
- package/es/chat-engine/components/activity/render.js +2 -2
- package/es/chat-engine/components/activity/types.js +1 -1
- package/es/chat-engine/components/index.js +12 -6
- package/es/chat-engine/components/index.js.map +1 -1
- package/es/chat-engine/components/json-render/catalog/atomic/button.js +1 -1
- package/es/chat-engine/components/json-render/catalog/atomic/card.js +1 -1
- package/es/chat-engine/components/json-render/catalog/atomic/input.js +12 -6
- package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -1
- package/es/chat-engine/components/json-render/catalog/atomic/layout.js +1 -1
- package/es/chat-engine/components/json-render/catalog/atomic/text.js +1 -1
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +1 -1
- package/es/chat-engine/components/json-render/contexts/actions.js +2 -2
- package/es/chat-engine/components/json-render/contexts/data.js +2 -2
- package/es/chat-engine/components/json-render/contexts/index.js +2 -2
- package/es/chat-engine/components/json-render/contexts/store.js +1 -1
- package/es/chat-engine/components/json-render/contexts/tree.js +1 -1
- package/es/chat-engine/components/json-render/contexts/validation.js +2 -2
- package/es/chat-engine/components/json-render/contexts/visibility.js +2 -2
- package/es/chat-engine/components/json-render/index.js +12 -6
- package/es/chat-engine/components/json-render/index.js.map +1 -1
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js +12 -6
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -1
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js +12 -6
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -1
- package/es/chat-engine/components/json-render/registry/config.js +12 -6
- package/es/chat-engine/components/json-render/registry/config.js.map +1 -1
- package/es/chat-engine/components/json-render/registry/index.js +12 -6
- package/es/chat-engine/components/json-render/registry/index.js.map +1 -1
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +11 -5
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -1
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +3 -3
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +2 -2
- package/es/chat-engine/components/json-render/renderer/_index.js +2 -2
- package/es/chat-engine/components/json-render/types.js +1 -1
- package/es/chat-engine/components/provider/agent-state.js +10 -4
- package/es/chat-engine/components/provider/agent-state.js.map +1 -1
- package/es/chat-engine/components/shared/ComponentErrorBoundary.js +1 -1
- package/es/chat-engine/components/shared/createRegistry.js +1 -1
- package/es/chat-engine/components/shared/index.js +1 -1
- package/es/chat-engine/components/shared/useRegistrationListener.js +1 -1
- package/es/chat-engine/components/toolcall/index.js +10 -4
- package/es/chat-engine/components/toolcall/index.js.map +1 -1
- package/es/chat-engine/components/toolcall/registry.js +1 -1
- package/es/chat-engine/components/toolcall/render.js +9 -3
- package/es/chat-engine/components/toolcall/render.js.map +1 -1
- package/es/chat-engine/components/toolcall/types.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/index.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/types/index.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/types/types.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/utils/index.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/utils/validation.js +1 -1
- package/es/chat-engine/core/adapters/agui/ActivityManager.js +1 -1
- package/es/chat-engine/core/adapters/agui/StateManager.js +1 -1
- package/es/chat-engine/core/adapters/agui/event-mapper.js +1 -1
- package/es/chat-engine/core/adapters/agui/index.js +21 -52
- package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/types/events.js +1 -1
- package/es/chat-engine/core/adapters/agui/types/index.js +1 -1
- package/es/chat-engine/core/adapters/agui/utils.d.ts +25 -2
- package/es/chat-engine/core/adapters/agui/utils.js +52 -12
- package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
- package/es/chat-engine/core/adapters/index.js +3 -1
- package/es/chat-engine/core/adapters/index.js.map +1 -1
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +1 -1
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +1 -1
- package/es/chat-engine/core/adapters/json-render/engine.js +1 -1
- package/es/chat-engine/core/adapters/json-render/index.js +1 -1
- package/es/chat-engine/core/adapters/json-render/types/a2ui.js +1 -1
- package/es/chat-engine/core/adapters/json-render/types/core.js +1 -1
- package/es/chat-engine/core/adapters/json-render/types/index.js +1 -1
- package/es/chat-engine/core/adapters/openclaw/device-key-manager.d.ts +65 -0
- package/es/chat-engine/core/adapters/openclaw/device-key-manager.js +375 -0
- package/es/chat-engine/core/adapters/openclaw/device-key-manager.js.map +1 -0
- package/es/chat-engine/core/adapters/openclaw/event-mapper.d.ts +36 -14
- package/es/chat-engine/core/adapters/openclaw/event-mapper.js +37 -21
- package/es/chat-engine/core/adapters/openclaw/event-mapper.js.map +1 -1
- package/es/chat-engine/core/adapters/openclaw/history-converter.d.ts +120 -0
- package/es/chat-engine/core/adapters/openclaw/history-converter.js +251 -0
- package/es/chat-engine/core/adapters/openclaw/history-converter.js.map +1 -0
- package/es/chat-engine/core/adapters/openclaw/index.d.ts +41 -0
- package/es/chat-engine/core/adapters/openclaw/index.js +146 -46
- package/es/chat-engine/core/adapters/openclaw/index.js.map +1 -1
- package/es/chat-engine/core/adapters/openclaw/rpc-handler.d.ts +13 -0
- package/es/chat-engine/core/adapters/openclaw/rpc-handler.js +20 -1
- package/es/chat-engine/core/adapters/openclaw/rpc-handler.js.map +1 -1
- package/es/chat-engine/core/adapters/openclaw/types/config.d.ts +17 -18
- package/es/chat-engine/core/adapters/openclaw/types/config.js +4 -2
- package/es/chat-engine/core/adapters/openclaw/types/config.js.map +1 -1
- package/es/chat-engine/core/adapters/openclaw/types/events.d.ts +5 -1
- package/es/chat-engine/core/adapters/openclaw/types/events.js +3 -1
- package/es/chat-engine/core/adapters/openclaw/types/events.js.map +1 -1
- package/es/chat-engine/core/adapters/openclaw/types/index.js +1 -1
- package/es/chat-engine/core/adapters/openclaw/types/messages.d.ts +22 -0
- package/es/chat-engine/core/adapters/openclaw/types/messages.js +1 -1
- package/es/chat-engine/core/adapters/openclaw/types/messages.js.map +1 -1
- package/es/chat-engine/core/adapters/openclaw/utils.js +1 -1
- package/es/chat-engine/core/adapters/openclaw/utils.js.map +1 -1
- package/es/chat-engine/core/adapters/shared/activity-manager.js +1 -1
- package/es/chat-engine/core/adapters/shared/content-factory.js +1 -1
- package/es/chat-engine/core/adapters/shared/index.js +1 -1
- package/es/chat-engine/core/adapters/shared/merge-utils.js +1 -1
- package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
- package/es/chat-engine/core/event-bus/index.js +1 -1
- package/es/chat-engine/core/event-bus/types.js +1 -1
- package/es/chat-engine/core/index.d.ts +27 -25
- package/es/chat-engine/core/index.js +231 -359
- package/es/chat-engine/core/index.js.map +1 -1
- package/es/chat-engine/core/processor/index.d.ts +32 -0
- package/es/chat-engine/core/processor/index.js +76 -1
- package/es/chat-engine/core/processor/index.js.map +1 -1
- package/es/chat-engine/core/server/batch-client.js +1 -1
- package/es/chat-engine/core/server/connection-manager.js +1 -1
- package/es/chat-engine/core/server/errors.js +1 -1
- package/es/chat-engine/core/server/index.js +1 -21
- package/es/chat-engine/core/server/index.js.map +1 -1
- package/es/chat-engine/core/server/llm-service.d.ts +7 -7
- package/es/chat-engine/core/server/llm-service.js +13 -140
- package/es/chat-engine/core/server/llm-service.js.map +1 -1
- package/es/chat-engine/core/server/sse-client.js +1 -1
- package/es/chat-engine/core/server/sse-parser.js +1 -1
- package/es/chat-engine/core/server/types.js +1 -1
- package/es/chat-engine/core/server/websocket-client.d.ts +2 -0
- package/es/chat-engine/core/server/websocket-client.js +19 -3
- package/es/chat-engine/core/server/websocket-client.js.map +1 -1
- package/es/chat-engine/core/store/message.js +2 -2
- package/es/chat-engine/core/store/model.js +2 -2
- package/es/chat-engine/core/store/reactiveState.js +2 -2
- package/es/chat-engine/core/stream-handlers/agui-stream-handler.d.ts +24 -0
- package/es/chat-engine/core/stream-handlers/agui-stream-handler.js +140 -0
- package/es/chat-engine/core/stream-handlers/agui-stream-handler.js.map +1 -0
- package/es/chat-engine/core/stream-handlers/default-stream-handler.d.ts +7 -0
- package/es/chat-engine/core/stream-handlers/default-stream-handler.js +77 -0
- package/es/chat-engine/core/stream-handlers/default-stream-handler.js.map +1 -0
- package/es/chat-engine/core/stream-handlers/index.d.ts +21 -0
- package/es/chat-engine/core/stream-handlers/index.js +72 -0
- package/es/chat-engine/core/stream-handlers/index.js.map +1 -0
- package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.d.ts +64 -0
- package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.js +320 -0
- package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.js.map +1 -0
- package/es/chat-engine/core/stream-handlers/types.d.ts +47 -0
- package/es/chat-engine/core/stream-handlers/types.js +7 -0
- package/es/chat-engine/core/stream-handlers/types.js.map +1 -0
- package/es/chat-engine/core/type.d.ts +18 -0
- package/es/chat-engine/core/type.js +1 -1
- package/es/chat-engine/core/utils/eventEmitter.js +1 -1
- package/es/chat-engine/core/utils/immutable-patch.js +1 -1
- package/es/chat-engine/core/utils/index.js +1 -1
- package/es/chat-engine/core/utils/json-patch/helpers.js +1 -1
- package/es/chat-engine/core/utils/json-patch/index.js +1 -1
- package/es/chat-engine/core/utils/logger.js +1 -1
- package/es/chat-engine/core/utils/performance.js +1 -1
- package/es/chat-engine/hooks/index.js +10 -4
- package/es/chat-engine/hooks/index.js.map +1 -1
- package/es/chat-engine/hooks/useAgentActivity.js +1 -1
- package/es/chat-engine/hooks/useAgentState.js +10 -4
- package/es/chat-engine/hooks/useAgentState.js.map +1 -1
- package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
- package/es/chat-engine/hooks/useChat.js +45 -15
- package/es/chat-engine/hooks/useChat.js.map +1 -1
- package/es/chat-engine/index.js +12 -6
- package/es/chat-engine/index.js.map +1 -1
- package/es/chat-filecard/index.js +1 -1
- package/es/chat-loading/index.js +1 -1
- package/es/chat-markdown/index.js +1 -1
- package/es/chat-message/index.js +1 -1
- package/es/chat-sender/index.js +1 -1
- package/es/chat-thinking/index.js +1 -1
- package/es/chatbot/index.js +1 -1
- package/es/index.js +10 -4
- package/es/index.js.map +1 -1
- package/es/style/index.js +1 -1
- package/package.json +1 -1
- package/es/_chunks/dep-1007ac80.js +0 -205
- package/es/_chunks/dep-1007ac80.js.map +0 -1
- package/es/_chunks/dep-13fe70ea.js +0 -438
- package/es/_chunks/dep-16520c2b.js +0 -1247
- package/es/_chunks/dep-16520c2b.js.map +0 -1
- package/es/_chunks/dep-1743bd61.js +0 -438
- package/es/_chunks/dep-1743bd61.js.map +0 -1
- package/es/_chunks/dep-1ca64fef.js.map +0 -1
- package/es/_chunks/dep-24472232.js +0 -839
- package/es/_chunks/dep-24472232.js.map +0 -1
- package/es/_chunks/dep-2bfe72cb.js +0 -438
- package/es/_chunks/dep-2bfe72cb.js.map +0 -1
- package/es/_chunks/dep-3864b369.js +0 -839
- package/es/_chunks/dep-3864b369.js.map +0 -1
- package/es/_chunks/dep-4dedfbef.js +0 -438
- package/es/_chunks/dep-4dedfbef.js.map +0 -1
- package/es/_chunks/dep-56f5e08e.js +0 -448
- package/es/_chunks/dep-56f5e08e.js.map +0 -1
- package/es/_chunks/dep-58d90dfe.js +0 -438
- package/es/_chunks/dep-58d90dfe.js.map +0 -1
- package/es/_chunks/dep-5b6b17d0.js +0 -169
- package/es/_chunks/dep-5b6b17d0.js.map +0 -1
- package/es/_chunks/dep-5e2400d2.js +0 -438
- package/es/_chunks/dep-5e2400d2.js.map +0 -1
- package/es/_chunks/dep-60f2a734.js +0 -169
- package/es/_chunks/dep-60f2a734.js.map +0 -1
- package/es/_chunks/dep-688e4aaa.js +0 -438
- package/es/_chunks/dep-688e4aaa.js.map +0 -1
- package/es/_chunks/dep-771678df.js +0 -438
- package/es/_chunks/dep-771678df.js.map +0 -1
- package/es/_chunks/dep-870f0d35.js +0 -839
- package/es/_chunks/dep-870f0d35.js.map +0 -1
- package/es/_chunks/dep-93283bbd.js +0 -1247
- package/es/_chunks/dep-96eca06f.js +0 -169
- package/es/_chunks/dep-96eca06f.js.map +0 -1
- package/es/_chunks/dep-98d23dfa.js +0 -169
- package/es/_chunks/dep-98d23dfa.js.map +0 -1
- package/es/_chunks/dep-991f7c12.js +0 -1247
- package/es/_chunks/dep-991f7c12.js.map +0 -1
- package/es/_chunks/dep-b4eec30f.js +0 -1247
- package/es/_chunks/dep-b4eec30f.js.map +0 -1
- package/es/_chunks/dep-ba3bd553.js +0 -169
- package/es/_chunks/dep-ba3bd553.js.map +0 -1
- package/es/_chunks/dep-bcb234a1.js +0 -839
- package/es/_chunks/dep-bcb234a1.js.map +0 -1
- package/es/_chunks/dep-dbdfe7d6.js +0 -169
- package/es/_chunks/dep-dbdfe7d6.js.map +0 -1
- package/es/_chunks/dep-de8ac730.js +0 -1247
- package/es/_chunks/dep-de8ac730.js.map +0 -1
- package/es/_chunks/dep-dfe91b1f.js.map +0 -1
- package/es/_chunks/dep-e9dbff09.js +0 -1247
- package/es/_chunks/dep-e9dbff09.js.map +0 -1
- package/es/_chunks/dep-ebc4cf30.js +0 -1247
- package/es/_chunks/dep-ebc4cf30.js.map +0 -1
- package/es/_chunks/dep-f2051ebd.js +0 -839
- package/es/_chunks/dep-f2051ebd.js.map +0 -1
- package/es/_chunks/dep-f691a67e.js +0 -438
- package/es/_chunks/dep-f691a67e.js.map +0 -1
- package/es/_chunks/dep-f8016301.js +0 -169
- package/es/_chunks/dep-f8016301.js.map +0 -1
- package/es/chat-actionbar/_example-js/base.d.ts +0 -2
- package/es/chat-actionbar/_example-js/custom.d.ts +0 -2
- package/es/chat-actionbar/_example-js/style.d.ts +0 -2
- package/es/chat-attachments/_example-js/base.d.ts +0 -2
- package/es/chat-attachments/_example-js/scroll-x.d.ts +0 -2
- package/es/chat-attachments/_example-js/scroll-y.d.ts +0 -2
- package/es/chat-attachments/index.d.ts +0 -5
- package/es/chat-attachments/index.js +0 -26
- package/es/chat-attachments/index.js.map +0 -1
- package/es/chat-engine/_example-js/agui-basic.d.ts +0 -10
- package/es/chat-engine/_example-js/agui-comprehensive.d.ts +0 -2
- package/es/chat-engine/_example-js/agui-test.d.ts +0 -11
- package/es/chat-engine/_example-js/agui-toolcall.d.ts +0 -5
- package/es/chat-engine/_example-js/agui-videoclip.d.ts +0 -8
- package/es/chat-engine/_example-js/agui.d.ts +0 -1
- package/es/chat-engine/_example-js/basic.d.ts +0 -9
- package/es/chat-engine/_example-js/components/HotelCard.d.ts +0 -3
- package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +0 -6
- package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +0 -3
- package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +0 -3
- package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +0 -4
- package/es/chat-engine/_example-js/components/Toolcall.d.ts +0 -4
- package/es/chat-engine/_example-js/components/WeatherCard.d.ts +0 -3
- package/es/chat-engine/_example-js/components/login.d.ts +0 -1
- package/es/chat-engine/_example-js/comprehensive.d.ts +0 -12
- package/es/chat-engine/_example-js/custom-content.d.ts +0 -1
- package/es/chat-engine/_example-js/hookComponent.d.ts +0 -1
- package/es/chat-engine/_example-js/initial-messages.d.ts +0 -9
- package/es/chat-engine/_example-js/instance-methods.d.ts +0 -13
- package/es/chat-engine/_example-js/travel-actions.d.ts +0 -91
- package/es/chat-engine/_example-js/travelToolcall.d.ts +0 -1
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +0 -196
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +0 -301
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +0 -1
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +0 -37
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +0 -116
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +0 -1
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +0 -42
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +0 -113
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +0 -1
- package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +0 -60
- package/es/chat-engine/components/a2ui/A2UISkeleton.js +0 -197
- package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +0 -1
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +0 -44
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +0 -139
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +0 -1
- package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +0 -22
- package/es/chat-engine/components/a2ui/containers/A2UICard.js +0 -82
- package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +0 -1
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +0 -18
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +0 -81
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +0 -1
- package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +0 -14
- package/es/chat-engine/components/a2ui/containers/A2UIList.js +0 -62
- package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +0 -1
- package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +0 -20
- package/es/chat-engine/components/a2ui/containers/A2UIRow.js +0 -84
- package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +0 -1
- package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +0 -14
- package/es/chat-engine/components/a2ui/containers/A2UITabs.js +0 -69
- package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +0 -1
- package/es/chat-engine/components/a2ui/containers/index.d.ts +0 -8
- package/es/chat-engine/components/a2ui/containers/index.js +0 -30
- package/es/chat-engine/components/a2ui/containers/index.js.map +0 -1
- package/es/chat-engine/components/a2ui/index.d.ts +0 -11
- package/es/chat-engine/components/a2ui/index.js +0 -62
- package/es/chat-engine/components/a2ui/index.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +0 -33
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +0 -80
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +0 -12
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +0 -43
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +0 -50
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +0 -54
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +0 -13
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +0 -89
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +0 -12
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +0 -25
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +0 -13
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +0 -138942
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +0 -12
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +0 -75
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +0 -20
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +0 -63
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +0 -56
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +0 -64
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +0 -12
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +0 -55
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +0 -12
- package/es/chat-engine/components/a2ui/primitives/A2UIText.js +0 -104
- package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +0 -12
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +0 -80
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +0 -1
- package/es/chat-engine/components/a2ui/primitives/index.d.ts +0 -15
- package/es/chat-engine/components/a2ui/primitives/index.js +0 -39
- package/es/chat-engine/components/a2ui/primitives/index.js.map +0 -1
- package/es/chat-engine/components/a2ui/registry.d.ts +0 -35
- package/es/chat-engine/components/a2ui/registry.js +0 -74
- package/es/chat-engine/components/a2ui/registry.js.map +0 -1
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +0 -36
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +0 -36
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +0 -1
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +0 -46
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +0 -36
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +0 -1
- package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +0 -113
- package/es/chat-engine/components/json-render/SurfaceStateManager.js +0 -195
- package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +0 -1
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +0 -49
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +0 -307
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +0 -1
- package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +0 -96
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js +0 -7
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +0 -1
- package/es/chat-engine/components/json-render/adapters/index.d.ts +0 -7
- package/es/chat-engine/components/json-render/adapters/index.js +0 -11
- package/es/chat-engine/components/json-render/adapters/index.js.map +0 -1
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +0 -64
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +0 -36
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +0 -1
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +0 -78
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +0 -36
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +0 -1
- package/es/chat-engine/components/json-render/catalog/button.d.ts +0 -14
- package/es/chat-engine/components/json-render/catalog/button.js +0 -71
- package/es/chat-engine/components/json-render/catalog/button.js.map +0 -1
- package/es/chat-engine/components/json-render/catalog/card.d.ts +0 -11
- package/es/chat-engine/components/json-render/catalog/card.js +0 -57
- package/es/chat-engine/components/json-render/catalog/card.js.map +0 -1
- package/es/chat-engine/components/json-render/catalog/index.d.ts +0 -128
- package/es/chat-engine/components/json-render/catalog/index.js +0 -36
- package/es/chat-engine/components/json-render/catalog/index.js.map +0 -1
- package/es/chat-engine/components/json-render/catalog/input.d.ts +0 -20
- package/es/chat-engine/components/json-render/catalog/input.js +0 -36
- package/es/chat-engine/components/json-render/catalog/input.js.map +0 -1
- package/es/chat-engine/components/json-render/catalog/layout.d.ts +0 -44
- package/es/chat-engine/components/json-render/catalog/layout.js +0 -129
- package/es/chat-engine/components/json-render/catalog/layout.js.map +0 -1
- package/es/chat-engine/components/json-render/catalog/text.d.ts +0 -11
- package/es/chat-engine/components/json-render/catalog/text.js +0 -31
- package/es/chat-engine/components/json-render/catalog/text.js.map +0 -1
- package/es/chat-engine/components/json-render/catalog.d.ts +0 -614
- package/es/chat-engine/components/json-render/catalog.js +0 -779
- package/es/chat-engine/components/json-render/catalog.js.map +0 -1
- package/es/chat-engine/components/json-render/config.d.ts +0 -154
- package/es/chat-engine/components/json-render/config.js +0 -36
- package/es/chat-engine/components/json-render/config.js.map +0 -1
- package/es/chat-engine/components/json-render/engine.d.ts +0 -58
- package/es/chat-engine/components/json-render/engine.js +0 -88
- package/es/chat-engine/components/json-render/engine.js.map +0 -1
- package/es/chat-engine/components/json-render/performance.d.ts +0 -91
- package/es/chat-engine/components/json-render/performance.js +0 -135
- package/es/chat-engine/components/json-render/performance.js.map +0 -1
- package/es/chat-engine/components/json-render/renderer/index.d.ts +0 -71
- package/es/chat-engine/components/json-render/renderer/index.js +0 -125
- package/es/chat-engine/components/json-render/renderer/index.js.map +0 -1
- package/es/chat-engine/components/json-render/renderer.d.ts +0 -71
- package/es/chat-engine/components/json-render/renderer.js +0 -124
- package/es/chat-engine/components/json-render/renderer.js.map +0 -1
- package/es/chat-engine/core/a2ui/index.d.ts +0 -10
- package/es/chat-engine/core/a2ui/index.js +0 -24
- package/es/chat-engine/core/a2ui/index.js.map +0 -1
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +0 -197
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +0 -438
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +0 -1
- package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +0 -53
- package/es/chat-engine/core/a2ui/processor/ComponentTree.js +0 -158
- package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +0 -1
- package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +0 -63
- package/es/chat-engine/core/a2ui/processor/DataStore.js +0 -172
- package/es/chat-engine/core/a2ui/processor/DataStore.js.map +0 -1
- package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +0 -47
- package/es/chat-engine/core/a2ui/processor/PathResolver.js +0 -99
- package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +0 -1
- package/es/chat-engine/core/a2ui/types/index.d.ts +0 -4
- package/es/chat-engine/core/a2ui/types/index.js +0 -9
- package/es/chat-engine/core/a2ui/types/index.js.map +0 -1
- package/es/chat-engine/core/a2ui/types/types.d.ts +0 -770
- package/es/chat-engine/core/a2ui/types/types.js +0 -104
- package/es/chat-engine/core/a2ui/types/types.js.map +0 -1
- package/es/chat-engine/core/a2ui/utils/binding.d.ts +0 -34
- package/es/chat-engine/core/a2ui/utils/binding.js +0 -1784
- package/es/chat-engine/core/a2ui/utils/binding.js.map +0 -1
- package/es/chat-engine/core/a2ui/utils/index.d.ts +0 -5
- package/es/chat-engine/core/a2ui/utils/index.js +0 -13
- package/es/chat-engine/core/a2ui/utils/index.js.map +0 -1
- package/es/chat-engine/core/a2ui/utils/validation.d.ts +0 -70
- package/es/chat-engine/core/a2ui/utils/validation.js +0 -333
- package/es/chat-engine/core/a2ui/utils/validation.js.map +0 -1
- package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +0 -102
- package/es/chat-engine/core/adapters/agui/activity-manager.js +0 -150
- package/es/chat-engine/core/adapters/agui/activity-manager.js.map +0 -1
- package/es/chat-engine/core/adapters/agui/events.d.ts +0 -1550
- package/es/chat-engine/core/adapters/agui/events.js +0 -199
- package/es/chat-engine/core/adapters/agui/events.js.map +0 -1
- package/es/chat-engine/core/adapters/agui/state-manager.d.ts +0 -99
- package/es/chat-engine/core/adapters/agui/state-manager.js +0 -174
- package/es/chat-engine/core/adapters/agui/state-manager.js.map +0 -1
- package/es/chat-engine/core/adapters/agui/types.d.ts +0 -818
- package/es/chat-engine/core/adapters/agui/types.js +0 -95
- package/es/chat-engine/core/adapters/agui/types.js.map +0 -1
- package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +0 -90
- package/es/chat-engine/hooks/a2ui/A2UIContext.js +0 -97
- package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +0 -1
- package/es/chat-engine/hooks/a2ui/index.d.ts +0 -12
- package/es/chat-engine/hooks/a2ui/index.js +0 -19
- package/es/chat-engine/hooks/a2ui/index.js.map +0 -1
- package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +0 -40
- package/es/chat-engine/hooks/a2ui/useA2UIAction.js +0 -74
- package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +0 -1
- package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +0 -36
- package/es/chat-engine/hooks/a2ui/useA2UISurface.js +0 -39
- package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +0 -1
- package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +0 -53
- package/es/chat-engine/hooks/a2ui/useDataBinding.js +0 -111
- package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +0 -1
- package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +0 -56
- package/es/chat-engine/hooks/useJsonRenderActivity.js +0 -63
- package/es/chat-engine/hooks/useJsonRenderActivity.js.map +0 -1
- package/es/chat-filecard/_example-js/base.d.ts +0 -1
- package/es/chat-loading/_example-js/base.d.ts +0 -2
- package/es/chat-loading/_example-js/text.d.ts +0 -2
- package/es/chat-markdown/_example-js/base.d.ts +0 -1
- package/es/chat-markdown/_example-js/custom.d.ts +0 -2
- package/es/chat-markdown/_example-js/event.d.ts +0 -1
- package/es/chat-markdown/_example-js/footnote.d.ts +0 -2
- package/es/chat-markdown/_example-js/plugin.d.ts +0 -2
- package/es/chat-markdown/_example-js/theme.d.ts +0 -2
- package/es/chat-message/_example-js/action.d.ts +0 -1
- package/es/chat-message/_example-js/base.d.ts +0 -1
- package/es/chat-message/_example-js/configure.d.ts +0 -1
- package/es/chat-message/_example-js/content.d.ts +0 -1
- package/es/chat-message/_example-js/custom.d.ts +0 -1
- package/es/chat-message/_example-js/handle-actions.d.ts +0 -7
- package/es/chat-message/_example-js/status.d.ts +0 -1
- package/es/chat-message/_example-js/think.d.ts +0 -1
- package/es/chat-sender/_example-js/attachment.d.ts +0 -2
- package/es/chat-sender/_example-js/base.d.ts +0 -2
- package/es/chat-sender/_example-js/custom.d.ts +0 -2
- package/es/chat-thinking/_example-js/base.d.ts +0 -1
- package/es/chat-thinking/_example-js/style.d.ts +0 -1
- package/es/chatbot/_example-js/agent.d.ts +0 -1
- package/es/chatbot/_example-js/agui.d.ts +0 -13
- package/es/chatbot/_example-js/backup/travel.d.ts +0 -1
- package/es/chatbot/_example-js/basic.d.ts +0 -1
- package/es/chatbot/_example-js/code.d.ts +0 -1
- package/es/chatbot/_example-js/components/ItineraryCard.d.ts +0 -3
- package/es/chatbot/_example-js/components/login.d.ts +0 -1
- package/es/chatbot/_example-js/comprehensive.d.ts +0 -1
- package/es/chatbot/_example-js/custom-content.d.ts +0 -1
- package/es/chatbot/_example-js/custom-merge.d.ts +0 -1
- package/es/chatbot/_example-js/custom.d.ts +0 -1
- package/es/chatbot/_example-js/docs.d.ts +0 -1
- package/es/chatbot/_example-js/image.d.ts +0 -1
- package/es/chatbot/_example-js/initial-messages.d.ts +0 -9
- package/es/chatbot/_example-js/instance-methods.d.ts +0 -14
- package/es/chatbot/_example-js/nostream.d.ts +0 -1
- package/es/chatbot/_example-js/quick-start.d.ts +0 -9
- package/es/chatbot/_example-js/research.d.ts +0 -1
- package/es/chatbot/_example-js/role-message-config.d.ts +0 -22
- package/es/chatbot/_example-js/sender-config.d.ts +0 -20
- package/es/chatbot/_example-js/service-config.d.ts +0 -17
- package/es/chatbot/_example-js/simple.d.ts +0 -1
- package/es/chatbot/_example-js/utils/messageRenderer.d.ts +0 -5
- package/es/chatbot/docs/react-best-practice.d.ts +0 -13
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* tdesign v1.1.0-alpha.
|
|
2
|
+
* tdesign v1.1.0-alpha.17
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -25,8 +25,8 @@ import '../../hooks/useAgentState.js';
|
|
|
25
25
|
import '../../core/index.js';
|
|
26
26
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
27
27
|
import '../../core/adapters/agui/index.js';
|
|
28
|
-
import '@babel/runtime/helpers/toConsumableArray';
|
|
29
28
|
import '../../core/adapters/agui/event-mapper.js';
|
|
29
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
30
30
|
import '../../core/adapters/agui/types/index.js';
|
|
31
31
|
import 'zod';
|
|
32
32
|
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
@@ -40,7 +40,7 @@ import '../../core/adapters/agui/utils.js';
|
|
|
40
40
|
import '../../core/store/message.js';
|
|
41
41
|
import '@babel/runtime/helpers/get';
|
|
42
42
|
import '../../core/store/reactiveState.js';
|
|
43
|
-
import '../../../_chunks/dep-
|
|
43
|
+
import '../../../_chunks/dep-907337f3.js';
|
|
44
44
|
import '../../core/event-bus/index.js';
|
|
45
45
|
import '../../core/event-bus/ChatEventBus.js';
|
|
46
46
|
import '../../core/event-bus/types.js';
|
|
@@ -55,8 +55,12 @@ import '../../core/server/sse-client.js';
|
|
|
55
55
|
import '../../core/server/connection-manager.js';
|
|
56
56
|
import '../../core/server/sse-parser.js';
|
|
57
57
|
import '../../core/server/types.js';
|
|
58
|
-
import '../../core/adapters/openclaw/index.js';
|
|
59
58
|
import '../../core/server/websocket-client.js';
|
|
59
|
+
import '../../core/stream-handlers/index.js';
|
|
60
|
+
import '../../core/stream-handlers/default-stream-handler.js';
|
|
61
|
+
import '../../core/stream-handlers/agui-stream-handler.js';
|
|
62
|
+
import '../../core/stream-handlers/openclaw-stream-handler.js';
|
|
63
|
+
import '../../core/adapters/openclaw/index.js';
|
|
60
64
|
import '../../core/adapters/openclaw/event-mapper.js';
|
|
61
65
|
import '../../core/adapters/openclaw/types/events.js';
|
|
62
66
|
import '../../core/adapters/shared/index.js';
|
|
@@ -66,6 +70,8 @@ import '../../core/adapters/shared/activity-manager.js';
|
|
|
66
70
|
import '../../core/adapters/openclaw/rpc-handler.js';
|
|
67
71
|
import '../../core/adapters/openclaw/types/config.js';
|
|
68
72
|
import '../../core/adapters/openclaw/utils.js';
|
|
73
|
+
import '../../core/adapters/openclaw/history-converter.js';
|
|
74
|
+
import '../../core/adapters/openclaw/device-key-manager.js';
|
|
69
75
|
import '../../core/adapters/openclaw/types/index.js';
|
|
70
76
|
import '../../core/adapters/openclaw/types/messages.js';
|
|
71
77
|
import '../../core/adapters/index.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.1.0-alpha.
|
|
2
|
+
* tdesign v1.1.0-alpha.17
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -39,7 +39,7 @@ import '@babel/runtime/helpers/wrapNativeSuper';
|
|
|
39
39
|
import '../../core/store/message.js';
|
|
40
40
|
import '@babel/runtime/helpers/get';
|
|
41
41
|
import '../../core/store/reactiveState.js';
|
|
42
|
-
import '../../../_chunks/dep-
|
|
42
|
+
import '../../../_chunks/dep-907337f3.js';
|
|
43
43
|
import '../../core/event-bus/index.js';
|
|
44
44
|
import '../../core/event-bus/ChatEventBus.js';
|
|
45
45
|
import '../../core/event-bus/types.js';
|
|
@@ -54,8 +54,12 @@ import '../../core/server/sse-client.js';
|
|
|
54
54
|
import '../../core/server/connection-manager.js';
|
|
55
55
|
import '../../core/server/sse-parser.js';
|
|
56
56
|
import '../../core/server/types.js';
|
|
57
|
-
import '../../core/adapters/openclaw/index.js';
|
|
58
57
|
import '../../core/server/websocket-client.js';
|
|
58
|
+
import '../../core/stream-handlers/index.js';
|
|
59
|
+
import '../../core/stream-handlers/default-stream-handler.js';
|
|
60
|
+
import '../../core/stream-handlers/agui-stream-handler.js';
|
|
61
|
+
import '../../core/stream-handlers/openclaw-stream-handler.js';
|
|
62
|
+
import '../../core/adapters/openclaw/index.js';
|
|
59
63
|
import '../../core/adapters/openclaw/event-mapper.js';
|
|
60
64
|
import '../../core/adapters/openclaw/types/events.js';
|
|
61
65
|
import '../../core/adapters/shared/index.js';
|
|
@@ -65,6 +69,8 @@ import '../../core/adapters/shared/activity-manager.js';
|
|
|
65
69
|
import '../../core/adapters/openclaw/rpc-handler.js';
|
|
66
70
|
import '../../core/adapters/openclaw/types/config.js';
|
|
67
71
|
import '../../core/adapters/openclaw/utils.js';
|
|
72
|
+
import '../../core/adapters/openclaw/history-converter.js';
|
|
73
|
+
import '../../core/adapters/openclaw/device-key-manager.js';
|
|
68
74
|
import '../../core/adapters/openclaw/types/index.js';
|
|
69
75
|
import '../../core/adapters/openclaw/types/messages.js';
|
|
70
76
|
import '../../core/adapters/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sources":["../../../../../pro-components/chat/chat-engine/components/toolcall/render.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { isNonInteractiveConfig, type ToolcallComponentProps } from './types';\nimport { agentToolcallRegistry, TOOLCALL_REGISTERED_EVENT, TOOLCALL_EVENT_DETAIL_KEY } from './registry';\nimport { ComponentErrorBoundary, useRegistrationListener } from '../shared';\nimport { AgentStateContext, useAgentStateDataByKey } from '../../hooks/useAgentState';\nimport { AGUIEventType, ToolCall } from '../../core';\n\ninterface ToolCallRendererProps {\n toolCall: ToolCall;\n onRespond?: (toolCall: ToolCall, response: any) => void;\n}\n\nexport const ToolCallRenderer = React.memo<ToolCallRendererProps>(\n ({ toolCall, onRespond }) => {\n const [actionState, setActionState] = useState<{\n status: ToolcallComponentProps['status'];\n result?: any;\n error?: Error;\n }>({\n status: 'idle',\n });\n\n // 缓存配置获取\n const config = useMemo(() => {\n const cfg = agentToolcallRegistry.get(toolCall.toolCallName);\n return cfg;\n }, [toolCall.toolCallName]);\n\n // 使用公共 Hook 监听动态注册\n const { MemoizedComponent } = useRegistrationListener<ToolcallComponentProps>({\n componentKey: toolCall.toolCallName,\n eventName: TOOLCALL_REGISTERED_EVENT,\n eventDetailKey: TOOLCALL_EVENT_DETAIL_KEY,\n getRenderFunction: agentToolcallRegistry.getRenderFunction,\n });\n\n // 缓存参数解析\n const args = useMemo(() => {\n try {\n return toolCall.args ? JSON.parse(toolCall.args) : {};\n } catch (error) {\n console.error('解析工具调用参数失败:', error);\n return {};\n }\n }, [toolCall.args]);\n\n const handleRespond = useCallback(\n (response: any) => {\n if (onRespond) {\n onRespond(toolCall, response);\n setActionState((prev) => ({\n ...prev,\n status: 'complete',\n result: response,\n }));\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [toolCall.toolCallId, onRespond],\n );\n\n // 执行 handler(如果存在)- 必须在条件判断之前调用\n useEffect(() => {\n if (!config) return;\n\n if (isNonInteractiveConfig(config)) {\n // 非交互式:执行 handler\n const executeHandler = async () => {\n try {\n setActionState({ status: 'executing' });\n\n // 解析后端返回的结果作为 handler 的第二个参数\n let backendResult;\n if (toolCall.result) {\n try {\n backendResult = JSON.parse(toolCall.result);\n } catch (error) {\n console.warn('解析后端结果失败,使用原始字符串:', error);\n backendResult = toolCall.result;\n }\n }\n\n // 调用 handler,传入 args 和 backendResult\n const result = await config.handler(args, backendResult);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n };\n\n executeHandler();\n } else if (toolCall.result) {\n // 交互式:已有结果,显示完成状态\n try {\n const result = JSON.parse(toolCall.result);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n } else if (\n toolCall.eventType === AGUIEventType.TOOL_CALL_END ||\n toolCall.eventType === AGUIEventType.TOOL_CALL_RESULT\n ) {\n // 工具调用已结束(无 result 的情况,如 show_progress)\n setActionState({ status: 'complete' });\n } else {\n // 等待用户交互或工具执行中\n setActionState({ status: 'executing' });\n }\n }, [config, args, toolCall.result, toolCall.eventType]);\n\n // 从配置中获取 subscribeKey 提取函数\n const subscribeKeyExtractor = useMemo(() => config?.subscribeKey, [config]);\n\n // 使用配置的提取函数来获取 targetStateKey\n const targetStateKey = useMemo(() => {\n if (!subscribeKeyExtractor) return undefined;\n\n // 构造完整的 props 对象传给提取函数\n const fullProps = {\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n };\n\n return subscribeKeyExtractor(fullProps);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribeKeyExtractor, args, actionState]);\n\n // 使用精确订阅\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n // 缓存组件 props\n const componentProps = useMemo<ToolcallComponentProps>(\n () => ({\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n agentState,\n }),\n [actionState.status, args, actionState.result, actionState.error, handleRespond, agentState],\n );\n\n if (!MemoizedComponent) {\n return null;\n }\n\n return (\n <ComponentErrorBoundary componentName={toolCall.toolCallName} logPrefix=\"ToolCallRenderer\">\n <MemoizedComponent {...componentProps} />\n </ComponentErrorBoundary>\n );\n },\n (prevProps, nextProps) =>\n prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId &&\n prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName &&\n prevProps.toolCall.args === nextProps.toolCall.args &&\n prevProps.toolCall.result === nextProps.toolCall.result &&\n prevProps.toolCall.eventType === nextProps.toolCall.eventType &&\n prevProps.onRespond === nextProps.onRespond,\n);\n\n// 定义增强后的 Props 类型\ntype WithAgentStateProps<P> = P & { agentState?: Record<string, any> };\n\nexport const withAgentStateToolcall1 = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => (\n <AgentStateContext.Consumer>\n {(context) => {\n if (!context) {\n console.warn('AgentStateContext not found, component will render without state');\n return <Component {...props} />;\n }\n\n return <Component {...props} agentState={context.stateMap} />;\n }}\n </AgentStateContext.Consumer>\n );\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n\nexport const withAgentStateToolcall = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n subscribeKeyExtractor?: (props: P) => string | undefined,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => {\n // 计算需要订阅的 stateKey\n const targetStateKey = useMemo(() => (subscribeKeyExtractor ? subscribeKeyExtractor(props) : undefined), [props]);\n\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n return <Component {...props} agentState={agentState} />;\n };\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n"],"names":["ToolCallRenderer","React","memo","_ref","toolCall","onRespond","_useState","useState","status","_useState2","_slicedToArray","actionState","setActionState","config","useMemo","cfg","agentToolcallRegistry","get","toolCallName","_useRegistrationListe","useRegistrationListener","componentKey","eventName","TOOLCALL_REGISTERED_EVENT","eventDetailKey","TOOLCALL_EVENT_DETAIL_KEY","getRenderFunction","MemoizedComponent","args","JSON","parse","error","console","handleRespond","useCallback","response","prev","_objectSpread","result","toolCallId","useEffect","isNonInteractiveConfig","executeHandler","_callee","backendResult","_t","_regeneratorRuntime","wrap","_context","next","warn","handler","sent","stop","eventType","AGUIEventType","TOOL_CALL_END","TOOL_CALL_RESULT","subscribeKeyExtractor","subscribeKey","targetStateKey","fullProps","respond","agentState","useAgentStateDataByKey","componentProps","createElement","ComponentErrorBoundary","componentName","logPrefix","prevProps","nextProps","withAgentStateToolcall1","Component","WrappedComponent","props","AgentStateContext","Consumer","context","stateMap","displayName","concat","name","withAgentStateToolcall"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sources":["../../../../../pro-components/chat/chat-engine/components/toolcall/render.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { isNonInteractiveConfig, type ToolcallComponentProps } from './types';\nimport { agentToolcallRegistry, TOOLCALL_REGISTERED_EVENT, TOOLCALL_EVENT_DETAIL_KEY } from './registry';\nimport { ComponentErrorBoundary, useRegistrationListener } from '../shared';\nimport { AgentStateContext, useAgentStateDataByKey } from '../../hooks/useAgentState';\nimport { AGUIEventType, ToolCall } from '../../core';\n\ninterface ToolCallRendererProps {\n toolCall: ToolCall;\n onRespond?: (toolCall: ToolCall, response: any) => void;\n}\n\nexport const ToolCallRenderer = React.memo<ToolCallRendererProps>(\n ({ toolCall, onRespond }) => {\n const [actionState, setActionState] = useState<{\n status: ToolcallComponentProps['status'];\n result?: any;\n error?: Error;\n }>({\n status: 'idle',\n });\n\n // 缓存配置获取\n const config = useMemo(() => {\n const cfg = agentToolcallRegistry.get(toolCall.toolCallName);\n return cfg;\n }, [toolCall.toolCallName]);\n\n // 使用公共 Hook 监听动态注册\n const { MemoizedComponent } = useRegistrationListener<ToolcallComponentProps>({\n componentKey: toolCall.toolCallName,\n eventName: TOOLCALL_REGISTERED_EVENT,\n eventDetailKey: TOOLCALL_EVENT_DETAIL_KEY,\n getRenderFunction: agentToolcallRegistry.getRenderFunction,\n });\n\n // 缓存参数解析\n const args = useMemo(() => {\n try {\n return toolCall.args ? JSON.parse(toolCall.args) : {};\n } catch (error) {\n console.error('解析工具调用参数失败:', error);\n return {};\n }\n }, [toolCall.args]);\n\n const handleRespond = useCallback(\n (response: any) => {\n if (onRespond) {\n onRespond(toolCall, response);\n setActionState((prev) => ({\n ...prev,\n status: 'complete',\n result: response,\n }));\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [toolCall.toolCallId, onRespond],\n );\n\n // 执行 handler(如果存在)- 必须在条件判断之前调用\n useEffect(() => {\n if (!config) return;\n\n if (isNonInteractiveConfig(config)) {\n // 非交互式:执行 handler\n const executeHandler = async () => {\n try {\n setActionState({ status: 'executing' });\n\n // 解析后端返回的结果作为 handler 的第二个参数\n let backendResult;\n if (toolCall.result) {\n try {\n backendResult = JSON.parse(toolCall.result);\n } catch (error) {\n console.warn('解析后端结果失败,使用原始字符串:', error);\n backendResult = toolCall.result;\n }\n }\n\n // 调用 handler,传入 args 和 backendResult\n const result = await config.handler(args, backendResult);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n };\n\n executeHandler();\n } else if (toolCall.result) {\n // 交互式:已有结果,显示完成状态\n try {\n const result = JSON.parse(toolCall.result);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n } else if (\n toolCall.eventType === AGUIEventType.TOOL_CALL_END ||\n toolCall.eventType === AGUIEventType.TOOL_CALL_RESULT\n ) {\n // 工具调用已结束(无 result 的情况,如 show_progress)\n setActionState({ status: 'complete' });\n } else {\n // 等待用户交互或工具执行中\n setActionState({ status: 'executing' });\n }\n }, [config, args, toolCall.result, toolCall.eventType]);\n\n // 从配置中获取 subscribeKey 提取函数\n const subscribeKeyExtractor = useMemo(() => config?.subscribeKey, [config]);\n\n // 使用配置的提取函数来获取 targetStateKey\n const targetStateKey = useMemo(() => {\n if (!subscribeKeyExtractor) return undefined;\n\n // 构造完整的 props 对象传给提取函数\n const fullProps = {\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n };\n\n return subscribeKeyExtractor(fullProps);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribeKeyExtractor, args, actionState]);\n\n // 使用精确订阅\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n // 缓存组件 props\n const componentProps = useMemo<ToolcallComponentProps>(\n () => ({\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n agentState,\n }),\n [actionState.status, args, actionState.result, actionState.error, handleRespond, agentState],\n );\n\n if (!MemoizedComponent) {\n return null;\n }\n\n return (\n <ComponentErrorBoundary componentName={toolCall.toolCallName} logPrefix=\"ToolCallRenderer\">\n <MemoizedComponent {...componentProps} />\n </ComponentErrorBoundary>\n );\n },\n (prevProps, nextProps) =>\n prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId &&\n prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName &&\n prevProps.toolCall.args === nextProps.toolCall.args &&\n prevProps.toolCall.result === nextProps.toolCall.result &&\n prevProps.toolCall.eventType === nextProps.toolCall.eventType &&\n prevProps.onRespond === nextProps.onRespond,\n);\n\n// 定义增强后的 Props 类型\ntype WithAgentStateProps<P> = P & { agentState?: Record<string, any> };\n\nexport const withAgentStateToolcall1 = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => (\n <AgentStateContext.Consumer>\n {(context) => {\n if (!context) {\n console.warn('AgentStateContext not found, component will render without state');\n return <Component {...props} />;\n }\n\n return <Component {...props} agentState={context.stateMap} />;\n }}\n </AgentStateContext.Consumer>\n );\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n\nexport const withAgentStateToolcall = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n subscribeKeyExtractor?: (props: P) => string | undefined,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => {\n // 计算需要订阅的 stateKey\n const targetStateKey = useMemo(() => (subscribeKeyExtractor ? subscribeKeyExtractor(props) : undefined), [props]);\n\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n return <Component {...props} agentState={agentState} />;\n };\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n"],"names":["ToolCallRenderer","React","memo","_ref","toolCall","onRespond","_useState","useState","status","_useState2","_slicedToArray","actionState","setActionState","config","useMemo","cfg","agentToolcallRegistry","get","toolCallName","_useRegistrationListe","useRegistrationListener","componentKey","eventName","TOOLCALL_REGISTERED_EVENT","eventDetailKey","TOOLCALL_EVENT_DETAIL_KEY","getRenderFunction","MemoizedComponent","args","JSON","parse","error","console","handleRespond","useCallback","response","prev","_objectSpread","result","toolCallId","useEffect","isNonInteractiveConfig","executeHandler","_callee","backendResult","_t","_regeneratorRuntime","wrap","_context","next","warn","handler","sent","stop","eventType","AGUIEventType","TOOL_CALL_END","TOOL_CALL_RESULT","subscribeKeyExtractor","subscribeKey","targetStateKey","fullProps","respond","agentState","useAgentStateDataByKey","componentProps","createElement","ComponentErrorBoundary","componentName","logPrefix","prevProps","nextProps","withAgentStateToolcall1","Component","WrappedComponent","props","AgentStateContext","Consumer","context","stateMap","displayName","concat","name","withAgentStateToolcall"],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* tdesign v1.1.0-alpha.
|
|
2
|
+
* tdesign v1.1.0-alpha.17
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
8
7
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
9
8
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
10
9
|
import { AGUIEventMapper } from './event-mapper.js';
|
|
11
10
|
import { AGUIEventType } from './types/index.js';
|
|
12
11
|
export { AGUIError, AGUIEventType, AGUIMessageSchema, ActivityDeltaEventSchema, ActivitySnapshotEventSchema, ContextSchema, CustomEventSchema, EventSchemas, FunctionCallSchema, HistoryMessageSchema, MessagesSnapshotEventSchema, RawEventSchema, RoleSchema, RunAgentInputSchema, RunErrorEventSchema, RunFinishedEventSchema, RunStartedEventSchema, StateDeltaEventSchema, StateSchema, StateSnapshotEventSchema, StepFinishedEventSchema, StepStartedEventSchema, TextMessageChunkEventSchema, TextMessageContentEventSchema, TextMessageEndEventSchema, TextMessageStartEventSchema, ThinkingEndEventSchema, ThinkingStartEventSchema, ThinkingTextMessageContentEventSchema, ThinkingTextMessageEndEventSchema, ThinkingTextMessageStartEventSchema, ToolCallArgsEventSchema, ToolCallChunkEventSchema, ToolCallEndEventSchema, ToolCallResultEventSchema, ToolCallSchema, ToolCallStartEventSchema, ToolSchema, isActivityEvent, isStateEvent, isTextMessageEvent, isThinkingEvent, isToolCallEvent } from './types/index.js';
|
|
13
|
-
import { buildToolCallMap,
|
|
12
|
+
import { buildToolCallMap, processMessageGroup } from './utils.js';
|
|
14
13
|
export { StateManagerImpl, stateManager } from './StateManager.js';
|
|
15
14
|
export { ActivityManagerImpl, activityManager } from './ActivityManager.js';
|
|
15
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
16
16
|
import '@babel/runtime/helpers/defineProperty';
|
|
17
17
|
import 'zod';
|
|
18
18
|
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
@@ -96,57 +96,12 @@ var AGUIAdapter = /*#__PURE__*/function () {
|
|
|
96
96
|
var toolCallMap = buildToolCallMap(historyMessages);
|
|
97
97
|
var currentUserMessage = null;
|
|
98
98
|
var currentGroupMessages = [];
|
|
99
|
-
var
|
|
100
|
-
|
|
101
|
-
messages.forEach(function (msg) {
|
|
102
|
-
if (msg.role === "assistant") {
|
|
103
|
-
var assistantMsg = msg;
|
|
104
|
-
if (assistantMsg.reasoningContent) {
|
|
105
|
-
var reasoningContentResult = processReasoningContent(assistantMsg.reasoningContent);
|
|
106
|
-
if (reasoningContentResult) {
|
|
107
|
-
allContent.push(reasoningContentResult);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
if (assistantMsg.content) {
|
|
111
|
-
allContent.push({
|
|
112
|
-
type: "markdown",
|
|
113
|
-
data: assistantMsg.content
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
if (assistantMsg.toolCalls && assistantMsg.toolCalls.length > 0) {
|
|
117
|
-
var toolCallContents = processToolCalls(assistantMsg.toolCalls, toolCallMap);
|
|
118
|
-
allContent.push.apply(allContent, _toConsumableArray(toolCallContents));
|
|
119
|
-
}
|
|
120
|
-
} else if (msg.role === "activity") {
|
|
121
|
-
var activityMsg = msg;
|
|
122
|
-
if (activityMsg.activityType === AGUIEventType.CUSTOM) {
|
|
123
|
-
var _activityMsg$content, _activityMsg$content2;
|
|
124
|
-
var customContent = {
|
|
125
|
-
type: "custom",
|
|
126
|
-
data: {
|
|
127
|
-
name: ((_activityMsg$content = activityMsg.content) === null || _activityMsg$content === void 0 ? void 0 : _activityMsg$content.name) || "",
|
|
128
|
-
value: (_activityMsg$content2 = activityMsg.content) === null || _activityMsg$content2 === void 0 ? void 0 : _activityMsg$content2.value
|
|
129
|
-
},
|
|
130
|
-
status: "complete"
|
|
131
|
-
};
|
|
132
|
-
allContent.push(customContent);
|
|
133
|
-
} else {
|
|
134
|
-
allContent.push({
|
|
135
|
-
type: "activity-".concat(activityMsg.activityType),
|
|
136
|
-
data: {
|
|
137
|
-
activityType: activityMsg.activityType,
|
|
138
|
-
content: activityMsg.content
|
|
139
|
-
},
|
|
140
|
-
status: "complete"
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
return allContent;
|
|
99
|
+
var processGroup = function processGroup(messages) {
|
|
100
|
+
return processMessageGroup(messages, toolCallMap);
|
|
146
101
|
};
|
|
147
102
|
var createAIMessage = function createAIMessage(messages) {
|
|
148
103
|
if (messages.length > 0) {
|
|
149
|
-
var allContent =
|
|
104
|
+
var allContent = processGroup(messages);
|
|
150
105
|
if (allContent.length > 0) {
|
|
151
106
|
var _messages$at;
|
|
152
107
|
var firstMessageInGroup = messages[0];
|
|
@@ -162,7 +117,21 @@ var AGUIAdapter = /*#__PURE__*/function () {
|
|
|
162
117
|
};
|
|
163
118
|
var processUserContent = function processUserContent(content) {
|
|
164
119
|
if (Array.isArray(content)) {
|
|
165
|
-
return content
|
|
120
|
+
return content.map(function (item) {
|
|
121
|
+
if (item.data !== void 0) {
|
|
122
|
+
return item;
|
|
123
|
+
}
|
|
124
|
+
if (item.type === "text" && item.text !== void 0) {
|
|
125
|
+
return {
|
|
126
|
+
type: "text",
|
|
127
|
+
data: item.text
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
type: item.type || "text",
|
|
132
|
+
data: item.text || item.data || ""
|
|
133
|
+
};
|
|
134
|
+
});
|
|
166
135
|
}
|
|
167
136
|
return [{
|
|
168
137
|
type: "text",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/agui/index.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport type { AIMessageContent, ChatMessagesData, ChatRequestParams, SSEChunkData, ToolCall, UserMessageContent } from '../../type';\nimport { AGUIEventMapper } from './event-mapper';\nimport type { BaseEvent, RunErrorEvent, RunFinishedEvent, RunStartedEvent } from './types/events';\nimport { AGUIEventType } from './types/events';\nimport type { AGUIAssistantHistoryMessage, AGUIHistoryMessage, AGUIUserHistoryMessage, AGUIActivityMessage } from './types';\nimport { buildToolCallMap, processReasoningContent, processToolCalls } from './utils';\n\n// 重新导出类型,以便其他文件可以使用\nexport type {\n AGUIHistoryMessage,\n AGUIUserHistoryMessage,\n AGUIAssistantHistoryMessage,\n AGUIToolHistoryMessage,\n AGUIActivityMessage,\n} from './types';\n\n/**\n * AGUI协议适配器回调接口\n */\nexport interface AGUIAdapterCallbacks {\n onRunStart?: (event: RunStartedEvent) => void;\n onRunComplete?: (isAborted: boolean, params: ChatRequestParams, event?: RunFinishedEvent) => void;\n onRunError?: (error: RunErrorEvent) => void;\n}\n\n/**\n * AGUI协议适配器\n * 1. 处理AGUI协议特定的事件(RUN_STARTED, RUN_FINISHED, RUN_ERROR)\n * 2. 管理工具调用的生命周期\n * 3. 将AGUI事件映射为ChatEngine可理解的消息内容\n * 4. 转换AG-UI历史消息为ChatMessagesData格式\n */\nexport class AGUIAdapter {\n /**\n * 转换AG-UI历史消息为ChatMessagesData格式(静态方法)\n *\n * ## 设计说明\n *\n * ### AG-UI 协议中的消息角色\n * - `user`: 用户消息\n * - `assistant`: AI 回复,可包含 content、reasoningContent、toolCalls\n * - `tool`: 工具调用结果,通过 toolCallId 关联到 assistant 的 toolCalls\n * - `activity`: 独立的活动/事件消息,表示代理运行过程中的中间状态\n *\n * ### Activity 消息的处理策略\n * Activity 在 AG-UI 中是独立的 role,不是 assistant 的附属。\n * 但在 UI 展示层,我们选择将其合并到 AI 响应中,原因:\n * 1. 保持对话气泡的整洁性(一问一答模式)\n * 2. Activity 通常是 AI 处理过程的可视化,属于同一个响应周期\n * 3. 通过 activityType 区分不同类型的 Activity 渲染\n *\n * 转换策略:\n * 1. 以用户消息为边界进行分组\n * 2. 每个用户消息对应一个AI消息,包含该用户输入后的所有AI回复和工具调用结果\n * 3. 按照后端数据的原始顺序构建content数组\n * 4. 避免重复处理同一个工具调用\n * 5. 支持只有assistant消息的情况(如welcome消息)\n *\n * @param historyMessages AG-UI格式的历史消息数组\n * @returns 转换后的ChatMessagesData数组\n */\n static convertHistoryMessages(historyMessages: AGUIHistoryMessage[]): ChatMessagesData[] {\n if (!historyMessages || historyMessages.length === 0) {\n return [];\n }\n const convertedMessages: ChatMessagesData[] = [];\n const toolCallMap = buildToolCallMap(historyMessages);\n\n // 按用户消息分组处理\n let currentUserMessage: AGUIUserHistoryMessage | null = null;\n let currentGroupMessages: AGUIHistoryMessage[] = []; // 存储当前组的所有消息\n\n /**\n * 处理消息组,构建AI消息的content数组\n *\n * 处理顺序(保持原始顺序):\n * 1. assistant 的 reasoningContent(思考过程)\n * 2. assistant 的 content(文本回复)\n * 3. assistant 的 toolCalls(工具调用)\n * 4. activity 消息(活动/状态展示)\n */\n const processMessageGroup = (messages: AGUIHistoryMessage[]): AIMessageContent[] => {\n const allContent: AIMessageContent[] = [];\n\n messages.forEach((msg) => {\n if (msg.role === 'assistant') {\n const assistantMsg = msg as AGUIAssistantHistoryMessage;\n\n // 处理 reasoningContent(支持 reasoning 和 thinking 两种类型)\n if (assistantMsg.reasoningContent) {\n const reasoningContentResult = processReasoningContent(assistantMsg.reasoningContent);\n if (reasoningContentResult) {\n allContent.push(reasoningContentResult);\n }\n }\n\n // 处理普通文本内容\n if (assistantMsg.content) {\n allContent.push({\n type: 'markdown',\n data: assistantMsg.content,\n });\n }\n\n // 处理工具调用内容\n if (assistantMsg.toolCalls && assistantMsg.toolCalls.length > 0) {\n const toolCallContents = processToolCalls(assistantMsg.toolCalls, toolCallMap);\n allContent.push(...(toolCallContents as AIMessageContent[]));\n }\n } else if (msg.role === 'activity') {\n const activityMsg = msg as AGUIActivityMessage;\n \n // 检查是否是存储为 Activity 的 CUSTOM 事件\n if (activityMsg.activityType === AGUIEventType.CUSTOM) {\n // 将存储为 Activity 的 CUSTOM 事件转换为标准 custom 格式,业务层自行处理\n const customContent: any = {\n type: 'custom',\n data: {\n name: activityMsg.content?.name || '',\n value: activityMsg.content?.value,\n },\n status: 'complete',\n };\n allContent.push(customContent);\n } else {\n // 普通 Activity 处理\n // 使用 activity-${activityType} 格式的 type,与流式传输时的处理保持一致\n allContent.push({\n type: `activity-${activityMsg.activityType}`,\n data: {\n activityType: activityMsg.activityType,\n content: activityMsg.content,\n },\n status: 'complete',\n } as any);\n }\n }\n });\n\n return allContent;\n };\n\n /**\n * 创建AI消息\n */\n const createAIMessage = (messages: AGUIHistoryMessage[]): void => {\n if (messages.length > 0) {\n const allContent = processMessageGroup(messages);\n if (allContent.length > 0) {\n const firstMessageInGroup = messages[0];\n convertedMessages.push({\n id: firstMessageInGroup.id,\n role: 'assistant',\n content: allContent,\n status: 'complete',\n datetime: new Date(messages.at(-1)?.timestamp || Date.now()).toISOString(),\n });\n }\n }\n };\n\n /**\n * 处理用户消息的 content 字段\n * 兼容两种格式:\n * 1. 标准 AG-UI 格式:content 是字符串\n * 2. 已转换格式:content 已经是数组 [{ type, data }]\n */\n const processUserContent = (content: any): UserMessageContent[] => {\n // 如果 content 已经是数组格式,直接返回\n if (Array.isArray(content)) {\n return content as UserMessageContent[];\n }\n // 如果是字符串,包装为标准格式\n return [\n {\n type: 'text',\n data: content,\n },\n ];\n };\n\n /**\n * 处理当前消息组\n */\n const flushCurrentGroup = () => {\n if (currentUserMessage) {\n // 添加用户消息\n convertedMessages.push({\n id: currentUserMessage.id,\n role: 'user',\n content: processUserContent(currentUserMessage.content),\n datetime: new Date(currentUserMessage.timestamp || Date.now()).toISOString(),\n });\n }\n // 处理AI消息\n createAIMessage(currentGroupMessages);\n\n // 重置当前组\n currentUserMessage = null;\n currentGroupMessages = [];\n };\n\n // 按顺序处理消息\n historyMessages.forEach((msg) => {\n if (msg.role === 'user') {\n // 遇到新的用户消息,先处理之前的组\n flushCurrentGroup();\n\n // 开始新的组\n currentUserMessage = msg as AGUIUserHistoryMessage;\n } else if (msg.role === 'assistant' || msg.role === 'tool' || msg.role === 'activity') {\n // 收集助手消息、工具调用结果和活动消息到当前组\n currentGroupMessages.push(msg);\n }\n });\n\n // 处理最后一组\n flushCurrentGroup();\n return convertedMessages;\n }\n\n private aguiEventMapper: AGUIEventMapper;\n\n constructor() {\n this.aguiEventMapper = new AGUIEventMapper();\n }\n\n /**\n * 处理AGUI事件\n *\n * 处理流程:\n * 1. 解析SSE数据(AG-UI后端返回标准SSE格式,data字段是JSON字符串)\n * 2. 处理AGUI特定事件(生命周期事件)\n * 3. 使用事件映射器转换为消息内容\n * 4. 同步工具调用状态\n *\n * @param chunk SSE数据块\n * @param callbacks 回调函数\n * @returns 处理结果\n */\n handleAGUIEvent(chunk: SSEChunkData, callbacks: AGUIAdapterCallbacks): AIMessageContent | AIMessageContent[] | null {\n // AG-UI后端返回标准SSE格式,data字段是JSON字符串\n let event: BaseEvent;\n try {\n event = typeof chunk.data === 'string' ? JSON.parse(chunk.data) : chunk.data;\n } catch (error) {\n console.warn('Failed to parse AG-UI event data:', error);\n return null;\n }\n\n if (!event?.type) return null;\n\n // 处理AGUI特定事件(生命周期事件)\n const lifecycleHandled = this.handleAGUISpecificEvents(event, callbacks);\n\n // 如果是生命周期事件,不需要转换为消息内容\n if (lifecycleHandled) {\n return null;\n }\n\n // 使用事件映射器处理内容事件\n const result = this.aguiEventMapper.mapEvent(chunk);\n\n return result;\n }\n\n /**\n * 获取AGUI事件映射器\n */\n get toolcalls() {\n return this.aguiEventMapper.getToolCalls();\n }\n\n getToolcallByName(name: string): ToolCall | undefined {\n const result = this.aguiEventMapper.getToolCalls().find((call) => call.toolCallName === name);\n return result;\n }\n\n /**\n * 重置适配器状态\n */\n reset(): void {\n this.aguiEventMapper.reset();\n }\n\n /**\n * 处理AGUI特定事件\n *\n * 处理RUN_STARTED、RUN_FINISHED、RUN_ERROR等生命周期事件\n * 这些事件用于通知外部系统状态变化,并执行相应的回调\n *\n * @param event 解析后的事件对象\n * @param callbacks 回调函数\n * @returns 是否处理了生命周期事件(仅RUN_STARTED和RUN_FINISHED返回true,RUN_ERROR需要继续处理生成消息内容)\n */\n private handleAGUISpecificEvents(event: BaseEvent, callbacks: AGUIAdapterCallbacks): boolean {\n switch (event.type) {\n case AGUIEventType.RUN_STARTED:\n callbacks.onRunStart?.(event as RunStartedEvent);\n return true;\n case AGUIEventType.RUN_FINISHED:\n callbacks.onRunComplete?.(false, {} as ChatRequestParams, event as RunFinishedEvent);\n return true;\n case AGUIEventType.RUN_ERROR:\n // RUN_ERROR 需要触发回调,但不能返回 true\n // 因为还需要通过 event-mapper 生成错误消息内容用于 UI 展示\n callbacks.onRunError?.(event as RunErrorEvent);\n return false; // 继续处理,让 event-mapper 生成错误消息\n default:\n return false; // 不是生命周期事件\n }\n }\n}\n\n/**\n * 状态订阅机制导出\n */\nexport * from './StateManager';\nexport * from './ActivityManager';\nexport * from './types';\n"],"names":["AGUIAdapter","_classCallCheck","aguiEventMapper","AGUIEventMapper","_createClass","key","value","handleAGUIEvent","chunk","callbacks","_event","event","data","JSON","parse","error","console","warn","type","lifecycleHandled","handleAGUISpecificEvents","result","mapEvent","get","getToolCalls","getToolcallByName","name","find","call","toolCallName","reset","_callbacks$onRunStart","_callbacks$onRunCompl","_callbacks$onRunError","AGUIEventType","RUN_STARTED","onRunStart","RUN_FINISHED","onRunComplete","RUN_ERROR","onRunError","convertHistoryMessages","historyMessages","length","convertedMessages","toolCallMap","buildToolCallMap","currentUserMessage","currentGroupMessages","processMessageGroup","messages","allContent","forEach","msg","role","assistantMsg","reasoningContent","reasoningContentResult","processReasoningContent","push","content","toolCalls","toolCallContents","processToolCalls","apply","_toConsumableArray","activityMsg","activityType","CUSTOM","_activityMsg$content","_activityMsg$content2","customContent","status","concat","createAIMessage","_messages$at","firstMessageInGroup","id","datetime","Date","at","timestamp","now","toISOString","processUserContent","Array","isArray","flushCurrentGroup"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/agui/index.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport type { AIMessageContent, ChatMessagesData, ChatRequestParams, SSEChunkData, ToolCall, UserMessageContent } from '../../type';\nimport { AGUIEventMapper } from './event-mapper';\nimport type { BaseEvent, RunErrorEvent, RunFinishedEvent, RunStartedEvent } from './types/events';\nimport { AGUIEventType } from './types/events';\nimport type { AGUIHistoryMessage, AGUIUserHistoryMessage } from './types';\nimport { buildToolCallMap, processMessageGroup } from './utils';\n\n// 重新导出类型,以便其他文件可以使用\nexport type {\n AGUIHistoryMessage,\n AGUIUserHistoryMessage,\n AGUIAssistantHistoryMessage,\n AGUIToolHistoryMessage,\n AGUIActivityMessage,\n} from './types';\n\n/**\n * AGUI协议适配器回调接口\n */\nexport interface AGUIAdapterCallbacks {\n onRunStart?: (event: RunStartedEvent) => void;\n onRunComplete?: (isAborted: boolean, params: ChatRequestParams, event?: RunFinishedEvent) => void;\n onRunError?: (error: RunErrorEvent) => void;\n}\n\n/**\n * AGUI协议适配器\n * 1. 处理AGUI协议特定的事件(RUN_STARTED, RUN_FINISHED, RUN_ERROR)\n * 2. 管理工具调用的生命周期\n * 3. 将AGUI事件映射为ChatEngine可理解的消息内容\n * 4. 转换AG-UI历史消息为ChatMessagesData格式\n */\nexport class AGUIAdapter {\n /**\n * 转换AG-UI历史消息为ChatMessagesData格式(静态方法)\n *\n * ## 设计说明\n *\n * ### AG-UI 协议中的消息角色\n * - `user`: 用户消息\n * - `assistant`: AI 回复,可包含 content、reasoningContent、toolCalls\n * - `tool`: 工具调用结果,通过 toolCallId 关联到 assistant 的 toolCalls\n * - `activity`: 独立的活动/事件消息,表示代理运行过程中的中间状态\n *\n * ### Activity 消息的处理策略\n * Activity 在 AG-UI 中是独立的 role,不是 assistant 的附属。\n * 但在 UI 展示层,我们选择将其合并到 AI 响应中,原因:\n * 1. 保持对话气泡的整洁性(一问一答模式)\n * 2. Activity 通常是 AI 处理过程的可视化,属于同一个响应周期\n * 3. 通过 activityType 区分不同类型的 Activity 渲染\n *\n * 转换策略:\n * 1. 以用户消息为边界进行分组\n * 2. 每个用户消息对应一个AI消息,包含该用户输入后的所有AI回复和工具调用结果\n * 3. 按照后端数据的原始顺序构建content数组\n * 4. 避免重复处理同一个工具调用\n * 5. 支持只有assistant消息的情况(如welcome消息)\n *\n * @param historyMessages AG-UI格式的历史消息数组\n * @returns 转换后的ChatMessagesData数组\n */\n static convertHistoryMessages(historyMessages: AGUIHistoryMessage[]): ChatMessagesData[] {\n if (!historyMessages || historyMessages.length === 0) {\n return [];\n }\n const convertedMessages: ChatMessagesData[] = [];\n const toolCallMap = buildToolCallMap(historyMessages);\n\n // 按用户消息分组处理\n let currentUserMessage: AGUIUserHistoryMessage | null = null;\n let currentGroupMessages: AGUIHistoryMessage[] = []; // 存储当前组的所有消息\n\n /**\n * 处理消息组,构建AI消息的content数组\n * 复用 utils.ts 中的 processMessageGroup 公共函数\n */\n const processGroup = (messages: AGUIHistoryMessage[]): AIMessageContent[] => {\n return processMessageGroup(messages, toolCallMap) as AIMessageContent[];\n };\n\n /**\n * 创建AI消息\n */\n const createAIMessage = (messages: AGUIHistoryMessage[]): void => {\n if (messages.length > 0) {\n const allContent = processGroup(messages);\n if (allContent.length > 0) {\n const firstMessageInGroup = messages[0];\n convertedMessages.push({\n id: firstMessageInGroup.id,\n role: 'assistant',\n content: allContent,\n status: 'complete',\n datetime: new Date(messages.at(-1)?.timestamp || Date.now()).toISOString(),\n });\n }\n }\n };\n\n /**\n * 处理用户消息的 content 字段\n * 兼容三种格式:\n * 1. 标准 AG-UI 格式:content 是字符串\n * 2. 后端返回格式:content 是数组 [{ type, text }](text 字段存储文本)\n * 3. 已转换格式:content 已经是数组 [{ type, data }]\n */\n const processUserContent = (content: any): UserMessageContent[] => {\n // 如果 content 已经是数组格式,需要做字段适配\n if (Array.isArray(content)) {\n return content.map((item: any) => {\n // 如果已经有 data 字段,说明已经是 ChatEngine 格式\n if (item.data !== undefined) {\n return item as UserMessageContent;\n }\n // 后端返回的格式用 text 字段存储文本,需要映射为 data 字段\n if (item.type === 'text' && item.text !== undefined) {\n return {\n type: 'text' as const,\n data: item.text,\n };\n }\n // 其他类型的数组元素,尝试用 text 字段兜底\n return {\n type: item.type || 'text',\n data: item.text || item.data || '',\n } as UserMessageContent;\n });\n }\n // 如果是字符串,包装为标准格式\n return [\n {\n type: 'text',\n data: content,\n },\n ];\n };\n\n /**\n * 处理当前消息组\n */\n const flushCurrentGroup = () => {\n if (currentUserMessage) {\n // 添加用户消息\n convertedMessages.push({\n id: currentUserMessage.id,\n role: 'user',\n content: processUserContent(currentUserMessage.content),\n datetime: new Date(currentUserMessage.timestamp || Date.now()).toISOString(),\n });\n }\n // 处理AI消息\n createAIMessage(currentGroupMessages);\n\n // 重置当前组\n currentUserMessage = null;\n currentGroupMessages = [];\n };\n\n // 按顺序处理消息\n historyMessages.forEach((msg) => {\n if (msg.role === 'user') {\n // 遇到新的用户消息,先处理之前的组\n flushCurrentGroup();\n\n // 开始新的组\n currentUserMessage = msg as AGUIUserHistoryMessage;\n } else if (msg.role === 'assistant' || msg.role === 'tool' || msg.role === 'activity') {\n // 收集助手消息、工具调用结果和活动消息到当前组\n currentGroupMessages.push(msg);\n }\n });\n\n // 处理最后一组\n flushCurrentGroup();\n return convertedMessages;\n }\n\n private aguiEventMapper: AGUIEventMapper;\n\n constructor() {\n this.aguiEventMapper = new AGUIEventMapper();\n }\n\n /**\n * 处理AGUI事件\n *\n * 处理流程:\n * 1. 解析SSE数据(AG-UI后端返回标准SSE格式,data字段是JSON字符串)\n * 2. 处理AGUI特定事件(生命周期事件)\n * 3. 使用事件映射器转换为消息内容\n * 4. 同步工具调用状态\n *\n * @param chunk SSE数据块\n * @param callbacks 回调函数\n * @returns 处理结果\n */\n handleAGUIEvent(chunk: SSEChunkData, callbacks: AGUIAdapterCallbacks): AIMessageContent | AIMessageContent[] | null {\n // AG-UI后端返回标准SSE格式,data字段是JSON字符串\n let event: BaseEvent;\n try {\n event = typeof chunk.data === 'string' ? JSON.parse(chunk.data) : chunk.data;\n } catch (error) {\n console.warn('Failed to parse AG-UI event data:', error);\n return null;\n }\n\n if (!event?.type) return null;\n\n // 处理AGUI特定事件(生命周期事件)\n const lifecycleHandled = this.handleAGUISpecificEvents(event, callbacks);\n\n // 如果是生命周期事件,不需要转换为消息内容\n if (lifecycleHandled) {\n return null;\n }\n\n // 使用事件映射器处理内容事件\n const result = this.aguiEventMapper.mapEvent(chunk);\n\n return result;\n }\n\n /**\n * 获取AGUI事件映射器\n */\n get toolcalls() {\n return this.aguiEventMapper.getToolCalls();\n }\n\n getToolcallByName(name: string): ToolCall | undefined {\n const result = this.aguiEventMapper.getToolCalls().find((call) => call.toolCallName === name);\n return result;\n }\n\n /**\n * 重置适配器状态\n */\n reset(): void {\n this.aguiEventMapper.reset();\n }\n\n /**\n * 处理AGUI特定事件\n *\n * 处理RUN_STARTED、RUN_FINISHED、RUN_ERROR等生命周期事件\n * 这些事件用于通知外部系统状态变化,并执行相应的回调\n *\n * @param event 解析后的事件对象\n * @param callbacks 回调函数\n * @returns 是否处理了生命周期事件(仅RUN_STARTED和RUN_FINISHED返回true,RUN_ERROR需要继续处理生成消息内容)\n */\n private handleAGUISpecificEvents(event: BaseEvent, callbacks: AGUIAdapterCallbacks): boolean {\n switch (event.type) {\n case AGUIEventType.RUN_STARTED:\n callbacks.onRunStart?.(event as RunStartedEvent);\n return true;\n case AGUIEventType.RUN_FINISHED:\n callbacks.onRunComplete?.(false, {} as ChatRequestParams, event as RunFinishedEvent);\n return true;\n case AGUIEventType.RUN_ERROR:\n // RUN_ERROR 需要触发回调,但不能返回 true\n // 因为还需要通过 event-mapper 生成错误消息内容用于 UI 展示\n callbacks.onRunError?.(event as RunErrorEvent);\n return false; // 继续处理,让 event-mapper 生成错误消息\n default:\n return false; // 不是生命周期事件\n }\n }\n}\n\n/**\n * 状态订阅机制导出\n */\nexport * from './StateManager';\nexport * from './ActivityManager';\nexport * from './types';\n"],"names":["AGUIAdapter","_classCallCheck","aguiEventMapper","AGUIEventMapper","_createClass","key","value","handleAGUIEvent","chunk","callbacks","_event","event","data","JSON","parse","error","console","warn","type","lifecycleHandled","handleAGUISpecificEvents","result","mapEvent","get","getToolCalls","getToolcallByName","name","find","call","toolCallName","reset","_callbacks$onRunStart","_callbacks$onRunCompl","_callbacks$onRunError","AGUIEventType","RUN_STARTED","onRunStart","RUN_FINISHED","onRunComplete","RUN_ERROR","onRunError","convertHistoryMessages","historyMessages","length","convertedMessages","toolCallMap","buildToolCallMap","currentUserMessage","currentGroupMessages","processGroup","messages","processMessageGroup","createAIMessage","allContent","_messages$at","firstMessageInGroup","push","id","role","content","status","datetime","Date","at","timestamp","now","toISOString","processUserContent","Array","isArray","map","item","text","flushCurrentGroup","forEach","msg"],"mappings":"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"}
|
|
@@ -18,10 +18,33 @@ export declare function extractStateKeyFromDelta(event: {
|
|
|
18
18
|
type: string;
|
|
19
19
|
delta?: any[];
|
|
20
20
|
}): string | null;
|
|
21
|
+
/**
|
|
22
|
+
* 处理一组 AG-UI 标准格式的消息,转换为前端内部的 AIMessageContent[] 格式
|
|
23
|
+
*
|
|
24
|
+
* 这是 convertHistoryMessages 和 handleMessagesSnapshot 的共享核心逻辑。
|
|
25
|
+
* 处理顺序(保持原始顺序):
|
|
26
|
+
* 1. assistant 的 reasoningContent(思考过程)
|
|
27
|
+
* 2. assistant 的 content(文本回复)
|
|
28
|
+
* 3. assistant 的 toolCalls(工具调用,关联 tool 消息的结果)
|
|
29
|
+
* 4. activity 消息(活动/状态展示)
|
|
30
|
+
*
|
|
31
|
+
* @param messages 一组 AG-UI 标准格式的消息(assistant、tool、activity 等)
|
|
32
|
+
* @param toolCallMap 工具调用结果映射(通过 buildToolCallMap 构建)
|
|
33
|
+
* @returns 转换后的 AIMessageContent 数组
|
|
34
|
+
*/
|
|
35
|
+
export declare function processMessageGroup(messages: any[], toolCallMap: Map<string, any>): any[];
|
|
21
36
|
/**
|
|
22
37
|
* 处理消息快照
|
|
23
|
-
*
|
|
24
|
-
*
|
|
38
|
+
*
|
|
39
|
+
* 支持两种场景:
|
|
40
|
+
* 1. 正常流中收到 MESSAGES_SNAPSHOT(如初始化同步)
|
|
41
|
+
* 2. 断点恢复场景:后端推送已产生内容的快照,前端一次性恢复
|
|
42
|
+
*
|
|
43
|
+
* MESSAGES_SNAPSHOT 的 messages 遵循 AG-UI 协议标准格式(AGUIMessage[]),
|
|
44
|
+
* 和历史消息接口返回的格式一致。直接复用 processMessageGroup 进行转换。
|
|
45
|
+
*
|
|
46
|
+
* @param messages 消息数组(来自 MESSAGES_SNAPSHOT 事件的 messages 字段,AG-UI 标准格式)
|
|
47
|
+
* @returns 处理后的消息内容数组,带 _isSnapshot 标记用于区分快照 vs 增量
|
|
25
48
|
*/
|
|
26
49
|
export declare function handleMessagesSnapshot(messages: any[]): any[];
|
|
27
50
|
/**
|