flashclaw 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +305 -0
- package/config/plugins.json +23 -0
- package/dist/agent-runner.d.ts +103 -0
- package/dist/agent-runner.d.ts.map +1 -0
- package/dist/agent-runner.js +530 -0
- package/dist/agent-runner.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +497 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands.d.ts +68 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +252 -0
- package/dist/commands.js.map +1 -0
- package/dist/config-schema.d.ts +21 -0
- package/dist/config-schema.d.ts.map +1 -0
- package/dist/config-schema.js +26 -0
- package/dist/config-schema.js.map +1 -0
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +36 -0
- package/dist/config.js.map +1 -0
- package/dist/core/api-client.d.ts +236 -0
- package/dist/core/api-client.d.ts.map +1 -0
- package/dist/core/api-client.js +369 -0
- package/dist/core/api-client.js.map +1 -0
- package/dist/core/memory.d.ts +291 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +754 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/model-capabilities.d.ts +45 -0
- package/dist/core/model-capabilities.d.ts.map +1 -0
- package/dist/core/model-capabilities.js +85 -0
- package/dist/core/model-capabilities.js.map +1 -0
- package/dist/db.d.ts +103 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +380 -0
- package/dist/db.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +44 -0
- package/dist/errors.js.map +1 -0
- package/dist/health.d.ts +27 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +55 -0
- package/dist/health.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1181 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +9 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +19 -0
- package/dist/logger.js.map +1 -0
- package/dist/message-queue.d.ts +69 -0
- package/dist/message-queue.d.ts.map +1 -0
- package/dist/message-queue.js +198 -0
- package/dist/message-queue.js.map +1 -0
- package/dist/metrics.d.ts +46 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +101 -0
- package/dist/metrics.js.map +1 -0
- package/dist/paths.d.ts +81 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +127 -0
- package/dist/paths.js.map +1 -0
- package/dist/plugins/index.d.ts +9 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +13 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/installer.d.ts +120 -0
- package/dist/plugins/installer.d.ts.map +1 -0
- package/dist/plugins/installer.js +1008 -0
- package/dist/plugins/installer.js.map +1 -0
- package/dist/plugins/loader.d.ts +37 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +429 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +72 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +187 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/types.d.ts +101 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +12 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/session-tracker.d.ts +81 -0
- package/dist/session-tracker.d.ts.map +1 -0
- package/dist/session-tracker.js +228 -0
- package/dist/session-tracker.js.map +1 -0
- package/dist/task-scheduler.d.ts +47 -0
- package/dist/task-scheduler.d.ts.map +1 -0
- package/dist/task-scheduler.js +331 -0
- package/dist/task-scheduler.js.map +1 -0
- package/dist/types.d.ts +57 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/env-substitute.d.ts +63 -0
- package/dist/utils/env-substitute.d.ts.map +1 -0
- package/dist/utils/env-substitute.js +133 -0
- package/dist/utils/env-substitute.js.map +1 -0
- package/dist/utils/log-rotate.d.ts +19 -0
- package/dist/utils/log-rotate.d.ts.map +1 -0
- package/dist/utils/log-rotate.js +85 -0
- package/dist/utils/log-rotate.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +38 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +79 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/retry.d.ts +10 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +47 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils.d.ts +86 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +218 -0
- package/dist/utils.js.map +1 -0
- package/package.json +78 -0
- package/plugins/cancel-task/index.ts +161 -0
- package/plugins/cancel-task/plugin.json +9 -0
- package/plugins/feishu/index.ts +944 -0
- package/plugins/feishu/plugin.json +29 -0
- package/plugins/list-tasks/index.ts +150 -0
- package/plugins/list-tasks/plugin.json +9 -0
- package/plugins/memory/index.ts +190 -0
- package/plugins/memory/plugin.json +7 -0
- package/plugins/pause-task/index.ts +95 -0
- package/plugins/pause-task/plugin.json +8 -0
- package/plugins/register-group/index.ts +147 -0
- package/plugins/register-group/plugin.json +7 -0
- package/plugins/resume-task/index.ts +92 -0
- package/plugins/resume-task/plugin.json +8 -0
- package/plugins/schedule-task/index.ts +248 -0
- package/plugins/schedule-task/plugin.json +9 -0
- package/plugins/send-message/index.ts +75 -0
- package/plugins/send-message/plugin.json +9 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FlashClaw 统一日志模块
|
|
3
|
+
* 使用 pino 提供结构化日志
|
|
4
|
+
*/
|
|
5
|
+
import pino from 'pino';
|
|
6
|
+
export declare const logger: pino.Logger<never, boolean>;
|
|
7
|
+
export declare function createLogger(name: string): pino.Logger;
|
|
8
|
+
export default logger;
|
|
9
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,eAAO,MAAM,MAAM,6BAMjB,CAAC;AAGH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAEtD;AAED,eAAe,MAAM,CAAC"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FlashClaw 统一日志模块
|
|
3
|
+
* 使用 pino 提供结构化日志
|
|
4
|
+
*/
|
|
5
|
+
import pino from 'pino';
|
|
6
|
+
// 创建全局 logger 实例
|
|
7
|
+
export const logger = pino({
|
|
8
|
+
level: process.env.LOG_LEVEL || 'info',
|
|
9
|
+
transport: {
|
|
10
|
+
target: 'pino-pretty',
|
|
11
|
+
options: { colorize: true }
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
// 导出子 logger 工厂函数
|
|
15
|
+
export function createLogger(name) {
|
|
16
|
+
return logger.child({ module: name });
|
|
17
|
+
}
|
|
18
|
+
export default logger;
|
|
19
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,iBAAiB;AACjB,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;IACtC,SAAS,EAAE;QACT,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CACF,CAAC,CAAC;AAEH,kBAAkB;AAClB,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message Queue for FlashClaw
|
|
3
|
+
* 高并发消息排队处理,防止消息丢失
|
|
4
|
+
*/
|
|
5
|
+
export interface QueuedMessage<T> {
|
|
6
|
+
id: string;
|
|
7
|
+
chatId: string;
|
|
8
|
+
data: T;
|
|
9
|
+
timestamp: number;
|
|
10
|
+
retries: number;
|
|
11
|
+
}
|
|
12
|
+
interface QueueConfig {
|
|
13
|
+
maxQueueSize: number;
|
|
14
|
+
maxConcurrent: number;
|
|
15
|
+
processingTimeout: number;
|
|
16
|
+
maxRetries: number;
|
|
17
|
+
}
|
|
18
|
+
type MessageProcessor<T> = (message: QueuedMessage<T>) => Promise<void>;
|
|
19
|
+
export declare class MessageQueue<T> {
|
|
20
|
+
private queues;
|
|
21
|
+
private processing;
|
|
22
|
+
private seenMessages;
|
|
23
|
+
private config;
|
|
24
|
+
private processor;
|
|
25
|
+
private isRunning;
|
|
26
|
+
private processInterval;
|
|
27
|
+
private readonly SEEN_TTL_MS;
|
|
28
|
+
constructor(processor: MessageProcessor<T>, config?: Partial<QueueConfig>);
|
|
29
|
+
/**
|
|
30
|
+
* 启动队列处理
|
|
31
|
+
*/
|
|
32
|
+
start(): void;
|
|
33
|
+
/**
|
|
34
|
+
* 停止队列处理
|
|
35
|
+
*/
|
|
36
|
+
stop(): void;
|
|
37
|
+
/**
|
|
38
|
+
* 添加消息到队列
|
|
39
|
+
* @returns true 如果消息被添加, false 如果是重复消息或队列已满
|
|
40
|
+
*/
|
|
41
|
+
enqueue(chatId: string, messageId: string, data: T): Promise<boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* 处理下一条消息
|
|
44
|
+
*/
|
|
45
|
+
private processNext;
|
|
46
|
+
/**
|
|
47
|
+
* 检查是否是重复消息
|
|
48
|
+
*/
|
|
49
|
+
private isDuplicate;
|
|
50
|
+
/**
|
|
51
|
+
* 标记消息已见
|
|
52
|
+
*/
|
|
53
|
+
private markSeen;
|
|
54
|
+
/**
|
|
55
|
+
* 清理过期的去重记录
|
|
56
|
+
*/
|
|
57
|
+
private cleanupSeenMessages;
|
|
58
|
+
/**
|
|
59
|
+
* 获取队列统计信息
|
|
60
|
+
*/
|
|
61
|
+
getStats(): {
|
|
62
|
+
totalQueued: number;
|
|
63
|
+
processingCount: number;
|
|
64
|
+
queuedByChat: Record<string, number>;
|
|
65
|
+
seenCount: number;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=message-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-queue.d.ts","sourceRoot":"","sources":["../src/message-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AASD,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAExE,qBAAa,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,MAAM,CAA8C;IAC5D,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAA+B;IAGtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;gBAElC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;IAK7E;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAyC3E;;OAEG;YACW,WAAW;IA0DzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,QAAQ,IAAI;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC;KACnB;CAgBF"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message Queue for FlashClaw
|
|
3
|
+
* 高并发消息排队处理,防止消息丢失
|
|
4
|
+
*/
|
|
5
|
+
import pino from 'pino';
|
|
6
|
+
const logger = pino({
|
|
7
|
+
level: process.env.LOG_LEVEL || 'info',
|
|
8
|
+
transport: { target: 'pino-pretty', options: { colorize: true } }
|
|
9
|
+
});
|
|
10
|
+
const DEFAULT_CONFIG = {
|
|
11
|
+
maxQueueSize: 100,
|
|
12
|
+
maxConcurrent: 5,
|
|
13
|
+
processingTimeout: 300000, // 5 minutes
|
|
14
|
+
maxRetries: 2
|
|
15
|
+
};
|
|
16
|
+
export class MessageQueue {
|
|
17
|
+
queues = new Map();
|
|
18
|
+
processing = new Set();
|
|
19
|
+
seenMessages = new Map();
|
|
20
|
+
config;
|
|
21
|
+
processor;
|
|
22
|
+
isRunning = false;
|
|
23
|
+
processInterval = null;
|
|
24
|
+
// 去重 TTL (10 分钟)
|
|
25
|
+
SEEN_TTL_MS = 10 * 60 * 1000;
|
|
26
|
+
constructor(processor, config = {}) {
|
|
27
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
28
|
+
this.processor = processor;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 启动队列处理
|
|
32
|
+
*/
|
|
33
|
+
start() {
|
|
34
|
+
if (this.isRunning)
|
|
35
|
+
return;
|
|
36
|
+
this.isRunning = true;
|
|
37
|
+
// 定期清理过期的去重记录
|
|
38
|
+
this.processInterval = setInterval(() => {
|
|
39
|
+
this.cleanupSeenMessages();
|
|
40
|
+
}, 60000); // 每分钟清理一次
|
|
41
|
+
logger.info('Message queue started');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 停止队列处理
|
|
45
|
+
*/
|
|
46
|
+
stop() {
|
|
47
|
+
this.isRunning = false;
|
|
48
|
+
if (this.processInterval) {
|
|
49
|
+
clearInterval(this.processInterval);
|
|
50
|
+
this.processInterval = null;
|
|
51
|
+
}
|
|
52
|
+
logger.info('Message queue stopped');
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 添加消息到队列
|
|
56
|
+
* @returns true 如果消息被添加, false 如果是重复消息或队列已满
|
|
57
|
+
*/
|
|
58
|
+
async enqueue(chatId, messageId, data) {
|
|
59
|
+
// 去重检查
|
|
60
|
+
if (this.isDuplicate(messageId)) {
|
|
61
|
+
logger.debug({ messageId, chatId }, 'Duplicate message ignored');
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
// 标记已见
|
|
65
|
+
this.markSeen(messageId);
|
|
66
|
+
// 获取或创建队列
|
|
67
|
+
let queue = this.queues.get(chatId);
|
|
68
|
+
if (!queue) {
|
|
69
|
+
queue = [];
|
|
70
|
+
this.queues.set(chatId, queue);
|
|
71
|
+
}
|
|
72
|
+
// 检查队列大小
|
|
73
|
+
if (queue.length >= this.config.maxQueueSize) {
|
|
74
|
+
logger.warn({ chatId, queueSize: queue.length }, 'Queue full, dropping oldest message');
|
|
75
|
+
queue.shift(); // 移除最旧的消息
|
|
76
|
+
}
|
|
77
|
+
// 添加到队列
|
|
78
|
+
const queuedMessage = {
|
|
79
|
+
id: messageId,
|
|
80
|
+
chatId,
|
|
81
|
+
data,
|
|
82
|
+
timestamp: Date.now(),
|
|
83
|
+
retries: 0
|
|
84
|
+
};
|
|
85
|
+
queue.push(queuedMessage);
|
|
86
|
+
logger.debug({ chatId, messageId, queueSize: queue.length }, 'Message enqueued');
|
|
87
|
+
// 触发处理
|
|
88
|
+
this.processNext(chatId);
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 处理下一条消息
|
|
93
|
+
*/
|
|
94
|
+
async processNext(chatId) {
|
|
95
|
+
if (!this.isRunning)
|
|
96
|
+
return;
|
|
97
|
+
// 检查是否已在处理该聊天
|
|
98
|
+
if (this.processing.has(chatId)) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
// 检查并发数
|
|
102
|
+
if (this.processing.size >= this.config.maxConcurrent) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const queue = this.queues.get(chatId);
|
|
106
|
+
if (!queue || queue.length === 0) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
// 取出消息
|
|
110
|
+
const message = queue.shift();
|
|
111
|
+
this.processing.add(chatId);
|
|
112
|
+
try {
|
|
113
|
+
// 设置超时
|
|
114
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
115
|
+
setTimeout(() => reject(new Error('Processing timeout')), this.config.processingTimeout);
|
|
116
|
+
});
|
|
117
|
+
await Promise.race([
|
|
118
|
+
this.processor(message),
|
|
119
|
+
timeoutPromise
|
|
120
|
+
]);
|
|
121
|
+
logger.debug({ chatId, messageId: message.id }, 'Message processed');
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
125
|
+
logger.error({ chatId, messageId: message.id, error: errorMsg }, 'Message processing error');
|
|
126
|
+
// 重试逻辑
|
|
127
|
+
if (message.retries < this.config.maxRetries) {
|
|
128
|
+
message.retries++;
|
|
129
|
+
queue.unshift(message); // 放回队列头部
|
|
130
|
+
logger.info({ chatId, messageId: message.id, retries: message.retries }, 'Message will be retried');
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
logger.error({ chatId, messageId: message.id }, 'Message dropped after max retries');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
finally {
|
|
137
|
+
this.processing.delete(chatId);
|
|
138
|
+
// 继续处理下一条
|
|
139
|
+
if (queue.length > 0) {
|
|
140
|
+
setImmediate(() => this.processNext(chatId));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* 检查是否是重复消息
|
|
146
|
+
*/
|
|
147
|
+
isDuplicate(messageId) {
|
|
148
|
+
const seenAt = this.seenMessages.get(messageId);
|
|
149
|
+
if (!seenAt)
|
|
150
|
+
return false;
|
|
151
|
+
// 检查是否过期
|
|
152
|
+
if (Date.now() - seenAt > this.SEEN_TTL_MS) {
|
|
153
|
+
this.seenMessages.delete(messageId);
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 标记消息已见
|
|
160
|
+
*/
|
|
161
|
+
markSeen(messageId) {
|
|
162
|
+
this.seenMessages.set(messageId, Date.now());
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* 清理过期的去重记录
|
|
166
|
+
*/
|
|
167
|
+
cleanupSeenMessages() {
|
|
168
|
+
const now = Date.now();
|
|
169
|
+
let cleaned = 0;
|
|
170
|
+
for (const [id, timestamp] of this.seenMessages.entries()) {
|
|
171
|
+
if (now - timestamp > this.SEEN_TTL_MS) {
|
|
172
|
+
this.seenMessages.delete(id);
|
|
173
|
+
cleaned++;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (cleaned > 0) {
|
|
177
|
+
logger.debug({ cleaned }, 'Cleaned up expired seen messages');
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* 获取队列统计信息
|
|
182
|
+
*/
|
|
183
|
+
getStats() {
|
|
184
|
+
const queuedByChat = {};
|
|
185
|
+
let totalQueued = 0;
|
|
186
|
+
for (const [chatId, queue] of this.queues.entries()) {
|
|
187
|
+
queuedByChat[chatId] = queue.length;
|
|
188
|
+
totalQueued += queue.length;
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
totalQueued,
|
|
192
|
+
processingCount: this.processing.size,
|
|
193
|
+
queuedByChat,
|
|
194
|
+
seenCount: this.seenMessages.size
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=message-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-queue.js","sourceRoot":"","sources":["../src/message-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 简单的 Prometheus 指标收集器
|
|
3
|
+
* 不依赖外部库,手动生成 Prometheus 格式
|
|
4
|
+
*/
|
|
5
|
+
interface CounterValue {
|
|
6
|
+
value: number;
|
|
7
|
+
labels: Record<string, string>;
|
|
8
|
+
}
|
|
9
|
+
interface GaugeValue {
|
|
10
|
+
value: number;
|
|
11
|
+
labels: Record<string, string>;
|
|
12
|
+
}
|
|
13
|
+
declare class Counter {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly help: string;
|
|
16
|
+
private values;
|
|
17
|
+
constructor(name: string, help: string);
|
|
18
|
+
inc(labels?: Record<string, string>, value?: number): void;
|
|
19
|
+
getValues(): CounterValue[];
|
|
20
|
+
}
|
|
21
|
+
declare class Gauge {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly help: string;
|
|
24
|
+
private values;
|
|
25
|
+
constructor(name: string, help: string);
|
|
26
|
+
set(value: number, labels?: Record<string, string>): void;
|
|
27
|
+
inc(labels?: Record<string, string>, value?: number): void;
|
|
28
|
+
getValues(): GaugeValue[];
|
|
29
|
+
}
|
|
30
|
+
export declare const metrics: {
|
|
31
|
+
messagesReceived: Counter;
|
|
32
|
+
messagesSent: Counter;
|
|
33
|
+
apiCalls: Counter;
|
|
34
|
+
apiErrors: Counter;
|
|
35
|
+
tasksScheduled: Counter;
|
|
36
|
+
tasksExecuted: Counter;
|
|
37
|
+
pluginsLoaded: Gauge;
|
|
38
|
+
activeConnections: Gauge;
|
|
39
|
+
uptime: Gauge;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* 生成 Prometheus 格式的指标输出
|
|
43
|
+
*/
|
|
44
|
+
export declare function getMetricsOutput(): string;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AASD,cAAM,OAAO;aAIO,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,MAAM;IAJ9B,OAAO,CAAC,MAAM,CAAsB;gBAGlB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM;IAG9B,GAAG,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAAE,KAAK,GAAE,MAAU,GAAG,IAAI;IAWjE,SAAS,IAAI,YAAY,EAAE;CAG5B;AAED,cAAM,KAAK;aAIS,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,MAAM;IAJ9B,OAAO,CAAC,MAAM,CAAoB;gBAGhB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM;IAG9B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,IAAI;IAW7D,GAAG,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAAE,KAAK,GAAE,MAAU,GAAG,IAAI;IAWjE,SAAS,IAAI,UAAU,EAAE;CAG1B;AAGD,eAAO,MAAM,OAAO;;;;;;;;;;CAUnB,CAAC;AAIF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAmCzC"}
|
package/dist/metrics.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// src/metrics.ts
|
|
2
|
+
class Counter {
|
|
3
|
+
name;
|
|
4
|
+
help;
|
|
5
|
+
values = [];
|
|
6
|
+
constructor(name, help) {
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.help = help;
|
|
9
|
+
}
|
|
10
|
+
inc(labels = {}, value = 1) {
|
|
11
|
+
const existing = this.values.find(v => JSON.stringify(v.labels) === JSON.stringify(labels));
|
|
12
|
+
if (existing) {
|
|
13
|
+
existing.value += value;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
this.values.push({ value, labels });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
getValues() {
|
|
20
|
+
return this.values;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
class Gauge {
|
|
24
|
+
name;
|
|
25
|
+
help;
|
|
26
|
+
values = [];
|
|
27
|
+
constructor(name, help) {
|
|
28
|
+
this.name = name;
|
|
29
|
+
this.help = help;
|
|
30
|
+
}
|
|
31
|
+
set(value, labels = {}) {
|
|
32
|
+
const existing = this.values.find(v => JSON.stringify(v.labels) === JSON.stringify(labels));
|
|
33
|
+
if (existing) {
|
|
34
|
+
existing.value = value;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.values.push({ value, labels });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
inc(labels = {}, value = 1) {
|
|
41
|
+
const existing = this.values.find(v => JSON.stringify(v.labels) === JSON.stringify(labels));
|
|
42
|
+
if (existing) {
|
|
43
|
+
existing.value += value;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.values.push({ value, labels });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
getValues() {
|
|
50
|
+
return this.values;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// 预定义指标
|
|
54
|
+
export const metrics = {
|
|
55
|
+
messagesReceived: new Counter('flashclaw_messages_received_total', 'Total messages received'),
|
|
56
|
+
messagesSent: new Counter('flashclaw_messages_sent_total', 'Total messages sent'),
|
|
57
|
+
apiCalls: new Counter('flashclaw_api_calls_total', 'Total API calls'),
|
|
58
|
+
apiErrors: new Counter('flashclaw_api_errors_total', 'Total API errors'),
|
|
59
|
+
tasksScheduled: new Counter('flashclaw_tasks_scheduled_total', 'Total tasks scheduled'),
|
|
60
|
+
tasksExecuted: new Counter('flashclaw_tasks_executed_total', 'Total tasks executed'),
|
|
61
|
+
pluginsLoaded: new Gauge('flashclaw_plugins_loaded', 'Number of loaded plugins'),
|
|
62
|
+
activeConnections: new Gauge('flashclaw_active_connections', 'Number of active connections'),
|
|
63
|
+
uptime: new Gauge('flashclaw_uptime_seconds', 'Uptime in seconds'),
|
|
64
|
+
};
|
|
65
|
+
const startTime = Date.now();
|
|
66
|
+
/**
|
|
67
|
+
* 生成 Prometheus 格式的指标输出
|
|
68
|
+
*/
|
|
69
|
+
export function getMetricsOutput() {
|
|
70
|
+
const lines = [];
|
|
71
|
+
// 更新 uptime
|
|
72
|
+
metrics.uptime.set(Math.floor((Date.now() - startTime) / 1000));
|
|
73
|
+
// Counter 指标
|
|
74
|
+
for (const [key, counter] of Object.entries(metrics)) {
|
|
75
|
+
if (counter instanceof Counter) {
|
|
76
|
+
lines.push(`# HELP ${counter.name} ${counter.help}`);
|
|
77
|
+
lines.push(`# TYPE ${counter.name} counter`);
|
|
78
|
+
for (const v of counter.getValues()) {
|
|
79
|
+
const labelStr = Object.entries(v.labels)
|
|
80
|
+
.map(([k, val]) => `${k}="${val}"`)
|
|
81
|
+
.join(',');
|
|
82
|
+
lines.push(`${counter.name}${labelStr ? `{${labelStr}}` : ''} ${v.value}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Gauge 指标
|
|
87
|
+
for (const [key, gauge] of Object.entries(metrics)) {
|
|
88
|
+
if (gauge instanceof Gauge) {
|
|
89
|
+
lines.push(`# HELP ${gauge.name} ${gauge.help}`);
|
|
90
|
+
lines.push(`# TYPE ${gauge.name} gauge`);
|
|
91
|
+
for (const v of gauge.getValues()) {
|
|
92
|
+
const labelStr = Object.entries(v.labels)
|
|
93
|
+
.map(([k, val]) => `${k}="${val}"`)
|
|
94
|
+
.join(',');
|
|
95
|
+
lines.push(`${gauge.name}${labelStr ? `{${labelStr}}` : ''} ${v.value}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return lines.join('\n');
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|
package/dist/paths.d.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FlashClaw Path Management Module
|
|
3
|
+
*
|
|
4
|
+
* Centralized path management for all FlashClaw directories and files.
|
|
5
|
+
* Uses ~/.flashclaw/ as the configuration root directory.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Get the FlashClaw home directory.
|
|
9
|
+
* Supports FLASHCLAW_HOME environment variable override.
|
|
10
|
+
*
|
|
11
|
+
* @returns The FlashClaw home directory path (~/.flashclaw or FLASHCLAW_HOME)
|
|
12
|
+
*/
|
|
13
|
+
export declare function getFlashClawHome(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Path utility object containing all FlashClaw path functions.
|
|
16
|
+
*/
|
|
17
|
+
export declare const paths: {
|
|
18
|
+
/**
|
|
19
|
+
* Root directory (~/.flashclaw)
|
|
20
|
+
*/
|
|
21
|
+
home(): string;
|
|
22
|
+
/**
|
|
23
|
+
* Environment file path (~/.flashclaw/.env)
|
|
24
|
+
*/
|
|
25
|
+
env(): string;
|
|
26
|
+
/**
|
|
27
|
+
* Config directory (~/.flashclaw/config)
|
|
28
|
+
*/
|
|
29
|
+
config(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Plugins configuration file (~/.flashclaw/config/plugins.json)
|
|
32
|
+
*/
|
|
33
|
+
pluginsConfig(): string;
|
|
34
|
+
/**
|
|
35
|
+
* Data directory (~/.flashclaw/data)
|
|
36
|
+
*/
|
|
37
|
+
data(): string;
|
|
38
|
+
/**
|
|
39
|
+
* Database file path (~/.flashclaw/data/flashclaw.db)
|
|
40
|
+
*/
|
|
41
|
+
database(): string;
|
|
42
|
+
/**
|
|
43
|
+
* PID file path (~/.flashclaw/data/flashclaw.pid)
|
|
44
|
+
*/
|
|
45
|
+
pidFile(): string;
|
|
46
|
+
/**
|
|
47
|
+
* Logs directory (~/.flashclaw/logs)
|
|
48
|
+
*/
|
|
49
|
+
logs(): string;
|
|
50
|
+
/**
|
|
51
|
+
* Log file path (~/.flashclaw/logs/flashclaw.log)
|
|
52
|
+
*/
|
|
53
|
+
logFile(): string;
|
|
54
|
+
/**
|
|
55
|
+
* User plugins directory (~/.flashclaw/plugins)
|
|
56
|
+
*/
|
|
57
|
+
userPlugins(): string;
|
|
58
|
+
/**
|
|
59
|
+
* Groups directory (~/.flashclaw/groups)
|
|
60
|
+
*/
|
|
61
|
+
groups(): string;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Get the built-in plugins directory.
|
|
65
|
+
* Returns the path relative to the current module (../plugins).
|
|
66
|
+
*
|
|
67
|
+
* @returns The built-in plugins directory path
|
|
68
|
+
*/
|
|
69
|
+
export declare function getBuiltinPluginsDir(): string;
|
|
70
|
+
/**
|
|
71
|
+
* Ensure all necessary directories exist.
|
|
72
|
+
* Creates the following directories if they don't exist:
|
|
73
|
+
* - ~/.flashclaw
|
|
74
|
+
* - ~/.flashclaw/config
|
|
75
|
+
* - ~/.flashclaw/data
|
|
76
|
+
* - ~/.flashclaw/logs
|
|
77
|
+
* - ~/.flashclaw/plugins
|
|
78
|
+
* - ~/.flashclaw/groups
|
|
79
|
+
*/
|
|
80
|
+
export declare function ensureDirectories(): void;
|
|
81
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,eAAO,MAAM,KAAK;IAChB;;OAEG;YACK,MAAM;IAId;;OAEG;WACI,MAAM;IAIb;;OAEG;cACO,MAAM;IAIhB;;OAEG;qBACc,MAAM;IAIvB;;OAEG;YACK,MAAM;IAId;;OAEG;gBACS,MAAM;IAIlB;;OAEG;eACQ,MAAM;IAIjB;;OAEG;YACK,MAAM;IAId;;OAEG;eACQ,MAAM;IAIjB;;OAEG;mBACY,MAAM;IAIrB;;OAEG;cACO,MAAM;CAGjB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAexC"}
|