@trentapps/manager-protocol 1.1.3 → 1.2.1

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 (142) hide show
  1. package/README.md +164 -17
  2. package/dist/analyzers/CSSAnalyzer.d.ts +180 -8
  3. package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -1
  4. package/dist/analyzers/CSSAnalyzer.js +561 -105
  5. package/dist/analyzers/CSSAnalyzer.js.map +1 -1
  6. package/dist/config/dashboard.d.ts +55 -0
  7. package/dist/config/dashboard.d.ts.map +1 -0
  8. package/dist/config/dashboard.js +103 -0
  9. package/dist/config/dashboard.js.map +1 -0
  10. package/dist/config/index.d.ts +7 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/config/index.js +7 -0
  13. package/dist/config/index.js.map +1 -0
  14. package/dist/dashboard/httpDashboard.d.ts +100 -0
  15. package/dist/dashboard/httpDashboard.d.ts.map +1 -0
  16. package/dist/dashboard/httpDashboard.js +1276 -0
  17. package/dist/dashboard/httpDashboard.js.map +1 -0
  18. package/dist/dashboard/index.d.ts +6 -0
  19. package/dist/dashboard/index.d.ts.map +1 -0
  20. package/dist/dashboard/index.js +7 -0
  21. package/dist/dashboard/index.js.map +1 -0
  22. package/dist/engine/AuditLogger.d.ts +370 -2
  23. package/dist/engine/AuditLogger.d.ts.map +1 -1
  24. package/dist/engine/AuditLogger.js +1064 -24
  25. package/dist/engine/AuditLogger.js.map +1 -1
  26. package/dist/engine/GitHubClient.d.ts +183 -0
  27. package/dist/engine/GitHubClient.d.ts.map +1 -0
  28. package/dist/engine/GitHubClient.js +411 -0
  29. package/dist/engine/GitHubClient.js.map +1 -0
  30. package/dist/engine/RateLimiter.d.ts +5 -3
  31. package/dist/engine/RateLimiter.d.ts.map +1 -1
  32. package/dist/engine/RateLimiter.js +49 -72
  33. package/dist/engine/RateLimiter.js.map +1 -1
  34. package/dist/engine/RuleDependencyAnalyzer.d.ts +73 -0
  35. package/dist/engine/RuleDependencyAnalyzer.d.ts.map +1 -0
  36. package/dist/engine/RuleDependencyAnalyzer.js +475 -0
  37. package/dist/engine/RuleDependencyAnalyzer.js.map +1 -0
  38. package/dist/engine/RulesEngine.d.ts +102 -3
  39. package/dist/engine/RulesEngine.d.ts.map +1 -1
  40. package/dist/engine/RulesEngine.js +326 -21
  41. package/dist/engine/RulesEngine.js.map +1 -1
  42. package/dist/engine/TaskManager.d.ts +10 -14
  43. package/dist/engine/TaskManager.d.ts.map +1 -1
  44. package/dist/engine/TaskManager.js +169 -197
  45. package/dist/engine/TaskManager.js.map +1 -1
  46. package/dist/engine/index.d.ts +3 -0
  47. package/dist/engine/index.d.ts.map +1 -1
  48. package/dist/engine/index.js +5 -0
  49. package/dist/engine/index.js.map +1 -1
  50. package/dist/rules/azure.d.ts.map +1 -1
  51. package/dist/rules/azure.js +12 -14
  52. package/dist/rules/azure.js.map +1 -1
  53. package/dist/rules/compliance.d.ts.map +1 -1
  54. package/dist/rules/compliance.js +23 -41
  55. package/dist/rules/compliance.js.map +1 -1
  56. package/dist/rules/condition-optimizer.d.ts +151 -0
  57. package/dist/rules/condition-optimizer.d.ts.map +1 -0
  58. package/dist/rules/condition-optimizer.js +479 -0
  59. package/dist/rules/condition-optimizer.js.map +1 -0
  60. package/dist/rules/css.d.ts.map +1 -1
  61. package/dist/rules/css.js +538 -0
  62. package/dist/rules/css.js.map +1 -1
  63. package/dist/rules/field-standards.d.ts +1172 -0
  64. package/dist/rules/field-standards.d.ts.map +1 -0
  65. package/dist/rules/field-standards.js +908 -0
  66. package/dist/rules/field-standards.js.map +1 -0
  67. package/dist/rules/flask.d.ts.map +1 -1
  68. package/dist/rules/flask.js +18 -31
  69. package/dist/rules/flask.js.map +1 -1
  70. package/dist/rules/index.d.ts +220 -0
  71. package/dist/rules/index.d.ts.map +1 -1
  72. package/dist/rules/index.js +155 -0
  73. package/dist/rules/index.js.map +1 -1
  74. package/dist/rules/ml-ai.d.ts.map +1 -1
  75. package/dist/rules/ml-ai.js +11 -13
  76. package/dist/rules/ml-ai.js.map +1 -1
  77. package/dist/rules/patterns.d.ts +568 -0
  78. package/dist/rules/patterns.d.ts.map +1 -0
  79. package/dist/rules/patterns.js +1359 -0
  80. package/dist/rules/patterns.js.map +1 -0
  81. package/dist/rules/security.d.ts.map +1 -1
  82. package/dist/rules/security.js +580 -19
  83. package/dist/rules/security.js.map +1 -1
  84. package/dist/rules/shared-patterns.d.ts +268 -0
  85. package/dist/rules/shared-patterns.d.ts.map +1 -0
  86. package/dist/rules/shared-patterns.js +556 -0
  87. package/dist/rules/shared-patterns.js.map +1 -0
  88. package/dist/rules/storage.d.ts +8 -2
  89. package/dist/rules/storage.d.ts.map +1 -1
  90. package/dist/rules/storage.js +541 -3
  91. package/dist/rules/storage.js.map +1 -1
  92. package/dist/rules/stripe.d.ts.map +1 -1
  93. package/dist/rules/stripe.js +19 -26
  94. package/dist/rules/stripe.js.map +1 -1
  95. package/dist/rules/websocket.d.ts.map +1 -1
  96. package/dist/rules/websocket.js +32 -40
  97. package/dist/rules/websocket.js.map +1 -1
  98. package/dist/supervisor/AgentSupervisor.d.ts +52 -0
  99. package/dist/supervisor/AgentSupervisor.d.ts.map +1 -1
  100. package/dist/supervisor/AgentSupervisor.js +120 -1
  101. package/dist/supervisor/AgentSupervisor.js.map +1 -1
  102. package/dist/supervisor/ManagedServerRegistry.d.ts +139 -2
  103. package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -1
  104. package/dist/supervisor/ManagedServerRegistry.js +590 -6
  105. package/dist/supervisor/ManagedServerRegistry.js.map +1 -1
  106. package/dist/supervisor/ProjectTracker.d.ts +2 -1
  107. package/dist/supervisor/ProjectTracker.d.ts.map +1 -1
  108. package/dist/supervisor/ProjectTracker.js +5 -9
  109. package/dist/supervisor/ProjectTracker.js.map +1 -1
  110. package/dist/testing/index.d.ts +11 -0
  111. package/dist/testing/index.d.ts.map +1 -0
  112. package/dist/testing/index.js +12 -0
  113. package/dist/testing/index.js.map +1 -0
  114. package/dist/testing/rule-tester.d.ts +217 -0
  115. package/dist/testing/rule-tester.d.ts.map +1 -0
  116. package/dist/testing/rule-tester.examples.d.ts +57 -0
  117. package/dist/testing/rule-tester.examples.d.ts.map +1 -0
  118. package/dist/testing/rule-tester.examples.js +375 -0
  119. package/dist/testing/rule-tester.examples.js.map +1 -0
  120. package/dist/testing/rule-tester.js +381 -0
  121. package/dist/testing/rule-tester.js.map +1 -0
  122. package/dist/testing/rule-validator.d.ts +141 -0
  123. package/dist/testing/rule-validator.d.ts.map +1 -0
  124. package/dist/testing/rule-validator.js +640 -0
  125. package/dist/testing/rule-validator.js.map +1 -0
  126. package/dist/types/index.d.ts +265 -4
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/dist/types/index.js +57 -2
  129. package/dist/types/index.js.map +1 -1
  130. package/dist/utils/index.d.ts +2 -0
  131. package/dist/utils/index.d.ts.map +1 -1
  132. package/dist/utils/index.js +2 -0
  133. package/dist/utils/index.js.map +1 -1
  134. package/dist/utils/rate-limiting.d.ts +268 -0
  135. package/dist/utils/rate-limiting.d.ts.map +1 -0
  136. package/dist/utils/rate-limiting.js +403 -0
  137. package/dist/utils/rate-limiting.js.map +1 -0
  138. package/dist/utils/shared.d.ts +306 -0
  139. package/dist/utils/shared.d.ts.map +1 -0
  140. package/dist/utils/shared.js +464 -0
  141. package/dist/utils/shared.js.map +1 -0
  142. package/package.json +3 -2
