@chainlit/react-client 0.0.1 → 0.0.4

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
@@ -1,7 +1,7 @@
1
1
  import * as recoil from 'recoil';
2
- import * as lodash from 'lodash';
3
2
  import { Socket } from 'socket.io-client';
4
3
  export { Socket } from 'socket.io-client';
4
+ import * as lodash from 'lodash';
5
5
  import * as swr__internal from 'swr/_internal';
6
6
  import { SWRConfiguration } from 'swr';
7
7
 
@@ -23,57 +23,56 @@ type IElementSize = 'small' | 'medium' | 'large';
23
23
  interface TElement<T> {
24
24
  id: string;
25
25
  type: T;
26
- conversationId?: string;
27
- forIds?: string[];
26
+ threadId?: string;
27
+ forId: string;
28
+ mime?: string;
28
29
  url?: string;
30
+ chainlitKey?: string;
29
31
  }
30
32
  interface TMessageElement<T> extends TElement<T> {
31
33
  name: string;
32
34
  display: 'inline' | 'side' | 'page';
33
35
  }
34
36
  interface IImageElement extends TMessageElement<'image'> {
35
- content?: ArrayBuffer;
36
37
  size?: IElementSize;
37
38
  }
38
39
  interface IAvatarElement extends TElement<'avatar'> {
39
40
  name: string;
40
- content?: ArrayBuffer;
41
41
  }
42
42
  interface ITextElement extends TMessageElement<'text'> {
43
- content?: string;
44
43
  language?: string;
45
44
  }
46
45
  interface IPdfElement extends TMessageElement<'pdf'> {
47
- content?: string;
46
+ page?: number;
48
47
  }
49
48
  interface IAudioElement extends TMessageElement<'audio'> {
50
- content?: ArrayBuffer;
51
49
  }
52
50
  interface IVideoElement extends TMessageElement<'video'> {
53
- content?: ArrayBuffer;
54
51
  size?: IElementSize;
55
52
  }
56
53
  interface IFileElement extends TMessageElement<'file'> {
57
54
  type: 'file';
58
- mime?: string;
59
- content?: ArrayBuffer;
60
55
  }
61
56
  interface IPlotlyElement extends TMessageElement<'plotly'> {
62
- content?: string;
63
57
  }
64
58
  interface ITasklistElement extends TElement<'tasklist'> {
65
- content?: string;
66
59
  }
67
60
 
