@rxdrag/ai-shared 0.0.1
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/README.md +9 -0
- package/dist/index.d.ts +261 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +25 -0
package/README.md
ADDED
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { AgentRunUsage } from "@rxdrag/rxcms-models";
|
|
2
|
+
/**
|
|
3
|
+
* Agent 类型定义
|
|
4
|
+
*
|
|
5
|
+
* 数据结构层次:
|
|
6
|
+
* Thread(对话上下文)
|
|
7
|
+
* └── Run(单次执行)
|
|
8
|
+
* └── TimelineItem(事件记录)
|
|
9
|
+
*
|
|
10
|
+
* SSE 事件流:
|
|
11
|
+
* run.status:running → thinking.delta → message.delta → tool.call → run.status:completed
|
|
12
|
+
*/
|
|
13
|
+
/** Agent 使用场景 */
|
|
14
|
+
export type AgentScene = "studio" | "website";
|
|
15
|
+
/** 对话线程 ID,创建数据库记录时自动生成 */
|
|
16
|
+
export type AgentThreadId = string;
|
|
17
|
+
/** 单次执行 ID */
|
|
18
|
+
export type AgentRunId = string;
|
|
19
|
+
/** Run 状态 */
|
|
20
|
+
export type AgentRunStatus = "running" | "completed" | "error" | "cancelled";
|
|
21
|
+
/** Thread 状态 */
|
|
22
|
+
export type AgentThreadStatus = "idle" | "running" | "completed" | "error";
|
|
23
|
+
/** 错误信息 */
|
|
24
|
+
export type AgentError = {
|
|
25
|
+
message: string;
|
|
26
|
+
code?: string;
|
|
27
|
+
};
|
|
28
|
+
/** 消息角色 */
|
|
29
|
+
export type AgentMessageRole = "user" | "assistant" | "system";
|
|
30
|
+
/** 消息记录(独立存储用,Timeline 中使用 payload 形式) */
|
|
31
|
+
export type AgentMessage = {
|
|
32
|
+
id: string;
|
|
33
|
+
threadId: AgentThreadId;
|
|
34
|
+
role: AgentMessageRole;
|
|
35
|
+
text: string;
|
|
36
|
+
createdAt: number;
|
|
37
|
+
};
|
|
38
|
+
/** 服务端工具调用状态 */
|
|
39
|
+
export type ToolCallStatus = "pending" | "running" | "succeeded" | "failed";
|
|
40
|
+
/** 服务端工具调用记录(独立存储用) */
|
|
41
|
+
export type ToolCallRecord = {
|
|
42
|
+
id: string;
|
|
43
|
+
threadId: AgentThreadId;
|
|
44
|
+
name: string;
|
|
45
|
+
input: unknown;
|
|
46
|
+
output?: unknown;
|
|
47
|
+
error?: unknown;
|
|
48
|
+
status: ToolCallStatus;
|
|
49
|
+
startedAt?: number;
|
|
50
|
+
finishedAt?: number;
|
|
51
|
+
elapsedMs?: number;
|
|
52
|
+
};
|
|
53
|
+
/** 客户端工具调用状态 */
|
|
54
|
+
export type ClientToolCallStatus = "awaiting_user" | "submitted" | "succeeded" | "failed" | "expired";
|
|
55
|
+
/** 客户端工具调用记录(独立存储用) */
|
|
56
|
+
export type ClientToolCallRecord = {
|
|
57
|
+
callId: string;
|
|
58
|
+
threadId: AgentThreadId;
|
|
59
|
+
name: string;
|
|
60
|
+
input: unknown;
|
|
61
|
+
output?: unknown;
|
|
62
|
+
error?: unknown;
|
|
63
|
+
status: ClientToolCallStatus;
|
|
64
|
+
createdAt: number;
|
|
65
|
+
updatedAt: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Timeline 事件类型
|
|
69
|
+
* - message: 用户或 AI 的消息
|
|
70
|
+
* - tool_call: 服务端工具调用
|
|
71
|
+
* - client_tool_call: 客户端工具调用(需要前端交互)
|
|
72
|
+
* - thinking: AI 推理过程(如 DeepSeek R1)
|
|
73
|
+
* - plan: 任务计划/TodoList
|
|
74
|
+
*/
|
|
75
|
+
export type AgentTimelineKind = "message" | "tool_call" | "client_tool_call" | "thinking" | "plan";
|
|
76
|
+
/** 消息类型的 payload */
|
|
77
|
+
export type AgentTimelinePayloadMessage = {
|
|
78
|
+
role: AgentMessageRole;
|
|
79
|
+
text: string;
|
|
80
|
+
};
|
|
81
|
+
/** 服务端工具调用的 payload */
|
|
82
|
+
export type AgentTimelinePayloadToolCall = {
|
|
83
|
+
callId: string;
|
|
84
|
+
name: string;
|
|
85
|
+
status: ToolCallStatus;
|
|
86
|
+
input?: unknown;
|
|
87
|
+
output?: unknown;
|
|
88
|
+
error?: unknown;
|
|
89
|
+
elapsedMs?: number;
|
|
90
|
+
};
|
|
91
|
+
/** 客户端工具调用的 payload */
|
|
92
|
+
export type AgentTimelinePayloadClientToolCall = {
|
|
93
|
+
callId: string;
|
|
94
|
+
name: string;
|
|
95
|
+
status: ClientToolCallStatus;
|
|
96
|
+
input?: unknown;
|
|
97
|
+
output?: unknown;
|
|
98
|
+
error?: unknown;
|
|
99
|
+
};
|
|
100
|
+
/** 推理过程的 payload */
|
|
101
|
+
export type AgentTimelinePayloadThinking = {
|
|
102
|
+
text: string;
|
|
103
|
+
};
|
|
104
|
+
/** 计划项状态 */
|
|
105
|
+
export type PlanItemStatus = "pending" | "in_progress" | "completed";
|
|
106
|
+
/** 计划项 */
|
|
107
|
+
export type PlanItem = {
|
|
108
|
+
id: string;
|
|
109
|
+
step: string;
|
|
110
|
+
status: PlanItemStatus;
|
|
111
|
+
};
|
|
112
|
+
/** 任务计划的 payload */
|
|
113
|
+
export type AgentTimelinePayloadPlan = {
|
|
114
|
+
explanation?: string;
|
|
115
|
+
items: PlanItem[];
|
|
116
|
+
};
|
|
117
|
+
/** Timeline payload 联合类型 */
|
|
118
|
+
export type AgentTimelinePayload = AgentTimelinePayloadMessage | AgentTimelinePayloadToolCall | AgentTimelinePayloadClientToolCall | AgentTimelinePayloadThinking | AgentTimelinePayloadPlan | Record<string, unknown>;
|
|
119
|
+
/**
|
|
120
|
+
* Timeline 事件项
|
|
121
|
+
* DB 存储结构:通用列 + payload(JSON)
|
|
122
|
+
*/
|
|
123
|
+
export type AgentTimelineItem = {
|
|
124
|
+
id: string;
|
|
125
|
+
kind: AgentTimelineKind;
|
|
126
|
+
createdAt: number;
|
|
127
|
+
updatedAt: number;
|
|
128
|
+
payload: AgentTimelinePayload;
|
|
129
|
+
};
|
|
130
|
+
/** 用户上传的附件 */
|
|
131
|
+
export type AgentAttachment = {
|
|
132
|
+
type: "image" | "file";
|
|
133
|
+
url: string;
|
|
134
|
+
name?: string;
|
|
135
|
+
mimeType?: string;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Run 状态变更事件
|
|
139
|
+
* - running: 开始执行,携带 userMessage 和 attachments
|
|
140
|
+
* - completed: 执行完成,携带 usage
|
|
141
|
+
* - error: 执行出错
|
|
142
|
+
* - cancelled: 被取消
|
|
143
|
+
*/
|
|
144
|
+
export type SseRunStatusEvent = {
|
|
145
|
+
event: "run.status";
|
|
146
|
+
data: {
|
|
147
|
+
status: "running" | "completed" | "error" | "cancelled";
|
|
148
|
+
threadId?: string;
|
|
149
|
+
runId: string;
|
|
150
|
+
websiteId?: string;
|
|
151
|
+
userMessage?: string;
|
|
152
|
+
attachments?: AgentAttachment[];
|
|
153
|
+
usage?: AgentRunUsage;
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
/** AI 回复流式输出(增量) */
|
|
157
|
+
export type SseMessageDeltaEvent = {
|
|
158
|
+
event: "message.delta";
|
|
159
|
+
data: {
|
|
160
|
+
runId: string;
|
|
161
|
+
delta: string;
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
/** AI 回复完成 */
|
|
165
|
+
export type SseMessageCompletedEvent = {
|
|
166
|
+
event: "message.completed";
|
|
167
|
+
data: {
|
|
168
|
+
runId: string;
|
|
169
|
+
text: string;
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
/** 服务端工具调用开始 */
|
|
173
|
+
export type SseToolCallEvent = {
|
|
174
|
+
event: "tool.call";
|
|
175
|
+
data: {
|
|
176
|
+
runId: string;
|
|
177
|
+
callId: string;
|
|
178
|
+
name: string;
|
|
179
|
+
input: unknown;
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
/** 服务端工具调用成功 */
|
|
183
|
+
export type SseToolResultEvent = {
|
|
184
|
+
event: "tool.result";
|
|
185
|
+
data: {
|
|
186
|
+
runId: string;
|
|
187
|
+
callId: string;
|
|
188
|
+
name: string;
|
|
189
|
+
input: unknown;
|
|
190
|
+
output: unknown;
|
|
191
|
+
elapsedMs?: number;
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
/** 服务端工具调用失败 */
|
|
195
|
+
export type SseToolErrorEvent = {
|
|
196
|
+
event: "tool.error";
|
|
197
|
+
data: {
|
|
198
|
+
runId: string;
|
|
199
|
+
callId: string;
|
|
200
|
+
name: string;
|
|
201
|
+
input: unknown;
|
|
202
|
+
error: unknown;
|
|
203
|
+
elapsedMs?: number;
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
/** 客户端工具调用(需要前端交互,如确认弹窗) */
|
|
207
|
+
export type SseClientToolCallEvent = {
|
|
208
|
+
event: "client_tool.call";
|
|
209
|
+
data: {
|
|
210
|
+
runId: string;
|
|
211
|
+
callId: string;
|
|
212
|
+
name: string;
|
|
213
|
+
input: unknown;
|
|
214
|
+
};
|
|
215
|
+
};
|
|
216
|
+
/** 客户端工具调用结果(前端提交) */
|
|
217
|
+
export type SseClientToolResultEvent = {
|
|
218
|
+
event: "client_tool.result";
|
|
219
|
+
data: {
|
|
220
|
+
runId: string;
|
|
221
|
+
callId: string;
|
|
222
|
+
name: string;
|
|
223
|
+
output: unknown;
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
/** AI 推理过程流式输出(增量) */
|
|
227
|
+
export type SseThinkingDeltaEvent = {
|
|
228
|
+
event: "thinking.delta";
|
|
229
|
+
data: {
|
|
230
|
+
runId: string;
|
|
231
|
+
delta: string;
|
|
232
|
+
};
|
|
233
|
+
};
|
|
234
|
+
/** AI 推理过程完成 */
|
|
235
|
+
export type SseThinkingCompletedEvent = {
|
|
236
|
+
event: "thinking.completed";
|
|
237
|
+
data: {
|
|
238
|
+
runId: string;
|
|
239
|
+
text: string;
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
/** 任务计划更新 */
|
|
243
|
+
export type SsePlanUpdateEvent = {
|
|
244
|
+
event: "plan.update";
|
|
245
|
+
data: {
|
|
246
|
+
runId: string;
|
|
247
|
+
explanation?: string;
|
|
248
|
+
items: PlanItem[];
|
|
249
|
+
};
|
|
250
|
+
};
|
|
251
|
+
/** 错误事件(可关联到具体 run) */
|
|
252
|
+
export type SseErrorEvent = {
|
|
253
|
+
event: "error";
|
|
254
|
+
data: {
|
|
255
|
+
runId?: string;
|
|
256
|
+
message: string;
|
|
257
|
+
code?: string;
|
|
258
|
+
};
|
|
259
|
+
};
|
|
260
|
+
/** 所有 SSE 事件的联合类型 */
|
|
261
|
+
export type AgentSseEvent = SseRunStatusEvent | SseMessageDeltaEvent | SseMessageCompletedEvent | SseThinkingDeltaEvent | SseThinkingCompletedEvent | SsePlanUpdateEvent | SseToolCallEvent | SseToolResultEvent | SseToolErrorEvent | SseClientToolCallEvent | SseClientToolResultEvent | SseErrorEvent;
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rxdrag/ai-shared",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"author": "Water.Li",
|
|
5
|
+
"module": "dist/index.mjs",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist"
|
|
8
|
+
],
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"devDependencies": {
|
|
13
|
+
"@types/node": "*",
|
|
14
|
+
"eslint": "^9.39.2",
|
|
15
|
+
"@rxdrag/tsconfig": "0.2.1",
|
|
16
|
+
"@rxdrag/eslint-config-custom": "0.2.13",
|
|
17
|
+
"@rxdrag/rxcms-models": "0.3.99"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"lint": "eslint . --ext .ts,tsx",
|
|
21
|
+
"clean": "rimraf -rf .turbo && rimraf -rf node_modules && rimraf -rf dist",
|
|
22
|
+
"build": "vite build"
|
|
23
|
+
},
|
|
24
|
+
"typings": "dist/index.d.ts"
|
|
25
|
+
}
|