@trentapps/manager-protocol 1.1.3 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +164 -17
  2. package/dist/analyzers/CSSAnalyzer.d.ts +180 -8
  3. package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -1
  4. package/dist/analyzers/CSSAnalyzer.js +561 -105
  5. package/dist/analyzers/CSSAnalyzer.js.map +1 -1
  6. package/dist/config/dashboard.d.ts +55 -0
  7. package/dist/config/dashboard.d.ts.map +1 -0
  8. package/dist/config/dashboard.js +103 -0
  9. package/dist/config/dashboard.js.map +1 -0
  10. package/dist/config/index.d.ts +7 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/config/index.js +7 -0
  13. package/dist/config/index.js.map +1 -0
  14. package/dist/dashboard/httpDashboard.d.ts +100 -0
  15. package/dist/dashboard/httpDashboard.d.ts.map +1 -0
  16. package/dist/dashboard/httpDashboard.js +1276 -0
  17. package/dist/dashboard/httpDashboard.js.map +1 -0
  18. package/dist/dashboard/index.d.ts +6 -0
  19. package/dist/dashboard/index.d.ts.map +1 -0
  20. package/dist/dashboard/index.js +7 -0
  21. package/dist/dashboard/index.js.map +1 -0
  22. package/dist/engine/AuditLogger.d.ts +370 -2
  23. package/dist/engine/AuditLogger.d.ts.map +1 -1
  24. package/dist/engine/AuditLogger.js +1064 -24
  25. package/dist/engine/AuditLogger.js.map +1 -1
  26. package/dist/engine/GitHubClient.d.ts +183 -0
  27. package/dist/engine/GitHubClient.d.ts.map +1 -0
  28. package/dist/engine/GitHubClient.js +411 -0
  29. package/dist/engine/GitHubClient.js.map +1 -0
  30. package/dist/engine/RateLimiter.d.ts +5 -3
  31. package/dist/engine/RateLimiter.d.ts.map +1 -1
  32. package/dist/engine/RateLimiter.js +49 -72
  33. package/dist/engine/RateLimiter.js.map +1 -1
  34. package/dist/engine/RuleDependencyAnalyzer.d.ts +73 -0
  35. package/dist/engine/RuleDependencyAnalyzer.d.ts.map +1 -0
  36. package/dist/engine/RuleDependencyAnalyzer.js +475 -0
  37. package/dist/engine/RuleDependencyAnalyzer.js.map +1 -0
  38. package/dist/engine/RulesEngine.d.ts +102 -3
  39. package/dist/engine/RulesEngine.d.ts.map +1 -1
  40. package/dist/engine/RulesEngine.js +326 -21
  41. package/dist/engine/RulesEngine.js.map +1 -1
  42. package/dist/engine/TaskManager.d.ts +10 -14
  43. package/dist/engine/TaskManager.d.ts.map +1 -1
  44. package/dist/engine/TaskManager.js +169 -197
  45. package/dist/engine/TaskManager.js.map +1 -1
  46. package/dist/engine/index.d.ts +3 -0
  47. package/dist/engine/index.d.ts.map +1 -1
  48. package/dist/engine/index.js +5 -0
  49. package/dist/engine/index.js.map +1 -1
  50. package/dist/rules/azure.d.ts.map +1 -1
  51. package/dist/rules/azure.js +12 -14
  52. package/dist/rules/azure.js.map +1 -1
  53. package/dist/rules/compliance.d.ts.map +1 -1
  54. package/dist/rules/compliance.js +23 -41
  55. package/dist/rules/compliance.js.map +1 -1
  56. package/dist/rules/condition-optimizer.d.ts +151 -0
  57. package/dist/rules/condition-optimizer.d.ts.map +1 -0
  58. package/dist/rules/condition-optimizer.js +479 -0
  59. package/dist/rules/condition-optimizer.js.map +1 -0
  60. package/dist/rules/css.d.ts.map +1 -1
  61. package/dist/rules/css.js +538 -0
  62. package/dist/rules/css.js.map +1 -1
  63. package/dist/rules/field-standards.d.ts +1172 -0
  64. package/dist/rules/field-standards.d.ts.map +1 -0
  65. package/dist/rules/field-standards.js +908 -0
  66. package/dist/rules/field-standards.js.map +1 -0
  67. package/dist/rules/flask.d.ts.map +1 -1
  68. package/dist/rules/flask.js +18 -31
  69. package/dist/rules/flask.js.map +1 -1
  70. package/dist/rules/index.d.ts +220 -0
  71. package/dist/rules/index.d.ts.map +1 -1
  72. package/dist/rules/index.js +155 -0
  73. package/dist/rules/index.js.map +1 -1
  74. package/dist/rules/ml-ai.d.ts.map +1 -1
  75. package/dist/rules/ml-ai.js +11 -13
  76. package/dist/rules/ml-ai.js.map +1 -1
  77. package/dist/rules/patterns.d.ts +568 -0
  78. package/dist/rules/patterns.d.ts.map +1 -0
  79. package/dist/rules/patterns.js +1359 -0
  80. package/dist/rules/patterns.js.map +1 -0
  81. package/dist/rules/security.d.ts.map +1 -1
  82. package/dist/rules/security.js +580 -19
  83. package/dist/rules/security.js.map +1 -1
  84. package/dist/rules/shared-patterns.d.ts +268 -0
  85. package/dist/rules/shared-patterns.d.ts.map +1 -0
  86. package/dist/rules/shared-patterns.js +556 -0
  87. package/dist/rules/shared-patterns.js.map +1 -0
  88. package/dist/rules/storage.d.ts +8 -2
  89. package/dist/rules/storage.d.ts.map +1 -1
  90. package/dist/rules/storage.js +541 -3
  91. package/dist/rules/storage.js.map +1 -1
  92. package/dist/rules/stripe.d.ts.map +1 -1
  93. package/dist/rules/stripe.js +19 -26
  94. package/dist/rules/stripe.js.map +1 -1
  95. package/dist/rules/websocket.d.ts.map +1 -1
  96. package/dist/rules/websocket.js +32 -40
  97. package/dist/rules/websocket.js.map +1 -1
  98. package/dist/supervisor/AgentSupervisor.d.ts +52 -0
  99. package/dist/supervisor/AgentSupervisor.d.ts.map +1 -1
  100. package/dist/supervisor/AgentSupervisor.js +120 -1
  101. package/dist/supervisor/AgentSupervisor.js.map +1 -1
  102. package/dist/supervisor/ManagedServerRegistry.d.ts +139 -2
  103. package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -1
  104. package/dist/supervisor/ManagedServerRegistry.js +590 -6
  105. package/dist/supervisor/ManagedServerRegistry.js.map +1 -1
  106. package/dist/supervisor/ProjectTracker.d.ts +2 -1
  107. package/dist/supervisor/ProjectTracker.d.ts.map +1 -1
  108. package/dist/supervisor/ProjectTracker.js +5 -9
  109. package/dist/supervisor/ProjectTracker.js.map +1 -1
  110. package/dist/testing/index.d.ts +11 -0
  111. package/dist/testing/index.d.ts.map +1 -0
  112. package/dist/testing/index.js +12 -0
  113. package/dist/testing/index.js.map +1 -0
  114. package/dist/testing/rule-tester.d.ts +217 -0
  115. package/dist/testing/rule-tester.d.ts.map +1 -0
  116. package/dist/testing/rule-tester.examples.d.ts +57 -0
  117. package/dist/testing/rule-tester.examples.d.ts.map +1 -0
  118. package/dist/testing/rule-tester.examples.js +375 -0
  119. package/dist/testing/rule-tester.examples.js.map +1 -0
  120. package/dist/testing/rule-tester.js +381 -0
  121. package/dist/testing/rule-tester.js.map +1 -0
  122. package/dist/testing/rule-validator.d.ts +141 -0
  123. package/dist/testing/rule-validator.d.ts.map +1 -0
  124. package/dist/testing/rule-validator.js +640 -0
  125. package/dist/testing/rule-validator.js.map +1 -0
  126. package/dist/types/index.d.ts +265 -4
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/dist/types/index.js +57 -2
  129. package/dist/types/index.js.map +1 -1
  130. package/dist/utils/index.d.ts +2 -0
  131. package/dist/utils/index.d.ts.map +1 -1
  132. package/dist/utils/index.js +2 -0
  133. package/dist/utils/index.js.map +1 -1
  134. package/dist/utils/rate-limiting.d.ts +268 -0
  135. package/dist/utils/rate-limiting.d.ts.map +1 -0
  136. package/dist/utils/rate-limiting.js +403 -0
  137. package/dist/utils/rate-limiting.js.map +1 -0
  138. package/dist/utils/shared.d.ts +306 -0
  139. package/dist/utils/shared.d.ts.map +1 -0
  140. package/dist/utils/shared.js +464 -0
  141. package/dist/utils/shared.js.map +1 -0
  142. package/package.json +3 -2
