cmp-standards 2.6.0 → 2.8.0-alpha

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 (129) hide show
  1. package/README.md +633 -633
  2. package/dist/cache/EmbeddingCache.d.ts +109 -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/db/turso-client.js +11 -11
  11. package/dist/eslint/rules/no-async-useeffect.js +6 -6
  12. package/dist/events/EventBus.d.ts +87 -0
  13. package/dist/events/EventBus.d.ts.map +1 -0
  14. package/dist/events/EventBus.js +200 -0
  15. package/dist/events/EventBus.js.map +1 -0
  16. package/dist/events/index.d.ts +7 -0
  17. package/dist/events/index.d.ts.map +1 -0
  18. package/dist/events/index.js +9 -0
  19. package/dist/events/index.js.map +1 -0
  20. package/dist/events/types.d.ts +989 -0
  21. package/dist/events/types.d.ts.map +1 -0
  22. package/dist/events/types.js +136 -0
  23. package/dist/events/types.js.map +1 -0
  24. package/dist/experts/ConsensusEngine.d.ts +57 -0
  25. package/dist/experts/ConsensusEngine.d.ts.map +1 -0
  26. package/dist/experts/ConsensusEngine.js +146 -0
  27. package/dist/experts/ConsensusEngine.js.map +1 -0
  28. package/dist/experts/ExpertPanelService.d.ts +84 -0
  29. package/dist/experts/ExpertPanelService.d.ts.map +1 -0
  30. package/dist/experts/ExpertPanelService.js +204 -0
  31. package/dist/experts/ExpertPanelService.js.map +1 -0
  32. package/dist/experts/ExpertRouter.d.ts +68 -0
  33. package/dist/experts/ExpertRouter.d.ts.map +1 -0
  34. package/dist/experts/ExpertRouter.js +374 -0
  35. package/dist/experts/ExpertRouter.js.map +1 -0
  36. package/dist/experts/VoteCollector.d.ts +58 -0
  37. package/dist/experts/VoteCollector.d.ts.map +1 -0
  38. package/dist/experts/VoteCollector.js +146 -0
  39. package/dist/experts/VoteCollector.js.map +1 -0
  40. package/dist/experts/index.d.ts +9 -0
  41. package/dist/experts/index.d.ts.map +1 -0
  42. package/dist/experts/index.js +13 -0
  43. package/dist/experts/index.js.map +1 -0
  44. package/dist/hooks/cloud-pre-tool-use.js +20 -20
  45. package/dist/hooks/expert-review.d.ts +74 -0
  46. package/dist/hooks/expert-review.d.ts.map +1 -0
  47. package/dist/hooks/expert-review.js +220 -0
  48. package/dist/hooks/expert-review.js.map +1 -0
  49. package/dist/hooks/index.d.ts +1 -0
  50. package/dist/hooks/index.d.ts.map +1 -1
  51. package/dist/hooks/index.js +2 -0
  52. package/dist/hooks/index.js.map +1 -1
  53. package/dist/index.d.ts +13 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +22 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/performance/Debouncer.d.ts +91 -0
  58. package/dist/performance/Debouncer.d.ts.map +1 -0
  59. package/dist/performance/Debouncer.js +198 -0
  60. package/dist/performance/Debouncer.js.map +1 -0
  61. package/dist/performance/MemoryDecay.d.ts +82 -0
  62. package/dist/performance/MemoryDecay.d.ts.map +1 -0
  63. package/dist/performance/MemoryDecay.js +153 -0
  64. package/dist/performance/MemoryDecay.js.map +1 -0
  65. package/dist/performance/index.d.ts +7 -0
  66. package/dist/performance/index.d.ts.map +1 -0
  67. package/dist/performance/index.js +9 -0
  68. package/dist/performance/index.js.map +1 -0
  69. package/dist/schema/expert-types.d.ts +395 -0
  70. package/dist/schema/expert-types.d.ts.map +1 -0
  71. package/dist/schema/expert-types.js +250 -0
  72. package/dist/schema/expert-types.js.map +1 -0
  73. package/dist/schema/plans.d.ts +16 -16
  74. package/dist/schema/tracking.d.ts +90 -90
  75. package/dist/services/ContextGenerator.js +7 -7
  76. package/dist/services/ProjectScaffold.js +76 -76
  77. package/dist/services/context-injector.d.ts +6 -0
  78. package/dist/services/context-injector.d.ts.map +1 -1
  79. package/dist/services/context-injector.js +43 -3
  80. package/dist/services/context-injector.js.map +1 -1
  81. package/dist/services/memory-router.d.ts +25 -1
  82. package/dist/services/memory-router.d.ts.map +1 -1
  83. package/dist/services/memory-router.js +176 -32
  84. package/dist/services/memory-router.js.map +1 -1
  85. package/dist/services/pattern-tracker.d.ts +5 -1
  86. package/dist/services/pattern-tracker.d.ts.map +1 -1
  87. package/dist/services/pattern-tracker.js +114 -36
  88. package/dist/services/pattern-tracker.js.map +1 -1
  89. package/dist/services/semantic-search.js +2 -2
  90. package/dist/types/index.d.ts +329 -4
  91. package/dist/types/index.d.ts.map +1 -1
  92. package/dist/types/index.js +186 -9
  93. package/dist/types/index.js.map +1 -1
  94. package/package.json +105 -100
  95. package/standards/README.md +50 -50
  96. package/standards/experts/expert-routing.md +215 -215
  97. package/standards/general/code-quality.md +86 -86
  98. package/standards/general/memory-usage.md +205 -205
  99. package/standards/general/sync-workflow.md +235 -235
  100. package/standards/general/workflow.md +82 -82
  101. package/standards/hooks/mandatory-tracking.md +446 -446
  102. package/standards/infrastructure/cloud-database.md +287 -287
  103. package/standards/mcp/server-design.md +243 -243
  104. package/standards/mcp/tool-patterns.md +354 -354
  105. package/standards/skills/skill-structure.md +286 -286
  106. package/standards/skills/workflow-design.md +323 -323
  107. package/standards/tools/tool-design.md +297 -297
  108. package/templates/agents/architecture-expert.md +61 -61
  109. package/templates/agents/database-expert.md +62 -62
  110. package/templates/agents/documentation-expert.md +57 -57
  111. package/templates/agents/memory-expert.md +88 -88
  112. package/templates/agents/performance-expert.md +61 -61
  113. package/templates/agents/security-expert.md +59 -59
  114. package/templates/agents/ux-expert.md +63 -63
  115. package/templates/agents/worker.md +75 -75
  116. package/templates/ai-skills/SKILL_TEMPLATE.md +55 -55
  117. package/templates/claude-settings.json +72 -72
  118. package/templates/commands/experts.md +138 -138
  119. package/templates/hooks/README.md +158 -158
  120. package/templates/hooks/project.config.json.template +77 -77
  121. package/templates/hooks/settings.local.json.template +57 -57
  122. package/templates/memory-config.json +56 -56
  123. package/templates/memory-config.schema.json +212 -212
  124. package/templates/settings.json +58 -58
  125. package/templates/skills/continue.md +205 -205
  126. package/templates/workflows/business-improvement.md +264 -264
  127. package/templates/workflows/expert-review.md +153 -153
  128. package/templates/workflows/internal-app.md +245 -245
  129. package/templates/workflows/sync-docs.md +187 -187
