@projectcor/maia-components 2.11.103-3 → 2.11.103-4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +7 -6
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +9 -12
- package/lib/components/atoms/MAIAInput/MAIAInput.js +6 -1
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
- package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
- package/lib/components/atoms/icons/index.js +2 -1
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +68 -97
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +9 -18
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +3 -3
- package/lib/components/molecules/ChatAIHome/styles.js +26 -32
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +46 -7
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +308 -69
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +28 -18
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +9 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +15 -3
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -1
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +66 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +55 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
- package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -2
- package/lib/components/molecules/Sidebar/Sidebar.js +106 -61
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +16 -1
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +30 -29
- package/lib/components/organisms/ChatAI/ChatAI.js +131 -40
- package/lib/context/cor-user.js +1 -5
- package/lib/context/global-context.js +3 -1
- package/lib/hooks/useChatManager/useChatManager.js +530 -438
- package/lib/hooks/useChatMessages/useChatMessages.js +427 -236
- package/lib/hooks/useChats/useChats.js +21 -4
- package/lib/hooks/useMinimizedPillBottomOffset.js +97 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +139 -521
- package/lib/hooks/useStreamingMessage/index.js +2 -3
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +13 -17
- package/lib/lang/br/index.js +11 -6
- package/lib/lang/en/index.js +11 -6
- package/lib/lang/es/index.js +11 -6
- package/lib/lang/fr/index.js +13 -7
- package/lib/services/maia/Chats/getChatsByUserId.js +6 -4
- package/lib/services/maia/Chats/index.js +3 -1
- package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
- package/lib/store/chatsSidebarOptimistic.js +92 -0
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/store/maiaMinimizedPersistence.js +49 -0
- package/lib/store/sessions/activeView.js +22 -0
- package/lib/store/sessions/index.js +9 -0
- package/lib/store/sessions/sessionHitlContext.js +15 -0
- package/lib/store/sessions/sessionNotificationSound.js +57 -0
- package/lib/store/sessions/sessionNotifications.js +110 -0
- package/lib/store/sessions/sessionNotifications.types.js +2 -0
- package/lib/store/sessions/sessionStreamManager.js +576 -0
- package/lib/store/sessions/sessionStreamingText.js +80 -0
- package/lib/store/sessions/sessions.types.js +35 -0
- package/lib/store/sessions/useSessionMeta.js +39 -0
- package/lib/store/sessions/useSessionStreamingText.js +18 -0
- package/lib/store/sessions/useSessionsStore.js +197 -0
- package/lib/store/useChatsStore.js +149 -12
- package/lib/types/Chat.js +1 -1
- package/lib/utils/formatUnreadCount.js +6 -0
- package/lib/utils/maiaHostOpen.js +54 -0
- package/package.json +3 -3
- package/lib/hooks/useStreamingMessage/streamingStore.js +0 -69
- package/lib/utils/managerHoursHomeFuas.js +0 -54
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
2
|
+
var STORAGE_PREFIX = 'maia:minimized';
|
|
3
|
+
var EMPTY = {
|
|
4
|
+
minimized: false,
|
|
5
|
+
chatId: null
|
|
6
|
+
};
|
|
7
|
+
var canUseStorage = function canUseStorage() {
|
|
8
|
+
return typeof window !== 'undefined' && typeof localStorage !== 'undefined';
|
|
9
|
+
};
|
|
10
|
+
var buildKey = function buildKey(userId) {
|
|
11
|
+
return "".concat(STORAGE_PREFIX, ":").concat(userId);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Estado de minimizado de MAIA, persistido para que el flotante siga visible al
|
|
16
|
+
* navegar entre secciones o refrescar. Scopeado por usuario para no arrastrar el
|
|
17
|
+
* estado de una cuenta a otra en el mismo browser.
|
|
18
|
+
*/
|
|
19
|
+
export var readMinimizedState = function readMinimizedState(userId) {
|
|
20
|
+
if (!canUseStorage()) return EMPTY;
|
|
21
|
+
try {
|
|
22
|
+
var raw = localStorage.getItem(buildKey(userId));
|
|
23
|
+
if (!raw) return EMPTY;
|
|
24
|
+
var parsed = JSON.parse(raw);
|
|
25
|
+
if (!parsed || _typeof(parsed) !== 'object') return EMPTY;
|
|
26
|
+
var _ref = parsed,
|
|
27
|
+
minimized = _ref.minimized,
|
|
28
|
+
chatId = _ref.chatId;
|
|
29
|
+
return {
|
|
30
|
+
minimized: minimized === true,
|
|
31
|
+
chatId: typeof chatId === 'string' && chatId.length > 0 ? chatId : null
|
|
32
|
+
};
|
|
33
|
+
} catch (_unused) {
|
|
34
|
+
return EMPTY;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
export var writeMinimizedState = function writeMinimizedState(userId, state) {
|
|
38
|
+
if (!canUseStorage()) return;
|
|
39
|
+
try {
|
|
40
|
+
if (!state.minimized) {
|
|
41
|
+
localStorage.removeItem(buildKey(userId));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
localStorage.setItem(buildKey(userId), JSON.stringify(state));
|
|
45
|
+
} catch (_unused2) {
|
|
46
|
+
// storage lleno o bloqueado: el flotante simplemente no persiste
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVE9SQUdFX1BSRUZJWCIsIkVNUFRZIiwibWluaW1pemVkIiwiY2hhdElkIiwiY2FuVXNlU3RvcmFnZSIsIndpbmRvdyIsImxvY2FsU3RvcmFnZSIsImJ1aWxkS2V5IiwidXNlcklkIiwiY29uY2F0IiwicmVhZE1pbmltaXplZFN0YXRlIiwicmF3IiwiZ2V0SXRlbSIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsIl90eXBlb2YiLCJfcmVmIiwibGVuZ3RoIiwiX3VudXNlZCIsIndyaXRlTWluaW1pemVkU3RhdGUiLCJzdGF0ZSIsInJlbW92ZUl0ZW0iLCJzZXRJdGVtIiwic3RyaW5naWZ5IiwiX3VudXNlZDIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmUvbWFpYU1pbmltaXplZFBlcnNpc3RlbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNUT1JBR0VfUFJFRklYID0gJ21haWE6bWluaW1pemVkJ1xuXG5leHBvcnQgdHlwZSBNaW5pbWl6ZWRTdGF0ZSA9IHtcbiAgbWluaW1pemVkOiBib29sZWFuXG4gIC8qKiBDaGF0IGFjdGl2byBhbCBtaW5pbWl6YXI6IGRlc3Rpbm8gZGUgZmFsbGJhY2sgYWwgcmVhYnJpci4gKi9cbiAgY2hhdElkOiBzdHJpbmcgfCBudWxsXG59XG5cbmNvbnN0IEVNUFRZOiBNaW5pbWl6ZWRTdGF0ZSA9IHsgbWluaW1pemVkOiBmYWxzZSwgY2hhdElkOiBudWxsIH1cblxuY29uc3QgY2FuVXNlU3RvcmFnZSA9ICgpOiBib29sZWFuID0+IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBsb2NhbFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnXG5cbmNvbnN0IGJ1aWxkS2V5ID0gKHVzZXJJZDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nID0+IGAke1NUT1JBR0VfUFJFRklYfToke3VzZXJJZH1gXG5cbi8qKlxuICogRXN0YWRvIGRlIG1pbmltaXphZG8gZGUgTUFJQSwgcGVyc2lzdGlkbyBwYXJhIHF1ZSBlbCBmbG90YW50ZSBzaWdhIHZpc2libGUgYWxcbiAqIG5hdmVnYXIgZW50cmUgc2VjY2lvbmVzIG8gcmVmcmVzY2FyLiBTY29wZWFkbyBwb3IgdXN1YXJpbyBwYXJhIG5vIGFycmFzdHJhciBlbFxuICogZXN0YWRvIGRlIHVuYSBjdWVudGEgYSBvdHJhIGVuIGVsIG1pc21vIGJyb3dzZXIuXG4gKi9cbmV4cG9ydCBjb25zdCByZWFkTWluaW1pemVkU3RhdGUgPSAodXNlcklkOiBudW1iZXIgfCBzdHJpbmcpOiBNaW5pbWl6ZWRTdGF0ZSA9PiB7XG4gIGlmICghY2FuVXNlU3RvcmFnZSgpKSByZXR1cm4gRU1QVFlcblxuICB0cnkge1xuICAgIGNvbnN0IHJhdyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGJ1aWxkS2V5KHVzZXJJZCkpXG4gICAgaWYgKCFyYXcpIHJldHVybiBFTVBUWVxuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KSBhcyB1bmtub3duXG4gICAgaWYgKCFwYXJzZWQgfHwgdHlwZW9mIHBhcnNlZCAhPT0gJ29iamVjdCcpIHJldHVybiBFTVBUWVxuICAgIGNvbnN0IHsgbWluaW1pemVkLCBjaGF0SWQgfSA9IHBhcnNlZCBhcyBQYXJ0aWFsPE1pbmltaXplZFN0YXRlPlxuICAgIHJldHVybiB7XG4gICAgICBtaW5pbWl6ZWQ6IG1pbmltaXplZCA9PT0gdHJ1ZSxcbiAgICAgIGNoYXRJZDogdHlwZW9mIGNoYXRJZCA9PT0gJ3N0cmluZycgJiYgY2hhdElkLmxlbmd0aCA+IDAgPyBjaGF0SWQgOiBudWxsLFxuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIEVNUFRZXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHdyaXRlTWluaW1pemVkU3RhdGUgPSAodXNlcklkOiBudW1iZXIgfCBzdHJpbmcsIHN0YXRlOiBNaW5pbWl6ZWRTdGF0ZSk6IHZvaWQgPT4ge1xuICBpZiAoIWNhblVzZVN0b3JhZ2UoKSkgcmV0dXJuXG5cbiAgdHJ5IHtcbiAgICBpZiAoIXN0YXRlLm1pbmltaXplZCkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYnVpbGRLZXkodXNlcklkKSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShidWlsZEtleSh1c2VySWQpLCBKU09OLnN0cmluZ2lmeShzdGF0ZSkpXG4gIH0gY2F0Y2gge1xuICAgIC8vIHN0b3JhZ2UgbGxlbm8gbyBibG9xdWVhZG86IGVsIGZsb3RhbnRlIHNpbXBsZW1lbnRlIG5vIHBlcnNpc3RlXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQU1BLGNBQWMsR0FBRyxnQkFBZ0I7QUFRdkMsSUFBTUMsS0FBcUIsR0FBRztFQUFFQyxTQUFTLEVBQUUsS0FBSztFQUFFQyxNQUFNLEVBQUU7QUFBSyxDQUFDO0FBRWhFLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQTtFQUFBLE9BQWtCLE9BQU9DLE1BQU0sS0FBSyxXQUFXLElBQUksT0FBT0MsWUFBWSxLQUFLLFdBQVc7QUFBQTtBQUV6RyxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBdUI7RUFBQSxVQUFBQyxNQUFBLENBQWdCVCxjQUFjLE9BQUFTLE1BQUEsQ0FBSUQsTUFBTTtBQUFBLENBQUU7O0FBRW5GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1FLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlGLE1BQXVCLEVBQXFCO0VBQzdFLElBQUksQ0FBQ0osYUFBYSxDQUFDLENBQUMsRUFBRSxPQUFPSCxLQUFLO0VBRWxDLElBQUk7SUFDRixJQUFNVSxHQUFHLEdBQUdMLFlBQVksQ0FBQ00sT0FBTyxDQUFDTCxRQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELElBQUksQ0FBQ0csR0FBRyxFQUFFLE9BQU9WLEtBQUs7SUFDdEIsSUFBTVksTUFBTSxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0osR0FBRyxDQUFZO0lBQ3pDLElBQUksQ0FBQ0UsTUFBTSxJQUFJRyxPQUFBLENBQU9ILE1BQU0sTUFBSyxRQUFRLEVBQUUsT0FBT1osS0FBSztJQUN2RCxJQUFBZ0IsSUFBQSxHQUE4QkosTUFBTTtNQUE1QlgsU0FBUyxHQUFBZSxJQUFBLENBQVRmLFNBQVM7TUFBRUMsTUFBTSxHQUFBYyxJQUFBLENBQU5kLE1BQU07SUFDekIsT0FBTztNQUNMRCxTQUFTLEVBQUVBLFNBQVMsS0FBSyxJQUFJO01BQzdCQyxNQUFNLEVBQUUsT0FBT0EsTUFBTSxLQUFLLFFBQVEsSUFBSUEsTUFBTSxDQUFDZSxNQUFNLEdBQUcsQ0FBQyxHQUFHZixNQUFNLEdBQUc7SUFDckUsQ0FBQztFQUNILENBQUMsQ0FBQyxPQUFBZ0IsT0FBQSxFQUFNO0lBQ04sT0FBT2xCLEtBQUs7RUFDZDtBQUNGLENBQUM7QUFFRCxPQUFPLElBQU1tQixtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJWixNQUF1QixFQUFFYSxLQUFxQixFQUFXO0VBQzNGLElBQUksQ0FBQ2pCLGFBQWEsQ0FBQyxDQUFDLEVBQUU7RUFFdEIsSUFBSTtJQUNGLElBQUksQ0FBQ2lCLEtBQUssQ0FBQ25CLFNBQVMsRUFBRTtNQUNwQkksWUFBWSxDQUFDZ0IsVUFBVSxDQUFDZixRQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDO01BQ3pDO0lBQ0Y7SUFDQUYsWUFBWSxDQUFDaUIsT0FBTyxDQUFDaEIsUUFBUSxDQUFDQyxNQUFNLENBQUMsRUFBRU0sSUFBSSxDQUFDVSxTQUFTLENBQUNILEtBQUssQ0FBQyxDQUFDO0VBQy9ELENBQUMsQ0FBQyxPQUFBSSxRQUFBLEVBQU07SUFDTjtFQUFBO0FBRUosQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sesión actualmente visible en la UI (module-level).
|
|
3
|
+
*
|
|
4
|
+
* El motor de streaming vive en `sessionStreamManager` y sobrevive al
|
|
5
|
+
* desmontaje del componente. Por eso los callbacks de un stream NO pueden
|
|
6
|
+
* decidir "¿es la sesión activa?" leyendo un ref de la instancia que lo arrancó
|
|
7
|
+
* (puede estar desmontada). Este tracker global da la respuesta correcta sin
|
|
8
|
+
* importar qué closure ejecute el callback.
|
|
9
|
+
*/
|
|
10
|
+
var activeViewSessionId = null;
|
|
11
|
+
export var activeView = {
|
|
12
|
+
set: function set(sessionId) {
|
|
13
|
+
activeViewSessionId = sessionId;
|
|
14
|
+
},
|
|
15
|
+
get: function get() {
|
|
16
|
+
return activeViewSessionId;
|
|
17
|
+
},
|
|
18
|
+
is: function is(sessionId) {
|
|
19
|
+
return sessionId != null && sessionId === activeViewSessionId;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhY3RpdmVWaWV3U2Vzc2lvbklkIiwiYWN0aXZlVmlldyIsInNldCIsInNlc3Npb25JZCIsImdldCIsImlzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL2FjdGl2ZVZpZXcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXNpw7NuIGFjdHVhbG1lbnRlIHZpc2libGUgZW4gbGEgVUkgKG1vZHVsZS1sZXZlbCkuXG4gKlxuICogRWwgbW90b3IgZGUgc3RyZWFtaW5nIHZpdmUgZW4gYHNlc3Npb25TdHJlYW1NYW5hZ2VyYCB5IHNvYnJldml2ZSBhbFxuICogZGVzbW9udGFqZSBkZWwgY29tcG9uZW50ZS4gUG9yIGVzbyBsb3MgY2FsbGJhY2tzIGRlIHVuIHN0cmVhbSBOTyBwdWVkZW5cbiAqIGRlY2lkaXIgXCLCv2VzIGxhIHNlc2nDs24gYWN0aXZhP1wiIGxleWVuZG8gdW4gcmVmIGRlIGxhIGluc3RhbmNpYSBxdWUgbG8gYXJyYW5jw7NcbiAqIChwdWVkZSBlc3RhciBkZXNtb250YWRhKS4gRXN0ZSB0cmFja2VyIGdsb2JhbCBkYSBsYSByZXNwdWVzdGEgY29ycmVjdGEgc2luXG4gKiBpbXBvcnRhciBxdcOpIGNsb3N1cmUgZWplY3V0ZSBlbCBjYWxsYmFjay5cbiAqL1xubGV0IGFjdGl2ZVZpZXdTZXNzaW9uSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsXG5cbmV4cG9ydCBjb25zdCBhY3RpdmVWaWV3ID0ge1xuICBzZXQoc2Vzc2lvbklkOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgYWN0aXZlVmlld1Nlc3Npb25JZCA9IHNlc3Npb25JZFxuICB9LFxuICBnZXQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIGFjdGl2ZVZpZXdTZXNzaW9uSWRcbiAgfSxcbiAgaXMoc2Vzc2lvbklkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNlc3Npb25JZCAhPSBudWxsICYmIHNlc3Npb25JZCA9PT0gYWN0aXZlVmlld1Nlc3Npb25JZFxuICB9LFxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxtQkFBa0MsR0FBRyxJQUFJO0FBRTdDLE9BQU8sSUFBTUMsVUFBVSxHQUFHO0VBQ3hCQyxHQUFHLFdBQUhBLEdBQUdBLENBQUNDLFNBQXdCLEVBQVE7SUFDbENILG1CQUFtQixHQUFHRyxTQUFTO0VBQ2pDLENBQUM7RUFDREMsR0FBRyxXQUFIQSxHQUFHQSxDQUFBLEVBQWtCO0lBQ25CLE9BQU9KLG1CQUFtQjtFQUM1QixDQUFDO0VBQ0RLLEVBQUUsV0FBRkEsRUFBRUEsQ0FBQ0YsU0FBb0MsRUFBVztJQUNoRCxPQUFPQSxTQUFTLElBQUksSUFBSSxJQUFJQSxTQUFTLEtBQUtILG1CQUFtQjtFQUMvRDtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { useSessionsStore } from './useSessionsStore';
|
|
2
|
+
export { sessionStreamingText } from './sessionStreamingText';
|
|
3
|
+
export { useSessionStreamingText } from './useSessionStreamingText';
|
|
4
|
+
export { useSessionMeta, useSessionStreamState, useActiveSessionIds, useIsSessionGenerating } from './useSessionMeta';
|
|
5
|
+
export { sessionStreamManager, MAX_CONCURRENT_STREAMS } from './sessionStreamManager';
|
|
6
|
+
export { activeView } from './activeView';
|
|
7
|
+
export { ensureSessionNotificationsInitialized, notifySessionFinishedInBackground } from './sessionNotifications';
|
|
8
|
+
export { isActiveSessionStatus, ACTIVE_SESSION_STATUSES } from './sessions.types';
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTZXNzaW9uc1N0b3JlIiwic2Vzc2lvblN0cmVhbWluZ1RleHQiLCJ1c2VTZXNzaW9uU3RyZWFtaW5nVGV4dCIsInVzZVNlc3Npb25NZXRhIiwidXNlU2Vzc2lvblN0cmVhbVN0YXRlIiwidXNlQWN0aXZlU2Vzc2lvbklkcyIsInVzZUlzU2Vzc2lvbkdlbmVyYXRpbmciLCJzZXNzaW9uU3RyZWFtTWFuYWdlciIsIk1BWF9DT05DVVJSRU5UX1NUUkVBTVMiLCJhY3RpdmVWaWV3IiwiZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCIsIm5vdGlmeVNlc3Npb25GaW5pc2hlZEluQmFja2dyb3VuZCIsImlzQWN0aXZlU2Vzc2lvblN0YXR1cyIsIkFDVElWRV9TRVNTSU9OX1NUQVRVU0VTIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHVzZVNlc3Npb25zU3RvcmUgfSBmcm9tICcuL3VzZVNlc3Npb25zU3RvcmUnXG5leHBvcnQgeyBzZXNzaW9uU3RyZWFtaW5nVGV4dCB9IGZyb20gJy4vc2Vzc2lvblN0cmVhbWluZ1RleHQnXG5leHBvcnQgeyB1c2VTZXNzaW9uU3RyZWFtaW5nVGV4dCB9IGZyb20gJy4vdXNlU2Vzc2lvblN0cmVhbWluZ1RleHQnXG5leHBvcnQgeyB1c2VTZXNzaW9uTWV0YSwgdXNlU2Vzc2lvblN0cmVhbVN0YXRlLCB1c2VBY3RpdmVTZXNzaW9uSWRzLCB1c2VJc1Nlc3Npb25HZW5lcmF0aW5nIH0gZnJvbSAnLi91c2VTZXNzaW9uTWV0YSdcbmV4cG9ydCB7IHNlc3Npb25TdHJlYW1NYW5hZ2VyLCBNQVhfQ09OQ1VSUkVOVF9TVFJFQU1TIH0gZnJvbSAnLi9zZXNzaW9uU3RyZWFtTWFuYWdlcidcbmV4cG9ydCB7IGFjdGl2ZVZpZXcgfSBmcm9tICcuL2FjdGl2ZVZpZXcnXG5leHBvcnQgeyBlbnN1cmVTZXNzaW9uTm90aWZpY2F0aW9uc0luaXRpYWxpemVkLCBub3RpZnlTZXNzaW9uRmluaXNoZWRJbkJhY2tncm91bmQgfSBmcm9tICcuL3Nlc3Npb25Ob3RpZmljYXRpb25zJ1xuZXhwb3J0IHR5cGUgeyBNYWlhU2Vzc2lvbkZpbmlzaGVkRGV0YWlsLCBTZXNzaW9uRmluaXNoZWRLaW5kIH0gZnJvbSAnLi9zZXNzaW9uTm90aWZpY2F0aW9ucy50eXBlcydcbmV4cG9ydCB7IGlzQWN0aXZlU2Vzc2lvblN0YXR1cywgQUNUSVZFX1NFU1NJT05fU1RBVFVTRVMgfSBmcm9tICcuL3Nlc3Npb25zLnR5cGVzJ1xuZXhwb3J0IHR5cGUge1xuICBTZXNzaW9uU3RhdHVzLFxuICBTZXNzaW9uRXJyb3IsXG4gIFNlc3Npb25SdW50aW1lTWV0YSxcbiAgU2Vzc2lvblN0cmVhbWluZ1NuYXBzaG90LFxuICBTZXNzaW9uRmluaXNoUGF5bG9hZCxcbiAgU2Vzc2lvblN0cmVhbUNhbGxiYWNrcyxcbiAgU3RhcnRTdHJlYW1SZXN1bHQsXG4gIFNlc3Npb25NZXNzYWdlc01hcCxcbn0gZnJvbSAnLi9zZXNzaW9ucy50eXBlcydcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBQ3JELFNBQVNDLG9CQUFvQixRQUFRLHdCQUF3QjtBQUM3RCxTQUFTQyx1QkFBdUIsUUFBUSwyQkFBMkI7QUFDbkUsU0FBU0MsY0FBYyxFQUFFQyxxQkFBcUIsRUFBRUMsbUJBQW1CLEVBQUVDLHNCQUFzQixRQUFRLGtCQUFrQjtBQUNySCxTQUFTQyxvQkFBb0IsRUFBRUMsc0JBQXNCLFFBQVEsd0JBQXdCO0FBQ3JGLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLHFDQUFxQyxFQUFFQyxpQ0FBaUMsUUFBUSx3QkFBd0I7QUFFakgsU0FBU0MscUJBQXFCLEVBQUVDLHVCQUF1QixRQUFRLGtCQUFrQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Contexto HITL por sesión (sobrevive al cambio de vista dentro del motor). */
|
|
2
|
+
var contexts = new Map();
|
|
3
|
+
export var sessionHitlContext = {
|
|
4
|
+
set: function set(sessionId, context) {
|
|
5
|
+
contexts.set(sessionId, context);
|
|
6
|
+
},
|
|
7
|
+
get: function get(sessionId) {
|
|
8
|
+
var _contexts$get;
|
|
9
|
+
return (_contexts$get = contexts.get(sessionId)) !== null && _contexts$get !== void 0 ? _contexts$get : null;
|
|
10
|
+
},
|
|
11
|
+
clear: function clear(sessionId) {
|
|
12
|
+
contexts["delete"](sessionId);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb250ZXh0cyIsIk1hcCIsInNlc3Npb25IaXRsQ29udGV4dCIsInNldCIsInNlc3Npb25JZCIsImNvbnRleHQiLCJnZXQiLCJfY29udGV4dHMkZ2V0IiwiY2xlYXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmUvc2Vzc2lvbnMvc2Vzc2lvbkhpdGxDb250ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSGl0bEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tICcuLi8uLi91dGlscy9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzJ1xuXG4vKiogQ29udGV4dG8gSElUTCBwb3Igc2VzacOzbiAoc29icmV2aXZlIGFsIGNhbWJpbyBkZSB2aXN0YSBkZW50cm8gZGVsIG1vdG9yKS4gKi9cbmNvbnN0IGNvbnRleHRzID0gbmV3IE1hcDxzdHJpbmcsIEhpdGxFeGVjdXRpb25Db250ZXh0PigpXG5cbmV4cG9ydCBjb25zdCBzZXNzaW9uSGl0bENvbnRleHQgPSB7XG4gIHNldChzZXNzaW9uSWQ6IHN0cmluZywgY29udGV4dDogSGl0bEV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkIHtcbiAgICBjb250ZXh0cy5zZXQoc2Vzc2lvbklkLCBjb250ZXh0KVxuICB9LFxuICBnZXQoc2Vzc2lvbklkOiBzdHJpbmcpOiBIaXRsRXhlY3V0aW9uQ29udGV4dCB8IG51bGwge1xuICAgIHJldHVybiBjb250ZXh0cy5nZXQoc2Vzc2lvbklkKSA/PyBudWxsXG4gIH0sXG4gIGNsZWFyKHNlc3Npb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29udGV4dHMuZGVsZXRlKHNlc3Npb25JZClcbiAgfSxcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUE7QUFDQSxJQUFNQSxRQUFRLEdBQUcsSUFBSUMsR0FBRyxDQUErQixDQUFDO0FBRXhELE9BQU8sSUFBTUMsa0JBQWtCLEdBQUc7RUFDaENDLEdBQUcsV0FBSEEsR0FBR0EsQ0FBQ0MsU0FBaUIsRUFBRUMsT0FBNkIsRUFBUTtJQUMxREwsUUFBUSxDQUFDRyxHQUFHLENBQUNDLFNBQVMsRUFBRUMsT0FBTyxDQUFDO0VBQ2xDLENBQUM7RUFDREMsR0FBRyxXQUFIQSxHQUFHQSxDQUFDRixTQUFpQixFQUErQjtJQUFBLElBQUFHLGFBQUE7SUFDbEQsUUFBQUEsYUFBQSxHQUFPUCxRQUFRLENBQUNNLEdBQUcsQ0FBQ0YsU0FBUyxDQUFDLGNBQUFHLGFBQUEsY0FBQUEsYUFBQSxHQUFJLElBQUk7RUFDeEMsQ0FBQztFQUNEQyxLQUFLLFdBQUxBLEtBQUtBLENBQUNKLFNBQWlCLEVBQVE7SUFDN0JKLFFBQVEsVUFBTyxDQUFDSSxTQUFTLENBQUM7RUFDNUI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
var audioContext = null;
|
|
2
|
+
var getAudioContext = function getAudioContext() {
|
|
3
|
+
if (typeof window === 'undefined') return null;
|
|
4
|
+
if (!audioContext) {
|
|
5
|
+
audioContext = new AudioContext();
|
|
6
|
+
}
|
|
7
|
+
return audioContext;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Dos notas ascendentes, envelope suave — aproximación al ding de Cursor al
|
|
11
|
+
* terminar una tarea (corto, limpio, no estridente).
|
|
12
|
+
*/
|
|
13
|
+
var CURSOR_LIKE_CHIME = [{
|
|
14
|
+
frequency: 830,
|
|
15
|
+
startOffset: 0,
|
|
16
|
+
duration: 0.075,
|
|
17
|
+
peakGain: 0.055
|
|
18
|
+
}, {
|
|
19
|
+
frequency: 1046,
|
|
20
|
+
startOffset: 0.085,
|
|
21
|
+
duration: 0.095,
|
|
22
|
+
peakGain: 0.075
|
|
23
|
+
}];
|
|
24
|
+
var playChimeNote = function playChimeNote(ctx, note, baseTime) {
|
|
25
|
+
var start = baseTime + note.startOffset;
|
|
26
|
+
var oscillator = ctx.createOscillator();
|
|
27
|
+
var gain = ctx.createGain();
|
|
28
|
+
oscillator.type = 'sine';
|
|
29
|
+
oscillator.frequency.setValueAtTime(note.frequency, start);
|
|
30
|
+
gain.gain.setValueAtTime(0.0001, start);
|
|
31
|
+
gain.gain.exponentialRampToValueAtTime(note.peakGain, start + 0.01);
|
|
32
|
+
gain.gain.exponentialRampToValueAtTime(0.0001, start + note.duration);
|
|
33
|
+
oscillator.connect(gain);
|
|
34
|
+
gain.connect(ctx.destination);
|
|
35
|
+
oscillator.start(start);
|
|
36
|
+
oscillator.stop(start + note.duration + 0.025);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/** Sonido corto al terminar una sesión en background (sin asset externo). */
|
|
40
|
+
export var playSessionFinishedSound = function playSessionFinishedSound() {
|
|
41
|
+
try {
|
|
42
|
+
var ctx = getAudioContext();
|
|
43
|
+
if (!ctx) return;
|
|
44
|
+
if (ctx.state === 'suspended') {
|
|
45
|
+
ctx.resume()["catch"](function () {
|
|
46
|
+
// ignore
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
var baseTime = ctx.currentTime;
|
|
50
|
+
CURSOR_LIKE_CHIME.forEach(function (note) {
|
|
51
|
+
return playChimeNote(ctx, note, baseTime);
|
|
52
|
+
});
|
|
53
|
+
} catch (_unused) {
|
|
54
|
+
// Autoplay policy o AudioContext no disponible — ignorar.
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhdWRpb0NvbnRleHQiLCJnZXRBdWRpb0NvbnRleHQiLCJ3aW5kb3ciLCJBdWRpb0NvbnRleHQiLCJDVVJTT1JfTElLRV9DSElNRSIsImZyZXF1ZW5jeSIsInN0YXJ0T2Zmc2V0IiwiZHVyYXRpb24iLCJwZWFrR2FpbiIsInBsYXlDaGltZU5vdGUiLCJjdHgiLCJub3RlIiwiYmFzZVRpbWUiLCJzdGFydCIsIm9zY2lsbGF0b3IiLCJjcmVhdGVPc2NpbGxhdG9yIiwiZ2FpbiIsImNyZWF0ZUdhaW4iLCJ0eXBlIiwic2V0VmFsdWVBdFRpbWUiLCJleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lIiwiY29ubmVjdCIsImRlc3RpbmF0aW9uIiwic3RvcCIsInBsYXlTZXNzaW9uRmluaXNoZWRTb3VuZCIsInN0YXRlIiwicmVzdW1lIiwiY3VycmVudFRpbWUiLCJmb3JFYWNoIiwiX3VudXNlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yZS9zZXNzaW9ucy9zZXNzaW9uTm90aWZpY2F0aW9uU291bmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IGF1ZGlvQ29udGV4dDogQXVkaW9Db250ZXh0IHwgbnVsbCA9IG51bGxcblxuY29uc3QgZ2V0QXVkaW9Db250ZXh0ID0gKCk6IEF1ZGlvQ29udGV4dCB8IG51bGwgPT4ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBudWxsXG4gIGlmICghYXVkaW9Db250ZXh0KSB7XG4gICAgYXVkaW9Db250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpXG4gIH1cbiAgcmV0dXJuIGF1ZGlvQ29udGV4dFxufVxuXG50eXBlIENoaW1lTm90ZSA9IHtcbiAgZnJlcXVlbmN5OiBudW1iZXJcbiAgc3RhcnRPZmZzZXQ6IG51bWJlclxuICBkdXJhdGlvbjogbnVtYmVyXG4gIHBlYWtHYWluOiBudW1iZXJcbn1cblxuLyoqXG4gKiBEb3Mgbm90YXMgYXNjZW5kZW50ZXMsIGVudmVsb3BlIHN1YXZlIOKAlCBhcHJveGltYWNpw7NuIGFsIGRpbmcgZGUgQ3Vyc29yIGFsXG4gKiB0ZXJtaW5hciB1bmEgdGFyZWEgKGNvcnRvLCBsaW1waW8sIG5vIGVzdHJpZGVudGUpLlxuICovXG5jb25zdCBDVVJTT1JfTElLRV9DSElNRTogQ2hpbWVOb3RlW10gPSBbXG4gIHsgZnJlcXVlbmN5OiA4MzAsIHN0YXJ0T2Zmc2V0OiAwLCBkdXJhdGlvbjogMC4wNzUsIHBlYWtHYWluOiAwLjA1NSB9LFxuICB7IGZyZXF1ZW5jeTogMTA0Niwgc3RhcnRPZmZzZXQ6IDAuMDg1LCBkdXJhdGlvbjogMC4wOTUsIHBlYWtHYWluOiAwLjA3NSB9LFxuXVxuXG5jb25zdCBwbGF5Q2hpbWVOb3RlID0gKGN0eDogQXVkaW9Db250ZXh0LCBub3RlOiBDaGltZU5vdGUsIGJhc2VUaW1lOiBudW1iZXIpOiB2b2lkID0+IHtcbiAgY29uc3Qgc3RhcnQgPSBiYXNlVGltZSArIG5vdGUuc3RhcnRPZmZzZXRcbiAgY29uc3Qgb3NjaWxsYXRvciA9IGN0eC5jcmVhdGVPc2NpbGxhdG9yKClcbiAgY29uc3QgZ2FpbiA9IGN0eC5jcmVhdGVHYWluKClcblxuICBvc2NpbGxhdG9yLnR5cGUgPSAnc2luZSdcbiAgb3NjaWxsYXRvci5mcmVxdWVuY3kuc2V0VmFsdWVBdFRpbWUobm90ZS5mcmVxdWVuY3ksIHN0YXJ0KVxuXG4gIGdhaW4uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLjAwMDEsIHN0YXJ0KVxuICBnYWluLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShub3RlLnBlYWtHYWluLCBzdGFydCArIDAuMDEpXG4gIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSwgc3RhcnQgKyBub3RlLmR1cmF0aW9uKVxuXG4gIG9zY2lsbGF0b3IuY29ubmVjdChnYWluKVxuICBnYWluLmNvbm5lY3QoY3R4LmRlc3RpbmF0aW9uKVxuICBvc2NpbGxhdG9yLnN0YXJ0KHN0YXJ0KVxuICBvc2NpbGxhdG9yLnN0b3Aoc3RhcnQgKyBub3RlLmR1cmF0aW9uICsgMC4wMjUpXG59XG5cbi8qKiBTb25pZG8gY29ydG8gYWwgdGVybWluYXIgdW5hIHNlc2nDs24gZW4gYmFja2dyb3VuZCAoc2luIGFzc2V0IGV4dGVybm8pLiAqL1xuZXhwb3J0IGNvbnN0IHBsYXlTZXNzaW9uRmluaXNoZWRTb3VuZCA9ICgpOiB2b2lkID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBjdHggPSBnZXRBdWRpb0NvbnRleHQoKVxuICAgIGlmICghY3R4KSByZXR1cm5cblxuICAgIGlmIChjdHguc3RhdGUgPT09ICdzdXNwZW5kZWQnKSB7XG4gICAgICBjdHgucmVzdW1lKCkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAvLyBpZ25vcmVcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgYmFzZVRpbWUgPSBjdHguY3VycmVudFRpbWVcbiAgICBDVVJTT1JfTElLRV9DSElNRS5mb3JFYWNoKG5vdGUgPT4gcGxheUNoaW1lTm90ZShjdHgsIG5vdGUsIGJhc2VUaW1lKSlcbiAgfSBjYXRjaCB7XG4gICAgLy8gQXV0b3BsYXkgcG9saWN5IG8gQXVkaW9Db250ZXh0IG5vIGRpc3BvbmlibGUg4oCUIGlnbm9yYXIuXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsWUFBaUMsR0FBRyxJQUFJO0FBRTVDLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUE4QjtFQUNqRCxJQUFJLE9BQU9DLE1BQU0sS0FBSyxXQUFXLEVBQUUsT0FBTyxJQUFJO0VBQzlDLElBQUksQ0FBQ0YsWUFBWSxFQUFFO0lBQ2pCQSxZQUFZLEdBQUcsSUFBSUcsWUFBWSxDQUFDLENBQUM7RUFDbkM7RUFDQSxPQUFPSCxZQUFZO0FBQ3JCLENBQUM7QUFTRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1JLGlCQUE4QixHQUFHLENBQ3JDO0VBQUVDLFNBQVMsRUFBRSxHQUFHO0VBQUVDLFdBQVcsRUFBRSxDQUFDO0VBQUVDLFFBQVEsRUFBRSxLQUFLO0VBQUVDLFFBQVEsRUFBRTtBQUFNLENBQUMsRUFDcEU7RUFBRUgsU0FBUyxFQUFFLElBQUk7RUFBRUMsV0FBVyxFQUFFLEtBQUs7RUFBRUMsUUFBUSxFQUFFLEtBQUs7RUFBRUMsUUFBUSxFQUFFO0FBQU0sQ0FBQyxDQUMxRTtBQUVELElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSUMsR0FBaUIsRUFBRUMsSUFBZSxFQUFFQyxRQUFnQixFQUFXO0VBQ3BGLElBQU1DLEtBQUssR0FBR0QsUUFBUSxHQUFHRCxJQUFJLENBQUNMLFdBQVc7RUFDekMsSUFBTVEsVUFBVSxHQUFHSixHQUFHLENBQUNLLGdCQUFnQixDQUFDLENBQUM7RUFDekMsSUFBTUMsSUFBSSxHQUFHTixHQUFHLENBQUNPLFVBQVUsQ0FBQyxDQUFDO0VBRTdCSCxVQUFVLENBQUNJLElBQUksR0FBRyxNQUFNO0VBQ3hCSixVQUFVLENBQUNULFNBQVMsQ0FBQ2MsY0FBYyxDQUFDUixJQUFJLENBQUNOLFNBQVMsRUFBRVEsS0FBSyxDQUFDO0VBRTFERyxJQUFJLENBQUNBLElBQUksQ0FBQ0csY0FBYyxDQUFDLE1BQU0sRUFBRU4sS0FBSyxDQUFDO0VBQ3ZDRyxJQUFJLENBQUNBLElBQUksQ0FBQ0ksNEJBQTRCLENBQUNULElBQUksQ0FBQ0gsUUFBUSxFQUFFSyxLQUFLLEdBQUcsSUFBSSxDQUFDO0VBQ25FRyxJQUFJLENBQUNBLElBQUksQ0FBQ0ksNEJBQTRCLENBQUMsTUFBTSxFQUFFUCxLQUFLLEdBQUdGLElBQUksQ0FBQ0osUUFBUSxDQUFDO0VBRXJFTyxVQUFVLENBQUNPLE9BQU8sQ0FBQ0wsSUFBSSxDQUFDO0VBQ3hCQSxJQUFJLENBQUNLLE9BQU8sQ0FBQ1gsR0FBRyxDQUFDWSxXQUFXLENBQUM7RUFDN0JSLFVBQVUsQ0FBQ0QsS0FBSyxDQUFDQSxLQUFLLENBQUM7RUFDdkJDLFVBQVUsQ0FBQ1MsSUFBSSxDQUFDVixLQUFLLEdBQUdGLElBQUksQ0FBQ0osUUFBUSxHQUFHLEtBQUssQ0FBQztBQUNoRCxDQUFDOztBQUVEO0FBQ0EsT0FBTyxJQUFNaUIsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBQSxFQUFlO0VBQ2xELElBQUk7SUFDRixJQUFNZCxHQUFHLEdBQUdULGVBQWUsQ0FBQyxDQUFDO0lBQzdCLElBQUksQ0FBQ1MsR0FBRyxFQUFFO0lBRVYsSUFBSUEsR0FBRyxDQUFDZSxLQUFLLEtBQUssV0FBVyxFQUFFO01BQzdCZixHQUFHLENBQUNnQixNQUFNLENBQUMsQ0FBQyxTQUFNLENBQUMsWUFBTTtRQUN2QjtNQUFBLENBQ0QsQ0FBQztJQUNKO0lBRUEsSUFBTWQsUUFBUSxHQUFHRixHQUFHLENBQUNpQixXQUFXO0lBQ2hDdkIsaUJBQWlCLENBQUN3QixPQUFPLENBQUMsVUFBQWpCLElBQUk7TUFBQSxPQUFJRixhQUFhLENBQUNDLEdBQUcsRUFBRUMsSUFBSSxFQUFFQyxRQUFRLENBQUM7SUFBQSxFQUFDO0VBQ3ZFLENBQUMsQ0FBQyxPQUFBaUIsT0FBQSxFQUFNO0lBQ047RUFBQTtBQUVKLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import i18n from '../../lang';
|
|
2
|
+
import { SECTIONS } from '../../constants/config';
|
|
3
|
+
import { formatChatListTitleMentions } from '../../utils/renderContextMentions';
|
|
4
|
+
import { ChatHistoryRole } from '../../types/Chat';
|
|
5
|
+
import { useChatsStore } from '../useChatsStore';
|
|
6
|
+
import { useSessionsStore } from './useSessionsStore';
|
|
7
|
+
import { activeView } from './activeView';
|
|
8
|
+
import { playSessionFinishedSound } from './sessionNotificationSound';
|
|
9
|
+
var initialized = false;
|
|
10
|
+
var resolveSessionNotificationTitle = function resolveSessionNotificationTitle(sessionId) {
|
|
11
|
+
var _chat$title, _meta$title, _userMessage$message;
|
|
12
|
+
var chat = useChatsStore.getState().chats.find(function (item) {
|
|
13
|
+
return item.sessionExternalId === sessionId;
|
|
14
|
+
});
|
|
15
|
+
if (chat !== null && chat !== void 0 && (_chat$title = chat.title) !== null && _chat$title !== void 0 && _chat$title.trim()) {
|
|
16
|
+
return formatChatListTitleMentions(chat.title);
|
|
17
|
+
}
|
|
18
|
+
var meta = useSessionsStore.getState().getMeta(sessionId);
|
|
19
|
+
if (meta !== null && meta !== void 0 && (_meta$title = meta.title) !== null && _meta$title !== void 0 && _meta$title.trim()) {
|
|
20
|
+
return meta.title.trim();
|
|
21
|
+
}
|
|
22
|
+
var messages = useSessionsStore.getState().getMessages(sessionId);
|
|
23
|
+
var userMessage = messages.find(function (msg) {
|
|
24
|
+
var _msg$user;
|
|
25
|
+
return msg.role === ChatHistoryRole.USER || ((_msg$user = msg.user) === null || _msg$user === void 0 ? void 0 : _msg$user.id) && msg.user.id !== 'assistant';
|
|
26
|
+
});
|
|
27
|
+
var raw = userMessage === null || userMessage === void 0 || (_userMessage$message = userMessage.message) === null || _userMessage$message === void 0 ? void 0 : _userMessage$message.trim();
|
|
28
|
+
if (raw) {
|
|
29
|
+
return raw.length > 60 ? "".concat(raw.slice(0, 60), "\u2026") : raw;
|
|
30
|
+
}
|
|
31
|
+
return i18n.t('conversations.emptyLabel', {
|
|
32
|
+
ns: SECTIONS.chatAI,
|
|
33
|
+
defaultValue: 'Conversation'
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
var buildNotificationMessage = function buildNotificationMessage(kind, title) {
|
|
37
|
+
var truncatedTitle = title.length > 48 ? "".concat(title.slice(0, 48), "\u2026") : title;
|
|
38
|
+
if (kind === 'approval_required') {
|
|
39
|
+
return i18n.t('conversations.sessionFinishedApproval', {
|
|
40
|
+
ns: SECTIONS.chatAI,
|
|
41
|
+
title: truncatedTitle,
|
|
42
|
+
defaultValue: '{{title}} requires your approval'
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (kind === 'error') {
|
|
46
|
+
return i18n.t('conversations.sessionFinishedError', {
|
|
47
|
+
ns: SECTIONS.chatAI,
|
|
48
|
+
title: truncatedTitle,
|
|
49
|
+
defaultValue: '{{title}} encountered an error'
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return i18n.t('conversations.sessionFinished', {
|
|
53
|
+
ns: SECTIONS.chatAI,
|
|
54
|
+
title: truncatedTitle,
|
|
55
|
+
defaultValue: '{{title}} finished responding'
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
var showBrowserNotificationIfAllowed = function showBrowserNotificationIfAllowed(message) {
|
|
59
|
+
if (typeof window === 'undefined' || !('Notification' in window)) return;
|
|
60
|
+
if (Notification.permission !== 'granted') return;
|
|
61
|
+
if (!document.hidden) return;
|
|
62
|
+
try {
|
|
63
|
+
// eslint-disable-next-line no-new
|
|
64
|
+
new Notification('MAIA', {
|
|
65
|
+
body: message,
|
|
66
|
+
tag: 'maia-session-finished'
|
|
67
|
+
});
|
|
68
|
+
} catch (_unused) {
|
|
69
|
+
// ignore
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
var handleSessionFinishedEvent = function handleSessionFinishedEvent(event) {
|
|
73
|
+
var _ref = event,
|
|
74
|
+
detail = _ref.detail;
|
|
75
|
+
if (!(detail !== null && detail !== void 0 && detail.sessionId)) return;
|
|
76
|
+
playSessionFinishedSound();
|
|
77
|
+
var message = buildNotificationMessage(detail.kind, resolveSessionNotificationTitle(detail.sessionId));
|
|
78
|
+
document.dispatchEvent(new CustomEvent('snackbar-event', {
|
|
79
|
+
detail: {
|
|
80
|
+
show: true,
|
|
81
|
+
severity: detail.kind === 'error' ? 'error' : 'info',
|
|
82
|
+
message: message,
|
|
83
|
+
autoHideDuration: 5000
|
|
84
|
+
}
|
|
85
|
+
}));
|
|
86
|
+
showBrowserNotificationIfAllowed(message);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/** Registra el listener global (idempotente). Sobrevive al desmontaje del chat visible. */
|
|
90
|
+
export var ensureSessionNotificationsInitialized = function ensureSessionNotificationsInitialized() {
|
|
91
|
+
if (initialized || typeof document === 'undefined') return;
|
|
92
|
+
initialized = true;
|
|
93
|
+
document.addEventListener('maia-session-finished', handleSessionFinishedEvent);
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Marca unread y emite evento solo si la sesión NO es la que el usuario está mirando.
|
|
98
|
+
* Toast + sonido los consume `ensureSessionNotificationsInitialized`.
|
|
99
|
+
*/
|
|
100
|
+
export var notifySessionFinishedInBackground = function notifySessionFinishedInBackground(sessionId, kind) {
|
|
101
|
+
ensureSessionNotificationsInitialized();
|
|
102
|
+
if (activeView.is(sessionId)) return;
|
|
103
|
+
document.dispatchEvent(new CustomEvent('maia-session-finished', {
|
|
104
|
+
detail: {
|
|
105
|
+
sessionId: sessionId,
|
|
106
|
+
kind: kind
|
|
107
|
+
}
|
|
108
|
+
}));
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpMThuIiwiU0VDVElPTlMiLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJDaGF0SGlzdG9yeVJvbGUiLCJ1c2VDaGF0c1N0b3JlIiwidXNlU2Vzc2lvbnNTdG9yZSIsImFjdGl2ZVZpZXciLCJwbGF5U2Vzc2lvbkZpbmlzaGVkU291bmQiLCJpbml0aWFsaXplZCIsInJlc29sdmVTZXNzaW9uTm90aWZpY2F0aW9uVGl0bGUiLCJzZXNzaW9uSWQiLCJfY2hhdCR0aXRsZSIsIl9tZXRhJHRpdGxlIiwiX3VzZXJNZXNzYWdlJG1lc3NhZ2UiLCJjaGF0IiwiZ2V0U3RhdGUiLCJjaGF0cyIsImZpbmQiLCJpdGVtIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJ0aXRsZSIsInRyaW0iLCJtZXRhIiwiZ2V0TWV0YSIsIm1lc3NhZ2VzIiwiZ2V0TWVzc2FnZXMiLCJ1c2VyTWVzc2FnZSIsIm1zZyIsIl9tc2ckdXNlciIsInJvbGUiLCJVU0VSIiwidXNlciIsImlkIiwicmF3IiwibWVzc2FnZSIsImxlbmd0aCIsImNvbmNhdCIsInNsaWNlIiwidCIsIm5zIiwiY2hhdEFJIiwiZGVmYXVsdFZhbHVlIiwiYnVpbGROb3RpZmljYXRpb25NZXNzYWdlIiwia2luZCIsInRydW5jYXRlZFRpdGxlIiwic2hvd0Jyb3dzZXJOb3RpZmljYXRpb25JZkFsbG93ZWQiLCJ3aW5kb3ciLCJOb3RpZmljYXRpb24iLCJwZXJtaXNzaW9uIiwiZG9jdW1lbnQiLCJoaWRkZW4iLCJib2R5IiwidGFnIiwiX3VudXNlZCIsImhhbmRsZVNlc3Npb25GaW5pc2hlZEV2ZW50IiwiZXZlbnQiLCJfcmVmIiwiZGV0YWlsIiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50Iiwic2hvdyIsInNldmVyaXR5IiwiYXV0b0hpZGVEdXJhdGlvbiIsImVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQiLCJhZGRFdmVudExpc3RlbmVyIiwibm90aWZ5U2Vzc2lvbkZpbmlzaGVkSW5CYWNrZ3JvdW5kIiwiaXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmUvc2Vzc2lvbnMvc2Vzc2lvbk5vdGlmaWNhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vbGFuZydcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucydcbmltcG9ydCB7IENoYXRIaXN0b3J5Um9sZSB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyB1c2VDaGF0c1N0b3JlIH0gZnJvbSAnLi4vdXNlQ2hhdHNTdG9yZSdcbmltcG9ydCB7IHVzZVNlc3Npb25zU3RvcmUgfSBmcm9tICcuL3VzZVNlc3Npb25zU3RvcmUnXG5pbXBvcnQgeyBhY3RpdmVWaWV3IH0gZnJvbSAnLi9hY3RpdmVWaWV3J1xuaW1wb3J0IHsgcGxheVNlc3Npb25GaW5pc2hlZFNvdW5kIH0gZnJvbSAnLi9zZXNzaW9uTm90aWZpY2F0aW9uU291bmQnXG5pbXBvcnQgdHlwZSB7IE1haWFTZXNzaW9uRmluaXNoZWREZXRhaWwsIFNlc3Npb25GaW5pc2hlZEtpbmQgfSBmcm9tICcuL3Nlc3Npb25Ob3RpZmljYXRpb25zLnR5cGVzJ1xuXG5sZXQgaW5pdGlhbGl6ZWQgPSBmYWxzZVxuXG5jb25zdCByZXNvbHZlU2Vzc2lvbk5vdGlmaWNhdGlvblRpdGxlID0gKHNlc3Npb25JZDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgY2hhdCA9IHVzZUNoYXRzU3RvcmUuZ2V0U3RhdGUoKS5jaGF0cy5maW5kKGl0ZW0gPT4gaXRlbS5zZXNzaW9uRXh0ZXJuYWxJZCA9PT0gc2Vzc2lvbklkKVxuICBpZiAoY2hhdD8udGl0bGU/LnRyaW0oKSkge1xuICAgIHJldHVybiBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMoY2hhdC50aXRsZSlcbiAgfVxuXG4gIGNvbnN0IG1ldGEgPSB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuZ2V0TWV0YShzZXNzaW9uSWQpXG4gIGlmIChtZXRhPy50aXRsZT8udHJpbSgpKSB7XG4gICAgcmV0dXJuIG1ldGEudGl0bGUudHJpbSgpXG4gIH1cblxuICBjb25zdCBtZXNzYWdlcyA9IHVzZVNlc3Npb25zU3RvcmUuZ2V0U3RhdGUoKS5nZXRNZXNzYWdlcyhzZXNzaW9uSWQpXG4gIGNvbnN0IHVzZXJNZXNzYWdlID0gbWVzc2FnZXMuZmluZChcbiAgICBtc2cgPT4gbXNnLnJvbGUgPT09IENoYXRIaXN0b3J5Um9sZS5VU0VSIHx8IChtc2cudXNlcj8uaWQgJiYgbXNnLnVzZXIuaWQgIT09ICdhc3Npc3RhbnQnKVxuICApXG4gIGNvbnN0IHJhdyA9IHVzZXJNZXNzYWdlPy5tZXNzYWdlPy50cmltKClcbiAgaWYgKHJhdykge1xuICAgIHJldHVybiByYXcubGVuZ3RoID4gNjAgPyBgJHtyYXcuc2xpY2UoMCwgNjApfeKApmAgOiByYXdcbiAgfVxuXG4gIHJldHVybiBpMThuLnQoJ2NvbnZlcnNhdGlvbnMuZW1wdHlMYWJlbCcsIHtcbiAgICBuczogU0VDVElPTlMuY2hhdEFJLFxuICAgIGRlZmF1bHRWYWx1ZTogJ0NvbnZlcnNhdGlvbicsXG4gIH0pXG59XG5cbmNvbnN0IGJ1aWxkTm90aWZpY2F0aW9uTWVzc2FnZSA9IChraW5kOiBTZXNzaW9uRmluaXNoZWRLaW5kLCB0aXRsZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdHJ1bmNhdGVkVGl0bGUgPSB0aXRsZS5sZW5ndGggPiA0OCA/IGAke3RpdGxlLnNsaWNlKDAsIDQ4KX3igKZgIDogdGl0bGVcblxuICBpZiAoa2luZCA9PT0gJ2FwcHJvdmFsX3JlcXVpcmVkJykge1xuICAgIHJldHVybiBpMThuLnQoJ2NvbnZlcnNhdGlvbnMuc2Vzc2lvbkZpbmlzaGVkQXBwcm92YWwnLCB7XG4gICAgICBuczogU0VDVElPTlMuY2hhdEFJLFxuICAgICAgdGl0bGU6IHRydW5jYXRlZFRpdGxlLFxuICAgICAgZGVmYXVsdFZhbHVlOiAne3t0aXRsZX19IHJlcXVpcmVzIHlvdXIgYXBwcm92YWwnLFxuICAgIH0pXG4gIH1cblxuICBpZiAoa2luZCA9PT0gJ2Vycm9yJykge1xuICAgIHJldHVybiBpMThuLnQoJ2NvbnZlcnNhdGlvbnMuc2Vzc2lvbkZpbmlzaGVkRXJyb3InLCB7XG4gICAgICBuczogU0VDVElPTlMuY2hhdEFJLFxuICAgICAgdGl0bGU6IHRydW5jYXRlZFRpdGxlLFxuICAgICAgZGVmYXVsdFZhbHVlOiAne3t0aXRsZX19IGVuY291bnRlcmVkIGFuIGVycm9yJyxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIGkxOG4udCgnY29udmVyc2F0aW9ucy5zZXNzaW9uRmluaXNoZWQnLCB7XG4gICAgbnM6IFNFQ1RJT05TLmNoYXRBSSxcbiAgICB0aXRsZTogdHJ1bmNhdGVkVGl0bGUsXG4gICAgZGVmYXVsdFZhbHVlOiAne3t0aXRsZX19IGZpbmlzaGVkIHJlc3BvbmRpbmcnLFxuICB9KVxufVxuXG5jb25zdCBzaG93QnJvd3Nlck5vdGlmaWNhdGlvbklmQWxsb3dlZCA9IChtZXNzYWdlOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICEoJ05vdGlmaWNhdGlvbicgaW4gd2luZG93KSkgcmV0dXJuXG4gIGlmIChOb3RpZmljYXRpb24ucGVybWlzc2lvbiAhPT0gJ2dyYW50ZWQnKSByZXR1cm5cbiAgaWYgKCFkb2N1bWVudC5oaWRkZW4pIHJldHVyblxuXG4gIHRyeSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ld1xuICAgIG5ldyBOb3RpZmljYXRpb24oJ01BSUEnLCB7IGJvZHk6IG1lc3NhZ2UsIHRhZzogJ21haWEtc2Vzc2lvbi1maW5pc2hlZCcgfSlcbiAgfSBjYXRjaCB7XG4gICAgLy8gaWdub3JlXG4gIH1cbn1cblxuY29uc3QgaGFuZGxlU2Vzc2lvbkZpbmlzaGVkRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgZGV0YWlsIH0gPSBldmVudCBhcyBDdXN0b21FdmVudDxNYWlhU2Vzc2lvbkZpbmlzaGVkRGV0YWlsPlxuICBpZiAoIWRldGFpbD8uc2Vzc2lvbklkKSByZXR1cm5cblxuICBwbGF5U2Vzc2lvbkZpbmlzaGVkU291bmQoKVxuXG4gIGNvbnN0IG1lc3NhZ2UgPSBidWlsZE5vdGlmaWNhdGlvbk1lc3NhZ2UoZGV0YWlsLmtpbmQsIHJlc29sdmVTZXNzaW9uTm90aWZpY2F0aW9uVGl0bGUoZGV0YWlsLnNlc3Npb25JZCkpXG5cbiAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICBuZXcgQ3VzdG9tRXZlbnQoJ3NuYWNrYmFyLWV2ZW50Jywge1xuICAgICAgZGV0YWlsOiB7XG4gICAgICAgIHNob3c6IHRydWUsXG4gICAgICAgIHNldmVyaXR5OiBkZXRhaWwua2luZCA9PT0gJ2Vycm9yJyA/ICdlcnJvcicgOiAnaW5mbycsXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIGF1dG9IaWRlRHVyYXRpb246IDUwMDAsXG4gICAgICB9LFxuICAgIH0pXG4gIClcblxuICBzaG93QnJvd3Nlck5vdGlmaWNhdGlvbklmQWxsb3dlZChtZXNzYWdlKVxufVxuXG4vKiogUmVnaXN0cmEgZWwgbGlzdGVuZXIgZ2xvYmFsIChpZGVtcG90ZW50ZSkuIFNvYnJldml2ZSBhbCBkZXNtb250YWplIGRlbCBjaGF0IHZpc2libGUuICovXG5leHBvcnQgY29uc3QgZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCA9ICgpOiB2b2lkID0+IHtcbiAgaWYgKGluaXRpYWxpemVkIHx8IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVyblxuICBpbml0aWFsaXplZCA9IHRydWVcbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1zZXNzaW9uLWZpbmlzaGVkJywgaGFuZGxlU2Vzc2lvbkZpbmlzaGVkRXZlbnQpXG59XG5cbi8qKlxuICogTWFyY2EgdW5yZWFkIHkgZW1pdGUgZXZlbnRvIHNvbG8gc2kgbGEgc2VzacOzbiBOTyBlcyBsYSBxdWUgZWwgdXN1YXJpbyBlc3TDoSBtaXJhbmRvLlxuICogVG9hc3QgKyBzb25pZG8gbG9zIGNvbnN1bWUgYGVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWRgLlxuICovXG5leHBvcnQgY29uc3Qgbm90aWZ5U2Vzc2lvbkZpbmlzaGVkSW5CYWNrZ3JvdW5kID0gKHNlc3Npb25JZDogc3RyaW5nLCBraW5kOiBTZXNzaW9uRmluaXNoZWRLaW5kKTogdm9pZCA9PiB7XG4gIGVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQoKVxuXG4gIGlmIChhY3RpdmVWaWV3LmlzKHNlc3Npb25JZCkpIHJldHVyblxuXG4gIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgbmV3IEN1c3RvbUV2ZW50KCdtYWlhLXNlc3Npb24tZmluaXNoZWQnLCB7XG4gICAgICBkZXRhaWw6IHsgc2Vzc2lvbklkLCBraW5kIH0gc2F0aXNmaWVzIE1haWFTZXNzaW9uRmluaXNoZWREZXRhaWwsXG4gICAgfSlcbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxJQUFJLE1BQU0sWUFBWTtBQUM3QixTQUFTQyxRQUFRLFFBQVEsd0JBQXdCO0FBQ2pELFNBQVNDLDJCQUEyQixRQUFRLG1DQUFtQztBQUMvRSxTQUFTQyxlQUFlLFFBQVEsa0JBQWtCO0FBQ2xELFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFDaEQsU0FBU0MsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBQ3JELFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLHdCQUF3QixRQUFRLDRCQUE0QjtBQUdyRSxJQUFJQyxXQUFXLEdBQUcsS0FBSztBQUV2QixJQUFNQywrQkFBK0IsR0FBRyxTQUFsQ0EsK0JBQStCQSxDQUFJQyxTQUFpQixFQUFhO0VBQUEsSUFBQUMs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
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25Ob3RpZmljYXRpb25zLnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNlc3Npb25GaW5pc2hlZEtpbmQgPSAnY29tcGxldGUnIHwgJ2FwcHJvdmFsX3JlcXVpcmVkJyB8ICdlcnJvcidcblxuZXhwb3J0IHR5cGUgTWFpYVNlc3Npb25GaW5pc2hlZERldGFpbCA9IHtcbiAgc2Vzc2lvbklkOiBzdHJpbmdcbiAga2luZDogU2Vzc2lvbkZpbmlzaGVkS2luZFxufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|