@projectcor/maia-components 2.11.93-0 → 2.11.94-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.
Files changed (146) hide show
  1. package/CHANGELOG.md +0 -62
  2. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +2 -2
  3. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +41 -28
  4. package/lib/components/atoms/Chip/Chip.js +5 -12
  5. package/lib/components/atoms/Chip/styles.js +6 -6
  6. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +3 -7
  7. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +28 -160
  8. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +2 -6
  9. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
  10. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
  11. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +4 -23
  12. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +7 -15
  13. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +4 -10
  14. package/lib/components/atoms/MAIAInput/MAIAInput.js +261 -363
  15. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +8 -5
  16. package/lib/components/atoms/MAIAInput/styles.js +83 -99
  17. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +17 -0
  18. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +15 -0
  19. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  20. package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
  21. package/lib/components/atoms/icons/index.js +2 -12
  22. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +1 -4
  23. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +1 -14
  24. package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +3 -3
  25. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +30 -127
  26. package/lib/components/molecules/ChatAIHome/styles.js +52 -161
  27. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +83 -22
  28. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +2 -6
  29. package/lib/components/molecules/ChatAIMessages/newStyles.js +27 -11
  30. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +213 -122
  31. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +28 -18
  32. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +13 -3
  33. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +23 -6
  34. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -1
  35. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +55 -0
  36. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +46 -0
  37. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
  38. package/lib/components/molecules/ChatAIModal/constants.js +2 -6
  39. package/lib/components/molecules/ChatAIModal/layout.js +2 -2
  40. package/lib/components/molecules/ChatFooter/ChatFooter.js +68 -40
  41. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
  42. package/lib/components/molecules/Sidebar/Sidebar.js +111 -91
  43. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +16 -1
  44. package/lib/components/molecules/Sidebar/Sidebar.styles.js +34 -29
  45. package/lib/components/organisms/ChatAI/ChatAI.js +10 -17
  46. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +1 -8
  47. package/lib/constants/config.js +1 -4
  48. package/lib/constants/maiaTaskPanelAccess.js +4 -4
  49. package/lib/constants/permissions/index.js +2 -2
  50. package/lib/constants/permissions/utils.js +1 -4
  51. package/lib/context/cor-user.js +1 -9
  52. package/lib/context/global-context.js +1 -1
  53. package/lib/dev/DevChatAI.js +2 -2
  54. package/lib/hooks/useChatManager/useChatManager.js +560 -456
  55. package/lib/hooks/useChatMessages/useChatMessages.js +414 -236
  56. package/lib/hooks/useChats/useChats.js +21 -4
  57. package/lib/hooks/useContextMentions.js +9 -47
  58. package/lib/hooks/useContextPinPopover.js +8 -1
  59. package/lib/hooks/useEntitySearch.js +91 -277
  60. package/lib/hooks/useEvent.js +1 -2
  61. package/lib/hooks/useFrequentlyUsedActions.js +2 -4
  62. package/lib/hooks/useMentionAllowedTypes.js +8 -26
  63. package/lib/hooks/useMentionPopover.js +13 -42
  64. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  65. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +139 -521
  66. package/lib/hooks/useProjectSummaryConfig.js +30 -23
  67. package/lib/hooks/useSlashCommands.js +2 -3
  68. package/lib/hooks/useStreamingMessage/index.js +2 -3
  69. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +13 -17
  70. package/lib/lang/br/index.js +17 -78
  71. package/lib/lang/en/index.js +17 -78
  72. package/lib/lang/es/index.js +17 -78
  73. package/lib/lang/fr/index.js +18 -77
  74. package/lib/services/appcues.js +2 -3
  75. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
  76. package/lib/services/maia/Agents/getAgents.js +2 -2
  77. package/lib/services/maia/Chats/getChatsByUserId.js +6 -4
  78. package/lib/services/maia/Chats/index.js +3 -1
  79. package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
  80. package/lib/services/maia/Orchestrator/orchestrator.js +7 -1
  81. package/lib/store/chatsSidebarOptimistic.js +92 -0
  82. package/lib/store/chatsStore.types.js +1 -1
  83. package/lib/store/maiaMinimizedPersistence.js +49 -0
  84. package/lib/store/sessions/activeView.js +22 -0
  85. package/lib/store/sessions/index.js +9 -0
  86. package/lib/store/sessions/sessionHitlContext.js +15 -0
  87. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  88. package/lib/store/sessions/sessionNotifications.js +110 -0
  89. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  90. package/lib/store/sessions/sessionStreamManager.js +576 -0
  91. package/lib/store/sessions/sessionStreamingText.js +80 -0
  92. package/lib/store/sessions/sessions.types.js +35 -0
  93. package/lib/store/sessions/useSessionMeta.js +39 -0
  94. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  95. package/lib/store/sessions/useSessionsStore.js +197 -0
  96. package/lib/store/useChatsStore.js +149 -12
  97. package/lib/styles/config.js +2 -2
  98. package/lib/types/Action.js +1 -1
  99. package/lib/types/Chat.js +1 -1
  100. package/lib/types/agent.js +1 -1
  101. package/lib/types/contextMention.js +1 -1
  102. package/lib/types/global.d.js +1 -1
  103. package/lib/utils/actionCategoryMap.js +2 -6
  104. package/lib/utils/actionIconMap.js +2 -8
  105. package/lib/utils/contextMentionIcons.js +1 -29
  106. package/lib/utils/contextMentionTriggers.js +1 -3
  107. package/lib/utils/formatUnreadCount.js +6 -0
  108. package/lib/utils/renderContextMentions.js +4 -9
  109. package/lib/utils/streamActivityMessages.js +1 -2
  110. package/package.json +10 -15
  111. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +0 -128
  112. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +0 -23
  113. package/lib/components/atoms/icons/ActionCalendarIcon.js +0 -112
  114. package/lib/components/atoms/icons/ActionChatIcon.js +0 -71
  115. package/lib/components/atoms/icons/ActionTimeBackIcon.js +0 -112
  116. package/lib/components/atoms/icons/MaiaInputAddIcon.js +0 -42
  117. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +0 -29
  118. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +0 -33
  119. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +0 -35
  120. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +0 -44
  121. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +0 -29
  122. package/lib/components/atoms/icons/MaiaInputSendIcon.js +0 -29
  123. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +0 -29
  124. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +0 -35
  125. package/lib/components/atoms/icons/SkillIcon.js +0 -30
  126. package/lib/components/atoms/icons/SkillsNavIcon.js +0 -27
  127. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +0 -357
  128. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +0 -145
  129. package/lib/components/molecules/ChatAIMySkills/index.js +0 -2
  130. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +0 -160
  131. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +0 -34
  132. package/lib/components/organisms/AbmSkillGenerateModal/index.js +0 -2
  133. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +0 -446
  134. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +0 -98
  135. package/lib/components/organisms/AbmSkillModal/index.js +0 -2
  136. package/lib/constants/maiaHourAgentAccess.js +0 -15
  137. package/lib/constants/plannerSyncEvents.js +0 -15
  138. package/lib/hooks/useStreamingMessage/streamingStore.js +0 -69
  139. package/lib/services/maia/Skills/createSkill.js +0 -39
  140. package/lib/services/maia/Skills/deleteSkill.js +0 -38
  141. package/lib/services/maia/Skills/generateSkill.js +0 -41
  142. package/lib/services/maia/Skills/getSkills.js +0 -90
  143. package/lib/services/maia/Skills/updateSkill.js +0 -39
  144. package/lib/types/skill.js +0 -2
  145. package/lib/utils/hoursPlannerQuickActionType.js +0 -65
  146. package/lib/utils/orchestratorSubagents.js +0 -11