@@ -0,0 +1,146 @@
1
+ /**
2
+ * @file VoteCollector - Collects and aggregates expert votes
3
+ * @description Manages vote collection with timeout and progress tracking
4
+ */
5
+ import { getEventBus } from '../events/EventBus.js';
6
+ import { createEventMetadata } from '../events/types.js';
7
+ import { ulid } from 'ulid';
8
+ const DEFAULT_CONFIG = {
9
+ voteTimeout: 5000,
10
+ debug: false,
11
+ };
12
+ // =============================================================================
13
+ // VoteCollector Implementation
14
+ // =============================================================================
15
+ export class VoteCollector {
16
+ config;
17
+ eventBus;
18
+ constructor(config = {}) {
19
+ this.config = { ...DEFAULT_CONFIG, ...config };
20
+ this.eventBus = getEventBus();
21
+ }
22
+ /**
23
+ * Collect votes from all selected experts in parallel
24
+ */
25
+ async collectVotes(taskId, experts, context, voteProvider) {
26
+ const startTime = Date.now();
27
+ if (this.config.debug) {
28
+ console.log(`[VoteCollector] Starting vote collection for ${taskId}`);
29
+ console.log(`[VoteCollector] Experts: ${experts.map(e => e.expertId).join(', ')}`);
30
+ }
31
+ // Execute all votes in parallel with timeout
32
+ const votePromises = experts.map(expert => this.collectSingleVote(expert.expertId, taskId, context, voteProvider));
33
+ const results = await Promise.allSettled(votePromises);
34
+ // Process results
35
+ const votes = [];
36
+ let completed = 0;
37
+ let failed = 0;
38
+ let timedOut = 0;
39
+ for (let i = 0; i < results.length; i++) {
40
+ const result = results[i];
41
+ const expertId = experts[i].expertId;
42
+ if (result.status === 'fulfilled') {
43
+ votes.push(result.value);
44
+ completed++;
45
+ // Emit vote submitted event
46
+ await this.eventBus.publish({
47
+ type: 'expert.vote_submitted',
48
+ expertId,
49
+ taskId,
50
+ vote: result.value.vote,
51
+ confidence: result.value.confidence,
52
+ issues: result.value.issues,
53
+ decisionId: result.value.decisionId,
54
+ metadata: createEventMetadata('VoteCollector'),
55
+ });
56
+ }
57
+ else {
58
+ const error = result.reason;
59
+ if (error.message.includes('timeout')) {
60
+ timedOut++;
61
+ if (this.config.debug) {
62
+ console.log(`[VoteCollector] ${expertId} timed out`);
63
+ }
64
+ }
65
+ else {
66
+ failed++;
67
+ if (this.config.debug) {
68
+ console.log(`[VoteCollector] ${expertId} failed: ${error.message}`);
69
+ }
70
+ }
71
+ }
72
+ }
73
+ const totalDurationMs = Date.now() - startTime;
74
+ if (this.config.debug) {
75
+ console.log(`[VoteCollector] Collection completed in ${totalDurationMs}ms ` +
76
+ `(${completed} completed, ${failed} failed, ${timedOut} timed out)`);
77
+ }
78
+ return {
79
+ taskId,
80
+ votes,
81
+ completed,
82
+ failed,
83
+ timedOut,
84
+ totalDurationMs,
85
+ };
86
+ }
87
+ /**
88
+ * Collect a single vote with timeout protection
89
+ */
90
+ async collectSingleVote(expertId, taskId, context, voteProvider) {
91
+ return new Promise((resolve, reject) => {
92
+ const timeoutId = setTimeout(() => {
93
+ reject(new Error(`Expert ${expertId} vote timeout after ${this.config.voteTimeout}ms`));
94
+ }, this.config.voteTimeout);
95
+ voteProvider(expertId, taskId, context)
96
+ .then(result => {
97
+ clearTimeout(timeoutId);
98
+ resolve(result);
99
+ })
100
+ .catch(error => {
101
+ clearTimeout(timeoutId);
102
+ reject(error);
103
+ });
104
+ });
105
+ }
106
+ /**
107
+ * Convert vote results to VoteRecords for ConsensusEngine
108
+ */
109
+ toVoteRecords(results) {
110
+ return results.map(r => ({
111
+ expertId: r.expertId,
112
+ vote: r.vote,
113
+ confidence: r.confidence,
114
+ decisionId: r.decisionId,
115
+ }));
116
+ }
117
+ }
118
+ // =============================================================================
119
+ // Mock Vote Provider (for testing)
120
+ // =============================================================================
121
+ export function createMockVoteProvider(votes) {
122
+ return async (expertId, taskId, _context) => {
123
+ const vote = votes[expertId];
124
+ if (!vote) {
125
+ throw new Error(`No mock vote configured for ${expertId}`);
126
+ }
127
+ return {
128
+ ...vote,
129
+ decisionId: vote.decisionId || `decision-${ulid()}`,
130
+ };
131
+ };
132
+ }
133
+ // =============================================================================
134
+ // Singleton
135
+ // =============================================================================
136
+ let globalCollector = null;
137
+ export function getVoteCollector(config) {
138
+ if (!globalCollector) {
139
+ globalCollector = new VoteCollector(config);
140
+ }
141
+ return globalCollector;
142
+ }
143
+ export function resetVoteCollector() {
144
+ globalCollector = null;
145
+ }
146
+ //# sourceMappingURL=VoteCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoteCollector.js","sourceRoot":"","sources":["../../src/experts/VoteCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file Experts Module - cmp-standards v2.8
3
+ * @description Expert panel system with routing, voting, and consensus
4
+ */
5
+ export { ExpertRouter, ExpertId, ExpertIdSchema, ExpertDefinition, ExpertSelection, EXPERTS, Criticality, CriticalityResult, RoutingContext, RoutingResult, detectCriticality, getExpertRouter, } from './ExpertRouter.js';
6
+ export { ConsensusEngine, ConsensusDecision, ConsensusThreshold, ConsensusResult, ConsensusInput, VoteRecord, getConsensusEngine, } from './ConsensusEngine.js';
7
+ export { VoteCollector, VoteCollectorConfig, ExpertVoteResult, VoteCollectionResult, ExpertVoteProvider, ExpertReviewContext, getVoteCollector, resetVoteCollector, createMockVoteProvider, } from './VoteCollector.js';
8
+ export { ExpertPanelService, ExpertPanelConfig, PanelRequest, PanelResult, PanelTiming, getExpertPanelService, resetExpertPanelService, } from './ExpertPanelService.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/experts/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,UAAU,EACV,kBAAkB,GACnB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,yBAAyB,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @file Experts Module - cmp-standards v2.8
3
+ * @description Expert panel system with routing, voting, and consensus
4
+ */
5
+ // Expert Router
6
+ export { ExpertRouter, ExpertIdSchema, EXPERTS, detectCriticality, getExpertRouter, } from './ExpertRouter.js';
7
+ // Consensus Engine
8
+ export { ConsensusEngine, getConsensusEngine, } from './ConsensusEngine.js';
9
+ // Vote Collector
10
+ export { VoteCollector, getVoteCollector, resetVoteCollector, createMockVoteProvider, } from './VoteCollector.js';
11
+ // Expert Panel Service
12
+ export { ExpertPanelService, getExpertPanelService, resetExpertPanelService, } from './ExpertPanelService.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/experts/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gBAAgB;AAChB,OAAO,EACL,YAAY,EAEZ,cAAc,EAGd,OAAO,EAKP,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAE1B,mBAAmB;AACnB,OAAO,EACL,eAAe,EAMf,kBAAkB,GACnB,MAAM,sBAAsB,CAAA;AAE7B,iBAAiB;AACjB,OAAO,EACL,aAAa,EAMb,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAA;AAE3B,uBAAuB;AACvB,OAAO,EACL,kBAAkB,EAKlB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,yBAAyB,CAAA"}
@@ -65,16 +65,16 @@ export async function onPreToolUse(event) {
65
65
  // No hay sesión activa, advertir pero permitir
66
66
  return {
67
67
  proceed: true,
68
- warning: `⚠️ No hay sesión de trabajo activa.
69
-
70
- Para tracking completo, inicia una sesión:
71
- \`\`\`
72
- Tarea: [descripción]
73
- Plan:
74
- 1. [paso 1]
75
- 2. [paso 2]
76
- \`\`\`
77
-
68
+ warning: `⚠️ No hay sesión de trabajo activa.
69
+
70
+ Para tracking completo, inicia una sesión:
71
+ \`\`\`
72
+ Tarea: [descripción]
73
+ Plan:
74
+ 1. [paso 1]
75
+ 2. [paso 2]
76
+ \`\`\`
77
+
78
78
  Continuando sin tracking...`
79
79
  };
80
80
  }
