dino-spec 17.4.3 → 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.
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +10 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/core/agents/__tests__/confidence-gate.test.d.ts +5 -0
- package/dist/core/agents/__tests__/confidence-gate.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/confidence-gate.test.js +329 -0
- package/dist/core/agents/__tests__/confidence-gate.test.js.map +1 -0
- package/dist/core/agents/__tests__/gap-detector.test.d.ts +5 -0
- package/dist/core/agents/__tests__/gap-detector.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/gap-detector.test.js +609 -0
- package/dist/core/agents/__tests__/gap-detector.test.js.map +1 -0
- package/dist/core/agents/__tests__/learning-loop.test.d.ts +5 -0
- package/dist/core/agents/__tests__/learning-loop.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/learning-loop.test.js +663 -0
- package/dist/core/agents/__tests__/learning-loop.test.js.map +1 -0
- package/dist/core/agents/__tests__/parallel-executor.test.d.ts +5 -0
- package/dist/core/agents/__tests__/parallel-executor.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/parallel-executor.test.js +610 -0
- package/dist/core/agents/__tests__/parallel-executor.test.js.map +1 -0
- package/dist/core/agents/__tests__/research-validator.test.js +5 -5
- package/dist/core/agents/__tests__/research-validator.test.js.map +1 -1
- package/dist/core/agents/__tests__/skill-creator.test.d.ts +5 -0
- package/dist/core/agents/__tests__/skill-creator.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/skill-creator.test.js +443 -0
- package/dist/core/agents/__tests__/skill-creator.test.js.map +1 -0
- package/dist/core/agents/__tests__/state-persistence.test.d.ts +2 -0
- package/dist/core/agents/__tests__/state-persistence.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/state-persistence.test.js +270 -0
- package/dist/core/agents/__tests__/state-persistence.test.js.map +1 -0
- package/dist/core/agents/__tests__/validation-cache.test.d.ts +2 -0
- package/dist/core/agents/__tests__/validation-cache.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/validation-cache.test.js +181 -0
- package/dist/core/agents/__tests__/validation-cache.test.js.map +1 -0
- package/dist/core/agents/blackboard.d.ts +22 -3
- package/dist/core/agents/blackboard.d.ts.map +1 -1
- package/dist/core/agents/blackboard.js +52 -2
- package/dist/core/agents/blackboard.js.map +1 -1
- package/dist/core/agents/circuit-breaker.d.ts +79 -1
- package/dist/core/agents/circuit-breaker.d.ts.map +1 -1
- package/dist/core/agents/circuit-breaker.js +175 -1
- package/dist/core/agents/circuit-breaker.js.map +1 -1
- package/dist/core/agents/clarification-phase.d.ts +128 -0
- package/dist/core/agents/clarification-phase.d.ts.map +1 -0
- package/dist/core/agents/clarification-phase.js +375 -0
- package/dist/core/agents/clarification-phase.js.map +1 -0
- package/dist/core/agents/confidence-gate.d.ts +116 -3
- package/dist/core/agents/confidence-gate.d.ts.map +1 -1
- package/dist/core/agents/confidence-gate.js +363 -3
- package/dist/core/agents/confidence-gate.js.map +1 -1
- package/dist/core/agents/correction-tracker.d.ts +197 -0
- package/dist/core/agents/correction-tracker.d.ts.map +1 -0
- package/dist/core/agents/correction-tracker.js +366 -0
- package/dist/core/agents/correction-tracker.js.map +1 -0
- package/dist/core/agents/dependency-graph.d.ts +193 -0
- package/dist/core/agents/dependency-graph.d.ts.map +1 -0
- package/dist/core/agents/dependency-graph.js +462 -0
- package/dist/core/agents/dependency-graph.js.map +1 -0
- package/dist/core/agents/gap-detector.d.ts +277 -0
- package/dist/core/agents/gap-detector.d.ts.map +1 -0
- package/dist/core/agents/gap-detector.js +540 -0
- package/dist/core/agents/gap-detector.js.map +1 -0
- package/dist/core/agents/index.d.ts +14 -1
- package/dist/core/agents/index.d.ts.map +1 -1
- package/dist/core/agents/index.js +26 -1
- package/dist/core/agents/index.js.map +1 -1
- package/dist/core/agents/message-protocol.d.ts +13 -2
- package/dist/core/agents/message-protocol.d.ts.map +1 -1
- package/dist/core/agents/message-protocol.js +20 -1
- package/dist/core/agents/message-protocol.js.map +1 -1
- package/dist/core/agents/parallel-executor.d.ts +182 -0
- package/dist/core/agents/parallel-executor.d.ts.map +1 -0
- package/dist/core/agents/parallel-executor.js +474 -0
- package/dist/core/agents/parallel-executor.js.map +1 -0
- package/dist/core/agents/pattern-detector.d.ts +157 -0
- package/dist/core/agents/pattern-detector.d.ts.map +1 -0
- package/dist/core/agents/pattern-detector.js +370 -0
- package/dist/core/agents/pattern-detector.js.map +1 -0
- package/dist/core/agents/registry-client.d.ts +6 -0
- package/dist/core/agents/registry-client.d.ts.map +1 -1
- package/dist/core/agents/registry-client.js +3 -0
- package/dist/core/agents/registry-client.js.map +1 -1
- package/dist/core/agents/research-phase.d.ts +114 -0
- package/dist/core/agents/research-phase.d.ts.map +1 -0
- package/dist/core/agents/research-phase.js +355 -0
- package/dist/core/agents/research-phase.js.map +1 -0
- package/dist/core/agents/research-validator.d.ts +13 -2
- package/dist/core/agents/research-validator.d.ts.map +1 -1
- package/dist/core/agents/research-validator.js +63 -31
- package/dist/core/agents/research-validator.js.map +1 -1
- package/dist/core/agents/skill-creator.d.ts +174 -0
- package/dist/core/agents/skill-creator.d.ts.map +1 -0
- package/dist/core/agents/skill-creator.js +570 -0
- package/dist/core/agents/skill-creator.js.map +1 -0
- package/dist/core/agents/state-persistence.d.ts +184 -0
- package/dist/core/agents/state-persistence.d.ts.map +1 -0
- package/dist/core/agents/state-persistence.js +394 -0
- package/dist/core/agents/state-persistence.js.map +1 -0
- package/dist/core/agents/validation-cache.d.ts +122 -0
- package/dist/core/agents/validation-cache.d.ts.map +1 -0
- package/dist/core/agents/validation-cache.js +280 -0
- package/dist/core/agents/validation-cache.js.map +1 -0
- package/dist/core/agents/validators/__tests__/validators.test.d.ts +5 -0
- package/dist/core/agents/validators/__tests__/validators.test.d.ts.map +1 -0
- package/dist/core/agents/validators/__tests__/validators.test.js +321 -0
- package/dist/core/agents/validators/__tests__/validators.test.js.map +1 -0
- package/dist/core/agents/validators/base-validator.d.ts +191 -0
- package/dist/core/agents/validators/base-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/base-validator.js +192 -0
- package/dist/core/agents/validators/base-validator.js.map +1 -0
- package/dist/core/agents/validators/index.d.ts +7 -0
- package/dist/core/agents/validators/index.d.ts.map +1 -0
- package/dist/core/agents/validators/index.js +7 -0
- package/dist/core/agents/validators/index.js.map +1 -0
- package/dist/core/agents/validators/npm-validator.d.ts +50 -0
- package/dist/core/agents/validators/npm-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/npm-validator.js +211 -0
- package/dist/core/agents/validators/npm-validator.js.map +1 -0
- package/dist/core/agents/validators/pip-validator.d.ts +49 -0
- package/dist/core/agents/validators/pip-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/pip-validator.js +191 -0
- package/dist/core/agents/validators/pip-validator.js.map +1 -0
- package/dist/core/agents/validators/validator-registry.d.ts +122 -0
- package/dist/core/agents/validators/validator-registry.d.ts.map +1 -0
- package/dist/core/agents/validators/validator-registry.js +321 -0
- package/dist/core/agents/validators/validator-registry.js.map +1 -0
- package/dist/core/context-repl/types.d.ts +4 -4
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +2 -0
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/memory/learning-store.d.ts +222 -0
- package/dist/core/memory/learning-store.d.ts.map +1 -0
- package/dist/core/memory/learning-store.js +477 -0
- package/dist/core/memory/learning-store.js.map +1 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts +5 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts.map +1 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js +401 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js.map +1 -0
- package/dist/core/spec-analyzer/ambiguity-detector.d.ts +99 -0
- package/dist/core/spec-analyzer/ambiguity-detector.d.ts.map +1 -0
- package/dist/core/spec-analyzer/ambiguity-detector.js +250 -0
- package/dist/core/spec-analyzer/ambiguity-detector.js.map +1 -0
- package/dist/core/spec-analyzer/clarification-generator.d.ts +76 -0
- package/dist/core/spec-analyzer/clarification-generator.d.ts.map +1 -0
- package/dist/core/spec-analyzer/clarification-generator.js +257 -0
- package/dist/core/spec-analyzer/clarification-generator.js.map +1 -0
- package/dist/core/spec-analyzer/index.d.ts +10 -1
- package/dist/core/spec-analyzer/index.d.ts.map +1 -1
- package/dist/core/spec-analyzer/index.js +13 -1
- package/dist/core/spec-analyzer/index.js.map +1 -1
- package/dist/core/spec-analyzer/patterns.d.ts +73 -0
- package/dist/core/spec-analyzer/patterns.d.ts.map +1 -0
- package/dist/core/spec-analyzer/patterns.js +412 -0
- package/dist/core/spec-analyzer/patterns.js.map +1 -0
- package/dist/hooks/__tests__/dynamic-generator.test.d.ts +5 -0
- package/dist/hooks/__tests__/dynamic-generator.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/dynamic-generator.test.js +425 -0
- package/dist/hooks/__tests__/dynamic-generator.test.js.map +1 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts +5 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.js +315 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.js.map +1 -0
- package/dist/hooks/dynamic-generator.d.ts +158 -0
- package/dist/hooks/dynamic-generator.d.ts.map +1 -0
- package/dist/hooks/dynamic-generator.js +448 -0
- package/dist/hooks/dynamic-generator.js.map +1 -0
- package/dist/hooks/hook-agent-bridge.d.ts +252 -0
- package/dist/hooks/hook-agent-bridge.d.ts.map +1 -0
- package/dist/hooks/hook-agent-bridge.js +489 -0
- package/dist/hooks/hook-agent-bridge.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +5 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/mcp/tool-catalog.d.ts.map +1 -1
- package/dist/mcp/tool-catalog.js +47 -0
- package/dist/mcp/tool-catalog.js.map +1 -1
- package/dist/mcp/tool-tiers.d.ts.map +1 -1
- package/dist/mcp/tool-tiers.js +4 -0
- package/dist/mcp/tool-tiers.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +2 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +15 -1
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/learning-store.d.ts +30 -0
- package/dist/mcp/tools/learning-store.d.ts.map +1 -0
- package/dist/mcp/tools/learning-store.js +286 -0
- package/dist/mcp/tools/learning-store.js.map +1 -0
- 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;
|
|
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":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../../../src/core/agents/registry-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAiDH,wBAAwB;AACxB,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,SAAS;AAC7C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuC,CAAA;AACpE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmC,CAAA;AAC5D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsC,CAAA;AAEjE,gBAAgB;AAChB,MAAM,mBAAmB,GAAG,GAAG,CAAA,CAAC,aAAa;AAC7C,IAAI,eAAe,GAAG,CAAC,CAAA;AAEvB;;GAEG;AACH,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,MAAM,oBAAoB,GAAG,GAAG,GAAG,eAAe,CAAA;IAElD,IAAI,oBAAoB,GAAG,mBAAmB,EAAE,CAAC;QAC/C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,oBAAoB,CAAC,CAAC,CAAA;IACjG,CAAC;IAED,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAI,KAAgC;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,YAAY,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,GAAW,EACX,YAAoB,IAAI,EACxB,UAAkB,CAAC;IAEnB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;YACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;YAEjE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,OAAO,EAAE;oBACP,MAAM,EAAE,kBAAkB;oBAC1B,YAAY,EAAE,2BAA2B;iBAC1C;aACF,CAAC,CAAA;YAEF,YAAY,CAAC,SAAS,CAAC,CAAA;YAEvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YACpE,CAAC;YAED,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,MAAM,KAAK,CAAA;YACb,CAAC;YACD,sBAAsB;YACtB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,OAAgB;IAEhB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAEtD,cAAc;IACd,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC1C,IAAI,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,aAAa;IACb,MAAM,SAAS,EAAE,CAAA;IAEjB,0BAA0B;IAC1B,MAAM,GAAG,GAAG,OAAO;QACjB,CAAC,CAAC,8BAA8B,IAAI,IAAI,OAAO,EAAE;QACjD,CAAC,CAAC,8BAA8B,IAAI,SAAS,CAAA;IAE/C,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAQ,CAAA;IAE3C,MAAM,QAAQ,GAAoB;QAChC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;QACnC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,YAAY;QACrC,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC;QACrF,UAAU,EAAE,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE;QAC7F,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;QACrC,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;YACjC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE;SAChC;QACD,UAAU,EAAE,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC7E,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM;QACvC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ;KACjC,CAAA;IAED,eAAe;IACf,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC1B,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAa,EAAE,QAAgB,EAAE;IACpE,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,KAAK,EAAE,CAAA;IAEpC,cAAc;IACd,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACxC,IAAI,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,aAAa;IACb,MAAM,SAAS,EAAE,CAAA;IAEjB,qCAAqC;IACrC,MAAM,GAAG,GAAG,+CAA+C,kBAAkB,CAAC,KAAK,CAAC,SAAS,KAAK,EAAE,CAAA;IAEpG,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAQ,CAAA;IAE3C,MAAM,OAAO,GAAmB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;QACtB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;QAC5B,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;QAC1C,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;QACpC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;QACtB,KAAK,EAAE;YACL,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;YAC1B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;YACpC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU;SACzC;KACF,CAAC,CAAC,CAAA;IAEH,eAAe;IACf,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;QACxB,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,OAAe;IAChE,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,OAAO,EAAE,CAAA;IAErC,cAAc;IACd,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,aAAa;IACb,MAAM,SAAS,EAAE,CAAA;IAEjB,0BAA0B;IAC1B,MAAM,GAAG,GAAG,6CAA6C,kBAAkB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAA;IAElH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAQ,CAAA;IAE3C,MAAM,QAAQ,GAAgB;QAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;QACpB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;QACpB,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC;KAC3C,CAAA;IAED,eAAe;IACf,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE;QACtB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,aAAa,CAAC,KAAK,EAAE,CAAA;IACrB,SAAS,CAAC,KAAK,EAAE,CAAA;IACjB,WAAW,CAAC,KAAK,EAAE,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,QAAQ,EAAE;YACR,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC1C;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACtC;QACD,MAAM,EAAE;YACN,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACxC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -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":"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"}
|