agentic-qe 2.8.1 → 2.8.2
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/CHANGELOG.md +43 -0
- package/README.md +1 -1
- package/dist/agents/BaseAgent.d.ts +201 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +401 -0
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts +135 -0
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js +301 -0
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js.map +1 -0
- package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts +78 -6
- package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts.map +1 -1
- package/dist/code-intelligence/embeddings/NomicEmbedder.js +162 -21
- package/dist/code-intelligence/embeddings/NomicEmbedder.js.map +1 -1
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts +59 -0
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.js +173 -0
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts +50 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.js +279 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts +64 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js +314 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/index.d.ts +16 -0
- package/dist/code-intelligence/embeddings/backends/index.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/index.js +28 -0
- package/dist/code-intelligence/embeddings/backends/index.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/types.d.ts +177 -0
- package/dist/code-intelligence/embeddings/backends/types.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/types.js +30 -0
- package/dist/code-intelligence/embeddings/backends/types.js.map +1 -0
- package/dist/code-intelligence/embeddings/index.d.ts +7 -0
- package/dist/code-intelligence/embeddings/index.d.ts.map +1 -1
- package/dist/code-intelligence/embeddings/index.js +16 -1
- package/dist/code-intelligence/embeddings/index.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/infrastructure/index.d.ts +15 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +44 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/network/AgentRateLimiter.d.ts +59 -0
- package/dist/infrastructure/network/AgentRateLimiter.d.ts.map +1 -0
- package/dist/infrastructure/network/AgentRateLimiter.js +186 -0
- package/dist/infrastructure/network/AgentRateLimiter.js.map +1 -0
- package/dist/infrastructure/network/AuditLogger.d.ts +102 -0
- package/dist/infrastructure/network/AuditLogger.d.ts.map +1 -0
- package/dist/infrastructure/network/AuditLogger.js +284 -0
- package/dist/infrastructure/network/AuditLogger.js.map +1 -0
- package/dist/infrastructure/network/DomainWhitelist.d.ts +111 -0
- package/dist/infrastructure/network/DomainWhitelist.d.ts.map +1 -0
- package/dist/infrastructure/network/DomainWhitelist.js +216 -0
- package/dist/infrastructure/network/DomainWhitelist.js.map +1 -0
- package/dist/infrastructure/network/NetworkPolicyManager.d.ts +97 -0
- package/dist/infrastructure/network/NetworkPolicyManager.d.ts.map +1 -0
- package/dist/infrastructure/network/NetworkPolicyManager.js +309 -0
- package/dist/infrastructure/network/NetworkPolicyManager.js.map +1 -0
- package/dist/infrastructure/network/index.d.ts +19 -0
- package/dist/infrastructure/network/index.d.ts.map +1 -0
- package/dist/infrastructure/network/index.js +46 -0
- package/dist/infrastructure/network/index.js.map +1 -0
- package/dist/infrastructure/network/policies/default-policies.d.ts +78 -0
- package/dist/infrastructure/network/policies/default-policies.d.ts.map +1 -0
- package/dist/infrastructure/network/policies/default-policies.js +312 -0
- package/dist/infrastructure/network/policies/default-policies.js.map +1 -0
- package/dist/infrastructure/network/types.d.ts +214 -0
- package/dist/infrastructure/network/types.d.ts.map +1 -0
- package/dist/infrastructure/network/types.js +25 -0
- package/dist/infrastructure/network/types.js.map +1 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.d.ts +124 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.js +305 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.js.map +1 -0
- package/dist/infrastructure/sandbox/SandboxManager.d.ts +122 -0
- package/dist/infrastructure/sandbox/SandboxManager.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/SandboxManager.js +527 -0
- package/dist/infrastructure/sandbox/SandboxManager.js.map +1 -0
- package/dist/infrastructure/sandbox/index.d.ts +18 -0
- package/dist/infrastructure/sandbox/index.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/index.js +38 -0
- package/dist/infrastructure/sandbox/index.js.map +1 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts +53 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.js +433 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.js.map +1 -0
- package/dist/infrastructure/sandbox/types.d.ts +227 -0
- package/dist/infrastructure/sandbox/types.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/types.js +63 -0
- package/dist/infrastructure/sandbox/types.js.map +1 -0
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -1
- package/dist/persistence/SupabasePersistenceProvider.js +8 -4
- package/dist/persistence/SupabasePersistenceProvider.js.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Network Policy Manager for Agent Network Access Control
|
|
4
|
+
*
|
|
5
|
+
* Central manager for enforcing network policies, domain whitelisting,
|
|
6
|
+
* rate limiting, and audit logging for all agent types.
|
|
7
|
+
*
|
|
8
|
+
* @module infrastructure/network/NetworkPolicyManager
|
|
9
|
+
* @see Issue #146 - Security Hardening: SP-3 Network Policy Enforcement
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.NetworkPolicyManager = void 0;
|
|
13
|
+
exports.createNetworkPolicyManager = createNetworkPolicyManager;
|
|
14
|
+
const DomainWhitelist_js_1 = require("./DomainWhitelist.js");
|
|
15
|
+
const AgentRateLimiter_js_1 = require("./AgentRateLimiter.js");
|
|
16
|
+
const AuditLogger_js_1 = require("./AuditLogger.js");
|
|
17
|
+
const default_policies_js_1 = require("./policies/default-policies.js");
|
|
18
|
+
/**
|
|
19
|
+
* Default manager configuration
|
|
20
|
+
*/
|
|
21
|
+
const DEFAULT_MANAGER_CONFIG = {
|
|
22
|
+
defaultPolicy: default_policies_js_1.DEFAULT_NETWORK_POLICIES['default'],
|
|
23
|
+
enableAuditLogging: true,
|
|
24
|
+
maxAuditEntries: 10000,
|
|
25
|
+
persistAuditLog: false,
|
|
26
|
+
debug: false,
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Network Policy Manager
|
|
30
|
+
*
|
|
31
|
+
* Features:
|
|
32
|
+
* - Per-agent-type policies
|
|
33
|
+
* - Domain whitelisting
|
|
34
|
+
* - Rate limiting with token bucket
|
|
35
|
+
* - Comprehensive audit logging
|
|
36
|
+
* - Event emission for monitoring
|
|
37
|
+
*/
|
|
38
|
+
class NetworkPolicyManager {
|
|
39
|
+
constructor(config = {}) {
|
|
40
|
+
this.eventHandlers = [];
|
|
41
|
+
this.initialized = false;
|
|
42
|
+
this.config = { ...DEFAULT_MANAGER_CONFIG, ...config };
|
|
43
|
+
this.policies = new Map();
|
|
44
|
+
this.whitelists = new Map();
|
|
45
|
+
this.rateLimiters = new Map();
|
|
46
|
+
this.auditLogger = new AuditLogger_js_1.AuditLogger({
|
|
47
|
+
maxEntries: this.config.maxAuditEntries,
|
|
48
|
+
persistToFile: this.config.persistAuditLog,
|
|
49
|
+
filePath: this.config.auditLogPath,
|
|
50
|
+
debug: this.config.debug,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Initialize the policy manager with default policies
|
|
55
|
+
*/
|
|
56
|
+
async initialize() {
|
|
57
|
+
if (this.initialized)
|
|
58
|
+
return;
|
|
59
|
+
// Load default policies
|
|
60
|
+
for (const [agentType, policy] of Object.entries(default_policies_js_1.DEFAULT_NETWORK_POLICIES)) {
|
|
61
|
+
this.registerPolicy(policy);
|
|
62
|
+
}
|
|
63
|
+
// Load audit log if persisted
|
|
64
|
+
if (this.config.persistAuditLog) {
|
|
65
|
+
await this.auditLogger.load();
|
|
66
|
+
}
|
|
67
|
+
this.initialized = true;
|
|
68
|
+
this.log('NetworkPolicyManager initialized');
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Shutdown the policy manager
|
|
72
|
+
*/
|
|
73
|
+
async shutdown() {
|
|
74
|
+
// Close all rate limiters
|
|
75
|
+
for (const limiter of this.rateLimiters.values()) {
|
|
76
|
+
limiter.close();
|
|
77
|
+
}
|
|
78
|
+
// Save and close audit logger
|
|
79
|
+
await this.auditLogger.close();
|
|
80
|
+
this.initialized = false;
|
|
81
|
+
this.log('NetworkPolicyManager shutdown');
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Register a network policy
|
|
85
|
+
*/
|
|
86
|
+
registerPolicy(policy) {
|
|
87
|
+
this.policies.set(policy.agentType, policy);
|
|
88
|
+
// Create whitelist for this agent type
|
|
89
|
+
const whitelist = new DomainWhitelist_js_1.DomainWhitelist(policy.allowedDomains);
|
|
90
|
+
this.whitelists.set(policy.agentType, whitelist);
|
|
91
|
+
// Create rate limiter for this agent type
|
|
92
|
+
const rateLimiter = new AgentRateLimiter_js_1.AgentRateLimiter(policy.rateLimit);
|
|
93
|
+
this.rateLimiters.set(policy.agentType, rateLimiter);
|
|
94
|
+
this.log(`Registered policy for ${policy.agentType}`);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Check if a request is allowed
|
|
98
|
+
*/
|
|
99
|
+
async checkRequest(agentId, agentType, domain) {
|
|
100
|
+
const policy = this.getPolicy(agentType);
|
|
101
|
+
const whitelist = this.getWhitelist(agentType);
|
|
102
|
+
const rateLimiter = this.getRateLimiter(agentType);
|
|
103
|
+
// Check rate limit first
|
|
104
|
+
const rateLimitStatus = rateLimiter.check(agentId);
|
|
105
|
+
if (rateLimitStatus.limited) {
|
|
106
|
+
const result = {
|
|
107
|
+
allowed: false,
|
|
108
|
+
policy,
|
|
109
|
+
reason: 'rate_limit_exceeded',
|
|
110
|
+
details: `Rate limit exceeded. Retry after ${rateLimitStatus.retryAfter}ms`,
|
|
111
|
+
rateLimitStatus,
|
|
112
|
+
};
|
|
113
|
+
await this.logAndEmit(agentId, agentType, domain, result);
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
// Check domain whitelist
|
|
117
|
+
const domainAllowed = whitelist.isAllowed(domain);
|
|
118
|
+
if (!domainAllowed && policy.blockUnknownDomains) {
|
|
119
|
+
const result = {
|
|
120
|
+
allowed: false,
|
|
121
|
+
policy,
|
|
122
|
+
reason: 'domain_not_allowed',
|
|
123
|
+
details: `Domain ${domain} is not in the whitelist`,
|
|
124
|
+
rateLimitStatus,
|
|
125
|
+
};
|
|
126
|
+
await this.logAndEmit(agentId, agentType, domain, result);
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
// Request is allowed
|
|
130
|
+
const result = {
|
|
131
|
+
allowed: true,
|
|
132
|
+
policy,
|
|
133
|
+
rateLimitStatus,
|
|
134
|
+
};
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Record a request (consumes rate limit token)
|
|
139
|
+
*/
|
|
140
|
+
async recordRequest(agentId, agentType, domain, allowed, responseTimeMs) {
|
|
141
|
+
const policy = this.getPolicy(agentType);
|
|
142
|
+
const rateLimiter = this.getRateLimiter(agentType);
|
|
143
|
+
// Consume rate limit token
|
|
144
|
+
const rateLimitStatus = rateLimiter.consume(agentId);
|
|
145
|
+
// Log to audit
|
|
146
|
+
if (policy.auditLogging && this.config.enableAuditLogging) {
|
|
147
|
+
if (allowed) {
|
|
148
|
+
await this.auditLogger.logAllowed(agentId, agentType, domain, {
|
|
149
|
+
responseTimeMs,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
else if (rateLimitStatus.limited) {
|
|
153
|
+
await this.auditLogger.logRateLimited(agentId, agentType, domain);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
await this.auditLogger.logBlocked(agentId, agentType, domain, 'Domain not allowed');
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get policy for an agent type
|
|
162
|
+
*/
|
|
163
|
+
getPolicy(agentType) {
|
|
164
|
+
return this.policies.get(agentType) || this.config.defaultPolicy;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Update a policy
|
|
168
|
+
*/
|
|
169
|
+
updatePolicy(agentType, updates) {
|
|
170
|
+
const current = this.getPolicy(agentType);
|
|
171
|
+
const updated = {
|
|
172
|
+
...current,
|
|
173
|
+
...updates,
|
|
174
|
+
rateLimit: {
|
|
175
|
+
...current.rateLimit,
|
|
176
|
+
...updates.rateLimit,
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
this.registerPolicy(updated);
|
|
180
|
+
this.emitEvent({
|
|
181
|
+
type: 'policy_updated',
|
|
182
|
+
timestamp: new Date(),
|
|
183
|
+
agentId: '',
|
|
184
|
+
agentType,
|
|
185
|
+
details: { updates },
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get rate limit status for an agent
|
|
190
|
+
*/
|
|
191
|
+
getRateLimitStatus(agentId, agentType) {
|
|
192
|
+
const rateLimiter = this.getRateLimiter(agentType);
|
|
193
|
+
return rateLimiter.getStatus(agentId);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Reset rate limit for an agent
|
|
197
|
+
*/
|
|
198
|
+
resetRateLimit(agentId, agentType) {
|
|
199
|
+
const rateLimiter = this.getRateLimiter(agentType);
|
|
200
|
+
rateLimiter.reset(agentId);
|
|
201
|
+
this.log(`Reset rate limit for ${agentId} (${agentType})`);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Get audit logger
|
|
205
|
+
*/
|
|
206
|
+
getAuditLogger() {
|
|
207
|
+
return this.auditLogger;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Get audit statistics
|
|
211
|
+
*/
|
|
212
|
+
async getAuditStats(since) {
|
|
213
|
+
return this.auditLogger.getStats(since);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* List all registered policy agent types
|
|
217
|
+
*/
|
|
218
|
+
listPolicies() {
|
|
219
|
+
return Array.from(this.policies.keys());
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Add event handler
|
|
223
|
+
*/
|
|
224
|
+
on(handler) {
|
|
225
|
+
this.eventHandlers.push(handler);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Remove event handler
|
|
229
|
+
*/
|
|
230
|
+
off(handler) {
|
|
231
|
+
const index = this.eventHandlers.indexOf(handler);
|
|
232
|
+
if (index !== -1) {
|
|
233
|
+
this.eventHandlers.splice(index, 1);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// ============================================
|
|
237
|
+
// Private Methods
|
|
238
|
+
// ============================================
|
|
239
|
+
getWhitelist(agentType) {
|
|
240
|
+
let whitelist = this.whitelists.get(agentType);
|
|
241
|
+
if (!whitelist) {
|
|
242
|
+
const policy = this.getPolicy(agentType);
|
|
243
|
+
whitelist = new DomainWhitelist_js_1.DomainWhitelist(policy.allowedDomains);
|
|
244
|
+
this.whitelists.set(agentType, whitelist);
|
|
245
|
+
}
|
|
246
|
+
return whitelist;
|
|
247
|
+
}
|
|
248
|
+
getRateLimiter(agentType) {
|
|
249
|
+
let limiter = this.rateLimiters.get(agentType);
|
|
250
|
+
if (!limiter) {
|
|
251
|
+
const policy = this.getPolicy(agentType);
|
|
252
|
+
limiter = new AgentRateLimiter_js_1.AgentRateLimiter(policy.rateLimit);
|
|
253
|
+
this.rateLimiters.set(agentType, limiter);
|
|
254
|
+
}
|
|
255
|
+
return limiter;
|
|
256
|
+
}
|
|
257
|
+
async logAndEmit(agentId, agentType, domain, result) {
|
|
258
|
+
const policy = result.policy;
|
|
259
|
+
// Audit log
|
|
260
|
+
if (policy.auditLogging && this.config.enableAuditLogging) {
|
|
261
|
+
if (result.reason === 'rate_limit_exceeded') {
|
|
262
|
+
await this.auditLogger.logRateLimited(agentId, agentType, domain);
|
|
263
|
+
}
|
|
264
|
+
else if (result.reason === 'domain_not_allowed') {
|
|
265
|
+
await this.auditLogger.logBlocked(agentId, agentType, domain, result.details || 'Domain not allowed');
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
// Emit event
|
|
269
|
+
const eventType = result.allowed
|
|
270
|
+
? 'request_allowed'
|
|
271
|
+
: result.reason === 'rate_limit_exceeded'
|
|
272
|
+
? 'request_rate_limited'
|
|
273
|
+
: 'request_blocked';
|
|
274
|
+
this.emitEvent({
|
|
275
|
+
type: eventType,
|
|
276
|
+
timestamp: new Date(),
|
|
277
|
+
agentId,
|
|
278
|
+
agentType,
|
|
279
|
+
domain,
|
|
280
|
+
details: {
|
|
281
|
+
reason: result.reason,
|
|
282
|
+
rateLimitStatus: result.rateLimitStatus,
|
|
283
|
+
},
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
emitEvent(event) {
|
|
287
|
+
for (const handler of this.eventHandlers) {
|
|
288
|
+
try {
|
|
289
|
+
handler(event);
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
console.error('Error in network policy event handler:', error);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
log(message) {
|
|
297
|
+
if (this.config.debug) {
|
|
298
|
+
console.log(`[NetworkPolicyManager] ${message}`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
exports.NetworkPolicyManager = NetworkPolicyManager;
|
|
303
|
+
/**
|
|
304
|
+
* Create a new NetworkPolicyManager
|
|
305
|
+
*/
|
|
306
|
+
function createNetworkPolicyManager(config) {
|
|
307
|
+
return new NetworkPolicyManager(config);
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=NetworkPolicyManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkPolicyManager.js","sourceRoot":"","sources":["../../../src/infrastructure/network/NetworkPolicyManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network Policy Enforcement Infrastructure
|
|
3
|
+
*
|
|
4
|
+
* Provides secure network access control for QE agents:
|
|
5
|
+
* - Domain whitelisting per agent type
|
|
6
|
+
* - Rate limiting with token bucket algorithm
|
|
7
|
+
* - Comprehensive audit logging
|
|
8
|
+
* - Event-driven monitoring
|
|
9
|
+
*
|
|
10
|
+
* @module infrastructure/network
|
|
11
|
+
* @see Issue #146 - Security Hardening: SP-3 Network Policy Enforcement
|
|
12
|
+
*/
|
|
13
|
+
export { type NetworkPolicy, type RateLimitConfig, type PolicyCheckResult, type PolicyBlockReason, type RateLimitStatus, type AuditEntry, type AuditAction, type AuditQueryFilter, type AuditStats, type NetworkPolicyManagerConfig, type NetworkPolicyEvent, type NetworkPolicyEventType, type NetworkPolicyEventHandler, type IRateLimiter, NetworkPolicyError, } from './types.js';
|
|
14
|
+
export { NetworkPolicyManager, createNetworkPolicyManager, } from './NetworkPolicyManager.js';
|
|
15
|
+
export { DomainWhitelist, COMMON_DOMAIN_PRESETS, createWhitelistFromPresets, } from './DomainWhitelist.js';
|
|
16
|
+
export { AgentRateLimiter, createDefaultRateLimiter, } from './AgentRateLimiter.js';
|
|
17
|
+
export { AuditLogger, type AuditLoggerConfig, } from './AuditLogger.js';
|
|
18
|
+
export { DEFAULT_NETWORK_POLICIES, getNetworkPolicy, listPolicyAgentTypes, mergePolicy, createRestrictivePolicy, enableRestrictiveModeGlobally, LLM_PROVIDER_DOMAINS, DEVELOPMENT_DOMAINS, RESTRICTIVE_POLICY_TEMPLATE, } from './policies/default-policies.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/network/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Network Policy Enforcement Infrastructure
|
|
4
|
+
*
|
|
5
|
+
* Provides secure network access control for QE agents:
|
|
6
|
+
* - Domain whitelisting per agent type
|
|
7
|
+
* - Rate limiting with token bucket algorithm
|
|
8
|
+
* - Comprehensive audit logging
|
|
9
|
+
* - Event-driven monitoring
|
|
10
|
+
*
|
|
11
|
+
* @module infrastructure/network
|
|
12
|
+
* @see Issue #146 - Security Hardening: SP-3 Network Policy Enforcement
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.RESTRICTIVE_POLICY_TEMPLATE = exports.DEVELOPMENT_DOMAINS = exports.LLM_PROVIDER_DOMAINS = exports.enableRestrictiveModeGlobally = exports.createRestrictivePolicy = exports.mergePolicy = exports.listPolicyAgentTypes = exports.getNetworkPolicy = exports.DEFAULT_NETWORK_POLICIES = exports.AuditLogger = exports.createDefaultRateLimiter = exports.AgentRateLimiter = exports.createWhitelistFromPresets = exports.COMMON_DOMAIN_PRESETS = exports.DomainWhitelist = exports.createNetworkPolicyManager = exports.NetworkPolicyManager = exports.NetworkPolicyError = void 0;
|
|
16
|
+
// Types
|
|
17
|
+
var types_js_1 = require("./types.js");
|
|
18
|
+
Object.defineProperty(exports, "NetworkPolicyError", { enumerable: true, get: function () { return types_js_1.NetworkPolicyError; } });
|
|
19
|
+
// NetworkPolicyManager
|
|
20
|
+
var NetworkPolicyManager_js_1 = require("./NetworkPolicyManager.js");
|
|
21
|
+
Object.defineProperty(exports, "NetworkPolicyManager", { enumerable: true, get: function () { return NetworkPolicyManager_js_1.NetworkPolicyManager; } });
|
|
22
|
+
Object.defineProperty(exports, "createNetworkPolicyManager", { enumerable: true, get: function () { return NetworkPolicyManager_js_1.createNetworkPolicyManager; } });
|
|
23
|
+
// DomainWhitelist
|
|
24
|
+
var DomainWhitelist_js_1 = require("./DomainWhitelist.js");
|
|
25
|
+
Object.defineProperty(exports, "DomainWhitelist", { enumerable: true, get: function () { return DomainWhitelist_js_1.DomainWhitelist; } });
|
|
26
|
+
Object.defineProperty(exports, "COMMON_DOMAIN_PRESETS", { enumerable: true, get: function () { return DomainWhitelist_js_1.COMMON_DOMAIN_PRESETS; } });
|
|
27
|
+
Object.defineProperty(exports, "createWhitelistFromPresets", { enumerable: true, get: function () { return DomainWhitelist_js_1.createWhitelistFromPresets; } });
|
|
28
|
+
// AgentRateLimiter
|
|
29
|
+
var AgentRateLimiter_js_1 = require("./AgentRateLimiter.js");
|
|
30
|
+
Object.defineProperty(exports, "AgentRateLimiter", { enumerable: true, get: function () { return AgentRateLimiter_js_1.AgentRateLimiter; } });
|
|
31
|
+
Object.defineProperty(exports, "createDefaultRateLimiter", { enumerable: true, get: function () { return AgentRateLimiter_js_1.createDefaultRateLimiter; } });
|
|
32
|
+
// AuditLogger
|
|
33
|
+
var AuditLogger_js_1 = require("./AuditLogger.js");
|
|
34
|
+
Object.defineProperty(exports, "AuditLogger", { enumerable: true, get: function () { return AuditLogger_js_1.AuditLogger; } });
|
|
35
|
+
// Default Policies
|
|
36
|
+
var default_policies_js_1 = require("./policies/default-policies.js");
|
|
37
|
+
Object.defineProperty(exports, "DEFAULT_NETWORK_POLICIES", { enumerable: true, get: function () { return default_policies_js_1.DEFAULT_NETWORK_POLICIES; } });
|
|
38
|
+
Object.defineProperty(exports, "getNetworkPolicy", { enumerable: true, get: function () { return default_policies_js_1.getNetworkPolicy; } });
|
|
39
|
+
Object.defineProperty(exports, "listPolicyAgentTypes", { enumerable: true, get: function () { return default_policies_js_1.listPolicyAgentTypes; } });
|
|
40
|
+
Object.defineProperty(exports, "mergePolicy", { enumerable: true, get: function () { return default_policies_js_1.mergePolicy; } });
|
|
41
|
+
Object.defineProperty(exports, "createRestrictivePolicy", { enumerable: true, get: function () { return default_policies_js_1.createRestrictivePolicy; } });
|
|
42
|
+
Object.defineProperty(exports, "enableRestrictiveModeGlobally", { enumerable: true, get: function () { return default_policies_js_1.enableRestrictiveModeGlobally; } });
|
|
43
|
+
Object.defineProperty(exports, "LLM_PROVIDER_DOMAINS", { enumerable: true, get: function () { return default_policies_js_1.LLM_PROVIDER_DOMAINS; } });
|
|
44
|
+
Object.defineProperty(exports, "DEVELOPMENT_DOMAINS", { enumerable: true, get: function () { return default_policies_js_1.DEVELOPMENT_DOMAINS; } });
|
|
45
|
+
Object.defineProperty(exports, "RESTRICTIVE_POLICY_TEMPLATE", { enumerable: true, get: function () { return default_policies_js_1.RESTRICTIVE_POLICY_TEMPLATE; } });
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/network/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,QAAQ;AACR,uCAgBoB;AADlB,8GAAA,kBAAkB,OAAA;AAGpB,uBAAuB;AACvB,qEAGmC;AAFjC,+HAAA,oBAAoB,OAAA;AACpB,qIAAA,0BAA0B,OAAA;AAG5B,kBAAkB;AAClB,2DAI8B;AAH5B,qHAAA,eAAe,OAAA;AACf,2HAAA,qBAAqB,OAAA;AACrB,gIAAA,0BAA0B,OAAA;AAG5B,mBAAmB;AACnB,6DAG+B;AAF7B,uHAAA,gBAAgB,OAAA;AAChB,+HAAA,wBAAwB,OAAA;AAG1B,cAAc;AACd,mDAG0B;AAFxB,6GAAA,WAAW,OAAA;AAIb,mBAAmB;AACnB,sEAUwC;AATtC,+HAAA,wBAAwB,OAAA;AACxB,uHAAA,gBAAgB,OAAA;AAChB,2HAAA,oBAAoB,OAAA;AACpB,kHAAA,WAAW,OAAA;AACX,8HAAA,uBAAuB,OAAA;AACvB,oIAAA,6BAA6B,OAAA;AAC7B,2HAAA,oBAAoB,OAAA;AACpB,0HAAA,mBAAmB,OAAA;AACnB,kIAAA,2BAA2B,OAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default Network Policies for QE Agents
|
|
3
|
+
*
|
|
4
|
+
* IMPORTANT: Network policy enforcement is OPT-IN, not opt-out.
|
|
5
|
+
* By default, agents have unrestricted network access for flexibility.
|
|
6
|
+
*
|
|
7
|
+
* Enable restrictive policies only when:
|
|
8
|
+
* - Deploying in security-sensitive environments
|
|
9
|
+
* - Running untrusted agent code
|
|
10
|
+
* - Compliance requirements mandate network isolation
|
|
11
|
+
*
|
|
12
|
+
* @module infrastructure/network/policies/default-policies
|
|
13
|
+
* @see Issue #146 - Security Hardening: SP-3 Network Policy Enforcement
|
|
14
|
+
*/
|
|
15
|
+
import type { NetworkPolicy } from '../types.js';
|
|
16
|
+
/**
|
|
17
|
+
* All known LLM provider domains that the multi-model router may access
|
|
18
|
+
* Add new providers here as they're supported
|
|
19
|
+
*/
|
|
20
|
+
export declare const LLM_PROVIDER_DOMAINS: readonly ["api.anthropic.com", "api.openai.com", "openrouter.ai", "api.groq.com", "generativelanguage.googleapis.com", "api.together.xyz", "models.inference.ai.azure.com", "openai.azure.com", "api.fireworks.ai", "api.mistral.ai", "api.cohere.ai", "api.perplexity.ai", "api.deepseek.com", "localhost", "127.0.0.1"];
|
|
21
|
+
/**
|
|
22
|
+
* Development/testing domains that agents commonly need
|
|
23
|
+
*/
|
|
24
|
+
export declare const DEVELOPMENT_DOMAINS: readonly ["registry.npmjs.org", "pypi.org", "api.github.com", "github.com", "gitlab.com", "api.gitlab.com", "bitbucket.org", "nvd.nist.gov", "cve.mitre.org", "osv.dev", "security.snyk.io", "cvedetails.com"];
|
|
25
|
+
/**
|
|
26
|
+
* Restrictive policy template for security-sensitive deployments
|
|
27
|
+
* Use this when you need to lock down agent network access
|
|
28
|
+
*/
|
|
29
|
+
export declare const RESTRICTIVE_POLICY_TEMPLATE: NetworkPolicy;
|
|
30
|
+
/**
|
|
31
|
+
* Default network policies for all QE agent types
|
|
32
|
+
*
|
|
33
|
+
* DESIGN PRINCIPLE: Permissive by default (blockUnknownDomains: false)
|
|
34
|
+
* - QE agents need to test arbitrary websites/APIs
|
|
35
|
+
* - Multi-model router accesses multiple LLM providers
|
|
36
|
+
* - Rate limiting still applies for protection
|
|
37
|
+
*
|
|
38
|
+
* To enable restrictive mode:
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const policy = getNetworkPolicy('qe-test-generator');
|
|
41
|
+
* policy.blockUnknownDomains = true;
|
|
42
|
+
* policy.allowedDomains = [...LLM_PROVIDER_DOMAINS, 'my-api.example.com'];
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare const DEFAULT_NETWORK_POLICIES: Record<string, NetworkPolicy>;
|
|
46
|
+
/**
|
|
47
|
+
* Get policy for an agent type
|
|
48
|
+
* Falls back to default if not found
|
|
49
|
+
*/
|
|
50
|
+
export declare function getNetworkPolicy(agentType: string): NetworkPolicy;
|
|
51
|
+
/**
|
|
52
|
+
* List all agent types with policies
|
|
53
|
+
*/
|
|
54
|
+
export declare function listPolicyAgentTypes(): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Merge custom policy with default
|
|
57
|
+
*/
|
|
58
|
+
export declare function mergePolicy(agentType: string, customPolicy: Partial<NetworkPolicy>): NetworkPolicy;
|
|
59
|
+
/**
|
|
60
|
+
* Create a restrictive policy for security-sensitive deployments
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* // Lock down an agent to only access LLM providers and specific APIs
|
|
65
|
+
* const policy = createRestrictivePolicy('qe-test-generator', [
|
|
66
|
+
* 'api.example.com',
|
|
67
|
+
* 'staging.example.com'
|
|
68
|
+
* ]);
|
|
69
|
+
* manager.registerPolicy(policy);
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare function createRestrictivePolicy(agentType: string, additionalDomains?: string[]): NetworkPolicy;
|
|
73
|
+
/**
|
|
74
|
+
* Enable restrictive mode for all default policies
|
|
75
|
+
* Call this when deploying in a security-sensitive environment
|
|
76
|
+
*/
|
|
77
|
+
export declare function enableRestrictiveModeGlobally(): void;
|
|
78
|
+
//# sourceMappingURL=default-policies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-policies.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/network/policies/default-policies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,2TA2CvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,gNAkBtB,CAAC;AAmBX;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,aAWzC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAoJlE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAEjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,GACnC,aAAa,CAUf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,iBAAiB,GAAE,MAAM,EAAO,GAC/B,aAAa,CAOf;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAKpD"}
|