@f2a/network 0.1.2 → 0.2.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/README.md +278 -63
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +29 -2
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/config.d.ts +176 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +386 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/daemon.d.ts +54 -0
- package/dist/cli/daemon.d.ts.map +1 -0
- package/dist/cli/daemon.js +572 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/index.js +90 -16
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +13 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +352 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/core/e2ee-crypto.d.ts +127 -1
- package/dist/core/e2ee-crypto.d.ts.map +1 -1
- package/dist/core/e2ee-crypto.js +446 -12
- package/dist/core/e2ee-crypto.js.map +1 -1
- package/dist/core/f2a.d.ts +2 -1
- package/dist/core/f2a.d.ts.map +1 -1
- package/dist/core/f2a.js +6 -2
- package/dist/core/f2a.js.map +1 -1
- package/dist/core/identity/encrypted-key-store.d.ts +19 -0
- package/dist/core/identity/encrypted-key-store.d.ts.map +1 -0
- package/dist/core/identity/encrypted-key-store.js +72 -0
- package/dist/core/identity/encrypted-key-store.js.map +1 -0
- package/dist/core/identity/identity-manager.d.ts +133 -0
- package/dist/core/identity/identity-manager.d.ts.map +1 -0
- package/dist/core/identity/identity-manager.js +454 -0
- package/dist/core/identity/identity-manager.js.map +1 -0
- package/dist/core/identity/index.d.ts +8 -0
- package/dist/core/identity/index.d.ts.map +1 -0
- package/dist/core/identity/index.js +7 -0
- package/dist/core/identity/index.js.map +1 -0
- package/dist/core/identity/types.d.ts +70 -0
- package/dist/core/identity/types.d.ts.map +1 -0
- package/dist/core/identity/types.js +17 -0
- package/dist/core/identity/types.js.map +1 -0
- package/dist/core/p2p-network.d.ts +26 -0
- package/dist/core/p2p-network.d.ts.map +1 -1
- package/dist/core/p2p-network.js +434 -105
- package/dist/core/p2p-network.js.map +1 -1
- package/dist/core/reputation-security.d.ts +15 -0
- package/dist/core/reputation-security.d.ts.map +1 -1
- package/dist/core/reputation-security.js +73 -3
- package/dist/core/reputation-security.js.map +1 -1
- package/dist/core/reputation.d.ts +129 -4
- package/dist/core/reputation.d.ts.map +1 -1
- package/dist/core/reputation.js +294 -1
- package/dist/core/reputation.js.map +1 -1
- package/dist/core/review-committee.d.ts +2 -2
- package/dist/core/review-committee.d.ts.map +1 -1
- package/dist/core/review-committee.js +17 -0
- package/dist/core/review-committee.js.map +1 -1
- package/dist/daemon/control-server.d.ts.map +1 -1
- package/dist/daemon/control-server.js +44 -1
- package/dist/daemon/control-server.js.map +1 -1
- package/dist/daemon/webhook.d.ts +3 -0
- package/dist/daemon/webhook.d.ts.map +1 -1
- package/dist/daemon/webhook.js +318 -6
- package/dist/daemon/webhook.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/result.d.ts +1 -1
- package/dist/types/result.d.ts.map +1 -1
- package/dist/types/result.js.map +1 -1
- package/dist/utils/crypto-utils.d.ts +17 -0
- package/dist/utils/crypto-utils.d.ts.map +1 -0
- package/dist/utils/crypto-utils.js +28 -0
- package/dist/utils/crypto-utils.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +9 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/rate-limiter.d.ts.map +1 -1
- package/dist/utils/rate-limiter.js +3 -1
- package/dist/utils/rate-limiter.js.map +1 -1
- package/dist/utils/signature.d.ts +47 -1
- package/dist/utils/signature.d.ts.map +1 -1
- package/dist/utils/signature.js +166 -11
- package/dist/utils/signature.js.map +1 -1
- package/package.json +9 -1
- package/.github/workflows/ci.yml +0 -113
- package/.github/workflows/publish.yml +0 -60
- package/MONOREPO.md +0 -58
- package/SKILL.md +0 -137
- package/dist/adapters/openclaw.d.ts +0 -103
- package/dist/adapters/openclaw.d.ts.map +0 -1
- package/dist/adapters/openclaw.js +0 -297
- package/dist/adapters/openclaw.js.map +0 -1
- package/dist/core/connection-manager.d.ts +0 -80
- package/dist/core/connection-manager.d.ts.map +0 -1
- package/dist/core/connection-manager.js +0 -235
- package/dist/core/connection-manager.js.map +0 -1
- package/dist/core/connection-manager.test.d.ts +0 -2
- package/dist/core/connection-manager.test.d.ts.map +0 -1
- package/dist/core/connection-manager.test.js +0 -52
- package/dist/core/connection-manager.test.js.map +0 -1
- package/dist/core/identity.d.ts +0 -47
- package/dist/core/identity.d.ts.map +0 -1
- package/dist/core/identity.js +0 -130
- package/dist/core/identity.js.map +0 -1
- package/dist/core/identity.test.d.ts +0 -2
- package/dist/core/identity.test.d.ts.map +0 -1
- package/dist/core/identity.test.js +0 -43
- package/dist/core/identity.test.js.map +0 -1
- package/dist/core/serverless.d.ts +0 -155
- package/dist/core/serverless.d.ts.map +0 -1
- package/dist/core/serverless.js +0 -615
- package/dist/core/serverless.js.map +0 -1
- package/dist/daemon/webhook.test.d.ts +0 -2
- package/dist/daemon/webhook.test.d.ts.map +0 -1
- package/dist/daemon/webhook.test.js +0 -24
- package/dist/daemon/webhook.test.js.map +0 -1
- package/dist/protocol/messages.d.ts +0 -739
- package/dist/protocol/messages.d.ts.map +0 -1
- package/dist/protocol/messages.js +0 -188
- package/dist/protocol/messages.js.map +0 -1
- package/dist/protocol/messages.test.d.ts +0 -2
- package/dist/protocol/messages.test.d.ts.map +0 -1
- package/dist/protocol/messages.test.js +0 -55
- package/dist/protocol/messages.test.js.map +0 -1
- package/docs/F2A-PROTOCOL.md +0 -61
- package/docs/MOBILE_BOOTSTRAP_DESIGN.md +0 -126
- package/docs/a2a-lessons.md +0 -316
- package/docs/middleware-guide.md +0 -448
- package/docs/readme-update-checklist.md +0 -90
- package/docs/reputation-guide.md +0 -396
- package/docs/rfcs/001-reputation-system.md +0 -712
- package/docs/security-design.md +0 -247
- package/install.sh +0 -231
- package/packages/openclaw-adapter/README.md +0 -510
- package/packages/openclaw-adapter/openclaw.plugin.json +0 -106
- package/packages/openclaw-adapter/package.json +0 -40
- package/packages/openclaw-adapter/src/announcement-queue.test.ts +0 -449
- package/packages/openclaw-adapter/src/announcement-queue.ts +0 -403
- package/packages/openclaw-adapter/src/capability-detector.test.ts +0 -99
- package/packages/openclaw-adapter/src/capability-detector.ts +0 -183
- package/packages/openclaw-adapter/src/claim-handlers.test.ts +0 -974
- package/packages/openclaw-adapter/src/claim-handlers.ts +0 -482
- package/packages/openclaw-adapter/src/connector.business.test.ts +0 -583
- package/packages/openclaw-adapter/src/connector.ts +0 -795
- package/packages/openclaw-adapter/src/index.test.ts +0 -82
- package/packages/openclaw-adapter/src/index.ts +0 -18
- package/packages/openclaw-adapter/src/integration.e2e.test.ts +0 -829
- package/packages/openclaw-adapter/src/logger.ts +0 -51
- package/packages/openclaw-adapter/src/network-client.test.ts +0 -266
- package/packages/openclaw-adapter/src/network-client.ts +0 -251
- package/packages/openclaw-adapter/src/network-recovery.test.ts +0 -465
- package/packages/openclaw-adapter/src/node-manager.test.ts +0 -136
- package/packages/openclaw-adapter/src/node-manager.ts +0 -429
- package/packages/openclaw-adapter/src/plugin.test.ts +0 -439
- package/packages/openclaw-adapter/src/plugin.ts +0 -104
- package/packages/openclaw-adapter/src/reputation.test.ts +0 -221
- package/packages/openclaw-adapter/src/reputation.ts +0 -368
- package/packages/openclaw-adapter/src/task-guard.test.ts +0 -502
- package/packages/openclaw-adapter/src/task-guard.ts +0 -860
- package/packages/openclaw-adapter/src/task-queue.concurrency.test.ts +0 -462
- package/packages/openclaw-adapter/src/task-queue.edge-cases.test.ts +0 -284
- package/packages/openclaw-adapter/src/task-queue.persistence.test.ts +0 -408
- package/packages/openclaw-adapter/src/task-queue.ts +0 -668
- package/packages/openclaw-adapter/src/tool-handlers.test.ts +0 -906
- package/packages/openclaw-adapter/src/tool-handlers.ts +0 -574
- package/packages/openclaw-adapter/src/types.ts +0 -361
- package/packages/openclaw-adapter/src/webhook-pusher.test.ts +0 -188
- package/packages/openclaw-adapter/src/webhook-pusher.ts +0 -220
- package/packages/openclaw-adapter/src/webhook-server.test.ts +0 -580
- package/packages/openclaw-adapter/src/webhook-server.ts +0 -202
- package/packages/openclaw-adapter/tsconfig.json +0 -20
- package/src/cli/commands.test.ts +0 -157
- package/src/cli/commands.ts +0 -129
- package/src/cli/index.test.ts +0 -77
- package/src/cli/index.ts +0 -234
- package/src/core/autonomous-economy.test.ts +0 -291
- package/src/core/autonomous-economy.ts +0 -428
- package/src/core/e2ee-crypto.test.ts +0 -125
- package/src/core/e2ee-crypto.ts +0 -246
- package/src/core/f2a.test.ts +0 -269
- package/src/core/f2a.ts +0 -618
- package/src/core/p2p-network.test.ts +0 -199
- package/src/core/p2p-network.ts +0 -1432
- package/src/core/reputation-security.test.ts +0 -403
- package/src/core/reputation-security.ts +0 -562
- package/src/core/reputation.test.ts +0 -260
- package/src/core/reputation.ts +0 -576
- package/src/core/review-committee.test.ts +0 -380
- package/src/core/review-committee.ts +0 -401
- package/src/core/token-manager.test.ts +0 -133
- package/src/core/token-manager.ts +0 -140
- package/src/daemon/control-server.test.ts +0 -216
- package/src/daemon/control-server.ts +0 -292
- package/src/daemon/index.test.ts +0 -85
- package/src/daemon/index.ts +0 -89
- package/src/daemon/main.ts +0 -44
- package/src/daemon/start.ts +0 -29
- package/src/daemon/webhook.test.ts +0 -68
- package/src/daemon/webhook.ts +0 -105
- package/src/index.test.ts +0 -436
- package/src/index.ts +0 -72
- package/src/types/index.test.ts +0 -87
- package/src/types/index.ts +0 -341
- package/src/types/result.ts +0 -68
- package/src/utils/benchmark.ts +0 -237
- package/src/utils/logger.ts +0 -331
- package/src/utils/middleware.ts +0 -229
- package/src/utils/rate-limiter.ts +0 -207
- package/src/utils/signature.ts +0 -136
- package/src/utils/validation.ts +0 -186
- package/tests/docker/Dockerfile.node +0 -23
- package/tests/docker/Dockerfile.runner +0 -18
- package/tests/docker/docker-compose.test.yml +0 -73
- package/tests/integration/message-passing.test.ts +0 -109
- package/tests/integration/multi-node.test.ts +0 -92
- package/tests/integration/p2p-connection.test.ts +0 -83
- package/tests/integration/test-config.ts +0 -32
- package/tsconfig.json +0 -21
- package/vitest.config.ts +0 -26
|
@@ -1,297 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* OpenClaw F2A 适配器
|
|
4
|
-
* 将 F2A P2P 网络集成到 OpenClaw
|
|
5
|
-
*
|
|
6
|
-
* 使用方式:
|
|
7
|
-
* ```typescript
|
|
8
|
-
* const adapter = await OpenClawF2AAdapter.create(openclawSession);
|
|
9
|
-
* await adapter.start();
|
|
10
|
-
*
|
|
11
|
-
* // 委托任务给网络
|
|
12
|
-
* const result = await adapter.delegateTask({
|
|
13
|
-
* capability: 'code-generation',
|
|
14
|
-
* description: 'Generate a Python function to calculate fibonacci'
|
|
15
|
-
* });
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.OpenClawF2AAdapter = void 0;
|
|
20
|
-
const index_1 = require("../index");
|
|
21
|
-
class OpenClawF2AAdapter {
|
|
22
|
-
f2a;
|
|
23
|
-
openclaw;
|
|
24
|
-
options;
|
|
25
|
-
running = false;
|
|
26
|
-
constructor(f2a, openclaw, options) {
|
|
27
|
-
this.f2a = f2a;
|
|
28
|
-
this.openclaw = openclaw;
|
|
29
|
-
this.options = options;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* 创建适配器实例
|
|
33
|
-
*/
|
|
34
|
-
static async create(openclaw, options = {}) {
|
|
35
|
-
const mergedOptions = {
|
|
36
|
-
displayName: options.displayName || 'OpenClaw Agent',
|
|
37
|
-
listenPort: options.listenPort || 0,
|
|
38
|
-
bootstrapPeers: options.bootstrapPeers || [],
|
|
39
|
-
enableMDNS: options.enableMDNS !== false,
|
|
40
|
-
capabilityHandlers: options.capabilityHandlers || {}
|
|
41
|
-
};
|
|
42
|
-
// 创建 F2A 实例
|
|
43
|
-
const f2aOptions = {
|
|
44
|
-
displayName: mergedOptions.displayName,
|
|
45
|
-
agentType: 'openclaw',
|
|
46
|
-
network: {
|
|
47
|
-
listenPort: mergedOptions.listenPort,
|
|
48
|
-
enableMDNS: mergedOptions.enableMDNS,
|
|
49
|
-
bootstrapPeers: mergedOptions.bootstrapPeers
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
const f2a = await index_1.F2A.create(f2aOptions);
|
|
53
|
-
// 注册默认能力
|
|
54
|
-
await this.registerDefaultCapabilities(f2a, openclaw, mergedOptions.capabilityHandlers);
|
|
55
|
-
return new OpenClawF2AAdapter(f2a, openclaw, mergedOptions);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* 注册默认能力
|
|
59
|
-
*/
|
|
60
|
-
static async registerDefaultCapabilities(f2a, openclaw, customHandlers) {
|
|
61
|
-
// 获取 OpenClaw 可用工具作为能力
|
|
62
|
-
const capabilities = await this.detectOpenClawCapabilities(openclaw);
|
|
63
|
-
for (const cap of capabilities) {
|
|
64
|
-
const handler = customHandlers[cap.name] || this.createDefaultHandler(openclaw, cap);
|
|
65
|
-
f2a.registerCapability(cap, handler);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* 检测 OpenClaw 的能力
|
|
70
|
-
*/
|
|
71
|
-
static async detectOpenClawCapabilities(openclaw) {
|
|
72
|
-
// 默认能力集
|
|
73
|
-
const defaultCapabilities = [
|
|
74
|
-
{
|
|
75
|
-
name: 'file-operation',
|
|
76
|
-
description: 'Read and write files on the local system',
|
|
77
|
-
tools: ['read', 'write', 'edit', 'list'],
|
|
78
|
-
parameters: {
|
|
79
|
-
action: {
|
|
80
|
-
type: 'string',
|
|
81
|
-
required: true,
|
|
82
|
-
description: 'Action to perform: read, write, edit, list'
|
|
83
|
-
},
|
|
84
|
-
path: {
|
|
85
|
-
type: 'string',
|
|
86
|
-
required: true,
|
|
87
|
-
description: 'File or directory path'
|
|
88
|
-
},
|
|
89
|
-
content: {
|
|
90
|
-
type: 'string',
|
|
91
|
-
required: false,
|
|
92
|
-
description: 'Content for write operations'
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
name: 'command-execution',
|
|
98
|
-
description: 'Execute shell commands',
|
|
99
|
-
tools: ['exec', 'bash'],
|
|
100
|
-
parameters: {
|
|
101
|
-
command: {
|
|
102
|
-
type: 'string',
|
|
103
|
-
required: true,
|
|
104
|
-
description: 'Shell command to execute'
|
|
105
|
-
},
|
|
106
|
-
cwd: {
|
|
107
|
-
type: 'string',
|
|
108
|
-
required: false,
|
|
109
|
-
description: 'Working directory'
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
name: 'web-browsing',
|
|
115
|
-
description: 'Browse web pages and fetch content',
|
|
116
|
-
tools: ['browser', 'fetch'],
|
|
117
|
-
parameters: {
|
|
118
|
-
url: {
|
|
119
|
-
type: 'string',
|
|
120
|
-
required: true,
|
|
121
|
-
description: 'URL to browse or fetch'
|
|
122
|
-
},
|
|
123
|
-
action: {
|
|
124
|
-
type: 'string',
|
|
125
|
-
required: false,
|
|
126
|
-
description: 'Action: fetch, screenshot, click, type'
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
name: 'code-generation',
|
|
132
|
-
description: 'Generate code in various programming languages',
|
|
133
|
-
tools: ['generate', 'refactor', 'explain'],
|
|
134
|
-
parameters: {
|
|
135
|
-
language: {
|
|
136
|
-
type: 'string',
|
|
137
|
-
required: true,
|
|
138
|
-
description: 'Programming language'
|
|
139
|
-
},
|
|
140
|
-
description: {
|
|
141
|
-
type: 'string',
|
|
142
|
-
required: true,
|
|
143
|
-
description: 'What the code should do'
|
|
144
|
-
},
|
|
145
|
-
context: {
|
|
146
|
-
type: 'string',
|
|
147
|
-
required: false,
|
|
148
|
-
description: 'Additional context or requirements'
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
name: 'task-delegation',
|
|
154
|
-
description: 'Delegate tasks to other agents in the network',
|
|
155
|
-
tools: ['delegate', 'discover'],
|
|
156
|
-
parameters: {
|
|
157
|
-
capability: {
|
|
158
|
-
type: 'string',
|
|
159
|
-
required: true,
|
|
160
|
-
description: 'Required capability'
|
|
161
|
-
},
|
|
162
|
-
description: {
|
|
163
|
-
type: 'string',
|
|
164
|
-
required: true,
|
|
165
|
-
description: 'Task description'
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
];
|
|
170
|
-
return defaultCapabilities;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* 创建默认能力处理器
|
|
174
|
-
*/
|
|
175
|
-
static createDefaultHandler(openclaw, capability) {
|
|
176
|
-
return async (params) => {
|
|
177
|
-
// 构建任务描述
|
|
178
|
-
const taskDescription = this.buildTaskDescription(capability.name, params);
|
|
179
|
-
// 调用 OpenClaw 执行
|
|
180
|
-
const result = await openclaw.execute(taskDescription, {
|
|
181
|
-
capability: capability.name,
|
|
182
|
-
parameters: params
|
|
183
|
-
});
|
|
184
|
-
return result;
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* 构建任务描述
|
|
189
|
-
*/
|
|
190
|
-
static buildTaskDescription(capabilityName, params) {
|
|
191
|
-
const paramStr = Object.entries(params)
|
|
192
|
-
.map(([k, v]) => `${k}=${JSON.stringify(v)}`)
|
|
193
|
-
.join(', ');
|
|
194
|
-
return `[F2A Task] ${capabilityName}: ${paramStr}`;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* 启动适配器
|
|
198
|
-
*/
|
|
199
|
-
async start() {
|
|
200
|
-
if (this.running) {
|
|
201
|
-
return { success: false, error: 'Adapter already running' };
|
|
202
|
-
}
|
|
203
|
-
// 启动 F2A
|
|
204
|
-
const result = await this.f2a.start();
|
|
205
|
-
if (!result.success) {
|
|
206
|
-
return result;
|
|
207
|
-
}
|
|
208
|
-
// 绑定任务请求处理
|
|
209
|
-
this.f2a.on('task:request', async (event) => {
|
|
210
|
-
await this.handleTaskRequest(event);
|
|
211
|
-
});
|
|
212
|
-
this.running = true;
|
|
213
|
-
console.log(`[OpenClawF2A] Adapter started with peerId: ${this.f2a.peerId.slice(0, 16)}...`);
|
|
214
|
-
return { success: true, data: undefined };
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* 停止适配器
|
|
218
|
-
*/
|
|
219
|
-
async stop() {
|
|
220
|
-
if (!this.running)
|
|
221
|
-
return;
|
|
222
|
-
await this.f2a.stop();
|
|
223
|
-
this.running = false;
|
|
224
|
-
console.log('[OpenClawF2A] Adapter stopped');
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* 处理收到的任务请求
|
|
228
|
-
*/
|
|
229
|
-
async handleTaskRequest(event) {
|
|
230
|
-
console.log(`[OpenClawF2A] Handling task request: ${event.taskType}`);
|
|
231
|
-
try {
|
|
232
|
-
// 构建任务描述
|
|
233
|
-
const taskDescription = `[F2A Remote Task from ${event.from.slice(0, 16)}...] ${event.description}`;
|
|
234
|
-
// 调用 OpenClaw 执行
|
|
235
|
-
const result = await this.openclaw.execute(taskDescription, {
|
|
236
|
-
taskType: event.taskType,
|
|
237
|
-
parameters: event.parameters,
|
|
238
|
-
remote: true,
|
|
239
|
-
from: event.from
|
|
240
|
-
});
|
|
241
|
-
// 发送成功响应
|
|
242
|
-
await this.f2a.respondToTask(event.from, event.taskId, 'success', result);
|
|
243
|
-
}
|
|
244
|
-
catch (error) {
|
|
245
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
246
|
-
console.error(`[OpenClawF2A] Task execution failed:`, errorMsg);
|
|
247
|
-
// 发送错误响应
|
|
248
|
-
await this.f2a.respondToTask(event.from, event.taskId, 'error', undefined, errorMsg);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* 委托任务给网络中的其他 Agent
|
|
253
|
-
*/
|
|
254
|
-
async delegateTask(options) {
|
|
255
|
-
return this.f2a.delegateTask(options);
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* 发现网络中的 Agents
|
|
259
|
-
*/
|
|
260
|
-
async discoverAgents(capability) {
|
|
261
|
-
return this.f2a.discoverAgents(capability);
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* 直接发送任务给特定 Peer
|
|
265
|
-
*/
|
|
266
|
-
async sendTaskTo(peerId, taskType, description, parameters) {
|
|
267
|
-
return this.f2a.sendTaskTo(peerId, taskType, description, parameters);
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* 获取本节点信息
|
|
271
|
-
*/
|
|
272
|
-
getAgentInfo() {
|
|
273
|
-
return this.f2a.agentInfo;
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* 获取已连接的 Peers
|
|
277
|
-
*/
|
|
278
|
-
getConnectedPeers() {
|
|
279
|
-
return this.f2a.getConnectedPeers();
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* 注册新能力
|
|
283
|
-
*/
|
|
284
|
-
registerCapability(capability, handler) {
|
|
285
|
-
this.f2a.registerCapability(capability, handler);
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* 获取 PeerID
|
|
289
|
-
*/
|
|
290
|
-
get peerId() {
|
|
291
|
-
return this.f2a.peerId;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
exports.OpenClawF2AAdapter = OpenClawF2AAdapter;
|
|
295
|
-
// 默认导出
|
|
296
|
-
exports.default = OpenClawF2AAdapter;
|
|
297
|
-
//# sourceMappingURL=openclaw.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../src/adapters/openclaw.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ConnectionManager - 连接确认管理器
|
|
3
|
-
*
|
|
4
|
-
* 管理待确认连接请求,支持:
|
|
5
|
-
* - 1小时有效期
|
|
6
|
-
* - 同一 Agent 去重(保留最新)
|
|
7
|
-
* - 通过序号或 ID 确认/拒绝
|
|
8
|
-
*/
|
|
9
|
-
import { EventEmitter } from 'eventemitter3';
|
|
10
|
-
import { Socket } from 'net';
|
|
11
|
-
import { PendingConnection, PendingConnectionView, ConnectionRequestEvent, ConfirmationEvent, RejectionEvent, ExpirationEvent, Result } from '../types';
|
|
12
|
-
export interface ConnectionManagerOptions {
|
|
13
|
-
timeout?: number;
|
|
14
|
-
cleanupInterval?: number;
|
|
15
|
-
}
|
|
16
|
-
export declare class ConnectionManager extends EventEmitter<{
|
|
17
|
-
pending_added: (event: ConnectionRequestEvent) => void;
|
|
18
|
-
confirmed: (event: ConfirmationEvent) => void;
|
|
19
|
-
rejected: (event: RejectionEvent) => void;
|
|
20
|
-
expired: (event: ExpirationEvent) => void;
|
|
21
|
-
}> {
|
|
22
|
-
private pendingConnections;
|
|
23
|
-
private agentToConfirmation;
|
|
24
|
-
private maxIndex;
|
|
25
|
-
private cleanupInterval?;
|
|
26
|
-
private options;
|
|
27
|
-
constructor(options?: ConnectionManagerOptions);
|
|
28
|
-
/**
|
|
29
|
-
* 添加待确认连接
|
|
30
|
-
*/
|
|
31
|
-
addPending(agentId: string, socket: Socket, publicKey: string, address: string, port: number): {
|
|
32
|
-
confirmationId: string;
|
|
33
|
-
isDuplicate: boolean;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* 获取待确认连接列表
|
|
37
|
-
*/
|
|
38
|
-
getPendingList(): PendingConnectionView[];
|
|
39
|
-
/**
|
|
40
|
-
* 通过序号查找
|
|
41
|
-
*/
|
|
42
|
-
getByIndex(index: number): PendingConnection | null;
|
|
43
|
-
/**
|
|
44
|
-
* 通过 ID 查找
|
|
45
|
-
*/
|
|
46
|
-
getById(confirmationId: string): PendingConnection | null;
|
|
47
|
-
/**
|
|
48
|
-
* 确认连接
|
|
49
|
-
*/
|
|
50
|
-
confirm(idOrIndex: string | number): Result<PendingConnection>;
|
|
51
|
-
/**
|
|
52
|
-
* 拒绝连接
|
|
53
|
-
*/
|
|
54
|
-
reject(idOrIndex: string | number, reason?: string): Result<PendingConnection>;
|
|
55
|
-
/**
|
|
56
|
-
* 获取待确认数量
|
|
57
|
-
*/
|
|
58
|
-
getPendingCount(): number;
|
|
59
|
-
/**
|
|
60
|
-
* 检查 Agent 是否有待确认请求
|
|
61
|
-
*/
|
|
62
|
-
hasPendingForAgent(agentId: string): boolean;
|
|
63
|
-
/**
|
|
64
|
-
* 停止管理器
|
|
65
|
-
*/
|
|
66
|
-
stop(): void;
|
|
67
|
-
/**
|
|
68
|
-
* 启动定期清理
|
|
69
|
-
*/
|
|
70
|
-
private startCleanup;
|
|
71
|
-
/**
|
|
72
|
-
* 清理过期连接
|
|
73
|
-
*/
|
|
74
|
-
private cleanup;
|
|
75
|
-
/**
|
|
76
|
-
* 安全关闭 socket
|
|
77
|
-
*/
|
|
78
|
-
private closeSocket;
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=connection-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/core/connection-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,MAAM,EACP,MAAM,UAAU,CAAC;AAMlB,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,iBAAkB,SAAQ,YAAY,CAAC;IAClD,aAAa,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACvD,SAAS,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CAC3C,CAAC;IACA,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,OAAO,CAAqC;gBAExC,OAAO,GAAE,wBAA6B;IASlD;;OAEG;IACH,UAAU,CACR,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE;IA8CnD;;OAEG;IACH,cAAc,IAAI,qBAAqB,EAAE;IAwBzC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IASnD;;OAEG;IACH,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAgBzD;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAuB9D;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,GAAE,MAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAyBtF;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI5C;;OAEG;IACH,IAAI,IAAI,IAAI;IAcZ;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,OAAO;IAuBf;;OAEG;IACH,OAAO,CAAC,WAAW;CAOpB"}
|
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* ConnectionManager - 连接确认管理器
|
|
4
|
-
*
|
|
5
|
-
* 管理待确认连接请求,支持:
|
|
6
|
-
* - 1小时有效期
|
|
7
|
-
* - 同一 Agent 去重(保留最新)
|
|
8
|
-
* - 通过序号或 ID 确认/拒绝
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.ConnectionManager = void 0;
|
|
12
|
-
const eventemitter3_1 = require("eventemitter3");
|
|
13
|
-
const crypto_1 = require("crypto");
|
|
14
|
-
// 常量
|
|
15
|
-
const PENDING_TIMEOUT = 60 * 60 * 1000; // 1小时
|
|
16
|
-
const CLEANUP_INTERVAL = 60 * 1000; // 每分钟清理一次
|
|
17
|
-
class ConnectionManager extends eventemitter3_1.EventEmitter {
|
|
18
|
-
pendingConnections = new Map();
|
|
19
|
-
agentToConfirmation = new Map();
|
|
20
|
-
maxIndex = 0;
|
|
21
|
-
cleanupInterval;
|
|
22
|
-
options;
|
|
23
|
-
constructor(options = {}) {
|
|
24
|
-
super();
|
|
25
|
-
this.options = {
|
|
26
|
-
timeout: options.timeout ?? PENDING_TIMEOUT,
|
|
27
|
-
cleanupInterval: options.cleanupInterval ?? CLEANUP_INTERVAL
|
|
28
|
-
};
|
|
29
|
-
this.startCleanup();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* 添加待确认连接
|
|
33
|
-
*/
|
|
34
|
-
addPending(agentId, socket, publicKey, address, port) {
|
|
35
|
-
// 检查是否已有同一 Agent 的待确认请求
|
|
36
|
-
const existingId = this.agentToConfirmation.get(agentId);
|
|
37
|
-
let isDuplicate = false;
|
|
38
|
-
if (existingId) {
|
|
39
|
-
const existing = this.pendingConnections.get(existingId);
|
|
40
|
-
if (existing) {
|
|
41
|
-
// 关闭旧的 socket
|
|
42
|
-
this.closeSocket(existing.socket);
|
|
43
|
-
// 删除旧的记录
|
|
44
|
-
this.pendingConnections.delete(existingId);
|
|
45
|
-
console.log(`[ConnectionManager] 更新 ${agentId.slice(0, 16)}... 的连接请求(去重)`);
|
|
46
|
-
isDuplicate = true;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
const confirmationId = (0, crypto_1.randomUUID)();
|
|
50
|
-
const now = Date.now();
|
|
51
|
-
const pending = {
|
|
52
|
-
confirmationId,
|
|
53
|
-
agentId,
|
|
54
|
-
socket,
|
|
55
|
-
publicKey,
|
|
56
|
-
address,
|
|
57
|
-
port,
|
|
58
|
-
timestamp: now,
|
|
59
|
-
expiresAt: now + this.options.timeout,
|
|
60
|
-
index: ++this.maxIndex
|
|
61
|
-
};
|
|
62
|
-
this.pendingConnections.set(confirmationId, pending);
|
|
63
|
-
this.agentToConfirmation.set(agentId, confirmationId);
|
|
64
|
-
this.emit('pending_added', {
|
|
65
|
-
confirmationId,
|
|
66
|
-
agentId,
|
|
67
|
-
address,
|
|
68
|
-
port,
|
|
69
|
-
isDuplicate
|
|
70
|
-
});
|
|
71
|
-
return { confirmationId, isDuplicate };
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* 获取待确认连接列表
|
|
75
|
-
*/
|
|
76
|
-
getPendingList() {
|
|
77
|
-
const now = Date.now();
|
|
78
|
-
const list = [];
|
|
79
|
-
for (const pending of this.pendingConnections.values()) {
|
|
80
|
-
const remainingMs = pending.expiresAt - now;
|
|
81
|
-
const remainingMinutes = Math.max(0, Math.floor(remainingMs / 60000));
|
|
82
|
-
list.push({
|
|
83
|
-
index: pending.index,
|
|
84
|
-
confirmationId: pending.confirmationId,
|
|
85
|
-
shortId: pending.confirmationId.slice(0, 8),
|
|
86
|
-
agentId: pending.agentId,
|
|
87
|
-
agentIdShort: pending.agentId.slice(0, 16) + '...',
|
|
88
|
-
address: pending.address,
|
|
89
|
-
port: pending.port,
|
|
90
|
-
remainingMinutes,
|
|
91
|
-
requestedAt: pending.timestamp
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
return list.sort((a, b) => a.index - b.index);
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* 通过序号查找
|
|
98
|
-
*/
|
|
99
|
-
getByIndex(index) {
|
|
100
|
-
for (const pending of this.pendingConnections.values()) {
|
|
101
|
-
if (pending.index === index) {
|
|
102
|
-
return pending;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* 通过 ID 查找
|
|
109
|
-
*/
|
|
110
|
-
getById(confirmationId) {
|
|
111
|
-
// 完整匹配
|
|
112
|
-
if (this.pendingConnections.has(confirmationId)) {
|
|
113
|
-
return this.pendingConnections.get(confirmationId);
|
|
114
|
-
}
|
|
115
|
-
// 短 ID 匹配(前8位)
|
|
116
|
-
for (const [id, pending] of this.pendingConnections) {
|
|
117
|
-
if (id.startsWith(confirmationId)) {
|
|
118
|
-
return pending;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
return null;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* 确认连接
|
|
125
|
-
*/
|
|
126
|
-
confirm(idOrIndex) {
|
|
127
|
-
const pending = typeof idOrIndex === 'number'
|
|
128
|
-
? this.getByIndex(idOrIndex)
|
|
129
|
-
: this.getById(idOrIndex);
|
|
130
|
-
if (!pending) {
|
|
131
|
-
return { success: false, error: '连接请求不存在或已过期' };
|
|
132
|
-
}
|
|
133
|
-
// 清理记录
|
|
134
|
-
this.pendingConnections.delete(pending.confirmationId);
|
|
135
|
-
this.agentToConfirmation.delete(pending.agentId);
|
|
136
|
-
this.emit('confirmed', {
|
|
137
|
-
confirmationId: pending.confirmationId,
|
|
138
|
-
agentId: pending.agentId,
|
|
139
|
-
socket: pending.socket,
|
|
140
|
-
publicKey: pending.publicKey
|
|
141
|
-
});
|
|
142
|
-
return { success: true, data: pending };
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* 拒绝连接
|
|
146
|
-
*/
|
|
147
|
-
reject(idOrIndex, reason = '用户拒绝') {
|
|
148
|
-
const pending = typeof idOrIndex === 'number'
|
|
149
|
-
? this.getByIndex(idOrIndex)
|
|
150
|
-
: this.getById(idOrIndex);
|
|
151
|
-
if (!pending) {
|
|
152
|
-
return { success: false, error: '连接请求不存在或已过期' };
|
|
153
|
-
}
|
|
154
|
-
// 关闭 socket
|
|
155
|
-
this.closeSocket(pending.socket);
|
|
156
|
-
// 清理记录
|
|
157
|
-
this.pendingConnections.delete(pending.confirmationId);
|
|
158
|
-
this.agentToConfirmation.delete(pending.agentId);
|
|
159
|
-
this.emit('rejected', {
|
|
160
|
-
confirmationId: pending.confirmationId,
|
|
161
|
-
agentId: pending.agentId,
|
|
162
|
-
reason
|
|
163
|
-
});
|
|
164
|
-
return { success: true, data: pending };
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* 获取待确认数量
|
|
168
|
-
*/
|
|
169
|
-
getPendingCount() {
|
|
170
|
-
return this.pendingConnections.size;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* 检查 Agent 是否有待确认请求
|
|
174
|
-
*/
|
|
175
|
-
hasPendingForAgent(agentId) {
|
|
176
|
-
return this.agentToConfirmation.has(agentId);
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* 停止管理器
|
|
180
|
-
*/
|
|
181
|
-
stop() {
|
|
182
|
-
if (this.cleanupInterval) {
|
|
183
|
-
clearInterval(this.cleanupInterval);
|
|
184
|
-
}
|
|
185
|
-
// 关闭所有待确认连接
|
|
186
|
-
for (const pending of this.pendingConnections.values()) {
|
|
187
|
-
this.closeSocket(pending.socket);
|
|
188
|
-
}
|
|
189
|
-
this.pendingConnections.clear();
|
|
190
|
-
this.agentToConfirmation.clear();
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* 启动定期清理
|
|
194
|
-
*/
|
|
195
|
-
startCleanup() {
|
|
196
|
-
this.cleanupInterval = setInterval(() => {
|
|
197
|
-
this.cleanup();
|
|
198
|
-
}, this.options.cleanupInterval);
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* 清理过期连接
|
|
202
|
-
*/
|
|
203
|
-
cleanup() {
|
|
204
|
-
const now = Date.now();
|
|
205
|
-
let expiredCount = 0;
|
|
206
|
-
for (const [confirmationId, pending] of this.pendingConnections) {
|
|
207
|
-
if (now > pending.expiresAt) {
|
|
208
|
-
this.closeSocket(pending.socket);
|
|
209
|
-
this.agentToConfirmation.delete(pending.agentId);
|
|
210
|
-
this.pendingConnections.delete(confirmationId);
|
|
211
|
-
expiredCount++;
|
|
212
|
-
this.emit('expired', {
|
|
213
|
-
confirmationId,
|
|
214
|
-
agentId: pending.agentId
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (expiredCount > 0) {
|
|
219
|
-
console.log(`[ConnectionManager] 清理 ${expiredCount} 个过期连接`);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* 安全关闭 socket
|
|
224
|
-
*/
|
|
225
|
-
closeSocket(socket) {
|
|
226
|
-
try {
|
|
227
|
-
socket.end();
|
|
228
|
-
}
|
|
229
|
-
catch {
|
|
230
|
-
// 忽略错误
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
exports.ConnectionManager = ConnectionManager;
|
|
235
|
-
//# sourceMappingURL=connection-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/core/connection-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.test.d.ts","sourceRoot":"","sources":["../../src/core/connection-manager.test.ts"],"names":[],"mappings":""}
|