@@ -0,0 +1,92 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { useChatsStore } from './useChatsStore';
5
+ var SIDEBAR_TITLE_MAX_LENGTH = 120;
6
+ export var buildSidebarSessionTitle = function buildSidebarSessionTitle(message) {
7
+ var trimmed = message === null || message === void 0 ? void 0 : message.trim();
8
+ if (!trimmed) return null;
9
+ if (trimmed.length <= SIDEBAR_TITLE_MAX_LENGTH) return trimmed;
10
+ return "".concat(trimmed.slice(0, SIDEBAR_TITLE_MAX_LENGTH), "\u2026");
11
+ };
12
+ /** Agrega la sesión al sidebar si aún no está en la lista. */
13
+ export var ensureSessionInSidebar = function ensureSessionInSidebar(_ref) {
14
+ var _ref2, _agent$name, _agent$emoji;
15
+ var sessionId = _ref.sessionId,
16
+ _ref$title = _ref.title,
17
+ title = _ref$title === void 0 ? null : _ref$title,
18
+ agent = _ref.agent,
19
+ agentId = _ref.agentId,
20
+ project = _ref.project,
21
+ client = _ref.client,
22
+ attachments = _ref.attachments;
23
+ var _useChatsStore$getSta = useChatsStore.getState(),
24
+ chats = _useChatsStore$getSta.chats,
25
+ prependChat = _useChatsStore$getSta.prependChat;
26
+ if (chats.some(function (chat) {
27
+ return chat.sessionExternalId === sessionId;
28
+ })) {
29
+ document.dispatchEvent(new CustomEvent('sidebar-select-session', {
30
+ detail: {
31
+ sessionId: sessionId
32
+ }
33
+ }));
34
+ return;
35
+ }
36
+ var resolvedAgentId = Number((_ref2 = agentId !== null && agentId !== void 0 ? agentId : agent === null || agent === void 0 ? void 0 : agent.id) !== null && _ref2 !== void 0 ? _ref2 : 0);
37
+ var chatItem = _objectSpread(_objectSpread(_objectSpread({
38
+ id: sessionId,
39
+ sessionExternalId: sessionId,
40
+ title: title,
41
+ date: new Date(),
42
+ agent: (_agent$name = agent === null || agent === void 0 ? void 0 : agent.name) !== null && _agent$name !== void 0 ? _agent$name : '',
43
+ agentId: Number.isFinite(resolvedAgentId) ? resolvedAgentId : 0,
44
+ agentType: agent === null || agent === void 0 ? void 0 : agent.type,
45
+ emoji: (_agent$emoji = agent === null || agent === void 0 ? void 0 : agent.emoji) !== null && _agent$emoji !== void 0 ? _agent$emoji : null
46
+ }, attachments !== null && attachments !== void 0 && attachments.length ? {
47
+ attachments: attachments
48
+ } : {}), (project === null || project === void 0 ? void 0 : project.id) != null ? {
49
+ projectId: project.id,
50
+ projectName: project.name
51
+ } : {}), (client === null || client === void 0 ? void 0 : client.id) != null ? {
52
+ clientId: Number(client.id),
53
+ clientName: client.name
54
+ } : {});
55
+ prependChat(chatItem);
56
+ document.dispatchEvent(new CustomEvent('sidebar-select-session', {
57
+ detail: {
58
+ sessionId: sessionId
59
+ }
60
+ }));
61
+ };
62
+
63
+ /** Agrega la sesión al sidebar a partir del request del orchestrator (p. ej. al primer token SSE). */
64
+ export var ensureSessionInSidebarFromRequest = function ensureSessionInSidebarFromRequest(sessionId, request, agentEmoji) {
65
+ var _request$projectName, _request$clientName;
66
+ var agent = null;
67
+ if (request.agentName) {
68
+ var _request$agentId;
69
+ agent = {
70
+ id: String((_request$agentId = request.agentId) !== null && _request$agentId !== void 0 ? _request$agentId : ''),
71
+ name: request.agentName,
72
+ type: request.agentType,
73
+ emoji: agentEmoji || '✨'
74
+ };
75
+ }
76
+ ensureSessionInSidebar({
77
+ sessionId: sessionId,
78
+ title: buildSidebarSessionTitle(request.input),
79
+ agent: agent,
80
+ agentId: request.agentId,
81
+ project: request.projectId != null ? {
82
+ id: request.projectId,
83
+ name: (_request$projectName = request.projectName) !== null && _request$projectName !== void 0 ? _request$projectName : ''
84
+ } : null,
85
+ client: request.clientId != null ? {
86
+ id: request.clientId,
87
+ name: (_request$clientName = request.clientName) !== null && _request$clientName !== void 0 ? _request$clientName : ''
88
+ } : null,
89
+ attachments: request.attachments
90
+ });
91
+ };
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDaGF0c1N0b3JlIiwiU0lERUJBUl9USVRMRV9NQVhfTEVOR1RIIiwiYnVpbGRTaWRlYmFyU2Vzc2lvblRpdGxlIiwibWVzc2FnZSIsInRyaW1tZWQiLCJ0cmltIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJlbnN1cmVTZXNzaW9uSW5TaWRlYmFyIiwiX3JlZiIsIl9yZWYyIiwiX2FnZW50JG5hbWUiLCJfYWdlbnQkZW1vamkiLCJzZXNzaW9uSWQiLCJfcmVmJHRpdGxlIiwidGl0bGUiLCJhZ2VudCIsImFnZW50SWQiLCJwcm9qZWN0IiwiY2xpZW50IiwiYXR0YWNobWVudHMiLCJfdXNlQ2hhdHNTdG9yZSRnZXRTdGEiLCJnZXRTdGF0ZSIsImNoYXRzIiwicHJlcGVuZENoYXQiLCJzb21lIiwiY2hhdCIsInNlc3Npb25FeHRlcm5hbElkIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJyZXNvbHZlZEFnZW50SWQiLCJOdW1iZXIiLCJpZCIsImNoYXRJdGVtIiwiX29iamVjdFNwcmVhZCIsImRhdGUiLCJEYXRlIiwibmFtZSIsImlzRmluaXRlIiwiYWdlbnRUeXBlIiwidHlwZSIsImVtb2ppIiwicHJvamVjdElkIiwicHJvamVjdE5hbWUiLCJjbGllbnRJZCIsImNsaWVudE5hbWUiLCJlbnN1cmVTZXNzaW9uSW5TaWRlYmFyRnJvbVJlcXVlc3QiLCJyZXF1ZXN0IiwiYWdlbnRFbW9qaSIsIl9yZXF1ZXN0JHByb2plY3ROYW1lIiwiX3JlcXVlc3QkY2xpZW50TmFtZSIsImFnZW50TmFtZSIsIl9yZXF1ZXN0JGFnZW50SWQiLCJTdHJpbmciLCJpbnB1dCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9jaGF0c1NpZGViYXJPcHRpbWlzdGljLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgdHlwZSB7IEFnZW50LCBBZ2VudFR5cGUgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcbmltcG9ydCB0eXBlIHsgQ2xpZW50IH0gZnJvbSAnLi4vdHlwZXMvQ2xpZW50J1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSAnLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IHVzZUNoYXRzU3RvcmUgfSBmcm9tICcuL3VzZUNoYXRzU3RvcmUnXG5pbXBvcnQgdHlwZSB7IENoYXRMaXN0SXRlbSB9IGZyb20gJy4vY2hhdHNTdG9yZS50eXBlcydcblxudHlwZSBPcmNoZXN0cmF0b3JTaWRlYmFyUmVxdWVzdCA9IHtcbiAgaW5wdXQ/OiBzdHJpbmdcbiAgYWdlbnRJZD86IG51bWJlciB8IHN0cmluZ1xuICBhZ2VudE5hbWU/OiBzdHJpbmdcbiAgYWdlbnRUeXBlPzogQWdlbnRUeXBlXG4gIHByb2plY3RJZD86IG51bWJlclxuICBwcm9qZWN0TmFtZT86IHN0cmluZ1xuICBjbGllbnRJZD86IG51bWJlclxuICBjbGllbnROYW1lPzogc3RyaW5nXG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxufVxuXG5jb25zdCBTSURFQkFSX1RJVExFX01BWF9MRU5HVEggPSAxMjBcblxuZXhwb3J0IGNvbnN0IGJ1aWxkU2lkZWJhclNlc3Npb25UaXRsZSA9IChtZXNzYWdlPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwgPT4ge1xuICBjb25zdCB0cmltbWVkID0gbWVzc2FnZT8udHJpbSgpXG4gIGlmICghdHJpbW1lZCkgcmV0dXJuIG51bGxcbiAgaWYgKHRyaW1tZWQubGVuZ3RoIDw9IFNJREVCQVJfVElUTEVfTUFYX0xFTkdUSCkgcmV0dXJuIHRyaW1tZWRcbiAgcmV0dXJuIGAke3RyaW1tZWQuc2xpY2UoMCwgU0lERUJBUl9USVRMRV9NQVhfTEVOR1RIKX3igKZgXG59XG5cbnR5cGUgRW5zdXJlU2Vzc2lvbkluU2lkZWJhclBhcmFtcyA9IHtcbiAgc2Vzc2lvbklkOiBzdHJpbmdcbiAgdGl0bGU/OiBzdHJpbmcgfCBudWxsXG4gIGFnZW50PzogQWdlbnQgfCBudWxsXG4gIGFnZW50SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHByb2plY3Q/OiBQcm9qZWN0IHwgbnVsbFxuICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxufVxuXG4vKiogQWdyZWdhIGxhIHNlc2nDs24gYWwgc2lkZWJhciBzaSBhw7puIG5vIGVzdMOhIGVuIGxhIGxpc3RhLiAqL1xuZXhwb3J0IGNvbnN0IGVuc3VyZVNlc3Npb25JblNpZGViYXIgPSAoe1xuICBzZXNzaW9uSWQsXG4gIHRpdGxlID0gbnVsbCxcbiAgYWdlbnQsXG4gIGFnZW50SWQsXG4gIHByb2plY3QsXG4gIGNsaWVudCxcbiAgYXR0YWNobWVudHMsXG59OiBFbnN1cmVTZXNzaW9uSW5TaWRlYmFyUGFyYW1zKTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgY2hhdHMsIHByZXBlbmRDaGF0IH0gPSB1c2VDaGF0c1N0b3JlLmdldFN0YXRlKClcbiAgaWYgKGNoYXRzLnNvbWUoY2hhdCA9PiBjaGF0LnNlc3Npb25FeHRlcm5hbElkID09PSBzZXNzaW9uSWQpKSB7XG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3NpZGViYXItc2VsZWN0LXNlc3Npb24nLCB7IGRldGFpbDogeyBzZXNzaW9uSWQgfSB9KSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHJlc29sdmVkQWdlbnRJZCA9IE51bWJlcihhZ2VudElkID8/IGFnZW50Py5pZCA/PyAwKVxuICBjb25zdCBjaGF0SXRlbTogQ2hhdExpc3RJdGVtID0ge1xuICAgIGlkOiBzZXNzaW9uSWQsXG4gICAgc2Vzc2lvbkV4dGVybmFsSWQ6IHNlc3Npb25JZCxcbiAgICB0aXRsZSxcbiAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgIGFnZW50OiBhZ2VudD8ubmFtZSA/PyAnJyxcbiAgICBhZ2VudElkOiBOdW1iZXIuaXNGaW5pdGUocmVzb2x2ZWRBZ2VudElkKSA/IHJlc29sdmVkQWdlbnRJZCA6IDAsXG4gICAgYWdlbnRUeXBlOiBhZ2VudD8udHlwZSxcbiAgICBlbW9qaTogYWdlbnQ/LmVtb2ppID8/IG51bGwsXG4gICAgLi4uKGF0dGFjaG1lbnRzPy5sZW5ndGggPyB7IGF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgLi4uKHByb2plY3Q/LmlkICE9IG51bGwgPyB7IHByb2plY3RJZDogcHJvamVjdC5pZCwgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSB9IDoge30pLFxuICAgIC4uLihjbGllbnQ/LmlkICE9IG51bGwgPyB7IGNsaWVudElkOiBOdW1iZXIoY2xpZW50LmlkKSwgY2xpZW50TmFtZTogY2xpZW50Lm5hbWUgfSA6IHt9KSxcbiAgfVxuXG4gIHByZXBlbmRDaGF0KGNoYXRJdGVtKVxuICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnc2lkZWJhci1zZWxlY3Qtc2Vzc2lvbicsIHsgZGV0YWlsOiB7IHNlc3Npb25JZCB9IH0pKVxufVxuXG4vKiogQWdyZWdhIGxhIHNlc2nDs24gYWwgc2lkZWJhciBhIHBhcnRpciBkZWwgcmVxdWVzdCBkZWwgb3JjaGVzdHJhdG9yIChwLiBlai4gYWwgcHJpbWVyIHRva2VuIFNTRSkuICovXG5leHBvcnQgY29uc3QgZW5zdXJlU2Vzc2lvbkluU2lkZWJhckZyb21SZXF1ZXN0ID0gKFxuICBzZXNzaW9uSWQ6IHN0cmluZyxcbiAgcmVxdWVzdDogT3JjaGVzdHJhdG9yU2lkZWJhclJlcXVlc3QsXG4gIGFnZW50RW1vamk/OiBzdHJpbmcgfCBudWxsXG4pOiB2b2lkID0+IHtcbiAgbGV0IGFnZW50OiBBZ2VudCB8IG51bGwgPSBudWxsXG4gIGlmIChyZXF1ZXN0LmFnZW50TmFtZSkge1xuICAgIGFnZW50ID0ge1xuICAgICAgaWQ6IFN0cmluZyhyZXF1ZXN0LmFnZW50SWQgPz8gJycpLFxuICAgICAgbmFtZTogcmVxdWVzdC5hZ2VudE5hbWUsXG4gICAgICB0eXBlOiByZXF1ZXN0LmFnZW50VHlwZSxcbiAgICAgIGVtb2ppOiBhZ2VudEVtb2ppIHx8ICfinKgnLFxuICAgIH0gYXMgQWdlbnRcbiAgfVxuXG4gIGVuc3VyZVNlc3Npb25JblNpZGViYXIoe1xuICAgIHNlc3Npb25JZCxcbiAgICB0aXRsZTogYnVpbGRTaWRlYmFyU2Vzc2lvblRpdGxlKHJlcXVlc3QuaW5wdXQpLFxuICAgIGFnZW50LFxuICAgIGFnZW50SWQ6IHJlcXVlc3QuYWdlbnRJZCxcbiAgICBwcm9qZWN0OlxuICAgICAgcmVxdWVzdC5wcm9qZWN0SWQgIT0gbnVsbCA/ICh7IGlkOiByZXF1ZXN0LnByb2plY3RJZCwgbmFtZTogcmVxdWVzdC5wcm9qZWN0TmFtZSA/PyAnJyB9IHNhdGlzZmllcyBQcm9qZWN0KSA6IG51bGwsXG4gICAgY2xpZW50OlxuICAgICAgcmVxdWVzdC5jbGllbnRJZCAhPSBudWxsID8gKHsgaWQ6IHJlcXVlc3QuY2xpZW50SWQsIG5hbWU6IHJlcXVlc3QuY2xpZW50TmFtZSA/PyAnJyB9IHNhdGlzZmllcyBDbGllbnQpIDogbnVsbCxcbiAgICBhdHRhY2htZW50czogcmVxdWVzdC5hdHRhY2htZW50cyxcbiAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsU0FBU0EsYUFBYSxRQUFRLGlCQUFpQjtBQWUvQyxJQUFNQyx3QkFBd0IsR0FBRyxHQUFHO0FBRXBDLE9BQU8sSUFBTUMsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBSUMsT0FBdUIsRUFBb0I7RUFDbEYsSUFBTUMsT0FBTyxHQUFHRCxPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRUUsSUFBSSxDQUFDLENBQUM7RUFDL0IsSUFBSSxDQUFDRCxPQUFPLEVBQUUsT0FBTyxJQUFJO0VBQ3pCLElBQUlBLE9BQU8sQ0FBQ0UsTUFBTSxJQUFJTCx3QkFBd0IsRUFBRSxPQUFPRyxPQUFPO0VBQzlELFVBQUFHLE1BQUEsQ0FBVUgsT0FB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
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0b3JlL2NoYXRzU3RvcmUudHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHR5cGUgeyBBZ2VudCB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG4vKiogSXRlbSBkZWwgbGlzdGFkbyBkZSBjb252ZXJzYWNpb25lcyAoaWd1YWwgZm9ybWEgcXVlIGRldnVlbHZlIGdldENoYXRzQnlVc2VySWQpICovXG5leHBvcnQgdHlwZSBDaGF0TGlzdEl0ZW0gPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZyB8IG51bGxcbiAgZGF0ZTogRGF0ZVxuICBhZ2VudDogc3RyaW5nXG4gIGFnZW50SWQ6IG51bWJlclxuICBlbW9qaTogc3RyaW5nIHwgbnVsbFxuICBzZXNzaW9uRXh0ZXJuYWxJZDogc3RyaW5nXG4gIGF0dGFjaG1lbnRzPzogYW55W11cbiAgcHJvamVjdElkPzogbnVtYmVyIHwgc3RyaW5nXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIGNsaWVudElkPzogbnVtYmVyXG4gIGNsaWVudE5hbWU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgU2VjdGlvblR5cGUgPSAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIHwgJ3Rhc2snIHwgJ3BsYW5uZXInXG5cbmV4cG9ydCB0eXBlIEZldGNoQ2hhdHNQYXJhbXMgPSB7XG4gIGFnZW50OiBBZ2VudCB8IG51bGxcbiAgc2VjdGlvbjogU2VjdGlvblR5cGVcbiAgbGltaXQ/OiBudW1iZXJcbiAgb2Zmc2V0PzogbnVtYmVyXG4gIG9uRXJyb3I/OiAoKSA9PiB2b2lkXG4gIGxhbmc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTG9hZE1vcmVDaGF0c1BhcmFtcyA9IHtcbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBzZWN0aW9uOiBTZWN0aW9uVHlwZVxuICBvbkVycm9yPzogKCkgPT4gdm9pZFxuICBsYW5nPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIERlbGV0ZUNoYXRQYXJhbXMgPSB7XG4gIGNoYXRJZDogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG59XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0b3JlL2NoYXRzU3RvcmUudHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHR5cGUgeyBBZ2VudCB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG4vKiogSXRlbSBkZWwgbGlzdGFkbyBkZSBjb252ZXJzYWNpb25lcyAoaWd1YWwgZm9ybWEgcXVlIGRldnVlbHZlIGdldENoYXRzQnlVc2VySWQpICovXG5leHBvcnQgdHlwZSBDaGF0TGlzdEl0ZW0gPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZyB8IG51bGxcbiAgZGF0ZTogRGF0ZVxuICBhZ2VudDogc3RyaW5nXG4gIGFnZW50SWQ6IG51bWJlclxuICBhZ2VudFR5cGU/OiBzdHJpbmdcbiAgZW1vamk6IHN0cmluZyB8IG51bGxcbiAgc2Vzc2lvbkV4dGVybmFsSWQ6IHN0cmluZ1xuICBpc1JlYWQ/OiBib29sZWFuXG4gIGF0dGFjaG1lbnRzPzogYW55W11cbiAgcHJvamVjdElkPzogbnVtYmVyIHwgc3RyaW5nXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIGNsaWVudElkPzogbnVtYmVyXG4gIGNsaWVudE5hbWU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgU2VjdGlvblR5cGUgPSAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIHwgJ3Rhc2snXG5cbmV4cG9ydCB0eXBlIEZldGNoQ2hhdHNQYXJhbXMgPSB7XG4gIGFnZW50OiBBZ2VudCB8IG51bGxcbiAgc2VjdGlvbjogU2VjdGlvblR5cGVcbiAgbGltaXQ/OiBudW1iZXJcbiAgb2Zmc2V0PzogbnVtYmVyXG4gIG9uRXJyb3I/OiAoKSA9PiB2b2lkXG4gIGxhbmc/OiBzdHJpbmdcbiAgLyoqIFJlZnJlc2NhIHNpbiBza2VsZXRvbiBuaSBkZXNtb250YWplIGRlIGxhIGxpc3RhIChldml0YSByZS1hbmltYXIgY2FzY2FkZSkuICovXG4gIGJhY2tncm91bmQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIExvYWRNb3JlQ2hhdHNQYXJhbXMgPSB7XG4gIGFnZW50OiBBZ2VudCB8IG51bGxcbiAgc2VjdGlvbjogU2VjdGlvblR5cGVcbiAgb25FcnJvcj86ICgpID0+IHZvaWRcbiAgbGFuZz86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBEZWxldGVDaGF0UGFyYW1zID0ge1xuICBjaGF0SWQ6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
@@ -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