@xuanyue202/qqbot 2026.3.21

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.
@@ -0,0 +1,1345 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const QQBotC2CMarkdownDeliveryModeSchema: z.ZodDefault<z.ZodOptional<z.ZodEnum<["passive", "proactive-table-only", "proactive-all"]>>>;
4
+ type QQBotC2CMarkdownDeliveryMode = z.input<typeof QQBotC2CMarkdownDeliveryModeSchema>;
5
+ declare const QQBotC2CMarkdownChunkStrategySchema: z.ZodDefault<z.ZodOptional<z.ZodEnum<["markdown-block", "length"]>>>;
6
+ type QQBotC2CMarkdownChunkStrategy = z.input<typeof QQBotC2CMarkdownChunkStrategySchema>;
7
+ declare const QQBotTypingHeartbeatModeSchema: z.ZodDefault<z.ZodOptional<z.ZodEnum<["none", "idle", "always"]>>>;
8
+ type QQBotTypingHeartbeatMode = z.input<typeof QQBotTypingHeartbeatModeSchema>;
9
+ declare const QQBotAccountSchema: z.ZodObject<{
10
+ name: z.ZodOptional<z.ZodString>;
11
+ enabled: z.ZodOptional<z.ZodBoolean>;
12
+ appId: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
13
+ clientSecret: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
14
+ displayAliases: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodString, string, unknown>>>;
15
+ asr: z.ZodOptional<z.ZodObject<{
16
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
17
+ appId: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
18
+ secretId: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
19
+ secretKey: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ enabled: boolean;
22
+ appId?: string | undefined;
23
+ secretId?: string | undefined;
24
+ secretKey?: string | undefined;
25
+ }, {
26
+ enabled?: boolean | undefined;
27
+ appId?: unknown;
28
+ secretId?: unknown;
29
+ secretKey?: unknown;
30
+ }>>;
31
+ markdownSupport: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
32
+ c2cMarkdownDeliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["passive", "proactive-table-only", "proactive-all"]>>>;
33
+ c2cMarkdownChunkStrategy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["markdown-block", "length"]>>>;
34
+ c2cMarkdownSafeChunkByteLimit: z.ZodOptional<z.ZodNumber>;
35
+ typingHeartbeatMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["none", "idle", "always"]>>>;
36
+ typingHeartbeatIntervalMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
37
+ typingInputSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
38
+ dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["open", "pairing", "allowlist"]>>>;
39
+ groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["open", "allowlist", "disabled"]>>>;
40
+ requireMention: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
41
+ allowFrom: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
42
+ groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
43
+ historyLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
44
+ textChunkLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
45
+ replyFinalOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
46
+ longTaskNoticeDelayMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
47
+ maxFileSizeMB: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
48
+ mediaTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
49
+ autoSendLocalPathMedia: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
50
+ inboundMedia: z.ZodOptional<z.ZodObject<{
51
+ dir: z.ZodOptional<z.ZodString>;
52
+ keepDays: z.ZodOptional<z.ZodNumber>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ dir?: string | undefined;
55
+ keepDays?: number | undefined;
56
+ }, {
57
+ dir?: string | undefined;
58
+ keepDays?: number | undefined;
59
+ }>>;
60
+ }, "strip", z.ZodTypeAny, {
61
+ markdownSupport: boolean;
62
+ c2cMarkdownDeliveryMode: "passive" | "proactive-table-only" | "proactive-all";
63
+ c2cMarkdownChunkStrategy: "markdown-block" | "length";
64
+ typingHeartbeatMode: "none" | "idle" | "always";
65
+ typingHeartbeatIntervalMs: number;
66
+ typingInputSeconds: number;
67
+ dmPolicy: "open" | "pairing" | "allowlist";
68
+ groupPolicy: "open" | "allowlist" | "disabled";
69
+ requireMention: boolean;
70
+ historyLimit: number;
71
+ textChunkLimit: number;
72
+ replyFinalOnly: boolean;
73
+ longTaskNoticeDelayMs: number;
74
+ maxFileSizeMB: number;
75
+ mediaTimeoutMs: number;
76
+ autoSendLocalPathMedia: boolean;
77
+ name?: string | undefined;
78
+ enabled?: boolean | undefined;
79
+ appId?: string | undefined;
80
+ clientSecret?: string | undefined;
81
+ displayAliases?: Record<string, string> | undefined;
82
+ asr?: {
83
+ enabled: boolean;
84
+ appId?: string | undefined;
85
+ secretId?: string | undefined;
86
+ secretKey?: string | undefined;
87
+ } | undefined;
88
+ c2cMarkdownSafeChunkByteLimit?: number | undefined;
89
+ allowFrom?: string[] | undefined;
90
+ groupAllowFrom?: string[] | undefined;
91
+ inboundMedia?: {
92
+ dir?: string | undefined;
93
+ keepDays?: number | undefined;
94
+ } | undefined;
95
+ }, {
96
+ name?: string | undefined;
97
+ enabled?: boolean | undefined;
98
+ appId?: unknown;
99
+ clientSecret?: unknown;
100
+ displayAliases?: Record<string, unknown> | undefined;
101
+ asr?: {
102
+ enabled?: boolean | undefined;
103
+ appId?: unknown;
104
+ secretId?: unknown;
105
+ secretKey?: unknown;
106
+ } | undefined;
107
+ markdownSupport?: boolean | undefined;
108
+ c2cMarkdownDeliveryMode?: "passive" | "proactive-table-only" | "proactive-all" | undefined;
109
+ c2cMarkdownChunkStrategy?: "markdown-block" | "length" | undefined;
110
+ c2cMarkdownSafeChunkByteLimit?: number | undefined;
111
+ typingHeartbeatMode?: "none" | "idle" | "always" | undefined;
112
+ typingHeartbeatIntervalMs?: number | undefined;
113
+ typingInputSeconds?: number | undefined;
114
+ dmPolicy?: "open" | "pairing" | "allowlist" | undefined;
115
+ groupPolicy?: "open" | "allowlist" | "disabled" | undefined;
116
+ requireMention?: boolean | undefined;
117
+ allowFrom?: string[] | undefined;
118
+ groupAllowFrom?: string[] | undefined;
119
+ historyLimit?: number | undefined;
120
+ textChunkLimit?: number | undefined;
121
+ replyFinalOnly?: boolean | undefined;
122
+ longTaskNoticeDelayMs?: number | undefined;
123
+ maxFileSizeMB?: number | undefined;
124
+ mediaTimeoutMs?: number | undefined;
125
+ autoSendLocalPathMedia?: boolean | undefined;
126
+ inboundMedia?: {
127
+ dir?: string | undefined;
128
+ keepDays?: number | undefined;
129
+ } | undefined;
130
+ }>;
131
+ declare const QQBotConfigSchema: z.ZodObject<{
132
+ name: z.ZodOptional<z.ZodString>;
133
+ enabled: z.ZodOptional<z.ZodBoolean>;
134
+ appId: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
135
+ clientSecret: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
136
+ displayAliases: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodString, string, unknown>>>;
137
+ asr: z.ZodOptional<z.ZodObject<{
138
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
139
+ appId: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
140
+ secretId: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
141
+ secretKey: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
142
+ }, "strip", z.ZodTypeAny, {
143
+ enabled: boolean;
144
+ appId?: string | undefined;
145
+ secretId?: string | undefined;
146
+ secretKey?: string | undefined;
147
+ }, {
148
+ enabled?: boolean | undefined;
149
+ appId?: unknown;
150
+ secretId?: unknown;
151
+ secretKey?: unknown;
152
+ }>>;
153
+ markdownSupport: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
154
+ c2cMarkdownDeliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["passive", "proactive-table-only", "proactive-all"]>>>;
155
+ c2cMarkdownChunkStrategy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["markdown-block", "length"]>>>;
156
+ c2cMarkdownSafeChunkByteLimit: z.ZodOptional<z.ZodNumber>;
157
+ typingHeartbeatMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["none", "idle", "always"]>>>;
158
+ typingHeartbeatIntervalMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
159
+ typingInputSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
160
+ dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["open", "pairing", "allowlist"]>>>;
161
+ groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["open", "allowlist", "disabled"]>>>;
162
+ requireMention: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
163
+ allowFrom: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
164
+ groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
165
+ historyLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
166
+ textChunkLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
167
+ replyFinalOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
168
+ longTaskNoticeDelayMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
169
+ maxFileSizeMB: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
170
+ mediaTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
171
+ autoSendLocalPathMedia: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
172
+ inboundMedia: z.ZodOptional<z.ZodObject<{
173
+ dir: z.ZodOptional<z.ZodString>;
174
+ keepDays: z.ZodOptional<z.ZodNumber>;
175
+ }, "strip", z.ZodTypeAny, {
176
+ dir?: string | undefined;
177
+ keepDays?: number | undefined;
178
+ }, {
179
+ dir?: string | undefined;
180
+ keepDays?: number | undefined;
181
+ }>>;
182
+ } & {
183
+ defaultAccount: z.ZodOptional<z.ZodString>;
184
+ accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
185
+ name: z.ZodOptional<z.ZodString>;
186
+ enabled: z.ZodOptional<z.ZodBoolean>;
187
+ appId: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
188
+ clientSecret: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
189
+ displayAliases: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodString, string, unknown>>>;
190
+ asr: z.ZodOptional<z.ZodObject<{
191
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
192
+ appId: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
193
+ secretId: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
194
+ secretKey: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
195
+ }, "strip", z.ZodTypeAny, {
196
+ enabled: boolean;
197
+ appId?: string | undefined;
198
+ secretId?: string | undefined;
199
+ secretKey?: string | undefined;
200
+ }, {
201
+ enabled?: boolean | undefined;
202
+ appId?: unknown;
203
+ secretId?: unknown;
204
+ secretKey?: unknown;
205
+ }>>;
206
+ markdownSupport: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
207
+ c2cMarkdownDeliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["passive", "proactive-table-only", "proactive-all"]>>>;
208
+ c2cMarkdownChunkStrategy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["markdown-block", "length"]>>>;
209
+ c2cMarkdownSafeChunkByteLimit: z.ZodOptional<z.ZodNumber>;
210
+ typingHeartbeatMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["none", "idle", "always"]>>>;
211
+ typingHeartbeatIntervalMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
212
+ typingInputSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
213
+ dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["open", "pairing", "allowlist"]>>>;
214
+ groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["open", "allowlist", "disabled"]>>>;
215
+ requireMention: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
216
+ allowFrom: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
217
+ groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
218
+ historyLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
219
+ textChunkLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
220
+ replyFinalOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
221
+ longTaskNoticeDelayMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
222
+ maxFileSizeMB: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
223
+ mediaTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
224
+ autoSendLocalPathMedia: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
225
+ inboundMedia: z.ZodOptional<z.ZodObject<{
226
+ dir: z.ZodOptional<z.ZodString>;
227
+ keepDays: z.ZodOptional<z.ZodNumber>;
228
+ }, "strip", z.ZodTypeAny, {
229
+ dir?: string | undefined;
230
+ keepDays?: number | undefined;
231
+ }, {
232
+ dir?: string | undefined;
233
+ keepDays?: number | undefined;
234
+ }>>;
235
+ }, "strip", z.ZodTypeAny, {
236
+ markdownSupport: boolean;
237
+ c2cMarkdownDeliveryMode: "passive" | "proactive-table-only" | "proactive-all";
238
+ c2cMarkdownChunkStrategy: "markdown-block" | "length";
239
+ typingHeartbeatMode: "none" | "idle" | "always";
240
+ typingHeartbeatIntervalMs: number;
241
+ typingInputSeconds: number;
242
+ dmPolicy: "open" | "pairing" | "allowlist";
243
+ groupPolicy: "open" | "allowlist" | "disabled";
244
+ requireMention: boolean;
245
+ historyLimit: number;
246
+ textChunkLimit: number;
247
+ replyFinalOnly: boolean;
248
+ longTaskNoticeDelayMs: number;
249
+ maxFileSizeMB: number;
250
+ mediaTimeoutMs: number;
251
+ autoSendLocalPathMedia: boolean;
252
+ name?: string | undefined;
253
+ enabled?: boolean | undefined;
254
+ appId?: string | undefined;
255
+ clientSecret?: string | undefined;
256
+ displayAliases?: Record<string, string> | undefined;
257
+ asr?: {
258
+ enabled: boolean;
259
+ appId?: string | undefined;
260
+ secretId?: string | undefined;
261
+ secretKey?: string | undefined;
262
+ } | undefined;
263
+ c2cMarkdownSafeChunkByteLimit?: number | undefined;
264
+ allowFrom?: string[] | undefined;
265
+ groupAllowFrom?: string[] | undefined;
266
+ inboundMedia?: {
267
+ dir?: string | undefined;
268
+ keepDays?: number | undefined;
269
+ } | undefined;
270
+ }, {
271
+ name?: string | undefined;
272
+ enabled?: boolean | undefined;
273
+ appId?: unknown;
274
+ clientSecret?: unknown;
275
+ displayAliases?: Record<string, unknown> | undefined;
276
+ asr?: {
277
+ enabled?: boolean | undefined;
278
+ appId?: unknown;
279
+ secretId?: unknown;
280
+ secretKey?: unknown;
281
+ } | undefined;
282
+ markdownSupport?: boolean | undefined;
283
+ c2cMarkdownDeliveryMode?: "passive" | "proactive-table-only" | "proactive-all" | undefined;
284
+ c2cMarkdownChunkStrategy?: "markdown-block" | "length" | undefined;
285
+ c2cMarkdownSafeChunkByteLimit?: number | undefined;
286
+ typingHeartbeatMode?: "none" | "idle" | "always" | undefined;
287
+ typingHeartbeatIntervalMs?: number | undefined;
288
+ typingInputSeconds?: number | undefined;
289
+ dmPolicy?: "open" | "pairing" | "allowlist" | undefined;
290
+ groupPolicy?: "open" | "allowlist" | "disabled" | undefined;
291
+ requireMention?: boolean | undefined;
292
+ allowFrom?: string[] | undefined;
293
+ groupAllowFrom?: string[] | undefined;
294
+ historyLimit?: number | undefined;
295
+ textChunkLimit?: number | undefined;
296
+ replyFinalOnly?: boolean | undefined;
297
+ longTaskNoticeDelayMs?: number | undefined;
298
+ maxFileSizeMB?: number | undefined;
299
+ mediaTimeoutMs?: number | undefined;
300
+ autoSendLocalPathMedia?: boolean | undefined;
301
+ inboundMedia?: {
302
+ dir?: string | undefined;
303
+ keepDays?: number | undefined;
304
+ } | undefined;
305
+ }>>>;
306
+ }, "strip", z.ZodTypeAny, {
307
+ markdownSupport: boolean;
308
+ c2cMarkdownDeliveryMode: "passive" | "proactive-table-only" | "proactive-all";
309
+ c2cMarkdownChunkStrategy: "markdown-block" | "length";
310
+ typingHeartbeatMode: "none" | "idle" | "always";
311
+ typingHeartbeatIntervalMs: number;
312
+ typingInputSeconds: number;
313
+ dmPolicy: "open" | "pairing" | "allowlist";
314
+ groupPolicy: "open" | "allowlist" | "disabled";
315
+ requireMention: boolean;
316
+ historyLimit: number;
317
+ textChunkLimit: number;
318
+ replyFinalOnly: boolean;
319
+ longTaskNoticeDelayMs: number;
320
+ maxFileSizeMB: number;
321
+ mediaTimeoutMs: number;
322
+ autoSendLocalPathMedia: boolean;
323
+ name?: string | undefined;
324
+ enabled?: boolean | undefined;
325
+ appId?: string | undefined;
326
+ clientSecret?: string | undefined;
327
+ displayAliases?: Record<string, string> | undefined;
328
+ asr?: {
329
+ enabled: boolean;
330
+ appId?: string | undefined;
331
+ secretId?: string | undefined;
332
+ secretKey?: string | undefined;
333
+ } | undefined;
334
+ c2cMarkdownSafeChunkByteLimit?: number | undefined;
335
+ allowFrom?: string[] | undefined;
336
+ groupAllowFrom?: string[] | undefined;
337
+ inboundMedia?: {
338
+ dir?: string | undefined;
339
+ keepDays?: number | undefined;
340
+ } | undefined;
341
+ defaultAccount?: string | undefined;
342
+ accounts?: Record<string, {
343
+ markdownSupport: boolean;
344
+ c2cMarkdownDeliveryMode: "passive" | "proactive-table-only" | "proactive-all";
345
+ c2cMarkdownChunkStrategy: "markdown-block" | "length";
346
+ typingHeartbeatMode: "none" | "idle" | "always";
347
+ typingHeartbeatIntervalMs: number;
348
+ typingInputSeconds: number;
349
+ dmPolicy: "open" | "pairing" | "allowlist";
350
+ groupPolicy: "open" | "allowlist" | "disabled";
351
+ requireMention: boolean;
352
+ historyLimit: number;
353
+ textChunkLimit: number;
354
+ replyFinalOnly: boolean;
355
+ longTaskNoticeDelayMs: number;
356
+ maxFileSizeMB: number;
357
+ mediaTimeoutMs: number;
358
+ autoSendLocalPathMedia: boolean;
359
+ name?: string | undefined;
360
+ enabled?: boolean | undefined;
361
+ appId?: string | undefined;
362
+ clientSecret?: string | undefined;
363
+ displayAliases?: Record<string, string> | undefined;
364
+ asr?: {
365
+ enabled: boolean;
366
+ appId?: string | undefined;
367
+ secretId?: string | undefined;
368
+ secretKey?: string | undefined;
369
+ } | undefined;
370
+ c2cMarkdownSafeChunkByteLimit?: number | undefined;
371
+ allowFrom?: string[] | undefined;
372
+ groupAllowFrom?: string[] | undefined;
373
+ inboundMedia?: {
374
+ dir?: string | undefined;
375
+ keepDays?: number | undefined;
376
+ } | undefined;
377
+ }> | undefined;
378
+ }, {
379
+ name?: string | undefined;
380
+ enabled?: boolean | undefined;
381
+ appId?: unknown;
382
+ clientSecret?: unknown;
383
+ displayAliases?: Record<string, unknown> | undefined;
384
+ asr?: {
385
+ enabled?: boolean | undefined;
386
+ appId?: unknown;
387
+ secretId?: unknown;
388
+ secretKey?: unknown;
389
+ } | undefined;
390
+ markdownSupport?: boolean | undefined;
391
+ c2cMarkdownDeliveryMode?: "passive" | "proactive-table-only" | "proactive-all" | undefined;
392
+ c2cMarkdownChunkStrategy?: "markdown-block" | "length" | undefined;
393
+ c2cMarkdownSafeChunkByteLimit?: number | undefined;
394
+ typingHeartbeatMode?: "none" | "idle" | "always" | undefined;
395
+ typingHeartbeatIntervalMs?: number | undefined;
396
+ typingInputSeconds?: number | undefined;
397
+ dmPolicy?: "open" | "pairing" | "allowlist" | undefined;
398
+ groupPolicy?: "open" | "allowlist" | "disabled" | undefined;
399
+ requireMention?: boolean | undefined;
400
+ allowFrom?: string[] | undefined;
401
+ groupAllowFrom?: string[] | undefined;
402
+ historyLimit?: number | undefined;
403
+ textChunkLimit?: number | undefined;
404
+ replyFinalOnly?: boolean | undefined;
405
+ longTaskNoticeDelayMs?: number | undefined;
406
+ maxFileSizeMB?: number | undefined;
407
+ mediaTimeoutMs?: number | undefined;
408
+ autoSendLocalPathMedia?: boolean | undefined;
409
+ inboundMedia?: {
410
+ dir?: string | undefined;
411
+ keepDays?: number | undefined;
412
+ } | undefined;
413
+ defaultAccount?: string | undefined;
414
+ accounts?: Record<string, {
415
+ name?: string | undefined;
416
+ enabled?: boolean | undefined;
417
+ appId?: unknown;
418
+ clientSecret?: unknown;
419
+ displayAliases?: Record<string, unknown> | undefined;
420
+ asr?: {
421
+ enabled?: boolean | undefined;
422
+ appId?: unknown;
423
+ secretId?: unknown;
424
+ secretKey?: unknown;
425
+ } | undefined;
426
+ markdownSupport?: boolean | undefined;
427
+ c2cMarkdownDeliveryMode?: "passive" | "proactive-table-only" | "proactive-all" | undefined;
428
+ c2cMarkdownChunkStrategy?: "markdown-block" | "length" | undefined;
429
+ c2cMarkdownSafeChunkByteLimit?: number | undefined;
430
+ typingHeartbeatMode?: "none" | "idle" | "always" | undefined;
431
+ typingHeartbeatIntervalMs?: number | undefined;
432
+ typingInputSeconds?: number | undefined;
433
+ dmPolicy?: "open" | "pairing" | "allowlist" | undefined;
434
+ groupPolicy?: "open" | "allowlist" | "disabled" | undefined;
435
+ requireMention?: boolean | undefined;
436
+ allowFrom?: string[] | undefined;
437
+ groupAllowFrom?: string[] | undefined;
438
+ historyLimit?: number | undefined;
439
+ textChunkLimit?: number | undefined;
440
+ replyFinalOnly?: boolean | undefined;
441
+ longTaskNoticeDelayMs?: number | undefined;
442
+ maxFileSizeMB?: number | undefined;
443
+ mediaTimeoutMs?: number | undefined;
444
+ autoSendLocalPathMedia?: boolean | undefined;
445
+ inboundMedia?: {
446
+ dir?: string | undefined;
447
+ keepDays?: number | undefined;
448
+ } | undefined;
449
+ }> | undefined;
450
+ }>;
451
+ type QQBotConfig = z.input<typeof QQBotConfigSchema>;
452
+ type QQBotAccountConfig = z.input<typeof QQBotAccountSchema>;
453
+ interface PluginConfig {
454
+ channels?: {
455
+ qqbot?: QQBotConfig;
456
+ };
457
+ }
458
+ declare const DEFAULT_ACCOUNT_ID = "default";
459
+
460
+ interface ResolvedQQBotAccount {
461
+ accountId: string;
462
+ enabled: boolean;
463
+ configured: boolean;
464
+ appId?: string;
465
+ markdownSupport?: boolean;
466
+ c2cMarkdownDeliveryMode?: QQBotC2CMarkdownDeliveryMode;
467
+ c2cMarkdownChunkStrategy?: QQBotC2CMarkdownChunkStrategy;
468
+ typingHeartbeatMode?: QQBotTypingHeartbeatMode;
469
+ }
470
+ interface QQBotSendResult {
471
+ channel: "qqbot";
472
+ messageId?: string;
473
+ timestamp?: number | string;
474
+ refIdx?: string;
475
+ error?: string;
476
+ }
477
+ type QQChatType = "direct" | "group" | "channel";
478
+
479
+ interface WizardPrompter {
480
+ note: (message: string, title?: string) => Promise<void>;
481
+ text: (opts: {
482
+ message: string;
483
+ placeholder?: string;
484
+ initialValue?: string;
485
+ validate?: (value: string | undefined) => string | undefined;
486
+ }) => Promise<string | symbol>;
487
+ confirm: (opts: {
488
+ message: string;
489
+ initialValue?: boolean;
490
+ }) => Promise<boolean>;
491
+ select: <T>(opts: {
492
+ message: string;
493
+ options: Array<{
494
+ value: T;
495
+ label: string;
496
+ }>;
497
+ initialValue?: T;
498
+ }) => Promise<T | symbol>;
499
+ }
500
+
501
+ declare const qqbotPlugin: {
502
+ id: string;
503
+ meta: {
504
+ id: "qqbot";
505
+ label: "QQ Bot";
506
+ selectionLabel: "QQ Bot";
507
+ docsPath: "/channels/qqbot";
508
+ docsLabel: "qqbot";
509
+ blurb: "QQ 开放平台机器人消息";
510
+ aliases: readonly ["qq"];
511
+ order: 72;
512
+ };
513
+ capabilities: {
514
+ chatTypes: readonly ["direct", "group", "channel"];
515
+ media: boolean;
516
+ reactions: boolean;
517
+ threads: boolean;
518
+ edit: boolean;
519
+ reply: boolean;
520
+ polls: boolean;
521
+ blockStreaming: boolean;
522
+ activeSend: boolean;
523
+ };
524
+ messaging: {
525
+ normalizeTarget: (raw: string) => string | undefined;
526
+ targetResolver: {
527
+ looksLikeId: (raw: string, normalized?: string) => boolean;
528
+ hint: string;
529
+ };
530
+ formatTargetDisplay: (params: {
531
+ target: string;
532
+ display?: string;
533
+ kind?: "user" | "group" | "channel";
534
+ }) => string;
535
+ };
536
+ configSchema: {
537
+ schema: {
538
+ type: string;
539
+ additionalProperties: boolean;
540
+ properties: {
541
+ enabled: {
542
+ type: string;
543
+ };
544
+ name: {
545
+ type: string;
546
+ };
547
+ defaultAccount: {
548
+ type: string;
549
+ };
550
+ appId: {
551
+ type: string[];
552
+ };
553
+ clientSecret: {
554
+ type: string;
555
+ };
556
+ displayAliases: {
557
+ type: string;
558
+ additionalProperties: {
559
+ type: string;
560
+ };
561
+ };
562
+ asr: {
563
+ type: string;
564
+ additionalProperties: boolean;
565
+ properties: {
566
+ enabled: {
567
+ type: string;
568
+ };
569
+ appId: {
570
+ type: string[];
571
+ };
572
+ secretId: {
573
+ type: string;
574
+ };
575
+ secretKey: {
576
+ type: string;
577
+ };
578
+ };
579
+ };
580
+ markdownSupport: {
581
+ type: string;
582
+ };
583
+ c2cMarkdownDeliveryMode: {
584
+ type: string;
585
+ enum: string[];
586
+ };
587
+ c2cMarkdownChunkStrategy: {
588
+ type: string;
589
+ enum: string[];
590
+ };
591
+ c2cMarkdownSafeChunkByteLimit: {
592
+ type: string;
593
+ minimum: number;
594
+ };
595
+ dmPolicy: {
596
+ type: string;
597
+ enum: string[];
598
+ };
599
+ groupPolicy: {
600
+ type: string;
601
+ enum: string[];
602
+ };
603
+ requireMention: {
604
+ type: string;
605
+ };
606
+ allowFrom: {
607
+ type: string;
608
+ items: {
609
+ type: string;
610
+ };
611
+ };
612
+ groupAllowFrom: {
613
+ type: string;
614
+ items: {
615
+ type: string;
616
+ };
617
+ };
618
+ historyLimit: {
619
+ type: string;
620
+ minimum: number;
621
+ };
622
+ textChunkLimit: {
623
+ type: string;
624
+ minimum: number;
625
+ };
626
+ replyFinalOnly: {
627
+ type: string;
628
+ };
629
+ longTaskNoticeDelayMs: {
630
+ type: string;
631
+ minimum: number;
632
+ };
633
+ maxFileSizeMB: {
634
+ type: string;
635
+ };
636
+ mediaTimeoutMs: {
637
+ type: string;
638
+ };
639
+ autoSendLocalPathMedia: {
640
+ type: string;
641
+ };
642
+ inboundMedia: {
643
+ type: string;
644
+ additionalProperties: boolean;
645
+ properties: {
646
+ dir: {
647
+ type: string;
648
+ };
649
+ keepDays: {
650
+ type: string;
651
+ minimum: number;
652
+ };
653
+ };
654
+ };
655
+ accounts: {
656
+ type: string;
657
+ additionalProperties: {
658
+ type: string;
659
+ additionalProperties: boolean;
660
+ properties: {
661
+ name: {
662
+ type: string;
663
+ };
664
+ enabled: {
665
+ type: string;
666
+ };
667
+ appId: {
668
+ type: string[];
669
+ };
670
+ clientSecret: {
671
+ type: string;
672
+ };
673
+ displayAliases: {
674
+ type: string;
675
+ additionalProperties: {
676
+ type: string;
677
+ };
678
+ };
679
+ asr: {
680
+ type: string;
681
+ additionalProperties: boolean;
682
+ properties: {
683
+ enabled: {
684
+ type: string;
685
+ };
686
+ appId: {
687
+ type: string[];
688
+ };
689
+ secretId: {
690
+ type: string;
691
+ };
692
+ secretKey: {
693
+ type: string;
694
+ };
695
+ };
696
+ };
697
+ markdownSupport: {
698
+ type: string;
699
+ };
700
+ c2cMarkdownDeliveryMode: {
701
+ type: string;
702
+ enum: string[];
703
+ };
704
+ c2cMarkdownChunkStrategy: {
705
+ type: string;
706
+ enum: string[];
707
+ };
708
+ c2cMarkdownSafeChunkByteLimit: {
709
+ type: string;
710
+ minimum: number;
711
+ };
712
+ dmPolicy: {
713
+ type: string;
714
+ enum: string[];
715
+ };
716
+ groupPolicy: {
717
+ type: string;
718
+ enum: string[];
719
+ };
720
+ requireMention: {
721
+ type: string;
722
+ };
723
+ allowFrom: {
724
+ type: string;
725
+ items: {
726
+ type: string;
727
+ };
728
+ };
729
+ groupAllowFrom: {
730
+ type: string;
731
+ items: {
732
+ type: string;
733
+ };
734
+ };
735
+ historyLimit: {
736
+ type: string;
737
+ minimum: number;
738
+ };
739
+ textChunkLimit: {
740
+ type: string;
741
+ minimum: number;
742
+ };
743
+ replyFinalOnly: {
744
+ type: string;
745
+ };
746
+ longTaskNoticeDelayMs: {
747
+ type: string;
748
+ minimum: number;
749
+ };
750
+ maxFileSizeMB: {
751
+ type: string;
752
+ };
753
+ mediaTimeoutMs: {
754
+ type: string;
755
+ };
756
+ autoSendLocalPathMedia: {
757
+ type: string;
758
+ };
759
+ inboundMedia: {
760
+ type: string;
761
+ additionalProperties: boolean;
762
+ properties: {
763
+ dir: {
764
+ type: string;
765
+ };
766
+ keepDays: {
767
+ type: string;
768
+ minimum: number;
769
+ };
770
+ };
771
+ };
772
+ };
773
+ };
774
+ };
775
+ };
776
+ };
777
+ };
778
+ reload: {
779
+ configPrefixes: string[];
780
+ };
781
+ onboarding: {
782
+ channel: "qqbot";
783
+ getStatus: (params: {
784
+ cfg: PluginConfig;
785
+ }) => Promise<{
786
+ channel: "qqbot";
787
+ configured: boolean;
788
+ statusLines: string[];
789
+ selectionHint: string;
790
+ quickstartScore: number;
791
+ }>;
792
+ configure: (params: {
793
+ cfg: PluginConfig;
794
+ prompter: WizardPrompter;
795
+ shouldPromptAccountIds?: boolean;
796
+ accountOverrides?: Record<string, string>;
797
+ }) => Promise<{
798
+ cfg: PluginConfig;
799
+ accountId: string;
800
+ }>;
801
+ disable: (cfg: PluginConfig) => PluginConfig;
802
+ };
803
+ config: {
804
+ listAccountIds: (cfg: PluginConfig) => string[];
805
+ resolveAccount: (cfg: PluginConfig, accountId?: string) => ResolvedQQBotAccount;
806
+ defaultAccountId: () => string;
807
+ setAccountEnabled: (params: {
808
+ cfg: PluginConfig;
809
+ accountId?: string;
810
+ enabled: boolean;
811
+ }) => PluginConfig;
812
+ deleteAccount: (params: {
813
+ cfg: PluginConfig;
814
+ accountId?: string;
815
+ }) => PluginConfig;
816
+ isConfigured: (_account: ResolvedQQBotAccount, cfg: PluginConfig, accountId?: string) => boolean;
817
+ describeAccount: (account: ResolvedQQBotAccount) => {
818
+ accountId: string;
819
+ enabled: boolean;
820
+ configured: boolean;
821
+ };
822
+ resolveAllowFrom: (params: {
823
+ cfg: PluginConfig;
824
+ accountId?: string;
825
+ }) => string[];
826
+ formatAllowFrom: (params: {
827
+ allowFrom: (string | number)[];
828
+ }) => string[];
829
+ };
830
+ security: {
831
+ collectWarnings: (params: {
832
+ cfg: PluginConfig;
833
+ }) => string[];
834
+ };
835
+ setup: {
836
+ resolveAccountId: (params: {
837
+ cfg: PluginConfig;
838
+ accountId?: string;
839
+ }) => string;
840
+ applyAccountConfig: (params: {
841
+ cfg: PluginConfig;
842
+ accountId?: string;
843
+ config?: Record<string, unknown>;
844
+ }) => PluginConfig;
845
+ };
846
+ outbound: {
847
+ deliveryMode: "direct";
848
+ textChunkLimit: number;
849
+ chunkerMode: "markdown";
850
+ sendText: (params: {
851
+ cfg: PluginConfig;
852
+ to: string;
853
+ text: string;
854
+ replyToId?: string;
855
+ replyEventId?: string;
856
+ accountId?: string;
857
+ }) => Promise<QQBotSendResult>;
858
+ sendMedia: (params: {
859
+ cfg: PluginConfig;
860
+ to: string;
861
+ text?: string;
862
+ mediaUrl?: string;
863
+ replyToId?: string;
864
+ replyEventId?: string;
865
+ accountId?: string;
866
+ }) => Promise<QQBotSendResult>;
867
+ sendTyping: (params: {
868
+ cfg: PluginConfig;
869
+ to: string;
870
+ replyToId?: string;
871
+ replyEventId?: string;
872
+ inputSecond?: number;
873
+ accountId?: string;
874
+ }) => Promise<QQBotSendResult>;
875
+ };
876
+ gateway: {
877
+ startAccount: (ctx: {
878
+ cfg: PluginConfig;
879
+ runtime?: unknown;
880
+ abortSignal?: AbortSignal;
881
+ accountId: string;
882
+ setStatus?: (status: Record<string, unknown>) => void;
883
+ log?: {
884
+ info: (msg: string) => void;
885
+ error: (msg: string) => void;
886
+ };
887
+ }) => Promise<void>;
888
+ stopAccount: (ctx: {
889
+ accountId: string;
890
+ }) => Promise<void>;
891
+ getStatus: () => {
892
+ connected: boolean;
893
+ };
894
+ };
895
+ };
896
+
897
+ interface PluginRuntime {
898
+ log?: (msg: string) => void;
899
+ error?: (msg: string) => void;
900
+ channel?: {
901
+ routing?: {
902
+ resolveAgentRoute?: (params: {
903
+ cfg: unknown;
904
+ channel: string;
905
+ accountId?: string;
906
+ peer: {
907
+ kind: string;
908
+ id: string;
909
+ };
910
+ }) => {
911
+ sessionKey: string;
912
+ accountId: string;
913
+ agentId?: string;
914
+ };
915
+ };
916
+ session?: {
917
+ resolveStorePath?: (store: unknown, params: {
918
+ agentId?: string;
919
+ }) => string | undefined;
920
+ readSessionUpdatedAt?: (params: {
921
+ storePath: string;
922
+ sessionKey: string;
923
+ }) => number | null;
924
+ recordSessionMetaFromInbound?: (params: {
925
+ storePath: string;
926
+ sessionKey: string;
927
+ ctx: unknown;
928
+ groupResolution?: unknown;
929
+ createIfMissing?: boolean;
930
+ }) => Promise<unknown>;
931
+ updateLastRoute?: (params: {
932
+ storePath: string;
933
+ sessionKey: string;
934
+ channel?: string;
935
+ to?: string;
936
+ accountId?: string;
937
+ threadId?: string | number;
938
+ deliveryContext?: unknown;
939
+ ctx?: unknown;
940
+ groupResolution?: unknown;
941
+ }) => Promise<unknown>;
942
+ recordInboundSession?: (params: {
943
+ storePath: string;
944
+ sessionKey: string;
945
+ ctx: unknown;
946
+ updateLastRoute?: {
947
+ sessionKey: string;
948
+ channel: string;
949
+ to: string;
950
+ accountId?: string;
951
+ threadId?: string | number;
952
+ };
953
+ onRecordError?: (err: unknown) => void;
954
+ }) => Promise<void>;
955
+ };
956
+ reply?: {
957
+ dispatchReplyFromConfig?: (params: {
958
+ ctx: unknown;
959
+ cfg: unknown;
960
+ dispatcher?: unknown;
961
+ replyOptions?: unknown;
962
+ }) => Promise<{
963
+ queuedFinal: boolean;
964
+ counts: {
965
+ final: number;
966
+ };
967
+ }>;
968
+ dispatchReplyWithDispatcher?: (params: {
969
+ ctx: unknown;
970
+ cfg: unknown;
971
+ dispatcherOptions: {
972
+ deliver: (payload: unknown, info?: {
973
+ kind?: string;
974
+ }) => Promise<void> | void;
975
+ onError?: (err: unknown, info: {
976
+ kind: string;
977
+ }) => void;
978
+ onSkip?: (payload: unknown, info: {
979
+ kind: string;
980
+ reason: string;
981
+ }) => void;
982
+ onReplyStart?: () => Promise<void> | void;
983
+ humanDelay?: unknown;
984
+ };
985
+ replyOptions?: unknown;
986
+ }) => Promise<unknown>;
987
+ dispatchReplyWithBufferedBlockDispatcher?: (params: {
988
+ ctx: unknown;
989
+ cfg: unknown;
990
+ dispatcherOptions: {
991
+ deliver: (payload: unknown, info?: {
992
+ kind?: string;
993
+ }) => Promise<void> | void;
994
+ onError?: (err: unknown, info: {
995
+ kind: string;
996
+ }) => void;
997
+ onSkip?: (payload: unknown, info: {
998
+ kind: string;
999
+ reason: string;
1000
+ }) => void;
1001
+ onReplyStart?: () => Promise<void> | void;
1002
+ humanDelay?: unknown;
1003
+ };
1004
+ replyOptions?: unknown;
1005
+ }) => Promise<unknown>;
1006
+ finalizeInboundContext?: (ctx: unknown) => unknown;
1007
+ createReplyDispatcher?: (params: unknown) => unknown;
1008
+ createReplyDispatcherWithTyping?: (params: unknown) => {
1009
+ dispatcher: unknown;
1010
+ replyOptions?: unknown;
1011
+ markDispatchIdle?: () => void;
1012
+ };
1013
+ resolveHumanDelayConfig?: (cfg: unknown, agentId?: string) => unknown;
1014
+ resolveEffectiveMessagesConfig?: (cfg: unknown) => unknown;
1015
+ resolveEnvelopeFormatOptions?: (cfg: unknown) => unknown;
1016
+ formatAgentEnvelope?: (params: unknown) => string;
1017
+ formatInboundEnvelope?: (params: unknown) => string;
1018
+ };
1019
+ text?: {
1020
+ resolveTextChunkLimit?: (params: {
1021
+ cfg: unknown;
1022
+ channel: string;
1023
+ defaultLimit?: number;
1024
+ }) => number;
1025
+ resolveChunkMode?: (cfg: unknown, channel: string) => unknown;
1026
+ resolveMarkdownTableMode?: (params: {
1027
+ cfg: unknown;
1028
+ channel: string;
1029
+ accountId?: string;
1030
+ }) => unknown;
1031
+ convertMarkdownTables?: (text: string, mode: unknown) => string;
1032
+ chunkTextWithMode?: (text: string, limit: number, mode: unknown) => string[];
1033
+ chunkMarkdownText?: (text: string, limit: number) => string[];
1034
+ };
1035
+ };
1036
+ system?: {
1037
+ enqueueSystemEvent?: (message: string, options?: unknown) => void;
1038
+ };
1039
+ [key: string]: unknown;
1040
+ }
1041
+ declare function setQQBotRuntime(next: PluginRuntime): void;
1042
+ declare function getQQBotRuntime(): PluginRuntime;
1043
+
1044
+ type KnownQQBotTargetKind = "user" | "group" | "channel";
1045
+ type KnownQQBotTargetStoreOptions = {
1046
+ filePath?: string;
1047
+ };
1048
+ interface KnownQQBotTarget {
1049
+ accountId: string;
1050
+ kind: KnownQQBotTargetKind;
1051
+ target: string;
1052
+ displayName?: string;
1053
+ sourceChatType: QQChatType;
1054
+ firstSeenAt: number;
1055
+ lastSeenAt: number;
1056
+ }
1057
+ interface ListKnownQQBotTargetsParams extends KnownQQBotTargetStoreOptions {
1058
+ accountId?: string;
1059
+ kind?: KnownQQBotTargetKind;
1060
+ limit?: number;
1061
+ }
1062
+ interface GetKnownQQBotTargetParams extends KnownQQBotTargetStoreOptions {
1063
+ accountId?: string;
1064
+ target: string;
1065
+ }
1066
+ interface RemoveKnownQQBotTargetParams extends KnownQQBotTargetStoreOptions {
1067
+ accountId?: string;
1068
+ target: string;
1069
+ }
1070
+ interface ClearKnownQQBotTargetsParams extends KnownQQBotTargetStoreOptions {
1071
+ accountId?: string;
1072
+ kind?: KnownQQBotTargetKind;
1073
+ }
1074
+ declare function listKnownQQBotTargets(params?: ListKnownQQBotTargetsParams): KnownQQBotTarget[];
1075
+ declare function getKnownQQBotTarget(params: GetKnownQQBotTargetParams): KnownQQBotTarget | undefined;
1076
+ declare function removeKnownQQBotTarget(params: RemoveKnownQQBotTargetParams): boolean;
1077
+ declare function clearKnownQQBotTargets(params?: ClearKnownQQBotTargetsParams): number;
1078
+ declare function sendProactiveQQBotMessage(params: {
1079
+ cfg: PluginConfig;
1080
+ to: string;
1081
+ text?: string;
1082
+ mediaUrl?: string;
1083
+ accountId?: string;
1084
+ }): Promise<QQBotSendResult>;
1085
+
1086
+ /**
1087
+ * @xuanyue202/qqbot
1088
+ * QQ Bot 渠道插件入口
1089
+ */
1090
+ interface MoltbotPluginApi {
1091
+ registerChannel: (opts: {
1092
+ plugin: unknown;
1093
+ }) => void;
1094
+ runtime?: unknown;
1095
+ [key: string]: unknown;
1096
+ }
1097
+
1098
+ declare const plugin: {
1099
+ id: string;
1100
+ name: string;
1101
+ description: string;
1102
+ configSchema: {
1103
+ type: string;
1104
+ additionalProperties: boolean;
1105
+ properties: {
1106
+ enabled: {
1107
+ type: string;
1108
+ };
1109
+ name: {
1110
+ type: string;
1111
+ };
1112
+ defaultAccount: {
1113
+ type: string;
1114
+ };
1115
+ appId: {
1116
+ type: string[];
1117
+ };
1118
+ clientSecret: {
1119
+ type: string;
1120
+ };
1121
+ displayAliases: {
1122
+ type: string;
1123
+ additionalProperties: {
1124
+ type: string;
1125
+ };
1126
+ };
1127
+ asr: {
1128
+ type: string;
1129
+ additionalProperties: boolean;
1130
+ properties: {
1131
+ enabled: {
1132
+ type: string;
1133
+ };
1134
+ appId: {
1135
+ type: string[];
1136
+ };
1137
+ secretId: {
1138
+ type: string;
1139
+ };
1140
+ secretKey: {
1141
+ type: string;
1142
+ };
1143
+ };
1144
+ };
1145
+ markdownSupport: {
1146
+ type: string;
1147
+ };
1148
+ c2cMarkdownDeliveryMode: {
1149
+ type: string;
1150
+ enum: string[];
1151
+ };
1152
+ c2cMarkdownChunkStrategy: {
1153
+ type: string;
1154
+ enum: string[];
1155
+ };
1156
+ c2cMarkdownSafeChunkByteLimit: {
1157
+ type: string;
1158
+ minimum: number;
1159
+ };
1160
+ dmPolicy: {
1161
+ type: string;
1162
+ enum: string[];
1163
+ };
1164
+ groupPolicy: {
1165
+ type: string;
1166
+ enum: string[];
1167
+ };
1168
+ requireMention: {
1169
+ type: string;
1170
+ };
1171
+ allowFrom: {
1172
+ type: string;
1173
+ items: {
1174
+ type: string;
1175
+ };
1176
+ };
1177
+ groupAllowFrom: {
1178
+ type: string;
1179
+ items: {
1180
+ type: string;
1181
+ };
1182
+ };
1183
+ historyLimit: {
1184
+ type: string;
1185
+ minimum: number;
1186
+ };
1187
+ textChunkLimit: {
1188
+ type: string;
1189
+ minimum: number;
1190
+ };
1191
+ replyFinalOnly: {
1192
+ type: string;
1193
+ };
1194
+ longTaskNoticeDelayMs: {
1195
+ type: string;
1196
+ minimum: number;
1197
+ };
1198
+ maxFileSizeMB: {
1199
+ type: string;
1200
+ };
1201
+ mediaTimeoutMs: {
1202
+ type: string;
1203
+ };
1204
+ autoSendLocalPathMedia: {
1205
+ type: string;
1206
+ };
1207
+ inboundMedia: {
1208
+ type: string;
1209
+ additionalProperties: boolean;
1210
+ properties: {
1211
+ dir: {
1212
+ type: string;
1213
+ };
1214
+ keepDays: {
1215
+ type: string;
1216
+ minimum: number;
1217
+ };
1218
+ };
1219
+ };
1220
+ accounts: {
1221
+ type: string;
1222
+ additionalProperties: {
1223
+ type: string;
1224
+ additionalProperties: boolean;
1225
+ properties: {
1226
+ name: {
1227
+ type: string;
1228
+ };
1229
+ enabled: {
1230
+ type: string;
1231
+ };
1232
+ appId: {
1233
+ type: string[];
1234
+ };
1235
+ clientSecret: {
1236
+ type: string;
1237
+ };
1238
+ displayAliases: {
1239
+ type: string;
1240
+ additionalProperties: {
1241
+ type: string;
1242
+ };
1243
+ };
1244
+ asr: {
1245
+ type: string;
1246
+ additionalProperties: boolean;
1247
+ properties: {
1248
+ enabled: {
1249
+ type: string;
1250
+ };
1251
+ appId: {
1252
+ type: string[];
1253
+ };
1254
+ secretId: {
1255
+ type: string;
1256
+ };
1257
+ secretKey: {
1258
+ type: string;
1259
+ };
1260
+ };
1261
+ };
1262
+ markdownSupport: {
1263
+ type: string;
1264
+ };
1265
+ c2cMarkdownDeliveryMode: {
1266
+ type: string;
1267
+ enum: string[];
1268
+ };
1269
+ c2cMarkdownChunkStrategy: {
1270
+ type: string;
1271
+ enum: string[];
1272
+ };
1273
+ c2cMarkdownSafeChunkByteLimit: {
1274
+ type: string;
1275
+ minimum: number;
1276
+ };
1277
+ dmPolicy: {
1278
+ type: string;
1279
+ enum: string[];
1280
+ };
1281
+ groupPolicy: {
1282
+ type: string;
1283
+ enum: string[];
1284
+ };
1285
+ requireMention: {
1286
+ type: string;
1287
+ };
1288
+ allowFrom: {
1289
+ type: string;
1290
+ items: {
1291
+ type: string;
1292
+ };
1293
+ };
1294
+ groupAllowFrom: {
1295
+ type: string;
1296
+ items: {
1297
+ type: string;
1298
+ };
1299
+ };
1300
+ historyLimit: {
1301
+ type: string;
1302
+ minimum: number;
1303
+ };
1304
+ textChunkLimit: {
1305
+ type: string;
1306
+ minimum: number;
1307
+ };
1308
+ replyFinalOnly: {
1309
+ type: string;
1310
+ };
1311
+ longTaskNoticeDelayMs: {
1312
+ type: string;
1313
+ minimum: number;
1314
+ };
1315
+ maxFileSizeMB: {
1316
+ type: string;
1317
+ };
1318
+ mediaTimeoutMs: {
1319
+ type: string;
1320
+ };
1321
+ autoSendLocalPathMedia: {
1322
+ type: string;
1323
+ };
1324
+ inboundMedia: {
1325
+ type: string;
1326
+ additionalProperties: boolean;
1327
+ properties: {
1328
+ dir: {
1329
+ type: string;
1330
+ };
1331
+ keepDays: {
1332
+ type: string;
1333
+ minimum: number;
1334
+ };
1335
+ };
1336
+ };
1337
+ };
1338
+ };
1339
+ };
1340
+ };
1341
+ };
1342
+ register(api: MoltbotPluginApi): void;
1343
+ };
1344
+
1345
+ export { DEFAULT_ACCOUNT_ID, type KnownQQBotTarget, type MoltbotPluginApi, type QQBotAccountConfig, type QQBotConfig, type QQBotSendResult, type ResolvedQQBotAccount, clearKnownQQBotTargets, plugin as default, getKnownQQBotTarget, getQQBotRuntime, listKnownQQBotTargets, qqbotPlugin, removeKnownQQBotTarget, sendProactiveQQBotMessage, setQQBotRuntime };