@aalis/schema-message 0.10.0 → 0.11.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/dist/attachment-ref.d.ts +3 -0
- package/dist/attachment-ref.d.ts.map +1 -1
- package/dist/attachment-ref.js +8 -1
- package/dist/attachment-ref.js.map +1 -1
- package/dist/identity.d.ts +5 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +8 -0
- package/dist/identity.js.map +1 -1
- package/dist/incoming-content.d.ts +9 -4
- package/dist/incoming-content.d.ts.map +1 -1
- package/dist/incoming-content.js +18 -8
- package/dist/incoming-content.js.map +1 -1
- package/dist/index.d.ts +254 -75
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +139 -44
- package/dist/index.js.map +1 -1
- package/dist/tool-call-groups.d.ts +17 -0
- package/dist/tool-call-groups.d.ts.map +1 -0
- package/dist/tool-call-groups.js +45 -0
- package/dist/tool-call-groups.js.map +1 -0
- package/package.json +5 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TextRef } from '@aalis/schema-i18n';
|
|
1
2
|
/**
|
|
2
3
|
* OpenAI/DeepSeek chat completions 中 assistant 消息携带的工具调用载荷。
|
|
3
4
|
* 与 Message 同源同生命周期,故所属本包。
|
|
@@ -66,7 +67,8 @@ export interface Message {
|
|
|
66
67
|
* - `'cross-session-delegation'` :notice 子类——系统代发的任务指令(triggerType 为 proactive,如 workflow 的 agent 节点)。
|
|
67
68
|
* - `'host-notice'` :notice 子类——宿主撰写的事件通知(入站消息带 hostNotice)。
|
|
68
69
|
* - `'outbound-image'` :assistant 子类——agent 已发出的图片。
|
|
69
|
-
* -
|
|
70
|
+
* - 平台事件类型 :`'poke' | 'group_recall' | 'group_increase' | ...`(取自 OneBot 等适配器)。平台通知
|
|
71
|
+
* 落成 notice;转成入站的(如戳一戳、群文件上传)仍是 user,kind 取 {@link IncomingMessage}.noticeType。
|
|
70
72
|
*
|
|
71
73
|
* 第三方插件可定义自己的 kind 字符串,但请避开 `WellKnownKinds` 中已有的语义。
|
|
72
74
|
*/
|
|
@@ -110,20 +112,31 @@ export interface MessageAttachment {
|
|
|
110
112
|
/** 时长秒(仅音视频,如已知) */
|
|
111
113
|
durationSec?: number;
|
|
112
114
|
/**
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
+
* 出站附件:文本描述(识图、转写的结果),生产者已有时填上。出站记进会话历史时写进占位符的描述位
|
|
116
|
+
* (`[类型: desc | ref:xxx]`,见 api-message-archive 的 recordOutbound),memory_recall 据此命中
|
|
115
117
|
*/
|
|
116
118
|
description?: string;
|
|
117
119
|
/**
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
+
* 稳定的地址(网址或存储地址)。出站:记进会话历史时用它,没有时取 data 里的地址(见 api-message-archive 的
|
|
121
|
+
* outboundAddress),与平台落盘后改写的 data 无关。入站:预处理器把附件落了盘或换掉 data 时写的地址(媒体识别落盘上传的
|
|
122
|
+
* 图片、文件读取换成文件引用前的地址),存档的附件清单在 data 不是地址时按它记;适配器不填
|
|
120
123
|
*/
|
|
121
124
|
ref?: string;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
}
|
|
126
|
+
/** 一轮的事实(见 {@link IncomingMessage.fromTurn}) */
|
|
127
|
+
export interface FromTurn {
|
|
128
|
+
platform: string;
|
|
129
|
+
/** 物理发言者(同 {@link IncomingMessage.userId},没有时不设,如定时任务那一轮) */
|
|
130
|
+
userId?: string;
|
|
131
|
+
/** 参与者:那次调用的参与者(按 api-authority 的 originTurnOf 算,批过的是批的人) */
|
|
132
|
+
participants: readonly {
|
|
133
|
+
platform: string;
|
|
134
|
+
userId: string;
|
|
135
|
+
}[];
|
|
136
|
+
/** 那一轮的来源(同 {@link IncomingMessage.source},人亲手发来的没有) */
|
|
137
|
+
source?: string;
|
|
138
|
+
/** 那一轮自己的起它的那一轮 */
|
|
139
|
+
fromTurn?: FromTurn;
|
|
127
140
|
}
|
|
128
141
|
export interface IncomingMessage {
|
|
129
142
|
content: string;
|
|
@@ -149,8 +162,10 @@ export interface IncomingMessage {
|
|
|
149
162
|
*/
|
|
150
163
|
_attachmentDescriptions?: Array<string | undefined>;
|
|
151
164
|
/**
|
|
152
|
-
* 平台类型名:适配器在 PlatformAdapter.sessionTypes 里声明的类型之一(如 OneBot 的 group、private、channel
|
|
153
|
-
*
|
|
165
|
+
* 平台类型名:适配器在 PlatformAdapter.sessionTypes 里声明的类型之一(如 OneBot 的 group、private、channel)。会话管理在
|
|
166
|
+
* IM 房间建档时按它记下聊天窗口;判是不是多方读会话记录的 originChat.multiParty(子会话取根会话的),不看消息上的它。
|
|
167
|
+
* 不带时,平台声明了多方类型的按其中第一个、多方,只声明了一对一类型的按第一个,没声明的按 private、一对一
|
|
168
|
+
* (api-platform 的 resolveSessionType)
|
|
154
169
|
*/
|
|
155
170
|
sessionType?: string;
|
|
156
171
|
/** 收到这条消息的机器人账号(平台给出时由适配器填,如 OneBot 的 self_id) */
|
|
@@ -158,9 +173,21 @@ export interface IncomingMessage {
|
|
|
158
173
|
/**
|
|
159
174
|
* 系统侧注入者的来源标识(如 'idle-trigger'、'scheduler'、'workflow:<id>')。
|
|
160
175
|
* 平台适配器投递真人消息**不设置**此字段:带 source 的消息被视为内部注入——不经触发策略、
|
|
161
|
-
*
|
|
176
|
+
* 不过回复后冷却(禁言与限速照常生效),也不过指令解析(声明了 {@link IncomingMessage.ownerApproved} 的除外),
|
|
177
|
+
* 不进长期记忆(向量记忆,档案的旁观计数与事实提取)。
|
|
178
|
+
* 带来源的输入各自成一轮,不与别的输入叠加;注入方的来源应当标识发送方。
|
|
162
179
|
*/
|
|
163
180
|
source?: string;
|
|
181
|
+
/**
|
|
182
|
+
* 到达序号:网关在入站相位之前给每条入站消息打的,这次运行内递增(网关重载后从头计)。只用于日志关联(见
|
|
183
|
+
* {@link arrivalTag}),不落库、不进模型;没经网关进来的没有
|
|
184
|
+
*/
|
|
185
|
+
arrival?: number;
|
|
186
|
+
/**
|
|
187
|
+
* 注入方的声明:这段文字在建立时经 owner 过目过原文(owner 自己写下,或每次由 owner 审批),算作 owner 亲手写的。
|
|
188
|
+
* 注入方必须同时设 source;只给经 owner 过目原文的文字设,第一方的设置方在仓内守卫里登记
|
|
189
|
+
*/
|
|
190
|
+
ownerApproved?: boolean;
|
|
164
191
|
/** 群名称(仅群聊时可用) */
|
|
165
192
|
groupName?: string;
|
|
166
193
|
/** 多方聊天窗口的 id,由适配器填(如 OneBot 的群号,频道为 `<guild>:<channel>`) */
|
|
@@ -186,19 +213,34 @@ export interface IncomingMessage {
|
|
|
186
213
|
userId?: string;
|
|
187
214
|
nickname?: string;
|
|
188
215
|
};
|
|
189
|
-
/**
|
|
216
|
+
/**
|
|
217
|
+
* 随这条消息转发来的聊天记录(如 OneBot 的合并转发),按在正文里出现的先后,不是发言人自己写的话。适配器在 content 里它所在的
|
|
218
|
+
* 位置写 {@link forwardPlaceholder}(id)(转发 id 不含双引号;用户手打的同样写法先转义,同 {@link AT_SELF_PATTERN}),给模型的
|
|
219
|
+
* 展开写在 content、给界面的事实写在 facts;适配器必须在 content 里写占位,漏写的展开不进归档文本。归档文本
|
|
220
|
+
* ({@link buildIncomingContent})把占位换回展开,模型看到的与展开写在正文里一样;发言人的话(content、存档的 SpokenContent)、
|
|
221
|
+
* 点名、禁言关键词与 @ 的账号只看 content;存档另记成 {@link WellKnownMetadataKeys}.Forwards。别的平台有转发照这条接:渲染成
|
|
222
|
+
* 占位、展开放这里、转义手打的写法;存档、会话服务、WebUI、点名与画像都不认平台
|
|
223
|
+
*/
|
|
224
|
+
forwards?: ForwardedChat[];
|
|
225
|
+
/** 通知子类型(如 poke、group_upload 等非消息事件);存档记成消息的 kind */
|
|
190
226
|
noticeType?: string;
|
|
191
227
|
/** 通知动作是否指向机器人;poke 为 false 时按未点名互动判断,省略沿用戳机器人的语义。 */
|
|
192
228
|
noticeTargetIsSelf?: boolean;
|
|
229
|
+
/**
|
|
230
|
+
* 平台事件合成或转成的入站(如好友申请、入群邀请、戳一戳、群文件上传)给人看的那句(文字对象):content 是写给模型的
|
|
231
|
+
* (有的带处理办法与工具用法),界面显示这一句,按读者的语言渲染。适配器写,真人发言不设;不进模型的上下文,也不参与触发与
|
|
232
|
+
* 回复的判定,存档按 {@link WellKnownMetadataKeys}.Text 记下
|
|
233
|
+
*/
|
|
234
|
+
text?: TextRef;
|
|
193
235
|
/**
|
|
194
236
|
* 触发类型(下游插件可据此区分主发言者语义)。真人消息由 inbound:trigger 相位生效的触发插件写入
|
|
195
237
|
* (immediate / interval),平台适配器不设置;内部注入由注入方自带(idle、proactive)。flow 相位对
|
|
196
|
-
* immediate
|
|
238
|
+
* immediate 不查回复后冷却与限速,所以不经触发插件改写时(生效范围外、没装触发插件),入站消息上预设的
|
|
197
239
|
* immediate 会原样生效。
|
|
198
240
|
* - 'direct' 私聊或单一用户直连(默认语义:userId 是主发言者)
|
|
199
241
|
* - 'immediate' 群聊中被 @/名字主动触发(userId 是主发言者)
|
|
200
|
-
* - 'interval'
|
|
201
|
-
* - 'idle' 空闲自动触发(无 userId /
|
|
242
|
+
* - 'interval' 群聊中没点名、因消息频率/活跃度被挑中(提示词按无明确主发言者写;授权身份照旧是发言者)
|
|
243
|
+
* - 'idle' 空闲自动触发(无 userId / 无主发言者);存档不落档,agent 以 system 指令块交给模型
|
|
202
244
|
* - 'proactive' 系统代发给 agent 的任务指令,如 workflow 的 agent 节点(content 是任务描述而非用户消息)
|
|
203
245
|
* 未设置时下游插件按 'direct' 兼容处理。
|
|
204
246
|
*/
|
|
@@ -209,31 +251,37 @@ export interface IncomingMessage {
|
|
|
209
251
|
*
|
|
210
252
|
* 与 platform/userId 的区别:
|
|
211
253
|
* - platform/userId 表示消息的物理来源(路由+发言者标识),写归档、做用户档案/关系;
|
|
212
|
-
* - actor 表示授权身份,agent
|
|
254
|
+
* - actor 表示授权身份,agent 算这一轮的参与者时优先使用 actor(api-authority 的 originTurnOf),
|
|
213
255
|
* 从而让 authority 守卫按 actor 的 (platform, userId) 查权限等级。
|
|
214
256
|
*
|
|
215
257
|
* 触发器(如 scheduler)应在创建任务时 snapshot 调用者身份,触发时回填此字段;
|
|
216
258
|
* 不能由 LLM/AI 在工具入参中自由指定,避免提权。
|
|
217
259
|
*
|
|
218
|
-
*
|
|
219
|
-
*
|
|
220
|
-
*
|
|
260
|
+
* 没有人的注入(不延续调用的宿主通知等)没有可代之人:注入方回填 {@link selfInitiatedActor}(userId 为空串 = 无主体),
|
|
261
|
+
* authority 按默认等级裁决、永不视为 owner。'idle' 合成消息本就不带 userId,天然无主体,无需回填。
|
|
262
|
+
* 带 {@link IncomingMessage.fromTurn} 的消息不设此字段,授权身份取它的参与者。
|
|
221
263
|
*/
|
|
222
264
|
actor?: {
|
|
223
265
|
platform: string;
|
|
224
266
|
userId: string;
|
|
225
267
|
};
|
|
268
|
+
/**
|
|
269
|
+
* 起它的那一轮:续做(如后台任务的结束通知)与子任务(任务消息与追问)的消息带着起它的那次调用所在那一轮的事实,权限服务
|
|
270
|
+
* 按那一轮判续做与子任务这一轮的类别与主体,这一轮的参与者取它的参与者(agent 经 api-authority 的 originTurnOf
|
|
271
|
+
* 拼工具调用上下文)。只由登记的注入方填(`test/architecture/host-notice-identity.test.ts`),只在那次调用在入站回合里时填,
|
|
272
|
+
* 不由模型给;不进归档与提示词钩子
|
|
273
|
+
*/
|
|
274
|
+
fromTurn?: FromTurn;
|
|
226
275
|
/**
|
|
227
276
|
* 宿主撰写的事件通知(不是任何人的发言)。带这个字段的消息:
|
|
228
277
|
* - 注入方必须同时设 `source`;不设 userId、nickname、sessionType、triggerType;
|
|
229
|
-
* - actor
|
|
230
|
-
*
|
|
231
|
-
* selfInitiatedActor),并设 `callerUserId`。延续身份的注入方要在 `test/architecture/host-notice-identity.test.ts` 登记;
|
|
278
|
+
* - 身份:不延续某次调用的通知的 actor 用 {@link selfInitiatedActor};延续某次工具调用的(如后台任务结束通知)不设
|
|
279
|
+
* actor,改带 {@link IncomingMessage.fromTurn}(那次调用所在那一轮),platform 同那一轮;
|
|
232
280
|
* - agent 渲染为 system 通知,归档为 role 'notice'、kind {@link WellKnownKinds}.HostNotice;
|
|
233
281
|
* - 不进向量记忆、抽取与记忆扩窗。
|
|
234
282
|
*
|
|
235
|
-
* `kind`
|
|
236
|
-
*
|
|
283
|
+
* `kind` 是通知的子类(如后台任务的结束通知 'background-task'),`id` 是注入方生成的通知标识(日志与账本对位用,存档
|
|
284
|
+
* 记下;含义随 kind,如后台任务结束通知的是任务 id)。
|
|
237
285
|
* `untrusted` 是注入方已用 wrapUntrustedContent 包好的不可信段:只在当轮渲染时接在正文之后,
|
|
238
286
|
* 不归档、不进任何存储。宿主撰写的行一律放在 content 里。
|
|
239
287
|
*/
|
|
@@ -250,12 +298,6 @@ export interface IncomingMessage {
|
|
|
250
298
|
* 需要 Agent 后续行动的通知不设置此项。
|
|
251
299
|
*/
|
|
252
300
|
reportOnly?: boolean;
|
|
253
|
-
/**
|
|
254
|
-
* 通知延续某次工具调用时,那次调用的 ToolCallContext.userId。plugin-agent 只用它填本轮工具调用上下文的 userId
|
|
255
|
-
* (工具眼里是谁在调)与 inbound.callerUserId(执行守卫据此判这一轮是不是 owner 链的延续),并让这位发言者在同一会话的
|
|
256
|
-
* 消息打断这一轮;不当作发言者:归档、用户档案、关系与提示词钩子都不看它。须与 actor 取自同一次调用;不延续某次调用的通知不设。
|
|
257
|
-
*/
|
|
258
|
-
callerUserId?: string;
|
|
259
301
|
/**
|
|
260
302
|
* 回复这条通知时引用哪条消息:平台消息 id,取自起那次调用的入站消息(ToolCallContext.inbound.messageId)。
|
|
261
303
|
* plugin-agent 回复时把它带进出站消息的 {@link OutgoingMessage.replyTo};入站消息没有平台消息 id 的不设
|
|
@@ -266,15 +308,16 @@ export interface IncomingMessage {
|
|
|
266
308
|
* 写给模型的 content 不给人看;不进模型的上下文,存档按 {@link WellKnownMetadataKeys}.HostNoticeFacts 记下
|
|
267
309
|
*/
|
|
268
310
|
facts?: Record<string, string | number>;
|
|
311
|
+
/**
|
|
312
|
+
* 给人看的那句话(文字对象):content 是写给模型的,界面显示这一句,按读者的语言渲染。不进模型的上下文,
|
|
313
|
+
* 存档按 {@link WellKnownMetadataKeys}.Text 记下
|
|
314
|
+
*/
|
|
315
|
+
text?: TextRef;
|
|
269
316
|
};
|
|
270
317
|
}
|
|
271
318
|
/**
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
* 'interval' 触发复用的是恰好撞上频率阈值的那条真人消息,若不回填 actor,授权轴会经
|
|
275
|
-
* `actor ?? {platform, userId}` 回退到「最后发言者」——绝大多数回合按陌生人 0 级判权
|
|
276
|
-
* (自发回合工具全挂),而 owner 恰好最后发言时整轮(含群内任何提示注入)以 owner 等级
|
|
277
|
-
* 执行。契约(triggerType 注释)与 prompt 侧特判都把 interval 当无主发言者,授权轴应一致。
|
|
319
|
+
* 没有人的注入的授权身份:无主体。只给没有人的注入(不延续调用的宿主通知等)用;人发来的话(含群里没点名、被频率触发挑中的)
|
|
320
|
+
* 按说话的人算,不用它。
|
|
278
321
|
*
|
|
279
322
|
* userId 取空串而非缺省:`actor?.userId ?? userId` 回退链遇空串不回退(?? 只认 null/undefined),
|
|
280
323
|
* 由此派生的定时任务/子任务保持匿名,不会漂回物理发言者;authority 的等级查表以空
|
|
@@ -284,26 +327,59 @@ export declare function selfInitiatedActor(platform: string): {
|
|
|
284
327
|
platform: string;
|
|
285
328
|
userId: string;
|
|
286
329
|
};
|
|
330
|
+
/**
|
|
331
|
+
* 一轮的各条输入是不是同一位物理发言者说的(平台与账号都相同):会话语义的发言者(工具调用上下文的 userId、人设的说话人
|
|
332
|
+
* 事实)只在这时有
|
|
333
|
+
*/
|
|
334
|
+
export declare function oneSpeaker(inputs: readonly Pick<IncomingMessage, 'platform' | 'userId'>[]): boolean;
|
|
335
|
+
/**
|
|
336
|
+
* 这条输入点名了她:真人输入(不带 source)的触发类型为 direct 或 immediate,没有触发类型的(没经触发判定)按 direct 算。带来源的
|
|
337
|
+
* 注入(定时任务、编排、各种通知)不是谁在跟她说话,不算点名。焦点指引、排着开的一轮的说明、档案与关系子图都按它判
|
|
338
|
+
*/
|
|
339
|
+
export declare function wasAddressed({ source, triggerType, }: Pick<IncomingMessage, 'source' | 'triggerType'>): boolean;
|
|
340
|
+
/**
|
|
341
|
+
* 对她的 @:适配器按机器人账号写下的 `<at self …>…</at>` 标记,读的一方只认这个结构化标记,不按文字猜。文法与读它的几处见
|
|
342
|
+
* docs/concepts/message-llm-pipeline.md
|
|
343
|
+
*/
|
|
344
|
+
export declare const AT_SELF_PATTERN: RegExp;
|
|
345
|
+
/**
|
|
346
|
+
* 一段文字 @ 了哪些账号:适配器写下的 `<at id="…">` 与 `<at self id="…">` 标记里的账号,按出现先后去重;@全体不是账号,
|
|
347
|
+
* 不算:入站写作 `<at>all</at>`(不带 id),她的回复里写作 `<at id="all">`(出站按这个发成 @全体)。文法见
|
|
348
|
+
* {@link AT_SELF_PATTERN}。存档按它从发言人自己写的话里抽,记成元数据的 {@link WellKnownMetadataKeys}.Mentions
|
|
349
|
+
*/
|
|
350
|
+
export declare function extractMentions(text: string): string[];
|
|
287
351
|
/**
|
|
288
352
|
* 传输端确认已接受消息,不代表收件人已阅读;失败也 resolve,避免无人等待时产生拒绝。
|
|
289
|
-
*
|
|
290
|
-
*
|
|
353
|
+
* 成功分支的 messageIds 是正文送达时平台给出的消息 id(分条发出的各一个,按发送顺序;与入站 replyTo.messageId 同一写法,
|
|
354
|
+
* 引用回复据此认出被引用的是哪一条),平台不给时没有。
|
|
355
|
+
* 失败分支的 error 是给人看的原因,可以是文字对象(@aalis/schema-i18n 的 TextRef,按读者语言显示);交给模型与写日志的
|
|
356
|
+
* 一方取 toSource。unconfirmed 表示有请求已经发出、只是没等到平台确认(如 OneBot 发消息或上传文件超时、等回执时断线),那部分
|
|
357
|
+
* 可能已经送达:发起方不得自动重发,也不得劝模型重发。没有这个标记的失败才是确定没送达。
|
|
358
|
+
* sentPieces 是逐条发出(分条的正文与各自成一条的附件)停在中途时已经发出的条数:前 sentPieces 条平台已经收下,之后的没收下
|
|
359
|
+
* 或结果未知,补发只补后面的;一条都没发出时没有。
|
|
291
360
|
*/
|
|
292
361
|
export type OutboundDeliveryResult = {
|
|
293
362
|
ok: true;
|
|
363
|
+
messageIds?: string[];
|
|
294
364
|
} | {
|
|
295
365
|
ok: false;
|
|
296
|
-
error: string;
|
|
366
|
+
error: string | TextRef;
|
|
297
367
|
unconfirmed?: true;
|
|
368
|
+
sentPieces?: number;
|
|
298
369
|
};
|
|
299
370
|
/**
|
|
300
|
-
*
|
|
371
|
+
* 发起方等待传输确认的上限。适配器自身的发送可能更久(如 OneBot 先下载附件落盘、再逐条发出,下载与每条的回执各等 30 秒),
|
|
301
372
|
* 超过上限时发起方应报「未确认、请勿重发」而不是失败;上限只为不带回合中止信号的调用方
|
|
302
373
|
* (mcp-server、workflow)不至于一等两三分钟。
|
|
303
374
|
*/
|
|
304
375
|
export declare const DELIVERY_WAIT_MS = 90000;
|
|
305
376
|
/**
|
|
306
|
-
*
|
|
377
|
+
* 日志行里一条输入的到达序号,接在动作之后:` #<序号>`(带前导空格),没经网关进来的为空串。日志行据此串起同一条输入,
|
|
378
|
+
* 不记正文与昵称
|
|
379
|
+
*/
|
|
380
|
+
export declare function arrivalTag({ arrival }: Pick<IncomingMessage, 'arrival'>): string;
|
|
381
|
+
/**
|
|
382
|
+
* 等 {@link OutgoingMessage.delivery} 结算;signal 中止(回合被停下、插件停机)或到 timeoutMs
|
|
307
383
|
* (缺省 {@link DELIVERY_WAIT_MS})时不再等,返回 undefined。适配器的发送不随之取消,所以 undefined 只能当
|
|
308
384
|
* 「未确认」,不能当「未发送」。
|
|
309
385
|
*/
|
|
@@ -311,6 +387,12 @@ export declare function awaitDelivery<T>(delivery: Promise<T>, signal?: AbortSig
|
|
|
311
387
|
/** 发往平台的回复:只带要发出去的正文与附件。思考与工具时间线在存档的 Message 上,客户端经会话协议拿 */
|
|
312
388
|
export interface OutgoingMessage {
|
|
313
389
|
content: string;
|
|
390
|
+
/**
|
|
391
|
+
* 正文是要翻译的文字时,它的文字对象:发起方同时写 content(`toSource(text)`,按原文渲染的整句)。经网关派发时,网关按
|
|
392
|
+
* 这条消息所在会话的语言把它渲染进 content(i18n 缺席或渲染抛错时按原文);按连接显示的出口(会话协议的时间线、WebUI
|
|
393
|
+
* 会话的历史)另按各自的读者渲染它,其余照旧读 content
|
|
394
|
+
*/
|
|
395
|
+
text?: TextRef;
|
|
314
396
|
sessionId: string;
|
|
315
397
|
platform?: string;
|
|
316
398
|
/**
|
|
@@ -332,14 +414,24 @@ export interface OutgoingMessage {
|
|
|
332
414
|
/**
|
|
333
415
|
* 助手要附带发送的多模态附件(图片/音频/视频/文件)。
|
|
334
416
|
* 适配器(OneBot / WebUI 等)应优先发结构化 attachments,把远程 URL 主动下载为本地文件后用 file:// 形式发送。
|
|
335
|
-
* 若 attachments 为空但 content 内含 `<image url="...">` 标记,则由适配器解析嵌入式发图(旧路径,仍兼容)。
|
|
336
417
|
*/
|
|
337
418
|
attachments?: MessageAttachment[];
|
|
338
|
-
/**
|
|
419
|
+
/**
|
|
420
|
+
* 正文含平台标记、要解析:有标记语法的适配器(如 OneBot 的 `<at>`、`<image|record|video url>`、`<reply>`)把它们解析成
|
|
421
|
+
* @、媒体与引用,并可分条延迟发送;不设的正文按纯文字原样整条发出,不解析、不分条。要发平台标记的出站自己设它;
|
|
422
|
+
* attachments 不受它影响。媒体标记的地址不是网址的(本机路径、存储地址、data URI 等),适配器不得自己读取,也不交给实现端,
|
|
423
|
+
* 一律去掉并报投递失败:存储里的媒体由 plugin-image-sender 在派发前过媒体判据转成附件,留在正文里的存储地址是没转成的(过
|
|
424
|
+
* 不了判据、读不出、不是对应媒体,或没装它)。正文里的媒体标记怎么发,见 docs/services/media.md
|
|
425
|
+
*/
|
|
426
|
+
markup?: boolean;
|
|
427
|
+
/** 消息来源:agent = AI 发出的(回复与经工具发的附件),system = 宿主提示,command = 指令回复 */
|
|
339
428
|
source?: 'agent' | 'system' | 'command';
|
|
340
429
|
/** 由工具调用发出的消息:那次调用的 id(ToolCallContext.callId),会话的客户端据此把消息挂到对应的工具卡上 */
|
|
341
430
|
callId?: string;
|
|
342
|
-
/**
|
|
431
|
+
/**
|
|
432
|
+
* 这一轮发出的消息(她的回复、[错误] 等提示与经工具发出的):这一轮的 id。适配器记回复的投递失败时带上它,回看历史时据此标出
|
|
433
|
+
* 这一轮的回复没发出;出站记进会话历史的各条同样记下(api-message-archive 的 recordOutbound)
|
|
434
|
+
*/
|
|
343
435
|
turnId?: string;
|
|
344
436
|
/**
|
|
345
437
|
* 本条回复的 LLM 元数据(agent 存档时同一份写进这条 assistant 消息元数据的 {@link WellKnownMetadataKeys}.ModelInfo),
|
|
@@ -401,7 +493,11 @@ declare module '@aalis/core' {
|
|
|
401
493
|
archivedMessage: Message;
|
|
402
494
|
}];
|
|
403
495
|
'outbound:message': [message: OutgoingMessage];
|
|
404
|
-
/**
|
|
496
|
+
/**
|
|
497
|
+
* 送达之后的消息快照,给存档与旁观者用:content 只在文字送达时有,attachments 只包含成功的附件。认领回执的适配器在送达后对
|
|
498
|
+
* 每条消息都发,只有文字的也发,存档据此记进会话历史;送达本身就是写进会话历史的适配器(如 WebUI)不发,改为调 api-message-archive
|
|
499
|
+
* 的 recordOutbound 并等它兑现。
|
|
500
|
+
*/
|
|
405
501
|
'outbound:delivered': [message: OutgoingMessage];
|
|
406
502
|
'outbound:stream': [chunk: StreamChunkMessage];
|
|
407
503
|
}
|
|
@@ -409,16 +505,21 @@ declare module '@aalis/core' {
|
|
|
409
505
|
/**
|
|
410
506
|
* 已知的 Message.kind 语义常量。第三方插件可使用新值;本表仅作为框架内的契约。
|
|
411
507
|
*
|
|
412
|
-
* - `EventMarker`:纯 UI
|
|
508
|
+
* - `EventMarker`:纯 UI/控制标记(如对话压缩分隔条、不是她回复的出站文字)。LLM 出口与抽取均应排除。
|
|
413
509
|
* - `CrossSessionDelegation`:代发任务——triggerType 为 proactive 的入站消息(如 workflow 的 agent 节点)归档时标的 kind。
|
|
414
|
-
* - `OutboundImage
|
|
415
|
-
* - `OutboundAudio
|
|
416
|
-
* - `OutboundVideo
|
|
417
|
-
* - `OutboundFile
|
|
510
|
+
* - `OutboundImage`:发出的图片占位(content 为 attachment ref 标签,记法见 {@link outboundMediaMessage})。
|
|
511
|
+
* - `OutboundAudio`:发出的音频占位。
|
|
512
|
+
* - `OutboundVideo`:发出的视频占位。
|
|
513
|
+
* - `OutboundFile`:发出的文件占位(描述位是文件名)。
|
|
418
514
|
* - `HostNotice`:宿主撰写的事件通知——带 `hostNotice` 的入站消息归档时标的 kind(role 为 notice)。
|
|
515
|
+
* - `IdlePrompt`:空闲开话题的提示——triggerType 为 idle 的入站交给模型时那条指令块的 injector。它不落档,没有这个 kind 的
|
|
516
|
+
* 归档消息。
|
|
419
517
|
* - `OutboundDeliveryFailed`:平台适配器记下的投递失败(role 为 system):她发出的消息平台没收下或结果未知,进下一轮的上下文,
|
|
420
518
|
* 让她知道刚才那条没送达。metadata 带 {@link WellKnownMetadataKeys} 的 `DeliveryError`(与投递结果同一句原因),以及那条
|
|
421
|
-
* 消息的 `TurnId`(一轮的回复)或 `CallId
|
|
519
|
+
* 消息的 `TurnId`(一轮的回复)或 `CallId`(经工具发出的);逐条发出停在中途时另带 `SentPieces`。
|
|
520
|
+
* - `TurnStopped`:agent 记下的停下标记(role 为 system):一轮在回复之前被停下、会话历史里已有这一轮的输入或工具调用时写,
|
|
521
|
+
* 进下一轮的上下文,让她知道那一轮停下了、没说完的话没有留下;有停下的人时写是谁。metadata 带这一轮的 `TurnId`;回合记录
|
|
522
|
+
* 照旧另落事件标记,这一条不带 `TurnRecord`。
|
|
422
523
|
*/
|
|
423
524
|
export declare const WellKnownKinds: {
|
|
424
525
|
readonly EventMarker: "event-marker";
|
|
@@ -428,63 +529,128 @@ export declare const WellKnownKinds: {
|
|
|
428
529
|
readonly OutboundVideo: "outbound-video";
|
|
429
530
|
readonly OutboundFile: "outbound-file";
|
|
430
531
|
readonly HostNotice: "host-notice";
|
|
532
|
+
readonly IdlePrompt: "idle-prompt";
|
|
431
533
|
readonly OutboundDeliveryFailed: "outbound-delivery-failed";
|
|
534
|
+
readonly TurnStopped: "turn-stopped";
|
|
432
535
|
};
|
|
433
536
|
export type WellKnownKind = (typeof WellKnownKinds)[keyof typeof WellKnownKinds];
|
|
434
537
|
/**
|
|
435
|
-
*
|
|
436
|
-
*
|
|
437
|
-
*
|
|
538
|
+
* 发出的图片、音频、视频与文件在会话历史里的记法:kind 为 OutboundImage / OutboundAudio / OutboundVideo / OutboundFile,
|
|
539
|
+
* 正文是附件引用占位符({@link formatAttachmentRef})。出站的 source 是 agent 的是她发的,role 为 assistant;其余是插件发的,
|
|
540
|
+
* role 为 notice(进模型时是一条系统通知,不算她的发言)。归档方一律用它,memory_recall 与会话服务回看历史才能按同一格式命中、
|
|
541
|
+
* 还原。文件的 desc 记文件名。时间戳与 metadata 由调用方补上。
|
|
542
|
+
*/
|
|
543
|
+
export declare function outboundMediaMessage(kind: MessageAttachment['kind'], ref: string, { desc, source }?: {
|
|
544
|
+
desc?: string;
|
|
545
|
+
source?: OutgoingMessage['source'];
|
|
546
|
+
}): Message & {
|
|
547
|
+
content: string;
|
|
548
|
+
};
|
|
549
|
+
/**
|
|
550
|
+
* 不是她回复的出站文字(`source` 不是 agent,如指令的回复、宿主提示)在会话历史里的记法:一条事件标记,不进模型的上下文,
|
|
551
|
+
* 正文是 `content`,元数据记文字对象({@link WellKnownMetadataKeys} 的 `Text`,有才记),会话服务据此还原成通知。她的回复
|
|
552
|
+
* (agent 存档)与空文字不记,回 undefined。归档方一律用它;时间戳与出站的 `Source`、`TurnId`、`CallId` 由调用方补上(与
|
|
553
|
+
* {@link outboundMediaMessage} 记的附件同一条规则,见 api-message-archive 的 recordOutbound)
|
|
438
554
|
*/
|
|
439
|
-
export declare function
|
|
555
|
+
export declare function outboundMarkerMessage(msg: OutgoingMessage): Message | undefined;
|
|
440
556
|
/** 存档里提问带的一个附件({@link WellKnownMetadataKeys}.Attachments 的一项) */
|
|
441
557
|
export interface ArchivedAttachment {
|
|
442
558
|
kind: MessageAttachment['kind'];
|
|
443
559
|
/** 入站附件带的文件名 */
|
|
444
560
|
name?: string;
|
|
445
|
-
/** 地址:存储地址(`<根>:/路径`)或网址;入站附件的 data
|
|
561
|
+
/** 地址:存储地址(`<根>:/路径`)或网址;入站附件的 data 不是地址(内联数据、本机路径、预处理器的私有引用)、预处理器也没在它的 ref 上写地址的没有 */
|
|
446
562
|
ref?: string;
|
|
447
563
|
}
|
|
564
|
+
/** 一段转发给界面的事实({@link ForwardedChat.facts}):适配器展开成功时有 */
|
|
565
|
+
export interface ForwardFacts {
|
|
566
|
+
/** 顶层的条数 */
|
|
567
|
+
count: number;
|
|
568
|
+
/** 参与的人,最多前 8 个(写法由适配器定,如 OneBot 的「昵称(账号)」) */
|
|
569
|
+
participants: string[];
|
|
570
|
+
/** 没列出的人数;都列出了时没有 */
|
|
571
|
+
unlisted?: number;
|
|
572
|
+
/** 转发的文字:有摘要时是摘要,没有时是原文(可能截断) */
|
|
573
|
+
text: string;
|
|
574
|
+
/** 原文被截断时为 true */
|
|
575
|
+
cutOff?: true;
|
|
576
|
+
}
|
|
577
|
+
/** 随入站消息转发来的一段聊天记录({@link IncomingMessage.forwards} 的一项) */
|
|
578
|
+
export interface ForwardedChat {
|
|
579
|
+
/** 平台给的转发 id:正文里它的占位({@link forwardPlaceholder})按它对位 */
|
|
580
|
+
id: string;
|
|
581
|
+
/** 给模型看的展开,归档文本把它换进占位的位置(OneBot 的信封;拉不到时写原因;适配器关掉展开时就是占位本身) */
|
|
582
|
+
content: string;
|
|
583
|
+
/** 给界面的事实;拉不到内容、展开出错与关掉展开时没有 */
|
|
584
|
+
facts?: ForwardFacts;
|
|
585
|
+
}
|
|
586
|
+
/** 存档记下的一段转发({@link WellKnownMetadataKeys}.Forwards 的一项):展开已按原位置拼进归档正文,不另存 */
|
|
587
|
+
export type ArchivedForward = Omit<ForwardedChat, 'content'>;
|
|
448
588
|
/**
|
|
449
589
|
* 跨插件约定的 `Message.metadata` 键。metadata 是开放字典,本表登记由一方写入、另一方读取的键:写方与读方都引用这里的
|
|
450
590
|
* 常量,第三方的 agent、存档与适配器照着写,读历史与记忆的一方(会话服务回看历史、向量记忆、用户档案与关系等)才还原得出
|
|
451
591
|
* 说话人、群、文件、回复的模型与 token、工具卡的归组。
|
|
452
592
|
*
|
|
453
593
|
* - `VisibleContent`:assistant 消息的可见正文(字符串)。回复经结构化输出(persona 的 outputFormat)
|
|
454
|
-
* 时,`content` 存整串 JSON
|
|
594
|
+
* 时,`content` 存整串 JSON 信封(存档原文),用户实际看到的是其中的回复字段;agent 交给模型的历史取这个键。
|
|
455
595
|
* agent 落库时把解码后的正文写进这个键,只在它与 `content` 不同时写入;缺省即 `content` 本身就是
|
|
456
596
|
* 可见正文。检索、摘要等按语义消费历史的一方应优先读它,读不到再退回 `content`。
|
|
457
597
|
* - `SpokenContent`:提问里发言人自己写的话(字符串,可以是空串),即入站消息的 `content`。存档的 `content` 是给模型看的
|
|
458
|
-
* 归档文本({@link buildIncomingContent}
|
|
459
|
-
*
|
|
598
|
+
* 归档文本({@link buildIncomingContent}:发送者前缀、转发的展开、引用与附件描述),存档只在两者不同时写这个键;缺省即
|
|
599
|
+
* `content`。合并转发的展开不在里面,只有它的占位。会话服务据此给出提问条目的正文,用户档案据此核对原话。
|
|
460
600
|
* - `Attachments`:提问带的附件清单({@link ArchivedAttachment} 的数组,按入站顺序),存档写;会话服务据此把文件还原成卡片、
|
|
461
601
|
* 图片等按地址显示。没有附件时不写。
|
|
602
|
+
* - `Forwards`:提问随附的转发({@link ArchivedForward} 的数组:入站消息 forwards 的 id 与事实,不存展开),存档在有时写;
|
|
603
|
+
* 会话服务据此把转发画成单独的块。
|
|
604
|
+
* - `SenderLabel`:归档文本发送者前缀里的标签(字符串,{@link getSenderLabel} 的写法),存档只在加了前缀时写。把归档文本重排给
|
|
605
|
+
* 模型或界面看的一方(向量记忆的召回片段、撤回通知的摘录、引用反查)按它用 {@link stripSenderPrefix} 去掉这一层,没有这个键
|
|
606
|
+
* 的不去。
|
|
607
|
+
* - `Mentions`:提问里发言人自己写的话 @ 了哪些账号(字符串数组,{@link extractMentions} 从入站消息的 `content` 抽,引用、
|
|
608
|
+
* 附件描述与转发里的不算),存档在有时写;向量记忆据此给被 @ 的人加权,关系图的提取据此认被 @ 的人。
|
|
462
609
|
* - `Platform`、`UserId`、`Nickname`:说话人的平台、用户 id 与昵称(字符串)。存档写入站消息的;agent 给她自己的回复写
|
|
463
610
|
* 这一轮的平台与她在那里的账号、昵称。会话服务据此标出说话人与是不是 owner,向量记忆、用户档案与关系等也读。
|
|
464
611
|
* - `GroupId`、`GroupName`、`SessionType`:说话所在的群号、群名与会话类型(字符串,即入站消息的 `groupId`、`groupName`、
|
|
465
|
-
* `sessionType`)。存档写入站消息的,agent
|
|
466
|
-
*
|
|
612
|
+
* `sessionType`)。存档写入站消息的,agent 给她自己的回复写这一轮的;向量记忆与最近消息据此写出说话的位置,只用于显示:
|
|
613
|
+
* 判是不是多方读会话记录的 originChat.multiParty(子会话取根会话的)。
|
|
467
614
|
* - `MessageId`:平台侧的消息 id(字符串,即入站消息的 `messageId`),存档写;存档按它反查被引用的原文,关系插件据此把
|
|
468
615
|
* 引用与回复对回消息。
|
|
469
|
-
* - `Source`:这条记录的来源(字符串):入站消息是它的 `source
|
|
470
|
-
*
|
|
616
|
+
* - `Source`:这条记录的来源(字符串):入站消息是它的 `source`(内部注入的来源,真人发言没有);出站消息记进历史的各条
|
|
617
|
+
* (文字的事件标记与发出的附件)是出站的 `source`(如指令回复的 command);插件自己写的其余记录(投递失败)写插件的名字。
|
|
618
|
+
* 会话服务据此标出提问是不是内部注入的、认出指令的回复。
|
|
471
619
|
* - `HostNoticeKind`、`HostNoticeId`、`HostNoticeFacts`:宿主通知的子类(`hostNotice.kind`)、id(`hostNotice.id`)与给界面的
|
|
472
620
|
* 事实(`hostNotice.facts`),存档写;会话服务据此给出通知条目的种类、id 与事实。
|
|
473
|
-
* - `TurnId`:所在回合的 id
|
|
474
|
-
*
|
|
621
|
+
* - `TurnId`:所在回合的 id(字符串)。进了一轮的输入由存档按 agent 归档时交来的回合记下,agent 写在这一轮落库的回复、工具
|
|
622
|
+
* 结果与停下标记上,平台适配器写在一轮回复的投递失败记录上,出站记进历史的各条由写方按出站消息的 turnId 记下(有才记);
|
|
623
|
+
* 会话服务据此把存档归回回合、标出哪一轮的回复没发出,连对话回滚据此只删这一轮的消息。
|
|
624
|
+
* - `TurnEntry`:输入怎么进的这一轮(字符串):`opened` 是开轮的,`joined` 是插进在跑的一轮的。与 `TurnId` 一起由存档记下。
|
|
625
|
+
* - `TriggerType`:入站消息的触发类型(字符串,即 {@link IncomingMessage}.triggerType),存档写;会话服务据此标出被点名与插话。
|
|
626
|
+
* - `TurnRecord`:一轮的结局与来源({@link TurnRecord})。agent 记在这一轮最后落库的那条回复上,没有落库回复的一轮另落一条只带
|
|
627
|
+
* `TurnId` 与它的事件标记(role system、kind EventMarker、正文为空,属于 {@link CONTROL_KINDS});会话服务据此在历史里还原
|
|
628
|
+
* 这一轮的结局。
|
|
475
629
|
* - `CallId`:工具调用的 id(字符串,即 `ToolCallContext.callId`)。agent 写在工具结果上,平台适配器写在经工具发出的
|
|
476
|
-
*
|
|
630
|
+
* 消息的投递失败记录上,出站记进历史的各条由写方按出站消息的 callId 记下(有才记);会话服务据此把历史里的工具卡对回实时推送。
|
|
477
631
|
* - `ModelInfo`:一轮回复的模型与这一轮的 token,与 {@link OutgoingMessage}.modelInfo 同形;agent 写在这一轮最后的回复上,
|
|
478
632
|
* 会话服务标在回复条目上。
|
|
479
633
|
* - `SentRef`、`SentName`:发出的附件(`outboundMediaMessage` 记的那条)原样的地址与文件名(字符串):占位符里的地址遇到
|
|
480
|
-
* 「]」会截断、描述位的「]
|
|
481
|
-
*
|
|
482
|
-
*
|
|
634
|
+
* 「]」会截断、描述位的「]」「|」换成了全角。记出站的一方写(api-message-archive 的 recordOutbound),会话服务优先取它们
|
|
635
|
+
* 还原附件。
|
|
636
|
+
* - `DeliveryError`:投递失败记录({@link WellKnownKinds}.OutboundDeliveryFailed)里与投递结果同一句的原因(字符串或文字对象),
|
|
637
|
+
* 平台适配器写;会话服务据此按读者语言写出回复为什么没发出。
|
|
638
|
+
* - `SentPieces`:投递失败记录里与投递结果同一个已发出条数(数字,{@link OutboundDeliveryResult} 的 sentPieces),平台适配器在
|
|
639
|
+
* 逐条发出停在中途时写;会话服务据此写出回复只发出了前几条。
|
|
640
|
+
* - `Unconfirmed`:投递失败记录里已经发出、没等到平台确认的各项(字符串数组,如「消息(第 2 条)」「文件 a.html」),平台适配器写;
|
|
641
|
+
* 会话服务据此写出回复可能已经发出。
|
|
642
|
+
* - `Text`:通知与事件标记给人看的文字(@aalis/schema-i18n 的文字对象),`content` 是写给模型的话或它按原文渲染的整句。
|
|
643
|
+
* 宿主通知的 `hostNotice.text`、平台通知的文字、平台事件合成的入站的 {@link IncomingMessage}.text、不是她回复的出站按
|
|
644
|
+
* {@link outboundMarkerMessage} 记成事件标记时的 {@link OutgoingMessage}.text 由写方记下,没有地址的出站附件记成的事件标记、
|
|
645
|
+
* 压缩分隔线同样;会话服务据此按读者语言显示(合成的入站画成通知),没有时显示 `content`。
|
|
483
646
|
*/
|
|
484
647
|
export declare const WellKnownMetadataKeys: {
|
|
485
648
|
readonly VisibleContent: "visibleContent";
|
|
486
649
|
readonly SpokenContent: "spokenContent";
|
|
487
650
|
readonly Attachments: "attachments";
|
|
651
|
+
readonly Forwards: "forwards";
|
|
652
|
+
readonly SenderLabel: "senderLabel";
|
|
653
|
+
readonly Mentions: "mentions";
|
|
488
654
|
readonly Platform: "platform";
|
|
489
655
|
readonly UserId: "userId";
|
|
490
656
|
readonly Nickname: "nickname";
|
|
@@ -497,12 +663,23 @@ export declare const WellKnownMetadataKeys: {
|
|
|
497
663
|
readonly HostNoticeId: "hostNoticeId";
|
|
498
664
|
readonly HostNoticeFacts: "hostNoticeFacts";
|
|
499
665
|
readonly TurnId: "turnId";
|
|
666
|
+
readonly TurnEntry: "turnEntry";
|
|
667
|
+
readonly TriggerType: "triggerType";
|
|
668
|
+
readonly TurnRecord: "turnRecord";
|
|
500
669
|
readonly CallId: "callId";
|
|
501
670
|
readonly ModelInfo: "modelInfo";
|
|
502
671
|
readonly SentRef: "ref";
|
|
503
672
|
readonly SentName: "name";
|
|
504
673
|
readonly DeliveryError: "error";
|
|
674
|
+
readonly SentPieces: "sentPieces";
|
|
675
|
+
readonly Unconfirmed: "unconfirmed";
|
|
676
|
+
readonly Text: "text";
|
|
505
677
|
};
|
|
678
|
+
/** 一轮的回合记录({@link WellKnownMetadataKeys} 的 `TurnRecord`):结局,与这一轮的来源(输入的 source,真人消息开的没有) */
|
|
679
|
+
export interface TurnRecord {
|
|
680
|
+
outcome: 'replied' | 'silent' | 'aborted' | 'error';
|
|
681
|
+
source?: string;
|
|
682
|
+
}
|
|
506
683
|
/**
|
|
507
684
|
* 平台无关的 well-known `noticeType` 值。
|
|
508
685
|
*
|
|
@@ -526,7 +703,8 @@ export declare const CONTROL_KINDS: ReadonlyArray<string>;
|
|
|
526
703
|
/**
|
|
527
704
|
* 宿主或系统撰写、不是任何人发言的指令类 kind。
|
|
528
705
|
* - 归档消息的 kind 属于它:抽取(用户事实、指令、关系)与记忆扩窗一律跳过;
|
|
529
|
-
* - 请求期消息的 metadata.injector 属于它:是本轮的指令块(turn-context、turn-hint 落在它之前;DeepSeek
|
|
706
|
+
* - 请求期消息的 metadata.injector 属于它:是本轮的指令块(turn-context、turn-hint 落在它之前;agent 裁剪时不缩不删;DeepSeek
|
|
707
|
+
* 不把它改成 user)。
|
|
530
708
|
*/
|
|
531
709
|
export declare const DIRECTIVE_KINDS: ReadonlyArray<string>;
|
|
532
710
|
/**
|
|
@@ -548,7 +726,8 @@ export declare function toLLMRole(role: MessageRole): WellKnownRole;
|
|
|
548
726
|
* 不修改原对象;返回新数组与必要时的消息浅拷贝。
|
|
549
727
|
*/
|
|
550
728
|
export declare function prepareLLMMessages<T extends Pick<Message, 'role' | 'content' | 'kind'> & Pick<Message, 'images' | 'toolCallId'>>(messages: T[]): T[];
|
|
551
|
-
export { type AttachmentRef, AttachmentRefKind, buildAttachmentRefMatcher, formatAttachmentRef, parseAttachmentRefs, } from './attachment-ref.js';
|
|
552
|
-
export { getMessageName, getSenderLabel, prefixSender } from './identity.js';
|
|
553
|
-
export { buildIncomingContent } from './incoming-content.js';
|
|
729
|
+
export { ATTACHMENT_REF_KINDS, type AttachmentRef, AttachmentRefKind, buildAttachmentRefMatcher, formatAttachmentRef, parseAttachmentRefs, } from './attachment-ref.js';
|
|
730
|
+
export { getMessageName, getSenderLabel, prefixSender, stripSenderPrefix } from './identity.js';
|
|
731
|
+
export { buildIncomingContent, forwardPlaceholder, withForwards } from './incoming-content.js';
|
|
732
|
+
export { groupToolCalls, type MessageUnit } from './tool-call-groups.js';
|
|
554
733
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|