@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-converter.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/history-converter.ts"],"sourcesContent":["/**\n * OpenClaw 历史消息转换器\n *\n * 将 OpenClaw `sessions.history` RPC 返回的消息格式转换为 ChatEngine 的 ChatMessagesData 格式。\n *\n * OpenClaw 历史消息格式(来自实际 Gateway 返回):\n *\n * 1. user 消息:\n * {\n * role: 'user',\n * content: [{ type: 'text', text: '...' }],\n * timestamp: number,\n * senderLabel: string,\n * }\n *\n * 2. assistant 消息:\n * {\n * role: 'assistant',\n * content: [\n * { type: 'text', text: '...' }, // 文本内容\n * { type: 'toolCall', id: '...', name: '...', arguments: {...} }, // 工具调用\n * ],\n * api: string, provider: string, model: string,\n * stopReason: 'stop' | 'toolUse' | 'aborted',\n * timestamp: number,\n * errorMessage?: string,\n * openclawAbort?: { aborted: boolean, origin: string, runId: string },\n * }\n *\n * 3. toolResult 消息:\n * {\n * role: 'toolResult',\n * toolCallId: string,\n * toolName: string,\n * content: [{ type: 'text', text: '...' }],\n * isError: boolean,\n * timestamp: number,\n * }\n */\nimport type {\n ChatMessagesData,\n AIMessageContent,\n TextContent,\n UserMessage,\n AIMessage,\n} from '../../type';\nimport { createToolCallContent } from '../shared';\nimport { generateUUID } from './utils';\n\n// ==================== OpenClaw 历史消息类型 ====================\n\n/**\n * OpenClaw 历史消息内容项\n */\nexport interface OpenClawHistoryContentItem {\n type: string;\n text?: string;\n // toolCall 类型\n id?: string;\n name?: string;\n arguments?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\n/**\n * OpenClaw 历史消息\n */\nexport interface OpenClawHistoryMessage {\n role: 'user' | 'assistant' | 'toolResult' | 'system';\n content?: OpenClawHistoryContentItem[] | string;\n timestamp?: number;\n senderLabel?: string;\n // assistant 专有\n api?: string;\n provider?: string;\n model?: string;\n stopReason?: string;\n errorMessage?: string;\n openclawAbort?: {\n aborted: boolean;\n origin: string;\n runId: string;\n };\n // toolResult 专有\n toolCallId?: string;\n toolName?: string;\n isError?: boolean;\n}\n\n/**\n * OpenClaw sessions.history 响应\n */\nexport interface OpenClawHistoryResponse {\n sessionKey: string;\n sessionId: string;\n messages: OpenClawHistoryMessage[];\n thinkingLevel?: string;\n}\n\n// ==================== 转换器 ====================\n\n/**\n * 将 OpenClaw 历史消息数组转换为 ChatEngine 的 ChatMessagesData 数组\n *\n * 转换策略:\n * 1. user → UserMessage(直接映射文本内容)\n * 2. assistant → AIMessage(文本内容 + toolCall 转为 toolcall content)\n * 3. toolResult → 合并到前一个 assistant 消息的对应 toolcall 中作为 result\n * 4. 跳过空内容和被中止的消息\n * 5. 连续的 assistant 消息(stopReason: 'toolUse' 后跟 toolResult 再跟 assistant)\n * 会被合并为一条完整的 AIMessage\n *\n * @param messages OpenClaw 格式的历史消息数组\n * @param options 转换选项\n * @returns ChatEngine 格式的消息数组\n */\nexport function convertOpenClawHistory(\n messages: OpenClawHistoryMessage[],\n options?: ConvertHistoryOptions,\n): ChatMessagesData[] {\n const result: ChatMessagesData[] = [];\n const toolResultMap = new Map<string, { content: string; isError: boolean }>();\n\n // 第一遍:收集所有 toolResult,建立 toolCallId → result 映射\n for (const msg of messages) {\n if (msg.role === 'toolResult' && msg.toolCallId) {\n const text = extractTextFromContent(msg.content);\n toolResultMap.set(msg.toolCallId, {\n content: text,\n isError: msg.isError ?? false,\n });\n }\n }\n\n // 第二遍:转换消息\n // 用于追踪当前可合并的 assistant 消息\n let pendingAIMessage: AIMessage | null = null;\n\n for (let i = 0; i < messages.length; i++) {\n const msg = messages[i];\n\n switch (msg.role) {\n case 'user': {\n // 先 flush 之前的 pending AI 消息\n if (pendingAIMessage) {\n result.push(pendingAIMessage);\n pendingAIMessage = null;\n }\n const userMsg = convertUserMessage(msg);\n if (userMsg) {\n result.push(userMsg);\n }\n break;\n }\n\n case 'assistant': {\n // 跳过被中止且无内容的消息\n if (isAbortedEmpty(msg)) {\n break;\n }\n\n const aiContents = convertAssistantContent(msg, toolResultMap, options);\n\n if (aiContents.length === 0) {\n break;\n }\n\n if (pendingAIMessage) {\n // 合并到前一个 pending AI 消息中(多轮 tool loop 场景)\n pendingAIMessage.content = [...(pendingAIMessage.content || []), ...aiContents];\n // 更新 status\n if (msg.stopReason === 'stop') {\n pendingAIMessage.status = 'complete';\n }\n } else {\n pendingAIMessage = {\n id: generateUUID(),\n role: 'assistant',\n content: aiContents,\n status: msg.stopReason === 'stop' ? 'complete' : 'complete',\n datetime: msg.timestamp ? new Date(msg.timestamp).toISOString() : undefined,\n ext: {\n model: msg.model,\n provider: msg.provider,\n },\n };\n }\n\n // 如果 stopReason 是 'stop',flush 这个 AI 消息\n // 如果是 'toolUse',保持 pending 等待后续 toolResult + assistant 合并\n if (msg.stopReason === 'stop' || msg.stopReason === 'aborted') {\n if (pendingAIMessage) {\n result.push(pendingAIMessage);\n pendingAIMessage = null;\n }\n }\n break;\n }\n\n case 'toolResult': {\n // toolResult 已经在第一遍收集到 toolResultMap 中\n // 它们会在 convertAssistantContent 时自动关联到对应的 toolCall\n // 这里不需要额外处理\n break;\n }\n\n case 'system': {\n // flush pending\n if (pendingAIMessage) {\n result.push(pendingAIMessage);\n pendingAIMessage = null;\n }\n const text = extractTextFromContent(msg.content);\n if (text) {\n result.push({\n id: generateUUID(),\n role: 'system',\n content: [{ type: 'text', data: text, status: 'complete' }],\n datetime: msg.timestamp ? new Date(msg.timestamp).toISOString() : undefined,\n });\n }\n break;\n }\n\n default:\n break;\n }\n }\n\n // flush 最后一个 pending AI 消息\n if (pendingAIMessage) {\n result.push(pendingAIMessage);\n }\n\n return result;\n}\n\n/**\n * 从 OpenClaw sessions.history 响应体中提取并转换消息\n * 这是一个便捷方法,直接接受 RPC 响应的 payload\n */\nexport function convertOpenClawHistoryResponse(\n response: OpenClawHistoryResponse,\n options?: ConvertHistoryOptions,\n): ChatMessagesData[] {\n return convertOpenClawHistory(response.messages || [], options);\n}\n\n// ==================== 转换选项 ====================\n\nexport interface ConvertHistoryOptions {\n /**\n * 是否将 toolCall 的详细参数和结果展示在 toolcall 组件中\n * 默认 true\n */\n showToolCallDetails?: boolean;\n\n /**\n * 是否跳过被中止的消息\n * 默认 true\n */\n skipAborted?: boolean;\n\n /**\n * 自定义 toolCall 渲染名映射\n * 例如 { 'read': 'file_reader', 'exec': 'command_runner' }\n */\n toolCallNameMap?: Record<string, string>;\n}\n\n// ==================== 内部转换方法 ====================\n\n/**\n * 转换 user 消息\n */\nfunction convertUserMessage(msg: OpenClawHistoryMessage): UserMessage | null {\n const text = extractTextFromContent(msg.content);\n if (!text) return null;\n\n return {\n id: generateUUID(),\n role: 'user',\n content: [{ type: 'text', data: text }],\n datetime: msg.timestamp ? new Date(msg.timestamp).toISOString() : undefined,\n };\n}\n\n/**\n * 转换 assistant 消息的 content 数组为 AIMessageContent 数组\n */\nfunction convertAssistantContent(\n msg: OpenClawHistoryMessage,\n toolResultMap: Map<string, { content: string; isError: boolean }>,\n options?: ConvertHistoryOptions,\n): AIMessageContent[] {\n const contents: AIMessageContent[] = [];\n const contentArr = normalizeContent(msg.content);\n\n for (const item of contentArr) {\n switch (item.type) {\n case 'text': {\n if (item.text) {\n contents.push({\n type: 'text',\n data: item.text,\n status: 'complete',\n } as TextContent);\n }\n break;\n }\n\n case 'toolCall': {\n // 将 OpenClaw 历史中的 toolCall 转换为 ChatEngine 的 toolcall content\n const toolCallId = (item.id || '') as string;\n const toolCallName = getToolCallName(item.name as string, options);\n const rawArgs = item.arguments;\n const argsStr = rawArgs ? (typeof rawArgs === 'string' ? rawArgs : JSON.stringify(rawArgs)) : '';\n\n // 查找对应的 toolResult\n const toolResult = toolResultMap.get(toolCallId);\n const resultStr = toolResult?.content || '';\n\n const toolCall = {\n toolCallId,\n toolCallName,\n eventType: toolResult ? 'TOOL_CALL_RESULT' : 'TOOL_CALL_START',\n parentMessageId: '',\n args: argsStr,\n result: resultStr,\n };\n\n const status = toolResult ? 'complete' : 'complete';\n contents.push(createToolCallContent(toolCall, status, 'append'));\n break;\n }\n\n default:\n // 其他未知类型,尝试作为文本处理\n if (item.text) {\n contents.push({\n type: 'text',\n data: item.text,\n status: 'complete',\n } as TextContent);\n }\n break;\n }\n }\n\n return contents;\n}\n\n/**\n * 从 content 中提取文本\n */\nfunction extractTextFromContent(content: OpenClawHistoryMessage['content']): string {\n if (!content) return '';\n if (typeof content === 'string') return content;\n if (!Array.isArray(content)) return '';\n\n return content\n .filter((c) => c?.type === 'text' && c?.text)\n .map((c) => c.text!)\n .join('');\n}\n\n/**\n * 标准化 content 为数组\n */\nfunction normalizeContent(content: OpenClawHistoryMessage['content']): OpenClawHistoryContentItem[] {\n if (!content) return [];\n if (typeof content === 'string') {\n return [{ type: 'text', text: content }];\n }\n if (Array.isArray(content)) return content;\n return [];\n}\n\n/**\n * 获取映射后的工具名\n */\nfunction getToolCallName(name: string, options?: ConvertHistoryOptions): string {\n if (options?.toolCallNameMap && name in options.toolCallNameMap) {\n return options.toolCallNameMap[name];\n }\n return name || 'unknown';\n}\n\n/**\n * 判断消息是否为被中止的空消息\n */\nfunction isAbortedEmpty(msg: OpenClawHistoryMessage): boolean {\n if (msg.stopReason === 'aborted' || msg.openclawAbort?.aborted) {\n const contentArr = normalizeContent(msg.content);\n // 如果内容为空或只有空文本\n if (contentArr.length === 0) return true;\n const hasContent = contentArr.some((c) => {\n if (c.type === 'text' && c.text) return true;\n if (c.type === 'toolCall') return true;\n return false;\n });\n return !hasContent;\n }\n return false;\n}\n"],"names":["convertOpenClawHistory","messages","options","result","toolResultMap","Map","_iterator","_createForOfIteratorHelper","_step","s","n","done","msg","role","toolCallId","_msg$isError","text","extractTextFromContent","content","set","isError","err","e","f","pendingAIMessage","i","length","push","userMsg","convertUserMessage","isAbortedEmpty","aiContents","convertAssistantContent","concat","_toConsumableArray","stopReason","status","id","generateUUID","datetime","timestamp","Date","toISOString","ext","model","provider","type","data","convertOpenClawHistoryResponse","response","contents","contentArr","normalizeContent","_iterator2","_step2","item","toolCallName","getToolCallName","name","rawArgs","arguments","argsStr","JSON","stringify","toolResult","get","resultStr","toolCall","eventType","parentMessageId","args","createToolCallContent","Array","isArray","filter","c","map","join","toolCallNameMap","_msg$openclawAbort","openclawAbort","aborted","hasContent","some"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoHgB,SAAAA,sBAAAA,CACdC,UACAC,OACoB,EAAA;EACpB,IAAMC,SAA6B,EAAC,CAAA;AAC9B,EAAA,IAAAC,aAAA,sBAAoBC,GAAmD,EAAA,CAAA;AAAA,EAAA,IAAAC,SAAA,GAAAC,0BAAA,CAG3DN,QAAU,CAAA;IAAAO,KAAA,CAAA;AAAA,EAAA,IAAA;IAA5B,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAA4B;AAAA,MAAA,IAAjBC;MACT,IAAIA,IAAI,CAAAC,IAAA,KAAS,YAAgB,IAAAD,IAAA,CAAIE,UAAY,EAAA;AAAA,QAAA,IAAAC,YAAA,CAAA;AACzC,QAAA,IAAAC,KAAA,GAAOC,sBAAuB,CAAAL,IAAA,CAAIM,OAAO,CAAA,CAAA;AACjCd,QAAAA,aAAA,CAAAe,GAAA,CAAIP,KAAIE,UAAY,EAAA;AAChCI,UAAAA,OAAS,EAAAF,KAAA;UACTI,OAAA,EAAA,CAAAL,YAAA,GAASH,KAAIQ,OAAW,MAAAL,IAAAA,IAAAA,YAAA,KAAAA,KAAAA,CAAAA,GAAAA,YAAA,GAAA,KAAA;AAC1B,SAAC,CAAA,CAAA;AACH,OAAA;AACF,KAAA;AAAA,GAAA,CAAA,OAAAM,GAAA,EAAA;IAAAf,SAAA,CAAAgB,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,GAAA,SAAA;AAAAf,IAAAA,SAAA,CAAAiB,CAAA,EAAA,CAAA;AAAA,GAAA;EAIA,IAAIC,gBAAqC,GAAA,IAAA,CAAA;AAEzC,EAAA,KAAA,IAASC,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAxB,QAAA,CAASyB,QAAQD,CAAK,EAAA,EAAA;AACxC,IAAA,IAAMb,MAAMX,QAAS,CAAAwB,CAAA,CAAA,CAAA;IAErB,QAAQb,GAAI,CAAAC,IAAA;AAAA,MAAA,KACL,MAAQ;AAAA,QAAA;AAEX,UAAA,IAAIW,gBAAkB,EAAA;AACpBrB,YAAAA,MAAA,CAAOwB,KAAKH,gBAAgB,CAAA,CAAA;AACTA,YAAAA,gBAAA,GAAA,IAAA,CAAA;AACrB,WAAA;AACM,UAAA,IAAAI,OAAA,GAAUC,mBAAmBjB,GAAG,CAAA,CAAA;AACtC,UAAA,IAAIgB,OAAS,EAAA;AACXzB,YAAAA,MAAA,CAAOwB,KAAKC,OAAO,CAAA,CAAA;AACrB,WAAA;AACA,UAAA,MAAA;AACF,SAAA;AAAA,MAAA,KAEK,WAAa;AAAA,QAAA;AAEZ,UAAA,IAAAE,cAAA,CAAelB,GAAG,CAAG,EAAA;AACvB,YAAA,MAAA;AACF,WAAA;UAEA,IAAMmB,UAAa,GAAAC,uBAAA,CAAwBpB,GAAK,EAAAR,aAAA,EAAeF,OAAO,CAAA,CAAA;AAElE,UAAA,IAAA6B,UAAA,CAAWL,WAAW,CAAG,EAAA;AAC3B,YAAA,MAAA;AACF,WAAA;AAEA,UAAA,IAAIF,gBAAkB,EAAA;AAEHA,YAAAA,gBAAA,CAAAN,OAAA,GAAA,EAAA,CAAAe,MAAA,CAAAC,kBAAA,CAAeV,gBAAA,CAAiBN,WAAW,EAAC,CAAA,EAAAgB,kBAAA,CAAOH,UAAU,CAAA,CAAA,CAAA;AAE1E,YAAA,IAAAnB,GAAA,CAAIuB,eAAe,MAAQ,EAAA;cAC7BX,gBAAA,CAAiBY,MAAS,GAAA,UAAA,CAAA;AAC5B,aAAA;AACF,WAAO,MAAA;AACcZ,YAAAA,gBAAA,GAAA;cACjBa,IAAIC,YAAa,EAAA;AACjBzB,cAAAA,IAAM,EAAA,WAAA;AACNK,cAAAA,OAAS,EAAAa,UAAA;cACTK,MAAQ,EAAAxB,GAAA,CAAIuB,UAAe,KAAA,MAAA,GAAS,UAAa,GAAA,UAAA;AACjDI,cAAAA,QAAA,EAAU3B,IAAI4B,SAAY,GAAA,IAAIC,KAAK7B,GAAI,CAAA4B,SAAS,CAAE,CAAAE,WAAA,EAAgB,GAAA,KAAA,CAAA;AAClEC,cAAAA,GAAK,EAAA;gBACHC,OAAOhC,GAAI,CAAAgC,KAAA;gBACXC,UAAUjC,GAAI,CAAAiC,QAAAA;AAChB,eAAA;aACF,CAAA;AACF,WAAA;UAIA,IAAIjC,GAAI,CAAAuB,UAAA,KAAe,MAAU,IAAAvB,GAAA,CAAIuB,eAAe,SAAW,EAAA;AAC7D,YAAA,IAAIX,gBAAkB,EAAA;AACpBrB,cAAAA,MAAA,CAAOwB,KAAKH,gBAAgB,CAAA,CAAA;AACTA,cAAAA,gBAAA,GAAA,IAAA,CAAA;AACrB,aAAA;AACF,WAAA;AACA,UAAA,MAAA;AACF,SAAA;AAAA,MAAA,KAEK,YAAc;AAAA,QAAA;AAIjB,UAAA,MAAA;AACF,SAAA;AAAA,MAAA,KAEK,QAAU;AAAA,QAAA;AAEb,UAAA,IAAIA,gBAAkB,EAAA;AACpBrB,YAAAA,MAAA,CAAOwB,KAAKH,gBAAgB,CAAA,CAAA;AACTA,YAAAA,gBAAA,GAAA,IAAA,CAAA;AACrB,WAAA;AACM,UAAA,IAAAR,IAAA,GAAOC,sBAAuB,CAAAL,GAAA,CAAIM,OAAO,CAAA,CAAA;AAC/C,UAAA,IAAIF,IAAM,EAAA;YACRb,MAAA,CAAOwB,IAAK,CAAA;cACVU,IAAIC,YAAa,EAAA;AACjBzB,cAAAA,IAAM,EAAA,QAAA;AACNK,cAAAA,OAAA,EAAS,CAAC;AAAE4B,gBAAAA,IAAA,EAAM;AAAQC,gBAAAA,IAAM,EAAA/B,IAAA;AAAMoB,gBAAAA,MAAQ,EAAA,UAAA;AAAW,eAAC,CAAA;AAC1DG,cAAAA,QAAA,EAAU3B,IAAI4B,SAAY,GAAA,IAAIC,KAAK7B,GAAI,CAAA4B,SAAS,CAAE,CAAAE,WAAA,EAAgB,GAAA,KAAA,CAAA;AACpE,aAAC,CAAA,CAAA;AACH,WAAA;AACA,UAAA,MAAA;AACF,SAAA;AAAA,MAAA;AAGE,QAAA,MAAA;AAAA,KAAA;AAEN,GAAA;AAGA,EAAA,IAAIlB,gBAAkB,EAAA;AACpBrB,IAAAA,MAAA,CAAOwB,KAAKH,gBAAgB,CAAA,CAAA;AAC9B,GAAA;AAEO,EAAA,OAAArB,MAAA,CAAA;AACT,CAAA;AAMgB,SAAA6C,8BAAAA,CACdC,UACA/C,OACoB,EAAA;EACpB,OAAOF,sBAAuB,CAAAiD,QAAA,CAAShD,QAAY,IAAA,IAAIC,OAAO,CAAA,CAAA;AAChE,CAAA;AA6BA,SAAS2B,mBAAmBjB,GAAiD,EAAA;AACrE,EAAA,IAAAI,IAAA,GAAOC,sBAAuB,CAAAL,GAAA,CAAIM,OAAO,CAAA,CAAA;AAC/C,EAAA,IAAI,CAACF,IAAA,EAAa,OAAA,IAAA,CAAA;EAEX,OAAA;IACLqB,IAAIC,YAAa,EAAA;AACjBzB,IAAAA,IAAM,EAAA,MAAA;AACNK,IAAAA,SAAS,CAAC;AAAE4B,MAAAA,MAAM,MAAQ;AAAAC,MAAAA,IAAA,EAAM/B,IAAAA;AAAK,KAAC,CAAA;AACtCuB,IAAAA,QAAA,EAAU3B,IAAI4B,SAAY,GAAA,IAAIC,KAAK7B,GAAI,CAAA4B,SAAS,CAAE,CAAAE,WAAA,EAAgB,GAAA,KAAA,CAAA;GACpE,CAAA;AACF,CAAA;AAKA,SAASV,uBAAAA,CACPpB,GACA,EAAAR,aAAA,EACAF,OACoB,EAAA;EACpB,IAAMgD,WAA+B,EAAC,CAAA;AAChC,EAAA,IAAAC,UAAA,GAAaC,gBAAiB,CAAAxC,GAAA,CAAIM,OAAO,CAAA,CAAA;AAAA,EAAA,IAAAmC,UAAA,GAAA9C,0BAAA,CAE5B4C,UAAY,CAAA;IAAAG,MAAA,CAAA;AAAA,EAAA,IAAA;IAA/B,KAAAD,UAAA,CAAA5C,CAAA,EAAA6C,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAA3C,CAAA,EAAAC,EAAAA,IAAA,GAA+B;AAAA,MAAA,IAApB4C;MACT,QAAQA,IAAK,CAAAT,IAAA;AAAA,QAAA,KACN,MAAQ;AAAA,UAAA;YACX,IAAIS,KAAKvC,IAAM,EAAA;cACbkC,QAAA,CAASvB,IAAK,CAAA;AACZmB,gBAAAA,IAAM,EAAA,MAAA;gBACNC,MAAMQ,IAAK,CAAAvC,IAAA;AACXoB,gBAAAA,MAAQ,EAAA,UAAA;AACV,eAAgB,CAAA,CAAA;AAClB,aAAA;AACA,YAAA,MAAA;AACF,WAAA;AAAA,QAAA,KAEK,UAAY;AAAA,UAAA;AAET,YAAA,IAAAtB,UAAA,GAAcyC,KAAKlB,EAAM,IAAA,EAAA,CAAA;YAC/B,IAAMmB,YAAe,GAAAC,eAAA,CAAgBF,IAAK,CAAAG,IAAA,EAAgBxD,OAAO,CAAA,CAAA;AACjE,YAAA,IAAMyD,UAAUJ,IAAK,CAAAK,SAAA,CAAA;AACf,YAAA,IAAAC,OAAA,GAAUF,UAAW,OAAOA,OAAA,KAAY,WAAWA,OAAU,GAAAG,IAAA,CAAKC,SAAU,CAAAJ,OAAO,CAAK,GAAA,EAAA,CAAA;AAGxF,YAAA,IAAAK,UAAA,GAAa5D,aAAc,CAAA6D,GAAA,CAAInD,UAAU,CAAA,CAAA;YACzC,IAAAoD,SAAA,GAAY,CAAAF,uBAAAA,iCAAAA,WAAY9C,OAAW,KAAA,EAAA,CAAA;AAEzC,YAAA,IAAMiD,QAAW,GAAA;AACfrD,cAAAA,UAAA,EAAAA,UAAA;AACA0C,cAAAA,YAAA,EAAAA,YAAA;AACAY,cAAAA,SAAA,EAAWJ,aAAa,kBAAqB,GAAA,iBAAA;AAC7CK,cAAAA,eAAiB,EAAA,EAAA;AACjBC,cAAAA,IAAM,EAAAT,OAAA;AACN1D,cAAAA,MAAQ,EAAA+D,SAAAA;aACV,CAAA;AAEM,YAAA,IAAA9B,MAAA,GAAS4B,aAAa,UAAa,GAAA,UAAA,CAAA;YACzCd,QAAA,CAASvB,IAAK,CAAA4C,qBAAA,CAAsBJ,QAAU,EAAA/B,MAAA,EAAQ,QAAQ,CAAC,CAAA,CAAA;AAC/D,YAAA,MAAA;AACF,WAAA;AAAA,QAAA;UAIE,IAAImB,KAAKvC,IAAM,EAAA;YACbkC,QAAA,CAASvB,IAAK,CAAA;AACZmB,cAAAA,IAAM,EAAA,MAAA;cACNC,MAAMQ,IAAK,CAAAvC,IAAA;AACXoB,cAAAA,MAAQ,EAAA,UAAA;AACV,aAAgB,CAAA,CAAA;AAClB,WAAA;AACA,UAAA,MAAA;AAAA,OAAA;AAEN,KAAA;AAAA,GAAA,CAAA,OAAAf,GAAA,EAAA;IAAAgC,UAAA,CAAA/B,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,GAAA,SAAA;AAAAgC,IAAAA,UAAA,CAAA9B,CAAA,EAAA,CAAA;AAAA,GAAA;AAEO,EAAA,OAAA2B,QAAA,CAAA;AACT,CAAA;AAKA,SAASjC,uBAAuBC,OAAoD,EAAA;AAClF,EAAA,IAAI,CAACA,OAAA,EAAgB,OAAA,EAAA,CAAA;AACrB,EAAA,IAAI,OAAOA,OAAY,KAAA,QAAA,EAAiB,OAAAA,OAAA,CAAA;EACpC,IAAA,CAACsD,KAAM,CAAAC,OAAA,CAAQvD,OAAO,CAAA,EAAU,OAAA,EAAA,CAAA;AAEpC,EAAA,OAAOA,QACJwD,MAAO,CAAA,UAACC,CAAM,EAAA;AAAA,IAAA,OAAA,CAAAA,CAAA,KAAA,IAAA,IAAAA,CAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,CAAA,CAAG7B,UAAS,MAAU,KAAA6B,CAAA,KAAA,IAAA,IAAAA,CAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAA,CAAG3D,IAAI,CAAA,CAAA;AAAA,GAAA,CAAA,CAC3C4D,IAAI,UAACD,CAAA,EAAA;IAAA,OAAMA,EAAE3D,IAAK,CAAA;AAAA,GAAA,CAAA,CAClB6D,KAAK,EAAE,CAAA,CAAA;AACZ,CAAA;AAKA,SAASzB,iBAAiBlC,OAA0E,EAAA;AAClG,EAAA,IAAI,CAACA,OAAA,EAAS,OAAO,EAAC,CAAA;AAClB,EAAA,IAAA,OAAOA,YAAY,QAAU,EAAA;AAC/B,IAAA,OAAO,CAAC;AAAE4B,MAAAA,IAAA,EAAM,MAAQ;AAAA9B,MAAAA,IAAA,EAAME,OAAAA;AAAQ,KAAC,CAAA,CAAA;AACzC,GAAA;EACI,IAAAsD,KAAA,CAAMC,QAAQvD,OAAO,CAAA,EAAU,OAAAA,OAAA,CAAA;AACnC,EAAA,OAAO,EAAC,CAAA;AACV,CAAA;AAKA,SAASuC,eAAAA,CAAgBC,MAAcxD,OAAyC,EAAA;AAC9E,EAAA,IAAIA,OAAS,KAAA,IAAA,IAATA,OAAS,KAAA,KAAA,CAAA,IAATA,OAAS,CAAA4E,eAAA,IAAmBpB,IAAQ,IAAAxD,OAAA,CAAQ4E,eAAiB,EAAA;AAC/D,IAAA,OAAO5E,QAAQ4E,eAAgB,CAAApB,IAAA,CAAA,CAAA;AACjC,GAAA;EACA,OAAOA,IAAQ,IAAA,SAAA,CAAA;AACjB,CAAA;AAKA,SAAS5B,eAAelB,GAAsC,EAAA;AAAA,EAAA,IAAAmE,kBAAA,CAAA;AAC5D,EAAA,IAAInE,GAAI,CAAAuB,UAAA,KAAe,SAAa,KAAA4C,kBAAA,GAAAnE,GAAA,CAAIoE,4DAAJD,kBAAA,CAAmBE,OAAS,EAAA;AACxD,IAAA,IAAA9B,UAAA,GAAaC,gBAAiB,CAAAxC,GAAA,CAAIM,OAAO,CAAA,CAAA;AAE/C,IAAA,IAAIiC,WAAWzB,MAAW,KAAA,CAAA,EAAU,OAAA,IAAA,CAAA;IACpC,IAAMwD,UAAa,GAAA/B,UAAA,CAAWgC,IAAK,CAAA,UAACR,CAAM,EAAA;MACpC,IAAAA,CAAA,CAAE7B,IAAS,KAAA,MAAA,IAAU6B,CAAE,CAAA3D,IAAA,EAAa,OAAA,IAAA,CAAA;AACxC,MAAA,IAAI2D,EAAE7B,IAAS,KAAA,UAAA,EAAmB,OAAA,IAAA,CAAA;AAC3B,MAAA,OAAA,KAAA,CAAA;AACT,KAAC,CAAA,CAAA;AACD,IAAA,OAAO,CAACoC,UAAA,CAAA;AACV,GAAA;AACO,EAAA,OAAA,KAAA,CAAA;AACT;;;;"}
|
|
@@ -11,9 +11,12 @@ import EventEmitter from '../../utils/eventEmitter';
|
|
|
11
11
|
import type { AIMessageContent, ChatRequestParams, SSEChunkData } from '../../type';
|
|
12
12
|
import type { OpenClawConfig } from './types';
|
|
13
13
|
import { OpenClawConnectionState } from './types/events';
|
|
14
|
+
import { type ConvertHistoryOptions } from './history-converter';
|
|
14
15
|
export * from './types';
|
|
15
16
|
export { OpenClawEventMapper, type EventMapResult } from './event-mapper';
|
|
16
17
|
export { OpenClawRPCHandler, RPCError } from './rpc-handler';
|
|
18
|
+
export { DeviceKeyManager, type DeviceKeyPair, type DeviceIdentity } from './device-key-manager';
|
|
19
|
+
export { convertOpenClawHistory, convertOpenClawHistoryResponse, type OpenClawHistoryMessage, type OpenClawHistoryResponse, type ConvertHistoryOptions, } from './history-converter';
|
|
17
20
|
/**
|
|
18
21
|
* OpenClaw 适配器回调接口
|
|
19
22
|
*/
|
|
@@ -30,6 +33,14 @@ export interface OpenClawAdapterCallbacks {
|
|
|
30
33
|
onError?: (error: Error) => void;
|
|
31
34
|
/** 消息内容更新 */
|
|
32
35
|
onMessage?: (content: AIMessageContent | AIMessageContent[]) => void;
|
|
36
|
+
/**
|
|
37
|
+
* 历史消息加载完成
|
|
38
|
+
*
|
|
39
|
+
* OpenClaw Gateway 在 connect 响应中可能附带历史消息(messages 字段),
|
|
40
|
+
* 当检测到历史消息时,适配器会自动将其转换为 ChatEngine 格式并触发此回调。
|
|
41
|
+
* 上层可以通过 chatEngine.setMessages(messages, 'replace') 回填到对话界面。
|
|
42
|
+
*/
|
|
43
|
+
onHistoryLoaded?: (messages: import('../../type').ChatMessagesData[]) => void;
|
|
33
44
|
}
|
|
34
45
|
/**
|
|
35
46
|
* OpenClaw 适配器配置
|
|
@@ -59,11 +70,21 @@ export declare class OpenClawAdapter extends EventEmitter {
|
|
|
59
70
|
private callbacks;
|
|
60
71
|
private isStreaming;
|
|
61
72
|
private currentRequestParams;
|
|
73
|
+
private deviceKeyManager;
|
|
74
|
+
/** 动态传入的认证信息,用于 connect 握手(一次性使用) */
|
|
75
|
+
private pendingAuth;
|
|
62
76
|
constructor(config: OpenClawAdapterConfig);
|
|
63
77
|
/**
|
|
64
78
|
* 设置回调
|
|
65
79
|
*/
|
|
66
80
|
setCallbacks(callbacks: OpenClawAdapterCallbacks): void;
|
|
81
|
+
/**
|
|
82
|
+
* 设置连接认证信息(在 connect 之前调用)
|
|
83
|
+
*
|
|
84
|
+
* 传入的 auth 会在下一次 connect 握手时使用(一次性),
|
|
85
|
+
* 用于从 onRequest 动态获取 token 等认证信息。
|
|
86
|
+
*/
|
|
87
|
+
setConnectAuth(auth: Record<string, unknown>): void;
|
|
67
88
|
/**
|
|
68
89
|
* 连接到 OpenClaw Gateway
|
|
69
90
|
* 等待 WebSocket 连接建立并完成认证握手后才返回
|
|
@@ -115,6 +136,23 @@ export declare class OpenClawAdapter extends EventEmitter {
|
|
|
115
136
|
action: string;
|
|
116
137
|
payload: unknown;
|
|
117
138
|
}): Promise<unknown>;
|
|
139
|
+
/**
|
|
140
|
+
* 获取会话历史消息
|
|
141
|
+
*
|
|
142
|
+
* 通过 OpenClaw 的 sessions.history RPC 方法获取指定会话的历史消息,
|
|
143
|
+
* 并自动转换为 ChatEngine 的 ChatMessagesData 格式。
|
|
144
|
+
*
|
|
145
|
+
* @param sessionKey - 会话标识
|
|
146
|
+
* @param options - 转换选项
|
|
147
|
+
* @returns ChatEngine 格式的消息数组,可直接传给 chatEngine.setMessages() 或 useChat 的 defaultMessages
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```tsx
|
|
151
|
+
* const messages = await adapter.fetchHistory('agent:main:main');
|
|
152
|
+
* chatEngine.setMessages(messages, 'replace');
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
fetchHistory(sessionKey: string, options?: ConvertHistoryOptions): Promise<import('../../type').ChatMessagesData[]>;
|
|
118
156
|
/**
|
|
119
157
|
* 断开连接
|
|
120
158
|
*/
|
|
@@ -153,6 +191,9 @@ export declare class OpenClawAdapter extends EventEmitter {
|
|
|
153
191
|
private handleEventFrame;
|
|
154
192
|
/**
|
|
155
193
|
* 处理连接挑战(握手)
|
|
194
|
+
*
|
|
195
|
+
* 认证成功后,如果 connect 响应中包含 messages 字段(历史消息),
|
|
196
|
+
* 会自动转换为 ChatEngine 格式并触发 onHistoryLoaded 回调。
|
|
156
197
|
*/
|
|
157
198
|
private handleConnectChallenge;
|
|
158
199
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
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 _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
7
8
|
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
8
9
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
9
10
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
@@ -24,6 +25,10 @@ export { DEFAULT_OPENCLAW_CONFIG, mergeOpenClawConfig } from './types/config.js'
|
|
|
24
25
|
import { OpenClawConnectionState, OpenClawEventType } from './types/events.js';
|
|
25
26
|
export { AgentDataType, AgentStreamType, ChatEventState, OpenClawConnectionState, OpenClawEventType, OpenClawMethod } from './types/events.js';
|
|
26
27
|
import { generateUUID, formatWebSocketUrl, parseFrame, getPlatform, getUserAgent, getLocale } from './utils.js';
|
|
28
|
+
import { convertOpenClawHistoryResponse, convertOpenClawHistory } from './history-converter.js';
|
|
29
|
+
export { convertOpenClawHistory, convertOpenClawHistoryResponse } from './history-converter.js';
|
|
30
|
+
import { DeviceKeyManager } from './device-key-manager.js';
|
|
31
|
+
export { DeviceKeyManager } from './device-key-manager.js';
|
|
27
32
|
import './types/index.js';
|
|
28
33
|
export { isEventFrame, isRequestFrame, isResponseFrame } from './types/messages.js';
|
|
29
34
|
import '../../server/errors.js';
|
|
@@ -38,9 +43,9 @@ import '../shared/activity-manager.js';
|
|
|
38
43
|
import '../agui/ActivityManager.js';
|
|
39
44
|
import '../../utils/index.js';
|
|
40
45
|
import '../../utils/immutable-patch.js';
|
|
41
|
-
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
42
46
|
import '@babel/runtime/helpers/toArray';
|
|
43
47
|
|
|
48
|
+
var _excluded = ["auth"];
|
|
44
49
|
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; }
|
|
45
50
|
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; }
|
|
46
51
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
@@ -56,6 +61,8 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
56
61
|
_defineProperty(_this, "callbacks", {});
|
|
57
62
|
_defineProperty(_this, "isStreaming", false);
|
|
58
63
|
_defineProperty(_this, "currentRequestParams", null);
|
|
64
|
+
_defineProperty(_this, "deviceKeyManager", null);
|
|
65
|
+
_defineProperty(_this, "pendingAuth", null);
|
|
59
66
|
_this.adapterConfig = config;
|
|
60
67
|
_this.config = mergeOpenClawConfig(config);
|
|
61
68
|
_this.instanceId = generateUUID();
|
|
@@ -63,6 +70,9 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
63
70
|
timeout: config.timeout
|
|
64
71
|
});
|
|
65
72
|
_this.eventMapper = new OpenClawEventMapper();
|
|
73
|
+
if (_this.config.deviceAuth) {
|
|
74
|
+
_this.deviceKeyManager = new DeviceKeyManager(_this.config.client.id);
|
|
75
|
+
}
|
|
66
76
|
return _this;
|
|
67
77
|
}
|
|
68
78
|
_inherits(OpenClawAdapter, _EventEmitter);
|
|
@@ -71,6 +81,11 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
71
81
|
value: function setCallbacks(callbacks) {
|
|
72
82
|
this.callbacks = callbacks;
|
|
73
83
|
}
|
|
84
|
+
}, {
|
|
85
|
+
key: "setConnectAuth",
|
|
86
|
+
value: function setConnectAuth(auth) {
|
|
87
|
+
this.pendingAuth = auth;
|
|
88
|
+
}
|
|
74
89
|
}, {
|
|
75
90
|
key: "connect",
|
|
76
91
|
value: function () {
|
|
@@ -154,7 +169,7 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
154
169
|
key: "sendMessage",
|
|
155
170
|
value: function () {
|
|
156
171
|
var _sendMessage = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(params, requestParams) {
|
|
157
|
-
var chatParams, _this$callbacks$onSta, _this$callbacks, _this$callbacks$onErr, _this$callbacks2, _t;
|
|
172
|
+
var _ref, _auth, sendParams, chatParams, _this$callbacks$onSta, _this$callbacks, _this$callbacks$onErr, _this$callbacks2, _t;
|
|
158
173
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
159
174
|
while (1) switch (_context2.prev = _context2.next) {
|
|
160
175
|
case 0:
|
|
@@ -167,10 +182,11 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
167
182
|
this.currentRequestParams = params;
|
|
168
183
|
this.isStreaming = true;
|
|
169
184
|
this.eventMapper.reset();
|
|
185
|
+
_ref = requestParams || {}, _auth = _ref.auth, sendParams = _objectWithoutProperties(_ref, _excluded);
|
|
170
186
|
chatParams = _objectSpread({
|
|
171
187
|
message: params.prompt || "",
|
|
172
188
|
idempotencyKey: generateUUID()
|
|
173
|
-
},
|
|
189
|
+
}, sendParams);
|
|
174
190
|
_context2.prev = 2;
|
|
175
191
|
(_this$callbacks$onSta = (_this$callbacks = this.callbacks).onStart) === null || _this$callbacks$onSta === void 0 || _this$callbacks$onSta.call(_this$callbacks);
|
|
176
192
|
_context2.next = 3;
|
|
@@ -242,20 +258,52 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
242
258
|
return invokeAction;
|
|
243
259
|
}()
|
|
244
260
|
}, {
|
|
245
|
-
key: "
|
|
261
|
+
key: "fetchHistory",
|
|
246
262
|
value: function () {
|
|
247
|
-
var
|
|
248
|
-
var
|
|
263
|
+
var _fetchHistory = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(sessionKey, options) {
|
|
264
|
+
var response;
|
|
249
265
|
return _regeneratorRuntime.wrap(function (_context4) {
|
|
250
266
|
while (1) switch (_context4.prev = _context4.next) {
|
|
267
|
+
case 0:
|
|
268
|
+
if (!(this.connectionState !== OpenClawConnectionState.AUTHENTICATED)) {
|
|
269
|
+
_context4.next = 1;
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
272
|
+
throw new Error("Not authenticated. Please connect first.");
|
|
273
|
+
case 1:
|
|
274
|
+
_context4.next = 2;
|
|
275
|
+
return this.rpcHandler.sessionsHistory({
|
|
276
|
+
sessionKey: sessionKey
|
|
277
|
+
});
|
|
278
|
+
case 2:
|
|
279
|
+
response = _context4.sent;
|
|
280
|
+
return _context4.abrupt("return", convertOpenClawHistoryResponse(response, options));
|
|
281
|
+
case 3:
|
|
282
|
+
case "end":
|
|
283
|
+
return _context4.stop();
|
|
284
|
+
}
|
|
285
|
+
}, _callee4, this);
|
|
286
|
+
}));
|
|
287
|
+
function fetchHistory(_x4, _x5) {
|
|
288
|
+
return _fetchHistory.apply(this, arguments);
|
|
289
|
+
}
|
|
290
|
+
return fetchHistory;
|
|
291
|
+
}()
|
|
292
|
+
}, {
|
|
293
|
+
key: "disconnect",
|
|
294
|
+
value: function () {
|
|
295
|
+
var _disconnect = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
|
|
296
|
+
var _this$callbacks$onDis, _this$callbacks5;
|
|
297
|
+
return _regeneratorRuntime.wrap(function (_context5) {
|
|
298
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
251
299
|
case 0:
|
|
252
300
|
this.connectionState = OpenClawConnectionState.CLOSING;
|
|
253
301
|
this.rpcHandler.cancelAll("Disconnecting");
|
|
254
302
|
if (!this.wsClient) {
|
|
255
|
-
|
|
303
|
+
_context5.next = 2;
|
|
256
304
|
break;
|
|
257
305
|
}
|
|
258
|
-
|
|
306
|
+
_context5.next = 1;
|
|
259
307
|
return this.wsClient.close();
|
|
260
308
|
case 1:
|
|
261
309
|
this.wsClient = null;
|
|
@@ -264,9 +312,9 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
264
312
|
(_this$callbacks$onDis = (_this$callbacks5 = this.callbacks).onDisconnected) === null || _this$callbacks$onDis === void 0 || _this$callbacks$onDis.call(_this$callbacks5);
|
|
265
313
|
case 3:
|
|
266
314
|
case "end":
|
|
267
|
-
return
|
|
315
|
+
return _context5.stop();
|
|
268
316
|
}
|
|
269
|
-
},
|
|
317
|
+
}, _callee5, this);
|
|
270
318
|
}));
|
|
271
319
|
function disconnect() {
|
|
272
320
|
return _disconnect.apply(this, arguments);
|
|
@@ -303,20 +351,20 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
303
351
|
}, {
|
|
304
352
|
key: "destroy",
|
|
305
353
|
value: function () {
|
|
306
|
-
var _destroy = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
307
|
-
return _regeneratorRuntime.wrap(function (
|
|
308
|
-
while (1) switch (
|
|
354
|
+
var _destroy = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
|
|
355
|
+
return _regeneratorRuntime.wrap(function (_context6) {
|
|
356
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
309
357
|
case 0:
|
|
310
|
-
|
|
358
|
+
_context6.next = 1;
|
|
311
359
|
return this.disconnect();
|
|
312
360
|
case 1:
|
|
313
361
|
this.rpcHandler.destroy();
|
|
314
362
|
this.removeAllListeners();
|
|
315
363
|
case 2:
|
|
316
364
|
case "end":
|
|
317
|
-
return
|
|
365
|
+
return _context6.stop();
|
|
318
366
|
}
|
|
319
|
-
},
|
|
367
|
+
}, _callee6, this);
|
|
320
368
|
}));
|
|
321
369
|
function destroy() {
|
|
322
370
|
return _destroy.apply(this, arguments);
|
|
@@ -333,13 +381,15 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
333
381
|
});
|
|
334
382
|
this.wsClient.on("error", function (error) {
|
|
335
383
|
var _this4$callbacks$onEr, _this4$callbacks;
|
|
336
|
-
_this4.logger.error("OpenClaw WebSocket error:", error);
|
|
384
|
+
_this4.logger.error("[OpenClaw] WebSocket error:", (error === null || error === void 0 ? void 0 : error.message) || error);
|
|
337
385
|
(_this4$callbacks$onEr = (_this4$callbacks = _this4.callbacks).onError) === null || _this4$callbacks$onEr === void 0 || _this4$callbacks$onEr.call(_this4$callbacks, error);
|
|
338
386
|
});
|
|
339
387
|
this.wsClient.on("complete", function (isAborted) {
|
|
340
388
|
var _this4$callbacks$onDi, _this4$callbacks3;
|
|
389
|
+
console.warn("[OpenClaw] WebSocket complete event! isAborted=".concat(isAborted, ", isStreaming=").concat(_this4.isStreaming));
|
|
341
390
|
if (_this4.isStreaming) {
|
|
342
391
|
var _this4$callbacks$onCo, _this4$callbacks2;
|
|
392
|
+
console.warn("[OpenClaw] \u26A0\uFE0F WebSocket closed while still streaming! This caused onComplete to fire prematurely.");
|
|
343
393
|
_this4.isStreaming = false;
|
|
344
394
|
(_this4$callbacks$onCo = (_this4$callbacks2 = _this4.callbacks).onComplete) === null || _this4$callbacks$onCo === void 0 || _this4$callbacks$onCo.call(_this4$callbacks2, isAborted, _this4.currentRequestParams || void 0);
|
|
345
395
|
}
|
|
@@ -355,11 +405,14 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
355
405
|
}, {
|
|
356
406
|
key: "handleWebSocketMessage",
|
|
357
407
|
value: function handleWebSocketMessage(data) {
|
|
408
|
+
var rawStr = typeof data === "string" ? data : JSON.stringify(data);
|
|
409
|
+
console.log("[OpenClaw RAW] ".concat(rawStr.slice(0, 800)));
|
|
358
410
|
var frame = parseFrame(data);
|
|
359
411
|
if (!frame) {
|
|
360
|
-
|
|
412
|
+
console.warn("[OpenClaw] Failed to parse frame, raw data:", rawStr.slice(0, 500));
|
|
361
413
|
return;
|
|
362
414
|
}
|
|
415
|
+
console.log("[OpenClaw Frame] type=\"".concat(frame.type, "\", event=").concat(frame.event, ", isStreaming=").concat(this.isStreaming));
|
|
363
416
|
if (frame.type === "res") {
|
|
364
417
|
this.rpcHandler.handleResponse(frame);
|
|
365
418
|
return;
|
|
@@ -377,8 +430,14 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
377
430
|
this.handleConnectChallenge(payload);
|
|
378
431
|
return;
|
|
379
432
|
}
|
|
433
|
+
if (event === OpenClawEventType.HEALTH || event === OpenClawEventType.HEARTBEAT || event === "tick") {
|
|
434
|
+
console.log("[OpenClaw] Skipping non-business event: \"".concat(event, "\""));
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
437
|
+
console.log("[OpenClaw Event] event=\"".concat(event, "\", isStreaming=").concat(this.isStreaming, ", payload="), JSON.stringify(payload).slice(0, 500));
|
|
380
438
|
if (this.isStreaming) {
|
|
381
439
|
var result = this.eventMapper.mapEvent(frame);
|
|
440
|
+
console.log("[OpenClaw mapResult] content=".concat(result.content ? JSON.stringify(result.content).slice(0, 200) : "null", ", isFinal=").concat(result.isFinal, ", hasError=").concat(result.hasError));
|
|
382
441
|
if (result.content) {
|
|
383
442
|
var _this$callbacks$onMes, _this$callbacks7;
|
|
384
443
|
(_this$callbacks$onMes = (_this$callbacks7 = this.callbacks).onMessage) === null || _this$callbacks$onMes === void 0 || _this$callbacks$onMes.call(_this$callbacks7, result.content);
|
|
@@ -393,19 +452,20 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
393
452
|
var _this$callbacks$onErr3, _this$callbacks9;
|
|
394
453
|
(_this$callbacks$onErr3 = (_this$callbacks9 = this.callbacks).onError) === null || _this$callbacks$onErr3 === void 0 || _this$callbacks$onErr3.call(_this$callbacks9, new Error(result.errorMessage));
|
|
395
454
|
}
|
|
455
|
+
} else {
|
|
456
|
+
console.warn("[OpenClaw] Received event \"".concat(event, "\" but isStreaming=false, event may be lost. Payload:"), JSON.stringify(payload).slice(0, 300));
|
|
396
457
|
}
|
|
397
458
|
}
|
|
398
459
|
}, {
|
|
399
460
|
key: "handleConnectChallenge",
|
|
400
461
|
value: function () {
|
|
401
|
-
var _handleConnectChallenge = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
402
|
-
var _this$
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
462
|
+
var _handleConnectChallenge = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(payload) {
|
|
463
|
+
var connectParams, auth, deviceIdentity, _this$callbacks$onCon, _this$callbacks0, response, connectPayload, _this$callbacks$onHis, _this$callbacks1, historyResponse, convertedMessages, _this$callbacks$onErr4, _this$callbacks10, _t2, _t3;
|
|
464
|
+
return _regeneratorRuntime.wrap(function (_context7) {
|
|
465
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
406
466
|
case 0:
|
|
407
467
|
this.logger.debug("Received connect.challenge, sending connect request");
|
|
408
|
-
connectParams =
|
|
468
|
+
connectParams = {
|
|
409
469
|
minProtocol: this.config.protocolVersion.min,
|
|
410
470
|
maxProtocol: this.config.protocolVersion.max,
|
|
411
471
|
client: {
|
|
@@ -416,39 +476,79 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
|
|
|
416
476
|
instanceId: this.instanceId
|
|
417
477
|
},
|
|
418
478
|
role: "operator",
|
|
419
|
-
scopes: ["operator.admin"
|
|
420
|
-
caps: []
|
|
421
|
-
}, (_this$config$auth = this.config.auth) !== null && _this$config$auth !== void 0 && _this$config$auth.token ? {
|
|
422
|
-
auth: this.config.auth
|
|
423
|
-
} : {}), {}, {
|
|
479
|
+
scopes: ["operator.admin"],
|
|
480
|
+
caps: [],
|
|
424
481
|
userAgent: getUserAgent(),
|
|
425
482
|
locale: getLocale()
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
483
|
+
};
|
|
484
|
+
auth = this.pendingAuth || (Object.keys(this.config.auth).length > 0 ? this.config.auth : void 0);
|
|
485
|
+
if (auth) {
|
|
486
|
+
connectParams.auth = auth;
|
|
487
|
+
}
|
|
488
|
+
this.pendingAuth = null;
|
|
489
|
+
if (!(this.deviceKeyManager && payload.nonce)) {
|
|
490
|
+
_context7.next = 5;
|
|
491
|
+
break;
|
|
492
|
+
}
|
|
493
|
+
_context7.prev = 1;
|
|
494
|
+
_context7.next = 2;
|
|
495
|
+
return this.deviceKeyManager.initialize();
|
|
430
496
|
case 2:
|
|
431
|
-
|
|
497
|
+
_context7.next = 3;
|
|
498
|
+
return this.deviceKeyManager.signChallenge(payload.nonce);
|
|
499
|
+
case 3:
|
|
500
|
+
deviceIdentity = _context7.sent;
|
|
501
|
+
connectParams.device = deviceIdentity;
|
|
502
|
+
this.logger.debug("Device auth: signed nonce, deviceId=".concat(deviceIdentity.id));
|
|
503
|
+
_context7.next = 5;
|
|
504
|
+
break;
|
|
505
|
+
case 4:
|
|
506
|
+
_context7.prev = 4;
|
|
507
|
+
_t2 = _context7["catch"](1);
|
|
508
|
+
this.logger.warn("Device auth: failed to sign challenge, connecting without device identity:", _t2);
|
|
509
|
+
case 5:
|
|
510
|
+
_context7.prev = 5;
|
|
511
|
+
_context7.next = 6;
|
|
512
|
+
return this.rpcHandler.connect(connectParams);
|
|
513
|
+
case 6:
|
|
514
|
+
response = _context7.sent;
|
|
432
515
|
this.connectionState = OpenClawConnectionState.AUTHENTICATED;
|
|
433
516
|
this.logger.info("OpenClaw authenticated successfully:", response);
|
|
434
517
|
(_this$callbacks$onCon = (_this$callbacks0 = this.callbacks).onConnected) === null || _this$callbacks$onCon === void 0 || _this$callbacks$onCon.call(_this$callbacks0);
|
|
435
518
|
this.emit("connected", response);
|
|
436
|
-
|
|
519
|
+
connectPayload = response;
|
|
520
|
+
if (Array.isArray(connectPayload === null || connectPayload === void 0 ? void 0 : connectPayload.messages) && connectPayload.messages.length > 0) {
|
|
521
|
+
this.logger.info("OpenClaw connect response contains ".concat(connectPayload.messages.length, " history messages, converting..."));
|
|
522
|
+
try {
|
|
523
|
+
historyResponse = {
|
|
524
|
+
sessionKey: connectPayload.sessionKey || "",
|
|
525
|
+
sessionId: connectPayload.sessionId || "",
|
|
526
|
+
messages: connectPayload.messages
|
|
527
|
+
};
|
|
528
|
+
convertedMessages = convertOpenClawHistory(historyResponse.messages);
|
|
529
|
+
this.logger.info("Converted ".concat(convertedMessages.length, " history messages"));
|
|
530
|
+
(_this$callbacks$onHis = (_this$callbacks1 = this.callbacks).onHistoryLoaded) === null || _this$callbacks$onHis === void 0 || _this$callbacks$onHis.call(_this$callbacks1, convertedMessages);
|
|
531
|
+
this.emit("historyLoaded", convertedMessages);
|
|
532
|
+
} catch (historyError) {
|
|
533
|
+
this.logger.warn("Failed to convert history messages from connect response:", historyError);
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
_context7.next = 8;
|
|
437
537
|
break;
|
|
438
|
-
case
|
|
439
|
-
|
|
440
|
-
|
|
538
|
+
case 7:
|
|
539
|
+
_context7.prev = 7;
|
|
540
|
+
_t3 = _context7["catch"](5);
|
|
441
541
|
this.connectionState = OpenClawConnectionState.ERROR;
|
|
442
|
-
this.logger.error("OpenClaw authentication failed:",
|
|
443
|
-
(_this$callbacks$onErr4 = (_this$
|
|
444
|
-
this.emit("error",
|
|
445
|
-
case
|
|
542
|
+
this.logger.error("OpenClaw authentication failed:", _t3);
|
|
543
|
+
(_this$callbacks$onErr4 = (_this$callbacks10 = this.callbacks).onError) === null || _this$callbacks$onErr4 === void 0 || _this$callbacks$onErr4.call(_this$callbacks10, _t3);
|
|
544
|
+
this.emit("error", _t3);
|
|
545
|
+
case 8:
|
|
446
546
|
case "end":
|
|
447
|
-
return
|
|
547
|
+
return _context7.stop();
|
|
448
548
|
}
|
|
449
|
-
},
|
|
549
|
+
}, _callee7, this, [[1, 4], [5, 7]]);
|
|
450
550
|
}));
|
|
451
|
-
function handleConnectChallenge(
|
|
551
|
+
function handleConnectChallenge(_x6) {
|
|
452
552
|
return _handleConnectChallenge.apply(this, arguments);
|
|
453
553
|
}
|
|
454
554
|
return handleConnectChallenge;
|