@@ -84,16 +84,16 @@ Continuando sin tracking...`
84
84
  // No hay tarea activa, advertir pero permitir
85
85
  return {
86
86
  proceed: true,
87
- warning: `⚠️ No hay tarea registrada.
88
-
89
- Registra la tarea antes de continuar:
90
- \`\`\`
91
- Tarea: [qué estás haciendo]
92
- Plan:
93
- 1. [paso 1]
94
- 2. [paso 2]
95
- \`\`\`
96
-
87
+ warning: `⚠️ No hay tarea registrada.
88
+
89
+ Registra la tarea antes de continuar:
90
+ \`\`\`
91
+ Tarea: [qué estás haciendo]
92
+ Plan:
93
+ 1. [paso 1]
94
+ 2. [paso 2]
95
+ \`\`\`
96
+
97
97
  Esto permite continuidad si se cierra la sesión.`
98
98
  };
99
99
  }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @file Expert Review Hook
3
+ * @description On-demand expert panel review for code changes
4
+ *
5
+ * Features:
6
+ * - Integrates ExpertPanelService with Claude Code hooks
7
+ * - Caches review results to avoid duplicate reviews
8
+ * - Configurable auto-review for critical files
9
+ */
10
+ import { PanelResult } from '../experts/ExpertPanelService.js';
11
+ import { ExpertVoteProvider } from '../experts/VoteCollector.js';
12
+ import { ExpertId } from '../experts/ExpertRouter.js';
13
+ export interface ReviewRequest {
14
+ taskId?: string;
15
+ files: string[];
16
+ content?: string;
17
+ diff?: string;
18
+ domain?: string;
19
+ cwd: string;
20
+ /** Force review even if cached */
21
+ force?: boolean;
22
+ /** Use specific experts only */
23
+ experts?: ExpertId[];
24
+ }
25
+ export interface ReviewResult {
26
+ reviewed: boolean;
27
+ panelResult?: PanelResult;
28
+ cached?: boolean;
29
+ error?: string;
30
+ }
31
+ export interface ExpertReviewConfig {
32
+ /** Auto-review critical files */
33
+ autoReviewCritical: boolean;
34
+ /** Cache review results for N hours */
35
+ cacheTtlHours: number;
36
+ /** Enable debug logging */
37
+ debug: boolean;
38
+ }
39
+ export declare class ExpertReviewHook {
40
+ private config;
41
+ private panelService;
42
+ private voteProvider;
43
+ constructor(config?: Partial<ExpertReviewConfig>);
44
+ /**
45
+ * Set the vote provider for the expert panel
46
+ * This must be called before runReview if using real API calls
47
+ */
48
+ setVoteProvider(provider: ExpertVoteProvider): void;
49
+ /**
50
+ * Run expert review on files
51
+ */
52
+ runReview(request: ReviewRequest): Promise<ReviewResult>;
53
+ /**
54
+ * Check if files need review (quick check without running panel)
55
+ */
56
+ needsReview(files: string[], content?: string): boolean;
57
+ /**
58
+ * Should auto-review be triggered for these files?
59
+ */
60
+ shouldAutoReview(files: string[], content?: string): boolean;
61
+ /**
62
+ * Get configuration
63
+ */
64
+ getConfig(): ExpertReviewConfig;
65
+ }
66
+ export declare function getExpertReviewHook(config?: Partial<ExpertReviewConfig>): ExpertReviewHook;
67
+ export declare function resetExpertReviewHook(): void;
68
+ export declare function onExpertReview(files: string[], options?: {
69
+ cwd?: string;
70
+ force?: boolean;
71
+ experts?: ExpertId[];
72
+ }): Promise<ReviewResult>;
73
+ export default onExpertReview;
74
+ //# sourceMappingURL=expert-review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expert-review.d.ts","sourceRoot":"","sources":["../../src/hooks/expert-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAGL,WAAW,EACZ,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAOrD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gCAAgC;IAChC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,kBAAkB,EAAE,OAAO,CAAA;IAC3B,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAA;IACrB,2BAA2B;IAC3B,KAAK,EAAE,OAAO,CAAA;CACf;AAuCD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,YAAY,CAAkC;gBAE1C,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAKpD;;;OAGG;IACH,eAAe,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAKnD;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAqF9D;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAIvD;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAa5D;;OAEG;IACH,SAAS,IAAI,kBAAkB;CAGhC;AAQD,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAK1F;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAMD,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAA;CAChB,GACL,OAAO,CAAC,YAAY,CAAC,CAUvB;AAmCD,eAAe,cAAc,CAAA"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * @file Expert Review Hook
3
+ * @description On-demand expert panel review for code changes
4
+ *
5
+ * Features:
6
+ * - Integrates ExpertPanelService with Claude Code hooks
7
+ * - Caches review results to avoid duplicate reviews
8
+ * - Configurable auto-review for critical files
9
+ */
10
+ import { loadEnvFromAncestors } from '../utils/env-loader.js';
11
+ import { upstash } from '../db/upstash-client.js';
12
+ import { getExpertPanelService, } from '../experts/ExpertPanelService.js';
13
+ import { ulid } from 'ulid';
14
+ const DEFAULT_CONFIG = {
15
+ autoReviewCritical: true,
16
+ cacheTtlHours: 4,
17
+ debug: false,
18
+ };
19
+ // =============================================================================
20
+ // System Detection
21
+ // =============================================================================
22
+ function detectSystem(cwd) {
23
+ if (cwd.includes('swarmscale') || cwd.includes('SwarmScale')) {
24
+ return 'SWARMSCALE';
25
+ }
26
+ if (cwd.includes('easycharter') || cwd.includes('charter')) {
27
+ return 'CHARTER';
28
+ }
29
+ if (cwd.includes('carlosmartinpavon')) {
30
+ return 'CMP';
31
+ }
32
+ return 'UNKNOWN';
33
+ }
34
+ // =============================================================================
35
+ // Review Cache
36
+ // =============================================================================
37
+ function createCacheKey(files, system) {
38
+ const sortedFiles = [...files].sort().join('|');
39
+ const hash = Buffer.from(sortedFiles).toString('base64').slice(0, 32);
40
+ return `review:${system}:${hash}`;
41
+ }
42
+ // =============================================================================
43
+ // Expert Review Implementation
44
+ // =============================================================================
45
+ export class ExpertReviewHook {
46
+ config;
47
+ panelService;
48
+ voteProvider = null;
49
+ constructor(config = {}) {
50
+ this.config = { ...DEFAULT_CONFIG, ...config };
51
+ this.panelService = getExpertPanelService();
52
+ }
53
+ /**
54
+ * Set the vote provider for the expert panel
55
+ * This must be called before runReview if using real API calls
56
+ */
57
+ setVoteProvider(provider) {
58
+ this.voteProvider = provider;
59
+ this.panelService.setVoteProvider(provider);
60
+ }
61
+ /**
62
+ * Run expert review on files
63
+ */
64
+ async runReview(request) {
65
+ const { files, content, diff, domain, cwd, force, experts } = request;
66
+ // Load environment
67
+ loadEnvFromAncestors(cwd);
68
+ const system = detectSystem(cwd);
69
+ const cacheKey = createCacheKey(files, system);
70
+ // Check cache unless forced
71
+ if (!force) {
72
+ try {
73
+ const cached = await upstash.getCache(cacheKey);
74
+ if (cached) {
75
+ if (this.config.debug) {
76
+ console.log('[ExpertReview] Using cached result');
77
+ }
78
+ return {
79
+ reviewed: true,
80
+ panelResult: cached,
81
+ cached: true,
82
+ };
83
+ }
84
+ }
85
+ catch {
86
+ // Cache miss or error, continue
87
+ }
88
+ }
89
+ // Check if vote provider is set
90
+ if (!this.voteProvider) {
91
+ return {
92
+ reviewed: false,
93
+ error: 'Vote provider not configured. Call setVoteProvider() first.',
94
+ };
95
+ }
96
+ // Generate task ID if not provided
97
+ const taskId = request.taskId || `review-${ulid()}`;
98
+ try {
99
+ if (this.config.debug) {
100
+ console.log(`[ExpertReview] Running panel for ${files.length} files`);
101
+ }
102
+ // Run expert panel
103
+ const panelResult = await this.panelService.runPanel({
104
+ taskId,
105
+ files,
106
+ content,
107
+ diff,
108
+ domain,
109
+ includeExperts: experts,
110
+ });
111
+ // Cache result
112
+ try {
113
+ await upstash.setCache(cacheKey, panelResult, this.config.cacheTtlHours * 60 * 60);
114
+ }
115
+ catch {
116
+ // Cache error, continue
117
+ }
118
+ if (this.config.debug) {
119
+ console.log(`[ExpertReview] Decision: ${panelResult.consensus.decision}`);
120
+ }
121
+ return {
122
+ reviewed: true,
123
+ panelResult,
124
+ cached: false,
125
+ };
126
+ }
127
+ catch (error) {
128
+ const errorMessage = error instanceof Error ? error.message : String(error);
129
+ console.error('[ExpertReview] Error:', errorMessage);
130
+ return {
131
+ reviewed: false,
132
+ error: errorMessage,
133
+ };
134
+ }
135
+ }
136
+ /**
137
+ * Check if files need review (quick check without running panel)
138
+ */
139
+ needsReview(files, content) {
140
+ return this.panelService.needsReview(files, content);
141
+ }
142
+ /**
143
+ * Should auto-review be triggered for these files?
144
+ */
145
+ shouldAutoReview(files, content) {
146
+ if (!this.config.autoReviewCritical) {
147
+ return false;
148
+ }
149
+ // Only auto-review if critical
150
+ const routing = this.panelService.previewExperts({ files, content });
151
+ const preview = this.panelService.previewExperts({ files, content });
152
+ // Check if any required-for-critical expert would be included
153
+ return preview.some(e => e.reasons.includes('Required for critical code'));
154
+ }
155
+ /**
156
+ * Get configuration
157
+ */
158
+ getConfig() {
159
+ return { ...this.config };
160
+ }
161
+ }
162
+ // =============================================================================
163
+ // Singleton
164
+ // =============================================================================
165
+ let globalHook = null;
166
+ export function getExpertReviewHook(config) {
167
+ if (!globalHook) {
168
+ globalHook = new ExpertReviewHook(config);
169
+ }
170
+ return globalHook;
171
+ }
172
+ export function resetExpertReviewHook() {
173
+ globalHook = null;
174
+ }
175
+ // =============================================================================
176
+ // CLI Entry Point
177
+ // =============================================================================
178
+ export async function onExpertReview(files, options = {}) {
179
+ const hook = getExpertReviewHook();
180
+ const cwd = options.cwd || process.cwd();
181
+ return hook.runReview({
182
+ files,
183
+ cwd,
184
+ force: options.force,
185
+ experts: options.experts,
186
+ });
187
+ }
188
+ // CLI
189
+ if (process.argv[1]?.includes('expert-review')) {
190
+ const files = process.argv.slice(2).filter(f => !f.startsWith('--'));
191
+ const force = process.argv.includes('--force');
192
+ const cwd = process.cwd();
193
+ if (files.length === 0) {
194
+ console.log('Usage: expert-review <file1> [file2] [...] [--force]');
195
+ process.exit(1);
196
+ }
197
+ onExpertReview(files, { cwd, force })
198
+ .then(result => {
199
+ if (result.reviewed && result.panelResult) {
200
+ const { consensus, allIssues } = result.panelResult;
201
+ console.log(`\n=== Expert Review ===`);
202
+ console.log(`Decision: ${consensus.decision}`);
203
+ console.log(`Threshold: ${consensus.threshold}`);
204
+ console.log(`Votes: ${consensus.votes.approve} approve, ${consensus.votes.reject} reject, ${consensus.votes.warn} warn`);
205
+ console.log(`Issues: ${allIssues.length}`);
206
+ if (result.cached) {
207
+ console.log(`(Cached result)`);
208
+ }
209
+ }
210
+ else {
211
+ console.log(`Review skipped: ${result.error || 'Unknown reason'}`);
212
+ }
213
+ })
214
+ .catch(error => {
215
+ console.error('Error:', error.message);
216
+ process.exit(1);
217
+ });
218
+ }
219
+ export default onExpertReview;
220
+ //# sourceMappingURL=expert-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expert-review.js","sourceRoot":"","sources":["../../src/hooks/expert-review.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,5 @@ export { MemoryCheckpointHook, runMemoryCheckpointHook } from './memory-checkpoi
8
8
  export { onSessionStart as cloudSessionStart } from './cloud-session-start.js';
