network-ai 3.0.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/LICENSE +21 -0
- package/QUICKSTART.md +260 -0
- package/README.md +604 -0
- package/SKILL.md +568 -0
- package/dist/adapters/adapter-registry.d.ts +94 -0
- package/dist/adapters/adapter-registry.d.ts.map +1 -0
- package/dist/adapters/adapter-registry.js +355 -0
- package/dist/adapters/adapter-registry.js.map +1 -0
- package/dist/adapters/agno-adapter.d.ts +112 -0
- package/dist/adapters/agno-adapter.d.ts.map +1 -0
- package/dist/adapters/agno-adapter.js +140 -0
- package/dist/adapters/agno-adapter.js.map +1 -0
- package/dist/adapters/autogen-adapter.d.ts +67 -0
- package/dist/adapters/autogen-adapter.d.ts.map +1 -0
- package/dist/adapters/autogen-adapter.js +141 -0
- package/dist/adapters/autogen-adapter.js.map +1 -0
- package/dist/adapters/base-adapter.d.ts +51 -0
- package/dist/adapters/base-adapter.d.ts.map +1 -0
- package/dist/adapters/base-adapter.js +103 -0
- package/dist/adapters/base-adapter.js.map +1 -0
- package/dist/adapters/crewai-adapter.d.ts +72 -0
- package/dist/adapters/crewai-adapter.d.ts.map +1 -0
- package/dist/adapters/crewai-adapter.js +148 -0
- package/dist/adapters/crewai-adapter.js.map +1 -0
- package/dist/adapters/custom-adapter.d.ts +74 -0
- package/dist/adapters/custom-adapter.d.ts.map +1 -0
- package/dist/adapters/custom-adapter.js +142 -0
- package/dist/adapters/custom-adapter.js.map +1 -0
- package/dist/adapters/dspy-adapter.d.ts +70 -0
- package/dist/adapters/dspy-adapter.d.ts.map +1 -0
- package/dist/adapters/dspy-adapter.js +127 -0
- package/dist/adapters/dspy-adapter.js.map +1 -0
- package/dist/adapters/haystack-adapter.d.ts +83 -0
- package/dist/adapters/haystack-adapter.d.ts.map +1 -0
- package/dist/adapters/haystack-adapter.js +149 -0
- package/dist/adapters/haystack-adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +47 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +56 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/langchain-adapter.d.ts +51 -0
- package/dist/adapters/langchain-adapter.d.ts.map +1 -0
- package/dist/adapters/langchain-adapter.js +134 -0
- package/dist/adapters/langchain-adapter.js.map +1 -0
- package/dist/adapters/llamaindex-adapter.d.ts +89 -0
- package/dist/adapters/llamaindex-adapter.d.ts.map +1 -0
- package/dist/adapters/llamaindex-adapter.js +135 -0
- package/dist/adapters/llamaindex-adapter.js.map +1 -0
- package/dist/adapters/mcp-adapter.d.ts +90 -0
- package/dist/adapters/mcp-adapter.d.ts.map +1 -0
- package/dist/adapters/mcp-adapter.js +200 -0
- package/dist/adapters/mcp-adapter.js.map +1 -0
- package/dist/adapters/openai-assistants-adapter.d.ts +94 -0
- package/dist/adapters/openai-assistants-adapter.d.ts.map +1 -0
- package/dist/adapters/openai-assistants-adapter.js +130 -0
- package/dist/adapters/openai-assistants-adapter.js.map +1 -0
- package/dist/adapters/openclaw-adapter.d.ts +21 -0
- package/dist/adapters/openclaw-adapter.d.ts.map +1 -0
- package/dist/adapters/openclaw-adapter.js +140 -0
- package/dist/adapters/openclaw-adapter.js.map +1 -0
- package/dist/adapters/semantic-kernel-adapter.d.ts +73 -0
- package/dist/adapters/semantic-kernel-adapter.d.ts.map +1 -0
- package/dist/adapters/semantic-kernel-adapter.js +123 -0
- package/dist/adapters/semantic-kernel-adapter.js.map +1 -0
- package/dist/index.d.ts +379 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1428 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/blackboard-validator.d.ts +205 -0
- package/dist/lib/blackboard-validator.d.ts.map +1 -0
- package/dist/lib/blackboard-validator.js +756 -0
- package/dist/lib/blackboard-validator.js.map +1 -0
- package/dist/lib/locked-blackboard.d.ts +174 -0
- package/dist/lib/locked-blackboard.d.ts.map +1 -0
- package/dist/lib/locked-blackboard.js +654 -0
- package/dist/lib/locked-blackboard.js.map +1 -0
- package/dist/lib/swarm-utils.d.ts +136 -0
- package/dist/lib/swarm-utils.d.ts.map +1 -0
- package/dist/lib/swarm-utils.js +510 -0
- package/dist/lib/swarm-utils.js.map +1 -0
- package/dist/security.d.ts +269 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +713 -0
- package/dist/security.js.map +1 -0
- package/package.json +84 -0
- package/scripts/blackboard.py +819 -0
- package/scripts/check_permission.py +331 -0
- package/scripts/revoke_token.py +243 -0
- package/scripts/swarm_guard.py +1140 -0
- package/scripts/validate_token.py +97 -0
- package/types/agent-adapter.d.ts +244 -0
- package/types/openclaw-core.d.ts +52 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SwarmOrchestrator Security Module
|
|
3
|
+
*
|
|
4
|
+
* This module addresses security vulnerabilities in the multi-agent system:
|
|
5
|
+
*
|
|
6
|
+
* 1. Token Security - HMAC-signed tokens with expiration
|
|
7
|
+
* 2. Input Sanitization - Prevent injection attacks
|
|
8
|
+
* 3. Rate Limiting - Prevent DoS from rogue agents
|
|
9
|
+
* 4. Audit Integrity - Cryptographically signed audit logs
|
|
10
|
+
* 5. Data Encryption - Encrypt sensitive blackboard entries
|
|
11
|
+
* 6. Permission Hardening - Prevent privilege escalation
|
|
12
|
+
* 7. Path Traversal Protection - Sanitize file paths
|
|
13
|
+
*
|
|
14
|
+
* @module SwarmSecurity
|
|
15
|
+
* @version 1.0.0
|
|
16
|
+
*/
|
|
17
|
+
interface SecurityConfig {
|
|
18
|
+
tokenSecret: string;
|
|
19
|
+
tokenAlgorithm: 'sha256' | 'sha512';
|
|
20
|
+
maxTokenAge: number;
|
|
21
|
+
maxRequestsPerMinute: number;
|
|
22
|
+
maxFailedAuthAttempts: number;
|
|
23
|
+
lockoutDuration: number;
|
|
24
|
+
encryptionKey: string;
|
|
25
|
+
encryptSensitiveData: boolean;
|
|
26
|
+
signAuditLogs: boolean;
|
|
27
|
+
auditLogPath: string;
|
|
28
|
+
allowedBasePath: string;
|
|
29
|
+
}
|
|
30
|
+
declare const DEFAULT_CONFIG: SecurityConfig;
|
|
31
|
+
interface SecureToken {
|
|
32
|
+
tokenId: string;
|
|
33
|
+
agentId: string;
|
|
34
|
+
resourceType: string;
|
|
35
|
+
scope: string;
|
|
36
|
+
issuedAt: number;
|
|
37
|
+
expiresAt: number;
|
|
38
|
+
signature: string;
|
|
39
|
+
}
|
|
40
|
+
export declare class SecureTokenManager {
|
|
41
|
+
private config;
|
|
42
|
+
private revokedTokens;
|
|
43
|
+
constructor(config?: Partial<SecurityConfig>);
|
|
44
|
+
/**
|
|
45
|
+
* Generate a cryptographically signed token
|
|
46
|
+
*/
|
|
47
|
+
generateToken(agentId: string, resourceType: string, scope: string): SecureToken;
|
|
48
|
+
/**
|
|
49
|
+
* Validate a token's authenticity and expiration
|
|
50
|
+
*/
|
|
51
|
+
validateToken(token: SecureToken): {
|
|
52
|
+
valid: boolean;
|
|
53
|
+
reason?: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Revoke a token
|
|
57
|
+
*/
|
|
58
|
+
revokeToken(tokenId: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* HMAC sign a payload
|
|
61
|
+
*/
|
|
62
|
+
private sign;
|
|
63
|
+
/**
|
|
64
|
+
* Constant-time string comparison to prevent timing attacks
|
|
65
|
+
*/
|
|
66
|
+
private constantTimeCompare;
|
|
67
|
+
}
|
|
68
|
+
export declare class InputSanitizer {
|
|
69
|
+
private static DANGEROUS_PATTERNS;
|
|
70
|
+
/**
|
|
71
|
+
* Sanitize a string input
|
|
72
|
+
*/
|
|
73
|
+
static sanitizeString(input: string, maxLength?: number): string;
|
|
74
|
+
/**
|
|
75
|
+
* Sanitize an object recursively
|
|
76
|
+
*/
|
|
77
|
+
static sanitizeObject(obj: unknown, depth?: number, maxDepth?: number): unknown;
|
|
78
|
+
/**
|
|
79
|
+
* Validate and sanitize an agent ID
|
|
80
|
+
*/
|
|
81
|
+
static sanitizeAgentId(agentId: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* Validate and sanitize a file path
|
|
84
|
+
*/
|
|
85
|
+
static sanitizePath(inputPath: string, basePath: string): string;
|
|
86
|
+
}
|
|
87
|
+
interface RateLimitEntry {
|
|
88
|
+
count: number;
|
|
89
|
+
windowStart: number;
|
|
90
|
+
failedAttempts: number;
|
|
91
|
+
lockedUntil: number | null;
|
|
92
|
+
}
|
|
93
|
+
export declare class RateLimiter {
|
|
94
|
+
private limits;
|
|
95
|
+
private config;
|
|
96
|
+
constructor(config?: Partial<SecurityConfig>);
|
|
97
|
+
/**
|
|
98
|
+
* Check if an agent is rate limited
|
|
99
|
+
*/
|
|
100
|
+
isRateLimited(agentId: string): {
|
|
101
|
+
limited: boolean;
|
|
102
|
+
retryAfter?: number;
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Record a failed authentication attempt
|
|
106
|
+
*/
|
|
107
|
+
recordFailedAuth(agentId: string): {
|
|
108
|
+
locked: boolean;
|
|
109
|
+
attemptsRemaining?: number;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Reset failed attempts after successful auth
|
|
113
|
+
*/
|
|
114
|
+
resetFailedAttempts(agentId: string): void;
|
|
115
|
+
/**
|
|
116
|
+
* Get rate limit status for an agent
|
|
117
|
+
*/
|
|
118
|
+
getStatus(agentId: string): RateLimitEntry | null;
|
|
119
|
+
}
|
|
120
|
+
interface AuditEntry {
|
|
121
|
+
timestamp: string;
|
|
122
|
+
eventId: string;
|
|
123
|
+
eventType: string;
|
|
124
|
+
agentId: string;
|
|
125
|
+
action: string;
|
|
126
|
+
resource?: string;
|
|
127
|
+
outcome: 'success' | 'failure' | 'denied';
|
|
128
|
+
details: Record<string, unknown>;
|
|
129
|
+
signature?: string;
|
|
130
|
+
}
|
|
131
|
+
export declare class SecureAuditLogger {
|
|
132
|
+
private config;
|
|
133
|
+
private previousHash;
|
|
134
|
+
constructor(config?: Partial<SecurityConfig>);
|
|
135
|
+
private initializeLog;
|
|
136
|
+
/**
|
|
137
|
+
* Log a security event with cryptographic integrity
|
|
138
|
+
*/
|
|
139
|
+
log(eventType: string, agentId: string, action: string, outcome: 'success' | 'failure' | 'denied', details?: Record<string, unknown>, resource?: string): AuditEntry;
|
|
140
|
+
/**
|
|
141
|
+
* Log a permission request
|
|
142
|
+
*/
|
|
143
|
+
logPermissionRequest(agentId: string, resourceType: string, scope: string, granted: boolean, reason?: string): void;
|
|
144
|
+
/**
|
|
145
|
+
* Log a security violation
|
|
146
|
+
*/
|
|
147
|
+
logViolation(agentId: string, violationType: string, details: Record<string, unknown>): void;
|
|
148
|
+
/**
|
|
149
|
+
* Verify audit log integrity
|
|
150
|
+
*/
|
|
151
|
+
verifyLogIntegrity(): {
|
|
152
|
+
valid: boolean;
|
|
153
|
+
invalidEntries: number[];
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
export declare class DataEncryptor {
|
|
157
|
+
private key;
|
|
158
|
+
private algorithm;
|
|
159
|
+
constructor(encryptionKey: string);
|
|
160
|
+
/**
|
|
161
|
+
* Encrypt sensitive data
|
|
162
|
+
*/
|
|
163
|
+
encrypt(data: string): string;
|
|
164
|
+
/**
|
|
165
|
+
* Decrypt sensitive data
|
|
166
|
+
*/
|
|
167
|
+
decrypt(encryptedData: string): string;
|
|
168
|
+
/**
|
|
169
|
+
* Encrypt an object
|
|
170
|
+
*/
|
|
171
|
+
encryptObject(obj: unknown): string;
|
|
172
|
+
/**
|
|
173
|
+
* Decrypt to object
|
|
174
|
+
*/
|
|
175
|
+
decryptObject<T = unknown>(encryptedData: string): T;
|
|
176
|
+
}
|
|
177
|
+
interface TrustPolicy {
|
|
178
|
+
agentId: string;
|
|
179
|
+
trustLevel: number;
|
|
180
|
+
allowedResources: string[];
|
|
181
|
+
maxScope: string[];
|
|
182
|
+
createdBy: string;
|
|
183
|
+
immutable: boolean;
|
|
184
|
+
}
|
|
185
|
+
export declare class PermissionHardener {
|
|
186
|
+
private trustPolicies;
|
|
187
|
+
private auditLogger;
|
|
188
|
+
constructor(auditLogger: SecureAuditLogger, defaultPolicies?: Array<{
|
|
189
|
+
agentId: string;
|
|
190
|
+
trustLevel: number;
|
|
191
|
+
allowedResources: string[];
|
|
192
|
+
maxScope?: string[];
|
|
193
|
+
immutable?: boolean;
|
|
194
|
+
}>);
|
|
195
|
+
private initializeDefaultPolicies;
|
|
196
|
+
/**
|
|
197
|
+
* Register or update a trust policy for an agent at runtime.
|
|
198
|
+
*/
|
|
199
|
+
registerPolicy(policy: {
|
|
200
|
+
agentId: string;
|
|
201
|
+
trustLevel: number;
|
|
202
|
+
allowedResources: string[];
|
|
203
|
+
maxScope?: string[];
|
|
204
|
+
immutable?: boolean;
|
|
205
|
+
}): void;
|
|
206
|
+
/**
|
|
207
|
+
* Check if an agent can access a resource
|
|
208
|
+
*/
|
|
209
|
+
canAccess(agentId: string, resourceType: string, requestedScope: string): {
|
|
210
|
+
allowed: boolean;
|
|
211
|
+
reason?: string;
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* Attempt to modify trust level (with escalation prevention)
|
|
215
|
+
*/
|
|
216
|
+
modifyTrustLevel(requestingAgent: string, targetAgent: string, newTrustLevel: number): {
|
|
217
|
+
success: boolean;
|
|
218
|
+
reason?: string;
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Get policy for an agent
|
|
222
|
+
*/
|
|
223
|
+
getPolicy(agentId: string): TrustPolicy | undefined;
|
|
224
|
+
}
|
|
225
|
+
export declare class SecurityError extends Error {
|
|
226
|
+
code: string;
|
|
227
|
+
constructor(message: string, code: string);
|
|
228
|
+
}
|
|
229
|
+
export declare class SecureSwarmGateway {
|
|
230
|
+
private tokenManager;
|
|
231
|
+
private rateLimiter;
|
|
232
|
+
private auditLogger;
|
|
233
|
+
private permissionHardener;
|
|
234
|
+
private encryptor;
|
|
235
|
+
constructor(config?: Partial<SecurityConfig>);
|
|
236
|
+
/**
|
|
237
|
+
* Secure request handler - validates all security requirements
|
|
238
|
+
*/
|
|
239
|
+
handleSecureRequest(agentId: string, action: string, params: Record<string, unknown>, token?: SecureToken): Promise<{
|
|
240
|
+
allowed: boolean;
|
|
241
|
+
reason?: string;
|
|
242
|
+
sanitizedParams?: Record<string, unknown>;
|
|
243
|
+
}>;
|
|
244
|
+
/**
|
|
245
|
+
* Request a new permission grant
|
|
246
|
+
*/
|
|
247
|
+
requestPermission(agentId: string, resourceType: string, scope: string, justification: string): Promise<{
|
|
248
|
+
granted: boolean;
|
|
249
|
+
token?: SecureToken;
|
|
250
|
+
reason?: string;
|
|
251
|
+
}>;
|
|
252
|
+
/**
|
|
253
|
+
* Encrypt sensitive data for blackboard storage
|
|
254
|
+
*/
|
|
255
|
+
encryptSensitiveData(data: unknown): string;
|
|
256
|
+
/**
|
|
257
|
+
* Decrypt sensitive data from blackboard
|
|
258
|
+
*/
|
|
259
|
+
decryptSensitiveData<T>(encryptedData: string): T;
|
|
260
|
+
/**
|
|
261
|
+
* Verify audit log integrity
|
|
262
|
+
*/
|
|
263
|
+
verifyAuditIntegrity(): {
|
|
264
|
+
valid: boolean;
|
|
265
|
+
invalidEntries: number[];
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
export { SecurityConfig, SecureToken, AuditEntry, TrustPolicy, DEFAULT_CONFIG, };
|
|
269
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../security.ts"],"names":[],"mappings":"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"}
|