@tdesign-react/chat 1.1.0-alpha.11 → 1.1.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/_chunks/dep-58d90dfe.js +438 -0
- package/es/_chunks/dep-58d90dfe.js.map +1 -0
- package/es/_chunks/dep-771678df.js +438 -0
- package/es/_chunks/dep-771678df.js.map +1 -0
- package/es/_chunks/dep-93283bbd.js +1247 -0
- package/es/_chunks/dep-93283bbd.js.map +1 -0
- package/es/_chunks/dep-dbdfe7d6.js +169 -0
- package/es/_chunks/dep-dbdfe7d6.js.map +1 -0
- 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 +17 -4
- 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 +17 -4
- 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 +17 -4
- package/es/chat-engine/components/json-render/index.js.map +1 -1
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js +17 -4
- 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 +17 -4
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -1
- package/es/chat-engine/components/json-render/registry/config.js +17 -4
- package/es/chat-engine/components/json-render/registry/config.js.map +1 -1
- package/es/chat-engine/components/json-render/registry/index.js +17 -4
- package/es/chat-engine/components/json-render/registry/index.js.map +1 -1
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +16 -3
- 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 +15 -2
- 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 +15 -2
- 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 +15 -2
- 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 +2 -1
- package/es/chat-engine/core/adapters/a2ui/index.js.map +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 +2 -1631
- package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -1
- package/es/chat-engine/core/adapters/a2ui/utils/index.js +2 -1
- package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +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 +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.js +1 -1
- package/es/chat-engine/core/adapters/index.d.ts +2 -0
- package/es/chat-engine/core/adapters/index.js +27 -9
- 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/event-mapper.d.ts +212 -0
- package/es/chat-engine/core/adapters/openclaw/event-mapper.js +606 -0
- package/es/chat-engine/core/adapters/openclaw/event-mapper.js.map +1 -0
- package/es/chat-engine/core/adapters/openclaw/index.d.ts +158 -0
- package/es/chat-engine/core/adapters/openclaw/index.js +460 -0
- package/es/chat-engine/core/adapters/openclaw/index.js.map +1 -0
- package/es/chat-engine/core/adapters/openclaw/rpc-handler.d.ts +114 -0
- package/es/chat-engine/core/adapters/openclaw/rpc-handler.js +263 -0
- package/es/chat-engine/core/adapters/openclaw/rpc-handler.js.map +1 -0
- package/es/chat-engine/core/adapters/openclaw/types/config.d.ts +67 -0
- package/es/chat-engine/core/adapters/openclaw/types/config.js +35 -0
- package/es/chat-engine/core/adapters/openclaw/types/config.js.map +1 -0
- package/es/chat-engine/core/adapters/openclaw/types/events.d.ts +121 -0
- package/es/chat-engine/core/adapters/openclaw/types/events.js +71 -0
- package/es/chat-engine/core/adapters/openclaw/types/events.js.map +1 -0
- package/es/chat-engine/core/adapters/openclaw/types/index.d.ts +6 -0
- package/es/chat-engine/core/adapters/openclaw/types/index.js +11 -0
- package/es/chat-engine/core/adapters/openclaw/types/index.js.map +1 -0
- package/es/chat-engine/core/adapters/openclaw/types/messages.d.ts +215 -0
- package/es/chat-engine/core/adapters/openclaw/types/messages.js +18 -0
- package/es/chat-engine/core/adapters/openclaw/types/messages.js.map +1 -0
- package/es/chat-engine/core/adapters/openclaw/utils.d.ts +49 -0
- package/es/chat-engine/core/adapters/openclaw/utils.js +109 -0
- package/es/chat-engine/core/adapters/openclaw/utils.js.map +1 -0
- package/es/chat-engine/core/adapters/shared/activity-manager.d.ts +11 -0
- package/es/chat-engine/core/adapters/shared/activity-manager.js +17 -0
- package/es/chat-engine/core/adapters/shared/activity-manager.js.map +1 -0
- package/es/chat-engine/core/adapters/shared/content-factory.d.ts +7 -0
- package/es/chat-engine/core/adapters/shared/content-factory.js +11 -0
- package/es/chat-engine/core/adapters/shared/content-factory.js.map +1 -0
- package/es/chat-engine/core/adapters/shared/index.d.ts +11 -0
- package/es/chat-engine/core/adapters/shared/index.js +21 -0
- package/es/chat-engine/core/adapters/shared/index.js.map +1 -0
- package/es/chat-engine/core/adapters/shared/merge-utils.d.ts +7 -0
- package/es/chat-engine/core/adapters/shared/merge-utils.js +11 -0
- package/es/chat-engine/core/adapters/shared/merge-utils.js.map +1 -0
- 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 +7 -0
- package/es/chat-engine/core/index.js +83 -8
- package/es/chat-engine/core/index.js.map +1 -1
- package/es/chat-engine/core/processor/index.js +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.d.ts +1 -0
- package/es/chat-engine/core/server/index.js +22 -1
- package/es/chat-engine/core/server/index.js.map +1 -1
- package/es/chat-engine/core/server/llm-service.d.ts +5 -0
- package/es/chat-engine/core/server/llm-service.js +140 -13
- 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 +139 -0
- package/es/chat-engine/core/server/websocket-client.js +386 -0
- package/es/chat-engine/core/server/websocket-client.js.map +1 -0
- 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/type.d.ts +7 -1
- package/es/chat-engine/core/type.js +1 -1
- package/es/chat-engine/core/utils/eventEmitter.d.ts +1 -0
- package/es/chat-engine/core/utils/eventEmitter.js +11 -1
- package/es/chat-engine/core/utils/eventEmitter.js.map +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 +15 -2
- 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 +15 -2
- 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 +15 -2
- package/es/chat-engine/hooks/useChat.js.map +1 -1
- package/es/chat-engine/index.js +19 -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 +19 -6
- package/es/index.js.map +1 -1
- package/es/style/index.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenClaw 事件映射器
|
|
3
|
+
*
|
|
4
|
+
* 将 OpenClaw 事件(chat、agent 等)转换为 ChatEngine 统一的 AIMessageContent 格式
|
|
5
|
+
*
|
|
6
|
+
* 支持的 stream 类型:
|
|
7
|
+
* - assistant:文本流(标准文本对话)
|
|
8
|
+
* - tool:工具调用流(start → args → result → end 四阶段)
|
|
9
|
+
* - activity:Activity 组件流(snapshot / delta 增量合并)
|
|
10
|
+
*/
|
|
11
|
+
import type { AIMessageContent, ToolCall } from '../../type';
|
|
12
|
+
import type { OpenClawEventFrame } from './types';
|
|
13
|
+
/**
|
|
14
|
+
* 事件映射结果
|
|
15
|
+
*/
|
|
16
|
+
export interface EventMapResult {
|
|
17
|
+
/** 映射后的内容 */
|
|
18
|
+
content: AIMessageContent | AIMessageContent[] | null;
|
|
19
|
+
/** 是否是最终消息 */
|
|
20
|
+
isFinal: boolean;
|
|
21
|
+
/** 是否有错误 */
|
|
22
|
+
hasError: boolean;
|
|
23
|
+
/** 错误消息 */
|
|
24
|
+
errorMessage?: string;
|
|
25
|
+
/** 原始运行 ID */
|
|
26
|
+
runId?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* OpenClaw 事件映射器
|
|
30
|
+
*/
|
|
31
|
+
export declare class OpenClawEventMapper {
|
|
32
|
+
/** 当前流式文本缓冲 */
|
|
33
|
+
private textBuffer;
|
|
34
|
+
/** 当前运行 ID */
|
|
35
|
+
private currentRunId;
|
|
36
|
+
/** 工具调用状态映射(toolCallId → ToolCall) */
|
|
37
|
+
private toolCallMap;
|
|
38
|
+
/** 已结束的工具调用 ID 集合 */
|
|
39
|
+
private toolCallEnded;
|
|
40
|
+
/**
|
|
41
|
+
* 映射 OpenClaw 事件帧到 AIMessageContent
|
|
42
|
+
*/
|
|
43
|
+
mapEvent(frame: OpenClawEventFrame): EventMapResult;
|
|
44
|
+
/**
|
|
45
|
+
* 映射 chat 事件
|
|
46
|
+
*/
|
|
47
|
+
private mapChatEvent;
|
|
48
|
+
/**
|
|
49
|
+
* 处理 chat delta(增量更新)
|
|
50
|
+
*
|
|
51
|
+
* chat 事件的 message.content 包含全量文本快照。
|
|
52
|
+
* 需要计算与上次的增量,只返回新增部分,
|
|
53
|
+
* 因为 ChatEngine 的 text handler 会拼接内容。
|
|
54
|
+
*/
|
|
55
|
+
private handleChatDelta;
|
|
56
|
+
/**
|
|
57
|
+
* 处理 chat final(最终消息)
|
|
58
|
+
*
|
|
59
|
+
* 在实际 OpenClaw 流程中,chat final 在 agent 流式结束后发送。
|
|
60
|
+
* 此时所有文本已通过 agent 事件累积完毕,
|
|
61
|
+
* 所以 final 只需标记完成状态,不应再输出全量内容。
|
|
62
|
+
*/
|
|
63
|
+
private handleChatFinal;
|
|
64
|
+
/**
|
|
65
|
+
* 映射 agent 事件
|
|
66
|
+
*
|
|
67
|
+
* 根据 stream 字段分发到不同的处理器:
|
|
68
|
+
* - assistant / 缺省:文本流
|
|
69
|
+
* - tool:工具调用流
|
|
70
|
+
* - activity:Activity 组件流
|
|
71
|
+
*/
|
|
72
|
+
private mapAgentEvent;
|
|
73
|
+
/**
|
|
74
|
+
* 处理 assistant stream(文本流)
|
|
75
|
+
*
|
|
76
|
+
* 实际 OpenClaw agent 事件格式:
|
|
77
|
+
* {
|
|
78
|
+
* "type": "event",
|
|
79
|
+
* "event": "agent",
|
|
80
|
+
* "payload": {
|
|
81
|
+
* "runId": "xxx",
|
|
82
|
+
* "stream": "assistant",
|
|
83
|
+
* "data": { "text": "全量快照", "delta": "增量" },
|
|
84
|
+
* "sessionKey": "agent:main:main",
|
|
85
|
+
* "seq": 12,
|
|
86
|
+
* "ts": 1772612049089
|
|
87
|
+
* }
|
|
88
|
+
* }
|
|
89
|
+
*/
|
|
90
|
+
private handleAssistantStream;
|
|
91
|
+
/**
|
|
92
|
+
* 处理 agent 文本快照
|
|
93
|
+
*
|
|
94
|
+
* 实际 OpenClaw agent 事件中,data.text 是全量快照,data.delta 是本次增量。
|
|
95
|
+
* ChatEngine 的 text 合并策略是 existing + incoming(拼接),
|
|
96
|
+
* 所以这里必须返回 delta(增量)而非全量快照,否则会导致内容重复。
|
|
97
|
+
* textBuffer 保存全量快照,用于 final 阶段和状态恢复。
|
|
98
|
+
*/
|
|
99
|
+
private handleAgentTextSnapshot;
|
|
100
|
+
/**
|
|
101
|
+
* 处理 agent 文本增量
|
|
102
|
+
*/
|
|
103
|
+
private handleAgentTextDelta;
|
|
104
|
+
/**
|
|
105
|
+
* 处理 agent 完成
|
|
106
|
+
*
|
|
107
|
+
* 完成时不再输出内容(之前的 delta 已经都输出了),
|
|
108
|
+
* 只返回一个空 data + complete 状态来标记结束。
|
|
109
|
+
*/
|
|
110
|
+
private handleAgentComplete;
|
|
111
|
+
/**
|
|
112
|
+
* 处理通用 agent 数据
|
|
113
|
+
*
|
|
114
|
+
* 兜底处理逻辑:优先使用 delta 增量,避免全量快照被 ChatEngine 拼接导致重复
|
|
115
|
+
*/
|
|
116
|
+
private handleAgentGenericData;
|
|
117
|
+
/**
|
|
118
|
+
* 处理 tool stream
|
|
119
|
+
*
|
|
120
|
+
* OpenClaw tool stream data 约定:
|
|
121
|
+
* {
|
|
122
|
+
* toolCallId: string, // 工具调用 ID
|
|
123
|
+
* toolCallName: string, // 工具名称
|
|
124
|
+
* state: 'start' | 'args' | 'result' | 'end',
|
|
125
|
+
* delta?: string, // args 增量
|
|
126
|
+
* content?: string, // result 内容
|
|
127
|
+
* args?: string, // 全量 args(snapshot 模式)
|
|
128
|
+
* result?: string, // 全量 result(snapshot 模式)
|
|
129
|
+
* parentMessageId?: string, // 父消息 ID
|
|
130
|
+
* }
|
|
131
|
+
*/
|
|
132
|
+
private handleToolStream;
|
|
133
|
+
/**
|
|
134
|
+
* 处理工具调用开始
|
|
135
|
+
*/
|
|
136
|
+
private handleToolCallStart;
|
|
137
|
+
/**
|
|
138
|
+
* 处理工具调用参数增量
|
|
139
|
+
*/
|
|
140
|
+
private handleToolCallArgs;
|
|
141
|
+
/**
|
|
142
|
+
* 处理工具调用结果
|
|
143
|
+
*/
|
|
144
|
+
private handleToolCallResult;
|
|
145
|
+
/**
|
|
146
|
+
* 处理工具调用结束
|
|
147
|
+
*/
|
|
148
|
+
private handleToolCallEnd;
|
|
149
|
+
/**
|
|
150
|
+
* 兜底处理工具调用数据(无 state 字段时)
|
|
151
|
+
*/
|
|
152
|
+
private handleToolCallGeneric;
|
|
153
|
+
/**
|
|
154
|
+
* 处理旧版工具调用(通过 type 字段而非 stream=tool)
|
|
155
|
+
*/
|
|
156
|
+
private handleToolCall;
|
|
157
|
+
/**
|
|
158
|
+
* 处理旧版工具结果(通过 type 字段而非 stream=tool)
|
|
159
|
+
*/
|
|
160
|
+
private handleToolResult;
|
|
161
|
+
/**
|
|
162
|
+
* 处理 activity stream
|
|
163
|
+
*
|
|
164
|
+
* 直接复用 activityManager 的 snapshot/delta 处理逻辑。
|
|
165
|
+
*
|
|
166
|
+
* OpenClaw activity stream data 约定:
|
|
167
|
+
* {
|
|
168
|
+
* activityType: string, // Activity 组件类型
|
|
169
|
+
* state: 'snapshot' | 'delta', // 全量 or 增量
|
|
170
|
+
* content?: Record<string, any>, // snapshot 全量数据
|
|
171
|
+
* patch?: any[], // delta JSON Patch 数组
|
|
172
|
+
* messageId?: string, // 关联消息 ID
|
|
173
|
+
* }
|
|
174
|
+
*/
|
|
175
|
+
private handleActivityStream;
|
|
176
|
+
/**
|
|
177
|
+
* 映射通用事件
|
|
178
|
+
*/
|
|
179
|
+
private mapGenericEvent;
|
|
180
|
+
/**
|
|
181
|
+
* 从 content 数组中提取文本
|
|
182
|
+
*/
|
|
183
|
+
private extractTextFromContent;
|
|
184
|
+
/**
|
|
185
|
+
* 创建错误内容
|
|
186
|
+
*/
|
|
187
|
+
private createErrorContent;
|
|
188
|
+
/**
|
|
189
|
+
* 获取当前文本缓冲
|
|
190
|
+
*/
|
|
191
|
+
getTextBuffer(): string;
|
|
192
|
+
/**
|
|
193
|
+
* 获取当前运行 ID
|
|
194
|
+
*/
|
|
195
|
+
getCurrentRunId(): string | null;
|
|
196
|
+
/**
|
|
197
|
+
* 获取指定工具调用
|
|
198
|
+
*/
|
|
199
|
+
getToolCall(toolCallId: string): ToolCall | undefined;
|
|
200
|
+
/**
|
|
201
|
+
* 获取所有工具调用
|
|
202
|
+
*/
|
|
203
|
+
getToolCalls(): ToolCall[];
|
|
204
|
+
/**
|
|
205
|
+
* 检查工具调用是否已结束
|
|
206
|
+
*/
|
|
207
|
+
isToolCallEnded(toolCallId: string): boolean;
|
|
208
|
+
/**
|
|
209
|
+
* 重置映射器状态
|
|
210
|
+
*/
|
|
211
|
+
reset(): void;
|
|
212
|
+
}
|