@aalis/plugin-image-sender 0.6.0 → 0.8.0
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/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -45
- package/dist/index.js.map +1 -1
- package/dist/media-signature.d.ts +13 -0
- package/dist/media-signature.d.ts.map +1 -0
- package/dist/media-signature.js +154 -0
- package/dist/media-signature.js.map +1 -0
- package/package.json +9 -9
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { type StorageService } from '@aalis/api-storage';
|
|
2
2
|
declare const _default: import("@aalis/core").PluginDefinition<{
|
|
3
|
-
tools: import("@aalis/core
|
|
3
|
+
tools: import("@aalis/core").OptionalUse<import("@aalis/api-tools").ToolService, import("@aalis/api-tools").BoundTools>;
|
|
4
4
|
events: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Events, import("@aalis/core").Events>;
|
|
5
5
|
logger: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Logger, import("@aalis/core").Logger>;
|
|
6
|
-
storage: import("@aalis/core
|
|
7
|
-
media: import("@aalis/core
|
|
8
|
-
memory: import("@aalis/core
|
|
9
|
-
archive: import("@aalis/core
|
|
6
|
+
storage: import("@aalis/core").OptionalUse<StorageService, import("@aalis/core").ServiceRef<StorageService>>;
|
|
7
|
+
media: import("@aalis/core").OptionalUse<import("@aalis/api-media").MediaService, import("@aalis/core").ServiceRef<import("@aalis/api-media").MediaService>>;
|
|
8
|
+
memory: import("@aalis/core").OptionalUse<import("@aalis/api-memory").MemoryService, import("@aalis/core").ServiceRef<import("@aalis/api-memory").MemoryService>>;
|
|
9
|
+
archive: import("@aalis/core").OptionalUse<import("@aalis/api-message-archive").MessageArchiveService, import("@aalis/core").ServiceRef<import("@aalis/api-message-archive").MessageArchiveService>>;
|
|
10
10
|
}>;
|
|
11
11
|
export default _default;
|
|
12
12
|
//# 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":"AAkBA,OAAO,EAIL,KAAK,cAAc,EAGpB,MAAM,oBAAoB,CAAC;;;;;;;;;;AA0C5B,wBAMG"}
|
package/dist/index.js
CHANGED
|
@@ -4,20 +4,22 @@
|
|
|
4
4
|
// 工具:
|
|
5
5
|
// 1. preview_image —— 在选图前用 vision 看清候选图(搜索结果标题常误导)
|
|
6
6
|
// 2. send_attachment —— 统一的出站附件接口:把 image/audio/video 发出去;
|
|
7
|
-
//
|
|
8
|
-
// memory_recall 召回
|
|
7
|
+
// 由出站归档监听器在后台描述并入档,让"AI 之前
|
|
8
|
+
// 发过的图/视频"能被 memory_recall 召回
|
|
9
9
|
//
|
|
10
|
-
// send_attachment 来源:url / storage_uri / history_ref
|
|
10
|
+
// send_attachment 来源:url / storage_uri / history_ref(不接受裸本地路径);
|
|
11
|
+
// 取自存储库的文件发送前读文件头核对格式(见 media-signature.ts)。
|
|
11
12
|
// 此插件不直接调用平台 API,而是 emit `outbound:message`(含 attachments[]);
|
|
12
13
|
// 由各 platform adapter(OneBot / WebUI)按自身能力处理结构化附件。
|
|
13
14
|
// ============================================================
|
|
14
15
|
import { media } from '@aalis/api-media';
|
|
15
16
|
import { memory } from '@aalis/api-memory';
|
|
16
17
|
import { messageArchive } from '@aalis/api-message-archive';
|
|
17
|
-
import { createStorageGateway, storage, toStorageUri } from '@aalis/api-storage';
|
|
18
|
+
import { createStorageGateway, isStorageNotFound, isStorageUri, storage, toStorageUri, } from '@aalis/api-storage';
|
|
18
19
|
import { tools } from '@aalis/api-tools';
|
|
19
20
|
import { definePlugin, events, logger, optional } from '@aalis/core';
|
|
20
21
|
import { AttachmentRefKind, formatAttachmentRef, WellKnownKinds, } from '@aalis/schema-message';
|
|
22
|
+
import { checkMediaHead, MEDIA_HEAD_BYTES } from './media-signature.js';
|
|
21
23
|
/** preview_image 单张候选识别等待上限。preview 的目的就是"看清"图,
|
|
22
24
|
* 本地视觉模型(如 33B)单图常需 15-25s,必须给足预算,否则必然超时使 preview 形同虚设。 */
|
|
23
25
|
const PREVIEW_TIMEOUT_MS = 25_000;
|
|
@@ -27,6 +29,8 @@ const ARCHIVE_DESCRIBE_TIMEOUT_MS = 25_000;
|
|
|
27
29
|
const VIDEO_DESCRIBE_TIMEOUT_MS = 30_000;
|
|
28
30
|
/** preview_image 单次允许的候选数量上限。 */
|
|
29
31
|
const PREVIEW_MAX_CANDIDATES = 8;
|
|
32
|
+
/** 宿主机绝对路径(`/abs`、`C:\path`、`C:/path`)。toStorageUri 会把它的首段当成根名,须先认出来挡在存储库外。 */
|
|
33
|
+
const HOST_ABSOLUTE_PATH = /^(?:\/|[a-zA-Z]:[\\/])/;
|
|
30
34
|
// tools 不入激活闸:出站附件归档(outbound:message 监听)只靠 archive / media,
|
|
31
35
|
// 没有工具服务时也该照常挂上;工具登记走注册账本,提供者上线后自动补挂。
|
|
32
36
|
const uses = {
|
|
@@ -48,25 +52,29 @@ export default definePlugin({
|
|
|
48
52
|
function registerImageSender(caps) {
|
|
49
53
|
const { tools, events, logger, media, memory, archive } = caps;
|
|
50
54
|
const storage = createStorageGateway(caps.storage);
|
|
51
|
-
//
|
|
52
|
-
// -
|
|
55
|
+
// 把存储库内的文件解析为发送可用的数据串:
|
|
56
|
+
// - 只读文件头,按 kind 核对格式,不符拒发(存储根里还有配置、令牌、记忆库等非媒体文件)
|
|
53
57
|
// - 可解析本地路径时转 file://(供 daemon 直链),否则保留原 URI
|
|
54
|
-
async function
|
|
55
|
-
|
|
56
|
-
// 而 storage 消费需要 storage URI `data:/images/...`。漏这步就是「图明明在却报找不到」。
|
|
57
|
-
const uri = toStorageUri(input);
|
|
58
|
+
async function loadStorageMedia(uri, kind) {
|
|
59
|
+
let head;
|
|
58
60
|
try {
|
|
59
|
-
await storage.
|
|
61
|
+
head = await storage.readFileRange(uri, 0, MEDIA_HEAD_BYTES);
|
|
60
62
|
}
|
|
61
|
-
catch {
|
|
62
|
-
|
|
63
|
+
catch (err) {
|
|
64
|
+
if (isStorageNotFound(err))
|
|
65
|
+
return { ok: false, error: `存储资源不存在: ${uri}` };
|
|
66
|
+
throw err;
|
|
63
67
|
}
|
|
68
|
+
const rejection = checkMediaHead(head, kind);
|
|
69
|
+
if (rejection)
|
|
70
|
+
return { ok: false, error: rejection };
|
|
64
71
|
const local = await tryResolveLocal(storage, uri);
|
|
65
|
-
|
|
66
|
-
return { ok: true, data: local ? `file://${local}` : uri, ref: input };
|
|
72
|
+
return { ok: true, data: local ? `file://${local}` : uri };
|
|
67
73
|
}
|
|
68
74
|
// ── preview_image ─────────────────────────────────────────────────────────
|
|
69
|
-
|
|
75
|
+
// 识别全靠 media:media 在场才挂,离场即撤(follow 在 media 上线 / 换人时各调一次,
|
|
76
|
+
// 返回的退订函数即清理),media 缺席的部署里 agent 看不到这个用不了的工具。
|
|
77
|
+
media.follow(service => tools.register({
|
|
70
78
|
definition: {
|
|
71
79
|
type: 'function',
|
|
72
80
|
function: {
|
|
@@ -100,10 +108,6 @@ function registerImageSender(caps) {
|
|
|
100
108
|
if (urls.length > PREVIEW_MAX_CANDIDATES) {
|
|
101
109
|
return JSON.stringify({ error: `最多 ${PREVIEW_MAX_CANDIDATES} 张` });
|
|
102
110
|
}
|
|
103
|
-
const service = media.current;
|
|
104
|
-
if (!service?.describeImage) {
|
|
105
|
-
return JSON.stringify({ error: '未启用 media 服务,无法识别图片' });
|
|
106
|
-
}
|
|
107
111
|
// 顺序识别(非并发):本地视觉模型通常单实例串行处理,并发只会让多个请求
|
|
108
112
|
// 互相排队、共同超时;逐张识别配合宽松超时,命中率远高于并发。
|
|
109
113
|
// detailLevel='casual':preview 只为"挑图",短 prompt 短输出即可,不需要 auto 档的详尽路由。
|
|
@@ -130,7 +134,7 @@ function registerImageSender(caps) {
|
|
|
130
134
|
}
|
|
131
135
|
return JSON.stringify({ ok: true, count: results.length, results });
|
|
132
136
|
},
|
|
133
|
-
});
|
|
137
|
+
}));
|
|
134
138
|
// ── send_attachment ───────────────────────────────────────────────────────
|
|
135
139
|
tools.register({
|
|
136
140
|
definition: {
|
|
@@ -144,7 +148,7 @@ function registerImageSender(caps) {
|
|
|
144
148
|
' - storage_uri:存储库内的资源 URI(如 data:/images/xxx)。\n' +
|
|
145
149
|
' - history_ref:历史消息中已识别的引用([图片/语音/视频: ... | ref:xxx] 中 xxx 部分),\n' +
|
|
146
150
|
' 用于"把之前那条媒体重发/转发回去"。\n' +
|
|
147
|
-
'建议流程(图片):search_images 拿候选 URL
|
|
151
|
+
'建议流程(图片):search_images 拿候选 URL →(有 preview_image 时可先看清内容)→ send_attachment 选其一发出。\n' +
|
|
148
152
|
'若想重发自己之前发过的媒体,先用 memory_recall 按描述检索历史,从命中消息里找到 ref 再传 history_ref。\n' +
|
|
149
153
|
'注意:本工具不发送任何文字。如需配文,请把文字写在你本轮最终输出的 message 字段里——' +
|
|
150
154
|
'不要在 message 中重复媒体描述。',
|
|
@@ -188,18 +192,35 @@ function registerImageSender(caps) {
|
|
|
188
192
|
via = 'url';
|
|
189
193
|
}
|
|
190
194
|
else if (storageUri) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
195
|
+
// 归一化:归档给 agent 的 ref 是历史相对路径 `data/images/...`(无冒号),
|
|
196
|
+
// 而 storage 消费需要 storage URI `data:/images/...`。漏这步就是「图明明在却报找不到」。
|
|
197
|
+
const loaded = await loadStorageMedia(toStorageUri(storageUri), kind);
|
|
198
|
+
if (!loaded.ok)
|
|
199
|
+
return JSON.stringify({ error: loaded.error });
|
|
200
|
+
data = loaded.data;
|
|
201
|
+
// ref 保持 input 原样,维持与既有归档(相对路径形态)的一致,供 history_ref 回查匹配。
|
|
202
|
+
refTag = storageUri;
|
|
196
203
|
via = 'storage_uri';
|
|
197
204
|
}
|
|
198
205
|
else if (historyRef) {
|
|
199
206
|
const found = await resolveHistoryRef(memory, storage, callCtx.sessionId, historyRef);
|
|
200
207
|
if (!found)
|
|
201
208
|
return JSON.stringify({ error: `未在历史中找到引用: ${historyRef}` });
|
|
202
|
-
|
|
209
|
+
if (found.startsWith('http://') || found.startsWith('https://')) {
|
|
210
|
+
data = found;
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
// 本地来源只认存储库内的文件:storage URI 或历史相对路径(data/images/…)。宿主机绝对路径、
|
|
214
|
+
// file://、data URI 等来源不在存储库内,读不了文件头,无从核对格式
|
|
215
|
+
const uri = toStorageUri(found);
|
|
216
|
+
if (HOST_ABSOLUTE_PATH.test(found) || !isStorageUri(uri)) {
|
|
217
|
+
return JSON.stringify({ error: `引用 ${historyRef} 的来源不在存储库内,无法核对格式,不能发送` });
|
|
218
|
+
}
|
|
219
|
+
const loaded = await loadStorageMedia(uri, kind);
|
|
220
|
+
if (!loaded.ok)
|
|
221
|
+
return JSON.stringify({ error: loaded.error });
|
|
222
|
+
data = loaded.data;
|
|
223
|
+
}
|
|
203
224
|
refTag = historyRef.replace(/^ref:/, '').trim();
|
|
204
225
|
via = 'history_ref';
|
|
205
226
|
}
|
|
@@ -232,7 +253,7 @@ function registerImageSender(caps) {
|
|
|
232
253
|
}
|
|
233
254
|
},
|
|
234
255
|
});
|
|
235
|
-
logger.info('[image-sender] 工具 send_attachment
|
|
256
|
+
logger.info('[image-sender] 工具 send_attachment 已注册(preview_image 随 media 在场注册)');
|
|
236
257
|
// ── 出站附件归档:统一咽喉 ───────────────────────────────────────────────
|
|
237
258
|
// 监听唯一出站汇聚点 outbound:message,对所有 agent 出站附件统一入档,
|
|
238
259
|
// 与生产者(send_attachment 或将来任何直接 emit 附件的插件)和平台都解耦。
|
|
@@ -257,7 +278,7 @@ function registerImageSender(caps) {
|
|
|
257
278
|
void (async () => {
|
|
258
279
|
let desc = carried;
|
|
259
280
|
if (!desc && (kind === 'image' || kind === 'video') && /^https?:\/\//i.test(ref)) {
|
|
260
|
-
desc = await safeDescribeMedia({ media, logger }, kind, ref
|
|
281
|
+
desc = await safeDescribeMedia({ media, logger }, kind, ref);
|
|
261
282
|
}
|
|
262
283
|
await archiveOutboundAttachment({ archive, logger }, msg.sessionId, ref, desc, kind);
|
|
263
284
|
})();
|
|
@@ -265,23 +286,18 @@ function registerImageSender(caps) {
|
|
|
265
286
|
});
|
|
266
287
|
}
|
|
267
288
|
/** 按 kind 调用对应的 media 描述能力,超时或失败返回空串(不阻塞发送)。 */
|
|
268
|
-
async function safeDescribeMedia(caps, kind, data
|
|
269
|
-
|
|
270
|
-
return safeDescribe(caps, data, timeoutMs);
|
|
271
|
-
if (kind === 'video')
|
|
272
|
-
return safeDescribeVideo(caps, data);
|
|
273
|
-
// audio 暂无描述能力
|
|
274
|
-
return '';
|
|
289
|
+
async function safeDescribeMedia(caps, kind, data) {
|
|
290
|
+
return kind === 'image' ? safeDescribe(caps, data) : safeDescribeVideo(caps, data);
|
|
275
291
|
}
|
|
276
292
|
/** 调 media.describeImage,超时或失败返回空串(不阻塞发送)。 */
|
|
277
|
-
async function safeDescribe(caps, imageData
|
|
293
|
+
async function safeDescribe(caps, imageData) {
|
|
278
294
|
const service = caps.media.current;
|
|
279
295
|
if (!service?.describeImage)
|
|
280
296
|
return '';
|
|
281
297
|
try {
|
|
282
298
|
const desc = await Promise.race([
|
|
283
299
|
service.describeImage(imageData),
|
|
284
|
-
new Promise((_resolve, reject) => setTimeout(() => reject(new Error('vision 超时')),
|
|
300
|
+
new Promise((_resolve, reject) => setTimeout(() => reject(new Error('vision 超时')), ARCHIVE_DESCRIBE_TIMEOUT_MS)),
|
|
285
301
|
]);
|
|
286
302
|
return (desc ?? '').trim();
|
|
287
303
|
}
|
|
@@ -336,7 +352,10 @@ async function archiveOutboundAttachment(caps, sessionId, ref, description, kind
|
|
|
336
352
|
caps.logger.warn(`[image-sender] 入档失败: ${err instanceof Error ? err.message : err}`);
|
|
337
353
|
}
|
|
338
354
|
}
|
|
339
|
-
/**
|
|
355
|
+
/**
|
|
356
|
+
* 在最近 200 条消息里寻找匹配 historyRef 的媒体来源:http(s) URL、存储库内文件的 storage URI,
|
|
357
|
+
* 或历史附件里的原样数据串(能否发送由调用方判定)。
|
|
358
|
+
*/
|
|
340
359
|
async function resolveHistoryRef(memory, storage, sessionId, ref) {
|
|
341
360
|
const service = memory.current;
|
|
342
361
|
if (!service)
|
|
@@ -349,17 +368,13 @@ async function resolveHistoryRef(memory, storage, sessionId, ref) {
|
|
|
349
368
|
if (normalized.startsWith('http://') || normalized.startsWith('https://')) {
|
|
350
369
|
return normalized;
|
|
351
370
|
}
|
|
352
|
-
// file:// ref:原样返回
|
|
353
|
-
if (normalized.startsWith('file://'))
|
|
354
|
-
return normalized;
|
|
355
371
|
// storage URI / 历史相对路径:归一化后 stat;命中即用,未命中 fallthrough 到子串匹配。
|
|
356
372
|
// 完整相对路径 `data/images/x.jpg` → `data:/images/x.jpg` 能直接命中;
|
|
357
373
|
// 单段 hash(如 `abc123.jpg`)归一化成 `data:/abc123.jpg` stat 失败,正确回落子串匹配。
|
|
358
374
|
const asUri = normalized.includes(':/') ? normalized : toStorageUri(normalized);
|
|
359
375
|
try {
|
|
360
376
|
await storage.stat(asUri);
|
|
361
|
-
|
|
362
|
-
return local ? `file://${local}` : asUri;
|
|
377
|
+
return asUri;
|
|
363
378
|
}
|
|
364
379
|
catch {
|
|
365
380
|
// fallthrough 到历史子串匹配
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,oDAAoD;AACpD,EAAE;AACF,MAAM;AACN,yDAAyD;AACzD,8DAA8D;AAC9D,qDAAqD;AACrD,4CAA4C;AAC5C,EAAE;AACF,+DAA+D;AAC/D,8DAA8D;AAC9D,mDAAmD;AACnD,+DAA+D;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAuB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAgB,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EAInB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAK/B;4DAC4D;AAC5D,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,qCAAqC;AACrC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAC3C,mCAAmC;AACnC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC,iCAAiC;AACjC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,6DAA6D;AAC7D,sCAAsC;AACtC,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;IACtB,MAAM;IACN,MAAM;IACN,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC;CAClC,CAAC;AAOF,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,OAAO;IAClB,IAAI;IACJ,KAAK,EAAE,mBAAmB;CAC3B,CAAC,CAAC;AAEH,SAAS,mBAAmB,CAAC,IAAU;IACrC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/D,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEnD,oCAAoC;IACpC,eAAe;IACf,6CAA6C;IAC7C,KAAK,UAAU,iBAAiB,CAC9B,KAAa;QAEb,sDAAsD;QACtD,kEAAkE;QAClE,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,KAAK,EAAE,EAAE,CAAC;QACnD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAClD,yDAAyD;QACzD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACzE,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,QAAQ,CAAC;QACb,UAAU,EAAE;YACV,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe;gBACrB,WAAW,EACT,wCAAwC;oBACxC,0CAA0C;oBAC1C,qCAAqC;oBACrC,uBAAuB;gBACzB,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,gCAAgC,sBAAsB,KAAK;yBACzE;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,oCAAoC;yBAClD;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;iBACnB;aACF;SACF;QACD,OAAO,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YACpB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,IAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,GAAI,IAAI,CAAC,IAAe,IAAI,SAAS,CAAC;YAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,sBAAsB,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,sCAAsC;YACtC,iCAAiC;YACjC,sEAAsE;YACtE,MAAM,OAAO,GAAmC,EAAE,CAAC;YACnD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;oBAC9E,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;wBAC9B,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;wBAC/D,IAAI,OAAO,CAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CACvC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,kBAAkB,CAAC,CACrE;qBACF,CAAC,CAAC;oBACH,MAAM,WAAW,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBACxC,OAAO,CAAC,IAAI,CACV,WAAW;wBACT,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;wBAChD,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAC5D,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5G,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;KACF,CAAC,CAAC;IAEH,6EAA6E;IAC7E,KAAK,CAAC,QAAQ,CAAC;QACb,UAAU,EAAE;YACV,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EACT,2CAA2C;oBAC3C,iDAAiD;oBACjD,yBAAyB;oBACzB,iCAAiC;oBACjC,oDAAoD;oBACpD,oEAAoE;oBACpE,2BAA2B;oBAC3B,gFAAgF;oBAChF,uEAAuE;oBACvE,iDAAiD;oBACjD,sBAAsB;gBACxB,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;4BACjC,WAAW,EAAE,kCAAkC;yBAChD;wBACD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;wBAC7D,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;wBAC/E,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,uCAAuC;yBACrD;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;iBACnB;aACF;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAI,IAAI,CAAC,IAAe,EAAE,IAAI,EAAe,CAAC;YACxD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,GAAG,GAAI,IAAI,CAAC,GAAc,EAAE,IAAI,EAAE,CAAC;YACzC,MAAM,UAAU,GAAI,IAAI,CAAC,WAAsB,EAAE,IAAI,EAAE,CAAC;YACxD,MAAM,UAAU,GAAI,IAAI,CAAC,WAAsB,EAAE,IAAI,EAAE,CAAC;YAExD,IAAI,IAAI,GAAkB,IAAI,CAAC;YAC/B,IAAI,MAAM,GAAkB,IAAI,CAAC;YACjC,IAAI,GAAG,GAA0C,KAAK,CAAC;YACvD,IAAI,CAAC;gBACH,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBAC5D,CAAC;oBACD,IAAI,GAAG,GAAG,CAAC;oBACX,MAAM,GAAG,GAAG,CAAC;oBACb,GAAG,GAAG,KAAK,CAAC;gBACd,CAAC;qBAAM,IAAI,UAAU,EAAE,CAAC;oBACtB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBACrD,IAAI,CAAC,QAAQ,CAAC,EAAE;wBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;oBACnE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;oBACrB,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;oBACtB,GAAG,GAAG,aAAa,CAAC;gBACtB,CAAC;qBAAM,IAAI,UAAU,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;oBACtF,IAAI,CAAC,KAAK;wBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,UAAU,EAAE,EAAE,CAAC,CAAC;oBACzE,IAAI,GAAG,KAAK,CAAC;oBACb,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAChD,GAAG,GAAG,aAAa,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC,CAAC;gBAC9E,CAAC;gBAED,0CAA0C;gBAC1C,wDAAwD;gBACxD,+CAA+C;gBAC/C,oCAAoC;gBACpC,MAAM,UAAU,GAAsB;oBACpC,IAAI;oBACJ,IAAI;oBACJ,uDAAuD;oBACvD,+CAA+C;oBAC/C,GAAG,EAAE,MAAM,IAAI,IAAI;oBACnB,WAAW,EAAE,GAAG,KAAK,aAAa;iBACnC,CAAC;gBACF,MAAM,QAAQ,GAAoB;oBAChC,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,CAAC,UAAU,CAAC;oBACzB,MAAM,EAAE,OAAO;iBAChB,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;gBAE1C,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IAErE,iEAAiE;IACjE,iDAAiD;IACjD,kDAAkD;IAClD,qDAAqD;IACrD,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE;QAClC,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM;YAAE,OAAO;QAC/D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW;YAAE,OAAO;QAC1C,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,WAAW;gBAAE,SAAS;YAC9B,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;gBAAE,SAAS;YACnF,sDAAsD;YACtD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;YAChC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;YACtC,+DAA+D;YAC/D,yDAAyD;YACzD,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,IAAI,GAAG,OAAO,CAAC;gBACnB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjF,IAAI,GAAG,MAAM,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC;gBAC5F,CAAC;gBACD,MAAM,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACvF,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gDAAgD;AAChD,KAAK,UAAU,iBAAiB,CAC9B,IAAkB,EAClB,IAAe,EACf,IAAY,EACZ,SAAS,GAAG,2BAA2B;IAEvC,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D,eAAe;IACf,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,8CAA8C;AAC9C,KAAK,UAAU,YAAY,CACzB,IAAkB,EAClB,SAAiB,EACjB,SAAS,GAAG,2BAA2B;IAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,aAAa;QAAE,OAAO,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC9B,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;YAChC,IAAI,OAAO,CAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;SACvG,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAChG,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,wDAAwD;AACxD,KAAK,UAAU,iBAAiB,CAAC,IAAkB,EAAE,QAAgB;IACnE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,aAAa;QAAE,OAAO,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC9B,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC/B,IAAI,OAAO,CAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CACvC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAC7E;SACF,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/F,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,KAAK,UAAU,yBAAyB,CACtC,IAAiB,EACjB,SAAiB,EACjB,GAAW,EACX,WAAmB,EACnB,IAAe;IAEf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,WAAW;QAAE,OAAO;IAClC,MAAM,UAAU,GACd,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC;IACpH,MAAM,OAAO,GACX,IAAI,KAAK,OAAO;QACd,CAAC,CAAC,cAAc,CAAC,aAAa;QAC9B,CAAC,CAAC,IAAI,KAAK,OAAO;YAChB,CAAC,CAAC,cAAc,CAAC,aAAa;YAC9B,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,MAAM,GAAG,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAY;QACvB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE;KAC1C,CAAC;IACF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE;YAC5C,UAAU,EAAE,wBAAwB,KAAK,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,KAAK,UAAU,iBAAiB,CAC9B,MAAsB,EACtB,OAAuB,EACvB,SAAiB,EACjB,GAAW;IAEX,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAc,OAAO,CAAC,cAAc;QAC/C,CAAC,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC;QAC9C,CAAC,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,wBAAwB;IACxB,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1E,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,mBAAmB;IACnB,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,UAAU,CAAC;IACxD,6DAA6D;IAC7D,2DAA2D;IAC3D,mEAAmE;IACnE,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAChF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IACD,qDAAqD;IACrD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,GAAyE,CAAC;QACpF,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACrB,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC3B,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAAE,OAAO,GAAG,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAChC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAAE,OAAO,GAAG,CAAC,IAAI,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iEAAiE;AACjE,KAAK,UAAU,eAAe,CAAC,OAAuB,EAAE,GAAW;IACjE,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAChE,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,IAAI,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** 可发送的附件类型。 */
|
|
2
|
+
export type MediaKind = 'image' | 'audio' | 'video';
|
|
3
|
+
/**
|
|
4
|
+
* 认定格式要读的文件头长度:与 file(1) 在前 4 KiB 里找 Matroska DocType 的范围一致,也容得下 ftyp 盒的
|
|
5
|
+
* 兼容品牌表;其余签名都在前 20 字节内。
|
|
6
|
+
*/
|
|
7
|
+
export declare const MEDIA_HEAD_BYTES = 4096;
|
|
8
|
+
/**
|
|
9
|
+
* 核对文件头是否为所请求 kind 的受支持格式。相符返回 null;不符返回给模型的拒发说明:
|
|
10
|
+
* 不是任何受支持的媒体格式时说明不能按该类型发送,是别类媒体时说出检测到的格式与该用的 kind。
|
|
11
|
+
*/
|
|
12
|
+
export declare function checkMediaHead(head: Uint8Array, kind: MediaKind): string | null;
|
|
13
|
+
//# sourceMappingURL=media-signature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-signature.d.ts","sourceRoot":"","sources":["../src/media-signature.ts"],"names":[],"mappings":"AASA,gBAAgB;AAChB,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAoDrC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAY/E"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// media-signature.ts — 按文件头核对附件格式
|
|
3
|
+
//
|
|
4
|
+
// 存储根里除了媒体,还有配置、令牌、记忆库、日志;只凭 kind 与路径发送,
|
|
5
|
+
// 这些文件会被当成图片发出去。send_attachment 从本地取文件时先读文件开头的
|
|
6
|
+
// 字节,按下表的格式签名认定格式,只有落在所请求 kind 的白名单里才放行。
|
|
7
|
+
// 签名依据各格式的规范,并与 file(1) 的 magic 库对照(SILK 不在该库里)。
|
|
8
|
+
// ============================================================
|
|
9
|
+
/**
|
|
10
|
+
* 认定格式要读的文件头长度:与 file(1) 在前 4 KiB 里找 Matroska DocType 的范围一致,也容得下 ftyp 盒的
|
|
11
|
+
* 兼容品牌表;其余签名都在前 20 字节内。
|
|
12
|
+
*/
|
|
13
|
+
export const MEDIA_HEAD_BYTES = 4096;
|
|
14
|
+
const KIND_LABEL = { image: '图片', audio: '音频', video: '视频' };
|
|
15
|
+
/** BMP 偏移 14 处 DIB 头长度的合法取值(file(1) 认的各版本);只有 'BM' 两字节太弱,文本也可能以它开头。 */
|
|
16
|
+
const BMP_DIB_HEADER_SIZES = new Set([12, 16, 24, 40, 48, 52, 56, 64, 108, 124]);
|
|
17
|
+
/** AMR 文件存储格式的魔数:单声道窄带、宽带与各自的多声道版本(RFC 4867 §5)。 */
|
|
18
|
+
const AMR_MAGICS = ['#!AMR\n', '#!AMR-WB\n', '#!AMR_MC1.0\n', '#!AMR-WB_MC1.0\n'];
|
|
19
|
+
const AVIF_BRANDS = new Set(['avif', 'avis']);
|
|
20
|
+
/** HEIF 的图片与图片序列品牌(ISO/IEC 23008-12):HEVC 编码的 heic 系与通用的 mif1、msf1。 */
|
|
21
|
+
const HEIF_BRANDS = new Set(['heic', 'heix', 'heim', 'heis', 'hevc', 'hevx', 'hevm', 'hevs', 'mif1', 'msf1']);
|
|
22
|
+
const M4A_BRANDS = new Set(['M4A ', 'M4B ', 'M4P ']);
|
|
23
|
+
const SIGNATURES = [
|
|
24
|
+
{ kind: 'image', format: 'PNG', matches: h => hasBytes(h, 0, [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]) },
|
|
25
|
+
// SOI 标记 FFD8 之后紧跟下一个标记的 FF
|
|
26
|
+
{ kind: 'image', format: 'JPEG', matches: h => hasBytes(h, 0, [0xff, 0xd8, 0xff]) },
|
|
27
|
+
{ kind: 'image', format: 'GIF', matches: h => hasAscii(h, 0, 'GIF87a') || hasAscii(h, 0, 'GIF89a') },
|
|
28
|
+
{ kind: 'image', format: 'WebP', matches: h => isRiff(h, 'WEBP') },
|
|
29
|
+
{
|
|
30
|
+
kind: 'image',
|
|
31
|
+
format: 'BMP',
|
|
32
|
+
matches: h => hasAscii(h, 0, 'BM') && h.length >= 18 && BMP_DIB_HEADER_SIZES.has(readUint32LE(h, 14)),
|
|
33
|
+
},
|
|
34
|
+
{ kind: 'image', format: 'AVIF', matches: h => isoMediaFormat(h) === 'AVIF' },
|
|
35
|
+
{ kind: 'image', format: 'HEIC', matches: h => isoMediaFormat(h) === 'HEIC' },
|
|
36
|
+
{ kind: 'audio', format: 'MP3', matches: h => isId3v2(h) || isMp3Frame(h) },
|
|
37
|
+
{ kind: 'audio', format: 'WAV', matches: h => isRiff(h, 'WAVE') },
|
|
38
|
+
// 页头捕获模式 'OggS' 加结构版本 0(RFC 3533)
|
|
39
|
+
{ kind: 'audio', format: 'OGG', matches: h => hasBytes(h, 0, [0x4f, 0x67, 0x67, 0x53, 0x00]) },
|
|
40
|
+
{ kind: 'audio', format: 'FLAC', matches: h => hasAscii(h, 0, 'fLaC') },
|
|
41
|
+
{ kind: 'audio', format: 'AMR', matches: h => AMR_MAGICS.some(m => hasAscii(h, 0, m)) },
|
|
42
|
+
// QQ 语音的 SILK 前面可能多一个 0x02
|
|
43
|
+
{
|
|
44
|
+
kind: 'audio',
|
|
45
|
+
format: 'SILK',
|
|
46
|
+
matches: h => hasAscii(h, 0, '#!SILK_V3') || (h[0] === 0x02 && hasAscii(h, 1, '#!SILK_V3')),
|
|
47
|
+
},
|
|
48
|
+
{ kind: 'audio', format: 'M4A', matches: h => isoMediaFormat(h) === 'M4A' },
|
|
49
|
+
{ kind: 'video', format: 'MP4', matches: h => isoMediaFormat(h) === 'MP4' },
|
|
50
|
+
{ kind: 'video', format: 'MOV', matches: h => isoMediaFormat(h) === 'MOV' },
|
|
51
|
+
{ kind: 'video', format: 'WebM', matches: h => ebmlDocType(h) === 'webm' },
|
|
52
|
+
{ kind: 'video', format: 'MKV', matches: h => ebmlDocType(h) === 'matroska' },
|
|
53
|
+
{ kind: 'video', format: 'AVI', matches: h => isRiff(h, 'AVI ') },
|
|
54
|
+
];
|
|
55
|
+
/**
|
|
56
|
+
* 核对文件头是否为所请求 kind 的受支持格式。相符返回 null;不符返回给模型的拒发说明:
|
|
57
|
+
* 不是任何受支持的媒体格式时说明不能按该类型发送,是别类媒体时说出检测到的格式与该用的 kind。
|
|
58
|
+
*/
|
|
59
|
+
export function checkMediaHead(head, kind) {
|
|
60
|
+
const detected = SIGNATURES.find(s => s.matches(head));
|
|
61
|
+
if (!detected) {
|
|
62
|
+
const supported = SIGNATURES.filter(s => s.kind === kind)
|
|
63
|
+
.map(s => s.format)
|
|
64
|
+
.join('、');
|
|
65
|
+
return `文件不是受支持的${KIND_LABEL[kind]}格式(${supported}),不能按 ${kind} 发送`;
|
|
66
|
+
}
|
|
67
|
+
if (detected.kind !== kind) {
|
|
68
|
+
return `文件是 ${detected.format} ${KIND_LABEL[detected.kind]},不能按 ${kind} 发送;请改用 kind=${detected.kind} 重新发送`;
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* ISO 基础媒体文件(ISO/IEC 14496-12)按 ftyp 盒的品牌分类。AVIF 与 HEIF 在主品牌与兼容品牌里都找:
|
|
74
|
+
* AVIF 文件的主品牌也可能写 mif1,avif 只列在兼容品牌里。M4A 与 MOV 只看主品牌:iTunes 的 M4V 视频
|
|
75
|
+
* 会把 'M4A ' 列进兼容品牌。其余品牌(isom、mp41、mp42、3gp 系等)都归 MP4 家族的视频容器。
|
|
76
|
+
*/
|
|
77
|
+
function isoMediaFormat(h) {
|
|
78
|
+
if (h.length < 12 || !hasAscii(h, 4, 'ftyp'))
|
|
79
|
+
return null;
|
|
80
|
+
const major = ascii(h, 8, 4);
|
|
81
|
+
const boxEnd = Math.min(readUint32BE(h, 0), h.length);
|
|
82
|
+
const brands = [major];
|
|
83
|
+
for (let offset = 16; offset + 4 <= boxEnd; offset += 4)
|
|
84
|
+
brands.push(ascii(h, offset, 4));
|
|
85
|
+
if (brands.some(b => AVIF_BRANDS.has(b)))
|
|
86
|
+
return 'AVIF';
|
|
87
|
+
if (brands.some(b => HEIF_BRANDS.has(b)))
|
|
88
|
+
return 'HEIC';
|
|
89
|
+
if (M4A_BRANDS.has(major))
|
|
90
|
+
return 'M4A';
|
|
91
|
+
if (major === 'qt ')
|
|
92
|
+
return 'MOV';
|
|
93
|
+
return 'MP4';
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Matroska 与 WebM 同为 EBML 容器(魔数 1A45DFA3),靠 DocType 元素(ID 0x4282)区分:
|
|
97
|
+
* 与 file(1) 一样在文件头里找到它,跳过一字节长度后比对。
|
|
98
|
+
*/
|
|
99
|
+
function ebmlDocType(h) {
|
|
100
|
+
if (!hasBytes(h, 0, [0x1a, 0x45, 0xdf, 0xa3]))
|
|
101
|
+
return null;
|
|
102
|
+
for (let i = 4; i + 1 < h.length; i++) {
|
|
103
|
+
if (h[i] !== 0x42 || h[i + 1] !== 0x82)
|
|
104
|
+
continue;
|
|
105
|
+
if (hasAscii(h, i + 3, 'webm'))
|
|
106
|
+
return 'webm';
|
|
107
|
+
if (hasAscii(h, i + 3, 'matroska'))
|
|
108
|
+
return 'matroska';
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
/** ID3v2 标签:'ID3' 后接主版本号(现有 2、3、4 三版)与不为 FF 的修订号。 */
|
|
114
|
+
function isId3v2(h) {
|
|
115
|
+
return hasAscii(h, 0, 'ID3') && h.length >= 5 && h[3] >= 2 && h[3] <= 4 && h[4] !== 0xff;
|
|
116
|
+
}
|
|
117
|
+
/** MPEG 音频帧头:11 位同步,版本不为保留值 01,层为 Layer III(01),码率索引不为 1111,采样率索引不为 11。 */
|
|
118
|
+
function isMp3Frame(h) {
|
|
119
|
+
if (h.length < 3 || h[0] !== 0xff || (h[1] & 0xe0) !== 0xe0)
|
|
120
|
+
return false;
|
|
121
|
+
const version = (h[1] >> 3) & 0x03;
|
|
122
|
+
const layer = (h[1] >> 1) & 0x03;
|
|
123
|
+
const bitrateIndex = h[2] >> 4;
|
|
124
|
+
const sampleRateIndex = (h[2] >> 2) & 0x03;
|
|
125
|
+
return version !== 0x01 && layer === 0x01 && bitrateIndex !== 0x0f && sampleRateIndex !== 0x03;
|
|
126
|
+
}
|
|
127
|
+
/** RIFF 容器:'RIFF' 加 4 字节长度,偏移 8 处是形式类型(WAVE、AVI 、WEBP)。 */
|
|
128
|
+
function isRiff(h, formType) {
|
|
129
|
+
return hasAscii(h, 0, 'RIFF') && hasAscii(h, 8, formType);
|
|
130
|
+
}
|
|
131
|
+
function hasBytes(h, offset, bytes) {
|
|
132
|
+
if (h.length < offset + bytes.length)
|
|
133
|
+
return false;
|
|
134
|
+
return bytes.every((b, i) => h[offset + i] === b);
|
|
135
|
+
}
|
|
136
|
+
function hasAscii(h, offset, text) {
|
|
137
|
+
if (h.length < offset + text.length)
|
|
138
|
+
return false;
|
|
139
|
+
for (let i = 0; i < text.length; i++) {
|
|
140
|
+
if (h[offset + i] !== text.charCodeAt(i))
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
function ascii(h, offset, length) {
|
|
146
|
+
return String.fromCharCode(...h.subarray(offset, offset + length));
|
|
147
|
+
}
|
|
148
|
+
function readUint32BE(h, offset) {
|
|
149
|
+
return ((h[offset] << 24) | (h[offset + 1] << 16) | (h[offset + 2] << 8) | h[offset + 3]) >>> 0;
|
|
150
|
+
}
|
|
151
|
+
function readUint32LE(h, offset) {
|
|
152
|
+
return (h[offset] | (h[offset + 1] << 8) | (h[offset + 2] << 16) | (h[offset + 3] << 24)) >>> 0;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=media-signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-signature.js","sourceRoot":"","sources":["../src/media-signature.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/plugin-image-sender",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,20 +24,20 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aalis/schema-message": ">=0.
|
|
28
|
-
"@aalis/api-media": ">=0.
|
|
29
|
-
"@aalis/api-memory": ">=0.
|
|
30
|
-
"@aalis/api-message-archive": ">=0.
|
|
31
|
-
"@aalis/api-storage": ">=0.
|
|
32
|
-
"@aalis/api-tools": ">=0.
|
|
27
|
+
"@aalis/schema-message": ">=0.9.0 <1.0.0",
|
|
28
|
+
"@aalis/api-media": ">=0.11.0 <1.0.0",
|
|
29
|
+
"@aalis/api-memory": ">=0.7.0 <1.0.0",
|
|
30
|
+
"@aalis/api-message-archive": ">=0.7.0 <1.0.0",
|
|
31
|
+
"@aalis/api-storage": ">=0.7.0 <1.0.0",
|
|
32
|
+
"@aalis/api-tools": ">=0.10.0 <1.0.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^22.0.0",
|
|
36
36
|
"typescript": "^5.7.0",
|
|
37
|
-
"@aalis/core": "0.
|
|
37
|
+
"@aalis/core": "0.19.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@aalis/core": ">=0.
|
|
40
|
+
"@aalis/core": ">=0.18.0 <1.0.0"
|
|
41
41
|
},
|
|
42
42
|
"aalis": {
|
|
43
43
|
"service": {
|