@projectcor/maia-components 2.29.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
package/lib/App.js ADDED
@@ -0,0 +1,55 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ /* eslint-disable react/button-has-type */
3
+ import { useState } from 'react';
4
+ import { DevChatAI } from './dev/DevChatAI';
5
+ import { DevProjectSummary } from './dev/ProjectSummary';
6
+ import { DevContextMentionInput } from './dev/DevContextMentionInput';
7
+ import { Providers } from './dev/Providers';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ var PAGES = {
10
+ 'Resumen de proyectos': DevProjectSummary,
11
+ 'Chat Agente PM': DevChatAI,
12
+ 'Context Mention Input': DevContextMentionInput
13
+ };
14
+ function App() {
15
+ var _useState = useState('Context Mention Input'),
16
+ _useState2 = _slicedToArray(_useState, 2),
17
+ page = _useState2[0],
18
+ setPage = _useState2[1];
19
+ var Component = PAGES[page];
20
+ var pages = Object.keys(PAGES);
21
+ return /*#__PURE__*/_jsxs(Providers, {
22
+ children: [/*#__PURE__*/_jsx("div", {
23
+ style: {
24
+ display: 'flex',
25
+ gap: 8,
26
+ padding: 8
27
+ },
28
+ children: pages.map(function (p) {
29
+ return /*#__PURE__*/_jsx("button", {
30
+ onClick: function onClick() {
31
+ return setPage(p);
32
+ },
33
+ style: {
34
+ fontWeight: page === p ? 700 : 400
35
+ },
36
+ children: p
37
+ }, p);
38
+ })
39
+ }), /*#__PURE__*/_jsx("div", {
40
+ id: "modals-portal-maia-chat-agent"
41
+ }), /*#__PURE__*/_jsx("div", {
42
+ id: "abm-agent-modal"
43
+ }), /*#__PURE__*/_jsx("div", {
44
+ id: "snackbar-portal-maia-chat-agent"
45
+ }), /*#__PURE__*/_jsx("div", {
46
+ id: "emoji-picker-container"
47
+ }), /*#__PURE__*/_jsx("div", {
48
+ id: "emoji-picker-container-maia-chat-agent"
49
+ }), /*#__PURE__*/_jsx("div", {
50
+ id: "modal-portal-video-onboarding"
51
+ }), /*#__PURE__*/_jsx(Component, {})]
52
+ });
53
+ }
54
+ export default App;
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkRldkNoYXRBSSIsIkRldlByb2plY3RTdW1tYXJ5IiwiRGV2Q29udGV4dE1lbnRpb25JbnB1dCIsIlByb3ZpZGVycyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJQQUdFUyIsIkFwcCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBhZ2UiLCJzZXRQYWdlIiwiQ29tcG9uZW50IiwicGFnZXMiLCJPYmplY3QiLCJrZXlzIiwiY2hpbGRyZW4iLCJzdHlsZSIsImRpc3BsYXkiLCJnYXAiLCJwYWRkaW5nIiwibWFwIiwicCIsIm9uQ2xpY2siLCJmb250V2VpZ2h0IiwiaWQiXSwic291cmNlcyI6WyIuLi9zcmMvQXBwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9idXR0b24taGFzLXR5cGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IERldkNoYXRBSSB9IGZyb20gJy4vZGV2L0RldkNoYXRBSSdcbmltcG9ydCB7IERldlByb2plY3RTdW1tYXJ5IH0gZnJvbSAnLi9kZXYvUHJvamVjdFN1bW1hcnknXG5pbXBvcnQgeyBEZXZDb250ZXh0TWVudGlvbklucHV0IH0gZnJvbSAnLi9kZXYvRGV2Q29udGV4dE1lbnRpb25JbnB1dCdcbmltcG9ydCB7IFByb3ZpZGVycyB9IGZyb20gJy4vZGV2L1Byb3ZpZGVycydcblxuY29uc3QgUEFHRVMgPSB7XG4gICdSZXN1bWVuIGRlIHByb3llY3Rvcyc6IERldlByb2plY3RTdW1tYXJ5LFxuICAnQ2hhdCBBZ2VudGUgUE0nOiBEZXZDaGF0QUksXG4gICdDb250ZXh0IE1lbnRpb24gSW5wdXQnOiBEZXZDb250ZXh0TWVudGlvbklucHV0LFxufVxuXG50eXBlIFBhZ2UgPSBrZXlvZiB0eXBlb2YgUEFHRVNcblxuZnVuY3Rpb24gQXBwKCkge1xuICBjb25zdCBbcGFnZSwgc2V0UGFnZV0gPSB1c2VTdGF0ZTxQYWdlPignQ29udGV4dCBNZW50aW9uIElucHV0JylcbiAgY29uc3QgQ29tcG9uZW50ID0gUEFHRVNbcGFnZV1cbiAgY29uc3QgcGFnZXMgPSBPYmplY3Qua2V5cyhQQUdFUykgYXMgUGFnZVtdXG5cbiAgcmV0dXJuIChcbiAgICA8UHJvdmlkZXJzPlxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogOCwgcGFkZGluZzogOCB9fT5cbiAgICAgICAge3BhZ2VzLm1hcChwID0+IChcbiAgICAgICAgICA8YnV0dG9uIGtleT17cH0gb25DbGljaz17KCkgPT4gc2V0UGFnZShwKX0gc3R5bGU9e3sgZm9udFdlaWdodDogcGFnZSA9PT0gcCA/IDcwMCA6IDQwMCB9fT5cbiAgICAgICAgICAgIHtwfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBpZD1cIm1vZGFscy1wb3J0YWwtbWFpYS1jaGF0LWFnZW50XCIgLz5cbiAgICAgIDxkaXYgaWQ9XCJhYm0tYWdlbnQtbW9kYWxcIiAvPlxuICAgICAgPGRpdiBpZD1cInNuYWNrYmFyLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnRcIiAvPlxuICAgICAgPGRpdiBpZD1cImVtb2ppLXBpY2tlci1jb250YWluZXJcIiAvPlxuICAgICAgPGRpdiBpZD1cImVtb2ppLXBpY2tlci1jb250YWluZXItbWFpYS1jaGF0LWFnZW50XCIgLz5cbiAgICAgIDxkaXYgaWQ9XCJtb2RhbC1wb3J0YWwtdmlkZW8tb25ib2FyZGluZ1wiIC8+XG4gICAgICA8Q29tcG9uZW50IC8+XG4gICAgPC9Qcm92aWRlcnM+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgQXBwXG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBLFNBQVNBLFFBQVEsUUFBUSxPQUFPO0FBRWhDLFNBQVNDLFNBQVMsUUFBUSxpQkFBaUI7QUFDM0MsU0FBU0MsaUJBQWlCLFFBQVEsc0JBQXNCO0FBQ3hELFNBQVNDLHNCQUFzQixRQUFRLDhCQUE4QjtBQUNyRSxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUUzQyxJQUFNQyxLQUFLLEdBQUc7RUFDWixzQkFBc0IsRUFBRVAsaUJBQWlCO0VBQ3pDLGdCQUFnQixFQUFFRCxTQUFTO0VBQzNCLHVCQUF1QixFQUFFRTtBQUMzQixDQUFDO0FBSUQsU0FBU08sR0FBR0EsQ0FBQSxFQUFHO0VBQ2IsSUFBQUMsU0FBQSxHQUF3QlgsUUFBUSxDQUFPLHVCQUF1QixDQUFDO0lBQUFZLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQXhERyxJQUFJLEdBQUFGLFVBQUE7SUFBRUcsT0FBTyxHQUFBSCxVQUFBO0VBQ3BCLElBQU1JLFNBQVMsR0FBR1AsS0FBSyxDQUFDSyxJQUFJLENBQUM7RUFDN0IsSUFBTUcsS0FBSyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQ1YsS0FBSyxDQUFXO0VBRTFDLG9CQUNFRCxLQUFBLENBQUNKLFNBQVM7SUFBQWdCLFFBQUEsZ0JBQ1JkLElBQUE7TUFBS2UsS0FBSyxFQUFFO1FBQUVDLE9BQU8sRUFBRSxNQUFNO1FBQUVDLEdBQUcsRUFBRSxDQUFDO1FBQUVDLE9BQU8sRUFBRTtNQUFFLENBQUU7TUFBQUosUUFBQSxFQUNqREgsS0FBSyxDQUFDUSxHQUFHLENBQUMsVUFBQUMsQ0FBQztRQUFBLG9CQUNWcEIsSUFBQTtVQUFnQnFCLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1lBQUEsT0FBUVosT0FBTyxDQUFDVyxDQUFDLENBQUM7VUFBQSxDQUFDO1VBQUNMLEtBQUssRUFBRTtZQUFFTyxVQUFVLEVBQUVkLElBQUksS0FBS1ksQ0FBQyxHQUFHLEdBQUcsR0FBRztVQUFJLENBQUU7VUFBQU4sUUFBQSxFQUN0Rk07UUFBQyxHQURTQSxDQUVMLENBQUM7TUFBQSxDQUNWO0lBQUMsQ0FDQyxDQUFDLGVBQ05wQixJQUFBO01BQUt1QixFQUFFLEVBQUM7SUFBK0IsQ0FBRSxDQUFDLGVBQzFDdkIsSUFBQTtNQUFLdUIsRUFBRSxFQUFDO0lBQWlCLENBQUUsQ0FBQyxlQUM1QnZCLElBQUE7TUFBS3VCLEVBQUUsRUFBQztJQUFpQyxDQUFFLENBQUMsZUFDNUN2QixJQUFBO01BQUt1QixFQUFFLEVBQUM7SUFBd0IsQ0FBRSxDQUFDLGVBQ25DdkIsSUFBQTtNQUFLdUIsRUFBRSxFQUFDO0lBQXdDLENBQUUsQ0FBQyxlQUNuRHZCLElBQUE7TUFBS3VCLEVBQUUsRUFBQztJQUErQixDQUFFLENBQUMsZUFDMUN2QixJQUFBLENBQUNVLFNBQVMsSUFBRSxDQUFDO0VBQUEsQ0FDSixDQUFDO0FBRWhCO0FBRUEsZUFBZU4sR0FBRyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,60 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ import { useState } from 'react';
5
+ import { Check } from '@projectcor/icons/lib/components/Check';
6
+ import { IconButton } from './IconButton';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export var ActionableButton = function ActionableButton(_ref) {
9
+ var handleClick = _ref.handleClick,
10
+ tooltip = _ref.tooltip,
11
+ defaultIcon = _ref.defaultIcon,
12
+ checkTooltip = _ref.checkTooltip,
13
+ disabled = _ref.disabled;
14
+ var _useState = useState(false),
15
+ _useState2 = _slicedToArray(_useState, 2),
16
+ showCheck = _useState2[0],
17
+ setShowCheck = _useState2[1];
18
+ var handleAction = /*#__PURE__*/function () {
19
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
20
+ var _t;
21
+ return _regeneratorRuntime.wrap(function (_context) {
22
+ while (1) switch (_context.prev = _context.next) {
23
+ case 0:
24
+ _context.prev = 0;
25
+ if (!disabled) {
26
+ _context.next = 1;
27
+ break;
28
+ }
29
+ return _context.abrupt("return");
30
+ case 1:
31
+ _context.next = 2;
32
+ return handleClick();
33
+ case 2:
34
+ setShowCheck(true);
35
+ setTimeout(function () {
36
+ setShowCheck(false);
37
+ }, 2000);
38
+ _context.next = 4;
39
+ break;
40
+ case 3:
41
+ _context.prev = 3;
42
+ _t = _context["catch"](0);
43
+ console.error('Failed to perform action: ', _t);
44
+ case 4:
45
+ case "end":
46
+ return _context.stop();
47
+ }
48
+ }, _callee, null, [[0, 3]]);
49
+ }));
50
+ return function handleAction() {
51
+ return _ref2.apply(this, arguments);
52
+ };
53
+ }();
54
+ return /*#__PURE__*/_jsx(IconButton, {
55
+ handleClick: handleAction,
56
+ tooltip: showCheck ? checkTooltip : tooltip,
57
+ children: showCheck ? /*#__PURE__*/_jsx(Check, {}) : defaultIcon
58
+ });
59
+ };
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkNoZWNrIiwiSWNvbkJ1dHRvbiIsImpzeCIsIl9qc3giLCJBY3Rpb25hYmxlQnV0dG9uIiwiX3JlZiIsImhhbmRsZUNsaWNrIiwidG9vbHRpcCIsImRlZmF1bHRJY29uIiwiY2hlY2tUb29sdGlwIiwiZGlzYWJsZWQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93Q2hlY2siLCJzZXRTaG93Q2hlY2siLCJoYW5kbGVBY3Rpb24iLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImFicnVwdCIsInNldFRpbWVvdXQiLCJjb25zb2xlIiwiZXJyb3IiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJjaGlsZHJlbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FjdGlvbmFibGVCdXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZWNrIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hlY2snXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi9JY29uQnV0dG9uJ1xuXG5pbnRlcmZhY2UgQWN0aW9uYWJsZUJ1dHRvblByb3BzIHtcbiAgaGFuZGxlQ2xpY2s6ICgpID0+IHZvaWRcbiAgdG9vbHRpcDogc3RyaW5nXG4gIGNoZWNrVG9vbHRpcDogc3RyaW5nXG4gIGRlZmF1bHRJY29uOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBBY3Rpb25hYmxlQnV0dG9uID0gKHtcbiAgaGFuZGxlQ2xpY2ssXG4gIHRvb2x0aXAsXG4gIGRlZmF1bHRJY29uLFxuICBjaGVja1Rvb2x0aXAsXG4gIGRpc2FibGVkLFxufTogQWN0aW9uYWJsZUJ1dHRvblByb3BzKSA9PiB7XG4gIGNvbnN0IFtzaG93Q2hlY2ssIHNldFNob3dDaGVja10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBoYW5kbGVBY3Rpb24gPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuXG4gICAgICBhd2FpdCBoYW5kbGVDbGljaygpXG4gICAgICBzZXRTaG93Q2hlY2sodHJ1ZSlcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZXRTaG93Q2hlY2soZmFsc2UpXG4gICAgICB9LCAyMDAwKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBlcmZvcm0gYWN0aW9uOiAnLCBlcnIpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SWNvbkJ1dHRvbiBoYW5kbGVDbGljaz17aGFuZGxlQWN0aW9ufSB0b29sdGlwPXtzaG93Q2hlY2sgPyBjaGVja1Rvb2x0aXAgOiB0b29sdGlwfT5cbiAgICAgIHtzaG93Q2hlY2sgPyA8Q2hlY2sgLz4gOiBkZWZhdWx0SWNvbn1cbiAgICA8L0ljb25CdXR0b24+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBb0JBLFFBQVEsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsVUFBVSxRQUFRLGNBQWM7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFVekMsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBQyxJQUFBLEVBTUE7RUFBQSxJQUwzQkMsV0FBVyxHQUFBRCxJQUFBLENBQVhDLFdBQVc7SUFDWEMsT0FBTyxHQUFBRixJQUFBLENBQVBFLE9BQU87SUFDUEMsV0FBVyxHQUFBSCxJQUFBLENBQVhHLFdBQVc7SUFDWEMsWUFBWSxHQUFBSixJQUFBLENBQVpJLFlBQVk7SUFDWkMsUUFBUSxHQUFBTCxJQUFBLENBQVJLLFFBQVE7RUFFUixJQUFBQyxTQUFBLEdBQWtDWixRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFhLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQTFDRyxTQUFTLEdBQUFGLFVBQUE7SUFBRUcsWUFBWSxHQUFBSCxVQUFBO0VBRTlCLElBQU1JLFlBQVk7SUFBQSxJQUFBQyxLQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFBO01BQUEsSUFBQUMsRUFBQTtNQUFBLE9BQUFILG1CQUFBLENBQUFJLElBQUEsV0FBQUMsUUFBQTtRQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1VBQUE7WUFBQUYsUUFBQSxDQUFBQyxJQUFBO1lBQUEsS0FFYmYsUUFBUTtjQUFBYyxRQUFBLENBQUFFLElBQUE7Y0FBQTtZQUFBO1lBQUEsT0FBQUYsUUFBQSxDQUFBRyxNQUFBO1VBQUE7WUFBQUgsUUFBQSxDQUFBRSxJQUFBO1lBQUEsT0FDTnBCLFdBQVcsQ0FBQyxDQUFDO1VBQUE7WUFDbkJTLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDbEJhLFVBQVUsQ0FBQyxZQUFNO2NBQ2ZiLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDckIsQ0FBQyxFQUFFLElBQUksQ0FBQztZQUFBUyxRQUFBLENBQUFFLElBQUE7WUFBQTtVQUFBO1lBQUFGLFFBQUEsQ0FBQUMsSUFBQTtZQUFBSCxFQUFBLEdBQUFFLFFBQUE7WUFFUkssT0FBTyxDQUFDQyxLQUFLLENBQUMsNEJBQTRCLEVBQUFSLEVBQUssQ0FBQztVQUFBO1VBQUE7WUFBQSxPQUFBRSxRQUFBLENBQUFPLElBQUE7UUFBQTtNQUFBLEdBQUFWLE9BQUE7SUFBQSxDQUVuRDtJQUFBLGdCQVhLTCxZQUFZQSxDQUFBO01BQUEsT0FBQUMsS0FBQSxDQUFBZSxLQUFBLE9BQUFDLFNBQUE7SUFBQTtFQUFBLEdBV2pCO0VBRUQsb0JBQ0U5QixJQUFBLENBQUNGLFVBQVU7SUFBQ0ssV0FBVyxFQUFFVSxZQUFhO0lBQUNULE9BQU8sRUFBRU8sU0FBUyxHQUFHTCxZQUFZLEdBQUdGLE9BQVE7SUFBQTJCLFFBQUEsRUFDaEZwQixTQUFTLGdCQUFHWCxJQUFBLENBQUNILEtBQUssSUFBRSxDQUFDLEdBQUdRO0VBQVcsQ0FDMUIsQ0FBQztBQUVqQixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,89 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import React, { useEffect, useRef, useState } from 'react';
3
+ import { Loader } from '../Loader';
4
+ import { SCAgentActivityIndicator, SCStreamPendingSkeleton } from './AgentActivityIndicator.styles';
5
+ import { formatActivityElapsed } from './AgentActivityIndicator.utils';
6
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
7
+ export var AgentActivityIndicator = function AgentActivityIndicator(_ref) {
8
+ var activity = _ref.activity,
9
+ _ref$compact = _ref.compact,
10
+ compact = _ref$compact === void 0 ? false : _ref$compact,
11
+ className = _ref.className;
12
+ var _useState = useState(false),
13
+ _useState2 = _slicedToArray(_useState, 2),
14
+ isChanging = _useState2[0],
15
+ setIsChanging = _useState2[1];
16
+ var _useState3 = useState(0),
17
+ _useState4 = _slicedToArray(_useState3, 2),
18
+ elapsedSeconds = _useState4[0],
19
+ setElapsedSeconds = _useState4[1];
20
+ var prevMessageRef = useRef(activity.message);
21
+ useEffect(function () {
22
+ setElapsedSeconds(0);
23
+ var intervalId = window.setInterval(function () {
24
+ setElapsedSeconds(function (prev) {
25
+ return prev + 1;
26
+ });
27
+ }, 1000);
28
+ return function () {
29
+ return window.clearInterval(intervalId);
30
+ };
31
+ }, [activity.phase]);
32
+ useEffect(function () {
33
+ var timeoutId;
34
+ if (prevMessageRef.current !== activity.message) {
35
+ prevMessageRef.current = activity.message;
36
+ setIsChanging(true);
37
+ timeoutId = window.setTimeout(function () {
38
+ return setIsChanging(false);
39
+ }, 220);
40
+ }
41
+ return function () {
42
+ if (timeoutId != null) {
43
+ window.clearTimeout(timeoutId);
44
+ }
45
+ };
46
+ }, [activity.message]);
47
+ var elapsedLabel = formatActivityElapsed(elapsedSeconds);
48
+ return /*#__PURE__*/_jsxs(SCAgentActivityIndicator, {
49
+ $compact: compact,
50
+ className: className,
51
+ role: "status",
52
+ "aria-live": "polite",
53
+ "aria-label": "".concat(activity.message, " (").concat(elapsedLabel, ")"),
54
+ children: [/*#__PURE__*/_jsx(Loader, {
55
+ size: "small",
56
+ className: "AgentActivityIndicator-loader"
57
+ }), /*#__PURE__*/_jsxs("p", {
58
+ className: "AgentActivityIndicator-text",
59
+ "data-changing": isChanging ? 'true' : undefined,
60
+ children: [/*#__PURE__*/_jsx("span", {
61
+ className: "AgentActivityIndicator-label",
62
+ children: activity.message
63
+ }), elapsedSeconds >= 3 && /*#__PURE__*/_jsxs(_Fragment, {
64
+ children: [/*#__PURE__*/_jsx("span", {
65
+ className: "AgentActivityIndicator-separator",
66
+ "aria-hidden": true,
67
+ children: "\xB7"
68
+ }), /*#__PURE__*/_jsx("span", {
69
+ className: "AgentActivityIndicator-timer",
70
+ "aria-hidden": true,
71
+ children: elapsedLabel
72
+ })]
73
+ })]
74
+ })]
75
+ });
76
+ };
77
+ export var StreamPendingSkeleton = function StreamPendingSkeleton() {
78
+ return /*#__PURE__*/_jsxs(SCStreamPendingSkeleton, {
79
+ "aria-hidden": true,
80
+ children: [/*#__PURE__*/_jsx("span", {
81
+ className: "StreamPendingSkeleton-line"
82
+ }), /*#__PURE__*/_jsx("span", {
83
+ className: "StreamPendingSkeleton-line"
84
+ }), /*#__PURE__*/_jsx("span", {
85
+ className: "StreamPendingSkeleton-line"
86
+ })]
87
+ });
88
+ };
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiTG9hZGVyIiwiU0NBZ2VudEFjdGl2aXR5SW5kaWNhdG9yIiwiU0NTdHJlYW1QZW5kaW5nU2tlbGV0b24iLCJmb3JtYXRBY3Rpdml0eUVsYXBzZWQiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJBZ2VudEFjdGl2aXR5SW5kaWNhdG9yIiwiX3JlZiIsImFjdGl2aXR5IiwiX3JlZiRjb21wYWN0IiwiY29tcGFjdCIsImNsYXNzTmFtZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzQ2hhbmdpbmciLCJzZXRJc0NoYW5naW5nIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJlbGFwc2VkU2Vjb25kcyIsInNldEVsYXBzZWRTZWNvbmRzIiwicHJldk1lc3NhZ2VSZWYiLCJtZXNzYWdlIiwiaW50ZXJ2YWxJZCIsIndpbmRvdyIsInNldEludGVydmFsIiwicHJldiIsImNsZWFySW50ZXJ2YWwiLCJwaGFzZSIsInRpbWVvdXRJZCIsImN1cnJlbnQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiZWxhcHNlZExhYmVsIiwiJGNvbXBhY3QiLCJyb2xlIiwiY29uY2F0IiwiY2hpbGRyZW4iLCJzaXplIiwidW5kZWZpbmVkIiwiU3RyZWFtUGVuZGluZ1NrZWxldG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQWdlbnRBY3Rpdml0eUluZGljYXRvci9BZ2VudEFjdGl2aXR5SW5kaWNhdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi9Mb2FkZXInXG5pbXBvcnQgdHlwZSB7IFN0cmVhbUFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5pbXBvcnQgeyBTQ0FnZW50QWN0aXZpdHlJbmRpY2F0b3IsIFNDU3RyZWFtUGVuZGluZ1NrZWxldG9uIH0gZnJvbSAnLi9BZ2VudEFjdGl2aXR5SW5kaWNhdG9yLnN0eWxlcydcbmltcG9ydCB7IGZvcm1hdEFjdGl2aXR5RWxhcHNlZCB9IGZyb20gJy4vQWdlbnRBY3Rpdml0eUluZGljYXRvci51dGlscydcblxuZXhwb3J0IGludGVyZmFjZSBBZ2VudEFjdGl2aXR5SW5kaWNhdG9yUHJvcHMge1xuICBhY3Rpdml0eTogU3RyZWFtQWN0aXZpdHlcbiAgY29tcGFjdD86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBBZ2VudEFjdGl2aXR5SW5kaWNhdG9yID0gKHsgYWN0aXZpdHksIGNvbXBhY3QgPSBmYWxzZSwgY2xhc3NOYW1lIH06IEFnZW50QWN0aXZpdHlJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCBbaXNDaGFuZ2luZywgc2V0SXNDaGFuZ2luZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2VsYXBzZWRTZWNvbmRzLCBzZXRFbGFwc2VkU2Vjb25kc10gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBwcmV2TWVzc2FnZVJlZiA9IHVzZVJlZihhY3Rpdml0eS5tZXNzYWdlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0RWxhcHNlZFNlY29uZHMoMClcbiAgICBjb25zdCBpbnRlcnZhbElkID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHNldEVsYXBzZWRTZWNvbmRzKHByZXYgPT4gcHJldiArIDEpXG4gICAgfSwgMTAwMClcblxuICAgIHJldHVybiAoKSA9PiB3aW5kb3cuY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKVxuICB9LCBbYWN0aXZpdHkucGhhc2VdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHRpbWVvdXRJZDogbnVtYmVyIHwgdW5kZWZpbmVkXG5cbiAgICBpZiAocHJldk1lc3NhZ2VSZWYuY3VycmVudCAhPT0gYWN0aXZpdHkubWVzc2FnZSkge1xuICAgICAgcHJldk1lc3NhZ2VSZWYuY3VycmVudCA9IGFjdGl2aXR5Lm1lc3NhZ2VcbiAgICAgIHNldElzQ2hhbmdpbmcodHJ1ZSlcbiAgICAgIHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHNldElzQ2hhbmdpbmcoZmFsc2UpLCAyMjApXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICh0aW1lb3V0SWQgIT0gbnVsbCkge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRJZClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFthY3Rpdml0eS5tZXNzYWdlXSlcblxuICBjb25zdCBlbGFwc2VkTGFiZWwgPSBmb3JtYXRBY3Rpdml0eUVsYXBzZWQoZWxhcHNlZFNlY29uZHMpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NBZ2VudEFjdGl2aXR5SW5kaWNhdG9yXG4gICAgICAkY29tcGFjdD17Y29tcGFjdH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgYXJpYS1sYWJlbD17YCR7YWN0aXZpdHkubWVzc2FnZX0gKCR7ZWxhcHNlZExhYmVsfSlgfVxuICAgID5cbiAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwiQWdlbnRBY3Rpdml0eUluZGljYXRvci1sb2FkZXJcIiAvPlxuICAgICAgPHAgY2xhc3NOYW1lPVwiQWdlbnRBY3Rpdml0eUluZGljYXRvci10ZXh0XCIgZGF0YS1jaGFuZ2luZz17aXNDaGFuZ2luZyA/ICd0cnVlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIkFnZW50QWN0aXZpdHlJbmRpY2F0b3ItbGFiZWxcIj57YWN0aXZpdHkubWVzc2FnZX08L3NwYW4+XG4gICAgICAgIHtlbGFwc2VkU2Vjb25kcyA+PSAzICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiQWdlbnRBY3Rpdml0eUluZGljYXRvci1zZXBhcmF0b3JcIiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICAgICAgwrdcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIkFnZW50QWN0aXZpdHlJbmRpY2F0b3ItdGltZXJcIiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICAgICAge2VsYXBzZWRMYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvcD5cbiAgICA8L1NDQWdlbnRBY3Rpdml0eUluZGljYXRvcj5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgU3RyZWFtUGVuZGluZ1NrZWxldG9uID0gKCkgPT4gKFxuICA8U0NTdHJlYW1QZW5kaW5nU2tlbGV0b24gYXJpYS1oaWRkZW4+XG4gICAgPHNwYW4gY2xhc3NOYW1lPVwiU3RyZWFtUGVuZGluZ1NrZWxldG9uLWxpbmVcIiAvPlxuICAgIDxzcGFuIGNsYXNzTmFtZT1cIlN0cmVhbVBlbmRpbmdTa2VsZXRvbi1saW5lXCIgLz5cbiAgICA8c3BhbiBjbGFzc05hbWU9XCJTdHJlYW1QZW5kaW5nU2tlbGV0b24tbGluZVwiIC8+XG4gIDwvU0NTdHJlYW1QZW5kaW5nU2tlbGV0b24+XG4pXG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUMxRCxTQUFTQyxNQUFNLFFBQVEsV0FBVztBQUVsQyxTQUFTQyx3QkFBd0IsRUFBRUMsdUJBQXVCLFFBQVEsaUNBQWlDO0FBQ25HLFNBQVNDLHFCQUFxQixRQUFRLGdDQUFnQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxRQUFBLElBQUFDLFNBQUEsRUFBQUMsSUFBQSxJ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
@@ -0,0 +1,21 @@
1
+ import styled, { keyframes } from 'styled-components';
2
+ import colors from '@projectcor/theme/lib/base/colors';
3
+ var shimmer = keyframes(["0%{background-position:200% 0;}100%{background-position:-200% 0;}"]);
4
+ export var SCAgentActivityIndicator = styled.div.withConfig({
5
+ displayName: "AgentActivityIndicatorstyles__SCAgentActivityIndicator",
6
+ componentId: "sc-d7fode-0"
7
+ })(["width:100%;display:flex;gap:10px;align-items:center;padding:", ";max-width:600px;.AgentActivityIndicator-text{margin:0;display:flex;align-items:baseline;gap:6px;min-width:0;font-size:", ";line-height:140%;color:", ";transition:opacity 0.25s ease;}.AgentActivityIndicator-text[data-changing='true']{opacity:0.55;}.AgentActivityIndicator-label{min-width:0;}.AgentActivityIndicator-separator{flex-shrink:0;color:", ";opacity:0.72;}.AgentActivityIndicator-timer{flex-shrink:0;font-size:", ";font-variant-numeric:tabular-nums;color:", ";opacity:0.72;letter-spacing:0.02em;}.AgentActivityIndicator-loader{width:min-content;flex-shrink:0;}"], function (_ref) {
8
+ var $compact = _ref.$compact;
9
+ return $compact ? '0 0 10px' : '0 0 16px';
10
+ }, function (_ref2) {
11
+ var $compact = _ref2.$compact;
12
+ return $compact ? '13px' : '12px';
13
+ }, colors.text.mediumGray, colors.text.mediumGray, function (_ref3) {
14
+ var $compact = _ref3.$compact;
15
+ return $compact ? '12px' : '11px';
16
+ }, colors.text.mediumGray);
17
+ export var SCStreamPendingSkeleton = styled.div.withConfig({
18
+ displayName: "AgentActivityIndicatorstyles__SCStreamPendingSkeleton",
19
+ componentId: "sc-d7fode-1"
20
+ })(["display:flex;flex-direction:column;gap:10px;padding:4px 0 8px;min-height:48px;width:100%;max-width:520px;.StreamPendingSkeleton-line{height:10px;border-radius:6px;background:linear-gradient(90deg,rgba(0,0,0,0.04) 0%,rgba(0,0,0,0.08) 50%,rgba(0,0,0,0.04) 100%);background-size:200% 100%;animation:", " 1.8s ease-in-out infinite;}.StreamPendingSkeleton-line:nth-child(1){width:92%;}.StreamPendingSkeleton-line:nth-child(2){width:78%;animation-delay:0.12s;}.StreamPendingSkeleton-line:nth-child(3){width:54%;animation-delay:0.24s;}"], shimmer);
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJzaGltbWVyIiwiU0NBZ2VudEFjdGl2aXR5SW5kaWNhdG9yIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmIiwiJGNvbXBhY3QiLCJfcmVmMiIsInRleHQiLCJtZWRpdW1HcmF5IiwiX3JlZjMiLCJTQ1N0cmVhbVBlbmRpbmdTa2VsZXRvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FnZW50QWN0aXZpdHlJbmRpY2F0b3IvQWdlbnRBY3Rpdml0eUluZGljYXRvci5zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuXG5jb25zdCBzaGltbWVyID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQWdlbnRBY3Rpdml0eUluZGljYXRvciA9IHN0eWxlZC5kaXY8eyAkY29tcGFjdD86IGJvb2xlYW4gfT5gXG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC8qIFNpbiBwYWRkaW5nLXRvcDogZWwgZXNwYWNpbyByZXNwZWN0byBhbCBtZW5zYWplIGFudGVyaW9yIGxvIGNvbnRyb2xhIFNDTG9hZGluZ01lc3NhZ2VzQ29sdW1uICgxMnB4KSAqL1xuICBwYWRkaW5nOiAkeyh7ICRjb21wYWN0IH0pID0+ICgkY29tcGFjdCA/ICcwIDAgMTBweCcgOiAnMCAwIDE2cHgnKX07XG4gIG1heC13aWR0aDogNjAwcHg7XG5cbiAgLkFnZW50QWN0aXZpdHlJbmRpY2F0b3ItdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogNnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6ICR7KHsgJGNvbXBhY3QgfSkgPT4gKCRjb21wYWN0ID8gJzEzcHgnIDogJzEycHgnKX07XG4gICAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gICAgY29sb3I6ICR7Y29sb3JzLnRleHQubWVkaXVtR3JheX07XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xuICB9XG5cbiAgLkFnZW50QWN0aXZpdHlJbmRpY2F0b3ItdGV4dFtkYXRhLWNoYW5naW5nPSd0cnVlJ10ge1xuICAgIG9wYWNpdHk6IDAuNTU7XG4gIH1cblxuICAuQWdlbnRBY3Rpdml0eUluZGljYXRvci1sYWJlbCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLkFnZW50QWN0aXZpdHlJbmRpY2F0b3Itc2VwYXJhdG9yIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcbiAgICBvcGFjaXR5OiAwLjcyO1xuICB9XG5cbiAgLkFnZW50QWN0aXZpdHlJbmRpY2F0b3ItdGltZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZvbnQtc2l6ZTogJHsoeyAkY29tcGFjdCB9KSA9PiAoJGNvbXBhY3QgPyAnMTJweCcgOiAnMTFweCcpfTtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0Lm1lZGl1bUdyYXl9O1xuICAgIG9wYWNpdHk6IDAuNzI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgfVxuXG4gIC5BZ2VudEFjdGl2aXR5SW5kaWNhdG9yLWxvYWRlciB7XG4gICAgd2lkdGg6IG1pbi1jb250ZW50O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1N0cmVhbVBlbmRpbmdTa2VsZXRvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogNHB4IDAgOHB4O1xuICBtaW4taGVpZ2h0OiA0OHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1MjBweDtcblxuICAuU3RyZWFtUGVuZGluZ1NrZWxldG9uLWxpbmUge1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDAsIDAsIDAsIDAuMDQpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDgpIDUwJSwgcmdiYSgwLCAwLCAwLCAwLjA0KSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgICBhbmltYXRpb246ICR7c2hpbW1lcn0gMS44cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgfVxuXG4gIC5TdHJlYW1QZW5kaW5nU2tlbGV0b24tbGluZTpudGgtY2hpbGQoMSkge1xuICAgIHdpZHRoOiA5MiU7XG4gIH1cbiAgLlN0cmVhbVBlbmRpbmdTa2VsZXRvbi1saW5lOm50aC1jaGlsZCgyKSB7XG4gICAgd2lkdGg6IDc4JTtcbiAgICBhbmltYXRpb24tZGVsYXk6IDAuMTJzO1xuICB9XG4gIC5TdHJlYW1QZW5kaW5nU2tlbGV0b24tbGluZTpudGgtY2hpbGQoMykge1xuICAgIHdpZHRoOiA1NCU7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAwLjI0cztcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLElBQUlDLFNBQVMsUUFBUSxtQkFBbUI7QUFDckQsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUV0RCxJQUFNQyxPQUFPLEdBQUdGLFNBQVMsdUVBT3hCO0FBRUQsT0FBTyxJQUFNRyx3QkFBd0IsR0FBR0osTUFBTSxDQUFDSyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaW9CQU1yQyxVQUFBQyxJQUFBO0VBQUEsSUFBR0MsUUFBUSxHQUFBRCxJQUFBLENBQVJDLFFBQVE7RUFBQSxPQUFRQSxRQUFRLEdBQUcsVUFBVSxHQUFHLFVBQVU7QUFBQSxDQUFDLEVBU2xELFVBQUFDLEtBQUE7RUFBQSxJQUFHRCxRQUFRLEdBQUFDLEtBQUEsQ0FBUkQsUUFBUTtFQUFBLE9BQVFBLFFBQVEsR0FBRyxNQUFNLEdBQUcsTUFBTTtBQUFBLENBQUMsRUFFbERSLE1BQU0sQ0FBQ1UsSUFBSSxDQUFDQyxVQUFVLEVBY3RCWCxNQUFNLENBQUNVLElBQUksQ0FBQ0MsVUFBVSxFQU1sQixVQUFBQyxLQUFBO0VBQUEsSUFBR0osUUFBUSxHQUFBSSxLQUFBLENBQVJKLFFBQVE7RUFBQSxPQUFRQSxRQUFRLEdBQUcsTUFBTSxHQUFHLE1BQU07QUFBQSxDQUFDLEVBRWxEUixNQUFNLENBQUNVLElBQUksQ0FBQ0MsVUFBVSxDQVNsQztBQUVELE9BQU8sSUFBTUUsdUJBQXVCLEdBQUdmLE1BQU0sQ0FBQ0ssR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHloQkFjaENMLE9BQU8sQ0FjdkIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,9 @@
1
+ export var formatActivityElapsed = function formatActivityElapsed(totalSeconds) {
2
+ var minutes = Math.floor(totalSeconds / 60);
3
+ var seconds = totalSeconds % 60;
4
+ if (minutes === 0) {
5
+ return "".concat(seconds, "s");
6
+ }
7
+ return "".concat(minutes, "m ").concat(seconds, "s");
8
+ };
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXRBY3Rpdml0eUVsYXBzZWQiLCJ0b3RhbFNlY29uZHMiLCJtaW51dGVzIiwiTWF0aCIsImZsb29yIiwic2Vjb25kcyIsImNvbmNhdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FnZW50QWN0aXZpdHlJbmRpY2F0b3IvQWdlbnRBY3Rpdml0eUluZGljYXRvci51dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZm9ybWF0QWN0aXZpdHlFbGFwc2VkID0gKHRvdGFsU2Vjb25kczogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IodG90YWxTZWNvbmRzIC8gNjApXG4gIGNvbnN0IHNlY29uZHMgPSB0b3RhbFNlY29uZHMgJSA2MFxuICBpZiAobWludXRlcyA9PT0gMCkge1xuICAgIHJldHVybiBgJHtzZWNvbmRzfXNgXG4gIH1cbiAgcmV0dXJuIGAke21pbnV0ZXN9bSAke3NlY29uZHN9c2Bcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFNQSxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJQyxZQUFvQixFQUFhO0VBQ3JFLElBQU1DLE9BQU8sR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUNILFlBQVksR0FBRyxFQUFFLENBQUM7RUFDN0MsSUFBTUksT0FBTyxHQUFHSixZQUFZLEdBQUcsRUFBRTtFQUNqQyxJQUFJQyxPQUFPLEtBQUssQ0FBQyxFQUFFO0lBQ2pCLFVBQUFJLE1BQUEsQ0FBVUQsT0FBTztFQUNuQjtFQUNBLFVBQUFDLE1BQUEsQ0FBVUosT0FBTyxRQUFBSSxNQUFBLENBQUtELE9BQU87QUFDL0IsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,2 @@
1
+ export { AgentActivityIndicator, StreamPendingSkeleton } from './AgentActivityIndicator';
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBZ2VudEFjdGl2aXR5SW5kaWNhdG9yIiwiU3RyZWFtUGVuZGluZ1NrZWxldG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQWdlbnRBY3Rpdml0eUluZGljYXRvci9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBZ2VudEFjdGl2aXR5SW5kaWNhdG9yLCBTdHJlYW1QZW5kaW5nU2tlbGV0b24gfSBmcm9tICcuL0FnZW50QWN0aXZpdHlJbmRpY2F0b3InXG5leHBvcnQgdHlwZSB7IEFnZW50QWN0aXZpdHlJbmRpY2F0b3JQcm9wcyB9IGZyb20gJy4vQWdlbnRBY3Rpdml0eUluZGljYXRvcidcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0Esc0JBQXNCLEVBQUVDLHFCQUFxQixRQUFRLDBCQUEwQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,209 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
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 @typescript-eslint/no-explicit-any */
6
+ import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
7
+ import { Alert } from '@projectcor/icons/lib/components/Alert';
8
+ import { CheckCircle } from '@projectcor/icons/lib/components/CheckCircle';
9
+ import { CrossCircle } from '@projectcor/icons/lib/components/CrossCircle';
10
+ import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
11
+ import { useTranslation } from 'react-i18next';
12
+ import { SCApprovalBox, SCABHeader, SCABTitle, SCABDescription, SCABActionsList, SCABActionItem, SCABActionName, SCABActionDescription, SCABButtonsContainer, SCABButton, SCABStatusBadge, SCABStatusWarningIcon } from './ApprovalBox.styles';
13
+ import { SECTIONS } from '../../../constants/config';
14
+ import { useGlobalContext } from '../../../context/global-context';
15
+ import { EVENTS, useEvent } from '../../../hooks/useEvent';
16
+ import { buildHitlAnalyticsPayload, getHitlAnalyticsAgentType, hitlBatchIncludesCreateAgent, normalizeHitlToolName } from '../../../utils/hitlAnalytics';
17
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
18
+ function formatToolNameFallback(toolName) {
19
+ var normalized = normalizeHitlToolName(toolName || 'unknown');
20
+ var withSpaces = normalized.replace(/_/g, ' ').trim();
21
+ if (!withSpaces) return 'Unknown';
22
+ return withSpaces.charAt(0).toUpperCase() + withSpaces.slice(1);
23
+ }
24
+ function getActionLabel(t, toolName, displayName) {
25
+ var normalizedToolName = normalizeHitlToolName(toolName || 'unknown');
26
+ var translationKey = "approvalBox.actions.".concat(normalizedToolName);
27
+ var translatedLabel = t(translationKey);
28
+ if (translatedLabel !== translationKey) return translatedLabel;
29
+ if (displayName !== null && displayName !== void 0 && displayName.trim()) return displayName;
30
+ return formatToolNameFallback(normalizedToolName);
31
+ }
32
+ function getDeliverableMode(toolArgs) {
33
+ if (!toolArgs || Array.isArray(toolArgs)) return '';
34
+ return String(toolArgs.deliverableType || toolArgs.deliverable_type || '').toLowerCase();
35
+ }
36
+ function getSpecialActionCopy(t, action) {
37
+ var normalizedToolName = normalizeHitlToolName(action.tool_name);
38
+ var deliverableMode = getDeliverableMode(action.tool_args);
39
+ if (normalizedToolName === 'create_rework') {
40
+ return {
41
+ title: t('approvalBox.special.createRework.title'),
42
+ description: t('approvalBox.special.createRework.description')
43
+ };
44
+ }
45
+ if (normalizedToolName === 'update_deliverable' && ['children', 'checkbox'].includes(deliverableMode)) {
46
+ return {
47
+ title: t('approvalBox.special.updateDeliverableChildren.title'),
48
+ description: t('approvalBox.special.updateDeliverableChildren.description')
49
+ };
50
+ }
51
+ return {};
52
+ }
53
+ export var ApprovalBox = function ApprovalBox(_ref) {
54
+ var actions = _ref.actions,
55
+ onApprove = _ref.onApprove,
56
+ onReject = _ref.onReject,
57
+ _ref$status = _ref.status,
58
+ status = _ref$status === void 0 ? 'pending' : _ref$status,
59
+ _ref$isLoading = _ref.isLoading,
60
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
61
+ _ref$isProjectDeleted = _ref.isProjectDeleted,
62
+ isProjectDeleted = _ref$isProjectDeleted === void 0 ? false : _ref$isProjectDeleted,
63
+ _ref$isExpanded = _ref.isExpanded,
64
+ isExpanded = _ref$isExpanded === void 0 ? false : _ref$isExpanded,
65
+ hitlInstanceId = _ref.hitlInstanceId,
66
+ warningMessage = _ref.warningMessage,
67
+ _ref$manualApprovalDe = _ref.manualApprovalDetected,
68
+ manualApprovalDetected = _ref$manualApprovalDe === void 0 ? false : _ref$manualApprovalDe;
69
+ var _useTranslation = useTranslation([SECTIONS.chatAI]),
70
+ t = _useTranslation.t;
71
+ var _useState = useState(status),
72
+ _useState2 = _slicedToArray(_useState, 2),
73
+ localStatus = _useState2[0],
74
+ setLocalStatus = _useState2[1];
75
+ var _useGlobalContext = useGlobalContext(),
76
+ agent = _useGlobalContext.agent;
77
+ var eventAmplitude = useEvent();
78
+ var lastHitlImpressionKeyRef = useRef(null);
79
+ var userInitiatedHitlDecisionRef = useRef(false);
80
+ var autoResolutionTrackedKeyRef = useRef(null);
81
+ var hitlBatchKey = useMemo(function () {
82
+ return hitlInstanceId !== null && hitlInstanceId !== void 0 ? hitlInstanceId : actions.map(function (a) {
83
+ return "".concat(a.thread_id, ":").concat(a.tool_call_id);
84
+ }).sort().join('|');
85
+ }, [hitlInstanceId, actions]);
86
+
87
+ // Sincronizar localStatus con el prop status cuando cambia desde el padre (solo por value, evita bucles)
88
+ useEffect(function () {
89
+ setLocalStatus(function (prev) {
90
+ return prev !== status ? status : prev;
91
+ });
92
+ }, [status]);
93
+ var hitlAnalyticsAgentType = getHitlAnalyticsAgentType(agent);
94
+
95
+ // CA1: card de confirmación HITL visible (solo pendiente, no histórico ya resuelto)
96
+ useEffect(function () {
97
+ if (localStatus !== 'pending' || !actions.length) return;
98
+ var impressionKey = hitlBatchKey;
99
+ if (lastHitlImpressionKeyRef.current === impressionKey) return;
100
+ lastHitlImpressionKeyRef.current = impressionKey;
101
+ eventAmplitude(EVENTS.aiChatHitl, buildHitlAnalyticsPayload(hitlAnalyticsAgentType, actions));
102
+ }, [eventAmplitude, hitlAnalyticsAgentType, hitlBatchKey, localStatus, actions.length]);
103
+ var trackHitlDecision = useCallback(function (decision) {
104
+ var resolutionSource = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'user';
105
+ eventAmplitude(EVENTS.aiChatHitlOption, _objectSpread(_objectSpread({}, buildHitlAnalyticsPayload(hitlAnalyticsAgentType, actions)), {}, {
106
+ decision: decision,
107
+ resolution_source: resolutionSource
108
+ }));
109
+ }, [actions, hitlAnalyticsAgentType, eventAmplitude]);
110
+ useEffect(function () {
111
+ userInitiatedHitlDecisionRef.current = false;
112
+ autoResolutionTrackedKeyRef.current = null;
113
+ }, [hitlBatchKey]);
114
+
115
+ /**
116
+ * Resolución sin clic (p. ej. backend ejecuta la herramienta sola): hubo impresión HITL
117
+ * para este lote y el padre pasó a approved/rejected sin que el usuario pulsara aprobar/denegar.
118
+ */
119
+ useEffect(function () {
120
+ if (status === 'pending' || !actions.length) return;
121
+ if (lastHitlImpressionKeyRef.current !== hitlBatchKey) return;
122
+ if (userInitiatedHitlDecisionRef.current) return;
123
+ if (autoResolutionTrackedKeyRef.current === hitlBatchKey) return;
124
+ autoResolutionTrackedKeyRef.current = hitlBatchKey;
125
+ var isAccept = status === 'approved';
126
+ if (isAccept && hitlBatchIncludesCreateAgent(actions)) return;
127
+ trackHitlDecision(isAccept ? 'accept' : 'deny', 'auto');
128
+ }, [actions, hitlBatchKey, status, trackHitlDecision]);
129
+ var handleApprove = function handleApprove() {
130
+ if (isLoading || localStatus !== 'pending') return;
131
+ userInitiatedHitlDecisionRef.current = true;
132
+ if (!hitlBatchIncludesCreateAgent(actions)) {
133
+ trackHitlDecision('accept', 'user');
134
+ }
135
+ setLocalStatus('approved');
136
+ onApprove(actions.map(function (a) {
137
+ return a.thread_id;
138
+ }));
139
+ };
140
+ var handleReject = function handleReject() {
141
+ if (isLoading || localStatus !== 'pending') return;
142
+ userInitiatedHitlDecisionRef.current = true;
143
+ trackHitlDecision('deny', 'user');
144
+ setLocalStatus('rejected');
145
+ onReject(actions.map(function (a) {
146
+ return a.thread_id;
147
+ }));
148
+ };
149
+ return /*#__PURE__*/_jsxs(SCApprovalBox, {
150
+ children: [/*#__PURE__*/_jsx(SCABHeader, {
151
+ children: /*#__PURE__*/_jsx(SCABTitle, {
152
+ children: t('approvalBox.title')
153
+ })
154
+ }), /*#__PURE__*/_jsx(SCABDescription, {
155
+ children: t('approvalBox.description')
156
+ }), /*#__PURE__*/_jsx(SCABActionsList, {
157
+ $expanded: isExpanded,
158
+ children: actions.map(function (action) {
159
+ var specialCopy = getSpecialActionCopy(t, action);
160
+ var label = specialCopy.title || getActionLabel(t, action.tool_name, action.display_name);
161
+ return /*#__PURE__*/_jsxs(SCABActionItem, {
162
+ children: [/*#__PURE__*/_jsx(SCABActionName, {
163
+ children: label
164
+ }), specialCopy.description ? /*#__PURE__*/_jsx(SCABActionDescription, {
165
+ children: specialCopy.description
166
+ }) : null]
167
+ }, action.thread_id);
168
+ })
169
+ }), localStatus === 'pending' && !isProjectDeleted && /*#__PURE__*/_jsxs(SCABButtonsContainer, {
170
+ children: [/*#__PURE__*/_jsx(SCABButton, {
171
+ $variant: "reject",
172
+ onClick: handleReject,
173
+ $disabled: isLoading,
174
+ children: t('approvalBox.deny')
175
+ }), /*#__PURE__*/_jsx(SCABButton, {
176
+ $variant: "approve",
177
+ onClick: handleApprove,
178
+ $disabled: isLoading,
179
+ children: t('approvalBox.approve')
180
+ })]
181
+ }), localStatus !== 'pending' && /*#__PURE__*/_jsx(SCABStatusBadge, {
182
+ $status: localStatus,
183
+ children: localStatus === 'approved' ? /*#__PURE__*/_jsxs(_Fragment, {
184
+ children: [/*#__PURE__*/_jsx(CheckCircle, {
185
+ width: 22,
186
+ height: 22,
187
+ color: "#008400"
188
+ }), t('approvalBox.status.approved'), manualApprovalDetected && /*#__PURE__*/_jsx(Tooltip, {
189
+ title: warningMessage || t('approvalBox.manualApprovalWarning'),
190
+ placement: "right",
191
+ children: /*#__PURE__*/_jsx(SCABStatusWarningIcon, {
192
+ children: /*#__PURE__*/_jsx(Alert, {
193
+ color: "#EAA11A",
194
+ width: "13px",
195
+ height: "13px"
196
+ })
197
+ })
198
+ })]
199
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
200
+ children: [/*#__PURE__*/_jsx(CrossCircle, {
201
+ width: 22,
202
+ height: 22,
203
+ color: "#C70505"
204
+ }), t('approvalBox.status.denied')]
205
+ })
206
+ })]
207
+ });
208
+ };
209
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIkFsZXJ0IiwiQ2hlY2tDaXJjbGUiLCJDcm9zc0NpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDQXBwcm92YWxCb3giLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwiU0NBQkRlc2NyaXB0aW9uIiwiU0NBQkFjdGlvbnNMaXN0IiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsIlNDQUJBY3Rpb25EZXNjcmlwdGlvbiIsIlNDQUJCdXR0b25zQ29udGFpbmVyIiwiU0NBQkJ1dHRvbiIsIlNDQUJTdGF0dXNCYWRnZSIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNFQ1RJT05TIiwidXNlR2xvYmFsQ29udGV4dCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZCIsImdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUiLCJoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50Iiwibm9ybWFsaXplSGl0bFRvb2xOYW1lIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiZm9ybWF0VG9vbE5hbWVGYWxsYmFjayIsInRvb2xOYW1lIiwibm9ybWFsaXplZCIsIndpdGhTcGFjZXMiLCJyZXBsYWNlIiwidHJpbSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJnZXRBY3Rpb25MYWJlbCIsInQiLCJkaXNwbGF5TmFtZSIsIm5vcm1hbGl6ZWRUb29sTmFtZSIsInRyYW5zbGF0aW9uS2V5IiwiY29uY2F0IiwidHJhbnNsYXRlZExhYmVsIiwiZ2V0RGVsaXZlcmFibGVNb2RlIiwidG9vbEFyZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJTdHJpbmciLCJkZWxpdmVyYWJsZVR5cGUiLCJkZWxpdmVyYWJsZV90eXBlIiwidG9Mb3dlckNhc2UiLCJnZXRTcGVjaWFsQWN0aW9uQ29weSIsImFjdGlvbiIsInRvb2xfbmFtZSIsImRlbGl2ZXJhYmxlTW9kZSIsInRvb2xfYXJncyIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJpbmNsdWRlcyIsIkFwcHJvdmFsQm94IiwiX3JlZiIsImFjdGlvbnMiLCJvbkFwcHJvdmUiLCJvblJlamVjdCIsIl9yZWYkc3RhdHVzIiwic3RhdHVzIiwiX3JlZiRpc0xvYWRpbmciLCJpc0xvYWRpbmciLCJfcmVmJGlzUHJvamVjdERlbGV0ZWQiLCJpc1Byb2plY3REZWxldGVkIiwiX3JlZiRpc0V4cGFuZGVkIiwiaXNFeHBhbmRlZCIsImhpdGxJbnN0YW5jZUlkIiwid2FybmluZ01lc3NhZ2UiLCJfcmVmJG1hbnVhbEFwcHJvdmFsRGUiLCJtYW51YWxBcHByb3ZhbERldGVjdGVkIiwiX3VzZVRyYW5zbGF0aW9uIiwiY2hhdEFJIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxTdGF0dXMiLCJzZXRMb2NhbFN0YXR1cyIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJldmVudEFtcGxpdHVkZSIsImxhc3RIaXRsSW1wcmVzc2lvbktleVJlZiIsInVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYiLCJhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYiLCJoaXRsQmF0Y2hLZXkiLCJtYXAiLCJhIiwidGhyZWFkX2lkIiwidG9vbF9jYWxsX2lkIiwic29ydCIsImpvaW4iLCJwcmV2IiwiaGl0bEFuYWx5dGljc0FnZW50VHlwZSIsImxlbmd0aCIsImltcHJlc3Npb25LZXkiLCJjdXJyZW50IiwiYWlDaGF0SGl0bCIsInRyYWNrSGl0bERlY2lzaW9uIiwiZGVjaXNpb24iLCJyZXNvbHV0aW9uU291cmNlIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiYWlDaGF0SGl0bE9wdGlvbiIsIl9vYmplY3RTcHJlYWQiLCJyZXNvbHV0aW9uX3NvdXJjZSIsImlzQWNjZXB0IiwiaGFuZGxlQXBwcm92ZSIsImhhbmRsZVJlamVjdCIsImNoaWxkcmVuIiwiJGV4cGFuZGVkIiwic3BlY2lhbENvcHkiLCJsYWJlbCIsImRpc3BsYXlfbmFtZSIsIiR2YXJpYW50Iiwib25DbGljayIsIiRkaXNhYmxlZCIsIiRzdGF0dXMiLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwicGxhY2VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQXBwcm92YWxCb3gvQXBwcm92YWxCb3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQWxlcnQnXG5pbXBvcnQgeyBDaGVja0NpcmNsZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZWNrQ2lyY2xlJ1xuaW1wb3J0IHsgQ3Jvc3NDaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9Dcm9zc0NpcmNsZSdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IFBlbmRpbmdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHtcbiAgU0NBcHByb3ZhbEJveCxcbiAgU0NBQkhlYWRlcixcbiAgU0NBQlRpdGxlLFxuICBTQ0FCRGVzY3JpcHRpb24sXG4gIFNDQUJBY3Rpb25zTGlzdCxcbiAgU0NBQkFjdGlvbkl0ZW0sXG4gIFNDQUJBY3Rpb25OYW1lLFxuICBTQ0FCQWN0aW9uRGVzY3JpcHRpb24sXG4gIFNDQUJCdXR0b25zQ29udGFpbmVyLFxuICBTQ0FCQnV0dG9uLFxuICBTQ0FCU3RhdHVzQmFkZ2UsXG4gIFNDQUJTdGF0dXNXYXJuaW5nSWNvbixcbn0gZnJvbSAnLi9BcHByb3ZhbEJveC5zdHlsZXMnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7XG4gIGJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQsXG4gIGdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUsXG4gIGhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQsXG4gIG5vcm1hbGl6ZUhpdGxUb29sTmFtZSxcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGl0bEFuYWx5dGljcydcblxuZnVuY3Rpb24gZm9ybWF0VG9vbE5hbWVGYWxsYmFjayh0b29sTmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUodG9vbE5hbWUgfHwgJ3Vua25vd24nKVxuICBjb25zdCB3aXRoU3BhY2VzID0gbm9ybWFsaXplZC5yZXBsYWNlKC9fL2csICcgJykudHJpbSgpXG4gIGlmICghd2l0aFNwYWNlcykgcmV0dXJuICdVbmtub3duJ1xuICByZXR1cm4gd2l0aFNwYWNlcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdpdGhTcGFjZXMuc2xpY2UoMSlcbn1cblxuZnVuY3Rpb24gZ2V0QWN0aW9uTGFiZWwodDogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcsIHRvb2xOYW1lPzogc3RyaW5nLCBkaXNwbGF5TmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRUb29sTmFtZSA9IG5vcm1hbGl6ZUhpdGxUb29sTmFtZSh0b29sTmFtZSB8fCAndW5rbm93bicpXG4gIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gYGFwcHJvdmFsQm94LmFjdGlvbnMuJHtub3JtYWxpemVkVG9vbE5hbWV9YFxuICBjb25zdCB0cmFuc2xhdGVkTGFiZWwgPSB0KHRyYW5zbGF0aW9uS2V5KVxuXG4gIGlmICh0cmFuc2xhdGVkTGFiZWwgIT09IHRyYW5zbGF0aW9uS2V5KSByZXR1cm4gdHJhbnNsYXRlZExhYmVsXG4gIGlmIChkaXNwbGF5TmFtZT8udHJpbSgpKSByZXR1cm4gZGlzcGxheU5hbWVcbiAgcmV0dXJuIGZvcm1hdFRvb2xOYW1lRmFsbGJhY2sobm9ybWFsaXplZFRvb2xOYW1lKVxufVxuXG5mdW5jdGlvbiBnZXREZWxpdmVyYWJsZU1vZGUodG9vbEFyZ3M6IFBlbmRpbmdBY3Rpb25bJ3Rvb2xfYXJncyddKTogc3RyaW5nIHtcbiAgaWYgKCF0b29sQXJncyB8fCBBcnJheS5pc0FycmF5KHRvb2xBcmdzKSkgcmV0dXJuICcnXG4gIHJldHVybiBTdHJpbmcodG9vbEFyZ3MuZGVsaXZlcmFibGVUeXBlIHx8IHRvb2xBcmdzLmRlbGl2ZXJhYmxlX3R5cGUgfHwgJycpLnRvTG93ZXJDYXNlKClcbn1cblxuZnVuY3Rpb24gZ2V0U3BlY2lhbEFjdGlvbkNvcHkoXG4gIHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLFxuICBhY3Rpb246IFBlbmRpbmdBY3Rpb25cbik6IHsgdGl0bGU/OiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0ge1xuICBjb25zdCBub3JtYWxpemVkVG9vbE5hbWUgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUoYWN0aW9uLnRvb2xfbmFtZSlcbiAgY29uc3QgZGVsaXZlcmFibGVNb2RlID0gZ2V0RGVsaXZlcmFibGVNb2RlKGFjdGlvbi50b29sX2FyZ3MpXG5cbiAgaWYgKG5vcm1hbGl6ZWRUb29sTmFtZSA9PT0gJ2NyZWF0ZV9yZXdvcmsnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLmNyZWF0ZVJld29yay50aXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwuY3JlYXRlUmV3b3JrLmRlc2NyaXB0aW9uJyksXG4gICAgfVxuICB9XG5cbiAgaWYgKG5vcm1hbGl6ZWRUb29sTmFtZSA9PT0gJ3VwZGF0ZV9kZWxpdmVyYWJsZScgJiYgWydjaGlsZHJlbicsICdjaGVja2JveCddLmluY2x1ZGVzKGRlbGl2ZXJhYmxlTW9kZSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwudXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbi50aXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwudXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbi5kZXNjcmlwdGlvbicpLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7fVxufVxuXG5pbnRlcmZhY2UgQXBwcm92YWxCb3hQcm9wcyB7XG4gIGFjdGlvbnM6IFBlbmRpbmdBY3Rpb25bXVxuICBvbkFwcHJvdmU6ICh0aHJlYWRJZHM6IHN0cmluZ1tdKSA9PiB2b2lkXG4gIG9uUmVqZWN0OiAodGhyZWFkSWRzOiBzdHJpbmdbXSkgPT4gdm9pZFxuICBzdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJ1xuICBpc0xvYWRpbmc/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0L3Byb3llY3RvIGVzdMOhIGVsaW1pbmFkbywgc2Ugb2N1bHRhbiBsb3MgYm90b25lcyBkZSBhcHJvYmFyL3JlY2hhemFyICovXG4gIGlzUHJvamVjdERlbGV0ZWQ/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0IGVzdMOhIGV4cGFuZGlkbyAodHJ1ZSkgbyBjb2xhcHNhZG8gKGZhbHNlKS4gQWZlY3RhIGVsIGFuY2hvIGRlbCBjb250ZW5lZG9yLiAqL1xuICBpc0V4cGFuZGVkPzogYm9vbGVhblxuICAvKiogSWQgZXN0YWJsZSBwb3IgbG90ZSBISVRMIChwLiBlai4gb3JpZ2luYWxfdGhyZWFkX2lkKSBwYXJhIGVsIGV2ZW50byBkZSBpbXByZXNpw7NuICovXG4gIGhpdGxJbnN0YW5jZUlkPzogc3RyaW5nXG4gIHdhcm5pbmdNZXNzYWdlPzogc3RyaW5nXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBBcHByb3ZhbEJveCA9ICh7XG4gIGFjdGlvbnMsXG4gIG9uQXBwcm92ZSxcbiAgb25SZWplY3QsXG4gIHN0YXR1cyA9ICdwZW5kaW5nJyxcbiAgaXNMb2FkaW5nID0gZmFsc2UsXG4gIGlzUHJvamVjdERlbGV0ZWQgPSBmYWxzZSxcbiAgaXNFeHBhbmRlZCA9IGZhbHNlLFxuICBoaXRsSW5zdGFuY2VJZCxcbiAgd2FybmluZ01lc3NhZ2UsXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQgPSBmYWxzZSxcbn06IEFwcHJvdmFsQm94UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJXSlcbiAgY29uc3QgW2xvY2FsU3RhdHVzLCBzZXRMb2NhbFN0YXR1c10gPSB1c2VTdGF0ZTwncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJz4oc3RhdHVzKVxuICBjb25zdCB7IGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IGxhc3RIaXRsSW1wcmVzc2lvbktleVJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBoaXRsQmF0Y2hLZXkgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBoaXRsSW5zdGFuY2VJZCA/P1xuICAgICAgYWN0aW9uc1xuICAgICAgICAubWFwKGEgPT4gYCR7YS50aHJlYWRfaWR9OiR7YS50b29sX2NhbGxfaWR9YClcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAuam9pbignfCcpLFxuICAgIFtoaXRsSW5zdGFuY2VJZCwgYWN0aW9uc11cbiAgKVxuXG4gIC8vIFNpbmNyb25pemFyIGxvY2FsU3RhdHVzIGNvbiBlbCBwcm9wIHN0YXR1cyBjdWFuZG8gY2FtYmlhIGRlc2RlIGVsIHBhZHJlIChzb2xvIHBvciB2YWx1ZSwgZXZpdGEgYnVjbGVzKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldExvY2FsU3RhdHVzKHByZXYgPT4gKHByZXYgIT09IHN0YXR1cyA/IHN0YXR1cyA6IHByZXYpKVxuICB9LCBbc3RhdHVzXSlcblxuICBjb25zdCBoaXRsQW5hbHl0aWNzQWdlbnRUeXBlID0gZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZShhZ2VudClcblxuICAvLyBDQTE6IGNhcmQgZGUgY29uZmlybWFjacOzbiBISVRMIHZpc2libGUgKHNvbG8gcGVuZGllbnRlLCBubyBoaXN0w7NyaWNvIHlhIHJlc3VlbHRvKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnIHx8ICFhY3Rpb25zLmxlbmd0aCkgcmV0dXJuXG4gICAgY29uc3QgaW1wcmVzc2lvbktleSA9IGhpdGxCYXRjaEtleVxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCA9PT0gaW1wcmVzc2lvbktleSkgcmV0dXJuXG4gICAgbGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmLmN1cnJlbnQgPSBpbXByZXNzaW9uS2V5XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdEhpdGwsIGJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQoaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgYWN0aW9ucykpXG4gIH0sIFtldmVudEFtcGxpdHVkZSwgaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgaGl0bEJhdGNoS2V5LCBsb2NhbFN0YXR1cywgYWN0aW9ucy5sZW5ndGhdKVxuXG4gIGNvbnN0IHRyYWNrSGl0bERlY2lzaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGRlY2lzaW9uOiAnYWNjZXB0JyB8ICdkZW55JywgcmVzb2x1dGlvblNvdXJjZTogJ3VzZXInIHwgJ2F1dG8nID0gJ3VzZXInKSA9PiB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0SGl0bE9wdGlvbiwge1xuICAgICAgICAuLi5idWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGFjdGlvbnMpLFxuICAgICAgICBkZWNpc2lvbixcbiAgICAgICAgcmVzb2x1dGlvbl9zb3VyY2U6IHJlc29sdXRpb25Tb3VyY2UsXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2FjdGlvbnMsIGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIGF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZi5jdXJyZW50ID0gbnVsbFxuICB9LCBbaGl0bEJhdGNoS2V5XSlcblxuICAvKipcbiAgICogUmVzb2x1Y2nDs24gc2luIGNsaWMgKHAuIGVqLiBiYWNrZW5kIGVqZWN1dGEgbGEgaGVycmFtaWVudGEgc29sYSk6IGh1Ym8gaW1wcmVzacOzbiBISVRMXG4gICAqIHBhcmEgZXN0ZSBsb3RlIHkgZWwgcGFkcmUgcGFzw7MgYSBhcHByb3ZlZC9yZWplY3RlZCBzaW4gcXVlIGVsIHVzdWFyaW8gcHVsc2FyYSBhcHJvYmFyL2RlbmVnYXIuXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCAhPT0gaGl0bEJhdGNoS2V5KSByZXR1cm5cbiAgICBpZiAodXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPT09IGhpdGxCYXRjaEtleSkgcmV0dXJuXG4gICAgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPSBoaXRsQmF0Y2hLZXlcbiAgICBjb25zdCBpc0FjY2VwdCA9IHN0YXR1cyA9PT0gJ2FwcHJvdmVkJ1xuICAgIGlmIChpc0FjY2VwdCAmJiBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSByZXR1cm5cbiAgICB0cmFja0hpdGxEZWNpc2lvbihpc0FjY2VwdCA/ICdhY2NlcHQnIDogJ2RlbnknLCAnYXV0bycpXG4gIH0sIFthY3Rpb25zLCBoaXRsQmF0Y2hLZXksIHN0YXR1cywgdHJhY2tIaXRsRGVjaXNpb25dKVxuXG4gIGNvbnN0IGhhbmRsZUFwcHJvdmUgPSAoKSA9PiB7XG4gICAgaWYgKGlzTG9hZGluZyB8fCBsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnKSByZXR1cm5cbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgaWYgKCFoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSB7XG4gICAgICB0cmFja0hpdGxEZWNpc2lvbignYWNjZXB0JywgJ3VzZXInKVxuICAgIH1cbiAgICBzZXRMb2NhbFN0YXR1cygnYXBwcm92ZWQnKVxuICAgIG9uQXBwcm92ZShhY3Rpb25zLm1hcChhID0+IGEudGhyZWFkX2lkKSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVJlamVjdCA9ICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nIHx8IGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycpIHJldHVyblxuICAgIHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCA9IHRydWVcbiAgICB0cmFja0hpdGxEZWNpc2lvbignZGVueScsICd1c2VyJylcbiAgICBzZXRMb2NhbFN0YXR1cygncmVqZWN0ZWQnKVxuICAgIG9uUmVqZWN0KGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NBcHByb3ZhbEJveD5cbiAgICAgIDxTQ0FCSGVhZGVyPlxuICAgICAgICA8U0NBQlRpdGxlPnt0KCdhcHByb3ZhbEJveC50aXRsZScpfTwvU0NBQlRpdGxlPlxuICAgICAgPC9TQ0FCSGVhZGVyPlxuXG4gICAgICA8U0NBQkRlc2NyaXB0aW9uPnt0KCdhcHByb3ZhbEJveC5kZXNjcmlwdGlvbicpfTwvU0NBQkRlc2NyaXB0aW9uPlxuXG4gICAgICA8U0NBQkFjdGlvbnNMaXN0ICRleHBhbmRlZD17aXNFeHBhbmRlZH0+XG4gICAgICAgIHthY3Rpb25zLm1hcChhY3Rpb24gPT4ge1xuICAgICAgICAgIGNvbnN0IHNwZWNpYWxDb3B5ID0gZ2V0U3BlY2lhbEFjdGlvbkNvcHkodCwgYWN0aW9uKVxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gc3BlY2lhbENvcHkudGl0bGUgfHwgZ2V0QWN0aW9uTGFiZWwodCwgYWN0aW9uLnRvb2xfbmFtZSwgKGFjdGlvbiBhcyBhbnkpLmRpc3BsYXlfbmFtZSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFNDQUJBY3Rpb25JdGVtIGtleT17YWN0aW9uLnRocmVhZF9pZH0+XG4gICAgICAgICAgICAgIDxTQ0FCQWN0aW9uTmFtZT57bGFiZWx9PC9TQ0FCQWN0aW9uTmFtZT5cbiAgICAgICAgICAgICAge3NwZWNpYWxDb3B5LmRlc2NyaXB0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxTQ0FCQWN0aW9uRGVzY3JpcHRpb24+e3NwZWNpYWxDb3B5LmRlc2NyaXB0aW9ufTwvU0NBQkFjdGlvbkRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NBQkFjdGlvbkl0ZW0+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvU0NBQkFjdGlvbnNMaXN0PlxuXG4gICAgICB7bG9jYWxTdGF0dXMgPT09ICdwZW5kaW5nJyAmJiAhaXNQcm9qZWN0RGVsZXRlZCAmJiAoXG4gICAgICAgIDxTQ0FCQnV0dG9uc0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NBQkJ1dHRvbiAkdmFyaWFudD1cInJlamVjdFwiIG9uQ2xpY2s9e2hhbmRsZVJlamVjdH0gJGRpc2FibGVkPXtpc0xvYWRpbmd9PlxuICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LmRlbnknKX1cbiAgICAgICAgICA8L1NDQUJCdXR0b24+XG4gICAgICAgICAgPFNDQUJCdXR0b24gJHZhcmlhbnQ9XCJhcHByb3ZlXCIgb25DbGljaz17aGFuZGxlQXBwcm92ZX0gJGRpc2FibGVkPXtpc0xvYWRpbmd9PlxuICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LmFwcHJvdmUnKX1cbiAgICAgICAgICA8L1NDQUJCdXR0b24+XG4gICAgICAgIDwvU0NBQkJ1dHRvbnNDb250YWluZXI+XG4gICAgICApfVxuICAgICAge2xvY2FsU3RhdHVzICE9PSAncGVuZGluZycgJiYgKFxuICAgICAgICA8U0NBQlN0YXR1c0JhZGdlICRzdGF0dXM9e2xvY2FsU3RhdHVzfT5cbiAgICAgICAgICB7bG9jYWxTdGF0dXMgPT09ICdhcHByb3ZlZCcgPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8Q2hlY2tDaXJjbGUgd2lkdGg9ezIyfSBoZWlnaHQ9ezIyfSBjb2xvcj1cIiMwMDg0MDBcIiAvPlxuICAgICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guc3RhdHVzLmFwcHJvdmVkJyl9XG4gICAgICAgICAgICAgIHttYW51YWxBcHByb3ZhbERldGVjdGVkICYmIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17d2FybmluZ01lc3NhZ2UgfHwgdCgnYXBwcm92YWxCb3gubWFudWFsQXBwcm92YWxXYXJuaW5nJyl9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8U0NBQlN0YXR1c1dhcm5pbmdJY29uPlxuICAgICAgICAgICAgICAgICAgICA8QWxlcnQgY29sb3I9XCIjRUFBMTFBXCIgd2lkdGg9XCIxM3B4XCIgaGVpZ2h0PVwiMTNweFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDQUJTdGF0dXNXYXJuaW5nSWNvbj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPENyb3NzQ2lyY2xlIHdpZHRoPXsyMn0gaGVpZ2h0PXsyMn0gY29sb3I9XCIjQzcwNTA1XCIgLz5cbiAgICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LnN0YXR1cy5kZW5pZWQnKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NBQlN0YXR1c0JhZGdlPlxuICAgICAgKX1cbiAgICA8L1NDQXBwcm92YWxCb3g+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBRTlDLFNBQ0VDLGFBQWEsRUFDYkMsVUFBVSxFQUNWQyxTQUFTLEVBQ1RDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxjQUFjLEVB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QUFDWixVQUFVO1FBQUM0RyxRQUFRLEVBQUMsUUFBUTtRQUFDQyxPQUFPLEVBQUVQLFlBQWE7UUFBQ1EsU0FBUyxFQUFFckQsU0FBVTtRQUFBOEMsUUFBQSxFQUN2RTVFLENBQUMsQ0FBQyxrQkFBa0I7TUFBQyxDQUNaLENBQUMsZUFDYmYsSUFBQSxDQUFDWixVQUFVO1FBQUM0RyxRQUFRLEVBQUMsU0FBUztRQUFDQyxPQUFPLEVBQUVSLGFBQWM7UUFBQ1MsU0FBUyxFQUFFckQsU0FBVTtRQUFBOEMsUUFBQSxFQUN6RTVFLENBQUMsQ0FBQyxxQkFBcUI7TUFBQyxDQUNmLENBQUM7SUFBQSxDQUNPLENBQ3ZCLEVBQ0E0QyxXQUFXLEtBQUssU0FBUyxpQkFDeEIzRCxJQUFBLENBQUNYLGVBQWU7TUFBQzhHLE9BQU8sRUFBRXhDLFdBQVk7TUFBQWdDLFFBQUEsRUFDbkNoQyxXQUFXLEtBQUssVUFBVSxnQkFDekJ6RCxLQUFBLENBQUFFLFNBQUE7UUFBQXVGLFFBQUEsZ0JBQ0UzRixJQUFBLENBQUN6QixXQUFXO1VBQUM2SCxLQUFLLEVBQUUsRUFBRztVQUFDQyxNQUFNLEVBQUUsRUFBRztVQUFDQyxLQUFLLEVBQUM7UUFBUyxDQUFFLENBQUMsRUFDckR2RixDQUFDLENBQUMsNkJBQTZCLENBQUMsRUFDaENzQyxzQkFBc0IsaUJBQ3JCckQsSUFBQSxDQUFDdkIsT0FBTztVQUFDeUQsS0FBSyxFQUFFaUIsY0FBYyxJQUFJcEMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFFO1VBQUN3RixTQUFTLEVBQUMsT0FBTztVQUFBWixRQUFBLGVBQ3pGM0YsSUFBQSxDQUFDVixxQkFBcUI7WUFBQXFHLFFBQUEsZUFDcEIzRixJQUFBLENBQUMxQixLQUFLO2NBQUNnSSxLQUFLLEVBQUMsU0FBUztjQUFDRixLQUFLLEVBQUMsTUFBTTtjQUFDQyxNQUFNLEVBQUM7WUFBTSxDQUFFO1VBQUMsQ0FDL0I7UUFBQyxDQUNqQixDQUNWO01BQUEsQ0FDRCxDQUFDLGdCQUVIbkcsS0FBQSxDQUFBRSxTQUFBO1FBQUF1RixRQUFBLGdCQUNFM0YsSUFBQSxDQUFDeEIsV0FBVztVQUFDNEgsS0FBSyxFQUFFLEVBQUc7VUFBQ0MsTUFBTSxFQUFFLEVBQUc7VUFBQ0MsS0FBSyxFQUFDO1FBQVMsQ0FBRSxDQUFDLEVBQ3JEdkYsQ0FBQyxDQUFDLDJCQUEyQixDQUFDO01BQUEsQ0FDL0I7SUFDSCxDQUNjLENBQ2xCO0VBQUEsQ0FDWSxDQUFDO0FBRXBCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=