@volkansuner/aichat-react-native 0.1.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/LICENSE +22 -0
- package/README.md +528 -0
- package/dist/AIChatSDK.d.ts +75 -0
- package/dist/AIChatSDK.d.ts.map +1 -0
- package/dist/AIChatSDK.js +357 -0
- package/dist/AIChatSDK.js.map +1 -0
- package/dist/components/AIChatProvider.d.ts +25 -0
- package/dist/components/AIChatProvider.d.ts.map +1 -0
- package/dist/components/AIChatProvider.js +93 -0
- package/dist/components/AIChatProvider.js.map +1 -0
- package/dist/components/AIChatWidget.d.ts +62 -0
- package/dist/components/AIChatWidget.d.ts.map +1 -0
- package/dist/components/AIChatWidget.handlers.d.ts +15 -0
- package/dist/components/AIChatWidget.handlers.d.ts.map +1 -0
- package/dist/components/AIChatWidget.handlers.js +180 -0
- package/dist/components/AIChatWidget.handlers.js.map +1 -0
- package/dist/components/AIChatWidget.js +403 -0
- package/dist/components/AIChatWidget.js.map +1 -0
- package/dist/components/AIChatWidget.styles.d.ts +17 -0
- package/dist/components/AIChatWidget.styles.d.ts.map +1 -0
- package/dist/components/AIChatWidget.styles.js +68 -0
- package/dist/components/AIChatWidget.styles.js.map +1 -0
- package/dist/components/AIChatWidget.types.d.ts +250 -0
- package/dist/components/AIChatWidget.types.d.ts.map +1 -0
- package/dist/components/AIChatWidget.types.js +3 -0
- package/dist/components/AIChatWidget.types.js.map +1 -0
- package/dist/components/AIChatWidget.utils.d.ts +12 -0
- package/dist/components/AIChatWidget.utils.d.ts.map +1 -0
- package/dist/components/AIChatWidget.utils.js +109 -0
- package/dist/components/AIChatWidget.utils.js.map +1 -0
- package/dist/components/ConfigError.d.ts +33 -0
- package/dist/components/ConfigError.d.ts.map +1 -0
- package/dist/components/ConfigError.js +195 -0
- package/dist/components/ConfigError.js.map +1 -0
- package/dist/components/FloatingButton.d.ts +12 -0
- package/dist/components/FloatingButton.d.ts.map +1 -0
- package/dist/components/FloatingButton.js +163 -0
- package/dist/components/FloatingButton.js.map +1 -0
- package/dist/components/InputArea.d.ts +58 -0
- package/dist/components/InputArea.d.ts.map +1 -0
- package/dist/components/InputArea.js +135 -0
- package/dist/components/InputArea.js.map +1 -0
- package/dist/components/MarkdownText.d.ts +16 -0
- package/dist/components/MarkdownText.d.ts.map +1 -0
- package/dist/components/MarkdownText.js +263 -0
- package/dist/components/MarkdownText.js.map +1 -0
- package/dist/components/MessageBubble.d.ts +101 -0
- package/dist/components/MessageBubble.d.ts.map +1 -0
- package/dist/components/MessageBubble.js +377 -0
- package/dist/components/MessageBubble.js.map +1 -0
- package/dist/components/NavigationSuggestion.d.ts +13 -0
- package/dist/components/NavigationSuggestion.d.ts.map +1 -0
- package/dist/components/NavigationSuggestion.js +117 -0
- package/dist/components/NavigationSuggestion.js.map +1 -0
- package/dist/components/QuickReplies.d.ts +15 -0
- package/dist/components/QuickReplies.d.ts.map +1 -0
- package/dist/components/QuickReplies.js +49 -0
- package/dist/components/QuickReplies.js.map +1 -0
- package/dist/components/TemplateRenderer.d.ts +17 -0
- package/dist/components/TemplateRenderer.d.ts.map +1 -0
- package/dist/components/TemplateRenderer.js +397 -0
- package/dist/components/TemplateRenderer.js.map +1 -0
- package/dist/components/TypingIndicator.d.ts +29 -0
- package/dist/components/TypingIndicator.d.ts.map +1 -0
- package/dist/components/TypingIndicator.js +110 -0
- package/dist/components/TypingIndicator.js.map +1 -0
- package/dist/components/defaults/DefaultCard.d.ts +15 -0
- package/dist/components/defaults/DefaultCard.d.ts.map +1 -0
- package/dist/components/defaults/DefaultCard.js +157 -0
- package/dist/components/defaults/DefaultCard.js.map +1 -0
- package/dist/components/defaults/DefaultDetail.d.ts +15 -0
- package/dist/components/defaults/DefaultDetail.d.ts.map +1 -0
- package/dist/components/defaults/DefaultDetail.js +139 -0
- package/dist/components/defaults/DefaultDetail.js.map +1 -0
- package/dist/components/defaults/DefaultList.d.ts +13 -0
- package/dist/components/defaults/DefaultList.d.ts.map +1 -0
- package/dist/components/defaults/DefaultList.js +99 -0
- package/dist/components/defaults/DefaultList.js.map +1 -0
- package/dist/components/defaults/DefaultTable.d.ts +15 -0
- package/dist/components/defaults/DefaultTable.d.ts.map +1 -0
- package/dist/components/defaults/DefaultTable.js +205 -0
- package/dist/components/defaults/DefaultTable.js.map +1 -0
- package/dist/components/defaults/index.d.ts +15 -0
- package/dist/components/defaults/index.d.ts.map +1 -0
- package/dist/components/defaults/index.js +26 -0
- package/dist/components/defaults/index.js.map +1 -0
- package/dist/components/index.d.ts +17 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +33 -0
- package/dist/components/index.js.map +1 -0
- package/dist/constants.d.ts +41 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +52 -0
- package/dist/constants.js.map +1 -0
- package/dist/hooks/useAIChatConfig.d.ts +61 -0
- package/dist/hooks/useAIChatConfig.d.ts.map +1 -0
- package/dist/hooks/useAIChatConfig.js +95 -0
- package/dist/hooks/useAIChatConfig.js.map +1 -0
- package/dist/hooks/useChatMessages.d.ts +27 -0
- package/dist/hooks/useChatMessages.d.ts.map +1 -0
- package/dist/hooks/useChatMessages.js +255 -0
- package/dist/hooks/useChatMessages.js.map +1 -0
- package/dist/hooks/useContextManager.d.ts +13 -0
- package/dist/hooks/useContextManager.d.ts.map +1 -0
- package/dist/hooks/useContextManager.js +42 -0
- package/dist/hooks/useContextManager.js.map +1 -0
- package/dist/hooks/useSDK.d.ts +18 -0
- package/dist/hooks/useSDK.d.ts.map +1 -0
- package/dist/hooks/useSDK.js +64 -0
- package/dist/hooks/useSDK.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -0
- package/dist/index.js.map +1 -0
- package/dist/registry/TemplateRegistry.d.ts +48 -0
- package/dist/registry/TemplateRegistry.d.ts.map +1 -0
- package/dist/registry/TemplateRegistry.js +77 -0
- package/dist/registry/TemplateRegistry.js.map +1 -0
- package/dist/registry/index.d.ts +5 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +9 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/services/BackendService.d.ts +47 -0
- package/dist/services/BackendService.d.ts.map +1 -0
- package/dist/services/BackendService.js +362 -0
- package/dist/services/BackendService.js.map +1 -0
- package/dist/services/ConversationManager.d.ts +40 -0
- package/dist/services/ConversationManager.d.ts.map +1 -0
- package/dist/services/ConversationManager.js +95 -0
- package/dist/services/ConversationManager.js.map +1 -0
- package/dist/services/LocalAIClassifier.d.ts +32 -0
- package/dist/services/LocalAIClassifier.d.ts.map +1 -0
- package/dist/services/LocalAIClassifier.js +149 -0
- package/dist/services/LocalAIClassifier.js.map +1 -0
- package/dist/services/NavigationHandler.d.ts +30 -0
- package/dist/services/NavigationHandler.d.ts.map +1 -0
- package/dist/services/NavigationHandler.js +74 -0
- package/dist/services/NavigationHandler.js.map +1 -0
- package/dist/themes/dark.d.ts +6 -0
- package/dist/themes/dark.d.ts.map +1 -0
- package/dist/themes/dark.js +130 -0
- package/dist/themes/dark.js.map +1 -0
- package/dist/themes/index.d.ts +13 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +34 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/light.d.ts +6 -0
- package/dist/themes/light.d.ts.map +1 -0
- package/dist/themes/light.js +130 -0
- package/dist/themes/light.js.map +1 -0
- package/dist/themes/types.d.ts +143 -0
- package/dist/themes/types.d.ts.map +1 -0
- package/dist/themes/types.js +6 -0
- package/dist/themes/types.js.map +1 -0
- package/dist/types/api.d.ts +118 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +6 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/chat.d.ts +154 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.js +6 -0
- package/dist/types/chat.js.map +1 -0
- package/dist/types/components.d.ts +69 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/types/components.js +17 -0
- package/dist/types/components.js.map +1 -0
- package/dist/types/config.d.ts +122 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +18 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/document.d.ts +108 -0
- package/dist/types/document.d.ts.map +1 -0
- package/dist/types/document.js +7 -0
- package/dist/types/document.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +31 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/local-ai.d.ts +48 -0
- package/dist/types/local-ai.d.ts.map +1 -0
- package/dist/types/local-ai.js +17 -0
- package/dist/types/local-ai.js.map +1 -0
- package/dist/types/navigation.d.ts +89 -0
- package/dist/types/navigation.d.ts.map +1 -0
- package/dist/types/navigation.js +6 -0
- package/dist/types/navigation.js.map +1 -0
- package/dist/types/sdk.d.ts +47 -0
- package/dist/types/sdk.d.ts.map +1 -0
- package/dist/types/sdk.js +6 -0
- package/dist/types/sdk.js.map +1 -0
- package/dist/types/template.d.ts +220 -0
- package/dist/types/template.d.ts.map +1 -0
- package/dist/types/template.js +8 -0
- package/dist/types/template.js.map +1 -0
- package/dist/utils/configLoader.d.ts +69 -0
- package/dist/utils/configLoader.d.ts.map +1 -0
- package/dist/utils/configLoader.js +278 -0
- package/dist/utils/configLoader.js.map +1 -0
- package/dist/utils/deepMerge.d.ts +47 -0
- package/dist/utils/deepMerge.d.ts.map +1 -0
- package/dist/utils/deepMerge.js +71 -0
- package/dist/utils/deepMerge.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getSDK = exports.AIChatSDK = void 0;
|
|
7
|
+
const async_storage_1 = __importDefault(require("@react-native-async-storage/async-storage"));
|
|
8
|
+
const LocalAIClassifier_1 = require("./services/LocalAIClassifier");
|
|
9
|
+
const BackendService_1 = require("./services/BackendService");
|
|
10
|
+
const ConversationManager_1 = require("./services/ConversationManager");
|
|
11
|
+
const NavigationHandler_1 = require("./services/NavigationHandler");
|
|
12
|
+
/**
|
|
13
|
+
* AIChatSDK - Main SDK class
|
|
14
|
+
* Provides AI-powered conversational interface for React Native apps
|
|
15
|
+
*/
|
|
16
|
+
class AIChatSDK {
|
|
17
|
+
static instance = null;
|
|
18
|
+
config = null;
|
|
19
|
+
status = 'uninitialized';
|
|
20
|
+
localAI = null;
|
|
21
|
+
backendService = null;
|
|
22
|
+
conversationManager = null;
|
|
23
|
+
navigationHandler = null;
|
|
24
|
+
constructor() { }
|
|
25
|
+
/**
|
|
26
|
+
* Get singleton instance
|
|
27
|
+
*/
|
|
28
|
+
static getInstance() {
|
|
29
|
+
if (!AIChatSDK.instance) {
|
|
30
|
+
AIChatSDK.instance = new AIChatSDK();
|
|
31
|
+
}
|
|
32
|
+
return AIChatSDK.instance;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Initialize SDK
|
|
36
|
+
*/
|
|
37
|
+
async initialize(config) {
|
|
38
|
+
if (this.status === 'ready') {
|
|
39
|
+
console.warn('AIChatSDK is already initialized');
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.status = 'initializing';
|
|
43
|
+
this.config = config;
|
|
44
|
+
try {
|
|
45
|
+
// Resolve API key (support both single key and multiple keys)
|
|
46
|
+
const apiKey = this.resolveApiKey(config);
|
|
47
|
+
if (!apiKey) {
|
|
48
|
+
throw new Error('No API key found. Please provide either config.apiKey or config.keys');
|
|
49
|
+
}
|
|
50
|
+
// Save config to storage
|
|
51
|
+
await async_storage_1.default.setItem('@aichat/config', JSON.stringify(config));
|
|
52
|
+
// Initialize services
|
|
53
|
+
this.backendService = new BackendService_1.BackendService(apiKey, config.apiUrl);
|
|
54
|
+
this.conversationManager = new ConversationManager_1.ConversationManager();
|
|
55
|
+
this.navigationHandler = new NavigationHandler_1.NavigationHandler(config.navigationRef);
|
|
56
|
+
// Initialize local AI if enabled
|
|
57
|
+
if (config.enableLocalAI !== false) {
|
|
58
|
+
this.localAI = new LocalAIClassifier_1.LocalAIClassifier(config.localAI);
|
|
59
|
+
await this.localAI.initialize();
|
|
60
|
+
}
|
|
61
|
+
this.status = 'ready';
|
|
62
|
+
if (config.onStatusChange) {
|
|
63
|
+
config.onStatusChange('ready');
|
|
64
|
+
}
|
|
65
|
+
console.log('✅ AIChatSDK initialized successfully');
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
this.status = 'error';
|
|
69
|
+
if (config.onStatusChange) {
|
|
70
|
+
config.onStatusChange('error');
|
|
71
|
+
}
|
|
72
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
73
|
+
throw new Error(`Failed to initialize AIChatSDK: ${errorMessage}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Send a chat message
|
|
78
|
+
*/
|
|
79
|
+
async sendMessage(message, context, contextDescription) {
|
|
80
|
+
if (this.status !== 'ready') {
|
|
81
|
+
throw new Error('SDK not initialized. Call initialize() first.');
|
|
82
|
+
}
|
|
83
|
+
if (!message.trim()) {
|
|
84
|
+
throw new Error('Message cannot be empty');
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
// Add user message to conversation
|
|
88
|
+
const userMessage = {
|
|
89
|
+
id: this.generateId(),
|
|
90
|
+
role: 'user',
|
|
91
|
+
text: message,
|
|
92
|
+
content: message,
|
|
93
|
+
timestamp: new Date(),
|
|
94
|
+
};
|
|
95
|
+
this.conversationManager?.addMessage(userMessage);
|
|
96
|
+
// Try local AI first if enabled
|
|
97
|
+
if (this.localAI && this.config?.enableLocalAI !== false) {
|
|
98
|
+
const localResult = await this.localAI.classify(message);
|
|
99
|
+
// If confidence is high enough, handle locally
|
|
100
|
+
if (localResult.confidence >= (this.config?.localAI?.confidenceThreshold || 0.85)) {
|
|
101
|
+
const response = await this.handleLocalResponse(message, localResult);
|
|
102
|
+
// Add to conversation
|
|
103
|
+
this.conversationManager?.addMessage({
|
|
104
|
+
id: this.generateId(),
|
|
105
|
+
role: 'assistant',
|
|
106
|
+
text: response.text || response.message || '',
|
|
107
|
+
content: response.text || response.message || '',
|
|
108
|
+
timestamp: response.timestamp,
|
|
109
|
+
metadata: {
|
|
110
|
+
handledBy: 'local',
|
|
111
|
+
confidence: localResult.confidence,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
return response;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Fall back to backend
|
|
118
|
+
const sessionId = await this.conversationManager?.getSessionId() || this.generateId();
|
|
119
|
+
const response = await this.backendService.sendMessage(message, sessionId, context, contextDescription);
|
|
120
|
+
// Add to conversation
|
|
121
|
+
this.conversationManager?.addMessage({
|
|
122
|
+
id: response.id,
|
|
123
|
+
role: 'assistant',
|
|
124
|
+
text: response.message || response.text || '',
|
|
125
|
+
content: response.message || response.text || '',
|
|
126
|
+
timestamp: response.timestamp,
|
|
127
|
+
metadata: {
|
|
128
|
+
handledBy: 'backend',
|
|
129
|
+
confidence: response.confidence,
|
|
130
|
+
tokensUsed: response.tokensUsed,
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
// Handle navigation if suggested
|
|
134
|
+
if (response.navigationSuggestion && this.config?.onNavigationSuggest) {
|
|
135
|
+
this.config.onNavigationSuggest(response.navigationSuggestion);
|
|
136
|
+
}
|
|
137
|
+
return response;
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
console.error('Error sending message:', error);
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* 🆕 Send message with streaming response
|
|
146
|
+
*/
|
|
147
|
+
async sendMessageStream(message, onChunk, onComplete, onError, context, contextDescription, onToolSuggestions // 🆕 Tool suggestions callback
|
|
148
|
+
) {
|
|
149
|
+
if (this.status !== 'ready') {
|
|
150
|
+
throw new Error('SDK not initialized. Call initialize() first.');
|
|
151
|
+
}
|
|
152
|
+
if (!message.trim()) {
|
|
153
|
+
throw new Error('Message cannot be empty');
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
// Add user message to conversation
|
|
157
|
+
const userMessage = {
|
|
158
|
+
id: this.generateId(),
|
|
159
|
+
role: 'user',
|
|
160
|
+
text: message,
|
|
161
|
+
content: message,
|
|
162
|
+
timestamp: new Date(),
|
|
163
|
+
};
|
|
164
|
+
this.conversationManager?.addMessage(userMessage);
|
|
165
|
+
// Skip local AI for streaming, always use backend
|
|
166
|
+
const sessionId = await this.conversationManager?.getSessionId() || this.generateId();
|
|
167
|
+
await this.backendService.sendMessageStream(message, sessionId, onChunk, (response) => {
|
|
168
|
+
// Add to conversation
|
|
169
|
+
this.conversationManager?.addMessage({
|
|
170
|
+
id: response.id,
|
|
171
|
+
role: 'assistant',
|
|
172
|
+
text: response.message || response.text || '',
|
|
173
|
+
content: response.message || response.text || '',
|
|
174
|
+
timestamp: response.timestamp,
|
|
175
|
+
metadata: {
|
|
176
|
+
handledBy: 'backend',
|
|
177
|
+
confidence: response.confidence,
|
|
178
|
+
tokensUsed: response.tokensUsed,
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
// Handle navigation if suggested
|
|
182
|
+
if (response.navigationSuggestion && this.config?.onNavigationSuggest) {
|
|
183
|
+
this.config.onNavigationSuggest(response.navigationSuggestion);
|
|
184
|
+
}
|
|
185
|
+
onComplete?.(response);
|
|
186
|
+
}, (error) => {
|
|
187
|
+
console.error('Stream error:', error);
|
|
188
|
+
onError?.(error);
|
|
189
|
+
}, context, contextDescription, onToolSuggestions // 🆕 Pass tool suggestions callback
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
console.error('Error sending streaming message:', error);
|
|
194
|
+
if (onError) {
|
|
195
|
+
onError(error instanceof Error ? error : new Error('Unknown error'));
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
throw error;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Handle local AI response
|
|
204
|
+
*/
|
|
205
|
+
async handleLocalResponse(_message, classification) {
|
|
206
|
+
// Simple local responses based on intent
|
|
207
|
+
let responseText = '';
|
|
208
|
+
let navigationSuggestion;
|
|
209
|
+
switch (classification.intent) {
|
|
210
|
+
case 'navigate':
|
|
211
|
+
responseText = 'I can help you navigate there.';
|
|
212
|
+
navigationSuggestion = classification.entities?.screen
|
|
213
|
+
? {
|
|
214
|
+
screenName: classification.entities.screen,
|
|
215
|
+
route: classification.entities.screen,
|
|
216
|
+
confidence: classification.confidence,
|
|
217
|
+
confirmed: true,
|
|
218
|
+
message: `Navigate to ${classification.entities.screen}`,
|
|
219
|
+
}
|
|
220
|
+
: undefined;
|
|
221
|
+
break;
|
|
222
|
+
case 'search':
|
|
223
|
+
responseText = 'Let me help you search for that.';
|
|
224
|
+
break;
|
|
225
|
+
case 'general':
|
|
226
|
+
responseText = 'How can I assist you?';
|
|
227
|
+
break;
|
|
228
|
+
default:
|
|
229
|
+
responseText = 'I understand. How can I help?';
|
|
230
|
+
}
|
|
231
|
+
return {
|
|
232
|
+
id: this.generateId(),
|
|
233
|
+
text: responseText,
|
|
234
|
+
message: responseText,
|
|
235
|
+
timestamp: new Date(),
|
|
236
|
+
handledBy: 'local',
|
|
237
|
+
handled: 'local',
|
|
238
|
+
confidence: classification.confidence,
|
|
239
|
+
navigationSuggestion,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Get conversation history
|
|
244
|
+
*/
|
|
245
|
+
async getConversationHistory() {
|
|
246
|
+
if (!this.conversationManager) {
|
|
247
|
+
throw new Error('SDK not initialized');
|
|
248
|
+
}
|
|
249
|
+
return this.conversationManager.getHistory();
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Clear conversation history
|
|
253
|
+
*/
|
|
254
|
+
async clearConversation() {
|
|
255
|
+
if (!this.conversationManager) {
|
|
256
|
+
throw new Error('SDK not initialized');
|
|
257
|
+
}
|
|
258
|
+
await this.conversationManager.clear();
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* 🆕 Add tool response to conversation
|
|
262
|
+
* Use this after executing a tool to display the results
|
|
263
|
+
*/
|
|
264
|
+
addToolResponse(toolKey, data, tool) {
|
|
265
|
+
if (!this.conversationManager) {
|
|
266
|
+
throw new Error('SDK not initialized');
|
|
267
|
+
}
|
|
268
|
+
const message = {
|
|
269
|
+
id: this.generateId(),
|
|
270
|
+
role: 'assistant',
|
|
271
|
+
text: '', // Will be rendered by component
|
|
272
|
+
content: '',
|
|
273
|
+
timestamp: new Date(),
|
|
274
|
+
toolResponse: {
|
|
275
|
+
toolKey,
|
|
276
|
+
data,
|
|
277
|
+
tool,
|
|
278
|
+
},
|
|
279
|
+
};
|
|
280
|
+
this.conversationManager.addMessage(message);
|
|
281
|
+
return message;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Get SDK status
|
|
285
|
+
*/
|
|
286
|
+
getStatus() {
|
|
287
|
+
return this.status;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Get SDK configuration
|
|
291
|
+
*/
|
|
292
|
+
getConfig() {
|
|
293
|
+
return this.config;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Navigate to screen
|
|
297
|
+
*/
|
|
298
|
+
navigate(screenName, params) {
|
|
299
|
+
if (!this.navigationHandler) {
|
|
300
|
+
throw new Error('Navigation handler not initialized');
|
|
301
|
+
}
|
|
302
|
+
this.navigationHandler.navigate(screenName, params);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Generate unique ID
|
|
306
|
+
*/
|
|
307
|
+
generateId() {
|
|
308
|
+
return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Resolve API key from config
|
|
312
|
+
* Priority: config.apiKey > config.keys[platform] > config.keys.default
|
|
313
|
+
*/
|
|
314
|
+
resolveApiKey(config) {
|
|
315
|
+
// 1. Direct apiKey (backward compatibility)
|
|
316
|
+
if (config.apiKey) {
|
|
317
|
+
return config.apiKey;
|
|
318
|
+
}
|
|
319
|
+
// 2. No keys object
|
|
320
|
+
if (!config.keys || Object.keys(config.keys).length === 0) {
|
|
321
|
+
return null;
|
|
322
|
+
}
|
|
323
|
+
// 3. Platform-specific key
|
|
324
|
+
if (config.platform && config.keys[config.platform]) {
|
|
325
|
+
return config.keys[config.platform];
|
|
326
|
+
}
|
|
327
|
+
// 4. Auto-detect platform
|
|
328
|
+
const Platform = require('react-native').Platform;
|
|
329
|
+
if (Platform.OS && config.keys[Platform.OS]) {
|
|
330
|
+
return config.keys[Platform.OS];
|
|
331
|
+
}
|
|
332
|
+
// 5. Fallback to 'default' or first available key
|
|
333
|
+
if (config.keys.default) {
|
|
334
|
+
return config.keys.default;
|
|
335
|
+
}
|
|
336
|
+
// Return first available key
|
|
337
|
+
const firstKey = Object.values(config.keys)[0];
|
|
338
|
+
return firstKey || null;
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Destroy SDK instance
|
|
342
|
+
*/
|
|
343
|
+
async destroy() {
|
|
344
|
+
await this.localAI?.destroy();
|
|
345
|
+
this.localAI = null;
|
|
346
|
+
this.backendService = null;
|
|
347
|
+
this.conversationManager = null;
|
|
348
|
+
this.navigationHandler = null;
|
|
349
|
+
this.status = 'uninitialized';
|
|
350
|
+
AIChatSDK.instance = null;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
exports.AIChatSDK = AIChatSDK;
|
|
354
|
+
// Export singleton instance getter
|
|
355
|
+
const getSDK = () => AIChatSDK.getInstance();
|
|
356
|
+
exports.getSDK = getSDK;
|
|
357
|
+
//# sourceMappingURL=AIChatSDK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatSDK.js","sourceRoot":"","sources":["../src/AIChatSDK.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Theme } from '../themes';
|
|
3
|
+
interface AIChatProviderProps {
|
|
4
|
+
apiKey: string;
|
|
5
|
+
apiUrl?: string;
|
|
6
|
+
theme?: 'light' | 'dark' | Theme;
|
|
7
|
+
mode?: 'floating' | 'fullscreen' | 'inline';
|
|
8
|
+
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
9
|
+
enableLocalAI?: boolean;
|
|
10
|
+
onNavigationSuggest?: (suggestion: any) => void;
|
|
11
|
+
onNavigationAction?: (suggestion: any) => void;
|
|
12
|
+
onApiActionsSuggested?: (suggestions: any[]) => void;
|
|
13
|
+
onApiActionExecute?: (action: any, complete: (result: {
|
|
14
|
+
success: boolean;
|
|
15
|
+
data?: any;
|
|
16
|
+
error?: string;
|
|
17
|
+
}) => void) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* AIChatProvider - Main component that connects UI with SDK
|
|
21
|
+
* This is what users will import and use in their app
|
|
22
|
+
*/
|
|
23
|
+
export declare function AIChatProvider({ apiKey, apiUrl, theme: themeProp, mode, position, enableLocalAI, onNavigationSuggest, onNavigationAction, onApiActionsSuggested, onApiActionExecute, }: AIChatProviderProps): React.JSX.Element;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=AIChatProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatProvider.d.ts","sourceRoot":"","sources":["../../src/components/AIChatProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAyB,KAAK,EAAE,MAAM,WAAW,CAAC;AAGzD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACjC,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC5C,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IAChD,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/C,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACrD,kBAAkB,CAAC,EAAE,CACnB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,KACzE,IAAI,CAAC;CACX;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,MAAM,EACN,KAAK,EAAE,SAAmB,EAC1B,IAAiB,EACjB,QAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,EAAE,mBAAmB,qBA+DrB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.AIChatProvider = AIChatProvider;
|
|
37
|
+
const react_1 = __importStar(require("react"));
|
|
38
|
+
const AIChatWidget_1 = require("./AIChatWidget");
|
|
39
|
+
const FloatingButton_1 = require("./FloatingButton");
|
|
40
|
+
const themes_1 = require("../themes");
|
|
41
|
+
const react_native_1 = require("react-native");
|
|
42
|
+
/**
|
|
43
|
+
* AIChatProvider - Main component that connects UI with SDK
|
|
44
|
+
* This is what users will import and use in their app
|
|
45
|
+
*/
|
|
46
|
+
function AIChatProvider({ apiKey, apiUrl, theme: themeProp = 'light', mode = 'floating', position = 'bottom-right', enableLocalAI, onNavigationSuggest, onNavigationAction, onApiActionsSuggested, onApiActionExecute, }) {
|
|
47
|
+
const [isOpen, setIsOpen] = (0, react_1.useState)(mode !== 'floating');
|
|
48
|
+
const [unreadCount, setUnreadCount] = (0, react_1.useState)(0);
|
|
49
|
+
// Get theme
|
|
50
|
+
const theme = typeof themeProp === 'string'
|
|
51
|
+
? themeProp === 'dark'
|
|
52
|
+
? themes_1.darkTheme
|
|
53
|
+
: themes_1.lightTheme
|
|
54
|
+
: themeProp;
|
|
55
|
+
// Handle opening chat
|
|
56
|
+
const handleToggle = () => {
|
|
57
|
+
setIsOpen((prev) => !prev);
|
|
58
|
+
if (!isOpen) {
|
|
59
|
+
setUnreadCount(0);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
// Floating mode with button
|
|
63
|
+
if (mode === 'floating') {
|
|
64
|
+
return (<react_native_1.View style={styles.container} pointerEvents="box-none">
|
|
65
|
+
{isOpen && (<react_native_1.View style={styles.widgetContainer}>
|
|
66
|
+
<AIChatWidget_1.AIChatWidget apiKey={apiKey} apiUrl={apiUrl} theme={theme} enableLocalAI={enableLocalAI} onNavigationSuggest={onNavigationSuggest} onNavigationAction={onNavigationAction} onApiActionsSuggested={onApiActionsSuggested} onApiActionExecute={onApiActionExecute}/>
|
|
67
|
+
</react_native_1.View>)}
|
|
68
|
+
<FloatingButton_1.FloatingButton isOpen={isOpen} onPress={handleToggle} unreadCount={unreadCount} theme={theme} position={position}/>
|
|
69
|
+
</react_native_1.View>);
|
|
70
|
+
}
|
|
71
|
+
// Fullscreen or inline mode
|
|
72
|
+
return (<AIChatWidget_1.AIChatWidget apiKey={apiKey} apiUrl={apiUrl} theme={theme} mode={mode} enableLocalAI={enableLocalAI} onNavigationSuggest={onNavigationSuggest} onNavigationAction={onNavigationAction} onApiActionsSuggested={onApiActionsSuggested} onApiActionExecute={onApiActionExecute}/>);
|
|
73
|
+
}
|
|
74
|
+
const styles = react_native_1.StyleSheet.create({
|
|
75
|
+
container: {
|
|
76
|
+
...react_native_1.StyleSheet.absoluteFillObject,
|
|
77
|
+
zIndex: 9999,
|
|
78
|
+
},
|
|
79
|
+
widgetContainer: {
|
|
80
|
+
position: 'absolute',
|
|
81
|
+
bottom: 100,
|
|
82
|
+
right: 24,
|
|
83
|
+
width: 360,
|
|
84
|
+
height: 600,
|
|
85
|
+
maxHeight: '80%',
|
|
86
|
+
shadowColor: '#000',
|
|
87
|
+
shadowOffset: { width: 0, height: 4 },
|
|
88
|
+
shadowOpacity: 0.3,
|
|
89
|
+
shadowRadius: 8,
|
|
90
|
+
elevation: 8,
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=AIChatProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatProvider.js","sourceRoot":"","sources":["../../src/components/AIChatProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AIChatWidgetProps } from './AIChatWidget.types';
|
|
3
|
+
/**
|
|
4
|
+
* AIChatWidget Component
|
|
5
|
+
*
|
|
6
|
+
* Main chat widget component with full UI and functionality.
|
|
7
|
+
*
|
|
8
|
+
* 🚀 Zero-Config Support:
|
|
9
|
+
* All config props (apiKey, projectId, apiUrl) are OPTIONAL!
|
|
10
|
+
* SDK automatically loads from aichat.config.js or environment variables.
|
|
11
|
+
*
|
|
12
|
+
* Features:
|
|
13
|
+
* - Three display modes: fullscreen, inline, floating
|
|
14
|
+
* - Complete chat UI with message list and input
|
|
15
|
+
* - Integration with AIChatSDK for backend communication
|
|
16
|
+
* - Auto-loading theme from API (via projectId)
|
|
17
|
+
* - Theme support (light/dark) with overrides
|
|
18
|
+
* - Multi-key support (platform-specific API keys)
|
|
19
|
+
* - Typing indicators and streaming responses
|
|
20
|
+
* - Tool Registry integration
|
|
21
|
+
* - Message metadata display
|
|
22
|
+
* - Error handling with clear config errors
|
|
23
|
+
*
|
|
24
|
+
* @example Zero-config usage (recommended)
|
|
25
|
+
* ```tsx
|
|
26
|
+
* // Create aichat.config.js in project root:
|
|
27
|
+
* // module.exports = {
|
|
28
|
+
* // projectId: '68e4c834c62d2ff6533d6fb0',
|
|
29
|
+
* // keys: {
|
|
30
|
+
* // ios: 'aichat_pk_ios_xxx',
|
|
31
|
+
* // android: 'aichat_pk_android_xxx'
|
|
32
|
+
* // }
|
|
33
|
+
* // }
|
|
34
|
+
*
|
|
35
|
+
* <AIChatWidget />
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example Explicit config
|
|
39
|
+
* ```tsx
|
|
40
|
+
* <AIChatWidget
|
|
41
|
+
* apiKey="aichat_pk_xxx"
|
|
42
|
+
* projectId="68e4c834c62d2ff6533d6fb0"
|
|
43
|
+
* mode="fullscreen"
|
|
44
|
+
* theme="light"
|
|
45
|
+
* title="AI Assistant"
|
|
46
|
+
* />
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @example With theme override
|
|
50
|
+
* ```tsx
|
|
51
|
+
* <AIChatWidget
|
|
52
|
+
* themeOverride={{
|
|
53
|
+
* colors: {
|
|
54
|
+
* userBubble: '#FF0000',
|
|
55
|
+
* userBubbleText: '#FFFFFF'
|
|
56
|
+
* }
|
|
57
|
+
* }}
|
|
58
|
+
* />
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function AIChatWidget({ style, apiKey: apiKeyProp, keys: keysProp, platform: platformProp, apiUrl: apiUrlProp, projectId: projectIdProp, mode, theme: themeName, customTheme, themeOverride, enableLocalAI, enableStreaming, context: userContext, contextDescription, components: customComponents, showMetadata, showTimestamps, placeholder, maxMessageLength, onReady, onMessageSent, onResponseReceived, onError, onNavigationSuggest, onNavigationAction, onApiActionsSuggested, onToolSuggested, onApiActionExecute, onApiActionSuggest, }: AIChatWidgetProps): React.JSX.Element;
|
|
62
|
+
//# sourceMappingURL=AIChatWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatWidget.d.ts","sourceRoot":"","sources":["../../src/components/AIChatWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAQ5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAmBzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,IAAmB,EACnB,KAAK,EAAE,SAAmB,EAC1B,WAAW,EACX,aAAa,EACb,aAAqB,EACrB,eAAsB,EACtB,OAAO,EAAE,WAAW,EACpB,kBAAkB,EAClB,UAAU,EAAE,gBAAgB,EAC5B,YAAoB,EACpB,cAAqB,EACrB,WAAiC,EACjC,gBAAsB,EACtB,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GAEnB,EAAE,iBAAiB,qBAmZnB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ChatMessage } from '../types/chat';
|
|
2
|
+
import { ComponentRegistry } from '../types/components';
|
|
3
|
+
import { ApiActionResult } from './AIChatWidget.types';
|
|
4
|
+
export interface ActionHandlerOptions {
|
|
5
|
+
onNavigationAction?: (suggestion: any) => void;
|
|
6
|
+
onApiActionExecute?: (action: any, toolDefinition: any | null, mappedParameters: Record<string, any> | null, complete: (result: ApiActionResult) => void) => void;
|
|
7
|
+
onApiActionSuggest?: (suggestions: any[], executeAction: (actionId: string, result: any) => void) => void;
|
|
8
|
+
componentRegistry: ComponentRegistry;
|
|
9
|
+
setMessages: React.Dispatch<React.SetStateAction<ChatMessage[]>>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Handle action button clicks
|
|
13
|
+
*/
|
|
14
|
+
export declare const createActionHandler: (options: ActionHandlerOptions) => (action: any) => void;
|
|
15
|
+
//# sourceMappingURL=AIChatWidget.handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatWidget.handlers.d.ts","sourceRoot":"","sources":["../../src/components/AIChatWidget.handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,CACnB,MAAM,EAAE,GAAG,EACX,cAAc,EAAE,GAAG,GAAG,IAAI,EAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAC5C,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,KACxC,IAAI,CAAC;IACV,kBAAkB,CAAC,EAAE,CACnB,WAAW,EAAE,GAAG,EAAE,EAClB,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,KACnD,IAAI,CAAC;IACV,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;CAClE;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,oBAAoB,MASvD,QAAQ,GAAG,SAmBpB,CAAC"}
|