@courseecho/ai-core-sdk 1.0.3 → 1.0.4
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/auto-suggestion-generator.d.ts +119 -0
- package/dist/auto-suggestion-generator.d.ts.map +1 -0
- package/dist/auto-suggestion-generator.js +539 -0
- package/dist/auto-suggestion-generator.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/models.d.ts +46 -0
- package/dist/models.d.ts.map +1 -1
- package/dist/sdk.d.ts +68 -2
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +150 -1
- package/dist/sdk.js.map +1 -1
- package/dist/state-manager.d.ts +63 -1
- package/dist/state-manager.d.ts.map +1 -1
- package/dist/state-manager.js +121 -0
- package/dist/state-manager.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export * from './models';
|
|
6
6
|
export { AiCommunicationService, ApiError } from './communication-service';
|
|
7
|
-
export { ChatStateManager, ContextStateManager, ChartManager, } from './state-manager';
|
|
7
|
+
export { ChatStateManager, ContextStateManager, ChartManager, SuggestionManager, } from './state-manager';
|
|
8
|
+
export { PageContentScanner, AiSuggestionGenerator, type PageContent, } from './auto-suggestion-generator';
|
|
8
9
|
export { AiWidgetSDK } from './sdk';
|
|
9
10
|
export type { StateListener } from './state-manager';
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,WAAW,GACjB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
export * from './models';
|
|
7
7
|
// Services
|
|
8
8
|
export { AiCommunicationService, ApiError } from './communication-service';
|
|
9
|
-
export { ChatStateManager, ContextStateManager, ChartManager, } from './state-manager';
|
|
9
|
+
export { ChatStateManager, ContextStateManager, ChartManager, SuggestionManager, } from './state-manager';
|
|
10
|
+
// Auto-suggestion & page scanning
|
|
11
|
+
export { PageContentScanner, AiSuggestionGenerator, } from './auto-suggestion-generator';
|
|
10
12
|
// Main SDK
|
|
11
13
|
export { AiWidgetSDK } from './sdk';
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,SAAS;AACT,cAAc,UAAU,CAAC;AAEzB,WAAW;AACX,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,SAAS;AACT,cAAc,UAAU,CAAC;AAEzB,WAAW;AACX,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,kCAAkC;AAClC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GAEtB,MAAM,6BAA6B,CAAC;AAErC,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC"}
|
package/dist/models.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ export interface AiContextConfig {
|
|
|
57
57
|
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
58
58
|
enableCharts?: boolean;
|
|
59
59
|
enableExport?: boolean;
|
|
60
|
+
suggestionConfig?: SuggestionConfig;
|
|
60
61
|
}
|
|
61
62
|
export interface AiQueryRequest {
|
|
62
63
|
userQuery: string;
|
|
@@ -89,4 +90,49 @@ export interface ChatExportData {
|
|
|
89
90
|
charts: AiChart[];
|
|
90
91
|
exportedAt: Date;
|
|
91
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Suggestion Models for Auto-suggestion Feature
|
|
95
|
+
*/
|
|
96
|
+
export interface AiSuggestion {
|
|
97
|
+
id: string;
|
|
98
|
+
text: string;
|
|
99
|
+
category?: string;
|
|
100
|
+
icon?: string;
|
|
101
|
+
description?: string;
|
|
102
|
+
metadata?: Record<string, any>;
|
|
103
|
+
}
|
|
104
|
+
export interface SuggestionGroup {
|
|
105
|
+
category: string;
|
|
106
|
+
suggestions: AiSuggestion[];
|
|
107
|
+
icon?: string;
|
|
108
|
+
}
|
|
109
|
+
export interface PageScanConfig {
|
|
110
|
+
enabled?: boolean;
|
|
111
|
+
autoScan?: boolean;
|
|
112
|
+
scanInterval?: number;
|
|
113
|
+
maxTextLength?: number;
|
|
114
|
+
excludeSelectors?: string[];
|
|
115
|
+
cacheDuration?: number;
|
|
116
|
+
mergeWithUserSuggestions?: boolean;
|
|
117
|
+
}
|
|
118
|
+
export interface AiSuggestionGeneratorConfig {
|
|
119
|
+
enabled?: boolean;
|
|
120
|
+
tier?: 'free' | 'premium';
|
|
121
|
+
backendUrl?: string;
|
|
122
|
+
apiKey?: string;
|
|
123
|
+
timeoutMs?: number;
|
|
124
|
+
}
|
|
125
|
+
export interface SuggestionConfig {
|
|
126
|
+
enabled: boolean;
|
|
127
|
+
suggestions?: AiSuggestion[];
|
|
128
|
+
categories?: SuggestionGroup[];
|
|
129
|
+
maxVisibleSuggestions?: number;
|
|
130
|
+
showOnFocus?: boolean;
|
|
131
|
+
showOnClick?: boolean;
|
|
132
|
+
customSuggestions?: (query: string) => Promise<AiSuggestion[]>;
|
|
133
|
+
autoGenerate?: boolean;
|
|
134
|
+
autoGenerateFreeTier?: boolean;
|
|
135
|
+
pageScanning?: PageScanConfig;
|
|
136
|
+
aiConfig?: AiSuggestionGeneratorConfig;
|
|
137
|
+
}
|
|
92
138
|
//# sourceMappingURL=models.d.ts.map
|
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE;YACP,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;SAChD,CAAC;QACF,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAE9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,CAAC;IAGnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk.d.ts
CHANGED
|
@@ -3,15 +3,24 @@
|
|
|
3
3
|
* Main orchestrator that ties everything together
|
|
4
4
|
*/
|
|
5
5
|
import { AiCommunicationService } from './communication-service';
|
|
6
|
-
import { ChatStateManager, ContextStateManager, ChartManager } from './state-manager';
|
|
7
|
-
import { AiContextConfig, AiMessage } from './models';
|
|
6
|
+
import { ChatStateManager, ContextStateManager, ChartManager, SuggestionManager } from './state-manager';
|
|
7
|
+
import { AiContextConfig, AiMessage, AiSuggestion } from './models';
|
|
8
|
+
import { PageContentScanner, AiSuggestionGenerator } from './auto-suggestion-generator';
|
|
8
9
|
export declare class AiWidgetSDK {
|
|
9
10
|
private communicationService;
|
|
10
11
|
private chatStateManager;
|
|
11
12
|
private contextStateManager;
|
|
12
13
|
private chartManager;
|
|
14
|
+
private suggestionManager;
|
|
15
|
+
private pageContentScanner;
|
|
16
|
+
private suggestionGenerator;
|
|
13
17
|
private config;
|
|
18
|
+
private autoSuggestionInterval?;
|
|
14
19
|
constructor(config: AiContextConfig);
|
|
20
|
+
/**
|
|
21
|
+
* Initialize auto-suggestions based on page content
|
|
22
|
+
*/
|
|
23
|
+
initializeAutoSuggestions(): Promise<void>;
|
|
15
24
|
/**
|
|
16
25
|
* Validate configuration
|
|
17
26
|
*/
|
|
@@ -80,6 +89,46 @@ export declare class AiWidgetSDK {
|
|
|
80
89
|
* Subscribe to context changes
|
|
81
90
|
*/
|
|
82
91
|
onContextChange(listener: (context: any) => void): () => void;
|
|
92
|
+
/**
|
|
93
|
+
* Get all suggestions
|
|
94
|
+
*/
|
|
95
|
+
getSuggestions(): AiSuggestion[];
|
|
96
|
+
/**
|
|
97
|
+
* Filter suggestions based on query
|
|
98
|
+
*/
|
|
99
|
+
filterSuggestions(query: string): AiSuggestion[];
|
|
100
|
+
/**
|
|
101
|
+
* Get suggestions by category
|
|
102
|
+
*/
|
|
103
|
+
getSuggestionsByCategory(category: string): AiSuggestion[];
|
|
104
|
+
/**
|
|
105
|
+
* Add a suggestion
|
|
106
|
+
*/
|
|
107
|
+
addSuggestion(suggestion: AiSuggestion): void;
|
|
108
|
+
/**
|
|
109
|
+
* Add multiple suggestions
|
|
110
|
+
*/
|
|
111
|
+
addSuggestions(suggestions: AiSuggestion[]): void;
|
|
112
|
+
/**
|
|
113
|
+
* Remove a suggestion by id
|
|
114
|
+
*/
|
|
115
|
+
removeSuggestion(id: string): void;
|
|
116
|
+
/**
|
|
117
|
+
* Clear all suggestions
|
|
118
|
+
*/
|
|
119
|
+
clearSuggestions(): void;
|
|
120
|
+
/**
|
|
121
|
+
* Update suggestion
|
|
122
|
+
*/
|
|
123
|
+
updateSuggestion(id: string, updates: Partial<AiSuggestion>): void;
|
|
124
|
+
/**
|
|
125
|
+
* Subscribe to suggestion changes
|
|
126
|
+
*/
|
|
127
|
+
onSuggestionsChange(listener: (suggestions: AiSuggestion[]) => void): () => void;
|
|
128
|
+
/**
|
|
129
|
+
* Get suggestion manager for advanced use
|
|
130
|
+
*/
|
|
131
|
+
getSuggestionManager(): SuggestionManager;
|
|
83
132
|
/**
|
|
84
133
|
* Get internal services (for advanced use)
|
|
85
134
|
*/
|
|
@@ -88,7 +137,24 @@ export declare class AiWidgetSDK {
|
|
|
88
137
|
chatState: ChatStateManager;
|
|
89
138
|
contextState: ContextStateManager;
|
|
90
139
|
charts: ChartManager;
|
|
140
|
+
suggestions: SuggestionManager;
|
|
91
141
|
};
|
|
142
|
+
/**
|
|
143
|
+
* Trigger manual page scan for auto-suggestions
|
|
144
|
+
*/
|
|
145
|
+
triggerAutoSuggestions(): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* Get page content scanner
|
|
148
|
+
*/
|
|
149
|
+
getPageContentScanner(): PageContentScanner;
|
|
150
|
+
/**
|
|
151
|
+
* Get suggestion generator
|
|
152
|
+
*/
|
|
153
|
+
getSuggestionGenerator(): AiSuggestionGenerator;
|
|
154
|
+
/**
|
|
155
|
+
* Stop auto-suggestion scanning
|
|
156
|
+
*/
|
|
157
|
+
stopAutoSuggestions(): void;
|
|
92
158
|
/**
|
|
93
159
|
* Private helper to generate unique IDs
|
|
94
160
|
*/
|
package/dist/sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAY,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Main orchestrator that ties everything together
|
|
4
4
|
*/
|
|
5
5
|
import { AiCommunicationService, ApiError } from './communication-service';
|
|
6
|
-
import { ChatStateManager, ContextStateManager, ChartManager, } from './state-manager';
|
|
6
|
+
import { ChatStateManager, ContextStateManager, ChartManager, SuggestionManager, } from './state-manager';
|
|
7
|
+
import { PageContentScanner, AiSuggestionGenerator, } from './auto-suggestion-generator';
|
|
7
8
|
export class AiWidgetSDK {
|
|
8
9
|
constructor(config) {
|
|
9
10
|
this.validateConfig(config);
|
|
@@ -13,6 +14,57 @@ export class AiWidgetSDK {
|
|
|
13
14
|
this.chatStateManager = new ChatStateManager(config.maxChatHistory ?? 100);
|
|
14
15
|
this.contextStateManager = new ContextStateManager(config.context);
|
|
15
16
|
this.chartManager = new ChartManager();
|
|
17
|
+
this.suggestionManager = new SuggestionManager(config.suggestionConfig);
|
|
18
|
+
// Initialize auto-suggestion components
|
|
19
|
+
this.pageContentScanner = new PageContentScanner(config.suggestionConfig?.pageScanning);
|
|
20
|
+
this.suggestionGenerator = new AiSuggestionGenerator(config.suggestionConfig?.aiConfig, this.pageContentScanner);
|
|
21
|
+
// Initialize auto-suggestions if enabled
|
|
22
|
+
this.initializeAutoSuggestions();
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Initialize auto-suggestions based on page content
|
|
26
|
+
*/
|
|
27
|
+
async initializeAutoSuggestions() {
|
|
28
|
+
const suggestionConfig = this.config.suggestionConfig;
|
|
29
|
+
// Check if auto-generation is enabled
|
|
30
|
+
if (!suggestionConfig?.autoGenerate) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// Check tier: free tier gets suggestions automatically
|
|
34
|
+
if (suggestionConfig.autoGenerateFreeTier !== false) {
|
|
35
|
+
try {
|
|
36
|
+
const autoSuggestions = await this.suggestionGenerator.generateSuggestions();
|
|
37
|
+
// Merge with user-provided suggestions if configured
|
|
38
|
+
if (suggestionConfig.pageScanning?.mergeWithUserSuggestions !== false) {
|
|
39
|
+
const existingSuggestions = this.suggestionManager.getSuggestions();
|
|
40
|
+
this.suggestionManager.addSuggestions(autoSuggestions);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Replace with auto-generated suggestions
|
|
44
|
+
this.suggestionManager.clearSuggestions();
|
|
45
|
+
this.suggestionManager.addSuggestions(autoSuggestions);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.error('Error generating auto-suggestions:', error);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Set up periodic re-scanning if configured
|
|
53
|
+
if (suggestionConfig.pageScanning?.autoScan) {
|
|
54
|
+
const scanInterval = suggestionConfig.pageScanning.scanInterval || 60000; // 60 seconds default
|
|
55
|
+
this.autoSuggestionInterval = setInterval(async () => {
|
|
56
|
+
try {
|
|
57
|
+
const freshSuggestions = await this.suggestionGenerator.generateSuggestions();
|
|
58
|
+
if (suggestionConfig.pageScanning?.mergeWithUserSuggestions === false) {
|
|
59
|
+
this.suggestionManager.clearSuggestions();
|
|
60
|
+
}
|
|
61
|
+
this.suggestionManager.addSuggestions(freshSuggestions);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.error('Error refreshing auto-suggestions:', error);
|
|
65
|
+
}
|
|
66
|
+
}, scanInterval);
|
|
67
|
+
}
|
|
16
68
|
}
|
|
17
69
|
/**
|
|
18
70
|
* Validate configuration
|
|
@@ -200,6 +252,66 @@ export class AiWidgetSDK {
|
|
|
200
252
|
onContextChange(listener) {
|
|
201
253
|
return this.contextStateManager.onContextChange(listener);
|
|
202
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* Get all suggestions
|
|
257
|
+
*/
|
|
258
|
+
getSuggestions() {
|
|
259
|
+
return this.suggestionManager.getSuggestions();
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Filter suggestions based on query
|
|
263
|
+
*/
|
|
264
|
+
filterSuggestions(query) {
|
|
265
|
+
return this.suggestionManager.filterSuggestions(query);
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Get suggestions by category
|
|
269
|
+
*/
|
|
270
|
+
getSuggestionsByCategory(category) {
|
|
271
|
+
return this.suggestionManager.getSuggestionsByCategory(category);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Add a suggestion
|
|
275
|
+
*/
|
|
276
|
+
addSuggestion(suggestion) {
|
|
277
|
+
this.suggestionManager.addSuggestion(suggestion);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Add multiple suggestions
|
|
281
|
+
*/
|
|
282
|
+
addSuggestions(suggestions) {
|
|
283
|
+
this.suggestionManager.addSuggestions(suggestions);
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Remove a suggestion by id
|
|
287
|
+
*/
|
|
288
|
+
removeSuggestion(id) {
|
|
289
|
+
this.suggestionManager.removeSuggestion(id);
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Clear all suggestions
|
|
293
|
+
*/
|
|
294
|
+
clearSuggestions() {
|
|
295
|
+
this.suggestionManager.clearSuggestions();
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Update suggestion
|
|
299
|
+
*/
|
|
300
|
+
updateSuggestion(id, updates) {
|
|
301
|
+
this.suggestionManager.updateSuggestion(id, updates);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Subscribe to suggestion changes
|
|
305
|
+
*/
|
|
306
|
+
onSuggestionsChange(listener) {
|
|
307
|
+
return this.suggestionManager.onSuggestionsChange(listener);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Get suggestion manager for advanced use
|
|
311
|
+
*/
|
|
312
|
+
getSuggestionManager() {
|
|
313
|
+
return this.suggestionManager;
|
|
314
|
+
}
|
|
203
315
|
/**
|
|
204
316
|
* Get internal services (for advanced use)
|
|
205
317
|
*/
|
|
@@ -209,8 +321,45 @@ export class AiWidgetSDK {
|
|
|
209
321
|
chatState: this.chatStateManager,
|
|
210
322
|
contextState: this.contextStateManager,
|
|
211
323
|
charts: this.chartManager,
|
|
324
|
+
suggestions: this.suggestionManager,
|
|
212
325
|
};
|
|
213
326
|
}
|
|
327
|
+
/**
|
|
328
|
+
* Trigger manual page scan for auto-suggestions
|
|
329
|
+
*/
|
|
330
|
+
async triggerAutoSuggestions() {
|
|
331
|
+
try {
|
|
332
|
+
const suggestions = await this.suggestionGenerator.generateSuggestions();
|
|
333
|
+
if (this.config.suggestionConfig?.pageScanning?.mergeWithUserSuggestions === false) {
|
|
334
|
+
this.suggestionManager.clearSuggestions();
|
|
335
|
+
}
|
|
336
|
+
this.suggestionManager.addSuggestions(suggestions);
|
|
337
|
+
}
|
|
338
|
+
catch (error) {
|
|
339
|
+
console.error('Error triggering auto-suggestions:', error);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Get page content scanner
|
|
344
|
+
*/
|
|
345
|
+
getPageContentScanner() {
|
|
346
|
+
return this.pageContentScanner;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Get suggestion generator
|
|
350
|
+
*/
|
|
351
|
+
getSuggestionGenerator() {
|
|
352
|
+
return this.suggestionGenerator;
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Stop auto-suggestion scanning
|
|
356
|
+
*/
|
|
357
|
+
stopAutoSuggestions() {
|
|
358
|
+
if (this.autoSuggestionInterval) {
|
|
359
|
+
clearInterval(this.autoSuggestionInterval);
|
|
360
|
+
this.autoSuggestionInterval = undefined;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
214
363
|
/**
|
|
215
364
|
* Private helper to generate unique IDs
|
|
216
365
|
*/
|
package/dist/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/state-manager.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* AI Widget SDK - Core Chat State Manager
|
|
3
3
|
* Manage chat messages, loading state, errors - framework-agnostic
|
|
4
4
|
*/
|
|
5
|
-
import { AiMessage, AiChart, AiContext } from './models';
|
|
5
|
+
import { AiMessage, AiChart, AiContext, AiSuggestion, SuggestionConfig } from './models';
|
|
6
6
|
export type StateListener<T> = (state: T) => void;
|
|
7
7
|
/**
|
|
8
8
|
* Core Chat State - manages messages and loading states
|
|
@@ -136,4 +136,66 @@ export declare class ChartManager {
|
|
|
136
136
|
*/
|
|
137
137
|
exportToJSON(): string;
|
|
138
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Suggestion Manager - manage suggestions for chat queries
|
|
141
|
+
*/
|
|
142
|
+
export declare class SuggestionManager {
|
|
143
|
+
private suggestions;
|
|
144
|
+
private config;
|
|
145
|
+
private suggestionListeners;
|
|
146
|
+
constructor(config?: SuggestionConfig);
|
|
147
|
+
/**
|
|
148
|
+
* Get all suggestions
|
|
149
|
+
*/
|
|
150
|
+
getSuggestions(): AiSuggestion[];
|
|
151
|
+
/**
|
|
152
|
+
* Filter suggestions based on query
|
|
153
|
+
*/
|
|
154
|
+
filterSuggestions(query: string): AiSuggestion[];
|
|
155
|
+
/**
|
|
156
|
+
* Get suggestions by category
|
|
157
|
+
*/
|
|
158
|
+
getSuggestionsByCategory(category: string): AiSuggestion[];
|
|
159
|
+
/**
|
|
160
|
+
* Add a suggestion
|
|
161
|
+
*/
|
|
162
|
+
addSuggestion(suggestion: AiSuggestion): void;
|
|
163
|
+
/**
|
|
164
|
+
* Add multiple suggestions
|
|
165
|
+
*/
|
|
166
|
+
addSuggestions(suggestions: AiSuggestion[]): void;
|
|
167
|
+
/**
|
|
168
|
+
* Remove a suggestion by id
|
|
169
|
+
*/
|
|
170
|
+
removeSuggestion(id: string): void;
|
|
171
|
+
/**
|
|
172
|
+
* Clear all suggestions
|
|
173
|
+
*/
|
|
174
|
+
clearSuggestions(): void;
|
|
175
|
+
/**
|
|
176
|
+
* Update suggestion
|
|
177
|
+
*/
|
|
178
|
+
updateSuggestion(id: string, updates: Partial<AiSuggestion>): void;
|
|
179
|
+
/**
|
|
180
|
+
* Check if suggestions are enabled
|
|
181
|
+
*/
|
|
182
|
+
isEnabled(): boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Toggle suggestions on/off
|
|
185
|
+
*/
|
|
186
|
+
toggleEnabled(): void;
|
|
187
|
+
/**
|
|
188
|
+
* Subscribe to suggestion changes
|
|
189
|
+
*/
|
|
190
|
+
onSuggestionsChange(listener: StateListener<AiSuggestion[]>): () => void;
|
|
191
|
+
/**
|
|
192
|
+
* Get config
|
|
193
|
+
*/
|
|
194
|
+
getConfig(): SuggestionConfig;
|
|
195
|
+
/**
|
|
196
|
+
* Update config
|
|
197
|
+
*/
|
|
198
|
+
updateConfig(config: Partial<SuggestionConfig>): void;
|
|
199
|
+
private notifySuggestionListeners;
|
|
200
|
+
}
|
|
139
201
|
//# sourceMappingURL=state-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../src/state-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../src/state-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/state-manager.js
CHANGED
|
@@ -245,4 +245,125 @@ export class ChartManager {
|
|
|
245
245
|
return JSON.stringify(this.getAllCharts(), null, 2);
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
|
+
/**
|
|
249
|
+
* Suggestion Manager - manage suggestions for chat queries
|
|
250
|
+
*/
|
|
251
|
+
export class SuggestionManager {
|
|
252
|
+
constructor(config) {
|
|
253
|
+
this.suggestions = [];
|
|
254
|
+
this.suggestionListeners = [];
|
|
255
|
+
this.config = config || {
|
|
256
|
+
enabled: true,
|
|
257
|
+
maxVisibleSuggestions: 5,
|
|
258
|
+
showOnFocus: true,
|
|
259
|
+
showOnClick: true,
|
|
260
|
+
};
|
|
261
|
+
// Initialize with default suggestions if provided
|
|
262
|
+
if (this.config.suggestions) {
|
|
263
|
+
this.suggestions = [...this.config.suggestions];
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Get all suggestions
|
|
268
|
+
*/
|
|
269
|
+
getSuggestions() {
|
|
270
|
+
return [...this.suggestions];
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Filter suggestions based on query
|
|
274
|
+
*/
|
|
275
|
+
filterSuggestions(query) {
|
|
276
|
+
if (!query.trim()) {
|
|
277
|
+
return this.suggestions.slice(0, this.config.maxVisibleSuggestions);
|
|
278
|
+
}
|
|
279
|
+
const lowerQuery = query.toLowerCase();
|
|
280
|
+
return this.suggestions
|
|
281
|
+
.filter((s) => s.text.toLowerCase().includes(lowerQuery) ||
|
|
282
|
+
s.category?.toLowerCase().includes(lowerQuery) ||
|
|
283
|
+
s.description?.toLowerCase().includes(lowerQuery))
|
|
284
|
+
.slice(0, this.config.maxVisibleSuggestions);
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Get suggestions by category
|
|
288
|
+
*/
|
|
289
|
+
getSuggestionsByCategory(category) {
|
|
290
|
+
return this.suggestions.filter((s) => s.category === category);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Add a suggestion
|
|
294
|
+
*/
|
|
295
|
+
addSuggestion(suggestion) {
|
|
296
|
+
this.suggestions.push(suggestion);
|
|
297
|
+
this.notifySuggestionListeners();
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Add multiple suggestions
|
|
301
|
+
*/
|
|
302
|
+
addSuggestions(suggestions) {
|
|
303
|
+
this.suggestions.push(...suggestions);
|
|
304
|
+
this.notifySuggestionListeners();
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Remove a suggestion by id
|
|
308
|
+
*/
|
|
309
|
+
removeSuggestion(id) {
|
|
310
|
+
this.suggestions = this.suggestions.filter((s) => s.id !== id);
|
|
311
|
+
this.notifySuggestionListeners();
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Clear all suggestions
|
|
315
|
+
*/
|
|
316
|
+
clearSuggestions() {
|
|
317
|
+
this.suggestions = [];
|
|
318
|
+
this.notifySuggestionListeners();
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Update suggestion
|
|
322
|
+
*/
|
|
323
|
+
updateSuggestion(id, updates) {
|
|
324
|
+
const suggestion = this.suggestions.find((s) => s.id === id);
|
|
325
|
+
if (suggestion) {
|
|
326
|
+
Object.assign(suggestion, updates);
|
|
327
|
+
this.notifySuggestionListeners();
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Check if suggestions are enabled
|
|
332
|
+
*/
|
|
333
|
+
isEnabled() {
|
|
334
|
+
return this.config.enabled;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Toggle suggestions on/off
|
|
338
|
+
*/
|
|
339
|
+
toggleEnabled() {
|
|
340
|
+
if (this.config) {
|
|
341
|
+
this.config.enabled = !this.config.enabled;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Subscribe to suggestion changes
|
|
346
|
+
*/
|
|
347
|
+
onSuggestionsChange(listener) {
|
|
348
|
+
this.suggestionListeners.push(listener);
|
|
349
|
+
return () => {
|
|
350
|
+
this.suggestionListeners = this.suggestionListeners.filter((l) => l !== listener);
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Get config
|
|
355
|
+
*/
|
|
356
|
+
getConfig() {
|
|
357
|
+
return { ...this.config };
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Update config
|
|
361
|
+
*/
|
|
362
|
+
updateConfig(config) {
|
|
363
|
+
this.config = { ...this.config, ...config };
|
|
364
|
+
}
|
|
365
|
+
notifySuggestionListeners() {
|
|
366
|
+
this.suggestionListeners.forEach((listener) => listener(this.getSuggestions()));
|
|
367
|
+
}
|
|
368
|
+
}
|
|
248
369
|
//# sourceMappingURL=state-manager.js.map
|