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.
Files changed (97) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +201 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +401 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts +135 -0
  8. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts.map +1 -0
  9. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js +301 -0
  10. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js.map +1 -0
  11. package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts +78 -6
  12. package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts.map +1 -1
  13. package/dist/code-intelligence/embeddings/NomicEmbedder.js +162 -21
  14. package/dist/code-intelligence/embeddings/NomicEmbedder.js.map +1 -1
  15. package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts +59 -0
  16. package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts.map +1 -0
  17. package/dist/code-intelligence/embeddings/backends/MemoryBackend.js +173 -0
  18. package/dist/code-intelligence/embeddings/backends/MemoryBackend.js.map +1 -0
  19. package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts +50 -0
  20. package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts.map +1 -0
  21. package/dist/code-intelligence/embeddings/backends/RedisBackend.js +279 -0
  22. package/dist/code-intelligence/embeddings/backends/RedisBackend.js.map +1 -0
  23. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts +64 -0
  24. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts.map +1 -0
  25. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js +314 -0
  26. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js.map +1 -0
  27. package/dist/code-intelligence/embeddings/backends/index.d.ts +16 -0
  28. package/dist/code-intelligence/embeddings/backends/index.d.ts.map +1 -0
  29. package/dist/code-intelligence/embeddings/backends/index.js +28 -0
  30. package/dist/code-intelligence/embeddings/backends/index.js.map +1 -0
  31. package/dist/code-intelligence/embeddings/backends/types.d.ts +177 -0
  32. package/dist/code-intelligence/embeddings/backends/types.d.ts.map +1 -0
  33. package/dist/code-intelligence/embeddings/backends/types.js +30 -0
  34. package/dist/code-intelligence/embeddings/backends/types.js.map +1 -0
  35. package/dist/code-intelligence/embeddings/index.d.ts +7 -0
  36. package/dist/code-intelligence/embeddings/index.d.ts.map +1 -1
  37. package/dist/code-intelligence/embeddings/index.js +16 -1
  38. package/dist/code-intelligence/embeddings/index.js.map +1 -1
  39. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  40. package/dist/infrastructure/index.d.ts +15 -0
  41. package/dist/infrastructure/index.d.ts.map +1 -0
  42. package/dist/infrastructure/index.js +44 -0
  43. package/dist/infrastructure/index.js.map +1 -0
  44. package/dist/infrastructure/network/AgentRateLimiter.d.ts +59 -0
  45. package/dist/infrastructure/network/AgentRateLimiter.d.ts.map +1 -0
  46. package/dist/infrastructure/network/AgentRateLimiter.js +186 -0
  47. package/dist/infrastructure/network/AgentRateLimiter.js.map +1 -0
  48. package/dist/infrastructure/network/AuditLogger.d.ts +102 -0
  49. package/dist/infrastructure/network/AuditLogger.d.ts.map +1 -0
  50. package/dist/infrastructure/network/AuditLogger.js +284 -0
  51. package/dist/infrastructure/network/AuditLogger.js.map +1 -0
  52. package/dist/infrastructure/network/DomainWhitelist.d.ts +111 -0
  53. package/dist/infrastructure/network/DomainWhitelist.d.ts.map +1 -0
  54. package/dist/infrastructure/network/DomainWhitelist.js +216 -0
  55. package/dist/infrastructure/network/DomainWhitelist.js.map +1 -0
  56. package/dist/infrastructure/network/NetworkPolicyManager.d.ts +97 -0
  57. package/dist/infrastructure/network/NetworkPolicyManager.d.ts.map +1 -0
  58. package/dist/infrastructure/network/NetworkPolicyManager.js +309 -0
  59. package/dist/infrastructure/network/NetworkPolicyManager.js.map +1 -0
  60. package/dist/infrastructure/network/index.d.ts +19 -0
  61. package/dist/infrastructure/network/index.d.ts.map +1 -0
  62. package/dist/infrastructure/network/index.js +46 -0
  63. package/dist/infrastructure/network/index.js.map +1 -0
  64. package/dist/infrastructure/network/policies/default-policies.d.ts +78 -0
  65. package/dist/infrastructure/network/policies/default-policies.d.ts.map +1 -0
  66. package/dist/infrastructure/network/policies/default-policies.js +312 -0
  67. package/dist/infrastructure/network/policies/default-policies.js.map +1 -0
  68. package/dist/infrastructure/network/types.d.ts +214 -0
  69. package/dist/infrastructure/network/types.d.ts.map +1 -0
  70. package/dist/infrastructure/network/types.js +25 -0
  71. package/dist/infrastructure/network/types.js.map +1 -0
  72. package/dist/infrastructure/sandbox/ResourceMonitor.d.ts +124 -0
  73. package/dist/infrastructure/sandbox/ResourceMonitor.d.ts.map +1 -0
  74. package/dist/infrastructure/sandbox/ResourceMonitor.js +305 -0
  75. package/dist/infrastructure/sandbox/ResourceMonitor.js.map +1 -0
  76. package/dist/infrastructure/sandbox/SandboxManager.d.ts +122 -0
  77. package/dist/infrastructure/sandbox/SandboxManager.d.ts.map +1 -0
  78. package/dist/infrastructure/sandbox/SandboxManager.js +527 -0
  79. package/dist/infrastructure/sandbox/SandboxManager.js.map +1 -0
  80. package/dist/infrastructure/sandbox/index.d.ts +18 -0
  81. package/dist/infrastructure/sandbox/index.d.ts.map +1 -0
  82. package/dist/infrastructure/sandbox/index.js +38 -0
  83. package/dist/infrastructure/sandbox/index.js.map +1 -0
  84. package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts +53 -0
  85. package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts.map +1 -0
  86. package/dist/infrastructure/sandbox/profiles/agent-profiles.js +433 -0
  87. package/dist/infrastructure/sandbox/profiles/agent-profiles.js.map +1 -0
  88. package/dist/infrastructure/sandbox/types.d.ts +227 -0
  89. package/dist/infrastructure/sandbox/types.d.ts.map +1 -0
  90. package/dist/infrastructure/sandbox/types.js +63 -0
  91. package/dist/infrastructure/sandbox/types.js.map +1 -0
  92. package/dist/mcp/server-instructions.d.ts +1 -1
  93. package/dist/mcp/server-instructions.js +1 -1
  94. package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -1
  95. package/dist/persistence/SupabasePersistenceProvider.js +8 -4
  96. package/dist/persistence/SupabasePersistenceProvider.js.map +1 -1
  97. 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"}