package/README.md CHANGED
@@ -78,9 +78,33 @@ AI agents are powerful, but without guardrails they can:
78
78
  npm install @trentapps/manager-protocol
79
79
  ```
80
80
 
81
- ### MCP Configuration
81
+ ### Claude Code
82
82
 
83
- Add to your Claude Desktop or MCP client configuration:
83
+ The fastest way to get started with Claude Code:
84
+
85
+ **Option 1: Using the CLI (Recommended)**
86
+ ```bash
87
+ claude mcp add agent-supervisor -- npx @trentapps/manager-protocol
88
+ ```
89
+
90
+ **Option 2: Manual Configuration**
91
+
92
+ Add to your MCP settings file (`~/.claude/settings.json` or `.mcp.json` in your project):
93
+
94
+ ```json
95
+ {
96
+ "mcpServers": {
97
+ "agent-supervisor": {
98
+ "command": "npx",
99
+ "args": ["@trentapps/manager-protocol"]
100
+ }
101
+ }
102
+ }
103
+ ```
104
+
105
+ ### Other MCP Clients
106
+
107
+ For Claude Desktop or other MCP clients, add to your configuration file:
84
108
 
85
109
  ```json
86
110
  {
@@ -274,6 +298,73 @@ Evaluate CSS before adding it. Checks for duplicates, recommends externalization
274
298
  }
