@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.
Files changed (164) hide show
  1. package/README.md +295 -0
  2. package/dist/browser.js +22739 -0
  3. package/dist/core/AiAgent.d.ts +1126 -0
  4. package/dist/core/AiAgent.d.ts.map +1 -0
  5. package/dist/core/AiAgent.js +2037 -0
  6. package/dist/core/AiAgent.js.map +1 -0
  7. package/dist/core/api/ApiHelper.d.ts +433 -0
  8. package/dist/core/api/ApiHelper.d.ts.map +1 -0
  9. package/dist/core/api/ApiHelper.js +689 -0
  10. package/dist/core/api/ApiHelper.js.map +1 -0
  11. package/dist/core/api/CacheAdapter.d.ts +295 -0
  12. package/dist/core/api/CacheAdapter.d.ts.map +1 -0
  13. package/dist/core/api/CacheAdapter.js +298 -0
  14. package/dist/core/api/CacheAdapter.js.map +1 -0
  15. package/dist/core/auth/AnonymousAuthStrategy.d.ts +87 -0
  16. package/dist/core/auth/AnonymousAuthStrategy.d.ts.map +1 -0
  17. package/dist/core/auth/AnonymousAuthStrategy.js +257 -0
  18. package/dist/core/auth/AnonymousAuthStrategy.js.map +1 -0
  19. package/dist/core/auth/AuthProvider.d.ts +13 -0
  20. package/dist/core/auth/AuthProvider.d.ts.map +1 -0
  21. package/dist/core/auth/AuthProvider.js +2 -0
  22. package/dist/core/auth/AuthProvider.js.map +1 -0
  23. package/dist/core/auth/AuthStrategy.d.ts +74 -0
  24. package/dist/core/auth/AuthStrategy.d.ts.map +1 -0
  25. package/dist/core/auth/AuthStrategy.js +2 -0
  26. package/dist/core/auth/AuthStrategy.js.map +1 -0
  27. package/dist/core/auth/AuthenticationService.d.ts +226 -0
  28. package/dist/core/auth/AuthenticationService.d.ts.map +1 -0
  29. package/dist/core/auth/AuthenticationService.js +344 -0
  30. package/dist/core/auth/AuthenticationService.js.map +1 -0
  31. package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts +62 -0
  32. package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts.map +1 -0
  33. package/dist/core/auth/ClientCredentialsAuthStrategy.js +78 -0
  34. package/dist/core/auth/ClientCredentialsAuthStrategy.js.map +1 -0
  35. package/dist/core/auth/PKCEAuthStrategy.d.ts +136 -0
  36. package/dist/core/auth/PKCEAuthStrategy.d.ts.map +1 -0
  37. package/dist/core/auth/PKCEAuthStrategy.js +409 -0
  38. package/dist/core/auth/PKCEAuthStrategy.js.map +1 -0
  39. package/dist/core/auth/PreAuthStrategy.d.ts +101 -0
  40. package/dist/core/auth/PreAuthStrategy.d.ts.map +1 -0
  41. package/dist/core/auth/PreAuthStrategy.js +216 -0
  42. package/dist/core/auth/PreAuthStrategy.js.map +1 -0
  43. package/dist/core/auth/msal-browser.js +19683 -0
  44. package/dist/core/auth/msal-loader.d.ts +14 -0
  45. package/dist/core/auth/msal-loader.d.ts.map +1 -0
  46. package/dist/core/auth/msal-loader.js +43 -0
  47. package/dist/core/auth/msal-loader.js.map +1 -0
  48. package/dist/core/connection/Connection.d.ts +168 -0
  49. package/dist/core/connection/Connection.d.ts.map +1 -0
  50. package/dist/core/connection/Connection.js +290 -0
  51. package/dist/core/connection/Connection.js.map +1 -0
  52. package/dist/core/connection/ConnectionState.d.ts +11 -0
  53. package/dist/core/connection/ConnectionState.d.ts.map +1 -0
  54. package/dist/core/connection/ConnectionState.js +12 -0
  55. package/dist/core/connection/ConnectionState.js.map +1 -0
  56. package/dist/core/connection/Transport.d.ts +98 -0
  57. package/dist/core/connection/Transport.d.ts.map +1 -0
  58. package/dist/core/connection/Transport.js +27 -0
  59. package/dist/core/connection/Transport.js.map +1 -0
  60. package/dist/core/connection/WebSocketTransport.d.ts +65 -0
  61. package/dist/core/connection/WebSocketTransport.d.ts.map +1 -0
  62. package/dist/core/connection/WebSocketTransport.js +177 -0
  63. package/dist/core/connection/WebSocketTransport.js.map +1 -0
  64. package/dist/core/errors/SDKError.d.ts +27 -0
  65. package/dist/core/errors/SDKError.d.ts.map +1 -0
  66. package/dist/core/errors/SDKError.js +43 -0
  67. package/dist/core/errors/SDKError.js.map +1 -0
  68. package/dist/core/events/EventEmitter.d.ts +120 -0
  69. package/dist/core/events/EventEmitter.d.ts.map +1 -0
  70. package/dist/core/events/EventEmitter.js +183 -0
  71. package/dist/core/events/EventEmitter.js.map +1 -0
  72. package/dist/core/logging/LogLevel.d.ts +33 -0
  73. package/dist/core/logging/LogLevel.d.ts.map +1 -0
  74. package/dist/core/logging/LogLevel.js +40 -0
  75. package/dist/core/logging/LogLevel.js.map +1 -0
  76. package/dist/core/logging/Logger.d.ts +120 -0
  77. package/dist/core/logging/Logger.d.ts.map +1 -0
  78. package/dist/core/logging/Logger.js +204 -0
  79. package/dist/core/logging/Logger.js.map +1 -0
  80. package/dist/core/logging/globalLogger.d.ts +8 -0
  81. package/dist/core/logging/globalLogger.d.ts.map +1 -0
  82. package/dist/core/logging/globalLogger.js +12 -0
  83. package/dist/core/logging/globalLogger.js.map +1 -0
  84. package/dist/core/logging/types.d.ts +45 -0
  85. package/dist/core/logging/types.d.ts.map +1 -0
  86. package/dist/core/logging/types.js +2 -0
  87. package/dist/core/logging/types.js.map +1 -0
  88. package/dist/core/message/BaseMessageHandler.d.ts +208 -0
  89. package/dist/core/message/BaseMessageHandler.d.ts.map +1 -0
  90. package/dist/core/message/BaseMessageHandler.js +155 -0
  91. package/dist/core/message/BaseMessageHandler.js.map +1 -0
  92. package/dist/core/message/Message.d.ts +69 -0
  93. package/dist/core/message/Message.d.ts.map +1 -0
  94. package/dist/core/message/Message.js +131 -0
  95. package/dist/core/message/Message.js.map +1 -0
  96. package/dist/core/message/MessageProcessor.d.ts +51 -0
  97. package/dist/core/message/MessageProcessor.d.ts.map +1 -0
  98. package/dist/core/message/MessageProcessor.js +123 -0
  99. package/dist/core/message/MessageProcessor.js.map +1 -0
  100. package/dist/core/message/MessageTypes.d.ts +123 -0
  101. package/dist/core/message/MessageTypes.d.ts.map +1 -0
  102. package/dist/core/message/MessageTypes.js +106 -0
  103. package/dist/core/message/MessageTypes.js.map +1 -0
  104. package/dist/core/message/Transcript.d.ts +373 -0
  105. package/dist/core/message/Transcript.d.ts.map +1 -0
  106. package/dist/core/message/Transcript.js +355 -0
  107. package/dist/core/message/Transcript.js.map +1 -0
  108. package/dist/core/message/handlers/AgentMessageHandler.d.ts +26 -0
  109. package/dist/core/message/handlers/AgentMessageHandler.d.ts.map +1 -0
  110. package/dist/core/message/handlers/AgentMessageHandler.js +130 -0
  111. package/dist/core/message/handlers/AgentMessageHandler.js.map +1 -0
  112. package/dist/core/message/handlers/ChatHistoryHandler.d.ts +12 -0
  113. package/dist/core/message/handlers/ChatHistoryHandler.d.ts.map +1 -0
  114. package/dist/core/message/handlers/ChatHistoryHandler.js +49 -0
  115. package/dist/core/message/handlers/ChatHistoryHandler.js.map +1 -0
  116. package/dist/core/message/handlers/ErrorMessageHandler.d.ts +12 -0
  117. package/dist/core/message/handlers/ErrorMessageHandler.d.ts.map +1 -0
  118. package/dist/core/message/handlers/ErrorMessageHandler.js +49 -0
  119. package/dist/core/message/handlers/ErrorMessageHandler.js.map +1 -0
  120. package/dist/core/message/handlers/HeartbeatHandler.d.ts +12 -0
  121. package/dist/core/message/handlers/HeartbeatHandler.d.ts.map +1 -0
  122. package/dist/core/message/handlers/HeartbeatHandler.js +46 -0
  123. package/dist/core/message/handlers/HeartbeatHandler.js.map +1 -0
  124. package/dist/core/message/handlers/TokenRefreshHandler.d.ts +30 -0
  125. package/dist/core/message/handlers/TokenRefreshHandler.d.ts.map +1 -0
  126. package/dist/core/message/handlers/TokenRefreshHandler.js +84 -0
  127. package/dist/core/message/handlers/TokenRefreshHandler.js.map +1 -0
  128. package/dist/core/message/types.d.ts +107 -0
  129. package/dist/core/message/types.d.ts.map +1 -0
  130. package/dist/core/message/types.js +30 -0
  131. package/dist/core/message/types.js.map +1 -0
  132. package/dist/core/platform/HookContract.d.ts +112 -0
  133. package/dist/core/platform/HookContract.d.ts.map +1 -0
  134. package/dist/core/platform/HookContract.js +13 -0
  135. package/dist/core/platform/HookContract.js.map +1 -0
  136. package/dist/core/platform/PlatformComponentService.d.ts +40 -0
  137. package/dist/core/platform/PlatformComponentService.d.ts.map +1 -0
  138. package/dist/core/platform/PlatformComponentService.js +12 -0
  139. package/dist/core/platform/PlatformComponentService.js.map +1 -0
  140. package/dist/core/platform/PlatformScriptLoader.d.ts +41 -0
  141. package/dist/core/platform/PlatformScriptLoader.d.ts.map +1 -0
  142. package/dist/core/platform/PlatformScriptLoader.js +110 -0
  143. package/dist/core/platform/PlatformScriptLoader.js.map +1 -0
  144. package/dist/core/polyfills.d.ts +16 -0
  145. package/dist/core/polyfills.d.ts.map +1 -0
  146. package/dist/core/polyfills.js +168 -0
  147. package/dist/core/polyfills.js.map +1 -0
  148. package/dist/core/portal-initializer/PortalInitializer.d.ts +234 -0
  149. package/dist/core/portal-initializer/PortalInitializer.d.ts.map +1 -0
  150. package/dist/core/portal-initializer/PortalInitializer.js +636 -0
  151. package/dist/core/portal-initializer/PortalInitializer.js.map +1 -0
  152. package/dist/core/queue/MessageQueue.d.ts +277 -0
  153. package/dist/core/queue/MessageQueue.d.ts.map +1 -0
  154. package/dist/core/queue/MessageQueue.js +291 -0
  155. package/dist/core/queue/MessageQueue.js.map +1 -0
  156. package/dist/core/types/PortalTypes.d.ts +51 -0
  157. package/dist/core/types/PortalTypes.d.ts.map +1 -0
  158. package/dist/core/types/PortalTypes.js +8 -0
  159. package/dist/core/types/PortalTypes.js.map +1 -0
  160. package/dist/index.d.ts +91 -0
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +82 -0
  163. package/dist/index.js.map +1 -0
  164. 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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AAsGH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,kBAAkB;IAA/B;QACY,UAAK,GAAqC,IAAI,GAAG,EAAE,CAAC;IAqChE,CAAC;IAnCG,GAAG,CAAI,GAAW;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAsB,CAAC;IAClC,CAAC;IAED,GAAG,CAAI,GAAW,EAAE,KAAoB;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,GAAW;QACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAe;QACjB,IAAI,MAAM,EAAE,CAAC;YACT,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACL,CAAC;IAED,IAAI,CAAC,MAAe;QAChB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,mBAAmB;IAG5B;;;;OAIG;IACH,YAAY,cAAmC,SAAS;QACpD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACX,oDAAoD,CACvD,CAAC;QACN,CAAC;QACD,IAAI,CAAC,OAAO;YACR,WAAW,KAAK,OAAO;gBACnB,CAAC,CAAC,MAAM,CAAC,YAAY;gBACrB,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IACpC,CAAC;IAED,GAAG,CAAI,GAAW;QACd,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,GAAG,CAAI,GAAW,EAAE,KAAoB;QACpC,IAAI,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACL,mDAAmD;YACnD,OAAO,CAAC,IAAI,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAW;QACd,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAe;QACjB,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC;YACD,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;IAED,IAAI,CAAC,MAAe;QAChB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,GAAG,EAAE,CAAC;gBACN,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAcD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,kBAAkB,CAC9B,cAAgC,SAAS;IAEzC,wDAAwD;IACxD,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED,0CAA0C;IAC1C,MAAM,SAAS,GACX,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,WAAW,CAAC;IAE3E,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,CAAC;YACD,2CAA2C;YAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC;YACjC,MAAM,OAAO,GACT,WAAW,KAAK,OAAO;gBACnB,CAAC,CAAC,MAAM,CAAC,YAAY;gBACrB,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACjC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACL,6CAA6C;YAC7C,OAAO,CAAC,IAAI,CACR,6DAA6D,CAChE,CAAC;YACF,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACpC,CAAC;IACL,CAAC;IAED,2CAA2C;IAC3C,OAAO,IAAI,kBAAkB,EAAE,CAAC;AACpC,CAAC"}