@supernal/interface 1.0.6 → 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.
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ /**
3
+ * Generic AI Interface for Tool Command Processing
4
+ *
5
+ * Uses core abstractions:
6
+ * - ToolMatcher (pluggable matching strategies)
7
+ * - ParameterExtractor (declarative parameter extraction)
8
+ * - ToolExecutor (universal execution engine)
9
+ * - SuggestionEngine ("Did You Mean?" system)
10
+ *
11
+ * NO HARDCODED ROUTES - everything is inferred from NavigationGraph
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.AIInterface = void 0;
15
+ const ToolRegistry_1 = require("../background/registry/ToolRegistry");
16
+ const NavigationGraph_1 = require("../background/navigation/NavigationGraph");
17
+ const ToolMatcher_1 = require("./ToolMatcher");
18
+ const ParameterExtractor_1 = require("./ParameterExtractor");
19
+ const ToolExecutor_1 = require("./ToolExecutor");
20
+ const SuggestionEngine_1 = require("./SuggestionEngine");
21
+ /**
22
+ * Generic AI Interface - works for ANY app with ZERO configuration
23
+ * Container detection is INFERRED from NavigationGraph
24
+ *
25
+ * Supports pluggable matching strategies via ToolMatcher.
26
+ * For LLM-based matching, see @supernalintelligence/interface-enterprise
27
+ */
28
+ class AIInterface {
29
+ constructor() {
30
+ // Initialize core abstractions
31
+ this.matcher = new ToolMatcher_1.ToolMatcher();
32
+ this.paramExtractor = new ParameterExtractor_1.ParameterExtractor();
33
+ this.executor = new ToolExecutor_1.ToolExecutor();
34
+ this.suggestionEngine = new SuggestionEngine_1.SuggestionEngine();
35
+ }
36
+ /**
37
+ * Register a custom matcher strategy (for BYOK LLM integration)
38
+ * @param strategy Custom matching strategy
39
+ */
40
+ registerMatcherStrategy(strategy) {
41
+ this.matcher.registerStrategy(strategy);
42
+ }
43
+ /**
44
+ * Get current container - INFERRED from NavigationGraph
45
+ * NO HARDCODED ROUTE MAPPINGS
46
+ */
47
+ getCurrentContext() {
48
+ if (typeof window === 'undefined') {
49
+ return {
50
+ currentContainer: 'unknown',
51
+ currentPage: 'unknown'
52
+ };
53
+ }
54
+ // Use the context set by useContainer() hook, NOT route inference
55
+ // This ensures the context matches what the page component registered
56
+ const graph = NavigationGraph_1.NavigationGraph.getInstance();
57
+ const currentContainer = graph.getCurrentContext() || 'unknown';
58
+ return {
59
+ currentContainer,
60
+ currentPage: currentContainer
61
+ };
62
+ }
63
+ /**
64
+ * Find matching tools using ToolMatcher
65
+ */
66
+ async findToolsForCommand(query) {
67
+ console.log(`🔍 [AI] Finding tools for: "${query}"`);
68
+ // Get all available tools
69
+ const toolsMap = ToolRegistry_1.ToolRegistry.getAllTools();
70
+ const allTools = Array.from(toolsMap.values());
71
+ const context = this.getCurrentContext();
72
+ console.log(`📍 [AI] Current context:`, context);
73
+ // Filter tools by current container
74
+ // Priority: 1) Scoped to current container, 2) Global (no containerId), 3) Global navigation
75
+ const scopedTools = allTools.filter(tool => tool.containerId === context.currentContainer);
76
+ const globalTools = allTools.filter(tool => !tool.containerId);
77
+ const navigationTools = allTools.filter(tool => tool.containerId !== context.currentContainer && tool.category === 'navigation');
78
+ console.log(`📦 [AI] Scoped tools: ${scopedTools.length}, Global tools: ${globalTools.length}, Navigation tools: ${navigationTools.length}`);
79
+ // Combine: scoped first, then global, then navigation
80
+ const contextTools = [...scopedTools, ...globalTools, ...navigationTools];
81
+ console.log(`📦 [AI] Total filtered to ${contextTools.length} tools for context: ${context.currentContainer}`);
82
+ // Use ToolMatcher to find matches
83
+ const matches = await this.matcher.findMatches(query, contextTools, context, 5);
84
+ // Convert to AICommand format
85
+ const commands = matches.map(match => ({
86
+ query,
87
+ tool: match.tool,
88
+ confidence: match.confidence,
89
+ requiresApproval: match.tool.dangerLevel === 'dangerous' || match.tool.dangerLevel === 'destructive',
90
+ parameters: match.parameters || []
91
+ }));
92
+ console.log(`✅ [AI] Found ${commands.length} matching tools:`, commands.map(c => `${c.tool?.name} (${Math.round((c.confidence || 0) * 100)}%)`));
93
+ return commands;
94
+ }
95
+ /**
96
+ * Execute a command using ToolExecutor
97
+ */
98
+ async executeCommand(commands, useFirstMatch = true) {
99
+ if (commands.length === 0) {
100
+ // Use SuggestionEngine for helpful response
101
+ const toolsMap = ToolRegistry_1.ToolRegistry.getAllTools();
102
+ const allTools = Array.from(toolsMap.values());
103
+ const context = this.getCurrentContext();
104
+ // Get available commands for current context
105
+ const contextTools = allTools.filter(t => t.aiEnabled &&
106
+ (!t.containerId || t.containerId === context.currentContainer || t.category === 'navigation'));
107
+ const examples = contextTools.flatMap(t => t.examples || []).slice(0, 5);
108
+ return {
109
+ success: false,
110
+ message: `❓ No matching command found.\n\n💡 Try:\n${examples.map(ex => `• "${ex}"`).join('\n')}`,
111
+ timestamp: new Date().toISOString()
112
+ };
113
+ }
114
+ const command = commands[0]; // Use highest confidence match
115
+ if (!command.tool) {
116
+ return {
117
+ success: false,
118
+ message: `❌ No tool found for command`,
119
+ timestamp: new Date().toISOString()
120
+ };
121
+ }
122
+ console.log(`🎯 [AI] Executing: ${command.tool.name}`);
123
+ // Extract parameters using ParameterExtractor
124
+ const extraction = await this.paramExtractor.extract(command.query, command.tool);
125
+ const parameters = extraction.parameters.length > 0 ? extraction.parameters : command.parameters;
126
+ console.log(`📋 [AI] Parameters:`, parameters);
127
+ // Execute using ToolExecutor
128
+ try {
129
+ const result = await this.executor.execute(command.tool, parameters || []);
130
+ return {
131
+ success: result.success,
132
+ message: result.success ? `✅ ${result.message}` : `❌ ${result.message}`,
133
+ executedTool: command.tool.name,
134
+ timestamp: new Date().toISOString()
135
+ };
136
+ }
137
+ catch (error) {
138
+ const errorMsg = error instanceof Error ? error.message : String(error);
139
+ return {
140
+ success: false,
141
+ message: `❌ ${errorMsg}`,
142
+ timestamp: new Date().toISOString()
143
+ };
144
+ }
145
+ }
146
+ /**
147
+ * CONVENIENCE: Process a text query end-to-end
148
+ */
149
+ async processQuery(query) {
150
+ const commands = await this.findToolsForCommand(query);
151
+ return this.executeCommand(commands, true);
152
+ }
153
+ /**
154
+ * Get all available commands for help/autocomplete
155
+ */
156
+ getAvailableCommands() {
157
+ const toolsMap = ToolRegistry_1.ToolRegistry.getAllTools();
158
+ const allTools = Array.from(toolsMap.values());
159
+ const context = this.getCurrentContext();
160
+ // Filter by current context
161
+ const contextTools = allTools.filter(tool => !tool.containerId ||
162
+ tool.containerId === context.currentContainer ||
163
+ tool.category === 'navigation');
164
+ // Extract examples
165
+ const commands = [];
166
+ for (const tool of contextTools) {
167
+ const examples = tool.examples || [];
168
+ commands.push(...examples);
169
+ }
170
+ return commands;
171
+ }
172
+ /**
173
+ * Get suggestions for incomplete query (autocomplete)
174
+ */
175
+ async getSuggestions(partialQuery) {
176
+ const toolsMap = ToolRegistry_1.ToolRegistry.getAllTools();
177
+ const allTools = Array.from(toolsMap.values());
178
+ const suggestions = this.suggestionEngine.getSuggestions(partialQuery, allTools, 5);
179
+ return suggestions.map(s => s.text);
180
+ }
181
+ }
182
+ exports.AIInterface = AIInterface;
183
+ //# sourceMappingURL=AIInterface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIInterface.js","sourceRoot":"","sources":["../../../../src/ai/AIInterface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ /**
3
+ * ParameterExtractor - Extract parameters from natural language queries
4
+ *
5
+ * Supports multiple extraction strategies:
6
+ * - Pattern-based (using tool examples)
7
+ * - Entity extraction (dates, numbers, names)
8
+ * - LLM-based extraction (structured JSON)
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ParameterExtractor = void 0;
12
+ /**
13
+ * Main ParameterExtractor orchestrator
14
+ */
15
+ class ParameterExtractor {
16
+ constructor() {
17
+ this.strategies = [];
18
+ // Register default strategies
19
+ this.registerStrategy(new PatternExtractor());
20
+ this.registerStrategy(new EntityExtractor());
21
+ }
22
+ /**
23
+ * Register a new extraction strategy
24
+ */
25
+ registerStrategy(strategy) {
26
+ this.strategies.push(strategy);
27
+ this.strategies.sort((a, b) => b.priority - a.priority);
28
+ }
29
+ /**
30
+ * Extract parameters from query for a specific tool
31
+ */
32
+ async extract(query, tool) {
33
+ // Try each strategy in priority order
34
+ for (const strategy of this.strategies) {
35
+ try {
36
+ const result = await strategy.extract(query, tool);
37
+ if (result && result.confidence >= 60) {
38
+ console.log(`✅ [ParamExtract] Used strategy: ${strategy.name}`, result);
39
+ return result;
40
+ }
41
+ }
42
+ catch (error) {
43
+ console.warn(`[ParamExtract] Strategy ${strategy.name} failed:`, error);
44
+ }
45
+ }
46
+ // No successful extraction
47
+ return {
48
+ parameters: [],
49
+ confidence: 0,
50
+ reasoning: 'No extraction strategy succeeded'
51
+ };
52
+ }
53
+ }
54
+ exports.ParameterExtractor = ParameterExtractor;
55
+ /**
56
+ * Pattern-based extraction using tool examples
57
+ */
58
+ class PatternExtractor {
59
+ constructor() {
60
+ this.name = 'pattern';
61
+ this.priority = 80;
62
+ }
63
+ async extract(query, tool) {
64
+ const examples = tool.examples || [];
65
+ if (examples.length === 0) {
66
+ return null;
67
+ }
68
+ const lowerQuery = query.toLowerCase().trim();
69
+ // Try to match each example pattern
70
+ for (const example of examples) {
71
+ const pattern = example.toLowerCase();
72
+ // Check if query starts with the pattern
73
+ if (lowerQuery.startsWith(pattern)) {
74
+ // Extract trailing text as parameter
75
+ const trailing = query.substring(example.length).trim();
76
+ if (trailing) {
77
+ console.log(`🔍 [PatternExtract] Matched: "${example}" → param: "${trailing}"`);
78
+ return {
79
+ parameters: [trailing],
80
+ confidence: 90,
81
+ reasoning: `Matched pattern: "${example}"`
82
+ };
83
+ }
84
+ }
85
+ // Check if pattern contains a placeholder (e.g., "open blog {title}")
86
+ const placeholderMatch = pattern.match(/\{(\w+)\}/);
87
+ if (placeholderMatch) {
88
+ // Create a regex from the pattern
89
+ const regexPattern = pattern.replace(/\{(\w+)\}/g, '(.+?)');
90
+ const regex = new RegExp(`^${regexPattern}$`, 'i');
91
+ const match = lowerQuery.match(regex);
92
+ if (match && match[1]) {
93
+ console.log(`🔍 [PatternExtract] Placeholder match: "${example}" → param: "${match[1]}"`);
94
+ return {
95
+ parameters: [match[1].trim()],
96
+ confidence: 95,
97
+ reasoning: `Matched placeholder in: "${example}"`
98
+ };
99
+ }
100
+ }
101
+ }
102
+ return null;
103
+ }
104
+ }
105
+ /**
106
+ * Entity extraction for common types (numbers, dates, etc.)
107
+ */
108
+ class EntityExtractor {
109
+ constructor() {
110
+ this.name = 'entity';
111
+ this.priority = 60;
112
+ }
113
+ async extract(query, tool) {
114
+ const parameters = [];
115
+ // Extract numbers
116
+ const numberMatch = query.match(/\d+/);
117
+ if (numberMatch) {
118
+ parameters.push(parseInt(numberMatch[0], 10));
119
+ }
120
+ // Extract quoted strings
121
+ const quotedMatch = query.match(/"([^"]+)"/);
122
+ if (quotedMatch) {
123
+ parameters.push(quotedMatch[1]);
124
+ }
125
+ // Extract common entities (colors, themes, etc.)
126
+ const colorMatch = query.match(/\b(red|blue|green|dark|light|black|white)\b/i);
127
+ if (colorMatch) {
128
+ parameters.push(colorMatch[1].toLowerCase());
129
+ }
130
+ if (parameters.length > 0) {
131
+ return {
132
+ parameters,
133
+ confidence: 70,
134
+ reasoning: `Extracted ${parameters.length} entities`
135
+ };
136
+ }
137
+ return null;
138
+ }
139
+ }
140
+ //# 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,157 @@
1
+ "use strict";
2
+ /**
3
+ * SuggestionEngine - "Did You Mean?" system for invalid queries
4
+ *
5
+ * Provides helpful suggestions when user queries don't match any tools:
6
+ * - Typo detection (Levenshtein distance)
7
+ * - Similar command suggestions
8
+ * - Available command list
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.SuggestionEngine = void 0;
12
+ /**
13
+ * SuggestionEngine for generating "Did You Mean?" prompts
14
+ */
15
+ class SuggestionEngine {
16
+ /**
17
+ * Generate suggestions for an invalid/ambiguous query
18
+ * @param query User's query
19
+ * @param tools Available tools
20
+ * @param maxSuggestions Maximum number of suggestions to return
21
+ */
22
+ getSuggestions(query, tools, maxSuggestions = 5) {
23
+ const suggestions = [];
24
+ const lowerQuery = query.toLowerCase().trim();
25
+ // 1. Check for typos (Levenshtein distance ≤ 3)
26
+ for (const tool of tools) {
27
+ const examples = tool.examples || [];
28
+ const allPhrases = [tool.name, ...examples];
29
+ for (const phrase of allPhrases) {
30
+ const distance = this.levenshtein(lowerQuery, phrase.toLowerCase());
31
+ if (distance <= 3 && distance > 0) {
32
+ const confidence = Math.round((1 - distance / Math.max(lowerQuery.length, phrase.length)) * 100);
33
+ suggestions.push({
34
+ text: phrase,
35
+ confidence,
36
+ type: 'typo',
37
+ tool
38
+ });
39
+ }
40
+ }
41
+ }
42
+ // 2. Find similar commands (keyword overlap)
43
+ const queryWords = lowerQuery.split(/\s+/);
44
+ for (const tool of tools) {
45
+ const examples = tool.examples || [];
46
+ const toolWords = [
47
+ ...tool.name.toLowerCase().split(/\s+/),
48
+ ...(tool.description?.toLowerCase().split(/\s+/) || []),
49
+ ...examples.flatMap((e) => e.toLowerCase().split(/\s+/))
50
+ ];
51
+ const overlap = queryWords.filter(w => toolWords.includes(w)).length;
52
+ if (overlap > 0) {
53
+ const confidence = Math.round((overlap / queryWords.length) * 100);
54
+ // Use first example if available, otherwise tool name
55
+ const text = examples[0] || tool.name;
56
+ suggestions.push({
57
+ text,
58
+ confidence,
59
+ type: 'similar',
60
+ tool
61
+ });
62
+ }
63
+ }
64
+ // 3. Category-based suggestions
65
+ const categoryMatch = this.matchCategory(lowerQuery);
66
+ if (categoryMatch) {
67
+ const categoryTools = tools.filter(t => t.category === categoryMatch);
68
+ for (const tool of categoryTools.slice(0, 3)) {
69
+ const examples = tool.examples || [];
70
+ const text = examples[0] || tool.name;
71
+ suggestions.push({
72
+ text,
73
+ confidence: 60,
74
+ type: 'category',
75
+ tool
76
+ });
77
+ }
78
+ }
79
+ // Sort by confidence and deduplicate
80
+ const sorted = suggestions
81
+ .sort((a, b) => b.confidence - a.confidence)
82
+ .filter((s, i, arr) =>
83
+ // Remove duplicates (same text)
84
+ i === arr.findIndex(other => other.text === s.text))
85
+ .slice(0, maxSuggestions);
86
+ return sorted;
87
+ }
88
+ /**
89
+ * Format suggestions into a user-friendly message
90
+ */
91
+ formatSuggestions(suggestions) {
92
+ if (suggestions.length === 0) {
93
+ return 'No suggestions available. Try typing "help" to see all commands.';
94
+ }
95
+ const typos = suggestions.filter(s => s.type === 'typo');
96
+ const similar = suggestions.filter(s => s.type === 'similar' || s.type === 'category');
97
+ let message = '';
98
+ if (typos.length > 0) {
99
+ message += '❓ Did you mean?\n';
100
+ for (const typo of typos.slice(0, 3)) {
101
+ message += ` • "${typo.text}"\n`;
102
+ }
103
+ }
104
+ if (similar.length > 0) {
105
+ if (message)
106
+ message += '\n';
107
+ message += '💡 Similar commands:\n';
108
+ for (const sim of similar.slice(0, 3)) {
109
+ message += ` • "${sim.text}"\n`;
110
+ }
111
+ }
112
+ return message.trim();
113
+ }
114
+ /**
115
+ * Match query to a category
116
+ */
117
+ matchCategory(query) {
118
+ const categories = {
119
+ 'navigation': ['go', 'open', 'navigate', 'show', 'view', 'page'],
120
+ 'theme': ['theme', 'color', 'dark', 'light', 'appearance'],
121
+ 'data': ['load', 'fetch', 'get', 'data', 'retrieve'],
122
+ 'form': ['submit', 'save', 'form', 'input', 'enter'],
123
+ 'state': ['set', 'change', 'update', 'modify', 'status']
124
+ };
125
+ for (const [category, keywords] of Object.entries(categories)) {
126
+ if (keywords.some(kw => query.includes(kw))) {
127
+ return category;
128
+ }
129
+ }
130
+ return null;
131
+ }
132
+ /**
133
+ * Calculate Levenshtein distance between two strings
134
+ */
135
+ levenshtein(a, b) {
136
+ const matrix = [];
137
+ for (let i = 0; i <= b.length; i++) {
138
+ matrix[i] = [i];
139
+ }
140
+ for (let j = 0; j <= a.length; j++) {
141
+ matrix[0][j] = j;
142
+ }
143
+ for (let i = 1; i <= b.length; i++) {
144
+ for (let j = 1; j <= a.length; j++) {
145
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
146
+ matrix[i][j] = matrix[i - 1][j - 1];
147
+ }
148
+ else {
149
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j] + 1);
150
+ }
151
+ }
152
+ }
153
+ return matrix[b.length][a.length];
154
+ }
155
+ }
156
+ exports.SuggestionEngine = SuggestionEngine;
157
+ //# 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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"}
@@ -141,11 +141,30 @@ class FuzzyMatcher {
141
141
  // Check examples similarity
142
142
  const examples = tool.examples || [];
143
143
  for (const example of examples) {
144
- const exampleScore = this.similarity(lowerQuery, example.toLowerCase());
144
+ // Remove placeholders like {query}, {title} for better matching
145
+ const exampleNormalized = example.toLowerCase().replace(/\{[^}]+\}/g, '').trim();
146
+ // Check if query matches the pattern without the placeholder
147
+ const exampleScore = this.similarity(lowerQuery, exampleNormalized);
145
148
  if (exampleScore > bestScore) {
146
149
  bestScore = exampleScore;
147
150
  bestMatch = example;
148
151
  }
152
+ // Also check if query has extra words that could be the placeholder value
153
+ // E.g., "open your users" should match "open {query}"
154
+ const queryWords = lowerQuery.split(/\s+/);
155
+ const patternWords = exampleNormalized.split(/\s+/).filter((w) => w.length > 0);
156
+ // If query starts with the same words as the pattern, it's likely a match with parameter
157
+ if (patternWords.length > 0 && queryWords.length >= patternWords.length) {
158
+ const matchesPattern = patternWords.every((word, i) => queryWords[i] && queryWords[i].includes(word));
159
+ if (matchesPattern) {
160
+ // Boost score for parameter-based patterns
161
+ const paramScore = 0.85 + (patternWords.length / queryWords.length * 0.10);
162
+ if (paramScore > bestScore) {
163
+ bestScore = paramScore;
164
+ bestMatch = `${example} (pattern match with parameter)`;
165
+ }
166
+ }
167
+ }
149
168
  }