9
9
  export { onPreToolUse as cloudPreToolUse } from './cloud-pre-tool-use.js';
10
10
  export { onPostToolUse as cloudPostToolUse } from './cloud-post-tool-use.js';
11
+ export { ExpertReviewHook, ExpertReviewConfig, ReviewRequest, ReviewResult, getExpertReviewHook, resetExpertReviewHook, onExpertReview, } from './expert-review.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAGtF,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAGtF,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAG5E,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,GACf,MAAM,oBAAoB,CAAA"}
@@ -10,4 +10,6 @@ export { MemoryCheckpointHook, runMemoryCheckpointHook } from './memory-checkpoi
10
10
  export { onSessionStart as cloudSessionStart } from './cloud-session-start.js';
11
11
  export { onPreToolUse as cloudPreToolUse } from './cloud-pre-tool-use.js';
12
12
  export { onPostToolUse as cloudPostToolUse } from './cloud-post-tool-use.js';
13
+ // Expert Review hook (v2.8)
14
+ export { ExpertReviewHook, getExpertReviewHook, resetExpertReviewHook, onExpertReview, } from './expert-review.js';
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,6BAA6B;AAC7B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAEtF,gCAAgC;AAChC,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,6BAA6B;AAC7B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAEtF,gCAAgC;AAChC,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE5E,4BAA4B;AAC5B,OAAO,EACL,gBAAgB,EAIhB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,GACf,MAAM,oBAAoB,CAAA"}
package/dist/index.d.ts CHANGED
@@ -40,4 +40,17 @@ export { MemoryMCPServer, startMCPServer } from './mcp/server.js';
40
40
  export { startDashboard } from './dashboard/server.js';
