@chainlit/react-client 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +36 -30
- package/dist/index.d.ts +36 -30
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +304 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -86,7 +86,6 @@ interface IStep {
|
|
|
86
86
|
createdAt: number | string;
|
|
87
87
|
start?: number | string;
|
|
88
88
|
end?: number | string;
|
|
89
|
-
disableFeedback?: boolean;
|
|
90
89
|
feedback?: IFeedback;
|
|
91
90
|
language?: string;
|
|
92
91
|
streaming?: boolean;
|
|
@@ -122,6 +121,7 @@ interface IUserMetadata extends Record<string, any> {
|
|
|
122
121
|
interface IUser {
|
|
123
122
|
id: string;
|
|
124
123
|
identifier: string;
|
|
124
|
+
display_name?: string;
|
|
125
125
|
metadata: IUserMetadata;
|
|
126
126
|
}
|
|
127
127
|
|
|
@@ -163,17 +163,20 @@ interface ChatProfile {
|
|
|
163
163
|
}
|
|
164
164
|
interface IAudioConfig {
|
|
165
165
|
enabled: boolean;
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
166
|
+
sample_rate: number;
|
|
167
|
+
}
|
|
168
|
+
interface IAuthConfig {
|
|
169
|
+
requireLogin: boolean;
|
|
170
|
+
passwordAuth: boolean;
|
|
171
|
+
headerAuth: boolean;
|
|
172
|
+
oauthProviders: string[];
|
|
171
173
|
}
|
|
172
174
|
interface IChainlitConfig {
|
|
173
175
|
markdown?: string;
|
|
174
176
|
ui: {
|
|
175
177
|
name: string;
|
|
176
178
|
description?: string;
|
|
179
|
+
cot: 'hidden' | 'tool_call' | 'full';
|
|
177
180
|
default_collapse_content?: boolean;
|
|
178
181
|
github?: string;
|
|
179
182
|
theme: any;
|
|
@@ -192,6 +195,7 @@ interface IChainlitConfig {
|
|
|
192
195
|
audio: IAudioConfig;
|
|
193
196
|
unsafe_allow_html?: boolean;
|
|
194
197
|
latex?: boolean;
|
|
198
|
+
edit_message?: boolean;
|
|
195
199
|
};
|
|
196
200
|
debugUrl?: string;
|
|
197
201
|
userEnv: string[];
|
|
@@ -239,8 +243,10 @@ declare const useChatInteract: () => {
|
|
|
239
243
|
clear: () => void;
|
|
240
244
|
replyMessage: (message: IStep) => void;
|
|
241
245
|
sendMessage: (message: PartialBy<IStep, 'createdAt' | 'id'>, fileReferences?: IFileRef[]) => void;
|
|
242
|
-
|
|
243
|
-
|
|
246
|
+
editMessage: (message: IStep) => void;
|
|
247
|
+
startAudioStream: () => void;
|
|
248
|
+
sendAudioChunk: (isStart: boolean, mimeType: string, elapsedTime: number, data: Int16Array) => void;
|
|
249
|
+
endAudioStream: () => void;
|
|
244
250
|
stopTask: () => void;
|
|
245
251
|
setIdToResume: recoil.SetterOrUpdater<string | undefined>;
|
|
246
252
|
updateChatSettings: (values: object) => void;
|
|
@@ -265,6 +271,10 @@ declare const messagesState: recoil.RecoilState<IStep[]>;
|
|
|
265
271
|
declare const tokenCountState: recoil.RecoilState<number>;
|
|
266
272
|
declare const loadingState: recoil.RecoilState<boolean>;
|
|
267
273
|
declare const askUserState: recoil.RecoilState<IAsk | undefined>;
|
|
274
|
+
declare const wavRecorderState: recoil.RecoilState<any>;
|
|
275
|
+
declare const wavStreamPlayerState: recoil.RecoilState<any>;
|
|
276
|
+
declare const audioConnectionState: recoil.RecoilState<"connecting" | "on" | "off">;
|
|
277
|
+
declare const isAiSpeakingState: recoil.RecoilState<boolean>;
|
|
268
278
|
declare const callFnState: recoil.RecoilState<ICallFn | undefined>;
|
|
269
279
|
declare const chatSettingsInputsState: recoil.RecoilState<any>;
|
|
270
280
|
declare const chatSettingsDefaultValueSelector: recoil.RecoilValueReadOnly<any>;
|
|
@@ -275,6 +285,7 @@ declare const firstUserInteraction: recoil.RecoilState<string | undefined>;
|
|
|
275
285
|
declare const accessTokenState: recoil.RecoilState<string | undefined>;
|
|
276
286
|
declare const userState: recoil.RecoilState<IUser | null>;
|
|
277
287
|
declare const configState: recoil.RecoilState<IChainlitConfig | undefined>;
|
|
288
|
+
declare const authState: recoil.RecoilState<IAuthConfig | undefined>;
|
|
278
289
|
declare const threadHistoryState: recoil.RecoilState<ThreadHistory | undefined>;
|
|
279
290
|
declare const sideViewState: recoil.RecoilState<IMessageElement | undefined>;
|
|
280
291
|
declare const currentThreadIdState: recoil.RecoilState<string | undefined>;
|
|
@@ -292,14 +303,13 @@ declare const useChatSession: () => {
|
|
|
292
303
|
setChatProfile: recoil.SetterOrUpdater<string | undefined>;
|
|
293
304
|
};
|
|
294
305
|
|
|
295
|
-
declare const useAudio: (
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
error: string | undefined;
|
|
306
|
+
declare const useAudio: () => {
|
|
307
|
+
startConversation: () => Promise<void>;
|
|
308
|
+
endConversation: () => Promise<void>;
|
|
309
|
+
audioConnection: "connecting" | "on" | "off";
|
|
310
|
+
isAiSpeaking: boolean;
|
|
311
|
+
wavRecorder: any;
|
|
312
|
+
wavStreamPlayer: any;
|
|
303
313
|
};
|
|
304
314
|
|
|
305
315
|
declare const useConfig: (accessToken?: string) => {
|
|
@@ -310,31 +320,23 @@ declare const useConfig: (accessToken?: string) => {
|
|
|
310
320
|
};
|
|
311
321
|
|
|
312
322
|
declare const useAuth: () => {
|
|
313
|
-
|
|
314
|
-
requireLogin: boolean;
|
|
315
|
-
passwordAuth: boolean;
|
|
316
|
-
headerAuth: boolean;
|
|
317
|
-
oauthProviders: string[];
|
|
318
|
-
};
|
|
323
|
+
authConfig: IAuthConfig;
|
|
319
324
|
user: null;
|
|
320
325
|
isReady: boolean;
|
|
321
326
|
isAuthenticated: boolean;
|
|
322
327
|
accessToken: string;
|
|
323
328
|
logout: () => void;
|
|
324
329
|
setAccessToken: () => void;
|
|
330
|
+
data?: undefined;
|
|
325
331
|
} | {
|
|
326
|
-
data:
|
|
327
|
-
requireLogin: boolean;
|
|
328
|
-
passwordAuth: boolean;
|
|
329
|
-
headerAuth: boolean;
|
|
330
|
-
oauthProviders: string[];
|
|
331
|
-
} | undefined;
|
|
332
|
+
data: IAuthConfig | undefined;
|
|
332
333
|
user: IUser | null;
|
|
333
334
|
isAuthenticated: boolean;
|
|
334
335
|
isReady: boolean;
|
|
335
336
|
accessToken: string | undefined;
|
|
336
|
-
logout: () => Promise<void>;
|
|
337
|
+
logout: (reload?: boolean) => Promise<void>;
|
|
337
338
|
setAccessToken: (token: string | null | undefined) => void;
|
|
339
|
+
authConfig?: undefined;
|
|
338
340
|
};
|
|
339
341
|
|
|
340
342
|
declare const fetcher: (client: ChainlitAPI, endpoint: string, token?: string) => Promise<any>;
|
|
@@ -414,4 +416,8 @@ declare const updateMessageById: (messages: IStep[], messageId: string, updatedM
|
|
|
414
416
|
declare const deleteMessageById: (messages: IStep[], messageId: string) => IStep[];
|
|
415
417
|
declare const updateMessageContentById: (messages: IStep[], messageId: number | string, updatedContent: string, isSequence: boolean, isInput: boolean) => IStep[];
|
|
416
418
|
|
|
417
|
-
|
|
419
|
+
declare const WavRenderer: {
|
|
420
|
+
drawBars: (ctx: CanvasRenderingContext2D, data: Float32Array, cssWidth: number, cssHeight: number, color: string, pointCount?: number, barWidth?: number, barSpacing?: number, center?: boolean) => void;
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
export { APIBase, ActionSpec, AuthProvider, ChainlitAPI, ChainlitContext, ChatProfile, ClientError, ElementType, FileSpec, IAction, IAsk, IAudioConfig, IAudioElement, IAuthConfig, 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, WavRenderer, accessTokenState, actionState, addMessage, addMessageToParent, askUserState, audioConnectionState, authState, callFnState, chatProfileState, chatSettingsDefaultValueSelector, chatSettingsInputsState, chatSettingsValueState, configState, currentThreadIdState, defaultChainlitContext, deleteMessageById, elementState, fetcher, firstUserInteraction, hasMessageById, isAiSpeakingState, isLastMessage, loadingState, messagesState, nestMessages, sessionIdState, sessionState, sideViewState, tasklistState, threadHistoryState, threadIdToResumeState, tokenCountState, updateMessageById, updateMessageContentById, useApi, useAudio, useAuth, useChatData, useChatInteract, useChatMessages, useChatSession, useConfig, userState, wavRecorderState, wavStreamPlayerState };
|
package/dist/index.d.ts
CHANGED
|
@@ -86,7 +86,6 @@ interface IStep {
|
|
|
86
86
|
createdAt: number | string;
|
|
87
87
|
start?: number | string;
|
|
88
88
|
end?: number | string;
|
|
89
|
-
disableFeedback?: boolean;
|
|
90
89
|
feedback?: IFeedback;
|
|
91
90
|
language?: string;
|
|
92
91
|
streaming?: boolean;
|
|
@@ -122,6 +121,7 @@ interface IUserMetadata extends Record<string, any> {
|
|
|
122
121
|
interface IUser {
|
|
123
122
|
id: string;
|
|
124
123
|
identifier: string;
|
|
124
|
+
display_name?: string;
|
|
125
125
|
metadata: IUserMetadata;
|
|
126
126
|
}
|
|
127
127
|
|
|
@@ -163,17 +163,20 @@ interface ChatProfile {
|
|
|
163
163
|
}
|
|
164
164
|
interface IAudioConfig {
|
|
165
165
|
enabled: boolean;
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
166
|
+
sample_rate: number;
|
|
167
|
+
}
|
|
168
|
+
interface IAuthConfig {
|
|
169
|
+
requireLogin: boolean;
|
|
170
|
+
passwordAuth: boolean;
|
|
171
|
+
headerAuth: boolean;
|
|
172
|
+
oauthProviders: string[];
|
|
171
173
|
}
|
|
172
174
|
interface IChainlitConfig {
|
|
173
175
|
markdown?: string;
|
|
174
176
|
ui: {
|
|
175
177
|
name: string;
|
|
176
178
|
description?: string;
|
|
179
|
+
cot: 'hidden' | 'tool_call' | 'full';
|
|
177
180
|
default_collapse_content?: boolean;
|
|
178
181
|
github?: string;
|
|
179
182
|
theme: any;
|
|
@@ -192,6 +195,7 @@ interface IChainlitConfig {
|
|
|
192
195
|
audio: IAudioConfig;
|
|
193
196
|
unsafe_allow_html?: boolean;
|
|
194
197
|
latex?: boolean;
|
|
198
|
+
edit_message?: boolean;
|
|
195
199
|
};
|
|
196
200
|
debugUrl?: string;
|
|
197
201
|
userEnv: string[];
|
|
@@ -239,8 +243,10 @@ declare const useChatInteract: () => {
|
|
|
239
243
|
clear: () => void;
|
|
240
244
|
replyMessage: (message: IStep) => void;
|
|
241
245
|
sendMessage: (message: PartialBy<IStep, 'createdAt' | 'id'>, fileReferences?: IFileRef[]) => void;
|
|
242
|
-
|
|
243
|
-
|
|
246
|
+
editMessage: (message: IStep) => void;
|
|
247
|
+
startAudioStream: () => void;
|
|
248
|
+
sendAudioChunk: (isStart: boolean, mimeType: string, elapsedTime: number, data: Int16Array) => void;
|
|
249
|
+
endAudioStream: () => void;
|
|
244
250
|
stopTask: () => void;
|
|
245
251
|
setIdToResume: recoil.SetterOrUpdater<string | undefined>;
|
|
246
252
|
updateChatSettings: (values: object) => void;
|
|
@@ -265,6 +271,10 @@ declare const messagesState: recoil.RecoilState<IStep[]>;
|
|
|
265
271
|
declare const tokenCountState: recoil.RecoilState<number>;
|
|
266
272
|
declare const loadingState: recoil.RecoilState<boolean>;
|
|
267
273
|
declare const askUserState: recoil.RecoilState<IAsk | undefined>;
|
|
274
|
+
declare const wavRecorderState: recoil.RecoilState<any>;
|
|
275
|
+
declare const wavStreamPlayerState: recoil.RecoilState<any>;
|
|
276
|
+
declare const audioConnectionState: recoil.RecoilState<"connecting" | "on" | "off">;
|
|
277
|
+
declare const isAiSpeakingState: recoil.RecoilState<boolean>;
|
|
268
278
|
declare const callFnState: recoil.RecoilState<ICallFn | undefined>;
|
|
269
279
|
declare const chatSettingsInputsState: recoil.RecoilState<any>;
|
|
270
280
|
declare const chatSettingsDefaultValueSelector: recoil.RecoilValueReadOnly<any>;
|
|
@@ -275,6 +285,7 @@ declare const firstUserInteraction: recoil.RecoilState<string | undefined>;
|
|
|
275
285
|
declare const accessTokenState: recoil.RecoilState<string | undefined>;
|
|
276
286
|
declare const userState: recoil.RecoilState<IUser | null>;
|
|
277
287
|
declare const configState: recoil.RecoilState<IChainlitConfig | undefined>;
|
|
288
|
+
declare const authState: recoil.RecoilState<IAuthConfig | undefined>;
|
|
278
289
|
declare const threadHistoryState: recoil.RecoilState<ThreadHistory | undefined>;
|
|
279
290
|
declare const sideViewState: recoil.RecoilState<IMessageElement | undefined>;
|
|
280
291
|
declare const currentThreadIdState: recoil.RecoilState<string | undefined>;
|
|
@@ -292,14 +303,13 @@ declare const useChatSession: () => {
|
|
|
292
303
|
setChatProfile: recoil.SetterOrUpdater<string | undefined>;
|
|
293
304
|
};
|
|
294
305
|
|
|
295
|
-
declare const useAudio: (
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
error: string | undefined;
|
|
306
|
+
declare const useAudio: () => {
|
|
307
|
+
startConversation: () => Promise<void>;
|
|
308
|
+
endConversation: () => Promise<void>;
|
|
309
|
+
audioConnection: "connecting" | "on" | "off";
|
|
310
|
+
isAiSpeaking: boolean;
|
|
311
|
+
wavRecorder: any;
|
|
312
|
+
wavStreamPlayer: any;
|
|
303
313
|
};
|
|
304
314
|
|
|
305
315
|
declare const useConfig: (accessToken?: string) => {
|
|
@@ -310,31 +320,23 @@ declare const useConfig: (accessToken?: string) => {
|
|
|
310
320
|
};
|
|
311
321
|
|
|
312
322
|
declare const useAuth: () => {
|
|
313
|
-
|
|
314
|
-
requireLogin: boolean;
|
|
315
|
-
passwordAuth: boolean;
|
|
316
|
-
headerAuth: boolean;
|
|
317
|
-
oauthProviders: string[];
|
|
318
|
-
};
|
|
323
|
+
authConfig: IAuthConfig;
|
|
319
324
|
user: null;
|
|
320
325
|
isReady: boolean;
|
|
321
326
|
isAuthenticated: boolean;
|
|
322
327
|
accessToken: string;
|
|
323
328
|
logout: () => void;
|
|
324
329
|
setAccessToken: () => void;
|
|
330
|
+
data?: undefined;
|
|
325
331
|
} | {
|
|
326
|
-
data:
|
|
327
|
-
requireLogin: boolean;
|
|
328
|
-
passwordAuth: boolean;
|
|
329
|
-
headerAuth: boolean;
|
|
330
|
-
oauthProviders: string[];
|
|
331
|
-
} | undefined;
|
|
332
|
+
data: IAuthConfig | undefined;
|
|
332
333
|
user: IUser | null;
|
|
333
334
|
isAuthenticated: boolean;
|
|
334
335
|
isReady: boolean;
|
|
335
336
|
accessToken: string | undefined;
|
|
336
|
-
logout: () => Promise<void>;
|
|
337
|
+
logout: (reload?: boolean) => Promise<void>;
|
|
337
338
|
setAccessToken: (token: string | null | undefined) => void;
|
|
339
|
+
authConfig?: undefined;
|
|
338
340
|
};
|
|
339
341
|
|
|
340
342
|
declare const fetcher: (client: ChainlitAPI, endpoint: string, token?: string) => Promise<any>;
|
|
@@ -414,4 +416,8 @@ declare const updateMessageById: (messages: IStep[], messageId: string, updatedM
|
|
|
414
416
|
declare const deleteMessageById: (messages: IStep[], messageId: string) => IStep[];
|
|
415
417
|
declare const updateMessageContentById: (messages: IStep[], messageId: number | string, updatedContent: string, isSequence: boolean, isInput: boolean) => IStep[];
|
|
416
418
|
|
|
417
|
-
|
|
419
|
+
declare const WavRenderer: {
|
|
420
|
+
drawBars: (ctx: CanvasRenderingContext2D, data: Float32Array, cssWidth: number, cssHeight: number, color: string, pointCount?: number, barWidth?: number, barSpacing?: number, center?: boolean) => void;
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
export { APIBase, ActionSpec, AuthProvider, ChainlitAPI, ChainlitContext, ChatProfile, ClientError, ElementType, FileSpec, IAction, IAsk, IAudioConfig, IAudioElement, IAuthConfig, 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, WavRenderer, accessTokenState, actionState, addMessage, addMessageToParent, askUserState, audioConnectionState, authState, callFnState, chatProfileState, chatSettingsDefaultValueSelector, chatSettingsInputsState, chatSettingsValueState, configState, currentThreadIdState, defaultChainlitContext, deleteMessageById, elementState, fetcher, firstUserInteraction, hasMessageById, isAiSpeakingState, isLastMessage, loadingState, messagesState, nestMessages, sessionIdState, sessionState, sideViewState, tasklistState, threadHistoryState, threadIdToResumeState, tokenCountState, updateMessageById, updateMessageContentById, useApi, useAudio, useAuth, useChatData, useChatInteract, useChatMessages, useChatSession, useConfig, userState, wavRecorderState, wavStreamPlayerState };
|
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(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
|
|
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 a(e,t,n,r,a,o,i){try{var s=e[o](i);var u=s.value}catch(e){n(e);return}if(s.done){t(u)}else{Promise.resolve(u).then(r,a)}}function o(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function s(e){a(i,r,o,s,u,"next",e)}function u(e){a(i,r,o,s,u,"throw",e)}s(undefined)})}}function i(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function s(e,t,n){if(E()){s=Reflect.construct}else{s=function e(e,t,n){var r=[null];r.push.apply(r,t);var a=Function.bind.apply(e,r);var o=new a;if(n)x(o,n.prototype);return o}}return s.apply(null,arguments)}function u(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)u(e.prototype,t);if(n)u(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 h(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)x(e,t)}function d(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 v(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 a=true;var o=false;var i,s;try{for(n=n.call(e);!(a=(i=n.next()).done);a=true){r.push(i.value);if(t&&r.length===t)break}}catch(e){o=true;s=e}finally{try{if(!a&&n["return"]!=null)n["return"]()}finally{if(o)throw s}}return r}function m(){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 k(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 b(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 w(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{b(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function S(e,t){if(e==null)return{};var n=A(e,t);var r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++){r=o[a];if(t.indexOf(r)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,r))continue;n[r]=e[r]}}return n}function A(e,t){if(e==null)return{};var n={};var r=Object.keys(e);var a,o;for(o=0;o<r.length;o++){a=r[o];if(t.indexOf(a)>=0)continue;n[a]=e[a]}return n}function R(e,t){if(t&&(_(t)==="object"||typeof t==="function")){return t}return r(e)}function x(e,t){x=Object.setPrototypeOf||function e(e,t){e.__proto__=t;return e};return x(e,t)}function C(e,n){return t(e)||y(e,n)||T(e,n)||m()}function I(e){return n(e)||v(e)||T(e)||g()}function _(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function T(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 D(e){var t=typeof Map==="function"?new Map:undefined;D=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 s(e,arguments,f(this).constructor)}n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:false,writable:true,configurable:true}});return x(n,e)};return D(e)}function E(){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=E();return function n(){var n=f(e),r;if(t){var a=f(this).constructor;r=Reflect.construct(n,arguments,a)}else{r=n.apply(this,arguments)}return R(this,r)}}function M(e,t){var n,r,a,o,i={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]};return(o={next:s(0),"throw":s(1),"return":s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o);function s(e){return function(t){return u([e,t])}}function u(o){if(n)throw new TypeError("Generator is already executing.");while(i)try{if(n=1,r&&(a=o[0]&2?r["return"]:o[0]?r["throw"]||((a=r["return"])&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;if(r=0,a)o=[o[0]&2,a.value];switch(o[0]){case 0:case 1:a=o;break;case 4:i.label++;return{value:o[1],done:false};case 5:i.label++;r=o[1];o=[0];continue;case 7:o=i.ops.pop();i.trys.pop();continue;default:if(!(a=i.trys,a=a.length>0&&a[a.length-1])&&(o[0]===6||o[0]===2)){i=0;continue}if(o[0]===3&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(o[0]===6&&i.label<a[1]){i.label=a[1];a=o;break}if(a&&i.label<a[2]){i.label=a[2];i.ops.push(o);break}if(a[2])i.ops.pop();i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e];r=0}finally{n=a=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}var O=require("recoil");var B=require("lodash");var j=require("uuid");var V=require("react");var L=require("jwt-decode");var F=require("swr");var q=require("socket.io-client");function U(e){return e&&e.__esModule?e:{default:e}}var W=/*#__PURE__*/U(L);var z=/*#__PURE__*/U(F);var N=/*#__PURE__*/U(q);var H=function(e){var t={},n=new Date,r=new Date;r.setDate(n.getDate()-1);var a=new Date;a.setDate(n.getDate()-7);var o=new Date;return o.setDate(n.getDate()-30),e.forEach(function(e){var i=new Date(e.createdAt),s=i.toDateString()===n.toDateString(),u=i.toDateString()===r.toDateString(),c=i>=a,l=i>=o,f;s?f="Today":u?f="Yesterday":c?f="Previous 7 days":l?f="Previous 30 days":f=i.toLocaleString("default",{month:"long",year:"numeric"}).split(" ").slice(0,1).join(" "),t[f]||(t[f]=[]),t[f].push(e)}),t};var G=[4186.01,4434.92,4698.63,4978.03,5274.04,5587.65,5919.91,6271.93,6644.88,7040,7458.62,7902.13],X=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"],$=[],J=[];for(var Y=1;Y<=8;Y++)for(var K=0;K<G.length;K++){var Q=G[K];$.push(Q/Math.pow(2,8-Y)),J.push(X[K]+Y)}var Z=[32,2e3],ee=$.filter(function(e,t){return $[t]>Z[0]&&$[t]<Z[1]}),et=J.filter(function(e,t){return $[t]>Z[0]&&$[t]<Z[1]});var en=/*#__PURE__*/function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;var r=this;i(this,e);if(this.fftResults=[],n){var a=n.length,o=n.sampleRate,s=new OfflineAudioContext({length:a,sampleRate:o}),u=s.createBufferSource();u.buffer=n;var c=s.createAnalyser();c.fftSize=8192,c.smoothingTimeConstant=.1,u.connect(c);var l=1/60,f=a/o,h=function(e){var t=l*e;t<f&&s.suspend(t).then(function(){var t=new Float32Array(c.frequencyBinCount);c.getFloatFrequencyData(t),r.fftResults.push(t),h(e+1)}),e===1?s.startRendering():s.resume()};u.start(0),h(1),this.audio=t,this.context=s,this.analyser=c,this.sampleRate=o,this.audioBuffer=n}else{var d=new AudioContext,p=d.createMediaElementSource(t),v=d.createAnalyser();v.fftSize=8192,v.smoothingTimeConstant=.1,p.connect(v),v.connect(d.destination),this.audio=t,this.context=d,this.analyser=v,this.sampleRate=this.context.sampleRate,this.audioBuffer=null}}c(e,[{key:"getFrequencies",value:function t(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"frequency",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-100,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-30;var a=null;if(this.audioBuffer&&this.fftResults.length){var o=this.audio.currentTime/this.audio.duration,i=Math.min(o*this.fftResults.length|0,this.fftResults.length-1);a=this.fftResults[i]}return e.getFrequencies(this.analyser,this.sampleRate,a,t,n,r)}},{key:"resumeIfSuspended",value:function e(){var e=this;return o(function(){var t;return M(this,function(n){switch(n.label){case 0:t=e.context.state==="suspended";if(!t)return[3,2];return[4,e.context.resume()];case 1:t=n.sent();n.label=2;case 2:return[2,(t,!0)]}})})()}}],[{key:"getFrequencies",value:function e(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"frequency",a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-100,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:-30;n||(n=new Float32Array(e.frequencyBinCount),e.getFloatFrequencyData(n));var i=t/2,s=1/n.length*i,u,c,l;if(r==="music"||r==="voice"){var f=r==="voice"?ee:$,h=Array(f.length).fill(a);for(var d=0;d<n.length;d++){var p=d*s,v=n[d];for(var y=f.length-1;y>=0;y--)if(p>f[y]){h[y]=Math.max(h[y],v);break}}u=h,c=r==="voice"?ee:$,l=r==="voice"?et:J}else u=Array.from(n),c=u.map(function(e,t){return s*t}),l=c.map(function(e){return"".concat(e.toFixed(2)," Hz")});var m=u.map(function(e){return Math.max(0,Math.min((e-a)/(o-a),1))});return{values:new Float32Array(m),frequencies:c,labels:l}}}]);return e}();globalThis.AudioAnalysis=en;var er=/*#__PURE__*/function(){function e(){i(this,e)}c(e,[{key:"_packData",value:function e(e,t){return[new Uint8Array([t,t>>8]),new Uint8Array([t,t>>8,t>>16,t>>24])][e]}},{key:"pack",value:function e(e,t){if(t===null||t===void 0?void 0:t.bitsPerSample)if(t===null||t===void 0?void 0:t.channels){if(!(t===null||t===void 0?void 0:t.data))throw new Error('Missing "data"')}else throw new Error('Missing "channels"');else throw new Error('Missing "bitsPerSample"');var n=t.bitsPerSample,r=t.channels,a=t.data,o=["RIFF",this._packData(1,4+(8+24)+(8+8)),"WAVE","fmt ",this._packData(1,16),this._packData(0,1),this._packData(0,r.length),this._packData(1,e),this._packData(1,e*r.length*n/8),this._packData(0,r.length*n/8),this._packData(0,n),"data",this._packData(1,r[0].length*r.length*n/8),a],i=new Blob(o,{type:"audio/mpeg"}),s=URL.createObjectURL(i);return{blob:i,url:s,channelCount:r.length,sampleRate:e,duration:a.byteLength/(r.length*e*2)}}}],[{key:"floatTo16BitPCM",value:function e(e){var t=new ArrayBuffer(e.length*2),n=new DataView(t),r=0;for(var a=0;a<e.length;a++,r+=2){var o=Math.max(-1,Math.min(1,e[a]));n.setInt16(r,o<0?o*32768:o*32767,!0)}return t}},{key:"mergeBuffers",value:function e(e,t){var n=new Uint8Array(e.byteLength+t.byteLength);return n.set(new Uint8Array(e),0),n.set(new Uint8Array(t),e.byteLength),n.buffer}}]);return e}();globalThis.WavPacker=er;var ea="\nclass AudioProcessor extends AudioWorkletProcessor {\n\n constructor() {\n super();\n this.port.onmessage = this.receive.bind(this);\n this.initialize();\n }\n\n initialize() {\n this.foundAudio = false;\n this.recording = false;\n this.chunks = [];\n }\n\n /**\n * Concatenates sampled chunks into channels\n * Format is chunk[Left[], Right[]]\n */\n readChannelData(chunks, channel = -1, maxChannels = 9) {\n let channelLimit;\n if (channel !== -1) {\n if (chunks[0] && chunks[0].length - 1 < channel) {\n throw new Error(\n `Channel ${channel} out of range: max ${chunks[0].length}`\n );\n }\n channelLimit = channel + 1;\n } else {\n channel = 0;\n channelLimit = Math.min(chunks[0] ? chunks[0].length : 1, maxChannels);\n }\n const channels = [];\n for (let n = channel; n < channelLimit; n++) {\n const length = chunks.reduce((sum, chunk) => {\n return sum + chunk[n].length;\n }, 0);\n const buffers = chunks.map((chunk) => chunk[n]);\n const result = new Float32Array(length);\n let offset = 0;\n for (let i = 0; i < buffers.length; i++) {\n result.set(buffers[i], offset);\n offset += buffers[i].length;\n }\n channels[n] = result;\n }\n return channels;\n }\n\n /**\n * Combines parallel audio data into correct format,\n * channels[Left[], Right[]] to float32Array[LRLRLRLR...]\n */\n formatAudioData(channels) {\n if (channels.length === 1) {\n // Simple case is only one channel\n const float32Array = channels[0].slice();\n const meanValues = channels[0].slice();\n return { float32Array, meanValues };\n } else {\n const float32Array = new Float32Array(\n channels[0].length * channels.length\n );\n const meanValues = new Float32Array(channels[0].length);\n for (let i = 0; i < channels[0].length; i++) {\n const offset = i * channels.length;\n let meanValue = 0;\n for (let n = 0; n < channels.length; n++) {\n float32Array[offset + n] = channels[n][i];\n meanValue += channels[n][i];\n }\n meanValues[i] = meanValue / channels.length;\n }\n return { float32Array, meanValues };\n }\n }\n\n /**\n * Converts 32-bit float data to 16-bit integers\n */\n floatTo16BitPCM(float32Array) {\n const buffer = new ArrayBuffer(float32Array.length * 2);\n const view = new DataView(buffer);\n let offset = 0;\n for (let i = 0; i < float32Array.length; i++, offset += 2) {\n let s = Math.max(-1, Math.min(1, float32Array[i]));\n view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);\n }\n return buffer;\n }\n\n /**\n * Retrieves the most recent amplitude values from the audio stream\n * @param {number} channel\n */\n getValues(channel = -1) {\n const channels = this.readChannelData(this.chunks, channel);\n const { meanValues } = this.formatAudioData(channels);\n return { meanValues, channels };\n }\n\n /**\n * Exports chunks as an audio/wav file\n */\n export() {\n const channels = this.readChannelData(this.chunks);\n const { float32Array, meanValues } = this.formatAudioData(channels);\n const audioData = this.floatTo16BitPCM(float32Array);\n return {\n meanValues: meanValues,\n audio: {\n bitsPerSample: 16,\n channels: channels,\n data: audioData,\n },\n };\n }\n\n receive(e) {\n const { event, id } = e.data;\n let receiptData = {};\n switch (event) {\n case 'start':\n this.recording = true;\n break;\n case 'stop':\n this.recording = false;\n break;\n case 'clear':\n this.initialize();\n break;\n case 'export':\n receiptData = this.export();\n break;\n case 'read':\n receiptData = this.getValues();\n break;\n default:\n break;\n }\n // Always send back receipt\n this.port.postMessage({ event: 'receipt', id, data: receiptData });\n }\n\n sendChunk(chunk) {\n const channels = this.readChannelData([chunk]);\n const { float32Array, meanValues } = this.formatAudioData(channels);\n const rawAudioData = this.floatTo16BitPCM(float32Array);\n const monoAudioData = this.floatTo16BitPCM(meanValues);\n this.port.postMessage({\n event: 'chunk',\n data: {\n mono: monoAudioData,\n raw: rawAudioData,\n },\n });\n }\n\n process(inputList, outputList, parameters) {\n // Copy input to output (e.g. speakers)\n // Note that this creates choppy sounds with Mac products\n const sourceLimit = Math.min(inputList.length, outputList.length);\n for (let inputNum = 0; inputNum < sourceLimit; inputNum++) {\n const input = inputList[inputNum];\n const output = outputList[inputNum];\n const channelCount = Math.min(input.length, output.length);\n for (let channelNum = 0; channelNum < channelCount; channelNum++) {\n input[channelNum].forEach((sample, i) => {\n output[channelNum][i] = sample;\n });\n }\n }\n const inputs = inputList[0];\n // There's latency at the beginning of a stream before recording starts\n // Make sure we actually receive audio data before we start storing chunks\n let sliceIndex = 0;\n if (!this.foundAudio) {\n for (const channel of inputs) {\n sliceIndex = 0; // reset for each channel\n if (this.foundAudio) {\n break;\n }\n if (channel) {\n for (const value of channel) {\n if (value !== 0) {\n // find only one non-zero entry in any channel\n this.foundAudio = true;\n break;\n } else {\n sliceIndex++;\n }\n }\n }\n }\n }\n if (inputs && inputs[0] && this.foundAudio && this.recording) {\n // We need to copy the TypedArray, because the `process`\n // internals will reuse the same buffer to hold each input\n const chunk = inputs.map((input) => input.slice(sliceIndex));\n this.chunks.push(chunk);\n this.sendChunk(chunk);\n }\n return true;\n }\n}\n\nregisterProcessor('audio_processor', AudioProcessor);\n",eo=new Blob([ea],{type:"application/javascript"}),ei=URL.createObjectURL(eo),es=ei;var eu=/*#__PURE__*/function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.sampleRate,r=n===void 0?24e3:n,a=t.outputToSpeakers,o=a===void 0?!1:a,s=t.debug,u=s===void 0?!1:s;i(this,e);this.scriptSrc=es,this.sampleRate=r,this.outputToSpeakers=o,this.debug=!!u,this._deviceChangeCallback=null,this._devices=[],this.stream=null,this.processor=null,this.source=null,this.node=null,this.recording=!1,this._lastEventId=0,this.eventReceipts={},this.eventTimeout=5e3,this._chunkProcessor=function(){},this._chunkProcessorSize=void 0,this._chunkProcessorBuffer={raw:new ArrayBuffer(0),mono:new ArrayBuffer(0)}}c(e,[{key:"log",value:function e(){return this.debug&&this.log.apply(this,arguments),!0}},{key:"getSampleRate",value:function e(){return this.sampleRate}},{key:"getStatus",value:function e(){return this.processor?this.recording?"recording":"paused":"ended"}},{key:"_event",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;var r=this;return o(function(){var a,o,i;return M(this,function(s){switch(s.label){case 0:if(n=n||r.processor,!n)throw new Error("Can not send events without recording first");a={event:e,id:r._lastEventId++,data:t};n.port.postMessage(a);o=new Date().valueOf();s.label=1;case 1:if(!!r.eventReceipts[a.id])return[3,4];if(new Date().valueOf()-o>r.eventTimeout)throw new Error('Timeout waiting for "'.concat(e,'" event'));return[4,new Promise(function(e){return setTimeout(function(){return e(!0)},1)})];case 2:s.sent();s.label=3;case 3:return[3,1];case 4:i=r.eventReceipts[a.id];return[2,(delete r.eventReceipts[a.id],i)]}})})()}},{key:"listenForDeviceChange",value:function e(e){if(e===null&&this._deviceChangeCallback)navigator.mediaDevices.removeEventListener("devicechange",this._deviceChangeCallback),this._deviceChangeCallback=null;else if(e!==null){var t=this;var n=0,r=[],a=function(e){return e.map(function(e){return e.deviceId}).sort().join(",")},i=function(){var i=o(function(){var o,i;return M(this,function(s){switch(s.label){case 0:o=++n;return[4,t.listDevices()];case 1:i=s.sent();o===n&&a(r)!==a(i)&&(r=i,e(i.slice()));return[2]}})});return function e(){return i.apply(this,arguments)}}();navigator.mediaDevices.addEventListener("devicechange",i),i(),this._deviceChangeCallback=i}return!0}},{key:"requestPermission",value:function e(){return o(function(){var e,t;return M(this,function(n){switch(n.label){case 0:return[4,navigator.permissions.query({name:"microphone"})];case 1:e=n.sent();if(!(e.state==="denied"))return[3,2];window.alert("You must grant microphone access to use this feature.");return[3,6];case 2:if(!(e.state==="prompt"))return[3,6];n.label=3;case 3:n.trys.push([3,5,,6]);return[4,navigator.mediaDevices.getUserMedia({audio:!0})];case 4:n.sent().getTracks().forEach(function(e){return e.stop()});return[3,6];case 5:t=n.sent();window.alert("You must grant microphone access to use this feature.");return[3,6];case 6:return[2,!0]}})})()}},{key:"listDevices",value:function e(){var e=this;return o(function(){var t,n,r,a,o;return M(this,function(i){switch(i.label){case 0:if(!navigator.mediaDevices||!("enumerateDevices"in navigator.mediaDevices))throw new Error("Could not request user devices");return[4,e.requestPermission()];case 1:i.sent();return[4,navigator.mediaDevices.enumerateDevices()];case 2:t=i.sent().filter(function(e){return e.kind==="audioinput"}),n=t.findIndex(function(e){return e.deviceId==="default"}),r=[];if(n!==-1){a=t.splice(n,1)[0],o=t.findIndex(function(e){return e.groupId===a.groupId});o!==-1&&(a=t.splice(o,1)[0]),a.default=!0,r.push(a)}return[2,r.concat(t)]}})})()}},{key:"begin",value:function e(e){var t=this;return o(function(){var n,r,a,o,i,s,u,c;return M(this,function(l){switch(l.label){case 0:if(t.processor)throw new Error("Already connected: please call .end() to start a new session");if(!navigator.mediaDevices||!("getUserMedia"in navigator.mediaDevices))throw new Error("Could not request user media");l.label=1;case 1:l.trys.push([1,3,,4]);n={audio:!0};e&&(n.audio={deviceId:{exact:e}});return[4,navigator.mediaDevices.getUserMedia(n)];case 2:t.stream=l.sent();return[3,4];case 3:r=l.sent();throw new Error("Could not start media stream");case 4:a=new AudioContext({sampleRate:t.sampleRate}),o=a.createMediaStreamSource(t.stream);l.label=5;case 5:l.trys.push([5,7,,8]);return[4,a.audioWorklet.addModule(t.scriptSrc)];case 6:l.sent();return[3,8];case 7:i=l.sent();throw console.error(i),new Error("Could not add audioWorklet module: ".concat(t.scriptSrc));case 8:s=new AudioWorkletNode(a,"audio_processor");s.port.onmessage=function(e){var n=e.data,r=n.event,a=n.id,o=n.data;if(r==="receipt")t.eventReceipts[a]=o;else if(r==="chunk")if(t._chunkProcessorSize){var i=t._chunkProcessorBuffer;t._chunkProcessorBuffer={raw:er.mergeBuffers(i.raw,o.raw),mono:er.mergeBuffers(i.mono,o.mono)},t._chunkProcessorBuffer.mono.byteLength>=t._chunkProcessorSize&&(t._chunkProcessor(t._chunkProcessorBuffer),t._chunkProcessorBuffer={raw:new ArrayBuffer(0),mono:new ArrayBuffer(0)})}else t._chunkProcessor(o)};u=o.connect(s),c=a.createAnalyser();return[2,(c.fftSize=8192,c.smoothingTimeConstant=.1,u.connect(c),t.outputToSpeakers&&(console.warn("Warning: Output to speakers may affect sound quality,\nespecially due to system audio feedback preventative measures.\nuse only for debugging"),c.connect(a.destination)),t.source=o,t.node=u,t.analyser=c,t.processor=s,!0)]}})})()}},{key:"getFrequencies",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"frequency",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-100,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-30;if(!this.processor)throw new Error("Session ended: please call .begin() first");return en.getFrequencies(this.analyser,this.sampleRate,null,e,t,n)}},{key:"pause",value:function e(){var e=this;return o(function(){return M(this,function(t){switch(t.label){case 0:if(e.processor){if(!e.recording)throw new Error("Already paused: please call .record() first")}else throw new Error("Session ended: please call .begin() first");e._chunkProcessorBuffer.raw.byteLength&&e._chunkProcessor(e._chunkProcessorBuffer),e.log("Pausing ...");return[4,e._event("stop")];case 1:return[2,(t.sent(),e.recording=!1,!0)]}})})()}},{key:"record",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8192;var n=this;return o(function(){return M(this,function(r){switch(r.label){case 0:if(n.processor){if(n.recording)throw new Error("Already recording: please call .pause() first");if(typeof e!="function")throw new Error("chunkProcessor must be a function")}else throw new Error("Session ended: please call .begin() first");n._chunkProcessor=e,n._chunkProcessorSize=t,n._chunkProcessorBuffer={raw:new ArrayBuffer(0),mono:new ArrayBuffer(0)},n.log("Recording ...");return[4,n._event("start")];case 1:return[2,(r.sent(),n.recording=!0,!0)]}})})()}},{key:"clear",value:function e(){var e=this;return o(function(){return M(this,function(t){switch(t.label){case 0:if(!e.processor)throw new Error("Session ended: please call .begin() first");return[4,e._event("clear")];case 1:return[2,(t.sent(),!0)]}})})()}},{key:"read",value:function e(){var e=this;return o(function(){return M(this,function(t){switch(t.label){case 0:if(!e.processor)throw new Error("Session ended: please call .begin() first");e.log("Reading ...");return[4,e._event("read")];case 1:return[2,t.sent()]}})})()}},{key:"save",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;var t=this;return o(function(){var n;return M(this,function(r){switch(r.label){case 0:if(!t.processor)throw new Error("Session ended: please call .begin() first");if(!e&&t.recording)throw new Error("Currently recording: please call .pause() first, or call .save(true) to force");t.log("Exporting ...");return[4,t._event("export")];case 1:n=r.sent();return[2,new er().pack(t.sampleRate,n.audio)]}})})()}},{key:"end",value:function e(){var e=this;return o(function(){var t,n;return M(this,function(r){switch(r.label){case 0:if(!e.processor)throw new Error("Session ended: please call .begin() first");t=e.processor;e.log("Stopping ...");return[4,e._event("stop")];case 1:r.sent(),e.recording=!1,e.stream.getTracks().forEach(function(e){return e.stop()}),e.log("Exporting ...");return[4,e._event("export",{},t)];case 2:n=r.sent();return[2,(e.processor.disconnect(),e.source.disconnect(),e.node.disconnect(),e.analyser.disconnect(),e.stream=null,e.processor=null,e.source=null,e.node=null,new er().pack(e.sampleRate,n.audio))]}})})()}},{key:"quit",value:function e(){var e=this;return o(function(){var t;return M(this,function(n){switch(n.label){case 0:e.listenForDeviceChange(null);t=e.processor;if(!t)return[3,2];return[4,e.end()];case 1:t=n.sent();n.label=2;case 2:return[2,(t,!0)]}})})()}}],[{key:"decode",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:24e3,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1;return o(function(){var r,a,o,i,s,u,c,l,f,h;return M(this,function(p){switch(p.label){case 0:r=new AudioContext({sampleRate:t});if(!d(e,Blob))return[3,2];if(n!==-1)throw new Error('Can not specify "fromSampleRate" when reading from Blob');o=e;return[4,o.arrayBuffer()];case 1:a=p.sent();return[3,5];case 2:if(!d(e,ArrayBuffer))return[3,3];if(n!==-1)throw new Error('Can not specify "fromSampleRate" when reading from ArrayBuffer');a=e,o=new Blob([a],{type:"audio/wav"});return[3,5];case 3:if(d(e,Int16Array)){s=e,i=new Float32Array(e.length);for(u=0;u<e.length;u++)i[u]=e[u]/32768}else if(d(e,Float32Array))i=e;else if(d(e,Array))i=new Float32Array(e);else throw new Error('"audioData" must be one of: Blob, Float32Arrray, Int16Array, ArrayBuffer, Array<number>');if(n===-1)throw new Error('Must specify "fromSampleRate" when reading from Float32Array, In16Array or Array');if(n<3e3)throw new Error('Minimum "fromSampleRate" is 3000 (3kHz)');s||(s=er.floatTo16BitPCM(i));c={bitsPerSample:16,channels:[i],data:s};o=new er().pack(n,c).blob;return[4,o.arrayBuffer()];case 4:a=p.sent();p.label=5;case 5:return[4,r.decodeAudioData(a)];case 6:l=p.sent(),f=l.getChannelData(0),h=URL.createObjectURL(o);return[2,{blob:o,url:h,values:f,audioBuffer:l}]}})})()}}]);return e}();globalThis.WavRecorder=eu;var ec="\nclass StreamProcessor extends AudioWorkletProcessor {\n constructor() {\n super();\n this.hasStarted = false;\n this.hasInterrupted = false;\n this.outputBuffers = [];\n this.bufferLength = 128;\n this.write = { buffer: new Float32Array(this.bufferLength), trackId: null };\n this.writeOffset = 0;\n this.trackSampleOffsets = {};\n this.port.onmessage = (event) => {\n if (event.data) {\n const payload = event.data;\n if (payload.event === 'write') {\n const int16Array = payload.buffer;\n const float32Array = new Float32Array(int16Array.length);\n for (let i = 0; i < int16Array.length; i++) {\n float32Array[i] = int16Array[i] / 0x8000; // Convert Int16 to Float32\n }\n this.writeData(float32Array, payload.trackId);\n } else if (\n payload.event === 'offset' ||\n payload.event === 'interrupt'\n ) {\n const requestId = payload.requestId;\n const trackId = this.write.trackId;\n const offset = this.trackSampleOffsets[trackId] || 0;\n this.port.postMessage({\n event: 'offset',\n requestId,\n trackId,\n offset,\n });\n if (payload.event === 'interrupt') {\n this.hasInterrupted = true;\n }\n } else {\n throw new Error(`Unhandled event \"${payload.event}\"`);\n }\n }\n };\n }\n\n writeData(float32Array, trackId = null) {\n let { buffer } = this.write;\n let offset = this.writeOffset;\n for (let i = 0; i < float32Array.length; i++) {\n buffer[offset++] = float32Array[i];\n if (offset >= buffer.length) {\n this.outputBuffers.push(this.write);\n this.write = { buffer: new Float32Array(this.bufferLength), trackId };\n buffer = this.write.buffer;\n offset = 0;\n }\n }\n this.writeOffset = offset;\n return true;\n }\n\n process(inputs, outputs, parameters) {\n const output = outputs[0];\n const outputChannelData = output[0];\n const outputBuffers = this.outputBuffers;\n if (this.hasInterrupted) {\n this.port.postMessage({ event: 'stop' });\n return false;\n } else if (outputBuffers.length) {\n this.hasStarted = true;\n const { buffer, trackId } = outputBuffers.shift();\n for (let i = 0; i < outputChannelData.length; i++) {\n outputChannelData[i] = buffer[i] || 0;\n }\n if (trackId) {\n this.trackSampleOffsets[trackId] =\n this.trackSampleOffsets[trackId] || 0;\n this.trackSampleOffsets[trackId] += buffer.length;\n }\n return true;\n } else if (this.hasStarted) {\n this.port.postMessage({ event: 'stop' });\n return false;\n } else {\n return true;\n }\n }\n}\n\nregisterProcessor('stream_processor', StreamProcessor);\n",el=new Blob([ec],{type:"application/javascript"}),ef=URL.createObjectURL(el),eh=ef;var ed=/*#__PURE__*/function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.sampleRate,r=n===void 0?24e3:n,a=t.onStop;i(this,e);this.scriptSrc=eh,this.onStop=a,this.sampleRate=r,this.context=null,this.stream=null,this.analyser=null,this.trackSampleOffsets={},this.interruptedTrackIds={}}c(e,[{key:"connect",value:function e(){var e=this;return o(function(){var t,n,r;return M(this,function(a){switch(a.label){case 0:e.context=new AudioContext({sampleRate:e.sampleRate});t=e.context.state==="suspended";if(!t)return[3,2];return[4,e.context.resume()];case 1:t=a.sent();a.label=2;case 2:t;a.label=3;case 3:a.trys.push([3,5,,6]);return[4,e.context.audioWorklet.addModule(e.scriptSrc)];case 4:a.sent();return[3,6];case 5:n=a.sent();throw console.error(n),new Error("Could not add audioWorklet module: ".concat(e.scriptSrc));case 6:r=e.context.createAnalyser();return[2,(r.fftSize=8192,r.smoothingTimeConstant=.1,e.analyser=r,!0)]}})})()}},{key:"getFrequencies",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"frequency",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-100,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-30;if(!this.analyser)throw new Error("Not connected, please call .connect() first");return en.getFrequencies(this.analyser,this.sampleRate,null,e,t,n)}},{key:"_start",value:function e(){var e=this;var t=new AudioWorkletNode(this.context,"stream_processor");return t.connect(this.context.destination),t.port.onmessage=function(n){var r,a;var o=n.data,i=o.event;if(i==="stop")(r=(a=e).onStop)===null||r===void 0?void 0:r.call(a),t.disconnect(),e.stream=null;else if(i==="offset"){var s=n.data,u=s.requestId,c=s.trackId,l=s.offset,f=l/e.sampleRate;e.trackSampleOffsets[u]={trackId:c,offset:l,currentTime:f}}},this.analyser.disconnect(),t.connect(this.analyser),this.stream=t,!0}},{key:"add16BitPCM",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"default";if(typeof t!="string")throw new Error("trackId must be a string");if(this.interruptedTrackIds[t])return;this.stream||this._start();var n;if(d(e,Int16Array))n=e;else if(d(e,ArrayBuffer))n=new Int16Array(e);else throw new Error("argument must be Int16Array or ArrayBuffer");return this.stream.port.postMessage({event:"write",buffer:n,trackId:t}),n}},{key:"getTrackSampleOffset",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;var t=this;return o(function(){var n,r,a;return M(this,function(o){switch(o.label){case 0:if(!t.stream)return[2,null];n=crypto.randomUUID();t.stream.port.postMessage({event:e?"interrupt":"offset",requestId:n});o.label=1;case 1:if(!!r)return[3,4];r=t.trackSampleOffsets[n];return[4,new Promise(function(e){return setTimeout(function(){return e()},1)})];case 2:o.sent();o.label=3;case 3:return[3,1];case 4:a=r.trackId;return[2,(e&&a&&(t.interruptedTrackIds[a]=!0),r)]}})})()}},{key:"interrupt",value:function e(){var e=this;return o(function(){return M(this,function(t){return[2,e.getTrackSampleOffset(!0)]})})()}}]);return e}();globalThis.WavStreamPlayer=ed;var ep=O.atom({key:"ThreadIdToResume",default:void 0}),ev=O.atom({key:"ChatProfile",default:void 0}),ey=O.atom({key:"SessionId",default:j.v4()}),em=O.selector({key:"SessionIdSelector",get:function(e){var t=e.get;return t(ey)},set:function(e,t){var n=e.set;return n(ey,d(t,O.DefaultValue)?j.v4():t)}}),eg=O.atom({key:"Session",dangerouslyAllowMutability:!0,default:void 0}),ek=O.atom({key:"Actions",default:[]}),eb=O.atom({key:"Messages",dangerouslyAllowMutability:!0,default:[]}),ew=O.atom({key:"TokenCount",default:0}),eS=O.atom({key:"Loading",default:!1}),eA=O.atom({key:"AskUser",default:void 0}),eR=O.atom({key:"WavRecorder",dangerouslyAllowMutability:!0,default:new eu}),ex=O.atom({key:"WavStreamPlayer",dangerouslyAllowMutability:!0,default:new ed}),eC=O.atom({key:"AudioConnection",default:"off"}),eI=O.atom({key:"isAiSpeaking",default:!1}),e_=O.atom({key:"CallFn",default:void 0}),eT=O.atom({key:"ChatSettings",default:[]}),eD=O.selector({key:"ChatSettingsValue/Default",get:function(e){var t=e.get;return t(eT).reduce(function(e,t){return e[t.id]=t.initial,e},{})}}),eE=O.atom({key:"ChatSettingsValue",default:eD}),eP=O.atom({key:"DisplayElements",default:[]}),eM=O.atom({key:"TasklistElements",default:[]}),eO=O.atom({key:"FirstUserInteraction",default:void 0}),eB=O.atom({key:"AccessToken",default:void 0}),ej=O.atom({key:"User",default:null}),eV=O.atom({key:"ChainlitConfig",default:void 0}),eL=O.atom({key:"AuthConfig",default:void 0}),eF=O.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)&&!B.isEqual(e.threads,n===null||n===void 0?void 0:n.timeGroupedThreads)&&(r=H(e.threads)),t(w(k({},e),{timeGroupedThreads:r}))})}]}),eq=O.atom({key:"SideView",default:void 0}),eU=O.atom({key:"CurrentThreadId",default:void 0});var eW=function(){var e=O.useRecoilValue(eS),t=O.useRecoilValue(eP),n=O.useRecoilValue(eM),r=O.useRecoilValue(ek),a=O.useRecoilValue(eg),o=O.useRecoilValue(eA),i=O.useRecoilValue(e_),s=O.useRecoilValue(eT),u=O.useRecoilValue(eE),c=O.useRecoilValue(eD),l=(a===null||a===void 0?void 0:a.socket.connected)&&!(a===null||a===void 0?void 0:a.error),f=!l||e||(o===null||o===void 0?void 0:o.spec.type)==="file"||(o===null||o===void 0?void 0:o.spec.type)==="action";return{actions:r,askUser:o,callFn:i,chatSettingsDefaultValue:c,chatSettingsInputs:s,chatSettingsValue:u,connected:l,disabled:f,elements:t,error:a===null||a===void 0?void 0:a.error,loading:e,tasklists:n}};var ez=function(e){var t=[];var n=true,r=false,a=undefined;try{for(var o=e[Symbol.iterator](),i;!(n=(i=o.next()).done);n=true){var s=i.value;t=eH(t,s)}}catch(e){r=true;a=e}finally{try{if(!n&&o.return!=null){o.return()}}finally{if(r){throw a}}}return t},eN=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 eJ(e,t.id)?eY(e,t.id,t):"parentId"in t&&t.parentId?eX(e,t.parentId,t):"indent"in t&&t.indent&&t.indent>0?eG(e,t.indent,t):I(e).concat([t])},eG=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;var a=I(e);if(a.length===0)return I(a).concat([n]);{var o=a.length-1,i=a[o];return i.steps=i.steps||[],r+1===t?(i.steps=I(i.steps).concat([n]),a[o]=k({},i),a):(i.steps=eG(i.steps,t,n,r+1),a[o]=k({},i),a)}},eX=function(e,t,n){var r=I(e);for(var a=0;a<r.length;a++){var o=r[a];B.isEqual(o.id,t)?(o.steps=o.steps?I(o.steps).concat([n]):[n],r[a]=k({},o)):eJ(r,t)&&o.steps&&(o.steps=eX(o.steps,t,n),r[a]=k({},o))}return r},e$=function(e,t){var n=true,r=false,a=undefined;try{for(var o=e[Symbol.iterator](),i;!(n=(i=o.next()).done);n=true){var s=i.value;if(B.isEqual(s.id,t))return s;if(s.steps&&s.steps.length>0){var u=e$(s.steps,t);if(u)return u}}}catch(e){r=true;a=e}finally{try{if(!n&&o.return!=null){o.return()}}finally{if(r){throw a}}}},eJ=function(e,t){return e$(e,t)!==void 0},eY=function(e,t,n){var r=I(e);for(var a=0;a<r.length;a++){var o=r[a];B.isEqual(o.id,t)?r[a]=k({steps:o.steps},n):eJ(r,t)&&o.steps&&(o.steps=eY(o.steps,t,n),r[a]=k({},o))}return r},eK=function(e,t){var n=I(e);for(var r=0;r<n.length;r++){var a=n[r];a.id===t?n=I(n.slice(0,r)).concat(I(n.slice(r+1))):eJ(n,t)&&a.steps&&(a.steps=eK(a.steps,t),n[r]=k({},a))}return n},eQ=function(e,t,n,r,a){var o=I(e);for(var i=0;i<o.length;i++){var s=o[i];B.isEqual(s.id,t)?("content"in s&&s.content!==void 0?r?s.content=n:s.content+=n:a?"input"in s&&s.input!==void 0&&(r?s.input=n:s.input+=n):"output"in s&&s.output!==void 0&&(r?s.output=n:s.output+=n),o[i]=k({},s)):s.steps&&(s.steps=eQ(s.steps,t,n,r,a),o[i]=k({},s))}return o};var eZ="token";function e0(){try{return localStorage.getItem(eZ)}catch(e){return}}function e1(e){try{return localStorage.setItem(eZ,e)}catch(e){return}}function e2(){try{return localStorage.removeItem(eZ)}catch(e){return}}var e3=function(){var e=o(function(e,t,n){var r;return M(this,function(a){switch(a.label){case 0:return[4,e.get(t,n)];case 1:return[2,(r=a.sent())===null||r===void 0?void 0:r.json()]}})});return function t(t,n,r){return e.apply(this,arguments)}}();function e4(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var n=t.token,r=S(t,["token"]);var a=V.useContext(te),o=O.useRecoilValue(eB);o=n||o;var i=V.useMemo(function(){return function(e){var t=C(e,2),n=t[0],r=t[1];return e3(a,n,r)}},[a]),s=V.useMemo(function(){return e?[e,o]:null},[e,o]);return z.default(s,i,r)}var e6=function(){var e=V.useContext(te),t=C(O.useRecoilState(eL),2),n=t[0],r=t[1],a=C(O.useRecoilState(ej),2),i=a[0],s=a[1],u=e4(n?null:"/auth/config"),c=u.data,l=u.isLoading,f=C(O.useRecoilState(eB),2),h=f[0],d=f[1],p=O.useSetRecoilState(eF);V.useEffect(function(){c&&r(c)},[c,r]);var v=!!(!l&&n),y=function(){var t=o(function(){var t;var n=arguments;return M(this,function(r){switch(r.label){case 0:t=n.length>0&&n[0]!==void 0?n[0]:!1;return[4,e.logout()];case 1:r.sent(),s(null),e2(),d(""),p(void 0),t&&window.location.reload();return[2]}})});return function e(){return t.apply(this,arguments)}}(),m=function(e){if(!e){y();return}try{var t=W.default(e),n=t.exp,r=S(t,["exp"]);e1(e),d("Bearer ".concat(e)),s(r)}catch(e){console.error("Invalid token, clearing token from local storage","error:",e),y()}};V.useEffect(function(){if(!i&&e0()){m(e0());return}},[]);var g=!!h;return n&&!n.requireLogin?{authConfig:n,user:null,isReady:v,isAuthenticated:!0,accessToken:"",logout:function(){},setAccessToken:function(){}}:{data:n,user:i,isAuthenticated:g,isReady:v,accessToken:h,logout:y,setAccessToken:m}};var e8=/*#__PURE__*/function(e){h(n,e);var t=P(n);function n(e,r){i(this,n);var a;a=t.call(this,e);a.detail=r;return a}c(n,[{key:"toString",value:function e(){return this.detail?"".concat(this.message,": ").concat(this.detail):this.message}}]);return n}(D(Error)),e5=/*#__PURE__*/function(){function e(t,n,r,a){i(this,e);this.httpEndpoint=t;this.type=n;this.on401=r;this.onError=a}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,a){var i=this;return o(function(){var o,s,u,c,l;return M(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);o={};n&&(o.Authorization=i.checkToken(n));d(r,FormData)?s=r:(o["Content-Type"]="application/json",s=r?JSON.stringify(r):null);return[4,fetch(i.buildEndpoint(t),{method:e,headers:o,signal:a,body:s})];case 1:u=f.sent();if(!!u.ok)return[3,3];return[4,u.json()];case 2:c=f.sent();throw u.status===401&&i.on401&&(e2(),i.on401()),new e8(u.statusText,c.detail);case 3:return[2,u];case 4:l=f.sent();throw d(l,e8)&&i.onError&&i.onError(l),console.error(l),l;case 5:return[2]}})})()}},{key:"get",value:function e(e,t){var n=this;return o(function(){return M(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 a=this;return o(function(){return M(this,function(o){switch(o.label){case 0:return[4,a.fetch("POST",e,n,t,r)];case 1:return[2,o.sent()]}})})()}},{key:"put",value:function e(e,t,n){var r=this;return o(function(){return M(this,function(a){switch(a.label){case 0:return[4,r.fetch("PUT",e,n,t)];case 1:return[2,a.sent()]}})})()}},{key:"patch",value:function e(e,t,n){var r=this;return o(function(){return M(this,function(a){switch(a.label){case 0:return[4,r.fetch("PATCH",e,n,t)];case 1:return[2,a.sent()]}})})()}},{key:"delete",value:function e(e,t,n){var r=this;return o(function(){return M(this,function(a){switch(a.label){case 0:return[4,r.fetch("DELETE",e,n,t)];case 1:return[2,a.sent()]}})})()}}]);return e}(),e7=/*#__PURE__*/function(e){h(n,e);var t=P(n);function n(){i(this,n);return t.apply(this,arguments)}c(n,[{key:"headerAuth",value:function e(){var e=this;return o(function(){return M(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 o(function(){return M(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 o(function(){return M(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 o(function(){return M(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 o(function(){return M(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 o(function(){return M(this,function(a){switch(a.label){case 0:return[4,r.post("/project/threads",{pagination:e,filter:t},n)];case 1:return[2,a.sent().json()]}})})()}},{key:"deleteThread",value:function e(e,t){var n=this;return o(function(){return M(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 a=this;var o=new XMLHttpRequest,i=new Promise(function(i,s){var u=new FormData;u.append("file",e),o.open("POST",a.buildEndpoint("/project/file?session_id=".concat(n)),!0),r&&o.setRequestHeader("Authorization",a.checkToken(r)),o.upload.onprogress=function(e){if(e.lengthComputable){var n=e.loaded/e.total*100;t(n)}},o.onload=function(){if(o.status===200){var e=JSON.parse(o.responseText);i(e)}else s("Upload failed")},o.onerror=function(){s("Upload error")},o.send(u)});return{xhr:o,promise:i}}},{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}(e5);var e9=void 0,te=V.createContext(new e7("http://localhost:8000","webapp"));var tt=function(){var e=V.useContext(te),t=O.useRecoilValue(eB),n=O.useRecoilValue(eg),r=O.useRecoilValue(eA),a=O.useRecoilValue(em),o=O.useResetRecoilState(eT),i=O.useResetRecoilState(em),s=O.useResetRecoilState(eE),u=O.useSetRecoilState(eO),c=O.useSetRecoilState(eS),l=O.useSetRecoilState(eb),f=O.useSetRecoilState(eP),h=O.useSetRecoilState(eM),d=O.useSetRecoilState(ek),p=O.useSetRecoilState(ew),v=O.useSetRecoilState(ep),y=O.useSetRecoilState(eq),m=O.useSetRecoilState(eU),g=V.useCallback(function(){n===null||n===void 0?void 0:n.socket.emit("clear_session"),n===null||n===void 0?void 0:n.socket.disconnect(),v(void 0),i(),u(void 0),l([]),f([]),h([]),d([]),p(0),o(),s(),y(void 0),m(void 0)},[n]),k=V.useCallback(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];e.id||(e.id=j.v4()),e.createdAt||(e.createdAt=new Date().toISOString()),l(function(t){return eH(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]),b=V.useCallback(function(e){n===null||n===void 0?void 0:n.socket.emit("edit_message",{message:e})},[n===null||n===void 0?void 0:n.socket]),w=V.useCallback(function(){n===null||n===void 0?void 0:n.socket.emit("audio_start")},[n===null||n===void 0?void 0:n.socket]),S=V.useCallback(function(e,t,r,a){n===null||n===void 0?void 0:n.socket.emit("audio_chunk",{isStart:e,mimeType:t,elapsedTime:r,data:a})},[n===null||n===void 0?void 0:n.socket]),A=V.useCallback(function(){n===null||n===void 0?void 0:n.socket.emit("audio_end")},[n===null||n===void 0?void 0:n.socket]),R=V.useCallback(function(e){r&&(l(function(t){return eH(t,e)}),r.callback(e))},[r]),x=V.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]),C=V.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]),I=V.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:V.useCallback(function(n,r){return e.uploadFile(n,r,a,t)},[a,t]),callAction:I,clear:g,replyMessage:R,sendMessage:k,editMessage:b,startAudioStream:w,sendAudioChunk:S,endAudioStream:A,stopTask:C,setIdToResume:v,updateChatSettings:x}};var tn=function(){var e=O.useRecoilValue(eb),t=O.useRecoilValue(eO);return{threadId:O.useRecoilValue(eU),messages:e,firstInteraction:t}};var tr=function(){var e=V.useContext(te),t=O.useRecoilValue(em),n=C(O.useRecoilState(eg),2),r=n[0],a=n[1],i=O.useSetRecoilState(eI),s=O.useSetRecoilState(eC),u=O.useResetRecoilState(eE),c=O.useSetRecoilState(eO),l=O.useSetRecoilState(eS),f=O.useRecoilValue(ex),h=O.useRecoilValue(eR),d=O.useSetRecoilState(eb),p=O.useSetRecoilState(eA),v=O.useSetRecoilState(e_),y=O.useSetRecoilState(eP),m=O.useSetRecoilState(eM),g=O.useSetRecoilState(ek),b=O.useSetRecoilState(eT),S=O.useSetRecoilState(ew),A=C(O.useRecoilState(ev),2),R=A[0],x=A[1],_=O.useRecoilValue(ep),T=C(O.useRecoilState(eU),2),D=T[0],E=T[1];V.useEffect(function(){(r===null||r===void 0?void 0:r.socket)&&(r.socket.io.opts.extraHeaders["X-Chainlit-Thread-Id"]=D||"")},[D]);var P=V.useCallback(function(n){var r=n.userEnv,A=n.accessToken;var C=new URL(e.httpEndpoint),T=C.protocol,D=C.host,P=C.pathname,O="".concat(T,"//").concat(D),B=P&&P!=="/"?"".concat(P,"/ws/socket.io"):"/ws/socket.io",j=N.default(O,{path:B,extraHeaders:{Authorization:A||"","X-Chainlit-Client-Type":e.type,"X-Chainlit-Session-Id":t,"X-Chainlit-Thread-Id":_||"","user-env":JSON.stringify(r),"X-Chainlit-Chat-Profile":R?encodeURIComponent(R):""}});a(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:j}}),j.on("connect",function(){j.emit("connection_successful"),a(function(e){return w(k({},e),{error:!1})})}),j.on("connect_error",function(e){a(function(e){return w(k({},e),{error:!0})})}),j.on("task_start",function(){l(!0)}),j.on("task_end",function(){l(!1)}),j.on("reload",function(){j.emit("clear_session"),window.location.reload()}),j.on("audio_connection",function(){var e=o(function(e){var t,n,r;return M(this,function(a){switch(a.label){case 0:if(!(e==="on"))return[3,4];t=!0,n=Date.now(),r="pcm16";return[4,h.begin()];case 1:a.sent();return[4,f.connect()];case 2:a.sent();return[4,h.record(function(){var e=o(function(e){var a;return M(this,function(o){a=Date.now()-n;j.emit("audio_chunk",{isStart:t,mimeType:r,elapsedTime:a,data:e.mono}),t=!1;return[2]})});return function(t){return e.apply(this,arguments)}}())];case 3:a.sent(),f.onStop=function(){return i(!1)};return[3,7];case 4:return[4,h.end()];case 5:a.sent();return[4,f.interrupt()];case 6:a.sent();a.label=7;case 7:s(e);return[2]}})});return function(t){return e.apply(this,arguments)}}()),j.on("audio_chunk",function(e){f.add16BitPCM(e.data,e.track),i(!0)}),j.on("audio_interrupt",function(){f.interrupt()}),j.on("resume_thread",function(e){var t,n;var r=[];var a=true,o=false,i=undefined;try{for(var s=e.steps[Symbol.iterator](),u;!(a=(u=s.next()).done);a=true){var c=u.value;r=eH(r,c)}}catch(e){o=true;i=e}finally{try{if(!a&&s.return!=null){s.return()}}finally{if(o){throw i}}}((t=e.metadata)===null||t===void 0?void 0:t.chat_profile)&&x((n=e.metadata)===null||n===void 0?void 0:n.chat_profile),d(r);var l=e.elements||[];m(l.filter(function(e){return e.type==="tasklist"})),y(l.filter(function(e){return["avatar","tasklist"].indexOf(e.type)===-1}))}),j.on("new_message",function(e){d(function(t){return eH(t,e)})}),j.on("first_interaction",function(e){c(e.interaction),E(e.thread_id)}),j.on("update_message",function(e){d(function(t){return eY(t,e.id,e)})}),j.on("delete_message",function(e){d(function(t){return eK(t,e.id)})}),j.on("stream_start",function(e){d(function(t){return eH(t,e)})}),j.on("stream_token",function(e){var t=e.id,n=e.token,r=e.isSequence,a=e.isInput;d(function(e){return eQ(e,t,n,r,a)})}),j.on("ask",function(e,t){var n=e.msg,r=e.spec;p({spec:r,callback:t}),d(function(e){return eH(e,n)}),l(!1)}),j.on("ask_timeout",function(){p(void 0),l(!1)}),j.on("clear_ask",function(){p(void 0)}),j.on("call_fn",function(e,t){var n=e.name,r=e.args;v({name:n,args:r,callback:t})}),j.on("clear_call_fn",function(){v(void 0)}),j.on("call_fn_timeout",function(){v(void 0)}),j.on("chat_settings",function(e){b(e),u()}),j.on("element",function(n){!n.url&&n.chainlitKey&&(n.url=e.getElementUrl(n.chainlitKey,t)),n.type==="tasklist"?m(function(e){var t=e.findIndex(function(e){return e.id===n.id});return t===-1?I(e).concat([n]):I(e.slice(0,t)).concat([n],I(e.slice(t+1)))}):y(function(e){var t=e.findIndex(function(e){return e.id===n.id});return t===-1?I(e).concat([n]):I(e.slice(0,t)).concat([n],I(e.slice(t+1)))})}),j.on("remove_element",function(e){y(function(t){return t.filter(function(t){return t.id!==e.id})}),m(function(t){return t.filter(function(t){return t.id!==e.id})})}),j.on("action",function(e){g(function(t){return I(t).concat([e])})}),j.on("remove_action",function(e){g(function(t){var n=t.findIndex(function(t){return t.id===e.id});return n===-1?t:I(t.slice(0,n)).concat(I(t.slice(n+1)))})}),j.on("token_usage",function(e){S(function(t){return t+e})})},[a,t,R]),j=V.useCallback(B.debounce(P,200),[P]),L=V.useCallback(function(){(r===null||r===void 0?void 0:r.socket)&&(r.socket.removeAllListeners(),r.socket.close())},[r]);return{connect:j,disconnect:L,session:r,sessionId:t,chatProfile:R,idToResume:_,setChatProfile:x}};var ta=function(){var e=C(O.useRecoilState(eC),2),t=e[0],n=e[1],r=O.useRecoilValue(eR),a=O.useRecoilValue(ex),i=O.useRecoilValue(eI),s=tt(),u=s.startAudioStream,c=s.endAudioStream,l=V.useCallback(/*#__PURE__*/o(function(){return M(this,function(e){switch(e.label){case 0:n("connecting");return[4,u()];case 1:e.sent();return[2]}})}),[u]),f=V.useCallback(/*#__PURE__*/o(function(){return M(this,function(e){switch(e.label){case 0:n("off");return[4,r.end()];case 1:e.sent();return[4,a.interrupt()];case 2:e.sent();return[4,c()];case 3:e.sent();return[2]}})}),[c,r,a]);return{startConversation:l,endConversation:f,audioConnection:t,isAiSpeaking:i,wavRecorder:r,wavStreamPlayer:a}};var to=function(e){var t=C(O.useRecoilState(eV),2),n=t[0],r=t[1],a=e6(),o=a.isAuthenticated,i=navigator.language||"en-US",s=e4(!n&&o?"/project/settings?language=".concat(i):null,{token:e}),u=s.data,c=s.error,l=s.isLoading;return V.useEffect(function(){u&&r(u)},[u,r]),{config:n,error:c,isLoading:l,language:i}};var ti=new WeakMap,ts=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;var a,o,i;if(r&&(o=t.toString(),i=n.toString(),a=ti.has(e)?ti.get(e):{},ti.set(e,a),a[o]=a[o]||{},a[o][i]))return a[o][i];var s=e.length,u=new Array(t);if(t<=s){u.fill(0);var c=new Array(t).fill(0);for(var l=0;l<s;l++){var f=Math.floor(l*(t/s));n?u[f]=Math.max(u[f],Math.abs(e[l])):u[f]+=Math.abs(e[l]),c[f]++}if(!n)for(var h=0;h<u.length;h++)u[h]=u[h]/c[h]}else for(var d=0;d<t;d++){var p=d*(s-1)/(t-1),v=Math.floor(p),y=Math.ceil(p),m=p-v;y>=s?u[d]=e[s-1]:u[d]=e[v]*(1-m)+e[y]*m}return r&&(a[o][i]=u),u},tu={drawBars:function(e,t,n,r,a){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,i=arguments.length>6&&arguments[6]!==void 0?arguments[6]:0,s=arguments.length>7&&arguments[7]!==void 0?arguments[7]:0,u=arguments.length>8&&arguments[8]!==void 0?arguments[8]:!1;o=Math.floor(Math.min(o,(n-s)/(Math.max(i,1)+s))),o||(o=Math.floor((n-s)/(Math.max(i,1)+s))),i||(i=(n-s)/o-s);var c=ts(t,o,!0);for(var l=0;l<o;l++){var f=Math.abs(c[l]),h=Math.max(1,f*r),d=s+l*(i+s),p=u?(r-h)/2:r-h,v=Math.min(i/2,h/2);e.fillStyle=a,e.beginPath(),e.moveTo(d+v,p),e.lineTo(d+i-v,p),e.arcTo(d+i,p,d+i,p+v,v),e.lineTo(d+i,p+h-v),e.arcTo(d+i,p+h,d+i-v,p+h,v),e.lineTo(d+v,p+h),e.arcTo(d,p+h,d,p+h-v,v),e.lineTo(d,p+v),e.arcTo(d,p,d+v,p,v),e.closePath(),e.fill()}}};Object.defineProperty(exports,"Socket",{enumerable:true,get:function e(){return q.Socket}});exports.APIBase=e5;exports.ChainlitAPI=e7;exports.ChainlitContext=te;exports.ClientError=e8;exports.WavRenderer=tu;exports.accessTokenState=eB;exports.actionState=ek;exports.addMessage=eH;exports.addMessageToParent=eX;exports.askUserState=eA;exports.audioConnectionState=eC;exports.authState=eL;exports.callFnState=e_;exports.chatProfileState=ev;exports.chatSettingsDefaultValueSelector=eD;exports.chatSettingsInputsState=eT;exports.chatSettingsValueState=eE;exports.configState=eV;exports.currentThreadIdState=eU;exports.defaultChainlitContext=e9;exports.deleteMessageById=eK;exports.elementState=eP;exports.fetcher=e3;exports.firstUserInteraction=eO;exports.hasMessageById=eJ;exports.isAiSpeakingState=eI;exports.isLastMessage=eN;exports.loadingState=eS;exports.messagesState=eb;exports.nestMessages=ez;exports.sessionIdState=em;exports.sessionState=eg;exports.sideViewState=eq;exports.tasklistState=eM;exports.threadHistoryState=eF;exports.threadIdToResumeState=ep;exports.tokenCountState=ew;exports.updateMessageById=eY;exports.updateMessageContentById=eQ;exports.useApi=e4;exports.useAudio=ta;exports.useAuth=e6;exports.useChatData=eW;exports.useChatInteract=tt;exports.useChatMessages=tn;exports.useChatSession=tr;exports.useConfig=to;exports.userState=ej;exports.wavRecorderState=eR;exports.wavStreamPlayerState=ex;//# sourceMappingURL=out.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|