dino-spec 17.4.2 → 17.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/dist/commands/init.d.ts.map +1 -1
  2. package/dist/commands/init.js +10 -0
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/core/agents/__tests__/confidence-gate.test.d.ts +5 -0
  5. package/dist/core/agents/__tests__/confidence-gate.test.d.ts.map +1 -0
  6. package/dist/core/agents/__tests__/confidence-gate.test.js +329 -0
  7. package/dist/core/agents/__tests__/confidence-gate.test.js.map +1 -0
  8. package/dist/core/agents/__tests__/gap-detector.test.d.ts +5 -0
  9. package/dist/core/agents/__tests__/gap-detector.test.d.ts.map +1 -0
  10. package/dist/core/agents/__tests__/gap-detector.test.js +609 -0
  11. package/dist/core/agents/__tests__/gap-detector.test.js.map +1 -0
  12. package/dist/core/agents/__tests__/learning-loop.test.d.ts +5 -0
  13. package/dist/core/agents/__tests__/learning-loop.test.d.ts.map +1 -0
  14. package/dist/core/agents/__tests__/learning-loop.test.js +663 -0
  15. package/dist/core/agents/__tests__/learning-loop.test.js.map +1 -0
  16. package/dist/core/agents/__tests__/parallel-executor.test.d.ts +5 -0
  17. package/dist/core/agents/__tests__/parallel-executor.test.d.ts.map +1 -0
  18. package/dist/core/agents/__tests__/parallel-executor.test.js +610 -0
  19. package/dist/core/agents/__tests__/parallel-executor.test.js.map +1 -0
  20. package/dist/core/agents/__tests__/research-validator.test.js +5 -5
  21. package/dist/core/agents/__tests__/research-validator.test.js.map +1 -1
  22. package/dist/core/agents/__tests__/skill-creator.test.d.ts +5 -0
  23. package/dist/core/agents/__tests__/skill-creator.test.d.ts.map +1 -0
  24. package/dist/core/agents/__tests__/skill-creator.test.js +443 -0
  25. package/dist/core/agents/__tests__/skill-creator.test.js.map +1 -0
  26. package/dist/core/agents/__tests__/state-persistence.test.d.ts +2 -0
  27. package/dist/core/agents/__tests__/state-persistence.test.d.ts.map +1 -0
  28. package/dist/core/agents/__tests__/state-persistence.test.js +270 -0
  29. package/dist/core/agents/__tests__/state-persistence.test.js.map +1 -0
  30. package/dist/core/agents/__tests__/validation-cache.test.d.ts +2 -0
  31. package/dist/core/agents/__tests__/validation-cache.test.d.ts.map +1 -0
  32. package/dist/core/agents/__tests__/validation-cache.test.js +181 -0
  33. package/dist/core/agents/__tests__/validation-cache.test.js.map +1 -0
  34. package/dist/core/agents/blackboard.d.ts +22 -3
  35. package/dist/core/agents/blackboard.d.ts.map +1 -1
  36. package/dist/core/agents/blackboard.js +52 -2
  37. package/dist/core/agents/blackboard.js.map +1 -1
  38. package/dist/core/agents/circuit-breaker.d.ts +79 -1
  39. package/dist/core/agents/circuit-breaker.d.ts.map +1 -1
  40. package/dist/core/agents/circuit-breaker.js +175 -1
  41. package/dist/core/agents/circuit-breaker.js.map +1 -1
  42. package/dist/core/agents/clarification-phase.d.ts +128 -0
  43. package/dist/core/agents/clarification-phase.d.ts.map +1 -0
  44. package/dist/core/agents/clarification-phase.js +375 -0
  45. package/dist/core/agents/clarification-phase.js.map +1 -0
  46. package/dist/core/agents/confidence-gate.d.ts +116 -3
  47. package/dist/core/agents/confidence-gate.d.ts.map +1 -1
  48. package/dist/core/agents/confidence-gate.js +363 -3
  49. package/dist/core/agents/confidence-gate.js.map +1 -1
  50. package/dist/core/agents/correction-tracker.d.ts +197 -0
  51. package/dist/core/agents/correction-tracker.d.ts.map +1 -0
  52. package/dist/core/agents/correction-tracker.js +366 -0
  53. package/dist/core/agents/correction-tracker.js.map +1 -0
  54. package/dist/core/agents/dependency-graph.d.ts +193 -0
  55. package/dist/core/agents/dependency-graph.d.ts.map +1 -0
  56. package/dist/core/agents/dependency-graph.js +462 -0
  57. package/dist/core/agents/dependency-graph.js.map +1 -0
  58. package/dist/core/agents/gap-detector.d.ts +277 -0
  59. package/dist/core/agents/gap-detector.d.ts.map +1 -0
  60. package/dist/core/agents/gap-detector.js +540 -0
  61. package/dist/core/agents/gap-detector.js.map +1 -0
  62. package/dist/core/agents/index.d.ts +14 -1
  63. package/dist/core/agents/index.d.ts.map +1 -1
  64. package/dist/core/agents/index.js +26 -1
  65. package/dist/core/agents/index.js.map +1 -1
  66. package/dist/core/agents/message-protocol.d.ts +13 -2
  67. package/dist/core/agents/message-protocol.d.ts.map +1 -1
  68. package/dist/core/agents/message-protocol.js +20 -1
  69. package/dist/core/agents/message-protocol.js.map +1 -1
  70. package/dist/core/agents/parallel-executor.d.ts +182 -0
  71. package/dist/core/agents/parallel-executor.d.ts.map +1 -0
  72. package/dist/core/agents/parallel-executor.js +474 -0
  73. package/dist/core/agents/parallel-executor.js.map +1 -0
  74. package/dist/core/agents/pattern-detector.d.ts +157 -0
  75. package/dist/core/agents/pattern-detector.d.ts.map +1 -0
  76. package/dist/core/agents/pattern-detector.js +370 -0
  77. package/dist/core/agents/pattern-detector.js.map +1 -0
  78. package/dist/core/agents/registry-client.d.ts +6 -0
  79. package/dist/core/agents/registry-client.d.ts.map +1 -1
  80. package/dist/core/agents/registry-client.js +3 -0
  81. package/dist/core/agents/registry-client.js.map +1 -1
  82. package/dist/core/agents/research-phase.d.ts +114 -0
  83. package/dist/core/agents/research-phase.d.ts.map +1 -0
  84. package/dist/core/agents/research-phase.js +355 -0
  85. package/dist/core/agents/research-phase.js.map +1 -0
  86. package/dist/core/agents/research-validator.d.ts +13 -2
  87. package/dist/core/agents/research-validator.d.ts.map +1 -1
  88. package/dist/core/agents/research-validator.js +63 -31
  89. package/dist/core/agents/research-validator.js.map +1 -1
  90. package/dist/core/agents/skill-creator.d.ts +174 -0
  91. package/dist/core/agents/skill-creator.d.ts.map +1 -0
  92. package/dist/core/agents/skill-creator.js +570 -0
  93. package/dist/core/agents/skill-creator.js.map +1 -0
  94. package/dist/core/agents/state-persistence.d.ts +184 -0
  95. package/dist/core/agents/state-persistence.d.ts.map +1 -0
  96. package/dist/core/agents/state-persistence.js +394 -0
  97. package/dist/core/agents/state-persistence.js.map +1 -0
  98. package/dist/core/agents/validation-cache.d.ts +122 -0
  99. package/dist/core/agents/validation-cache.d.ts.map +1 -0
  100. package/dist/core/agents/validation-cache.js +280 -0
  101. package/dist/core/agents/validation-cache.js.map +1 -0
  102. package/dist/core/agents/validators/__tests__/validators.test.d.ts +5 -0
  103. package/dist/core/agents/validators/__tests__/validators.test.d.ts.map +1 -0
  104. package/dist/core/agents/validators/__tests__/validators.test.js +321 -0
  105. package/dist/core/agents/validators/__tests__/validators.test.js.map +1 -0
  106. package/dist/core/agents/validators/base-validator.d.ts +191 -0
  107. package/dist/core/agents/validators/base-validator.d.ts.map +1 -0
  108. package/dist/core/agents/validators/base-validator.js +192 -0
  109. package/dist/core/agents/validators/base-validator.js.map +1 -0
  110. package/dist/core/agents/validators/index.d.ts +7 -0
  111. package/dist/core/agents/validators/index.d.ts.map +1 -0
  112. package/dist/core/agents/validators/index.js +7 -0
  113. package/dist/core/agents/validators/index.js.map +1 -0
  114. package/dist/core/agents/validators/npm-validator.d.ts +50 -0
  115. package/dist/core/agents/validators/npm-validator.d.ts.map +1 -0
  116. package/dist/core/agents/validators/npm-validator.js +211 -0
  117. package/dist/core/agents/validators/npm-validator.js.map +1 -0
  118. package/dist/core/agents/validators/pip-validator.d.ts +49 -0
  119. package/dist/core/agents/validators/pip-validator.d.ts.map +1 -0
  120. package/dist/core/agents/validators/pip-validator.js +191 -0
  121. package/dist/core/agents/validators/pip-validator.js.map +1 -0
  122. package/dist/core/agents/validators/validator-registry.d.ts +122 -0
  123. package/dist/core/agents/validators/validator-registry.d.ts.map +1 -0
  124. package/dist/core/agents/validators/validator-registry.js +321 -0
  125. package/dist/core/agents/validators/validator-registry.js.map +1 -0
  126. package/dist/core/context-repl/types.d.ts +4 -4
  127. package/dist/core/memory/index.d.ts +1 -0
  128. package/dist/core/memory/index.d.ts.map +1 -1
  129. package/dist/core/memory/index.js +2 -0
  130. package/dist/core/memory/index.js.map +1 -1
  131. package/dist/core/memory/learning-store.d.ts +222 -0
  132. package/dist/core/memory/learning-store.d.ts.map +1 -0
  133. package/dist/core/memory/learning-store.js +477 -0
  134. package/dist/core/memory/learning-store.js.map +1 -0
  135. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts +5 -0
  136. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts.map +1 -0
  137. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js +401 -0
  138. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js.map +1 -0
  139. package/dist/core/spec-analyzer/ambiguity-detector.d.ts +99 -0
  140. package/dist/core/spec-analyzer/ambiguity-detector.d.ts.map +1 -0
  141. package/dist/core/spec-analyzer/ambiguity-detector.js +250 -0
  142. package/dist/core/spec-analyzer/ambiguity-detector.js.map +1 -0
  143. package/dist/core/spec-analyzer/clarification-generator.d.ts +76 -0
  144. package/dist/core/spec-analyzer/clarification-generator.d.ts.map +1 -0
  145. package/dist/core/spec-analyzer/clarification-generator.js +257 -0
  146. package/dist/core/spec-analyzer/clarification-generator.js.map +1 -0
  147. package/dist/core/spec-analyzer/index.d.ts +10 -1
  148. package/dist/core/spec-analyzer/index.d.ts.map +1 -1
  149. package/dist/core/spec-analyzer/index.js +13 -1
  150. package/dist/core/spec-analyzer/index.js.map +1 -1
  151. package/dist/core/spec-analyzer/patterns.d.ts +73 -0
  152. package/dist/core/spec-analyzer/patterns.d.ts.map +1 -0
  153. package/dist/core/spec-analyzer/patterns.js +412 -0
  154. package/dist/core/spec-analyzer/patterns.js.map +1 -0
  155. package/dist/hooks/__tests__/dynamic-generator.test.d.ts +5 -0
  156. package/dist/hooks/__tests__/dynamic-generator.test.d.ts.map +1 -0
  157. package/dist/hooks/__tests__/dynamic-generator.test.js +425 -0
  158. package/dist/hooks/__tests__/dynamic-generator.test.js.map +1 -0
  159. package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts +5 -0
  160. package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts.map +1 -0
  161. package/dist/hooks/__tests__/hook-agent-bridge.test.js +315 -0
  162. package/dist/hooks/__tests__/hook-agent-bridge.test.js.map +1 -0
  163. package/dist/hooks/dynamic-generator.d.ts +158 -0
  164. package/dist/hooks/dynamic-generator.d.ts.map +1 -0
  165. package/dist/hooks/dynamic-generator.js +448 -0
  166. package/dist/hooks/dynamic-generator.js.map +1 -0
  167. package/dist/hooks/hook-agent-bridge.d.ts +252 -0
  168. package/dist/hooks/hook-agent-bridge.d.ts.map +1 -0
  169. package/dist/hooks/hook-agent-bridge.js +489 -0
  170. package/dist/hooks/hook-agent-bridge.js.map +1 -0
  171. package/dist/hooks/index.d.ts +3 -1
  172. package/dist/hooks/index.d.ts.map +1 -1
  173. package/dist/hooks/index.js +5 -1
  174. package/dist/hooks/index.js.map +1 -1
  175. package/dist/mcp/tool-catalog.d.ts.map +1 -1
  176. package/dist/mcp/tool-catalog.js +47 -0
  177. package/dist/mcp/tool-catalog.js.map +1 -1
  178. package/dist/mcp/tool-tiers.d.ts.map +1 -1
  179. package/dist/mcp/tool-tiers.js +4 -0
  180. package/dist/mcp/tool-tiers.js.map +1 -1
  181. package/dist/mcp/tools/index.d.ts +2 -1
  182. package/dist/mcp/tools/index.d.ts.map +1 -1
  183. package/dist/mcp/tools/index.js +15 -1
  184. package/dist/mcp/tools/index.js.map +1 -1
  185. package/dist/mcp/tools/learning-store.d.ts +30 -0
  186. package/dist/mcp/tools/learning-store.d.ts.map +1 -0
  187. package/dist/mcp/tools/learning-store.js +286 -0
  188. package/dist/mcp/tools/learning-store.js.map +1 -0
  189. package/dist/rules/index.d.ts.map +1 -1
  190. package/dist/rules/index.js +2 -47
  191. package/dist/rules/index.js.map +1 -1
  192. package/dist/skills/index.d.ts.map +1 -1
  193. package/dist/skills/index.js +159 -38
  194. package/dist/skills/index.js.map +1 -1
  195. package/package.json +1 -1