150
169
  // Check keyword overlap
151
170
  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,8 @@
1
1
  "use strict";
2
2
  /**
3
- * AI Command Interface - Core exports (Open Source Edition)
3
+ * AI Command Interface - Core exports
4
4
  *
5
- * Basic AI matching and execution. Advanced features (LLMProvider,
6
- * ParameterExtractor, SuggestionEngine) available in enterprise edition.
5
+ * Re-exports all open-source AI abstractions
7
6
  */
8
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
8
  if (k2 === undefined) k2 = k;
@@ -20,10 +19,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
19
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
20
  };
22
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
+ __exportStar(require("./AIInterface"), exports);
23
23
  __exportStar(require("./ToolMatcher"), exports);
24
+ __exportStar(require("./ParameterExtractor"), exports);
24
25
  __exportStar(require("./ToolExecutor"), exports);
25
- // Enterprise features - available at https://supernal.ai/enterprise
26
- // export * from './ParameterExtractor';
27
- // export * from './LLMProvider';
28
- // export * from './SuggestionEngine';
26
+ __exportStar(require("./SuggestionEngine"), exports);
29
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,iDAA+B;AAE/B,oEAAoE;AACpE,wCAAwC;AACxC,iCAAiC;AACjC,sCAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,gDAA8B;AAC9B,uDAAqC;AACrC,iDAA+B;AAC/B,qDAAmC"}