@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/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 | IAvatarElement | ITasklistElement | IAudioElement | IVideoElement | IFileElement | IPlotlyElement;
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
- avatars: IAvatarElement[];
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
- declare const useAuth: (apiClient: ChainlitAPI) => {
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>(client: ChainlitAPI, path?: string | null, options?: SWRConfiguration): swr__internal.SWRResponse<T, Error, Partial<swr__internal.PublicConfiguration<T, Error, swr__internal.BareFetcher<T>>> | undefined>;
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: 'app' | 'copilot' | 'teams' | 'slack';
365
+ type: 'webapp' | 'copilot' | 'teams' | 'slack' | 'discord';
270
366
  on401?: (() => void) | undefined;
271
367
  onError?: ((error: ClientError) => void) | undefined;
272
- constructor(httpEndpoint: string, type: 'app' | 'copilot' | 'teams' | 'slack', on401?: (() => void) | undefined, onError?: ((error: ClientError) => void) | undefined);
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 useChatInteract: () => {
311
- uploadFile: (client: ChainlitAPI, file: File, onProgress: (progress: number) => void) => {
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, GenerationMessageRole, IAction, IAsk, IAudioElement, IAvatarElement, IBaseGeneration, ICallFn, IChatGeneration, ICompletionGeneration, IElement, IElementSize, IFeedback, IFileElement, IFileRef, IFunction, IGeneration, IGenerationMessage, IImageElement, ILLMSettings, IMessageElement, IPageInfo, IPagination, IPdfElement, IPlotlyElement, ISession, IStep, ITasklistElement, ITextElement, IThread, IThreadFilters, IToken, ITool, IUser, IUserMetadata, IVideoElement, ThreadHistory, UserInput, accessTokenState, actionState, addMessage, addMessageToParent, askUserState, avatarState, callFnState, chatProfileState, chatSettingsDefaultValueSelector, chatSettingsInputsState, chatSettingsValueState, deleteMessageById, elementState, fetcher, firstUserInteraction, hasMessageById, isLastMessage, loadingState, messagesState, nestMessages, sessionIdState, sessionState, sideViewState, tasklistState, threadHistoryState, threadIdToResumeState, tokenCountState, updateMessageById, updateMessageContentById, useApi, useAuth, useChatData, useChatInteract, useChatMessages, useChatSession, userState };
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