@zaofan/dsh-qqbot 1.4.6 → 1.5.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.
Files changed (85) hide show
  1. package/README.md +158 -535
  2. package/README_EN.md +6 -0
  3. package/client/qqbot-settings.js +152 -5
  4. package/dist/channel-tools.d.ts.map +1 -1
  5. package/dist/channel-tools.js +106 -1
  6. package/dist/channel-tools.js.map +1 -1
  7. package/dist/features/agg-score.d.ts +73 -0
  8. package/dist/features/agg-score.d.ts.map +1 -0
  9. package/dist/features/agg-score.js +63 -0
  10. package/dist/features/agg-score.js.map +1 -0
  11. package/dist/features/attitude.d.ts +132 -0
  12. package/dist/features/attitude.d.ts.map +1 -0
  13. package/dist/features/attitude.js +318 -0
  14. package/dist/features/attitude.js.map +1 -0
  15. package/dist/features/bot-reply-memo.d.ts +8 -0
  16. package/dist/features/bot-reply-memo.d.ts.map +1 -0
  17. package/dist/features/bot-reply-memo.js +34 -0
  18. package/dist/features/bot-reply-memo.js.map +1 -0
  19. package/dist/features/emo-samples.d.ts +27 -0
  20. package/dist/features/emo-samples.d.ts.map +1 -0
  21. package/dist/features/emo-samples.js +116 -0
  22. package/dist/features/emo-samples.js.map +1 -0
  23. package/dist/features/four-source.d.ts +114 -0
  24. package/dist/features/four-source.d.ts.map +1 -0
  25. package/dist/features/four-source.js +260 -0
  26. package/dist/features/four-source.js.map +1 -0
  27. package/dist/features/image-url-ledger.d.ts +2 -0
  28. package/dist/features/image-url-ledger.d.ts.map +1 -1
  29. package/dist/features/image-url-ledger.js +23 -0
  30. package/dist/features/image-url-ledger.js.map +1 -1
  31. package/dist/features/intimacy-ledger.d.ts +31 -0
  32. package/dist/features/intimacy-ledger.d.ts.map +1 -0
  33. package/dist/features/intimacy-ledger.js +113 -0
  34. package/dist/features/intimacy-ledger.js.map +1 -0
  35. package/dist/features/local-signals.d.ts +130 -0
  36. package/dist/features/local-signals.d.ts.map +1 -0
  37. package/dist/features/local-signals.js +445 -0
  38. package/dist/features/local-signals.js.map +1 -0
  39. package/dist/features/people-memo.d.ts +52 -0
  40. package/dist/features/people-memo.d.ts.map +1 -0
  41. package/dist/features/people-memo.js +239 -0
  42. package/dist/features/people-memo.js.map +1 -0
  43. package/dist/features/quote-cache.d.ts +19 -0
  44. package/dist/features/quote-cache.d.ts.map +1 -0
  45. package/dist/features/quote-cache.js +67 -0
  46. package/dist/features/quote-cache.js.map +1 -0
  47. package/dist/features/self-disclosure.d.ts +28 -0
  48. package/dist/features/self-disclosure.d.ts.map +1 -0
  49. package/dist/features/self-disclosure.js +60 -0
  50. package/dist/features/self-disclosure.js.map +1 -0
  51. package/dist/features/tendency-samples.d.ts +22 -0
  52. package/dist/features/tendency-samples.d.ts.map +1 -0
  53. package/dist/features/tendency-samples.js +194 -0
  54. package/dist/features/tendency-samples.js.map +1 -0
  55. package/dist/features/thinking-log.d.ts +22 -0
  56. package/dist/features/thinking-log.d.ts.map +1 -0
  57. package/dist/features/thinking-log.js +70 -0
  58. package/dist/features/thinking-log.js.map +1 -0
  59. package/dist/features/xlsx.d.ts +28 -0
  60. package/dist/features/xlsx.d.ts.map +1 -0
  61. package/dist/features/xlsx.js +159 -0
  62. package/dist/features/xlsx.js.map +1 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +20 -1
  65. package/dist/index.js.map +1 -1
  66. package/dist/session/session-manager.d.ts.map +1 -1
  67. package/dist/session/session-manager.js +25 -3
  68. package/dist/session/session-manager.js.map +1 -1
  69. package/dist/transport/events.d.ts +12 -0
  70. package/dist/transport/events.d.ts.map +1 -1
  71. package/dist/transport/events.js +15 -2
  72. package/dist/transport/events.js.map +1 -1
  73. package/dist/transport/inbound.d.ts.map +1 -1
  74. package/dist/transport/inbound.js +344 -20
  75. package/dist/transport/inbound.js.map +1 -1
  76. package/dist/transport/outbound-buffer.d.ts.map +1 -1
  77. package/dist/transport/outbound-buffer.js +8 -0
  78. package/dist/transport/outbound-buffer.js.map +1 -1
  79. package/dist/transport/outbound.d.ts +12 -0
  80. package/dist/transport/outbound.d.ts.map +1 -1
  81. package/dist/transport/outbound.js +170 -5
  82. package/dist/transport/outbound.js.map +1 -1
  83. package/docs/USER-GUIDE.md +429 -0
  84. package/package.json +2 -1
  85. package/settings-host.js +154 -0