41
41
  export { FeedbackCollector, createFeedbackCollector } from './feedback/collector.js';
42
42
  export { AnalyticsTracker, createAnalyticsTracker } from './analytics/tracker.js';
43
+ export { EventBus, EventBusConfig, getEventBus, resetEventBus, emitEvent, } from './events/index.js';
44
+ export type { Event, EventType, EventMetadata, EventHandler, TaskNeedsReviewEvent, ExpertVoteSubmittedEvent, ConsensusReachedEvent, PatternDetectedEvent, } from './events/index.js';
45
+ export { EmbeddingCache, EmbeddingCacheConfig, CacheStats, getEmbeddingCache, resetEmbeddingCache, createCachedEmbedding, } from './cache/index.js';
46
+ export { ExpertRouter, ExpertId, ExpertIdSchema, ExpertDefinition, EXPERTS, detectCriticality, getExpertRouter, ConsensusEngine, getConsensusEngine, VoteCollector, getVoteCollector, resetVoteCollector, createMockVoteProvider, ExpertPanelService, getExpertPanelService, resetExpertPanelService, } from './experts/index.js';
47
+ export type { Criticality, CriticalityResult, RoutingContext, RoutingResult, ExpertSelection, ConsensusDecision, ConsensusThreshold, ConsensusResult, ConsensusInput, VoteRecord, VoteCollectorConfig, ExpertVoteResult, VoteCollectionResult, ExpertVoteProvider, ExpertReviewContext, ExpertPanelConfig, PanelRequest, PanelResult, PanelTiming, } from './experts/index.js';
48
+ export { ExpertIssueSchema, ExpertVoteSchema, ExpertDecisionContentSchema, ExpertRecommendationContentSchema, PatternStatContentSchema, MemoryLinkContentSchema, ConsensusResultContentSchema, ItemTypeV28Schema, createExpertDecision, createPatternStat, createMemoryLink, } from './schema/expert-types.js';
49
+ export type { ExpertIssue, ExpertVote, ExpertDecisionContent, ExpertRecommendationContent, PatternStatContent, MemoryLinkContent, ConsensusResultContent, ItemTypeV28, } from './schema/expert-types.js';
50
+ export { Debouncer, EmbeddingDebouncer, HookDebouncer, getDebouncer, getEmbeddingDebouncer, getHookDebouncer, resetDebouncers, } from './performance/index.js';
51
+ export type { DebouncerConfig, DebouncerStats, } from './performance/index.js';
52
+ export { MemoryDecay, getMemoryDecay, resetMemoryDecay, } from './performance/index.js';
53
+ export type { MemoryForScoring, ScoredMemory, DecayConfig, } from './performance/index.js';
54
+ export { ExpertReviewHook, getExpertReviewHook, resetExpertReviewHook, onExpertReview, } from './hooks/index.js';
55
+ export type { ExpertReviewConfig, ReviewRequest, ReviewResult, } from './hooks/index.js';
43
56
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -53,4 +53,26 @@ export { startDashboard } from './dashboard/server.js';
53
53
  export { FeedbackCollector, createFeedbackCollector } from './feedback/collector.js';
