@olbrain/js-sdk 1.0.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 +488 -0
- package/dist/chunk-QEZYOGUI.mjs +29 -0
- package/dist/chunk-QEZYOGUI.mjs.map +1 -0
- package/dist/eventsource-TFSNWQMS.mjs +382 -0
- package/dist/eventsource-TFSNWQMS.mjs.map +1 -0
- package/dist/index.d.mts +250 -0
- package/dist/index.d.ts +250 -0
- package/dist/index.global.js +979 -0
- package/dist/index.global.js.map +1 -0
- package/dist/index.js +1001 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +573 -0
- package/dist/index.mjs.map +1 -0
- package/dist/widget.d.ts +345 -0
- package/dist/widget.widget.global.js +1747 -0
- package/dist/widget.widget.global.js.map +1 -0
- package/package.json +67 -0
package/dist/widget.d.ts
ADDED
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Types for Olbrain JavaScript SDK
|
|
3
|
+
* Matches Python SDK data models for consistency
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for AgentClient
|
|
7
|
+
*/
|
|
8
|
+
interface AgentConfig {
|
|
9
|
+
agentId: string;
|
|
10
|
+
apiKey: string;
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Options for creating a new session
|
|
15
|
+
*/
|
|
16
|
+
interface CreateSessionOptions {
|
|
17
|
+
title?: string;
|
|
18
|
+
userId?: string;
|
|
19
|
+
metadata?: Record<string, any>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Options for updating a session
|
|
23
|
+
*/
|
|
24
|
+
interface SessionUpdates {
|
|
25
|
+
title?: string;
|
|
26
|
+
metadata?: Record<string, any>;
|
|
27
|
+
status?: 'active' | 'archived';
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Options for sending messages
|
|
31
|
+
*/
|
|
32
|
+
interface SendOptions {
|
|
33
|
+
metadata?: Record<string, any>;
|
|
34
|
+
timeout?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Token usage statistics
|
|
38
|
+
*/
|
|
39
|
+
interface TokenUsage {
|
|
40
|
+
promptTokens: number;
|
|
41
|
+
completionTokens: number;
|
|
42
|
+
totalTokens: number;
|
|
43
|
+
cost?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Session information
|
|
47
|
+
*/
|
|
48
|
+
interface SessionInfo {
|
|
49
|
+
sessionId: string;
|
|
50
|
+
title: string;
|
|
51
|
+
status: 'active' | 'archived';
|
|
52
|
+
createdAt: string;
|
|
53
|
+
messageCount: number;
|
|
54
|
+
userId?: string;
|
|
55
|
+
metadata: Record<string, any>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Session statistics
|
|
59
|
+
*/
|
|
60
|
+
interface SessionStats {
|
|
61
|
+
sessionId: string;
|
|
62
|
+
messageCount: number;
|
|
63
|
+
totalTokens: number;
|
|
64
|
+
createdAt: string;
|
|
65
|
+
lastMessageAt?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Chat response from the agent
|
|
69
|
+
*/
|
|
70
|
+
interface ChatResponse {
|
|
71
|
+
text: string;
|
|
72
|
+
sessionId: string;
|
|
73
|
+
success: boolean;
|
|
74
|
+
tokenUsage?: TokenUsage;
|
|
75
|
+
modelUsed?: string;
|
|
76
|
+
responseTimeMs?: number;
|
|
77
|
+
error?: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Message in a conversation
|
|
81
|
+
*/
|
|
82
|
+
interface Message {
|
|
83
|
+
role: 'user' | 'assistant';
|
|
84
|
+
content: string;
|
|
85
|
+
timestamp: string;
|
|
86
|
+
metadata?: Record<string, any>;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Callback for message events
|
|
90
|
+
*/
|
|
91
|
+
type MessageCallback = (message: Message) => void;
|
|
92
|
+
/**
|
|
93
|
+
* Callback for error events
|
|
94
|
+
*/
|
|
95
|
+
type ErrorCallback = (error: Error) => void;
|
|
96
|
+
/**
|
|
97
|
+
* Configuration for streaming
|
|
98
|
+
*/
|
|
99
|
+
interface StreamConfig {
|
|
100
|
+
sessionId: string;
|
|
101
|
+
apiKey: string;
|
|
102
|
+
agentId: string;
|
|
103
|
+
baseUrl: string;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Widget configuration
|
|
107
|
+
*/
|
|
108
|
+
interface WidgetConfig {
|
|
109
|
+
agentId: string;
|
|
110
|
+
apiKey: string;
|
|
111
|
+
position?: 'bottom-right' | 'bottom-left' | 'custom';
|
|
112
|
+
theme?: 'light' | 'dark' | 'auto';
|
|
113
|
+
primaryColor?: string;
|
|
114
|
+
title?: string;
|
|
115
|
+
greeting?: string;
|
|
116
|
+
placeholder?: string;
|
|
117
|
+
autoOpen?: boolean;
|
|
118
|
+
persistSession?: boolean;
|
|
119
|
+
target?: string | HTMLElement;
|
|
120
|
+
onMessage?: MessageCallback;
|
|
121
|
+
baseUrl?: string;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Main AgentClient class for communicating with Olbrain agents
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Main API client for interacting with Olbrain agents
|
|
130
|
+
*/
|
|
131
|
+
declare class AgentClient {
|
|
132
|
+
private config;
|
|
133
|
+
private streamManager;
|
|
134
|
+
constructor(config: AgentConfig);
|
|
135
|
+
/**
|
|
136
|
+
* Create a new session
|
|
137
|
+
*/
|
|
138
|
+
createSession(options?: CreateSessionOptions): Promise<string>;
|
|
139
|
+
/**
|
|
140
|
+
* Get session information
|
|
141
|
+
* @note May not be implemented on all backends
|
|
142
|
+
*/
|
|
143
|
+
getSession(sessionId: string): Promise<SessionInfo>;
|
|
144
|
+
/**
|
|
145
|
+
* Update session information
|
|
146
|
+
* @note May not be implemented on all backends
|
|
147
|
+
*/
|
|
148
|
+
updateSession(sessionId: string, updates: SessionUpdates): Promise<SessionInfo>;
|
|
149
|
+
/**
|
|
150
|
+
* Delete a session
|
|
151
|
+
* @note May not be implemented on all backends
|
|
152
|
+
*/
|
|
153
|
+
deleteSession(sessionId: string): Promise<void>;
|
|
154
|
+
/**
|
|
155
|
+
* Get messages from a session
|
|
156
|
+
* @note May not be implemented on all backends
|
|
157
|
+
*/
|
|
158
|
+
getMessages(sessionId: string, limit?: number): Promise<Message[]>;
|
|
159
|
+
/**
|
|
160
|
+
* Get session statistics
|
|
161
|
+
* @note May not be implemented on all backends
|
|
162
|
+
*/
|
|
163
|
+
getSessionStats(sessionId: string): Promise<SessionStats>;
|
|
164
|
+
/**
|
|
165
|
+
* Send a message and wait for response
|
|
166
|
+
*/
|
|
167
|
+
sendAndWait(sessionId: string, message: string, options?: SendOptions): Promise<ChatResponse>;
|
|
168
|
+
/**
|
|
169
|
+
* Send a message (fire and forget)
|
|
170
|
+
*/
|
|
171
|
+
send(sessionId: string, message: string): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Start listening for messages via SSE streaming
|
|
174
|
+
*/
|
|
175
|
+
listen(sessionId: string, onMessage: MessageCallback, onError?: ErrorCallback): Promise<void>;
|
|
176
|
+
/**
|
|
177
|
+
* Stop listening for messages
|
|
178
|
+
*/
|
|
179
|
+
stopListening(sessionId: string): void;
|
|
180
|
+
/**
|
|
181
|
+
* Close client and clean up resources
|
|
182
|
+
*/
|
|
183
|
+
close(): void;
|
|
184
|
+
/**
|
|
185
|
+
* Helper method to make HTTP requests
|
|
186
|
+
*/
|
|
187
|
+
private _request;
|
|
188
|
+
/**
|
|
189
|
+
* Helper to parse session info from response
|
|
190
|
+
*/
|
|
191
|
+
private _parseSessionInfo;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Error classes for Olbrain SDK
|
|
196
|
+
*/
|
|
197
|
+
/**
|
|
198
|
+
* Base error class for all Olbrain errors
|
|
199
|
+
*/
|
|
200
|
+
declare class OlbrainError extends Error {
|
|
201
|
+
constructor(message: string);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Raised when authentication fails (invalid API key, missing auth header, etc.)
|
|
205
|
+
*/
|
|
206
|
+
declare class AuthenticationError extends OlbrainError {
|
|
207
|
+
constructor(message?: string);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Raised when a session is not found
|
|
211
|
+
*/
|
|
212
|
+
declare class SessionNotFoundError extends OlbrainError {
|
|
213
|
+
sessionId: string;
|
|
214
|
+
constructor(sessionId: string);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Raised when rate limit is exceeded
|
|
218
|
+
*/
|
|
219
|
+
declare class RateLimitError extends OlbrainError {
|
|
220
|
+
retryAfter?: number;
|
|
221
|
+
constructor(message?: string, retryAfter?: number);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Raised when a network error occurs
|
|
225
|
+
*/
|
|
226
|
+
declare class NetworkError extends OlbrainError {
|
|
227
|
+
statusCode?: number;
|
|
228
|
+
constructor(message?: string, statusCode?: number);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Raised when input validation fails
|
|
232
|
+
*/
|
|
233
|
+
declare class ValidationError extends OlbrainError {
|
|
234
|
+
constructor(message?: string);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Raised when streaming connection fails
|
|
238
|
+
*/
|
|
239
|
+
declare class StreamingError extends OlbrainError {
|
|
240
|
+
constructor(message?: string);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Olbrain JavaScript SDK
|
|
245
|
+
* Main entry point for core API exports
|
|
246
|
+
*/
|
|
247
|
+
|
|
248
|
+
declare const VERSION = "1.0.0";
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* ChatWidget - Ready-to-use chat widget component
|
|
252
|
+
* Combines AgentClient with UI for one-line integration
|
|
253
|
+
*/
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Ready-to-use chat widget for websites
|
|
257
|
+
*/
|
|
258
|
+
declare class ChatWidget {
|
|
259
|
+
private config;
|
|
260
|
+
private client;
|
|
261
|
+
private sessionId;
|
|
262
|
+
private container;
|
|
263
|
+
private chatWidget;
|
|
264
|
+
private toggleBtn;
|
|
265
|
+
private messagesContainer;
|
|
266
|
+
private messageInput;
|
|
267
|
+
private sendBtn;
|
|
268
|
+
private isOpen;
|
|
269
|
+
private isWaitingForResponse;
|
|
270
|
+
constructor(config: WidgetConfig);
|
|
271
|
+
/**
|
|
272
|
+
* Mount widget to the page
|
|
273
|
+
*/
|
|
274
|
+
mount(target?: HTMLElement | string): Promise<void>;
|
|
275
|
+
/**
|
|
276
|
+
* Unmount widget from the page
|
|
277
|
+
*/
|
|
278
|
+
unmount(): void;
|
|
279
|
+
/**
|
|
280
|
+
* Open chat window
|
|
281
|
+
*/
|
|
282
|
+
open(): void;
|
|
283
|
+
/**
|
|
284
|
+
* Close chat window
|
|
285
|
+
*/
|
|
286
|
+
close(): void;
|
|
287
|
+
/**
|
|
288
|
+
* Send a message
|
|
289
|
+
*/
|
|
290
|
+
sendMessage(text: string): Promise<void>;
|
|
291
|
+
/**
|
|
292
|
+
* Normalize configuration with defaults
|
|
293
|
+
*/
|
|
294
|
+
private _normalizeConfig;
|
|
295
|
+
/**
|
|
296
|
+
* Inject widget styles into the page
|
|
297
|
+
*/
|
|
298
|
+
private _injectStyles;
|
|
299
|
+
/**
|
|
300
|
+
* Render widget HTML
|
|
301
|
+
*/
|
|
302
|
+
private _render;
|
|
303
|
+
/**
|
|
304
|
+
* Attach event listeners
|
|
305
|
+
*/
|
|
306
|
+
private _attachEventListeners;
|
|
307
|
+
/**
|
|
308
|
+
* Initialize session (load or create)
|
|
309
|
+
*/
|
|
310
|
+
private _initializeSession;
|
|
311
|
+
/**
|
|
312
|
+
* Show greeting message
|
|
313
|
+
*/
|
|
314
|
+
private _showGreeting;
|
|
315
|
+
/**
|
|
316
|
+
* Add message to UI
|
|
317
|
+
*/
|
|
318
|
+
private _addMessageToUI;
|
|
319
|
+
/**
|
|
320
|
+
* Show typing indicator
|
|
321
|
+
*/
|
|
322
|
+
private _showTypingIndicator;
|
|
323
|
+
/**
|
|
324
|
+
* Remove typing indicator
|
|
325
|
+
*/
|
|
326
|
+
private _removeTypingIndicator;
|
|
327
|
+
/**
|
|
328
|
+
* Show error message
|
|
329
|
+
*/
|
|
330
|
+
private _showError;
|
|
331
|
+
/**
|
|
332
|
+
* Scroll to bottom of messages
|
|
333
|
+
*/
|
|
334
|
+
private _scrollToBottom;
|
|
335
|
+
/**
|
|
336
|
+
* Store session ID in localStorage
|
|
337
|
+
*/
|
|
338
|
+
private _storeSessionId;
|
|
339
|
+
/**
|
|
340
|
+
* Get stored session ID from localStorage
|
|
341
|
+
*/
|
|
342
|
+
private _getStoredSessionId;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
export { AgentClient, type AgentConfig, AuthenticationError, type ChatResponse, ChatWidget, type CreateSessionOptions, type ErrorCallback, type Message, type MessageCallback, NetworkError, OlbrainError, RateLimitError, type SendOptions, type SessionInfo, SessionNotFoundError, type SessionStats, type SessionUpdates, type StreamConfig, StreamingError, type TokenUsage, VERSION, ValidationError, type WidgetConfig };
|