cmp-standards 2.7.0 → 2.8.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 (162) hide show
  1. package/README.md +633 -633
  2. package/dist/cache/EmbeddingCache.d.ts +110 -0
  3. package/dist/cache/EmbeddingCache.d.ts.map +1 -0
  4. package/dist/cache/EmbeddingCache.js +239 -0
  5. package/dist/cache/EmbeddingCache.js.map +1 -0
  6. package/dist/cache/index.d.ts +6 -0
  7. package/dist/cache/index.d.ts.map +1 -0
  8. package/dist/cache/index.js +6 -0
  9. package/dist/cache/index.js.map +1 -0
  10. package/dist/cli/index.js +0 -0
  11. package/dist/db/cloud.d.ts +1 -0
  12. package/dist/db/cloud.d.ts.map +1 -1
  13. package/dist/db/drizzle-client.d.ts +10 -1
  14. package/dist/db/drizzle-client.d.ts.map +1 -1
  15. package/dist/db/drizzle-client.js +57 -3
  16. package/dist/db/drizzle-client.js.map +1 -1
  17. package/dist/db/errors.d.ts +13 -1
  18. package/dist/db/errors.d.ts.map +1 -1
  19. package/dist/db/errors.js +49 -5
  20. package/dist/db/errors.js.map +1 -1
  21. package/dist/db/migrations.d.ts +42 -0
  22. package/dist/db/migrations.d.ts.map +1 -0
  23. package/dist/db/migrations.js +173 -0
  24. package/dist/db/migrations.js.map +1 -0
  25. package/dist/db/turso-client.d.ts +15 -3
  26. package/dist/db/turso-client.d.ts.map +1 -1
  27. package/dist/db/turso-client.js +50 -39
  28. package/dist/db/turso-client.js.map +1 -1
  29. package/dist/eslint/rules/no-async-useeffect.js +6 -6
  30. package/dist/events/EventBus.d.ts +97 -0
  31. package/dist/events/EventBus.d.ts.map +1 -0
  32. package/dist/events/EventBus.js +256 -0
  33. package/dist/events/EventBus.js.map +1 -0
  34. package/dist/events/index.d.ts +7 -0
  35. package/dist/events/index.d.ts.map +1 -0
  36. package/dist/events/index.js +9 -0
  37. package/dist/events/index.js.map +1 -0
  38. package/dist/events/types.d.ts +989 -0
  39. package/dist/events/types.d.ts.map +1 -0
  40. package/dist/events/types.js +136 -0
  41. package/dist/events/types.js.map +1 -0
  42. package/dist/experts/ConsensusEngine.d.ts +57 -0
  43. package/dist/experts/ConsensusEngine.d.ts.map +1 -0
  44. package/dist/experts/ConsensusEngine.js +146 -0
  45. package/dist/experts/ConsensusEngine.js.map +1 -0
  46. package/dist/experts/ExpertPanelService.d.ts +84 -0
  47. package/dist/experts/ExpertPanelService.d.ts.map +1 -0
  48. package/dist/experts/ExpertPanelService.js +204 -0
  49. package/dist/experts/ExpertPanelService.js.map +1 -0
  50. package/dist/experts/ExpertRouter.d.ts +68 -0
  51. package/dist/experts/ExpertRouter.d.ts.map +1 -0
  52. package/dist/experts/ExpertRouter.js +374 -0
  53. package/dist/experts/ExpertRouter.js.map +1 -0
  54. package/dist/experts/VoteCollector.d.ts +58 -0
  55. package/dist/experts/VoteCollector.d.ts.map +1 -0
  56. package/dist/experts/VoteCollector.js +146 -0
  57. package/dist/experts/VoteCollector.js.map +1 -0
  58. package/dist/experts/index.d.ts +9 -0
  59. package/dist/experts/index.d.ts.map +1 -0
  60. package/dist/experts/index.js +13 -0
  61. package/dist/experts/index.js.map +1 -0
  62. package/dist/hooks/cloud-pre-tool-use.js +20 -20
  63. package/dist/hooks/expert-review.d.ts +74 -0
  64. package/dist/hooks/expert-review.d.ts.map +1 -0
  65. package/dist/hooks/expert-review.js +220 -0
  66. package/dist/hooks/expert-review.js.map +1 -0
  67. package/dist/hooks/index.d.ts +1 -0
  68. package/dist/hooks/index.d.ts.map +1 -1
  69. package/dist/hooks/index.js +2 -0
  70. package/dist/hooks/index.js.map +1 -1
  71. package/dist/index.d.ts +13 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +22 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/interfaces/index.d.ts +450 -0
  76. package/dist/interfaces/index.d.ts.map +1 -0
  77. package/dist/interfaces/index.js +50 -0
  78. package/dist/interfaces/index.js.map +1 -0
  79. package/dist/mcp/schemas.d.ts +278 -0
  80. package/dist/mcp/schemas.d.ts.map +1 -0
  81. package/dist/mcp/schemas.js +166 -0
  82. package/dist/mcp/schemas.js.map +1 -0
  83. package/dist/mcp/server.d.ts.map +1 -1
  84. package/dist/mcp/server.js +14 -3
  85. package/dist/mcp/server.js.map +1 -1
  86. package/dist/patterns/feedback-loop.d.ts +264 -0
  87. package/dist/patterns/feedback-loop.d.ts.map +1 -0
  88. package/dist/patterns/feedback-loop.js +329 -0
  89. package/dist/patterns/feedback-loop.js.map +1 -0
  90. package/dist/patterns/index.d.ts +9 -0
  91. package/dist/patterns/index.d.ts.map +1 -0
  92. package/dist/patterns/index.js +9 -0
  93. package/dist/patterns/index.js.map +1 -0
  94. package/dist/patterns/lifecycle.d.ts +88 -0
  95. package/dist/patterns/lifecycle.d.ts.map +1 -0
  96. package/dist/patterns/lifecycle.js +284 -0
  97. package/dist/patterns/lifecycle.js.map +1 -0
  98. package/dist/patterns/registry.d.ts +142 -0
  99. package/dist/patterns/registry.d.ts.map +1 -0
  100. package/dist/patterns/registry.js +442 -0
  101. package/dist/patterns/registry.js.map +1 -0
  102. package/dist/performance/Debouncer.d.ts +91 -0
  103. package/dist/performance/Debouncer.d.ts.map +1 -0
  104. package/dist/performance/Debouncer.js +198 -0
  105. package/dist/performance/Debouncer.js.map +1 -0
  106. package/dist/performance/MemoryDecay.d.ts +82 -0
  107. package/dist/performance/MemoryDecay.d.ts.map +1 -0
  108. package/dist/performance/MemoryDecay.js +153 -0
  109. package/dist/performance/MemoryDecay.js.map +1 -0
  110. package/dist/performance/index.d.ts +7 -0
  111. package/dist/performance/index.d.ts.map +1 -0
  112. package/dist/performance/index.js +9 -0
  113. package/dist/performance/index.js.map +1 -0
  114. package/dist/schema/expert-types.d.ts +395 -0
  115. package/dist/schema/expert-types.d.ts.map +1 -0
  116. package/dist/schema/expert-types.js +250 -0
  117. package/dist/schema/expert-types.js.map +1 -0
  118. package/dist/services/ContextGenerator.js +7 -7
  119. package/dist/services/PlanManager.d.ts +1 -1
  120. package/dist/services/PlanManager.d.ts.map +1 -1
  121. package/dist/services/PlanManager.js +26 -6
  122. package/dist/services/PlanManager.js.map +1 -1
  123. package/dist/services/ProjectScaffold.js +76 -76
  124. package/dist/services/memory-router.js +35 -35
  125. package/dist/services/pattern-tracker.js +90 -90
  126. package/dist/services/semantic-search.js +2 -2
  127. package/package.json +105 -104
  128. package/standards/README.md +50 -50
  129. package/standards/experts/expert-routing.md +215 -215
  130. package/standards/general/code-quality.md +86 -86
  131. package/standards/general/memory-usage.md +205 -205
  132. package/standards/general/sync-workflow.md +235 -235
  133. package/standards/general/workflow.md +82 -82
  134. package/standards/hooks/mandatory-tracking.md +446 -446
  135. package/standards/infrastructure/cloud-database.md +287 -287
  136. package/standards/mcp/server-design.md +243 -243
  137. package/standards/mcp/tool-patterns.md +354 -354
  138. package/standards/skills/skill-structure.md +286 -286
  139. package/standards/skills/workflow-design.md +323 -323
  140. package/standards/tools/tool-design.md +297 -297
  141. package/templates/agents/architecture-expert.md +61 -61
  142. package/templates/agents/database-expert.md +62 -62
  143. package/templates/agents/documentation-expert.md +57 -57
  144. package/templates/agents/memory-expert.md +88 -88
  145. package/templates/agents/performance-expert.md +61 -61
  146. package/templates/agents/security-expert.md +59 -59
  147. package/templates/agents/ux-expert.md +63 -63
  148. package/templates/agents/worker.md +75 -75
  149. package/templates/ai-skills/SKILL_TEMPLATE.md +55 -55
  150. package/templates/claude-settings.json +72 -72
  151. package/templates/commands/experts.md +138 -138
  152. package/templates/hooks/README.md +158 -158
  153. package/templates/hooks/project.config.json.template +77 -77
  154. package/templates/hooks/settings.local.json.template +57 -57
  155. package/templates/memory-config.json +56 -56
  156. package/templates/memory-config.schema.json +212 -212
  157. package/templates/settings.json +58 -58
  158. package/templates/skills/continue.md +205 -205
  159. package/templates/workflows/business-improvement.md +264 -264
  160. package/templates/workflows/expert-review.md +153 -153
  161. package/templates/workflows/internal-app.md +245 -245
  162. package/templates/workflows/sync-docs.md +187 -187
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,QAAQ;AACR,cAAc,kBAAkB,CAAA;AAEhC,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,WAAW;AACX,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAEpE,QAAQ;AACR,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE1F,2BAA2B;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjF,6BAA6B;AAC7B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACjG,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,gBAAgB;AAChB,OAAO,EACL,cAAc,EACd,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,aAAa,EACd,MAAM,gBAAgB,CAAA;AAEvB,cAAc;AACd,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAElF,0BAA0B;AAC1B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,UAAU,IAAI,eAAe,EAC7B,iBAAiB,IAAI,sBAAsB,EAC3C,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAe7B,wCAAwC;AACxC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC3B,MAAM,mBAAmB,CAAA;AAU1B,uBAAuB;AACvB,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EAClB,MAAM,2BAA2B,CAAA;AAQlC,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEjE,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,WAAW;AACX,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAEpF,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,450 @@
1
+ /**
2
+ * @file Core Interfaces
3
+ * @description Abstract interfaces for dependency injection and testing
4
+ *
5
+ * These interfaces define contracts for core services, enabling:
6
+ * - Dependency injection for loose coupling
7
+ * - Easy mocking in unit tests
8
+ * - Clear documentation of service capabilities
9
+ *
10
+ * @version 2.8.0
11
+ */
12
+ /**
13
+ * Event metadata attached to all events
14
+ */
15
+ export interface IEventMetadata {
16
+ timestamp: string;
17
+ source: string;
18
+ correlationId?: string;
19
+ }
20
+ /**
21
+ * Base event structure
22
+ */
23
+ export interface IEvent {
24
+ type: string;
25
+ data: unknown;
26
+ metadata: IEventMetadata;
27
+ }
28
+ /**
29
+ * Event handler function signature
30
+ */
31
+ export type IEventHandler<T extends IEvent = IEvent> = (event: T) => void | Promise<void>;
32
+ /**
33
+ * EventBus interface for pub/sub messaging
34
+ */
35
+ export interface IEventBus {
36
+ /**
37
+ * Subscribe to an event type
38
+ * @returns Unsubscribe function
39
+ */
40
+ subscribe<T extends IEvent>(eventType: string, handler: IEventHandler<T>): () => void;
41
+ /**
42
+ * Publish an event to all subscribers
43
+ */
44
+ publish<T extends IEvent>(event: T): Promise<{
45
+ success: boolean;
46
+ handlerResults: PromiseSettledResult<void>[];
47
+ duration: number;
48
+ }>;
49
+ /**
50
+ * Publish and throw on any handler failure
51
+ */
52
+ publishStrict<T extends IEvent>(event: T): Promise<void>;
53
+ /**
54
+ * Get event history
55
+ */
56
+ getHistory(type?: string): IEvent[];
57
+ /**
58
+ * Get events by correlation ID
59
+ */
60
+ getByCorrelationId(correlationId: string): IEvent[];
61
+ /**
62
+ * Clear all handlers and history
63
+ */
64
+ clear(): void;
65
+ /**
66
+ * Get handler count for event type
67
+ */
68
+ getHandlerCount(type: string): number;
69
+ /**
70
+ * Check if event type has handlers
71
+ */
72
+ hasHandlers(type: string): boolean;
73
+ /**
74
+ * Clean up resources
75
+ */
76
+ destroy(): void;
77
+ }
78
+ /**
79
+ * Cache entry with metadata
80
+ */
81
+ export interface ICacheEntry<T> {
82
+ value: T;
83
+ expires: number;
84
+ hits: number;
85
+ createdAt: number;
86
+ lastAccessedAt: number;
87
+ }
88
+ /**
89
+ * Cache statistics
90
+ */
91
+ export interface ICacheStats {
92
+ size: number;
93
+ hits: number;
94
+ misses: number;
95
+ hitRate: number;
96
+ memoryEstimate: number;
97
+ avgAge: number;
98
+ }
99
+ /**
100
+ * Generic cache interface
101
+ */
102
+ export interface ICache<T> {
103
+ /**
104
+ * Get value from cache
105
+ */
106
+ get(key: string): T | null;
107
+ /**
108
+ * Store value in cache
109
+ */
110
+ set(key: string, value: T): void;
111
+ /**
112
+ * Check if key exists
113
+ */
114
+ has(key: string): boolean;
115
+ /**
116
+ * Remove expired entries
117
+ */
118
+ cleanup(): number;
119
+ /**
120
+ * Get cache statistics
121
+ */
122
+ getStats(): ICacheStats;
123
+ /**
124
+ * Clear all entries
125
+ */
126
+ clear(): void;
127
+ /**
128
+ * Get current size
129
+ */
130
+ readonly size: number;
131
+ }
132
+ /**
133
+ * Embedding cache interface with vector-specific operations
134
+ */
135
+ export interface IEmbeddingCache extends ICache<number[]> {
136
+ /**
137
+ * Get all cached keys
138
+ */
139
+ keys(): string[];
140
+ }
141
+ /**
142
+ * Pattern severity levels
143
+ */
144
+ export type IPatternSeverity = 'critical' | 'high' | 'medium' | 'low';
145
+ /**
146
+ * Pattern lifecycle status
147
+ */
148
+ export type IPatternStatus = 'active' | 'triggered' | 'implemented' | 'retired';
149
+ /**
150
+ * Pattern definition
151
+ */
152
+ export interface IPattern {
153
+ id: string;
154
+ name: string;
155
+ description: string;
156
+ severity: IPatternSeverity;
157
+ status: IPatternStatus;
158
+ threshold: number;
159
+ regex?: string;
160
+ eslintRuleName?: string;
161
+ }
162
+ /**
163
+ * Pattern occurrence record
164
+ */
165
+ export interface IPatternOccurrence {
166
+ patternId: string;
167
+ file: string;
168
+ line?: number;
169
+ code?: string;
170
+ severity?: IPatternSeverity;
171
+ }
172
+ /**
173
+ * Pattern registry interface
174
+ */
175
+ export interface IPatternRegistry {
176
+ /**
177
+ * Get pattern by ID
178
+ */
179
+ get(patternId: string): IPattern | undefined;
180
+ /**
181
+ * Get all active patterns
182
+ */
183
+ getActive(): IPattern[];
184
+ /**
185
+ * Get all patterns
186
+ */
187
+ getAll(): IPattern[];
188
+ /**
189
+ * Register a new pattern
190
+ */
191
+ register(pattern: IPattern): void;
192
+ /**
193
+ * Update pattern status
194
+ */
195
+ updateStatus(patternId: string, status: IPatternStatus, reason?: string): void;
196
+ /**
197
+ * Record feedback for pattern
198
+ */
199
+ recordFeedback(patternId: string, type: 'confirmed' | 'false_positive'): void;
200
+ /**
201
+ * Detect patterns in content
202
+ */
203
+ detect(content: string, filePath: string): Array<{
204
+ pattern: IPattern;
205
+ matches: RegExpMatchArray[];
206
+ }>;
207
+ /**
208
+ * Generate ESLint rule for pattern
209
+ */
210
+ generateEslintRule(patternId: string): string | null;
211
+ }
212
+ /**
213
+ * Pattern lifecycle service interface
214
+ */
215
+ export interface IPatternLifecycle {
216
+ /**
217
+ * Track a pattern occurrence
218
+ */
219
+ track(occurrence: IPatternOccurrence): Promise<{
220
+ count: number;
221
+ triggered: boolean;
222
+ rule?: string;
223
+ }>;
224
+ /**
225
+ * Confirm a pattern detection
226
+ */
227
+ confirmPattern(patternId: string): Promise<void>;
228
+ /**
229
+ * Mark pattern as false positive
230
+ */
231
+ markFalsePositive(patternId: string): Promise<void>;
232
+ /**
233
+ * Promote pattern to implemented
234
+ */
235
+ promotePattern(patternId: string): Promise<void>;
236
+ /**
237
+ * Retire a pattern
238
+ */
239
+ retirePattern(patternId: string, reason: string): Promise<void>;
240
+ /**
241
+ * Detect regression
242
+ */
243
+ detectRegression(patternId: string): Promise<{
244
+ patternId: string;
245
+ message: string;
246
+ severity: IPatternSeverity;
247
+ } | null>;
248
+ /**
249
+ * Adjust pattern sensitivity
250
+ */
251
+ adjustSensitivity(patternId: string, feedback: 'too_sensitive' | 'not_sensitive_enough'): Promise<void>;
252
+ }
253
+ /**
254
+ * Query options for database operations
255
+ */
256
+ export interface IQueryOptions {
257
+ system?: string;
258
+ type?: string;
259
+ status?: string;
260
+ limit?: number;
261
+ orderBy?: string;
262
+ orderDir?: 'ASC' | 'DESC';
263
+ }
264
+ /**
265
+ * Database client interface
266
+ */
267
+ export interface IDatabaseClient {
268
+ /**
269
+ * Create a new item
270
+ */
271
+ create<T extends object>(type: string, system: string, content: T, status?: string): Promise<string>;
272
+ /**
273
+ * Get item by ID
274
+ */
275
+ get<T>(id: string): Promise<{
276
+ id: string;
277
+ type: string;
278
+ status: string;
279
+ system: string;
280
+ content: T;
281
+ } | null>;
282
+ /**
283
+ * Update an item
284
+ */
285
+ update<T extends object>(id: string, updates: Partial<{
286
+ status: string;
287
+ content: T;
288
+ }>): Promise<void>;
289
+ /**
290
+ * Query items
291
+ */
292
+ query<T>(options: IQueryOptions): Promise<Array<{
293
+ id: string;
294
+ type: string;
295
+ status: string;
296
+ system: string;
297
+ content: T;
298
+ }>>;
299
+ /**
300
+ * Delete an item
301
+ */
302
+ remove(id: string): Promise<void>;
303
+ }
304
+ /**
305
+ * Transaction statement
306
+ */
307
+ export interface ITransactionStatement {
308
+ sql: string;
309
+ args: unknown[];
310
+ }
311
+ /**
312
+ * Transactional database client interface
313
+ */
314
+ export interface ITransactionalDatabase extends IDatabaseClient {
315
+ /**
316
+ * Execute statements in atomic transaction
317
+ */
318
+ transaction(statements: ITransactionStatement[]): Promise<void>;
319
+ }
320
+ /**
321
+ * Expert vote types
322
+ */
323
+ export type IExpertVote = 'APPROVE' | 'REJECT' | 'WARN' | 'ABSTAIN';
324
+ /**
325
+ * Expert finding
326
+ */
327
+ export interface IExpertFinding {
328
+ patternId: string;
329
+ filePath: string;
330
+ line?: number;
331
+ code?: string;
332
+ severity: IPatternSeverity;
333
+ description: string;
334
+ expertType: string;
335
+ }
336
+ /**
337
+ * Expert review result
338
+ */
339
+ export interface IExpertReviewResult {
340
+ expertType: string;
341
+ vote: IExpertVote;
342
+ findings: IExpertFinding[];
343
+ reasoning?: string;
344
+ timestamp: string;
345
+ }
346
+ /**
347
+ * Expert panel consensus
348
+ */
349
+ export interface IPanelConsensus {
350
+ approved: boolean;
351
+ votes: Record<string, IExpertVote>;
352
+ allFindings: IExpertFinding[];
353
+ correlationId: string;
354
+ filesReviewed: string[];
355
+ isCritical: boolean;
356
+ }
357
+ /**
358
+ * Expert router interface
359
+ */
360
+ export interface IExpertRouter {
361
+ /**
362
+ * Route files to appropriate experts
363
+ */
364
+ route(files: string[]): Promise<string[]>;
365
+ /**
366
+ * Get expert by type
367
+ */
368
+ getExpert(type: string): IExpert | undefined;
369
+ /**
370
+ * Check if code is critical
371
+ */
372
+ isCriticalCode(files: string[]): boolean;
373
+ }
374
+ /**
375
+ * Individual expert interface
376
+ */
377
+ export interface IExpert {
378
+ /**
379
+ * Expert type identifier
380
+ */
381
+ readonly type: string;
382
+ /**
383
+ * Expert display name
384
+ */
385
+ readonly name: string;
386
+ /**
387
+ * Review files and return findings
388
+ */
389
+ review(files: string[], context?: unknown): Promise<IExpertReviewResult>;
390
+ }
391
+ /**
392
+ * Consensus engine interface
393
+ */
394
+ export interface IConsensusEngine {
395
+ /**
396
+ * Calculate consensus from expert votes
397
+ */
398
+ calculateConsensus(results: IExpertReviewResult[], isCritical: boolean): IPanelConsensus;
399
+ }
400
+ /**
401
+ * Vote collector interface
402
+ */
403
+ export interface IVoteCollector {
404
+ /**
405
+ * Collect vote from expert
406
+ */
407
+ collect(result: IExpertReviewResult): void;
408
+ /**
409
+ * Get all collected votes
410
+ */
411
+ getVotes(): IExpertReviewResult[];
412
+ /**
413
+ * Check if all expected votes collected
414
+ */
415
+ isComplete(expectedCount: number): boolean;
416
+ /**
417
+ * Clear collected votes
418
+ */
419
+ clear(): void;
420
+ }
421
+ /**
422
+ * Service locator for dependency injection
423
+ */
424
+ export interface IServiceLocator {
425
+ /**
426
+ * Register a service
427
+ */
428
+ register<T>(name: string, service: T): void;
429
+ /**
430
+ * Get a service
431
+ */
432
+ get<T>(name: string): T | undefined;
433
+ /**
434
+ * Check if service exists
435
+ */
436
+ has(name: string): boolean;
437
+ /**
438
+ * Clear all services
439
+ */
440
+ clear(): void;
441
+ }
442
+ /**
443
+ * Get global service locator
444
+ */
445
+ export declare function getServiceLocator(): IServiceLocator;
446
+ /**
447
+ * Reset service locator (for testing)
448
+ */
449
+ export declare function resetServiceLocator(): void;
450
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @file Core Interfaces
3
+ * @description Abstract interfaces for dependency injection and testing
4
+ *
5
+ * These interfaces define contracts for core services, enabling:
6
+ * - Dependency injection for loose coupling
7
+ * - Easy mocking in unit tests
8
+ * - Clear documentation of service capabilities
9
+ *
10
+ * @version 2.8.0
11
+ */
12
+ // =============================================================================
13
+ // Simple Service Locator Implementation
14
+ // =============================================================================
15
+ class ServiceLocator {
16
+ services = new Map();
17
+ register(name, service) {
18
+ this.services.set(name, service);
19
+ }
20
+ get(name) {
21
+ return this.services.get(name);
22
+ }
23
+ has(name) {
24
+ return this.services.has(name);
25
+ }
26
+ clear() {
27
+ this.services.clear();
28
+ }
29
+ }
30
+ // Global service locator instance
31
+ let globalServiceLocator = null;
32
+ /**
33
+ * Get global service locator
34
+ */
35
+ export function getServiceLocator() {
36
+ if (!globalServiceLocator) {
37
+ globalServiceLocator = new ServiceLocator();
38
+ }
39
+ return globalServiceLocator;
40
+ }
41
+ /**
42
+ * Reset service locator (for testing)
43
+ */
44
+ export function resetServiceLocator() {
45
+ if (globalServiceLocator) {
46
+ globalServiceLocator.clear();
47
+ }
48
+ globalServiceLocator = null;
49
+ }
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA4hBH,gFAAgF;AAChF,wCAAwC;AACxC,gFAAgF;AAEhF,MAAM,cAAc;IACV,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAA;IAE7C,QAAQ,CAAI,IAAY,EAAE,OAAU;QAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,GAAG,CAAI,IAAY;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAkB,CAAA;IACjD,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;CACF;AAED,kCAAkC;AAClC,IAAI,oBAAoB,GAA2B,IAAI,CAAA;AAEvD;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,oBAAoB,GAAG,IAAI,cAAc,EAAE,CAAA;IAC7C,CAAC;IACD,OAAO,oBAAoB,CAAA;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,oBAAoB,EAAE,CAAC;QACzB,oBAAoB,CAAC,KAAK,EAAE,CAAA;IAC9B,CAAC;IACD,oBAAoB,GAAG,IAAI,CAAA;AAC7B,CAAC"}