@@ -0,0 +1,370 @@
1
+ /**
2
+ * Pattern Detector - v17.5.0
3
+ *
4
+ * Detects patterns from correction clusters for automation.
5
+ * Works with correction-tracker to identify learnable patterns.
6
+ *
7
+ * Pattern types:
8
+ * - Style patterns: Code formatting preferences
9
+ * - Naming patterns: Variable/function naming conventions
10
+ * - Structure patterns: Code organization preferences
11
+ * - Tool patterns: Library/tool preferences
12
+ *
13
+ * @module pattern-detector
14
+ */
15
+ // =============================================================================
16
+ // Constants
17
+ // =============================================================================
18
+ export const DEFAULT_DETECTOR_CONFIG = {
19
+ minClusterSize: 3,
20
+ minClusterSimilarity: 0.6,
21
+ maxSuggestions: 5,
22
+ fileContextBoost: 0.1,
23
+ };
24
+ /**
25
+ * Patterns for detecting pattern types from correction content
26
+ */
27
+ const TYPE_DETECTORS = [
28
+ {
29
+ type: 'style',
30
+ patterns: [
31
+ /semicolon|quotes?|indent|spacing|format|bracket|brace/i,
32
+ /single\s*quote|double\s*quote/i,
33
+ /tab|space|2\s*space|4\s*space/i,
34
+ ],
35
+ keywords: ['semicolon', 'quote', 'indent', 'format', 'space', 'tab', 'bracket'],
36
+ },
37
+ {
38
+ type: 'naming',
39
+ patterns: [
40
+ /camel\s*case|snake\s*case|pascal\s*case|kebab\s*case/i,
41
+ /name|naming|call\s*it|rename/i,
42
+ /prefix|suffix|convention/i,
43
+ ],
44
+ keywords: ['name', 'naming', 'convention', 'prefix', 'suffix', 'case'],
45
+ },
46
+ {
47
+ type: 'structure',
48
+ patterns: [
49
+ /import|export|module|file|folder|directory/i,
50
+ /organize|structure|layout|split|merge/i,
51
+ ],
52
+ keywords: ['import', 'export', 'module', 'file', 'folder', 'structure'],
53
+ },
54
+ {
55
+ type: 'tool',
56
+ patterns: [/use|prefer|instead\s*of|library|package|framework/i, /npm|bun|yarn|pip|cargo/i],
57
+ keywords: ['use', 'prefer', 'library', 'package', 'framework', 'tool'],
58
+ },
59
+ {
60
+ type: 'workflow',
61
+ patterns: [/before|after|first|then|always|never/i, /step|process|workflow|order/i],
62
+ keywords: ['before', 'after', 'first', 'always', 'never', 'step', 'workflow'],
63
+ },
64
+ {
65
+ type: 'preference',
66
+ patterns: [/prefer|like|want|should|better/i, /don't|avoid|skip|ignore/i],
67
+ keywords: ['prefer', 'like', 'want', 'better', 'avoid'],
68
+ },
69
+ ];
70
+ // =============================================================================
71
+ // PatternDetector Class
72
+ // =============================================================================
73
+ /**
74
+ * Detects patterns from correction clusters
75
+ */
76
+ export class PatternDetector {
77
+ detectedPatterns = new Map();
78
+ config;
79
+ constructor(config = {}) {
80
+ this.config = { ...DEFAULT_DETECTOR_CONFIG, ...config };
81
+ }
82
+ /**
83
+ * Detect patterns from a cluster
84
+ */
85
+ detectFromCluster(cluster) {
86
+ // Check minimum requirements
87
+ if (cluster.count < this.config.minClusterSize) {
88
+ return null;
89
+ }
90
+ if (cluster.similarity < this.config.minClusterSimilarity) {
91
+ return null;
92
+ }
93
+ const representative = cluster.representative.context;
94
+ const patternType = this.detectType(representative);
95
+ const confidence = this.calculateConfidence(cluster);
96
+ const pattern = {
97
+ id: `pattern-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`,
98
+ type: patternType,
99
+ trigger: this.extractTrigger(representative),
100
+ preference: this.extractPreference(representative),
101
+ confidence,
102
+ occurrences: cluster.count,
103
+ examples: cluster.corrections.slice(0, 3).map((c) => ({
104
+ original: c.context.original,
105
+ corrected: c.context.corrected,
106
+ })),
107
+ keywords: this.extractKeywords(cluster),
108
+ sourceClusterId: cluster.id,
109
+ detectedAt: new Date(),
110
+ };
111
+ this.detectedPatterns.set(pattern.id, pattern);
112
+ return pattern;
113
+ }
114
+ /**
115
+ * Detect patterns from multiple clusters
116
+ */
117
+ detectFromClusters(clusters) {
118
+ const patterns = [];
119
+ for (const cluster of clusters) {
120
+ const pattern = this.detectFromCluster(cluster);
121
+ if (pattern) {
122
+ patterns.push(pattern);
123
+ }
124
+ }
125
+ return patterns;
126
+ }
127
+ /**
128
+ * Get suggestions for current session context
129
+ */
130
+ getSuggestions(context) {
131
+ const suggestions = [];
132
+ for (const pattern of this.detectedPatterns.values()) {
133
+ const relevance = this.calculateRelevance(pattern, context);
134
+ if (relevance > 0.3) {
135
+ suggestions.push({
136
+ pattern,
137
+ relevance,
138
+ reason: this.generateReason(pattern, context),
139
+ });
140
+ }
141
+ }
142
+ // Sort by relevance and limit
143
+ return suggestions
144
+ .sort((a, b) => b.relevance - a.relevance)
145
+ .slice(0, this.config.maxSuggestions);
146
+ }
147
+ /**
148
+ * Get all detected patterns
149
+ */
150
+ getPatterns() {
151
+ return Array.from(this.detectedPatterns.values());
152
+ }
153
+ /**
154
+ * Get pattern by ID
155
+ */
156
+ getPattern(id) {
157
+ return this.detectedPatterns.get(id);
158
+ }
159
+ /**
160
+ * Remove pattern
161
+ */
162
+ removePattern(id) {
163
+ return this.detectedPatterns.delete(id);
164
+ }
165
+ /**
166
+ * Clear all patterns
167
+ */
168
+ clear() {
169
+ this.detectedPatterns.clear();
170
+ }
171
+ /**
172
+ * Export state for persistence
173
+ */
174
+ export() {
175
+ return Array.from(this.detectedPatterns.values());
176
+ }
177
+ /**
178
+ * Import state from persistence
179
+ */
180
+ import(patterns) {
181
+ this.detectedPatterns.clear();
182
+ for (const pattern of patterns) {
183
+ pattern.detectedAt = new Date(pattern.detectedAt);
184
+ this.detectedPatterns.set(pattern.id, pattern);
185
+ }
186
+ }
187
+ // ---------------------------------------------------------------------------
188
+ // Private Methods
189
+ // ---------------------------------------------------------------------------
190
+ detectType(context) {
191
+ const text = `${context.original} ${context.corrected}`.toLowerCase();
192
+ for (const detector of TYPE_DETECTORS) {
193
+ for (const pattern of detector.patterns) {
194
+ if (pattern.test(text)) {
195
+ return detector.type;
196
+ }
197
+ }
198
+ for (const keyword of detector.keywords) {
199
+ if (text.includes(keyword)) {
200
+ return detector.type;
201
+ }
202
+ }
203
+ }
204
+ return 'preference';
205
+ }
206
+ calculateConfidence(cluster) {
207
+ // More occurrences + higher similarity = higher confidence
208
+ const occurrenceScore = Math.min(cluster.count / 10, 1);
209
+ const similarityScore = cluster.similarity;
210
+ const combined = occurrenceScore * 0.6 + similarityScore * 0.4;
211
+ if (combined >= 0.7)
212
+ return 'high';
213
+ if (combined >= 0.4)
214
+ return 'medium';
215
+ return 'low';
216
+ }
217
+ extractTrigger(context) {
218
+ // The trigger is what Claude originally did
219
+ const original = context.original.trim();
220
+ // Truncate if too long
221
+ if (original.length > 100) {
222
+ return `${original.slice(0, 97)}...`;
223
+ }
224
+ return original;
225
+ }
226
+ extractPreference(context) {
227
+ // The preference is what the user corrected it to
228
+ const corrected = context.corrected.trim();
229
+ // Truncate if too long
230
+ if (corrected.length > 100) {
231
+ return `${corrected.slice(0, 97)}...`;
232
+ }
233
+ return corrected;
234
+ }
235
+ extractKeywords(cluster) {
236
+ const allKeywords = [];
237
+ for (const correction of cluster.corrections) {
238
+ allKeywords.push(...correction.keywords);
239
+ }
240
+ // Count frequency and return most common
241
+ const counts = new Map();
242
+ for (const kw of allKeywords) {
243
+ counts.set(kw, (counts.get(kw) || 0) + 1);
244
+ }
245
+ return Array.from(counts.entries())
246
+ .sort((a, b) => b[1] - a[1])
247
+ .slice(0, 10)
248
+ .map(([kw]) => kw);
249
+ }
250
+ calculateRelevance(pattern, context) {
251
+ let relevance = 0.5; // Base relevance
252
+ // Boost for keyword matches in focus area
253
+ if (context.focusArea) {
254
+ const focusLower = context.focusArea.toLowerCase();
255
+ for (const kw of pattern.keywords) {
256
+ if (focusLower.includes(kw)) {
257
+ relevance += 0.1;
258
+ }
259
+ }
260
+ }
261
+ // Boost for keyword matches in current task
262
+ if (context.currentTask) {
263
+ const taskLower = context.currentTask.toLowerCase();
264
+ for (const kw of pattern.keywords) {
265
+ if (taskLower.includes(kw)) {
266
+ relevance += 0.1;
267
+ }
268
+ }
269
+ }
270
+ // Boost for high confidence patterns
271
+ if (pattern.confidence === 'high') {
272
+ relevance += 0.15;
273
+ }
274
+ else if (pattern.confidence === 'medium') {
275
+ relevance += 0.05;
276
+ }
277
+ // Boost for more occurrences
278
+ relevance += Math.min(pattern.occurrences / 20, 0.2);
279
+ return Math.min(relevance, 1.0);
280
+ }
281
+ generateReason(pattern, context) {
282
+ const reasons = [];
283
+ if (pattern.occurrences >= 5) {
284
+ reasons.push(`frequently corrected (${pattern.occurrences}x)`);
285
+ }
286
+ if (pattern.confidence === 'high') {
287
+ reasons.push('high confidence pattern');
288
+ }
289
+ if (context.focusArea &&
290
+ pattern.keywords.some((kw) => context.focusArea?.toLowerCase().includes(kw))) {
291
+ reasons.push('matches current focus');
292
+ }
293
+ if (reasons.length === 0) {
294
+ reasons.push('learned from corrections');
295
+ }
296
+ return reasons.join(', ');
297
+ }
298
+ }
299
+ // =============================================================================
300
+ // Singleton Instance
301
+ // =============================================================================
302
+ /** Global pattern detector */
303
+ export const patternDetector = new PatternDetector();
304
+ // =============================================================================
305
+ // Helper Functions
306
+ // =============================================================================
307
+ /**
308
+ * Detect patterns from clusters using global detector
309
+ */
310
+ export function detectPatterns(clusters) {
311
+ return patternDetector.detectFromClusters(clusters);
312
+ }
313
+ /**
314
+ * Get pattern suggestions for session context
315
+ */
316
+ export function getPatternSuggestions(context) {
317
+ return patternDetector.getSuggestions(context);
318
+ }
319
+ /**
320
+ * Format pattern for display
321
+ */
322
+ export function formatDetectedPattern(pattern) {
323
+ const confidenceIcon = { high: '🟢', medium: '🟡', low: '🔵' }[pattern.confidence];
324
+ const lines = [];
325
+ lines.push(`${confidenceIcon} **${pattern.type}** pattern (${pattern.occurrences} occurrences)`);
326
+ lines.push(`- Trigger: "${pattern.trigger}"`);
327
+ lines.push(`- Preference: "${pattern.preference}"`);
328
+ lines.push(`- Keywords: ${pattern.keywords.slice(0, 5).join(', ')}`);
329
+ return lines.join('\n');
330
+ }
331
+ /**
332
+ * Format suggestion for session injection
333
+ */
334
+ export function formatSuggestionForSession(suggestion) {
335
+ const { pattern, relevance, reason } = suggestion;
336
+ return `- **${pattern.type}**: When "${pattern.trigger}", prefer "${pattern.preference}" (${(relevance * 100).toFixed(0)}% relevant - ${reason})`;
337
+ }
338
+ /**
339
+ * Format multiple suggestions for session context
340
+ */
341
+ export function formatSuggestionsForSession(suggestions) {
342
+ if (suggestions.length === 0) {
343
+ return '';
344
+ }
345
+ const lines = ['## Learned Patterns', ''];
346
+ for (const suggestion of suggestions) {
347
+ lines.push(formatSuggestionForSession(suggestion));
348
+ }
349
+ return lines.join('\n');
350
+ }
351
+ /**
352
+ * Calculate confidence adjustment from patterns
353
+ */
354
+ export function calculateConfidenceAdjustment(patterns) {
355
+ if (patterns.length === 0)
356
+ return 0;
357
+ // Having learned patterns boosts confidence
358
+ let adjustment = 0;
359
+ for (const pattern of patterns) {
360
+ if (pattern.confidence === 'high') {
361
+ adjustment += 0.02;
362
+ }
363
+ else if (pattern.confidence === 'medium') {
364
+ adjustment += 0.01;
365
+ }
366
+ }
367
+ // Cap at 10% boost
368
+ return Math.min(adjustment, 0.1);
369
+ }
370
+ //# sourceMappingURL=pattern-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-detector.js","sourceRoot":"","sources":["../../../src/core/agents/pattern-detector.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,12 @@ export interface PackageMetadata {
25
25
  tarball: string;
26
26
  shasum: string;
27
27
  };
