@chainlit/react-client 0.0.602 → 0.1.2
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 +13 -10
- package/dist/index.d.mts +157 -124
- package/dist/index.d.ts +157 -124
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as recoil from 'recoil';
|
|
|
2
2
|
import { Socket } from 'socket.io-client';
|
|
3
3
|
export { Socket } from 'socket.io-client';
|
|
4
4
|
import * as lodash from 'lodash';
|
|
5
|
+
import * as react from 'react';
|
|
5
6
|
import * as swr__internal from 'swr/_internal';
|
|
6
7
|
import { SWRConfiguration } from 'swr';
|
|
7
8
|
|
|
@@ -21,7 +22,7 @@ interface ICallFn {
|
|
|
21
22
|
args: Record<string, any>;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
type IElement = IImageElement | ITextElement | IPdfElement |
|
|
25
|
+
type IElement = IImageElement | ITextElement | IPdfElement | ITasklistElement | IAudioElement | IVideoElement | IFileElement | IPlotlyElement;
|
|
25
26
|
type IMessageElement = IImageElement | ITextElement | IPdfElement | IAudioElement | IVideoElement | IFileElement | IPlotlyElement;
|
|
26
27
|
type ElementType = IElement['type'];
|
|
27
28
|
type IElementSize = 'small' | 'medium' | 'large';
|
|
@@ -41,9 +42,6 @@ interface TMessageElement<T> extends TElement<T> {
|
|
|
41
42
|
interface IImageElement extends TMessageElement<'image'> {
|
|
42
43
|
size?: IElementSize;
|
|
43
44
|
}
|
|
44
|
-
interface IAvatarElement extends TElement<'avatar'> {
|
|
45
|
-
name: string;
|
|
46
|
-
}
|
|
47
45
|
interface ITextElement extends TMessageElement<'text'> {
|
|
48
46
|
language?: string;
|
|
49
47
|
}
|
|
@@ -51,9 +49,11 @@ interface IPdfElement extends TMessageElement<'pdf'> {
|
|
|
51
49
|
page?: number;
|
|
52
50
|
}
|
|
53
51
|
interface IAudioElement extends TMessageElement<'audio'> {
|
|
52
|
+
autoPlay?: boolean;
|
|
54
53
|
}
|
|
55
54
|
interface IVideoElement extends TMessageElement<'video'> {
|
|
56
55
|
size?: IElementSize;
|
|
56
|
+
playerConfig?: object;
|
|
57
57
|
}
|
|
58
58
|
interface IFileElement extends TMessageElement<'file'> {
|
|
59
59
|
type: 'file';
|
|
@@ -66,56 +66,11 @@ interface ITasklistElement extends TElement<'tasklist'> {
|
|
|
66
66
|
interface IFeedback {
|
|
67
67
|
id?: string;
|
|
68
68
|
forId?: string;
|
|
69
|
+
threadId?: string;
|
|
69
70
|
comment?: string;
|
|
70
71
|
value: number;
|
|
71
72
|
}
|
|
72
73
|
|
|
73
|
-
type GenerationMessageRole = 'system' | 'assistant' | 'user' | 'function' | 'tool';
|
|
74
|
-
type ILLMSettings = Record<string, string | string[] | number | boolean>;
|
|
75
|
-
interface IGenerationMessage {
|
|
76
|
-
content: string;
|
|
77
|
-
role: GenerationMessageRole;
|
|
78
|
-
name?: string;
|
|
79
|
-
tool_calls?: any[];
|
|
80
|
-
}
|
|
81
|
-
interface IFunction {
|
|
82
|
-
name: string;
|
|
83
|
-
description: string;
|
|
84
|
-
parameters: {
|
|
85
|
-
required: string[];
|
|
86
|
-
properties: Record<string, {
|
|
87
|
-
title: string;
|
|
88
|
-
type: string;
|
|
89
|
-
}>;
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
interface ITool {
|
|
93
|
-
type: string;
|
|
94
|
-
function: IFunction;
|
|
95
|
-
}
|
|
96
|
-
interface IBaseGeneration {
|
|
97
|
-
provider: string;
|
|
98
|
-
model?: string;
|
|
99
|
-
error?: string;
|
|
100
|
-
id?: string;
|
|
101
|
-
variables?: Record<string, string>;
|
|
102
|
-
tags?: string[];
|
|
103
|
-
settings?: ILLMSettings;
|
|
104
|
-
tools?: ITool[];
|
|
105
|
-
tokenCount?: number;
|
|
106
|
-
}
|
|
107
|
-
interface ICompletionGeneration extends IBaseGeneration {
|
|
108
|
-
type: 'COMPLETION';
|
|
109
|
-
prompt?: string;
|
|
110
|
-
completion?: string;
|
|
111
|
-
}
|
|
112
|
-
interface IChatGeneration extends IBaseGeneration {
|
|
113
|
-
type: 'CHAT';
|
|
114
|
-
messages?: IGenerationMessage[];
|
|
115
|
-
messageCompletion?: IGenerationMessage;
|
|
116
|
-
}
|
|
117
|
-
type IGeneration = ICompletionGeneration | IChatGeneration;
|
|
118
|
-
|
|
119
74
|
type StepType = 'assistant_message' | 'user_message' | 'system_message' | 'run' | 'tool' | 'llm' | 'embedding' | 'retrieval' | 'rerank' | 'undefined';
|
|
120
75
|
interface IStep {
|
|
121
76
|
id: string;
|
|
@@ -135,7 +90,6 @@ interface IStep {
|
|
|
135
90
|
feedback?: IFeedback;
|
|
136
91
|
language?: string;
|
|
137
92
|
streaming?: boolean;
|
|
138
|
-
generation?: IGeneration;
|
|
139
93
|
steps?: IStep[];
|
|
140
94
|
indent?: number;
|
|
141
95
|
}
|
|
@@ -159,7 +113,7 @@ interface IAsk {
|
|
|
159
113
|
} & FileSpec & ActionSpec;
|
|
160
114
|
}
|
|
161
115
|
|
|
162
|
-
type AuthProvider = 'credentials' | 'header' | 'github' | 'google' | 'azure-ad';
|
|
116
|
+
type AuthProvider = 'credentials' | 'header' | 'github' | 'google' | 'azure-ad' | 'azure-ad-hybrid';
|
|
163
117
|
interface IUserMetadata extends Record<string, any> {
|
|
164
118
|
tags?: string[];
|
|
165
119
|
image?: string;
|
|
@@ -195,15 +149,69 @@ type ThreadHistory = {
|
|
|
195
149
|
pageInfo?: IPageInfo;
|
|
196
150
|
};
|
|
197
151
|
|
|
152
|
+
interface IStarter {
|
|
153
|
+
label: string;
|
|
154
|
+
message: string;
|
|
155
|
+
icon?: string;
|
|
156
|
+
}
|
|
157
|
+
interface ChatProfile {
|
|
158
|
+
default: boolean;
|
|
159
|
+
icon?: string;
|
|
160
|
+
name: string;
|
|
161
|
+
markdown_description: string;
|
|
162
|
+
starters?: IStarter[];
|
|
163
|
+
}
|
|
164
|
+
interface IAudioConfig {
|
|
165
|
+
enabled: boolean;
|
|
166
|
+
min_decibels: number;
|
|
167
|
+
initial_silence_timeout: number;
|
|
168
|
+
silence_timeout: number;
|
|
169
|
+
chunk_duration: number;
|
|
170
|
+
max_duration: number;
|
|
171
|
+
}
|
|
172
|
+
interface IChainlitConfig {
|
|
173
|
+
markdown?: string;
|
|
174
|
+
ui: {
|
|
175
|
+
name: string;
|
|
176
|
+
description?: string;
|
|
177
|
+
default_collapse_content?: boolean;
|
|
178
|
+
github?: string;
|
|
179
|
+
theme: any;
|
|
180
|
+
custom_css?: string;
|
|
181
|
+
custom_js?: string;
|
|
182
|
+
custom_font?: string;
|
|
183
|
+
custom_meta_image_url?: string;
|
|
184
|
+
};
|
|
185
|
+
features: {
|
|
186
|
+
spontaneous_file_upload?: {
|
|
187
|
+
enabled?: boolean;
|
|
188
|
+
max_size_mb?: number;
|
|
189
|
+
max_files?: number;
|
|
190
|
+
accept?: string[] | Record<string, string[]>;
|
|
191
|
+
};
|
|
192
|
+
audio: IAudioConfig;
|
|
193
|
+
unsafe_allow_html?: boolean;
|
|
194
|
+
latex?: boolean;
|
|
195
|
+
};
|
|
196
|
+
debugUrl?: string;
|
|
197
|
+
userEnv: string[];
|
|
198
|
+
dataPersistence: boolean;
|
|
199
|
+
threadResumable: boolean;
|
|
200
|
+
chatProfiles: ChatProfile[];
|
|
201
|
+
starters?: IStarter[];
|
|
202
|
+
translation: object;
|
|
203
|
+
}
|
|
204
|
+
|
|
198
205
|
interface IToken {
|
|
199
206
|
id: number | string;
|
|
200
207
|
token: string;
|
|
201
208
|
isSequence: boolean;
|
|
209
|
+
isInput: boolean;
|
|
202
210
|
}
|
|
203
211
|
declare const useChatData: () => {
|
|
204
212
|
actions: IAction[];
|
|
205
213
|
askUser: IAsk | undefined;
|
|
206
|
-
|
|
214
|
+
callFn: ICallFn | undefined;
|
|
207
215
|
chatSettingsDefaultValue: any;
|
|
208
216
|
chatSettingsInputs: any;
|
|
209
217
|
chatSettingsValue: any;
|
|
@@ -215,7 +223,93 @@ declare const useChatData: () => {
|
|
|
215
223
|
tasklists: ITasklistElement[];
|
|
216
224
|
};
|
|
217
225
|
|
|
218
|
-
|
|
226
|
+
type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
227
|
+
declare const useChatInteract: () => {
|
|
228
|
+
uploadFile: (file: File, onProgress: (progress: number) => void) => {
|
|
229
|
+
xhr: XMLHttpRequest;
|
|
230
|
+
promise: Promise<{
|
|
231
|
+
id: string;
|
|
232
|
+
}>;
|
|
233
|
+
};
|
|
234
|
+
callAction: (action: IAction) => Promise<{
|
|
235
|
+
id: string;
|
|
236
|
+
status: boolean;
|
|
237
|
+
response?: string | undefined;
|
|
238
|
+
}> | undefined;
|
|
239
|
+
clear: () => void;
|
|
240
|
+
replyMessage: (message: IStep) => void;
|
|
241
|
+
sendMessage: (message: PartialBy<IStep, 'createdAt' | 'id'>, fileReferences?: IFileRef[]) => void;
|
|
242
|
+
sendAudioChunk: (isStart: boolean, mimeType: string, elapsedTime: number, data: Blob) => void;
|
|
243
|
+
endAudioStream: (fileReferences?: IFileRef[]) => void;
|
|
244
|
+
stopTask: () => void;
|
|
245
|
+
setIdToResume: recoil.SetterOrUpdater<string | undefined>;
|
|
246
|
+
updateChatSettings: (values: object) => void;
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
declare const useChatMessages: () => {
|
|
250
|
+
threadId: string | undefined;
|
|
251
|
+
messages: IStep[];
|
|
252
|
+
firstInteraction: string | undefined;
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
interface ISession {
|
|
256
|
+
socket: Socket;
|
|
257
|
+
error?: boolean;
|
|
258
|
+
}
|
|
259
|
+
declare const threadIdToResumeState: recoil.RecoilState<string | undefined>;
|
|
260
|
+
declare const chatProfileState: recoil.RecoilState<string | undefined>;
|
|
261
|
+
declare const sessionIdState: recoil.RecoilState<string>;
|
|
262
|
+
declare const sessionState: recoil.RecoilState<ISession | undefined>;
|
|
263
|
+
declare const actionState: recoil.RecoilState<IAction[]>;
|
|
264
|
+
declare const messagesState: recoil.RecoilState<IStep[]>;
|
|
265
|
+
declare const tokenCountState: recoil.RecoilState<number>;
|
|
266
|
+
declare const loadingState: recoil.RecoilState<boolean>;
|
|
267
|
+
declare const askUserState: recoil.RecoilState<IAsk | undefined>;
|
|
268
|
+
declare const callFnState: recoil.RecoilState<ICallFn | undefined>;
|
|
269
|
+
declare const chatSettingsInputsState: recoil.RecoilState<any>;
|
|
270
|
+
declare const chatSettingsDefaultValueSelector: recoil.RecoilValueReadOnly<any>;
|
|
271
|
+
declare const chatSettingsValueState: recoil.RecoilState<any>;
|
|
272
|
+
declare const elementState: recoil.RecoilState<IMessageElement[]>;
|
|
273
|
+
declare const tasklistState: recoil.RecoilState<ITasklistElement[]>;
|
|
274
|
+
declare const firstUserInteraction: recoil.RecoilState<string | undefined>;
|
|
275
|
+
declare const accessTokenState: recoil.RecoilState<string | undefined>;
|
|
276
|
+
declare const userState: recoil.RecoilState<IUser | null>;
|
|
277
|
+
declare const configState: recoil.RecoilState<IChainlitConfig | undefined>;
|
|
278
|
+
declare const threadHistoryState: recoil.RecoilState<ThreadHistory | undefined>;
|
|
279
|
+
declare const sideViewState: recoil.RecoilState<IMessageElement | undefined>;
|
|
280
|
+
declare const currentThreadIdState: recoil.RecoilState<string | undefined>;
|
|
281
|
+
|
|
282
|
+
declare const useChatSession: () => {
|
|
283
|
+
connect: lodash.DebouncedFunc<({ userEnv, accessToken }: {
|
|
284
|
+
userEnv: Record<string, string>;
|
|
285
|
+
accessToken?: string | undefined;
|
|
286
|
+
}) => void>;
|
|
287
|
+
disconnect: () => void;
|
|
288
|
+
session: ISession | undefined;
|
|
289
|
+
sessionId: string;
|
|
290
|
+
chatProfile: string | undefined;
|
|
291
|
+
idToResume: string | undefined;
|
|
292
|
+
setChatProfile: recoil.SetterOrUpdater<string | undefined>;
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
declare const useAudio: (config?: IAudioConfig) => {
|
|
296
|
+
startRecording: (fileReferences?: IFileRef[]) => void;
|
|
297
|
+
stopRecording: () => void;
|
|
298
|
+
cancelRecording: () => void;
|
|
299
|
+
isRecording: boolean;
|
|
300
|
+
isSpeaking: boolean;
|
|
301
|
+
isRecordingFinished: boolean;
|
|
302
|
+
error: string | undefined;
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
declare const useConfig: (accessToken?: string) => {
|
|
306
|
+
config: IChainlitConfig | undefined;
|
|
307
|
+
error: Error | undefined;
|
|
308
|
+
isLoading: boolean;
|
|
309
|
+
language: string;
|
|
310
|
+
};
|
|
311
|
+
|
|
312
|
+
declare const useAuth: () => {
|
|
219
313
|
data: {
|
|
220
314
|
requireLogin: boolean;
|
|
221
315
|
passwordAuth: boolean;
|
|
@@ -244,7 +338,9 @@ declare const useAuth: (apiClient: ChainlitAPI) => {
|
|
|
244
338
|
};
|
|
245
339
|
|
|
246
340
|
declare const fetcher: (client: ChainlitAPI, endpoint: string, token?: string) => Promise<any>;
|
|
247
|
-
declare function useApi<T>(
|
|
341
|
+
declare function useApi<T>(path?: string | null, { token, ...swrConfig }?: SWRConfiguration & {
|
|
342
|
+
token?: string;
|
|
343
|
+
}): swr__internal.SWRResponse<T, Error, Partial<swr__internal.PublicConfiguration<T, Error, swr__internal.BareFetcher<T>>> | undefined>;
|
|
248
344
|
|
|
249
345
|
interface IThreadFilters {
|
|
250
346
|
search?: string;
|
|
@@ -266,10 +362,10 @@ declare class ClientError extends Error {
|
|
|
266
362
|
type Payload = FormData | any;
|
|
267
363
|
declare class APIBase {
|
|
268
364
|
httpEndpoint: string;
|
|
269
|
-
type: '
|
|
365
|
+
type: 'webapp' | 'copilot' | 'teams' | 'slack' | 'discord';
|
|
270
366
|
on401?: (() => void) | undefined;
|
|
271
367
|
onError?: ((error: ClientError) => void) | undefined;
|
|
272
|
-
constructor(httpEndpoint: string, type: '
|
|
368
|
+
constructor(httpEndpoint: string, type: 'webapp' | 'copilot' | 'teams' | 'slack' | 'discord', on401?: (() => void) | undefined, onError?: ((error: ClientError) => void) | undefined);
|
|
273
369
|
buildEndpoint(path: string): string;
|
|
274
370
|
checkToken(token: string): string;
|
|
275
371
|
fetch(method: string, path: string, token?: string, data?: Payload, signal?: AbortSignal): Promise<Response>;
|
|
@@ -283,7 +379,6 @@ declare class ChainlitAPI extends APIBase {
|
|
|
283
379
|
headerAuth(): Promise<any>;
|
|
284
380
|
passwordAuth(data: FormData): Promise<any>;
|
|
285
381
|
logout(): Promise<any>;
|
|
286
|
-
getGeneration(generation: IGeneration, userEnv: {} | undefined, controller: AbortController, accessToken?: string, tokenCb?: (done: boolean, token: string) => void): Promise<ReadableStream<any>>;
|
|
287
382
|
setFeedback(feedback: IFeedback, accessToken?: string): Promise<{
|
|
288
383
|
success: boolean;
|
|
289
384
|
feedbackId: string;
|
|
@@ -307,70 +402,8 @@ declare class ChainlitAPI extends APIBase {
|
|
|
307
402
|
getOAuthEndpoint(provider: string): string;
|
|
308
403
|
}
|
|
309
404
|
|
|
310
|
-
declare const
|
|
311
|
-
|
|
312
|
-
xhr: XMLHttpRequest;
|
|
313
|
-
promise: Promise<{
|
|
314
|
-
id: string;
|
|
315
|
-
}>;
|
|
316
|
-
};
|
|
317
|
-
callAction: (action: IAction) => Promise<{
|
|
318
|
-
id: string;
|
|
319
|
-
status: boolean;
|
|
320
|
-
response?: string | undefined;
|
|
321
|
-
}> | undefined;
|
|
322
|
-
clear: () => void;
|
|
323
|
-
replyMessage: (message: IStep) => void;
|
|
324
|
-
sendMessage: (message: IStep, fileReferences?: IFileRef[]) => void;
|
|
325
|
-
stopTask: () => void;
|
|
326
|
-
setIdToResume: recoil.SetterOrUpdater<string | undefined>;
|
|
327
|
-
updateChatSettings: (values: object) => void;
|
|
328
|
-
};
|
|
329
|
-
|
|
330
|
-
declare const useChatMessages: () => {
|
|
331
|
-
messages: IStep[];
|
|
332
|
-
firstInteraction: string | undefined;
|
|
333
|
-
};
|
|
334
|
-
|
|
335
|
-
interface ISession {
|
|
336
|
-
socket: Socket;
|
|
337
|
-
error?: boolean;
|
|
338
|
-
}
|
|
339
|
-
declare const threadIdToResumeState: recoil.RecoilState<string | undefined>;
|
|
340
|
-
declare const chatProfileState: recoil.RecoilState<string | undefined>;
|
|
341
|
-
declare const sessionIdState: recoil.RecoilState<string>;
|
|
342
|
-
declare const sessionState: recoil.RecoilState<ISession | undefined>;
|
|
343
|
-
declare const actionState: recoil.RecoilState<IAction[]>;
|
|
344
|
-
declare const messagesState: recoil.RecoilState<IStep[]>;
|
|
345
|
-
declare const tokenCountState: recoil.RecoilState<number>;
|
|
346
|
-
declare const loadingState: recoil.RecoilState<boolean>;
|
|
347
|
-
declare const askUserState: recoil.RecoilState<IAsk | undefined>;
|
|
348
|
-
declare const callFnState: recoil.RecoilState<ICallFn | undefined>;
|
|
349
|
-
declare const chatSettingsInputsState: recoil.RecoilState<any>;
|
|
350
|
-
declare const chatSettingsDefaultValueSelector: recoil.RecoilValueReadOnly<any>;
|
|
351
|
-
declare const chatSettingsValueState: recoil.RecoilState<any>;
|
|
352
|
-
declare const elementState: recoil.RecoilState<IMessageElement[]>;
|
|
353
|
-
declare const avatarState: recoil.RecoilState<IAvatarElement[]>;
|
|
354
|
-
declare const tasklistState: recoil.RecoilState<ITasklistElement[]>;
|
|
355
|
-
declare const firstUserInteraction: recoil.RecoilState<string | undefined>;
|
|
356
|
-
declare const accessTokenState: recoil.RecoilState<string | undefined>;
|
|
357
|
-
declare const userState: recoil.RecoilState<IUser | null>;
|
|
358
|
-
declare const threadHistoryState: recoil.RecoilState<ThreadHistory | undefined>;
|
|
359
|
-
declare const sideViewState: recoil.RecoilState<IMessageElement | undefined>;
|
|
360
|
-
|
|
361
|
-
declare const useChatSession: () => {
|
|
362
|
-
connect: lodash.DebouncedFunc<({ client, userEnv, accessToken }: {
|
|
363
|
-
client: ChainlitAPI;
|
|
364
|
-
userEnv: Record<string, string>;
|
|
365
|
-
accessToken?: string | undefined;
|
|
366
|
-
}) => void>;
|
|
367
|
-
disconnect: () => void;
|
|
368
|
-
session: ISession | undefined;
|
|
369
|
-
sessionId: string;
|
|
370
|
-
chatProfile: string | undefined;
|
|
371
|
-
idToResume: string | undefined;
|
|
372
|
-
setChatProfile: recoil.SetterOrUpdater<string | undefined>;
|
|
373
|
-
};
|
|
405
|
+
declare const defaultChainlitContext: undefined;
|
|
406
|
+
declare const ChainlitContext: react.Context<ChainlitAPI>;
|
|
374
407
|
|
|
375
408
|
declare const nestMessages: (messages: IStep[]) => IStep[];
|
|
376
409
|
declare const isLastMessage: (messages: IStep[], index: number) => boolean;
|
|
@@ -379,6 +412,6 @@ declare const addMessageToParent: (messages: IStep[], parentId: string, newMessa
|
|
|
379
412
|
declare const hasMessageById: (messages: IStep[], messageId: string) => boolean;
|
|
380
413
|
declare const updateMessageById: (messages: IStep[], messageId: string, updatedMessage: IStep) => IStep[];
|
|
381
414
|
declare const deleteMessageById: (messages: IStep[], messageId: string) => IStep[];
|
|
382
|
-
declare const updateMessageContentById: (messages: IStep[], messageId: number | string, updatedContent: string, isSequence: boolean) => IStep[];
|
|
415
|
+
declare const updateMessageContentById: (messages: IStep[], messageId: number | string, updatedContent: string, isSequence: boolean, isInput: boolean) => IStep[];
|
|
383
416
|
|
|
384
|
-
export { APIBase, ActionSpec, AuthProvider, ChainlitAPI, ClientError, ElementType, FileSpec,
|
|
417
|
+
export { APIBase, ActionSpec, AuthProvider, ChainlitAPI, ChainlitContext, ChatProfile, ClientError, ElementType, FileSpec, IAction, IAsk, IAudioConfig, IAudioElement, ICallFn, IChainlitConfig, IElement, IElementSize, IFeedback, IFileElement, IFileRef, IImageElement, IMessageElement, IPageInfo, IPagination, IPdfElement, IPlotlyElement, ISession, IStarter, IStep, ITasklistElement, ITextElement, IThread, IThreadFilters, IToken, IUser, IUserMetadata, IVideoElement, ThreadHistory, UserInput, accessTokenState, actionState, addMessage, addMessageToParent, askUserState, callFnState, chatProfileState, chatSettingsDefaultValueSelector, chatSettingsInputsState, chatSettingsValueState, configState, currentThreadIdState, defaultChainlitContext, deleteMessageById, elementState, fetcher, firstUserInteraction, hasMessageById, isLastMessage, loadingState, messagesState, nestMessages, sessionIdState, sessionState, sideViewState, tasklistState, threadHistoryState, threadIdToResumeState, tokenCountState, updateMessageById, updateMessageContentById, useApi, useAudio, useAuth, useChatData, useChatInteract, useChatMessages, useChatSession, useConfig, userState };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function t(e){if(Array.isArray(e))return e}function n(t){if(Array.isArray(t))return e(t)}function r(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function o(e,t,n,r,o,i,a){try{var u=e[i](a);var s=u.value}catch(e){n(e);return}if(u.done){t(s)}else{Promise.resolve(s).then(r,o)}}function i(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function u(e){o(a,r,i,u,s,"next",e)}function s(e){o(a,r,i,u,s,"throw",e)}u(undefined)})}}function a(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function u(e,t,n){if(C()){u=Reflect.construct}else{u=function e(e,t,n){var r=[null];r.push.apply(r,t);var o=Function.bind.apply(e,r);var i=new o;if(n)O(i,n.prototype);return i}}return u.apply(null,arguments)}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}function c(e,t,n){if(t)s(e.prototype,t);if(n)s(e,n);return e}function l(e,t,n){if(t in e){Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true})}else{e[t]=n}return e}function f(e){f=Object.setPrototypeOf?Object.getPrototypeOf:function e(e){return e.__proto__||Object.getPrototypeOf(e)};return f(e)}function d(e,t){if(typeof t!=="function"&&t!==null){throw new TypeError("Super expression must either be null or a function")}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:true,configurable:true}});if(t)O(e,t)}function v(e,t){if(t!=null&&typeof Symbol!=="undefined"&&t[Symbol.hasInstance]){return!!t[Symbol.hasInstance](e)}else{return e instanceof t}}function p(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function h(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function y(e,t){var n=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(n==null)return;var r=[];var o=true;var i=false;var a,u;try{for(n=n.call(e);!(o=(a=n.next()).done);o=true){r.push(a.value);if(t&&r.length===t)break}}catch(e){i=true;u=e}finally{try{if(!o&&n["return"]!=null)n["return"]()}finally{if(i)throw u}}return r}function b(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function m(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};var r=Object.keys(n);if(typeof Object.getOwnPropertySymbols==="function"){r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))}r.forEach(function(t){l(e,t,n[t])})}return e}function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);if(t){r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}n.push.apply(n,r)}return n}function k(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{S(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function w(e,t){if(e==null)return{};var n=R(e,t);var r,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++){r=i[o];if(t.indexOf(r)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,r))continue;n[r]=e[r]}}return n}function R(e,t){if(e==null)return{};var n={};var r=Object.keys(e);var o,i;for(i=0;i<r.length;i++){o=r[i];if(t.indexOf(o)>=0)continue;n[o]=e[o]}return n}function x(e,t){if(t&&(T(t)==="object"||typeof t==="function")){return t}return r(e)}function O(e,t){O=Object.setPrototypeOf||function e(e,t){e.__proto__=t;return e};return O(e,t)}function E(e,n){return t(e)||y(e,n)||I(e,n)||b()}function j(e){return n(e)||h(e)||I(e)||g()}function T(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function I(t,n){if(!t)return;if(typeof t==="string")return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor)r=t.constructor.name;if(r==="Map"||r==="Set")return Array.from(r);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(t,n)}function _(e){var t=typeof Map==="function"?new Map:undefined;_=function e(e){if(e===null||!p(e))return e;if(typeof e!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof t!=="undefined"){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return u(e,arguments,f(this).constructor)}n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:false,writable:true,configurable:true}});return O(n,e)};return _(e)}function C(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function P(e){var t=C();return function n(){var n=f(e),r;if(t){var o=f(this).constructor;r=Reflect.construct(n,arguments,o)}else{r=n.apply(this,arguments)}return x(this,r)}}function A(e,t){var n,r,o,i,a={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]};return(i={next:u(0),"throw":u(1),"return":u(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i);function u(e){return function(t){return s([e,t])}}function s(i){if(n)throw new TypeError("Generator is already executing.");while(a)try{if(n=1,r&&(o=i[0]&2?r["return"]:i[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;if(r=0,o)i=[i[0]&2,o.value];switch(i[0]){case 0:case 1:o=i;break;case 4:a.label++;return{value:i[1],done:false};case 5:a.label++;r=i[1];i=[0];continue;case 7:i=a.ops.pop();a.trys.pop();continue;default:if(!(o=a.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){a=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(i[0]===6&&a.label<o[1]){a.label=o[1];o=i;break}if(o&&a.label<o[2]){a.label=o[2];a.ops.push(i);break}if(o[2])a.ops.pop();a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e];r=0}finally{n=o=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}}var D=require("recoil");var V=require("lodash");var M=require("uuid");var q=require("react");var U=require("socket.io-client");var F=require("jwt-decode");var L=require("swr");function B(e){return e&&e.__esModule?e:{default:e}}var G=/*#__PURE__*/B(U);var H=/*#__PURE__*/B(F);var X=/*#__PURE__*/B(L);var z=function(e){var t={},n=new Date,r=new Date;r.setDate(n.getDate()-1);var o=new Date;o.setDate(n.getDate()-7);var i=new Date;return i.setDate(n.getDate()-30),e.forEach(function(e){var a=new Date(e.createdAt),u=a.toDateString()===n.toDateString(),s=a.toDateString()===r.toDateString(),c=a>=o,l=a>=i,f;u?f="Today":s?f="Yesterday":c?f="Previous 7 days":l?f="Previous 30 days":f=a.toLocaleString("default",{month:"long",year:"numeric"}).split(" ").slice(0,1).join(" "),t[f]||(t[f]=[]),t[f].push(e)}),t};var J=D.atom({key:"ThreadIdToResume",default:void 0}),N=D.atom({key:"ChatProfile",default:void 0}),W=D.atom({key:"SessionId",default:M.v4()}),K=D.selector({key:"SessionIdSelector",get:function(e){var t=e.get;return t(W)},set:function(e,t){var n=e.set;return n(W,v(t,D.DefaultValue)?M.v4():t)}}),Y=D.atom({key:"Session",dangerouslyAllowMutability:!0,default:void 0}),$=D.atom({key:"Actions",default:[]}),Q=D.atom({key:"Messages",dangerouslyAllowMutability:!0,default:[]}),Z=D.atom({key:"TokenCount",default:0}),ee=D.atom({key:"Loading",default:!1}),et=D.atom({key:"AskUser",default:void 0}),en=D.atom({key:"CallFn",default:void 0}),er=D.atom({key:"ChatSettings",default:[]}),eo=D.selector({key:"ChatSettingsValue/Default",get:function(e){var t=e.get;return t(er).reduce(function(e,t){return e[t.id]=t.initial,e},{})}}),ei=D.atom({key:"ChatSettingsValue",default:eo}),ea=D.atom({key:"DisplayElements",default:[]}),eu=D.atom({key:"AvatarElements",default:[]}),es=D.atom({key:"TasklistElements",default:[]}),ec=D.atom({key:"FirstUserInteraction",default:void 0}),el=D.atom({key:"AccessToken",default:void 0}),ef=D.atom({key:"User",default:null}),ed=D.atom({key:"ThreadHistory",default:{threads:void 0,currentThreadId:void 0,timeGroupedThreads:void 0,pageInfo:void 0},effects:[function(e){var t=e.setSelf,n=e.onSet;n(function(e,n){var r=e===null||e===void 0?void 0:e.timeGroupedThreads;(e===null||e===void 0?void 0:e.threads)&&!V.isEqual(e.threads,n===null||n===void 0?void 0:n.timeGroupedThreads)&&(r=z(e.threads)),t(k(m({},e),{timeGroupedThreads:r}))})}]}),ev=D.atom({key:"SideView",default:void 0});var ep=function(){var e=D.useRecoilValue(ee),t=D.useRecoilValue(ea),n=D.useRecoilValue(eu),r=D.useRecoilValue(es),o=D.useRecoilValue($),i=D.useRecoilValue(Y),a=D.useRecoilValue(et),u=D.useRecoilValue(er),s=D.useRecoilValue(ei),c=D.useRecoilValue(eo),l=(i===null||i===void 0?void 0:i.socket.connected)&&!(i===null||i===void 0?void 0:i.error),f=!l||e||(a===null||a===void 0?void 0:a.spec.type)==="file"||(a===null||a===void 0?void 0:a.spec.type)==="action";return{actions:o,askUser:a,avatars:n,chatSettingsDefaultValue:c,chatSettingsInputs:u,chatSettingsValue:s,connected:l,disabled:f,elements:t,error:i===null||i===void 0?void 0:i.error,loading:e,tasklists:r}};var eh=function(e){var t=[];var n=true,r=false,o=undefined;try{for(var i=e[Symbol.iterator](),a;!(n=(a=i.next()).done);n=true){var u=a.value;t=eb(t,u)}}catch(e){r=true;o=e}finally{try{if(!n&&i.return!=null){i.return()}}finally{if(r){throw o}}}return t},ey=function(e,t){if(e.length-1===t)return!0;for(var n=t+1;n<e.length;n++)if(!e[n].streaming)return!1;return!0},eb=function(e,t){return eS(e,t.id)?ek(e,t.id,t):"parentId"in t&&t.parentId?em(e,t.parentId,t):"indent"in t&&t.indent&&t.indent>0?eg(e,t.indent,t):j(e).concat([t])},eg=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;var o=j(e);if(o.length===0)return j(o).concat([n]);{var i=o.length-1,a=o[i];return a.steps=a.steps||[],r+1===t?(a.steps=j(a.steps).concat([n]),o[i]=m({},a),o):(a.steps=eg(a.steps,t,n,r+1),o[i]=m({},a),o)}},em=function(e,t,n){var r=j(e);for(var o=0;o<r.length;o++){var i=r[o];V.isEqual(i.id,t)?(i.steps=i.steps?j(i.steps).concat([n]):[n],r[o]=m({},i)):eS(r,t)&&i.steps&&(i.steps=em(i.steps,t,n),r[o]=m({},i))}return r},eS=function(e,t){var n=true,r=false,o=undefined;try{for(var i=e[Symbol.iterator](),a;!(n=(a=i.next()).done);n=true){var u=a.value;if(V.isEqual(u.id,t))return!0;if(u.steps&&u.steps.length>0&&eS(u.steps,t))return!0}}catch(e){r=true;o=e}finally{try{if(!n&&i.return!=null){i.return()}}finally{if(r){throw o}}}return!1},ek=function(e,t,n){var r=j(e);for(var o=0;o<r.length;o++){var i=r[o];V.isEqual(i.id,t)?r[o]=m({steps:i.steps},n):eS(r,t)&&i.steps&&(i.steps=ek(i.steps,t,n),r[o]=m({},i))}return r},ew=function(e,t){var n=j(e);for(var r=0;r<n.length;r++){var o=n[r];o.id===t?n=j(n.slice(0,r)).concat(j(n.slice(r+1))):eS(n,t)&&o.steps&&(o.steps=ew(o.steps,t),n[r]=m({},o))}return n},eR=function(e,t,n,r){var o=j(e);for(var i=0;i<o.length;i++){var a=o[i];V.isEqual(a.id,t)?("content"in a&&a.content!==void 0?r?a.content=n:a.content+=n:"output"in a&&a.output!==void 0&&(r?a.output=n:a.output+=n),o[i]=m({},a)):a.steps&&(a.steps=eR(a.steps,t,n,r),o[i]=m({},a))}return o};var ex=function(){var e=D.useRecoilValue(el),t=D.useRecoilValue(Y),n=D.useRecoilValue(et),r=D.useRecoilValue(K),o=D.useResetRecoilState(er),i=D.useResetRecoilState(K),a=D.useResetRecoilState(ei),u=D.useSetRecoilState(ec),s=D.useSetRecoilState(ee),c=D.useSetRecoilState(Q),l=D.useSetRecoilState(ea),f=D.useSetRecoilState(eu),d=D.useSetRecoilState(es),v=D.useSetRecoilState($),p=D.useSetRecoilState(Z),h=D.useSetRecoilState(J),y=D.useSetRecoilState(ev),b=q.useCallback(function(){t===null||t===void 0?void 0:t.socket.emit("clear_session"),t===null||t===void 0?void 0:t.socket.disconnect(),h(void 0),i(),u(void 0),c([]),l([]),f([]),d([]),v([]),p(0),o(),a(),y(void 0)},[t]),g=q.useCallback(function(e,n){c(function(t){return eb(t,e)}),t===null||t===void 0?void 0:t.socket.emit("ui_message",{message:e,fileReferences:n})},[t===null||t===void 0?void 0:t.socket]),m=q.useCallback(function(e){n&&(c(function(t){return eb(t,e)}),n.callback(e))},[n]),S=q.useCallback(function(e){t===null||t===void 0?void 0:t.socket.emit("chat_settings_change",e)},[t===null||t===void 0?void 0:t.socket]),k=q.useCallback(function(){s(!1),t===null||t===void 0?void 0:t.socket.emit("stop")},[t===null||t===void 0?void 0:t.socket]),w=q.useCallback(function(e){var n=t===null||t===void 0?void 0:t.socket;if(!n)return;var r=new Promise(function(e,t){n.once("action_response",function(n){n.status?e(n):t(n)})});return n.emit("action_call",e),r},[t===null||t===void 0?void 0:t.socket]);return{uploadFile:q.useCallback(function(t,n,o){return t.uploadFile(n,o,r,e)},[r,e]),callAction:w,clear:b,replyMessage:m,sendMessage:g,stopTask:k,setIdToResume:h,updateChatSettings:S}};var eO=function(){var e=D.useRecoilValue(Q),t=D.useRecoilValue(ec);return{messages:e,firstInteraction:t}};var eE=function(){var e=D.useRecoilValue(K),t=E(D.useRecoilState(Y),2),n=t[0],r=t[1],o=D.useResetRecoilState(ei),i=D.useSetRecoilState(ec),a=D.useSetRecoilState(ee),u=D.useSetRecoilState(Q),s=D.useSetRecoilState(et),c=D.useSetRecoilState(en),l=D.useSetRecoilState(ea),f=D.useSetRecoilState(eu),d=D.useSetRecoilState(es),v=D.useSetRecoilState($),p=D.useSetRecoilState(er),h=D.useSetRecoilState(Z),y=E(D.useRecoilState(N),2),b=y[0],g=y[1],S=D.useRecoilValue(J),w=q.useCallback(function(t){var n=t.client,y=t.userEnv,w=t.accessToken;var R=new URL(n.httpEndpoint).pathname,x=R.endsWith("/")?"ws/socket.io":"/ws/socket.io",O=G.default(n.httpEndpoint,{path:"".concat(R).concat(x),extraHeaders:{Authorization:w||"","X-Chainlit-Client-Type":n.type,"X-Chainlit-Session-Id":e,"X-Chainlit-Thread-Id":S||"","user-env":JSON.stringify(y),"X-Chainlit-Chat-Profile":b||""}});r(function(e){var t,n;return e===null||e===void 0?void 0:(t=e.socket)===null||t===void 0?void 0:t.removeAllListeners(),e===null||e===void 0?void 0:(n=e.socket)===null||n===void 0?void 0:n.close(),{socket:O}}),O.on("connect",function(){O.emit("connection_successful"),r(function(e){return k(m({},e),{error:!1})})}),O.on("connect_error",function(e){r(function(e){return k(m({},e),{error:!0})})}),O.on("task_start",function(){a(!0)}),O.on("task_end",function(){a(!1)}),O.on("reload",function(){O.emit("clear_session"),window.location.reload()}),O.on("resume_thread",function(e){var t,n;var r=[];var o=true,i=false,a=undefined;try{for(var s=e.steps[Symbol.iterator](),c;!(o=(c=s.next()).done);o=true){var v=c.value;r=eb(r,v)}}catch(e){i=true;a=e}finally{try{if(!o&&s.return!=null){s.return()}}finally{if(i){throw a}}}((t=e.metadata)===null||t===void 0?void 0:t.chat_profile)&&g((n=e.metadata)===null||n===void 0?void 0:n.chat_profile),u(r);var p=e.elements||[];f(p.filter(function(e){return e.type==="avatar"})),d(p.filter(function(e){return e.type==="tasklist"})),l(p.filter(function(e){return["avatar","tasklist"].indexOf(e.type)===-1}))}),O.on("new_message",function(e){u(function(t){return eb(t,e)})}),O.on("first_interaction",function(e){i(e)}),O.on("update_message",function(e){u(function(t){return ek(t,e.id,e)})}),O.on("delete_message",function(e){u(function(t){return ew(t,e.id)})}),O.on("stream_start",function(e){u(function(t){return eb(t,e)})}),O.on("stream_token",function(e){var t=e.id,n=e.token,r=e.isSequence;u(function(e){return eR(e,t,n,r)})}),O.on("ask",function(e,t){var n=e.msg,r=e.spec;s({spec:r,callback:t}),u(function(e){return eb(e,n)}),a(!1)}),O.on("ask_timeout",function(){s(void 0),a(!1)}),O.on("clear_ask",function(){s(void 0)}),O.on("call_fn",function(e,t){var n=e.name,r=e.args;var o=new CustomEvent("chainlit-call-fn",{detail:{name:n,args:r,callback:t}});window.dispatchEvent(o),c({name:n,args:r,callback:t})}),O.on("clear_call_fn",function(){c(void 0)}),O.on("call_fn_timeout",function(){c(void 0)}),O.on("chat_settings",function(e){p(e),o()}),O.on("element",function(t){!t.url&&t.chainlitKey&&(t.url=n.getElementUrl(t.chainlitKey,e)),t.type==="avatar"?f(function(e){var n=e.findIndex(function(e){return e.id===t.id});return n===-1?j(e).concat([t]):j(e.slice(0,n)).concat([t],j(e.slice(n+1)))}):t.type==="tasklist"?d(function(e){var n=e.findIndex(function(e){return e.id===t.id});return n===-1?j(e).concat([t]):j(e.slice(0,n)).concat([t],j(e.slice(n+1)))}):l(function(e){var n=e.findIndex(function(e){return e.id===t.id});return n===-1?j(e).concat([t]):j(e.slice(0,n)).concat([t],j(e.slice(n+1)))})}),O.on("remove_element",function(e){l(function(t){return t.filter(function(t){return t.id!==e.id})}),d(function(t){return t.filter(function(t){return t.id!==e.id})}),f(function(t){return t.filter(function(t){return t.id!==e.id})})}),O.on("action",function(e){v(function(t){return j(t).concat([e])})}),O.on("remove_action",function(e){v(function(t){var n=t.findIndex(function(t){return t.id===e.id});return n===-1?t:j(t.slice(0,n)).concat(j(t.slice(n+1)))})}),O.on("token_usage",function(e){h(function(t){return t+e})})},[r,e,b]),R=q.useCallback(V.debounce(w,200),[w]),x=q.useCallback(function(){(n===null||n===void 0?void 0:n.socket)&&(n.socket.removeAllListeners(),n.socket.close())},[n]);return{connect:R,disconnect:x,session:n,sessionId:e,chatProfile:b,idToResume:S,setChatProfile:g}};var ej="token";function eT(){try{return localStorage.getItem(ej)}catch(e){return}}function eI(e){try{return localStorage.setItem(ej,e)}catch(e){return}}function e_(){try{return localStorage.removeItem(ej)}catch(e){return}}var eC=function(){var e=i(function(e,t,n){var r;return A(this,function(o){switch(o.label){case 0:return[4,e.get(t,n)];case 1:return[2,(r=o.sent())===null||r===void 0?void 0:r.json()]}})});return function t(t,n,r){return e.apply(this,arguments)}}();function eP(e,t,n){var r=D.useRecoilValue(el);return X.default(t?[t,r]:null,function(t){var n=E(t,2),r=n[0],o=n[1];return eC(e,r,o)},n)}var eA=function(e){var t=eP(e,"/auth/config"),n=t.data,r=t.isLoading,o=E(D.useRecoilState(el),2),a=o[0],u=o[1],s=D.useSetRecoilState(ed),c=E(D.useRecoilState(ef),2),l=c[0],f=c[1],d=!!(!r&&n),v=function(){var t=i(function(){return A(this,function(t){switch(t.label){case 0:return[4,e.logout()];case 1:t.sent(),f(null),e_(),u(""),s(void 0);return[2]}})});return function e(){return t.apply(this,arguments)}}(),p=function(e){if(!e){v();return}try{var t=H.default(e),n=t.exp,r=w(t,["exp"]);eI(e),u("Bearer ".concat(e)),f(r)}catch(e){console.error("Invalid token, clearing token from local storage","error:",e),v()}};q.useEffect(function(){if(!l&&eT()){p(eT());return}},[]);var h=!!a;return n&&!n.requireLogin?{data:n,user:null,isReady:d,isAuthenticated:!0,accessToken:"",logout:function(){},setAccessToken:function(){}}:{data:n,user:l,isAuthenticated:h,isReady:d,accessToken:a,logout:v,setAccessToken:p}};var eD=/*#__PURE__*/function(e){d(n,e);var t=P(n);function n(e,r){a(this,n);var o;o=t.call(this,e);o.detail=r;return o}c(n,[{key:"toString",value:function e(){return this.detail?"".concat(this.message,": ").concat(this.detail):this.message}}]);return n}(_(Error)),eV=/*#__PURE__*/function(){function e(t,n,r,o){a(this,e);this.httpEndpoint=t;this.type=n;this.on401=r;this.onError=o}c(e,[{key:"buildEndpoint",value:function e(e){return this.httpEndpoint.endsWith("/")?"".concat(this.httpEndpoint.slice(0,-1)).concat(e):"".concat(this.httpEndpoint).concat(e)}},{key:"checkToken",value:function e(e){var t="Bearer ";return e.startsWith(t)?e:t+e}},{key:"fetch",value:function e(e,t,n,r,o){var a=this;return i(function(){var i,u,s,c,l;return A(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);i={};n&&(i.Authorization=a.checkToken(n));v(r,FormData)?u=r:(i["Content-Type"]="application/json",u=r?JSON.stringify(r):null);return[4,fetch(a.buildEndpoint(t),{method:e,headers:i,signal:o,body:u})];case 1:s=f.sent();if(!!s.ok)return[3,3];return[4,s.json()];case 2:c=f.sent();throw s.status===401&&a.on401&&(e_(),a.on401()),new eD(s.statusText,c.detail);case 3:return[2,s];case 4:l=f.sent();throw v(l,eD)&&a.onError&&a.onError(l),console.error(l),l;case 5:return[2]}})})()}},{key:"get",value:function e(e,t){var n=this;return i(function(){return A(this,function(r){switch(r.label){case 0:return[4,n.fetch("GET",e,t)];case 1:return[2,r.sent()]}})})()}},{key:"post",value:function e(e,t,n,r){var o=this;return i(function(){return A(this,function(i){switch(i.label){case 0:return[4,o.fetch("POST",e,n,t,r)];case 1:return[2,i.sent()]}})})()}},{key:"put",value:function e(e,t,n){var r=this;return i(function(){return A(this,function(o){switch(o.label){case 0:return[4,r.fetch("PUT",e,n,t)];case 1:return[2,o.sent()]}})})()}},{key:"patch",value:function e(e,t,n){var r=this;return i(function(){return A(this,function(o){switch(o.label){case 0:return[4,r.fetch("PATCH",e,n,t)];case 1:return[2,o.sent()]}})})()}},{key:"delete",value:function e(e,t,n){var r=this;return i(function(){return A(this,function(o){switch(o.label){case 0:return[4,r.fetch("DELETE",e,n,t)];case 1:return[2,o.sent()]}})})()}}]);return e}(),eM=/*#__PURE__*/function(e){d(n,e);var t=P(n);function n(){a(this,n);return t.apply(this,arguments)}c(n,[{key:"headerAuth",value:function e(){var e=this;return i(function(){return A(this,function(t){switch(t.label){case 0:return[4,e.post("/auth/header",{})];case 1:return[2,t.sent().json()]}})})()}},{key:"passwordAuth",value:function e(e){var t=this;return i(function(){return A(this,function(n){switch(n.label){case 0:return[4,t.post("/login",e)];case 1:return[2,n.sent().json()]}})})()}},{key:"logout",value:function e(){var e=this;return i(function(){return A(this,function(t){switch(t.label){case 0:return[4,e.post("/logout",{})];case 1:return[2,t.sent().json()]}})})()}},{key:"getGeneration",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;var a=this;return i(function(){var i,u,s,c;return A(this,function(l){switch(l.label){case 0:s={userEnv:t};e.type==="CHAT"?s.chatGeneration=e:s.completionGeneration=e;return[4,a.post("/generation",s,r,n.signal)];case 1:c=(u=l.sent())===null||u===void 0?void 0:(i=u.body)===null||i===void 0?void 0:i.getReader();return[2,new ReadableStream({start:function e(e){function t(){c.read().then(function(n){var r=n.done,i=n.value;if(r){e.close(),o&&o(r,"");return}var a=new TextDecoder("utf-8").decode(i);o&&o(r,a),e.enqueue(i),t()}).catch(function(t){e.close(),o&&o(!0,""),console.error(t)})}t()}})]}})})()}},{key:"setFeedback",value:function e(e,t){var n=this;return i(function(){return A(this,function(r){switch(r.label){case 0:return[4,n.put("/feedback",{feedback:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"deleteFeedback",value:function e(e,t){var n=this;return i(function(){return A(this,function(r){switch(r.label){case 0:return[4,n.delete("/feedback",{feedbackId:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"listThreads",value:function e(e,t,n){var r=this;return i(function(){return A(this,function(o){switch(o.label){case 0:return[4,r.post("/project/threads",{pagination:e,filter:t},n)];case 1:return[2,o.sent().json()]}})})()}},{key:"deleteThread",value:function e(e,t){var n=this;return i(function(){return A(this,function(r){switch(r.label){case 0:return[4,n.delete("/project/thread",{threadId:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"uploadFile",value:function e(e,t,n,r){var o=this;var i=new XMLHttpRequest,a=new Promise(function(a,u){var s=new FormData;s.append("file",e),i.open("POST",o.buildEndpoint("/project/file?session_id=".concat(n)),!0),r&&i.setRequestHeader("Authorization",o.checkToken(r)),i.upload.onprogress=function(e){if(e.lengthComputable){var n=e.loaded/e.total*100;t(n)}},i.onload=function(){if(i.status===200){var e=JSON.parse(i.responseText);a(e)}else u("Upload failed")},i.onerror=function(){u("Upload error")},i.send(s)});return{xhr:i,promise:a}}},{key:"getElementUrl",value:function e(e,t){var n="?session_id=".concat(t);return this.buildEndpoint("/project/file/".concat(e).concat(n))}},{key:"getLogoEndpoint",value:function e(e){return this.buildEndpoint("/logo?theme=".concat(e))}},{key:"getOAuthEndpoint",value:function e(e){return this.buildEndpoint("/auth/oauth/".concat(e))}}]);return n}(eV);Object.defineProperty(exports,"Socket",{enumerable:true,get:function e(){return U.Socket}});exports.APIBase=eV;exports.ChainlitAPI=eM;exports.ClientError=eD;exports.accessTokenState=el;exports.actionState=$;exports.addMessage=eb;exports.addMessageToParent=em;exports.askUserState=et;exports.avatarState=eu;exports.callFnState=en;exports.chatProfileState=N;exports.chatSettingsDefaultValueSelector=eo;exports.chatSettingsInputsState=er;exports.chatSettingsValueState=ei;exports.deleteMessageById=ew;exports.elementState=ea;exports.fetcher=eC;exports.firstUserInteraction=ec;exports.hasMessageById=eS;exports.isLastMessage=ey;exports.loadingState=ee;exports.messagesState=Q;exports.nestMessages=eh;exports.sessionIdState=K;exports.sessionState=Y;exports.sideViewState=ev;exports.tasklistState=es;exports.threadHistoryState=ed;exports.threadIdToResumeState=J;exports.tokenCountState=Z;exports.updateMessageById=ek;exports.updateMessageContentById=eR;exports.useApi=eP;exports.useAuth=eA;exports.useChatData=ep;exports.useChatInteract=ex;exports.useChatMessages=eO;exports.useChatSession=eE;exports.userState=ef;//# sourceMappingURL=out.js.map
|
|
1
|
+
"use strict";function e(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function t(e){if(Array.isArray(e))return e}function n(t){if(Array.isArray(t))return e(t)}function r(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function o(e,t,n,r,o,i,a){try{var u=e[i](a);var s=u.value}catch(e){n(e);return}if(u.done){t(s)}else{Promise.resolve(s).then(r,o)}}function i(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function u(e){o(a,r,i,u,s,"next",e)}function s(e){o(a,r,i,u,s,"throw",e)}u(undefined)})}}function a(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function u(e,t,n){if(j()){u=Reflect.construct}else{u=function e(e,t,n){var r=[null];r.push.apply(r,t);var o=Function.bind.apply(e,r);var i=new o;if(n)_(i,n.prototype);return i}}return u.apply(null,arguments)}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}function c(e,t,n){if(t)s(e.prototype,t);if(n)s(e,n);return e}function l(e,t,n){if(t in e){Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true})}else{e[t]=n}return e}function f(e){f=Object.setPrototypeOf?Object.getPrototypeOf:function e(e){return e.__proto__||Object.getPrototypeOf(e)};return f(e)}function d(e,t){if(typeof t!=="function"&&t!==null){throw new TypeError("Super expression must either be null or a function")}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:true,configurable:true}});if(t)_(e,t)}function p(e,t){if(t!=null&&typeof Symbol!=="undefined"&&t[Symbol.hasInstance]){return!!t[Symbol.hasInstance](e)}else{return e instanceof t}}function v(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function h(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function y(e,t){var n=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(n==null)return;var r=[];var o=true;var i=false;var a,u;try{for(n=n.call(e);!(o=(a=n.next()).done);o=true){r.push(a.value);if(t&&r.length===t)break}}catch(e){i=true;u=e}finally{try{if(!o&&n["return"]!=null)n["return"]()}finally{if(i)throw u}}return r}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function m(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};var r=Object.keys(n);if(typeof Object.getOwnPropertySymbols==="function"){r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))}r.forEach(function(t){l(e,t,n[t])})}return e}function k(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);if(t){r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}n.push.apply(n,r)}return n}function S(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{k(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function w(e,t){if(e==null)return{};var n=R(e,t);var r,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++){r=i[o];if(t.indexOf(r)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,r))continue;n[r]=e[r]}}return n}function R(e,t){if(e==null)return{};var n={};var r=Object.keys(e);var o,i;for(i=0;i<r.length;i++){o=r[i];if(t.indexOf(o)>=0)continue;n[o]=e[o]}return n}function x(e,t){if(t&&(T(t)==="object"||typeof t==="function")){return t}return r(e)}function _(e,t){_=Object.setPrototypeOf||function e(e,t){e.__proto__=t;return e};return _(e,t)}function C(e,n){return t(e)||y(e,n)||I(e,n)||g()}function O(e){return n(e)||h(e)||I(e)||m()}function T(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function I(t,n){if(!t)return;if(typeof t==="string")return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor)r=t.constructor.name;if(r==="Map"||r==="Set")return Array.from(r);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(t,n)}function E(e){var t=typeof Map==="function"?new Map:undefined;E=function e(e){if(e===null||!v(e))return e;if(typeof e!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof t!=="undefined"){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return u(e,arguments,f(this).constructor)}n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:false,writable:true,configurable:true}});return _(n,e)};return E(e)}function j(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function A(e){var t=j();return function n(){var n=f(e),r;if(t){var o=f(this).constructor;r=Reflect.construct(n,arguments,o)}else{r=n.apply(this,arguments)}return x(this,r)}}function P(e,t){var n,r,o,i,a={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]};return(i={next:u(0),"throw":u(1),"return":u(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i);function u(e){return function(t){return s([e,t])}}function s(i){if(n)throw new TypeError("Generator is already executing.");while(a)try{if(n=1,r&&(o=i[0]&2?r["return"]:i[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;if(r=0,o)i=[i[0]&2,o.value];switch(i[0]){case 0:case 1:o=i;break;case 4:a.label++;return{value:i[1],done:false};case 5:a.label++;r=i[1];i=[0];continue;case 7:i=a.ops.pop();a.trys.pop();continue;default:if(!(o=a.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){a=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(i[0]===6&&a.label<o[1]){a.label=o[1];o=i;break}if(o&&a.label<o[2]){a.label=o[2];a.ops.push(i);break}if(o[2])a.ops.pop();a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e];r=0}finally{n=o=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}}var D=require("recoil");var V=require("lodash");var M=require("uuid");var q=require("react");var U=require("jwt-decode");var F=require("swr");var L=require("socket.io-client");function B(e){return e&&e.__esModule?e:{default:e}}var G=/*#__PURE__*/B(U);var H=/*#__PURE__*/B(F);var X=/*#__PURE__*/B(L);var z=function(e){var t={},n=new Date,r=new Date;r.setDate(n.getDate()-1);var o=new Date;o.setDate(n.getDate()-7);var i=new Date;return i.setDate(n.getDate()-30),e.forEach(function(e){var a=new Date(e.createdAt),u=a.toDateString()===n.toDateString(),s=a.toDateString()===r.toDateString(),c=a>=o,l=a>=i,f;u?f="Today":s?f="Yesterday":c?f="Previous 7 days":l?f="Previous 30 days":f=a.toLocaleString("default",{month:"long",year:"numeric"}).split(" ").slice(0,1).join(" "),t[f]||(t[f]=[]),t[f].push(e)}),t};var J=D.atom({key:"ThreadIdToResume",default:void 0}),N=D.atom({key:"ChatProfile",default:void 0}),W=D.atom({key:"SessionId",default:M.v4()}),K=D.selector({key:"SessionIdSelector",get:function(e){var t=e.get;return t(W)},set:function(e,t){var n=e.set;return n(W,p(t,D.DefaultValue)?M.v4():t)}}),Y=D.atom({key:"Session",dangerouslyAllowMutability:!0,default:void 0}),$=D.atom({key:"Actions",default:[]}),Q=D.atom({key:"Messages",dangerouslyAllowMutability:!0,default:[]}),Z=D.atom({key:"TokenCount",default:0}),ee=D.atom({key:"Loading",default:!1}),et=D.atom({key:"AskUser",default:void 0}),en=D.atom({key:"CallFn",default:void 0}),er=D.atom({key:"ChatSettings",default:[]}),eo=D.selector({key:"ChatSettingsValue/Default",get:function(e){var t=e.get;return t(er).reduce(function(e,t){return e[t.id]=t.initial,e},{})}}),ei=D.atom({key:"ChatSettingsValue",default:eo}),ea=D.atom({key:"DisplayElements",default:[]}),eu=D.atom({key:"TasklistElements",default:[]}),es=D.atom({key:"FirstUserInteraction",default:void 0}),ec=D.atom({key:"AccessToken",default:void 0}),el=D.atom({key:"User",default:null}),ef=D.atom({key:"ChainlitConfig",default:void 0}),ed=D.atom({key:"ThreadHistory",default:{threads:void 0,currentThreadId:void 0,timeGroupedThreads:void 0,pageInfo:void 0},effects:[function(e){var t=e.setSelf,n=e.onSet;n(function(e,n){var r=e===null||e===void 0?void 0:e.timeGroupedThreads;(e===null||e===void 0?void 0:e.threads)&&!V.isEqual(e.threads,n===null||n===void 0?void 0:n.timeGroupedThreads)&&(r=z(e.threads)),t(S(b({},e),{timeGroupedThreads:r}))})}]}),ep=D.atom({key:"SideView",default:void 0}),ev=D.atom({key:"CurrentThreadId",default:void 0});var eh=function(){var e=D.useRecoilValue(ee),t=D.useRecoilValue(ea),n=D.useRecoilValue(eu),r=D.useRecoilValue($),o=D.useRecoilValue(Y),i=D.useRecoilValue(et),a=D.useRecoilValue(en),u=D.useRecoilValue(er),s=D.useRecoilValue(ei),c=D.useRecoilValue(eo),l=(o===null||o===void 0?void 0:o.socket.connected)&&!(o===null||o===void 0?void 0:o.error),f=!l||e||(i===null||i===void 0?void 0:i.spec.type)==="file"||(i===null||i===void 0?void 0:i.spec.type)==="action";return{actions:r,askUser:i,callFn:a,chatSettingsDefaultValue:c,chatSettingsInputs:u,chatSettingsValue:s,connected:l,disabled:f,elements:t,error:o===null||o===void 0?void 0:o.error,loading:e,tasklists:n}};var ey=function(e){var t=[];var n=true,r=false,o=undefined;try{for(var i=e[Symbol.iterator](),a;!(n=(a=i.next()).done);n=true){var u=a.value;t=em(t,u)}}catch(e){r=true;o=e}finally{try{if(!n&&i.return!=null){i.return()}}finally{if(r){throw o}}}return t},eg=function(e,t){if(e.length-1===t)return!0;for(var n=t+1;n<e.length;n++)if(!e[n].streaming)return!1;return!0},em=function(e,t){var n=["assistant_message","user_message"],r=O(n).concat(["tool"]),o=n.includes(t.type),i=r.includes(t.type),a=!t.parentId;if(a&&!i)return e;var u=a?void 0:eS(e,t.parentId),s=(a||(u===null||u===void 0?void 0:u.type)!=="assistant_message")&&t.type==="tool";if(ew(e,t.id))return eR(e,t.id,t);if(s){var c=e.length>0?e[e.length-1]:void 0,l=(c===null||c===void 0?void 0:c.type)==="assistant_message"&&(c===null||c===void 0?void 0:c.id.startsWith("wrap_"));return c&&l?O(e.slice(0,e.length-1)).concat([S(b({},c),{steps:O(c.steps||[]).concat([t])})]):O(e).concat([S(b({},t),{name:"",input:"",output:"",id:"wrap_"+t.id,type:"assistant_message",steps:[t]})])}else return!o&&"parentId"in t&&t.parentId?ek(e,t.parentId,t):"indent"in t&&t.indent&&t.indent>0?eb(e,t.indent,t):O(e).concat([t])},eb=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;var o=O(e);if(o.length===0)return O(o).concat([n]);{var i=o.length-1,a=o[i];return a.steps=a.steps||[],r+1===t?(a.steps=O(a.steps).concat([n]),o[i]=b({},a),o):(a.steps=eb(a.steps,t,n,r+1),o[i]=b({},a),o)}},ek=function(e,t,n){var r=O(e);for(var o=0;o<r.length;o++){var i=r[o];V.isEqual(i.id,t)?(i.steps=i.steps?O(i.steps).concat([n]):[n],r[o]=b({},i)):ew(r,t)&&i.steps&&(i.steps=ek(i.steps,t,n),r[o]=b({},i))}return r},eS=function(e,t){var n=true,r=false,o=undefined;try{for(var i=e[Symbol.iterator](),a;!(n=(a=i.next()).done);n=true){var u=a.value;if(V.isEqual(u.id,t))return u;if(u.steps&&u.steps.length>0){var s=eS(u.steps,t);if(s)return s}}}catch(e){r=true;o=e}finally{try{if(!n&&i.return!=null){i.return()}}finally{if(r){throw o}}}},ew=function(e,t){return eS(e,t)!==void 0},eR=function(e,t,n){var r=O(e);for(var o=0;o<r.length;o++){var i=r[o];V.isEqual(i.id,t)?r[o]=b({steps:i.steps},n):ew(r,t)&&i.steps&&(i.steps=eR(i.steps,t,n),r[o]=b({},i))}return r},ex=function(e,t){var n=O(e);for(var r=0;r<n.length;r++){var o=n[r];o.id===t?n=O(n.slice(0,r)).concat(O(n.slice(r+1))):ew(n,t)&&o.steps&&(o.steps=ex(o.steps,t),n[r]=b({},o))}return n},e_=function(e,t,n,r,o){var i=O(e);for(var a=0;a<i.length;a++){var u=i[a];V.isEqual(u.id,t)?("content"in u&&u.content!==void 0?r?u.content=n:u.content+=n:o?"input"in u&&u.input!==void 0&&(r?u.input=n:u.input+=n):"output"in u&&u.output!==void 0&&(r?u.output=n:u.output+=n),i[a]=b({},u)):u.steps&&(u.steps=e_(u.steps,t,n,r,o),i[a]=b({},u))}return i};var eC="token";function eO(){try{return localStorage.getItem(eC)}catch(e){return}}function eT(e){try{return localStorage.setItem(eC,e)}catch(e){return}}function eI(){try{return localStorage.removeItem(eC)}catch(e){return}}var eE=function(){var e=i(function(e,t,n){var r;return P(this,function(o){switch(o.label){case 0:return[4,e.get(t,n)];case 1:return[2,(r=o.sent())===null||r===void 0?void 0:r.json()]}})});return function t(t,n,r){return e.apply(this,arguments)}}();function ej(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var n=t.token,r=w(t,["token"]);var o=q.useContext(eq),i=D.useRecoilValue(ec);i=n||i;var a=q.useMemo(function(){return function(e){var t=C(e,2),n=t[0],r=t[1];return eE(o,n,r)}},[o]),u=q.useMemo(function(){return e?[e,i]:null},[e,i]);return H.default(u,a,r)}var eA=function(){var e=q.useContext(eq),t=ej("/auth/config"),n=t.data,r=t.isLoading,o=C(D.useRecoilState(ec),2),a=o[0],u=o[1],s=D.useSetRecoilState(ed),c=C(D.useRecoilState(el),2),l=c[0],f=c[1],d=!!(!r&&n),p=function(){var t=i(function(){return P(this,function(t){switch(t.label){case 0:return[4,e.logout()];case 1:t.sent(),f(null),eI(),u(""),s(void 0);return[2]}})});return function e(){return t.apply(this,arguments)}}(),v=function(e){if(!e){p();return}try{var t=G.default(e),n=t.exp,r=w(t,["exp"]);eT(e),u("Bearer ".concat(e)),f(r)}catch(e){console.error("Invalid token, clearing token from local storage","error:",e),p()}};q.useEffect(function(){if(!l&&eO()){v(eO());return}},[]);var h=!!a;return n&&!n.requireLogin?{data:n,user:null,isReady:d,isAuthenticated:!0,accessToken:"",logout:function(){},setAccessToken:function(){}}:{data:n,user:l,isAuthenticated:h,isReady:d,accessToken:a,logout:p,setAccessToken:v}};var eP=/*#__PURE__*/function(e){d(n,e);var t=A(n);function n(e,r){a(this,n);var o;o=t.call(this,e);o.detail=r;return o}c(n,[{key:"toString",value:function e(){return this.detail?"".concat(this.message,": ").concat(this.detail):this.message}}]);return n}(E(Error)),eD=/*#__PURE__*/function(){function e(t,n,r,o){a(this,e);this.httpEndpoint=t;this.type=n;this.on401=r;this.onError=o}c(e,[{key:"buildEndpoint",value:function e(e){return this.httpEndpoint.endsWith("/")?"".concat(this.httpEndpoint.slice(0,-1)).concat(e):"".concat(this.httpEndpoint).concat(e)}},{key:"checkToken",value:function e(e){var t="Bearer ";return e.startsWith(t)?e:t+e}},{key:"fetch",value:function e(e,t,n,r,o){var a=this;return i(function(){var i,u,s,c,l;return P(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);i={};n&&(i.Authorization=a.checkToken(n));p(r,FormData)?u=r:(i["Content-Type"]="application/json",u=r?JSON.stringify(r):null);return[4,fetch(a.buildEndpoint(t),{method:e,headers:i,signal:o,body:u})];case 1:s=f.sent();if(!!s.ok)return[3,3];return[4,s.json()];case 2:c=f.sent();throw s.status===401&&a.on401&&(eI(),a.on401()),new eP(s.statusText,c.detail);case 3:return[2,s];case 4:l=f.sent();throw p(l,eP)&&a.onError&&a.onError(l),console.error(l),l;case 5:return[2]}})})()}},{key:"get",value:function e(e,t){var n=this;return i(function(){return P(this,function(r){switch(r.label){case 0:return[4,n.fetch("GET",e,t)];case 1:return[2,r.sent()]}})})()}},{key:"post",value:function e(e,t,n,r){var o=this;return i(function(){return P(this,function(i){switch(i.label){case 0:return[4,o.fetch("POST",e,n,t,r)];case 1:return[2,i.sent()]}})})()}},{key:"put",value:function e(e,t,n){var r=this;return i(function(){return P(this,function(o){switch(o.label){case 0:return[4,r.fetch("PUT",e,n,t)];case 1:return[2,o.sent()]}})})()}},{key:"patch",value:function e(e,t,n){var r=this;return i(function(){return P(this,function(o){switch(o.label){case 0:return[4,r.fetch("PATCH",e,n,t)];case 1:return[2,o.sent()]}})})()}},{key:"delete",value:function e(e,t,n){var r=this;return i(function(){return P(this,function(o){switch(o.label){case 0:return[4,r.fetch("DELETE",e,n,t)];case 1:return[2,o.sent()]}})})()}}]);return e}(),eV=/*#__PURE__*/function(e){d(n,e);var t=A(n);function n(){a(this,n);return t.apply(this,arguments)}c(n,[{key:"headerAuth",value:function e(){var e=this;return i(function(){return P(this,function(t){switch(t.label){case 0:return[4,e.post("/auth/header",{})];case 1:return[2,t.sent().json()]}})})()}},{key:"passwordAuth",value:function e(e){var t=this;return i(function(){return P(this,function(n){switch(n.label){case 0:return[4,t.post("/login",e)];case 1:return[2,n.sent().json()]}})})()}},{key:"logout",value:function e(){var e=this;return i(function(){return P(this,function(t){switch(t.label){case 0:return[4,e.post("/logout",{})];case 1:return[2,t.sent().json()]}})})()}},{key:"setFeedback",value:function e(e,t){var n=this;return i(function(){return P(this,function(r){switch(r.label){case 0:return[4,n.put("/feedback",{feedback:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"deleteFeedback",value:function e(e,t){var n=this;return i(function(){return P(this,function(r){switch(r.label){case 0:return[4,n.delete("/feedback",{feedbackId:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"listThreads",value:function e(e,t,n){var r=this;return i(function(){return P(this,function(o){switch(o.label){case 0:return[4,r.post("/project/threads",{pagination:e,filter:t},n)];case 1:return[2,o.sent().json()]}})})()}},{key:"deleteThread",value:function e(e,t){var n=this;return i(function(){return P(this,function(r){switch(r.label){case 0:return[4,n.delete("/project/thread",{threadId:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"uploadFile",value:function e(e,t,n,r){var o=this;var i=new XMLHttpRequest,a=new Promise(function(a,u){var s=new FormData;s.append("file",e),i.open("POST",o.buildEndpoint("/project/file?session_id=".concat(n)),!0),r&&i.setRequestHeader("Authorization",o.checkToken(r)),i.upload.onprogress=function(e){if(e.lengthComputable){var n=e.loaded/e.total*100;t(n)}},i.onload=function(){if(i.status===200){var e=JSON.parse(i.responseText);a(e)}else u("Upload failed")},i.onerror=function(){u("Upload error")},i.send(s)});return{xhr:i,promise:a}}},{key:"getElementUrl",value:function e(e,t){var n="?session_id=".concat(t);return this.buildEndpoint("/project/file/".concat(e).concat(n))}},{key:"getLogoEndpoint",value:function e(e){return this.buildEndpoint("/logo?theme=".concat(e))}},{key:"getOAuthEndpoint",value:function e(e){return this.buildEndpoint("/auth/oauth/".concat(e))}}]);return n}(eD);var eM=void 0,eq=q.createContext(new eV("http://localhost:8000","webapp"));var eU=function(){var e=q.useContext(eq),t=D.useRecoilValue(ec),n=D.useRecoilValue(Y),r=D.useRecoilValue(et),o=D.useRecoilValue(K),i=D.useResetRecoilState(er),a=D.useResetRecoilState(K),u=D.useResetRecoilState(ei),s=D.useSetRecoilState(es),c=D.useSetRecoilState(ee),l=D.useSetRecoilState(Q),f=D.useSetRecoilState(ea),d=D.useSetRecoilState(eu),p=D.useSetRecoilState($),v=D.useSetRecoilState(Z),h=D.useSetRecoilState(J),y=D.useSetRecoilState(ep),g=D.useSetRecoilState(ev),m=q.useCallback(function(){n===null||n===void 0?void 0:n.socket.emit("clear_session"),n===null||n===void 0?void 0:n.socket.disconnect(),h(void 0),a(),s(void 0),l([]),f([]),d([]),p([]),v(0),i(),u(),y(void 0),g(void 0)},[n]),b=q.useCallback(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];e.id||(e.id=M.v4()),e.createdAt||(e.createdAt=new Date().toISOString()),l(function(t){return em(t,e)}),n===null||n===void 0?void 0:n.socket.emit("client_message",{message:e,fileReferences:t})},[n===null||n===void 0?void 0:n.socket]),k=q.useCallback(function(e,t,r,o){n===null||n===void 0?void 0:n.socket.emit("audio_chunk",{isStart:e,mimeType:t,elapsedTime:r,data:o})},[n===null||n===void 0?void 0:n.socket]),S=q.useCallback(function(e){n===null||n===void 0?void 0:n.socket.emit("audio_end",{fileReferences:e})},[n===null||n===void 0?void 0:n.socket]),w=q.useCallback(function(e){r&&(l(function(t){return em(t,e)}),r.callback(e))},[r]),R=q.useCallback(function(e){n===null||n===void 0?void 0:n.socket.emit("chat_settings_change",e)},[n===null||n===void 0?void 0:n.socket]),x=q.useCallback(function(){l(function(e){return e.map(function(e){return e.streaming=!1,e})}),c(!1),n===null||n===void 0?void 0:n.socket.emit("stop")},[n===null||n===void 0?void 0:n.socket]),_=q.useCallback(function(e){var t=n===null||n===void 0?void 0:n.socket;if(!t)return;var r=new Promise(function(e,n){t.once("action_response",function(t){t.status?e(t):n(t)})});return t.emit("action_call",e),r},[n===null||n===void 0?void 0:n.socket]);return{uploadFile:q.useCallback(function(n,r){return e.uploadFile(n,r,o,t)},[o,t]),callAction:_,clear:m,replyMessage:w,sendMessage:b,sendAudioChunk:k,endAudioStream:S,stopTask:x,setIdToResume:h,updateChatSettings:R}};var eF=function(){var e=D.useRecoilValue(Q),t=D.useRecoilValue(es);return{threadId:D.useRecoilValue(ev),messages:e,firstInteraction:t}};var eL=function(){var e=q.useContext(eq),t=D.useRecoilValue(K),n=C(D.useRecoilState(Y),2),r=n[0],o=n[1],i=D.useResetRecoilState(ei),a=D.useSetRecoilState(es),u=D.useSetRecoilState(ee),s=D.useSetRecoilState(Q),c=D.useSetRecoilState(et),l=D.useSetRecoilState(en),f=D.useSetRecoilState(ea),d=D.useSetRecoilState(eu),p=D.useSetRecoilState($),v=D.useSetRecoilState(er),h=D.useSetRecoilState(Z),y=C(D.useRecoilState(N),2),g=y[0],m=y[1],k=D.useRecoilValue(J),w=D.useSetRecoilState(ev),R=q.useCallback(function(n){var r=n.userEnv,y=n.accessToken;var R=new URL(e.httpEndpoint),x=R.protocol,_=R.host,C=R.pathname,T="".concat(x,"//").concat(_),I=C&&C!=="/"?"".concat(C,"/ws/socket.io"):"/ws/socket.io",E=X.default(T,{path:I,extraHeaders:{Authorization:y||"","X-Chainlit-Client-Type":e.type,"X-Chainlit-Session-Id":t,"X-Chainlit-Thread-Id":k||"","user-env":JSON.stringify(r),"X-Chainlit-Chat-Profile":g?encodeURIComponent(g):""}});o(function(e){var t,n;return e===null||e===void 0?void 0:(t=e.socket)===null||t===void 0?void 0:t.removeAllListeners(),e===null||e===void 0?void 0:(n=e.socket)===null||n===void 0?void 0:n.close(),{socket:E}}),E.on("connect",function(){E.emit("connection_successful"),o(function(e){return S(b({},e),{error:!1})})}),E.on("connect_error",function(e){o(function(e){return S(b({},e),{error:!0})})}),E.on("task_start",function(){u(!0)}),E.on("task_end",function(){u(!1)}),E.on("reload",function(){E.emit("clear_session"),window.location.reload()}),E.on("resume_thread",function(e){var t,n;var r=[];var o=true,i=false,a=undefined;try{for(var u=e.steps[Symbol.iterator](),c;!(o=(c=u.next()).done);o=true){var l=c.value;r=em(r,l)}}catch(e){i=true;a=e}finally{try{if(!o&&u.return!=null){u.return()}}finally{if(i){throw a}}}((t=e.metadata)===null||t===void 0?void 0:t.chat_profile)&&m((n=e.metadata)===null||n===void 0?void 0:n.chat_profile),s(r);var p=e.elements||[];d(p.filter(function(e){return e.type==="tasklist"})),f(p.filter(function(e){return["avatar","tasklist"].indexOf(e.type)===-1}))}),E.on("new_message",function(e){s(function(t){return em(t,e)})}),E.on("first_interaction",function(e){a(e.interaction),w(e.thread_id)}),E.on("update_message",function(e){s(function(t){return eR(t,e.id,e)})}),E.on("delete_message",function(e){s(function(t){return ex(t,e.id)})}),E.on("stream_start",function(e){s(function(t){return em(t,e)})}),E.on("stream_token",function(e){var t=e.id,n=e.token,r=e.isSequence,o=e.isInput;s(function(e){return e_(e,t,n,r,o)})}),E.on("ask",function(e,t){var n=e.msg,r=e.spec;c({spec:r,callback:t}),s(function(e){return em(e,n)}),u(!1)}),E.on("ask_timeout",function(){c(void 0),u(!1)}),E.on("clear_ask",function(){c(void 0)}),E.on("call_fn",function(e,t){var n=e.name,r=e.args;l({name:n,args:r,callback:t})}),E.on("clear_call_fn",function(){l(void 0)}),E.on("call_fn_timeout",function(){l(void 0)}),E.on("chat_settings",function(e){v(e),i()}),E.on("element",function(n){!n.url&&n.chainlitKey&&(n.url=e.getElementUrl(n.chainlitKey,t)),n.type==="tasklist"?d(function(e){var t=e.findIndex(function(e){return e.id===n.id});return t===-1?O(e).concat([n]):O(e.slice(0,t)).concat([n],O(e.slice(t+1)))}):f(function(e){var t=e.findIndex(function(e){return e.id===n.id});return t===-1?O(e).concat([n]):O(e.slice(0,t)).concat([n],O(e.slice(t+1)))})}),E.on("remove_element",function(e){f(function(t){return t.filter(function(t){return t.id!==e.id})}),d(function(t){return t.filter(function(t){return t.id!==e.id})})}),E.on("action",function(e){p(function(t){return O(t).concat([e])})}),E.on("remove_action",function(e){p(function(t){var n=t.findIndex(function(t){return t.id===e.id});return n===-1?t:O(t.slice(0,n)).concat(O(t.slice(n+1)))})}),E.on("token_usage",function(e){h(function(t){return t+e})})},[o,t,g]),x=q.useCallback(V.debounce(R,200),[R]),_=q.useCallback(function(){(r===null||r===void 0?void 0:r.socket)&&(r.socket.removeAllListeners(),r.socket.close())},[r]);return{connect:x,disconnect:_,session:r,sessionId:t,chatProfile:g,idToResume:k,setChatProfile:m}};var eB={enabled:!0,min_decibels:-45,initial_silence_timeout:3e3,silence_timeout:1500,max_duration:15e3,chunk_duration:1e3},eG=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:eB;var t=q.useRef(null),n=q.useRef(!1),r=eU(),o=r.sendAudioChunk,a=r.endAudioStream,u=C(q.useState(!1),2),s=u[0],c=u[1],l=C(q.useState(void 0),2),f=l[0],d=l[1],p=C(q.useState(!1),2),v=p[0],h=p[1],y=C(q.useState(void 0),2),g=y[0],m=y[1],b=C(q.useState(!1),2),k=b[0],S=b[1],w=q.useCallback(function(){!s||!t.current||(n.current=!0,t.current.stop())},[s]),R=q.useCallback(function(){!s||!t.current||t.current.stop()},[s]);return{startRecording:q.useCallback(function(r){if(s||!e)return;S(!1),m(void 0),clearTimeout(f),n.current=!1;var u=e.min_decibels,l=e.silence_timeout,p=e.initial_silence_timeout,v=e.chunk_duration,y=e.max_duration;navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){var s=!1,f=!1,g=!0,m=null,b=Date.now(),k=new MediaRecorder(e);t.current=k,k.addEventListener("start",function(){c(!0),b=Date.now()}),k.addEventListener("dataavailable",function(){var t=i(function(t){var n,r,i,a,u;return P(this,function(c){switch(c.label){case 0:if(s||(m?m=new Blob([m,t.data],{type:t.data.type}):m=new Blob([t.data],{type:t.data.type})),k.state==="inactive")return[2];n=Date.now()-b;if(n>=y){k.stop(),e.getTracks().forEach(function(e){return e.stop()});return[2]}h(f);r=C(k.mimeType.split(";"),2),i=r[0],a=r[1];if(!m)return[3,2];return[4,o(g,i,n,new Blob([m,t.data]))];case 1:u=(c.sent(),m=null);return[3,4];case 2:return[4,o(g,i,n,t.data)];case 3:u=c.sent();c.label=4;case 4:u,g&&(g=!1);return[2]}})});return function(e){return t.apply(this,arguments)}}()),k.addEventListener("stop",/*#__PURE__*/i(function(){var e;return P(this,function(t){switch(t.label){case 0:c(!1),h(!1);e=s&&!n.current;if(!e)return[3,2];S(!0);return[4,a(r)];case 1:e=t.sent();t.label=2;case 2:e;return[2]}})}));var w=new AudioContext,R=w.createMediaStreamSource(e),x=w.createAnalyser();x.minDecibels=u,R.connect(x);var _=x.frequencyBinCount,O=new Uint8Array(_);k.start(v);var T=function(){if(k.state==="inactive")return;x.getByteFrequencyData(O);var e=O.some(function(e){return e>0});f||(f=e),!s&&e&&(h(f),s=!0),requestAnimationFrame(T)};T(),setTimeout(function(){s?d(setInterval(function(){f?f=!1:(k.stop(),e.getTracks().forEach(function(e){return e.stop()}))},l)):(k.stop(),e.getTracks().forEach(function(e){return e.stop()}))},p)}).catch(function(e){m(e.message)})},[f,s,e,o,a]),stopRecording:R,cancelRecording:w,isRecording:s,isSpeaking:v,isRecordingFinished:k,error:g}};var eH=function(e){var t=C(D.useRecoilState(ef),2),n=t[0],r=t[1],o=eA(),i=o.isAuthenticated,a=navigator.language||"en-US",u=ej(!n&&i?"/project/settings?language=".concat(a):null,{token:e}),s=u.data,c=u.error,l=u.isLoading;return q.useEffect(function(){s&&r(s)},[s,r]),{config:n,error:c,isLoading:l,language:a}};Object.defineProperty(exports,"Socket",{enumerable:true,get:function e(){return L.Socket}});exports.APIBase=eD;exports.ChainlitAPI=eV;exports.ChainlitContext=eq;exports.ClientError=eP;exports.accessTokenState=ec;exports.actionState=$;exports.addMessage=em;exports.addMessageToParent=ek;exports.askUserState=et;exports.callFnState=en;exports.chatProfileState=N;exports.chatSettingsDefaultValueSelector=eo;exports.chatSettingsInputsState=er;exports.chatSettingsValueState=ei;exports.configState=ef;exports.currentThreadIdState=ev;exports.defaultChainlitContext=eM;exports.deleteMessageById=ex;exports.elementState=ea;exports.fetcher=eE;exports.firstUserInteraction=es;exports.hasMessageById=ew;exports.isLastMessage=eg;exports.loadingState=ee;exports.messagesState=Q;exports.nestMessages=ey;exports.sessionIdState=K;exports.sessionState=Y;exports.sideViewState=ep;exports.tasklistState=eu;exports.threadHistoryState=ed;exports.threadIdToResumeState=J;exports.tokenCountState=Z;exports.updateMessageById=eR;exports.updateMessageContentById=e_;exports.useApi=ej;exports.useAudio=eG;exports.useAuth=eA;exports.useChatData=eh;exports.useChatInteract=eU;exports.useChatMessages=eF;exports.useChatSession=eL;exports.useConfig=eH;exports.userState=el;//# sourceMappingURL=out.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|