68
- interface IBaseTemplate {
69
- template?: string;
70
- formatted?: string;
71
- template_format: string;
61
+ interface IFeedback {
62
+ id?: string;
63
+ forId?: string;
64
+ comment?: string;
65
+ strategy: 'BINARY';
66
+ value: number;
72
67
  }
73
- type PromptMessageRole = 'system' | 'assistant' | 'user' | 'function';
68
+
69
+ type GenerationMessageRole = 'system' | 'assistant' | 'user' | 'function' | 'tool';
74
70
  type ILLMSettings = Record<string, string | string[] | number | boolean>;
75
- interface IPromptMessage extends IBaseTemplate {
76
- role: PromptMessageRole;
71
+ interface IGenerationMessage {
72
+ template?: string;
73
+ formatted?: string;
74
+ templateFormat: string;
75
+ role: GenerationMessageRole;
77
76
  name?: string;
78
77
  }
79
78
  interface IFunction {
@@ -91,38 +90,49 @@ interface ITool {
91
90
  type: string;
92
91
  function: IFunction;
93
92
  }
94
- interface IPrompt extends IBaseTemplate {
93
+ interface IBaseGeneration {
95
94
  provider: string;
96
95
  id?: string;
97
96
  inputs?: Record<string, string>;
98
97
  completion?: string;
99
98
  settings?: ILLMSettings;
100
99
  functions?: IFunction[];
101
- messages?: IPromptMessage[];
100
+ tokenCount?: number;
102
101
  }
103
- interface IMessage {
104
- author: string;
105
- authorIsUser?: boolean;
106
- content?: string;
107
- createdAt: number | string;
108
- disableHumanFeedback?: boolean;
109
- elements?: IFileElement[];
110
- humanFeedback?: number;
111
- humanFeedbackComment?: string;
102
+ interface ICompletionGeneration extends IBaseGeneration {
103
+ type: 'COMPLETION';
104
+ template?: string;
105
+ formatted?: string;
106
+ templateFormat: string;
107
+ }
108
+ interface IChatGeneration extends IBaseGeneration {
109
+ type: 'CHAT';
110
+ messages?: IGenerationMessage[];
111
+ }
112
+ type IGeneration = ICompletionGeneration | IChatGeneration;
113
+
114
+ type StepType = 'assistant_message' | 'user_message' | 'system_message' | 'run' | 'tool' | 'llm' | 'embedding' | 'retrieval' | 'rerank' | 'undefined';
115
+ interface IStep {
112
116
  id: string;
113
- indent?: number;
117
+ name: string;
118
+ type: StepType;
119
+ threadId?: string;
120
+ parentId?: string;
114
121
  isError?: boolean;
122
+ showInput?: boolean | string;
123
+ waitForAnswer?: boolean;
124
+ input?: string;
125
+ output: string;
126
+ createdAt: number | string;
127
+ start?: number | string;
128
+ end?: number | string;
129
+ disableFeedback?: boolean;
130
+ feedback?: IFeedback;
115
131
  language?: string;
116
- parentId?: string;
117
- prompt?: IPrompt;
118
132
  streaming?: boolean;
119
- waitForAnswer?: boolean;
120
- subMessages?: IMessage[];
121
- }
122
- interface IMessageContent {
123
- elements: IMessageElement[];
124
- message: IMessage;
125
- preserveSize?: boolean;
133
+ generation?: IGeneration;
134
+ steps?: IStep[];
135
+ indent?: number;
126
136
  }
127
137
 
128
138
  interface FileSpec {
@@ -133,57 +143,51 @@ interface FileSpec {
133
143
  interface ActionSpec {
134
144
  keys?: string[];
135
145
  }
136
- interface IFileResponse {
137
- name: string;
138
- path?: string;
139
- size: number;
140
- type: string;
141
- content: ArrayBuffer;
146
+ interface IFileRef {
147
+ id: string;
142
148
  }
143
149
  interface IAsk {
144
- callback: (payload: IMessage | IFileResponse[] | IAction) => void;
150
+ callback: (payload: IStep | IFileRef[] | IAction) => void;
145
151
  spec: {
146
152
  type: 'text' | 'file' | 'action';
147
153
  timeout: number;
148
154
  } & FileSpec & ActionSpec;
149
155
  }
150
156
 
151
- type Role = 'USER' | 'ADMIN' | 'OWNER' | 'ANONYMOUS';
152
- type AppUserProvider = 'credentials' | 'header' | 'github' | 'google' | 'azure-ad';
153
- interface IAppUser {
154
- id: string;
155
- username: string;
156
- role: Role;
157
+ type AuthProvider = 'credentials' | 'header' | 'github' | 'google' | 'azure-ad';
158
+ interface IUserMetadata extends Record<string, any> {
157
159
  tags?: string[];
158
160
  image?: string;
159
- provider?: AppUserProvider;
161
+ provider?: AuthProvider;
162
+ }
163
+ interface IUser {
164
+ id: string;
165
+ identifier: string;
166
+ metadata: IUserMetadata;
160
167
  }
161
168
 
162
- interface IConversation {
169
+ interface IThread {
163
170
  id: string;
164
171
  createdAt: number | string;
165
- appUser?: IAppUser;
172
+ user?: IUser;
166
173
  metadata?: Record<string, any>;
167
- messages: IMessage[];
168
- elements: IElement[];
174
+ steps: IStep[];
175
+ elements?: IElement[];
169
176
  }
170
177
 
171
- type MessageHistory = {
178
+ type UserInput = {
172
179
  content: string;
173
180
  createdAt: number;
174
181
  };
175
- type ConversationsHistory = {
176
- conversations?: IConversation[];
177
- currentConversationId?: string;
178
- groupedConversations?: {
179
- [key: string]: IConversation[];
182
+ type ThreadHistory = {
183
+ threads?: IThread[];
184
+ currentThreadId?: string;
185
+ timeGroupedThreads?: {
186
+ [key: string]: IThread[];
180
187
  };
181
188
  pageInfo?: IPageInfo;
182
189
  };
183
190
 
184
- interface IMessageUpdate extends IMessage {
185
- newId?: string;
186
- }
187
191
  interface IToken {
188
192
  id: number | string;
189
193
  token: string;
@@ -204,55 +208,14 @@ declare const useChatData: () => {
204
208
  tasklists: ITasklistElement[];
205
209
  };
206
210
 
207
- declare const useChatInteract: () => {
208
- callAction: (action: IAction) => void;
209
- clear: () => void;
210
- replyMessage: (message: IMessage) => void;
211
- sendMessage: (message: IMessage, files?: IFileElement[]) => void;
212
- stopTask: () => void;
213
- setIdToResume: recoil.SetterOrUpdater<string | undefined>;
214
- updateChatSettings: (values: object) => void;
215
- };
216
-
217
- declare const useChatMessages: () => {
218
- messages: IMessage[];
219
- firstUserMessage: IMessage | undefined;
220
- };
221
-
222
- declare const useChatSession: () => {
223
- connect: lodash.DebouncedFunc<({ wsEndpoint, userEnv, accessToken }: {
224
- wsEndpoint: string;
225
- userEnv: Record<string, string>;
226
- accessToken?: string | undefined;
227
- }) => void>;
228
- disconnect: () => void;
229
- chatProfile: string | undefined;
230
- setChatProfile: recoil.SetterOrUpdater<string | undefined>;
231
- };
232
-
233
211
  declare const useAuth: (apiClient: ChainlitAPI) => {
234
- data: {
235
- requireLogin: boolean;
236
- passwordAuth: boolean;
237
- headerAuth: boolean;
238
- oauthProviders: string[];
239
- };
240
- user: null;
241
- role: string;
242
- isReady: boolean;
243
- isAuthenticated: boolean;
244
- accessToken: string;
245
- logout: () => void;
246
- setAccessToken: () => void;
247
- } | {
248
212
  data: {
249
213
  requireLogin: boolean;
250
214
  passwordAuth: boolean;
251
215
  headerAuth: boolean;
252
216
  oauthProviders: string[];
253
217
  } | undefined;
254
- user: IAppUser | null;
255
- role: Role | undefined;
218
+ user: IUser | null;
256
219
  isAuthenticated: boolean;
257
220
  isReady: boolean;
258
221
  accessToken: string | undefined;
@@ -263,8 +226,7 @@ declare const useAuth: (apiClient: ChainlitAPI) => {
263
226
  declare const fetcher: (client: ChainlitAPI, endpoint: string, token?: string) => Promise<any>;
264
227
  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>;
265
228
 
266
- interface IConversationsFilters {
267
- authorEmail?: string;
229
+ interface IThreadFilters {
268
230
  search?: string;
269
231
  feedback?: number;
270
232
  }
@@ -299,27 +261,62 @@ declare class APIBase {
299
261
  declare class ChainlitAPI extends APIBase {
300
262
  headerAuth(): Promise<any>;
301
263
  passwordAuth(data: FormData): Promise<any>;
302
- getCompletion(prompt: IPrompt, userEnv: {} | undefined, controller: AbortController, accessToken?: string, tokenCb?: (done: boolean, token: string) => void): Promise<ReadableStream<any>>;
303
- setHumanFeedback(messageId: string, feedback: number, feedbackComment?: string, accessToken?: string): Promise<void>;
304
- getConversations(pagination: IPagination, filter: IConversationsFilters, accessToken?: string): Promise<{
264
+ getGeneration(generation: IGeneration, userEnv: {} | undefined, controller: AbortController, accessToken?: string, tokenCb?: (done: boolean, token: string) => void): Promise<ReadableStream<any>>;
265
+ setFeedback(feedback: IFeedback, accessToken?: string): Promise<{
266
+ success: boolean;
267
+ feedbackId: string;
268
+ }>;
269
+ listThreads(pagination: IPagination, filter: IThreadFilters, accessToken?: string): Promise<{
305
270
  pageInfo: IPageInfo;
306
- data: IConversation[];
271
+ data: IThread[];
307
272
  }>;
308
- deleteConversation(conversationId: string, accessToken?: string): Promise<any>;
273
+ deleteThread(threadId: string, accessToken?: string): Promise<any>;
274
+ uploadFile(file: File, onProgress: (progress: number) => void, sessionId: string, token?: string): {
275
+ xhr: XMLHttpRequest;
276
+ promise: Promise<{
277
+ id: string;
278
+ }>;
279
+ };
280
+ getElementUrl(id: string, sessionId: string, accessToken?: string): string;
309
281
  getLogoEndpoint(theme: string): string;
310
282
  getOAuthEndpoint(provider: string): string;
311
283
  }
312
284
 
285
+ declare const useChatInteract: () => {
286
+ uploadFile: (client: ChainlitAPI, file: File, onProgress: (progress: number) => void) => {
287
+ xhr: XMLHttpRequest;
288
+ promise: Promise<{
289
+ id: string;
290
+ }>;
291
+ };
292
+ callAction: (action: IAction) => Promise<{
293
+ id: string;
294
+ status: boolean;
295
+ response?: string | undefined;
296
+ }> | undefined;
297
+ clear: () => void;
298
+ replyMessage: (message: IStep) => void;
299
+ sendMessage: (message: IStep, fileReferences?: IFileRef[]) => void;
300
+ stopTask: () => void;
301
+ setIdToResume: recoil.SetterOrUpdater<string | undefined>;
302
+ updateChatSettings: (values: object) => void;
303
+ };
304
+
305
+ declare const useChatMessages: () => {
306
+ messages: IStep[];
307
+ firstInteraction: string | undefined;
308
+ };
309
+
313
310
  interface ISession {
314
311
  socket: Socket;
315
312
  error?: boolean;
316
313
  }
317
- declare const conversationIdToResumeState: recoil.RecoilState<string | undefined>;
314
+ declare const threadIdToResumeState: recoil.RecoilState<string | undefined>;
318
315
  declare const chatProfileState: recoil.RecoilState<string | undefined>;
319
316
  declare const sessionIdState: recoil.RecoilState<string>;
320
317
  declare const sessionState: recoil.RecoilState<ISession | undefined>;
321
318
  declare const actionState: recoil.RecoilState<IAction[]>;
322
- declare const messagesState: recoil.RecoilState<IMessage[]>;
319
+ declare const messagesState: recoil.RecoilState<IStep[]>;
323
320
  declare const tokenCountState: recoil.RecoilState<number>;
324
321
  declare const loadingState: recoil.RecoilState<boolean>;
325
322
  declare const askUserState: recoil.RecoilState<IAsk | undefined>;
@@ -329,19 +326,31 @@ declare const chatSettingsValueState: recoil.RecoilState<any>;
329
326
  declare const elementState: recoil.RecoilState<IMessageElement[]>;
330
327
  declare const avatarState: recoil.RecoilState<IAvatarElement[]>;
331
328
  declare const tasklistState: recoil.RecoilState<ITasklistElement[]>;
332
- declare const firstUserMessageState: recoil.RecoilState<IMessage | undefined>;
329
+ declare const firstUserInteraction: recoil.RecoilState<string | undefined>;
333
330
  declare const accessTokenState: recoil.RecoilState<string | undefined>;
334
- declare const roleState: recoil.RecoilState<Role>;
335
- declare const userState: recoil.RecoilState<IAppUser | null>;
336
- declare const conversationsHistoryState: recoil.RecoilState<ConversationsHistory | undefined>;
331
+ declare const userState: recoil.RecoilState<IUser | null>;
332
+ declare const threadHistoryState: recoil.RecoilState<ThreadHistory | undefined>;
333
+
334
+ declare const useChatSession: () => {
335
+ connect: lodash.DebouncedFunc<({ client, userEnv, accessToken }: {
336
+ client: ChainlitAPI;
337
+ userEnv: Record<string, string>;
338
+ accessToken?: string | undefined;
339
+ }) => void>;
340
+ disconnect: () => void;
341
+ session: ISession | undefined;
342
+ chatProfile: string | undefined;
343
+ idToResume: string | undefined;
344
+ setChatProfile: recoil.SetterOrUpdater<string | undefined>;
345
+ };
337
346
 
338
- declare const nestMessages: (messages: IMessage[]) => IMessage[];
339
- declare const isLastMessage: (messages: IMessage[], index: number) => boolean;
340
- declare const addMessage: (messages: IMessage[], message: IMessage) => IMessage[];
341
- declare const addMessageToParent: (messages: IMessage[], parentId: string, newMessage: IMessage) => IMessage[];
342
- declare const hasMessageById: (messages: IMessage[], messageId: string) => boolean;
343
- declare const updateMessageById: (messages: IMessage[], messageId: string, updatedMessage: IMessage) => IMessage[];
344
- declare const deleteMessageById: (messages: IMessage[], messageId: string) => IMessage[];
345
- declare const updateMessageContentById: (messages: IMessage[], messageId: number | string, updatedContent: string, isSequence: boolean) => IMessage[];
347
+ declare const nestMessages: (messages: IStep[]) => IStep[];
348
+ declare const isLastMessage: (messages: IStep[], index: number) => boolean;
349
+ declare const addMessage: (messages: IStep[], message: IStep) => IStep[];
350
+ declare const addMessageToParent: (messages: IStep[], parentId: string, newMessage: IStep) => IStep[];
351
+ declare const hasMessageById: (messages: IStep[], messageId: string) => boolean;
352
+ declare const updateMessageById: (messages: IStep[], messageId: string, updatedMessage: IStep) => IStep[];
353
+ declare const deleteMessageById: (messages: IStep[], messageId: string) => IStep[];
354
+ declare const updateMessageContentById: (messages: IStep[], messageId: number | string, updatedContent: string, isSequence: boolean) => IStep[];
346
355
 
347
- export { APIBase, ActionSpec, AppUserProvider, ChainlitAPI, ClientError, ConversationsHistory, ElementType, FileSpec, IAction, IAppUser, IAsk, IAudioElement, IAvatarElement, IConversation, IConversationsFilters, IElement, IElementSize, IFileElement, IFileResponse, IFunction, IImageElement, ILLMSettings, IMessage, IMessageContent, IMessageElement, IMessageUpdate, IPageInfo, IPagination, IPdfElement, IPlotlyElement, IPrompt, IPromptMessage, ISession, ITasklistElement, ITextElement, IToken, ITool, IVideoElement, MessageHistory, PromptMessageRole, Role, accessTokenState, actionState, addMessage, addMessageToParent, askUserState, avatarState, chatProfileState, chatSettingsDefaultValueSelector, chatSettingsInputsState, chatSettingsValueState, conversationIdToResumeState, conversationsHistoryState, deleteMessageById, elementState, fetcher, firstUserMessageState, hasMessageById, isLastMessage, loadingState, messagesState, nestMessages, roleState, sessionIdState, sessionState, tasklistState, tokenCountState, updateMessageById, updateMessageContentById, useApi, useAuth, useChatData, useChatInteract, useChatMessages, useChatSession, userState };
356
+ export { APIBase, ActionSpec, AuthProvider, ChainlitAPI, ClientError, ElementType, FileSpec, GenerationMessageRole, IAction, IAsk, IAudioElement, IAvatarElement, IBaseGeneration, 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, chatProfileState, chatSettingsDefaultValueSelector, chatSettingsInputsState, chatSettingsValueState, deleteMessageById, elementState, fetcher, firstUserInteraction, hasMessageById, isLastMessage, loadingState, messagesState, nestMessages, sessionIdState, sessionState, tasklistState, threadHistoryState, threadIdToResumeState, tokenCountState, updateMessageById, updateMessageContentById, useApi, useAuth, useChatData, useChatInteract, useChatMessages, useChatSession, 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,a,u){try{var i=e[a](u);var s=i.value}catch(e){n(e);return}if(i.done){t(s)}else{Promise.resolve(s).then(r,o)}}function a(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var u=e.apply(t,n);function i(e){o(u,r,a,i,s,"next",e)}function s(e){o(u,r,a,i,s,"throw",e)}i(undefined)})}}function u(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function i(e,t,n){if(P()){i=Reflect.construct}else{i=function e(e,t,n){var r=[null];r.push.apply(r,t);var o=Function.bind.apply(e,r);var a=new o;if(n)O(a,n.prototype);return a}}return i.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 a=false;var u,i;try{for(n=n.call(e);!(o=(u=n.next()).done);o=true){r.push(u.value);if(t&&r.length===t)break}}catch(e){a=true;i=e}finally{try{if(!o&&n["return"]!=null)n["return"]()}finally{if(a)throw i}}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 b(){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 S(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 m(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{m(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 a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++){r=a[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,a;for(a=0;a<r.length;a++){o=r[a];if(t.indexOf(o)>=0)continue;n[o]=e[o]}return n}function x(e,t){if(t&&(j(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 M(e,n){return t(e)||y(e,n)||I(e,n)||g()}function C(e){return n(e)||h(e)||I(e)||b()}function j(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||!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 i(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(e)}function P(){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 _(e){var t=P();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,a,u={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]};return(a={next:i(0),"throw":i(1),"return":i(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a);function i(e){return function(t){return s([e,t])}}function s(a){if(n)throw new TypeError("Generator is already executing.");while(u)try{if(n=1,r&&(o=a[0]&2?r["return"]:a[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;if(r=0,o)a=[a[0]&2,o.value];switch(a[0]){case 0:case 1:o=a;break;case 4:u.label++;return{value:a[1],done:false};case 5:u.label++;r=a[1];a=[0];continue;case 7:a=u.ops.pop();u.trys.pop();continue;default:if(!(o=u.trys,o=o.length>0&&o[o.length-1])&&(a[0]===6||a[0]===2)){u=0;continue}if(a[0]===3&&(!o||a[1]>o[0]&&a[1]<o[3])){u.label=a[1];break}if(a[0]===6&&u.label<o[1]){u.label=o[1];o=a;break}if(o&&u.label<o[2]){u.label=o[2];u.ops.push(a);break}if(o[2])u.ops.pop();u.trys.pop();continue}a=t.call(e,u)}catch(e){a=[6,e];r=0}finally{n=o=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}}var T=require("recoil");var D=require("lodash/isEqual");var V=require("uuid");var q=require("react");var U=require("lodash/debounce");var B=require("socket.io-client");var L=require("jwt-decode");var F=require("swr");function H(e){return e&&e.__esModule?e:{default:e}}var N=/*#__PURE__*/H(D);var X=/*#__PURE__*/H(U);var z=/*#__PURE__*/H(B);var G=/*#__PURE__*/H(L);var J=/*#__PURE__*/H(F);var W=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 a=new Date;return a.setDate(n.getDate()-30),e.forEach(function(e){var u=new Date(e.createdAt),i=u.toDateString()===n.toDateString(),s=u.toDateString()===r.toDateString(),c=u>=o,l=u>=a,f;i?f="Today":s?f="Yesterday":c?f="Previous 7 days":l?f="Previous 30 days":f=u.toLocaleString("default",{month:"long",year:"numeric"}).split(" ").slice(0,1).join(" "),t[f]||(t[f]=[]),t[f].push(e)}),t};var Y=T.atom({key:"ConversationIdToResume",default:void 0}),$=T.atom({key:"ChatProfile",default:void 0}),K=T.atom({key:"SessionId",default:V.v4()}),Q=T.selector({key:"SessionIdSelector",get:function(e){var t=e.get;return t(K)},set:function(e,t){var n=e.set;return n(K,v(t,T.DefaultValue)?V.v4():t)}}),Z=T.atom({key:"Session",dangerouslyAllowMutability:!0,default:void 0}),ee=T.atom({key:"Actions",default:[]}),et=T.atom({key:"Messages",dangerouslyAllowMutability:!0,default:[]}),en=T.atom({key:"TokenCount",default:0}),er=T.atom({key:"Loading",default:!1}),eo=T.atom({key:"AskUser",default:void 0}),ea=T.atom({key:"ChatSettings",default:[]}),eu=T.selector({key:"ChatSettingsValue/Default",get:function(e){var t=e.get;return t(ea).reduce(function(e,t){return e[t.id]=t.initial,e},{})}}),ei=T.atom({key:"ChatSettingsValue",default:eu}),es=T.atom({key:"DisplayElements",default:[]}),ec=T.atom({key:"AvatarElements",default:[]}),el=T.atom({key:"TasklistElements",default:[]}),ef=T.atom({key:"FirstUserMessage",default:void 0}),ed=T.atom({key:"AccessToken",default:void 0}),ev=T.atom({key:"Role",default:void 0}),ep=T.atom({key:"User",default:null}),eh=T.atom({key:"ConversationsHistory",default:{conversations:void 0,currentConversationId:void 0,groupedConversations: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.groupedConversations;(e===null||e===void 0?void 0:e.conversations)&&!N.default(e.conversations,n===null||n===void 0?void 0:n.groupedConversations)&&(r=W(e.conversations)),t(k(S({},e),{groupedConversations:r}))})}]});var ey=function(){var e=T.useRecoilValue(er),t=T.useRecoilValue(es),n=T.useRecoilValue(ec),r=T.useRecoilValue(el),o=T.useRecoilValue(ee),a=T.useRecoilValue(Z),u=T.useRecoilValue(eo),i=T.useRecoilValue(ea),s=T.useRecoilValue(ei),c=T.useRecoilValue(eu),l=(a===null||a===void 0?void 0:a.socket.connected)&&!(a===null||a===void 0?void 0:a.error),f=!l||e||(u===null||u===void 0?void 0:u.spec.type)==="file"||(u===null||u===void 0?void 0:u.spec.type)==="action";return{actions:o,askUser:u,avatars:n,chatSettingsDefaultValue:c,chatSettingsInputs:i,chatSettingsValue:s,connected:l,disabled:f,elements:t,error:a===null||a===void 0?void 0:a.error,loading:e,tasklists:r}};var eg=function(e){var t=[];var n=true,r=false,o=undefined;try{for(var a=e[Symbol.iterator](),u;!(n=(u=a.next()).done);n=true){var i=u.value;t=eS(t,i)}}catch(e){r=true;o=e}finally{try{if(!n&&a.return!=null){a.return()}}finally{if(r){throw o}}}return t},eb=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},eS=function(e,t){return ew(e,t.id)?eR(e,t.id,t):t.parentId?ek(e,t.parentId,t):t.indent&&t.indent>0?em(e,t.indent,t):C(e).concat([t])},em=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;var o=C(e);if(o.length===0)return C(o).concat([n]);{var a=o.length-1,u=o[a];return u.subMessages=u.subMessages||[],r+1===t?(u.subMessages=C(u.subMessages).concat([n]),o[a]=S({},u),o):(u.subMessages=em(u.subMessages,t,n,r+1),o[a]=S({},u),o)}},ek=function(e,t,n){var r=C(e);for(var o=0;o<r.length;o++){var a=r[o];N.default(a.id,t)?(a.subMessages=a.subMessages?C(a.subMessages).concat([n]):[n],r[o]=S({},a)):ew(r,t)&&a.subMessages&&(a.subMessages=ek(a.subMessages,t,n),r[o]=S({},a))}return r},ew=function(e,t){var n=true,r=false,o=undefined;try{for(var a=e[Symbol.iterator](),u;!(n=(u=a.next()).done);n=true){var i=u.value;if(N.default(i.id,t))return!0;if(i.subMessages&&i.subMessages.length>0&&ew(i.subMessages,t))return!0}}catch(e){r=true;o=e}finally{try{if(!n&&a.return!=null){a.return()}}finally{if(r){throw o}}}return!1},eR=function(e,t,n){var r=C(e);for(var o=0;o<r.length;o++){var a=r[o];N.default(a.id,t)?r[o]=S({subMessages:a.subMessages},n):ew(r,t)&&a.subMessages&&(a.subMessages=eR(a.subMessages,t,n),r[o]=S({},a))}return r},ex=function(e,t){var n=C(e);for(var r=0;r<n.length;r++){var o=n[r];o.id===t?n=C(n.slice(0,r)).concat(C(n.slice(r+1))):ew(n,t)&&o.subMessages&&(o.subMessages=ex(o.subMessages,t),n[r]=S({},o))}return n},eO=function(e,t,n,r){var o=C(e);for(var a=0;a<o.length;a++){var u=o[a];N.default(u.id,t)?(r?u.content=n:u.content+=n,o[a]=S({},u)):u.subMessages&&(u.subMessages=eO(u.subMessages,t,n,r),o[a]=S({},u))}return o};var eM=function(){var e=T.useRecoilValue(Z),t=T.useRecoilValue(eo),n=T.useResetRecoilState(ea),r=T.useResetRecoilState(Q),o=T.useResetRecoilState(ei),a=T.useSetRecoilState(ef),u=T.useSetRecoilState(er),i=T.useSetRecoilState(et),s=T.useSetRecoilState(es),c=T.useSetRecoilState(ec),l=T.useSetRecoilState(el),f=T.useSetRecoilState(ee),d=T.useSetRecoilState(en),v=T.useSetRecoilState(Y),p=q.useCallback(function(){e===null||e===void 0?void 0:e.socket.emit("clear_session"),e===null||e===void 0?void 0:e.socket.disconnect(),v(void 0),r(),a(void 0),i([]),s([]),c([]),l([]),f([]),d(0),n(),o()},[e]),h=q.useCallback(function(t,n){i(function(e){return eS(e,t)}),e===null||e===void 0?void 0:e.socket.emit("ui_message",{message:t,files:n})},[e]),y=q.useCallback(function(e){t&&(i(function(t){return eS(t,e)}),t.callback(e))},[t,e]),g=q.useCallback(function(t){e===null||e===void 0?void 0:e.socket.emit("chat_settings_change",t)},[e]),b=q.useCallback(function(){u(!1),e===null||e===void 0?void 0:e.socket.emit("stop")},[e]);return{callAction:q.useCallback(function(t){e===null||e===void 0?void 0:e.socket.emit("action_call",t)},[e]),clear:p,replyMessage:y,sendMessage:h,stopTask:b,setIdToResume:v,updateChatSettings:g}};var eC=function(){var e=T.useRecoilValue(et),t=T.useRecoilValue(ef);return{messages:e,firstUserMessage:t}};var ej=function(){var e=T.useRecoilValue(Q),t=M(T.useRecoilState(Z),2),n=t[0],r=t[1],o=T.useResetRecoilState(ei),a=T.useSetRecoilState(ef),u=T.useSetRecoilState(er),i=T.useSetRecoilState(et),s=T.useSetRecoilState(eo),c=T.useSetRecoilState(es),l=T.useSetRecoilState(ec),f=T.useSetRecoilState(el),d=T.useSetRecoilState(ee),v=T.useSetRecoilState(ea),p=T.useSetRecoilState(en),h=M(T.useRecoilState($),2),y=h[0],g=h[1],b=T.useRecoilValue(Y),m=q.useCallback(function(t){var n=t.wsEndpoint,h=t.userEnv,m=t.accessToken;var w=z.default(n,{path:"/ws/socket.io",extraHeaders:{Authorization:m||"","X-Chainlit-Session-Id":e,"X-Chainlit-Conversation-Id":b||"","user-env":JSON.stringify(h),"X-Chainlit-Chat-Profile":y||""}});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:w}}),w.on("connect",function(){w.emit("connection_successful"),r(function(e){return k(S({},e),{error:!1})})}),w.on("connect_error",function(e){r(function(e){return k(S({},e),{error:!0})})}),w.on("task_start",function(){u(!0)}),w.on("task_end",function(){u(!1)}),w.on("reload",function(){w.emit("clear_session"),window.location.reload()}),w.on("resume_conversation",function(e){var t,n;var r=[];var o=true,a=false,u=undefined;try{for(var s=e.messages[Symbol.iterator](),d;!(o=(d=s.next()).done);o=true){var v=d.value;r=eS(r,v)}}catch(e){a=true;u=e}finally{try{if(!o&&s.return!=null){s.return()}}finally{if(a){throw u}}}((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),i(r),l(e.elements.filter(function(e){return e.type==="avatar"})),f(e.elements.filter(function(e){return e.type==="tasklist"})),c(e.elements.filter(function(e){return["avatar","tasklist"].indexOf(e.type)===-1}))}),w.on("new_message",function(e){i(function(t){return eS(t,e)})}),w.on("init_conversation",function(e){a(e)}),w.on("update_message",function(e){i(function(t){return eR(t,e.id,e)})}),w.on("delete_message",function(e){i(function(t){return ex(t,e.id)})}),w.on("stream_start",function(e){i(function(t){return eS(t,e)})}),w.on("stream_token",function(e){var t=e.id,n=e.token,r=e.isSequence;i(function(e){return eO(e,t,n,r)})}),w.on("ask",function(e,t){var n=e.msg,r=e.spec;s({spec:r,callback:t}),i(function(e){return eS(e,n)}),u(!1)}),w.on("ask_timeout",function(){s(void 0),u(!1)}),w.on("clear_ask",function(){s(void 0)}),w.on("chat_settings",function(e){v(e),o()}),w.on("element",function(e){e.type==="avatar"?l(function(t){return C(t).concat([e])}):e.type==="tasklist"?f(function(t){return C(t).concat([e])}):c(function(t){return C(t).concat([e])})}),w.on("update_element",function(e){c(function(t){var n=t.findIndex(function(t){return t.id===e.id});if(n===-1)return t;var r=k(S({},t[n]),{forIds:e.forIds});return C(t.slice(0,n)).concat([r],C(t.slice(n+1)))})}),w.on("remove_element",function(e){c(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})}),l(function(t){return t.filter(function(t){return t.id!==e.id})})}),w.on("action",function(e){d(function(t){return C(t).concat([e])})}),w.on("remove_action",function(e){d(function(t){var n=t.findIndex(function(t){return t.id===e.id});return n===-1?t:C(t.slice(0,n)).concat(C(t.slice(n+1)))})}),w.on("token_usage",function(e){p(function(t){return t+e})})},[r,e,y]),w=q.useCallback(X.default(m,200),[m]),R=q.useCallback(function(){(n===null||n===void 0?void 0:n.socket)&&(n.socket.removeAllListeners(),n.socket.close())},[n]);return{connect:w,disconnect:R,chatProfile:y,setChatProfile:g}};var eI="token";function eE(){try{return localStorage.getItem(eI)}catch(e){return}}function eP(e){try{return localStorage.setItem(eI,e)}catch(e){return}}function e_(){try{return localStorage.removeItem(eI)}catch(e){return}}var eA=function(){var e=a(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 eT(e,t,n){var r=T.useRecoilValue(ed);return J.default(t?[t,r]:null,function(t){var n=M(t,2),r=n[0],o=n[1];return eA(e,r,o)},n)}var eD=function(e){var t=eT(e,"/auth/config"),n=t.data,r=t.isLoading,o=M(T.useRecoilState(ed),2),a=o[0],u=o[1],i=T.useSetRecoilState(eh),s=M(T.useRecoilState(ep),2),c=s[0],l=s[1],f=!!(!r&&n),d=function(){l(null),e_(),u(""),i(void 0)},v=function(e){if(!e){d();return}try{var t=G.default(e),n=t.exp,r=w(t,["exp"]);eP(e),u("Bearer ".concat(e)),l(r)}catch(e){console.error("Invalid token, clearing token from local storage","error:",e),d()}};q.useEffect(function(){if(!c&&eE()){v(eE());return}},[]);var p=!!a;return n&&!n.requireLogin?{data:n,user:null,role:"ANONYMOUS",isReady:f,isAuthenticated:!0,accessToken:"",logout:function(){},setAccessToken:function(){}}:{data:n,user:c,role:c===null||c===void 0?void 0:c.role,isAuthenticated:p,isReady:f,accessToken:a,logout:d,setAccessToken:v}};var eV=/*#__PURE__*/function(e){d(n,e);var t=_(n);function n(e,r){u(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)),eq=/*#__PURE__*/function(){function e(t,n,r){u(this,e);this.httpEndpoint=t;this.on401=n;this.onError=r}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 u=this;return a(function(){var a,i,s,c,l;return A(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);a={};n&&(a.Authorization=u.checkToken(n));v(r,FormData)?i=r:(a["Content-Type"]="application/json",i=r?JSON.stringify(r):null);return[4,fetch(u.buildEndpoint(t),{method:e,headers:a,signal:o,body:i})];case 1:s=f.sent();if(!!s.ok)return[3,3];return[4,s.json()];case 2:c=f.sent();throw s.status===401&&u.on401&&(e_(),u.on401()),new eV(s.statusText,c.detail);case 3:return[2,s];case 4:l=f.sent();throw v(l,eV)&&u.onError&&u.onError(l),console.error(l),l;case 5:return[2]}})})()}},{key:"get",value:function e(e,t){var n=this;return a(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 a(function(){return A(this,function(a){switch(a.label){case 0:return[4,o.fetch("POST",e,n,t,r)];case 1:return[2,a.sent()]}})})()}},{key:"put",value:function e(e,t,n){var r=this;return a(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 a(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 a(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}(),eU=/*#__PURE__*/function(e){d(n,e);var t=_(n);function n(){u(this,n);return t.apply(this,arguments)}c(n,[{key:"headerAuth",value:function e(){var e=this;return a(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 a(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:"getCompletion",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 u=this;return a(function(){var a,i,s;return A(this,function(c){switch(c.label){case 0:return[4,u.post("/completion",{prompt:e,userEnv:t},r,n.signal)];case 1:s=(i=c.sent())===null||i===void 0?void 0:(a=i.body)===null||a===void 0?void 0:a.getReader();return[2,new ReadableStream({start:function e(e){function t(){s.read().then(function(n){var r=n.done,a=n.value;if(r){e.close(),o&&o(r,"");return}var u=new TextDecoder("utf-8").decode(a);o&&o(r,u),e.enqueue(a),t()}).catch(function(t){e.close(),o&&o(!0,""),console.error(t)})}t()}})]}})})()}},{key:"setHumanFeedback",value:function e(e,t,n,r){var o=this;return a(function(){return A(this,function(a){switch(a.label){case 0:return[4,o.put("/message/feedback",{messageId:e,feedback:t,feedbackComment:n},r)];case 1:a.sent();return[2]}})})()}},{key:"getConversations",value:function e(e,t,n){var r=this;return a(function(){return A(this,function(o){switch(o.label){case 0:return[4,r.post("/project/conversations",{pagination:e,filter:t},n)];case 1:return[2,o.sent().json()]}})})()}},{key:"deleteConversation",value:function e(e,t){var n=this;return a(function(){return A(this,function(r){switch(r.label){case 0:return[4,n.delete("/project/conversation",{conversationId:e},t)];case 1:return[2,r.sent().json()]}})})()}},{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}(eq);Object.defineProperty(exports,"Socket",{enumerable:true,get:function e(){return B.Socket}});exports.APIBase=eq;exports.ChainlitAPI=eU;exports.ClientError=eV;exports.accessTokenState=ed;exports.actionState=ee;exports.addMessage=eS;exports.addMessageToParent=ek;exports.askUserState=eo;exports.avatarState=ec;exports.chatProfileState=$;exports.chatSettingsDefaultValueSelector=eu;exports.chatSettingsInputsState=ea;exports.chatSettingsValueState=ei;exports.conversationIdToResumeState=Y;exports.conversationsHistoryState=eh;exports.deleteMessageById=ex;exports.elementState=es;exports.fetcher=eA;exports.firstUserMessageState=ef;exports.hasMessageById=ew;exports.isLastMessage=eb;exports.loadingState=er;exports.messagesState=et;exports.nestMessages=eg;exports.roleState=ev;exports.sessionIdState=Q;exports.sessionState=Z;exports.tasklistState=el;exports.tokenCountState=en;exports.updateMessageById=eR;exports.updateMessageContentById=eO;exports.useApi=eT;exports.useAuth=eD;exports.useChatData=ey;exports.useChatInteract=eM;exports.useChatMessages=eC;exports.useChatSession=ej;exports.userState=ep;//# 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,u){try{var a=e[i](u);var s=a.value}catch(e){n(e);return}if(a.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 u=e.apply(t,n);function a(e){o(u,r,i,a,s,"next",e)}function s(e){o(u,r,i,a,s,"throw",e)}a(undefined)})}}function u(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function a(e,t,n){if(_()){a=Reflect.construct}else{a=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 a.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 u,a;try{for(n=n.call(e);!(o=(u=n.next()).done);o=true){r.push(u.value);if(t&&r.length===t)break}}catch(e){i=true;a=e}finally{try{if(!o&&n["return"]!=null)n["return"]()}finally{if(i)throw a}}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 S(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 m(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{m(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 j(e,n){return t(e)||y(e,n)||I(e,n)||b()}function E(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 P(e){var t=typeof Map==="function"?new Map:undefined;P=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 a(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 P(e)}function _(){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=_();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 C(e,t){var n,r,o,i,u={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]};return(i={next:a(0),"throw":a(1),"return":a(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i);function a(e){return function(t){return s([e,t])}}function s(i){if(n)throw new TypeError("Generator is already executing.");while(u)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:u.label++;return{value:i[1],done:false};case 5:u.label++;r=i[1];i=[0];continue;case 7:i=u.ops.pop();u.trys.pop();continue;default:if(!(o=u.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){u=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]<o[3])){u.label=i[1];break}if(i[0]===6&&u.label<o[1]){u.label=o[1];o=i;break}if(o&&u.label<o[2]){u.label=o[2];u.ops.push(i);break}if(o[2])u.ops.pop();u.trys.pop();continue}i=t.call(e,u)}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 B=require("jwt-decode");var L=require("swr");function F(e){return e&&e.__esModule?e:{default:e}}var G=/*#__PURE__*/F(U);var H=/*#__PURE__*/F(B);var X=/*#__PURE__*/F(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 u=new Date(e.createdAt),a=u.toDateString()===n.toDateString(),s=u.toDateString()===r.toDateString(),c=u>=o,l=u>=i,f;a?f="Today":s?f="Yesterday":c?f="Previous 7 days":l?f="Previous 30 days":f=u.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:"ChatSettings",default:[]}),er=D.selector({key:"ChatSettingsValue/Default",get:function(e){var t=e.get;return t(en).reduce(function(e,t){return e[t.id]=t.initial,e},{})}}),eo=D.atom({key:"ChatSettingsValue",default:er}),ei=D.atom({key:"DisplayElements",default:[]}),eu=D.atom({key:"AvatarElements",default:[]}),ea=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:"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(S({},e),{timeGroupedThreads:r}))})}]});var ed=function(){var e=D.useRecoilValue(ee),t=D.useRecoilValue(ei),n=D.useRecoilValue(eu),r=D.useRecoilValue(ea),o=D.useRecoilValue($),i=D.useRecoilValue(Y),u=D.useRecoilValue(et),a=D.useRecoilValue(en),s=D.useRecoilValue(eo),c=D.useRecoilValue(er),l=(i===null||i===void 0?void 0:i.socket.connected)&&!(i===null||i===void 0?void 0:i.error),f=!l||e||(u===null||u===void 0?void 0:u.spec.type)==="file"||(u===null||u===void 0?void 0:u.spec.type)==="action";return{actions:o,askUser:u,avatars:n,chatSettingsDefaultValue:c,chatSettingsInputs:a,chatSettingsValue:s,connected:l,disabled:f,elements:t,error:i===null||i===void 0?void 0:i.error,loading:e,tasklists:r}};var ev=function(e){var t=[];var n=true,r=false,o=undefined;try{for(var i=e[Symbol.iterator](),u;!(n=(u=i.next()).done);n=true){var a=u.value;t=eh(t,a)}}catch(e){r=true;o=e}finally{try{if(!n&&i.return!=null){i.return()}}finally{if(r){throw o}}}return t},ep=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},eh=function(e,t){return eg(e,t.id)?eS(e,t.id,t):"parentId"in t&&t.parentId?eb(e,t.parentId,t):"indent"in t&&t.indent&&t.indent>0?ey(e,t.indent,t):E(e).concat([t])},ey=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;var o=E(e);if(o.length===0)return E(o).concat([n]);{var i=o.length-1,u=o[i];return u.steps=u.steps||[],r+1===t?(u.steps=E(u.steps).concat([n]),o[i]=S({},u),o):(u.steps=ey(u.steps,t,n,r+1),o[i]=S({},u),o)}},eb=function(e,t,n){var r=E(e);for(var o=0;o<r.length;o++){var i=r[o];V.isEqual(i.id,t)?(i.steps=i.steps?E(i.steps).concat([n]):[n],r[o]=S({},i)):eg(r,t)&&i.steps&&(i.steps=eb(i.steps,t,n),r[o]=S({},i))}return r},eg=function(e,t){var n=true,r=false,o=undefined;try{for(var i=e[Symbol.iterator](),u;!(n=(u=i.next()).done);n=true){var a=u.value;if(V.isEqual(a.id,t))return!0;if(a.steps&&a.steps.length>0&&eg(a.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},eS=function(e,t,n){var r=E(e);for(var o=0;o<r.length;o++){var i=r[o];V.isEqual(i.id,t)?r[o]=S({steps:i.steps},n):eg(r,t)&&i.steps&&(i.steps=eS(i.steps,t,n),r[o]=S({},i))}return r},em=function(e,t){var n=E(e);for(var r=0;r<n.length;r++){var o=n[r];o.id===t?n=E(n.slice(0,r)).concat(E(n.slice(r+1))):eg(n,t)&&o.steps&&(o.steps=em(o.steps,t),n[r]=S({},o))}return n},ek=function(e,t,n,r){var o=E(e);for(var i=0;i<o.length;i++){var u=o[i];V.isEqual(u.id,t)?("content"in u&&u.content!==void 0?r?u.content=n:u.content+=n:"output"in u&&u.output!==void 0&&(r?u.output=n:u.output+=n),o[i]=S({},u)):u.steps&&(u.steps=ek(u.steps,t,n,r),o[i]=S({},u))}return o};var ew=function(){var e=D.useRecoilValue(ec),t=D.useRecoilValue(Y),n=D.useRecoilValue(et),r=D.useRecoilValue(K),o=D.useResetRecoilState(en),i=D.useResetRecoilState(K),u=D.useResetRecoilState(eo),a=D.useSetRecoilState(es),s=D.useSetRecoilState(ee),c=D.useSetRecoilState(Q),l=D.useSetRecoilState(ei),f=D.useSetRecoilState(eu),d=D.useSetRecoilState(ea),v=D.useSetRecoilState($),p=D.useSetRecoilState(Z),h=D.useSetRecoilState(J),y=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(),a(void 0),c([]),l([]),f([]),d([]),v([]),p(0),o(),u()},[t]),b=q.useCallback(function(e,n){c(function(t){return eh(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]),g=q.useCallback(function(e){n&&(c(function(t){return eh(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]),m=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]),k=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:k,clear:y,replyMessage:g,sendMessage:b,stopTask:m,setIdToResume:h,updateChatSettings:S}};var eR=function(){var e=D.useRecoilValue(Q),t=D.useRecoilValue(es);return{messages:e,firstInteraction:t}};var ex=function(){var e=D.useRecoilValue(K),t=j(D.useRecoilState(Y),2),n=t[0],r=t[1],o=D.useResetRecoilState(eo),i=D.useSetRecoilState(es),u=D.useSetRecoilState(ee),a=D.useSetRecoilState(Q),s=D.useSetRecoilState(et),c=D.useSetRecoilState(ei),l=D.useSetRecoilState(eu),f=D.useSetRecoilState(ea),d=D.useSetRecoilState($),v=D.useSetRecoilState(en),p=D.useSetRecoilState(Z),h=j(D.useRecoilState(N),2),y=h[0],b=h[1],g=D.useRecoilValue(J),m=q.useCallback(function(t){var n=t.client,h=t.userEnv,m=t.accessToken;var w=G.default(n.httpEndpoint,{path:"/ws/socket.io",extraHeaders:{Authorization:m||"","X-Chainlit-Session-Id":e,"X-Chainlit-Thread-Id":g||"","user-env":JSON.stringify(h),"X-Chainlit-Chat-Profile":y||""}});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:w}}),w.on("connect",function(){w.emit("connection_successful"),r(function(e){return k(S({},e),{error:!1})})}),w.on("connect_error",function(e){r(function(e){return k(S({},e),{error:!0})})}),w.on("task_start",function(){u(!0)}),w.on("task_end",function(){u(!1)}),w.on("reload",function(){w.emit("clear_session"),window.location.reload()}),w.on("resume_thread",function(e){var t,n;var r=[];var o=true,i=false,u=undefined;try{for(var s=e.steps[Symbol.iterator](),d;!(o=(d=s.next()).done);o=true){var v=d.value;r=eh(r,v)}}catch(e){i=true;u=e}finally{try{if(!o&&s.return!=null){s.return()}}finally{if(i){throw u}}}((t=e.metadata)===null||t===void 0?void 0:t.chat_profile)&&b((n=e.metadata)===null||n===void 0?void 0:n.chat_profile),a(r);var p=e.elements||[];l(p.filter(function(e){return e.type==="avatar"})),f(p.filter(function(e){return e.type==="tasklist"})),c(p.filter(function(e){return["avatar","tasklist"].indexOf(e.type)===-1}))}),w.on("new_message",function(e){a(function(t){return eh(t,e)})}),w.on("first_interaction",function(e){i(e)}),w.on("update_message",function(e){a(function(t){return eS(t,e.id,e)})}),w.on("delete_message",function(e){a(function(t){return em(t,e.id)})}),w.on("stream_start",function(e){a(function(t){return eh(t,e)})}),w.on("stream_token",function(e){var t=e.id,n=e.token,r=e.isSequence;a(function(e){return ek(e,t,n,r)})}),w.on("ask",function(e,t){var n=e.msg,r=e.spec;s({spec:r,callback:t}),a(function(e){return eh(e,n)}),u(!1)}),w.on("ask_timeout",function(){s(void 0),u(!1)}),w.on("clear_ask",function(){s(void 0)}),w.on("chat_settings",function(e){v(e),o()}),w.on("element",function(t){!t.url&&t.chainlitKey&&(t.url=n.getElementUrl(t.chainlitKey,e,m)),t.type==="avatar"?l(function(e){var n=e.findIndex(function(e){return e.id===t.id});return n===-1?E(e).concat([t]):E(e.slice(0,n)).concat([t],E(e.slice(n+1)))}):t.type==="tasklist"?f(function(e){var n=e.findIndex(function(e){return e.id===t.id});return n===-1?E(e).concat([t]):E(e.slice(0,n)).concat([t],E(e.slice(n+1)))}):c(function(e){var n=e.findIndex(function(e){return e.id===t.id});return n===-1?E(e).concat([t]):E(e.slice(0,n)).concat([t],E(e.slice(n+1)))})}),w.on("remove_element",function(e){c(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})}),l(function(t){return t.filter(function(t){return t.id!==e.id})})}),w.on("action",function(e){d(function(t){return E(t).concat([e])})}),w.on("remove_action",function(e){d(function(t){var n=t.findIndex(function(t){return t.id===e.id});return n===-1?t:E(t.slice(0,n)).concat(E(t.slice(n+1)))})}),w.on("token_usage",function(e){p(function(t){return t+e})})},[r,e,y]),w=q.useCallback(V.debounce(m,200),[m]),R=q.useCallback(function(){(n===null||n===void 0?void 0:n.socket)&&(n.socket.removeAllListeners(),n.socket.close())},[n]);return{connect:w,disconnect:R,session:n,chatProfile:y,idToResume:g,setChatProfile:b}};var eO="token";function ej(){try{return localStorage.getItem(eO)}catch(e){return}}function eE(e){try{return localStorage.setItem(eO,e)}catch(e){return}}function eT(){try{return localStorage.removeItem(eO)}catch(e){return}}var eI=function(){var e=i(function(e,t,n){var r;return C(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(ec);return X.default(t?[t,r]:null,function(t){var n=j(t,2),r=n[0],o=n[1];return eI(e,r,o)},n)}var e_=function(e){var t=eP(e,"/auth/config"),n=t.data,r=t.isLoading,o=j(D.useRecoilState(ec),2),i=o[0],u=o[1],a=D.useSetRecoilState(ef),s=j(D.useRecoilState(el),2),c=s[0],l=s[1],f=!!(!r&&n),d=function(){l(null),eT(),u(""),a(void 0)},v=function(e){if(!e){d();return}try{var t=H.default(e),n=t.exp,r=w(t,["exp"]);eE(e),u("Bearer ".concat(e)),l(r)}catch(e){console.error("Invalid token, clearing token from local storage","error:",e),d()}};q.useEffect(function(){if(!c&&ej()){v(ej());return}},[]);var p=!!i;return n&&!n.requireLogin?{data:n,user:null,isReady:f,isAuthenticated:!0,accessToken:"",logout:function(){},setAccessToken:function(){}}:{data:n,user:c,isAuthenticated:p,isReady:f,accessToken:i,logout:d,setAccessToken:v}};var eA=/*#__PURE__*/function(e){d(n,e);var t=A(n);function n(e,r){u(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}(P(Error)),eC=/*#__PURE__*/function(){function e(t,n,r){u(this,e);this.httpEndpoint=t;this.on401=n;this.onError=r}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 u=this;return i(function(){var i,a,s,c,l;return C(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);i={};n&&(i.Authorization=u.checkToken(n));v(r,FormData)?a=r:(i["Content-Type"]="application/json",a=r?JSON.stringify(r):null);return[4,fetch(u.buildEndpoint(t),{method:e,headers:i,signal:o,body:a})];case 1:s=f.sent();if(!!s.ok)return[3,3];return[4,s.json()];case 2:c=f.sent();throw s.status===401&&u.on401&&(eT(),u.on401()),new eA(s.statusText,c.detail);case 3:return[2,s];case 4:l=f.sent();throw v(l,eA)&&u.onError&&u.onError(l),console.error(l),l;case 5:return[2]}})})()}},{key:"get",value:function e(e,t){var n=this;return i(function(){return C(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 C(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 C(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 C(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 C(this,function(o){switch(o.label){case 0:return[4,r.fetch("DELETE",e,n,t)];case 1:return[2,o.sent()]}})})()}}]);return e}(),eD=/*#__PURE__*/function(e){d(n,e);var t=A(n);function n(){u(this,n);return t.apply(this,arguments)}c(n,[{key:"headerAuth",value:function e(){var e=this;return i(function(){return C(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 C(this,function(n){switch(n.label){case 0:return[4,t.post("/login",e)];case 1:return[2,n.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 u=this;return i(function(){var i,a,s,c;return C(this,function(l){switch(l.label){case 0:s={userEnv:t};e.type==="CHAT"?s.chatGeneration=e:s.completionGeneration=e;return[4,u.post("/generation",s,r,n.signal)];case 1:c=(a=l.sent())===null||a===void 0?void 0:(i=a.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 u=new TextDecoder("utf-8").decode(i);o&&o(r,u),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 C(this,function(r){switch(r.label){case 0:return[4,n.put("/feedback",{feedback:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"listThreads",value:function e(e,t,n){var r=this;return i(function(){return C(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 C(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,u=new Promise(function(u,a){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);u(e)}else a("Upload failed")},i.onerror=function(){a("Upload error")},i.send(s)});return{xhr:i,promise:u}}},{key:"getElementUrl",value:function e(e,t,n){var r="?session_id=".concat(t);return n&&(n.startsWith("Bearer ")&&(n=n.slice(7)),r+="&token=".concat(n)),this.buildEndpoint("/project/file/".concat(e).concat(r))}},{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}(eC);Object.defineProperty(exports,"Socket",{enumerable:true,get:function e(){return U.Socket}});exports.APIBase=eC;exports.ChainlitAPI=eD;exports.ClientError=eA;exports.accessTokenState=ec;exports.actionState=$;exports.addMessage=eh;exports.addMessageToParent=eb;exports.askUserState=et;exports.avatarState=eu;exports.chatProfileState=N;exports.chatSettingsDefaultValueSelector=er;exports.chatSettingsInputsState=en;exports.chatSettingsValueState=eo;exports.deleteMessageById=em;exports.elementState=ei;exports.fetcher=eI;exports.firstUserInteraction=es;exports.hasMessageById=eg;exports.isLastMessage=ep;exports.loadingState=ee;exports.messagesState=Q;exports.nestMessages=ev;exports.sessionIdState=K;exports.sessionState=Y;exports.tasklistState=ea;exports.threadHistoryState=ef;exports.threadIdToResumeState=J;exports.tokenCountState=Z;exports.updateMessageById=eS;exports.updateMessageContentById=ek;exports.useApi=eP;exports.useAuth=e_;exports.useChatData=ed;exports.useChatInteract=ew;exports.useChatMessages=eR;exports.useChatSession=ex;exports.userState=el;//# sourceMappingURL=out.js.map
2
2
  //# sourceMappingURL=index.js.map