@projectcor/maia-components 2.28.0 → 2.30.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 (658) hide show
  1. package/lib/App.js +55 -0
  2. package/lib/components/atoms/ActionableButton.js +60 -0
  3. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +89 -0
  4. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +21 -0
  5. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +9 -0
  6. package/lib/components/atoms/AgentActivityIndicator/index.js +2 -0
  7. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +209 -0
  8. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +93 -0
  9. package/lib/components/atoms/ApprovalBox/index.js +2 -0
  10. package/lib/components/atoms/AttachmentCard/AttachmentCard.js +218 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +52 -0
  12. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +448 -0
  13. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +58 -0
  14. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +55 -0
  15. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +14 -0
  16. package/lib/components/atoms/AttachmentCard/index.js +4 -0
  17. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +442 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +119 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +222 -0
  20. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/index.js +2 -0
  23. package/lib/components/atoms/Backdrop/Backdrop.js +17 -0
  24. package/lib/components/atoms/Backdrop/Backdrop.styles.js +9 -0
  25. package/lib/components/atoms/Backdrop/index.js +2 -0
  26. package/lib/components/atoms/CardItem.js +7 -0
  27. package/lib/components/atoms/CardMenu/CardMenu.js +131 -0
  28. package/lib/components/atoms/CardMenu/index.js +2 -0
  29. package/lib/components/atoms/CardMenu/styles.js +21 -0
  30. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +77 -0
  31. package/lib/components/atoms/ChatClientSelector/index.js +2 -0
  32. package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
  33. package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
  34. package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
  35. package/lib/components/atoms/Checkbox/Checkbox.js +34 -0
  36. package/lib/components/atoms/Checkbox/index.js +2 -0
  37. package/lib/components/atoms/Checkbox/styles.js +39 -0
  38. package/lib/components/atoms/Chip/Chip.js +150 -0
  39. package/lib/components/atoms/Chip/index.js +2 -0
  40. package/lib/components/atoms/Chip/styles.js +43 -0
  41. package/lib/components/atoms/ChipLlm/ChipLlm.js +45 -0
  42. package/lib/components/atoms/ChipLlm/ChipLlm.style.js +21 -0
  43. package/lib/components/atoms/ChipLlm/index.js +2 -0
  44. package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +2 -0
  45. package/lib/components/atoms/ChipStatus/ChipStatus.js +14 -0
  46. package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +27 -0
  47. package/lib/components/atoms/ChipStatus/index.js +2 -0
  48. package/lib/components/atoms/ClearButton.js +6 -0
  49. package/lib/components/atoms/ClientSelector/ClientSelector.js +146 -0
  50. package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +15 -0
  51. package/lib/components/atoms/ClientSelector/index.js +2 -0
  52. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +38 -0
  53. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +188 -0
  54. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +39 -0
  55. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +434 -0
  56. package/lib/components/atoms/ContextMentionChip/index.js +4 -0
  57. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +411 -0
  58. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +10 -0
  59. package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
  60. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +309 -0
  61. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +157 -0
  62. package/lib/components/atoms/ContextMentionItem/index.js +2 -0
  63. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +307 -0
  64. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +108 -0
  65. package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
  66. package/lib/components/atoms/CopyToClipboard.js +70 -0
  67. package/lib/components/atoms/EditableLabel/EditableLabel.js +110 -0
  68. package/lib/components/atoms/EditableLabel/index.js +2 -0
  69. package/lib/components/atoms/EditableLabel/styles.js +7 -0
  70. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +22 -0
  71. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +18 -0
  72. package/lib/components/atoms/EmptySearchClients/index.js +2 -0
  73. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +19 -0
  74. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +15 -0
  75. package/lib/components/atoms/EmptySearchProjects/index.js +2 -0
  76. package/lib/components/atoms/EntitySelector/EntitySelector.js +247 -0
  77. package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +38 -0
  78. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +67 -0
  79. package/lib/components/atoms/EntitySelector/index.js +2 -0
  80. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +14 -0
  81. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +15 -0
  82. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +14 -0
  83. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +15 -0
  84. package/lib/components/atoms/ErrorSearchFaqs/index.js +2 -0
  85. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +18 -0
  86. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +15 -0
  87. package/lib/components/atoms/ErrorSearchProjects/index.js +2 -0
  88. package/lib/components/atoms/Expand/Expand.js +32 -0
  89. package/lib/components/atoms/Expand/index.js +2 -0
  90. package/lib/components/atoms/Fade/Fade.js +56 -0
  91. package/lib/components/atoms/Fade/index.js +2 -0
  92. package/lib/components/atoms/FeedbackButton/FeedbackButton.js +59 -0
  93. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +14 -0
  94. package/lib/components/atoms/FeedbackButton/index.js +2 -0
  95. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +138 -0
  96. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +44 -0
  97. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +43 -0
  98. package/lib/components/atoms/FrequentlyAskedQuestions/index.js +2 -0
  99. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +122 -0
  100. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +43 -0
  101. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +62 -0
  102. package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
  103. package/lib/components/atoms/GoBackButton.js +24 -0
  104. package/lib/components/atoms/HelpButton.js +44 -0
  105. package/lib/components/atoms/IconButton.js +56 -0
  106. package/lib/components/atoms/ImagePreview/ImagePreview.js +96 -0
  107. package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +70 -0
  108. package/lib/components/atoms/Input/CustomInput.interface.js +2 -0
  109. package/lib/components/atoms/Input/CustomInput.js +91 -0
  110. package/lib/components/atoms/Input/CustomInput.styles.js +39 -0
  111. package/lib/components/atoms/Input/index.js +2 -0
  112. package/lib/components/atoms/ListMenuOption/ListMenuOption.js +41 -0
  113. package/lib/components/atoms/ListMenuOption/index.js +2 -0
  114. package/lib/components/atoms/ListMenuOption/styles.js +9 -0
  115. package/lib/components/atoms/Loader.js +41 -0
  116. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +11 -0
  117. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +6 -0
  118. package/lib/components/atoms/LoadingFaqs/index.js +2 -0
  119. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +11 -0
  120. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +6 -0
  121. package/lib/components/atoms/LoadingSearchClients/index.js +2 -0
  122. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +14 -0
  123. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +10 -0
  124. package/lib/components/atoms/LoadingSearchProjects/index.js +2 -0
  125. package/lib/components/atoms/LoadingText/LoadingText.js +18 -0
  126. package/lib/components/atoms/LoadingText/index.js +2 -0
  127. package/lib/components/atoms/LoadingText/styles.js +7 -0
  128. package/lib/components/atoms/MAIAButton/MAIAButton.js +33 -0
  129. package/lib/components/atoms/MAIAButton/index.js +2 -0
  130. package/lib/components/atoms/MAIAError/MAIAError.js +15 -0
  131. package/lib/components/atoms/MAIAError/index.js +2 -0
  132. package/lib/components/atoms/MAIAInput/MAIAInput.js +1058 -0
  133. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +266 -0
  134. package/lib/components/atoms/MAIAInput/index.js +2 -0
  135. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
  136. package/lib/components/atoms/MAIAInput/styles.js +182 -0
  137. package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +2 -0
  138. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +22 -0
  139. package/lib/components/atoms/MAIAMessage/index.js +2 -0
  140. package/lib/components/atoms/MAIAMessage/styles.js +7 -0
  141. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +23 -0
  142. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +2 -0
  143. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +51 -0
  144. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +26 -0
  145. package/lib/components/atoms/MaiaStreamdown/index.js +2 -0
  146. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +18 -0
  147. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +84 -0
  148. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +15 -0
  149. package/lib/components/atoms/MaiaWrapper/index.js +3 -0
  150. package/lib/components/atoms/MaiaWrapper/styles.js +21 -0
  151. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +2 -0
  152. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +84 -0
  153. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +53 -0
  154. package/lib/components/atoms/ModalClientAccess/index.js +2 -0
  155. package/lib/components/atoms/ModalInfo/ModalInfo.js +52 -0
  156. package/lib/components/atoms/ModalInfo/ModalInfoContent.js +7 -0
  157. package/lib/components/atoms/ModalInfo/index.js +3 -0
  158. package/lib/components/atoms/ModalInfo/styles.js +7 -0
  159. package/lib/components/atoms/ModalProject/ModalProject.interface.js +2 -0
  160. package/lib/components/atoms/ModalProject/ModalProject.js +112 -0
  161. package/lib/components/atoms/ModalProject/ModalProject.style.js +59 -0
  162. package/lib/components/atoms/ModalProject/index.js +2 -0
  163. package/lib/components/atoms/NextPageLoader.js +33 -0
  164. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +28 -0
  165. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +180 -0
  166. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +34 -0
  167. package/lib/components/atoms/OnboardingModalButton/index.js +3 -0
  168. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +131 -0
  169. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +59 -0
  170. package/lib/components/atoms/OptionAccessibility/index.js +2 -0
  171. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +27 -0
  172. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
  173. package/lib/components/atoms/OptionCorPermission/index.js +2 -0
  174. package/lib/components/atoms/PrimaryButton.js +31 -0
  175. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +77 -0
  176. package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +61 -0
  177. package/lib/components/atoms/ProjectSelector/index.js +2 -0
  178. package/lib/components/atoms/SecondaryButton.js +20 -0
  179. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
  180. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
  181. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  182. package/lib/components/atoms/Skeleton/Skeleton.js +36 -0
  183. package/lib/components/atoms/Skeleton/index.js +2 -0
  184. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
  185. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
  186. package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
  187. package/lib/components/atoms/SlashCommandChip/index.js +4 -0
  188. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +210 -0
  189. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +53 -0
  190. package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
  191. package/lib/components/atoms/Switch/Switch.js +27 -0
  192. package/lib/components/atoms/Switch/Switch.styles.js +22 -0
  193. package/lib/components/atoms/Switch/index.js +2 -0
  194. package/lib/components/atoms/TextArea/CustomTextArea.interface.js +2 -0
  195. package/lib/components/atoms/TextArea/CustomTextArea.js +93 -0
  196. package/lib/components/atoms/TextArea/CustomTextArea.styles.js +25 -0
  197. package/lib/components/atoms/TextArea/TextArea.interfaces.js +2 -0
  198. package/lib/components/atoms/TextArea/TextArea.js +172 -0
  199. package/lib/components/atoms/TextArea/TextArea.styles.js +16 -0
  200. package/lib/components/atoms/TextArea/index.js +2 -0
  201. package/lib/components/atoms/ThirdButton.js +19 -0
  202. package/lib/components/atoms/VideoModal/VideoModal.js +76 -0
  203. package/lib/components/atoms/VideoModal/index.js +2 -0
  204. package/lib/components/atoms/WithAppCfg.js +26 -0
  205. package/lib/components/atoms/WithFeatureValidation.js +23 -0
  206. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +9 -0
  207. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +6 -0
  208. package/lib/components/atoms/WrapperCenterIcon/index.js +2 -0
  209. package/lib/components/atoms/icons/AIIcon.js +23 -0
  210. package/lib/components/atoms/icons/AacFile.js +39 -0
  211. package/lib/components/atoms/icons/AccessibilityIcon.js +42 -0
  212. package/lib/components/atoms/icons/ActionAssignIcon.js +111 -0
  213. package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
  214. package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
  215. package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
  216. package/lib/components/atoms/icons/ActionCreateIcon.js +91 -0
  217. package/lib/components/atoms/icons/ActionCreateReworkIcon.js +39 -0
  218. package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
  219. package/lib/components/atoms/icons/ActionEditIcon.js +39 -0
  220. package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
  221. package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
  222. package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
  223. package/lib/components/atoms/icons/AgentMaiaIcon.js +31 -0
  224. package/lib/components/atoms/icons/Brain.js +77 -0
  225. package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
  226. package/lib/components/atoms/icons/CorLogo.js +76 -0
  227. package/lib/components/atoms/icons/CsvFile.js +41 -0
  228. package/lib/components/atoms/icons/DocFile.js +41 -0
  229. package/lib/components/atoms/icons/DocxFile.js +41 -0
  230. package/lib/components/atoms/icons/EmptyClientIllustration.js +67 -0
  231. package/lib/components/atoms/icons/EmptyHistory.js +46 -0
  232. package/lib/components/atoms/icons/EmptySearchIllustration.js +37 -0
  233. package/lib/components/atoms/icons/EmptyState.js +84 -0
  234. package/lib/components/atoms/icons/EmptyStateAgents.js +58 -0
  235. package/lib/components/atoms/icons/ErrorIcon.js +14 -0
  236. package/lib/components/atoms/icons/ErrorSearchIllustration.js +52 -0
  237. package/lib/components/atoms/icons/ErrorState.js +51 -0
  238. package/lib/components/atoms/icons/FaqChevronIcon.js +39 -0
  239. package/lib/components/atoms/icons/FaqsIcon.js +51 -0
  240. package/lib/components/atoms/icons/FlacIcon.js +39 -0
  241. package/lib/components/atoms/icons/FolderIcon.js +29 -0
  242. package/lib/components/atoms/icons/HomeIcon.js +30 -0
  243. package/lib/components/atoms/icons/ImageFile.js +46 -0
  244. package/lib/components/atoms/icons/M4aFile.js +39 -0
  245. package/lib/components/atoms/icons/MAIAIcon.js +20 -0
  246. package/lib/components/atoms/icons/MAIAIsologo.js +65 -0
  247. package/lib/components/atoms/icons/MDFile.js +41 -0
  248. package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +41 -0
  249. package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +41 -0
  250. package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
  251. package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +41 -0
  252. package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
  253. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
  254. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
  255. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
  256. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
  257. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
  258. package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
  259. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
  260. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
  261. package/lib/components/atoms/icons/MaiaSettingsProject.js +111 -0
  262. package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +193 -0
  263. package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
  264. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  265. package/lib/components/atoms/icons/Mp3File.js +39 -0
  266. package/lib/components/atoms/icons/Mp4File.js +39 -0
  267. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  268. package/lib/components/atoms/icons/NewChat.js +29 -0
  269. package/lib/components/atoms/icons/NotionIcon.js +36 -0
  270. package/lib/components/atoms/icons/OgaFile.js +39 -0
  271. package/lib/components/atoms/icons/OggFile.js +39 -0
  272. package/lib/components/atoms/icons/PdfFile.js +39 -0
  273. package/lib/components/atoms/icons/PptFile.js +47 -0
  274. package/lib/components/atoms/icons/PptxFile.js +49 -0
  275. package/lib/components/atoms/icons/RetryIcon.js +34 -0
  276. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  277. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  278. package/lib/components/atoms/icons/SubtaskIcon.js +36 -0
  279. package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
  280. package/lib/components/atoms/icons/TelescopeIcon.js +60 -0
  281. package/lib/components/atoms/icons/TemplateGradientIcon.js +42 -0
  282. package/lib/components/atoms/icons/TextFile.js +41 -0
  283. package/lib/components/atoms/icons/WavFile.js +39 -0
  284. package/lib/components/atoms/icons/WebmFile.js +50 -0
  285. package/lib/components/atoms/icons/XlsFile.js +42 -0
  286. package/lib/components/atoms/icons/XlsxFile.js +42 -0
  287. package/lib/components/atoms/icons/index.js +50 -0
  288. package/lib/components/atoms/index.js +42 -0
  289. package/lib/components/index.js +11 -0
  290. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +2 -0
  291. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +149 -0
  292. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +53 -0
  293. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +415 -0
  294. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +152 -0
  295. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +374 -0
  296. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +106 -0
  297. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +92 -0
  298. package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +57 -0
  299. package/lib/components/molecules/AbmSection/index.js +4 -0
  300. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +52 -0
  301. package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
  302. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +117 -0
  303. package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +187 -0
  304. package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +6 -0
  305. package/lib/components/molecules/ChatAIContent/index.js +2 -0
  306. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +241 -0
  307. package/lib/components/molecules/ChatAIHistory/index.js +2 -0
  308. package/lib/components/molecules/ChatAIHistory/styles.js +22 -0
  309. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +649 -0
  310. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +115 -0
  311. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +95 -0
  312. package/lib/components/molecules/ChatAIHome/index.js +2 -0
  313. package/lib/components/molecules/ChatAIHome/styles.js +335 -0
  314. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
  315. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +853 -0
  316. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +47 -0
  317. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
  318. package/lib/components/molecules/ChatAIMessages/README.md +101 -0
  319. package/lib/components/molecules/ChatAIMessages/index.js +2 -0
  320. package/lib/components/molecules/ChatAIMessages/newStyles.js +131 -0
  321. package/lib/components/molecules/ChatAIMessages/styles.js +94 -0
  322. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1217 -0
  323. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +58 -0
  324. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +127 -0
  325. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +34 -0
  326. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +2 -0
  327. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +189 -0
  328. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -0
  329. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +2 -0
  330. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +448 -0
  331. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +108 -0
  332. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +2 -0
  333. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +48 -0
  334. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +38 -0
  335. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
  336. package/lib/components/molecules/ChatAIModal/constants.js +40 -0
  337. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
  338. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
  339. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
  340. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
  341. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
  342. package/lib/components/molecules/ChatAIModal/index.js +2 -0
  343. package/lib/components/molecules/ChatAIModal/layout.js +74 -0
  344. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +457 -0
  345. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +218 -0
  346. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  347. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  348. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  349. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +48 -0
  350. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +49 -0
  351. package/lib/components/molecules/ChatAIProjectSelector/index.js +2 -0
  352. package/lib/components/molecules/ChatFooter/ChatFooter.js +337 -0
  353. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
  354. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
  355. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +201 -0
  356. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
  357. package/lib/components/molecules/ChatFooter/index.js +2 -0
  358. package/lib/components/molecules/ChatFooter/styles.js +23 -0
  359. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +62 -0
  360. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
  361. package/lib/components/molecules/ContextMentionInput/index.js +2 -0
  362. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +118 -0
  363. package/lib/components/molecules/MessageFeedback/index.js +2 -0
  364. package/lib/components/molecules/MessageFeedback/styles.js +14 -0
  365. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +127 -0
  366. package/lib/components/molecules/ProjectSummaryChat/index.js +2 -0
  367. package/lib/components/molecules/ProjectSummaryChat/styles.js +8 -0
  368. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +152 -0
  369. package/lib/components/molecules/ProjectSummaryConfig/index.js +2 -0
  370. package/lib/components/molecules/ProjectSummaryConfig/styles.js +86 -0
  371. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +49 -0
  372. package/lib/components/molecules/ProjectSummaryContent/index.js +2 -0
  373. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +19 -0
  374. package/lib/components/molecules/ProjectSummaryModal/index.js +2 -0
  375. package/lib/components/molecules/ProjectSummaryModal/styles.js +2 -0
  376. package/lib/components/molecules/Sidebar/Sidebar.js +715 -0
  377. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +157 -0
  378. package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +48 -0
  379. package/lib/components/molecules/Sidebar/Sidebar.styles.js +75 -0
  380. package/lib/components/molecules/Sidebar/index.js +2 -0
  381. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1420 -0
  382. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +93 -0
  383. package/lib/components/organisms/AbmAgentModal/index.js +2 -0
  384. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +175 -0
  385. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  386. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  387. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +432 -0
  388. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  389. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  390. package/lib/components/organisms/ChatAI/ChatAI.js +167 -0
  391. package/lib/components/organisms/ChatAI/index.js +2 -0
  392. package/lib/components/organisms/ChatAI/styles.js +7 -0
  393. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +23 -0
  394. package/lib/components/organisms/ClientAIButton/index.js +2 -0
  395. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +86 -0
  396. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +39 -0
  397. package/lib/components/organisms/DeleteAgentModal/index.js +2 -0
  398. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +122 -0
  399. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +47 -0
  400. package/lib/components/organisms/DeleteQuestionModal/index.js +2 -0
  401. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +138 -0
  402. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +69 -0
  403. package/lib/components/organisms/EditQuestionModal/index.js +2 -0
  404. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +113 -0
  405. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +54 -0
  406. package/lib/components/organisms/ModalFileExceeds/index.js +2 -0
  407. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +26 -0
  408. package/lib/components/organisms/ProjectAIButton/index.js +2 -0
  409. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +60 -0
  410. package/lib/components/organisms/ProjectSummary/index.js +2 -0
  411. package/lib/components/organisms/ProjectSummary/styles.js +7 -0
  412. package/lib/components/organisms/SnackBar/Snackbar.interface.js +2 -0
  413. package/lib/components/organisms/SnackBar/Snackbar.js +73 -0
  414. package/lib/components/organisms/SnackBar/Snackbar.styles.js +9 -0
  415. package/lib/components/organisms/SnackBar/index.js +2 -0
  416. package/lib/components/organisms/SourcesInformation/SourceItem.js +18 -0
  417. package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +14 -0
  418. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +66 -0
  419. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +27 -0
  420. package/lib/components/organisms/SourcesInformation/index.js +2 -0
  421. package/lib/constants/config.js +13 -0
  422. package/lib/constants/formatExtensions.js +55 -0
  423. package/lib/constants/gqlClient.js +4 -0
  424. package/lib/constants/maiaHourAgentAccess.js +15 -0
  425. package/lib/constants/maiaTaskPanelAccess.js +24 -0
  426. package/lib/constants/maiaTaskPanelOutsideClick.js +9 -0
  427. package/lib/constants/maiaTaskPanelZIndex.js +19 -0
  428. package/lib/constants/permissions/config.js +72 -0
  429. package/lib/constants/permissions/index.js +3 -0
  430. package/lib/constants/permissions/types.js +2 -0
  431. package/lib/constants/permissions/utils.js +18 -0
  432. package/lib/constants/plannerSyncEvents.js +15 -0
  433. package/lib/constants/taskLinkIcon.js +15 -0
  434. package/lib/constants/taskUrls.js +11 -0
  435. package/lib/context/cor-user.js +31 -0
  436. package/lib/context/global-context.js +39 -0
  437. package/lib/dev/DevChatAI.js +101 -0
  438. package/lib/dev/DevContextMentionInput.js +67 -0
  439. package/lib/dev/ProjectSummary.js +9 -0
  440. package/lib/dev/Providers.js +27 -0
  441. package/lib/exports.js +2 -0
  442. package/lib/hooks/README.md +192 -0
  443. package/lib/hooks/index.js +30 -0
  444. package/lib/hooks/useAccessClient/index.js +2 -0
  445. package/lib/hooks/useAccessClient/useAccessClient.js +81 -0
  446. package/lib/hooks/useAgentModel/index.js +2 -0
  447. package/lib/hooks/useAgentModel/useAgentModel.js +62 -0
  448. package/lib/hooks/useAgentModel/useCreateAgent.js +128 -0
  449. package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
  450. package/lib/hooks/useAgentModel/useUpdateAgent.js +129 -0
  451. package/lib/hooks/useAgentSuggestions.js +60 -0
  452. package/lib/hooks/useCaretPosition.js +65 -0
  453. package/lib/hooks/useChatManager/index.js +2 -0
  454. package/lib/hooks/useChatManager/useChatManager.interface.js +2 -0
  455. package/lib/hooks/useChatManager/useChatManager.js +1782 -0
  456. package/lib/hooks/useChatMessages/index.js +2 -0
  457. package/lib/hooks/useChatMessages/useChatMessages.interface.js +2 -0
  458. package/lib/hooks/useChatMessages/useChatMessages.js +722 -0
  459. package/lib/hooks/useChats/index.js +2 -0
  460. package/lib/hooks/useChats/useChats.interfaces.js +2 -0
  461. package/lib/hooks/useChats/useChats.js +187 -0
  462. package/lib/hooks/useClientSearch.js +163 -0
  463. package/lib/hooks/useContextMentions.js +463 -0
  464. package/lib/hooks/useContextPinPopover.js +228 -0
  465. package/lib/hooks/useDebounce.js +18 -0
  466. package/lib/hooks/useEntitySearch.js +1239 -0
  467. package/lib/hooks/useEvent.js +93 -0
  468. package/lib/hooks/useFrequentlyAskedQuestions.js +150 -0
  469. package/lib/hooks/useFrequentlyUsedActions.js +94 -0
  470. package/lib/hooks/useKnowledge/deleteKnowledge.js +69 -0
  471. package/lib/hooks/useKnowledge/downloadKnowledge.js +81 -0
  472. package/lib/hooks/useKnowledge/index.js +4 -0
  473. package/lib/hooks/useKnowledge/saveKnowledge.js +107 -0
  474. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +156 -0
  475. package/lib/hooks/useMaiaTaskPanelZIndex.js +17 -0
  476. package/lib/hooks/useMentionAllowedTypes.js +136 -0
  477. package/lib/hooks/useMentionPopover.js +366 -0
  478. package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
  479. package/lib/hooks/useModal/index.js +2 -0
  480. package/lib/hooks/useModal/useModal.interfaces.js +2 -0
  481. package/lib/hooks/useModal/useModal.js +47 -0
  482. package/lib/hooks/useOnboardingNavigation.js +20 -0
  483. package/lib/hooks/useOrchestratorStream/index.js +2 -0
  484. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +2 -0
  485. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +269 -0
  486. package/lib/hooks/useProjectSearch.js +183 -0
  487. package/lib/hooks/useProjectSummary.js +101 -0
  488. package/lib/hooks/useProjectSummaryConfig.js +211 -0
  489. package/lib/hooks/useProjects.js +46 -0
  490. package/lib/hooks/useRecentClientsSearch.js +150 -0
  491. package/lib/hooks/useRecentContexts.js +86 -0
  492. package/lib/hooks/useResize.js +29 -0
  493. package/lib/hooks/useSlashCommands.js +84 -0
  494. package/lib/hooks/useSmoothStreamText/index.js +2 -0
  495. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +197 -0
  496. package/lib/hooks/useSnackBarManager/useSnackBarManager.js +41 -0
  497. package/lib/hooks/useStreamResponse.js +112 -0
  498. package/lib/hooks/useStreamdownStyles.js +13 -0
  499. package/lib/hooks/useStreamingMessage/index.js +2 -0
  500. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +18 -0
  501. package/lib/hooks/useT.js +17 -0
  502. package/lib/hooks/useTabTaskDefault.js +33 -0
  503. package/lib/hooks/useTaskPanel.js +22 -0
  504. package/lib/hooks/useTextOverflowEllipsisTooltip.js +34 -0
  505. package/lib/hooks/useToggle.js +19 -0
  506. package/lib/hooks/useToggleFavorite/index.js +2 -0
  507. package/lib/hooks/useToggleFavorite/useToggleFavorite.js +83 -0
  508. package/lib/index.css +76 -0
  509. package/lib/index.js +30 -0
  510. package/lib/lang/br/index.js +761 -0
  511. package/lib/lang/en/index.js +761 -0
  512. package/lib/lang/es/index.js +762 -0
  513. package/lib/lang/fr/index.js +582 -0
  514. package/lib/lang/index.js +24 -0
  515. package/lib/lang/utils.js +33 -0
  516. package/lib/mocks/mockChats.js +395 -0
  517. package/lib/mocks/mockOrchestrator.js +5 -0
  518. package/lib/mocks/mockProject.js +11 -0
  519. package/lib/mocks/mockProjectSummary.js +6 -0
  520. package/lib/mocks/mockedUser.js +169 -0
  521. package/lib/services/apolloClient.js +3 -0
  522. package/lib/services/appcues.js +19 -0
  523. package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +31 -0
  524. package/lib/services/corpilot/ProjectSummary/index.js +5 -0
  525. package/lib/services/corpilot/client.js +27 -0
  526. package/lib/services/corpilot/index.js +5 -0
  527. package/lib/services/maia/Access/updateAccess.js +59 -0
  528. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +46 -0
  529. package/lib/services/maia/Actions/getSlashCommands.js +39 -0
  530. package/lib/services/maia/Actions/index.js +7 -0
  531. package/lib/services/maia/Agents/createAgent.js +39 -0
  532. package/lib/services/maia/Agents/deleteAgent.js +38 -0
  533. package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
  534. package/lib/services/maia/Agents/getAgentById.js +162 -0
  535. package/lib/services/maia/Agents/getAgentModels.js +112 -0
  536. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  537. package/lib/services/maia/Agents/getAgents.js +718 -0
  538. package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
  539. package/lib/services/maia/Agents/toggleFavorite.js +34 -0
  540. package/lib/services/maia/Agents/updateAgent.js +39 -0
  541. package/lib/services/maia/Chats/deleteChat.js +32 -0
  542. package/lib/services/maia/Chats/getChatMessages.js +144 -0
  543. package/lib/services/maia/Chats/getChatsByUserId.js +82 -0
  544. package/lib/services/maia/Chats/index.js +15 -0
  545. package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
  546. package/lib/services/maia/Chats/patchChat.js +43 -0
  547. package/lib/services/maia/Chats/wasHelpfulChat.js +31 -0
  548. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +55 -0
  549. package/lib/services/maia/Faqs/index.js +5 -0
  550. package/lib/services/maia/Knowledge/delete.js +41 -0
  551. package/lib/services/maia/Knowledge/download.js +48 -0
  552. package/lib/services/maia/Knowledge/index.js +3 -0
  553. package/lib/services/maia/Knowledge/save.js +43 -0
  554. package/lib/services/maia/Orchestrator/index.js +7 -0
  555. package/lib/services/maia/Orchestrator/orchestrator.js +246 -0
  556. package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
  557. package/lib/services/maia/RecentClients/index.js +6 -0
  558. package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
  559. package/lib/services/maia/RecentContexts/index.js +6 -0
  560. package/lib/services/maia/RecentProjects/getRecentProjects.js +55 -0
  561. package/lib/services/maia/RecentProjects/index.js +6 -0
  562. package/lib/services/maia/RecentTasks/getRecentTasks.js +54 -0
  563. package/lib/services/maia/RecentTasks/index.js +6 -0
  564. package/lib/services/maia/RecentUsers/getRecentUsers.js +59 -0
  565. package/lib/services/maia/RecentUsers/index.js +6 -0
  566. package/lib/services/maia/Skills/createSkill.js +39 -0
  567. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  568. package/lib/services/maia/Skills/generateSkill.js +41 -0
  569. package/lib/services/maia/Skills/getSkills.js +90 -0
  570. package/lib/services/maia/Skills/updateSkill.js +39 -0
  571. package/lib/services/maia/client.js +27 -0
  572. package/lib/services/maia/index.js +17 -0
  573. package/lib/services/query/ClientSearchQuery.js +5 -0
  574. package/lib/services/query/entitySearchQuery.js +18 -0
  575. package/lib/services/query/index.js +2 -0
  576. package/lib/services/query/projectSearchByValueQuery.js +5 -0
  577. package/lib/services/query/taskUserTabQuery.js +8 -0
  578. package/lib/services/query/usersDirectoryQuery.js +19 -0
  579. package/lib/services/types.js +6 -0
  580. package/lib/services/utils/fetchCOR.js +117 -0
  581. package/lib/services/utils/getCookie.js +10 -0
  582. package/lib/services/utils/index.js +3 -0
  583. package/lib/services/utils/mapChatMessages.js +287 -0
  584. package/lib/services/utils/validateIsMaia.js +4 -0
  585. package/lib/store/chatsSidebarOptimistic.js +92 -0
  586. package/lib/store/chatsStore.types.js +2 -0
  587. package/lib/store/chatsStoreLifecycle.js +8 -0
  588. package/lib/store/faqsStore.types.js +2 -0
  589. package/lib/store/index.js +4 -0
  590. package/lib/store/maiaLastChatPersistence.js +35 -0
  591. package/lib/store/sessions/activeView.js +22 -0
  592. package/lib/store/sessions/index.js +9 -0
  593. package/lib/store/sessions/sessionHitlContext.js +15 -0
  594. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  595. package/lib/store/sessions/sessionNotifications.js +110 -0
  596. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  597. package/lib/store/sessions/sessionStreamManager.js +715 -0
  598. package/lib/store/sessions/sessionStreamingText.js +80 -0
  599. package/lib/store/sessions/sessions.types.js +35 -0
  600. package/lib/store/sessions/useSessionMeta.js +39 -0
  601. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  602. package/lib/store/sessions/useSessionsStore.js +197 -0
  603. package/lib/store/useChatsStore.js +387 -0
  604. package/lib/store/useFaqsStore.js +27 -0
  605. package/lib/streamdownStyles.js +9 -0
  606. package/lib/styles/StyledCleanContainer.js +7 -0
  607. package/lib/styles/cascade.js +14 -0
  608. package/lib/styles/config.js +47 -0
  609. package/lib/styles/shared/scrollable.js +3 -0
  610. package/lib/styles/transitions.js +21 -0
  611. package/lib/types/Action.js +2 -0
  612. package/lib/types/AgentSuggestion.js +2 -0
  613. package/lib/types/Chat.js +10 -0
  614. package/lib/types/Client.js +2 -0
  615. package/lib/types/FrequentlyAskedQuestion.js +2 -0
  616. package/lib/types/Project.js +2 -0
  617. package/lib/types/ProjectSummaryConfigKeys.js +9 -0
  618. package/lib/types/Task.js +2 -0
  619. package/lib/types/agent.js +2 -0
  620. package/lib/types/agentModal.js +2 -0
  621. package/lib/types/contextMention.js +37 -0
  622. package/lib/types/global.d.js +2 -0
  623. package/lib/types/skill.js +2 -0
  624. package/lib/types/streamActivity.js +2 -0
  625. package/lib/types/userType.d.js +2 -0
  626. package/lib/utils/actionCategoryMap.js +37 -0
  627. package/lib/utils/actionIconMap.js +61 -0
  628. package/lib/utils/agentDisplayName.js +42 -0
  629. package/lib/utils/chatInputFiles.js +52 -0
  630. package/lib/utils/contextMentionIcons.js +134 -0
  631. package/lib/utils/contextMentionLabel.js +4 -0
  632. package/lib/utils/contextMentionTriggers.js +54 -0
  633. package/lib/utils/contextMentionTypeLabel.js +17 -0
  634. package/lib/utils/corConnectorMentionTypes.js +41 -0
  635. package/lib/utils/ensureStreamdownStyles.js +21 -0
  636. package/lib/utils/entityLinkRender.js +135 -0
  637. package/lib/utils/fileDownloadHelper.js +40 -0
  638. package/lib/utils/formatQuickActionMessage.js +16 -0
  639. package/lib/utils/formatUnreadCount.js +6 -0
  640. package/lib/utils/getUnitFileSize.js +13 -0
  641. package/lib/utils/hitlAnalytics.js +65 -0
  642. package/lib/utils/hoursPlannerQuickActionType.js +64 -0
  643. package/lib/utils/imagePreprocessor.js +108 -0
  644. package/lib/utils/index.js +3 -0
  645. package/lib/utils/maiaHostOpen.js +19 -0
  646. package/lib/utils/maiaStreamdownRehypePlugins.js +27 -0
  647. package/lib/utils/mapBackendLang.js +8 -0
  648. package/lib/utils/normalizeAgentConnectors.js +70 -0
  649. package/lib/utils/openTaskInCorPanel.js +22 -0
  650. package/lib/utils/orchestratorSubagents.js +11 -0
  651. package/lib/utils/renderContextMentions.js +399 -0
  652. package/lib/utils/retryCompletion.js +85 -0
  653. package/lib/utils/slashCommandMarker.js +30 -0
  654. package/lib/utils/sortManagerHoursHomeFuas.js +14 -0
  655. package/lib/utils/sseStreamContent.js +17 -0
  656. package/lib/utils/streamActivityMessages.js +359 -0
  657. package/lib/utils/validateTrimmedFields.js +8 -0
  658. package/package.json +1 -1
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Store externo (module-level) para el texto en streaming, keyed por
3
+ * `sessionId`. A diferencia del `streamingStore` legacy (un único mensaje),
4
+ * acá conviven varias sesiones haciendo streaming a la vez.
5
+ *
6
+ * El texto vive fuera del array de `messages` para que solo el componente del
7
+ * mensaje en streaming re-renderice (vía `useSyncExternalStore`), sin disparar
8
+ * re-renders del árbol completo en cada token.
9
+ */
10
+
11
+ var EMPTY_SNAPSHOT = {
12
+ placeholderId: null,
13
+ text: ''
14
+ };
15
+ var snapshots = new Map();
16
+ var listeners = new Set();
17
+ var emitChange = function emitChange() {
18
+ listeners.forEach(function (listener) {
19
+ return listener();
20
+ });
21
+ };
22
+ export var sessionStreamingText = {
23
+ /** Inicia una sesión de streaming con su placeholder. */start: function start(sessionId, placeholderId) {
24
+ snapshots.set(sessionId, {
25
+ placeholderId: placeholderId,
26
+ text: ''
27
+ });
28
+ emitChange();
29
+ },
30
+ /** Setea el texto en vivo de la sesión. */setText: function setText(sessionId, placeholderId, text) {
31
+ var current = snapshots.get(sessionId);
32
+ if (current && current.placeholderId === placeholderId && current.text === text) {
33
+ return;
34
+ }
35
+ snapshots.set(sessionId, {
36
+ placeholderId: placeholderId,
37
+ text: text
38
+ });
39
+ emitChange();
40
+ },
41
+ /** Limpia el streaming de una sesión (fin, error, stop o approval). */clear: function clear(sessionId) {
42
+ if (!snapshots.has(sessionId)) return;
43
+ snapshots["delete"](sessionId);
44
+ emitChange();
45
+ },
46
+ /** Limpia el streaming de todas las sesiones. */clearAll: function clearAll() {
47
+ if (snapshots.size === 0) return;
48
+ snapshots.clear();
49
+ emitChange();
50
+ },
51
+ subscribe: function subscribe(listener) {
52
+ listeners.add(listener);
53
+ return function () {
54
+ listeners["delete"](listener);
55
+ };
56
+ },
57
+ /** Snapshot referencialmente estable por sesión mientras no cambie. */getSnapshot: function getSnapshot(sessionId) {
58
+ var _snapshots$get;
59
+ return (_snapshots$get = snapshots.get(sessionId)) !== null && _snapshots$get !== void 0 ? _snapshots$get : EMPTY_SNAPSHOT;
60
+ },
61
+ /**
62
+ * Texto en vivo del placeholder indicado, buscando en todas las sesiones.
63
+ * El placeholderId es único por stream, así que el lookup no necesita saber
64
+ * a qué sesión pertenece (útil para renderizar sin pasar sessionId por props).
65
+ */
66
+ getTextByPlaceholder: function getTextByPlaceholder(placeholderId) {
67
+ if (!placeholderId) return '';
68
+ var found = '';
69
+ snapshots.forEach(function (snapshot) {
70
+ if (snapshot.placeholderId === placeholderId) {
71
+ found = snapshot.text;
72
+ }
73
+ });
74
+ return found;
75
+ },
76
+ getServerSnapshot: function getServerSnapshot() {
77
+ return EMPTY_SNAPSHOT;
78
+ }
79
+ };
80
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFTVBUWV9TTkFQU0hPVCIsInBsYWNlaG9sZGVySWQiLCJ0ZXh0Iiwic25hcHNob3RzIiwiTWFwIiwibGlzdGVuZXJzIiwiU2V0IiwiZW1pdENoYW5nZSIsImZvckVhY2giLCJsaXN0ZW5lciIsInNlc3Npb25TdHJlYW1pbmdUZXh0Iiwic3RhcnQiLCJzZXNzaW9uSWQiLCJzZXQiLCJzZXRUZXh0IiwiY3VycmVudCIsImdldCIsImNsZWFyIiwiaGFzIiwiY2xlYXJBbGwiLCJzaXplIiwic3Vic2NyaWJlIiwiYWRkIiwiZ2V0U25hcHNob3QiLCJfc25hcHNob3RzJGdldCIsImdldFRleHRCeVBsYWNlaG9sZGVyIiwiZm91bmQiLCJzbmFwc2hvdCIsImdldFNlcnZlclNuYXBzaG90Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25TdHJlYW1pbmdUZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2Vzc2lvblN0cmVhbWluZ1NuYXBzaG90IH0gZnJvbSAnLi9zZXNzaW9ucy50eXBlcydcblxuLyoqXG4gKiBTdG9yZSBleHRlcm5vIChtb2R1bGUtbGV2ZWwpIHBhcmEgZWwgdGV4dG8gZW4gc3RyZWFtaW5nLCBrZXllZCBwb3JcbiAqIGBzZXNzaW9uSWRgLiBBIGRpZmVyZW5jaWEgZGVsIGBzdHJlYW1pbmdTdG9yZWAgbGVnYWN5ICh1biDDum5pY28gbWVuc2FqZSksXG4gKiBhY8OhIGNvbnZpdmVuIHZhcmlhcyBzZXNpb25lcyBoYWNpZW5kbyBzdHJlYW1pbmcgYSBsYSB2ZXouXG4gKlxuICogRWwgdGV4dG8gdml2ZSBmdWVyYSBkZWwgYXJyYXkgZGUgYG1lc3NhZ2VzYCBwYXJhIHF1ZSBzb2xvIGVsIGNvbXBvbmVudGUgZGVsXG4gKiBtZW5zYWplIGVuIHN0cmVhbWluZyByZS1yZW5kZXJpY2UgKHbDrWEgYHVzZVN5bmNFeHRlcm5hbFN0b3JlYCksIHNpbiBkaXNwYXJhclxuICogcmUtcmVuZGVycyBkZWwgw6FyYm9sIGNvbXBsZXRvIGVuIGNhZGEgdG9rZW4uXG4gKi9cblxuY29uc3QgRU1QVFlfU05BUFNIT1Q6IFNlc3Npb25TdHJlYW1pbmdTbmFwc2hvdCA9IHsgcGxhY2Vob2xkZXJJZDogbnVsbCwgdGV4dDogJycgfVxuXG5jb25zdCBzbmFwc2hvdHMgPSBuZXcgTWFwPHN0cmluZywgU2Vzc2lvblN0cmVhbWluZ1NuYXBzaG90PigpXG5jb25zdCBsaXN0ZW5lcnMgPSBuZXcgU2V0PCgpID0+IHZvaWQ+KClcblxuY29uc3QgZW1pdENoYW5nZSA9ICgpID0+IHtcbiAgbGlzdGVuZXJzLmZvckVhY2gobGlzdGVuZXIgPT4gbGlzdGVuZXIoKSlcbn1cblxuZXhwb3J0IGNvbnN0IHNlc3Npb25TdHJlYW1pbmdUZXh0ID0ge1xuICAvKiogSW5pY2lhIHVuYSBzZXNpw7NuIGRlIHN0cmVhbWluZyBjb24gc3UgcGxhY2Vob2xkZXIuICovXG4gIHN0YXJ0KHNlc3Npb25JZDogc3RyaW5nLCBwbGFjZWhvbGRlcklkOiBzdHJpbmcpIHtcbiAgICBzbmFwc2hvdHMuc2V0KHNlc3Npb25JZCwgeyBwbGFjZWhvbGRlcklkLCB0ZXh0OiAnJyB9KVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuICAvKiogU2V0ZWEgZWwgdGV4dG8gZW4gdml2byBkZSBsYSBzZXNpw7NuLiAqL1xuICBzZXRUZXh0KHNlc3Npb25JZDogc3RyaW5nLCBwbGFjZWhvbGRlcklkOiBzdHJpbmcsIHRleHQ6IHN0cmluZykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBzbmFwc2hvdHMuZ2V0KHNlc3Npb25JZClcbiAgICBpZiAoY3VycmVudCAmJiBjdXJyZW50LnBsYWNlaG9sZGVySWQgPT09IHBsYWNlaG9sZGVySWQgJiYgY3VycmVudC50ZXh0ID09PSB0ZXh0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc25hcHNob3RzLnNldChzZXNzaW9uSWQsIHsgcGxhY2Vob2xkZXJJZCwgdGV4dCB9KVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuICAvKiogTGltcGlhIGVsIHN0cmVhbWluZyBkZSB1bmEgc2VzacOzbiAoZmluLCBlcnJvciwgc3RvcCBvIGFwcHJvdmFsKS4gKi9cbiAgY2xlYXIoc2Vzc2lvbklkOiBzdHJpbmcpIHtcbiAgICBpZiAoIXNuYXBzaG90cy5oYXMoc2Vzc2lvbklkKSkgcmV0dXJuXG4gICAgc25hcHNob3RzLmRlbGV0ZShzZXNzaW9uSWQpXG4gICAgZW1pdENoYW5nZSgpXG4gIH0sXG4gIC8qKiBMaW1waWEgZWwgc3RyZWFtaW5nIGRlIHRvZGFzIGxhcyBzZXNpb25lcy4gKi9cbiAgY2xlYXJBbGwoKSB7XG4gICAgaWYgKHNuYXBzaG90cy5zaXplID09PSAwKSByZXR1cm5cbiAgICBzbmFwc2hvdHMuY2xlYXIoKVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuICBzdWJzY3JpYmUobGlzdGVuZXI6ICgpID0+IHZvaWQpIHtcbiAgICBsaXN0ZW5lcnMuYWRkKGxpc3RlbmVyKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBsaXN0ZW5lcnMuZGVsZXRlKGxpc3RlbmVyKVxuICAgIH1cbiAgfSxcbiAgLyoqIFNuYXBzaG90IHJlZmVyZW5jaWFsbWVudGUgZXN0YWJsZSBwb3Igc2VzacOzbiBtaWVudHJhcyBubyBjYW1iaWUuICovXG4gIGdldFNuYXBzaG90KHNlc3Npb25JZDogc3RyaW5nKTogU2Vzc2lvblN0cmVhbWluZ1NuYXBzaG90IHtcbiAgICByZXR1cm4gc25hcHNob3RzLmdldChzZXNzaW9uSWQpID8/IEVNUFRZX1NOQVBTSE9UXG4gIH0sXG4gIC8qKlxuICAgKiBUZXh0byBlbiB2aXZvIGRlbCBwbGFjZWhvbGRlciBpbmRpY2FkbywgYnVzY2FuZG8gZW4gdG9kYXMgbGFzIHNlc2lvbmVzLlxuICAgKiBFbCBwbGFjZWhvbGRlcklkIGVzIMO6bmljbyBwb3Igc3RyZWFtLCBhc8OtIHF1ZSBlbCBsb29rdXAgbm8gbmVjZXNpdGEgc2FiZXJcbiAgICogYSBxdcOpIHNlc2nDs24gcGVydGVuZWNlICjDunRpbCBwYXJhIHJlbmRlcml6YXIgc2luIHBhc2FyIHNlc3Npb25JZCBwb3IgcHJvcHMpLlxuICAgKi9cbiAgZ2V0VGV4dEJ5UGxhY2Vob2xkZXIocGxhY2Vob2xkZXJJZDogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFwbGFjZWhvbGRlcklkKSByZXR1cm4gJydcbiAgICBsZXQgZm91bmQgPSAnJ1xuICAgIHNuYXBzaG90cy5mb3JFYWNoKHNuYXBzaG90ID0+IHtcbiAgICAgIGlmIChzbmFwc2hvdC5wbGFjZWhvbGRlcklkID09PSBwbGFjZWhvbGRlcklkKSB7XG4gICAgICAgIGZvdW5kID0gc25hcHNob3QudGV4dFxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIGZvdW5kXG4gIH0sXG4gIGdldFNlcnZlclNuYXBzaG90KCk6IFNlc3Npb25TdHJlYW1pbmdTbmFwc2hvdCB7XG4gICAgcmV0dXJuIEVNUFRZX1NOQVBTSE9UXG4gIH0sXG59XG4iXSwibWFwcGluZ3MiOiJBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFNQSxjQUF3QyxHQUFHO0VBQUVDLGFBQWEsRUFBRSxJQUFJO0VBQUVDLElBQUksRUFBRTtBQUFHLENBQUM7QUFFbEYsSUFBTUMsU0FBUyxHQUFHLElBQUlDLEdBQUcsQ0FBbUMsQ0FBQztBQUM3RCxJQUFNQyxTQUFTLEdBQUcsSUFBSUMsR0FBRyxDQUFhLENBQUM7QUFFdkMsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUEsRUFBUztFQUN2QkYsU0FBUyxDQUFDRyxPQUFPLENBQUMsVUFBQUMsUUFBUTtJQUFBLE9BQUlBLFFBQVEsQ0FBQyxDQUFDO0VBQUEsRUFBQztBQUMzQyxDQUFDO0FBRUQsT0FBTyxJQUFNQyxvQkFBb0IsR0FBRztFQUNsQyx5REFDQUMsS0FBSyxXQUFMQSxLQUFLQSxDQUFDQyxTQUFpQixFQUFFWCxhQUFxQixFQUFFO0lBQzlDRSxTQUFTLENBQUNVLEdBQUcsQ0FBQ0QsU0FBUyxFQUFFO01BQUVYLGFBQWEsRUFBYkEsYUFBYTtNQUFFQyxJQUFJLEVBQUU7SUFBRyxDQUFDLENBQUM7SUFDckRLLFVBQVUsQ0FBQyxDQUFDO0VBQ2QsQ0FBQztFQUNELDJDQUNBTyxPQUFPLFdBQVBBLE9BQU9BLENBQUNGLFNBQWlCLEVBQUVYLGFBQXFCLEVBQUVDLElBQVksRUFBRTtJQUM5RCxJQUFNYSxPQUFPLEdBQUdaLFNBQVMsQ0FBQ2EsR0FBRyxDQUFDSixTQUFTLENBQUM7SUFDeEMsSUFBSUcsT0FBTyxJQUFJQSxPQUFPLENBQUNkLGFBQWEsS0FBS0EsYUFBYSxJQUFJYyxPQUFPLENBQUNiLElBQUksS0FBS0EsSUFBSSxFQUFFO01BQy9FO0lBQ0Y7SUFDQUMsU0FBUyxDQUFDVSxHQUFHLENBQUNELFNBQVMsRUFBRTtNQUFFWCxhQUFhLEVBQWJBLGFBQWE7TUFBRUMsSUFBSSxFQUFKQTtJQUFLLENBQUMsQ0FBQztJQUNqREssVUFBVSxDQUFDLENBQUM7RUFDZCxDQUFDO0VBQ0QsdUVBQ0FVLEtBQUssV0FBTEEsS0FBS0EsQ0FBQ0wsU0FBaUIsRUFBRTtJQUN2QixJQUFJLENBQUNULFNBQVMsQ0FBQ2UsR0FBRyxDQUFDTixTQUFTLENBQUMsRUFBRTtJQUMvQlQsU0FBUyxVQUFPLENBQUNTLFNBQVMsQ0FBQztJQUMzQkwsVUFBVSxDQUFDLENBQUM7RUFDZCxDQUFDO0VBQ0QsaURBQ0FZLFFBQVEsV0FBUkEsUUFBUUEsQ0FBQSxFQUFHO0lBQ1QsSUFBSWhCLFNBQVMsQ0FBQ2lCLElBQUksS0FBSyxDQUFDLEVBQUU7SUFDMUJqQixTQUFTLENBQUNjLEtBQUssQ0FBQyxDQUFDO0lBQ2pCVixVQUFVLENBQUMsQ0FBQztFQUNkLENBQUM7RUFDRGMsU0FBUyxXQUFUQSxTQUFTQSxDQUFDWixRQUFvQixFQUFFO0lBQzlCSixTQUFTLENBQUNpQixHQUFHLENBQUNiLFFBQVEsQ0FBQztJQUN2QixPQUFPLFlBQU07TUFDWEosU0FBUyxVQUFPLENBQUNJLFFBQVEsQ0FBQztJQUM1QixDQUFDO0VBQ0gsQ0FBQztFQUNELHVFQUNBYyxXQUFXLFdBQVhBLFdBQVdBLENBQUNYLFNBQWlCLEVBQTRCO0lBQUEsSUFBQVksY0FBQTtJQUN2RCxRQUFBQSxjQUFBLEdBQU9yQixTQUFTLENBQUNhLEdBQUcsQ0FBQ0osU0FBUyxDQUFDLGNBQUFZLGNBQUEsY0FBQUEsY0FBQSxHQUFJeEIsY0FBYztFQUNuRCxDQUFDO0VBQ0Q7QUFDRjtBQUNBO0FBQ0E7QUFDQTtFQUNFeUIsb0JBQW9CLFdBQXBCQSxvQkFBb0JBLENBQUN4QixhQUE0QixFQUFVO0lBQ3pELElBQUksQ0FBQ0EsYUFBYSxFQUFFLE9BQU8sRUFBRTtJQUM3QixJQUFJeUIsS0FBSyxHQUFHLEVBQUU7SUFDZHZCLFNBQVMsQ0FBQ0ssT0FBTyxDQUFDLFVBQUFtQixRQUFRLEVBQUk7TUFDNUIsSUFBSUEsUUFBUSxDQUFDMUIsYUFBYSxLQUFLQSxhQUFhLEVBQUU7UUFDNUN5QixLQUFLLEdBQUdDLFFBQVEsQ0FBQ3pCLElBQUk7TUFDdkI7SUFDRixDQUFDLENBQUM7SUFDRixPQUFPd0IsS0FBSztFQUNkLENBQUM7RUFDREUsaUJBQWlCLFdBQWpCQSxpQkFBaUJBLENBQUEsRUFBNkI7SUFDNUMsT0FBTzVCLGNBQWM7RUFDdkI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Estado de alto nivel de una sesión respecto al agente. Cada sesión
3
+ * (thread/chat) tiene su propio ciclo de vida independiente, lo que permite
4
+ * tener varias generando en paralelo.
5
+ */
6
+
7
+ /** Estados en los que la sesión está trabajando (mostramos indicador). */
8
+ export var ACTIVE_SESSION_STATUSES = ['thinking', 'writing', 'awaiting_approval'];
9
+ export var isActiveSessionStatus = function isActiveSessionStatus(status) {
10
+ return status != null && ACTIVE_SESSION_STATUSES.includes(status);
11
+ };
12
+
13
+ /**
14
+ * Metadata reactiva de una sesión (lo que la UI necesita para pintar estado,
15
+ * indicadores y notificaciones). El texto en vivo NO vive acá: viaja por
16
+ * `sessionStreamingText` para no re-renderizar listas en cada token.
17
+ */
18
+
19
+ /** Snapshot del texto en streaming de una sesión (hot path). */
20
+
21
+ /** Payload consolidado que emite el manager al completar un stream. */
22
+
23
+ /**
24
+ * Callbacks por sesión para que `useChatManager` reaccione al ciclo de vida
25
+ * del stream sin acoplar la lógica de mensajes / side-effects al manager.
26
+ */
27
+
28
+ /** Slice de mensajes por sesión (full store). */
29
+
30
+ /** Contexto de conversación restaurable al reabrir una sesión cacheada. */
31
+
32
+ /** Evento `maia-chat-session-meta` persistido para rehidratación sin refetch. */
33
+
34
+ /** Cache en memoria de sesiones ya visitadas (evita refetch al volver). */
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBQ1RJVkVfU0VTU0lPTl9TVEFUVVNFUyIsImlzQWN0aXZlU2Vzc2lvblN0YXR1cyIsInN0YXR1cyIsImluY2x1ZGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25zLnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2hhdE1lc3NhZ2UsIEFwcHJvdmFsUmVxdWVzdCB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgdHlwZSB7IEFnZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgdHlwZSB7IFN0cmVhbUFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5cbi8qKlxuICogRXN0YWRvIGRlIGFsdG8gbml2ZWwgZGUgdW5hIHNlc2nDs24gcmVzcGVjdG8gYWwgYWdlbnRlLiBDYWRhIHNlc2nDs25cbiAqICh0aHJlYWQvY2hhdCkgdGllbmUgc3UgcHJvcGlvIGNpY2xvIGRlIHZpZGEgaW5kZXBlbmRpZW50ZSwgbG8gcXVlIHBlcm1pdGVcbiAqIHRlbmVyIHZhcmlhcyBnZW5lcmFuZG8gZW4gcGFyYWxlbG8uXG4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25TdGF0dXMgPSAnaWRsZScgfCAndGhpbmtpbmcnIHwgJ3dyaXRpbmcnIHwgJ2F3YWl0aW5nX2FwcHJvdmFsJyB8ICdjb21wbGV0ZScgfCAnZXJyb3InIHwgJ2NhbmNlbGxlZCdcblxuLyoqIEVzdGFkb3MgZW4gbG9zIHF1ZSBsYSBzZXNpw7NuIGVzdMOhIHRyYWJhamFuZG8gKG1vc3RyYW1vcyBpbmRpY2Fkb3IpLiAqL1xuZXhwb3J0IGNvbnN0IEFDVElWRV9TRVNTSU9OX1NUQVRVU0VTOiByZWFkb25seSBTZXNzaW9uU3RhdHVzW10gPSBbJ3RoaW5raW5nJywgJ3dyaXRpbmcnLCAnYXdhaXRpbmdfYXBwcm92YWwnXVxuXG5leHBvcnQgY29uc3QgaXNBY3RpdmVTZXNzaW9uU3RhdHVzID0gKHN0YXR1czogU2Vzc2lvblN0YXR1cyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT5cbiAgc3RhdHVzICE9IG51bGwgJiYgQUNUSVZFX1NFU1NJT05fU1RBVFVTRVMuaW5jbHVkZXMoc3RhdHVzKVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uRXJyb3IgPSB7XG4gIHR5cGU/OiBzdHJpbmdcbiAgbWVzc2FnZT86IHN0cmluZ1xufSB8IG51bGxcblxuLyoqXG4gKiBNZXRhZGF0YSByZWFjdGl2YSBkZSB1bmEgc2VzacOzbiAobG8gcXVlIGxhIFVJIG5lY2VzaXRhIHBhcmEgcGludGFyIGVzdGFkbyxcbiAqIGluZGljYWRvcmVzIHkgbm90aWZpY2FjaW9uZXMpLiBFbCB0ZXh0byBlbiB2aXZvIE5PIHZpdmUgYWPDoTogdmlhamEgcG9yXG4gKiBgc2Vzc2lvblN0cmVhbWluZ1RleHRgIHBhcmEgbm8gcmUtcmVuZGVyaXphciBsaXN0YXMgZW4gY2FkYSB0b2tlbi5cbiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvblJ1bnRpbWVNZXRhID0ge1xuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBzdGF0dXM6IFNlc3Npb25TdGF0dXNcbiAgLyoqIEZpZWwgYSBgc2V0TG9hZGluZ2AgZGVsIG1vdG9yIG9yaWdpbmFsOiBoYXkgdW5hIHJlcXVlc3QgZW4gdnVlbG8uICovXG4gIGlzTG9hZGluZzogYm9vbGVhblxuICAvKiogRmllbCBhIGBzZXRJc1dyaXRpbmdgOiB5YSBsbGVnYXJvbiB0b2tlbnMgeSBzZSBlc3TDoSBwaW50YW5kbyB0ZXh0by4gKi9cbiAgaXNXcml0aW5nOiBib29sZWFuXG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGxcbiAgbG9hZGluZ01lc3NhZ2U6IHN0cmluZyB8IG51bGxcbiAgLyoqIElkIGRlbCBtZW5zYWplIHBsYWNlaG9sZGVyIHF1ZSBzZSBlc3TDoSBwaW50YW5kbyBtaWVudHJhcyBoYWNlIHN0cmVhbWluZy4gKi9cbiAgcGxhY2Vob2xkZXJJZDogc3RyaW5nIHwgbnVsbFxuICBzdGFydGVkQXQ6IG51bWJlciB8IG51bGxcbiAgZmluaXNoZWRBdDogbnVtYmVyIHwgbnVsbFxuICBhZ2VudElkPzogc3RyaW5nIHwgbnVtYmVyXG4gIGFnZW50TmFtZT86IHN0cmluZ1xuICB0aXRsZT86IHN0cmluZyB8IG51bGxcbiAgZXJyb3I6IFNlc3Npb25FcnJvclxufVxuXG4vKiogU25hcHNob3QgZGVsIHRleHRvIGVuIHN0cmVhbWluZyBkZSB1bmEgc2VzacOzbiAoaG90IHBhdGgpLiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvblN0cmVhbWluZ1NuYXBzaG90ID0ge1xuICBwbGFjZWhvbGRlcklkOiBzdHJpbmcgfCBudWxsXG4gIHRleHQ6IHN0cmluZ1xufVxuXG4vKiogUGF5bG9hZCBjb25zb2xpZGFkbyBxdWUgZW1pdGUgZWwgbWFuYWdlciBhbCBjb21wbGV0YXIgdW4gc3RyZWFtLiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvbkZpbmlzaFBheWxvYWQgPSB7XG4gIGNvbnRlbnQ6IHN0cmluZ1xuICBzb3VyY2VzOiB1bmtub3duXG4gIG1lbW9yeVNlc3Npb25JZDogc3RyaW5nXG4gIGF0dGFjaG1lbnRzOiB1bmtub3duW10gfCBudWxsXG4gIHN1Z2dlc3Rpb25zOiBzdHJpbmdbXSB8IG51bGxcbiAgY29tcGxldGVkQWdlbnRJZDogc3RyaW5nIHwgbnVsbFxuICByZXNvbHZlZENvbnRleHQ6IHVua25vd25cbn1cblxuLyoqXG4gKiBDYWxsYmFja3MgcG9yIHNlc2nDs24gcGFyYSBxdWUgYHVzZUNoYXRNYW5hZ2VyYCByZWFjY2lvbmUgYWwgY2ljbG8gZGUgdmlkYVxuICogZGVsIHN0cmVhbSBzaW4gYWNvcGxhciBsYSBsw7NnaWNhIGRlIG1lbnNhamVzIC8gc2lkZS1lZmZlY3RzIGFsIG1hbmFnZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25TdHJlYW1DYWxsYmFja3MgPSB7XG4gIG9uU3RyZWFtVXBkYXRlPzogKGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZFxuICBvblN0YXJ0V3JpdGluZz86ICgpID0+IHZvaWRcbiAgb25GaW5pc2hTdHJlYW0/OiAocGF5bG9hZDogU2Vzc2lvbkZpbmlzaFBheWxvYWQpID0+IHZvaWRcbiAgb25TdG9wPzogKHBhcnRpYWxUZXh0OiBzdHJpbmcpID0+IHZvaWRcbiAgb25FcnJvcj86IChlcnJvclR5cGU/OiBzdHJpbmcsIGVycm9yTWVzc2FnZT86IHN0cmluZykgPT4gdm9pZFxuICBvbkFwcHJvdmFsUmVxdWlyZWQ/OiAoYXBwcm92YWw6IEFwcHJvdmFsUmVxdWVzdCwgYWNjdW11bGF0ZWRDb250ZW50OiBzdHJpbmcpID0+IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgU3RhcnRTdHJlYW1SZXN1bHQgPVxuICB7IHN0YXJ0ZWQ6IHRydWUgfSB8IHsgc3RhcnRlZDogZmFsc2U7IHJlYXNvbjogJ2xpbWl0JyB8ICdhbHJlYWR5X2FjdGl2ZScgfCAndHVybl9ub3RfZm91bmQnIH1cblxuLyoqIFNsaWNlIGRlIG1lbnNhamVzIHBvciBzZXNpw7NuIChmdWxsIHN0b3JlKS4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25NZXNzYWdlc01hcCA9IFJlY29yZDxzdHJpbmcsIENoYXRNZXNzYWdlW10+XG5cbi8qKiBDb250ZXh0byBkZSBjb252ZXJzYWNpw7NuIHJlc3RhdXJhYmxlIGFsIHJlYWJyaXIgdW5hIHNlc2nDs24gY2FjaGVhZGEuICovXG5leHBvcnQgdHlwZSBTZXNzaW9uQ29udmVyc2F0aW9uTWV0YSA9IHtcbiAgcHJvamVjdElkTWVzc2FnZT86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbj86IHN0cmluZyB8IG51bGxcbiAgY2xpZW50SWRGcm9tU2Vzc2lvbj86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgY2xpZW50TmFtZUZyb21TZXNzaW9uPzogc3RyaW5nIHwgbnVsbFxuICB0YXNrSWRGcm9tU2Vzc2lvbj86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgdGFza05hbWVGcm9tU2Vzc2lvbj86IHN0cmluZyB8IG51bGxcbn1cblxuLyoqIEV2ZW50byBgbWFpYS1jaGF0LXNlc3Npb24tbWV0YWAgcGVyc2lzdGlkbyBwYXJhIHJlaGlkcmF0YWNpw7NuIHNpbiByZWZldGNoLiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvbk1ldGFFdmVudERldGFpbCA9IHtcbiAgY2hhdElkOiBzdHJpbmdcbiAgYWdlbnRUeXBlPzogc3RyaW5nXG4gIGFnZW50RW50aXR5Pzogc3RyaW5nXG4gIHByb2plY3RJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIGNsaWVudElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICBjbGllbnROYW1lPzogc3RyaW5nIHwgbnVsbFxuICB0YXNrSWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHRhc2tOYW1lPzogc3RyaW5nIHwgbnVsbFxufVxuXG4vKiogQ2FjaGUgZW4gbWVtb3JpYSBkZSBzZXNpb25lcyB5YSB2aXNpdGFkYXMgKGV2aXRhIHJlZmV0Y2ggYWwgdm9sdmVyKS4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25WaWV3Q2FjaGUgPSB7XG4gIGh5ZHJhdGVkRnJvbUFwaTogYm9vbGVhblxuICBsYXN0RXZhbHVhdGVkS2V5OiBudW1iZXIgfCB1bmRlZmluZWRcbiAgY29udmVyc2F0aW9uTWV0YTogU2Vzc2lvbkNvbnZlcnNhdGlvbk1ldGEgfCBudWxsXG4gIHNlc3Npb25NZXRhRXZlbnQ6IFNlc3Npb25NZXRhRXZlbnREZXRhaWwgfCBudWxsXG4gIGFnZW50U25hcHNob3Q6IEFnZW50IHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uVmlld0NhY2hlTWFwID0gUmVjb3JkPHN0cmluZywgU2Vzc2lvblZpZXdDYWNoZT5cbiJdLCJtYXBwaW5ncyI6IkFBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBLE9BQU8sSUFBTUEsdUJBQWlELEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixDQUFDO0FBRTdHLE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FBSUMsTUFBaUM7RUFBQSxPQUNyRUEsTUFBTSxJQUFJLElBQUksSUFBSUYsdUJBQXVCLENBQUNHLFFBQVEsQ0FBQ0QsTUFBTSxDQUFDO0FBQUE7O0FBTzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBb0JBOztBQU1BOztBQVdBO0FBQ0E7QUFDQTtBQUNBOztBQWFBOztBQUdBOztBQVVBOztBQWFBIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,39 @@
1
+ import { useSessionsStore } from './useSessionsStore';
2
+ import { isActiveSessionStatus } from './sessions.types';
3
+
4
+ /** Metadata reactiva de una sesión (o undefined si no existe). */
5
+ export var useSessionMeta = function useSessionMeta(sessionId) {
6
+ return useSessionsStore(function (state) {
7
+ return sessionId ? state.meta[sessionId] : undefined;
8
+ });
9
+ };
10
+
11
+ /** Estado de streaming de la sesión activa, compatible con el motor anterior. */
12
+ export var useSessionStreamState = function useSessionStreamState(sessionId) {
13
+ var _meta$isLoading, _meta$isWriting, _meta$loadingMessage, _meta$streamActivity;
14
+ var meta = useSessionMeta(sessionId);
15
+ return {
16
+ isLoading: (_meta$isLoading = meta === null || meta === void 0 ? void 0 : meta.isLoading) !== null && _meta$isLoading !== void 0 ? _meta$isLoading : false,
17
+ isWriting: (_meta$isWriting = meta === null || meta === void 0 ? void 0 : meta.isWriting) !== null && _meta$isWriting !== void 0 ? _meta$isWriting : false,
18
+ loadingMessage: (_meta$loadingMessage = meta === null || meta === void 0 ? void 0 : meta.loadingMessage) !== null && _meta$loadingMessage !== void 0 ? _meta$loadingMessage : null,
19
+ streamActivity: (_meta$streamActivity = meta === null || meta === void 0 ? void 0 : meta.streamActivity) !== null && _meta$streamActivity !== void 0 ? _meta$streamActivity : null
20
+ };
21
+ };
22
+
23
+ /** Ids de sesiones que están generando (para indicadores / notificaciones). */
24
+ export var useActiveSessionIds = function useActiveSessionIds() {
25
+ return useSessionsStore(function (state) {
26
+ return Object.values(state.meta).filter(function (meta) {
27
+ return isActiveSessionStatus(meta.status);
28
+ }).map(function (meta) {
29
+ return meta.sessionId;
30
+ });
31
+ });
32
+ };
33
+
34
+ /** True si la sesión está generando (thinking / writing / awaiting approval). */
35
+ export var useIsSessionGenerating = function useIsSessionGenerating(sessionId) {
36
+ var meta = useSessionMeta(sessionId);
37
+ return isActiveSessionStatus(meta === null || meta === void 0 ? void 0 : meta.status);
38
+ };
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTZXNzaW9uc1N0b3JlIiwiaXNBY3RpdmVTZXNzaW9uU3RhdHVzIiwidXNlU2Vzc2lvbk1ldGEiLCJzZXNzaW9uSWQiLCJzdGF0ZSIsIm1ldGEiLCJ1bmRlZmluZWQiLCJ1c2VTZXNzaW9uU3RyZWFtU3RhdGUiLCJfbWV0YSRpc0xvYWRpbmciLCJfbWV0YSRpc1dyaXRpbmciLCJfbWV0YSRsb2FkaW5nTWVzc2FnZSIsIl9tZXRhJHN0cmVhbUFjdGl2aXR5IiwiaXNMb2FkaW5nIiwiaXNXcml0aW5nIiwibG9hZGluZ01lc3NhZ2UiLCJzdHJlYW1BY3Rpdml0eSIsInVzZUFjdGl2ZVNlc3Npb25JZHMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJzdGF0dXMiLCJtYXAiLCJ1c2VJc1Nlc3Npb25HZW5lcmF0aW5nIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3VzZVNlc3Npb25NZXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVNlc3Npb25zU3RvcmUgfSBmcm9tICcuL3VzZVNlc3Npb25zU3RvcmUnXG5pbXBvcnQgdHlwZSB7IFNlc3Npb25SdW50aW1lTWV0YSB9IGZyb20gJy4vc2Vzc2lvbnMudHlwZXMnXG5pbXBvcnQgeyBpc0FjdGl2ZVNlc3Npb25TdGF0dXMgfSBmcm9tICcuL3Nlc3Npb25zLnR5cGVzJ1xuXG4vKiogTWV0YWRhdGEgcmVhY3RpdmEgZGUgdW5hIHNlc2nDs24gKG8gdW5kZWZpbmVkIHNpIG5vIGV4aXN0ZSkuICovXG5leHBvcnQgY29uc3QgdXNlU2Vzc2lvbk1ldGEgPSAoc2Vzc2lvbklkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogU2Vzc2lvblJ1bnRpbWVNZXRhIHwgdW5kZWZpbmVkID0+XG4gIHVzZVNlc3Npb25zU3RvcmUoc3RhdGUgPT4gKHNlc3Npb25JZCA/IHN0YXRlLm1ldGFbc2Vzc2lvbklkXSA6IHVuZGVmaW5lZCkpXG5cbi8qKiBFc3RhZG8gZGUgc3RyZWFtaW5nIGRlIGxhIHNlc2nDs24gYWN0aXZhLCBjb21wYXRpYmxlIGNvbiBlbCBtb3RvciBhbnRlcmlvci4gKi9cbmV4cG9ydCBjb25zdCB1c2VTZXNzaW9uU3RyZWFtU3RhdGUgPSAoXG4gIHNlc3Npb25JZDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuKToge1xuICBpc0xvYWRpbmc6IGJvb2xlYW5cbiAgaXNXcml0aW5nOiBib29sZWFuXG4gIGxvYWRpbmdNZXNzYWdlOiBzdHJpbmcgfCBudWxsXG4gIHN0cmVhbUFjdGl2aXR5OiBTZXNzaW9uUnVudGltZU1ldGFbJ3N0cmVhbUFjdGl2aXR5J11cbn0gPT4ge1xuICBjb25zdCBtZXRhID0gdXNlU2Vzc2lvbk1ldGEoc2Vzc2lvbklkKVxuICByZXR1cm4ge1xuICAgIGlzTG9hZGluZzogbWV0YT8uaXNMb2FkaW5nID8/IGZhbHNlLFxuICAgIGlzV3JpdGluZzogbWV0YT8uaXNXcml0aW5nID8/IGZhbHNlLFxuICAgIGxvYWRpbmdNZXNzYWdlOiBtZXRhPy5sb2FkaW5nTWVzc2FnZSA/PyBudWxsLFxuICAgIHN0cmVhbUFjdGl2aXR5OiBtZXRhPy5zdHJlYW1BY3Rpdml0eSA/PyBudWxsLFxuICB9XG59XG5cbi8qKiBJZHMgZGUgc2VzaW9uZXMgcXVlIGVzdMOhbiBnZW5lcmFuZG8gKHBhcmEgaW5kaWNhZG9yZXMgLyBub3RpZmljYWNpb25lcykuICovXG5leHBvcnQgY29uc3QgdXNlQWN0aXZlU2Vzc2lvbklkcyA9ICgpOiBzdHJpbmdbXSA9PlxuICB1c2VTZXNzaW9uc1N0b3JlKHN0YXRlID0+XG4gICAgT2JqZWN0LnZhbHVlcyhzdGF0ZS5tZXRhKVxuICAgICAgLmZpbHRlcihtZXRhID0+IGlzQWN0aXZlU2Vzc2lvblN0YXR1cyhtZXRhLnN0YXR1cykpXG4gICAgICAubWFwKG1ldGEgPT4gbWV0YS5zZXNzaW9uSWQpXG4gIClcblxuLyoqIFRydWUgc2kgbGEgc2VzacOzbiBlc3TDoSBnZW5lcmFuZG8gKHRoaW5raW5nIC8gd3JpdGluZyAvIGF3YWl0aW5nIGFwcHJvdmFsKS4gKi9cbmV4cG9ydCBjb25zdCB1c2VJc1Nlc3Npb25HZW5lcmF0aW5nID0gKHNlc3Npb25JZDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBtZXRhID0gdXNlU2Vzc2lvbk1ldGEoc2Vzc2lvbklkKVxuICByZXR1cm4gaXNBY3RpdmVTZXNzaW9uU3RhdHVzKG1ldGE/LnN0YXR1cylcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBRXJELFNBQVNDLHFCQUFxQixRQUFRLGtCQUFrQjs7QUFFeEQ7QUFDQSxPQUFPLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBSUMsU0FBb0M7RUFBQSxPQUNqRUgsZ0JBQWdCLENBQUMsVUFBQUksS0FBSztJQUFBLE9BQUtELFNBQVMsR0FBR0MsS0FBSyxDQUFDQyxJQUFJLENBQUNGLFNBQVMsQ0FBQyxHQUFHRyxTQUFTO0VBQUEsQ0FBQyxDQUFDO0FBQUE7O0FBRTVFO0FBQ0EsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUNoQ0osU0FBb0MsRUFNakM7RUFBQSxJQUFBSyxlQUFBLEVBQUFDLGVBQUEsRUFBQUMsb0JBQUEsRUFBQUMsb0JBQUE7RUFDSCxJQUFNTixJQUFJLEdBQUdILGNBQWMsQ0FBQ0MsU0FBUyxDQUFDO0VBQ3RDLE9BQU87SUFDTFMsU0FBUyxHQUFBSixlQUFBLEdBQUVILElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFTyxTQUFTLGNBQUFKLGVBQUEsY0FBQUEsZUFBQSxHQUFJLEtBQUs7SUFDbkNLLFNBQVMsR0FBQUosZUFBQSxHQUFFSixJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRVEsU0FBUyxjQUFBSixlQUFBLGNBQUFBLGVBQUEsR0FBSSxLQUFLO0lBQ25DSyxjQUFjLEdBQUFKLG9CQUFBLEdBQUVMLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFUyxjQUFjLGNBQUFKLG9CQUFBLGNBQUFBLG9CQUFBLEdBQUksSUFBSTtJQUM1Q0ssY0FBYyxHQUFBSixvQkFBQSxHQUFFTixJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRVUsY0FBYyxjQUFBSixvQkFBQSxjQUFBQSxvQkFBQSxHQUFJO0VBQzFDLENBQUM7QUFDSCxDQUFDOztBQUVEO0FBQ0EsT0FBTyxJQUFNSyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBO0VBQUEsT0FDOUJoQixnQkFBZ0IsQ0FBQyxVQUFBSSxLQUFLO0lBQUEsT0FDcEJhLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDZCxLQUFLLENBQUNDLElBQUksQ0FBQyxDQUN0QmMsTUFBTSxDQUFDLFVBQUFkLElBQUk7TUFBQSxPQUFJSixxQkFBcUIsQ0FBQ0ksSUFBSSxDQUFDZSxNQUFNLENBQUM7SUFBQSxFQUFDLENBQ2xEQyxHQUFHLENBQUMsVUFBQWhCLElBQUk7TUFBQSxPQUFJQSxJQUFJLENBQUNGLFNBQVM7SUFBQSxFQUFDO0VBQUEsQ0FDaEMsQ0FBQztBQUFBOztBQUVIO0FBQ0EsT0FBTyxJQUFNbUIsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSW5CLFNBQW9DLEVBQWM7RUFDdkYsSUFBTUUsSUFBSSxHQUFHSCxjQUFjLENBQUNDLFNBQVMsQ0FBQztFQUN0QyxPQUFPRixxQkFBcUIsQ0FBQ0ksSUFBSSxhQUFKQSxJQUFJLHVCQUFKQSxJQUFJLENBQUVlLE1BQU0sQ0FBQztBQUM1QyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,18 @@
1
+ import { useCallback, useSyncExternalStore } from 'react';
2
+ import { sessionStreamingText } from './sessionStreamingText';
3
+
4
+ /**
5
+ * Devuelve el texto en streaming de una sesión para un placeholder dado.
6
+ * Solo re-renderiza el componente del mensaje en streaming de esa sesión.
7
+ */
8
+ export var useSessionStreamingText = function useSessionStreamingText(sessionId, placeholderId) {
9
+ var getSnapshot = useCallback(function () {
10
+ if (!sessionId) return sessionStreamingText.getServerSnapshot();
11
+ return sessionStreamingText.getSnapshot(sessionId);
12
+ }, [sessionId]);
13
+ var snapshot = useSyncExternalStore(sessionStreamingText.subscribe, getSnapshot, sessionStreamingText.getServerSnapshot);
14
+ if (!sessionId || !placeholderId) return '';
15
+ if (snapshot.placeholderId !== placeholderId) return '';
16
+ return snapshot.text;
17
+ };
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwic2Vzc2lvblN0cmVhbWluZ1RleHQiLCJ1c2VTZXNzaW9uU3RyZWFtaW5nVGV4dCIsInNlc3Npb25JZCIsInBsYWNlaG9sZGVySWQiLCJnZXRTbmFwc2hvdCIsImdldFNlcnZlclNuYXBzaG90Iiwic25hcHNob3QiLCJzdWJzY3JpYmUiLCJ0ZXh0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3VzZVNlc3Npb25TdHJlYW1pbmdUZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTeW5jRXh0ZXJuYWxTdG9yZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgc2Vzc2lvblN0cmVhbWluZ1RleHQgfSBmcm9tICcuL3Nlc3Npb25TdHJlYW1pbmdUZXh0J1xuXG4vKipcbiAqIERldnVlbHZlIGVsIHRleHRvIGVuIHN0cmVhbWluZyBkZSB1bmEgc2VzacOzbiBwYXJhIHVuIHBsYWNlaG9sZGVyIGRhZG8uXG4gKiBTb2xvIHJlLXJlbmRlcml6YSBlbCBjb21wb25lbnRlIGRlbCBtZW5zYWplIGVuIHN0cmVhbWluZyBkZSBlc2Egc2VzacOzbi5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVNlc3Npb25TdHJlYW1pbmdUZXh0ID0gKFxuICBzZXNzaW9uSWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHBsYWNlaG9sZGVySWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGdldFNuYXBzaG90ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghc2Vzc2lvbklkKSByZXR1cm4gc2Vzc2lvblN0cmVhbWluZ1RleHQuZ2V0U2VydmVyU25hcHNob3QoKVxuICAgIHJldHVybiBzZXNzaW9uU3RyZWFtaW5nVGV4dC5nZXRTbmFwc2hvdChzZXNzaW9uSWQpXG4gIH0sIFtzZXNzaW9uSWRdKVxuXG4gIGNvbnN0IHNuYXBzaG90ID0gdXNlU3luY0V4dGVybmFsU3RvcmUoXG4gICAgc2Vzc2lvblN0cmVhbWluZ1RleHQuc3Vic2NyaWJlLFxuICAgIGdldFNuYXBzaG90LFxuICAgIHNlc3Npb25TdHJlYW1pbmdUZXh0LmdldFNlcnZlclNuYXBzaG90XG4gIClcblxuICBpZiAoIXNlc3Npb25JZCB8fCAhcGxhY2Vob2xkZXJJZCkgcmV0dXJuICcnXG4gIGlmIChzbmFwc2hvdC5wbGFjZWhvbGRlcklkICE9PSBwbGFjZWhvbGRlcklkKSByZXR1cm4gJydcbiAgcmV0dXJuIHNuYXBzaG90LnRleHRcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBVyxFQUFFQyxvQkFBb0IsUUFBUSxPQUFPO0FBQ3pELFNBQVNDLG9CQUFvQixRQUFRLHdCQUF3Qjs7QUFFN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQ2xDQyxTQUFvQyxFQUNwQ0MsYUFBd0MsRUFDN0I7RUFDWCxJQUFNQyxXQUFXLEdBQUdOLFdBQVcsQ0FBQyxZQUFNO0lBQ3BDLElBQUksQ0FBQ0ksU0FBUyxFQUFFLE9BQU9GLG9CQUFvQixDQUFDSyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9ELE9BQU9MLG9CQUFvQixDQUFDSSxXQUFXLENBQUNGLFNBQVMsQ0FBQztFQUNwRCxDQUFDLEVBQUUsQ0FBQ0EsU0FBUyxDQUFDLENBQUM7RUFFZixJQUFNSSxRQUFRLEdBQUdQLG9CQUFvQixDQUNuQ0Msb0JBQW9CLENBQUNPLFNBQVMsRUFDOUJILFdBQVcsRUFDWEosb0JBQW9CLENBQUNLLGlCQUN2QixDQUFDO0VBRUQsSUFBSSxDQUFDSCxTQUFTLElBQUksQ0FBQ0MsYUFBYSxFQUFFLE9BQU8sRUFBRTtFQUMzQyxJQUFJRyxRQUFRLENBQUNILGFBQWEsS0FBS0EsYUFBYSxFQUFFLE9BQU8sRUFBRTtFQUN2RCxPQUFPRyxRQUFRLENBQUNFLElBQUk7QUFDdEIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,197 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ 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; }
4
+ 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; }
5
+ /* eslint-disable import/no-extraneous-dependencies */
6
+ import { create } from 'zustand';
7
+ import { isActiveSessionStatus } from './sessions.types';
8
+ var createInitialMeta = function createInitialMeta(sessionId) {
9
+ return {
10
+ sessionId: sessionId,
11
+ status: 'idle',
12
+ isLoading: false,
13
+ isWriting: false,
14
+ streamActivity: null,
15
+ loadingMessage: null,
16
+ placeholderId: null,
17
+ startedAt: null,
18
+ finishedAt: null,
19
+ error: null
20
+ };
21
+ };
22
+ export var useSessionsStore = create(function (set, get) {
23
+ return {
24
+ meta: {},
25
+ messages: {},
26
+ viewCache: {},
27
+ ensureSession: function ensureSession(sessionId) {
28
+ if (get().meta[sessionId]) return;
29
+ set(function (state) {
30
+ return {
31
+ meta: _objectSpread(_objectSpread({}, state.meta), {}, _defineProperty({}, sessionId, createInitialMeta(sessionId)))
32
+ };
33
+ });
34
+ },
35
+ getMeta: function getMeta(sessionId) {
36
+ return get().meta[sessionId];
37
+ },
38
+ patchMeta: function patchMeta(sessionId, patch) {
39
+ return set(function (state) {
40
+ var _state$meta$sessionId;
41
+ var current = (_state$meta$sessionId = state.meta[sessionId]) !== null && _state$meta$sessionId !== void 0 ? _state$meta$sessionId : createInitialMeta(sessionId);
42
+ return {
43
+ meta: _objectSpread(_objectSpread({}, state.meta), {}, _defineProperty({}, sessionId, _objectSpread(_objectSpread({}, current), patch)))
44
+ };
45
+ });
46
+ },
47
+ setStatus: function setStatus(sessionId, status) {
48
+ return set(function (state) {
49
+ var _state$meta$sessionId2;
50
+ var current = (_state$meta$sessionId2 = state.meta[sessionId]) !== null && _state$meta$sessionId2 !== void 0 ? _state$meta$sessionId2 : createInitialMeta(sessionId);
51
+ var isTerminal = status === 'complete' || status === 'error' || status === 'cancelled';
52
+ return {
53
+ meta: _objectSpread(_objectSpread({}, state.meta), {}, _defineProperty({}, sessionId, _objectSpread(_objectSpread(_objectSpread({}, current), {}, {
54
+ status: status
55
+ }, status !== 'idle' && current.startedAt == null ? {
56
+ startedAt: Date.now()
57
+ } : {}), isTerminal ? {
58
+ finishedAt: Date.now()
59
+ } : {})))
60
+ };
61
+ });
62
+ },
63
+ setActivity: function setActivity(sessionId, activity, loadingMessage) {
64
+ return set(function (state) {
65
+ var _state$meta$sessionId3, _activity$message;
66
+ var current = (_state$meta$sessionId3 = state.meta[sessionId]) !== null && _state$meta$sessionId3 !== void 0 ? _state$meta$sessionId3 : createInitialMeta(sessionId);
67
+ return {
68
+ meta: _objectSpread(_objectSpread({}, state.meta), {}, _defineProperty({}, sessionId, _objectSpread(_objectSpread({}, current), {}, {
69
+ streamActivity: activity,
70
+ loadingMessage: loadingMessage !== undefined ? loadingMessage : (_activity$message = activity === null || activity === void 0 ? void 0 : activity.message) !== null && _activity$message !== void 0 ? _activity$message : null
71
+ })))
72
+ };
73
+ });
74
+ },
75
+ setError: function setError(sessionId, error) {
76
+ return set(function (state) {
77
+ var _state$meta$sessionId4;
78
+ var current = (_state$meta$sessionId4 = state.meta[sessionId]) !== null && _state$meta$sessionId4 !== void 0 ? _state$meta$sessionId4 : createInitialMeta(sessionId);
79
+ return {
80
+ meta: _objectSpread(_objectSpread({}, state.meta), {}, _defineProperty({}, sessionId, _objectSpread(_objectSpread({}, current), {}, {
81
+ error: error
82
+ })))
83
+ };
84
+ });
85
+ },
86
+ getActiveSessionIds: function getActiveSessionIds() {
87
+ return Object.values(get().meta).filter(function (meta) {
88
+ return isActiveSessionStatus(meta.status);
89
+ }).map(function (meta) {
90
+ return meta.sessionId;
91
+ });
92
+ },
93
+ getActiveCount: function getActiveCount() {
94
+ return Object.values(get().meta).filter(function (meta) {
95
+ return isActiveSessionStatus(meta.status);
96
+ }).length;
97
+ },
98
+ removeSession: function removeSession(sessionId) {
99
+ set(function (state) {
100
+ var nextMeta = _objectSpread({}, state.meta);
101
+ var nextMessages = _objectSpread({}, state.messages);
102
+ var nextViewCache = _objectSpread({}, state.viewCache);
103
+ delete nextMeta[sessionId];
104
+ delete nextMessages[sessionId];
105
+ delete nextViewCache[sessionId];
106
+ return {
107
+ meta: nextMeta,
108
+ messages: nextMessages,
109
+ viewCache: nextViewCache
110
+ };
111
+ });
112
+ },
113
+ resetAll: function resetAll() {
114
+ return set({
115
+ meta: {},
116
+ messages: {},
117
+ viewCache: {}
118
+ });
119
+ },
120
+ setMessages: function setMessages(sessionId, messages) {
121
+ return set(function (state) {
122
+ return {
123
+ messages: _objectSpread(_objectSpread({}, state.messages), {}, _defineProperty({}, sessionId, messages))
124
+ };
125
+ });
126
+ },
127
+ getMessages: function getMessages(sessionId) {
128
+ var _get$messages$session;
129
+ return (_get$messages$session = get().messages[sessionId]) !== null && _get$messages$session !== void 0 ? _get$messages$session : [];
130
+ },
131
+ addMessage: function addMessage(sessionId, message) {
132
+ return set(function (state) {
133
+ var _state$messages$sessi;
134
+ var prev = (_state$messages$sessi = state.messages[sessionId]) !== null && _state$messages$sessi !== void 0 ? _state$messages$sessi : [];
135
+ var existingIndex = prev.findIndex(function (msg) {
136
+ return msg.id === message.id;
137
+ });
138
+ if (existingIndex >= 0) {
139
+ var next = _toConsumableArray(prev);
140
+ next[existingIndex] = message;
141
+ return {
142
+ messages: _objectSpread(_objectSpread({}, state.messages), {}, _defineProperty({}, sessionId, next))
143
+ };
144
+ }
145
+ return {
146
+ messages: _objectSpread(_objectSpread({}, state.messages), {}, _defineProperty({}, sessionId, [].concat(_toConsumableArray(prev), [message])))
147
+ };
148
+ });
149
+ },
150
+ removeMessage: function removeMessage(sessionId, messageId) {
151
+ return set(function (state) {
152
+ var prev = state.messages[sessionId];
153
+ if (!prev) return {};
154
+ return {
155
+ messages: _objectSpread(_objectSpread({}, state.messages), {}, _defineProperty({}, sessionId, prev.filter(function (msg) {
156
+ return msg.id !== messageId;
157
+ })))
158
+ };
159
+ });
160
+ },
161
+ getViewCache: function getViewCache(sessionId) {
162
+ return get().viewCache[sessionId];
163
+ },
164
+ setViewCache: function setViewCache(sessionId, cache) {
165
+ return set(function (state) {
166
+ return {
167
+ viewCache: _objectSpread(_objectSpread({}, state.viewCache), {}, _defineProperty({}, sessionId, cache))
168
+ };
169
+ });
170
+ },
171
+ patchViewCache: function patchViewCache(sessionId, patch) {
172
+ return set(function (state) {
173
+ var _state$viewCache$sess;
174
+ var current = (_state$viewCache$sess = state.viewCache[sessionId]) !== null && _state$viewCache$sess !== void 0 ? _state$viewCache$sess : {
175
+ hydratedFromApi: true,
176
+ lastEvaluatedKey: 0,
177
+ conversationMeta: null,
178
+ sessionMetaEvent: null,
179
+ agentSnapshot: null
180
+ };
181
+ return {
182
+ viewCache: _objectSpread(_objectSpread({}, state.viewCache), {}, _defineProperty({}, sessionId, _objectSpread(_objectSpread({}, current), patch)))
183
+ };
184
+ });
185
+ },
186
+ isSessionHydrated: function isSessionHydrated(sessionId) {
187
+ var _get$viewCache$sessio;
188
+ return ((_get$viewCache$sessio = get().viewCache[sessionId]) === null || _get$viewCache$sessio === void 0 ? void 0 : _get$viewCache$sessio.hydratedFromApi) === true;
189
+ },
190
+ canRestoreSession: function canRestoreSession(sessionId) {
191
+ var _get$messages$session2, _get$messages$session3;
192
+ var cache = get().viewCache[sessionId];
193
+ return (cache === null || cache === void 0 ? void 0 : cache.hydratedFromApi) === true && ((_get$messages$session2 = (_get$messages$session3 = get().messages[sessionId]) === null || _get$messages$session3 === void 0 ? void 0 : _get$messages$session3.length) !== null && _get$messages$session2 !== void 0 ? _get$messages$session2 : 0) > 0;
194
+ }
195
+ };
196
+ });
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGUiLCJpc0FjdGl2ZVNlc3Npb25TdGF0dXMiLCJjcmVhdGVJbml0aWFsTWV0YSIsInNlc3Npb25JZCIsInN0YXR1cyIsImlzTG9hZGluZyIsImlzV3JpdGluZyIsInN0cmVhbUFjdGl2aXR5IiwibG9hZGluZ01lc3NhZ2UiLCJwbGFjZWhvbGRlcklkIiwic3RhcnRlZEF0IiwiZmluaXNoZWRBdCIsImVycm9yIiwidXNlU2Vzc2lvbnNTdG9yZSIsInNldCIsImdldCIsIm1ldGEiLCJtZXNzYWdlcyIsInZpZXdDYWNoZSIsImVuc3VyZVNlc3Npb24iLCJzdGF0ZSIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRNZXRhIiwicGF0Y2hNZXRhIiwicGF0Y2giLCJfc3RhdGUkbWV0YSRzZXNzaW9uSWQiLCJjdXJyZW50Iiwic2V0U3RhdHVzIiwiX3N0YXRlJG1ldGEkc2Vzc2lvbklkMiIsImlzVGVybWluYWwiLCJEYXRlIiwibm93Iiwic2V0QWN0aXZpdHkiLCJhY3Rpdml0eSIsIl9zdGF0ZSRtZXRhJHNlc3Npb25JZDMiLCJfYWN0aXZpdHkkbWVzc2FnZSIsInVuZGVmaW5lZCIsIm1lc3NhZ2UiLCJzZXRFcnJvciIsIl9zdGF0ZSRtZXRhJHNlc3Npb25JZDQiLCJnZXRBY3RpdmVTZXNzaW9uSWRzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwibWFwIiwiZ2V0QWN0aXZlQ291bnQiLCJsZW5ndGgiLCJyZW1vdmVTZXNzaW9uIiwibmV4dE1ldGEiLCJuZXh0TWVzc2FnZXMiLCJuZXh0Vmlld0NhY2hlIiwicmVzZXRBbGwiLCJzZXRNZXNzYWdlcyIsImdldE1lc3NhZ2VzIiwiX2dldCRtZXNzYWdlcyRzZXNzaW9uIiwiYWRkTWVzc2FnZSIsIl9zdGF0ZSRtZXNzYWdlcyRzZXNzaSIsInByZXYiLCJleGlzdGluZ0luZGV4IiwiZmluZEluZGV4IiwibXNnIiwiaWQiLCJuZXh0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiY29uY2F0IiwicmVtb3ZlTWVzc2FnZSIsIm1lc3NhZ2VJZCIsImdldFZpZXdDYWNoZSIsInNldFZpZXdDYWNoZSIsImNhY2hlIiwicGF0Y2hWaWV3Q2FjaGUiLCJfc3RhdGUkdmlld0NhY2hlJHNlc3MiLCJoeWRyYXRlZEZyb21BcGkiLCJsYXN0RXZhbHVhdGVkS2V5IiwiY29udmVyc2F0aW9uTWV0YSIsInNlc3Npb25NZXRhRXZlbnQiLCJhZ2VudFNuYXBzaG90IiwiaXNTZXNzaW9uSHlkcmF0ZWQiLCJfZ2V0JHZpZXdDYWNoZSRzZXNzaW8iLCJjYW5SZXN0b3JlU2Vzc2lvbiIsIl9nZXQkbWVzc2FnZXMkc2Vzc2lvbjIiLCJfZ2V0JG1lc3NhZ2VzJHNlc3Npb24zIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3VzZVNlc3Npb25zU3RvcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5pbXBvcnQgeyBjcmVhdGUgfSBmcm9tICd6dXN0YW5kJ1xuaW1wb3J0IHR5cGUgeyBDaGF0TWVzc2FnZSB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgdHlwZSB7IFN0cmVhbUFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5pbXBvcnQgdHlwZSB7XG4gIFNlc3Npb25FcnJvcixcbiAgU2Vzc2lvbk1lc3NhZ2VzTWFwLFxuICBTZXNzaW9uUnVudGltZU1ldGEsXG4gIFNlc3Npb25TdGF0dXMsXG4gIFNlc3Npb25WaWV3Q2FjaGUsXG4gIFNlc3Npb25WaWV3Q2FjaGVNYXAsXG59IGZyb20gJy4vc2Vzc2lvbnMudHlwZXMnXG5pbXBvcnQgeyBpc0FjdGl2ZVNlc3Npb25TdGF0dXMgfSBmcm9tICcuL3Nlc3Npb25zLnR5cGVzJ1xuXG5jb25zdCBjcmVhdGVJbml0aWFsTWV0YSA9IChzZXNzaW9uSWQ6IHN0cmluZyk6IFNlc3Npb25SdW50aW1lTWV0YSA9PiAoe1xuICBzZXNzaW9uSWQsXG4gIHN0YXR1czogJ2lkbGUnLFxuICBpc0xvYWRpbmc6IGZhbHNlLFxuICBpc1dyaXRpbmc6IGZhbHNlLFxuICBzdHJlYW1BY3Rpdml0eTogbnVsbCxcbiAgbG9hZGluZ01lc3NhZ2U6IG51bGwsXG4gIHBsYWNlaG9sZGVySWQ6IG51bGwsXG4gIHN0YXJ0ZWRBdDogbnVsbCxcbiAgZmluaXNoZWRBdDogbnVsbCxcbiAgZXJyb3I6IG51bGwsXG59KVxuXG50eXBlIFNlc3Npb25zU3RhdGUgPSB7XG4gIC8qKiBNZXRhZGF0YSByZWFjdGl2YSBkZSBjYWRhIHNlc2nDs24gKGVzdGFkbywgYWN0aXZpZGFkLCB1bnJlYWQsIGV0Yy4pLiAqL1xuICBtZXRhOiBSZWNvcmQ8c3RyaW5nLCBTZXNzaW9uUnVudGltZU1ldGE+XG4gIC8qKiBNZW5zYWplcyBjb21taXRlYWRvcyBwb3Igc2VzacOzbiAoZnVsbCBzdG9yZSkuICovXG4gIG1lc3NhZ2VzOiBTZXNzaW9uTWVzc2FnZXNNYXBcbiAgLyoqIENhY2hlIGRlIHNlc2lvbmVzIHZpc2l0YWRhcyAocGFnaW5hY2nDs24sIGNvbnRleHRvLCBhZ2VudGUpLiAqL1xuICB2aWV3Q2FjaGU6IFNlc3Npb25WaWV3Q2FjaGVNYXBcbn1cblxudHlwZSBTZXNzaW9uc0FjdGlvbnMgPSB7XG4gIGVuc3VyZVNlc3Npb246IChzZXNzaW9uSWQ6IHN0cmluZykgPT4gdm9pZFxuICBnZXRNZXRhOiAoc2Vzc2lvbklkOiBzdHJpbmcpID0+IFNlc3Npb25SdW50aW1lTWV0YSB8IHVuZGVmaW5lZFxuICBwYXRjaE1ldGE6IChzZXNzaW9uSWQ6IHN0cmluZywgcGF0Y2g6IFBhcnRpYWw8U2Vzc2lvblJ1bnRpbWVNZXRhPikgPT4gdm9pZFxuICBzZXRTdGF0dXM6IChzZXNzaW9uSWQ6IHN0cmluZywgc3RhdHVzOiBTZXNzaW9uU3RhdHVzKSA9PiB2b2lkXG4gIHNldEFjdGl2aXR5OiAoc2Vzc2lvbklkOiBzdHJpbmcsIGFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGwsIGxvYWRpbmdNZXNzYWdlPzogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZFxuICBzZXRFcnJvcjogKHNlc3Npb25JZDogc3RyaW5nLCBlcnJvcjogU2Vzc2lvbkVycm9yKSA9PiB2b2lkXG4gIGdldEFjdGl2ZVNlc3Npb25JZHM6ICgpID0+IHN0cmluZ1tdXG4gIGdldEFjdGl2ZUNvdW50OiAoKSA9PiBudW1iZXJcbiAgcmVtb3ZlU2Vzc2lvbjogKHNlc3Npb25JZDogc3RyaW5nKSA9PiB2b2lkXG4gIHJlc2V0QWxsOiAoKSA9PiB2b2lkXG5cbiAgc2V0TWVzc2FnZXM6IChzZXNzaW9uSWQ6IHN0cmluZywgbWVzc2FnZXM6IENoYXRNZXNzYWdlW10pID0+IHZvaWRcbiAgZ2V0TWVzc2FnZXM6IChzZXNzaW9uSWQ6IHN0cmluZykgPT4gQ2hhdE1lc3NhZ2VbXVxuICBhZGRNZXNzYWdlOiAoc2Vzc2lvbklkOiBzdHJpbmcsIG1lc3NhZ2U6IENoYXRNZXNzYWdlKSA9PiB2b2lkXG4gIHJlbW92ZU1lc3NhZ2U6IChzZXNzaW9uSWQ6IHN0cmluZywgbWVzc2FnZUlkOiBzdHJpbmcpID0+IHZvaWRcblxuICBnZXRWaWV3Q2FjaGU6IChzZXNzaW9uSWQ6IHN0cmluZykgPT4gU2Vzc2lvblZpZXdDYWNoZSB8IHVuZGVmaW5lZFxuICBzZXRWaWV3Q2FjaGU6IChzZXNzaW9uSWQ6IHN0cmluZywgY2FjaGU6IFNlc3Npb25WaWV3Q2FjaGUpID0+IHZvaWRcbiAgcGF0Y2hWaWV3Q2FjaGU6IChzZXNzaW9uSWQ6IHN0cmluZywgcGF0Y2g6IFBhcnRpYWw8U2Vzc2lvblZpZXdDYWNoZT4pID0+IHZvaWRcbiAgaXNTZXNzaW9uSHlkcmF0ZWQ6IChzZXNzaW9uSWQ6IHN0cmluZykgPT4gYm9vbGVhblxuICBjYW5SZXN0b3JlU2Vzc2lvbjogKHNlc3Npb25JZDogc3RyaW5nKSA9PiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCB1c2VTZXNzaW9uc1N0b3JlID0gY3JlYXRlPFNlc3Npb25zU3RhdGUgJiBTZXNzaW9uc0FjdGlvbnM+KChzZXQsIGdldCkgPT4gKHtcbiAgbWV0YToge30sXG4gIG1lc3NhZ2VzOiB7fSxcbiAgdmlld0NhY2hlOiB7fSxcblxuICBlbnN1cmVTZXNzaW9uOiBzZXNzaW9uSWQgPT4ge1xuICAgIGlmIChnZXQoKS5tZXRhW3Nlc3Npb25JZF0pIHJldHVyblxuICAgIHNldChzdGF0ZSA9PiAoeyBtZXRhOiB7IC4uLnN0YXRlLm1ldGEsIFtzZXNzaW9uSWRdOiBjcmVhdGVJbml0aWFsTWV0YShzZXNzaW9uSWQpIH0gfSkpXG4gIH0sXG5cbiAgZ2V0TWV0YTogc2Vzc2lvbklkID0+IGdldCgpLm1ldGFbc2Vzc2lvbklkXSxcblxuICBwYXRjaE1ldGE6IChzZXNzaW9uSWQsIHBhdGNoKSA9PlxuICAgIHNldChzdGF0ZSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gc3RhdGUubWV0YVtzZXNzaW9uSWRdID8/IGNyZWF0ZUluaXRpYWxNZXRhKHNlc3Npb25JZClcbiAgICAgIHJldHVybiB7IG1ldGE6IHsgLi4uc3RhdGUubWV0YSwgW3Nlc3Npb25JZF06IHsgLi4uY3VycmVudCwgLi4ucGF0Y2ggfSB9IH1cbiAgICB9KSxcblxuICBzZXRTdGF0dXM6IChzZXNzaW9uSWQsIHN0YXR1cykgPT5cbiAgICBzZXQoc3RhdGUgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IHN0YXRlLm1ldGFbc2Vzc2lvbklkXSA/PyBjcmVhdGVJbml0aWFsTWV0YShzZXNzaW9uSWQpXG4gICAgICBjb25zdCBpc1Rlcm1pbmFsID0gc3RhdHVzID09PSAnY29tcGxldGUnIHx8IHN0YXR1cyA9PT0gJ2Vycm9yJyB8fCBzdGF0dXMgPT09ICdjYW5jZWxsZWQnXG4gICAgICByZXR1cm4ge1xuICAgICAgICBtZXRhOiB7XG4gICAgICAgICAgLi4uc3RhdGUubWV0YSxcbiAgICAgICAgICBbc2Vzc2lvbklkXToge1xuICAgICAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgICAgIC4uLihzdGF0dXMgIT09ICdpZGxlJyAmJiBjdXJyZW50LnN0YXJ0ZWRBdCA9PSBudWxsID8geyBzdGFydGVkQXQ6IERhdGUubm93KCkgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihpc1Rlcm1pbmFsID8geyBmaW5pc2hlZEF0OiBEYXRlLm5vdygpIH0gOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9KSxcblxuICBzZXRBY3Rpdml0eTogKHNlc3Npb25JZCwgYWN0aXZpdHksIGxvYWRpbmdNZXNzYWdlKSA9PlxuICAgIHNldChzdGF0ZSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gc3RhdGUubWV0YVtzZXNzaW9uSWRdID8/IGNyZWF0ZUluaXRpYWxNZXRhKHNlc3Npb25JZClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgICAgIFtzZXNzaW9uSWRdOiB7XG4gICAgICAgICAgICAuLi5jdXJyZW50LFxuICAgICAgICAgICAgc3RyZWFtQWN0aXZpdHk6IGFjdGl2aXR5LFxuICAgICAgICAgICAgbG9hZGluZ01lc3NhZ2U6IGxvYWRpbmdNZXNzYWdlICE9PSB1bmRlZmluZWQgPyBsb2FkaW5nTWVzc2FnZSA6IChhY3Rpdml0eT8ubWVzc2FnZSA/PyBudWxsKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0pLFxuXG4gIHNldEVycm9yOiAoc2Vzc2lvbklkLCBlcnJvcikgPT5cbiAgICBzZXQoc3RhdGUgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IHN0YXRlLm1ldGFbc2Vzc2lvbklkXSA/PyBjcmVhdGVJbml0aWFsTWV0YShzZXNzaW9uSWQpXG4gICAgICByZXR1cm4geyBtZXRhOiB7IC4uLnN0YXRlLm1ldGEsIFtzZXNzaW9uSWRdOiB7IC4uLmN1cnJlbnQsIGVycm9yIH0gfSB9XG4gICAgfSksXG5cbiAgZ2V0QWN0aXZlU2Vzc2lvbklkczogKCkgPT5cbiAgICBPYmplY3QudmFsdWVzKGdldCgpLm1ldGEpXG4gICAgICAuZmlsdGVyKG1ldGEgPT4gaXNBY3RpdmVTZXNzaW9uU3RhdHVzKG1ldGEuc3RhdHVzKSlcbiAgICAgIC5tYXAobWV0YSA9PiBtZXRhLnNlc3Npb25JZCksXG5cbiAgZ2V0QWN0aXZlQ291bnQ6ICgpID0+IE9iamVjdC52YWx1ZXMoZ2V0KCkubWV0YSkuZmlsdGVyKG1ldGEgPT4gaXNBY3RpdmVTZXNzaW9uU3RhdHVzKG1ldGEuc3RhdHVzKSkubGVuZ3RoLFxuXG4gIHJlbW92ZVNlc3Npb246IHNlc3Npb25JZCA9PiB7XG4gICAgc2V0KHN0YXRlID0+IHtcbiAgICAgIGNvbnN0IG5leHRNZXRhID0geyAuLi5zdGF0ZS5tZXRhIH1cbiAgICAgIGNvbnN0IG5leHRNZXNzYWdlcyA9IHsgLi4uc3RhdGUubWVzc2FnZXMgfVxuICAgICAgY29uc3QgbmV4dFZpZXdDYWNoZSA9IHsgLi4uc3RhdGUudmlld0NhY2hlIH1cbiAgICAgIGRlbGV0ZSBuZXh0TWV0YVtzZXNzaW9uSWRdXG4gICAgICBkZWxldGUgbmV4dE1lc3NhZ2VzW3Nlc3Npb25JZF1cbiAgICAgIGRlbGV0ZSBuZXh0Vmlld0NhY2hlW3Nlc3Npb25JZF1cbiAgICAgIHJldHVybiB7IG1ldGE6IG5leHRNZXRhLCBtZXNzYWdlczogbmV4dE1lc3NhZ2VzLCB2aWV3Q2FjaGU6IG5leHRWaWV3Q2FjaGUgfVxuICAgIH0pXG4gIH0sXG5cbiAgcmVzZXRBbGw6ICgpID0+IHNldCh7IG1ldGE6IHt9LCBtZXNzYWdlczoge30sIHZpZXdDYWNoZToge30gfSksXG5cbiAgc2V0TWVzc2FnZXM6IChzZXNzaW9uSWQsIG1lc3NhZ2VzKSA9PiBzZXQoc3RhdGUgPT4gKHsgbWVzc2FnZXM6IHsgLi4uc3RhdGUubWVzc2FnZXMsIFtzZXNzaW9uSWRdOiBtZXNzYWdlcyB9IH0pKSxcblxuICBnZXRNZXNzYWdlczogc2Vzc2lvbklkID0+IGdldCgpLm1lc3NhZ2VzW3Nlc3Npb25JZF0gPz8gW10sXG5cbiAgYWRkTWVzc2FnZTogKHNlc3Npb25JZCwgbWVzc2FnZSkgPT5cbiAgICBzZXQoc3RhdGUgPT4ge1xuICAgICAgY29uc3QgcHJldiA9IHN0YXRlLm1lc3NhZ2VzW3Nlc3Npb25JZF0gPz8gW11cbiAgICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBwcmV2LmZpbmRJbmRleChtc2cgPT4gbXNnLmlkID09PSBtZXNzYWdlLmlkKVxuICAgICAgaWYgKGV4aXN0aW5nSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXh0ID0gWy4uLnByZXZdXG4gICAgICAgIG5leHRbZXhpc3RpbmdJbmRleF0gPSBtZXNzYWdlXG4gICAgICAgIHJldHVybiB7IG1lc3NhZ2VzOiB7IC4uLnN0YXRlLm1lc3NhZ2VzLCBbc2Vzc2lvbklkXTogbmV4dCB9IH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IG1lc3NhZ2VzOiB7IC4uLnN0YXRlLm1lc3NhZ2VzLCBbc2Vzc2lvbklkXTogWy4uLnByZXYsIG1lc3NhZ2VdIH0gfVxuICAgIH0pLFxuXG4gIHJlbW92ZU1lc3NhZ2U6IChzZXNzaW9uSWQsIG1lc3NhZ2VJZCkgPT5cbiAgICBzZXQoc3RhdGUgPT4ge1xuICAgICAgY29uc3QgcHJldiA9IHN0YXRlLm1lc3NhZ2VzW3Nlc3Npb25JZF1cbiAgICAgIGlmICghcHJldikgcmV0dXJuIHt9XG4gICAgICByZXR1cm4geyBtZXNzYWdlczogeyAuLi5zdGF0ZS5tZXNzYWdlcywgW3Nlc3Npb25JZF06IHByZXYuZmlsdGVyKG1zZyA9PiBtc2cuaWQgIT09IG1lc3NhZ2VJZCkgfSB9XG4gICAgfSksXG5cbiAgZ2V0Vmlld0NhY2hlOiBzZXNzaW9uSWQgPT4gZ2V0KCkudmlld0NhY2hlW3Nlc3Npb25JZF0sXG5cbiAgc2V0Vmlld0NhY2hlOiAoc2Vzc2lvbklkLCBjYWNoZSkgPT4gc2V0KHN0YXRlID0+ICh7IHZpZXdDYWNoZTogeyAuLi5zdGF0ZS52aWV3Q2FjaGUsIFtzZXNzaW9uSWRdOiBjYWNoZSB9IH0pKSxcblxuICBwYXRjaFZpZXdDYWNoZTogKHNlc3Npb25JZCwgcGF0Y2gpID0+XG4gICAgc2V0KHN0YXRlID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBzdGF0ZS52aWV3Q2FjaGVbc2Vzc2lvbklkXSA/PyB7XG4gICAgICAgIGh5ZHJhdGVkRnJvbUFwaTogdHJ1ZSxcbiAgICAgICAgbGFzdEV2YWx1YXRlZEtleTogMCxcbiAgICAgICAgY29udmVyc2F0aW9uTWV0YTogbnVsbCxcbiAgICAgICAgc2Vzc2lvbk1ldGFFdmVudDogbnVsbCxcbiAgICAgICAgYWdlbnRTbmFwc2hvdDogbnVsbCxcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHZpZXdDYWNoZTogeyAuLi5zdGF0ZS52aWV3Q2FjaGUsIFtzZXNzaW9uSWRdOiB7IC4uLmN1cnJlbnQsIC4uLnBhdGNoIH0gfSB9XG4gICAgfSksXG5cbiAgaXNTZXNzaW9uSHlkcmF0ZWQ6IHNlc3Npb25JZCA9PiBnZXQoKS52aWV3Q2FjaGVbc2Vzc2lvbklkXT8uaHlkcmF0ZWRGcm9tQXBpID09PSB0cnVlLFxuXG4gIGNhblJlc3RvcmVTZXNzaW9uOiBzZXNzaW9uSWQgPT4ge1xuICAgIGNvbnN0IGNhY2hlID0gZ2V0KCkudmlld0NhY2hlW3Nlc3Npb25JZF1cbiAgICByZXR1cm4gY2FjaGU/Lmh5ZHJhdGVkRnJvbUFwaSA9PT0gdHJ1ZSAmJiAoZ2V0KCkubWVzc2FnZXNbc2Vzc2lvbklkXT8ubGVuZ3RoID8/IDApID4gMFxuICB9LFxufSkpXG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLFNBQVNBLE1BQU0sUUFBUSxTQUFTO0FBV2hDLFNBQVNDLHFCQUFxQixRQUFRLGtCQUFrQjtBQUV4RCxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJQyxTQUFpQjtFQUFBLE9BQTBCO0lBQ3BFQSxTQUFTLEVBQVRBLFNBQVM7SUFDVEMsTUFBTSxFQUFFLE1BQU07SUFDZEMsU0FBUyxFQUFFLEtBQUs7SUFDaEJDLFNBQVMsRUFBRSxLQUFLO0lBQ2hCQyxjQUFj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