275
299
  ```
276
300
 
301
+ ### Task Management Tools
302
+
303
+ The supervisor includes full GitHub-integrated task management:
304
+
305
+ | Tool | Description |
306
+ |------|-------------|
307
+ | `create_task` | Create a new task (GitHub Issue) |
308
+ | `get_tasks` | List tasks with filtering |
309
+ | `get_pending_tasks` | Get tasks needing approval |
310
+ | `get_approved_tasks` | Get tasks ready to work on |
311
+ | `update_task` | Update task metadata |
312
+ | `close_task_with_comment` | Close with resolution |
313
+ | `add_task_comment` | Add comment to task |
314
+ | `link_commits` | Link commits to tasks |
315
+
316
+ ### App Monitoring Tools
317
+
318
+ Monitor production applications for health and uptime:
319
+
320
+ | Tool | Description |
321
+ |------|-------------|
322
+ | `add_monitored_app` | Register app for monitoring |
323
+ | `check_app_health` | Immediate health check |
324
+ | `check_all_apps_health` | Health check all apps |
325
+ | `get_app_status` | Get detailed app status |
326
+ | `list_monitored_apps` | List all monitored apps |
327
+ | `get_offline_apps` | List currently offline apps |
328
+
329
+ ### Session Management Tools
330
+
331
+ Track agent sessions for audit and observability:
332
+
333
+ | Tool | Description |
334
+ |------|-------------|
335
+ | `register_session` | Register a Claude session |
336
+ | `complete_session` | Mark session complete |
337
+ | `health_check` | Check supervisor health |
338
+
339
+ ### Rules Management Tools
340
+
341
+ | Tool | Description |
342
+ |------|-------------|
343
+ | `list_rules` | List configured rules (use filters!) |
344
+ | `add_rule` | Add custom rule |
345
+ | `remove_rule` | Remove rule |
346
+ | `load_preset` | Load rule preset |
347
+ | `discover_relevant_rules` | Auto-detect project tech stack |
348
+ | `list_project_profiles` | List available profiles |
349
+
350
+ ### Approval Workflow Tools
351
+
352
+ | Tool | Description |
353
+ |------|-------------|
354
+ | `list_pending_approvals` | List pending approvals |
355
+ | `approve_request` | Approve a request |
356
+ | `deny_request` | Deny a request |
357
+ | `check_approval_status` | Check approval status |
358
+
359
+ ### Audit Tools
360
+
361
+ | Tool | Description |
362
+ |------|-------------|
363
+ | `get_audit_events` | Query audit log |
364
+ | `get_audit_stats` | Get statistics |
365
+ | `export_audit_log` | Export as JSON |
366
+ | `get_approval_stats` | Approval workflow stats |
367
+
277
368
  ---
278
369
 
279
370
  ## Custom Rules
@@ -357,24 +448,80 @@ Built-in support for:
357
448
 
358
449
  ---
359
450
 
451
+ ## Configuration
452
+
453
+ ### Environment Variables
454
+
455
+ | Variable | Description | Default |
456
+ |----------|-------------|---------|
457
+ | `GITHUB_TOKEN` | GitHub personal access token for task management and approvals | Required for GitHub features |
458
+ | `DASHBOARD_PORT` | HTTP dashboard port | `3100` |
459
+ | `AUDIT_DB_PATH` | Path to SQLite audit database | `./data/audit.db` |
460
+ | `NODE_ENV` | Environment (development/production) | `development` |
461
+ | `DEBUG` | Enable debug logging | `false` |
462
+
463
+ ### Node.js Requirements
464
+
465
+ - Node.js 18.0.0 or higher required
466
+
467
+ ---
468
+
469
+ ## Security & Deployment
470
+
471
+ ### Local Usage (Default)
472
+
473
+ The Agent Supervisor MCP server is designed to run **locally** alongside your AI agent. When configured as an MCP server in Claude Desktop or other MCP clients, it communicates via stdio (standard input/output), not HTTP.
474
+
475
+ **Key points:**
476
+ - **No CORS required** - The MCP protocol uses stdio for communication, not HTTP requests
477
+ - **No network exposure** - The server doesn't listen on any network ports by default
478
+ - **Process isolation** - Runs as a child process of the MCP client
479
+
480
+ ### Dashboard (Optional)
481
+
482
+ The optional HTTP dashboard (for monitoring and approvals) runs on `localhost:3100` by default:
483
+ - Only accessible from the local machine
484
+ - Not exposed to the network
485
+ - For remote access, use SSH tunneling or a reverse proxy with authentication
486
+
487
+ ### Production Considerations
488
+
489
+ If deploying in a production environment with network access:
490
+ 1. **Add authentication** - Implement your own auth layer (OAuth, API keys, etc.)
491
+ 2. **Use a reverse proxy** - Put nginx/Caddy in front with TLS and auth
492
+ 3. **Network isolation** - Run in a private network or VPC
493
+ 4. **Audit logging** - Enable comprehensive audit logging (built-in)
494
+
495
+ ---
496
+
360
497
  ## Architecture
361
498
 
362
499
  ```
