@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.
- package/LICENSE +21 -0
- package/README.md +639 -0
- package/dist/analyzers/ArchitectureDetector.d.ts +44 -0
- package/dist/analyzers/ArchitectureDetector.d.ts.map +1 -0
- package/dist/analyzers/ArchitectureDetector.js +218 -0
- package/dist/analyzers/ArchitectureDetector.js.map +1 -0
- package/dist/analyzers/CSSAnalyzer.d.ts +284 -0
- package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/CSSAnalyzer.js +1180 -0
- package/dist/analyzers/CSSAnalyzer.js.map +1 -0
- package/dist/analyzers/index.d.ts +5 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +5 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +174 -0
- package/dist/cli.js.map +1 -0
- package/dist/design-system/index.d.ts +6 -0
- package/dist/design-system/index.d.ts.map +1 -0
- package/dist/design-system/index.js +6 -0
- package/dist/design-system/index.js.map +1 -0
- package/dist/design-system/tokens.d.ts +106 -0
- package/dist/design-system/tokens.d.ts.map +1 -0
- package/dist/design-system/tokens.js +554 -0
- package/dist/design-system/tokens.js.map +1 -0
- package/dist/engine/AuditLogger.d.ts +506 -0
- package/dist/engine/AuditLogger.d.ts.map +1 -0
- package/dist/engine/AuditLogger.js +1491 -0
- package/dist/engine/AuditLogger.js.map +1 -0
- package/dist/engine/GitHubApprovalManager.d.ts +123 -0
- package/dist/engine/GitHubApprovalManager.d.ts.map +1 -0
- package/dist/engine/GitHubApprovalManager.js +347 -0
- package/dist/engine/GitHubApprovalManager.js.map +1 -0
- package/dist/engine/GitHubClient.d.ts +183 -0
- package/dist/engine/GitHubClient.d.ts.map +1 -0
- package/dist/engine/GitHubClient.js +411 -0
- package/dist/engine/GitHubClient.js.map +1 -0
- package/dist/engine/RateLimiter.d.ts +81 -0
- package/dist/engine/RateLimiter.d.ts.map +1 -0
- package/dist/engine/RateLimiter.js +215 -0
- package/dist/engine/RateLimiter.js.map +1 -0
- package/dist/engine/RuleDependencyAnalyzer.d.ts +73 -0
- package/dist/engine/RuleDependencyAnalyzer.d.ts.map +1 -0
- package/dist/engine/RuleDependencyAnalyzer.js +475 -0
- package/dist/engine/RuleDependencyAnalyzer.js.map +1 -0
- package/dist/engine/RulesEngine.d.ts +176 -0
- package/dist/engine/RulesEngine.d.ts.map +1 -0
- package/dist/engine/RulesEngine.js +705 -0
- package/dist/engine/RulesEngine.js.map +1 -0
- package/dist/engine/TaskManager.d.ts +174 -0
- package/dist/engine/TaskManager.d.ts.map +1 -0
- package/dist/engine/TaskManager.js +663 -0
- package/dist/engine/TaskManager.js.map +1 -0
- package/dist/engine/index.d.ts +11 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +13 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/rules/architecture.d.ts +9 -0
- package/dist/rules/architecture.d.ts.map +1 -0
- package/dist/rules/architecture.js +322 -0
- package/dist/rules/architecture.js.map +1 -0
- package/dist/rules/azure.d.ts +7 -0
- package/dist/rules/azure.d.ts.map +1 -0
- package/dist/rules/azure.js +136 -0
- package/dist/rules/azure.js.map +1 -0
- package/dist/rules/compliance.d.ts +9 -0
- package/dist/rules/compliance.d.ts.map +1 -0
- package/dist/rules/compliance.js +286 -0
- package/dist/rules/compliance.js.map +1 -0
- package/dist/rules/condition-optimizer.d.ts +151 -0
- package/dist/rules/condition-optimizer.d.ts.map +1 -0
- package/dist/rules/condition-optimizer.js +479 -0
- package/dist/rules/condition-optimizer.js.map +1 -0
- package/dist/rules/css.d.ts +10 -0
- package/dist/rules/css.d.ts.map +1 -0
- package/dist/rules/css.js +1777 -0
- package/dist/rules/css.js.map +1 -0
- package/dist/rules/field-standards.d.ts +1172 -0
- package/dist/rules/field-standards.d.ts.map +1 -0
- package/dist/rules/field-standards.js +908 -0
- package/dist/rules/field-standards.js.map +1 -0
- package/dist/rules/flask.d.ts +7 -0
- package/dist/rules/flask.d.ts.map +1 -0
- package/dist/rules/flask.js +142 -0
- package/dist/rules/flask.js.map +1 -0
- package/dist/rules/index.d.ts +827 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +556 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/ml-ai.d.ts +7 -0
- package/dist/rules/ml-ai.d.ts.map +1 -0
- package/dist/rules/ml-ai.js +148 -0
- package/dist/rules/ml-ai.js.map +1 -0
- package/dist/rules/operational.d.ts +9 -0
- package/dist/rules/operational.d.ts.map +1 -0
- package/dist/rules/operational.js +318 -0
- package/dist/rules/operational.js.map +1 -0
- package/dist/rules/patterns.d.ts +568 -0
- package/dist/rules/patterns.d.ts.map +1 -0
- package/dist/rules/patterns.js +1359 -0
- package/dist/rules/patterns.js.map +1 -0
- package/dist/rules/security.d.ts +9 -0
- package/dist/rules/security.d.ts.map +1 -0
- package/dist/rules/security.js +848 -0
- package/dist/rules/security.js.map +1 -0
- package/dist/rules/shared-patterns.d.ts +268 -0
- package/dist/rules/shared-patterns.d.ts.map +1 -0
- package/dist/rules/shared-patterns.js +556 -0
- package/dist/rules/shared-patterns.js.map +1 -0
- package/dist/rules/storage.d.ts +13 -0
- package/dist/rules/storage.d.ts.map +1 -0
- package/dist/rules/storage.js +672 -0
- package/dist/rules/storage.js.map +1 -0
- package/dist/rules/stripe.d.ts +7 -0
- package/dist/rules/stripe.d.ts.map +1 -0
- package/dist/rules/stripe.js +133 -0
- package/dist/rules/stripe.js.map +1 -0
- package/dist/rules/testing.d.ts +7 -0
- package/dist/rules/testing.d.ts.map +1 -0
- package/dist/rules/testing.js +135 -0
- package/dist/rules/testing.js.map +1 -0
- package/dist/rules/ux.d.ts +9 -0
- package/dist/rules/ux.d.ts.map +1 -0
- package/dist/rules/ux.js +280 -0
- package/dist/rules/ux.js.map +1 -0
- package/dist/rules/websocket.d.ts +7 -0
- package/dist/rules/websocket.d.ts.map +1 -0
- package/dist/rules/websocket.js +128 -0
- package/dist/rules/websocket.js.map +1 -0
- package/dist/server.d.ts +43 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +1967 -0
- package/dist/server.js.map +1 -0
- package/dist/supervisor/AgentSupervisor.d.ts +195 -0
- package/dist/supervisor/AgentSupervisor.d.ts.map +1 -0
- package/dist/supervisor/AgentSupervisor.js +569 -0
- package/dist/supervisor/AgentSupervisor.js.map +1 -0
- package/dist/supervisor/ManagedServerRegistry.d.ts +185 -0
- package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -0
- package/dist/supervisor/ManagedServerRegistry.js +729 -0
- package/dist/supervisor/ManagedServerRegistry.js.map +1 -0
- package/dist/supervisor/ProjectTracker.d.ts +210 -0
- package/dist/supervisor/ProjectTracker.d.ts.map +1 -0
- package/dist/supervisor/ProjectTracker.js +709 -0
- package/dist/supervisor/ProjectTracker.js.map +1 -0
- package/dist/supervisor/index.d.ts +6 -0
- package/dist/supervisor/index.d.ts.map +1 -0
- package/dist/supervisor/index.js +6 -0
- package/dist/supervisor/index.js.map +1 -0
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +12 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/rule-tester.d.ts +217 -0
- package/dist/testing/rule-tester.d.ts.map +1 -0
- package/dist/testing/rule-tester.examples.d.ts +57 -0
- package/dist/testing/rule-tester.examples.d.ts.map +1 -0
- package/dist/testing/rule-tester.examples.js +375 -0
- package/dist/testing/rule-tester.examples.js.map +1 -0
- package/dist/testing/rule-tester.js +381 -0
- package/dist/testing/rule-tester.js.map +1 -0
- package/dist/testing/rule-validator.d.ts +141 -0
- package/dist/testing/rule-validator.d.ts.map +1 -0
- package/dist/testing/rule-validator.js +640 -0
- package/dist/testing/rule-validator.js.map +1 -0
- package/dist/types/index.d.ts +1282 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +386 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/errors.d.ts +86 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +171 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/rate-limiting.d.ts +268 -0
- package/dist/utils/rate-limiting.d.ts.map +1 -0
- package/dist/utils/rate-limiting.js +403 -0
- package/dist/utils/rate-limiting.js.map +1 -0
- package/dist/utils/shared.d.ts +306 -0
- package/dist/utils/shared.d.ts.map +1 -0
- package/dist/utils/shared.js +464 -0
- package/dist/utils/shared.js.map +1 -0
- package/dist/utils/shell.d.ts +22 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +29 -0
- package/dist/utils/shell.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/rules/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../src/rules/stripe.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,eAAO,MAAM,WAAW,EAAE,YAAY,EA8HrC,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stripe Payment Security Rules
|
|
3
|
+
* Governance rules for Stripe payment processing
|
|
4
|
+
*/
|
|
5
|
+
import { createAuditLoggingRule, createValidationRule } from './shared-patterns.js';
|
|
6
|
+
export const stripeRules = [
|
|
7
|
+
// Webhook Signature Validation - uses shared validation pattern
|
|
8
|
+
createValidationRule({
|
|
9
|
+
id: 'stripe-001',
|
|
10
|
+
name: 'Require Webhook Signature Validation',
|
|
11
|
+
description: 'Stripe webhooks must validate signatures to prevent replay attacks',
|
|
12
|
+
validationType: 'signature',
|
|
13
|
+
scope: {
|
|
14
|
+
actionName: 'webhook',
|
|
15
|
+
provider: 'stripe'
|
|
16
|
+
},
|
|
17
|
+
actionType: 'deny',
|
|
18
|
+
message: 'Stripe webhook signature validation is required (use stripe.webhooks.constructEvent)',
|
|
19
|
+
priority: 980,
|
|
20
|
+
riskWeight: 65,
|
|
21
|
+
tags: ['stripe', 'webhook']
|
|
22
|
+
}),
|
|
23
|
+
{
|
|
24
|
+
id: 'stripe-002',
|
|
25
|
+
name: 'Enforce Idempotency Keys',
|
|
26
|
+
description: 'Payment operations must use idempotency keys',
|
|
27
|
+
type: 'architecture',
|
|
28
|
+
enabled: true,
|
|
29
|
+
priority: 920,
|
|
30
|
+
conditions: [
|
|
31
|
+
{ field: 'actionCategory', operator: 'equals', value: 'financial' },
|
|
32
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' },
|
|
33
|
+
{ field: 'operation', operator: 'in', value: ['charge', 'payment', 'transfer'] },
|
|
34
|
+
{ field: 'idempotencyKey', operator: 'not_exists', value: null }
|
|
35
|
+
],
|
|
36
|
+
conditionLogic: 'all',
|
|
37
|
+
actions: [
|
|
38
|
+
{ type: 'require_approval', message: 'Stripe payment operations should use idempotency keys to prevent duplicate charges' }
|
|
39
|
+
],
|
|
40
|
+
riskWeight: 50,
|
|
41
|
+
tags: ['stripe', 'idempotency', 'payments', 'reliability']
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'stripe-003',
|
|
45
|
+
name: 'Minimize Customer Data Storage',
|
|
46
|
+
description: 'Store minimal customer data, use Stripe Customer objects',
|
|
47
|
+
type: 'compliance',
|
|
48
|
+
enabled: true,
|
|
49
|
+
priority: 900,
|
|
50
|
+
conditions: [
|
|
51
|
+
{ field: 'actionCategory', operator: 'equals', value: 'data_modification' },
|
|
52
|
+
{ field: 'dataType', operator: 'equals', value: 'payment_method' },
|
|
53
|
+
{ field: 'storedLocally', operator: 'equals', value: true }
|
|
54
|
+
],
|
|
55
|
+
conditionLogic: 'all',
|
|
56
|
+
actions: [
|
|
57
|
+
{ type: 'warn', message: 'PCI-DSS: Store customer data in Stripe, not locally (use Customer and PaymentMethod objects)' }
|
|
58
|
+
],
|
|
59
|
+
riskWeight: 45,
|
|
60
|
+
tags: ['stripe', 'pci-dss', 'data-minimization', 'compliance']
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 'stripe-004',
|
|
64
|
+
name: 'Validate Connect Platform Requirements',
|
|
65
|
+
description: 'Stripe Connect platforms must validate account requirements',
|
|
66
|
+
type: 'compliance',
|
|
67
|
+
enabled: true,
|
|
68
|
+
priority: 880,
|
|
69
|
+
conditions: [
|
|
70
|
+
{ field: 'actionName', operator: 'contains', value: 'connect' },
|
|
71
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' },
|
|
72
|
+
{ field: 'accountRequirementsValidated', operator: 'not_equals', value: true }
|
|
73
|
+
],
|
|
74
|
+
conditionLogic: 'all',
|
|
75
|
+
actions: [
|
|
76
|
+
{ type: 'warn', message: 'Stripe Connect: Validate account requirements before accepting payments' }
|
|
77
|
+
],
|
|
78
|
+
riskWeight: 40,
|
|
79
|
+
tags: ['stripe', 'connect', 'compliance', 'validation']
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 'stripe-005',
|
|
83
|
+
name: 'Require SCA for EU Payments',
|
|
84
|
+
description: 'EU payments must use Strong Customer Authentication',
|
|
85
|
+
type: 'compliance',
|
|
86
|
+
enabled: true,
|
|
87
|
+
priority: 950,
|
|
88
|
+
conditions: [
|
|
89
|
+
{ field: 'actionCategory', operator: 'equals', value: 'financial' },
|
|
90
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' },
|
|
91
|
+
{ field: 'customerRegion', operator: 'in', value: ['EU', 'EEA', 'UK'] },
|
|
92
|
+
{ field: 'scaEnabled', operator: 'not_equals', value: true }
|
|
93
|
+
],
|
|
94
|
+
conditionLogic: 'all',
|
|
95
|
+
actions: [
|
|
96
|
+
{ type: 'deny', message: 'EU/EEA payments require SCA (use Payment Intents with automatic payment methods)' }
|
|
97
|
+
],
|
|
98
|
+
riskWeight: 55,
|
|
99
|
+
tags: ['stripe', 'sca', 'psd2', 'compliance', 'eu']
|
|
100
|
+
},
|
|
101
|
+
// Payment Event Logging - uses shared audit pattern
|
|
102
|
+
createAuditLoggingRule({
|
|
103
|
+
id: 'stripe-006',
|
|
104
|
+
name: 'Log All Payment Events',
|
|
105
|
+
description: 'All payment events must be logged for audit',
|
|
106
|
+
categories: ['financial'],
|
|
107
|
+
additionalConditions: [
|
|
108
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' }
|
|
109
|
+
],
|
|
110
|
+
priority: 940,
|
|
111
|
+
riskWeight: 10,
|
|
112
|
+
tags: ['stripe', 'compliance']
|
|
113
|
+
}),
|
|
114
|
+
{
|
|
115
|
+
id: 'stripe-007',
|
|
116
|
+
name: 'Use Latest API Version',
|
|
117
|
+
description: 'Use recent Stripe API version for security and features',
|
|
118
|
+
type: 'security',
|
|
119
|
+
enabled: true,
|
|
120
|
+
priority: 800,
|
|
121
|
+
conditions: [
|
|
122
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' },
|
|
123
|
+
{ field: 'apiVersion', operator: 'less_than', value: '2023-01-01' }
|
|
124
|
+
],
|
|
125
|
+
conditionLogic: 'all',
|
|
126
|
+
actions: [
|
|
127
|
+
{ type: 'warn', message: 'Stripe API version is outdated - update for security fixes and new features' }
|
|
128
|
+
],
|
|
129
|
+
riskWeight: 25,
|
|
130
|
+
tags: ['stripe', 'api-version', 'security', 'maintenance']
|
|
131
|
+
}
|
|
132
|
+
];
|
|
133
|
+
//# sourceMappingURL=stripe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/rules/stripe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/rules/testing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,YAAY,EAAE,YAAY,EAiItC,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Testing & Quality Assurance Rules
|
|
3
|
+
* Governance rules for Playwright and test automation
|
|
4
|
+
*/
|
|
5
|
+
export const testingRules = [
|
|
6
|
+
{
|
|
7
|
+
id: 'test-001',
|
|
8
|
+
name: 'Require Test Isolation',
|
|
9
|
+
description: 'Tests must be isolated with no shared state',
|
|
10
|
+
type: 'architecture',
|
|
11
|
+
enabled: true,
|
|
12
|
+
priority: 900,
|
|
13
|
+
conditions: [
|
|
14
|
+
{ field: 'actionCategory', operator: 'equals', value: 'code_execution' },
|
|
15
|
+
{ field: 'isTest', operator: 'equals', value: true },
|
|
16
|
+
{ field: 'testIsolation', operator: 'not_equals', value: true }
|
|
17
|
+
],
|
|
18
|
+
conditionLogic: 'all',
|
|
19
|
+
actions: [
|
|
20
|
+
{ type: 'warn', message: 'Tests should be isolated (independent setup/teardown, no shared state)' }
|
|
21
|
+
],
|
|
22
|
+
riskWeight: 35,
|
|
23
|
+
tags: ['testing', 'playwright', 'isolation', 'quality']
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'test-002',
|
|
27
|
+
name: 'Limit Test Execution Time',
|
|
28
|
+
description: 'Flag slow tests for optimization',
|
|
29
|
+
type: 'operational',
|
|
30
|
+
enabled: true,
|
|
31
|
+
priority: 750,
|
|
32
|
+
conditions: [
|
|
33
|
+
{ field: 'isTest', operator: 'equals', value: true },
|
|
34
|
+
{ field: 'executionTimeMs', operator: 'greater_than', value: 30000 }
|
|
35
|
+
],
|
|
36
|
+
conditionLogic: 'all',
|
|
37
|
+
actions: [
|
|
38
|
+
{ type: 'warn', message: 'Test execution >30s - consider optimization or splitting into smaller tests' }
|
|
39
|
+
],
|
|
40
|
+
riskWeight: 20,
|
|
41
|
+
tags: ['testing', 'performance', 'optimization']
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'test-003',
|
|
45
|
+
name: 'Require Test Data Cleanup',
|
|
46
|
+
description: 'Tests must clean up created data/artifacts',
|
|
47
|
+
type: 'operational',
|
|
48
|
+
enabled: true,
|
|
49
|
+
priority: 850,
|
|
50
|
+
conditions: [
|
|
51
|
+
{ field: 'isTest', operator: 'equals', value: true },
|
|
52
|
+
{ field: 'hasCleanup', operator: 'not_equals', value: true }
|
|
53
|
+
],
|
|
54
|
+
conditionLogic: 'all',
|
|
55
|
+
actions: [
|
|
56
|
+
{ type: 'warn', message: 'Tests should cleanup data/artifacts in afterEach/afterAll hooks' }
|
|
57
|
+
],
|
|
58
|
+
riskWeight: 25,
|
|
59
|
+
tags: ['testing', 'cleanup', 'maintenance']
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'test-004',
|
|
63
|
+
name: 'Enforce Deterministic Test Patterns',
|
|
64
|
+
description: 'Avoid random waits and non-deterministic patterns',
|
|
65
|
+
type: 'architecture',
|
|
66
|
+
enabled: true,
|
|
67
|
+
priority: 880,
|
|
68
|
+
conditions: [
|
|
69
|
+
{ field: 'isTest', operator: 'equals', value: true },
|
|
70
|
+
{ field: 'usesRandomWait', operator: 'equals', value: true }
|
|
71
|
+
],
|
|
72
|
+
conditionLogic: 'all',
|
|
73
|
+
actions: [
|
|
74
|
+
{ type: 'warn', message: 'Avoid random waits in tests - use waitForSelector, waitForLoadState, etc.' }
|
|
75
|
+
],
|
|
76
|
+
riskWeight: 30,
|
|
77
|
+
tags: ['testing', 'playwright', 'determinism', 'flakiness']
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: 'test-005',
|
|
81
|
+
name: 'Screenshot Storage Limits',
|
|
82
|
+
description: 'Limit screenshot retention to prevent disk usage',
|
|
83
|
+
type: 'operational',
|
|
84
|
+
enabled: true,
|
|
85
|
+
priority: 700,
|
|
86
|
+
conditions: [
|
|
87
|
+
{ field: 'actionName', operator: 'contains', value: 'screenshot' },
|
|
88
|
+
{ field: 'screenshotRetentionDays', operator: 'greater_than', value: 7 }
|
|
89
|
+
],
|
|
90
|
+
conditionLogic: 'all',
|
|
91
|
+
actions: [
|
|
92
|
+
{ type: 'warn', message: 'Screenshot retention >7 days may consume excessive storage' }
|
|
93
|
+
],
|
|
94
|
+
riskWeight: 15,
|
|
95
|
+
tags: ['testing', 'storage', 'cleanup', 'playwright']
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: 'test-006',
|
|
99
|
+
name: 'Parallel Test Safety',
|
|
100
|
+
description: 'Tests run in parallel must not conflict',
|
|
101
|
+
type: 'architecture',
|
|
102
|
+
enabled: true,
|
|
103
|
+
priority: 860,
|
|
104
|
+
conditions: [
|
|
105
|
+
{ field: 'isTest', operator: 'equals', value: true },
|
|
106
|
+
{ field: 'runsInParallel', operator: 'equals', value: true },
|
|
107
|
+
{ field: 'parallelSafe', operator: 'not_equals', value: true }
|
|
108
|
+
],
|
|
109
|
+
conditionLogic: 'all',
|
|
110
|
+
actions: [
|
|
111
|
+
{ type: 'warn', message: 'Parallel tests must not share resources (unique test data, ports, files)' }
|
|
112
|
+
],
|
|
113
|
+
riskWeight: 30,
|
|
114
|
+
tags: ['testing', 'parallel', 'concurrency', 'playwright']
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: 'test-007',
|
|
118
|
+
name: 'E2E Test Environment Isolation',
|
|
119
|
+
description: 'E2E tests should run against isolated test environment',
|
|
120
|
+
type: 'operational',
|
|
121
|
+
enabled: true,
|
|
122
|
+
priority: 920,
|
|
123
|
+
conditions: [
|
|
124
|
+
{ field: 'testType', operator: 'equals', value: 'e2e' },
|
|
125
|
+
{ field: 'environment', operator: 'equals', value: 'production' }
|
|
126
|
+
],
|
|
127
|
+
conditionLogic: 'all',
|
|
128
|
+
actions: [
|
|
129
|
+
{ type: 'deny', message: 'E2E tests must not run against production environment' }
|
|
130
|
+
],
|
|
131
|
+
riskWeight: 50,
|
|
132
|
+
tags: ['testing', 'e2e', 'environment', 'safety']
|
|
133
|
+
}
|
|
134
|
+
];
|
|
135
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/rules/testing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enterprise Agent Supervisor - UX Rules
|
|
3
|
+
*
|
|
4
|
+
* Built-in rules for ensuring good user experience and interaction patterns.
|
|
5
|
+
*/
|
|
6
|
+
import type { BusinessRule } from '../types/index.js';
|
|
7
|
+
export declare const uxRules: BusinessRule[];
|
|
8
|
+
export default uxRules;
|
|
9
|
+
//# sourceMappingURL=ux.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ux.d.ts","sourceRoot":"","sources":["../../src/rules/ux.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,OAAO,EAAE,YAAY,EAoRjC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
package/dist/rules/ux.js
ADDED
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enterprise Agent Supervisor - UX Rules
|
|
3
|
+
*
|
|
4
|
+
* Built-in rules for ensuring good user experience and interaction patterns.
|
|
5
|
+
*/
|
|
6
|
+
export const uxRules = [
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// USER COMMUNICATION RULES
|
|
9
|
+
// ============================================================================
|
|
10
|
+
{
|
|
11
|
+
id: 'ux-001',
|
|
12
|
+
name: 'Response Length Limit',
|
|
13
|
+
description: 'Prevents excessively long responses that overwhelm users',
|
|
14
|
+
type: 'ux',
|
|
15
|
+
enabled: true,
|
|
16
|
+
priority: 700,
|
|
17
|
+
conditions: [
|
|
18
|
+
{ field: 'actionCategory', operator: 'equals', value: 'user_communication' },
|
|
19
|
+
{ field: 'responseLength', operator: 'greater_than', value: 10000 }
|
|
20
|
+
],
|
|
21
|
+
conditionLogic: 'all',
|
|
22
|
+
actions: [
|
|
23
|
+
{ type: 'warn', message: 'UX: Response exceeds 10,000 characters - consider summarizing' }
|
|
24
|
+
],
|
|
25
|
+
riskWeight: 10,
|
|
26
|
+
tags: ['ux', 'response-length']
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: 'ux-002',
|
|
30
|
+
name: 'Jargon Detection',
|
|
31
|
+
description: 'Warns when technical jargon may confuse non-technical users',
|
|
32
|
+
type: 'ux',
|
|
33
|
+
enabled: true,
|
|
34
|
+
priority: 650,
|
|
35
|
+
conditions: [
|
|
36
|
+
{ field: 'actionCategory', operator: 'equals', value: 'user_communication' },
|
|
37
|
+
{ field: 'userType', operator: 'equals', value: 'non_technical' },
|
|
38
|
+
{ field: 'technicalTermCount', operator: 'greater_than', value: 5 }
|
|
39
|
+
],
|
|
40
|
+
conditionLogic: 'all',
|
|
41
|
+
actions: [
|
|
42
|
+
{ type: 'warn', message: 'UX: High technical term count for non-technical user - consider simplifying' }
|
|
43
|
+
],
|
|
44
|
+
riskWeight: 8,
|
|
45
|
+
tags: ['ux', 'accessibility', 'clarity']
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: 'ux-003',
|
|
49
|
+
name: 'Error Message Clarity',
|
|
50
|
+
description: 'Ensures error messages are user-friendly',
|
|
51
|
+
type: 'ux',
|
|
52
|
+
enabled: true,
|
|
53
|
+
priority: 720,
|
|
54
|
+
conditions: [
|
|
55
|
+
{ field: 'actionName', operator: 'contains', value: 'error' },
|
|
56
|
+
{ field: 'includesRecoverySteps', operator: 'not_equals', value: true }
|
|
57
|
+
],
|
|
58
|
+
conditionLogic: 'all',
|
|
59
|
+
actions: [
|
|
60
|
+
{ type: 'warn', message: 'UX: Error messages should include recovery steps for users' }
|
|
61
|
+
],
|
|
62
|
+
riskWeight: 12,
|
|
63
|
+
tags: ['ux', 'error-handling']
|
|
64
|
+
},
|
|
65
|
+
// ============================================================================
|
|
66
|
+
// INTERACTION PATTERN RULES
|
|
67
|
+
// ============================================================================
|
|
68
|
+
{
|
|
69
|
+
id: 'ux-010',
|
|
70
|
+
name: 'Confirmation for Destructive Actions',
|
|
71
|
+
description: 'Requires confirmation before destructive operations',
|
|
72
|
+
type: 'ux',
|
|
73
|
+
enabled: true,
|
|
74
|
+
priority: 850,
|
|
75
|
+
conditions: [
|
|
76
|
+
{ field: 'operation', operator: 'in', value: ['delete', 'remove', 'purge', 'destroy'] },
|
|
77
|
+
{ field: 'confirmationRequired', operator: 'not_equals', value: true }
|
|
78
|
+
],
|
|
79
|
+
conditionLogic: 'all',
|
|
80
|
+
actions: [
|
|
81
|
+
{ type: 'require_approval', message: 'UX: Destructive actions require user confirmation' }
|
|
82
|
+
],
|
|
83
|
+
riskWeight: 25,
|
|
84
|
+
tags: ['ux', 'confirmation', 'destructive']
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: 'ux-011',
|
|
88
|
+
name: 'Progress Feedback for Long Operations',
|
|
89
|
+
description: 'Ensures long operations provide progress feedback',
|
|
90
|
+
type: 'ux',
|
|
91
|
+
enabled: true,
|
|
92
|
+
priority: 680,
|
|
93
|
+
conditions: [
|
|
94
|
+
{ field: 'estimatedDurationMs', operator: 'greater_than', value: 5000 },
|
|
95
|
+
{ field: 'progressCallbackEnabled', operator: 'not_equals', value: true }
|
|
96
|
+
],
|
|
97
|
+
conditionLogic: 'all',
|
|
98
|
+
actions: [
|
|
99
|
+
{ type: 'warn', message: 'UX: Long operations (>5s) should provide progress feedback' }
|
|
100
|
+
],
|
|
101
|
+
riskWeight: 8,
|
|
102
|
+
tags: ['ux', 'progress', 'feedback']
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: 'ux-012',
|
|
106
|
+
name: 'Undo Support for Modifications',
|
|
107
|
+
description: 'Recommends undo capability for user modifications',
|
|
108
|
+
type: 'ux',
|
|
109
|
+
enabled: true,
|
|
110
|
+
priority: 660,
|
|
111
|
+
conditions: [
|
|
112
|
+
{ field: 'actionCategory', operator: 'equals', value: 'data_modification' },
|
|
113
|
+
{ field: 'undoSupported', operator: 'not_equals', value: true },
|
|
114
|
+
{ field: 'userInitiated', operator: 'equals', value: true }
|
|
115
|
+
],
|
|
116
|
+
conditionLogic: 'all',
|
|
117
|
+
actions: [
|
|
118
|
+
{ type: 'warn', message: 'UX: User-initiated modifications should support undo' }
|
|
119
|
+
],
|
|
120
|
+
riskWeight: 10,
|
|
121
|
+
tags: ['ux', 'undo', 'reversibility']
|
|
122
|
+
},
|
|
123
|
+
// ============================================================================
|
|
124
|
+
// RATE AND FREQUENCY RULES
|
|
125
|
+
// ============================================================================
|
|
126
|
+
{
|
|
127
|
+
id: 'ux-020',
|
|
128
|
+
name: 'Notification Frequency Limit',
|
|
129
|
+
description: 'Prevents notification fatigue',
|
|
130
|
+
type: 'ux',
|
|
131
|
+
enabled: true,
|
|
132
|
+
priority: 750,
|
|
133
|
+
conditions: [
|
|
134
|
+
{ field: 'actionName', operator: 'contains', value: 'notify' },
|
|
135
|
+
{ field: 'notificationsLastHour', operator: 'greater_than', value: 10 }
|
|
136
|
+
],
|
|
137
|
+
conditionLogic: 'all',
|
|
138
|
+
actions: [
|
|
139
|
+
{ type: 'rate_limit', message: 'UX: Notification frequency exceeds limit - batching recommended' }
|
|
140
|
+
],
|
|
141
|
+
riskWeight: 15,
|
|
142
|
+
tags: ['ux', 'notifications', 'rate-limit']
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
id: 'ux-021',
|
|
146
|
+
name: 'Prompt Frequency Control',
|
|
147
|
+
description: 'Limits how often users are interrupted with prompts',
|
|
148
|
+
type: 'ux',
|
|
149
|
+
enabled: true,
|
|
150
|
+
priority: 730,
|
|
151
|
+
conditions: [
|
|
152
|
+
{ field: 'actionName', operator: 'contains', value: 'prompt' },
|
|
153
|
+
{ field: 'promptsLastMinute', operator: 'greater_than', value: 3 }
|
|
154
|
+
],
|
|
155
|
+
conditionLogic: 'all',
|
|
156
|
+
actions: [
|
|
157
|
+
{ type: 'warn', message: 'UX: Too many prompts - consider consolidating interactions' }
|
|
158
|
+
],
|
|
159
|
+
riskWeight: 12,
|
|
160
|
+
tags: ['ux', 'prompts', 'interruption']
|
|
161
|
+
},
|
|
162
|
+
// ============================================================================
|
|
163
|
+
// ACCESSIBILITY RULES
|
|
164
|
+
// ============================================================================
|
|
165
|
+
{
|
|
166
|
+
id: 'ux-030',
|
|
167
|
+
name: 'Alt Text for Images',
|
|
168
|
+
description: 'Ensures images have accessibility text',
|
|
169
|
+
type: 'ux',
|
|
170
|
+
enabled: true,
|
|
171
|
+
priority: 780,
|
|
172
|
+
conditions: [
|
|
173
|
+
{ field: 'contentType', operator: 'contains', value: 'image' },
|
|
174
|
+
{ field: 'altText', operator: 'not_exists', value: null }
|
|
175
|
+
],
|
|
176
|
+
conditionLogic: 'all',
|
|
177
|
+
actions: [
|
|
178
|
+
{ type: 'warn', message: 'UX: Images should include alt text for accessibility' }
|
|
179
|
+
],
|
|
180
|
+
riskWeight: 10,
|
|
181
|
+
tags: ['ux', 'accessibility', 'wcag']
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
id: 'ux-031',
|
|
185
|
+
name: 'Color Contrast Check',
|
|
186
|
+
description: 'Warns about potential color contrast issues',
|
|
187
|
+
type: 'ux',
|
|
188
|
+
enabled: true,
|
|
189
|
+
priority: 760,
|
|
190
|
+
conditions: [
|
|
191
|
+
{ field: 'actionCategory', operator: 'equals', value: 'user_communication' },
|
|
192
|
+
{ field: 'hasColorContent', operator: 'equals', value: true },
|
|
193
|
+
{ field: 'contrastRatioMet', operator: 'not_equals', value: true }
|
|
194
|
+
],
|
|
195
|
+
conditionLogic: 'all',
|
|
196
|
+
actions: [
|
|
197
|
+
{ type: 'warn', message: 'UX: Color content may not meet WCAG contrast requirements' }
|
|
198
|
+
],
|
|
199
|
+
riskWeight: 8,
|
|
200
|
+
tags: ['ux', 'accessibility', 'wcag', 'contrast']
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
id: 'ux-032',
|
|
204
|
+
name: 'Keyboard Navigation Support',
|
|
205
|
+
description: 'Ensures interactive elements support keyboard navigation',
|
|
206
|
+
type: 'ux',
|
|
207
|
+
enabled: true,
|
|
208
|
+
priority: 770,
|
|
209
|
+
conditions: [
|
|
210
|
+
{ field: 'actionName', operator: 'contains', value: 'interactive' },
|
|
211
|
+
{ field: 'keyboardAccessible', operator: 'not_equals', value: true }
|
|
212
|
+
],
|
|
213
|
+
conditionLogic: 'all',
|
|
214
|
+
actions: [
|
|
215
|
+
{ type: 'warn', message: 'UX: Interactive elements should support keyboard navigation' }
|
|
216
|
+
],
|
|
217
|
+
riskWeight: 12,
|
|
218
|
+
tags: ['ux', 'accessibility', 'keyboard']
|
|
219
|
+
},
|
|
220
|
+
// ============================================================================
|
|
221
|
+
// CONTENT QUALITY RULES
|
|
222
|
+
// ============================================================================
|
|
223
|
+
{
|
|
224
|
+
id: 'ux-040',
|
|
225
|
+
name: 'Empty State Handling',
|
|
226
|
+
description: 'Ensures empty states have helpful content',
|
|
227
|
+
type: 'ux',
|
|
228
|
+
enabled: true,
|
|
229
|
+
priority: 690,
|
|
230
|
+
conditions: [
|
|
231
|
+
{ field: 'actionName', operator: 'contains', value: 'display' },
|
|
232
|
+
{ field: 'resultCount', operator: 'equals', value: 0 },
|
|
233
|
+
{ field: 'emptyStateMessage', operator: 'not_exists', value: null }
|
|
234
|
+
],
|
|
235
|
+
conditionLogic: 'all',
|
|
236
|
+
actions: [
|
|
237
|
+
{ type: 'warn', message: 'UX: Empty states should include helpful guidance for users' }
|
|
238
|
+
],
|
|
239
|
+
riskWeight: 6,
|
|
240
|
+
tags: ['ux', 'empty-state', 'guidance']
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
id: 'ux-041',
|
|
244
|
+
name: 'Loading State Communication',
|
|
245
|
+
description: 'Ensures async operations communicate loading state',
|
|
246
|
+
type: 'ux',
|
|
247
|
+
enabled: true,
|
|
248
|
+
priority: 700,
|
|
249
|
+
conditions: [
|
|
250
|
+
{ field: 'isAsync', operator: 'equals', value: true },
|
|
251
|
+
{ field: 'loadingIndicatorEnabled', operator: 'not_equals', value: true }
|
|
252
|
+
],
|
|
253
|
+
conditionLogic: 'all',
|
|
254
|
+
actions: [
|
|
255
|
+
{ type: 'warn', message: 'UX: Async operations should display loading state to users' }
|
|
256
|
+
],
|
|
257
|
+
riskWeight: 8,
|
|
258
|
+
tags: ['ux', 'loading', 'feedback']
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
id: 'ux-042',
|
|
262
|
+
name: 'Timeout Communication',
|
|
263
|
+
description: 'Ensures timeouts are communicated clearly to users',
|
|
264
|
+
type: 'ux',
|
|
265
|
+
enabled: true,
|
|
266
|
+
priority: 710,
|
|
267
|
+
conditions: [
|
|
268
|
+
{ field: 'hasTimeout', operator: 'equals', value: true },
|
|
269
|
+
{ field: 'timeoutWarningEnabled', operator: 'not_equals', value: true }
|
|
270
|
+
],
|
|
271
|
+
conditionLogic: 'all',
|
|
272
|
+
actions: [
|
|
273
|
+
{ type: 'warn', message: 'UX: Sessions with timeouts should warn users before expiry' }
|
|
274
|
+
],
|
|
275
|
+
riskWeight: 10,
|
|
276
|
+
tags: ['ux', 'timeout', 'session']
|
|
277
|
+
}
|
|
278
|
+
];
|
|
279
|
+
export default uxRules;
|
|
280
|
+
//# sourceMappingURL=ux.js.map
|