@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,218 @@
1
+ /**
2
+ * Architecture Change Detector
3
+ *
4
+ * Detects when agent actions represent architectural changes that should
5
+ * be documented in the project's CLAUDE.md file.
6
+ */
7
+ import path from 'path';
8
+ export class ArchitectureDetector {
9
+ /**
10
+ * Detect if an action represents an architectural change
11
+ */
12
+ static detectChanges(action, _context) {
13
+ // Only process file-related actions
14
+ if (!this.isFileAction(action)) {
15
+ return null;
16
+ }
17
+ const filePath = this.extractFilePath(action);
18
+ if (!filePath) {
19
+ return null;
20
+ }
21
+ // Skip non-architectural files
22
+ if (this.shouldSkipFile(filePath)) {
23
+ return null;
24
+ }
25
+ // Detect the type of architectural change
26
+ const componentType = this.detectComponentType(filePath);
27
+ if (!componentType) {
28
+ return null;
29
+ }
30
+ // Generate documentation suggestion
31
+ return this.generateDocumentation(filePath, componentType, action);
32
+ }
33
+ /**
34
+ * Check if action is file-related
35
+ */
36
+ static isFileAction(action) {
37
+ const fileActions = [
38
+ 'write_file',
39
+ 'create_file',
40
+ 'edit_file',
41
+ 'modify_file',
42
+ 'file_system'
43
+ ];
44
+ return (fileActions.some(a => action.name.toLowerCase().includes(a)) ||
45
+ action.category === 'file_system');
46
+ }
47
+ /**
48
+ * Extract file path from action parameters
49
+ */
50
+ static extractFilePath(action) {
51
+ const params = action.parameters || {};
52
+ // Try common parameter names
53
+ const pathKeys = ['filePath', 'file_path', 'path', 'file', 'target'];
54
+ for (const key of pathKeys) {
55
+ if (params[key] && typeof params[key] === 'string') {
56
+ return params[key];
57
+ }
58
+ }
59
+ return null;
60
+ }
61
+ /**
62
+ * Check if file should be skipped (not architectural)
63
+ */
64
+ static shouldSkipFile(filePath) {
65
+ const skipPatterns = [
66
+ /\.test\.(ts|js|py)$/, // Test files
67
+ /\.spec\.(ts|js|py)$/, // Spec files
68
+ /\.md$/, // Documentation (except CLAUDE.md)
69
+ /node_modules\//, // Dependencies
70
+ /\.git\//, // Git files
71
+ /dist\//, // Build output
72
+ /build\//, // Build output
73
+ /\.env/, // Environment files
74
+ /package-lock\.json$/, // Lock files
75
+ /yarn\.lock$/, // Lock files
76
+ /\.gitignore$/, // Config files
77
+ /\.eslintrc/, // Config files
78
+ /tsconfig\.json$/, // Config files
79
+ /\.prettierrc/, // Config files
80
+ /README\.md$/, // READMEs
81
+ /LICENSE$/, // License files
82
+ /\.(png|jpg|jpeg|gif|svg|ico)$/ // Images
83
+ ];
84
+ return skipPatterns.some(pattern => pattern.test(filePath));
85
+ }
86
+ /**
87
+ * Detect the type of component being added/modified
88
+ */
89
+ static detectComponentType(filePath) {
90
+ const normalized = filePath.toLowerCase();
91
+ // Check directory structure
92
+ if (normalized.includes('/src/services/') || normalized.includes('/services/')) {
93
+ return 'service';
94
+ }
95
+ if (normalized.includes('/src/components/') || normalized.includes('/components/')) {
96
+ return 'component';
97
+ }
98
+ if (normalized.includes('/src/api/') || normalized.includes('/api/') ||
99
+ normalized.includes('/routes/') || normalized.includes('/blueprints/')) {
100
+ return 'api';
101
+ }
102
+ if (normalized.includes('/src/models/') || normalized.includes('/models/') ||
103
+ normalized.includes('/schemas/')) {
104
+ return 'model';
105
+ }
106
+ if (normalized.includes('/src/utils/') || normalized.includes('/utils/') ||
107
+ normalized.includes('/helpers/')) {
108
+ return 'utility';
109
+ }
110
+ if (normalized.includes('/src/middleware/') || normalized.includes('/middleware/')) {
111
+ return 'middleware';
112
+ }
113
+ if (normalized.includes('/src/config/') || normalized.includes('/config/')) {
114
+ return 'configuration';
115
+ }
116
+ if (normalized.includes('/src/integrations/') || normalized.includes('/integrations/')) {
117
+ return 'integration';
118
+ }
119
+ if (normalized.includes('/src/engine/') || normalized.includes('/engine/')) {
120
+ return 'engine';
121
+ }
122
+ if (normalized.includes('/src/analyzers/') || normalized.includes('/analyzers/')) {
123
+ return 'analyzer';
124
+ }
125
+ if (normalized.includes('/src/dashboard/') || normalized.includes('/dashboard/')) {
126
+ return 'dashboard';
127
+ }
128
+ // Check for package.json (dependency change)
129
+ if (normalized.endsWith('package.json')) {
130
+ return 'dependency';
131
+ }
132
+ // Check for specific file patterns
133
+ if (normalized.endsWith('server.ts') || normalized.endsWith('server.js') ||
134
+ normalized.endsWith('app.ts') || normalized.endsWith('app.js')) {
135
+ return 'main';
136
+ }
137
+ return null;
138
+ }
139
+ /**
140
+ * Generate documentation suggestion
141
+ */
142
+ static generateDocumentation(filePath, componentType, _action) {
143
+ const fileName = path.basename(filePath, path.extname(filePath));
144
+ const componentName = this.formatComponentName(fileName);
145
+ const templates = {
146
+ service: {
147
+ section: 'Services',
148
+ template: (name) => `### ${name}\n\nBrief description of what this service does.\n\n**Purpose**: Core functionality provided by this service\n\n**Key Features**:\n- Feature 1\n- Feature 2\n\n**Dependencies**: List any external services or APIs used`
149
+ },
150
+ component: {
151
+ section: 'Components',
152
+ template: (name) => `### ${name}\n\nDescription of this component's role.\n\n**Props/Interface**:\n- Prop 1: Description\n- Prop 2: Description\n\n**Usage Example**:\n\`\`\`typescript\n// Usage example here\n\`\`\``
153
+ },
154
+ api: {
155
+ section: 'API Endpoints',
156
+ template: (name) => `### ${name} Endpoints\n\n**Routes**:\n- \`GET /api/${name.toLowerCase()}\` - Description\n- \`POST /api/${name.toLowerCase()}\` - Description\n\n**Authentication**: Required/Optional\n\n**Request/Response Format**:\n\`\`\`json\n{\n "example": "data"\n}\n\`\`\``
157
+ },
158
+ model: {
159
+ section: 'Data Models',
160
+ template: (name) => `### ${name}\n\n**Schema**:\n\`\`\`typescript\ninterface ${name} {\n // Define schema here\n}\n\`\`\`\n\n**Relationships**: Related models or tables\n\n**Validation**: Key validation rules`
161
+ },
162
+ utility: {
163
+ section: 'Utilities',
164
+ template: (name) => `### ${name}\n\n**Purpose**: What this utility provides\n\n**Key Functions**:\n- \`function1()\` - Description\n- \`function2()\` - Description\n\n**Usage**: Common use cases`
165
+ },
166
+ middleware: {
167
+ section: 'Middleware',
168
+ template: (name) => `### ${name}\n\n**Purpose**: What this middleware does\n\n**Applied To**: Which routes/endpoints\n\n**Configuration**: Any configuration options`
169
+ },
170
+ integration: {
171
+ section: 'Integrations',
172
+ template: (name) => `### ${name}\n\n**External Service**: Name and purpose\n\n**API Version**: Version of external API\n\n**Configuration**:\n- API Key: How to configure\n- Endpoints: List of used endpoints\n\n**Error Handling**: How failures are handled`
173
+ },
174
+ engine: {
175
+ section: 'Core Engine',
176
+ template: (name) => `### ${name}\n\n**Purpose**: Core engine component responsibility\n\n**Key Methods**:\n- Method 1: Description\n- Method 2: Description\n\n**Integration**: How it integrates with other components`
177
+ },
178
+ analyzer: {
179
+ section: 'Analyzers',
180
+ template: (name) => `### ${name}\n\n**Analyzes**: What this analyzer evaluates\n\n**Returns**: Analysis result format\n\n**Usage**: When and how to use this analyzer`
181
+ },
182
+ dashboard: {
183
+ section: 'Dashboard',
184
+ template: (name) => `### ${name}\n\n**Feature**: Dashboard feature provided\n\n**API Endpoints**: Related endpoints\n\n**UI Components**: User interface elements`
185
+ },
186
+ dependency: {
187
+ section: 'Dependencies',
188
+ template: () => `### New Dependency Added\n\nA new dependency was added to package.json.\n\n**Review Required**: Check package.json for the new dependency and document its purpose here.`
189
+ },
190
+ main: {
191
+ section: 'Core Application',
192
+ template: (name) => `### ${name}\n\n**Purpose**: Main application entry point changes\n\n**Configuration**: New configuration options\n\n**Startup**: Changes to startup sequence`
193
+ }
194
+ };
195
+ const template = templates[componentType] || templates.utility;
196
+ const suggestedContent = template.template(componentName);
197
+ return {
198
+ needed: true,
199
+ reason: `New ${componentType} detected at ${filePath}`,
200
+ suggestedContent,
201
+ section: template.section
202
+ };
203
+ }
204
+ /**
205
+ * Format component name for documentation
206
+ */
207
+ static formatComponentName(fileName) {
208
+ // Convert PascalCase/camelCase to Title Case
209
+ return fileName
210
+ .replace(/([A-Z])/g, ' $1') // Add space before capitals
211
+ .replace(/[-_]/g, ' ') // Replace dashes and underscores with spaces
212
+ .trim() // Remove leading/trailing spaces
213
+ .split(' ') // Split into words
214
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
215
+ .join(' ');
216
+ }
217
+ }
218
+ //# sourceMappingURL=ArchitectureDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchitectureDetector.js","sourceRoot":"","sources":["../../src/analyzers/ArchitectureDetector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Enterprise Agent Supervisor - CSS Analyzer
3
+ *
4
+ * Analyzes CSS rules for optimization, deduplication, and best practices.
5
+ *
6
+ * Task #44: Extensible pattern catalog system
7
+ * Task #51: Optimized similarity calculation with hashing/indexing
8
+ * Task #52: Comprehensive logging and metrics tracking
9
+ */
10
+ export interface CSSRule {
11
+ selector: string;
12
+ properties: Record<string, string>;
13
+ source: 'inline' | 'style_tag' | 'external' | 'unknown';
14
+ file?: string;
15
+ line?: number;
16
+ specificity?: number;
17
+ }
18
+ export interface CSSAnalysisContext {
19
+ newRule: CSSRule;
20
+ existingRules?: CSSRule[];
21
+ projectType?: 'spa' | 'mpa' | 'component_library' | 'website';
22
+ framework?: 'react' | 'vue' | 'angular' | 'svelte' | 'vanilla' | 'other';
23
+ hasStyleSystem?: boolean;
24
+ styleSystemName?: string;
25
+ globalStylesFile?: string;
26
+ componentName?: string;
27
+ }
28
+ export interface CSSSuggestion {
29
+ type: 'use_existing' | 'make_global' | 'externalize' | 'remove_unused' | 'consolidate' | 'use_variable' | 'use_utility' | 'specificity_warning' | 'naming_convention';
30
+ severity: 'error' | 'warning' | 'info' | 'suggestion';
31
+ message: string;
32
+ details?: string;
33
+ existingRule?: CSSRule;
34
+ suggestedAction?: string;
35
+ codeExample?: string;
36
+ }
37
+ export interface CSSAnalysisResult {
38
+ ruleId: string;
39
+ newRule: CSSRule;
40
+ shouldExternalize: boolean;
41
+ shouldMakeGlobal: boolean;
42
+ duplicates: CSSRule[];
43
+ suggestions: CSSSuggestion[];
44
+ removableCandidates: CSSRule[];
45
+ riskScore: number;
46
+ summary: string;
47
+ metrics?: CSSAnalysisMetrics;
48
+ }
49
+ export interface CSSAnalysisMetrics {
50
+ rulesAnalyzed: number;
51
+ duplicatesFound: number;
52
+ suggestionsMade: number;
53
+ suggestionsByType: Record<string, number>;
54
+ suggestionsBySeverity: Record<string, number>;
55
+ timingMs: {
56
+ total: number;
57
+ duplicateCheck: number;
58
+ externalizeCheck: number;
59
+ globalCheck: number;
60
+ variableCheck: number;
61
+ utilityCheck: number;
62
+ specificityCheck: number;
63
+ namingCheck: number;
64
+ removableCheck: number;
65
+ };
66
+ cacheHits: number;
67
+ cacheMisses: number;
68
+ }
69
+ export interface CSSAnalyzerLogger {
70
+ debug: (message: string, data?: Record<string, unknown>) => void;
71
+ info: (message: string, data?: Record<string, unknown>) => void;
72
+ warn: (message: string, data?: Record<string, unknown>) => void;
73
+ error: (message: string, data?: Record<string, unknown>) => void;
74
+ }
75
+ export declare const consoleLogger: CSSAnalyzerLogger;
76
+ export interface CSSVariablePattern {
77
+ id: string;
78
+ pattern: RegExp;
79
+ type: 'color' | 'spacing' | 'font-size' | 'font-weight' | 'duration' | 'easing' | 'custom';
80
+ varPrefix: string;
81
+ minValue?: number;
82
+ maxValue?: number;
83
+ description?: string;
84
+ enabled: boolean;
85
+ }
86
+ export interface CSSGlobalPattern {
87
+ id: string;
88
+ properties: string[];
89
+ minMatches: number;
90
+ description?: string;
91
+ enabled: boolean;
92
+ }
93
+ export interface CSSReusablePattern {
94
+ id: string;
95
+ name: string;
96
+ requiredProperties: string[];
97
+ optionalProperties?: string[];
98
+ description?: string;
99
+ enabled: boolean;
100
+ }
101
+ export interface CSSUtilityMapping {
102
+ property: string;
103
+ valueMapper: (value: string) => string | null;
104
+ enabled: boolean;
105
+ }
106
+ export interface CSSPatternCatalog {
107
+ variablePatterns: CSSVariablePattern[];
108
+ globalPatterns: CSSGlobalPattern[];
109
+ reusablePatterns: CSSReusablePattern[];
110
+ utilityMappings: CSSUtilityMapping[];
111
+ }
112
+ export interface CSSAnalyzerOptions {
113
+ logger?: CSSAnalyzerLogger;
114
+ patternCatalog?: Partial<CSSPatternCatalog>;
115
+ enableMetrics?: boolean;
116
+ enableCaching?: boolean;
117
+ similarityThreshold?: number;
118
+ }
119
+ export declare class CSSAnalyzer {
120
+ private knownUtilityClasses;
121
+ private patternCatalog;
122
+ private _ruleIndex;
123
+ private _lastIndexedRules;
124
+ private similarityThreshold;
125
+ private enableCaching;
126
+ private logger;
127
+ private enableMetrics;
128
+ private cumulativeMetrics;
129
+ constructor(options?: CSSAnalyzerOptions);
130
+ /**
131
+ * Merge custom patterns with defaults
132
+ */
133
+ private mergePatternCatalog;
134
+ /**
135
+ * Add a custom variable pattern
136
+ */
137
+ addVariablePattern(pattern: CSSVariablePattern): void;
138
+ /**
139
+ * Add a custom global pattern
140
+ */
141
+ addGlobalPattern(pattern: CSSGlobalPattern): void;
142
+ /**
143
+ * Add a custom reusable pattern
144
+ */
145
+ addReusablePattern(pattern: CSSReusablePattern): void;
146
+ /**
147
+ * Add a custom utility mapping
148
+ */
149
+ addUtilityMapping(mapping: CSSUtilityMapping): void;
150
+ /**
151
+ * Enable or disable a pattern by ID
152
+ */
153
+ setPatternEnabled(patternId: string, enabled: boolean): boolean;
154
+ /**
155
+ * Get the current pattern catalog (for inspection/debugging)
156
+ */
157
+ getPatternCatalog(): CSSPatternCatalog;
158
+ /**
159
+ * Get cumulative metrics (Task #52)
160
+ */
161
+ getCumulativeMetrics(): {
162
+ totalAnalyses: number;
163
+ totalRulesAnalyzed: number;
164
+ totalDuplicatesFound: number;
165
+ totalSuggestionsMade: number;
166
+ totalCacheHits: number;
167
+ totalCacheMisses: number;
168
+ totalTimeMs: number;
169
+ };
170
+ /**
171
+ * Reset cumulative metrics (Task #52)
172
+ */
173
+ resetCumulativeMetrics(): void;
174
+ /**
175
+ * Main analysis entry point
176
+ */
177
+ analyze(context: CSSAnalysisContext): CSSAnalysisResult;
178
+ private countSuggestionsByType;
179
+ private countSuggestionsBySeverity;
180
+ /**
181
+ * Get or build index for existing rules (Task #51: caching for performance)
182
+ */
183
+ private getOrBuildIndex;
184
+ /**
185
+ * Compute a signature for CSS properties for fast comparison (Task #51)
186
+ */
187
+ private computePropertySignature;
188
+ /**
189
+ * Find duplicates with optimized O(1) hash lookup + O(k) similarity check (Task #51)
190
+ * where k is the number of rules with similar property counts/keys
191
+ */
192
+ private findDuplicatesOptimized;
193
+ /**
194
+ * Find removable candidates with optimized lookup (Task #51)
195
+ */
196
+ private findRemovableCandidatesOptimized;
197
+ /**
198
+ * Clear the rule index cache (call when rules change)
199
+ */
200
+ clearIndexCache(): void;
201
+ /**
202
+ * Find duplicate or similar CSS rules
203
+ * @deprecated Use findDuplicatesOptimized instead (Task #51)
204
+ * @internal Kept for backward compatibility - delegates to optimized version
205
+ */
206
+ findDuplicates(newRule: CSSRule, existingRules: CSSRule[]): {
207
+ duplicates: CSSRule[];
208
+ suggestions: CSSSuggestion[];
209
+ };
210
+ /**
211
+ * Check if CSS should be externalized
212
+ */
213
+ private checkExternalization;
214
+ /**
215
+ * Check if CSS should be made global (Task #44: uses pattern catalog)
216
+ */
217
+ private checkGlobalCandidate;
218
+ /**
219
+ * Check if a rule matches a reusable pattern from the catalog (Task #44)
220
+ */
221
+ private matchesReusablePattern;
222
+ /**
223
+ * Check for CSS variable candidates using design system tokens
224
+ */
225
+ private checkVariableCandidates;
226
+ /**
227
+ * Check for utility class opportunities (Task #44: uses pattern catalog)
228
+ */
229
+ private checkUtilityOpportunities;
230
+ /**
231
+ * Check CSS specificity issues
232
+ */
233
+ private checkSpecificity;
234
+ /**
235
+ * Check naming convention
236
+ */
237
+ private checkNamingConvention;
238
+ /**
239
+ * Find CSS rules that can be safely removed
240
+ * @deprecated Use findRemovableCandidatesOptimized instead (Task #51)
241
+ * @internal Kept for backward compatibility - delegates to optimized version
242
+ */
243
+ protected findRemovableCandidates(newRule: CSSRule, existingRules: CSSRule[]): CSSRule[];
244
+ /**
245
+ * Validate that a selector is well-formed and safe to process
246
+ */
247
+ private isValidSelector;
248
+ /**
249
+ * Normalize a selector for safe analysis by removing problematic content
250
+ */
251
+ private normalizeSelectorForAnalysis;
252
+ private generateRuleId;
253
+ private simpleHash;
254
+ private calculateSimilarity;
255
+ private calculateSpecificity;
256
+ /**
257
+ * Check if rule is a reusable pattern (Task #44: uses pattern catalog)
258
+ */
259
+ private isReusablePattern;
260
+ /**
261
+ * Check if rule is a typography rule (Task #44: uses pattern catalog)
262
+ * @internal Exposed for testing - now uses pattern catalog internally
263
+ */
264
+ protected isTypographyRule(rule: CSSRule): boolean;
265
+ /**
266
+ * Check if rule is a button pattern (Task #44: uses pattern catalog)
267
+ * @internal Exposed for testing - now uses pattern catalog internally
268
+ */
269
+ protected isButtonPattern(rule: CSSRule): boolean;
270
+ private generateExternalizeExample;
271
+ private getFontWeightName;
272
+ private suggestBEMName;
273
+ private completelyOverrides;
274
+ private isLikelyUnused;
275
+ private prioritizeSuggestions;
276
+ private generateSummary;
277
+ private initializeKnownPatterns;
278
+ /**
279
+ * Map pattern catalog variable types to design token categories
280
+ */
281
+ private mapTypeToTokenCategory;
282
+ }
283
+ export declare const cssAnalyzer: CSSAnalyzer;
284
+ //# sourceMappingURL=CSSAnalyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CSSAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/CSSAnalyzer.ts"],"names":[],"mappings":"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"}