@trentapps/manager-protocol 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +639 -0
  3. package/dist/analyzers/ArchitectureDetector.d.ts +44 -0
  4. package/dist/analyzers/ArchitectureDetector.d.ts.map +1 -0
  5. package/dist/analyzers/ArchitectureDetector.js +218 -0
  6. package/dist/analyzers/ArchitectureDetector.js.map +1 -0
  7. package/dist/analyzers/CSSAnalyzer.d.ts +284 -0
  8. package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -0
  9. package/dist/analyzers/CSSAnalyzer.js +1180 -0
  10. package/dist/analyzers/CSSAnalyzer.js.map +1 -0
  11. package/dist/analyzers/index.d.ts +5 -0
  12. package/dist/analyzers/index.d.ts.map +1 -0
  13. package/dist/analyzers/index.js +5 -0
  14. package/dist/analyzers/index.js.map +1 -0
  15. package/dist/cli.d.ts +8 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +174 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/design-system/index.d.ts +6 -0
  20. package/dist/design-system/index.d.ts.map +1 -0
  21. package/dist/design-system/index.js +6 -0
  22. package/dist/design-system/index.js.map +1 -0
  23. package/dist/design-system/tokens.d.ts +106 -0
  24. package/dist/design-system/tokens.d.ts.map +1 -0
  25. package/dist/design-system/tokens.js +554 -0
  26. package/dist/design-system/tokens.js.map +1 -0
  27. package/dist/engine/AuditLogger.d.ts +506 -0
  28. package/dist/engine/AuditLogger.d.ts.map +1 -0
  29. package/dist/engine/AuditLogger.js +1491 -0
  30. package/dist/engine/AuditLogger.js.map +1 -0
  31. package/dist/engine/GitHubApprovalManager.d.ts +123 -0
  32. package/dist/engine/GitHubApprovalManager.d.ts.map +1 -0
  33. package/dist/engine/GitHubApprovalManager.js +347 -0
  34. package/dist/engine/GitHubApprovalManager.js.map +1 -0
  35. package/dist/engine/GitHubClient.d.ts +183 -0
  36. package/dist/engine/GitHubClient.d.ts.map +1 -0
  37. package/dist/engine/GitHubClient.js +411 -0
  38. package/dist/engine/GitHubClient.js.map +1 -0
  39. package/dist/engine/RateLimiter.d.ts +81 -0
  40. package/dist/engine/RateLimiter.d.ts.map +1 -0
  41. package/dist/engine/RateLimiter.js +215 -0
  42. package/dist/engine/RateLimiter.js.map +1 -0
  43. package/dist/engine/RuleDependencyAnalyzer.d.ts +73 -0
  44. package/dist/engine/RuleDependencyAnalyzer.d.ts.map +1 -0
  45. package/dist/engine/RuleDependencyAnalyzer.js +475 -0
  46. package/dist/engine/RuleDependencyAnalyzer.js.map +1 -0
  47. package/dist/engine/RulesEngine.d.ts +176 -0
  48. package/dist/engine/RulesEngine.d.ts.map +1 -0
  49. package/dist/engine/RulesEngine.js +705 -0
  50. package/dist/engine/RulesEngine.js.map +1 -0
  51. package/dist/engine/TaskManager.d.ts +174 -0
  52. package/dist/engine/TaskManager.d.ts.map +1 -0
  53. package/dist/engine/TaskManager.js +663 -0
  54. package/dist/engine/TaskManager.js.map +1 -0
  55. package/dist/engine/index.d.ts +11 -0
  56. package/dist/engine/index.d.ts.map +1 -0
  57. package/dist/engine/index.js +13 -0
  58. package/dist/engine/index.js.map +1 -0
  59. package/dist/index.d.ts +21 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +29 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/rules/architecture.d.ts +9 -0
  64. package/dist/rules/architecture.d.ts.map +1 -0
  65. package/dist/rules/architecture.js +322 -0
  66. package/dist/rules/architecture.js.map +1 -0
  67. package/dist/rules/azure.d.ts +7 -0
  68. package/dist/rules/azure.d.ts.map +1 -0
  69. package/dist/rules/azure.js +136 -0
  70. package/dist/rules/azure.js.map +1 -0
  71. package/dist/rules/compliance.d.ts +9 -0
  72. package/dist/rules/compliance.d.ts.map +1 -0
  73. package/dist/rules/compliance.js +286 -0
  74. package/dist/rules/compliance.js.map +1 -0
  75. package/dist/rules/condition-optimizer.d.ts +151 -0
  76. package/dist/rules/condition-optimizer.d.ts.map +1 -0
  77. package/dist/rules/condition-optimizer.js +479 -0
  78. package/dist/rules/condition-optimizer.js.map +1 -0
  79. package/dist/rules/css.d.ts +10 -0
  80. package/dist/rules/css.d.ts.map +1 -0
  81. package/dist/rules/css.js +1777 -0
  82. package/dist/rules/css.js.map +1 -0
  83. package/dist/rules/field-standards.d.ts +1172 -0
  84. package/dist/rules/field-standards.d.ts.map +1 -0
  85. package/dist/rules/field-standards.js +908 -0
  86. package/dist/rules/field-standards.js.map +1 -0
  87. package/dist/rules/flask.d.ts +7 -0
  88. package/dist/rules/flask.d.ts.map +1 -0
  89. package/dist/rules/flask.js +142 -0
  90. package/dist/rules/flask.js.map +1 -0
  91. package/dist/rules/index.d.ts +827 -0
  92. package/dist/rules/index.d.ts.map +1 -0
  93. package/dist/rules/index.js +556 -0
  94. package/dist/rules/index.js.map +1 -0
  95. package/dist/rules/ml-ai.d.ts +7 -0
  96. package/dist/rules/ml-ai.d.ts.map +1 -0
  97. package/dist/rules/ml-ai.js +148 -0
  98. package/dist/rules/ml-ai.js.map +1 -0
  99. package/dist/rules/operational.d.ts +9 -0
  100. package/dist/rules/operational.d.ts.map +1 -0
  101. package/dist/rules/operational.js +318 -0
  102. package/dist/rules/operational.js.map +1 -0
  103. package/dist/rules/patterns.d.ts +568 -0
  104. package/dist/rules/patterns.d.ts.map +1 -0
  105. package/dist/rules/patterns.js +1359 -0
  106. package/dist/rules/patterns.js.map +1 -0
  107. package/dist/rules/security.d.ts +9 -0
  108. package/dist/rules/security.d.ts.map +1 -0
  109. package/dist/rules/security.js +848 -0
  110. package/dist/rules/security.js.map +1 -0
  111. package/dist/rules/shared-patterns.d.ts +268 -0
  112. package/dist/rules/shared-patterns.d.ts.map +1 -0
  113. package/dist/rules/shared-patterns.js +556 -0
  114. package/dist/rules/shared-patterns.js.map +1 -0
  115. package/dist/rules/storage.d.ts +13 -0
  116. package/dist/rules/storage.d.ts.map +1 -0
  117. package/dist/rules/storage.js +672 -0
  118. package/dist/rules/storage.js.map +1 -0
  119. package/dist/rules/stripe.d.ts +7 -0
  120. package/dist/rules/stripe.d.ts.map +1 -0
  121. package/dist/rules/stripe.js +133 -0
  122. package/dist/rules/stripe.js.map +1 -0
  123. package/dist/rules/testing.d.ts +7 -0
  124. package/dist/rules/testing.d.ts.map +1 -0
  125. package/dist/rules/testing.js +135 -0
  126. package/dist/rules/testing.js.map +1 -0
  127. package/dist/rules/ux.d.ts +9 -0
  128. package/dist/rules/ux.d.ts.map +1 -0
  129. package/dist/rules/ux.js +280 -0
  130. package/dist/rules/ux.js.map +1 -0
  131. package/dist/rules/websocket.d.ts +7 -0
  132. package/dist/rules/websocket.d.ts.map +1 -0
  133. package/dist/rules/websocket.js +128 -0
  134. package/dist/rules/websocket.js.map +1 -0
  135. package/dist/server.d.ts +43 -0
  136. package/dist/server.d.ts.map +1 -0
  137. package/dist/server.js +1967 -0
  138. package/dist/server.js.map +1 -0
  139. package/dist/supervisor/AgentSupervisor.d.ts +195 -0
  140. package/dist/supervisor/AgentSupervisor.d.ts.map +1 -0
  141. package/dist/supervisor/AgentSupervisor.js +569 -0
  142. package/dist/supervisor/AgentSupervisor.js.map +1 -0
  143. package/dist/supervisor/ManagedServerRegistry.d.ts +185 -0
  144. package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -0
  145. package/dist/supervisor/ManagedServerRegistry.js +729 -0
  146. package/dist/supervisor/ManagedServerRegistry.js.map +1 -0
  147. package/dist/supervisor/ProjectTracker.d.ts +210 -0
  148. package/dist/supervisor/ProjectTracker.d.ts.map +1 -0
  149. package/dist/supervisor/ProjectTracker.js +709 -0
  150. package/dist/supervisor/ProjectTracker.js.map +1 -0
  151. package/dist/supervisor/index.d.ts +6 -0
  152. package/dist/supervisor/index.d.ts.map +1 -0
  153. package/dist/supervisor/index.js +6 -0
  154. package/dist/supervisor/index.js.map +1 -0
  155. package/dist/testing/index.d.ts +11 -0
  156. package/dist/testing/index.d.ts.map +1 -0
  157. package/dist/testing/index.js +12 -0
  158. package/dist/testing/index.js.map +1 -0
  159. package/dist/testing/rule-tester.d.ts +217 -0
  160. package/dist/testing/rule-tester.d.ts.map +1 -0
  161. package/dist/testing/rule-tester.examples.d.ts +57 -0
  162. package/dist/testing/rule-tester.examples.d.ts.map +1 -0
  163. package/dist/testing/rule-tester.examples.js +375 -0
  164. package/dist/testing/rule-tester.examples.js.map +1 -0
  165. package/dist/testing/rule-tester.js +381 -0
  166. package/dist/testing/rule-tester.js.map +1 -0
  167. package/dist/testing/rule-validator.d.ts +141 -0
  168. package/dist/testing/rule-validator.d.ts.map +1 -0
  169. package/dist/testing/rule-validator.js +640 -0
  170. package/dist/testing/rule-validator.js.map +1 -0
  171. package/dist/types/index.d.ts +1282 -0
  172. package/dist/types/index.d.ts.map +1 -0
  173. package/dist/types/index.js +386 -0
  174. package/dist/types/index.js.map +1 -0
  175. package/dist/utils/errors.d.ts +86 -0
  176. package/dist/utils/errors.d.ts.map +1 -0
  177. package/dist/utils/errors.js +171 -0
  178. package/dist/utils/errors.js.map +1 -0
  179. package/dist/utils/index.d.ts +7 -0
  180. package/dist/utils/index.d.ts.map +1 -0
  181. package/dist/utils/index.js +7 -0
  182. package/dist/utils/index.js.map +1 -0
  183. package/dist/utils/rate-limiting.d.ts +268 -0
  184. package/dist/utils/rate-limiting.d.ts.map +1 -0
  185. package/dist/utils/rate-limiting.js +403 -0
  186. package/dist/utils/rate-limiting.js.map +1 -0
  187. package/dist/utils/shared.d.ts +306 -0
  188. package/dist/utils/shared.d.ts.map +1 -0
  189. package/dist/utils/shared.js +464 -0
  190. package/dist/utils/shared.js.map +1 -0
  191. package/dist/utils/shell.d.ts +22 -0
  192. package/dist/utils/shell.d.ts.map +1 -0
  193. package/dist/utils/shell.js +29 -0
  194. package/dist/utils/shell.js.map +1 -0
  195. package/package.json +67 -0
