@supernal/interface 1.0.4 → 1.0.7
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/cjs/src/ai/AIInterface.js +183 -0
- package/dist/cjs/src/ai/AIInterface.js.map +1 -0
- package/dist/cjs/src/ai/ParameterExtractor.js +140 -0
- package/dist/cjs/src/ai/ParameterExtractor.js.map +1 -0
- package/dist/cjs/src/ai/SuggestionEngine.js +157 -0
- package/dist/cjs/src/ai/SuggestionEngine.js.map +1 -0
- package/dist/cjs/src/ai/ToolMatcher.js +20 -1
- package/dist/cjs/src/ai/ToolMatcher.js.map +1 -1
- package/dist/cjs/src/ai/index.js +5 -7
- package/dist/cjs/src/ai/index.js.map +1 -1
- package/dist/cjs/src/background/registry/ToolRegistry.js +28 -3
- package/dist/cjs/src/background/registry/ToolRegistry.js.map +1 -1
- package/dist/cjs/src/browser.js +9 -1
- package/dist/cjs/src/browser.js.map +1 -1
- package/dist/cjs/src/decorators/ToolHelpers.js +3 -3
- package/dist/cjs/src/decorators/ToolHelpers.js.map +1 -1
- package/dist/cjs/src/index.js +3 -1
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/esm/src/ai/AIInterface.d.ts +79 -0
- package/dist/esm/src/ai/AIInterface.d.ts.map +1 -0
- package/dist/esm/src/ai/AIInterface.js +179 -0
- package/dist/esm/src/ai/AIInterface.js.map +1 -0
- package/dist/esm/src/ai/ParameterExtractor.d.ts +50 -0
- package/dist/esm/src/ai/ParameterExtractor.d.ts.map +1 -0
- package/dist/esm/src/ai/ParameterExtractor.js +136 -0
- package/dist/esm/src/ai/ParameterExtractor.js.map +1 -0
- package/dist/esm/src/ai/SuggestionEngine.d.ts +43 -0
- package/dist/esm/src/ai/SuggestionEngine.d.ts.map +1 -0
- package/dist/esm/src/ai/SuggestionEngine.js +153 -0
- package/dist/esm/src/ai/SuggestionEngine.js.map +1 -0
- package/dist/esm/src/ai/ToolMatcher.js +20 -1
- package/dist/esm/src/ai/ToolMatcher.js.map +1 -1
- package/dist/esm/src/ai/index.d.ts +5 -3
- package/dist/esm/src/ai/index.d.ts.map +1 -1
- package/dist/esm/src/ai/index.js +5 -7
- package/dist/esm/src/ai/index.js.map +1 -1
- package/dist/esm/src/background/registry/ToolRegistry.d.ts.map +1 -1
- package/dist/esm/src/background/registry/ToolRegistry.js +28 -3
- package/dist/esm/src/background/registry/ToolRegistry.js.map +1 -1
- package/dist/esm/src/browser.d.ts +3 -0
- package/dist/esm/src/browser.d.ts.map +1 -1
- package/dist/esm/src/browser.js +4 -0
- package/dist/esm/src/browser.js.map +1 -1
- package/dist/esm/src/decorators/ToolHelpers.js +3 -3
- package/dist/esm/src/decorators/ToolHelpers.js.map +1 -1
- package/dist/esm/src/index.d.ts +1 -0
- package/dist/esm/src/index.d.ts.map +1 -1
- package/dist/esm/src/index.js +1 -0
- package/dist/esm/src/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ParameterExtractor - Extract parameters from natural language queries
|
|
3
|
+
*
|
|
4
|
+
* Supports multiple extraction strategies:
|
|
5
|
+
* - Pattern-based (using tool examples)
|
|
6
|
+
* - Entity extraction (dates, numbers, names)
|
|
7
|
+
* - LLM-based extraction (structured JSON)
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Main ParameterExtractor orchestrator
|
|
11
|
+
*/
|
|
12
|
+
export class ParameterExtractor {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.strategies = [];
|
|
15
|
+
// Register default strategies
|
|
16
|
+
this.registerStrategy(new PatternExtractor());
|
|
17
|
+
this.registerStrategy(new EntityExtractor());
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Register a new extraction strategy
|
|
21
|
+
*/
|
|
22
|
+
registerStrategy(strategy) {
|
|
23
|
+
this.strategies.push(strategy);
|
|
24
|
+
this.strategies.sort((a, b) => b.priority - a.priority);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Extract parameters from query for a specific tool
|
|
28
|
+
*/
|
|
29
|
+
async extract(query, tool) {
|
|
30
|
+
// Try each strategy in priority order
|
|
31
|
+
for (const strategy of this.strategies) {
|
|
32
|
+
try {
|
|
33
|
+
const result = await strategy.extract(query, tool);
|
|
34
|
+
if (result && result.confidence >= 60) {
|
|
35
|
+
console.log(`✅ [ParamExtract] Used strategy: ${strategy.name}`, result);
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.warn(`[ParamExtract] Strategy ${strategy.name} failed:`, error);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// No successful extraction
|
|
44
|
+
return {
|
|
45
|
+
parameters: [],
|
|
46
|
+
confidence: 0,
|
|
47
|
+
reasoning: 'No extraction strategy succeeded'
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Pattern-based extraction using tool examples
|
|
53
|
+
*/
|
|
54
|
+
class PatternExtractor {
|
|
55
|
+
constructor() {
|
|
56
|
+
this.name = 'pattern';
|
|
57
|
+
this.priority = 80;
|
|
58
|
+
}
|
|
59
|
+
async extract(query, tool) {
|
|
60
|
+
const examples = tool.examples || [];
|
|
61
|
+
if (examples.length === 0) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const lowerQuery = query.toLowerCase().trim();
|
|
65
|
+
// Try to match each example pattern
|
|
66
|
+
for (const example of examples) {
|
|
67
|
+
const pattern = example.toLowerCase();
|
|
68
|
+
// Check if query starts with the pattern
|
|
69
|
+
if (lowerQuery.startsWith(pattern)) {
|
|
70
|
+
// Extract trailing text as parameter
|
|
71
|
+
const trailing = query.substring(example.length).trim();
|
|
72
|
+
if (trailing) {
|
|
73
|
+
console.log(`🔍 [PatternExtract] Matched: "${example}" → param: "${trailing}"`);
|
|
74
|
+
return {
|
|
75
|
+
parameters: [trailing],
|
|
76
|
+
confidence: 90,
|
|
77
|
+
reasoning: `Matched pattern: "${example}"`
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Check if pattern contains a placeholder (e.g., "open blog {title}")
|
|
82
|
+
const placeholderMatch = pattern.match(/\{(\w+)\}/);
|
|
83
|
+
if (placeholderMatch) {
|
|
84
|
+
// Create a regex from the pattern
|
|
85
|
+
const regexPattern = pattern.replace(/\{(\w+)\}/g, '(.+?)');
|
|
86
|
+
const regex = new RegExp(`^${regexPattern}$`, 'i');
|
|
87
|
+
const match = lowerQuery.match(regex);
|
|
88
|
+
if (match && match[1]) {
|
|
89
|
+
console.log(`🔍 [PatternExtract] Placeholder match: "${example}" → param: "${match[1]}"`);
|
|
90
|
+
return {
|
|
91
|
+
parameters: [match[1].trim()],
|
|
92
|
+
confidence: 95,
|
|
93
|
+
reasoning: `Matched placeholder in: "${example}"`
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Entity extraction for common types (numbers, dates, etc.)
|
|
103
|
+
*/
|
|
104
|
+
class EntityExtractor {
|
|
105
|
+
constructor() {
|
|
106
|
+
this.name = 'entity';
|
|
107
|
+
this.priority = 60;
|
|
108
|
+
}
|
|
109
|
+
async extract(query, tool) {
|
|
110
|
+
const parameters = [];
|
|
111
|
+
// Extract numbers
|
|
112
|
+
const numberMatch = query.match(/\d+/);
|
|
113
|
+
if (numberMatch) {
|
|
114
|
+
parameters.push(parseInt(numberMatch[0], 10));
|
|
115
|
+
}
|
|
116
|
+
// Extract quoted strings
|
|
117
|
+
const quotedMatch = query.match(/"([^"]+)"/);
|
|
118
|
+
if (quotedMatch) {
|
|
119
|
+
parameters.push(quotedMatch[1]);
|
|
120
|
+
}
|
|
121
|
+
// Extract common entities (colors, themes, etc.)
|
|
122
|
+
const colorMatch = query.match(/\b(red|blue|green|dark|light|black|white)\b/i);
|
|
123
|
+
if (colorMatch) {
|
|
124
|
+
parameters.push(colorMatch[1].toLowerCase());
|
|
125
|
+
}
|
|
126
|
+
if (parameters.length > 0) {
|
|
127
|
+
return {
|
|
128
|
+
parameters,
|
|
129
|
+
confidence: 70,
|
|
130
|
+
reasoning: `Extracted ${parameters.length} entities`
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=ParameterExtractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParameterExtractor.js","sourceRoot":"","sources":["../../../../src/ai/ParameterExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SuggestionEngine - "Did You Mean?" system for invalid queries
|
|
3
|
+
*
|
|
4
|
+
* Provides helpful suggestions when user queries don't match any tools:
|
|
5
|
+
* - Typo detection (Levenshtein distance)
|
|
6
|
+
* - Similar command suggestions
|
|
7
|
+
* - Available command list
|
|
8
|
+
*/
|
|
9
|
+
import type { ToolMetadata } from '../decorators/Tool';
|
|
10
|
+
/**
|
|
11
|
+
* Suggestion with confidence
|
|
12
|
+
*/
|
|
13
|
+
export interface Suggestion {
|
|
14
|
+
text: string;
|
|
15
|
+
confidence: number;
|
|
16
|
+
type: 'typo' | 'similar' | 'example' | 'category';
|
|
17
|
+
tool?: ToolMetadata;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* SuggestionEngine for generating "Did You Mean?" prompts
|
|
21
|
+
*/
|
|
22
|
+
export declare class SuggestionEngine {
|
|
23
|
+
/**
|
|
24
|
+
* Generate suggestions for an invalid/ambiguous query
|
|
25
|
+
* @param query User's query
|
|
26
|
+
* @param tools Available tools
|
|
27
|
+
* @param maxSuggestions Maximum number of suggestions to return
|
|
28
|
+
*/
|
|
29
|
+
getSuggestions(query: string, tools: ToolMetadata[], maxSuggestions?: number): Suggestion[];
|
|
30
|
+
/**
|
|
31
|
+
* Format suggestions into a user-friendly message
|
|
32
|
+
*/
|
|
33
|
+
formatSuggestions(suggestions: Suggestion[]): string;
|
|
34
|
+
/**
|
|
35
|
+
* Match query to a category
|
|
36
|
+
*/
|
|
37
|
+
private matchCategory;
|
|
38
|
+
/**
|
|
39
|
+
* Calculate Levenshtein distance between two strings
|
|
40
|
+
*/
|
|
41
|
+
private levenshtein;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=SuggestionEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuggestionEngine.d.ts","sourceRoot":"","sources":["../../../../src/ai/SuggestionEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAClD,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;;;;OAKG;IACH,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,EAAE,EACrB,cAAc,GAAE,MAAU,GACzB,UAAU,EAAE;IAgFf;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM;IA4BpD;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,WAAW;CA2BpB"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SuggestionEngine - "Did You Mean?" system for invalid queries
|
|
3
|
+
*
|
|
4
|
+
* Provides helpful suggestions when user queries don't match any tools:
|
|
5
|
+
* - Typo detection (Levenshtein distance)
|
|
6
|
+
* - Similar command suggestions
|
|
7
|
+
* - Available command list
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* SuggestionEngine for generating "Did You Mean?" prompts
|
|
11
|
+
*/
|
|
12
|
+
export class SuggestionEngine {
|
|
13
|
+
/**
|
|
14
|
+
* Generate suggestions for an invalid/ambiguous query
|
|
15
|
+
* @param query User's query
|
|
16
|
+
* @param tools Available tools
|
|
17
|
+
* @param maxSuggestions Maximum number of suggestions to return
|
|
18
|
+
*/
|
|
19
|
+
getSuggestions(query, tools, maxSuggestions = 5) {
|
|
20
|
+
const suggestions = [];
|
|
21
|
+
const lowerQuery = query.toLowerCase().trim();
|
|
22
|
+
// 1. Check for typos (Levenshtein distance ≤ 3)
|
|
23
|
+
for (const tool of tools) {
|
|
24
|
+
const examples = tool.examples || [];
|
|
25
|
+
const allPhrases = [tool.name, ...examples];
|
|
26
|
+
for (const phrase of allPhrases) {
|
|
27
|
+
const distance = this.levenshtein(lowerQuery, phrase.toLowerCase());
|
|
28
|
+
if (distance <= 3 && distance > 0) {
|
|
29
|
+
const confidence = Math.round((1 - distance / Math.max(lowerQuery.length, phrase.length)) * 100);
|
|
30
|
+
suggestions.push({
|
|
31
|
+
text: phrase,
|
|
32
|
+
confidence,
|
|
33
|
+
type: 'typo',
|
|
34
|
+
tool
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// 2. Find similar commands (keyword overlap)
|
|
40
|
+
const queryWords = lowerQuery.split(/\s+/);
|
|
41
|
+
for (const tool of tools) {
|
|
42
|
+
const examples = tool.examples || [];
|
|
43
|
+
const toolWords = [
|
|
44
|
+
...tool.name.toLowerCase().split(/\s+/),
|
|
45
|
+
...(tool.description?.toLowerCase().split(/\s+/) || []),
|
|
46
|
+
...examples.flatMap((e) => e.toLowerCase().split(/\s+/))
|
|
47
|
+
];
|
|
48
|
+
const overlap = queryWords.filter(w => toolWords.includes(w)).length;
|
|
49
|
+
if (overlap > 0) {
|
|
50
|
+
const confidence = Math.round((overlap / queryWords.length) * 100);
|
|
51
|
+
// Use first example if available, otherwise tool name
|
|
52
|
+
const text = examples[0] || tool.name;
|
|
53
|
+
suggestions.push({
|
|
54
|
+
text,
|
|
55
|
+
confidence,
|
|
56
|
+
type: 'similar',
|
|
57
|
+
tool
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// 3. Category-based suggestions
|
|
62
|
+
const categoryMatch = this.matchCategory(lowerQuery);
|
|
63
|
+
if (categoryMatch) {
|
|
64
|
+
const categoryTools = tools.filter(t => t.category === categoryMatch);
|
|
65
|
+
for (const tool of categoryTools.slice(0, 3)) {
|
|
66
|
+
const examples = tool.examples || [];
|
|
67
|
+
const text = examples[0] || tool.name;
|
|
68
|
+
suggestions.push({
|
|
69
|
+
text,
|
|
70
|
+
confidence: 60,
|
|
71
|
+
type: 'category',
|
|
72
|
+
tool
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Sort by confidence and deduplicate
|
|
77
|
+
const sorted = suggestions
|
|
78
|
+
.sort((a, b) => b.confidence - a.confidence)
|
|
79
|
+
.filter((s, i, arr) =>
|
|
80
|
+
// Remove duplicates (same text)
|
|
81
|
+
i === arr.findIndex(other => other.text === s.text))
|
|
82
|
+
.slice(0, maxSuggestions);
|
|
83
|
+
return sorted;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Format suggestions into a user-friendly message
|
|
87
|
+
*/
|
|
88
|
+
formatSuggestions(suggestions) {
|
|
89
|
+
if (suggestions.length === 0) {
|
|
90
|
+
return 'No suggestions available. Try typing "help" to see all commands.';
|
|
91
|
+
}
|
|
92
|
+
const typos = suggestions.filter(s => s.type === 'typo');
|
|
93
|
+
const similar = suggestions.filter(s => s.type === 'similar' || s.type === 'category');
|
|
94
|
+
let message = '';
|
|
95
|
+
if (typos.length > 0) {
|
|
96
|
+
message += '❓ Did you mean?\n';
|
|
97
|
+
for (const typo of typos.slice(0, 3)) {
|
|
98
|
+
message += ` • "${typo.text}"\n`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (similar.length > 0) {
|
|
102
|
+
if (message)
|
|
103
|
+
message += '\n';
|
|
104
|
+
message += '💡 Similar commands:\n';
|
|
105
|
+
for (const sim of similar.slice(0, 3)) {
|
|
106
|
+
message += ` • "${sim.text}"\n`;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return message.trim();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Match query to a category
|
|
113
|
+
*/
|
|
114
|
+
matchCategory(query) {
|
|
115
|
+
const categories = {
|
|
116
|
+
'navigation': ['go', 'open', 'navigate', 'show', 'view', 'page'],
|
|
117
|
+
'theme': ['theme', 'color', 'dark', 'light', 'appearance'],
|
|
118
|
+
'data': ['load', 'fetch', 'get', 'data', 'retrieve'],
|
|
119
|
+
'form': ['submit', 'save', 'form', 'input', 'enter'],
|
|
120
|
+
'state': ['set', 'change', 'update', 'modify', 'status']
|
|
121
|
+
};
|
|
122
|
+
for (const [category, keywords] of Object.entries(categories)) {
|
|
123
|
+
if (keywords.some(kw => query.includes(kw))) {
|
|
124
|
+
return category;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Calculate Levenshtein distance between two strings
|
|
131
|
+
*/
|
|
132
|
+
levenshtein(a, b) {
|
|
133
|
+
const matrix = [];
|
|
134
|
+
for (let i = 0; i <= b.length; i++) {
|
|
135
|
+
matrix[i] = [i];
|
|
136
|
+
}
|
|
137
|
+
for (let j = 0; j <= a.length; j++) {
|
|
138
|
+
matrix[0][j] = j;
|
|
139
|
+
}
|
|
140
|
+
for (let i = 1; i <= b.length; i++) {
|
|
141
|
+
for (let j = 1; j <= a.length; j++) {
|
|
142
|
+
if (b.charAt(i - 1) === a.charAt(j - 1)) {
|
|
143
|
+
matrix[i][j] = matrix[i - 1][j - 1];
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j] + 1);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return matrix[b.length][a.length];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=SuggestionEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuggestionEngine.js","sourceRoot":"","sources":["../../../../src/ai/SuggestionEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -137,11 +137,30 @@ class FuzzyMatcher {
|
|
|
137
137
|
// Check examples similarity
|
|
138
138
|
const examples = tool.examples || [];
|
|
139
139
|
for (const example of examples) {
|
|
140
|
-
|
|
140
|
+
// Remove placeholders like {query}, {title} for better matching
|
|
141
|
+
const exampleNormalized = example.toLowerCase().replace(/\{[^}]+\}/g, '').trim();
|
|
142
|
+
// Check if query matches the pattern without the placeholder
|
|
143
|
+
const exampleScore = this.similarity(lowerQuery, exampleNormalized);
|
|
141
144
|
if (exampleScore > bestScore) {
|
|
142
145
|
bestScore = exampleScore;
|
|
143
146
|
bestMatch = example;
|
|
144
147
|
}
|
|
148
|
+
// Also check if query has extra words that could be the placeholder value
|
|
149
|
+
// E.g., "open your users" should match "open {query}"
|
|
150
|
+
const queryWords = lowerQuery.split(/\s+/);
|
|
151
|
+
const patternWords = exampleNormalized.split(/\s+/).filter((w) => w.length > 0);
|
|
152
|
+
// If query starts with the same words as the pattern, it's likely a match with parameter
|
|
153
|
+
if (patternWords.length > 0 && queryWords.length >= patternWords.length) {
|
|
154
|
+
const matchesPattern = patternWords.every((word, i) => queryWords[i] && queryWords[i].includes(word));
|
|
155
|
+
if (matchesPattern) {
|
|
156
|
+
// Boost score for parameter-based patterns
|
|
157
|
+
const paramScore = 0.85 + (patternWords.length / queryWords.length * 0.10);
|
|
158
|
+
if (paramScore > bestScore) {
|
|
159
|
+
bestScore = paramScore;
|
|
160
|
+
bestMatch = `${example} (pattern match with parameter)`;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
145
164
|
}
|
|
146
165
|
// Check keyword overlap
|
|
147
166
|
const keywords = tool.description?.toLowerCase().split(/\s+/) || [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolMatcher.js","sourceRoot":"","sources":["../../../../src/ai/ToolMatcher.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ToolMatcher.js","sourceRoot":"","sources":["../../../../src/ai/ToolMatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AI Command Interface - Core exports
|
|
2
|
+
* AI Command Interface - Core exports
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* ParameterExtractor, SuggestionEngine) available in enterprise edition.
|
|
4
|
+
* Re-exports all open-source AI abstractions
|
|
6
5
|
*/
|
|
6
|
+
export * from './AIInterface';
|
|
7
7
|
export * from './ToolMatcher';
|
|
8
|
+
export * from './ParameterExtractor';
|
|
8
9
|
export * from './ToolExecutor';
|
|
10
|
+
export * from './SuggestionEngine';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
|
package/dist/esm/src/ai/index.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AI Command Interface - Core exports
|
|
2
|
+
* AI Command Interface - Core exports
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* ParameterExtractor, SuggestionEngine) available in enterprise edition.
|
|
4
|
+
* Re-exports all open-source AI abstractions
|
|
6
5
|
*/
|
|
6
|
+
export * from './AIInterface.js';
|
|
7
7
|
export * from './ToolMatcher.js';
|
|
8
|
+
export * from './ParameterExtractor.js';
|
|
8
9
|
export * from './ToolExecutor.js';
|
|
9
|
-
|
|
10
|
-
// export * from './ParameterExtractor.js';
|
|
11
|
-
// export * from './LLMProvider.js';
|
|
12
|
-
// export * from './SuggestionEngine.js';
|
|
10
|
+
export * from './SuggestionEngine.js';
|
|
13
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/background/registry/ToolRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAWD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,KAAK,KAAK,GAEvB;IAED,OAAO,CAAC,MAAM,KAAK,eAAe,GAEjC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAW3F;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAuBhE;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAI/C;;OAEG;IACH,MAAM,CAAC,QAAQ,IAAI,YAAY,EAAE;IAIjC;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIvE;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAOvE;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAInD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIrE;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAyBxC;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,YAAY,EAAE;IAI1C;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,YAAY,EAAE;IAIzC;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE;IAI3D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE;IAuBjD;;;;;;;;;OASG;IACH,MAAM,CAAC,YAAY,CACjB,KAAK,EAAE,MAAM,EACb,gBAAgB,CAAC,EAAE,MAAM,GACxB,YAAY,EAAE;
|
|
1
|
+
{"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/background/registry/ToolRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -183,15 +183,34 @@ export class ToolRegistry {
|
|
|
183
183
|
const queryLower = query.toLowerCase();
|
|
184
184
|
console.log(`🔍 [ToolRegistry] Scoped search: "${query}" (container: ${currentContainer || 'none'})`);
|
|
185
185
|
const allTools = Array.from(this.tools.values());
|
|
186
|
+
// DEBUG: Log all tools with their containerIds
|
|
187
|
+
console.log(`🔍 [ToolRegistry] Total tools in registry: ${allTools.length}`);
|
|
188
|
+
console.log(`🔍 [ToolRegistry] currentContainer = "${currentContainer}"`);
|
|
189
|
+
if (currentContainer) {
|
|
190
|
+
const toolsForContainer = allTools.filter(t => t.containerId === currentContainer);
|
|
191
|
+
console.log(`🔍 [ToolRegistry] Tools with containerId="${currentContainer}":`, toolsForContainer.map(t => ({ name: t.name, examples: t.examples?.slice(0, 2) })));
|
|
192
|
+
// DEBUG: Show ALL containerIds in registry
|
|
193
|
+
const allContainerIds = new Set(allTools.map(t => t.containerId).filter(Boolean));
|
|
194
|
+
console.log(`🔍 [ToolRegistry] All unique containerIds in registry:`, Array.from(allContainerIds));
|
|
195
|
+
}
|
|
186
196
|
// Search in tool metadata (including component names)
|
|
187
197
|
const matches = allTools.filter(tool => {
|
|
198
|
+
const examplePatterns = (tool.examples || [])
|
|
199
|
+
.filter(Boolean)
|
|
200
|
+
.map(ex => ex.toLowerCase().replace(/\{[^}]+\}/g, '').trim())
|
|
201
|
+
.filter(Boolean);
|
|
202
|
+
const startsWithPattern = examplePatterns.some(pattern => queryLower.startsWith(pattern));
|
|
203
|
+
if (startsWithPattern) {
|
|
204
|
+
console.log(` ✓ [ToolRegistry] Tool matched: ${tool.name} (container: ${tool.containerId || 'none'})`);
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
188
207
|
const searchFields = [
|
|
189
208
|
tool.name,
|
|
190
209
|
tool.description,
|
|
191
210
|
tool.componentName,
|
|
192
211
|
tool.methodName,
|
|
193
212
|
tool.category,
|
|
194
|
-
...
|
|
213
|
+
...examplePatterns,
|
|
195
214
|
...(tool.keywords || []),
|
|
196
215
|
]
|
|
197
216
|
.filter(Boolean)
|
|
@@ -205,8 +224,14 @@ export class ToolRegistry {
|
|
|
205
224
|
const local = matches.filter(t => t.containerId === currentContainer);
|
|
206
225
|
const global = matches.filter(t => !t.containerId || t.containerId !== currentContainer);
|
|
207
226
|
console.log(`📊 [ToolRegistry] Found: ${local.length} local, ${global.length} global`);
|
|
208
|
-
//
|
|
209
|
-
|
|
227
|
+
// LOCAL OVERRIDE: If any local tools match, ONLY return local tools
|
|
228
|
+
// This implements lexical scoping: local shadows global
|
|
229
|
+
if (local.length > 0) {
|
|
230
|
+
console.log(`🎯 [ToolRegistry] Local tools found - shadowing ${global.length} global tools`);
|
|
231
|
+
return local;
|
|
232
|
+
}
|
|
233
|
+
// Fallback to global if no local matches
|
|
234
|
+
return global;
|
|
210
235
|
}
|
|
211
236
|
/**
|
|
212
237
|
* Get tools by component name
|