@projectcor/maia-components 2.11.103-4 → 2.11.103-5

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.
Files changed (72) hide show
  1. package/lib/App.js +44 -19
  2. package/lib/components/atoms/MAIAInput/MAIAInput.js +1 -6
  3. package/lib/components/atoms/icons/index.js +1 -2
  4. package/lib/components/index.js +2 -1
  5. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +91 -4
  6. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +7 -46
  7. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +69 -308
  8. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +18 -28
  9. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +2 -9
  10. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +61 -69
  11. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +1 -5
  12. package/lib/components/molecules/ChatFooter/ChatFooter.js +2 -4
  13. package/lib/components/molecules/Sidebar/Sidebar.js +61 -104
  14. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +1 -16
  15. package/lib/components/molecules/Sidebar/Sidebar.styles.js +29 -30
  16. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +35 -6
  17. package/lib/components/organisms/ChatAI/ChatAI.js +40 -131
  18. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +543 -0
  19. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
  20. package/lib/components/organisms/ChatAIPage/index.js +3 -0
  21. package/lib/context/global-context.js +1 -3
  22. package/lib/dev/DevMaiaPage.js +30 -0
  23. package/lib/hooks/useAgentModel/useCreateAgent.js +61 -14
  24. package/lib/hooks/useAgentModel/useUpdateAgent.js +58 -11
  25. package/lib/hooks/useChatManager/useChatManager.js +438 -530
  26. package/lib/hooks/useChatMessages/useChatMessages.js +236 -427
  27. package/lib/hooks/useChats/useChats.js +4 -21
  28. package/lib/hooks/useEvent.js +2 -1
  29. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  30. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +521 -139
  31. package/lib/hooks/useStreamingMessage/index.js +3 -2
  32. package/lib/hooks/useStreamingMessage/streamingStore.js +69 -0
  33. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +17 -13
  34. package/lib/index.js +5 -2
  35. package/lib/lang/br/index.js +9 -11
  36. package/lib/lang/en/index.js +9 -11
  37. package/lib/lang/es/index.js +9 -11
  38. package/lib/lang/fr/index.js +10 -13
  39. package/lib/services/maia/Agents/connectors.js +250 -0
  40. package/lib/services/maia/Chats/getChatsByUserId.js +4 -6
  41. package/lib/services/maia/Chats/index.js +1 -3
  42. package/lib/store/chatsStore.types.js +1 -1
  43. package/lib/store/useChatsStore.js +12 -149
  44. package/lib/types/Chat.js +1 -1
  45. package/lib/types/agentModal.js +1 -1
  46. package/lib/utils/normalizeAgentConnectors.js +28 -3
  47. package/package.json +3 -3
  48. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +0 -20
  49. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +0 -20
  50. package/lib/components/atoms/SessionGeneratingDot/index.js +0 -2
  51. package/lib/components/atoms/icons/MaiaSparkleIcon.js +0 -75
  52. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +0 -66
  53. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +0 -55
  54. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +0 -2
  55. package/lib/hooks/useMinimizedPillBottomOffset.js +0 -97
  56. package/lib/services/maia/Chats/markSessionAsRead.js +0 -32
  57. package/lib/store/chatsSidebarOptimistic.js +0 -92
  58. package/lib/store/maiaMinimizedPersistence.js +0 -49
  59. package/lib/store/sessions/activeView.js +0 -22
  60. package/lib/store/sessions/index.js +0 -9
  61. package/lib/store/sessions/sessionHitlContext.js +0 -15
  62. package/lib/store/sessions/sessionNotificationSound.js +0 -57
  63. package/lib/store/sessions/sessionNotifications.js +0 -110
  64. package/lib/store/sessions/sessionNotifications.types.js +0 -2
  65. package/lib/store/sessions/sessionStreamManager.js +0 -576
  66. package/lib/store/sessions/sessionStreamingText.js +0 -80
  67. package/lib/store/sessions/sessions.types.js +0 -35
  68. package/lib/store/sessions/useSessionMeta.js +0 -39
  69. package/lib/store/sessions/useSessionStreamingText.js +0 -18
  70. package/lib/store/sessions/useSessionsStore.js +0 -197
  71. package/lib/utils/formatUnreadCount.js +0 -6
  72. package/lib/utils/maiaHostOpen.js +0 -54
@@ -1,22 +0,0 @@
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=
@@ -1,9 +0,0 @@
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==
@@ -1,15 +0,0 @@
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
@@ -1,57 +0,0 @@
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=
@@ -1,110 +0,0 @@
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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
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25Ob3RpZmljYXRpb25zLnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNlc3Npb25GaW5pc2hlZEtpbmQgPSAnY29tcGxldGUnIHwgJ2FwcHJvdmFsX3JlcXVpcmVkJyB8ICdlcnJvcidcblxuZXhwb3J0IHR5cGUgTWFpYVNlc3Npb25GaW5pc2hlZERldGFpbCA9IHtcbiAgc2Vzc2lvbklkOiBzdHJpbmdcbiAga2luZDogU2Vzc2lvbkZpbmlzaGVkS2luZFxufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119