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.
Files changed (138) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +305 -0
  3. package/config/plugins.json +23 -0
  4. package/dist/agent-runner.d.ts +103 -0
  5. package/dist/agent-runner.d.ts.map +1 -0
  6. package/dist/agent-runner.js +530 -0
  7. package/dist/agent-runner.js.map +1 -0
  8. package/dist/cli.d.ts +7 -0
  9. package/dist/cli.d.ts.map +1 -0
  10. package/dist/cli.js +497 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/commands.d.ts +68 -0
  13. package/dist/commands.d.ts.map +1 -0
  14. package/dist/commands.js +252 -0
  15. package/dist/commands.js.map +1 -0
  16. package/dist/config-schema.d.ts +21 -0
  17. package/dist/config-schema.d.ts.map +1 -0
  18. package/dist/config-schema.js +26 -0
  19. package/dist/config-schema.js.map +1 -0
  20. package/dist/config.d.ts +11 -0
  21. package/dist/config.d.ts.map +1 -0
  22. package/dist/config.js +36 -0
  23. package/dist/config.js.map +1 -0
  24. package/dist/core/api-client.d.ts +236 -0
  25. package/dist/core/api-client.d.ts.map +1 -0
  26. package/dist/core/api-client.js +369 -0
  27. package/dist/core/api-client.js.map +1 -0
  28. package/dist/core/memory.d.ts +291 -0
  29. package/dist/core/memory.d.ts.map +1 -0
  30. package/dist/core/memory.js +754 -0
  31. package/dist/core/memory.js.map +1 -0
  32. package/dist/core/model-capabilities.d.ts +45 -0
  33. package/dist/core/model-capabilities.d.ts.map +1 -0
  34. package/dist/core/model-capabilities.js +85 -0
  35. package/dist/core/model-capabilities.js.map +1 -0
  36. package/dist/db.d.ts +103 -0
  37. package/dist/db.d.ts.map +1 -0
  38. package/dist/db.js +380 -0
  39. package/dist/db.js.map +1 -0
  40. package/dist/errors.d.ts +22 -0
  41. package/dist/errors.d.ts.map +1 -0
  42. package/dist/errors.js +44 -0
  43. package/dist/errors.js.map +1 -0
  44. package/dist/health.d.ts +27 -0
  45. package/dist/health.d.ts.map +1 -0
  46. package/dist/health.js +55 -0
  47. package/dist/health.js.map +1 -0
  48. package/dist/index.d.ts +11 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +1181 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/logger.d.ts +9 -0
  53. package/dist/logger.d.ts.map +1 -0
  54. package/dist/logger.js +19 -0
  55. package/dist/logger.js.map +1 -0
  56. package/dist/message-queue.d.ts +69 -0
  57. package/dist/message-queue.d.ts.map +1 -0
  58. package/dist/message-queue.js +198 -0
  59. package/dist/message-queue.js.map +1 -0
  60. package/dist/metrics.d.ts +46 -0
  61. package/dist/metrics.d.ts.map +1 -0
  62. package/dist/metrics.js +101 -0
  63. package/dist/metrics.js.map +1 -0
  64. package/dist/paths.d.ts +81 -0
  65. package/dist/paths.d.ts.map +1 -0
  66. package/dist/paths.js +127 -0
  67. package/dist/paths.js.map +1 -0
  68. package/dist/plugins/index.d.ts +9 -0
  69. package/dist/plugins/index.d.ts.map +1 -0
  70. package/dist/plugins/index.js +13 -0
  71. package/dist/plugins/index.js.map +1 -0
  72. package/dist/plugins/installer.d.ts +120 -0
  73. package/dist/plugins/installer.d.ts.map +1 -0
  74. package/dist/plugins/installer.js +1008 -0
  75. package/dist/plugins/installer.js.map +1 -0
  76. package/dist/plugins/loader.d.ts +37 -0
  77. package/dist/plugins/loader.d.ts.map +1 -0
  78. package/dist/plugins/loader.js +429 -0
  79. package/dist/plugins/loader.js.map +1 -0
  80. package/dist/plugins/manager.d.ts +72 -0
  81. package/dist/plugins/manager.d.ts.map +1 -0
  82. package/dist/plugins/manager.js +187 -0
  83. package/dist/plugins/manager.js.map +1 -0
  84. package/dist/plugins/types.d.ts +101 -0
  85. package/dist/plugins/types.d.ts.map +1 -0
  86. package/dist/plugins/types.js +12 -0
  87. package/dist/plugins/types.js.map +1 -0
  88. package/dist/session-tracker.d.ts +81 -0
  89. package/dist/session-tracker.d.ts.map +1 -0
  90. package/dist/session-tracker.js +228 -0
  91. package/dist/session-tracker.js.map +1 -0
  92. package/dist/task-scheduler.d.ts +47 -0
  93. package/dist/task-scheduler.d.ts.map +1 -0
  94. package/dist/task-scheduler.js +331 -0
  95. package/dist/task-scheduler.js.map +1 -0
  96. package/dist/types.d.ts +57 -0
  97. package/dist/types.d.ts.map +1 -0
  98. package/dist/types.js +2 -0
  99. package/dist/types.js.map +1 -0
  100. package/dist/utils/env-substitute.d.ts +63 -0
  101. package/dist/utils/env-substitute.d.ts.map +1 -0
  102. package/dist/utils/env-substitute.js +133 -0
  103. package/dist/utils/env-substitute.js.map +1 -0
  104. package/dist/utils/log-rotate.d.ts +19 -0
  105. package/dist/utils/log-rotate.d.ts.map +1 -0
  106. package/dist/utils/log-rotate.js +85 -0
  107. package/dist/utils/log-rotate.js.map +1 -0
  108. package/dist/utils/rate-limiter.d.ts +38 -0
  109. package/dist/utils/rate-limiter.d.ts.map +1 -0
  110. package/dist/utils/rate-limiter.js +79 -0
  111. package/dist/utils/rate-limiter.js.map +1 -0
  112. package/dist/utils/retry.d.ts +10 -0
  113. package/dist/utils/retry.d.ts.map +1 -0
  114. package/dist/utils/retry.js +47 -0
  115. package/dist/utils/retry.js.map +1 -0
  116. package/dist/utils.d.ts +86 -0
  117. package/dist/utils.d.ts.map +1 -0
  118. package/dist/utils.js +218 -0
  119. package/dist/utils.js.map +1 -0
  120. package/package.json +78 -0
  121. package/plugins/cancel-task/index.ts +161 -0
  122. package/plugins/cancel-task/plugin.json +9 -0
  123. package/plugins/feishu/index.ts +944 -0
  124. package/plugins/feishu/plugin.json +29 -0
  125. package/plugins/list-tasks/index.ts +150 -0
  126. package/plugins/list-tasks/plugin.json +9 -0
  127. package/plugins/memory/index.ts +190 -0
  128. package/plugins/memory/plugin.json +7 -0
  129. package/plugins/pause-task/index.ts +95 -0
  130. package/plugins/pause-task/plugin.json +8 -0
  131. package/plugins/register-group/index.ts +147 -0
  132. package/plugins/register-group/plugin.json +7 -0
  133. package/plugins/resume-task/index.ts +92 -0
  134. package/plugins/resume-task/plugin.json +8 -0
  135. package/plugins/schedule-task/index.ts +248 -0
  136. package/plugins/schedule-task/plugin.json +9 -0
  137. package/plugins/send-message/index.ts +75 -0
  138. 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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"}
@@ -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"}
@@ -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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"}
@@ -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"}