@zaofan/dsh-qqbot 1.4.1 → 1.4.5
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 +69 -0
- package/client/qqbot-settings.js +429 -4
- package/dist/channel-tools.d.ts +15 -0
- package/dist/channel-tools.d.ts.map +1 -1
- package/dist/channel-tools.js +59 -1
- package/dist/channel-tools.js.map +1 -1
- package/dist/config.d.ts +32 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -1
- package/dist/config.js.map +1 -1
- package/dist/features/image-path-cache.d.ts +23 -0
- package/dist/features/image-path-cache.d.ts.map +1 -0
- package/dist/features/image-path-cache.js +38 -0
- package/dist/features/image-path-cache.js.map +1 -0
- package/dist/features/image-url-ledger.d.ts +19 -0
- package/dist/features/image-url-ledger.d.ts.map +1 -0
- package/dist/features/image-url-ledger.js +133 -0
- package/dist/features/image-url-ledger.js.map +1 -0
- package/dist/features/local-embed.d.ts +43 -0
- package/dist/features/local-embed.d.ts.map +1 -0
- package/dist/features/local-embed.js +143 -0
- package/dist/features/local-embed.js.map +1 -0
- package/dist/features/sticker-store.d.ts +48 -2
- package/dist/features/sticker-store.d.ts.map +1 -1
- package/dist/features/sticker-store.js +156 -1
- package/dist/features/sticker-store.js.map +1 -1
- package/dist/features/value-sample.d.ts +25 -0
- package/dist/features/value-sample.d.ts.map +1 -0
- package/dist/features/value-sample.js +122 -0
- package/dist/features/value-sample.js.map +1 -0
- package/dist/features/value-score.d.ts +36 -0
- package/dist/features/value-score.d.ts.map +1 -0
- package/dist/features/value-score.js +122 -0
- package/dist/features/value-score.js.map +1 -0
- package/dist/gateway/bootstrap.d.ts.map +1 -1
- package/dist/gateway/bootstrap.js +4 -0
- package/dist/gateway/bootstrap.js.map +1 -1
- package/dist/gateway/debounce.d.ts.map +1 -1
- package/dist/gateway/debounce.js +16 -5
- package/dist/gateway/debounce.js.map +1 -1
- package/dist/gateway/middleware-setup.d.ts.map +1 -1
- package/dist/gateway/middleware-setup.js +12 -1
- package/dist/gateway/middleware-setup.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/sticker-capture.d.ts +8 -2
- package/dist/middleware/sticker-capture.d.ts.map +1 -1
- package/dist/middleware/sticker-capture.js +63 -45
- package/dist/middleware/sticker-capture.js.map +1 -1
- package/dist/model/model-resolver.js +12 -6
- package/dist/model/model-resolver.js.map +1 -1
- package/dist/transport/attachment.d.ts +5 -1
- package/dist/transport/attachment.d.ts.map +1 -1
- package/dist/transport/attachment.js +16 -5
- package/dist/transport/attachment.js.map +1 -1
- package/dist/transport/inbound.d.ts.map +1 -1
- package/dist/transport/inbound.js +351 -9
- package/dist/transport/inbound.js.map +1 -1
- package/dist/transport/inject-rules.d.ts.map +1 -1
- package/dist/transport/inject-rules.js +3 -1
- package/dist/transport/inject-rules.js.map +1 -1
- package/package.json +3 -2
- package/scripts/download-model.mjs +110 -0
- package/settings-host.js +337 -5
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* sticker-capture.ts — 表情包自动收藏中间件(P0)
|
|
3
3
|
*
|
|
4
|
-
* 群消息里的图片 →
|
|
4
|
+
* 群消息里的图片 → 收藏进本地表情包库(下载/去重/落盘在 sticker-store),
|
|
5
|
+
* 并把「URL → 本地路径」记进 image-path-cache,供入站消息**直接写本地路径**
|
|
6
|
+
* (2026-09-13 主人要求:看图不用再下载一次,token 也更短;下载失败自动回退 QQ 链接)。
|
|
5
7
|
*
|
|
6
8
|
* ⚠️ 时机关键:收藏调度必须放在 `await next()` 之前——
|
|
7
9
|
* 未@机器人的群消息会在下游被 mentionGate 截断(链不走到结尾),
|
|
8
10
|
* 若收藏放在 next() 之后(finally)就永远不触发(线上已踩坑)。
|
|
9
|
-
*
|
|
11
|
+
*
|
|
12
|
+
* ⚠️ 2026-09-13 主人定稿:**只等"下载已发起"就放行**(即主链 0 等待)——
|
|
13
|
+
* 下载 fire-and-forget 跑,落盘后把「URL→本地路径」补进 image-path-cache;
|
|
14
|
+
* 消息组装时**检索得到就给本地路径,检索不到就回退 QQ 链接**(不影响正确性)。
|
|
15
|
+
* 自动打标(视觉 CLI)同样永远后台,绝不挡主链。
|
|
10
16
|
*
|
|
11
17
|
* ⚠️ 本地手改功能(fork 新增):维护清单见工作区根《插件改动维护注意事项.md》。
|
|
12
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sticker-capture.d.ts","sourceRoot":"","sources":["../../src/middleware/sticker-capture.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sticker-capture.d.ts","sourceRoot":"","sources":["../../src/middleware/sticker-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;AAiGzD,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,IACpD,KAAK,iBAAiB,EAAE,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC,CAoBhF"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { stickerDirOf } from '../gateway/data-root.js';
|
|
2
2
|
import { getStickerStore } from '../features/sticker-store.js';
|
|
3
3
|
import { autoTagImage } from '../features/sticker-tagger.js';
|
|
4
|
+
import { rememberImagePath } from '../features/image-path-cache.js';
|
|
5
|
+
import { recordImageUrl } from '../features/image-url-ledger.js';
|
|
4
6
|
/** 同进程并发下载上限,防止群图轰炸时打爆连接 */
|
|
5
7
|
let inflight = 0;
|
|
6
|
-
const MAX_INFLIGHT =
|
|
8
|
+
const MAX_INFLIGHT = 3;
|
|
9
|
+
/** 候选区软上限(2026-09-13 主人定: 300 → 500) —— 超出的最久未见条目滚进回收站 */
|
|
10
|
+
const MAX_CANDIDATES = 500;
|
|
11
|
+
/** 单条消息里最多顺手收几张图 */
|
|
12
|
+
const MAX_PER_MSG = 3;
|
|
7
13
|
/** 图片 URL 是否可收藏(仅 https + 看似 QQ 图片下载链接) */
|
|
8
14
|
function isCollectableImage(url) {
|
|
9
15
|
return !!url && /^https:\/\//i.test(url) && /multimedia|qq\.com|download/i.test(url);
|
|
@@ -18,73 +24,85 @@ function isNonImageContentType(ct) {
|
|
|
18
24
|
const t = ct.toLowerCase();
|
|
19
25
|
return t.startsWith('audio/') || t.startsWith('video/') || t === 'voice';
|
|
20
26
|
}
|
|
21
|
-
/**
|
|
22
|
-
function
|
|
27
|
+
/** 收藏一张图(落盘 + 记住本地路径);返回本地路径(失败/并发超限返回 undefined) */
|
|
28
|
+
async function captureOne(url, contentType, ctx, config, logger) {
|
|
23
29
|
if (inflight >= MAX_INFLIGHT)
|
|
24
|
-
return;
|
|
30
|
+
return undefined;
|
|
25
31
|
inflight += 1;
|
|
26
32
|
const msg = ctx.message;
|
|
27
|
-
const
|
|
28
|
-
const store = getStickerStore(
|
|
33
|
+
const stickerDir = stickerDirOf(config);
|
|
34
|
+
const store = getStickerStore(stickerDir, logger);
|
|
29
35
|
const senderId = msg.senderId;
|
|
30
36
|
const senderName = msg.senderName;
|
|
31
37
|
const sourceGroup = ctx.message.kind === 'group' ? msg.groupOpenid : undefined;
|
|
32
38
|
const msgText = (msg.content ?? '').trim().slice(0, 120) || undefined;
|
|
33
|
-
|
|
39
|
+
let resolved;
|
|
40
|
+
try {
|
|
41
|
+
resolved = await store.capture(url, { sourceGroup, senderId, senderName, msgText, sourceUrl: url }, contentType);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
inflight -= 1;
|
|
45
|
+
logger.debug(`[sticker] capture error: ${err instanceof Error ? err.message : String(err)}`);
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
inflight -= 1;
|
|
49
|
+
if (!resolved.id) {
|
|
50
|
+
if (resolved.status === 'error')
|
|
51
|
+
logger.debug(`[sticker] capture failed: ${resolved.error}`);
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
// 台账兜底(2026-09-13 主人要求, 只图片): 记「图库 id → 这条 QQ 链接」——
|
|
55
|
+
// 本地文件日后被清理/搬层/删掉时, dock 还能拿这条链接把图显示出来。上限 1000 条。
|
|
56
|
+
recordImageUrl(stickerDir, resolved.id, url);
|
|
57
|
+
const localPath = store.pathOf(resolved.id);
|
|
58
|
+
if (localPath)
|
|
59
|
+
rememberImagePath(url, localPath);
|
|
60
|
+
if (resolved.status === 'new') {
|
|
61
|
+
logger.debug(`[sticker] captured #${resolved.id} → ${localPath ?? '(path?)'}`);
|
|
62
|
+
// 候选区软上限 + 回收站物理清理(纯本地操作,同步做完很快)
|
|
34
63
|
try {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
store.purgeTrashed();
|
|
46
|
-
}
|
|
47
|
-
catch { /* ignore */ }
|
|
48
|
-
// 后台自动打标(可配视觉CLI 生成 tags+desc; 无可用引擎则保持 needsDescribe 待 agent 视觉补)
|
|
64
|
+
store.cleanupCandidates(MAX_CANDIDATES);
|
|
65
|
+
}
|
|
66
|
+
catch { /* ignore */ }
|
|
67
|
+
try {
|
|
68
|
+
store.purgeTrashed();
|
|
69
|
+
}
|
|
70
|
+
catch { /* ignore */ }
|
|
71
|
+
// 后台自动打标(可配视觉CLI 生成 tags+desc; 无可用引擎则保持 needsDescribe 待 agent 视觉补)
|
|
72
|
+
if (localPath && config.sticker.autoTagEnabled !== false) {
|
|
73
|
+
void (async () => {
|
|
49
74
|
try {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (tag) {
|
|
55
|
-
store.setDescTags(r.id, tag.tags, tag.desc);
|
|
56
|
-
logger.info(`[sticker] 自动打标 #${r.id}: tags=${tag.tags.join('/') || '(启发)'} desc=${tag.desc.slice(0, 40)}…`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
75
|
+
const tag = await autoTagImage(localPath, config.sticker.visionCli ?? '', logger);
|
|
76
|
+
if (tag) {
|
|
77
|
+
store.setDescTags(resolved.id, tag.tags, tag.desc);
|
|
78
|
+
logger.debug(`[sticker] 自动打标 #${resolved.id}: tags=${tag.tags.join('/') || '(启发)'} desc=${tag.desc.slice(0, 40)}…`);
|
|
59
79
|
}
|
|
60
80
|
}
|
|
61
81
|
catch (err) {
|
|
62
82
|
logger.debug(`[sticker] autotag error: ${err instanceof Error ? err.message : String(err)}`);
|
|
63
83
|
}
|
|
64
|
-
}
|
|
65
|
-
else if (r.status === 'error') {
|
|
66
|
-
logger.debug(`[sticker] capture failed: ${r.error}`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
catch (err) {
|
|
70
|
-
logger.debug(`[sticker] capture error: ${err instanceof Error ? err.message : String(err)}`);
|
|
71
|
-
}
|
|
72
|
-
finally {
|
|
73
|
-
inflight -= 1;
|
|
84
|
+
})();
|
|
74
85
|
}
|
|
75
|
-
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
logger.debug(`[sticker] dup #${resolved.id} (已在库, 只刷新 lastSeenAt)`);
|
|
89
|
+
}
|
|
90
|
+
return localPath;
|
|
76
91
|
}
|
|
77
92
|
export function stickerCapture(config, logger) {
|
|
78
93
|
return async (ctx, next) => {
|
|
79
|
-
//
|
|
94
|
+
// 先"发起"下载(不等它完成),再走主链 —— 保证被后续截断(未@被门控吞)也照样收藏。
|
|
95
|
+
// ⚠️ 2026-09-13 主人定稿:主链**0 等待**,落盘后路径才异步补进 image-path-cache,
|
|
96
|
+
// 所以这条消息未必用得上本地路径(检索不到就回退 QQ 链接) —— 这是刻意取舍:宁可用链接也不拖入站。
|
|
80
97
|
if (config.sticker.collectEnabled) {
|
|
81
98
|
try {
|
|
82
99
|
const msg = ctx.message;
|
|
83
100
|
// content_type 是 MIME(image/jpeg 等),不能 == 'image'(踩坑修正)
|
|
84
101
|
const images = (msg.attachments ?? [])
|
|
85
|
-
.filter(a => isCollectableImage(a.url) && !isNonImageContentType(a.content_type))
|
|
86
|
-
|
|
87
|
-
|
|
102
|
+
.filter(a => isCollectableImage(a.url) && !isNonImageContentType(a.content_type))
|
|
103
|
+
.slice(0, MAX_PER_MSG);
|
|
104
|
+
for (const img of images) {
|
|
105
|
+
void captureOne(img.url, img.content_type, ctx, config, logger).catch(() => undefined);
|
|
88
106
|
}
|
|
89
107
|
}
|
|
90
108
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sticker-capture.js","sourceRoot":"","sources":["../../src/middleware/sticker-capture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sticker-capture.js","sourceRoot":"","sources":["../../src/middleware/sticker-capture.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,4BAA4B;AAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,0DAA0D;AAC1D,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,oBAAoB;AACpB,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,2CAA2C;AAC3C,SAAS,kBAAkB,CAAC,GAAuB;IACjD,OAAO,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvF,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,EAAsB;IACnD,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IACtB,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3B,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC;AAC3E,CAAC;AAED,qDAAqD;AACrD,KAAK,UAAU,UAAU,CACvB,GAAW,EACX,WAA+B,EAC/B,GAAsB,EACtB,MAAqB,EACrB,MAAc;IAEd,IAAI,QAAQ,IAAI,YAAY;QAAE,OAAO,SAAS,CAAC;IAC/C,QAAQ,IAAI,CAAC,CAAC;IAEd,MAAM,GAAG,GAAG,GAAG,CAAC,OAA4H,CAAC;IAC7I,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAClC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC;IAEtE,IAAI,QAA0E,CAAC;IAC/E,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IACnH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,IAAI,CAAC,CAAC;QACd,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,QAAQ,IAAI,CAAC,CAAC;IAEd,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;YAAE,MAAM,CAAC,KAAK,CAAC,6BAA6B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7F,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oDAAoD;IACpD,oDAAoD;IACpD,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,SAAS;QAAE,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,uBAAuB,QAAQ,CAAC,EAAE,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;QAC/E,iCAAiC;QACjC,IAAI,CAAC;YAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACvE,IAAI,CAAC;YAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACpD,mEAAmE;QACnE,IAAI,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YACzD,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;oBAClF,IAAI,GAAG,EAAE,CAAC;wBACR,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;wBACpD,MAAM,CAAC,KAAK,CAAC,mBAAmB,QAAQ,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;oBACtH,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/F,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,kBAAkB,QAAQ,CAAC,EAAE,wBAAwB,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,MAAc;IAClE,OAAO,KAAK,EAAE,GAAsB,EAAE,IAAyB,EAAiB,EAAE;QAChF,+CAA+C;QAC/C,6DAA6D;QAC7D,yDAAyD;QACzD,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,GAAG,CAAC,OAA4C,CAAC;gBAC7D,wDAAwD;gBACxD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;qBACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;qBAChF,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBACzB,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;oBACzB,KAAK,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -135,10 +135,10 @@ export class ModelResolver {
|
|
|
135
135
|
// ① 宿主 llm 服务的模型目录(deepseek-official 等内置 provider 的模型)
|
|
136
136
|
try {
|
|
137
137
|
const llm = this.getService('llm');
|
|
138
|
-
|
|
138
|
+
dbg(`[model] listModels: llm=${llm ? 'found' : 'MISSING'} listProviders=${typeof llm?.listProviders} listModels=${typeof llm?.listModels}`);
|
|
139
139
|
if (llm && typeof llm.listProviders === 'function') {
|
|
140
140
|
const providers = await llm.listProviders();
|
|
141
|
-
|
|
141
|
+
dbg(`[model] listProviders -> ${Array.isArray(providers) ? providers.length + ' 个' : typeof providers}`);
|
|
142
142
|
if (Array.isArray(providers)) {
|
|
143
143
|
for (const p of providers) {
|
|
144
144
|
const pid = typeof p === 'string' ? p : p?.id;
|
|
@@ -148,7 +148,7 @@ export class ModelResolver {
|
|
|
148
148
|
if (typeof llm.listModels !== 'function')
|
|
149
149
|
continue;
|
|
150
150
|
const ms = await llm.listModels(pid);
|
|
151
|
-
|
|
151
|
+
dbg(`[model] provider=${pid} models=${Array.isArray(ms) ? ms.length : '非数组'}`);
|
|
152
152
|
if (!Array.isArray(ms))
|
|
153
153
|
continue;
|
|
154
154
|
for (const m of ms) {
|
|
@@ -159,21 +159,21 @@ export class ModelResolver {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
catch (err) {
|
|
162
|
-
|
|
162
|
+
dbg(`[model] provider=${pid} listModels 异常: ${err instanceof Error ? err.message : String(err)}`);
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
catch (err) {
|
|
169
|
-
|
|
169
|
+
dbg(`[model] 宿主 llm 服务异常: ${err instanceof Error ? err.message : String(err)}`);
|
|
170
170
|
}
|
|
171
171
|
// ② settings.yaml llm-pi-ai.providers(火山/豆包等, 去重)
|
|
172
172
|
for (const m of this.settings.readModels()) {
|
|
173
173
|
if (!models.some((x) => x.provider === m.provider && x.id === m.id))
|
|
174
174
|
models.push(m);
|
|
175
175
|
}
|
|
176
|
-
|
|
176
|
+
dbg(`[model] listModels 合计 ${models.length} 个`);
|
|
177
177
|
return models;
|
|
178
178
|
}
|
|
179
179
|
/**
|
|
@@ -241,4 +241,10 @@ export class ModelResolver {
|
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
|
+
// ── 诊断输出(2026-09-13 主人要求): **默认静默** —— 插件用户不需要这些调试噪音,
|
|
245
|
+
// 排障时设环境变量 DSH_QQBOT_DEBUG=1 即可全部打出来。
|
|
246
|
+
function dbg(msg) {
|
|
247
|
+
if (process.env.DSH_QQBOT_DEBUG)
|
|
248
|
+
console.log(msg);
|
|
249
|
+
}
|
|
244
250
|
//# sourceMappingURL=model-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-resolver.js","sourceRoot":"","sources":["../../src/model/model-resolver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"model-resolver.js","sourceRoot":"","sources":["../../src/model/model-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,15 @@ export interface DownloadedFile {
|
|
|
8
8
|
/** 相对 cwd 的显示路径(@提及 / 工具访问用) */
|
|
9
9
|
displayPath: string;
|
|
10
10
|
}
|
|
11
|
+
/** 安全下载:仅 HTTPS + SSRF 防护 + 大小上限 + 超时,返回下载字节数。
|
|
12
|
+
* (2026-09-13 起 export: 图片预检要复用它下载后算内容哈希 —— QQ 的 fileid/rkey 都会变, 只有字节哈希恒定) */
|
|
13
|
+
export declare function download(url: string, destPath: string, maxBytes: number): Promise<number>;
|
|
11
14
|
/**
|
|
12
15
|
* 下载消息中的 file 附件到本地
|
|
13
16
|
*
|
|
14
17
|
* 下载目录为 {cwd}/.qqbot/{messageId},用 messageId 隔离跨消息重名。
|
|
15
18
|
* 下载失败不返回(由调用方回退描述),下载成功仅保留路径供模型用工具读取。
|
|
16
19
|
*/
|
|
17
|
-
export declare function downloadFileAttachments(attachments: RawAttachment[] | undefined, cwd: string,
|
|
20
|
+
export declare function downloadFileAttachments(attachments: RawAttachment[] | undefined, cwd: string, _messageId: string, // 保留形参(调用方按位置传): 2026-09-13 起目录名不再用 msg_id(会堆空目录)
|
|
21
|
+
logger: Logger): Promise<DownloadedFile[]>;
|
|
18
22
|
//# sourceMappingURL=attachment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/transport/attachment.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAOzD,WAAW;AACX,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/transport/attachment.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAOzD,WAAW;AACX,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AA+CD;gFACgF;AAChF,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB/F;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,aAAa,EAAE,GAAG,SAAS,EACxC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAAI,kDAAkD;AACxE,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,EAAE,CAAC,CA2C3B"}
|
|
@@ -51,8 +51,9 @@ async function assertSafeHostname(hostname) {
|
|
|
51
51
|
throw new Error(`SSRF blocked: ${hostname} resolves to private IP ${addr}`);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
/** 安全下载:仅 HTTPS + SSRF 防护 + 大小上限 +
|
|
55
|
-
|
|
54
|
+
/** 安全下载:仅 HTTPS + SSRF 防护 + 大小上限 + 超时,返回下载字节数。
|
|
55
|
+
* (2026-09-13 起 export: 图片预检要复用它下载后算内容哈希 —— QQ 的 fileid/rkey 都会变, 只有字节哈希恒定) */
|
|
56
|
+
export async function download(url, destPath, maxBytes) {
|
|
56
57
|
const parsed = new URL(url);
|
|
57
58
|
if (parsed.protocol !== 'https:') {
|
|
58
59
|
throw new Error(`Only HTTPS allowed: ${parsed.protocol}`);
|
|
@@ -74,12 +75,18 @@ async function download(url, destPath, maxBytes) {
|
|
|
74
75
|
* 下载目录为 {cwd}/.qqbot/{messageId},用 messageId 隔离跨消息重名。
|
|
75
76
|
* 下载失败不返回(由调用方回退描述),下载成功仅保留路径供模型用工具读取。
|
|
76
77
|
*/
|
|
77
|
-
export async function downloadFileAttachments(attachments, cwd,
|
|
78
|
+
export async function downloadFileAttachments(attachments, cwd, _messageId, // 保留形参(调用方按位置传): 2026-09-13 起目录名不再用 msg_id(会堆空目录)
|
|
79
|
+
logger) {
|
|
78
80
|
const files = (attachments ?? []).filter(a => a.content_type === 'file' && a.url);
|
|
79
81
|
if (files.length === 0)
|
|
80
82
|
return [];
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
// ⚠️ 2026-09-13 修(主人发现 `.qqbot/` 下一堆空的 ROBOT1.0_* 目录):
|
|
84
|
+
// 原来 `dir = {cwd}/.qqbot/{messageId}` 且**无条件 mkdir** —— 每条带附件的消息就建一个以 msg_id 命名的
|
|
85
|
+
// 目录, 文件太大/下载失败时目录还留着 → 无限堆空目录。改为: ①按天分目录 attachments/YYYY-MM-DD
|
|
86
|
+
// ②**懒创建**(真要下载时才 mkdir)。
|
|
87
|
+
const day = new Date().toISOString().slice(0, 10);
|
|
88
|
+
const dir = join(cwd, '.qqbot', 'attachments', day);
|
|
89
|
+
let dirReady = false;
|
|
83
90
|
const results = [];
|
|
84
91
|
for (const file of files) {
|
|
85
92
|
const safeName = sanitizeFilename(file.filename);
|
|
@@ -91,6 +98,10 @@ export async function downloadFileAttachments(attachments, cwd, messageId, logge
|
|
|
91
98
|
results.push({ filename: file.filename, localPath, displayPath });
|
|
92
99
|
continue;
|
|
93
100
|
}
|
|
101
|
+
if (!dirReady) {
|
|
102
|
+
mkdirSync(dir, { recursive: true });
|
|
103
|
+
dirReady = true;
|
|
104
|
+
}
|
|
94
105
|
let bytes;
|
|
95
106
|
try {
|
|
96
107
|
bytes = await download(file.url, localPath, MAX_DOWNLOAD_BYTES);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/transport/attachment.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/transport/attachment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound.d.ts","sourceRoot":"","sources":["../../src/transport/inbound.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inbound.d.ts","sourceRoot":"","sources":["../../src/transport/inbound.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAa,MAAM,EAA8B,MAAM,aAAa,CAAC;AAoFjF;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAqXf"}
|