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
@@ -0,0 +1,395 @@
1
+ /**
2
+ * @file Expert Types Schema - cmp-standards v2.8
3
+ * @description Type definitions for expert panel system
4
+ *
5
+ * These types extend the existing DEV_Items.content JSON schema
6
+ * to support expert decisions, recommendations, and pattern tracking.
7
+ */
8
+ import { z } from 'zod';
9
+ export declare const ExpertIssueSchema: z.ZodObject<{
10
+ /** Issue severity level */
11
+ severity: z.ZodEnum<["critical", "high", "medium", "low"]>;
12
+ /** Issue description */
13
+ message: z.ZodString;
14
+ /** Affected file path */
15
+ file: z.ZodOptional<z.ZodString>;
16
+ /** Line number in file */
17
+ line: z.ZodOptional<z.ZodNumber>;
18
+ /** Suggested fix */
19
+ fix: z.ZodOptional<z.ZodString>;
20
+ /** Issue category */
21
+ category: z.ZodOptional<z.ZodString>;
22
+ }, "strip", z.ZodTypeAny, {
23
+ message: string;
24
+ severity: "critical" | "high" | "medium" | "low";
25
+ line?: number | undefined;
26
+ category?: string | undefined;
27
+ fix?: string | undefined;
28
+ file?: string | undefined;
29
+ }, {
30
+ message: string;
31
+ severity: "critical" | "high" | "medium" | "low";
32
+ line?: number | undefined;
33
+ category?: string | undefined;
34
+ fix?: string | undefined;
35
+ file?: string | undefined;
36
+ }>;
37
+ export type ExpertIssue = z.infer<typeof ExpertIssueSchema>;
38
+ export declare const ExpertVoteSchema: z.ZodEnum<["APPROVE", "REJECT", "WARN", "ABSTAIN"]>;
39
+ export type ExpertVote = z.infer<typeof ExpertVoteSchema>;
40
+ export declare const ExpertDecisionContentSchema: z.ZodObject<{
41
+ /** Expert identifier (e.g., 'security-expert', 'performance-expert') */
42
+ expertId: z.ZodString;
43
+ /** Associated task ID */
44
+ taskId: z.ZodString;
45
+ /** Expert's vote */
46
+ vote: z.ZodEnum<["APPROVE", "REJECT", "WARN", "ABSTAIN"]>;
47
+ /** Confidence level (0.0 - 1.0) */
48
+ confidence: z.ZodNumber;
49
+ /** Detailed reasoning for the decision */
50
+ reasoning: z.ZodOptional<z.ZodString>;
51
+ /** List of issues found */
52
+ issues: z.ZodDefault<z.ZodArray<z.ZodObject<{
53
+ /** Issue severity level */
54
+ severity: z.ZodEnum<["critical", "high", "medium", "low"]>;
55
+ /** Issue description */
56
+ message: z.ZodString;
57
+ /** Affected file path */
58
+ file: z.ZodOptional<z.ZodString>;
59
+ /** Line number in file */
60
+ line: z.ZodOptional<z.ZodNumber>;
61
+ /** Suggested fix */
62
+ fix: z.ZodOptional<z.ZodString>;
63
+ /** Issue category */
64
+ category: z.ZodOptional<z.ZodString>;
65
+ }, "strip", z.ZodTypeAny, {
66
+ message: string;
67
+ severity: "critical" | "high" | "medium" | "low";
68
+ line?: number | undefined;
69
+ category?: string | undefined;
70
+ fix?: string | undefined;
71
+ file?: string | undefined;
72
+ }, {
73
+ message: string;
74
+ severity: "critical" | "high" | "medium" | "low";
75
+ line?: number | undefined;
76
+ category?: string | undefined;
77
+ fix?: string | undefined;
78
+ file?: string | undefined;
79
+ }>, "many">>;
80
+ /** Files reviewed */
81
+ filesReviewed: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
82
+ /** Time taken for review in milliseconds */
83
+ reviewDurationMs: z.ZodOptional<z.ZodNumber>;
84
+ /** When the review was completed */
85
+ reviewedAt: z.ZodString;
86
+ }, "strip", z.ZodTypeAny, {
87
+ issues: {
88
+ message: string;
89
+ severity: "critical" | "high" | "medium" | "low";
90
+ line?: number | undefined;
91
+ category?: string | undefined;
92
+ fix?: string | undefined;
93
+ file?: string | undefined;
94
+ }[];
95
+ taskId: string;
96
+ expertId: string;
97
+ vote: "APPROVE" | "REJECT" | "WARN" | "ABSTAIN";
98
+ confidence: number;
99
+ filesReviewed: string[];
100
+ reviewedAt: string;
101
+ reasoning?: string | undefined;
102
+ reviewDurationMs?: number | undefined;
103
+ }, {
104
+ taskId: string;
105
+ expertId: string;
106
+ vote: "APPROVE" | "REJECT" | "WARN" | "ABSTAIN";
107
+ confidence: number;
108
+ reviewedAt: string;
109
+ issues?: {
110
+ message: string;
111
+ severity: "critical" | "high" | "medium" | "low";
112
+ line?: number | undefined;
113
+ category?: string | undefined;
114
+ fix?: string | undefined;
115
+ file?: string | undefined;
116
+ }[] | undefined;
117
+ reasoning?: string | undefined;
118
+ filesReviewed?: string[] | undefined;
119
+ reviewDurationMs?: number | undefined;
120
+ }>;
121
+ export type ExpertDecisionContent = z.infer<typeof ExpertDecisionContentSchema>;
122
+ export declare const RecommendationPrioritySchema: z.ZodEnum<["critical", "high", "medium", "low"]>;
123
+ export declare const RecommendationEffortSchema: z.ZodEnum<["trivial", "small", "medium", "large"]>;
124
+ export declare const RecommendationStatusSchema: z.ZodEnum<["pending", "approved", "rejected", "implemented", "deferred"]>;
125
+ export declare const ExpertRecommendationContentSchema: z.ZodObject<{
126
+ /** Expert that made the recommendation */
127
+ expertId: z.ZodString;
128
+ /** Associated task ID */
129
+ taskId: z.ZodString;
130
+ /** Area/domain of the recommendation */
131
+ area: z.ZodString;
132
+ /** Recommendation title */
133
+ title: z.ZodString;
134
+ /** Detailed description */
135
+ description: z.ZodString;
136
+ /** Priority level */
137
+ priority: z.ZodEnum<["critical", "high", "medium", "low"]>;
138
+ /** Estimated effort to implement */
139
+ effort: z.ZodEnum<["trivial", "small", "medium", "large"]>;
140
+ /** Current status */
141
+ status: z.ZodDefault<z.ZodEnum<["pending", "approved", "rejected", "implemented", "deferred"]>>;
142
+ /** Implementation details if implemented */
143
+ implementation: z.ZodOptional<z.ZodObject<{
144
+ /** PR or commit URL */
145
+ url: z.ZodString;
146
+ /** When it was implemented */
147
+ appliedAt: z.ZodString;
148
+ /** Implementation result */
149
+ result: z.ZodEnum<["success", "partial", "failed"]>;
150
+ /** Notes about implementation */
151
+ notes: z.ZodOptional<z.ZodString>;
152
+ }, "strip", z.ZodTypeAny, {
153
+ appliedAt: string;
154
+ result: "failed" | "success" | "partial";
155
+ url: string;
156
+ notes?: string | undefined;
157
+ }, {
158
+ appliedAt: string;
159
+ result: "failed" | "success" | "partial";
160
+ url: string;
161
+ notes?: string | undefined;
162
+ }>>;
163
+ /** Feedback from user */
164
+ feedback: z.ZodOptional<z.ZodObject<{
165
+ helpful: z.ZodBoolean;
166
+ comment: z.ZodOptional<z.ZodString>;
167
+ }, "strip", z.ZodTypeAny, {
168
+ helpful: boolean;
169
+ comment?: string | undefined;
170
+ }, {
171
+ helpful: boolean;
172
+ comment?: string | undefined;
173
+ }>>;
174
+ }, "strip", z.ZodTypeAny, {
175
+ title: string;
176
+ status: "pending" | "implemented" | "rejected" | "deferred" | "approved";
177
+ description: string;
178
+ priority: "critical" | "high" | "medium" | "low";
179
+ effort: "medium" | "small" | "large" | "trivial";
180
+ taskId: string;
181
+ area: string;
182
+ expertId: string;
183
+ feedback?: {
184
+ helpful: boolean;
185
+ comment?: string | undefined;
186
+ } | undefined;
187
+ implementation?: {
188
+ appliedAt: string;
189
+ result: "failed" | "success" | "partial";
190
+ url: string;
191
+ notes?: string | undefined;
192
+ } | undefined;
193
+ }, {
194
+ title: string;
195
+ description: string;
196
+ priority: "critical" | "high" | "medium" | "low";
197
+ effort: "medium" | "small" | "large" | "trivial";
198
+ taskId: string;
199
+ area: string;
200
+ expertId: string;
201
+ status?: "pending" | "implemented" | "rejected" | "deferred" | "approved" | undefined;
202
+ feedback?: {
203
+ helpful: boolean;
204
+ comment?: string | undefined;
205
+ } | undefined;
206
+ implementation?: {
207
+ appliedAt: string;
208
+ result: "failed" | "success" | "partial";
209
+ url: string;
210
+ notes?: string | undefined;
211
+ } | undefined;
212
+ }>;
213
+ export type ExpertRecommendationContent = z.infer<typeof ExpertRecommendationContentSchema>;
214
+ export declare const PatternTrendSchema: z.ZodEnum<["increasing", "stable", "decreasing"]>;
215
+ export declare const PatternStatContentSchema: z.ZodObject<{
216
+ /** Unique pattern identifier */
217
+ patternId: z.ZodString;
218
+ /** Human-readable pattern name */
219
+ name: z.ZodString;
220
+ /** Pattern description */
221
+ description: z.ZodOptional<z.ZodString>;
222
+ /** Total number of occurrences */
223
+ occurrenceCount: z.ZodDefault<z.ZodNumber>;
224
+ /** Average severity (0.0 - 1.0) */
225
+ avgSeverity: z.ZodDefault<z.ZodNumber>;
226
+ /** Last time this pattern was detected */
227
+ lastSeen: z.ZodOptional<z.ZodString>;
228
+ /** First time this pattern was detected */
229
+ firstSeen: z.ZodOptional<z.ZodString>;
230
+ /** Trend direction */
231
+ trend: z.ZodDefault<z.ZodEnum<["increasing", "stable", "decreasing"]>>;
232
+ /** Whether this pattern has been persistent */
233
+ isPersistent: z.ZodDefault<z.ZodBoolean>;
234
+ /** Files where this pattern was detected */
235
+ files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
236
+ /** Whether auto-improvement has been triggered */
237
+ autoImproveTriggered: z.ZodDefault<z.ZodBoolean>;
238
+ /** Generated ESLint rule ID (if any) */
239
+ eslintRuleId: z.ZodOptional<z.ZodString>;
240
+ /** Pattern effectiveness score (based on compliance) */
241
+ effectivenessScore: z.ZodOptional<z.ZodNumber>;
242
+ }, "strip", z.ZodTypeAny, {
243
+ patternId: string;
244
+ files: string[];
245
+ name: string;
246
+ autoImproveTriggered: boolean;
247
+ occurrenceCount: number;
248
+ avgSeverity: number;
249
+ trend: "increasing" | "decreasing" | "stable";
250
+ isPersistent: boolean;
251
+ description?: string | undefined;
252
+ firstSeen?: string | undefined;
253
+ lastSeen?: string | undefined;
254
+ eslintRuleId?: string | undefined;
255
+ effectivenessScore?: number | undefined;
256
+ }, {
257
+ patternId: string;
258
+ name: string;
259
+ description?: string | undefined;
260
+ files?: string[] | undefined;
261
+ firstSeen?: string | undefined;
262
+ lastSeen?: string | undefined;
263
+ autoImproveTriggered?: boolean | undefined;
264
+ occurrenceCount?: number | undefined;
265
+ avgSeverity?: number | undefined;
266
+ trend?: "increasing" | "decreasing" | "stable" | undefined;
267
+ isPersistent?: boolean | undefined;
268
+ eslintRuleId?: string | undefined;
269
+ effectivenessScore?: number | undefined;
270
+ }>;
271
+ export type PatternStatContent = z.infer<typeof PatternStatContentSchema>;
272
+ export declare const MemoryRelationshipTypeSchema: z.ZodEnum<["relates_to", "contradicts", "extends", "replaces", "depends_on", "derived_from"]>;
273
+ export declare const MemoryLinkContentSchema: z.ZodObject<{
274
+ /** Source memory ID */
275
+ sourceId: z.ZodString;
276
+ /** Target memory ID */
277
+ targetId: z.ZodString;
278
+ /** Relationship type */
279
+ relationshipType: z.ZodEnum<["relates_to", "contradicts", "extends", "replaces", "depends_on", "derived_from"]>;
280
+ /** Confidence in the relationship (0.0 - 1.0) */
281
+ confidence: z.ZodNumber;
282
+ /** Optional description of the relationship */
283
+ description: z.ZodOptional<z.ZodString>;
284
+ /** Who/what created this link */
285
+ createdBy: z.ZodDefault<z.ZodEnum<["user", "system", "expert"]>>;
286
+ }, "strip", z.ZodTypeAny, {
287
+ createdBy: "user" | "system" | "expert";
288
+ confidence: number;
289
+ sourceId: string;
290
+ targetId: string;
291
+ relationshipType: "extends" | "relates_to" | "contradicts" | "replaces" | "depends_on" | "derived_from";
292
+ description?: string | undefined;
293
+ }, {
294
+ confidence: number;
295
+ sourceId: string;
296
+ targetId: string;
297
+ relationshipType: "extends" | "relates_to" | "contradicts" | "replaces" | "depends_on" | "derived_from";
298
+ description?: string | undefined;
299
+ createdBy?: "user" | "system" | "expert" | undefined;
300
+ }>;
301
+ export type MemoryLinkContent = z.infer<typeof MemoryLinkContentSchema>;
302
+ export declare const ConsensusThresholdSchema: z.ZodEnum<["UNANIMITY", "MAJORITY"]>;
303
+ export declare const ConsensusDecisionSchema: z.ZodEnum<["APPROVED", "REJECTED", "NEEDS_REVIEW"]>;
304
+ export declare const ConsensusResultContentSchema: z.ZodObject<{
305
+ /** Associated task ID */
306
+ taskId: z.ZodString;
307
+ /** Final decision */
308
+ decision: z.ZodEnum<["APPROVED", "REJECTED", "NEEDS_REVIEW"]>;
309
+ /** Threshold type used */
310
+ threshold: z.ZodEnum<["UNANIMITY", "MAJORITY"]>;
311
+ /** Whether threshold was met */
312
+ metThreshold: z.ZodBoolean;
313
+ /** Vote counts */
314
+ votes: z.ZodObject<{
315
+ approve: z.ZodNumber;
316
+ reject: z.ZodNumber;
317
+ warn: z.ZodNumber;
318
+ abstain: z.ZodNumber;
319
+ }, "strip", z.ZodTypeAny, {
320
+ warn: number;
321
+ approve: number;
322
+ reject: number;
323
+ abstain: number;
324
+ }, {
325
+ warn: number;
326
+ approve: number;
327
+ reject: number;
328
+ abstain: number;
329
+ }>;
330
+ /** Average confidence across all experts */
331
+ avgConfidence: z.ZodNumber;
332
+ /** List of expert decision IDs */
333
+ expertDecisionIds: z.ZodArray<z.ZodString, "many">;
334
+ /** Time taken for full panel review in ms */
335
+ panelDurationMs: z.ZodNumber;
336
+ }, "strip", z.ZodTypeAny, {
337
+ taskId: string;
338
+ decision: "APPROVED" | "REJECTED" | "NEEDS_REVIEW";
339
+ threshold: "UNANIMITY" | "MAJORITY";
340
+ votes: {
341
+ warn: number;
342
+ approve: number;
343
+ reject: number;
344
+ abstain: number;
345
+ };
346
+ metThreshold: boolean;
347
+ avgConfidence: number;
348
+ expertDecisionIds: string[];
349
+ panelDurationMs: number;
350
+ }, {
351
+ taskId: string;
352
+ decision: "APPROVED" | "REJECTED" | "NEEDS_REVIEW";
353
+ threshold: "UNANIMITY" | "MAJORITY";
354
+ votes: {
355
+ warn: number;
356
+ approve: number;
357
+ reject: number;
358
+ abstain: number;
359
+ };
360
+ metThreshold: boolean;
361
+ avgConfidence: number;
362
+ expertDecisionIds: string[];
363
+ panelDurationMs: number;
364
+ }>;
365
+ export type ConsensusResultContent = z.infer<typeof ConsensusResultContentSchema>;
366
+ /**
367
+ * Extended item types for v2.8
368
+ * These are stored in DEV_Items.type column
369
+ */
370
+ export declare const ItemTypeV28Schema: z.ZodEnum<["memory", "task", "improvement", "plan", "session", "checkpoint", "expert_decision", "expert_recommendation", "pattern_stat", "memory_link", "consensus_result"]>;
371
+ export type ItemTypeV28 = z.infer<typeof ItemTypeV28Schema>;
372
+ /**
373
+ * Create an expert decision content object
374
+ */
375
+ export declare function createExpertDecision(expertId: string, taskId: string, vote: ExpertVote, options?: {
376
+ confidence?: number;
377
+ reasoning?: string;
378
+ issues?: ExpertIssue[];
379
+ filesReviewed?: string[];
380
+ reviewDurationMs?: number;
381
+ }): ExpertDecisionContent;
382
+ /**
383
+ * Create a pattern stat content object
384
+ */
385
+ export declare function createPatternStat(patternId: string, name: string, options?: {
386
+ description?: string;
387
+ occurrenceCount?: number;
388
+ avgSeverity?: number;
389
+ files?: string[];
390
+ }): PatternStatContent;
391
+ /**
392
+ * Create a memory link content object
393
+ */
394
+ export declare function createMemoryLink(sourceId: string, targetId: string, relationshipType: z.infer<typeof MemoryRelationshipTypeSchema>, confidence?: number): MemoryLinkContent;
395
+ //# sourceMappingURL=expert-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expert-types.d.ts","sourceRoot":"","sources":["../../src/schema/expert-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,250 @@
1
+ /**
2
+ * @file Expert Types Schema - cmp-standards v2.8
3
+ * @description Type definitions for expert panel system
4
+ *
5
+ * These types extend the existing DEV_Items.content JSON schema
6
+ * to support expert decisions, recommendations, and pattern tracking.
7
+ */
8
+ import { z } from 'zod';
9
+ // =============================================================================
10
+ // Expert Decision Schema
11
+ // =============================================================================
12
+ export const ExpertIssueSchema = z.object({
13
+ /** Issue severity level */
14
+ severity: z.enum(['critical', 'high', 'medium', 'low']),
15
+ /** Issue description */
16
+ message: z.string(),
17
+ /** Affected file path */
18
+ file: z.string().optional(),
19
+ /** Line number in file */
20
+ line: z.number().optional(),
21
+ /** Suggested fix */
22
+ fix: z.string().optional(),
23
+ /** Issue category */
24
+ category: z.string().optional(),
25
+ });
26
+ export const ExpertVoteSchema = z.enum(['APPROVE', 'REJECT', 'WARN', 'ABSTAIN']);
27
+ export const ExpertDecisionContentSchema = z.object({
28
+ /** Expert identifier (e.g., 'security-expert', 'performance-expert') */
29
+ expertId: z.string(),
30
+ /** Associated task ID */
31
+ taskId: z.string(),
32
+ /** Expert's vote */
33
+ vote: ExpertVoteSchema,
34
+ /** Confidence level (0.0 - 1.0) */
35
+ confidence: z.number().min(0).max(1),
36
+ /** Detailed reasoning for the decision */
37
+ reasoning: z.string().optional(),
38
+ /** List of issues found */
39
+ issues: z.array(ExpertIssueSchema).default([]),
40
+ /** Files reviewed */
41
+ filesReviewed: z.array(z.string()).default([]),
42
+ /** Time taken for review in milliseconds */
43
+ reviewDurationMs: z.number().optional(),
44
+ /** When the review was completed */
45
+ reviewedAt: z.string(),
46
+ });
47
+ // =============================================================================
48
+ // Expert Recommendation Schema
49
+ // =============================================================================
50
+ export const RecommendationPrioritySchema = z.enum(['critical', 'high', 'medium', 'low']);
51
+ export const RecommendationEffortSchema = z.enum(['trivial', 'small', 'medium', 'large']);
52
+ export const RecommendationStatusSchema = z.enum([
53
+ 'pending',
54
+ 'approved',
55
+ 'rejected',
56
+ 'implemented',
57
+ 'deferred',
58
+ ]);
59
+ export const ExpertRecommendationContentSchema = z.object({
60
+ /** Expert that made the recommendation */
61
+ expertId: z.string(),
62
+ /** Associated task ID */
63
+ taskId: z.string(),
64
+ /** Area/domain of the recommendation */
65
+ area: z.string(),
66
+ /** Recommendation title */
67
+ title: z.string(),
68
+ /** Detailed description */
69
+ description: z.string(),
70
+ /** Priority level */
71
+ priority: RecommendationPrioritySchema,
72
+ /** Estimated effort to implement */
73
+ effort: RecommendationEffortSchema,
74
+ /** Current status */
75
+ status: RecommendationStatusSchema.default('pending'),
76
+ /** Implementation details if implemented */
77
+ implementation: z.object({
78
+ /** PR or commit URL */
79
+ url: z.string(),
80
+ /** When it was implemented */
81
+ appliedAt: z.string(),
82
+ /** Implementation result */
83
+ result: z.enum(['success', 'partial', 'failed']),
84
+ /** Notes about implementation */
85
+ notes: z.string().optional(),
86
+ }).optional(),
87
+ /** Feedback from user */
88
+ feedback: z.object({
89
+ helpful: z.boolean(),
90
+ comment: z.string().optional(),
91
+ }).optional(),
92
+ });
93
+ // =============================================================================
94
+ // Pattern Statistics Schema
95
+ // =============================================================================
96
+ export const PatternTrendSchema = z.enum(['increasing', 'stable', 'decreasing']);
97
+ export const PatternStatContentSchema = z.object({
98
+ /** Unique pattern identifier */
99
+ patternId: z.string(),
100
+ /** Human-readable pattern name */
101
+ name: z.string(),
102
+ /** Pattern description */
103
+ description: z.string().optional(),
104
+ /** Total number of occurrences */
105
+ occurrenceCount: z.number().default(0),
106
+ /** Average severity (0.0 - 1.0) */
107
+ avgSeverity: z.number().min(0).max(1).default(0.5),
108
+ /** Last time this pattern was detected */
109
+ lastSeen: z.string().optional(),
110
+ /** First time this pattern was detected */
111
+ firstSeen: z.string().optional(),
112
+ /** Trend direction */
113
+ trend: PatternTrendSchema.default('stable'),
114
+ /** Whether this pattern has been persistent */
115
+ isPersistent: z.boolean().default(false),
116
+ /** Files where this pattern was detected */
117
+ files: z.array(z.string()).default([]),
118
+ /** Whether auto-improvement has been triggered */
119
+ autoImproveTriggered: z.boolean().default(false),
120
+ /** Generated ESLint rule ID (if any) */
121
+ eslintRuleId: z.string().optional(),
122
+ /** Pattern effectiveness score (based on compliance) */
123
+ effectivenessScore: z.number().min(0).max(1).optional(),
124
+ });
125
+ // =============================================================================
126
+ // Memory Link Schema (Relationships between memories)
127
+ // =============================================================================
128
+ export const MemoryRelationshipTypeSchema = z.enum([
129
+ 'relates_to',
130
+ 'contradicts',
131
+ 'extends',
132
+ 'replaces',
133
+ 'depends_on',
134
+ 'derived_from',
135
+ ]);
136
+ export const MemoryLinkContentSchema = z.object({
137
+ /** Source memory ID */
138
+ sourceId: z.string(),
139
+ /** Target memory ID */
140
+ targetId: z.string(),
141
+ /** Relationship type */
142
+ relationshipType: MemoryRelationshipTypeSchema,
143
+ /** Confidence in the relationship (0.0 - 1.0) */
144
+ confidence: z.number().min(0).max(1),
145
+ /** Optional description of the relationship */
146
+ description: z.string().optional(),
147
+ /** Who/what created this link */
148
+ createdBy: z.enum(['user', 'system', 'expert']).default('system'),
149
+ });
150
+ // =============================================================================
151
+ // Consensus Result Schema
152
+ // =============================================================================
153
+ export const ConsensusThresholdSchema = z.enum(['UNANIMITY', 'MAJORITY']);
154
+ export const ConsensusDecisionSchema = z.enum(['APPROVED', 'REJECTED', 'NEEDS_REVIEW']);
155
+ export const ConsensusResultContentSchema = z.object({
156
+ /** Associated task ID */
157
+ taskId: z.string(),
158
+ /** Final decision */
159
+ decision: ConsensusDecisionSchema,
160
+ /** Threshold type used */
161
+ threshold: ConsensusThresholdSchema,
162
+ /** Whether threshold was met */
163
+ metThreshold: z.boolean(),
164
+ /** Vote counts */
165
+ votes: z.object({
166
+ approve: z.number(),
167
+ reject: z.number(),
168
+ warn: z.number(),
169
+ abstain: z.number(),
170
+ }),
171
+ /** Average confidence across all experts */
172
+ avgConfidence: z.number().min(0).max(1),
173
+ /** List of expert decision IDs */
174
+ expertDecisionIds: z.array(z.string()),
175
+ /** Time taken for full panel review in ms */
176
+ panelDurationMs: z.number(),
177
+ });
178
+ // =============================================================================
179
+ // Item Type Enum Extension
180
+ // =============================================================================
181
+ /**
182
+ * Extended item types for v2.8
183
+ * These are stored in DEV_Items.type column
184
+ */
185
+ export const ItemTypeV28Schema = z.enum([
186
+ // Existing types
187
+ 'memory',
188
+ 'task',
189
+ 'improvement',
190
+ 'plan',
191
+ 'session',
192
+ 'checkpoint',
193
+ // New v2.8 types
194
+ 'expert_decision',
195
+ 'expert_recommendation',
196
+ 'pattern_stat',
197
+ 'memory_link',
198
+ 'consensus_result',
199
+ ]);
200
+ // =============================================================================
201
+ // Factory Functions
202
+ // =============================================================================
203
+ /**
204
+ * Create an expert decision content object
205
+ */
206
+ export function createExpertDecision(expertId, taskId, vote, options = {}) {
207
+ return {
208
+ expertId,
209
+ taskId,
210
+ vote,
211
+ confidence: options.confidence ?? 0.8,
212
+ reasoning: options.reasoning,
213
+ issues: options.issues ?? [],
214
+ filesReviewed: options.filesReviewed ?? [],
215
+ reviewDurationMs: options.reviewDurationMs,
216
+ reviewedAt: new Date().toISOString(),
217
+ };
218
+ }
219
+ /**
220
+ * Create a pattern stat content object
221
+ */
222
+ export function createPatternStat(patternId, name, options = {}) {
223
+ const now = new Date().toISOString();
224
+ return {
225
+ patternId,
226
+ name,
227
+ description: options.description,
228
+ occurrenceCount: options.occurrenceCount ?? 1,
229
+ avgSeverity: options.avgSeverity ?? 0.5,
230
+ lastSeen: now,
231
+ firstSeen: now,
232
+ trend: 'stable',
233
+ isPersistent: false,
234
+ files: options.files ?? [],
235
+ autoImproveTriggered: false,
236
+ };
237
+ }
238
+ /**
239
+ * Create a memory link content object
240
+ */
241
+ export function createMemoryLink(sourceId, targetId, relationshipType, confidence = 0.8) {
242
+ return {
243
+ sourceId,
244
+ targetId,
245
+ relationshipType,
246
+ confidence,
247
+ createdBy: 'system',
248
+ };
249
+ }
250
+ //# sourceMappingURL=expert-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expert-types.js","sourceRoot":"","sources":["../../src/schema/expert-types.ts"],"names":[],"mappings":"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"}