@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
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { EventEmitter } from 'eventemitter3';
|
|
6
6
|
import { P2PNetworkConfig, AgentInfo, F2AMessage, PeerInfo, PeerDiscoveredEvent, PeerConnectedEvent, PeerDisconnectedEvent, Result } from '../types/index.js';
|
|
7
|
+
import { IdentityManager } from './identity/index.js';
|
|
7
8
|
import { Middleware } from '../utils/middleware.js';
|
|
8
9
|
export interface P2PNetworkEvents {
|
|
9
10
|
'peer:discovered': (event: PeerDiscoveredEvent) => void;
|
|
@@ -23,17 +24,31 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
23
24
|
private node;
|
|
24
25
|
private config;
|
|
25
26
|
private peerTable;
|
|
27
|
+
/** P2.4 修复:已连接 Peer 索引,用于 O(1) 查询 */
|
|
28
|
+
private connectedPeers;
|
|
29
|
+
/** P1 修复:信任的 Peer 白名单,不会被清理 */
|
|
30
|
+
private trustedPeers;
|
|
26
31
|
/** 用于保护 peerTable 并发访问的锁 */
|
|
27
32
|
private peerTableLock;
|
|
33
|
+
/** P2-4 修复:DISCOVER 消息速率限制器(每个 peer) */
|
|
34
|
+
private discoverRateLimiter;
|
|
35
|
+
/** P1 修复:保存事件监听器引用,用于 stop() 中移除 */
|
|
36
|
+
private boundEventHandlers;
|
|
28
37
|
private agentInfo;
|
|
29
38
|
private pendingTasks;
|
|
30
39
|
private cleanupInterval?;
|
|
31
40
|
private discoveryInterval?;
|
|
32
41
|
private e2eeCrypto;
|
|
33
42
|
private enableE2EE;
|
|
43
|
+
private identityManager?;
|
|
34
44
|
private logger;
|
|
35
45
|
private middlewareManager;
|
|
36
46
|
constructor(agentInfo: AgentInfo, config?: P2PNetworkConfig);
|
|
47
|
+
/**
|
|
48
|
+
* 设置 IdentityManager(用于持久化身份)
|
|
49
|
+
* 必须在 start() 之前调用
|
|
50
|
+
*/
|
|
51
|
+
setIdentityManager(identityManager: IdentityManager): void;
|
|
37
52
|
/**
|
|
38
53
|
* 启动 P2P 网络
|
|
39
54
|
*/
|
|
@@ -78,6 +93,13 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
78
93
|
* 设置 libp2p 事件处理
|
|
79
94
|
*/
|
|
80
95
|
private setupEventHandlers;
|
|
96
|
+
/**
|
|
97
|
+
* 建议-2 修复:提取 mDNS 发现后的连接和 DISCOVER 发送逻辑
|
|
98
|
+
* 减少嵌套深度,提高可读性
|
|
99
|
+
* @param peerId 发现的 Peer ID
|
|
100
|
+
* @param multiaddrs 发现的 multiaddr 列表
|
|
101
|
+
*/
|
|
102
|
+
private initiateDiscovery;
|
|
81
103
|
/**
|
|
82
104
|
* 处理收到的消息
|
|
83
105
|
*/
|
|
@@ -101,6 +123,7 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
101
123
|
private dispatchMessage;
|
|
102
124
|
/**
|
|
103
125
|
* 处理发现消息
|
|
126
|
+
* P2-4 修复:添加速率限制,防止恶意节点大量发送 DISCOVER 消息
|
|
104
127
|
*/
|
|
105
128
|
private handleDiscoverMessage;
|
|
106
129
|
/**
|
|
@@ -128,6 +151,7 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
128
151
|
private handleDiscover;
|
|
129
152
|
/**
|
|
130
153
|
* 将发现到的 Agent 信息更新到 Peer 表
|
|
154
|
+
* P2-5 修复:改为 async/await 模式,确保锁正确等待
|
|
131
155
|
*/
|
|
132
156
|
private upsertPeerFromAgentInfo;
|
|
133
157
|
/**
|
|
@@ -140,6 +164,7 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
140
164
|
private handleTaskResponse;
|
|
141
165
|
/**
|
|
142
166
|
* 连接引导节点
|
|
167
|
+
* 支持指纹验证,防止中间人攻击
|
|
143
168
|
*/
|
|
144
169
|
private connectToBootstrapPeers;
|
|
145
170
|
/**
|
|
@@ -192,6 +217,7 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
192
217
|
private hasCapability;
|
|
193
218
|
/**
|
|
194
219
|
* 获取已连接的 Peers
|
|
220
|
+
* P2.4 修复:使用 connectedPeers Set 索引,O(1) 查询复杂度
|
|
195
221
|
*/
|
|
196
222
|
getConnectedPeers(): PeerInfo[];
|
|
197
223
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-network.d.ts","sourceRoot":"","sources":["../../src/core/p2p-network.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"p2p-network.d.ts","sourceRoot":"","sources":["../../src/core/p2p-network.ts"],"names":[],"mappings":"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"}
|