@f2a/network 0.1.2 → 0.1.3
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/package.json +8 -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,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const connection_manager_1 = require("./connection-manager");
|
|
5
|
-
// Mock Socket
|
|
6
|
-
function createMockSocket() {
|
|
7
|
-
return {
|
|
8
|
-
ended: false,
|
|
9
|
-
end: function () { this.ended = true; },
|
|
10
|
-
remoteAddress: '192.168.1.100',
|
|
11
|
-
remotePort: 9001
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
(0, vitest_1.describe)('ConnectionManager', () => {
|
|
15
|
-
let cm;
|
|
16
|
-
(0, vitest_1.beforeEach)(() => {
|
|
17
|
-
cm = new connection_manager_1.ConnectionManager({ timeout: 1000, cleanupInterval: 100 });
|
|
18
|
-
});
|
|
19
|
-
(0, vitest_1.afterEach)(() => {
|
|
20
|
-
cm.stop();
|
|
21
|
-
});
|
|
22
|
-
(0, vitest_1.it)('should add pending connection', () => {
|
|
23
|
-
const socket = createMockSocket();
|
|
24
|
-
const result = cm.addPending('agent-1', socket, 'key', '192.168.1.100', 9001);
|
|
25
|
-
(0, vitest_1.expect)(result.confirmationId).toBeDefined();
|
|
26
|
-
(0, vitest_1.expect)(result.isDuplicate).toBe(false);
|
|
27
|
-
(0, vitest_1.expect)(cm.getPendingCount()).toBe(1);
|
|
28
|
-
});
|
|
29
|
-
(0, vitest_1.it)('should deduplicate same agent requests', () => {
|
|
30
|
-
const socket1 = createMockSocket();
|
|
31
|
-
cm.addPending('agent-1', socket1, 'key1', '192.168.1.100', 9001);
|
|
32
|
-
const socket2 = createMockSocket();
|
|
33
|
-
const result = cm.addPending('agent-1', socket2, 'key2', '192.168.1.100', 9002);
|
|
34
|
-
(0, vitest_1.expect)(result.isDuplicate).toBe(true);
|
|
35
|
-
(0, vitest_1.expect)(cm.getPendingCount()).toBe(1);
|
|
36
|
-
});
|
|
37
|
-
(0, vitest_1.it)('should confirm connection', () => {
|
|
38
|
-
cm.addPending('agent-1', createMockSocket(), 'key1', '192.168.1.100', 9001);
|
|
39
|
-
const result = cm.confirm(1);
|
|
40
|
-
(0, vitest_1.expect)(result.success).toBe(true);
|
|
41
|
-
(0, vitest_1.expect)(cm.getPendingCount()).toBe(0);
|
|
42
|
-
});
|
|
43
|
-
(0, vitest_1.it)('should reject connection', () => {
|
|
44
|
-
const socket = createMockSocket();
|
|
45
|
-
cm.addPending('agent-1', socket, 'key1', '192.168.1.100', 9001);
|
|
46
|
-
const result = cm.reject(1, 'test reason');
|
|
47
|
-
(0, vitest_1.expect)(result.success).toBe(true);
|
|
48
|
-
(0, vitest_1.expect)(socket.ended).toBe(true);
|
|
49
|
-
(0, vitest_1.expect)(cm.getPendingCount()).toBe(0);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=connection-manager.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.test.js","sourceRoot":"","sources":["../../src/core/connection-manager.test.ts"],"names":[],"mappings":"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"}
|
package/dist/core/identity.d.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 身份管理器
|
|
3
|
-
* 负责生成、加载和保存 Agent 身份
|
|
4
|
-
*/
|
|
5
|
-
import { AgentIdentity, IdentityInfo, Result } from '../types';
|
|
6
|
-
export interface IdentityManagerOptions {
|
|
7
|
-
configDir?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare class IdentityManager {
|
|
10
|
-
private configDir;
|
|
11
|
-
private identityFile;
|
|
12
|
-
constructor(options?: IdentityManagerOptions);
|
|
13
|
-
/**
|
|
14
|
-
* 获取或创建身份
|
|
15
|
-
*/
|
|
16
|
-
getOrCreateIdentity(displayName?: string): IdentityInfo;
|
|
17
|
-
/**
|
|
18
|
-
* 创建新身份
|
|
19
|
-
*/
|
|
20
|
-
createIdentity(displayName?: string): IdentityInfo;
|
|
21
|
-
/**
|
|
22
|
-
* 加载已有身份
|
|
23
|
-
*/
|
|
24
|
-
loadIdentity(): AgentIdentity | null;
|
|
25
|
-
/**
|
|
26
|
-
* 保存身份
|
|
27
|
-
*/
|
|
28
|
-
saveIdentity(identity: AgentIdentity): Result<void>;
|
|
29
|
-
/**
|
|
30
|
-
* 获取身份文件路径
|
|
31
|
-
*/
|
|
32
|
-
getConfigPath(): string;
|
|
33
|
-
/**
|
|
34
|
-
* 获取身份信息(只读)
|
|
35
|
-
*/
|
|
36
|
-
getIdentityInfo(): Pick<AgentIdentity, 'agentId' | 'displayName'> | null;
|
|
37
|
-
/**
|
|
38
|
-
* 生成 Agent ID
|
|
39
|
-
* 基于公钥派生
|
|
40
|
-
*/
|
|
41
|
-
private generateAgentId;
|
|
42
|
-
/**
|
|
43
|
-
* 确保配置目录存在
|
|
44
|
-
*/
|
|
45
|
-
private ensureConfigDir;
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/core/identity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/D,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,GAAE,sBAA2B;IAMhD;;OAEG;IACH,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY;IASvD;;OAEG;IACH,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY;IAwBlD;;OAEG;IACH,YAAY,IAAI,aAAa,GAAG,IAAI;IAsBpC;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;IAWnD;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,aAAa,CAAC,GAAG,IAAI;IAUxE;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,eAAe;CAKxB"}
|
package/dist/core/identity.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* 身份管理器
|
|
4
|
-
* 负责生成、加载和保存 Agent 身份
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.IdentityManager = void 0;
|
|
8
|
-
const crypto_1 = require("crypto");
|
|
9
|
-
const fs_1 = require("fs");
|
|
10
|
-
const path_1 = require("path");
|
|
11
|
-
const os_1 = require("os");
|
|
12
|
-
class IdentityManager {
|
|
13
|
-
configDir;
|
|
14
|
-
identityFile;
|
|
15
|
-
constructor(options = {}) {
|
|
16
|
-
this.configDir = options.configDir ?? (0, path_1.join)((0, os_1.homedir)(), '.f2a');
|
|
17
|
-
this.identityFile = (0, path_1.join)(this.configDir, 'identity.json');
|
|
18
|
-
this.ensureConfigDir();
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* 获取或创建身份
|
|
22
|
-
*/
|
|
23
|
-
getOrCreateIdentity(displayName) {
|
|
24
|
-
const existing = this.loadIdentity();
|
|
25
|
-
if (existing) {
|
|
26
|
-
return { ...existing, isNew: false };
|
|
27
|
-
}
|
|
28
|
-
return this.createIdentity(displayName);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* 创建新身份
|
|
32
|
-
*/
|
|
33
|
-
createIdentity(displayName) {
|
|
34
|
-
const keyPair = (0, crypto_1.generateKeyPairSync)('ed25519', {
|
|
35
|
-
publicKeyEncoding: { type: 'spki', format: 'pem' },
|
|
36
|
-
privateKeyEncoding: { type: 'pkcs8', format: 'pem' }
|
|
37
|
-
});
|
|
38
|
-
const agentId = this.generateAgentId(keyPair.publicKey);
|
|
39
|
-
const identity = {
|
|
40
|
-
agentId,
|
|
41
|
-
publicKey: keyPair.publicKey,
|
|
42
|
-
privateKey: keyPair.privateKey,
|
|
43
|
-
displayName
|
|
44
|
-
};
|
|
45
|
-
this.saveIdentity(identity);
|
|
46
|
-
return {
|
|
47
|
-
...identity,
|
|
48
|
-
isNew: true,
|
|
49
|
-
createdAt: Date.now()
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* 加载已有身份
|
|
54
|
-
*/
|
|
55
|
-
loadIdentity() {
|
|
56
|
-
try {
|
|
57
|
-
if (!(0, fs_1.existsSync)(this.identityFile)) {
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
const data = (0, fs_1.readFileSync)(this.identityFile, 'utf-8');
|
|
61
|
-
const identity = JSON.parse(data);
|
|
62
|
-
// 验证必要字段
|
|
63
|
-
if (!identity.agentId || !identity.publicKey || !identity.privateKey) {
|
|
64
|
-
console.error('[IdentityManager] 身份文件格式错误');
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
return identity;
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
console.error('[IdentityManager] 加载身份失败:', error);
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* 保存身份
|
|
76
|
-
*/
|
|
77
|
-
saveIdentity(identity) {
|
|
78
|
-
try {
|
|
79
|
-
const data = JSON.stringify(identity, null, 2);
|
|
80
|
-
(0, fs_1.writeFileSync)(this.identityFile, data, { mode: 0o600 }); // 只有所有者可读写
|
|
81
|
-
return { success: true, data: undefined };
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
85
|
-
return { success: false, error: `保存身份失败: ${message}` };
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* 获取身份文件路径
|
|
90
|
-
*/
|
|
91
|
-
getConfigPath() {
|
|
92
|
-
return this.identityFile;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* 获取身份信息(只读)
|
|
96
|
-
*/
|
|
97
|
-
getIdentityInfo() {
|
|
98
|
-
const identity = this.loadIdentity();
|
|
99
|
-
if (!identity)
|
|
100
|
-
return null;
|
|
101
|
-
return {
|
|
102
|
-
agentId: identity.agentId,
|
|
103
|
-
displayName: identity.displayName
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* 生成 Agent ID
|
|
108
|
-
* 基于公钥派生
|
|
109
|
-
*/
|
|
110
|
-
generateAgentId(publicKey) {
|
|
111
|
-
// 使用公钥的前 16 位作为基础
|
|
112
|
-
const base = publicKey
|
|
113
|
-
.replace(/-----BEGIN PUBLIC KEY-----/, '')
|
|
114
|
-
.replace(/-----END PUBLIC KEY-----/, '')
|
|
115
|
-
.replace(/\s/g, '')
|
|
116
|
-
.slice(0, 16);
|
|
117
|
-
// 格式: f2a-xxxx-xxxx
|
|
118
|
-
return `f2a-${base.slice(0, 4)}-${base.slice(4, 8)}-${base.slice(8, 12)}`;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* 确保配置目录存在
|
|
122
|
-
*/
|
|
123
|
-
ensureConfigDir() {
|
|
124
|
-
if (!(0, fs_1.existsSync)(this.configDir)) {
|
|
125
|
-
(0, fs_1.mkdirSync)(this.configDir, { recursive: true, mode: 0o700 });
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
exports.IdentityManager = IdentityManager;
|
|
130
|
-
//# sourceMappingURL=identity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/core/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity.test.d.ts","sourceRoot":"","sources":["../../src/core/identity.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const identity_1 = require("./identity");
|
|
5
|
-
const fs_1 = require("fs");
|
|
6
|
-
const path_1 = require("path");
|
|
7
|
-
const os_1 = require("os");
|
|
8
|
-
(0, vitest_1.describe)('IdentityManager', () => {
|
|
9
|
-
let testDir;
|
|
10
|
-
let im;
|
|
11
|
-
(0, vitest_1.beforeEach)(() => {
|
|
12
|
-
testDir = (0, path_1.join)((0, os_1.tmpdir)(), `f2a-test-${Date.now()}`);
|
|
13
|
-
im = new identity_1.IdentityManager({ configDir: testDir });
|
|
14
|
-
});
|
|
15
|
-
(0, vitest_1.afterEach)(() => {
|
|
16
|
-
if ((0, fs_1.existsSync)(testDir)) {
|
|
17
|
-
(0, fs_1.rmSync)(testDir, { recursive: true });
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
(0, vitest_1.it)('should create new identity', () => {
|
|
21
|
-
const identity = im.getOrCreateIdentity('TestAgent');
|
|
22
|
-
(0, vitest_1.expect)(identity.isNew).toBe(true);
|
|
23
|
-
(0, vitest_1.expect)(identity.agentId).toBeDefined();
|
|
24
|
-
(0, vitest_1.expect)(identity.publicKey).toBeDefined();
|
|
25
|
-
(0, vitest_1.expect)(identity.privateKey).toBeDefined();
|
|
26
|
-
(0, vitest_1.expect)(identity.displayName).toBe('TestAgent');
|
|
27
|
-
});
|
|
28
|
-
(0, vitest_1.it)('should load existing identity', () => {
|
|
29
|
-
const identity1 = im.getOrCreateIdentity();
|
|
30
|
-
const identity2 = im.getOrCreateIdentity();
|
|
31
|
-
(0, vitest_1.expect)(identity1.isNew).toBe(true);
|
|
32
|
-
(0, vitest_1.expect)(identity2.isNew).toBe(false);
|
|
33
|
-
(0, vitest_1.expect)(identity1.agentId).toBe(identity2.agentId);
|
|
34
|
-
});
|
|
35
|
-
(0, vitest_1.it)('should return identity info', () => {
|
|
36
|
-
im.getOrCreateIdentity('TestAgent');
|
|
37
|
-
const info = im.getIdentityInfo();
|
|
38
|
-
(0, vitest_1.expect)(info).toBeDefined();
|
|
39
|
-
(0, vitest_1.expect)(info?.agentId).toBeDefined();
|
|
40
|
-
(0, vitest_1.expect)(info?.displayName).toBe('TestAgent');
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
//# sourceMappingURL=identity.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity.test.js","sourceRoot":"","sources":["../../src/core/identity.test.ts"],"names":[],"mappings":";;AAAA,mCAAqE;AACrE,yCAA6C;AAC7C,2BAAwC;AACxC,+BAA4B;AAC5B,2BAA4B;AAE5B,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,OAAe,CAAC;IACpB,IAAI,EAAmB,CAAC;IAExB,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,OAAO,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnD,EAAE,GAAG,IAAI,0BAAe,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YACxB,IAAA,WAAM,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAErD,IAAA,eAAM,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAA,eAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,IAAA,eAAM,EAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,IAAA,eAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAA,eAAM,EAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,SAAS,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;QAE3C,IAAA,eAAM,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAA,eAAM,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAA,eAAM,EAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC;QAElC,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,IAAA,eAAM,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,IAAA,eAAM,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* P2P Serverless 模块
|
|
3
|
-
* 处理 TCP 连接、UDP 发现、身份验证
|
|
4
|
-
*/
|
|
5
|
-
import { EventEmitter } from 'eventemitter3';
|
|
6
|
-
import { Socket } from 'net';
|
|
7
|
-
import { ConnectionConfig, AgentIdentity, DiscoveredAgent, Result, F2AMessage } from '../types';
|
|
8
|
-
import { ConnectionManager } from './connection-manager';
|
|
9
|
-
export interface ServerlessP2POptions {
|
|
10
|
-
identity: AgentIdentity;
|
|
11
|
-
config: ConnectionConfig;
|
|
12
|
-
connectionManager: ConnectionManager;
|
|
13
|
-
}
|
|
14
|
-
export interface PeerInfo {
|
|
15
|
-
socket: Socket;
|
|
16
|
-
address: string;
|
|
17
|
-
port: number;
|
|
18
|
-
publicKey: string;
|
|
19
|
-
verified: boolean;
|
|
20
|
-
connectedAt: number;
|
|
21
|
-
}
|
|
22
|
-
export declare class ServerlessP2P extends EventEmitter<{
|
|
23
|
-
'agent_discovered': (agent: DiscoveredAgent) => void;
|
|
24
|
-
'peer_connected': (info: {
|
|
25
|
-
peerId: string;
|
|
26
|
-
publicKey: string;
|
|
27
|
-
}) => void;
|
|
28
|
-
'peer_disconnected': (info: {
|
|
29
|
-
peerId: string;
|
|
30
|
-
}) => void;
|
|
31
|
-
'message': (info: {
|
|
32
|
-
peerId: string;
|
|
33
|
-
message: F2AMessage;
|
|
34
|
-
}) => void;
|
|
35
|
-
'started': (info: {
|
|
36
|
-
port: number;
|
|
37
|
-
}) => void;
|
|
38
|
-
'stopped': () => void;
|
|
39
|
-
'error': (error: Error) => void;
|
|
40
|
-
}> {
|
|
41
|
-
private identity;
|
|
42
|
-
private config;
|
|
43
|
-
private connectionManager;
|
|
44
|
-
private tcpServer?;
|
|
45
|
-
private udpSocket?;
|
|
46
|
-
private peers;
|
|
47
|
-
private discoveredAgents;
|
|
48
|
-
private pendingChallenges;
|
|
49
|
-
private rateLimiter;
|
|
50
|
-
private discoveryInterval?;
|
|
51
|
-
private broadcastInterval?;
|
|
52
|
-
private cleanupInterval?;
|
|
53
|
-
constructor(options: ServerlessP2POptions);
|
|
54
|
-
/**
|
|
55
|
-
* 启动 P2P 服务
|
|
56
|
-
*/
|
|
57
|
-
start(): Promise<Result<void>>;
|
|
58
|
-
/**
|
|
59
|
-
* 停止 P2P 服务
|
|
60
|
-
*/
|
|
61
|
-
stop(): void;
|
|
62
|
-
/**
|
|
63
|
-
* 连接到指定 Agent
|
|
64
|
-
*/
|
|
65
|
-
connectToAgent(agentId: string, address: string, port: number): Promise<Result<void>>;
|
|
66
|
-
/**
|
|
67
|
-
* 发送消息给 Peer
|
|
68
|
-
*/
|
|
69
|
-
sendToPeer(peerId: string, message: F2AMessage): Result<void>;
|
|
70
|
-
/**
|
|
71
|
-
* 获取已连接的 Peers
|
|
72
|
-
*/
|
|
73
|
-
getConnectedPeers(): string[];
|
|
74
|
-
/**
|
|
75
|
-
* 获取发现的 Agents
|
|
76
|
-
*/
|
|
77
|
-
getDiscoveredAgents(): DiscoveredAgent[];
|
|
78
|
-
/**
|
|
79
|
-
* 启动 TCP 监听器
|
|
80
|
-
*/
|
|
81
|
-
private startTCPListener;
|
|
82
|
-
/**
|
|
83
|
-
* 启动 UDP 发现
|
|
84
|
-
*/
|
|
85
|
-
private startUDPDiscovery;
|
|
86
|
-
/**
|
|
87
|
-
* 开始发现广播
|
|
88
|
-
*/
|
|
89
|
-
private startDiscoveryBroadcast;
|
|
90
|
-
/**
|
|
91
|
-
* 处理发现消息
|
|
92
|
-
*/
|
|
93
|
-
private handleDiscoveryMessage;
|
|
94
|
-
/**
|
|
95
|
-
* 处理传入连接
|
|
96
|
-
*/
|
|
97
|
-
private handleIncomingConnection;
|
|
98
|
-
/**
|
|
99
|
-
* 设置 Socket 处理器
|
|
100
|
-
*/
|
|
101
|
-
private setupSocketHandlers;
|
|
102
|
-
/**
|
|
103
|
-
* 处理 Socket 消息
|
|
104
|
-
*/
|
|
105
|
-
private handleSocketMessage;
|
|
106
|
-
/**
|
|
107
|
-
* 发送身份挑战
|
|
108
|
-
*/
|
|
109
|
-
private sendIdentityChallenge;
|
|
110
|
-
/**
|
|
111
|
-
* 处理身份挑战
|
|
112
|
-
*/
|
|
113
|
-
private handleIdentityChallenge;
|
|
114
|
-
/**
|
|
115
|
-
* 处理身份响应
|
|
116
|
-
*/
|
|
117
|
-
private handleIdentityResponse;
|
|
118
|
-
/**
|
|
119
|
-
* 请求确认
|
|
120
|
-
*/
|
|
121
|
-
private requestConfirmation;
|
|
122
|
-
/**
|
|
123
|
-
* 处理确认结果
|
|
124
|
-
*/
|
|
125
|
-
private handleConfirmationResult;
|
|
126
|
-
/**
|
|
127
|
-
* 验证 Peer
|
|
128
|
-
*/
|
|
129
|
-
private verifyPeer;
|
|
130
|
-
/**
|
|
131
|
-
* 处理 Socket 关闭
|
|
132
|
-
*/
|
|
133
|
-
private handleSocketClose;
|
|
134
|
-
/**
|
|
135
|
-
* 获取 Socket 对应的 Peer ID
|
|
136
|
-
*/
|
|
137
|
-
private getPeerIdBySocket;
|
|
138
|
-
/**
|
|
139
|
-
* 速率限制检查
|
|
140
|
-
*/
|
|
141
|
-
private checkRateLimit;
|
|
142
|
-
/**
|
|
143
|
-
* 获取广播地址列表
|
|
144
|
-
*/
|
|
145
|
-
private getBroadcastAddresses;
|
|
146
|
-
/**
|
|
147
|
-
* 启动清理定时器
|
|
148
|
-
*/
|
|
149
|
-
private startCleanup;
|
|
150
|
-
/**
|
|
151
|
-
* 安全关闭 Socket
|
|
152
|
-
*/
|
|
153
|
-
private closeSocket;
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=serverless.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serverless.d.ts","sourceRoot":"","sources":["../../src/core/serverless.ts"],"names":[],"mappings":"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"}
|