@nextclaw/core 0.4.8

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,3921 @@
1
+ import { z } from 'zod';
2
+
3
+ type InboundMessage = {
4
+ channel: string;
5
+ senderId: string;
6
+ chatId: string;
7
+ content: string;
8
+ timestamp: Date;
9
+ media: string[];
10
+ metadata: Record<string, unknown>;
11
+ };
12
+ type OutboundMessage = {
13
+ channel: string;
14
+ chatId: string;
15
+ content: string;
16
+ replyTo?: string | null;
17
+ media: string[];
18
+ metadata: Record<string, unknown>;
19
+ };
20
+
21
+ declare class MessageBus {
22
+ private inboundQueue;
23
+ private outboundQueue;
24
+ private outboundSubscribers;
25
+ private running;
26
+ publishInbound(msg: InboundMessage): Promise<void>;
27
+ consumeInbound(): Promise<InboundMessage>;
28
+ publishOutbound(msg: OutboundMessage): Promise<void>;
29
+ consumeOutbound(): Promise<OutboundMessage>;
30
+ subscribeOutbound(channel: string, callback: (msg: OutboundMessage) => Promise<void>): void;
31
+ dispatchOutbound(): Promise<void>;
32
+ stop(): void;
33
+ get inboundSize(): number;
34
+ get outboundSize(): number;
35
+ }
36
+
37
+ type ToolCallRequest = {
38
+ id: string;
39
+ name: string;
40
+ arguments: Record<string, unknown>;
41
+ };
42
+ type LLMResponse = {
43
+ content: string | null;
44
+ toolCalls: ToolCallRequest[];
45
+ finishReason: string;
46
+ usage: Record<string, number>;
47
+ reasoningContent?: string | null;
48
+ };
49
+ declare abstract class LLMProvider {
50
+ protected apiKey?: string | null;
51
+ protected apiBase?: string | null;
52
+ constructor(apiKey?: string | null, apiBase?: string | null);
53
+ abstract chat(params: {
54
+ messages: Array<Record<string, unknown>>;
55
+ tools?: Array<Record<string, unknown>>;
56
+ model?: string | null;
57
+ maxTokens?: number;
58
+ temperature?: number;
59
+ }): Promise<LLMResponse>;
60
+ abstract getDefaultModel(): string;
61
+ }
62
+
63
+ declare class ProviderManager {
64
+ private provider;
65
+ constructor(provider: LLMProvider);
66
+ get(): LLMProvider;
67
+ set(next: LLMProvider): void;
68
+ }
69
+
70
+ declare abstract class Tool {
71
+ private static typeMap;
72
+ abstract get name(): string;
73
+ abstract get description(): string;
74
+ abstract get parameters(): Record<string, unknown>;
75
+ abstract execute(params: Record<string, unknown>, toolCallId?: string): Promise<string>;
76
+ validateParams(params: Record<string, unknown>): string[];
77
+ toSchema(): Record<string, unknown>;
78
+ private validateValue;
79
+ }
80
+
81
+ type GatewayConfigSnapshot = {
82
+ raw?: string | null;
83
+ hash?: string | null;
84
+ path?: string;
85
+ config?: Record<string, unknown>;
86
+ parsed?: Record<string, unknown>;
87
+ resolved?: Record<string, unknown>;
88
+ valid?: boolean;
89
+ };
90
+ type GatewayController = {
91
+ status?: () => Promise<Record<string, unknown> | string> | Record<string, unknown> | string;
92
+ reloadConfig?: (reason?: string) => Promise<string | void> | string | void;
93
+ restart?: (options?: {
94
+ delayMs?: number;
95
+ reason?: string;
96
+ }) => Promise<string | void> | string | void;
97
+ getConfig?: () => Promise<GatewayConfigSnapshot | string> | GatewayConfigSnapshot | string;
98
+ getConfigSchema?: () => Promise<Record<string, unknown> | string> | Record<string, unknown> | string;
99
+ applyConfig?: (params: {
100
+ raw: string;
101
+ baseHash?: string;
102
+ note?: string;
103
+ restartDelayMs?: number;
104
+ sessionKey?: string;
105
+ }) => Promise<Record<string, unknown> | string | void> | Record<string, unknown> | string | void;
106
+ patchConfig?: (params: {
107
+ raw: string;
108
+ baseHash?: string;
109
+ note?: string;
110
+ restartDelayMs?: number;
111
+ sessionKey?: string;
112
+ }) => Promise<Record<string, unknown> | string | void> | Record<string, unknown> | string | void;
113
+ updateRun?: (params: {
114
+ note?: string;
115
+ restartDelayMs?: number;
116
+ timeoutMs?: number;
117
+ sessionKey?: string;
118
+ }) => Promise<Record<string, unknown> | string | void> | Record<string, unknown> | string | void;
119
+ };
120
+ declare class GatewayTool extends Tool {
121
+ private controller?;
122
+ constructor(controller?: GatewayController | undefined);
123
+ get name(): string;
124
+ get description(): string;
125
+ get parameters(): Record<string, unknown>;
126
+ execute(params: Record<string, unknown>): Promise<string>;
127
+ }
128
+
129
+ type SessionMessage = {
130
+ role: string;
131
+ content: string;
132
+ timestamp: string;
133
+ [key: string]: unknown;
134
+ };
135
+ type Session = {
136
+ key: string;
137
+ messages: SessionMessage[];
138
+ createdAt: Date;
139
+ updatedAt: Date;
140
+ metadata: Record<string, unknown>;
141
+ };
142
+ declare class SessionManager {
143
+ private workspace;
144
+ private sessionsDir;
145
+ private cache;
146
+ constructor(workspace: string);
147
+ private getSessionPath;
148
+ getOrCreate(key: string): Session;
149
+ getIfExists(key: string): Session | null;
150
+ addMessage(session: Session, role: string, content: string, extra?: Record<string, unknown>): void;
151
+ getHistory(session: Session, maxMessages?: number): Array<Record<string, unknown>>;
152
+ clear(session: Session): void;
153
+ private load;
154
+ save(session: Session): void;
155
+ delete(key: string): boolean;
156
+ listSessions(): Array<Record<string, unknown>>;
157
+ }
158
+
159
+ type CronSchedule = {
160
+ kind: "at";
161
+ atMs?: number | null;
162
+ } | {
163
+ kind: "every";
164
+ everyMs?: number | null;
165
+ } | {
166
+ kind: "cron";
167
+ expr?: string | null;
168
+ tz?: string | null;
169
+ };
170
+ type CronPayload = {
171
+ kind?: "system_event" | "agent_turn";
172
+ message: string;
173
+ deliver?: boolean;
174
+ channel?: string | null;
175
+ to?: string | null;
176
+ };
177
+ type CronJobState = {
178
+ nextRunAtMs?: number | null;
179
+ lastRunAtMs?: number | null;
180
+ lastStatus?: "ok" | "error" | "skipped" | null;
181
+ lastError?: string | null;
182
+ };
183
+ type CronJob = {
184
+ id: string;
185
+ name: string;
186
+ enabled: boolean;
187
+ schedule: CronSchedule;
188
+ payload: CronPayload;
189
+ state: CronJobState;
190
+ createdAtMs: number;
191
+ updatedAtMs: number;
192
+ deleteAfterRun: boolean;
193
+ };
194
+
195
+ declare class CronService {
196
+ private storePath;
197
+ private store;
198
+ private timer;
199
+ private running;
200
+ onJob?: (job: CronJob) => Promise<string | null>;
201
+ constructor(storePath: string, onJob?: (job: CronJob) => Promise<string | null>);
202
+ private loadStore;
203
+ private saveStore;
204
+ start(): Promise<void>;
205
+ stop(): void;
206
+ private recomputeNextRuns;
207
+ private getNextWakeMs;
208
+ private armTimer;
209
+ private onTimer;
210
+ private executeJob;
211
+ listJobs(includeDisabled?: boolean): CronJob[];
212
+ addJob(params: {
213
+ name: string;
214
+ schedule: CronSchedule;
215
+ message: string;
216
+ deliver?: boolean;
217
+ channel?: string;
218
+ to?: string;
219
+ deleteAfterRun?: boolean;
220
+ }): CronJob;
221
+ removeJob(jobId: string): boolean;
222
+ enableJob(jobId: string, enabled?: boolean): CronJob | null;
223
+ runJob(jobId: string, force?: boolean): Promise<boolean>;
224
+ status(): {
225
+ enabled: boolean;
226
+ jobs: number;
227
+ nextWakeAtMs: number | null;
228
+ };
229
+ }
230
+
231
+ type ConfigUiHint = {
232
+ label?: string;
233
+ help?: string;
234
+ group?: string;
235
+ order?: number;
236
+ advanced?: boolean;
237
+ sensitive?: boolean;
238
+ placeholder?: string;
239
+ };
240
+ type ConfigUiHints = Record<string, ConfigUiHint>;
241
+ declare function isSensitiveConfigPath(path: string): boolean;
242
+ declare function buildBaseHints(): ConfigUiHints;
243
+ declare function applySensitiveHints(hints: ConfigUiHints): ConfigUiHints;
244
+ declare function mapSensitivePaths(schema: z.ZodType, path: string, hints: ConfigUiHints): ConfigUiHints;
245
+
246
+ declare const WhatsAppConfigSchema: z.ZodObject<{
247
+ enabled: z.ZodDefault<z.ZodBoolean>;
248
+ bridgeUrl: z.ZodDefault<z.ZodString>;
249
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
250
+ }, "strip", z.ZodTypeAny, {
251
+ enabled: boolean;
252
+ bridgeUrl: string;
253
+ allowFrom: string[];
254
+ }, {
255
+ enabled?: boolean | undefined;
256
+ bridgeUrl?: string | undefined;
257
+ allowFrom?: string[] | undefined;
258
+ }>;
259
+ declare const TelegramConfigSchema: z.ZodObject<{
260
+ enabled: z.ZodDefault<z.ZodBoolean>;
261
+ token: z.ZodDefault<z.ZodString>;
262
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
263
+ proxy: z.ZodDefault<z.ZodNullable<z.ZodString>>;
264
+ }, "strip", z.ZodTypeAny, {
265
+ enabled: boolean;
266
+ allowFrom: string[];
267
+ token: string;
268
+ proxy: string | null;
269
+ }, {
270
+ enabled?: boolean | undefined;
271
+ allowFrom?: string[] | undefined;
272
+ token?: string | undefined;
273
+ proxy?: string | null | undefined;
274
+ }>;
275
+ declare const FeishuConfigSchema: z.ZodObject<{
276
+ enabled: z.ZodDefault<z.ZodBoolean>;
277
+ appId: z.ZodDefault<z.ZodString>;
278
+ appSecret: z.ZodDefault<z.ZodString>;
279
+ encryptKey: z.ZodDefault<z.ZodString>;
280
+ verificationToken: z.ZodDefault<z.ZodString>;
281
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
282
+ }, "strip", z.ZodTypeAny, {
283
+ enabled: boolean;
284
+ allowFrom: string[];
285
+ appId: string;
286
+ appSecret: string;
287
+ encryptKey: string;
288
+ verificationToken: string;
289
+ }, {
290
+ enabled?: boolean | undefined;
291
+ allowFrom?: string[] | undefined;
292
+ appId?: string | undefined;
293
+ appSecret?: string | undefined;
294
+ encryptKey?: string | undefined;
295
+ verificationToken?: string | undefined;
296
+ }>;
297
+ declare const DingTalkConfigSchema: z.ZodObject<{
298
+ enabled: z.ZodDefault<z.ZodBoolean>;
299
+ clientId: z.ZodDefault<z.ZodString>;
300
+ clientSecret: z.ZodDefault<z.ZodString>;
301
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
302
+ }, "strip", z.ZodTypeAny, {
303
+ enabled: boolean;
304
+ allowFrom: string[];
305
+ clientId: string;
306
+ clientSecret: string;
307
+ }, {
308
+ enabled?: boolean | undefined;
309
+ allowFrom?: string[] | undefined;
310
+ clientId?: string | undefined;
311
+ clientSecret?: string | undefined;
312
+ }>;
313
+ declare const DiscordConfigSchema: z.ZodObject<{
314
+ enabled: z.ZodDefault<z.ZodBoolean>;
315
+ token: z.ZodDefault<z.ZodString>;
316
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
317
+ gatewayUrl: z.ZodDefault<z.ZodString>;
318
+ intents: z.ZodDefault<z.ZodNumber>;
319
+ }, "strip", z.ZodTypeAny, {
320
+ enabled: boolean;
321
+ allowFrom: string[];
322
+ token: string;
323
+ gatewayUrl: string;
324
+ intents: number;
325
+ }, {
326
+ enabled?: boolean | undefined;
327
+ allowFrom?: string[] | undefined;
328
+ token?: string | undefined;
329
+ gatewayUrl?: string | undefined;
330
+ intents?: number | undefined;
331
+ }>;
332
+ declare const EmailConfigSchema: z.ZodObject<{
333
+ enabled: z.ZodDefault<z.ZodBoolean>;
334
+ consentGranted: z.ZodDefault<z.ZodBoolean>;
335
+ imapHost: z.ZodDefault<z.ZodString>;
336
+ imapPort: z.ZodDefault<z.ZodNumber>;
337
+ imapUsername: z.ZodDefault<z.ZodString>;
338
+ imapPassword: z.ZodDefault<z.ZodString>;
339
+ imapMailbox: z.ZodDefault<z.ZodString>;
340
+ imapUseSsl: z.ZodDefault<z.ZodBoolean>;
341
+ smtpHost: z.ZodDefault<z.ZodString>;
342
+ smtpPort: z.ZodDefault<z.ZodNumber>;
343
+ smtpUsername: z.ZodDefault<z.ZodString>;
344
+ smtpPassword: z.ZodDefault<z.ZodString>;
345
+ smtpUseTls: z.ZodDefault<z.ZodBoolean>;
346
+ smtpUseSsl: z.ZodDefault<z.ZodBoolean>;
347
+ fromAddress: z.ZodDefault<z.ZodString>;
348
+ autoReplyEnabled: z.ZodDefault<z.ZodBoolean>;
349
+ pollIntervalSeconds: z.ZodDefault<z.ZodNumber>;
350
+ markSeen: z.ZodDefault<z.ZodBoolean>;
351
+ maxBodyChars: z.ZodDefault<z.ZodNumber>;
352
+ subjectPrefix: z.ZodDefault<z.ZodString>;
353
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
354
+ }, "strip", z.ZodTypeAny, {
355
+ enabled: boolean;
356
+ allowFrom: string[];
357
+ consentGranted: boolean;
358
+ imapHost: string;
359
+ imapPort: number;
360
+ imapUsername: string;
361
+ imapPassword: string;
362
+ imapMailbox: string;
363
+ imapUseSsl: boolean;
364
+ smtpHost: string;
365
+ smtpPort: number;
366
+ smtpUsername: string;
367
+ smtpPassword: string;
368
+ smtpUseTls: boolean;
369
+ smtpUseSsl: boolean;
370
+ fromAddress: string;
371
+ autoReplyEnabled: boolean;
372
+ pollIntervalSeconds: number;
373
+ markSeen: boolean;
374
+ maxBodyChars: number;
375
+ subjectPrefix: string;
376
+ }, {
377
+ enabled?: boolean | undefined;
378
+ allowFrom?: string[] | undefined;
379
+ consentGranted?: boolean | undefined;
380
+ imapHost?: string | undefined;
381
+ imapPort?: number | undefined;
382
+ imapUsername?: string | undefined;
383
+ imapPassword?: string | undefined;
384
+ imapMailbox?: string | undefined;
385
+ imapUseSsl?: boolean | undefined;
386
+ smtpHost?: string | undefined;
387
+ smtpPort?: number | undefined;
388
+ smtpUsername?: string | undefined;
389
+ smtpPassword?: string | undefined;
390
+ smtpUseTls?: boolean | undefined;
391
+ smtpUseSsl?: boolean | undefined;
392
+ fromAddress?: string | undefined;
393
+ autoReplyEnabled?: boolean | undefined;
394
+ pollIntervalSeconds?: number | undefined;
395
+ markSeen?: boolean | undefined;
396
+ maxBodyChars?: number | undefined;
397
+ subjectPrefix?: string | undefined;
398
+ }>;
399
+ declare const MochatMentionSchema: z.ZodObject<{
400
+ requireInGroups: z.ZodDefault<z.ZodBoolean>;
401
+ }, "strip", z.ZodTypeAny, {
402
+ requireInGroups: boolean;
403
+ }, {
404
+ requireInGroups?: boolean | undefined;
405
+ }>;
406
+ declare const MochatGroupRuleSchema: z.ZodObject<{
407
+ requireMention: z.ZodDefault<z.ZodBoolean>;
408
+ }, "strip", z.ZodTypeAny, {
409
+ requireMention: boolean;
410
+ }, {
411
+ requireMention?: boolean | undefined;
412
+ }>;
413
+ declare const MochatConfigSchema: z.ZodObject<{
414
+ enabled: z.ZodDefault<z.ZodBoolean>;
415
+ baseUrl: z.ZodDefault<z.ZodString>;
416
+ socketUrl: z.ZodDefault<z.ZodString>;
417
+ socketPath: z.ZodDefault<z.ZodString>;
418
+ socketDisableMsgpack: z.ZodDefault<z.ZodBoolean>;
419
+ socketReconnectDelayMs: z.ZodDefault<z.ZodNumber>;
420
+ socketMaxReconnectDelayMs: z.ZodDefault<z.ZodNumber>;
421
+ socketConnectTimeoutMs: z.ZodDefault<z.ZodNumber>;
422
+ refreshIntervalMs: z.ZodDefault<z.ZodNumber>;
423
+ watchTimeoutMs: z.ZodDefault<z.ZodNumber>;
424
+ watchLimit: z.ZodDefault<z.ZodNumber>;
425
+ retryDelayMs: z.ZodDefault<z.ZodNumber>;
426
+ maxRetryAttempts: z.ZodDefault<z.ZodNumber>;
427
+ clawToken: z.ZodDefault<z.ZodString>;
428
+ agentUserId: z.ZodDefault<z.ZodString>;
429
+ sessions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
430
+ panels: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
431
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
432
+ mention: z.ZodDefault<z.ZodObject<{
433
+ requireInGroups: z.ZodDefault<z.ZodBoolean>;
434
+ }, "strip", z.ZodTypeAny, {
435
+ requireInGroups: boolean;
436
+ }, {
437
+ requireInGroups?: boolean | undefined;
438
+ }>>;
439
+ groups: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
440
+ requireMention: z.ZodDefault<z.ZodBoolean>;
441
+ }, "strip", z.ZodTypeAny, {
442
+ requireMention: boolean;
443
+ }, {
444
+ requireMention?: boolean | undefined;
445
+ }>>>;
446
+ replyDelayMode: z.ZodDefault<z.ZodString>;
447
+ replyDelayMs: z.ZodDefault<z.ZodNumber>;
448
+ }, "strip", z.ZodTypeAny, {
449
+ sessions: string[];
450
+ enabled: boolean;
451
+ allowFrom: string[];
452
+ baseUrl: string;
453
+ socketUrl: string;
454
+ socketPath: string;
455
+ socketDisableMsgpack: boolean;
456
+ socketReconnectDelayMs: number;
457
+ socketMaxReconnectDelayMs: number;
458
+ socketConnectTimeoutMs: number;
459
+ refreshIntervalMs: number;
460
+ watchTimeoutMs: number;
461
+ watchLimit: number;
462
+ retryDelayMs: number;
463
+ maxRetryAttempts: number;
464
+ clawToken: string;
465
+ agentUserId: string;
466
+ panels: string[];
467
+ mention: {
468
+ requireInGroups: boolean;
469
+ };
470
+ groups: Record<string, {
471
+ requireMention: boolean;
472
+ }>;
473
+ replyDelayMode: string;
474
+ replyDelayMs: number;
475
+ }, {
476
+ sessions?: string[] | undefined;
477
+ enabled?: boolean | undefined;
478
+ allowFrom?: string[] | undefined;
479
+ baseUrl?: string | undefined;
480
+ socketUrl?: string | undefined;
481
+ socketPath?: string | undefined;
482
+ socketDisableMsgpack?: boolean | undefined;
483
+ socketReconnectDelayMs?: number | undefined;
484
+ socketMaxReconnectDelayMs?: number | undefined;
485
+ socketConnectTimeoutMs?: number | undefined;
486
+ refreshIntervalMs?: number | undefined;
487
+ watchTimeoutMs?: number | undefined;
488
+ watchLimit?: number | undefined;
489
+ retryDelayMs?: number | undefined;
490
+ maxRetryAttempts?: number | undefined;
491
+ clawToken?: string | undefined;
492
+ agentUserId?: string | undefined;
493
+ panels?: string[] | undefined;
494
+ mention?: {
495
+ requireInGroups?: boolean | undefined;
496
+ } | undefined;
497
+ groups?: Record<string, {
498
+ requireMention?: boolean | undefined;
499
+ }> | undefined;
500
+ replyDelayMode?: string | undefined;
501
+ replyDelayMs?: number | undefined;
502
+ }>;
503
+ declare const SlackDMSchema: z.ZodObject<{
504
+ enabled: z.ZodDefault<z.ZodBoolean>;
505
+ policy: z.ZodDefault<z.ZodString>;
506
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
507
+ }, "strip", z.ZodTypeAny, {
508
+ enabled: boolean;
509
+ allowFrom: string[];
510
+ policy: string;
511
+ }, {
512
+ enabled?: boolean | undefined;
513
+ allowFrom?: string[] | undefined;
514
+ policy?: string | undefined;
515
+ }>;
516
+ declare const SlackConfigSchema: z.ZodObject<{
517
+ enabled: z.ZodDefault<z.ZodBoolean>;
518
+ mode: z.ZodDefault<z.ZodString>;
519
+ webhookPath: z.ZodDefault<z.ZodString>;
520
+ botToken: z.ZodDefault<z.ZodString>;
521
+ appToken: z.ZodDefault<z.ZodString>;
522
+ userTokenReadOnly: z.ZodDefault<z.ZodBoolean>;
523
+ groupPolicy: z.ZodDefault<z.ZodString>;
524
+ groupAllowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
525
+ dm: z.ZodDefault<z.ZodObject<{
526
+ enabled: z.ZodDefault<z.ZodBoolean>;
527
+ policy: z.ZodDefault<z.ZodString>;
528
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
529
+ }, "strip", z.ZodTypeAny, {
530
+ enabled: boolean;
531
+ allowFrom: string[];
532
+ policy: string;
533
+ }, {
534
+ enabled?: boolean | undefined;
535
+ allowFrom?: string[] | undefined;
536
+ policy?: string | undefined;
537
+ }>>;
538
+ }, "strip", z.ZodTypeAny, {
539
+ enabled: boolean;
540
+ mode: string;
541
+ webhookPath: string;
542
+ botToken: string;
543
+ appToken: string;
544
+ userTokenReadOnly: boolean;
545
+ groupPolicy: string;
546
+ groupAllowFrom: string[];
547
+ dm: {
548
+ enabled: boolean;
549
+ allowFrom: string[];
550
+ policy: string;
551
+ };
552
+ }, {
553
+ enabled?: boolean | undefined;
554
+ mode?: string | undefined;
555
+ webhookPath?: string | undefined;
556
+ botToken?: string | undefined;
557
+ appToken?: string | undefined;
558
+ userTokenReadOnly?: boolean | undefined;
559
+ groupPolicy?: string | undefined;
560
+ groupAllowFrom?: string[] | undefined;
561
+ dm?: {
562
+ enabled?: boolean | undefined;
563
+ allowFrom?: string[] | undefined;
564
+ policy?: string | undefined;
565
+ } | undefined;
566
+ }>;
567
+ declare const QQConfigSchema: z.ZodObject<{
568
+ enabled: z.ZodDefault<z.ZodBoolean>;
569
+ appId: z.ZodDefault<z.ZodString>;
570
+ secret: z.ZodDefault<z.ZodString>;
571
+ markdownSupport: z.ZodDefault<z.ZodBoolean>;
572
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
573
+ }, "strip", z.ZodTypeAny, {
574
+ enabled: boolean;
575
+ allowFrom: string[];
576
+ appId: string;
577
+ secret: string;
578
+ markdownSupport: boolean;
579
+ }, {
580
+ enabled?: boolean | undefined;
581
+ allowFrom?: string[] | undefined;
582
+ appId?: string | undefined;
583
+ secret?: string | undefined;
584
+ markdownSupport?: boolean | undefined;
585
+ }>;
586
+ declare const ChannelsConfigSchema: z.ZodObject<{
587
+ whatsapp: z.ZodDefault<z.ZodObject<{
588
+ enabled: z.ZodDefault<z.ZodBoolean>;
589
+ bridgeUrl: z.ZodDefault<z.ZodString>;
590
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
591
+ }, "strip", z.ZodTypeAny, {
592
+ enabled: boolean;
593
+ bridgeUrl: string;
594
+ allowFrom: string[];
595
+ }, {
596
+ enabled?: boolean | undefined;
597
+ bridgeUrl?: string | undefined;
598
+ allowFrom?: string[] | undefined;
599
+ }>>;
600
+ telegram: z.ZodDefault<z.ZodObject<{
601
+ enabled: z.ZodDefault<z.ZodBoolean>;
602
+ token: z.ZodDefault<z.ZodString>;
603
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
604
+ proxy: z.ZodDefault<z.ZodNullable<z.ZodString>>;
605
+ }, "strip", z.ZodTypeAny, {
606
+ enabled: boolean;
607
+ allowFrom: string[];
608
+ token: string;
609
+ proxy: string | null;
610
+ }, {
611
+ enabled?: boolean | undefined;
612
+ allowFrom?: string[] | undefined;
613
+ token?: string | undefined;
614
+ proxy?: string | null | undefined;
615
+ }>>;
616
+ discord: z.ZodDefault<z.ZodObject<{
617
+ enabled: z.ZodDefault<z.ZodBoolean>;
618
+ token: z.ZodDefault<z.ZodString>;
619
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
620
+ gatewayUrl: z.ZodDefault<z.ZodString>;
621
+ intents: z.ZodDefault<z.ZodNumber>;
622
+ }, "strip", z.ZodTypeAny, {
623
+ enabled: boolean;
624
+ allowFrom: string[];
625
+ token: string;
626
+ gatewayUrl: string;
627
+ intents: number;
628
+ }, {
629
+ enabled?: boolean | undefined;
630
+ allowFrom?: string[] | undefined;
631
+ token?: string | undefined;
632
+ gatewayUrl?: string | undefined;
633
+ intents?: number | undefined;
634
+ }>>;
635
+ feishu: z.ZodDefault<z.ZodObject<{
636
+ enabled: z.ZodDefault<z.ZodBoolean>;
637
+ appId: z.ZodDefault<z.ZodString>;
638
+ appSecret: z.ZodDefault<z.ZodString>;
639
+ encryptKey: z.ZodDefault<z.ZodString>;
640
+ verificationToken: z.ZodDefault<z.ZodString>;
641
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
642
+ }, "strip", z.ZodTypeAny, {
643
+ enabled: boolean;
644
+ allowFrom: string[];
645
+ appId: string;
646
+ appSecret: string;
647
+ encryptKey: string;
648
+ verificationToken: string;
649
+ }, {
650
+ enabled?: boolean | undefined;
651
+ allowFrom?: string[] | undefined;
652
+ appId?: string | undefined;
653
+ appSecret?: string | undefined;
654
+ encryptKey?: string | undefined;
655
+ verificationToken?: string | undefined;
656
+ }>>;
657
+ mochat: z.ZodDefault<z.ZodObject<{
658
+ enabled: z.ZodDefault<z.ZodBoolean>;
659
+ baseUrl: z.ZodDefault<z.ZodString>;
660
+ socketUrl: z.ZodDefault<z.ZodString>;
661
+ socketPath: z.ZodDefault<z.ZodString>;
662
+ socketDisableMsgpack: z.ZodDefault<z.ZodBoolean>;
663
+ socketReconnectDelayMs: z.ZodDefault<z.ZodNumber>;
664
+ socketMaxReconnectDelayMs: z.ZodDefault<z.ZodNumber>;
665
+ socketConnectTimeoutMs: z.ZodDefault<z.ZodNumber>;
666
+ refreshIntervalMs: z.ZodDefault<z.ZodNumber>;
667
+ watchTimeoutMs: z.ZodDefault<z.ZodNumber>;
668
+ watchLimit: z.ZodDefault<z.ZodNumber>;
669
+ retryDelayMs: z.ZodDefault<z.ZodNumber>;
670
+ maxRetryAttempts: z.ZodDefault<z.ZodNumber>;
671
+ clawToken: z.ZodDefault<z.ZodString>;
672
+ agentUserId: z.ZodDefault<z.ZodString>;
673
+ sessions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
674
+ panels: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
675
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
676
+ mention: z.ZodDefault<z.ZodObject<{
677
+ requireInGroups: z.ZodDefault<z.ZodBoolean>;
678
+ }, "strip", z.ZodTypeAny, {
679
+ requireInGroups: boolean;
680
+ }, {
681
+ requireInGroups?: boolean | undefined;
682
+ }>>;
683
+ groups: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
684
+ requireMention: z.ZodDefault<z.ZodBoolean>;
685
+ }, "strip", z.ZodTypeAny, {
686
+ requireMention: boolean;
687
+ }, {
688
+ requireMention?: boolean | undefined;
689
+ }>>>;
690
+ replyDelayMode: z.ZodDefault<z.ZodString>;
691
+ replyDelayMs: z.ZodDefault<z.ZodNumber>;
692
+ }, "strip", z.ZodTypeAny, {
693
+ sessions: string[];
694
+ enabled: boolean;
695
+ allowFrom: string[];
696
+ baseUrl: string;
697
+ socketUrl: string;
698
+ socketPath: string;
699
+ socketDisableMsgpack: boolean;
700
+ socketReconnectDelayMs: number;
701
+ socketMaxReconnectDelayMs: number;
702
+ socketConnectTimeoutMs: number;
703
+ refreshIntervalMs: number;
704
+ watchTimeoutMs: number;
705
+ watchLimit: number;
706
+ retryDelayMs: number;
707
+ maxRetryAttempts: number;
708
+ clawToken: string;
709
+ agentUserId: string;
710
+ panels: string[];
711
+ mention: {
712
+ requireInGroups: boolean;
713
+ };
714
+ groups: Record<string, {
715
+ requireMention: boolean;
716
+ }>;
717
+ replyDelayMode: string;
718
+ replyDelayMs: number;
719
+ }, {
720
+ sessions?: string[] | undefined;
721
+ enabled?: boolean | undefined;
722
+ allowFrom?: string[] | undefined;
723
+ baseUrl?: string | undefined;
724
+ socketUrl?: string | undefined;
725
+ socketPath?: string | undefined;
726
+ socketDisableMsgpack?: boolean | undefined;
727
+ socketReconnectDelayMs?: number | undefined;
728
+ socketMaxReconnectDelayMs?: number | undefined;
729
+ socketConnectTimeoutMs?: number | undefined;
730
+ refreshIntervalMs?: number | undefined;
731
+ watchTimeoutMs?: number | undefined;
732
+ watchLimit?: number | undefined;
733
+ retryDelayMs?: number | undefined;
734
+ maxRetryAttempts?: number | undefined;
735
+ clawToken?: string | undefined;
736
+ agentUserId?: string | undefined;
737
+ panels?: string[] | undefined;
738
+ mention?: {
739
+ requireInGroups?: boolean | undefined;
740
+ } | undefined;
741
+ groups?: Record<string, {
742
+ requireMention?: boolean | undefined;
743
+ }> | undefined;
744
+ replyDelayMode?: string | undefined;
745
+ replyDelayMs?: number | undefined;
746
+ }>>;
747
+ dingtalk: z.ZodDefault<z.ZodObject<{
748
+ enabled: z.ZodDefault<z.ZodBoolean>;
749
+ clientId: z.ZodDefault<z.ZodString>;
750
+ clientSecret: z.ZodDefault<z.ZodString>;
751
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
752
+ }, "strip", z.ZodTypeAny, {
753
+ enabled: boolean;
754
+ allowFrom: string[];
755
+ clientId: string;
756
+ clientSecret: string;
757
+ }, {
758
+ enabled?: boolean | undefined;
759
+ allowFrom?: string[] | undefined;
760
+ clientId?: string | undefined;
761
+ clientSecret?: string | undefined;
762
+ }>>;
763
+ email: z.ZodDefault<z.ZodObject<{
764
+ enabled: z.ZodDefault<z.ZodBoolean>;
765
+ consentGranted: z.ZodDefault<z.ZodBoolean>;
766
+ imapHost: z.ZodDefault<z.ZodString>;
767
+ imapPort: z.ZodDefault<z.ZodNumber>;
768
+ imapUsername: z.ZodDefault<z.ZodString>;
769
+ imapPassword: z.ZodDefault<z.ZodString>;
770
+ imapMailbox: z.ZodDefault<z.ZodString>;
771
+ imapUseSsl: z.ZodDefault<z.ZodBoolean>;
772
+ smtpHost: z.ZodDefault<z.ZodString>;
773
+ smtpPort: z.ZodDefault<z.ZodNumber>;
774
+ smtpUsername: z.ZodDefault<z.ZodString>;
775
+ smtpPassword: z.ZodDefault<z.ZodString>;
776
+ smtpUseTls: z.ZodDefault<z.ZodBoolean>;
777
+ smtpUseSsl: z.ZodDefault<z.ZodBoolean>;
778
+ fromAddress: z.ZodDefault<z.ZodString>;
779
+ autoReplyEnabled: z.ZodDefault<z.ZodBoolean>;
780
+ pollIntervalSeconds: z.ZodDefault<z.ZodNumber>;
781
+ markSeen: z.ZodDefault<z.ZodBoolean>;
782
+ maxBodyChars: z.ZodDefault<z.ZodNumber>;
783
+ subjectPrefix: z.ZodDefault<z.ZodString>;
784
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
785
+ }, "strip", z.ZodTypeAny, {
786
+ enabled: boolean;
787
+ allowFrom: string[];
788
+ consentGranted: boolean;
789
+ imapHost: string;
790
+ imapPort: number;
791
+ imapUsername: string;
792
+ imapPassword: string;
793
+ imapMailbox: string;
794
+ imapUseSsl: boolean;
795
+ smtpHost: string;
796
+ smtpPort: number;
797
+ smtpUsername: string;
798
+ smtpPassword: string;
799
+ smtpUseTls: boolean;
800
+ smtpUseSsl: boolean;
801
+ fromAddress: string;
802
+ autoReplyEnabled: boolean;
803
+ pollIntervalSeconds: number;
804
+ markSeen: boolean;
805
+ maxBodyChars: number;
806
+ subjectPrefix: string;
807
+ }, {
808
+ enabled?: boolean | undefined;
809
+ allowFrom?: string[] | undefined;
810
+ consentGranted?: boolean | undefined;
811
+ imapHost?: string | undefined;
812
+ imapPort?: number | undefined;
813
+ imapUsername?: string | undefined;
814
+ imapPassword?: string | undefined;
815
+ imapMailbox?: string | undefined;
816
+ imapUseSsl?: boolean | undefined;
817
+ smtpHost?: string | undefined;
818
+ smtpPort?: number | undefined;
819
+ smtpUsername?: string | undefined;
820
+ smtpPassword?: string | undefined;
821
+ smtpUseTls?: boolean | undefined;
822
+ smtpUseSsl?: boolean | undefined;
823
+ fromAddress?: string | undefined;
824
+ autoReplyEnabled?: boolean | undefined;
825
+ pollIntervalSeconds?: number | undefined;
826
+ markSeen?: boolean | undefined;
827
+ maxBodyChars?: number | undefined;
828
+ subjectPrefix?: string | undefined;
829
+ }>>;
830
+ slack: z.ZodDefault<z.ZodObject<{
831
+ enabled: z.ZodDefault<z.ZodBoolean>;
832
+ mode: z.ZodDefault<z.ZodString>;
833
+ webhookPath: z.ZodDefault<z.ZodString>;
834
+ botToken: z.ZodDefault<z.ZodString>;
835
+ appToken: z.ZodDefault<z.ZodString>;
836
+ userTokenReadOnly: z.ZodDefault<z.ZodBoolean>;
837
+ groupPolicy: z.ZodDefault<z.ZodString>;
838
+ groupAllowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
839
+ dm: z.ZodDefault<z.ZodObject<{
840
+ enabled: z.ZodDefault<z.ZodBoolean>;
841
+ policy: z.ZodDefault<z.ZodString>;
842
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
843
+ }, "strip", z.ZodTypeAny, {
844
+ enabled: boolean;
845
+ allowFrom: string[];
846
+ policy: string;
847
+ }, {
848
+ enabled?: boolean | undefined;
849
+ allowFrom?: string[] | undefined;
850
+ policy?: string | undefined;
851
+ }>>;
852
+ }, "strip", z.ZodTypeAny, {
853
+ enabled: boolean;
854
+ mode: string;
855
+ webhookPath: string;
856
+ botToken: string;
857
+ appToken: string;
858
+ userTokenReadOnly: boolean;
859
+ groupPolicy: string;
860
+ groupAllowFrom: string[];
861
+ dm: {
862
+ enabled: boolean;
863
+ allowFrom: string[];
864
+ policy: string;
865
+ };
866
+ }, {
867
+ enabled?: boolean | undefined;
868
+ mode?: string | undefined;
869
+ webhookPath?: string | undefined;
870
+ botToken?: string | undefined;
871
+ appToken?: string | undefined;
872
+ userTokenReadOnly?: boolean | undefined;
873
+ groupPolicy?: string | undefined;
874
+ groupAllowFrom?: string[] | undefined;
875
+ dm?: {
876
+ enabled?: boolean | undefined;
877
+ allowFrom?: string[] | undefined;
878
+ policy?: string | undefined;
879
+ } | undefined;
880
+ }>>;
881
+ qq: z.ZodDefault<z.ZodObject<{
882
+ enabled: z.ZodDefault<z.ZodBoolean>;
883
+ appId: z.ZodDefault<z.ZodString>;
884
+ secret: z.ZodDefault<z.ZodString>;
885
+ markdownSupport: z.ZodDefault<z.ZodBoolean>;
886
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
887
+ }, "strip", z.ZodTypeAny, {
888
+ enabled: boolean;
889
+ allowFrom: string[];
890
+ appId: string;
891
+ secret: string;
892
+ markdownSupport: boolean;
893
+ }, {
894
+ enabled?: boolean | undefined;
895
+ allowFrom?: string[] | undefined;
896
+ appId?: string | undefined;
897
+ secret?: string | undefined;
898
+ markdownSupport?: boolean | undefined;
899
+ }>>;
900
+ }, "strip", z.ZodTypeAny, {
901
+ whatsapp: {
902
+ enabled: boolean;
903
+ bridgeUrl: string;
904
+ allowFrom: string[];
905
+ };
906
+ telegram: {
907
+ enabled: boolean;
908
+ allowFrom: string[];
909
+ token: string;
910
+ proxy: string | null;
911
+ };
912
+ discord: {
913
+ enabled: boolean;
914
+ allowFrom: string[];
915
+ token: string;
916
+ gatewayUrl: string;
917
+ intents: number;
918
+ };
919
+ feishu: {
920
+ enabled: boolean;
921
+ allowFrom: string[];
922
+ appId: string;
923
+ appSecret: string;
924
+ encryptKey: string;
925
+ verificationToken: string;
926
+ };
927
+ mochat: {
928
+ sessions: string[];
929
+ enabled: boolean;
930
+ allowFrom: string[];
931
+ baseUrl: string;
932
+ socketUrl: string;
933
+ socketPath: string;
934
+ socketDisableMsgpack: boolean;
935
+ socketReconnectDelayMs: number;
936
+ socketMaxReconnectDelayMs: number;
937
+ socketConnectTimeoutMs: number;
938
+ refreshIntervalMs: number;
939
+ watchTimeoutMs: number;
940
+ watchLimit: number;
941
+ retryDelayMs: number;
942
+ maxRetryAttempts: number;
943
+ clawToken: string;
944
+ agentUserId: string;
945
+ panels: string[];
946
+ mention: {
947
+ requireInGroups: boolean;
948
+ };
949
+ groups: Record<string, {
950
+ requireMention: boolean;
951
+ }>;
952
+ replyDelayMode: string;
953
+ replyDelayMs: number;
954
+ };
955
+ dingtalk: {
956
+ enabled: boolean;
957
+ allowFrom: string[];
958
+ clientId: string;
959
+ clientSecret: string;
960
+ };
961
+ email: {
962
+ enabled: boolean;
963
+ allowFrom: string[];
964
+ consentGranted: boolean;
965
+ imapHost: string;
966
+ imapPort: number;
967
+ imapUsername: string;
968
+ imapPassword: string;
969
+ imapMailbox: string;
970
+ imapUseSsl: boolean;
971
+ smtpHost: string;
972
+ smtpPort: number;
973
+ smtpUsername: string;
974
+ smtpPassword: string;
975
+ smtpUseTls: boolean;
976
+ smtpUseSsl: boolean;
977
+ fromAddress: string;
978
+ autoReplyEnabled: boolean;
979
+ pollIntervalSeconds: number;
980
+ markSeen: boolean;
981
+ maxBodyChars: number;
982
+ subjectPrefix: string;
983
+ };
984
+ slack: {
985
+ enabled: boolean;
986
+ mode: string;
987
+ webhookPath: string;
988
+ botToken: string;
989
+ appToken: string;
990
+ userTokenReadOnly: boolean;
991
+ groupPolicy: string;
992
+ groupAllowFrom: string[];
993
+ dm: {
994
+ enabled: boolean;
995
+ allowFrom: string[];
996
+ policy: string;
997
+ };
998
+ };
999
+ qq: {
1000
+ enabled: boolean;
1001
+ allowFrom: string[];
1002
+ appId: string;
1003
+ secret: string;
1004
+ markdownSupport: boolean;
1005
+ };
1006
+ }, {
1007
+ whatsapp?: {
1008
+ enabled?: boolean | undefined;
1009
+ bridgeUrl?: string | undefined;
1010
+ allowFrom?: string[] | undefined;
1011
+ } | undefined;
1012
+ telegram?: {
1013
+ enabled?: boolean | undefined;
1014
+ allowFrom?: string[] | undefined;
1015
+ token?: string | undefined;
1016
+ proxy?: string | null | undefined;
1017
+ } | undefined;
1018
+ discord?: {
1019
+ enabled?: boolean | undefined;
1020
+ allowFrom?: string[] | undefined;
1021
+ token?: string | undefined;
1022
+ gatewayUrl?: string | undefined;
1023
+ intents?: number | undefined;
1024
+ } | undefined;
1025
+ feishu?: {
1026
+ enabled?: boolean | undefined;
1027
+ allowFrom?: string[] | undefined;
1028
+ appId?: string | undefined;
1029
+ appSecret?: string | undefined;
1030
+ encryptKey?: string | undefined;
1031
+ verificationToken?: string | undefined;
1032
+ } | undefined;
1033
+ mochat?: {
1034
+ sessions?: string[] | undefined;
1035
+ enabled?: boolean | undefined;
1036
+ allowFrom?: string[] | undefined;
1037
+ baseUrl?: string | undefined;
1038
+ socketUrl?: string | undefined;
1039
+ socketPath?: string | undefined;
1040
+ socketDisableMsgpack?: boolean | undefined;
1041
+ socketReconnectDelayMs?: number | undefined;
1042
+ socketMaxReconnectDelayMs?: number | undefined;
1043
+ socketConnectTimeoutMs?: number | undefined;
1044
+ refreshIntervalMs?: number | undefined;
1045
+ watchTimeoutMs?: number | undefined;
1046
+ watchLimit?: number | undefined;
1047
+ retryDelayMs?: number | undefined;
1048
+ maxRetryAttempts?: number | undefined;
1049
+ clawToken?: string | undefined;
1050
+ agentUserId?: string | undefined;
1051
+ panels?: string[] | undefined;
1052
+ mention?: {
1053
+ requireInGroups?: boolean | undefined;
1054
+ } | undefined;
1055
+ groups?: Record<string, {
1056
+ requireMention?: boolean | undefined;
1057
+ }> | undefined;
1058
+ replyDelayMode?: string | undefined;
1059
+ replyDelayMs?: number | undefined;
1060
+ } | undefined;
1061
+ dingtalk?: {
1062
+ enabled?: boolean | undefined;
1063
+ allowFrom?: string[] | undefined;
1064
+ clientId?: string | undefined;
1065
+ clientSecret?: string | undefined;
1066
+ } | undefined;
1067
+ email?: {
1068
+ enabled?: boolean | undefined;
1069
+ allowFrom?: string[] | undefined;
1070
+ consentGranted?: boolean | undefined;
1071
+ imapHost?: string | undefined;
1072
+ imapPort?: number | undefined;
1073
+ imapUsername?: string | undefined;
1074
+ imapPassword?: string | undefined;
1075
+ imapMailbox?: string | undefined;
1076
+ imapUseSsl?: boolean | undefined;
1077
+ smtpHost?: string | undefined;
1078
+ smtpPort?: number | undefined;
1079
+ smtpUsername?: string | undefined;
1080
+ smtpPassword?: string | undefined;
1081
+ smtpUseTls?: boolean | undefined;
1082
+ smtpUseSsl?: boolean | undefined;
1083
+ fromAddress?: string | undefined;
1084
+ autoReplyEnabled?: boolean | undefined;
1085
+ pollIntervalSeconds?: number | undefined;
1086
+ markSeen?: boolean | undefined;
1087
+ maxBodyChars?: number | undefined;
1088
+ subjectPrefix?: string | undefined;
1089
+ } | undefined;
1090
+ slack?: {
1091
+ enabled?: boolean | undefined;
1092
+ mode?: string | undefined;
1093
+ webhookPath?: string | undefined;
1094
+ botToken?: string | undefined;
1095
+ appToken?: string | undefined;
1096
+ userTokenReadOnly?: boolean | undefined;
1097
+ groupPolicy?: string | undefined;
1098
+ groupAllowFrom?: string[] | undefined;
1099
+ dm?: {
1100
+ enabled?: boolean | undefined;
1101
+ allowFrom?: string[] | undefined;
1102
+ policy?: string | undefined;
1103
+ } | undefined;
1104
+ } | undefined;
1105
+ qq?: {
1106
+ enabled?: boolean | undefined;
1107
+ allowFrom?: string[] | undefined;
1108
+ appId?: string | undefined;
1109
+ secret?: string | undefined;
1110
+ markdownSupport?: boolean | undefined;
1111
+ } | undefined;
1112
+ }>;
1113
+ declare const AgentDefaultsSchema: z.ZodObject<{
1114
+ workspace: z.ZodDefault<z.ZodString>;
1115
+ model: z.ZodDefault<z.ZodString>;
1116
+ maxTokens: z.ZodDefault<z.ZodNumber>;
1117
+ temperature: z.ZodDefault<z.ZodNumber>;
1118
+ maxToolIterations: z.ZodDefault<z.ZodNumber>;
1119
+ }, "strip", z.ZodTypeAny, {
1120
+ workspace: string;
1121
+ temperature: number;
1122
+ model: string;
1123
+ maxTokens: number;
1124
+ maxToolIterations: number;
1125
+ }, {
1126
+ workspace?: string | undefined;
1127
+ temperature?: number | undefined;
1128
+ model?: string | undefined;
1129
+ maxTokens?: number | undefined;
1130
+ maxToolIterations?: number | undefined;
1131
+ }>;
1132
+ declare const ContextBootstrapSchema: z.ZodObject<{
1133
+ files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1134
+ minimalFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1135
+ heartbeatFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1136
+ perFileChars: z.ZodDefault<z.ZodNumber>;
1137
+ totalChars: z.ZodDefault<z.ZodNumber>;
1138
+ }, "strip", z.ZodTypeAny, {
1139
+ files: string[];
1140
+ minimalFiles: string[];
1141
+ heartbeatFiles: string[];
1142
+ perFileChars: number;
1143
+ totalChars: number;
1144
+ }, {
1145
+ files?: string[] | undefined;
1146
+ minimalFiles?: string[] | undefined;
1147
+ heartbeatFiles?: string[] | undefined;
1148
+ perFileChars?: number | undefined;
1149
+ totalChars?: number | undefined;
1150
+ }>;
1151
+ declare const ContextMemorySchema: z.ZodObject<{
1152
+ enabled: z.ZodDefault<z.ZodBoolean>;
1153
+ maxChars: z.ZodDefault<z.ZodNumber>;
1154
+ }, "strip", z.ZodTypeAny, {
1155
+ enabled: boolean;
1156
+ maxChars: number;
1157
+ }, {
1158
+ enabled?: boolean | undefined;
1159
+ maxChars?: number | undefined;
1160
+ }>;
1161
+ declare const ContextConfigSchema: z.ZodObject<{
1162
+ bootstrap: z.ZodDefault<z.ZodObject<{
1163
+ files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1164
+ minimalFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1165
+ heartbeatFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1166
+ perFileChars: z.ZodDefault<z.ZodNumber>;
1167
+ totalChars: z.ZodDefault<z.ZodNumber>;
1168
+ }, "strip", z.ZodTypeAny, {
1169
+ files: string[];
1170
+ minimalFiles: string[];
1171
+ heartbeatFiles: string[];
1172
+ perFileChars: number;
1173
+ totalChars: number;
1174
+ }, {
1175
+ files?: string[] | undefined;
1176
+ minimalFiles?: string[] | undefined;
1177
+ heartbeatFiles?: string[] | undefined;
1178
+ perFileChars?: number | undefined;
1179
+ totalChars?: number | undefined;
1180
+ }>>;
1181
+ memory: z.ZodDefault<z.ZodObject<{
1182
+ enabled: z.ZodDefault<z.ZodBoolean>;
1183
+ maxChars: z.ZodDefault<z.ZodNumber>;
1184
+ }, "strip", z.ZodTypeAny, {
1185
+ enabled: boolean;
1186
+ maxChars: number;
1187
+ }, {
1188
+ enabled?: boolean | undefined;
1189
+ maxChars?: number | undefined;
1190
+ }>>;
1191
+ }, "strip", z.ZodTypeAny, {
1192
+ memory: {
1193
+ enabled: boolean;
1194
+ maxChars: number;
1195
+ };
1196
+ bootstrap: {
1197
+ files: string[];
1198
+ minimalFiles: string[];
1199
+ heartbeatFiles: string[];
1200
+ perFileChars: number;
1201
+ totalChars: number;
1202
+ };
1203
+ }, {
1204
+ memory?: {
1205
+ enabled?: boolean | undefined;
1206
+ maxChars?: number | undefined;
1207
+ } | undefined;
1208
+ bootstrap?: {
1209
+ files?: string[] | undefined;
1210
+ minimalFiles?: string[] | undefined;
1211
+ heartbeatFiles?: string[] | undefined;
1212
+ perFileChars?: number | undefined;
1213
+ totalChars?: number | undefined;
1214
+ } | undefined;
1215
+ }>;
1216
+ declare const AgentsConfigSchema: z.ZodObject<{
1217
+ defaults: z.ZodDefault<z.ZodObject<{
1218
+ workspace: z.ZodDefault<z.ZodString>;
1219
+ model: z.ZodDefault<z.ZodString>;
1220
+ maxTokens: z.ZodDefault<z.ZodNumber>;
1221
+ temperature: z.ZodDefault<z.ZodNumber>;
1222
+ maxToolIterations: z.ZodDefault<z.ZodNumber>;
1223
+ }, "strip", z.ZodTypeAny, {
1224
+ workspace: string;
1225
+ temperature: number;
1226
+ model: string;
1227
+ maxTokens: number;
1228
+ maxToolIterations: number;
1229
+ }, {
1230
+ workspace?: string | undefined;
1231
+ temperature?: number | undefined;
1232
+ model?: string | undefined;
1233
+ maxTokens?: number | undefined;
1234
+ maxToolIterations?: number | undefined;
1235
+ }>>;
1236
+ context: z.ZodDefault<z.ZodObject<{
1237
+ bootstrap: z.ZodDefault<z.ZodObject<{
1238
+ files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1239
+ minimalFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1240
+ heartbeatFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1241
+ perFileChars: z.ZodDefault<z.ZodNumber>;
1242
+ totalChars: z.ZodDefault<z.ZodNumber>;
1243
+ }, "strip", z.ZodTypeAny, {
1244
+ files: string[];
1245
+ minimalFiles: string[];
1246
+ heartbeatFiles: string[];
1247
+ perFileChars: number;
1248
+ totalChars: number;
1249
+ }, {
1250
+ files?: string[] | undefined;
1251
+ minimalFiles?: string[] | undefined;
1252
+ heartbeatFiles?: string[] | undefined;
1253
+ perFileChars?: number | undefined;
1254
+ totalChars?: number | undefined;
1255
+ }>>;
1256
+ memory: z.ZodDefault<z.ZodObject<{
1257
+ enabled: z.ZodDefault<z.ZodBoolean>;
1258
+ maxChars: z.ZodDefault<z.ZodNumber>;
1259
+ }, "strip", z.ZodTypeAny, {
1260
+ enabled: boolean;
1261
+ maxChars: number;
1262
+ }, {
1263
+ enabled?: boolean | undefined;
1264
+ maxChars?: number | undefined;
1265
+ }>>;
1266
+ }, "strip", z.ZodTypeAny, {
1267
+ memory: {
1268
+ enabled: boolean;
1269
+ maxChars: number;
1270
+ };
1271
+ bootstrap: {
1272
+ files: string[];
1273
+ minimalFiles: string[];
1274
+ heartbeatFiles: string[];
1275
+ perFileChars: number;
1276
+ totalChars: number;
1277
+ };
1278
+ }, {
1279
+ memory?: {
1280
+ enabled?: boolean | undefined;
1281
+ maxChars?: number | undefined;
1282
+ } | undefined;
1283
+ bootstrap?: {
1284
+ files?: string[] | undefined;
1285
+ minimalFiles?: string[] | undefined;
1286
+ heartbeatFiles?: string[] | undefined;
1287
+ perFileChars?: number | undefined;
1288
+ totalChars?: number | undefined;
1289
+ } | undefined;
1290
+ }>>;
1291
+ }, "strip", z.ZodTypeAny, {
1292
+ defaults: {
1293
+ workspace: string;
1294
+ temperature: number;
1295
+ model: string;
1296
+ maxTokens: number;
1297
+ maxToolIterations: number;
1298
+ };
1299
+ context: {
1300
+ memory: {
1301
+ enabled: boolean;
1302
+ maxChars: number;
1303
+ };
1304
+ bootstrap: {
1305
+ files: string[];
1306
+ minimalFiles: string[];
1307
+ heartbeatFiles: string[];
1308
+ perFileChars: number;
1309
+ totalChars: number;
1310
+ };
1311
+ };
1312
+ }, {
1313
+ defaults?: {
1314
+ workspace?: string | undefined;
1315
+ temperature?: number | undefined;
1316
+ model?: string | undefined;
1317
+ maxTokens?: number | undefined;
1318
+ maxToolIterations?: number | undefined;
1319
+ } | undefined;
1320
+ context?: {
1321
+ memory?: {
1322
+ enabled?: boolean | undefined;
1323
+ maxChars?: number | undefined;
1324
+ } | undefined;
1325
+ bootstrap?: {
1326
+ files?: string[] | undefined;
1327
+ minimalFiles?: string[] | undefined;
1328
+ heartbeatFiles?: string[] | undefined;
1329
+ perFileChars?: number | undefined;
1330
+ totalChars?: number | undefined;
1331
+ } | undefined;
1332
+ } | undefined;
1333
+ }>;
1334
+ declare const ProviderConfigSchema: z.ZodObject<{
1335
+ apiKey: z.ZodDefault<z.ZodString>;
1336
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1337
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1338
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1339
+ }, "strip", z.ZodTypeAny, {
1340
+ apiKey: string;
1341
+ apiBase: string | null;
1342
+ extraHeaders: Record<string, string> | null;
1343
+ wireApi: "auto" | "chat" | "responses";
1344
+ }, {
1345
+ apiKey?: string | undefined;
1346
+ apiBase?: string | null | undefined;
1347
+ extraHeaders?: Record<string, string> | null | undefined;
1348
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1349
+ }>;
1350
+ declare const ProvidersConfigSchema: z.ZodObject<{
1351
+ anthropic: z.ZodDefault<z.ZodObject<{
1352
+ apiKey: z.ZodDefault<z.ZodString>;
1353
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1354
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1355
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1356
+ }, "strip", z.ZodTypeAny, {
1357
+ apiKey: string;
1358
+ apiBase: string | null;
1359
+ extraHeaders: Record<string, string> | null;
1360
+ wireApi: "auto" | "chat" | "responses";
1361
+ }, {
1362
+ apiKey?: string | undefined;
1363
+ apiBase?: string | null | undefined;
1364
+ extraHeaders?: Record<string, string> | null | undefined;
1365
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1366
+ }>>;
1367
+ openai: z.ZodDefault<z.ZodObject<{
1368
+ apiKey: z.ZodDefault<z.ZodString>;
1369
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1370
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1371
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1372
+ }, "strip", z.ZodTypeAny, {
1373
+ apiKey: string;
1374
+ apiBase: string | null;
1375
+ extraHeaders: Record<string, string> | null;
1376
+ wireApi: "auto" | "chat" | "responses";
1377
+ }, {
1378
+ apiKey?: string | undefined;
1379
+ apiBase?: string | null | undefined;
1380
+ extraHeaders?: Record<string, string> | null | undefined;
1381
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1382
+ }>>;
1383
+ openrouter: z.ZodDefault<z.ZodObject<{
1384
+ apiKey: z.ZodDefault<z.ZodString>;
1385
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1386
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1387
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1388
+ }, "strip", z.ZodTypeAny, {
1389
+ apiKey: string;
1390
+ apiBase: string | null;
1391
+ extraHeaders: Record<string, string> | null;
1392
+ wireApi: "auto" | "chat" | "responses";
1393
+ }, {
1394
+ apiKey?: string | undefined;
1395
+ apiBase?: string | null | undefined;
1396
+ extraHeaders?: Record<string, string> | null | undefined;
1397
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1398
+ }>>;
1399
+ deepseek: z.ZodDefault<z.ZodObject<{
1400
+ apiKey: z.ZodDefault<z.ZodString>;
1401
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1402
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1403
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1404
+ }, "strip", z.ZodTypeAny, {
1405
+ apiKey: string;
1406
+ apiBase: string | null;
1407
+ extraHeaders: Record<string, string> | null;
1408
+ wireApi: "auto" | "chat" | "responses";
1409
+ }, {
1410
+ apiKey?: string | undefined;
1411
+ apiBase?: string | null | undefined;
1412
+ extraHeaders?: Record<string, string> | null | undefined;
1413
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1414
+ }>>;
1415
+ groq: z.ZodDefault<z.ZodObject<{
1416
+ apiKey: z.ZodDefault<z.ZodString>;
1417
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1418
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1419
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1420
+ }, "strip", z.ZodTypeAny, {
1421
+ apiKey: string;
1422
+ apiBase: string | null;
1423
+ extraHeaders: Record<string, string> | null;
1424
+ wireApi: "auto" | "chat" | "responses";
1425
+ }, {
1426
+ apiKey?: string | undefined;
1427
+ apiBase?: string | null | undefined;
1428
+ extraHeaders?: Record<string, string> | null | undefined;
1429
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1430
+ }>>;
1431
+ zhipu: z.ZodDefault<z.ZodObject<{
1432
+ apiKey: z.ZodDefault<z.ZodString>;
1433
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1434
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1435
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1436
+ }, "strip", z.ZodTypeAny, {
1437
+ apiKey: string;
1438
+ apiBase: string | null;
1439
+ extraHeaders: Record<string, string> | null;
1440
+ wireApi: "auto" | "chat" | "responses";
1441
+ }, {
1442
+ apiKey?: string | undefined;
1443
+ apiBase?: string | null | undefined;
1444
+ extraHeaders?: Record<string, string> | null | undefined;
1445
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1446
+ }>>;
1447
+ dashscope: z.ZodDefault<z.ZodObject<{
1448
+ apiKey: z.ZodDefault<z.ZodString>;
1449
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1450
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1451
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1452
+ }, "strip", z.ZodTypeAny, {
1453
+ apiKey: string;
1454
+ apiBase: string | null;
1455
+ extraHeaders: Record<string, string> | null;
1456
+ wireApi: "auto" | "chat" | "responses";
1457
+ }, {
1458
+ apiKey?: string | undefined;
1459
+ apiBase?: string | null | undefined;
1460
+ extraHeaders?: Record<string, string> | null | undefined;
1461
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1462
+ }>>;
1463
+ vllm: z.ZodDefault<z.ZodObject<{
1464
+ apiKey: z.ZodDefault<z.ZodString>;
1465
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1466
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1467
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1468
+ }, "strip", z.ZodTypeAny, {
1469
+ apiKey: string;
1470
+ apiBase: string | null;
1471
+ extraHeaders: Record<string, string> | null;
1472
+ wireApi: "auto" | "chat" | "responses";
1473
+ }, {
1474
+ apiKey?: string | undefined;
1475
+ apiBase?: string | null | undefined;
1476
+ extraHeaders?: Record<string, string> | null | undefined;
1477
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1478
+ }>>;
1479
+ gemini: z.ZodDefault<z.ZodObject<{
1480
+ apiKey: z.ZodDefault<z.ZodString>;
1481
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1482
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1483
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1484
+ }, "strip", z.ZodTypeAny, {
1485
+ apiKey: string;
1486
+ apiBase: string | null;
1487
+ extraHeaders: Record<string, string> | null;
1488
+ wireApi: "auto" | "chat" | "responses";
1489
+ }, {
1490
+ apiKey?: string | undefined;
1491
+ apiBase?: string | null | undefined;
1492
+ extraHeaders?: Record<string, string> | null | undefined;
1493
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1494
+ }>>;
1495
+ moonshot: z.ZodDefault<z.ZodObject<{
1496
+ apiKey: z.ZodDefault<z.ZodString>;
1497
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1498
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1499
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1500
+ }, "strip", z.ZodTypeAny, {
1501
+ apiKey: string;
1502
+ apiBase: string | null;
1503
+ extraHeaders: Record<string, string> | null;
1504
+ wireApi: "auto" | "chat" | "responses";
1505
+ }, {
1506
+ apiKey?: string | undefined;
1507
+ apiBase?: string | null | undefined;
1508
+ extraHeaders?: Record<string, string> | null | undefined;
1509
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1510
+ }>>;
1511
+ minimax: z.ZodDefault<z.ZodObject<{
1512
+ apiKey: z.ZodDefault<z.ZodString>;
1513
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1514
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1515
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1516
+ }, "strip", z.ZodTypeAny, {
1517
+ apiKey: string;
1518
+ apiBase: string | null;
1519
+ extraHeaders: Record<string, string> | null;
1520
+ wireApi: "auto" | "chat" | "responses";
1521
+ }, {
1522
+ apiKey?: string | undefined;
1523
+ apiBase?: string | null | undefined;
1524
+ extraHeaders?: Record<string, string> | null | undefined;
1525
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1526
+ }>>;
1527
+ aihubmix: z.ZodDefault<z.ZodObject<{
1528
+ apiKey: z.ZodDefault<z.ZodString>;
1529
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1530
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
1531
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
1532
+ }, "strip", z.ZodTypeAny, {
1533
+ apiKey: string;
1534
+ apiBase: string | null;
1535
+ extraHeaders: Record<string, string> | null;
1536
+ wireApi: "auto" | "chat" | "responses";
1537
+ }, {
1538
+ apiKey?: string | undefined;
1539
+ apiBase?: string | null | undefined;
1540
+ extraHeaders?: Record<string, string> | null | undefined;
1541
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1542
+ }>>;
1543
+ }, "strip", z.ZodTypeAny, {
1544
+ openrouter: {
1545
+ apiKey: string;
1546
+ apiBase: string | null;
1547
+ extraHeaders: Record<string, string> | null;
1548
+ wireApi: "auto" | "chat" | "responses";
1549
+ };
1550
+ aihubmix: {
1551
+ apiKey: string;
1552
+ apiBase: string | null;
1553
+ extraHeaders: Record<string, string> | null;
1554
+ wireApi: "auto" | "chat" | "responses";
1555
+ };
1556
+ openai: {
1557
+ apiKey: string;
1558
+ apiBase: string | null;
1559
+ extraHeaders: Record<string, string> | null;
1560
+ wireApi: "auto" | "chat" | "responses";
1561
+ };
1562
+ anthropic: {
1563
+ apiKey: string;
1564
+ apiBase: string | null;
1565
+ extraHeaders: Record<string, string> | null;
1566
+ wireApi: "auto" | "chat" | "responses";
1567
+ };
1568
+ deepseek: {
1569
+ apiKey: string;
1570
+ apiBase: string | null;
1571
+ extraHeaders: Record<string, string> | null;
1572
+ wireApi: "auto" | "chat" | "responses";
1573
+ };
1574
+ gemini: {
1575
+ apiKey: string;
1576
+ apiBase: string | null;
1577
+ extraHeaders: Record<string, string> | null;
1578
+ wireApi: "auto" | "chat" | "responses";
1579
+ };
1580
+ zhipu: {
1581
+ apiKey: string;
1582
+ apiBase: string | null;
1583
+ extraHeaders: Record<string, string> | null;
1584
+ wireApi: "auto" | "chat" | "responses";
1585
+ };
1586
+ dashscope: {
1587
+ apiKey: string;
1588
+ apiBase: string | null;
1589
+ extraHeaders: Record<string, string> | null;
1590
+ wireApi: "auto" | "chat" | "responses";
1591
+ };
1592
+ moonshot: {
1593
+ apiKey: string;
1594
+ apiBase: string | null;
1595
+ extraHeaders: Record<string, string> | null;
1596
+ wireApi: "auto" | "chat" | "responses";
1597
+ };
1598
+ minimax: {
1599
+ apiKey: string;
1600
+ apiBase: string | null;
1601
+ extraHeaders: Record<string, string> | null;
1602
+ wireApi: "auto" | "chat" | "responses";
1603
+ };
1604
+ vllm: {
1605
+ apiKey: string;
1606
+ apiBase: string | null;
1607
+ extraHeaders: Record<string, string> | null;
1608
+ wireApi: "auto" | "chat" | "responses";
1609
+ };
1610
+ groq: {
1611
+ apiKey: string;
1612
+ apiBase: string | null;
1613
+ extraHeaders: Record<string, string> | null;
1614
+ wireApi: "auto" | "chat" | "responses";
1615
+ };
1616
+ }, {
1617
+ openrouter?: {
1618
+ apiKey?: string | undefined;
1619
+ apiBase?: string | null | undefined;
1620
+ extraHeaders?: Record<string, string> | null | undefined;
1621
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1622
+ } | undefined;
1623
+ aihubmix?: {
1624
+ apiKey?: string | undefined;
1625
+ apiBase?: string | null | undefined;
1626
+ extraHeaders?: Record<string, string> | null | undefined;
1627
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1628
+ } | undefined;
1629
+ openai?: {
1630
+ apiKey?: string | undefined;
1631
+ apiBase?: string | null | undefined;
1632
+ extraHeaders?: Record<string, string> | null | undefined;
1633
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1634
+ } | undefined;
1635
+ anthropic?: {
1636
+ apiKey?: string | undefined;
1637
+ apiBase?: string | null | undefined;
1638
+ extraHeaders?: Record<string, string> | null | undefined;
1639
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1640
+ } | undefined;
1641
+ deepseek?: {
1642
+ apiKey?: string | undefined;
1643
+ apiBase?: string | null | undefined;
1644
+ extraHeaders?: Record<string, string> | null | undefined;
1645
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1646
+ } | undefined;
1647
+ gemini?: {
1648
+ apiKey?: string | undefined;
1649
+ apiBase?: string | null | undefined;
1650
+ extraHeaders?: Record<string, string> | null | undefined;
1651
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1652
+ } | undefined;
1653
+ zhipu?: {
1654
+ apiKey?: string | undefined;
1655
+ apiBase?: string | null | undefined;
1656
+ extraHeaders?: Record<string, string> | null | undefined;
1657
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1658
+ } | undefined;
1659
+ dashscope?: {
1660
+ apiKey?: string | undefined;
1661
+ apiBase?: string | null | undefined;
1662
+ extraHeaders?: Record<string, string> | null | undefined;
1663
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1664
+ } | undefined;
1665
+ moonshot?: {
1666
+ apiKey?: string | undefined;
1667
+ apiBase?: string | null | undefined;
1668
+ extraHeaders?: Record<string, string> | null | undefined;
1669
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1670
+ } | undefined;
1671
+ minimax?: {
1672
+ apiKey?: string | undefined;
1673
+ apiBase?: string | null | undefined;
1674
+ extraHeaders?: Record<string, string> | null | undefined;
1675
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1676
+ } | undefined;
1677
+ vllm?: {
1678
+ apiKey?: string | undefined;
1679
+ apiBase?: string | null | undefined;
1680
+ extraHeaders?: Record<string, string> | null | undefined;
1681
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1682
+ } | undefined;
1683
+ groq?: {
1684
+ apiKey?: string | undefined;
1685
+ apiBase?: string | null | undefined;
1686
+ extraHeaders?: Record<string, string> | null | undefined;
1687
+ wireApi?: "auto" | "chat" | "responses" | undefined;
1688
+ } | undefined;
1689
+ }>;
1690
+ declare const PluginEntrySchema: z.ZodObject<{
1691
+ enabled: z.ZodOptional<z.ZodBoolean>;
1692
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1693
+ }, "strip", z.ZodTypeAny, {
1694
+ enabled?: boolean | undefined;
1695
+ config?: Record<string, unknown> | undefined;
1696
+ }, {
1697
+ enabled?: boolean | undefined;
1698
+ config?: Record<string, unknown> | undefined;
1699
+ }>;
1700
+ declare const PluginsLoadSchema: z.ZodObject<{
1701
+ paths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1702
+ }, "strip", z.ZodTypeAny, {
1703
+ paths?: string[] | undefined;
1704
+ }, {
1705
+ paths?: string[] | undefined;
1706
+ }>;
1707
+ declare const PluginInstallRecordSchema: z.ZodObject<{
1708
+ source: z.ZodEnum<["npm", "archive", "path"]>;
1709
+ spec: z.ZodOptional<z.ZodString>;
1710
+ sourcePath: z.ZodOptional<z.ZodString>;
1711
+ installPath: z.ZodOptional<z.ZodString>;
1712
+ version: z.ZodOptional<z.ZodString>;
1713
+ installedAt: z.ZodOptional<z.ZodString>;
1714
+ }, "strip", z.ZodTypeAny, {
1715
+ source: "path" | "npm" | "archive";
1716
+ spec?: string | undefined;
1717
+ sourcePath?: string | undefined;
1718
+ installPath?: string | undefined;
1719
+ version?: string | undefined;
1720
+ installedAt?: string | undefined;
1721
+ }, {
1722
+ source: "path" | "npm" | "archive";
1723
+ spec?: string | undefined;
1724
+ sourcePath?: string | undefined;
1725
+ installPath?: string | undefined;
1726
+ version?: string | undefined;
1727
+ installedAt?: string | undefined;
1728
+ }>;
1729
+ declare const PluginsConfigSchema: z.ZodObject<{
1730
+ enabled: z.ZodOptional<z.ZodBoolean>;
1731
+ allow: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1732
+ deny: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1733
+ load: z.ZodOptional<z.ZodObject<{
1734
+ paths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1735
+ }, "strip", z.ZodTypeAny, {
1736
+ paths?: string[] | undefined;
1737
+ }, {
1738
+ paths?: string[] | undefined;
1739
+ }>>;
1740
+ entries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1741
+ enabled: z.ZodOptional<z.ZodBoolean>;
1742
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1743
+ }, "strip", z.ZodTypeAny, {
1744
+ enabled?: boolean | undefined;
1745
+ config?: Record<string, unknown> | undefined;
1746
+ }, {
1747
+ enabled?: boolean | undefined;
1748
+ config?: Record<string, unknown> | undefined;
1749
+ }>>>;
1750
+ installs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1751
+ source: z.ZodEnum<["npm", "archive", "path"]>;
1752
+ spec: z.ZodOptional<z.ZodString>;
1753
+ sourcePath: z.ZodOptional<z.ZodString>;
1754
+ installPath: z.ZodOptional<z.ZodString>;
1755
+ version: z.ZodOptional<z.ZodString>;
1756
+ installedAt: z.ZodOptional<z.ZodString>;
1757
+ }, "strip", z.ZodTypeAny, {
1758
+ source: "path" | "npm" | "archive";
1759
+ spec?: string | undefined;
1760
+ sourcePath?: string | undefined;
1761
+ installPath?: string | undefined;
1762
+ version?: string | undefined;
1763
+ installedAt?: string | undefined;
1764
+ }, {
1765
+ source: "path" | "npm" | "archive";
1766
+ spec?: string | undefined;
1767
+ sourcePath?: string | undefined;
1768
+ installPath?: string | undefined;
1769
+ version?: string | undefined;
1770
+ installedAt?: string | undefined;
1771
+ }>>>;
1772
+ }, "strip", z.ZodTypeAny, {
1773
+ entries?: Record<string, {
1774
+ enabled?: boolean | undefined;
1775
+ config?: Record<string, unknown> | undefined;
1776
+ }> | undefined;
1777
+ enabled?: boolean | undefined;
1778
+ allow?: string[] | undefined;
1779
+ deny?: string[] | undefined;
1780
+ load?: {
1781
+ paths?: string[] | undefined;
1782
+ } | undefined;
1783
+ installs?: Record<string, {
1784
+ source: "path" | "npm" | "archive";
1785
+ spec?: string | undefined;
1786
+ sourcePath?: string | undefined;
1787
+ installPath?: string | undefined;
1788
+ version?: string | undefined;
1789
+ installedAt?: string | undefined;
1790
+ }> | undefined;
1791
+ }, {
1792
+ entries?: Record<string, {
1793
+ enabled?: boolean | undefined;
1794
+ config?: Record<string, unknown> | undefined;
1795
+ }> | undefined;
1796
+ enabled?: boolean | undefined;
1797
+ allow?: string[] | undefined;
1798
+ deny?: string[] | undefined;
1799
+ load?: {
1800
+ paths?: string[] | undefined;
1801
+ } | undefined;
1802
+ installs?: Record<string, {
1803
+ source: "path" | "npm" | "archive";
1804
+ spec?: string | undefined;
1805
+ sourcePath?: string | undefined;
1806
+ installPath?: string | undefined;
1807
+ version?: string | undefined;
1808
+ installedAt?: string | undefined;
1809
+ }> | undefined;
1810
+ }>;
1811
+ declare const GatewayConfigSchema: z.ZodObject<{
1812
+ host: z.ZodDefault<z.ZodString>;
1813
+ port: z.ZodDefault<z.ZodNumber>;
1814
+ }, "strip", z.ZodTypeAny, {
1815
+ host: string;
1816
+ port: number;
1817
+ }, {
1818
+ host?: string | undefined;
1819
+ port?: number | undefined;
1820
+ }>;
1821
+ declare const UiConfigSchema: z.ZodObject<{
1822
+ enabled: z.ZodDefault<z.ZodBoolean>;
1823
+ host: z.ZodDefault<z.ZodString>;
1824
+ port: z.ZodDefault<z.ZodNumber>;
1825
+ open: z.ZodDefault<z.ZodBoolean>;
1826
+ }, "strip", z.ZodTypeAny, {
1827
+ enabled: boolean;
1828
+ open: boolean;
1829
+ host: string;
1830
+ port: number;
1831
+ }, {
1832
+ enabled?: boolean | undefined;
1833
+ open?: boolean | undefined;
1834
+ host?: string | undefined;
1835
+ port?: number | undefined;
1836
+ }>;
1837
+ declare const WebSearchConfigSchema: z.ZodObject<{
1838
+ apiKey: z.ZodDefault<z.ZodString>;
1839
+ maxResults: z.ZodDefault<z.ZodNumber>;
1840
+ }, "strip", z.ZodTypeAny, {
1841
+ apiKey: string;
1842
+ maxResults: number;
1843
+ }, {
1844
+ apiKey?: string | undefined;
1845
+ maxResults?: number | undefined;
1846
+ }>;
1847
+ declare const WebToolsConfigSchema: z.ZodObject<{
1848
+ search: z.ZodDefault<z.ZodObject<{
1849
+ apiKey: z.ZodDefault<z.ZodString>;
1850
+ maxResults: z.ZodDefault<z.ZodNumber>;
1851
+ }, "strip", z.ZodTypeAny, {
1852
+ apiKey: string;
1853
+ maxResults: number;
1854
+ }, {
1855
+ apiKey?: string | undefined;
1856
+ maxResults?: number | undefined;
1857
+ }>>;
1858
+ }, "strip", z.ZodTypeAny, {
1859
+ search: {
1860
+ apiKey: string;
1861
+ maxResults: number;
1862
+ };
1863
+ }, {
1864
+ search?: {
1865
+ apiKey?: string | undefined;
1866
+ maxResults?: number | undefined;
1867
+ } | undefined;
1868
+ }>;
1869
+ declare const ExecToolConfigSchema: z.ZodObject<{
1870
+ timeout: z.ZodDefault<z.ZodNumber>;
1871
+ }, "strip", z.ZodTypeAny, {
1872
+ timeout: number;
1873
+ }, {
1874
+ timeout?: number | undefined;
1875
+ }>;
1876
+ declare const ToolsConfigSchema: z.ZodObject<{
1877
+ web: z.ZodDefault<z.ZodObject<{
1878
+ search: z.ZodDefault<z.ZodObject<{
1879
+ apiKey: z.ZodDefault<z.ZodString>;
1880
+ maxResults: z.ZodDefault<z.ZodNumber>;
1881
+ }, "strip", z.ZodTypeAny, {
1882
+ apiKey: string;
1883
+ maxResults: number;
1884
+ }, {
1885
+ apiKey?: string | undefined;
1886
+ maxResults?: number | undefined;
1887
+ }>>;
1888
+ }, "strip", z.ZodTypeAny, {
1889
+ search: {
1890
+ apiKey: string;
1891
+ maxResults: number;
1892
+ };
1893
+ }, {
1894
+ search?: {
1895
+ apiKey?: string | undefined;
1896
+ maxResults?: number | undefined;
1897
+ } | undefined;
1898
+ }>>;
1899
+ exec: z.ZodDefault<z.ZodObject<{
1900
+ timeout: z.ZodDefault<z.ZodNumber>;
1901
+ }, "strip", z.ZodTypeAny, {
1902
+ timeout: number;
1903
+ }, {
1904
+ timeout?: number | undefined;
1905
+ }>>;
1906
+ restrictToWorkspace: z.ZodDefault<z.ZodBoolean>;
1907
+ }, "strip", z.ZodTypeAny, {
1908
+ web: {
1909
+ search: {
1910
+ apiKey: string;
1911
+ maxResults: number;
1912
+ };
1913
+ };
1914
+ exec: {
1915
+ timeout: number;
1916
+ };
1917
+ restrictToWorkspace: boolean;
1918
+ }, {
1919
+ web?: {
1920
+ search?: {
1921
+ apiKey?: string | undefined;
1922
+ maxResults?: number | undefined;
1923
+ } | undefined;
1924
+ } | undefined;
1925
+ exec?: {
1926
+ timeout?: number | undefined;
1927
+ } | undefined;
1928
+ restrictToWorkspace?: boolean | undefined;
1929
+ }>;
1930
+ declare const ConfigSchema: z.ZodObject<{
1931
+ agents: z.ZodDefault<z.ZodObject<{
1932
+ defaults: z.ZodDefault<z.ZodObject<{
1933
+ workspace: z.ZodDefault<z.ZodString>;
1934
+ model: z.ZodDefault<z.ZodString>;
1935
+ maxTokens: z.ZodDefault<z.ZodNumber>;
1936
+ temperature: z.ZodDefault<z.ZodNumber>;
1937
+ maxToolIterations: z.ZodDefault<z.ZodNumber>;
1938
+ }, "strip", z.ZodTypeAny, {
1939
+ workspace: string;
1940
+ temperature: number;
1941
+ model: string;
1942
+ maxTokens: number;
1943
+ maxToolIterations: number;
1944
+ }, {
1945
+ workspace?: string | undefined;
1946
+ temperature?: number | undefined;
1947
+ model?: string | undefined;
1948
+ maxTokens?: number | undefined;
1949
+ maxToolIterations?: number | undefined;
1950
+ }>>;
1951
+ context: z.ZodDefault<z.ZodObject<{
1952
+ bootstrap: z.ZodDefault<z.ZodObject<{
1953
+ files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1954
+ minimalFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1955
+ heartbeatFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1956
+ perFileChars: z.ZodDefault<z.ZodNumber>;
1957
+ totalChars: z.ZodDefault<z.ZodNumber>;
1958
+ }, "strip", z.ZodTypeAny, {
1959
+ files: string[];
1960
+ minimalFiles: string[];
1961
+ heartbeatFiles: string[];
1962
+ perFileChars: number;
1963
+ totalChars: number;
1964
+ }, {
1965
+ files?: string[] | undefined;
1966
+ minimalFiles?: string[] | undefined;
1967
+ heartbeatFiles?: string[] | undefined;
1968
+ perFileChars?: number | undefined;
1969
+ totalChars?: number | undefined;
1970
+ }>>;
1971
+ memory: z.ZodDefault<z.ZodObject<{
1972
+ enabled: z.ZodDefault<z.ZodBoolean>;
1973
+ maxChars: z.ZodDefault<z.ZodNumber>;
1974
+ }, "strip", z.ZodTypeAny, {
1975
+ enabled: boolean;
1976
+ maxChars: number;
1977
+ }, {
1978
+ enabled?: boolean | undefined;
1979
+ maxChars?: number | undefined;
1980
+ }>>;
1981
+ }, "strip", z.ZodTypeAny, {
1982
+ memory: {
1983
+ enabled: boolean;
1984
+ maxChars: number;
1985
+ };
1986
+ bootstrap: {
1987
+ files: string[];
1988
+ minimalFiles: string[];
1989
+ heartbeatFiles: string[];
1990
+ perFileChars: number;
1991
+ totalChars: number;
1992
+ };
1993
+ }, {
1994
+ memory?: {
1995
+ enabled?: boolean | undefined;
1996
+ maxChars?: number | undefined;
1997
+ } | undefined;
1998
+ bootstrap?: {
1999
+ files?: string[] | undefined;
2000
+ minimalFiles?: string[] | undefined;
2001
+ heartbeatFiles?: string[] | undefined;
2002
+ perFileChars?: number | undefined;
2003
+ totalChars?: number | undefined;
2004
+ } | undefined;
2005
+ }>>;
2006
+ }, "strip", z.ZodTypeAny, {
2007
+ defaults: {
2008
+ workspace: string;
2009
+ temperature: number;
2010
+ model: string;
2011
+ maxTokens: number;
2012
+ maxToolIterations: number;
2013
+ };
2014
+ context: {
2015
+ memory: {
2016
+ enabled: boolean;
2017
+ maxChars: number;
2018
+ };
2019
+ bootstrap: {
2020
+ files: string[];
2021
+ minimalFiles: string[];
2022
+ heartbeatFiles: string[];
2023
+ perFileChars: number;
2024
+ totalChars: number;
2025
+ };
2026
+ };
2027
+ }, {
2028
+ defaults?: {
2029
+ workspace?: string | undefined;
2030
+ temperature?: number | undefined;
2031
+ model?: string | undefined;
2032
+ maxTokens?: number | undefined;
2033
+ maxToolIterations?: number | undefined;
2034
+ } | undefined;
2035
+ context?: {
2036
+ memory?: {
2037
+ enabled?: boolean | undefined;
2038
+ maxChars?: number | undefined;
2039
+ } | undefined;
2040
+ bootstrap?: {
2041
+ files?: string[] | undefined;
2042
+ minimalFiles?: string[] | undefined;
2043
+ heartbeatFiles?: string[] | undefined;
2044
+ perFileChars?: number | undefined;
2045
+ totalChars?: number | undefined;
2046
+ } | undefined;
2047
+ } | undefined;
2048
+ }>>;
2049
+ channels: z.ZodDefault<z.ZodObject<{
2050
+ whatsapp: z.ZodDefault<z.ZodObject<{
2051
+ enabled: z.ZodDefault<z.ZodBoolean>;
2052
+ bridgeUrl: z.ZodDefault<z.ZodString>;
2053
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2054
+ }, "strip", z.ZodTypeAny, {
2055
+ enabled: boolean;
2056
+ bridgeUrl: string;
2057
+ allowFrom: string[];
2058
+ }, {
2059
+ enabled?: boolean | undefined;
2060
+ bridgeUrl?: string | undefined;
2061
+ allowFrom?: string[] | undefined;
2062
+ }>>;
2063
+ telegram: z.ZodDefault<z.ZodObject<{
2064
+ enabled: z.ZodDefault<z.ZodBoolean>;
2065
+ token: z.ZodDefault<z.ZodString>;
2066
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2067
+ proxy: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2068
+ }, "strip", z.ZodTypeAny, {
2069
+ enabled: boolean;
2070
+ allowFrom: string[];
2071
+ token: string;
2072
+ proxy: string | null;
2073
+ }, {
2074
+ enabled?: boolean | undefined;
2075
+ allowFrom?: string[] | undefined;
2076
+ token?: string | undefined;
2077
+ proxy?: string | null | undefined;
2078
+ }>>;
2079
+ discord: z.ZodDefault<z.ZodObject<{
2080
+ enabled: z.ZodDefault<z.ZodBoolean>;
2081
+ token: z.ZodDefault<z.ZodString>;
2082
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2083
+ gatewayUrl: z.ZodDefault<z.ZodString>;
2084
+ intents: z.ZodDefault<z.ZodNumber>;
2085
+ }, "strip", z.ZodTypeAny, {
2086
+ enabled: boolean;
2087
+ allowFrom: string[];
2088
+ token: string;
2089
+ gatewayUrl: string;
2090
+ intents: number;
2091
+ }, {
2092
+ enabled?: boolean | undefined;
2093
+ allowFrom?: string[] | undefined;
2094
+ token?: string | undefined;
2095
+ gatewayUrl?: string | undefined;
2096
+ intents?: number | undefined;
2097
+ }>>;
2098
+ feishu: z.ZodDefault<z.ZodObject<{
2099
+ enabled: z.ZodDefault<z.ZodBoolean>;
2100
+ appId: z.ZodDefault<z.ZodString>;
2101
+ appSecret: z.ZodDefault<z.ZodString>;
2102
+ encryptKey: z.ZodDefault<z.ZodString>;
2103
+ verificationToken: z.ZodDefault<z.ZodString>;
2104
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2105
+ }, "strip", z.ZodTypeAny, {
2106
+ enabled: boolean;
2107
+ allowFrom: string[];
2108
+ appId: string;
2109
+ appSecret: string;
2110
+ encryptKey: string;
2111
+ verificationToken: string;
2112
+ }, {
2113
+ enabled?: boolean | undefined;
2114
+ allowFrom?: string[] | undefined;
2115
+ appId?: string | undefined;
2116
+ appSecret?: string | undefined;
2117
+ encryptKey?: string | undefined;
2118
+ verificationToken?: string | undefined;
2119
+ }>>;
2120
+ mochat: z.ZodDefault<z.ZodObject<{
2121
+ enabled: z.ZodDefault<z.ZodBoolean>;
2122
+ baseUrl: z.ZodDefault<z.ZodString>;
2123
+ socketUrl: z.ZodDefault<z.ZodString>;
2124
+ socketPath: z.ZodDefault<z.ZodString>;
2125
+ socketDisableMsgpack: z.ZodDefault<z.ZodBoolean>;
2126
+ socketReconnectDelayMs: z.ZodDefault<z.ZodNumber>;
2127
+ socketMaxReconnectDelayMs: z.ZodDefault<z.ZodNumber>;
2128
+ socketConnectTimeoutMs: z.ZodDefault<z.ZodNumber>;
2129
+ refreshIntervalMs: z.ZodDefault<z.ZodNumber>;
2130
+ watchTimeoutMs: z.ZodDefault<z.ZodNumber>;
2131
+ watchLimit: z.ZodDefault<z.ZodNumber>;
2132
+ retryDelayMs: z.ZodDefault<z.ZodNumber>;
2133
+ maxRetryAttempts: z.ZodDefault<z.ZodNumber>;
2134
+ clawToken: z.ZodDefault<z.ZodString>;
2135
+ agentUserId: z.ZodDefault<z.ZodString>;
2136
+ sessions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2137
+ panels: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2138
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2139
+ mention: z.ZodDefault<z.ZodObject<{
2140
+ requireInGroups: z.ZodDefault<z.ZodBoolean>;
2141
+ }, "strip", z.ZodTypeAny, {
2142
+ requireInGroups: boolean;
2143
+ }, {
2144
+ requireInGroups?: boolean | undefined;
2145
+ }>>;
2146
+ groups: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
2147
+ requireMention: z.ZodDefault<z.ZodBoolean>;
2148
+ }, "strip", z.ZodTypeAny, {
2149
+ requireMention: boolean;
2150
+ }, {
2151
+ requireMention?: boolean | undefined;
2152
+ }>>>;
2153
+ replyDelayMode: z.ZodDefault<z.ZodString>;
2154
+ replyDelayMs: z.ZodDefault<z.ZodNumber>;
2155
+ }, "strip", z.ZodTypeAny, {
2156
+ sessions: string[];
2157
+ enabled: boolean;
2158
+ allowFrom: string[];
2159
+ baseUrl: string;
2160
+ socketUrl: string;
2161
+ socketPath: string;
2162
+ socketDisableMsgpack: boolean;
2163
+ socketReconnectDelayMs: number;
2164
+ socketMaxReconnectDelayMs: number;
2165
+ socketConnectTimeoutMs: number;
2166
+ refreshIntervalMs: number;
2167
+ watchTimeoutMs: number;
2168
+ watchLimit: number;
2169
+ retryDelayMs: number;
2170
+ maxRetryAttempts: number;
2171
+ clawToken: string;
2172
+ agentUserId: string;
2173
+ panels: string[];
2174
+ mention: {
2175
+ requireInGroups: boolean;
2176
+ };
2177
+ groups: Record<string, {
2178
+ requireMention: boolean;
2179
+ }>;
2180
+ replyDelayMode: string;
2181
+ replyDelayMs: number;
2182
+ }, {
2183
+ sessions?: string[] | undefined;
2184
+ enabled?: boolean | undefined;
2185
+ allowFrom?: string[] | undefined;
2186
+ baseUrl?: string | undefined;
2187
+ socketUrl?: string | undefined;
2188
+ socketPath?: string | undefined;
2189
+ socketDisableMsgpack?: boolean | undefined;
2190
+ socketReconnectDelayMs?: number | undefined;
2191
+ socketMaxReconnectDelayMs?: number | undefined;
2192
+ socketConnectTimeoutMs?: number | undefined;
2193
+ refreshIntervalMs?: number | undefined;
2194
+ watchTimeoutMs?: number | undefined;
2195
+ watchLimit?: number | undefined;
2196
+ retryDelayMs?: number | undefined;
2197
+ maxRetryAttempts?: number | undefined;
2198
+ clawToken?: string | undefined;
2199
+ agentUserId?: string | undefined;
2200
+ panels?: string[] | undefined;
2201
+ mention?: {
2202
+ requireInGroups?: boolean | undefined;
2203
+ } | undefined;
2204
+ groups?: Record<string, {
2205
+ requireMention?: boolean | undefined;
2206
+ }> | undefined;
2207
+ replyDelayMode?: string | undefined;
2208
+ replyDelayMs?: number | undefined;
2209
+ }>>;
2210
+ dingtalk: z.ZodDefault<z.ZodObject<{
2211
+ enabled: z.ZodDefault<z.ZodBoolean>;
2212
+ clientId: z.ZodDefault<z.ZodString>;
2213
+ clientSecret: z.ZodDefault<z.ZodString>;
2214
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2215
+ }, "strip", z.ZodTypeAny, {
2216
+ enabled: boolean;
2217
+ allowFrom: string[];
2218
+ clientId: string;
2219
+ clientSecret: string;
2220
+ }, {
2221
+ enabled?: boolean | undefined;
2222
+ allowFrom?: string[] | undefined;
2223
+ clientId?: string | undefined;
2224
+ clientSecret?: string | undefined;
2225
+ }>>;
2226
+ email: z.ZodDefault<z.ZodObject<{
2227
+ enabled: z.ZodDefault<z.ZodBoolean>;
2228
+ consentGranted: z.ZodDefault<z.ZodBoolean>;
2229
+ imapHost: z.ZodDefault<z.ZodString>;
2230
+ imapPort: z.ZodDefault<z.ZodNumber>;
2231
+ imapUsername: z.ZodDefault<z.ZodString>;
2232
+ imapPassword: z.ZodDefault<z.ZodString>;
2233
+ imapMailbox: z.ZodDefault<z.ZodString>;
2234
+ imapUseSsl: z.ZodDefault<z.ZodBoolean>;
2235
+ smtpHost: z.ZodDefault<z.ZodString>;
2236
+ smtpPort: z.ZodDefault<z.ZodNumber>;
2237
+ smtpUsername: z.ZodDefault<z.ZodString>;
2238
+ smtpPassword: z.ZodDefault<z.ZodString>;
2239
+ smtpUseTls: z.ZodDefault<z.ZodBoolean>;
2240
+ smtpUseSsl: z.ZodDefault<z.ZodBoolean>;
2241
+ fromAddress: z.ZodDefault<z.ZodString>;
2242
+ autoReplyEnabled: z.ZodDefault<z.ZodBoolean>;
2243
+ pollIntervalSeconds: z.ZodDefault<z.ZodNumber>;
2244
+ markSeen: z.ZodDefault<z.ZodBoolean>;
2245
+ maxBodyChars: z.ZodDefault<z.ZodNumber>;
2246
+ subjectPrefix: z.ZodDefault<z.ZodString>;
2247
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2248
+ }, "strip", z.ZodTypeAny, {
2249
+ enabled: boolean;
2250
+ allowFrom: string[];
2251
+ consentGranted: boolean;
2252
+ imapHost: string;
2253
+ imapPort: number;
2254
+ imapUsername: string;
2255
+ imapPassword: string;
2256
+ imapMailbox: string;
2257
+ imapUseSsl: boolean;
2258
+ smtpHost: string;
2259
+ smtpPort: number;
2260
+ smtpUsername: string;
2261
+ smtpPassword: string;
2262
+ smtpUseTls: boolean;
2263
+ smtpUseSsl: boolean;
2264
+ fromAddress: string;
2265
+ autoReplyEnabled: boolean;
2266
+ pollIntervalSeconds: number;
2267
+ markSeen: boolean;
2268
+ maxBodyChars: number;
2269
+ subjectPrefix: string;
2270
+ }, {
2271
+ enabled?: boolean | undefined;
2272
+ allowFrom?: string[] | undefined;
2273
+ consentGranted?: boolean | undefined;
2274
+ imapHost?: string | undefined;
2275
+ imapPort?: number | undefined;
2276
+ imapUsername?: string | undefined;
2277
+ imapPassword?: string | undefined;
2278
+ imapMailbox?: string | undefined;
2279
+ imapUseSsl?: boolean | undefined;
2280
+ smtpHost?: string | undefined;
2281
+ smtpPort?: number | undefined;
2282
+ smtpUsername?: string | undefined;
2283
+ smtpPassword?: string | undefined;
2284
+ smtpUseTls?: boolean | undefined;
2285
+ smtpUseSsl?: boolean | undefined;
2286
+ fromAddress?: string | undefined;
2287
+ autoReplyEnabled?: boolean | undefined;
2288
+ pollIntervalSeconds?: number | undefined;
2289
+ markSeen?: boolean | undefined;
2290
+ maxBodyChars?: number | undefined;
2291
+ subjectPrefix?: string | undefined;
2292
+ }>>;
2293
+ slack: z.ZodDefault<z.ZodObject<{
2294
+ enabled: z.ZodDefault<z.ZodBoolean>;
2295
+ mode: z.ZodDefault<z.ZodString>;
2296
+ webhookPath: z.ZodDefault<z.ZodString>;
2297
+ botToken: z.ZodDefault<z.ZodString>;
2298
+ appToken: z.ZodDefault<z.ZodString>;
2299
+ userTokenReadOnly: z.ZodDefault<z.ZodBoolean>;
2300
+ groupPolicy: z.ZodDefault<z.ZodString>;
2301
+ groupAllowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2302
+ dm: z.ZodDefault<z.ZodObject<{
2303
+ enabled: z.ZodDefault<z.ZodBoolean>;
2304
+ policy: z.ZodDefault<z.ZodString>;
2305
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2306
+ }, "strip", z.ZodTypeAny, {
2307
+ enabled: boolean;
2308
+ allowFrom: string[];
2309
+ policy: string;
2310
+ }, {
2311
+ enabled?: boolean | undefined;
2312
+ allowFrom?: string[] | undefined;
2313
+ policy?: string | undefined;
2314
+ }>>;
2315
+ }, "strip", z.ZodTypeAny, {
2316
+ enabled: boolean;
2317
+ mode: string;
2318
+ webhookPath: string;
2319
+ botToken: string;
2320
+ appToken: string;
2321
+ userTokenReadOnly: boolean;
2322
+ groupPolicy: string;
2323
+ groupAllowFrom: string[];
2324
+ dm: {
2325
+ enabled: boolean;
2326
+ allowFrom: string[];
2327
+ policy: string;
2328
+ };
2329
+ }, {
2330
+ enabled?: boolean | undefined;
2331
+ mode?: string | undefined;
2332
+ webhookPath?: string | undefined;
2333
+ botToken?: string | undefined;
2334
+ appToken?: string | undefined;
2335
+ userTokenReadOnly?: boolean | undefined;
2336
+ groupPolicy?: string | undefined;
2337
+ groupAllowFrom?: string[] | undefined;
2338
+ dm?: {
2339
+ enabled?: boolean | undefined;
2340
+ allowFrom?: string[] | undefined;
2341
+ policy?: string | undefined;
2342
+ } | undefined;
2343
+ }>>;
2344
+ qq: z.ZodDefault<z.ZodObject<{
2345
+ enabled: z.ZodDefault<z.ZodBoolean>;
2346
+ appId: z.ZodDefault<z.ZodString>;
2347
+ secret: z.ZodDefault<z.ZodString>;
2348
+ markdownSupport: z.ZodDefault<z.ZodBoolean>;
2349
+ allowFrom: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2350
+ }, "strip", z.ZodTypeAny, {
2351
+ enabled: boolean;
2352
+ allowFrom: string[];
2353
+ appId: string;
2354
+ secret: string;
2355
+ markdownSupport: boolean;
2356
+ }, {
2357
+ enabled?: boolean | undefined;
2358
+ allowFrom?: string[] | undefined;
2359
+ appId?: string | undefined;
2360
+ secret?: string | undefined;
2361
+ markdownSupport?: boolean | undefined;
2362
+ }>>;
2363
+ }, "strip", z.ZodTypeAny, {
2364
+ whatsapp: {
2365
+ enabled: boolean;
2366
+ bridgeUrl: string;
2367
+ allowFrom: string[];
2368
+ };
2369
+ telegram: {
2370
+ enabled: boolean;
2371
+ allowFrom: string[];
2372
+ token: string;
2373
+ proxy: string | null;
2374
+ };
2375
+ discord: {
2376
+ enabled: boolean;
2377
+ allowFrom: string[];
2378
+ token: string;
2379
+ gatewayUrl: string;
2380
+ intents: number;
2381
+ };
2382
+ feishu: {
2383
+ enabled: boolean;
2384
+ allowFrom: string[];
2385
+ appId: string;
2386
+ appSecret: string;
2387
+ encryptKey: string;
2388
+ verificationToken: string;
2389
+ };
2390
+ mochat: {
2391
+ sessions: string[];
2392
+ enabled: boolean;
2393
+ allowFrom: string[];
2394
+ baseUrl: string;
2395
+ socketUrl: string;
2396
+ socketPath: string;
2397
+ socketDisableMsgpack: boolean;
2398
+ socketReconnectDelayMs: number;
2399
+ socketMaxReconnectDelayMs: number;
2400
+ socketConnectTimeoutMs: number;
2401
+ refreshIntervalMs: number;
2402
+ watchTimeoutMs: number;
2403
+ watchLimit: number;
2404
+ retryDelayMs: number;
2405
+ maxRetryAttempts: number;
2406
+ clawToken: string;
2407
+ agentUserId: string;
2408
+ panels: string[];
2409
+ mention: {
2410
+ requireInGroups: boolean;
2411
+ };
2412
+ groups: Record<string, {
2413
+ requireMention: boolean;
2414
+ }>;
2415
+ replyDelayMode: string;
2416
+ replyDelayMs: number;
2417
+ };
2418
+ dingtalk: {
2419
+ enabled: boolean;
2420
+ allowFrom: string[];
2421
+ clientId: string;
2422
+ clientSecret: string;
2423
+ };
2424
+ email: {
2425
+ enabled: boolean;
2426
+ allowFrom: string[];
2427
+ consentGranted: boolean;
2428
+ imapHost: string;
2429
+ imapPort: number;
2430
+ imapUsername: string;
2431
+ imapPassword: string;
2432
+ imapMailbox: string;
2433
+ imapUseSsl: boolean;
2434
+ smtpHost: string;
2435
+ smtpPort: number;
2436
+ smtpUsername: string;
2437
+ smtpPassword: string;
2438
+ smtpUseTls: boolean;
2439
+ smtpUseSsl: boolean;
2440
+ fromAddress: string;
2441
+ autoReplyEnabled: boolean;
2442
+ pollIntervalSeconds: number;
2443
+ markSeen: boolean;
2444
+ maxBodyChars: number;
2445
+ subjectPrefix: string;
2446
+ };
2447
+ slack: {
2448
+ enabled: boolean;
2449
+ mode: string;
2450
+ webhookPath: string;
2451
+ botToken: string;
2452
+ appToken: string;
2453
+ userTokenReadOnly: boolean;
2454
+ groupPolicy: string;
2455
+ groupAllowFrom: string[];
2456
+ dm: {
2457
+ enabled: boolean;
2458
+ allowFrom: string[];
2459
+ policy: string;
2460
+ };
2461
+ };
2462
+ qq: {
2463
+ enabled: boolean;
2464
+ allowFrom: string[];
2465
+ appId: string;
2466
+ secret: string;
2467
+ markdownSupport: boolean;
2468
+ };
2469
+ }, {
2470
+ whatsapp?: {
2471
+ enabled?: boolean | undefined;
2472
+ bridgeUrl?: string | undefined;
2473
+ allowFrom?: string[] | undefined;
2474
+ } | undefined;
2475
+ telegram?: {
2476
+ enabled?: boolean | undefined;
2477
+ allowFrom?: string[] | undefined;
2478
+ token?: string | undefined;
2479
+ proxy?: string | null | undefined;
2480
+ } | undefined;
2481
+ discord?: {
2482
+ enabled?: boolean | undefined;
2483
+ allowFrom?: string[] | undefined;
2484
+ token?: string | undefined;
2485
+ gatewayUrl?: string | undefined;
2486
+ intents?: number | undefined;
2487
+ } | undefined;
2488
+ feishu?: {
2489
+ enabled?: boolean | undefined;
2490
+ allowFrom?: string[] | undefined;
2491
+ appId?: string | undefined;
2492
+ appSecret?: string | undefined;
2493
+ encryptKey?: string | undefined;
2494
+ verificationToken?: string | undefined;
2495
+ } | undefined;
2496
+ mochat?: {
2497
+ sessions?: string[] | undefined;
2498
+ enabled?: boolean | undefined;
2499
+ allowFrom?: string[] | undefined;
2500
+ baseUrl?: string | undefined;
2501
+ socketUrl?: string | undefined;
2502
+ socketPath?: string | undefined;
2503
+ socketDisableMsgpack?: boolean | undefined;
2504
+ socketReconnectDelayMs?: number | undefined;
2505
+ socketMaxReconnectDelayMs?: number | undefined;
2506
+ socketConnectTimeoutMs?: number | undefined;
2507
+ refreshIntervalMs?: number | undefined;
2508
+ watchTimeoutMs?: number | undefined;
2509
+ watchLimit?: number | undefined;
2510
+ retryDelayMs?: number | undefined;
2511
+ maxRetryAttempts?: number | undefined;
2512
+ clawToken?: string | undefined;
2513
+ agentUserId?: string | undefined;
2514
+ panels?: string[] | undefined;
2515
+ mention?: {
2516
+ requireInGroups?: boolean | undefined;
2517
+ } | undefined;
2518
+ groups?: Record<string, {
2519
+ requireMention?: boolean | undefined;
2520
+ }> | undefined;
2521
+ replyDelayMode?: string | undefined;
2522
+ replyDelayMs?: number | undefined;
2523
+ } | undefined;
2524
+ dingtalk?: {
2525
+ enabled?: boolean | undefined;
2526
+ allowFrom?: string[] | undefined;
2527
+ clientId?: string | undefined;
2528
+ clientSecret?: string | undefined;
2529
+ } | undefined;
2530
+ email?: {
2531
+ enabled?: boolean | undefined;
2532
+ allowFrom?: string[] | undefined;
2533
+ consentGranted?: boolean | undefined;
2534
+ imapHost?: string | undefined;
2535
+ imapPort?: number | undefined;
2536
+ imapUsername?: string | undefined;
2537
+ imapPassword?: string | undefined;
2538
+ imapMailbox?: string | undefined;
2539
+ imapUseSsl?: boolean | undefined;
2540
+ smtpHost?: string | undefined;
2541
+ smtpPort?: number | undefined;
2542
+ smtpUsername?: string | undefined;
2543
+ smtpPassword?: string | undefined;
2544
+ smtpUseTls?: boolean | undefined;
2545
+ smtpUseSsl?: boolean | undefined;
2546
+ fromAddress?: string | undefined;
2547
+ autoReplyEnabled?: boolean | undefined;
2548
+ pollIntervalSeconds?: number | undefined;
2549
+ markSeen?: boolean | undefined;
2550
+ maxBodyChars?: number | undefined;
2551
+ subjectPrefix?: string | undefined;
2552
+ } | undefined;
2553
+ slack?: {
2554
+ enabled?: boolean | undefined;
2555
+ mode?: string | undefined;
2556
+ webhookPath?: string | undefined;
2557
+ botToken?: string | undefined;
2558
+ appToken?: string | undefined;
2559
+ userTokenReadOnly?: boolean | undefined;
2560
+ groupPolicy?: string | undefined;
2561
+ groupAllowFrom?: string[] | undefined;
2562
+ dm?: {
2563
+ enabled?: boolean | undefined;
2564
+ allowFrom?: string[] | undefined;
2565
+ policy?: string | undefined;
2566
+ } | undefined;
2567
+ } | undefined;
2568
+ qq?: {
2569
+ enabled?: boolean | undefined;
2570
+ allowFrom?: string[] | undefined;
2571
+ appId?: string | undefined;
2572
+ secret?: string | undefined;
2573
+ markdownSupport?: boolean | undefined;
2574
+ } | undefined;
2575
+ }>>;
2576
+ providers: z.ZodDefault<z.ZodObject<{
2577
+ anthropic: z.ZodDefault<z.ZodObject<{
2578
+ apiKey: z.ZodDefault<z.ZodString>;
2579
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2580
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2581
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2582
+ }, "strip", z.ZodTypeAny, {
2583
+ apiKey: string;
2584
+ apiBase: string | null;
2585
+ extraHeaders: Record<string, string> | null;
2586
+ wireApi: "auto" | "chat" | "responses";
2587
+ }, {
2588
+ apiKey?: string | undefined;
2589
+ apiBase?: string | null | undefined;
2590
+ extraHeaders?: Record<string, string> | null | undefined;
2591
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2592
+ }>>;
2593
+ openai: z.ZodDefault<z.ZodObject<{
2594
+ apiKey: z.ZodDefault<z.ZodString>;
2595
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2596
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2597
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2598
+ }, "strip", z.ZodTypeAny, {
2599
+ apiKey: string;
2600
+ apiBase: string | null;
2601
+ extraHeaders: Record<string, string> | null;
2602
+ wireApi: "auto" | "chat" | "responses";
2603
+ }, {
2604
+ apiKey?: string | undefined;
2605
+ apiBase?: string | null | undefined;
2606
+ extraHeaders?: Record<string, string> | null | undefined;
2607
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2608
+ }>>;
2609
+ openrouter: z.ZodDefault<z.ZodObject<{
2610
+ apiKey: z.ZodDefault<z.ZodString>;
2611
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2612
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2613
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2614
+ }, "strip", z.ZodTypeAny, {
2615
+ apiKey: string;
2616
+ apiBase: string | null;
2617
+ extraHeaders: Record<string, string> | null;
2618
+ wireApi: "auto" | "chat" | "responses";
2619
+ }, {
2620
+ apiKey?: string | undefined;
2621
+ apiBase?: string | null | undefined;
2622
+ extraHeaders?: Record<string, string> | null | undefined;
2623
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2624
+ }>>;
2625
+ deepseek: z.ZodDefault<z.ZodObject<{
2626
+ apiKey: z.ZodDefault<z.ZodString>;
2627
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2628
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2629
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2630
+ }, "strip", z.ZodTypeAny, {
2631
+ apiKey: string;
2632
+ apiBase: string | null;
2633
+ extraHeaders: Record<string, string> | null;
2634
+ wireApi: "auto" | "chat" | "responses";
2635
+ }, {
2636
+ apiKey?: string | undefined;
2637
+ apiBase?: string | null | undefined;
2638
+ extraHeaders?: Record<string, string> | null | undefined;
2639
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2640
+ }>>;
2641
+ groq: z.ZodDefault<z.ZodObject<{
2642
+ apiKey: z.ZodDefault<z.ZodString>;
2643
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2644
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2645
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2646
+ }, "strip", z.ZodTypeAny, {
2647
+ apiKey: string;
2648
+ apiBase: string | null;
2649
+ extraHeaders: Record<string, string> | null;
2650
+ wireApi: "auto" | "chat" | "responses";
2651
+ }, {
2652
+ apiKey?: string | undefined;
2653
+ apiBase?: string | null | undefined;
2654
+ extraHeaders?: Record<string, string> | null | undefined;
2655
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2656
+ }>>;
2657
+ zhipu: z.ZodDefault<z.ZodObject<{
2658
+ apiKey: z.ZodDefault<z.ZodString>;
2659
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2660
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2661
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2662
+ }, "strip", z.ZodTypeAny, {
2663
+ apiKey: string;
2664
+ apiBase: string | null;
2665
+ extraHeaders: Record<string, string> | null;
2666
+ wireApi: "auto" | "chat" | "responses";
2667
+ }, {
2668
+ apiKey?: string | undefined;
2669
+ apiBase?: string | null | undefined;
2670
+ extraHeaders?: Record<string, string> | null | undefined;
2671
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2672
+ }>>;
2673
+ dashscope: z.ZodDefault<z.ZodObject<{
2674
+ apiKey: z.ZodDefault<z.ZodString>;
2675
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2676
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2677
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2678
+ }, "strip", z.ZodTypeAny, {
2679
+ apiKey: string;
2680
+ apiBase: string | null;
2681
+ extraHeaders: Record<string, string> | null;
2682
+ wireApi: "auto" | "chat" | "responses";
2683
+ }, {
2684
+ apiKey?: string | undefined;
2685
+ apiBase?: string | null | undefined;
2686
+ extraHeaders?: Record<string, string> | null | undefined;
2687
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2688
+ }>>;
2689
+ vllm: z.ZodDefault<z.ZodObject<{
2690
+ apiKey: z.ZodDefault<z.ZodString>;
2691
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2692
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2693
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2694
+ }, "strip", z.ZodTypeAny, {
2695
+ apiKey: string;
2696
+ apiBase: string | null;
2697
+ extraHeaders: Record<string, string> | null;
2698
+ wireApi: "auto" | "chat" | "responses";
2699
+ }, {
2700
+ apiKey?: string | undefined;
2701
+ apiBase?: string | null | undefined;
2702
+ extraHeaders?: Record<string, string> | null | undefined;
2703
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2704
+ }>>;
2705
+ gemini: z.ZodDefault<z.ZodObject<{
2706
+ apiKey: z.ZodDefault<z.ZodString>;
2707
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2708
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2709
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2710
+ }, "strip", z.ZodTypeAny, {
2711
+ apiKey: string;
2712
+ apiBase: string | null;
2713
+ extraHeaders: Record<string, string> | null;
2714
+ wireApi: "auto" | "chat" | "responses";
2715
+ }, {
2716
+ apiKey?: string | undefined;
2717
+ apiBase?: string | null | undefined;
2718
+ extraHeaders?: Record<string, string> | null | undefined;
2719
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2720
+ }>>;
2721
+ moonshot: z.ZodDefault<z.ZodObject<{
2722
+ apiKey: z.ZodDefault<z.ZodString>;
2723
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2724
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2725
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2726
+ }, "strip", z.ZodTypeAny, {
2727
+ apiKey: string;
2728
+ apiBase: string | null;
2729
+ extraHeaders: Record<string, string> | null;
2730
+ wireApi: "auto" | "chat" | "responses";
2731
+ }, {
2732
+ apiKey?: string | undefined;
2733
+ apiBase?: string | null | undefined;
2734
+ extraHeaders?: Record<string, string> | null | undefined;
2735
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2736
+ }>>;
2737
+ minimax: z.ZodDefault<z.ZodObject<{
2738
+ apiKey: z.ZodDefault<z.ZodString>;
2739
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2740
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2741
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2742
+ }, "strip", z.ZodTypeAny, {
2743
+ apiKey: string;
2744
+ apiBase: string | null;
2745
+ extraHeaders: Record<string, string> | null;
2746
+ wireApi: "auto" | "chat" | "responses";
2747
+ }, {
2748
+ apiKey?: string | undefined;
2749
+ apiBase?: string | null | undefined;
2750
+ extraHeaders?: Record<string, string> | null | undefined;
2751
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2752
+ }>>;
2753
+ aihubmix: z.ZodDefault<z.ZodObject<{
2754
+ apiKey: z.ZodDefault<z.ZodString>;
2755
+ apiBase: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2756
+ extraHeaders: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
2757
+ wireApi: z.ZodDefault<z.ZodEnum<["auto", "chat", "responses"]>>;
2758
+ }, "strip", z.ZodTypeAny, {
2759
+ apiKey: string;
2760
+ apiBase: string | null;
2761
+ extraHeaders: Record<string, string> | null;
2762
+ wireApi: "auto" | "chat" | "responses";
2763
+ }, {
2764
+ apiKey?: string | undefined;
2765
+ apiBase?: string | null | undefined;
2766
+ extraHeaders?: Record<string, string> | null | undefined;
2767
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2768
+ }>>;
2769
+ }, "strip", z.ZodTypeAny, {
2770
+ openrouter: {
2771
+ apiKey: string;
2772
+ apiBase: string | null;
2773
+ extraHeaders: Record<string, string> | null;
2774
+ wireApi: "auto" | "chat" | "responses";
2775
+ };
2776
+ aihubmix: {
2777
+ apiKey: string;
2778
+ apiBase: string | null;
2779
+ extraHeaders: Record<string, string> | null;
2780
+ wireApi: "auto" | "chat" | "responses";
2781
+ };
2782
+ openai: {
2783
+ apiKey: string;
2784
+ apiBase: string | null;
2785
+ extraHeaders: Record<string, string> | null;
2786
+ wireApi: "auto" | "chat" | "responses";
2787
+ };
2788
+ anthropic: {
2789
+ apiKey: string;
2790
+ apiBase: string | null;
2791
+ extraHeaders: Record<string, string> | null;
2792
+ wireApi: "auto" | "chat" | "responses";
2793
+ };
2794
+ deepseek: {
2795
+ apiKey: string;
2796
+ apiBase: string | null;
2797
+ extraHeaders: Record<string, string> | null;
2798
+ wireApi: "auto" | "chat" | "responses";
2799
+ };
2800
+ gemini: {
2801
+ apiKey: string;
2802
+ apiBase: string | null;
2803
+ extraHeaders: Record<string, string> | null;
2804
+ wireApi: "auto" | "chat" | "responses";
2805
+ };
2806
+ zhipu: {
2807
+ apiKey: string;
2808
+ apiBase: string | null;
2809
+ extraHeaders: Record<string, string> | null;
2810
+ wireApi: "auto" | "chat" | "responses";
2811
+ };
2812
+ dashscope: {
2813
+ apiKey: string;
2814
+ apiBase: string | null;
2815
+ extraHeaders: Record<string, string> | null;
2816
+ wireApi: "auto" | "chat" | "responses";
2817
+ };
2818
+ moonshot: {
2819
+ apiKey: string;
2820
+ apiBase: string | null;
2821
+ extraHeaders: Record<string, string> | null;
2822
+ wireApi: "auto" | "chat" | "responses";
2823
+ };
2824
+ minimax: {
2825
+ apiKey: string;
2826
+ apiBase: string | null;
2827
+ extraHeaders: Record<string, string> | null;
2828
+ wireApi: "auto" | "chat" | "responses";
2829
+ };
2830
+ vllm: {
2831
+ apiKey: string;
2832
+ apiBase: string | null;
2833
+ extraHeaders: Record<string, string> | null;
2834
+ wireApi: "auto" | "chat" | "responses";
2835
+ };
2836
+ groq: {
2837
+ apiKey: string;
2838
+ apiBase: string | null;
2839
+ extraHeaders: Record<string, string> | null;
2840
+ wireApi: "auto" | "chat" | "responses";
2841
+ };
2842
+ }, {
2843
+ openrouter?: {
2844
+ apiKey?: string | undefined;
2845
+ apiBase?: string | null | undefined;
2846
+ extraHeaders?: Record<string, string> | null | undefined;
2847
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2848
+ } | undefined;
2849
+ aihubmix?: {
2850
+ apiKey?: string | undefined;
2851
+ apiBase?: string | null | undefined;
2852
+ extraHeaders?: Record<string, string> | null | undefined;
2853
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2854
+ } | undefined;
2855
+ openai?: {
2856
+ apiKey?: string | undefined;
2857
+ apiBase?: string | null | undefined;
2858
+ extraHeaders?: Record<string, string> | null | undefined;
2859
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2860
+ } | undefined;
2861
+ anthropic?: {
2862
+ apiKey?: string | undefined;
2863
+ apiBase?: string | null | undefined;
2864
+ extraHeaders?: Record<string, string> | null | undefined;
2865
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2866
+ } | undefined;
2867
+ deepseek?: {
2868
+ apiKey?: string | undefined;
2869
+ apiBase?: string | null | undefined;
2870
+ extraHeaders?: Record<string, string> | null | undefined;
2871
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2872
+ } | undefined;
2873
+ gemini?: {
2874
+ apiKey?: string | undefined;
2875
+ apiBase?: string | null | undefined;
2876
+ extraHeaders?: Record<string, string> | null | undefined;
2877
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2878
+ } | undefined;
2879
+ zhipu?: {
2880
+ apiKey?: string | undefined;
2881
+ apiBase?: string | null | undefined;
2882
+ extraHeaders?: Record<string, string> | null | undefined;
2883
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2884
+ } | undefined;
2885
+ dashscope?: {
2886
+ apiKey?: string | undefined;
2887
+ apiBase?: string | null | undefined;
2888
+ extraHeaders?: Record<string, string> | null | undefined;
2889
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2890
+ } | undefined;
2891
+ moonshot?: {
2892
+ apiKey?: string | undefined;
2893
+ apiBase?: string | null | undefined;
2894
+ extraHeaders?: Record<string, string> | null | undefined;
2895
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2896
+ } | undefined;
2897
+ minimax?: {
2898
+ apiKey?: string | undefined;
2899
+ apiBase?: string | null | undefined;
2900
+ extraHeaders?: Record<string, string> | null | undefined;
2901
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2902
+ } | undefined;
2903
+ vllm?: {
2904
+ apiKey?: string | undefined;
2905
+ apiBase?: string | null | undefined;
2906
+ extraHeaders?: Record<string, string> | null | undefined;
2907
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2908
+ } | undefined;
2909
+ groq?: {
2910
+ apiKey?: string | undefined;
2911
+ apiBase?: string | null | undefined;
2912
+ extraHeaders?: Record<string, string> | null | undefined;
2913
+ wireApi?: "auto" | "chat" | "responses" | undefined;
2914
+ } | undefined;
2915
+ }>>;
2916
+ plugins: z.ZodDefault<z.ZodObject<{
2917
+ enabled: z.ZodOptional<z.ZodBoolean>;
2918
+ allow: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2919
+ deny: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2920
+ load: z.ZodOptional<z.ZodObject<{
2921
+ paths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2922
+ }, "strip", z.ZodTypeAny, {
2923
+ paths?: string[] | undefined;
2924
+ }, {
2925
+ paths?: string[] | undefined;
2926
+ }>>;
2927
+ entries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2928
+ enabled: z.ZodOptional<z.ZodBoolean>;
2929
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2930
+ }, "strip", z.ZodTypeAny, {
2931
+ enabled?: boolean | undefined;
2932
+ config?: Record<string, unknown> | undefined;
2933
+ }, {
2934
+ enabled?: boolean | undefined;
2935
+ config?: Record<string, unknown> | undefined;
2936
+ }>>>;
2937
+ installs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2938
+ source: z.ZodEnum<["npm", "archive", "path"]>;
2939
+ spec: z.ZodOptional<z.ZodString>;
2940
+ sourcePath: z.ZodOptional<z.ZodString>;
2941
+ installPath: z.ZodOptional<z.ZodString>;
2942
+ version: z.ZodOptional<z.ZodString>;
2943
+ installedAt: z.ZodOptional<z.ZodString>;
2944
+ }, "strip", z.ZodTypeAny, {
2945
+ source: "path" | "npm" | "archive";
2946
+ spec?: string | undefined;
2947
+ sourcePath?: string | undefined;
2948
+ installPath?: string | undefined;
2949
+ version?: string | undefined;
2950
+ installedAt?: string | undefined;
2951
+ }, {
2952
+ source: "path" | "npm" | "archive";
2953
+ spec?: string | undefined;
2954
+ sourcePath?: string | undefined;
2955
+ installPath?: string | undefined;
2956
+ version?: string | undefined;
2957
+ installedAt?: string | undefined;
2958
+ }>>>;
2959
+ }, "strip", z.ZodTypeAny, {
2960
+ entries?: Record<string, {
2961
+ enabled?: boolean | undefined;
2962
+ config?: Record<string, unknown> | undefined;
2963
+ }> | undefined;
2964
+ enabled?: boolean | undefined;
2965
+ allow?: string[] | undefined;
2966
+ deny?: string[] | undefined;
2967
+ load?: {
2968
+ paths?: string[] | undefined;
2969
+ } | undefined;
2970
+ installs?: Record<string, {
2971
+ source: "path" | "npm" | "archive";
2972
+ spec?: string | undefined;
2973
+ sourcePath?: string | undefined;
2974
+ installPath?: string | undefined;
2975
+ version?: string | undefined;
2976
+ installedAt?: string | undefined;
2977
+ }> | undefined;
2978
+ }, {
2979
+ entries?: Record<string, {
2980
+ enabled?: boolean | undefined;
2981
+ config?: Record<string, unknown> | undefined;
2982
+ }> | undefined;
2983
+ enabled?: boolean | undefined;
2984
+ allow?: string[] | undefined;
2985
+ deny?: string[] | undefined;
2986
+ load?: {
2987
+ paths?: string[] | undefined;
2988
+ } | undefined;
2989
+ installs?: Record<string, {
2990
+ source: "path" | "npm" | "archive";
2991
+ spec?: string | undefined;
2992
+ sourcePath?: string | undefined;
2993
+ installPath?: string | undefined;
2994
+ version?: string | undefined;
2995
+ installedAt?: string | undefined;
2996
+ }> | undefined;
2997
+ }>>;
2998
+ gateway: z.ZodDefault<z.ZodObject<{
2999
+ host: z.ZodDefault<z.ZodString>;
3000
+ port: z.ZodDefault<z.ZodNumber>;
3001
+ }, "strip", z.ZodTypeAny, {
3002
+ host: string;
3003
+ port: number;
3004
+ }, {
3005
+ host?: string | undefined;
3006
+ port?: number | undefined;
3007
+ }>>;
3008
+ ui: z.ZodDefault<z.ZodObject<{
3009
+ enabled: z.ZodDefault<z.ZodBoolean>;
3010
+ host: z.ZodDefault<z.ZodString>;
3011
+ port: z.ZodDefault<z.ZodNumber>;
3012
+ open: z.ZodDefault<z.ZodBoolean>;
3013
+ }, "strip", z.ZodTypeAny, {
3014
+ enabled: boolean;
3015
+ open: boolean;
3016
+ host: string;
3017
+ port: number;
3018
+ }, {
3019
+ enabled?: boolean | undefined;
3020
+ open?: boolean | undefined;
3021
+ host?: string | undefined;
3022
+ port?: number | undefined;
3023
+ }>>;
3024
+ tools: z.ZodDefault<z.ZodObject<{
3025
+ web: z.ZodDefault<z.ZodObject<{
3026
+ search: z.ZodDefault<z.ZodObject<{
3027
+ apiKey: z.ZodDefault<z.ZodString>;
3028
+ maxResults: z.ZodDefault<z.ZodNumber>;
3029
+ }, "strip", z.ZodTypeAny, {
3030
+ apiKey: string;
3031
+ maxResults: number;
3032
+ }, {
3033
+ apiKey?: string | undefined;
3034
+ maxResults?: number | undefined;
3035
+ }>>;
3036
+ }, "strip", z.ZodTypeAny, {
3037
+ search: {
3038
+ apiKey: string;
3039
+ maxResults: number;
3040
+ };
3041
+ }, {
3042
+ search?: {
3043
+ apiKey?: string | undefined;
3044
+ maxResults?: number | undefined;
3045
+ } | undefined;
3046
+ }>>;
3047
+ exec: z.ZodDefault<z.ZodObject<{
3048
+ timeout: z.ZodDefault<z.ZodNumber>;
3049
+ }, "strip", z.ZodTypeAny, {
3050
+ timeout: number;
3051
+ }, {
3052
+ timeout?: number | undefined;
3053
+ }>>;
3054
+ restrictToWorkspace: z.ZodDefault<z.ZodBoolean>;
3055
+ }, "strip", z.ZodTypeAny, {
3056
+ web: {
3057
+ search: {
3058
+ apiKey: string;
3059
+ maxResults: number;
3060
+ };
3061
+ };
3062
+ exec: {
3063
+ timeout: number;
3064
+ };
3065
+ restrictToWorkspace: boolean;
3066
+ }, {
3067
+ web?: {
3068
+ search?: {
3069
+ apiKey?: string | undefined;
3070
+ maxResults?: number | undefined;
3071
+ } | undefined;
3072
+ } | undefined;
3073
+ exec?: {
3074
+ timeout?: number | undefined;
3075
+ } | undefined;
3076
+ restrictToWorkspace?: boolean | undefined;
3077
+ }>>;
3078
+ }, "strip", z.ZodTypeAny, {
3079
+ agents: {
3080
+ defaults: {
3081
+ workspace: string;
3082
+ temperature: number;
3083
+ model: string;
3084
+ maxTokens: number;
3085
+ maxToolIterations: number;
3086
+ };
3087
+ context: {
3088
+ memory: {
3089
+ enabled: boolean;
3090
+ maxChars: number;
3091
+ };
3092
+ bootstrap: {
3093
+ files: string[];
3094
+ minimalFiles: string[];
3095
+ heartbeatFiles: string[];
3096
+ perFileChars: number;
3097
+ totalChars: number;
3098
+ };
3099
+ };
3100
+ };
3101
+ providers: {
3102
+ openrouter: {
3103
+ apiKey: string;
3104
+ apiBase: string | null;
3105
+ extraHeaders: Record<string, string> | null;
3106
+ wireApi: "auto" | "chat" | "responses";
3107
+ };
3108
+ aihubmix: {
3109
+ apiKey: string;
3110
+ apiBase: string | null;
3111
+ extraHeaders: Record<string, string> | null;
3112
+ wireApi: "auto" | "chat" | "responses";
3113
+ };
3114
+ openai: {
3115
+ apiKey: string;
3116
+ apiBase: string | null;
3117
+ extraHeaders: Record<string, string> | null;
3118
+ wireApi: "auto" | "chat" | "responses";
3119
+ };
3120
+ anthropic: {
3121
+ apiKey: string;
3122
+ apiBase: string | null;
3123
+ extraHeaders: Record<string, string> | null;
3124
+ wireApi: "auto" | "chat" | "responses";
3125
+ };
3126
+ deepseek: {
3127
+ apiKey: string;
3128
+ apiBase: string | null;
3129
+ extraHeaders: Record<string, string> | null;
3130
+ wireApi: "auto" | "chat" | "responses";
3131
+ };
3132
+ gemini: {
3133
+ apiKey: string;
3134
+ apiBase: string | null;
3135
+ extraHeaders: Record<string, string> | null;
3136
+ wireApi: "auto" | "chat" | "responses";
3137
+ };
3138
+ zhipu: {
3139
+ apiKey: string;
3140
+ apiBase: string | null;
3141
+ extraHeaders: Record<string, string> | null;
3142
+ wireApi: "auto" | "chat" | "responses";
3143
+ };
3144
+ dashscope: {
3145
+ apiKey: string;
3146
+ apiBase: string | null;
3147
+ extraHeaders: Record<string, string> | null;
3148
+ wireApi: "auto" | "chat" | "responses";
3149
+ };
3150
+ moonshot: {
3151
+ apiKey: string;
3152
+ apiBase: string | null;
3153
+ extraHeaders: Record<string, string> | null;
3154
+ wireApi: "auto" | "chat" | "responses";
3155
+ };
3156
+ minimax: {
3157
+ apiKey: string;
3158
+ apiBase: string | null;
3159
+ extraHeaders: Record<string, string> | null;
3160
+ wireApi: "auto" | "chat" | "responses";
3161
+ };
3162
+ vllm: {
3163
+ apiKey: string;
3164
+ apiBase: string | null;
3165
+ extraHeaders: Record<string, string> | null;
3166
+ wireApi: "auto" | "chat" | "responses";
3167
+ };
3168
+ groq: {
3169
+ apiKey: string;
3170
+ apiBase: string | null;
3171
+ extraHeaders: Record<string, string> | null;
3172
+ wireApi: "auto" | "chat" | "responses";
3173
+ };
3174
+ };
3175
+ channels: {
3176
+ whatsapp: {
3177
+ enabled: boolean;
3178
+ bridgeUrl: string;
3179
+ allowFrom: string[];
3180
+ };
3181
+ telegram: {
3182
+ enabled: boolean;
3183
+ allowFrom: string[];
3184
+ token: string;
3185
+ proxy: string | null;
3186
+ };
3187
+ discord: {
3188
+ enabled: boolean;
3189
+ allowFrom: string[];
3190
+ token: string;
3191
+ gatewayUrl: string;
3192
+ intents: number;
3193
+ };
3194
+ feishu: {
3195
+ enabled: boolean;
3196
+ allowFrom: string[];
3197
+ appId: string;
3198
+ appSecret: string;
3199
+ encryptKey: string;
3200
+ verificationToken: string;
3201
+ };
3202
+ mochat: {
3203
+ sessions: string[];
3204
+ enabled: boolean;
3205
+ allowFrom: string[];
3206
+ baseUrl: string;
3207
+ socketUrl: string;
3208
+ socketPath: string;
3209
+ socketDisableMsgpack: boolean;
3210
+ socketReconnectDelayMs: number;
3211
+ socketMaxReconnectDelayMs: number;
3212
+ socketConnectTimeoutMs: number;
3213
+ refreshIntervalMs: number;
3214
+ watchTimeoutMs: number;
3215
+ watchLimit: number;
3216
+ retryDelayMs: number;
3217
+ maxRetryAttempts: number;
3218
+ clawToken: string;
3219
+ agentUserId: string;
3220
+ panels: string[];
3221
+ mention: {
3222
+ requireInGroups: boolean;
3223
+ };
3224
+ groups: Record<string, {
3225
+ requireMention: boolean;
3226
+ }>;
3227
+ replyDelayMode: string;
3228
+ replyDelayMs: number;
3229
+ };
3230
+ dingtalk: {
3231
+ enabled: boolean;
3232
+ allowFrom: string[];
3233
+ clientId: string;
3234
+ clientSecret: string;
3235
+ };
3236
+ email: {
3237
+ enabled: boolean;
3238
+ allowFrom: string[];
3239
+ consentGranted: boolean;
3240
+ imapHost: string;
3241
+ imapPort: number;
3242
+ imapUsername: string;
3243
+ imapPassword: string;
3244
+ imapMailbox: string;
3245
+ imapUseSsl: boolean;
3246
+ smtpHost: string;
3247
+ smtpPort: number;
3248
+ smtpUsername: string;
3249
+ smtpPassword: string;
3250
+ smtpUseTls: boolean;
3251
+ smtpUseSsl: boolean;
3252
+ fromAddress: string;
3253
+ autoReplyEnabled: boolean;
3254
+ pollIntervalSeconds: number;
3255
+ markSeen: boolean;
3256
+ maxBodyChars: number;
3257
+ subjectPrefix: string;
3258
+ };
3259
+ slack: {
3260
+ enabled: boolean;
3261
+ mode: string;
3262
+ webhookPath: string;
3263
+ botToken: string;
3264
+ appToken: string;
3265
+ userTokenReadOnly: boolean;
3266
+ groupPolicy: string;
3267
+ groupAllowFrom: string[];
3268
+ dm: {
3269
+ enabled: boolean;
3270
+ allowFrom: string[];
3271
+ policy: string;
3272
+ };
3273
+ };
3274
+ qq: {
3275
+ enabled: boolean;
3276
+ allowFrom: string[];
3277
+ appId: string;
3278
+ secret: string;
3279
+ markdownSupport: boolean;
3280
+ };
3281
+ };
3282
+ gateway: {
3283
+ host: string;
3284
+ port: number;
3285
+ };
3286
+ ui: {
3287
+ enabled: boolean;
3288
+ open: boolean;
3289
+ host: string;
3290
+ port: number;
3291
+ };
3292
+ tools: {
3293
+ web: {
3294
+ search: {
3295
+ apiKey: string;
3296
+ maxResults: number;
3297
+ };
3298
+ };
3299
+ exec: {
3300
+ timeout: number;
3301
+ };
3302
+ restrictToWorkspace: boolean;
3303
+ };
3304
+ plugins: {
3305
+ entries?: Record<string, {
3306
+ enabled?: boolean | undefined;
3307
+ config?: Record<string, unknown> | undefined;
3308
+ }> | undefined;
3309
+ enabled?: boolean | undefined;
3310
+ allow?: string[] | undefined;
3311
+ deny?: string[] | undefined;
3312
+ load?: {
3313
+ paths?: string[] | undefined;
3314
+ } | undefined;
3315
+ installs?: Record<string, {
3316
+ source: "path" | "npm" | "archive";
3317
+ spec?: string | undefined;
3318
+ sourcePath?: string | undefined;
3319
+ installPath?: string | undefined;
3320
+ version?: string | undefined;
3321
+ installedAt?: string | undefined;
3322
+ }> | undefined;
3323
+ };
3324
+ }, {
3325
+ agents?: {
3326
+ defaults?: {
3327
+ workspace?: string | undefined;
3328
+ temperature?: number | undefined;
3329
+ model?: string | undefined;
3330
+ maxTokens?: number | undefined;
3331
+ maxToolIterations?: number | undefined;
3332
+ } | undefined;
3333
+ context?: {
3334
+ memory?: {
3335
+ enabled?: boolean | undefined;
3336
+ maxChars?: number | undefined;
3337
+ } | undefined;
3338
+ bootstrap?: {
3339
+ files?: string[] | undefined;
3340
+ minimalFiles?: string[] | undefined;
3341
+ heartbeatFiles?: string[] | undefined;
3342
+ perFileChars?: number | undefined;
3343
+ totalChars?: number | undefined;
3344
+ } | undefined;
3345
+ } | undefined;
3346
+ } | undefined;
3347
+ providers?: {
3348
+ openrouter?: {
3349
+ apiKey?: string | undefined;
3350
+ apiBase?: string | null | undefined;
3351
+ extraHeaders?: Record<string, string> | null | undefined;
3352
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3353
+ } | undefined;
3354
+ aihubmix?: {
3355
+ apiKey?: string | undefined;
3356
+ apiBase?: string | null | undefined;
3357
+ extraHeaders?: Record<string, string> | null | undefined;
3358
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3359
+ } | undefined;
3360
+ openai?: {
3361
+ apiKey?: string | undefined;
3362
+ apiBase?: string | null | undefined;
3363
+ extraHeaders?: Record<string, string> | null | undefined;
3364
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3365
+ } | undefined;
3366
+ anthropic?: {
3367
+ apiKey?: string | undefined;
3368
+ apiBase?: string | null | undefined;
3369
+ extraHeaders?: Record<string, string> | null | undefined;
3370
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3371
+ } | undefined;
3372
+ deepseek?: {
3373
+ apiKey?: string | undefined;
3374
+ apiBase?: string | null | undefined;
3375
+ extraHeaders?: Record<string, string> | null | undefined;
3376
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3377
+ } | undefined;
3378
+ gemini?: {
3379
+ apiKey?: string | undefined;
3380
+ apiBase?: string | null | undefined;
3381
+ extraHeaders?: Record<string, string> | null | undefined;
3382
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3383
+ } | undefined;
3384
+ zhipu?: {
3385
+ apiKey?: string | undefined;
3386
+ apiBase?: string | null | undefined;
3387
+ extraHeaders?: Record<string, string> | null | undefined;
3388
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3389
+ } | undefined;
3390
+ dashscope?: {
3391
+ apiKey?: string | undefined;
3392
+ apiBase?: string | null | undefined;
3393
+ extraHeaders?: Record<string, string> | null | undefined;
3394
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3395
+ } | undefined;
3396
+ moonshot?: {
3397
+ apiKey?: string | undefined;
3398
+ apiBase?: string | null | undefined;
3399
+ extraHeaders?: Record<string, string> | null | undefined;
3400
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3401
+ } | undefined;
3402
+ minimax?: {
3403
+ apiKey?: string | undefined;
3404
+ apiBase?: string | null | undefined;
3405
+ extraHeaders?: Record<string, string> | null | undefined;
3406
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3407
+ } | undefined;
3408
+ vllm?: {
3409
+ apiKey?: string | undefined;
3410
+ apiBase?: string | null | undefined;
3411
+ extraHeaders?: Record<string, string> | null | undefined;
3412
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3413
+ } | undefined;
3414
+ groq?: {
3415
+ apiKey?: string | undefined;
3416
+ apiBase?: string | null | undefined;
3417
+ extraHeaders?: Record<string, string> | null | undefined;
3418
+ wireApi?: "auto" | "chat" | "responses" | undefined;
3419
+ } | undefined;
3420
+ } | undefined;
3421
+ channels?: {
3422
+ whatsapp?: {
3423
+ enabled?: boolean | undefined;
3424
+ bridgeUrl?: string | undefined;
3425
+ allowFrom?: string[] | undefined;
3426
+ } | undefined;
3427
+ telegram?: {
3428
+ enabled?: boolean | undefined;
3429
+ allowFrom?: string[] | undefined;
3430
+ token?: string | undefined;
3431
+ proxy?: string | null | undefined;
3432
+ } | undefined;
3433
+ discord?: {
3434
+ enabled?: boolean | undefined;
3435
+ allowFrom?: string[] | undefined;
3436
+ token?: string | undefined;
3437
+ gatewayUrl?: string | undefined;
3438
+ intents?: number | undefined;
3439
+ } | undefined;
3440
+ feishu?: {
3441
+ enabled?: boolean | undefined;
3442
+ allowFrom?: string[] | undefined;
3443
+ appId?: string | undefined;
3444
+ appSecret?: string | undefined;
3445
+ encryptKey?: string | undefined;
3446
+ verificationToken?: string | undefined;
3447
+ } | undefined;
3448
+ mochat?: {
3449
+ sessions?: string[] | undefined;
3450
+ enabled?: boolean | undefined;
3451
+ allowFrom?: string[] | undefined;
3452
+ baseUrl?: string | undefined;
3453
+ socketUrl?: string | undefined;
3454
+ socketPath?: string | undefined;
3455
+ socketDisableMsgpack?: boolean | undefined;
3456
+ socketReconnectDelayMs?: number | undefined;
3457
+ socketMaxReconnectDelayMs?: number | undefined;
3458
+ socketConnectTimeoutMs?: number | undefined;
3459
+ refreshIntervalMs?: number | undefined;
3460
+ watchTimeoutMs?: number | undefined;
3461
+ watchLimit?: number | undefined;
3462
+ retryDelayMs?: number | undefined;
3463
+ maxRetryAttempts?: number | undefined;
3464
+ clawToken?: string | undefined;
3465
+ agentUserId?: string | undefined;
3466
+ panels?: string[] | undefined;
3467
+ mention?: {
3468
+ requireInGroups?: boolean | undefined;
3469
+ } | undefined;
3470
+ groups?: Record<string, {
3471
+ requireMention?: boolean | undefined;
3472
+ }> | undefined;
3473
+ replyDelayMode?: string | undefined;
3474
+ replyDelayMs?: number | undefined;
3475
+ } | undefined;
3476
+ dingtalk?: {
3477
+ enabled?: boolean | undefined;
3478
+ allowFrom?: string[] | undefined;
3479
+ clientId?: string | undefined;
3480
+ clientSecret?: string | undefined;
3481
+ } | undefined;
3482
+ email?: {
3483
+ enabled?: boolean | undefined;
3484
+ allowFrom?: string[] | undefined;
3485
+ consentGranted?: boolean | undefined;
3486
+ imapHost?: string | undefined;
3487
+ imapPort?: number | undefined;
3488
+ imapUsername?: string | undefined;
3489
+ imapPassword?: string | undefined;
3490
+ imapMailbox?: string | undefined;
3491
+ imapUseSsl?: boolean | undefined;
3492
+ smtpHost?: string | undefined;
3493
+ smtpPort?: number | undefined;
3494
+ smtpUsername?: string | undefined;
3495
+ smtpPassword?: string | undefined;
3496
+ smtpUseTls?: boolean | undefined;
3497
+ smtpUseSsl?: boolean | undefined;
3498
+ fromAddress?: string | undefined;
3499
+ autoReplyEnabled?: boolean | undefined;
3500
+ pollIntervalSeconds?: number | undefined;
3501
+ markSeen?: boolean | undefined;
3502
+ maxBodyChars?: number | undefined;
3503
+ subjectPrefix?: string | undefined;
3504
+ } | undefined;
3505
+ slack?: {
3506
+ enabled?: boolean | undefined;
3507
+ mode?: string | undefined;
3508
+ webhookPath?: string | undefined;
3509
+ botToken?: string | undefined;
3510
+ appToken?: string | undefined;
3511
+ userTokenReadOnly?: boolean | undefined;
3512
+ groupPolicy?: string | undefined;
3513
+ groupAllowFrom?: string[] | undefined;
3514
+ dm?: {
3515
+ enabled?: boolean | undefined;
3516
+ allowFrom?: string[] | undefined;
3517
+ policy?: string | undefined;
3518
+ } | undefined;
3519
+ } | undefined;
3520
+ qq?: {
3521
+ enabled?: boolean | undefined;
3522
+ allowFrom?: string[] | undefined;
3523
+ appId?: string | undefined;
3524
+ secret?: string | undefined;
3525
+ markdownSupport?: boolean | undefined;
3526
+ } | undefined;
3527
+ } | undefined;
3528
+ gateway?: {
3529
+ host?: string | undefined;
3530
+ port?: number | undefined;
3531
+ } | undefined;
3532
+ ui?: {
3533
+ enabled?: boolean | undefined;
3534
+ open?: boolean | undefined;
3535
+ host?: string | undefined;
3536
+ port?: number | undefined;
3537
+ } | undefined;
3538
+ tools?: {
3539
+ web?: {
3540
+ search?: {
3541
+ apiKey?: string | undefined;
3542
+ maxResults?: number | undefined;
3543
+ } | undefined;
3544
+ } | undefined;
3545
+ exec?: {
3546
+ timeout?: number | undefined;
3547
+ } | undefined;
3548
+ restrictToWorkspace?: boolean | undefined;
3549
+ } | undefined;
3550
+ plugins?: {
3551
+ entries?: Record<string, {
3552
+ enabled?: boolean | undefined;
3553
+ config?: Record<string, unknown> | undefined;
3554
+ }> | undefined;
3555
+ enabled?: boolean | undefined;
3556
+ allow?: string[] | undefined;
3557
+ deny?: string[] | undefined;
3558
+ load?: {
3559
+ paths?: string[] | undefined;
3560
+ } | undefined;
3561
+ installs?: Record<string, {
3562
+ source: "path" | "npm" | "archive";
3563
+ spec?: string | undefined;
3564
+ sourcePath?: string | undefined;
3565
+ installPath?: string | undefined;
3566
+ version?: string | undefined;
3567
+ installedAt?: string | undefined;
3568
+ }> | undefined;
3569
+ } | undefined;
3570
+ }>;
3571
+ type ConfigSchemaJson = Record<string, unknown>;
3572
+ type ConfigSchemaResponse = {
3573
+ schema: ConfigSchemaJson;
3574
+ uiHints: ConfigUiHints;
3575
+ version: string;
3576
+ generatedAt: string;
3577
+ };
3578
+ type Config = z.infer<typeof ConfigSchema>;
3579
+ type ProviderConfig = z.infer<typeof ProviderConfigSchema>;
3580
+ type PluginUiMetadata = {
3581
+ id: string;
3582
+ configSchema?: Record<string, unknown>;
3583
+ configUiHints?: Record<string, {
3584
+ label?: string;
3585
+ help?: string;
3586
+ advanced?: boolean;
3587
+ sensitive?: boolean;
3588
+ placeholder?: string;
3589
+ }>;
3590
+ };
3591
+ declare function getWorkspacePathFromConfig(config: Config): string;
3592
+ declare function matchProvider(config: Config, model?: string): {
3593
+ provider: ProviderConfig | null;
3594
+ name: string | null;
3595
+ };
3596
+ declare function getProvider(config: Config, model?: string): ProviderConfig | null;
3597
+ declare function getProviderName(config: Config, model?: string): string | null;
3598
+ declare function getApiKey(config: Config, model?: string): string | null;
3599
+ declare function getApiBase(config: Config, model?: string): string | null;
3600
+ declare function buildConfigSchema(options?: {
3601
+ version?: string;
3602
+ plugins?: PluginUiMetadata[];
3603
+ }): ConfigSchemaResponse;
3604
+
3605
+ type ExtensionDiagnostic = {
3606
+ level: "warn" | "error";
3607
+ message: string;
3608
+ extensionId?: string;
3609
+ source?: string;
3610
+ };
3611
+ type ExtensionTool = {
3612
+ label?: string;
3613
+ name: string;
3614
+ description?: string;
3615
+ parameters: Record<string, unknown>;
3616
+ execute: ((toolCallId: string, params: Record<string, unknown>) => Promise<unknown> | unknown) | ((params: Record<string, unknown>) => Promise<unknown> | unknown);
3617
+ };
3618
+ type ExtensionToolContext = {
3619
+ config?: Config;
3620
+ workspaceDir?: string;
3621
+ sessionKey?: string;
3622
+ channel?: string;
3623
+ chatId?: string;
3624
+ sandboxed?: boolean;
3625
+ };
3626
+ type ExtensionToolFactory = (ctx: ExtensionToolContext) => ExtensionTool | ExtensionTool[] | null | undefined;
3627
+ type ExtensionToolRegistration = {
3628
+ extensionId: string;
3629
+ factory: ExtensionToolFactory;
3630
+ names: string[];
3631
+ optional: boolean;
3632
+ source: string;
3633
+ };
3634
+ type ExtensionChannel = {
3635
+ id: string;
3636
+ meta?: Record<string, unknown>;
3637
+ capabilities?: Record<string, unknown>;
3638
+ outbound?: {
3639
+ sendText?: (ctx: {
3640
+ cfg: Config;
3641
+ to: string;
3642
+ text: string;
3643
+ accountId?: string | null;
3644
+ }) => Promise<unknown> | unknown;
3645
+ sendPayload?: (ctx: {
3646
+ cfg: Config;
3647
+ to: string;
3648
+ text: string;
3649
+ payload: unknown;
3650
+ accountId?: string | null;
3651
+ }) => Promise<unknown> | unknown;
3652
+ };
3653
+ };
3654
+ type ExtensionChannelRegistration = {
3655
+ extensionId: string;
3656
+ channel: ExtensionChannel;
3657
+ source: string;
3658
+ };
3659
+ type ExtensionRegistry = {
3660
+ tools: ExtensionToolRegistration[];
3661
+ channels: ExtensionChannelRegistration[];
3662
+ diagnostics: ExtensionDiagnostic[];
3663
+ };
3664
+
3665
+ declare class AgentLoop {
3666
+ private options;
3667
+ private context;
3668
+ private sessions;
3669
+ private tools;
3670
+ private subagents;
3671
+ private running;
3672
+ private currentExtensionToolContext;
3673
+ constructor(options: {
3674
+ bus: MessageBus;
3675
+ providerManager: ProviderManager;
3676
+ workspace: string;
3677
+ model?: string | null;
3678
+ maxIterations?: number;
3679
+ braveApiKey?: string | null;
3680
+ execConfig?: {
3681
+ timeout: number;
3682
+ };
3683
+ cronService?: CronService | null;
3684
+ restrictToWorkspace?: boolean;
3685
+ sessionManager?: SessionManager;
3686
+ contextConfig?: Config["agents"]["context"];
3687
+ gatewayController?: GatewayController;
3688
+ config?: Config;
3689
+ extensionRegistry?: ExtensionRegistry;
3690
+ });
3691
+ private registerDefaultTools;
3692
+ private registerExtensionTools;
3693
+ private setExtensionToolContext;
3694
+ run(): Promise<void>;
3695
+ stop(): void;
3696
+ processDirect(params: {
3697
+ content: string;
3698
+ sessionKey?: string;
3699
+ channel?: string;
3700
+ chatId?: string;
3701
+ }): Promise<string>;
3702
+ private processMessage;
3703
+ private processSystemMessage;
3704
+ }
3705
+
3706
+ declare class MemorySearchTool extends Tool {
3707
+ private workspace;
3708
+ constructor(workspace: string);
3709
+ get name(): string;
3710
+ get description(): string;
3711
+ get parameters(): Record<string, unknown>;
3712
+ execute(params: Record<string, unknown>): Promise<string>;
3713
+ }
3714
+ declare class MemoryGetTool extends Tool {
3715
+ private workspace;
3716
+ constructor(workspace: string);
3717
+ get name(): string;
3718
+ get description(): string;
3719
+ get parameters(): Record<string, unknown>;
3720
+ execute(params: Record<string, unknown>): Promise<string>;
3721
+ }
3722
+
3723
+ type FeishuProbeResult = {
3724
+ ok: true;
3725
+ appId: string;
3726
+ botName?: string;
3727
+ botOpenId?: string;
3728
+ } | {
3729
+ ok: false;
3730
+ appId?: string;
3731
+ error: string;
3732
+ };
3733
+ declare function probeFeishu(appId: string, appSecret: string): Promise<FeishuProbeResult>;
3734
+
3735
+ declare abstract class BaseChannel<TConfig extends Record<string, unknown>> {
3736
+ protected config: TConfig;
3737
+ protected bus: MessageBus;
3738
+ protected running: boolean;
3739
+ constructor(config: TConfig, bus: MessageBus);
3740
+ abstract get name(): string;
3741
+ abstract start(): Promise<void>;
3742
+ abstract stop(): Promise<void>;
3743
+ abstract send(msg: OutboundMessage): Promise<void>;
3744
+ isAllowed(senderId: string): boolean;
3745
+ protected handleMessage(params: {
3746
+ senderId: string;
3747
+ chatId: string;
3748
+ content: string;
3749
+ media?: string[];
3750
+ metadata?: Record<string, unknown>;
3751
+ }): Promise<void>;
3752
+ get isRunning(): boolean;
3753
+ }
3754
+
3755
+ declare class ChannelManager {
3756
+ private config;
3757
+ private bus;
3758
+ private sessionManager?;
3759
+ private extensionChannels;
3760
+ private channels;
3761
+ private dispatchTask;
3762
+ private dispatching;
3763
+ constructor(config: Config, bus: MessageBus, sessionManager?: SessionManager | undefined, extensionChannels?: ExtensionChannelRegistration[]);
3764
+ private initChannels;
3765
+ private startChannel;
3766
+ startAll(): Promise<void>;
3767
+ stopAll(): Promise<void>;
3768
+ private dispatchOutbound;
3769
+ getChannel(name: string): BaseChannel<Record<string, unknown>> | undefined;
3770
+ getStatus(): Record<string, {
3771
+ enabled: boolean;
3772
+ running: boolean;
3773
+ }>;
3774
+ get enabledChannels(): string[];
3775
+ }
3776
+
3777
+ declare const ENV_APP_NAME_KEY = "NEXTCLAW_APP_NAME";
3778
+ declare const APP_NAME: string;
3779
+ declare const APP_TAGLINE = "Personal AI Assistant";
3780
+ declare const APP_TITLE: string;
3781
+ declare const ENV_HOME_KEY = "NEXTCLAW_HOME";
3782
+ declare const DEFAULT_HOME_DIR = ".nextclaw";
3783
+ declare const DEFAULT_CONFIG_FILE = "config.json";
3784
+ declare const DEFAULT_WORKSPACE_DIR = "workspace";
3785
+ declare const DEFAULT_CONFIG_PATH = "~/.nextclaw/config.json";
3786
+ declare const DEFAULT_WORKSPACE_PATH = "~/.nextclaw/workspace";
3787
+ declare const APP_USER_AGENT: string;
3788
+ declare const APP_REPLY_SUBJECT: string;
3789
+ declare const SKILL_METADATA_KEY = "nextclaw";
3790
+
3791
+ declare function getConfigPath(): string;
3792
+ declare function getDataDir(): string;
3793
+ declare function loadConfig(configPath?: string): Config;
3794
+ declare function saveConfig(config: Config, configPath?: string): void;
3795
+
3796
+ type ReloadPlan = {
3797
+ changedPaths: string[];
3798
+ restartChannels: boolean;
3799
+ reloadProviders: boolean;
3800
+ restartRequired: string[];
3801
+ noopPaths: string[];
3802
+ };
3803
+ declare function diffConfigPaths(prev: unknown, next: unknown, prefix?: string): string[];
3804
+ declare function buildReloadPlan(changedPaths: string[]): ReloadPlan;
3805
+
3806
+ declare function redactConfigObject<T>(value: T, hints?: ConfigUiHints, prefix?: string): T;
3807
+
3808
+ declare class ExtensionToolAdapter extends Tool {
3809
+ private params;
3810
+ private fallbackDescription;
3811
+ private fallbackParameters;
3812
+ constructor(params: {
3813
+ registration: ExtensionToolRegistration;
3814
+ alias: string;
3815
+ config: Config;
3816
+ workspaceDir: string;
3817
+ contextProvider: () => ExtensionToolContext;
3818
+ diagnostics: ExtensionDiagnostic[];
3819
+ });
3820
+ get name(): string;
3821
+ get description(): string;
3822
+ get parameters(): Record<string, unknown>;
3823
+ execute(params: Record<string, unknown>, toolCallId?: string): Promise<string>;
3824
+ private buildContext;
3825
+ private resolveToolPreview;
3826
+ private resolveToolRuntime;
3827
+ private pickToolForAlias;
3828
+ }
3829
+
3830
+ declare const DEFAULT_HEARTBEAT_INTERVAL_S: number;
3831
+ declare const HEARTBEAT_PROMPT = "Read HEARTBEAT.md in your workspace (if it exists).\nFollow any instructions or tasks listed there.\nIf nothing needs attention, reply with just: HEARTBEAT_OK";
3832
+ declare const HEARTBEAT_OK_TOKEN = "HEARTBEAT_OK";
3833
+ declare class HeartbeatService {
3834
+ private workspace;
3835
+ private onHeartbeat;
3836
+ private intervalS;
3837
+ private enabled;
3838
+ private running;
3839
+ private timer;
3840
+ constructor(workspace: string, onHeartbeat: ((prompt: string) => Promise<string>) | null, intervalS?: number, enabled?: boolean);
3841
+ get heartbeatFile(): string;
3842
+ private readHeartbeatFile;
3843
+ start(): Promise<void>;
3844
+ stop(): void;
3845
+ private tick;
3846
+ triggerNow(): Promise<string | null>;
3847
+ }
3848
+
3849
+ type LiteLLMProviderOptions = {
3850
+ apiKey?: string | null;
3851
+ apiBase?: string | null;
3852
+ defaultModel: string;
3853
+ extraHeaders?: Record<string, string> | null;
3854
+ providerName?: string | null;
3855
+ wireApi?: "auto" | "chat" | "responses" | null;
3856
+ };
3857
+ declare class LiteLLMProvider extends LLMProvider {
3858
+ private defaultModel;
3859
+ private extraHeaders?;
3860
+ private providerName?;
3861
+ private gatewaySpec?;
3862
+ private client;
3863
+ constructor(options: LiteLLMProviderOptions);
3864
+ getDefaultModel(): string;
3865
+ chat(params: {
3866
+ messages: Array<Record<string, unknown>>;
3867
+ tools?: Array<Record<string, unknown>>;
3868
+ model?: string | null;
3869
+ maxTokens?: number;
3870
+ temperature?: number;
3871
+ }): Promise<LLMResponse>;
3872
+ private resolveModel;
3873
+ private stripRoutingPrefix;
3874
+ private applyModelOverrides;
3875
+ private getStandardSpec;
3876
+ }
3877
+
3878
+ type WireApiMode = "auto" | "chat" | "responses";
3879
+ type ProviderSpec = {
3880
+ name: string;
3881
+ keywords: string[];
3882
+ envKey: string;
3883
+ displayName?: string;
3884
+ litellmPrefix?: string;
3885
+ skipPrefixes?: string[];
3886
+ envExtras?: Array<[string, string]>;
3887
+ isGateway?: boolean;
3888
+ isLocal?: boolean;
3889
+ detectByKeyPrefix?: string;
3890
+ detectByBaseKeyword?: string;
3891
+ defaultApiBase?: string;
3892
+ stripModelPrefix?: boolean;
3893
+ modelOverrides?: Array<[string, Record<string, unknown>]>;
3894
+ supportsWireApi?: boolean;
3895
+ wireApiOptions?: WireApiMode[];
3896
+ defaultWireApi?: WireApiMode;
3897
+ };
3898
+ declare const PROVIDERS: ProviderSpec[];
3899
+ declare function findProviderByName(name: string): ProviderSpec | undefined;
3900
+ declare function findProviderByModel(model: string): ProviderSpec | undefined;
3901
+ declare function findGateway(providerName?: string | null, apiKey?: string | null, apiBase?: string | null): ProviderSpec | undefined;
3902
+ declare function providerLabel(spec: ProviderSpec): string;
3903
+
3904
+ declare function ensureDir(path: string): string;
3905
+ declare function getDataPath(): string;
3906
+ declare function getWorkspacePath(workspace?: string): string;
3907
+ declare function getSessionsPath(): string;
3908
+ declare function getMemoryPath(workspace?: string): string;
3909
+ declare function getSkillsPath(workspace?: string): string;
3910
+ declare function todayDate(): string;
3911
+ declare function timestamp(): string;
3912
+ declare function truncateString(value: string, maxLen?: number, suffix?: string): string;
3913
+ declare function safeFilename(value: string): string;
3914
+ declare function parseSessionKey(key: string): {
3915
+ channel: string;
3916
+ chatId: string;
3917
+ };
3918
+ declare function expandHome(value: string): string;
3919
+ declare function getPackageVersion(): string;
3920
+
3921
+ export { APP_NAME, APP_REPLY_SUBJECT, APP_TAGLINE, APP_TITLE, APP_USER_AGENT, AgentDefaultsSchema, AgentLoop, AgentsConfigSchema, ChannelManager, ChannelsConfigSchema, type Config, ConfigSchema, type ConfigSchemaJson, type ConfigSchemaResponse, type ConfigUiHint, type ConfigUiHints, ContextBootstrapSchema, ContextConfigSchema, ContextMemorySchema, CronService, DEFAULT_CONFIG_FILE, DEFAULT_CONFIG_PATH, DEFAULT_HEARTBEAT_INTERVAL_S, DEFAULT_HOME_DIR, DEFAULT_WORKSPACE_DIR, DEFAULT_WORKSPACE_PATH, DingTalkConfigSchema, DiscordConfigSchema, ENV_APP_NAME_KEY, ENV_HOME_KEY, EmailConfigSchema, ExecToolConfigSchema, type ExtensionChannel, type ExtensionChannelRegistration, type ExtensionDiagnostic, type ExtensionRegistry, type ExtensionTool, ExtensionToolAdapter, type ExtensionToolContext, type ExtensionToolFactory, type ExtensionToolRegistration, FeishuConfigSchema, type FeishuProbeResult, GatewayConfigSchema, type GatewayConfigSnapshot, type GatewayController, GatewayTool, HEARTBEAT_OK_TOKEN, HEARTBEAT_PROMPT, HeartbeatService, LLMProvider, type LLMResponse, LiteLLMProvider, type LiteLLMProviderOptions, MemoryGetTool, MemorySearchTool, MessageBus, MochatConfigSchema, MochatGroupRuleSchema, MochatMentionSchema, PROVIDERS, PluginEntrySchema, PluginInstallRecordSchema, type PluginUiMetadata, PluginsConfigSchema, PluginsLoadSchema, type ProviderConfig, ProviderConfigSchema, ProviderManager, type ProviderSpec, ProvidersConfigSchema, QQConfigSchema, type ReloadPlan, SKILL_METADATA_KEY, type Session, SessionManager, type SessionMessage, SlackConfigSchema, SlackDMSchema, TelegramConfigSchema, type ToolCallRequest, ToolsConfigSchema, UiConfigSchema, WebSearchConfigSchema, WebToolsConfigSchema, WhatsAppConfigSchema, type WireApiMode, applySensitiveHints, buildBaseHints, buildConfigSchema, buildReloadPlan, diffConfigPaths, ensureDir, expandHome, findGateway, findProviderByModel, findProviderByName, getApiBase, getApiKey, getConfigPath, getDataDir, getDataPath, getMemoryPath, getPackageVersion, getProvider, getProviderName, getSessionsPath, getSkillsPath, getWorkspacePath, getWorkspacePathFromConfig, isSensitiveConfigPath, loadConfig, mapSensitivePaths, matchProvider, parseSessionKey, probeFeishu, providerLabel, redactConfigObject, safeFilename, saveConfig, timestamp, todayDate, truncateString };