28
+ /** Deprecation message (undefined if not deprecated) */
29
+ deprecated?: string;
30
+ /** Weekly downloads */
31
+ weeklyDownloads?: number;
32
+ /** Last publish date (ISO string) */
33
+ lastPublish?: string;
28
34
  }
29
35
  export interface PackageSize {
30
36
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"registry-client.d.ts","sourceRoot":"","sources":["../../../src/core/agents/registry-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AA+ED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CA0C1B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAsC/F;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAiCxF;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED;;GAEG;AACH,wBAAgB,aAAa;;;;;;;;;;;;;EAe5B"}
1
+ {"version":3,"file":"registry-client.d.ts","sourceRoot":"","sources":["../../../src/core/agents/registry-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IACD,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AA+ED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CA6C1B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAsC/F;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAiCxF;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED;;GAEG;AACH,wBAAgB,aAAa;;;;;;;;;;;;;EAe5B"}
@@ -106,6 +106,9 @@ export async function fetchPackageMetadata(name, version) {
106
106
  tarball: data.dist?.tarball || '',
107
107
  shasum: data.dist?.shasum || '',
108
108
  },
109
+ deprecated: typeof data.deprecated === 'string' ? data.deprecated : undefined,
110
+ weeklyDownloads: data.downloads?.weekly,
111
+ lastPublish: data.time?.modified,
109
112
  };
110
113
  // Cache result
111
114
  metadataCache.set(cacheKey, {
@@ -1 +1 @@
1
- {"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../../../src/core/agents/registry-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../../../src/core/agents/registry-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Research Phase - v17.5.0
3
+ *
4
+ * Handles the research phase of the progressive confidence gate.
5
+ * Triggers codebase and web search to gather context and improve confidence.
6
+ *
7
+ * Features:
8
+ * - Codebase search (Grep, Glob, Read)
9
+ * - Web search for external documentation
10
+ * - Confidence improvement calculation (10-30%)
11
+ * - Research result caching
12
+ * - Integration with ambiguity detector
13
+ *
14
+ * @module research-phase
15
+ */
16
+ import { type AmbiguityAnalysis } from '../spec-analyzer/ambiguity-detector.js';
17
+ import type { SpecAnalysis } from '../spec-analyzer/index.js';
18
+ export interface ResearchPhaseConfig {
19
+ /** Enable codebase search (Grep, Glob, Read) */
20
+ enableCodebaseSearch: boolean;
21
+ /** Enable web search (WebSearch, WebFetch) */
22
+ enableWebSearch: boolean;
23
+ /** Maximum tokens to use for research */
24
+ maxResearchTokens: number;
25
+ /** Cache directory for research results */
26
+ cacheDirectory: string;
27
+ /** Minimum confidence improvement to consider successful */
28
+ minConfidenceImprovement: number;
29
+ /** Maximum confidence improvement possible */
30
+ maxConfidenceImprovement: number;
31
+ }
32
+ export interface ResearchTarget {
33
+ /** Type of research needed */
34
+ type: 'codebase' | 'web' | 'both';
35
+ /** Specific areas to research */
36
+ areas: ResearchArea[];
37
+ /** Priority (higher = more important) */
38
+ priority: number;
39
+ }
40
+ export interface ResearchArea {
41
+ /** What to search for */
42
+ query: string;
43
+ /** Why this is being researched */
44
+ reason: string;
45
+ /** Expected type of result */
46
+ expectedType: 'pattern' | 'file' | 'documentation' | 'example' | 'decision';
47
+ /** Glob patterns to search (for codebase) */
48
+ globPatterns?: string[];
49
+ /** Keywords for web search */
50
+ webKeywords?: string[];
51
+ }
52
+ export interface ResearchFinding {
53
+ /** Type of finding */
54
+ type: 'pattern' | 'file' | 'documentation' | 'example' | 'decision';
55
+ /** Source (file path or URL) */
56
+ source: string;
57
+ /** Brief summary */
58
+ summary: string;
59
+ /** Relevance score (0-1) */
60
+ relevance: number;
61
+ /** Full content if applicable */
62
+ content?: string;
63
+ /** Which area this finding addresses */
64
+ area: string;
65
+ }
66
+ export interface ResearchPhaseResult {
67
+ /** Whether research was executed */
68
+ executed: boolean;
69
+ /** Research targets that were identified */
70
+ targets: ResearchTarget[];
71
+ /** Findings from research */
72
+ findings: ResearchFinding[];
73
+ /** Confidence improvement (0-0.3) */
74
+ confidenceImprovement: number;
75
+ /** New confidence after research */
76
+ newConfidence: number;
77
+ /** Summary of what was found */
78
+ summary: string;
79
+ /** Tokens used */
80
+ tokensUsed: number;
81
+ /** Whether more research could help */
82
+ canImproveMore: boolean;
83
+ }
84
+ export declare const DEFAULT_RESEARCH_CONFIG: ResearchPhaseConfig;
85
+ /**
86
+ * Identify what research is needed based on analysis
87
+ */
88
+ export declare function identifyResearchTargets(analysis: SpecAnalysis, ambiguity: AmbiguityAnalysis): ResearchTarget[];
89
+ /**
90
+ * Build research prompt for subagent
91
+ */
92
+ export declare function buildResearchPrompt(prompt: string, targets: ResearchTarget[], config?: ResearchPhaseConfig): string;
93
+ /**
94
+ * Calculate confidence improvement from findings
95
+ */
96
+ export declare function calculateConfidenceImprovement(findings: ResearchFinding[], config?: ResearchPhaseConfig): number;
97
+ /**
98
+ * Execute research phase
99
+ */
100
+ export declare function executeResearchPhase(prompt: string, currentConfidence: number, analysis: SpecAnalysis, config?: ResearchPhaseConfig): Promise<ResearchPhaseResult>;
101
+ /**
102
+ * Build Task tool parameters for research subagent
103
+ */
104
+ export declare function buildResearchTaskParams(prompt: string, targets: ResearchTarget[], config?: ResearchPhaseConfig): {
105
+ description: string;
106
+ prompt: string;
107
+ subagent_type: string;
108
+ model: string;
109
+ };
110
+ /**
111
+ * Format research result for session.md
112
+ */
113
+ export declare function formatResearchForSession(result: ResearchPhaseResult): string;
114
+ //# sourceMappingURL=research-phase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research-phase.d.ts","sourceRoot":"","sources":["../../../src/core/agents/research-phase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,wCAAwC,CAAA;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAM7D,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,oBAAoB,EAAE,OAAO,CAAA;IAC7B,8CAA8C;IAC9C,eAAe,EAAE,OAAO,CAAA;IACxB,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAA;IACzB,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,4DAA4D;IAC5D,wBAAwB,EAAE,MAAM,CAAA;IAChC,8CAA8C;IAC9C,wBAAwB,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,CAAA;IACjC,iCAAiC;IACjC,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,CAAA;IAC3E,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,CAAA;IACnE,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAA;IACjB,4CAA4C;IAC5C,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,6BAA6B;IAC7B,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,qCAAqC;IACrC,qBAAqB,EAAE,MAAM,CAAA;IAC7B,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAA;IACrB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,cAAc,EAAE,OAAO,CAAA;CACxB;AAMD,eAAO,MAAM,uBAAuB,EAAE,mBAOrC,CAAA;AAgBD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,iBAAiB,GAC3B,cAAc,EAAE,CAmIlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,GAAE,mBAA6C,GACpD,MAAM,CAoDR;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,eAAe,EAAE,EAC3B,MAAM,GAAE,mBAA6C,GACpD,MAAM,CA0CR;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,YAAY,EACtB,MAAM,GAAE,mBAA6C,GACpD,OAAO,CAAC,mBAAmB,CAAC,CAuC9B;AAiCD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,GAAE,mBAA6C,GACpD;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACd,CAOA;AAMD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAwB5E"}