54
54
  // Analytics
55
55
  export { AnalyticsTracker, createAnalyticsTracker } from './analytics/tracker.js';
56
+ // =============================================================================
57
+ // v2.8 - Expert Panel System
58
+ // =============================================================================
59
+ // Event Bus (Event-Driven Architecture)
60
+ export { EventBus, getEventBus, resetEventBus, emitEvent, } from './events/index.js';
61
+ // Embedding Cache (Performance Optimization)
62
+ export { EmbeddingCache, getEmbeddingCache, resetEmbeddingCache, createCachedEmbedding, } from './cache/index.js';
63
+ // Expert Router & Consensus
64
+ export { ExpertRouter, ExpertIdSchema, EXPERTS, detectCriticality, getExpertRouter, ConsensusEngine, getConsensusEngine,
65
+ // v2.8 Phase 2
66
+ VoteCollector, getVoteCollector, resetVoteCollector, createMockVoteProvider, ExpertPanelService, getExpertPanelService, resetExpertPanelService, } from './experts/index.js';
67
+ // Expert Types (v2.8 Schema Extensions)
68
+ export { ExpertIssueSchema, ExpertVoteSchema, ExpertDecisionContentSchema, ExpertRecommendationContentSchema, PatternStatContentSchema, MemoryLinkContentSchema, ConsensusResultContentSchema, ItemTypeV28Schema, createExpertDecision, createPatternStat, createMemoryLink, } from './schema/expert-types.js';
69
+ // =============================================================================
70
+ // v2.8 Phase 3 - Performance Optimization
71
+ // =============================================================================
72
+ // Debouncing
73
+ export { Debouncer, EmbeddingDebouncer, HookDebouncer, getDebouncer, getEmbeddingDebouncer, getHookDebouncer, resetDebouncers, } from './performance/index.js';
74
+ // Memory Decay
75
+ export { MemoryDecay, getMemoryDecay, resetMemoryDecay, } from './performance/index.js';
76
+ // Expert Review Hook
77
+ export { ExpertReviewHook, getExpertReviewHook, resetExpertReviewHook, onExpertReview, } from './hooks/index.js';
56
78
  //# sourceMappingURL=index.js.map