363
- ┌──────────────────────────────────────────────────────────────┐
364
- Agent Supervisor
365
- ├──────────────────────────────────────────────────────────────┤
366
- │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐
367
- │ │ Rules │ │ Rate │ │ Approval
368
- │ │ Engine │ │ Limiter │ │ Manager
369
- │ └─────────────┘ └─────────────┘ └─────────────────────┘
370
- ┌─────────────────────────────────────────────────────────┐│
371
- │ │ Audit Logger ││
372
- └─────────────────────────────────────────────────────────┘│
373
- ├──────────────────────────────────────────────────────────────┤
374
- MCP Server
375
- evaluate_action | apply_business_rules | require_approval
376
- log_event | list_rules | add_rule | get_audit_events ...
377
- └──────────────────────────────────────────────────────────────┘
500
+ ┌──────────────────────────────────────────────────────────────────┐
501
+ Agent Supervisor
502
+ ├──────────────────────────────────────────────────────────────────┤
503
+ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐
504
+ │ │ Rules │ │ Rate │ │ GitHub Approval
505
+ │ │ Engine │ │ Limiter │ │ Manager
506
+ │ └─────────────┘ └─────────────┘ └─────────────────────────┘
507
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
508
+ │ │ Task │ │ App │ │ CSS │ │
509
+ │ Manager │ │ Monitor │ │ Analyzer │ │
510
+ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
511
+ ┌───────────────────────────────────────────────────────────┐
512
+ │ Audit Logger (SQLite)
513
+ └───────────────────────────────────────────────────────────┘
514
+ ├──────────────────────────────────────────────────────────────────┤
515
+ │ MCP Server (stdio) │
516
+ │ evaluate_action | create_task | check_app_health | css_eval │
517
+ │ log_event | register_session | list_rules | require_approval │
518
+ └──────────────────────────────────────────────────────────────────┘
519
+ │ │
520
+ ▼ ▼
521
+ ┌─────────────────────┐ ┌─────────────────────┐
522
+ │ GitHub Issues │ │ HTTP Dashboard │
523
+ │ (Task Storage) │ │ (localhost:3100) │
524
+ └─────────────────────┘ └─────────────────────┘
378
525
  ```
379
526
 
380
527
  ---
@@ -2,6 +2,10 @@
2
2
  * Enterprise Agent Supervisor - CSS Analyzer
3
3
  *
4
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
5
9
  */
6
10
  export interface CSSRule {
7
11
  selector: string;
@@ -40,32 +44,187 @@ export interface CSSAnalysisResult {
40
44
  removableCandidates: CSSRule[];
41
45
  riskScore: number;
42
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;
43
118
  }
44
119
  export declare class CSSAnalyzer {
45
120
  private knownUtilityClasses;
46
- constructor();
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;
47
174
  /**
48
175
  * Main analysis entry point
49
176
  */
50
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;
51
201
  /**
52
202
  * Find duplicate or similar CSS rules
203
+ * @deprecated Use findDuplicatesOptimized instead (Task #51)
204
+ * @internal Kept for backward compatibility - delegates to optimized version
53
205
  */
54
- private findDuplicates;
206
+ findDuplicates(newRule: CSSRule, existingRules: CSSRule[]): {
207
+ duplicates: CSSRule[];
208
+ suggestions: CSSSuggestion[];
209
+ };
55
210
  /**
56
211
  * Check if CSS should be externalized
57
212
  */
58
213
  private checkExternalization;
59
214
  /**
60
- * Check if CSS should be made global
215
+ * Check if CSS should be made global (Task #44: uses pattern catalog)
61
216
  */
62
217
  private checkGlobalCandidate;
218
+ /**
219
+ * Check if a rule matches a reusable pattern from the catalog (Task #44)
220
+ */
221
+ private matchesReusablePattern;
63
222
  /**
64
223
  * Check for CSS variable candidates using design system tokens
65
224
  */
66
225
  private checkVariableCandidates;
67
226
  /**
68
- * Check for utility class opportunities
227
+ * Check for utility class opportunities (Task #44: uses pattern catalog)
69
228
  */
70
229
  private checkUtilityOpportunities;
71
230
  /**
@@ -78,8 +237,10 @@ export declare class CSSAnalyzer {
78
237
  private checkNamingConvention;
79
238
  /**
80
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
81
242
  */
82
- private findRemovableCandidates;
243
+ protected findRemovableCandidates(newRule: CSSRule, existingRules: CSSRule[]): CSSRule[];
83
244
  /**
84
245
  * Validate that a selector is well-formed and safe to process
85
246
  */
@@ -92,9 +253,20 @@ export declare class CSSAnalyzer {
92
253
  private simpleHash;
93
254
  private calculateSimilarity;
94
255
  private calculateSpecificity;
256
+ /**
257
+ * Check if rule is a reusable pattern (Task #44: uses pattern catalog)
258
+ */
95
259
  private isReusablePattern;
96
- private isTypographyRule;
97
- private isButtonPattern;
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;
98
270
  private generateExternalizeExample;
99
271
  private getFontWeightName;
100
272
  private suggestBEMName;
@@ -104,7 +276,7 @@ export declare class CSSAnalyzer {
104
276
  private generateSummary;
105
277
  private initializeKnownPatterns;
106
278
  /**
107
- * Map VARIABLE_CANDIDATES types to design token categories
279
+ * Map pattern catalog variable types to design token categories
108
280
  */
109
281
  private mapTypeToTokenCategory;
110
282
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CSSAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/CSSAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CSSAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/CSSAnalyzer.ts"],"names":[],"mappings":"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"}