@f2a/openclaw-adapter 0.1.0 → 0.1.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/announcement-queue.d.ts +72 -1
- package/dist/announcement-queue.d.ts.map +1 -1
- package/dist/announcement-queue.js +145 -20
- package/dist/announcement-queue.js.map +1 -1
- package/dist/claim-handlers.d.ts +75 -0
- package/dist/claim-handlers.d.ts.map +1 -0
- package/dist/claim-handlers.js +368 -0
- package/dist/claim-handlers.js.map +1 -0
- package/dist/connector.d.ts +45 -18
- package/dist/connector.d.ts.map +1 -1
- package/dist/connector.js +219 -583
- package/dist/connector.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +28 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +44 -0
- package/dist/logger.js.map +1 -0
- package/dist/network-client.d.ts +17 -1
- package/dist/network-client.d.ts.map +1 -1
- package/dist/network-client.js +119 -23
- package/dist/network-client.js.map +1 -1
- package/dist/node-manager.d.ts +20 -0
- package/dist/node-manager.d.ts.map +1 -1
- package/dist/node-manager.js +194 -18
- package/dist/node-manager.js.map +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +4 -5
- package/dist/plugin.js.map +1 -1
- package/dist/reputation.d.ts +22 -1
- package/dist/reputation.d.ts.map +1 -1
- package/dist/reputation.js +102 -5
- package/dist/reputation.js.map +1 -1
- package/dist/task-guard.d.ts +82 -0
- package/dist/task-guard.d.ts.map +1 -1
- package/dist/task-guard.js +392 -15
- package/dist/task-guard.js.map +1 -1
- package/dist/task-queue.d.ts +50 -7
- package/dist/task-queue.d.ts.map +1 -1
- package/dist/task-queue.js +445 -12
- package/dist/task-queue.js.map +1 -1
- package/dist/tool-handlers.d.ts +96 -0
- package/dist/tool-handlers.d.ts.map +1 -0
- package/dist/tool-handlers.js +431 -0
- package/dist/tool-handlers.js.map +1 -0
- package/dist/types.d.ts +98 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -1
- package/dist/webhook-pusher.d.ts +71 -0
- package/dist/webhook-pusher.d.ts.map +1 -0
- package/dist/webhook-pusher.js +174 -0
- package/dist/webhook-pusher.js.map +1 -0
- package/dist/webhook-server.d.ts +8 -1
- package/dist/webhook-server.d.ts.map +1 -1
- package/dist/webhook-server.js +42 -7
- package/dist/webhook-server.js.map +1 -1
- package/package.json +21 -8
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* F2A OpenClaw Connector - Claim Handlers
|
|
4
|
+
* 认领模式处理器模块 - 处理任务广播和认领相关工具
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ClaimHandlers = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* 认领模式处理器类
|
|
10
|
+
* 包含所有认领相关工具的处理逻辑
|
|
11
|
+
*/
|
|
12
|
+
class ClaimHandlers {
|
|
13
|
+
adapter;
|
|
14
|
+
constructor(adapter) {
|
|
15
|
+
this.adapter = adapter;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 处理 f2a_announce 工具
|
|
19
|
+
* 广播任务到 F2A 网络
|
|
20
|
+
*/
|
|
21
|
+
async handleAnnounce(params, context) {
|
|
22
|
+
// 输入验证
|
|
23
|
+
if (!params.task_type || typeof params.task_type !== 'string' || params.task_type.trim() === '') {
|
|
24
|
+
return { content: '❌ 请提供有效的 task_type 参数' };
|
|
25
|
+
}
|
|
26
|
+
if (!params.description || typeof params.description !== 'string' || params.description.trim() === '') {
|
|
27
|
+
return { content: '❌ 请提供有效的 description 参数' };
|
|
28
|
+
}
|
|
29
|
+
// estimated_complexity 验证:必须在 1-10 之间
|
|
30
|
+
if (params.estimated_complexity !== undefined) {
|
|
31
|
+
if (typeof params.estimated_complexity !== 'number' || !Number.isFinite(params.estimated_complexity)) {
|
|
32
|
+
return { content: '❌ estimated_complexity 必须是有效数字' };
|
|
33
|
+
}
|
|
34
|
+
if (params.estimated_complexity < 1 || params.estimated_complexity > 10) {
|
|
35
|
+
return { content: '❌ estimated_complexity 必须在 1 到 10 之间' };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// reward 验证:必须为非负数
|
|
39
|
+
if (params.reward !== undefined) {
|
|
40
|
+
if (typeof params.reward !== 'number' || !Number.isFinite(params.reward)) {
|
|
41
|
+
return { content: '❌ reward 必须是有效数字' };
|
|
42
|
+
}
|
|
43
|
+
if (params.reward < 0) {
|
|
44
|
+
return { content: '❌ reward 不能为负数' };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// timeout 验证:必须为正数且不超过 24 小时
|
|
48
|
+
if (params.timeout !== undefined) {
|
|
49
|
+
if (typeof params.timeout !== 'number' || !Number.isFinite(params.timeout)) {
|
|
50
|
+
return { content: '❌ timeout 必须是有效数字' };
|
|
51
|
+
}
|
|
52
|
+
if (params.timeout <= 0) {
|
|
53
|
+
return { content: '❌ timeout 必须大于 0' };
|
|
54
|
+
}
|
|
55
|
+
if (params.timeout > 24 * 60 * 60 * 1000) {
|
|
56
|
+
return { content: '❌ timeout 不能超过 24 小时' };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const announcementQueue = this.adapter.announcementQueue;
|
|
60
|
+
const api = this.adapter.api;
|
|
61
|
+
const config = this.adapter.config;
|
|
62
|
+
try {
|
|
63
|
+
const announcement = announcementQueue.create({
|
|
64
|
+
taskType: params.task_type,
|
|
65
|
+
description: params.description,
|
|
66
|
+
requiredCapabilities: params.required_capabilities,
|
|
67
|
+
estimatedComplexity: params.estimated_complexity,
|
|
68
|
+
reward: params.reward,
|
|
69
|
+
timeout: params.timeout || 300000,
|
|
70
|
+
from: 'local', // 实际应该从网络获取本机ID
|
|
71
|
+
});
|
|
72
|
+
// 触发心跳让其他Agent知道有新广播
|
|
73
|
+
api?.runtime?.system?.requestHeartbeatNow?.();
|
|
74
|
+
const content = `
|
|
75
|
+
📢 任务广播已创建
|
|
76
|
+
|
|
77
|
+
ID: ${announcement.announcementId}
|
|
78
|
+
类型: ${announcement.taskType}
|
|
79
|
+
描述: ${announcement.description.slice(0, 100)}${announcement.description.length > 100 ? '...' : ''}
|
|
80
|
+
${announcement.requiredCapabilities ? `所需能力: ${announcement.requiredCapabilities.join(', ')}` : ''}
|
|
81
|
+
${announcement.estimatedComplexity ? `复杂度: ${announcement.estimatedComplexity}/10` : ''}
|
|
82
|
+
${announcement.reward ? `奖励: ${announcement.reward}` : ''}
|
|
83
|
+
超时: ${Math.round(announcement.timeout / 1000)}秒
|
|
84
|
+
|
|
85
|
+
💡 使用 f2a_manage_claims 查看认领情况
|
|
86
|
+
`.trim();
|
|
87
|
+
return {
|
|
88
|
+
content,
|
|
89
|
+
data: {
|
|
90
|
+
announcementId: announcement.announcementId,
|
|
91
|
+
status: announcement.status
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
return {
|
|
97
|
+
content: `❌ 创建广播失败: ${error.message}`,
|
|
98
|
+
data: { error: error.message }
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 处理 f2a_list_announcements 工具
|
|
104
|
+
* 查看当前开放的任务广播
|
|
105
|
+
*/
|
|
106
|
+
async handleListAnnouncements(params, context) {
|
|
107
|
+
const announcementQueue = this.adapter.announcementQueue;
|
|
108
|
+
let announcements = announcementQueue.getOpen();
|
|
109
|
+
// 按能力过滤
|
|
110
|
+
if (params.capability) {
|
|
111
|
+
announcements = announcements.filter((a) => a.requiredCapabilities?.includes(params.capability));
|
|
112
|
+
}
|
|
113
|
+
// 限制数量
|
|
114
|
+
const limit = params.limit || 10;
|
|
115
|
+
announcements = announcements.slice(0, limit);
|
|
116
|
+
if (announcements.length === 0) {
|
|
117
|
+
return { content: '📭 当前没有开放的任务广播' };
|
|
118
|
+
}
|
|
119
|
+
const content = `
|
|
120
|
+
📢 开放的任务广播 (${announcements.length} 个):
|
|
121
|
+
|
|
122
|
+
${announcements.map((a, i) => {
|
|
123
|
+
const claimCount = a.claims?.length || 0;
|
|
124
|
+
return `${i + 1}. [${a.announcementId.slice(0, 8)}...] ${a.description.slice(0, 50)}${a.description.length > 50 ? '...' : ''}
|
|
125
|
+
类型: ${a.taskType} | 认领: ${claimCount} | 复杂度: ${a.estimatedComplexity || '?'}/10
|
|
126
|
+
${a.reward ? `奖励: ${a.reward} | ` : ''}超时: ${Math.round(a.timeout / 1000)}s`;
|
|
127
|
+
}).join('\n\n')}
|
|
128
|
+
|
|
129
|
+
💡 使用 f2a_claim 认领任务
|
|
130
|
+
`.trim();
|
|
131
|
+
return {
|
|
132
|
+
content,
|
|
133
|
+
data: {
|
|
134
|
+
count: announcements.length,
|
|
135
|
+
announcements: announcements.map((a) => ({
|
|
136
|
+
announcementId: a.announcementId,
|
|
137
|
+
taskType: a.taskType,
|
|
138
|
+
description: a.description.slice(0, 100),
|
|
139
|
+
requiredCapabilities: a.requiredCapabilities,
|
|
140
|
+
estimatedComplexity: a.estimatedComplexity,
|
|
141
|
+
reward: a.reward,
|
|
142
|
+
claimCount: a.claims?.length || 0
|
|
143
|
+
}))
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* 处理 f2a_claim 工具
|
|
149
|
+
* 认领一个开放的任务广播
|
|
150
|
+
*/
|
|
151
|
+
async handleClaim(params, context) {
|
|
152
|
+
// 输入验证
|
|
153
|
+
if (!params.announcement_id || typeof params.announcement_id !== 'string' || params.announcement_id.trim() === '') {
|
|
154
|
+
return { content: '❌ 请提供有效的 announcement_id 参数' };
|
|
155
|
+
}
|
|
156
|
+
// estimated_time 验证:必须为正数且不超过 24 小时
|
|
157
|
+
if (params.estimated_time !== undefined) {
|
|
158
|
+
if (typeof params.estimated_time !== 'number' || !Number.isFinite(params.estimated_time)) {
|
|
159
|
+
return { content: '❌ estimated_time 必须是有效数字' };
|
|
160
|
+
}
|
|
161
|
+
if (params.estimated_time <= 0) {
|
|
162
|
+
return { content: '❌ estimated_time 必须大于 0' };
|
|
163
|
+
}
|
|
164
|
+
if (params.estimated_time > 24 * 60 * 60 * 1000) {
|
|
165
|
+
return { content: '❌ estimated_time 不能超过 24 小时' };
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// confidence 验证:必须在 0-1 之间
|
|
169
|
+
if (params.confidence !== undefined) {
|
|
170
|
+
if (typeof params.confidence !== 'number' || !Number.isFinite(params.confidence)) {
|
|
171
|
+
return { content: '❌ confidence 必须是有效数字' };
|
|
172
|
+
}
|
|
173
|
+
if (params.confidence < 0 || params.confidence > 1) {
|
|
174
|
+
return { content: '❌ confidence 必须在 0 到 1 之间' };
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const announcementQueue = this.adapter.announcementQueue;
|
|
178
|
+
const api = this.adapter.api;
|
|
179
|
+
const config = this.adapter.config;
|
|
180
|
+
const announcement = announcementQueue.get(params.announcement_id);
|
|
181
|
+
if (!announcement) {
|
|
182
|
+
return { content: `❌ 找不到广播: ${params.announcement_id}` };
|
|
183
|
+
}
|
|
184
|
+
if (announcement.status !== 'open') {
|
|
185
|
+
return { content: `❌ 该广播已${announcement.status === 'claimed' ? '被认领' : '过期'}` };
|
|
186
|
+
}
|
|
187
|
+
// 检查是否已有认领
|
|
188
|
+
const existingClaim = announcement.claims?.find((c) => c.claimant === 'local');
|
|
189
|
+
if (existingClaim) {
|
|
190
|
+
return { content: `⚠️ 你已经认领过这个广播了 (认领ID: ${existingClaim.claimId.slice(0, 8)}...)` };
|
|
191
|
+
}
|
|
192
|
+
const claim = announcementQueue.submitClaim(params.announcement_id, {
|
|
193
|
+
claimant: 'local', // 实际应该从网络获取本机ID
|
|
194
|
+
claimantName: config.agentName,
|
|
195
|
+
estimatedTime: params.estimated_time,
|
|
196
|
+
confidence: params.confidence
|
|
197
|
+
});
|
|
198
|
+
if (!claim) {
|
|
199
|
+
return { content: '❌ 认领失败' };
|
|
200
|
+
}
|
|
201
|
+
// 触发心跳
|
|
202
|
+
api?.runtime?.system?.requestHeartbeatNow?.();
|
|
203
|
+
return {
|
|
204
|
+
content: `
|
|
205
|
+
✅ 认领已提交
|
|
206
|
+
|
|
207
|
+
广播ID: ${params.announcement_id.slice(0, 16)}...
|
|
208
|
+
认领ID: ${claim.claimId.slice(0, 16)}...
|
|
209
|
+
${params.estimated_time ? `预计时间: ${Math.round(params.estimated_time / 1000)}秒` : ''}
|
|
210
|
+
${params.confidence ? `信心指数: ${Math.round(params.confidence * 100)}%` : ''}
|
|
211
|
+
|
|
212
|
+
⏳ 等待广播发布者接受...
|
|
213
|
+
💡 使用 f2a_my_claims 查看认领状态
|
|
214
|
+
`.trim(),
|
|
215
|
+
data: {
|
|
216
|
+
claimId: claim.claimId,
|
|
217
|
+
status: claim.status
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* 处理 f2a_manage_claims 工具
|
|
223
|
+
* 管理我的任务广播的认领
|
|
224
|
+
*/
|
|
225
|
+
async handleManageClaims(params, context) {
|
|
226
|
+
// 输入验证
|
|
227
|
+
if (!params.announcement_id || typeof params.announcement_id !== 'string' || params.announcement_id.trim() === '') {
|
|
228
|
+
return { content: '❌ 请提供有效的 announcement_id 参数' };
|
|
229
|
+
}
|
|
230
|
+
if (!params.action || !['list', 'accept', 'reject'].includes(params.action)) {
|
|
231
|
+
return { content: '❌ action 参数必须是 list, accept 或 reject' };
|
|
232
|
+
}
|
|
233
|
+
if ((params.action === 'accept' || params.action === 'reject') &&
|
|
234
|
+
(!params.claim_id || typeof params.claim_id !== 'string' || params.claim_id.trim() === '')) {
|
|
235
|
+
return { content: '❌ accept/reject 操作需要提供 claim_id 参数' };
|
|
236
|
+
}
|
|
237
|
+
const announcementQueue = this.adapter.announcementQueue;
|
|
238
|
+
const announcement = announcementQueue.get(params.announcement_id);
|
|
239
|
+
if (!announcement) {
|
|
240
|
+
return { content: `❌ 找不到广播: ${params.announcement_id}` };
|
|
241
|
+
}
|
|
242
|
+
// 检查是否是本机的广播
|
|
243
|
+
if (announcement.from !== 'local') {
|
|
244
|
+
return { content: '❌ 只能管理自己发布的广播' };
|
|
245
|
+
}
|
|
246
|
+
switch (params.action) {
|
|
247
|
+
case 'list': {
|
|
248
|
+
const claims = announcement.claims || [];
|
|
249
|
+
if (claims.length === 0) {
|
|
250
|
+
return { content: '📭 暂无认领' };
|
|
251
|
+
}
|
|
252
|
+
const content = `
|
|
253
|
+
📋 认领列表 (${claims.length} 个):
|
|
254
|
+
|
|
255
|
+
${claims.map((c, i) => {
|
|
256
|
+
const statusIcon = { pending: '⏳', accepted: '✅', rejected: '❌' }[c.status];
|
|
257
|
+
return `${i + 1}. ${statusIcon} [${c.claimId.slice(0, 8)}...] ${c.claimantName || c.claimant.slice(0, 16)}...
|
|
258
|
+
${c.estimatedTime ? `预计: ${Math.round(c.estimatedTime / 1000)}s | ` : ''}${c.confidence ? `信心: ${Math.round(c.confidence * 100)}%` : ''}`;
|
|
259
|
+
}).join('\n\n')}
|
|
260
|
+
|
|
261
|
+
💡 使用 accept/reject 操作认领
|
|
262
|
+
`.trim();
|
|
263
|
+
return { content, data: { claims } };
|
|
264
|
+
}
|
|
265
|
+
case 'accept': {
|
|
266
|
+
if (!params.claim_id) {
|
|
267
|
+
return { content: '❌ 请提供 claim_id' };
|
|
268
|
+
}
|
|
269
|
+
const claim = announcementQueue.acceptClaim(params.announcement_id, params.claim_id);
|
|
270
|
+
if (!claim) {
|
|
271
|
+
return { content: '❌ 接受认领失败' };
|
|
272
|
+
}
|
|
273
|
+
return {
|
|
274
|
+
content: `
|
|
275
|
+
✅ 已接受认领
|
|
276
|
+
|
|
277
|
+
认领ID: ${params.claim_id.slice(0, 16)}...
|
|
278
|
+
认领者: ${claim.claimantName || claim.claimant.slice(0, 16)}...
|
|
279
|
+
|
|
280
|
+
现在可以正式委托任务给对方了。
|
|
281
|
+
`.trim(),
|
|
282
|
+
data: { claim }
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
case 'reject': {
|
|
286
|
+
if (!params.claim_id) {
|
|
287
|
+
return { content: '❌ 请提供 claim_id' };
|
|
288
|
+
}
|
|
289
|
+
const claim = announcementQueue.rejectClaim(params.announcement_id, params.claim_id);
|
|
290
|
+
if (!claim) {
|
|
291
|
+
return { content: '❌ 拒绝认领失败' };
|
|
292
|
+
}
|
|
293
|
+
return {
|
|
294
|
+
content: `
|
|
295
|
+
🚫 已拒绝认领
|
|
296
|
+
|
|
297
|
+
认领ID: ${params.claim_id.slice(0, 16)}...
|
|
298
|
+
认领者: ${claim.claimantName || claim.claimant.slice(0, 16)}...
|
|
299
|
+
`.trim()
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
default:
|
|
303
|
+
return { content: `❌ 未知操作: ${params.action}` };
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* 处理 f2a_my_claims 工具
|
|
308
|
+
* 查看我提交的任务认领状态
|
|
309
|
+
*/
|
|
310
|
+
async handleMyClaims(params, context) {
|
|
311
|
+
const announcementQueue = this.adapter.announcementQueue;
|
|
312
|
+
const status = params.status || 'all';
|
|
313
|
+
let claims = announcementQueue.getMyClaims('local');
|
|
314
|
+
// 状态过滤
|
|
315
|
+
if (status !== 'all') {
|
|
316
|
+
claims = claims.filter((c) => c.status === status);
|
|
317
|
+
}
|
|
318
|
+
if (claims.length === 0) {
|
|
319
|
+
return { content: `📭 没有${status === 'all' ? '' : status}的认领` };
|
|
320
|
+
}
|
|
321
|
+
const content = `
|
|
322
|
+
📋 我的认领 (${claims.length} 个):
|
|
323
|
+
|
|
324
|
+
${claims.map((c, i) => {
|
|
325
|
+
const announcement = announcementQueue.get(c.announcementId);
|
|
326
|
+
const statusIcon = { pending: '⏳', accepted: '✅', rejected: '❌' }[c.status];
|
|
327
|
+
return `${i + 1}. ${statusIcon} [${c.claimId.slice(0, 8)}...]
|
|
328
|
+
广播: ${announcement?.description.slice(0, 40)}...
|
|
329
|
+
状态: ${c.status}${c.status === 'accepted' ? ' (可以开始执行)' : ''}`;
|
|
330
|
+
}).join('\n\n')}
|
|
331
|
+
`.trim();
|
|
332
|
+
return {
|
|
333
|
+
content,
|
|
334
|
+
data: {
|
|
335
|
+
count: claims.length,
|
|
336
|
+
claims: claims.map((c) => ({
|
|
337
|
+
claimId: c.claimId,
|
|
338
|
+
announcementId: c.announcementId,
|
|
339
|
+
status: c.status,
|
|
340
|
+
estimatedTime: c.estimatedTime,
|
|
341
|
+
confidence: c.confidence
|
|
342
|
+
}))
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* 处理 f2a_announcement_stats 工具
|
|
348
|
+
* 查看任务广播统计
|
|
349
|
+
*/
|
|
350
|
+
async handleAnnouncementStats(params, context) {
|
|
351
|
+
const announcementQueue = this.adapter.announcementQueue;
|
|
352
|
+
const stats = announcementQueue.getStats();
|
|
353
|
+
const content = `
|
|
354
|
+
📊 任务广播统计:
|
|
355
|
+
|
|
356
|
+
📢 开放中: ${stats.open}
|
|
357
|
+
✅ 已认领: ${stats.claimed}
|
|
358
|
+
📋 已委托: ${stats.delegated}
|
|
359
|
+
⏰ 已过期: ${stats.expired}
|
|
360
|
+
📦 总计: ${stats.total}
|
|
361
|
+
|
|
362
|
+
💡 使用 f2a_list_announcements 查看开放广播
|
|
363
|
+
`.trim();
|
|
364
|
+
return { content, data: stats };
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
exports.ClaimHandlers = ClaimHandlers;
|
|
368
|
+
//# sourceMappingURL=claim-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-handlers.js","sourceRoot":"","sources":["../src/claim-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/connector.d.ts
CHANGED
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
* F2A OpenClaw Connector Plugin
|
|
3
3
|
* 主插件类 - 任务队列架构
|
|
4
4
|
*/
|
|
5
|
-
import type { OpenClawPlugin, OpenClawPluginApi, Tool } from './types.js';
|
|
5
|
+
import type { OpenClawPlugin, OpenClawPluginApi, Tool, F2APluginConfig, AgentInfo } from './types.js';
|
|
6
|
+
/** 广播结果类型 */
|
|
7
|
+
interface BroadcastResult {
|
|
8
|
+
agent: string;
|
|
9
|
+
success: boolean;
|
|
10
|
+
error?: string;
|
|
11
|
+
latency?: number;
|
|
12
|
+
}
|
|
6
13
|
export declare class F2AOpenClawAdapter implements OpenClawPlugin {
|
|
7
14
|
name: string;
|
|
8
15
|
version: string;
|
|
@@ -13,16 +20,39 @@ export declare class F2AOpenClawAdapter implements OpenClawPlugin {
|
|
|
13
20
|
private capabilityDetector;
|
|
14
21
|
private taskQueue;
|
|
15
22
|
private announcementQueue;
|
|
23
|
+
private webhookPusher?;
|
|
24
|
+
private _toolHandlers?;
|
|
25
|
+
private _claimHandlers?;
|
|
16
26
|
private config;
|
|
17
27
|
private nodeConfig;
|
|
18
28
|
private capabilities;
|
|
19
29
|
private api?;
|
|
30
|
+
private pollTimer?;
|
|
31
|
+
/**
|
|
32
|
+
* 获取工具处理器(延迟初始化,支持未初始化时调用getTools)
|
|
33
|
+
*/
|
|
34
|
+
private get toolHandlers();
|
|
35
|
+
/**
|
|
36
|
+
* 获取认领处理器(延迟初始化)
|
|
37
|
+
*/
|
|
38
|
+
private get claimHandlers();
|
|
20
39
|
/**
|
|
21
40
|
* 初始化插件
|
|
22
41
|
*/
|
|
23
42
|
initialize(config: Record<string, unknown> & {
|
|
24
43
|
_api?: OpenClawPluginApi;
|
|
25
44
|
}): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* 兜底轮询
|
|
47
|
+
* 当 webhook 推送失败时,轮询确保任务不会丢失
|
|
48
|
+
*/
|
|
49
|
+
private startFallbackPolling;
|
|
50
|
+
/**
|
|
51
|
+
* P1 修复:重置超时的 processing 任务
|
|
52
|
+
* 如果任务在 processing 状态停留超过超时时间,将其重置为 pending
|
|
53
|
+
* 防止因处理失败导致的僵尸任务
|
|
54
|
+
*/
|
|
55
|
+
private resetTimedOutProcessingTasks;
|
|
26
56
|
/**
|
|
27
57
|
* 获取插件提供的 Tools
|
|
28
58
|
*/
|
|
@@ -35,24 +65,21 @@ export declare class F2AOpenClawAdapter implements OpenClawPlugin {
|
|
|
35
65
|
* 注册到 F2A Node
|
|
36
66
|
*/
|
|
37
67
|
private registerToNode;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
private handleSubmitResult;
|
|
45
|
-
private handleTaskStats;
|
|
46
|
-
private handleAnnounce;
|
|
47
|
-
private handleListAnnouncements;
|
|
48
|
-
private handleClaim;
|
|
49
|
-
private handleManageClaims;
|
|
50
|
-
private handleMyClaims;
|
|
51
|
-
private handleAnnouncementStats;
|
|
52
|
-
private resolveAgent;
|
|
53
|
-
private formatBroadcastResults;
|
|
54
|
-
private mergeConfig;
|
|
68
|
+
/**
|
|
69
|
+
* 合并配置(公开方法供处理器使用)
|
|
70
|
+
*/
|
|
71
|
+
mergeConfig(config: Record<string, unknown> & {
|
|
72
|
+
_api?: unknown;
|
|
73
|
+
}): F2APluginConfig;
|
|
55
74
|
private generateToken;
|
|
75
|
+
/**
|
|
76
|
+
* 格式化广播结果(公共方法,供测试和外部调用)
|
|
77
|
+
*/
|
|
78
|
+
formatBroadcastResults(results: BroadcastResult[]): string;
|
|
79
|
+
/**
|
|
80
|
+
* 解析 Agent 引用(公共方法,供测试和外部调用)
|
|
81
|
+
*/
|
|
82
|
+
resolveAgent(agentRef: string): Promise<AgentInfo | null>;
|
|
56
83
|
/**
|
|
57
84
|
* 关闭插件,清理资源
|
|
58
85
|
*/
|
package/dist/connector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,IAAI,
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,IAAI,EAIJ,eAAe,EACf,SAAS,EAIV,MAAM,YAAY,CAAC;AAcpB,aAAa;AACb,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,kBAAmB,YAAW,cAAc;IACvD,IAAI,SAA0B;IAC9B,OAAO,SAAW;IAElB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,aAAa,CAAC,CAAgB;IAGtC,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,cAAc,CAAC,CAAgB;IAEvC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,GAAG,CAAC,CAAoB;IAChC,OAAO,CAAC,SAAS,CAAC,CAAiB;IAEnC;;OAEG;IACH,OAAO,KAAK,YAAY,GAKvB;IAED;;OAEG;IACH,OAAO,KAAK,aAAa,GAKxB;IAED;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0F/F;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAyBpC;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAsQlB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6I5B;;OAEG;YACW,cAAc;IAW5B;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,eAAe;IAgClF,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM;IAQ1D;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IA4B/D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAsChC;AAGD,eAAe,kBAAkB,CAAC"}
|