@egain/ai-agent-sdk 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/README.md +295 -0
- package/dist/browser.js +22739 -0
- package/dist/core/AiAgent.d.ts +1126 -0
- package/dist/core/AiAgent.d.ts.map +1 -0
- package/dist/core/AiAgent.js +2037 -0
- package/dist/core/AiAgent.js.map +1 -0
- package/dist/core/api/ApiHelper.d.ts +433 -0
- package/dist/core/api/ApiHelper.d.ts.map +1 -0
- package/dist/core/api/ApiHelper.js +689 -0
- package/dist/core/api/ApiHelper.js.map +1 -0
- package/dist/core/api/CacheAdapter.d.ts +295 -0
- package/dist/core/api/CacheAdapter.d.ts.map +1 -0
- package/dist/core/api/CacheAdapter.js +298 -0
- package/dist/core/api/CacheAdapter.js.map +1 -0
- package/dist/core/auth/AnonymousAuthStrategy.d.ts +87 -0
- package/dist/core/auth/AnonymousAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/AnonymousAuthStrategy.js +257 -0
- package/dist/core/auth/AnonymousAuthStrategy.js.map +1 -0
- package/dist/core/auth/AuthProvider.d.ts +13 -0
- package/dist/core/auth/AuthProvider.d.ts.map +1 -0
- package/dist/core/auth/AuthProvider.js +2 -0
- package/dist/core/auth/AuthProvider.js.map +1 -0
- package/dist/core/auth/AuthStrategy.d.ts +74 -0
- package/dist/core/auth/AuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/AuthStrategy.js +2 -0
- package/dist/core/auth/AuthStrategy.js.map +1 -0
- package/dist/core/auth/AuthenticationService.d.ts +226 -0
- package/dist/core/auth/AuthenticationService.d.ts.map +1 -0
- package/dist/core/auth/AuthenticationService.js +344 -0
- package/dist/core/auth/AuthenticationService.js.map +1 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts +62 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.js +78 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.js.map +1 -0
- package/dist/core/auth/PKCEAuthStrategy.d.ts +136 -0
- package/dist/core/auth/PKCEAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/PKCEAuthStrategy.js +409 -0
- package/dist/core/auth/PKCEAuthStrategy.js.map +1 -0
- package/dist/core/auth/PreAuthStrategy.d.ts +101 -0
- package/dist/core/auth/PreAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/PreAuthStrategy.js +216 -0
- package/dist/core/auth/PreAuthStrategy.js.map +1 -0
- package/dist/core/auth/msal-browser.js +19683 -0
- package/dist/core/auth/msal-loader.d.ts +14 -0
- package/dist/core/auth/msal-loader.d.ts.map +1 -0
- package/dist/core/auth/msal-loader.js +43 -0
- package/dist/core/auth/msal-loader.js.map +1 -0
- package/dist/core/connection/Connection.d.ts +168 -0
- package/dist/core/connection/Connection.d.ts.map +1 -0
- package/dist/core/connection/Connection.js +290 -0
- package/dist/core/connection/Connection.js.map +1 -0
- package/dist/core/connection/ConnectionState.d.ts +11 -0
- package/dist/core/connection/ConnectionState.d.ts.map +1 -0
- package/dist/core/connection/ConnectionState.js +12 -0
- package/dist/core/connection/ConnectionState.js.map +1 -0
- package/dist/core/connection/Transport.d.ts +98 -0
- package/dist/core/connection/Transport.d.ts.map +1 -0
- package/dist/core/connection/Transport.js +27 -0
- package/dist/core/connection/Transport.js.map +1 -0
- package/dist/core/connection/WebSocketTransport.d.ts +65 -0
- package/dist/core/connection/WebSocketTransport.d.ts.map +1 -0
- package/dist/core/connection/WebSocketTransport.js +177 -0
- package/dist/core/connection/WebSocketTransport.js.map +1 -0
- package/dist/core/errors/SDKError.d.ts +27 -0
- package/dist/core/errors/SDKError.d.ts.map +1 -0
- package/dist/core/errors/SDKError.js +43 -0
- package/dist/core/errors/SDKError.js.map +1 -0
- package/dist/core/events/EventEmitter.d.ts +120 -0
- package/dist/core/events/EventEmitter.d.ts.map +1 -0
- package/dist/core/events/EventEmitter.js +183 -0
- package/dist/core/events/EventEmitter.js.map +1 -0
- package/dist/core/logging/LogLevel.d.ts +33 -0
- package/dist/core/logging/LogLevel.d.ts.map +1 -0
- package/dist/core/logging/LogLevel.js +40 -0
- package/dist/core/logging/LogLevel.js.map +1 -0
- package/dist/core/logging/Logger.d.ts +120 -0
- package/dist/core/logging/Logger.d.ts.map +1 -0
- package/dist/core/logging/Logger.js +204 -0
- package/dist/core/logging/Logger.js.map +1 -0
- package/dist/core/logging/globalLogger.d.ts +8 -0
- package/dist/core/logging/globalLogger.d.ts.map +1 -0
- package/dist/core/logging/globalLogger.js +12 -0
- package/dist/core/logging/globalLogger.js.map +1 -0
- package/dist/core/logging/types.d.ts +45 -0
- package/dist/core/logging/types.d.ts.map +1 -0
- package/dist/core/logging/types.js +2 -0
- package/dist/core/logging/types.js.map +1 -0
- package/dist/core/message/BaseMessageHandler.d.ts +208 -0
- package/dist/core/message/BaseMessageHandler.d.ts.map +1 -0
- package/dist/core/message/BaseMessageHandler.js +155 -0
- package/dist/core/message/BaseMessageHandler.js.map +1 -0
- package/dist/core/message/Message.d.ts +69 -0
- package/dist/core/message/Message.d.ts.map +1 -0
- package/dist/core/message/Message.js +131 -0
- package/dist/core/message/Message.js.map +1 -0
- package/dist/core/message/MessageProcessor.d.ts +51 -0
- package/dist/core/message/MessageProcessor.d.ts.map +1 -0
- package/dist/core/message/MessageProcessor.js +123 -0
- package/dist/core/message/MessageProcessor.js.map +1 -0
- package/dist/core/message/MessageTypes.d.ts +123 -0
- package/dist/core/message/MessageTypes.d.ts.map +1 -0
- package/dist/core/message/MessageTypes.js +106 -0
- package/dist/core/message/MessageTypes.js.map +1 -0
- package/dist/core/message/Transcript.d.ts +373 -0
- package/dist/core/message/Transcript.d.ts.map +1 -0
- package/dist/core/message/Transcript.js +355 -0
- package/dist/core/message/Transcript.js.map +1 -0
- package/dist/core/message/handlers/AgentMessageHandler.d.ts +26 -0
- package/dist/core/message/handlers/AgentMessageHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/AgentMessageHandler.js +130 -0
- package/dist/core/message/handlers/AgentMessageHandler.js.map +1 -0
- package/dist/core/message/handlers/ChatHistoryHandler.d.ts +12 -0
- package/dist/core/message/handlers/ChatHistoryHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/ChatHistoryHandler.js +49 -0
- package/dist/core/message/handlers/ChatHistoryHandler.js.map +1 -0
- package/dist/core/message/handlers/ErrorMessageHandler.d.ts +12 -0
- package/dist/core/message/handlers/ErrorMessageHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/ErrorMessageHandler.js +49 -0
- package/dist/core/message/handlers/ErrorMessageHandler.js.map +1 -0
- package/dist/core/message/handlers/HeartbeatHandler.d.ts +12 -0
- package/dist/core/message/handlers/HeartbeatHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/HeartbeatHandler.js +46 -0
- package/dist/core/message/handlers/HeartbeatHandler.js.map +1 -0
- package/dist/core/message/handlers/TokenRefreshHandler.d.ts +30 -0
- package/dist/core/message/handlers/TokenRefreshHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/TokenRefreshHandler.js +84 -0
- package/dist/core/message/handlers/TokenRefreshHandler.js.map +1 -0
- package/dist/core/message/types.d.ts +107 -0
- package/dist/core/message/types.d.ts.map +1 -0
- package/dist/core/message/types.js +30 -0
- package/dist/core/message/types.js.map +1 -0
- package/dist/core/platform/HookContract.d.ts +112 -0
- package/dist/core/platform/HookContract.d.ts.map +1 -0
- package/dist/core/platform/HookContract.js +13 -0
- package/dist/core/platform/HookContract.js.map +1 -0
- package/dist/core/platform/PlatformComponentService.d.ts +40 -0
- package/dist/core/platform/PlatformComponentService.d.ts.map +1 -0
- package/dist/core/platform/PlatformComponentService.js +12 -0
- package/dist/core/platform/PlatformComponentService.js.map +1 -0
- package/dist/core/platform/PlatformScriptLoader.d.ts +41 -0
- package/dist/core/platform/PlatformScriptLoader.d.ts.map +1 -0
- package/dist/core/platform/PlatformScriptLoader.js +110 -0
- package/dist/core/platform/PlatformScriptLoader.js.map +1 -0
- package/dist/core/polyfills.d.ts +16 -0
- package/dist/core/polyfills.d.ts.map +1 -0
- package/dist/core/polyfills.js +168 -0
- package/dist/core/polyfills.js.map +1 -0
- package/dist/core/portal-initializer/PortalInitializer.d.ts +234 -0
- package/dist/core/portal-initializer/PortalInitializer.d.ts.map +1 -0
- package/dist/core/portal-initializer/PortalInitializer.js +636 -0
- package/dist/core/portal-initializer/PortalInitializer.js.map +1 -0
- package/dist/core/queue/MessageQueue.d.ts +277 -0
- package/dist/core/queue/MessageQueue.d.ts.map +1 -0
- package/dist/core/queue/MessageQueue.js +291 -0
- package/dist/core/queue/MessageQueue.js.map +1 -0
- package/dist/core/types/PortalTypes.d.ts +51 -0
- package/dist/core/types/PortalTypes.d.ts.map +1 -0
- package/dist/core/types/PortalTypes.js +8 -0
- package/dist/core/types/PortalTypes.js.map +1 -0
- package/dist/index.d.ts +91 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiHelper.js","sourceRoot":"","sources":["../../../src/core/api/ApiHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Caching
|
|
3
|
+
*
|
|
4
|
+
* The SDK provides built-in caching for API responses and context data to reduce
|
|
5
|
+
* network calls and improve performance.
|
|
6
|
+
*
|
|
7
|
+
* ## Overview
|
|
8
|
+
*
|
|
9
|
+
* Caching is automatically enabled by default and uses the appropriate storage
|
|
10
|
+
* backend based on the environment:
|
|
11
|
+
* - **Browser**: Uses `sessionStorage` (or `localStorage` if configured)
|
|
12
|
+
* - **Node.js**: Uses in-memory storage
|
|
13
|
+
*
|
|
14
|
+
* ## Quick Start
|
|
15
|
+
*
|
|
16
|
+
* Caching works out of the box with sensible defaults:
|
|
17
|
+
*
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const agent = new AiAgent({
|
|
20
|
+
* id: "agent-id",
|
|
21
|
+
* endpoint: "https://your-endpoint.com"
|
|
22
|
+
* // Caching is enabled by default
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* ## Configuration
|
|
27
|
+
*
|
|
28
|
+
* Customize caching behavior via the `cache` option:
|
|
29
|
+
*
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const agent = new AiAgent({
|
|
32
|
+
* id: "agent-id",
|
|
33
|
+
* endpoint: "https://your-endpoint.com",
|
|
34
|
+
* cache: {
|
|
35
|
+
* enabled: true, // Enable/disable caching
|
|
36
|
+
* storageType: 'session', // 'session' | 'local' | 'memory'
|
|
37
|
+
* ttl: 300000 // Cache TTL in milliseconds (5 minutes)
|
|
38
|
+
* }
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* ## Storage Types
|
|
43
|
+
*
|
|
44
|
+
* | Type | Description | Persistence |
|
|
45
|
+
* |------|-------------|-------------|
|
|
46
|
+
* | `session` | Browser sessionStorage | Tab lifetime |
|
|
47
|
+
* | `local` | Browser localStorage | Permanent |
|
|
48
|
+
* | `memory` | In-memory Map | Process lifetime |
|
|
49
|
+
*
|
|
50
|
+
* ## Custom Cache Adapter
|
|
51
|
+
*
|
|
52
|
+
* Implement your own cache adapter for custom storage backends (Redis, IndexedDB, etc.):
|
|
53
|
+
*
|
|
54
|
+
* ```typescript
|
|
55
|
+
* import { CacheAdapter, CacheEntry } from "@eGain/ai-agent-sdk";
|
|
56
|
+
*
|
|
57
|
+
* class RedisCacheAdapter implements CacheAdapter {
|
|
58
|
+
* get<T>(key: string): CacheEntry<T> | null {
|
|
59
|
+
* // Fetch from Redis
|
|
60
|
+
* }
|
|
61
|
+
* set<T>(key: string, entry: CacheEntry<T>): void {
|
|
62
|
+
* // Store in Redis
|
|
63
|
+
* }
|
|
64
|
+
* delete(key: string): void {
|
|
65
|
+
* // Delete from Redis
|
|
66
|
+
* }
|
|
67
|
+
* clear(prefix?: string): void {
|
|
68
|
+
* // Clear keys from Redis
|
|
69
|
+
* }
|
|
70
|
+
* keys(prefix?: string): string[] {
|
|
71
|
+
* // List keys from Redis
|
|
72
|
+
* }
|
|
73
|
+
* }
|
|
74
|
+
*
|
|
75
|
+
* const agent = new AiAgent({
|
|
76
|
+
* id: "agent-id",
|
|
77
|
+
* endpoint: "https://your-endpoint.com",
|
|
78
|
+
* cache: {
|
|
79
|
+
* adapter: new RedisCacheAdapter()
|
|
80
|
+
* }
|
|
81
|
+
* });
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* ## What Gets Cached
|
|
85
|
+
*
|
|
86
|
+
* - **Deployment Info**: API domain configuration
|
|
87
|
+
* - **Agent Details**: Agent profile and settings
|
|
88
|
+
* - **Context Data**: User context for reconnection
|
|
89
|
+
* - **Anonymous Auth Tokens**: For session continuity
|
|
90
|
+
*
|
|
91
|
+
* @module Caching
|
|
92
|
+
* @category Features
|
|
93
|
+
*/
|
|
94
|
+
/**
|
|
95
|
+
* Cache entry with timestamp for TTL support.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const entry: CacheEntry<UserData> = {
|
|
100
|
+
* value: { userId: "123", name: "John" },
|
|
101
|
+
* timestamp: Date.now()
|
|
102
|
+
* };
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* @category Features
|
|
106
|
+
* @group Caching
|
|
107
|
+
*/
|
|
108
|
+
export interface CacheEntry<T> {
|
|
109
|
+
/** The cached value */
|
|
110
|
+
value: T;
|
|
111
|
+
/** Timestamp when the entry was created (ms since epoch) */
|
|
112
|
+
timestamp: number;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Cache adapter interface for implementing custom storage backends.
|
|
116
|
+
*
|
|
117
|
+
* Implement this interface to create custom cache adapters for Redis,
|
|
118
|
+
* IndexedDB, or other storage systems.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* class CustomCacheAdapter implements CacheAdapter {
|
|
123
|
+
* private store = new Map<string, string>();
|
|
124
|
+
*
|
|
125
|
+
* get<T>(key: string): CacheEntry<T> | null {
|
|
126
|
+
* const data = this.store.get(key);
|
|
127
|
+
* return data ? JSON.parse(data) : null;
|
|
128
|
+
* }
|
|
129
|
+
*
|
|
130
|
+
* set<T>(key: string, entry: CacheEntry<T>): void {
|
|
131
|
+
* this.store.set(key, JSON.stringify(entry));
|
|
132
|
+
* }
|
|
133
|
+
*
|
|
134
|
+
* delete(key: string): void {
|
|
135
|
+
* this.store.delete(key);
|
|
136
|
+
* }
|
|
137
|
+
*
|
|
138
|
+
* clear(prefix?: string): void {
|
|
139
|
+
* if (prefix) {
|
|
140
|
+
* for (const key of this.store.keys()) {
|
|
141
|
+
* if (key.startsWith(prefix)) this.store.delete(key);
|
|
142
|
+
* }
|
|
143
|
+
* } else {
|
|
144
|
+
* this.store.clear();
|
|
145
|
+
* }
|
|
146
|
+
* }
|
|
147
|
+
*
|
|
148
|
+
* keys(prefix?: string): string[] {
|
|
149
|
+
* const allKeys = Array.from(this.store.keys());
|
|
150
|
+
* return prefix ? allKeys.filter(k => k.startsWith(prefix)) : allKeys;
|
|
151
|
+
* }
|
|
152
|
+
* }
|
|
153
|
+
* ```
|
|
154
|
+
*
|
|
155
|
+
* @category Features
|
|
156
|
+
* @group Caching
|
|
157
|
+
*/
|
|
158
|
+
export interface CacheAdapter {
|
|
159
|
+
/**
|
|
160
|
+
* Get a value from the cache
|
|
161
|
+
* @param key - The cache key
|
|
162
|
+
* @returns The cached entry or null if not found
|
|
163
|
+
*/
|
|
164
|
+
get<T>(key: string): CacheEntry<T> | null;
|
|
165
|
+
/**
|
|
166
|
+
* Set a value in the cache
|
|
167
|
+
* @param key - The cache key
|
|
168
|
+
* @param entry - The cache entry with value and timestamp
|
|
169
|
+
*/
|
|
170
|
+
set<T>(key: string, entry: CacheEntry<T>): void;
|
|
171
|
+
/**
|
|
172
|
+
* Delete a value from the cache
|
|
173
|
+
* @param key - The cache key
|
|
174
|
+
*/
|
|
175
|
+
delete(key: string): void;
|
|
176
|
+
/**
|
|
177
|
+
* Clear all values from the cache
|
|
178
|
+
* @param prefix - Optional prefix to only clear keys starting with this prefix
|
|
179
|
+
*/
|
|
180
|
+
clear(prefix?: string): void;
|
|
181
|
+
/**
|
|
182
|
+
* Get all keys in the cache
|
|
183
|
+
* @param prefix - Optional prefix to filter keys
|
|
184
|
+
* @returns Array of matching cache keys
|
|
185
|
+
*/
|
|
186
|
+
keys(prefix?: string): string[];
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* In-memory cache adapter for Node.js environments.
|
|
190
|
+
*
|
|
191
|
+
* Uses a JavaScript Map for storage. Data persists only for the lifetime
|
|
192
|
+
* of the process. Suitable for server-side applications and testing.
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* const cache = new MemoryCacheAdapter();
|
|
197
|
+
*
|
|
198
|
+
* // Store a value
|
|
199
|
+
* cache.set('user:123', {
|
|
200
|
+
* value: { name: 'John' },
|
|
201
|
+
* timestamp: Date.now()
|
|
202
|
+
* });
|
|
203
|
+
*
|
|
204
|
+
* // Retrieve the value
|
|
205
|
+
* const entry = cache.get<{ name: string }>('user:123');
|
|
206
|
+
* console.log(entry?.value.name); // "John"
|
|
207
|
+
* ```
|
|
208
|
+
*
|
|
209
|
+
* @category Features
|
|
210
|
+
* @group Caching
|
|
211
|
+
*/
|
|
212
|
+
export declare class MemoryCacheAdapter implements CacheAdapter {
|
|
213
|
+
private cache;
|
|
214
|
+
get<T>(key: string): CacheEntry<T> | null;
|
|
215
|
+
set<T>(key: string, entry: CacheEntry<T>): void;
|
|
216
|
+
delete(key: string): void;
|
|
217
|
+
clear(prefix?: string): void;
|
|
218
|
+
keys(prefix?: string): string[];
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Browser storage cache adapter using localStorage or sessionStorage.
|
|
222
|
+
*
|
|
223
|
+
* Automatically serializes values to JSON for storage. Falls back gracefully
|
|
224
|
+
* if storage is unavailable or full.
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```typescript
|
|
228
|
+
* // Use sessionStorage (cleared when tab closes)
|
|
229
|
+
* const sessionCache = new StorageCacheAdapter('session');
|
|
230
|
+
*
|
|
231
|
+
* // Use localStorage (persistent)
|
|
232
|
+
* const localCache = new StorageCacheAdapter('local');
|
|
233
|
+
*
|
|
234
|
+
* // Store data
|
|
235
|
+
* sessionCache.set('config', {
|
|
236
|
+
* value: { theme: 'dark' },
|
|
237
|
+
* timestamp: Date.now()
|
|
238
|
+
* });
|
|
239
|
+
* ```
|
|
240
|
+
*
|
|
241
|
+
* @category Features
|
|
242
|
+
* @group Caching
|
|
243
|
+
*/
|
|
244
|
+
export declare class StorageCacheAdapter implements CacheAdapter {
|
|
245
|
+
private storage;
|
|
246
|
+
/**
|
|
247
|
+
* Create a new StorageCacheAdapter
|
|
248
|
+
* @param storageType - Use 'local' for localStorage, 'session' for sessionStorage
|
|
249
|
+
* @throws Error if not in a browser environment
|
|
250
|
+
*/
|
|
251
|
+
constructor(storageType?: 'local' | 'session');
|
|
252
|
+
get<T>(key: string): CacheEntry<T> | null;
|
|
253
|
+
set<T>(key: string, entry: CacheEntry<T>): void;
|
|
254
|
+
delete(key: string): void;
|
|
255
|
+
clear(prefix?: string): void;
|
|
256
|
+
keys(prefix?: string): string[];
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Cache storage type options.
|
|
260
|
+
*
|
|
261
|
+
* - `local`: Browser localStorage (persistent across sessions)
|
|
262
|
+
* - `session`: Browser sessionStorage (cleared when tab closes)
|
|
263
|
+
* - `memory`: In-memory storage (cleared when process ends)
|
|
264
|
+
*
|
|
265
|
+
* @category Features
|
|
266
|
+
* @group Caching
|
|
267
|
+
*/
|
|
268
|
+
export type CacheStorageType = 'local' | 'session' | 'memory';
|
|
269
|
+
/**
|
|
270
|
+
* Factory function to create the appropriate cache adapter based on environment.
|
|
271
|
+
*
|
|
272
|
+
* Automatically detects the environment and creates the best available adapter:
|
|
273
|
+
* - In browsers: Creates StorageCacheAdapter (with fallback to memory if storage unavailable)
|
|
274
|
+
* - In Node.js: Creates MemoryCacheAdapter
|
|
275
|
+
*
|
|
276
|
+
* @param storageType - The preferred storage type
|
|
277
|
+
* @returns The appropriate cache adapter for the environment
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* ```typescript
|
|
281
|
+
* // Auto-detect best adapter
|
|
282
|
+
* const cache = createCacheAdapter();
|
|
283
|
+
*
|
|
284
|
+
* // Force memory adapter
|
|
285
|
+
* const memoryCache = createCacheAdapter('memory');
|
|
286
|
+
*
|
|
287
|
+
* // Use localStorage in browser
|
|
288
|
+
* const persistentCache = createCacheAdapter('local');
|
|
289
|
+
* ```
|
|
290
|
+
*
|
|
291
|
+
* @category Features
|
|
292
|
+
* @group Caching
|
|
293
|
+
*/
|
|
294
|
+
export declare function createCacheAdapter(storageType?: CacheStorageType): CacheAdapter;
|
|
295
|
+
//# sourceMappingURL=CacheAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheAdapter.d.ts","sourceRoot":"","sources":["../../../src/core/api/CacheAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IACzB,uBAAuB;IACvB,KAAK,EAAE,CAAC,CAAC;IACT,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,YAAY;IACzB;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAE1C;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEhD;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;OAIG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACnD,OAAO,CAAC,KAAK,CAA+C;IAE5D,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAQzC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAI/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAY5B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CAOlC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,mBAAoB,YAAW,YAAY;IACpD,OAAO,CAAC,OAAO,CAAU;IAEzB;;;;OAIG;gBACS,WAAW,GAAE,OAAO,GAAG,SAAqB;IAYxD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAYzC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAS/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAe5B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CAYlC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAC9B,WAAW,GAAE,gBAA4B,GAC1C,YAAY,CAgCd"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Caching
|
|
3
|
+
*
|
|
4
|
+
* The SDK provides built-in caching for API responses and context data to reduce
|
|
5
|
+
* network calls and improve performance.
|
|
6
|
+
*
|
|
7
|
+
* ## Overview
|
|
8
|
+
*
|
|
9
|
+
* Caching is automatically enabled by default and uses the appropriate storage
|
|
10
|
+
* backend based on the environment:
|
|
11
|
+
* - **Browser**: Uses `sessionStorage` (or `localStorage` if configured)
|
|
12
|
+
* - **Node.js**: Uses in-memory storage
|
|
13
|
+
*
|
|
14
|
+
* ## Quick Start
|
|
15
|
+
*
|
|
16
|
+
* Caching works out of the box with sensible defaults:
|
|
17
|
+
*
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const agent = new AiAgent({
|
|
20
|
+
* id: "agent-id",
|
|
21
|
+
* endpoint: "https://your-endpoint.com"
|
|
22
|
+
* // Caching is enabled by default
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* ## Configuration
|
|
27
|
+
*
|
|
28
|
+
* Customize caching behavior via the `cache` option:
|
|
29
|
+
*
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const agent = new AiAgent({
|
|
32
|
+
* id: "agent-id",
|
|
33
|
+
* endpoint: "https://your-endpoint.com",
|
|
34
|
+
* cache: {
|
|
35
|
+
* enabled: true, // Enable/disable caching
|
|
36
|
+
* storageType: 'session', // 'session' | 'local' | 'memory'
|
|
37
|
+
* ttl: 300000 // Cache TTL in milliseconds (5 minutes)
|
|
38
|
+
* }
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* ## Storage Types
|
|
43
|
+
*
|
|
44
|
+
* | Type | Description | Persistence |
|
|
45
|
+
* |------|-------------|-------------|
|
|
46
|
+
* | `session` | Browser sessionStorage | Tab lifetime |
|
|
47
|
+
* | `local` | Browser localStorage | Permanent |
|
|
48
|
+
* | `memory` | In-memory Map | Process lifetime |
|
|
49
|
+
*
|
|
50
|
+
* ## Custom Cache Adapter
|
|
51
|
+
*
|
|
52
|
+
* Implement your own cache adapter for custom storage backends (Redis, IndexedDB, etc.):
|
|
53
|
+
*
|
|
54
|
+
* ```typescript
|
|
55
|
+
* import { CacheAdapter, CacheEntry } from "@eGain/ai-agent-sdk";
|
|
56
|
+
*
|
|
57
|
+
* class RedisCacheAdapter implements CacheAdapter {
|
|
58
|
+
* get<T>(key: string): CacheEntry<T> | null {
|
|
59
|
+
* // Fetch from Redis
|
|
60
|
+
* }
|
|
61
|
+
* set<T>(key: string, entry: CacheEntry<T>): void {
|
|
62
|
+
* // Store in Redis
|
|
63
|
+
* }
|
|
64
|
+
* delete(key: string): void {
|
|
65
|
+
* // Delete from Redis
|
|
66
|
+
* }
|
|
67
|
+
* clear(prefix?: string): void {
|
|
68
|
+
* // Clear keys from Redis
|
|
69
|
+
* }
|
|
70
|
+
* keys(prefix?: string): string[] {
|
|
71
|
+
* // List keys from Redis
|
|
72
|
+
* }
|
|
73
|
+
* }
|
|
74
|
+
*
|
|
75
|
+
* const agent = new AiAgent({
|
|
76
|
+
* id: "agent-id",
|
|
77
|
+
* endpoint: "https://your-endpoint.com",
|
|
78
|
+
* cache: {
|
|
79
|
+
* adapter: new RedisCacheAdapter()
|
|
80
|
+
* }
|
|
81
|
+
* });
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* ## What Gets Cached
|
|
85
|
+
*
|
|
86
|
+
* - **Deployment Info**: API domain configuration
|
|
87
|
+
* - **Agent Details**: Agent profile and settings
|
|
88
|
+
* - **Context Data**: User context for reconnection
|
|
89
|
+
* - **Anonymous Auth Tokens**: For session continuity
|
|
90
|
+
*
|
|
91
|
+
* @module Caching
|
|
92
|
+
* @category Features
|
|
93
|
+
*/
|
|
94
|
+
/**
|
|
95
|
+
* In-memory cache adapter for Node.js environments.
|
|
96
|
+
*
|
|
97
|
+
* Uses a JavaScript Map for storage. Data persists only for the lifetime
|
|
98
|
+
* of the process. Suitable for server-side applications and testing.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const cache = new MemoryCacheAdapter();
|
|
103
|
+
*
|
|
104
|
+
* // Store a value
|
|
105
|
+
* cache.set('user:123', {
|
|
106
|
+
* value: { name: 'John' },
|
|
107
|
+
* timestamp: Date.now()
|
|
108
|
+
* });
|
|
109
|
+
*
|
|
110
|
+
* // Retrieve the value
|
|
111
|
+
* const entry = cache.get<{ name: string }>('user:123');
|
|
112
|
+
* console.log(entry?.value.name); // "John"
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* @category Features
|
|
116
|
+
* @group Caching
|
|
117
|
+
*/
|
|
118
|
+
export class MemoryCacheAdapter {
|
|
119
|
+
constructor() {
|
|
120
|
+
this.cache = new Map();
|
|
121
|
+
}
|
|
122
|
+
get(key) {
|
|
123
|
+
const entry = this.cache.get(key);
|
|
124
|
+
if (!entry) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
return entry;
|
|
128
|
+
}
|
|
129
|
+
set(key, entry) {
|
|
130
|
+
this.cache.set(key, entry);
|
|
131
|
+
}
|
|
132
|
+
delete(key) {
|
|
133
|
+
this.cache.delete(key);
|
|
134
|
+
}
|
|
135
|
+
clear(prefix) {
|
|
136
|
+
if (prefix) {
|
|
137
|
+
for (const key of this.cache.keys()) {
|
|
138
|
+
if (key.startsWith(prefix)) {
|
|
139
|
+
this.cache.delete(key);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
this.cache.clear();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
keys(prefix) {
|
|
148
|
+
const allKeys = Array.from(this.cache.keys());
|
|
149
|
+
if (prefix) {
|
|
150
|
+
return allKeys.filter((key) => key.startsWith(prefix));
|
|
151
|
+
}
|
|
152
|
+
return allKeys;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Browser storage cache adapter using localStorage or sessionStorage.
|
|
157
|
+
*
|
|
158
|
+
* Automatically serializes values to JSON for storage. Falls back gracefully
|
|
159
|
+
* if storage is unavailable or full.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* // Use sessionStorage (cleared when tab closes)
|
|
164
|
+
* const sessionCache = new StorageCacheAdapter('session');
|
|
165
|
+
*
|
|
166
|
+
* // Use localStorage (persistent)
|
|
167
|
+
* const localCache = new StorageCacheAdapter('local');
|
|
168
|
+
*
|
|
169
|
+
* // Store data
|
|
170
|
+
* sessionCache.set('config', {
|
|
171
|
+
* value: { theme: 'dark' },
|
|
172
|
+
* timestamp: Date.now()
|
|
173
|
+
* });
|
|
174
|
+
* ```
|
|
175
|
+
*
|
|
176
|
+
* @category Features
|
|
177
|
+
* @group Caching
|
|
178
|
+
*/
|
|
179
|
+
export class StorageCacheAdapter {
|
|
180
|
+
/**
|
|
181
|
+
* Create a new StorageCacheAdapter
|
|
182
|
+
* @param storageType - Use 'local' for localStorage, 'session' for sessionStorage
|
|
183
|
+
* @throws Error if not in a browser environment
|
|
184
|
+
*/
|
|
185
|
+
constructor(storageType = 'session') {
|
|
186
|
+
if (typeof window === 'undefined') {
|
|
187
|
+
throw new Error('StorageCacheAdapter requires a browser environment');
|
|
188
|
+
}
|
|
189
|
+
this.storage =
|
|
190
|
+
storageType === 'local'
|
|
191
|
+
? window.localStorage
|
|
192
|
+
: window.sessionStorage;
|
|
193
|
+
}
|
|
194
|
+
get(key) {
|
|
195
|
+
try {
|
|
196
|
+
const item = this.storage.getItem(key);
|
|
197
|
+
if (!item) {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
return JSON.parse(item);
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
set(key, entry) {
|
|
207
|
+
try {
|
|
208
|
+
this.storage.setItem(key, JSON.stringify(entry));
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
// Storage might be full or disabled, silently fail
|
|
212
|
+
console.warn(`Failed to cache entry for key: ${key}`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
delete(key) {
|
|
216
|
+
this.storage.removeItem(key);
|
|
217
|
+
}
|
|
218
|
+
clear(prefix) {
|
|
219
|
+
if (prefix) {
|
|
220
|
+
const keysToDelete = [];
|
|
221
|
+
for (let i = 0; i < this.storage.length; i++) {
|
|
222
|
+
const key = this.storage.key(i);
|
|
223
|
+
if (key && key.startsWith(prefix)) {
|
|
224
|
+
keysToDelete.push(key);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
keysToDelete.forEach((key) => this.storage.removeItem(key));
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
this.storage.clear();
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
keys(prefix) {
|
|
234
|
+
const allKeys = [];
|
|
235
|
+
for (let i = 0; i < this.storage.length; i++) {
|
|
236
|
+
const key = this.storage.key(i);
|
|
237
|
+
if (key) {
|
|
238
|
+
if (!prefix || key.startsWith(prefix)) {
|
|
239
|
+
allKeys.push(key);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return allKeys;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Factory function to create the appropriate cache adapter based on environment.
|
|
248
|
+
*
|
|
249
|
+
* Automatically detects the environment and creates the best available adapter:
|
|
250
|
+
* - In browsers: Creates StorageCacheAdapter (with fallback to memory if storage unavailable)
|
|
251
|
+
* - In Node.js: Creates MemoryCacheAdapter
|
|
252
|
+
*
|
|
253
|
+
* @param storageType - The preferred storage type
|
|
254
|
+
* @returns The appropriate cache adapter for the environment
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```typescript
|
|
258
|
+
* // Auto-detect best adapter
|
|
259
|
+
* const cache = createCacheAdapter();
|
|
260
|
+
*
|
|
261
|
+
* // Force memory adapter
|
|
262
|
+
* const memoryCache = createCacheAdapter('memory');
|
|
263
|
+
*
|
|
264
|
+
* // Use localStorage in browser
|
|
265
|
+
* const persistentCache = createCacheAdapter('local');
|
|
266
|
+
* ```
|
|
267
|
+
*
|
|
268
|
+
* @category Features
|
|
269
|
+
* @group Caching
|
|
270
|
+
*/
|
|
271
|
+
export function createCacheAdapter(storageType = 'session') {
|
|
272
|
+
// If memory is explicitly requested, use memory adapter
|
|
273
|
+
if (storageType === 'memory') {
|
|
274
|
+
return new MemoryCacheAdapter();
|
|
275
|
+
}
|
|
276
|
+
// Check if we're in a browser environment
|
|
277
|
+
const isBrowser = typeof window !== 'undefined' && typeof window.Storage !== 'undefined';
|
|
278
|
+
if (isBrowser) {
|
|
279
|
+
try {
|
|
280
|
+
// Test if storage is available and working
|
|
281
|
+
const testKey = '__cache_test__';
|
|
282
|
+
const storage = storageType === 'local'
|
|
283
|
+
? window.localStorage
|
|
284
|
+
: window.sessionStorage;
|
|
285
|
+
storage.setItem(testKey, 'test');
|
|
286
|
+
storage.removeItem(testKey);
|
|
287
|
+
return new StorageCacheAdapter(storageType);
|
|
288
|
+
}
|
|
289
|
+
catch {
|
|
290
|
+
// Storage not available, fall back to memory
|
|
291
|
+
console.warn('Browser storage not available, falling back to memory cache');
|
|
292
|
+
return new MemoryCacheAdapter();
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
// Node.js environment - use memory adapter
|
|
296
|
+
return new MemoryCacheAdapter();
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=CacheAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheAdapter.js","sourceRoot":"","sources":["../../../src/core/api/CacheAdapter.ts"],"names":[],"mappings":"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"}
|