@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,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenClaw 消息格式类型定义
|
|
3
|
+
*
|
|
4
|
+
* OpenClaw 采用 RPC 风格的消息通信,有三种消息类型:
|
|
5
|
+
* - req: 客户端向 Gateway 发起的请求
|
|
6
|
+
* - res: Gateway 返回的响应
|
|
7
|
+
* - event: 服务端主动推送的事件
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* OpenClaw 消息类型
|
|
11
|
+
*/
|
|
12
|
+
export type OpenClawMessageType = 'req' | 'res' | 'event';
|
|
13
|
+
/**
|
|
14
|
+
* OpenClaw 请求帧
|
|
15
|
+
*/
|
|
16
|
+
export interface OpenClawRequestFrame<TParams = Record<string, unknown>> {
|
|
17
|
+
type: 'req';
|
|
18
|
+
/** 请求唯一标识,用于匹配响应 */
|
|
19
|
+
id: string;
|
|
20
|
+
/** RPC 方法名 */
|
|
21
|
+
method: string;
|
|
22
|
+
/** 请求参数 */
|
|
23
|
+
params: TParams;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* OpenClaw 响应帧
|
|
27
|
+
*/
|
|
28
|
+
export interface OpenClawResponseFrame<TPayload = unknown> {
|
|
29
|
+
type: 'res';
|
|
30
|
+
/** 请求唯一标识,与请求帧的 id 对应 */
|
|
31
|
+
id: string;
|
|
32
|
+
/** 是否成功 */
|
|
33
|
+
ok: boolean;
|
|
34
|
+
/** 成功时的响应数据 */
|
|
35
|
+
payload?: TPayload;
|
|
36
|
+
/** 失败时的错误信息 */
|
|
37
|
+
error?: OpenClawError;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* OpenClaw 事件帧
|
|
41
|
+
*/
|
|
42
|
+
export interface OpenClawEventFrame<TPayload = unknown> {
|
|
43
|
+
type: 'event';
|
|
44
|
+
/** 事件名称 */
|
|
45
|
+
event: string;
|
|
46
|
+
/** 事件序号 */
|
|
47
|
+
seq?: number;
|
|
48
|
+
/** 事件数据 */
|
|
49
|
+
payload?: TPayload;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* OpenClaw 错误信息
|
|
53
|
+
*/
|
|
54
|
+
export interface OpenClawError {
|
|
55
|
+
/** 错误码 */
|
|
56
|
+
code: string;
|
|
57
|
+
/** 错误消息 */
|
|
58
|
+
message: string;
|
|
59
|
+
/** 详细信息 */
|
|
60
|
+
details?: unknown;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* OpenClaw 消息帧(联合类型)
|
|
64
|
+
*/
|
|
65
|
+
export type OpenClawFrame<T = unknown> = OpenClawRequestFrame<T extends Record<string, unknown> ? T : Record<string, unknown>> | OpenClawResponseFrame<T> | OpenClawEventFrame<T>;
|
|
66
|
+
/**
|
|
67
|
+
* connect 方法参数
|
|
68
|
+
*/
|
|
69
|
+
export interface ConnectParams {
|
|
70
|
+
/** 最小协议版本 */
|
|
71
|
+
minProtocol: number;
|
|
72
|
+
/** 最大协议版本 */
|
|
73
|
+
maxProtocol: number;
|
|
74
|
+
/** 客户端信息 */
|
|
75
|
+
client: {
|
|
76
|
+
id: string;
|
|
77
|
+
version: string;
|
|
78
|
+
platform: string;
|
|
79
|
+
mode: string;
|
|
80
|
+
instanceId: string;
|
|
81
|
+
};
|
|
82
|
+
/** 角色 */
|
|
83
|
+
role?: string;
|
|
84
|
+
/** 权限范围 */
|
|
85
|
+
scopes?: string[];
|
|
86
|
+
/** 能力列表 */
|
|
87
|
+
caps?: string[];
|
|
88
|
+
/** 认证信息(可选,由 onRequest 传入) */
|
|
89
|
+
auth?: {
|
|
90
|
+
token?: string;
|
|
91
|
+
[key: string]: unknown;
|
|
92
|
+
};
|
|
93
|
+
/** User Agent */
|
|
94
|
+
userAgent?: string;
|
|
95
|
+
/** 语言环境 */
|
|
96
|
+
locale?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* connect 方法响应
|
|
100
|
+
*/
|
|
101
|
+
export interface ConnectResponse {
|
|
102
|
+
/** 协商后的协议版本 */
|
|
103
|
+
protocol: number;
|
|
104
|
+
/** 会话 ID */
|
|
105
|
+
sessionId: string;
|
|
106
|
+
/** 服务端版本 */
|
|
107
|
+
serverVersion?: string;
|
|
108
|
+
/** 支持的能力列表 */
|
|
109
|
+
capabilities?: string[];
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* chat.send 方法参数(基础结构,具体字段由 onRequest 传入)
|
|
113
|
+
*/
|
|
114
|
+
export interface ChatSendParams {
|
|
115
|
+
/** 消息内容 */
|
|
116
|
+
message: string;
|
|
117
|
+
/** 会话标识 */
|
|
118
|
+
sessionKey?: string;
|
|
119
|
+
/** 幂等键 */
|
|
120
|
+
idempotencyKey?: string;
|
|
121
|
+
/** 其他自定义参数 */
|
|
122
|
+
[key: string]: unknown;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* chat.send 方法响应
|
|
126
|
+
*/
|
|
127
|
+
export interface ChatSendResponse {
|
|
128
|
+
/** 运行 ID */
|
|
129
|
+
runId: string;
|
|
130
|
+
/** 状态 */
|
|
131
|
+
status: string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* connect.challenge 事件数据
|
|
135
|
+
*/
|
|
136
|
+
export interface ConnectChallengePayload {
|
|
137
|
+
/** 随机数 */
|
|
138
|
+
nonce: string;
|
|
139
|
+
/** 协议版本 */
|
|
140
|
+
protocolVersion?: number;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* chat 事件数据
|
|
144
|
+
*/
|
|
145
|
+
export interface ChatEventPayload {
|
|
146
|
+
/** 运行 ID */
|
|
147
|
+
runId?: string;
|
|
148
|
+
/** 会话标识 */
|
|
149
|
+
sessionKey?: string;
|
|
150
|
+
/** 消息状态: delta(增量) | final(完成) | error(错误) | aborted(中止) */
|
|
151
|
+
state: 'delta' | 'final' | 'error' | 'aborted';
|
|
152
|
+
/** 消息内容 */
|
|
153
|
+
message?: {
|
|
154
|
+
role: 'assistant' | 'user' | 'system';
|
|
155
|
+
content: Array<{
|
|
156
|
+
type: string;
|
|
157
|
+
text?: string;
|
|
158
|
+
[key: string]: unknown;
|
|
159
|
+
}>;
|
|
160
|
+
};
|
|
161
|
+
/** 错误消息 */
|
|
162
|
+
errorMessage?: string;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* agent 事件数据
|
|
166
|
+
*
|
|
167
|
+
* 实际 OpenClaw agent 事件示例:
|
|
168
|
+
* {
|
|
169
|
+
* "type": "event",
|
|
170
|
+
* "event": "agent",
|
|
171
|
+
* "payload": {
|
|
172
|
+
* "runId": "b7dfa37d-...",
|
|
173
|
+
* "stream": "assistant",
|
|
174
|
+
* "data": { "text": "全量快照文本", "delta": "本次增量" },
|
|
175
|
+
* "sessionKey": "agent:main:main",
|
|
176
|
+
* "seq": 12,
|
|
177
|
+
* "ts": 1772612049089
|
|
178
|
+
* },
|
|
179
|
+
* "seq": 16278
|
|
180
|
+
* }
|
|
181
|
+
*/
|
|
182
|
+
export interface AgentEventPayload {
|
|
183
|
+
/** 运行 ID */
|
|
184
|
+
runId?: string;
|
|
185
|
+
/** 流类型: assistant | tool | system */
|
|
186
|
+
stream?: string;
|
|
187
|
+
/** 事件子类型(可选,实际 agent 流式事件中通常不存在) */
|
|
188
|
+
type?: string;
|
|
189
|
+
/** 数据内容 */
|
|
190
|
+
data?: {
|
|
191
|
+
/** 全量文本快照(包含到当前为止的所有文本) */
|
|
192
|
+
text?: string;
|
|
193
|
+
/** 本次增量文本 */
|
|
194
|
+
delta?: string;
|
|
195
|
+
[key: string]: unknown;
|
|
196
|
+
};
|
|
197
|
+
/** payload 内序号(agent 事件流内的顺序) */
|
|
198
|
+
seq?: number;
|
|
199
|
+
/** 时间戳 */
|
|
200
|
+
ts?: number;
|
|
201
|
+
/** 会话标识 */
|
|
202
|
+
sessionKey?: string;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* 类型守卫:判断是否为请求帧
|
|
206
|
+
*/
|
|
207
|
+
export declare function isRequestFrame(frame: OpenClawFrame): frame is OpenClawRequestFrame;
|
|
208
|
+
/**
|
|
209
|
+
* 类型守卫:判断是否为响应帧
|
|
210
|
+
*/
|
|
211
|
+
export declare function isResponseFrame(frame: OpenClawFrame): frame is OpenClawResponseFrame;
|
|
212
|
+
/**
|
|
213
|
+
* 类型守卫:判断是否为事件帧
|
|
214
|
+
*/
|
|
215
|
+
export declare function isEventFrame(frame: OpenClawFrame): frame is OpenClawEventFrame;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
function isRequestFrame(frame) {
|
|
8
|
+
return frame.type === "req";
|
|
9
|
+
}
|
|
10
|
+
function isResponseFrame(frame) {
|
|
11
|
+
return frame.type === "res";
|
|
12
|
+
}
|
|
13
|
+
function isEventFrame(frame) {
|
|
14
|
+
return frame.type === "event";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { isEventFrame, isRequestFrame, isResponseFrame };
|
|
18
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sources":["../../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/types/messages.ts"],"sourcesContent":["/**\n * OpenClaw 消息格式类型定义\n *\n * OpenClaw 采用 RPC 风格的消息通信,有三种消息类型:\n * - req: 客户端向 Gateway 发起的请求\n * - res: Gateway 返回的响应\n * - event: 服务端主动推送的事件\n */\n\n/**\n * OpenClaw 消息类型\n */\nexport type OpenClawMessageType = 'req' | 'res' | 'event';\n\n/**\n * OpenClaw 请求帧\n */\nexport interface OpenClawRequestFrame<TParams = Record<string, unknown>> {\n type: 'req';\n /** 请求唯一标识,用于匹配响应 */\n id: string;\n /** RPC 方法名 */\n method: string;\n /** 请求参数 */\n params: TParams;\n}\n\n/**\n * OpenClaw 响应帧\n */\nexport interface OpenClawResponseFrame<TPayload = unknown> {\n type: 'res';\n /** 请求唯一标识,与请求帧的 id 对应 */\n id: string;\n /** 是否成功 */\n ok: boolean;\n /** 成功时的响应数据 */\n payload?: TPayload;\n /** 失败时的错误信息 */\n error?: OpenClawError;\n}\n\n/**\n * OpenClaw 事件帧\n */\nexport interface OpenClawEventFrame<TPayload = unknown> {\n type: 'event';\n /** 事件名称 */\n event: string;\n /** 事件序号 */\n seq?: number;\n /** 事件数据 */\n payload?: TPayload;\n}\n\n/**\n * OpenClaw 错误信息\n */\nexport interface OpenClawError {\n /** 错误码 */\n code: string;\n /** 错误消息 */\n message: string;\n /** 详细信息 */\n details?: unknown;\n}\n\n/**\n * OpenClaw 消息帧(联合类型)\n */\nexport type OpenClawFrame<T = unknown> =\n | OpenClawRequestFrame<T extends Record<string, unknown> ? T : Record<string, unknown>>\n | OpenClawResponseFrame<T>\n | OpenClawEventFrame<T>;\n\n// ============= RPC 方法参数类型 =============\n\n/**\n * connect 方法参数\n */\nexport interface ConnectParams {\n /** 最小协议版本 */\n minProtocol: number;\n /** 最大协议版本 */\n maxProtocol: number;\n /** 客户端信息 */\n client: {\n id: string;\n version: string;\n platform: string;\n mode: string;\n instanceId: string;\n };\n /** 角色 */\n role?: string;\n /** 权限范围 */\n scopes?: string[];\n /** 能力列表 */\n caps?: string[];\n /** 认证信息(可选,由 onRequest 传入) */\n auth?: {\n token?: string;\n [key: string]: unknown;\n };\n /** User Agent */\n userAgent?: string;\n /** 语言环境 */\n locale?: string;\n}\n\n/**\n * connect 方法响应\n */\nexport interface ConnectResponse {\n /** 协商后的协议版本 */\n protocol: number;\n /** 会话 ID */\n sessionId: string;\n /** 服务端版本 */\n serverVersion?: string;\n /** 支持的能力列表 */\n capabilities?: string[];\n}\n\n/**\n * chat.send 方法参数(基础结构,具体字段由 onRequest 传入)\n */\nexport interface ChatSendParams {\n /** 消息内容 */\n message: string;\n /** 会话标识 */\n sessionKey?: string;\n /** 幂等键 */\n idempotencyKey?: string;\n /** 其他自定义参数 */\n [key: string]: unknown;\n}\n\n/**\n * chat.send 方法响应\n */\nexport interface ChatSendResponse {\n /** 运行 ID */\n runId: string;\n /** 状态 */\n status: string;\n}\n\n// ============= 事件类型 =============\n\n/**\n * connect.challenge 事件数据\n */\nexport interface ConnectChallengePayload {\n /** 随机数 */\n nonce: string;\n /** 协议版本 */\n protocolVersion?: number;\n}\n\n/**\n * chat 事件数据\n */\nexport interface ChatEventPayload {\n /** 运行 ID */\n runId?: string;\n /** 会话标识 */\n sessionKey?: string;\n /** 消息状态: delta(增量) | final(完成) | error(错误) | aborted(中止) */\n state: 'delta' | 'final' | 'error' | 'aborted';\n /** 消息内容 */\n message?: {\n role: 'assistant' | 'user' | 'system';\n content: Array<{\n type: string;\n text?: string;\n [key: string]: unknown;\n }>;\n };\n /** 错误消息 */\n errorMessage?: string;\n}\n\n/**\n * agent 事件数据\n *\n * 实际 OpenClaw agent 事件示例:\n * {\n * \"type\": \"event\",\n * \"event\": \"agent\",\n * \"payload\": {\n * \"runId\": \"b7dfa37d-...\",\n * \"stream\": \"assistant\",\n * \"data\": { \"text\": \"全量快照文本\", \"delta\": \"本次增量\" },\n * \"sessionKey\": \"agent:main:main\",\n * \"seq\": 12,\n * \"ts\": 1772612049089\n * },\n * \"seq\": 16278\n * }\n */\nexport interface AgentEventPayload {\n /** 运行 ID */\n runId?: string;\n /** 流类型: assistant | tool | system */\n stream?: string;\n /** 事件子类型(可选,实际 agent 流式事件中通常不存在) */\n type?: string;\n /** 数据内容 */\n data?: {\n /** 全量文本快照(包含到当前为止的所有文本) */\n text?: string;\n /** 本次增量文本 */\n delta?: string;\n [key: string]: unknown;\n };\n /** payload 内序号(agent 事件流内的顺序) */\n seq?: number;\n /** 时间戳 */\n ts?: number;\n /** 会话标识 */\n sessionKey?: string;\n}\n\n/**\n * 类型守卫:判断是否为请求帧\n */\nexport function isRequestFrame(frame: OpenClawFrame): frame is OpenClawRequestFrame {\n return frame.type === 'req';\n}\n\n/**\n * 类型守卫:判断是否为响应帧\n */\nexport function isResponseFrame(frame: OpenClawFrame): frame is OpenClawResponseFrame {\n return frame.type === 'res';\n}\n\n/**\n * 类型守卫:判断是否为事件帧\n */\nexport function isEventFrame(frame: OpenClawFrame): frame is OpenClawEventFrame {\n return frame.type === 'event';\n}\n"],"names":["isRequestFrame","frame","type","isResponseFrame","isEventFrame"],"mappings":";;;;;;AAmOO,SAASA,eAAeC,KAAqD,EAAA;AAClF,EAAA,OAAOA,MAAMC,IAAS,KAAA,KAAA,CAAA;AACxB,CAAA;AAKO,SAASC,gBAAgBF,KAAsD,EAAA;AACpF,EAAA,OAAOA,MAAMC,IAAS,KAAA,KAAA,CAAA;AACxB,CAAA;AAKO,SAASE,aAAaH,KAAmD,EAAA;AAC9E,EAAA,OAAOA,MAAMC,IAAS,KAAA,OAAA,CAAA;AACxB;;;;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenClaw 工具函数
|
|
3
|
+
*/
|
|
4
|
+
import type { OpenClawFrame, OpenClawRequestFrame } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* 生成 UUID
|
|
7
|
+
*/
|
|
8
|
+
export declare function generateUUID(): string;
|
|
9
|
+
/**
|
|
10
|
+
* 解析 OpenClaw 消息帧
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseFrame(data: string | object): OpenClawFrame | null;
|
|
13
|
+
/**
|
|
14
|
+
* 创建请求帧
|
|
15
|
+
*/
|
|
16
|
+
export declare function createRequestFrame<T extends Record<string, unknown>>(method: string, params: T, id?: string): OpenClawRequestFrame<T>;
|
|
17
|
+
/**
|
|
18
|
+
* 获取平台信息
|
|
19
|
+
*/
|
|
20
|
+
export declare function getPlatform(): string;
|
|
21
|
+
/**
|
|
22
|
+
* 获取 User Agent
|
|
23
|
+
*/
|
|
24
|
+
export declare function getUserAgent(): string;
|
|
25
|
+
/**
|
|
26
|
+
* 获取语言环境
|
|
27
|
+
*/
|
|
28
|
+
export declare function getLocale(): string;
|
|
29
|
+
/**
|
|
30
|
+
* 检查 WebSocket 是否可用
|
|
31
|
+
*/
|
|
32
|
+
export declare function isWebSocketSupported(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* 格式化 WebSocket URL
|
|
35
|
+
* 确保 URL 使用正确的协议
|
|
36
|
+
*/
|
|
37
|
+
export declare function formatWebSocketUrl(url: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* 计算指数退避延迟
|
|
40
|
+
*/
|
|
41
|
+
export declare function calculateBackoffDelay(attempt: number, baseDelay: number, maxDelay?: number, jitter?: boolean): number;
|
|
42
|
+
/**
|
|
43
|
+
* 安全的 JSON 解析
|
|
44
|
+
*/
|
|
45
|
+
export declare function safeJsonParse<T>(data: string, fallback: T): T;
|
|
46
|
+
/**
|
|
47
|
+
* 深度合并对象
|
|
48
|
+
*/
|
|
49
|
+
export declare function deepMerge<T extends Record<string, unknown>>(target: T, source: Partial<T>): T;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
8
|
+
import _typeof from '@babel/runtime/helpers/typeof';
|
|
9
|
+
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
function generateUUID() {
|
|
13
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
|
|
14
|
+
var r = Math.random() * 16 | 0;
|
|
15
|
+
var v = c === "x" ? r : r & 3 | 8;
|
|
16
|
+
return v.toString(16);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function parseFrame(data) {
|
|
20
|
+
try {
|
|
21
|
+
var frame = typeof data === "string" ? JSON.parse(data) : data;
|
|
22
|
+
if (!frame || _typeof(frame) !== "object") {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
if (!["req", "res", "event"].includes(frame.type)) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
return frame;
|
|
29
|
+
} catch (_unused) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function createRequestFrame(method, params, id) {
|
|
34
|
+
return {
|
|
35
|
+
type: "req",
|
|
36
|
+
id: id || generateUUID(),
|
|
37
|
+
method: method,
|
|
38
|
+
params: params
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function getPlatform() {
|
|
42
|
+
if (typeof navigator !== "undefined") {
|
|
43
|
+
return navigator.platform || "web";
|
|
44
|
+
}
|
|
45
|
+
return "web";
|
|
46
|
+
}
|
|
47
|
+
function getUserAgent() {
|
|
48
|
+
if (typeof navigator !== "undefined") {
|
|
49
|
+
return navigator.userAgent;
|
|
50
|
+
}
|
|
51
|
+
return "TDesign-ChatEngine/1.0";
|
|
52
|
+
}
|
|
53
|
+
function getLocale() {
|
|
54
|
+
if (typeof navigator !== "undefined") {
|
|
55
|
+
return navigator.language || "en-US";
|
|
56
|
+
}
|
|
57
|
+
return "en-US";
|
|
58
|
+
}
|
|
59
|
+
function isWebSocketSupported() {
|
|
60
|
+
return typeof WebSocket !== "undefined";
|
|
61
|
+
}
|
|
62
|
+
function formatWebSocketUrl(url) {
|
|
63
|
+
if (url.startsWith("ws://") || url.startsWith("wss://")) {
|
|
64
|
+
return url;
|
|
65
|
+
}
|
|
66
|
+
if (url.startsWith("https://")) {
|
|
67
|
+
return url.replace("https://", "wss://");
|
|
68
|
+
}
|
|
69
|
+
if (url.startsWith("http://")) {
|
|
70
|
+
return url.replace("http://", "ws://");
|
|
71
|
+
}
|
|
72
|
+
return "ws://".concat(url);
|
|
73
|
+
}
|
|
74
|
+
function calculateBackoffDelay(attempt, baseDelay) {
|
|
75
|
+
var maxDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3e4;
|
|
76
|
+
var jitter = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
77
|
+
var delay = baseDelay * Math.pow(1.5, attempt - 1);
|
|
78
|
+
delay = Math.min(delay, maxDelay);
|
|
79
|
+
if (jitter) {
|
|
80
|
+
var jitterRange = delay * 0.1;
|
|
81
|
+
delay += (Math.random() - 0.5) * 2 * jitterRange;
|
|
82
|
+
}
|
|
83
|
+
return Math.floor(delay);
|
|
84
|
+
}
|
|
85
|
+
function safeJsonParse(data, fallback) {
|
|
86
|
+
try {
|
|
87
|
+
return JSON.parse(data);
|
|
88
|
+
} catch (_unused2) {
|
|
89
|
+
return fallback;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function deepMerge(target, source) {
|
|
93
|
+
var result = _objectSpread({}, target);
|
|
94
|
+
for (var key in source) {
|
|
95
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
96
|
+
var targetValue = result[key];
|
|
97
|
+
var sourceValue = source[key];
|
|
98
|
+
if (_typeof(targetValue) === "object" && targetValue !== null && _typeof(sourceValue) === "object" && sourceValue !== null && !Array.isArray(targetValue) && !Array.isArray(sourceValue)) {
|
|
99
|
+
result[key] = deepMerge(targetValue, sourceValue);
|
|
100
|
+
} else if (sourceValue !== void 0) {
|
|
101
|
+
result[key] = sourceValue;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export { calculateBackoffDelay, createRequestFrame, deepMerge, formatWebSocketUrl, generateUUID, getLocale, getPlatform, getUserAgent, isWebSocketSupported, parseFrame, safeJsonParse };
|
|
109
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/utils.ts"],"sourcesContent":["/**\n * OpenClaw 工具函数\n */\nimport type { OpenClawFrame, OpenClawRequestFrame, OpenClawResponseFrame, OpenClawEventFrame } from './types';\n\n/**\n * 生成 UUID\n */\nexport function generateUUID(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * 解析 OpenClaw 消息帧\n */\nexport function parseFrame(data: string | object): OpenClawFrame | null {\n try {\n const frame = typeof data === 'string' ? JSON.parse(data) : data;\n if (!frame || typeof frame !== 'object') {\n return null;\n }\n if (!['req', 'res', 'event'].includes(frame.type)) {\n return null;\n }\n return frame as OpenClawFrame;\n } catch {\n return null;\n }\n}\n\n/**\n * 创建请求帧\n */\nexport function createRequestFrame<T extends Record<string, unknown>>(\n method: string,\n params: T,\n id?: string,\n): OpenClawRequestFrame<T> {\n return {\n type: 'req',\n id: id || generateUUID(),\n method,\n params,\n };\n}\n\n/**\n * 获取平台信息\n */\nexport function getPlatform(): string {\n if (typeof navigator !== 'undefined') {\n return navigator.platform || 'web';\n }\n return 'web';\n}\n\n/**\n * 获取 User Agent\n */\nexport function getUserAgent(): string {\n if (typeof navigator !== 'undefined') {\n return navigator.userAgent;\n }\n return 'TDesign-ChatEngine/1.0';\n}\n\n/**\n * 获取语言环境\n */\nexport function getLocale(): string {\n if (typeof navigator !== 'undefined') {\n return navigator.language || 'en-US';\n }\n return 'en-US';\n}\n\n/**\n * 检查 WebSocket 是否可用\n */\nexport function isWebSocketSupported(): boolean {\n return typeof WebSocket !== 'undefined';\n}\n\n/**\n * 格式化 WebSocket URL\n * 确保 URL 使用正确的协议\n */\nexport function formatWebSocketUrl(url: string): string {\n if (url.startsWith('ws://') || url.startsWith('wss://')) {\n return url;\n }\n // 如果是 http/https,转换为 ws/wss\n if (url.startsWith('https://')) {\n return url.replace('https://', 'wss://');\n }\n if (url.startsWith('http://')) {\n return url.replace('http://', 'ws://');\n }\n // 默认添加 ws://\n return `ws://${url}`;\n}\n\n/**\n * 计算指数退避延迟\n */\nexport function calculateBackoffDelay(\n attempt: number,\n baseDelay: number,\n maxDelay = 30000,\n jitter = true,\n): number {\n let delay = baseDelay * Math.pow(1.5, attempt - 1);\n delay = Math.min(delay, maxDelay);\n \n if (jitter) {\n // 添加 ±10% 的抖动\n const jitterRange = delay * 0.1;\n delay += (Math.random() - 0.5) * 2 * jitterRange;\n }\n \n return Math.floor(delay);\n}\n\n/**\n * 安全的 JSON 解析\n */\nexport function safeJsonParse<T>(data: string, fallback: T): T {\n try {\n return JSON.parse(data) as T;\n } catch {\n return fallback;\n }\n}\n\n/**\n * 深度合并对象\n */\nexport function deepMerge<T extends Record<string, unknown>>(target: T, source: Partial<T>): T {\n const result = { ...target };\n \n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n const targetValue = result[key];\n const sourceValue = source[key];\n \n if (\n typeof targetValue === 'object' &&\n targetValue !== null &&\n typeof sourceValue === 'object' &&\n sourceValue !== null &&\n !Array.isArray(targetValue) &&\n !Array.isArray(sourceValue)\n ) {\n result[key] = deepMerge(\n targetValue as Record<string, unknown>,\n sourceValue as Record<string, unknown>,\n ) as T[typeof key];\n } else if (sourceValue !== undefined) {\n result[key] = sourceValue as T[typeof key];\n }\n }\n }\n \n return result;\n}\n"],"names":["generateUUID","replace","c","r","Math","random","v","toString","parseFrame","data","frame","JSON","parse","_typeof","includes","type","_unused","createRequestFrame","method","params","id","getPlatform","navigator","platform","getUserAgent","userAgent","getLocale","language","isWebSocketSupported","WebSocket","formatWebSocketUrl","url","startsWith","concat","calculateBackoffDelay","attempt","baseDelay","maxDelay","arguments","length","undefined","jitter","delay","pow","min","jitterRange","floor","safeJsonParse","fallback","_unused2","deepMerge","target","source","result","_objectSpread","key","Object","prototype","hasOwnProperty","call","targetValue","sourceValue","Array","isArray"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 共享 Activity 管理器
|
|
3
|
+
*
|
|
4
|
+
* 从 AG-UI ActivityManager 中 re-export 全局单例,
|
|
5
|
+
* 供 AG-UI 和 OpenClaw 等多个适配器共同使用。
|
|
6
|
+
*
|
|
7
|
+
* ActivityManager 处理 Activity 事件的 Snapshot/Delta 增量合并,
|
|
8
|
+
* 是协议无关的纯状态管理器。
|
|
9
|
+
*/
|
|
10
|
+
export { ActivityManagerImpl, activityManager } from '../agui/ActivityManager';
|
|
11
|
+
export type { ActivityManager } from '../agui/ActivityManager';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { ActivityManagerImpl, activityManager } from '../agui/ActivityManager.js';
|
|
8
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
9
|
+
import '@babel/runtime/helpers/createClass';
|
|
10
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
11
|
+
import '../../utils/index.js';
|
|
12
|
+
import '../../utils/immutable-patch.js';
|
|
13
|
+
import '@babel/runtime/helpers/typeof';
|
|
14
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
15
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
16
|
+
import '@babel/runtime/helpers/toArray';
|
|
17
|
+
//# sourceMappingURL=activity-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-manager.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 共享内容工厂函数
|
|
3
|
+
*
|
|
4
|
+
* 从 AG-UI utils 中提取的协议无关的内容创建函数,
|
|
5
|
+
* 供 AG-UI 和 OpenClaw 等多个适配器共同使用。
|
|
6
|
+
*/
|
|
7
|
+
export { createAIMessageContent, createToolCallContent, createActivityContent, createMarkdownContent, createTextContent, createThinkingContent, createReasoningContent, createSuggestionContent, } from '../agui/utils';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { createAIMessageContent, createActivityContent, createMarkdownContent, createReasoningContent, createSuggestionContent, createTextContent, createThinkingContent, createToolCallContent } from '../agui/utils.js';
|
|
8
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
9
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
10
|
+
import '@babel/runtime/helpers/typeof';
|
|
11
|
+
//# sourceMappingURL=content-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-factory.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 共享适配器工具层
|
|
3
|
+
*
|
|
4
|
+
* 包含协议无关的通用函数和管理器,供多个适配器共同使用。
|
|
5
|
+
* 这些工具从 AG-UI 的 utils 和 ActivityManager 中提取,
|
|
6
|
+
* 避免 OpenClaw 等适配器直接依赖 agui 模块。
|
|
7
|
+
*/
|
|
8
|
+
export { createAIMessageContent, createToolCallContent, createActivityContent, createMarkdownContent, createTextContent, createThinkingContent, createReasoningContent, createSuggestionContent, } from './content-factory';
|
|
9
|
+
export { mergeStringContent, updateToolCall, handleSuggestionToolCall, parseSSEData, } from './merge-utils';
|
|
10
|
+
export { ActivityManagerImpl, activityManager } from './activity-manager';
|
|
11
|
+
export type { ActivityManager } from './activity-manager';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import './content-factory.js';
|
|
8
|
+
import './merge-utils.js';
|
|
9
|
+
import './activity-manager.js';
|
|
10
|
+
export { createAIMessageContent, createActivityContent, createMarkdownContent, createReasoningContent, createSuggestionContent, createTextContent, createThinkingContent, createToolCallContent, handleSuggestionToolCall, mergeStringContent, parseSSEData, updateToolCall } from '../agui/utils.js';
|
|
11
|
+
export { ActivityManagerImpl, activityManager } from '../agui/ActivityManager.js';
|
|
12
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
13
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
14
|
+
import '@babel/runtime/helpers/typeof';
|
|
15
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
16
|
+
import '@babel/runtime/helpers/createClass';
|
|
17
|
+
import '../../utils/index.js';
|
|
18
|
+
import '../../utils/immutable-patch.js';
|
|
19
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
20
|
+
import '@babel/runtime/helpers/toArray';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { handleSuggestionToolCall, mergeStringContent, parseSSEData, updateToolCall } from '../agui/utils.js';
|
|
8
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
9
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
10
|
+
import '@babel/runtime/helpers/typeof';
|
|
11
|
+
//# sourceMappingURL=merge-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -125,6 +125,13 @@ export default class ChatEngine implements IChatEngine {
|
|
|
125
125
|
* 处理默认协议的流式请求
|
|
126
126
|
*/
|
|
127
127
|
private handleDefaultStreamRequest;
|
|
128
|
+
/**
|
|
129
|
+
* 处理 OpenClaw 协议的流式请求
|
|
130
|
+
*
|
|
131
|
+
* OpenClaw 使用 WebSocket 连接,消息流由 LLMService 内部的 OpenClawAdapter 处理。
|
|
132
|
+
* Adapter 将 OpenClaw 事件转换为 AIMessageContent 后,通过 onMessage 回调传递给 ChatEngine。
|
|
133
|
+
*/
|
|
134
|
+
private handleOpenClawStreamRequest;
|
|
128
135
|
/**
|
|
129
136
|
* 统一处理消息结果
|
|
130
137
|
* 支持单个内容块、多个内容块和增量更新
|