@f2a/openclaw-f2a 0.3.1 → 0.3.4
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/dist/F2AComponentRegistry.d.ts +195 -0
- package/dist/F2AComponentRegistry.d.ts.map +1 -0
- package/dist/F2AComponentRegistry.js +385 -0
- package/dist/F2AComponentRegistry.js.map +1 -0
- package/dist/F2ACore.d.ts +227 -0
- package/dist/F2ACore.d.ts.map +1 -0
- package/dist/F2ACore.js +648 -0
- package/dist/F2ACore.js.map +1 -0
- package/dist/F2AMessageRouter.d.ts +108 -0
- package/dist/F2AMessageRouter.d.ts.map +1 -0
- package/dist/F2AMessageRouter.js +157 -0
- package/dist/F2AMessageRouter.js.map +1 -0
- package/dist/F2AToolRegistry.d.ts +45 -0
- package/dist/F2AToolRegistry.d.ts.map +1 -0
- package/dist/F2AToolRegistry.js +79 -0
- package/dist/F2AToolRegistry.js.map +1 -0
- package/dist/F2AWebhookManager.d.ts +79 -0
- package/dist/F2AWebhookManager.d.ts.map +1 -0
- package/dist/F2AWebhookManager.js +241 -0
- package/dist/F2AWebhookManager.js.map +1 -0
- package/dist/agent-manager.js +6 -6
- package/dist/agent-manager.js.map +1 -1
- package/dist/announcement-queue.d.ts +1 -8
- package/dist/announcement-queue.d.ts.map +1 -1
- package/dist/announcement-queue.js +19 -19
- package/dist/announcement-queue.js.map +1 -1
- package/dist/claim-handlers.d.ts +13 -4
- package/dist/claim-handlers.d.ts.map +1 -1
- package/dist/claim-handlers.js +42 -13
- package/dist/claim-handlers.js.map +1 -1
- package/dist/connector-helpers.d.ts +143 -0
- package/dist/connector-helpers.d.ts.map +1 -0
- package/dist/connector-helpers.js +398 -0
- package/dist/connector-helpers.js.map +1 -0
- package/dist/connector.d.ts +87 -265
- package/dist/connector.d.ts.map +1 -1
- package/dist/connector.js +334 -2037
- package/dist/connector.js.map +1 -1
- package/dist/contact-manager.d.ts +1 -1
- package/dist/contact-manager.d.ts.map +1 -1
- package/dist/contact-manager.js +12 -5
- package/dist/contact-manager.js.map +1 -1
- package/dist/contact-tool-handlers.d.ts +72 -0
- package/dist/contact-tool-handlers.d.ts.map +1 -0
- package/dist/contact-tool-handlers.js +413 -0
- package/dist/contact-tool-handlers.js.map +1 -0
- package/dist/f2a-client.d.ts +168 -0
- package/dist/f2a-client.d.ts.map +1 -0
- package/dist/f2a-client.js +425 -0
- package/dist/f2a-client.js.map +1 -0
- package/dist/handshake-protocol.d.ts +3 -2
- package/dist/handshake-protocol.d.ts.map +1 -1
- package/dist/handshake-protocol.js +15 -6
- package/dist/handshake-protocol.js.map +1 -1
- package/dist/index.d.ts +12 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -45
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +31 -9
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +268 -12
- package/dist/logger.js.map +1 -1
- package/dist/network-client.d.ts +1 -8
- package/dist/network-client.d.ts.map +1 -1
- package/dist/network-client.js.map +1 -1
- package/dist/node-manager.d.ts +8 -8
- package/dist/node-manager.d.ts.map +1 -1
- package/dist/node-manager.js +100 -36
- package/dist/node-manager.js.map +1 -1
- package/dist/plugin.d.ts +2 -2
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +43 -23
- package/dist/plugin.js.map +1 -1
- package/dist/task-guard.d.ts.map +1 -1
- package/dist/task-guard.js +44 -38
- package/dist/task-guard.js.map +1 -1
- package/dist/task-queue.d.ts +2 -8
- package/dist/task-queue.d.ts.map +1 -1
- package/dist/task-queue.js +144 -119
- package/dist/task-queue.js.map +1 -1
- package/dist/tool-handlers.d.ts +15 -3
- package/dist/tool-handlers.d.ts.map +1 -1
- package/dist/tool-handlers.js +85 -54
- package/dist/tool-handlers.js.map +1 -1
- package/dist/tools/contact-tools.d.ts +18 -0
- package/dist/tools/contact-tools.d.ts.map +1 -0
- package/dist/tools/contact-tools.js +176 -0
- package/dist/tools/contact-tools.js.map +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +15 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/network-tools.d.ts +17 -0
- package/dist/tools/network-tools.d.ts.map +1 -0
- package/dist/tools/network-tools.js +106 -0
- package/dist/tools/network-tools.js.map +1 -0
- package/dist/tools/task-tools.d.ts +25 -0
- package/dist/tools/task-tools.d.ts.map +1 -0
- package/dist/tools/task-tools.js +275 -0
- package/dist/tools/task-tools.js.map +1 -0
- package/dist/types.d.ts +376 -12
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/webhook-handlers.d.ts +50 -0
- package/dist/webhook-handlers.d.ts.map +1 -0
- package/dist/webhook-handlers.js +183 -0
- package/dist/webhook-handlers.js.map +1 -0
- package/dist/webhook-pusher.d.ts +1 -8
- package/dist/webhook-pusher.d.ts.map +1 -1
- package/dist/webhook-pusher.js.map +1 -1
- package/dist/webhook-server.d.ts +3 -8
- package/dist/webhook-server.d.ts.map +1 -1
- package/dist/webhook-server.js +21 -4
- package/dist/webhook-server.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +7 -4
- package/dist/reputation.d.ts +0 -156
- package/dist/reputation.d.ts.map +0 -1
- package/dist/reputation.js +0 -432
- package/dist/reputation.js.map +0 -1
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* F2A Webhook 管理器
|
|
4
|
+
*
|
|
5
|
+
* 负责管理 Webhook 处理器的创建和配置。
|
|
6
|
+
* 从 connector.ts 拆分(Issue #106),遵循单一职责原则。
|
|
7
|
+
*
|
|
8
|
+
* @module F2AWebhookManager
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.F2AWebhookManager = void 0;
|
|
12
|
+
const types_js_1 = require("./types.js");
|
|
13
|
+
const task_guard_js_1 = require("./task-guard.js");
|
|
14
|
+
const connector_helpers_js_1 = require("./connector-helpers.js");
|
|
15
|
+
/**
|
|
16
|
+
* F2A Webhook 管理器
|
|
17
|
+
*
|
|
18
|
+
* 功能:
|
|
19
|
+
* 1. 创建和配置 Webhook 处理器
|
|
20
|
+
* 2. 处理 discover、delegate、message、status 等 webhook 事件
|
|
21
|
+
*/
|
|
22
|
+
class F2AWebhookManager {
|
|
23
|
+
deps;
|
|
24
|
+
constructor(deps) {
|
|
25
|
+
this.deps = deps;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 创建 Webhook 处理器
|
|
29
|
+
*/
|
|
30
|
+
createHandler() {
|
|
31
|
+
return {
|
|
32
|
+
onDiscover: async (payload) => {
|
|
33
|
+
return this.handleDiscover(payload);
|
|
34
|
+
},
|
|
35
|
+
onDelegate: async (payload) => {
|
|
36
|
+
return this.handleDelegate(payload);
|
|
37
|
+
},
|
|
38
|
+
onMessage: async (payload) => {
|
|
39
|
+
return this.handleMessage(payload);
|
|
40
|
+
},
|
|
41
|
+
onStatus: async () => {
|
|
42
|
+
return this.handleStatus();
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 处理 discover webhook
|
|
48
|
+
*/
|
|
49
|
+
async handleDiscover(payload) {
|
|
50
|
+
// 检查请求者信誉 - 使用分数检查替代 isAllowed
|
|
51
|
+
const requesterScore = this.deps.reputationSystem.getReputation(payload.requester).score;
|
|
52
|
+
if (requesterScore < types_js_1.INTERNAL_REPUTATION_CONFIG.minScoreForService) {
|
|
53
|
+
return {
|
|
54
|
+
capabilities: [],
|
|
55
|
+
reputation: requesterScore,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// 过滤能力
|
|
59
|
+
let caps = this.deps.capabilities;
|
|
60
|
+
if (payload.query.capability) {
|
|
61
|
+
caps = caps.filter(c => c.name === payload.query.capability || c.tools?.includes(payload.query.capability));
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
capabilities: caps,
|
|
65
|
+
reputation: this.deps.reputationSystem.getReputation(payload.requester).score,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 处理 delegate webhook
|
|
70
|
+
*/
|
|
71
|
+
async handleDelegate(payload) {
|
|
72
|
+
const { config, logger, reputationSystem, taskQueue, webhookPusher, api } = this.deps;
|
|
73
|
+
// 安全检查 - 使用分数检查替代 isAllowed
|
|
74
|
+
const requesterScore = reputationSystem.getReputation(payload.from).score;
|
|
75
|
+
if (requesterScore < types_js_1.INTERNAL_REPUTATION_CONFIG.minScoreForService) {
|
|
76
|
+
return {
|
|
77
|
+
accepted: false,
|
|
78
|
+
taskId: payload.taskId,
|
|
79
|
+
reason: 'Reputation too low',
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
// 检查白名单/黑名单
|
|
83
|
+
const whitelist = config.security?.whitelist || [];
|
|
84
|
+
const blacklist = config.security?.blacklist || [];
|
|
85
|
+
const isWhitelisted = whitelist.length > 0 && whitelist.includes(payload.from);
|
|
86
|
+
const isBlacklisted = blacklist.includes(payload.from);
|
|
87
|
+
if (whitelist.length > 0 && !isWhitelisted) {
|
|
88
|
+
return {
|
|
89
|
+
accepted: false,
|
|
90
|
+
taskId: payload.taskId,
|
|
91
|
+
reason: 'Not in whitelist',
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
if (isBlacklisted) {
|
|
95
|
+
return {
|
|
96
|
+
accepted: false,
|
|
97
|
+
taskId: payload.taskId,
|
|
98
|
+
reason: 'In blacklist',
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// TaskGuard 安全检查
|
|
102
|
+
const requesterReputation = reputationSystem.getReputation(payload.from);
|
|
103
|
+
const taskGuardContext = {
|
|
104
|
+
requesterReputation,
|
|
105
|
+
isWhitelisted,
|
|
106
|
+
isBlacklisted,
|
|
107
|
+
recentTaskCount: 0,
|
|
108
|
+
};
|
|
109
|
+
const taskGuardReport = task_guard_js_1.taskGuard.check(payload, taskGuardContext);
|
|
110
|
+
if (!taskGuardReport.passed) {
|
|
111
|
+
const blockReasons = taskGuardReport.blocks.map(b => b.message).join('; ');
|
|
112
|
+
logger?.warn(`[F2A] TaskGuard 阻止任务 ${payload.taskId}: ${blockReasons}`);
|
|
113
|
+
return {
|
|
114
|
+
accepted: false,
|
|
115
|
+
taskId: payload.taskId,
|
|
116
|
+
reason: `TaskGuard blocked: ${blockReasons}`,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if (taskGuardReport.requiresConfirmation) {
|
|
120
|
+
const warnReasons = taskGuardReport.warnings.map(w => w.message).join('; ');
|
|
121
|
+
logger?.warn(`[F2A] TaskGuard 警告 ${payload.taskId}: ${warnReasons}`);
|
|
122
|
+
}
|
|
123
|
+
// 检查队列是否已满
|
|
124
|
+
const stats = taskQueue.getStats();
|
|
125
|
+
if (stats.pending >= (config.maxQueuedTasks || 100)) {
|
|
126
|
+
return {
|
|
127
|
+
accepted: false,
|
|
128
|
+
taskId: payload.taskId,
|
|
129
|
+
reason: 'Task queue is full',
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
// 添加任务到队列
|
|
133
|
+
try {
|
|
134
|
+
const task = taskQueue.add(payload);
|
|
135
|
+
// 优先使用 webhook 推送
|
|
136
|
+
if (webhookPusher && task) {
|
|
137
|
+
const queuedTask = task;
|
|
138
|
+
const result = await webhookPusher.pushTask(queuedTask);
|
|
139
|
+
if (result.success) {
|
|
140
|
+
taskQueue.markWebhookPushed(queuedTask.taskId);
|
|
141
|
+
logger?.info(`[F2A] 任务 ${queuedTask.taskId} 已通过 webhook 推送 (${result.latency}ms)`);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
logger?.info(`[F2A] Webhook 推送失败: ${result.error},任务将在轮询时处理`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// 触发 OpenClaw 心跳
|
|
148
|
+
api?.runtime?.system?.requestHeartbeatNow?.();
|
|
149
|
+
return {
|
|
150
|
+
accepted: true,
|
|
151
|
+
taskId: payload.taskId,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
return {
|
|
156
|
+
accepted: false,
|
|
157
|
+
taskId: payload.taskId,
|
|
158
|
+
reason: error instanceof Error ? error.message : 'Failed to queue task',
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* 处理 message webhook
|
|
164
|
+
*/
|
|
165
|
+
async handleMessage(payload) {
|
|
166
|
+
const { logger, invokeOpenClawAgent } = this.deps;
|
|
167
|
+
// 验证 PeerID 格式
|
|
168
|
+
if (!(0, connector_helpers_js_1.isValidPeerId)(payload.from)) {
|
|
169
|
+
logger?.warn(`[F2A] onMessage: 拒绝来自无效 PeerID 的消息: ${String(payload.from).slice(0, 20)}`);
|
|
170
|
+
return { response: 'Invalid sender' };
|
|
171
|
+
}
|
|
172
|
+
// 检查消息长度限制
|
|
173
|
+
if (payload.content && payload.content.length > connector_helpers_js_1.MAX_MESSAGE_LENGTH) {
|
|
174
|
+
logger?.warn(`[F2A] onMessage: 消息过长 (${payload.content.length} bytes),拒绝处理`);
|
|
175
|
+
return { response: 'Message too long' };
|
|
176
|
+
}
|
|
177
|
+
logger?.info('[F2A] 收到 P2P 消息', {
|
|
178
|
+
from: payload.from.slice(0, 16),
|
|
179
|
+
content: payload.content.slice(0, 50),
|
|
180
|
+
});
|
|
181
|
+
try {
|
|
182
|
+
// 构造消息
|
|
183
|
+
const message = `[来自 ${payload.metadata?.from || payload.from.slice(0, 16)}] ${payload.content}`;
|
|
184
|
+
// 调用消息处理函数
|
|
185
|
+
const result = await invokeOpenClawAgent(payload.from, message);
|
|
186
|
+
return { response: result || '收到消息,但我暂时无法生成回复。' };
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
logger?.error('[F2A] 处理消息失败', { error: (0, connector_helpers_js_1.extractErrorMessage)(error) });
|
|
190
|
+
return { response: '抱歉,我遇到了一些问题,无法处理你的消息。' };
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* 处理 status webhook
|
|
195
|
+
*/
|
|
196
|
+
async handleStatus() {
|
|
197
|
+
const stats = this.deps.taskQueue.getStats();
|
|
198
|
+
return {
|
|
199
|
+
status: 'available',
|
|
200
|
+
load: stats.pending + stats.processing,
|
|
201
|
+
queued: stats.pending,
|
|
202
|
+
processing: stats.processing,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* 更新依赖(用于运行时更新)
|
|
207
|
+
*/
|
|
208
|
+
updateDeps(deps) {
|
|
209
|
+
if (deps.config)
|
|
210
|
+
this.deps.config = deps.config;
|
|
211
|
+
if (deps.capabilities)
|
|
212
|
+
this.deps.capabilities = deps.capabilities;
|
|
213
|
+
if (deps.logger)
|
|
214
|
+
this.deps.logger = deps.logger;
|
|
215
|
+
if (deps.reputationSystem)
|
|
216
|
+
this.deps.reputationSystem = deps.reputationSystem;
|
|
217
|
+
if (deps.taskQueue)
|
|
218
|
+
this.deps.taskQueue = deps.taskQueue;
|
|
219
|
+
if (deps.webhookPusher)
|
|
220
|
+
this.deps.webhookPusher = deps.webhookPusher;
|
|
221
|
+
if (deps.api)
|
|
222
|
+
this.deps.api = deps.api;
|
|
223
|
+
if (deps.invokeOpenClawAgent)
|
|
224
|
+
this.deps.invokeOpenClawAgent = deps.invokeOpenClawAgent;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* 更新能力列表
|
|
228
|
+
*/
|
|
229
|
+
updateCapabilities(capabilities) {
|
|
230
|
+
this.deps.capabilities = capabilities;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* 更新配置
|
|
234
|
+
*/
|
|
235
|
+
updateConfig(config) {
|
|
236
|
+
this.deps.config = config;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
exports.F2AWebhookManager = F2AWebhookManager;
|
|
240
|
+
exports.default = F2AWebhookManager;
|
|
241
|
+
//# sourceMappingURL=F2AWebhookManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"F2AWebhookManager.js","sourceRoot":"","sources":["../src/F2AWebhookManager.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-manager.js
CHANGED
|
@@ -41,13 +41,13 @@ class AgentManager {
|
|
|
41
41
|
const existing = this.loadIdentity();
|
|
42
42
|
if (existing) {
|
|
43
43
|
this.identity = existing;
|
|
44
|
-
logger_js_1.pluginLogger.info('[F2A:Agent] 已加载 Agent
|
|
44
|
+
logger_js_1.pluginLogger.info('[F2A:Agent] 已加载 Agent 身份', { agentId: existing.agentId });
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
47
|
// 创建新身份
|
|
48
48
|
this.identity = this.createIdentity();
|
|
49
49
|
this.saveIdentity(this.identity);
|
|
50
|
-
logger_js_1.pluginLogger.info('[F2A:Agent] 已创建新 Agent
|
|
50
|
+
logger_js_1.pluginLogger.info('[F2A:Agent] 已创建新 Agent 身份', { agentId: this.identity.agentId });
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
53
|
* 异步初始化(兼容旧 API)
|
|
@@ -125,7 +125,7 @@ class AgentManager {
|
|
|
125
125
|
return identity;
|
|
126
126
|
}
|
|
127
127
|
catch (error) {
|
|
128
|
-
logger_js_1.pluginLogger.warn('[F2A:Agent]
|
|
128
|
+
logger_js_1.pluginLogger.warn('[F2A:Agent] 加载身份文件失败', { error: String(error) });
|
|
129
129
|
return null;
|
|
130
130
|
}
|
|
131
131
|
}
|
|
@@ -140,7 +140,7 @@ class AgentManager {
|
|
|
140
140
|
const filePath = (0, path_1.join)(this.dataDir, AGENT_DATA_FILE);
|
|
141
141
|
const data = JSON.stringify(identity, null, 2);
|
|
142
142
|
(0, fs_1.writeFileSync)(filePath, data, { mode: 0o600 }); // 仅所有者可读写
|
|
143
|
-
logger_js_1.pluginLogger.debug('[F2A:Agent]
|
|
143
|
+
logger_js_1.pluginLogger.debug?.('[F2A:Agent] 身份已保存', { filePath });
|
|
144
144
|
}
|
|
145
145
|
/**
|
|
146
146
|
* 导出 Agent 身份(用于迁移)
|
|
@@ -189,7 +189,7 @@ class AgentManager {
|
|
|
189
189
|
}
|
|
190
190
|
this.identity = identity;
|
|
191
191
|
this.saveIdentity(identity);
|
|
192
|
-
logger_js_1.pluginLogger.info('[F2A:Agent] 已导入 Agent
|
|
192
|
+
logger_js_1.pluginLogger.info('[F2A:Agent] 已导入 Agent 身份', { agentId: identity.agentId });
|
|
193
193
|
return identity;
|
|
194
194
|
}
|
|
195
195
|
/**
|
|
@@ -198,7 +198,7 @@ class AgentManager {
|
|
|
198
198
|
resetIdentity() {
|
|
199
199
|
this.identity = this.createIdentity();
|
|
200
200
|
this.saveIdentity(this.identity);
|
|
201
|
-
logger_js_1.pluginLogger.info('[F2A:Agent] 已重置 Agent
|
|
201
|
+
logger_js_1.pluginLogger.info('[F2A:Agent] 已重置 Agent 身份', { agentId: this.identity.agentId });
|
|
202
202
|
return this.identity;
|
|
203
203
|
}
|
|
204
204
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2BAAwE;AACxE,+BAA4B;AAC5B,mCAAqC;AAErC,2CAAqD;AAErD,kBAAkB;AAClB,MAAM,eAAe,GAAG,YAAY,CAAC;AAErC;;;;;;;GAOG;AACH,MAAa,YAAY;IACf,OAAO,CAAS;IAChB,QAAQ,GAAyB,IAAI,CAAC;IACtC,MAAM,CAAc;IAE5B,YAAY,OAAe,EAAE,SAAsB,EAAE;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,oBAAoB;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACK,cAAc;QACpB,WAAW;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,wBAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,13 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { TaskAnnouncement, TaskClaim } from './types.js';
|
|
10
10
|
import { EventEmitter } from 'eventemitter3';
|
|
11
|
-
|
|
12
|
-
interface Logger {
|
|
13
|
-
info(message: string, ...args: unknown[]): void;
|
|
14
|
-
warn(message: string, ...args: unknown[]): void;
|
|
15
|
-
error(message: string, ...args: unknown[]): void;
|
|
16
|
-
debug?(message: string, ...args: unknown[]): void;
|
|
17
|
-
}
|
|
11
|
+
import type { Logger } from './logger.js';
|
|
18
12
|
/**
|
|
19
13
|
* 任务广播队列统计信息
|
|
20
14
|
*
|
|
@@ -148,5 +142,4 @@ export declare function createAnnouncementQueue(options?: {
|
|
|
148
142
|
maxAgeMs?: number;
|
|
149
143
|
}): AnnouncementQueue;
|
|
150
144
|
export declare const announcementQueue: AnnouncementQueue;
|
|
151
|
-
export {};
|
|
152
145
|
//# sourceMappingURL=announcement-queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcement-queue.d.ts","sourceRoot":"","sources":["../src/announcement-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,
|
|
1
|
+
{"version":3,"file":"announcement-queue.d.ts","sourceRoot":"","sources":["../src/announcement-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
33
33
|
this.cleanup();
|
|
34
34
|
// 检查容量
|
|
35
35
|
if (this.announcements.size >= this.maxSize) {
|
|
36
|
-
this.logger.error('[F2A:Announce] create: queue is full, size
|
|
36
|
+
this.logger.error('[F2A:Announce] create: queue is full', { size: this.announcements.size, maxSize: this.maxSize });
|
|
37
37
|
throw new Error('Announcement queue is full');
|
|
38
38
|
}
|
|
39
39
|
// 使用 crypto.randomUUID() 生成唯一 ID,避免碰撞
|
|
@@ -46,7 +46,7 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
46
46
|
claims: []
|
|
47
47
|
};
|
|
48
48
|
this.announcements.set(id, created);
|
|
49
|
-
this.logger.info('[F2A:Announce] create:
|
|
49
|
+
this.logger.info('[F2A:Announce] create: announcement created', { announcementId: id, from: announcement.from, taskType: announcement.taskType });
|
|
50
50
|
// 发出创建事件
|
|
51
51
|
this.emit('announcement:created', created);
|
|
52
52
|
return created;
|
|
@@ -73,17 +73,17 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
73
73
|
submitClaim(announcementId, claim) {
|
|
74
74
|
const announcement = this.announcements.get(announcementId);
|
|
75
75
|
if (!announcement) {
|
|
76
|
-
this.logger.warn('[F2A:Announce] submitClaim: announcement not found,
|
|
76
|
+
this.logger.warn('[F2A:Announce] submitClaim: announcement not found', { announcementId, claimant: claim.claimant });
|
|
77
77
|
return null;
|
|
78
78
|
}
|
|
79
79
|
if (announcement.status !== 'open') {
|
|
80
|
-
this.logger.warn('[F2A:Announce] submitClaim: announcement not open,
|
|
80
|
+
this.logger.warn('[F2A:Announce] submitClaim: announcement not open', { announcementId, status: announcement.status, claimant: claim.claimant });
|
|
81
81
|
return null;
|
|
82
82
|
}
|
|
83
83
|
// 检查该 claimant 是否已经提交过认领(防止重复认领)
|
|
84
84
|
const existingClaim = announcement.claims?.find(c => c.claimant === claim.claimant);
|
|
85
85
|
if (existingClaim) {
|
|
86
|
-
this.logger.info('[F2A:Announce] submitClaim: duplicate claim ignored,
|
|
86
|
+
this.logger.info('[F2A:Announce] submitClaim: duplicate claim ignored', { announcementId, claimant: claim.claimant, existingClaimId: existingClaim.claimId });
|
|
87
87
|
// 返回已存在的认领,而不是创建新的
|
|
88
88
|
return existingClaim;
|
|
89
89
|
}
|
|
@@ -100,7 +100,7 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
100
100
|
announcement.claims = [];
|
|
101
101
|
}
|
|
102
102
|
announcement.claims.push(created);
|
|
103
|
-
this.logger.info('[F2A:Announce] submitClaim:
|
|
103
|
+
this.logger.info('[F2A:Announce] submitClaim: claim submitted', { claimId, announcementId, claimant: claim.claimant });
|
|
104
104
|
return created;
|
|
105
105
|
}
|
|
106
106
|
/**
|
|
@@ -112,22 +112,22 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
112
112
|
acceptClaim(announcementId, claimId) {
|
|
113
113
|
const announcement = this.announcements.get(announcementId);
|
|
114
114
|
if (!announcement) {
|
|
115
|
-
this.logger.warn('[F2A:Announce] acceptClaim: announcement not found,
|
|
115
|
+
this.logger.warn('[F2A:Announce] acceptClaim: announcement not found', { announcementId, claimId });
|
|
116
116
|
return null;
|
|
117
117
|
}
|
|
118
118
|
// 检查是否已被锁定(正在被其他操作处理)
|
|
119
119
|
if (this.processingLocks.has(announcementId)) {
|
|
120
|
-
this.logger.warn('[F2A:Announce] acceptClaim: announcement is being processed,
|
|
120
|
+
this.logger.warn('[F2A:Announce] acceptClaim: announcement is being processed', { announcementId, claimId });
|
|
121
121
|
return null;
|
|
122
122
|
}
|
|
123
123
|
// 检查广播状态
|
|
124
124
|
if (announcement.status !== 'open') {
|
|
125
|
-
this.logger.warn('[F2A:Announce] acceptClaim: announcement not open,
|
|
125
|
+
this.logger.warn('[F2A:Announce] acceptClaim: announcement not open', { announcementId, status: announcement.status, claimId });
|
|
126
126
|
return null;
|
|
127
127
|
}
|
|
128
128
|
const claim = announcement.claims?.find(c => c.claimId === claimId);
|
|
129
129
|
if (!claim) {
|
|
130
|
-
this.logger.warn('[F2A:Announce] acceptClaim: claim not found, announcementId
|
|
130
|
+
this.logger.warn('[F2A:Announce] acceptClaim: claim not found', { announcementId, claimId });
|
|
131
131
|
return null;
|
|
132
132
|
}
|
|
133
133
|
// 获取锁
|
|
@@ -135,7 +135,7 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
135
135
|
try {
|
|
136
136
|
// 再次检查广播状态(双重检查)
|
|
137
137
|
if (announcement.status !== 'open') {
|
|
138
|
-
this.logger.warn('[F2A:Announce] acceptClaim: race condition detected, announcement status changed,
|
|
138
|
+
this.logger.warn('[F2A:Announce] acceptClaim: race condition detected, announcement status changed', { announcementId, status: announcement.status, claimId });
|
|
139
139
|
return null;
|
|
140
140
|
}
|
|
141
141
|
// 标记该认领为接受
|
|
@@ -150,14 +150,14 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
150
150
|
}).length || 0;
|
|
151
151
|
// 标记广播为已认领
|
|
152
152
|
announcement.status = 'claimed';
|
|
153
|
-
this.logger.info('[F2A:Announce] acceptClaim:
|
|
153
|
+
this.logger.info('[F2A:Announce] acceptClaim: claim accepted', { claimId, announcementId, claimant: claim.claimant, rejectedCount });
|
|
154
154
|
// 发出认领事件(在锁内发出,确保状态一致)
|
|
155
155
|
this.emit('announcement:claimed', announcement, claim);
|
|
156
156
|
return claim;
|
|
157
157
|
}
|
|
158
158
|
catch (error) {
|
|
159
159
|
// P1 修复:记录异常并返回 null,但不改变状态
|
|
160
|
-
this.logger.error('[F2A:Announce] acceptClaim: unexpected error,
|
|
160
|
+
this.logger.error('[F2A:Announce] acceptClaim: unexpected error', { announcementId, claimId, error: String(error) });
|
|
161
161
|
// 注意:不恢复状态,因为操作可能已部分完成
|
|
162
162
|
// 但锁会在 finally 中释放
|
|
163
163
|
return null;
|
|
@@ -173,16 +173,16 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
173
173
|
rejectClaim(announcementId, claimId) {
|
|
174
174
|
const announcement = this.announcements.get(announcementId);
|
|
175
175
|
if (!announcement) {
|
|
176
|
-
this.logger.warn('[F2A:Announce] rejectClaim: announcement not found,
|
|
176
|
+
this.logger.warn('[F2A:Announce] rejectClaim: announcement not found', { announcementId, claimId });
|
|
177
177
|
return null;
|
|
178
178
|
}
|
|
179
179
|
const claim = announcement.claims?.find(c => c.claimId === claimId);
|
|
180
180
|
if (!claim) {
|
|
181
|
-
this.logger.warn('[F2A:Announce] rejectClaim: claim not found, announcementId
|
|
181
|
+
this.logger.warn('[F2A:Announce] rejectClaim: claim not found', { announcementId, claimId });
|
|
182
182
|
return null;
|
|
183
183
|
}
|
|
184
184
|
claim.status = 'rejected';
|
|
185
|
-
this.logger.info('[F2A:Announce] rejectClaim:
|
|
185
|
+
this.logger.info('[F2A:Announce] rejectClaim: claim rejected', { claimId, announcementId, claimant: claim.claimant });
|
|
186
186
|
return claim;
|
|
187
187
|
}
|
|
188
188
|
/**
|
|
@@ -251,7 +251,7 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
251
251
|
reason: 'timeout'
|
|
252
252
|
};
|
|
253
253
|
this.emit('announcement:expired', expiredEvent);
|
|
254
|
-
this.logger.info('[F2A:Announce] cleanup: announcement expired,
|
|
254
|
+
this.logger.info('[F2A:Announce] cleanup: announcement expired', { announcementId: announcement.announcementId, taskType: announcement.taskType, from: announcement.from });
|
|
255
255
|
}
|
|
256
256
|
// 删除已过期一段时间的
|
|
257
257
|
if (age > this.maxAgeMs * 2) {
|
|
@@ -261,7 +261,7 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
if (expiredCount > 0 || deletedCount > 0) {
|
|
264
|
-
this.logger.info('[F2A:Announce] cleanup:
|
|
264
|
+
this.logger.info('[F2A:Announce] cleanup: cleanup completed', { expired: expiredCount, deleted: deletedCount, remaining: this.announcements.size });
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
267
|
/**
|
|
@@ -285,7 +285,7 @@ class AnnouncementQueue extends eventemitter3_1.EventEmitter {
|
|
|
285
285
|
const count = this.processingLocks.size;
|
|
286
286
|
this.processingLocks.clear();
|
|
287
287
|
if (count > 0) {
|
|
288
|
-
this.logger.warn('[F2A:Announce] forceClearOrphanLocks: cleared
|
|
288
|
+
this.logger.warn('[F2A:Announce] forceClearOrphanLocks: cleared orphan locks', { count });
|
|
289
289
|
}
|
|
290
290
|
return count;
|
|
291
291
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcement-queue.js","sourceRoot":"","sources":["../src/announcement-queue.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;
|
|
1
|
+
{"version":3,"file":"announcement-queue.js","sourceRoot":"","sources":["../src/announcement-queue.ts"],"names":[],"mappings":"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"}
|
package/dist/claim-handlers.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* F2A OpenClaw Connector - Claim Handlers
|
|
3
3
|
* 认领模式处理器模块 - 处理任务广播和认领相关工具
|
|
4
|
+
*
|
|
5
|
+
* Issue #106: 使用 F2APluginPublicInterface 解除循环依赖
|
|
4
6
|
*/
|
|
5
|
-
import type { SessionContext, ToolResult } from './types.js';
|
|
6
|
-
import type { F2AOpenClawAdapter } from './connector.js';
|
|
7
|
+
import type { SessionContext, ToolResult, F2APluginPublicInterface } from './types.js';
|
|
7
8
|
/**
|
|
8
9
|
* 认领模式处理器参数类型
|
|
9
10
|
*/
|
|
@@ -37,10 +38,18 @@ export interface ClaimHandlerParams {
|
|
|
37
38
|
/**
|
|
38
39
|
* 认领模式处理器类
|
|
39
40
|
* 包含所有认领相关工具的处理逻辑
|
|
41
|
+
*
|
|
42
|
+
* Issue #106: 使用 F2APluginPublicInterface 解除循环依赖
|
|
40
43
|
*/
|
|
41
44
|
export declare class ClaimHandlers {
|
|
42
|
-
private
|
|
43
|
-
constructor(
|
|
45
|
+
private plugin;
|
|
46
|
+
constructor(plugin: F2APluginPublicInterface);
|
|
47
|
+
/**
|
|
48
|
+
* 类型安全的内部访问 getter
|
|
49
|
+
*/
|
|
50
|
+
private get announcementQueue();
|
|
51
|
+
private get api();
|
|
52
|
+
private get config();
|
|
44
53
|
/**
|
|
45
54
|
* 处理 f2a_announce 工具
|
|
46
55
|
* 广播任务到 F2A 网络
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-handlers.d.ts","sourceRoot":"","sources":["../src/claim-handlers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claim-handlers.d.ts","sourceRoot":"","sources":["../src/claim-handlers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EAGV,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAIpB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;QACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iBAAiB,EAAE;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,EAAE;QACL,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,EAAE;QACZ,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;QACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC;KACtD,CAAC;CACH;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,wBAAwB;IAEpD;;OAEG;IACH,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,MAAM,GAEjB;IAED;;;OAGG;IACG,cAAc,CAClB,MAAM,EAAE,kBAAkB,CAAC,UAAU,CAAC,EACtC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC;IAuGtB;;;OAGG;IACG,uBAAuB,CAC3B,MAAM,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC/C,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC;IAkDtB;;;OAGG;IACG,WAAW,CACf,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC;IAkFtB;;;OAGG;IACG,kBAAkB,CACtB,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAC1C,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC;IAgGtB;;;OAGG;IACG,cAAc,CAClB,MAAM,EAAE,kBAAkB,CAAC,UAAU,CAAC,EACtC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC;IA0CtB;;;OAGG;IACG,uBAAuB,CAC3B,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC;CAkBvB"}
|