@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,148 @@
1
+ /**
2
+ * ML/AI Model Safety Rules
3
+ * Governance rules for machine learning and AI model operations
4
+ */
5
+ import { createValidationRule } from './shared-patterns.js';
6
+ export const mlAiRules = [
7
+ {
8
+ id: 'ml-001',
9
+ name: 'Require Graceful OOM Handling',
10
+ description: 'Model loading must handle out-of-memory errors gracefully',
11
+ type: 'operational',
12
+ enabled: true,
13
+ priority: 950,
14
+ conditions: [
15
+ { field: 'actionName', operator: 'contains', value: 'load_model' },
16
+ { field: 'oomHandling', operator: 'not_equals', value: true }
17
+ ],
18
+ conditionLogic: 'all',
19
+ actions: [
20
+ { type: 'warn', message: 'ML: Model loading should handle OOM errors (try/except, fallback to CPU)' }
21
+ ],
22
+ riskWeight: 45,
23
+ tags: ['ml', 'ai', 'gpu', 'oom', 'error-handling']
24
+ },
25
+ {
26
+ id: 'ml-002',
27
+ name: 'Enforce Model Unloading Strategy',
28
+ description: 'Models must be unloaded after idle period to prevent memory leaks',
29
+ type: 'operational',
30
+ enabled: true,
31
+ priority: 880,
32
+ conditions: [
33
+ { field: 'actionName', operator: 'contains', value: 'load_model' },
34
+ { field: 'unloadStrategy', operator: 'not_exists', value: null }
35
+ ],
36
+ conditionLogic: 'all',
37
+ actions: [
38
+ { type: 'warn', message: 'ML: Define model unload strategy (timeout, LRU cache, manual unload)' }
39
+ ],
40
+ riskWeight: 35,
41
+ tags: ['ml', 'ai', 'memory', 'cleanup', 'gpu']
42
+ },
43
+ {
44
+ id: 'ml-003',
45
+ name: 'Limit Inference Batch Size',
46
+ description: 'Batch inference must have size limits to prevent GPU exhaustion',
47
+ type: 'operational',
48
+ enabled: true,
49
+ priority: 900,
50
+ conditions: [
51
+ { field: 'actionName', operator: 'contains', value: 'inference' },
52
+ { field: 'batchSize', operator: 'greater_than', value: 32 }
53
+ ],
54
+ conditionLogic: 'all',
55
+ actions: [
56
+ { type: 'warn', message: 'ML: Large batch sizes (>32) may exhaust GPU memory - consider chunking' }
57
+ ],
58
+ riskWeight: 30,
59
+ tags: ['ml', 'ai', 'inference', 'batch', 'gpu']
60
+ },
61
+ // Model Input Validation - uses shared validation pattern
62
+ createValidationRule({
63
+ id: 'ml-004',
64
+ name: 'Validate Model Inputs',
65
+ description: 'Model inputs must be validated to prevent prompt injection',
66
+ validationType: 'input',
67
+ scope: {
68
+ actionName: 'inference'
69
+ },
70
+ actionType: 'warn',
71
+ message: 'ML: Validate model inputs (length limits, content filtering, injection prevention)',
72
+ priority: 940,
73
+ riskWeight: 40,
74
+ tags: ['ml', 'ai', 'prompt-injection']
75
+ }),
76
+ {
77
+ id: 'ml-005',
78
+ name: 'Require Content Safety Filtering',
79
+ description: 'Generated content must be filtered for safety',
80
+ type: 'security',
81
+ enabled: true,
82
+ priority: 920,
83
+ conditions: [
84
+ { field: 'actionName', operator: 'contains', value: 'generate' },
85
+ { field: 'contentSafetyFilter', operator: 'not_equals', value: true }
86
+ ],
87
+ conditionLogic: 'all',
88
+ actions: [
89
+ { type: 'warn', message: 'ML: Generated content should be filtered for safety/appropriateness' }
90
+ ],
91
+ riskWeight: 35,
92
+ tags: ['ml', 'ai', 'content-safety', 'moderation']
93
+ },
94
+ {
95
+ id: 'ml-006',
96
+ name: 'Monitor GPU Memory Usage',
97
+ description: 'GPU memory usage should be monitored and alerted',
98
+ type: 'operational',
99
+ enabled: true,
100
+ priority: 850,
101
+ conditions: [
102
+ { field: 'gpuMemoryUsage', operator: 'greater_than', value: 0.9 }
103
+ ],
104
+ conditionLogic: 'all',
105
+ actions: [
106
+ { type: 'warn', message: 'ML: GPU memory usage >90% - consider unloading models or reducing batch size' }
107
+ ],
108
+ riskWeight: 25,
109
+ tags: ['ml', 'ai', 'gpu', 'memory', 'monitoring']
110
+ },
111
+ {
112
+ id: 'ml-007',
113
+ name: 'Inference Timeout Limits',
114
+ description: 'Model inference must have timeout limits',
115
+ type: 'operational',
116
+ enabled: true,
117
+ priority: 870,
118
+ conditions: [
119
+ { field: 'actionName', operator: 'contains', value: 'inference' },
120
+ { field: 'timeout', operator: 'not_exists', value: null }
121
+ ],
122
+ conditionLogic: 'all',
123
+ actions: [
124
+ { type: 'warn', message: 'ML: Set inference timeout to prevent hanging operations' }
125
+ ],
126
+ riskWeight: 20,
127
+ tags: ['ml', 'ai', 'timeout', 'inference']
128
+ },
129
+ {
130
+ id: 'ml-008',
131
+ name: 'Model Version Tracking',
132
+ description: 'Loaded models should track version for reproducibility',
133
+ type: 'operational',
134
+ enabled: true,
135
+ priority: 750,
136
+ conditions: [
137
+ { field: 'actionName', operator: 'contains', value: 'load_model' },
138
+ { field: 'modelVersion', operator: 'not_exists', value: null }
139
+ ],
140
+ conditionLogic: 'all',
141
+ actions: [
142
+ { type: 'warn', message: 'ML: Track model versions for reproducibility and debugging' }
143
+ ],
144
+ riskWeight: 15,
145
+ tags: ['ml', 'ai', 'versioning', 'reproducibility']
146
+ }
147
+ ];
148
+ //# sourceMappingURL=ml-ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ml-ai.js","sourceRoot":"","sources":["../../src/rules/ml-ai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Enterprise Agent Supervisor - Operational Rules
3
+ *
4
+ * Built-in rules for operational excellence, resource management, and cost control.
5
+ */
6
+ import type { BusinessRule } from '../types/index.js';
7
+ export declare const operationalRules: BusinessRule[];
8
+ export default operationalRules;
9
+ //# sourceMappingURL=operational.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operational.d.ts","sourceRoot":"","sources":["../../src/rules/operational.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,gBAAgB,EAAE,YAAY,EA2T1C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,318 @@
1
+ /**
2
+ * Enterprise Agent Supervisor - Operational Rules
3
+ *
4
+ * Built-in rules for operational excellence, resource management, and cost control.
5
+ */
6
+ export const operationalRules = [
7
+ // ============================================================================
8
+ // RESOURCE MANAGEMENT RULES
9
+ // ============================================================================
10
+ {
11
+ id: 'ops-001',
12
+ name: 'Resource Allocation Limit',
13
+ description: 'Prevents excessive resource allocation',
14
+ type: 'operational',
15
+ enabled: true,
16
+ priority: 880,
17
+ conditions: [
18
+ { field: 'actionCategory', operator: 'equals', value: 'resource_allocation' },
19
+ { field: 'resourceCost', operator: 'greater_than', value: 1000 }
20
+ ],
21
+ conditionLogic: 'all',
22
+ actions: [
23
+ { type: 'require_approval', message: 'Resource allocation exceeds $1000 - requires approval' }
24
+ ],
25
+ riskWeight: 30,
26
+ tags: ['operational', 'cost', 'resources']
27
+ },
28
+ {
29
+ id: 'ops-002',
30
+ name: 'Concurrent Operation Limit',
31
+ description: 'Limits concurrent expensive operations',
32
+ type: 'operational',
33
+ enabled: true,
34
+ priority: 850,
35
+ conditions: [
36
+ { field: 'operationType', operator: 'equals', value: 'expensive' },
37
+ { field: 'concurrentCount', operator: 'greater_than', value: 5 }
38
+ ],
39
+ conditionLogic: 'all',
40
+ actions: [
41
+ { type: 'rate_limit', message: 'Too many concurrent expensive operations' }
42
+ ],
43
+ riskWeight: 25,
44
+ tags: ['operational', 'concurrency', 'limits']
45
+ },
46
+ {
47
+ id: 'ops-003',
48
+ name: 'Memory Usage Warning',
49
+ description: 'Warns when operations may consume excessive memory',
50
+ type: 'operational',
51
+ enabled: true,
52
+ priority: 800,
53
+ conditions: [
54
+ { field: 'estimatedMemoryMb', operator: 'greater_than', value: 512 }
55
+ ],
56
+ conditionLogic: 'all',
57
+ actions: [
58
+ { type: 'warn', message: 'Operation may consume >512MB memory - consider streaming' }
59
+ ],
60
+ riskWeight: 15,
61
+ tags: ['operational', 'memory', 'performance']
62
+ },
63
+ // ============================================================================
64
+ // PRODUCTION SAFETY RULES
65
+ // ============================================================================
66
+ {
67
+ id: 'ops-010',
68
+ name: 'Production Deployment Window',
69
+ description: 'Restricts deployments to approved windows',
70
+ type: 'operational',
71
+ enabled: true,
72
+ priority: 920,
73
+ conditions: [
74
+ { field: 'actionName', operator: 'equals', value: 'deploy' },
75
+ { field: 'environment', operator: 'equals', value: 'production' },
76
+ { field: 'deploymentWindowOpen', operator: 'not_equals', value: true }
77
+ ],
78
+ conditionLogic: 'all',
79
+ actions: [
80
+ { type: 'require_approval', message: 'Production deployment outside approved window requires approval' }
81
+ ],
82
+ riskWeight: 40,
83
+ tags: ['operational', 'deployment', 'change-management']
84
+ },
85
+ {
86
+ id: 'ops-011',
87
+ name: 'Rollback Plan Required',
88
+ description: 'Requires rollback plan for production changes',
89
+ type: 'operational',
90
+ enabled: true,
91
+ priority: 900,
92
+ conditions: [
93
+ { field: 'environment', operator: 'equals', value: 'production' },
94
+ { field: 'actionCategory', operator: 'in', value: ['system_config', 'data_modification'] },
95
+ { field: 'rollbackPlanDefined', operator: 'not_equals', value: true }
96
+ ],
97
+ conditionLogic: 'all',
98
+ actions: [
99
+ { type: 'warn', message: 'Production changes should have a rollback plan defined' }
100
+ ],
101
+ riskWeight: 30,
102
+ tags: ['operational', 'rollback', 'safety']
103
+ },
104
+ {
105
+ id: 'ops-012',
106
+ name: 'Feature Flag for New Features',
107
+ description: 'Requires feature flags for new functionality in production',
108
+ type: 'operational',
109
+ enabled: true,
110
+ priority: 780,
111
+ conditions: [
112
+ { field: 'environment', operator: 'equals', value: 'production' },
113
+ { field: 'isNewFeature', operator: 'equals', value: true },
114
+ { field: 'featureFlagEnabled', operator: 'not_equals', value: true }
115
+ ],
116
+ conditionLogic: 'all',
117
+ actions: [
118
+ { type: 'warn', message: 'New features in production should use feature flags' }
119
+ ],
120
+ riskWeight: 20,
121
+ tags: ['operational', 'feature-flags', 'deployment']
122
+ },
123
+ // ============================================================================
124
+ // INCIDENT MANAGEMENT RULES
125
+ // ============================================================================
126
+ {
127
+ id: 'ops-020',
128
+ name: 'Incident Response Escalation',
129
+ description: 'Escalates critical issues for immediate attention',
130
+ type: 'operational',
131
+ enabled: true,
132
+ priority: 980,
133
+ conditions: [
134
+ { field: 'incidentSeverity', operator: 'in', value: ['critical', 'high'] },
135
+ { field: 'environment', operator: 'equals', value: 'production' }
136
+ ],
137
+ conditionLogic: 'all',
138
+ actions: [
139
+ { type: 'escalate', message: 'Critical production incident - immediate escalation required' },
140
+ { type: 'notify', message: 'ALERT: Critical production incident detected' }
141
+ ],
142
+ riskWeight: 50,
143
+ tags: ['operational', 'incident', 'escalation']
144
+ },
145
+ {
146
+ id: 'ops-021',
147
+ name: 'Change Freeze Enforcement',
148
+ description: 'Blocks changes during declared change freeze',
149
+ type: 'operational',
150
+ enabled: true,
151
+ priority: 990,
152
+ conditions: [
153
+ { field: 'changeFreezeActive', operator: 'equals', value: true },
154
+ { field: 'actionCategory', operator: 'in', value: ['system_config', 'data_modification', 'code_execution'] }
155
+ ],
156
+ conditionLogic: 'all',
157
+ actions: [
158
+ { type: 'deny', message: 'Changes blocked during change freeze period' }
159
+ ],
160
+ riskWeight: 60,
161
+ tags: ['operational', 'change-freeze', 'stability']
162
+ },
163
+ // ============================================================================
164
+ // COST CONTROL RULES
165
+ // ============================================================================
166
+ {
167
+ id: 'ops-030',
168
+ name: 'API Cost Threshold',
169
+ description: 'Requires approval for high-cost API operations',
170
+ type: 'operational',
171
+ enabled: true,
172
+ priority: 860,
173
+ conditions: [
174
+ { field: 'actionCategory', operator: 'equals', value: 'external_api' },
175
+ { field: 'estimatedCost', operator: 'greater_than', value: 10 }
176
+ ],
177
+ conditionLogic: 'all',
178
+ actions: [
179
+ { type: 'require_approval', message: 'API call cost exceeds $10 - requires approval' },
180
+ { type: 'log' }
181
+ ],
182
+ riskWeight: 25,
183
+ tags: ['operational', 'cost', 'api']
184
+ },
185
+ {
186
+ id: 'ops-031',
187
+ name: 'Token Usage Limit',
188
+ description: 'Limits AI/LLM token consumption',
189
+ type: 'operational',
190
+ enabled: true,
191
+ priority: 830,
192
+ conditions: [
193
+ { field: 'actionName', operator: 'contains', value: 'llm' },
194
+ { field: 'tokenCount', operator: 'greater_than', value: 100000 }
195
+ ],
196
+ conditionLogic: 'all',
197
+ actions: [
198
+ { type: 'require_approval', message: 'LLM call exceeds 100K tokens - requires approval' }
199
+ ],
200
+ riskWeight: 20,
201
+ tags: ['operational', 'cost', 'llm', 'tokens']
202
+ },
203
+ {
204
+ id: 'ops-032',
205
+ name: 'Daily Budget Enforcement',
206
+ description: 'Enforces daily spending limits',
207
+ type: 'operational',
208
+ enabled: true,
209
+ priority: 870,
210
+ conditions: [
211
+ { field: 'dailySpend', operator: 'greater_than', value: 500 },
212
+ { field: 'budgetOverrideApproved', operator: 'not_equals', value: true }
213
+ ],
214
+ conditionLogic: 'all',
215
+ actions: [
216
+ { type: 'deny', message: 'Daily budget limit ($500) exceeded - operation blocked' }
217
+ ],
218
+ riskWeight: 35,
219
+ tags: ['operational', 'budget', 'cost']
220
+ },
221
+ // ============================================================================
222
+ // MAINTENANCE WINDOW RULES
223
+ // ============================================================================
224
+ {
225
+ id: 'ops-040',
226
+ name: 'Maintenance Window Check',
227
+ description: 'Flags operations during maintenance windows',
228
+ type: 'operational',
229
+ enabled: true,
230
+ priority: 750,
231
+ conditions: [
232
+ { field: 'maintenanceWindowActive', operator: 'equals', value: true }
233
+ ],
234
+ conditionLogic: 'all',
235
+ actions: [
236
+ { type: 'warn', message: 'System is in maintenance window - operations may be affected' }
237
+ ],
238
+ riskWeight: 10,
239
+ tags: ['operational', 'maintenance', 'awareness']
240
+ },
241
+ {
242
+ id: 'ops-041',
243
+ name: 'Backup Verification Required',
244
+ description: 'Requires backup verification before destructive operations',
245
+ type: 'operational',
246
+ enabled: true,
247
+ priority: 890,
248
+ conditions: [
249
+ { field: 'operation', operator: 'in', value: ['delete', 'truncate', 'drop', 'purge'] },
250
+ { field: 'environment', operator: 'equals', value: 'production' },
251
+ { field: 'backupVerified', operator: 'not_equals', value: true }
252
+ ],
253
+ conditionLogic: 'all',
254
+ actions: [
255
+ { type: 'require_approval', message: 'Destructive operation requires backup verification' }
256
+ ],
257
+ riskWeight: 45,
258
+ tags: ['operational', 'backup', 'destructive']
259
+ },
260
+ // ============================================================================
261
+ // AGENT OPERATION LIMITS
262
+ // ============================================================================
263
+ {
264
+ id: 'ops-050',
265
+ name: 'Agent Action Per-Session Limit',
266
+ description: 'Limits total actions an agent can take per session',
267
+ type: 'operational',
268
+ enabled: true,
269
+ priority: 840,
270
+ conditions: [
271
+ { field: 'sessionActionCount', operator: 'greater_than', value: 1000 }
272
+ ],
273
+ conditionLogic: 'all',
274
+ actions: [
275
+ { type: 'warn', message: 'Session action count exceeds 1000 - consider session rotation' }
276
+ ],
277
+ riskWeight: 15,
278
+ tags: ['operational', 'limits', 'session']
279
+ },
280
+ {
281
+ id: 'ops-051',
282
+ name: 'Agent Retry Limit',
283
+ description: 'Limits retry attempts for failed operations',
284
+ type: 'operational',
285
+ enabled: true,
286
+ priority: 820,
287
+ conditions: [
288
+ { field: 'retryCount', operator: 'greater_than', value: 5 }
289
+ ],
290
+ conditionLogic: 'all',
291
+ actions: [
292
+ { type: 'deny', message: 'Maximum retry attempts (5) exceeded - operation blocked' },
293
+ { type: 'escalate', message: 'Operation repeatedly failing - escalation required' }
294
+ ],
295
+ riskWeight: 25,
296
+ tags: ['operational', 'retry', 'limits']
297
+ },
298
+ {
299
+ id: 'ops-052',
300
+ name: 'Agent Loop Detection',
301
+ description: 'Detects and prevents agent operation loops',
302
+ type: 'operational',
303
+ enabled: true,
304
+ priority: 950,
305
+ conditions: [
306
+ { field: 'actionPattern', operator: 'equals', value: 'loop_detected' }
307
+ ],
308
+ conditionLogic: 'all',
309
+ actions: [
310
+ { type: 'deny', message: 'Operational loop detected - breaking cycle' },
311
+ { type: 'notify', message: 'Alert: Agent operation loop detected and broken' }
312
+ ],
313
+ riskWeight: 40,
314
+ tags: ['operational', 'loop', 'safety']
315
+ }
316
+ ];
317
+ export default operationalRules;
318
+ //# sourceMappingURL=operational.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operational.js","sourceRoot":"","sources":["../../src/rules/operational.ts"],"names":[],"mappings":"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"}