@f2a/openclaw-f2a 0.2.24 → 0.3.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.
@@ -8,6 +8,19 @@
8
8
  * - 这种方式更简洁,避免了 HTTP + CLI 的复杂性
9
9
  */
10
10
  import type { OpenClawPlugin, OpenClawPluginApi, Tool, F2APluginConfig, AgentInfo } from './types.js';
11
+ /**
12
+ * P1-6: 验证 PeerID 格式
13
+ * @param peerId - 待验证的 Peer ID
14
+ * @returns 是否为有效的 libp2p Peer ID 格式
15
+ */
16
+ export declare function isValidPeerId(peerId: string | undefined | null): peerId is string;
17
+ /** OpenClaw API Logger 类型 */
18
+ export interface ApiLogger {
19
+ info(message: string, ...args: unknown[]): void;
20
+ warn(message: string, ...args: unknown[]): void;
21
+ error(message: string, ...args: unknown[]): void;
22
+ debug?(message: string, ...args: unknown[]): void;
23
+ }
11
24
  /** 广播结果类型 */
12
25
  interface BroadcastResult {
13
26
  agent: string;
@@ -31,6 +44,13 @@ export declare class F2AOpenClawAdapter implements OpenClawPlugin {
31
44
  private _f2a?;
32
45
  private _toolHandlers?;
33
46
  private _claimHandlers?;
47
+ private _contactManager?;
48
+ private _handshakeProtocol?;
49
+ private _processedMessageHashes;
50
+ /** P1-3: 消息去重缓存最大条目数 */
51
+ private static readonly MAX_MESSAGE_HASH_CACHE_SIZE;
52
+ /** P1-3: 消息去重缓存条目最大存活时间(毫秒) */
53
+ private static readonly MESSAGE_HASH_TTL_MS;
34
54
  private config;
35
55
  private nodeConfig;
36
56
  private capabilities;
@@ -43,10 +63,39 @@ export declare class F2AOpenClawAdapter implements OpenClawPlugin {
43
63
  private get nodeManager();
44
64
  /**
45
65
  * 获取默认的 F2A 数据目录
46
- * 优先级:workspace/.f2a > ~/.f2a(兼容旧版本)
47
- * 注意:config.dataDir 的处理在 mergeConfig() 中,这里只处理未配置的情况
66
+ *
67
+ * 优先级:
68
+ * 1. config.dataDir(用户显式配置)
69
+ * 2. workspace/.f2a(agent workspace 目录)
70
+ * 3. ~/.f2a(兼容旧版本)
71
+ *
72
+ * 安全:
73
+ * - P0-1: 验证 workspace 路径,防止路径遍历攻击
74
+ * - P1-1: 优先检查 config.dataDir
48
75
  */
49
76
  private getDefaultDataDir;
77
+ /**
78
+ * P1-2, P1-5, P1-3: 检测是否为回声消息(避免循环)
79
+ *
80
+ * 使用多层验证策略:
81
+ * 1. 检查 metadata 中的特定标记(不仅仅是 type === 'reply')
82
+ * 2. 检查消息来源可信度
83
+ * 3. 检查消息内容的特殊标记
84
+ * 4. P1-3: 基于消息内容哈希的去重机制(防止恶意绕过)
85
+ *
86
+ * @param msg - 接收到的消息
87
+ * @returns 是否为应该跳过的回声消息
88
+ */
89
+ private isEchoMessage;
90
+ /**
91
+ * P1-3: 计算消息内容哈希
92
+ * 用于基于内容的去重
93
+ */
94
+ private computeMessageHash;
95
+ /**
96
+ * P1-3: 清理过期的消息哈希缓存
97
+ */
98
+ private cleanupMessageHashCache;
50
99
  /**
51
100
  * 获取网络客户端(懒加载)
52
101
  * 新架构:直接使用 F2A 实例的方法,不再通过 HTTP
@@ -81,6 +130,15 @@ export declare class F2AOpenClawAdapter implements OpenClawPlugin {
81
130
  * 获取认领处理器(延迟初始化)
82
131
  */
83
132
  private get claimHandlers();
133
+ /**
134
+ * Issue #98: 获取联系人管理器(延迟初始化)
135
+ */
136
+ private get contactManager();
137
+ /**
138
+ * Issue #99: 获取握手协议处理器(延迟初始化)
139
+ * 依赖 F2A 实例和 ContactManager
140
+ */
141
+ private get handshakeProtocol();
84
142
  /**
85
143
  * 检查是否已初始化(用于判断是否需要启动服务)
86
144
  */
@@ -207,6 +265,30 @@ export declare class F2AOpenClawAdapter implements OpenClawPlugin {
207
265
  * 解析 Agent 引用(公共方法,供测试和外部调用)
208
266
  */
209
267
  resolveAgent(agentRef: string): Promise<AgentInfo | null>;
268
+ /**
269
+ * 处理通讯录工具
270
+ */
271
+ private handleContacts;
272
+ /**
273
+ * 处理分组管理工具
274
+ */
275
+ private handleContactGroups;
276
+ /**
277
+ * 处理好友请求工具
278
+ */
279
+ private handleFriendRequest;
280
+ /**
281
+ * 处理待处理请求工具
282
+ */
283
+ private handlePendingRequests;
284
+ /**
285
+ * 处理导出通讯录工具
286
+ */
287
+ private handleContactsExport;
288
+ /**
289
+ * 处理导入通讯录工具
290
+ */
291
+ private handleContactsImport;
210
292
  /**
211
293
  * 关闭插件,清理资源
212
294
  * 只清理已初始化的资源
@@ -1 +1 @@
1
- {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}