@@ -0,0 +1,568 @@
1
+ /**
2
+ * Enterprise Agent Supervisor - Rule Pattern Builders
3
+ *
4
+ * Reusable pattern builders for creating common governance rules.
5
+ * These builders provide sensible defaults while allowing full customization.
6
+ *
7
+ * Task #31: Create Shared Library for Common Rule Patterns
8
+ */
9
+ import type { BusinessRule, RuleCondition, RuleAction, BusinessRuleType, ActionCategory } from '../types/index.js';
10
+ /**
11
+ * Base options shared by all rule pattern builders
12
+ */
13
+ export interface BaseRuleOptions {
14
+ /** Unique rule ID (required) */
15
+ id: string;
16
+ /** Human-readable rule name (required) */
17
+ name: string;
18
+ /** Rule description */
19
+ description?: string;
20
+ /** Whether rule is enabled (default: true) */
21
+ enabled?: boolean;
22
+ /** Rule priority 0-1000 (higher = evaluated first) */
23
+ priority?: number;
24
+ /** Risk weight 0-100 for risk score calculation */
25
+ riskWeight?: number;
26
+ /** Tags for categorization and filtering */
27
+ tags?: string[];
28
+ /** Additional conditions to add */
29
+ additionalConditions?: RuleCondition[];
30
+ /** Override default actions */
31
+ overrideActions?: RuleAction[];
32
+ /** Additional actions to append */
33
+ additionalActions?: RuleAction[];
34
+ /** Condition logic: 'all' (AND) or 'any' (OR) */
35
+ conditionLogic?: 'all' | 'any';
36
+ /** Additional metadata */
37
+ metadata?: Record<string, unknown>;
38
+ }
39
+ /**
40
+ * Options for authentication rules
41
+ */
42
+ export interface AuthenticationRuleOptions extends BaseRuleOptions {
43
+ /** Action categories requiring authentication (default: ['external_api']) */
44
+ categories?: ActionCategory[];
45
+ /** Field to check for auth token (default: 'authToken') */
46
+ authTokenField?: string;
47
+ /** Require specific auth types (e.g., 'bearer', 'api_key', 'oauth') */
48
+ requiredAuthTypes?: string[];
49
+ /** Allow unauthenticated in specific environments */
50
+ allowUnauthenticatedIn?: ('development' | 'staging' | 'production')[];
51
+ /** Action on failure: 'deny' | 'require_approval' | 'warn' */
52
+ failureAction?: 'deny' | 'require_approval' | 'warn';
53
+ /** Custom failure message */
54
+ failureMessage?: string;
55
+ }
56
+ /**
57
+ * Options for data access rules
58
+ */
59
+ export interface DataAccessRuleOptions extends BaseRuleOptions {
60
+ /** Data classification levels that trigger the rule */
61
+ dataClassifications?: ('public' | 'internal' | 'confidential' | 'restricted')[];
62
+ /** Data types that trigger the rule (e.g., 'pii', 'phi', 'cardholder') */
63
+ dataTypes?: string[];
64
+ /** Roles allowed to access (if empty, all roles blocked) */
65
+ allowedRoles?: string[];
66
+ /** Require justification for access */
67
+ requireJustification?: boolean;
68
+ /** Maximum record count before approval required */
69
+ bulkThreshold?: number;
70
+ /** Require encryption for access */
71
+ requireEncryption?: boolean;
72
+ /** Action on unauthorized access: 'deny' | 'require_approval' | 'warn' */
73
+ unauthorizedAction?: 'deny' | 'require_approval' | 'warn';
74
+ /** Custom message for unauthorized access */
75
+ unauthorizedMessage?: string;
76
+ }
77
+ /**
78
+ * Options for rate limit rules
79
+ */
80
+ export interface RateLimitRuleOptions extends BaseRuleOptions {
81
+ /** Action categories to rate limit */
82
+ categories?: ActionCategory[];
83
+ /** Action names to rate limit (partial match) */
84
+ actionNames?: string[];
85
+ /** Maximum requests in window */
86
+ maxRequests: number;
87
+ /** Window duration in milliseconds */
88
+ windowMs: number;
89
+ /** Burst limit (temporary spike allowance) */
90
+ burstLimit?: number;
91
+ /** Scope: 'global' | 'agent' | 'session' | 'user' */
92
+ scope?: 'global' | 'agent' | 'session' | 'user';
93
+ /** Custom rate limit exceeded message */
94
+ rateLimitMessage?: string;
95
+ }
96
+ /**
97
+ * Options for compliance rules
98
+ */
99
+ export interface ComplianceRuleOptions extends BaseRuleOptions {
100
+ /** Require data retention check */
101
+ checkRetention?: boolean;
102
+ /** Require consent verification */
103
+ checkConsent?: boolean;
104
+ /** Require geographic restrictions */
105
+ allowedRegions?: string[];
106
+ /** Require audit logging */
107
+ requireAuditLog?: boolean;
108
+ /** Require encryption */
109
+ requireEncryption?: boolean;
110
+ /** Data types covered */
111
+ dataTypes?: string[];
112
+ /** Specific compliance requirements */
113
+ requirements?: {
114
+ /** Require identity verification */
115
+ identityVerification?: boolean;
116
+ /** Require business justification */
117
+ businessJustification?: boolean;
118
+ /** Require dual approval */
119
+ dualApproval?: boolean;
120
+ /** Minimum data fields allowed */
121
+ minimumNecessary?: number;
122
+ };
123
+ }
124
+ /**
125
+ * Options for environment-specific rules
126
+ */
127
+ export interface EnvironmentRuleOptions extends BaseRuleOptions {
128
+ /** Target environments */
129
+ environments: ('development' | 'staging' | 'production')[];
130
+ /** Action categories affected */
131
+ categories?: ActionCategory[];
132
+ /** Action names affected (partial match) */
133
+ actionNames?: string[];
134
+ /** Require approval in target environments */
135
+ requireApproval?: boolean;
136
+ /** Block entirely in target environments */
137
+ blockInEnvironments?: boolean;
138
+ /** Require feature flag */
139
+ requireFeatureFlag?: boolean;
140
+ /** Require rollback plan */
141
+ requireRollbackPlan?: boolean;
142
+ /** Custom message */
143
+ message?: string;
144
+ }
145
+ /**
146
+ * Options for security rules
147
+ */
148
+ export interface SecurityRuleOptions extends BaseRuleOptions {
149
+ /** Pattern type to detect */
150
+ patternType?: 'sql_injection' | 'command_injection' | 'xss' | 'path_traversal' | 'custom';
151
+ /** Custom regex pattern for detection */
152
+ customPattern?: string;
153
+ /** Field to check for pattern */
154
+ patternField?: string;
155
+ /** Require sandboxing */
156
+ requireSandbox?: boolean;
157
+ /** Require code validation */
158
+ requireCodeValidation?: boolean;
159
+ /** Block system file access */
160
+ blockSystemFiles?: boolean;
161
+ /** System file paths pattern */
162
+ systemFilesPattern?: string;
163
+ /** Action on detection: 'deny' | 'require_approval' | 'warn' */
164
+ detectionAction?: 'deny' | 'require_approval' | 'warn';
165
+ /** Send security notification */
166
+ sendNotification?: boolean;
167
+ }
168
+ /**
169
+ * Options for operational rules
170
+ */
171
+ export interface OperationalRuleOptions extends BaseRuleOptions {
172
+ /** Cost threshold for approval */
173
+ costThreshold?: number;
174
+ /** Memory threshold (MB) for warning */
175
+ memoryThreshold?: number;
176
+ /** Token count threshold for LLM operations */
177
+ tokenThreshold?: number;
178
+ /** Daily budget limit */
179
+ dailyBudget?: number;
180
+ /** Retry limit */
181
+ maxRetries?: number;
182
+ /** Session action limit */
183
+ sessionActionLimit?: number;
184
+ /** Require backup verification for destructive ops */
185
+ requireBackupVerification?: boolean;
186
+ /** Enforce deployment windows */
187
+ enforceDeploymentWindow?: boolean;
188
+ }
189
+ /**
190
+ * Generate a unique rule ID with prefix
191
+ */
192
+ export declare function generateRuleId(prefix: string, suffix?: string): string;
193
+ /**
194
+ * Create an authentication rule
195
+ *
196
+ * @example
197
+ * ```typescript
198
+ * const apiAuthRule = createAuthenticationRule({
199
+ * id: 'auth-api-001',
200
+ * name: 'Require API Authentication',
201
+ * categories: ['external_api', 'data_access'],
202
+ * requiredAuthTypes: ['bearer', 'api_key'],
203
+ * failureAction: 'deny'
204
+ * });
205
+ * ```
206
+ */
207
+ export declare function createAuthenticationRule(options: AuthenticationRuleOptions): BusinessRule;
208
+ /**
209
+ * Create a data access rule
210
+ *
211
+ * @example
212
+ * ```typescript
213
+ * const piiAccessRule = createDataAccessRule({
214
+ * id: 'data-pii-001',
215
+ * name: 'Restrict PII Access',
216
+ * dataTypes: ['pii', 'ssn', 'email'],
217
+ * allowedRoles: ['admin', 'data_officer'],
218
+ * requireJustification: true,
219
+ * bulkThreshold: 100
220
+ * });
221
+ * ```
222
+ */
223
+ export declare function createDataAccessRule(options: DataAccessRuleOptions): BusinessRule;
224
+ /**
225
+ * Create a bulk data access rule (separate from basic data access)
226
+ *
227
+ * @example
228
+ * ```typescript
229
+ * const bulkExportRule = createBulkDataAccessRule({
230
+ * id: 'data-bulk-001',
231
+ * name: 'Bulk Export Approval',
232
+ * bulkThreshold: 1000,
233
+ * requireApproval: true
234
+ * });
235
+ * ```
236
+ */
237
+ export declare function createBulkDataAccessRule(options: DataAccessRuleOptions & {
238
+ bulkThreshold: number;
239
+ }): BusinessRule;
240
+ /**
241
+ * Create a rate limit rule
242
+ *
243
+ * @example
244
+ * ```typescript
245
+ * const apiRateLimitRule = createRateLimitRule({
246
+ * id: 'rate-api-001',
247
+ * name: 'API Rate Limit',
248
+ * categories: ['external_api'],
249
+ * maxRequests: 100,
250
+ * windowMs: 60000,
251
+ * scope: 'agent'
252
+ * });
253
+ * ```
254
+ */
255
+ export declare function createRateLimitRule(options: RateLimitRuleOptions): BusinessRule;
256
+ /**
257
+ * Compliance framework definitions
258
+ */
259
+ export declare const COMPLIANCE_FRAMEWORKS: {
260
+ readonly gdpr: {
261
+ readonly name: "GDPR";
262
+ readonly fullName: "General Data Protection Regulation";
263
+ readonly tags: readonly ["gdpr", "privacy", "eu"];
264
+ readonly defaultPriority: 920;
265
+ readonly defaultRiskWeight: 45;
266
+ };
267
+ readonly hipaa: {
268
+ readonly name: "HIPAA";
269
+ readonly fullName: "Health Insurance Portability and Accountability Act";
270
+ readonly tags: readonly ["hipaa", "phi", "healthcare"];
271
+ readonly defaultPriority: 950;
272
+ readonly defaultRiskWeight: 55;
273
+ };
274
+ readonly 'pci-dss': {
275
+ readonly name: "PCI-DSS";
276
+ readonly fullName: "Payment Card Industry Data Security Standard";
277
+ readonly tags: readonly ["pci-dss", "cardholder-data", "financial"];
278
+ readonly defaultPriority: 970;
279
+ readonly defaultRiskWeight: 60;
280
+ };
281
+ readonly sox: {
282
+ readonly name: "SOX";
283
+ readonly fullName: "Sarbanes-Oxley Act";
284
+ readonly tags: readonly ["sox", "financial", "audit"];
285
+ readonly defaultPriority: 940;
286
+ readonly defaultRiskWeight: 50;
287
+ };
288
+ readonly soc2: {
289
+ readonly name: "SOC2";
290
+ readonly fullName: "Service Organization Control 2";
291
+ readonly tags: readonly ["soc2", "security", "trust"];
292
+ readonly defaultPriority: 900;
293
+ readonly defaultRiskWeight: 40;
294
+ };
295
+ readonly ccpa: {
296
+ readonly name: "CCPA";
297
+ readonly fullName: "California Consumer Privacy Act";
298
+ readonly tags: readonly ["ccpa", "privacy", "california"];
299
+ readonly defaultPriority: 910;
300
+ readonly defaultRiskWeight: 40;
301
+ };
302
+ };
303
+ export type ComplianceFramework = keyof typeof COMPLIANCE_FRAMEWORKS;
304
+ /**
305
+ * Create a compliance rule for a specific framework
306
+ *
307
+ * @example
308
+ * ```typescript
309
+ * const gdprConsentRule = createComplianceRule('gdpr', {
310
+ * id: 'gdpr-consent-001',
311
+ * name: 'GDPR Consent Verification',
312
+ * checkConsent: true,
313
+ * dataTypes: ['pii', 'email', 'name']
314
+ * });
315
+ *
316
+ * const hipaaPhiRule = createComplianceRule('hipaa', {
317
+ * id: 'hipaa-phi-001',
318
+ * name: 'HIPAA PHI Protection',
319
+ * dataTypes: ['phi'],
320
+ * requireEncryption: true,
321
+ * requirements: { minimumNecessary: 10 }
322
+ * });
323
+ * ```
324
+ */
325
+ export declare function createComplianceRule(framework: ComplianceFramework, options: ComplianceRuleOptions): BusinessRule;
326
+ /**
327
+ * Create an environment-specific rule
328
+ *
329
+ * @example
330
+ * ```typescript
331
+ * const prodDeployRule = createEnvironmentRule('production', {
332
+ * id: 'env-prod-001',
333
+ * name: 'Production Deployment Control',
334
+ * environments: ['production'],
335
+ * actionNames: ['deploy', 'release'],
336
+ * requireApproval: true,
337
+ * requireRollbackPlan: true
338
+ * });
339
+ *
340
+ * const devRelaxedRule = createEnvironmentRule('development', {
341
+ * id: 'env-dev-001',
342
+ * name: 'Development Mode - Relaxed',
343
+ * environments: ['development'],
344
+ * categories: ['code_execution'],
345
+ * blockInEnvironments: false,
346
+ * message: 'Development mode - operation allowed'
347
+ * });
348
+ * ```
349
+ */
350
+ export declare function createEnvironmentRule(targetEnv: 'development' | 'staging' | 'production' | 'all', options: EnvironmentRuleOptions): BusinessRule;
351
+ /**
352
+ * Injection pattern definitions
353
+ */
354
+ export declare const INJECTION_PATTERNS: {
355
+ readonly sql_injection: {
356
+ readonly pattern: "(\\b(SELECT|INSERT|UPDATE|DELETE|DROP|UNION|OR|AND)\\b.*['\";])|(--)|(\\*/)|(/\\*)";
357
+ readonly description: "SQL injection detection";
358
+ readonly tags: readonly ["sql-injection", "owasp"];
359
+ };
360
+ readonly command_injection: {
361
+ readonly pattern: "([;&|`$]|\\$\\(|\\{\\{)";
362
+ readonly description: "Command injection detection";
363
+ readonly tags: readonly ["command-injection", "owasp"];
364
+ };
365
+ readonly xss: {
366
+ readonly pattern: "(<script|javascript:|on\\w+\\s*=|<img.*onerror)";
367
+ readonly description: "Cross-site scripting detection";
368
+ readonly tags: readonly ["xss", "owasp"];
369
+ };
370
+ readonly path_traversal: {
371
+ readonly pattern: "(\\.\\./|\\.\\.\\\\|%2e%2e%2f|%252e%252e%252f)";
372
+ readonly description: "Path traversal detection";
373
+ readonly tags: readonly ["path-traversal", "owasp"];
374
+ };
375
+ };
376
+ /**
377
+ * Create a security rule
378
+ *
379
+ * @example
380
+ * ```typescript
381
+ * const sqlInjectionRule = createSecurityRule({
382
+ * id: 'sec-sql-001',
383
+ * name: 'SQL Injection Prevention',
384
+ * patternType: 'sql_injection',
385
+ * patternField: 'query',
386
+ * detectionAction: 'deny',
387
+ * sendNotification: true
388
+ * });
389
+ *
390
+ * const sandboxRule = createSecurityRule({
391
+ * id: 'sec-sandbox-001',
392
+ * name: 'Require Sandbox for Code',
393
+ * requireSandbox: true,
394
+ * detectionAction: 'deny'
395
+ * });
396
+ * ```
397
+ */
398
+ export declare function createSecurityRule(options: SecurityRuleOptions): BusinessRule;
399
+ /**
400
+ * Create an operational rule
401
+ *
402
+ * @example
403
+ * ```typescript
404
+ * const costControlRule = createOperationalRule({
405
+ * id: 'ops-cost-001',
406
+ * name: 'API Cost Control',
407
+ * costThreshold: 50,
408
+ * categories: ['external_api']
409
+ * });
410
+ *
411
+ * const resourceLimitRule = createOperationalRule({
412
+ * id: 'ops-resource-001',
413
+ * name: 'Memory Usage Warning',
414
+ * memoryThreshold: 1024,
415
+ * tokenThreshold: 100000
416
+ * });
417
+ * ```
418
+ */
419
+ export declare function createOperationalRule(options: OperationalRuleOptions): BusinessRule;
420
+ /**
421
+ * Create a simple deny rule
422
+ */
423
+ export declare function createDenyRule(options: {
424
+ id: string;
425
+ name: string;
426
+ conditions: RuleCondition[];
427
+ message: string;
428
+ priority?: number;
429
+ riskWeight?: number;
430
+ tags?: string[];
431
+ type?: BusinessRuleType;
432
+ }): BusinessRule;
433
+ /**
434
+ * Create a simple approval rule
435
+ */
436
+ export declare function createApprovalRule(options: {
437
+ id: string;
438
+ name: string;
439
+ conditions: RuleCondition[];
440
+ message: string;
441
+ priority?: number;
442
+ riskWeight?: number;
443
+ tags?: string[];
444
+ type?: BusinessRuleType;
445
+ }): BusinessRule;
446
+ /**
447
+ * Create a simple warning rule
448
+ */
449
+ export declare function createWarningRule(options: {
450
+ id: string;
451
+ name: string;
452
+ conditions: RuleCondition[];
453
+ message: string;
454
+ priority?: number;
455
+ riskWeight?: number;
456
+ tags?: string[];
457
+ type?: BusinessRuleType;
458
+ }): BusinessRule;
459
+ /**
460
+ * Create an audit-only rule (logs without blocking)
461
+ */
462
+ export declare function createAuditRule(options: {
463
+ id: string;
464
+ name: string;
465
+ conditions: RuleCondition[];
466
+ priority?: number;
467
+ tags?: string[];
468
+ }): BusinessRule;
469
+ /**
470
+ * Create a complete rule set for a compliance framework
471
+ */
472
+ export declare function createComplianceRuleSet(framework: ComplianceFramework, baseId: string, options?: {
473
+ enabled?: boolean;
474
+ priorityOffset?: number;
475
+ }): BusinessRule[];
476
+ /**
477
+ * Create a complete security rule set
478
+ */
479
+ export declare function createSecurityRuleSet(baseId: string, options?: {
480
+ enabled?: boolean;
481
+ includeInjectionPrevention?: boolean;
482
+ includeSandboxing?: boolean;
483
+ includeSystemFileProtection?: boolean;
484
+ }): BusinessRule[];
485
+ declare const _default: {
486
+ createAuthenticationRule: typeof createAuthenticationRule;
487
+ createDataAccessRule: typeof createDataAccessRule;
488
+ createBulkDataAccessRule: typeof createBulkDataAccessRule;
489
+ createRateLimitRule: typeof createRateLimitRule;
490
+ createComplianceRule: typeof createComplianceRule;
491
+ createEnvironmentRule: typeof createEnvironmentRule;
492
+ createSecurityRule: typeof createSecurityRule;
493
+ createOperationalRule: typeof createOperationalRule;
494
+ createDenyRule: typeof createDenyRule;
495
+ createApprovalRule: typeof createApprovalRule;
496
+ createWarningRule: typeof createWarningRule;
497
+ createAuditRule: typeof createAuditRule;
498
+ createComplianceRuleSet: typeof createComplianceRuleSet;
499
+ createSecurityRuleSet: typeof createSecurityRuleSet;
500
+ COMPLIANCE_FRAMEWORKS: {
501
+ readonly gdpr: {
502
+ readonly name: "GDPR";
503
+ readonly fullName: "General Data Protection Regulation";
504
+ readonly tags: readonly ["gdpr", "privacy", "eu"];
505
+ readonly defaultPriority: 920;
506
+ readonly defaultRiskWeight: 45;
507
+ };
508
+ readonly hipaa: {
509
+ readonly name: "HIPAA";
510
+ readonly fullName: "Health Insurance Portability and Accountability Act";
511
+ readonly tags: readonly ["hipaa", "phi", "healthcare"];
512
+ readonly defaultPriority: 950;
513
+ readonly defaultRiskWeight: 55;
514
+ };
515
+ readonly 'pci-dss': {
516
+ readonly name: "PCI-DSS";
517
+ readonly fullName: "Payment Card Industry Data Security Standard";
518
+ readonly tags: readonly ["pci-dss", "cardholder-data", "financial"];
519
+ readonly defaultPriority: 970;
520
+ readonly defaultRiskWeight: 60;
521
+ };
522
+ readonly sox: {
523
+ readonly name: "SOX";
524
+ readonly fullName: "Sarbanes-Oxley Act";
525
+ readonly tags: readonly ["sox", "financial", "audit"];
526
+ readonly defaultPriority: 940;
527
+ readonly defaultRiskWeight: 50;
528
+ };
529
+ readonly soc2: {
530
+ readonly name: "SOC2";
531
+ readonly fullName: "Service Organization Control 2";
532
+ readonly tags: readonly ["soc2", "security", "trust"];
533
+ readonly defaultPriority: 900;
534
+ readonly defaultRiskWeight: 40;
535
+ };
536
+ readonly ccpa: {
537
+ readonly name: "CCPA";
538
+ readonly fullName: "California Consumer Privacy Act";
539
+ readonly tags: readonly ["ccpa", "privacy", "california"];
540
+ readonly defaultPriority: 910;
541
+ readonly defaultRiskWeight: 40;
542
+ };
543
+ };
544
+ INJECTION_PATTERNS: {
545
+ readonly sql_injection: {
546
+ readonly pattern: "(\\b(SELECT|INSERT|UPDATE|DELETE|DROP|UNION|OR|AND)\\b.*['\";])|(--)|(\\*/)|(/\\*)";
547
+ readonly description: "SQL injection detection";
548
+ readonly tags: readonly ["sql-injection", "owasp"];
549
+ };
550
+ readonly command_injection: {
551
+ readonly pattern: "([;&|`$]|\\$\\(|\\{\\{)";
552
+ readonly description: "Command injection detection";
553
+ readonly tags: readonly ["command-injection", "owasp"];
554
+ };
555
+ readonly xss: {
556
+ readonly pattern: "(<script|javascript:|on\\w+\\s*=|<img.*onerror)";
557
+ readonly description: "Cross-site scripting detection";
558
+ readonly tags: readonly ["xss", "owasp"];
559
+ };
560
+ readonly path_traversal: {
561
+ readonly pattern: "(\\.\\./|\\.\\.\\\\|%2e%2e%2f|%252e%252e%252f)";
562
+ readonly description: "Path traversal detection";
563
+ readonly tags: readonly ["path-traversal", "owasp"];
564
+ };
565
+ };
566
+ };
567
+ export default _default;
568
+ //# sourceMappingURL=patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/rules/patterns.ts"],"names":[],"mappings":"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"}