@@ -0,0 +1,556 @@
1
+ /**
2
+ * Enterprise Agent Supervisor - Shared Rule Patterns
3
+ *
4
+ * Reusable patterns and factory functions for common governance rules.
5
+ * These patterns eliminate duplication across rule files and ensure consistency.
6
+ */
7
+ // ============================================================================
8
+ // PATTERN HELPERS
9
+ // ============================================================================
10
+ /**
11
+ * Generate a unique rule ID with optional suffix
12
+ */
13
+ export function generateRuleId(prefix, base, suffix) {
14
+ return suffix ? `${prefix}-${base}-${suffix}` : `${prefix}-${base}`;
15
+ }
16
+ // ============================================================================
17
+ // AUDIT LOGGING PATTERNS (Task #26)
18
+ // ============================================================================
19
+ /**
20
+ * Common conditions for audit logging
21
+ */
22
+ export const AUDIT_CATEGORIES = ['data_modification', 'authorization', 'financial', 'pii_access'];
23
+ /**
24
+ * Base audit logging action - can be extended with additional actions
25
+ */
26
+ export const AUDIT_LOG_ACTION = { type: 'log' };
27
+ /**
28
+ * Create an audit logging rule with consistent structure
29
+ */
30
+ export function createAuditLoggingRule(config) {
31
+ const conditions = [];
32
+ if (config.categories && config.categories.length > 0) {
33
+ conditions.push({
34
+ field: 'actionCategory',
35
+ operator: 'in',
36
+ value: [...config.categories]
37
+ });
38
+ }
39
+ if (config.additionalConditions) {
40
+ conditions.push(...config.additionalConditions);
41
+ }
42
+ return {
43
+ id: config.id,
44
+ name: config.name,
45
+ description: config.description,
46
+ type: 'compliance',
47
+ enabled: true,
48
+ priority: config.priority ?? 800,
49
+ conditions,
50
+ conditionLogic: 'all',
51
+ actions: [AUDIT_LOG_ACTION, ...(config.additionalActions ?? [])],
52
+ riskWeight: config.riskWeight ?? 5,
53
+ tags: ['audit', 'logging', ...(config.tags ?? [])]
54
+ };
55
+ }
56
+ /**
57
+ * Specialized audit rule for specific data types (PHI, PII, etc.)
58
+ */
59
+ export function createDataTypeAuditRule(config) {
60
+ return createAuditLoggingRule({
61
+ id: config.id,
62
+ name: config.name,
63
+ description: `Ensures all ${config.dataType.toUpperCase()} access is logged`,
64
+ additionalConditions: [
65
+ { field: 'dataType', operator: 'equals', value: config.dataType }
66
+ ],
67
+ additionalActions: [{ type: 'allow' }],
68
+ priority: config.priority ?? 950,
69
+ riskWeight: config.riskWeight ?? 10,
70
+ tags: config.framework ? [config.framework, config.dataType, 'audit'] : [config.dataType, 'audit']
71
+ });
72
+ }
73
+ // ============================================================================
74
+ // ENCRYPTION REQUIREMENT PATTERNS (Task #27)
75
+ // ============================================================================
76
+ /**
77
+ * Common encryption check conditions
78
+ */
79
+ export const ENCRYPTION_CONDITION = {
80
+ field: 'encryptionEnabled',
81
+ operator: 'not_equals',
82
+ value: true
83
+ };
84
+ export const HTTPS_PROTOCOL_CONDITION = {
85
+ field: 'protocol',
86
+ operator: 'not_equals',
87
+ value: 'https'
88
+ };
89
+ export const TLS_CONDITION = {
90
+ field: 'tlsEnabled',
91
+ operator: 'not_equals',
92
+ value: true
93
+ };
94
+ /**
95
+ * Create an encryption requirement rule
96
+ */
97
+ export function createEncryptionRule(config) {
98
+ const conditions = [];
99
+ // Add scope conditions
100
+ if (config.scope.category) {
101
+ conditions.push({
102
+ field: 'actionCategory',
103
+ operator: config.scope.category.includes(',') ? 'in' : 'equals',
104
+ value: config.scope.category.includes(',') ? config.scope.category.split(',') : config.scope.category
105
+ });
106
+ }
107
+ if (config.scope.dataType) {
108
+ conditions.push({
109
+ field: 'dataType',
110
+ operator: 'equals',
111
+ value: config.scope.dataType
112
+ });
113
+ }
114
+ if (config.scope.protocol) {
115
+ conditions.push({
116
+ field: 'protocol',
117
+ operator: Array.isArray(config.scope.protocol) ? 'in' : 'equals',
118
+ value: config.scope.protocol
119
+ });
120
+ }
121
+ if (config.scope.environment === 'production') {
122
+ conditions.push({
123
+ field: 'environment',
124
+ operator: 'equals',
125
+ value: 'production'
126
+ });
127
+ }
128
+ if (config.scope.framework) {
129
+ conditions.push({
130
+ field: 'framework',
131
+ operator: 'equals',
132
+ value: config.scope.framework
133
+ });
134
+ }
135
+ // Add encryption check based on type
136
+ switch (config.encryptionType) {
137
+ case 'data':
138
+ conditions.push(ENCRYPTION_CONDITION);
139
+ break;
140
+ case 'transport':
141
+ conditions.push(HTTPS_PROTOCOL_CONDITION);
142
+ break;
143
+ case 'tls':
144
+ conditions.push(TLS_CONDITION);
145
+ break;
146
+ }
147
+ return {
148
+ id: config.id,
149
+ name: config.name,
150
+ description: config.description,
151
+ type: 'security',
152
+ enabled: true,
153
+ priority: config.priority ?? 940,
154
+ conditions,
155
+ conditionLogic: 'all',
156
+ actions: [{ type: config.actionType ?? 'deny', message: config.message }],
157
+ riskWeight: config.riskWeight ?? 45,
158
+ tags: ['encryption', 'security', ...(config.tags ?? [])]
159
+ };
160
+ }
161
+ // ============================================================================
162
+ // INPUT VALIDATION PATTERNS (Task #28)
163
+ // ============================================================================
164
+ /**
165
+ * Common validation check condition
166
+ */
167
+ export const VALIDATION_REQUIRED_CONDITION = {
168
+ field: 'inputValidation',
169
+ operator: 'not_equals',
170
+ value: true
171
+ };
172
+ export const FILE_VALIDATION_CONDITION = {
173
+ field: 'fileValidation',
174
+ operator: 'not_equals',
175
+ value: true
176
+ };
177
+ export const MESSAGE_VALIDATION_CONDITION = {
178
+ field: 'messageValidation',
179
+ operator: 'not_equals',
180
+ value: true
181
+ };
182
+ export const SIGNATURE_VALIDATION_CONDITION = {
183
+ field: 'signatureValidated',
184
+ operator: 'not_equals',
185
+ value: true
186
+ };
187
+ /**
188
+ * Create an input validation rule
189
+ */
190
+ export function createValidationRule(config) {
191
+ const conditions = [];
192
+ // Add scope conditions
193
+ if (config.scope.category) {
194
+ conditions.push({
195
+ field: 'actionCategory',
196
+ operator: 'equals',
197
+ value: config.scope.category
198
+ });
199
+ }
200
+ if (config.scope.actionName) {
201
+ conditions.push({
202
+ field: 'actionName',
203
+ operator: 'contains',
204
+ value: config.scope.actionName
205
+ });
206
+ }
207
+ if (config.scope.protocol) {
208
+ conditions.push({
209
+ field: 'protocol',
210
+ operator: Array.isArray(config.scope.protocol) ? 'in' : 'equals',
211
+ value: config.scope.protocol
212
+ });
213
+ }
214
+ if (config.scope.provider) {
215
+ conditions.push({
216
+ field: 'provider',
217
+ operator: 'equals',
218
+ value: config.scope.provider
219
+ });
220
+ }
221
+ if (config.scope.operation) {
222
+ conditions.push({
223
+ field: 'operation',
224
+ operator: 'equals',
225
+ value: config.scope.operation
226
+ });
227
+ }
228
+ // Add validation check based on type
229
+ switch (config.validationType) {
230
+ case 'input':
231
+ conditions.push(VALIDATION_REQUIRED_CONDITION);
232
+ break;
233
+ case 'file':
234
+ conditions.push(FILE_VALIDATION_CONDITION);
235
+ break;
236
+ case 'message':
237
+ conditions.push(MESSAGE_VALIDATION_CONDITION);
238
+ break;
239
+ case 'signature':
240
+ conditions.push(SIGNATURE_VALIDATION_CONDITION);
241
+ break;
242
+ case 'schema':
243
+ conditions.push({
244
+ field: 'schemaValidation',
245
+ operator: 'not_equals',
246
+ value: true
247
+ });
248
+ break;
249
+ }
250
+ return {
251
+ id: config.id,
252
+ name: config.name,
253
+ description: config.description,
254
+ type: 'security',
255
+ enabled: true,
256
+ priority: config.priority ?? 920,
257
+ conditions,
258
+ conditionLogic: 'all',
259
+ actions: [{ type: config.actionType ?? 'deny', message: config.message }],
260
+ riskWeight: config.riskWeight ?? 40,
261
+ tags: ['validation', 'security', ...(config.tags ?? [])]
262
+ };
263
+ }
264
+ // ============================================================================
265
+ // RATE LIMITING PATTERNS (Task #29)
266
+ // ============================================================================
267
+ /**
268
+ * Common rate limiting check condition
269
+ */
270
+ export const RATE_LIMIT_ENABLED_CONDITION = {
271
+ field: 'rateLimitEnabled',
272
+ operator: 'not_equals',
273
+ value: true
274
+ };
275
+ export const MESSAGE_RATE_LIMIT_CONDITION = {
276
+ field: 'messageRateLimitEnabled',
277
+ operator: 'not_equals',
278
+ value: true
279
+ };
280
+ /**
281
+ * Create a rate limit check rule
282
+ */
283
+ export function createRateLimitRule(config) {
284
+ const conditions = [];
285
+ // Add scope conditions
286
+ if (config.scope.category) {
287
+ conditions.push({
288
+ field: 'actionCategory',
289
+ operator: 'equals',
290
+ value: config.scope.category
291
+ });
292
+ }
293
+ if (config.scope.actionName) {
294
+ conditions.push({
295
+ field: 'actionName',
296
+ operator: 'contains',
297
+ value: config.scope.actionName
298
+ });
299
+ }
300
+ if (config.scope.protocol) {
301
+ conditions.push({
302
+ field: 'protocol',
303
+ operator: Array.isArray(config.scope.protocol) ? 'in' : 'equals',
304
+ value: config.scope.protocol
305
+ });
306
+ }
307
+ if (config.scope.provider) {
308
+ conditions.push({
309
+ field: 'provider',
310
+ operator: 'equals',
311
+ value: config.scope.provider
312
+ });
313
+ }
314
+ // Add rate limit condition or threshold
315
+ if (config.threshold) {
316
+ conditions.push({
317
+ field: config.threshold.field,
318
+ operator: 'greater_than',
319
+ value: config.threshold.value
320
+ });
321
+ }
322
+ else {
323
+ // Add default rate limit check based on type
324
+ switch (config.limitType) {
325
+ case 'message':
326
+ conditions.push(MESSAGE_RATE_LIMIT_CONDITION);
327
+ break;
328
+ case 'api':
329
+ conditions.push({
330
+ field: 'respectsRateLimits',
331
+ operator: 'not_equals',
332
+ value: true
333
+ });
334
+ break;
335
+ case 'notification':
336
+ conditions.push({
337
+ field: 'notificationsLastHour',
338
+ operator: 'greater_than',
339
+ value: 10
340
+ });
341
+ break;
342
+ default:
343
+ conditions.push(RATE_LIMIT_ENABLED_CONDITION);
344
+ }
345
+ }
346
+ return {
347
+ id: config.id,
348
+ name: config.name,
349
+ description: config.description,
350
+ type: config.limitType === 'notification' ? 'ux' : 'security',
351
+ enabled: true,
352
+ priority: config.priority ?? 850,
353
+ conditions,
354
+ conditionLogic: 'all',
355
+ actions: [{ type: config.actionType ?? 'warn', message: config.message }],
356
+ riskWeight: config.riskWeight ?? 30,
357
+ tags: ['rate-limiting', ...(config.tags ?? [])]
358
+ };
359
+ }
360
+ // ============================================================================
361
+ // PRODUCTION ENVIRONMENT PATTERNS (Task #30)
362
+ // ============================================================================
363
+ /**
364
+ * Production environment condition - reusable across rules
365
+ */
366
+ export const PRODUCTION_ENV_CONDITION = {
367
+ field: 'environment',
368
+ operator: 'equals',
369
+ value: 'production'
370
+ };
371
+ /**
372
+ * Create a production environment check rule
373
+ */
374
+ export function createProductionRule(config) {
375
+ const conditions = [PRODUCTION_ENV_CONDITION];
376
+ // Add the config field check
377
+ if (config.negated) {
378
+ conditions.push({
379
+ field: config.configField,
380
+ operator: 'not_equals',
381
+ value: config.expectedValue ?? true
382
+ });
383
+ }
384
+ else if (config.expectedValue !== undefined) {
385
+ conditions.push({
386
+ field: config.configField,
387
+ operator: 'equals',
388
+ value: config.expectedValue
389
+ });
390
+ }
391
+ else {
392
+ conditions.push({
393
+ field: config.configField,
394
+ operator: 'not_exists',
395
+ value: null
396
+ });
397
+ }
398
+ if (config.additionalConditions) {
399
+ conditions.push(...config.additionalConditions);
400
+ }
401
+ // Determine rule type based on check type
402
+ const ruleTypeMap = {
403
+ config: 'security',
404
+ security: 'security',
405
+ monitoring: 'operational',
406
+ deployment: 'operational'
407
+ };
408
+ return {
409
+ id: config.id,
410
+ name: config.name,
411
+ description: config.description,
412
+ type: ruleTypeMap[config.checkType] ?? 'security',
413
+ enabled: true,
414
+ priority: config.priority ?? 900,
415
+ conditions,
416
+ conditionLogic: 'all',
417
+ actions: [{ type: config.actionType ?? 'warn', message: config.message }],
418
+ riskWeight: config.riskWeight ?? 35,
419
+ tags: ['production', config.checkType, ...(config.tags ?? [])]
420
+ };
421
+ }
422
+ /**
423
+ * Create a production debug mode check (common pattern)
424
+ */
425
+ export function createDebugModeRule(config) {
426
+ return createProductionRule({
427
+ id: config.id,
428
+ name: `Prohibit ${config.framework} Debug Mode in Production`,
429
+ description: `${config.framework} debug mode must be disabled in production environments`,
430
+ checkType: 'security',
431
+ configField: config.debugField ?? `${config.framework.toLowerCase()}DebugEnabled`,
432
+ expectedValue: true,
433
+ negated: false, // We want to match when debug IS enabled
434
+ additionalConditions: [
435
+ { field: config.debugField ?? `${config.framework.toLowerCase()}DebugEnabled`, operator: 'equals', value: true }
436
+ ].filter(() => false), // Already handled above
437
+ actionType: 'deny',
438
+ message: `${config.framework} debug mode is prohibited in production (security risk)`,
439
+ priority: config.priority ?? 990,
440
+ riskWeight: config.riskWeight ?? 70,
441
+ tags: [config.framework.toLowerCase(), 'debug']
442
+ });
443
+ }
444
+ /**
445
+ * Create a production HTTPS requirement rule
446
+ */
447
+ export function createProductionHttpsRule(config) {
448
+ const conditions = [PRODUCTION_ENV_CONDITION];
449
+ if (config.framework) {
450
+ conditions.push({
451
+ field: 'framework',
452
+ operator: 'equals',
453
+ value: config.framework
454
+ });
455
+ }
456
+ if (config.protocol) {
457
+ conditions.push({
458
+ field: 'protocol',
459
+ operator: 'in',
460
+ value: [config.protocol]
461
+ });
462
+ }
463
+ conditions.push({
464
+ field: config.httpsField ?? 'httpsEnforced',
465
+ operator: 'not_equals',
466
+ value: true
467
+ });
468
+ const name = config.protocol
469
+ ? `${config.protocol} TLS Requirement`
470
+ : config.framework
471
+ ? `Require HTTPS for ${config.framework} in Production`
472
+ : 'Require HTTPS in Production';
473
+ return {
474
+ id: config.id,
475
+ name,
476
+ description: 'Production connections must use encrypted transport',
477
+ type: 'security',
478
+ enabled: true,
479
+ priority: config.priority ?? 940,
480
+ conditions,
481
+ conditionLogic: 'all',
482
+ actions: [{
483
+ type: config.actionType ?? 'warn',
484
+ message: 'Production connections must use HTTPS/TLS encrypted transport'
485
+ }],
486
+ riskWeight: config.riskWeight ?? 45,
487
+ tags: ['https', 'tls', 'encryption', 'production', ...(config.framework ? [config.framework.toLowerCase()] : [])]
488
+ };
489
+ }
490
+ /**
491
+ * Create a production monitoring requirement rule
492
+ */
493
+ export function createProductionMonitoringRule(config) {
494
+ const conditions = [PRODUCTION_ENV_CONDITION];
495
+ if (config.platform) {
496
+ conditions.push({
497
+ field: 'platform',
498
+ operator: 'equals',
499
+ value: config.platform
500
+ });
501
+ }
502
+ conditions.push({
503
+ field: config.monitoringField,
504
+ operator: 'not_equals',
505
+ value: true
506
+ });
507
+ return {
508
+ id: config.id,
509
+ name: config.name,
510
+ description: config.description,
511
+ type: 'operational',
512
+ enabled: true,
513
+ priority: config.priority ?? 860,
514
+ conditions,
515
+ conditionLogic: 'all',
516
+ actions: [{ type: 'warn', message: config.message }],
517
+ riskWeight: config.riskWeight ?? 25,
518
+ tags: ['monitoring', 'production', 'observability', ...(config.tags ?? [])]
519
+ };
520
+ }
521
+ // ============================================================================
522
+ // EXPORTED PATTERN COLLECTIONS
523
+ // ============================================================================
524
+ /**
525
+ * All shared pattern factory functions
526
+ */
527
+ export const sharedPatterns = {
528
+ // Audit logging
529
+ createAuditLoggingRule,
530
+ createDataTypeAuditRule,
531
+ AUDIT_CATEGORIES,
532
+ AUDIT_LOG_ACTION,
533
+ // Encryption
534
+ createEncryptionRule,
535
+ ENCRYPTION_CONDITION,
536
+ HTTPS_PROTOCOL_CONDITION,
537
+ TLS_CONDITION,
538
+ // Validation
539
+ createValidationRule,
540
+ VALIDATION_REQUIRED_CONDITION,
541
+ FILE_VALIDATION_CONDITION,
542
+ MESSAGE_VALIDATION_CONDITION,
543
+ SIGNATURE_VALIDATION_CONDITION,
544
+ // Rate limiting
545
+ createRateLimitRule,
546
+ RATE_LIMIT_ENABLED_CONDITION,
547
+ MESSAGE_RATE_LIMIT_CONDITION,
548
+ // Production environment
549
+ createProductionRule,
550
+ createDebugModeRule,
551
+ createProductionHttpsRule,
552
+ createProductionMonitoringRule,
553
+ PRODUCTION_ENV_CONDITION
554
+ };
555
+ export default sharedPatterns;
556
+ //# sourceMappingURL=shared-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-patterns.js","sourceRoot":"","sources":["../../src/rules/shared-patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Enterprise Agent Supervisor - Storage Rules
3
+ *
4
+ * Comprehensive governance rules for all storage types:
5
+ * - Browser Storage (localStorage, sessionStorage, IndexedDB)
6
+ * - Database Access (SQL, NoSQL, transactions)
7
+ * - File System (read, write, configuration)
8
+ * - Cache (memory, distributed, CDN)
9
+ * - Blob/Object Storage (S3, Azure Blob, GCS)
10
+ */
11
+ import type { BusinessRule } from '../types/index.js';
12
+ export declare const storageRules: BusinessRule[];
13
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/rules/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA2pBtD,eAAO,MAAM,YAAY,EAAE,YAAY,EAMtC,CAAC"}