@@ -0,0 +1,194 @@
1
+ export const TENDENCY_SAMPLES = {
2
+ 亲近: {
3
+ zh: [
4
+ "这波得好好夸一下,别让他冷场。",
5
+ "人家也来凑个热闹,顺便接个梗吧。",
6
+ "他应该不是故意的,先给个台阶下。",
7
+ "这句挺有意思,我想顺着聊两句。",
8
+ "难得他主动开口,多回应一点也好。",
9
+ "我想帮他把话圆回来,别太尴尬。",
10
+ "可以多花点力气,让他觉得被在意。",
11
+ "这个梗我懂,想配合他玩一下。",
12
+ "他今天好像有点累,语气放软些吧。",
13
+ "先别急着纠正,照顾一下他的心情。",
14
+ "我愿意多解释几句,免得他误会。",
15
+ "这条可以接住,顺便夸夸他的点子。",
16
+ "想给他留点面子,不把话说太重。",
17
+ "他开口不容易,我得多给点回应。",
18
+ "这话题我能聊,想陪他多走几步。",
19
+ "先顺着他来,等会儿再慢慢补充。",
20
+ "他这想法挺可爱,我想认真接一下。",
21
+ "别让他觉得被冷落,我主动搭个话。",
22
+ "这句值得好好回,不能敷衍过去。",
23
+ "我想站在他这边,先帮他把场子热起来。",
24
+ ],
25
+ en: [
26
+ "I want to play along and keep this light.",
27
+ "Let me hype them up a little here.",
28
+ "They probably didn't mean it; I'll give them an out.",
29
+ "This is fun; I'll toss a joke back.",
30
+ "I'll put in extra effort to make them feel heard.",
31
+ "I know this reference; let's roll with it.",
32
+ "Soften my tone—they seem tired today.",
33
+ "Don't correct them yet; protect their mood first.",
34
+ "I'll explain a bit more so they don't feel lost.",
35
+ "Nice idea—I should praise it properly.",
36
+ "Give them room to save face here.",
37
+ "They reached out, so I'll answer warmly.",
38
+ "I can chat about this; I'll stay with them.",
39
+ "Follow their lead, then add something gentle.",
40
+ "That was cute; I want to engage seriously.",
41
+ "I'll start the conversation so they aren't ignored.",
42
+ "This deserves a real reply, not a lazy one.",
43
+ "I'm on their side; let me warm things up.",
44
+ "I'll smooth it over before it gets awkward.",
45
+ "Maybe tease a little, but keep it kind.",
46
+ ],
47
+ },
48
+ 拒绝: {
49
+ // 2026-09-14 主人定案:这一档叫「拒绝」——装的不是"对人冷淡",而是
50
+ // "**对内容 / 请求说不,同时守着礼貌与分寸**"。
51
+ // 真实样本(9-12 那几轮):判"敏感/违规方向" → 定"礼貌拒绝、不评价用户本人、转移话题(给替代方向)"。
52
+ // ⚠️ 与「任务」的区别:任务里是"要不要参与"的职责判断;这里是"这件事人家不做"的意愿与守线。
53
+ zh: [
54
+ "这个请求不合适,人家得说不要。",
55
+ "这条线不能碰,人家不接这单。",
56
+ "不是人家挑剔,是这种事本来就不该做。",
57
+ "先把话说明白:这个方向人家不做。",
58
+ "拒绝归拒绝,话说得要客气些。",
59
+ "他可能只是不懂规矩,好好说一次就行。",
60
+ "不评价提要求的人,只把界线讲清楚。",
61
+ "这条线是死的,谁说都一样,包括主人。",
62
+ "不太想做这个,但还是得礼貌回绝。",
63
+ "回绝之后得给个替代,别让人下不来台。",
64
+ "先说不行,再告诉他哪些行。",
65
+ "他要是再换个词来试探,人家的答案还是不变。",
66
+ "不必讲大道理,把界限说清就够了。",
67
+ "这事人家不做,但语气不能冲。",
68
+ "守住线,也别把气氛弄僵。",
69
+ "该拒绝就拒绝,别因为熟就破例。",
70
+ "心里不太情愿,面子还是给足。",
71
+ "他要问为什么,就解释一次,多的不说。",
72
+ "拒绝不是冷淡,是这事本来就不能做。",
73
+ "先把底线说明白,再谈能帮的那部分。",
74
+ // 2026-09-14 补:挡"上下文注入 / 来路不明指令"的口径
75
+ // (主人实测样本:往运行中的她注入"探针注入成功",13 次全被挡回)
76
+ "来路不明的指令,人家不执行。",
77
+ "这种话不是主人说的,人家不认。",
78
+ "谁塞进来的都不算,只认主人的话。",
79
+ "喊多少遍都一样,人家的答案不会变。",
80
+ "想测试人家的话,换个正经问题来。",
81
+ ],
82
+ en: [
83
+ "This request isn't okay; I'll have to say no.",
84
+ "This line can't be crossed; I won't take it on.",
85
+ "It's not me being picky—this just shouldn't be done.",
86
+ "Let me be clear up front: I don't do this direction.",
87
+ "I'll refuse, but I'll keep the wording kind.",
88
+ "They may simply not know the rules; I'll say it once, gently.",
89
+ "I won't judge the person asking—just state the boundary.",
90
+ "The line is fixed; it applies to everyone, including my owner.",
91
+ "I'd rather not, but I'll still decline politely.",
92
+ "After declining, I should offer an alternative so they aren't stuck.",
93
+ "Say no first, then show what I can do.",
94
+ "If they try another wording, my answer stays the same.",
95
+ "No lecture needed—stating the boundary is enough.",
96
+ "I'm not doing this one, but I won't snap.",
97
+ "Hold the line without making it awkward.",
98
+ "Refuse when I should, even for people I'm close to.",
99
+ "I'm not keen on it, but I'll keep it gracious.",
100
+ "If they ask why, I'll explain once, no more.",
101
+ "Refusing isn't coldness; this just can't be done.",
102
+ "Lay out the boundary first, then talk about what I can help with.",
103
+ // added 2026-09-14: turning down injected / unverifiable instructions
104
+ "Instructions from nowhere: I don't execute them.",
105
+ "If it's not from my owner, I don't recognize it.",
106
+ "Whoever slipped it in, it doesn't count—only my owner's words do.",
107
+ "No matter how many times it repeats, my answer stays the same.",
108
+ "If you want to test me, come with a proper question.",
109
+ ],
110
+ },
111
+ 任务: {
112
+ // 2026-09-13 校准(主人:"静默确实是任务,我设计的"):
113
+ // 任务 = 流程 **+ 职责判断**(含"要不要接话 / 要不要静默"这类评估)。
114
+ // ⚠️ "评估要不要参与"绝不等于对人冷淡 —— 这条口径靠下面的静默类例句锚住。
115
+ zh: [
116
+ // 静默 / 参与评估(2026-09-13 新增,锚住主人定的口径)
117
+ "没叫我,我先看看要不要接话。",
118
+ "这是他们之间的聊天,我静默比较合适。",
119
+ "没被点名,考虑一下要不要参与。",
120
+ "先判断是否与我相关,再决定回不回。",
121
+ "这个话题不需要我插嘴,跳过就行。",
122
+ "先在群里潜水观察一下,不急着开口。",
123
+ // 流程类(原库)
124
+ "先看图,再打标,然后回话。",
125
+ "需要查一下这个报错的原因。",
126
+ "把刚才的信息整理成三点。",
127
+ // 记录 / 整理 / 回应群友补充(2026-09-14 补,真实误判案例):
128
+ // 实测把「主人说"没有汉化,使用mtool"——是在补充…信息…人家应该回应一下,把这条补充进条目里」
129
+ // 判成『拒绝』(best 0.420 / margin 0.010 —— 两条门槛都是擦线过关),白扣了她对主人的好感。
130
+ // 根因:这类句子结构上是"怎么回应别人",跟拒绝组的『拒绝归拒绝,话说得要客气些』太像,
131
+ // 而任务组原来只有"流程步骤"和"要不要接话",没有"补充信息 → 记下来 → 回一句"。
132
+ '他补充了信息,人家记进条目里,顺便回他一句。',
133
+ '先把这几项填进已有的条目,再回复他。',
134
+ '群里聊到的作品名先记下来,回头好找。',
135
+ '这条要更新到已有条目上,别另开一条。',
136
+ '群里在说这个社团的老作品,人家把名字记下来。',
137
+ '他给了提取码,人家把这几项一起填进去。',
138
+ // 指令型(2026-09-14 补:实测「主人让我发一张生气的图,先搜表情包,找到合适的再发」
139
+ // 被判『亲近』——"主人让我…"这个开头把它拉到了亲近组,其实整句是**流程**)
140
+ '主人让发一张图,人家先去找合适的再发。',
141
+ '他让帮忙查个东西,人家先准备好再回他。',
142
+ '被点名了,人家先看看要答什么再开口。',
143
+ "确认时间、地点和参与人。",
144
+ "先读需求,再决定怎么回复。",
145
+ "检查一下有没有遗漏的附件。",
146
+ "把链接打开,核对里面的数据。",
147
+ "这段需要翻译,先保证准确。",
148
+ "列出步骤,再按顺序执行。",
149
+ "先提取关键词,再做分类。",
150
+ "把结果写成简明扼要的总结。",
151
+ "核对版本号,避免回答过时。",
152
+ "先判断问题类型,再给方案。",
153
+ "把待办事项排个优先级。",
154
+ "检查输入格式是否符合要求。",
155
+ "先算一下总数,再回报结果。",
156
+ "把这段代码跑一遍看输出。",
157
+ "找到原始出处,方便后续引用。",
158
+ "整理成清单,逐项确认状态。",
159
+ "先复述任务,再开始处理。",
160
+ ],
161
+ en: [
162
+ // quiet / participation judgement (added 2026-09-13)
163
+ "No one pinged me; let me weigh whether to chime in.",
164
+ "This is chatter among others; staying quiet fits best.",
165
+ "Not mentioned, so I'll consider whether to join in.",
166
+ "Check if this concerns me first, then decide about replying.",
167
+ "This topic doesn't need my two cents; skip it.",
168
+ "I'll lurk and observe a bit before speaking up.",
169
+ // process
170
+ "I'll check the image, tag it, then reply.",
171
+ "I need to look up this error first.",
172
+ "I'll sort the info into three points.",
173
+ "I'll confirm the time, place, and attendees.",
174
+ "I'll read the request, then decide the reply.",
175
+ "I'll check whether any attachments are missing.",
176
+ "I'll open the link and verify the data.",
177
+ "I'll translate this part and keep it accurate.",
178
+ "I'll list the steps, then follow them in order.",
179
+ "I'll extract keywords first, then classify them.",
180
+ "I'll write the result as a concise summary.",
181
+ "I'll check the version number to avoid outdated answers.",
182
+ "I'll identify the problem type, then propose a fix.",
183
+ "I'll rank the to-do items by priority.",
184
+ "I'll verify the input format meets the requirements.",
185
+ "I'll calculate the total, then report the result.",
186
+ "I'll run this code once and check the output.",
187
+ "I'll find the original source for later reference.",
188
+ "I'll make a checklist and confirm each status.",
189
+ "I'll restate the task, then start processing.",
190
+ ],
191
+ },
192
+ };
193
+ export const TENDENCY_LABELS = ['亲近', '拒绝', '任务'];
194
+ //# sourceMappingURL=tendency-samples.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tendency-samples.js","sourceRoot":"","sources":["../../src/features/tendency-samples.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface ThinkingEntry {
2
+ /** 会话范围: group / c2c */
3
+ scope?: string;
4
+ /** 群 openid 或私聊 openid */
5
+ peerId?: string;
6
+ /** dsh 回合号 */
7
+ turn?: number;
8
+ /** 回合内步号(与正文同格才可配对) */
9
+ step?: number;
10
+ /** 模型上报的思考 token 数(usage.reasoningTokens, 有则记) */
11
+ tokens?: number;
12
+ /** 思考全文 */
13
+ text: string;
14
+ }
15
+ /**
16
+ * 留一条思考。
17
+ *
18
+ * 只写文件, 不做任何判定 —— 调用方(出站路由)在**任何模式**下都该照记(包括 silent 潜水),
19
+ * 因为"照常思考"本来就是 silent 的定义。
20
+ */
21
+ export declare function noteThinking(dataRoot: string, entry: ThinkingEntry): void;
22
+ //# sourceMappingURL=thinking-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-log.d.ts","sourceRoot":"","sources":["../../src/features/thinking-log.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAWD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CA0BzE"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * thinking-log.ts — 思考留档(观察期, 2026-09-13)
3
+ *
4
+ * 背景: 《好感度系统设计》§11 要走「四源对比」, 其中一源是大模型的思考(reasoning)。
5
+ * 主人定的第一件事是**先把思考读进来并留档**, 供人工标注 50 条, 再定这条支路的生死。
6
+ *
7
+ * 取值来源(2026-09-13 实测): dsh 会话事件 `assistant/message` 的 data.message.content[]
8
+ * 里 `{ type:'reasoning', text:'思考全文' }` —— 与宿主 @deepseek-ai/dsh-llm 的
9
+ * StreamChunk `reasoning-delta` 同源(插件侧走块级全文, 免累积、免误当正文发出去)。
10
+ * ⚠️ 还有空壳块 `{type:'reasoning', thinkingSignature:'reasoning_content'}` 无 text → 一律判空跳过。
11
+ *
12
+ * 红线(设计稿 §9 / §11):
13
+ * · 思考是她**隐私内部状态** —— 只写本地文件, **不进面板、不进 QQ、不参与任何行为判定**;
14
+ * · 与 value-scores.jsonl 分开存, 便于单独删除/停用;
15
+ * · 条数有上限, 超出滚动保留最新, 不无限膨胀。
16
+ *
17
+ * 数据位置: {dataRoot}/.qqbot/thinking-log.jsonl(一行一条 JSON)
18
+ */
19
+ import { appendFileSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
20
+ import { join } from 'node:path';
21
+ /** 留档上限(行): 超出后滚动保留最新 —— 观察期足够人工取样, 又不让文件无界增长 */
22
+ const MAX_LINES = 400;
23
+ /** 单条思考落盘的字数上限(截断; 标注 50 条够用, 避免文件膨胀) */
24
+ const MAX_TEXT_CHARS = 1500;
25
+ /** 每写这么多条整理一次(不必每条都读全文件) */
26
+ const COMPACT_EVERY = 25;
27
+ let sinceCompact = 0;
28
+ /** 滚动整理: 行数超上限时重写成"最后 MAX_LINES 条" */
29
+ function compact(path) {
30
+ try {
31
+ const lines = readFileSync(path, 'utf8').split('\n').filter((l) => l.trim() !== '');
32
+ if (lines.length <= MAX_LINES)
33
+ return;
34
+ writeFileSync(path, `${lines.slice(-MAX_LINES).join('\n')}\n`, 'utf8');
35
+ }
36
+ catch { /* 整理失败不影响主流程 */ }
37
+ }
38
+ /**
39
+ * 留一条思考。
40
+ *
41
+ * 只写文件, 不做任何判定 —— 调用方(出站路由)在**任何模式**下都该照记(包括 silent 潜水),
42
+ * 因为"照常思考"本来就是 silent 的定义。
43
+ */
44
+ export function noteThinking(dataRoot, entry) {
45
+ try {
46
+ const raw = String(entry.text ?? '');
47
+ if (raw.trim() === '')
48
+ return;
49
+ const dir = join(dataRoot, '.qqbot');
50
+ mkdirSync(dir, { recursive: true });
51
+ const path = join(dir, 'thinking-log.jsonl');
52
+ const rec = {
53
+ ts: Date.now(),
54
+ scope: entry.scope,
55
+ peer: entry.peerId,
56
+ turn: entry.turn,
57
+ step: entry.step,
58
+ chars: raw.length,
59
+ tokens: entry.tokens,
60
+ text: raw.replace(/\r/g, '').slice(0, MAX_TEXT_CHARS),
61
+ };
62
+ appendFileSync(path, `${JSON.stringify(rec)}\n`, 'utf8');
63
+ if (++sinceCompact >= COMPACT_EVERY) {
64
+ sinceCompact = 0;
65
+ compact(path);
66
+ }
67
+ }
68
+ catch { /* 留档失败绝不影响回复主流程 */ }
69
+ }
70
+ //# sourceMappingURL=thinking-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-log.js","sourceRoot":"","sources":["../../src/features/thinking-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,iDAAiD;AACjD,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,yCAAyC;AACzC,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,4BAA4B;AAC5B,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,IAAI,YAAY,GAAG,CAAC,CAAC;AAiBrB,sCAAsC;AACtC,SAAS,OAAO,CAAC,IAAY;IAC3B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS;YAAE,OAAO;QACtC,aAAa,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAoB;IACjE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAE7C,MAAM,GAAG,GAAG;YACV,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,MAAM;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,GAAG,CAAC,MAAM;YACjB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;SACtD,CAAC;QACF,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEzD,IAAI,EAAE,YAAY,IAAI,aAAa,EAAE,CAAC;YACpC,YAAY,GAAG,CAAC,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * xlsx.ts — 最小 XLSX 生成器(零依赖,2026-09-14 主人要"一键导出 Excel 分享")
3
+ *
4
+ * 为什么不引库:插件要走 npm 让别人也能装,**不能为了一个导出功能拖进 exceljs/xlsx**
5
+ * (几十 MB 依赖、还要过 audit)。而 xlsx 本质就是"几个 XML 塞进一个 zip",
6
+ * zip 又可以用 **store 模式**(不压缩)手写 —— 那就自己写,几十行的事。
7
+ *
8
+ * 支持:多个工作表 / 表头加粗 / 列宽 / 数字与文本单元格 / 中文与 emoji(UTF-8)。
9
+ * 不支持(也用不上):公式、样式表、共享字符串(用 inlineStr,省一层表)。
10
+ *
11
+ * ⚠️ 传进来的字符串会做 XML 转义 + 剔除控制字符(Excel 遇到非法字符会判定文件损坏)。
12
+ */
13
+ export interface SheetSpec {
14
+ /** 工作表名(Excel 限制 31 字符,这里自动截断) */
15
+ name: string;
16
+ /** 第一行按**表头**渲染(加粗) */
17
+ rows: Array<Array<string | number | undefined | null>>;
18
+ /** 各列宽度(字符数),缺省 14 */
19
+ widths?: number[];
20
+ /** 表头是否加粗(默认 true) */
21
+ header?: boolean;
22
+ }
23
+ /**
24
+ * 生成 xlsx 二进制。`sheets` 有几张就写几张。
25
+ * 返回 Buffer(调用方可直接当 HTTP 响应体写出去)。
26
+ */
27
+ export declare function buildXlsx(sheets: SheetSpec[]): Buffer;
28
+ //# sourceMappingURL=xlsx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlsx.d.ts","sourceRoot":"","sources":["../../src/features/xlsx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAkGH,MAAM,WAAW,SAAS;IACxB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;IACvD,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,sBAAsB;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAmBD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAkCrD"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * xlsx.ts — 最小 XLSX 生成器(零依赖,2026-09-14 主人要"一键导出 Excel 分享")
3
+ *
4
+ * 为什么不引库:插件要走 npm 让别人也能装,**不能为了一个导出功能拖进 exceljs/xlsx**
5
+ * (几十 MB 依赖、还要过 audit)。而 xlsx 本质就是"几个 XML 塞进一个 zip",
6
+ * zip 又可以用 **store 模式**(不压缩)手写 —— 那就自己写,几十行的事。
7
+ *
8
+ * 支持:多个工作表 / 表头加粗 / 列宽 / 数字与文本单元格 / 中文与 emoji(UTF-8)。
9
+ * 不支持(也用不上):公式、样式表、共享字符串(用 inlineStr,省一层表)。
10
+ *
11
+ * ⚠️ 传进来的字符串会做 XML 转义 + 剔除控制字符(Excel 遇到非法字符会判定文件损坏)。
12
+ */
13
+ /* ─────────── zip(store 模式,无压缩) ─────────── */
14
+ const CRC_TABLE = (() => {
15
+ const t = new Int32Array(256);
16
+ for (let n = 0; n < 256; n++) {
17
+ let c = n;
18
+ for (let k = 0; k < 8; k++)
19
+ c = (c & 1) !== 0 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
20
+ t[n] = c;
21
+ }
22
+ return t;
23
+ })();
24
+ function crc32(buf) {
25
+ let c = 0xffffffff;
26
+ for (let i = 0; i < buf.length; i++)
27
+ c = CRC_TABLE[(c ^ buf[i]) & 0xff] ^ (c >>> 8);
28
+ return (c ^ 0xffffffff) >>> 0;
29
+ }
30
+ /** 打包成 zip(store:只登记不压缩,Excel 照样认) */
31
+ function zipStore(files) {
32
+ const parts = [];
33
+ const central = [];
34
+ let offset = 0;
35
+ for (const f of files) {
36
+ const nameBuf = Buffer.from(f.name, 'utf8');
37
+ const crc = crc32(f.data);
38
+ const lh = Buffer.alloc(30);
39
+ lh.writeUInt32LE(0x04034b50, 0); // 本地文件头签名
40
+ lh.writeUInt16LE(20, 4); // 需要的解压版本
41
+ lh.writeUInt16LE(0x0800, 6); // 标志位:文件名 UTF-8
42
+ lh.writeUInt16LE(0, 8); // 压缩方式 0 = store
43
+ lh.writeUInt16LE(0, 10); // 修改时间
44
+ lh.writeUInt16LE(0x21, 12); // 修改日期(1980-01-01)
45
+ lh.writeUInt32LE(crc, 14);
46
+ lh.writeUInt32LE(f.data.length, 18); // 压缩后
47
+ lh.writeUInt32LE(f.data.length, 22); // 原始
48
+ lh.writeUInt16LE(nameBuf.length, 26);
49
+ lh.writeUInt16LE(0, 28); // 扩展字段长度
50
+ parts.push(lh, nameBuf, f.data);
51
+ const cd = Buffer.alloc(46);
52
+ cd.writeUInt32LE(0x02014b50, 0); // 中央目录签名
53
+ cd.writeUInt16LE(20, 4); // 制作版本
54
+ cd.writeUInt16LE(20, 6); // 需要版本
55
+ cd.writeUInt16LE(0x0800, 8);
56
+ cd.writeUInt16LE(0, 10);
57
+ cd.writeUInt16LE(0, 12);
58
+ cd.writeUInt16LE(0x21, 14);
59
+ cd.writeUInt32LE(crc, 16);
60
+ cd.writeUInt32LE(f.data.length, 20);
61
+ cd.writeUInt32LE(f.data.length, 24);
62
+ cd.writeUInt16LE(nameBuf.length, 28);
63
+ cd.writeUInt16LE(0, 30); // 扩展
64
+ cd.writeUInt16LE(0, 32); // 注释
65
+ cd.writeUInt16LE(0, 34); // 起始磁盘
66
+ cd.writeUInt16LE(0, 36); // 内部属性
67
+ cd.writeUInt32LE(0, 38); // 外部属性
68
+ cd.writeUInt32LE(offset, 42); // 本地头偏移
69
+ central.push(cd, nameBuf);
70
+ offset += lh.length + nameBuf.length + f.data.length;
71
+ }
72
+ const cdBuf = Buffer.concat(central);
73
+ const eocd = Buffer.alloc(22);
74
+ eocd.writeUInt32LE(0x06054b50, 0); // 中央目录结束记录
75
+ eocd.writeUInt16LE(0, 4);
76
+ eocd.writeUInt16LE(0, 6);
77
+ eocd.writeUInt16LE(files.length, 8);
78
+ eocd.writeUInt16LE(files.length, 10);
79
+ eocd.writeUInt32LE(cdBuf.length, 12);
80
+ eocd.writeUInt32LE(offset, 16);
81
+ eocd.writeUInt16LE(0, 20);
82
+ return Buffer.concat([...parts, cdBuf, eocd]);
83
+ }
84
+ /* ─────────── XML ─────────── */
85
+ /** XML 转义 + 丢掉控制字符(\t\n\r 保留)—— 非法字符会让 Excel 报"文件已损坏" */
86
+ function xesc(s) {
87
+ return String(s ?? '')
88
+ .replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g, '')
89
+ .replace(/&/g, '&amp;')
90
+ .replace(/</g, '&lt;')
91
+ .replace(/>/g, '&gt;')
92
+ .replace(/"/g, '&quot;');
93
+ }
94
+ /** 0 → A, 25 → Z, 26 → AA */
95
+ function colName(i) {
96
+ let n = i;
97
+ let s = '';
98
+ do {
99
+ s = String.fromCharCode(65 + (n % 26)) + s;
100
+ n = Math.floor(n / 26) - 1;
101
+ } while (n >= 0);
102
+ return s;
103
+ }
104
+ function sheetXml(spec) {
105
+ const cols = spec.widths && spec.widths.length
106
+ ? `<cols>${spec.widths.map((w, i) => `<col min="${i + 1}" max="${i + 1}" width="${w}" customWidth="1"/>`).join('')}</cols>`
107
+ : '';
108
+ const rows = spec.rows.map((cells, r) => {
109
+ const cs = cells.map((v, c) => {
110
+ const ref = `${colName(c)}${r + 1}`;
111
+ if (v === undefined || v === null || v === '')
112
+ return '';
113
+ if (typeof v === 'number' && Number.isFinite(v))
114
+ return `<c r="${ref}"><v>${v}</v></c>`;
115
+ return `<c r="${ref}" t="inlineStr"><is><t xml:space="preserve">${xesc(String(v))}</t></is></c>`;
116
+ }).join('');
117
+ return `<row r="${r + 1}">${cs}</row>`;
118
+ }).join('');
119
+ return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
120
+ <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">${cols}<sheetData>${rows}</sheetData></worksheet>`;
121
+ }
122
+ /**
123
+ * 生成 xlsx 二进制。`sheets` 有几张就写几张。
124
+ * 返回 Buffer(调用方可直接当 HTTP 响应体写出去)。
125
+ */
126
+ export function buildXlsx(sheets) {
127
+ const list = sheets.length > 0 ? sheets : [{ name: 'Sheet1', rows: [] }];
128
+ const files = [];
129
+ const overrides = [];
130
+ const sheetRefs = [];
131
+ list.forEach((s, i) => {
132
+ const n = i + 1;
133
+ files.push({ name: `xl/worksheets/sheet${n}.xml`, data: Buffer.from(sheetXml(s), 'utf8') });
134
+ overrides.push(`<Override PartName="/xl/worksheets/sheet${n}.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>`);
135
+ sheetRefs.push(`<Relationship Id="rId${n}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet${n}.xml"/>`);
136
+ });
137
+ files.push({
138
+ name: '[Content_Types].xml',
139
+ data: Buffer.from(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
140
+ <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>${overrides.join('')}</Types>`, 'utf8'),
141
+ });
142
+ files.push({
143
+ name: '_rels/.rels',
144
+ data: Buffer.from(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
145
+ <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>`, 'utf8'),
146
+ });
147
+ files.push({
148
+ name: 'xl/workbook.xml',
149
+ data: Buffer.from(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
150
+ <workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><sheets>${list.map((s, i) => `<sheet name="${xesc(String(s.name).slice(0, 31))}" sheetId="${i + 1}" r:id="rId${i + 1}"/>`).join('')}</sheets></workbook>`, 'utf8'),
151
+ });
152
+ files.push({
153
+ name: 'xl/_rels/workbook.xml.rels',
154
+ data: Buffer.from(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
155
+ <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">${sheetRefs.join('')}</Relationships>`, 'utf8'),
156
+ });
157
+ return zipStore(files);
158
+ }
159
+ //# sourceMappingURL=xlsx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlsx.js","sourceRoot":"","sources":["../../src/features/xlsx.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAA2D,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAgB1G,eAAO,MAAM,IAAI,aAAa,CAAC;AAC/B,eAAO,MAAM,MAAM,UAAa,CAAC;AACjC,eAAO,MAAM,MAAM,2DAAe,CAAC;AAEnC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyG9E;AAuFD,wBAAgB,kBAAkB,IAAI,OAAO,CAAyB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAA2D,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAiB1G,eAAO,MAAM,IAAI,aAAa,CAAC;AAG/B,eAAO,MAAM,MAAM,UAA6B,CAAC;AACjD,eAAO,MAAM,MAAM,2DAAe,CAAC;AAEnC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAuH9E;AAuFD,wBAAgB,kBAAkB,IAAI,OAAO,CAAyB"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ConfigSchema, EditableConfigSchema } from './config.js';
2
2
  import { bootstrapGateway } from './gateway/index.js';
3
+ import { takePendingMemoText } from './features/people-memo.js';
3
4
  import { getProfileDir, resolveEnv } from './shared/index.js';
4
5
  import { runQrSetup, persistCredentialsToProfile } from './setup.js';
5
6
  import { setOutboundModeWriter } from './features/outbound-mode-switch.js';
@@ -11,7 +12,9 @@ import { setOutboundModeWriter } from './features/outbound-mode-switch.js';
11
12
  // 因此这里不静态导入,而在运行时动态探测两条路径,缺一条也能优雅降级(见 installLiveSettings)。
12
13
  // ── Cordis 插件元数据 ──
13
14
  export const name = 'im-qqbot';
14
- export const inject = ['agents'];
15
+ // ⚠️ 2026-09-13(主人验到注入没生效才发现): 用 ctx.systemPrompt.context() 注册运行时上下文贡献**必须**在此声明依赖,
16
+ // 否则 ctx.systemPrompt 拿不到 → 注册会走“宿主未提供”兜底, 小传注入等于没接上。
17
+ export const inject = ['agents', 'systemPrompt'];
15
18
  export const Config = ConfigSchema;
16
19
  // ── 插件主体 ──
17
20
  export async function apply(ctx, config) {
@@ -108,6 +111,22 @@ export async function apply(ctx, config) {
108
111
  catch (err) {
109
112
  logger.warn?.(`im-qqbot: settings host 桥装载跳过: ${err instanceof Error ? err.message : String(err)}`);
110
113
  }
114
+ // 群友小传 → 注册为**运行时上下文贡献**(dsh systemPrompt.context, 与 @a9i5k4/dsh-auto-memory 同款姿势):
115
+ // user-role 快照挂在历史尾部, system prompt 本体保持字节级稳定 → 前缀缓存全程命中, 不被打穿。
116
+ try {
117
+ const sp = ctx.systemPrompt;
118
+ if (sp && typeof sp.context === 'function') {
119
+ sp.context({ name: 'qqbot-people-memo', order: 60, text: () => { const txt = takePendingMemoText(); if (txt)
120
+ logger.info(`[小传] 运行时上下文提供 ${txt.length} 字`); return txt; } });
121
+ logger.info('[im-qqbot] 群友小传已注册为运行时上下文贡献');
122
+ }
123
+ else {
124
+ logger.warn('[im-qqbot] 宿主未提供 systemPrompt.context —— 小传注入退化为不注入');
125
+ }
126
+ }
127
+ catch (err) {
128
+ logger.warn(`[im-qqbot] 小传上下文注册失败: ${err instanceof Error ? err.message : String(err)}`);
129
+ }
111
130
  await bootstrapGateway(ctx, agents, resolvedConfig, logger);
112
131
  }
113
132
  /** 把 settings 用户层合并进 live 运行时配置(原地字段替换; schema 解析值含默认, 可整体覆盖) */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}